Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1029)

Side by Side Diff: source/libvpx/vp9/encoder/vp9_onyx_int.h

Issue 23600008: libvpx: Pull from upstream (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_onyx_if.c ('k') | source/libvpx/vp9/encoder/vp9_picklpf.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 vp9_prob single_ref_prob[REF_CONTEXTS][2]; 70 vp9_prob single_ref_prob[REF_CONTEXTS][2];
71 vp9_prob comp_ref_prob[REF_CONTEXTS]; 71 vp9_prob comp_ref_prob[REF_CONTEXTS];
72 72
73 unsigned char *last_frame_seg_map_copy; 73 unsigned char *last_frame_seg_map_copy;
74 74
75 // 0 = Intra, Last, GF, ARF 75 // 0 = Intra, Last, GF, ARF
76 signed char last_ref_lf_deltas[MAX_REF_LF_DELTAS]; 76 signed char last_ref_lf_deltas[MAX_REF_LF_DELTAS];
77 // 0 = ZERO_MV, MV 77 // 0 = ZERO_MV, MV
78 signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS]; 78 signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS];
79 79
80 vp9_coeff_probs_model coef_probs[TX_SIZE_MAX_SB][BLOCK_TYPES]; 80 vp9_coeff_probs_model coef_probs[TX_SIZES][BLOCK_TYPES];
81 81
82 vp9_prob y_mode_prob[4][VP9_INTRA_MODES - 1]; 82 vp9_prob y_mode_prob[4][INTRA_MODES - 1];
83 vp9_prob uv_mode_prob[VP9_INTRA_MODES][VP9_INTRA_MODES - 1]; 83 vp9_prob uv_mode_prob[INTRA_MODES][INTRA_MODES - 1];
84 vp9_prob partition_prob[2][NUM_PARTITION_CONTEXTS][PARTITION_TYPES - 1]; 84 vp9_prob partition_prob[2][NUM_PARTITION_CONTEXTS][PARTITION_TYPES - 1];
85 85
86 vp9_prob switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1] 86 vp9_prob switchable_interp_prob[SWITCHABLE_FILTERS + 1]
87 [VP9_SWITCHABLE_FILTERS - 1]; 87 [SWITCHABLE_FILTERS - 1];
88 88
89 int inter_mode_counts[INTER_MODE_CONTEXTS][VP9_INTER_MODES - 1][2]; 89 int inter_mode_counts[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
90 vp9_prob inter_mode_probs[INTER_MODE_CONTEXTS][VP9_INTER_MODES - 1]; 90 vp9_prob inter_mode_probs[INTER_MODE_CONTEXTS][INTER_MODES - 1];
91 91
92 struct tx_probs tx_probs; 92 struct tx_probs tx_probs;
93 vp9_prob mbskip_probs[MBSKIP_CONTEXTS]; 93 vp9_prob mbskip_probs[MBSKIP_CONTEXTS];
94 } CODING_CONTEXT; 94 } CODING_CONTEXT;
95 95
96 typedef struct { 96 typedef struct {
97 double frame; 97 double frame;
98 double intra_error; 98 double intra_error;
99 double coded_error; 99 double coded_error;
100 double sr_coded_error; 100 double sr_coded_error;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 } MBGRAPH_MB_STATS; 138 } MBGRAPH_MB_STATS;
139 139
140 typedef struct { 140 typedef struct {
141 MBGRAPH_MB_STATS *mb_stats; 141 MBGRAPH_MB_STATS *mb_stats;
142 } MBGRAPH_FRAME_STATS; 142 } MBGRAPH_FRAME_STATS;
143 143
144 // This enumerator type needs to be kept aligned with the mode order in 144 // This enumerator type needs to be kept aligned with the mode order in
145 // const MODE_DEFINITION vp9_mode_order[MAX_MODES] used in the rd code. 145 // const MODE_DEFINITION vp9_mode_order[MAX_MODES] used in the rd code.
146 typedef enum { 146 typedef enum {
147 THR_NEARESTMV, 147 THR_NEARESTMV,
148 THR_DC,
149
148 THR_NEARESTA, 150 THR_NEARESTA,
149 THR_NEARESTG, 151 THR_NEARESTG,
150 THR_NEWMV, 152 THR_NEWMV,
151 THR_COMP_NEARESTLA, 153 THR_COMP_NEARESTLA,
152 THR_NEARMV, 154 THR_NEARMV,
153 THR_COMP_NEARESTGA, 155 THR_COMP_NEARESTGA,
154 156
155 THR_DC,
156
157 THR_NEWG, 157 THR_NEWG,
158 THR_NEWA, 158 THR_NEWA,
159 THR_NEARA, 159 THR_NEARA,
160 160
161 THR_TM, 161 THR_TM,
162 162
163 THR_COMP_NEARLA, 163 THR_COMP_NEARLA,
164 THR_COMP_NEWLA, 164 THR_COMP_NEWLA,
165 THR_NEARG, 165 THR_NEARG,
166 THR_COMP_NEARGA, 166 THR_COMP_NEARGA,
167 THR_COMP_NEWGA, 167 THR_COMP_NEWGA,
168 168
169 THR_SPLITMV, 169 THR_SPLITMV,
170 THR_SPLITG, 170 THR_SPLITG,
171 THR_SPLITA, 171 THR_SPLITA,
172 THR_COMP_SPLITLA, 172 THR_COMP_SPLITLA,
173 THR_COMP_SPLITGA, 173 THR_COMP_SPLITGA,
174 174
175 THR_ZEROMV, 175 THR_ZEROMV,
176 THR_ZEROG, 176 THR_ZEROG,
177 THR_ZEROA, 177 THR_ZEROA,
178 THR_COMP_ZEROLA, 178 THR_COMP_ZEROLA,
179 THR_COMP_ZEROGA, 179 THR_COMP_ZEROGA,
180 180
181 THR_B_PRED, 181 THR_B_PRED,
182 THR_H_PRED, 182 THR_H_PRED,
183 THR_V_PRED, 183 THR_V_PRED,
184 THR_D135_PRED, 184 THR_D135_PRED,
185 THR_D27_PRED, 185 THR_D207_PRED,
186 THR_D153_PRED, 186 THR_D153_PRED,
187 THR_D63_PRED, 187 THR_D63_PRED,
188 THR_D117_PRED, 188 THR_D117_PRED,
189 THR_D45_PRED, 189 THR_D45_PRED,
190 } THR_MODES; 190 } THR_MODES;
191 191
192 typedef enum { 192 typedef enum {
193 DIAMOND = 0, 193 DIAMOND = 0,
194 NSTEP = 1, 194 NSTEP = 1,
195 HEX = 2 195 HEX = 2,
196 BIGDIA = 3,
197 SQUARE = 4
196 } SEARCH_METHODS; 198 } SEARCH_METHODS;
197 199
198 typedef enum { 200 typedef enum {
199 USE_FULL_RD = 0, 201 USE_FULL_RD = 0,
200 USE_LARGESTINTRA, 202 USE_LARGESTINTRA,
201 USE_LARGESTINTRA_MODELINTER, 203 USE_LARGESTINTRA_MODELINTER,
202 USE_LARGESTALL 204 USE_LARGESTALL
203 } TX_SIZE_SEARCH_METHOD; 205 } TX_SIZE_SEARCH_METHOD;
204 206
205 typedef enum { 207 typedef enum {
(...skipping 11 matching lines...) Expand all
217 // not have the same reference as one of the two references being 219 // not have the same reference as one of the two references being
218 // tested 220 // tested
219 FLAG_SKIP_COMP_REFMISMATCH = 4, 221 FLAG_SKIP_COMP_REFMISMATCH = 4,
220 222
221 // skips oblique intra modes if the best so far is an inter mode 223 // skips oblique intra modes if the best so far is an inter mode
222 FLAG_SKIP_INTRA_BESTINTER = 8, 224 FLAG_SKIP_INTRA_BESTINTER = 8,
223 225
224 // skips oblique intra modes at angles 27, 63, 117, 153 if the best 226 // skips oblique intra modes at angles 27, 63, 117, 153 if the best
225 // intra so far is not one of the neighboring directions 227 // intra so far is not one of the neighboring directions
226 FLAG_SKIP_INTRA_DIRMISMATCH = 16, 228 FLAG_SKIP_INTRA_DIRMISMATCH = 16,
229
230 // skips intra modes other than DC_PRED if the source variance
231 // is small
232 FLAG_SKIP_INTRA_LOWVAR = 32,
227 } MODE_SEARCH_SKIP_LOGIC; 233 } MODE_SEARCH_SKIP_LOGIC;
228 234
235 typedef enum {
236 SUBPEL_ITERATIVE = 0,
237 SUBPEL_TREE = 1,
238 // Other methods to come
239 } SUBPEL_SEARCH_METHODS;
240
241 #define ALL_INTRA_MODES 0x3FF
242 #define INTRA_DC_ONLY 0x01
243 #define INTRA_DC_TM ((1 << TM_PRED) | (1 << DC_PRED))
244 #define INTRA_DC_TM_H_V (INTRA_DC_TM | (1 << V_PRED) | (1 << H_PRED))
245
229 typedef struct { 246 typedef struct {
230 int RD; 247 int RD;
231 SEARCH_METHODS search_method; 248 SEARCH_METHODS search_method;
232 int auto_filter; 249 int auto_filter;
233 int recode_loop; 250 int recode_loop;
234 int iterative_sub_pixel; 251 SUBPEL_SEARCH_METHODS subpel_search_method;
235 int half_pixel_search; 252 int subpel_iters_per_step;
236 int quarter_pixel_search;
237 int thresh_mult[MAX_MODES]; 253 int thresh_mult[MAX_MODES];
238 int max_step_search_steps; 254 int max_step_search_steps;
239 int reduce_first_step_size; 255 int reduce_first_step_size;
240 int auto_mv_step_size; 256 int auto_mv_step_size;
241 int optimize_coefficients; 257 int optimize_coefficients;
242 int search_best_filter; 258 int search_best_filter;
243 int static_segmentation; 259 int static_segmentation;
244 int comp_inter_joint_search_thresh; 260 int comp_inter_joint_search_thresh;
245 int adaptive_rd_thresh; 261 int adaptive_rd_thresh;
246 int skip_encode_sb; 262 int skip_encode_sb;
247 int skip_encode_frame; 263 int skip_encode_frame;
248 int use_lastframe_partitioning; 264 int use_lastframe_partitioning;
249 TX_SIZE_SEARCH_METHOD tx_size_search_method; 265 TX_SIZE_SEARCH_METHOD tx_size_search_method;
250 int use_8tap_always; 266 int use_lp32x32fdct;
251 int use_avoid_tested_higherror; 267 int use_avoid_tested_higherror;
252 int skip_lots_of_modes; 268 int skip_lots_of_modes;
253 int adjust_thresholds_by_speed; 269 int adjust_thresholds_by_speed;
254 int partition_by_variance; 270 int partition_by_variance;
255 int use_one_partition_size_always; 271 int use_one_partition_size_always;
256 int less_rectangular_check; 272 int less_rectangular_check;
257 int use_square_partition_only; 273 int use_square_partition_only;
258 int unused_mode_skip_lvl; 274 int unused_mode_skip_lvl;
259 int reference_masking; 275 int reference_masking;
260 BLOCK_SIZE_TYPE always_this_block_size; 276 BLOCK_SIZE always_this_block_size;
261 int use_partitions_greater_than; 277 int auto_min_max_partition_size;
262 BLOCK_SIZE_TYPE greater_than_block_size; 278 int auto_min_max_partition_interval;
263 int use_partitions_less_than; 279 int auto_min_max_partition_count;
264 BLOCK_SIZE_TYPE less_than_block_size; 280 BLOCK_SIZE min_partition_size;
281 BLOCK_SIZE max_partition_size;
265 int adjust_partitioning_from_last_frame; 282 int adjust_partitioning_from_last_frame;
266 int last_partitioning_redo_frequency; 283 int last_partitioning_redo_frequency;
267 int disable_splitmv; 284 int disable_splitmv;
268 int using_small_partition_info; 285 int using_small_partition_info;
269 286
270 // Implements various heuristics to skip searching modes 287 // Implements various heuristics to skip searching modes
271 // The heuristics selected are based on flags 288 // The heuristics selected are based on flags
272 // defined in the MODE_SEARCH_SKIP_HEURISTICS enum 289 // defined in the MODE_SEARCH_SKIP_HEURISTICS enum
273 unsigned int mode_search_skip_flags; 290 unsigned int mode_search_skip_flags;
274 MB_PREDICTION_MODE last_chroma_intra_mode; 291 // A source variance threshold below which the split mode is disabled
292 unsigned int disable_split_var_thresh;
293 // A source variance threshold below which filter search is disabled
294 // Choose a very large value (UINT_MAX) to use 8-tap always
295 unsigned int disable_filter_search_var_thresh;
296 int intra_y_mode_mask;
297 int intra_uv_mode_mask;
275 int use_rd_breakout; 298 int use_rd_breakout;
276 int use_uv_intra_rd_estimate; 299 int use_uv_intra_rd_estimate;
300 int use_fast_lpf_pick;
277 } SPEED_FEATURES; 301 } SPEED_FEATURES;
278 302
279 typedef struct VP9_COMP { 303 typedef struct VP9_COMP {
280 DECLARE_ALIGNED(16, int16_t, y_quant[QINDEX_RANGE][8]); 304 DECLARE_ALIGNED(16, int16_t, y_quant[QINDEX_RANGE][8]);
281 DECLARE_ALIGNED(16, int16_t, y_quant_shift[QINDEX_RANGE][8]); 305 DECLARE_ALIGNED(16, int16_t, y_quant_shift[QINDEX_RANGE][8]);
282 DECLARE_ALIGNED(16, int16_t, y_zbin[QINDEX_RANGE][8]); 306 DECLARE_ALIGNED(16, int16_t, y_zbin[QINDEX_RANGE][8]);
283 DECLARE_ALIGNED(16, int16_t, y_round[QINDEX_RANGE][8]); 307 DECLARE_ALIGNED(16, int16_t, y_round[QINDEX_RANGE][8]);
284 308
285 DECLARE_ALIGNED(16, int16_t, uv_quant[QINDEX_RANGE][8]); 309 DECLARE_ALIGNED(16, int16_t, uv_quant[QINDEX_RANGE][8]);
286 DECLARE_ALIGNED(16, int16_t, uv_quant_shift[QINDEX_RANGE][8]); 310 DECLARE_ALIGNED(16, int16_t, uv_quant_shift[QINDEX_RANGE][8]);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 // Ambient reconstruction err target for force key frames 374 // Ambient reconstruction err target for force key frames
351 int ambient_err; 375 int ambient_err;
352 376
353 unsigned int mode_check_freq[MAX_MODES]; 377 unsigned int mode_check_freq[MAX_MODES];
354 unsigned int mode_test_hit_counts[MAX_MODES]; 378 unsigned int mode_test_hit_counts[MAX_MODES];
355 unsigned int mode_chosen_counts[MAX_MODES]; 379 unsigned int mode_chosen_counts[MAX_MODES];
356 int64_t unused_mode_skip_mask; 380 int64_t unused_mode_skip_mask;
357 int ref_frame_mask; 381 int ref_frame_mask;
358 int set_ref_frame_mask; 382 int set_ref_frame_mask;
359 383
360 int rd_thresh_mult[MAX_MODES]; 384 int rd_threshes[BLOCK_SIZES][MAX_MODES];
361 int rd_baseline_thresh[BLOCK_SIZE_TYPES][MAX_MODES]; 385 int rd_thresh_freq_fact[BLOCK_SIZES][MAX_MODES];
362 int rd_threshes[BLOCK_SIZE_TYPES][MAX_MODES];
363 int rd_thresh_freq_fact[BLOCK_SIZE_TYPES][MAX_MODES];
364 386
365 int64_t rd_comp_pred_diff[NB_PREDICTION_TYPES]; 387 int64_t rd_comp_pred_diff[NB_PREDICTION_TYPES];
366 // FIXME(rbultje) int64_t? 388 // FIXME(rbultje) int64_t?
367 int rd_prediction_type_threshes[4][NB_PREDICTION_TYPES]; 389 int rd_prediction_type_threshes[4][NB_PREDICTION_TYPES];
368 unsigned int intra_inter_count[INTRA_INTER_CONTEXTS][2]; 390 unsigned int intra_inter_count[INTRA_INTER_CONTEXTS][2];
369 unsigned int comp_inter_count[COMP_INTER_CONTEXTS][2]; 391 unsigned int comp_inter_count[COMP_INTER_CONTEXTS][2];
370 unsigned int single_ref_count[REF_CONTEXTS][2][2]; 392 unsigned int single_ref_count[REF_CONTEXTS][2][2];
371 unsigned int comp_ref_count[REF_CONTEXTS][2]; 393 unsigned int comp_ref_count[REF_CONTEXTS][2];
372 394
373 int64_t rd_tx_select_diff[NB_TXFM_MODES]; 395 int64_t rd_tx_select_diff[TX_MODES];
374 // FIXME(rbultje) can this overflow? 396 // FIXME(rbultje) can this overflow?
375 int rd_tx_select_threshes[4][NB_TXFM_MODES]; 397 int rd_tx_select_threshes[4][TX_MODES];
376 398
377 int64_t rd_filter_diff[VP9_SWITCHABLE_FILTERS + 1]; 399 int64_t rd_filter_diff[SWITCHABLE_FILTERS + 1];
378 int64_t rd_filter_threshes[4][VP9_SWITCHABLE_FILTERS + 1]; 400 int64_t rd_filter_threshes[4][SWITCHABLE_FILTERS + 1];
379 int64_t rd_filter_cache[VP9_SWITCHABLE_FILTERS + 1]; 401 int64_t rd_filter_cache[SWITCHABLE_FILTERS + 1];
380 402
381 int RDMULT; 403 int RDMULT;
382 int RDDIV; 404 int RDDIV;
383 405
384 CODING_CONTEXT coding_context; 406 CODING_CONTEXT coding_context;
385 407
386 // Rate targetting variables 408 // Rate targetting variables
387 int this_frame_target; 409 int this_frame_target;
388 int projected_frame_size; 410 int projected_frame_size;
389 int last_q[2]; // Separate values for Intra/Inter 411 int last_q[2]; // Separate values for Intra/Inter
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 int64_t total_actual_bits; 466 int64_t total_actual_bits;
445 int total_target_vs_actual; // debug stats 467 int total_target_vs_actual; // debug stats
446 468
447 int worst_quality; 469 int worst_quality;
448 int active_worst_quality; 470 int active_worst_quality;
449 int best_quality; 471 int best_quality;
450 int active_best_quality; 472 int active_best_quality;
451 473
452 int cq_target_quality; 474 int cq_target_quality;
453 475
454 int y_mode_count[4][VP9_INTRA_MODES]; 476 int y_mode_count[4][INTRA_MODES];
455 int y_uv_mode_count[VP9_INTRA_MODES][VP9_INTRA_MODES]; 477 int y_uv_mode_count[INTRA_MODES][INTRA_MODES];
456 unsigned int partition_count[NUM_PARTITION_CONTEXTS][PARTITION_TYPES]; 478 unsigned int partition_count[NUM_PARTITION_CONTEXTS][PARTITION_TYPES];
457 479
458 nmv_context_counts NMVcount; 480 nmv_context_counts NMVcount;
459 481
460 vp9_coeff_count coef_counts[TX_SIZE_MAX_SB][BLOCK_TYPES]; 482 vp9_coeff_count coef_counts[TX_SIZES][BLOCK_TYPES];
461 vp9_coeff_probs_model frame_coef_probs[TX_SIZE_MAX_SB][BLOCK_TYPES]; 483 vp9_coeff_probs_model frame_coef_probs[TX_SIZES][BLOCK_TYPES];
462 vp9_coeff_stats frame_branch_ct[TX_SIZE_MAX_SB][BLOCK_TYPES]; 484 vp9_coeff_stats frame_branch_ct[TX_SIZES][BLOCK_TYPES];
463 485
464 int gfu_boost; 486 int gfu_boost;
465 int last_boost; 487 int last_boost;
466 int kf_boost; 488 int kf_boost;
467 int kf_zeromotion_pct; 489 int kf_zeromotion_pct;
468 490
469 int64_t target_bandwidth; 491 int64_t target_bandwidth;
470 struct vpx_codec_pkt_list *output_pkt_list; 492 struct vpx_codec_pkt_list *output_pkt_list;
471 493
472 #if 0 494 #if 0
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 535
514 unsigned char *segmentation_map; 536 unsigned char *segmentation_map;
515 537
516 // segment threashold for encode breakout 538 // segment threashold for encode breakout
517 int segment_encode_breakout[MAX_SEGMENTS]; 539 int segment_encode_breakout[MAX_SEGMENTS];
518 540
519 unsigned char *active_map; 541 unsigned char *active_map;
520 unsigned int active_map_enabled; 542 unsigned int active_map_enabled;
521 543
522 fractional_mv_step_fp *find_fractional_mv_step; 544 fractional_mv_step_fp *find_fractional_mv_step;
545 fractional_mv_step_comp_fp *find_fractional_mv_step_comp;
523 vp9_full_search_fn_t full_search_sad; 546 vp9_full_search_fn_t full_search_sad;
524 vp9_refining_search_fn_t refining_search_sad; 547 vp9_refining_search_fn_t refining_search_sad;
525 vp9_diamond_search_fn_t diamond_search_sad; 548 vp9_diamond_search_fn_t diamond_search_sad;
526 vp9_variance_fn_ptr_t fn_ptr[BLOCK_SIZE_TYPES]; 549 vp9_variance_fn_ptr_t fn_ptr[BLOCK_SIZES];
527 uint64_t time_receive_data; 550 uint64_t time_receive_data;
528 uint64_t time_compress_data; 551 uint64_t time_compress_data;
529 uint64_t time_pick_lpf; 552 uint64_t time_pick_lpf;
530 uint64_t time_encode_mb_row; 553 uint64_t time_encode_sb_row;
531 554
532 struct twopass_rc { 555 struct twopass_rc {
533 unsigned int section_intra_rating; 556 unsigned int section_intra_rating;
534 unsigned int next_iiratio; 557 unsigned int next_iiratio;
535 unsigned int this_iiratio; 558 unsigned int this_iiratio;
536 FIRSTPASS_STATS total_stats; 559 FIRSTPASS_STATS total_stats;
537 FIRSTPASS_STATS this_frame_stats; 560 FIRSTPASS_STATS this_frame_stats;
538 FIRSTPASS_STATS *stats_in, *stats_in_end, *stats_in_start; 561 FIRSTPASS_STATS *stats_in, *stats_in_end, *stats_in_start;
539 FIRSTPASS_STATS total_left_stats; 562 FIRSTPASS_STATS total_left_stats;
540 int first_pass_done; 563 int first_pass_done;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 int *mb_norm_activity_map; 632 int *mb_norm_activity_map;
610 int output_partition; 633 int output_partition;
611 634
612 /* force next frame to intra when kf_auto says so */ 635 /* force next frame to intra when kf_auto says so */
613 int force_next_frame_intra; 636 int force_next_frame_intra;
614 637
615 int droppable; 638 int droppable;
616 639
617 int dummy_packing; /* flag to indicate if packing is dummy */ 640 int dummy_packing; /* flag to indicate if packing is dummy */
618 641
619 unsigned int switchable_interp_count[VP9_SWITCHABLE_FILTERS + 1] 642 unsigned int switchable_interp_count[SWITCHABLE_FILTERS + 1]
620 [VP9_SWITCHABLE_FILTERS]; 643 [SWITCHABLE_FILTERS];
621 644
622 unsigned int txfm_stepdown_count[TX_SIZE_MAX_SB]; 645 unsigned int txfm_stepdown_count[TX_SIZES];
623 646
624 int initial_width; 647 int initial_width;
625 int initial_height; 648 int initial_height;
626 649
627 #if CONFIG_MULTIPLE_ARF 650 #if CONFIG_MULTIPLE_ARF
628 // ARF tracking variables. 651 // ARF tracking variables.
629 int multi_arf_enabled; 652 int multi_arf_enabled;
630 unsigned int frame_coding_order_period; 653 unsigned int frame_coding_order_period;
631 unsigned int new_frame_coding_order_period; 654 unsigned int new_frame_coding_order_period;
632 int frame_coding_order[MAX_LAG_BUFFERS * 2]; 655 int frame_coding_order[MAX_LAG_BUFFERS * 2];
633 int arf_buffer_idx[MAX_LAG_BUFFERS * 3 / 2]; 656 int arf_buffer_idx[MAX_LAG_BUFFERS * 3 / 2];
634 int arf_weight[MAX_LAG_BUFFERS]; 657 int arf_weight[MAX_LAG_BUFFERS];
635 int arf_buffered; 658 int arf_buffered;
636 int this_frame_weight; 659 int this_frame_weight;
637 int max_arf_level; 660 int max_arf_level;
638 #endif 661 #endif
639 662
640 #ifdef ENTROPY_STATS 663 #ifdef ENTROPY_STATS
641 int64_t mv_ref_stats[INTER_MODE_CONTEXTS][VP9_INTER_MODES - 1][2]; 664 int64_t mv_ref_stats[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
642 #endif 665 #endif
643 } VP9_COMP; 666 } VP9_COMP;
644 667
645 static int get_ref_frame_idx(VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) { 668 static int get_ref_frame_idx(VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) {
646 if (ref_frame == LAST_FRAME) { 669 if (ref_frame == LAST_FRAME) {
647 return cpi->lst_fb_idx; 670 return cpi->lst_fb_idx;
648 } else if (ref_frame == GOLDEN_FRAME) { 671 } else if (ref_frame == GOLDEN_FRAME) {
649 return cpi->gld_fb_idx; 672 return cpi->gld_fb_idx;
650 } else { 673 } else {
651 return cpi->alt_fb_idx; 674 return cpi->alt_fb_idx;
652 } 675 }
653 } 676 }
654 677
655 void vp9_encode_frame(VP9_COMP *cpi); 678 void vp9_encode_frame(VP9_COMP *cpi);
656 679
657 void vp9_pack_bitstream(VP9_COMP *cpi, unsigned char *dest, 680 void vp9_pack_bitstream(VP9_COMP *cpi, unsigned char *dest,
658 unsigned long *size); 681 unsigned long *size);
659 682
660 void vp9_activity_masking(VP9_COMP *cpi, MACROBLOCK *x); 683 void vp9_activity_masking(VP9_COMP *cpi, MACROBLOCK *x);
661 684
662 void vp9_set_speed_features(VP9_COMP *cpi); 685 void vp9_set_speed_features(VP9_COMP *cpi);
663 686
664 extern int vp9_calc_ss_err(YV12_BUFFER_CONFIG *source, 687 extern int vp9_calc_ss_err(YV12_BUFFER_CONFIG *source,
665 YV12_BUFFER_CONFIG *dest); 688 YV12_BUFFER_CONFIG *dest);
666 689
667 extern void vp9_alloc_compressor_data(VP9_COMP *cpi); 690 extern void vp9_alloc_compressor_data(VP9_COMP *cpi);
668 691
669 #endif // VP9_ENCODER_VP9_ONYX_INT_H_ 692 #endif // VP9_ENCODER_VP9_ONYX_INT_H_
OLDNEW
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_onyx_if.c ('k') | source/libvpx/vp9/encoder/vp9_picklpf.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698