web-dev-qa-db-ja.com

MPEG4圧縮はどのように機能しますか?

MPEG4がデータを圧縮する方法を簡単で明確な方法で説明できる人はいますか?私は主にビデオに興味があります。私はそれに異なる基準や部品があることを知っています。 MPEG4を使用する方法がある場合は、全体的な圧縮方法として主流のものを探しています。

18
jeffD

MPEG-4は巨大な標準であり、多くの技術を使用して、可能な高い圧縮率を実現しています。

一般に、ビデオ圧縮は、エンドユーザーの視聴体験への影響を最小限に抑えながら、できるだけ多くの情報を破棄することに関係しています。たとえば、RGBの代わりにサブサンプリングされたYUVを使用すると、ビデオサイズがすぐに半分になります。これは、人間の目が明るさよりも色に敏感でないために可能です。 YUVでは、Y値は明るさであり、U値とV値は色を表します。したがって、ビューアが違いに気付くことなく、ファイルサイズを縮小する色情報の一部を破棄できます。

その後、ほとんどの圧縮技術は、特に2つの冗長性を利用します。 1つは時間的冗長性であり、2つ目は空間的冗長性です。

時間的冗長性は、ビデオシーケンスの連続するフレームが非常に似ていることに注意してください。通常、ビデオは1秒あたり20〜30フレームのオーダーであり、1/30秒で大きな変化はありません。 DVDを取り出して一時停止し、1つのフレームに移動して、2つの画像がどれほど似ているかを確認します。したがって、各フレームを個別にエンコードする代わりに、MPEG-4(およびその他の圧縮標準)は、連続するフレーム間の差のみをエンコードします( 動き推定 を使用して、フレーム)

空間的な冗長性は、一般に、画像全体に広がる色が非常に低い頻度になる傾向があるという事実を利用しています。これは、隣接するピクセルが同じような色になる傾向があることを意味します。たとえば、赤いジャンパーを着ている画像では、ジャンパーを表すすべてのピクセルの色が非常に似ています。 DCTを使用して、ピクセル値を周波数空間に変換することができます。周波数空間では、一部の高周波情報を破棄できます。次に、逆DCTが実行されると(デコード中)、画像には高周波情報が破棄されなくなります。

高周波情報を破棄した場合の影響を確認するには、MSペイントを開き、一連の重なり合う水平および垂直の黒い線を描画します。画像をJPEGとして保存します(圧縮にDCTも使用します)。パターンを拡大して、線のエッジがそれほどシャープではなく、少しぼやけていることに注目してください。これは、一部の高周波情報(黒から白への遷移)が圧縮中に破棄されたためです。 素敵な写真で説明のためにこれを読んでください

さらに読むために、 この本 は、数学に少し重い場合は、かなり良いです。

36
Lehane

他の一般的なビデオコーデックと同様に、MPEG4は 離散コサイン変換 のバリエーションと、データ量を削減するさまざまな動き補償技術(それが役立つ場合は動き予測と考えることができます)を使用します後続のフレームに必要です。 このページ プレーンMPEG4によって行われることの概要があります。

これは、JPEGで使用される手法と完全に異なるわけではありません。

4
greyfade

MPEG4は、さまざまな手法を使用してビデオを圧縮します。

ウィキペディアをまだ見ていないのであれば、これは良いことです 出発点

[〜#〜] ieee [〜#〜] からのこの記事もあり、これらの手法をより詳細に説明しています。

1
Michael

鋭いエッジには確かに高周波が含まれています。高周波を低減または排除すると、エッジのシャープネスが低下します。鋭いエッジを含む細かいディテールは高周波除去で除去されます-2つの小さなオブジェクトを解決する能力は高周波で除去されます-そしてあなたはただ1つを見ます。

1
Jim