Here is a patch that fixes distortions that appear during scenes with no
authorj <j@xiph.org>
Fri, 4 Mar 2005 20:23:11 +0000 (20:23 +0000)
committerj <j@xiph.org>
Fri, 4 Mar 2005 20:23:11 +0000 (20:23 +0000)
commitfc65bcdb4757bfa62b0557c4d5057a1cc95a16c8
tree3c03f09c742805fa1dc9157f898f3177a722ef0b
parent7116fab423cd4212241c370c5307a46978f90e29
Here is a patch that fixes distortions that appear during scenes with no
motion. Tbe problem was that UpdateFrame() was not being called when a
MotionScore of 0 was computed. Since UpdateFrame() was not called the buffer
returned by theora_encode_packetout() would be the same buffer that was output
for the last frame that had a non-zero MotionScore. This is obviously incorrect
behavior. I've just moved the UpdateFrame() out of the (MotionScore > 0)
conditional block.

I've also included my change that prevents the encoder from spending WAY to
many bits on keyframes. This helps prevent the artifact where the video
suddenly gets very clear when keyframes occur but gets progressively blurry
for interframes. This change helps minimize some of the drastic Q changes
that cause this artifact.

Aaron

svn path=/trunk/theora/; revision=9037
lib/encoder_toplevel.c