Merge "Renaming vp9_token_struct to vp9_token and removing previous typedef." into experimental

This commit is contained in:
Dmitry Kovalev 2013-04-14 04:31:39 -07:00 committed by Gerrit Code Review
commit 399a6cbcde
11 changed files with 67 additions and 77 deletions

View File

@ -386,7 +386,7 @@ const vp9_tree_index vp9_coef_tree[ 22] = /* corresponding _CONTEXT_NODEs */
-DCT_VAL_CATEGORY5, -DCT_VAL_CATEGORY6 /* 10 = CAT_FIVE */ -DCT_VAL_CATEGORY5, -DCT_VAL_CATEGORY6 /* 10 = CAT_FIVE */
}; };
struct vp9_token_struct vp9_coef_encodings[MAX_ENTROPY_TOKENS]; struct vp9_token vp9_coef_encodings[MAX_ENTROPY_TOKENS];
/* Trees for extra bits. Probabilities are constant and /* Trees for extra bits. Probabilities are constant and
do not depend on previously encoded bits */ do not depend on previously encoded bits */
@ -408,7 +408,7 @@ const vp9_tree_index vp9_nzc4x4_tree[2 * NZC4X4_NODES] = {
-NZC_3TO4, 8, -NZC_3TO4, 8,
-NZC_5TO8, -NZC_9TO16, -NZC_5TO8, -NZC_9TO16,
}; };
struct vp9_token_struct vp9_nzc4x4_encodings[NZC4X4_TOKENS]; struct vp9_token vp9_nzc4x4_encodings[NZC4X4_TOKENS];
const vp9_tree_index vp9_nzc8x8_tree[2 * NZC8X8_NODES] = { const vp9_tree_index vp9_nzc8x8_tree[2 * NZC8X8_NODES] = {
-NZC_0, 2, -NZC_0, 2,
@ -419,7 +419,7 @@ const vp9_tree_index vp9_nzc8x8_tree[2 * NZC8X8_NODES] = {
-NZC_9TO16, 12, -NZC_9TO16, 12,
-NZC_17TO32, -NZC_33TO64, -NZC_17TO32, -NZC_33TO64,
}; };
struct vp9_token_struct vp9_nzc8x8_encodings[NZC8X8_TOKENS]; struct vp9_token vp9_nzc8x8_encodings[NZC8X8_TOKENS];
const vp9_tree_index vp9_nzc16x16_tree[2 * NZC16X16_NODES] = { const vp9_tree_index vp9_nzc16x16_tree[2 * NZC16X16_NODES] = {
-NZC_0, 2, -NZC_0, 2,
@ -432,7 +432,7 @@ const vp9_tree_index vp9_nzc16x16_tree[2 * NZC16X16_NODES] = {
-NZC_33TO64, 16, -NZC_33TO64, 16,
-NZC_65TO128, -NZC_129TO256, -NZC_65TO128, -NZC_129TO256,
}; };
struct vp9_token_struct vp9_nzc16x16_encodings[NZC16X16_TOKENS]; struct vp9_token vp9_nzc16x16_encodings[NZC16X16_TOKENS];
const vp9_tree_index vp9_nzc32x32_tree[2 * NZC32X32_NODES] = { const vp9_tree_index vp9_nzc32x32_tree[2 * NZC32X32_NODES] = {
-NZC_0, 2, -NZC_0, 2,
@ -447,7 +447,7 @@ const vp9_tree_index vp9_nzc32x32_tree[2 * NZC32X32_NODES] = {
-NZC_129TO256, 20, -NZC_129TO256, 20,
-NZC_257TO512, -NZC_513TO1024, -NZC_257TO512, -NZC_513TO1024,
}; };
struct vp9_token_struct vp9_nzc32x32_encodings[NZC32X32_TOKENS]; struct vp9_token vp9_nzc32x32_encodings[NZC32X32_TOKENS];
const int vp9_extranzcbits[NZC32X32_TOKENS] = { const int vp9_extranzcbits[NZC32X32_TOKENS] = {
0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

View File

@ -40,7 +40,7 @@ extern const int vp9_i8x8_block[4];
extern const vp9_tree_index vp9_coef_tree[]; extern const vp9_tree_index vp9_coef_tree[];
extern struct vp9_token_struct vp9_coef_encodings[MAX_ENTROPY_TOKENS]; extern struct vp9_token vp9_coef_encodings[MAX_ENTROPY_TOKENS];
typedef struct { typedef struct {
vp9_tree_p tree; vp9_tree_p tree;
@ -215,10 +215,10 @@ extern const vp9_tree_index vp9_nzc16x16_tree[];
extern const vp9_tree_index vp9_nzc32x32_tree[]; extern const vp9_tree_index vp9_nzc32x32_tree[];
/* nzc encodings */ /* nzc encodings */
extern struct vp9_token_struct vp9_nzc4x4_encodings[NZC4X4_TOKENS]; extern struct vp9_token vp9_nzc4x4_encodings[NZC4X4_TOKENS];
extern struct vp9_token_struct vp9_nzc8x8_encodings[NZC8X8_TOKENS]; extern struct vp9_token vp9_nzc8x8_encodings[NZC8X8_TOKENS];
extern struct vp9_token_struct vp9_nzc16x16_encodings[NZC16X16_TOKENS]; extern struct vp9_token vp9_nzc16x16_encodings[NZC16X16_TOKENS];
extern struct vp9_token_struct vp9_nzc32x32_encodings[NZC32X32_TOKENS]; extern struct vp9_token vp9_nzc32x32_encodings[NZC32X32_TOKENS];
#define codenzc(x) (\ #define codenzc(x) (\
(x) <= 3 ? (x) : (x) <= 4 ? 3 : (x) <= 8 ? 4 : \ (x) <= 3 ? (x) : (x) <= 4 ? 3 : (x) <= 8 ? 4 : \

View File

@ -283,19 +283,19 @@ const vp9_tree_index vp9_sub_mv_ref_tree[6] = {
-ZERO4X4, -NEW4X4 -ZERO4X4, -NEW4X4
}; };
struct vp9_token_struct vp9_bmode_encodings[VP9_NKF_BINTRAMODES]; struct vp9_token vp9_bmode_encodings[VP9_NKF_BINTRAMODES];
struct vp9_token_struct vp9_kf_bmode_encodings[VP9_KF_BINTRAMODES]; struct vp9_token vp9_kf_bmode_encodings[VP9_KF_BINTRAMODES];
struct vp9_token_struct vp9_ymode_encodings[VP9_YMODES]; struct vp9_token vp9_ymode_encodings[VP9_YMODES];
struct vp9_token_struct vp9_sb_ymode_encodings[VP9_I32X32_MODES]; struct vp9_token vp9_sb_ymode_encodings[VP9_I32X32_MODES];
struct vp9_token_struct vp9_sb_kf_ymode_encodings[VP9_I32X32_MODES]; struct vp9_token vp9_sb_kf_ymode_encodings[VP9_I32X32_MODES];
struct vp9_token_struct vp9_kf_ymode_encodings[VP9_YMODES]; struct vp9_token vp9_kf_ymode_encodings[VP9_YMODES];
struct vp9_token_struct vp9_uv_mode_encodings[VP9_UV_MODES]; struct vp9_token vp9_uv_mode_encodings[VP9_UV_MODES];
struct vp9_token_struct vp9_i8x8_mode_encodings[VP9_I8X8_MODES]; struct vp9_token vp9_i8x8_mode_encodings[VP9_I8X8_MODES];
struct vp9_token_struct vp9_mbsplit_encodings[VP9_NUMMBSPLITS]; struct vp9_token vp9_mbsplit_encodings[VP9_NUMMBSPLITS];
struct vp9_token_struct vp9_mv_ref_encoding_array[VP9_MVREFS]; struct vp9_token vp9_mv_ref_encoding_array[VP9_MVREFS];
struct vp9_token_struct vp9_sb_mv_ref_encoding_array[VP9_MVREFS]; struct vp9_token vp9_sb_mv_ref_encoding_array[VP9_MVREFS];
struct vp9_token_struct vp9_sub_mv_ref_encoding_array[VP9_SUBMVREFS]; struct vp9_token vp9_sub_mv_ref_encoding_array[VP9_SUBMVREFS];
void vp9_init_mbmode_probs(VP9_COMMON *x) { void vp9_init_mbmode_probs(VP9_COMMON *x) {
unsigned int bct [VP9_YMODES] [2]; /* num Ymodes > num UV modes */ unsigned int bct [VP9_YMODES] [2]; /* num Ymodes > num UV modes */
@ -379,7 +379,7 @@ const vp9_tree_index vp9_switchable_interp_tree[VP9_SWITCHABLE_FILTERS*2-2] = {
-0, 2, -0, 2,
-1, -2 -1, -2
}; };
struct vp9_token_struct vp9_switchable_interp_encodings[VP9_SWITCHABLE_FILTERS]; struct vp9_token vp9_switchable_interp_encodings[VP9_SWITCHABLE_FILTERS];
#if CONFIG_ENABLE_6TAP #if CONFIG_ENABLE_6TAP
const INTERPOLATIONFILTERTYPE vp9_switchable_interp[VP9_SWITCHABLE_FILTERS] = { const INTERPOLATIONFILTERTYPE vp9_switchable_interp[VP9_SWITCHABLE_FILTERS] = {
SIXTAP, EIGHTTAP, EIGHTTAP_SHARP}; SIXTAP, EIGHTTAP, EIGHTTAP_SHARP};
@ -397,7 +397,7 @@ const vp9_prob vp9_switchable_interp_prob [VP9_SWITCHABLE_FILTERS+1]
const vp9_tree_index vp9_switchable_interp_tree[VP9_SWITCHABLE_FILTERS*2-2] = { const vp9_tree_index vp9_switchable_interp_tree[VP9_SWITCHABLE_FILTERS*2-2] = {
-0, -1, -0, -1,
}; };
struct vp9_token_struct vp9_switchable_interp_encodings[VP9_SWITCHABLE_FILTERS]; struct vp9_token vp9_switchable_interp_encodings[VP9_SWITCHABLE_FILTERS];
const vp9_prob vp9_switchable_interp_prob [VP9_SWITCHABLE_FILTERS+1] const vp9_prob vp9_switchable_interp_prob [VP9_SWITCHABLE_FILTERS+1]
[VP9_SWITCHABLE_FILTERS-1] = { [VP9_SWITCHABLE_FILTERS-1] = {
{248}, {248},

View File

@ -54,21 +54,21 @@ extern const vp9_tree_index vp9_mv_ref_tree[];
extern const vp9_tree_index vp9_sb_mv_ref_tree[]; extern const vp9_tree_index vp9_sb_mv_ref_tree[];
extern const vp9_tree_index vp9_sub_mv_ref_tree[]; extern const vp9_tree_index vp9_sub_mv_ref_tree[];
extern struct vp9_token_struct vp9_bmode_encodings[VP9_NKF_BINTRAMODES]; extern struct vp9_token vp9_bmode_encodings[VP9_NKF_BINTRAMODES];
extern struct vp9_token_struct vp9_kf_bmode_encodings[VP9_KF_BINTRAMODES]; extern struct vp9_token vp9_kf_bmode_encodings[VP9_KF_BINTRAMODES];
extern struct vp9_token_struct vp9_ymode_encodings[VP9_YMODES]; extern struct vp9_token vp9_ymode_encodings[VP9_YMODES];
extern struct vp9_token_struct vp9_sb_ymode_encodings[VP9_I32X32_MODES]; extern struct vp9_token vp9_sb_ymode_encodings[VP9_I32X32_MODES];
extern struct vp9_token_struct vp9_sb_kf_ymode_encodings[VP9_I32X32_MODES]; extern struct vp9_token vp9_sb_kf_ymode_encodings[VP9_I32X32_MODES];
extern struct vp9_token_struct vp9_kf_ymode_encodings[VP9_YMODES]; extern struct vp9_token vp9_kf_ymode_encodings[VP9_YMODES];
extern struct vp9_token_struct vp9_i8x8_mode_encodings[VP9_I8X8_MODES]; extern struct vp9_token vp9_i8x8_mode_encodings[VP9_I8X8_MODES];
extern struct vp9_token_struct vp9_uv_mode_encodings[VP9_UV_MODES]; extern struct vp9_token vp9_uv_mode_encodings[VP9_UV_MODES];
extern struct vp9_token_struct vp9_mbsplit_encodings[VP9_NUMMBSPLITS]; extern struct vp9_token vp9_mbsplit_encodings[VP9_NUMMBSPLITS];
/* Inter mode values do not start at zero */ /* Inter mode values do not start at zero */
extern struct vp9_token_struct vp9_mv_ref_encoding_array[VP9_MVREFS]; extern struct vp9_token vp9_mv_ref_encoding_array[VP9_MVREFS];
extern struct vp9_token_struct vp9_sb_mv_ref_encoding_array[VP9_MVREFS]; extern struct vp9_token vp9_sb_mv_ref_encoding_array[VP9_MVREFS];
extern struct vp9_token_struct vp9_sub_mv_ref_encoding_array[VP9_SUBMVREFS]; extern struct vp9_token vp9_sub_mv_ref_encoding_array[VP9_SUBMVREFS];
void vp9_entropy_mode_init(void); void vp9_entropy_mode_init(void);
@ -107,8 +107,7 @@ extern const int vp9_is_interpolating_filter[SWITCHABLE + 1];
extern const vp9_tree_index vp9_switchable_interp_tree extern const vp9_tree_index vp9_switchable_interp_tree
[2 * (VP9_SWITCHABLE_FILTERS - 1)]; [2 * (VP9_SWITCHABLE_FILTERS - 1)];
extern struct vp9_token_struct vp9_switchable_interp_encodings extern struct vp9_token vp9_switchable_interp_encodings[VP9_SWITCHABLE_FILTERS];
[VP9_SWITCHABLE_FILTERS];
extern const vp9_prob vp9_switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1] extern const vp9_prob vp9_switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1]
[VP9_SWITCHABLE_FILTERS - 1]; [VP9_SWITCHABLE_FILTERS - 1];

View File

@ -33,7 +33,7 @@ const vp9_tree_index vp9_mv_joint_tree[2 * MV_JOINTS - 2] = {
-MV_JOINT_HNZVZ, 4, -MV_JOINT_HNZVZ, 4,
-MV_JOINT_HZVNZ, -MV_JOINT_HNZVNZ -MV_JOINT_HZVNZ, -MV_JOINT_HNZVNZ
}; };
struct vp9_token_struct vp9_mv_joint_encodings[MV_JOINTS]; struct vp9_token vp9_mv_joint_encodings[MV_JOINTS];
const vp9_tree_index vp9_mv_class_tree[2 * MV_CLASSES - 2] = { const vp9_tree_index vp9_mv_class_tree[2 * MV_CLASSES - 2] = {
-MV_CLASS_0, 2, -MV_CLASS_0, 2,
@ -47,19 +47,19 @@ const vp9_tree_index vp9_mv_class_tree[2 * MV_CLASSES - 2] = {
-MV_CLASS_7, -MV_CLASS_8, -MV_CLASS_7, -MV_CLASS_8,
-MV_CLASS_9, -MV_CLASS_10, -MV_CLASS_9, -MV_CLASS_10,
}; };
struct vp9_token_struct vp9_mv_class_encodings[MV_CLASSES]; struct vp9_token vp9_mv_class_encodings[MV_CLASSES];
const vp9_tree_index vp9_mv_class0_tree [2 * CLASS0_SIZE - 2] = { const vp9_tree_index vp9_mv_class0_tree [2 * CLASS0_SIZE - 2] = {
-0, -1, -0, -1,
}; };
struct vp9_token_struct vp9_mv_class0_encodings[CLASS0_SIZE]; struct vp9_token vp9_mv_class0_encodings[CLASS0_SIZE];
const vp9_tree_index vp9_mv_fp_tree [2 * 4 - 2] = { const vp9_tree_index vp9_mv_fp_tree [2 * 4 - 2] = {
-0, 2, -0, 2,
-1, 4, -1, 4,
-2, -3 -2, -3
}; };
struct vp9_token_struct vp9_mv_fp_encodings[4]; struct vp9_token vp9_mv_fp_encodings[4];
const nmv_context vp9_default_nmv_context = { const nmv_context vp9_default_nmv_context = {
{32, 64, 96}, {32, 64, 96},

View File

@ -46,7 +46,7 @@ typedef enum {
} MV_JOINT_TYPE; } MV_JOINT_TYPE;
extern const vp9_tree_index vp9_mv_joint_tree[2 * MV_JOINTS - 2]; extern const vp9_tree_index vp9_mv_joint_tree[2 * MV_JOINTS - 2];
extern struct vp9_token_struct vp9_mv_joint_encodings [MV_JOINTS]; extern struct vp9_token vp9_mv_joint_encodings[MV_JOINTS];
/* Symbols for coding magnitude class of nonzero components */ /* Symbols for coding magnitude class of nonzero components */
#define MV_CLASSES 11 #define MV_CLASSES 11
@ -65,7 +65,7 @@ typedef enum {
} MV_CLASS_TYPE; } MV_CLASS_TYPE;
extern const vp9_tree_index vp9_mv_class_tree[2 * MV_CLASSES - 2]; extern const vp9_tree_index vp9_mv_class_tree[2 * MV_CLASSES - 2];
extern struct vp9_token_struct vp9_mv_class_encodings [MV_CLASSES]; extern struct vp9_token vp9_mv_class_encodings[MV_CLASSES];
#define CLASS0_BITS 1 /* bits at integer precision for class 0 */ #define CLASS0_BITS 1 /* bits at integer precision for class 0 */
#define CLASS0_SIZE (1 << CLASS0_BITS) #define CLASS0_SIZE (1 << CLASS0_BITS)
@ -76,10 +76,10 @@ extern struct vp9_token_struct vp9_mv_class_encodings [MV_CLASSES];
#define MV_VALS ((MV_MAX << 1) + 1) #define MV_VALS ((MV_MAX << 1) + 1)
extern const vp9_tree_index vp9_mv_class0_tree[2 * CLASS0_SIZE - 2]; extern const vp9_tree_index vp9_mv_class0_tree[2 * CLASS0_SIZE - 2];
extern struct vp9_token_struct vp9_mv_class0_encodings[CLASS0_SIZE]; extern struct vp9_token vp9_mv_class0_encodings[CLASS0_SIZE];
extern const vp9_tree_index vp9_mv_fp_tree[2 * 4 - 2]; extern const vp9_tree_index vp9_mv_fp_tree[2 * 4 - 2];
extern struct vp9_token_struct vp9_mv_fp_encodings[4]; extern struct vp9_token vp9_mv_fp_encodings[4];
typedef struct { typedef struct {
vp9_prob sign; vp9_prob sign;

View File

@ -18,32 +18,27 @@
#include "vp9/common/vp9_treecoder.h" #include "vp9/common/vp9_treecoder.h"
static void tree2tok( static void tree2tok(struct vp9_token *const p, vp9_tree t,
struct vp9_token_struct *const p, int i, int v, int l) {
vp9_tree t,
int i,
int v,
int L
) {
v += v; v += v;
++L; ++l;
do { do {
const vp9_tree_index j = t[i++]; const vp9_tree_index j = t[i++];
if (j <= 0) { if (j <= 0) {
p[-j].value = v; p[-j].value = v;
p[-j].Len = L; p[-j].len = l;
} else } else
tree2tok(p, t, j, v, L); tree2tok(p, t, j, v, l);
} while (++v & 1); } while (++v & 1);
} }
void vp9_tokens_from_tree(struct vp9_token_struct *p, vp9_tree t) { void vp9_tokens_from_tree(struct vp9_token *p, vp9_tree t) {
tree2tok(p, t, 0, 0, 0); tree2tok(p, t, 0, 0, 0);
} }
void vp9_tokens_from_tree_offset(struct vp9_token_struct *p, vp9_tree t, void vp9_tokens_from_tree_offset(struct vp9_token *p, vp9_tree t,
int offset) { int offset) {
tree2tok(p - offset, t, 0, 0, 0); tree2tok(p - offset, t, 0, 0, 0);
} }

View File

@ -31,16 +31,15 @@ typedef int8_t vp9_tree_index;
typedef const vp9_tree_index vp9_tree[], *vp9_tree_p; typedef const vp9_tree_index vp9_tree[], *vp9_tree_p;
typedef const struct vp9_token_struct { struct vp9_token {
int value; int value;
int Len; int len;
} vp9_token; };
/* Construct encoding array from tree. */ /* Construct encoding array from tree. */
void vp9_tokens_from_tree(struct vp9_token_struct *, vp9_tree); void vp9_tokens_from_tree(struct vp9_token*, vp9_tree);
void vp9_tokens_from_tree_offset(struct vp9_token_struct *, vp9_tree, void vp9_tokens_from_tree_offset(struct vp9_token*, vp9_tree, int offset);
int offset);
/* Convert array of token occurrence counts into a table of probabilities /* Convert array of token occurrence counts into a table of probabilities
for the associated binary encoding tree. Also writes count of branches for the associated binary encoding tree. Also writes count of branches

View File

@ -118,7 +118,7 @@ static int prob_diff_update_cost(vp9_prob newp, vp9_prob oldp) {
static void update_mode( static void update_mode(
vp9_writer *const bc, vp9_writer *const bc,
int n, int n,
vp9_token tok [/* n */], const struct vp9_token tok[/* n */],
vp9_tree tree, vp9_tree tree,
vp9_prob Pnew [/* n-1 */], vp9_prob Pnew [/* n-1 */],
vp9_prob Pcur [/* n-1 */], vp9_prob Pcur [/* n-1 */],
@ -458,12 +458,12 @@ static void pack_mb_tokens(vp9_writer* const bc,
while (p < stop) { while (p < stop) {
const int t = p->Token; const int t = p->Token;
vp9_token *const a = vp9_coef_encodings + t; const struct vp9_token *const a = vp9_coef_encodings + t;
const vp9_extra_bit_struct *const b = vp9_extra_bits + t; const vp9_extra_bit_struct *const b = vp9_extra_bits + t;
int i = 0; int i = 0;
const unsigned char *pp = p->context_tree; const unsigned char *pp = p->context_tree;
int v = a->value; int v = a->value;
int n = a->Len; int n = a->len;
if (t == EOSB_TOKEN) if (t == EOSB_TOKEN)
{ {

View File

@ -290,7 +290,7 @@ static void tokenize_b(VP9_COMP *cpi,
else else
#endif #endif
t->skip_eob_node = (c > 0) && (token_cache[c - 1] == 0); t->skip_eob_node = (c > 0) && (token_cache[c - 1] == 0);
assert(vp9_coef_encodings[t->Token].Len - t->skip_eob_node > 0); assert(vp9_coef_encodings[t->Token].len - t->skip_eob_node > 0);
if (!dry_run) { if (!dry_run) {
++counts[type][ref][band][pt][token]; ++counts[type][ref][band][pt][token];
if (!t->skip_eob_node) if (!t->skip_eob_node)

View File

@ -67,11 +67,9 @@ static INLINE void treed_write(vp9_writer *const w,
} while (n); } while (n);
} }
static INLINE void write_token(vp9_writer *const w, static INLINE void write_token(vp9_writer *w, vp9_tree t, const vp9_prob *p,
vp9_tree t, const struct vp9_token *x) {
const vp9_prob *const p, treed_write(w, t, p, x->value, x->len);
vp9_token *const x) {
treed_write(w, t, p, x->value, x->Len);
} }
static INLINE int treed_cost(vp9_tree t, static INLINE int treed_cost(vp9_tree t,
@ -91,10 +89,9 @@ static INLINE int treed_cost(vp9_tree t,
return c; return c;
} }
static INLINE int cost_token(vp9_tree t, static INLINE int cost_token(vp9_tree t, const vp9_prob *p,
const vp9_prob *const p, const struct vp9_token *x) {
vp9_token *const x) { return treed_cost(t, p, x->value, x->len);
return treed_cost(t, p, x->value, x->Len);
} }
/* Fill array of costs for all possible token values. */ /* Fill array of costs for all possible token values. */