quietvoid / dovi_tool

dovi_tool is a CLI tool combining multiple utilities for working with Dolby Vision.
MIT License
580 stars 57 forks source link

MEL incorrectly flagged as FEL #162

Closed hbuckle closed 2 years ago

hbuckle commented 2 years ago

I've extracted the enhancement layer and rpu from Jumanji: Welcome To The Jungle which is a MEL title, but dovi_tool is reporting it as FEL. I used DGDemux to extract the enhancement layer then did

dovi_tool-1.5.3.exe extract-rpu -i 'E:\Rips\#Scratch\49996 PID 1015.265' -o 'E:\Rips\#Scratch\rpu.bin'
dovi_tool-1.5.3.exe info -f 0 -i 'E:\Rips\#Scratch\rpu.bin'
JSON output ```json { "dovi_profile": 7, "subprofile": "FEL", "header": { "rpu_nal_prefix": 25, "rpu_type": 2, "rpu_format": 18, "vdr_rpu_profile": 1, "vdr_rpu_level": 0, "vdr_seq_info_present_flag": true, "chroma_resampling_explicit_filter_flag": false, "coefficient_data_type": 0, "coefficient_log2_denom": 23, "vdr_rpu_normalized_idc": 1, "bl_video_full_range_flag": false, "bl_bit_depth_minus8": 2, "el_bit_depth_minus8": 2, "vdr_bit_depth_minus_8": 4, "spatial_resampling_filter_flag": false, "reserved_zero_3bits": 0, "el_spatial_resampling_filter_flag": true, "disable_residual_flag": false, "vdr_dm_metadata_present_flag": true, "use_prev_vdr_rpu_flag": false, "prev_vdr_rpu_id": 0, "vdr_rpu_id": 0, "mapping_color_space": 0, "mapping_chroma_format_idc": 0, "num_pivots_minus_2": [ 7, 3, 3 ], "pred_pivot_value": [ [ 0, 128, 128, 128, 128, 128, 128, 128, 127 ], [ 0, 256, 256, 256, 255 ], [ 0, 256, 256, 256, 255 ] ], "nlq_method_idc": 0, "nlq_num_pivots_minus2": 0, "nlq_pred_pivot_value": [ 0, 1023 ], "num_x_partitions_minus1": 0, "num_y_partitions_minus1": 0 }, "rpu_data_mapping": { "mapping_idc": [ [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ], "mapping_param_pred_flag": [ [ false, false, false, false, false, false, false, false ], [ false, false, false, false ], [ false, false, false, false ] ], "num_mapping_param_predictors": [ [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ], "diff_pred_part_idx_mapping_minus1": [ [], [], [] ], "poly_order_minus1": [ [ 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ], "linear_interp_flag": [ [ false, false, false, false, false, false, false, false ], [ false, false, false, false ], [ false, false, false, false ] ], "pred_linear_interp_value_int": [ [], [], [] ], "pred_linear_interp_value": [ [], [], [] ], "poly_coef_int": [ [ [ 0, 1 ], [ 0, 1 ], [ 0, 1 ], [ 0, 1 ], [ 0, 1 ], [ 0, 1 ], [ 0, 1 ], [ 0, 1 ] ], [ [ 0, 1 ], [ 0, 1 ], [ 0, 1 ], [ 0, 1 ] ], [ [ 0, 1 ], [ 0, 1 ], [ 0, 1 ], [ 0, 1 ] ] ], "poly_coef": [ [ [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ] ] ], "mmr_order_minus1": [ [], [], [] ], "mmr_constant_int": [ [], [], [] ], "mmr_constant": [ [], [], [] ], "mmr_coef_int": [ [], [], [] ], "mmr_coef": [ [], [], [] ] }, "rpu_data_nlq": { "num_nlq_param_predictors": [ [ 0, 0, 0 ] ], "nlq_param_pred_flag": [ [ false, false, false ] ], "diff_pred_part_idx_nlq_minus1": [], "nlq_offset": [ [ 512, 512, 512 ] ], "vdr_in_max_int": [ [ 0, 0, 0 ] ], "vdr_in_max": [ [ 1048576, 1048576, 1048576 ] ], "linear_deadzone_slope_int": [ [ 0, 0, 0 ] ], "linear_deadzone_slope": [ [ 2048, 2048, 2048 ] ], "linear_deadzone_threshold_int": [ [ 0, 0, 0 ] ], "linear_deadzone_threshold": [ [ 0, 0, 0 ] ] }, "vdr_dm_data": { "compressed": false, "affected_dm_metadata_id": 0, "current_dm_metadata_id": 0, "scene_refresh_flag": 0, "ycc_to_rgb_coef0": 9574, "ycc_to_rgb_coef1": 0, "ycc_to_rgb_coef2": 13802, "ycc_to_rgb_coef3": 9574, "ycc_to_rgb_coef4": -1540, "ycc_to_rgb_coef5": -5348, "ycc_to_rgb_coef6": 9574, "ycc_to_rgb_coef7": 17610, "ycc_to_rgb_coef8": 0, "ycc_to_rgb_offset0": 16777216, "ycc_to_rgb_offset1": 134217728, "ycc_to_rgb_offset2": 134217728, "rgb_to_lms_coef0": 7222, "rgb_to_lms_coef1": 8771, "rgb_to_lms_coef2": 390, "rgb_to_lms_coef3": 2654, "rgb_to_lms_coef4": 12430, "rgb_to_lms_coef5": 1300, "rgb_to_lms_coef6": 0, "rgb_to_lms_coef7": 422, "rgb_to_lms_coef8": 15962, "signal_eotf": 65535, "signal_eotf_param0": 0, "signal_eotf_param1": 0, "signal_eotf_param2": 0, "signal_bit_depth": 12, "signal_color_space": 0, "signal_chroma_format": 0, "signal_full_range_flag": 1, "source_min_pq": 62, "source_max_pq": 3696, "source_diagonal": 42, "cmv29_metadata": { "num_ext_blocks": 5, "ext_metadata_blocks": [ { "Level1": { "min_pq": 458, "max_pq": 1810, "avg_pq": 520 } }, { "Level2": { "target_max_pq": 2081, "trim_slope": 2068, "trim_offset": 2028, "trim_power": 2048, "trim_chroma_weight": 2048, "trim_saturation_gain": 1933, "ms_weight": 512 } }, { "Level4": { "anchor_pq": 0, "anchor_power": 0 } }, { "Level5": { "active_area_left_offset": 0, "active_area_right_offset": 0, "active_area_top_offset": 276, "active_area_bottom_offset": 277 } }, { "Level6": { "max_display_mastering_luminance": 4000, "min_display_mastering_luminance": 50, "max_content_light_level": 2013, "max_frame_average_light_level": 393 } } ] } }, "rpu_data_crc32": 3985940413 } ```

Enhancement layer is available here:

https://filebin.net/7revys40fv8x1zdt/49996_PID_1015.265

quietvoid commented 2 years ago

The RPU doesn't lie: it's FEL according to the Dolby document.

If the values are not exactly as shown for all three channels, the device can flag the bitstream as a Dolby Vision profile 7 full enhancement layer bitstream; otherwise, flag the bitstream as profile 7 MEL.

rdnp->nlq_offset = 0; rdnp->vdr_in_max_int = 1; rdnp->uv.vdr_in_max = 0; rdnp->up.nlq_linear_dz.linear_deadzone_slope_int = 0; rdnp->up.nlq_linear_dz.us.linear_deadzone_slope = 0; rdnp->up.nlq_linear_dz.linear_deadzone_threshold_int = 0; rdnp->up.nlq_linear_dz.ut.linear_deadzone_threshold = 0;

saindriches commented 2 years ago

Alternatively, you can play the EL stream, if it's MEL you will see a green screen.

hbuckle commented 2 years ago

The RPU doesn't lie: it's FEL according to the Dolby document.

Interesting, I guess it must be a mistake/bug in the authoring process then

Alternatively, you can play the EL stream, if it's MEL you will see a green screen.

Yeah that's what I normally do, was hoping to automate it

imhh1 commented 2 years ago

My BD of Jumanji: Welcome To The Jungle is definitely MEL (124kbps + blank white image) but indeed the rpu info reports it's FEL...

quietvoid commented 2 years ago

What does MakeMKV say?

imhh1 commented 2 years ago

MakeMKV sees it as FEL too.

Capture

saindriches commented 2 years ago

You could say the EL in this title doesn’t provide extra data for color depth or brightness (I have checked the EL, and it’s Y=512 U=512 V=512 with no exception), while we don’t know why it happens, but the format is definitely FEL.