From MultimediaWiki
Jump to navigation Jump to search

DTS-HD is an audio coding technology developed by DTS and targeted for the HD generation of optical discs (namely Blu-Ray and HD-DVD). The technology specification embodies various modes and extensions, one of which is XLL, an extension for lossless audio coding.

DTS-HD contains a normal DTS core. There's always one DTS core package and then one DTS-HD package. Then again one DTS core package and then again one DTS-HD package.

The DTS-HD packages begin with the text "dX %", which is in hex "64 58 20 25". There's a length field in the DTS-HD package which tells you how long the DTS-HD package is exactly. If you skip this length, you should end up on the next DTS core package. The length of the DTS-HD package is stored in the bytes 6-8. The lowest four bits of the sixth bytes are the most significant bits of the length field. All 8 bits of the seventh byte are used for the length field. And the 3 most significant bits of the eightth byte are the least significant bits of the length field. Finally you need to add 1 to the length field. So the length calculates like "(sixthByte & 0xf) << 11 + seventhByte << 3 + (eightthByte >> 5) & 7 + 1".

DTS-HD can be either DTS-HD High Resolution (lossy, constant bit rate) or DTS-HD Master Audio (lossless, variable bit rate). Obviously DTS-HD High Resolution packages in a specific DTS-HD stream always have the same size. While DTS-HD Master Audio packages vary in size. But the size field in the DTS-HD package is always set correctly, so you don't really need to worry about High Resolution vs. Master Audio.

Skipping over full DTS-HD packages is much better than to search for a new sync word because the sync word could theoretically also occur inside of a DTS-HD package. It has occured in regular dts core payload.