| OLD | NEW |
| 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 #include "vpx_mem/vpx_mem.h" | 11 #include "vpx_mem/vpx_mem.h" |
| 12 | 12 |
| 13 #include "vp9/common/vp9_alloccommon.h" | |
| 14 #include "vp9/common/vp9_onyxc_int.h" | 13 #include "vp9/common/vp9_onyxc_int.h" |
| 15 #include "vp9/common/vp9_seg_common.h" | 14 #include "vp9/common/vp9_seg_common.h" |
| 16 | 15 |
| 17 const vp9_prob vp9_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = { | 16 const vp9_prob vp9_kf_y_mode_prob[INTRA_MODES][INTRA_MODES][INTRA_MODES - 1] = { |
| 18 { // above = dc | 17 { // above = dc |
| 19 { 137, 30, 42, 148, 151, 207, 70, 52, 91 }, // left = dc | 18 { 137, 30, 42, 148, 151, 207, 70, 52, 91 }, // left = dc |
| 20 { 92, 45, 102, 136, 116, 180, 74, 90, 100 }, // left = v | 19 { 92, 45, 102, 136, 116, 180, 74, 90, 100 }, // left = v |
| 21 { 73, 32, 19, 187, 222, 215, 46, 34, 100 }, // left = h | 20 { 73, 32, 19, 187, 222, 215, 46, 34, 100 }, // left = h |
| 22 { 91, 30, 32, 116, 121, 186, 93, 86, 94 }, // left = d45 | 21 { 91, 30, 32, 116, 121, 186, 93, 86, 94 }, // left = d45 |
| 23 { 72, 35, 36, 149, 68, 206, 68, 63, 105 }, // left = d135 | 22 { 72, 35, 36, 149, 68, 206, 68, 63, 105 }, // left = d135 |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 }; | 307 }; |
| 309 | 308 |
| 310 static const vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS] | 309 static const vp9_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS] |
| 311 [SWITCHABLE_FILTERS - 1] = { | 310 [SWITCHABLE_FILTERS - 1] = { |
| 312 { 235, 162, }, | 311 { 235, 162, }, |
| 313 { 36, 255, }, | 312 { 36, 255, }, |
| 314 { 34, 3, }, | 313 { 34, 3, }, |
| 315 { 149, 144, }, | 314 { 149, 144, }, |
| 316 }; | 315 }; |
| 317 | 316 |
| 318 void vp9_init_mbmode_probs(VP9_COMMON *cm) { | 317 void vp9_init_mode_probs(FRAME_CONTEXT *fc) { |
| 319 vp9_copy(cm->fc.uv_mode_prob, default_if_uv_probs); | 318 vp9_copy(fc->uv_mode_prob, default_if_uv_probs); |
| 320 vp9_copy(cm->fc.y_mode_prob, default_if_y_probs); | 319 vp9_copy(fc->y_mode_prob, default_if_y_probs); |
| 321 vp9_copy(cm->fc.switchable_interp_prob, default_switchable_interp_prob); | 320 vp9_copy(fc->switchable_interp_prob, default_switchable_interp_prob); |
| 322 vp9_copy(cm->fc.partition_prob, default_partition_probs); | 321 vp9_copy(fc->partition_prob, default_partition_probs); |
| 323 vp9_copy(cm->fc.intra_inter_prob, default_intra_inter_p); | 322 vp9_copy(fc->intra_inter_prob, default_intra_inter_p); |
| 324 vp9_copy(cm->fc.comp_inter_prob, default_comp_inter_p); | 323 vp9_copy(fc->comp_inter_prob, default_comp_inter_p); |
| 325 vp9_copy(cm->fc.comp_ref_prob, default_comp_ref_p); | 324 vp9_copy(fc->comp_ref_prob, default_comp_ref_p); |
| 326 vp9_copy(cm->fc.single_ref_prob, default_single_ref_p); | 325 vp9_copy(fc->single_ref_prob, default_single_ref_p); |
| 327 cm->fc.tx_probs = default_tx_probs; | 326 fc->tx_probs = default_tx_probs; |
| 328 vp9_copy(cm->fc.skip_probs, default_skip_probs); | 327 vp9_copy(fc->skip_probs, default_skip_probs); |
| 329 vp9_copy(cm->fc.inter_mode_probs, default_inter_mode_probs); | 328 vp9_copy(fc->inter_mode_probs, default_inter_mode_probs); |
| 330 } | 329 } |
| 331 | 330 |
| 332 const vp9_tree_index vp9_switchable_interp_tree | 331 const vp9_tree_index vp9_switchable_interp_tree |
| 333 [TREE_SIZE(SWITCHABLE_FILTERS)] = { | 332 [TREE_SIZE(SWITCHABLE_FILTERS)] = { |
| 334 -EIGHTTAP, 2, | 333 -EIGHTTAP, 2, |
| 335 -EIGHTTAP_SMOOTH, -EIGHTTAP_SHARP | 334 -EIGHTTAP_SMOOTH, -EIGHTTAP_SHARP |
| 336 }; | 335 }; |
| 337 | 336 |
| 338 #define COUNT_SAT 20 | 337 #define COUNT_SAT 20 |
| 339 #define MAX_UPDATE_FACTOR 128 | 338 #define MAX_UPDATE_FACTOR 128 |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 | 444 |
| 446 // Reset the mode ref deltas for loop filter | 445 // Reset the mode ref deltas for loop filter |
| 447 vp9_zero(lf->last_ref_deltas); | 446 vp9_zero(lf->last_ref_deltas); |
| 448 vp9_zero(lf->last_mode_deltas); | 447 vp9_zero(lf->last_mode_deltas); |
| 449 set_default_lf_deltas(lf); | 448 set_default_lf_deltas(lf); |
| 450 | 449 |
| 451 // To force update of the sharpness | 450 // To force update of the sharpness |
| 452 lf->last_sharpness_level = -1; | 451 lf->last_sharpness_level = -1; |
| 453 | 452 |
| 454 vp9_default_coef_probs(cm); | 453 vp9_default_coef_probs(cm); |
| 455 vp9_init_mbmode_probs(cm); | 454 vp9_init_mode_probs(&cm->fc); |
| 456 vp9_init_mv_probs(cm); | 455 vp9_init_mv_probs(cm); |
| 457 | 456 |
| 458 if (cm->frame_type == KEY_FRAME || | 457 if (cm->frame_type == KEY_FRAME || |
| 459 cm->error_resilient_mode || cm->reset_frame_context == 3) { | 458 cm->error_resilient_mode || cm->reset_frame_context == 3) { |
| 460 // Reset all frame contexts. | 459 // Reset all frame contexts. |
| 461 for (i = 0; i < FRAME_CONTEXTS; ++i) | 460 for (i = 0; i < FRAME_CONTEXTS; ++i) |
| 462 cm->frame_contexts[i] = cm->fc; | 461 cm->frame_contexts[i] = cm->fc; |
| 463 } else if (cm->reset_frame_context == 2) { | 462 } else if (cm->reset_frame_context == 2) { |
| 464 // Reset only the frame context specified in the frame header. | 463 // Reset only the frame context specified in the frame header. |
| 465 cm->frame_contexts[cm->frame_context_idx] = cm->fc; | 464 cm->frame_contexts[cm->frame_context_idx] = cm->fc; |
| 466 } | 465 } |
| 467 | 466 |
| 468 if (frame_is_intra_only(cm)) | 467 if (frame_is_intra_only(cm)) |
| 469 vpx_memset(cm->prev_mip, 0, | 468 vpx_memset(cm->prev_mip, 0, cm->mi_stride * (cm->mi_rows + 1) * |
| 470 cm->mode_info_stride * (cm->mi_rows + 1) * sizeof(MODE_INFO)); | 469 sizeof(*cm->prev_mip)); |
| 471 | 470 |
| 472 vpx_memset(cm->mip, 0, | 471 vpx_memset(cm->mip, 0, cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->mip)); |
| 473 cm->mode_info_stride * (cm->mi_rows + 1) * sizeof(MODE_INFO)); | |
| 474 | 472 |
| 475 vp9_zero(cm->ref_frame_sign_bias); | 473 vp9_zero(cm->ref_frame_sign_bias); |
| 476 | 474 |
| 477 cm->frame_context_idx = 0; | 475 cm->frame_context_idx = 0; |
| 478 } | 476 } |
| OLD | NEW |