CN1874510A - 一种用于视频编码的整数离散余弦变换方法 - Google Patents

一种用于视频编码的整数离散余弦变换方法 Download PDF

Info

Publication number
CN1874510A
CN1874510A CN 200610012161 CN200610012161A CN1874510A CN 1874510 A CN1874510 A CN 1874510A CN 200610012161 CN200610012161 CN 200610012161 CN 200610012161 A CN200610012161 A CN 200610012161A CN 1874510 A CN1874510 A CN 1874510A
Authority
CN
China
Prior art keywords
sub
matrix
discrete cosine
cosine transform
conversion
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
Application number
CN 200610012161
Other languages
English (en)
Other versions
CN100452880C (zh
Inventor
赵欣
王宇
李凤亭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2006100121618A priority Critical patent/CN100452880C/zh
Publication of CN1874510A publication Critical patent/CN1874510A/zh
Application granted granted Critical
Publication of CN100452880C publication Critical patent/CN100452880C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提出的用于视频编码的整数离散余弦变换方法,属于视频传输技术领域。该方法首先将整数离散余弦变换核中的每个元素进行等效拆分,得到N个矩阵,将N个矩阵分组相加得到M个子变换核,根据M个子变换核,计算M个子变换,并按照下标由低到高的顺序对M个子变换结果进行合并,将第一个处理单元的变换结果DXT矩阵作为第二个处理单元的Y矩阵,重复前述步骤,得到整数离散余弦变换系数。本发明方法的优点是,利用整数DCT变换的截断操作,在截断操作进行之前去掉部分计算冗余,因此减小了PU中的加法器的整体位宽,节省了硬件资源。

Description

一种用于视频编码的整数离散余弦变换方法
技术领域
本发明涉及一种用于视频编码的整数离散余弦变换方法,属于视频传输技术领域。
背景技术
在已有技术中,名称为“Development of integer cosine transforms by theprinciple of dyadic symmetry”(Proc.Inst.Elect.Eng.,Part1,vol.136,Aug.1989,pp.276-282.)的论文公开了可以用于视频编码的用于视频编码的整数离散余弦变换方法,其原理是:离散余弦变换的数学式为F=DXDT,其中D,X为N×N的矩阵,DT为D的转置,D称为该变换的变换核。对于整数离散余弦变换而言,D的元素全部为整数,D的大小和数值不唯一,比如应用在H.264视频编解码标准的基准档次当中的变换核为 1 1 1 1 2 1 - 1 - 2 1 - 1 - 1 1 1 - 2 2 - 1 , 而在数字音视频编解码标准(以下简称AVS)当中的变换核为 8 8 8 8 8 8 8 8 10 9 6 2 - 2 - 6 - 9 - 10 10 4 - 4 - 10 - 10 - 4 4 10 9 - 2 - 10 - 6 6 10 2 - 9 8 - 8 - 8 8 8 - 8 - 8 8 6 - 10 2 9 - 9 - 2 10 - 6 4 - 10 10 - 4 - 4 10 - 10 4 2 - 6 9 - 10 10 - 9 6 - 2 .
传统的快速实现上述整数离散余弦变换的方法,是采用一种流图形式的蝶形计算结构来计算1维的整数离散余弦变换(以下简称DCT),然后通过两个这样结构相同的处理单元(以下简称PU)的串连来实现整个二维整数DCT变换,称之为行列分解的方法,其流程框图如图1所示,用数学式描述为F=DXDT=D(DXT)T,一个PU所完成的计算就是DXT,也就是一维的整数DCT变换,那么整个变换可以通过两个PU串联连接来实现。因此整数离散余弦变换的核心计算就是PU,PU所完成的数学运算包括:矩阵转置和矩阵相乘,对于第一个PU,可以通过将输入矩阵按照转置后的矩阵输入,而对于第二个PU,需要一个专门计算转置的运算单元。
上述传统的DCT算法中,以AVS所采用的变换核为例,基于蝶形结构的实现流图如图2所示:
x0~x7为XT的一列数据,整个流图实现了X的一列数据与变换核相乘的结果X0~X7,,分别将XT的8列数据经过上面的流图计算,可以得到一个PU的计算结果DXT。这种结构利于用硬件实现,因为乘法操作转化为小整数的乘法,小整数的乘法可以用移位操作来实现。
已有传统蝶形结构的缺点是,由于整数变换核元素全部为整数,而标准的离散余弦变换核为正交矩阵,元素的绝对值全部小于1,因此与整数核相乘会有较大的数据增益,为了抵消这一增益需要额外的截断操作,由于数据采用二进制表示,截断操作具体指将数据二进制表示的地若干位直接舍弃,这样的操作等效为对数据进行2的某次幂的除法。截断操作带来的结果是数据二进制表示的低若干位被舍弃,如图1所示,每个PU后面都有一个右移的操作。第一个PU右移a比特,第二个PU右移b比特,以AVS所采用的变换核为例,a和b的数值满足a+b=9,因为该整数变换核和标准的浮点数变换核相比,增益为2的9次幂,这个数值因为不同的变换核而不同。由于右移操作导致计算结果的低若干位的数据被舍弃,因此PU当中凡是有关这些低位比特的计算都是冗余的,这些冗余的计算导致硬件资源的浪费,但是由于传统蝶形结构所固有的特性,这些冗余无法很好地单独抽取出来,对硬件资源的有效利用不利。
发明内容
本发明的目的是提出一种用于视频编码的整数离散余弦变换方法,针对已有技术的缺点,在PU的计算过程当中直接去除部分计算冗余,以便节约硬件资源。
本发明提出的用于视频编码的整数离散余弦变换方法,包括以下步骤:
(1)将整数离散余弦变换核中的每个元素进行等效拆分,得到N个矩阵,D0,D1,……DN-1,则原整数离散余弦变换核D的表达式D=(D0+D1+…+DM-1);
(2)将上述N个矩阵分组相加得到M个子变换核H0,H1,HM-1,其中每个子变换核为一组N矩阵的和;
(3)根据上述M个子变换核,计算M个子变换H0XT,H1XT,H2XT…HM-1XT,并按照下标由低到高的顺序对M个子变换结果进行合并,得到第一个处理单元的变换结果,即DXT=(H0XT+H1XT+…+HM-1XT)T,其中X为视频帧亮度块矩阵,XT是X的转置;
(4)将上述第一个处理单元的变换结果DXT矩阵作为第二个处理单元的Y矩阵,重复步骤(1)~(3),得到DYT,则整数离散余弦变换系数为:F=DXDT=(H0+H1+…HM-1)X(H0+H1+…+HM-1)T=(H0+H1+…+HM-1)(H0XT+H1XT+…+HM-1XT)T
上述方法中,对整数离散余弦变换核中的每个元素进行等效拆分的方法包括以下步骤:
(1)按照变换核中整数元素的二进制表示,拆分为多个2的幂的和;
(2)按照从低次幂到高次幂的顺序,将整数离散余弦变换核中各元素的i次幂的拆分项组合成矩阵Di,其中0≤i≤N-1。
上述方法中,对M个子变换进行合并的方法为:
(1)对M个子变换中的每个子变换,分别提出2的j(0≤j≤N-1)次幂的公因子;
(2)对H0XT和H1XT进行合并,设从H1XT中提出的公因子为2j1,若j1≤a,则只对矩阵元素二进制表示中高于j1位的部分合并,若j1>a,则只对矩阵元素二进制表示中高于a位的部分合并,合并的结果记为XTemp,其中a由待进行整数离散余弦变换核决定;
(3)将上述合并结果XTemp与H2XT按上述步骤(2)的方法进行合并,合并的结果记为XTemp
(4)重复步骤(2)和(3),依次逐个合并所有子变换,完成M个子变换的合并。
本发明提出的用于视频编码的整数离散余弦变换方法,其特点和优点是,采用一种和传统快速算法完全不同的方法,从整数变换核入手,将元素为小整数的变换核拆分为若干个子变换核,由于各个子变换核能够提出一个2的幂的公因子,因此可以利用整数DCT变换的截断操作,减小PU当中的加法器的整体位宽,节省硬件资源。与传统的蝶形结构相比,本发明方法能够单独分离出整数离散余弦变换当中的一部分计算冗余,在截断操作进行之前去除掉这些计算冗余,从而降低了PU的加法器的整体位宽,节省了硬件资源,与已有的蝶形结构相比,本发明方法采用可编程门阵列(FPGA)或者可定制集成电路(ASIC)实现,硬件资源可以节省10%以上。
附图说明
图1是已有的采用行列分解的结构实现整数DCT的流程框图。
图2是传统的实现AVS所采用的DCT的流图结构图。
图3是已有的实现转置运算所采用的寄存器堆结构框图。
图4是采用本发明方法实现DCT的部分流图结构图。
图5是图2所示的流图结构图中的一部分。
图6是用于实现本发明DCT的硬件结构图。
图7和图8是本发明方法与已有方法所采用的加法器资源的效果比较图。
具体实施方式
本发明提出的用于视频编码的整数离散余弦变换方法,首先将整数离散余弦变换核中的每个元素进行等效拆分,得到N个矩阵,D0,D1,……DN-1,则原整数离散余弦变换核D的表达式D=(D0+D1+…+DM-1);将上述N个矩阵分组相加得到M个子变换核H0,H1,HM-1,其中每个子变换核为一组N矩阵的和;根据上述M个子变换核,计算M个子变换H0XT,H1XT,H2XT…HM-1XT,并按照下标由低到高的顺序对M个子变换结果进行合并,得到第一个处理单元的变换结果,即DXT=(H0XT+H1XT+…+HM-1XT)T,其中X为视频帧亮度块矩阵,XT是X的转置;将上述第一个处理单元的变换结果DXT矩阵作为第二个处理单元的Y矩阵,重复上述步骤,得到DYT,则整数离散余弦变换系数为:F=DXDT=(H0+H1+…HM-1)X(H0+H1+…+HM-1)T=(H0+H1+…+HM-1)(H0XT+H1XT+…+HM-1XT)T
上述方法中,对整数离散余弦变换核中的每个元素进行等效拆分的方法可以包括以下步骤:(1)按照变换核中整数元素的二进制表示,拆分为多个2的幂的和;(2)按照从低次幂到高次幂的顺序,将整数离散余弦变换核中各元素的i次幂的拆分项组合成矩阵Di,其中0≤i≤N-1。
上述方法中,对M个子变换进行合并的方法可以为:(1)对M个子变换中的每个子变换,分别提出2的j(0≤j≤N-1)次幂的公因子;(2)对H0XT和H1XT进行合并,设从H1XT中提出的公因子为2j1,若j1≤a,则只对矩阵元素二进制表示中高于j1位的部分合并,若j1>a,则只对矩阵元素二进制表示中高于a位的部分合并,合并的结果记为XTemp,其中a由待进行整数离散余弦变换核决定;(3)将上述合并结果XTemp与H2XT按上述步骤(2)的方法进行合并,合并的结果记为XTemp;(4)重复步骤(2)和(3),依次逐个合并所有子变换,完成M个子变换的合并。
本发明属于图像编码和图像处理领域,特别应用于整数离散余弦变换的快速实现。
本发明中DCT变换以8点一维DCT变换为基本单元,采用行列分解的结构实现二维DCT变换。行列分解的数学表示为F=DXDT=D(DXT)T,即以DXT为一个PU,一个PU完成的功能是,对将输入的矩阵转置,并左乘矩阵D,通过两个PU的串行即可通过一维DCT变换实现二维DCT变换,如图1所示。虽然两个PU的数学运算的内容相同,但是它们的转置操作有所不同,第一个PU的转置操作可以通过将输入按照转置后的矩阵输入,而第二个PU必须有专门的转置运算单元,本发明所采用的转置运算单元是通过已有技术中如图3所示的寄存器堆来实现的。
本发明所针对的是整数DCT变换,整数DCT变换的变换核是由整数构成,便于使用加法器和移位器来硬件实现。
对于任何一个整数变换核,特别是小整数变换核,本发明将其中的每个元素进行等效的拆分,拆分的方法是按照该整数元素的二进制表示,拆分为若干2的某次幂的加法和,比如元素6可以拆分为21+22。按照从低次幂到高次幂的顺序,将变换核的元素的i次幂的拆分项组合成矩阵Di,则Di仅含有21和0元素。按照上面的操作得到N个矩阵D0,D1,……DN-1,将这N个矩阵再次分组相加得到M个新的子变换核H0,H1,Hm-1,其中每个变换核的元素为组合成该组的矩阵的对应位置的元素的和。
得到的这M个子变换核H0,H1,HM-1,在本发明称为子变换核。则整个变换的结果为这M个子变换的结果之和,即
F=DXDT=(H0+H1+…+HM-1)X(H0+H1+…+HM-1)T
 =(H0+H1+…+HM-1)(H0XT+H1XT+…+HM-1XT)T
其中对于H0XT,H1XT…HM-1XT,本发明定义为子变换。
对于每个子变换可以提出一个2的j(0≤j≤N-1)次幂的公因子,提出这个公因子,可以降低变换核元素的绝对值大小,使得子变换核的元素都在一个小的范围内,这样可以大大简化子变换的计算,而且可以利用截断操作对加法器的输入位宽作一定程度的减小。减小输入位宽的方法如下描述:
假设截断操作为对结果二进制表示的最低a位进行截断。
采用行列分解的结构实现本发明所提出的整数DCT算法,在各个子变换的结果计算出来之后需要对结果进行合并,首先合并H0XT和H1XT,合并的结果再继续与H2XT合并,重复这个过程,直到全部的子变换被合并完毕。
由于H1XT可以提出公因子2j1,那么在对两个子变换结果的对应元素相加的时候,元素的二进制表示的低j1位的相加不会出现溢出,如果j1≤a,那么可以直接将H0XT的结果的低j1位舍弃不进行相加操作,如果j1>a,那么可以直接将H0XT的结果的低a位舍弃不进行相加,合并的结果记为XTemp
如上描述对前两个子变换进行合并,合并的结果记为XTemp,。之后再将XTemp与子变换H2XT进行合并,子变换H2XT可以提出公因子2j2,按照和上面同样的过程,得到合并结果,仍然记为XTemp
之后再将XTemp与剩余的子变换依次合并,直到全部的子变换被合并完毕得到最终的结果为H0XT+H1XT+…+HM-1XT,即DXT,记为Y矩阵。采用行列分解的结构进行正变换,那么需要将上面第一个PU的计算结果DXT作为Y矩阵再次输入到结构相同的第二个PU上,计算DYT,经过第二个PU的计算,才能完成一个完整的整数DCT变换。
图4所示,为本发明所提出的方法的流图描述的部分实现结构,图5所示为传统蝶形运算相同部分的实现形式,将两者作比较可以看出,本发明所提出的算法数据流动的方向上位宽的增加比传统蝶形算法要小。图4和图5仅给出了一部分变换系数的流图形式作为比较,是因为本发明所提出的算法和传统蝶形算法结构上有较大差异,不便于用流图的形式描述,否则会比较杂乱,不利于说明算法的差异。
以下介绍本发明方法的一个实施例:
以AVS视频编码标准所采用的整数变换核为例来说明本发明所提出的基于变换核位平面分解的快速整数DCT实现算法。
8 . 8 8 8 8 8 8 8 10 9 6 2 - 2 - 6 - 9 - 10 10 4 - 4 - 10 - 10 - 4 4 10 9 - 2 - 10 - 6 6 10 2 - 9 8 - 8 - 8 8 8 - 8 - 8 8 6 - 10 2 9 - 9 - 2 10 - 6 4 - 10 10 - 4 - 4 10 - 10 4 2 - 6 9 - 10 10 - 9 6 - 2
该整数变换核的元素全部为绝对值小于16的整数,二进制表示的第4位以上全部为零,因此可以将该变换核拆分为四个矩阵(其中元素6和-6较为特殊,它们各自可以有两种不同的拆分方法:6=4+2=8-2,-6=-4-2=-8+2,经过实践的比较发现6=8-2,-6=-8+2这种拆分形式较为有利)
0 0 0 0 0 0 0 0 0 1 0 0 0 0 - 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 0 0 0 1 - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 - 1 0 0 , 0 0 0 0 0 0 0 0 2 0 - 2 2 - 2 2 0 - 2 0 - 2 - 2 2 - 2 2 2 0 0 0 0 0 0 0 0 0 - 2 - 2 2 0 0 - 2 2 2 - 2 - 2 2 0 0 - 2 2 2 0 - 2 2 0 0 2 - 2 0 2 2 0 - 2 2 0 - 2 - 2
0 0 0 0 0 0 0 0 0 0 4 0 0 - 4 0 0 0 4 - 4 0 0 - 4 4 0 0 0 0 - 4 4 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 - 4 4 0 0 - 4 - 4 0 0 4 0 - 4 0 - 0 0 0 4 0 , 8 8 8 8 8 8 8 8 8 8 8 0 0 - 8 - 8 - 8 8 0 0 - 8 - 8 0 0 8 8 0 - 8 - 8 8 8 0 - 8 8 - 8 - 8 8 8 - 8 - 8 - 8 8 - 8 0 8 - 8 0 8 - 8 0 - 8 8 0 0 8 - 8 0 0 - 8 8 - 8 8 - 8 8 0
其中,上面两个矩阵可以合并为
H 0 = 0 0 0 0 0 0 0 0 2 1 - 2 2 - 2 2 - 1 - 2 2 0 0 - 2 - 2 0 0 2 1 - 2 - 2 2 - 2 2 2 - 1 0 0 0 0 0 0 0 0 - 2 - 2 2 1 - 1 - 2 2 2 0 - 2 2 0 0 2 - 2 0 2 2 1 - 2 2 - 1 - 2 - 2 ,
下两个矩阵可以合并为
H 1 = 8 8 8 8 8 8 8 8 8 8 8 0 0 - 8 - 8 - 8 8 4 - 4 - 8 - 8 - 4 4 8 8 0 - 8 - 8 8 8 0 - 8 8 - 8 - 8 8 8 - 8 - 8 8 8 - 8 0 8 - 8 0 8 - 8 4 - 8 8 - 4 - 4 8 - 8 4 0 - 8 8 - 8 8 - 8 8 0
这样一个PU被分解为DXT=H0XT+H1XT,其中H1亦可以写作
H 1 = 4 × 2 2 2 2 2 2 2 2 2 2 2 0 0 - 2 - 2 - 2 2 1 - 1 - 2 - 2 - 1 1 2 2 0 - 2 - 2 2 2 0 - 2 2 - 2 - 2 2 2 - 2 - 2 2 2 - 2 0 2 - 2 0 2 - 2 1 - 2 2 - 1 - 1 2 - 2 1 0 - 2 2 - 2 2 - 2 2 0 ,
这样一个PU的两个子变换核就仅含-2,-1,1,2四个整数,由于系数之间的相近,运算的重复性就会加大,加法器的复用度可以充分地利用。
根据整数DCT变换核的左右对称性,可以将两个子变换H0XT和H1XT的变换核简化为
H 0 = 0 0 0 0 2 1 - 2 2 2 0 0 - 2 1 - 2 - 2 2 0 0 0 0 - 2 - 2 2 1 0 - 2 2 0 2 2 1 - 2 , H 1 = 4 × 2 2 2 2 2 2 2 0 2 1 - 1 - 2 2 0 - 2 - 2 2 - 2 - 2 2 2 - 2 0 2 1 - 2 2 - 1 0 - 2 2 - 2
那么两个子变换的偶数行输入相同,奇数行输入相同,因此两个子变换的偶数行之间和奇数行之间也可以实现加法器复用,以H0XT和H1XT的奇数行为例,H0XT可以分解为奇数行变换H0eXp T和偶数行变换H0oXm T,其中H0eXp T的变换核对应着H0的奇数行元素,H0oXm T的变换核对应着H0的偶数行元素,两个变换的结果对应为H0XT的奇数行结果和偶数行结果,对于H1XT也有同样的结论。如上面的描述,H0eXp T和H1eXp T由于输入相同,因此可以加法器复用。
H 0 e = 0 0 0 0 2 0 0 - 2 0 0 0 0 0 - 2 2 0 , H 1 e = 4 × 2 2 2 2 2 1 - 1 - 2 2 - 2 - 2 2 1 - 2 2 - 1 , X p T = X i 0 + X i 7 X i 1 + X i 6 X i 2 + X i 5 X i 3 + X i 4 ,
观察H0e和H1e可以发现,这两个变换核的计算冗余度很大,可以先计算Xp T[0]±Xp T[3]和Xp T[1]±Xp T[2],通过这四个计算结果的组合加减就可以得到H0eXp T和H1eXp T计算结果。
同样对于
H 0 o = 2 1 - 2 2 1 - 2 - 2 2 - 2 - 2 2 1 2 2 1 - 2 , H 1 o = 4 × 2 2 2 0 2 0 - 2 - 2 2 - 2 0 2 0 - 2 2 - 2 = 8 × 1 1 1 0 1 0 - 1 - 1 1 - 1 0 1 0 - 1 1 - 1 , X m T = X i 0 - X i 7 X i 1 - X i 6 X i 2 - X i 5 X i 3 - X i 4 , 同样可以利用这两个变换核的计算冗余度来压缩加法器的使用数量,而且由于H1e可以提出公因子4,H1o可以提出公因子8,这对于利用视频编码当中的截断处理来减少加法器输入位宽非常有用,因为在视频编码的DCT变换,如果是基于行列分解,第一个PU之后,会对变换结果的最低3bit进行截断,而由于H1e可以提出公因子4,H1o可以提出公因子8,因此在进行子变换计算结果合并的时候,可以把3bit截断一起考虑,H0eXp T+H1eXp T的低2位加法不会出现溢出,因此可以直接忽略这两位,减小加法器的输入位宽,H0oXm T+H1oXm T的低3位加法不会出现溢出,因此可以直接忽略这三位,减小加法器的输入位宽。另外注意到H0e的第一行和第三行元素全部为零,因此在子变换合并的时候对于这两行的合并,不需要额外的加法器。
经过上面描述的两个PU的串联,可以完成本发明的方法,实现快速无损的整数DCT变换。
采用本发明中提到的基于变换核位平面分解的算法,来实现符合AVS标准的整数DCT变换,可以统计得到本发明所提出的算法消耗的主要硬件资源:
名称 数目
8bit加法器 8
9bit加法器 8
10bit加法器 10
11bit加法器 10
12bit加法器 2
以及传统的蝶形运算所消耗的主要硬件资源:
名称 数目
8bit加法器 8
9bit加法器 8
10bit加法器 2
11bit加法器 6
12bit加法器 4
13bit加法器 6
 14bit加法器
 15bit加法器 4
以下通过图7和图8说明本发明方法与已有技术相比,所具有的优点和效果:图7是蝶形算法,图8是本发明的方法,横轴代表加法器的输入位宽,纵轴代表使用到的数目,符合AVS标准的整数DCT变换的第一个PU有3比特的截断,而对于第二个PU有7比特的截断。可以比较看出,两种算法所采用的加法器的数目是相同的(38个),但是基于位平面分解的算法所采用的加法器集中在8,9,10,11输入,而蝶形运算从8到15不等,从而基于位平面分解的算法输入位宽整体偏低,因此如果DCT模块采用FPGA或者ASIC实现时,基于位平面分解的算法会更加节省资源。采用FPGA实现,以Xilinx VirtexIV为例,基于位平面分解的算法会节省10%以上的资源。
对于不同的整数变换核,都可以采用位平面分解的算法,但是对于不同的整数变换核,分解得到的位平面矩阵和具有最大加法器复用度的位平面分组可能会不同,但都是尽量提取大系数,降低子变换核的元素的范围,利用截断减小加法器位宽,以及调整位平面系数,使加法器的复用度尽量大,从这两个方面着手来减小对资源的开销。

Claims (3)

1、一种用于视频编码的整数离散余弦变换方法,其特征在于该方法包括以下步骤:
(1)将整数离散余弦变换核中的每个元素进行等效拆分,得到N个矩阵,D0,D1,……DN+1,则原整数离散余弦变换核D的表达式D=(D0+D1+…+DM-1);
(2)将上述N个矩阵分组相加得到M个子变换核H0,H1,HM-1,其中每个子变换核为一组N矩阵的和;
(3)根据上述M个子变换核,计算M个子变换H0XT,H1XT,H2XT…HM-1XT,并按照下标由低到高的顺序对M个子变换结果进行合并,得到第一个处理单元的变换结果,即DXT=(H0XT+H1XT+…+HM-1XT)T,其中X为视频帧亮度块矩阵,XT是X的转置;
(4)将上述第一个处理单元的变换结果DXT矩阵作为第二个处理单元的Y矩阵,重复步骤(1)~(3),得到DYT,则整数离散余弦变换系数为:F=DXDT=(H0+H1+…HM-1)X(H0+H1+…+HM-1)T=(H0+H1+…+HM-1)(H0XT+H1XT+…+HM-1XT)T
2、如权利要求1所述的方法,其特征在于其中所述的对整数离散余弦变换核中的每个元素进行等效拆分的方法包括以下步骤:
(1)按照变换核中整数元素的二进制表示,拆分为多个2的幂的和;
(2)按照从低次幂到高次幂的顺序,将整数离散余弦变换核中各元素的i次幂的拆分项组合成矩阵Di,其中0≤i≤N-1。
3、如权利要求1所述的方法,其特征在于其中所述的对M个子变换进行合并的方法为:
(1)对M个子变换中的每个子变换,分别提出2的j(0≤j≤N-1)次幂的公因子;
(2)对H0XT和H1XT进行合并,设从H1XT中提出的公因子为2j1,若j1≤a,则只对矩阵元素二进制表示中高于j1位的部分合并,若j1>a,则只对矩阵元素二进制表示中高于a位的部分合并,合并的结果记为XTemp,其中a由待进行整数离散余弦变换核决定;
(3)将上述合并结果XTemp与H2XT按上述步骤(2)的方法进行合并,合并的结果记为XTemp
(4)重复步骤(2)和(3),依次逐个合并所有子变换,完成M个子变换的合并。
CNB2006100121618A 2006-06-09 2006-06-09 一种用于视频编码的整数离散余弦变换方法 Expired - Fee Related CN100452880C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100121618A CN100452880C (zh) 2006-06-09 2006-06-09 一种用于视频编码的整数离散余弦变换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100121618A CN100452880C (zh) 2006-06-09 2006-06-09 一种用于视频编码的整数离散余弦变换方法

Publications (2)

Publication Number Publication Date
CN1874510A true CN1874510A (zh) 2006-12-06
CN100452880C CN100452880C (zh) 2009-01-14

Family

ID=37484730

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100121618A Expired - Fee Related CN100452880C (zh) 2006-06-09 2006-06-09 一种用于视频编码的整数离散余弦变换方法

Country Status (1)

Country Link
CN (1) CN100452880C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106231304A (zh) * 2016-08-30 2016-12-14 成都金本华电子有限公司 一种基于一维快速碟形算法改进的视频解码整数变换方法
CN106550267A (zh) * 2016-11-25 2017-03-29 广州酷狗计算机科技有限公司 多媒体信息解码方法及装置
CN107018420A (zh) * 2017-05-08 2017-08-04 电子科技大学 一种低功耗二维离散余弦变换方法及其电路
CN112804531A (zh) * 2021-04-12 2021-05-14 北京电信易通信息技术股份有限公司 一种基于hls构建hevc编码芯片的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8700843A (nl) * 1987-04-10 1988-11-01 Philips Nv Televisie-overdrachtsysteem met transformcoding.
US5226002A (en) * 1991-06-28 1993-07-06 Industrial Technology Research Institute Matrix multiplier circuit
US6477203B1 (en) * 1998-10-30 2002-11-05 Agilent Technologies, Inc. Signal processing distributed arithmetic architecture

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106231304A (zh) * 2016-08-30 2016-12-14 成都金本华电子有限公司 一种基于一维快速碟形算法改进的视频解码整数变换方法
CN106550267A (zh) * 2016-11-25 2017-03-29 广州酷狗计算机科技有限公司 多媒体信息解码方法及装置
CN106550267B (zh) * 2016-11-25 2019-03-29 广州酷狗计算机科技有限公司 多媒体信息解码方法及装置
CN107018420A (zh) * 2017-05-08 2017-08-04 电子科技大学 一种低功耗二维离散余弦变换方法及其电路
CN107018420B (zh) * 2017-05-08 2019-07-12 电子科技大学 一种低功耗二维离散余弦变换方法及其电路
CN112804531A (zh) * 2021-04-12 2021-05-14 北京电信易通信息技术股份有限公司 一种基于hls构建hevc编码芯片的方法

Also Published As

Publication number Publication date
CN100452880C (zh) 2009-01-14

Similar Documents

Publication Publication Date Title
CN108491926B (zh) 一种基于对数量化的低比特高效深度卷积神经网络硬件加速设计方法、模块及系统
CN101330616B (zh) 视频解码过程中反离散余弦变换的硬件实现装置及方法
CN111832719A (zh) 一种定点量化的卷积神经网络加速器计算电路
CN1735881A (zh) 用于执行计算操作的方法和系统以及一种设备
CN105183425B (zh) 一种具有高精度低复杂度特性的固定位宽乘法器
CN114647399B (zh) 一种低能耗高精度近似并行定宽乘法累加装置
CN1801630A (zh) 基于优化搜索矩阵lu分解的ldpc码编码方法
CN108200439B (zh) 提高数字信号变换性能的方法及数字信号变换方法和装置
CN1874510A (zh) 一种用于视频编码的整数离散余弦变换方法
Zheng et al. A reconfigurable architecture for discrete cosine transform in video coding
Hasan et al. Low-cost architecture of modified Daubechies lifting wavelets using integer polynomial mapping
CN101697486A (zh) 一种二维小波变换集成电路结构
CN1553707A (zh) 一种dct快速变换结构
CN102300092B (zh) 一种基于提升格式的9/7小波逆变换的图像解压缩方法
Hosseini et al. Cyclic sparsely connected architectures for compact deep convolutional neural networks
Zeng et al. Approximated reconfigurable transform architecture for VVC
CN1289213A (zh) 无转置部件行列分离二维离散余弦变换/反变换vlsi结构及其方法
Qureshi et al. NeuroMAX: a high throughput, multi-threaded, log-based accelerator for convolutional neural networks
CN103092559A (zh) 用于hevc标准下dct/idct电路的乘法器结构
CN104811738B (zh) 基于资源共享的低开销多标准8×8一维离散余弦变换电路
CN1428719A (zh) 自适应反向变换装置
Yin et al. An efficient hardware accelerator for block sparse convolutional neural networks on FPGA
Wu et al. Hardware efficient multiplier‐less multi‐level 2D DWT architecture without off‐chip RAM
Hatim et al. Efficient architecture for direct 8× 8 2D DCT computations with earlier zigzag ordering
CN102395031B (zh) 一种数据压缩方法

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090114

Termination date: 20100609