2维离散余弦变换(DCT)FPGA快速实现方法

        在JPEG图像压缩算法中,需要对图像进行8×8区域分块,然后对每个8×8区域进行2维DCT变换。

         C(v)同C(u)。

        在FPGA实现中,都是采用拆成2个一维DCT的方式进行计算。因此,2维DCT便拆分为2次行、列方向的一维DCT变换,在FPGA中只需要实现1维DCT变换,然后复用2次即可。

        在FPGA中,有两种快速1维DCT变换的实现方案。

       1、 利用中间结果的重复性。

        参考:https://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CJFD&dbname=CJFD2012&filename=WXJY201211013&v=MTUwNzk4ZVgxTHV4WVM3RGgxVDNxVHJXTTFGckNVUjdxZllPUnZGaUhoVUwzT01qWEJkN0c0SDlQTnJvOUVaNFI=

        其中 X(0)+X(7), X(1)+X(6), X(2)+X(5), X(3)+X(4), X(0)-X(7), X(1)-X(6), X(2)-X(5), X(3)-X(4)及其各乘系数为重复项。逻辑复用可有效降低资源使用。

        2、利用ANN快速算法。

        参考:

        1.https://opencores.org/projects/dct_idct

        2.https://www.cnblogs.com/tinycoder/articles/2026178.html

         计算只需要13次乘法,29次加减法。其中8次乘法都发生在计算的最后一步。对于JPEG标准DCT计算后紧跟着就是对DCT系数进行量化,这8次乘法可以合并在量化过程中。因此对于JPEG来说,AAN算法实际只需要5次乘法,29次加法。

 

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MmikerR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值