Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dolby_vision: Support persisted state RPU parsing #149

Open
3 tasks
quietvoid opened this issue May 2, 2022 · 2 comments
Open
3 tasks

dolby_vision: Support persisted state RPU parsing #149

quietvoid opened this issue May 2, 2022 · 2 comments
Labels
enhancement New feature or request

Comments

@quietvoid
Copy link
Owner

quietvoid commented May 2, 2022

This is required for parsing compressed RPUs.
It probably would imply using a crate like once_cell, and setting it behind a feature.

So API users can choose to use the extra allocations to preserve the state.

Then, in vdr_dm_data_payload, that state can either be updated or fetched from to get the proper attributes.
For the DM data, the RPU is compressed when RpuDataHeader::reserved_zero_3bits is set to 1.

Todo:

  • Figure out what affected_dm_metadata_id and current_dm_metadata_id mean.
  • Use them to update the state or restore metadata from a previous RPU.
  • Find out how to handle RpuDataHeader::use_prev_vdr_rpu_flag
@quietvoid quietvoid added the enhancement New feature or request label May 2, 2022
@HoffmannTom
Copy link

@quietvoid
Maybe this PDF sheds some lights on it: https://www.etsi.org/deliver/etsi_gs/CCM/001_099/001/01.01.01_60/gs_ccm001v010101p.pdf
It is explained in 6.3.2 HDR DM metadata (= HDR display management metadata)
It seems to create a reference between the metadata and the picture it refers to and to the current transmitted frame.

About use_prev_vdr_rpu_flag I found this explanation: https://patents.google.com/patent/US10701399B2/en
"use_prev_vdr_rpu_flag specifies whether the current Dolby Vision reference processing unit is predicted from a previously sent reference processing unit. The following values are supported.
1: A previously sent Dolby Vision reference processing unit is used to generate the interlayer prediction for the current picture
0: The current Dolby Vision reference processing unit is transmitted explicitly, and a vdr_rpu_id is assigned to the current Dolby Vision reference processing unit.
When the BL picture is an instantaneous refresh picture, the value of use_prev_vdr_rpu_flag must be 0."

I hope some of these information helps.

@quietvoid
Copy link
Owner Author

quietvoid commented Feb 14, 2023

Dolby kinda seems to have abandoned the compressed RPU concept, but I might still add support for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants