![Graphics-Video-Codecs-and-Encoding_BlogMantel (1) MPEG-DASH(Dynamic Adaptive Streaming Over HTTP)について解説します [ Wowza Blog 翻訳 ]](https://www.dpsj.co.jp/wp-content/uploads/dpsj/Graphics-Video-Codecs-and-Encoding_BlogMantel-1.png)
原文: https://www.wowza.com/blog/video-codecs-encoding(2021 年 8 月投稿分)
ビデオコーデックがなければ、「Netflix and chill」(Netflix でのんびりする)という言葉は生まれなかったでしょう。圧縮伸張ツールによって、配信業者がインターネットで動画を配信するために、ビデオエンコードというプロセスを経てビデオファイルを圧縮することができます。コーデックがあるからこそ、私たちは限られた帯域の中であっても、Zoom でビジネスミーティングや、携帯電話でテレビ番組を見ることができるのです。
コーデックのおかげで、Netflix は毎分 404,000 時間以上のコンテンツを配信することができています。そして、エンドユーザーが視聴する様々なデバイスにこれらのストリームを届けるため、Netflix は新しいコーデックと従来からのコーデックの両方を使用しています。
ビデオエンコードとは何か ?
ビデオエンコードとは、元のビデオデータから数多くのデバイスとの互換性を持つデジタルフォーマットに変換するプロセスのことです。ストリーミングの場合では、ギガバイト単位のデータからメガバイト単位のデータに圧縮されることが多いです。ビデオエンコードは、ライブストリーミングに不可欠であり、確実で迅速な配信と再生を可能にします。
エンコードは、ブラウザやモバイルアプリ、IP カメラ、ソフトウェア、またはスタンドアローンのアプライアンスを使って行うことができます。Wowza 社では、類まれなクラウド制御でプロダクション品質のエンコードを実現する、 Wowza ClearCaster ライブエンコードのソリューションを提供しています。ポピュラーなエンコードソフトウェアとしては、Vmixや、Wirecast、無料で使える OBS Studio などがあります。
元のビデオデータをより扱いやすいサイズに圧縮するために、エンコードはビデオやオーディオのコーデックを使用して、かさばるビデオデータを配信用に縮小させるアルゴリズムを適用させます。簡単に言うと、エンコードとは圧縮のプロセスで、コーデックとは圧縮の手段ということです。
コーデックとは何か?
コンテンツ配信業者は、コーデックと呼ばれるビデオ圧縮技術を用いて、ビデオデータをストリーミング可能なサイズに縮小します。コーデックを使うことで、大きなサイズのデータを圧縮して、配信や保管することができます。
コーデックとは、「符号化-復号化」または「圧縮-伸張展開」に特化した仕組みまたは機能性のことで、映像にアルゴリズムを適用し、その複製を作成するものです。ストリーミングの場合、コーデックは不要なデータを捨てる非可逆圧縮を採用しており、ビデオデータは保管や伝送のために縮小され、後に視聴する際に解凍されます。
ストリーミングには、音声と映像の両方のコーデックを使用する必要があります。ビデオコーデックでは AVC(Advanced Video Coding)としても知られている H.264、オーディオコーデックでは AAC(Advanced Audio Coding)が主流です。
なぜ H.264 は AVC とも呼ばれているのか ? について、ストリーミングコーデックのエキスパートである、Jan Ozer 氏は以下のように説明しています。
「H.264/AVC や H.265/HEVC のように 2 つの名称があるのは、それぞれのコーデックが MPEG と ITU(国際電気通信連合)の両方で標準化されたためです。Versatile Video Coding(VVC)も、同じ理由で H.266 と呼ばれます。」
分かりやすくするために、この記事の各セクションにおいて、各コーデックが初めて言及される際には、両方の名前を含めることにしています。
ビデオコンテナフォーマットとは何か?
圧縮されたストリームの構成要素は、ラッパーやコンテナと呼ばれるファイルフォーマットにパッケージ化されます。これらのファイルには、オーディオコーデックや、ビデオコーデック、クローズドキャプション、および関連するメタデータが含まれています。一般的なラッパーまたはコンテナとしては、.mp4、.mov、.ts、.wmv などがあります。
コンテナは複数の種類のコーデックを入力できることが多いです。しかし、すべての再生プラットフォームが、すべてのコンテナやコーデックに対応しているわけではありません。そのため、様々なデバイスにストリーミングするためには、マルチフォーマットエンコーディングが重要となってきます。
例えば、.movファイルと .wmv ファイルが、内部に同じデータとコーデックを持っているとします。しかし、.mov ファイルが Macbook の QuickTime プレイヤーで、.wmvファイルは PC の Windows Media Player で再生されることになります。
ビデオコーデックとコンテナ、その違いは何か?
コーデックは、元の映像を圧縮するために使われ、また映像を再生する前に、圧縮されたデータを伸張展開されるためにも使用されます。これは非可逆圧縮で行われ、不要なデータは破棄されます。
非可逆圧縮のおかげで、そのままでは大きすぎるぐらいのデータが、スクリーンに表示できるくらいに小さくなるというわけです。
一方、ビデオコンテナフォーマットには、ビデオコーデックや、オーディオコーデック、および字幕やプレビュー画像などのメタデータが格納されています。コンテナはすべてのコンポーネントをまとめ、どのプログラムがストリームを受け入れることができるかを決めます。
ストリーミングに最適なビデオコーデック
インターネットを介して様々なデバイスにビデオを配信するためには、様々なコーデックでエンコードする必要があります。次世代のコーデックはエンコードの効率と品質を向上させ、従来のコーデックは旧式のデバイスでの再生を可能にします。
動画配信の最大手、Netflix に聞いてみたところ、
「Netflix は互換性のあるフォーマットをディスプレイ機器にストリーミングするために、コーデックの詳細にわたり処理するようなツールボックスを利用しています。Netflix は、新しいコーデックや改良されたコーデックを継続的に追加していますが、サポートを止めたコーデックは 1 つとしてありません。Netflix で最初のストリーミング機器(10 年前の LG 製 Blu-ray プレイヤー)に搭載された VC1 コーデックは未だにサポートし続けています。」と述べています。
以下のビデオコーデックリストには、新旧両方のコーデックが含まれています。業界のリーダー達は、最新の圧縮ツールの改良と開発を続けながら、従来からのデバイスへの配信用に H.264/AVC のような古いコーデックも採用しています。
2019 年のエンコード技術について詳しく見てみましょう
H.264/AVC
今日におけるエンコード出力の大半は、AVC(Advanced Video Coding)とも呼ばれる H.264 ファイルとなっています。このコーデックは、国際電気通信連合(ITU)と国際標準化機構 / 国際電気標準会議(ISO/ IEC)の Moving Picture Experts Group(MPEG)によって開発されたもので、幅広く採用されています。
H.264 は、ブルーレイディスクやケーブル放送など、ストリーミング以外の市場にも大きく浸透しています。H.264 は、AAC オーディオコーデックと組み合わせて使用されることが多く、.mp4、.mov、.F4v、.3GP、.ts などのコンテナにパッケージ化されます。
H.264 は、ほぼすべてのデバイスで再生が可能で、高品質なビデオストリームを提供できます。またロイヤリティ(コーデック使用料)についてもコンテンツ配信事業者にとっては想定がしやすく、どのような場合でも発生しないかというとそうではありませんが、ロイヤリティに関する心配が少ないコーデックであるといえます。H.264 は幅広いデバイスに対応しているため、最も一般的なコーデックの選択肢となっています。Bitmovin 社の「2020 Video Developer Report 」によると、調査対象者の実に 91% が H.264 を使用していると回答しています。
情報源 : Bitmovin’s 2020 Video Developer Report
H.264 は、ブラウザや、モバイル、スマートテレビなどでの動画消費では、主要な市場において優れた働きを発揮しますが、4K 動画や HDR(ハイダイナミックレンジ)コンテンツには適していません。
コーデックの適合性 | ライブオリジン | ライブトランスコード | 低遅延 | 4K | HDR |
H.264 | 優れている | 優れている | 優れている | 劣っている | 劣っている |
VP9 | 劣っている | 劣っている | WebRTC | 優れている | 劣っている |
HEVC | 良い | 良い | 対応しつつある | 優れている | 優れている |
AV1 | 対応しつつある | 対応しつつある | WebRTC | 優れている | 対応しつつある |
表 1:ビデオコーデックの比較 : 適合性
このブログで紹介している中で最も高速なコーデックである H.264 は、8K 動画などの高画質な配信よりも、寧ろ低遅延ストリーミングに適しています。Streaming Media 社の Jan Ozer 氏は次のように解説しています:
「H.264 がライブオリジネーションやトランスコードに優れているのは、エンコード速度が速いからです ; 他のコーデックで両方の機能を実現させるためには、ハードウェアによるサポートが必要になります。当然のことながら、HTTP ベースや WebRTC などの低遅延の用途ではH.264 が最も注目されています。」
H.264 は、今回紹介しているコーデックの中で最も古いビデオエンコードフォーマットです。多くの人が、今頃では時代遅れになっているだろうと予想していました。しかし、その処理能力とコストを考えると、H.264 に勝るものはありません。さらに、IP カメラや、セットトップボックス、モバイル機器、低消費電力機器など、H.264 でエンコード / デコード可能な機器の数も負けていません。
よって、H.264 は、効率的で広く採用されている映像圧縮技術で、コントリビューション、配信、デリバリーなどのストリームに使用されています。特に低遅延のワークフローに適しています。
VP9
VP9 は、H.265 に代わるロイヤリティフリー(無料)のオープンソース技術として、Google 社が開発しました。VP9 は、Google の YouTube プラットフォームと Chrome ブラウザでサポートされているほか、すべての Android 携帯 、Mozilla Firefox、Apple Safari、そして全ての新しい iOS デバイスでサポートされています。このコーデックは、多くの WebRTC のワークフローにも採用されており、Chrome でエンコードされた WebRTC ビデオの 90% 以上が VP9 またはその前身である VP8 を使用しています。
VP9 は2013年に発売されたもので、年代的には中途半端なところにあります。ですが実は、他のコーデックよりも優れているところがいくつかあります。まず、VP9 は H.265/HEVC と同等の性能を持っています。そのため、4K ビデオ、特に YouTube に適しています。
さらに、ブラウザやデバイス間の互換性という点で、VP9 は H.264/AVC に次いで優れています。サムスン、ソニー、LG、Roku など、多くの有名企業が VP9 をサポートしています。さらに、Google が YouTube に VP9 を採用したことや、Netflix が一部のコンテンツに VP9 を採用したことも、このトレンドを後押ししていくことでしょう。
コーデックの互換性 | ブラウザ | モバイル機器 | Smart TV/OTT |
H.264 | ほとんど全て | 全て | 全て |
VP9 | ほとんど全て | Android, iOS | ほとんど全て |
HEVC | 非常に少ない | Android, iOS | 全て |
AV1 | Edge, Firefox, Chrome, Opera | Android | 対応しつつある |
表2:ビデオコーデックの比較 : 互換性
VP9 は AV0、または AV1 の初期バージョンのようなものです。どちらもオープンソースで、ロイヤリティフリーを謳っています(ただし、これには疑問の声もありますが)。現時点では、より多くのデバイスが VP9 をサポートしているため、VP9 の方が AV1 よりも優れているコーデックと言えます。
ここでは VP9 を 2 番手としていますが、次で紹介する H.265/HEVC とは性能的には僅差です。
以上のことから、VP9 は、H.264/AVC よりも高度で高品質な圧縮技術であり、他の多くの代替技術よりも高い互換性を持ち、4K ストリーミングにも適しています。
H.265/HEVC
ISO/IEV Moving Picture Experts Group が H.264 の後継規格として開発したものが H.265 です 。HEVC(High Efficiency Video Coding)とも呼ばれるこのコーデックは、圧縮効率の向上と 8K 解像度のサポートを目的としています。HEVC は H.264 よりもストリームの視聴に必要な帯域幅を減らすことができます。そのため、高解像度のストリーミングに最適なコーデックとなっています。
とはいえ、H.265 でエンコードされたファイルは、まだ全体の約 10% に過ぎません。ロイヤリティが不明瞭であることも、コーデック採用の妨げになっています。特にコンテンツ配信業者は、H.265 を使用する際に支払うロイヤリティの透明性が低いことに不満に感じています。
H.265 にまつわる特許やロイヤリティの問題は、「Alliance for Open Media」による AV1 コーデック(次の項目で解説)の開発に直結しており、ブラウザベースでの再生に対応していないことも大きな問題でした。その理由としては、Google、Microsoft、Mozilla といった業界のリーダーたちは、コストのかかるコーデックを Chrome、Edge、Firefox に対応させることに興味を示さなかったということがあります。その結果、H.265 でエンコードされたビデオを受け付けるブラウザは、全体の約 18.08% に留まっています。
VP9 や H.264 よりも H.265 の方が優れているのは、とくに 4K や HDR のビデオをリビングルームの機器に配信する場合で、またスマートテレビではほぼ全面的にサポートされているという点です。
コーデックのロイヤリティの状況 | エンコーダ | デコーダ | 有料コンテンツ | 無料のインターネットコンテンツ |
H.264 | あり | あり | あり | なし |
VP9 | なし | 民生機器 | なし | なし |
HEVC | あり | あり | ところによってはあり | 不明瞭 |
AV1 | なし | 民生機器 | なし | なし |
表 3 :ビデオコーデックの比較 : ロイヤルティの状況
リビングルームの機器に対してプレミアムな OTT コンテンツを配信する場合は、H.265 が最適ですが、ロイヤリティを支払う覚悟が必要です。
AV1
H.265 のロイヤリティに関して不満をに感じた Amazon、Netflix、Google、Microsoft、Cisco、Mozilla などの有名企業は、Alliance for Open Media を結成しました。その目的は、オープンソースでロイヤリティフリーの代替コーデック「AV1」の開発でした。
コーデックは完成しましたが、AV1 使った高品質なビデオの配信と再生を広めるための取り組みはまだ始まったばかりです。
Cisco 社コラボレーションテクノロジーグループの CTO である Johnathan Rosenberg によると、「先進的でロイヤリティフリーのビデオコーデックを開発することは、コラボレーション製品やサービスの継続に最も重要なのです。これが、AOMedia の創設メンバーとして Cisco が参加した理由であり、AV1 の効率化とインターネットコミュニティへのアクセスを可能にするために投資した理由です」と述べています。
AV1 は、H.265 に比べて 30% 圧縮効率が良いと主張していますが、個別のソースによって検証される必要があります。また、AV1 のハードウェアデコード機能が大規模に統合されるまでには、まだ時間がかかります。Apple が 2018 年 1 月にアライアンスに参加したにもかかわらず、Apple のデバイスでさえこのコーデックのサポートは実装されていません。
つまり、AV1 に関しては、業界はまだ流動的だということです。
Netflix のエンコーディング・テクノロジー・ディレクターである Anne Aaron 氏は以下のように解説しました。「現時点での AV1 におけるデメリットは、まだ新しいという点です。」「H.264 は 10 年以上かけて開発された非常に優れたコーデックですが、AV1 は新しく、まだ実装に問題があります。」
AV1 のハードウェアデコード機能が大規模に適応されるまでには、まだ時間がかかるとお思われます。Netflix や Facebook などの大手企業達が AV1 への移行を計画していますが、再生に限界があることは無視できません。また、AV1 コーデックはエンコードに時間(=コスト)がかかります。そのため、大量に消費される動画をエンコードする場合にのみ、費用対効果の高いソリューションとなっています。
Jan Ozer 氏が、最近のブログでこのコーデックについて深く掘り下げていて、「たとえ YouTube であっても、動画の再生回数が数百万回を超えない場合は、エンコーディングコストの増加分を帯域幅の節約という形で回収することはできないだろう。」と結論づけています。
AV1 は、最新かつ最高のオープンソースのビデオエンコーディング技術ですが、この技術がどのように採用されるか判断するには時期尚早かもしれません。現時点では、エンコードにかかる時間が長いため、エンコードにかかるコストが高くなってしまいます。
H.266/VVC
H.266/VVC(Versatile Video Coding)は、2020 年に仕様が最終決定されたばかりの、映像圧縮の最新技術です。H.265 や H.264 に取って代ろうとしていますが、他の規格と同様にロイヤリティの問題を抱えています。
2008 年当時 の Beamr 社の最高技術責任者である Dror Gill の説明では、「いつ、どれだけのロイヤリティを支払う必要があるのかが分かっていれば、ロイヤリティを支払うのは構わないでしょう。H.264 は、ロイヤリティの金額が明確で、ロイヤリティを徴収する団体があったため、世界で最も有名なビデオコーデックとなりました。 VVC でも、規格をリリースする前に行動を共にすれば、同じことが起こり得ます。」
しかし、H.266/VVC のロイヤリティについては、今のところ不明瞭です。ライセンス面での課題があり、まだ、採用状況を見極めている段階です。
コーデックの専門家である Jan Ozer 氏は
「全体的に見て、H.266/VVC コーデックの各開発は、帯域幅の節約を実現するために大きく前進しています。しかし、最終的なパフォーマンスは、ロイヤリティポリシーが設定され、どのツールがどのプロファイルに含まれているかが判明するまで分かりません。それ以外にも様々な要因が絡み合っているため、現時点では VVC が普及に達するかどうかはわかりません。」と述べています。
H.266/VVC はまだ発展途上の技術で、未知の部分が多いため、予測することは難しく、ほとんどのコンテンツ配信業者が H.266/VVC の採用を検討するのは早くても 2022 年以降になると思っています。
エンコードのベストプラクティス
エンコードのベストプラクティスは、どのコーデックを選択するかだけではありません。フレームレート、キーフレームの間隔、ビットレートなども考慮する必要があります。
幸いなことに、ライブストリームはサーバーに届くと、いつでも別のフォーマットにトランスコードすることができます。これは、ストリーミングソフトウェアと自社のサーバーを使って行うこともできますし、プロが管理するクラウドで配信することもできます。
エンコード VS トランスコード
では、トランスコードとは一体何なのでしょうか ?トランスコードとは、エンコードされたファイルをデコードして、何らかの変更を加えることです。データをより一般的なコーデックに再エンコードしたり、映像をより低い解像度に変換したり、ファイルを異なるビットレートに変換したり、よりスケーラブルなプロトコルに変換したりするといったことが含まれます。
処理が完了すると、メディアサーバーは操作されたファイルを再圧縮して配信します。
トランスコードによって、H.264 にエンコードされたビデオを VP9 や H.265 にエンコードされたビデオへと自由に変更することができます。これにより、4K ストリーミングに最適化されたコンテンツを、スピーディにエンドユーザーに提供することが可能になります。
エンコードとトランスコードは、旅行の荷造りのようなものです。まず、旅行先への移動を容易にするために、衣類を圧縮(エンコード)してバッグに詰め込みます。目的地に到着したら、荷物を解き、不要なものを捨て、旅先で集めた小物を加え、次の旅に向けてバッグに詰め直します。これがトランスコードです。
マルチコーデックのビデオ配信
もうおわかりでしょう。ビデオコーデックは、カメラのレンズを通して捕らえた映像を、インターネットで配信するために圧縮することで、私達に無限の世界をもたらしてくれるのです。
独自のコーデックやビデオコンテナが存在するため、複数の異なるバージョンのライブストリームを視聴者に配信することが不可欠です。
幸いなことに、Wowza 社は Wowza Streaming Engine という 自身のサーバー(オンプレミスでもサードパーティのクラウドプラットフォームでも運用可能な)によるマルチコーデックのビデオ配信を実現するソリューションを提供しています。手間をかけずすぐに配信を開始したい方には、Wowza Streaming Cloud サービスをお奨めします。
これらのソリューションによって、データを新しいコーデックにトランスコードしたり、異なるビデオエンコードフォーマットに多重化変換したり、必要に応じてストリームを変換することができます。