intel QSVの世代別対応コーデック
intel製CPUのハードウェアエンコーダ・デコーダであるQSV(Quick Sync Video)対応有無が判り難いので、以下の投稿を書きました。
QSV対応CPU一覧 - 記憶は人なり
それ以上に識別が困難なのは、各プロセッサに搭載されたQSVが対応しているコーデックの種類と、デコードのみ対応しているのか或いはエンコードにも対応しているのかといった対応状況です。
というのも、(恐らく)intel公式サイトで調べる方法が無いからです。
intel ARKで個別にプロセッサの仕様を調べ、[プロセッサー・グラフィックス]-[インテル® クイック・シンク・ビデオ]の欄を確認することで、QSV対応有無は調べることができます。
が、表示されるのは[はい]/[いいえ]のみで、どのコーデックに対応しているのか識別することはできません。
インテル® 製品の仕様情報
もちろん、新規コーデックに対応した製品がリリースされると、その発表がされたりはします。ですが、既存製品に搭載されたQSVがどのコーデックに対応しているのか網羅的に判る公式なドキュメントは(少なくとも私が調べた限りでは)公開されていないのです。
というわけで、intel QSVの世代別対応コーデックを整理してみました。
情報ソース
Githubのintelのリポジトリに、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:間違えてるかもしれません。