[xiph-commits] r7770 - trunk/theora/lib
giles at motherfish-iii.xiph.org
giles at motherfish-iii.xiph.org
Wed Sep 15 22:54:23 PDT 2004
Author: giles
Date: 2004-09-15 22:54:23 -0700 (Wed, 15 Sep 2004)
New Revision: 7770
Modified:
trunk/theora/lib/mcomp.c
Log:
Fix a double-update in GetHalfPixelSumAbsDiffs().
When RefOffset was 0, this routine falls back to the non-fractional
pixel version, GetSumAbsDiffs(). However, both routines treat the error
as an accumulator, initializing DiffVal to the passed ErrorSoFar and
then adding their own contribution. This was problematic, as each
recursion level repeated the initialization, resulting in an
effective initial value of 2*ErrorSoFar. We instead pass '0' for
ErrorSoFar in the recursion so that only the specific contribution in
added to the accumulator.
Thanks to Wim Taymans for pointing out the issue.
Modified: trunk/theora/lib/mcomp.c
===================================================================
--- trunk/theora/lib/mcomp.c 2004-09-16 05:34:24 UTC (rev 7769)
+++ trunk/theora/lib/mcomp.c 2004-09-16 05:54:23 UTC (rev 7770)
@@ -273,7 +273,7 @@
if ( RefOffset == 0 ) {
/* Simple case as for non 0.5 pixel */
DiffVal += GetSumAbsDiffs( SrcData, RefDataPtr1, PixelsPerLine,
- ErrorSoFar);
+ 0);
} else {
for ( i=0; i < BLOCK_HEIGHT_WIDTH; i++ ) {
DiffVal += abs( ((int)SrcData[0]) - (((int)RefDataPtr1[0] +
More information about the commits
mailing list