CN102932643B - 一种适用于hevc标准的扩展可变块运动估计电路 - Google Patents
一种适用于hevc标准的扩展可变块运动估计电路 Download PDFInfo
- Publication number
- CN102932643B CN102932643B CN201210457226.5A CN201210457226A CN102932643B CN 102932643 B CN102932643 B CN 102932643B CN 201210457226 A CN201210457226 A CN 201210457226A CN 102932643 B CN102932643 B CN 102932643B
- Authority
- CN
- China
- Prior art keywords
- array
- expansion
- cache
- module
- reference picture
- 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
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种适用于HEVC标准的扩展可变块运动估计电路,用于对系统内存中的图像数据进行压缩,所述的电路包括数据流控制模块、缓存阵列、PE阵列、加法树模块和扩展计算模块,所述的数据流控制模块的输入端与系统内存的图像数据端口连接,输出端依次连接缓存阵列、PE阵列、加法树模块和扩展计算模块。与现有技术相比,本发明具有硬件资源消耗少、计算量小等优点。
Description
技术领域
本发明涉及一种数字视频处理技术,尤其是涉及一种适用于HEVC标准的扩展可变块运动估计电路。
背景技术
数字视频传输的图像数据中往往存在着大量的冗余数据,如果可以将那些冗余数据除去,从而可以大大减少数据的传输量。运动估计(MotionEstimation,简称ME)通过消除运动图像中时间域的相关性,计算两帧之间的参考帧的绝对差值(theSumofAbsoluteDifference,简称SAD),由于两帧之间的差可以用比帧内编码少得多的比特数来编码,从而达到压缩图像的目的。运动补偿(MotionCompensation,简称MC)利用先前图像和运动估计的结果来预测、补偿当前的图像。
由于视频图像是位于时间轴区间内的一组连续画面,因此相邻帧间的变化量一般很小,仅是运动物体的空间位置略有移动。因此运动估计和运动补偿技术是去除大量冗余的有效方法。
运动估计作为视频编码器的核心部件,也是视频压缩中的最复杂的部分,对视频图像的编码压缩质量起到决定性的作用。在运动估计的研究中,人们针对不同应用提出了多种不同的方案;在这些方案中,最为经典且具有实用性的为全搜索块匹配(FullSearchBlockMatchingAlgorithm,简称FSBM)。
全搜索块匹配是指,将图像中的一帧的搜索区域划分成许多互不重叠的16×16像素宏块(Macro-Block,简称MB)之后,每一宏块与相邻帧搜索区域的所有块的像素值进行比较匹配来得到最佳匹配块,即具有与当前块比较匹配后拥有最小SAD值的块。所得的匹配块与当前块的相对位移称为运动矢量(MotionVector,简称MV)。视频压缩编码时,仅对运动矢量压缩即可。
基于宏块的全搜索块匹配运动估计结构简单,易于硬件实现,硬件电路结构整齐,并且可重复性高,易于扩展,并能够得到全局最优的运动矢量,因此被广泛应用于各种视频编码标准中。该种运动估计方法的最大缺点是运算量较大。
在基于宏块的运动估计的基础上,人们又引入基于可变块的运动估计。与基于宏块的运动估计不同,在可变块运动估计中,进行运动估计的块除了包括16×16像素的宏块外,还包括4×4、4×8、8×4、8×8、8×16、16×8等不同大小的块。通过采用不同大小的块进行运动估计,可以有效地压缩视频图像的时间冗余,因而可变块运动估计被广泛应用到H.264、AVS等视频压缩标准中。
当前正在制定的新一代视频压缩标准——HEVC标准,是在H.264/AVChighprofile的基础上,压缩效率提高一倍。即在保证相同视频图像质量的前提下,视频流的码率减少50%。因此需要提出新的运动估计来满足新标准的要求。扩展可变块运动估计中,进行运动估计的块包括4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64像素这些大小不同的块。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种硬件资源消耗少、计算量小的适用于HEVC标准的扩展可变块运动估计电路。
本发明的目的可以通过以下技术方案来实现:
一种适用于HEVC标准的扩展可变块运动估计电路,用于对系统内存中的图像数据进行压缩,所述的电路包括数据流控制模块、缓存阵列、PE阵列、加法树模块和扩展计算模块,所述的数据流控制模块的输入端与系统内存的图像数据端口连接,输出端依次连接缓存阵列、PE阵列、加法树模块和扩展计算模块;
数据流控制模块从系统内存的图像数据端口载入当前图像与参考图像,并输出给缓存阵列,缓存阵列将当前图像与参考图像分别传输给PE阵列,PE阵列对接收到的信息进行运动估计计算,并将计算结果传输给加法树模块,加法树模块根据PE阵列输出的计算结果进行求和计算,得到32×32大小以下的各可变块的SAD值,扩展计算模块根据加法树模块的计算结果得到大于32×32大小的各可变块的SAD值。
所述的数据流控制模块包括系统内存访问控制单元、本地内存读写控制单元和本地内存,所述的本地内存的输入端口与系统内存的图像数据端口相连接,所述的本地内存读写控制单元与本地内存的控制端口相连接;
系统内存访问控制单元生成当前图像与参考图像的地址,本地内存读写控制单元生成控制信号控制本地内存的输入端口打开,将当前图像与参考图像的像素数据载入本地内存中,同时本地内存读写控制单元生成控制信号将当前图像分割成32×32大小的块。
所述的缓存阵列包括第一缓存阵列、第二缓存阵列和第三缓存阵列,所述的第一缓存阵列的输入与数据流控制模块连接,输出与PE阵列连接,所述的第二缓存阵列与PE阵列相互连接,所述的第三缓存阵列的输入与数据流控制模块连接,输出分别与PE阵列、第二缓存阵列连接;
其中,所述的第一缓存阵列包括32×32个寄存器,其输入端接收当前图像的数据,输出端将当前图像数据传输给PE阵列;所述的第二缓存阵列包括32×3个寄存器,其输入端接收参考图像的数据,输出端与PE阵列进行数据交换;所述的第三缓存阵列包括32×4个寄存器+35个寄存器,其输入端接收参考图像的数据,输出端分别向PE阵列和第二缓存阵列传输参考图像的数据。
所述的PE阵列由32×32个基本PE单元组成,构成一个矩阵。
所述的基本PE单元包括当前图像寄存器、参考图像寄存器和最小距离计算电路,所述的最小距离计算电路分别连接当前图像寄存器和参考图像寄存器。
所述的扩展计算模块包括扩展控制单元、扩展本地内存和扩展加法树单元,所述的扩展本地内存和扩展加法树单元均与加法树模块连接,所述的扩展本地内存分别连接扩展控制单元和扩展加法树单元;
扩展控制单元生成控制信号控制扩展本地内存读取并写入加法树模块中16×32和32×16大小的块的SAD值,扩展加法树单元根据扩展本地内存中的SAD值,计算出大于32×32大小的各可变块的SAD值。
与现有技术相比,本发明具有以下优点:
1)本发明将系统内存中的当前图像与参考图像的数据加载到本发明电路中,有效减少了总线的占用率,减少硬件资源消耗;
2)本发明采用32×32的PE阵列,可完成从4×4到64×64的各种可变块的SAD运算,且运算量小。
附图说明
图1为本发明的结构示意图;
图2为本发明本地内存中的当前图像读取顺序示意图;
图3为本发明中基本PE单元的结构示意图;
图4为SAD4×4的加法树示意图;
图5为加法树整体运算示意图。
具体实施方式
下面结合附图对本发明的实施作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实施例。
实施例
如图1所示,一种适用于HEVC标准的扩展可变块运动估计电路,用于对系统内存中的图像数据进行压缩,该电路包括数据流控制模块1、缓存阵列、PE阵列3、加法树模块4和扩展计算模块5,所述的数据流控制模块1的输入端与系统内存的图像数据端口连接,输出端依次连接缓存阵列、PE阵列3、加法树模块4和扩展计算模块5;存在数据交流。数据流控制模块1载入当前图像与参考图像,并输出给缓存阵列,缓存阵列将当前图像与参考图像分别传输给PE阵列3,PE阵列3对接收到的信息进行运动估计计算,加法树模块4根据PE阵列的输出产生32×32以下大小的SAD值并输出,同时,加法树模块4的部分结果连接到扩展计算模块5,扩展计算模块5产生大于32×32的SAD值并输出,从而完成从4×4到64×64的各种可变块的SAD运算。
数据流控制模块1包括系统内存访问控制单元11、本地内存读写控制单元12和本地内存13,所述的本地内存13的输入端口与系统内存的图像数据端口相连接,所述的本地内存读写控制单元12与本地内存13的控制端口相连接。系统内存访问控制单元11生成当前图像与参考图像的地址,本地内存读写控制单元12生成控制信号控制本地内存13的输入端口打开,将当前图像与参考图像的像素数据载入本地内存13中,同时本地内存读写控制单元12生成控制信号将当前图像分割成32×32大小的块。
缓存阵列包括第一缓存阵列21、第二缓存阵列22和第三缓存阵列23,所述的第一缓存阵列21的输入与数据流控制模块1连接,输出与PE阵列3连接,所述的第二缓存阵列22与PE阵列3相互连接,所述的第三缓存阵列23的输入与数据流控制模块1连接,输出分别与PE阵列2、第二缓存阵列22连接。
其中,第一缓存阵列21包括32×32个寄存器,其输入端接收当前图像的数据,输出端将当前图像数据传输给PE阵列3,当PE阵列中的当前图像数据块的运动估计计算完成后,第一缓存阵列中的数据就被加载进了PE阵列。第二缓存阵列22包括32×3个寄存器,其输入端接收参考图像的数据,输出端与PE阵列3进行数据交换,PE阵列中的参考图像数据与第二缓存阵列一起组成了参考图像阵列,通过整个参考图像阵列的左右的移动,PE阵列便能计算出不同的运动估计信息。第三缓存阵列23包括32×4个寄存器+35个寄存器,其输入端接收参考图像的数据,输出端分别向PE阵列3和第二缓存阵列22传输参考图像的数据;其中的35个寄存器不断从本地内存中加载参考图像的数据,之后数据便由PE阵列和第二缓存阵列的上方或者下方进入,使得参考图像阵列实现上下的移动;其余的32×4个寄存器同样从本地内存中加载参考图像的数据,其目的是为了加快PE阵列的运动速度,使得PE阵列的运算速度跟快。
如图2所示,分割完的32x32块当前图像数据按照分组,从第一组,第二组直到最后一组依次从本地内存13中读出,存入第一缓存阵列。在每一组中,当前图像块按图箭头的顺序写入第一缓存阵列21。与此同时,对应于当前图像块的64x64参考图像块(参考图像块的第一像素的坐标与当前图像块的第一像素的坐标相同)也逐步写入第三缓存阵列23。
PE阵列3由32×32个基本PE单元组成,构成一个矩阵。如图3所示,基本PE单元包括当前图像寄存器、参考图像寄存器和最小距离计算电路,所述的最小距离计算电路分别连接当前图像寄存器和参考图像寄存器。每个基本PE单元可以从第一缓存阵列中接收当前图像的一个像素,并存入当前图像寄存器(Reg1),同时从上下左右相邻的基本PE单元接收参考图像的一个像素,并参考图像寄存器(Reg2),其中,最左侧的基本PE单元左输入端口与第二缓存阵列的最右端相连接,最右侧的基本PE单元的右输入端口与第二缓存阵列的最左端相连接,最上方的基本PE单元的上输入端口以及最下方的基本PE单元的下输入端口与第三缓存阵列相连。最小距离计算电路对Reg1和Reg2进行如下运算|Reg1-Reg2|,并且输出运算结果。基本PE单元完成搜索区域的当前图像与参考图像的数据部分的差的绝对值,参考图像的数据可以在PE阵列与缓存阵列相互横向与纵向的移动。
加法树模块4将PE阵列3的输出值相加,得到不同大小块的SAD值。例如SAD4×4便是4×4个基本PE单元输出结果之和,其硬件结构如图4所示。图5展示了加法树整体的结构。通过加法树,所有小于等于32x32的SAD值都能被计算出来,并且输出各个SAD值。加法树模块4运算时是将多个需要叠加的值两两分组相加后,再两两分组相加,直到得出最后结果。加法树可以得到不到大小的SAD值。
扩展计算模块5包括扩展控制单元51、扩展本地内存52和扩展加法树单元53,所述的扩展本地内存52和扩展加法树单元53均与加法树模块4连接,所述的扩展本地内存52分别连接扩展控制单元51和扩展加法树单元53;扩展控制单元51生成控制信号控制扩展本地内存52读取并写入加法树模块4中16×32和32×16大小的块的SAD值,扩展加法树单元53根据扩展本地内存52中的SAD值,计算出32×64、64×32、48×64、64×48以及64×64的SAD值,并且输出得到的SAD信。
Claims (4)
1.一种适用于HEVC标准的扩展可变块运动估计电路,用于对系统内存中的图像数据进行压缩,其特征在于,所述的电路包括数据流控制模块、缓存阵列、PE阵列、加法树模块和扩展计算模块,所述的数据流控制模块的输入端与系统内存的图像数据端口连接,输出端依次连接缓存阵列、PE阵列、加法树模块和扩展计算模块;所述的PE阵列由32×32个基本PE单元组成,构成一个矩阵;
数据流控制模块从系统内存的图像数据端口载入当前图像与参考图像,并输出给缓存阵列,缓存阵列将当前图像与参考图像分别传输给PE阵列,PE阵列对接收到的信息进行运动估计计算,并将计算结果传输给加法树模块,加法树模块根据PE阵列输出的计算结果进行求和计算,得到32×32大小以下的各可变块的SAD值,扩展计算模块根据加法树模块的计算结果得到大于32×32大小的各可变块的SAD值;
所述的缓存阵列包括第一缓存阵列、第二缓存阵列和第三缓存阵列,所述的第一缓存阵列的输入与数据流控制模块连接,输出与PE阵列连接,所述的第二缓存阵列与PE阵列相互连接,所述的第三缓存阵列的输入与数据流控制模块连接,输出分别与PE阵列、第二缓存阵列连接;
其中,所述的第一缓存阵列包括32×32个寄存器,其输入端接收当前图像的数据,输出端将当前图像数据传输给PE阵列;所述的第二缓存阵列包括32×3个寄存器,其输入端接收参考图像的数据,输出端与PE阵列进行数据交换;所述的第三缓存阵列包括32×4个寄存器+35个寄存器,其输入端接收参考图像的数据,输出端分别向PE阵列和第二缓存阵列传输参考图像的数据。
2.根据权利要求1所述的一种适用于HEVC标准的扩展可变块运动估计电路,其特征在于,所述的数据流控制模块包括系统内存访问控制单元、本地内存读写控制单元和本地内存,所述的本地内存的输入端口与系统内存的图像数据端口相连接,所述的本地内存读写控制单元与本地内存的控制端口相连接;
系统内存访问控制单元生成当前图像与参考图像的地址,本地内存读写控制单元生成控制信号控制本地内存的输入端口打开,将当前图像与参考图像的像素数据载入本地内存中,同时本地内存读写控制单元生成控制信号将当前图像分割成32×32大小的块。
3.根据权利要求1所述的一种适用于HEVC标准的扩展可变块运动估计电路,其特征在于,所述的基本PE单元包括当前图像寄存器、参考图像寄存器和最小距离计算电路,所述的最小距离计算电路分别连接当前图像寄存器和参考图像寄存器。
4.根据权利要求1所述的一种适用于HEVC标准的扩展可变块运动估计电路,其特征在于,所述的扩展计算模块包括扩展控制单元、扩展本地内存和扩展加法树单元,所述的扩展本地内存和扩展加法树单元均与加法树模块连接,所述的扩展本地内存分别连接扩展控制单元和扩展加法树单元;
扩展控制单元生成控制信号控制扩展本地内存读取并写入加法树模块中16×32和32×16大小的块的SAD值,扩展加法树单元根据扩展本地内存中的SAD值,计算出大于32×32大小的各可变块的SAD值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210457226.5A CN102932643B (zh) | 2012-11-14 | 2012-11-14 | 一种适用于hevc标准的扩展可变块运动估计电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210457226.5A CN102932643B (zh) | 2012-11-14 | 2012-11-14 | 一种适用于hevc标准的扩展可变块运动估计电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102932643A CN102932643A (zh) | 2013-02-13 |
CN102932643B true CN102932643B (zh) | 2016-02-10 |
Family
ID=47647328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210457226.5A Expired - Fee Related CN102932643B (zh) | 2012-11-14 | 2012-11-14 | 一种适用于hevc标准的扩展可变块运动估计电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102932643B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104159123B (zh) * | 2014-08-11 | 2017-04-12 | 哈尔滨工业大学深圳研究生院 | 一种适合于硬件实现的hevc运动估计方法 |
CN105578189B (zh) * | 2015-12-27 | 2018-05-25 | 西安邮电大学 | 基于不对称划分模式的高效视频编码加法树并行实现方法 |
CN105847810B (zh) * | 2016-01-29 | 2018-08-21 | 西安邮电大学 | 一种高效视频编码加法树并行实现方法 |
CN105847828B (zh) * | 2016-01-29 | 2019-02-05 | 西安邮电大学 | 一种用于整数运动估计的参考块像素更新并行实现方法 |
CN107948647A (zh) * | 2017-11-23 | 2018-04-20 | 上海交通大学 | 一种针对超高清视频应用的分层运动估计电路 |
CN110213592B (zh) * | 2019-06-21 | 2021-04-09 | 山东大学 | 适用于hevc标准中运动估计的电路及其工作方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1933600A (zh) * | 2006-09-08 | 2007-03-21 | 清华大学 | 用于h.264/avc编码器的运动估计方法 |
CN1946178A (zh) * | 2006-10-20 | 2007-04-11 | 西安交通大学 | 一种用于运动估计的vlsi装置及运动估计的方法 |
CN101227611A (zh) * | 2008-01-31 | 2008-07-23 | 上海广电(集团)有限公司中央研究院 | 一种基于avs的运动估计装置及搜索方法 |
CN101945289A (zh) * | 2010-10-22 | 2011-01-12 | 上海交通大学 | 全搜索扩展可变块运动估计电路 |
CN102263947A (zh) * | 2010-05-27 | 2011-11-30 | 香港科技大学 | 图像运动估计的方法及系统 |
-
2012
- 2012-11-14 CN CN201210457226.5A patent/CN102932643B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1933600A (zh) * | 2006-09-08 | 2007-03-21 | 清华大学 | 用于h.264/avc编码器的运动估计方法 |
CN1946178A (zh) * | 2006-10-20 | 2007-04-11 | 西安交通大学 | 一种用于运动估计的vlsi装置及运动估计的方法 |
CN101227611A (zh) * | 2008-01-31 | 2008-07-23 | 上海广电(集团)有限公司中央研究院 | 一种基于avs的运动估计装置及搜索方法 |
CN102263947A (zh) * | 2010-05-27 | 2011-11-30 | 香港科技大学 | 图像运动估计的方法及系统 |
CN101945289A (zh) * | 2010-10-22 | 2011-01-12 | 上海交通大学 | 全搜索扩展可变块运动估计电路 |
Non-Patent Citations (2)
Title |
---|
《VLSI architecture design forreconfigurable block size motion Estimation》;Peng Li,etal;《ICCE,2010》;20101231;全文 * |
《一种可变块运动估计结构的优化设计》;金涛 等;《微型电脑应用》;20081231;第24卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102932643A (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102932643B (zh) | 一种适用于hevc标准的扩展可变块运动估计电路 | |
US9392292B2 (en) | Parallel encoding of bypass binary symbols in CABAC encoder | |
CN102547296B (zh) | 移动估计加速电路、移动估计方法及环路滤波加速电路 | |
CN101330617B (zh) | 基于模式映射的多标准帧内预测器的硬件实现方法及装置 | |
CN101729893B (zh) | 基于软硬件协同处理的mpeg多格式兼容解码方法及其装置 | |
CN102572430B (zh) | 一种基于可重构技术的h.264去块滤波算法的实现方法 | |
CN1703094B (zh) | 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 | |
CN1589028B (zh) | 基于像素流水的帧内预测装置及预测方法 | |
CN111327901B (zh) | 视频编码方法、装置、存储介质及编码设备 | |
CN101146222A (zh) | 视频系统的运动估计内核 | |
Kao et al. | A memory-efficient and highly parallel architecture for variable block size integer motion estimation in H. 264/AVC | |
CN101951521B (zh) | 针对扩展可变块的视频图像运动估计方法 | |
CN103975583A (zh) | 捕获多个视频通道用于视频分析和编码 | |
CN101902643B (zh) | 并行阵列式帧内预测解码器vlsi结构设计方法 | |
CN101227611A (zh) | 一种基于avs的运动估计装置及搜索方法 | |
CN101141559A (zh) | 串行输入并行输出的视频图像亮度插值的方法和装置 | |
CN100469146C (zh) | 视频图像运动补偿装置 | |
Jilani et al. | JPEG image compression using FPGA with Artificial Neural Networks | |
CN101945289B (zh) | 全搜索扩展可变块运动估计电路 | |
CN101500168B (zh) | 一种图像亮度1/3插值装置 | |
CN102420989A (zh) | 帧内预测方法和装置 | |
CN104683812B (zh) | 用于移动估计的视频预处理方法与装置 | |
CN104011655A (zh) | 管芯上/管芯外存储器管理 | |
CN102215404B (zh) | 嵌入式系统中视频的解码方法和系统 | |
Taşdizen et al. | High performance hardware architectures for a hexagon-based motion estimation algorithm |
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 |
Granted publication date: 20160210 Termination date: 20181114 |
|
CF01 | Termination of patent right due to non-payment of annual fee |