hash.h (1270B)
1 /* 2 * Copyright (c) 2016, Alliance for Open Media. All rights reserved. 3 * 4 * This source code is subject to the terms of the BSD 2 Clause License and 5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License 6 * was not distributed with this source code in the LICENSE file, you can 7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open 8 * Media Patent License 1.0 was not distributed with this source code in the 9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent. 10 */ 11 12 #ifndef AOM_AV1_ENCODER_HASH_H_ 13 #define AOM_AV1_ENCODER_HASH_H_ 14 15 #include "aom/aom_integer.h" 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 // CRC32C: POLY = 0x82f63b78; 22 typedef struct _CRC32C { 23 /* Table for a quadword-at-a-time software crc. */ 24 uint32_t table[8][256]; 25 } CRC32C; 26 27 // init table for software version crc32c 28 void av1_crc32c_calculator_init(CRC32C *p_crc32c); 29 30 // Maximum number of subblocks per block 31 // The biggest intraBC block size supported by AV1 is 128x128, and the smallest 32 // subblock size is 2x2, therefore there can be a maximum of (128/2) * (128/2) 33 // subblocks per block: 64 * 64 = 4096 34 #define AOM_BUFFER_SIZE_FOR_BLOCK_HASH (4096) 35 36 #ifdef __cplusplus 37 } // extern "C" 38 #endif 39 40 #endif // AOM_AV1_ENCODER_HASH_H_