Yeah this isn’t worth a blogpost.

But I just got Versatile Video Coding, the new video codec from JVET to compile and encode, so here’s a very quick look at VVC development.

VVC is the most promising candidate for ITU H.266, which replaces H.265, better know as HEVC. The goal is to offer at least 30% lower bitrates than HEVC with equal quality (or higher quality with equal bitrate of course).

First of all: It’s slow. The most recent version took 50 minutes to encode 60 frames in 1080p (system specs & data). I actually haven’t viewed any VVC content, so I don’t know if it looks good, but the numbers do.

We need to build VVC. You need Git, CMake and make.



git clone

cd VVCSoftware_VTM;

cmake . -DCMAKE_BUILD_TYPE=Release;

make -j;

cd ..; rm -rf VVCSoftware_VTM;git clone https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM.git cd VVCSoftware_VTM;cmake . -DCMAKE_BUILD_TYPE=Release;make -j;cd ..;

VVC doesn’t yet process .y4m input files correctly, which contain the raw video data and a header with resolution, bit depth, frame rate and such information. We have to enter that by hand, together with the .y4m or .yuv.

It also needs a configuration file, which fixes some settings dependent of the use case (low-latency for example). Luckily a few are provided.

/home/ewouth/VVCSoftware_VTM/bin/EncoderAppStatic -i Morocco-1000.y4m -b vvc-test-2.vvc -wdt 1920 -hgt 1080 -fr 60 --InputBitDepth=8 --InputChromaFormat=420 -f 60 -c VVCSoftware_VTM/cfg/encoder_randomaccess_vtm.cfg;

Bitrate has been declining over past versions. Nice! (watch the Y-axis)

PSNR, a simple metric for encoding quality, has also been steadily increasing. There are better metrics, such as VMAF, though.

The encoding speed is…. less great. VVC VTM-2.0 started at 0,047 fps at default settings, and slowed down to 0,020 fps today.

Ok, good to have some historical trend. But the numbers aren’t really interesting without context, so that’s what I will be working on.

Next up

Actually decode and view content

Comparison with different HEVC (x265) and AV1 (aom, SVT-AV1) encoders

More stats (SSIM, VMAF)

More sequences and resolutions

More different encoder and speed settings

Hopefully this can be done with AWCY integration (PR #169), but the use of config files complicates things.

Try some things, and post on r/ VVC or Doom9. Here are Windows builds if needed. I will keep this spreadsheet updated with new data I might gather.

And remember: Codec licenses are stupid. So VVC is stupid. Use AV1.