【PR】Silverlight が動画配信に強いと言える理由
何度もご紹介している Silverlight ですが、新たに Release Candidate 版が登場し、正式リリースも間近となっています(Beta 版から仕様変更があったので、色々手直ししなければならないのですが…^_^;)。今回は、Silverlight の特長のひとつである動画の取扱いについてご紹介します。
Silverlight は Windows Media Video(WMV)に加えて VC-1 という動画形式をサポートしています。これは WMV を発展させて標準化された形式で、次世代 DVD と言われる HD DVD や blu-ray の必須コーデックとして採用されています(ちなみに H.264 や MPEG-2 も採用されています)。技術の解説は "VC-1 Technical Overview" に譲りますが、ここから少し長めに引用すると、
"Viewers from Hollywood film studios and major consumer electronics companies rated video clips on a scale of 1 to 5 for resolution, noise, and overall impression. Multiple codecs were tested, including MPEG-2, VC-1, H.264, and MPEG-4 Advanced Simple Profile. The baselines against which the codecs were compared were D5 masters and D-VHS (24 Mbps). During the tests, viewers were not told which codec was used to encode each of the clips.
On all three measures (resolution, noise, and overall impression), the quality of VC-1 was judged closest to the original D5 master. By comparison, the H.264 codec was rated as comparable only to MPEG-2 on two of the three measures (resolution and overall impression), and was rated somewhat worse than VC-1 on noise."
とのことで、VC-1 が最高の評価を受けたことがわかります。H.264 は Apple 社の iPod への採用などで注目を集めていますが、VC-1 は H.264 と並ぶか、それ以上に圧縮効率のよい動画形式だと評価されています。Adobe Flash の場合、たとえば YouTube(Flash 7 レベル)で使われているのは H.263 という少し前の仕様です(YouTube の画質があまりよくないのは、このためでもあります)。Flash 8 以降では、新たな形式をサポートしています。
さて、H.264 はその仕組み上、エンコード/デコードの負荷が VC-1 よりも重くなります。最近では手軽なハードウェアエンコーダも登場してきているので、そのような環境での負荷は軽減されますが、一方、Silverlight のようにプラットフォーム非依存を目指すアドインツールの場合には、こうしたハード的な支援をアテにできません。このような環境では、コーデックの負荷は、そのまま扱える動画の画質(あるいは同時に再生できる数)を左右します。Silverlight が 720p の高精細動画(HD)まで扱えるということを特長のひとつとして挙げているのは、この VC-1 コーデックの効率性によるものなのです。
なお、上記の理由からエンコーディング環境が整っていることに加え、動画をストリーミングで配信する場合のサーバーの価格が Adobe Flash の場合に比べて5分の1程度であるといったことも理由として挙げられます。現在、動画サービスの視聴環境として Windows&IEに限定しているものが多いのも、限られた帯域で効率的に高画質の動画を(DRM 付で)配信するためだといえます。将来、Silverlight で動画の DRM がサポートされるようになれば、他のプラットフォームでも視聴できる環境が整備される可能性があります。
なお、Silverlight が挙げている主要な3つの特長のうち、あとの2つは「プラットフォーム非依存性」と「プログラミング」です。ある意味、この種の機能がプラットフォーム非依存であるのは当たり前のことです。後者のプログラミングについて、後日改めてご紹介します。また、機能の基盤技術というだけでなく、「開発環境(ツール)」という点も重要なのですが、それもまた別の機会に。