Merge "Reduced y_dequant, uv_dequant size" into experimental
This commit is contained in:
		@@ -168,8 +168,8 @@ typedef enum {
 | 
				
			|||||||
typedef struct VP9Common {
 | 
					typedef struct VP9Common {
 | 
				
			||||||
  struct vpx_internal_error_info  error;
 | 
					  struct vpx_internal_error_info  error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  DECLARE_ALIGNED(16, int16_t, y_dequant[QINDEX_RANGE][16]);
 | 
					  DECLARE_ALIGNED(16, int16_t, y_dequant[QINDEX_RANGE][2]);
 | 
				
			||||||
  DECLARE_ALIGNED(16, int16_t, uv_dequant[QINDEX_RANGE][16]);
 | 
					  DECLARE_ALIGNED(16, int16_t, uv_dequant[QINDEX_RANGE][2]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  int width;
 | 
					  int width;
 | 
				
			||||||
  int height;
 | 
					  int height;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -164,7 +164,7 @@ static vp9_prob read_prob_diff_update(vp9_reader *r, int oldp) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void vp9_init_dequantizer(VP9_COMMON *pc) {
 | 
					void vp9_init_dequantizer(VP9_COMMON *pc) {
 | 
				
			||||||
  int q, i;
 | 
					  int q;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (q = 0; q < QINDEX_RANGE; q++) {
 | 
					  for (q = 0; q < QINDEX_RANGE; q++) {
 | 
				
			||||||
    // DC value
 | 
					    // DC value
 | 
				
			||||||
@@ -172,12 +172,8 @@ void vp9_init_dequantizer(VP9_COMMON *pc) {
 | 
				
			|||||||
    pc->uv_dequant[q][0] = vp9_dc_quant(q, pc->uv_dc_delta_q);
 | 
					    pc->uv_dequant[q][0] = vp9_dc_quant(q, pc->uv_dc_delta_q);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // AC values
 | 
					    // AC values
 | 
				
			||||||
    for (i = 1; i < 16; i++) {
 | 
					    pc->y_dequant[q][1] = vp9_ac_quant(q, 0);
 | 
				
			||||||
      const int rc = vp9_default_zig_zag1d_4x4[i];
 | 
					    pc->uv_dequant[q][1] = vp9_ac_quant(q, pc->uv_ac_delta_q);
 | 
				
			||||||
 | 
					 | 
				
			||||||
      pc->y_dequant[q][rc] = vp9_ac_quant(q, 0);
 | 
					 | 
				
			||||||
      pc->uv_dequant[q][rc] = vp9_ac_quant(q, pc->uv_ac_delta_q);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -266,6 +266,7 @@ static void invert_quant(int16_t *quant, uint8_t *shift, int d) {
 | 
				
			|||||||
void vp9_init_quantizer(VP9_COMP *cpi) {
 | 
					void vp9_init_quantizer(VP9_COMP *cpi) {
 | 
				
			||||||
  int i;
 | 
					  int i;
 | 
				
			||||||
  int quant_val;
 | 
					  int quant_val;
 | 
				
			||||||
 | 
					  int quant_uv_val;
 | 
				
			||||||
  int q;
 | 
					  int q;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static const int zbin_boost[16] = { 0,  0,  0,  8,  8,  8, 10, 12,
 | 
					  static const int zbin_boost[16] = { 0,  0,  0,  8,  8,  8, 10, 12,
 | 
				
			||||||
@@ -293,25 +294,26 @@ void vp9_init_quantizer(VP9_COMP *cpi) {
 | 
				
			|||||||
    cpi->common.uv_dequant[q][0] = quant_val;
 | 
					    cpi->common.uv_dequant[q][0] = quant_val;
 | 
				
			||||||
    cpi->zrun_zbin_boost_uv[q][0] = (quant_val * zbin_boost[0]) >> 7;
 | 
					    cpi->zrun_zbin_boost_uv[q][0] = (quant_val * zbin_boost[0]) >> 7;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    quant_val = vp9_ac_quant(q, 0);
 | 
				
			||||||
 | 
					    cpi->common.y_dequant[q][1] = quant_val;
 | 
				
			||||||
 | 
					    quant_uv_val = vp9_ac_quant(q, cpi->common.uv_ac_delta_q);
 | 
				
			||||||
 | 
					    cpi->common.uv_dequant[q][1] = quant_uv_val;
 | 
				
			||||||
    // all the 4x4 ac values =;
 | 
					    // all the 4x4 ac values =;
 | 
				
			||||||
    for (i = 1; i < 16; i++) {
 | 
					    for (i = 1; i < 16; i++) {
 | 
				
			||||||
      int rc = vp9_default_zig_zag1d_4x4[i];
 | 
					      int rc = vp9_default_zig_zag1d_4x4[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      quant_val = vp9_ac_quant(q, 0);
 | 
					 | 
				
			||||||
      invert_quant(cpi->Y1quant[q] + rc, cpi->Y1quant_shift[q] + rc, quant_val);
 | 
					      invert_quant(cpi->Y1quant[q] + rc, cpi->Y1quant_shift[q] + rc, quant_val);
 | 
				
			||||||
      cpi->Y1zbin[q][rc] = ROUND_POWER_OF_TWO(qzbin_factor * quant_val, 7);
 | 
					      cpi->Y1zbin[q][rc] = ROUND_POWER_OF_TWO(qzbin_factor * quant_val, 7);
 | 
				
			||||||
      cpi->Y1round[q][rc] = (qrounding_factor * quant_val) >> 7;
 | 
					      cpi->Y1round[q][rc] = (qrounding_factor * quant_val) >> 7;
 | 
				
			||||||
      cpi->common.y_dequant[q][rc] = quant_val;
 | 
					 | 
				
			||||||
      cpi->zrun_zbin_boost_y1[q][i] =
 | 
					      cpi->zrun_zbin_boost_y1[q][i] =
 | 
				
			||||||
          ROUND_POWER_OF_TWO(quant_val * zbin_boost[i], 7);
 | 
					          ROUND_POWER_OF_TWO(quant_val * zbin_boost[i], 7);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      quant_val = vp9_ac_quant(q, cpi->common.uv_ac_delta_q);
 | 
					      invert_quant(cpi->UVquant[q] + rc, cpi->UVquant_shift[q] + rc,
 | 
				
			||||||
      invert_quant(cpi->UVquant[q] + rc, cpi->UVquant_shift[q] + rc, quant_val);
 | 
					        quant_uv_val);
 | 
				
			||||||
      cpi->UVzbin[q][rc] = ROUND_POWER_OF_TWO(qzbin_factor * quant_val, 7);
 | 
					      cpi->UVzbin[q][rc] = ROUND_POWER_OF_TWO(qzbin_factor * quant_uv_val, 7);
 | 
				
			||||||
      cpi->UVround[q][rc] = (qrounding_factor * quant_val) >> 7;
 | 
					      cpi->UVround[q][rc] = (qrounding_factor * quant_uv_val) >> 7;
 | 
				
			||||||
      cpi->common.uv_dequant[q][rc] = quant_val;
 | 
					 | 
				
			||||||
      cpi->zrun_zbin_boost_uv[q][i] =
 | 
					      cpi->zrun_zbin_boost_uv[q][i] =
 | 
				
			||||||
          ROUND_POWER_OF_TWO(quant_val * zbin_boost[i], 7);
 | 
					          ROUND_POWER_OF_TWO(quant_uv_val * zbin_boost[i], 7);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user