| 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_config.h" | 11 #include "./vpx_config.h" |
| 12 #include "./vp9_rtcd.h" | 12 #include "./vp9_rtcd.h" |
| 13 | 13 |
| 14 #include "vpx_mem/vpx_mem.h" | 14 #include "vpx_mem/vpx_mem.h" |
| 15 #include "vpx_ports/vpx_once.h" |
| 15 | 16 |
| 16 #include "vp9/common/vp9_reconintra.h" | 17 #include "vp9/common/vp9_reconintra.h" |
| 17 #include "vp9/common/vp9_onyxc_int.h" | 18 #include "vp9/common/vp9_onyxc_int.h" |
| 18 | 19 |
| 19 const TX_TYPE intra_mode_to_tx_type_lookup[INTRA_MODES] = { | 20 const TX_TYPE intra_mode_to_tx_type_lookup[INTRA_MODES] = { |
| 20 DCT_DCT, // DC | 21 DCT_DCT, // DC |
| 21 ADST_DCT, // V | 22 ADST_DCT, // V |
| 22 DCT_ADST, // H | 23 DCT_ADST, // H |
| 23 DCT_DCT, // D45 | 24 DCT_DCT, // D45 |
| 24 ADST_ADST, // D135 | 25 ADST_ADST, // D135 |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 572 static intra_pred_fn dc_pred[2][2][TX_SIZES]; | 573 static intra_pred_fn dc_pred[2][2][TX_SIZES]; |
| 573 | 574 |
| 574 #if CONFIG_VP9_HIGHBITDEPTH | 575 #if CONFIG_VP9_HIGHBITDEPTH |
| 575 typedef void (*intra_high_pred_fn)(uint16_t *dst, ptrdiff_t stride, | 576 typedef void (*intra_high_pred_fn)(uint16_t *dst, ptrdiff_t stride, |
| 576 const uint16_t *above, const uint16_t *left, | 577 const uint16_t *above, const uint16_t *left, |
| 577 int bd); | 578 int bd); |
| 578 static intra_high_pred_fn pred_high[INTRA_MODES][4]; | 579 static intra_high_pred_fn pred_high[INTRA_MODES][4]; |
| 579 static intra_high_pred_fn dc_pred_high[2][2][4]; | 580 static intra_high_pred_fn dc_pred_high[2][2][4]; |
| 580 #endif // CONFIG_VP9_HIGHBITDEPTH | 581 #endif // CONFIG_VP9_HIGHBITDEPTH |
| 581 | 582 |
| 582 void vp9_init_intra_predictors() { | 583 static void vp9_init_intra_predictors_internal(void) { |
| 583 #define INIT_ALL_SIZES(p, type) \ | 584 #define INIT_ALL_SIZES(p, type) \ |
| 584 p[TX_4X4] = vp9_##type##_predictor_4x4; \ | 585 p[TX_4X4] = vp9_##type##_predictor_4x4; \ |
| 585 p[TX_8X8] = vp9_##type##_predictor_8x8; \ | 586 p[TX_8X8] = vp9_##type##_predictor_8x8; \ |
| 586 p[TX_16X16] = vp9_##type##_predictor_16x16; \ | 587 p[TX_16X16] = vp9_##type##_predictor_16x16; \ |
| 587 p[TX_32X32] = vp9_##type##_predictor_32x32 | 588 p[TX_32X32] = vp9_##type##_predictor_32x32 |
| 588 | 589 |
| 589 INIT_ALL_SIZES(pred[V_PRED], v); | 590 INIT_ALL_SIZES(pred[V_PRED], v); |
| 590 INIT_ALL_SIZES(pred[H_PRED], h); | 591 INIT_ALL_SIZES(pred[H_PRED], h); |
| 591 INIT_ALL_SIZES(pred[D207_PRED], d207); | 592 INIT_ALL_SIZES(pred[D207_PRED], d207); |
| 592 INIT_ALL_SIZES(pred[D45_PRED], d45); | 593 INIT_ALL_SIZES(pred[D45_PRED], d45); |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { | 888 if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { |
| 888 build_intra_predictors_high(xd, ref, ref_stride, dst, dst_stride, mode, | 889 build_intra_predictors_high(xd, ref, ref_stride, dst, dst_stride, mode, |
| 889 tx_size, have_top, have_left, have_right, | 890 tx_size, have_top, have_left, have_right, |
| 890 x, y, plane, xd->bd); | 891 x, y, plane, xd->bd); |
| 891 return; | 892 return; |
| 892 } | 893 } |
| 893 #endif | 894 #endif |
| 894 build_intra_predictors(xd, ref, ref_stride, dst, dst_stride, mode, tx_size, | 895 build_intra_predictors(xd, ref, ref_stride, dst, dst_stride, mode, tx_size, |
| 895 have_top, have_left, have_right, x, y, plane); | 896 have_top, have_left, have_right, x, y, plane); |
| 896 } | 897 } |
| 898 |
| 899 void vp9_init_intra_predictors() { |
| 900 once(vp9_init_intra_predictors_internal); |
| 901 } |
| OLD | NEW |