Commit 7906ed09 authored by Deb Mukherjee's avatar Deb Mukherjee Committed by Gerrit Code Review
Browse files

Merge "Merging the hybrid transform experiments" into experimental

parents 372e001d f1046563
...@@ -221,12 +221,9 @@ EXPERIMENT_LIST=" ...@@ -221,12 +221,9 @@ EXPERIMENT_LIST="
superblocks superblocks
pred_filter pred_filter
lossless lossless
hybridtransform
hybridtransform8x8
switchable_interp switchable_interp
newbestrefmv newbestrefmv
new_mvref new_mvref
hybridtransform16x16
newmventropy newmventropy
tx_select tx_select
" "
......
...@@ -135,14 +135,12 @@ typedef enum { ...@@ -135,14 +135,12 @@ typedef enum {
TX_SIZE_MAX // Number of different transforms available TX_SIZE_MAX // Number of different transforms available
} TX_SIZE; } TX_SIZE;
#if CONFIG_HYBRIDTRANSFORM8X8 || CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM16X16
typedef enum { typedef enum {
DCT_DCT = 0, // DCT in both horizontal and vertical DCT_DCT = 0, // DCT in both horizontal and vertical
ADST_DCT = 1, // ADST in horizontal, DCT in vertical ADST_DCT = 1, // ADST in horizontal, DCT in vertical
DCT_ADST = 2, // DCT in horizontal, ADST in vertical DCT_ADST = 2, // DCT in horizontal, ADST in vertical
ADST_ADST = 3 // ADST in both directions ADST_ADST = 3 // ADST in both directions
} TX_TYPE; } TX_TYPE;
#endif
#define VP8_YMODES (B_PRED + 1) #define VP8_YMODES (B_PRED + 1)
#define VP8_UV_MODES (TM_PRED + 1) #define VP8_UV_MODES (TM_PRED + 1)
...@@ -184,9 +182,7 @@ typedef enum { ...@@ -184,9 +182,7 @@ typedef enum {
union b_mode_info { union b_mode_info {
struct { struct {
B_PREDICTION_MODE first; B_PREDICTION_MODE first;
#if CONFIG_HYBRIDTRANSFORM8X8 || CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM16X16
TX_TYPE tx_type; TX_TYPE tx_type;
#endif
#if CONFIG_COMP_INTRA_PRED #if CONFIG_COMP_INTRA_PRED
B_PREDICTION_MODE second; B_PREDICTION_MODE second;
...@@ -388,17 +384,11 @@ typedef struct MacroBlockD { ...@@ -388,17 +384,11 @@ typedef struct MacroBlockD {
} MACROBLOCKD; } MACROBLOCKD;
#if CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM16X16
#define ACTIVE_HT 110 // quantization stepsize threshold #define ACTIVE_HT 110 // quantization stepsize threshold
#endif
#if CONFIG_HYBRIDTRANSFORM8X8
#define ACTIVE_HT8 300 #define ACTIVE_HT8 300
#endif
#if CONFIG_HYBRIDTRANSFORM16X16
#define ACTIVE_HT16 300 #define ACTIVE_HT16 300
#endif
// convert MB_PREDICTION_MODE to B_PREDICTION_MODE // convert MB_PREDICTION_MODE to B_PREDICTION_MODE
static B_PREDICTION_MODE pred_mode_conv(MB_PREDICTION_MODE mode) { static B_PREDICTION_MODE pred_mode_conv(MB_PREDICTION_MODE mode) {
...@@ -442,7 +432,6 @@ static B_PREDICTION_MODE pred_mode_conv(MB_PREDICTION_MODE mode) { ...@@ -442,7 +432,6 @@ static B_PREDICTION_MODE pred_mode_conv(MB_PREDICTION_MODE mode) {
return b_mode; return b_mode;
} }
#if CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM8X8 || CONFIG_HYBRIDTRANSFORM16X16
// transform mapping // transform mapping
static TX_TYPE txfm_map(B_PREDICTION_MODE bmode) { static TX_TYPE txfm_map(B_PREDICTION_MODE bmode) {
// map transform type // map transform type
...@@ -470,9 +459,7 @@ static TX_TYPE txfm_map(B_PREDICTION_MODE bmode) { ...@@ -470,9 +459,7 @@ static TX_TYPE txfm_map(B_PREDICTION_MODE bmode) {
} }
return tx_type; return tx_type;
} }
#endif
#if CONFIG_HYBRIDTRANSFORM
static TX_TYPE get_tx_type_4x4(const MACROBLOCKD *xd, const BLOCKD *b) { static TX_TYPE get_tx_type_4x4(const MACROBLOCKD *xd, const BLOCKD *b) {
TX_TYPE tx_type = DCT_DCT; TX_TYPE tx_type = DCT_DCT;
if (xd->mode_info_context->mbmi.mode == B_PRED && if (xd->mode_info_context->mbmi.mode == B_PRED &&
...@@ -481,9 +468,7 @@ static TX_TYPE get_tx_type_4x4(const MACROBLOCKD *xd, const BLOCKD *b) { ...@@ -481,9 +468,7 @@ static TX_TYPE get_tx_type_4x4(const MACROBLOCKD *xd, const BLOCKD *b) {
} }
return tx_type; return tx_type;
} }
#endif
#if CONFIG_HYBRIDTRANSFORM8X8
static TX_TYPE get_tx_type_8x8(const MACROBLOCKD *xd, const BLOCKD *b) { static TX_TYPE get_tx_type_8x8(const MACROBLOCKD *xd, const BLOCKD *b) {
TX_TYPE tx_type = DCT_DCT; TX_TYPE tx_type = DCT_DCT;
if (xd->mode_info_context->mbmi.mode == I8X8_PRED && if (xd->mode_info_context->mbmi.mode == I8X8_PRED &&
...@@ -492,9 +477,7 @@ static TX_TYPE get_tx_type_8x8(const MACROBLOCKD *xd, const BLOCKD *b) { ...@@ -492,9 +477,7 @@ static TX_TYPE get_tx_type_8x8(const MACROBLOCKD *xd, const BLOCKD *b) {
} }
return tx_type; return tx_type;
} }
#endif
#if CONFIG_HYBRIDTRANSFORM16X16
static TX_TYPE get_tx_type_16x16(const MACROBLOCKD *xd, const BLOCKD *b) { static TX_TYPE get_tx_type_16x16(const MACROBLOCKD *xd, const BLOCKD *b) {
TX_TYPE tx_type = DCT_DCT; TX_TYPE tx_type = DCT_DCT;
if (xd->mode_info_context->mbmi.mode < I8X8_PRED && if (xd->mode_info_context->mbmi.mode < I8X8_PRED &&
...@@ -503,34 +486,24 @@ static TX_TYPE get_tx_type_16x16(const MACROBLOCKD *xd, const BLOCKD *b) { ...@@ -503,34 +486,24 @@ static TX_TYPE get_tx_type_16x16(const MACROBLOCKD *xd, const BLOCKD *b) {
} }
return tx_type; return tx_type;
} }
#endif
#if CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM8X8 || \
CONFIG_HYBRIDTRANSFORM16X16
static TX_TYPE get_tx_type(const MACROBLOCKD *xd, const BLOCKD *b) { static TX_TYPE get_tx_type(const MACROBLOCKD *xd, const BLOCKD *b) {
TX_TYPE tx_type = DCT_DCT; TX_TYPE tx_type = DCT_DCT;
int ib = (b - xd->block); int ib = (b - xd->block);
if (ib >= 16) if (ib >= 16)
return tx_type; return tx_type;
#if CONFIG_HYBRIDTRANSFORM16X16
if (xd->mode_info_context->mbmi.txfm_size == TX_16X16) { if (xd->mode_info_context->mbmi.txfm_size == TX_16X16) {
tx_type = get_tx_type_16x16(xd, b); tx_type = get_tx_type_16x16(xd, b);
} }
#endif
#if CONFIG_HYBRIDTRANSFORM8X8
if (xd->mode_info_context->mbmi.txfm_size == TX_8X8) { if (xd->mode_info_context->mbmi.txfm_size == TX_8X8) {
ib = (ib & 8) + ((ib & 4) >> 1); ib = (ib & 8) + ((ib & 4) >> 1);
tx_type = get_tx_type_8x8(xd, &xd->block[ib]); tx_type = get_tx_type_8x8(xd, &xd->block[ib]);
} }
#endif
#if CONFIG_HYBRIDTRANSFORM
if (xd->mode_info_context->mbmi.txfm_size == TX_4X4) { if (xd->mode_info_context->mbmi.txfm_size == TX_4X4) {
tx_type = get_tx_type_4x4(xd, b); tx_type = get_tx_type_4x4(xd, b);
} }
#endif
return tx_type; return tx_type;
} }
#endif
extern void vp8_build_block_doffsets(MACROBLOCKD *xd); extern void vp8_build_block_doffsets(MACROBLOCKD *xd);
extern void vp8_setup_block_dptrs(MACROBLOCKD *xd); extern void vp8_setup_block_dptrs(MACROBLOCKD *xd);
......
...@@ -13,9 +13,9 @@ ...@@ -13,9 +13,9 @@
static const vp8_prob default_coef_probs [BLOCK_TYPES] static const vp8_prob default_coef_probs [BLOCK_TYPES]
[COEF_BANDS] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [PREV_COEF_CONTEXTS]
[ENTROPY_NODES] = { [ENTROPY_NODES] = {
{ {
/* Block Type ( 0 ) */ /* Block Type ( 0 ) */
{ {
...@@ -254,11 +254,10 @@ static const vp8_prob default_coef_probs [BLOCK_TYPES] ...@@ -254,11 +254,10 @@ static const vp8_prob default_coef_probs [BLOCK_TYPES]
} }
}; };
#if CONFIG_HYBRIDTRANSFORM
static const vp8_prob default_hybrid_coef_probs [BLOCK_TYPES] static const vp8_prob default_hybrid_coef_probs [BLOCK_TYPES]
[COEF_BANDS] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [PREV_COEF_CONTEXTS]
[ENTROPY_NODES] = { [ENTROPY_NODES] = {
{ {
/* Block Type ( 0 ) */ /* Block Type ( 0 ) */
{ {
...@@ -496,7 +495,6 @@ static const vp8_prob default_hybrid_coef_probs [BLOCK_TYPES] ...@@ -496,7 +495,6 @@ static const vp8_prob default_hybrid_coef_probs [BLOCK_TYPES]
} }
} }
}; };
#endif
static const vp8_prob static const vp8_prob
default_coef_probs_8x8[BLOCK_TYPES_8X8] default_coef_probs_8x8[BLOCK_TYPES_8X8]
...@@ -731,12 +729,11 @@ default_coef_probs_8x8[BLOCK_TYPES_8X8] ...@@ -731,12 +729,11 @@ default_coef_probs_8x8[BLOCK_TYPES_8X8]
} }
}; };
#if CONFIG_HYBRIDTRANSFORM8X8
static const vp8_prob static const vp8_prob
default_hybrid_coef_probs_8x8[BLOCK_TYPES_8X8] default_hybrid_coef_probs_8x8[BLOCK_TYPES_8X8]
[COEF_BANDS] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [PREV_COEF_CONTEXTS]
[ENTROPY_NODES] = { [ENTROPY_NODES] = {
{ {
/* block Type 0 */ /* block Type 0 */
{ {
...@@ -964,7 +961,6 @@ default_hybrid_coef_probs_8x8[BLOCK_TYPES_8X8] ...@@ -964,7 +961,6 @@ default_hybrid_coef_probs_8x8[BLOCK_TYPES_8X8]
} }
} }
}; };
#endif
static const vp8_prob static const vp8_prob
default_coef_probs_16x16[BLOCK_TYPES_16X16] default_coef_probs_16x16[BLOCK_TYPES_16X16]
...@@ -1173,7 +1169,6 @@ static const vp8_prob ...@@ -1173,7 +1169,6 @@ static const vp8_prob
} }
}; };
#if CONFIG_HYBRIDTRANSFORM16X16
static const vp8_prob static const vp8_prob
default_hybrid_coef_probs_16x16[BLOCK_TYPES_16X16] default_hybrid_coef_probs_16x16[BLOCK_TYPES_16X16]
[COEF_BANDS] [COEF_BANDS]
...@@ -1380,4 +1375,3 @@ static const vp8_prob ...@@ -1380,4 +1375,3 @@ static const vp8_prob
} }
} }
}; };
#endif
...@@ -64,8 +64,6 @@ DECLARE_ALIGNED(16, const int, vp8_default_zig_zag1d[16]) = { ...@@ -64,8 +64,6 @@ DECLARE_ALIGNED(16, const int, vp8_default_zig_zag1d[16]) = {
7, 11, 14, 15, 7, 11, 14, 15,
}; };
#if CONFIG_HYBRIDTRANSFORM
DECLARE_ALIGNED(16, const int, vp8_col_scan[16]) = { DECLARE_ALIGNED(16, const int, vp8_col_scan[16]) = {
0, 4, 8, 12, 0, 4, 8, 12,
1, 5, 9, 13, 1, 5, 9, 13,
...@@ -78,7 +76,6 @@ DECLARE_ALIGNED(16, const int, vp8_row_scan[16]) = { ...@@ -78,7 +76,6 @@ DECLARE_ALIGNED(16, const int, vp8_row_scan[16]) = {
8, 9, 10, 11, 8, 9, 10, 11,
12, 13, 14, 15 12, 13, 14, 15
}; };
#endif
DECLARE_ALIGNED(64, const int, vp8_coef_bands_8x8[64]) = { 0, 1, 2, 3, 5, 4, 4, 5, DECLARE_ALIGNED(64, const int, vp8_coef_bands_8x8[64]) = { 0, 1, 2, 3, 5, 4, 4, 5,
...@@ -208,25 +205,19 @@ vp8_extra_bit_struct vp8_extra_bits[12] = { ...@@ -208,25 +205,19 @@ vp8_extra_bit_struct vp8_extra_bits[12] = {
void vp8_default_coef_probs(VP8_COMMON *pc) { void vp8_default_coef_probs(VP8_COMMON *pc) {
vpx_memcpy(pc->fc.coef_probs, default_coef_probs, vpx_memcpy(pc->fc.coef_probs, default_coef_probs,
sizeof(pc->fc.coef_probs)); sizeof(pc->fc.coef_probs));
#if CONFIG_HYBRIDTRANSFORM
vpx_memcpy(pc->fc.hybrid_coef_probs, default_hybrid_coef_probs, vpx_memcpy(pc->fc.hybrid_coef_probs, default_hybrid_coef_probs,
sizeof(pc->fc.hybrid_coef_probs)); sizeof(pc->fc.hybrid_coef_probs));
#endif
vpx_memcpy(pc->fc.coef_probs_8x8, default_coef_probs_8x8, vpx_memcpy(pc->fc.coef_probs_8x8, default_coef_probs_8x8,
sizeof(pc->fc.coef_probs_8x8)); sizeof(pc->fc.coef_probs_8x8));
#if CONFIG_HYBRIDTRANSFORM8X8
vpx_memcpy(pc->fc.hybrid_coef_probs_8x8, default_hybrid_coef_probs_8x8, vpx_memcpy(pc->fc.hybrid_coef_probs_8x8, default_hybrid_coef_probs_8x8,
sizeof(pc->fc.hybrid_coef_probs_8x8)); sizeof(pc->fc.hybrid_coef_probs_8x8));
#endif
vpx_memcpy(pc->fc.coef_probs_16x16, default_coef_probs_16x16, vpx_memcpy(pc->fc.coef_probs_16x16, default_coef_probs_16x16,
sizeof(pc->fc.coef_probs_16x16)); sizeof(pc->fc.coef_probs_16x16));
#if CONFIG_HYBRIDTRANSFORM16X16
vpx_memcpy(pc->fc.hybrid_coef_probs_16x16, vpx_memcpy(pc->fc.hybrid_coef_probs_16x16,
default_hybrid_coef_probs_16x16, default_hybrid_coef_probs_16x16,
sizeof(pc->fc.hybrid_coef_probs_16x16)); sizeof(pc->fc.hybrid_coef_probs_16x16));
#endif
} }
void vp8_coef_tree_initialize() { void vp8_coef_tree_initialize() {
...@@ -344,7 +335,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) { ...@@ -344,7 +335,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
} }
} }
#if CONFIG_HYBRIDTRANSFORM
for (i = 0; i < BLOCK_TYPES; ++i) for (i = 0; i < BLOCK_TYPES; ++i)
for (j = 0; j < COEF_BANDS; ++j) for (j = 0; j < COEF_BANDS; ++j)
for (k = 0; k < PREV_COEF_CONTEXTS; ++k) { for (k = 0; k < PREV_COEF_CONTEXTS; ++k) {
...@@ -366,7 +356,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) { ...@@ -366,7 +356,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
else cm->fc.hybrid_coef_probs[i][j][k][t] = prob; else cm->fc.hybrid_coef_probs[i][j][k][t] = prob;
} }
} }
#endif
for (i = 0; i < BLOCK_TYPES_8X8; ++i) for (i = 0; i < BLOCK_TYPES_8X8; ++i)
for (j = 0; j < COEF_BANDS; ++j) for (j = 0; j < COEF_BANDS; ++j)
...@@ -390,7 +379,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) { ...@@ -390,7 +379,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
} }
} }
#if CONFIG_HYBRIDTRANSFORM8X8
for (i = 0; i < BLOCK_TYPES_8X8; ++i) for (i = 0; i < BLOCK_TYPES_8X8; ++i)
for (j = 0; j < COEF_BANDS; ++j) for (j = 0; j < COEF_BANDS; ++j)
for (k = 0; k < PREV_COEF_CONTEXTS; ++k) { for (k = 0; k < PREV_COEF_CONTEXTS; ++k) {
...@@ -413,7 +401,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) { ...@@ -413,7 +401,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
else cm->fc.hybrid_coef_probs_8x8[i][j][k][t] = prob; else cm->fc.hybrid_coef_probs_8x8[i][j][k][t] = prob;
} }
} }
#endif
for (i = 0; i < BLOCK_TYPES_16X16; ++i) for (i = 0; i < BLOCK_TYPES_16X16; ++i)
for (j = 0; j < COEF_BANDS; ++j) for (j = 0; j < COEF_BANDS; ++j)
...@@ -437,7 +424,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) { ...@@ -437,7 +424,6 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
} }
} }
#if CONFIG_HYBRIDTRANSFORM16X16
for (i = 0; i < BLOCK_TYPES_16X16; ++i) for (i = 0; i < BLOCK_TYPES_16X16; ++i)
for (j = 0; j < COEF_BANDS; ++j) for (j = 0; j < COEF_BANDS; ++j)
for (k = 0; k < PREV_COEF_CONTEXTS; ++k) { for (k = 0; k < PREV_COEF_CONTEXTS; ++k) {
...@@ -458,5 +444,4 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) { ...@@ -458,5 +444,4 @@ void vp8_adapt_coef_probs(VP8_COMMON *cm) {
else cm->fc.hybrid_coef_probs_16x16[i][j][k][t] = prob; else cm->fc.hybrid_coef_probs_16x16[i][j][k][t] = prob;
} }
} }
#endif
} }
...@@ -104,10 +104,8 @@ struct VP8Common; ...@@ -104,10 +104,8 @@ struct VP8Common;
void vp8_default_coef_probs(struct VP8Common *); void vp8_default_coef_probs(struct VP8Common *);
extern DECLARE_ALIGNED(16, const int, vp8_default_zig_zag1d[16]); extern DECLARE_ALIGNED(16, const int, vp8_default_zig_zag1d[16]);
#if CONFIG_HYBRIDTRANSFORM
extern DECLARE_ALIGNED(16, const int, vp8_col_scan[16]); extern DECLARE_ALIGNED(16, const int, vp8_col_scan[16]);
extern DECLARE_ALIGNED(16, const int, vp8_row_scan[16]); extern DECLARE_ALIGNED(16, const int, vp8_row_scan[16]);
#endif
extern short vp8_default_zig_zag_mask[16]; extern short vp8_default_zig_zag_mask[16];
extern DECLARE_ALIGNED(64, const int, vp8_default_zig_zag1d_8x8[64]); extern DECLARE_ALIGNED(64, const int, vp8_default_zig_zag1d_8x8[64]);
......
...@@ -109,12 +109,9 @@ extern prototype_second_order(vp8_short_inv_walsh4x4_lossless_c); ...@@ -109,12 +109,9 @@ extern prototype_second_order(vp8_short_inv_walsh4x4_lossless_c);
extern prototype_second_order(vp8_short_inv_walsh4x4_1_lossless_c); extern prototype_second_order(vp8_short_inv_walsh4x4_1_lossless_c);
#endif #endif
#if CONFIG_HYBRIDTRANSFORM8X8 || CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM16X16
#include "vp8/common/blockd.h" #include "vp8/common/blockd.h"
void vp8_ihtllm_c(short *input, short *output, int pitch, void vp8_ihtllm_c(short *input, short *output, int pitch,
TX_TYPE tx_type, int tx_dim); TX_TYPE tx_type, int tx_dim);
#endif
typedef prototype_idct((*vp8_idct_fn_t)); typedef prototype_idct((*vp8_idct_fn_t));
typedef prototype_idct_scalar_add((*vp8_idct_scalar_add_fn_t)); typedef prototype_idct_scalar_add((*vp8_idct_scalar_add_fn_t));
......
...@@ -26,9 +26,7 @@ ...@@ -26,9 +26,7 @@
#include "vp8/common/idct.h" #include "vp8/common/idct.h"
#include "vp8/common/systemdependent.h" #include "vp8/common/systemdependent.h"
#if CONFIG_HYBRIDTRANSFORM
#include "vp8/common/blockd.h" #include "vp8/common/blockd.h"
#endif
#include <math.h> #include <math.h>
...@@ -38,7 +36,6 @@ static const int rounding = 0; ...@@ -38,7 +36,6 @@ static const int rounding = 0;
// TODO: these transforms can be further converted into integer forms // TODO: these transforms can be further converted into integer forms
// for complexity optimization // for complexity optimization
#if CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM8X8 || CONFIG_HYBRIDTRANSFORM16X16
float idct_4[16] = { float idct_4[16] = {
0.500000000000000, 0.653281482438188, 0.500000000000000, 0.270598050073099, 0.500000000000000, 0.653281482438188, 0.500000000000000, 0.270598050073099,
0.500000000000000, 0.270598050073099, -0.500000000000000, -0.653281482438188, 0.500000000000000, 0.270598050073099, -0.500000000000000, -0.653281482438188,
...@@ -90,9 +87,7 @@ float iadst_8[64] = { ...@@ -90,9 +87,7 @@ float iadst_8[64] = {
0.483002021635509, -0.466553967085785, 0.434217976756762, -0.387095214016348, 0.483002021635509, -0.466553967085785, 0.434217976756762, -0.387095214016348,
0.326790388032145, -0.255357107325375, 0.175227946595736, -0.089131608307532 0.326790388032145, -0.255357107325375, 0.175227946595736, -0.089131608307532
}; };
#endif
#if CONFIG_HYBRIDTRANSFORM16X16 || CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM8X8
float idct_16[256] = { float idct_16[256] = {
0.250000, 0.351851, 0.346760, 0.338330, 0.326641, 0.311806, 0.293969, 0.273300, 0.250000, 0.351851, 0.346760, 0.338330, 0.326641, 0.311806, 0.293969, 0.273300,
0.250000, 0.224292, 0.196424, 0.166664, 0.135299, 0.102631, 0.068975, 0.034654, 0.250000, 0.224292, 0.196424, 0.166664, 0.135299, 0.102631, 0.068975, 0.034654,
...@@ -162,9 +157,7 @@ float iadst_16[256] = { ...@@ -162,9 +157,7 @@ float iadst_16[256] = {
0.347761, -0.344612, 0.338341, -0.329007, 0.316693, -0.301511, 0.283599, -0.263118, 0.347761, -0.344612, 0.338341, -0.329007, 0.316693, -0.301511, 0.283599, -0.263118,
0.240255, -0.215215, 0.188227, -0.159534, 0.129396, -0.098087, 0.065889, -0.033094 0.240255, -0.215215, 0.188227, -0.159534, 0.129396, -0.098087, 0.065889, -0.033094
}; };
#endif
#if CONFIG_HYBRIDTRANSFORM8X8 || CONFIG_HYBRIDTRANSFORM || CONFIG_HYBRIDTRANSFORM16X16
void vp8_ihtllm_c(short *input, short *output, int pitch, void vp8_ihtllm_c(short *input, short *output, int pitch,
TX_TYPE tx_type, int tx_dim) { TX_TYPE tx_type, int tx_dim) {
...@@ -289,7 +282,6 @@ void vp8_ihtllm_c(short *input, short *output, int pitch, ...@@ -289,7 +282,6 @@ void vp8_ihtllm_c(short *input, short *output, int pitch,
} }
vp8_clear_system_state(); // Make it simd safe : __asm emms; vp8_clear_system_state(); // Make it simd safe : __asm emms;
} }
#endif
void vp8_short_idct4x4llm_c(short *input, short *output, int pitch) { void vp8_short_idct4x4llm_c(short *input, short *output, int pitch) {
int i; int i;
......
...@@ -51,17 +51,11 @@ typedef struct frame_contexts { ...@@ -51,17 +51,11 @@ typedef struct frame_contexts {
vp8_prob sub_mv_ref_prob [SUBMVREF_COUNT][VP8_SUBMVREFS - 1]; vp8_prob sub_mv_ref_prob [SUBMVREF_COUNT][VP8_SUBMVREFS - 1];
vp8_prob mbsplit_prob [VP8_NUMMBSPLITS - 1]; vp8_prob mbsplit_prob [VP8_NUMMBSPLITS - 1];
vp8_prob coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES]; vp8_prob coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#if CONFIG_HYBRIDTRANSFORM
vp8_prob hybrid_coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES]; vp8_prob hybrid_coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#endif
vp8_prob coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES]; vp8_prob coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#if CONFIG_HYBRIDTRANSFORM8X8
vp8_prob hybrid_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES]; vp8_prob hybrid_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#endif
vp8_prob coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES]; vp8_prob coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#if CONFIG_HYBRIDTRANSFORM16X16
vp8_prob hybrid_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES]; vp8_prob hybrid_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#endif
#if CONFIG_NEWMVENTROPY #if CONFIG_NEWMVENTROPY
nmv_context nmvc; nmv_context nmvc;
...@@ -87,45 +81,33 @@ typedef struct frame_contexts { ...@@ -87,45 +81,33 @@ typedef struct frame_contexts {
vp8_prob pre_coef_probs [BLOCK_TYPES] [COEF_BANDS] vp8_prob pre_coef_probs [BLOCK_TYPES] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [ENTROPY_NODES]; [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#if CONFIG_HYBRIDTRANSFORM
vp8_prob pre_hybrid_coef_probs [BLOCK_TYPES] [COEF_BANDS] vp8_prob pre_hybrid_coef_probs [BLOCK_TYPES] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [ENTROPY_NODES]; [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#endif
vp8_prob pre_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] vp8_prob pre_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [ENTROPY_NODES]; [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#if CONFIG_HYBRIDTRANSFORM8X8
vp8_prob pre_hybrid_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] vp8_prob pre_hybrid_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [ENTROPY_NODES]; [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#endif
vp8_prob pre_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] vp8_prob pre_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [ENTROPY_NODES]; [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#if CONFIG_HYBRIDTRANSFORM16X16
vp8_prob pre_hybrid_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] vp8_prob pre_hybrid_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS]
[PREV_COEF_CONTEXTS] [ENTROPY_NODES]; [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
#endif