Merge "Reusing FRAME_CONTEXT struct to simplify the code."
This commit is contained in:
		@@ -61,16 +61,11 @@
 | 
				
			|||||||
#define INTRA_ZBIN_BOOST     0
 | 
					#define INTRA_ZBIN_BOOST     0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
  nmv_context nmvc;
 | 
					 | 
				
			||||||
  int nmvjointcost[MV_JOINTS];
 | 
					  int nmvjointcost[MV_JOINTS];
 | 
				
			||||||
  int nmvcosts[2][MV_VALS];
 | 
					  int nmvcosts[2][MV_VALS];
 | 
				
			||||||
  int nmvcosts_hp[2][MV_VALS];
 | 
					  int nmvcosts_hp[2][MV_VALS];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_prob segment_pred_probs[PREDICTION_PROBS];
 | 
					  vp9_prob segment_pred_probs[PREDICTION_PROBS];
 | 
				
			||||||
  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;
 | 
					  unsigned char *last_frame_seg_map_copy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -79,20 +74,8 @@ typedef struct {
 | 
				
			|||||||
  // 0 = ZERO_MV, MV
 | 
					  // 0 = ZERO_MV, MV
 | 
				
			||||||
  signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS];
 | 
					  signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_coeff_probs_model coef_probs[TX_SIZES][BLOCK_TYPES];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vp9_prob y_mode_prob[4][INTRA_MODES - 1];
 | 
					 | 
				
			||||||
  vp9_prob uv_mode_prob[INTRA_MODES][INTRA_MODES - 1];
 | 
					 | 
				
			||||||
  vp9_prob partition_prob[2][NUM_PARTITION_CONTEXTS][PARTITION_TYPES - 1];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vp9_prob switchable_interp_prob[SWITCHABLE_FILTERS + 1]
 | 
					 | 
				
			||||||
                                 [SWITCHABLE_FILTERS - 1];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  int inter_mode_counts[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
 | 
					  int inter_mode_counts[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
 | 
				
			||||||
  vp9_prob inter_mode_probs[INTER_MODE_CONTEXTS][INTER_MODES - 1];
 | 
					  FRAME_CONTEXT fc;
 | 
				
			||||||
 | 
					 | 
				
			||||||
  struct tx_probs tx_probs;
 | 
					 | 
				
			||||||
  vp9_prob mbskip_probs[MBSKIP_CONTEXTS];
 | 
					 | 
				
			||||||
} CODING_CONTEXT;
 | 
					} CODING_CONTEXT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -76,35 +76,19 @@ void vp9_save_coding_context(VP9_COMP *cpi) {
 | 
				
			|||||||
  // restored with a call to vp9_restore_coding_context. These functions are
 | 
					  // restored with a call to vp9_restore_coding_context. These functions are
 | 
				
			||||||
  // intended for use in a re-code loop in vp9_compress_frame where the
 | 
					  // intended for use in a re-code loop in vp9_compress_frame where the
 | 
				
			||||||
  // quantizer value is adjusted between loop iterations.
 | 
					  // quantizer value is adjusted between loop iterations.
 | 
				
			||||||
 | 
					 | 
				
			||||||
  cc->nmvc = cm->fc.nmvc;
 | 
					 | 
				
			||||||
  vp9_copy(cc->nmvjointcost,  cpi->mb.nmvjointcost);
 | 
					  vp9_copy(cc->nmvjointcost,  cpi->mb.nmvjointcost);
 | 
				
			||||||
  vp9_copy(cc->nmvcosts,  cpi->mb.nmvcosts);
 | 
					  vp9_copy(cc->nmvcosts,  cpi->mb.nmvcosts);
 | 
				
			||||||
  vp9_copy(cc->nmvcosts_hp,  cpi->mb.nmvcosts_hp);
 | 
					  vp9_copy(cc->nmvcosts_hp,  cpi->mb.nmvcosts_hp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_copy(cc->inter_mode_probs, cm->fc.inter_mode_probs);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vp9_copy(cc->y_mode_prob, cm->fc.y_mode_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cc->uv_mode_prob, cm->fc.uv_mode_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cc->partition_prob, cm->fc.partition_prob);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vp9_copy(cc->segment_pred_probs, cm->seg.pred_probs);
 | 
					  vp9_copy(cc->segment_pred_probs, cm->seg.pred_probs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_copy(cc->intra_inter_prob, cm->fc.intra_inter_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cc->comp_inter_prob, cm->fc.comp_inter_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cc->single_ref_prob, cm->fc.single_ref_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cc->comp_ref_prob, cm->fc.comp_ref_prob);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vpx_memcpy(cpi->coding_context.last_frame_seg_map_copy,
 | 
					  vpx_memcpy(cpi->coding_context.last_frame_seg_map_copy,
 | 
				
			||||||
             cm->last_frame_seg_map, (cm->mi_rows * cm->mi_cols));
 | 
					             cm->last_frame_seg_map, (cm->mi_rows * cm->mi_cols));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_copy(cc->last_ref_lf_deltas, cm->lf.last_ref_deltas);
 | 
					  vp9_copy(cc->last_ref_lf_deltas, cm->lf.last_ref_deltas);
 | 
				
			||||||
  vp9_copy(cc->last_mode_lf_deltas, cm->lf.last_mode_deltas);
 | 
					  vp9_copy(cc->last_mode_lf_deltas, cm->lf.last_mode_deltas);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_copy(cc->coef_probs, cm->fc.coef_probs);
 | 
					  cc->fc = cm->fc;
 | 
				
			||||||
  vp9_copy(cc->switchable_interp_prob, cm->fc.switchable_interp_prob);
 | 
					 | 
				
			||||||
  cc->tx_probs = cm->fc.tx_probs;
 | 
					 | 
				
			||||||
  vp9_copy(cc->mbskip_probs, cm->fc.mbskip_probs);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void vp9_restore_coding_context(VP9_COMP *cpi) {
 | 
					void vp9_restore_coding_context(VP9_COMP *cpi) {
 | 
				
			||||||
@@ -113,25 +97,12 @@ void vp9_restore_coding_context(VP9_COMP *cpi) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  // Restore key state variables to the snapshot state stored in the
 | 
					  // Restore key state variables to the snapshot state stored in the
 | 
				
			||||||
  // previous call to vp9_save_coding_context.
 | 
					  // previous call to vp9_save_coding_context.
 | 
				
			||||||
 | 
					 | 
				
			||||||
  cm->fc.nmvc = cc->nmvc;
 | 
					 | 
				
			||||||
  vp9_copy(cpi->mb.nmvjointcost, cc->nmvjointcost);
 | 
					  vp9_copy(cpi->mb.nmvjointcost, cc->nmvjointcost);
 | 
				
			||||||
  vp9_copy(cpi->mb.nmvcosts, cc->nmvcosts);
 | 
					  vp9_copy(cpi->mb.nmvcosts, cc->nmvcosts);
 | 
				
			||||||
  vp9_copy(cpi->mb.nmvcosts_hp, cc->nmvcosts_hp);
 | 
					  vp9_copy(cpi->mb.nmvcosts_hp, cc->nmvcosts_hp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_copy(cm->fc.inter_mode_probs, cc->inter_mode_probs);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vp9_copy(cm->fc.y_mode_prob, cc->y_mode_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cm->fc.uv_mode_prob, cc->uv_mode_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cm->fc.partition_prob, cc->partition_prob);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vp9_copy(cm->seg.pred_probs, cc->segment_pred_probs);
 | 
					  vp9_copy(cm->seg.pred_probs, cc->segment_pred_probs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_copy(cm->fc.intra_inter_prob, cc->intra_inter_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cm->fc.comp_inter_prob, cc->comp_inter_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cm->fc.single_ref_prob, cc->single_ref_prob);
 | 
					 | 
				
			||||||
  vp9_copy(cm->fc.comp_ref_prob, cc->comp_ref_prob);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vpx_memcpy(cm->last_frame_seg_map,
 | 
					  vpx_memcpy(cm->last_frame_seg_map,
 | 
				
			||||||
             cpi->coding_context.last_frame_seg_map_copy,
 | 
					             cpi->coding_context.last_frame_seg_map_copy,
 | 
				
			||||||
             (cm->mi_rows * cm->mi_cols));
 | 
					             (cm->mi_rows * cm->mi_cols));
 | 
				
			||||||
@@ -139,10 +110,7 @@ void vp9_restore_coding_context(VP9_COMP *cpi) {
 | 
				
			|||||||
  vp9_copy(cm->lf.last_ref_deltas, cc->last_ref_lf_deltas);
 | 
					  vp9_copy(cm->lf.last_ref_deltas, cc->last_ref_lf_deltas);
 | 
				
			||||||
  vp9_copy(cm->lf.last_mode_deltas, cc->last_mode_lf_deltas);
 | 
					  vp9_copy(cm->lf.last_mode_deltas, cc->last_mode_lf_deltas);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vp9_copy(cm->fc.coef_probs, cc->coef_probs);
 | 
					  cm->fc = cc->fc;
 | 
				
			||||||
  vp9_copy(cm->fc.switchable_interp_prob, cc->switchable_interp_prob);
 | 
					 | 
				
			||||||
  cm->fc.tx_probs = cc->tx_probs;
 | 
					 | 
				
			||||||
  vp9_copy(cm->fc.mbskip_probs, cc->mbskip_probs);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void vp9_setup_key_frame(VP9_COMP *cpi) {
 | 
					void vp9_setup_key_frame(VP9_COMP *cpi) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user