Move vp8_strict_quantize_b inside EXACT_QUANT #define.
There is currently no inexact version of this function, so do not even compile it without EXACT_QUANT. This will prevent someone from inadvertently trying to use it without the proper EXACT_QUANT setup. Change-Id: Ia13491e0128afb281c05c9222ee5987101e4010d
This commit is contained in:
		@@ -118,6 +118,65 @@ void vp8_regular_quantize_b(BLOCK *b, BLOCKD *d)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    d->eob = eob + 1;
 | 
					    d->eob = eob + 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Perform regular quantization, with unbiased rounding and no zero bin. */
 | 
				
			||||||
 | 
					void vp8_strict_quantize_b(BLOCK *b, BLOCKD *d)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int i;
 | 
				
			||||||
 | 
					    int rc;
 | 
				
			||||||
 | 
					    int eob;
 | 
				
			||||||
 | 
					    int x;
 | 
				
			||||||
 | 
					    int y;
 | 
				
			||||||
 | 
					    int z;
 | 
				
			||||||
 | 
					    int sz;
 | 
				
			||||||
 | 
					    short *coeff_ptr;
 | 
				
			||||||
 | 
					    short *quant_ptr;
 | 
				
			||||||
 | 
					    short *quant_shift_ptr;
 | 
				
			||||||
 | 
					    short *qcoeff_ptr;
 | 
				
			||||||
 | 
					    short *dqcoeff_ptr;
 | 
				
			||||||
 | 
					    short *dequant_ptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    coeff_ptr = &b->coeff[0];
 | 
				
			||||||
 | 
					    quant_ptr = &b->quant[0][0];
 | 
				
			||||||
 | 
					    quant_shift_ptr = &b->quant_shift[0][0];
 | 
				
			||||||
 | 
					    qcoeff_ptr = d->qcoeff;
 | 
				
			||||||
 | 
					    dqcoeff_ptr = d->dqcoeff;
 | 
				
			||||||
 | 
					    dequant_ptr = &d->dequant[0][0];
 | 
				
			||||||
 | 
					    eob = - 1;
 | 
				
			||||||
 | 
					    vpx_memset(qcoeff_ptr, 0, 32);
 | 
				
			||||||
 | 
					    vpx_memset(dqcoeff_ptr, 0, 32);
 | 
				
			||||||
 | 
					    for (i = 0; i < 16; i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        int dq;
 | 
				
			||||||
 | 
					        int round;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*TODO: These arrays should be stored in zig-zag order.*/
 | 
				
			||||||
 | 
					        rc = vp8_default_zig_zag1d[i];
 | 
				
			||||||
 | 
					        z = coeff_ptr[rc];
 | 
				
			||||||
 | 
					        dq = dequant_ptr[rc];
 | 
				
			||||||
 | 
					        round = dq >> 1;
 | 
				
			||||||
 | 
					        /* Sign of z. */
 | 
				
			||||||
 | 
					        sz = -(z < 0);
 | 
				
			||||||
 | 
					        x = (z + sz) ^ sz;
 | 
				
			||||||
 | 
					        x += round;
 | 
				
			||||||
 | 
					        if (x >= dq)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            /* Quantize x. */
 | 
				
			||||||
 | 
					            y  = (((x * quant_ptr[rc]) >> 16) + x) >> quant_shift_ptr[rc];
 | 
				
			||||||
 | 
					            /* Put the sign back. */
 | 
				
			||||||
 | 
					            x = (y + sz) ^ sz;
 | 
				
			||||||
 | 
					            /* Save the coefficient and its dequantized value. */
 | 
				
			||||||
 | 
					            qcoeff_ptr[rc] = x;
 | 
				
			||||||
 | 
					            dqcoeff_ptr[rc] = x * dq;
 | 
				
			||||||
 | 
					            /* Remember the last non-zero coefficient. */
 | 
				
			||||||
 | 
					            if (y)
 | 
				
			||||||
 | 
					                eob = i;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    d->eob = eob + 1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
void vp8_fast_quantize_b_c(BLOCK *b, BLOCKD *d)
 | 
					void vp8_fast_quantize_b_c(BLOCK *b, BLOCKD *d)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -207,64 +266,6 @@ void vp8_regular_quantize_b(BLOCK *b, BLOCKD *d)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Perform regular quantization, with unbiased rounding and no zero bin. */
 | 
					 | 
				
			||||||
void vp8_strict_quantize_b(BLOCK *b, BLOCKD *d)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    int i;
 | 
					 | 
				
			||||||
    int rc;
 | 
					 | 
				
			||||||
    int eob;
 | 
					 | 
				
			||||||
    int x;
 | 
					 | 
				
			||||||
    int y;
 | 
					 | 
				
			||||||
    int z;
 | 
					 | 
				
			||||||
    int sz;
 | 
					 | 
				
			||||||
    short *coeff_ptr;
 | 
					 | 
				
			||||||
    short *quant_ptr;
 | 
					 | 
				
			||||||
    short *quant_shift_ptr;
 | 
					 | 
				
			||||||
    short *qcoeff_ptr;
 | 
					 | 
				
			||||||
    short *dqcoeff_ptr;
 | 
					 | 
				
			||||||
    short *dequant_ptr;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    coeff_ptr = &b->coeff[0];
 | 
					 | 
				
			||||||
    quant_ptr = &b->quant[0][0];
 | 
					 | 
				
			||||||
    quant_shift_ptr = &b->quant_shift[0][0];
 | 
					 | 
				
			||||||
    qcoeff_ptr = d->qcoeff;
 | 
					 | 
				
			||||||
    dqcoeff_ptr = d->dqcoeff;
 | 
					 | 
				
			||||||
    dequant_ptr = &d->dequant[0][0];
 | 
					 | 
				
			||||||
    eob = - 1;
 | 
					 | 
				
			||||||
    vpx_memset(qcoeff_ptr, 0, 32);
 | 
					 | 
				
			||||||
    vpx_memset(dqcoeff_ptr, 0, 32);
 | 
					 | 
				
			||||||
    for (i = 0; i < 16; i++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        int dq;
 | 
					 | 
				
			||||||
        int round;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /*TODO: These arrays should be stored in zig-zag order.*/
 | 
					 | 
				
			||||||
        rc = vp8_default_zig_zag1d[i];
 | 
					 | 
				
			||||||
        z = coeff_ptr[rc];
 | 
					 | 
				
			||||||
        dq = dequant_ptr[rc];
 | 
					 | 
				
			||||||
        round = dq >> 1;
 | 
					 | 
				
			||||||
        /* Sign of z. */
 | 
					 | 
				
			||||||
        sz = -(z < 0);
 | 
					 | 
				
			||||||
        x = (z + sz) ^ sz;
 | 
					 | 
				
			||||||
        x += round;
 | 
					 | 
				
			||||||
        if (x >= dq)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            /* Quantize x. */
 | 
					 | 
				
			||||||
            y  = (((x * quant_ptr[rc]) >> 16) + x) >> quant_shift_ptr[rc];
 | 
					 | 
				
			||||||
            /* Put the sign back. */
 | 
					 | 
				
			||||||
            x = (y + sz) ^ sz;
 | 
					 | 
				
			||||||
            /* Save the coefficient and its dequantized value. */
 | 
					 | 
				
			||||||
            qcoeff_ptr[rc] = x;
 | 
					 | 
				
			||||||
            dqcoeff_ptr[rc] = x * dq;
 | 
					 | 
				
			||||||
            /* Remember the last non-zero coefficient. */
 | 
					 | 
				
			||||||
            if (y)
 | 
					 | 
				
			||||||
                eob = i;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    d->eob = eob + 1;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void vp8_quantize_mby(MACROBLOCK *x)
 | 
					void vp8_quantize_mby(MACROBLOCK *x)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user