H.264/MPEG-4 AVCの圧縮は基本的に「不要なデータを削除する」というもの。これはレース用の車から後部座席やオーディオ設備、エアコンなど不要な設備を捨てるのと同じことです、とBala氏。H.264/MPEG-4 AVCは元データから不要な部分を削除することで圧縮するため、圧縮後のデータから元のデータを再現はできません。そのため、H.264/MPEG-4 AVCは「非可逆圧縮方式」に分類されます。それに対して、PNGは画質を損なわない可逆圧縮なので、たった1枚でもファイルサイズを小さくするのは難しいものがあります。
H.264/MPEG-4 AVCでどんな圧縮が行われるのか、その1例を示したものが以下の画像。左の「Original(元画像)」の画像では、MacBook Proの細かいスピーカーグリルがはっきり見えるのに対して、右の「Post-Discard(圧縮後)」ではつぶれて見えなくなってしまっているのがわかります。この違いは画像をズームすることで初めて気づく程度のものですが、圧縮後のファイルサイズは元画像のおよそ7%ほどに収まっているとのこと。これほどまでの圧縮を可能にするアルゴリズムを理解するため、Bala氏はまず「情報エントロピー」について紹介しています。
例えば、硬貨を10回投げて、全部表が出たとします。この結果を記録するとき、「1回目:表、2回目:表、3回目:表、4回目:表、5回目:表、6回目:表、7回目:表、8回目:表、9回目:表、10回目:表」と書くところを「10回投げたら全て表が出ました」と書けば、前者と後者では示している内容は全く変わらずに記録の文字量だけが減ります。これはつまり「データセットの情報エントロピーを変えずにデータの冗長性を減らした」ということであり、この方法を「エントロピー符号化」と呼びます。
また、本来、非圧縮動画1フレームが持つ色情報はRGBで表現されますが、これをY(輝度)・Cb(青色差)・Cr(赤色差)というYUVで表現する「クロマサブサンプリング」という手法もあります。人間の目は、明るさの変化には敏感に反応しますが、色調の変化については鈍感なもの。クロマサブサンプリングは、人には認識が難しい色差情報をカットすることでデータの削減を可能にします。
さらに、色調や輝度など、空間や時間について変化するデータセットを周波数領域に変換する考え方が紹介されています。例えば、MacBook Proのスピーカーグリルのように色調や輝度の変化が激しい部分は、高周波成分を持っている「高周波領域」です。一方で、影でなだらかなグラデーションがついた机の上は低周波成分を持っている「低周波領域」です。
Bala氏によると、人は変化がゆったりで単調な低周波領域だと画質の劣化にすぐ気づくものですが、反対に変化の激しい高周波領域だと多少劣化したところで認知しにくいとのこと。そこで、高周波領域におけるデータセットの情報を少しずつ排除することで、人間に気づかれないレベルの劣化に抑えながら圧縮します。
上段が画像を周波数領域で表したもので、下段がその画像。右に進むに従って、高周波領域の情報(白い部分)を少しずつ切り捨てています。一番右の画像は一番左の元画像に比べてわずか2%のファイルサイズにまで圧縮されていますが、一目見ただけではその劣化はわからないレベル。ただし、情報エントロピーが変化するため、この圧縮方式は非可逆となります。
さらに、H.264/MPEG-4 AVCはフレーム間予測と呼ばれる技術による圧縮も行います。例えば、固定カメラでテニスの試合を撮影したムービーの場合、ボールやプレイヤーは大きく動きますが、審判やネット、試合の観客が大きく動くことはありません。審判・ネット・観客を1枚の背景にして、ボールとプレイヤーだけを動かすムービーにすれば、データサイズは大幅に圧縮できるはずです。
まず、H.264/MPEG-4 AVCでは画像が16ピクセル×16ピクセルのブロックに分割され、1つの静止画像にエンコードしたものをIフレームと呼びます。そして、Iフレームの次に来るフレームを予測し、そのフレームと実際に来るフレームのズレのみを表示します。差分情報のみでフレームを表現できるため、動画のデータサイズを大きく削減できるというわけです。
そして、前後のフレーム内に写っているものの動きを検知し、その方向や速さを符号化してフレームのデータに収めることで、圧縮率をさらに高める「動き圧縮」もH.264/MPEG-4 AVCの重要な技術。H.264/MPEG-4 AVCでは動き補償の精度単位を定めることができ、最小で4ピクセル×4ピクセル単位で動きを予想することが可能です。このフレーム間予測と動き圧縮によって、Iフレームには冗長な情報が含まれますが、エントロピー符号化で損失することなくデータをさらに圧縮することができます。
by Jose Nicdao
Bala氏によると、前出のわずか5秒間だけAppleの公式サイトのトップページをキャプチャした60fpsムービーの非圧縮動画は、1232×1154という解像度だったとのこと。非圧縮動画のファイルサイズを計算すると1232ピクセル×1154ピクセル×60fps×3バイト×5秒で約1280MBになりますが、H.264/MPEG-4 AVCでエンコードしたことでわずか0.01%にあたる175KBにまでサイズを抑えられたことになります。Bala氏は「H.264/MPEG-4 AVCは、データ転送の帯域幅を減らすという目的で30年以上にわたって積み重ねられた努力の結晶であり、注目に値する技術です」と評価しています。
なお、H.264/MPEG-4 AVCの後継としてH.265/HEVCという、さらに圧縮効率の高い規格が2012年に登場しました。しかし、H.265/HEVCはさまざまな企業の特許が含んでいたために、使用するには高いライセンス料を支払う必要があり、記事作成時点でもH.264/MPEG-4 AVCに取って代わるほどの普及を見せてはいません。また、そうしたライセンス問題を踏まえて、2014年に世界最大のムービー共有サイト・YouTubeを抱えるGoogleが、ロイヤリティフリーのWebMというコンテナフォーマットを発表しています。