// Block size used for force_integer_mv decisions #define FORCE_INT_MV_DECISION_BLOCK_SIZE 8
// store a block's hash info. // x and y are the position from the top left of the picture // hash_value2 is used to store the second hash value typedefstruct _block_hash {
int16_t x;
int16_t y;
uint32_t hash_value2;
} block_hash;
typedefstruct _hash_table { // a dynamically allocated array of kMaxAddr elements
Vector **p_lookup_table;
} hash_table;
struct intrabc_hash_info;
typedefstruct intrabc_hash_info { // buffer for hash value calculation of a block // used only in av1_get_block_hash_value() // [two buffers used ping-pong] // buffers are AOM_BUFFER_SIZE_FOR_BLOCK_HASH elements long
uint32_t *hash_value_buffer[2];
hash_table intrabc_hash_table;
CRC32C crc_calculator;
int crc_initialized;
} IntraBCHashInfo;
// check whether the block starts from (x_start, y_start) with the size of // block_size x block_size has the same color in all rows
int av1_hash_is_horizontal_perfect(const YV12_BUFFER_CONFIG *picture,
int block_size, int x_start, int y_start); // check whether the block starts from (x_start, y_start) with the size of // block_size x block_size has the same color in all columns
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 *intra_bc_hash_info, const uint8_t *y_src, int stride, int block_size,
uint32_t *hash_value1, uint32_t *hash_value2,
int use_highbitdepth);
#ifdef __cplusplus
} // extern "C" #endif
#endif// AOM_AV1_ENCODER_HASH_MOTION_H_
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-08-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.