1*fb1b10abSAndroid Build Coastguard Worker /* 2*fb1b10abSAndroid Build Coastguard Worker * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3*fb1b10abSAndroid Build Coastguard Worker * 4*fb1b10abSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license 5*fb1b10abSAndroid Build Coastguard Worker * that can be found in the LICENSE file in the root of the source 6*fb1b10abSAndroid Build Coastguard Worker * tree. An additional intellectual property rights grant can be found 7*fb1b10abSAndroid Build Coastguard Worker * in the file PATENTS. All contributing project authors may 8*fb1b10abSAndroid Build Coastguard Worker * be found in the AUTHORS file in the root of the source tree. 9*fb1b10abSAndroid Build Coastguard Worker */ 10*fb1b10abSAndroid Build Coastguard Worker 11*fb1b10abSAndroid Build Coastguard Worker #ifndef VPX_VP9_COMMON_VP9_IDCT_H_ 12*fb1b10abSAndroid Build Coastguard Worker #define VPX_VP9_COMMON_VP9_IDCT_H_ 13*fb1b10abSAndroid Build Coastguard Worker 14*fb1b10abSAndroid Build Coastguard Worker #include <assert.h> 15*fb1b10abSAndroid Build Coastguard Worker 16*fb1b10abSAndroid Build Coastguard Worker #include "./vpx_config.h" 17*fb1b10abSAndroid Build Coastguard Worker #include "vp9/common/vp9_common.h" 18*fb1b10abSAndroid Build Coastguard Worker #include "vp9/common/vp9_enums.h" 19*fb1b10abSAndroid Build Coastguard Worker #include "vpx_dsp/inv_txfm.h" 20*fb1b10abSAndroid Build Coastguard Worker #include "vpx_dsp/txfm_common.h" 21*fb1b10abSAndroid Build Coastguard Worker #include "vpx_ports/mem.h" 22*fb1b10abSAndroid Build Coastguard Worker 23*fb1b10abSAndroid Build Coastguard Worker #ifdef __cplusplus 24*fb1b10abSAndroid Build Coastguard Worker extern "C" { 25*fb1b10abSAndroid Build Coastguard Worker #endif 26*fb1b10abSAndroid Build Coastguard Worker 27*fb1b10abSAndroid Build Coastguard Worker typedef void (*transform_1d)(const tran_low_t *, tran_low_t *); 28*fb1b10abSAndroid Build Coastguard Worker 29*fb1b10abSAndroid Build Coastguard Worker typedef struct { 30*fb1b10abSAndroid Build Coastguard Worker transform_1d cols, rows; // vertical and horizontal 31*fb1b10abSAndroid Build Coastguard Worker } transform_2d; 32*fb1b10abSAndroid Build Coastguard Worker 33*fb1b10abSAndroid Build Coastguard Worker #if CONFIG_VP9_HIGHBITDEPTH 34*fb1b10abSAndroid Build Coastguard Worker typedef void (*highbd_transform_1d)(const tran_low_t *, tran_low_t *, int bd); 35*fb1b10abSAndroid Build Coastguard Worker 36*fb1b10abSAndroid Build Coastguard Worker typedef struct { 37*fb1b10abSAndroid Build Coastguard Worker highbd_transform_1d cols, rows; // vertical and horizontal 38*fb1b10abSAndroid Build Coastguard Worker } highbd_transform_2d; 39*fb1b10abSAndroid Build Coastguard Worker #endif // CONFIG_VP9_HIGHBITDEPTH 40*fb1b10abSAndroid Build Coastguard Worker 41*fb1b10abSAndroid Build Coastguard Worker void vp9_iwht4x4_add(const tran_low_t *input, uint8_t *dest, int stride, 42*fb1b10abSAndroid Build Coastguard Worker int eob); 43*fb1b10abSAndroid Build Coastguard Worker void vp9_idct4x4_add(const tran_low_t *input, uint8_t *dest, int stride, 44*fb1b10abSAndroid Build Coastguard Worker int eob); 45*fb1b10abSAndroid Build Coastguard Worker void vp9_idct8x8_add(const tran_low_t *input, uint8_t *dest, int stride, 46*fb1b10abSAndroid Build Coastguard Worker int eob); 47*fb1b10abSAndroid Build Coastguard Worker void vp9_idct16x16_add(const tran_low_t *input, uint8_t *dest, int stride, 48*fb1b10abSAndroid Build Coastguard Worker int eob); 49*fb1b10abSAndroid Build Coastguard Worker void vp9_idct32x32_add(const tran_low_t *input, uint8_t *dest, int stride, 50*fb1b10abSAndroid Build Coastguard Worker int eob); 51*fb1b10abSAndroid Build Coastguard Worker 52*fb1b10abSAndroid Build Coastguard Worker void vp9_iht4x4_add(TX_TYPE tx_type, const tran_low_t *input, uint8_t *dest, 53*fb1b10abSAndroid Build Coastguard Worker int stride, int eob); 54*fb1b10abSAndroid Build Coastguard Worker void vp9_iht8x8_add(TX_TYPE tx_type, const tran_low_t *input, uint8_t *dest, 55*fb1b10abSAndroid Build Coastguard Worker int stride, int eob); 56*fb1b10abSAndroid Build Coastguard Worker void vp9_iht16x16_add(TX_TYPE tx_type, const tran_low_t *input, uint8_t *dest, 57*fb1b10abSAndroid Build Coastguard Worker int stride, int eob); 58*fb1b10abSAndroid Build Coastguard Worker 59*fb1b10abSAndroid Build Coastguard Worker #if CONFIG_VP9_HIGHBITDEPTH 60*fb1b10abSAndroid Build Coastguard Worker void vp9_highbd_iwht4x4_add(const tran_low_t *input, uint16_t *dest, int stride, 61*fb1b10abSAndroid Build Coastguard Worker int eob, int bd); 62*fb1b10abSAndroid Build Coastguard Worker void vp9_highbd_idct4x4_add(const tran_low_t *input, uint16_t *dest, int stride, 63*fb1b10abSAndroid Build Coastguard Worker int eob, int bd); 64*fb1b10abSAndroid Build Coastguard Worker void vp9_highbd_idct8x8_add(const tran_low_t *input, uint16_t *dest, int stride, 65*fb1b10abSAndroid Build Coastguard Worker int eob, int bd); 66*fb1b10abSAndroid Build Coastguard Worker void vp9_highbd_idct16x16_add(const tran_low_t *input, uint16_t *dest, 67*fb1b10abSAndroid Build Coastguard Worker int stride, int eob, int bd); 68*fb1b10abSAndroid Build Coastguard Worker void vp9_highbd_idct32x32_add(const tran_low_t *input, uint16_t *dest, 69*fb1b10abSAndroid Build Coastguard Worker int stride, int eob, int bd); 70*fb1b10abSAndroid Build Coastguard Worker void vp9_highbd_iht4x4_add(TX_TYPE tx_type, const tran_low_t *input, 71*fb1b10abSAndroid Build Coastguard Worker uint16_t *dest, int stride, int eob, int bd); 72*fb1b10abSAndroid Build Coastguard Worker void vp9_highbd_iht8x8_add(TX_TYPE tx_type, const tran_low_t *input, 73*fb1b10abSAndroid Build Coastguard Worker uint16_t *dest, int stride, int eob, int bd); 74*fb1b10abSAndroid Build Coastguard Worker void vp9_highbd_iht16x16_add(TX_TYPE tx_type, const tran_low_t *input, 75*fb1b10abSAndroid Build Coastguard Worker uint16_t *dest, int stride, int eob, int bd); 76*fb1b10abSAndroid Build Coastguard Worker #endif // CONFIG_VP9_HIGHBITDEPTH 77*fb1b10abSAndroid Build Coastguard Worker #ifdef __cplusplus 78*fb1b10abSAndroid Build Coastguard Worker } // extern "C" 79*fb1b10abSAndroid Build Coastguard Worker #endif 80*fb1b10abSAndroid Build Coastguard Worker 81*fb1b10abSAndroid Build Coastguard Worker #endif // VPX_VP9_COMMON_VP9_IDCT_H_ 82