Ekrino書簡

頭の整理&ひまつぶしに適当なことを書く

Youtubeの再生負荷を下げる

2021年02月21日 | PC
Youtube流しながらテレワークをしている今日この頃である。
流しながら」というところで既に作業効率が悪い気もするのだが、調べてみるとYoutubeの再生負荷でPC自体の処理ももたついていた。CPUが9年も前のIvybridgeのため、Youtubeが標準で配信する動画形式(VP9)のハードウェアデコードに対応しておらず、ソフトウェアデコードとなっていたためだ。

動画コーデックをMPEGの技術世代で書くと、大体次のようになる。

MPEG以前の規格…MotionJPEG、Indeo、QuickTimeなど【QVGA】
H.261(≓MPEG1) Video CD【SD】
H.262(MPEG-2) = DVD、デジタル放送 【SD~HD
H.263(MPEG-4) ≓ 【低ビットレート対応(圧縮率向上)】
         第1世代 Microsoft MPEG-4、SorensonSpark
         第2世代 DivX、Xvid、Theola、VP3~6
         第2.5世代 WMV(VC-1)【フルHD対応等】
H.264(AVC) = Blu-ray ≓ VP8   フルHDへの対応】
H.265(HEVC) = Ultra HD Blu-ray, 4K放送 ≓ VP94Kへの対応、圧縮率の更なる向上】
H.266(未登場) ≓ AV1


これらの動画コーデックについて、Intel CPUでのハードウェアデコードの対応状況は、次のようになっている。

一言で言うと、VP9以降のデコードはKabylake(HD Graphics600)以降となっている。

YouTubeの動画は、Liveを除いてだいたいVP9で配信されている。フルHD程度の動画をH.264ではなくVP9で配信しているのは、H.264と同程度の画質VP9では半分の容量とできるためで、運営元であるgoogleの転送量の節約が目的である。アメリカでは、YoutubeとNetflixが通信トラフィックの半分を占めるらしく、これが半分になればサーバーや回線への投資を減らせるというわけである。

スマホなど、従量回線で動画を見るならこれらのコーデックもギガが減らせてお得かもしれないが、固定回線であれば再生支援が効く恩恵の方が大きい。
ということで、VP9/AV1をブロックするChrome拡張h264ifyを入れてみた。

正確には、h264ifyからfolkした、enhanced-h264ifyという奴だが、オリジナルよりblockするフォーマットを細やかに指定できる上、音声フォーマットにopusが使えるので、入れるならこっちの方が良い。

Youtubeが音質や画質についてあれこれ言われるのは、アップロードされた動画の映像と音声を再エンコードしてしていることが要因である。
再エンコードの際に、著作権を侵害していないか、その他基準から外れていないかをチェックしてから公開している。
特に音声については、16kHz付近から上をカットして最大128kbpsのAAC-LCに圧縮していることが、音質の悪いとされる要因となっていた。
opusではカットオフ周波数が20kHzとなり、VBR160kbps程度だがなので、幾分マシになる。
(音質ガチ勢は、音声を48kHzのLPCMにしてアップし、再エンコードによる影響を減らすらしい)

有効になっているかどうかは、動画領域を右クリックして「詳細統計情報」を選択して表示される情報のCodecs行で確認できる。
avc1 / opusとなっていれば有効となっている。

コメントを投稿