這是06年4月剛剛完成的程序,從opencore.org下載而來。用vhdl語言描寫,以及matlab仿真,testbench,以及在xinlinx上的綜合。
The MDCT core is two dimensional discrete COSINE transform implementation designed for use in compression systems like JPEG. Architecture is based on parallel distributed arithmetic with butterfly computation.
Verilog HDL: Magnitude
For a vector (a,b), the magnitude representation is the following:
A common approach to implementing these arithmetic functions is to use the Coordinate Rotation Digital Computer (CORDIC) algorithm. The CORDIC algorithm calculates the trigonometric functions of sine, COSINE, magnitude, and phase using an iterative process. It is made up of a series of micro-rotations of the vector by a set of predetermined constants, which are powers of two. Using binary arithmetic, this algorithm essentially replaces multipliers with shift and add operations. In a Stratix™ device, it is possible to calculate some of these arithmetic functions directly, without having to implement the CORDIC algorithm.
IEEE Std 1180-1990. IEEE Standard Specifications for the Implementations of 8x8 Inverse Discrete COSINE Transform, specifies the numerical characteristics of the 8x8 inverse discrete COSINE transform (IDCT) for use in visual telephony and similar applications where the 8x8 IDCT results are used in a reconstruction loop. The specifications ensure the compatibility between different implementations of the IDCT.