CN113286150B - 用于视频编解码的变换编码硬件实现方法、装置及设备 - Google Patents
用于视频编解码的变换编码硬件实现方法、装置及设备 Download PDFInfo
- Publication number
- CN113286150B CN113286150B CN202110533547.8A CN202110533547A CN113286150B CN 113286150 B CN113286150 B CN 113286150B CN 202110533547 A CN202110533547 A CN 202110533547A CN 113286150 B CN113286150 B CN 113286150B
- Authority
- CN
- China
- Prior art keywords
- dct
- block
- transformed
- processing
- transformer
- 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.)
- Active
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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种用于视频编解码的变换编码硬件实现方法、装置及设备,所述用于视频编解码的变换编码硬件实现方法包括:在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块及所述待变换块的大小信息;通过选择编码块大小模块,基于所述大小信息从DCT变换器组合中确定对应的DCT变换器,并将所述待变换块传输至所述DCT变换器;通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块。本发明实现了基于AVS3编码标准下的变换硬件。
Description
技术领域
本发明涉及视频编解码技术领域,尤其涉及一种用于视频编解码的变换编码硬件实现方法、装置及设备。
背景技术
AVS3是我国具备自主知识产权的第3代信源编码标准。AVS3相对于H.265已有一定程度上的性能提升。第三代AVS视频标准(AVS3)基准档次于2019年已起草完成,目前已逐渐投入应用。
然而,目前视频编解码的变换硬件实现方法无法达到AVS3编码标准的要求,具体的,无法达到8K分辨率的要求,也就是说,在8K分辨率的条件下无法达到60帧甚至120帧的流畅程度。因此,目前没有基于AVS3编码标准下的变换硬件实现方法。
发明内容
本发明的主要目的在于提供一种用于视频编解码的变换编码硬件实现方法、装置及设备,旨在解决目前没有基于AVS3编码标准下的变换硬件实现方法的技术问题。
为实现上述目的,本发明提供一种用于视频编解码的变换编码硬件实现方法,所述方法包括以下步骤:
在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块及所述待变换块的大小信息;
通过选择编码块大小模块,基于所述大小信息从DCT变换器组合中确定对应的DCT变换器,并将所述待变换块传输至所述DCT变换器;
通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块。
可选地,所述DCT变换器的蝶形运算操作包括四个流水线阶段,所述四个流水线阶段依次为蝶形系数生成阶段、位移阶段、多常数乘法器SAU阶段、生成输出阶段,
所述通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块的步骤包括:
通过所述四个流水线阶段,并行对所述待变换块进行DCT或IDCT的蝶形运算处理,得到所述待变换块对应的变换块。
可选地,所述DCT变换器包括多个执行计算操作的电路,所述多个执行计算操作的电路通过对单个执行计算操作的电路进行复制得到,
所述通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块的步骤包括:
通过所述多个执行计算操作的电路,并行对所述待变换块进行DCT或IDCT的计算循环处理,得到所述待变换块对应的变换块。
可选地,所述DCT变换器为多个,多个所述DCT变换器通过对单个所述DCT变换器进行复制得到,
所述通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块的步骤包括:
通过多个所述DCT变换器,并行对多个所述待变换块进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的一维DCT变换结果;
将所述多个待变换块对应的一维DCT变换结果存储于临时缓冲区;
对所述一维DCT变换结果进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的二维DCT变换结果。
可选地,所述通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块的步骤之前,还包括:
获取正反变换控制信号,并将所述正反变换控制信号传输至所述DCT变换器;
基于所述正反变换控制信号,确定所述DCT变换器对所述待变换块的执行流程,以供基于所述执行流程确定所述DCT变换器对所述待变换块是进行DCT处理还是IDCT处理。
可选地,所述DCT变换器组合包括4点DCT变换器、8点DCT变换器、16点DCT变换器、32点DCT变换器和64点DCT变换器。
此外,为实现上述目的,本发明还提供一种用于视频编解码的变换编码硬件实现装置,所述装置包括:预控制模块、选择编码块大小模块和DCT变换器组合,所述选择编码块大小模块分别与所述预控制模块和所述DCT变换器组合相连接,
所述预控制模块,用于在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块的编码块宽度和编码块高度,基于所述编码块宽度和所述编码块高度生成所述待变换块的大小信息,传输所述大小信息至所述选择编码块大小模块;
所述选择编码块大小模块,用于接收所述大小信息和获取所述待变换块,基于所述大小信息从所述DCT变换器组合中确定对应的DCT变换器,将所述待变换块传输至所述DCT变换器;
所述DCT变换器组合及所述DCT变换器,用于对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块。
可选地,所述DCT变换器的蝶形运算操作包括四个流水线阶段,所述四个流水线阶段依次为蝶形系数生成阶段、位移阶段、多常数乘法器SAU阶段、生成输出阶段,
所述DCT变换器,还用于通过所述四个流水线阶段,并行对所述待变换块进行DCT或IDCT的蝶形运算处理,得到所述待变换块对应的变换块;和/或,
所述DCT变换器包括多个执行计算操作的电路,所述多个执行计算操作的电路通过对单个执行计算操作的电路进行复制得到,
所述DCT变换器,还用于通过所述多个执行计算操作的电路,并行对所述待变换块进行DCT或IDCT的计算循环处理,得到所述待变换块对应的变换块;和/或,
所述DCT变换器为多个,多个所述DCT变换器通过对单个所述DCT变换器进行复制得到,
多个所述DCT变换器,用于并行对多个所述待变换块进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的一维DCT变换结果,将所述多个待变换块对应的一维DCT变换结果存储于临时缓冲区,对所述一维DCT变换结果进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的二维DCT变换结果。
可选地,所述DCT变换器组合包括4点DCT变换器、8点DCT变换器、16点DCT变换器、32点DCT变换器和64点DCT变换器,
所述4点DCT变换器,用于对所述大小信息为4×4的待变换块进行DCT处理或IDCT处理;
所述8点DCT变换器,用于对所述大小信息为8×8的待变换块进行DCT处理或IDCT处理;
所述16点DCT变换器,用于对所述大小信息为16×16的待变换块进行DCT处理或IDCT处理;
所述32点DCT变换器,用于对所述大小信息为32×32的待变换块进行DCT处理或IDCT处理;
所述64点DCT变换器,用于对所述大小信息为64×64的待变换块进行DCT处理或IDCT处理。
此外,为实现上述目的,本发明还提供一种用于视频编解码的变换编码硬件实现设备,所述用于视频编解码的变换编码硬件实现设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的用于视频编解码的变换编码硬件实现方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的用于视频编解码的变换编码硬件实现方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上所述的用于视频编解码的变换编码硬件实现方法的步骤。
本发明提供一种用于视频编解码的变换编码硬件实现方法、装置及设备,在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块及待变换块的大小信息;通过选择编码块大小模块,基于大小信息从DCT变换器组合中确定对应的DCT变换器,并将待变换块传输至DCT变换器;通过DCT变换器对待变换块进行DCT处理或IDCT处理,得到待变换块对应的变换块。通过上述方式,获取待变换块的大小信息,以通过该大小信息确定对应的DCT变换器,即采用DCT变换器组合支持不同大小的待变换块,具体的,本发明可以支持64x64的待变换块,从而确保达到AVS3编码标准,实现基于AVS3编码标准的变换编码,进而实现基于AVS3编码标准下的变换硬件。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明用于视频编解码的变换编码硬件实现方法第一实施例的流程示意图;
图3为本发明实施例涉及的整体电路示意图;
图4为本发明实施例涉及的计算流水线示意图;
图5为本发明实施例涉及的循环展开示意图;
图6为本发明实施例涉及的模块级并行示意图;
图7为本发明实施例涉及的4点DCT中SAU模块示意图;
图8为本发明实施例涉及的8点DCT中SAU模块示意图;
图9为本发明实施例涉及的16点DCT中SAU模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的主要技术术语包括:
DCT:全称是离散余弦变换(Discrete Cosine Transform),它是一种正交变换的变换编码方法。其中,变化编码(Transform Coding)将空间域描述的图像,通过某种变化(如离散余弦变换、离散正弦变换、哈达玛变换等)形成变换域中的数据,达到改变数据分布,减少有效数据量的目的。在变换编码中,正交变换是一种最常见的数据处理手段,它把统计上彼此密切相关的像素值矩阵通过线性正交变换,变成统计上彼此较为独立、甚至完全独立的变换系数矩阵。信息论的研究表明,正交变换不改变信源的熵值,变换前后图像的信息并无损失,完全可以通过反变换得到原来的图像值。但经过正交变换后,数据的分布发生了很大的改变,变换系数在变换域坐标系分布趋于集中,如集中于少量的直流或低频分量的坐标点,数据的集中分布为数据压缩创造了条件。比如,有利于通过量化操作去除大部分零或者接近零的系数,保留少量有效系数;有利于对量化后的系数采用更加有效表示方式,如“之”字形扫描,变长编码等,从而获得对图像信息量的有效压缩。可以理解,DCT变换性能仅次于理论上最佳地可以完全去除相关的K-L变换,所以DCT变换被认为是一种准最佳变换;DCT变换矩阵与图像内容无关,去相关性好,并且具备快速算法,实现方便;DCT的基函数是偶对称的数据序列,可减轻在图像的分块编码中块边界处的灰度值跳变和不连续现象。通过DCT变换的这些优点,使得二维DCT变换在图像编码的应用中得到普遍的使用。因此,本发明在AVS3的变换阶段采用了DCT变换。
IDCT:全称是反离散余弦变换(Inverse Discrete Cosine Transform),其为上述DCT的反变换,此处不再一一赘述。
需要说明的是,此处所描述的具体实施例主要用于实现基于AVS3编码标准下的变换硬件。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端为用于视频编解码的变换编码硬件实现设备,该用于视频编解码的变换编码硬件实现设备可以为PC(personal computer,个人计算机)、微型计算机、笔记本电脑、服务器等具有处理功能的终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU(Central Processing Unit,中央处理器),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。
在图1所示的终端中,处理器1001可以用于调用存储器1005中存储的计算机程序,并执行本发明以下实施例提供的视频编解码的变换编码方法中的步骤。
基于上述硬件结构,提出本发明用于视频编解码的变换编码硬件实现方法各个实施例。
本发明提供一种用于视频编解码的变换编码硬件实现方法。
参照图2,图2为本发明用于视频编解码的变换编码硬件实现方法第一实施例的流程示意图。
在本实施例中,该用于视频编解码的变换编码硬件实现方法包括:
步骤S10,在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块及所述待变换块的大小信息;
在本实施例中,在处于DCT(Discrete Cosine Transform,离散余弦变换)或IDCT(Inverse Discrete Cosine Transform,反离散余弦变换)时,获取视频的待变换块及所述待变换块的大小信息。具体的,在处于DCT时,获取待编码视频的待编码块及该待编码块的大小信息;在处于IDCT时,获取待解码视频的待解码块及该待解码块的大小信息,即本实施例可同时实现DCT和IDCT的复用。其中,待变换块包括待编码块或待解码块,待编码块即需要进行DCT处理的数据块,待解码块即需要进行IDCT处理的数据块。
需要说明的是,输入的视频的待变换块传输至选择编码块大小模块,以供选择编码块大小模块后续将待变换块交由对应的DCT变换器进行DCT处理或IDCT处理。具体的,在输入待编码视频的待编码块时,将该待编码块传输至选择编码块大小模块,以供选择编码块大小模块基于待编码块的大小信息选择对应的DCT变换器,以通过该DCT变换器对待编码块进行DCT处理;在输入待解码视频的待解码块时,将该待解码块传输至选择编码块大小模块,以供选择编码块大小模块基于待解码块的大小信息选择对应的DCT变换器,以通过该DCT变换器对待解码块进行IDCT处理。
在一实施例中,待变换块的大小信息可以由选择编码块大小模块直接获取,也就是说,向选择编码块大小模块输入待变换块的大小信息。在其他实施方式中,待变换块的大小信息也可以由预控制模块进行获取,然后,经过预控制模块的预处理之后,由预控制模块传输该待变换块的大小信息至选择编码块大小模块,以供选择编码块大小模块基于大小信息选择对应的DCT变换器。
其中,待变换块的大小信息包括编码块的宽度和编码块的高度,即待变换块对应矩阵的列数和行数。在一实施例中,预控制模块可以获取编码块的宽度和编码块的高度,然后通过预控制模块基于编码块的宽度和编码块的高度生成待变换块的大小信息,以将该大小信息传输至选择编码块大小模块。当然,也可以通过选择编码块大小模块获取编码块的宽度和编码块的高度,然后,通过选择编码块大小模块基于编码块的宽度和编码块的高度生成待变换块的大小信息。该编码块的宽度对应的信号比特位可以为6,该编码块的高度对应的信号比特位可以为6,以使本发明实施例可支持64×64的编码块,从而提高DCT处理或IDCT处理的效率,进而提高视频的分辨率和帧率。当然,也可以支持32×32的编码块、16×16的编码块、8×8的编码块、4×4的编码块。
此外,还需要说明的是,本实施例实现变换编码的硬件还包括系统时钟。其中,预控制模块还可以包括复位键、开始键、结束标识输出端、编码块宽度输入端、编码块高度输入端和大小信息输出端中的一种或多种。其中,复位键对应信号比特位为1,其用于进行硬件的复位;开始键对应信号比特位为1,其用于表示何时开始工作,具体可以为高电平开始工作;结束标识输出端对应信号比特位为1,其用于表示操作何时结束,具体可以为高电平表示操作结束;编码块宽度输入端和编码块高度输入端对应信号的比特位可以为6,其用于获取编码块宽度和编码块高度;大小信息输出端用于输出待变换块的大小信息至选择编码块大小模块。
步骤S20,通过选择编码块大小模块,基于所述大小信息从DCT变换器组合中确定对应的DCT变换器,并将所述待变换块传输至所述DCT变换器;
在本实施例中,通过选择编码块大小模块,基于待变换块的大小信息从DCT变换器组合中确定对应的DCT变换器,并将该待变换块传输至该对应的DCT变换器。其中,DCT变换器组合包括多种DCT变换器,每一种DCT变换器处理不同大小的待变换块,例如64点DCT变换器用于处理64×64的待变换块。
需要说明的是,选择编码块大小模块包括待变换块输入端、大小信息输入端、多个待变换块输出端等。其中,待变换块输入端用于接收待变换块,该待变换块输入端对应信号的比特位可以为1024,以支持最大64位,每位16比特的数据;大小信息输入端用于接收待变换块的大小信息;多个待变换块输出端的数量与DCT变换器组合中的DCT变换器数量一一对应,例如,待变换块的大小信息为4×4,则通过63:0的待变换块输出端输出待变换块,以传输至对应DCT变换器组合中的4点DCT变换器,可以理解,每次传输以待变换块的一列或一行进行传输,则每次传输的比特位为64位(4×16=64),即63:0。
此外,还需要说明的是,DCT变换器组合包括多个DCT变换器,该DCT变换器组合的DCT变换器数量可以根据实际需要进行设定。每个DCT变换器均是用于对对应大小的待编码块进行DCT处理或IDCT处理。
其中,DCT变换器包括待变换块输入端、正反变换控制信号输入端、变换块输出端等。该待变换块输入端用于接收选择编码块大小模块传输的待变换块;该正反变换控制信号输入端对应信号比特位为1,在低电平时进行DCT处理,在高电平时进行IDCT处理,当然也可以在低电平时进行IDCT处理,在高电平时进行DCT处理;变换块输出端用于输出进行DCT或IDCT处理后的变换块,该变换块输出端对应信号的比特位可以为1024,以支持最大64位,每位16比特的数据输出。
在一实施例中,DCT变换器组合包括4点DCT变换器、8点DCT变换器、16点DCT变换器、32点DCT变换器和64点DCT变换器。所述4点DCT变换器,用于对所述大小信息为4×4的待变换块进行DCT处理或IDCT处理;所述8点DCT变换器,用于对所述大小信息为8×8的待变换块进行DCT处理或IDCT处理;所述16点DCT变换器,用于对所述大小信息为16×16的待变换块进行DCT处理或IDCT处理;所述32点DCT变换器,用于对所述大小信息为32×32的待变换块进行DCT处理或IDCT处理;所述64点DCT变换器,用于对所述大小信息为64×64的待变换块进行DCT处理或IDCT处理。
步骤S30,通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块。
在本实施例中,通过DCT变换器对待变换块进行DCT处理或IDCT处理,得到待变换块对应的变换块。具体的,DCT变换器根据接收到的正反变换控制信号确定是进行DCT处理还是IDCT处理,例如,接收到的正反变换控制信号为低电平,则进行DCT处理,若接收到的正反变换控制信号为高电平,则进行IDCT处理。
在一实施例中,可以将DCT变换器的蝶形运算操作设定为多个流水线阶段,以使DCT变换器通过多个流水线阶段,并行对待变换块进行DCT或IDCT的蝶形运算处理,从而更加快速得到待变换块对应的变换块。需要说明的是,DCT具备快速算法,其中,蝶形运算处理为快速算法。因此,通过计算流水线的并行策略,充分利用硬件内部的并行性,从而提高数据处理能力,进而提高视频的分辨率和帧率。
在一实施例中,可以对单个执行计算操作的电路进行复制得到多个执行计算操作的电路,也就是说DCT变换器包括多个执行计算操作的电路,以使DCT变换器通过所述多个执行计算操作的电路,并行对所述待变换块进行DCT或IDCT的计算循环处理,从而快速得到所述待变换块对应的变换块。因此,通过循环展开的并行策略,在消耗一些资源的情况下提升整体效率,从而提高数据处理能力,进而提高视频的分辨率和帧率。
在一实施例中,可以对单个所述DCT变换器进行复制得到多个DCT变换器,该复制得到的多个DCT变换器均是用于处理对应大小的待变换块,即对待变换块进行处理的DCT变换器为多个DCT变化器。具体的,通过所述多个DCT变换器,并行对多个所述待变换块进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的一维DCT变换结果;将所述多个待变换块对应的一维DCT变换结果存储于临时缓冲区;对所述一维DCT变换结果进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的二维DCT变换结果。因此,通过模块级并行的并行策略,在消耗一些资源的情况下提升整体效率,从而提高数据处理能力,进而提高视频的分辨率和帧率。
需要说明的是,上述计算流水线、循环展开、模块级并行的三种并行策略,可以全部同时实现,也可以选择其中的一个或多个进行实现。也就是说,上述三种并行策略并不一定是并列方案,因为,计算流水线利用的是DCT变换器本身的硬件并行性;而循环展开是对DCT变换器中执行计算操作的电路进行复制,因此,每个执行计算操作的电路也可以利用计算流水线的并行策略;而模块级并行是对DCT变换器进行复制,因此,每个DCT变换器也可以利用循环展开和计算流水线的并行策略。
此外,还需要说明的是,在常见的视频编码标准下,其DCT变换器会同时使用DCT-II、DCT-VIII、DST-VII三种计算方法。本实施例为了简化电路,从软件层面出发,进行DCT计算过程中,只使用DCT-II,而不使用DCT-VIII以及DST-VII。这种设计策略可以简化电路的复杂程度,同时经过实验测定,去除掉DCT-VIII以及DST-VII两个变换模块后,对整体的编码性能影响不大。
其中,DCT-II的SAU模块的系数分别为:4点DCT的SAU模块为17、42;8点DCT的SAU模块为9、25、38、44;16点DCT的SAU模块为4、13、21、29、35、40、43、45;32点DCT的SAU模块为2、7、11、15、19、23、27、30、34、36、39、41、43、44、45、45;64点DCT的SAU模块为1、3、6、8、10、12、14、16、18、20、22、24、26、28、30、31、33、34、36、37、38、39、40、41、42、43、44、44、45、45、45、45。基于此,设计了一种更简洁的SAU模块,具体的,可以参照下述第六实施例,此处不再一一赘述。
为便于理解,参照图3,图3为本发明实施例涉及的整体电路示意图,可以理解,图3中示出的电路结构并不构成对电路的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,预控制模块包括复位键rsk、结束标识输出端done、编码块宽度输入端width_log2、编码块高度输入端height_log2、大小信息输出端type、系统时钟输入端clk中的一种或多种;复位键对应信号比特位为1,其用于进行硬件的复位;结束标识输出端对应信号比特位为1,其用于表示操作何时结束,具体可以为高电平表示操作结束;编码块宽度输入端和编码块高度输入端对应信号的比特位可以为6,其用于获取编码块宽度和编码块高度;大小信息输出端用于输出待变换块的大小信息至选择编码块大小模块。选择编码块大小模块包括待变换块输入端coef_in、大小信息输入端type、五个待变换块输出端coef_in[63:0]、coef_in[127:0]、coef_in[255:0]、coef_in[511:0]、coef_in[1023:0]和系统时钟输入端clk等。其中,待变换块输入端用于接收待变换块,该待变换块输入端对应信号的比特位可以为1024,以支持最大64位,每位16比特的数据;大小信息输入端用于接收待变换块的大小信息;多个待变换块输出端的数量与DCT变换器组合中的DCT变换器数量一一对应,例如,待变换块的大小信息为4×4,则通过63:0的待变换块输出端输出待变换块,以传输至对应DCT变换器组合中的4点DCT变换器,可以理解,每次传输以待变换块的一列或一行进行传输,则每次传输的比特位为64位(4×16=64),即63:0。DCT变换器包括待变换块输入端coef_in、正反变换控制信号输入端inverse、变换块输出端coef_out等。该待变换块输入端用于接收选择编码块大小模块传输的待变换块;该正反变换控制信号输入端对应信号比特位为1,在低电平时进行DCT处理,在高电平时进行IDCT处理,当然也可以在低电平时进行IDCT处理,在高电平时进行DCT处理;变换块输出端用于输出进行DCT或IDCT处理后的变换块,该变换块输出端对应信号的比特位可以为1024,以支持最大64位,每位16比特的数据输出。
具体的,可以参照下述信号接口协议以及作用描述的表格。
基于上述表格和图3,首先输入待编码块(coef_in)、编码块的大小信息(width_log2,height_log2)、正反变换的执行信息(inverse)。然后预控制模块将处理编码块的大小信息及将进行变换的模式传递给选择编码块大小模块,由该模块确定该调用哪一部分电路。同时在具体执行计算的过程中,会根据正反变换的执行信息(inverse)来确定是执行正变换(DCT)还是反变换(IDCT)。在执行结束后会输出变换结果(coef_out)以及操作是否结束的信号(done)。
本发明实施例提供一种用于视频编解码的变换编码硬件实现方法,在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块及待变换块的大小信息;通过选择编码块大小模块,基于大小信息从DCT变换器组合中确定对应的DCT变换器,并将待变换块传输至DCT变换器;通过DCT变换器对待变换块进行DCT处理或IDCT处理,得到待变换块对应的变换块。通过上述方式,获取待变换块的大小信息,以通过该大小信息确定对应的DCT变换器,即采用DCT变换器组合支持不同大小的待变换块,具体的,本发明实施例可以支持64x64的待变换块,从而确保达到AVS3编码标准,实现基于AVS3编码标准的变换编码,进而实现基于AVS3编码标准下的变换硬件。
进一步地,基于上述第一实施例,提出本发明用于视频编解码的变换编码硬件实现方法第二实施例。
在本实施例中,上述步骤S30包括:
步骤a31,通过所述四个流水线阶段,并行对所述待变换块进行DCT或IDCT的蝶形运算处理,得到所述待变换块对应的变换块。
在本实施例中,DCT变换器组合中的每个DCT变换器的蝶形运算操作均包括四个流水线阶段,所述四个流水线阶段依次为蝶形系数生成阶段、位移阶段、多常数乘法器SAU阶段、生成输出阶段。基于此,通过DCT变换器的四个流水线阶段,并行对待变换块进行DCT或IDCT的蝶形运算处理,以得到待变换块对应的变换块。
需要说明的是,不同的DCT变换器(处理不同大小待变换块的DCT变换器)其蝶形运算过程不一样,但是其可以划分为上述四个流水线阶段。其中,蝶形系数生成阶段用于生成蝶形运算的系数,该蝶形系数生成阶段可以包括加运算和乘运算的一种或多种;生成输出阶段用于生成蝶形运算的结果,该生成输出阶段可以包括加运算和乘运算的一种或多种。
参照图4,图4为本发明实施例涉及的计算流水线示意图。图4中是以编码块(待变换块)的列为基准进行处理的,当然也可以以编码块的行为基准进行处理。其中,E0和O0为蝶形运算的系数。
此外,还需要说明的是,本实施例的硬件设计中采用的计算流水线技术可以充分利用硬件内部的并行性,从而提高数据处理能力。具体的,利用计算流水线来将DCT或IDCT过程中的计算操作分割调度到各个流水线阶段,以影响最大时钟频率和占用的资源。
在一些实施例中,每个执行计算操作的电路也可以利用上述计算流水线的并行策略,以同时将计算流水线、循环展开这两种硬件加速策略共同用在AVS3视频编码标准下的变换模块硬件实现过程中。
本实施例中,通过计算流水线的并行策略,充分利用硬件内部的并行性,从而提高数据处理能力,进而提高视频的分辨率和帧率,以实现对变换硬件的加速,最终达到的效果是在8K分辨率下,全I帧编码模型下,速度达到120帧,以进一步确保基于AVS3编码标准下的变换硬件的实现。
进一步地,基于上述第一实施例,提出本发明用于视频编解码的变换编码硬件实现方法第三实施例。
在本实施例中,上述步骤S30包括:
步骤a32,通过所述多个执行计算操作的电路,并行对所述待变换块进行DCT或IDCT的计算循环处理,得到所述待变换块对应的变换块。
在本实施例中,DCT变换器包括多个执行计算操作的电路,所述多个执行计算操作的电路通过对单个执行计算操作的电路进行复制得到。基于此,通过多个执行计算操作的电路,并行对待变换块进行DCT或IDCT的计算循环处理,以得到待变换块对应的变换块。
需要说明的是,在默认情况下,每次计算的循环操作都是折叠的,即每次循环都使用同一套电路,每次循环分时复用。但是通过循环展开,可以将原始电路复制若干份,然后复制出来的电路可以同时执行不同的计算。具体的,将DCT/IDCT中需要循环执行的乘法加法操作的电路复制成多份并同时执行操作,在消耗一些资源的情况下提升整体效率。
参照图5,图5为本发明实施例涉及的循环展开示意图。图5中是以编码块(待变换块)的列为基准进行处理的,并且每三列作为一个子循环,当然也可以以编码块的行为基准进行处理,其一个子循环的列数或行数也可以根据实际情况进行设定。
在一些实施例中,每个DCT变换器可以利用循环展开和计算流水线的并行策略,以同时将计算流水线、循环展开这两种硬件加速策略共同用在AVS3视频编码标准下的变换模块硬件实现过程中。
本实施例中,通过循环展开的并行策略,在消耗一些资源的情况下提升整体效率,从而提高数据处理能力,进而提高视频的分辨率和帧率,以实现对变换硬件的加速,最终达到的效果是在8K分辨率下,全I帧编码模型下,速度达到120帧,以进一步确保基于AVS3编码标准下的变换硬件的实现。
进一步地,基于上述第一实施例,提出本发明用于视频编解码的变换编码硬件实现方法第四实施例。
在本实施例中,上述步骤S30包括:
步骤a33,通过多个所述DCT变换器,并行对多个所述待变换块进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的一维DCT变换结果;
步骤a34,将所述多个待变换块对应的一维DCT变换结果存储于临时缓冲区;
步骤a35,对所述一维DCT变换结果进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的二维DCT变换结果。
在本实施例中,所述DCT变换器为多个,多个所述DCT变换器通过对单个所述DCT变换器进行复制得到。基于此,通过多个DCT变换器,并行对多个待变换块进行一维DCT处理或IDCT处理,得到多个待变换块对应的一维DCT变换结果,然后,多个待变换块对应的一维DCT变换结果存储于临时缓冲区,以再一次进行一维DCT处理,即对一维DCT变换结果进行一维DCT处理或IDCT处理,得到多个待变换块对应的二维DCT变换结果,从而得到最终的变换块。
需要说明的是,通过帧级并行策略来优化算法性能,即使用一种模块级并行的并行策略来加速变换硬件,具体的,是将原始模块级电路复制成若干份,每一份都同步进行DCT或IDCT操作。
参照图6,图6为本发明实施例涉及的模块级并行示意图。图6中是以4个编码块(待变换块)为基准进行处理的,因此需复制得到4个DCT单元(DCT变换器),当然也可以以更多或更少的编码块为基准进行处理,其可以根据实际情况进行设定,此处不作限定。
在一些实施例中,每个DCT变换器可以利用循环展开和计算流水线的并行策略,以同时将计算流水线、循环展开、模块级并行这三种硬件加速策略共同用在AVS3视频编码标准下的变换模块硬件实现过程中。
本实施例中,通过循环展开的并行策略,在消耗一些资源的情况下提升整体效率,从而提高数据处理能力,进而提高视频的分辨率和帧率,以实现对变换硬件的加速,最终达到的效果是在8K分辨率下,全I帧编码模型下,速度达到120帧,以进一步确保基于AVS3编码标准下的变换硬件的实现。
进一步地,基于上述第一实施例,提出本发明用于视频编解码的变换编码硬件实现方法第五实施例。
在本实施例中,上述步骤S30之前,该用于视频编解码的变换编码硬件实现方法还包括:
步骤A,获取正反变换控制信号,并将所述正反变换控制信号传输至所述DCT变换器;
步骤B,基于所述正反变换控制信号,确定所述DCT变换器对所述待变换块的执行流程,以供基于所述执行流程确定所述DCT变换器对所述待变换块是进行DCT处理还是IDCT处理。
在本实施例中,DCT变换器至少包括正反变换控制信号输入端,该正反变换控制信号输入端对应信号(正反变换控制信号)比特位为1,在低电平时进行DCT处理,在高电平时进行IDCT处理,当然也可以在低电平时进行IDCT处理,在高电平时进行DCT处理。基于此,获取正反变换控制信号,并将正反变换控制信号传输至DCT变换器,然后,基于正反变换控制信号,确定DCT变换器对所述待变换块的执行流程,以供基于执行流程确定DCT变换器对待变换块是进行DCT处理还是IDCT处理。其中,执行流程包括DCT(正变换)和IDCT(反变换)。
需要说明的是,在具体执行计算的过程中,会根据该执行流程来确定是执行正变换(DCT)还是反变换(IDCT)。为便于理解,可以参照图3及上述第一实施例,此处不再一一赘述。
本实施例中,通过正反变换控制信号确定DCT变换器是进行DCT处理还是IDCT处理,从而同时实现DCT和IDCT的复用,以减少器件成本,并提高数据处理效率。
进一步地,基于上述第一实施例,提出本发明用于视频编解码的变换编码硬件实现方法第六实施例。
在本实施例中,所述DCT变换器组合包括4点DCT变换器、8点DCT变换器、16点DCT变换器、32点DCT变换器和64点DCT变换器。
在本实施例中,每个DCT变换器的SAU模块均与其对应的DCT变换器大小一一对应。同时,本实施例只采用DCT-II设计策略对SAU模块进行设计。
具体的,参照图7,图7为本发明实施例涉及的4点DCT中SAU模块示意图。
所述4点DCT变换器包括第一SAU模块,所述第一SAU模块包括左移4位的第一移位器、左移3位的第二移位器、左移1位的第三移位器、第一加法器和第二加法器,所述第一SAU模块的输入端分别与所述第一移位器的输入端、所述第二移位器的输入端和所述第一加法器的第一输入端相连接,所述第一移位器的输出端与所述第一加法器的第二输入端相连接,所述第一加法器的输出端分别与所述第一SAU模块的第一输出端和所述第三移位器的输入端相连接,所述第三移位器的输出端与所述第二加法器的第一输入端相连接,所述第二移位器的输出端与所述第二加法器的第二输入端相连接,所述第二加法器的输出端与所述第一SAU模块的第二输出端相连接。
需要说明的是,所述4点DCT变换器,用于对所述大小信息为4×4的待变换块进行DCT处理或IDCT处理。该4点DCT变换器的第一SAU模块的计算公式为17=16(输入左移4位)+1、42=17<<1+8(输入左移3位)。
具体的,参照图8,图8为本发明实施例涉及的8点DCT中SAU模块示意图。
所述8点DCT变换器包括第二SAU模块,所述第二SAU模块包括左移3位的第四移位器、左移4位的第五移位器、左移1位的第六移位器、左移2位的第七移位器、第三加法器、第四加法器、第五加法器和第六加法器,所述第二SAU模块的输入端分别与所述第四移位器的输入端、所述第五移位器的输入端、所述第六移位器的输入端和所述第三加法器的第一输入端相连接,所述第四移位器的输出端分别与所述第三加法器的第二输入端和所述第六加法器的第一输入端相连接,所述第三加法器的输出端分别与所述第二SAU模块的第一输出端、所述第四加法器的第一输入端和所述第七移位器的输入端相连接,所述第五移位器的输出端与所述第四加法器的第二输入端相连接,所述第四加法器的输出端与所述第二SAU模块的第二输出端相连接,所述第六移位器的输出端与所述第五加法器的第一输入端相连接,所述第七移位器的输出端分别与所述第五加法器的第二输入端和所述第六加法器的第二输入端相连接,所述第五加法器的输出端与所述第二SAU模块的第三输出端相连接,所述第六加法器的输出端与所述第二SAU模块的第四输出端相连接。
需要说明的是,所述8点DCT变换器,用于对所述大小信息为8×8的待变换块进行DCT处理或IDCT处理。该8点DCT变换器的第一SAU模块的计算公式为9=8(输入左移3位)+1、25=9+16(输入左移4位)、38=9<<2+2(输入左移1位)、44=8+9<<2。
具体的,参照图9,图9为本发明实施例涉及的16点DCT中SAU模块示意图。
所述16点DCT变换器包括第三SAU模块,所述第三SAU模块包括左移2位的第八移位器、左移3位的第九移位器、左移4位的第十移位器、左移1位的第十一移位器、左移1位的第十二移位器、第七加法器、第八加法器、第九加法器、第十加法器、第十一加法器、第十二加法器和第十三加法器,所述第三SAU模块的输入端分别与所述第八移位器的输入端、所述第九移位器的输入端、所述第十移位器的输入端、所述第十一移位器的输入端、所述第七加法器的第一输入端、所述第九加法器的第一输入端、所述第十加法器的第一输入端、所述第十一加法器的第一输入端和所述第十二加法器的第一输入端相连接,所述第八移位器的输出端分别与所述第三SAU模块的第一输出端、所述第七加法器的第二输入端、所述第九加法器的第二输入端和所述第十一加法器的第二输入端相连接,所述第九移位器的输出端分别与所述第七加法器的第三输入端和所述第八加法器的第一输入端相连接,所述第七加法器的输出端分别与所述第三SAU模块的第二输出端和所述第十加法器的第二输入端相连接,所述第十移位器的输出端与所述第九加法器的第三输入端相连接,所述第九加法器的输出端分别与所述第三SAU模块的第三输出端、所述第八加法器的第二输入端、所述第十加法器的第三输入端和所述第十二移位器的输入端相连接,所述第八加法器的输出端与所述第三SAU模块的第四输出端相连接,所述第十加法器的输出端分别与所述第三SAU模块的第五输出端和所述第十一加法器的第三输入端相连接,所述第十一加法器的输出端与所述第三SAU模块的第六输出端相连接,所述第十二移位器的输出端与所述第十二加法器的第二输入端相连接,所述第十二加法器的输出端分别与所述第三SAU模块的第七输出端和所述第十三加法器的第一输入端相连接,所述第十一移位器的输出端与所述第十三加法器的第二输入端相连接,所述第十三加法器的输出端与所述第三SAU模块的第八输出端相连接。
需要说明的是,所述16点DCT变换器,用于对所述大小信息为16×16的待变换块进行DCT处理或IDCT处理。该16点DCT变换器的第一SAU模块的计算公式为4=4(输入左移2位)、13=4+8(输入左移3位)+1、21=4+1+16(输入左移4位)、29=21+8、35=13+21+1、40=4+35+1、43=21<<1+1、45=43+2(输入左移1位)。
具体的,所述32点DCT变换器包括第四SAU模块,所述第四SAU模块包括左移1位的第十三移位器、左移2位的第十四移位器、左移2位的第十五移位器、第一减法器、第十四加法器、第十五加法器、第十六加法器、第十七加法器、第十八加法器、第十九加法器、第二十加法器、第二十一加法器、第二十二加法器、第二十三加法器、第二十四加法器、第二十五加法器和第二十六加法器,所述第四SAU模块的输入端分别与所述第十三移位器的输入端、所述第十四移位器的输入端、所述第一减法器的第一输入端、所述第二十五加法器的第一输入端和所述第二十六加法器的第一输入端相连接,所述第十三移位器的输出端分别与所述第四SAU模块的第一输出端、所述第十五移位器的输入端、所述第二十一加法器的第一输入端、所述第二十二加法器的第一输入端、所述第二十三加法器的第一输入端和所述第二十四加法器的第一输入端相连接,所述第十五移位器的输出端与所述第一减法器的第二输入端相连接,所述第一减法器的输出端分别与所述第四SAU模块的第二输出端、所述第十四加法器的第一输入端、所述第十九加法器的第一输入端和所述第二十二加法器的第二输入端相连接,所述第十四移位器的输出端分别与所述第十四加法器的第二输入端、所述第十五加法器的第一输入端、所述第十六加法器的第一输入端、所述第十七加法器的第一输入端、所述第十八加法器的第一输入端和所述第二十加法器的第一输入端相连接,所述第十四加法器的输出端分别与所述第四SAU模块的第三输出端和所述第十五加法器的第二输入端相连接,所述第十五加法器的输出端分别与所述第四SAU模块的第四输出端和所述第十六加法器的第二输入端相连接,所述第十六加法器的输出端分别与所述第四SAU模块的第五输出端和所述第十七加法器的第二输入端相连接,所述第十七加法器的输出端分别与所述第四SAU模块的第六输出端、所述第十八加法器的第二输入端和所述第十九加法器的第二输入端相连接,所述第十八加法器的输出端与所述第四SAU模块的第七输出端相连接,所述第十九加法器的输出端分别与所述第四SAU模块的第八输出端、所述第二十加法器的第二输入端和所述第二十二加法器的第三输入端相连接,所述第二十加法器的输出端分别与所述第四SAU模块的第九输出端和所述第二十一加法器的第二输入端相连接,所述第二十一加法器的输出端与所述第四SAU模块的第十输出端相连接,所述第二十二加法器的输出端分别与所述第四SAU模块的第十一输出端和所述第二十三加法器的第二输入端相连接,所述第二十三加法器的输出端分别与所述第四SAU模块的第十二输出端和所述第二十四加法器的第二输入端相连接,所述第二十四加法器的输出端分别与所述第四SAU模块的第十三输出端和所述第二十五加法器的第二输入端相连接,所述第二十五加法器的输出端分别与所述第四SAU模块的第十四输出端和所述第二十六加法器的第二输入端相连接,所述第二十六加法器的输出端分别与所述第四SAU模块的第十五输出端和所述第四SAU模块的第十六输出端相连接。
需要说明的是,所述32点DCT变换器,用于对所述大小信息为32×32的待变换块进行DCT处理或IDCT处理。该32点DCT变换器的第一SAU模块的计算公式参照下表。
2=2(输入左移1位) |
7=2<<2-1 |
11=7+4(输入左移2位) |
15=11+4 |
19=15+4 |
23=19+4 |
27=23+4 |
30=23+7 |
34=30+4 |
36=34+2 |
39=30+7+2 |
41=39+2 |
43=41+2 |
44=43+1 |
45=44+1 |
45=45 |
具体的,所述64点DCT变换器包括第五SAU模块,所述第五SAU模块包括左移1位的第十六移位器、左移1位的第十七移位器、左移3位的第十八移位器、第二十七加法器、第二十八加法器、第二十九加法器、第三十加法器、第三十一加法器、第三十二加法器、第三十三加法器、第三十四加法器、第三十五加法器、第三十六加法器、第三十七加法器、第三十八加法器、第三十九加法器、第四十加法器、第四十一加法器、第四十二加法器、第四十三加法器、第四十四加法器、第四十五加法器、第四十六加法器、第四十七加法器、第四十八加法器、第四十九加法器、第五十加法器和第五十一加法器,所述第五SAU模块的输入端分别与所述SAU模块的第一输出端、所述第十六移位器的输入端、所述第十八移位器的输入端、所述第二十七加法器的第一输入端、所述第三十九加法器的第一输入端、所述第四十一加法器的第一输入端、所述第四十三加法器的第一输入端、所述第四十四加法器的第一输入端、所述第四十五加法器的第一输入端、所述第四十六加法器的第一输入端、所述第四十七加法器的第一输入端、所述第四十八加法器的第一输入端、所述第四十九加法器的第一输入端、所述第五十加法器的第一输入端和所述第五十一加法器的第一输入端相连接,所述第十六移位器的输出端分别与所述第二十七加法器的第二输入端、所述第二十八加法器的第一输入端、所述第二十九加法器的第一输入端、所述第三十加法器的第一输入端、所述第三十一加法器的第一输入端、所述第三十二加法器的第一输入端、所述第三十三加法器的第一输入端、所述第三十四加法器的第一输入端、所述第三十五加法器的第一输入端、所述第三十六加法器的第一输入端、所述第三十七加法器的第一输入端、所述第三十八加法器的第一输入端、所述第四十加法器的第一输入端和所述第四十二加法器的第一输入端相连接,所述第二十七加法器的输出端分别与所述第五SAU模块的第二输出端和所述第十七移位器的输入端相连接,所述第十七移位器的输出端与所述第五SAU模块的第三输出端相连接,所述第十八移位器的输出端分别与所述第五SAU模块的第四输出端和所述第二十八加法器的第二输入端相连接,所述第二十八加法器的输出端分别与所述第五SAU模块的第五输出端和所述第二十九加法器的第二输入端相连接,所述第二十九加法器的输出端分别与所述第五SAU模块的第六输出端和所述第三十加法器的第二输入端相连接,所述第三十加法器的输出端分别与所述第五SAU模块的第七输出端和所述第三十一加法器的第二输入端相连接,所述第三十一加法器的输出端分别与所述第五SAU模块的第八输出端和所述第三十二加法器的第二输入端相连接,所述第三十二加法器的输出端分别与所述第五SAU模块的第九输出端和所述第三十三加法器的第二输入端相连接,所述第三十三加法器的输出端分别与所述第五SAU模块的第十输出端和所述第三十四加法器的第二输入端相连接,所述第三十四加法器的输出端分别与所述第五SAU模块的第十一输出端和所述第三十五加法器的第二输入端相连接,所述第三十五加法器的输出端分别与所述第五SAU模块的第十二输出端和所述第三十六加法器的第二输入端相连接,所述第三十六加法器的输出端分别与所述第五SAU模块的第十三输出端和所述第三十七加法器的第二输入端相连接,所述第三十七加法器的输出端分别与所述第五SAU模块的第十四输出端和所述第三十八加法器的第二输入端相连接,所述第三十八加法器的输出端分别与所述第五SAU模块的第十五输出端和所述第三十九加法器的第二输入端相连接,所述第三十九加法器的输出端分别与所述第五SAU模块的第十六输出端和所述第四十加法器的第二输入端相连接,所述第四十加法器的输出端分别与所述第五SAU模块的第十七输出端和所述第四十一加法器的第二输入端相连接,所述第四十一加法器的输出端分别与所述第五SAU模块的第十八输出端和所述第四十二加法器的第二输入端相连接,所述第四十二加法器的输出端分别与所述第五SAU模块的第十九输出端和所述第四十三加法器的第二输入端相连接,所述第四十三加法器的输出端分别与所述第五SAU模块的第二十输出端和所述第四十四加法器的第二输入端相连接,所述第四十四加法器的输出端分别与所述第五SAU模块的第二十一输出端和所述第四十五加法器的第二输入端相连接,所述第四十五加法器的输出端分别与所述第五SAU模块的第二十二输出端和所述第四十六加法器的第二输入端相连接,所述第四十六加法器的输出端分别与所述第五SAU模块的第二十三输出端和所述第四十七加法器的第二输入端相连接,所述第四十七加法器的输出端分别与所述第五SAU模块的第二十四输出端和所述第四十八加法器的第二输入端相连接,所述第四十八加法器的输出端分别与所述第五SAU模块的第二十五输出端和所述第四十九加法器的第二输入端相连接,所述第四十九加法器的输出端分别与所述第五SAU模块的第二十六输出端和所述第五十加法器的第二输入端相连接,所述第五十加法器的输出端分别与所述第五SAU模块的第二十七输出端、所述第五SAU模块的第二十八输出端和所述第五十一加法器的第二输入端相连接,所述第五十一加法器的输出端分别与所述第五SAU模块的第二十九输出端、所述第五SAU模块的第三十输出端、所述第五SAU模块的第三十一输出端和所述第五SAU模块的第三十二输出端相连接。
需要说明的是,所述64点DCT变换器,用于对所述大小信息为64×64的待变换块进行DCT处理或IDCT处理。该64点DCT变换器的第一SAU模块的计算公式参照下表。
1=1 | 33=31+2 |
3=2(输入左移1位)+1 | 34=33+1 |
6=3<<1 | 36=34+2 |
8=8(输入左移3位) | 37=36+1 |
10=8+2 | 38=37+1 |
12=10+2 | 39=38+1 |
14=12+2 | 40=39+1 |
16=14+2 | 41=40+1 |
18=16+2 | 42=41+1 |
20=18+2 | 43=42+1 |
22=20+2 | 44=43+1 |
24=22+2 | 44=44 |
26=24+2 | 45=44+1 |
28=26+2 | 45=45 |
30=28+2 | 45=45 |
31=30+1 | 45=45 |
本实施例中,4点DCT中SAU模块只需3个移位器和2个加法器即可实现,8点DCT中SAU模块只需4个移位器和4个加法器即可实现,16点DCT中SAU模块只需5个移位器和7个加法器即可实现,32点DCT中SAU模块只需3个移位器和14个加法器(其中一个为减法器)即可实现,64点DCT中SAU模块只需3个移位器和25个加法器即可实现,因此,本实施例设计一种全新的更简洁且硬件资源消耗更少的SAU模块,从而实现对变换硬件的加速,最终达到的效果是在8K分辨率下,全I帧编码模型下,速度达到120帧,以进一步确保基于AVS3编码标准下的变换硬件的实现。
本发明还提供一种用于视频编解码的变换编码硬件实现装置。
在本实施例中,所述用于视频编解码的变换编码硬件实现装置包括:预控制模块、选择编码块大小模块和DCT变换器组合,所述选择编码块大小模块分别与所述预控制模块和所述DCT变换器组合相连接,
所述预控制模块,用于在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块的编码块宽度和编码块高度,基于所述编码块宽度和所述编码块高度生成所述待变换块的大小信息,传输所述大小信息至所述选择编码块大小模块;
所述选择编码块大小模块,用于接收所述大小信息和获取所述待变换块,基于所述大小信息从所述DCT变换器组合中确定对应的DCT变换器,将所述待变换块传输至所述DCT变换器;
所述DCT变换器组合及所述DCT变换器,用于对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块。
进一步地,所述DCT变换器的蝶形运算操作包括四个流水线阶段,所述四个流水线阶段依次为蝶形系数生成阶段、位移阶段、多常数乘法器SAU阶段、生成输出阶段,
所述DCT变换器,还用于通过所述四个流水线阶段,并行对所述待变换块进行DCT或IDCT的蝶形运算处理,得到所述待变换块对应的变换块;和/或,
所述DCT变换器包括多个执行计算操作的电路,所述多个执行计算操作的电路通过对单个执行计算操作的电路进行复制得到,
所述DCT变换器,还用于通过所述多个执行计算操作的电路,并行对所述待变换块进行DCT或IDCT的计算循环处理,得到所述待变换块对应的变换块;和/或,
所述DCT变换器为多个,多个所述DCT变换器通过对单个所述DCT变换器进行复制得到,
多个所述DCT变换器,用于并行对多个所述待变换块进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的一维DCT变换结果,将所述多个待变换块对应的一维DCT变换结果存储于临时缓冲区,对所述一维DCT变换结果进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的二维DCT变换结果。
进一步地,所述DCT变换器组合包括4点DCT变换器、8点DCT变换器、16点DCT变换器、32点DCT变换器和64点DCT变换器,
所述4点DCT变换器,用于对所述大小信息为4×4的待变换块进行DCT处理或IDCT处理;
所述8点DCT变换器,用于对所述大小信息为8×8的待变换块进行DCT处理或IDCT处理;
所述16点DCT变换器,用于对所述大小信息为16×16的待变换块进行DCT处理或IDCT处理;
所述32点DCT变换器,用于对所述大小信息为32×32的待变换块进行DCT处理或IDCT处理;
所述64点DCT变换器,用于对所述大小信息为64×64的待变换块进行DCT处理或IDCT处理。
本发明用于视频编解码的变换编码硬件实现装置的具体实施例与上述用于视频编解码的变换编码硬件实现方法各实施例基本相同,在此不作赘述。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的用于视频编解码的变换编码硬件实现方法的步骤。
本发明计算机可读存储介质的具体实施例与上述用于视频编解码的变换编码硬件实现方法各实施例基本相同,在此不作赘述。
本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序产品被处理器执行时实现如以上任一项实施例所述的用于视频编解码的变换编码硬件实现方法的步骤。
本发明计算机程序产品的具体实施例与上述用于视频编解码的变换编码硬件实现方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种用于视频编解码的变换编码硬件实现方法,其特征在于,所述方法包括以下步骤:
在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块及所述待变换块的大小信息;
通过选择编码块大小模块,基于所述大小信息从DCT变换器组合中确定对应的DCT变换器,并将所述待变换块传输至所述DCT变换器;
通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块;
所述DCT变换器组合包括4点DCT变换器、8点DCT变换器、16点DCT变换器、32点DCT变换器和64点DCT变换器,
所述4点DCT变换器,用于对所述大小信息为4×4的待变换块进行DCT处理或IDCT处理;
所述8点DCT变换器,用于对所述大小信息为8×8的待变换块进行DCT处理或IDCT处理;
所述16点DCT变换器,用于对所述大小信息为16×16的待变换块进行DCT处理或IDCT处理;
所述32点DCT变换器,用于对所述大小信息为32×32的待变换块进行DCT处理或IDCT处理;
所述64点DCT变换器,用于对所述大小信息为64×64的待变换块进行DCT处理或IDCT处理。
2.如权利要求1所述的用于视频编解码的变换编码硬件实现方法,其特征在于,所述DCT变换器的蝶形运算操作包括四个流水线阶段,所述四个流水线阶段依次为蝶形系数生成阶段、位移阶段、多常数乘法器SAU阶段、生成输出阶段,
所述通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块的步骤包括:
通过所述四个流水线阶段,并行对所述待变换块进行DCT或IDCT的蝶形运算处理,得到所述待变换块对应的变换块。
3.如权利要求1所述的用于视频编解码的变换编码硬件实现方法,其特征在于,所述DCT变换器包括多个执行计算操作的电路,所述多个执行计算操作的电路通过对单个执行计算操作的电路进行复制得到,
所述通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块的步骤包括:
通过所述多个执行计算操作的电路,并行对所述待变换块进行DCT或IDCT的计算循环处理,得到所述待变换块对应的变换块。
4.如权利要求1所述的用于视频编解码的变换编码硬件实现方法,其特征在于,所述DCT变换器为多个,多个所述DCT变换器通过对单个所述DCT变换器进行复制得到,
所述通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块的步骤包括:
通过多个所述DCT变换器,并行对多个所述待变换块进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的一维DCT变换结果;
将多个所述待变换块对应的一维DCT变换结果存储于临时缓冲区;
对所述一维DCT变换结果进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的二维DCT变换结果。
5.如权利要求1至4中任一项所述的用于视频编解码的变换编码硬件实现方法,其特征在于,所述通过所述DCT变换器对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块的步骤之前,还包括:
获取正反变换控制信号,并将所述正反变换控制信号传输至所述DCT变换器;
基于所述正反变换控制信号,确定所述DCT变换器对所述待变换块的执行流程,以供基于所述执行流程确定所述DCT变换器对所述待变换块是进行DCT处理还是IDCT处理。
6.一种用于视频编解码的变换编码硬件实现装置,其特征在于,所述装置包括:预控制模块、选择编码块大小模块和DCT变换器组合,所述选择编码块大小模块分别与所述预控制模块和所述DCT变换器组合相连接,
所述预控制模块,用于在处于离散余弦变换DCT或反离散余弦变换IDCT时,获取视频的待变换块的编码块宽度和编码块高度,基于所述编码块宽度和所述编码块高度生成所述待变换块的大小信息,传输所述大小信息至所述选择编码块大小模块;
所述选择编码块大小模块,用于接收所述大小信息和获取所述待变换块,基于所述大小信息从所述DCT变换器组合中确定对应的DCT变换器,将所述待变换块传输至所述DCT变换器;
所述DCT变换器组合及所述DCT变换器,用于对所述待变换块进行DCT处理或IDCT处理,得到所述待变换块对应的变换块;
所述DCT变换器组合包括4点DCT变换器、8点DCT变换器、16点DCT变换器、32点DCT变换器和64点DCT变换器,
所述4点DCT变换器,用于对所述大小信息为4×4的待变换块进行DCT处理或IDCT处理;
所述8点DCT变换器,用于对所述大小信息为8×8的待变换块进行DCT处理或IDCT处理;
所述16点DCT变换器,用于对所述大小信息为16×16的待变换块进行DCT处理或IDCT处理;
所述32点DCT变换器,用于对所述大小信息为32×32的待变换块进行DCT处理或IDCT处理;
所述64点DCT变换器,用于对所述大小信息为64×64的待变换块进行DCT处理或IDCT处理。
7.如权利要求6所述的用于视频编解码的变换编码硬件实现装置,其特征在于,所述DCT变换器的蝶形运算操作包括四个流水线阶段,所述四个流水线阶段依次为蝶形系数生成阶段、位移阶段、多常数乘法器SAU阶段、生成输出阶段,
所述DCT变换器,还用于通过所述四个流水线阶段,并行对所述待变换块进行DCT或IDCT的蝶形运算处理,得到所述待变换块对应的变换块;和/或,
所述DCT变换器包括多个执行计算操作的电路,所述多个执行计算操作的电路通过对单个执行计算操作的电路进行复制得到,
所述DCT变换器,还用于通过所述多个执行计算操作的电路,并行对所述待变换块进行DCT或IDCT的计算循环处理,得到所述待变换块对应的变换块;和/或,
所述DCT变换器为多个,多个所述DCT变换器通过对单个所述DCT变换器进行复制得到,
多个所述DCT变换器,用于并行对多个所述待变换块进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的一维DCT变换结果,将多个所述待变换块对应的一维DCT变换结果存储于临时缓冲区,对所述一维DCT变换结果进行一维DCT处理或IDCT处理,得到多个所述待变换块对应的二维DCT变换结果。
8.一种用于视频编解码的变换编码硬件实现设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的用于视频编解码的变换编码硬件实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110533547.8A CN113286150B (zh) | 2021-05-17 | 2021-05-17 | 用于视频编解码的变换编码硬件实现方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110533547.8A CN113286150B (zh) | 2021-05-17 | 2021-05-17 | 用于视频编解码的变换编码硬件实现方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113286150A CN113286150A (zh) | 2021-08-20 |
CN113286150B true CN113286150B (zh) | 2023-03-24 |
Family
ID=77279355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110533547.8A Active CN113286150B (zh) | 2021-05-17 | 2021-05-17 | 用于视频编解码的变换编码硬件实现方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113286150B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111630864A (zh) * | 2018-02-05 | 2020-09-04 | 腾讯美国有限责任公司 | 编解码方法、装置和媒介 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012147205A (ja) * | 2011-01-11 | 2012-08-02 | Nippon Hoso Kyokai <Nhk> | 離散サイン変換回路、逆離散サイン変換回路、併用回路、符号化装置、復号装置及びプログラム |
CN103686173B (zh) * | 2014-01-09 | 2017-03-01 | 英特尔公司 | 变换与反变换电路 |
WO2019203068A1 (ja) * | 2018-04-17 | 2019-10-24 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
WO2020125595A1 (zh) * | 2018-12-16 | 2020-06-25 | 华为技术有限公司 | 视频译码器及相应方法 |
US11539952B2 (en) * | 2019-03-12 | 2022-12-27 | Qualcomm Incorporated | Implicit transform selection in video coding |
-
2021
- 2021-05-17 CN CN202110533547.8A patent/CN113286150B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111630864A (zh) * | 2018-02-05 | 2020-09-04 | 腾讯美国有限责任公司 | 编解码方法、装置和媒介 |
Also Published As
Publication number | Publication date |
---|---|
CN113286150A (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100412907C (zh) | 视频编码的低复杂性和统一标准的变换 | |
KR100926207B1 (ko) | 전력 소비를 감소시키면서 데이터 값 배열에 대해 2-차원변환을 수행하기 위한 방법 및 시스템 | |
JP2007151131A (ja) | ビデオまたはイメージのデータを復号化するための方法 | |
JPH11501420A (ja) | Jpeg画像圧縮標準を実現するvlsi回路構造体 | |
JP4831547B2 (ja) | 画像圧縮および伸張加速化のための方法 | |
CN110933445B (zh) | 一种基于系数矩阵变换的dct运算方法及其变换装置 | |
CN108200439B (zh) | 提高数字信号变换性能的方法及数字信号变换方法和装置 | |
CN113286150B (zh) | 用于视频编解码的变换编码硬件实现方法、装置及设备 | |
CN113592966B (zh) | 图像处理方法及装置、电子设备和存储介质 | |
US8655062B2 (en) | Image decoding method and image processing apparatus using same | |
CN101646080A (zh) | 基于avs并行流水idct快速变换的方法和装置 | |
EP1352336A1 (en) | Faster transforms using scaled terms, early aborts, and precision refinements | |
KR101395143B1 (ko) | 영상처리의 정수변환 방법 및 정수변환 장치 | |
JP2003256405A5 (zh) | ||
CN107172425B (zh) | 缩略图生成方法、装置及终端设备 | |
CN109451307B (zh) | 一种基于近似系数的一维dct运算方法和dct变换装置 | |
JP5546329B2 (ja) | データ変換装置 | |
JP2005312054A (ja) | 補完映像を生成してデブロッキング処理に用いる映像圧縮装置及び方法 | |
CN100562115C (zh) | 一种mpeg4文件解码过程中的滤波方法及装置 | |
CN101729886A (zh) | 一种视频解码方法、系统和设备 | |
JPH10116267A (ja) | 演算装置及び情報処理装置 | |
JP2507654B2 (ja) | 画像デ―タ直交変換処理装置のマトリクス演算回路 | |
Mietens et al. | New scalable DCT computation for resource-constrained systems | |
Saleh | Efficient mid-band exchange coefficient watermarking system | |
Raj | UML Modeling for the Compression of An Image File |
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 |