[Theora-dev] Again on DC prediction

Marco Bagnaresi frostland at gmail.com
Fri May 6 08:38:13 PDT 2005

Timothy B. Terriberry wrote:

>>Marco Bagnaresi wrote:
>>>>Reading the source code i noted the zeroing of the LASTDC array after
>>>>each plane (Y,U,V) in the DC prediction function.
>>>>Perhaps i missed this in the specification, but in the chapter 7.8.2
>>>>(Inverting the DC prediction precess) i don't find this wrote down.
>>>>Can someone explain me this?
>>>>Thanks in advance
>>The spec was wrong. I've updated it to reflect the correct process. You
>>can get a current copy from svn or wait for the website mirrors to
>>update. Thank you for your review, and please don't hesitate to report
>>any other discrepancies you might find.
Ah ok! :) i found some other little things, when they will come back to
my mind i'll post in this ML!
Ah! Something now comes back to my mind ...
... in the DC prediction again,in the source code before the division
with PDIV there is a correction sum if the value is negative. This is
not reported in the specification. I don't know if this method is used
to correct something dependant from the source code, but i found that
it's not. Perhaps it's my mistake.
The value summed is PDIV-1 if DCPRED is negative.
And also, in the source code a shift-right method is used that should be
equivalent to an integer division with PDIV, but in fact it's not.
As stated in the specification, (page 12) the notation // is a simple
integer division.
In the source code bit shifting is used, that is not equivalent to an
integer division (spec page 12 also).

-2000 // 128 = -15

-2000 >> 7 = -16

Is this correct?
Thanks in advance and sorry for my bad english :)

-Marco Bagnaresi

More information about the Theora-dev mailing list