On Fri, Apr 27, 2018 at 4:47 PM, Jerome Borsboom <jerome.borsb...@carpalis.nl> wrote: > In the put_no_rnd_pixels functions, the psubusb instruction subtracts one > from each > unsigned byte to correct for the rouding that the PAVGB instruction performs. > The psubusb > instruction, however, uses saturation when the value does not fit in the > operand type, > i.e. an unsigned byte. In this particular case, this means that when the > value of a pixel > is 0, the psubusb instruction will return 0 instead of -1 as this value does > not fit in > an unsigned byte and is saturated to 0. The result is that the interpolated > value is not > corrected for the rounding that PAVGB performs and that the result will be > off by one.
Looks correct. You could put it in a macro though instead of duplicating the code, e.g. %macro PAVGB_NO_RND 4 ; dst/src1, src2, tmp, pb_1 pxor %3, %1, %2 pand %3, %4 PAVGB %1, %2 psubb %1, %3 %endmacro _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel