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

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

Issue 11974002: libvpx: Pull from upstream (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 7 years, 11 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
11 11
12 #ifndef VP9_ENCODER_VP9_ONYX_INT_H_ 12 #ifndef VP9_ENCODER_VP9_ONYX_INT_H_
13 #define VP9_ENCODER_VP9_ONYX_INT_H_ 13 #define VP9_ENCODER_VP9_ONYX_INT_H_
14 14
15 #include <stdio.h> 15 #include <stdio.h>
16 #include "vpx_ports/config.h" 16 #include "./vpx_config.h"
17 #include "vp9/common/vp9_onyx.h" 17 #include "vp9/common/vp9_onyx.h"
18 #include "vp9/encoder/vp9_treewriter.h" 18 #include "vp9/encoder/vp9_treewriter.h"
19 #include "vp9/encoder/vp9_tokenize.h" 19 #include "vp9/encoder/vp9_tokenize.h"
20 #include "vp9/common/vp9_onyxc_int.h" 20 #include "vp9/common/vp9_onyxc_int.h"
21 #include "vp9/encoder/vp9_variance.h" 21 #include "vp9/encoder/vp9_variance.h"
22 #include "vp9/encoder/vp9_encodemb.h" 22 #include "vp9/encoder/vp9_encodemb.h"
23 #include "vp9/encoder/vp9_quantize.h" 23 #include "vp9/encoder/vp9_quantize.h"
24 #include "vp9/common/vp9_entropy.h" 24 #include "vp9/common/vp9_entropy.h"
25 #include "vp9/common/vp9_entropymode.h" 25 #include "vp9/common/vp9_entropymode.h"
26 #include "vpx_ports/mem.h" 26 #include "vpx_ports/mem.h"
27 #include "vpx/internal/vpx_codec_internal.h" 27 #include "vpx/internal/vpx_codec_internal.h"
28 #include "vp9/encoder/vp9_mcomp.h" 28 #include "vp9/encoder/vp9_mcomp.h"
29 #include "vp9/common/vp9_findnearmv.h" 29 #include "vp9/common/vp9_findnearmv.h"
30 #include "vp9/encoder/vp9_lookahead.h" 30 #include "vp9/encoder/vp9_lookahead.h"
31 31
32 // #define SPEEDSTATS 1 32 // #define SPEEDSTATS 1
33 #define MIN_GF_INTERVAL 4 33 #define MIN_GF_INTERVAL 4
34 #define DEFAULT_GF_INTERVAL 7 34 #define DEFAULT_GF_INTERVAL 7
35 35
36 #define KEY_FRAME_CONTEXT 5 36 #define KEY_FRAME_CONTEXT 5
37 37
38 #define MAX_LAG_BUFFERS 25 38 #define MAX_LAG_BUFFERS 25
39 39
40 #define AF_THRESH 25 40 #define AF_THRESH 25
41 #define AF_THRESH2 100 41 #define AF_THRESH2 100
42 #define ARF_DECAY_THRESH 12 42 #define ARF_DECAY_THRESH 12
43 43
44 #if CONFIG_PRED_FILTER
45 #if CONFIG_COMP_INTERINTRA_PRED
46 #define MAX_MODES 66
47 #else
48 #define MAX_MODES 54
49 #endif
50 #else // CONFIG_PRED_FILTER
51 #if CONFIG_COMP_INTERINTRA_PRED 44 #if CONFIG_COMP_INTERINTRA_PRED
52 #define MAX_MODES 54 45 #define MAX_MODES 54
53 #else 46 #else
54 #define MAX_MODES 42 47 #define MAX_MODES 42
55 #endif 48 #endif
56 #endif // CONFIG_PRED_FILTER
57 49
58 #define MIN_THRESHMULT 32 50 #define MIN_THRESHMULT 32
59 #define MAX_THRESHMULT 512 51 #define MAX_THRESHMULT 512
60 52
61 #define GF_ZEROMV_ZBIN_BOOST 12 53 #define GF_ZEROMV_ZBIN_BOOST 12
62 #define LF_ZEROMV_ZBIN_BOOST 6 54 #define LF_ZEROMV_ZBIN_BOOST 6
63 #define MV_ZBIN_BOOST 4 55 #define MV_ZBIN_BOOST 4
64 #define ZBIN_OQ_MAX 192 56 #define ZBIN_OQ_MAX 192
65 57
66 #define VP9_TEMPORAL_ALT_REF 1 58 #define VP9_TEMPORAL_ALT_REF 1
(...skipping 20 matching lines...) Expand all
87 vp9_prob ref_pred_probs[PREDICTION_PROBS]; 79 vp9_prob ref_pred_probs[PREDICTION_PROBS];
88 vp9_prob prob_comppred[COMP_PRED_CONTEXTS]; 80 vp9_prob prob_comppred[COMP_PRED_CONTEXTS];
89 81
90 unsigned char *last_frame_seg_map_copy; 82 unsigned char *last_frame_seg_map_copy;
91 83
92 // 0 = Intra, Last, GF, ARF 84 // 0 = Intra, Last, GF, ARF
93 signed char last_ref_lf_deltas[MAX_REF_LF_DELTAS]; 85 signed char last_ref_lf_deltas[MAX_REF_LF_DELTAS];
94 // 0 = BPRED, ZERO_MV, MV, SPLIT 86 // 0 = BPRED, ZERO_MV, MV, SPLIT
95 signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS]; 87 signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS];
96 88
97 vp9_prob coef_probs[BLOCK_TYPES] 89 vp9_coeff_probs coef_probs_4x4[BLOCK_TYPES_4X4];
98 [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES]; 90 vp9_coeff_probs hybrid_coef_probs_4x4[BLOCK_TYPES_4X4];
99 vp9_prob hybrid_coef_probs[BLOCK_TYPES] 91 vp9_coeff_probs coef_probs_8x8[BLOCK_TYPES_8X8];
100 [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES]; 92 vp9_coeff_probs hybrid_coef_probs_8x8[BLOCK_TYPES_8X8];
93 vp9_coeff_probs coef_probs_16x16[BLOCK_TYPES_16X16];
94 vp9_coeff_probs hybrid_coef_probs_16x16[BLOCK_TYPES_16X16];
95 vp9_coeff_probs coef_probs_32x32[BLOCK_TYPES_32X32];
101 96
102 vp9_prob coef_probs_8x8[BLOCK_TYPES_8X8]
103 [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
104 vp9_prob hybrid_coef_probs_8x8[BLOCK_TYPES_8X8]
105 [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
106
107 vp9_prob coef_probs_16x16[BLOCK_TYPES_16X16]
108 [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
109 vp9_prob hybrid_coef_probs_16x16[BLOCK_TYPES_16X16]
110 [COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
111
112 #if CONFIG_SUPERBLOCKS
113 vp9_prob sb_ymode_prob[VP9_I32X32_MODES - 1]; 97 vp9_prob sb_ymode_prob[VP9_I32X32_MODES - 1];
114 #endif
115 vp9_prob ymode_prob[VP9_YMODES - 1]; /* interframe intra mode probs */ 98 vp9_prob ymode_prob[VP9_YMODES - 1]; /* interframe intra mode probs */
116 vp9_prob uv_mode_prob[VP9_YMODES][VP9_UV_MODES - 1]; 99 vp9_prob uv_mode_prob[VP9_YMODES][VP9_UV_MODES - 1];
117 vp9_prob bmode_prob[VP9_NKF_BINTRAMODES - 1]; 100 vp9_prob bmode_prob[VP9_NKF_BINTRAMODES - 1];
118 vp9_prob i8x8_mode_prob[VP9_I8X8_MODES - 1]; 101 vp9_prob i8x8_mode_prob[VP9_I8X8_MODES - 1];
119 vp9_prob sub_mv_ref_prob[SUBMVREF_COUNT][VP9_SUBMVREFS - 1]; 102 vp9_prob sub_mv_ref_prob[SUBMVREF_COUNT][VP9_SUBMVREFS - 1];
120 vp9_prob mbsplit_prob[VP9_NUMMBSPLITS - 1]; 103 vp9_prob mbsplit_prob[VP9_NUMMBSPLITS - 1];
121 104
122 vp9_prob switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1] 105 vp9_prob switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1]
123 [VP9_SWITCHABLE_FILTERS - 1]; 106 [VP9_SWITCHABLE_FILTERS - 1];
124 #if CONFIG_COMP_INTERINTRA_PRED 107 #if CONFIG_COMP_INTERINTRA_PRED
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 int_mv mv; 156 int_mv mv;
174 MB_PREDICTION_MODE mode; 157 MB_PREDICTION_MODE mode;
175 } m; 158 } m;
176 } ref[MAX_REF_FRAMES]; 159 } ref[MAX_REF_FRAMES];
177 } MBGRAPH_MB_STATS; 160 } MBGRAPH_MB_STATS;
178 161
179 typedef struct { 162 typedef struct {
180 MBGRAPH_MB_STATS *mb_stats; 163 MBGRAPH_MB_STATS *mb_stats;
181 } MBGRAPH_FRAME_STATS; 164 } MBGRAPH_FRAME_STATS;
182 165
183 #if CONFIG_PRED_FILTER
184 typedef enum { 166 typedef enum {
185 THR_ZEROMV, 167 THR_ZEROMV,
186 THR_ZEROMV_FILT,
187 THR_DC, 168 THR_DC,
188 169
189 THR_NEARESTMV, 170 THR_NEARESTMV,
190 THR_NEARESTMV_FILT,
191 THR_NEARMV, 171 THR_NEARMV,
192 THR_NEARMV_FILT,
193 172
194 THR_ZEROG, 173 THR_ZEROG,
195 THR_ZEROG_FILT,
196 THR_NEARESTG, 174 THR_NEARESTG,
197 THR_NEARESTG_FILT,
198 175
199 THR_ZEROA, 176 THR_ZEROA,
200 THR_ZEROA_FILT,
201 THR_NEARESTA, 177 THR_NEARESTA,
202 THR_NEARESTA_FILT,
203 178
204 THR_NEARG, 179 THR_NEARG,
205 THR_NEARG_FILT,
206 THR_NEARA, 180 THR_NEARA,
207 THR_NEARA_FILT,
208 181
209 THR_V_PRED, 182 THR_V_PRED,
210 THR_H_PRED, 183 THR_H_PRED,
211 THR_D45_PRED, 184 THR_D45_PRED,
212 THR_D135_PRED, 185 THR_D135_PRED,
213 THR_D117_PRED, 186 THR_D117_PRED,
214 THR_D153_PRED, 187 THR_D153_PRED,
215 THR_D27_PRED, 188 THR_D27_PRED,
216 THR_D63_PRED, 189 THR_D63_PRED,
217 THR_TM, 190 THR_TM,
218 191
219 THR_NEWMV, 192 THR_NEWMV,
220 THR_NEWMV_FILT,
221 THR_NEWG, 193 THR_NEWG,
222 THR_NEWG_FILT,
223 THR_NEWA, 194 THR_NEWA,
224 THR_NEWA_FILT,
225 195
226 THR_SPLITMV, 196 THR_SPLITMV,
227 THR_SPLITG, 197 THR_SPLITG,
228 THR_SPLITA, 198 THR_SPLITA,
229 199
230 THR_B_PRED, 200 THR_B_PRED,
231 THR_I8X8_PRED, 201 THR_I8X8_PRED,
232 202
233 THR_COMP_ZEROLG, 203 THR_COMP_ZEROLG,
234 THR_COMP_NEARESTLG, 204 THR_COMP_NEARESTLG,
(...skipping 25 matching lines...) Expand all
260 THR_COMP_INTERINTRA_NEARG, 230 THR_COMP_INTERINTRA_NEARG,
261 THR_COMP_INTERINTRA_NEWG, 231 THR_COMP_INTERINTRA_NEWG,
262 232
263 THR_COMP_INTERINTRA_ZEROA, 233 THR_COMP_INTERINTRA_ZEROA,
264 THR_COMP_INTERINTRA_NEARESTA, 234 THR_COMP_INTERINTRA_NEARESTA,
265 THR_COMP_INTERINTRA_NEARA, 235 THR_COMP_INTERINTRA_NEARA,
266 THR_COMP_INTERINTRA_NEWA, 236 THR_COMP_INTERINTRA_NEWA,
267 #endif 237 #endif
268 } 238 }
269 THR_MODES; 239 THR_MODES;
270 #else
271 typedef enum {
272 THR_ZEROMV,
273 THR_DC,
274
275 THR_NEARESTMV,
276 THR_NEARMV,
277
278 THR_ZEROG,
279 THR_NEARESTG,
280
281 THR_ZEROA,
282 THR_NEARESTA,
283
284 THR_NEARG,
285 THR_NEARA,
286
287 THR_V_PRED,
288 THR_H_PRED,
289 THR_D45_PRED,
290 THR_D135_PRED,
291 THR_D117_PRED,
292 THR_D153_PRED,
293 THR_D27_PRED,
294 THR_D63_PRED,
295 THR_TM,
296
297 THR_NEWMV,
298 THR_NEWG,
299 THR_NEWA,
300
301 THR_SPLITMV,
302 THR_SPLITG,
303 THR_SPLITA,
304
305 THR_B_PRED,
306 THR_I8X8_PRED,
307
308 THR_COMP_ZEROLG,
309 THR_COMP_NEARESTLG,
310 THR_COMP_NEARLG,
311
312 THR_COMP_ZEROLA,
313 THR_COMP_NEARESTLA,
314 THR_COMP_NEARLA,
315
316 THR_COMP_ZEROGA,
317 THR_COMP_NEARESTGA,
318 THR_COMP_NEARGA,
319
320 THR_COMP_NEWLG,
321 THR_COMP_NEWLA,
322 THR_COMP_NEWGA,
323
324 THR_COMP_SPLITLG,
325 THR_COMP_SPLITLA,
326 THR_COMP_SPLITGA,
327 #if CONFIG_COMP_INTERINTRA_PRED
328 THR_COMP_INTERINTRA_ZEROL,
329 THR_COMP_INTERINTRA_NEARESTL,
330 THR_COMP_INTERINTRA_NEARL,
331 THR_COMP_INTERINTRA_NEWL,
332
333 THR_COMP_INTERINTRA_ZEROG,
334 THR_COMP_INTERINTRA_NEARESTG,
335 THR_COMP_INTERINTRA_NEARG,
336 THR_COMP_INTERINTRA_NEWG,
337
338 THR_COMP_INTERINTRA_ZEROA,
339 THR_COMP_INTERINTRA_NEARESTA,
340 THR_COMP_INTERINTRA_NEARA,
341 THR_COMP_INTERINTRA_NEWA,
342 #endif
343 }
344 THR_MODES;
345 #endif
346 240
347 typedef enum { 241 typedef enum {
348 DIAMOND = 0, 242 DIAMOND = 0,
349 NSTEP = 1, 243 NSTEP = 1,
350 HEX = 2 244 HEX = 2
351 } SEARCH_METHODS; 245 } SEARCH_METHODS;
352 246
353 typedef struct { 247 typedef struct {
354 int RD; 248 int RD;
355 SEARCH_METHODS search_method; 249 SEARCH_METHODS search_method;
356 int improved_dct; 250 int improved_dct;
357 int auto_filter; 251 int auto_filter;
358 int recode_loop; 252 int recode_loop;
359 int iterative_sub_pixel; 253 int iterative_sub_pixel;
360 int half_pixel_search; 254 int half_pixel_search;
361 int quarter_pixel_search; 255 int quarter_pixel_search;
362 int thresh_mult[MAX_MODES]; 256 int thresh_mult[MAX_MODES];
363 int max_step_search_steps; 257 int max_step_search_steps;
364 int first_step; 258 int first_step;
365 int optimize_coefficients; 259 int optimize_coefficients;
366 int no_skip_block4x4_search; 260 int no_skip_block4x4_search;
367 int improved_mv_pred;
368 int search_best_filter; 261 int search_best_filter;
369 262
370 } SPEED_FEATURES; 263 } SPEED_FEATURES;
371 264
372 typedef struct { 265 typedef struct {
373 MACROBLOCK mb; 266 MACROBLOCK mb;
374 int totalrate; 267 int totalrate;
375 } MB_ROW_COMP; 268 } MB_ROW_COMP;
376 269
377 typedef struct { 270 typedef struct {
(...skipping 12 matching lines...) Expand all
390 } LPFTHREAD_DATA; 283 } LPFTHREAD_DATA;
391 284
392 enum BlockSize { 285 enum BlockSize {
393 BLOCK_16X8 = PARTITIONING_16X8, 286 BLOCK_16X8 = PARTITIONING_16X8,
394 BLOCK_8X16 = PARTITIONING_8X16, 287 BLOCK_8X16 = PARTITIONING_8X16,
395 BLOCK_8X8 = PARTITIONING_8X8, 288 BLOCK_8X8 = PARTITIONING_8X8,
396 BLOCK_4X4 = PARTITIONING_4X4, 289 BLOCK_4X4 = PARTITIONING_4X4,
397 BLOCK_16X16, 290 BLOCK_16X16,
398 BLOCK_MAX_SEGMENTS, 291 BLOCK_MAX_SEGMENTS,
399 BLOCK_32X32 = BLOCK_MAX_SEGMENTS, 292 BLOCK_32X32 = BLOCK_MAX_SEGMENTS,
293 BLOCK_64X64,
400 BLOCK_MAX_SB_SEGMENTS, 294 BLOCK_MAX_SB_SEGMENTS,
401 }; 295 };
402 296
403 typedef struct VP9_COMP { 297 typedef struct VP9_COMP {
404 298
405 DECLARE_ALIGNED(16, short, Y1quant[QINDEX_RANGE][16]); 299 DECLARE_ALIGNED(16, short, Y1quant[QINDEX_RANGE][16]);
406 DECLARE_ALIGNED(16, unsigned char, Y1quant_shift[QINDEX_RANGE][16]); 300 DECLARE_ALIGNED(16, unsigned char, Y1quant_shift[QINDEX_RANGE][16]);
407 DECLARE_ALIGNED(16, short, Y1zbin[QINDEX_RANGE][16]); 301 DECLARE_ALIGNED(16, short, Y1zbin[QINDEX_RANGE][16]);
408 DECLARE_ALIGNED(16, short, Y1round[QINDEX_RANGE][16]); 302 DECLARE_ALIGNED(16, short, Y1round[QINDEX_RANGE][16]);
409 303
(...skipping 18 matching lines...) Expand all
428 DECLARE_ALIGNED(64, short, zrun_zbin_boost_y2_8x8[QINDEX_RANGE][64]); 322 DECLARE_ALIGNED(64, short, zrun_zbin_boost_y2_8x8[QINDEX_RANGE][64]);
429 DECLARE_ALIGNED(64, short, zrun_zbin_boost_uv_8x8[QINDEX_RANGE][64]); 323 DECLARE_ALIGNED(64, short, zrun_zbin_boost_uv_8x8[QINDEX_RANGE][64]);
430 324
431 DECLARE_ALIGNED(16, short, Y1zbin_16x16[QINDEX_RANGE][256]); 325 DECLARE_ALIGNED(16, short, Y1zbin_16x16[QINDEX_RANGE][256]);
432 DECLARE_ALIGNED(16, short, Y2zbin_16x16[QINDEX_RANGE][256]); 326 DECLARE_ALIGNED(16, short, Y2zbin_16x16[QINDEX_RANGE][256]);
433 DECLARE_ALIGNED(16, short, UVzbin_16x16[QINDEX_RANGE][256]); 327 DECLARE_ALIGNED(16, short, UVzbin_16x16[QINDEX_RANGE][256]);
434 DECLARE_ALIGNED(16, short, zrun_zbin_boost_y1_16x16[QINDEX_RANGE][256]); 328 DECLARE_ALIGNED(16, short, zrun_zbin_boost_y1_16x16[QINDEX_RANGE][256]);
435 DECLARE_ALIGNED(16, short, zrun_zbin_boost_y2_16x16[QINDEX_RANGE][256]); 329 DECLARE_ALIGNED(16, short, zrun_zbin_boost_y2_16x16[QINDEX_RANGE][256]);
436 DECLARE_ALIGNED(16, short, zrun_zbin_boost_uv_16x16[QINDEX_RANGE][256]); 330 DECLARE_ALIGNED(16, short, zrun_zbin_boost_uv_16x16[QINDEX_RANGE][256]);
437 331
332 DECLARE_ALIGNED(16, short, Y1zbin_32x32[QINDEX_RANGE][1024]);
333 DECLARE_ALIGNED(16, short, Y2zbin_32x32[QINDEX_RANGE][1024]);
334 DECLARE_ALIGNED(16, short, UVzbin_32x32[QINDEX_RANGE][1024]);
335 DECLARE_ALIGNED(16, short, zrun_zbin_boost_y1_32x32[QINDEX_RANGE][1024]);
336 DECLARE_ALIGNED(16, short, zrun_zbin_boost_y2_32x32[QINDEX_RANGE][1024]);
337 DECLARE_ALIGNED(16, short, zrun_zbin_boost_uv_32x32[QINDEX_RANGE][1024]);
338
438 MACROBLOCK mb; 339 MACROBLOCK mb;
439 VP9_COMMON common; 340 VP9_COMMON common;
440 VP9_CONFIG oxcf; 341 VP9_CONFIG oxcf;
441 342
442 struct lookahead_ctx *lookahead; 343 struct lookahead_ctx *lookahead;
443 struct lookahead_entry *source; 344 struct lookahead_entry *source;
444 struct lookahead_entry *alt_ref_source; 345 struct lookahead_entry *alt_ref_source;
445 346
446 YV12_BUFFER_CONFIG *Source; 347 YV12_BUFFER_CONFIG *Source;
447 YV12_BUFFER_CONFIG *un_scaled_source; 348 YV12_BUFFER_CONFIG *un_scaled_source;
(...skipping 28 matching lines...) Expand all
476 unsigned int mode_chosen_counts[MAX_MODES]; 377 unsigned int mode_chosen_counts[MAX_MODES];
477 378
478 int rd_thresh_mult[MAX_MODES]; 379 int rd_thresh_mult[MAX_MODES];
479 int rd_baseline_thresh[MAX_MODES]; 380 int rd_baseline_thresh[MAX_MODES];
480 int rd_threshes[MAX_MODES]; 381 int rd_threshes[MAX_MODES];
481 int64_t rd_comp_pred_diff[NB_PREDICTION_TYPES]; 382 int64_t rd_comp_pred_diff[NB_PREDICTION_TYPES];
482 int rd_prediction_type_threshes[4][NB_PREDICTION_TYPES]; 383 int rd_prediction_type_threshes[4][NB_PREDICTION_TYPES];
483 int comp_pred_count[COMP_PRED_CONTEXTS]; 384 int comp_pred_count[COMP_PRED_CONTEXTS];
484 int single_pred_count[COMP_PRED_CONTEXTS]; 385 int single_pred_count[COMP_PRED_CONTEXTS];
485 // FIXME contextualize 386 // FIXME contextualize
486 int txfm_count[TX_SIZE_MAX]; 387 int txfm_count_32x32p[TX_SIZE_MAX_SB];
487 int txfm_count_8x8p[TX_SIZE_MAX - 1]; 388 int txfm_count_16x16p[TX_SIZE_MAX_MB];
389 int txfm_count_8x8p[TX_SIZE_MAX_MB - 1];
488 int64_t rd_tx_select_diff[NB_TXFM_MODES]; 390 int64_t rd_tx_select_diff[NB_TXFM_MODES];
489 int rd_tx_select_threshes[4][NB_TXFM_MODES]; 391 int rd_tx_select_threshes[4][NB_TXFM_MODES];
490 392
491 int RDMULT; 393 int RDMULT;
492 int RDDIV; 394 int RDDIV;
493 395
494 CODING_CONTEXT coding_context; 396 CODING_CONTEXT coding_context;
495 397
496 // Rate targetting variables 398 // Rate targetting variables
497 int64_t prediction_error; 399 int64_t prediction_error;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 int64_t total_actual_bits; 461 int64_t total_actual_bits;
560 int total_target_vs_actual; // debug stats 462 int total_target_vs_actual; // debug stats
561 463
562 int worst_quality; 464 int worst_quality;
563 int active_worst_quality; 465 int active_worst_quality;
564 int best_quality; 466 int best_quality;
565 int active_best_quality; 467 int active_best_quality;
566 468
567 int cq_target_quality; 469 int cq_target_quality;
568 470
569 #if CONFIG_SUPERBLOCKS 471 int sb32_count[2];
570 int sb_count; 472 int sb64_count[2];
571 int sb_ymode_count [VP9_I32X32_MODES]; 473 int sb_ymode_count [VP9_I32X32_MODES];
572 #endif
573 int ymode_count[VP9_YMODES]; /* intra MB type cts this frame */ 474 int ymode_count[VP9_YMODES]; /* intra MB type cts this frame */
574 int bmode_count[VP9_NKF_BINTRAMODES]; 475 int bmode_count[VP9_NKF_BINTRAMODES];
575 int i8x8_mode_count[VP9_I8X8_MODES]; 476 int i8x8_mode_count[VP9_I8X8_MODES];
576 int sub_mv_ref_count[SUBMVREF_COUNT][VP9_SUBMVREFS]; 477 int sub_mv_ref_count[SUBMVREF_COUNT][VP9_SUBMVREFS];
577 int mbsplit_count[VP9_NUMMBSPLITS]; 478 int mbsplit_count[VP9_NUMMBSPLITS];
578 int y_uv_mode_count[VP9_YMODES][VP9_UV_MODES]; 479 int y_uv_mode_count[VP9_YMODES][VP9_UV_MODES];
579 #if CONFIG_COMP_INTERINTRA_PRED 480 #if CONFIG_COMP_INTERINTRA_PRED
580 unsigned int interintra_count[2]; 481 unsigned int interintra_count[2];
581 unsigned int interintra_select_count[2]; 482 unsigned int interintra_select_count[2];
582 #endif 483 #endif
583 484
584 nmv_context_counts NMVcount; 485 nmv_context_counts NMVcount;
585 486
586 unsigned int coef_counts [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ ENTROPY_TOKENS]; /* for this frame */ 487 vp9_coeff_count coef_counts_4x4[BLOCK_TYPES_4X4];
587 vp9_prob frame_coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENT ROPY_NODES]; 488 vp9_coeff_probs frame_coef_probs_4x4[BLOCK_TYPES_4X4];
588 unsigned int frame_branch_ct [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ ENTROPY_NODES][2]; 489 vp9_coeff_stats frame_branch_ct_4x4[BLOCK_TYPES_4X4];
589 unsigned int hybrid_coef_counts [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS ] [MAX_ENTROPY_TOKENS]; /* for this frame */ 490 vp9_coeff_count hybrid_coef_counts_4x4[BLOCK_TYPES_4X4];
590 vp9_prob frame_hybrid_coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXT S] [ENTROPY_NODES]; 491 vp9_coeff_probs frame_hybrid_coef_probs_4x4[BLOCK_TYPES_4X4];
591 unsigned int frame_hybrid_branch_ct [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONT EXTS] [ENTROPY_NODES][2]; 492 vp9_coeff_stats frame_hybrid_branch_ct_4x4[BLOCK_TYPES_4X4];
592 493
593 unsigned int coef_counts_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXT S] [MAX_ENTROPY_TOKENS]; /* for this frame */ 494 vp9_coeff_count coef_counts_8x8[BLOCK_TYPES_8X8];
594 vp9_prob frame_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEX TS] [ENTROPY_NODES]; 495 vp9_coeff_probs frame_coef_probs_8x8[BLOCK_TYPES_8X8];
595 unsigned int frame_branch_ct_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CON TEXTS] [ENTROPY_NODES][2]; 496 vp9_coeff_stats frame_branch_ct_8x8[BLOCK_TYPES_8X8];
596 unsigned int hybrid_coef_counts_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_ CONTEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */ 497 vp9_coeff_count hybrid_coef_counts_8x8[BLOCK_TYPES_8X8];
597 vp9_prob frame_hybrid_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF _CONTEXTS] [ENTROPY_NODES]; 498 vp9_coeff_probs frame_hybrid_coef_probs_8x8[BLOCK_TYPES_8X8];
598 unsigned int frame_hybrid_branch_ct_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_C OEF_CONTEXTS] [ENTROPY_NODES][2]; 499 vp9_coeff_stats frame_hybrid_branch_ct_8x8[BLOCK_TYPES_8X8];
599 500
600 unsigned int coef_counts_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CON TEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */ 501 vp9_coeff_count coef_counts_16x16[BLOCK_TYPES_16X16];
601 vp9_prob frame_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF_CO NTEXTS] [ENTROPY_NODES]; 502 vp9_coeff_probs frame_coef_probs_16x16[BLOCK_TYPES_16X16];
602 unsigned int frame_branch_ct_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_COEF _CONTEXTS] [ENTROPY_NODES][2]; 503 vp9_coeff_stats frame_branch_ct_16x16[BLOCK_TYPES_16X16];
603 unsigned int hybrid_coef_counts_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_C OEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; /* for this frame */ 504 vp9_coeff_count hybrid_coef_counts_16x16[BLOCK_TYPES_16X16];
604 vp9_prob frame_hybrid_coef_probs_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PREV_ COEF_CONTEXTS] [ENTROPY_NODES]; 505 vp9_coeff_probs frame_hybrid_coef_probs_16x16[BLOCK_TYPES_16X16];
605 unsigned int frame_hybrid_branch_ct_16x16 [BLOCK_TYPES_16X16] [COEF_BANDS] [PR EV_COEF_CONTEXTS] [ENTROPY_NODES][2]; 506 vp9_coeff_stats frame_hybrid_branch_ct_16x16[BLOCK_TYPES_16X16];
507
508 vp9_coeff_count coef_counts_32x32[BLOCK_TYPES_32X32];
509 vp9_coeff_probs frame_coef_probs_32x32[BLOCK_TYPES_32X32];
510 vp9_coeff_stats frame_branch_ct_32x32[BLOCK_TYPES_32X32];
606 511
607 int gfu_boost; 512 int gfu_boost;
608 int last_boost; 513 int last_boost;
609 int kf_boost; 514 int kf_boost;
610 int kf_zeromotion_pct; 515 int kf_zeromotion_pct;
611 516
612 int target_bandwidth; 517 int target_bandwidth;
613 struct vpx_codec_pkt_list *output_pkt_list; 518 struct vpx_codec_pkt_list *output_pkt_list;
614 519
615 #if 0 520 #if 0
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 /* force next frame to intra when kf_auto says so */ 681 /* force next frame to intra when kf_auto says so */
777 int force_next_frame_intra; 682 int force_next_frame_intra;
778 683
779 int droppable; 684 int droppable;
780 685
781 // TODO Do we still need this?? 686 // TODO Do we still need this??
782 int update_context; 687 int update_context;
783 688
784 int dummy_packing; /* flag to indicate if packing is dummy */ 689 int dummy_packing; /* flag to indicate if packing is dummy */
785 690
786 #if CONFIG_PRED_FILTER
787 int pred_filter_on_count;
788 int pred_filter_off_count;
789 #endif
790 unsigned int switchable_interp_count[VP9_SWITCHABLE_FILTERS + 1] 691 unsigned int switchable_interp_count[VP9_SWITCHABLE_FILTERS + 1]
791 [VP9_SWITCHABLE_FILTERS]; 692 [VP9_SWITCHABLE_FILTERS];
693 unsigned int best_switchable_interp_count[VP9_SWITCHABLE_FILTERS];
694
792 #if CONFIG_NEW_MVREF 695 #if CONFIG_NEW_MVREF
793 unsigned int best_ref_index_counts[MAX_REF_FRAMES][MAX_MV_REFS]; 696 unsigned int mb_mv_ref_count[MAX_REF_FRAMES][MAX_MV_REF_CANDIDATES];
794 #endif 697 #endif
795 698
796 } VP9_COMP; 699 } VP9_COMP;
797 700
798 void vp9_encode_frame(VP9_COMP *cpi); 701 void vp9_encode_frame(VP9_COMP *cpi);
799 702
800 void vp9_pack_bitstream(VP9_COMP *cpi, unsigned char *dest, 703 void vp9_pack_bitstream(VP9_COMP *cpi, unsigned char *dest,
801 unsigned long *size); 704 unsigned long *size);
802 705
803 void vp9_activity_masking(VP9_COMP *cpi, MACROBLOCK *x); 706 void vp9_activity_masking(VP9_COMP *cpi, MACROBLOCK *x);
(...skipping 14 matching lines...) Expand all
818 __FILE__,__LINE__);\ 721 __FILE__,__LINE__);\
819 } while(0) 722 } while(0)
820 #else 723 #else
821 #define CHECK_MEM_ERROR(lval,expr) do {\ 724 #define CHECK_MEM_ERROR(lval,expr) do {\
822 lval = (expr); \ 725 lval = (expr); \
823 if(!lval) \ 726 if(!lval) \
824 vpx_internal_error(&cpi->common.error, VPX_CODEC_MEM_ERROR,\ 727 vpx_internal_error(&cpi->common.error, VPX_CODEC_MEM_ERROR,\
825 "Failed to allocate "#lval);\ 728 "Failed to allocate "#lval);\
826 } while(0) 729 } while(0)
827 #endif 730 #endif
828 #endif // __INC_ONYX_INT_H 731
732 #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