How to use external gpu on VisionFive v2

From the JH7110 datasheet the VPU hardware supports H.265 encoding 1080p@30fps, the JH7100 on the VisionFive 1 supports both. The VisionFive 2 does not have the hardware to support H.264 encoding.

This block diagram of the multimedia features confused me, until I realised that the same block diagram was used for both SoC’s.

There are example commands of video encoding using the custom starfive build of ffmpeg but some of the commands still mention h264 in this documentation, which at a guess is because some of the information in that document was migrated from the VisionFive 1 board.

When it comes to video encoding, the JH7100 must have licensed more expensive IP for the VPU than the JH7110. Form the two chips datasheets:

JH7100: Video Decoder(H264/H265): up to 1 channel 4K@60fps or 8 channel 1080p30fps
JH7100: Video Encoder(H264/H265): up to 1 channel 4K@60fps or 8 channel 1080p30fps

JH7110: Video Decoder(H264/H265): up to 1 channel 4K@60fps or 8-channel 1080p30fps
JH7110: Video Encoder(H265): 1080p@30fps

The GPU (IMG BXE-4-32 mc1) does not naively support video encoding, and if someone did write code for it to do so, I’m guessing that it would be really really really slow.

Video encoding/decoding happens in dedicated VPU blocks inside the SoC:
JH7110: Chips and Media WAVE420L IP (encode)
JH7110: Chips and Media WAVE511 IP (decode)
JH7100: Chips and Media WAVE521 IP (encode)
JH7100: Chips and Media WAVE511 IP (decode)

In my mind the future will be AV1 for computers and streaming services and H.266 for satellite and terrestrial TV services.

1 Like