ソフトウェア

幅広く利用される動画圧縮コーデック「H.264/MPEG-4 AVC」はどうやって巨大なサイズのムービーを劇的に圧縮するのか?


動画圧縮標準規格MPEG-4の1つでもあるH.264/MPEG-4 AVC/MPEG-4 AVCは「低ビットレートでも高画質」を目指した動画用の圧縮コーデックです。2003年に登場して以来、H.264/MPEG-4 AVCはインターネット上で公開されるムービーやビデオ電話、防犯カメラ、ドローンなど、ありとあらゆる場面で利用されています。そんなH.264/MPEG-4 AVCがどのようにして動画を圧縮しているのか、その技術の正体についてエンジニアのSid Balaさんがブログで説明しています。

H.264 is magic: a technical walkthrough of a remarkable technology.
https://sidbala.com/h-264-is-magic/

圧縮されていない生の動画は、パラパラ漫画のように1秒間に何十枚もの静止画を連続でつなぎ合わせたものです。さらに色情報は各256段階のR(赤)・G(緑)・B(青)というRGBで表現されるため、1ピクセルは3バイトの色情報を持ちます。例えば、解像度1080pリフレッシュレート60Hzという非圧縮動画の1秒当たりのファイルサイズは、1920ピクセル×1080ピクセル×60Hz×3バイトで約373MB/sとなるわけです。

by Jason Eppink

しかし、これでは仮に容量50GBのBlu-rayディスクに1080p・60Hzの非圧縮ムービーを収納しようとしても、およそ2分14秒ほどしか入らない計算となり、実用的とはいえません。動画データを扱いやすくするためには、どうにかしてそのサイズを圧縮する必要があります。そのためにはさまざまな方式があり、その中でも最もよく使われるものの1つがH.264/MPEG-4 AVCというわけです。

H.264/MPEG-4 AVCは国際電気通信連合(ITU)の1部門であるVideo Coding Experts Group(VCEG)と、ISO/IEC JTC 1によって共同開発されました。「H.264」「MPEG-4 AVC」と2つの名前がありますが、ITU側とISO/IEC側で規格名が異なるだけで、技術的には同一のもの。

Bala氏は、Appleのホームページのスクリーンショット(PNG形式)と、同じ解像度・60fpsでAppleのホームページを5秒間キャプチャしたH.264/MPEG-4 AVCムービーを比較しています。静止画であるスクリーンショットのデータサイズは1015KBであるのに対して、ムービーは175KB。ムービーは5秒×60fps=300フレームもの静止画の連続で構成されているにも関わらず、たった1枚の静止画のおよそ6分の1というサイズにまで圧縮されています。


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というコンテナフォーマットを発表しています。

この記事のタイトルとURLをコピーする

・関連記事
HEVCより高性能でロイヤリティフリーの新しいAV1デコーダー「dav1d」をVLC Player開発元が発表 - GIGAZINE

次世代動画コーデック「AV1」の圧縮技術を利用する次世代画像フォーマット「AVIF」 - GIGAZINE

次世代コーデックの本命「AV1」の技術仕様をXiph.Orgが解説 - GIGAZINE

無料で5ミリ秒という超低遅延を実現する非可逆音声圧縮コーデック「Opus」、何がすごいのかまとめ - GIGAZINE

JPEGをさらに高圧縮する「mozjpeg 2.0」で2GB超の画像ファイルを圧縮 - GIGAZINE

HTML5の標準を狙うGoogleの動画フォーマット「WebM」のこれまでまとめ - GIGAZINE

in ソフトウェア, Posted by log1i_yk

You can read the machine translated English article here.