Lines Matching refs:cpi

225 static void pack_inter_mode_mvs(VP9_COMP *cpi, const MODE_INFO *mi,
227 VP9_COMMON *const cm = &cpi->common;
229 const MACROBLOCK *const x = &cpi->mb;
297 ++cpi->interp_filter_selected[0][mbmi->interp_filter];
314 vp9_encode_mv(cpi, w, &mi->bmi[j].as_mv[ref].as_mv,
323 vp9_encode_mv(cpi, w, &mbmi->mv[ref].as_mv,
368 static void write_modes_b(VP9_COMP *cpi, const TileInfo *const tile,
372 const VP9_COMMON *const cm = &cpi->common;
373 MACROBLOCKD *const xd = &cpi->mb.e_mbd;
386 pack_inter_mode_mvs(cpi, m, w);
415 static void write_modes_sb(VP9_COMP *cpi,
419 const VP9_COMMON *const cm = &cpi->common;
420 MACROBLOCKD *const xd = &cpi->mb.e_mbd;
437 write_modes_b(cpi, tile, w, tok, tok_end, mi_row, mi_col);
441 write_modes_b(cpi, tile, w, tok, tok_end, mi_row, mi_col);
444 write_modes_b(cpi, tile, w, tok, tok_end, mi_row, mi_col);
446 write_modes_b(cpi, tile, w, tok, tok_end, mi_row + bs, mi_col);
449 write_modes_b(cpi, tile, w, tok, tok_end, mi_row, mi_col);
451 write_modes_b(cpi, tile, w, tok, tok_end, mi_row, mi_col + bs);
454 write_modes_sb(cpi, tile, w, tok, tok_end, mi_row, mi_col, subsize);
455 write_modes_sb(cpi, tile, w, tok, tok_end, mi_row, mi_col + bs,
457 write_modes_sb(cpi, tile, w, tok, tok_end, mi_row + bs, mi_col,
459 write_modes_sb(cpi, tile, w, tok, tok_end, mi_row + bs, mi_col + bs,
473 static void write_modes(VP9_COMP *cpi,
480 vp9_zero(cpi->mb.e_mbd.left_seg_context);
483 write_modes_sb(cpi, tile, w, tok, tok_end, mi_row, mi_col,
488 static void build_tree_distribution(VP9_COMP *cpi, TX_SIZE tx_size,
491 vp9_coeff_count *coef_counts = cpi->coef_counts[tx_size];
493 cpi->common.counts.eob_branch[tx_size];
515 static void update_coef_probs_common(vp9_writer* const bc, VP9_COMP *cpi,
519 vp9_coeff_probs_model *old_coef_probs = cpi->common.fc.coef_probs[tx_size];
523 switch (cpi->sf.use_fast_coef_updates) {
602 cpi->sf.use_fast_coef_updates == ONE_LOOP_REDUCED ?
605 cpi->sf.use_fast_coef_updates == ONE_LOOP_REDUCED ?
668 static void update_coef_probs(VP9_COMP *cpi, vp9_writer* w) {
669 const TX_MODE tx_mode = cpi->common.tx_mode;
676 build_tree_distribution(cpi, tx_size, frame_branch_ct[tx_size],
680 update_coef_probs_common(w, cpi, tx_size, frame_branch_ct[tx_size],
891 static int get_refresh_mask(VP9_COMP *cpi) {
892 if (vp9_preserve_existing_gf(cpi)) {
903 return (cpi->refresh_last_frame << cpi->lst_fb_idx) |
904 (cpi->refresh_golden_frame << cpi->alt_fb_idx);
906 int arf_idx = cpi->alt_fb_idx;
907 if ((cpi->oxcf.pass == 2) && cpi->multi_arf_allowed) {
908 const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
911 return (cpi->refresh_last_frame << cpi->lst_fb_idx) |
912 (cpi->refresh_golden_frame << cpi->gld_fb_idx) |
913 (cpi->refresh_alt_ref_frame << arf_idx);
917 static size_t encode_tiles(VP9_COMP *cpi, uint8_t *data_ptr) {
918 VP9_COMMON *const cm = &cpi->common;
930 tok[0][0] = cpi->tok;
934 cpi->tok_count[tile_row - 1][tile_cols - 1];
938 cpi->tok_count[tile_row][tile_col - 1];
946 tok_end = tok[tile_row][tile_col] + cpi->tok_count[tile_row][tile_col];
953 write_modes(cpi, &tile, &residual_bc, &tok[tile_row][tile_col], tok_end);
988 static void write_frame_size_with_refs(VP9_COMP *cpi,
990 VP9_COMMON *const cm = &cpi->common;
995 YV12_BUFFER_CONFIG *cfg = get_ref_frame_buffer(cpi, ref_frame);
1000 if (cpi->use_svc &&
1001 ((cpi->svc.number_temporal_layers > 1 &&
1002 cpi->oxcf.rc_mode == VPX_CBR) ||
1003 (cpi->svc.number_spatial_layers > 1 &&
1004 cpi->svc.layer_context[cpi->svc.spatial_layer_id].is_key_frame))) {
1070 static void write_uncompressed_header(VP9_COMP *cpi,
1072 VP9_COMMON *const cm = &cpi->common;
1097 (is_two_pass_svc(cpi) && cm->error_resilient_mode == 0))
1111 vp9_wb_write_literal(wb, get_refresh_mask(cpi), REF_FRAMES);
1115 vp9_wb_write_literal(wb, get_refresh_mask(cpi), REF_FRAMES);
1117 vp9_wb_write_literal(wb, get_ref_frame_idx(cpi, ref_frame),
1122 write_frame_size_with_refs(cpi, wb);
1140 encode_segmentation(cm, &cpi->mb.e_mbd, wb);
1145 static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) {
1146 VP9_COMMON *const cm = &cpi->common;
1147 MACROBLOCKD *const xd = &cpi->mb.e_mbd;
1158 update_coef_probs(cpi, &header_bc);
1222 void vp9_pack_bitstream(VP9_COMP *cpi, uint8_t *dest, size_t *size) {
1228 write_uncompressed_header(cpi, &wb);
1237 first_part_size = write_compressed_header(cpi, data);
1242 data += encode_tiles(cpi, data);