ref: df4e79f7f7b1c5f62fdb80575bab6ce1b2be7928
parent: ec670bc5584674ebd37801cf5d1e0ae3540b01b7
author: Paul Wilkins <paulwilkins@google.com>
date: Fri Dec 16 05:23:01 EST 2011
Extend to 256 Q steps. This commit extends the number of Q steps to 256 from 128. The q_trans[] array has been altered to distribute available Q index values (using the current 64 steps available as input parameters) evenly across the available range. This is coupled with the fact that each Q step where possible now equates to a fixed % change in the quantizer. This may want refinement later especially in terms of the granularity at the high quality end but is a reasonable starting point. Change-Id: I2aaa6874fa10ce05c958dd182947ce39f6f1eecb
--- a/vp8/common/onyxc_int.h
+++ b/vp8/common/onyxc_int.h
@@ -33,13 +33,13 @@
#define MINQ 0
-/*#if CONFIG_EXTEND_QRANGE
+#if CONFIG_EXTEND_QRANGE
#define MAXQ 255
#define QINDEX_BITS 8
-#else*/
+#else
#define MAXQ 127
#define QINDEX_BITS 7
-//#endif
+#endif
#define QINDEX_RANGE (MAXQ + 1)
--- a/vp8/common/quant_common.c
+++ b/vp8/common/quant_common.c
@@ -89,7 +89,8 @@
{
ac_qlookup[i] = current_val;
//current_val = (int)((double)current_val * 1.045);
- current_val = (int)((double)current_val * 1.04);
+ //current_val = (int)((double)current_val * 1.04);
+ current_val = (int)((double)current_val * 1.018);
if ( current_val == last_val )
current_val++;
last_val = current_val;
@@ -99,8 +100,8 @@
dc_qlookup[i] = (0.000000305 * ac_val * ac_val * ac_val) +
(-0.00065 * ac_val * ac_val) +
(0.9 * ac_val) + 0.5;
- if ( dc_qlookup[i] > dc_max )
- dc_qlookup[i] = dc_max;
+ //if ( dc_qlookup[i] > dc_max )
+ // dc_qlookup[i] = dc_max;
if ( dc_qlookup[i] < ACDC_MIN )
dc_qlookup[i] = ACDC_MIN;
}
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -1857,7 +1857,7 @@
//
// Table that converts 0-63 Q range values passed in outside to the Qindex
// range used internally.
-/*#if CONFIG_EXTEND_QRANGE
+#if CONFIG_EXTEND_QRANGE
static const int q_trans[] =
{
0, 4, 8, 12, 16, 20, 24, 28,
@@ -1869,7 +1869,7 @@
192, 196, 200, 204, 208, 212, 216, 220,
224, 228, 232, 236, 240, 244, 249, 255,
};
-#else*/
+#else
static const int q_trans[] =
{
0, 1, 2, 3, 4, 5, 7, 8,
@@ -1881,7 +1881,7 @@
82, 85, 88, 91, 94, 97, 100, 103,
106, 109, 112, 115, 118, 121, 124, 127,
};
-//#endif
+#endif
int vp8_reverse_trans(int x)
{
--
⑨