用catapault C 实现IDCT

     VLSI的一个小作业,当我要开始做的时候,忽然发现无从下手,因为我已经完全忘记了IDCT,DCT的公式,甚至于也忘了FFT之类的东东呵,真是太惭愧了,所以趁现在有时间把几个公式整理一下,说不定对大家也有用。

    

DCT的公式

u=0c(u)= ,u!=0c(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,


待续(也许会找一个好的算法来实现) 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值