![]() |
Desk Top Video-editing | |
野田無線 > ホーム > やってみよう! DTV > コーデックって何? | ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
![]() |
データを符号化(encode)したり,符号化されたデータを復号化(decode)する時に使用する技術をコーデック(codec)と言います。 要は,データを小さく圧縮することを符号化,圧縮されたデータを元にもどすことを復号化と言い,この符号化・復号化に使う演算等のアルゴリズムをコーデックと言います。 Encode,Decodeは,正式には符号化,復号化と訳しますが,パソコン通信時代の名残で,Encodeのことを圧縮,Decodeのことを伸長,展開,解凍などとも呼びます。 一口にコーデックと言っても,使われる信号の種類や目的によって,非常に多くの種類があります。 主なコーデックを例に挙げると,電話のアナログ信号では,32KHzコーデックや8KHzコーデックなどのアナログ信号用コーデックが使用され(1), PCのプログラムファイルでは,LZW法と呼ばれるコーデックが使用され(2),静止画や動画には,DCT(Discrete Cosine Transform : 離散コサイン変換)と呼ばれるコーデックが使われています(3)。 コーデックには,可逆圧縮するものと不可逆圧縮するものがあります。 ZIPやLhaに使われているLZW法は,データの中で繰り返し現れる数値やパターンを,数値と繰り返し数に置き換えることでデータを圧縮しています。 このため,圧縮率は低いですが,元のデータの情報をすべて含んでいるので,展開して完全に元に戻せる(可逆)圧縮方法です。 これに対し,静止画や動画の圧縮に用いられるJPEGやMPEGなどは,高圧縮率を実現するために,圧縮時にデータの一部を省いてしまい,展開しても元の情報を得られない(不可逆)圧縮方法です。 通常,ディジタル化された動画は,コーデックを使って圧縮する前に,ある程度情報を省いてデータを小さくしています。 「色空間のいろいろ」で詳しく述べますが,ビデオカメラ等のCCDでスキャンされた映像は,輝度についてはすべての情報を記録しているものの,彩度については1/2〜1/4の情報しか記録していません。 デジタルカメラでは,輝度,彩度ともにすべての情報を記録(YUV=4:4:4)していますが,高画質のMotinJPEGでは彩度を1/2に(YUV=4:2:2),MPEGやDV-PAL(YUV=4:2:0),DV-NTSC(YUV=4:1:1)では彩度を1/4にしたディジタルデータを作っています。 例えば,プロ向けの高画質ビデオであるビクターのDigital-Sでも,彩度を1/2(YUV=4:2:2)にして記録しています。 これは,アナログのビデオ映像でも同じで,ベータやS-VHS,Hi8でも輝度信号には十分な帯域を確保していますが,彩度には比較的小さめの帯域しか確保していません。 ただ,S-VHSやHi8よりもベータの方が(輝度,彩度両方において)より広い帯域を確保しているだけです。 では,一般的に用いられることが多い,720×480ピクセル,毎秒30フレーム,彩度を1/4にしたディジタルデータを想定し,データ量を算出してみます。 彩度を1/4にしたカラーディジタル映像では,1ピクセル当たり12bit=3byteのデータ量になります。 これに720×480ピクセルを乗じて,さらに30フレームを乗じると,毎秒31,104,000byte,約29.66MBものデータ量になります。 例え,10GBのHDDを使っても,わずか5分45秒の映像しか記録できません。 これが彩度を1/2にした映像になると,1ピクセル当たり16bit=4byteになるため,毎秒39.55MB。10GBのHDDでも4分18秒しか記録できません。 ランレングス法,ハフマン符号化,LZW法などの可逆圧縮を使っても,ビデオカメラで撮影するような映像は,せいぜい2/3程度にしか圧縮できません。 これでは,データ転送にブロードバンドの光ファイバやIEEE1394を使っても理論値ギリギリに近いレートで,記録媒体に最速のHDDを使っても記録や読み出しが追いつかないほどで,さらに,2時間の映画を記録するために140GB以上の容量が必要になってしまいます。 このため,ディジタルの動画映像を扱うためには,高圧縮が可能な不可逆圧縮技術が必要になっています。 なお,動画の圧縮には,静止画の圧縮方法であるJPEGの技術が応用されています。 JPEGでは,8×8ピクセルのブロックに切り分けて離散コサイン変換します。これで得られたDCT係数を量子化するときに情報の一部を省き,さらに量子化された数値をハフマン符号化(コードテーブルを作成して,出現頻度の高いパターンに頻度の低いパターンを当てはめる可逆圧縮)し,非常に高い圧縮率を実現しています。 これを応用して,MPEGでは,ある基準フレームをJPEG同様の手法で圧縮し,その前後の参照フレームでは,基準フレームとの差分情報のみを記録して圧縮しています。 (こうした映像の国際規格について,さらに詳しい情報が欲しい方は,UNISYSのUNISYS 技報 50を参照してください。) また,DVもJPEGと同じようにDCTを使った圧縮をしていますが,圧縮率が1/5に限定されているところがJPEGやMPEGと異なります。 現在,一般的にDTVで使われるコーデックは,以下の種類があります。( )内は,1秒当たりのデータ量,fpsはフレーム・パー・ピクセル(フレーム/秒)を表しています。 また,YUVについては,「色空間のいろいろ」を参照してください。 上記のコーデックのうち,ビデオ編集に用いるのは上側の4つです。 一番下のコーデックは,Quick Timeに限り,どんなコンピュータでも特殊なハードウェアなしに,それなりの高画質のビデオを提供できる配布用コーデックと考えてください。 上側4つのコーデックは,いずれもJPEGと同じ圧縮技術が応用されています。 ただし,DVとMotionJPEGがすべてのフレームの映像を記録しているのに対し,MPEGではフレーム間圧縮が行われています。 このため,DVやMotionJPEGでは,容易にフレームごとに切り分けてることができますが,MPEGでは,フレームごとに切り分けるためには,基準フレームと参照フレームの間での演算が必要となるため,あまり編集向きのコーデックではありません。 MPEGは,編集よりも完成した映像の配信を目的とした規格であることに注意してください。
| ||||||||||||||||||||
|