From efa9abd02891855afc40670cc874922a5c1fcb1b Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Wed, 15 Feb 2012 17:35:48 -0800 Subject: [PATCH] optmized rounding for transforms the changes are still temporary, the final transforms, especially inverse ones should take in account both accuracy, complexity, and sign-bias, which should be decided at a later time. Change-Id: I116b0c70b25f5ee324ae5713d4564f5d0aa27151 --- vp8/common/idctllm.c | 5 +++-- vp8/encoder/dct.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/vp8/common/idctllm.c b/vp8/common/idctllm.c index e21af6871..8097c4fb1 100644 --- a/vp8/common/idctllm.c +++ b/vp8/common/idctllm.c @@ -396,7 +396,8 @@ void vp8_short_idct8x8_c(short *coefs, short *block, int pitch) { for (j = 0; j < TX_DIM; j++) { - X[i * TX_DIM + j] = (int)(coefs[i * TX_DIM + j]+2)>>2; + X[i * TX_DIM + j] = (int)(coefs[i * TX_DIM + j]+1 + + (coefs[i * TX_DIM + j]<0))>>2; } } for (i = 0; i < 8; i++) @@ -487,7 +488,7 @@ void vp8_short_ihaar2x2_c(short *input, short *output, int pitch) op[i] = 0; } - op[0] = (ip[0] + ip[1] + ip[4] + ip[8])>>1; + op[0] = (ip[0] + ip[1] + ip[4] + ip[8] + 1)>>1; op[1] = (ip[0] - ip[1] + ip[4] - ip[8])>>1; op[4] = (ip[0] + ip[1] - ip[4] - ip[8])>>1; op[8] = (ip[0] - ip[1] - ip[4] + ip[8])>>1; diff --git a/vp8/encoder/dct.c b/vp8/encoder/dct.c index b537835da..b1e461e87 100644 --- a/vp8/encoder/dct.c +++ b/vp8/encoder/dct.c @@ -120,7 +120,7 @@ void vp8_short_fhaar2x2_c(short *input, short *output, int pitch) //pitch = 8 op1[i] = 0; } - op1[0]=(ip1[0] + ip1[1] + ip1[4] + ip1[8])>>1; + op1[0]=(ip1[0] + ip1[1] + ip1[4] + ip1[8] + 1)>>1; op1[1]=(ip1[0] - ip1[1] + ip1[4] - ip1[8])>>1; op1[4]=(ip1[0] + ip1[1] - ip1[4] - ip1[8])>>1; op1[8]=(ip1[0] - ip1[1] - ip1[4] + ip1[8])>>1; -- 2.40.0