[pulseaudio-discuss] Making Pulseaudio the perfect digital-everywhere sound transport
Alexander E. Patrakov
patrakov at gmail.com
Tue Feb 12 03:53:11 PST 2008
Erich Boleyn wrote:
> -- Issue: Digital compressed stream transport.
> Example: Dolby 5.1, DTS, etc.
> -- Potential solution: Sent it compressed unless it needs mixing, then
> blow out to uncompressed. Recompress at digital output.
> I saw a passing comment in the last month's email archives that
> the compressed audio did not have defined latency characteristics
> so would probably not work well. I don't understand the Dolby/DTS
> formats well at all, so it could be I'm just confused on this front
> in thinking it's easy.
> Being able to recompress also brings up where to get the
> recompression code from (and which sub-format of the myriad
> Dolby 5.1/DTS extensions to support). That's probably a whole
> discussion in and of itself. I saw one comment saying there
> was support in one of the open-source libs for it, but none
> about what the overhead or latency issues involved would be.
The issue is that once you have switched to the recompressed stream, you can't
switch back to passthrough easily without getting a click, at least for DTS. The
following pieces of the DTS specification reqire maintaining the history:
1) ADPCM prediction (typically used in one or two subbands at a time).
2) Subband synthesis (required all the time).
Another problem is that the DTS specification omits certain key parts. E.g., it
talks about 192 kHz sample rate only in the introduction, specifies only the
extension header for 96 kHz, and provides long FIR tables for a 32-band
quadrature mirror filter (used at 32 .. 48 kHz) in such a way that one cannot
guess how to construct a 64-band filter required for 96 kHz.
As for the latency, this is not an issue for DTS, where the precise decoding
algorithms for 8 .. 48 kHz are specified (and thus the latency of
encoder+decoder chain is known to be 512 samples for sampling frequencies of 32
.. 48 kHz).
Note: there is no open-source DTS encoder yet, but I am writing one. The key
piece (deobfuscating and undoing actions in section C.6 of the specification) is
already done for the "non-perfect reconstruction filter" case, and a tarball
with proof-of-concept code (only capable to encode CD-quality stereo wav files
to 1411 kbps DTS - i.e., useless encoding without any compression) is available
from me on request, if you either prove that you have the required DTS patent
license, or demonstrate that you don't need it.
Alexander E. Patrakov
More information about the pulseaudio-discuss