[FFmpeg-devel] Loop filter questions
Kostya
kostya.shishkov
Sun Jan 6 13:21:10 CET 2008
Here's what I was able to find out about loop filters employed in RV30/40.
RV30 loop filter:
if subblocks on both sides of edge are coded, then
deblock them with LIM=some parameter derived from top/left subblock
of this pair
I suspect it uses this table and quantizer to set strength:
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 2 2 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6
0 0 0 0 0 0 0 0 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7
0 0 0 0 0 0 0 0 0 0 0 1 1 2 2 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8
0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9
filter is weak loop filter taken from some H.264 draft:
t = ((SRC[-2] - SRC[1]) - (SRC[-1] - SRC[0])*4) >> 3;
d = clip(t, -LIM, LIM);
SRC[-1] = SRC[-1] + d;
SRC[ 0] = SRC[ 0] - d;
RV40 loop filter:
this filter uses clip table, alpha and beta parameter tables from
early H.264 draft (A003r1),
loop filter is applied to the edges of coded blocks and depending
on where neighbouring block is coded or not, some limit parameters
are chosen (ClipTable[0][quant], ClipTable[1][quant] or ClipTable[2][quant])
filter code is in http://svn.mplayerhq.hu/soc/rv40/rv40.c?revision=1487&view=markup
it's adaptive and depending of pixel difference will use either
weak filtering similar to one employed in RV30, or stronger one, for up to
4 border pixels with coefficients [25 26 26 26 25] or [25 26 51 26]
Can somebody point me to something similar? It's hard to me to search all
H.264 drafts to find out where those things are proposed.
More information about the ffmpeg-devel
mailing list