CN103458245B - 解码器运动补偿模块的流水设计方法及系统 - Google Patents
解码器运动补偿模块的流水设计方法及系统 Download PDFInfo
- Publication number
- CN103458245B CN103458245B CN201310390113.2A CN201310390113A CN103458245B CN 103458245 B CN103458245 B CN 103458245B CN 201310390113 A CN201310390113 A CN 201310390113A CN 103458245 B CN103458245 B CN 103458245B
- Authority
- CN
- China
- Prior art keywords
- flowing water
- module
- data
- water section
- block
- 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.)
- Active
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种解码器运动补偿模块的流水设计方法,其包括参考数据读取、帧间插值、加权预测、数据重建4个子模块,其还至少包括:1)帧间插值模块完成参考数据读取时,将运动补偿模块划分为2个流水段:第一个流水段和第二个流水段;2)在第一个流水段完成参考数据读取和帧间插值的数据输入的工作;3)在第二个流水段,完成帧间插值的数据输出、加权预测计算、数据重建的工作;4)第一个流水段与第二个流水段处于并行的工作状态,运动补偿模块启动和结束时段除外;采用本发明中的设计方案,处理一个双向预测宏块需要的时钟周期数为(11+7)*(32+1)=594,对应完成1080P高清实时解码,前者所需要的解码器工作频率为144.342MHz,所需要耗费的解码器工作频率有43.75%的收益;另外,本发明的硬件实现复杂度远低于8x8的设计方案,相对于传统4x4设计方案仅有非常小幅度的增加。
Description
技术领域
本发明涉及一种基于H.264解码器的运动补偿模块的流水线设计,尤其是一种基于4x4子块作为最小处理单元的H.264解码器的运动补偿模块的流水线设计的方法及系统。
背景技术
目前主流的H.264解码器通常采用基于宏块的多段流水线设计,最常见的H.264解码器通常划分为:熵解码模块和运动向量产生模块、反变化量化模块和取数据模块、运动补偿模块和帧内插值模块、去块滤波模块4个流水段,其中上述的运动补偿模块主要完成参考数据选择、帧间插值、加权预测、数据重建功能。作为H.264解码器中访存及运算量最大的模块,运动补偿模块的硬件开销及其完成单个宏块所需要的周期数等两项指标对H.264解码器IP的性能具有非常大的影响。
现有设计中,运动补偿模块常见的主要有基于8x8子块和4x4子块作为最小处理单元的两种设计方法,前者以8x8子块作为最小处理单元,能够并行处理8个像素点,其优点是处理速度快,但相应的缺点则是需要在参考数据读取、帧间插值、加权预测、数据重建等运动补偿的每个阶段均要支持8个像素点的并行操作,从而造成硬件开销过大;后者以4x4子块作为最小处理单元,同时处理4个像素点,优点是只需要支持4个像素点的并行操作,硬件开销小,但缺点则是由于并行度的下降,导致硬件的处理速度较低,可能会使得运动补偿模块成为解码器最高工作频率的瓶颈。
综上所述,鉴于以上所述现有技术的缺点,如何使得运动补偿模块在满足解码器设计频率要求的前提下,又不耗费过多的硬件资源,是本领域技术人员所亟需要解决的问题。
发明内容
本发明的目的在于:在采用4x4子块作为最小处理单元的运动补偿模块设计方案中,通过在运动补偿模块内部引入4x4子块间的流水线设计,在小幅增加控制逻辑复杂度的基础上,获得了与以8x8子块作为最小处理单元设计方案相近的处理速度,能够满足在小于150MHz的工作频率下完成1080P高清实时解码的需求,克服了传统的4x4子块设计方案高清解码工作频率需求过高的缺点,并且相应的硬件实现复杂度却远低于8x8的设计方案,相对于传统4x4设计方案仅有非常小幅度的增加。
为实现上述目的,本发明提供一种解码器运动补偿模块的流水设计方法,其包括参考数据读取、帧间插值、加权预测、数据重建4个子模块,其还至少包括:
1)帧间插值模块完成参考数据读取时,将运动补偿模块划分为2个流水段:第一个流水段和第二个流水段;
2)在第一个流水段完成参考数据读取和帧间插值的数据输入的工作;
3)在第二个流水段,完成帧间插值的数据输出、加权预测计算、数据重建的工作;
4)第一个流水段与第二个流水段处于并行的工作状态,运动补偿模块启动和结束时段除外。
优选地,上述的两段式流水设计是基于4x4子块作为最小处理单元,所述的处于并行工作状态的2个流水段分别处理的是连续的2个4x4子块。
优选地,所述步骤2)、3)中对应的每个流水段的开销为11个时钟周期。
基于上述目的,本发明还一种解码器运动补偿模块的流水设计系统,其包括:参考数据读取、帧间插值、加权预测、数据重建4个子模块,其至少还包括:流水控制模块,以控制各个子模块之间形成流水结构。
优选地,所述流水控制模块在运动补偿模块启动后,在插值模块完成参考数据读取时,将运动补偿模块划分为2个流水段:在第一个流水段完成参考数据读取和帧间插值的数据输入的工作;在第二个流水段,完成帧间插值的数据输出、加权预测计算、数据重建的工作;2个流水段大部分时间内都处于并行工作状态。
优选地,上述的两段式流水设计是基于4x4子块作为最小处理单元,所述的处于并行工作状态的2个流水段分别处理的是连续的2个4x4子块。
优选地,每个流水段的开销为11个时钟周期。
如上所述,本发明解码器运动补偿模块的流水线设计方法及系统,具有以下有益效果:如果采用现有技术的4x4子块设计方案,完成一个双向预测宏块所需要的时钟周期数为(20+13)*32=1056,而采用本发明中提到的基于4x4子块流水的设计方案,处理一个双向预测宏块需要的时钟周期数为(11+7)*(32+1)=594。对应完成1080P高清实时解码,前者所需要的解码器工作频率为256.608MHz,采用4x4子块流水线设计方案为144.342MHz,所需要耗费的解码器工作频率有43.75%的收益;另外,由于继承了基于4x4子块设计方案的物理面积小的优点,本发明的硬件实现复杂度远低于8x8的设计方案,相对于传统4x4设计方案仅有非常小幅度的增加。
附图说明
图1是:典型的H.264运动补偿模块结构框图;
图2是:运动补偿模块内部各子模块数据流波形示意图;
图3是:基于二维脉动阵列的运动补偿模块的插值模块结构示意图;
图4是:本发明运动补偿模块划分流水前后的数据流比较示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效。
请参阅图1至图4。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
附图1给出了现有技术中典型运动补偿模块的子模块组成框图或者称为划分示意图,其通常包括参考数据读取、帧间插值、加权预测、数据重建4个子模块组成部分,各子模块的功能如下:
参考数据读取:从运动补偿模块与前一级模块间的stage buffer(流水段间缓存)中读回当前4*4子块解码所需要的参考块信息;
帧间插值:将参考块信息输入到模块内的二维脉动阵列及插值滤波器阵列中,经过6抽头插值滤波计算后,输出数据块预测值;
加权预测:根据加权预测公式完成加权预测操作;
数据重建:根据加权预测模块输出的加权预测数据块信息与残差信息恢复得到原始数据块信息;
运动补偿控制:用于完成对宏块内部各个4x4子块的运动补偿控制;
附图2给出了现有技术的运动补偿模块内部各子模块数据流波形示意图,从图中可以看到完成一个4x4子块的运动补偿需要的总周期数为20。在c0-c2(时钟周期0到时钟周期2)完成参考数据读取,在c2-c14完成帧间插值,在c11-c16完成加权预测,在c15-c19完成数据重建,其中帧间插值模块需要的时间最长,需要耗费13个时钟周期,所以帧间插值模块是运动补偿模块流水划分最小粒度的关键。继续的,如附图3所示,在帧间插值模块中,采用现有技术的典型的基于二维脉动阵列的设计结构,二维脉动阵列结构对应图中提到的6级延迟寄存器组和同时工作的行、列滤波器组。对于4x4子块每行的4个并行处理的像素,需要在6级寄存器组中参考数据准备好的情况下才能进行,即完成1行4像素插值至少需要延迟寄存器组中6个周期的准备时间,这样完成1个4x4块的插值至少需要占据延迟寄存器组9个周期,这也是该结构能够支持的最小流水线粒度,所以对于上述典型的运动补偿结构,流水线划分的最小单位为9个cycle(解码器时钟周期)。
综合上述现有技术的特点以及技术缺陷,本发明方法在逻辑实现时考虑到降低硬件复杂度的需求,在基于4x4子块作为最小处理单元的运动补偿模块设计中,引入两段式流水线设计;本发明把插值模块刚好完成参考数据输入时作为流水线划分的节点,对应每段流水的开销为11个时钟周期;即,现以现有技术中的图2中的c11时刻作为流水线划分节点,按照附图2中的stage1和stage2将运动补偿模块划分为2个流水段,在stage1阶段完成参考数据读取和帧间插值的参考数据输入两部分工作,在stage2阶段,完成帧间插值的数据输出、加权预测计算、数据重建等工作。
继续的,如附图4下半部分所示,本发明方法在运动补偿模块启动后,流水线控制逻辑首先控制完成宏块0的stage1阶段工作,此时stage1相关电路处于工作状态,stage2相关电路处于空闲状态,然后开始进行宏块0的stage2阶段工作,在此同时启动宏块1的stage1阶段工作,此时stage1、stage2相关电路处在并行工作状态,在当前stage1、stage2完成后,会同时开始宏块2的stage1阶段和宏块1的stage2阶段工作,依次类推,直至最后一个宏块前,stage1和stage2阶段相关电路均处在并行工作状态,在最后一个宏块的stage2阶段开始时,由于后面已经没有需要处理的宏块,此时仅有stage2阶段电路处在工作状态。如上所述,经过本发明的方法的流水线设计后,运动补偿模块的stage1和stage2电路在大部分时间内都是并行工作的,从而提高了硬件的利用效率。
即,如附图1中虚线框圈起部分,在运动补偿控制模块中增加流水线控制相关逻辑,用于控制各个子模块之间形成流水结构,即可实现本发明中提到的方案。
流水线划分前后的运动补偿各子模块数据流如附图4所示,划分流水前完成一个4x4子块的运动补偿操作,需要11+9=20个周期;划分流水后,每个4x4子块的运动补偿过程被划分为2个流水段,其中stage1需要耗费11个时钟周期,stage2需要耗费9个周期。由于流水线结构中的最小粒度由延时最大的流水段所决定,所以在stage2阶段会存在2个cycle的气泡(空闲)周期。即完成一个4x4子块的运动补偿需要11个周期,相对于划分流水前有45%的时间收益。
在H.264的视频码流中,存在单向预测和双向预测两类帧间预测宏块,单向预测只参考前向或后向参考帧,仅需要完成16个4x4子块的运动补偿操作,而双向预测宏块需要同时参考前向后向参考帧,需要完成32个4x4子块的运动补偿操作,考虑到在建立流水和结束流水阶段,硬件并未真正形成并行操作,如在流水建立阶段,选参考数据和插值计算部分开始工作后,加权预测和数据重建部分并未开始工作,在流水退出阶段也存在类似问题,所以完成一个双向预测宏块亮度部分的运动补偿需要33个流水周期。类似亮度部分的处理方式,对色度部分的运动补偿过程也做流水处理,会将一对2x2色度块的运动补偿处理时间从13cycle降至7cycle,即完成一个16x16双向预测宏块的总时间为(11+7)*(32+1)=594cycle。相对于未划分流水的运动补偿结构完成一个双向预测宏块的周期数为(20+13)*32=1056cycle,本发明在完成一个双向预测宏块运动补偿的周期数上有43.75%的收益。
在H.264的视频码流中包含I、P、B三种类型的数据帧格式,其中I帧的解码开销通常要低于P、B帧,由于P帧参考数据量是B帧的一半,使得B帧是解码时间开销最大的帧类型,所以按照全B帧最恶劣的测试码流来评估两种设计需要的解码时间开销,采用未经流水线设计的4x4子块设计方案完成1080P实时解码需要的极限频率为(1920*1080/16*16)*30帧/s*1056=256.608MHz;采用4x4子块流水线设计方案,所需要的解码器工作频率为(1920*1080/16*16)*30帧/s*594=144.342MHz,所需要耗费的解码器工作频率方面有43.75%的降低。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (7)
1.一种解码器运动补偿模块的流水设计方法,其包括参考数据读取、帧间插值、加权预测、数据重建4个子模块,其特征在于,还至少包括以下步骤:
步骤1)帧间插值子模块完成参考数据输入时将运动补偿模块划分为2个流水段:第一个流水段和第二个流水段;
步骤2)在第一个流水段完成参考数据读取和帧间插值的数据输入的工作;
步骤3)在第二个流水段,完成帧间插值的数据输出、加权预测计算、数据重建的工作;
步骤4)在运动补偿模块启动后宏块0即第一个宏块的第一个流水段阶段工作以后到运动补偿模块结束前最后一个宏块进入第二流水段阶段前,2个流水段处于并行的工作状态。
2.根据权利要求1所述的流水设计方法,其特征在于,上述的2个流水段的划分是基于4x4子块作为最小处理单元,所述的处于并行工作状态的2个流水段分别处理的是连续的2个4x4子块。
3.根据权利要求1所述的流水设计方法,其特征在于,所述步骤2)、所述步骤3)中对应的每个流水段的开销为11个时钟周期。
4.一种解码器运动补偿模块的流水设计系统,其包括:参考数据读取、帧间插值、加权预测、数据重建4个子模块,其特征在于:其中,参考数据读取子模块:从运动补偿模块与前一级模块间的流水段间缓存中读回当前所需的参考块信息;
帧间插值子模块:将参考块信息输入到模块内的二维脉动阵列及插值滤波器阵列中,经过插值滤波计算后输出数据块预测值;
加权预测子模块:根据加权预测公式完成加权预测操作;
数据重建子模块:根据加权预测模块输出的加权预测数据块信息与残差信息恢复得到原始数据块信息;
运动补偿控制模块还包含流水控制模块,该流水控制模块与上述4个子模块相连用以控制各个子模块之间形成流水结构;
运动补偿模块数据输出至运动补偿模块与下一级模块间的流水段间缓存中。
5.根据权利要求4所述的流水设计系统,其特征在于,所述流水控制模块在运动补偿模块启动后,在插值模块完成参考数据输入时,将运动补偿模块划分为2个流水段:
在第一个流水段完成参考数据读取和帧间插值的数据输入的工作;在第二个流水段,完成帧间插值的数据输出、加权预测计算、数据重建的工作;在运动补偿模块启动后宏块0即第一个宏块的第一个流水段阶段工作以后到运动补偿模块结束前最后一个宏块进入第二流水段阶段前,2个流水段处于并行的工作状态。
6.根据权利要求5所述的流水设计系统,其特征在于,上述的2个流水段的划分是基于4x4子块作为最小处理单元,所述的处于并行工作状态的2个流水段分别处理的是连续的2个4x4子块。
7.根据权利要求4-6任一所述的流水设计系统,其特征在于,每个流水段的开销为11个时钟周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310390113.2A CN103458245B (zh) | 2013-08-30 | 2013-08-30 | 解码器运动补偿模块的流水设计方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310390113.2A CN103458245B (zh) | 2013-08-30 | 2013-08-30 | 解码器运动补偿模块的流水设计方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103458245A CN103458245A (zh) | 2013-12-18 |
CN103458245B true CN103458245B (zh) | 2016-12-28 |
Family
ID=49740144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310390113.2A Active CN103458245B (zh) | 2013-08-30 | 2013-08-30 | 解码器运动补偿模块的流水设计方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103458245B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113630601B (zh) * | 2021-06-29 | 2024-04-02 | 杭州未名信科科技有限公司 | 一种仿射运动估计方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1780402A (zh) * | 2004-11-17 | 2006-05-31 | 联合信源数字音视频技术(北京)有限公司 | 视频图像运动补偿装置 |
CN101888554A (zh) * | 2010-07-09 | 2010-11-17 | 西安交通大学 | 并行流水运动补偿滤波器vlsi结构设计方法 |
CN102550030A (zh) * | 2010-09-16 | 2012-07-04 | 松下电器产业株式会社 | 图像解码装置、图像编码装置、及其方法、程序、集成电路以及代码转换装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090010326A1 (en) * | 2007-07-05 | 2009-01-08 | Andreas Rossholm | Method and apparatus for parallel video decoding |
-
2013
- 2013-08-30 CN CN201310390113.2A patent/CN103458245B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1780402A (zh) * | 2004-11-17 | 2006-05-31 | 联合信源数字音视频技术(北京)有限公司 | 视频图像运动补偿装置 |
CN101888554A (zh) * | 2010-07-09 | 2010-11-17 | 西安交通大学 | 并行流水运动补偿滤波器vlsi结构设计方法 |
CN102550030A (zh) * | 2010-09-16 | 2012-07-04 | 松下电器产业株式会社 | 图像解码装置、图像编码装置、及其方法、程序、集成电路以及代码转换装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103458245A (zh) | 2013-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guo et al. | An optimized MC interpolation architecture for HEVC | |
CN102055981B (zh) | 用于视频编码器的去块滤波器及其实现方法 | |
CN102088603B (zh) | 用于视频编码器的熵编码器及其实现方法 | |
CN101854540B (zh) | 用于应用h.264视频编码标准的帧内预测方法及装置 | |
CN102572430B (zh) | 一种基于可重构技术的h.264去块滤波算法的实现方法 | |
CN102143361B (zh) | 一种视频编码方法和装置 | |
CN1589028B (zh) | 基于像素流水的帧内预测装置及预测方法 | |
CN101115207A (zh) | 基于预测点间相关性的帧内预测实现的方法及装置 | |
CN102932643B (zh) | 一种适用于hevc标准的扩展可变块运动估计电路 | |
Xu et al. | A power-efficient and self-adaptive prediction engine for H. 264/AVC decoding | |
CN103458245B (zh) | 解码器运动补偿模块的流水设计方法及系统 | |
CN102647595B (zh) | 一种基于avs的亚像素运动估计的装置 | |
CN102665080B (zh) | 用于移动补偿的电子装置及移动补偿方法 | |
CN101902643B (zh) | 并行阵列式帧内预测解码器vlsi结构设计方法 | |
CN102054107B (zh) | 集成电路下层硬件映射方法、时空图生成方法及装置 | |
CN101459839A (zh) | 去块效应滤波方法及实现该方法的装置 | |
CN103237211B (zh) | 一种基于fpga的视频亚像素亮度插值的方法及其装置 | |
CN100469146C (zh) | 视频图像运动补偿装置 | |
CN104754363A (zh) | 用于hevc的环路滤波方法及装置、编码器及解码器 | |
CN102572416B (zh) | 视频滤波方法及装置 | |
CN102129667B (zh) | 一种图像缩放方法 | |
JPH1155668A (ja) | 画像符号化装置 | |
CN106060565B (zh) | 一种应用于视频编解码的Planar预测电路及Planar预测方法 | |
CN102055980A (zh) | 用于视频编码器的帧内预测电路及其实现方法 | |
CN101646082B (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 | ||
CB02 | Change of applicant information |
Address after: 200125, Shanghai, Pudong New Area East Three Li Road Bridge, No. 1018, block B, building 8 HD Applicant after: Shanghai High Definition Digital Technology Industrial Co., Ltd. Address before: 200125 Shanghai East Road, Pudong New Area, No. three, No. 1018 Applicant before: Shanghai High Definition Digital Technology Industrial Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
DD01 | Delivery of document by public notice |
Addressee: Shanghai High Definition Digital Technology Industrial Co., Ltd. Document name: Notification of Approving Refund |