x265、速くなった? (2014.11)

x265もだいぶ速くなってきたかな?、というわけで再びテスト。

x265_benchmark_20131103_00.png

最近のx265の重要な更新は、
・AVX2最適化
・pmode(とpme)
の追加。

pmodeはCU(ブロック)単位で並列処理して、並列度を上げて、マルチコアCPUをより有効に使う。圧縮率に影響なく(あるいはやや向上させながら)、CPU使用率を引き上げるらしい。なんかすごい。

pmodeとAVX2最適化によって、さらに速度が向上したはずなので、そのあたりがどのくらいのものかを測定。



環境と条件



環境
Win 8.1 x64
Core i7 5960X (8C/16T, L3=20MB)
Core 4.4GHz / Cache 4.0GHz
DDR4-2666, 4ch, 32GB
Aviutl 1.00
lwinput r726
x265guiEx 3.47(仮)

ソース
グリザイアの果実 (アニメ) OP を一度x264 (crf=18) + x264guiEx + afsでエンコードしたもの。
1920x1080p 23.976fps H.264/AVC 2155frames 8483kbps

x265.exe x64 8bit
0.8+3 (2014.03.05)
1.0+4 (2014.05.03)
1.1+88 (2014.06.16)
1.2+45 (2014.07.11)
1.3+18 (2014.08.23)
1.4+3  (2014.11.03)

x265オプション
--preset <medium or slow> --crf 21 --tune ssim --ssim [ --pmode ] [ --asm avx ]

x265の--preset medium と --preset slow それぞれについて試した。あと、1.4+3では--pmodeありとなしでそれぞれ測定。

測定
一発勝負
計測データ



ビットレートとSSIM



まずはpreset mediumの時とslowの時それぞれのビットレートとSSIM。

SSIMは画質のだいたいの目安で値が大きいほうが高画質。

ビットレートとSSIM
x265_benchmark_20131103_03.png

preset mediumよりslowのほうが当然SSIMもよく、ビットレートも小さい。

1.0 と 1.1の間に大きな差があって、もう覚えてないけどプリセット自体が変わったんだろうなと思う。あと、--pmodeをつけると、少しSSIMが向上し、ごくわずかに容量が膨らんでいる。



エンコード速度とCPU使用率



次に本題の
・エンコード速度(fps, 棒グラフ, 左軸)
・CPU使用率(%, 折れ線, 右軸)
のグラフ。

まずはpreset mediumについて。AVX2ありとAVXまでの時をそれぞれ測った。

結果 (medium)
x265_benchmark_20131103_01.png

バージョンを追うごとに少しづつ速くなっている。特に1.4ではAVX2使用によって明らかに速い(10%弱)。x265 1.4+3のAVX2の速度は24fpsを超えていて、x265は確かに重いけど、5960Xを使えばfullHDの24fpsを等倍でエンコードできるみたい。

--pmodeによってCPU使用率を70%台から80%台へ上がるけど、逆に速度は下がっている(画質は少し上がってるけど)。--pmodeが効果が大きいのは、--rd 3~4で--rectがオンのときということなので、そんなに効率が良くないのかな? (preset mediumでは--rdは3だけど--rectはオフなため)



次にpreset slowについて。AVX2ありとAVXまでの時をそれぞれ測った。

結果 (slow)
x265_benchmark_20131103_02.png

プリセットslowも同様にどんどん高速化している。mediumほどではなけど、1.4+3でAVX2が効いているのがわかる(3%程度)。

slowでは、--pmodeによってCPU使用率は大きく上がって、70%台から90%台になった。これによって、pmodeをつけたほうが速くなっている。slowでは--rd 4 --rectなので、pmodeが大きな効果を発揮できるんだろう。



以前速度を測定した時はx265 0.6とかだったので、そのころと比べるとかなり速くなってるし、2passエンコードやpsyが追加されてきて次第に機能面でも整ってきている。

pmodeによりマルチコアをより有効に使えるようになり、AVX2への最適化も進んだ。x265はx264よりも大きブロックサイズを扱うので、AVX2がより効果があるかもしれない。

今後もコードの整理やAVX2最適化によって高速化していくことに期待したい。


スポンサーサイト



コメントの投稿

非公開コメント

プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clfilters 
- OpenCLベースの複数のGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定
- これまでの測定結果はこちら

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR