CN107277551A - 一种近似离散余弦变换方法 - Google Patents
一种近似离散余弦变换方法 Download PDFInfo
- Publication number
- CN107277551A CN107277551A CN201710437681.1A CN201710437681A CN107277551A CN 107277551 A CN107277551 A CN 107277551A CN 201710437681 A CN201710437681 A CN 201710437681A CN 107277551 A CN107277551 A CN 107277551A
- Authority
- CN
- China
- Prior art keywords
- control signal
- dimensional row
- dct
- dimensional
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
Abstract
一种近似离散余弦变换方法,涉及离散余弦变换技术。本发明将近似计算和传统离散余弦变换方法相结合,在一维行DCT变换方法和一维列DCT变换方法中加入近似计算,改进DCT系数,将进行DCT变换的数据中的部分设为0,将本发明中的DCT变换过程中的部分加法器变为近似加法器。本发明与传统离散余弦变换方法相比,能够在保证图像处理质量的情况下将功耗降低30%左右;相比与传统的一维行/列DCT变换,且本发明提出的一维行DCT变换方法能节约17个加法器,2个减法器,一维列DCT变换方法能节约15个加法器。
Description
技术领域
本发明涉及离散余弦变换技术,特别涉及一种近似离散余弦变换方法。
背景技术
随着时代的进步,以视频为主的多媒体设备如高清电视、手机已成为当今必不可少的消费品。其中,数字视频信号是一种直观、生动、高效的视频信号,它具有强的抗干扰能力,并有利于传输,交换以及存储,但它的缺点是数据量大。人类仅通过扩大存储容量以及增加通信线路的传输速率是达不到对海量数字视频信号的要求,因此提出了数字压缩技术,该技术可以有效的减少数字视频信号数据量,其中离散余弦变换是一种高效的数字压缩技术。
图像数据压缩指的是对图像数据做变换,去除图像内部数据的冗余度,减少压缩数据编码的位数。其中最佳变换是Karhunen-Loeve正交变换,但它实现起来较为困难。而离散余弦变换是仅次于Karhunen-Loeve正交变换的次最佳变换,离散余弦变换的特点是:
(1)离散余弦变换是一种正交变换,可以有效去除高度相关图像数据的冗余性;
(2)离散余弦变换具有非常好的能量聚焦性,经过变换,信号能量的绝大部分被集中到变换域的少数系数上;
(3)对于具有一阶平稳马尔可夫过程性质的信号(大多数自然图像信号属于这种类型),离散余弦变换非常接近统计最佳Karhunen-Loeve正交变换;
(4)离散余弦变换具有可实现的快速算法。
离散余弦变换应用于数字视频压缩技术中,降低离散余弦变换器的功耗可有效降低数字视频压缩需要的功耗。降低功耗的方法有很多,比如降电压、选择低功耗器件、分区/分时供电、降低处理器的时钟频率等。这些方法都可以有效降低系统的功耗,但它们也大幅度降低了系统的运行速度。
人眼对图像、视频数据不敏感,即轻微降低图像、视频数据的质量,人眼无法分别出其中的差距。基于这个特点,通过选取合适的算法和架构,使系统精度与系统能耗进行一个折中,这样既可以有效降低系统的功耗,又不影响信息的识别,也不会降低系统的运行速度。近似计算就是通过寻求合适的算法和架构来达到系统精度与系统能耗的折中。
发明内容
本发明提出一种近似离散余弦变换方法,将近似计算和传统离散余弦变换方法相结合,适用于8×8像素值矩阵的数据处理。
本发明的技术方案如下:
一种近似离散余弦变换方法,包括以下步骤:
步骤一:将8×8像素值矩阵进行一维行DCT变换得到一维行DCT变换结果,所述行DCT变换方法为:
n0=[(m0+m7)+(m1+m6)+(m2+m5)+(m3+m4)]×d,
n1=(m3-m4)×g+(m0-m7)×a+[(m1-m6)×1.5+(m2-m5)]×e,
n2={[(m0+m7)-(m3+m4)]×2.5+(m1+m6)-(m2+m5)}×f,
n3=(m0-m7)×1.5×e-(m1-m6)×g-(m2-m5)×a,
n4=[(m0+m7)+(m4+m3)-(m6+m1)-(m2+m5)]×d,
n5=(m0-m7)×e-(m1-m6)×a+(m2-m5)×g,
n6={(m0+m7)-(m3+m4)-[(m1+m6)-(m2-m5)]×2.5}×f,
n7=(m0-m7)×g-[(m1-m6)-(m2-m5)×1.5]×e,
其中系数a的二进制表示为0.100_0000,系数d的二进制表示为0.010_1101,系数e的二进制表示为0.010_0100,系数f的二进制表示为0.001_1000,系数g的二进制表示为0.000_1100;m0-m7表示所述8×8像素值矩阵中的第一至第八行数据,n0-n7表示所述一维行DCT变换结果的第一至第八行数据;
步骤二:将所述一维行DCT变换结果进行一维列DCT变换得到近似离散余弦变换结果,所述列DCT变换方法为:
y0=[(k0+k7)+(k1+k6)+(k2+k5)+(k3+k4)]×d,
y1=(k3-k4)×g+(k0-k7)×a+[(k1-k6)×1.5+(k2-k5)]×e,
y2={[(k0+k7)-(k3+k4)]×2.5+(k1+k6)-(k2+k5)}×f,
y3=[(k0-k7)×1.5-(k3-k4)]×e-(k1-k6)×g-(k2-k5)×a,
y4=[(k0+k7)+(k4+k3)-(k6+k1)-(k2+k5)]×d,
y5=[(k0-k7)+(k3-k4)×1.5]×e-(k1-k6)×a+(k2-k5)×g,
y6={(k0+k7)-(k3+k4)-[(k1+k6)-(k2-k5)]×2.5}×f,
y7=-(k3-k4)×a+(k0-k7)×g-[(k1-k6)-(k2-k5)×1.5]×e,
其中k0-k7表示所述一维行DCT变换结果的第一至第八列数据,y0-y7表示所述近似离散余弦变换结果的第一至第八列数据。
具体的,所述8×8像素值矩阵由外部输入数据进行符号位扩展之后得到。
具体的,所述外部输入数据为标准灰度图像数据。
具体的,步骤一通过一个外部控制信号start控制一维行DCT变换,当外部控制信号start=1时进行一维行DCT变换,当外部控制信号start=0时不进行一维行DCT变换。
具体的,步骤一得到的一维行DCT变换结果的第一至第八行数据n0-n7先存入寄存器阵列模块,再由寄存器阵列模块转换为一维行DCT变换结果的第一至第八列数据k0-k7并输出进行步骤二所述的一维列DCT变换。
具体的,通过第一控制信号num1控制一维行DCT变换结果的第一至第八行数据n0-n7依次存入寄存器阵列模块,具体做法为:
第一控制信号num1=0时,一维行DCT运算结果的第一行数据n0存入寄存器阵列模块的第一行;
第一控制信号num1=1时,一维行DCT运算结果的第二行数据n1存入寄存器阵列模块的第二行;
以此类推,直到第一控制信号num1=7时,一维行DCT运算结果的第八行数据n7存入寄存器阵列模块的第八行。
具体的,通过第二控制信号num2控制寄存器阵列模块将一维行DCT变换结果的第一至第八列数据k0-k7依次输出进行一维列DCT运算,具体做法为:
第二控制信号num2=0时,寄存器阵列模块将一维行DCT变换结果的第一列数据k0输出进行一维列DCT运算;
第二控制信号num2=1时,寄存器阵列模块将一维行DCT变换结果的第二列数据k1输出进行一维列DCT运算;
以此类推,直到第二控制信号num2=7时,寄存器阵列模块将一维行DCT变换结果的第八列数据k7输出进行一维列DCT运算。
具体的,所述第一控制信号num1和第二控制信号num2由外部控制信号start控制产生,当外部控制信号start=1时产生第一控制信号num1和第二控制信号num2,当外部控制信号start=0时不产生第一控制信号num1和第二控制信号num2。
本发明的有益效果为:将近似计算和传统离散余弦变换方法相结合,在一维行DCT变换方法和一维列DCT变换方法中加入近似计算,与传统离散余弦变换方法相比,能够在保证图像处理质量的情况下将功耗降低30%左右;相比与传统的一维行/列DCT变换,本发明提出的一维行DCT变换方法能节约17个加法器,2个减法器,一维列DCT变换方法能节约15个加法器。
附图说明
图1为一种能够实现本发明提出的近似离散余弦变换方法的实施例的电路结构示意图。
图2为图1中数据输入模块的电路原理图。
图3为传统离散余弦变换方法的计算过程示意图。
图4为图1中的控制电路模块的算法状态机。
图5为传统离散余弦变换器的一维行/列DCT运算模块。
图6为本发明所提出的一种近似离散余弦变换方法中进行一维行DCT运算的模块结构图。
图7为本发明所提出的一种近似离散余弦变换方法中进行一维列DCT运算的模块结构图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细的描述。
图1为一种能够实现本发明提出的近似离散余弦变换方法的整体电路原理图,包括数据输入模块、一维行DCT运算模块、寄存器阵列模块、一维列DCT运算模块以及控制电路模块,数据输入模块的输入端接外部输入数据,其输出端口接一维行DCT运算模块的输入端口;一维行DCT运算模块的控制端口接外部控制信号start,其输出端口接寄存器阵列模块的输入端口;控制电路模块由外部控制信号start控制产生第一控制信号num1连接寄存器阵列模块的控制端口和第二控制信号num2连接一维列DCT运算模块的控制端口;一维列DCT运算模块的输入端口连接寄存器阵列模块的输出端口,其输出端口输出外部输入数据进行近似离散余弦变换之后的最终数据。
控制电路模块还接入异步清零信号rst,当异步清零信号rst=0时,整个电路中的D触发器异步清零;其时钟端口接外部时钟信号clk约束整个电路的时序,使电路可以按时钟节拍来运行。
本实施例对标准灰度图像数据进行近似离散余弦变换,标准灰度图像数据由512×512个像素构成,每个像素是256级灰度,可以表示成8位无符号二进制数据。如图2所示为图1中数据输入模块的电路原理图,其中该模块的输入数据是标准灰度图像数据,通过数据输入模块进行符号位扩展,输出9位有符号的二进制数据。将标准灰度图像数据分成4096个8×8矩阵,数据输入模块的输入端口tu0[7:0]、tu1[7:0]、tu2[7:0]、tu3[7:0]、tu4[7:0]、tu5[7:0]、tu6[7:0]、tu7[7:0]用于接收这些图像矩阵,8个周期可接收完一个矩阵。数据输入模块的输出端口x0[8:0]、x1[8:0]、x2[8:0]、x3[8:0]、x4[8:0]、x5[8:0]、x6[8:0]、x7[8:0]接一维行DCT运算模块的输入端口。
一维行DCT运算模块的输入端口m0[8:0]、m1[8:0]、m2[8:0]、m3[8:0]、m4[8:0]、m5[8:0]、m6[8:0]、m7[8:0]接数据输入模块的输出端口x0[8:0]、x1[8:0]、x2[8:0]、x3[8:0]、x4[8:0]、x5[8:0]、x6[8:0]、x7[8:0],当外部控制信号start=1时,开始进行一维行DCT运算,运算结果在控制模块输出信号num1的控制下通过一维行DCT的输出端口n0[10:0]、n1[10:0]、n2[10:0]、n3[10:0]、n4[10:0]、n5[10:0]、n6[10:0]、n7[10:0]输入到寄存器阵列中。
寄存器阵列模块用于存储一维行DCT运算模块的输出信号,第一控制信号num1=0时,一维行DCT运算模块的输出信号中的第一行数据输入到寄存器阵列m00[10:0]、m01[10:0]、m02[10:0]、m03[10:0]、m04[10:0]、m05[10:0]、m06[10:0]、m07[10:0];下个周期,当num1=1时,一维行DCT运算模块的输出信号输入到寄存器阵列m10[10:0]、m11[10:0]、m12[10:0]、m13[10:0]、m14[10:0]、m15[10:0]、m16[10:0]、m17[10:0];以此类推,当num1=7时,一维行DCT运算模块的输出信号输入到寄存器阵列m70[10:0]、m71[10:0]、m72[10:0]、m73[10:0]、m74[10:0]、m75[10:0]、m76[10:0]、m77[10:0];经过8个周期,64个11位寄存器阵列已经存满数据,在第二控制信号num2的作用下,将寄存器阵列的列数据输出到一维列DCT运算模块的输入端口。
一维列DCT运算模块运算过程类似于一维行DCT运算那模块的运算过程,一维列DCT运算模块的输入信号是寄存器阵列模块的输出列数据,即在一维列DCT运算的第一个周期,第二控制信号num2=0时,一维列DCT运算模块的输入端口k0[10:0]、k1[10:0]、k2[10:0]、k3[10:0]、k4[10:0]、k5[10:0]、k6[10:0]、k7[10:0]接收寄存器阵列的第一组列数据m00[10:0]、m10[10:0]、m20[10:0]、m30[10:0]、m40[10:0]、m50[10:0]、m60[10:0]、m70[10:0],经过一维列DCT运算后,结果通过输出端口y0[11:0]、y1[11:0]、y2[11:0]、y3[11:0]、y4[11:0]、y5[11:0]、y6[11:0]、y7[11:0]输出;下个周期,第二控制信号num2=1时,一维列DCT运算模块的输入端口接收寄存器阵列的第二组列数据m01[10:0]、m11[10:0]、m21[10:0]、m31[10:0]、m41[10:0]、m51[10:0]、m61[10:0]、m71[10:0],经过一维列DCT运算后,结果通过输出端口输出;以此类推,在第八个周期,当第二控制信号num2=7时,一维列DCT运算模块的输入端口接收寄存器阵列的第七组列数据m07[10:0]、m17[10:0]、m27[10:0]、m37[10:0]、m47[10:0]、m57[10:0]、m67[10:0]、m77[10:0],经过一维列DCT运算后,结果通过输出端口输出。
如图3所示为控制电路模块的的算法状态机,该控制电路模块包括3个状态,初始状态、一维行DCT运算状态、一维列DCT运算状态。控制电路模块刚上电时,进入初始状态,当异步清零信号rst=0时,回归初始状态;当rst=1时,若外部控制信号start=1,进入一维行DCT运算状态,若外部控制信号start=0返回初始状态。一维行DCT运算状态的第一个周期,第一控制信号num1=0,一维行DCT输入数据的第一组数据进行一维行DCT运算,运算结果存入寄存器阵列的第一行;第二个周期,第一控制信号num1=2,一维行DCT输入数据的第二组数据进行一维行DCT运算,运算结果存入寄存器阵列的第二行;当到达第八个周期,第一控制信号num1=7,一维行DCT输入数据的第八组数据进行一维行DCT运算,运算结果存入寄存器阵列的第八行,然后进入一维列DCT运算状态。一维列DCT运算状态的第一个周期,第二控制信号num2=0,寄存器阵列的第一列数据进行一维列DCT运算,输出进行近似离散余弦变换之后的输出数据;第二个周期,第二控制信号num2=1,寄存器阵列的第二列数据进行一维列DCT运算,输出进行近似离散余弦变换之后的输出数据,当到达第八个周期,第二控制信号num2=7,寄存器阵列的第八列数据进行一维列DCT运算,输出进行近似离散余弦变换之后的输出数据,此时回到初始状态,进行下一个8×8图像数据的运算。
传统的离散余弦变换器的计算过程示意图如图3所示。把图片数据分成多个8×8矩阵,如矩阵1所示,第一个周期,把矩阵1的第一行数据进行一维行DCT运算,结果存入矩阵2的第一行;第二个周期,把矩阵1的第二行数据进行一维行DCT运算,结果存入矩阵2的第二行;以此类推,通过八个周期把8×8矩阵图像数据进行一维行DCT运算后存入矩阵2。矩阵3是矩阵2的转置矩阵,即矩阵3的第n行数据是矩阵2的第n列数据。再通过8个时钟,将矩阵3的每一行数据进行一维列DCT运算,计算结果存入矩阵4,得到DCT变换数据。
本发明的整体计算过程与传统离散余弦变换器的计算过程保持一致,其中本发明的创新部分,主要集中在一维行DCT运算方法和一维列DCT运算方法。传统的离散余弦变换器的一维行/列DCT运算模块的设计如图5所示。它的计算公式如下:
y0=(x0+x1+x2+x3+x4+x5+x6+x7)×d,
y1=(x3-x4)×g+(x0-x7)×a+(x1-x6)×c+(x2-x5)×e,
y2=(x0+x7-x3-x4)×b+(x1+x6-x2-x5)×f,
y3=-(x3-x4)×e+(x0-x7)×c-(x1-x6)×g-(x2-x5)×a,
y4=[(x0+x1+x6+x7)-(x2+x3+x4+x5)]×d,
y5=(x3-x4)×c+(x0-x7)×e-(x1-x6)×a+(x2-x5)×g,
y6=(x0+x7-x3-x4)×f-(x1+x6-x2-x5)×b,
y7=-(x3-x4)×a+(x0-x7)×g-(x1-x6)×e+(x2-x5)×c,
根据上述公式绘制运算示意图5,传统的离散余弦变换器的一维行/列DCT运算模块分成三级运算。
第一级通过4个加法器和4个减法器,可以得到x0+x7、x1+x6、x2+x5、x3+x4、x0-x7、x1-x6、x2-x5、x3-x4的值。
第二级是把第一级的运算结果x0+x7、x1+x6、x2+x5、x3+x4、x0-x7、x1-x6、x2-x5、x3-x4与DCT系数相乘,其中有公共DCT系数的可以先提出来,如公式1中的y0,y2,y4,y6。其中DCT系数a、b、c、d、e、f、g表示成8位二进制数,如表1“传统DCT二进制系数”一栏。
表1传统离散余弦变换器与本发明的一维DCT系数的比较
其中,由于乘法器的运算量大以及硬件较复杂,一般会选用移位加的形式代替乘法器,加法器的个数主要是看其中8位二进制数DCT系数的中1的个数。当有n个1时,需要n-1个加法器。如果连续的1个数太多,可以表示成负1的形式,如a=0.0111111=0.1000000-0.0000001,此时只需要1个减法器。
具体是:当一个数m与DCT系数a相乘,即m×a=m×0.0111111=m×0.1000000-m×0.0000001,即只需要1个减法器就能完成这个乘法运算;同理,m×b=m×0.0111011=m×0.1000000-(m×0.0000001+m×0.0000100),一个数m与DCT系数b相乘,需要1个加法器和1个减法器完成运算;m×c=m×0.0110101=m×0.0100000+m×0.0010000+m×0.0000100+m×0.0000001,一个数m与DCT系数c相乘,需要3个加法器完成运算;一个数m与DCT系数d相乘,m×d=m×0.0101101=m×0.0100000+m×0.0001000+m×0.0000100+m×0.0000001,需要3个加法器完成运算;一个数m与DCT系数e相乘,m×e=m×0.010100=m×0.0100000+m×0.0000100,需要1个加法器完成运算;一个数m与DCT系数f相乘,m×f=m×0.0011000=m×0.0010000+m×0.0001000,需要1个加法器完成运算;一个数m与DCT系数g相乘,m×g=m×0.0001100=m×0.0001000+m×0.0000100,需要1个加法器完成运算。经过第二级运算y0,y4已算出最终结果。第二级需要37个加法器,5个减法器。
第三级是把第二级算出的结果,进行相加减,得到最终的结果。共需要7个加法器,7个减法器。通过这三级运算,原一维DCT模块需要48个加法器,16个减法器。
离散余弦变换器对图片数据进行压缩,把图片的能量集中在离散余弦变换后的少数系数上,如图3所示,经离散余弦变换以后,图片的能量主要集中在矩阵4的左上角,右下角数据几乎没有能量集中。所以,在一维行/列DCT运算模块中,数据y0到y7的重要性依次减弱。
本发明对一维行/列DCT运算模块的创新体现在3个方面,由于一维行DCT运算模块和一维列DCT运算模块计算过程类似,下面先对一维行DCT运算模块进行详细描述。
根据本发明提出的一维行DCT运算公式绘制一维行DCT运算模块,如图6所示,它与原一维DCT模块的相比,主要有三个改进之处,第一个是DCT系数发生了变化,如表1“本发明DCT二进制系数”一栏,较原DCT系数,本发明的DCT系数较为简单,其中1的个数较少;比原本一维DCT模块,本发明一维行DCT模块计算n1时,少3个加法器;计算n2,少1个减法器;计算n3,少5个加法器,计算n5,少5个加法器;计算n6,少1个减法器;计算n7,少4个加法器。所以,共节约17个加法器,2个减法器。根据离散余弦变换的性质,由于n0较重要,所以没有改变系数d。
第二,由于图片数据具有空间冗余性,即图片相邻部位的灰度数据差值较小,可以将一维行DCT运算模块的m3-m4设为0。由于n1较为重要,只把n3,n5,n7中的m3-m4设为0。一维列DCT运算模块的输入数据不是图片数据,不能做这种优化。
具体是:DCT系数a,b,c发生了改变。当一个数m与DCT系数a相乘,即m×a=m×0.0100000,此时只需要对m进位扩展,并不需要加减运算;b和c,分别用2.5f和1.5e表示,可以把f与e分解出来,那么n2,n3,n5,n6,n7如一维行DCT运算公式所示。当一个数m与1.5相乘,即m×1.5=m+m>>1,需要一个加法器;当一个数m与2.5相乘,即m×2.5=m<<1+m>>1,需要一个加法器。
第三、将改进后的一维行/列运算模块中的部分加法器变成近似加法器,具体内容如下。
如图6,n0=(m0+m1+m2+m3+m4+m5+m6+m7)×d=k0×d,其中m0、m1、m2、m3、m4、m5、m6、m7是9位有符号数,它们的和k0是12位有符号数。d是二进制小数,通常的算法是将d左移7位,再计算k1=k0×(d<<7),k1是18位有符号数,而最终结果n0=k1[17:7]。在这个过程中,由于n0=k1[17:7],k1[6:0]对n0的准确度贡献较小,但功耗消耗比较大,可以加入近似加法器代替准确加法器。
k1=k0×(d<<7)=k0×0010_1101=((k0+(k0<<2))<<3)+(k0+(k0<<2))=i1+i2,其中i1是18位有符号数,i2是14位有符号数,它们相加得到k1,此处用近似加法器代替准确加法器,即k1=i1[17:6]+i2[13:6]+i1[5]&i2[5]。
设pro[i]=i1[i]^i2[i],gen[i]=i1[i]&i2[i],k1发生错误的概率是:
其中i1[2]、i1[1]、i1[0]都为0,所以gen[2]、gen[1]、gen[0]均为0。
其次,当发生错误时,近似值比准确值小1,所以平均错误值是:
综上所述,将上述电路中的部分加法器换成近似加法器后,发生错误的概率是平均错误大小0.1875,但是减少5位二进制加法运算,这样有效降低了计算n0的功耗。利用同样的方法,将一维行/列DCT模块的部分加法器用近似加法器代替,在计算精度牺牲较小的条件下,很大程度上降低计算的功耗。
在传统的离散余弦变换器的基础上,本发明通过选取合适的近似计算,牺牲较小的计算质量,达到了降低功耗的目的。经过实验仿真得出本发明处理的图片与原图片相比PSNR值大于41db,但功耗比传统离散余弦变换器的功耗降30%左右。
根据本发明提出的一维列DCT运算公式绘制一维列DCT运算模块,如图7所示,它与原一维DCT模块的相比,主要是DCT系数发生了变化,DCT系数和本发明的一维行DCT模块的DCT系数相同。
与本发明的一维行DCT模块相比,本发明一维列DCT模块计算y3时,多1个减法器;计算y5,多2个加法器;计算y7,多1个减法器。所以,共需要33个加法器,16个减法器,共节约15个加法器。
改进后的两个运算模块,相比传统的离散余弦变换器的两个模块,二进制加法器个数减少32个,二进制减法器的个数减少2个。
本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (8)
1.一种近似离散余弦变换方法,其特征在于,包括以下步骤:
步骤一:将8×8像素值矩阵进行一维行DCT变换得到一维行DCT变换结果,所述行DCT变换方法为:
n0=[(m0+m7)+(m1+m6)+(m2+m5)+(m3+m4)]×d,
n1=(m3-m4)×g+(m0-m7)×a+[(m1-m6)×1.5+(m2-m5)]×e,
n2={[(m0+m7)-(m3+m4)]×2.5+(m1+m6)-(m2+m5)}×f,
n3=(m0-m7)×1.5×e-(m1-m6)×g-(m2-m5)×a,
n4=[(m0+m7)+(m4+m3)-(m6+m1)-(m2+m5)]×d,
n5=(m0-m7)×e-(m1-m6)×a+(m2-m5)×g,
n6={(m0+m7)-(m3+m4)-[(m1+m6)-(m2-m5)]×2.5}×f,
n7=(m0-m7)×g-[(m1-m6)-(m2-m5)×1.5]×e,
其中系数a的二进制表示为0.100_0000,系数d的二进制表示为0.010_1101,系数e的二进制表示为0.010_0100,系数f的二进制表示为0.001_1000,系数g的二进制表示为0.000_1100;m0-m7表示所述8×8像素值矩阵中的第一至第八行数据,n0-n7表示所述一维行DCT变换结果的第一至第八行数据;
步骤二:将所述一维行DCT变换结果进行一维列DCT变换得到近似离散余弦变换结果,所述列DCT变换方法为:
y0=[(k0+k7)+(k1+k6)+(k2+k5)+(k3+k4)]×d,
y1=(k3-k4)×g+(k0-k7)×a+[(k1-k6)×1.5+(k2-k5)]×e,
y2={[(k0+k7)-(k3+k4)]×2.5+(k1+k6)-(k2+k5)}×f,
y3=[(k0-k7)×1.5-(k3-k4)]×e-(k1-k6)×g-(k2-k5)×a,
y4=[(k0+k7)+(k4+k3)-(k6+k1)-(k2+k5)]×d,
y5=[(k0-k7)+(k3-k4)×1.5]×e-(k1-k6)×a+(k2-k5)×g,
y6={(k0+k7)-(k3+k4)-[(k1+k6)-(k2-k5)]×2.5}×f,
y7=-(k3-k4)×a+(k0-k7)×g-[(k1-k6)-(k2-k5)×1.5]×e,
其中k0-k7表示所述一维行DCT变换结果的第一至第八列数据,y0-y7表示所述近似离散余弦变换结果的第一至第八列数据。
2.根据权利要求1所述的一种近似离散余弦变换方法,其特征在于,所述8×8像素值矩阵由外部输入数据进行符号位扩展之后得到。
3.根据权利要求2所述的一种近似离散余弦变换方法,其特征在于,所述外部输入数据为标准灰度图像数据。
4.根据权利要求1所述的一种近似离散余弦变换方法,其特征在于,步骤一通过一个外部控制信号start控制一维行DCT变换,当外部控制信号start=1时进行一维行DCT变换,当外部控制信号start=0时不进行一维行DCT变换。
5.根据权利要求1所述的一种近似离散余弦变换方法,其特征在于,步骤一得到的一维行DCT变换结果的第一至第八行数据n0-n7先存入寄存器阵列模块,再由寄存器阵列模块转换为一维行DCT变换结果的第一至第八列数据k0-k7并输出进行步骤二所述的一维列DCT变换。
6.根据权利要求5所述的一种近似离散余弦变换方法,其特征在于,通过第一控制信号num1控制一维行DCT变换结果的第一至第八行数据n0-n7依次存入寄存器阵列模块,具体做法为:
第一控制信号num1=0时,一维行DCT运算结果的第一行数据n0存入寄存器阵列模块的第一行;
第一控制信号num1=1时,一维行DCT运算结果的第二行数据n1存入寄存器阵列模块的第二行;
以此类推,直到第一控制信号num1=7时,一维行DCT运算结果的第八行数据n7存入寄存器阵列模块的第八行。
7.根据权利要求6所述的一种近似离散余弦变换方法,其特征在于,通过第二控制信号num2控制寄存器阵列模块将一维行DCT变换结果的第一至第八列数据k0-k7依次输出进行一维列DCT运算,具体做法为:
第二控制信号num2=0时,寄存器阵列模块将一维行DCT变换结果的第一列数据k0输出进行一维列DCT运算;
第二控制信号num2=1时,寄存器阵列模块将一维行DCT变换结果的第二列数据k1输出进行一维列DCT运算;
以此类推,直到第二控制信号num2=7时,寄存器阵列模块将一维行DCT变换结果的第八列数据k7输出进行一维列DCT运算。
8.根据权利要求4或7所述的一种近似离散余弦变换方法,其特征在于,所述第一控制信号num1和第二控制信号num2由外部控制信号start控制产生,当外部控制信号start=1时产生第一控制信号num1和第二控制信号num2,当外部控制信号start=0时不产生第一控制信号num1和第二控制信号num2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710437681.1A CN107277551B (zh) | 2017-06-12 | 2017-06-12 | 一种用于图像处理的近似离散余弦变换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710437681.1A CN107277551B (zh) | 2017-06-12 | 2017-06-12 | 一种用于图像处理的近似离散余弦变换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107277551A true CN107277551A (zh) | 2017-10-20 |
CN107277551B CN107277551B (zh) | 2019-08-23 |
Family
ID=60067328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710437681.1A Expired - Fee Related CN107277551B (zh) | 2017-06-12 | 2017-06-12 | 一种用于图像处理的近似离散余弦变换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107277551B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109451307A (zh) * | 2018-11-26 | 2019-03-08 | 电子科技大学 | 一种基于近似系数的一维dct运算方法和dct变换装置 |
CN110933445A (zh) * | 2019-12-16 | 2020-03-27 | 电子科技大学 | 一种基于系数矩阵变换的dct运算方法及其变换装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6160920A (en) * | 1998-09-15 | 2000-12-12 | Winbond Electronics Corp. | Cosine transforming and quantizing device, method of reducing multiplication operations in a video compressing apparatus |
US20050201459A1 (en) * | 2004-03-03 | 2005-09-15 | Pioneer Corporation | Digital image signal decoder and decoding method |
CN101267566A (zh) * | 2008-04-30 | 2008-09-17 | 华为技术有限公司 | 图像编码方法和装置 |
US7986730B1 (en) * | 2001-05-29 | 2011-07-26 | Cisco Technology, Inc. | Methods and apparatus for updating a reduction ratio |
CN102714714A (zh) * | 2009-06-24 | 2012-10-03 | 高通股份有限公司 | 用于媒体数据译码的8点变换 |
CN105933703A (zh) * | 2016-06-29 | 2016-09-07 | 河南工程学院 | 一种反馈运动补偿残差信息的视频传输系统及方法 |
-
2017
- 2017-06-12 CN CN201710437681.1A patent/CN107277551B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6160920A (en) * | 1998-09-15 | 2000-12-12 | Winbond Electronics Corp. | Cosine transforming and quantizing device, method of reducing multiplication operations in a video compressing apparatus |
US7986730B1 (en) * | 2001-05-29 | 2011-07-26 | Cisco Technology, Inc. | Methods and apparatus for updating a reduction ratio |
US20050201459A1 (en) * | 2004-03-03 | 2005-09-15 | Pioneer Corporation | Digital image signal decoder and decoding method |
CN101267566A (zh) * | 2008-04-30 | 2008-09-17 | 华为技术有限公司 | 图像编码方法和装置 |
CN102714714A (zh) * | 2009-06-24 | 2012-10-03 | 高通股份有限公司 | 用于媒体数据译码的8点变换 |
CN105933703A (zh) * | 2016-06-29 | 2016-09-07 | 河南工程学院 | 一种反馈运动补偿残差信息的视频传输系统及方法 |
Non-Patent Citations (1)
Title |
---|
王宁等: "基于FPGA的快速DCT医学图像的压缩算法", 《生物医学工程研究》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109451307A (zh) * | 2018-11-26 | 2019-03-08 | 电子科技大学 | 一种基于近似系数的一维dct运算方法和dct变换装置 |
CN109451307B (zh) * | 2018-11-26 | 2021-01-08 | 电子科技大学 | 一种基于近似系数的一维dct运算方法和dct变换装置 |
CN110933445A (zh) * | 2019-12-16 | 2020-03-27 | 电子科技大学 | 一种基于系数矩阵变换的dct运算方法及其变换装置 |
CN110933445B (zh) * | 2019-12-16 | 2021-06-08 | 电子科技大学 | 一种基于系数矩阵变换的dct运算方法及其变换装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107277551B (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997496B2 (en) | Sparse convolutional neural network accelerator | |
US5053985A (en) | Recycling dct/idct integrated circuit apparatus using a single multiplier/accumulator and a single random access memory | |
JP2962970B2 (ja) | 周波数から時間領域への変換方法及び装置 | |
CN102857756B (zh) | 适于hevc标准的变换编码器 | |
JPS6231473A (ja) | コサイン変換計算装置並びに計算装置等を備えた画像コ−ド装置及び画像デコ−ド装置 | |
CN107277551B (zh) | 一种用于图像处理的近似离散余弦变换方法 | |
US20090016634A1 (en) | Half pixel interpolator for video motion estimation accelerator | |
CN110852944A (zh) | 基于深度学习的多帧自适应融合的视频超分辨方法 | |
TW293228B (zh) | ||
JPH0695631A (ja) | 画像処理方法及び装置 | |
JP4224876B2 (ja) | 記憶装置、並びに書き込み方法および読み出し方法 | |
CN1267813C (zh) | 处理色差信号4∶2∶0平面图像数据格式存储器的系统与方法 | |
JP3577325B2 (ja) | 離散余弦変換(dct)によるデータ処理方法、dct方法、およびdctデータ処理回路 | |
CN116170601B (zh) | 基于四列列向量分块奇异值分解的图像压缩方法 | |
CN114007079A (zh) | 变换电路、方法、装置和编码器 | |
CN101489129A (zh) | 一种实现高速二维离散余弦变换的集成电路及方法 | |
CN115221102A (zh) | 用于优化片上系统的卷积运算操作的方法和相关产品 | |
CN104113759B (zh) | 视频系统、视频帧缓存再压缩/解压缩方法与装置 | |
CN105160622B (zh) | 基于fpga的图像超分辨率的实现方法 | |
CN104053011B (zh) | 应用于jpeg2000解码器中的二维离散小波逆变换器 | |
CN104754363B (zh) | 用于hevc的环路滤波方法及装置、编码器及解码器 | |
CN110213592A (zh) | 适用于hevc标准中运动估计的电路及其工作方法 | |
CN101662598A (zh) | 一种连续视频数据流的缩放系统 | |
JP4277987B2 (ja) | 変換符号化係数のサンプリング変換・解像度変換装置 | |
CN101237574A (zh) | 图像数据的译码运算系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190823 |
|
CF01 | Termination of patent right due to non-payment of annual fee |