[matroska-general] Re: Dynamic Range Management

Steve Lhomme steve.lhomme at free.fr
Sun May 25 16:31:48 CEST 2003

Frank Klemm wrote:

Hi Frank,
Nice to have you here :)

> Dynamic Range Management
> ~~~~~~~~~~~~~~~~~~~~~~~~
> What is Dynamic Range Management?
> It's a more general form of ideas you found in
> - Dolby Digital Dynamic Range Compression (DRC)
> - Replaygain in it's two forms of for titles and albums
> It has the following properties:
> - You can change the volume without any re-encoding
> - You can change the volume with only very little computational effort
> - You can change the volume dynamic, nearly static and static
> - You can have multiple volume envelopes for one file with only little overhead
> Special forms:
>   Digital Dolby DRC
>   - at most only two profiles possible, a high quality (named DRC) and a low quality
>     (named Compression)
>   - mostly it is not possible to add this later (block size problem)
>   - DRC        : restricted to +/- 24 dB, Res(t) = 5.3 ms
>   - Compression: restricted to +/- 48 dB, Res(t) = 32 ms
>   Replaygain
>   - only static volume change possible
>   - can be added without any problems later
>   - two profiles are possible
> Question
> ~~~~~~~~
> What do you think about this idea ?
> Should this be part of Matroska or part of SV8 ?

It depends if it's a codec specific thing, or it can be applied to any 
codec. In the latter case, I suggest to put it in Matroska. We already 
have ReplayGain informations (album and track). And we can add this to 
any audio block "properties" (saved in the BlockGroup, even better in 
the TimeSlice). The problem is that it would be more convenient for the 
decoder to have the value for each "frame" and not just when it changes. 
Otherwise when you cut or seek in the file, you will lose that information.

BTW, I'm thinking about when to apply it on decoding. It should be after 
decoding to PCM, so either in the Codec (ie this is codec specific, not 
supported by all possible codec in matroska) or hacking the output of 
the codec (dirty hack in DirectShow, it may be easier in MPlayer). So a 
codec specific system would be easier on the matroska side ;) But that's 
a feature that could be worth adding. To make all codec equal on this 
side :) And let the codec really deal with coding data. But I'm not sure 
it will be the case on encoding, as only the codec can know how to 
manipulate data to make compression better.

 > Generic forms:
 >   - up to 32 profiles
 >   - volume can be changed static and dynamic
 >   - can be used like DRC and Compression
 >   - can be used for album replaygain
 >   - can be used for title replaygain (with additional transition
 >     between titles, to avoid clicks)

Good idea. Even though it will need support in the authoring app (not 
muxing app).


More information about the Matroska-general mailing list