#include <assert.h>
#include <stdbool.h>
#include "config/av1_rtcd.h"
#include "av1/encoder/block.h"
#include "av1/encoder/hash.h"
#include "av1/encoder/hash_motion.h"
#define kSrcBits …
#define kBlockSizeBits …
#define kMaxAddr …
static void get_pixels_in_1D_char_array_by_block_2x2(const uint8_t *y_src,
int stride,
uint8_t *p_pixels_in1D) { … }
static void get_pixels_in_1D_short_array_by_block_2x2(const uint16_t *y_src,
int stride,
uint16_t *p_pixels_in1D) { … }
static int is_block_2x2_row_same_value(const uint8_t *p) { … }
static int is_block16_2x2_row_same_value(const uint16_t *p) { … }
static int is_block_2x2_col_same_value(const uint8_t *p) { … }
static int is_block16_2x2_col_same_value(const uint16_t *p) { … }
static int hash_block_size_to_index(int block_size) { … }
void av1_hash_table_init(IntraBCHashInfo *intrabc_hash_info) { … }
static void clear_all(hash_table *p_hash_table) { … }
void av1_hash_table_destroy(hash_table *p_hash_table) { … }
bool av1_hash_table_create(hash_table *p_hash_table) { … }
static bool hash_table_add_to_table(hash_table *p_hash_table,
uint32_t hash_value,
block_hash *curr_block_hash) { … }
int32_t av1_hash_table_count(const hash_table *p_hash_table,
uint32_t hash_value) { … }
Iterator av1_hash_get_first_iterator(hash_table *p_hash_table,
uint32_t hash_value) { … }
void av1_generate_block_2x2_hash_value(IntraBCHashInfo *intrabc_hash_info,
const YV12_BUFFER_CONFIG *picture,
uint32_t *pic_block_hash[2],
int8_t *pic_block_same_info[3]) { … }
void av1_generate_block_hash_value(IntraBCHashInfo *intrabc_hash_info,
const YV12_BUFFER_CONFIG *picture,
int block_size,
uint32_t *src_pic_block_hash[2],
uint32_t *dst_pic_block_hash[2],
int8_t *src_pic_block_same_info[3],
int8_t *dst_pic_block_same_info[3]) { … }
bool av1_add_to_hash_map_by_row_with_precal_data(hash_table *p_hash_table,
uint32_t *pic_hash[2],
int8_t *pic_is_same,
int pic_width, int pic_height,
int block_size) { … }
int av1_hash_is_horizontal_perfect(const YV12_BUFFER_CONFIG *picture,
int block_size, int x_start, int y_start) { … }
int av1_hash_is_vertical_perfect(const YV12_BUFFER_CONFIG *picture,
int block_size, int x_start, int y_start) { … }
void av1_get_block_hash_value(IntraBCHashInfo *intrabc_hash_info,
const uint8_t *y_src, int stride, int block_size,
uint32_t *hash_value1, uint32_t *hash_value2,
int use_highbitdepth) { … }