Commit 8c50a70a authored by Johann's avatar Johann
Browse files

max_sad check is not always implemented

As an optimization some architectures use the max_sad argument to break
out early from the SAD. Pass in INT_MAX instead of 0 to prevent this.

Change-Id: I653c476834b97771578d63f231233d445388629d
parent 2e0d5531
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "systemdependent.h" #include "systemdependent.h"
#include "../encoder/variance.h" #include "../encoder/variance.h"
#include <limits.h>
#include <math.h> #include <math.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
...@@ -729,17 +730,17 @@ static void multiframe_quality_enhance_block ...@@ -729,17 +730,17 @@ static void multiframe_quality_enhance_block
if (blksize == 16) if (blksize == 16)
{ {
act = (vp8_variance16x16(yd, yd_stride, VP8_ZEROS, 0, &sse)+128)>>8; act = (vp8_variance16x16(yd, yd_stride, VP8_ZEROS, 0, &sse)+128)>>8;
sad = (vp8_sad16x16(y, y_stride, yd, yd_stride, 0)+128)>>8; sad = (vp8_sad16x16(y, y_stride, yd, yd_stride, INT_MAX)+128)>>8;
} }
else if (blksize == 8) else if (blksize == 8)
{ {
act = (vp8_variance8x8(yd, yd_stride, VP8_ZEROS, 0, &sse)+32)>>6; act = (vp8_variance8x8(yd, yd_stride, VP8_ZEROS, 0, &sse)+32)>>6;
sad = (vp8_sad8x8(y, y_stride, yd, yd_stride, 0)+32)>>6; sad = (vp8_sad8x8(y, y_stride, yd, yd_stride, INT_MAX)+32)>>6;
} }
else else
{ {
act = (vp8_variance4x4(yd, yd_stride, VP8_ZEROS, 0, &sse)+8)>>4; act = (vp8_variance4x4(yd, yd_stride, VP8_ZEROS, 0, &sse)+8)>>4;
sad = (vp8_sad4x4(y, y_stride, yd, yd_stride, 0)+8)>>4; sad = (vp8_sad4x4(y, y_stride, yd, yd_stride, INT_MAX)+8)>>4;
} }
/* thr = qdiff/8 + log2(act) + log4(qprev) */ /* thr = qdiff/8 + log2(act) + log4(qprev) */
thr = (qdiff>>3); thr = (qdiff>>3);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment