[theora-dev] sharpen modifier table

Ralph Giles giles at xiph.org
Tue Mar 9 11:34:53 PST 2004

Does anyone understand the SharpenModifier table in pp.c, used in the 
Block Dering filter?

Our general program has been to move any data tables required by the 
decoder into the third setup (or 'table') packet to allow future encoder 
flexibility. Yesterday I committed changes to the reference 
implementation to include the limit value table used by the in-loop 
filter which is the last of the required tables. We're now looking at 
the post-process filters.

The SharpenModifier table values are all non-positive with a magnitude 
less than 16, which would obviously make for a small table. Looking at 
the way the values are used, -64 to +32 would seem to be the reasonable 
full range, but the code actually lets you put anything at all in there. 
Can someone enlighten me about the theory behind this filter and what 
are reasonable bounds on the table values?

The other pp data table (the dering modifiers) are obviously derived 
from the dc scale factor table which we already encode, so the sharpen 
modifiers are the only spec bit missing (unless you count all the 
threshold values).

Derf suggested not including the table at all and making the pp filters 
non-normative (as they're already optional in the code). The idea is 
that they're not required for proper decode and so shouldn't be, and 
that given their non-linearity, there's little scope for the encoder to 
be clever if it can change them. I think this is a reasonable argument 
(and currently the default plan) but am happy to listen to other 

--- >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 mailing list