CN101330616B - 视频解码过程中反离散余弦变换的硬件实现装置及方法 - Google Patents
视频解码过程中反离散余弦变换的硬件实现装置及方法 Download PDFInfo
- Publication number
- CN101330616B CN101330616B CN 200810041209 CN200810041209A CN101330616B CN 101330616 B CN101330616 B CN 101330616B CN 200810041209 CN200810041209 CN 200810041209 CN 200810041209 A CN200810041209 A CN 200810041209A CN 101330616 B CN101330616 B CN 101330616B
- Authority
- CN
- China
- Prior art keywords
- discrete cosine
- inverse discrete
- cosine transformation
- module
- look
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种视频解码过程中反离散余弦变换的硬件实现装置及方法。装置包括行变换运算单元、行变换控制单元、列变换运算单元、列变换控制单元及转置RAM。行变换运算单元和列变换运算单元均采用查找表和累加移位相配合的方法完成一次一维的反离散余弦变换。行变换运算单元的输出经过转置RAM的8x8矩阵转置送入列变换运算单元中完成第二次的一维反离散余弦变换。列变换运算单元的输出为预测残差值。所述方法以8x8反离散余弦变换为基础,利用查找表和累加移位方法代替乘加运算,兼容MPEG2/AVS/H.264标准。本发明通过对查找表表值的不同兼容MPEG2、AVS、H.264的4x4和8x8反离散余弦变换。
Description
技术领域
本发明涉及一种数字视频编解码技术领域的装置及方法,具体是一种视频解码过程中反离散余弦变换的硬件实现装置及方法。
背景技术
MPEG2是由国际标准化组织(ISO)于1994年为实现视/音频服务与应用互操作的可能性而推出的压缩标准。MPEG2是较早推出的适合于广播级数字电视编码和传送的标准。AVS(数字音视频编解码技术标准)是由AVS工作组制定的一种多媒体信源编码标准。该技术标准的视频部分于2006年2月22日被颁布为中华人民共和国国家标准,标准号GB/T 20090.2-2006,于2006年3月1日起实施。H.264是由国际电信联盟(ITU)和国际标准化组织(ISO)于2003年5月共同发布的新一代视频压缩编解码标准。它目前已经得到了业界的广泛支持,不仅出现在了不同的行业应用中,而且也涉及各个国家、各个组织。MPEG2、AVS和H.264具有相似的技术特点,三者都要对预测编码产生的残差进行变换编码。变换编码把预测残差时域信号变换成频域信号。频域中,预测残差的频域信号能量大部分集中在低频区域,相对于时域信号码率有较大的下降。在MPEG2标准的视频部分中,对预测残差的变换编码的解码与IEEE的8x8反离散余弦变换标准规范Std 1180-1990一致,采用浮点的反离散余弦变换。AVS标准的视频部分中,对预测残差的变换编码的解码采用了8x8整数反离散余弦变换。H.264标准中,对预测残差的变换编码的解码采用了4x4整数反离散余弦变换和8x8整数反离散余弦变换的方法。按照MPEG2标准视频部分和AVS标准视频部分对反变换的规定,每计算一个像素点需要16次乘法和14次加法,代价非常高。而H.264标准实现反变换是一个效率很高且代价很低的移位加过程。
由于三种标准反变换都是对反离散余弦变换直接应用或改进后再应用的,有很大相似性。为了使视频解码器支持MPEG2、AVS和H.264三种标准,如果分别采用3个只支持单一标准的反变换模块,模块中会有三套相似的部分,这样会大大浪费资源。因此有必要寻找一种兼容三种标准的架构和代替运用大量乘法器来实现MPEG2标准视频部分和AVS标准视频部分规定的反离散余弦变换的方法。
经对现有技术文献的检索发现,李莉等人在“基于DA算法的二维DCT的FPGA实现”(《现代电子技术》2006年第10期)中提出了一种实现离散余弦变换的架构。该架构通过利用DA算法(分布式算法),达到了用查找表模块和累加移位寄存器代替大量乘法器的效果。但是仍存在如下缺点:1、查找表的表值有很大的冗余,没有充分利用查找表表值的对称性,因而不是最优化的。2、只提出了8x8的离散余弦变换的方法和装置,没有考虑到对H.264标准中4x4离散余弦变换的兼容。
发明内容
本发明的目的在于针对现有技术的不足,提供一种视频解码过程中反离散余弦变换的硬件实现装置及方法,要解决的技术问题是,寻找一种比较简单的方法代替原来的乘加运算,并提出一种硬件架构兼容MPEG2、AVS和H.264三种视频编解码标准中规定的反离散余弦变换,从而达到节省资源的目的。
本发明是通过以下技术方案实现的:
本发明所涉及的视频解码过程中反离散余弦变换的硬件实现装置,包括行变换运算模块、行变换控制模块、列变换运算模块、列变换控制模块和转置RAM,其中:
行变换运算模块接收反量化后的预测残差变换系数,对预测残差系数通过查找表、累加移位处理完成一次8x8的反离散余弦变换,并把得到的行变换输出送给转置RAM;
列变换运算模块从转置RAM读出已经转置的8x8行变换输出,对行变换结果通过查找表、累加移位处理完成一次8x8的反离散余弦变换,得到反变换结果,即8x8个预测残差;
行变换控制模块控制行变换运算模块接收数据,以及完成一次8x8反离散余弦变换和把行变换结果存进转置RAM中;
列变换控制模块控制列变换运算模块从转置RAM中读出转置的行变换结果,以及完成一次8x8反离散余弦变换和把最终反离散余弦变换结果输出。
所述的一个行变换运算模块是指完成一次一维8x8反离散余弦变换的模块。它由一个取数据模块,16个不同的查找表,8个累加移位模块和一个后处理模块组成,其中:
取数据模块是在行变换控制模块的控制下完成一次读取8个16比特数据并产生查找表索引值的功能;
16个不同的查找表是存储了由MPEG2/AVS/H.264三个标准得到的反离散余弦变换系数矩阵算出的表值;
累加移位模块是完成对每次查出的表值累加移位的模块,并且所有累加移位寄存器在每次输入不同的8个数据前其中数据初始化为0;
后处理模块是完成对8个累加移位模块的输出进行蝶形运算并把结果按要求形式输出给转置RAM的模块。
所述的转置RAM是一个16x64x2的双口RAM,通过读写地址的顺序关系完成8x8转置。
所述的一个列变换运算模块是指完成一次一维8x8反离散余弦变换的模块。它由一个取数据模块,16个不同查找表,8个累加移位模块和一个后处理模块组成。列变换的取数据模块、16个不同查找表、8个累加移位模块与行变换运算模块中的一样。列变换的后处理模块除了完成对8个累加移位模块的输出进行蝶形运算外,还要把结果按照要求输出给在视频解码***中反离散余弦变换模块的后级模块。
所述的累加移位寄存器,是指:用于把一次一维8x8点反离散余弦变换的中间结果与当前累加移位寄存器中的数据相加,并把相加结果右移两位后再存入累加移位寄存器的寄存器。
本发明所涉及的视频解码过程中反离散余弦变换的硬件实现方法,包括如下步骤:
第一步,从视频解码***中反离散余弦变换装置的前级装置接收预测残差变换系数;
所述的预测残差变换系数,是指:在视频编码时,预测编码产生的预测残差经过变换编码得到的变换系数。
第二步,对输入的预测残差系数采用查找表、累加移位寄存器和行变换后处理模块进行一次8x8行变换,即一次一维的8x8反离散余弦变换,得到8x8个行变换结果;
所述的查找表,其表值是通过对8x8反离散余弦变换系数矩阵进行计算得到的。
所述的8x8反离散余弦变换系数矩阵是由MPEG2、AVS和H.264标准中规定的反离散余弦变换方法推导出的8x8矩阵。
第三步,将8x8个行变换输出结果按0到63的自然顺序存入转置RAM中,后续列变换时,以转置的地址顺序读入行变换结果。
第四步,对转置后的结果采用查找表、累加移位寄存器和行变换后处理模块进行一次8x8列变换,即一次一维8x8反离散余弦变换;
第五步,输出列变换结果,即是预测残差。
所述的预测残差,是指:在视频编码时,对视频图像进行预测编码而得到的残差值。
一次反离散余弦变换过程只计算一个8x8预测残差系数块。第二步和第四步所述的行变换和列变换是进行了两次相同的一维8x8点反离散余弦变换。
所述的一次一维8x8点反离散余弦变换,包括如下步骤:
步骤一,初始化8个累加移位寄存器中数据为0。
步骤二,读入8个16比特预测残差变换系数。
步骤三,从8个预测残差变换系数产生查找表的索引值。
步骤四,对读入的每个预测残差变换系数进行算术右移两位操作。
步骤五,第三步产生的查找表索引值送入查找表中,得到查找表结果。
步骤六,把从查找表得到的结果与累加移位寄存器中的数据相加,并把相加结果算术右移2位后再存入累加移位寄存器中。
步骤七,重复步骤一步到步骤六8次。
步骤八,把各移位累加寄存器中的数据与初始值相加,并把得到的相加结果再存入累加移位寄存器中。
所述的初始值,是指:对从MPEG2、AVS和H.264标准中得到的反离散余弦变换系数矩阵进行计算得到的常数。
步骤九,对8个累加移位寄存器中的数据进行蝶形运算。蝶形运算的结果就是8个一维反离散余弦变换结果。
步骤十,重复步骤一到步骤九8次,完成一次一维8x8反离散余弦变换,得到64个一次一维8x8反离散余弦变换的输出。
本发明充分利用了MPEG2、AVS和H.264三种标准对反离散余弦变换定义的相似性,只需通过改变查找表的表值和初始值完成对三种标准的兼容。特别地,用本发明与李莉等人论文中的方案进行比较,能够发现,李莉等人并没有给出如何实现对不同标准的兼容,特别其提出的方案很难兼容H.264标准中4x4的反离散余弦变换。而本发明只需要通过加入4x4反离散余弦变换系数矩阵对应的表值就能够兼容H.264标准中4x4的反离散余弦变换。而且,本发明产生的查找表的大小是李莉等人论文所提出的方法产生的查找表大小的一半。
附图说明
图1一次一维8x8反离散余弦变换被描述成一次8x8的矩阵乘法示意图;
图中:利用MPEG2/AVS/H.264三种标准的反离散余弦变换系数矩阵的共同具有的特征:奇数行奇对称,偶数行偶对称,把一次8x8矩阵乘法运三等价变换为2次4x4矩阵乘法运算。
图2是视频解码过程中支持MPEG2、AVS和H.264三种标准所规定的反离散余弦变换装置结构框图。
图3是一维8x8点反离散余弦变换装置(行变换运算模块/列变换运算模块)结构框图。
图4是表值由反离散余弦变换系数矩阵一列系数算出的一组高址和低址查找表的结构框图。
具体实现方式
下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例所用到的反离散余弦变换系数矩阵是由MPEG2、AVS和H.264三个标准规定的反离散余弦变换方法推导而出。
MPEG2标准视频部分规定的反离散余弦变换方法为浮点形式,硬件实现时可对其定点化形成一个8x8整数反离散余弦变换的系数矩阵。Ampeg2-invsb8是由MPEG2标准规定的反离散余弦变换推导出的8x8反离散余弦变换系数矩阵,如下所示:
AVS标准视频部分规定的反离散余弦变换系数矩阵为一8x8矩阵,如下所示:
Ah.264-invsb8为由H.264标准中对8x8反离散余弦变换的规定推导出的8x8反离散余弦变换系数矩阵,如下所示:
Ah.264-invsb4为由H.264标准中对4x4反离散余弦变换的规定推导出的8x8反离散余弦变换系数矩阵。H.264中规定了两种反离散余弦变换方法:8x8反离散余弦变换和4x4反离散余弦变换。为了使4x4反离散余弦变换系数矩阵兼容在8x8反离散余弦变换的方法里,对4x4矩阵进行等价变换得到一个8x8矩阵,如下所示:
如图1所示,一次一维8x8反离散余弦变换被描述成一次8x8的矩阵乘法。其中,X[0]到X[1]是输入的8x8预测残差变换系数矩阵的某一列;Y[0]到Y[1]是一次一维8x8反离散余弦变换所得到的8x8矩阵的一列。根据由MPEG2、AVS和H.264标准中规定的反离散余弦变换方法推导出的8x8反离散余弦变换系数矩阵的特点:偶数行偶对称奇数行奇对称,可以把8x8矩阵乘法等价变换成做两个4x4矩阵乘法。偶数列4x4矩阵是由原8x8矩阵的第0、2、4、6列的第0到第3行组成。奇数列4x4矩阵是由原8x8矩阵的第1、3、5、7列的第0到第3行组成。把两次4x4矩阵乘法得到的4x4矩阵,做一次4x4矩阵加法和一次4x4矩阵减法并按如图所示的组合方式组合所得结果,就得到一次8x8矩阵乘法的结果。
如图2所示,视频解码过程中支持MPEG2、AVS和H.264三个标准所规定的反离散余弦变换的硬件实现装置,包括行变换运算模块,行变换控制模块,列变换运算模块,列变换控制模块和转置RAM,其中:行变换运算单元和列变换运算单元均采用查找表和累加移位相配合的方法完成一次一维的反离散余弦变换。行变换运算单元的输出经过转置RAM的8x8矩阵转置送入列变换运算单元中完成第二次的一维反离散余弦变换。列变换运算单元的输出为预测残差值。
所述的一个行变换运算模块是指完成一次一维8x8反离散余弦变换的模块。它由一个取数据模块,16个不同的查找表,8个累加移位模块和一个后处理模块组成,其中:
取数据模块是在行变换控制模块的控制下完成一次读取8个16比特数据并产生查找表索引值的功能;
16个不同的查找表是存储了由MPEG2/AVS/H.264三个标准得到的反离散余弦变换系数矩阵算出的表值;
累加移位模块是完成对每次查出的表值累加移位的模块,并且所有累加移位寄存器在每次输入不同的8个数据前其中数据初始化为0;
后处理模块是完成对8个累加移位模块的输出进行蝶形运算并把结果按要求形式输出给转置RAM的模块。
所述的转置RAM是一个16x64x2的双口RAM,通过读写地址的顺序关系完成8x8转置。
所述的一个列变换运算模块是指完成一次一维8x8反离散余弦变换的模块。它由一个取数据模块,16个不同查找表,8个累加移位模块和一个后处理模块组成。列变换的取数据模块,16个不同查找表,8个累加移位模块与行变换运算模块中的一样。列变换的后处理模块除了完成对8个累加移位模块的输出进行蝶形运算外,还要把结果按照要求输出给在视频解码***中反离散余弦变换模块的后级模块。
下面结合图2和图3,对本实施例进一步详细描述:
本实施例处理的象素块大小为8x8,处理过程简述如下:
第一步,从视频解码***中反离散余弦变换装置的前级装置接收预测残差变换系数。
第二步,对输入的预测残差系数进行一次8x8行变换。如图2所示,行变换运算模块在行变换控制模块的控制下读取预测残差系数开始进行一次一维8x8反离散余弦变换。
如图3所示,步骤一,初始化8个累加移位寄存器mac_reg0到mac_reg7的数据为0。
步骤二,行变换的取数据模块中的8个16比特接收寄存器顺序接收8个预测残差的变换系数X0、X1、X2、……、X6、X7后,把这8个数据放到另外8个16比特索引产生寄存器中。
步骤三,每个索引产生寄存器收到数据后,开始一个时钟周期移出2比特二进制数据并完成移位操作。8个索引产生寄存器的输出按照如下要求组成4组不同的索引值进入16个查找表模块。索引值按如下方式求得:
偶类低地址索引值:idx_l_even={X0[0],X2[0],X4[0],X6[0]};
偶类高地址索引值:idx_h_even={X0[1],X2[1],X4[1],X6[1]};
奇类低地址索引值:idx_l_odd={X1[0],X3[0],X5[0],X7[0]};
奇类高地址索引值:idx_h_odd={X1[1],X3[1],X5[1],X7[1]}。
其中I={X0[0],X2[0],X4[0],X6[0]}表示取X0[0],X2[0],X4[0],X6[0]的第0个二进制位,组成一个4比特数据I。X0[0]为I的最高位。
步骤四,对8个索引产生寄存器的数据进行逻辑右移2位后再存入原索引产生寄存器中。
步骤五,步骤三产生的索引值送入对应的查找表中得到相应的查找表结果。
所述的对应的查找表,是指:16个查找表和索引值对应的分为四类:偶类低地址查找表、偶类高地址查找表、奇类低地址查找表和奇类高地址查找表。分类方法如下:
首先16个查找表分为两类:偶类查找表,奇类查找表。偶类查找表表值由MPEG2、AVS和H.264标准中得到的反离散余弦变换系数矩阵的偶数列系数得到。奇类查找表表值由MPEG2、AVS和H.264标准中得到的反离散余弦变换系数矩阵的奇数列系数得到。偶类查找表又分为偶类高址查找表和偶类低址查找表。偶类高址查找表输入的索引值是由输入的预测残差变换系数的二进制第1位组成。偶类低址查找表输入的索引值是由输入的预测残差变换系数的二进制第0位组成。同偶类查找表的分类依据一样,奇类查找表也分为奇类高址查找表和奇类低址查找表。由反离散余弦变换系数矩阵相同列产生的高址查找表表值比低址查找表相应表值乘以2。同时当索引值是由输入的预测残差系数的符号位组成,查找表输出的结果是表值的相反数。反离散余弦变换系数矩阵的一列系数对应一套查找表表值。
如图4所示,表值由反离散余弦变换系数矩阵一列系数算出的一组高址和低址查找表的结构图。
偶类或奇类的高地址查找表表值计算方法:当cj0,cj1,cj2,cj3分别为:1,1,1,1;1,1,1,-1;1,1,-1,1;1,1,-1,-1;1,-1,1,1;1,-1,1,-1;1,-1,-1,1;1,-1,-1,-1时,按如下式子算出相应表值:
AVS/H.264:(a0jcj0+a1jcj1+a2jcj2+a3jcj3)×214;
MPEG2:(a0jcj0+a1jcj1+a2jcj2+a3jcj3)。
其中a0j到a3j表示四个反离散余弦变换系数矩阵中第j列的第0到第3行4个数据。当j=0时,该查找表就是偶类高地址查找表0。偶类低低地址查找表0的表值是偶类高地址查找表0对应索引表值的一半。如此得到两个查找表表值。同理,当j=0到7时可以得到16组不同表值的查找表。
步骤六,步骤五中得到的16个查找表结果并行进入对应的8个累加移位单元中进行累加移位。
所述的对应关系,是指:在步骤五中j=0得到的两个查找表对应着累加移位寄存器mac_reg0;j=1时得到的两个查找表对应着mac_reg1;j=2时对应着mac_reg2;……;j=7时对应着mac_reg7。
累加移位单元中数据与所对应的高地址查表和低地址查找表表值相加,并把相加结果右移两位再存入累加移位单元中。当输入的预测残差系数符号位作为索引值的查找表结果到达时,给累加移位寄存器不仅要做相应的累加移位操作,还要对每个累加移位结果加上一个初始值,并把加上初始值的累加移位结果再存入累加移位寄存器中。该初始值由反离散余弦系数矩阵计算产生。每列系数产生一个初始值。
所述的初始值按计算。其中aij为四个反离散余弦系数矩阵的第i行、第j列。j=0时算得初值对应着累加移位寄存器mac_reg0;j=1时对应着mac_reg1;……j=7时对应着mac_reg7。
步骤七,重复步骤一到步骤六8次,移位累加单元开始并行输出8点累加移位结果,并把累加结果送入后处理单元。后处理单元在完成对这8点数据的蝶形运算后得到一次一维8x8反离散余弦变换的8点数据。蝶形运算按如下方式进行:
pos_reg0=mac_reg0-mac_reg7;
pos_reg1=mac_reg1+mac_reg6;
pos_reg2=mac_reg2-mac_reg5;
pos_reg3=mac_reg3+mac_reg4;
pos_reg4=mac_reg4-mac_reg3;
pos_reg5=mac_reg5+mac_reg2;
pos_reg6=mac_reg6-mac_reg1;
pos_reg7=mac reg7+mac_reg0。
如此运算再对pos_reg0到pos_reg1按照不同视频标准进行相应输出就得到8个一维8x8反离散余弦变换结果。
在图2中,8x8预测残差系数矩阵完成一次行变换后得到的结果按自然顺序写入转置RAM中,列变换运算模块按如下的地址映射读取转置RAM中的行变换结果完成一次8x8矩阵转置:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
0 | 1 | 2 | 3 | 16 | 17 | 18 | 19 |
4 | 5 | 6 | 7 | 20 | 21 | 22 | 23 |
8 | 9 | 10 | 11 | 24 | 25 | 26 | 27 |
12 | 13 | 14 | 15 | 28 | 29 | 30 | 31 |
32 | 33 | 34 | 35 | 48 | 49 | 50 | 51 |
36 | 37 | 38 | 39 | 52 | 53 | 54 | 55 |
40 | 41 | 42 | 43 | 56 | 57 | 58 | 59 |
44 | 45 | 46 | 47 | 60 | 61 | 62 | 63 |
如果当前进行的是MPEG2或AVS或H.264标准中规定的8x8反离散余弦变换时按左面映射关系进行转置操作。0到63为行变换模块按自然顺序写转置RAM地址。列变换运算模块读取时从第1列开始自上而下读取数据即:0、8、16、24、32、40、48、56。读完第1列后依次按读第1列方式读取第2列到第7列数据。如果当前进行的是H.264标准中规定的4x4反离散余弦变换时按右面映射关系进行转置操作。0到63依然为行变换模块按自然顺序写转置RAM地址。列变换运算模块读取时从第1列开始自上而下读取第0行到第3行数据。然后依次按读第1列方式读取第2列到第7列的第0行到第3行数据。当读完第1列到第7列的第0行到第3行数据时,开始读取第1列的第4行到第7行数据即:32、36、40、44。读完第1列的第4行到第7行数据后,按照读取第1列的第4行到第7行数据的方法依次读取第2列到第7列的第4行到第7行数据。如此完成转置操作。
列变换运算模块从转置RAM中读出行变换结果后完成一次一维8x8反离散余弦变换的方法和步骤与行变换运算模块相同。列变换运算模块在后处理模块部分,对蝶形运算结果根据不同视频标准进行相应右移后开始输出,输出就是反离散余弦变换的结果预测残差。
本实施例通过对按照MPEG2、AVS和H.264标准规定压缩的12个高清视频码流进行测试,可以顺利完成相应标准规定的反离散余弦变换操作。本发明所提供的装置可以很好的兼容MPEG2、AVS和H.264标准规定的不同反离散余弦变换。并且能保证平均1个时钟周期处理完1个预测残差变换系数,即满足高清视频解码时的实时解码要求。
Claims (9)
1.一种视频解码过程中反离散余弦变换的硬件实现装置,其特征在于包括行变换运算模块、行变换控制模块、列变换运算模块、列变换控制模块和转置RAM,其中:
行变换运算模块接收反量化后的预测残差变换系数,对预测残差变换系数通过查找表、累加移位处理完成一次8x8的反离散余弦变换,并把得到的行变换输出送给转置RAM;
所述的查找表是指16个存储了由MPEG2、AVS和H.264三个标准得到的反离散余弦变换系数矩阵算出的不同的表值;
列变换运算模块从转置RAM读出已经转置的8x8行变换输出,对行变换结果通过查找表、累加移位处理完成一次8x8的反离散余弦变换,得到反变换结果,即8x8个预测残差;
行变换控制模块控制行变换运算模块接收数据,以及完成一次8x8反离散余弦变换和把行变换结果存进转置RAM中;
列变换控制模块控制列变换运算模块从转置RAM中读出转置的行变换结果,以及完成一次8x8反离散余弦变换和把最终反离散余弦变换结果输出;
所述的一个行变换运算模块由一个取数据模块、16个不同的查找表、8个累加移位模块和一个后处理模块组成,其中:
取数据模块是在行变换控制模块的控制下完成一次读取8个16比特数据并产生查找表索引值的功能;
累加移位模块是完成对每次查出的表值累加移位的模块,并且其中所有累加移位寄存器在每次输入不同的8个数据前,其中数据初始化为0;
后处理模块是完成对8个累加移位模块的输出进行蝶形运算并把结果按要求形式输出给转置RAM的模块。
2.根据权利要求1所述的视频解码过程中反离散余弦变换的硬件实现装置,其特征是,所述的转置RAM是一个16x64x2的双口RAM,通过读写地址的顺序关系完成8x8转置。
3.根据权利要求1所述的视频解码过程中反离散余弦变换的硬件实现装置,其特征是,所述的一个列变换运算模块由一个取数据模块、16个不同查找表、8个累加移位模块和一个后处理模块组成,列变换运算模块的取数据模块、16个不同查找表、8个累加移位模块与行变换运算模块中的相同,列变换运算模块的后处理模块除了完成对8个累加移位模块的输出进行蝶形运算外,还要把结果按照要求输出给在视频解码***中反离散余弦变换模块的后级模块。
4.根据权利要求1所述的视频解码过程中反离散余弦变换的硬件实现装置,其特征是,所述的累加移位寄存器,是指:用于把一次一维8x8反离散余弦变换的中间结果与当前累加移位寄存器中的数据相加,并把相加结果右移两位后再存入累加移位寄存器的寄存器。
5.一种视频解码过程中反离散余弦变换的硬件实现方法,其特征在于,包括以下步骤:
第一步,从视频解码***中反离散余弦变换装置的前级装置接收预测残差变换系数;
第二步,对输入的预测残差变换系数采用查找表、累加移位寄存器和行变换后处理模块进行一次8x8行变换,即一次一维的8x8反离散余弦变换,得到8x8个行变换结果;
所述的查找表是指16个存储了由MPEG2、AVS和H.264三个标准得到的反离散余弦变换系数矩阵算出的不同的表值;
第三步,将8x8个行变换输出结果按0到63的自然顺序存入转置RAM中,后续列变换时,以转置的地址顺序读入行变换结果;
第四步,对转置后的结果采用查找表、累加移位寄存器和行变换后处理模块进行一次8x8列变换,即一次一维8x8反离散余弦变换;
第五步,输出列变换结果,即是对视频图像进行预测编码而得到的残差值。
6.根据权利要求5所述的视频解码过程中反离散余弦变换的硬件实现方法,其特征是,所述的一次一维8x8反离散余弦变换,包括如下步骤:
步骤一,初始化8个累加移位寄存器中数据为0;
步骤二,读入8个16比特预测残差变换系数;
步骤三,从8个预测残差变换系数产生查找表的索引值;
步骤四,对读入的每个预测残差变换系数进行算术右移两位操作;
步骤五,步骤三产生的查找表索引值送入查找表中,得到查找表结果;
步骤六,把从查找表得到的结果与累加移位寄存器中的数据相加,并把相加结果算术右移2位后再存入累加移位寄存器中;
步骤七,重复步骤一到步骤六8次;
步骤八,把累加移位寄存器中的数据与初始值相加,并把得到的相加结果再存入累加移位寄存器中;
步骤九,对8个累加移位寄存器中的数据进行蝶形运算,蝶形运算的结果就是8个一维反离散余弦变换结果;
步骤十,重复步骤一到步骤九8次,完成一次一维8x8反离散余弦变换,得到64个一次一维8x8反离散余弦变换的输出。
7.根据权利要求6所述的视频解码过程中反离散余弦变换的硬件实现方法,其特征是,步骤八中,所述的初始值,是指:对从MPEG2、AVS和H.264标准中得到的反离散余弦变换系数矩阵进行计算得到的常数。
8.根据权利要求5或6所述的视频解码过程中反离散余弦变换的硬件实现方法,其特征是,所述的预测残差变换系数,是指:在视频编码时,预测编码产生的预测残差经过变换编码得到的变换系数。
9.根据权利要求5或6所述的视频解码过程中反离散余弦变换的硬件实现方法,其特征是,所述的查找表,其表值是通过对8x8反离散余弦变换系数矩阵进行计算得到的,其中8x8反离散余弦变换系数矩阵是由MPEG2、AVS和H.264标准中规定的反离散余弦变换方法推导出的8x8矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810041209 CN101330616B (zh) | 2008-07-31 | 2008-07-31 | 视频解码过程中反离散余弦变换的硬件实现装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810041209 CN101330616B (zh) | 2008-07-31 | 2008-07-31 | 视频解码过程中反离散余弦变换的硬件实现装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101330616A CN101330616A (zh) | 2008-12-24 |
CN101330616B true CN101330616B (zh) | 2011-04-13 |
Family
ID=40206171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810041209 Expired - Fee Related CN101330616B (zh) | 2008-07-31 | 2008-07-31 | 视频解码过程中反离散余弦变换的硬件实现装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101330616B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110849B2 (en) | 2009-04-15 | 2015-08-18 | Qualcomm Incorporated | Computing even-sized discrete cosine transforms |
US9069713B2 (en) | 2009-06-05 | 2015-06-30 | Qualcomm Incorporated | 4X4 transform for media coding |
US9118898B2 (en) | 2009-06-24 | 2015-08-25 | Qualcomm Incorporated | 8-point transform for media data coding |
US9081733B2 (en) | 2009-06-24 | 2015-07-14 | Qualcomm Incorporated | 16-point transform for media data coding |
US9075757B2 (en) | 2009-06-24 | 2015-07-07 | Qualcomm Incorporated | 16-point transform for media data coding |
US8451904B2 (en) * | 2009-06-24 | 2013-05-28 | Qualcomm Incorporated | 8-point transform for media data coding |
CN102006478A (zh) * | 2010-11-29 | 2011-04-06 | 青岛海信信芯科技有限公司 | 一种视频解码的反变换方法及装置 |
CN102547263B (zh) * | 2010-12-27 | 2016-09-14 | 联芯科技有限公司 | 可变复杂度的离散余弦逆变换查表快速算法 |
US9824066B2 (en) | 2011-01-10 | 2017-11-21 | Qualcomm Incorporated | 32-point transform for media data coding |
CN102404569B (zh) * | 2011-11-08 | 2014-01-08 | 复旦大学 | 可用于多种视频标准、多尺寸二维整数余弦反变换的通用方法 |
CN103686173B (zh) | 2014-01-09 | 2017-03-01 | 英特尔公司 | 变换与反变换电路 |
CN104093032A (zh) * | 2014-07-16 | 2014-10-08 | 苏州博联科技有限公司 | 一种低功耗二维fdct变换方法 |
US11449577B2 (en) * | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
-
2008
- 2008-07-31 CN CN 200810041209 patent/CN101330616B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101330616A (zh) | 2008-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101330616B (zh) | 视频解码过程中反离散余弦变换的硬件实现装置及方法 | |
Shen et al. | A unified 4/8/16/32-point integer IDCT architecture for multiple video coding standards | |
Ahmed et al. | N point DCT VLSI architecture for emerging HEVC standard | |
CN101796506A (zh) | 具有比例缩放式和非比例缩放式接口的变换设计 | |
CN104867165B (zh) | 一种基于变换域下采样技术的图像压缩方法 | |
CN110933445B (zh) | 一种基于系数矩阵变换的dct运算方法及其变换装置 | |
CN108200439B (zh) | 提高数字信号变换性能的方法及数字信号变换方法和装置 | |
CN102387367A (zh) | 适用于多种视频标准、多尺寸二维整数余弦变换的通用方法 | |
JP2001331474A (ja) | 単一命令複数データ指示を備えた逆離散コサイン変換の実行方法、圧縮データの伸張方法、圧縮データ信号の伸張装置、並びに、コンピュータ・プログラム製品 | |
Lo et al. | Improved SIMD architecture for high performance video processors | |
CN101646080A (zh) | 基于avs并行流水idct快速变换的方法和装置 | |
CN101640791A (zh) | 一种解码方法、装置和解码器 | |
CN104811738B (zh) | 基于资源共享的低开销多标准8×8一维离散余弦变换电路 | |
Paim et al. | Using adder compressors for power-efficient 2-D approximate Discrete Tchebichef Transform | |
Agha et al. | A high throughput two-dimensional discrete cosine transform and MPEG4 motion estimation using vector coprocessor | |
CN110737869B (zh) | Dct/idct乘法器电路优化方法及应用 | |
CN1874510A (zh) | 一种用于视频编码的整数离散余弦变换方法 | |
CN101562744B (zh) | 二维反变换装置 | |
CN103327332B (zh) | 一种hevc标准中8×8idct变换的实现方法 | |
CN206962992U (zh) | 用于数字视频编解码的3乘3整数dct变换量化器 | |
CN101316367B (zh) | 一种视频编解码标准中的二维反变换方法及其实现电路 | |
CN100388316C (zh) | 高精度的无乘法器的数字余弦变换电路及其变换方法 | |
CN109451307B (zh) | 一种基于近似系数的一维dct运算方法和dct变换装置 | |
TWI402771B (zh) | 應用於多核心處理器之快速整數離散餘弦轉換方法 | |
Yashavantha Kumar et al. | Image Processing Architecture Using DTCWT Modified Distributed Algorithm for Plant Phenotyping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110413 Termination date: 20170731 |