diff options
author | Ronald S. Bultje <rbultje@google.com> | 2013-06-06 13:44:34 -0700 |
---|---|---|
committer | Ronald S. Bultje <rbultje@google.com> | 2013-06-06 17:28:09 -0700 |
commit | 6ef805eb9d084eec2ca52ff5740cbd30972fbf78 (patch) | |
tree | d56e75726f4c33853b541a03132954f4e31ece5e /vp9/encoder/vp9_onyx_int.h | |
parent | 9062b92b0fb9e49fbe22ad844abdfaf9f86530dd (diff) | |
download | libvpx-6ef805eb9d084eec2ca52ff5740cbd30972fbf78.tar libvpx-6ef805eb9d084eec2ca52ff5740cbd30972fbf78.tar.gz libvpx-6ef805eb9d084eec2ca52ff5740cbd30972fbf78.tar.bz2 libvpx-6ef805eb9d084eec2ca52ff5740cbd30972fbf78.zip |
Change ref frame coding.
Code intra/inter, then comp/single, then the ref frame selection.
Use contextualization for all steps. Don't code two past frames
in comp pred mode.
Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
Diffstat (limited to 'vp9/encoder/vp9_onyx_int.h')
-rw-r--r-- | vp9/encoder/vp9_onyx_int.h | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/vp9/encoder/vp9_onyx_int.h b/vp9/encoder/vp9_onyx_int.h index 1f102e869..79a57eeb6 100644 --- a/vp9/encoder/vp9_onyx_int.h +++ b/vp9/encoder/vp9_onyx_int.h @@ -47,7 +47,7 @@ #define KEY_FRAME_CONTEXT 5 -#define MAX_MODES 41 +#define MAX_MODES 36 #define MIN_THRESHMULT 32 #define MAX_THRESHMULT 512 @@ -65,9 +65,10 @@ typedef struct { int nmvcosts_hp[2][MV_VALS]; vp9_prob segment_pred_probs[PREDICTION_PROBS]; - unsigned char ref_pred_probs_update[PREDICTION_PROBS]; - vp9_prob ref_pred_probs[PREDICTION_PROBS]; - vp9_prob prob_comppred[COMP_PRED_CONTEXTS]; + vp9_prob intra_inter_prob[INTRA_INTER_CONTEXTS]; + vp9_prob comp_inter_prob[COMP_INTER_CONTEXTS]; + vp9_prob single_ref_prob[REF_CONTEXTS][2]; + vp9_prob comp_ref_prob[REF_CONTEXTS]; unsigned char *last_frame_seg_map_copy; @@ -174,10 +175,6 @@ typedef enum { THR_B_PRED, - THR_COMP_ZEROLG, - THR_COMP_NEARESTLG, - THR_COMP_NEARLG, - THR_COMP_ZEROLA, THR_COMP_NEARESTLA, THR_COMP_NEARLA, @@ -186,11 +183,9 @@ typedef enum { THR_COMP_NEARESTGA, THR_COMP_NEARGA, - THR_COMP_NEWLG, THR_COMP_NEWLA, THR_COMP_NEWGA, - THR_COMP_SPLITLG, THR_COMP_SPLITLA, THR_COMP_SPLITGA, } THR_MODES; @@ -325,8 +320,11 @@ typedef struct VP9_COMP { int64_t rd_comp_pred_diff[NB_PREDICTION_TYPES]; int rd_prediction_type_threshes[4][NB_PREDICTION_TYPES]; - int comp_pred_count[COMP_PRED_CONTEXTS]; - int single_pred_count[COMP_PRED_CONTEXTS]; + unsigned int intra_inter_count[INTRA_INTER_CONTEXTS][2]; + unsigned int comp_inter_count[COMP_INTER_CONTEXTS][2]; + unsigned int single_ref_count[REF_CONTEXTS][2][2]; + unsigned int comp_ref_count[REF_CONTEXTS][2]; + // FIXME contextualize int txfm_count_32x32p[TX_SIZE_MAX_SB]; int txfm_count_16x16p[TX_SIZE_MAX_SB - 1]; @@ -433,7 +431,6 @@ typedef struct VP9_COMP { int mbgraph_n_frames; // number of frames filled in the above int static_mb_pct; // % forced skip mbs by segmentation int seg0_progress, seg0_idx, seg0_cnt; - int ref_pred_count[3][2]; int decimation_factor; int decimation_count; @@ -454,12 +451,8 @@ typedef struct VP9_COMP { vp9_prob last_skip_false_probs[3][MBSKIP_CONTEXTS]; int last_skip_probs_q[3]; - int recent_ref_frame_usage[MAX_REF_FRAMES]; - int count_mb_ref_frame_usage[MAX_REF_FRAMES]; int ref_frame_flags; - unsigned char ref_pred_probs_update[PREDICTION_PROBS]; - SPEED_FEATURES sf; int error_bins[1024]; |