Displaying 1 result from an estimated 1 matches for "oc_c4s4".
2008 Mar 07
1
Bug in reference idct.
...erse DCT")
steps 14-16:
14. Assign T[5] the value T[4] - T[5].
15. Truncate T[5] to a 16-bit representation by dropping any higher-order
bits.
16. Assign T[5] the value C4 * (-T[5]) >> 16.
However, the relevant section of code in the reference decoder
(lib/dec/idct.c line 50) is:
t[5]=OC_C4S4*(ogg_int16_t)(t[4]-t[5])>>16;
i.e. T[5] (the result of T[4]-T[5]) is not inverted before being
multiplied by C4.
Lines 106, 150 and 190 in idct.c do the same thing - the spec says the
result of (T[4] - T[5]) should be negated before being multiplied. I
believe this is a bug in the reference...