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

TOP
TOP > MPEGラボ > 第18回

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

2003年12月号掲載

第18回 AVIはストリーミングできない?動画ファイルの内部構造を知る

コーデックとファイルフォーマットを混同して理解していないだろうか。例えば、先日Microsoftが発表した「Windows Media Video 9 VCM」はWMVコーデックを使った映像データをAVIファイルに格納できるというものだ。今回は、こうした複雑な動画ファイルのフォーマットとコーデックの関係を解説する。

Microsoftのコーデック「Windows Media Video」を使うと、圧縮したビデオファイルがASFフォーマットのファイルに格納される。ところが最近、Microsoftから「Windows Media Video 9 VCM」というソフトウェアモジュールが発表された。これを使えばAVIフォーマットのファイルにWindows Media Videoで圧縮したビデオを格納できる。この内容をきちんと把握するには、コーデックとファイルフォーマットについて正しく理解する必要がある。

ファイルフォーマットとコーデックは、それぞれ独立して変更できるように設計されている。ファイルフォーマットは、ビデオやオーディオデータを格納する入れ物に相当する(図1)。ビデオとオーディオのデータを合わせて格納し、1つの「ファイル」としてコピーや再生、転送できるようするものだ。ファイルフォーマットには、ビデオやオーディオの再生タイミングを規定して同期させるための情報や、ビデオの途中から再生ができるようにするためのインデックス情報も格納されている。

コーデック(CODEC)は、COmpression/DECompressionの略で、圧縮と伸張をするソフトウェアやハードウェアのモジュールを意味する。ビデオとオーディオは別の手法、つまり別のコーデックで圧縮される。圧縮されたビデオデータとオーディオデータは、別々に存在する。これらの圧縮データを適切なファイルフォーマットに格納することで、1つのファイルとして取り扱うことができるようになる。

Windows Mediaを例にすると、図1のようになる。冒頭で説明したように、Windows Media=ASFフォーマットとは限らない。以下では、よく使われるファイルフォーマットとコーデックの関係について解説しよう。

■ストリーミングに向かないAVIフォーマット

AVIフォーマットは、Audio Video Interleaveの略で、Microsoftが1992年にApple ComputerのQuickTimeに対抗して開発したものだ。機能的に時代遅れではあるが、現在でも多くのWindowsアプリケーションで使われている。最近ではDVファイルやDivXなどでおなじみだ。

AVIフォーマットは、RIFF(Resource Interchange File Format)と呼ばれる汎用の可変サイズフォーマットをベースにしている。音声ファイルのWAVフォーマットもRIFFをベースにしており、AVIフォーマットとWAVフォーマットは兄弟関係にある。

AVIフォーマットの構造を簡略に図示したのが図2だ。ヘッダ情報、ムービー情報、インデックス情報の3つの領域で構成される。実際のビデオ、オーディオデータは、ムービー情報領域に交互に格納される。ヘッダ情報には、圧縮方式のほか、フレームレートなど再生に必要な情報を格納する。インデックス情報は、途中からの再生のため頭出しに必要な情報を持つ。

AVIフォーマットの再生には、一般にインデックス情報が必要となる。これはファイルの最後にあるため、ネットワークを経由してのストリーミング再生には向かない。また、後述の2つのフォーマットと異なり、ファイル中に時刻情報が存在しないため、長時間再生時のビデオ・オーディオの同期など、いくつかの点で不自由がある。

■ASFフォーマットはインデックスなしでも再生

ASFフォーマットは1998年、MicrosoftがAVIフォーマットに変わる新しいファイルフォーマットとして規定した。Windows Mediaの標準ファイルフォーマットとなっている。当初は「Advanced Streaming Format」の略だったが、現在は「Advanced Systems Format」と、より汎用的な呼称となっている。

ASFフォーマットは、当初の名前のとおりストリーミング再生を意識して開発された。AVIフォーマット同様、インデックスオブジェクトを持つが、これがなくても再生できる。ビデオ・オーディオのデータそれぞれに再生時刻(先頭を0とした相対時刻)が付属しており、ビデオ・オーディオの同期が取れるためだ。ただし、インデックスオブジェクトがないと、途中からの再生のための頭出しはできない。

Windows Mediaのストリーミング配信では、先頭から順にヘッダオブジェクト、ビデオ・オーディオデータが送信される。インデックスオブジェクトは送信されない。プレイヤーのスライダーで再生位置をジャンプした場合は、配信サーバにコマンドが送られる。コマンドに従い、配信サーバ内でインデックスオブジェクトを読み、適切な位置から再度配信が始まる。

■至る所に時間情報を持つMPEG-2 PSフォーマット

MPEGファイルフォーマットには、たくさん種類があるため、ここでは「MPEG-2 PS」について説明する。PSは、「Program Stream」の略で、1995年に策定された。CDやDVDなどのメディアに格納することを意識している。実際にDVD-Videoをはじめ、多くのMPEG-2エンコーダで使われている、もっとも普及したMPEG-2フォーマットだ。

MPEG-2 PSの場合、ビデオ・オーディオの圧縮データが交互に格納される点は、AVIフォーマットやASFフォーマットと同じ。違うのは、インデックス情報を持たないことだ。ファイルの途中から再生したい場合、ファイル中の至る所に格納されている時刻情報を手がかりにする。この方法でストリーミング再生も可能だ。

固定ビットレートの場合、およその位置が計算で求められるため、任意の位置を頭出しできる。一方、可変ビットレートの場合は、位置を計算で求めることができないため、扱いは難しい。迅速な頭出しのために、DVD-Videoではインデックス情報に相当する領域を別途用意している。

また、PSでは、「パック」と「PESパケット」と呼ぶ階層構造を持つ。パックは、CDやDVDのセクターを想定したもの。先頭にはファイルが読み込まれるべき時刻の情報があり、頭出しの手がかりとなる。PESパケットは、パックとは独立したビデオもしくはオーディオの格納単位だ。PESパケットの先頭には、再生されるべき時刻の情報が入っており、ビデオ・オーディオの同期をとる手がかりとする。

MPEG-2 PSには、通常、MPEG-2 VideoとMPEG-1 Audioで圧縮したデータを格納する。ほかのデータでも格納でき、DVD-Videoでは、オーディオにDolby DigitalやリニアPCMを使っている。

●ファイルとコーデックの関係

図1 Windows Mediaにおけるファイルフォーマットとコーデックの関係ファイルフォーマットの中にビデオとオーディオのデータが格納される。

●AVIファイルの基本構造

図2 AVIファイルは、大きく分けるとヘッダ、ムービー、インデックスの3つのデータで構成される。一般に、ビデオとオーディオのデータは交互に格納される。最後のインデックス情報から、再生すべきビデオ、オーディオデータの位置がわかる。いろいろなバリエーションがあり、作成ソフトによって若干異なる。

●ASFファイルの基本構造

図3 ASFファイルは、大きく分けるとヘッダ、データ、インデックスの3つの領域で構成される。一般に、ビデオとオーディオのデータは、同一サイズのパケットに交互に格納される。最後のインデックス情報から、再生すべきビデオ、オーディオデータの位置がわかる。インデックス情報がなくても再生はできるが、ストリーム途中へ のジャンプができない。インデックス情報の間隔は自由だが、通常は秒単位だ。

●MPEG-2 PSファイルの基本構造

図4 MPEG-2 PSファイルは、すべてのデータがパックとパケットという小さな単位に格納される。先頭のシステムヘッダを除くと、残りはビデオ、オーディオのデータとなる。インデックス情報は持たないが、PESパケットの時刻情報を元に任意の場所にジャンプできる。図ではパック、PESパケット構造は簡略化して表記した。パックとPESパケットの境界は一致しなくてもよく、それぞれの長さも可変でよい。

 

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

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