先日GoogleがWebMの次の映像圧縮技術としてVP9を発表しました。
そこでAndroidという観点からVP9がどのように関わってくるか考えてみました。
まずは、メディア・コンテンツというものについて簡単に説明します。
メディア・コンテンツとはどういうものか?
動画を再生させるには映像と音声が必要です。
メディア・コンテンツには映像と音声のデータを持たせるわけですが、むやみやたらに持たせるわけにはいきません。
世界中のどのプレイヤーでも同様にメディア・コンテンツを再生できるよう共通のフォーマット(ルール)にしたがって、
データを持たせる必要があります。
この「音声と映像のデータを持つフォーマット」を「コンテナ・フォーマット」と呼びます。
映像と音声のデータを圧縮する
基本的にメディア・コンテンツは映像と音声のデータはデータ量を小さくして持ちます。
理由は単純です。
メディア・コンテンツのデータ量が大きいととにかく不便だからです。
ネット配信で言えば、データ量が大きければ大きいほど通信量と通信料が増えてしまいます。
そのため、映像や音声のデータは元のキレイさ(正確さ)を大幅に失わない程度にデータを圧縮してあげる必要があります。
世の中にはいろいろな圧縮技術があります。下記に圧縮形式の例を挙げます。
いろいろ固有名詞が出てきますが、「いろいろあるんだ」とだけ思っていただければ大丈夫です。
◆映像圧縮形式
- MPEG4
- H.264/AVC
- VP8
◆音声圧縮形式
- MP3
- AAC
- Voribs
「エンコード」という言葉を聞いた事がありますでしょうか。
「エンコード」がこの圧縮のことです。
逆に圧縮されたデータを元に戻すことを「デコード」と呼びます。
コンテナ・フォーマットの種類
先ほども書きましたが、映像や音声データは共通のフォーマットに従ってもつ必要があり、これをコンテナ・フォーマットと呼びます。
どんなコンテナ・フォーマットがあるか、例を挙げます。
またいろいろ固有名詞が出てきますが、「いろいろあるんだ」とだけ思っていただければ大丈夫です。
◆コンテナ・フォーマットの例
- MP4
- 3GGP
- Matroska
ちなみに、MP4だと次のようなタイプを見かけます。
コンテナ・フォーマット:MP4
映像形式:H.264/AVC
音声形式:AAC
VP9とは?
ここからの本題のVP9の話に移りますが、まずはVP9の前身であるVP8について書きます。
VP8はGoolge(On2テクノロジーズ)が開発した映像圧縮技術で主にWebMで使用されています。
コンテナ・フォーマット:Matroskaのサブセット
映像形式:VP8
音声形式:Vorbis
そして、このたび発表されたVP9のメリットは何でしょうか?次の3つと考えます。
・ロイヤリティフリー
・オープンソース
・高い圧縮率
ロイヤリティフリー。(ルールを守れば)使いたい放題です。
オープンソース。中身を見放題です。
そしてVP8以上の、他の動画圧縮技術に負けない高い圧縮率を持つとのことです。
「Android」という観点からのVP9
VP9をAndroidという観点から考えてみます。やや突っ込んだ話をします。
現在Android4.2 JellyBeanでは、VP8が公式サポートされています。
Android Supported Media Formats
では、KeyLimePie以降(Android 4.3?)でVP9がサポートされるのか?
個人的には次のことが気になっています。
- どのレベルまで公式サポートとなるのか?
- H.265/HEVCとのシェア争い
どのレベルまで公式サポートとなるのか?
各Android端末は様々なデコーダーが搭載されています。
「デコーダー」とは上記に出てきた圧縮されてデータを元に戻すものです。
そして、デコーダーには大きく分けて「ハードウェア・デコーダー」と「ソフトウェア・デコーダー」があります。
動画を再生するにあたり、Androidは高速で処理できるハードウェア・デコーダを優先的に使用します。
もし、再生しようとするメディア・コンテンツをデコードできるハードウェア・デコーダーがない場合、ソフトウェア・デコーダーを使用します。
そのようなことから、最低限ソフトウェア・デコーダーで再生できるメディア・コンテンツを公式サポートとしているように見受けられます。
次に公式サポートのレベルについて考えます。
H.264/AVCは一般的な映像圧縮形式ですが、実は「Baseline Profile」という一番基本的な形式までしか公式サポートとされていません。
これも上記と同じ理由で、ソフトウェア・デコーダーで再生できるのはBaseline Profileまでだからです。
Baseline Profileよりも上位のMain Profileを対応させていない理由は何か?
推測ですが、CPU負荷が大きくAndroid端末によっては思うように再生できない可能性があるため、
制限をかけているではないかと思っています。
Main ProfileはBaseline Profileより高度なことができる反面、どうしても処理が重くなるからです。
VP9はH.264/AVC以上の圧縮率を目指しています。
「高い圧縮率を持つ = デコード時に高い負荷がかかる」ということを意味します。
ソフトウェア・デコーダーでどこまで再生できるのか、どのラインまで公式サポートとなるのか、気になるところです。
H.265/HEVCとのシェア争い
2013年1月H.265/HEVCがITU-Tに承認されました。
H.265/HEVCは、前身のH.264/AVCの倍の圧縮率があると発表されています。
主観的な意見ですが、やはりH.264/AVCのシェアは凄く「次はH.265/HEVCの再生を!」という流れを少し感じています。
VP9がよりシェアを広げるためには、相応の戦略や相当の時間が必要ではないかと思います。
最後に
VP9の「ロイヤリティフリー」「オープン・ソース」はやはり素晴らしいメリットです。
これにより「とりあえずVP9を使ってみよう!」という人は増えると思います。
少しずつ使用者が増えることで、じわじわと浸透していき、磨かれていくことによって、
代表的な映像圧縮技術となる可能性があると思っています。
文責:カスタマー開発部 大阪開発課 中野 大輔
記載されている会社名、および商品名等は、各社の商標または登録商標です。
0 コメント:
コメントを投稿