- Codec ID: 0x2001 (0x0008 Microsoft DTS)
- Company: DTS Inc.
Specification can be found through the ETSI (mirrored here), search for DTS. Info completing the incomplete specification can be found here: http://webapp.etsi.org/action%5CPU/20021224/ts_102114v010201p.pdf, http://gauss.ffii.org/PatentView/EP864146, and http://ofi.epoline.org/view/GetDossier?dosnum=&pubnum=EP864146&lang=EN# .
There are four different bitstream formats -- little- or big-endian and 16 or 14 bits per word.
Raw bitstream coding
Raw bitstream is packed into 16-bit words with possible little- or big-endian. The native file formats, compact (.cpt) and padded (.dts), are all coded in big-endian byte order.
This kind of bitstream is packed into 16-bit sample words so that the amplitude is reduced by 12 dB in the event that the data is inadvertently interpreted as uncompressed audio samples. The upper two bits are basically sign bit extension, as defined by twos-complement format. This coding is used in many DTS-in-WAV files. It is also found on DTS Music CD, where the potential of 1411.2 kbps is reduced to 1234.8 kbps in a tradeoff to reduce speaker damage.
How to distinguish different versions
Every frame in DTS starts with 32-bit syncword which can be used to distinguish current bitstream encoding:
|7F FE 80 01||raw big-endian|
|FE 7F 01 80||raw little-endian|
|1F FF E8 00 07 Fx||14-bit big-endian|
|FF 1F 00 E8 Fx 07||14-bit little-endian|
DTS is natively big-endian byte order. Wave and CD are little-endian formats, so DTS will (usually) be little-endian when found in those media containers.
|32 bits||Sync marker||0x7FFE8001|
|1 bit||Frame type (or last frame)||0 - termination frame, 1 - normal frame|
|5 bits||Deficit sample count||number of samples in block - 1 (should be 31 for normal frame)|
|1 bit||CRC present|
|7 bits||Number of blocks||5-127|
|14 bits||Frame size in bytes - 1||95-16383|
|6 bits||Channel configuration||values 0-15 are standard, 16-63 are user-defined|
|4 bits||Sample frequency||See table below|
|5 bits||Bitrate||See table below|
|1 bit||Down mix|
|1 bit||Dynamic range|
|1 bit||Time stamp|
|1 bit||Auxiliary data|
|3 bits||External descr|
|1 bit||External coding|
|1 bit||Predictor history|
|16 bits||Header CRC||if CRC present above is set|
|1 bit||Multirate inter|
|2 bits||Copy history|
|3 bits||Source PCM resolution|
|1 bit||Front sum|
|1 bit||Surround sum|
|4 bits||Dialog normalization||dB of recovery|