IDCT 反离散余弦变换原程序

源代码在线查看: read_me.txt

软件大小: 9 K
上传用户: wg204wg
关键词: IDCT 离散余弦 变换 程序
下载地址: 免注册下载 普通下载 VIP

相关代码

				File Name:       idct_122700.zip
				
				File Contents:   read_me.txt
				                 mds_def.h
				                 r8x8invdct.asm
				                 tr8x8invdct.c
				                 tr8x8invdct.h
				
				Module Name:     The implementation of Inverse DCT for 8x8 real data.
				Label Name:      __r8x8invdct
				Description:     This is the implementation of Chen's algorithm of IDCT.
				                 It is based on the separable nature of IDCT for multi-
				                 dimension. The input matrix is 8x8 real data. First, one dime-
				                 sional 8-point IDCT is calculated for each of the 8 rows. The
				                 output is stored in a separate matrix after transpose. Then again 
				                 8-point IDCT is calculated on each row of matrix. The output
				                 is again stored in a transpose matrix. This is final output.
								 
				                 Chen's algorithm has 4 stages (parts) of implementation.
				
				                 This implementation works only for 8x8 input. The input data 
				                 should be real. The range of input should be -256 to 255. 
								 
				                 The algorithm is in-placed. 
				                 The prototype of the C callable is as follows:
				
				                 _r8x8dct(fract16 *in, fract16 *coeff, fract16 *temp);
				
				                   *in -> Pointer to Input vector.
				                   *coeff -> Pointer to coefficients.
				                   *temp -> Pointer to temproary data. 
				
				           Note: The algorithm reads the input data from the "in" matrix.  
				                 First 8-point IDCT will be calculated for all the 8 rows.
				                 This output is stored in "temp" buffer in the transposed 
				                 form at bit reversed locations. 
				                 Again the 8-point IDCT is applied on all the 8 rows of 
				                 "temp" buffer. Final output computed is stored in "in" 
				                 buffer in transposed form at bit reversed locations.
				                 The operation of transposing the matrix and calculation of
				                 bit reversed are carried out while writing the data without
				                 any explicit code.
				
				                 Output of function is provided "in" buffer in normal order.
				
				Registers Used:      R0, R1, R2, R3, R4, R5, R6, R7, P0, P1, P2, P3, P4, P5, A0, A1.
				Other Register Used: I0, I1, I2, I3, B0, B2, B3, M0, M1, M2, L3 registers and LC0.
				
				Performance: (Timer version 0.6.33)
				
				                 Code Size : 344 Bytes.
				
				                 Memory Required :
				                   Input Matrix:     8 * 8 * 2 Bytes.
				                   Coefficients:     16 Bytes
				                   Temporary Matrix: 8 * 8 * 2 Bytes
					
				                 Cycle Count :
				
				                 -----------------------------------------
				                 |  Size  |  Forward DCT  |  Inverse DCT |
				                 -----------------------------------------
				                 |  8x8   |   284 Cycles  |  311 Cycles  |
				                 -----------------------------------------
				
							

相关资源