Dolby Atmos Filters
Advanced Dolby Atmos Topics
Master Formats
Transform supports the following Dolby Atmos master formats:
- Dolby Atmos Master Format (DAMF). This is the native format produced by the Dolby Atmos mastering tools.
- Broadcast WAV format (BW64) containing Audio Definition Model (ADM) metadata. This is the format required for iTunes delivery.
- Material Exchange Format (MXF) containing an Immersive Audio Bitstream (IAB). This is the standard for Atmos delivery within an IMF package.
The following composition will extract an Atmos track from an IMF package and output a WAV/ADM master:
---
input:
container:
- name: imf
audio:
- name: stereo
- name: surround
- name: atmos
output:
container:
- name: bw64
type: 'wav '
audio:
- route:
name: atmos
{
"input": {
"container": [
{
"name": "imf",
"audio": [
{
"name": "stereo"
},
{
"name": "surround"
},
{
"name": "atmos"
}
]
}
]
},
"output": {
"container": [
{
"name": "bw64",
"type": "wav ",
"audio": [
{
"route": {
"name": "atmos"
}
}
]
}
]
}
}
Encoding
The Dolby Digital Plus JOC (Joint Object Coding) ec3j
encoder supports the following (required) configuration properties:
Property | Value | Description |
---|---|---|
ChannelConfiguration | integer | Channel configuration for CBI content: |
BitRate | integer | Allowable bitrates: |
IntegratedLoudness | number | Integrated audio loudness in |
IntegratedLoudnessRange | number | Loudness range in |
SamplePeak | number | Peak audio sample value in |
TruePeak | number | True peak value in |
DynamicRangeLineModeProfile | integer |
|
DynamicRangeRFModeProfile | integer |
|
DownMixMode | integer | Specifies the stereo down mix mode: |
LoRoCenterMixLevel | integer | Specifies the center channel level for a conventional (LoRo) stereo down mix: |
LoRoSurroundMixLevel | integer | Specifies the surround channel level for a conventional (LoRo) stereo down mix. |
LtRtCenterMixLevel | integer | Specifies the center channel level for a matrix (LtRt) stereo down mix. |
LtRtSurroundMixLevel | integer | Specifies the surround channel level for a matrix (LtRt) stereo down mix. |
For example the following will transcode a Dolby Atmos master file to Dolby Digital Plus:
---
input:
container:
- name: atmos
audio:
- name: a1
output:
container:
- name: mp4
type: 'mp4 '
audio:
- route:
name: a1
encode:
type: ec3j
properties:
BitRate: 640000
IntegratedLoudness: -23.0
IntegratedLoudnessRange: 25.0
SamplePeak: -5.0
TruePeak: -4.0
{
"input": {
"container": [
{
"name": "atmos",
"audio": [
{
"name": "a1"
}
]
}
]
},
"output": {
"container": [
{
"name": "mp4",
"type": "mp4 ",
"audio": [
{
"route": {
"name": "a1"
},
"encode": {
"type": "ec3j",
"properties": {
"BitRate": 640000,
"IntegratedLoudness": -23.0,
"IntegratedLoudnessRange": 25.0,
"SamplePeak": -5.0,
"TruePeak": -4.0
}
}
}
]
}
]
}
}
Loudness Measurement
Dolby Atmos encoding requires audio loudness measurements for both object and channel based immersive content.
Dolby Analyzer
Audio loudness measurement is performed in a preperation pass using the Dolby Loudness dala
analysis filter. The filter supports the following configuration properties:
Property | Value | Description |
---|---|---|
MeteringMode | enum | Specifies the loudness measurement mode: |
DialogIntelligence | boolean | Indicates whether Dolby Dialogue Intelligence is enabled. |
Loudness measurements are added to each sample as a loud
analysis element.
Property | Value | Description |
---|---|---|
momentary_loudness | number | Momentary (400ms) loudness in |
short_term_loudness | number | Short term (3 s) loudness in |
short_term_10s_loudness | number | Short term (10 s) loudness in |
ungated_loudness | number | Integrated ungated loudness in |
level_gated_loudness | number | Integrated level gated loudness in |
speech_gated_loudness | number | Percentage of content detected as speech. |
speech_percentage | number | Current range of loudness levels in |
sample_peak | number | Sample peak signal level in |
true_peak | number | True peak signal level in |
Properties Writer
The properties prop
container writer is used to write the analyzer results to a JSON file:
---
input:
container:
- name: atmos
audio:
- name: a1
output:
container:
- name: json
type: prop
properties:
Kind: data
audio:
- route:
name: a1
filter:
- type: dala
properties:
MeteringMode: BT1770_4
DialogIntelligence: true
{
"input": {
"container": [
{
"name": "atmos",
"audio": [
{
"name": "a1"
}
]
}
]
},
"output": {
"container": [
{
"name": "json",
"type": "prop",
"properties": {
"Kind": "data"
},
"audio": [
{
"route": {
"name": "a1"
},
"filter": [
{
"type": "dala",
"properties": {
"MeteringMode": "BT1770_4",
"DialogIntelligence": true
}
}
]
}
]
}
]
}
}
The properties writer will produce an output similar to the following:
{
"audio": [
{
"format": "in24",
"sample_rate": {
"numerator": 48000,
"denominator": 1
},
"channels": 26,
"sample": [
{
"duration": 1536,
"analysis": [
{
"type": "loud",
"momentary_loudness": -10.0,
"short_term_loudness": -12.0,
"short_term_10s_loudness": -12.0,
"ungated_loudness": -21.0,
"level_gated_loudness": -21.0,
"speech_gated_loudness": -22.0,
"speech_percentage": 65.0,
"loudness_range": 25.0,
"sample_peak": -5.0,
"true_peak": -4.0
}
]
}
]
}
]
}
Rendering
Dolby Atmos object based audio content can be rendered to standard channel configurations (stereo, 5.1 or 7.1). Rendering allows Atmos content to be encoded in other formats such as AC-3 or AAC.
Atmos Converter
Rendering is implement using the Dolby Atmos converter dacv
filter which supports the following properties:
Property | Value | Description |
---|---|---|
ChannelConfiguration | enum | Output channel configuration: |
MeteringMode | enum | Specifies the loudness measurement mode: |
DialogIntelligence | boolean | Indicates whether Dolby Dialogue Intelligence is enabled. Default is |
Normalization | number | Loudness normalization in |
Rendered Loudness
The following composition renders a Dolby Atmos master file to 5.1 surround and measures the audio loudness:
---
input:
container:
- name: atmos
audio:
- name: a1
output:
container:
- name: json
type: prop
audio:
- route:
name: a1
filter:
type: dacv
properties:
ChannelConfiguration: C_L_R_Ls_Rs_LFE
MeteringMode: BT1770_4
{
"input": {
"container": [
{
"name": "atmos",
"audio": [
{
"name": "a1"
}
]
}
]
},
"output": {
"container": [
{
"name": "json",
"type": "prop",
"audio": [
{
"route": {
"name": "a1"
},
"filter": {
"type": "dacv",
"properties": {
"ChannelConfiguration": "C_L_R_Ls_Rs_LFE",
"MeteringMode": "BT1770_4"
}
}
}
]
}
]
}
}
Rendered Encoding
The following composition encodes a Dolby ATMOS master file to Dolby Digital 5.1 with audio normalization:
---
input:
container:
- name: atmos
audio:
- name: a1
output:
container:
- name: mp4
type: 'mp4 '
audio:
- route:
name: a1
filter:
type: dacv
properties:
ChannelConfiguration: C_L_R_Ls_Rs_LFE
Normalization: -1.0
encode:
type: 'ec3 '
properties:
OutputFormat: ac-3
BitRate: 128000
{
"input": {
"container": [
{
"name": "atmos",
"audio": [
{
"name": "a1"
}
]
}
]
},
"output": {
"container": [
{
"name": "mp4",
"type": "mp4 ",
"audio": [
{
"route": {
"name": "a1"
},
"filter": {
"type": "dacv",
"properties": {
"ChannelConfiguration": "C_L_R_Ls_Rs_LFE",
"Normalization": -1.0
}
},
"encode": {
"type": "ec3 ",
"properties": {
"OutputFormat": "ac-3",
"BitRate": 128000
}
}
}
]
}
]
}
}
Updated about 1 year ago