web-dev-qa-db-ja.com

2つのビデオファイルを比較して、どちらが最高品質かを確認します

同じビデオ素材が2つ(またはそれ以上)のファイルにエンコードされているとします。私はそれらにいくつかのユーティリティを実行して、どのファイルが品質が「最高」であるかを根本的に指摘したいと思います。 「大まかに」とは、さまざまな側面(ビデオの解像度、ビデオのビットレート、オーディオのサンプリングレート、オーディオのビットレートなど)を1つずつ比較したレポートを取得したいということです。そのうちの。

それは機能に関するものですが、そのユーティリティを実際に使用するには、オープンソースでコマンドラインである必要があります。

31
pfalcon

私はビデオ品質の研究に携わっていますが、あなたの質問に簡単な答えを出すのは難しいです。あなたが望んでいるのは、ビデオの Mean Opinion Score (MOS)、つまり1から5まで、または0から100までの数値を与えるプログラムです。これは、人間。

なぜビットレート/解像度などを単純に比較できないのですか?.

ビデオの解像度を比較するだけでは、品質について何もわかりません。実際、それは完全に誤解を招く可能性があります。前者の場合、ビットレートが低すぎてあらゆる種類の圧縮アーティファクトが発生するため、700MBサイズでの1080pムービーのリッピングは、700MBでの720pリッピングよりも悪く見える可能性があります。

同じことが、同じようなフレームサイズでビットレートを比較する場合にも当てはまります。異なるエンコーダーは、実際には少ないビットレートでより良い品質を提供でき、その逆も同様です。たとえば、XviDで作成された720p 700MB ripは、x264で作成された700MB ripよりもはるかに効率が良いため、X264で作成した700MB ripよりも見た目が悪くなります。

また、最終的な「総合スコア」(MOS)が個々の品質係数でどのように構成されるかを定義する必要があります。これは大きくいくつかの事柄に依存します。

  • 比較する動画の種類(漫画、映画、ニュースなど)
  • 彼らの長さ
  • 彼らの視聴者
  • 元のフレームサイズ
  • エンコードされる前の元の「品質」

私たちは人間がビデオをどのように知覚するかについてさえ話していません。鮮明なディテールと高いモーション解像度を楽しんでいる友人が映画を見ているとします。 彼らのコンテンツのために映画を見ている友達よりも、低品質の裂け目を見るとき、彼らははるかに重要です。映画がおもしろいか面白いかぎり、彼らはおそらく品質をそれほど気にしません。

動画品質の指標にはさまざまなタイプがあります。

今日のビデオ品質の基本的な評価に最も一般的に使用されていると思うもののリストを挙げましょう。いくつかのビデオ品質メトリックが存在し、品質を決定するために使用される情報の種類に従って分類できます。原則として、非常に簡単に言えば、次のものを区別します。

  • 参照なしのメトリックス–入力として1つのビデオを使用し、品質スコアを出力します。あなたの場合、元のビデオさえ持っていないことが多いので、参照なしのメトリックを探しています。このような指標は1つの動画を受け取り、1つの品質スコアを出力します。これが いくつかの例 NRメトリックが検出する問題(例:ぼかし)です。

  • 完全参照メトリック– 2つの入力があり、1つは元の入力ビデオで、もう1つはエンコードされたビデオです。たとえば、DVDムービーを撮り、そこから2つの裂け目を作成し、完全参照メトリックを使用して、元のDVDムービー(つまり、ディスク上のMPEG-2ビデオ)と裂け目との間の品質損失を見積もることができます。これは計算に長い時間がかかりますが、より正確です。

上記のメトリックはビデオコーディングの品質に関するものですが、ビデオのストリーミング時の初期読み込み時間やストールイベントなどの問題を組み込んだメトリックもあります(例 ITU-T P.12 )。

どのソフトウェアを使用できますか?

以下は、一部のメトリックをテストするために使用できる、すぐに使用できるツールのリストです(一部はWindows専用です)。

では、どのような指標がありますか?

PSNR、PSNR-HVSおよびPSNR-HVS-M

手始めに、 [〜#〜] psnr [〜#〜] (ピーク信号対ノイズ比)は非常に使いやすいですが、ビデオ品質を評価する方法としてはやや不十分です。ほとんどのアプリケーションでは比較的うまく機能しますが、人間が品質をどのように認識しているかを正確に推定することはできません。

PSNRはフレームごとに計算でき、たとえば、ビデオシーケンス全体のPSNRを平均して最終的なスコアを取得します。 PSNRが高いほど優れています。

PSNR-HVSとPSNR-HVS-MはPSNRの拡張であり、人間の視覚をエミュレートしようとするため、より正確になります。 [〜#〜] vqmt [〜#〜] および [〜#〜] msu [〜#〜] は、PSNR、PSNR-HVSおよびPSNR-HVS-Mを計算できます2つのビデオの間。

SSIM、MS-SSIM

構造的類似性 (SSIM)はPSNRと同じくらい簡単に計算でき、より正確な結果を提供しますが、フレームごとに計算されます。ウィキペディアのリンクの下にいくつかの実装が見つかるか、または [〜#〜] vqmt [〜#〜] または [〜#〜] msu [〜#〜] を使用できます=。これらのツールには、SSIMよりも優れた(つまり、より代表的な)結果をもたらすMS-SSIMと、他のいくつかの派生物も含まれます。

結果はPSNRと同様になります。繰り返しますが、これを機能させるには、処理されたビデオへの参照を比較する必要があり、両方のビデオのサイズが同じである必要があります。

VMAF

Video Multi-Method Assessment Fusion by Netflixは、既存のいくつかのメトリックに基づいてビデオ品質を計算するための一連のツールで、機械学習メソッドによって0〜100の最終スコアに融合されます。Netflixには- ここですべてを説明しました

[VMAF]は、複数の基本的な品質指標を組み合わせて主観的な品質を予測します。基本的な理論的根拠は、各基本メトリックが、ソースコンテンツの特性、アーティファクトのタイプ、および歪みの程度に関して、独自の長所と短所を持っている可能性があるということです。機械学習アルゴリズム(この場合はサポートベクターマシン(SVM)リグレッサー)を使用して基本メトリックを最終メトリックに「融合」することにより、各基本メトリックに重みを割り当て、最終メトリックは個々のメトリックのすべての強さを保持できます、より正確な最終スコアを提供します。

ffmpegを使用してVMAFスコアを計算する もできます。

VQM

Video Quality MetricVideo Quality Experts Group (VQEG)で検証されており、非常に優れた完全参照アルゴリズムです。 VQMを無料でダウンロードするか、MSUから実装を使用できます。

登録してダウンロードするときは、NTIA一般モデルまたは可変フレーム遅延のビデオ品質モデルを使用します。

その他の指標

  • [〜#〜] pevq [〜#〜] は、ITU-T J.246の下で標準化された完全参照メトリックです。マルチメディア信号を対象としていますが、HDビデオは対象外です。
  • VQuad-HD は、ITU-T J.341として標準化された別の完全参照メトリックです。新しいので、HDビデオに適しています。

どちらも商用ソリューションであり、ダウンロードするソフトウェアが見つかりません。

ITU-T P.1201ITU-T P.1202 など、非参照メトリックに関するいくつかのITU標準もあります。これらは、 IPTVストリーミング。 ITU-T P.12 は、アダプティブストリーミングの場合に使用できます。


概要

次のような単純な客観的に測定可能な基準を比較するだけの場合:

  • フレームサイズ
  • ビットレート
  • 1秒あたりのフレーム数
  • ビデオ解像度

ffmpeg -iを呼び出すだけで、最初に必要なすべての詳細が得られます。 -vstatsオプションもご覧ください。次に、これをスプレッドシートに要約できます。ビデオをエンコードするとき、たとえばx264は必要に応じてPSNRなどを直接ファイルに記録するため、後でこれらの値を使用できることに注意してください。

これらの基準を比較検討する方法については、おそらくビットレートを強調する必要があります。ただし、コーデックが同じであることがわかっている場合のみです。一般的に、両方のビデオがx264を使用する場合、ビットレートが高いほうが良いと言えます。さらに一般的には、同じビットレートの2つのビデオがある場合は、低い解像度を選択する必要があります。アップスケーリングによる劣化は、低いビットレートによる劣化ほど悪くないためです。

コンテンツと個々のエンコード設定の詳細を知らない限り、ビットレートに応じて異なるコーデックを比較することは不可能です。フレームレートも非常に主観的なものであり、25 Hzを大幅に下回る場合は、測定に含める必要があります。

要約すると、ビットレートが唯一のものである場合は、ビットレートを大幅に強調します。目を使うのもお忘れなく:)

92
slhck

私はあなたに最終的な推奨やスコアを与えるツールを知りませんが、 FFmpeg を使用すると、質問にリストしたすべての詳細を出力できます。

コマンドラインで、ffmpeg -iはビデオからの情報を一覧表示します。そこから、情報を解析し、必要に応じて重み付けするスクリプトを記述できます。

1
jhulst