x264 r1867 の crf

なんかcrfの基準が変わったらしいよ…?
という話。

r1867の更新では
猫科研究所様の訳
表示時間を考慮した品質管理らしい。で、フレームレート25fpsが基準の中心。x264は25fpsが好きですな。keyintのデフォも25×10の250だし。ヨーロッパ(?)は25fpsなんだっけ。どうでもいいけど。

重要なのはcrfが同じでも、フレームレートによって画質が変わるということなのだが、「じゃあ実際どんくらいよ?」ってのが気になる。あと、そんなことより一番重要なのは、「r1834と同じにするにはどうすりゃいいのよ?」というあたり。この辺を実験してみた。

x264のr1834とr1867で比較。

動画は
800x600
6891frame
30fps

コマンドラインは
--preset medium --ipratio 1.5 --qcomp 0.7 --scenecut 60 --min-keyint 4 --keyint 300 --b-adapt 2 --me umh --no-fast-pskip --no-dct-decimate


これをavisynth + x264でエンコード。x264は例によってx264.nlのもの。

元の動画は30fpsなのだが、
avisynthでAssumeFPS()することで、フレームレート(だけ)をいじる。

・r1834
・r1867 30fps(29.97でもいいけど、今回大した差はないはず)
・r1867 25fps
・r1867 23.976fps
・r1867 15fps

で比較。
crfは0.5刻みで10~30の間をテスト。(この範囲外を使う人はいないっしょ?)

これまで(r1834)なら、フレームレートを変えても、出来上がる動画のサイズ(容量)は同じになる。逆に、r1867からはフレームレートを下げると高画質(低圧縮)になるはず。

で、結果。

これは全体図。
横軸がcrf値、縦軸は動画のサイズ(容量、KB単位)。
x264_crf_r1834_1867_03
--crfは小さいほうが低圧縮(高画質)ですよ~という当たり前の図。
これだと線が重なってよくわからないので拡大。

x264_crf_r1834_1867_04

r1834の線は、r1867 25fpsに隠れてしまっていて、ほぼ同じってことがわかる。
猫科様のところに
『目安として「これまでと同じCRF値で同じフレームあたりの品質が再現される」フレームレートが25fps』
とあるので、当然なのだが。

で、r1867 30fpsは、高圧縮(低画質)寄りになっている。同じcrfだと5%ぐらい縮んでる。むろん縮んだ分画質は悪くなってるはず。

グラフから、同じ圧縮率(画質)=同じ動画サイズにするには、30fpsならばr1834の設定よりもcrfを -0.3 ぐらいしなきゃいかんようだ。

まあ、個人的には「フレームレートによってcrf値と画質の関係が変わるってどうよ?」と思うのだが、どうせ29.97fpsでしかエンコードしない(というか自動フィールドシフト時は29.97fps指定)ので「いままでより-0.3」としておけば問題ない。うん。

もっと言えばcrfの0.3差なんていじる必要もない誤差でしかない。あんま気にしてもしょうがない。こんな実験するまでもなかった…と。
スポンサーサイト



コメントの投稿

非公開コメント

ちょっとだけ

更新お疲れ様です。

ちょっとだけ気になる点があるので、ご報告まで。
エンコ中にaviutlを最小化すると、タスクバーに表示される
進捗率の%表示が止まってしまいます。
(実際は進んでいるのでカーソルを当てるか、ウィンドウサイズを
戻すと%が進みます)
自分の環境だけでしょうか・・・

環境:Vista32bit aviutl99i8ベース
MP4Box:0.4.6-rev2485
x264:r1834 32bit

Re: ちょっとだけ

むー、それは気になりますね…
しかし、うちの環境では再現できませんでした。
・Win7 64bit, Aviutl 0.99i8, x264 r1834 32bit
・XPMode (XP 32bit), Aviutl 0.99i8, x264 r1834 32bit

なぜだ…
Vistaでやってみないといけないのかな?

質問ですが、
x264guiEx側だけなのでしょうか?
それともAviutl側の進捗表示も止まるのでしょうか?

Re: ちょっとだけ

うわん。うちだけなんですねぇ。

先の報告はAviutl側の進捗表示です。
いろいろ試してみました。

1)エンコ開始と同時に最小化(Aviutl、Ex両方)
Aviutlの検索は進捗が進む。出力中になると0%のまま。
Exも初期表示のまま。
(タスクバーにカーソルを当てるとポップアップは正しく出る)
 →50%越えたあたりで進捗表示が正常に動き出す(両方とも)。

2)進捗50%未満での動作(両窓とも開いた状態)
Aviutlの検索は進捗が進む。出力中になると0%のまま。
Exも初期表示のまま。
 →開いた状態でもタスクバーの進捗が進んでないことに気が付きました。。aviutlウィンドウの上部をクリックしてアクティブにしてやると、その時の進捗率がタスクバーに反映されます。Exのウィンドウの上部をクリックした場合も同様でした。(ウィンドウの上部(名前が分からんw)をクリックした場合だけです。中をクリックしてもダメです)

3)ソースを変えてみる
1)、2)はAT-Xを録画したTSファイルをそのままAviutlに読み込んでエンコした場合です。
次にこのTSファイルをDGIndexで編集、d2vファイルからエンコした場合。
 →1)、2)と同じ結果
次に地デジを録画したTSファイルをエンコした場合。
 →両方とも正常に進捗を表示
次に地デジを録画したTSをTMPGenc MPEG Editor3で編集、MPEG2-PS出力したものをエンコした場合。
 →両方とも正常に進捗を表示
次にDVDをリッピングしてDVD2AVIで編集、d2vファイルからエンコした場合。
 →両方とも正常に進捗を表示

ということで、AT-XのLong-GOP仕様のTSをエンコするときだけ発生?という結果でした。
自分でも毎回起きてたような気がしてましたが、AT-Xだけという意外な結果です。。

Re: ちょっとだけ

うーん、いや、お疲れ様です。
不思議な結果ですね…

にしても
>開いた状態でもタスクバーの進捗が進んでない
となると、x264guiExでどうにかすることはたぶん困難ですね…
ウィンドウタイトルの変更はタスクバーに自動的に反映される
もんだと思っていたのですが…

しかし、なんとソースによって違うとは。
出力とは全く関係なさそうなのに…

>50%越えたあたりで進捗表示が正常に動き出す
てのも謎ですね…

Re: ちょっとだけ

50%というのは2passでエンコしてるので、2pass目に入ると
正常に表示されるみたいです。

一応、テスト用に1分間程録画したファイルを置いておきます。
http://www1.axfc.net/uploader/Si/so/97644.7z

お暇があったら試してみてくださいな。

No title

あ、ダウンロードのキーワードは"test"です。。

Re: No title

どうもです。

Win7 64bit → 症状なし(というかタスクバーに文字列は表示されない)
XPMode → たしかにタスクバーの文字が…止まってる…

となりました。
ウィンドウタイトルはちゃんと変わってるのに…
どうすればいいんだろ…

えと、今忙しいんで、週末にでももっといろいろやってみます。
プロフィール

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対応版

rkmppenc
- Rockchip系SoCのhwエンコーダ

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