/*	
 *	clipdct2.h
 *
 *	二次元DCT
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2009 Naoyuki Sawa
 *
 *	* Sat Jan 31 22:35:45 JST 2009 Naoyuki Sawa
 *	- 新規作成。
 *	- fdct8x8half()、idct8x8half()を作成し、アセンブラ化も行いました。
 *	* Wed Nov 18 21:37:53 JST 2015 Naoyuki Sawa
 *	- 'extern "C" {'〜'}'で囲みました。.cppを含むWin32プロジェクトからもインクルード出来るようにするためです。
 */
#ifndef __CLIP_DCT2_H__
#define __CLIP_DCT2_H__

#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus

/****************************************************************************
 *	
 ****************************************************************************/

/* 8x8画素の二次元FDCTを行います。
 * [in]
 *	src		空間領域(色)の入力データ。
 *	dst		周波数領域の出力データを受け取るバッファ。
 *			srcとdstに同じバッファを指定することも可能です。(エリアスセーフ)
 *			その場合、入力データを出力データで上書きします。
 * [note]
 *	- 今後JPEGやMPEGのプログラムを作成する際に、利用することを想定して作成しました。
 *	- 内部演算精度は16bitですが、入力と出力は整数です。
 *	  8x8DCT演算によって、変換後の値は入力値の最大8倍になる可能性があります。
 *	  従って、±4095を超える入力値を与えないよう、注意してください。
 */
void fdct8x8half(const short* src/*[8 * 8]*/, short* dst/*[8 * 8]*/);

/* 8x8画素の二次元IDCTを行います。
 * [in]
 *	src		周波数領域の入力データ。
 *	dst		空間領域(色)の出力データを受け取るバッファ。
 *			srcとdstに同じバッファを指定することも可能です。(エリアスセーフ)
 *			その場合、入力データを出力データで上書きします。
 * [note]
 *	- 今後JPEGやMPEGのプログラムを作成する際に、利用することを想定して作成しました。
 *	- 内部演算精度は16bitですが、入力と出力は整数です。
 *	  8x8DCT演算によって、変換後の値は入力値の最大8倍になる可能性があります。
 *	  従って、±4095を超える入力値を与えないよう、注意してください。
 */
void idct8x8half(const short* src/*[8 * 8]*/, short* dst/*[8 * 8]*/);

#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus

#endif /*__CLIP_DCT2_H__*/
