4種類の新しい動画形式 —— Ogg(Ogg Container), OGM(Ogg Media), MCF([Multi]Media Container Format), MKV(Matroska Media) —— について、
それぞれの背景、良いところや問題点を考えてみる。(注: このメモでいう Ogg は拡張子 .ogg で広く用いられている Ogg Vorbis 圧縮オーディオのことではなく、来るべきマルチメディア・コンテナ「Ogg動画」のことです。)
ここで、動画というのは「チャプター、字幕、メニュー」のような映像と音声以外の成分も含めていう。
マトリョーシカの拡張子は正式には決まっていないが、MKA(オーディオ), MKV(ビデオ), MKM(マルチメディア)などが提案されている。
ここでは仮にMKMMKVとしておく。
2004年3月2日追記: このメモを書いてから1年たって、だいぶ状況が変わった面もあります。 OggFile, OGM, MKV... 2004年3月2日もごらんください。(追記終わり)
オーディオ圧縮技術 Ogg Vorbis で知られるOgg(オッグ: 「特攻する」という意味のネットゲーム用語より。語原は Orion ship G)シリーズだが、 ゆくゆくはマルチメディア全般でのフリーなオープン規格を確立することを目指している。 ビデオの圧縮形式 Ogg Theora が現在開発中で、これがリリースされると、映像、音声の両方ともパテントフリーな動画を作れるようになる。 音声の可逆圧縮コーデック FLAC(→ 別記事「日本語タグつきFLACリッピング」)も正式に Ogg シリーズに加わった。
Ogg Vorbis が現在のような大ブレイクをとげたのは、もちろん高圧縮で高音質というすぐれた性質のためということが基本にあるけれど、 MP3(MPEG-1レイヤー3)の音声圧縮について開発元のフラウンホーファー社(FhG、研究所の名でIISとも呼ばれる)が特許権を主張した事件と関係が深い(→ mp3というフォーマットと特許・著作権)。 CDを入れ替えることなくCDの内容をHDにまとめておいて好きな順序で手軽にPCで音楽を楽しむ……ということを可能にしたMP3、 このことが特許のからみで気軽にできなくなる可能性がでてきた。 実際、日本でも当時有名だったMP3エンコーダー「午後のこーだ」が公開中止されたりした。 MP3に代わるフリーでオープンなフォーマットを確立しようという機運は、このことで高まった。 (その一方では実験研究名目での「フリーでオープンなMP3」LAME の発展もあった。) ちょうどユニシス社がGIF画像について特許権を主張したせいで、かえってすぐれたフリーの別形式PNGが普及したのとよく似ている (→ PNG普及プロジェクト JAPAN)。
Ogg Theora というビデオ圧縮フォーマットも、DivX5 や XviD のような特許でしばられたMPEG-4ビデオに対するフリーな代替ということが基本にある。 (このうち DivX5 は、ブラウザの Opera 同様、広告が入ることをがまんすれば、ユーザーからみるぶんには「無料」で使える。)
Oggの特徴は、なんといっても「フリー」ということ、そして Ogg Vorbis が「低ビットレートで高音質」ということだろう。 企業が特許を主張している(主張しかねない)ような技術をさけて、すべて基本的に一から自分たちで作っている。 Ogg Vorbis が愛好されるのにも、心理的、思想的な意味での「自由の響き」が好まれている面がある。 (圧縮形式を秘密にしたまま聴き比べを行うブラインド・テストでも、Ogg Vorbis は MP3 より同じサイズで高音質という評価を得ているので、 音の良さは単なる心理的な気分の問題だけではない。→ Discussion of Audio Compression) 128Kbps未満、およそ64Kbps前後までの、比較的低いビットレート(高い圧縮率)のオーディオで、Ogg Vorbis は MP3 より良い結果を出している。 動画の場合、音より映像に重点が置かれることが多く、ビットレート64~128Kbps程度(ステレオ2チャンネルの場合)では、 明らかに音声を Ogg Vorbis にするメリットがある。 (160Kbpsや192Kbpsだと、LAME MP3とあまり差は感じられない。)
Ogg Theora のリリースとほぼ同時にスタートすると思われる「Ogg動画」だが、 音声成分に Ogg Vorbis が使えるようになり、映像成分に Ogg Theora を使えるようになるのは当然として、 そのほかの音声圧縮、映像圧縮がどこまでサポートされるのか、というのが第一の関心事項だ。 ビデオ圧縮の XviD はオープンソース開発とはいえ、MPEG-4なので、パテントフリーではない。 MP3音声(MPEG-1レイヤー3)は、もとよりフリーでない。 フリーであることを最重視してきた Ogg の人々が、こうしたフリーでないコーデックをクロスプラットフォームで広くサポートすることについて、 どういう立場をとるのかは微妙だ。ユーザーサイドにはベータ公開されるであろう不安定な Ogg Theora より、 とりあえずビデオ成分には XviD や DivX を使いたいという要望がある。 また、AC3音声をそのまま動画に使いたいという要求も大きいが(現在のOGMでは可能)、AC3もドルビー社の技術で、あまり堂々とサポートできるものとも思えない。 もしOggが、AVIやOGMにかわる汎用性の高い柔軟なマルチメディア・コンテナを目指すとすれば、 こうした理想と現実のギャップがある。
例えば30分のクリップで、20MBの音声と200MBの映像を合体させると、 条件にもよるが、現在のAVI動画やOGM動画では、どちらも単純に足し算した20+200=220より1.5MB程度サイズが増える。 映像と音声を合体させる「のりしろ」(構造データ)に1%程度のファイルサイズが消費される。 できることなら少ないほうがいい「のりしろ」だが、OGMではAVIとあまり変わらないか、かえって逆にムダがふえている。 (シークの軽さ、的確さといったパフォーマンスの内容まで考えればAVIとほぼ同じサイズで効果が上なので、単純比較はできないが。) Oggでも、ほぼ同じ量の構造データが消費されると見られる。 MCFやMKVでは構造データが約半分ですむという話が事実とすれば、Oggメディアは設計にムダがあるのではないか、という疑いが生じる (→ MCF specification, introduction)。 仮にそうだとしても、音声圧縮 Ogg Vorbis と同じしくみを使う限りにおいて、 したくても設計の全面変更はできない。実際に音声と映像を合体させてOgg動画を作るテストを行うことなく、 規格の枠組みだけおおまかに決めてしまった。 Oggコンテナの規格は、実際にそれで動画を作ってみての試行錯誤をへて慎重に決定されたものではなく、こなれていない面があるようだ。
すでに Ogg Vorbis の実績があり、FLAC のチームも加わったため、 将来のフリーな動画形式の「主流」として最も有望だ。 特に権威に弱い日本人は、個人が開発した「わけの分からない」OGMなどより「本家」「標準」「正式」フォーマットと言われるだけで、 こころが動くかもしれない。
MKVや、とくにMCFは、計画倒れに終わる可能性があるが、 Oggはすでに機能しているOGMと統合される見通しで、新フォーマットのなかでは最も現実的なものと考えられる。 新しいものを試したいとは思いつつも「長い物には巻かれよ」「寄らば大樹の陰」といった堅実、安定志向のユーザにとって、 いちばんぶなんな選択だろう。
OGM動画(Ogg Media; Ogg Movie ともいう)は、すぐれた音声圧縮 Ogg Vorbis を動画のオーディオ部分に使えるように、 Tobiasという個人が私的に開発した。 Oggメディアの枠組みを利用しており、名前も Ogg Media だが正式な Ogg シリーズではなかった。
字幕をソフト的に合成して再生時にオンオフできたり、チャプターをつけたり、複数の音声を切り替えたり……と、 DVDのようなことができるが、こうした字幕やチャプターの具体的仕様も Ogg とは無関係だ。 さらに今では、音声成分に Ogg Vorbis でなく AC3 も使えて、 Oggとは直接的には何の関係もない「Ogg Media」(OGMファイル)さえ作れるようになった。
OGMはあくまで個人が趣味で作ったもので、ユニコード対応なども必要にせまられてから後追いで実装しており、 現時点では不備や混乱も少なくない。VobSub で再生する限りにおいて、字幕の国際化はまだまだ遠い。 ロケールが日本になっていると、スペイン語、フランス語、ドイツ語のような比較的メジャーな言語でさえ不具合があり、 日中韓のような多バイト文字のサポートは現状かなり無理がある。 VobSub 自体の不具合もあるが、 規格があいまいだったため、字幕データを格納するSRTが UTF-8でなく Windows CPで広まってしまった。
開発者の Tobias がOggのチームに加わったことで、 現在のOGMは一種、宙ぶらりんの状態にある。 (もちろん Tobias のコードがオープンソースになれば、多かれ少なかれほかの人が開発を続ける可能性が高いが。)
OGMは個人が開発したといっても、まったく自由に作ったわけでなく、予定されていたOgg動画フォーマットの枠内で開発された。 ところが、フォーマット(つまりコンテナ)としてのOggは、実績があったわけでなく、漠然とした予定図があったにすぎない。 実際にやってみて初めて分かる問題点というものもある。 この点が、MCFへのモチベーションとなった。
Ogg、MCF、MKV(仮)は、現時点では、まだ計画にすぎない。 このメモで取り上げる4形式のなかで、OGM動画だけがきょうからでもすぐ簡単に使えて、 シークの軽さや Ogg Vorbis の音質、ソフト字幕といったメリットを利用することができる。 動画作成でも再生でも、環境は整っており、Windows でも Linux でも使える。
この4つのなかで試してみるとしたらどれがいいですか、と尋ねられれば、2003年2月現在、「OGM」と即答できる。 ほかの3形式は、試したくてもまだリリースされてないからだ。
音声や字幕の多重化や動画に「メニュー」(チャプター)を埋め込むこと……といった新しい実験的な試みを最初に実装した。 使ってみてあとから不満を言うのは簡単だが、やはり最初に誰かがやってみないことには始まらないのであって、 その功績、存在意義は大きい。
MCF(Multimedia Container Formats、旧称TMF [The Media Format] )は、Oggコンテナの枠組みに縛られることなく、OGMでの反省もふまえ、 最初から規格をきちんと決めて、オープンソースで開発しようというものだった。 2002年末に分裂するまでは、最も有望な未来の形式だった(2003年はMCFブレイクの年になると予想されていた)。 当時、OGMは画期的であったけれども不満も見え始め、しかもOGMの開発はOggの規格に縛られたうえ個人のクローズド、 本家Ogg動画の開発も先が見えない状態だったからだ。 しかし中心になっていた Tronic があまり開発に時間をさけなくなったうえ、 現実にアクティブにコードを書いている ChristianHJW らと仕様をめぐって意見のおりあいがつかず、 ChristianHJW らはプロジェクトを離脱、独立して別のプロジェクトを始めた。 このため、MCFは事実上、開発中断状態になっている。
これは問題点以前の問題だろう。 開発が中止されたわけではないので依然2003年内に何らかのリリースが行われる可能性はあるが、 残念ながら、現状、存在意義があいまいになってしまった。 MKVに対するMCFのメリットは処理が軽いということだが、MKVでも充分に軽いことがハッキリすると、 MCFの存在意義がいっそう希薄になる。逆に万一MKVが重すぎてしょうがないとでもなれば、MCFが見直されるかもしれない。
「バイナリー版XML」EBMLの採用をやめたことで、 ヘッダに含められる情報の種類や量が前もって制限されており、 将来の拡張性は低い。
AVIやOggより構造データ量が少ない(半分程度)、とされる。 このほか、MKV形式の長所短所は、EBML関係をのぞいて、すべてそのままMCFにあてはまる。
MKVと違い、複雑な処理を必要とするEBMLを使わないので、比較的低い性能の環境でも処理できるはずだ。
マトリョーシカ(Матрёшка)は、MCFプロジェクトから独立したもので、MCFに「バイナリー版XML」であるEBMLのデータ構造を追加したものだ (→ Matroska Sematic)。 MCF同様、汎用コンテナであって、特定の圧縮フォーマットではない。 マトリョーシカはロシアの民芸品の名前で、XML風の入れ子構造を象徴している。 ロシア語の発音をローマ字で書くと Matryoshka/Matrioshka だが、規格の名称はわざと綴りを簡単化して Matroska になっている。 本来の綴りだと英語圏などの一般の人にとって発音しにくく覚えにくいなど、愛称として不適切だからだ。
マトリョーシカの名前の由来でもある「いれこ構造」EBMLは可変データ構造を可能にする柔軟で拡張性の高い方式だが、処理コストも高い。 従来のヘッダでは、決まったオフセットの場所に決まったデータがあって、決まったバイトが一定のフラグになっていた。 そのほうが明らかに処理が単純明快になるが、ヘッダに新しいものを追加する場所がないとか、 例えばあるフィールドが256文字まで、というふうに、いろいろな制約を受けやすい。 制約が少なくなるように余裕をみてぜんぶ1024文字まで入れられるようにしたとすると、今度はムダにヘッダが肥大化したりする。 固定長の害をなくすのに終端文字を決めてポインタを使うという方法があるが、 ポインタでポイントされるデータそのものは基本的にどのフィールドがなに、というように固定される。 そうではなくて、ちょうどHTMLのタグで「知らないタグは無視する」という簡単な規則で後方互換と拡張性を両立できるように、 EBMLでは各フィールドにタグをつけることで、将来いろいろ拡張しても、古いアプリケーションで問題が起きないようにしている。 各アプリケーションは自分が知っている自分が処理したいフィールドだけを処理すればいい。 言い換えるなら、バイナリのデータのなかに、データそのものと、そのデータを識別するメタデータの区別をもうける。 これに反して、在来型のヘッダはいわば「3行目が題名で4行目が作者名です」といった約束事で成り立っていて、 あとから題名のなかにサブタイトルというフィールドを追加したくても、なかなか大変だ。 —— EBMLの採用は画期的とも言えるが、 あまりに革新的すぎて現実のマシンの処理能力が追いつかなかったり、いろいろな実装が複雑になる可能性は否定できない。
何事もやってみないと分からない面があるものだが、OGM動画やOgg規格について、実際に使ってみると「こうしたほうが良かったのでないか」 といった感想もでてくる。後発の強みで、MCF/MKVは、OGMで問題になった部分について最初から注意深く対処することができる。 構造データをコンパクトにすること、またそもそも広める前に厳密で詳細な仕様を決めること(Oggでは、この点にぬかりがあったというか、 これから仕様を決めようというその前の段階で、Tobias個人が自分なりの方法でOGMを作ってしまった)。 例えば、OGMの字幕規格SRTはエフェクトにも乏しく使用すべき文字エンコーディングもあいまいだが、 MKVのデフォルト字幕形式USFはSSA/ASS並のエフェクトをソフトサブで実現し、文字もUTF-8と決まっている。
MPEG系の音声やビデオ(DivX, XviD)のサポートが明言されている。 フリーであることを至上命題とするOggと違い、実用本位、現実主義的に、現に使われているものは、それ自身にパテントがあろうがなかろうがサポートする方針だ。 (Oggもある程度はそうすると思われるが。) 音声としては、MPEGレイヤー3、レイヤー2、PCM, MPC(MusePack), AC3, Vorbis などが使える予定。 映像成分としては、DivX3/4/5, XviD はもとより、MPEG2 をサポートする計画すらある(最近、MPEG2はVirtualDubなどで直接扱えるようになっているので、 この計画は現実味がある)。UCIという中間インターフェイスを使うことで、原理的にあらゆるコーデックによるエンコードデータをマトリョシカで透過的に利用できる状態を目指しているらしい……。実現すればまさに「汎用スーパーコンテナ」だ。 しまいには WMV/WMA のサポートまでするのではないかとさえ思われる。 特許問題に敏感なOggでは二の足を踏みかねないようなことだ。純粋にユーザサイドからみれば、もちろん合体させられるサポート形式が多いほどべんりだが。 以下のような形式が、順次サポートされてゆく予定だ。
ただ文字を出せるだけでなく、文字色、影色、輪郭色、フォントの種類、サイズ、位置……はもとより、カラオケ字幕やスクロールのような特殊効果まであらゆるサポートを考慮したUSF(Universal Subtitle Format)をくみこむことができる。USFは、将来の新しい画面効果用の拡張を自由にできることと後方互換が失われないことを両立するため(字幕に詳しいかたは、SSA形式とASS形式の差を連想してほしい)、XML風の書式になっている。
ファイルフォーマット自体、EBMLというXMLのバイナリー版を使っている。 これにより位置合わせのためのパディングがいっさいなくなり、オーバーヘッドの贅肉はぎりぎりまでそぎおとされる。XMLライクなタギングなので、ぎりぎりまで詰めておいても、あとからいくらでも拡張できる。 柔軟性の高い構造、将来の拡張が容易でしかも後方互換に影響しない、サイズの制限がない、 構造データが少なくコンパクトとされるMCFより、さらにコンパクト、といったメリットが予想される。
OGM/Oggへの反省をふまえた後発の形式なので、OGMやOggで見つかった問題点はほぼすべて対応済みだが、 MCF/MKVはまったく新しい形式であるだけに、実際に使ってみる段階になるといろいろそれ特有の問題が見えてくると思われる。 とくにEBMLは、 Tronic がプロジェクトの分裂をかけてまで反対した仕様だ(逆に言えば、 ChristianHJW はプロジェクト分裂の代償を支払ってまで、 この仕様にいれこんだ、のだが……)。
具体的に、XML風のつねとして、どこかをちょっと書き換えるだけで、かなり広い範囲をパースしなければならない、という問題がある (「開始タグ」と「閉じるタグ」を入れる場所を見つけるのに、基本的には全体をパースしないといけないので)。 MKVはストリーマブル(途中で切れても切れた前までは再生できる。中間でデータが損傷しても、そこ以降はふたたび正常に再生できる)ということだが、 XML風の複雑なデータ構造のなかでストリーマブルを実現するのは、大変そうだ。すでにテストは成功しているそうだが、 かなりの処理能力を必要とするはずだ。 (もっとも数年後には、そんなこと問題にならないほどマシンの能力も上がるかもしれない。)
やはり本命はOGM(Ogg)である。すでに使われている実績がある、というのは大きい。 よほど理不尽なことでもない限り、OGMとOggは平和的に統合される予定なので、現在のOGMと将来の「公式」Oggのどちらが良いか?というのは無意味な問だ。
Oggには「パテントフリーな技術だけを使ってすべてをすすめたい」という基本方針があるはずだから、 それが制約になるかもしれない。
まったく新しいものとして一から作られているMCF/MKVも重要な対抗勢力といえる。 競争は相互にとってプラスになりうる。 MKVはただのチャプターだけでなく、ツリー表示できるような「メニュー」を動画にくっつけられるようにする予定だ。 こうした「新しい良い工夫」は、必ず他方にも良い意味での刺激と影響を与えるだろう。 Ogg側とマトリョーシカ側とに感情的なもつれがあるのも確かだが、 コンテナという同じものを開発していれば、当然どっちがいいかという話はでるし(少なくともユーザサイドから)、 開発者としてもナーバスにならざるを得ない部分があるだろう。 APEとFLACのように、ユーザが自由に選択できる2形式として、OggとMKVが共存する形が実現すれば理想的だ。
いずれにせよ、 AVIは、長期的にはすたれていくだろう。 シークが遅かったりそうでなくてもメニューから好きな場所に直接ジャンプできない、多チャンネルや字幕切り替えが使えない、VBRの音声が正式サポートされていない、ダウンロードが切れて末尾1%が足りないだけで全体が再生できなくなってしまう、 といった多くの不満点は、現在のそしてこれからのユーザの要求を満たさないだろう。 理由はともあれ現在のOGMが広まりつつあるのは事実だし、ということは、AVIよりOGMを使うほうがいいと考えるユーザが増えているのだろうと思う。 といっても、MP3 CBR の音声1チャンネルと映像1チャンネルの2チャンネルを合体させるだけならAVIでも充分であって、 限界をわきまえてその限度内で使うぶんには、AVIにもサポートソフトが多いなどのメリット(消極的な利点だが)がある。
2003年2月20日: 初版。
2003年2月24日: Matroska形式ファイルの読み込みと出力ができる VirtualDubMod についての速報を追記した。このソフトでは Matroska動画の拡張子を MKV としている。Linux用のソフトも MKVtoolnix という名だ。これにあわせて「MKM(仮)」と書いていたマトリョーシカの拡張子を MKV になおした。
2003年3月21日: MCF動画の問題点「リリースの見込みが立っていない」の項目に、
開発が中止されたわけではないことを付け加えた。
開発チームの mf が、なかばあきらめ気味の調子ながら、I'm more hoping for survival of MCF than for Matroska
と語ったため。
2003年3月25日: 現在のOGMの問題点のうち、SRTの文字エンコーディング問題をより具体的に記述、詳細説明を含む別記事へのリンクを追加した。 そのほか数か所加筆。
2003年5月1日: マトリョーシカの最初のWindows版パブリック・ベータが公開された。記事へのリンク追加。 [Matroska] 最初のパブリックベータ公開