[XviD-devel] image pre-processing
Marc FD
xvid-devel@xvid.org
Thu, 5 Dec 2002 18:45:44 +0100
Hi ^^
i've some experience in image filtering,and i know how works
many avisynth/VDub filters, so i think i'll start to do this part.
first, i've a question :
>> do we want encoder-independant denoising ??
+ cool for linux (and "joe") users
+ no additionnal compexity in encoder (just 1 call/frame)
+ cool stuff to add in interface ^^
- interface even bigger
- bigger source code/binaries
WARNING, it's not for compressibility !!
only to improve noisy source encoding.
if i do it, i think i'll go for a bunch of the best/faster spatial filters.
IMHO, temporal filtering is crap, i can explain why if you want.
but can we add 2 frame delay in encoding ? i like fast 3d filtering ^^
i'll of course add assembly for the more popular methods after.
now, the the good stuff : integrated pre-processing.
here's how i see it :
syskin's MEanalysis saves computed values (sad,dev) in mb array.
(even more values could be computed if it's needed)
then, we call the pre-processing engine after MEanalysis.
it uses all the data computed to evaluate the situation
(panning, dissolve, low/mid/high motion, crispness, ect..)
BTW, we could even improve adaptive quantisation with.
then, for each situation, we begin to play.
for low-motion&pannings, nothing serious.... maybe early skip ?
for med/high-motion and dissolves, prefiltering is really
usefull. these pictures are going to be very bitrate-demanding,
and wouldn't be seen long. important too, quantization is NOT a
solution. why ? because there is too much data to compensate,
prediction is less accurate, and if we have a lot of motion, the errors
accumulated will make everything worse and worse...
let's filter the image a lot. many aspects are interessing :
we can blur or simplify the image. it's _not_ the same.
it's a matter of taste, lowpass blur looks bad but helps a lot
the encoder. simplification ("smart-blur", we avoid edges)
is less helping, but looks better. i like a mix of the two :
removing details and adding a bit motion blur.
many other things can be done. we can improve quality at
all bitrates, and of course, the pre-processor can be fully
configurable, with presets, global values, ect...
sounds good, no ? ^^