CN112383782A - 一种位矢量变换累加移位的一维dct/idct变换器 - Google Patents
一种位矢量变换累加移位的一维dct/idct变换器 Download PDFInfo
- Publication number
- CN112383782A CN112383782A CN202011077886.1A CN202011077886A CN112383782A CN 112383782 A CN112383782 A CN 112383782A CN 202011077886 A CN202011077886 A CN 202011077886A CN 112383782 A CN112383782 A CN 112383782A
- Authority
- CN
- China
- Prior art keywords
- vector
- bit vector
- bit
- converter
- accumulation
- 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
Images
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
Landscapes
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提出了一种位矢量变换累加移位的一维DCT/IDCT变换器,用以解决现有HEVC标准中DCT/IDCT变换器使用大量的专用乘法器占用过多逻辑单元资源的问题。本发明包括计数及状态控制器、位矢量生成器、位矢量变换器和变换结果组装器;所述计数及状态控制器分别与位矢量生成器、位矢量变换器和变换结果组装器相连接;所述位矢量生成器和位矢量变换器相连接,所述位矢量变换器和变换结果组装器相连接。本发明采用累加和移位组合实现输入数据乘数,可以节省大量的FPGA或ASIC的逻辑单元;由于累加处理的时钟周期数是固定的,仅取决于输入数据的二进制补码位数,容易进行时序设计,且可以统一结构实现DCT变换和IDCT变换。
Description
技术领域
本发明涉及数字视频压缩编解码的技术领域,尤其涉及一种位矢量变换累加移位的一维DCT/IDCT变换器,用于高效数字视频编码标准(HEVC)中用FPGA或ASIC实现的整数逼近的离散余弦变换/逆离散余弦变换(DCT/IDCT)。
背景技术
高效视频编码标准(HEVC)采用了基于块的混合视频压缩编码框架,其规定的二维逼近DCT变换的核心变换矩阵尺寸为4×4、8×8、16×16和32×32,同样,二维逼近IDCT变换的核心变换矩阵尺寸为4×4、8×8、16×16和32×32。二维变换是可分离的,即可通过分别进行独立的一维N点的行变换和列变换来实现。
一维N点DCT变换即进行运算:y=Cx,其中,C是HEVC核心变换矩阵,其大小尺寸为4×4、8×8、16×16或32×32,x是相应长度的图像块运动残差补偿的行数据矢量或列数据矢量,矢量长度为4、8、16或32,y是相应的一维变换结果矢量,矢量长度为4、8、16或32。一维N点IDCT变换即进行运算:w=CTu,CT是矩阵C的转置矩阵,u是长度为4、8、16或32的输入矢量,w是长度为4、8、16或32的输出矢量。
如果直接进行矩阵乘法计算,一维变换或反变换分别需要N2次乘法和N(N-1)次加法。对于二维变换来说,则需要2N3次乘法和2N2(N-1)次加法,计算量很大,当使用FPGA或ASIC实现时,需要使用大量的专用乘法器,即其中一个乘数是固定系数的乘法器,占用很多资源,因此现有的方案都是尽量减少乘法运算的次数。
减少乘法运算次数的一种主要方案是考虑HEVC要求支持多种变换块,利用2M×2M的DCT矩阵是2(M+1)×2(M+1)的DCT矩阵的子集。特别是,更小矩阵的基矢量等于更大矩阵偶基矢量的前半部分。这个性质可以用于不同尺寸变换中相同系数乘法器的复用,提出了利用大尺寸块变换的部分乘法器资源进行小尺寸块变换的统一实现方案,从而减少硬件逻辑单元的占用量。但是这种方案虽然支持复用较小尺寸的变换块,但只能进行一种尺寸块的变换,在小尺寸块变换时,资源利用效率低。
减少乘法运算次数的另一种主要方案是利用DCT的偶基矢量是对称的,奇基矢量是反对称的性质,利用蝶形运算减少算术运算量,特别是乘法运算量,但是这种方法不能用于IDCT变换。
现有的整数逼近的DCT或IDCT变换都可以看做是利用变换矩阵对输入数据矢量进行处理,即在FPGA和ASIC实现中,采用组合的移位和加法实现变换矩阵整数乘数,由于变换和逆变换矩阵基矢量对称性不同,只能实现DCT和IDCT变换部分部件共用。为了统一实现HEVC中的DCT变换和IDCT变换,减少DCT/IDCT变换的逻辑资源占用,本发明提出用二选一选择或位与算法的位矢量变换移位累加实现DCT/IDCT变换,不使用直接的乘法运算,同时利用输入数据矢量控制处理变换矩阵,即采用移位和累加实现输入数据乘数,累加处理周期固定,仅和输入数据二进制补码位数有关,和不同尺寸变换矩阵系数的多样性无关。
发明内容
针对高效视频编码标准(HEVC)中整数逼近的离散余弦变换/逆离散余弦变换(DCT/IDCT)一般是用FPGA或ASIC实现的,DCT/IDCT变换中使用大量的专用乘法器占用过多逻辑单元资源的技术问题,本发明提出一种位矢量变换累加移位的一维DCT/IDCT变换器,利用输入数据矢量对变换矩阵进行处理,将数据矢量的DCT/IDCT变换分解为两个步骤:第一步进行数据位矢量的DCT/IDCT变换,使用二选一选择算法或位与算法,实现HEVC DCT/IDCT核心变换矩阵和输入位矢量相乘,称为位矢量变换;第二步对位矢量变换的结果进行矢量移位和累加,完成数据矢量的DCT/IDCT变换;由于不使用乘法器,可以减少30%以上的FPGA或ASIC逻辑资源占用,且可以统一结构实现DCT变换和IDCT变换。
为了达到上述目的,本发明的技术方案是这样实现的:一种位矢量变换累加移位的一维DCT/IDCT变换器,包括计数及状态控制器、位矢量生成器、位矢量变换器和变换结果组装器;所述计数及状态控制器分别与位矢量生成器、位矢量变换器和变换结果组装器相连接;所述位矢量生成器和位矢量变换器相连接,所述位矢量变换器和变换结果组装器相连接。
所述计数及状态控制器产生模10的计数信号、数值位矢量状态信号、累加状态信号和变换完成状态信号,其中:模10的计数信号对时钟周期计数并传送给位矢量生成器;数值位矢量状态信号在模10的计数信号为0~7期间有效并传送给位矢量生成器和位矢量变换器;累加状态信号在模10的计数信号为1~9期间有效并传送给变换结果组装器);变换完成状态信号在模10的计数信号为9有效并传送给变换结果组装器;
位矢量生成器将9位二进制补码表示的N×N图像块运动补偿残差行数据/列数据矢量按N维数据位矢量多路同步输出到位矢量变换器,在数值位矢量状态信号有效期间,位矢量生成器向位矢量变换器发送补偿残差行数据/列数据矢量的第0~7位矢量,即数值位矢量;在数值位矢量状态信号无效期间,位矢量生成器向位矢量变换器发送补偿残差行数据/列数据矢量的第8位矢量,即符号位矢量;所述位矢量变换器实现位矢量生成器输入的数值位矢量或符号位矢量与DCT核心变换矩阵或IDCT核心变换矩阵的矩阵-位矢量相乘,即实现无乘法的位矢量变换,位矢量变换器将位矢量变换结果矢量传送给变换结果组装器,变换结果组装器将位矢量变换结果累加移位后,组装成数据矢量变换结果。
所述位矢量变换器包括分配器、数值位矢量变换器、符号位矢量变换器、选择器和矢量求和器;所述分配器分别与数值位矢量变换器和符号位矢量变换器相连接,数值位矢量变换器和符号位矢量变换器均与选择器相连接,选择器和矢量求和器相连接。
在计数及状态控制器产生的数值位矢量状态信号有效期间,分配器将从位矢量生成器输入的数值位矢量传送到数值位矢量变换器,选择器将数值位矢量变换器输出的中间矩阵送入矢量求和器;在数值位矢量状态信号无效期间,分配器将位矢量生成器输入的符号位矢量传送到符号位矢量变换器,选择器将符号位矢量变换器输出的中间矩阵送入矢量求和器;所述矢量求和器将中间矩阵的各行矢量元素相加,得到位矢量变换结果矢量。
所述数值位矢量变换器的变换矩阵采用DCT/IDCT核心变换矩阵,变换矩阵的元素表示为二进制补码表示的9位整数,数值位矢量变换器的输入为数值位矢量、输出为与变换矩阵同大小的中间矩阵;所述符号位矢量变换器的变换矩阵采用HEVC核心变换矩阵的负矩阵,即-1和DCT/IDCT核心变换矩阵的乘积,负矩阵的元素表示为二进制补码表示的9位整数,符号位矢量变换器的输入为符号位矢量、输出为与变换矩阵同大小的中间矩阵;所述数值位矢量变换器和符号位矢量变换器均使用二选一选择算法或位与算法实现无乘法的矩阵-位矢量相乘。
所述数值位矢量变换器和符号位矢量变换器使用二选一选择算法进行位矢量变换的步骤为:
第一步:进行二选一选择,即当输入位矢量分量为0时,中间矩阵同号行矢量为0矢量,即该行各元素都为9位二进制数0 0000 0000B;当输入位矢量分量为1时,中间矩阵同号行矢量为变换矩阵的同号行矢量;
第二步:将中间矩阵的各行元素相加,得到位矢量变换结果矢量。
所述数值位矢量变换器和符号位矢量变换器使用位与算法进行位矢量变换的步骤为:
第一步:进行输入位矢量扩展,即当输入位矢量分量为1时,扩展为:1 11111111B,当输入位矢量分量为0时,扩展为:0 0000 0000B,得到同维的输入扩展矢量;
第二步:输入扩展矢量和变换矩阵的各行矢量进行位与,得到中间矩阵;
第三步:将中间矩阵的各行元素相加,得到位矢量变换结果矢量。
所述变换结果组装器包括矢量累加移位器、移出位矢量寄存器和数值组装矢量存储器;矢量累加移位器分别与移出位矢量寄存器和数值组装矢量存储器相连接,移出位矢量寄存器和数值组装矢量存储器相连接。
在计数及状态控制器产生的累加状态信号有效期间,矢量累加移位器对位矢量变换器输出的位矢量变换结果矢量进行矢量累加和移位操作,每次将矢量累加结果右移1位并符号扩展,移出位进入移出位矢量寄存器的相应位;在累加状态信号无效期间,矢量累加移位器清0,移出位矢量寄存器清0;在计数及状态控制器产生的变换完成状态信号有效期间,数值组装矢量存储器将矢量累加移位器内的数值矢量和移出位矢量寄存器内的数值矢量拼接为一个数值矢量变换结果矢量,其中,矢量累加移位器内的数值作高字,移出位矢量寄存器内的数值作低字,然后数值组装矢量存储器存储数值矢量变换结果矢量。
与现有技术相比,本发明的有益效果为:通过使用无乘法的位矢量变换和累加移位,可以节省大量的FPGA或ASIC的逻辑单元;在4×4DCT变换时,与传统的使用乘法和累加IP核的方案相比,本发明仅需要221个逻辑单元、143个寄存器,而使用加法、乘法和累加IP核进行蝶形运算则需要350个逻辑单元、207个寄存器,因此,本发明逻辑单元节省了37%、寄存器节省了31%。本发明中的位矢量变换器使用二选一选择算法或扩展位与算法实现输入数据位矢量和DCT核心变换矩阵或IDCT核心变换矩阵的矩阵-位矢量相乘,然后再对位矢量变换结果累加移位,实现数据矢量的DCT/IDCT变换,相当于采用累加移位组合实现了输入数据乘数,可以节省大量的FPGA或ASIC的逻辑单元;且累加处理的时钟周期数是固定的,仅取决于输入数据的二进制补码位数,容易进行时序设计。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的结构示意图。
图2为图1所示中位矢量变换器的结构框图。
图3为图1所示中变换结果组装器的结构框图。
图4为本发明的仿真时序图。
图中,10为计数及状态控制器,11为位矢量生成器,12为位矢量变换器,1201为分配器,1202为数值位矢量变换器,1203为符号位矢量变换器,1204为选择器,1205为矢量求和器,13为变换结果组装器,1301为矢量累加移位器,1302为移出位矢量寄存器,1303为数值组装矢量存储器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种位矢量变换累加移位的一维DCT/IDCT变换器,包括计数及状态控制器10、位矢量生成器11、位矢量变换器12、变换结果组装器13;计数及状态控制器10分别与位矢量生成器11、位矢量变换器12和变换结果组装器13相连接;位矢量生成器11和位矢量变换器12相连接;位矢量变换器12和变换结果组装器13相连接。计数及状态控制器10产生模10的计数信号、数值位矢量状态信号、累加状态信号和变换完成状态信号,其中:模10的计数信号对时钟周期计数,并将计数值传送给位矢量生成器11,指示位矢量生成器11按照计数值从最低位第0位到最高位第8位顺序输出位矢量,即
当计数值为0时,位矢量生成器11输出第0位矢量;
当计数值为1时,位矢量生成器11输出第1位矢量;
当计数值为2时,位矢量生成器11输出第2位矢量;
当计数值为3时,位矢量生成器11输出第3位矢量;
当计数值为4时,位矢量生成器11输出第4位矢量;
当计数值为5时,位矢量生成器11输出第5位矢量;
当计数值为6时,位矢量生成器11输出第6位矢量;
当计数值为7时,位矢量生成器11输出第7位矢量;
当计数值为8和9时,位矢量生成器11输出第8位矢量。
数值位矢量状态信号在模10的计数信号为0~7期间有效,该信号传送给位矢量生成器11和位矢量变换器12,指示位矢量生成器11输出数值位矢量,指示位矢量变换器12进行数值位矢量变换,符号位矢量的输出和变换在数值位矢量状态信号无效期间进行;累加状态信号在模10的计数信号为1~9期间有效,该信号传送给变换结果组装器13,指示变换结果组装器13对位矢量变换结果进行累加移位;变换完成状态信号在模10的计数信号为9有效,该信号传送给变换结果组装器13,指示变换结果组装器13输出数据矢量变换结果。
位矢量生成器11将9位二进制补码表示的N×N图像块运动补偿残差行数据/列数据矢量按N维数据位矢量多路同步输出到位矢量变换器12,N维位矢量中的每个元素都是1位2进制数,要么为1位2进制数1,要么为1位2进制数0,其中:在数值位矢量状态信号有效期间,位矢量生成器11向位矢量变换器12发送补偿残差行数据/列数据矢量的第0~7位矢量,即数值位矢量,最低有效位为第0位;在数值位矢量状态信号无效期间,位矢量生成器11向位矢量变换器12发送补偿残差行数据/列数据矢量的第8位矢量,即符号位矢量。位矢量变换器12将位矢量生成器11输出的数值位矢量或符号位矢量和HEVC DCT/IDCT核心变换矩阵相乘,即无乘法的位矢量变换完成位矢量变换,位矢量变换器12将位矢量变换结果矢量传送给变换结果组装器13,变换结果组装器13对位矢量变换结果累加和移位组装成数据矢量变换结果,完成数值矢量变换。
如图2所示,位矢量变换器12包括分配器1201、数值位矢量变换器1202、符号位矢量变换器1203、选择器1204和矢量求和器1205。分配器1201分别与数值位矢量变换器1202和符号位矢量变换器1203相连接,数值位矢量变换器1202和符号位矢量变换器1203均与选择器1204相连接,选择器1204和矢量求和器1205相连接。在数值位矢量状态信号有效期间,分配器1201将从位矢量生成器11输入的数值位矢量传送到数值位矢量变换器1202,选择器1204将数值位矢量变换器1202输出的中间矩阵送入矢量求和器1205;在数值位矢量状态信号无效期间,分配器1201将位矢量生成器11输入的符号位矢量传送到符号位矢量变换器1203,选择器1204将符号位矢量变换器1203输出的中间矩阵送入矢量求和器1205;矢量求和器1205将中间矩阵的各行矢量元素相加,得到位矢量变换结果矢量。
数值位矢量变换器1202的变换矩阵采用HEVC核心变换矩阵,变换矩阵元素可表示为二进制补码表示的9位整数,其输入为数值位矢量,输出为与变换矩阵同大小的中间矩阵;符号位矢量变换器1203的变换矩阵采用HEVC核心变换矩阵的负矩阵,即-1和HEVC核心变换矩阵的乘积,变换负矩阵元素也可表示为二进制补码表示的9位整数,其输入为符号位矢量,输出为与变换矩阵同大小的中间矩阵;数值位矢量变换器1202和符号位矢量变换器1203都使用二选一选择算法或位与算法,两种算法可任选一种使用,效果相同。
所述数值位矢量变换器1202和符号位矢量变换器1203使用二选一选择算法进行位矢量变换的步骤为:
第一步:进行二选一选择,即当输入位矢量分量为0时,中间矩阵同号行矢量为0矢量,即该行各元素都为9位二进制数0 0000 0000B;当输入位矢量分量为1时,中间矩阵同号行矢量为变换矩阵的同号行矢量;
第二步:将中间矩阵的各行内元素相加,得到位矢量变换结果矢量。
所述数值位矢量变换器1202和符号位矢量变换器1203使用位与算法进行位矢量变换的步骤为:
第一步:进行输入位矢量扩展,即当输入位矢量分量为1时,扩展为:1 11111111B,当输入位矢量分量为0时,扩展为:0 0000 0000B,得到同维的输入扩展矢量;
第二步:输入扩展矢量和变换矩阵各行矢量的位与,得到中间矩阵;
第三步:将中间矩阵的各行内元素相加,得到位矢量变换结果矢量。
如图3所示,变换结果组装器13包括矢量累加移位器1301、移出位矢量寄存器1302和数值组装矢量存储器1303;矢量累加移位器1301分别与移出位矢量寄存器1302和数值组装矢量存储器1303相连接;移出位矢量寄存器1302和数值组装矢量存储器1303相连接。在累加状态信号有效期间,矢量累加移位器1301对位矢量变换器12输出的位矢量变换结果矢量进行矢量累加和移位操作,每次将矢量累加结果右移1位并符号扩展,移出位进入移出位矢量寄存器1302的相应位;在累加状态信号无效期间,矢量累加移位器1301清0,移出位矢量寄存器1302清0;在变换完成状态信号有效期间,数值组装矢量存储器1303将矢量累加移位器1301内的数值矢量和移出位矢量寄存器1302内的数值矢量拼接为一个数值矢量变换结果矢量,其中,矢量累加移位器1301内的数值作高字,移出位矢量寄存器1302内的数值作低字,然后存储数值矢量变换结果矢量。
以4点整数逼近DCT变换为例来说明本发明的结构,假设运动补偿残差数据为-255~255之间的整数,可表示为9位带符号的二进制补码,即输入的数据矢量可表示为:
其中,x0,8,x1,8,x2,8,x3,8分别是x0,x1,x2,x3的符号位,不失一般性,可规定正数的符号位为0,负数的符号位为1;其余都是数值位,比如x0,7,x0,6,x0,5,x0,4,x0,3,x0,2,x0,1,x0,0分别是x0的第7位到第0位。由于输入数据为9位二进制数,因此DCT变换周期时长为10个时钟周期,可编号为周期0到周期9。
定义输入的位矢量为
Xbitj=[x0,j x1,j x2,j x3,j]T;
由于假设输入数据的位宽度为9,因此j=0,1,…,8。一个时钟周期处理一个位矢量的变换,处理顺序可合理假设为按照j升序。Xbitj由位矢量生成器11的输出到位矢量变换器12,在位矢量变换器12内部,在时钟周期0到7期间,分配器1201依次把Xbit0到Xbit7分配到数值位矢量变换器1204,在时钟周期8和9期间,分配器1201把Xbit8分配到符号位矢量变换器1203。
HEVC的4×4DCT变换系数矩阵为:
则数值位的4×4DCT变换系数矩阵为:
符号位的4×4DCT变换系数矩阵为:
数值位矢量的4点DCT变换可表示为
由于Xbitk是二进制位矢量,因此数值位矢量变换器1202实现数值位矢量控制的二选一选择算法或扩展位与算法,包括16次二选一选择算法,二选一选择算法受1位数值位矢量Xbitk元素的控制。当控制位元素x0,k为0时,二选一选择算法输出0;当x0,k为1时,二选一选择算法输出也就是64。在时钟周期0到7期间,选择算法的选择结果由数值位矢量变换器1202输出到选择器1204,由选择器1204输出到矢量求和器1205,矢量求和器1205求和得到数值位矢量DCT变换结果并输出给变换结果组装器13。
符号位矢量的4×4DCT变换可表示为:
符号位矢量变换器1203实现符号位矢量控制的二选一选择算法或扩展位与算法,需要进行16次二选一选择算法,二选一选择算法受1位符号位矢量Xbit8元素的控制。当控制位元素x0,8为0时,二选一选择算法输出0;当x0,8为1时,二选一选择算法输出也就是-64。在时钟周期8和9期间,选择算法的结果由符号位矢量变换器1203输出给选择器1204,,由选择器1204输出到矢量求和器1205,矢量求和器1205求和得到符号位矢量DCT变换结果 并输出给变换结果组装器13。
因此,4点一维数据矢量整数逼近DCT变换可表示为:
在周期1到周期9期间,矢量累加移位器1301对位矢量变换的结果进行累加,并右移1位,最高位符号扩展,移出位进入移出位矢量寄存器1302的最高位,即第7位;移出位矢量寄存器1302也每时钟周期右移1位;在周期9时,矢量累加移位器1301和移出位矢量寄存器1302的内容拼接后存入数值组装矢量存储器1303,数值组装矢量存储器1303输出数据矢量的DCT变换结果。
如图4所示,仿真输入数据矢量x=[x0 x1 x2 x3]T=[1 2 4 -248]T,选择数值1、2、4用于仿真是因为它们是视频帧运动补偿残差大概率出现的数值,而选择-248可以检验算法大数值时的可靠性和有效性,设置典型时延。
数值位矢量Xbit0=[x0,0 x1,0 x2,0 x3,0]T=[1 0 0 0]T,在时钟周期0输入,由于时延的影响,在时钟周期1出现;依次论推:
数值位矢量Xbit1=[x0,1 x1,1 x2,1 x3,1]T=[0 1 0 0]T,在时钟周期1输入,在时钟周期2出现;
数值位矢量Xbit2=[x0,2 x1,2 x2,2 x3,2]T=[0 0 1 0]T,在时钟周期2输入,在时钟周期3出现;
数值位矢量Xbit3=[x0,3 x1,3 x2,3 x3,3]T=[0 0 0 1]T,在时钟周期3输入,在时钟周期4出现;
数值位矢量Xbit4、Xbit5、Xbit6、Xbit7都是全0矢量,分别在时钟周期4、5、6、7输入,在时钟周期5、6、7、8出现;
符号位矢量Xbit8=[x0,8 x1,8 x2,8 x3,8]T=[0 0 0 1]T,在时钟周期8输入,在时钟周期9出现。
在时钟周期9的中间,输出变换结果y=[y0 y1 y2 y3]T=[-15424 20595 -161929130]T,即REG0为-15424,REG1为20595,REG2为-16192,REG3为9130。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,包括计数及状态控制器(10)、位矢量生成器(11)、位矢量变换器(12)和变换结果组装器(13);所述计数及状态控制器(10)分别与位矢量生成器(11)、位矢量变换器(12)和变换结果组装器(13)相连接;所述位矢量生成器(11)和位矢量变换器(12)相连接,所述位矢量变换器(12)和变换结果组装器(13)相连接。
2.根据权利要求1所述的位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,所述计数及状态控制器(10)产生模10的计数信号、数值位矢量状态信号、累加状态信号和变换完成状态信号,其中:模10的计数信号对时钟周期计数并传送给位矢量生成器(11);数值位矢量状态信号在模10的计数信号为0~7期间有效并传送给位矢量生成器(11)和位矢量变换器(12);累加状态信号在模10的计数信号为1~9期间有效并传送给变换结果组装器(13);变换完成状态信号在模10的计数信号为9有效并传送给变换结果组装器(13);
位矢量生成器(11)将9位二进制补码表示的N×N图像块运动补偿残差行数据/列数据矢量按N维数据位矢量多路同步输出到位矢量变换器(12),在数值位矢量状态信号有效期间,位矢量生成器(11)向位矢量变换器(12)发送补偿残差行数据/列数据矢量的第0~7位矢量,即数值位矢量;在数值位矢量状态信号无效期间,位矢量生成器(11)向位矢量变换器(12)发送补偿残差行数据/列数据矢量的第8位矢量,即符号位矢量;所述位矢量变换器(12)实现位矢量生成器(11)输入的数值位矢量或符号位矢量与DCT核心变换矩阵或IDCT核心变换矩阵的矩阵-位矢量相乘,即实现无乘法的位矢量变换,位矢量变换器(12)将位矢量变换结果矢量传送给变换结果组装器(13),变换结果组装器(13)将位矢量变换结果累加移位后,组装成数据矢量变换结果。
3.根据权利要求1或2所述的位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,所述位矢量变换器(12)包括分配器(1201)、数值位矢量变换器(1202)、符号位矢量变换器(1203)、选择器(1204)和矢量求和器(1205);所述分配器(1201)分别与数值位矢量变换器(1202)和符号位矢量变换器(1203)相连接,数值位矢量变换器(1202)和符号位矢量变换器(1203)均与选择器(1204)相连接,选择器(1204)和矢量求和器(1205)相连接。
4.根据权利要求3所述的位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,在计数及状态控制器(10)产生的数值位矢量状态信号有效期间,分配器(1201)将从位矢量生成器(11)输入的数值位矢量传送到数值位矢量变换器(1202),选择器(1204)将数值位矢量变换器(1202)输出的中间矩阵送入矢量求和器(1205);在数值位矢量状态信号无效期间,分配器(1201)将位矢量生成器(11)输入的符号位矢量传送到符号位矢量变换器(1203),选择器(1204)将符号位矢量变换器(1203)输出的中间矩阵送入矢量求和器(1205);所述矢量求和器(1205)将中间矩阵的各行矢量元素相加,得到位矢量变换结果矢量。
5.根据权利要求4所述的位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,所述数值位矢量变换器(1202)的变换矩阵采用DCT/IDCT核心变换矩阵,变换矩阵的元素表示为二进制补码表示的9位整数,数值位矢量变换器(1202)的输入为数值位矢量、输出为与变换矩阵同大小的中间矩阵;所述符号位矢量变换器(1203)的变换矩阵采用HEVC核心变换矩阵的负矩阵,即-1和DCT/IDCT核心变换矩阵的乘积,负矩阵的元素表示为二进制补码表示的9位整数,符号位矢量变换器(1203)的输入为符号位矢量、输出为与变换矩阵同大小的中间矩阵;所述数值位矢量变换器(1202)和符号位矢量变换器(1203)均使用二选一选择算法或位与算法实现无乘法的矩阵-位矢量相乘。
6.根据权利要求5所述的位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,所述数值位矢量变换器(1202)和符号位矢量变换器(1203)使用二选一选择算法进行位矢量变换的步骤为:
第一步:进行二选一选择,即当输入位矢量分量为0时,中间矩阵同号行矢量为0矢量,即该行各元素都为9位二进制数0 0000 0000B;当输入位矢量分量为1时,中间矩阵同号行矢量为变换矩阵的同号行矢量;
第二步:将中间矩阵的各行元素相加,得到位矢量变换结果矢量。
7.根据权利要求5所述的位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,所述数值位矢量变换器(1202)和符号位矢量变换器(1203)使用位与算法进行位矢量变换的步骤为:
第一步:进行输入位矢量扩展,即当输入位矢量分量为1时,扩展为:1 1111 1111B,当输入位矢量分量为0时,扩展为:0 0000 0000B,得到同维的输入扩展矢量;
第二步:输入扩展矢量和变换矩阵的各行矢量进行位与,得到中间矩阵;
第三步:将中间矩阵的各行元素相加,得到位矢量变换结果矢量。
8.根据权利要求1、4-7中任意一项所述的位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,所述变换结果组装器(13)包括矢量累加移位器(1301)、移出位矢量寄存器(1302)和数值组装矢量存储器(1303);矢量累加移位器(1301)分别与移出位矢量寄存器(1302)和数值组装矢量存储器(1303)相连接,移出位矢量寄存器(1302)和数值组装矢量存储器(1303)相连接。
9.根据权利要求8所述的位矢量变换累加移位的一维DCT/IDCT变换器,其特征在于,在计数及状态控制器(10)产生的累加状态信号有效期间,矢量累加移位器(1301)对位矢量变换器(12)输出的位矢量变换结果矢量进行矢量累加和移位操作,每次将矢量累加结果右移1位并符号扩展,移出位进入移出位矢量寄存器(1302)的相应位;在累加状态信号无效期间,矢量累加移位器(1301)清0,移出位矢量寄存器(1302)清0;在计数及状态控制器(10)产生的变换完成状态信号有效期间,数值组装矢量存储器(1303)将矢量累加移位器(1301)内的数值矢量和移出位矢量寄存器(1302)内的数值矢量拼接为一个数值矢量变换结果矢量,其中,矢量累加移位器(1301)内的数值作高字,移出位矢量寄存器(1302)内的数值作低字,然后数值组装矢量存储器(1303)存储数值矢量变换结果矢量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077886.1A CN112383782B (zh) | 2020-10-10 | 2020-10-10 | 一种位矢量变换累加移位的一维dct/idct变换器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077886.1A CN112383782B (zh) | 2020-10-10 | 2020-10-10 | 一种位矢量变换累加移位的一维dct/idct变换器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112383782A true CN112383782A (zh) | 2021-02-19 |
CN112383782B CN112383782B (zh) | 2022-07-26 |
Family
ID=74581199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011077886.1A Active CN112383782B (zh) | 2020-10-10 | 2020-10-10 | 一种位矢量变换累加移位的一维dct/idct变换器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112383782B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379351A (en) * | 1992-02-19 | 1995-01-03 | Integrated Information Technology, Inc. | Video compression/decompression processing and processors |
US6112219A (en) * | 1993-09-23 | 2000-08-29 | Realnetworks, Inc. | Method and apparatus for performing fast discrete cosine transforms and fast inverse discrete cosine transforms using look-up tables |
CN1929603A (zh) * | 2005-11-25 | 2007-03-14 | 浙江大学 | H.264整数变换加速的装置 |
CN101625634A (zh) * | 2008-07-09 | 2010-01-13 | 中国科学院半导体研究所 | 一种可重构的乘法器 |
CN102681815A (zh) * | 2012-05-11 | 2012-09-19 | 深圳市清友能源技术有限公司 | 用加法器树状结构的有符号乘累加算法的方法 |
CN104811738A (zh) * | 2015-04-23 | 2015-07-29 | 中国科学院电子学研究所 | 基于资源共享的低开销多标准8×8一维离散余弦变换电路 |
-
2020
- 2020-10-10 CN CN202011077886.1A patent/CN112383782B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379351A (en) * | 1992-02-19 | 1995-01-03 | Integrated Information Technology, Inc. | Video compression/decompression processing and processors |
US6112219A (en) * | 1993-09-23 | 2000-08-29 | Realnetworks, Inc. | Method and apparatus for performing fast discrete cosine transforms and fast inverse discrete cosine transforms using look-up tables |
CN1929603A (zh) * | 2005-11-25 | 2007-03-14 | 浙江大学 | H.264整数变换加速的装置 |
CN101625634A (zh) * | 2008-07-09 | 2010-01-13 | 中国科学院半导体研究所 | 一种可重构的乘法器 |
CN102681815A (zh) * | 2012-05-11 | 2012-09-19 | 深圳市清友能源技术有限公司 | 用加法器树状结构的有符号乘累加算法的方法 |
CN104811738A (zh) * | 2015-04-23 | 2015-07-29 | 中国科学院电子学研究所 | 基于资源共享的低开销多标准8×8一维离散余弦变换电路 |
Non-Patent Citations (3)
Title |
---|
P.G. FERNANDEZ等: "Fast RNS-based 2D-DCT computation on field-programmable devices", 《2000 IEEE WORKSHOP ON SIGNAL PROCESSING SYSTEMS. SIPS 2000. DESIGN AND IMPLEMENTATION 》 * |
吴水明等: "二维DCT的FPGA实现与优化设计", 《中国水运(学术版)》 * |
王继东等: "基于NEDA算法的二维DCT硬件加速器的设计实现", 《微电子学与计算机》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112383782B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7127482B2 (en) | Performance optimized approach for efficient downsampling operations | |
EP1576494B1 (en) | Method and system for performing calculation operations and a device | |
JP2646778B2 (ja) | ディジタル信号処理装置 | |
JP2962970B2 (ja) | 周波数から時間領域への変換方法及び装置 | |
KR100275933B1 (ko) | 엠펙디코더의 역이산여현변환장치 | |
CN103369326A (zh) | 适于高性能视频编码标准hevc的变换编码器 | |
JP6357345B2 (ja) | ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 | |
US7263544B2 (en) | Performance optimized approach for efficient numerical computations | |
CN114007079A (zh) | 变换电路、方法、装置和编码器 | |
CN112383782B (zh) | 一种位矢量变换累加移位的一维dct/idct变换器 | |
Acharya et al. | VLSI implementation of a DWT architecture | |
CN100452880C (zh) | 一种用于视频编码的整数离散余弦变换方法 | |
CN108184127B (zh) | 一种可配置的多尺寸dct变换硬件复用架构 | |
Do et al. | High-throughput and low-cost hardware-oriented integer transforms for HEVC | |
CN115268839A (zh) | 一种以2为基的蒙哥马利模乘方法及装置 | |
CN104661036A (zh) | 用于视频编码的方法和系统 | |
CN101562744A (zh) | 二维反变换装置 | |
CN100388316C (zh) | 高精度的无乘法器的数字余弦变换电路及其变换方法 | |
KR100306745B1 (ko) | 알에이씨를사용하는하프밴드서브밴드디씨티/아이디씨티회로및그방법 | |
Truong et al. | A new architecture for the 2-D discrete wavelet transform | |
CN112449199A (zh) | 一种并行位矢量变换部分积相加的一维dct/idct变换器 | |
Fan et al. | A low complexity multiplierless transform coding for HEVC | |
CN101316367B (zh) | 一种视频编解码标准中的二维反变换方法及其实现电路 | |
KR100350943B1 (ko) | 분포연산방식을 이용한 고속 dct 연산회로 | |
US20230236801A1 (en) | Low-latency polynomial modulo multiplication over ring |
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 |