Skip to content
Tech News
← Back to articles

Raress96/Dolby-Atmos-encoder: PoC Dolby Atmos encoder

read original get Dolby Atmos Home Theater System → more articles
Why This Matters

This research demonstrates a proof-of-concept Dolby Atmos encoder that can convert Atmos Master streams into a format compatible with consumer devices lacking native Atmos bitstream support. While it cannot fully activate Dolby Atmos on certified hardware due to proprietary restrictions, it advances interoperability and understanding of Atmos encoding, potentially influencing future hardware and software development. This work highlights the ongoing challenges and opportunities in delivering immersive audio experiences across a broader range of consumer electronics.

Key Takeaways

Convert a Dolby Atmos Master (DAMF) — as decoded from a Dolby TrueHD + Atmos stream by truehdd — into E-AC-3 (Dolby Digital Plus) with Joint Object Coding (JOC), i.e. "DD+ Atmos". The aim was to let consumer gear that can't bitstream TrueHD Atmos (e.g. an LG TV → Denon AVR over eARC) render real object-based Atmos with height.

Status: research-complete, hardware-blocked Every stage below is provably correct by every software oracle available (ffmpeg 7, VoidXH/Cavern): the output is detected as E-AC-3 (Dolby Digital Plus + Dolby Atmos) , decodes with the right object count and valid 3D object positions (including height), and is CRC-clean. But it does not engage Atmos on Dolby-certified hardware — playback falls back to Dolby Surround. The cause is two independent, proprietary walls (see Why it can't fully work). This repository is the honest, documented artifact of that investigation, with a clean seam for the one missing cryptographic piece.

This is for personal / interoperability research use only. See Licensing & provenance.

What it does (pipeline)

A near-complete reimplementation of the relevant parts of a DD+ Atmos encoder, in Rust:

DAMF reader — parses the Dolby Atmos Master ( .atmos / .audio / .metadata ).

— parses the Dolby Atmos Master ( / / ). 5.1 downmix renderer — VBAP-pans the Atmos objects to a 5.1 bed (L R C LFE Ls Rs).

— VBAP-pans the Atmos objects to a 5.1 bed (L R C LFE Ls Rs). OAMD encoder (ETSI TS 103 420) — per-frame Object Audio Metadata: object positions (with elevation), bed/LFE, program assignment. Round-trips through our decoder and Cavern.

(ETSI TS 103 420) — per-frame Object Audio Metadata: object positions (with elevation), bed/LFE, program assignment. Round-trips through our decoder and Cavern. JOC encoder — Joint Object Coding matrices over the 5-channel core × parameter bands, with Dolby's quant/Huffman config. Bit-exact round-trip.

— Joint Object Coding matrices over the 5-channel core × parameter bands, with Dolby's quant/Huffman config. Bit-exact round-trip. EMDF container (ETSI TS 102 366 Annex H) — wraps OAMD (id 11) + JOC (id 14) with the emdf_protection field, carried in the E-AC-3 audio-block skip field exactly where real Dolby streams put it (recomputing frmsiz + crc2 ).

... continue reading