基于HEVC的帧间预测方法和设备与流程

文档序号:13142483阅读:268来源:国知局
基于HEVC的帧间预测方法和设备与流程

本文涉及视频编解码,特别涉及基于hevc的编解码。



背景技术:

目前主要的视频编码标准帧间预测部分都采用了基于块的运动补偿技术,其基本原理为:当前图像的每个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计me(motionestimation)。其中用于预测的图像称为参考图像,参考块到当前像素块的位移称为运动向量mv(motionvector),当前像素块与参考块的差值称为预测残差(predictionresidual)。将残差信号作为后续模块的输入进行变换、量化、扫描及熵编码,可实现对视频信号的高效压缩。

然而,对于现有的帧间预测,其取数类型固定,限制了编码速度。



技术实现要素:

以下给出对一个或更多个方面的简化概述以力图提供对此类方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或更多个方面的一些概念以作为稍后给出的更加具体的说明之序。

本发明提供一种帧间预测方法和设备解决现有技术中帧间预测慢的问题。

为实现上述目的,发明人提供了基于hevc的帧间预测方法,对于输入的像素值x(n),在帧间预测取数插值时,分像素运动估计包括对于在x方向的分像素估计frac_x,和在y方向的分像素估计frac_y;在对分像素运动估计进行解析时,若对于以4×4像素大小的块进行计算时,frac_x和frac_y具有如下关系,则分别按下述对应的方式搬运对应大小的数据,搬运的数据用于帧间插值:

若frac_x>0且frac_y>0,则搬运大小为16×8像素的块;

若frac_x>0且frac_y=0,则搬运大小为16×4像素的块;

若frac_x=0且frac_y>0,则搬运大小为16×8像素的块;

若frac_x=0且frac_y=0,则搬运大小为16×4像素的块。

进一步,若搬运大小为16×8像素的块,则用2个周期搬运该数据,每个周期搬运64像素的数据。

进一步,在对分像素运动估计进行解析时,若对于以8×8像素大小块的进行计算时,frac_x和frac_y具有如下关系,则分别按下述对应的方式搬运对应大小的数据,搬运的数据用于帧间插值:

若frac_x>0且frac_y>0,则搬运大小为24×16像素的块;

若frac_x>0且frac_y=0,则搬运大小为24×8像素的块;

若frac_x=0且frac_y>0,则搬运大小为16×16像素的块;

若frac_x=0且frac_y=0,则搬运大小为16×8像素的块。

进一步,若搬运大小为24×16像素的块,则用6个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为24×8像素的块,则用3个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为16×16像素的块,则用4个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为16×8像素的块,则用2个周期搬运该数据,每个周期搬运64像素的数据。

进一步,搬运对应的数据块后,还对搬运的数据块进行裁剪。

发明人还提供一种基于hevc的编码解码设备,包括帧间预测模块,所述帧间预测模块用于对于输入的像素值x(n),在帧间预测取数插值时,分像素运动估计包括对于在x方向的分像素估计frac_x,和在y方向的分像素估计frac_y;在对分像素运动估计进行解析时,若对于以4×4像素大小的块进行计算时,frac_x和frac_y具有如下关系,则分别按下述对应的方式搬运对应大小的数据,搬运的数据用于帧间插值:

若frac_x>0且frac_y>0,则搬运大小为16×8像素的块;

若frac_x>0且frac_y=0,则搬运大小为16×4像素的块;

若frac_x=0且frac_y>0,则搬运大小为16×8像素的块;

若frac_x=0且frac_y=0,则搬运大小为16×4像素的块。

进一步,所述帧间预测模块用于若搬运大小为16×8像素的块,则用2个周期搬运该数据,每个周期搬运64像素的数据。

进一步,所述帧间预测模块用于在对分像素运动估计进行解析时,若对于以8×8像素大小的块进行计算时,frac_x和frac_y具有如下关系,则分别按下述对应的方式搬运对应大小的数据,搬运的数据用于帧间插值:

若frac_x>0且frac_y>0,则搬运大小为24×16像素的块;

若frac_x>0且frac_y=0,则搬运大小为24×8像素的块;

若frac_x=0且frac_y>0,则搬运大小为16×16像素的块;

若frac_x=0且frac_y=0,则搬运大小为16×8像素的块。

进一步,所述帧间预测模块用于若搬运大小为24×16像素的块,则用2个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为24×8像素的块,则用6个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为16×16像素的块,则用4个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为16×8像素的块,则用2个周期搬运该数据,每个周期搬运64像素的数据。

进一步,所述帧间预测模块用于搬运对应的数据块后,还对搬运的数据块进行裁剪。

区别与现有技术,上述技术方案通过对分像素矢量的分析可以实现高效帧间预测参考帧取数与插值,支持同时进行两个方向的插值以及两个方向插值结果的求和平均。从而提高预测的准确度和处理速度。

为能达成前述及相关目的,这一个或更多个方面包括在下文中充分描述并在所附权利要求中特别指出的特征。以下描述和附图详细阐述了这一个或更多个方面的某些说明性特征。但是,这些特征仅仅是指示了可采用各种方面的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类方面及其等效方面。

附图说明

以下将结合附图来描述所公开的方面,提供附图是为了说明而非限定所公开的方面,附图中相似的标号标示相似要素,并且在其中:

图1、为具体实施方式所述的帧间预测设备所具有的模块和模块之间的运算关系;

图2、为具体实施方式所述帧间预测设备运算步骤示意图;

图3、hevc4×4块取数方式,即取数控制模块按照图中所列方法控制取数;

图4、hevc8×8取数方式,即取数控制模块按照图中所列方法控制取数;

图5、hevc取数示意图;

图6、数据搬运示意图。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。在以下描述中,出于解释目的阐述了众多的具体细节以提供对一个或更多个方面的透彻理解。但是显而易见的是,没有这些具体细节也可实践此类方面。

本文中提供的基于协议提出的一种帧间预测编码预处理架构设计,实现帧间预测分数像素插值。本文中4*4等的表示4像素*4像素大小的块,其他类同。

本文中,yuv是编译true-color颜色空间(colorspace)的种类,y'uv,yuv,ycbcr,ypbpr等专有名词都可以称为yuv,彼此有重叠。“y”表示明亮度(luminance、luma),“u”和“v”则是色度、浓度(chrominance、chroma)。

参见图1,为本文中所述帧间预测编码预处理架构的具体取数模块架构,用于根据块类型、运动矢量参数等控制取数;以及可以参见图2,图2为本文所述帧间预测编码处理步骤方法示意图。具体为通过总控制模块提供块类型、运动矢量参数等外部总控制信号,当前架构中分成4套帧间预测取数插值模块,每套帧间预测取数插值模块分别有对应的当前块外部总控信号,每个帧间预测取数插值模块需要做参数解析。帧间预测取数插值模块所做的参数解析分为:

运动矢量解析,包括x方向和y方向的整数位置和分像素位置的解析;亮度色度参数解析;

窗索引的解析,即解析搜索窗的索引值。

参见图3,取数控制模块按照下列方法控制取数:对于输入的像素值x(n),在帧间预测取数插值时,分像素运动估计包括对于在x方向的分像素估计frac_x,和在y方向的分像素估计frac_y;在对分像素运动估计进行解析时,若对于以4×4大小的块进行计算时,frac_x和frac_y具有如下关系,则分别按下述对应的方式搬运对应大小的数据,搬运的数据用于帧间插值:

若frac_x>0且frac_y>0,则搬运大小为16×8的块;

若frac_x>0且frac_y=0,则搬运大小为16×4的块;

若frac_x=0且frac_y>0,则搬运大小为16×8的块;

若frac_x=0且frac_y=0,则搬运大小为16×4的块。

取数结果影响帧间插值操作,对于帧间预测编码块(cb)的预测块(pb)像素是从参考图像以参考图像索引标记的对应块区域得到,这个将会被运动矢量的水平和垂直分量所代替;除了当运动矢量是一个整型值时,利用分数像素内插为非整型值的像素位置产生预测像素。加权预测应用于帧间插值操作之后,它是以slice为单位,每一帧的每一个slice都需要单独地传输相应的加权预测参数。对与当前解码图像,它有两个参考链表l0和l1,编码端需要给l0和l1中的每一个参考图像的yuv三个分量分别传输相应的加权预测参数。该加权预测参数用于返回给总控制模块,用于下一个局部图像或帧图像的编码。

区别与现有技术,通过对分像素矢量的分析可以实现高效帧间预测参考帧取数与插值,支持同时进行两个方向的插值以及两个方向插值结果的求和平均。

在一些实施例中,若搬运大小为16×8的块,则用2个周期搬运该数据,每个周期搬运16×4的数据。

在对分像素运动估计进行解析时,若对于以8×8大小块的进行计算时,frac_x和frac_y具有如下关系,则分别按下述对应的方式搬运对应大小的数据,搬运的数据用于帧间插值:

若frac_x>0且frac_y>0,则搬运大小为24×16的块;

若frac_x>0且frac_y=0,则搬运大小为24×8的块;

若frac_x=0且frac_y>0,则搬运大小为16×16的块;

若frac_x=0且frac_y=0,则搬运大小为16×8的块。

若搬运大小为24×16的块,则用6个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为24×8的块,则用3个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为16×16的块,则用4个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为16×8的块,则用2个周期搬运该数据,每个周期搬运64像素的数据。

参见图5,在某一具体实施例中,帧图像信号由yuv信号组成,逐次对yuv信号进行分析,以实现压缩编码。取数池中地址与yuv的对应关系如图所示,在对y信号进行分析的某一时刻,搜索窗如图虚线所示,帧间预测取数模块根据外部总控制信号,对搜索窗内的图像进行分析处理,从而实现高效帧间预测参考帧取数与插值。

搬运对应的数据块后,还对搬运的数据块进行裁剪。其裁剪过程可以参考图6所示的具体实施例中,为根据取数池输入的16*4像素数据,以及根据运动矢量获得有效数据在缓冲区逻辑地址的偏移[lx:ly],根据偏移[lx,ly]对取数池中的数据进行裁剪,例如图6所示的取数过程中,根据运动矢量获得有效数据在缓冲池逻辑地址的偏移为[2:0],则其有效数据如图6中虚线框所示,裁剪即取出该框的数据,并将其传输给插值模块。

本文还提供一种基于hevc的编码解码设备,用于实现上述基于hevc的帧间预测方法。基于hevc的编码解码设备包括帧间预测模块。帧间预测模块用于对于输入的像素值x(n),在帧间预测取数插值时,分像素运动估计包括对于在x方向的分像素估计frac_x,和在y方向的分像素估计frac_y;在对分像素运动估计进行解析时,若对于以4×4大小的块进行计算时,frac_x和frac_y具有如下关系,则分别按下述对应的方式搬运对应大小的数据,搬运的数据用于帧间插值:

若frac_x>0且frac_y>0,则搬运大小为16×8的块;

若frac_x>0且frac_y=0,则搬运大小为16×4的块;

若frac_x=0且frac_y>0,则搬运大小为16×8的块;

若frac_x=0且frac_y=0,则搬运大小为16×4的块。

帧间预测模块用于若搬运大小为16×8的块,则用2个周期搬运该数据,每个周期搬运16×4的数据。

参见图4,帧间预测模块用于在对分像素运动估计进行解析时,若对于以8×8大小的块进行计算时,frac_x和frac_y具有如下关系,则分别按下述对应的方式搬运对应大小的数据,搬运的数据用于帧间插值:

若frac_x>0且frac_y>0,则搬运大小为24×16的块;

若frac_x>0且frac_y=0,则搬运大小为24×8的块;

若frac_x=0且frac_y>0,则搬运大小为16×16的块;

若frac_x=0且frac_y=0,则搬运大小为16×8的块。

所述帧间预测模块用于若搬运大小为24×16的块,则用6个周期搬运该数据,每个周期搬运16×4的数据;

若搬运大小为24×8的块,则用3个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为16×16的块,则用4个周期搬运该数据,每个周期搬运64像素的数据;

若搬运大小为16×8的块,则用2个周期搬运该数据,每个周期搬运164像素的数据。

所述帧间预测模块用于搬运对应的数据块后,还对搬运的数据块进行裁剪。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。

本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:ram、rom、磁碟、磁带、光盘、闪存、u盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

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