Skip to content

Comment on Allwinner VPU support for the Linux kernel

Comments

What kind of hardware is this that makes it usable for encoding/decoding mpeg2/h264/h265? Is this something that should be exposed as a general programming target instead of a set of video specific APIs?

As you can see from the documented reverse-engineering of the hardware here:

http://linux-sunxi.org/VE_Register_guide

the device is generally single-function for each codec, with the decoding pipeline implemented in actual hardware. Unless you were able to express your kernel as a data transform used in a common video codec and express your I/O data as pixels, you're unlikely to accelerate a general purpose task this way.

It's a DSP firmware turned into silicon. If you look at for example the VP8 decoder registers for a Rockchip VPU here:

https://patchwork.kernel.org/patch/8118991/

You can see it's quite specific to the primitives the codec needs. If you want general purpose, we now have Vulkan for that.

(And this one is reasonably low-level. On some like the Raspberry Pi, you throw bitstream over the wall to a coprocessor which gives you YUV back)

On Raspberry Pi it's not clear who is coprocessor, actually.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.