Netflix、Android向けにAV1ストリーミング開始。VP9より圧縮効率20%向上 …… ハードウェアデコーダーはまだです。

AV Watchの記事である。AV1(旧VP10)はH.265/HEVCより高圧縮が可能とされるエンコード技術である。


今年から来年のうちには登場したい(あくまで希望であり、実際に標準化出来るとは限らない。)とするMPEG-I Part.3 H.266/VCC(仮称、VCCはVersatile Video Codingの略)がこれを上回る予定だが、ロイヤリティ(ライセンス使用料)がたぶん発生する。だから、ネットコンテンツに関してはロイヤリティフリーのAV1へと段階的に切り替わっていくことが予想されていた。

ただ、印象として言えば早いなという感じだ。これを映像コンテンツの多くでサポートするなら、選択性にしてくれないとバッテリーの持ちが悪くなる恐れがあることと、スマホによっては上手く再生出来ない恐れもあるからだ。そもそも、AV1のデコーダーは現在販売されている製品群では搭載されていない。Snapdragon 865も発表時点でサポートは発表されておらず、MediaTekのHelioやHiSiliconのKirinでさえも今年出荷される製品でサポートされるものも出る予定のものもあるが、現時点ではサポートされてない。
GPGPUでも出来るが、今も対応ドライバーが出ていないのはソフトウェア処理で行うより、電力を喰らうケースがあるとかそういう部分もあるのかもしれない。

Androidの最新版は確かにソフトウェアデコードに対応しているが、AV1のデコードはVP9に比べて約2倍(ドラフト時点の評価、現在はもう少し軽量かも知れないし、パラメーターが増えているのでもっと上がっているかも知れない。)のパフォーマンスが必要であるほど複雑である。そのため、ソフトウェアデコードで行うと、かなりのバッテリー消費になることも予想される。

ちなみに、Netflixが始めるAV1コンテンツ化は最初から全てではないと思われる。
たぶん、NetflixがAV1化するのは25%効率が上がると指摘している内容から見て、以下のstreaming Learning Centerが書いている記事にある720pを優先的に行うのだろうと予想される。全部の映像でやるとむしろソフトウェアデコードが追いつかず再生品質が落ちる恐れもあるからだ。

尚、開発段階でのAV1の画質は、H.265を限定的に上回る水準だった。効果が大きいのは低ビットレート時のようで、ハイビットレートになると、見栄えは悪くないが、画質全般として見てH.265を必ずしも上回っているとは評価されなくなる程度である。

何故、そうなるのかというとそもそも、既に圧縮の効率化という技術そのものが限界に達しつつあるからだ。
その割に、エンコードアルゴリズムが複雑になっているので、テストとパラメーター調整(エンコードで好ましい画質にするための調整)が難しいのだ。

本来なら利用する企業側ももう少し遅らせた方が良かっただろう。
それでも、これを投入するのはサーバー上のデータ量を節約したいからという側面と、AV1という映像コンテンツの良いイメージを先行的に取り込む狙いなどもあるのだろうと思われる。一方で、心配なのはバッテリーパフォーマンスの低下は気になるところだ。たぶん問題ないと判断してのことだとは思うが……。デコーダーが出てからでも良かったのではないかとも思う。

まあ、Netflixを充電環境が整っていない環境下のAndroidのスマホなどでバリバリ使う人は、それほど多くないはずなので、そういうところも踏まえてのことなのだろう。


<蛇足-画質について>
 ~複雑なので一概に言えない画質~

ちなみに、一応説明しておくが圧縮効率が既にあまり画質が上がらない理由は次の通りだ。

よほどバッファリングを増やし、予測範囲を広げればもう少し効率化出来るだろうが、それをやると、大量のバッファを持たないと早送り、早戻し(巻き戻し)などで支障が出てしまうことが1点ある。AV1の場合は特に、主にスマホやIoTなどを狙っているので、バッファリングを極端に増やすわけにも行かない。

また、離散範囲をより広いブロックや狭いブロックに対応させ可変化すれば画質が確かに上がるが、どういう状況でどのブロック指定を使うかによって、画質が良くも悪くもなるという相反関係が強くなる。要は、当たれば綺麗、外れれば劇的にとまでは言えないが期待より汚い画質になりかねない。その割に全体で共通してプロセッサー側での処理内容は広がるのだ。画質に対して得られる効果にムラが出やすくなると……。今のでも困らないならそれで良いんじゃね?とかなるわけだ。

たいていのエンコーダーは、パラメーターをある程度決め打ちすることで、その範囲で処理をするが、その処理の仕方をある程度映像を処理する中で自動制御するためのプロファイルがある。その完成度が低いと、どんなに優れたエンコード技術(機能が豊富)でも、結果的に画質は低下することもあるのだ。
AV1は初期やドラフトの段階ではそれが残っていて、実は発行されてからも、多くのメーカーは利用するために、専用のエンコーダー用パラメーターの設定をテストをしていたはずだ。そのため、今まで利用されてこなかったと思われる。上記には書かなかったが、たぶん、Netflixはそれが明確にどのコンテンツでも安定すると判断出来たからという前提は必ずある。(それが上記に示した720pの話だ)

但し、1つ気を付けないといけない点がある。
AV1自体ハイビット(高いビットレート※)での圧縮では少し弱い傾向は、今も残っている可能性が高いという点だ。

※どのぐらいのビットレートになるとというのは映像の解像度などにもよるし、判断が難しいがBDなどのパッケージ並のビットレートになると厳しいと思われる。但し一般の人が並べて比べて分かるほどとは言い難いだろう。そもそも我々はそれ以下のビットレートでテレビを見ているのだから

これはBlog記事にも書いたことがないが(実は1度書き掛けて辞めたことがある。表まで作りかけたが、調べれば調べるほど内容が複雑になるので、諦めた)、映像圧縮では、高圧縮のためのパラ(メーター)と、ハイビットレートのためのパラで寄せる処理が異なる。高圧縮では、容量を減らすために破断させる(画質を落とすことを許容する)ことが目的となり、デコードの際にその破断を隠す処理、一種のフィルター処理(化粧隠し)が力を発揮する。そして、その化粧隠しで好ましい画質を得るのが特徴だ。

それに対して、ハイビットレートでは、破断させないことが前提にあり、撮影した映像を如何にノイズ無く、そのままの質で再生出来る状態に保持するかに力を入れる。隠さなくても自然で綺麗なのが重要なのだ。

その点で、両方を上手く捉えているのは、MPEGやITUの標準技術だ。ただし、条件付きのロイヤリティが設定されるぐらい、先端の技術が使われており、パラメーターに掛ける意気込みも段違いに高い。金が得られる前提で企業・団体が協力する部分もあるからだ。

AV1は元々、ネット業界を中心に容量を節約して高画質にし、且つ見栄えのするものを求めている。だから、逆に言えばハイビットレートでの高画質はあまり狙っているものではないと言える。(全く狙っていないという訳では無いだろうが、積極的に狙うものではないということである)

これを知らないと、AV1は何かにつけて良いと間違った認識をするだろうが、あくまでAV1はH.265のネットコンテンツで比較的低ビットレートのものを、それ並みに表現するための技術と見た方が良いだろう。但し、既にこれらのH.264と265でさえも、いやVP8と9でさえも多くの人はぱっと見で区別できる品質では無かったはずなので、投資コスト(ロイヤリティ)が安い方が良いという理屈でAV1が採用されるのも事実だ。


これは、蛇足であるが、一応、蛇足なりの結論を書けば、一般の消費者からすれば、そこそこ綺麗に見られればそれで良いので、AV1だろうが、H.265だろうがどうでもよい。まあ、新しい方が良さそうぐらいに思われれば成功だ。ただ、たいていの人は見られれば良い。強いて言えば、今まで見ていた映像を再生したらバッテリーが急低下したとかは嫌がられるだろう。それがなければ、ぶっちゃけ何でも良いのだ。VP8でもきっと満足はいく人は多いだろう。そんなレベルだ。
技術を使う側は、コストを重視する。Netflixみたいな映像コンテンツの配信だと、サーバーに保存している映像のデータ量が増えるほどコストが掛かるし、圧縮にロイヤリティが掛かるならそれもマイナスだ。って、理由でAV1が開発された。画質画質と言っているが、それはVP9に対してアドバンテージが必要だからという点と、HDRとか、色深度の拡張などへの標準対応が望まれた結果、対応したからという側面も無きにしも非ずだろう。

この記事へのコメント

この記事へのトラックバック