Adding vp9_read_and_apply_sign function.
Change-Id: I9951a06dbe4514cc1cf69ff4349c4e12cb4a318c
This commit is contained in:
parent
c18b2617a4
commit
4fdf8ccca2
@ -868,10 +868,8 @@ static int get_delta_q(vp9_reader *r, int *dq) {
|
||||
const int old_value = *dq;
|
||||
|
||||
if (vp9_read_bit(r)) { // Update bit
|
||||
int value = vp9_read_literal(r, 4);
|
||||
if (vp9_read_bit(r)) // Sign bit
|
||||
value = -value;
|
||||
*dq = value;
|
||||
const int value = vp9_read_literal(r, 4);
|
||||
*dq = vp9_read_and_apply_sign(r, value);
|
||||
}
|
||||
|
||||
// Trigger a quantizer update if the delta-q value has changed
|
||||
@ -1255,9 +1253,8 @@ static void setup_segmentation(VP9_COMMON *pc, MACROBLOCKD *xd, vp9_reader *r) {
|
||||
if (feature_enabled) {
|
||||
vp9_enable_segfeature(xd, i, j);
|
||||
data = vp9_decode_unsigned_max(r, vp9_seg_feature_data_max(j));
|
||||
if (vp9_is_segfeature_signed(j) && vp9_read_bit(r)) {
|
||||
data = -data;
|
||||
}
|
||||
if (vp9_is_segfeature_signed(j))
|
||||
data = vp9_read_and_apply_sign(r, data);
|
||||
}
|
||||
vp9_set_segdata(xd, i, j, data);
|
||||
}
|
||||
@ -1306,19 +1303,15 @@ static void setup_loopfilter(VP9_COMMON *pc, MACROBLOCKD *xd, vp9_reader *r) {
|
||||
|
||||
for (i = 0; i < MAX_REF_LF_DELTAS; i++) {
|
||||
if (vp9_read_bit(r)) {
|
||||
int value = vp9_read_literal(r, 6);
|
||||
if (vp9_read_bit(r))
|
||||
value = -value;
|
||||
xd->ref_lf_deltas[i] = value;
|
||||
const int value = vp9_read_literal(r, 6);
|
||||
xd->ref_lf_deltas[i] = vp9_read_and_apply_sign(r, value);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < MAX_MODE_LF_DELTAS; i++) {
|
||||
if (vp9_read_bit(r)) {
|
||||
int value = vp9_read_literal(r, 6);
|
||||
if (vp9_read_bit(r))
|
||||
value = -value;
|
||||
xd->mode_lf_deltas[i] = value;
|
||||
const int value = vp9_read_literal(r, 6);
|
||||
xd->mode_lf_deltas[i] = vp9_read_and_apply_sign(r, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -59,11 +59,6 @@ static const vp9_prob cat6_prob[15] = {
|
||||
|
||||
DECLARE_ALIGNED(16, extern const uint8_t, vp9_norm[256]);
|
||||
|
||||
static int16_t get_signed(BOOL_DECODER *br, int16_t value_to_sign) {
|
||||
return decode_bool(br, 128) ? -value_to_sign : value_to_sign;
|
||||
}
|
||||
|
||||
|
||||
#define INCREMENT_COUNT(token) \
|
||||
do { \
|
||||
coef_counts[type][ref][get_coef_band(scan, txfm_size, c)] \
|
||||
@ -76,7 +71,7 @@ static int16_t get_signed(BOOL_DECODER *br, int16_t value_to_sign) {
|
||||
#if CONFIG_CODE_NONZEROCOUNT
|
||||
#define WRITE_COEF_CONTINUE(val, token) \
|
||||
{ \
|
||||
qcoeff_ptr[scan[c]] = get_signed(br, val); \
|
||||
qcoeff_ptr[scan[c]] = vp9_read_and_apply_sign(br, val); \
|
||||
INCREMENT_COUNT(token); \
|
||||
c++; \
|
||||
nzc++; \
|
||||
@ -85,7 +80,7 @@ static int16_t get_signed(BOOL_DECODER *br, int16_t value_to_sign) {
|
||||
#else
|
||||
#define WRITE_COEF_CONTINUE(val, token) \
|
||||
{ \
|
||||
qcoeff_ptr[scan[c]] = get_signed(br, val); \
|
||||
qcoeff_ptr[scan[c]] = vp9_read_and_apply_sign(br, val); \
|
||||
INCREMENT_COUNT(token); \
|
||||
c++; \
|
||||
continue; \
|
||||
|
@ -21,6 +21,7 @@ typedef BOOL_DECODER vp9_reader;
|
||||
#define vp9_read_literal decode_value
|
||||
#define vp9_read_bit(r) vp9_read(r, vp9_prob_half)
|
||||
#define vp9_read_prob(r) ((vp9_prob)vp9_read_literal(r, 8))
|
||||
#define vp9_read_and_apply_sign(r, value) (vp9_read_bit(r) ? -(value) : (value))
|
||||
|
||||
// Intent of tree data structure is to make decoding trivial.
|
||||
static int treed_read(vp9_reader *const r, /* !!! must return a 0 or 1 !!! */
|
||||
|
Loading…
x
Reference in New Issue
Block a user