1 /* 2 * dct.h 3 * 4 * Copyright (C) Charles 'Buck' Krasic - April 2000 5 * Copyright (C) Erik Walthinsen - April 2000 6 * 7 * This file is part of libdv, a free DV (IEC 61834/SMPTE 314M) 8 * codec. 9 * 10 * libdv is free software; you can redistribute it and/or modify it 11 * under the terms of the GNU Lesser Public License as published by 12 * the Free Software Foundation; either version 2.1, or (at your 13 * option) any later version. 14 * 15 * libdv is distributed in the hope that it will be useful, but 16 * WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 * Lesser Public License for more details. 19 * 20 * You should have received a copy of the GNU Lesser Public License 21 * along with libdv; see the file COPYING. If not, write to 22 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 23 * 24 * The libdv homepage is http://libdv.sourceforge.net/. 25 */ 26 27 /** @file 28 * @ingroup dct 29 * @brief Interface for @link dct Discrete Cosine Transform @endlink 30 */ 31 32 /** @addtogroup dct Discrete Cosine Transform 33 * @{ 34 */ 35 36 #ifndef DV_DCT_H 37 #define DV_DCT_H 38 39 #include "dv_types.h" 40 41 #define DCT_YUV_PRECISION 1 /* means fixpoint with YUV_PRECISION bits 42 after the point (if you change this, 43 change rgbtoyuv.S and dct_block_mmx.S 44 accordingly) */ 45 46 #ifdef __cplusplus 47 extern "C" { 48 #endif 49 50 void _dv_dct_init(void); 51 /* Input is transposed ! */ 52 void _dv_dct_88(dv_coeff_t *block); 53 /* Input is transposed ! */ 54 void _dv_dct_248(dv_coeff_t *block); 55 void _dv_idct_88(dv_coeff_t *block); 56 #if BRUTE_FORCE_248 57 void _dv_idct_248(double *block); 58 #endif 59 60 #ifdef __cplusplus 61 } 62 #endif 63 64 #endif // DV_DCT_H 65