summaryrefslogtreecommitdiff
path: root/vp9/decoder
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2013-04-04 12:10:39 -0700
committerDmitry Kovalev <dkovalev@google.com>2013-04-04 12:10:39 -0700
commit52128c5894b77dcde710aa606db6c3e3396fa1e9 (patch)
treeb11368fe8ac3846d483a3d925318d88740712509 /vp9/decoder
parentccc0577ab27a5eee2603fa5063110295c8dba7df (diff)
downloadlibvpx-52128c5894b77dcde710aa606db6c3e3396fa1e9.tar
libvpx-52128c5894b77dcde710aa606db6c3e3396fa1e9.tar.gz
libvpx-52128c5894b77dcde710aa606db6c3e3396fa1e9.tar.bz2
libvpx-52128c5894b77dcde710aa606db6c3e3396fa1e9.zip
Simplifying get_delta_q function.
Change-Id: I3a1e9cc5c3ed5be01ff75a84a6c82ec02c75af9c
Diffstat (limited to 'vp9/decoder')
-rw-r--r--vp9/decoder/vp9_decodframe.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c
index 8f634ddcf..b17ba290e 100644
--- a/vp9/decoder/vp9_decodframe.c
+++ b/vp9/decoder/vp9_decodframe.c
@@ -901,22 +901,18 @@ static void decode_mb(VP9D_COMP *pbi, MACROBLOCKD *xd,
#endif
}
+static int get_delta_q(vp9_reader *r, int *dq) {
+ const int old_value = *dq;
-static int get_delta_q(vp9_reader *bc, int prev, int *q_update) {
- int ret_val = 0;
-
- if (vp9_read_bit(bc)) {
- ret_val = vp9_read_literal(bc, 4);
-
- if (vp9_read_bit(bc))
- ret_val = -ret_val;
+ 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;
}
// Trigger a quantizer update if the delta-q value has changed
- if (ret_val != prev)
- *q_update = 1;
-
- return ret_val;
+ return old_value != *dq;
}
#ifdef PACKET_TESTING
@@ -1716,9 +1712,9 @@ int vp9_decode_frame(VP9D_COMP *pbi, const uint8_t **p_data_end) {
pc->base_qindex = vp9_read_literal(&header_bc, QINDEX_BITS);
// AC 1st order Q = default
- pc->y1dc_delta_q = get_delta_q(&header_bc, pc->y1dc_delta_q, &q_update);
- pc->uvdc_delta_q = get_delta_q(&header_bc, pc->uvdc_delta_q, &q_update);
- pc->uvac_delta_q = get_delta_q(&header_bc, pc->uvac_delta_q, &q_update);
+ q_update = get_delta_q(&header_bc, &pc->y1dc_delta_q) |
+ get_delta_q(&header_bc, &pc->uvdc_delta_q) |
+ get_delta_q(&header_bc, &pc->uvac_delta_q);
if (q_update)
vp9_init_de_quantizer(pbi);