首页 / 专利库 / 视听技术与设备 / 视频编码层 / 一种视频编码的二维方向运动估计硬件电路及其方法

一种视频编码的二维方向运动估计硬件电路及其方法

阅读:231发布:2020-05-30

专利汇可以提供一种视频编码的二维方向运动估计硬件电路及其方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及视频压缩技术领域,提出了一种 视频编码 的二维方向快速 运动估计 硬件 电路 及其方法。本发明所提出的关键电路部件包括四组PE_G运算估计单元电路、参考 帧 缓存阵列、最小代价裁决电路和控制电路四大模 块 ,其核心是应用特殊的PE_G运算电路和参考帧缓存阵列相配合,实现搜索区域二维方向的左右和上下滑动运动估算,适用于多种不同类型搜索点的运动估计,包括但不限于四倍、两倍下 采样 搜索点以及原始整 像素 的运动估计过程。本发明特别适用于逐层渐进和全像素搜索的方式,支持4x4到16x16各种分块的运动估计,满足实时编码硬件电路的运动估算。,下面是一种视频编码的二维方向运动估计硬件电路及其方法专利的具体信息内容。

1.一种视频编码的二维方向快速运动估计硬件电路及其方法,其特征包括:
一个为上述运动估计硬件电路,能够实现在多种类型的搜索点区域进行二维方向(左右和上下滑动)的快速运动估计;
一个为上述运动估计硬件电路适用于逐层渐进式和全像素搜索的运动估计过程;
一个为上述运动估计硬件电路,具备通用性,适用于多种不同的分运动估计,支持但不限于4x4、4x8、8x4、8x8、16x8、8x16、16x16等分块的运动估计。
2.根据权利要求1所述的二维方向的快速运动估计硬件电路,其特征电路包括控制器模块、四组PE_G运动估算单元、参考缓存阵列模块和最小代价裁决模块,其核心电路为每个PE_G运动估算单元。
3.根据权利要求2所述的PE_G核心电路模块,其特征在于:每个PE_G运算模块由4x4的PE阵列组成的绝对值差电路和SAD加法树电路组成,PE_G输入包含三个部分组成,参考帧
4x8像素的输入、当前帧4x4块的输入以及PE_G控制电路dn_cmd信号,其中,通过控制模块发送dn_cmd信号的值,实现在搜索区域相同列的上下滑动运动估算。
4.根据权利要求2所述的参考帧缓存阵列模块,其特征在于:参考帧缓存阵列分为两组
4列12行的阵列,当四组PE_G运算单元组合为垂直方向列搜索时,四组PE_G并行的排列成一列进行运动估计,为实现二维方向的左右滑动,四列缓存寄存器采用移位寄存的方式进行,控制模块当完成一列搜索像素垂直方向的搜索时,缓存下一列到移位寄存器阵列中,整体移动实现左右滑动;当四组PE_G运算单元组合为两组正方形搜索方式时,可针对8x8块的搜索,此时缓存阵列单元的排列方式对应的正方形的方式进行运动估计;当四组PE_G用于正像素的全搜索时,参考帧缓存阵列通过多次读取参考像素块数据,重复多次完成一个大分块所有搜索像素的运动估计。
5.根据权利要求1所述的方法,实现多种不同分块的全像素运动估计,其特征在于:最小代价裁决电路根据搜索点类型进行最小代价运算,4倍下采样搜索点的以4x4下采样块像素作为每个最佳搜索点的最小代价块运算单元,2倍下采样搜索点以8x8下采样块像素作为每个最佳搜索点的最小代价块运算单元,而全像素搜索,分块的尺寸并非预先设定好,而是通过对每个搜索点所有分块类型(4x4、4x8、8x4、8x8、16x8、8x16、16x16等)的最小代价进行计算,再决定帧内的分块方式,我们利用PE_G这种硬件电路结构,首先计算的是每个最小
4x4分块所以搜索点的SAD值,最后运算累加的把不同位置的4x4块SAD结构相加作为4x8或者8x4块的SAD值,再把两个不同4x8或8x4的SAD值累加作为8x8块的SAD值,以此类推,讲所有的分块遍历出最小代价分块的类型,作为帧内预测的分块模式;在运动估算过程中,有些搜索点超出图像边界范围的,我们从控制电路输出无效的disable信号到最小代价裁决模块,简单的把当前搜索点作为无效搜索点处理。
6.根据权利要求1所述的方法,一种上述适用于逐层渐进式和全像素搜索的运动估计电路特征在于以下步骤:
步骤2-1:对原始参考帧平方向[-128,127]和垂直方向[-32,31]像素搜索区域进行4倍下采样,下采样的方法是对每个4x4块像素点的加权平均得到4倍下采样搜索点,此步骤在输入参考帧参考数据时同时进行,减少迭代时间;
步骤2-2:对步骤2-1中的4倍下采样搜索区域(大小为64x16)划分三种不同类别的搜索点,其类别特征在于不同的像素区域设置不同的水平和垂直步长,目的是根据与中心点的距离减少搜索点的数目,在4倍下采样区域进行运动搜索,流水的输入列数据到参考帧缓存阵列,配合控制模块的PE_G控制电路和参考帧缓存控制电路进行水平和垂直方向二维的快速运动估算滑动,得到三个区域中4倍下采样搜索的最佳搜索点的位置坐标和运动矢量
步骤2-3:对步骤2-2得到的最佳搜索点对应在原始参考帧搜索区域进行2倍下采样操作,搜索点以步骤2最佳搜索点中心拓展5x5大小,然后如步骤2-2对该区域进行5x5区域的二维快速滑动运动估算,得到最佳搜索点和运动矢量;
步骤2-4:对步骤2-3得到的最佳搜索点对应在原始参考帧搜索区域进行5x5的整像素运动搜索,以最佳搜索点中心拓展5x5大小进行二维快速滑动运动估算,得到最佳搜索点和运动矢量。

说明书全文

一种视频编码的二维方向运动估计硬件电路及其方法

技术领域

[0001] 本发明属于视频压缩技术领域,尤其涉及一种视频编码的二维方向快速运动估计硬件电路及其方法。

背景技术

[0002] 在数字多媒体领域,消费者对于视频“高分辨率、高率、高图像质量“的追求越来越大,但原始视频信号因其巨大的数据量,对视频系统有限的网络带宽和系统存储容量提出了巨大的挑战,因此,如何实时的传送或者解析视频信息,视频压缩技术起到不可或缺的作用。高质量、高效的视频压缩算法和硬件结构,越来越受业界的青睐。
[0003] 视频压缩技术的目的是在保持一定视觉质量的情况下,有效的去除视频数据的冗余信息。其中,去除空间和时间的冗余是视频压缩技术的主要手段。在去除时间冗余信息这方面,主要应用了运动估计(Motion Estimation,ME)来消除帧与帧之间的时域相关性,计算当前帧像素在参考帧中的绝对差值(the Sum of Absolute Difference,SAD),最终在参考帧搜索区域找到最佳匹配的分块。这样,在编码端只需要传输当前块与参考帧最佳匹配块的差值(再经过一系列的变换、量化、熵编码等步骤得到少量的比特数)和运动矢量(Motion Vector,MV),达到压缩的目的。
[0004] 运动估计作为视频编码的核心模块,也是视频压缩中最复杂的部件,其搜索算法和实现过程对编码压缩质量起到决定性的作用。目前,运动估计的大部分算法在软件层面有较好的性能,如三步、菱形等固定模式的快速搜索算法,以及逐次消元和局部失真等基于宏快时域和空域的搜索算法等。但这些算法在硬件实时系统中,由于结构复杂和存储需求,大多数都难以满足芯片面积、功耗、性能的需求。硬件实现中,全像素搜索和逐层渐进搜索(也称为分级搜索、金字塔搜索等)是一种适合硬件电路实现的方式。全像素搜索运算量巨大,在外部存储器带宽和内部存储器容量一定的条件下,如何选择合适的搜索区域大小,保证实时编码的处理速度和减低面积、功耗成本,这是一个较为困扰的难题。而逐层渐进搜索的方法,是对参考帧搜索区域像素进行下采样下采样采用不同的尺寸进行分层,一般是对块区域进行加权平均得到下采样点,然后再在这些分层上进行搜索,最终再在分层搜索点区域进行局部整像素全搜索,大大的增加了搜索的范围,但分层搜索如何合理的安排搜索的方式,保证搜索准确度和节省搜索时间,这是一个难点。

发明内容

[0005] 本发明提出了一种二维方向的快速运动估计硬件电路及其方法,其目的就是为了找到一种适用于渐进式搜索和全像素搜索的硬件电路和搜索方式,在满足实时编码视频质量的同时,有效的降低视频编码运动估计的运算复杂度。
[0006] 本发明解决其技术问题所采用的技术方案是:一种二维方向的快速运动估计硬件电路及其方法,所述的电路包括运动估计控制模块、四组PE_G运动估计电路、参考帧缓存阵列、当前帧部分块缓存阵列以及最小代价裁决模块。所述的运动估计方法步骤如下。
[0007] 步骤1:对原始参考帧平方向[-128,127]和垂直方向[-32,31]像素搜索区域进行4倍下采样,下采样的方法是对每个4x4块像素点的加权平均得到4倍下采样搜索点,此步骤在输入参考帧参考数据时同时进行,减少迭代时间。
[0008] 步骤2:对步骤1中的4倍下采样搜索区域64x16大小划分三种不同类别的搜索点:2.1 离中心点位置邻近的区域设置水平和垂直步骤为1;
2.2 离中心点较近的区域设置水平和垂直步长为2;
2.3 离中心点较远的左右边缘区域设置水平和垂直步长为4;
按照2.1-2.3步骤在4倍下采样区域进行运动搜索,流水的输入列数据到参考帧缓存阵列,配合控制模块的PE_G控制电路和参考帧缓存控制电路进行水平和垂直方向二维的快速运动估算滑动,得到三个区域中4倍下采样搜索的最佳搜索点的位置坐标和运动矢量。
[0009] 步骤3:对步骤2得到的最佳搜索点对应在原始参考帧搜索区域进行2倍下采样操作,搜索点以步骤2最佳搜索点中心拓展5x5大小,然后如步骤2对该区域进行5x5区域的二维快速滑动运动估算,得到最佳搜索点和运动矢量。
[0010] 步骤4:对步骤3得到的最佳搜索点对应到原始整像素的坐标位置,以该坐标位置为中心拓展5x5整像素搜索区域,在该区域进行整像素运动估算,得到最佳搜索点和运动矢量。
[0011] 对应如上所述的步骤1-4,本发明公开一种二维方向的快速运动估计硬件电路与之相配合,这种核心运算电路为4组PE_G电路,每个PE_G由4x4的像素PE阵列和一个加法树电路组成,PE_G电路的参考帧列像素输入到每个PE带垂直方向的5选1输入,每个PE参考像素相比垂直方向的上一个PE有一个像素的偏差,通过PE_G控制电路传输dn_cmd的值,进行垂直方向运动估计的滑动,而水平方向则通过控制模块对缓存阵列的控制输入。
[0012] 本发明的有益效果是:(1) 它用于多种不同模式的运动估计过程,模式包括不同倍率的下采样像素点的运动估计,以及局部全像素区域的整像素运动估计过程。
[0013] (2)它适用于多种不同尺度的矩形像素块运动估计,包括4x4、4x8、8x4、8x8、16x8、8x16、16x16等分块。
[0014] (3)配合控制模块对参考帧缓存阵列和四组估算单元PE_G的控制,能够实现搜索点在搜索区域的二维方向(左右和上下流动)快速运算。附图说明
[0015] 图1是本发明一种二维方向的快速运动估计硬件电路结构框图
[0016] 图2是本发明核心硬件电路模块PE_G的内部硬件示意图。
[0017] 图3是常用四倍下采样(4:1)搜索点类别示意图。
[0018] 图4是四倍下采样搜索中水平和垂直方向步进为1的运动估算过程。
[0019] 图5是四倍下采样搜索中水平和垂直方向步进为2的运动估算过程。
[0020] 图6是四倍下采样搜索中水平和垂直方向步进为4的运动估算过程。
[0021] 图7是四倍下采样搜索中4组PE_G运动估算过程示意。
[0022] 图8和图9是二倍下采样搜索(2:1),4组PE_G在5x5区域的运动估算示意图。
[0023] 图10是16x16第一个4x16区域整像素搜索,4组PE_G在5x5区域进行运动估算过程。
[0024] 图11是16x16第二个4x16区域整像素搜索,4组PE_G在5x5区域进行运动估算过程。

具体实施方式

[0025] 下面结合附图和实施例对本发明进一步说明。
[0026] 图1是本发明核心硬件电路的结构框图,它主要由五部分组成:(1)控制模块(101),它包含PE_G运算控制单元(102)和对参考帧缓存阵列的控制单元(103)。PE_G运算控制单元根据当前搜索点的类别(4倍下采样、2倍下采样、原始采样搜索点等),向PE_G流水的下发控制命令,包括PE_G的输出使能控制信号和PE_G运算单元的垂直步长信号。参考帧缓存阵列的控制信号主要是根据当前搜索点的类别,选择对应4x8大小的寄存器阵列流水的输入到对应的PE_G单元中去;
(2)运算估计电路单元PE_G(105和106)。通过控制信号,选择PE_G的运算组合,分别是四组PE_G垂直的进行运算估计,或者四个PE_G形成一个正方形的模式进行运算;
(3)参考帧缓存阵列(107和108),它主要由两组4x12的像素列寄存器组成,4列像素通过移位流水地输入。处于不同的搜索点类别,其输入缓存像素点有不同的选择。当搜索点为
4倍下采样或者原始整像素点时,其输入如图7所示;当输入为2倍下采样点时,其输入如图8所示;
(4)当前宏快输入块缓存阵列(109)。该模块由4个4x4的寄存器块组成,其输入块数据既可以是原始整像素点,也可以是下采样的输入点;
(5)最小代价裁决模块。该模块根据不同的搜索点类别,遍历所有的搜索点和计算最佳分块代价,最终输出当前最佳的运动矢量值。
[0027] 图2是每个PE_G的内部硬件电路图。包括4x4组的PE阵列(201)和每个像素点的SAD加法树电路(202)。每个像素的SAD运算是由16个PE阵列组成的,其电路的特别之处在于参考帧的输入参考点是mux 5选1得到,而且垂直方向的PE阵列的参考像素输入相比上一个PE有一个像素点的偏移,这样能够通过垂直方向dn_cmd控制信号整体上下流动去运算,dn_cmd控制信号的值能够实现不同的垂直步进跳跃,当整体运算完列方向的搜索点时,控制电路整体流水的向前推另一列参考数据,实现左右的流动。
[0028] 图3是常用4倍下采样搜索点的示意图,通过对原始数据每一个4x4进行加权平均的运算,得到一个4倍下采样的搜索点。为了有效的控制搜索的步进,我们常常根据当前搜索块的坐标位置,对搜索窗对应的下采样点进行分类,包括处于中心位置的搜索点区域(301)、次邻近中心位置的搜索点区域(302)、远离中心位置的搜索区域(303),它们的水平和垂直步长是不一致的(1/2/4多种步长),其起始置也是不一致,并且是左右对称的。
[0029] 图4示例的是301区域搜索点在当前PE_G中的垂直方向滑动过程,它的水平和垂直步进皆为1。401是第一个周期对搜索点r_0_c_0进行4x4的运动估算,此时dn_cmd=0; 402是第二个周期对搜索点r_1_c_0进行4x4的运动估算,此时dn_cmd=1; 403是第三个周期对搜索点r_2_c_0进行4x4的运动估算,此时dn_cmd=2; 404是第四个周期对搜索点r_3_c_0进行4x4的运动估算,此时dn_cmd=3; 405是第五个周期对搜索点r_4_c_0进行4x4的运动估算,此时dn_cmd=4。
[0030] 图5示例的是302区域搜索点在当前PE_G中的垂直方向滑动过程,它的水平和垂直步进皆为2。PE_G运算控制单元(102)每个周期对四组PE_G发送dn_cmd=0和dn_cmd=2的操作,实现垂直方向步进为2的流动,接着一列的搜索点水平移位输入到参考帧缓存列,此周期PE_G输出是“无效”状态,由控制器向“最小代价仲裁模块”发送disable信号,在此过程,参考帧缓存阵列控制单元(103)配合控制模块缓存参考帧数据输入,并且向PE_G阵列输入正确的数据。
[0031] 图6示例的是303区域搜索点在当前PE_G中的垂直方向滑动过程,它的水平和垂直步进皆为4,此处搜索点在搜索窗位置偏离中心较远,最佳运动估计点的概率较低,以4作为步长,可以有效的减少搜索的时间。第一个时间周期,PE_G对601虚线框内的4x4搜索点进行运动估计,第五个时间周期,PE_G对602虚线框的4x4搜索点进行运动估计,此时dn_cmd固定为2,代表搜索的起始位置在垂直方向为2的偏移。
[0032] 图7示例四组PE_G针对4倍下采样搜索点的搜索过程,其中701表示四组PE_G同时进行四个搜索点的运动估计,当进行垂直方向位移搜索时,控制电路通过发送dn_cmd信号来传递上下滑动偏移量。702和703表示当搜索点超出参考帧图像区域时,r_D_c_0搜索点实际不会进行搜索,此时控制电路模块会向“最小代价裁决模块”对应该组PE_G3发送无效信号。
[0033] 图8和图9示例四组PE_G在对2倍下采样搜素点进行运动估计的过程,此示例的搜索点如801灰体方块所示为5x5的区域,其中虚线框内的8x8区域(802,803,901,902)为四组PE_G正方形排布进行搜索的区域,搜索块的大小为8x8,下采样之后搜索区域为12x12,通过对PE_G和参考帧缓存阵列的控制,本发明能够在25个周期之内,快速的完成对这25个搜索点的运动估计。图8和图9是本发明的一个2倍下采样搜索的一个示例,但本发明电路不限于5x5的搜索点大小,也不限制与12x12的搜索区域,控制模块通过对PE_G和缓存阵列的重复读取数据,可实现大于此示例搜索点和搜索区域的运动估计。
[0034] 图10和图11为原始像素进行整像素运动估算的示例。示例对一个16x16搜索块进行运动估计,按照本发明公开的4组PE_G电路,需要重复四次操作。本发明可支持拓展PE_G的数目,重复次数将减少,加快运算时间。图10示例进行当前帧宏快“blk0,blk2,blk8,blkA”的搜索,其区域为第一个4x16块的运动估计。1001代表当前搜索点区域为5x5的大小,1002为四组PE_G在垂直方向进对r_0_0 r_0_4的搜索,总共花费25个周期完成对4x16当前~
块的25个搜索点搜索。PE_G控制模块输出dn_cmd=0 4的遍历,实现垂直方向5个搜索点的运~
动估算,下一个时钟周期对参考帧缓存阵列水平方向移位输入一列20个参考帧像素点,重复5个时钟周期的垂直方向。图11示例第二个4x16块的运动估计过程。如此重复四次,可完成一个16x16块的整像素搜索。
[0035] 本发明每组PE_G每个周期进行4x4搜索区域的SAD运算,控制电路根据搜索点的类别以及分别的大小,在“最小裁决模块”对每个搜索点进行SAD值进行累加,可完成对4x4、4x8、8x4、8x8、16x8、8x16、16x16等分块的运动估计。
[0036] 以上内容是结合4倍下采样搜索点的三种二维方向的步进类别(301,302,303)的运动估算,结合2倍下采样搜索点在5x5搜索区域的运动估算,以及 16x16整像素点在20x20区域内的运动估算这三种具体的优选实施方法对本发明进行详细阐述,不能认定本发明的具体实施只局限于上述说明的示例。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈