Code class0 using aom_read() / aom_write(). The av1_mv_class0_tree is a balanced tree with two leafs and can simply be coded as a boolean with probability class0[0]. If CLASS0_SIZE is ever changed from 1, this change will need to be reverted. Change-Id: If294dac825a5f945371092c74aa8e3f84cd962b6
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index 078cca3..da04841 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -503,7 +503,7 @@ // Integer part if (class0) { - d = aom_read_tree(r, av1_mv_class0_tree, mvcomp->class0, ACCT_STR); + d = aom_read(r, mvcomp->class0[0], ACCT_STR); mag = 0; } else { int i;
diff --git a/av1/encoder/encodemv.c b/av1/encoder/encodemv.c index 0dd574c..571e7b4 100644 --- a/av1/encoder/encodemv.c +++ b/av1/encoder/encodemv.c
@@ -23,12 +23,10 @@ static struct av1_token mv_joint_encodings[MV_JOINTS]; static struct av1_token mv_class_encodings[MV_CLASSES]; static struct av1_token mv_fp_encodings[MV_FP_SIZE]; -static struct av1_token mv_class0_encodings[CLASS0_SIZE]; void av1_entropy_mv_init(void) { av1_tokens_from_tree(mv_joint_encodings, av1_mv_joint_tree); av1_tokens_from_tree(mv_class_encodings, av1_mv_class_tree); - av1_tokens_from_tree(mv_class0_encodings, av1_mv_class0_tree); av1_tokens_from_tree(mv_fp_encodings, av1_mv_fp_tree); } @@ -53,8 +51,7 @@ // Integer bits if (mv_class == MV_CLASS_0) { - av1_write_token(w, av1_mv_class0_tree, mvcomp->class0, - &mv_class0_encodings[d]); + aom_write(w, d, mvcomp->class0[0]); } else { int i; const int n = mv_class + CLASS0_BITS - 1; // number of bits