ref: 94ed11d89dba858d92aed7f6aabe1ddee10f02e6
parent: d139655b144c7e5d97d5c6c93f33259625c890d7
author: Scott LaVarnway <slavarnway@google.com>
date: Wed May 1 12:25:10 EDT 2013
Reduced y_dequant, uv_dequant size Currently, only two values are used. Removed the unused values. Change-Id: Idc5b8be354d84ffc68df39ea3e45f9f50d977b35
--- a/vp9/common/vp9_onyxc_int.h
+++ b/vp9/common/vp9_onyxc_int.h
@@ -174,8 +174,8 @@
typedef struct VP9Common {
struct vpx_internal_error_info error;
- DECLARE_ALIGNED(16, int16_t, y_dequant[QINDEX_RANGE][16]);
- DECLARE_ALIGNED(16, int16_t, uv_dequant[QINDEX_RANGE][16]);
+ DECLARE_ALIGNED(16, int16_t, y_dequant[QINDEX_RANGE][2]);
+ DECLARE_ALIGNED(16, int16_t, uv_dequant[QINDEX_RANGE][2]);
int width;
int height;
--- a/vp9/decoder/vp9_decodframe.c
+++ b/vp9/decoder/vp9_decodframe.c
@@ -164,7 +164,7 @@
}
void vp9_init_dequantizer(VP9_COMMON *pc) {
- int q, i;
+ int q;
for (q = 0; q < QINDEX_RANGE; q++) {
// DC value
@@ -172,12 +172,8 @@
pc->uv_dequant[q][0] = vp9_dc_quant(q, pc->uv_dc_delta_q);
// AC values
- for (i = 1; i < 16; i++) {
- const int rc = vp9_default_zig_zag1d_4x4[i];
-
- pc->y_dequant[q][rc] = vp9_ac_quant(q, 0);
- pc->uv_dequant[q][rc] = vp9_ac_quant(q, pc->uv_ac_delta_q);
- }
+ pc->y_dequant[q][1] = vp9_ac_quant(q, 0);
+ pc->uv_dequant[q][1] = vp9_ac_quant(q, pc->uv_ac_delta_q);
}
}
--- a/vp9/encoder/vp9_quantize.c
+++ b/vp9/encoder/vp9_quantize.c
@@ -266,6 +266,7 @@
void vp9_init_quantizer(VP9_COMP *cpi) {
int i;
int quant_val;
+ int quant_uv_val;
int q;
static const int zbin_boost[16] = { 0, 0, 0, 8, 8, 8, 10, 12,
@@ -293,25 +294,26 @@
cpi->common.uv_dequant[q][0] = quant_val;
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 =;
for (i = 1; i < 16; 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);
cpi->Y1zbin[q][rc] = ROUND_POWER_OF_TWO(qzbin_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] =
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, quant_val);
- cpi->UVzbin[q][rc] = ROUND_POWER_OF_TWO(qzbin_factor * quant_val, 7);
- cpi->UVround[q][rc] = (qrounding_factor * quant_val) >> 7;
- cpi->common.uv_dequant[q][rc] = quant_val;
+ invert_quant(cpi->UVquant[q] + rc, cpi->UVquant_shift[q] + rc,
+ quant_uv_val);
+ cpi->UVzbin[q][rc] = ROUND_POWER_OF_TWO(qzbin_factor * quant_uv_val, 7);
+ cpi->UVround[q][rc] = (qrounding_factor * quant_uv_val) >> 7;
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);
}
}
}
--
⑨