6

私はビデオ圧縮にまったく精通していませんが、現在、H.264 を使用して残余画像を圧縮するプロジェクトに取り組んでいます。

私の質問は、ビデオ エンコーダーに関する一般的な性質のものです。私が理解しているように(ウィキペディアが説明しているように)、ブロックモーション補償エンコーダーは現在のフレームをいくつかの重複しないブロックに分割し、現在のブロックの元の参照フレームでチェックするブロックごとに、目的のブロックと動き補償されたブロックの場合、この残差を何らかの方法でエンコードします。

ウィキペディアは次のように述べています。「ブロック モーション補正の主な欠点は、ブロックの境界に不連続性が生じることです (ブロッキング アーティファクト)。これらのアーティファクトは、人間の目で簡単に見つけられ、リンギング効果を生み出す鋭い水平および垂直エッジの形で現れます (残差フレームの変換コーディングに使用されるフーリエ関連変換の高周波数サブバンドの大きな係数)。」

したがって、参照フレームには既にブロック アーティファクトが含まれているため (エンコードされているため)、これらのブロック アーティファクトが現在のブロックにシフトされ、残差が計算されます。シフトされたブロックは、残差の不連続としても表示されます。また、不連続性は一般に圧縮に悪影響を及ぼします。

動き補償されたブロック エンコーダーは、残差を圧縮する前に、このブロック アーティファクトをどうにかして処理しますか? ブロックがどのようにシフトされたかを正確に知っているため、ブロック境界がどこにあるかを知っており、残差をエンコードする前またはエンコード中に、この場所で不要な高周波数を削除/無視して、それらについて何かを行うことができます。このようなことが H.264 のようなコーデックで実行される場合、エンコーダーがこれを行う方法の主な概念を説明したり、用語を説明したりできますか? エンコーダーは参照フレーム内のブロック アーティファクトをどのように処理しますか?

4

1 に答える 1

0

@Mat: これは良い質問であり、ビデオ エンコーディングの研究のオープン エリアである可能性が非常に高いです。簡単に言えば、私の知る限り、現在のビデオ エンコーダーは、モーション推定に対するブロック アーティファクトの影響を明示的に処理していません。

詳細度の低い領域での高速モーションの場合、顕著なブロック アーティファクトがある場合、モーション ベクトルがブロック サイズの倍数になることがあります :) 言い換えれば、モーション推定は前のフレームのブロックを見つけて、元の画像の詳細ではありません。これはおそらく非常にまれです。動きが速く、画像のかなり特徴のない領域と、明らかに不十分なビットレートの両方が必要です。おそらく、これを示す合成ビデオ シーケンスを作成できます。ブロック境界の知識が役立つ方法があるかどうかは明らかではありません。ブロックエッジが次のフレームの残差に高周波成分を導入する場合、それらがブロックアーティファクトに由来するかどうかに関係なく、それらの人為的に導入された成分を消去/修正するためにビットを費やさなければなりません...そしてそれでも、

ただし、H.264 や VP8 などの最新のコーデックにはループ内デブロッキング フィルターがあります。つまり、デコードされたフレームは参照として使用される前にデブロックされます。これにより、ブロック ノイズが減少し、問題の影響が最小限に抑えられます。正しく識別されます。

于 2012-11-25T13:46:25.287 に答える