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

Side by Side Diff: source/libvpx/vp9/common/vp9_entropymode.c

Issue 168343002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: libvpx: Pull from upstream Created 6 years, 10 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/common/vp9_entropy.h ('k') | source/libvpx/vp9/common/vp9_entropymv.c » ('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 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 ct_16x16p[1][0] = tx_count_16x16p[TX_8X8]; 296 ct_16x16p[1][0] = tx_count_16x16p[TX_8X8];
297 ct_16x16p[1][1] = tx_count_16x16p[TX_16X16]; 297 ct_16x16p[1][1] = tx_count_16x16p[TX_16X16];
298 } 298 }
299 299
300 void tx_counts_to_branch_counts_8x8(const unsigned int *tx_count_8x8p, 300 void tx_counts_to_branch_counts_8x8(const unsigned int *tx_count_8x8p,
301 unsigned int (*ct_8x8p)[2]) { 301 unsigned int (*ct_8x8p)[2]) {
302 ct_8x8p[0][0] = tx_count_8x8p[TX_4X4]; 302 ct_8x8p[0][0] = tx_count_8x8p[TX_4X4];
303 ct_8x8p[0][1] = tx_count_8x8p[TX_8X8]; 303 ct_8x8p[0][1] = tx_count_8x8p[TX_8X8];
304 } 304 }
305 305
306 static const vp9_prob default_mbskip_probs[MBSKIP_CONTEXTS] = { 306 static const vp9_prob default_skip_probs[SKIP_CONTEXTS] = {
307 192, 128, 64 307 192, 128, 64
308 }; 308 };
309 309
310 static const vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS] 310 static const vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
311 [SWITCHABLE_FILTERS - 1] = { 311 [SWITCHABLE_FILTERS - 1] = {
312 { 235, 162, }, 312 { 235, 162, },
313 { 36, 255, }, 313 { 36, 255, },
314 { 34, 3, }, 314 { 34, 3, },
315 { 149, 144, }, 315 { 149, 144, },
316 }; 316 };
317 317
318 void vp9_init_mbmode_probs(VP9_COMMON *cm) { 318 void vp9_init_mbmode_probs(VP9_COMMON *cm) {
319 vp9_copy(cm->fc.uv_mode_prob, default_if_uv_probs); 319 vp9_copy(cm->fc.uv_mode_prob, default_if_uv_probs);
320 vp9_copy(cm->fc.y_mode_prob, default_if_y_probs); 320 vp9_copy(cm->fc.y_mode_prob, default_if_y_probs);
321 vp9_copy(cm->fc.switchable_interp_prob, default_switchable_interp_prob); 321 vp9_copy(cm->fc.switchable_interp_prob, default_switchable_interp_prob);
322 vp9_copy(cm->fc.partition_prob, default_partition_probs); 322 vp9_copy(cm->fc.partition_prob, default_partition_probs);
323 vp9_copy(cm->fc.intra_inter_prob, default_intra_inter_p); 323 vp9_copy(cm->fc.intra_inter_prob, default_intra_inter_p);
324 vp9_copy(cm->fc.comp_inter_prob, default_comp_inter_p); 324 vp9_copy(cm->fc.comp_inter_prob, default_comp_inter_p);
325 vp9_copy(cm->fc.comp_ref_prob, default_comp_ref_p); 325 vp9_copy(cm->fc.comp_ref_prob, default_comp_ref_p);
326 vp9_copy(cm->fc.single_ref_prob, default_single_ref_p); 326 vp9_copy(cm->fc.single_ref_prob, default_single_ref_p);
327 cm->fc.tx_probs = default_tx_probs; 327 cm->fc.tx_probs = default_tx_probs;
328 vp9_copy(cm->fc.mbskip_probs, default_mbskip_probs); 328 vp9_copy(cm->fc.skip_probs, default_skip_probs);
329 vp9_copy(cm->fc.inter_mode_probs, default_inter_mode_probs); 329 vp9_copy(cm->fc.inter_mode_probs, default_inter_mode_probs);
330 } 330 }
331 331
332 const vp9_tree_index vp9_switchable_interp_tree 332 const vp9_tree_index vp9_switchable_interp_tree
333 [TREE_SIZE(SWITCHABLE_FILTERS)] = { 333 [TREE_SIZE(SWITCHABLE_FILTERS)] = {
334 -EIGHTTAP, 2, 334 -EIGHTTAP, 2,
335 -EIGHTTAP_SMOOTH, -EIGHTTAP_SHARP 335 -EIGHTTAP_SMOOTH, -EIGHTTAP_SHARP
336 }; 336 };
337 337
338 #define COUNT_SAT 20 338 #define COUNT_SAT 20
339 #define MAX_UPDATE_FACTOR 128 339 #define MAX_UPDATE_FACTOR 128
340 340
341 static int adapt_prob(vp9_prob pre_prob, const unsigned int ct[2]) { 341 static int adapt_prob(vp9_prob pre_prob, const unsigned int ct[2]) {
342 return merge_probs(pre_prob, ct, COUNT_SAT, MAX_UPDATE_FACTOR); 342 return merge_probs(pre_prob, ct, COUNT_SAT, MAX_UPDATE_FACTOR);
343 } 343 }
344 344
345 static void adapt_probs(const vp9_tree_index *tree, 345 static void adapt_probs(const vp9_tree_index *tree,
346 const vp9_prob *pre_probs, const unsigned int *counts, 346 const vp9_prob *pre_probs, const unsigned int *counts,
347 vp9_prob *probs) { 347 vp9_prob *probs) {
348 tree_merge_probs(tree, pre_probs, counts, COUNT_SAT, MAX_UPDATE_FACTOR, 348 vp9_tree_merge_probs(tree, pre_probs, counts, COUNT_SAT, MAX_UPDATE_FACTOR,
349 probs); 349 probs);
350 } 350 }
351 351
352 void vp9_adapt_mode_probs(VP9_COMMON *cm) { 352 void vp9_adapt_mode_probs(VP9_COMMON *cm) {
353 int i, j; 353 int i, j;
354 FRAME_CONTEXT *fc = &cm->fc; 354 FRAME_CONTEXT *fc = &cm->fc;
355 const FRAME_CONTEXT *pre_fc = &cm->frame_contexts[cm->frame_context_idx]; 355 const FRAME_CONTEXT *pre_fc = &cm->frame_contexts[cm->frame_context_idx];
356 const FRAME_COUNTS *counts = &cm->counts; 356 const FRAME_COUNTS *counts = &cm->counts;
357 357
358 for (i = 0; i < INTRA_INTER_CONTEXTS; i++) 358 for (i = 0; i < INTRA_INTER_CONTEXTS; i++)
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 fc->tx_probs.p16x16[i][j] = adapt_prob(pre_fc->tx_probs.p16x16[i][j], 408 fc->tx_probs.p16x16[i][j] = adapt_prob(pre_fc->tx_probs.p16x16[i][j],
409 branch_ct_16x16p[j]); 409 branch_ct_16x16p[j]);
410 410
411 tx_counts_to_branch_counts_32x32(counts->tx.p32x32[i], branch_ct_32x32p); 411 tx_counts_to_branch_counts_32x32(counts->tx.p32x32[i], branch_ct_32x32p);
412 for (j = 0; j < TX_SIZES - 1; ++j) 412 for (j = 0; j < TX_SIZES - 1; ++j)
413 fc->tx_probs.p32x32[i][j] = adapt_prob(pre_fc->tx_probs.p32x32[i][j], 413 fc->tx_probs.p32x32[i][j] = adapt_prob(pre_fc->tx_probs.p32x32[i][j],
414 branch_ct_32x32p[j]); 414 branch_ct_32x32p[j]);
415 } 415 }
416 } 416 }
417 417
418 for (i = 0; i < MBSKIP_CONTEXTS; ++i) 418 for (i = 0; i < SKIP_CONTEXTS; ++i)
419 fc->mbskip_probs[i] = adapt_prob(pre_fc->mbskip_probs[i], 419 fc->skip_probs[i] = adapt_prob(pre_fc->skip_probs[i], counts->skip[i]);
420 counts->mbskip[i]);
421 } 420 }
422 421
423 static void set_default_lf_deltas(struct loopfilter *lf) { 422 static void set_default_lf_deltas(struct loopfilter *lf) {
424 lf->mode_ref_delta_enabled = 1; 423 lf->mode_ref_delta_enabled = 1;
425 lf->mode_ref_delta_update = 1; 424 lf->mode_ref_delta_update = 1;
426 425
427 lf->ref_deltas[INTRA_FRAME] = 1; 426 lf->ref_deltas[INTRA_FRAME] = 1;
428 lf->ref_deltas[LAST_FRAME] = 0; 427 lf->ref_deltas[LAST_FRAME] = 0;
429 lf->ref_deltas[GOLDEN_FRAME] = -1; 428 lf->ref_deltas[GOLDEN_FRAME] = -1;
430 lf->ref_deltas[ALTREF_FRAME] = -1; 429 lf->ref_deltas[ALTREF_FRAME] = -1;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 467
469 vpx_memset(cm->prev_mip, 0, 468 vpx_memset(cm->prev_mip, 0,
470 cm->mode_info_stride * (cm->mi_rows + 1) * sizeof(MODE_INFO)); 469 cm->mode_info_stride * (cm->mi_rows + 1) * sizeof(MODE_INFO));
471 vpx_memset(cm->mip, 0, 470 vpx_memset(cm->mip, 0,
472 cm->mode_info_stride * (cm->mi_rows + 1) * sizeof(MODE_INFO)); 471 cm->mode_info_stride * (cm->mi_rows + 1) * sizeof(MODE_INFO));
473 472
474 vp9_zero(cm->ref_frame_sign_bias); 473 vp9_zero(cm->ref_frame_sign_bias);
475 474
476 cm->frame_context_idx = 0; 475 cm->frame_context_idx = 0;
477 } 476 }
OLDNEW
« no previous file with comments | « source/libvpx/vp9/common/vp9_entropy.h ('k') | source/libvpx/vp9/common/vp9_entropymv.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698