📽️

VMAFとAVQT使って動画品質可視化

2024/03/08に公開

動画品質評価

動画品質評価主に以下のカテゴリーに分けられます:

  1. 主観評価、つまり人による評価で、正確性が高いが、コストが高く、規模化が難しい。
  2. 客観評価、アルゴリズムに依存しています.例えばPSNR(ピーク信号対雑音比)、SSIM(構造類似性)などで、正確性が低く、コストが低く、規模化が容易。
  3. 知覚品質評価、NetflixのVMAFが代表例で、VMAFは機械学習アルゴリズムに基づき、人の識別結果に基づいてモデルを訓練し、実際の人の評価を模倣することを目的としています。結果は人の評価に近い正確さを達成することができ、これが「知覚」という言葉の意味です。利点は正確さが高く、規模化も容易です。今日話すVMAF、AVQTもこのカテゴリーに属します。

もう一つの分類は有源評価と無源評価で、有源評価とは、参照ソースが必要であることを意味し、例えば、未圧縮のRaw動画が参照ソースとしてあり、その後、処理されてエンコードされ、低解像度、低ビットレートの動画になり、これが評価の対象とされ、参照ソース動画と比較してスコアが出されます。知覚品質評価ツールはすべて有源評価に属し、評価とスコアリングに参照ソースが必要です。

応用シーン

動画品質評価の応用シーンには、以下のようなものがあります。参考までに挙げます。

(1) 動画配信プロセス改善

動画を配信する際には、ユーザー体験とコストを考慮して、ビットレートと画質の間で適切なバランスを見つけることが望まれます。そのためには、画質に関して定量的な基準が必要となり、相対的に信頼できる定量指標を提供できるツールが必要です。

(2) エンコーダーの開発

エンコーダーのアルゴリズム開発では、画質、エンコード速度、エンコード効率(圧縮率)など多くの要素をバランスさせる必要があります。画質が一定でエンコード速度が一定の場合に、エンコード効率(圧縮率)を可能な限り高くすることが望まれます。つまり、出力されるビットレートを可能な限り低く保ちたいのです。そのためにも、動画の画質を定量化するツールが必要です。

VMAF

VMAF (Video Multi-Method Assessment Fusion) は、Netflixによって開発された動画品質評価のための知覚的指標です。このアルゴリズムは、人間の視覚システムが動画品質をどのように認識するかを模倣することを目指しており、エミー賞を受賞しています。VMAFは、複数の品質指標や方法を組み合わせて、1つのスコア(0から100まで)に融合させることで、動画の品質を評価します。スコアが高ければ高いほど、動画の品質が良いと評価されます。

  • VMAFは参照ベースの評価を行います。つまり、圧縮またはエンコードされた動画を、元の高品質の動画(参照動画)と比較します。参照動画が高品質でない場合、正確な評価は得られません。
  • 評価対象の動画と参照動画は、フレームレートと解像度が一致している必要があります。不一致があると、VMAFスコアは信頼できるものではなくなります。
  • VMAFは基本的にYUVフォーマットの生動画データを入力できますが、多くの動画ファイルはMP4、AVI、MOVなどの異なるフォーマットでエンコードされています。これらのフォーマットを直接VMAFで使うことができません。したがって、VMAFで評価を行う前に、これらの動画ファイルを適切なYUV形式に変換する必要があります。この変換は、FFmpegなどのツールを用いて行うことができます。
  • 出力ログは.xml、.json、.csv、.subなどの複数の形式で利用可能です。

使い方(mac)

設定

brew install libvmaf

評価

vmaf \
    --reference src01_hrc00_576x324.yuv \
    --distorted src01_hrc01_576x324.yuv \
    --width 576 --height 324 --pixel_format 420 --bitdepth 8 \
    --model version=vmaf_v0.6.1 \
    --feature psnr \
    --output output.xml
オプション 説明 詳細
--reference 参照動画ファイルの指定 src01_hrc00_576x324.yuvという名前の参照動画ファイルを指定します。
--distorted 評価対象の動画ファイルの指定 src01_hrc01_576x324.yuvという名前の評価対象ファイルを指定します。
--width 576 --height 324 動画の解像度設定 動画の幅を576ピクセル、高さを324ピクセルとして指定します。
--pixel_format 420 ピクセルフォーマットの指定 動画のピクセルフォーマットとして420(YUV 4:2:0)を指定します。
--bitdepth 8 ビット深度の指定 動画のビット深度として8ビットを指定します。
--model version=vmaf_v0.6.1 使用するVMAFモデルの指定 VMAFのバージョンvmaf_v0.6.1を使用することを指定します。
--feature psnr 追加の特徴の指定 PSNR(ピーク信号対雑音比)を計算に含めることを指定します。

src01_hrc00_576x324.yuvsrc01_hrc01_576x324.yuvダウンロードして、コマンド叩くと評価結果が表示されます。

参考資料

AVQT

AVQTはAppleが作ったmacOS向けのコマンドラインツールで、動画品質の評価を行うことができます。このツールの入力には元の動画とその圧縮バージョンがあります。圧縮後の動画を処理することで、AVQTは動画の品質を評価し、0から5のスコアを出力します。このツールは、人が動画品質をスコアリングする方法を模倣し、動画品質を自動的に評価する手段を提供することを目的としています。

AVQTの特徴には以下のものがあります:

  • フレームレベルとセグメントレベルのスコアリングをサポート:これは、単一のフレームまたは動画の特定のセグメント(通常は6秒ですが、この時間は設定可能)にスコアを付けることができることを意味します。
  • AVFoundationがサポートするすべての動画フォーマットをサポート:標準ダイナミックレンジ(SDR)、ハイダイナミックレンジ(HDR)、HDR 10、ハイブリッドログガンマ(HLG)、ドルビービジョンなどが含まれます。このようなサポート範囲は、AVQTがさまざまな動画処理および評価シナリオに幅広く応用できることを保証します。

使い方

1)AVQTコマンドラインツールをダウンロード。 Advanced Video Quality Tool

2)AVQTツールを使用して動画の品質をスコアリングするには、avqtコマンドを使用します。このコマンドは、参照ソース動画と圧縮後の動画を提供し、デフォルトのCSV形式でスコアを出力します。

avqt --reference sample_ref.mov --test sample_compressed.mov --output sample_output.csv

オプション 説明 詳細
--reference 参照動画ファイルの指定 sample_ref.movを参照動画として指定します。この動画は品質評価の基準として使用されます。
--test テスト動画ファイルの指定 sample_compressed.movをテスト動画として指定します。この動画の品質が参照動画と比較されます。
--output 出力ファイルの指定 評価結果をsample_output.csvというCSVファイルに出力します。

下はBigBuckBunny動画のAVQTツール使うときの結果です。4.7,4.8なので、結構いい画質が保たれてることがわかります。

参考資料

Discussion