8 ms·
Linux kernel VP9 codec V4L2 control interface
- marcodiego 5y agoAFAIK rk3399 is especial in this area: its codecs need no binary blobs. This means it can encourage other vendors to do the same and get ryf-certified. ARM SBCs based on rk3399 can become the only modern affordable systems with ryf certification.
- rjsw 5y agoI don't think the Allwinner codecs need binary blobs.
- Teknoman117 5y agoNow if only the standard release for PineBook Pro would use newer than a 5.7 kernel so we could get hardware codecs. Might just have to sit down and figure out how to cross compile Gentoo for it.
- CameronNemo 5y agoI mean compiling your own kernel and compiling the OS are very different. I am running 5.14 on my PBP right now. No support for external displays, though.
- yjftsjthsd-h 5y agoYou don't need to go full Gentoo to install a custom kernel. From Manjaro you could even pull the linux-mainline AUR package and just build+install that (or linux-git or any of the others), if you want the easy way out.
- Teknoman117 5y agoIt was more of a "there are a ton of packages which also need to be patched" kind of thing as well.
- marcodiego 5y agoTry armbian
- qwerty456127 5y agoI just wonder how does presence of a niche codec in the kernel affect the kernel size and performance. I would be glad if everybody would use it so it would be mainstream but the reality is H.264 and H.265.
- rjsw 5y agoThis is a hardware driver that conforms to a standard interface, it doesn't implement a VP9 codec in software in the kernel.
- dcgudeman 5y agoyoutube uses VP9 so I wouldn't call it niche.
- _joel 5y agoYes, unless you force it to h264 it'll default to vp9, as, well, google.
- qwerty456127 5y agoMany videos are not available in VP9. I have noticed a couple of years ago when I had to use vanilla Ubuntu without "install 3-rd party software" checkbox checked during installation - Firefox refused to play many YouTube videos. It also supposedly makes sense to force H.264 to increase chances of hardware acceleration being used.
- _joel 5y ago> Many videos are not available in VP9. That's just not true.
- marcodiego 5y agoThis is a driver interface. If it is not standardized, we get that ugly situation where an userspace app only works with hardware from a specific vendor.
- rememberlenny 5y agoCould someone explain the significance of this, why it took so long, and what it opens open?
- rkangel 5y agoVP9 is an open source, royalty free video codec. It is developed by Google to provide a free alternative to things like H264 and H265. Implementing codecs for both of those require paying licence fees. Codecs can be in software, but can also be implemented in hardware which is much more power efficient. This change enables the Linux kernel to use hardware VP9 decoders so that software can decode (play) VP9 video much more efficiently when that hardware is available.
- deleted 5y ago[deleted]
- rememberlenny 5y agoThank you for the clear explanation.
- maggit 5y agoIt looks like it implements hardware acceleration of the VP9 codec for some specific hardware (Rockchip VDEC and Hantro G2). This opens up playing, for example, lots of YouTube videos with less CPU usage on devices with that hardware. I can't comment on whether or not it "took so long" as I have no idea which hardware this is. The title makes it out to be something fundamental in Linux, but this is just one driver becoming more complete.
- megous 5y agoIt's a new media subsystem userspace API, not just a new driver, and the API will be stable from the get go, instead of languishing in the staging area, like the H.264 one.
- CameronNemo 5y ago
- CameronNemo 5y agoUnfortunately userspace (e.g. VAAPI, ffmpeg) support for this is not done. Until VAAPI support is implemented, videos in Firefox will be unaccelerated. I think it is the same deal for Chrome.
- fguerraz 5y agoThe usefulness of hardware acceleration for video decoding is highly debatable. 1) It's not always much more energy efficient, but it sometimes is, but less than you'd think, GPUs need power too 2) It increases greatly the complexity of client software that has to implement both accelerated and unaccelerated decoding, leading to poorer software quality 3) Drivers quality is usually terrible: lists of working hardware/software combinations have to be maintained and in some cases, holes in sandboxes have to be punched [1] 4) HW support usually lags behind state of the art encoding. Youtube is already using av1, but the vast majority of devices won't support it in hardware before something else comes up 5) Highly optimised decoders, such as dav1d, are extremely effective and save bandwidth and power compared to HW VP9. EDIT: I'm mostly talking about the desktop/laptop use case here were things are very fragmented. On a mobile phone where manufacturers control hardware and software end to end, that's a different story. [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1698778 https://bugzilla.mozilla.org/show_bug.cgi?id=1698778
- brigade 5y agoHybrid decoders that use GPU shaders are somewhat rare; HW decoding pretty much always means "ASIC". And ASIC power draw for decoders is typically in the <1W range. For dav1d, even YouTube-tier 1080p SW decoding is using +4-5W on my laptop, and 4k60 is +15-20W.
- Arnavion 5y ago>HW decoding pretty much always means "ASIC" Indeed. For example, hardware decoding is the difference between choppy video and smooth video on the PinePhone because the CPU isn't powerful enough and the GPU is useless for decoding. (And to fguerraz's edit that their comment doesn't apply to mobile phones "where manufacturers control hardware and software end to end", the manufacturer does not control the software on the PinePhone.)