A Look at a High Dynamic Range HEVC Bitstream

High Dynamic Range (HDR) is a hot topic and one that the content delivery industry is learning to deal with. Last month, Thomas Edwards of Fox was kind enough to offer a 2160p, 10-bit HDR HEVC bitstream as a sample of what software and equipment vendors might be expected to process. Thumbnail above, the sequence is a couple of minutes long with a couple of scene cuts. At 45-100Mbit/s, it is available as a ~1GB mp4 file. Viewed on a monitor with high dynamic range such as the Samusung JS9500, the sequence should be vivid both with brilliant flames and subtle dark details clearly visible. HDR technology is in its infancy so playback with full fidelity is not straightfoward. At the time of writing, some low-cost Android media players can play back the stream with ease over HDMI but the HDR metadata is lost or ignored at some point before display.

This blog post is about the analysis and understanding of such streams. Currently in beta, Parabola Explorer 4.0 can reveal the HDR metadata that is key this sort of “HDR-10” content.

Parabola Explorer is a file-based elementary stream analyser. Before using it to examine the Fox content, the video bitstream must be extracted from the mp4 file. One of many tools capable of this demux operation is GPAC and the necessary commands are shown below.

mp4box -split 4 NEO_Fire_HDR_HEVC_2160p_5994_Main10_45-100VBR.mp4
mp4box -raw 1 -out NEO_Fire_HDR_HEVC_2160p_5994_Main10_45-100VBR_025 NEO_Fire_HDR_HEVC_2160p_5994_Main10_45-100VBR_025.mp4

The first command splits the file into chunks, each approximately four seconds in duration. The second command demultiplexes one of these chunks to raw HEVC bitstream.

The resulting bitstream file may be opened in Parabola Explorer Pro. Clicking on the top-level element in the bitstream view will, after a short period of analysis, reveal bitstream information and stream statistics. A PDF version of the bitstream report is here. Below is discussion of what some of this information means.

number of access units     180

Parabola software uses the same terminology as the HEVC standard document. An access unit corresponds to a single decoded picture. So we can say that this stream has 180 pictures.

chroma format              4:2:0 
dimensions (luma samples)  3840x2160 
bit depth, luma            10 
bit depth, chroma          10 

None of this should be too surprising: the stream is 2160p 10-bit 4:2:0. Ten bits of sample precision are just about enough for consumer HDR.

sample aspect ratio        1:1
video format               Unspecified video format

The video contains square pixels - non-square pixels are now consigned to history along with standard-definition video. “Video format” is also a legacy field relating to composite colour encoding.

colour primaries           BT.2020

The Fire Pit colour primaries conform to BT.2020, a relatively new standard with a wider colour gamut. HD content on the other hand, would use BT.709 whose red, green, blue and white point correspond to that of most displays in use today.

transfer characteristics   SMPTE ST.2084

The transfer characteristic refers to the non-linearity applied when translating pixel values to light intensity. For decades this non-linearity was a gamma function but today more sophisticated transfer functions are in use. SMPTE ST.2084 is a PQ (Perceptual Quantisation) transfer function whose characteristics are based upon how the human eye is sensitive to small changes at different light intensities.

matrix coefficients         BT.2020 non-constant luminance

This field specifies how the YUV (term used loosely, purists would find fault) video should be converted to RGB.

Mastering Display Colour Volume SEI

chromaticity coordinates of primary 0    (0.265, 0.69)
chromaticity coordinates of primary 1    (0.15, 0.06)
chromaticity coordinates of primary 2    (0.68, 0.32)
chromaticity coordinates of white point  (0.3127, 0.329)
maximum luminance                        1100 cd/m2 
minimum luminance                        0 cd/m2 

This SEI message describes the monitor that was used during post production. One would expect these primaries to be close to P3 and the luminance value representative of the display’s configuration. If you have a monitor with the same characteristics configured with the primaries, transfer and matrix characteristics then you should see the fire pit as Fox intended.

Unregistered User Data SEI

UUID                                     427fcc9b-b892-4821-9561-c292e3a1fdf3 
user_data_payload_byte values (as ASCII) ATEME Titan KFE 3.7.1 (4.7.1.1001)

Here we can see that the encoder vendor has inserted some data to identify their encoder and its version number.

tile columns                2 
tile rows                   2
slice segments per picture  1

Interestingly, each picture of this stream is encoded as four separate tiles. There are many reasons why this could have been done but had the stream been encoded with a single tile, encoding performance would likely have been somewhat better - that is to say fewer artifacts or lower bitrate.

Of course Parabola Explorer can reveal a lot more information about the bitstream than described here. The above tables are taken from the bitstream summary report but Explorer can show the original SEI messages and parameter set fields as they are in the bitstream.

From a video codec engineer’s perspective, there is a lot more to see. Some highlights:

Contact us (or come and chat at IBC) if you would like more information on this analysis, on HDR streams or Parabola’s software.

Copyright © 2024 Parabola Research Limited | Registered in England and Wales 7668051 | VAT number GB 117 8538 94