Commit a78a4b45 authored by Yaowu Xu's avatar Yaowu Xu Committed by On2 (Google) Code Review
Browse files

Merge "moved scaling from dequantization to inverse transform for T8x8" into experimental

parents 721711fb 454c7abc
......@@ -211,7 +211,8 @@ void vp8_short_idct8x8_1_c(short *input, short *output, int pitch)
short *op = output;
short *orig_op = output;
int shortpitch = pitch >> 1;
a1 = ((input[0] + 4) >> 3);
//a1 = ((input[0] + 4) >> 3);
a1 = ((input[0] + 16) >> 5);
for (b = 0; b < 4; b++)
{
for (i = 0; i < 4; i++)
......@@ -228,7 +229,8 @@ void vp8_short_idct8x8_1_c(short *input, short *output, int pitch)
void vp8_dc_only_idct_add_8x8_c(short input_dc, unsigned char *pred_ptr, unsigned char *dst_ptr, int pitch, int stride)
{
int a1 = ((input_dc + 4) >> 3);
//int a1 = ((input_dc + 4) >> 3);
int a1 = ((input_dc + 16) >> 5);
int r, c, b;
unsigned char *orig_pred = pred_ptr;
unsigned char *orig_dst = dst_ptr;
......@@ -394,7 +396,7 @@ 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];
X[i * TX_DIM + j] = (int)(coefs[i * TX_DIM + j]+2)>>2;
}
}
for (i = 0; i < 8; i++)
......
......@@ -131,7 +131,7 @@ void vp8_dequantize_b_2x2_c(BLOCKD *d)
for (i = 0; i < 16; i++)
{
DQ[i] = (short)((Q[i] * DQC[i]+2)>>2);
DQ[i] = (short)((Q[i] * DQC[i]));
}
#ifdef DEC_DEBUG
if (dec_debug) {
......@@ -164,12 +164,12 @@ void vp8_dequant_idct_add_8x8_c(short *input, short *dq, unsigned char *pred,
}
#endif
input[0]= (input[0] * dq[0]+2)>>2;
input[0]= input[0] * dq[0];
// recover quantizer for 4 4x4 blocks
for (i = 1; i < 64; i++)
{
input[i]=(input[i] * dq[1]+2)>>2;
input[i]=input[i] * dq[1];
}
#ifdef DEC_DEBUG
if (dec_debug) {
......@@ -262,7 +262,7 @@ void vp8_dequant_dc_idct_add_8x8_c(short *input, short *dq, unsigned char *pred,
#endif
for (i = 1; i < 64; i++)
{
input[i]=(input[i] * dq[1]+2)>>2;
input[i]=input[i] * dq[1];
}
#ifdef DEC_DEBUG
......
......@@ -1035,7 +1035,7 @@ void optimize_b_8x8(MACROBLOCK *mb, int i, int type,
final_eob = i;
rc = vp8_default_zig_zag1d_8x8[i];
qcoeff_ptr[rc] = x;
dqcoeff_ptr[rc] = (x * dequant_ptr[rc!=0]+2)>>2;
dqcoeff_ptr[rc] = (x * dequant_ptr[rc!=0]);
next = tokens[i][best].next;
best = (best_mask[best] >> i) & 1;
......
......@@ -3411,7 +3411,6 @@ static void Pass1Encode(VP8_COMP *cpi, unsigned long *size, unsigned char *dest,
scale_and_extend_source(cpi->un_scaled_source, cpi);
vp8_first_pass(cpi);
}
//#define WRITE_RECON_BUFFER 1
#if WRITE_RECON_BUFFER
void write_cx_frame_to_file(YV12_BUFFER_CONFIG *frame, int this_frame)
......
......@@ -566,7 +566,6 @@ void vp8_regular_quantize_b_2x2(BLOCK *b, BLOCKD *d)
qcoeff_ptr[rc] = x; // write to destination
//dqcoeff_ptr[rc] = x * dequant_ptr[rc]/q2nd; // dequantized value
dqcoeff_ptr[rc] = x * dequant_ptr[rc]; // dequantized value
dqcoeff_ptr[rc] = (dqcoeff_ptr[rc]+2)>>2;
if (y)
......@@ -627,7 +626,6 @@ void vp8_regular_quantize_b_8x8(BLOCK *b, BLOCKD *d)
qcoeff_ptr[rc] = x; // write to destination
//dqcoeff_ptr[rc] = x * dequant_ptr[rc!=0] / q1st; // dequantized value
dqcoeff_ptr[rc] = x * dequant_ptr[rc!=0]; // dequantized value
dqcoeff_ptr[rc] = (dqcoeff_ptr[rc]+2)>>2;
if (y)
{
......
......@@ -777,11 +777,7 @@ static void macro_block_yrd_8x8( MACROBLOCK *mb,
mb->e_mbd.dqcoeff[192] = 0;
d = ENCODEMB_INVOKE(&rtcd->encodemb, mberr)(mb, 0) << 2;
#if CONFIG_EXTEND_QRANGE
d += ENCODEMB_INVOKE(rtcd, berr)(mb_y2->coeff, x_y2->dqcoeff)<<2;
#else
d += ENCODEMB_INVOKE(&rtcd->encodemb, berr)(mb_y2->coeff, x_y2->dqcoeff);
#endif
d += ENCODEMB_INVOKE(&rtcd->encodemb, berr)(mb_y2->coeff, x_y2->dqcoeff)<<2;
*Distortion = (d >> 4);
// rate
......
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