[FFmpeg-devel] Using dsp.fdct()
Ramiro Polla
ramiro
Sun Apr 20 18:34:06 CEST 2008
Hello,
Loren Merritt wrote:
> On Sat, 19 Apr 2008, Ramiro Polla wrote:
>> Michael Niedermayer wrote:
>>> PS: yes you do need to run a idct over it if you want to use it as reference
>>> frame otherwise decoder and encoder will have different reference frames.
>> And this leaves me in a spot where I have more doubts than before asking =)
>> The current code compares both frames with their original content (well,
>> besides that luma plane pre-processing, but I'm not sure how long I'll
>> keep that). I imagine this scenario where copying the idct over the
>> original content could be worse (untested, but sounds like a good scenario):
>> If I have a low quality encoding, the idct output will have lots of
>> differences from the original content. If I compare the current frame's
>> content with the idct output from the previous one, the differences
>> might be higher than the threshold, so it will encode the new image,
>> when it could have just used the previous one instead.
>
> The reconstructed content of the previous frame is what you'll get if
> you code a skip in the current frame. So either the reconstructed
> reference frame is too different from the current input, in which case you
> should code the block, or the reconstructed reference frame is good
> enough, in which case either it'll pass your threshold or you should fix
> your threshold.
> corollary: the skip threshold should be at least as large as the typical
> quantization error at your current quantizer.
Impressive... This got the output to have both a smaller file size and
greater quality, at the cost of taking much longer to encode.
Ramiro Polla
More information about the ffmpeg-devel
mailing list