| この記事には独自研究が含まれているおそれがあります。 問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2016年2月) |
x264(エックスニーロクヨン)は、動画をH.264 (MPEG-4 AVC) ビデオストリームへエンコードするためのプログラムである。GPLライセンスの下でリリースされている。
x264にはコマンドラインプログラムの通称x264cliとライブラリのlibx264が含まれている。コマンドラインプログラムはコンパイルオプションによってはFFmpegを利用したデコードに対応している。また、libx264を利用した多数のフロントエンドやプラグインなどが存在する(VLC・HandBrake・FFmpeg・ffdshow・Windows VFW向けのx264vfw・x264guiなど)。
特徴
- フリーでオープンソース
- 高画質
- MSU MPEG-4 AVC/H.264 Video Codec Comparison 2011 において商用やWebMなどの他のエンコードも含め最も高画質・高圧縮率と評価された[2]。
- PSNRやSSIMだけでなく、心理視覚も重視している。
- 一般的に使われている8ビット深度だけでなく、10ビット深度でのエンコードにも対応している。8ビット深度のソース映像であっても、高ビット深度を使うことでフィルタを使わずにバンディングが抑制できるほか、計算誤差が低くなるためファイルサイズも小さくなる[3]。
- 一般的に使われているYUV4:2:0色空間だけでなく、YUV4:2:2色空間やYUV4:4:4色空間でのエンコードにも対応している。4:4:4のソース映像をすっきりとした画質のままエンコードできる。
- 高速
- マルチスレッド対応
- 各種CPUのSIMDに対応(MMX, SSE, SSE2, SSE3, SSSE3, SSE4, AVX, 3DNow!, XOP, Altivec, NEONなど)
- 低レイテンシ
- 周期的イントラ更新 (--intra-refresh) を使うことによりI (DR) フレームが必要無くなるため、参照フレームを使いながらも動画の各フレームの圧縮後のサイズを一定にすることができる。
- 高機能
- ビットレート指定もしくは品質指定でエンコードができる。2パス以上にも対応している。
- 速度別のプリセットとソース別・目的別のチューン設定がある。
- プロファイル制限・レベル制限に対応している。これにより制限の多いデバイス向けにエンコードすることができる。
- Blu-ray Disc互換のエンコードが可能である。オーサリングツールと組み合わせれば、Blu-ray Discを作ることができる。
- Iフレームのみでエンコードが可能である (--keyint 1)。任意の箇所でカットできるようになるので、プロ用途として使うことができる。
- AVC-Intra互換のエンコードが可能である (--avcintra-class 50/100/200)。
- ロスレスエンコードが可能である (--qp 0)。また、RGB色空間にも対応している (--output-csp rgb)。スクリーンキャプチャや無劣化保存などに使うことができる。
- ステレオ3D動画のフレーム形式の定義に対応している (--frame-packing)。
- 高普及
欠点としては、12bitに未対応、AVC-Ultraに未対応 (パッチあり[4])、MPEG-4 MVCに未対応、MPEG-4 WVC (MPEG-4 Part 29。MPEG-4 AVCのサブセット)に未対応なことが挙げられる。
主立った履歴
- r240: マルチスレッドに対応
- r264: ロスレスエンコードに対応
- r570: インターレースに対応
- r581: Video for Windowsの公式対応削除
- r607: マルチスレッド時の分割方法を変更(スライスベースからフレームベースへ)
- r733: YV12への変換機能を削除(あらかじめYV12形式に変換しておく必要がある、AviSynthを使う)
- r1177: 新しいプリセットシステムを導入
- r1327: 重み付けPフレーム予測に対応
- r1379: FFmpegを介した入力をサポート
- r1380: 周期的イントラ更新を追加
- r1480: Blu-ray互換エンコードをサポート
- r1657: OpenGOPをサポート
- r1666: 9または10bitエンコードのサポート(出力のみの対応で入力は8bitまで)
- r1731: x264における10bitのほぼ完全なサポート(10bitまでの入力にも対応)
- r1746: libx264からx264cliにDTS compressionを移動(EditBoxを正常に扱えない環境のためにx264cli側のmp4 muxerオプションとして残す)
- r1786: カスタムクロッピング矩形に対応
- r1801: 初のGoogle Code-Inパッチによるリビジョンアップ
- r1829: ステレオ3D動画をサポート(非MVC)
- r1880: Intel AVXに対応
- r1881: どんな入力でもVBVを守れるようになった
- r1935: 「--bluray-compat」が導入された(Blu-ray互換エンコード機能の強化)
- r1961: MBAFFにおけるInterをサポート
- r2017: YUV4:4:4エンコードをサポート
- r2018: RGBエンコードをサポート
- r2081: YUV4:2:2エンコードをサポート
- r2257: QNXに対応
- r2286: GPUエンコードをサポート
- r2355: AVC-Intraをサポート
x264vfw
x264のVfW (Video for Windows) 版。r581において公式サポートは中断している。VfWの関連にDirectShowがあるが、そちらへの対応も行われていない。
外部プロジェクトとしてBugMasterが開発を継続しており、fourccもいくつかから選べるようになっていたが、2017年を最後に更新はされていない[5]。
分散エンコード
x264は、直接には複数コンピュータでの分散エンコードをサポートしていない。しかし、x264をバックエンドとして使う分散エンコードソフトウェアのx264farm及びその派生の1passに特化したx264farm-spが存在する。ライセンスはx264と同じくGPLライセンスであり、言語はOCamlで書かれている。
参照
外部リンク