« Vista で拡大補間が効かない対応 | メイン | BCC 用の libjpeg を作るメモ »

2007年10月20日

動画再生エンジン開発日誌:: MPEG1デコーダーについて

    

MPEG1デコーダーを作る時の情報について書いておく。

トリケップス MPEG技術のCD-ROM版 を5年以上前に買った ( 書籍のほうが欲しかったが、当時すでに手に入らなかった ) 。
気付くとこの中の MPEG Video 技術の章は Web で公開されていた。
たぶん、MPEG1~2についてこの書籍が一番詳しいのではないかと思う。
ただ、この書籍を見れば作れるかと言うとそうではなく、細かいファイルフォーマットは完全には記述されていないよう。
細かい仕様については、JIS 規格の X4321 ~ X4323 を参照すれば載っている。
JIS 規格は、JIS 検索で数字打ち込んで検索すれば、閲覧できる。
でも、これだけで作るのはかなりしんどい。

MPEG1 ビデオデコーダーで BSD 系のライセンスで使えるものは、The MPEG Libraryとその元になった Berkeley MPEG player ぐらいしか知らない。
ただ、The MPEG Library はグローバル変数使っていたり、FILEポインタ依存だったり、使われていない関数があったりとだいぶ手を入れないと使いづらい。
まあ、コアとなるデータのパースや動き補償、IDCTなどは使えるので、一から作るよりははるかに楽。

MPEG1 オーディオデコーダーは適当なのが見付からない。
gst-fluendo-mp3 がBSD 系のライセンスだけど、MPEG1 Layer 3 のみっぽい。
MP3 はいらなくて、Layer 1 or 2 が欲しいのだが。
3 があれば、1 や 2 は何とかなるかな?
まあ、まだあまり調べていないので、オーディオデコーダーはもう少し調べる必要がありそう。

MPEG1 スプリッターのオープンソースなものは探していない。
MPEG1 System のパーサーは他と比べれば比較的楽に作れるだろうから。
ただ、シークは大変そう。



投稿者 Takenori : 2007年10月20日 01:03




comments powered by Disqus
Total : Today : Yesterday : なかのひと