Minor adjustment in diagonal sub-pixel point checking

Choose a different diagonal point to check when the two costs are
the same, making it consistent with the way we choose the best mv.
This slightly changes the encoding result, and the derflr set borg
test at speed 0 shows 0.027% Overall PSNR gain, 0.024% Avg PSNR
gain, and 0.043% SSIM gain.

Change-Id: Ic8ee3a6767394866d159e4f9e1c777604dd73c17
This commit is contained in:
Yunqing Wang 2015-08-04 12:16:47 -07:00
parent a3d22aa2a4
commit 726d1b841b

View File

@ -703,8 +703,8 @@ int vp9_find_best_sub_pixel_tree(const MACROBLOCK *x,
}
// Check diagonal sub-pixel position
tc = bc + (cost_array[0] < cost_array[1] ? -hstep : hstep);
tr = br + (cost_array[2] < cost_array[3] ? -hstep : hstep);
tc = bc + (cost_array[0] <= cost_array[1] ? -hstep : hstep);
tr = br + (cost_array[2] <= cost_array[3] ? -hstep : hstep);
if (tc >= minc && tc <= maxc && tr >= minr && tr <= maxr) {
const uint8_t *const pre_address = y + (tr >> 3) * y_stride + (tc >> 3);
MV this_mv = {tr, tc};