見出し画像

「Direct ABR」による高画質配信

本日「Live Extreme Encoder v1.8」がリリースされました。本アップデートには様々な改善が含まれていますが、目玉となるのが「Direct ABR」というLive Extreme独自の機能です。この機能はLive Extremeを視聴可能なユーザー数を増やすだけでなく、インターネット動画ライブ配信システムの画質の底上げをできるポテンシャルを有しています。今回はこの「Direct ABR」について技術解説していきます。

Adaptive Bitrateとは

インターネット速度は視聴環境によってまちまちです。光回線であれば数百Mbps以上の速度が出ることも珍しくありませんが、屋外でのスマホ環境だと10Mbpsを切ることさえあります。HLSやMPEG-DASHなどのHTTPストリーミング配信技術では、インターネット速度によらず安定した再生(=映像や音声が途切れない)を実現するために、「ABR (Adaptive Bitrate)」という仕組みが用意されています。

これは、配信サーバー内の同一コンテンツに対し、低ビットレート(低解像度)から高ビットレート(高解像度)までの複数のストリームを用意しておき、視聴者側のストリーミング・プレイヤーが通信状態に応じて、最適なストリームを選択して再生する、というものです。

Adaptive Bitrateの原理

再生開始直後は低解像度の映像だったものが、しばらく観ていると高解像度の映像に自動的に切り替わった。あるいはずっと高解像度の映像だったものが急に低解像度映像に切り替わった、という経験を持つ方は多いかと思いますが、これこそABRの仕組みによるものです。映像や音声が途切れない代わりに、音質や画質がリアルタイムに変化していきます。

ライブ動画配信システムにおけるABRの問題点

一般的なライブ動画配信システムでは、ライブ会場からストリーミング・サーバーにRTMPプロトコル(コーデックはH.264映像+AAC音声)で打ち上げられます。続いて、サーバー内でHLSやMPEG-DASHといったウェブ・ブラウザで再生可能な形式にリアルタイム変換されるのですが、この時、ABR配信のために、サーバー内で複数のビットレートのストリームが生成されることになります。

ここで問題となるのは、既にライブ・エンコーダー内でH.264やAACに不可逆的に圧縮されているにも関わらず、サーバー内でビットレートを落とすための"再圧縮"が掛かることです。これは(昔の例で恐縮ですが)テレビ放送をVHS記録したものから、別のVHSテープにダビングするようなもので、音質と画質の大きな犠牲を伴います。

更に問題なのは、仮にライブ・エンコーダーで打ち上げたビデオとオーディオのビットレートと、ABRの最上位のビットレートが一致している(=本来再圧縮が必要ない)場合においても、この再圧縮が不可避であることです。私たちが普段ライブ配信で視聴しているビデオもオーディオも、単なる圧縮データというだけでなく、必ず圧縮を2回行った純度の低いデータになるわけです。

一般的なライブ動画配信システム

Live Extreme独自の「Direct ABR」

Live Extremeは、ライブ・エンコーダー内でユーザーが視聴可能な形式 (HLS, MPEG-DASH) に直接エンコードし、配信サーバーはそのデータをスルーさせるだけ、という設計思想で開発されています。これによって、ストリーミング・サーバー内での品質劣化を回避しているのですが、ABR対応においても「Direct ABR」という考え方を用いて、この思想を貫いています。

Direct ABRの原理

ライブ配信現場で、SDIやHDMIから入力された非圧縮映像は、Live Extreme Encoder内部で最大4系統のABR映像に直接変換され、サーバーにアップロードされます。これにより配信サーバー内で再圧縮する必要がなくなるため、同じビットレート映像であっても、従来システムより高画質な映像が配信されることになります。

即ち、Direct ABRはLive Extremeを視聴可能なユーザー数を増やすだけでなく、ライブ配信の高画質化を実現する技術と言えます。

Direct ABR配信の概略

尚、一般的なライブ配信システムでは、音声にもABRが適用されますが、Live Extremeにおいては映像のみに適用しています。音声は従来通り、FLACやALACによるロスレス/ハイレゾ配信のみの対応となっておりますので、A/Dされた音声は常にビット・パーフェクトのままストリーミング・プレイヤーに配信されます。

Live Extreme Encoderで可能な設定

前述のとおり、Live Extreme Encoderは1台につき最大4段階のABRを設定することが可能ですが、設定可能な範囲は以下の通りです。

エンコード対応フレーム・サイズ (px):
3840×2160, 2560×1440, 1920×1080, 1280×720, 854×480, 640×360, 360×240
エンコード対応フレーム・レート (fps):
60, 59.94, 50, 30, 29.97, 25, 24, 23.98, 15, 14.98
エンコード対応ビットレート:
200kbps ~ 65Mbps

Live Extreme Encoder設定画面

従来、ABR設定は配信プラットフォーム側で固定されており、配信管理者や主催者が意識することはなかったと思いますが、Live Extremeにおいては配信管理者自身が行うことになります。あくまでも参考値ですが、FHD配信の場合は、以下を基準に、実際に配信される画質を見ながら調整していくと良いでしょう。

1. 1920×1080p, 6000kbps
2. 1280×720p, 3000kbps
3. 854×480p, 1000kbps
4. 640×360p, 300kbps

Direct ABR設定例 (FHD映像入力時)

エンコード品質設定

Direct ABRをサポートするために、Live Extreme Encoder内部では最大4つのH.264エンコーダーが同時に回ることになります。ここで気になってくるのがエンコーダーの負荷です。

Live Extreme Encoderは「QuickSync Video」というIntelのハードウェア・エンコード技術によってGPUエンコードを行なっています。これにより、H.264エンコーダーがCPU負荷を圧迫することはありませんが、GPUのプロセス能力にも限界はあります。これを調整するためのパラメータが「エンコード品質」です。

Live Extreme Encoderは、4つのH.264エンコーダーそれぞれについて「最高品質 (Best Quality)」「バランス (Balanced)」「速度重視 (Fastest)」の3種類の中から選択することが可能となっていますので、お使いのGPUスペックや実際の負荷を見ながら、全体のバランスを調整していきます。

エンコード品質の設定画面

IntelはQuickSync Videoのホワイトペーパー上で、エンコーダー設定値による速度と品質の変化量を公開していますが、このデータはLive Extreme Encoderの設定にも役立ちます。

QuickSync Videoの設定ごとのエンコード品質と変換速度

最高品質 (Best Quality) → 1 veryslow
バランス (Balanced) → 4 medium
速度重視 (Fastest) → 7 veryfast

【参考】Live Extreme Encoderの「エンコード品質」と、QuickSync Videoの設定値の対応表

これによると「最高品質 (1)」から「バランス (4)」に変更するとGPU負荷は半分に減りますが、画質の低下はビットレート換算で2~4%程度ですので、数百kbps程度ビットレートを増やせば問題なさそうです。また「速度重視 (7)」でも画質の低下は9~12%程度ですので、少なくとも再圧縮を伴うABRと比較すれば「バランス(4)」設定でも「速度重視(7)」設定でも十分な品質を担保していると言えるでしょう。

プレイヤー設定

Direct ABRで配信されたコンテンツであっても、視聴者は特に意識することなく従来通り再生することができます。ただしプレイヤーは常にネットワーク速度を監視しながら、数秒ごとに品質を切り替えています。

ここで、人によっては

  • 外出先で視聴しているため、あえてビットレートを落としてパケット代を節約したい

  • 視聴画面がフルHD解像度しかないので、4Kストリームは受信したくない

  • 常に最高画質で受信しているという安心感が欲しい

と思うかもしれません。その場合、プレイヤー下部のメニューから受信するビデオの解像度(ビットレート)を固定することが可能です。(Safariブラウザを除く)

ビデオ解像度切り替えボタン
ビデオ解像度の設定

まとめ

Live Extremeは配信品質を重視した動画配信システムであるため、これまでは、ある程度インターネット速度が担保された環境で視聴することを想定してきました。しかし、今回開発したDirect ABRにより、品質への拘りはそのままに、より多くの方にお愉しみいただけるシステムに仕上がったのではないかと思っています。

この記事が気に入ったらサポートをしてみませんか?