2018年3月25日日曜日

GoPro HERO6 で撮影した HEVC (H.265) 動画を古い PC で再生できるか?古い PC でも HEVC を再生したい!

GoPro の最新機種 GoPro HERO6 では、4K60 (4K 毎秒 60 コマ) の撮影に対応しましたが、4K60 で撮影した動画は、HEVC で記録されます。




HEVC 動画を扱うには、最新の PC が必要とされています。

例えば GoPro 公式サイトでは、インテル Kaby Lake (つまり第 7 世代) 以降のプロセッサーが対応と案内しているようです。

私のコンピューターは HEVC と互換性がありますか?
Windows
HEVC は、Intel Kaby Lake (または同等品) 以降のプロセッサーを使用している Windows 10 コンピューターでサポートされています。 



Kaby Lake プロセッサーといえば、2016 年にリリースされたばかりの新しいプロセッサーです。しかし、それより古い PC では絶対に扱えないか?といえばそうでもないです。
具体的にはどんな場合なのか?調べてみました。

どんな場合に HEVC で記録されるのか?

HERO 6 では、特定の解像度とフレーム レート(以下公式より)では強制的に HEVC になります。
https://jp.gopro.com/help/articles/block/hevc


ビデオ解像度フレーム レート (NTSC)フレーム レート (PAL)
4K60 fps50 fps
4K (4:3)30, 24 fps25, 24 fps
2.7K120 fps100 fps
2.7K (4:3)60 fps50 fps
1080p240 fps200 fps

それ以外の解像度・フレーム レートでは従来からの H.264 で記録されますので、古いハードウェアでも問題ないでしょう。

逆に、低解像度・低フレーム レートでも、 HEVC で記録したい・・・という人も多いかと思いますが、残念ながらできません。


そもそも HEVC ってなんだっけ?

HEVC とは、High Efficiency Video Coding = 高効率ビデオ コーディングの略で、H.265 とも言われています。

参考

現在、動画圧縮規格で広く普及しているのは、H.264 と呼ばれる規格です。10 年以上の歴史があります。
例えば、ちょっと前のスマホやデジカメなどの動画撮影機能では、まずこの H.264 で記録されていたといっていいほどです。
歴史が長く、広く普及しており、そんなわけで、多くの環境が対応しているという特長があります。
この H.264、以前は YouTube でも使用されていたりしました(YouTube では現在は VP9 という Google がプッシュしている動画圧縮規格が採用されてます)。


さて、この GoPro HERO6 で使用されることになった HEVC は、その H.264 の後継規格で、圧縮効率が高く、同じ画質ならビットレート(ファイル サイズ)が半分で済むといわれています。


4K (3840 * 2160) などの画素数の多い動画は、ビットレートが半端なく高くなるため、満足な録画時間を得るためには、高価な大容量 SD カードが必要になります。
また、ビットレートが高いということは、SD カードの書き込み速度も要求されます。
HEVC なら、同じ画質なら H.264 の半分程度のビットレートで済むわけですから、それが少し緩和されます。


つまり同じ容量の SD カードに記録する場合、HEVC なら 2 倍の時間記録できるということです。
これはユーザーにとって多大なメリットがあります。

HEVC は、これまであまり対応機器がありませんでしたが、GoPro HERO6 の登場によってようやく対応が求められるようになってきた・・・といったところでしょうか。

HEVC の問題点・デメリットは?

圧縮効率という点では素晴らしい HEVC ですが、現状では、対応している環境 (OS・編集ソフト・ハードウェア) が少ないという問題があります。

OS でいうと、Windows 10、macOS High Sierra 以降で対応しています。

しかし、OS が対応していても、編集ソフトが対応してなかったりします。
例えば、Adobe の 動画編集ソフト Adobe Premiere Pro ですら、Premiere Pro CC 2018 (12.0.1) でようやく最近対応したばかりです。
参考

古いソフトではまず対応していないでしょう。

そのため、そういった HEVC 未対応の動画編集ソフトをつかって HEVC 動画を編集したい場合、まずは変換ソフト (HandBrake など) を使って HEVC 動画を H.264 動画に変換する必要があります。


そしてハードウェアです。
この HEVC は再生時の処理が重いです。
とりあえず OS が Windows 10 なら、ソフトウェアで再生することはできます。滑らかに再生できるかどうかは別としてですが。
しかし 4K60 のような重い動画は、それなりに高性能なプロセッサーでないと、GPU の再生支援機能を借りないと荷が重いでしょう。

GPU (グラフィックス) には、動画の再生支援機能 (チップ内蔵のハードウェア デコーダー) を持っているものがほとんどですが、H.264 の再生支援に対応していても、HEVC の再生支援には対応してないという場合が多いです。


例えば、インテルの CPU の内臓グラフィックスの再生支援機能 (Intel Quick Sync Video) でいうと、不完全ながらも HEVC 再生支援に対応したのは Haswell 以降とのことです。実際には、4K60 の HEVC 動画を完全に処理するだけのキャパシティを持っているのはもう少し後の世代からのようです。
https://ja.wikipedia.org/wiki/Intel_Quick_Sync_Video



NVIDIA の GPU でも、いろいろと事情は複雑です。
というのも、GPU の名前 (GeForce GTX xxx など) が同じでも、採用されているチップの世代が違ったりして再生支援のキャパシティが違ったりするからです。

どの GPU が、どの程度 HEVC の再生支援に対応しているのか?がわかるリストのようなものが、NVIDIA の公式サイトとウィキペディアにあったりしますので、リンクを張っておきます。


Quadro の対応表
これによると、新しい世代ならまず HEVC には対応しているようですが、過渡期の世代だと同世代の GPU でも、チップの違いで VP9 に対応してたり、してなかったりと、なかなか複雑です。


GeForce の対応表
公式
https://developer.nvidia.com/nvidia-video-codec-sdk

これによると、第 2 世代 Maxwell までは H.265 (HEVC) 未対応とあります。Pascal 以降世代で対応しているとなっています。
ただし、第 2 世代 Maxwell でも GM206 チップを搭載している場合は特別の例外で、HEVC にも VP9 (YouTube) にも対応してます。






再生できるかテスト

当方の PC は、デルの Precision M4800 で、以下のようなスペックです。


  • CPU は工場出荷時の Core i7 4810MQ (第 4 世代)
  • GPU は工場出荷時には MXM GPU Quadro K1100M だったのを、GeForce GTX 965M (GM206 チップ) に乗せ換え(乗せ換えた際の記事







CPU は GoPro 推奨 Kaby Lake より 3 世代も前の物で、完全に時代遅れです。
しかし換装した GPU は第 2 世代 Maxwell チップですが、GM206 チップを搭載しているため、HEVC の再生支援ができるはずです。

早速、この HERO6 で 4K60 動画を撮影し、再生してみることにします。


HEVC Video Extension の導入

・・・とその前に、Windows 10 で HEVC 動画を再生するには、Windows 10 Fall Creators Update を当てたうえで、HEVC Video Extension (デバイス製造元からの HEVC ビデオ拡張機能) を Microsoft Store でインストールする必要があります。



無料なのでやっておきます。
この能書きを読んでみると・・・
主な特長
デバイスの製造元は HEVC ビデオ拡張機能を利用することで、Windows 10 デバイス上で、どのようなアプリでも HEVC 形式を使用したビデオを再生できるようになります。この拡張機能は、最新のデバイスのハードウェア機能 (4K や Ultra HD のコンテンツをサポートするための Intel 第 7 世代 Core プロセッサおよび最新の GPU など) を利用するように設計されています。HEVC ハードウェアがサポートされていないデバイスでは、ローカル再生機能を利用できるようにソフトウェア サポートが提供されます。ただし、操作性がビデオの解像度や使用しているコンピューターのパフォーマンスによって異なる場合があります。
HEVC 再生のサポートに加えて、この拡張機能では、ハードウェア エンコーダーを備えていないデバイスでの HEVC コンテンツのエンコードもサポートしています。

・・・ということは、GPU などによる再生支援が利用できない場合でも、CPU による力任せのソフトウェア再生にも対応しているということです。現実的には、4K60 のような重い動画を CPU だけで再生するのはそれなりにハイエンドな CPU でないと荷が重いでしょうが・・・

参考
https://forest.watch.impress.co.jp/docs/review/1095244.html

HEVC 再生テスト 1 :Windows 標準アプリ Movies & TV

Windows 標準のアプリ Movies & TV ではきわめてスムーズに再生ができました。CPU 使用率はいくらかは上がりましたが。
タスク マネージャーで調べると、しっかりと GM206 のデコーダーが活躍してくれているようです。

タスク マネージャーに最近追加された GPU 負荷モニタリング機能。Video Decode に注目


HEVC 再生テスト 2 :GoPro のバンドルアプリ Quik

一方、残念なことに GoPro のユーティリティである GoPro Quik では、GPU が持っている再生支援が活用されずにスローモーションになってしまいました。

Video Decode がまったく働いてません


Core i7 4810MQ 程度では荷が重いようです。でもその割に CPU 使用率が最大まで上がるか?というとそうでもなく、CPU が余ってる割にはとにかくカクカクしてる感じです。

将来的にアップデートで改善されることを期待したいと思います。


1 件のコメント:

  1. 情報ありがとうございます!( ´ ▽ ` )ノ
    ちなみに上記の方法と大体同じような情報が別のサイトで見つかりました。
    一応そのページを貼り付けます
    https://www.videosolo.jp/tutorials/play-hevc.html

    返信削除