私とマルチメディアVIDEO-ITを取り巻く市場と技術MXFラボ

TOP
TOP > MPEGラボ > 第20回

WinPCLabs Webの動画を速く、きれいに!“コーデック”

2004年2月号掲載

第20回
DVD並みの映像をネットで送るMPEG-4の新方式「AVC(H.264)」とは?

MPEG-4の新しいビデオ圧縮規格である「MPEG-4 Part 10 AVC」の実用化が始まった。別名H.264とも呼ばれる。MPEG-2と比較して約半分のビットレートで、同等の画質が達成できるとされる。2004年春には、この規格を採用した製品がいくつか登場する見込みだ。今回はこの新しいビデオ圧縮規格について解説する。

MPEG-4に新しいビデオ圧縮技術が加わった。正式には「MPEG-4 Part 10 AVC」と呼ぶ。AVCは「Advanced Video Coding」の略だ。日本のデジタル放送の音声圧縮に使われている「AAC (Advanced Audio Coding)」と同様、MPEG規格だが新しい圧縮方式であることを意味する。
MPEG-4 Part 10 AVCは、「H.264」規格とも呼ばれる。MPEGは、ISO(国際標準化機構)とIEC(国際電気標準会議)が共同で策定している国際規格だ。一方H.xxxは、ITU(国際電気通信連合)が策定している国際規格。ビデオ圧縮規格が乱立するのを避けるために、ISO/IECとITUの共同チーム「Joint Video Team」で策定が進んだため、当初はJVT規格とも呼ばれた。

共同で開発・策定されたMPEG-4 Part 10 AVCは、ISOとIEC、ITUがそれぞれの分野で共通に使える技術となった。団体ごとにそれぞれの呼び名を使っているが、本記事では、H.264/AVCと表記する。

既存の技術を組み合わせ計算は重いが画質は向上

H.264/AVCは、MPEG-2ビデオの半分のビットレートで同じ画質を達成することを目標に策定された。圧縮や伸張の演算処理は重たくなるが、近年のLSIやCPUの能力向上によって実現が可能となった。

高画質を達成するためのさまざまな技術は、画期的な新技術ではなく、既存の技術を組み合わせたものだ。一つひとつの技術では数%ずつしか改善できないが、組み合わせることでMPEG-2の約半分のビットレートで同等画質を達成した。H.264/AVCで採用された技術は以下のようなものだ。

可変マクロブロックサイズ
MPEGビデオ圧縮では、圧縮処理の単位として、画面を正方形の小さな「マクロブロック」に分割する。MPEG-2では16×16ピクセル、MPEG-4では8×8ピクセルも使える。H.264/AVCでは、4×4ピクセル〜16×16ピクセルのさまざまなサイズが使えるようになった。16×8や4×8など全部で7種類ある。

MPEG-2では、ビットレートが低いと、ブロックノイズと呼ばれる正方形のマス目が目立つようになる。ブロックサイズを小さくすることでマス目が目立ちにくくなり、画質が向上できる。エンコーダは、映像の内容に合わせて、画面上をさまざまな大きさのマクロブロックに分割する。どのように分割するかは、エンコーダの処理方式次第だが、最適な組み合わせを見付けるには、大量の演算処理が必要となる。

フレーム間予測時の遠隔参照フレーム
MPEGビデオ圧縮では、一般に隣り合うフレームの映像が大きく違わないというビデオ映像の性質を利用し、隣り合うフレームの差分を取ることで情報量を圧縮している。MPEG-2やMPEG-4では前後のフレームとの差分しか取れなかったが、H.264/AVCでは最大5フレーム前との差分を取れる。エンコーダはどのフレームとの差分を取ると一番圧縮率が良くなるかを探す必要があり、演算処理とメモリー使用量が大幅に増える。

フレーム内予測
MPEGビデオ圧縮では、前後のフレームに関係なく1フレーム単位で圧縮するフレームをIフレームと呼ぶ。従来のIフレームは、マクロブロック単位に分割し、各マクロブロックを圧縮していた。H.264/AVCでは、フレーム内予測と呼ばれる技術が導入され、同じフレーム内で類似するマクロブロックを探し、その差分を取って圧縮する。演算量が増えるが、圧縮率は向上する。

整数変換
MPEGビデオ圧縮では、エンコード時に差分を取った後、マクロブロックを圧縮するために高周波成分、つまり画面の細かい点を省略する演算を行う。従来のMPEGビデオ圧縮では、8×8ピクセル単位でDCT演算(離散コサイン変換)をしていた。H.264/AVCでは、4×4ピクセル単位で整数変換と呼ばれるDCTに似た演算手法を使う。DCTは浮動小数点計算が必要だが、整数変換は整数計算のみで計算でき、しかも掛け算処理を必要としない分、高速に演算できる。

ループフィルタ
ビットレートが低い場合、デコード後の映像にフィルタ演算を適用することで、ブロックノイズを削減できる。従来のMPEGビデオ圧縮では、デコーダの機能として実装されている例があった。H.264/AVCでは、エンコード時にこのフィルタ演算を考慮することで、画質を向上できる。

エントロピー符号化
MPEGビデオ圧縮では、圧縮の最終段階では、冗長度を減らすためのエントロピー符号化と呼ばれる圧縮処理をする。ZIP圧縮に相当する処理だ。

H.264/AVCでは2種類の手法が規定されている。そのうちCABAC(Context-based Adaptive Binary Arithmetic Coding:適応算術演算符号化)と呼ばれる圧縮法は、周りの領域のデータ内容に合わせて最適なモードで圧縮するもので、より圧縮率が向上する。

フォーマットは既存形式 2004年春には製品が登場

H.264/AVCはビデオのみの圧縮規格で、オーディオの圧縮は既存のAACとの組み合わせが多いと考えられる。また、システム(多重化)も既存のMP4フォーマットやMPEG-2 TSなどが使われる。

H.264/AVCの実用化はこれからだ。H.264/AVCのエンコードはMPEG-2の3〜4倍、デコードはMPEG-2の2〜3倍の演算量が必要と言われている。リアルタイムソフトエンコードは実現しているが、H.264のフル機能を発揮するには、まだハードウェアエンコーダが必要だ。2004年春には、ハードウェアエンコーダ製品が登場する見込みだ。H.264デコーダ内蔵予定の製品としては、ソニーの携帯型ゲーム機「PSP」などが知られている。

図1 2003年11月に幕張メッセで開催された「InterBEE 2003」のアイ・ビー・イーブースで展示されたH.264/AVCのデモシステム。ビデオソースをH.264/AVCでエンコードして伝送、受け取り側でデコードして再生している。

●同じ画質を得るために必要なビットレートの移り変わり

図2 MPEG-2ビデオ規格は変わっていないが、エンコーダの進化により少ないビットレートでも高画質が得られるようになった。MPEG-4はH.263から生まれた規格。今回は、H.26Lを取り込んでH.264/AVCとなり、さらに低いビットレートでも、高い画質が得られるようになる(Modulus Videoによる)。

●H.264/AVCエンコーダの代表的なブロック図

図3 H.264/AVCエンコーダの代表的ブロック図。従来の離散コサイン変換から整数変換を使うようになり、フレーム内予測やループフィルタなどが追加された。動き予測も、可変マクロブロックサイズや参照フレーム数の増加など機能が拡張された。

 

(文/ 竹松 昇、(株)朋栄アイ・ビー・イー) ※編集の関係上、雑誌掲載内容と少し異なる個所があります。

H.264関連製品紹介ページ H.264関連製品特集

このテーマを製品化すると Multi Video Processor Pro
Internet Video Processor Publish Edition
HVP-100
VSS AVC Professional Encoder/Decoder SDK

製品・システム・技術に関するお問い合わせ