intel QSVの世代別対応コーデック

 intel製CPUのハードウェアエンコーダ・デコーダであるQSV(Quick Sync Video)対応有無が判り難いので、以下の投稿を書きました。
QSV対応CPU一覧 - 記憶は人なり

 それ以上に識別が困難なのは、各プロセッサに搭載されたQSVが対応しているコーデックの種類と、デコードのみ対応しているのか或いはエンコードにも対応しているのかといった対応状況です。
 というのも、(恐らく)intel公式サイトで調べる方法が無いからです。

 intel ARKで個別にプロセッサの仕様を調べ、[プロセッサー・グラフィックス]-[インテル® クイック・シンク・ビデオ]の欄を確認することで、QSV対応有無は調べることができます。
 が、表示されるのは[はい]/[いいえ]のみで、どのコーデックに対応しているのか識別することはできません。
インテル® 製品の仕様情報

 もちろん、新規コーデックに対応した製品がリリースされると、その発表がされたりはします。ですが、既存製品に搭載されたQSVがどのコーデックに対応しているのか網羅的に判る公式なドキュメントは(少なくとも私が調べた限りでは)公開されていないのです。

 というわけで、intel QSVの世代別対応コーデックを整理してみました。
 

情報ソース

 Githubintelリポジトリに、Linux用ビデオドライバ(VAAPI)のREADMEにまとまった情報が見当たります。intel公式サイト上ではないものの、事実上intel公式の説明と見做して問題ないと思います。
intel-vaapi-driver/README at master · intel/intel-vaapi-driver · GitHub
 上記READMEより引用すると、以下のようにプラットフォーム略称の定義と、各コーデックのエンコード・デコードに対応した世代略称が記述されています。

Platform definitions:
CTG: Cantiga, Intel GMA 4500MHD (GM45)
ILK: Ironlake, Intel HD Graphics for 2010 Intel Core processor family
SNB: Sandybridge, Intel HD Graphics for 2011 Intel Core processor family
IVB: Ivybridge
HSW: Haswell
BDW: Broadwell
CHV/BSW: Cherryview/Braswell
SKL: Skylake
BXT: Broxton
KBL: Kabylake
GLK: Gemini Lake
CFL: Coffee Lake
CNL: Cannolake

Codecs
------
H.264 D ILK+
H.264 E SNB+
MPEG-2 D CTG+
VC-1 D SNB+
JPEG D IVB+
JPEG E CHV+/BSW+
VP8 D BDW+
VP8 E CHV+/BSW+
HEVC D CHV+/BSW+
HEVC E SKL+
VP9 D BXT+
VP9 E KBL+
HEVC 10bit D BXT+
HEVC 10bit E KBL+
VP9 10bit D KBL+

 

コーデック別QSV対応世代一覧

 上記情報を整理すると、下表のようになります。Notes欄にはコード名を世代番号またはプロセッサナンバーに変換した情報を付記しています*1

Encode

Codec Support from Notes
H.264 Sandybridge, Intel HD Graphics for 2011 Intel Core processor family 第2世代Core iシリーズ以降等
JPEG Cherryview/Braswell Atom Z/E8000シリーズ以降, Pentium/Celeron J/N3000シリーズ以降
VP8 Cherryview/Braswell Atom Z/E8000シリーズ以降, Pentium/Celeron J/N3000シリーズ以降
HEVC (H.265) Skylake 第6世代Core iシリーズ以降
VP9 Kabylake 第7世代Core iシリーズ以降
HEVC (H.265) 10bit Kabylake 第7世代Core iシリーズ以降

Decode

Codec Support from Notes
H.264 Ironlake, Intel HD Graphics for 2010 Intel Core processor family 第1世代Core iシリーズ以降等
MPEG-2 Cantiga, Intel GMA 4500MHD (GM45) 末期のCore2世代向けチップセット以降等
VC-1 Sandybridge, Intel HD Graphics for 2011 Intel Core processor family 第2世代Core iシリーズ以降等
JPEG Ivybridge 第3世代Core iシリーズ以降
VP8 Broadwell 第5世代Core iシリーズ以降
HEVC (H.265) Cherryview/Braswell Atom Z/E8000シリーズ以降, Pentium/Celeron J/N3000シリーズ以降
VP9 Broxton Broxtonはキャンセルされたため事実上Kabylake以降
HEVC (H.265) 10bit Broxton Broxtonはキャンセルされたため事実上Kabylake以降
VP9 10bit Kabylake 第7世代Core iシリーズ以降

 

その他

 情報ソースとしてはintel公式から離れますが、ffmpegのQSVサポートにも情報がまとまっています(プラットフォームの世代とintelグラフィックの世代毎に、どのコーデックに対応したかという軸で整理されています)。
Hardware/QuickSync – FFmpeg
 

雑感

 ここからは単なる主観で記載しています。
 H.265(HEVC)のコンテンツも出てきていますが、2019年初頭の時点ではまだまだ身の回りのコンテンツの多くはH.264が主流と言って差し支えない状況だと思います。
 そうは言っても、4K動画が撮影できるスマートフォンの多くではH.265が使われていますし、iPhoneでは静止画をHEIFとして保存する場合、HEICコンテナでH.265を使っています。そういったことを考えると、そう遠くない未来にH.265が広く使われるようになるのは時間の問題かもしれません(H.264なら一定の条件下でライセンスフィーが無償ですが、H.265はライセンス周りが煩雑で解りにくいあたりが、普及を阻害しているようにも思えます)。
 VP8/VP9はライセンス費用が掛からないことが大きな魅力ですが、導入しているメジャーサービスはYoutube位ではないでしょうか。静止画のWebMコンテナでVP8を扱っているケースもごく稀で、ほとんど見かけません。流行り廃りの激しいWebサービスに導入するのはライセンス費用及びデータボリューム削減の観点からは非常にマッチしていると思いますが、VP9はSafariが対応していないため、iPhoneをはじめとするApple製品ユーザーをターゲットにしている場合、VP9に一本化することはできません。また、スマートフォンを含め、デジタルビデオカメラやミラーレスカメラの動画機能など、集録用機材で採用されている事例も見たことがありません。そこらへんも普及を阻害しているように思えます。
 といったことを考えると、現状では一般個人が使う機器に関してはHEVCのエンコード・デコードに対応していれば必要十分過ぎる位なのかなと思えます。10bitについては、そもそもHDR10対応モニタを使っていなければ恩恵を受けられませんし、その普及率もさほど高くないと思われることから、現状ではあくまでもnice to have程度の扱いで、どっちでもいいと思います。時間さえかければソフトウェアエンコードでどうにでもなる話ですし。
 というわけでQSVで動画を扱うなら、Skylake以降のQSV対応プロセッサ搭載PCなら対応コーデックの観点からは特に困らないのではないかと思います。
 



以上。

*1:間違えてるかもしれません。