CRFガイド(x264およびx265の固定レート係数)



Crf Guide Fixed Rate Factor X264



元の: https://slhck.info/video/2017/02/24/crf-guide.html
元の時間:2017.02.24
翻訳時間:2019.02.01

CRFガイド(x264およびx265の固定レート係数)

固定金利係数とは何ですか? (定率係数)

固定金利係数(CRF)は x264x265 エンコーダのデフォルトの品質(およびレート制御)設定。値の範囲は0〜51です。値が小さいほど品質が高く、出力ファイルが大きいほど、値が高いほど圧縮率が高くなりますが、特定の値になる可能性があります。時間は品質の大幅な低下に気づきました。



x264の場合、値は通常18〜28です。デフォルト値は23で、最初にそれから始めることができます。

ffmpegでは、次のように使用できます。



ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4

x265の場合、デフォルトのCRF値は28です。

ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4

CRFが何かわからない場合は、デフォルトから始めて、出力ファイルの主観的な認識に基づいて調整できます。出力品質は十分ですか?番号?次に、CRFを少し下げます。出力ファイルが大きすぎませんか?次に、より高いCRFを選択します。特定の結果は変わる可能性がありますが、一般に、CRF値が+6の場合はファイルサイズが半分になり、-6の場合はサイズが2倍になります。

最適なコーディングを実現するには、主にオフラインファイルストレージでCRFエンコーディングを使用する必要があります。他のアプリケーションシナリオについては、ここにいくつかの提案があります。 その他のレート制御モード



画像


CRFと一定のQP

CRFは、固定レートモード(CBR)に関連する「固定品質」コーディングモードです。固定品質を取得する一般的な方法では、エンコーダーは同じタイプのビデオフレームのそれぞれを同じ量のデータで圧縮します。つまり、同じ量の情報が破棄されます。技術的には、これは、特定のブロックのピクセルセット(マクロブロック)が破棄する情報の量を定義する固定QP(量子化パラメーター)を維持します。これにより、通常、ビデオシーケンス全体でコードレートが大きく変動します。

CRFモードは、上記のプロセスよりも少し知識が豊富です。さまざまなビデオフレームをさまざまな量のデータで圧縮するため、特定の標準の知覚品質を維持するために、必要に応じてQP値が変更されます。これは、ビデオコンテンツの可動性を考慮に入れることによって実現されます。固定QPエンコードエンコーダーの場合、値が18に設定されていると、フレームの内容に関係なくQP値は18のままになります(異なるフレームタイプ間のわずかな偏差ですが、ここでは無視できます)。 CRFモードで値を18に設定すると、QPは動きの多いコンテンツ領域である20に増加し、動きの少ないビデオシーケンスでは16に減少します。このような戦略は、時間の経過とともにレート割り当てに質的な変化をもたらします。

たとえば、これには1つあります( 私の他の記事から グラフは、固定QPモードとCRFモードで異なる値(17、23)を使用してビデオの2つのセグメントをエンコードしたときのコードレートの変化を示しています:

画像

CRFコードレートラインは常にCQPコードレートラインよりも低くなります。これは、エンコーダが特定の知覚品質を維持しながら帯域幅を節約できることを意味しますが、CQPでは一部の帯域幅が無駄になります。この効果は、例の最初のビデオで特に顕著です。

なぜスポーティさが重要なのですか?

人間の目は、運動中よりも静物の詳細を見ることができます。このため、ビデオエンコーダーは、静止画像に適用する圧縮を少なくして(保持しながら)動画に適用する圧縮を増やす(詳細をドロップする)ことができます。詳細))。

素人の言葉で言えば、これは人間の視覚系が物事の変化によって「気を散らされ」、画像がより多くの圧縮マークを観察するのに十分な時間画面上に留まらないためです。少し技術的な観点から、高い機動性はブロック構造のように「覆い隠し」ます(元のテキストはブロックされ、後ろのすべての単語の元のテキストはブロックの類似した変形です。つまり、次のwikiを参照できます)圧縮アーティファクト 圧縮アーティファクト )。対照的に、画像があまり動きにくい場合は、画像を観察する時間が長くなり、気を散らしたり、アーティファクトを隠したりする可能性のあるものは何もありません。これらの画像はできるだけ圧縮しないようにする必要があります。運動性が低い場合、圧縮アーチファクトはより顕著になり(視覚的に表示され)、見苦しくなります。

CQPモデルが本当に良くないかどうか尋ねるかもしれません。いいえ、2つのモードの知覚品質は同じですが、問題は、実際には気付かないビデオコンテンツ領域で十分な圧縮を実行できないため、データスペースが無駄になることです。

実際、多くの人が1パスエンコーディングでCRFを使用することが多く、CQPを使用する理由はないと主張しています。 CRFを使用するもう1つの良い証拠は、これがx264およびx265開発者によって選択されたデフォルトのレート制御モードであることです。

ビデオ品質指標について

ビデオシーケンスの品質を比較するための簡単な方法がいくつかある場合(フレームあたりの信号対雑音比の測定に基づくPSNRなど)、CRFコーディングの品質はCQPよりも低いと結論付けることができますが、人間の主観的な意見です。 CRFでのコード結果は、CQPでのバージョンと同じかそれよりも優れていると見なされます。細部に気を配る部分では最小限の圧縮を行い、最も気にしない部分では最大限の圧縮を行います。つまり、PSNR値から計算された平均品質は、客観的な基準ではわずかに低くなりますが、 知覚的 ビデオ品質が高くなります。

これは使用する別の反対意見です PSNRSSIM このような単純なインジケーターは、ビデオ品質の証明を評価するために使用されます。これらは個々のフレームにのみ焦点を当てているため、画像の動きなどの知覚効果を考慮に入れることはできません。お気に入り VQMVMAF 知覚された経験に基づくそのような評価システムは、ビデオ損失を評価するためのより良い選択です。

ビデオ品質とコードレートはどのように関連していますか?

すべてのビデオクリップが同じように「簡単に」圧縮できるわけではありません。低モーションでグラデーションが滑らかなコンテンツは圧縮が簡単ですが、高モーションで多くの空間詳細コンテンツはエンコーダーに依存します。ここで「簡単」または「難しい」とは、同じビットレートで、簡単にコーディングできるビデオソースは、エンコードが難しいビデオソースよりも優れた知覚品質を持つことです。

CRFモードには問題があります:CRF値が異なると、ビデオごとに異なるビットレートが生成されます。 (実際には、 YouTubeのように ソースビデオの詳細については、CRF値を指定した後の最終的なコードレートを確実に予測することはできません。 )。

たとえば、CRF値が23に設定されている場合、最終的なエンコードレートはソースビデオの場合は1500 kBit / sですが、別のソースビデオの場合は1000 kBit / sになります。彼らは同じ品質に見えるはずですが。 CRFモードの使用は、「十分なコンテンツの詳細を保持するために必要なビットレートを選択する」エンコーダーと同等です。これは1対1の対応ではありません。

クラウドエンコーディングサービスBitmovinは実際のエンコーディングの前になります CRFの使用 コンテンツの複雑さを測定するため。

CRF値を高く設定しすぎると(たとえば30)、ハイモーション画像では、この部分のコードレートが簡単すぎて低くなりすぎるため、ブロック状のアーティファクトが表示されることに注意してください。エンコーダーは、これらのより複雑な画像に対して(たとえば)32 QP値を選択しますが、これは量子化演算子には重すぎます(注釈:値が低すぎて十分な画像の詳細を保持できないことを理解するには、ここでは重すぎます)。記事が始まると、CRF値の選択は、必要なビデオ品質のレベルによって異なります。

テレビやケーブルデバイスにまだ不明瞭なブロックアーティファクトがあるのはなぜですか?

ケーブルまたは衛星放送のコンテンツにブロック状のアーティファクトが表示されるのはなぜですか?オンラインビデオストリーミングでも?問題は、ビデオコンテンツの特定の部分に使用するビットレート値が低すぎることです。特に、テレビ放送では、ストリーミングメディアをエンコードするために固定ビットレートが使用され、さまざまな運動レベルのコンテンツを収容するためのスペースが残されていません。したがって、提示される複雑なコンテンツには、放送局が設定したよりも多くのコード化されたデータスペースが必要になるため、これらのテレビ放送にはブロック状のアーティファクトが含まれる可能性があります。彼らは「あなたはより多くの詳細を保持しようとしますが、内容がどんなに複雑であっても、ビットレートをこれより高くさせないでください」と言うだけです。

今日のストリーミングコードは少しスマートになります。 YouTubeまたはNetflexは、2パスまたは3パスのアルゴリズムを使用します。このアルゴリズムでは、特定のソースビデオのCRFエンコーディングによって、後続の2パスエンコーディングの最適なビットレートが決定されます。これにより、帯域幅の要件を超えることなく、これらの複雑なシーンのコンテンツをエンコードするのに十分なコードレートが確保されます。

私の他の記事からである可能性があります レート制御モードの詳細 コンテンツ


この記事の一部は、もともとHandbrakeの公式ドキュメントからのものでしたが、現在はそこから削除されています。ウィキペディアにも簡単に掲載されましたが、公式のハンドブレーキドキュメントと同じように削除されました。この記事では、これらのコンテンツを復元し、いくつかの場所を補完しようとしています。コンテンツにオリジナルのドキュメントがあるかどうかわかりません。ある場合はお知らせください。

更新:

  • 2018年3月–マイナーアップデートと手順。
  • 2017年4月–説明のために別の記事の画像を追加しました。
  • 2017年2月-記事の構造をより合理的にしながら、いくつかの関連する開発者からの提案に基づいて書き直します。