1 /* 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3 * 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 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef VPX_VP9_COMMON_VP9_IDCT_H_ 12 #define VPX_VP9_COMMON_VP9_IDCT_H_ 13 14 #include <assert.h> 15 16 #include "vp9_common.h" 17 #include "vp9_enums.h" 18 #include "inv_txfm.h" 19 #include "txfm_common.h" 20 #include "mem.h" 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 typedef void (*transform_1d)(const tran_low_t *, tran_low_t *); 27 28 typedef struct { 29 transform_1d cols, rows; // vertical and horizontal 30 } transform_2d; 31 32 #if CONFIG_VP9_HIGHBITDEPTH 33 typedef void (*highbd_transform_1d)(const tran_low_t *, tran_low_t *, int bd); 34 35 typedef struct { 36 highbd_transform_1d cols, rows; // vertical and horizontal 37 } highbd_transform_2d; 38 #endif // CONFIG_VP9_HIGHBITDEPTH 39 40 void eb_vp9_iwht4x4_add(const tran_low_t *input, uint8_t *dest, int stride, 41 int eob); 42 void eb_vp9_idct4x4_add(const tran_low_t *input, uint8_t *dest, int stride, 43 int eob); 44 void eb_vp9_idct8x8_add(const tran_low_t *input, uint8_t *dest, int stride, 45 int eob); 46 void eb_vp9_idct16x16_add(const tran_low_t *input, uint8_t *dest, int stride, 47 int eob); 48 void eb_vp9_idct32x32_add(const tran_low_t *input, uint8_t *dest, int stride, 49 int eob); 50 51 void eb_vp9_iht4x4_add(TX_TYPE tx_type, const tran_low_t *input, uint8_t *dest, 52 int stride, int eob); 53 void eb_vp9_iht8x8_add(TX_TYPE tx_type, const tran_low_t *input, uint8_t *dest, 54 int stride, int eob); 55 void eb_vp9_iht16x16_add(TX_TYPE tx_type, const tran_low_t *input, uint8_t *dest, 56 int stride, int eob); 57 58 #if CONFIG_VP9_HIGHBITDEPTH 59 void vp9_highbd_iwht4x4_add(const tran_low_t *input, uint16_t *dest, int stride, 60 int eob, int bd); 61 void vp9_highbd_idct4x4_add(const tran_low_t *input, uint16_t *dest, int stride, 62 int eob, int bd); 63 void vp9_highbd_idct8x8_add(const tran_low_t *input, uint16_t *dest, int stride, 64 int eob, int bd); 65 void vp9_highbd_idct16x16_add(const tran_low_t *input, uint16_t *dest, 66 int stride, int eob, int bd); 67 void vp9_highbd_idct32x32_add(const tran_low_t *input, uint16_t *dest, 68 int stride, int eob, int bd); 69 void vp9_highbd_iht4x4_add(TX_TYPE tx_type, const tran_low_t *input, 70 uint16_t *dest, int stride, int eob, int bd); 71 void vp9_highbd_iht8x8_add(TX_TYPE tx_type, const tran_low_t *input, 72 uint16_t *dest, int stride, int eob, int bd); 73 void vp9_highbd_iht16x16_add(TX_TYPE tx_type, const tran_low_t *input, 74 uint16_t *dest, int stride, int eob, int bd); 75 #endif // CONFIG_VP9_HIGHBITDEPTH 76 #ifdef __cplusplus 77 } // extern "C" 78 #endif 79 80 #endif // VPX_VP9_COMMON_VP9_IDCT_H_ 81