适于HEVC标准的变换编码器.pdf

上传人:1*** 文档编号:4334810 上传时间:2018-09-14 格式:PDF 页数:19 大小:7.79MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210251115.9

申请日:

2012.07.19

公开号:

CN102857756A

公开日:

2013.01.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04N 7/26申请日:20120719|||公开

IPC分类号:

H04N7/26; H04N7/30

主分类号:

H04N7/26

申请人:

西安电子科技大学

发明人:

李甫; 樊春晓; 石光明; 张犁; 周蕾蕾; 林杰; 杨海舟; 董伟生; 王晓甜

地址:

710071 陕西省西安市太白南路2号

优先权:

专利代理机构:

陕西电子工业专利中心 61205

代理人:

王品华;朱红星

PDF下载: PDF下载
内容摘要

本发明公开了一种适于HEVC标准的变换编码器,主要解决现有技术中的变换块大小不一致、乘法器使用过多的问题。其包括一维DCT/DST模块(1)、转置缓冲模块(2)和顶层控制单元(3);一维DCT/DST模块(1)采用统一的HEVC变换编码架构,结合蝶形结构和矩阵乘法阵列,实现资源选择共享;转置缓冲模块(2)利用寄存器间的路径延迟和存储器不同的存储和读取顺序,以高效简便地完成数据的转置操作;顶层控制单元产生一维DCT/DST模块和转置缓冲模块的复位和使能信号,控制一维DCT/DST模块对输入数据进行一维行变换,并控制转置缓冲模块将变换结果进行转置后输出至一维DCT/DST模块完成一维列变换。本发明具有结构简单规整,复用度高,易于集成电路实现的优点,可实现高吞吐的变换编码。

权利要求书

权利要求书一种适于HEVC标准的变换编码器,包括一维DCTDST模块(1)、转置缓冲模块(2)和顶层控制单元(3),一维DCT/DST模块(1)用于完成HEVC标准中的各种一维变换,转置缓冲模块(2)用于完成数据的转置操作,即将按行输入的行变换结果按列输出,顶层控制模块(3)用于产生一维DCT/DST模块(1)和转置缓冲模块(2)的复位和使能信号,控制一维DCT/DST模块(1)对输入的原始数据进行一维行变换,并产生控制信号控制转置缓冲模块(2)接收一维DCT/DST模块(1)的行变换结果,在所有行数据处理完成之后,控制转置缓冲模块(2)将转置后的结果输回一维DCT/DST模块(1)进行一维列变换,其特征在于:所述一维DCT/DST模块(1),包括:蝶形运算单元(4),用于完成数据间的加减操作,将输入数据首尾两两相加、相减的结果送入多路选择器(6);类蝶形运算单元(5),用于完成4点DST变换输入数据间的相加、相减和延迟的操作,并将结果送入矩阵乘法器阵列(7);多路选择器(6),根据变换类型和当前状态,对蝶形运算单元(4)输入的运算结果进行选择,输出至矩阵乘法器阵列(7);矩阵乘法器阵列(7),包含两组输入:一组输入4个数据,另一组输入16个数据,用于完成将输入的4个数据分别与另一组输入的4组4个系数的相乘操作,将得到16个乘积送入相加移位器(8);相加移位器(8),用于将矩阵乘法器阵列(7)输入的运算结果进行相加、移位;所述的转置缓冲模块(2),完成对一维DCT/DST模块(1)行变换结果的转置操作,它包含寄存器阵列转置子模块(9)和RAM存取转置子模块(10),该寄存器阵列转置子模块(9),采用寄存器阵列结构,利用每个寄存器的不同路径延迟、不同的输入输出方向和寄存器区域完成非32点数据转置操作;该RAM存取转置子模块(10)采用8组RAM地址存取结构,通过控制各个RAM的输入输出地址,完成32点数据的转置操作。 根据权利要求1所述的变换编码器,其特征在于:顶层控制单元(3),包括复位使能模块(31)和数据流控制模块(32),复位使能模块(31)分别与一维DCT/DST模块(1)的使能、复位端和转置缓冲模块(2)的使能、复位端相连,为这两个模块提供使能和复位信号;数据流控制模块(32)分别与一维DCT/DST模块(1)的数据控制端和转置缓冲模块(2)的数据控制端相连,根据一维行变换和数据转置的完成状况,控制DCT/DST模块及转置缓冲模块的数据流方向。根据权利要求1所述的变换编码器,其特征在于:矩阵乘法器阵列(7)设为3个,分别为第一乘法器阵列(71)、第二乘法器阵列(72)和第三乘法器阵列(73);第一乘法器阵列(71),用于进行4×4DCT、4×4DST、8×8DCT、16×16DCT和32×32DCT变换;第二乘法器阵列(72),用于进行8×8DCT、16×16DCT和32×32DCT变换;第三乘法器阵列(73)用于进行16×16DCT和32×32DCT变换。根据权利要求1所述的变换编码器,其特征在于:多路选择器(6)设为三组,分别为第一多路选择器(61)、第二多路选择器(62)和第三多路选择器(63),它们分别与第一乘法器阵列(71)、第二乘法器阵列(72)、第三乘法器阵列(73)的输入端相连,用于根据变换类型和当前状态对蝶形运算单元(4)的计算结果进行选择输出,送入下级以完成乘法运算,即第一多路选择器(61)对数据进行选择后送入第一乘法器阵列(71),第二多路选择器(62)对数据进行选择后送入第二乘法器阵列(72),第三多路选择器(63)对数据进行选择后送入第三乘法器阵列(73)。根据权利要求1所述的变换编码器,其特征在于:蝶形运算单元(4)设为四组,分别为32输入蝶形(41)、16输入蝶形(42)、8输入蝶形(43)和4输入蝶形(44),分别用以完成32、16、8、4个输入数据的首尾相加和首尾相减操作;该32输入蝶形(41)的相加结果送入16输入蝶形(42),其相减结果分为三组分别送入第一多路选择器(61)、第二多路选择器(62)和第三多路选择器(63);该16输入蝶形(42)的相加结果送入8输入蝶形(43),其相减结果分为三组分别送入第一多路选择器(61)、第二多路选择器(62)和第三多路选择器(63);该8输入蝶形(43)的相加结果送入4输入蝶形(44),其相减结果送入第二多路选择器(62),该4输入蝶形(44)的相加和相减结果均送入第一多路选择器(61)。 根据权利要求1所述的变换编码器,其特征在于:相加移位器(8)设为八组,分别为第一相加移位器(81)、第二相加移位器(82)、第三相加移位器(83)、第四相加移位器(84)、第五相加移位器(85)、第六相加移位器(86)、第七相加移位器(87)和第八相加移位器(88);第一相加移位器(81)与第一乘法器阵列(71)相连,用于将第一乘法器阵列(71)的运算结果分为四组,并将每组数据分别相加后的结果向右移位;第二相加移位器(82)与第二乘法器阵列(72)相连,用于将第二乘法器阵列(72)的运算结果分为四组,并将每组数据分别相加后的结果向右移位;第三相加移位器(83)与第三乘法器阵列(73)相连,用于将第三乘法器阵列(73)的运算结果分为四组,并将每组数据分别相加后的结果向右移位;第四相加移位器(84)与第一乘法器阵列(71)、第二乘法器阵列(72)和第三乘法器阵列(73)相连,用于将这些乘法器阵列的运算结果分为八组,并将每组数据分别相加后的结果向右移位;第五相加移位器(85)分别与第一相加移位器(81)和第二相加移位器(82)相连,用于将第一相加移位器(81)和第二相加移位器(82)的运算结果相加;第六相加移位器(86)与第三相加移位器(83)相连,用于将第三相加移位器(83)相邻两周期的运算结果相加;第七相加移位器(87)与第四相加移位器(84)相连,用于将第四相加移位器(83)的相邻三周期的运算结果相加;第八相加移位器(88)与第一乘法器阵列(71)相连,用于将第一乘法器阵列(71)的运算结果分为八组,并将每组数据分别相加后的结果向右移位。根据权利要求6所述的变换编码器,其特征在于:各相加移位器将每组数据分别相加后的结果向右移位的位数,是根据变换块的大小和行列变换确定,即进行32点DCT行变换时右移4位,列变换时右移11位;进行16点DCT行变换时右移3位,列变换时右移10位;进行8点DCT行变换时右移2位,列变换时右移9位;进行4点DCT和DST行变换时右移1位,列变换时右移8位。根据权利要求1所述的变换编码器,其特征在于:寄存器阵列转置子模块(9),由16行16列寄存器阵列组成,该阵列分为三个区域,分别是4×4转置区域(91)、8×8转置区域(92)和16×16转置区域(93),用以分别完成4点、8点、16点转置操作;该4×4转置区域(91)由寄存器阵列最左上角的4×4个寄存 器组成,8×8转置区域(92)由寄存器阵列最左上角的8×8个寄存器组成,16×16转置区域(93)由全部寄存器阵列组成;这三个区域的输入数据均从该区域的左方输入,每个时钟周期向右方寄存,当数据输入完成之后,寄存器的储存方向变为自下而上,每个时钟周期数据向上方寄存,即可完成转置操作,并将转置后的数据从上方输出。根据权利要求1所述的变换编码器,其特征在于:RAM存取转置子模块(10),包含RAM单元(101)和输入输出地址控制单元(102),该RAM单元(101)由8个存储器构成,每一个存储器均与一维DCT/DST模块(1)相连;输入输出地址控制单元(102)与每个存储器的地址端相连,控制每个存储器的输入输出地址,实现对一维DCT/DST模块(1)的32点DCT行变换结果,并将该变换结果按行存入8个存储器中,再按列读出,即完成32×32个数据的转置操作。

说明书

说明书适于HEVC标准的变换编码器
技术领域
本发明属于电子电路技术领域,特别涉及HEVC标准的视频编码中的变换编码器结构,可应用于超大规模集成电路VLSI。
背景技术
众所周知,视频图像是人类获取外部世界信息的一个主要的来源。随着视频图像获取设备、通信网络以及多媒体技术的迅速发展,高分辨率/高清晰度视频图像已经在国家安全、国民经济、科学研究和人民生活中发挥着越来越重要的作用。然而,这些具有丰富内容的视频图像信息经过数字化后,数据量十分巨大。给高分辨率/高清晰度视频图像的传输和存储带来了极大的困难。特别是在数据传输带宽有限的情况下,高分辨率视频图像所带来的高数据率、大数据量问题成为了高分辨率视频图像应用领域扩展的瓶颈,同时也对现有的压缩算法提出了更大的挑战,传统的视频图像压缩方法已不能满足高分辨率视频图像的要求。
新一代视频图像压缩方法是高分辨率视频图像压缩的解决途径。2010年由ISO/IEC和ITU‑T联合构建了面向下一代视频压缩标准High Efficiency Video Coding,即HEVC视频编码方案,并且建立了测试模型。与目前正在广泛使用的H.264/AVC标准相比,在解码图像质量相同的情况下,HEVC大约可以节省高达40%的码率。HEVC帧内编码依然采用在H.263中就开始使用的混合编码框架:预测编码、变换编码和熵编码。
然而,高效率的变换编码是以增加计算复杂度为代价的。HEVC的帧内编码中存在三种不同的处理单元,分别是编码单元CU、预测单元PU和变换单元TU。三种处理单元在逻辑上可以依次向下分割为更小的处理单元。同时编码单元CU可以分解为与其大小相同的PU和4个1/4大小的PU。PU可以进一步分解为与其大小相同的TU和4个1/4大小的TU,且每个块都具有比H.264更多的方向。编码框架采用递归及四叉树的方法来实现,因此其结构非常复杂。作为HEVC中一个最常用的单位,TU作为最终处理单元,其块大小从4×4到32×32,特别是在高效率层次中,TU的大小可以通过分裂CU三个层次而得到。同时,DCT变换是HEVC编码标准的主要复杂计算的组成部分。因此,TU的计算复杂性是硬件实现HEVC的一个瓶颈问题,目前还没有能够高效实现该标准的电路结构。
发明内容
本发明的目的在于针对上述背景技术中存在的困难和不足,提出了一种适用于HEVC标准的变换编码器,以完成对HEVC标准中的4×4DCT、4×4DST、8×8DCT、16×16DCT和32×32DCT这5种类型的变换。
为实现上述目的,本发明的变换编码器包括:包括一维DCT/DST模块、转置缓冲模块和顶层控制单元,一维DCT/DST模块用于完成HEVC标准中的各种一维变换,转置缓冲模块用于完成数据的转置操作,即将按行输入的行变换结果按列输出,顶层控制模块用于产生一维DCT/DST模块和转置缓冲模块的复位和使能信号,控制一维DCT/DST模块对输入的原始数据进行一维行变换,并产生控制信号控制转置缓冲模块接收一维DCT/DST模块的行变换结果,在所有行数据处理完成之后,控制转置缓冲模块将转置后的结果输回一维DCT/DST模块进行一维列变换,其特征在于:
所述一维DCT/DST模块,包括:
蝶形运算单元,用于完成数据间的加减操作,将输入数据首尾两两相加、相减的结果送入多路选择器;
类蝶形运算单元,用于完成4点DST变换输入数据间的相加、相减和延迟的操作,并将结果送入矩阵乘法器阵列;
多路选择器,根据变换类型和当前状态,对蝶形运算单元输入的运算结果进行选择,输出至矩阵乘法器阵列;
矩阵乘法器阵列,包含两组输入:一组输入4个数据,另一组输入16个数据,用于完成将输入的4个数据分别与另一组输入的4组4个系数的相乘操作,将得到16个乘积送入相加移位器;
相加移位器,用于将矩阵乘法器阵列输入的运算结果进行相加、移位;
所述的转置缓冲模块,完成对一维DCT/DST模块行变换结果的转置操作,它包含寄存器阵列转置子模块和RAM存取转置子模块,该寄存器阵列转置子模块,采用寄存器阵列结构,利用每个寄存器的不同路径延迟、不同的输入输出方向和寄存器区域完成非32点数据转置操作;该RAM存取转置子模块采用8组RAM地址存取结构,通过控制各个RAM的输入输出地址,完成32点数据的转置操作。
作为优选,上述变换编码器中的顶层控制单元,包括复位使能模块和数据流控制模块,复位使能模块分别与一维DCT/DST模块的使能、复位端和转置缓冲模块的使能、复位端相连,为这两个模块提供使能和复位信号;数据流控制模块分别与一维DCT/DST模块的数据控制端和转置缓冲模块的数据控制端相连,根据一维行变换和数据转置的完成状况,控制DCT/DST模块及转置缓冲模块的数据流方向。
作为优选,上述变换编码器中的矩阵乘法器阵列,设为3个,分别为第一乘法器阵列、第二乘法器阵列和第三乘法器阵列;第一乘法器阵列,用于进行4×4DCT、4×4DST、8×8DCT、16×16DCT和32×32DCT变换;第二乘法器阵列,用于进行8×8DCT、16×16DCT和32×32DCT变换;第三乘法器阵列用于进行16×16DCT和32×32DCT变换。
作为优选,上述变换编码器中的多路选择器,设为三组,分别为第一多路选择器、第二多路选择器和第三多路选择器,它们分别与第一乘法器阵列、第二乘法器阵列、第三乘法器阵列的输入端相连,用于根据变换类型和当前状态对蝶形运算单元的计算结果进行选择输出,送入下级以完成乘法运算,即第一多路选择器对数据进行选择后送入第一乘法器阵列,第二多路选择器对数据进行选择后送入第二乘法器阵列,第三多路选择器对数据进行选择后送入第三乘法器阵列。
作为优选,上述变换编码器中的蝶形运算单元,设为四组,分别为32输入蝶形、16输入蝶形、8输入蝶形和4输入蝶形,分别用以完成32、16、8、4个输入数据的首尾相加和首尾相减操作;该32输入蝶形的相加结果送入16输入蝶形,其相减结果分为三组分别送入第一多路选择器、第二多路选择器和第三多路选择器;该16输入蝶形的相加结果送入8输入蝶形,其相减结果分为三组分别送入第一多路选择器、第二多路选择器和第三多路选择器;该8输入蝶形的相加结果送入4输入蝶形,其相减结果分为两组分别送入第一多路选择器和第二多路选择器,该4输入蝶形的相加和相减结果均送入第一多路选择器。
作为优选,上述变换编码器中的相加移位器,设为八组,分别为第一相加移位器、第二相加移位器、第三相加移位器、第四相加移位器、第五相加移位器、第六相加移位器、第七相加移位器和第八相加移位器;
第一相加移位器与第一乘法器阵列相连,用于将第一乘法器阵列的运算结果分为四组,并将每组数据分别相加后的结果向右移位;
第二相加移位器与第二乘法器阵列相连,用于将第二乘法器阵列的运算结果分为四组,并将每组数据分别相加后的结果向右移位;
第三相加移位器与第三乘法器阵列相连,用于将第三乘法器阵列的运算结果分为四组,并将每组数据分别相加后的结果向右移位;
第四相加移位器与第一乘法器阵列、第二乘法器阵列和第三乘法器阵列相连,用于将这些乘法器阵列的运算结果分为八组,并将每组数据分别相加后的结果向右移位;
第五相加移位器分别与第一相加移位器和第二相加移位器相连,用于将第一相加移位器和第二相加移位器的运算结果相加;
第六相加移位器与第三相加移位器相连,用于将第三相加移位器相邻两周期的运算结果相加;
第七相加移位器与第四相加移位器相连,用于将第四相加移位器的相邻三周期的运算结果相加;
第八相加移位器与第一乘法器阵列相连,用于将第一乘法器阵列的运算结果分为八组,并将每组数据分别相加后的结果向右移位。
各相加移位器将每组数据分别相加后的结果向右移位的位数,是根据变换块的大小和行列变换确定,即进行32点DCT行变换时右移4位,列变换时右移11位;进行16点DCT行变换时右移3位,列变换时右移10位;进行8点DCT行变换时右移2位,列变换时右移9位;进行4点DCT和DST行变换时右移1位,列变换时右移8位。
作为优选,上述变换编码器中的寄存器阵列转置子模块,由16行16列寄存器阵列组成,该阵列分为三个区域,分别是4×4转置区域、8×8转置区域和16×16转置区域,用以分别完成4点、8点、16点转置操作;该4×4转置区域由寄存器阵列最左上角的4×4个寄存器组成,8×8转置区域由寄存器阵列最左上角的8×8个寄存器组成,16×16转置区域由全部寄存器阵列组成;这三个区域的输入数据均从该区域的左方输入,每个时钟周期向右方寄存,当数据输入完成之后,寄存器的储存方向变为自下而上,每个时钟周期数据向上方寄存,即可完成转置操作,并将转置后的数据从上方输出。
作为优选,上述变换编码器中的RAM存取转置子模块,包含RAM单元和输入输出地址控制单元,该RAM单元由8个存储器构成,每一个存储器均与一维DCT/DST模块相连;输入输出地址控制单元与每个存储器的地址端相连,控制每个存储器的输入输出地址,实现对一维DCT/DST模块的32点DCT行变换结果,并将该变换结果按行存入8个存储器中,再按列读出,即完成32×32个数据的转置操作。
本发明与现有技术相比具有以下优点:
第一,本发明采用一维DCT/DST模块与转置缓冲模块相结合的结构,使用同一个一维DCT/DST模块完成行变换和列变换,提高了电路复用程度,减小了电路规模和复杂度;
第二,本发明采用的一维DCT/DST模块,通过使用蝶形运算器与矩阵乘法器结合的结构实现变换,该结构仅使用48个乘法器即可完成所有从4×4至32×32大小的DCT变换与4×4的DST变换,适合于硬件实现的编码器;
第三,本发明根据变换块大小,选择使用不同的转置模块,分别为寄存器阵列转置子模块和RAM存取转置子模块,其中寄存器阵列转置子模块巧妙利用寄存器间的路径延迟,可以高效简便地完成数据转置操作,且结构规整易于集成电路实现;RAM存取转置子模块,综合考虑数据大小和存储器资源,利用不同的存储和读取顺序,高效完成大块数据的转置操作。
附图说明
图1为本发明总体结构框图;
图2为本发明中的一维DCT/DST模块框图;
图3为本发明中的矩阵乘法器阵列结构框图;
图4为本发明蝶形运算单元与多路选择器连接示意图;
图5为本发明实现一维4×4DCT/DST变换的结构图;
图6为本发明实现一维8×8DCT变换的结构图;
图7为本发明实现一维16×16DCT变换的结构图;
图8为本发明实现一维32×32DCT变换的结构图;
图9为本发明实现一维32×32DCT变换每阶段各乘法器阵列数据输入顺序示意图;
图10为本发明寄存器阵列转置子模块结构示意图;
图11为本发明RAM存取转置子模块结构示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。
参照图1,本发明提出的适于HEVC标准的变换编码器,由顶层控制单元3、一维DCT/DST模块1和转置缓冲模块2构成。其中顶层控制单元3的输出分为两路,第一路与一维DCT/DST模块1的复位端和使能端连接,第二路与转置缓冲模块2的复位端和使能端连接;一维DCT/DST模块1的输入分为两路,第一路与外部的输入数据连接,第二路与转置缓冲模块2的数据输出端连接;一维DCT/DST模块1的输出分为两路,第一路与转置缓冲模块2的数据输入端连接,第二路与外部的输出端连接;转置缓冲模块2的数据输入端与一维DCT/DST模块1的数据输出端连接,转置缓冲模块2的数据输出端与一维DCT/DST模块1的数据输入端连接。其中:
所述顶层控制单元3,包括复位使能模块31和数据流控制模块32,复位使能模块31分别与一维DCT/DST模块1的使能、复位端和转置缓冲模块2的使能、复位端相连,为这两个模块提供使能和复位信号;数据流控制模块32分别与一维DCT/DST模块1的数据控制端和转置缓冲模块2的数据控制端相连。复位使能模块31和数据流控制模块32均由计数器和逻辑电路构成,根据计数器的计数状态和当前进行的变换类型,由逻辑电路产生一维DCT/DST模块1的复位、使能、数据流控制信号和转置缓冲模块2的复位、使能、数据流控制信号,控制一维DCT/DST模块1对变换编码器的输入数据进行一维行变换,并产生控制信号控制转置缓冲模块2接收一维DCT/DST模块1的行变换结果,在所有行数据处理完成之后,控制转置缓冲模块2将转置后的行变换结果输出至一维DCT/DST模块1进行一维列变换。
所述的转置缓冲模块2,完成对一维DCT/DST模块1行变换结果的转置操作,它包含寄存器阵列转置子模块9和RAM存取转置子模块10。其中:寄存器阵列转置子模块9的结构如图10所示,RAM存取转置子模块10的结构如图11所示。
参照图10,寄存器阵列转置子模块9,由16行16列寄存器阵列组成,该阵列分为三个区域,分别是4×4转置区域91、8×8转置区域92和16×16转置区域93。用以分别完成4点、8点、16点转置操作;该4×4转置区域91由寄存器阵列最左上角的4×4个寄存器组成,8×8转置区域92由寄存器阵列最左上角的8×8个寄存器组成,16×16转置区域93由全部寄存器阵列组成;这三个区域的输入数据均从该区域的左方输入,每个时钟周期向右方寄存,当数据输入完成之后,寄存器的储存方向变为自下而上,每个时钟周期数据向上方寄存,即可完成转置操作,并将转置后的数据从上方输出。
参照图11,RAM存取转置子模块10,包含RAM单元101和输入输出地址控制单元102,该RAM单元101由8个存储器构成,每一个存储器均与一维DCT/DST模块1相连;输入输出地址控制单元102与每个存储器的地址端相连,控制每个存储器的输入输出地址,实现对一维DCT/DST模块1的32点DCT行变换结果,并将该变换结果按行存入8个存储器中,再按列读出,即完成32×32个数据的转置操作。
所述一维DCT/DST模块1,用于完成HEVC标准中的4点DCT、4点DST、8点DCT、16点DCT以及32点DCT一维变换,其结构如图2所示。
参照图2,一维DCT/DST模块1,包括四组蝶形运算单元4、一个类蝶形运算单元5、三组多路选择器6、三个矩阵乘法器阵列7和八组相加移位器8,其中:
三个矩阵乘法器阵列7,分别为第一乘法器阵列71、第二乘法器阵列72和第三乘法器阵列73。每个矩阵乘法器阵列的输入数据分为两路:第一路为a、b、c和d四个数据,第二路为a0、a1、a2、a3、b0、b1、b2、b3、c0、c1、c2、c3、d0、d1、d2和d3十六个数据,该结构包含16个乘法器,用以完成将a与a0、a1、a2、a3分别相乘,b与b0、b1、b2、b3分别相乘,c与c0、c1、c2、c3分别相乘,d与d0、d1、d2、d3分别相乘的操作,并将得到的16个相乘结果输出,如图3所示;
三组多路选择器6,分别为第一多路选择器61、第二多路选择器62和第三多路选择器63,它们的输出端分别与第一乘法器阵列71、第二乘法器阵列72、第三乘法器阵列73的输入端相连。根据当前状态和变换类型,实现对第一乘法器阵列71、第二乘法器阵列72、第三乘法器阵列73的输入数据进行选择的操作;
四组蝶形运算单元4,分别为32输入蝶形41、16输入蝶形42、8输入蝶形43和4输入蝶形44,每个蝶形运算单元均由加法器和减法器构成,以完成对输入数据的首尾相加和首尾相减的操作。其中32输入蝶形41,将其相加结果送入16输入蝶形42,将其相减结果中的O10、O11、O16、O17、O112、O113送入第一多路选择器61,O12、O13、O18、O19、O114、O115送入第二多路选择器62,O14、O15、O110、O111送入第三多路选择器63;16输入蝶形42将其相加结果送入8输入蝶形43,将其相减结果中的O24、O25、O26、O27送入第一多路选择器61和第二多路选择器62,O20、O21、O22、O23送入第三多路选择器63;8输入蝶形43将其相加结果送入4输入蝶形44和类蝶形运算单元5,将其相减结果送入第二多路选择器62;4输入蝶形44的相加和相减结果均送入第一多路选择器61,如图4所示。
八组相加移位器8,分别为第一相加移位器81、第二相加移位器82、第三相加移位器83、第四相加移位器84、第五相加移位器85、第六相加移位器86、第七相加移位器87和第八相加移位器88;第一相加移位器81与第一乘法器阵列71相连,用于将第一乘法器阵列71的运算结果分为四组,并将每组数据分别相加后的结果向右移位;第二相加移位器82与第二乘法器阵列72相连,用于将第二乘法器阵列72的运算结果分为四组,并将每组数据分别相加后的结果向右移位;第三相加移位器83与第三乘法器阵列73相连,用于将第三乘法器阵列73的运算结果分为四组,并将每组数据分别相加后的结果向右移位;第四相加移位器84与第一乘法器阵列71、第二乘法器阵列72和第三乘法器阵列73相连,用于将这些乘法器阵列的运算结果分为八组,并将每组数据分别相加后的结果向右移位;第五相加移位器85分别与第一相加移位器81和第二相加移位器82相连,用于将第一相加移位器81和第二相加移位器82的运算结果相加;第六相加移位器86与第三相加移位器83相连,用于将第三相加移位器83相邻两周期的运算结果相加;第七相加移位器87与第四相加移位器84相连,用于将第四相加移位器83的相邻三周期的运算结果相加;第八相加移位器88与第一乘法器阵列71相连,用于将第一乘法器阵列71的运算结果分为八组,并将每组数据分别相加后的结果向右移位。各相加移位器将每组数据分别相加后的结果向右移位的位数,是根据变换块的大小和行列变换确定,即进行32点DCT行变换时右移4位,列变换时右移11位;进行16点DCT行变换时右移3位,列变换时右移10位;进行8点DCT行变换时右移2位,列变换时右移9位;进行4点DCT和DST行变换时右移1位,列变换时右移8位。
本发明中的一维DCT/DST模块1进行一维4点DCT、一维4点DST、一维8点DCT、一维16点DCT和一维32点DCT变换过程如下:
参照图5,一维DCT/DST模块1进行一维4点DCT和一维4点DST变换操作时,使用该结构中的4输入蝶形44、类蝶形运算单元5、第一多路选择器61、第一乘法器阵列71和第八相加移位器88。当待变换数据从外部输入后,进入4输入蝶形44和类蝶形运算单元5,以完成4个数据间相加、相减、延迟操作。类蝶形运算单元5的运算结果与DCT的基向量从第一乘法器阵列71的16点端口输入,4输入蝶形44的运算结果和DST的基向量通过第一多路选择器61输入第一乘法器阵列71的4点输入端口。第一多路选择器61根据当前的变换类型是4点DCT还是4点DST,选择相应的数据输入第一乘法器阵列71。其中,进行4点DCT变换时使用M0,0~M3,0,M2,1,M3,16个乘法器,进行4点DST变换时使用M0,1~M1,1,M0,2~M2,2,M0,3~M2,38个乘法器。乘法完成之后将得到的结果数据送入第八相加移位器88,完成将数据间的相加移位操作,得到最后的变换结果。
参照图6,一维DCT/DST模块1进行一维8点DCT变换操作时,使用该结构中的8输入蝶形43、4输入蝶形44、第一多路选择器61、第二多路选择器62、第一乘法器阵列71、第二乘法器阵列72、第二相加移位器82和第八相加移位器88。当待变换数据输入之后,进入8输入蝶形43对输入数据进行首尾相加、相减操作,对其相加结果进行如上所述的4点DCT变换,以求出其第0、2、4、6个变换结果;将8输入蝶形43的相减结果通过第二多路选择器62送入第二乘法器阵列72的4输入端口,将8点DCT的基矩阵送入第二乘法器阵列72的16输入端口,完成需要的16次乘法运算。将得到的乘积结果送入第二相加移位器82,完成将乘法器M0,0~M3,0,M0,1~M3,1,M0,2~M3,2和M0,3~M3,3的4组结果分别相加移位的操作,得到第1、3、5、7个变换结果。
参照图7,一维DCT/DST模块1进行一维16点DCT变换操作时,使用该结构中的16输入蝶形42、8输入蝶形43、4输入蝶形44、第一多路选择器61、第二多路选择器62、第三多路选择器63、第一乘法器阵列71、第二乘法器阵列72、第三乘法器阵列73、第一相加移位器81、第二相加移位器82、第三相加移位器83、第五相加移位器85、第六相加移位器86和第八相加移位器88。当待变换数据输入之后,进入16输入蝶形42,完成16个数据间的首尾相加、相减操作。对其相加结果进行如上所述的8点DCT变换,求出其第0、2、4、6、8、10、12、14个变换结果;将其相减结果中的O24、O25、O26、O27送入第一多路选择器61和第二多路选择器62,O20、O21、O22、O23送入第三多路选择器63。其完成16点DCT变换操作需要进行如下2个时钟周期的操作:
第一个时钟周期:对16输入蝶形42的相加结果进行如上所述的8点DCT变换,求出其第0、2、4、6、8、10、12、14个变换结果,将相减结果O20、O21、O22、O23通过第三多路选择器63送入第三乘法器阵列73的4输入端口,将16点DCT的基矩阵送入第三乘法器阵列73的16输入端口,完成需要的16次乘法运算,并将输出结果送入第三相加移位器83,完成将乘法器M0,0~M3,0,M0,1~M3,1,M0,2~M3,2和M0,3~M3,3的4组结果分别相加移位的操作,得到4个中间结果,送入第六相加移位器86。
第二个时钟周期:将相减结果O24、O25、O26、O27通过第一多路选择器61和第二多路选择器62送入第一乘法器阵列71和第二乘法器阵列72的4输入端口,其对应的16点DCT的基矩阵分别送入第一乘法器阵列71和第二乘法器阵列72的16输入端口,完成需要的32次乘法,并将输出的结果送入第五相加移位器85,完成将第一乘法器阵列71与第二乘法器阵列72的M0,0~M3,0,M0,1~M3,1,M0,2~M3,2和M0,3~M3,34组结果分别相加移位的操作,得到第1、3、5、7个变换结果。将相减结果O20、O21、O22、O23通过第三多路选择器63送入第三乘法器阵列73的4输入端口,其16点DCT的基矩阵送入第三乘法器阵列73的16输入端口,完成需要的16次乘法运算,并将输出结果送入第三相加移位器83,完成将乘法器M0,0~M3,0,M0,1~M3,1,M0,2~M3,2和M0,3~M3,3的4组结果分别相加移位的操作,得到4个中间结果,送入第六相加移位器86。使用第六相加移位器86将第三相加移位器83相邻两周期的运算结果相加,并向右移位,得到第9、11、13、15个变换结果。
参照图8,一维DCT/DST模块1进行一维32点DCT变换操作时,使用该结构中的32输入蝶形41、16输入蝶形42、8输入蝶形43、4输入蝶形44、第一多路选择器61、第二多路选择器62、第三多路选择器63、第一乘法器阵列71、第二乘法器阵列72、第三乘法器阵列73、第一相加移位器81、第二相加移位器82、第三相加移位器83、第四相加移位器84、第五相加移位器85、第六相加移位器86、第七相加移位器87和第八相加移位器88。当待变换数据输入之后,进入32输入蝶形41,完成32个数据间的首尾相加、相减操作。对其相加结果进行如上所述的16点DCT变换,求出其第0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30个变换结果,将其相减结果中的O10、O11、O16、O17、O112、O113送入第一多路选择器61,O12、O13、O18、O19、O114、O115送入第二多路选择器62,O14、O15、O110、O111送入第三多路选择器63。其完成32点DCT变换操作需要8个时钟周期,可以分为2个阶段,第一阶段需要2个时钟周期,第二阶段需要6个时钟周期。每个阶段操作具体如下:
阶段1:对其相加结果进行如上所述的16点DCT变换,求出其第0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30个变换结果,共需2个时钟周期,每个时钟周期得到8个变换结果。
阶段2:当前阶段包含T1、T2、T3、T4、T5、T6六个时钟周期,第一多路选择器61、第二多路选择器62和第三多路选择器63根据当前状态,将32输入蝶形41输出的相减结果分别送入第一乘法器阵列71、第二乘法器阵列72和第三乘法器阵列73,在每个时钟周期内完成48次乘法。参考图9,在T1和T4时,将O0、O0、O1、O1从第一乘法器阵列71的4点端口输入,而其对应的基向量从第一乘法器阵列71的16点端口输入;将O2、O2、O3、O3从第二乘法器阵列72的4点端口输入,而其对应的基向量从第二乘法器阵列72的16点端口输入;将O4、O4、O5、O5从第三乘法器阵列73的4点端口输入,而其对应的基向量从第三乘法器阵列73的16点端口输入。在T2和T5时,将O6、O6、O7、O7从第一乘法器阵列71的4点端口输入,而其对应的基向量从第一乘法器阵列71的16点端口输入;将O8、O8、O9、O9从第二乘法器阵列72的4点端口输入,而其对应的基向量从第二乘法器阵列72的16点端口输入;将O10、O10、O11、O11从第三乘法器阵列73的4点端口输入,而其对应的基向量从第三乘法器阵列73的16点端口输入。在T3和T6时,将O12、O12、O13、O13从第一乘法器阵列71的4点端口输入,而其对应的基向量从第一乘法器阵列71的16点端口输入;将O14、O14、O15、O15从第二乘法器阵列72的4点端口输入,而其对应的基向量从第二乘法器阵列72的16点端口输入。将第一乘法器阵列71、第二乘法器阵列72和第三乘法器阵列73的运算结果送入第四相加移位器84,以完成将三个乘法器阵列中对应的M0,0M2,0,M1,0M3,0,M0,1M2,1,M1,1M3,1,M0,2M2,2,M1,2M3,2,M0,3M2,3,M1,3M3,38组乘法器的运算结果分别相加移位的操作,并将结果输入第七相加移位器87,以完成将第四相加移位器(83)的相邻三周期的运算结果相加的操作,得到最终变换结果。
术语解释:
DCT,离散余弦变换;
DST,离散正弦变换;
一维DCT/DST,一维离散余弦变换和离散正弦变换。

适于HEVC标准的变换编码器.pdf_第1页
第1页 / 共19页
适于HEVC标准的变换编码器.pdf_第2页
第2页 / 共19页
适于HEVC标准的变换编码器.pdf_第3页
第3页 / 共19页
点击查看更多>>
资源描述

《适于HEVC标准的变换编码器.pdf》由会员分享,可在线阅读,更多相关《适于HEVC标准的变换编码器.pdf(19页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102857756 A (43)申请公布日 2013.01.02 C N 1 0 2 8 5 7 7 5 6 A *CN102857756A* (21)申请号 201210251115.9 (22)申请日 2012.07.19 H04N 7/26(2006.01) H04N 7/30(2006.01) (71)申请人西安电子科技大学 地址 710071 陕西省西安市太白南路2号 (72)发明人李甫 樊春晓 石光明 张犁 周蕾蕾 林杰 杨海舟 董伟生 王晓甜 (74)专利代理机构陕西电子工业专利中心 61205 代理人王品华 朱红星 (54) 发明名称 适于HEVC标准。

2、的变换编码器 (57) 摘要 本发明公开了一种适于HEVC标准的变换编 码器,主要解决现有技术中的变换块大小不一致、 乘法器使用过多的问题。其包括一维DCT/DST模 块(1)、转置缓冲模块(2)和顶层控制单元(3); 一维DCT/DST模块(1)采用统一的HEVC变换编码 架构,结合蝶形结构和矩阵乘法阵列,实现资源选 择共享;转置缓冲模块(2)利用寄存器间的路径 延迟和存储器不同的存储和读取顺序,以高效简 便地完成数据的转置操作;顶层控制单元产生一 维DCT/DST模块和转置缓冲模块的复位和使能信 号,控制一维DCT/DST模块对输入数据进行一维 行变换,并控制转置缓冲模块将变换结果进行转 。

3、置后输出至一维DCT/DST模块完成一维列变换。 本发明具有结构简单规整,复用度高,易于集成电 路实现的优点,可实现高吞吐的变换编码。 (51)Int.Cl. 权利要求书3页 说明书8页 附图7页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 8 页 附图 7 页 1/3页 2 1.一种适于HEVC标准的变换编码器,包括一维DCTDST模块(1)、转置缓冲模块(2)和 顶层控制单元(3),一维DCT/DST模块(1)用于完成HEVC标准中的各种一维变换,转置缓 冲模块(2)用于完成数据的转置操作,即将按行输入的行变换结果按列输出,顶层控制模块 (3)用。

4、于产生一维DCT/DST模块(1)和转置缓冲模块(2)的复位和使能信号,控制一维DCT/ DST模块(1)对输入的原始数据进行一维行变换,并产生控制信号控制转置缓冲模块(2)接 收一维DCT/DST模块(1)的行变换结果,在所有行数据处理完成之后,控制转置缓冲模块 (2)将转置后的结果输回一维DCT/DST模块(1)进行一维列变换,其特征在于: 所述一维DCT/DST模块(1),包括: 蝶形运算单元(4),用于完成数据间的加减操作,将输入数据首尾两两相加、相减的结 果送入多路选择器(6); 类蝶形运算单元(5),用于完成4点DST变换输入数据间的相加、相减和延迟的操作,并 将结果送入矩阵乘法器。

5、阵列(7); 多路选择器(6),根据变换类型和当前状态,对蝶形运算单元(4)输入的运算结果进行 选择,输出至矩阵乘法器阵列(7); 矩阵乘法器阵列(7),包含两组输入:一组输入4个数据,另一组输入16个数据,用于 完成将输入的4个数据分别与另一组输入的4组4个系数的相乘操作,将得到16个乘积送 入相加移位器(8); 相加移位器(8),用于将矩阵乘法器阵列(7)输入的运算结果进行相加、移位; 所述的转置缓冲模块(2),完成对一维DCT/DST模块(1)行变换结果的转置操作,它包 含寄存器阵列转置子模块(9)和RAM存取转置子模块(10),该寄存器阵列转置子模块(9), 采用寄存器阵列结构,利用每。

6、个寄存器的不同路径延迟、不同的输入输出方向和寄存器区 域完成非32点数据转置操作;该RAM存取转置子模块(10)采用8组RAM地址存取结构,通 过控制各个RAM的输入输出地址,完成32点数据的转置操作。 2.根据权利要求1所述的变换编码器,其特征在于:顶层控制单元(3),包括复位使能 模块(31)和数据流控制模块(32),复位使能模块(31)分别与一维DCT/DST模块(1)的使 能、复位端和转置缓冲模块(2)的使能、复位端相连,为这两个模块提供使能和复位信号; 数据流控制模块(32)分别与一维DCT/DST模块(1)的数据控制端和转置缓冲模块(2)的数 据控制端相连,根据一维行变换和数据转置。

7、的完成状况,控制DCT/DST模块及转置缓冲模 块的数据流方向。 3.根据权利要求1所述的变换编码器,其特征在于:矩阵乘法器阵列(7)设为3个,分 别为第一乘法器阵列(71)、第二乘法器阵列(72)和第三乘法器阵列(73);第一乘法器阵列 (71),用于进行44DCT、44DST、88DCT、1616DCT和3232DCT变换;第二乘法器阵 列(72),用于进行88DCT、1616DCT和3232DCT变换;第三乘法器阵列(73)用于进行 1616DCT和3232DCT变换。 4.根据权利要求1所述的变换编码器,其特征在于:多路选择器(6)设为三组,分别为 第一多路选择器(61)、第二多路选择。

8、器(62)和第三多路选择器(63),它们分别与第一乘法 器阵列(71)、第二乘法器阵列(72)、第三乘法器阵列(73)的输入端相连,用于根据变换类 型和当前状态对蝶形运算单元(4)的计算结果进行选择输出,送入下级以完成乘法运算,即 第一多路选择器(61)对数据进行选择后送入第一乘法器阵列(71),第二多路选择器(62) 权 利 要 求 书CN 102857756 A 2/3页 3 对数据进行选择后送入第二乘法器阵列(72),第三多路选择器(63)对数据进行选择后送 入第三乘法器阵列(73)。 5.根据权利要求1所述的变换编码器,其特征在于:蝶形运算单元(4)设为四组,分 别为32输入蝶形(41。

9、)、16输入蝶形(42)、8输入蝶形(43)和4输入蝶形(44),分别用以完 成32、16、8、4个输入数据的首尾相加和首尾相减操作;该32输入蝶形(41)的相加结果送 入16输入蝶形(42),其相减结果分为三组分别送入第一多路选择器(61)、第二多路选择器 (62)和第三多路选择器(63);该16输入蝶形(42)的相加结果送入8输入蝶形(43),其相 减结果分为三组分别送入第一多路选择器(61)、第二多路选择器(62)和第三多路选择器 (63);该8输入蝶形(43)的相加结果送入4输入蝶形(44),其相减结果送入第二多路选择 器(62),该4输入蝶形(44)的相加和相减结果均送入第一多路选择。

10、器(61)。 6.根据权利要求1所述的变换编码器,其特征在于:相加移位器(8)设为八组,分别为 第一相加移位器(81)、第二相加移位器(82)、第三相加移位器(83)、第四相加移位器(84)、 第五相加移位器(85)、第六相加移位器(86)、第七相加移位器(87)和第八相加移位器 (88); 第一相加移位器(81)与第一乘法器阵列(71)相连,用于将第一乘法器阵列(71)的运 算结果分为四组,并将每组数据分别相加后的结果向右移位; 第二相加移位器(82)与第二乘法器阵列(72)相连,用于将第二乘法器阵列(72)的运 算结果分为四组,并将每组数据分别相加后的结果向右移位; 第三相加移位器(83)。

11、与第三乘法器阵列(73)相连,用于将第三乘法器阵列(73)的运 算结果分为四组,并将每组数据分别相加后的结果向右移位; 第四相加移位器(84)与第一乘法器阵列(71)、第二乘法器阵列(72)和第三乘法器阵 列(73)相连,用于将这些乘法器阵列的运算结果分为八组,并将每组数据分别相加后的结 果向右移位; 第五相加移位器(85)分别与第一相加移位器(81)和第二相加移位器(82)相连,用于 将第一相加移位器(81)和第二相加移位器(82)的运算结果相加; 第六相加移位器(86)与第三相加移位器(83)相连,用于将第三相加移位器(83)相邻 两周期的运算结果相加; 第七相加移位器(87)与第四相加移。

12、位器(84)相连,用于将第四相加移位器(83)的相 邻三周期的运算结果相加; 第八相加移位器(88)与第一乘法器阵列(71)相连,用于将第一乘法器阵列(71)的运 算结果分为八组,并将每组数据分别相加后的结果向右移位。 7.根据权利要求6所述的变换编码器,其特征在于:各相加移位器将每组数据分别相 加后的结果向右移位的位数,是根据变换块的大小和行列变换确定,即进行32点DCT行变 换时右移4位,列变换时右移11位;进行16点DCT行变换时右移3位,列变换时右移10位; 进行8点DCT行变换时右移2位,列变换时右移9位;进行4点DCT和DST行变换时右移1 位,列变换时右移8位。 8.根据权利要求。

13、1所述的变换编码器,其特征在于:寄存器阵列转置子模块(9),由16 行16列寄存器阵列组成,该阵列分为三个区域,分别是44转置区域(91)、88转置区域 (92)和1616转置区域(93),用以分别完成4点、8点、16点转置操作;该44转置区域 权 利 要 求 书CN 102857756 A 3/3页 4 (91)由寄存器阵列最左上角的44个寄存 器组成,88转置区域(92)由寄存器阵列最 左上角的88个寄存器组成,1616转置区域(93)由全部寄存器阵列组成;这三个区域的 输入数据均从该区域的左方输入,每个时钟周期向右方寄存,当数据输入完成之后,寄存器 的储存方向变为自下而上,每个时钟周期数。

14、据向上方寄存,即可完成转置操作,并将转置后 的数据从上方输出。 9.根据权利要求1所述的变换编码器,其特征在于:RAM存取转置子模块(10),包含 RAM单元(101)和输入输出地址控制单元(102),该RAM单元(101)由8个存储器构成,每一 个存储器均与一维DCT/DST模块(1)相连;输入输出地址控制单元(102)与每个存储器的地 址端相连,控制每个存储器的输入输出地址,实现对一维DCT/DST模块(1)的32点DCT行 变换结果,并将该变换结果按行存入8个存储器中,再按列读出,即完成3232个数据的转 置操作。 权 利 要 求 书CN 102857756 A 1/8页 5 适于 HE。

15、VC 标准的变换编码器 技术领域 0001 本发明属于电子电路技术领域,特别涉及HEVC标准的视频编码中的变换编码器 结构,可应用于超大规模集成电路VLSI。 背景技术 0002 众所周知,视频图像是人类获取外部世界信息的一个主要的来源。随着视频图像 获取设备、通信网络以及多媒体技术的迅速发展,高分辨率/高清晰度视频图像已经在国 家安全、国民经济、科学研究和人民生活中发挥着越来越重要的作用。然而,这些具有丰富 内容的视频图像信息经过数字化后,数据量十分巨大。给高分辨率/高清晰度视频图像的 传输和存储带来了极大的困难。特别是在数据传输带宽有限的情况下,高分辨率视频图像 所带来的高数据率、大数据量。

16、问题成为了高分辨率视频图像应用领域扩展的瓶颈,同时也 对现有的压缩算法提出了更大的挑战,传统的视频图像压缩方法已不能满足高分辨率视频 图像的要求。 0003 新一代视频图像压缩方法是高分辨率视频图像压缩的解决途径。2010年由ISO/ IEC和ITU-T联合构建了面向下一代视频压缩标准High Efficiency Video Coding,即 HEVC视频编码方案,并且建立了测试模型。与目前正在广泛使用的H.264/AVC标准相比,在 解码图像质量相同的情况下,HEVC大约可以节省高达40%的码率。HEVC帧内编码依然采用 在H.263中就开始使用的混合编码框架:预测编码、变换编码和熵编码。。

17、 0004 然而,高效率的变换编码是以增加计算复杂度为代价的。HEVC的帧内编码中存在 三种不同的处理单元,分别是编码单元CU、预测单元PU和变换单元TU。三种处理单元在逻 辑上可以依次向下分割为更小的处理单元。同时编码单元CU可以分解为与其大小相同的 PU和4个1/4大小的PU。PU可以进一步分解为与其大小相同的TU和4个1/4大小的TU, 且每个块都具有比H.264更多的方向。编码框架采用递归及四叉树的方法来实现,因此其 结构非常复杂。作为HEVC中一个最常用的单位,TU作为最终处理单元,其块大小从44到 3232,特别是在高效率层次中,TU的大小可以通过分裂CU三个层次而得到。同时,DC。

18、T变 换是HEVC编码标准的主要复杂计算的组成部分。因此,TU的计算复杂性是硬件实现HEVC 的一个瓶颈问题,目前还没有能够高效实现该标准的电路结构。 发明内容 0005 本发明的目的在于针对上述背景技术中存在的困难和不足,提出了一种适用于 HEVC标准的变换编码器,以完成对HEVC标准中的44DCT、44DST、88DCT、1616DCT和 3232DCT这5种类型的变换。 0006 为实现上述目的,本发明的变换编码器包括:包括一维DCT/DST模块、转置缓冲模 块和顶层控制单元,一维DCT/DST模块用于完成HEVC标准中的各种一维变换,转置缓冲模 块用于完成数据的转置操作,即将按行输入的。

19、行变换结果按列输出,顶层控制模块用于产 生一维DCT/DST模块和转置缓冲模块的复位和使能信号,控制一维DCT/DST模块对输入的 说 明 书CN 102857756 A 2/8页 6 原始数据进行一维行变换,并产生控制信号控制转置缓冲模块接收一维DCT/DST模块的行 变换结果,在所有行数据处理完成之后,控制转置缓冲模块将转置后的结果输回一维DCT/ DST模块进行一维列变换,其特征在于: 0007 所述一维DCT/DST模块,包括: 0008 蝶形运算单元,用于完成数据间的加减操作,将输入数据首尾两两相加、相减的结 果送入多路选择器; 0009 类蝶形运算单元,用于完成4点DST变换输入数。

20、据间的相加、相减和延迟的操作, 并将结果送入矩阵乘法器阵列; 0010 多路选择器,根据变换类型和当前状态,对蝶形运算单元输入的运算结果进行选 择,输出至矩阵乘法器阵列; 0011 矩阵乘法器阵列,包含两组输入:一组输入4个数据,另一组输入16个数据,用于 完成将输入的4个数据分别与另一组输入的4组4个系数的相乘操作,将得到16个乘积送 入相加移位器; 0012 相加移位器,用于将矩阵乘法器阵列输入的运算结果进行相加、移位; 0013 所述的转置缓冲模块,完成对一维DCT/DST模块行变换结果的转置操作,它包含 寄存器阵列转置子模块和RAM存取转置子模块,该寄存器阵列转置子模块,采用寄存器阵 。

21、列结构,利用每个寄存器的不同路径延迟、不同的输入输出方向和寄存器区域完成非32点 数据转置操作;该RAM存取转置子模块采用8组RAM地址存取结构,通过控制各个RAM的输 入输出地址,完成32点数据的转置操作。 0014 作为优选,上述变换编码器中的顶层控制单元,包括复位使能模块和数据流控制 模块,复位使能模块分别与一维DCT/DST模块的使能、复位端和转置缓冲模块的使能、复位 端相连,为这两个模块提供使能和复位信号;数据流控制模块分别与一维DCT/DST模块的 数据控制端和转置缓冲模块的数据控制端相连,根据一维行变换和数据转置的完成状况, 控制DCT/DST模块及转置缓冲模块的数据流方向。 0。

22、015 作为优选,上述变换编码器中的矩阵乘法器阵列,设为3个,分别为第一乘法器 阵列、第二乘法器阵列和第三乘法器阵列;第一乘法器阵列,用于进行44DCT、44DST、 88DCT、1616DCT和3232DCT变换;第二乘法器阵列,用于进行88DCT、1616DCT和 3232DCT变换;第三乘法器阵列用于进行1616DCT和3232DCT变换。 0016 作为优选,上述变换编码器中的多路选择器,设为三组,分别为第一多路选择器、 第二多路选择器和第三多路选择器,它们分别与第一乘法器阵列、第二乘法器阵列、第三乘 法器阵列的输入端相连,用于根据变换类型和当前状态对蝶形运算单元的计算结果进行选 择输。

23、出,送入下级以完成乘法运算,即第一多路选择器对数据进行选择后送入第一乘法器 阵列,第二多路选择器对数据进行选择后送入第二乘法器阵列,第三多路选择器对数据进 行选择后送入第三乘法器阵列。 0017 作为优选,上述变换编码器中的蝶形运算单元,设为四组,分别为32输入蝶形、16 输入蝶形、8输入蝶形和4输入蝶形,分别用以完成32、16、8、4个输入数据的首尾相加和首 尾相减操作;该32输入蝶形的相加结果送入16输入蝶形,其相减结果分为三组分别送入第 一多路选择器、第二多路选择器和第三多路选择器;该16输入蝶形的相加结果送入8输入 蝶形,其相减结果分为三组分别送入第一多路选择器、第二多路选择器和第三多。

24、路选择器; 说 明 书CN 102857756 A 3/8页 7 该8输入蝶形的相加结果送入4输入蝶形,其相减结果分为两组分别送入第一多路选择器 和第二多路选择器,该4输入蝶形的相加和相减结果均送入第一多路选择器。 0018 作为优选,上述变换编码器中的相加移位器,设为八组,分别为第一相加移位器、 第二相加移位器、第三相加移位器、第四相加移位器、第五相加移位器、第六相加移位器、第 七相加移位器和第八相加移位器; 0019 第一相加移位器与第一乘法器阵列相连,用于将第一乘法器阵列的运算结果分为 四组,并将每组数据分别相加后的结果向右移位; 0020 第二相加移位器与第二乘法器阵列相连,用于将第二。

25、乘法器阵列的运算结果分为 四组,并将每组数据分别相加后的结果向右移位; 0021 第三相加移位器与第三乘法器阵列相连,用于将第三乘法器阵列的运算结果分为 四组,并将每组数据分别相加后的结果向右移位; 0022 第四相加移位器与第一乘法器阵列、第二乘法器阵列和第三乘法器阵列相连,用 于将这些乘法器阵列的运算结果分为八组,并将每组数据分别相加后的结果向右移位; 0023 第五相加移位器分别与第一相加移位器和第二相加移位器相连,用于将第一相加 移位器和第二相加移位器的运算结果相加; 0024 第六相加移位器与第三相加移位器相连,用于将第三相加移位器相邻两周期的运 算结果相加; 0025 第七相加移位。

26、器与第四相加移位器相连,用于将第四相加移位器的相邻三周期的 运算结果相加; 0026 第八相加移位器与第一乘法器阵列相连,用于将第一乘法器阵列的运算结果分为 八组,并将每组数据分别相加后的结果向右移位。 0027 各相加移位器将每组数据分别相加后的结果向右移位的位数,是根据变换块的大 小和行列变换确定,即进行32点DCT行变换时右移4位,列变换时右移11位;进行16点 DCT行变换时右移3位,列变换时右移10位;进行8点DCT行变换时右移2位,列变换时右 移9位;进行4点DCT和DST行变换时右移1位,列变换时右移8位。 0028 作为优选,上述变换编码器中的寄存器阵列转置子模块,由16行16。

27、列寄存器阵列 组成,该阵列分为三个区域,分别是44转置区域、88转置区域和1616转置区域,用以 分别完成4点、8点、16点转置操作;该44转置区域由寄存器阵列最左上角的44个寄 存器组成,88转置区域由寄存器阵列最左上角的88个寄存器组成,1616转置区域由 全部寄存器阵列组成;这三个区域的输入数据均从该区域的左方输入,每个时钟周期向右 方寄存,当数据输入完成之后,寄存器的储存方向变为自下而上,每个时钟周期数据向上方 寄存,即可完成转置操作,并将转置后的数据从上方输出。 0029 作为优选,上述变换编码器中的RAM存取转置子模块,包含RAM单元和输入输出地 址控制单元,该RAM单元由8个存储。

28、器构成,每一个存储器均与一维DCT/DST模块相连;输 入输出地址控制单元与每个存储器的地址端相连,控制每个存储器的输入输出地址,实现 对一维DCT/DST模块的32点DCT行变换结果,并将该变换结果按行存入8个存储器中,再 按列读出,即完成3232个数据的转置操作。 0030 本发明与现有技术相比具有以下优点: 0031 第一,本发明采用一维DCT/DST模块与转置缓冲模块相结合的结构,使用同一个 说 明 书CN 102857756 A 4/8页 8 一维DCT/DST模块完成行变换和列变换,提高了电路复用程度,减小了电路规模和复杂度; 0032 第二,本发明采用的一维DCT/DST模块,通。

29、过使用蝶形运算器与矩阵乘法器结合 的结构实现变换,该结构仅使用48个乘法器即可完成所有从44至3232大小的DCT变 换与44的DST变换,适合于硬件实现的编码器; 0033 第三,本发明根据变换块大小,选择使用不同的转置模块,分别为寄存器阵列转置 子模块和RAM存取转置子模块,其中寄存器阵列转置子模块巧妙利用寄存器间的路径延 迟,可以高效简便地完成数据转置操作,且结构规整易于集成电路实现;RAM存取转置子模 块,综合考虑数据大小和存储器资源,利用不同的存储和读取顺序,高效完成大块数据的转 置操作。 附图说明 0034 图1为本发明总体结构框图; 0035 图2为本发明中的一维DCT/DST模。

30、块框图; 0036 图3为本发明中的矩阵乘法器阵列结构框图; 0037 图4为本发明蝶形运算单元与多路选择器连接示意图; 0038 图5为本发明实现一维44DCT/DST变换的结构图; 0039 图6为本发明实现一维88DCT变换的结构图; 0040 图7为本发明实现一维1616DCT变换的结构图; 0041 图8为本发明实现一维3232DCT变换的结构图; 0042 图9为本发明实现一维3232DCT变换每阶段各乘法器阵列数据输入顺序示意 图; 0043 图10为本发明寄存器阵列转置子模块结构示意图; 0044 图11为本发明RAM存取转置子模块结构示意图。 具体实施方式 0045 下面结合。

31、附图和实施例对本发明进行详细说明。 0046 参照图1,本发明提出的适于HEVC标准的变换编码器,由顶层控制单元3、一维 DCT/DST模块1和转置缓冲模块2构成。其中顶层控制单元3的输出分为两路,第一路与 一维DCT/DST模块1的复位端和使能端连接,第二路与转置缓冲模块2的复位端和使能端 连接;一维DCT/DST模块1的输入分为两路,第一路与外部的输入数据连接,第二路与转置 缓冲模块2的数据输出端连接;一维DCT/DST模块1的输出分为两路,第一路与转置缓冲模 块2的数据输入端连接,第二路与外部的输出端连接;转置缓冲模块2的数据输入端与一维 DCT/DST模块1的数据输出端连接,转置缓冲模。

32、块2的数据输出端与一维DCT/DST模块1的 数据输入端连接。其中: 0047 所述顶层控制单元3,包括复位使能模块31和数据流控制模块32,复位使能模块 31分别与一维DCT/DST模块1的使能、复位端和转置缓冲模块2的使能、复位端相连,为这 两个模块提供使能和复位信号;数据流控制模块32分别与一维DCT/DST模块1的数据控制 端和转置缓冲模块2的数据控制端相连。复位使能模块31和数据流控制模块32均由计数 器和逻辑电路构成,根据计数器的计数状态和当前进行的变换类型,由逻辑电路产生一维 说 明 书CN 102857756 A 5/8页 9 DCT/DST模块1的复位、使能、数据流控制信号和。

33、转置缓冲模块2的复位、使能、数据流控制 信号,控制一维DCT/DST模块1对变换编码器的输入数据进行一维行变换,并产生控制信号 控制转置缓冲模块2接收一维DCT/DST模块1的行变换结果,在所有行数据处理完成之后, 控制转置缓冲模块2将转置后的行变换结果输出至一维DCT/DST模块1进行一维列变换。 0048 所述的转置缓冲模块2,完成对一维DCT/DST模块1行变换结果的转置操作,它包 含寄存器阵列转置子模块9和RAM存取转置子模块10。其中:寄存器阵列转置子模块9的 结构如图10所示,RAM存取转置子模块10的结构如图11所示。 0049 参照图10,寄存器阵列转置子模块9,由16行16列。

34、寄存器阵列组成,该阵列分为 三个区域,分别是44转置区域91、88转置区域92和1616转置区域93。用以分别 完成4点、8点、16点转置操作;该44转置区域91由寄存器阵列最左上角的44个寄存 器组成,88转置区域92由寄存器阵列最左上角的88个寄存器组成,1616转置区域 93由全部寄存器阵列组成;这三个区域的输入数据均从该区域的左方输入,每个时钟周期 向右方寄存,当数据输入完成之后,寄存器的储存方向变为自下而上,每个时钟周期数据向 上方寄存,即可完成转置操作,并将转置后的数据从上方输出。 0050 参照图11,RAM存取转置子模块10,包含RAM单元101和输入输出地址控制单元 102,。

35、该RAM单元101由8个存储器构成,每一个存储器均与一维DCT/DST模块1相连;输 入输出地址控制单元102与每个存储器的地址端相连,控制每个存储器的输入输出地址, 实现对一维DCT/DST模块1的32点DCT行变换结果,并将该变换结果按行存入8个存储器 中,再按列读出,即完成3232个数据的转置操作。 0051 所述一维DCT/DST模块1,用于完成HEVC标准中的4点DCT、4点DST、8点DCT、16 点DCT以及32点DCT一维变换,其结构如图2所示。 0052 参照图2,一维DCT/DST模块1,包括四组蝶形运算单元4、一个类蝶形运算单元5、 三组多路选择器6、三个矩阵乘法器阵列7。

36、和八组相加移位器8,其中: 0053 三个矩阵乘法器阵列7,分别为第一乘法器阵列71、第二乘法器阵列72和第三乘 法器阵列73。每个矩阵乘法器阵列的输入数据分为两路:第一路为a、b、c和d四个数据, 第二路为a0、a1、a2、a3、b0、b1、b2、b3、c0、c1、c2、c3、d0、d1、d2和d3十六个数据,该结构 包含16个乘法器,用以完成将a与a0、a1、a2、a3分别相乘,b与b0、b1、b2、b3分别相乘, c与c0、c1、c2、c3分别相乘,d与d0、d1、d2、d3分别相乘的操作,并将得到的16个相乘结 果输出,如图3所示; 0054 三组多路选择器6,分别为第一多路选择器61。

37、、第二多路选择器62和第三多路选 择器63,它们的输出端分别与第一乘法器阵列71、第二乘法器阵列72、第三乘法器阵列73 的输入端相连。根据当前状态和变换类型,实现对第一乘法器阵列71、第二乘法器阵列72、 第三乘法器阵列73的输入数据进行选择的操作; 0055 四组蝶形运算单元4,分别为32输入蝶形41、16输入蝶形42、8输入蝶形43和4 输入蝶形44,每个蝶形运算单元均由加法器和减法器构成,以完成对输入数据的首尾相加 和首尾相减的操作。其中32输入蝶形41,将其相加结果送入16输入蝶形42,将其相减结 果中的O10、O11、O16、O17、O112、O113送入第一多路选择器61,O12。

38、、O13、O18、O19、O114、 O115送入第二多路选择器62,O14、O15、O110、O111送入第三多路选择器63;16输入蝶形 42将其相加结果送入8输入蝶形43,将其相减结果中的O24、O25、O26、O27送入第一多路选 说 明 书CN 102857756 A 6/8页 10 择器61和第二多路选择器62,O20、O21、O22、O23送入第三多路选择器63;8输入蝶形43 将其相加结果送入4输入蝶形44和类蝶形运算单元5,将其相减结果送入第二多路选择器 62;4输入蝶形44的相加和相减结果均送入第一多路选择器61,如图4所示。 0056 八组相加移位器8,分别为第一相加移位。

39、器81、第二相加移位器82、第三相加移位 器83、第四相加移位器84、第五相加移位器85、第六相加移位器86、第七相加移位器87和 第八相加移位器88;第一相加移位器81与第一乘法器阵列71相连,用于将第一乘法器阵 列71的运算结果分为四组,并将每组数据分别相加后的结果向右移位;第二相加移位器82 与第二乘法器阵列72相连,用于将第二乘法器阵列72的运算结果分为四组,并将每组数据 分别相加后的结果向右移位;第三相加移位器83与第三乘法器阵列73相连,用于将第三乘 法器阵列73的运算结果分为四组,并将每组数据分别相加后的结果向右移位;第四相加移 位器84与第一乘法器阵列71、第二乘法器阵列72和。

40、第三乘法器阵列73相连,用于将这些 乘法器阵列的运算结果分为八组,并将每组数据分别相加后的结果向右移位;第五相加移 位器85分别与第一相加移位器81和第二相加移位器82相连,用于将第一相加移位器81和 第二相加移位器82的运算结果相加;第六相加移位器86与第三相加移位器83相连,用于 将第三相加移位器83相邻两周期的运算结果相加;第七相加移位器87与第四相加移位器 84相连,用于将第四相加移位器83的相邻三周期的运算结果相加;第八相加移位器88与 第一乘法器阵列71相连,用于将第一乘法器阵列71的运算结果分为八组,并将每组数据分 别相加后的结果向右移位。各相加移位器将每组数据分别相加后的结果向。

41、右移位的位数, 是根据变换块的大小和行列变换确定,即进行32点DCT行变换时右移4位,列变换时右移 11位;进行16点DCT行变换时右移3位,列变换时右移10位;进行8点DCT行变换时右移 2位,列变换时右移9位;进行4点DCT和DST行变换时右移1位,列变换时右移8位。 0057 本发明中的一维DCT/DST模块1进行一维4点DCT、一维4点DST、一维8点DCT、 一维16点DCT和一维32点DCT变换过程如下: 0058 参照图5,一维DCT/DST模块1进行一维4点DCT和一维4点DST变换操作时,使 用该结构中的4输入蝶形44、类蝶形运算单元5、第一多路选择器61、第一乘法器阵列71。

42、和 第八相加移位器88。当待变换数据从外部输入后,进入4输入蝶形44和类蝶形运算单元 5,以完成4个数据间相加、相减、延迟操作。类蝶形运算单元5的运算结果与DCT的基向量 从第一乘法器阵列71的16点端口输入,4输入蝶形44的运算结果和DST的基向量通过第 一多路选择器61输入第一乘法器阵列71的4点输入端口。第一多路选择器61根据当前 的变换类型是4点DCT还是4点DST,选择相应的数据输入第一乘法器阵列71。其中,进 行4点DCT变换时使用M 0,0 M 3,0 ,M 2,1 ,M 3,1 6个乘法器,进行4点DST变换时使用M 0,1 M 1,1 , M 0,2 M 2,2 ,M 0,3。

43、 M 2,3 8个乘法器。乘法完成之后将得到的结果数据送入第八相加移位器88,完 成将数据间的相加移位操作,得到最后的变换结果。 0059 参照图6,一维DCT/DST模块1进行一维8点DCT变换操作时,使用该结构中的8 输入蝶形43、4输入蝶形44、第一多路选择器61、第二多路选择器62、第一乘法器阵列71、 第二乘法器阵列72、第二相加移位器82和第八相加移位器88。当待变换数据输入之后,进 入8输入蝶形43对输入数据进行首尾相加、相减操作,对其相加结果进行如上所述的4点 DCT变换,以求出其第0、2、4、6个变换结果;将8输入蝶形43的相减结果通过第二多路选择 器62送入第二乘法器阵列7。

44、2的4输入端口,将8点DCT的基矩阵送入第二乘法器阵列72 说 明 书CN 102857756 A 10 7/8页 11 的16输入端口,完成需要的16次乘法运算。将得到的乘积结果送入第二相加移位器82,完 成将乘法器M 0,0 M 3,0 ,M 0,1 M 3,1 ,M 0,2 M 3,2 和M 0,3 M 3,3 的4组结果分别相加移位的操作,得到 第1、3、5、7个变换结果。 0060 参照图7,一维DCT/DST模块1进行一维16点DCT变换操作时,使用该结构中的 16输入蝶形42、8输入蝶形43、4输入蝶形44、第一多路选择器61、第二多路选择器62、第 三多路选择器63、第一乘法器。

45、阵列71、第二乘法器阵列72、第三乘法器阵列73、第一相加移 位器81、第二相加移位器82、第三相加移位器83、第五相加移位器85、第六相加移位器86 和第八相加移位器88。当待变换数据输入之后,进入16输入蝶形42,完成16个数据间的 首尾相加、相减操作。对其相加结果进行如上所述的8点DCT变换,求出其第0、2、4、6、8、 10、12、14个变换结果;将其相减结果中的O24、O25、O26、O27送入第一多路选择器61和第 二多路选择器62,O20、O21、O22、O23送入第三多路选择器63。其完成16点DCT变换操作 需要进行如下2个时钟周期的操作: 0061 第一个时钟周期:对16输。

46、入蝶形42的相加结果进行如上所述的8点DCT变换,求 出其第0、2、4、6、8、10、12、14个变换结果,将相减结果O20、O21、O22、O23通过第三多路选 择器63送入第三乘法器阵列73的4输入端口,将16点DCT的基矩阵送入第三乘法器阵列 73的16输入端口,完成需要的16次乘法运算,并将输出结果送入第三相加移位器83,完成 将乘法器M 0,0 M 3,0 ,M 0,1 M 3,1 ,M 0,2 M 3,2 和M 0,3 M 3,3 的4组结果分别相加移位的操作,得到4 个中间结果,送入第六相加移位器86。 0062 第二个时钟周期:将相减结果O24、O25、O26、O27通过第一多。

47、路选择器61和第二 多路选择器62送入第一乘法器阵列71和第二乘法器阵列72的4输入端口,其对应的16 点DCT的基矩阵分别送入第一乘法器阵列71和第二乘法器阵列72的16输入端口,完成需 要的32次乘法,并将输出的结果送入第五相加移位器85,完成将第一乘法器阵列71与第 二乘法器阵列72的M 0,0 M 3,0 ,M 0,1 M 3,1 ,M 0,2 M 3,2 和M 0,3 M 3,3 4组结果分别相加移位的操作,得 到第1、3、5、7个变换结果。将相减结果O20、O21、O22、O23通过第三多路选择器63送入第 三乘法器阵列73的4输入端口,其16点DCT的基矩阵送入第三乘法器阵列73。

48、的16输入 端口,完成需要的16次乘法运算,并将输出结果送入第三相加移位器83,完成将乘法器M 0, 0 M 3,0 ,M 0,1 M 3,1 ,M 0,2 M 3,2 和M 0,3 M 3,3 的4组结果分别相加移位的操作,得到4个中间结果, 送入第六相加移位器86。使用第六相加移位器86将第三相加移位器83相邻两周期的运算 结果相加,并向右移位,得到第9、11、13、15个变换结果。 0063 参照图8,一维DCT/DST模块1进行一维32点DCT变换操作时,使用该结构中的 32输入蝶形41、16输入蝶形42、8输入蝶形43、4输入蝶形44、第一多路选择器61、第二多 路选择器62、第三多。

49、路选择器63、第一乘法器阵列71、第二乘法器阵列72、第三乘法器阵列 73、第一相加移位器81、第二相加移位器82、第三相加移位器83、第四相加移位器84、第五 相加移位器85、第六相加移位器86、第七相加移位器87和第八相加移位器88。当待变换数 据输入之后,进入32输入蝶形41,完成32个数据间的首尾相加、相减操作。对其相加结果 进行如上所述的16点DCT变换,求出其第0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、 30个变换结果,将其相减结果中的O10、O11、O16、O17、O112、O113送入第一多路选择器61, O12、O13、O18、O19、O114、O115送入第二多路选择器62,O14、O15、O110、O111送入第三多 路选择器63。其完成32点DCT变换操作需要8个时钟周期,可以分为2个阶段,第一阶段 说 明 书C。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1