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

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

2维离散余弦变换(DCT)FPGA快速实现方法_第1张图片

         C(v)同C(u)。

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

2维离散余弦变换(DCT)FPGA快速实现方法_第2张图片

2维离散余弦变换(DCT)FPGA快速实现方法_第3张图片

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

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

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

2维离散余弦变换(DCT)FPGA快速实现方法_第4张图片

        其中 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

2维离散余弦变换(DCT)FPGA快速实现方法_第5张图片

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

2维离散余弦变换(DCT)FPGA快速实现方法_第6张图片

 

你可能感兴趣的:(#,图像处理,fpga,dct)