用于视频编码器的帧内子块预测电路及其实现方法

文档序号:7898623阅读:357来源:国知局
专利名称:用于视频编码器的帧内子块预测电路及其实现方法
技术领域
本发明涉及集成电路领域,特别涉及一种用于视频编码器的帧内子块预测电路及 其实现方法。
背景技术
随着集成电路制造工艺进入45nm以下阶段,集成电路设计发展落后于集成电 路工艺进步的剪刀差继续增大。数据流算法,尤其是数字媒体类的ASIC(AppliCati0n Specific Integrated Circuit,专用集成电路)设计,面临设计周期长、灵活性差、扩展性 差等问题,难以满足产品快速上市、功能不断提升的需求。目前集成电路产业需求方面,设计速度成为集成电路设计方法学的重要考虑因 素。当集成电路制造商或集成系统供应商将商业运作的基本问题(如产品数量、设计/测 试费用、不可再用的工程开支(NonRecurring Engineering, NRE)、用户IP的整合/复用、 可靠性和可维护性、生产过程复杂性等)综合考虑在内时,加速产品推出时间、提高产品性 能、降低产品制造风险便成为选择设计技术时的重要考虑因素。集成电路的设计,从全定制的晶体管设计开始,发展到1984年前后以1. 0 μ m工艺 节点为代表的门阵列设计,再到1994年前后以0. 5 μ m工艺节点为代表的标准单元设计,以 及1999年前后以0. 25 μ m工艺节点为代表的基于IP的设计和2004年0. 13um工艺节点为 代表的时间驱动,而目前广泛应用的标准单元设计其单元粒度一般为Ibit逻辑门级,而最 大粒度也只是触发器和全加器,利用逻辑综合工具,可以将RTL (寄存器传输)级设计快速 转化为门级设计,这样严重制约了设计的规模和设计速度。而针对数字类专用集成电路设计,从计算机高级语言向下层硬件映射速度和效率 是目前集成电路设计方法学研究的热点。目前高级语言向下层硬件映射的速度所需时间较长,是传统集成电路设计速度的 瓶颈所在。而集成电路算子是一种粒度高于标准单元的数字集成电路组成部件。其算子粒 度不仅可以支持加减乘除等运算,更可以完成诸如FFT的某一个蝶形运算,或I a-b I,复数 运算,cordic运算等操作。集成电路算子包括五类算子控制类算子、运算类算子、存储类 算子、路径类算子和时钟类算子。因此,针对数字类ASIC设计,利用集成电路算子会提升从 高级语言向下层硬件映射的速度。H. 264是国际电联(ITU-T)和国际标准化组织(ISO)共同组建的联合视频组 (JVT)共同制定的数字视频编码标准。因此,H. 264即是国际电联(ITU-T)的H.沈4,也是 国际标准化组织(ISO)和国际电工委(IEC)的MPEG-4标准的第10部分的内容。H. 264编码器的编码过程的主要子算法有帧间预测、帧内预测、变换和量化、去 块效应滤波和熵编码,其中,帧内预测是H. 264采用的一种新技术,指利用当前块的上方和 左方的相邻像素作为参考像素,对当前块的像素进行预测。帧内预测编码可以缩减图像的 空间冗余,减小码率。在高清视频压缩算法中,帧内4X4子块预测是H. 264提高编码质量的重要算法。对于帧内预测编码的图像,为取得最佳的编码效率,H. 264标准并不是直接对原始图像进行 变换,量化和编码,而是先采用9种不同的预测方式对原图像进行预测,然后对差值再进行 变换,量化和编码的处理。图表1画出了帧内4X4预测的9种预测模式的算法。帧内4X4 预测是H. 264中粒度最小的预测模式,其预测的性能将直接影响整个H. 264编码器的性能。为了提高帧内编码的压缩率,在进行帧内编码的时候,可以采用待处理的4X4子 块周围的子4X4块的编码模式预测当前子块的编码模式。如果真实的编码模式和预测的 编码模式一样,那么编码端将通过设置一个语法元素,解码端可根据该语法元素直接进行 解码。这样节省了码流,这种方法已经写入了 H. 264的标准中。对帧内预测的优化算法,大部分是通过分析待处理的4X4子块的像素纹理信息, 选择标准中9种模式的一种或者几种进行预测,从而节省了硬件设计的时间和空间花销, 但是时间和空间花销的减少,也降低了编码质量。H. 264标准中采用率失真代价来对每种预测的结果进行衡量,在真实的硬件设计 中,往往使用的SAD COST(残差矩阵的元素绝对值之和)判决来简化率失真代价的计算。其 中,SAD COST的计算公式如下
15SAD = YjIai-^l
i=0其中,Bi表示当前处理的4X4子块像素的真实值(或者叫当前值),bi表示当前 处理的4X4子块在某种预测模式下的预测值,两者之差叫做残差值,可见SAD COST就是残 差矩阵的元素绝对值之和。SAD COST最小的模式将成为该4X4子块最优的预测模式。

发明内容
本发明提供了一种用于视频编码器的帧内子块预测电路的实现方法,提高了硬件 设计的效率。为解决上述技术问题,本发明采用了如下的技术方案一方面,本发明公开了一种用于视频编码器的帧内子块预测电路的实现方法,包 括将计算机程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映 射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块 预测电路的硬件集成电路。上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述视频 编码器的帧内子块预测电路包括用于计算预测值的计算功能块、用于从预测值中选择最 优预测值的选择功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝对值之和的 残差计算功能块,将高级程序语言算法描述的视频编码器的帧内子块预测电路的各个功能 块映射成由算子单元构成的硬件逻辑描述包括如下步骤程序分析步骤读取帧内子块预测电路的各个功能块的高级程序语言算法程序, 根据该高级程序语言规则从所述高级程序语言算法程序中识别出被映射的执行对象和参 数对象;数据控制流图生成步骤将识别出的执行对象和参数对象映射成描述帧内子块预 测电路算法的数据控制流图中相应节点;
算子结构图生成步骤根据数据控制流图中的各个节点的功能处理,从所述算子 单元库中取出对应功能的至少一个算子单元,将所述数据控制流图转换成由算子单元组成 的算子时空图;时序约束步骤根据用户规格需求和目标集成电路工艺的要求确定出总时序约 束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;时空图压缩步骤根据时间标注对算子时空图进行空间上的聚类压缩,并使总体 算法执行时间最接近于总时序约束;下层硬件映射步骤将聚类压缩后的算子时空图映射成由算子单元构成的硬件逻 辑描述。上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述算子 单元库中的算子单元包括控制类算子、运算类算子、存储类算子、路径类算子、时钟类算子 和链接类算子中的至少一种;所述运算类算子为可重配置算子,一个运算类算子配置多种 运算及控制位,所述控制位用于择一选择一种运算;链接类算子的作用是链接存储类算子与运算类算子,形成数据流结构,其实现形 式包括多选器、交叉开关和总线;控制类算子的作用是正常推动数据流的流动,其实现形式包括计数器、状态机和 微指令字,控制输出的内容包括运算类算子动态重构信息,存储类算子AGU的配置信息, 链接类算子的配置信息;存储类算子可根据不同的数据存储格式和计算格式进行转换。上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述执行 对象包括运算指令和控制指令,所述控制指令包括循环语句中的循环指令和分支控制语句 中的控制指令,所述参数对象包括输入数据、输出数据和中间数据中的至少一种;在数据控 制流图生成步骤中,将所述运算指令映射为处理框图,将所述控制指令映射为用于标识状 态、状态转移条件及状态控制信号的控制流,将所述参数对象映射为数据流上的存储节点。上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述计算 机程序语言算法描述的计算功能块中包括循环语句,所述计算机程序语言算法描述的选择 功能块中包括分支控制语句,所述数据控制流图生成步骤包括根据循环语句中的循环次数判断循环语句为静态循环语句,根据循环次数进行循 环展开,在循环展开后带入参数对象得到新的运算表达式,将运算表达式中的运算指令映 射为处理框图,将运算表达式中的参数对象映射为数据流上的存储节点;将所述分支控制语句映射为多路选择器,其中,分支控制语句的内容映射为多路 选择器的输入端处理框图,分支控制语句的控制指令映射为多路选择器的控制端处理框 图。上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,在算子结 构图生成步骤中,将所述处理框图映射为运算类算子,将所述控制流映射为控制类算子,所 述存储节点映射为存储类算子,所述多路选择器映射为链接类算子。另一方面,本发明还公开了一种视频编码器的帧内子块预测电路,包括用于计算 预测值的计算功能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优 预测值获得相应的残差矩阵元素绝对值之和的残差计算功能块,所述各功能块由算子单元组成。上述视频编码器的帧内子块预测电路的一个实施例中,所述计算功能块包括加法 算子和右移一位算子,所述加法算子用于完成两个基本像素值的加法运算,所述右移一位 算子用于将加法运算的结果右移一位,所述基本像素值经加法算子和右移一位算子后,得 到预测值。上述视频编码器的帧内子块预测电路的一个实施例中,所述选择功能块为SWITCH 链接算子,所述SWITCH链接算子从所述预测值中选择出最优预测值。上述视频编码器的帧内子块预测电路的一个实施例中,所述残差计算功能块包括 SAD算子和ADD4算子,所述SAD算子包括减法算子SUB和绝对值算子ABS,其中减法算子SUB 用于进行两个参数的减法运算,绝对值算子ABS用于对参数取绝对值;所述ADD4算子用于 按行/列计算残差矩阵元素绝对值之和,所述最优预测值输入所述残差计算功能块后,经 SAD算子和ADD4算子,得到相应的残差矩阵元素绝对值之和。和现有技术相比,本发明的有益效果在于本发明公开的用于视频编码器的帧内子块预测电路的实现方法,包括将高级程序 语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的 硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬件集成电 路。本发明采用算子的方法实现电路,充分复用了运算算子,提高了硬件设计的效率,同时 还实现了硬件面积和电路设计时间的平衡。


图1示例性地描述了帧内4X4预测的9种预测模式的算法;图2示例性地描述了帧内模块结构框图图3示例性地描述了帧内预测电路结构框图;图4示例性地描述了计算功能块实现框图;图5示例性地描述了优化后的计算功能块实现框图;图6示例性地描述了选择功能块实现框图;图7示例性地描述了残差计算功能块实现框图;图8示例性地描述了 SAD算子功能图;图9示例性地描述了 ADD4算子功能图。
具体实施例方式下面对照附图并结合具体实施方式
对本发明进行进一步详细说明。本发明公开了一种用于视频编码器的帧内子块预测电路的实现方法,包括将计 算机程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单 元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬 件集成电路。采用上述方法实现的视频编码器的帧内子块预测电路,包括用于计算预测值的计 算功能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优预测值获得 相应的残差矩阵元素绝对值之和的残差计算功能块。
如图2所示,一个完整的帧内4X4模块包括预测电路、DCT环路电路和重建电路。 其中预测电路完成9种模式的优选,得到最优的预测模式及其相应预测值和残差。预测电路的输出结果包括子块的预测值和残差,这两部分将送到DCT环路电路, 经过DCT、量化、反量化、反DCT,得到子、块的量化后残差值和重建残差值。其中重建残差值 再经过后面的重建部分,得到重建后的残差,供H. 264编码部分和去块滤波部分使用。首先分析帧内预测高级程序语言。如图1所示,帧内子块预测9种模式,分别为模式a_i,对应的预测算法分别为模式a a = b = c = d = Ae = f = g = h = Bi = j = k = 1 = Cm = n = o = p = D模式b a = j = (M+A+l) >> 1b = k = (A+B+l) >> 1c = l= (B+C+l) >> 1d = (C+D+l) >> 1e = η = (A+2M+I+2) >>2f = ο = (M+2A+B+2) >> 2g = ρ = (A+2B+C+2) >> 2h = (B+2C+D+2) >> 2i = (M+2I+J+2) >>2m = (I+2J+K+2) >>2模式c a = g = (M+I+l) >> 1b = h = (A+2M+I+2) >>2c = (M+2A+B+2) >> 2d = (A+2B+C+2) >> 2e = k = (I+J+l) >> 1f = 1 = (M+2I+J+2) >>2i = ρ = (J+K+l) >> 1j = (I+2J+K+2) >>2η = (J+2K+L+2) >> 2m = (K+L+l) >> 1模式d a = e = i= m= Ib = f=j = n = Jc = g = k = o = Kd = h= l = p = L
模式e a = (A+B+1) >> 1b = i = (B+C+1) >> 1c = j = (C+D+l) >> 1d = k = (D+E+l) >> 1e = (A+2B+C+2) >> 2f = m = (B+2C+D+2) >> 2g = η = (C+2D+E+2) >> 2h = ο = (D+2E+F+2) >> 21 = (E+F+l) >> 1ρ = (E+2F+G+2) >> 2模式f:a = (A+2B+C+2) >>2b = e = (B+2C+D+2) >>2c = f = i = (C+2D+E+2) >>2d = g = j = m = (D+2E+F+2) >>2h = k = η = (E+2F+G+2) >>21 = 0= (F+2G+H+2) >>2ρ = (G+3H+2) > > 2模式g:a = b = c = d = e = f = g = h (A+B+C+D+I+J+K+L+4)/8a = b = c = d = e = f = g = h (A+B+C+D+2) /4a = b = c = d = e = f = g = h (I+J+K+L+2)/4a = b = c = d = e = f = g = h =模式h:a = f = k = ρ = (A+2M+I+2) >>2b = g = 1 = (M+2A+B+2) >>2e = j = ο = (M+2I+J+2) >>2i = η = (I+2J+K+2) >>2c = h = (A+2B+C+2) >>2m = (J+2K+L+2) >>2d = (B+2C+D+2) >>2模式i:a = (I+J+2) >>2b = (I+2J+K+2) >>2c = e = (J+K+l) >>2
= g = k= l= m = n = o = p = g = k= l= m = n = o = p = g = k= l= m = n = o = p g = k = l= m = n = o = p = 128
d = f = (J+2K+L+2) >>2g = i = (K+L+1) >> 1h = j = (K+3L+2) >>2k=l=m = n = o = p = L将以上9种模式所需要的参数列表,如表1所示表1:
权利要求
1.一种用于视频编码器的帧内子块预测电路的实现方法,其特征在于,包括将计算机程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块预测 电路的硬件集成电路。
2.如权利要求1所述的用于视频编码器的帧内子块预测电路的实现方法,其特征在 于,所述视频编码器的帧内子块预测电路包括用于计算预测值的计算功能块、用于从预测 值中选择最优预测值的选择功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝 对值之和的残差计算功能块,将高级程序语言算法描述的视频编码器的帧内子块预测电路 的各个功能块映射成由算子单元构成的硬件逻辑描述包括如下步骤程序分析步骤读取帧内子块预测电路的各个功能块的高级程序语言算法程序,根据 该高级程序语言规则从所述高级程序语言算法程序中识别出被映射的执行对象和参数对 象;数据控制流图生成步骤将识别出的执行对象和参数对象映射成描述帧内子块预测电 路算法的数据控制流图中相应节点;算子结构图生成步骤根据数据控制流图中的各个节点的功能处理,从所述算子单元 库中取出对应功能的至少一个算子单元,将所述数据控制流图转换成由算子单元组成的算 子时空图;时序约束步骤根据用户规格需求和目标集成电路工艺的要求确定出总时序约束,对 算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;时空图压缩步骤根据时间标注对算子时空图进行空间上的聚类压缩,并使总体算法 执行时间最接近于总时序约束;下层硬件映射步骤将聚类压缩后的算子时空图映射成由算子单元构成的硬件逻辑描述。
3.如权利要求2所述的用于视频编码器的帧内子块预测电路的实现方法,其特征在 于,所述算子单元库中的算子单元包括控制类算子、运算类算子、存储类算子、路径类算子、 时钟类算子和链接类算子中的至少一种;所述运算类算子为可重配置算子,一个运算类算 子配置多种运算及控制位,所述控制位用于择一选择一种运算;链接类算子的作用是链接存储类算子与运算类算子,形成数据流结构,其实现形式包 括多选器、交叉开关和总线;控制类算子的作用是正常推动数据流的流动,其实现形式包括计数器、状态机和微指 令字,控制输出的内容包括运算类算子动态重构信息,存储类算子AGU的配置信息,链接 类算子的配置信息;存储类算子可根据不同的数据存储格式和计算格式进行转换。
4.如权利要求3所述的用于视频编码器的帧内子块预测电路的实现方法,其特征在 于,所述执行对象包括运算指令和控制指令,所述控制指令包括循环语句中的循环指令和 分支控制语句中的控制指令,所述参数对象包括输入数据、输出数据和中间数据中的至少 一种;在数据控制流图生成步骤中,将所述运算指令映射为处理框图,将所述控制指令映射 为用于标识状态、状态转移条件及状态控制信号的控制流,将所述参数对象映射为数据流 上的存储节点。
5.如权利要求4所述的用于视频编码器的帧内子块预测电路的实现方法,其特征在 于,所述计算机程序语言算法描述的计算功能块中包括循环语句,所述计算机程序语言算 法描述的选择功能块中包括分支控制语句,所述数据控制流图生成步骤包括根据循环语句中的循环次数判断循环语句为静态循环语句,根据循环次数进行循环展 开,在循环展开后带入参数对象得到新的运算表达式,将运算表达式中的运算指令映射为 处理框图,将运算表达式中的参数对象映射为数据流上的存储节点;将所述分支控制语句映射为多路选择器,其中,分支控制语句的内容映射为多路选择 器的输入端处理框图,分支控制语句的控制指令映射为多路选择器的控制端处理框图。
6.如权利要求5所述的用于视频编码器的帧内子块预测电路的实现方法,其特征在 于,在算子结构图生成步骤中,将所述处理框图映射为运算类算子,将所述控制流映射为控 制类算子,所述存储节点映射为存储类算子,所述多路选择器映射为链接类算子。
7.一种视频编码器的帧内子块预测电路,其特征在于,包括用于计算预测值的计算功 能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优预测值获得相应 的残差矩阵元素绝对值之和的残差计算功能块,所述各功能块由算子单元组成。
8.如权利要求7所述的视频编码器的帧内子块预测电路,其特征在于,所述计算功能 块包括加法算子和右移一位算子,所述加法算子用于完成两个基本像素值的加法运算,所 述右移一位算子用于将加法运算的结果右移一位,所述基本像素值经加法算子和右移一位 算子后,得到预测值。
9.如权利要求8所述的视频编码器的帧内子块预测电路,其特征在于,所述选择功能 块为SWITCH链接算子,所述SWITCH链接算子用于从所述预测值中选择出最优预测值。
10.如权利要求9所述的视频编码器的帧内子块预测电路,其特征在于,所述残差计算 功能块包括SAD算子和ADD4算子,所述SAD算子包括减法算子SUB和绝对值算子ABS,其 中减法算子SUB用于进行两个参数的减法运算,绝对值算子ABS用于对参数取绝对值;所述 ADD4算子用于按行/列计算残差矩阵元素绝对值之和,所述最优预测值输入所述残差计算 功能块后,经SAD算子和ADD4算子,得到相应的残差矩阵元素绝对值之和。
全文摘要
本发明公开了一种用于视频编码器的帧内子块预测电路的实现方法,包括将高级程序语言算法描述的视频编码器的帧内子块预测电路的各个编码功能块映射成由算子单元构成的硬件逻辑描述;由算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬件集成电路。本发明还公开了一种视频编码器的帧内子块预测电路,包括用于计算预测值的计算编码功能块、用于从预测值中选择最优预测值的选择编码功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝对值之和的残差计算编码功能块。本发明提高了硬件设计的效率。
文档编号H04N7/36GK102075763SQ20101061999
公开日2011年5月25日 申请日期2010年12月31日 优先权日2010年12月31日
发明者张兴, 彭建宏, 王新安, 胡子一 申请人:北京大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1