VLSI的一个小作业,当我要开始做的时候,忽然发现无从下手,因为我已经完全忘记了IDCT,DCT的公式,甚至于也忘了FFT之类的东东呵,真是太惭愧了,所以趁现在有时间把几个公式整理一下,说不定对大家也有用。
DCT的公式
当u=0时c(u)= ,当u!=0时c(u)=1
IDCT公式
C(u)的解释跟上面DCT中的一样
傅里叶变换的公式
反变换公式
傅里叶级数
很糟糕,传不了图片,公式都传不上去。
现在程序里所做的DCT与IDCT都没有用好的算法,而是直接用它们最简单的定义,那所做的主要工作就是算出它们对应的系数,以8*8像素DCT与IDCT变换为例,它们的系数分别是(因为catapault C 是不支持浮点,所以把它们的系数都扩大1024倍):
DCT:
362 ,362 ,362 ,362 ,362 ,362 ,362 ,362 ,
502 ,425 ,284 ,99 ,-99 ,-284 ,-425 ,-502 ,
473 ,195 ,-195 ,-473 ,-473 ,-195 ,195 ,473 ,
425 ,-99 ,-502 ,-284 ,284 ,502 ,99 ,-425 ,
362 ,-362 ,-362 ,362 ,362 ,-362 ,-362 ,362 ,
284 ,-502 ,99 ,425 ,-425 ,-99 ,502 ,-284 ,
195 ,-473 ,473 ,-195 ,-195 ,473 ,-473 ,195 ,
99 ,-284 ,425 ,-502 ,502 ,-425 ,284 ,-99 ,
IDCT:
362 ,355 ,334 ,301 ,256 ,201 ,138 ,70 ,
512 ,425 ,195 ,-99 ,-362 ,-502 ,-473 ,-284 ,
512 ,284 ,-195 ,-502 ,-362 ,99 ,473 ,425 ,
512 ,99 ,-473 ,-284 ,362 ,425 ,-195 ,-502 ,
512 ,-99 ,-473 ,284 ,362 ,-425 ,-195 ,502 ,
512 ,-284 ,-195 ,502 ,-362 ,-99 ,473 ,-425 ,
512 ,-425 ,195 ,99 ,-362 ,502 ,-473 ,284 ,
512 ,-502 ,473 ,-425 ,362 ,-284 ,195 ,-99,
待续(也许会找一个好的算法来实现)