ニュース

Netflix、「フレーム補間」機能に対する取り組みを紹介

米Netflixは、同社のシステムの設計や構築、運営方法、エンジニアリングなどについて紹介するブログ「Netflix Technology Blog」のなかで、フレーム補間機能に対するNetflixの取り組みについて紹介している。

現在、Netflixでは23.97fps~60fpsまで、さまざまなフレームレートで撮影・エンコードされた作品を配信している。ユーザーがソース機器(セットトップボックス、ストリーミング端末、ゲーム機など)で、映画やテレビ番組の視聴を開始すると、コンテンツが配信されたあと、そのネイティブフレームレート(撮影・エンコードされたときのフレームレート)でデコードされる。

NTSC地域の場合、24fpsの映像は60fpsに補間される

デコード完了後、ソース機器は接続されたシンク機器(テレビやモニターなど)のHDMI入力ポートの性能に基づいて設定されたHDMI出力フレームレートに、映像を変換して出力する。このHDMI出力フレームレートは一般的に、PAL地域では50fps、NTSC地域では60fpsに自動設定されている。

しかし、Netflixで提供されている50fpsまたは60fpsのハイフレームコンテンツは数が少なく、作品の多くは23.97fps~30fpsで撮影・エンコードされているため、ソース機器側で「フレームレートコンバージョン(FRC)」により、補間フレームが生成される。

24fpsの映像を50fpsに補間する場合のアルゴリズム例。23~24フレーム目は各3回ずつ複製されるため、ジャダーがより目立ってしまう

この際、出力フレームレートがネイティブフレームレートの整数倍(24fps→48fps、30fps→60fps、24fps→120fpsなど)であれば、FRCは正常に機能するものの、非整数倍(24fps→60fps、25fps→60fpsなど)で変換している場合、「ジャダー(映像のカクつき)」が発生してしまう。

この問題の解決策として、同ブログでは3つのソリューションを紹介。ひとつはソース機器とシンク機器が、HDMIリンクの送信フレームレートを変更する機能を活用したもので、これをシステム設定で有効にすると、HDMI出力フレームレートをコンテンツフレームレートと正確、または整倍数で一致させる。

QMSなしの表示例。コンテンツのスタート前に画面が一瞬途切れる

しかし、HDMI 2.1よりも古いバージョンをサポートしている機器では、HDMIデータレートを変更せずにフレームレートを変更できず、リンク手続きを最初からやり直す必要があるため、画面の表示が一瞬途切れてしまう。

ふたつめのソリューションは、HDMI 2.1で追加されたオプション機能「QMS(Quick Media Switching)」を使うもの。上述のとおり、HDMIはソースのフレームレートや解像度などが変わると、その都度、送信と受信側のICがリンク作業を行なうために画面がブラックアウトしていたが、QMSを使うと、ソース側の信号種類が変わっても、ブラックアウトが起きることなく、スムーズに画面切り替えができる。

QMSありの表示例。映像が途切れることなくコンテンツがスタートする

Netflixも「QMSは、この問題を解決するための理想的なソリューションと位置づけている」としているが、現時点では「この技術は比較的新しいものであり、ソース機器やシンク機器での採用には時間がかかるだろう」としている。

最後のソリューションは、HDMIの仕様に依存せずジャダーの影響を最小限に抑えるために、アプリケーション側で各ビデオフレームの「プレゼンテーションタイムスタンプ」を操作するというもの。

例として、3秒の24fpsコンテンツ(24fps×3秒=72fps)を、50fps(50fps×3秒=150fps)に補間する場合、ソース機器は3秒間に72フレームをストリーミングアプリ(Netflixアプリ)から取得する必要がある。

Netflixアプリで「プレゼンテーションタイムスタンプ」を操作する例

そこで、Netflixアプリでは1秒間に24フレームを規則正しく送信するのではなく、最初の2秒間に25フレーム(25fps×2秒=50fps)、3秒目に22フレームを送信する。こうすることで、最初の2秒間は25フレームを均等に2回複製でき、3秒目には22fpsから50fpsへのFRCが行なわれるため、24fpsの映像をそのままFRCで50fpsに変換するよりも、より均一なフレーム複製ができ、ジャダーを軽減できるという。

また、Netflixアプリでは、ユーザーの体験を優先するために、ネイティブフレームレートでの再生が有効になっている場合でも、この設定を無視する場合があるとのこと。具体例としてはユーザーがホームUIでコンテンツを閲覧しているとき、予告映像はネイティブフレームレートで再生しないという。

この理由については、「予告映像がさまざまなフレームレートでエンコードされている場合、予告映像を切り替えるたびに画面がブラックアウトし、閲覧できなくなる」こと、「予告映像をネイティブフレームレートで再生すると、関連するUIコンポーネント(カーソル移動やアセット選択)もフレームレートを下げて表示することになり、UIの閲覧が重くなることがある」ことを挙げている。

Netflixアプリにおけるネイティブフレームレートの利用例

これらの問題を解決するため、Netflixではユーザーがタイトルを選択し、最小限のグラフィックUI要素が表示されるフルスクリーン視聴時にのみ、ネイティブフレームレート再生を適用するアプローチを採っているとのこと。

最後にNetflixは「私たちの目標は会員の視聴体験を向上させ、コンテンツに没頭してもらえるような新機能を導入することで、会員の没入感を最大化することだ」としている。