Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Yushin Cho
aom-rav1e
Commits
41c13ddb
Commit
41c13ddb
authored
Jul 21, 2015
by
Yaowu Xu
Committed by
Gerrit Code Review
Jul 21, 2015
Browse files
Merge "vpx_dsp/prob.h: vp9_ -> vpx_"
parents
0fc4d4e1
70ad6680
Changes
20
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_entropy.c
View file @
41c13ddb
...
...
@@ -16,7 +16,7 @@
#include "vpx/vpx_integer.h"
// Unconstrained Node Tree
const
vp
9
_tree_index
vp9_coef_con_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)]
=
{
const
vp
x
_tree_index
vp9_coef_con_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)]
=
{
2
,
6
,
// 0 = LOW_VAL
-
TWO_TOKEN
,
4
,
// 1 = TWO
-
THREE_TOKEN
,
-
FOUR_TOKEN
,
// 2 = THREE
...
...
vp9/common/vp9_entropy.h
View file @
41c13ddb
...
...
@@ -76,7 +76,7 @@ DECLARE_ALIGNED(16, extern const uint8_t, vp9_cat6_prob_high12[18]);
#define EOB_MODEL_TOKEN 3
typedef
struct
{
const
vp
9
_tree_index
*
tree
;
const
vp
x
_tree_index
*
tree
;
const
vpx_prob
*
prob
;
int
len
;
int
base_val
;
...
...
@@ -160,7 +160,7 @@ static INLINE const uint8_t *get_band_translate(TX_SIZE tx_size) {
#define PIVOT_NODE 2 // which node is pivot
#define MODEL_NODES (ENTROPY_NODES - UNCONSTRAINED_NODES)
extern
const
vp
9
_tree_index
vp9_coef_con_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)];
extern
const
vp
x
_tree_index
vp9_coef_con_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)];
extern
const
vpx_prob
vp9_pareto8_full
[
COEFF_PROB_MODELS
][
MODEL_NODES
];
typedef
vpx_prob
vp9_coeff_probs_model
[
REF_TYPES
][
COEF_BANDS
]
...
...
vp9/common/vp9_entropymode.c
View file @
41c13ddb
...
...
@@ -220,7 +220,7 @@ static const vpx_prob default_inter_mode_probs[INTER_MODE_CONTEXTS]
};
/* Array indices are identical to previously-existing INTRAMODECONTEXTNODES. */
const
vp
9
_tree_index
vp9_intra_mode_tree
[
TREE_SIZE
(
INTRA_MODES
)]
=
{
const
vp
x
_tree_index
vp9_intra_mode_tree
[
TREE_SIZE
(
INTRA_MODES
)]
=
{
-
DC_PRED
,
2
,
/* 0 = DC_NODE */
-
TM_PRED
,
4
,
/* 1 = TM_NODE */
-
V_PRED
,
6
,
/* 2 = V_NODE */
...
...
@@ -232,13 +232,13 @@ const vp9_tree_index vp9_intra_mode_tree[TREE_SIZE(INTRA_MODES)] = {
-
D153_PRED
,
-
D207_PRED
/* 8 = D153_NODE */
};
const
vp
9
_tree_index
vp9_inter_mode_tree
[
TREE_SIZE
(
INTER_MODES
)]
=
{
const
vp
x
_tree_index
vp9_inter_mode_tree
[
TREE_SIZE
(
INTER_MODES
)]
=
{
-
INTER_OFFSET
(
ZEROMV
),
2
,
-
INTER_OFFSET
(
NEARESTMV
),
4
,
-
INTER_OFFSET
(
NEARMV
),
-
INTER_OFFSET
(
NEWMV
)
};
const
vp
9
_tree_index
vp9_partition_tree
[
TREE_SIZE
(
PARTITION_TYPES
)]
=
{
const
vp
x
_tree_index
vp9_partition_tree
[
TREE_SIZE
(
PARTITION_TYPES
)]
=
{
-
PARTITION_NONE
,
2
,
-
PARTITION_HORZ
,
4
,
-
PARTITION_VERT
,
-
PARTITION_SPLIT
...
...
@@ -328,7 +328,7 @@ static void init_mode_probs(FRAME_CONTEXT *fc) {
vp9_copy
(
fc
->
inter_mode_probs
,
default_inter_mode_probs
);
}
const
vp
9
_tree_index
vp9_switchable_interp_tree
const
vp
x
_tree_index
vp9_switchable_interp_tree
[
TREE_SIZE
(
SWITCHABLE_FILTERS
)]
=
{
-
EIGHTTAP
,
2
,
-
EIGHTTAP_SMOOTH
,
-
EIGHTTAP_SHARP
...
...
@@ -355,24 +355,24 @@ void vp9_adapt_mode_probs(VP9_COMMON *cm) {
pre_fc
->
single_ref_prob
[
i
][
j
],
counts
->
single_ref
[
i
][
j
]);
for
(
i
=
0
;
i
<
INTER_MODE_CONTEXTS
;
i
++
)
vp
9
_tree_merge_probs
(
vp9_inter_mode_tree
,
pre_fc
->
inter_mode_probs
[
i
],
vp
x
_tree_merge_probs
(
vp9_inter_mode_tree
,
pre_fc
->
inter_mode_probs
[
i
],
counts
->
inter_mode
[
i
],
fc
->
inter_mode_probs
[
i
]);
for
(
i
=
0
;
i
<
BLOCK_SIZE_GROUPS
;
i
++
)
vp
9
_tree_merge_probs
(
vp9_intra_mode_tree
,
pre_fc
->
y_mode_prob
[
i
],
vp
x
_tree_merge_probs
(
vp9_intra_mode_tree
,
pre_fc
->
y_mode_prob
[
i
],
counts
->
y_mode
[
i
],
fc
->
y_mode_prob
[
i
]);
for
(
i
=
0
;
i
<
INTRA_MODES
;
++
i
)
vp
9
_tree_merge_probs
(
vp9_intra_mode_tree
,
pre_fc
->
uv_mode_prob
[
i
],
vp
x
_tree_merge_probs
(
vp9_intra_mode_tree
,
pre_fc
->
uv_mode_prob
[
i
],
counts
->
uv_mode
[
i
],
fc
->
uv_mode_prob
[
i
]);
for
(
i
=
0
;
i
<
PARTITION_CONTEXTS
;
i
++
)
vp
9
_tree_merge_probs
(
vp9_partition_tree
,
pre_fc
->
partition_prob
[
i
],
vp
x
_tree_merge_probs
(
vp9_partition_tree
,
pre_fc
->
partition_prob
[
i
],
counts
->
partition
[
i
],
fc
->
partition_prob
[
i
]);
if
(
cm
->
interp_filter
==
SWITCHABLE
)
{
for
(
i
=
0
;
i
<
SWITCHABLE_FILTER_CONTEXTS
;
i
++
)
vp
9
_tree_merge_probs
(
vp9_switchable_interp_tree
,
vp
x
_tree_merge_probs
(
vp9_switchable_interp_tree
,
pre_fc
->
switchable_interp_prob
[
i
],
counts
->
switchable_interp
[
i
],
fc
->
switchable_interp_prob
[
i
]);
...
...
vp9/common/vp9_entropymode.h
View file @
41c13ddb
...
...
@@ -82,10 +82,10 @@ extern const vpx_prob vp9_kf_y_mode_prob[INTRA_MODES][INTRA_MODES]
[
INTRA_MODES
-
1
];
extern
const
vpx_prob
vp9_kf_partition_probs
[
PARTITION_CONTEXTS
]
[
PARTITION_TYPES
-
1
];
extern
const
vp
9
_tree_index
vp9_intra_mode_tree
[
TREE_SIZE
(
INTRA_MODES
)];
extern
const
vp
9
_tree_index
vp9_inter_mode_tree
[
TREE_SIZE
(
INTER_MODES
)];
extern
const
vp
9
_tree_index
vp9_partition_tree
[
TREE_SIZE
(
PARTITION_TYPES
)];
extern
const
vp
9
_tree_index
vp9_switchable_interp_tree
extern
const
vp
x
_tree_index
vp9_intra_mode_tree
[
TREE_SIZE
(
INTRA_MODES
)];
extern
const
vp
x
_tree_index
vp9_inter_mode_tree
[
TREE_SIZE
(
INTER_MODES
)];
extern
const
vp
x
_tree_index
vp9_partition_tree
[
TREE_SIZE
(
PARTITION_TYPES
)];
extern
const
vp
x
_tree_index
vp9_switchable_interp_tree
[
TREE_SIZE
(
SWITCHABLE_FILTERS
)];
void
vp9_setup_past_independence
(
struct
VP9Common
*
cm
);
...
...
vp9/common/vp9_entropymv.c
View file @
41c13ddb
...
...
@@ -14,13 +14,13 @@
// Integer pel reference mv threshold for use of high-precision 1/8 mv
#define COMPANDED_MVREF_THRESH 8
const
vp
9
_tree_index
vp9_mv_joint_tree
[
TREE_SIZE
(
MV_JOINTS
)]
=
{
const
vp
x
_tree_index
vp9_mv_joint_tree
[
TREE_SIZE
(
MV_JOINTS
)]
=
{
-
MV_JOINT_ZERO
,
2
,
-
MV_JOINT_HNZVZ
,
4
,
-
MV_JOINT_HZVNZ
,
-
MV_JOINT_HNZVNZ
};
const
vp
9
_tree_index
vp9_mv_class_tree
[
TREE_SIZE
(
MV_CLASSES
)]
=
{
const
vp
x
_tree_index
vp9_mv_class_tree
[
TREE_SIZE
(
MV_CLASSES
)]
=
{
-
MV_CLASS_0
,
2
,
-
MV_CLASS_1
,
4
,
6
,
8
,
...
...
@@ -33,11 +33,11 @@ const vp9_tree_index vp9_mv_class_tree[TREE_SIZE(MV_CLASSES)] = {
-
MV_CLASS_9
,
-
MV_CLASS_10
,
};
const
vp
9
_tree_index
vp9_mv_class0_tree
[
TREE_SIZE
(
CLASS0_SIZE
)]
=
{
const
vp
x
_tree_index
vp9_mv_class0_tree
[
TREE_SIZE
(
CLASS0_SIZE
)]
=
{
-
0
,
-
1
,
};
const
vp
9
_tree_index
vp9_mv_fp_tree
[
TREE_SIZE
(
MV_FP_SIZE
)]
=
{
const
vp
x
_tree_index
vp9_mv_fp_tree
[
TREE_SIZE
(
MV_FP_SIZE
)]
=
{
-
0
,
2
,
-
1
,
4
,
-
2
,
-
3
...
...
@@ -183,7 +183,7 @@ void vp9_adapt_mv_probs(VP9_COMMON *cm, int allow_hp) {
const
nmv_context
*
pre_fc
=
&
cm
->
frame_contexts
[
cm
->
frame_context_idx
].
nmvc
;
const
nmv_context_counts
*
counts
=
&
cm
->
counts
.
mv
;
vp
9
_tree_merge_probs
(
vp9_mv_joint_tree
,
pre_fc
->
joints
,
counts
->
joints
,
vp
x
_tree_merge_probs
(
vp9_mv_joint_tree
,
pre_fc
->
joints
,
counts
->
joints
,
fc
->
joints
);
for
(
i
=
0
;
i
<
2
;
++
i
)
{
...
...
@@ -192,19 +192,19 @@ void vp9_adapt_mv_probs(VP9_COMMON *cm, int allow_hp) {
const
nmv_component_counts
*
c
=
&
counts
->
comps
[
i
];
comp
->
sign
=
mode_mv_merge_probs
(
pre_comp
->
sign
,
c
->
sign
);
vp
9
_tree_merge_probs
(
vp9_mv_class_tree
,
pre_comp
->
classes
,
c
->
classes
,
vp
x
_tree_merge_probs
(
vp9_mv_class_tree
,
pre_comp
->
classes
,
c
->
classes
,
comp
->
classes
);
vp
9
_tree_merge_probs
(
vp9_mv_class0_tree
,
pre_comp
->
class0
,
c
->
class0
,
vp
x
_tree_merge_probs
(
vp9_mv_class0_tree
,
pre_comp
->
class0
,
c
->
class0
,
comp
->
class0
);
for
(
j
=
0
;
j
<
MV_OFFSET_BITS
;
++
j
)
comp
->
bits
[
j
]
=
mode_mv_merge_probs
(
pre_comp
->
bits
[
j
],
c
->
bits
[
j
]);
for
(
j
=
0
;
j
<
CLASS0_SIZE
;
++
j
)
vp
9
_tree_merge_probs
(
vp9_mv_fp_tree
,
pre_comp
->
class0_fp
[
j
],
vp
x
_tree_merge_probs
(
vp9_mv_fp_tree
,
pre_comp
->
class0_fp
[
j
],
c
->
class0_fp
[
j
],
comp
->
class0_fp
[
j
]);
vp
9
_tree_merge_probs
(
vp9_mv_fp_tree
,
pre_comp
->
fp
,
c
->
fp
,
comp
->
fp
);
vp
x
_tree_merge_probs
(
vp9_mv_fp_tree
,
pre_comp
->
fp
,
c
->
fp
,
comp
->
fp
);
if
(
allow_hp
)
{
comp
->
class0_hp
=
mode_mv_merge_probs
(
pre_comp
->
class0_hp
,
c
->
class0_hp
);
...
...
vp9/common/vp9_entropymv.h
View file @
41c13ddb
...
...
@@ -77,10 +77,10 @@ typedef enum {
#define MV_UPP ((1 << MV_IN_USE_BITS) - 1)
#define MV_LOW (-(1 << MV_IN_USE_BITS))
extern
const
vp
9
_tree_index
vp9_mv_joint_tree
[];
extern
const
vp
9
_tree_index
vp9_mv_class_tree
[];
extern
const
vp
9
_tree_index
vp9_mv_class0_tree
[];
extern
const
vp
9
_tree_index
vp9_mv_fp_tree
[];
extern
const
vp
x
_tree_index
vp9_mv_joint_tree
[];
extern
const
vp
x
_tree_index
vp9_mv_class_tree
[];
extern
const
vp
x
_tree_index
vp9_mv_class0_tree
[];
extern
const
vp
x
_tree_index
vp9_mv_fp_tree
[];
typedef
struct
{
vpx_prob
sign
;
...
...
vp9/common/vp9_seg_common.c
View file @
41c13ddb
...
...
@@ -54,7 +54,7 @@ void vp9_set_segdata(struct segmentation *seg, int segment_id,
seg
->
feature_data
[
segment_id
][
feature_id
]
=
seg_data
;
}
const
vp
9
_tree_index
vp9_segment_tree
[
TREE_SIZE
(
MAX_SEGMENTS
)]
=
{
const
vp
x
_tree_index
vp9_segment_tree
[
TREE_SIZE
(
MAX_SEGMENTS
)]
=
{
2
,
4
,
6
,
8
,
10
,
12
,
0
,
-
1
,
-
2
,
-
3
,
-
4
,
-
5
,
-
6
,
-
7
};
...
...
vp9/common/vp9_seg_common.h
View file @
41c13ddb
...
...
@@ -76,7 +76,7 @@ static INLINE int get_segdata(const struct segmentation *seg, int segment_id,
return
seg
->
feature_data
[
segment_id
][
feature_id
];
}
extern
const
vp
9
_tree_index
vp9_segment_tree
[
TREE_SIZE
(
MAX_SEGMENTS
)];
extern
const
vp
x
_tree_index
vp9_segment_tree
[
TREE_SIZE
(
MAX_SEGMENTS
)];
#ifdef __cplusplus
}
// extern "C"
...
...
vp9/encoder/vp9_bitstream.c
View file @
41c13ddb
...
...
@@ -61,7 +61,7 @@ static void encode_unsigned_max(struct vp9_write_bit_buffer *wb,
vp9_wb_write_literal
(
wb
,
data
,
get_unsigned_bits
(
max
));
}
static
void
prob_diff_update
(
const
vp
9
_tree_index
*
tree
,
static
void
prob_diff_update
(
const
vp
x
_tree_index
*
tree
,
vpx_prob
probs
[
/*n - 1*/
],
const
unsigned
int
counts
[
/*n - 1*/
],
int
n
,
vp9_writer
*
w
)
{
...
...
vp9/encoder/vp9_cost.c
View file @
41c13ddb
...
...
@@ -35,14 +35,14 @@ const unsigned int vp9_prob_cost[256] = {
22
,
21
,
19
,
18
,
16
,
15
,
13
,
12
,
10
,
9
,
7
,
6
,
4
,
3
,
1
,
1
};
static
void
cost
(
int
*
costs
,
vp
9
_tree
tree
,
const
vpx_prob
*
probs
,
static
void
cost
(
int
*
costs
,
vp
x
_tree
tree
,
const
vpx_prob
*
probs
,
int
i
,
int
c
)
{
const
vpx_prob
prob
=
probs
[
i
/
2
];
int
b
;
for
(
b
=
0
;
b
<=
1
;
++
b
)
{
const
int
cc
=
c
+
vp9_cost_bit
(
prob
,
b
);
const
vp
9
_tree_index
ii
=
tree
[
i
+
b
];
const
vp
x
_tree_index
ii
=
tree
[
i
+
b
];
if
(
ii
<=
0
)
costs
[
-
ii
]
=
cc
;
...
...
@@ -51,11 +51,11 @@ static void cost(int *costs, vp9_tree tree, const vpx_prob *probs,
}
}
void
vp9_cost_tokens
(
int
*
costs
,
const
vpx_prob
*
probs
,
vp
9
_tree
tree
)
{
void
vp9_cost_tokens
(
int
*
costs
,
const
vpx_prob
*
probs
,
vp
x
_tree
tree
)
{
cost
(
costs
,
tree
,
probs
,
0
,
0
);
}
void
vp9_cost_tokens_skip
(
int
*
costs
,
const
vpx_prob
*
probs
,
vp
9
_tree
tree
)
{
void
vp9_cost_tokens_skip
(
int
*
costs
,
const
vpx_prob
*
probs
,
vp
x
_tree
tree
)
{
assert
(
tree
[
0
]
<=
0
&&
tree
[
1
]
>
0
);
costs
[
-
tree
[
0
]]
=
vp9_cost_bit
(
probs
[
0
],
0
);
...
...
vp9/encoder/vp9_cost.h
View file @
41c13ddb
...
...
@@ -21,9 +21,9 @@ extern const unsigned int vp9_prob_cost[256];
#define vp9_cost_zero(prob) (vp9_prob_cost[prob])
#define vp9_cost_one(prob) vp9_cost_zero(vp
9
_complement(prob))
#define vp9_cost_one(prob) vp9_cost_zero(vp
x
_complement(prob))
#define vp9_cost_bit(prob, bit) vp9_cost_zero((bit) ? vp
9
_complement(prob) \
#define vp9_cost_bit(prob, bit) vp9_cost_zero((bit) ? vp
x
_complement(prob) \
: (prob))
static
INLINE
unsigned
int
cost_branch256
(
const
unsigned
int
ct
[
2
],
...
...
@@ -31,10 +31,10 @@ static INLINE unsigned int cost_branch256(const unsigned int ct[2],
return
ct
[
0
]
*
vp9_cost_zero
(
p
)
+
ct
[
1
]
*
vp9_cost_one
(
p
);
}
static
INLINE
int
treed_cost
(
vp
9
_tree
tree
,
const
vpx_prob
*
probs
,
static
INLINE
int
treed_cost
(
vp
x
_tree
tree
,
const
vpx_prob
*
probs
,
int
bits
,
int
len
)
{
int
cost
=
0
;
vp
9
_tree_index
i
=
0
;
vp
x
_tree_index
i
=
0
;
do
{
const
int
bit
=
(
bits
>>
--
len
)
&
1
;
...
...
@@ -45,8 +45,8 @@ static INLINE int treed_cost(vp9_tree tree, const vpx_prob *probs,
return
cost
;
}
void
vp9_cost_tokens
(
int
*
costs
,
const
vpx_prob
*
probs
,
vp
9
_tree
tree
);
void
vp9_cost_tokens_skip
(
int
*
costs
,
const
vpx_prob
*
probs
,
vp
9
_tree
tree
);
void
vp9_cost_tokens
(
int
*
costs
,
const
vpx_prob
*
probs
,
vp
x
_tree
tree
);
void
vp9_cost_tokens_skip
(
int
*
costs
,
const
vpx_prob
*
probs
,
vp
x
_tree
tree
);
#ifdef __cplusplus
}
// extern "C"
...
...
vp9/encoder/vp9_encodemv.c
View file @
41c13ddb
...
...
@@ -146,7 +146,7 @@ static int update_mv(vp9_writer *w, const unsigned int ct[2], vpx_prob *cur_p,
return
update
;
}
static
void
write_mv_update
(
const
vp
9
_tree_index
*
tree
,
static
void
write_mv_update
(
const
vp
x
_tree_index
*
tree
,
vpx_prob
probs
[
/*n - 1*/
],
const
unsigned
int
counts
[
/*n - 1*/
],
int
n
,
vp9_writer
*
w
)
{
...
...
vp9/encoder/vp9_tokenize.c
View file @
41c13ddb
...
...
@@ -52,7 +52,7 @@ const TOKENVALUE *vp9_dct_cat_lt_10_value_tokens = dct_cat_lt_10_value_tokens +
/
2
;
// Array indices are identical to previously-existing CONTEXT_NODE indices
const
vp
9
_tree_index
vp9_coef_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)]
=
{
const
vp
x
_tree_index
vp9_coef_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)]
=
{
-
EOB_TOKEN
,
2
,
// 0 = EOB
-
ZERO_TOKEN
,
4
,
// 1 = ZERO
-
ONE_TOKEN
,
6
,
// 2 = ONE
...
...
@@ -66,12 +66,12 @@ const vp9_tree_index vp9_coef_tree[TREE_SIZE(ENTROPY_TOKENS)] = {
-
CATEGORY5_TOKEN
,
-
CATEGORY6_TOKEN
// 10 = CAT_FIVE
};
static
const
vp
9
_tree_index
cat1
[
2
]
=
{
0
,
0
};
static
const
vp
9
_tree_index
cat2
[
4
]
=
{
2
,
2
,
0
,
0
};
static
const
vp
9
_tree_index
cat3
[
6
]
=
{
2
,
2
,
4
,
4
,
0
,
0
};
static
const
vp
9
_tree_index
cat4
[
8
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
0
,
0
};
static
const
vp
9
_tree_index
cat5
[
10
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
0
,
0
};
static
const
vp
9
_tree_index
cat6
[
28
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
10
,
10
,
12
,
12
,
static
const
vp
x
_tree_index
cat1
[
2
]
=
{
0
,
0
};
static
const
vp
x
_tree_index
cat2
[
4
]
=
{
2
,
2
,
0
,
0
};
static
const
vp
x
_tree_index
cat3
[
6
]
=
{
2
,
2
,
4
,
4
,
0
,
0
};
static
const
vp
x
_tree_index
cat4
[
8
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
0
,
0
};
static
const
vp
x
_tree_index
cat5
[
10
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
0
,
0
};
static
const
vp
x
_tree_index
cat6
[
28
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
10
,
10
,
12
,
12
,
14
,
14
,
16
,
16
,
18
,
18
,
20
,
20
,
22
,
22
,
24
,
24
,
26
,
26
,
0
,
0
};
static
const
int16_t
zero_cost
[]
=
{
0
};
...
...
@@ -367,20 +367,20 @@ const int16_t vp9_cat6_high12_high_cost[2048] = {
#endif
#if CONFIG_VP9_HIGHBITDEPTH
static
const
vp
9
_tree_index
cat1_high10
[
2
]
=
{
0
,
0
};
static
const
vp
9
_tree_index
cat2_high10
[
4
]
=
{
2
,
2
,
0
,
0
};
static
const
vp
9
_tree_index
cat3_high10
[
6
]
=
{
2
,
2
,
4
,
4
,
0
,
0
};
static
const
vp
9
_tree_index
cat4_high10
[
8
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
0
,
0
};
static
const
vp
9
_tree_index
cat5_high10
[
10
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
0
,
0
};
static
const
vp
9
_tree_index
cat6_high10
[
32
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
10
,
10
,
static
const
vp
x
_tree_index
cat1_high10
[
2
]
=
{
0
,
0
};
static
const
vp
x
_tree_index
cat2_high10
[
4
]
=
{
2
,
2
,
0
,
0
};
static
const
vp
x
_tree_index
cat3_high10
[
6
]
=
{
2
,
2
,
4
,
4
,
0
,
0
};
static
const
vp
x
_tree_index
cat4_high10
[
8
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
0
,
0
};
static
const
vp
x
_tree_index
cat5_high10
[
10
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
0
,
0
};
static
const
vp
x
_tree_index
cat6_high10
[
32
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
10
,
10
,
12
,
12
,
14
,
14
,
16
,
16
,
18
,
18
,
20
,
20
,
22
,
22
,
24
,
24
,
26
,
26
,
28
,
28
,
30
,
30
,
0
,
0
};
static
const
vp
9
_tree_index
cat1_high12
[
2
]
=
{
0
,
0
};
static
const
vp
9
_tree_index
cat2_high12
[
4
]
=
{
2
,
2
,
0
,
0
};
static
const
vp
9
_tree_index
cat3_high12
[
6
]
=
{
2
,
2
,
4
,
4
,
0
,
0
};
static
const
vp
9
_tree_index
cat4_high12
[
8
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
0
,
0
};
static
const
vp
9
_tree_index
cat5_high12
[
10
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
0
,
0
};
static
const
vp
9
_tree_index
cat6_high12
[
36
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
10
,
10
,
static
const
vp
x
_tree_index
cat1_high12
[
2
]
=
{
0
,
0
};
static
const
vp
x
_tree_index
cat2_high12
[
4
]
=
{
2
,
2
,
0
,
0
};
static
const
vp
x
_tree_index
cat3_high12
[
6
]
=
{
2
,
2
,
4
,
4
,
0
,
0
};
static
const
vp
x
_tree_index
cat4_high12
[
8
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
0
,
0
};
static
const
vp
x
_tree_index
cat5_high12
[
10
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
0
,
0
};
static
const
vp
x
_tree_index
cat6_high12
[
36
]
=
{
2
,
2
,
4
,
4
,
6
,
6
,
8
,
8
,
10
,
10
,
12
,
12
,
14
,
14
,
16
,
16
,
18
,
18
,
20
,
20
,
22
,
22
,
24
,
24
,
26
,
26
,
28
,
28
,
30
,
30
,
32
,
32
,
34
,
34
,
0
,
0
};
#endif
...
...
vp9/encoder/vp9_tokenize.h
View file @
41c13ddb
...
...
@@ -41,8 +41,8 @@ typedef struct {
uint8_t
skip_eob_node
;
}
TOKENEXTRA
;
extern
const
vp
9
_tree_index
vp9_coef_tree
[];
extern
const
vp
9
_tree_index
vp9_coef_con_tree
[];
extern
const
vp
x
_tree_index
vp9_coef_tree
[];
extern
const
vp
x
_tree_index
vp9_coef_con_tree
[];
extern
const
struct
vp9_token
vp9_coef_encodings
[];
int
vp9_is_skippable_in_plane
(
MACROBLOCK
*
x
,
BLOCK_SIZE
bsize
,
int
plane
);
...
...
vp9/encoder/vp9_treewriter.c
View file @
41c13ddb
...
...
@@ -10,13 +10,13 @@
#include "vp9/encoder/vp9_treewriter.h"
static
void
tree2tok
(
struct
vp9_token
*
tokens
,
const
vp
9
_tree_index
*
tree
,
static
void
tree2tok
(
struct
vp9_token
*
tokens
,
const
vp
x
_tree_index
*
tree
,
int
i
,
int
v
,
int
l
)
{
v
+=
v
;
++
l
;
do
{
const
vp
9
_tree_index
j
=
tree
[
i
++
];
const
vp
x
_tree_index
j
=
tree
[
i
++
];
if
(
j
<=
0
)
{
tokens
[
-
j
].
value
=
v
;
tokens
[
-
j
].
len
=
l
;
...
...
@@ -27,11 +27,11 @@ static void tree2tok(struct vp9_token *tokens, const vp9_tree_index *tree,
}
void
vp9_tokens_from_tree
(
struct
vp9_token
*
tokens
,
const
vp
9
_tree_index
*
tree
)
{
const
vp
x
_tree_index
*
tree
)
{
tree2tok
(
tokens
,
tree
,
0
,
0
,
0
);
}
static
unsigned
int
convert_distribution
(
unsigned
int
i
,
vp
9
_tree
tree
,
static
unsigned
int
convert_distribution
(
unsigned
int
i
,
vp
x
_tree
tree
,
unsigned
int
branch_ct
[][
2
],
const
unsigned
int
num_events
[])
{
unsigned
int
left
,
right
;
...
...
@@ -51,7 +51,7 @@ static unsigned int convert_distribution(unsigned int i, vp9_tree tree,
return
left
+
right
;
}
void
vp9_tree_probs_from_distribution
(
vp
9
_tree
tree
,
void
vp9_tree_probs_from_distribution
(
vp
x
_tree
tree
,
unsigned
int
branch_ct
[
/* n-1 */
][
2
],
const
unsigned
int
num_events
[
/* n */
])
{
convert_distribution
(
0
,
tree
,
branch_ct
,
num_events
);
...
...
vp9/encoder/vp9_treewriter.h
View file @
41c13ddb
...
...
@@ -17,7 +17,7 @@
extern
"C"
{
#endif
void
vp9_tree_probs_from_distribution
(
vp
9
_tree
tree
,
void
vp9_tree_probs_from_distribution
(
vp
x
_tree
tree
,
unsigned
int
branch_ct
[
/* n - 1 */
][
2
],
const
unsigned
int
num_events
[
/* n */
]);
...
...
@@ -26,11 +26,11 @@ struct vp9_token {
int
len
;
};
void
vp9_tokens_from_tree
(
struct
vp9_token
*
,
const
vp
9
_tree_index
*
);
void
vp9_tokens_from_tree
(
struct
vp9_token
*
,
const
vp
x
_tree_index
*
);
static
INLINE
void
vp9_write_tree
(
vp9_writer
*
w
,
const
vp
9
_tree_index
*
tree
,
static
INLINE
void
vp9_write_tree
(
vp9_writer
*
w
,
const
vp
x
_tree_index
*
tree
,
const
vpx_prob
*
probs
,
int
bits
,
int
len
,
vp
9
_tree_index
i
)
{
vp
x
_tree_index
i
)
{
do
{
const
int
bit
=
(
bits
>>
--
len
)
&
1
;
vp9_write
(
w
,
bit
,
probs
[
i
>>
1
]);
...
...
@@ -38,7 +38,7 @@ static INLINE void vp9_write_tree(vp9_writer *w, const vp9_tree_index *tree,
}
while
(
len
);
}
static
INLINE
void
vp9_write_token
(
vp9_writer
*
w
,
const
vp
9
_tree_index
*
tree
,
static
INLINE
void
vp9_write_token
(
vp9_writer
*
w
,
const
vp
x
_tree_index
*
tree
,
const
vpx_prob
*
probs
,
const
struct
vp9_token
*
token
)
{
vp9_write_tree
(
w
,
tree
,
probs
,
token
->
value
,
token
->
len
,
0
);
...
...
vpx_dsp/bitreader.h
View file @
41c13ddb
...
...
@@ -98,7 +98,7 @@ static INLINE int vpx_read(vpx_reader *r, int prob) {
}
{
register
unsigned
int
shift
=
vp
9
_norm
[
range
];
register
unsigned
int
shift
=
vp
x
_norm
[
range
];
range
<<=
shift
;
value
<<=
shift
;
count
-=
shift
;
...
...
@@ -123,9 +123,9 @@ static INLINE int vpx_read_literal(vpx_reader *r, int bits) {
return
literal
;
}
static
INLINE
int
vpx_read_tree
(
vpx_reader
*
r
,
const
vp
9
_tree_index
*
tree
,
static
INLINE
int
vpx_read_tree
(
vpx_reader
*
r
,
const
vp
x
_tree_index
*
tree
,
const
vpx_prob
*
probs
)
{
vp
9
_tree_index
i
=
0
;
vp
x
_tree_index
i
=
0
;
while
((
i
=
tree
[
i
+
vpx_read
(
r
,
probs
[
i
>>
1
])])
>
0
)
continue
;
...
...
vpx_dsp/bitwriter.h
View file @
41c13ddb
...
...
@@ -46,7 +46,7 @@ static INLINE void vp9_write(vp9_writer *br, int bit, int probability) {
range
=
br
->
range
-
split
;
}
shift
=
vp
9
_norm
[
range
];
shift
=
vp
x
_norm
[
range
];
range
<<=
shift
;
count
+=
shift
;
...
...
vpx_dsp/prob.c
View file @
41c13ddb
...
...
@@ -10,7 +10,7 @@
#include "./prob.h"
const
uint8_t
vp
9
_norm
[
256
]
=
{
const
uint8_t
vp
x
_norm
[
256
]
=
{
0
,
7
,
6
,
6
,
5
,
5
,
5
,
5
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
4
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
3
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
...
...
@@ -30,7 +30,7 @@ const uint8_t vp9_norm[256] = {
};
static
unsigned
int
tree_merge_probs_impl
(
unsigned
int
i
,
const
vp
9
_tree_index
*
tree
,
const
vp
x
_tree_index
*
tree
,
const
vpx_prob
*
pre_probs
,
const
unsigned
int
*
counts
,
vpx_prob
*
probs
)
{
...
...
@@ -47,7 +47,7 @@ static unsigned int tree_merge_probs_impl(unsigned int i,
return
left_count
+
right_count
;
}
void
vp
9
_tree_merge_probs
(
const
vp
9
_tree_index
*
tree
,
const
vpx_prob
*
pre_probs
,
void
vp
x
_tree_merge_probs
(
const
vp
x
_tree_index
*
tree
,
const
vpx_prob
*
pre_probs
,
const
unsigned
int
*
counts
,
vpx_prob
*
probs
)
{
tree_merge_probs_impl
(
0
,
tree
,
pre_probs
,
counts
,
probs
);
}
vpx_dsp/prob.h
View file @
41c13ddb
...
...
@@ -26,22 +26,22 @@ typedef uint8_t vpx_prob;
#define vpx_prob_half ((vpx_prob) 128)
typedef
int8_t
vp
9
_tree_index
;
typedef
int8_t
vp
x
_tree_index
;
#define TREE_SIZE(leaf_count) (2 * (leaf_count) - 2)
#define vp
9
_complement(x) (255 - x)
#define vp
x
_complement(x) (255 - x)
#define MODE_MV_COUNT_SAT 20
/* We build coding trees compactly in arrays.
Each node of the tree is a pair of vp
9
_tree_indices.
Each node of the tree is a pair of vp
x
_tree_indices.
Array index often references a corresponding probability table.
Index <= 0 means done encoding/decoding and value = -Index,
Index > 0 means need another bit, specification at index.
Nonnegative indices are always even; processing begins at node 0. */
typedef
const
vp
9
_tree_index
vp
9
_tree
[];
typedef
const
vp
x
_tree_index
vp
x
_tree
[];
static
INLINE
vpx_prob
clip_prob
(
int
p
)
{
return
(
p
>
255
)
?
255
:
(
p
<
1
)
?
1
:
p
;
...
...
@@ -90,11 +90,11 @@ static INLINE vpx_prob mode_mv_merge_probs(vpx_prob pre_prob,
}
}
void
vp
9
_tree_merge_probs
(
const
vp
9
_tree_index
*
tree
,
const
vpx_prob
*
pre_probs
,
void
vp
x
_tree_merge_probs
(
const
vp
x
_tree_index
*
tree
,
const
vpx_prob
*
pre_probs
,
const
unsigned
int
*
counts
,
vpx_prob
*
probs
);
DECLARE_ALIGNED
(
16
,
extern
const
uint8_t
,
vp
9
_norm
[
256
]);
DECLARE_ALIGNED
(
16
,
extern
const
uint8_t
,
vp
x
_norm
[
256
]);
#ifdef __cplusplus
}
// extern "C"
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment