Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
b101935f
Commit
b101935f
authored
Dec 22, 2017
by
Yue Chen
Browse files
Remove unused binary-symbol coding and tree-based coding
Change-Id: I70ebb6ada7ec4a975a8984a2e1ea2fa51664a786
parent
b499120e
Changes
18
Hide whitespace changes
Inline
Side-by-side
av1/av1.cmake
View file @
b101935f
...
...
@@ -165,9 +165,7 @@ set(AOM_AV1_ENCODER_SOURCES
"
${
AOM_ROOT
}
/av1/encoder/temporal_filter.c"
"
${
AOM_ROOT
}
/av1/encoder/temporal_filter.h"
"
${
AOM_ROOT
}
/av1/encoder/tokenize.c"
"
${
AOM_ROOT
}
/av1/encoder/tokenize.h"
"
${
AOM_ROOT
}
/av1/encoder/treewriter.c"
"
${
AOM_ROOT
}
/av1/encoder/treewriter.h"
)
"
${
AOM_ROOT
}
/av1/encoder/tokenize.h"
)
if
(
CONFIG_DAALA_TX
)
set
(
AOM_AV1_ENCODER_SOURCES
...
...
av1/av1_cx.mk
View file @
b101935f
...
...
@@ -77,7 +77,6 @@ endif
AV1_CX_SRCS-yes
+=
encoder/rd.h
AV1_CX_SRCS-yes
+=
encoder/rdopt.h
AV1_CX_SRCS-yes
+=
encoder/tokenize.h
AV1_CX_SRCS-yes
+=
encoder/treewriter.h
AV1_CX_SRCS-yes
+=
encoder/mcomp.c
AV1_CX_SRCS-yes
+=
encoder/encoder.c
AV1_CX_SRCS-yes
+=
encoder/k_means_template.h
...
...
@@ -102,7 +101,6 @@ AV1_CX_SRCS-yes += encoder/subexp.h
AV1_CX_SRCS-$(CONFIG_INTERNAL_STATS)
+=
encoder/blockiness.c
AV1_CX_SRCS-yes
+=
encoder/tokenize.c
AV1_CX_SRCS-yes
+=
encoder/treewriter.c
AV1_CX_SRCS-yes
+=
encoder/aq_variance.c
AV1_CX_SRCS-yes
+=
encoder/aq_variance.h
AV1_CX_SRCS-yes
+=
encoder/aq_cyclicrefresh.c
...
...
av1/common/entropy.c
View file @
b101935f
...
...
@@ -24,20 +24,6 @@
#include "av1/common/txb_common.h"
#endif
// Unconstrained Node Tree
/* clang-format off */
const
aom_tree_index
av1_coef_con_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)]
=
{
2
,
6
,
// 0 = LOW_VAL
-
TWO_TOKEN
,
4
,
// 1 = TWO
-
THREE_TOKEN
,
-
FOUR_TOKEN
,
// 2 = THREE
8
,
10
,
// 3 = HIGH_LOW
-
CATEGORY1_TOKEN
,
-
CATEGORY2_TOKEN
,
// 4 = CAT_ONE
12
,
14
,
// 5 = CAT_THREEFOUR
-
CATEGORY3_TOKEN
,
-
CATEGORY4_TOKEN
,
// 6 = CAT_THREE
-
CATEGORY5_TOKEN
,
-
CATEGORY6_TOKEN
// 7 = CAT_FIVE
};
/* clang-format on */
/* Extra bits coded from LSB to MSB */
const
aom_cdf_prob
av1_cat1_cdf0
[
CDF_SIZE
(
2
)]
=
{
AOM_CDF2
(
20352
)
};
const
aom_cdf_prob
*
av1_cat1_cdf
[]
=
{
av1_cat1_cdf0
};
...
...
av1/common/entropy.h
View file @
b101935f
...
...
@@ -242,7 +242,6 @@ static INLINE const uint8_t *get_band_translate(TX_SIZE tx_size) {
#define MODEL_NODES (ENTROPY_NODES - UNCONSTRAINED_NODES)
#define TAIL_NODES (MODEL_NODES + 1)
extern
const
aom_tree_index
av1_coef_con_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)];
extern
const
aom_prob
av1_pareto8_full
[
COEFF_PROB_MODELS
][
MODEL_NODES
];
typedef
aom_cdf_prob
coeff_cdf_model
[
REF_TYPES
][
COEF_BANDS
][
COEFF_CONTEXTS
]
...
...
av1/common/entropymode.c
View file @
b101935f
...
...
@@ -804,71 +804,6 @@ static const aom_cdf_prob
#endif // CONFIG_EXT_PARTITION
};
const
aom_tree_index
av1_motion_mode_tree
[
TREE_SIZE
(
MOTION_MODES
)]
=
{
-
SIMPLE_TRANSLATION
,
2
,
-
OBMC_CAUSAL
,
-
WARPED_CAUSAL
,
};
#if !CONFIG_EXT_WARPED_MOTION
static
const
aom_prob
default_motion_mode_prob
[
BLOCK_SIZES_ALL
][
MOTION_MODES
-
1
]
=
{
{
128
,
128
},
{
128
,
128
},
{
128
,
128
},
{
62
,
115
},
{
39
,
131
},
{
39
,
132
},
{
118
,
94
},
{
77
,
125
},
{
100
,
121
},
{
190
,
66
},
{
207
,
102
},
{
197
,
100
},
{
239
,
76
},
#if CONFIG_EXT_PARTITION
{
252
,
200
},
{
252
,
200
},
{
252
,
200
},
#endif // CONFIG_EXT_PARTITION
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
#if CONFIG_EXT_PARTITION
{
252
,
200
},
{
252
,
200
}
#endif // CONFIG_EXT_PARTITION
};
#else
static
const
aom_prob
default_motion_mode_prob
[
MOTION_MODE_CTX
][
BLOCK_SIZES_ALL
][
MOTION_MODES
-
1
]
=
{
{
{
128
,
128
},
{
128
,
128
},
{
128
,
128
},
{
62
,
115
},
{
39
,
131
},
{
39
,
132
},
{
118
,
94
},
{
77
,
125
},
{
100
,
121
},
{
190
,
66
},
{
207
,
102
},
{
197
,
100
},
{
239
,
76
},
#if CONFIG_EXT_PARTITION
{
252
,
200
},
{
252
,
200
},
{
252
,
200
},
#endif // CONFIG_EXT_PARTITION
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
#if CONFIG_EXT_PARTITION
{
252
,
200
},
{
252
,
200
},
#endif // CONFIG_EXT_PARTITION
},
{
{
128
,
128
},
{
128
,
128
},
{
128
,
128
},
{
62
,
115
},
{
39
,
131
},
{
39
,
132
},
{
118
,
94
},
{
77
,
125
},
{
100
,
121
},
{
190
,
66
},
{
207
,
102
},
{
197
,
100
},
{
239
,
76
},
#if CONFIG_EXT_PARTITION
{
252
,
200
},
{
252
,
200
},
{
252
,
200
},
#endif // CONFIG_EXT_PARTITION
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
#if CONFIG_EXT_PARTITION
{
252
,
200
},
{
252
,
200
},
#endif // CONFIG_EXT_PARTITION
},
{
{
128
,
128
},
{
128
,
128
},
{
128
,
128
},
{
62
,
115
},
{
39
,
131
},
{
39
,
132
},
{
118
,
94
},
{
77
,
125
},
{
100
,
121
},
{
190
,
66
},
{
207
,
102
},
{
197
,
100
},
{
239
,
76
},
#if CONFIG_EXT_PARTITION
{
252
,
200
},
{
252
,
200
},
{
252
,
200
},
#endif // CONFIG_EXT_PARTITION
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
{
208
,
200
},
#if CONFIG_EXT_PARTITION
{
252
,
200
},
{
252
,
200
},
#endif // CONFIG_EXT_PARTITION
},
};
#endif // CONFIG_EXT_WARPED_MOTION
#if !CONFIG_EXT_WARPED_MOTION
static
const
aom_cdf_prob
default_motion_mode_cdf
[
BLOCK_SIZES_ALL
][
CDF_SIZE
(
MOTION_MODES
)]
=
{
...
...
@@ -986,36 +921,6 @@ static const aom_cdf_prob default_delta_lf_cdf[CDF_SIZE(DELTA_LF_PROBS + 1)] = {
};
#endif
/* clang-format off */
const
aom_tree_index
av1_interintra_mode_tree
[
TREE_SIZE
(
INTERINTRA_MODES
)]
=
{
-
II_DC_PRED
,
2
,
/* 0 = II_DC_NODE */
-
II_SMOOTH_PRED
,
4
,
/* 1 = II_SMOOTH_PRED */
-
II_V_PRED
,
-
II_H_PRED
/* 2 = II_V_NODE */
};
const
aom_tree_index
av1_inter_compound_mode_tree
[
TREE_SIZE
(
INTER_COMPOUND_MODES
)]
=
{
-
INTER_COMPOUND_OFFSET
(
GLOBAL_GLOBALMV
),
2
,
-
INTER_COMPOUND_OFFSET
(
NEAREST_NEARESTMV
),
4
,
6
,
-
INTER_COMPOUND_OFFSET
(
NEW_NEWMV
),
-
INTER_COMPOUND_OFFSET
(
NEAR_NEARMV
),
8
,
10
,
12
,
-
INTER_COMPOUND_OFFSET
(
NEAREST_NEWMV
),
-
INTER_COMPOUND_OFFSET
(
NEW_NEARESTMV
),
-
INTER_COMPOUND_OFFSET
(
NEAR_NEWMV
),
-
INTER_COMPOUND_OFFSET
(
NEW_NEARMV
)
};
#if CONFIG_JNT_COMP
const
aom_tree_index
av1_compound_type_tree
[
TREE_SIZE
(
COMPOUND_TYPES
-
1
)]
=
{
-
COMPOUND_WEDGE
,
-
COMPOUND_SEG
};
#else
const
aom_tree_index
av1_compound_type_tree
[
TREE_SIZE
(
COMPOUND_TYPES
)]
=
{
-
COMPOUND_AVERAGE
,
2
,
-
COMPOUND_WEDGE
,
-
COMPOUND_SEG
};
#endif // CONFIG_JNT_COMP
/* clang-format on */
static
const
aom_cdf_prob
default_intra_inter_cdf
[
INTRA_INTER_CONTEXTS
]
[
CDF_SIZE
(
2
)]
=
{
{
AOM_CDF2
(
768
)
},
...
...
@@ -1470,13 +1375,6 @@ static const aom_cdf_prob
{
AOM_ICDF
(
13107
),
AOM_ICDF
(
32768
),
0
},
{
AOM_ICDF
(
13107
),
AOM_ICDF
(
32768
),
0
},
};
static
const
aom_prob
default_compound_idx_probs
[
COMP_INDEX_CONTEXTS
]
=
{
192
,
128
,
64
,
192
,
128
,
64
};
static
const
aom_prob
default_comp_group_idx_probs
[
COMP_GROUP_IDX_CONTEXTS
]
=
{
192
,
128
,
64
,
192
,
128
,
64
,
128
};
#endif // CONFIG_JNT_COMP
#if CONFIG_FILTER_INTRA
...
...
@@ -2986,14 +2884,11 @@ static void init_mode_probs(FRAME_CONTEXT *fc) {
#if CONFIG_JNT_COMP
av1_copy
(
fc
->
compound_index_cdf
,
default_compound_idx_cdfs
);
av1_copy
(
fc
->
comp_group_idx_cdf
,
default_comp_group_idx_cdfs
);
av1_copy
(
fc
->
compound_index_probs
,
default_compound_idx_probs
);
av1_copy
(
fc
->
comp_group_idx_probs
,
default_comp_group_idx_probs
);
#endif // CONFIG_JNT_COMP
av1_copy
(
fc
->
newmv_cdf
,
default_newmv_cdf
);
av1_copy
(
fc
->
zeromv_cdf
,
default_zeromv_cdf
);
av1_copy
(
fc
->
refmv_cdf
,
default_refmv_cdf
);
av1_copy
(
fc
->
drl_cdf
,
default_drl_cdf
);
av1_copy
(
fc
->
motion_mode_prob
,
default_motion_mode_prob
);
av1_copy
(
fc
->
motion_mode_cdf
,
default_motion_mode_cdf
);
av1_copy
(
fc
->
obmc_cdf
,
default_obmc_cdf
);
av1_copy
(
fc
->
inter_compound_mode_cdf
,
default_inter_compound_mode_cdf
);
...
...
@@ -3080,28 +2975,6 @@ void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
for
(
j
=
0
;
j
<
(
SINGLE_REFS
-
1
);
j
++
)
fc
->
single_ref_prob
[
i
][
j
]
=
av1_mode_mv_merge_probs
(
pre_fc
->
single_ref_prob
[
i
][
j
],
counts
->
single_ref
[
i
][
j
]);
#if !CONFIG_EXT_WARPED_MOTION
for
(
i
=
BLOCK_8X8
;
i
<
BLOCK_SIZES_ALL
;
++
i
)
aom_tree_merge_probs
(
av1_motion_mode_tree
,
pre_fc
->
motion_mode_prob
[
i
],
counts
->
motion_mode
[
i
],
fc
->
motion_mode_prob
[
i
]);
#else
for
(
i
=
0
;
i
<
MOTION_MODE_CTX
;
++
i
)
{
for
(
j
=
BLOCK_8X8
;
j
<
BLOCK_SIZES_ALL
;
++
j
)
aom_tree_merge_probs
(
av1_motion_mode_tree
,
pre_fc
->
motion_mode_prob
[
i
][
j
],
counts
->
motion_mode
[
i
][
j
],
fc
->
motion_mode_prob
[
i
][
j
]);
}
#endif // CONFIG_EXT_WARPED_MOTION
#if CONFIG_JNT_COMP
for
(
i
=
0
;
i
<
COMP_INDEX_CONTEXTS
;
++
i
)
fc
->
compound_index_probs
[
i
]
=
av1_mode_mv_merge_probs
(
pre_fc
->
compound_index_probs
[
i
],
counts
->
compound_index
[
i
]);
for
(
i
=
0
;
i
<
COMP_GROUP_IDX_CONTEXTS
;
++
i
)
fc
->
comp_group_idx_probs
[
i
]
=
av1_mode_mv_merge_probs
(
pre_fc
->
comp_group_idx_probs
[
i
],
counts
->
comp_group_idx
[
i
]);
#endif // CONFIG_JNT_COMP
}
void
av1_adapt_intra_frame_probs
(
AV1_COMMON
*
cm
)
{
...
...
av1/common/entropymode.h
View file @
b101935f
...
...
@@ -136,10 +136,8 @@ typedef struct frame_contexts {
aom_cdf_prob
inter_compound_mode_cdf
[
INTER_MODE_CONTEXTS
]
[
CDF_SIZE
(
INTER_COMPOUND_MODES
)];
#if CONFIG_JNT_COMP
aom_prob
compound_type_prob
[
BLOCK_SIZES_ALL
][
COMPOUND_TYPES
-
2
];
aom_cdf_prob
compound_type_cdf
[
BLOCK_SIZES_ALL
][
CDF_SIZE
(
COMPOUND_TYPES
-
1
)];
#else
aom_prob
compound_type_prob
[
BLOCK_SIZES_ALL
][
COMPOUND_TYPES
-
1
];
aom_cdf_prob
compound_type_cdf
[
BLOCK_SIZES_ALL
][
CDF_SIZE
(
COMPOUND_TYPES
)];
#endif // CONFIG_JNT_COMP
aom_cdf_prob
interintra_cdf
[
BLOCK_SIZE_GROUPS
][
CDF_SIZE
(
2
)];
...
...
@@ -147,11 +145,9 @@ typedef struct frame_contexts {
aom_cdf_prob
interintra_mode_cdf
[
BLOCK_SIZE_GROUPS
]
[
CDF_SIZE
(
INTERINTRA_MODES
)];
#if CONFIG_EXT_WARPED_MOTION
aom_prob
motion_mode_prob
[
MOTION_MODE_CTX
][
BLOCK_SIZES_ALL
][
MOTION_MODES
-
1
];
aom_cdf_prob
motion_mode_cdf
[
MOTION_MODE_CTX
][
BLOCK_SIZES_ALL
]
[
CDF_SIZE
(
MOTION_MODES
)];
#else
aom_prob
motion_mode_prob
[
BLOCK_SIZES_ALL
][
MOTION_MODES
-
1
];
aom_cdf_prob
motion_mode_cdf
[
BLOCK_SIZES_ALL
][
CDF_SIZE
(
MOTION_MODES
)];
#endif // CONFIG_EXT_WARPED_MOTION
aom_cdf_prob
obmc_cdf
[
BLOCK_SIZES_ALL
][
CDF_SIZE
(
2
)];
...
...
@@ -185,8 +181,6 @@ typedef struct frame_contexts {
#if CONFIG_JNT_COMP
aom_cdf_prob
compound_index_cdf
[
COMP_INDEX_CONTEXTS
][
CDF_SIZE
(
2
)];
aom_cdf_prob
comp_group_idx_cdf
[
COMP_GROUP_IDX_CONTEXTS
][
CDF_SIZE
(
2
)];
aom_prob
compound_index_probs
[
COMP_INDEX_CONTEXTS
];
aom_prob
comp_group_idx_probs
[
COMP_GROUP_IDX_CONTEXTS
];
#endif // CONFIG_JNT_COMP
#if CONFIG_EXT_SKIP
aom_cdf_prob
skip_mode_cdfs
[
SKIP_CONTEXTS
][
CDF_SIZE
(
2
)];
...
...
@@ -440,18 +434,6 @@ static const int av1_ext_tx_inv[EXT_TX_SET_TYPES][TX_TYPES] = {
},
};
extern
const
aom_tree_index
av1_interintra_mode_tree
[
TREE_SIZE
(
INTERINTRA_MODES
)];
extern
const
aom_tree_index
av1_inter_compound_mode_tree
[
TREE_SIZE
(
INTER_COMPOUND_MODES
)];
#if CONFIG_JNT_COMP
extern
const
aom_tree_index
av1_compound_type_tree
[
TREE_SIZE
(
COMPOUND_TYPES
-
1
)];
#else
extern
const
aom_tree_index
av1_compound_type_tree
[
TREE_SIZE
(
COMPOUND_TYPES
)];
#endif // CONFIG_JNT_COMP
extern
const
aom_tree_index
av1_motion_mode_tree
[
TREE_SIZE
(
MOTION_MODES
)];
void
av1_setup_frame_contexts
(
struct
AV1Common
*
cm
);
void
av1_setup_past_independence
(
struct
AV1Common
*
cm
);
...
...
av1/common/entropymv.c
View file @
b101935f
...
...
@@ -12,32 +12,6 @@
#include "av1/common/onyxc_int.h"
#include "av1/common/entropymv.h"
const
aom_tree_index
av1_mv_joint_tree
[
TREE_SIZE
(
MV_JOINTS
)]
=
{
-
MV_JOINT_ZERO
,
2
,
-
MV_JOINT_HNZVZ
,
4
,
-
MV_JOINT_HZVNZ
,
-
MV_JOINT_HNZVNZ
};
/* clang-format off */
const
aom_tree_index
av1_mv_class_tree
[
TREE_SIZE
(
MV_CLASSES
)]
=
{
-
MV_CLASS_0
,
2
,
-
MV_CLASS_1
,
4
,
6
,
8
,
-
MV_CLASS_2
,
-
MV_CLASS_3
,
10
,
12
,
-
MV_CLASS_4
,
-
MV_CLASS_5
,
-
MV_CLASS_6
,
14
,
16
,
18
,
-
MV_CLASS_7
,
-
MV_CLASS_8
,
-
MV_CLASS_9
,
-
MV_CLASS_10
,
};
/* clang-format on */
const
aom_tree_index
av1_mv_class0_tree
[
TREE_SIZE
(
CLASS0_SIZE
)]
=
{
-
0
,
-
1
,
};
const
aom_tree_index
av1_mv_fp_tree
[
TREE_SIZE
(
MV_FP_SIZE
)]
=
{
-
0
,
2
,
-
1
,
4
,
-
2
,
-
3
};
static
const
nmv_context
default_nmv_context
=
{
{
AOM_CDF4
(
4096
,
11264
,
19328
)
},
// joints_cdf
{
{
...
...
av1/common/entropymv.h
View file @
b101935f
...
...
@@ -75,11 +75,6 @@ typedef enum {
#define MV_UPP ((1 << MV_IN_USE_BITS) - 1)
#define MV_LOW (-(1 << MV_IN_USE_BITS))
extern
const
aom_tree_index
av1_mv_joint_tree
[];
extern
const
aom_tree_index
av1_mv_class_tree
[];
extern
const
aom_tree_index
av1_mv_class0_tree
[];
extern
const
aom_tree_index
av1_mv_fp_tree
[];
typedef
struct
{
aom_cdf_prob
classes_cdf
[
CDF_SIZE
(
MV_CLASSES
)];
aom_cdf_prob
class0_fp_cdf
[
CLASS0_SIZE
][
CDF_SIZE
(
MV_FP_SIZE
)];
...
...
av1/encoder/bitstream.c
View file @
b101935f
...
...
@@ -67,12 +67,6 @@ static INLINE void write_uniform(aom_writer *w, int n, int v) {
}
}
static
struct
av1_token
interintra_mode_encodings
[
INTERINTRA_MODES
];
#if CONFIG_JNT_COMP
static
struct
av1_token
compound_type_encodings
[
COMPOUND_TYPES
-
1
];
#else
static
struct
av1_token
compound_type_encodings
[
COMPOUND_TYPES
];
#endif // CONFIG_JNT_COMP
#if CONFIG_LOOP_RESTORATION
static
void
loop_restoration_write_sb_coeffs
(
const
AV1_COMMON
*
const
cm
,
MACROBLOCKD
*
xd
,
...
...
@@ -99,10 +93,6 @@ static int remux_tiles(const AV1_COMMON *const cm, uint8_t *dst,
int
*
const
tile_size_bytes
,
int
*
const
tile_col_size_bytes
);
#endif
void
av1_encode_token_init
(
void
)
{
av1_tokens_from_tree
(
interintra_mode_encodings
,
av1_interintra_mode_tree
);
av1_tokens_from_tree
(
compound_type_encodings
,
av1_compound_type_tree
);
}
static
void
write_intra_mode_kf
(
FRAME_CONTEXT
*
frame_ctx
,
const
MODE_INFO
*
mi
,
const
MODE_INFO
*
above_mi
,
...
...
av1/encoder/bitstream.h
View file @
b101935f
...
...
@@ -31,8 +31,6 @@ uint32_t write_obu_header(OBU_TYPE obu_type, int obu_extension,
void
av1_pack_bitstream
(
AV1_COMP
*
const
cpi
,
uint8_t
*
dest
,
size_t
*
size
);
void
av1_encode_token_init
(
void
);
static
INLINE
int
av1_preserve_existing_gf
(
AV1_COMP
*
cpi
)
{
// Do not swap gf and arf indices for internal overlay frames
return
!
cpi
->
multi_arf_allowed
&&
cpi
->
rc
.
is_src_frame_alt_ref
&&
...
...
av1/encoder/encodemv.c
View file @
b101935f
...
...
@@ -20,16 +20,6 @@
#include "aom_dsp/aom_dsp_common.h"
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
];
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_fp_encodings
,
av1_mv_fp_tree
);
}
static
void
encode_mv_component
(
aom_writer
*
w
,
int
comp
,
nmv_component
*
mvcomp
,
MvSubpelPrecision
precision
)
{
int
offset
;
...
...
av1/encoder/encodemv.h
View file @
b101935f
...
...
@@ -18,8 +18,6 @@
extern
"C"
{
#endif
void
av1_entropy_mv_init
(
void
);
void
av1_encode_mv
(
AV1_COMP
*
cpi
,
aom_writer
*
w
,
const
MV
*
mv
,
const
MV
*
ref
,
nmv_context
*
mvctx
,
int
usehp
);
...
...
av1/encoder/encoder.c
View file @
b101935f
...
...
@@ -451,8 +451,6 @@ void av1_initialize_enc(void) {
#if !CONFIG_XIPHRC
av1_rc_init_minq_luts
();
#endif
av1_entropy_mv_init
();
av1_encode_token_init
();
av1_init_wedge_masks
();
init_done
=
1
;
}
...
...
av1/encoder/tokenize.c
View file @
b101935f
...
...
@@ -76,23 +76,6 @@ const int *av1_dct_cat_lt_10_value_cost =
dct_cat_lt_10_value_cost
+
(
sizeof
(
dct_cat_lt_10_value_cost
)
/
sizeof
(
*
dct_cat_lt_10_value_cost
))
/
2
;
// Array indices are identical to previously-existing CONTEXT_NODE indices
/* clang-format off */
const
aom_tree_index
av1_coef_tree
[
TREE_SIZE
(
ENTROPY_TOKENS
)]
=
{
-
EOB_TOKEN
,
2
,
// 0 = EOB
-
ZERO_TOKEN
,
4
,
// 1 = ZERO
-
ONE_TOKEN
,
6
,
// 2 = ONE
8
,
12
,
// 3 = LOW_VAL
-
TWO_TOKEN
,
10
,
// 4 = TWO
-
THREE_TOKEN
,
-
FOUR_TOKEN
,
// 5 = THREE
14
,
16
,
// 6 = HIGH_LOW
-
CATEGORY1_TOKEN
,
-
CATEGORY2_TOKEN
,
// 7 = CAT_ONE
18
,
20
,
// 8 = CAT_THREEFOUR
-
CATEGORY3_TOKEN
,
-
CATEGORY4_TOKEN
,
// 9 = CAT_THREE
-
CATEGORY5_TOKEN
,
-
CATEGORY6_TOKEN
// 10 = CAT_FIVE
};
/* clang-format on */
static
const
int16_t
zero_cost
[]
=
{
0
};
static
const
int16_t
sign_cost
[
1
]
=
{
512
};
static
const
int16_t
cat1_cost
[
1
<<
1
]
=
{
864
,
1229
};
...
...
av1/encoder/tokenize.h
View file @
b101935f
...
...
@@ -13,9 +13,8 @@
#define AV1_ENCODER_TOKENIZE_H_
#include "av1/common/entropy.h"
#include "av1/encoder/block.h"
#include "a
v1/encoder/tree
writer.h"
#include "a
om_dsp/bit
writer.h"
#ifdef __cplusplus
extern
"C"
{
...
...
@@ -46,9 +45,6 @@ typedef struct {
uint8_t
token
;
}
TOKENEXTRA
;
extern
const
aom_tree_index
av1_coef_tree
[];
extern
const
aom_tree_index
av1_coef_con_tree
[];
int
av1_is_skippable_in_plane
(
MACROBLOCK
*
x
,
BLOCK_SIZE
bsize
,
int
plane
);
struct
AV1_COMP
;
...
...
av1/encoder/treewriter.c
deleted
100644 → 0
View file @
b499120e
/*
* Copyright (c) 2016, Alliance for Open Media. All rights reserved
*
* This source code is subject to the terms of the BSD 2 Clause License and
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
* was not distributed with this source code in the LICENSE file, you can
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
* Media Patent License 1.0 was not distributed with this source code in the
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
#include "av1/encoder/treewriter.h"
static
void
tree2tok
(
struct
av1_token
*
tokens
,
const
aom_tree_index
*
tree
,
int
i
,
int
v
,
int
l
)
{
v
+=
v
;
++
l
;
do
{
const
aom_tree_index
j
=
tree
[
i
++
];
if
(
j
<=
0
)
{
tokens
[
-
j
].
value
=
v
;
tokens
[
-
j
].
len
=
l
;
}
else
{
tree2tok
(
tokens
,
tree
,
j
,
v
,
l
);
}
}
while
(
++
v
&
1
);
}
void
av1_tokens_from_tree
(
struct
av1_token
*
tokens
,
const
aom_tree_index
*
tree
)
{
tree2tok
(
tokens
,
tree
,
0
,
0
,
0
);
}
static
unsigned
int
convert_distribution
(
unsigned
int
i
,
aom_tree
tree
,
unsigned
int
branch_ct
[][
2
],
const
unsigned
int
num_events
[])
{
unsigned
int
left
,
right
;
if
(
tree
[
i
]
<=
0
)
left
=
num_events
[
-
tree
[
i
]];
else
left
=
convert_distribution
(
tree
[
i
],
tree
,
branch_ct
,
num_events
);
if
(
tree
[
i
+
1
]
<=
0
)
right
=
num_events
[
-
tree
[
i
+
1
]];
else
right
=
convert_distribution
(
tree
[
i
+
1
],
tree
,
branch_ct
,
num_events
);
branch_ct
[
i
>>
1
][
0
]
=
left
;
branch_ct
[
i
>>
1
][
1
]
=
right
;
return
left
+
right
;
}
void
av1_tree_probs_from_distribution
(
aom_tree
tree
,
unsigned
int
branch_ct
[
/* n-1 */
][
2
],
const
unsigned
int
num_events
[
/* n */
])
{
convert_distribution
(
0
,
tree
,
branch_ct
,
num_events
);
}
av1/encoder/treewriter.h
deleted
100644 → 0
View file @
b499120e
/*
* Copyright (c) 2016, Alliance for Open Media. All rights reserved
*
* This source code is subject to the terms of the BSD 2 Clause License and
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
* was not distributed with this source code in the LICENSE file, you can
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
* Media Patent License 1.0 was not distributed with this source code in the
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
#ifndef AV1_ENCODER_TREEWRITER_H_
#define AV1_ENCODER_TREEWRITER_H_
#include "aom_dsp/bitwriter.h"
#ifdef __cplusplus
extern
"C"
{
#endif
void
av1_tree_probs_from_distribution
(
aom_tree
tree
,
unsigned
int
branch_ct
[
/* n - 1 */
][
2
],
const
unsigned
int
num_events
[
/* n */
]);
struct
av1_token
{
int
value
;
int
len
;
};
void
av1_tokens_from_tree
(
struct
av1_token
*
,
const
aom_tree_index
*
);
static
INLINE
void
av1_write_token
(
aom_writer
*
w
,
const
aom_tree_index
*
tree
,
const
aom_prob
*
probs
,
const
struct
av1_token
*
token
)
{
aom_write_tree
(
w
,
tree
,
probs
,
token
->
value
,
token
->
len
,
0
);
}
#ifdef __cplusplus
}
// extern "C"
#endif
#endif // AV1_ENCODER_TREEWRITER_H_
tools/aom_entropy_optimizer.c
View file @
b101935f
...
...
@@ -414,9 +414,6 @@ int main(int argc, const char **argv) {
cts_each_dim
[
0
]
=
DRL_MODE_CONTEXTS
;
cts_each_dim
[
1
]
=
2
;
optimize_entropy_table
(
&
fc
.
drl_mode
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
NULL
,
1
,
"static const aom_prob default_drl_prob[DRL_MODE_CONTEXTS]"
);
optimize_cdf_table
(
&
fc
.
drl_mode
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
"static const aom_cdf_prob "
"default_drl_cdf[DRL_MODE_CONTEXTS][CDF_SIZE(2)]"
);
...
...
@@ -462,11 +459,6 @@ int main(int argc, const char **argv) {
/* motion_var and warped_motion experiments */
cts_each_dim
[
0
]
=
BLOCK_SIZES_ALL
;
cts_each_dim
[
1
]
=
MOTION_MODES
;
optimize_entropy_table
(
&
fc
.
motion_mode
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
av1_motion_mode_tree
,
0
,
"static const aom_prob default_motion_mode_prob[BLOCK_SIZES]"
"[MOTION_MODES - 1]"
);
optimize_cdf_table
(
&
fc
.
motion_mode
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
"static const aom_cdf_prob
\n
"
...
...
@@ -480,10 +472,6 @@ int main(int argc, const char **argv) {
/* Intra/inter flag */
cts_each_dim
[
0
]
=
INTRA_INTER_CONTEXTS
;
cts_each_dim
[
1
]
=
2
;
optimize_entropy_table
(
&
fc
.
intra_inter
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
NULL
,
1
,
"static const aom_prob default_intra_inter_p"
"[INTRA_INTER_CONTEXTS]"
);
optimize_cdf_table
(
&
fc
.
intra_inter
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
"static const aom_cdf_prob
\n
"
...
...
@@ -492,10 +480,6 @@ int main(int argc, const char **argv) {
/* Single/comp ref flag */
cts_each_dim
[
0
]
=
COMP_INTER_CONTEXTS
;
cts_each_dim
[
1
]
=
2
;
optimize_entropy_table
(
&
fc
.
comp_inter
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
NULL
,
1
,
"static const aom_prob default_comp_inter_p"
"[COMP_INTER_CONTEXTS]"
);
optimize_cdf_table
(
&
fc
.
comp_inter
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
"static const aom_cdf_prob
\n
"
...
...
@@ -505,9 +489,6 @@ int main(int argc, const char **argv) {
#if CONFIG_EXT_COMP_REFS
cts_each_dim
[
0
]
=
COMP_REF_TYPE_CONTEXTS
;
cts_each_dim
[
1
]
=
2
;
optimize_entropy_table
(
&
fc
.
comp_ref_type
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
NULL
,
1
,
"static const aom_prob default_comp_ref_type_p[COMP_REF_TYPE_CONTEXTS]"
);
optimize_cdf_table
(
&
fc
.
comp_ref_type
[
0
][
0
],
probsfile
,
2
,
cts_each_dim
,
"static const aom_cdf_prob
\n
"
...
...
@@ -516,10 +497,6 @@ int main(int argc, const char **argv) {
cts_each_dim
[
0
]
=
UNI_COMP_REF_CONTEXTS
;
cts_each_dim
[
1
]
=
UNIDIR_COMP_REFS
-
1
;
cts_each_dim
[
2
]
=
2
;
optimize_entropy_table
(
&
fc
.
uni_comp_ref
[
0
][
0
][
0
],
probsfile
,
3
,
cts_each_dim
,
NULL
,
1
,
"static const aom_prob
\n
"
"default_uni_comp_ref_p[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1]"
);
optimize_cdf_table
(
&
fc
.
uni_comp_ref
[
0
][
0
][
0
],
probsfile
,
3
,
cts_each_dim
,
"static const aom_cdf_prob
\n
"
"default_uni_comp_ref_cdf[UNI_COMP_REF_CONTEXTS][UNIDIR_"
...
...
@@ -530,10 +507,6 @@ int main(int argc, const char **argv) {
cts_each_dim
[
0
]
=
REF_CONTEXTS
;
cts_each_dim
[
1
]
=
SINGLE_REFS
-
1
;
cts_each_d