CN102045569B - 用于视频编码器的整数变换装置及其实现方法 - Google Patents

用于视频编码器的整数变换装置及其实现方法 Download PDF

Info

Publication number
CN102045569B
CN102045569B CN 201010619784 CN201010619784A CN102045569B CN 102045569 B CN102045569 B CN 102045569B CN 201010619784 CN201010619784 CN 201010619784 CN 201010619784 A CN201010619784 A CN 201010619784A CN 102045569 B CN102045569 B CN 102045569B
Authority
CN
China
Prior art keywords
operator
transform
functional block
integer
input
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.)
Expired - Fee Related
Application number
CN 201010619784
Other languages
English (en)
Other versions
CN102045569A (zh
Inventor
王腾
王新安
胡子一
张兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University Shenzhen Graduate School
Original Assignee
Peking University Shenzhen Graduate School
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University Shenzhen Graduate School filed Critical Peking University Shenzhen Graduate School
Priority to CN 201010619784 priority Critical patent/CN102045569B/zh
Publication of CN102045569A publication Critical patent/CN102045569A/zh
Application granted granted Critical
Publication of CN102045569B publication Critical patent/CN102045569B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种用于视频编码器的整数变换装置,包括用于单步整数变换和整数反变换的变换功能块、用于单步量化和反量化的量化反量化功能块、用于存储的存储转置功能块、用于选择输入的多选功能块、用于选择输出的分发功能块、以及控制功能块。本发明有利于预测的匹配性和解码图像的准确性,还可提高硬件设计的效率。

Description

用于视频编码器的整数变换装置及其实现方法
技术领域
本发明涉及集成电路领域,特别涉及一种用于视频编码器的整数变换装置及其实现方法。
背景技术
随着集成电路制造工艺进入45nm以下阶段,集成电路设计发展落后于集成电路工艺进步的剪刀差继续增大。数据流算法,尤其是数字媒体类的ASIC(Application Specific Integrated Circuit,专用集成电路)设计,面临设计周期长、灵活性差、扩展性差等问题,难以满足产品快速上市、功能不断提升的需求。
目前集成电路产业需求方面,设计速度成为集成电路设计方法学的重要考虑因素。当集成电路制造商或集成系统供应商将商业运作的基本问题(如产品数量、设计/测试费用、不可再用的工程开支(NonRecurring Engineering,NRE)、用户IP的整合/复用、可靠性和可维护性、生产过程复杂性等)综合考虑在内时,加速产品推出时间、提高产品性能、降低产品制造风险便成为选择设计技术时的重要考虑因素。
集成电路的设计,从全定制的晶体管设计开始,发展到1984年前后以1.0μm工艺节点为代表的门阵列设计,再到1994年前后以0.5μm工艺节点为代表的标准单元设计,以及1999年前后以0.25μm工艺节点为代表的基于IP的设计和2004年0.13um工艺节点为代表的时间驱动,而目前广泛应用的标准单元设计其单元粒度一般为1bit逻辑门级,而最大粒度也只是触发器和全加器,利用逻辑综合工具,可以将RTL(寄存器传输)级设计快速转化为门级设计,这样严重制约了设计的规模和设计速度。
而针对数字类专用集成电路设计,从计算机高级语言向下层硬件映射速度和效率是目前集成电路设计方法学研究的热点。
目前高级语言向下层硬件映射的速度所需时间较长,是传统集成电路设计速度的瓶颈所在。而集成电路算子是一种粒度高于标准单元的数字集成电路组成部件。其算子粒度不仅可以支持加减乘除等运算,更可以完成诸如FFT的某一个蝶形运算,或|a-b|,复数运算,cordic运算等操作。集成电路算子包括五类算子:控制类算子、运算类算子、存储类算子、路径类算子和时钟类算子。因此,针对数字类ASIC设计,利用集成电路算子会提升从高级语言向下层硬件映射的速度。
H.264是国际电联(ITU-T)和国际标准化组织(ISO)共同组建的联合视频组(JVT)共同制定的数字视频编码标准。因此,H.264即是国际电联(ITU-T)的H.264,也是国际标准化组织(ISO)和国际电工委(IEC)的MPEG-4标准的第10部分的内容。
H.264编码器的编码过程的主要子算法有:帧间预测、帧内预测、变换和量化、去块效应滤波和熵编码。
H.264中对图像或预测残差采用了4×4整数离散余弦变换技术,避免了以往标准中使用的通用8×8离散余弦变换和反变换过程中经常出现的失配问题。量化过程根据图像的动态范围大小确定量化参数,既保留图像必要的细节,又减少码流。在H.264中,将变换编码和量化两个过程中的乘法合二为一,并进一步采用整数运算,减少编解码的运算量,提高图像压缩的实时性。
发明内容
本发明提供了一种用于视频编码器的整数变换装置及其实现方法,可提高硬件设计的效率。
为解决上述技术问题,本发明采用了如下的技术方案:
一方面,本发明公开了一种用于视频编码器的整数变换装置的实现方法,包括:
将高级程序语言算法描述的视频编码器的整数变换装置的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成整数变换装置的硬件集成电路。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,将高级程序语言算法描述的视频编码器的整数变换装置的各个功能块映射成由算子单元构成的硬件逻辑描述包括如下步骤:
程序分析步骤:读取整数变换装置的各个功能块的高级程序语言算法程序,根据该高级程序语言规则从所述高级程序语言算法程序中识别出被映射的执行对象和参数对象;
数据控制流图生成步骤:将识别出的执行对象和参数对象映射成描述整数变换装置算法的数据控制流图中相应节点;
算子结构图生成步骤:根据数据控制流图中的各个节点的功能处理,从所述算子单元库中取出对应功能的至少一个算子单元,将所述数据控制流图转换成由算子单元组成的算子时空图;
时序约束步骤:根据用户规格需求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩步骤:根据时间标注对算子时空图进行空间上的聚类压缩,并使总体算法执行时间最接近于总时序约束;
下层硬件映射步骤:将聚类压缩后的算子时空图映射成由算子单元构成的硬件逻辑描述。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,所述算子单元库中的算子单元包括运算类算子、存储类算子、控制类算子、路径类算子和时钟类算子中至少一种。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,所述运算类算子为可重构算子,一个运算类算子配置控制位以及多种运算,所述控制位用于择一选择一种运算;
所述路径类算子用于链接存储类算子与运算类算子,形成数据流结构,其实现形式包括多选器、交叉开关和总线;
所述控制类算子用于推动数据流的流动,其实现形式包括计数器、状态机和微指令字,控制输出内容包括:运算类算子动态重构信息、存储类算子的配置信息、路径类算子的配置信息;
所述存储类算子用于对不同的数据存储格式和计算格式进行转换。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,所述执行对象包括运算指令和/或控制指令,所述参数对象包括输入数据、输出数据和中间数据中的至少一种,将所述运算指令映射为运算类算子,将所述控制指令映射为控制类算子,所述参数对象映射为存储类算子。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,所述功能块包括:用于单步整数变换和整数反变换的变换功能块、用于量化和反量化的量化反量化功能块、用于存储的存储转置功能块、用于选择输入的多选功能块、用于选择输出的分发功能块、以及控制功能块。
另一方面,本发明还公开了一种用于视频编码器的整数变换装置,包括:用于单步整数变换和整数反变换的变换功能块、用于单步量化和反量化的量化反量化功能块、用于存储的存储转置功能块、用于选择输入的多选功能块、用于选择输出的分发功能块、以及控制功能块;
其中,多选功能块从其输入参数中选择一个参数输出至变换功能块,变换功能块进行单步整数变化和整数反变换后,输出至分发功能块,分发功能换选择将其输出参数输出至存储转置功能块,或输出至多选功能块,存储转置功能块输出至量化反量化功能块;
所述功能块由算子构成。
上述用于视频编码器的整数变换装置的一个实施例中,所述变换功能块包括移位算子、多选算子、压缩算子、以及加法算子,其中,移位算子用于将输入的数据左移或右移一位后输出至多选算子,所述多选算子用于从输入的数据中选择一数据输出至压缩算子,所述压缩算子用于将输入的数据压缩,减少个数后输出至加法算子,所述加法算子用于将压缩算子输入的数据相加后输出;
通过控制器的控制选择变换功能块输入端输入的参数,实时重构实现单步的整数变换和整数反变换。
上述用于视频编码器的整数变换装置的一个实施例中,所述量化反量化功能块包括绝对值算子、多选算子、乘法算子、加法器/移位算子,其中,绝对值算子用于对输入的数据取绝对值后输出至多选算子,所述多选算子用于从输入的数据中选择一个数据输出,所述乘法算子用于将输入的数据相乘后输出至加法/移位算子,所述加法/移位算子用于将输入的数据相加或移位后输出;
通过控制器的控制选择不同的量化反量化功能块的输入参数,完成不同像素点的量化和反量化操作。
上述用于视频编码器的整数变换装置的一个实施例中,所述控制功能块控制变换功能块进行两次单步变换完成整数反变换和变换功能,所述控制功能块控制量化反量化功能块进行两次单步量化和反量化完成整数量化反量化功能。
和现有技术相比,本发明的有益效果在于:
本发明公开了一种用于视频编码器的整数变换装置,包括用于单步整数变换和整数反变换的变换功能块、用于单步量化和反量化的量化反量化功能块、用于存储的存储转置功能块、用于选择输入的多选功能块、用于选择输出的分发功能块、以及控制功能块。本发明通过反量化和反变换对残差矩阵实施重建,有利于预测的匹配性和解码图像的准确性;此外,本发明还将整数反变换和量化反量化分为两次单步变换进行,提高了硬件设计的效率,同时还实现了硬件面积和电路设计时间的平衡。
附图说明
图1示例性地描述了本发明的变换功能块和量化反量化功能块流水图;
图2示例性地描述了本发明的视频编码器的整数变换装置结构图;
图3示例性地描述了本发明的变换功能块算子结构图;
图4示例性地描述了本发明的量化反量化功能块算子结构图。
具体实施方式
下面对照附图并结合具体实施方式对本发明进行进一步详细说明。
如图2所示,本发明公开了一种用于视频编码器的整数变换装置的实现方法,包括:将高级程序语言算法描述的视频编码器的整数变换装置的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成整数变换装置的硬件集成电路。
采用上述方法生成的视频编码器的整数变换装置,包括:用于单步整数变换和整数反变换的变换功能块、用于单步量化和反量化的量化反量化功能块、用于存储的存储转置功能块、用于选择输入的多选功能块、用于选择输出的分发功能块、以及控制功能块。
本发明中的变换是广义上的变换,包括变换反变换,量化反量化。
首先分析一下视频编码器的整数变换的计算机程序语言。
4×4整数离散余弦变换如下所示:
Y = C f XC f T = 1 1 1 1 2 1 - 1 - 2 1 - 1 - 1 1 1 - 2 2 - 1 [ X ] 1 2 1 1 1 1 - 1 - 2 1 - 1 - 1 2 1 - 2 1 - 1
式中X表示4×4图像残差矩阵,Y表示4×4变换系数矩阵,Cf表示4×4整数变换矩阵,
Figure BDA0000042570650000062
表示4×4整数变换矩阵的转置矩阵。
H.264中量化器的具体运算过程如下式:
|Zi,j|=(|Yi,j|·MFi,j+f)>>qbits
sign(Zi,j)=sign(Yi,j)
其中,Yi,j表示变换后的系数;MFi,j值是和量化参数QP及样点位置有关的参数;qbits=15+floor(QP/6);“>>”为右移运算,右移一次完成整数除以2;sign()为符号函数;f为偏移量,对帧内预测图像块取2qbits/3,对帧间预测图像块取2qbits/6。
编码过程中为了得到预测过程中使用的参考帧和参考像素,需要对变换和量化后的数据进行反量化和反变换以重建图像。
反量化的基本操作如下式所示:
Y′i,j=Zi,jVi,j2floor(QP/6)
其中Zi,j表示量化后的样点系数;Vi,j是和量化参数QP及样点位置有关的参数。
4×4整数离散余弦反变换如下式所示:
X ′ = C i Y ′ C i T = 1 1 1 1 / 2 1 1 / 2 - 1 - 1 1 - 1 / 2 - 1 1 1 - 1 1 - 1 / 2 [ Y ′ ] 1 1 1 1 1 1 / 2 - 1 / 2 - 1 1 - 1 - 1 1 1 / 2 - 1 1 - 1 / 2
其中,Y′表示反量化后的4×4变换系数矩阵,X′表示4×4残差样值矩阵,Ci表示4×4整数变换矩阵,
Figure BDA0000042570650000072
表示4×4整数变换矩阵的转置矩阵。
通过反量化和反变换对残差矩阵实施重建,获得重建帧图像作为之后图像帧间预测的参考帧,有利于预测的匹配性和解码图像的准确性。
4×4整数离散余弦变换如下式所示:
Y = C f XC f T = 1 1 1 1 2 1 - 1 - 2 1 - 1 - 1 1 1 - 2 2 - 1 [ X ] 1 2 1 1 1 1 - 1 - 2 1 - 1 - 1 2 1 - 2 1 - 1
这一过程可以分为两步进行,W=CfX,
Figure BDA0000042570650000082
首先进行行变换W=CfX,则
W = C f X = 1 1 1 1 2 1 - 1 - 2 1 - 1 - 1 1 1 - 2 2 - 1 [ X ] 展开并提取可以得到,
(W0,W4,W8,W12)=f1(X0,X4,X8,X12)
(W1,W5,W9,W13)=f1(X1,X5,X9,X13)
(W2,W6,W10,W14)=f1(X2,X6,X10,X14)
(W3,W7,W11,W15)=f1(X3,X7,X11,X15)
其中函数(y0,y1,y2,y3)=f1(x0,x1,x2,x3)表示:
y0=x0+x1+x2+x3
y1=2x0+x1-x2-2x3
y2=x0-x1-x2+x3
y3=x0-2x1+2x2-x3
对于列变换 Y = WC f T ,
Y = WC f T = [ W ] 1 2 1 1 1 1 - 1 - 2 1 - 1 - 1 2 1 - 2 1 - 1
同样可以得到:
(Y0,Y1,Y2,Y3)=f1(W0,W1,W2,W3)
(Y4,Y5,Y6,Y7)=f1(W4,W5,W6,W7)
(Y8,Y9,Y10,Y11)=f1(W8,W9,W10,W11)
(Y12,Y13,Y14,Y15)=f1(W12,W13,W14,W15)
对于4×4整数离散余弦反变换:
X ′ = C i Y ′ C i T = 1 1 1 1 / 2 1 1 / 2 - 1 - 1 1 - 1 / 2 - 1 1 1 - 1 1 - 1 / 2 [ X ] 1 1 1 1 1 1 / 2 - 1 / 2 - 1 1 - 1 - 1 1 1 / 2 - 1 1 - 1 / 2 同样可以得到函数(y0,y1,y2,y3)=f2(x0,x1,x2,x3),
y0=x0+x1+x2+x3/2
y1=x0+x1/2-x2-x3
y2=x0-x1/2-x2+x3
y3=x0-x1+x2-x3/2
使得Z=CiY,满足:
(Z0,Z4,Z8,Z12)=f2(Y′0,Y′4,Y′8,Y′12)
(Z1,Z5,Z9,Z13)=f2(Y′1,Y′5,Y′9,Y′13)
(Z2,Z6,Z10,Z14)=f2(Y′2,Y′6,Y′10,Y′14)
(Z3,Z7,Z11,Z15)=f2(Y′3,Y′7,Y′11,Y′15)
(X′0,X′1,X′2,X′3)=f2(Z0,Z1,Z2,Z3)
(X′4,X′5,X′6,X′7)=f2(Z4,Z5,Z6,Z7)
(X′8,X′9,X′10,X′11)=f2(Z8,Z9,Z10,Z11)
(X′12,X′13,X′14,X′15)=f2(Z12,Z13,Z14,Z15)
考虑函数(y0,y1,y2,y3)=f1(x0,x1,x2,x3)和(y0,y1,y2,y3)=f2(x0,x1,x2,x3)的特点,它们进行的操作是相同的,不同点在于输入x0,x1,x2,x3的系数不同,可以通过选择对输入进行左移或者右移实现。这样就可以用同一套硬件资源,通过实时重构实现函数(y0,y1,y2,y3)=f1(x0,x1,x2,x3)和(y0,y1,y2,y3)=f1(x0,x1,x2,x3),也即实现整数正变换和整数反变换的单步变换。
为了实现视频编码器的整数变换装置,本发明公开了一个实施例的用于视频编码器的整数变换装置的实现方法,包括:
将高级程序语言算法描述的视频编码器的整数变换装置的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成整数变换装置的硬件集成电路。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,将高级程序语言算法描述的视频编码器的整数变换装置的各个功能块映射成由算子单元构成的硬件逻辑描述包括如下步骤:
程序分析步骤:读取整数变换装置的各个功能块的高级程序语言算法程序,根据该高级程序语言规则从所述高级程序语言算法程序中识别出被映射的执行对象和参数对象;
数据控制流图生成步骤:将识别出的执行对象和参数对象映射成描述整数变换装置算法的数据控制流图中相应节点;
算子结构图生成步骤:根据数据控制流图中的各个节点的功能处理,从所述算子单元库中取出对应功能的至少一个算子单元,将所述数据控制流图转换成由算子单元组成的算子时空图;
时序约束步骤:根据用户规格需求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩步骤:根据时间标注对算子时空图进行空间上的聚类压缩,并使总体算法执行时间最接近于总时序约束;
下层硬件映射步骤:将聚类压缩后的算子时空图映射成由算子单元构成的硬件逻辑描述。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,所述算子单元库中的算子单元包括运算类算子、存储类算子、控制类算子、路径类算子和时钟类算子中至少一种。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,所述运算类算子为可重构算子,一个运算类算子配置控制位以及多种运算,所述控制位用于择一选择一种运算;
所述路径类算子用于链接存储类算子与运算类算子,形成数据流结构,其实现形式包括多选器、交叉开关和总线;
所述控制类算子用于推动数据流的流动,其实现形式包括计数器、状态机和微指令字,控制输出内容包括:运算类算子动态重构信息、存储类算子的配置信息、路径类算子的配置信息;
所述存储类算子用于对不同的数据存储格式和计算格式进行转换。
上述用于视频编码器的整数变换装置的实现方法的一个实施例中,所述执行对象包括运算指令和/或控制指令,所述参数对象包括输入数据、输出数据和中间数据中的至少一种,将所述运算指令映射为运算类算子,将所述控制指令映射为控制类算子,所述参数对象映射为存储类算子。
如图2所示,按照上述方法生成的视频编码器的整数变换装置,包括:用于单步整数变换和整数反变换的变换功能块、用于单步量化和反量化的量化反量化功能块、用于存储的存储转置功能块、用于选择输入的多选功能块、用于选择输出的分发功能块、以及控制功能块。其中,多选功能块从其输入参数中选择一个参数输出至变换功能块,变换功能块进行单步整数变化和整数反变换后,输出至分发功能块,分发功能换选择将其输出参数输出至存储转置功能块,或输出至多选功能块,存储转置功能块输出至量化反量化功能块。
上述各功能块由算子构成。
如图3所示,所述变换功能块包括移位算子、多选算子、压缩算子、以及加法算子,其中,移位算子用于将输入的数据左移或右移一位后输出至多选算子,所述多选算子用于从输入的数据中选择一数据输出至压缩算子,所述压缩算子用于将输入的数据压缩,减少个数后输出至加法算子,所述加法算子用于将压缩算子输入的数据相加后输出。
压缩器Compressor将4个输入数据压缩为2个数据后输出,多选器MUX用于从输入的数据中选择一个数据输出,移位器包括左移一位算子和右移一位算子,图3中,左移一位算子表示×2,用于将输入的数据左移一位后输出,实际是将输入的数据乘以2后输出,右移一位算子图3中表示为/2,用于将输入的数据右移一位后输出,实际是将数据的数据除以2后输出。
通过控制器的控制选择变换功能块输入端输入的参数,实时重构实现单步的整数变换和整数反变换。
如图4所示,量化反量化功能块包括绝对值算子、多选算子、乘法算子、加法器/移位算子,其中,绝对值算子用于对输入的数据取绝对值后输出至多选算子,所述多选算子用于从输入的数据中选择一个数据输出,所述乘法算子用于将输入的数据相乘后输出至加法/移位算子,所述加法/移位算子用于将输入的数据相加或移位后输出。
通过控制器的控制选择不同量化反量化功能块的输入参数,不同像素点通过绝对值算子ABS、多选算子MUX、乘法算子MULT、以及加法或移位算子ADD/SHF,完成量化和反量化操作。用四级流水的形式连续地处理16×16宏块内的256个像素点的残差变换系数的量化和反量化。
存储转置功能块包括存储算子,用于存储中间数据及结果。
具体说,存储算子为双输入端口双输出端口的4×4×3寄存器阵列,它的三个寄存器阵列可以分别按行或者按列存入或读出,实现对变换算子单步变换的结果的转置和对反量化后结果的缓存。这三个寄存器阵列分别存储第n-1个4×4块残差系数反量化后的结果和整数反变换的中间结果,第n个4×4块残差系数整数正变换的中间结果和最终结果,第n个4×4块残差系数反量化后结果。
多选功能块在控制功能块的控制选择下选择变换算子的输入。
分发功能块通过控制功能块的控制选择将变换算子的输出存入存储转置功能块或者输出。
本发明一个实施例的视频编码器的整数变换装置中,控制功能块控制变换功能块进行两次单步变换完成整数反变换和变换功能,所述控制功能块控制量化反量化功能块进行两次单步量化和反量化完成整数量化反量化功能。
本发明一个实施例的视频编码器的整数变换装置中,完成整数正变换需要分两步进行,第一步用4个周期完成16个样值点的行变换,第二步用4个周期完成16个样值点的列变换,共需8个周期完成16个样值点的4×4整数变换,记为
Figure BDA0000042570650000131
同理,完成16个样值点的4×4整数反变换也需要8个周期,记为
Figure BDA0000042570650000132
而对于样值点的量化|Zi,j|=(|Yi,j|·MF+f)>>qbits和反量化Y′i,j=Zi,jVi,j2floor(QP/6)过程,采用4级流水结构的硬件结构,完成16个样值点的量化反量化过程需要19个周期。考虑到同一个4×4块残差系数的变换、量化反量化、反变换之间的顺序执行要求,完成一个4×4块残差系数的整数变换、量化反量化、整数反变换共需8+16+8=32cycle,完成一个16×16宏块残差系数的整数变换、量化反量化、整数反变换共需32×16=512cycle。这种情况下,变换算子和量化算子交替进行运算,硬件有效利用率只有50%。
如果实现16×16宏块内部变换、量化反量化、反变换之间的全流水,在任意时刻所有的硬件都在运转,最大化硬件的利用效率,完成16个样值点的量化反量化过程平均需要
Figure BDA0000042570650000133
同时考虑到同一个4×4块残差系数的变换、量化反量化、反变换之间的顺序执行要求,利用
t IDCT n - 1 + t DCT n + 1 = t Q - IQ n
我们采用第n个4×4块残差系数的量化过程和第n-1个4×4块残差系数的整数反变换过程(IDCTn-1)、第n+1个4×4块残差系数的整数正变换过程(DCTn+1)并行执行的流水线设计,如图1所示。这样完成一个16×16宏块残差系数的整数变换、量化反量化、整数反变换共需8+16×16+8=272cycle(这里第1个4×4块整数变换完成后需要等待8个周期开始第2个4×4块的整数变换,第15个4×4块的整数反变换完成后要等待8个周期开始第16个4×4块的整数反变换)。这样,优化后的流水设计和全部顺序执行共节省运算周期约46.9%,硬件利用率提高至近100%。
具体的说,本发明一个实施例的视频编码器的整数变换装置实现反变换变换功能和整数量化反量化功能的,包括以下步骤:
步骤101,Tn时刻,通过控制功能块控制变换功能块输入端的多选功能块配置输入端的系数,重构变换算子以实现函数功能(y0,y1,y2,y3)=f1(x0,x1,x2,x3);同时,控制数据输入端将第n个4×4块残差系数的数据分4个周期通过多选功能块送入变换算子进行第一步整数正变换,送入的顺序依次为(X0,X4,X8,X12)n、(X1,X5,X9,X13)n、(X2,X6,X10,X14)n、(X3,X7,X11,X15)n;变换功能块输出第一步整数正变换的结果通过分发功能块依次存入存储转置功能块中4×4个寄存器中,记为MEM1,存入的顺序依次为(W0,W4,W8,W12)n、(W1,W5,W9,W13)n、(W2,W6,W10,W14)n、(W3,W7,W11,W15)n。这一步实现如下功能:
(W0,W1,W8,W12)n=f1(X0,X4,X8,X12)n
(W1,W5,W9,W13)n=f1(X1,X5,X9,X13)n
(W2,W6,W10,W14)n=f1(X2,X6,X10,X14)n
(W3,W7,W11,W15)n=f1(X3,X7,X11,X15)n
其中函数(y0,y1,y2,y3)=f1(x0,x1,x2,x3)表示:
y0=x0+x1+x2+x3
y1=2x0+x1-x2-2x3
y2=x0-x1-x2+x3
y3=x0-2x1+2x2-x3
步骤102、Tn+4时刻,通过控制功能块将步骤101得到的单步整数正变换的结果分4个周期转置输出,通过多选功能块送入变换功能块进行第二步整数正变换,送入的顺序依次为(W0,W1,W2,W3)n、(W4,W5,W6,W7)n、(W8,W9,W10,W11)n、(W12,W13,W14,W15)n;变换功能块输出第二步整数正变换的结果通过分发功能块依次存入存储转置功能块的MEM1中,覆盖相应位置第一步整数正变换的结果,存入的顺序依次为(Y0,Y1,Y2,Y3)n、(Y4,Y5,Y6,Y7)n、(Y8,Y9,Y10,Y11)n、(Y12,Y13,Y14,Y15)n。这一步实现如下功能:
(Y0,Y1,Y2,Y3)n=f1(W0,W1,W2,W3)n
(Y4,Y5,Y6,Y7)n=f1(W4,W5,W6,W7)n
(Y8,Y9,Y10,Y11)n=f1(W8,W9,W10,W11)n
(Y12,Y13,Y14,Y15)n=f1(W12,W13,W14,W15)n
步骤103,在步骤102整数正变换结果开始存入存储转置功能块,图2中Tn+5时刻,通过控制功能块将整数正变换的结果从存储转置功能块输出以流水的形式依次送入量化反量化功能块进行量化和反量化处理,输入量化反量化功能块的顺序依次为(Y0,Y1,Y2,……,Y14,Y15)n;同时根据不同样值点的位置不同,给量化反量化功能块送入不同的参数如MF值、V值和f值;将量化反量化功能块输出的中间结果即量化后的变换系数输出,而将反量化后的变换系数(Y′0,Y′1,Y′2,Y′3,Y′4,Y′5,Y′6,Y′7,Y′8,Y′9,Y′10,Y′11,Y′12,Y′13,Y′14,Y′15)n依次存入存储转置功能块中新的4×4个寄存器中,记为MEM2。这一步实现如下功能:
|Zi,j|=(|Yi,j|·MF+f)>>qbits
Y′i,j=Zi,jVi,j2floor(QP/6)
其中,i=0,1,2,3;j=0,1,2,3。
步骤104,在步骤103进行的同时,步骤102完成后,图2中Tn+8时刻,通过控制功能块控制变换算子内输入端的多选功能块配置输入端的系数,重构变换算子以实现函数功能(y0,y1,y2,y3)=f2(x0,x1,x2,x3);同时,控制存储转置功能块将存储在其中另外4×4个寄存器(记为MEM3)中的第n-1个4×4块反量化后的变换系数分4个周期转置输出,通过多选功能块送入变换功能块进行第一步整数反变换,送入的顺序依次为(Y′0,Y′4,Y′8,Y′12)n-1、(Y′1,Y′5,Y′9,Y′13)n-1、(Y′2,Y′6,Y′10,Y′14)n-1、(Y′3,Y′7,Y′11,Y′15)n-1;变换功能块输出第一步整数反变换的结果通过分发功能块依次存入存储转置功能块的MEM3中,覆盖相应位置反量化后的变换系数,存入的顺序依次为(Z0,Z4,Z8,Z12)n-1、(Z1,Z5,Z9,Z13)n-1、(Z2,Z6,Z10,Z14)n-1、(Z3,Z7,Z11,Z15)n-1。这一步实现如下功能:
(Z0,Z4,Z8,Z12)n-1=f2(Y′0,Y′4,Y′8,Y′12)n-1
(Z1,Z5,Z9,Z13)n-1=f2(Y′1,Y′5,Y′9,Y′13)n-1
(Z2,Z6,Z10,Z14)n-1=f2(Y′2,Y′6,Y′10,Y′14)n-1
(Z3,Z7,Z11,Z15)n-1=f2(Y′3,Y′7,Y′11,Y′15)n-1
其中函数(y0,y1,y2,y3)=f2(x0,x1,x2,x3)表示:
y0=x0+x1+x2+x3/2
y1=x0+x1/2-x2-x3
y2=x0-x1/2-x2+x3
y3=x0-x1+x2-x3/2
步骤105、通过控制功能块将步骤104得到的单步整数反变换的结果进行存储转置后分4个周期通过多选功能块送入变换算子进行第二步整数反变换,送入的顺序依次为(Z0,Z1,Z2,Z3)n-1、(Z4,Z5,Z6,Z7)n-1、(Z8,Z9,Z10,Z11)n-1、(Z12,Z13,Z14,Z15)n-1;变换功能块输出第二步整数反变换的结果通过分发功能块输出,输出的顺序依次为(X′0,X′1,X′2,X′3)n-1、(X′4,X′5,X′6,X′7)n-1、(X′8,X′9,X′10,X′11)n-1、(X′12,X′13,X′14,X′15)n-1。这一步实现如下功能:
(X′0,X′1,X′2,X′3)n-1=f2(Z0,Z1,Z2,Z3)n-1
(X′4,X′5,X′6,X′7)n-1=f2(Z4,Z5,Z6,Z7)n-1
(X′8,X′9,X′10,X′11)n-1=f2(Z8,Z9,Z10,Z11)n-1
(X′12,X′13,X′14,X′15)n-1=f2(Z12,Z13,Z14,Z15)n-1
当n=1时,步骤104和步骤105略去,在此处变换功能块停止8个周期后转向步骤106。
步骤106、在步骤105完成后,图2中Tn+16时刻,重复步骤101和步骤102,完成第n+1个4×4块残差系数的整数正变换,其中间结果和最终结果存放在MEM3中。
当n=16时,步骤106应该省去,在此处变换功能块停止8个周期,然后转向步骤108。
步骤107、在Tn+21时刻,步骤103中第n个4×4块残差系数的整数正变换结果全部送入量化反量化功能块进行运算,随后重复步骤103将MEM3中第n+1个4×4块残差系数的整数正变换结果送入量化反量化功能块进行运算,运算结果放入MEM1中。这样就实现了连续两个4×4块残差系数量化反量化流水线的无缝衔接。
步骤108、在步骤106完成后,图2中Tn+24时刻,步骤103也全部完成,即第n个4×4块残差系数的反量化后的变换系数全部准备完毕,存储在MEM2中,此时可以重复步骤104和步骤105进行第n个4×4块残差系数的整数反变换,其单步整数变换的中间结果仍然存放在MEM2中,其最终变换结果输出。
以上步骤101到步骤108完整地描述了第n个4×4块残差系数的整数正变换、量化、反量化、整数反变换的处理过程。之后反复重复步骤101至步骤105即可完成一个16×16宏块内16个4×4块残差系数的整数正变换、量化、反量化、整数反变换的全过程。
本发明公开了一种视频编码器的整数变换装置,包括用于单步整数变换和整数反变换的变换功能块、用于单步量化和反量化的量化反量化功能块、用于存储的存储转置功能块、用于选择输入的多选功能块、用于选择输出的分发功能块、以及控制功能块。本发明通过反量化和反变换对残差矩阵实施重建,有利于预测的匹配性和解码图像的准确性;此外,本发明还将整数反变换和量化反量化分为两次单步变换进行,提高了硬件设计的效率,同时还实现了硬件面积和电路设计时间的平衡。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (5)

1.一种用于视频编码器的整数变换装置,其特征在于,完成整数正变换分两步进行,第一步用4个周期完成16个样值点的行变换,第二步用4个周期完成16个样值点的列变换,共需8个周期完成16个样值点的4×4整数变换,具体采用第n个4×4块残差系数的量化过程和第n-1个4×4块残差系数的整数反变换过程、第n+1个4×4块残差系数的整数正变换过程并行执行的流水线设计,所述用于视频编码器的整数变换装置包括:用于单步整数变换和整数反变换的变换功能块、用于单步量化和反量化的量化反量化功能块、用于存储的存储转置功能块、用于选择输入的多选功能块、用于选择输出的分发功能块、以及控制功能块,其中,所述功能块由算子构成;
其中,多选功能块从其输入参数中选择一个参数输出至变换功能块,变换功能块进行单步整数变化和整数反变换后,输出至分发功能块,分发功能换选择将其输出参数输出至存储转置功能块,或输出至多选功能块,存储转置功能块输出至量化反量化功能块。
2.如权利要求1所述的用于视频编码器的整数变换装置,其特征在于,所述变换功能块包括移位算子、多选算子、压缩算子、以及加法算子,其中,移位算子用于将输入的数据左移或右移一位后输出至多选算子,所述多选算子用于从输入的数据中选择一数据输出至压缩算子,所述压缩算子用于将输入的数据压缩,减少个数后输出至加法算子,所述加法算子用于将压缩算子输入的数据相加后输出;
通过控制器的控制选择变换功能块输入端输入的参数,实时重构实现单步的整数变换和整数反变换。
3.如权利要求2所述的用于视频编码器的整数变换装置,其特征在于,所述量化反量化功能块包括绝对值算子、多选算子、乘法算子、加法器/移位算子,其中,绝对值算子用于对输入的数据取绝对值后输出至多选算子,所述多选算子用于从输入的数据中选择一个数据输出,所述乘法算子用于将输入的数据相乘后输出至加法/移位算子,所述加法/移位算子用于将输入的数据相加或移位后输出;
通过控制器的控制选择不同的量化反量化功能块的输入参数,完成不同像素点的量化和反量化操作。
4.如权利要求3所述的用于视频编码器的整数变换装置,其特征在于,所述控制功能块控制变换功能块进行两次单步变换完成整数反变换和变换功能,所述控制功能块控制量化反量化功能块进行两次单步量化和反量化完成整数量化反量化功能。
5.如权利要求1所述的用于视频编码器的整数变换装置,其特征在于,存储转置功能块包括用于存储中间数据及结果的存储算子,所述存储算子为双输入端口双输出端口的4×4×3寄存器阵列,所述寄存器阵列分别存储第n-1个4×4块残差系数反量化后的结果和整数反变换的中间结果,第n个4×4块残差系数整数正变换的中间结果和最终结果,第n个4×4块残差系数反量化后结果。
CN 201010619784 2010-12-31 2010-12-31 用于视频编码器的整数变换装置及其实现方法 Expired - Fee Related CN102045569B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010619784 CN102045569B (zh) 2010-12-31 2010-12-31 用于视频编码器的整数变换装置及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010619784 CN102045569B (zh) 2010-12-31 2010-12-31 用于视频编码器的整数变换装置及其实现方法

Publications (2)

Publication Number Publication Date
CN102045569A CN102045569A (zh) 2011-05-04
CN102045569B true CN102045569B (zh) 2012-10-24

Family

ID=43911271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010619784 Expired - Fee Related CN102045569B (zh) 2010-12-31 2010-12-31 用于视频编码器的整数变换装置及其实现方法

Country Status (1)

Country Link
CN (1) CN102045569B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769754B (zh) * 2012-08-02 2015-04-01 豪威科技(上海)有限公司 H264编码器及其图像变换、量化及重构的方法
CN104519366B (zh) * 2014-12-04 2019-05-14 广东中星微电子有限公司 一种视频编码变换量化方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184234A (zh) * 2007-10-24 2008-05-21 上海广电(集团)有限公司中央研究院 基于avs的整数变换量化和整数反变换反量化方法
CN101562744A (zh) * 2008-04-18 2009-10-21 展讯通信(上海)有限公司 二维反变换装置
CN101739382A (zh) * 2008-11-19 2010-06-16 北京大学深圳研究生院 一种基于可重构部件的集成电路和设计方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184234A (zh) * 2007-10-24 2008-05-21 上海广电(集团)有限公司中央研究院 基于avs的整数变换量化和整数反变换反量化方法
CN101562744A (zh) * 2008-04-18 2009-10-21 展讯通信(上海)有限公司 二维反变换装置
CN101739382A (zh) * 2008-11-19 2010-06-16 北京大学深圳研究生院 一种基于可重构部件的集成电路和设计方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DAI Peng等.A Novel Reconfigurable Operator Based IC Design Methodology for Multimedia Processing.《TENCON2009》.2009, *
刘凌志等.一种并行结构的二维正/逆整数变换处理器.《上海交通大学学报》.2004,第38卷(第12期), *
王新安.算子设计方法缩小IC设计与制造间的"剪刀差".《集成电路应用》.2010,(第7期),
肖有平等.一种AVS整数变换的快速算法.《西南科技大学学报》.2008,第23卷(第1期), *

Also Published As

Publication number Publication date
CN102045569A (zh) 2011-05-04

Similar Documents

Publication Publication Date Title
CN101796506B (zh) 具有比例缩放式和非比例缩放式接口的变换设计
CN100463522C (zh) 图像和视频编码用的改进的块变换和量化
CN102714730B (zh) 使用压缩感测的视频编解码
CN103096077B (zh) 用于执行数据变换的设备和方法
CN1697328B (zh) 快速视频编解码变换实现
CN101904174A (zh) 使用可编程图形硬件的帧内编码
CN100563337C (zh) 基于avs的整数变换量化和整数反变换反量化方法
CN101188761A (zh) Avs标准中基于并行处理来优化dct快速算法的方法
CN102857756A (zh) 适于hevc标准的变换编码器
CN1703094B (zh) 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法
CN102045569B (zh) 用于视频编码器的整数变换装置及其实现方法
Zhang et al. Lvqac: Lattice vector quantization coupled with spatially adaptive companding for efficient learned image compression
CN109196861A (zh) 解码数字图像的方法、编码方法、设备和相关计算机程序
CN101426134A (zh) 用于视频编解码的硬件装置及方法
Shawahna et al. JPEG image compression using the discrete cosine transform: an overview, applications, and hardware implementation
CN102075763A (zh) 用于视频编码器的帧内子块预测电路及其实现方法
Tung et al. MMX-based DCT and MC algorithms for real-time pure software MPEG decoding
CN107249130A (zh) 一种用于数字视频编解码的3乘3整数dct变换量化器
CN206962992U (zh) 用于数字视频编解码的3乘3整数dct变换量化器
CN100477795C (zh) Mpeg-2到h.264压缩域视频转码器系数转换方法
CN102355580B (zh) 运用于图像编码和视频编码的六角变换方法和装置
Bao et al. Taylor series based dual-branch transformation for learned image compression
Patil et al. Low Power High Speed VLSI Architecture for 1-D Discrete Wavelet Transform
CN1642280B (zh) 图像和视频信号的变换装置及其方法
CN100388316C (zh) 高精度的无乘法器的数字余弦变换电路及其变换方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121024

Termination date: 20211231