[theora-dev] resolution issues
Timothy B. Terriberry
tterribe at vt.edu
Mon May 26 07:46:00 PDT 2003
> I've heard that mirrored data works well when DCT is taken into
It works "well", but one can do better. One can choose values for the
padding so that exactly as many high-frequency coefficients of the DCT
as there are padding pixels in a block are forced to 0.
This is actually relatively easy to do with the following iterative process:
1) Choose arbitrary values for the padding (e.g., mirroring)
2) Perform a DCT on the block
3) Replace the last N DCT coefficients with 0's (where N is the number
of padding pixels)
4) Perform an iDCT on the coefficients
5) Replace the non-padding pixels with their original values
6) Go back to 2 until convergence
Obviously, this is much slower than simple mirroring, and real-time
encoders may not wish to spend this time for the minor benefits it
gives. It is for this reason that padding values should be
non-normative. Encoders should be able to choose anything they want.
Decoders should never render them.
Also, the above algorithm assumes that the transform is linear. Since
Theora uses an integer approximation, the rounding and truncation in it
introduces small non-linearities. In practice, it should be enough to
get the values below the quantization threshold.
--- >8 ----
List archives: http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'theora-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body. No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.
More information about the Theora-dev