27static const uint32_t
pixel_mask[3] = { 0xffffffff, 0x01ff01ff, 0x03ff03ff };
29#define SIZEOF_PIXEL ((bit_depth + 7) / 8)
32#define randomize_ref_buffers() \
34 uint32_t mask = pixel_mask[bit_depth - 8]; \
35 for (int i = -4; i < PRED_SIZE; i += 4) { \
36 uint32_t r = rnd() & mask; \
37 AV_WN32A(top + i, r); \
38 AV_WN32A(left + i, r); \
45 const char *
const block_name[] = {
"4x4",
"8x8",
"16x16",
"32x32" };
46 const int block_size[] = { 4, 8, 16, 32 };
54 int log2_size,
int c_idx);
57 for (log2_size = 2; log2_size <= 5; log2_size++) {
58 int size = block_size[log2_size - 2];
90 const char *
const block_name[] = {
"4x4",
"8x8",
"16x16",
"32x32" };
91 const int block_size[] = { 4, 8, 16, 32 };
101 for (
i = 0;
i < 4;
i++) {
102 int size = block_size[
i];
104 if (
check_func(
h->pred_planar[
i],
"hevc_pred_planar_%s_%d",
135 const char *
const block_name[] = {
"4x4",
"8x8",
"16x16",
"32x32" };
136 const int block_size[] = { 4, 8, 16, 32 };
146 for (
i = 0;
i < 4;
i++) {
147 int size = block_size[
i];
151 const char *mode_category;
155 mode_category =
"Hpure";
157 mode_category =
"Vpure";
159 mode_category =
"Hpos";
161 mode_category =
"Hneg";
163 mode_category =
"Vneg";
165 mode_category =
"Vpos";
168 "hevc_pred_angular_%s_%s_mode%d_%d",
202 const char *
const block_name[] = {
"8x8",
"16x16",
"32x32" };
203 const int block_size[] = { 8, 16, 32 };
209 declare_func(
void, uint8_t *filtered_left, uint8_t *filtered_top,
210 const uint8_t *
left,
const uint8_t *top,
int size);
212 for (
i = 0;
i < 3;
i++) {
213 int size = block_size[
i];
217 "hevc_ref_filter_3tap_%s_%d",
226 uint8_t *fl_ref = fl_ref_buf + 8;
227 uint8_t *fl_new = fl_new_buf + 8;
228 uint8_t *ft_ref = ft_ref_buf + 8;
229 uint8_t *ft_new = ft_new_buf + 8;
255 uint8_t *top, uint8_t *
left,
265 "hevc_ref_filter_strong_%d",
bit_depth)) {
270 uint8_t *ft_ref = ft_ref_buf + 8;
271 uint8_t *ft_new = ft_new_buf + 8;
272 uint8_t *left_ref = left_ref_buf + 8;
273 uint8_t *left_new = left_new_buf + 8;
307 uint8_t *top = top_buf + 8;
308 uint8_t *
left = left_buf + 8;
341 report(
"ref_filter_3tap");
349 report(
"ref_filter_strong");
static void bit_depth(AudioStatsContext *s, const uint64_t *const mask, uint8_t *depth)
static int BS_FUNC left(const BSCTX *bc)
Return the number of the bits left in a buffer.
#define i(width, name, range_min, range_max)
#define checkasm_check_pixel_padded(...)
#define CLEAR_PIXEL_RECT(name)
#define PIXEL_RECT(name, w, h)
static void check_pred_planar(HEVCPredContext *h, uint8_t *top, uint8_t *left, int bit_depth)
static void check_pred_angular(HEVCPredContext *h, uint8_t *top, uint8_t *left, int bit_depth)
static void check_ref_filter_strong(HEVCPredContext *h, uint8_t *top, uint8_t *left, int bit_depth)
static void check_ref_filter_3tap(HEVCPredContext *h, uint8_t *top, uint8_t *left, int bit_depth)
void checkasm_check_hevc_pred(void)
static void check_pred_dc(HEVCPredContext *h, uint8_t *top, uint8_t *left, int bit_depth)
#define randomize_ref_buffers()
#define LOCAL_ALIGNED_32(t, v,...)
void ff_hevc_pred_init(HEVCPredContext *hpc, int bit_depth)
static const uint32_t pixel_mask[5]