On Mon, May 12, 2014 at 11:20:35AM +0200, Niels Möller wrote:
> I've been trying to understand the layout of the lfe_fir_64 and
> lfe_fir_128 tables in dcadata.h, by comparing with the table in the
> spec. In think the layout for lfe_fir_64 could be documented as follows:
> 
> /*
>    Permuted compared to table D.8 in the spec. First, the table in the
>    spec has twice the number of coefficients, but they are reflected,
>    T[i] = T[511-i]. Furthermore, the indices are permuted, so that
> 
>      lfe_fir_64[64* k + j] = T[8*j + k]
> 
>    for 0 <= k < 4 and 0 <= j < 64. (This corresponds to adding a
>    leading zero to the 8-bit index, and rotating it left by 3 bits as
>    a 9-bit field). Values with j >= 32 can be reflected, as
>          
>      lfe_fir_64[64* k + j] = T[8*(63-j) + (7-k)]
> 
>    so all values in T get included. */
> 
> Correct? (I haven't yet looked closely at the lfe_fir_128 table, maybe
> it uses different shifting of the index bits).

Look at the commit 766fefe8

> Also, the values in dcadata.c are given with higher precision than the
> corresponding table in the spec (16 vs 10 digits), so I guess they're
> not copied from the spec but computed in some other way. Documenting the
> source of the table would also be good.

It's libdts and it could've come from any place - some old version of
specification or even patent where they got large tables from (the ones
like D.10.2 from the spec).
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to