| Index: source/libvpx/vp9/encoder/vp9_onyx_int.h
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_onyx_int.h (revision 177019)
|
| +++ source/libvpx/vp9/encoder/vp9_onyx_int.h (working copy)
|
| @@ -13,7 +13,7 @@
|
| #define VP9_ENCODER_VP9_ONYX_INT_H_
|
|
|
| #include <stdio.h>
|
| -#include "vpx_ports/config.h"
|
| +#include "./vpx_config.h"
|
| #include "vp9/common/vp9_onyx.h"
|
| #include "vp9/encoder/vp9_treewriter.h"
|
| #include "vp9/encoder/vp9_tokenize.h"
|
| @@ -41,19 +41,11 @@
|
| #define AF_THRESH2 100
|
| #define ARF_DECAY_THRESH 12
|
|
|
| -#if CONFIG_PRED_FILTER
|
| #if CONFIG_COMP_INTERINTRA_PRED
|
| -#define MAX_MODES 66
|
| -#else
|
| #define MAX_MODES 54
|
| -#endif
|
| -#else // CONFIG_PRED_FILTER
|
| -#if CONFIG_COMP_INTERINTRA_PRED
|
| -#define MAX_MODES 54
|
| #else
|
| #define MAX_MODES 42
|
| #endif
|
| -#endif // CONFIG_PRED_FILTER
|
|
|
| #define MIN_THRESHMULT 32
|
| #define MAX_THRESHMULT 512
|
| @@ -94,24 +86,15 @@
|
| // 0 = BPRED, ZERO_MV, MV, SPLIT
|
| signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS];
|
|
|
| - vp9_prob coef_probs[BLOCK_TYPES]
|
| - [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
|
| - vp9_prob hybrid_coef_probs[BLOCK_TYPES]
|
| - [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
|
| + vp9_coeff_probs coef_probs_4x4[BLOCK_TYPES_4X4];
|
| + vp9_coeff_probs hybrid_coef_probs_4x4[BLOCK_TYPES_4X4];
|
| + vp9_coeff_probs coef_probs_8x8[BLOCK_TYPES_8X8];
|
| + vp9_coeff_probs hybrid_coef_probs_8x8[BLOCK_TYPES_8X8];
|
| + vp9_coeff_probs coef_probs_16x16[BLOCK_TYPES_16X16];
|
| + vp9_coeff_probs hybrid_coef_probs_16x16[BLOCK_TYPES_16X16];
|
| + vp9_coeff_probs coef_probs_32x32[BLOCK_TYPES_32X32];
|
|
|
| - vp9_prob coef_probs_8x8[BLOCK_TYPES_8X8]
|
| - [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
|
| - vp9_prob hybrid_coef_probs_8x8[BLOCK_TYPES_8X8]
|
| - [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
|
| -
|
| - vp9_prob coef_probs_16x16[BLOCK_TYPES_16X16]
|
| - [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
|
| - vp9_prob hybrid_coef_probs_16x16[BLOCK_TYPES_16X16]
|
| - [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
|
| -
|
| -#if CONFIG_SUPERBLOCKS
|
| vp9_prob sb_ymode_prob[VP9_I32X32_MODES - 1];
|
| -#endif
|
| vp9_prob ymode_prob[VP9_YMODES - 1]; /* interframe intra mode probs */
|
| vp9_prob uv_mode_prob[VP9_YMODES][VP9_UV_MODES - 1];
|
| vp9_prob bmode_prob[VP9_NKF_BINTRAMODES - 1];
|
| @@ -180,31 +163,21 @@
|
| MBGRAPH_MB_STATS *mb_stats;
|
| } MBGRAPH_FRAME_STATS;
|
|
|
| -#if CONFIG_PRED_FILTER
|
| typedef enum {
|
| THR_ZEROMV,
|
| - THR_ZEROMV_FILT,
|
| THR_DC,
|
|
|
| THR_NEARESTMV,
|
| - THR_NEARESTMV_FILT,
|
| THR_NEARMV,
|
| - THR_NEARMV_FILT,
|
|
|
| THR_ZEROG,
|
| - THR_ZEROG_FILT,
|
| THR_NEARESTG,
|
| - THR_NEARESTG_FILT,
|
|
|
| THR_ZEROA,
|
| - THR_ZEROA_FILT,
|
| THR_NEARESTA,
|
| - THR_NEARESTA_FILT,
|
|
|
| THR_NEARG,
|
| - THR_NEARG_FILT,
|
| THR_NEARA,
|
| - THR_NEARA_FILT,
|
|
|
| THR_V_PRED,
|
| THR_H_PRED,
|
| @@ -217,11 +190,8 @@
|
| THR_TM,
|
|
|
| THR_NEWMV,
|
| - THR_NEWMV_FILT,
|
| THR_NEWG,
|
| - THR_NEWG_FILT,
|
| THR_NEWA,
|
| - THR_NEWA_FILT,
|
|
|
| THR_SPLITMV,
|
| THR_SPLITG,
|
| @@ -267,83 +237,7 @@
|
| #endif
|
| }
|
| THR_MODES;
|
| -#else
|
| -typedef enum {
|
| - THR_ZEROMV,
|
| - THR_DC,
|
|
|
| - THR_NEARESTMV,
|
| - THR_NEARMV,
|
| -
|
| - THR_ZEROG,
|
| - THR_NEARESTG,
|
| -
|
| - THR_ZEROA,
|
| - THR_NEARESTA,
|
| -
|
| - THR_NEARG,
|
| - THR_NEARA,
|
| -
|
| - THR_V_PRED,
|
| - THR_H_PRED,
|
| - THR_D45_PRED,
|
| - THR_D135_PRED,
|
| - THR_D117_PRED,
|
| - THR_D153_PRED,
|
| - THR_D27_PRED,
|
| - THR_D63_PRED,
|
| - THR_TM,
|
| -
|
| - THR_NEWMV,
|
| - THR_NEWG,
|
| - THR_NEWA,
|
| -
|
| - THR_SPLITMV,
|
| - THR_SPLITG,
|
| - THR_SPLITA,
|
| -
|
| - THR_B_PRED,
|
| - THR_I8X8_PRED,
|
| -
|
| - THR_COMP_ZEROLG,
|
| - THR_COMP_NEARESTLG,
|
| - THR_COMP_NEARLG,
|
| -
|
| - THR_COMP_ZEROLA,
|
| - THR_COMP_NEARESTLA,
|
| - THR_COMP_NEARLA,
|
| -
|
| - THR_COMP_ZEROGA,
|
| - THR_COMP_NEARESTGA,
|
| - THR_COMP_NEARGA,
|
| -
|
| - THR_COMP_NEWLG,
|
| - THR_COMP_NEWLA,
|
| - THR_COMP_NEWGA,
|
| -
|
| - THR_COMP_SPLITLG,
|
| - THR_COMP_SPLITLA,
|
| - THR_COMP_SPLITGA,
|
| -#if CONFIG_COMP_INTERINTRA_PRED
|
| - THR_COMP_INTERINTRA_ZEROL,
|
| - THR_COMP_INTERINTRA_NEARESTL,
|
| - THR_COMP_INTERINTRA_NEARL,
|
| - THR_COMP_INTERINTRA_NEWL,
|
| -
|
| - THR_COMP_INTERINTRA_ZEROG,
|
| - THR_COMP_INTERINTRA_NEARESTG,
|
| - THR_COMP_INTERINTRA_NEARG,
|
| - THR_COMP_INTERINTRA_NEWG,
|
| -
|
| - THR_COMP_INTERINTRA_ZEROA,
|
| - THR_COMP_INTERINTRA_NEARESTA,
|
| - THR_COMP_INTERINTRA_NEARA,
|
| - THR_COMP_INTERINTRA_NEWA,
|
| -#endif
|
| -}
|
| -THR_MODES;
|
| -#endif
|
| -
|
| typedef enum {
|
| DIAMOND = 0,
|
| NSTEP = 1,
|
| @@ -364,7 +258,6 @@
|
| int first_step;
|
| int optimize_coefficients;
|
| int no_skip_block4x4_search;
|
| - int improved_mv_pred;
|
| int search_best_filter;
|
|
|
| } SPEED_FEATURES;
|
| @@ -397,6 +290,7 @@
|
| BLOCK_16X16,
|
| BLOCK_MAX_SEGMENTS,
|
| BLOCK_32X32 = BLOCK_MAX_SEGMENTS,
|
| + BLOCK_64X64,
|
| BLOCK_MAX_SB_SEGMENTS,
|
| };
|
|
|
| @@ -435,6 +329,13 @@
|
| DECLARE_ALIGNED(16, short, zrun_zbin_boost_y2_16x16[QINDEX_RANGE][256]);
|
| DECLARE_ALIGNED(16, short, zrun_zbin_boost_uv_16x16[QINDEX_RANGE][256]);
|
|
|
| + DECLARE_ALIGNED(16, short, Y1zbin_32x32[QINDEX_RANGE][1024]);
|
| + DECLARE_ALIGNED(16, short, Y2zbin_32x32[QINDEX_RANGE][1024]);
|
| + DECLARE_ALIGNED(16, short, UVzbin_32x32[QINDEX_RANGE][1024]);
|
| + DECLARE_ALIGNED(16, short, zrun_zbin_boost_y1_32x32[QINDEX_RANGE][1024]);
|
| + DECLARE_ALIGNED(16, short, zrun_zbin_boost_y2_32x32[QINDEX_RANGE][1024]);
|
| + DECLARE_ALIGNED(16, short, zrun_zbin_boost_uv_32x32[QINDEX_RANGE][1024]);
|
| +
|
| MACROBLOCK mb;
|
| VP9_COMMON common;
|
| VP9_CONFIG oxcf;
|
| @@ -483,8 +384,9 @@
|
| int comp_pred_count[COMP_PRED_CONTEXTS];
|
| int single_pred_count[COMP_PRED_CONTEXTS];
|
| // FIXME contextualize
|
| - int txfm_count[TX_SIZE_MAX];
|
| - int txfm_count_8x8p[TX_SIZE_MAX - 1];
|
| + int txfm_count_32x32p[TX_SIZE_MAX_SB];
|
| + int txfm_count_16x16p[TX_SIZE_MAX_MB];
|
| + int txfm_count_8x8p[TX_SIZE_MAX_MB - 1];
|
| int64_t rd_tx_select_diff[NB_TXFM_MODES];
|
| int rd_tx_select_threshes[4][NB_TXFM_MODES];
|
|
|
| @@ -566,10 +468,9 @@
|
|
|
| int cq_target_quality;
|
|
|
| -#if CONFIG_SUPERBLOCKS
|
| - int sb_count;
|
| + int sb32_count[2];
|
| + int sb64_count[2];
|
| int sb_ymode_count [VP9_I32X32_MODES];
|
| -#endif
|
| int ymode_count[VP9_YMODES]; /* intra MB type cts this frame */
|
| int bmode_count[VP9_NKF_BINTRAMODES];
|
| int i8x8_mode_count[VP9_I8X8_MODES];
|
| @@ -583,27 +484,31 @@
|
|
|
| nmv_context_counts NMVcount;
|
|
|
| - unsigned int coef_counts [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */
|
| - vp9_prob frame_coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
|
| - unsigned int frame_branch_ct [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES][2];
|
| - unsigned int hybrid_coef_counts [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */
|
| - vp9_prob frame_hybrid_coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
|
| - unsigned int frame_hybrid_branch_ct [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES][2];
|
| + vp9_coeff_count coef_counts_4x4[BLOCK_TYPES_4X4];
|
| + vp9_coeff_probs frame_coef_probs_4x4[BLOCK_TYPES_4X4];
|
| + vp9_coeff_stats frame_branch_ct_4x4[BLOCK_TYPES_4X4];
|
| + vp9_coeff_count hybrid_coef_counts_4x4[BLOCK_TYPES_4X4];
|
| + vp9_coeff_probs frame_hybrid_coef_probs_4x4[BLOCK_TYPES_4X4];
|
| + vp9_coeff_stats frame_hybrid_branch_ct_4x4[BLOCK_TYPES_4X4];
|
|
|
| - unsigned int coef_counts_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */
|
| - vp9_prob frame_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
|
| - unsigned int frame_branch_ct_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES][2];
|
| - unsigned int hybrid_coef_counts_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */
|
| - vp9_prob frame_hybrid_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
|
| - unsigned int frame_hybrid_branch_ct_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES][2];
|
| + vp9_coeff_count coef_counts_8x8[BLOCK_TYPES_8X8];
|
| + vp9_coeff_probs frame_coef_probs_8x8[BLOCK_TYPES_8X8];
|
| + vp9_coeff_stats frame_branch_ct_8x8[BLOCK_TYPES_8X8];
|
| + vp9_coeff_count hybrid_coef_counts_8x8[BLOCK_TYPES_8X8];
|
| + vp9_coeff_probs frame_hybrid_coef_probs_8x8[BLOCK_TYPES_8X8];
|
| + vp9_coeff_stats frame_hybrid_branch_ct_8x8[BLOCK_TYPES_8X8];
|
|
|
| - unsigned int coef_counts_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */
|
| - vp9_prob frame_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
|
| - unsigned int frame_branch_ct_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES][2];
|
| - unsigned int hybrid_coef_counts_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */
|
| - vp9_prob frame_hybrid_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
|
| - unsigned int frame_hybrid_branch_ct_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES][2];
|
| + vp9_coeff_count coef_counts_16x16[BLOCK_TYPES_16X16];
|
| + vp9_coeff_probs frame_coef_probs_16x16[BLOCK_TYPES_16X16];
|
| + vp9_coeff_stats frame_branch_ct_16x16[BLOCK_TYPES_16X16];
|
| + vp9_coeff_count hybrid_coef_counts_16x16[BLOCK_TYPES_16X16];
|
| + vp9_coeff_probs frame_hybrid_coef_probs_16x16[BLOCK_TYPES_16X16];
|
| + vp9_coeff_stats frame_hybrid_branch_ct_16x16[BLOCK_TYPES_16X16];
|
|
|
| + vp9_coeff_count coef_counts_32x32[BLOCK_TYPES_32X32];
|
| + vp9_coeff_probs frame_coef_probs_32x32[BLOCK_TYPES_32X32];
|
| + vp9_coeff_stats frame_branch_ct_32x32[BLOCK_TYPES_32X32];
|
| +
|
| int gfu_boost;
|
| int last_boost;
|
| int kf_boost;
|
| @@ -783,14 +688,12 @@
|
|
|
| int dummy_packing; /* flag to indicate if packing is dummy */
|
|
|
| -#if CONFIG_PRED_FILTER
|
| - int pred_filter_on_count;
|
| - int pred_filter_off_count;
|
| -#endif
|
| unsigned int switchable_interp_count[VP9_SWITCHABLE_FILTERS + 1]
|
| [VP9_SWITCHABLE_FILTERS];
|
| + unsigned int best_switchable_interp_count[VP9_SWITCHABLE_FILTERS];
|
| +
|
| #if CONFIG_NEW_MVREF
|
| - unsigned int best_ref_index_counts[MAX_REF_FRAMES][MAX_MV_REFS];
|
| + unsigned int mb_mv_ref_count[MAX_REF_FRAMES][MAX_MV_REF_CANDIDATES];
|
| #endif
|
|
|
| } VP9_COMP;
|
| @@ -825,4 +728,5 @@
|
| "Failed to allocate "#lval);\
|
| } while(0)
|
| #endif
|
| -#endif // __INC_ONYX_INT_H
|
| +
|
| +#endif // VP9_ENCODER_VP9_ONYX_INT_H_
|
|
|