[アップデート] AWS Elemental MediaConvertがQVBR方式のエンコーディングに対応しました!
はじめに
清水です。AWS Media Servicesの細かなアップデートを追っていくコーナーです。本エントリではAWS Media Servicesの1つでありファイルベースの動画変換サービスであるAWS Elemental MediaConvertでQVBR(Quality-Defined Variable Bitrate)形式のエンコーディングに対応するというアップデートについてまとめてみたいと思います。(2018/08/13にアップデートされた内容となります。)
- AWS Developer Forums: AWS Elemental MediaConvert Now Supports Quality-Defined Variable Bitrate (QVBR) Encoding
- AWS Elemental MediaConvert Now Supports Quality-Defined Variable Bitrate (QVBR) Encoding
- AWS Elemental MediaConvert は Quality-Defined Variable Bitrate (QVBR) のエンコーディングをサポートします
これまでAWS Elemental MediaConvertでは、ビットレート制御方式としてCBR: Constant BitrateとVBR: Variable Bitrateがサポートされていました。今回この2つに加え、QVBR(Quality-Defined Variable Bitrate)もビットレート制御方式として選択可能になりました。対応コーデックはAVC(H.264)とHEVC(H.265)とのことです。
QVBRとは?
ざっとQVBR形式について確認してみましょう。エンコード(トランスコード)時のビットレート制御/指定方法としては、常に固定のビットレートとするCBR(Constant Bitrate)と、映像として動きが速かったり、細かったりなど、圧縮難易度が高い部分に広帯域を割り当てるVBR(Variable Bitrate)の2種の方式がありました。
VBRでは最大ビットレートと平均ビットレートを指定して、映像の内容によってエンコーディング時にビットレートを決定します。VBRにより圧縮難易度が高い部分に広帯域を割り当て、平均ビットレートがある程度低くても高画質を維持する(必要な部分だけ高ビットレートととする)ことが可能になりました。しかし、圧縮難易度が低い、例えば静止していることが多い映像などの場合、平均ビットレートでの変換になります。これは例えば、よりビットレートを低くしても画質の維持ができる可能性があり、帯域の無駄になってしまいます。これらを調整して、様々なコンテンツやシーンで自動的にビットレートを調整する、というのがQVBR(Quality-Defined Variable Bitrate)の方式です。つまりQVBRでは圧縮難易度が高くビットレートを必要な部分ではビットレートを高くし、圧縮難易度が低いところでは、より(平均ビットレートよりも)ビットレートを抑える、ということが可能になります。
これにより得られるメリットとして、CBR、VBRと同じファイル容量でより高画質なエンコーディング結果が得られます。また同じ画質であればより少ないファイル容量、ビットレート量となります。これにより、ネットワーク転送や、ストレージの削減が期待できますね。結果としてはコスト(費用)削減にも繋がります。リリース情報ではストレージの使用容量とデリバリーコストを最大50%削減します、と記載がありました。
なおQVBRの詳細については、以下のAWS Elemental MediaConvertのドキュメントや、AWS Elementalのサイトの情報が詳しいです。
- Using the QVBR Rate Control Mode - AWS Elemental MediaConvert
- What is Quality-Defined Variable Bitrate (QVBR) Control?
- How Does Quality-Defined Variable Bitrate (QVBR) Control Improve Video Quality?
AWS Elemental MediaConvertでQVBR方式でエンコードしてみた
それではAWS Elemental MediaConvertでQVBR形式でのエンコーディングを試してみます。出力グループはファイルグループを選択し、コーデックはAVC(H.264)としました。また入力に用いた映像ファイルはフルHD1920x1080ですが出力は640x360としています。
レート制御モードにて、デフォルトのCBRからQVBR選択します。
ビットレートの指定ではなく、最大ビットレートの指定と、QVBR品質レベルの選択ができるようになります。(なお今回はSingle passで行っていますが、Multi-passにすると最大平均ビットレートも指定できるようですね。)最大ビットレートを1Mbps、QVBR品質レベルを7としました。
比較としてCBR、VBRについてもファイル出力を指定してみます。CBRについては以下のようにビットレート600kbpsと指定してみます。
VBRについてはビットレート600kbps、最大ビットレート1Mbpsと指定しました。
変換後の出力はこのようになりました。(拡張子.mp4の前がそれぞれCBR、VBR、QVBRを表しています。)QVBRだけファイル容量が小さいですね。QVBRの圧縮難易度が低いところにはビットレートを抑える、ということが効いているのかと思います。
続いて変換したファイルについて、MediaInfoで情報を確認してみましょう。QVBRについては以下のように全体のビットレートとしては107kbpsとなっていました。
CBRとVBRについてはどちらも600kbps強のビットレートです、QVBRにすることで全体ビットレートもに抑えられていることが確認できます。(上がCBR、下がVBR)
QVBRの画質については、動きがある部分については少し悪くなりますが、静止している状況ではきれいかな、という具合でした。ここはQVBR品質レベルや品質チューニングなどで調整が必要そうですね。
まとめ
AWS Elemental MediaConvertの新機能、QVBR形式での変換を試してみました。これまでのCBRやVBRの変換では、どのぐらいのビットレートにするかを指定する必要がありました。QVBR形式では、最大ビットレートを指定しすることで、圧縮に帯域を必要としない箇所では自動的にビットレートを抑えることができます。品質レベルなどのパラメータはありますが、ビットレートを細かく指定せず最適な画質が得られるのは強力だと思いました。引き続きAWS Elemental MediaConvertをはじめとしたAWS Media Servicesの機能アップデートに注目していきたいと思います。