CN102075763A - 用于视频编码器的帧内子块预测电路及其实现方法 - Google Patents
用于视频编码器的帧内子块预测电路及其实现方法 Download PDFInfo
- Publication number
- CN102075763A CN102075763A CN 201010619996 CN201010619996A CN102075763A CN 102075763 A CN102075763 A CN 102075763A CN 201010619996 CN201010619996 CN 201010619996 CN 201010619996 A CN201010619996 A CN 201010619996A CN 102075763 A CN102075763 A CN 102075763A
- Authority
- CN
- China
- Prior art keywords
- operator
- sub
- frame
- mapped
- video encoder
- 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
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子块预测是H.264提高编码质量的重要算法。对于帧内预测编码的图像,为取得最佳的编码效率,H.264标准并不是直接对原始图像进行变换,量化和编码,而是先采用9种不同的预测方式对原图像进行预测,然后对差值再进行变换,量化和编码的处理。图表1画出了帧内4×4预测的9种预测模式的算法。帧内4×4预测是H.264中粒度最小的预测模式,其预测的性能将直接影响整个H.264编码器的性能。
为了提高帧内编码的压缩率,在进行帧内编码的时候,可以采用待处理的4×4子块周围的子4×4块的编码模式预测当前子块的编码模式。如果真实的编码模式和预测的编码模式一样,那么编码端将通过设置一个语法元素,解码端可根据该语法元素直接进行解码。这样节省了码流,这种方法已经写入了H.264的标准中。
对帧内预测的优化算法,大部分是通过分析待处理的4×4子块的像素纹理信息,选择标准中9种模式的一种或者几种进行预测,从而节省了硬件设计的时间和空间花销,但是时间和空间花销的减少,也降低了编码质量。
H.264标准中采用率失真代价来对每种预测的结果进行衡量,在真实的硬件设计中,往往使用的SAD COST(残差矩阵的元素绝对值之和)判决来简化率失真代价的计算。其中,SAD COST的计算公式如下:
其中,ai表示当前处理的4×4子块像素的真实值(或者叫当前值),bi表示当前处理的4×4子块在某种预测模式下的预测值,两者之差叫做残差值,可见SAD COST就是残差矩阵的元素绝对值之和。SAD COST最小的模式将成为该4×4子块最优的预测模式。
发明内容
本发明提供了一种用于视频编码器的帧内子块预测电路的实现方法,提高了硬件设计的效率。
为解决上述技术问题,本发明采用了如下的技术方案:
一方面,本发明公开了一种用于视频编码器的帧内子块预测电路的实现方法,包括:
将计算机程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬件集成电路。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述视频编码器的帧内子块预测电路包括:用于计算预测值的计算功能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝对值之和的残差计算功能块,将高级程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述包括如下步骤:
程序分析步骤:读取帧内子块预测电路的各个功能块的高级程序语言算法程序,根据该高级程序语言规则从所述高级程序语言算法程序中识别出被映射的执行对象和参数对象;
数据控制流图生成步骤:将识别出的执行对象和参数对象映射成描述帧内子块预测电路算法的数据控制流图中相应节点;
算子结构图生成步骤:根据数据控制流图中的各个节点的功能处理,从所述算子单元库中取出对应功能的至少一个算子单元,将所述数据控制流图转换成由算子单元组成的算子时空图;
时序约束步骤:根据用户规格需求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩步骤:根据时间标注对算子时空图进行空间上的聚类压缩,并使总体算法执行时间最接近于总时序约束;
下层硬件映射步骤:将聚类压缩后的算子时空图映射成由算子单元构成的硬件逻辑描述。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述算子单元库中的算子单元包括控制类算子、运算类算子、存储类算子、路径类算子、时钟类算子和链接类算子中的至少一种;所述运算类算子为可重配置算子,一个运算类算子配置多种运算及控制位,所述控制位用于择一选择一种运算;
链接类算子的作用是链接存储类算子与运算类算子,形成数据流结构,其实现形式包括多选器、交叉开关和总线;
控制类算子的作用是正常推动数据流的流动,其实现形式包括计数器、状态机和微指令字,控制输出的内容包括:运算类算子动态重构信息,存储类算子AGU的配置信息,链接类算子的配置信息;
存储类算子可根据不同的数据存储格式和计算格式进行转换。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述执行对象包括运算指令和控制指令,所述控制指令包括循环语句中的循环指令和分支控制语句中的控制指令,所述参数对象包括输入数据、输出数据和中间数据中的至少一种;在数据控制流图生成步骤中,将所述运算指令映射为处理框图,将所述控制指令映射为用于标识状态、状态转移条件及状态控制信号的控制流,将所述参数对象映射为数据流上的存储节点。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述计算机程序语言算法描述的计算功能块中包括循环语句,所述计算机程序语言算法描述的选择功能块中包括分支控制语句,所述数据控制流图生成步骤包括:
根据循环语句中的循环次数判断循环语句为静态循环语句,根据循环次数进行循环展开,在循环展开后带入参数对象得到新的运算表达式,将运算表达式中的运算指令映射为处理框图,将运算表达式中的参数对象映射为数据流上的存储节点;
将所述分支控制语句映射为多路选择器,其中,分支控制语句的内容映射为多路选择器的输入端处理框图,分支控制语句的控制指令映射为多路选择器的控制端处理框图。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,在算子结构图生成步骤中,将所述处理框图映射为运算类算子,将所述控制流映射为控制类算子,所述存储节点映射为存储类算子,所述多路选择器映射为链接类算子。
另一方面,本发明还公开了一种视频编码器的帧内子块预测电路,包括用于计算预测值的计算功能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝对值之和的残差计算功能块,所述各功能块由算子单元组成。
上述视频编码器的帧内子块预测电路的一个实施例中,所述计算功能块包括加法算子和右移一位算子,所述加法算子用于完成两个基本像素值的加法运算,所述右移一位算子用于将加法运算的结果右移一位,所述基本像素值经加法算子和右移一位算子后,得到预测值。
上述视频编码器的帧内子块预测电路的一个实施例中,所述选择功能块为SWITCH链接算子,所述SWITCH链接算子从所述预测值中选择出最优预测值。
上述视频编码器的帧内子块预测电路的一个实施例中,所述残差计算功能块包括SAD算子和ADD4算子,所述SAD算子包括减法算子SUB和绝对值算子ABS,其中减法算子SUB用于进行两个参数的减法运算,绝对值算子ABS用于对参数取绝对值;所述ADD4算子用于按行/列计算残差矩阵元素绝对值之和,所述最优预测值输入所述残差计算功能块后,经SAD算子和ADD4算子,得到相应的残差矩阵元素绝对值之和。
和现有技术相比,本发明的有益效果在于:
本发明公开的用于视频编码器的帧内子块预测电路的实现方法,包括将高级程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬件集成电路。本发明采用算子的方法实现电路,充分复用了运算算子,提高了硬件设计的效率,同时还实现了硬件面积和电路设计时间的平衡。
附图说明
图1示例性地描述了帧内4×4预测的9种预测模式的算法;
图2示例性地描述了帧内模块结构框图:
图3示例性地描述了帧内预测电路结构框图;
图4示例性地描述了计算功能块实现框图;
图5示例性地描述了优化后的计算功能块实现框图;
图6示例性地描述了选择功能块实现框图;
图7示例性地描述了残差计算功能块实现框图;
图8示例性地描述了SAD算子功能图;
图9示例性地描述了ADD4算子功能图。
具体实施方式
下面对照附图并结合具体实施方式对本发明进行进一步详细说明。
本发明公开了一种用于视频编码器的帧内子块预测电路的实现方法,包括:将计算机程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬件集成电路。
采用上述方法实现的视频编码器的帧内子块预测电路,包括用于计算预测值的计算功能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝对值之和的残差计算功能块。
如图2所示,一个完整的帧内4×4模块包括预测电路、DCT环路电路和重建电路。其中预测电路完成9种模式的优选,得到最优的预测模式及其相应预测值和残差。
预测电路的输出结果包括子块的预测值和残差,这两部分将送到DCT环路电路,经过DCT、量化、反量化、反DCT,得到子、块的量化后残差值和重建残差值。其中重建残差值再经过后面的重建部分,得到重建后的残差,供H.264编码部分和去块滤波部分使用。
首先分析帧内预测高级程序语言。
如图1所示,帧内子块预测9种模式,分别为模式a-i,对应的预测算法分别为:
模式a:
a=b=c=d=A
e=f=g=h=B
i=j=k=l=C
m=n=o=p=D
模式b:
a=j=(M+A+1)>>1
b=k=(A+B+1)>>1
c=l=(B+C+1)>>1
d=(C+D+1)>>1
e=n=(A+2M+I+2)>>2
f=o=(M+2A+B+2)>>2
g=p=(A+2B+C+2)>>2
h=(B+2C+D+2)>>2
i=(M+2I+J+2)>>2
m=(I+2J+K+2)>>2
模式c:
a=g=(M+I+1)>>1
b=h=(A+2M+I+2)>>2
c=(M+2A+B+2)>>2
d=(A+2B+C+2)>>2
e=k=(I+J+1)>>1
f=l=(M+2I+J+2)>>2
i=p=(J+K+1)>>1
j=(I+2J+K+2)>>2
n=(J+2K+L+2)>>2
m=(K+L+1)>>1
模式d:
a=e=i=m=I
b=f=j=n=J
c=g=k=o=K
d=h=l=p=L
模式e:
a=(A+B+1)>>1
b=i=(B+C+1)>>1
c=j=(C+D+1)>>1
d=k=(D+E+1)>>1
e=(A+2B+C+2)>>2
f=m=(B+2C+D+2)>>2
g=n=(C+2D+E+2)>>2
h=o=(D+2E+F+2)>>2
l=(E+F+1)>>1
p=(E+2F+G+2)>>2
模式f:
a=(A+2B+C+2)>>2
b=e=(B+2C+D+2)>>2
c=f=i=(C+2D+E+2)>>2
d=g=j=m=(D+2E+F+2)>>2
h=k=n=(E+2F+G+2)>>2
l=o=(F+2G+H+2)>>2
p=(G+3H+2)>>2
模式g:
a=b=c=d=e=f=g=h=i=g=k=l=m=n=o=p=(A+B+C+D+I+J+K+L+4)/8
a=b=c=d=e=f=g=h=i=g=k=l=m=n=o=p=(A+B+C+D+2)/4
a=b=c=d=e=f=g=h=i=g=k=l=m=n=o=p=(I+J+K+L+2)/4
a=b=c=d=e=f=g=h=i=g=k=l=m=n=o=p=128
模式h:
a=f=k=p=(A+2M+I+2)>>2
b=g=l=(M+2A+B+2)>>2
e=j=o=(M+2I+J+2)>>2
i=n=(I+2J+K+2)>>2
c=h=(A+2B+C+2)>>2
m=(J+2K+L+2)>>2
d=(B+2C+D+2)>>2
模式i:
a=(I+J+2)>>2
b=(I+2J+K+2)>>2
c=e=(J+K+1)>>2
d=f=(J+2K+L+2)>>2
g=i=(K+L+1)>>1
h=j=(K+3L+2)>>2
k=l=m=n=o=p=L
将以上9种模式所需要的参数列表,如表1所示:
表1:
经分析上表可知,9种预测模式的共同特点为:
(1)所有的预测值都是有A——L和M这13个像素直接或者间接得到的;
(2)许多预测值为多种预测模式公用,将A——L、M之外的预测像素标号为x0——x25;
(3)x0——x25这26个预测值的计算公式只有两种,从而我们可以提炼出两种算子:
算子1:y=(a+b+1)/2
算子2:y=(a+2b+c+2)/4
更进一步的,算子2可以变形为:
算子2:
由以上的分析可以看到,算子1实现的基本功能是两个参数相加后再加一,然后对它们的和除以2,算子2实现的基本功能是2个算子1的计算结果相加,然后除以2。
可见,用于帧内子块预测电路实现时,可以现将其算法分解为多个算子1的运算,然后把算子1的功能用硬件实现。
为了实现视频编码器的帧内子块预测电路,本发明公开了以下的实现方法,包括:
将计算机程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬件集成电路。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述视频编码器的帧内子块预测电路包括:用于计算预测值的计算功能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝对值之和的残差计算功能块,将高级程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述包括如下步骤:
程序分析步骤:读取帧内子块预测电路的各个功能块的高级程序语言算法程序,根据该高级程序语言规则从所述高级程序语言算法程序中识别出被映射的执行对象和参数对象;
数据控制流图生成步骤:将识别出的执行对象和参数对象映射成描述帧内子块预测电路算法的数据控制流图中相应节点;
算子结构图生成步骤:根据数据控制流图中的各个节点的功能处理,从所述算子单元库中取出对应功能的至少一个算子单元,将所述数据控制流图转换成由算子单元组成的算子时空图;
时序约束步骤:根据用户规格需求和目标集成电路工艺的要求确定出总时序约束,对算子时空图中的每个算子单元标注时间,对算子时空图的每个层级进行时序约束;
时空图压缩步骤:根据时间标注对算子时空图进行空间上的聚类压缩,并使总体算法执行时间最接近于总时序约束;
下层硬件映射步骤:将聚类压缩后的算子时空图映射成由算子单元构成的硬件逻辑描述。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述算子单元库中的算子单元包括控制类算子、运算类算子、存储类算子、路径类算子、时钟类算子和链接类算子中的至少一种;所述运算类算子为可重配置算子,一个运算类算子配置多种运算及控制位,所述控制位用于择一选择一种运算;
链接类算子的作用是链接存储类算子与运算类算子,形成数据流结构,其实现形式包括多选器、交叉开关和总线;
控制类算子的作用是正常推动数据流的流动,其实现形式包括计数器、状态机和微指令字,控制输出的内容包括:运算类算子动态重构信息,存储类算子AGU的配置信息,链接类算子的配置信息;
存储类算子可根据不同的数据存储格式和计算格式进行转换。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述执行对象包括运算指令和控制指令,所述控制指令包括循环语句中的循环指令和分支控制语句中的控制指令,所述参数对象包括输入数据、输出数据和中间数据中的至少一种;在数据控制流图生成步骤中,将所述运算指令映射为处理框图,将所述控制指令映射为用于标识状态、状态转移条件及状态控制信号的控制流,将所述参数对象映射为数据流上的存储节点。
所述运算指令包括函数、加、减、乘、除等运算。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,所述计算机程序语言算法描述的计算功能块中包括循环语句,循环语句包括静态循环语句、动态循环语句等,当循环次数固定时循环为静态循环;
所述计算机程序语言算法描述的选择功能块中包括分支控制语句,所述数据控制流图生成步骤包括:
根据循环语句中的循环次数判断循环语句为静态循环语句,根据循环次数进行循环展开,在循环展开后带入参数对象得到新的运算表达式,将运算表达式中的运算指令映射为处理框图,将运算表达式中的参数对象映射为数据流上的存储节点;
将所述分支控制语句映射为多路选择器,其中,分支控制语句的内容映射为多路选择器的输入端处理框图,分支控制语句的控制指令映射为多路选择器的控制端处理框图。
上述用于视频编码器的帧内子块预测电路的实现方法的一个实施例中,在算子结构图生成步骤中,将所述处理框图映射为运算类算子,将所述控制流映射为控制类算子,所述存储节点映射为存储类算子,所述多路选择器映射为链接类算子。
采用上述的实现方法,先将计算机程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述,然后由所述算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬件集成电路。
生成的帧内子块预测电路,包括用于计算预测值的计算功能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝对值之和的残差计算功能块,所述各功能块由算子单元组成,所述功能块由算子构成。
计算功能块包括加法算子和右移一位算子,所述加法算子用于完成两个基本像素值的加法运算,所述右移一位算子用于将加法运算的结果右移一位,所述基本像素值经加法算子和右移一位算子后,得到预测值。
选择功能块为SWITCH链接算子,所述SWITCH链接算子从所述预测值中选择出最优预测值。
残差计算功能块包括SAD算子和ADD4算子,所述SAD算子包括减法算子SUB和绝对值算子ABS,其中减法算子SUB用于进行两个参数的减法运算,绝对值算子ABS用于对参数取绝对值;所述ADD4算子用于按行/列计算残差矩阵元素绝对值之和,所述最优预测值输入所述残差计算功能块后,经SAD算子和ADD4算子,得到相应的残差矩阵元素绝对值之和。
如图3所示,一个实施例的视频编码器的帧内子块预测电路,包括用于计算预测值的计算功能块、用于从预测值中选择最优预测值的选择功能块、以及用于根据最优预测值获得相应的残差矩阵元素绝对值之和的残差计算功能块。
如图4所示,计算功能块包括加法算子和右移一位算子,所述加法算子用于完成两个基本像素值的加法运算,所述右移一位算子用于将加法运算的结果右移一位,所述基本像素值经加法算子和右移一位算子后,得到预测值。
上面的结构理论上满足算法要求的硬件完全铺开实现,用硬件的冗余性换来了设计速度的大幅度提高。为了节约电路尺寸,对算法进行时间标注,并利用时序约束、功耗约束等指标,对硬件映射进行合并和优化,目标是在时序,面积和功耗上达到平衡。
优化后的算法映射一方面在运算算子前后加入了连接算子MUX实现对数据通路的控制,另一方面加大了硬件的并行度以节约时序,满足设计要求。图5是优化后的计算功能块的实现。
选择功能块为SWITCH链接算子,SWITCH链接算子在控制算子的控制下,从预测值中选择出最优预测值。
SWITCH链接算子结构如图6所示,根据控制信号的不同,SWITCH链接算子可以进行25选16的操作,实现从25个预测值中选择出16个最优预测值的功能。
如图7所示,残差计算功能块包括SAD算子和ADD4算子,残差计算功能块用于对最优预测值组成的残差矩阵的每个元素取绝对值,ADD4算子用于按行/列计算残差矩阵元素绝对值之和.
如图8所示,SAD算子包括减法算子SUB和绝对值算子ABS,其中减法算子SUB用于进行两个参数的减法运算,绝对值算子ABS用于对参数取绝对值。
如图9所示,所述最优预测值输入所述残差计算功能块后,经SAD算子和ADD4算子,得到相应的残差矩阵元素绝对值之和。
如图8所示,16个最优预测值组成一个4*4残差矩阵,残差矩阵的16个元素分别按行/列输入SAD#1-SAD#16,取绝对值后输出,按照每行/列输入ADD4#1-ADD4#4求和,然后输出至ADD4#5求和,得到残差矩阵元素绝对值之和。
本发明公开的用于视频编码器的帧内子块预测电路的实现方法,包括将高级程序语言算法描述的视频编码器的帧内子块预测电路的各个功能块映射成由算子单元构成的硬件逻辑描述;由所述算子单元构成的硬件逻辑描述生成帧内子块预测电路的硬件集成电路。本发明采用算子的方法实现电路,充分复用了运算算子,提高了硬件设计的效率,同时还实现了硬件面积和电路设计时间的平衡。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
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算子,得到相应的残差矩阵元素绝对值之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010619996 CN102075763A (zh) | 2010-12-31 | 2010-12-31 | 用于视频编码器的帧内子块预测电路及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010619996 CN102075763A (zh) | 2010-12-31 | 2010-12-31 | 用于视频编码器的帧内子块预测电路及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102075763A true CN102075763A (zh) | 2011-05-25 |
Family
ID=44034085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010619996 Pending CN102075763A (zh) | 2010-12-31 | 2010-12-31 | 用于视频编码器的帧内子块预测电路及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102075763A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731668A (zh) * | 2012-10-16 | 2014-04-16 | 佳能株式会社 | 图像编码装置及图像编码方法 |
CN111208994A (zh) * | 2019-12-31 | 2020-05-29 | 西安翔腾微电子科技有限公司 | 应用程序的执行方法、装置、电子设备及存储介质 |
WO2020228663A1 (en) * | 2019-05-11 | 2020-11-19 | Beijing Bytedance Network Technology Co., Ltd. | Interactions among multiple intra coding methods |
CN114205614A (zh) * | 2021-12-16 | 2022-03-18 | 福州大学 | 一种基于hevc标准的帧内预测模式并行硬件方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222646A (zh) * | 2008-01-30 | 2008-07-16 | 上海广电(集团)有限公司中央研究院 | 一种适用于avs编码的帧内预测装置及预测方法 |
CN101394565A (zh) * | 2008-10-20 | 2009-03-25 | 成都九洲电子信息系统有限责任公司 | 一种帧内预测方法 |
CN101739382A (zh) * | 2008-11-19 | 2010-06-16 | 北京大学深圳研究生院 | 一种基于可重构部件的集成电路和设计方法 |
-
2010
- 2010-12-31 CN CN 201010619996 patent/CN102075763A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222646A (zh) * | 2008-01-30 | 2008-07-16 | 上海广电(集团)有限公司中央研究院 | 一种适用于avs编码的帧内预测装置及预测方法 |
CN101394565A (zh) * | 2008-10-20 | 2009-03-25 | 成都九洲电子信息系统有限责任公司 | 一种帧内预测方法 |
CN101739382A (zh) * | 2008-11-19 | 2010-06-16 | 北京大学深圳研究生院 | 一种基于可重构部件的集成电路和设计方法 |
Non-Patent Citations (2)
Title |
---|
《TENCON 2009》 20090126 Dai Peng 等 A novel reconfigurable operator based IC design methodology for multimedia processing 1-5 , * |
《集成电路应用》 20100731 王新安 算子设计方法缩小IC设计与制造间的"剪刀差" 23-26 , 第7期 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731668A (zh) * | 2012-10-16 | 2014-04-16 | 佳能株式会社 | 图像编码装置及图像编码方法 |
WO2020228663A1 (en) * | 2019-05-11 | 2020-11-19 | Beijing Bytedance Network Technology Co., Ltd. | Interactions among multiple intra coding methods |
US11509904B2 (en) | 2019-05-11 | 2022-11-22 | Beijing Bytedance Network Technology Co., Ltd. | Interactions among multiple intra coding methods |
US11876971B2 (en) | 2019-05-11 | 2024-01-16 | Beijing Bytedance Network Technology Co., Ltd. | Interactions among multiple intra coding methods |
CN111208994A (zh) * | 2019-12-31 | 2020-05-29 | 西安翔腾微电子科技有限公司 | 应用程序的执行方法、装置、电子设备及存储介质 |
CN111208994B (zh) * | 2019-12-31 | 2023-05-30 | 西安翔腾微电子科技有限公司 | 计算机图形应用程序的执行方法、装置及电子设备 |
CN114205614A (zh) * | 2021-12-16 | 2022-03-18 | 福州大学 | 一种基于hevc标准的帧内预测模式并行硬件方法 |
CN114205614B (zh) * | 2021-12-16 | 2023-08-04 | 福州大学 | 一种基于hevc标准的帧内预测模式并行硬件方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Silveira et al. | Power-efficient sum of absolute differences hardware architecture using adder compressors for integer motion estimation design | |
CN102043886A (zh) | 集成电路下层硬件映射方法、数据控制流时序约束方法及装置 | |
CN101222646B (zh) | 一种适用于avs编码的帧内预测装置及预测方法 | |
CN103947211B (zh) | 产生已分区比特流的视频编码装置及方法 | |
CN102054108B (zh) | 集成电路下层硬件映射方法、时空图压缩方法及装置 | |
CN102075763A (zh) | 用于视频编码器的帧内子块预测电路及其实现方法 | |
CN107633298A (zh) | 一种基于模型压缩的递归神经网络加速器的硬件架构 | |
CN101729893B (zh) | 基于软硬件协同处理的mpeg多格式兼容解码方法及其装置 | |
CN102088603A (zh) | 用于视频编码器的熵编码器及其实现方法 | |
CN102054109B (zh) | 集成电路下层硬件映射方法、数据控制流生成方法及装置 | |
Hameed et al. | Understanding sources of ineffciency in general-purpose chips | |
CN107465929A (zh) | 基于hevc的dvfs控制方法、系统、处理器及存储设备 | |
CN102572430A (zh) | 一种基于可重构技术的h.264去块滤波算法的实现方法 | |
CN102123286B (zh) | 视频编解码器网络提取层nal模块及实现方法 | |
CN102054107B (zh) | 集成电路下层硬件映射方法、时空图生成方法及装置 | |
CN117077586B (zh) | 一种电路设计的寄存器传输级资源预测方法、装置及设备 | |
CN106231307B (zh) | 一种图像压缩帧内编码预测方法及其硬件实现 | |
CN102045569B (zh) | 用于视频编码器的整数变换装置及其实现方法 | |
CN102075762A (zh) | 用于视频编码器的帧间预测电路及其实现方法 | |
CN102055980A (zh) | 用于视频编码器的帧内预测电路及其实现方法 | |
Baldev et al. | A directional and scalable streaming deblocking filter hardware architecture for HEVC decoder | |
CN101472174A (zh) | 视频解码器中用于复原原始图像数据的方法及装置 | |
Corvino et al. | Transformation-based exploration of data parallel architecture for customizable hardware: A jpeg encoder case study | |
Lee et al. | Algorithmic complexity analysis on data transfer rate and data storage for multidimensional signal processing | |
CN104683800A (zh) | 基于avs的并行量化和反量化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110525 |