帧内预测方法、编码器及存储装置与流程

文档序号:18524811发布日期:2019-08-24 10:08阅读:158来源:国知局
帧内预测方法、编码器及存储装置与流程

本申请涉及视频编码领域,特别是涉及一种帧内预测方法、编码器及存储装置。



背景技术:

由于视频图像数据量比较大,通常需要对其进行编码压缩后,再进行传输或存储,编码后的数据称之为视频码流。受硬件和其他条件限制,如存储空间有限、传输带宽有限等,编码器总是希望能让视频码流尽量小。

视频编码主要包括视频采集、预测、变换量化和熵编码几大部分,其中预测分为帧内预测和帧间预测两部分,分别用于去除空间冗余性和时间冗余性。

帧内预测就是在一帧图像内,根据当前像素周围已编码的参考像素的像素值,来预测当前像素的像素值。目前帧内预测模式包括dc、planar和多种角度模式。对于某个帧内预测模式,按照该帧内预测模式所指的方向找到当前编码块中像素对应的参考像素,根据对应的参考像素的像素值计算出该帧内预测模式的预测代价,为多个帧内预测模式重复上述过程得到多个帧内预测模式的预测代价,最后选出预测代价最小的帧内预测模式作为当前编码块的帧内预测模式。帧内预测过程中仅考虑到单个帧内预测模式,空间冗余性的去除效果有限。



技术实现要素:

本申请提供一种帧内预测方法、编码器及存储装置,能够解决相关技术中帧内预测过程中空间冗余性的去除效果有限的问题。

为解决上述技术问题,本申请采用的一个技术方案是:从多个候选帧内预测模式中选出当前编码块的独立预测模式;若当前编码块满足联合预测条件,则确定当前编码块的联合预测模式,联合预测模式包括至少一个已编码块的帧内预测模式;若联合预测模式满足预设条件,则选择联合预测模式作为当前编码块的帧内预测模式。

为解决上述技术问题,本申请采用的再一个技术方案是:提供一种编码器,该编码器包括处理器,处理器用于执行指令以实现前述的帧内预测方法。

为解决上述技术问题,本申请采用的再一个技术方案是:提供一种存储装置,存储有指令,指令被执行时实现前述的帧内预测方法。

本申请的有益效果是:通过从多个候选帧内预测模式中选出当前编码块的独立预测模式;若当前编码块满足联合预测条件,则确定当前编码块的联合预测模式,联合预测模式包括当前编码块的独立预测模式和至少一个已编码块的帧内预测模式;若联合预测模式满足预设条件,则选择联合预测模式作为当前编码块的帧内预测模式,在帧内预测过程中引入了联合预测模式,不再局限于单个帧内预测模式,提高了对当前编码块进行更准确的帧内预测的可能性,改善空间冗余性的去除效果。

附图说明

图1是本发明帧内预测方法第一实施例的流程示意图;

图2是本发明帧内预测方法一具体实施例中利用联合预测模式计算联合预测代价的流程示意图;

图3是本发明帧内预测方法第二实施例的流程示意图;

图4是第一组联合预测模式的选择方式与联合预测条件的一个具体应用例子中当前块和相邻已编码块l和a的示意图;

图5是第二组联合预测模式的选择方式与联合预测条件的一个具体应用例子中当前帧的已编码块和当前块的示意图;

图6是本发明编码器一实施例的结构示意图;

图7是本发明存储装置一实施例的结构示意图。

具体实施方式

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

本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,在不冲突的情况下,本文所描述的实施例可以与其它实施例相结合。

图1是本发明帧内预测方法第一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图1所示的流程顺序为限。如图1所示,本实施例包括:

s1:从多个候选帧内预测模式中选出当前编码块的独立预测模式。

当前编码块,是指当前要进行编码的块,可以被简称为当前块。在某些场合,编码块可以被称为编码单元(codingunit,cu)。若采用亮度和色彩分离的编码模式,例如yuv编码,当前编码块可以为亮度块或者色度块。

可以计算每个候选帧内预测模式的预测代价,选择预测代价最小的候选帧内预测模式作为独立预测模式。候选帧内预测模式包括dc、planar和多种角度模式中的部分或全部。某一帧内预测模式的预测代价可以是指采用该帧内预测模式对当前编码块进行帧内预测的代价,可以采用率失真代价等作为预测代价。

s2:若当前编码块满足联合预测条件,则确定当前编码块的联合预测模式。

在本发明一具体实施例中,联合预测条件可以包括以下三个条件中的至少一种:

(1)存在与当前编码块相邻的已编码块,且相邻的已编码块采用帧内预测。

(2)至少部分相邻的已编码块的帧内预测模式与独立预测模式不同。

(3)当前编码块不是当前帧的第一个编码块。

可选的,联合预测条件可以进一步包括:当前编码块的尺寸在第一范围内和/或相邻的已编码块的尺寸在第二范围内。

第一/第二范围可以是由单个阈值限定的,另一侧的范围不限,例如第一/第二范围可以是大于某个预设阈值或者小于某个预设阈值。第一/第二范围可以是由两个阈值限定的,阈值的大小以及阈值本身是否包括在第一/第二范围内可以根据实际需要决定。

若当前编码块满足联合预测条件,则可以采用预设的选择方式来确定当前编码块的联合预测模式,联合预测模式包括至少一个已编码块的帧内预测模式。本实施例中的已编码块均属于当前帧,即与当前编码块属于同一帧。联合预测模式的选择方式可以与联合预测条件相匹配。

在本发明一具体实施例中,联合预测模式可以包括n个与当前编码块相邻的已编码块的帧内预测模式,n为正整数。相邻的已编码块的位置可以是固定的。

在本发明另一具体实施例中,联合预测模式可以包括n个匹配块的帧内预测模式,n个匹配块是多个候选已编码块中与当前编码块之间的差异率最小的n个候选已编码块。候选已编码块包括当前帧的部分或者全部已编码块。

差异率可以是基于候选已编码块与当前编码块之间的像素差异和/或纹理相似性得到的。具体的,可以将候选已编码块与当前编码块之间的像素差异指标作为差异率,或者将候选已编码块与当前编码块之间的纹理相似性度量作为差异率,或者利用像素差异指标和纹理相似性度量计算差异率。

计算像素差异指标要求候选已编码块的尺寸与当前编码块的尺寸相同。具体的,可以计算候选已编码块与当前编码块中每个像素的像素值误差,然后基于所有像素的像素值误差计算像素差异指标,像素差异指标可以为所有像素的像素值误差的绝对差值和(sad)、均方误差(mse)、绝对误差均值(mad)、阈值差别计数(ntd)等。像素差异指标越小,候选已编码块与当前编码块之间的像素差异越小,相似度越高。

可以计算候选已编码块的纹理特征与当前编码块的纹理特征之间的相似性度量作为纹理相似性度量。相似性度量可以为欧氏距离度量、mahalanobis度量等。纹理相似性度量越小,候选已编码块与当前编码块之间的纹理相似程度越高。计算纹理相似性度量不要求候选已编码块的尺寸与当前编码块的尺寸相同。

s3:若联合预测模式满足预设条件,则选择联合预测模式作为当前编码块的帧内预测模式。

可以基于联合预测代价来判断是否选择联合预测模式作为当前编码块的帧内预测模式。联合预测代价为采用联合预测模式对当前编码块进行预测的预测代价。

具体的,所述预设条件可以包括联合预测代价小于独立预测代价,和/或所述联合预测代价小于预设阈值。此外,预设条件可以进一步包括独立预测代价大于一指定阈值等。

若联合预测模式不满足预设条件,则可以选择独立预测模式作为当前编码块的帧内预测模式。

确定了当前编码块的帧内预测模式之后,可以对当前编码块进行编码得到当前编码块的码流。当前编码块的码流中可以包括联合预测标记,联合预测标记用于表示当前编码块的帧内预测模式是否为联合预测模式。在确定联合预测标记之前,可以先采用独立预测模式对当前编码块进行编码。

联合预测标记的可选表达方式包括但不限于以下三种:

(i)联合预测标记包括联合预测句法元素,联合预测句法元素的取值用于表示当前编码块的帧内预测模式是否为联合预测模式。

例如,新增一个1bit的句法元素combine_pred作为联合预测标记。combine_pred为true表示采用了联合预测模式,combine_pred为false表示未采用联合预测模式。

(ii)联合预测标记包括联合预测句法元素,并且在当前编码块的帧内预测模式为联合预测模式的情况下,联合预测标记进一步包括联合预测模式。

例如,新增一个1bit的句法元素combine_pred作为联合预测标记。combine_pred为true表示采用了联合预测模式,combine_pred为false表示未采用联合预测模式。combine_pred为true的情况下,同时将联合预测模式mcom1,mcom2,…,mcomn进行编码。

(iii)联合预测标记包括当前编码块的帧内预测模式序号,其中当前编码块的帧内预测模式为联合预测模式的情况下,当前编码块的帧内预测模式序号与所有候选帧内预测模式的序号都不同。联合预测标记对应的帧内预测模式序号可以是新增的。例如,现有的帧内预测模式(包括dc,planar,多种角度模式)的序号为0-70,则新增序号71和72作为联合预测标记,71表示采用了联合预测模式,72表示未采用联合预测模式。

在判断联合预测模式是否满足预设条件之前,可以先利用联合预测模式计算联合预测代价。如图2所示,在本发明一具体实施例中,利用联合预测模式计算联合预测代价可以包括:

s31:利用联合预测模式计算当前编码块的联合预测值。

当前编码块中每个像素的联合预测值是该像素的多个预测值的加权平均值。若加权的权重经过归一化处理,即所有权重的和为1,则联合预测值也可以被认为是多个预测值的加权和。多个预测值包括采用独立预测模式对像素进行预测得到的预测值。可选的,多个预测值可以进一步包括采用独立预测模式对像素进行预测得到的预测值。

举例说明,采用独立预测模式m0对当前编码块中的像素a进行预测得到的预测值为pred0。联合预测模式包括n个已编码块的帧内预测模式,表示为:mcom1,mcom2,…,mcomn。采用联合预测模式对像素a进行预测得到的预测值包括:pred1,pred2,…,predn。像素a的联合预测值predcom为:

predcom=α*pred0+β1*pred1+β2*pred2+…+βn*predn

其中,α为pred0的权重,βn为predn的权重。0<=α<=1,0<=βn<=1,α+β1+…+βn=1。α和βn可根据实际需要确定。

s32:利用当前编码块的联合预测值计算联合预测代价。

将当前编码块的像素值减去当前编码块的联合预测值,得到联合预测模式对应的残差,再基于联合预测模式对应的残差计算预测代价作为联合预测代价。

通过本实施例的实施,在帧内预测过程中引入了联合预测模式,不再局限于单个帧内预测模式,提高了对当前编码块进行更准确的帧内预测的可能性,改善空间冗余性的去除效果。

下面结合附图举例说明基于联合预测的完整帧内预测过程。

本发明帧内预测方法第二实施例是对本发明帧内预测方法第一实施例的进一步扩展,与其相同的部分不再赘述。如图3所示,本发明帧内预测方法第二实施例包括:

s11:获取当前编码块的参考像素。

s12:对参考像素进行滤波。

在某些情况下,s12可以被省去。

s13:从多个候选帧内预测模式中选出当前编码块的独立预测模式,并基于独立预测模式计算独立预测代价。

候选帧内预测模式可以根据当前编码块的类型(亮度块还是色度块)、尺寸等信息确定。

s14:判断当前编码块是否满足联合预测条件。

若当前编码块满足联合预测条件,则跳转到s15;否则跳转到s19。

s15:确定当前编码块的联合预测模式。

联合预测模式的选择方式可以与联合预测条件是关联的。下面举例说明两组联合预测条件和选择方式。

第一组:

a.存在与当前编码块相邻的已编码块,且相邻的已编码块采用帧内预测;

b.至少部分相邻的已编码块的帧内预测模式与独立预测模式不同;

c.当前编码块的尺寸在第一范围内。

d.相邻的已编码块的尺寸在第二范围内。

联合预测条件必定包括a和b,是否包括c或者d可以根据实际需要而定。

对应的联合预测模式的选择方式为选择n个与当前编码块相邻的已编码块的帧内预测模式作为联合预测模式。

举例说明第一组的一个具体应用例子。若当前块的左侧相邻已编码块l存在,l同样采用帧内预测,l的预测模式ml不等于当前块的独立预测模式m0,且满足以下尺寸条件的情况下,选择l的预测模式ml和a的预测模式ma作为联合预测模式。

当当前块为亮度块时,尺寸条件为当前块的宽和高都大于或等于32,且l的宽和高都大于或等于16。当当前块为色度块时,尺寸条件为当前块的宽和高都大于或等于16,l的宽和高都大于或等于8。

l和a的位置如图4所示。l为当前块左下点bl的左侧相邻像素点所属的编码块,a为当前块右上点tr的上侧相邻像素点所属的编码块。

第二组:

e.当前编码块不是当前帧的第一个编码块。

f.当前编码块的尺寸在第一范围内。

联合预测条件必定包括e,是否包括f可以根据实际需要而定。

对应的联合预测模式的选择方式为在多个候选已编码块中筛选出n个匹配块,将n个匹配块的帧内预测模式作为联合预测模式。

举例说明第二组的一个具体应用例子。若当前块不是当前帧的第一个编码块,且满足以下尺寸条件的情况下,采用像素差异的sad作为差异率匹配块(这一过程也可以被称为按照sad最小准则搜索匹配块),将匹配块的帧内预测模式作为联合预测模式。

当当前块为亮度块时,尺寸条件为当前块的宽和高都大于或等于16。当当前块为色度块时,尺寸条件为当前块的宽和高都大于或等于8。

举例说明如何按照sad最小准则搜索匹配块。如图5所示,当前帧的已编码块位于当前块的左侧和上侧,序号为1-15。由于采用像素差异要求候选已编码块与当前块的尺寸相同,可用的候选已编码块为8、11和13。sad的计算公式如下:

其中k表示候选已编码块的序号,s和c分别表示候选已编码块和当前块的像素值,x和y表示候选已编码块和当前块内对应位置的横坐标和纵坐标。

选择已编码块8、11和13中sad最小的2个作为匹配块,采用匹配块的帧内预测模式作为联合预测模式mcom1和mcom2。

s16:利用联合预测模式计算联合预测代价。

s17:判断联合预测代价是否小于独立预测代价。

在本实施例中,预设条件为联合预测代价小于独立预测代价。若联合预测代价小于独立预测代价,则跳转到s18;否则跳转到s19。

s18:选择联合预测模式作为当前编码块的帧内预测模式。

s19:选择独立预测模式作为当前编码块的帧内预测模式。

s20:对当前编码块进行编码得到当前块的码流。

请参阅图6,图6为本发明编码器一实施例的结构示意图。如图6所示,该编码器30包括处理器31。

处理器31还可以称为cpu(centralprocessingunit,中央处理单元)。处理器31可能是一种集成电路芯片,具有信号的处理能力。处理器31还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

编码器可以进一步包括存储器(图中未示出),用于存储处理器31运行所需的指令和数据。

处理器31用于执行指令以实现上述本发明帧内预测方法任一实施例及任意不冲突的组合所提供的方法。

参阅图7,图7为本发明存储装置一实施例的结构示意图。本发明实施例的存储装置40存储有指令,该指令被执行时实现本发明帧内预测方法任一实施例以及任意不冲突的组合所提供的方法。其中,该指令可以形成程序文件以软件产品的形式存储在上述存储装置中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储装置包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序编码的介质,或者是计算机、服务器、手机、平板等终端设备。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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