| 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 |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 int idx, int token, | 92 int idx, int token, |
| 93 uint8_t *token_cache) { | 93 uint8_t *token_cache) { |
| 94 int bak = token_cache[scan[idx]], pt; | 94 int bak = token_cache[scan[idx]], pt; |
| 95 token_cache[scan[idx]] = vp9_pt_energy_class[token]; | 95 token_cache[scan[idx]] = vp9_pt_energy_class[token]; |
| 96 pt = get_coef_context(nb, token_cache, idx + 1); | 96 pt = get_coef_context(nb, token_cache, idx + 1); |
| 97 token_cache[scan[idx]] = bak; | 97 token_cache[scan[idx]] = bak; |
| 98 return pt; | 98 return pt; |
| 99 } | 99 } |
| 100 | 100 |
| 101 static int optimize_b(MACROBLOCK *mb, int plane, int block, | 101 static int optimize_b(MACROBLOCK *mb, int plane, int block, |
| 102 BLOCK_SIZE plane_bsize, TX_SIZE tx_size, int ctx) { | 102 TX_SIZE tx_size, int ctx) { |
| 103 MACROBLOCKD *const xd = &mb->e_mbd; | 103 MACROBLOCKD *const xd = &mb->e_mbd; |
| 104 struct macroblock_plane *const p = &mb->plane[plane]; | 104 struct macroblock_plane *const p = &mb->plane[plane]; |
| 105 struct macroblockd_plane *const pd = &xd->plane[plane]; | 105 struct macroblockd_plane *const pd = &xd->plane[plane]; |
| 106 const int ref = is_inter_block(&xd->mi[0]->mbmi); | 106 const int ref = is_inter_block(&xd->mi[0]->mbmi); |
| 107 vp9_token_state tokens[1025][2]; | 107 vp9_token_state tokens[1025][2]; |
| 108 unsigned best_index[1025][2]; | 108 unsigned best_index[1025][2]; |
| 109 uint8_t token_cache[1024]; | 109 uint8_t token_cache[1024]; |
| 110 const int16_t *const coeff = BLOCK_OFFSET(mb->plane[plane].coeff, block); | 110 const int16_t *const coeff = BLOCK_OFFSET(mb->plane[plane].coeff, block); |
| 111 int16_t *const qcoeff = BLOCK_OFFSET(p->qcoeff, block); | 111 int16_t *const qcoeff = BLOCK_OFFSET(p->qcoeff, block); |
| 112 int16_t *const dqcoeff = BLOCK_OFFSET(pd->dqcoeff, block); | 112 int16_t *const dqcoeff = BLOCK_OFFSET(pd->dqcoeff, block); |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 p->eobs[block] = 0; | 374 p->eobs[block] = 0; |
| 375 *a = *l = 0; | 375 *a = *l = 0; |
| 376 return; | 376 return; |
| 377 } | 377 } |
| 378 | 378 |
| 379 if (!x->skip_recode) | 379 if (!x->skip_recode) |
| 380 vp9_xform_quant(x, plane, block, plane_bsize, tx_size); | 380 vp9_xform_quant(x, plane, block, plane_bsize, tx_size); |
| 381 | 381 |
| 382 if (x->optimize && (!x->skip_recode || !x->skip_optimize)) { | 382 if (x->optimize && (!x->skip_recode || !x->skip_optimize)) { |
| 383 const int ctx = combine_entropy_contexts(*a, *l); | 383 const int ctx = combine_entropy_contexts(*a, *l); |
| 384 *a = *l = optimize_b(x, plane, block, plane_bsize, tx_size, ctx) > 0; | 384 *a = *l = optimize_b(x, plane, block, tx_size, ctx) > 0; |
| 385 } else { | 385 } else { |
| 386 *a = *l = p->eobs[block] > 0; | 386 *a = *l = p->eobs[block] > 0; |
| 387 } | 387 } |
| 388 | 388 |
| 389 if (p->eobs[block]) | 389 if (p->eobs[block]) |
| 390 *(args->skip) = 0; | 390 *(args->skip) = 0; |
| 391 | 391 |
| 392 if (x->skip_encode || p->eobs[block] == 0) | 392 if (x->skip_encode || p->eobs[block] == 0) |
| 393 return; | 393 return; |
| 394 | 394 |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 } | 594 } |
| 595 | 595 |
| 596 | 596 |
| 597 void vp9_encode_intra_block_plane(MACROBLOCK *x, BLOCK_SIZE bsize, int plane) { | 597 void vp9_encode_intra_block_plane(MACROBLOCK *x, BLOCK_SIZE bsize, int plane) { |
| 598 const MACROBLOCKD *const xd = &x->e_mbd; | 598 const MACROBLOCKD *const xd = &x->e_mbd; |
| 599 struct encode_b_args arg = {x, NULL, &xd->mi[0]->mbmi.skip}; | 599 struct encode_b_args arg = {x, NULL, &xd->mi[0]->mbmi.skip}; |
| 600 | 600 |
| 601 vp9_foreach_transformed_block_in_plane(xd, bsize, plane, encode_block_intra, | 601 vp9_foreach_transformed_block_in_plane(xd, bsize, plane, encode_block_intra, |
| 602 &arg); | 602 &arg); |
| 603 } | 603 } |
| OLD | NEW |