kodi は H.265 の夢を見るか

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/de67cba3-c9cd-fe16-2fe1-b627592b8c1d.png" width=80%>

# 前文
`Raspberry Pi OS`最新版、2022-01-28版がアップされているね。
[Operating system images](https://www.raspberrypi.com/software/operating-systems/ "Operating system images – Raspberry Pi")

64bit版は以下。
[Raspberry Pi OS with desktop(64bit)2022-01-28](https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2022-01-28/ "Index of _raspios_arm64_images_raspios_arm64-2022-01-28")
[Raspberry Pi OS Lite(64bit)2022-01-28](https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2022-01-28/ "Index of _raspios_lite_arm64_images_raspios_lite_arm64-2022-01-28")

それはさておき。
数ヶ月前、Raspberry Pi 4B（以下 Pi4B） 上の`kodi`で、H.265（HEVC）動画が再生できないことに気が付いた。その内バージョンが上がれば対応してくれるのかなとぼんやり考えていた。
その後、`bullseye`が発表され、`kodi`のバージョンも上がったが、相変わらず未対応。
改めて情報を集めてみると、以前は再生できたが、バージョンアップで再生できなくなったとか、10bit は対応していないが 8bit なら対応しているとか。
再生したければダウングレードしろとか、アドオンを入れれば再生できるとか。因みにHEVC再生アドオンは過去に公開されていたようだが現在は手に入らない模様。
情報が錯綜している感じ。いずれにしても現時点、19.3 では再生できない。

# 結論
`LibreELEC`なら対応している。以下を入れる。
[LibreELEC](https://libreelec.tv/downloads/raspberry/ "LibreELEC Raspberry - LibreELEC")
> Latest Stable Version (2021.11)
LibreELEC 10.0
Kodi 19.3
Linux Kernel 5.10.x

以上。

# 余談
漠然と`Pi OS`上の`kodi`と`LibreELEC`は実質同じようなもの、と思っていたがそうでもないらしい。
しかし、どちらも`kodi`のバージョンは 19.3 なんだけどなぁ。

`bullseye`はビデオドライバが`KMS`に移行したことが特徴だけど、その影響でドタバタしていた。そこら辺の影響なのかな？
[Bullseye - the new version of Raspberry Pi OS](https://www.raspberrypi.com/news/raspberry-pi-os-debian-bullseye/ "Bullseye - the new version of Raspberry Pi OS - Raspberry Pi")
> KMSビデオドライバー
> 以前のリリースでは実験的なオプションであったKMS（カーネルモード設定）ドライバーが、このリリースでは標準のビデオドライバーになりました。


そもそも論として、Pi4B は H.265 の HWデコードに対応している。
もう少し細かい話をすると、Pi4B の SoC は`BCM2711`であり、内蔵GPU は`VideoCore VI`。これは H.265 のデコードに対応している。以下参照。

[Raspberry Pi Documentation - Processors](https://www.raspberrypi.com/documentation/computers/processors.html "Raspberry Pi Documentation - Processors")
> `BCM2711`
> This is the Broadcom chip used in the `Raspberry Pi 4 Model B, the Raspberry Pi 400, and the Raspberry Pi Compute Module 4`.

> The ARM cores are capable of running at up to 1.5 GHz, making the Pi 4 about 50% faster than the Raspberry Pi 3B+. The new `VideoCore VI` 3D unit now runs at up to 500 MHz. The ARM cores are 64-bit, and while the VideoCore is 32-bit, there is a new Memory Management Unit, which means it can access more memory than previous versions.

[Broadcom VideoCore VI](https://www.cpu-monkey.com/ja/igpu-broadcom_videocore_vi-221 "Broadcom VideoCore VI")
> ハードウェア コーデック サポート
h265 / HEVC (8 bit):	復号化
h265 / HEVC (10 bit):	復号化

`VideoCore VI`を搭載しているのは最新シリーズである Pi4B、Pi400、CM4 だけ。他はそれ未満（`VideoCore V`、`VideoCore IV`）であり、H.265 のデコードは未対応。
Pi4B といえば、CPU のグレードアップや USB がついに（やっと？） 3.0対応等が注目されがち。しかし GPU も良くなっているんだよね。その点がもっと評価されて良いかも。こりゃ [GPGPU](https://ja.wikipedia.org/wiki/GPGPU "GPGPU - Wikipedia") が捗るなって話もあるが……。
[Raspberry Pi4のGPGPUに挑戦（その１）](https://taiki-azrs.hatenablog.com/entry/2021/05/18/190052 "Raspberry Pi4のGPGPUに挑戦（その１） - あざらしなので")
[Idein Ideas — GPGPUの観点から見る VideoCore VI と VideoCore IV の違い](https://blog.idein.jp/post/190588113970/gpgpu%E3%81%AE%E8%A6%B3%E7%82%B9%E3%81%8B%E3%82%89%E8%A6%8B%E3%82%8B-videocore-vi-%E3%81%A8-videovore-iv-%E3%81%AE%E9%81%95%E3%81%84 "Idein Ideas — GPGPUの観点から見る VideoCore VI と VideoCore IV の違い")

`VideoCore VI`は「リファレンスマニュアルが公開されていない」というね。どうしろと（笑）。

# 余談2
`LibreELEC`を検証するにあたり軽くぐぐったところ、未だに`NOOBS`で入れる、と紹介しているサイトがあってびっくり。`NOOBS`って現在は非推奨なんだけど。
[How do I get noobs?](https://forums.raspberrypi.com/viewtopic.php?t=319816 "How do I get noobs_ - Raspberry Pi Forums")
[STICKY: PINN - An enhanced version of NOOBS.](https://forums.raspberrypi.com/viewtopic.php?t=142574 "STICKY_ PINN - An enhanced version of NOOBS. - Raspberry Pi Forums")

それこそ公式フォーラムでよく「Raspberry Pi が起動しないの、助けて」といった投稿がよくある。
フォーラム常連から「起動 microSD はどのような手順で作成したの？」と尋ねられ「`NOOBS`で」と答えようものなら一斉に「それ非推奨だから」と総ツッコミされるという。
そもそも `NOOBS` は公式ツールではない。（だからといって有志作成ツールがダメとは言わないが）確かに昔は `NOOBS` でのインストールを紹介しているネット上の記事はよくあったし、自分も一回だけ使った経験あり。
しかし常識ってものはどんどん変わっていくわけで（北の国から風に）。アップデートしていかないと（自戒を込めて）。