Dolby Vision now possible through MP4 Mux.

Please post here for issues related to UHD discs
FubbAyH
Posts: 55
Joined: Wed Jan 02, 2019 7:06 am

Re: Dolby Vision now possible through MP4 Mux.

Post by FubbAyH »

Ah, I see what you mean. I didn't realise that the RPU data includes which profile it is for. So it's actually reasonable that Infuse would ignore the RPU in my hacked-together file because it's for the wrong profile. So we don't have any evidence that Infuse is playing profile 5 files incorrectly. I'll keep investigating. Thanks again for all your help!
FubbAyH
Posts: 55
Joined: Wed Jan 02, 2019 7:06 am

Re: Dolby Vision now possible through MP4 Mux.

Post by FubbAyH »

(Sorry if I'm boring anyone to tears with this saga, I'll shut up soon.)

I've now found a profile 5 RPU and have injected that into my test file and it also seems to be ignored when playing back in Infuse (and in Plex). My (LG B7 OLED) TV's built-in video player gives dramatic color changes when playing the test file so it appears to be processing the RPU correctly. I've sent the sample and a video of the LG's playback to the Infuse developers, and I'll report back if they reply.
glc650
Posts: 52
Joined: Sun Aug 02, 2020 3:25 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by glc650 »

FubbAyH wrote:
Mon Aug 23, 2021 1:56 am
...I'll shut up soon.)
Please don't..if it really is ignoring RPU appreciate the work getting it fixed.
FubbAyH wrote:
Mon Aug 23, 2021 1:56 am
I've sent the sample and a video of the LG's playback to the Infuse developers, and I'll report back if they reply.
I worked with them years ago with an SMB issue. They were slow to get it fixed but did. Hopefully here they will be quick to confirm any issues and get them fixed.
Manixx2020beyound
Posts: 127
Joined: Thu Oct 08, 2020 5:19 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by Manixx2020beyound »

Few more p5 Spares.
Attachments
D052F53C-013E-4D1C-8CF7-B742CCDD975C.jpeg
D052F53C-013E-4D1C-8CF7-B742CCDD975C.jpeg (1.43 MiB) Viewed 16173 times
6CB3B541-5576-4331-979C-B60B1A7FD37A.jpeg
6CB3B541-5576-4331-979C-B60B1A7FD37A.jpeg (2 MiB) Viewed 16173 times
63724362-EEC1-47D4-8E92-CD255A6E18C0.jpeg
63724362-EEC1-47D4-8E92-CD255A6E18C0.jpeg (1.71 MiB) Viewed 16173 times
RESET_9999
Posts: 2378
Joined: Mon Aug 05, 2019 7:12 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by RESET_9999 »

FubbAyH wrote:
Mon Aug 23, 2021 1:56 am
(Sorry if I'm boring anyone to tears with this saga, I'll shut up soon.)

I've now found a profile 5 RPU and have injected that into my test file and it also seems to be ignored when playing back in Infuse (and in Plex). My (LG B7 OLED) TV's built-in video player gives dramatic color changes when playing the test file so it appears to be processing the RPU correctly. I've sent the sample and a video of the LG's playback to the Infuse developers, and I'll report back if they reply.
nah keep going, this thread is all about experimenting with DV.
in order to properly test if rpu is used, you probably should modify/unsync a true p5 file instead of injecting a p5 rpu to a random HDR10 BL.
You can delay the rpu metadata with a JSON edit and inject it back into the original p5 bl and it should produce visible brightness changes. the file would still follow dv specs.

this json will delay the metadata 120frames.

Code: Select all

{
	"duplicate": [
		{
			"source": 0,
			"offset": 0,
			"length": 120
		}
	]
}
FubbAyH
Posts: 55
Joined: Wed Jan 02, 2019 7:06 am

Re: Dolby Vision now possible through MP4 Mux.

Post by FubbAyH »

glc650 wrote:
Mon Aug 23, 2021 2:41 am
Please don't..if it really is ignoring RPU appreciate the work getting it fixed.
RESET_9999 wrote:
Mon Aug 23, 2021 2:51 am
nah keep going, this thread is all about experimenting with DV.
in order to properly test if rpu is used, you probably should modify/unsync a true p5 file instead of injecting a p5 rpu to a random HDR10 BL.
I'll probably have to wait until next weekend to do any more experiments, but thanks very much for the encouragement :)
quietvoid
Posts: 377
Joined: Sun Apr 19, 2020 4:15 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by quietvoid »

Manixx2020beyound wrote:
Sun Aug 15, 2021 10:00 pm
That would help the grading community,
For those guys like myself 4k,6k,8k cameras
And do their own grading without doblyvision license fees
No secondary trim pass doe.
To my knowledge the doblyvision fees are only for secondary trim passes/Rpu creation & final encode of the doblyvision master to hevc
I did a first attempt at generating a RPU from XML: https://github.com/quietvoid/dovi_tool/pull/43
Still need to figure out if the L2 trims are correct..

L1 should be fine though, the rest needs testing and sample XML files..
Missing proper L5 (aspect ratio), since I don't really know how to decide whether it's horizontal or vertical letterbox bars.
RESET_9999
Posts: 2378
Joined: Mon Aug 05, 2019 7:12 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by RESET_9999 »

oh wow. so we can now convert HDR10plus to DV. Amazing, thank you!!
we have to compare original DV with this conversion now..

@manix??? Alita bluray has hdr10+ and DV I believe...
quietvoid
Posts: 377
Joined: Sun Apr 19, 2020 4:15 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by quietvoid »

I've watched a couple episodes of The Expanse with the new HDR10+ to DoVi, to me they looked fine..
Black crush in comparison to HDR10, as expected from the Firestick. Didn't affect a lot of scenes though.

Some titles which include both, that I know of:
Doctor Sleep
Wonder Woman 1984
Godzilla vs Kong

Just off the top of my head..
Last edited by quietvoid on Wed Aug 25, 2021 4:09 pm, edited 1 time in total.
RESET_9999
Posts: 2378
Joined: Mon Aug 05, 2019 7:12 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by RESET_9999 »

yep, WW-84 is the ideal title since the bluray is MEL DV and hdr10plus. There's also a profile 5 web-dl. @manix, I'm making you samples to test with your Shogun.

btw, I hope you hide behind a VPN, Dolby must be real mad at you if they are aware of your tool lol...
Manixx2020beyound
Posts: 127
Joined: Thu Oct 08, 2020 5:19 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by Manixx2020beyound »

quietvoid wrote:
Wed Aug 25, 2021 5:40 am
Manixx2020beyound wrote:
Sun Aug 15, 2021 10:00 pm
That would help the grading community,
For those guys like myself 4k,6k,8k cameras
And do their own grading without doblyvision license fees
No secondary trim pass doe.
To my knowledge the doblyvision fees are only for secondary trim passes/Rpu creation & final encode of the doblyvision master to hevc
I did a first attempt at generating a RPU from XML: https://github.com/quietvoid/dovi_tool/pull/43
Still need to figure out if the L2 trims are correct..

L1 should be fine though, the rest needs testing and sample XML files..
Missing proper L5 (aspect ratio), since I don't really know how to decide whether it's horizontal or vertical letterbox bars.
Fantastic! great news!!
Thanks, so much will be testing tonight.
“NO BANZ TO MAKE DV DANCE”
Raw footage:
Now I can create a dv music video
With l1
Testing a dv/hdr10plus xml master of beckett which also has secondary trims too
Created by resolve
For raw footage we should be able to define the aspect ratio in the final encoding settings
Last edited by Manixx2020beyound on Wed Aug 25, 2021 5:07 pm, edited 1 time in total.
RESET_9999
Posts: 2378
Joined: Mon Aug 05, 2019 7:12 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by RESET_9999 »

quietvoid wrote:
Wed Aug 25, 2021 5:40 am
I'm getting this error:

Image

EDIT. ok looks like im not using the right CMD-LINE...
Can we just convert HDR10plus json straight to DV like this :

Code: Select all

dovi_tool.exe generate --hdr10plus-json D:\HDR10plus.JSON --rpu-out D:\RPU_generated.bin

or do we have to make a json and enter the lenght, target nits etc ? how do we know which value to use? or do we just enter the lenght and static metadata and the tools do the rest ?


does this json correct for WW-84?:

Code: Select all

dovi_tool.exe generate --hdr10plus-json D:\HDR10plus.JSON --json D:\edited.json --rpu-out D:\RPU_generated.bin

Code: Select all

{
    "length": 217408,
    "level2": [
        {
            "target_nits": 100
        },
        {
            "target_nits": 600
        },
        {
            "target_nits": 1000,
            "trim_power": 2096,
            "trim_saturation_gain": 2128
        },
        {
            "target_nits": 2000,
            "trim_slope": 2048,
            "trim_offset": 2048,
            "trim_power": 2048,
            "trim_chroma_weight": 2048,
            "trim_saturation_gain": 2048,
            "ms_weight": 2048
        }
    ],
    "level6": {
        "max_display_mastering_luminance": 1000,
        "min_display_mastering_luminance": 1,
        "max_content_light_level": 596,
        "max_frame_average_light_level": 200
    }
}
Last edited by RESET_9999 on Wed Aug 25, 2021 5:27 pm, edited 1 time in total.
quietvoid
Posts: 377
Joined: Sun Apr 19, 2020 4:15 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by quietvoid »

RESET_9999 wrote:
Wed Aug 25, 2021 5:05 pm
I'm getting this error:

Image

EDIT. ok looks like im not using the right CMD-LINE...
Can we just convert HDR10plus json straight to DV like this :

Code: Select all

dovi_tool.exe generate --hdr10plus-json D:\HDR10plus.JSON --rpu-out D:\RPU_generated.bin

or do we have to make a json and enter the lenght, target nits etc ? how do we know which value to use? or do we just enter the lenght and static metadata and the tools do the rest ?
You have to specify the config JSON for generating, since the HDR10+ info is only used for L1 metadata.

So something like this:

Code: Select all

dovi_tool generate -j assets/generator_example.json --hdr10plus-json metadata.json
The length is not optional in master, but it's overriden by whatever is in the HDR10+ file. Target nits or specific L2 can be used.

For the L2 to have no effect, something like this should work:

Code: Select all

"level2": [
        {
            "target_nits": 100
        },
        {
            "target_nits": 600
        },
        {
            "target_nits": 1000
        },
        {
            "target_nits": 2000
        }
]
quietvoid
Posts: 377
Joined: Sun Apr 19, 2020 4:15 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by quietvoid »

Manixx2020beyound wrote:
Wed Aug 25, 2021 2:22 pm
Fantastic! great news!!
Thanks, so much will be testing tonight.
“NO BANZ TO MAKE DV DANCE”
Raw footage:
Now I can create a dv music video
With l1
Testing a dv/hdr10plus xml master of beckett which also has secondary trims too
Created by resolve
For raw footage we should be able to define the aspect ratio in the final encoding settings
By the way, currently it only works for CMv2.9 XML files. Will look at supporting v4.0 but things like secondary trims are not backwards compatible.
RESET_9999
Posts: 2378
Joined: Mon Aug 05, 2019 7:12 pm

Re: Dolby Vision now possible through MP4 Mux.

Post by RESET_9999 »

I'm sooooo confused lol...

I converted my hdr10plus JSON to RPU.bin and I'm comparing the metadata and most of it is the same as the original bluray RPU (p8) except at the end where the original profile 8 RPU has different values for L1 and no L2 metadata but it has L4 metadata.... So my generated is wrong or not? and what the hell is level 4 ? its not even on the dolby documentation. Since L2 is optional, should we NOT generate it? L1 pq max and min doesnt match, why?


Image

the json i used is :

Code: Select all

{
    "length": 217408,
    "level2": [
        {
            "target_nits": 100
        },
        {
            "target_nits": 600
        },
        {
            "target_nits": 1000
        },
        {
            "target_nits": 2000
        }
		    ],
    "level6": {
        "max_display_mastering_luminance": 1000,
        "min_display_mastering_luminance": 1,
        "max_content_light_level": 596,
        "max_frame_average_light_level": 200
    }
}


generated RPU:

Code: Select all

 "num_ext_blocks": 7,
    "ext_metadata_blocks": [
      {
        "Level1": {
          "block_info": {
            "ext_block_length": 5,
            "ext_block_level": 1,
            "remaining": [
              0,
              0,
              0,
              0
            ]
          },
          "min_pq": 0,
          "max_pq": 0,
          "avg_pq": 0
        }
      },
      {
        "Level2": {
          "block_info": {
            "ext_block_length": 11,
            "ext_block_level": 2,
            "remaining": [
              0,
              0,
              0
            ]
          },
          "target_max_pq": 2081,
          "trim_slope": 2048,
          "trim_offset": 2048,
          "trim_power": 2048,
          "trim_chroma_weight": 2048,
          "trim_saturation_gain": 2048,
          "ms_weight": 2048
        }
      },
      {
        "Level2": {
          "block_info": {
            "ext_block_length": 11,
            "ext_block_level": 2,
            "remaining": [
              0,
              0,
              0
            ]
          },
          "target_max_pq": 2851,
          "trim_slope": 2048,
          "trim_offset": 2048,
          "trim_power": 2048,
          "trim_chroma_weight": 2048,
          "trim_saturation_gain": 2048,
          "ms_weight": 2048
        }
      },
      {
        "Level2": {
          "block_info": {
            "ext_block_length": 11,
            "ext_block_level": 2,
            "remaining": [
              0,
              0,
              0
            ]
          },
          "target_max_pq": 3079,
          "trim_slope": 2048,
          "trim_offset": 2048,
          "trim_power": 2048,
          "trim_chroma_weight": 2048,
          "trim_saturation_gain": 2048,
          "ms_weight": 2048
        }
      },
      {
        "Level2": {
          "block_info": {
            "ext_block_length": 11,
            "ext_block_level": 2,
            "remaining": [
              0,
              0,
              0
            ]
          },
          "target_max_pq": 3388,
          "trim_slope": 2048,
          "trim_offset": 2048,
          "trim_power": 2048,
          "trim_chroma_weight": 2048,
          "trim_saturation_gain": 2048,
          "ms_weight": 2048
        }
      },
      {
        "Level5": {
          "block_info": {
            "ext_block_length": 7,
            "ext_block_level": 5,
            "remaining": [
              0,
              0,
              0,
              0
            ]
          },
          "active_area_left_offset": 0,
          "active_area_right_offset": 0,
          "active_area_top_offset": 0,
          "active_area_bottom_offset": 0
        }
      },
      {
        "Level6": {
          "block_info": {
            "ext_block_length": 8,
            "ext_block_level": 6,
            "remaining": []
          },
          "max_display_mastering_luminance": 1000,
          "min_display_mastering_luminance": 1,
          "max_content_light_level": 596,
          "max_frame_average_light_level": 200
        }
      }
    ]
  },
  "remaining": [
    0
  ],
  "rpu_data_crc32": 562607130

Profile 8 RPU from bluray:

Code: Select all

 "num_ext_blocks": 4,
    "ext_metadata_blocks": [
      {
        "Level1": {
          "block_info": {
            "ext_block_length": 5,
            "ext_block_level": 1,
            "remaining": [
              0,
              0,
              0,
              0
            ]
          },
          "min_pq": 0,
          "max_pq": 2081,
          "avg_pq": 819
        }
      },
      {
        "Level4": {
          "block_info": {
            "ext_block_length": 3,
            "ext_block_level": 4,
            "remaining": []
          },
          "anchor_pq": 0,
          "anchor_power": 0
        }
      },
      {
        "Level5": {
          "block_info": {
            "ext_block_length": 7,
            "ext_block_level": 5,
            "remaining": [
              0,
              0,
              0,
              0
            ]
          },
          "active_area_left_offset": 0,
          "active_area_right_offset": 0,
          "active_area_top_offset": 276,
          "active_area_bottom_offset": 277
        }
      },
      {
        "Level6": {
          "block_info": {
            "ext_block_length": 8,
            "ext_block_level": 6,
            "remaining": []
          },
          "max_display_mastering_luminance": 1000,
          "min_display_mastering_luminance": 1,
          "max_content_light_level": 596,
          "max_frame_average_light_level": 200
        }
      }
    ]
  },
  "remaining": [],
  "rpu_data_crc32": 326453137
}


generated RPU ( no L2)

Code: Select all

 "num_ext_blocks": 3,
    "ext_metadata_blocks": [
      {
        "Level1": {
          "block_info": {
            "ext_block_length": 5,
            "ext_block_level": 1,
            "remaining": [
              0,
              0,
              0,
              0
            ]
          },
          "min_pq": 0,
          "max_pq": 0,
          "avg_pq": 0
        }
      },
      {
        "Level5": {
          "block_info": {
            "ext_block_length": 7,
            "ext_block_level": 5,
            "remaining": [
              0,
              0,
              0,
              0
            ]
          },
          "active_area_left_offset": 0,
          "active_area_right_offset": 0,
          "active_area_top_offset": 0,
          "active_area_bottom_offset": 0
        }
      },
      {
        "Level6": {
          "block_info": {
            "ext_block_length": 8,
            "ext_block_level": 6,
            "remaining": []
          },
          "max_display_mastering_luminance": 1000,
          "min_display_mastering_luminance": 1,
          "max_content_light_level": 596,
          "max_frame_average_light_level": 200
        }
      }
    ]
  },
  "remaining": [
    0,
    0,
    0,
    0,
    0
  ],
  "rpu_data_crc32": 1882379805
}
Last edited by RESET_9999 on Wed Aug 25, 2021 7:50 pm, edited 3 times in total.
Post Reply