一种针对超高清视频应用的分层运动估计电路的制作方法

文档序号:14216484阅读:147来源:国知局

本发明涉及视频编解码技术领域,尤其涉及一种针对超高清视频应用的分层运动估计电路。



背景技术:

高效视频编码(highefficiencyvideocoding,hevc)是视频编码专家组和运动图像专家组联合制定的新一代视频编码标准,主要用于在保证视频质量的前提下,提高压缩率,降低网络带宽;由于它支持编码的视频尺寸更大,编码的控制过程更精细,因此广泛应用于对视频要求更高的场合,如:超高清视频的编码技术。其中,运动估计模块的获取是高效视频编码技术的一个重要环节。

运动估计模块的获取是指获得当前帧预测单元(predictionunit,pu)关于参考帧图像的运动向量,然后通过参考帧图像的运动向量及当前帧图像残差值,还原出当前帧的图像。

其中,现有技术中运动估计模块的实现主要采用六边形搜索方法组成的运动估计电路,从而确定参考帧图像的运动向量,首先选取当前pu块左上角的点作为运动向量的起始点,在起始点周围确定搜索范围,在搜索范围内采用大六边形模板进行搜索,获取所有的参考帧缓存数据和当前帧缓存数据,并在计算单元中计算搜索范围内搜索像素点的残差值,选取残差值最小的搜索点作为下一次搜索的起始点,依次对所述残差值进行计算,直到得到残差值的最优点,进而确定出运动向量。

在实现本发明的过程中,发明人发现现有运动估计电路至少存在如下技术问题:

运动估计电路的像素点搜索范围太大,计算复杂度高、搜索精度较差。



技术实现要素:

本发明提供的针对超高清视频应用的分层运动估计电路,能够在视频质量损失程度可以接受的条件下,大大降低运动向量的计算复杂度、提高搜索精度。

第一方面,本发明提供一种针对超高清视频应用的分层运动估计电路,包括:第一层运动估计模块及第二层运动估计模块,其中,

所述第一层运动估计模块,用于获取第一搜索区域内参考帧缓存数据及当前帧缓存数据,并对所述参考帧缓存数据及当前帧缓存数据进行处理,获取残差值最小的采样点,并发送至所述第二层运动估计模块;

所述第二层运动估计模块,用于获取所述残差值最小的采样点,并在以所述残差值最小的采样点为中心的第二搜索区域内进行六边形搜索,获取所述第二搜索区域内残差值最小的采样点。

可选地,所述第一层运动估计模块包括:参考帧缓存阵列、数据流总控制模块、循环移位模块、pe阵列、sad累加模块、大pu块sad缓存阵列及输出比较器,其中,

所述参考帧缓存阵列的第一端与所述数据流总控制模块相连,用于接收所述数据流总控制模块发送的第一搜索区域信息,根据所述第一搜索区域信息获取并保存所述第一搜索区域内的参考帧数据,以及将所述参考帧数据以地址单元为单位依次发送给所述循环移位模块;

所述循环移位模块的第一端与所述参考帧缓存阵列的第二端相连,用于依次接收所述参考帧缓存阵列发送的地址单元数据信息,并将所述地址单元数据信息以像素点为单位依次发送给所述pe阵列;

所述pe阵列的第一端与所述循环移位模块以及数据流总控制模块相连,用于接收所述数据流总控制模块发送的当前块位置信息,根据所述当前块位置信息获取并保存所述当前块位置信息的当前帧数据,以及根据所述接收到的像素点信息及当前帧数据确定各个像素点的残差值;

所述sad累加模块的第一端与所述数据流总控制模块、所述pe阵列以及大pu块sad缓存阵列相连,用于接收所述数据流总控制模块发送的控制信息及各个像素点的残差值信息,并根据所述控制信息对所述像素点的残差值进行累加获得m点残差值;

所述输出比较器的第一端与所述sad累加模块的第二端,以及所述数据流总控制模块相连,用于接收所述m点残差值并对所述m点残差值进行对比,以及确定出最优采样点;

所述大pu块sad缓存阵列的第一端与所述数据流总控制模块相连,所述大pu块sad缓存阵列的第二端与所述sad累加模块相连,用于将所述缓存到的pu块的像素点信息发送给所述sad累加模块;

所述数据流总控制模块,用于控制所述参考帧缓存阵列、所述pe阵列的搜索范围,以及控制所述大pu块sad缓存阵列、所述输出比较器模块的读写操作。

可选地,所述第二层运动估计模块包括:控制器、参考帧缓存单元、当前帧缓存单元、至少一个处理单元、输出比较器,其中,

所述控制器的第一端与所述输出比较器的第二端相连,用于接收所述第一层运动估计模块输出的所述最优采样点信息,并在所述最优采样点信息周围确定所述第二搜索区域;

所述参考帧缓存单元的第一端与所述控制器的第二端相连,用于接收所述控制器发送的第二搜索区域信息,同时,获取并保存所述第二搜索区域内的参考帧数据;

所述当前帧缓存单元的第一端与所述控制器的第二端相连,用于接收所述控制器发送的第二搜索区域信息,同时,获取并保存所述第二搜索区域内的当前帧数据;

所述至少一个处理单元的第一端与所述参考帧缓存单元的第二端,以及所述当前帧缓存单元的第二端相连,接收所述参考帧数据和所述当前帧数据并计算所述第二搜索区域所有点的残差值;

所述输出比较器的第一端与所述至少一个处理单元的第二端相连,用于确定出所述第二搜索区域内残差值最优点。

可选地,所述参考帧缓存阵列由32个随机存取存储器构成。

可选地,所述pe阵列是由32×32个基本pe单元组成的矩阵。

可选地,所述sad累加模块由加法树模块和大pu块累加模块两个子模块构成。

可选地,所述加法树模块的第一端与所述pe阵列的第二端相连,用于从所述pe阵列中获得32×32个残差值,并按照所述数据流总控制模块发送的的控制信息对所述32×32个残差值进行累加得到m点残差值。

可选地,所述输出比较器还用于对所述m点残差值的大小进行对比,以残差值最小的点作为所述最优采样点。

本发明提供的针对超高清视频应用的分层运动估计电路,通过在搜索区域内利用第一层运动估计模块和第二层运动估计模块进行采样点搜索,同时,在第一层运动估计模块中对核心区域采用全采样进行搜索,非核心区域采用降采样进行搜索,能够在视频质量损失程度可以接受的条件下,大大降低运动向量的计算复杂度、提高搜索精度。

附图说明

图1为本发明一实施例针对超高清视频应用的分层运动估计电路的结构示意图;

图2为本发明一实施例第一层运动估计模块的结构图;

图3为本发明一实施例第一层运动估计模块11中参考帧缓存阵列结构图;

图4为本发明一实施例第一层运动估计模块11中pe阵列的像素数据流动图;

图5为本发明一实施例第二层运动估计模块的结构图;

图6为本发明一实施例图2中pe阵列114的pe单元的结构图;

图7为本发明一实施例加法树模块的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种针对超高清视频应用的分层运动估计电路,如图1所示,所述电路包括:第一层运动估计模块11及第二层运动估计模块12,其中,

所述第一层运动估计模块11,用于获取第一搜索区域内参考帧缓存数据及当前帧缓存数据,并对所述参考帧缓存数据及当前帧缓存数据进行处理,获取残差值最小的采样点,并发送至第二层运动估计模块;

所述第二层运动估计模块12,用于获取所述残差值最小的采样点,并在以所述残差值最小的采样点为中心的第二搜索区域进行六边形搜索,获取所述第二搜索区域内残差值最小的采样点。

可选地,所述第一搜索区域及第二搜索区域的大小由系统配置决定。

本发明实施例提供的针对超高清视频应用的分层运动估计电路,通过在搜索区域内利用第一层运动估计模块和第二层运动估计模块进行采样点搜索,同时,在第一层运动估计模块中对核心区域采用全采样进行搜索,非核心区域采用降采样进行搜索,能够在视频质量损失程度可以接受的条件下,大大降低运动向量的计算复杂度、提高搜索精度。

可选地,如图2所示,所述第一层运动估计模块11包括:参考帧缓存阵列111、数据流总控制模块112、循环移位模块113、pe阵列114、sad累加模块115、大pu块sad缓存阵列116及输出比较器117,其中,

所述参考帧缓存阵列111的第一端与所述数据流总控制模块112相连,用于接收所述数据流总控制模块112发送的第一搜索区域信息,根据所述第一搜索区域信息获取并保存所述第一搜索区域内的参考帧数据,以及将所述参考帧数据以地址单元为单位依次发送给所述循环移位模块113;

可选地,如图3所示,为所述参考帧缓存阵列结构图,其中,

所述参考帧缓存阵列由32个ram构成,参考帧缓存阵列存储了192×128个参考帧像素,排列的顺序为:参考帧的前32列数据依次存储在32个ram中,后32列数据存储在之前存储位置的后方。

所述循环移位模块113的第一端与所述参考帧缓存阵列111的第二端相连,用于依次接收所述参考帧缓存阵列111发送的地址单元数据信息,并将所述地址单元数据信息以像素点为单位依次发送给所述pe阵列114;

所述pe阵列114的第一端与所述循环移位模块113以及数据流总控制模块112相连,用于接收所述数据流总控制模块112发送的第一搜索区域信息,根据所述第一搜索区域信息获取并保存所述第一搜索区域内的当前帧数据,以及根据所述接收到的像素点信息及当前帧数据确定各个像素点的残差值;

可选地,如图4所示,为所述pe阵列的像素数据流动图,其中,每个pe单元有两个像素输入,一个来自于上方相邻的pe单元,另一个来自于上方隔8行的pe单元,同时输出的像素也输出到下方相邻的pe单元以及下方隔8行的pe单元,可以同时实现读入并且传递1行32列数据或者8行32列数据。

所述sad累加模块115的第一端与所述数据流总控制模块112、所述pe阵列114以及大pu块sad缓存阵列116相连,用于接收所述数据流总控制模块112发送的控制信息及各个像素点的残差值信息,并根据所述控制信息对所述像素点的残差值进行累加获得m点残差值;

所述输出比较器117的第一端与所述sad累加模块115的第二端,以及所述数据流总控制模块112相连,用于接收所述m点残差值并对所述m点残差值进行对比,以及确定出最优采样点;

所述大pu块sad缓存阵列116的第一端与所述数据流总控制模块112相连,所述大pu块sad缓存阵列116的第二端与所述sad累加模块115相连,用于将所述缓存到的pu块的像素点信息发送给所述sad累加模块115;

所述数据流总控制模块112,用于控制所述参考帧缓存阵列111、所述pe阵列114的搜索范围,以及控制所述大pu块sad缓存阵列116、所述输出比较器117的读写操作。

可选地,如图5所示,为所述第二层运动估计模块的结构图,其中,所述第二层运动估计模块12包括:控制器121、参考帧缓存单元122、当前帧缓存单元123、至少一个处理单元124、输出比较器125,其中,

所述控制器121的第一端与所述输出比较器124的第二端相连,用于接收所述第一层运动估计模块11输出的所述最优采样点信息,并在所述最优采样点信息周围确定所述第二搜索区域;

所述参考帧缓存单元123的第一端与所述控制器121的第二端相连,用于接收所述控制器121发送的第二搜索区域信息,同时,获取并保存所述第二搜索区域内的参考帧数据;

所述当前帧缓存单元123的第一端与所述控制器121的第二端相连,用于接收所述控制器121发送的第二搜索区域信息,同时,获取并保存所述第二搜索区域内的当前帧数据;

所述至少一个处理单元124的第一端与所述参考帧缓存单元122的第二端,以及所述当前帧缓存单元123的第二端相连,接收所述参考帧数据和所述当前帧数据并计算所述第二搜索区域所有点的残差值;

所述输出比较器125的第一端与所述至少一个处理单元的第二端相连,用于确定出所述第二搜索区域内残差值最优点。

可选地,所述参考帧缓存阵列12由32个随机存取存储器构成。

可选地,所述pe阵列114是由32×32个基本pe单元组成的矩阵。

可选地,如图6所示,为pe单元的结构图,其中,每个pe单元的内部包含8个当前帧像素寄存器、1个参考帧像素寄存器和1个残差值计算模块,其中8个当前帧像素寄存器用于缓存当前像素,寄存器1、寄存器2、寄存器3和寄存器4寄存当前块的四个子块的像素,寄存器5、寄存器6、寄存器7和寄存器8寄存下一个块的四个子块的像素。每个pe单元根据控制信号将输入的当前帧像素通过多路选择器存入相应的当前帧像素寄存器中,同时根据控制信号将输入的参考帧像素通过多路选择器存入参考帧像素寄存器中。根据控制信号从8个当前帧像素寄存器通过多路选择器选择一个寄存器中的当前帧像素值传输到残差值计算模块,从参考帧像素寄存器中读出参考帧像素值传输到残差值计算模块,残差值计算模块根据两个像素值计算出残差值输出到所述sad累加模块。

可选地,所述sad累加模块115由加法树模块1151和大pu块累加模块1152两个子模块构成。

可选地,所述加法树模块1151的第一端与所述pe阵列114的第二端相连,用于从所述pe阵列114中获得32×32个残差值,并按照所述数据流总控制模块112发送的控制信息对所述32×32个残差值进行累加得到m点残差值。

可选地,如图7所示,为所述加法树模块的结构图,其中,所述加法树模块由nx2n及2nxn单元累加得到2nx4n和4nx2n单元,作为下一级标准结构的数据。根据加法树结构,首先将pe阵列计算得到的残差值,进行累加得到最小pu块(8×4和4×8)的残差值,然后通过n=4的加法树计算得到下一级n=8的加法树的输入,之后以此类推。最后计算得到所有小于32×32的pu块的残差值。由于像素块划分为4个32x32的子块分开计算,所以最大的64×64的像素块的残差值需要在4个子块的运算结束后进行,因此大于32×32的pu块的残差值需要通过大pu块sad缓存阵列进行缓存,最后由大pu块累加模块计算得出。

可选地,所述大pu块累加模块1152的第一端与所述加法树模块1151的第二端及所述大pu块sad缓存阵列116的第二端相连,用于接收所述加法树模块1151发送的m点的残差值及所述大pu块sad缓存阵列116的像素点信息,并根据m点的残差值计算所述像素点信息的残差值。

可选地,所述输出比较器117还用于对所述m点残差值的大小进行对比,以残差值最小的点作为所述最优采样点。

例如:根据所述输出比较器接收到的数据,一个32×32像素块会得到一个残差值,将其划分成两个16×32像素块后得到两个残差值,将两个16×32的像素块的sad值相加与32×32像素块的残差值比较,选择数值小的一组数据。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1