Dolby Vision Filters
Advanced Dolby Vision Topics
Mastering Metadata
Transform supports Dolby Vision Mastering Metadata versions 2.0.5, 4.0.2 and 5.1.0 in the following formats:
- as a sidecar XML file typically produced by the Dolby mastering tools.
- Prototype High Dynamic Range (PHDR). This is a proprietary scheme that frame interleaves the metadata into a JPEG-2000 MXF image track file.
- Isochronous Stream of XML Documents (ISXD). This format embeds the metadata in a separate MXF track file that is IMF compliant (SMPTE RDD47-2018).
Metadata Insertion
Transform can insert Dolby Vision Mastering Metadata into an IMF package in any of the supported formats.
Supported video formats include JPEG-2000 jp2k
and Apple ProRes 4:4:4 HQ ap4h
or XQ ap4x
. Audio must be 16-bit twos
or 24-bit in24
PCM. Subtitles must be ISMC profile TTML ttml
.
For example the following composition will create an IMF package with PHDR mastering metadata from the following source files:
- a sidecar
xml
containing the Dolby Vision masteringmetadata
. - a QuickTime
mov
containing thepicture
track, astereo
program and a 5.1surround
sound program. - a sidecar
ismc
file containing theenglish
subtitles.
---
input:
container:
- name: xml
video:
- name: metadata
- name: mov
video:
- name: picture
merge:
name: metadata
audio:
- name: stereo
select:
label:
- Lt
- Rt
- name: surround
select:
label:
- L
- R
- C
- LFE
- Ls
- Rs
- name: ismc
subtitle:
- name: english
output:
container:
- name: imf
type: 'imf '
properties:
DataContainer: phdr
video:
- name: picture
audio:
- name: stereo
- name: surround
subtitle:
- name: english
{
"input": {
"container": [
{
"name": "xml",
"video": [
{
"name": "metadata"
}
]
},
{
"name": "mov",
"video": [
{
"name": "picture",
"merge": {
"name": "metadata"
}
}
],
"audio": [
{
"name": "stereo",
"select": {
"label": [
"Lt",
"Rt"
]
}
},
{
"name": "surround",
"select": {
"label": [
"L",
"R",
"C",
"LFE",
"Ls",
"Rs"
]
}
}
]
},
{
"name": "ismc",
"subtitle": [
{
"name": "english"
}
]
}
]
},
"output": {
"container": [
{
"name": "imf",
"type": "imf ",
"video": [
{
"name": "picture"
}
],
"audio": [
{
"name": "stereo"
},
{
"name": "surround"
}
],
"subtitle": [
{
"name": "english"
}
]
}
]
}
}
IMF Container Writer
The Interoperable Master Format imf
writer supports the following Dolby Vision related properties:
Property | Value | Description |
---|---|---|
DataContainer | string or array[string] | phdr Dolby Vision metadata frame interleaved.isxd Dolby Vision metadata in a separate MXF track file. |
Metadata Extraction
Transform can extract Dolby Vision Mastering Metadata from an IMF package an MXF video track file or an MXF ISXD track file. This is typically used to create a sidecar XML for iTunes delivery.
For example the following composition will extract Dolby Vision Mastering Metadata from an IMF package:
---
input:
container:
- name: imf
video:
- name: picture
output:
container:
- name: xml
type: 'dovi'
video:
- route:
name: picture
properties:
WriteRevision: true
{
"input": {
"container": [
{
"name": "imf",
"video": [
{
"name": "picture"
}
]
}
]
},
"output": {
"container": [
{
"name": "xml",
"type": "dovi",
"video": [
{
"route": {
"name": "picture"
}
}
],
"properties": {
"WriteRevision": true
}
}
]
}
}
XML Metadata Writer
The Dolby Vision XML dovi
writer creates a sidecar XML file from the frame interleaved metadata. The writer supports the following properties:
Property | Value | Description |
---|---|---|
WriteRevision | boolean | If true adds an entry to the metadata RevisionHistory list. |
DateTime | string | The revision date and time in ISO8601 format. By default the current date and time is used. |
Author | string | The name of the individual or entity that revised the metadata. |
Software | string | The name of the software tool used to revise the metadata. |
SoftwareVersion | string | The version of the software tool used to revise the metadata. |
Comment | string | A description of the revision. |
Encoding Profiles
Transcode supports the following Dolby Vision encoding profiles:
- Profile 5, Single layer.
Additional Profiles Coming Soon:
- Profile 8.1, Single layer HDR10 compatible.
- Profile 8.4, Single layer HLG compatible.
- SDR from Dolby Vision.
Mastering metadata may be supplied in any of the supported formats.
Distribution Encoding
For consumer distribution video must be encoded using an HEVC codec h265
. Audio is typically encoded as either Dolby Digital Plus ec3
or Dolby Atmos ec3j
.
For example the following composition creates a Dolby Vision Profile 5 output for consumer distribution:
---
input:
container:
- name: imf
video:
- name: picture
audio:
- name: sound
output:
container:
- name: mp4
type: 'mp4 '
video:
- name: picture
filter:
- type: 'dvpr'
properties:
Profile: 1
MaxSceneFrames: 100
encode:
type: 'h265'
attach:
- type: 'rpu '
filter:
type: 'dvpo'
properties:
Level1Filter: 1
audio:
- name: sound
encode:
type: 'ec3 '
{
"input": {
"container": [
{
"name": "imf",
"video": [
{
"name": "picture"
}
],
"audio": [
{
"name": "sound"
}
]
}
]
},
"output": {
"container": [
{
"name": "mp4",
"type": "mp4 ",
"video": [
{
"name": "picture",
"filter": [
{
"type": "dvpr",
"properties": {
"MaxSceneFrames": 100
}
}
],
"encode": {
"type": "h265"
},
"attach": [
{
"type": "rpu ",
"filter": {
"type": "dvpo",
"properties": {
"Level1Filter": 1
}
}
}
]
}
],
"audio": [
{
"name": "sound",
"encode": {
"type": "ec3 "
}
}
]
}
]
}
}
Pre-Processor
The Dolby Vision pre-processor dvpr
filter must be applied to the output video stream prior to encoding. Depending on the encoding profile the pre-processor performs the following:
- noise reduction and color space conversion (profile 5).
- dynamic range reduction (SDR, HDR10, HLG compatibility).
- generation of the Dolby Vision Reference Picture Unit
rpu
metadata for each frame.
Note that for Dolby Vision Profile 5 the pre-processor converts the video to an unspecified
color space. This produces a noticble color shift when viewed using a non-Dolby Vision player.
Property | Value | Description |
---|---|---|
Profile | enum | 0 SDR1 Profile 52 Profile 8.1 (HDR10)3 Profile 8.1 (HDR10 1000 nits)4 Profile 8.4 (HLG) |
MaxSceneFrames | integer | The maximum number of frames the pre-processor will buffer while searching for a scene boundary. This value should be greater than or equal to the encoded GOP length. |
RpuProfile | enum | 0 Baseline, 1 Main, 2 High |
MultiPassMode | enum | 0 Scene, 1 SegmentFirstPass, 2 SegmentSecondPass |
Post-Processor
The Dolby Vision post-processor dvpo
filter must be applied to the rpu
metadata prior to being attached to the encoded stream.
Property | Value | Description |
---|---|---|
RpuCompression | enum | 0 Basic, 1 IdrRefresh |
Level1Filter | enum | 0 None, 1 Default, 2 Window |
MaxFALL | number | Sets the L6 metadata maximum frame-average light level in nits (cd/m^2). |
MaxCLL | number | Sets the L6 metadata maximum content light level in nits (cd/m^2). |
Contribution Encoding
The pre-processor can all be used to create an SDR, HDR10 or HLG contribution mezzanine. This process uses the Dolby Vision mastering metadata to dynamically convert the master to the desired color space and dynamic range.
For example the following composition converts a Dolby Vision master (with sidecar XML metadata) to an Apple ProRes HDR10 (1000 nit) mezzanine:
---
input:
container:
- name: xml
video:
- name: metadata
- name: mxf
video:
- name: picture
merge:
name: metadata
audio:
- name: sound
output:
container:
- name: mov
type: 'mov '
video:
- name: picture
filter:
- type: dvpr
properties:
Profile: 3
encode:
type: apcx
audio:
- name: sound
format: in24
{
"input": {
"container": [
{
"name": "xml",
"video": [
{
"name": "metadata"
}
]
},
{
"name": "mxf",
"video": [
{
"name": "picture",
"merge": {
"name": "metadata"
}
}
],
"audio": [
{
"name": "sound"
}
]
}
]
},
"output": {
"container": [
{
"name": "mov",
"type": "mov ",
"video": [
{
"name": "picture",
"filter": [
{
"type": "dvpr",
"properties": {
"Profile": 3
}
}
],
"encode": {
"type": "apcx"
}
}
],
"audio": [
{
"name": "sound",
"format": "in24"
}
]
}
]
}
}
Updated about 1 year ago