youtubeが重い?CPU使用率を下げるには
はじめに
パソコンが基本的にI7しかないですが、youtubeのCPU使用率が高いんじゃねと思う今日この頃。その原因と解決策を紹介します。
動画の画質について
皆さんはyoutubeの画質と言われたら何を想像しますか?おそらくギアマークにある144pとか720pだと思います。
それは動画の解像度であり綺麗さに直結する大きな要因の一つです。
しかし画質が大きくなると、通信量が大きく跳ね上がります。
これは感覚的に解ると思います。これは動画を提供している側からするととても大きな問題で、綺麗な動画を提供するために大きな設備を維持しなければいけません。これは天下のgoogleも同じです。
通信量を減らすために
通信量を減らすために画質を下げるのは本末転倒です。ニコニコかな?
この問題を解決するために、頭のいい人たちが、できるだけ画質を落とさず動画を圧縮する方法を考えました。これがコーディックと呼ばれるものです。
コーディックにはそれぞれ特性があり、一番普及しているh264やyoutubeで使用されるvp9があります。
一方その頃CPUは忙しい
コーディックを使用すると動画を圧縮できます。
しかし、これを見るためには解凍(元に戻す操作)しなければいけません。圧縮と解凍はコーディックで決められたアルゴリズム(計算方法)を用いて計算します。
さて計算するところはどこでしょう?
CPU君です。このコーディックで動画を計算する作業はとても大変で、フルHDだと解像度が1920x1080なので、これらが色情報(24bit(2を24回掛ける数))を持つのでとてもやばい量の計算をしなければいけません。
一方その頃のGPUくん
皆さんはGPUをご存知でしょうか?GPUの本来の機能はディスプレイの表示です。
基本設計として解像度が1920x1080の色情報(24bit)を簡単に扱えるようにしてあります。
なので、コーディックの計算が効率良くできます。動画再生支援って聞いたことありませんか?それがこれです。
対応しているコーディックはintelだと次のようになります。
Cantiga | Ironlake | Sandy Bridge | Ivy Bridge | Haswell | Broadwell | Braswell | Skylake | Broxton | Kaby Lake | |
---|---|---|---|---|---|---|---|---|---|---|
MPEG-2 | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ |
H.264 | 非対応 | デコードのみ | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 |
VC-1 | 非対応 | 非対応 | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ | デコードのみ |
JPEG | 非対応 | 非対応 | 非対応 | デコードのみ | デコードのみ | デコードのみ | 対応 | 対応 | 対応 | 対応 |
VP8 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | デコードのみ | 対応 | 対応 | 対応 | 対応 |
H.265 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | デコードのみ | 対応 | 対応 | 対応 |
H.265 10-bit | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | デコードのみ | 対応 |
VP9 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | デコードのみ | 対応[25] |
VP9 10-bit | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | デコードのみ |
https://ja.wikipedia.org/wiki/Intel_Quick_Sync_Video より引用
これに
対応(デコードも含む)していれば
CPUの代わりにGPUが計算してくれます。
動画コーディックの種類が負荷の原因
上記で最低限の知識を紹介しました。では以下の画像をご覧ください。
このスクリーンショットを撮影したのはSkylakeの世代です。
Skylakeはh264に対応していますがvp9には対応していません。つまりこれGPUが助けていないんですね。(debianで再生支援が聞いてるかは不明)
なのでh264はCPU使用率25~40%なのに、vp9だと60%になります。
Ivy Bridge のwindowsだと以下のようになります。
つまり
VP9はh264より2~3倍CPUに負荷がかかります
ちなみにですが
z8350などのCherry TrailのATOMたちはBroadwellと同じGPUの世代です。
なので、youtubeが見れないとバカにされている彼らはh264であれば再生できます。(仕様上は)
ryzen3600+gtx 1660S の場合
2020/10/24の時点でvp9の動画再生支援が確認できました
時代遅れと指摘が合った気がしたのでおそらく最新の組み合わせで検証をしましたが、結論から言いますと、
現在VP9に対応したGPUでも動画再生支援は働きません
以下の画像のようにh264ではGPUが助けてくれますが、VP9は助けてくれていません。
結局の所VP9はCPUで殴ってもらうしかないようです
youtubeのデフォルトコーディック変更方法
ではyoutubeでh264にすれば再生時のCPU使用率が下がることがわかりました。問題は、どうやって切り替えるかですが、それを自動でやってくれる
h264ify
というプラグインがあります
クローム版
https://chrome.google.com/webstore/detail/h264ify/aleakchihdccplidncghkekgioiakgal
ファイヤーフォックス版
https://addons.mozilla.org/ja/android/addon/h264ify/
これを有効にするとVP9を無効にしてくれます。動画画面を右クリックして詳細統計情報から確認しましょう。
codecs avcとなっていればできています。
デメリットとして、4K解像度を選択することができません。
最後に
なんでyoutubeでvp9が普及してないにもかかわらず使っているかというと、
googleがそれを使わせたいからです。
ではよいネットライフを
ディスカッション
コメント一覧
CPU使用率はメモリ使用率と違って処理に使用された時間の割合だから高いほうがいいです。
CPU使用率が高いなら高性能機種に替えてください
???
VP9は素晴らしいコーデックだし普及してないからという理由だけで不当に批判するのは許されない。てか十二分に普及してるが。何もGoogleのエゴでYouTubeに実装された訳では無い。それがいいから実装されただけだろうが。Web初心者でもオープンソースライセンスに基づいて無料で簡単に実装できるしビットレートに対する画質も他コーデック(H.265等)と比べて圧倒的に良い。特にモバイルデータ通信での動画再生時のデータ圧縮の恩恵と言ったらこの上ない。おまけにストリーミングの画質を上げても低負荷で安定するし、時代遅れのiGPUでデコードできるかどうかよりもモバイルデバイスのデータ通信料を節約できたり快適にストリーミングできるかどうかのほうがよっぽど大事なはずなのだが?YouTubeで高画質動画を快適に楽しみたいのならVP9デコード対応のグラボ買うかグラボ積めない理由があるならRyzenスリッパでも買うのが当たり前だし時代遅れのiGPUでデコードできたところでその時代のモニタはせいぜいFullHDな訳でその程度の負荷ならGPUデコードした所で何の旨味も無い。まあそんな考えに凝り固まってるからこんなSEO対策バリバリで中身カスカスのブログしか書けないんだろうな。
より利用者の多い別のアドオンの方を入れましたが効果てきめんでした
動画再生する度にファンが回ってウンザリしてたので有り難いです
グラボないPCでyoutubeliveみるとめちゃくちゃCPU食うので助かりました
>ryzen3600+gtx 1660S の場合
現在 gtx1000 世代では普通にchromeでVP9の再生支援がされますね。一年前は違ったのかな。
youtubeではAV1に移行が始まっているので古い話になりつつありますが...
コメントありがとうございます
今確認したところvp9で動画再生支援が確認できました