CN112584157A - 一种avs2反变换装置及方法 - Google Patents
一种avs2反变换装置及方法 Download PDFInfo
- Publication number
- CN112584157A CN112584157A CN201910940173.4A CN201910940173A CN112584157A CN 112584157 A CN112584157 A CN 112584157A CN 201910940173 A CN201910940173 A CN 201910940173A CN 112584157 A CN112584157 A CN 112584157A
- Authority
- CN
- China
- Prior art keywords
- matrix
- column
- row
- residual
- transformation
- 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.)
- Pending
Links
- 230000009466 transformation Effects 0.000 title claims abstract description 242
- 238000000034 method Methods 0.000 title claims abstract description 59
- 239000011159 matrix material Substances 0.000 claims abstract description 592
- 238000004364 calculation method Methods 0.000 claims abstract description 39
- 239000013598 vector Substances 0.000 claims description 156
- 230000017105 transposition Effects 0.000 claims description 13
- 230000015654 memory Effects 0.000 claims description 8
- 230000001131 transforming effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 26
- 238000006243 chemical reaction Methods 0.000 description 12
- ODINCKMPIJJUCX-UHFFFAOYSA-N Calcium oxide Chemical compound [Ca]=O ODINCKMPIJJUCX-UHFFFAOYSA-N 0.000 description 11
- 238000011426 transformation method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 102000002274 Matrix Metalloproteinases Human genes 0.000 description 2
- 108010000684 Matrix Metalloproteinases Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种AVS2反变换装置及方法。所述AVS2反变换装置包括:控制模块,用于控制所述AVS2反变换装置实现AVS2反变换;矩阵获取模块,与所述控制模块相连,用于获取多个残差矩阵;矩阵拼接模块,用于对至少2个所述残差矩阵进行拼接,形成一残差方阵;系数选择模块,与所述控制模块相连,用于根据残差矩阵选择第一反变换系数矩阵和第二反变换系数矩阵;计算模块,用于利用所述第二反变换系数矩阵对所述残差方阵进行列变换获得一中间矩阵,以及利用所述第一反变换系数矩阵对所述中间矩阵进行行变换获得残差样本矩阵。所述AVS2反变换装置将不易实现的矩形变换转换成易于实现的正方形矩阵变换,提高了系统的整体性能。
Description
技术领域
本发明属于视频压缩领域,涉及一种反变换装置,特别是涉及一种AVS2反变换装置及方法。
背景技术
AVS(Audio Video coding Standard)是音视频编码标准的简称,最新的AVS标准是AVS2。AVS2是我国具备自主知识产权的第二代信源编码标准,是信息技术先进音视频编码系列标准的简称,其包括系统、视频、音频、数字版权管理等四个主要技术标准和符合性测试等支撑标准。AVS2标准的编码效率比AVS1提高了一倍,与同期国际标准相当,在场景编码领域比同期国际标准效率高了一倍。
传统的音视频标准,例如HEVC、H264、VP6,在视频编解码过程中均采用正方形变换块完成。与传统的音视频标准不同,AVS2在编解码过程中增加了长方形变换块。根据最新的国家标准,AVS2目前支持的反变换块包括4×4、8×8、16×16、32×32、64×64五中正方形变换块以及16×4、4×16、32×8、8×32四种长方形变换块。然而,目前主流音视频解码器在解码过程中只支持正方形变换块而不支持长方形变换块,因此AVS2不能通过复用现有的音视频解码器实现。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种AVS2反变换装置及方法,用于解决现有技术中AVS2不能通过复用现有的音视频解码器实现的问题。
为实现上述目的及其他相关目的,本发明提供一种AVS2反变换装置,所述AVS2反变换装置包括:控制模块,用于控制所述AVS2反变换装置实现AVS2反变换;矩阵获取模块,与所述控制模块相连,用于获取多个残差矩阵;每个残差矩阵为一M2×M1矩阵;其中M1和M2均为正整数;矩阵拼接模块,与所述控制模块和所述矩阵获取模块分别相连,用于对至少2个所述残差矩阵进行拼接,形成一残差方阵;系数选择模块,与所述控制模块相连,用于根据残差矩阵选择第一反变换系数矩阵和第二反变换系数矩阵;所述第二反变换系数矩阵为一M2×M2矩阵;所述第一反变换系数矩阵为一M1×M1矩阵;计算模块,与所述控制模块、所述系数选择模块、所述矩阵拼接模块分别相连,用于利用所述第二反变换系数矩阵对所述残差方阵进行列变换获得一中间矩阵,以及利用所述第一反变换系数矩阵对所述中间矩阵进行行变换获得残差样本矩阵。
于本发明的一实施例中,所述AVS2反变换装置还包括:存储模块,与所述控制模块和所述计算模块分别相连,用于按列存储所述中间矩阵以及按行读取所述中间矩阵。
于本发明的一实施例中,所述计算模块包括:至少1个计算单元,与所述系数选择模块和所述矩阵拼接模块分别相连,用于实现向量之间的乘加运算;所述计算单元为一次蝶形计算器。
于本发明的一实施例中,所述计算模块还包括:列段划分单元,与所述矩阵拼接模块和所述计算单元分别相连,用于将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;所述计算单元利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;列向量拼接单元,与所述计算单元相连,按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。
于本发明的一实施例中,所述计算模块还包括:行段划分单元,与所述矩阵拼接模块和所述计算单元分别相连,用于将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;所述计算单元利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量;行向量拼接单元,与所述计算单元相连,按照所述行向量的行号和/或列号对所有所述行向量进行拼接,获得所述残差样本矩阵。
本发明还提供一种AVS2反变换方法,所述AVS2反变换方法包括:获取多个残差矩阵;每个残差矩阵为一M2×M1矩阵;其中M1和M2均为正整数;对至少2个所述残差矩阵进行拼接,形成一残差方阵;根据所述残差矩阵选择对应的第一反变换系数矩阵和第二反变换系数矩阵;所述第二反变换系数矩阵为一M2×M2矩阵;所述第一反变换系数矩阵为一M1×M1矩阵;利用所述第二反变换系数矩阵对所述残差方阵进行列变换,获得一中间矩阵;利用所述第一反变换系数矩阵对所述中间矩阵进行行变换,获得残差样本矩阵。
于本发明的一实施例中,所述AVS2反变换方法还包括:将所述中间矩阵按列存入一存储模块;从所述存储模块中按行读取所述中间矩阵。
于本发明的一实施例中,所述行变换和所述列变换通过向量之间的乘加运算来实现;所述乘加运算通过一次蝶形运算实现。
于本发明的一实施例中,用所述第二反变换系数矩阵对所述残差方阵进行列变换的一种实现方法包括:若所述第二反变换系数矩阵与所述残差方阵的维数相同,用所述第二反变换系数矩阵的转置乘以所述残差方阵,获得所述中间矩阵。
于本发明的一实施例中,利用所述第二反变换系数矩阵对所述残差方阵进行列变换的一种实现方法包括:将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。
于本发明的一实施例中,利用所述第一反变换系数矩阵对所述中间矩阵进行行变换的一种实现方法包括:若所述第一反变换系数矩阵的维数与所述中间矩阵的维数相同,用所述中间矩阵乘以所述第一反变换系数矩阵获得所述残差样本矩阵。
于本发明的一实施例中,利用所述第一反变换系数矩阵对所述中间矩阵进行行变换的一种实现方法包括:将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量;按照所述行向量的行号和/或列号对所有所述行向量进行拼接,获得所述残差样本矩阵。
如上所述,本发明所述的AVS2反变换装置及方法,具有以下有益效果:
本发明中,将至少2个所述残差矩阵进行拼接,形成一残差方阵,所述残差方阵能够复用现有的音视频解码器实现反变换,无需为AVS2单独设计解码器;
本发明中,所述AVS2反变换通过对所述残差方阵进行列变换以及对所述中间矩阵进行行变换实现,所述残差方阵和所述中间矩阵均为方阵,因此在硬件实现上相对于现有技术无需增加额外的资源开销,整个系统的控制流程也无需增加对长方形变换的控制;
与现有AVS2反变换相比,本发明所述AVS2反变换装置减少了处理4×4变换块的数量,从而带来处理性能的提升。
附图说明
图1显示为本发明所述AVS2反变换装置于一具体实施例中的结构示意图。
图2显示为现有AVS2反变换过程中的矩阵变换架构图。
图3显示为本发明所述AVS2反变换装置中所述计算模块于一具体实施例中的结构示意图。
图4显示为本发明所述AVS2反变换装置中所述计算模块于一具体实施例中的结构示意图。
图5显示为本发明所述AVS2反变换装置中所述计算单元于一具体实施例中的结构示意图。
图6显示为一具体实施例中本发明所述AVS2反变换过程中的矩阵变换架构图。
图7显示为一具体实施例中本发明所述AVS2反变换过程中的矩阵变换架构图。
图8显示为本发明所述AVS2反变换方法于一具体实施例中的流程图。
图9显示为本发明所述AVS2反变换方法于一具体实施例中步骤S4的流程图。
图10显示为本发明所述AVS2反变换方法于一具体实施例中步骤S5的流程图。
元件标号说明
100 AVS2反变换装置
110 控制模块
120 矩阵获取模块
130 矩阵拼接模块
140 系数选择模块
150 计算模块
151 计算单元
152 列段划分单元
153 列向量拼接单元
154 行段划分单元
155 行向量拼接单元
160 存储模块
210 第二反变换系数矩阵
220 残差矩阵
230 中间矩阵
240 第一反变换系数矩阵
250 残差样本矩阵
610 第二反变换系数矩阵的转置
620 残差方阵
621 第一残差矩阵
6211 第一列段
622 第二残差矩阵
623 第三残差矩阵
624 第四残差矩阵
630 中间矩阵
6311 第一列向量
640 按行读取的中间矩阵
6411 第一行段
6412 第二行段
6413 第三行段
6414 第四行段
650 第一反变换系数矩阵
660 残差样本矩阵
6611 第一行向量
6612 第二行向量
6613 第三行向量
6614 第四行向量
710 第二反变换系数矩阵的转置
720 残差方阵
721 第一残差矩阵
7211 第一列段
722 第二残差矩阵
7221 第二列段
723 第三残差矩阵
7231 第三列段
724 第四残差矩阵
7241 第四列段
730 中间矩阵
7311 第一列向量
7321 第二列向量
7331 第三列向量
7341 第四列向量
740 按行读取的中间矩阵
7411 第一行段
750 第一反变换系数矩阵
760 残差样本矩阵
7611 第一行向量
S1~S5 步骤
S41~S43 步骤
S51~S53 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
传统的音视频标准,例如HEVC、H264、VP9,在视频编解码过程中均采用正方形变换块完成。与传统的音视频标准不同,AVS2在编解码过程中增加了长方形变换块(又称矩形变换块)。根据最新的国家标准,AVS2目前支持的反变换块包括4×4、8×8、16×16、32×32、64×64五中正方形变换块以及16×4、4×16、32×8、8×32四种长方形变换块。然而,目前主流音视频解码器在解码过程中只支持正方形变换块而不支持长方形变换块,因此AVS2不能通过复用现有的音视频解码器实现。目前,AVS2的解码器在硬件实现上需要同时支持正方形变换以及长方形变换,增加了额外的资源开销;相应的,整个系统的控制流程增加了对于长方形变换的控制,增加了控制模块的工作量。此外,对于AVS2反变换,4×4块的处理性能最差,而现有音视频解码器中为了支持长方形变换要增加大量的4×4处理块,从而导致性能的下降。
为了解决上述问题,本发明提供了一种AVS2反变换装置及方法。于本发明中,将至少2个所述残差矩阵进行拼接,形成一残差方阵,所述残差方阵能够复用现有的音视频解码器实现反变换,无需为AVS2单独设计解码器;其中,残差矩阵又被称作残差系数矩阵、变换系数矩阵。此外,所述AVS2反变换通过对所述残差方阵进行列变换以及对所述中间矩阵进行行变换实现,所述残差方阵和所述中间矩阵均为方阵,因此在硬件实现上相对于现有技术无需增加额外的资源开销,整个系统的控制流程也无需增加对长方形变换的控制(又称矩形变换);与现有AVS2反变换相比,本发明所述AVS2反变换装置减少了4×4的处理块的数量,从而带来处理性能的提升。
请参阅图1,于本发明的一实施例中,所述AVS2反变换装置100包括:
控制模块110,用于控制所述AVS2反变换装置100实现AVS2反变换;
矩阵获取模块120,与所述控制模块110相连,用于获取残差矩阵,所述残差矩阵为压缩的比特流通过反量化后得到。所述残差矩阵为一M2×M1矩阵;其中M1和M2均为正整数。特别地,所述残差矩阵为16×4矩阵(代表16行4列矩阵)、4×16矩阵(代表4行16列矩阵)、32×8矩阵(代表32行8列矩阵)或8×32矩阵(代表8行32列矩阵)。
矩阵拼接模块130,与所述控制模块110和所述矩阵获取模块120分别相连,用于对至少2个所述残差矩阵进行拼接,形成一残差方阵。所述拼接是指对矩阵的简单拼接从而获得一方阵的过程。优选地,所述参与拼接的残差矩阵为相邻残差矩阵。若所述残差矩阵的M2>M1,即所述残差矩阵的行数大于列数,优选对所述残差矩阵进行按行拼接。例如,若所述残差矩阵为16×4矩阵,4个残差矩阵分别为A、B、C和D,则对其进行按行拼接获得一16×16的方阵[A B C D]。若所述残差矩阵的M2<M1,即所述残差矩阵的行数小于列数,优选对所述残差矩阵进行按列拼接。例如,若所述残差矩阵为8×32矩阵,4个残差矩阵分别为A'、B'、C'和D'则可以将4个相邻残差矩阵进行按列拼接获得一32×32的方阵特别地,对于M2=M1的残差方阵,无需对其进行拼接,其可以直接利用现有的正方形反变换方法来完成反变换。
系数选择模块140,与所述控制模块相连,用于选择第一反变换系数矩阵和第二反变换系数矩阵;所述第二反变换系数矩阵为一M2×M2矩阵;所述第一反变换系数矩阵为一M1×M1矩阵。AVS2标准中总共给出了6种反变换系数矩阵,分别为S4、D4、T4、T8、T16和T32。所述系数选择模块140根据所述残差矩阵的行数从上述6种反变换系数矩阵中选取所述第二反变换系数矩阵,根据所述残差矩阵的列数从上述6种反变换系数矩阵中选取所述第一反变换系数矩阵。
计算模块150,与所述控制模块、所述系数选择模块、所述矩阵拼接模块分别相连,用于利用所述第二反变换系数矩阵对所述残差方阵进行列变换获得一中间矩阵,以及利用所述第一反变换系数矩阵对所述中间矩阵进行行变换获得残差样本矩阵。所述残差样本矩阵为所述反变换的输出结果,用于接下来的图像重建过程。
AVS2中规定反变换过程为其中为所述第二反变换系数矩阵TM2的转置,TM1为所述第一反变换系数矩阵,CoeffMatrix为所述残差矩阵,W为所述反变换得到的残差样本矩阵。具体地,上述反变换过程分两步实现:
2,利用所述第一反变换系数矩阵对所述中间矩阵进行行变换,获得所述残差样本矩阵W,所述行变换的计算公式为W=V×TM1,所述残差样本矩阵W为一M2×M1的矩阵。
在某些实施例中,对长方形残差矩阵,直接利用对应的反变换系数矩阵对所述残差方阵进行列变换获得中间方阵,并利用对应的反变换系数矩阵对所述中间方阵进行行变换获得所述残差样本矩阵。例如,所述残差矩阵为16×4(对应16行4列)的矩阵,请参阅图2,显示反变换过程中矩阵的变换架构图。于所述列变换过程中,所述第二反变换系数矩阵210为16×16的矩阵,用所述第二反变换系数矩阵的转置210对所述残差矩阵220中的每一列进行列变换得到所述中间矩阵230并将所述中间矩阵230存储至一存储器。于所述行变换过程中,读取所述中间矩阵230并用所述中间矩阵230乘以所述第一反变换系数矩阵240获得所述残差样本矩阵250。其中,所述第一反变换系数矩阵为4×4矩阵。在此过程中,行变换的吞吐率为16点/clk,列变换的吞吐率为4点/clk,二者吞吐率不同,因此会导致硬件性能的降低;其中clk为计算器进行一次计算所需时间。此外,上述反变换过程中采用的存储器应当支持长方形矩阵的存储,而许多视频解码器中的存储器大多只支持正方形存储,因此需要对现有存储器进行变更。故由于AVS2中长方形变换的存在,导致AVS2解码器相对于其他主流解码器计算、存储以及控制等流程更加复杂,且效率更低。
于本发明的一实施例中,所述AVS2反变换装置100还包括160存储模块,与所述控制模块110和所述计算模块150分别相连,用于按列存储所述中间矩阵以及按行读取所述中间矩阵。
请参阅图3和图4,于本发明的一实施例中,所述计算模块150包括:至少1个计算单元151,与所述系数选择模块140和所述矩阵拼接模块130分别相连,用于实现向量之间的乘加运算;所述计算单元151为一次蝶形计算器。
请参阅图5,显示为1个所述计算单元的实现结构。其中,x={x0,x1,x2,x3}表示输入的向量,E={a0,a1,a2,a3}表示变换系数向量,CALx表示4个点的乘加器,每个CALx可以实现1个点的4×4变换。由于所述计算单元采用蝶形结构,因此:要实现一个点的4×4变换需要1个所述乘加器Calx,对应的变换结果为y_0.125;要实现1个点的8×8变换需要2个所述乘加器Calx,对应的变换结果为y1_0.25或y32_0.25;要实现1个点的16×16变换需要4个所述乘加器Calx,对应的变换结果为y1_0.5或y32_0.5;要实现1个点的32×32变换需要8个所述乘加器,对应的变换结果为y1或y32。综上可知,每个所述计算单元最多可以同时实现8个点的4×4变换输出,8个点的8×8变换输出,4个点的16×16变换输出,2个点的32×32变换输出。如果所述计算模块包括4个所述计算单元,则所述计算模块最多可同时实现32个点的4×4变换输出,32个点的8×8变换输出,16个点的16×16变换输出,8个点的32×32变换输出。所述计算单元实现的变换可以为行变换,也可以为列变换。
请参阅图3,于本发明的一实施例中,所述计算模块150还包括:列段划分单元152,与所述矩阵拼接模块130和所述计算单元151分别相连,用于将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;所述计算单元151利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;列向量拼接单元153,与所述计算单元151相连,按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。
所述残差矩阵为一M2行M1列的矩阵。当M2>M1时,所述残差方阵为一M2行M2列的矩阵。请参阅图6,所述第二反变换系数矩阵为一16×16的方阵,所述残差方阵620由第一残差矩阵621、第二残差矩阵622、第三残差矩阵623和第四残差矩阵624拼接而成,上述残差矩阵均为16×4的矩阵。
在进行列变换时,所述列段划分单元152将所述残差方阵620的每一列划分成1个列段,例如将第一列划分成第一列段6211,各所述列段长度为16。所述计算单元151利用所述第二反变换系数矩阵的转置610对各所述列段进行列变换,获得各所述列段对应的列向量。所述列变换通过所述第二反变换系数矩阵的转置610乘以各所述列段即可实现,例如:所述第二反变换系数矩阵的转置610乘以所述第一列段6211获得第一列向量6311。由于所有列段的行号均相同,所述列向量拼接单元153根据各所述列段的列号对所有所述列向量进行拼接,获得所述中间矩阵630。所述中间矩阵630按列进行存储。在上述列变换过程中采用16×16的列变换,每个所述计算单元每次可实现4个点的16×16列变换。如果所述计算模块包括4个所述计算单元,则上述列变换的吞吐率为16点/clk。其中,clk表示所述计算单元完成一次运算所需要的时间。
当M2<M1时,所述残差方阵为一M1行M1列的矩阵。请参阅图7,所述第二反变换系数矩阵为一4×4的方阵,所述残差方阵720由第一残差矩阵721、第二残差矩阵722、第三残差矩阵723和第四残差矩阵724拼接而成,上述残差矩阵均为4×16的矩阵。
在进行列变换时,所述列段划分单元152将所述残差方阵720的每一列划分成4个列段,例如将所述残差方阵720的第一列划分成第一列段7211、第二列段7221、第三列段7231和第四列段7241,各所述列段长度为4。所述计算单元151利用所述第二反变换系数矩阵710对各所述列段进行列变换,获得各所述列段对应的列向量。所述列变换通过所述第二反变换系数矩阵的转置710乘以各所述列段即可实现,例如:所述第二反变换系数矩阵的转置710乘以所述第一列段7211获得第一列向量7311,所述第二反变换系数矩阵的转置710乘以所述第二列段7221获得第二列向量7321,所述第二反变换系数矩阵的转置710乘以所述第三列段7231获得第三列向量7331,所述第二反变换系数矩阵的转置710乘以所述第四列段7241获得第四列向量7341。优选地,属于同一列的所有列段同时进行列变换,属于不同列的列段依次进行列变换。所述列向量拼接单元153根据所述列向量的行号和/或列号对所述列向量进行拼接,获得所述中间矩阵730。所述中间矩阵730按列进行存储。在此过程中采用4×4的列变换,所述计算单元的结构能够实现每一列的4个列段同时进行4×4列变换,对应的输出4个点。如果所述计算模块包括4个所述计算单元,则上述列变换的吞吐率为16点/clk。
于本发明的一实施例中,所述残差方阵的维数和所述第二反变换系数矩阵的维数相同,所述计算单元151利用所述第二反变换系数矩阵的转置对所述残差方阵进行列变换,获得所述中间方阵。所述列变换通过利用所述第二反变换系数矩阵的转置乘以所述残差方阵实现。
请参阅图4,于本发明的一实施例中,所述计算模块150还包括:行段划分单元154,与所述矩阵拼接模块130和所述计算单元151分别相连,用于将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;所述计算单元151利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量;行向量拼接单元155,与所述计算单元151相连,按照所述行向量的行号和/或列号对所有所述行向量进行拼接,获得所述残差样本矩阵。
所述残差矩阵为一M2行M1列的矩阵。当M2>M1时,所述残差方阵为一M2行M2列的矩阵。请参阅图6,所述第一反变换系数矩阵为一4×4的方阵,所述残差方阵620由第一残差矩阵621、第二残差矩阵622、第三残差矩阵623和第四残差矩阵624拼接而成,上述残差矩阵均为16×4的矩阵。
在进行行变换时,按行读取所述中间矩阵640。所述行段划分单元154将所述残差方阵640的每一行划分成4个行段,例如将所述中间矩阵640的第一行划分成第一行段6411、第二行段6412、第三行段6413和第四行段6414,各所述行段的长度均为4。所述计算单元151利用所述第一反变换系数矩阵650对各所述行段进行行变换,获得各所述行段对应的行向量,所述行变换通过将所述行段乘以所述第一反变换系数矩阵即可实现,例如:所述第一行段6411乘以所述第一反变换系数矩阵650获得第一行向量6611,所述第二行段6412乘以所述第一反变换系数矩阵650获得第二行向量6612,所述第三行段6413乘以所述第一反变换系数矩阵650获得第三行向量6613,所述第四行段6414乘以所述第一反变换系数矩阵650获得第四行向量6614。优选地,属于同一行的所有行段同时进行行变换,属于不同行的行段依次进行行变换。所述行向量拼接单元155根据所述行向量的行号和/或列号对所述行向量进行拼接,获得所述残差样本矩阵660。在此过程中采用4×4的行变换,所述计算单元的结构能够实现每一行的4个行段同时进行4×4行变换,对应的输出4个点。如果所述计算模块包括4个所述计算单元,则上述行变换的吞吐率可以做到16点/clk。
当M2<M1时,所述残差方阵为一M1行M1列的矩阵。请参阅图7,所述第二反变换系数矩阵为一16×16的方阵,所述残差方阵720由第一残差矩阵721、第二残差矩阵722、第三残差矩阵723和第四残差矩阵724拼接而成,上述残差矩阵均为4×16的矩阵。
在进行行变换时,按行读取所述中间矩阵740,所述行段划分单元155将所述残差方阵740的每一行划分成1个行段,例如将第一行划分成第一行段7411,各所述行段长度为16.所述计算单元151利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量。所述行变换通过所述行段乘以所述第一反变换系数矩阵即可实现,例如:所述第一行段7411乘以所述第一反变换系数矩阵获得第一行向量7611。所述行向量拼接单元155根据各所述行向量的行号对所有所述行向量进行拼接,获得所述残差样本矩阵760。在上述行变换过程中采用16×16的行变换,如果所述计算模块包括4个所述计算单元,每个所述计算单元每次可实现4个点的16×16行变换,因此上述行变换的吞吐率为16点/clk。
于本发明的一实施例中,所述残差方阵的维数和所述第一反变换系数矩阵的维数相同,所述计算单元151利用所述第一反变换系数矩阵对所述残差方阵进行行变换,获得所述残差样本矩阵。所述行变换通过利用所述残差方阵乘以所述第一反变换系数矩阵实现。
于本发明的一实施例中,所述残差矩阵的行数大于列数,即M2>M1。所述计算单元用所述第二反变换系数矩阵的转置乘以所述残差方阵获得所述中间矩阵;所述行段划分单元将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;所述计算单元利用各所述行段分别乘以所述第一反变换系数矩阵获得对应的行向量;所述行向量拼接单元根据各所述行向量的行号和/或列号对所有行向量进行拼接,获得残差样本矩阵。
于本发明的一实施例中,所述残差矩阵的行数大于列数,即M2>M1。所述列段划分单元将所述残差方阵的每一列划分成1个长度为M2的列段;所述计算单元利用所述第二反变换系数矩阵的转置对各所述列段进行列变换获得对应的列向量;所述列向量拼接单元根据所述列向量的列号对所有所述行向量进行拼接,获得中间矩阵。所述行段划分单元将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;所述计算单元利用各所述行段分别乘以所述第一反变换系数矩阵获得对应的行向量;所述行向量拼接单元根据各所述行向量的行号和/或列号对所有行向量进行拼接,获得残差样本矩阵。
于本发明的一实施例中,所述残差矩阵的行数小于列数,即M2<M1。所述列段划分单元将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;所述计算单元利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;所述列向量拼接单元按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。所述计算单元利用所述中间矩阵乘以所述第一反变换系数矩阵获得残差样本矩阵。
于本发明的一实施例中,所述残差矩阵的行数小于列数,即M2<M1。所述列段划分单元将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;所述计算单元利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;所述列向量拼接单元按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。所述行段划分单元将所述中间矩阵的每一行划分成1个长度为M1的行段,所述计算单元利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量;所述行向量拼接单元根据所述行向量的行号对所有行向量进行拼接,获得残差样本矩阵。
本发明还提供一种AVS2反变换方法,请参阅图8,所述AVS2反变换方法包括:
S1,获取残差矩阵;所述残差矩阵为一M2×M1矩阵;其中M1和M2均为正整数;所述残差矩阵为压缩的比特流通过反量化后得到;特别地,所述残差矩阵为16×4矩阵(代表16行4列矩阵)、4×16矩阵(代表4行16列矩阵)、32×8矩阵(代表32行8列矩阵)或8×32矩阵(代表8行32列矩阵)。
S2,对至少2个所述残差矩阵进行拼接,形成一残差方阵;所述拼接是指对矩阵的简单拼接从而获得一方阵的过程。优选地,所述参与拼接的残差矩阵为相邻残差矩阵。若所述残差矩阵的M2>M1,即所述残差矩阵的行数大于列数,优选对所述残差矩阵进行按行拼接。例如,若所述残差矩阵为16×4矩阵,4个残差矩阵分别为A、B、C和D,则对其进行按行拼接获得一16×16的方阵[A B C D]。若所述残差矩阵的M2<M1,即所述残差矩阵的行数小于列数,优选对所述残差矩阵进行按列拼接。例如,若所述残差矩阵为8×32矩阵,4个残差矩阵分别为A'、B'、C'和D'则可以将4个相邻残差矩阵进行按列拼接获得一32×32的方阵特别地,对于M2=M1的残差方阵,无需对其进行拼接,其可以直接利用现有的正方形反变换方法来完成反变换。
S3,根据所述残差矩阵选择对应的第一反变换系数矩阵和第二反变换系数矩阵;所述第二反变换系数矩阵为一M2×M2矩阵;所述第一反变换系数矩阵为一M1×M1矩阵;AVS2标准中总共给出了6种反变换系数矩阵,分别为S4、D4、T4、T8、T16和T32。所述系数选择模块140根据所述残差矩阵的行数从上述6种反变换系数矩阵中选取所述第二反变换系数矩阵,根据所述残差矩阵的列数从上述6种反变换系数矩阵中选取所述第一反变换系数矩阵。
S4,利用所述第二反变换系数矩阵对所述残差方阵进行列变换,获得一中间矩阵;
S5,利用所述第一反变换系数矩阵对所述中间矩阵进行行变换,获得残差样本矩阵。
于本发明的一实施例中,所述AVS2反变换方法还包括:将所述中间矩阵按列存入一存储模块;从所述存储模块中按行读取所述中间矩阵。
于本发明的一实施例中,所述行变换和所述列变换通过向量之间的乘加运算来实现;所述乘加运算通过一次蝶形运算实现。所述一次蝶形运算通过一次蝶形计算器实现,请参阅图5。对于所述蝶形计算器中的计算单元,CALx表示4个点的乘加器,通过CALx实现向量乘加运算的过程为:输入两个向量x={x0,x1,x2,x3}和E={a0,a1,a2,a3},其中x={x0,x1,x2,x3}表示输入的向量,E={a0,a1,a2,a3}表示变换系数向量;利用所述乘加器对向量中对应位置的元素相乘获得对应的乘积,然后对所有乘积求和实现所述向量x和E的乘加运算。图5中,每个CALx可以实现1个点的4×4变换。由于所述计算单元采用蝶形结构,因此:要实现一个点的4×4变换需要1个所述乘加器Calx,对应的变换结果为y_0.125;要实现1个点的8×8变换需要2个所述乘加器Calx,对应的变换结果为y1_0.25或y32_0.25;要实现1个点的16×16变换需要4个所述乘加器Calx,对应的变换结果为y1_0.5或y32_0.5;要实现1个点的32×32变换需要8个所述乘加器,对应的变换结果为y1或y32。综上可知,一个所述计算单元可以同时实现8个点的4×4变换输出,8个点的8×8变换输出,4个点的16×16变换输出,2个点的32×32变换输出。如果所述计算模块包括4个所述计算单元,则所述计算模块最多可同时实现32个点的4×4变换输出,32个点的8×8变换输出,16个点的16×16变换输出,8个点的32×32变换输出。所述变换可以为行变换,也可以为列变换。
于本发明的一实施例中,利用所述第二反变换系数矩阵对所述残差方阵进行列变换的一种实现方法包括:若所述第二反变换系数矩阵与所述残差方阵的维数相同,用所述第二反变换系数矩阵的转置乘以所述残差方阵,获得所述中间矩阵。
请参阅图9,于本发明的一实施例中,利用所述第二反变换系数矩阵对所述残差方阵进行列变换的一种实现方法包括:
S41,将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数。
所述残差矩阵为一M2行M1列的矩阵。当M2>M1时,所述残差方阵为一M2行M2列的矩阵。请参阅图6,所述第二反变换系数矩阵为一16×16的方阵,所述残差方阵620由第一残差矩阵621、第二残差矩阵622、第三残差矩阵623和第四残差矩阵624拼接而成,上述残差矩阵均为16×4的矩阵。在进行列变换时,将所述残差方阵620的每一列划分成1个列段,例如将第一列划分成第一列段6211,各所述列段长度为16。
当M2<M1时,所述残差方阵为一M1行M1列的矩阵。请参阅图7,所述第二反变换系数矩阵为一4×4的方阵,所述残差方阵720由第一残差矩阵721、第二残差矩阵722、第三残差矩阵723和第四残差矩阵724拼接而成,上述残差矩阵均为4×16的矩阵。在进行列变换时,将所述残差方阵720的每一列划分成4个列段,例如将第一列划分成第一列段7211、第二列段7221、第三列段7231和第四列段7241,各所述列段长度为4。
S42,利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量。
请参阅图6,当M2>M1时,利用所述第二反变换系数矩阵的转置610对各所述列段进行列变换,获得各所述列段对应的列向量,所述列变换通过所述第二反变换系数矩阵的转置610乘以各所述列段即可实现,例如:所述第二反变换系数矩阵的转置610乘以所述第一列段6211获得第一列向量6311。
请参阅图7,当M2<M1时,利用所述第二反变换系数矩阵710对各所述列段进行列变换,获得各所述列段对应的列向量,所述列变换通过所述第二反变换系数矩阵的转置710乘以各所述列段即可实现,例如:所述第二反变换系数矩阵的转置710乘以所述第一列段7211获得第一列向量7311,所述第二反变换系数矩阵的转置710乘以所述第二列段7221获得第二列向量7321,所述第二反变换系数矩阵的转置710乘以所述第三列段7231获得第三列向量7331,所述第二反变换系数矩阵的转置710乘以所述第四列段7241获得第四列向量7341。优选地,属于同一列的所有列段同时进行列变换,属于不同列的列段依次进行列变换。
S43,按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。
请参阅图6,当M2>M1时,根据各所述列段的列号对所有所述列向量进行拼接,获得所述中间矩阵630。所述中间矩阵630按列进行存储。在上述列变换过程中采用16×16的列变换,如果所述计算模块包括4个所述计算单元,每个所述计算单元每次可实现4个点的16×16列变换,因此上述列变换的吞吐率为16点/clk。其中,clk表示所述计算单元完成一次运算所需要的时间。
请参阅图7,当M2<M1时,根据所述列向量的行号和/或列号对所述列向量进行拼接,获得所述中间矩阵730。所述中间矩阵730按列进行存储。在此过程中采用4×4的列变换,所述计算单元的结构能够实现每一列的4个列段同时进行4×4列变换,对应的输出4个点。如果所述计算模块包括4个所述计算单元,此时上述列变换的吞吐率可以做到16点/clk。
所述列向量的行号和/或列号可以分别根据所述列向量中第1个元素的横坐标和纵坐标来确定。行号相同的列向量横向对齐,纵坐标相同的列向量纵向对齐。
于本发明的一实施例中,利用所述第一反变换系数矩阵对所述中间矩阵进行行变换的一种实现方法包括:若所述第一反变换系数矩阵的维数与所述中间矩阵的维数相同,用所述中间矩阵乘以所述第一反变换系数矩阵获得所述残差样本矩阵。
请参阅图10,于本发明的一实施例中,利用所述第一反变换系数矩阵对所述中间矩阵进行行变换的一种实现方法包括:
S51,将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数。
所述残差矩阵为一M2行M1列的矩阵。当M2>M1时,所述残差方阵为一M2行M2列的矩阵。请参阅图6,所述第二反变换系数矩阵为一16×16的方阵,所述残差方阵620由第一残差矩阵621、第二残差矩阵622、第三残差矩阵623和第四残差矩阵624拼接而成,上述残差矩阵均为16×4的矩阵。在进行列变换时,将所述残差方阵620的每一列划分成1个列段,例如将第一列划分成第一列段6211,各所述列段长度为16。
当M2<M1时,所述残差方阵为一M1行M1列的矩阵。请参阅图7,所述第二反变换系数矩阵为一4×4的方阵,所述残差方阵720由第一残差矩阵721、第二残差矩阵722、第三残差矩阵723和第四残差矩阵724拼接而成,上述残差矩阵均为4×16的矩阵。在进行列变换时,将所述残差方阵720的每一列划分成4个列段,例如将第一列划分成第一列段7211、第二列段7221、第三列段7231和第四列段7241,各所述列段长度为4。
S52,利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量。
当M2>M1时,利用所述第二反变换系数矩阵的转置610对各所述列段进行列变换,获得各所述列段对应的列向量,所述列变换通过所述第二反变换系数矩阵的转置610乘以各所述列段即可实现,例如:所述第二反变换系数矩阵的转置610乘以所述第一列段6211获得第一列向量6311。
当M2<M1时,利用所述第二反变换系数矩阵710对各所述列段进行列变换,获得各所述列段对应的列向量,所述列变换通过所述第二反变换系数矩阵的转置710乘以各所述列段即可实现,例如:所述第二反变换系数矩阵的转置710乘以所述第一列段7211获得第一列向量7311,所述第二反变换系数矩阵的转置710乘以所述第二列段7221获得第二列向量7321,所述第二反变换系数矩阵的转置710乘以所述第三列段7231获得第三列向量7331,所述第二反变换系数矩阵的转置710乘以所述第四列段7241获得第四列向量7341。优选地,属于同一列的所有列段同时进行列变换,属于不同列的列段依次进行列变换。
S53,按照所述行向量的行号和/或列号对所有所述行向量进行拼接,获得所述残差样本矩阵。
当M2>M1时,根据各所述列段的列号对所有所述列向量进行拼接,获得所述中间矩阵630。所述中间矩阵630按列进行存储。在上述列变换过程中采用16×16的列变换,如果所述计算模块包括4个所述计算单元,每个所述计算单元每次可实现4个点的16×16列变换,因此上述列变换的吞吐率为16点/clk。其中,clk表示所述计算单元完成一次运算所需要的时间。
当M2<M1时,根据所述列向量的行号和/或列号对所述列向量进行拼接,获得所述中间矩阵730。所述中间矩阵730按列进行存储。在此过程中采用4×4的列变换,所述计算单元的结构能够实现每一列的4个列段同时进行4×4列变换,对应的输出4个点。如果所述计算模块包括4个所述计算单元,此时上述列变换的吞吐率可以做到16点/clk。
本发明所述的AVS2反变换方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
本发明还提供一种AVS2反变换装置,所述AVS2反变换装置可以实现本发明所述的AVS2反变换方法,但本发明所述的AVS2反变换方法的实现装置包括但不限于本实施例列举的AVS2反变换装置的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
本发明所述AVS2反变换方法使得变换解码前后的吞吐率相同,能够提高各硬件的性能以及处理速度;
本发明采用正方形矩阵变换实现长方形反变换,能够很好地复用现有的正方形反变换的硬件,对于主流解码器具有很好的兼容性;
本发明所述AVS2反变换方法中采用一次蝶形计算器实现反变换,对于4×16和16×4的残差矩阵按照16×16方式进行计算,能够有效减少4×4块的数量,提高系统的性能。
本发明所述AVS2反变换装置只需要支持正方形矩阵的存储即可,无需额外支持长方形矩阵。
于本发明的一实施例中,所述残差矩阵的行数大于列数,即M2>M1。获得所述残差样本矩阵的一种实现方法包括:利用所述第二反变换系数矩阵的转置乘以所述残差方阵获得所述中间矩阵;将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;利用各所述行段分别乘以所述第一反变换系数矩阵获得对应的行向量;根据各所述行向量的行号和/或列号对所有行向量进行拼接,获得残差样本矩阵。
于本发明的一实施例中,所述残差矩阵的行数大于列数,即M2>M1。获得所述残差样本矩阵的一种实现方法包括:将所述残差方阵的每一列划分成1个长度为M2的列段;利用所述第二反变换系数矩阵的转置对各所述列段进行列变换获得对应的列向量;根据所述列向量的列号对所有所述行向量进行拼接,获得中间矩阵。将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;利用各所述行段分别乘以所述第一反变换系数矩阵获得对应的行向量;根据各所述行向量的行号和/或列号对所有行向量进行拼接,获得残差样本矩阵。
于本发明的一实施例中,所述残差矩阵的行数小于列数,即M2<M1。获得所述残差样本矩阵的一种实现方法包括:将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。利用所述中间矩阵乘以所述第一反变换系数矩阵获得残差样本矩阵。
于本发明的一实施例中,所述残差矩阵的行数小于列数,即M2<M1。获得所述残差样本矩阵的一种实现方法包括:将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。将所述中间矩阵的每一行划分成1个长度为M1的行段,利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量;根据所述行向量的行号对所有行向量进行拼接,获得残差样本矩阵。
综上所述,本发明将不易实现的AVS2长方形变换转换成易于实现的正方形矩阵变换,将不易于其他主流解码器复用的长方形变换转换成易于复用的正方形矩阵变换,提高了AVS2反变换的整体性能,节省了AVS2反变换系统的资源开销。本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (12)
1.一种AVS2反变换装置,其特征在于,所述AVS2反变换装置包括:
控制模块,用于控制所述AVS2反变换装置实现AVS2反变换;
矩阵获取模块,与所述控制模块相连,用于获取多个残差矩阵;每个残差矩阵为一M2×M1矩阵;其中M1和M2均为正整数;
矩阵拼接模块,与所述控制模块和所述矩阵获取模块分别相连,用于对至少2个所述残差矩阵进行拼接,形成一残差方阵;
系数选择模块,与所述控制模块相连,用于根据残差矩阵选择第一反变换系数矩阵和第二反变换系数矩阵;所述第二反变换系数矩阵为一M2×M2矩阵;所述第一反变换系数矩阵为一M1×M1矩阵;
计算模块,与所述控制模块、所述系数选择模块、所述矩阵拼接模块分别相连,用于利用所述第二反变换系数矩阵对所述残差方阵进行列变换获得一中间矩阵,以及利用所述第一反变换系数矩阵对所述中间矩阵进行行变换获得残差样本矩阵。
2.根据权利要求1所述的AVS2反变换装置,其特征在于,所述AVS2反变换装置还包括:
存储模块,与所述控制模块和所述计算模块分别相连,用于按列存储所述中间矩阵以及按行读取所述中间矩阵。
3.根据权利要求1所述的AVS2反变换装置,其特征在于,所述计算模块包括:
至少1个计算单元,与所述系数选择模块和所述矩阵拼接模块分别相连,用于实现向量之间的乘加运算;所述计算单元为一次蝶形计算器。
4.根据权利要求3所述的AVS2反变换装置,其特征在于,所述计算模块还包括:
列段划分单元,与所述矩阵拼接模块和所述计算单元分别相连,用于将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;所述计算单元利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;
列向量拼接单元,与所述计算单元相连,用于按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。
5.根据权利要求3所述的AVS2反变换装置,其特征在于,所述计算模块还包括:
行段划分单元,与所述矩阵拼接模块和所述计算单元分别相连,用于将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;所述计算单元利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量;
行向量拼接单元,与所述计算单元相连,用于按照所述行向量的行号和/或列号对所有所述行向量进行拼接,获得所述残差样本矩阵。
6.一种AVS2反变换方法,其特征在于,所述AVS2反变换方法包括:
获取多个残差矩阵;每个残差矩阵为一M2×M1矩阵;其中M1和M2均为正整数;
对至少2个所述残差矩阵进行拼接,形成一残差方阵;
根据所述残差矩阵选择对应的第一反变换系数矩阵和第二反变换系数矩阵;所述第二反变换系数矩阵为一M2×M2矩阵;所述第一反变换系数矩阵为一M1×M1矩阵;
利用所述第二反变换系数矩阵对所述残差方阵进行列变换,获得一中间矩阵;
利用所述第一反变换系数矩阵对所述中间矩阵进行行变换,获得残差样本矩阵。
7.根据权利要求7所述的AVS2反变换方法,其特征在于,所述AVS2反变换方法还包括:
将所述中间矩阵按列存入一存储模块;
从所述存储模块中按行读取所述中间矩阵。
8.根据权利要求7所述的AVS2反变换方法,其特征在于:所述行变换和所述列变换通过向量之间的乘加运算来实现;所述乘加运算通过一次蝶形运算实现。
9.根据权利要求7所述的AVS2反变换方法,其特征在于,利用所述第二反变换系数矩阵对所述残差方阵进行列变换的一种实现方法包括:
若所述第二反变换系数矩阵与所述残差方阵的维数相同,用所述第二反变换系数矩阵的转置乘以所述残差方阵,获得所述中间矩阵。
10.根据权利要求7所述的AVS2反变换方法,其特征在于,利用所述第二反变换系数矩阵对所述残差方阵进行列变换的一种实现方法包括:
将所述残差方阵的每一列划分成N1个长度为M2的列段,其中N1为正整数;
利用所述第二反变换系数矩阵的转置对各所述列段进行列变换,获得各所述列段对应的列向量;
按照所述列向量的列号和/或行号对所有所述列向量进行拼接,获得所述中间矩阵。
11.根据权利要求7所述的AVS2反变换方法,其特征在于,利用所述第一反变换系数矩阵对所述中间矩阵进行行变换的一种实现方法包括:
若所述第一反变换系数矩阵的维数与所述中间矩阵的维数相同,用所述中间矩阵乘以所述第一反变换系数矩阵获得所述残差样本矩阵。
12.根据权利要求7所述的AVS2反变换方法,其特征在于,利用所述第一反变换系数矩阵对所述中间矩阵进行行变换的一种实现方法包括:
将所述中间矩阵的每一行划分成N2个长度为M1的行段,其中N2为正整数;
利用所述第一反变换系数矩阵对各所述行段进行行变换,获得各所述行段对应的行向量;
按照所述行向量的行号和/或列号对所有所述行向量进行拼接,获得所述残差样本矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910940173.4A CN112584157A (zh) | 2019-09-30 | 2019-09-30 | 一种avs2反变换装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910940173.4A CN112584157A (zh) | 2019-09-30 | 2019-09-30 | 一种avs2反变换装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112584157A true CN112584157A (zh) | 2021-03-30 |
Family
ID=75116552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910940173.4A Pending CN112584157A (zh) | 2019-09-30 | 2019-09-30 | 一种avs2反变换装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112584157A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140092965A1 (en) * | 2012-10-01 | 2014-04-03 | Qualcomm Incorporated | Intra-coding for 4:2:2 sample format in video coding |
CN105791867A (zh) * | 2016-03-23 | 2016-07-20 | 北京大学 | 基于边界自适应变换的优化视频数据编码方法 |
CN107251558A (zh) * | 2015-02-27 | 2017-10-13 | Kddi株式会社 | 编码装置以及解码装置 |
CN108293119A (zh) * | 2015-11-25 | 2018-07-17 | 高通股份有限公司 | 在视频译码中用于非正方形变换单元的变换系数的修改 |
-
2019
- 2019-09-30 CN CN201910940173.4A patent/CN112584157A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140092965A1 (en) * | 2012-10-01 | 2014-04-03 | Qualcomm Incorporated | Intra-coding for 4:2:2 sample format in video coding |
CN107251558A (zh) * | 2015-02-27 | 2017-10-13 | Kddi株式会社 | 编码装置以及解码装置 |
CN108293119A (zh) * | 2015-11-25 | 2018-07-17 | 高通股份有限公司 | 在视频译码中用于非正方形变换单元的变换系数的修改 |
CN105791867A (zh) * | 2016-03-23 | 2016-07-20 | 北京大学 | 基于边界自适应变换的优化视频数据编码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5590067A (en) | Method and arrangement for transformation of signals from a frequency to a time domain | |
US7129962B1 (en) | Efficient video processing method and system | |
EP2112602A2 (en) | Device, system, and method for solving systems of linear equations using parallel processing | |
CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
US20160012012A1 (en) | Matrix transposing circuit | |
CN106254883B (zh) | 一种视频解码中的反变换方法和装置 | |
CN110933445B (zh) | 一种基于系数矩阵变换的dct运算方法及其变换装置 | |
CN112492309A (zh) | 数据压缩系统和数据映射方法 | |
US5636152A (en) | Two-dimensional inverse discrete cosine transform processor | |
CN104244010B (zh) | 提高数字信号变换性能的方法及数字信号变换方法和装置 | |
CN101415119B (zh) | 用以压缩图像数据的装置及方法 | |
CN1972450A (zh) | 具有任意转换比率的数字视频格式下转换设备及其方法 | |
CN101727839A (zh) | 影像压缩/解压缩的装置及其方法 | |
Park et al. | Low power reconfigurable DCT design based on sharing multiplication | |
EP2400455A1 (en) | System, data structure, and method for transposing multi-dimensional data to switch between vertical and horizontal filters | |
US20060126739A1 (en) | SIMD optimization for H.264 variable block size motion estimation algorithm | |
CN112584157A (zh) | 一种avs2反变换装置及方法 | |
KR101395143B1 (ko) | 영상처리의 정수변환 방법 및 정수변환 장치 | |
CN101640791A (zh) | 一种解码方法、装置和解码器 | |
CN108184127B (zh) | 一种可配置的多尺寸dct变换硬件复用架构 | |
CN101562744B (zh) | 二维反变换装置 | |
CN111368250B (zh) | 基于傅里叶变换/逆变换的数据处理系统、方法及设备 | |
US9848188B1 (en) | Video coding transform systems and methods | |
CN113286150B (zh) | 用于视频编解码的变换编码硬件实现方法、装置及设备 | |
US20230133360A1 (en) | Compute-In-Memory-Based Floating-Point Processor |
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 | ||
CB02 | Change of applicant information |
Address after: 350003 building 18, No.89, software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant after: Ruixin Microelectronics Co.,Ltd. Address before: 350003 building 18, No.89, software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant before: FUZHOU ROCKCHIP ELECTRONICS Co.,Ltd. |
|
CB02 | Change of applicant information |