vs運転x 264とLinuxでの運転
X 264の最大の特徴は、その出発点がH.264の実用性のためであることである.JMと比較して、X 264はH.264規格に対して完全に実装されていないが、符号化性能への寄与は小さいが計算の複雑さが極めて高い新しい特性、例えば、マルチリファレンスフレーム、フレーム間予測に不要なブロックモードなどの技術を排除している.これにより、計算の複雑さは低下するが、符号化効率は著しく低下しない.符号ストリームはH.264と互換性がある.実用的
のシステムでは、例えばDSPチップ上でH.264を実装するのが比較的一般的であり、X 264コードの移植が多い. WindowsシステムでX 264 を実現
ツール:MicrosoftVisual Studio 2005はvisualstdio 6.0ではなく、6.0を使用すると多くのパッチが適用され、他にも多くの問題が発生する可能性があります.
プログラム:x 264_i 386版
実装手順:
(1)まずnasmがコンパイルできない問題であり,以下のように解決する.
ダウンロードnasm
解凍し、nasmをD:ProgramFilesMicrosoft Visual Studio 8VCbinにコピーします.
(2)途中でまだpthread.hの新聞は間違っていて、私の別の1編を参考にします
x 264で使用するpthreadを実行します.hファイル及び関連問題
(3)コンパイラ、X 264を生成する.exeファイル.
出力ファイルはbinディレクトリの下にbin/x 264が現れる.exe
(4)cmdで実行し、このディレクトリで実行する
x264 --no-cabac -o e:\4cif\test.264 e:\4cif\foreman.4cf704x576 x264 --no-cabac -o .\test.264 e:\4cif\foreman.4cf 704x576
x264 --no-cabac -o D:\test.264D:\x264-060601\build\win32\bin\foreman.yuv 176x144
ディレクトリの下にアクティブなファイルforeman_dec.4 cfが実行するとディレクトリの下でtestが生成される.264ファイルを圧縮します.
(5)vs上で運転する場合
プロジェクト->プロパティクリック:プロパティの設定->デバッグ
コマンドパラメータの欄に、--no-cabac-o e:4 ciftestと入力します.264e:\4cif\foreman.4cf 704x576
x264 --no-cabac -o D:\test.264D:\x264-060601\build\win32\bin\foreman.yuv 176x144
確定したらF 5を押して実行を開始する
2.Linuxシステムの下でX 264を実現する
準備:Linuxシステム、x 264-snapshot 20070920-2245版プログラム
(1)PCにnasmを装着運転開始の問題を解決するmake時にFound no assembler Minimum version is yasm-0.6.2 If you really want to compile without asm,configure with--disable-asm.linuxの下のアセンブラが少なくなって、yasmをインストールしてOKになって、住所をダウンロードします:
私がダウンロードしたのは:
http://www.tortall.net/projects/yasm/wiki/Download yasm-1.1.0.tar.gz
アメリカ公式サイト:http://www.nasm.us/ nasm-0.98.39.tar.bz 2解凍、解凍パッケージに入ります./configure make make install(2)その後Linuxシステムの下で
#./configure
#makeの後、Linuxシステム下のX 264実行可能ファイルが生成されます.ファイル名はx 264です.
(3)運転
./x264 mo-da_qcif.yuv176x144 -o test.264 ./x264 foreman.4cf 704x576 -otest.264
3.開発ボードでX 264を実現
準備:コンパイル環境:Linuxシステム
ツール:arm-linux-gcc 3.4.1
プログラム:x 264-snapshot 20070920-2245版
実装手順:
(1)コンパイル環境Linuxシステムをインストールします.Windowsにインストールした仮想マシンで、仮想マシンにインストールしたLinuxシステムです.(仮想マシン下のLinuxシステムでは、LinuxとWindowsの共有フォルダを使用する場合、解凍ファイルを解凍するには、共有フォルダで解凍しないで、解凍したファイルを仮想マシンlinuxシステム下にコピーします.そうしないと解凍に成功しません.
(2)クロスコンパイラarm-linux-gcc 3.4.1をインストールし、そのインストール手順:arm-linux-gcc 3.4.1.tar.bz 2はLinuxシステムにコピーされ、私が/WeiLiディレクトリにコピーしたように.—>解凍、tar–jxvf arm-linux-gcc 3.4.1.tar.bz2.—>解凍ファイルのarmフォルダを/usr/localにコピーし、cp–rvarm/usr/local.—>環境変数を変更し、arm-linux-gccコンパイラを3.4.1、gedit/root/と指定します.bashrc,/root/.bashrcこのファイルの最後の行にコマンドを追加します:export PATH=$PATH:/usr/local/arm/3.4.1/bin.arm-linux-gcc3.4.1インストールが完了すると、このクロスコンパイラを使用できます.
注意:私达の开発板に対して、组み合わせて使うコンパイラはarmv 4 l-unknown-linux-gccで、私を通じて简単なhello.cプログラムテストはarm-linux-gccでコンパイルされた実行可能プログラムが実験台でも正しく動作するため、arm-linux-gccとarmv 4 l-unknown-linux-gccはある程度通用し、バージョンの問題かもしれない.
(3)X 264プログラムを修正して、まずプログラムに対していくつかの地方の修正を行って、さもなくばcpu_について現れますset_tのエラー、cpu_についてset_tの以下のコードはCPUコア数の計算に関するコードであるため、np=1(我々が使用しているコンピュータはすべてシングルコア)を直接返し、その計算を用いずに、#elif defined(SYS_LINUX)unsigned int bit;int np; cpu_set_t p_aff;memset( &p_aff, 0, sizeof(p_aff));sched_getaffinity( 0, sizeof(p_aff), &p_aff);for( np = 0;bit = 0; bit < sizeof(p_aff); bit++);np += (((uint8_t *)&p_aff)[bit/8]>> (bit % 8)) &1;return np;変更:#elif defined(SYS_LINUX)int np;np=1; returnnp;
(4)コンパイラは,x 264-snapshot 20070920-2245をLinuxシステム下にコピーする(仮想マシンの共有フォルダ下でもよい).configure--host=arm-linux.—>configを修正する.makファイルは、CC=gcc、AS=yasmをCC=arm-linux-gcc、AS=arm-linux-asに変更します.—>make.その後、実行可能ファイルX 264が生成される.
注意:ここでのX 264プログラムは、必ず他のコンパイラによってコンパイルされていないプログラム、すなわち、このX 264がgccまたは他のコンパイラによってコンパイルされたプログラムである場合、arm-linux-gcc 3を使用する.4.1コンパイルでcollect 2エラーが発生します.
(5)生成した実行可能ファイルx 264を開発ボードに移植し、x 264--qp 18--keyint 240--min-keyint 24--ref 3--mixed-refs--no-fast-pskip--bframes 3--b-pyramid--b-rdo--bime--weightb--trellis 1--analyse all--8 x 8 dct--threads 3--thread-input--progress--no-dct-decimate–o out.264 foreman_part_qcif_444.yuv 352 x 288、ディレクトリの下にアクティブなファイルforeman_part_qcif_444.yuvが実行するとディレクトリの下でoutが生成される.264ファイルを圧縮します.
参照先:
http://blog.vckbase.com/wangjun/archive/2010/08/02/43939.html
のシステムでは、例えばDSPチップ上でH.264を実装するのが比較的一般的であり、X 264コードの移植が多い.
ツール:MicrosoftVisual Studio 2005はvisualstdio 6.0ではなく、6.0を使用すると多くのパッチが適用され、他にも多くの問題が発生する可能性があります.
プログラム:x 264_i 386版
実装手順:
(1)まずnasmがコンパイルできない問題であり,以下のように解決する.
ダウンロードnasm
http://www.nasm.us/pub/nasm/releasebuilds/2.09.08/win32/nasm-2.09.08-win32.zi
解凍し、nasmをD:ProgramFilesMicrosoft Visual Studio 8VCbinにコピーします.
(2)途中でまだpthread.hの新聞は間違っていて、私の別の1編を参考にします
x 264で使用するpthreadを実行します.hファイル及び関連問題
(3)コンパイラ、X 264を生成する.exeファイル.
出力ファイルはbinディレクトリの下にbin/x 264が現れる.exe
(4)cmdで実行し、このディレクトリで実行する
x264 --no-cabac -o e:\4cif\test.264 e:\4cif\foreman.4cf704x576 x264 --no-cabac -o .\test.264 e:\4cif\foreman.4cf 704x576
x264 --no-cabac -o D:\test.264D:\x264-060601\build\win32\bin\foreman.yuv 176x144
ディレクトリの下にアクティブなファイルforeman_dec.4 cfが実行するとディレクトリの下でtestが生成される.264ファイルを圧縮します.
(5)vs上で運転する場合
プロジェクト->プロパティクリック:プロパティの設定->デバッグ
コマンドパラメータの欄に、--no-cabac-o e:4 ciftestと入力します.264e:\4cif\foreman.4cf 704x576
x264 --no-cabac -o D:\test.264D:\x264-060601\build\win32\bin\foreman.yuv 176x144
確定したらF 5を押して実行を開始する
2.Linuxシステムの下でX 264を実現する
準備:Linuxシステム、x 264-snapshot 20070920-2245版プログラム
(1)PCにnasmを装着運転開始の問題を解決するmake時にFound no assembler Minimum version is yasm-0.6.2 If you really want to compile without asm,configure with--disable-asm.linuxの下のアセンブラが少なくなって、yasmをインストールしてOKになって、住所をダウンロードします:
私がダウンロードしたのは:
http://www.tortall.net/projects/yasm/wiki/Download yasm-1.1.0.tar.gz
アメリカ公式サイト:http://www.nasm.us/ nasm-0.98.39.tar.bz 2解凍、解凍パッケージに入ります./configure make make install(2)その後Linuxシステムの下で
#./configure
#makeの後、Linuxシステム下のX 264実行可能ファイルが生成されます.ファイル名はx 264です.
(3)運転
./x264 mo-da_qcif.yuv176x144 -o test.264 ./x264 foreman.4cf 704x576 -otest.264
3.開発ボードでX 264を実現
準備:コンパイル環境:Linuxシステム
ツール:arm-linux-gcc 3.4.1
プログラム:x 264-snapshot 20070920-2245版
実装手順:
(1)コンパイル環境Linuxシステムをインストールします.Windowsにインストールした仮想マシンで、仮想マシンにインストールしたLinuxシステムです.(仮想マシン下のLinuxシステムでは、LinuxとWindowsの共有フォルダを使用する場合、解凍ファイルを解凍するには、共有フォルダで解凍しないで、解凍したファイルを仮想マシンlinuxシステム下にコピーします.そうしないと解凍に成功しません.
(2)クロスコンパイラarm-linux-gcc 3.4.1をインストールし、そのインストール手順:arm-linux-gcc 3.4.1.tar.bz 2はLinuxシステムにコピーされ、私が/WeiLiディレクトリにコピーしたように.—>解凍、tar–jxvf arm-linux-gcc 3.4.1.tar.bz2.—>解凍ファイルのarmフォルダを/usr/localにコピーし、cp–rvarm/usr/local.—>環境変数を変更し、arm-linux-gccコンパイラを3.4.1、gedit/root/と指定します.bashrc,/root/.bashrcこのファイルの最後の行にコマンドを追加します:export PATH=$PATH:/usr/local/arm/3.4.1/bin.arm-linux-gcc3.4.1インストールが完了すると、このクロスコンパイラを使用できます.
注意:私达の开発板に対して、组み合わせて使うコンパイラはarmv 4 l-unknown-linux-gccで、私を通じて简単なhello.cプログラムテストはarm-linux-gccでコンパイルされた実行可能プログラムが実験台でも正しく動作するため、arm-linux-gccとarmv 4 l-unknown-linux-gccはある程度通用し、バージョンの問題かもしれない.
(3)X 264プログラムを修正して、まずプログラムに対していくつかの地方の修正を行って、さもなくばcpu_について現れますset_tのエラー、cpu_についてset_tの以下のコードはCPUコア数の計算に関するコードであるため、np=1(我々が使用しているコンピュータはすべてシングルコア)を直接返し、その計算を用いずに、#elif defined(SYS_LINUX)unsigned int bit;int np; cpu_set_t p_aff;memset( &p_aff, 0, sizeof(p_aff));sched_getaffinity( 0, sizeof(p_aff), &p_aff);for( np = 0;bit = 0; bit < sizeof(p_aff); bit++);np += (((uint8_t *)&p_aff)[bit/8]>> (bit % 8)) &1;return np;変更:#elif defined(SYS_LINUX)int np;np=1; returnnp;
(4)コンパイラは,x 264-snapshot 20070920-2245をLinuxシステム下にコピーする(仮想マシンの共有フォルダ下でもよい).configure--host=arm-linux.—>configを修正する.makファイルは、CC=gcc、AS=yasmをCC=arm-linux-gcc、AS=arm-linux-asに変更します.—>make.その後、実行可能ファイルX 264が生成される.
注意:ここでのX 264プログラムは、必ず他のコンパイラによってコンパイルされていないプログラム、すなわち、このX 264がgccまたは他のコンパイラによってコンパイルされたプログラムである場合、arm-linux-gcc 3を使用する.4.1コンパイルでcollect 2エラーが発生します.
(5)生成した実行可能ファイルx 264を開発ボードに移植し、x 264--qp 18--keyint 240--min-keyint 24--ref 3--mixed-refs--no-fast-pskip--bframes 3--b-pyramid--b-rdo--bime--weightb--trellis 1--analyse all--8 x 8 dct--threads 3--thread-input--progress--no-dct-decimate–o out.264 foreman_part_qcif_444.yuv 352 x 288、ディレクトリの下にアクティブなファイルforeman_part_qcif_444.yuvが実行するとディレクトリの下でoutが生成される.264ファイルを圧縮します.
参照先:
http://blog.vckbase.com/wangjun/archive/2010/08/02/43939.html