GOM Encoder

エンコード関連

コーデック、ビットレート、キーフレームとは何ですか?

1.コーデック

動画ファイルは音声と映像データで構成され、ファイルのサイズを小さくするためにこのデータを圧縮して保存します。

(圧縮しないと最大100倍程ファイルのサイズが大きくなります。)エンコーディング時に圧縮(Coding)して、

再生時に圧縮を解凍する(DECoding)モジュールを合わせてコーデック(CODEC)と言います。

映像コーデックはMPEG4、XVID、DIVX、WMVなどが多く使用されており、音声コーデックはMP3、WMV、AACなどが通常多く使われます。

 

 

2.ビットレート

動画エンコーディング時に使われる圧縮方式は損失圧縮です。データの量は減るが、原本のデータを100%保存するのではなく、

損失させながら減らす方式なので圧縮を多くするほど、画質/音質が大幅に落ちます。

ビットレートは1秒間の映像/音声をどれほどのデータを占めるように圧縮するのかを指定する単位です。

ビットレートが高いほど圧縮率が低く、画質/音質が高くなり、ビットレートが低いほどエンコーディングされるファイルのサイズは小さくなるが、画質/音質も低くなります。

ビットレートの正確な単位はBITS PER SECONDで、8BITは1BYTEなので800kbpsにエンコーディングされた動画は再生時間1秒当り100kbytesのサイズになります。

 

 

3.キーフレーム

初期の映像コーデックは画面の一枚一枚をjpegのようにイメージファイルで圧縮して保存する方式を使用しました。

このような方式は非常に具現しやすいという長所はあるが、画面が全く動いていない場合も多くのデータを使わなければならないため、圧縮率を高めることが難しくなります。

このような短所を克服するためにmpegコーデックからは映像の変化率を感知しながら変化した部分のデータのみを保存する方式で圧縮効率を上げ始めました。

このような方式の問題点は、データが画面の変化した内容だけを込めているので、

動画再生時に途中にジャンプしたい時の処理が非常に難しくなるため、途中にキーフレームという、エリアの全ての情報を持っている部分を作成しておく方式を使用します。

普通、キーフレームを5~10秒に一つずつ作成し、特殊の場合は1秒ほどに短く設定する必要がある場合もあります。  

(キーフレームを短く設定すると探索時に便利ですが、容量対比画質が悪くなる短所があります。)