Every four years the World Cup comes by and gives us a unique opportunity to see how encoders are progressing. Four years ago we looked at some of the coding tools that the the BBC were using for UHD on DTT. This year UHD is online using BBC iPlayer and after some reverse engineering of the MPEG-DASH stream it was possible to dump a copy of the raw stream at 35mbit/s. This meant we could analyse some of the technical decisions the encoder was making.
Disclaimer: This analysis is merely an objective analysis of the coding features the encoder uses and not an analysis of the subjective or objective picture quality of the encoder. It’s also worth saying that this information is from a small clip but in the main short clips can provide a good indication of the coding decisions an encoder is making.
A very good introduction to HEVC coding tools can be found here: http://forum.doom9.org/showthread.php?t=167081
Thanks to the help provided by Parabola Research in producing this post. You can download a bitstream analysis report from Parabola Explorer Pro 4.2 below which helped produce the analysis below.
As before in no particular order:
- The GOP structure is pretty boring IBBPBBPBBP. It appears not to adapt. It’s quite similar to MPEG-2 in that it only keeps a maximum of one frame in L0 and L1. It uses L0 and L1 on B-Frames. 50 frames closed GOP.
- 8 Slices per frame
- It’s doing basic constant QP throughout, no use of adaptive quantisation to try and improve visual quality so its very likely trying to optimise for PSNR and not visual quality.
- All intra coding is 16×16. Nothing smaller or larger so similar to i16x16 only in MPEG-4 but full HEVC range of intra modes appear to be searched and used (in contrast to the encoder used in 2014)
- Inter coding is 16×16 and 32×32. Again nothing smaller or larger.
- Only one partition type used (2Nx2N, i.e. no prediction splits).
- Only merge_idx 0 used (there are 4 modes left unsearched/unused).
- SAO is not used
The full report is available here: http://downloads.obe.tv/Parabola-Explorer-BBC-Russia-UHD.pdf
So in conclusion this encoder is using a very limited subset of the features available in HEVC (arguably MPEG-4 with a few new coding tools), probably due to performance limitations onboard in order to hit realtime UHD. It would be interesting to see UHD at a lower bitrate to see if the encoder would end up using more HEVC features. It’s quite surprising in 2018 to see such a limited set of features being used and it’s likely that there are better examples of state of the art realtime encoding out there.