| Index: source/libvpx/vp9/common/vp9_entropy.h
|
| ===================================================================
|
| --- source/libvpx/vp9/common/vp9_entropy.h (revision 223100)
|
| +++ source/libvpx/vp9/common/vp9_entropy.h (working copy)
|
| @@ -95,7 +95,7 @@
|
| #define MODULUS_PARAM 13 /* Modulus parameter */
|
|
|
| struct VP9Common;
|
| -void vp9_default_coef_probs(struct VP9Common *);
|
| +void vp9_default_coef_probs(struct VP9Common *cm);
|
| extern DECLARE_ALIGNED(16, const int16_t, vp9_default_scan_4x4[16]);
|
|
|
| extern DECLARE_ALIGNED(16, const int16_t, vp9_col_scan_4x4[16]);
|
| @@ -154,7 +154,7 @@
|
| vp9_default_scan_32x32_neighbors[1025 * MAX_NEIGHBORS]);
|
|
|
| void vp9_coef_tree_initialize(void);
|
| -void vp9_adapt_coef_probs(struct VP9Common *);
|
| +void vp9_adapt_coef_probs(struct VP9Common *cm);
|
|
|
| static INLINE void reset_skip_context(MACROBLOCKD *xd, BLOCK_SIZE bsize) {
|
| int i;
|
| @@ -336,6 +336,45 @@
|
| }
|
| }
|
|
|
| +static int get_entropy_context(const MACROBLOCKD *xd, TX_SIZE tx_size,
|
| + PLANE_TYPE type, int block_idx,
|
| + ENTROPY_CONTEXT *A, ENTROPY_CONTEXT *L,
|
| + const int16_t **scan,
|
| + const uint8_t **band_translate) {
|
| + ENTROPY_CONTEXT above_ec = 0, left_ec = 0;
|
| +
|
| + switch (tx_size) {
|
| + case TX_4X4:
|
| + *scan = get_scan_4x4(get_tx_type_4x4(type, xd, block_idx));
|
| + *band_translate = vp9_coefband_trans_4x4;
|
| + above_ec = A[0] != 0;
|
| + left_ec = L[0] != 0;
|
| + break;
|
| + case TX_8X8:
|
| + *scan = get_scan_8x8(get_tx_type_8x8(type, xd));
|
| + *band_translate = vp9_coefband_trans_8x8plus;
|
| + above_ec = !!*(uint16_t *)A;
|
| + left_ec = !!*(uint16_t *)L;
|
| + break;
|
| + case TX_16X16:
|
| + *scan = get_scan_16x16(get_tx_type_16x16(type, xd));
|
| + *band_translate = vp9_coefband_trans_8x8plus;
|
| + above_ec = !!*(uint32_t *)A;
|
| + left_ec = !!*(uint32_t *)L;
|
| + break;
|
| + case TX_32X32:
|
| + *scan = vp9_default_scan_32x32;
|
| + *band_translate = vp9_coefband_trans_8x8plus;
|
| + above_ec = !!*(uint64_t *)A;
|
| + left_ec = !!*(uint64_t *)L;
|
| + break;
|
| + default:
|
| + assert(!"Invalid transform size.");
|
| + }
|
| +
|
| + return combine_entropy_contexts(above_ec, left_ec);
|
| +}
|
| +
|
| enum { VP9_COEF_UPDATE_PROB = 252 };
|
|
|
| #endif // VP9_COMMON_VP9_ENTROPY_H_
|
|
|