1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/media/libvpx/vp9/common/vp9_enums.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,90 @@ 1.4 +/* 1.5 + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 1.6 + * 1.7 + * Use of this source code is governed by a BSD-style license 1.8 + * that can be found in the LICENSE file in the root of the source 1.9 + * tree. An additional intellectual property rights grant can be found 1.10 + * in the file PATENTS. All contributing project authors may 1.11 + * be found in the AUTHORS file in the root of the source tree. 1.12 + */ 1.13 + 1.14 +#ifndef VP9_COMMON_VP9_ENUMS_H_ 1.15 +#define VP9_COMMON_VP9_ENUMS_H_ 1.16 + 1.17 +#include "./vpx_config.h" 1.18 + 1.19 +#define MI_SIZE_LOG2 3 1.20 +#define MI_BLOCK_SIZE_LOG2 (6 - MI_SIZE_LOG2) // 64 = 2^6 1.21 + 1.22 +#define MI_SIZE (1 << MI_SIZE_LOG2) // pixels per mi-unit 1.23 +#define MI_BLOCK_SIZE (1 << MI_BLOCK_SIZE_LOG2) // mi-units per max block 1.24 + 1.25 +#define MI_MASK (MI_BLOCK_SIZE - 1) 1.26 + 1.27 + 1.28 +typedef enum BLOCK_SIZE { 1.29 + BLOCK_4X4, 1.30 + BLOCK_4X8, 1.31 + BLOCK_8X4, 1.32 + BLOCK_8X8, 1.33 + BLOCK_8X16, 1.34 + BLOCK_16X8, 1.35 + BLOCK_16X16, 1.36 + BLOCK_16X32, 1.37 + BLOCK_32X16, 1.38 + BLOCK_32X32, 1.39 + BLOCK_32X64, 1.40 + BLOCK_64X32, 1.41 + BLOCK_64X64, 1.42 + BLOCK_SIZES, 1.43 + BLOCK_INVALID = BLOCK_SIZES 1.44 +} BLOCK_SIZE; 1.45 + 1.46 +typedef enum PARTITION_TYPE { 1.47 + PARTITION_NONE, 1.48 + PARTITION_HORZ, 1.49 + PARTITION_VERT, 1.50 + PARTITION_SPLIT, 1.51 + PARTITION_TYPES, 1.52 + PARTITION_INVALID = PARTITION_TYPES 1.53 +} PARTITION_TYPE; 1.54 + 1.55 +#define PARTITION_PLOFFSET 4 // number of probability models per block size 1.56 +#define PARTITION_CONTEXTS (4 * PARTITION_PLOFFSET) 1.57 + 1.58 +typedef enum { 1.59 + TX_4X4 = 0, // 4x4 dct transform 1.60 + TX_8X8 = 1, // 8x8 dct transform 1.61 + TX_16X16 = 2, // 16x16 dct transform 1.62 + TX_32X32 = 3, // 32x32 dct transform 1.63 + TX_SIZES 1.64 +} TX_SIZE; 1.65 + 1.66 +typedef enum { 1.67 + ONLY_4X4 = 0, 1.68 + ALLOW_8X8 = 1, 1.69 + ALLOW_16X16 = 2, 1.70 + ALLOW_32X32 = 3, 1.71 + TX_MODE_SELECT = 4, 1.72 + TX_MODES = 5, 1.73 +} TX_MODE; 1.74 + 1.75 +typedef enum { 1.76 + DCT_DCT = 0, // DCT in both horizontal and vertical 1.77 + ADST_DCT = 1, // ADST in vertical, DCT in horizontal 1.78 + DCT_ADST = 2, // DCT in vertical, ADST in horizontal 1.79 + ADST_ADST = 3 // ADST in both directions 1.80 +} TX_TYPE; 1.81 + 1.82 +typedef enum { 1.83 + UNKNOWN = 0, 1.84 + BT_601 = 1, // YUV 1.85 + BT_709 = 2, // YUV 1.86 + SMPTE_170 = 3, // YUV 1.87 + SMPTE_240 = 4, // YUV 1.88 + RESERVED_1 = 5, 1.89 + RESERVED_2 = 6, 1.90 + SRGB = 7 // RGB 1.91 +} COLOR_SPACE; 1.92 + 1.93 +#endif // VP9_COMMON_VP9_ENUMS_H_