一种编码单元参考帧的选择方法、装置及电子设备与流程

文档序号:16247691发布日期:2018-12-11 23:43阅读:155来源:国知局
一种编码单元参考帧的选择方法、装置及电子设备与流程

本申请涉及视频编码技术领域,具体涉及一种编码单元参考帧的选择方法。本申请同时涉及一种编码单元参考帧的选择装置、一种电子设备以及另一种编码单元参考帧的选择方法。

背景技术

hevc编码标准可以用以改善视频压缩和视频编码中码流、编码质量、延时和算法复杂度之间的关系,使视频编码和视频压缩达到相对优化的效果。

一般hevc编码采用比较灵活的数据模式,例如一个大小为64×64、深度为4的编码树单元最多可以包含85个深度不同的编码单元,这些编码单元在不同的深度又分别对应不同数量不同划分模式的预测单元。其中,每个深度小于3的编码单元在同一深度上一共有7种划分模式并对应13个预测单元;每个深度等于3的编码单元一共有3种划分模式并对应5个预测单元。

由于hevc编码标准采用的多参考帧技术能够充分利用帧与帧之间的相关性,可以有效提高帧间编码的效率。但是存在的一个问题是,在hevc编码中,每个编码单元都需要以预测单元为单位进行帧间预测(以及帧内预测)。如果对一个编码单元中的13个预测单元(或5个预测单元)进行运动搜索和运动补偿等帧间预测,一个大小为64×64、深度分为4级的编码树单元最多则需要进行高达1105次的运动搜索和运动补偿等帧间预测的计算。这将产生相当大的计算量,导致hevc编码的效率偏低。

可见,hevc编码标准的一个缺陷是,在进行帧间预测时,由于每一个编码单元都对每一个预测单元从原始参考帧集中历遍每一个参考帧,随着参考帧数目的增加,其编码的计算量也成倍增加,编码的效率就会变得很低。其他类似的视频编码标准,例如h264编码,也存在着同样的缺陷。



技术实现要素:

本申请提供一种编码单元参考帧的选择方法,以解决现有编码技术方案复杂度高和编码效率低的问题。本申请同时涉及一种编码单元参考帧的选择装置、一种电子设备以及另一种编码单元参考帧的选择方法。

本申请提供一种编码单元参考帧的选择方法,所述编码单元参考帧的选择方法,包括:

获取编码单元;

根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集;

对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧;

将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

可选的,所述根据所述编码单元的编码深度,获取与所述编码单元对应的预测单元的参考帧集,包括:

若所述编码单元的编码深度为最低层级,则获取原始参考帧集;

若所述编码单元的编码深度不为最低层级,则获取与所述编码单元对应的预测单元的参考帧集。

可选的,所述预测单元的参考帧集,包括:

以低于所述编码单元的编码深度的层级数目,作为拆分力度,进行拆分形成的各子编码单元的优选参考帧。

可选的,所述预测单元的参考帧集的帧间划分模式,包括:2n×2n。

可选的,所述对所述参考帧集内的各参考帧进行编码优化计算,选取优选参考帧,包括:

对所述参考帧集内的一个或多个参考帧,进行率失真优化计算,获取对应每个所述参考帧的率失真代价;

从计算获取的每个率失真代价中,选取低于预设阈值的率失真代价,并将选取的率失真代价所对应的所述参考帧,作为参考帧集的优选参考帧。

可选的,所述对所述参考帧集内的一个或多个参考帧,进行率失真优化计算;包括:

若所述参考帧集内具有相同的参考帧,则对相同的所述参考帧只进行一次所述率失真优化计算。

可选的,所述将选取的所述优选参考帧,作为所述编码单元的优选参考帧的步骤之后,包括:

将所述编码单元的优选参考帧,作为所述编码单元对应的其他帧间划分模式的预测单元的优选参考帧。

可选的,所述其他帧间划分模式,至少包括:n×2n以及2n×n。

可选的,所述获取编码单元,包括:

从原始编码序列中获取所述编码单元。

相应的,本申请实施例还提供了一种编码单元参考帧的选择装置,所述编码单元参考帧的选择装置,包括:

编码单元获取单元,用于获取编码单元;

参考帧集获取单元,用于根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集;

优选参考帧选取单元,用于对所述参考帧集内的各参考帧进行编码优化计算,选取优选参考帧;

优选参考帧确定单元,用于将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

可选的,所述参考帧集获取单元,包括:

编码深度判断子单元,用于判断所述编码单元编码深度的层级;

原始参考帧集获取子单元,用于接收所述编码深度判断子单元的判断结果,若所述编码单元的编码深度为最低层级,则获取原始参考帧集;

预测单元参考帧集获取子单元,用于接收所述编码深度判断子单元的判断结果,若所述编码单元的编码深度不为最低层级,则获取与所述编码单元对应的预测单元的参考帧集。

可选的,所述预测单元参考帧集获取子单元,具体用于接收所述编码深度判断子单元的判断结果,若所述编码单元的编码深度不为最低层级,则获取与所述编码单元对应的,以低于所述编码单元的编码深度的层级数目,作为拆分力度,进行拆分形成的各子编码单元的优选参考帧。

可选的,所述优选参考帧选取单元,包括:

优化计算子单元,用于对所述参考帧集内的一个或多个参考帧,进行率失真优化计算,获取对应每个所述参考帧的率失真代价;

优选参考帧选取子单元,用于从计算获取的每个率失真代价中,选取低于预设阈值的率失真代价,并将选取的率失真代价所对应的所述参考帧,作为参考帧集的优选参考帧。

此外,本申请实施例还提供了一种电子设备,所述电子设备,包括:

处理器;

存储器,用于存储参考帧选择程序,所述程序在被所述处理器读取执行时,执行如下操作:获取编码单元;根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集;对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧;将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

此外,本申请实施例还提供了另一种编码单元参考帧的选择方法,所述编码单元参考帧的选择方法,包括:

获取编码单元;

根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集;

从所述参考帧集内选取优选参考帧;

将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

与现有技术相比,本方案具有以下优点:

本申请提供的一种编码单元参考帧的选择方法、装置以及电子设备,通过获取编码单元;根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集;对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧;将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

本方案利用编码单元包含的下一编码深度的四个子编码单元之间参考帧的相关性,直接以编码单元包含的下一编码深度的四个子编码单元的优选参考帧,组成设定帧间划分模式的预测单元的参考帧集,并以此计算选出设定帧间划分模式的预测单元的优选参考帧,将其作为编码单元的优选参考帧,以进行后续的编码计算。

本方案在执行选出优选参考帧的计算时,不需要历遍原始的参考帧集中的每一个参考帧,避免了对不相关参考帧的计算,降低了视频编码过程中多参考帧选择过程的计算复杂度,从而在基本不降低质量及不增加码率的条件下,显著提高了编码、转码和压缩的计算效率,也增强了视频编码器的实时应用性。

本方案的技术方案不仅适用于hevc编码标准,也适用于h264编码标准。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1示出了根据本申请提供的当前帧和参考帧运动搜索和运动补偿过程的示意图;

图2示出了根据本申请提供的当前帧和参考帧运动搜索和运动补偿过程的另一示意图;

图3示出了根据本申请提供的编码单元递归分割过程和在不同深度对应的预测单元具体模式的示意图;

图4示出了根据本申请的实施例提供的编码单元参考帧的选择方法的流程图;

图5示出了根据本申请的实施例提供的编码单元参考帧的选择装置的示意图;

图6示出了根据本申请的实施例提供的电子设备的示意图;

图7示出了根据本申请的实施例提供的另一种编码单元参考帧的选择方法的流程图。

具体实施方式

为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。

本申请的实施例提供了一种编码单元参考帧的选择方法。本申请同时涉及一种编码单元参考帧的选择装置、一种电子设备以及另一种编码单元参考帧的选择方法。在下面的实施例中逐一进行详细说明。

为了更好地理解本申请的技术方案,首先对本申请涉及的更详细的技术背景和提出本申请的原因做进一步的说明。

视频编码一般都是通过去除图像(帧)之间的时间冗余来实现视频序列的压缩。例如,为了对当前图像进行编码,基于先前已编码的图像生成将被编码图像的时间预测。这种预测可以通过使用被广泛应用的基于块的运动估计和压缩方法(例如,mpeg标准,h264,hevc等)来完成,并可以将预测结果与当前实际图像进行比较以确定预测误差以及对预测误差进行编码。

运动估计和补偿的方法,一般应用于在参考帧集(一个或多个参考图像)中找到参考块以预测在目标图像中相应目标块的位置的情形,这样仅需要对目标块的预测残差进行编码即可。通常情况下,预测残差的具体做法是获取预测误差和运动矢量,再通过执行块匹配来识别与目标图像中的相应目标块最相似的参考图像中的参考像素块。

参考块与相应目标块之间的像素距离就是目标块的运动矢量。例如,运动矢量mv[i][j]表示图像中的第i,j块的运动向量,运动矢量包含x水平方向的位移和y垂直方向的位移,其表示为mv[i][j].x和mv[i][j].y;运动矢量与参考块一起被用于视频压缩,以针对目标块生成预测值。

请参考图1,其示出了根据本申请提供的当前帧和参考帧运动搜索和运动补偿过程的示意图。

假设当前帧为p,参考帧为pr,当前编码块为b,在pr中寻找与b块相减残差最小的块br,br称为b的最佳匹配块,这个过程即运动估计。在图1中,b*与b在图像中的坐标位置相同;运动矢量mv就是br坐标(xr,yr)减去b*坐标(x,y)等于(xr-x,yr-y);br块就是b块的参考块,br块的像素值就可以作为b块像素的预测值。

请参考图2,其示出了根据本申请提供的当前帧和参考帧运动搜索和运动补偿过程的另一示意图。

为了识别参考图像中的参考块,需要将参考图像中的侯选块与目标块进行比较。每个侯选块与目标块大小相同并且位于参考图像中的指定搜索范围内。与目标块最接近地匹配的侯选块被识别为参考块。搜索参考块是运动估计中重要的一部分,并且通常这种搜索需要大量的算术计算。

针对一个目标块进行运动估计的计算复杂度与搜索范围的大小成正比。如果参考帧集中有多个参考帧,运动估计要历遍参考帧集中的所有参考帧,进行分析比较,最终找到某一参考帧上的某一参考块。可见,运动估计的计算量和多参考帧的搜索空间(参考帧集的大小,参考帧集中的参考帧数量)是成正比的。

在hevc编码中的数据单元划分模式比较灵活,例如一个大小为64×64、深度为4的编码树单元(codingtreeunit)最多可以包含85个编码单元(codingunit)。每个编码单元都需要以预测单元(predictionunit)为单位进行帧间预测(以及帧内预测),即进行时域预测。进行时域预测的目的旨在消除时域冗余信息,从而可以利用之前编码过的图像来预测现在要编码的图像。

帧间划分模式,或称预测单元的帧间划分方法是指:在基于块的混合视频编码器中,将每个视频帧被划分成固定大小的块。hevc编码中所采用的编码树单元一般最多可以包含85个深度不同的编码单元,这些编码单元在不同的深度又分别对应不同数量不同划分模式的预测单元。

请参考图3,其示出了根据本申请提供的编码单元递归分割过程和在不同深度对应的预测单元具体模式的示意图。

以大小为64×64、深度为4的编码树单元为例,在深度小于3时,每个64×64、32×32或16×16编码单元对应有七种帧间划分模式的预测单元,即2n×2n、2n×n、n×2n、2n×nu、2n×nd、nl×2n和nr×2n模式,包含13个预测单元;其中,2n×2n模式只有一个预测单元,其余六种划分模式都包含两个预测单元。在编码深度等于3时,每个8×8编码单元有三种帧间划分模式,即2n×2n、2n×n和n×2n模式,包含5个预测单元;同样,2n×2n只有一个预测单元,其余两种划分模式都包含两个预测单元。

hevc的每个预测单元都需要进行帧间预测,找出与编码单元差异最小的预测单元所对应的参考帧,即预测单元的优选参考帧,作为进行下一步编码的依据。每一个编码深度的一个编码单元中总共有13个预测单元(或5个预测单元)需要进行运动搜索、运动补偿等帧间预测,因此一个大小为64×64、编码深度为4的编码树单元最多需要进行1105次运动搜索、运动补偿等帧间预测。

hevc编码如果在进行帧间预测时,对于每个预测单元,都要从原始参考帧集中,历遍每一个参考帧,那么,随着参考帧数目的增加,编码复杂度也成倍增加。如果有方法能够确定预测单元的参考帧集,而这个参考帧集中能够自适应地只包含有效的参考帧,跳过或者避免历遍每一个原始参考帧,减少参考帧的搜索空间,那么就可以极大地减少编码复杂度及计算量。其他一些类似的视频编码标准,例如h264编码,也存在着同样的问题。

下面依次结合附图对本申请的实施例进行详细说明。

本申请的实施例提供了一种编码单元参考帧的选择方法,所述编码单元参考帧的选择方法,可以在基本不影响视频质量和码率的情况下,减少参考帧的搜索空间,提高编码效率。所述编码单元参考帧的选择方法实施例如下:

请参考图4,其示出了根据本申请的实施例提供的编码单元参考帧的选择方法的流程图。

所述编码单元参考帧的选择方法,包括:

步骤s101,获取编码单元。

在本实施例中,所述获取编码单元,可以采用如下方式实现:从作为输入源的原始编码序列中,获取编码单元。

一般而言,原始图像可以分割形成具有特定顺序的编码序列,而编码序列可以按照特定顺序组合形成完整的原始图像。而本步骤,就是从所述编码序列中的每一帧原始图像内,获取所述编码单元。

需要说明的是,每一帧的图像是由若干个编码单元组成。

步骤s103,根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集。

在本实施例中,所述根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集,可以采用如下方式实现:确定所述编码单元编码深度的层级,并根据所述编码单元所处的编码深度的层级,获取对应所述编码单元编码深度的层级的参考帧集。

需要说明的是,本申请可以适用于任意大小和对应编码深度的编码单元,例如编码单元大小可以为128×128或256×256或更大,以及编码单元大小也可以为4×4或更小;若编码单元大小为最大128×128以及最小4×4,则编码单元对应的编码深度则为6。为了简化说明,本实施例中所涉及的编码单元,一律设定最大大小为64×64以及编码深度为4,即在本实施例中,编码单元包括64×64编码单元,32×32编码单元,16×16编码单元和8×8编码单元这四种。由于一帧图像是由若干个编码单元组成的,在编码时为进行帧间预测,需要针对一帧图像的每一个编码单元来进行计算。

可以理解的,在编码单元的编码深度一共分为4级时,8×8编码单元为最深层级的编码深度(即:编码深度depth=3);16×16编码单元为次深层级的编码深度(即:depth=2);32×32编码单元为次深层级的上一层级编码深度(即:depth=1);64×64编码单元为最高层级的编码深度(即:depth=0)。如果编码单元的编码深度为3,则该编码深度为最低级,也就是说这个特定的编码单元是8×8编码单元。

在具体实施时,在执行所述根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集时,需要执行如下步骤:

若所述编码单元的编码深度为最低层级,则获取原始参考帧集;

若所述编码单元的编码深度不为最低层级,则获取与所述编码单元对应的预测单元的参考帧集。

需要说明的是,需要先根据所述编码单元的编码大小,判断所述编码单元所处的编码深度,例如:所述编码单元的编码大小为32x32,则认定所述编码单元的编码深度为1。

在判断出所述编码单元的编码深度时,根据所述编码单元所述的编码深度获取相应的参考帧集。

下面分别对所述编码单元处于各编码深度时,获取对应的参考帧集的过程进行说明。

当所述编码单元的编码深度为3时,则说明所述编码单元不包含任何下一编码深度的编码单元,则以原始参考帧集,作为所述编码单元的参考帧集。

例如,在本实施例中,假设当前编码单元为8×8编码单元,同时假设设定帧间划分模式具体为2n×2n模式,由于8×8编码单元已经是最小编码单元即编码深度为最低级,则可以选择原始参考帧集,即参考帧集{ref1,ref2,ref3,ref4,ref5},作为所述8×8编码单元对应的2n×2n模式预测单元的参考帧集。

所述帧间划分模式,包括7种具体模式:64×64编码单元、32×32编码单元和16×16编码单元一共有7种模式,分别为:2n×2n,2n×n,n×2n,2n×nu,2n×nd,nl×2n和nr×2n;8×8编码单元一共有3种模式,分别为:2n×2n,2n×n和n×2n。

在本实施例中预测单元的设定帧间划分模式为2n×2n模式;当然,不排除设定其他特定帧间划分模式作为设定模式,例如2n×n模式。可以根据编码单元的特点和编码的效果,综合考虑来确定设定帧间划分模式的选择。

需要说明的是,参考帧,即先前已编码的图像;参考帧集,即多个先前已编码的图像组成的集合;原始的参考帧集,由多个原始的参考帧组成,也就是原始的参考帧搜索空间,包括在编码中用于帧间预测的若干个参考帧。这些原始的参考帧的数目是预先设定的,既可以由人工设定,也可以按照设定的规则在编码过程中自动产生。

例如,在本实施例中,假设没有其他的限制及约束,可以设定原始参考帧的数目为5个,即原始的参考帧集为{ref1,ref2,ref3,ref4,ref5},ref1至ref5分别代表一帧具体的原始参考帧。

当所述编码单元的编码深度为0,1或2时,即所述编码单元的编码深度不为最低层级时,则以当前所述编码单元的下一编码深度的四个子编码单元的四个优选参考帧,组成对应当前所述编码单元的预测单元的参考帧集。

需要说明的是,所述预测单元的参考帧集,是以低于所述编码单元的编码深度的层级数目,作为拆分力度,进行拆分形成的各子编码单元的优选参考帧。

当在编码单元的编码深度高于最低级时,每个编码单元均由下一编码深度的四个子编码单元组成。编码单元包含的下一编码深度的四个子编码单元,即编码单元按四等分分割成的4个子编码单元;上一编码深度的编码单元又称为父编码单元,下一编码深度的4个子编码单元组合之后可以形成1个完整的父编码单元。具体而言,在本实施例中,64×64编码单元包含下一编码深度的4个32×32编码单元,32×32编码单元包含下一编码深度的4个16×16编码单元,和16×16编码单元包含下一编码深度的4个8×8编码单元。

当所述编码单元的编码深度为0,1或2时,即为针对选定的64×64、32×32或16×16的编码单元,选择由这个编码单元包含的下一编码深度的四个编码单元的优选参考帧所组成的参考帧集,作为这个编码单元对应的设定帧间划分模式的预测单元的参考帧集。

例如,在本实施例中,选定的编码单元为64×64编码单元,则可以由选定的64×64编码单元包含的下一编码深度的四个32×32编码单元的优选参考帧所组成的参考帧集,作为选定的64×64编码单元对应的预测单元的参考帧集;在此参考帧集中,即有4个参考帧,分别为4个32×32编码单元的优选参考帧,假定其分别为参考帧ref1,ref1,ref2,和ref4;假设设定模式具体为2n×2n模式,则64×64编码单元对应的2n×2n模式预测单元的参考帧集为{ref1,ref1,ref2,ref4}。

可以理解的,若所述编码单元的编码深度为0时,则获取所述编码单元的下一级编码深度1的预测单元的参考帧集,作为所述编码单元的参考帧集,若所述述编码单元的下一级编码深度的预测单元不具有参考帧集,则再次向下获取更下一级编码深度的预测单元的参考帧集,直至获取到相应层级的编码深度的预测单元的参考帧集(当获取到最深层级的编码单元时,则获取原始参考帧集)。

步骤s105,对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧。

在本实施例中,所述对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧,可以采用如下方式实现:对获取到的对应于所述编码单元的所述参考帧集内的一个或多个参考帧,进行率失真优化计算,从中选出与所述编码单元对应的预测单元的优选参考帧。

在具体实施时,在执行所述对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧时,需要执行如下步骤:

对所述参考帧集内的一个或多个参考帧,进行率失真优化计算,获取对应每个所述参考帧的率失真代价;

从计算获取的每个率失真代价中,选取低于预设阈值的率失真代价,并将选取的率失真代价所对应的所述参考帧,作为参考帧集的优选参考帧。

在执行上述步骤时,不排除利用除了率失真优化计算之外的方法来选取对应的优选参考帧。只要这种方法可以按照一定标准,可以计算选出较优的优选参考帧即可。本实施例仅针对率失真优化计算进行详细说明,对其他计算方法不做赘述。

其中,率失真优化的计算量是很大的。假设设定模式为2n×2n模式,当2n×2n模式预测单元的参考帧集为原始参考帧集时(当前编码单元为8×8编码单元),率失真优化计算在事实上需要历遍所有原始的参考帧集;而当2n×2n模式预测单元的参考帧集为下一编码深度的四个编码单元的优选参考帧所组成的参考帧集时(当前编码单元为64×64、32×32或16×16编码单元),率失真优化计算不需要历遍全部原始的参考帧集,仅针对最多4个参考帧(4个下一编码深度编码单元的优选参考帧)进行。

例如,在本实施例中,当前编码单元为8×8编码单元,对设定帧间划分模式的预测单元的参考帧集{ref1,ref2,ref3,ref4,ref5}中的每一个参考帧,进行率失真优化计算,可以选出低于预设阈值的率失真代价的参考帧,作为8×8编码单元的优选参考帧(例如:ref2的率失真代价低于所述预设阈值,则以ref2作为优选参考帧);又例如,选定的64×64编码单元包含的下一编码深度的四个32×32编码单元的优选参考帧所组成的参考帧集为{ref1,ref1,ref2,ref4},对其中的每一个参考帧进行率失真优化计算,可以选出ref1作为64×64编码单元的优选参考帧。

需要说明的是,为了获取更为精确的优选参考帧,则可以将所述预设阈值设定为数值最小,即:在选取所述优选参考帧的步骤中,是选取率失真代价的数值最小的参考帧,作为参考帧集的优选参考帧。

此外,在进行率失真优化计算时,如果设定帧间划分模式的预测单元的参考帧集中存在相同的参考帧,则可以对这些相同的参考帧,只进行一次率失真优化计算。下一编码深度的4个编码单元的优选参考帧是有可能存在相同的参考帧的,此时,可以不必重复对其进行率失真优化计算。

例如,在本实施例中,对选定的64×64编码单元包含的下一编码深度的四个32×32编码单元的优选参考帧所组成的参考帧集{ref1,ref1,ref2,ref4}进行率失真优化计算时,只需进行对ref1,ref2和ref4的计算,不需要对ref1进行重复两次计算。

下面以一个例子对步骤105对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧进行说明。

若帧间划分模式具体为2n×2n模式,所述编码单元的编码深度为最深层,则对所述编码单元8×8对应的原始的参考帧集{ref1,ref2,ref3,ref4,ref5},中的一个或多个参考帧进行率失真优化计算,获得8×8编码单元对应的2n×2n模式预测单元对应ref1,ref2,ref3,ref4和ref5参考帧的5个具体率失真代价,从上述5个参考帧中,选取低于预设阈值(或最低)的率失真代价的参考帧ref2,作为当前编码单元的优选参考帧ref_8x8_0,同样过程,确定当前编码单元的其它3个预测模式的优选参考帧ref_8x8_1,ref_8x8_2,ref_8x8_3;再例如,若所述编码单元的编码深度为次深层16×16,则获取当前编码单元的下一级编码深度3的编码单元(最深层)的优选参考帧{ref_8x8_0,ref_8x8_1,ref_8x8_2,ref_8x8_3},作为当前编码单元的参考帧集,再对{ref_8x8_0,ref_8x8_1,ref_8x8_2,ref_8x8_3}中的一个或多个参考帧进行率失真优化计算,获得16×16的4个具体率失真代价,从上述4个参考帧中,选取低于预设阈值(或最低)的率失真代价的参考帧ref_8x8_1,作为当前编码单元的优选参考帧ref_16x16_0。

需要说明的是,若帧间划分模式具体为2n×2n模式,所述编码单元的编码深度为最高层64x64,则获取当前编码单元的下一级编码深度1的编码单元的优选参考帧,若,编码深度1的编码单元不具有优选参考帧,则再次向下获取更下一级编码深度2的编码单元的优选参考帧,并基于编码深度2的编码单元的优选参考帧,先获取编码深度1的编码单元的优选参考帧,并根据计算出的编码深度1的编码单元的优选参考帧,在计算获得编码深度为最高层64x64的当前所述编码单元的优选参考帧。

由于所述编码单元具有多种帧间划分模式,为了获取所述编码单元的2n×2n模式之外各个其他模式的优选参考帧,本申请的实施例提供了一种优选的实施方式,在优选方式下,所述将选取的所述优选参考帧,作为所述编码单元的优选参考帧的步骤之后,将所述编码单元的优选参考帧,作为所述编码单元对应的其他帧间划分模式的预测单元的优选参考帧。

需要说明的是,所述其他帧间划分模式,至少包括:n×2n以及2n×n。

具体的,64×64编码单元、32×32编码单元和16×16编码单元一共有7种模式,分别为:2n×2n,2n×n,n×2n,2n×nu,2n×nd,nl×2n和nr×2n;8×8编码单元一共有3种模式,分别为:2n×2n,2n×n和n×2n。

作为一种优选的实施方式,本步骤还可以利用选出的所述编码单元对应的设定帧间划分模式的预测单元的优选参考帧,计算对应所述编码单元设定模式之外各个模式预测单元的各个率失真代价。可见,本方案对设定模式之外各个模式预测单元也不需要历遍整个原始的参考帧集,仅需针对设定帧间划分模式的预测单元的优选参考帧进行率失真优化计算,就可以算出对应设定模式之外各个模式的各个率失真代价。

例如,在本实施例中,假设设定模式具体为2n×2n模式,可以使用选出的8×8编码单元的优选参考帧ref2,对8×8编码单元2n×2n之外模式即2n×n和n×2n模式预测单元进行率失真优化计算,获得对应2n×n和n×2n模式预测单元的2个率失真代价;再例如,也可以使用选出的64×64编码单元的优选参考帧ref1,对64×64编码单元2n×2n之外模式即2n×n、n×2n、2n×nu、2n×nd、nl×2n和nr×2n模式预测单元进行率失真优化计算,获得对应这6个模式预测单元的6个率失真代价。

基于上述优选的实施方式,从设定帧间划分模式的预测单元的各个率失真代价和设定模式之外各个模式预测单元的各个率失真代价之中,确定最小的一个,并选出最小的率失真代价所对应的所述编码单元的预测单元的具体模式,作为所述编码单元对应的预测单元模式。通过本优选步骤可以获得所述编码单元对应的率失真代价为最小的预测单元的具体模式,从而为进行后续编码计算做好准备。

例如,在本实施例中,假设设定模式具体为2n×2n模式,由于8×8编码单元的2n×n模式预测单元计算获得的率失真代价,比2n×2n模式预测单元计算获得的率失真代价更小,则所述8×8编码单元对应的预测单元的模式为2n×n;再例如,由于在64×64编码单元的2n×n、n×2n、2n×nu、2n×nd、nl×2n和nr×2n模式预测单元计算获得的率失真代价中,nl×2n所对应的率失真代价最小,则64×64编码单元对应的预测单元的模式为nl×2n。

步骤s107,将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

例如,在本实施例中,假设设定模式具体为2n×2n,选定的8×8编码单元对应的2n×2n模式预测单元的优选参考帧为ref2,则选择ref2作为选定的8×8编码单元的优选参考帧;再例如,选定的64×64编码单元对应的2n×2n模式预测单元的优选参考帧为ref1,则选择ref1作为选定的64×64编码单元的优选参考帧。

综上可见,本方案选择设定帧间划分模式的预测单元的优选参考帧作为所述编码单元的优选参考帧,在对64×64、32×32和16×16编码单元的优选参考帧选择计算时,不需要历遍原始的参考帧集,仅对最多4个下一编码深度编码单元的优选参考帧进行计算;在设定模式之外其他模式预测单元的率失真计算时,也不需要历遍原始的参考帧集,仅对设定帧间划分模式的预测单元的优选参考帧进行计算。因此,本方案的方法可以极大地减少编码复杂度和计算量。

在上述的实施例中,提供了一种编码单元参考帧的选择方法,与上述编码单元参考帧的选择方法相对应的,本申请还提供了一种编码单元参考帧的选择装置。由于装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述编码单元参考帧的选择装置实施例如下:

请参考图5,其示出了根据本申请的实施例提供的编码单元参考帧的选择装置的示意图。

所述编码单元参考帧的选择装置,包括:编码单元获取单元501、参考帧集获取单元503、优选参考帧选取单元505以及优选参考帧确定单元507;

所述编码单元获取单元501,用于获取编码单元;

所述参考帧集获取单元503,用于根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集;

所述优选参考帧选取单元505,用于对所述参考帧集内的各参考帧进行编码优化计算,选取优选参考帧;

所述优选参考帧确定单元507,用于将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

可选的,所述参考帧集获取单元503,包括:编码深度判断子单元、原始参考帧集获取子单元以及预测单元参考帧集获取子单元;

所述编码深度判断子单元,用于判断所述编码单元编码深度的层级;

所述原始参考帧集获取子单元,用于接收所述编码深度判断子单元的判断结果,若所述编码单元的编码深度为最低层级,则获取原始参考帧集;

所述预测单元参考帧集获取子单元,用于接收所述编码深度判断子单元的判断结果,若所述编码单元的编码深度不为最低层级,则获取与所述编码单元对应的预测单元的参考帧集。

可选的,所述预测单元参考帧集获取子单元,具体用于接收所述编码深度判断子单元的判断结果,若所述编码单元的编码深度不为最低层级,则获取与所述编码单元对应的,以低于所述编码单元的编码深度的层级数目,作为拆分力度,进行拆分形成的各子编码单元的优选参考帧。

可选的,所述预测单元参考帧集获取子单元,获取的所述预测单元的参考帧集的帧间划分模式,包括:2n×2n。

可选的,所述优选参考帧选取单元505,包括:优化计算子单元以及优选参考帧选取子单元;

所述优化计算子单元,用于对所述参考帧集内的一个或多个参考帧,进行率失真优化计算,获取对应每个所述参考帧的率失真代价;

所述优选参考帧选取子单元,用于从计算获取的每个率失真代价中,选取低于预设阈值的率失真代价,并将选取的率失真代价所对应的所述参考帧,作为参考帧集的优选参考帧。

可选的,所述优化计算子单元,还用于若所述参考帧集内具有相同的参考帧,则对相同的所述参考帧只进行一次所述率失真优化计算。

可选的,所述编码单元参考帧的选择装置,还包括:优选参考帧同步单元;

所述优选参考帧同步单元,用于所述将选取的所述优选参考帧,作为所述编码单元的优选参考帧之后,将所述编码单元的优选参考帧,作为所述编码单元对应的其他帧间划分模式的预测单元的优选参考帧。

可选的,所述其他帧间划分模式,至少包括:n×2n以及2n×n。

可选的,所述编码单元获取单元501,具体用于从原始编码序列中获取所述编码单元。

在上述的实施例中,提供了一种编码单元参考帧的选择方法以及一种编码单元参考帧的选择装置,此外,本申请还提供了一种电子设备;所述电子设备实施例如下:

请参考图6,其示出了根据本申请的实施例提供的电子设备的示意图。

所述电子设备,包括:处理器601;存储器603;

所述存储器603,用于存储参考帧选择程序,所述程序在被所述处理器读取执行时,执行如下操作:获取编码单元;根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集;对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧;将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

例如,所述电子设备为一台计算机,所述计算机获取编码单元;并根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集;再对所述参考帧集内的一个或多个参考帧进行编码优化计算,选取与所述编码单元对应的预测单元的优选参考帧;最后将选取的所述优选参考帧,作为所述编码单元的优选参考帧。由于本电子设备使用上述编码单元参考帧的选择方法,相关之处请参见上述编码单元参考帧的选择方法的实施例说明,此处不再赘述。

在上述的实施例中,提供了一种编码单元参考帧的选择方法、一种编码单元参考帧的选择装置以及一种电子设备,此外,本申请还提供了另一种编码单元参考帧的选择方法;所述一种编码单元参考帧的选择方法实施例如下:

请参考图7,其示出了根据本申请的实施例提供的另一种编码单元参考帧的选择方法的流程图。

所述编码单元参考帧的选择方法,包括:

步骤s701,获取编码单元。

在本实施例中,所述获取编码单元,可以采用如下方式实现:从作为输入源的原始编码序列中,获取编码单元。

需要说明的是,每一帧的图像是由若干个编码单元组成。

步骤s703,根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集。

在本实施例中,所述根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集,可以采用如下方式实现:确定所述编码单元编码深度的层级,并根据所述编码单元所处的编码深度的层级,获取对应所述编码单元编码深度的层级的参考帧集。

可以理解的,在编码单元的编码深度一共分为4级时,8×8编码单元为最深层级的编码深度(即:编码深度depth=3);16×16编码单元为次深层级的编码深度(即:depth=2);32×32编码单元为次深层级的上一层级编码深度(即:depth=1);64×64编码单元为最高层级的编码深度(即:depth=0)。如果编码单元的编码深度为3,则该编码深度为最低级,也就是说这个特定的编码单元是8×8编码单元。

在具体实施时,在执行所述根据所述编码单元的编码深度,获取与所述编码单元对应的参考帧集时,需要执行如下步骤:

若所述编码单元的编码深度为最低层级,则获取原始参考帧集;

若所述编码单元的编码深度不为最低层级,则获取与所述编码单元对应的预测单元的参考帧集。

需要说明的是,需要先根据所述编码单元的编码大小,判断所述编码单元所处的编码深度,例如:所述编码单元的编码大小为32x32,则认定所述编码单元的编码深度为1。

在判断出所述编码单元的编码深度时,根据所述编码单元所述的编码深度获取相应的参考帧集。

下面分别对所述编码单元处于各编码深度时,获取对应的参考帧集的过程进行说明。

当所述编码单元的编码深度为3时,则说明所述编码单元不包含任何下一编码深度的编码单元,则以原始参考帧集,作为所述编码单元的参考帧集。

例如,在本实施例中,假设当前编码单元为8×8编码单元,同时假设设定帧间划分模式具体为2n×2n模式,由于8×8编码单元已经是最小编码单元即编码深度为最低级,则可以选择原始参考帧集,即参考帧集{ref1,ref2,ref3,ref4,ref5},作为所述8×8编码单元对应的2n×2n模式预测单元的参考帧集。

例如,在本实施例中,假设没有其他的限制及约束,可以设定原始参考帧的数目为5个,即原始的参考帧集为{ref1,ref2,ref3,ref4,ref5},ref1至ref5分别代表一帧具体的原始参考帧。

当所述编码单元的编码深度为0,1或2时,即所述编码单元的编码深度不为最低层级时,则以当前所述编码单元的下一编码深度的四个子编码单元的四个优选参考帧,组成对应当前所述编码单元的预测单元的参考帧集。

需要说明的是,所述预测单元的参考帧集,是以低于所述编码单元的编码深度的层级数目,作为拆分力度,进行拆分形成的各子编码单元的优选参考帧。

当在编码单元的编码深度高于最低级时,每个编码单元均由下一编码深度的四个子编码单元组成。编码单元包含的下一编码深度的四个子编码单元,即编码单元按四等分分割成的4个子编码单元;上一编码深度的编码单元又称为父编码单元,下一编码深度的4个子编码单元组合之后可以形成1个完整的父编码单元。具体而言,在本实施例中,64×64编码单元包含下一编码深度的4个32×32编码单元,32×32编码单元包含下一编码深度的4个16×16编码单元,和16×16编码单元包含下一编码深度的4个8×8编码单元。

当所述编码单元的编码深度为0,1或2时,即为针对选定的64×64、32×32或16×16的编码单元,选择由这个编码单元包含的下一编码深度的四个编码单元的优选参考帧所组成的参考帧集,作为这个编码单元对应的设定帧间划分模式的预测单元的参考帧集。

例如,在本实施例中,选定的编码单元为64×64编码单元,则可以由选定的64×64编码单元包含的下一编码深度的四个32×32编码单元的优选参考帧所组成的参考帧集,作为选定的64×64编码单元对应的预测单元的参考帧集;在此参考帧集中,即有4个参考帧,分别为4个32×32编码单元的优选参考帧,假定其分别为参考帧ref1,ref1,ref2,和ref4;假设设定模式具体为2n×2n模式,则64×64编码单元对应的2n×2n模式预测单元的参考帧集为{ref1,ref1,ref2,ref4}。

步骤s705,从所述参考帧集内选取优选参考帧。

在本实施例中,所述从所述参考帧集内选取优选参考帧,可以采用如下方式实现:从已获取的所述参考帧集中,选取一个或多个参考帧,作为对应所述编码单元的优选参考帧。

需要说明的是,从已获取的所述参考帧集中,选取一个或多个参考帧时,可以通过一定标准,选取出较优的优选参考帧即可。例如:通过率失真优化方法对所述参考帧集中的参考帧进行计算。

步骤s707,将选取的所述优选参考帧,作为所述编码单元的优选参考帧。

例如,在本实施例中,假设设定模式具体为2n×2n,选定的8×8编码单元对应的2n×2n模式预测单元的优选参考帧为ref2,则选择ref2作为选定的8×8编码单元的优选参考帧;再例如,选定的64×64编码单元对应的2n×2n模式预测单元的优选参考帧为ref1,则选择ref1作为选定的64×64编码单元的优选参考帧。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

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