视频编码模式决策方法、装置、设备及存储介质与流程

专利2022-05-09  1


本发明涉及视频编解码技术领域,尤指一种视频编码模式决策方法、装置、设备及存储介质。



背景技术:

本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

在对视频进行编码的过程中,需要同时保证视频编码的码率和峰值信噪比(peaksignaltonoiseratio,psnr),以实现视频编码后高压缩率和重建图像的效果之间的平衡。在视频编码的过程中,可以将图像划分为多个编码单元(codingunit,cu),根据不同cu中像素的特点,选择合适的编码模式对划分的cu进行编码,来得到能够最好地提高编码效率,平衡压缩率和重建图像效果。

对于在视频编码过程中,如何进行cu划分,及选择划分的cu采用的合适的编码模式,需要进行编码模式决策。相关技术中在进行编码模式决策时,利用多种用于评价各种编码模式的编码效率的代价函数。如何高效地的利用多种代价函数确定cu的划分方式及决策cu的编码模式,需要提供一种相应的解决方案。



技术实现要素:

本发明实施例提供一种视频编码模式决策方法,用以解决现有技术中存在编码模式决策效率较低的问题。

第一方面,本申请一实施例提供了一种视频编码模式决策方法,包括:

获取待编码的视频流,将所述视频流中的视频帧划分为多级编码单元;

由下级至上级逐级执行如下步骤进行目标编码单元决策:

对于当前级别中待决策目标编码单元的候选编码单元,确定所述候选编码单元的第一损失代价函数值;

根据所述候选编码单元的第一损失代价函数值,及所述候选编码单元在下级对应的子候选编码单元的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元;

将决策的候选目标编码单元根据第一预设条件分类为第一候选编码单元和第二候选编码单元;

将第二候选编码单元向上一级进行目标编码单元决策,结束针对所述第一候选编码单元向上一级进行目标编码单元决策,并根据决策的候选目标编码单元,确定第一候选编码单元的目标编码单元。

本申请通过对划分得到的各级别cu,通过该cu与下级对应的子cu使用第一损失代价函数值进行决策,确定采用当前级别的cu或者下一级的cu作为进一步决策的cu。通过所述第一预设条件将进一步决策的cu分类,对满足第一预设条件的第一候选cu结束决策,对不满足第一预设条件的第二候选cu向上一级进一步决策,以此循环,直至将所述视频帧中的所有区域完成决策,最终得到不同级别、不同大小的目标cu(不考虑极特殊情况)。这样,由最后一级cu至第一级cu逐级向上使用第一损失代价函数值进行决策,对满足第一预设条件的cu结束向上级的决策,后续不再对这部分cu及对应的上级cu计算第一损失代价函数值,从而减少了计算量。

可选地,将所述视频流中的视频帧划分为多级编码单元,包括:

将所述视频流中的视频帧划分为多个编码树单元;

对每个所述编码树单元划分多个第一级编码单元,之后每级编码单元划分为多个下一级编码单元;

基于每级划分得到的编码单元,根据不同候选编码模式对应的第二损失代价函数值确定满足结束条件时,结束向下一级划分。

这样,通过对每级cu计算第二损失代价函数值,根据所述第二损失代价函数值动态确定对ctu划分的层级,从而动态确定最后一级cu的尺寸。

可选地,根据不同编码模式对应的第二损失代价函数值确定满足结束条件,包括:

根据不同编码模式对应的第二损失代价函数值,确定其中一个编码模式的第二损失代价函数值小于预设结束阈值时,确定满足结束条件。

这样,通过当一个编码模式的第二损失代价函数值小于预设结束阈值时。结束对cu的划分,从而动态确定最后一级cu的尺寸。

可选地,根据所述候选编码单元的第一损失代价函数值,及所述候选编码单元在下级对应的子候选编码单元的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元,包括:

根据所述候选编码单元在不同编码模式下的第一损失代价函数值,决策所述候选编码单元的编码模式;

确定当前级别不是最后一级时,根据所述候选编码单元在决策的编码模式下的第一损失代价函数值,及该候选编码单元在下级对应的子候选编码单元在决策的编码模式下的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元。

这样,通过比较当前级别的候选cu与其对应的下一级别的候选cu的第一损失代价函数值,能够对此候选cu的区域决策出采用整体编码或划分后再编码中效果更优的方案。

可选地,若当前级别为最后一级的上一级时,还包括:

根据候选编码单元对应的子候选编码单元决策的编码模式,确定满足第二预设条件的候选编码单元;

对于满足第二预设条件的候选编码单元,决策采用对应的子候选编码单元作为候选目标编码单元;

对于不满足第二预设条件的候选编码单元,触发不同编码模式下的第一损失代价函数值计算。

这样,根据最后一级的候选cu的编码模式优先进行决策是否采用按最后一级的划分方式进行编码,能够减少高层级候选cu的第一损失代价函数值的计算量。

可选地,根据候选编码单元对应的子候选编码单元决策的编码模式,确定满足第二预设条件的候选编码单元,包括:

确定候选编码单元对应的子候选编码单元决策的编码模式中,同一个编码模式的子候选编码单元数量大于等于预设数量时,确定满足所述候选编码单元满足第二预设条件。

这样,通过同一编码模式的最后一级候选cu的数量来进行决策是否采用最后一级的划分方式进行编码,编码的效果较优。

可选地,确定候选编码单元对应的子候选编码单元决策的编码模式中,同一个编码模式的子候选编码单元数量大于等于预设数量时,确定满足所述候选编码单元满足第二预设条件,包括:

确定候选编码单元对应的所有子候选编码单元决策的编码模式相同时,确定满足所述候选编码单元满足第二预设条件。

使用第n-1级候选cu对应的第n级子候选cu总数量作为预设数量决策是否采用最后一级候选cu作为编码的cu,编码的效果较好。

可选地,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元,包括:

确定所述候选编码单元在决策的编码模式下的第一损失代价函数值,是否小于所述候选编码单元在下级对应的子候选编码单元在决策的编码模式下的第一损失代价函数值总和;

若小于,决策采用所述候选编码单元作为候选目标编码单元;

否则,采用下级对应的所述子候选编码单元作为候选目标编码单元。

这样,利用两者之间的较小值,可以选择出编码方式更优的划分方式。

可选地,将决策的候选目标编码单元根据第一预设条件分类为第一候选编码单元和第二候选编码单元,包括:

确定同属于上一级的编码单元的多个候选编码单元;

确定所述多个候选编码单元中,至少一个候选编码单元采用对应的子候选编码单元作为候选目标编码单元时,确定所述多个候选编码单元为符合第一预设条件的编码单元;

否则,确定所述多个候选编码单元为第二候选编码单元。

这样,通过对同属于一个上一级cu的候选cu,直接根据其它同一级候选cu中采用下级cu进行编码的情况结束决策,可以进一步地减少计算量。

可选地,所述第二损失代价函数值为绝对变换差和satd值。

可选地,所述第一损失代价函数值为率失真代价rdo值。

可选地,所述的方法还包括:

完成所有级的目标编码单元决策后,对决策出的目标编码单元,采用决策该目标编码单元的编码模式进行编码。

这样,利用上述决策方法能够决策出较优的cu划分方式和编码模式的同时减少了计算量,实现了高效地对视频帧不同区域采用效率更高的方式进行编码。

第二方面,本申请一实施例提供了一种视频编码模式决策装置,包括:

编码单元划分单元,用于获取待编码的视频流,将所述视频流中的视频帧划分为多级编码单元;第二损失代价函数值由下级至上级逐级执行如下步骤进行目标编码单元决策:

代价计算单元,用于对于当前级别中待决策目标编码单元的候选编码单元,确定所述候选编码单元的第一损失代价函数值;

决策单元,用于根据所述候选编码单元的第一损失代价函数值,及所述候选编码单元在下级对应的子候选编码单元的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元;

分类单元,用于将决策的候选目标编码单元根据第一预设条件分类为第一候选编码单元和第二候选编码单元;

循环单元,用于将第二候选编码单元向上一级进行目标编码单元决策,结束针对所述第一候选编码单元向上一级进行目标编码单元决策,并根据决策的候选目标编码单元,确定第一候选编码单元的目标编码单元。

可选地,将所述视频流中的视频帧划分为多级编码单元,包括:

将所述视频流中的视频帧划分为多个编码树单元;

对每个所述编码树单元划分多个第一级编码单元,之后每级编码单元划分为多个下一级编码单元;

基于每级划分得到的编码单元,根据不同候选编码模式对应的第二损失代价函数值确定满足结束条件时,结束向下一级划分。

可选地,根据不同编码模式对应的第二损失代价函数值确定满足结束条件,包括:

根据不同编码模式对应的第二损失代价函数值,确定其中一个编码模式的第二损失代价函数值小于预设结束阈值时,确定满足结束条件。

可选地,根据所述候选编码单元的第一损失代价函数值,及所述候选编码单元在下级对应的子候选编码单元的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元,包括:

根据所述候选编码单元在不同编码模式下的第一损失代价函数值,决策所述候选编码单元的编码模式;

确定当前级别不是最后一级时,根据所述候选编码单元在决策的编码模式下的第一损失代价函数值,及该候选编码单元在下级对应的子候选编码单元在决策的编码模式下的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元。

可选地,若当前级别为最后一级的上一级时,还包括:

根据候选编码单元对应的子候选编码单元决策的编码模式,确定满足第二预设条件的候选编码单元;

对于满足第二预设条件的候选编码单元,决策采用对应的子候选编码单元作为候选目标编码单元;

对于不满足第二预设条件的候选编码单元,触发不同编码模式下的第一损失代价函数值计算。

可选地,根据候选编码单元对应的子候选编码单元决策的编码模式,确定满足第二预设条件的候选编码单元,包括:

确定候选编码单元对应的子候选编码单元决策的编码模式中,同一个编码模式的子候选编码单元数量大于等于预设数量时,确定满足所述候选编码单元满足第二预设条件。

可选地,确定候选编码单元对应的子候选编码单元决策的编码模式中,同一个编码模式的子候选编码单元数量大于等于预设数量时,确定满足所述候选编码单元满足第二预设条件,包括:

确定候选编码单元对应的所有子候选编码单元决策的编码模式相同时,确定满足所述候选编码单元满足第二预设条件。

可选地,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元,包括:

确定所述候选编码单元在决策的编码模式下的第一损失代价函数值,是否小于所述候选编码单元在下级对应的子候选编码单元在决策的编码模式下的第一损失代价函数值总和;

若小于,决策采用所述候选编码单元作为候选目标编码单元;

否则,采用下级对应的所述子候选编码单元作为候选目标编码单元。

可选地,将决策的候选目标编码单元根据第一预设条件分类为第一候选编码单元和第二候选编码单元,包括:

确定同属于上一级的编码单元的多个候选编码单元;

确定所述多个候选编码单元中,至少一个候选编码单元采用对应的子候选编码单元作为候选目标编码单元时,确定所述多个候选编码单元为符合第一预设条件的编码单元;

否则,确定所述多个候选编码单元为第二候选编码单元。

可选地,所述第二损失代价函数值为绝对变换差和satd值。

可选地,所述第一损失代价函数值为率失真代价rdo值。

可选地,所述的装置还包括:

完成所有级的目标编码单元决策后,对决策出的目标编码单元,采用决策该目标编码单元的编码模式进行编码。

第三方面,本申请一实施例提供了一种电子设备,包括:处理器和用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现所述的视频编码模式决策方法。

第四方面,本申请一实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被用于实现所述的视频编码模式决策方法。

本发明实施例提供的视频编码模式决策方法、装置、电子设备及存储介质,通过对划分得到的各级别cu,通过该cu与下级对应的子cu使用第一损失代价函数值进行决策,确定采用当前级别的cu或者下一级的cu作为进一步决策的cu。通过所述第一预设条件将进一步决策的cu分类,对满足第一预设条件的第一候选cu结束决策,对不满足第一预设条件的第二候选cu向上一级进一步决策,以此循环,直至将所述视频帧中的所有区域完成决策,最终得到不同级别、不同大小的目标cu(不考虑极特殊情况)。这样,由最后一级cu至第一级cu逐级向上使用第一损失代价函数值进行决策,对满足第一预设条件的cu结束向上级的决策,后续不再对这部分cu及对应的上级cu计算第一损失代价函数值,从而减少了计算量。这样,实现了高效地对视频帧不同区域采用效率更高的方式进行编码。

附图说明

通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,其中:

图1为本申请一实施例应用的视频编解码系统的结构图;

图2a为本申请一实施例提供的视频编码模式决策方法的流程图之一;

图2b为本申请一实施例提供的视频编码模式决策方法的流程图之二;

图3为本申请一实施例提供的视频编码模式决策方法的部分流程图;

图4为本申请一实施例提供的视频编码模式决策方法的部分流程图;

图5a为本申请一实施例提供的视频帧划分效果示意图;

图5b为本申请一实施例提供的局部视频帧划分效果示意图之一;

图5c为本申请一实施例提供的局部视频帧划分效果示意图之二;

图6为本申请一实施例提供的视频编码模式决策方法的部分流程图;

图7为本申请一实施例提供的视频编码模式决策方法的部分流程图;

图8为本申请一实施例提供的视频编码模式决策方法的部分流程图;

图9为本申请一实施例提供的视频编码模式决策方法的部分流程图;

图10为本申请一实施例提供的视频编码模式决策方法的部分流程图;

图11为本申请一实施例提供的视频编码模式决策装置的结构示意图;

图12为本申请一实施例提供的电子设备的结构示意图;

图13为本申请一实施例提供的计算机程序产品的结构示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本申请的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

为了方便理解,下面对本申请实施例中涉及的名词进行解释:

(一)树编码单元(codingtreeunits,ctu):

在h.264/avc(advancedvideocoding,高级视频编码)标准中,视频帧被划分为16×16大小的宏块,从而在编码过程中以宏块为单位对视频帧进行编码压缩。然而,在更高分辨率下,单个宏块所表示的图像内容信息大大减少,h.264所采用的宏块经过整数变换后,低频系数相似程度也大大提高,出现大量冗余,导致h.264编码对高清视频的压缩效率明显降低;其次,h.264算法宏块个数的爆发式增长,会导致每个编码宏块的预测模式、运动矢量、参考帧索引和量化级等宏块级参数信息占用更多码流资源,也降低了编码压缩率。

为了解决上述问题,从h.265/hevc(highefficiencyvideocoding,高效视频编码)标准开始,引入ctu和编码单元(codingunit,cu)作为编码的单位。

在使用ctu进行编码的标准中,首先将视频帧划分为ctu,之后根据编码需要再将ctu划分为cu。根据不同的编码设置,ctu的尺寸可以被设置为64×64或有限的32×32或16×16。

(二)编码单元(codingunit,cu):

很多研究都展示出更大的树编码单元可以提供更高的压缩效率(同样也需要更高的编码速度)。每个ctu可以被递归分割,将视频帧划分为ctu后,再根据信息量的不同利用四叉树结构,分割为32×32、16×16、8×8的子区域。信息量不多的区域划分的cu较大,编码后的码字较少;而细节多的地方划分的cu就较小,编码后的码字较多。这样就相当于对图像进行了有重点的编码,针对重要的更多关键细节的部分进行增强划块,从而降低了整体的码率,编码效率就相应得到了提高。每个图像进一步被区分为特殊的树编码块组,称之为切割(slices)和拼贴(tiles)。ctu可向下分成编码单元(codingunit,cu)、预测单元(predictionunit,pu)及转换单元(transformunit,tu)。编码单元cu是ctu结构上的一个叶子(leafnode)。ctu可以包含有一个cu或是切割成多个较小的cu。

(三)绝对变换差和(sumofabsolutetransformeddifference,satd):

satd即将残差经哈德曼变换的4×4块的预测残差绝对值总和,可以将其看作简单的时频变换,其值在一定程度上可以反映生成码流的大小。

(四)率失真代价(ratedistortionoptimized,rdo)值:

j(mode)=ssd λ*r(ref,mode,mv,residual)

其中,j(mode)为在对应编码模式下的rdo值,ssd为重建块与源图像的差值均方和;λ为拉格朗日乘子;r为编码当前模式下所有信息(包括参考帧ref、模式mode、运动矢量mv、残差residual)所需要的比特数。若为帧内模式,就只有r(mode,residual)。

在帧内编码中,如果所有模式都使用j(mode)=ssd λ*r(mode,residual)计算率失真代价,则其计算复杂度会非常高。为了减小模式选择的复杂度,一般采用如下的替代公式:

j(mode)=satd λ*r(ref,mode,mv)

这种方法省去了变换、量化、反量化、反变换以及熵编码的过程,极大的降低了复杂度。

下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。

发明概述

现有技术中利用多种代价函数确定cu的划分方式及决策cu的编码模式的技术方案较为复杂,运算量较大,编码模式决策效率较低。

为了解决上述问题,本申请提供了一种视频编码模式决策方法,包括:获取待编码的视频流,将所述视频流中的视频帧划分为多级编码单元;由下级至上级逐级执行如下步骤进行目标编码单元决策:对于当前级别中待决策目标编码单元的候选编码单元,确定所述候选编码单元的第一损失代价函数值;根据所述候选编码单元的第一损失代价函数值,及所述候选编码单元在下级对应的子候选编码单元的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元;将决策的候选目标编码单元根据第一预设条件分类为第一候选编码单元和第二候选编码单元;将第二候选编码单元向上一级进行目标编码单元决策,结束针对所述第一候选编码单元向上一级进行目标编码单元决策,并根据决策的候选目标编码单元,确定第一候选编码单元的目标编码单元。

在介绍了本申请的基本原理之后,下面具体介绍本申请的各种非限制性实施方式。

应用场景总览

参考图1,其为本申请实施例提供的视频编码模式决策方法的应用场景示意图。在图1所示的应用场景中包括终端设备101和终端设备102。终端设备101和终端设备102包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视、车载设备、个人数字助理(personaldigitalassistant,pda)等电子设备。其中,所述终端设备101与终端设备102可以为两个不同的设备,也可以为同一个设备,此处仅为说明两者之间的编码与解码的对应关系而作区分。

终端设备101用于获取待编码的视频流,将所述视频流中的视频帧划分为多级编码单元;由下级至上级逐级执行如下步骤进行目标编码单元决策:对于当前级别中待决策目标编码单元的候选编码单元,确定所述候选编码单元的第一损失代价函数值;根据所述候选编码单元的第一损失代价函数值,及所述候选编码单元在下级对应的子候选编码单元的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元;将决策的候选目标编码单元根据第一预设条件分类为第一候选编码单元和第二候选编码单元;将第二候选编码单元向上一级进行目标编码单元决策,结束针对所述第一候选编码单元向上一级进行目标编码单元决策,并根据决策的候选目标编码单元,确定第一候选编码单元的目标编码单元。完成所有级的目标编码单元决策后,对决策出的目标编码单元,采用决策该目标编码单元的编码模式进行编码,最终得到完成编码的视频文件。所述终端设备101将所述视频文件交给所述终端设备102。其中,所述终端设备101与所述终端设备102之间的数据传输方法包括但不限于通过网络连接、移动存储介质读取等方式。

终端设备102用于接收终端设备101编码的视频文件,并使用解码器对所述视频文件进行解码并播放。

需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。

示例性方法

参考图2a,本申请实施例提供了一种视频编码模式决策方法,包括:

s21、获取待编码的视频流,将所述视频流中的视频帧划分为多级cu;

在具体实施过程中,对视频帧划分为多级cu,首先将所述视频帧划分为多个ctu,之后对ctu可以为划分为预设级别的cu(例如预设级别为4,将ctu划分4次,得到4个级别的cu);也可以动态确定划分的级别(例如后文将要展开说明的对cu逐级划分,判断是否向下一级划分的方案)。

s22、由下级至上级逐级执行如下步骤进行目标cu决策:所述步骤s22具体包括:

s221、对于当前级别中待决策目标cu的候选cu,确定所述候选cu的第一损失代价函数值;

在具体实施过程中,所述步骤s221中计算的候选cu的第一损失代价函数值是在不同编码模式下分别计算的,即每个候选cu的第一损失代价函数值为多个。

可选地,所述第一损失代价函数值为rdo值。

在具体实施过程中,rdo值的计算可以根据现有技术进行计算,本申请不做限定。

s222、根据所述候选cu的第一损失代价函数值,及所述候选cu在下级对应的子候选cu的第一损失代价函数值,将所述候选cu或所述子候选cu决策为候选目标cu;

例如,根据所述候选cu的最小的第一损失代价函数值,及所述候选cu在下级对应的子候选cu的最小的第一损失代价函数值之和,来决策候选目标cu。

s223、将决策的候选目标cu根据第一预设条件分类为第一候选cu和第二候选cu;

在具体实施过程中,根据通过对候选目标cu是否满足第一预设条件来进行分类,将满足第一预设条件的分类为第一候选cu,将不满足第一预设条件的分类为第二候选cu。所述第一预设条件可以包括但不限于已被决策为候选目标cu不是当前级别的cu,或者进一步地与所述候选目标cu属于同一个上一级cu地其它候选目标cu中存在不是当前级别的候选目标cu等。

s224、将第二候选cu向上一级进行目标cu决策,结束针对所述第一候选cu向上一级进行目标cu决策,并根据决策的候选目标cu,确定第一候选cu的目标cu。

本申请通过对划分得到的各级别cu,通过该cu与下级对应的子cu使用第一损失代价函数值进行决策,确定采用当前级别的cu或者下一级的cu作为进一步决策的cu。通过所述第一预设条件将进一步决策的cu分类,对满足第一预设条件的第一候选cu结束决策,对不满足第一预设条件的第二候选cu向上一级进一步决策,以此循环,直至将所述视频帧中的所有区域完成决策,最终得到不同级别、不同大小的目标cu(不考虑极特殊情况)。这样,由最后一级cu至第一级cu逐级向上使用第一损失代价函数值进行决策,对满足第一预设条件的cu结束向上级的决策,后续不再对这部分cu及对应的上级cu计算第一损失代价函数值,从而减少了计算量。

可选地,如图2b所示,除了与图2a中示意的步骤相同的步骤外,所述方法还包括:

s23、完成所有级的目标cu决策后,对决策出的目标cu,采用决策该目标cu的编码模式进行编码。

这样,利用上述决策方法能够决策出较优的cu划分方式和编码模式的同时减少了计算量,实现了高效地对视频帧不同区域采用效率更高的方式进行编码。

可选地,如图3所示,所述步骤s21中,将所述视频流中的视频帧划分为多级cu,包括:

s301、将所述视频流中的视频帧划分为多个ctu;

s302、对每个所述ctu划分多个第一级cu,之后每级cu划分为多个下一级cu;

s303、基于每级划分得到的cu,判断不同候选编码模式对应的第二损失代价函数值是否满足结束条件;

若为是,执行步骤s304;若为否,返回所述步骤s302;

s304、结束向下一级划分。

在具体实施过程中,划分过程对每级cu计算第二损失代价函数值的候选编码模式包括:skip模式、merge模式、amvp模式、intra模式。

在本申请中,cu的划分顺序是由第一级至最后一级,那么最后一级是指通过所述步骤s304确定结束向下一级划分时的级别。

这样,通过对每级cu计算第二损失代价函数值,根据所述第二损失代价函数值动态确定对ctu划分的层级,从而动态确定最后一级cu的尺寸。

可选地,根据不同编码模式对应的第二损失代价函数值确定满足结束条件,包括:

根据不同编码模式对应的第二损失代价函数值,确定其中一个编码模式的第二损失代价函数值小于预设结束阈值时,确定满足结束条件。

这样,通过当一个编码模式的第二损失代价函数值小于预设结束阈值时。结束对cu的划分,从而动态确定最后一级cu的尺寸。可选地,所述第二损失代价函数值为satd值。

这样,使用satd值与rdo值相比,可以减小划分过程的运算量。

具体地,如图4所示,所述步骤s222、根据所述候选cu的第一损失代价函数值,及所述候选cu在下级对应的子候选cu的第一损失代价函数值,将所述候选cu或所述子候选cu决策为候选目标cu,包括:

s400、判断当前级别是否为最后一级的上一级;

若所述步骤s400结果为否,执行所述步骤s401;

s401、触发对候选cu的不同编码模式下的第一损失代价函数值计算;

s402、根据所述候选cu在不同编码模式下的第一损失代价函数值,决策所述候选cu的编码模式;

s403、判断当前级别是否为最后一级;

若所述步骤s403的结果为是,结束决策过程;若所述步骤s403结果为否,执行步骤s404;

s404、根据所述候选cu在决策的编码模式下的第一损失代价函数值,及该候选cu在下级对应的子候选cu在决策的编码模式下的第一损失代价函数值,决策候选目标cu;

根据所述步骤s404的结果,对应执行步骤s405或s406;

s405、决策采用对应的子候选cu作为候选目标cu;

s406、决策采用候选cu作为候选目标cu。

这样,通过比较当前级别的候选cu与其对应的下一级别的候选cu的第一损失代价函数值,能够对此候选cu的区域决策出采用整体编码或划分后再编码中效果更优的方案。

可选地,所述方法还包括:

若所述步骤s400结果为是,执行步骤s407;

s407、根据候选cu对应的子候选cu决策的编码模式,判断是否满足第二预设条件;

若所述步骤s407结果为是,执行所述步骤s405;若所述步骤s407结果为否,执行所述步骤s401。

这样,根据最后一级的候选cu的编码模式优先进行决策是否采用按最后一级的划分方式进行编码,能够减少高层级候选cu的第一损失代价函数值的计算量。

可选地,所述步骤s407、根据候选cu对应的子候选cu决策的编码模式,判断是否满足第二预设条件,包括:

判断候选cu对应的子候选cu决策的编码模式中,同一个编码模式的子候选编码单元数量是否大于等于预设数量。

图5a示意了对视频帧进行划分,不同级别的cu的大小关系(为便于理解,没有对所有的cu进行示意)。图5b是图5a中某一个第n级cu与对其划分得到的第n 1级cu的示意图。例如,如图5b所示,一个视频帧中被划分的一个第n级cu(n=n-1,n为所述最后一级的级别),被划分为4个第n 1级cu。通过所述步骤s402的计算,确定所述4个第n 1级cu的编码模式均为skip模式。所述预设数量为3。那么所述第n级cu满足第二预设条件,采用所述4个第n 1级cu作为候选目标cu。

或者,通过所述步骤s402的计算,确定所述4个第n 1级cu中,2个的第n 1级cu编码模式为skip模式,1个第n 1级cu编码模式为amvp模式,1个第n 1级cu编码模式为intra模式。所述预设数量为3。那么所述第n级cu不满足第二预设条件,通过所述步骤s401计算不同编码模式下的第一损失代价函数值,并通过所述步骤s402决策所述第n级cu的编码模式为skip模式。之后,在所述步骤s403中,根据该第n级cu的skip模式的第一损失代价函数值,和2个的第n 1级cu编码模式为skip模式的第一损失代价函数值、1个第n 1级cu编码模式为amvp模式的第一损失代价函数值、1个第n 1级cu编码模式为intra模式的第一损失代价函数值,将所述该第n级cu或4个第n 1级候选cu决策为候选目标cu。

这样,通过同一编码模式的最后一级候选cu的数量来进行决策是否采用最后一级的划分方式进行编码,编码的效果较优。可选地,如图6所示,所述步骤s403中,将所述候选cu或所述子候选cu决策为候选目标cu,包括:

s601、确定所述候选cu在决策的编码模式下的第一损失代价函数值,是否小于所述候选cu在下级对应的子候选cu在决策的编码模式下的第一损失代价函数值总和;

若所述步骤s601结果为是,执行步骤s602;若所述步骤s601结果为否,执行步骤s603;

s602、决策采用所述候选cu作为候选目标cu;

s603、采用下级对应的所述子候选cu作为候选目标cu。

例如,如图5b所示,一个视频帧中被划分的一个第n级cu(n≠n,n为所述最后一级的级别),被划分为4个第n 1级cu。根据所述第n级cu的第一损失代价函数值,与4个所述第n 1级cu的第一损失代价函数值之和,确定两者之中的较小数值。

①第n级cu的第一损失代价函数值较小,决策所述第n级cu为候选目标cu。

②4个所述第n 1级cu的第一损失代价函数值之和较小,决策所述4个第n 1级cu为候选目标cu。

在具体实施过程中,所述预设数量可以为第n-1级候选cu对应的第n级子候选cu总数量的至少一半,至多相等。例如,1个第n-1级候选cu对应4个第n级子候选cu,那么所述预设数量可以为2、3、4。

这样,利用两者之间的较小值,可以选择出编码方式更优的划分方式。

作为一种可选的实施方式,所述预设数量为第n-1级候选cu对应的第n级子候选cu总数量。

那么相应地,确定候选cu对应的子候选cu决策的编码模式中,相同编码模式的数量大于等于预设数量时,确定满足所述候选cu满足第二预设条件,包括:

确定候选cu对应的所有子候选cu决策的编码模式相同时,确定满足所述候选cu满足第二预设条件。

使用第n-1级候选cu对应的第n级子候选cu总数量作为预设数量决策是否采用最后一级候选cu作为编码的cu,编码的效果较好。

如图7所示,所述步骤s204、将决策的候选目标cu根据第一预设条件分类为第一候选cu和第二候选cu,包括:

s701、确定同属于上一级的cu的多个候选cu;

s702、判断所述多个候选cu中,是否至少一个候选cu采用对应的子候选cu作为候选目标cu;

若为是,s703、确定所述多个候选cu为第一候选cu;

若为否,s704、确定所述多个候选cu为第二候选cu。

例如,如图5c所示,一个视频帧中被划分的一个第n级cu(n<n-1,n为所述最后一级的级别),被划分为4个第n 1级cu。其中某一个第n 1级cu对应的区域已被决策为采用划分的4个第n 2级cu作为候选目标cu,另外3个第n 1级cu对应的区域分别被决策为采用第n 1级cu作为候选目标cu。那么,所述第n级cu中,4个第n 2级cu及其余区域中的3个第n 1级cu均将被分类为第一候选cu。

或者,如图5b所示,一个视频帧中被划分的一个第n级cu(n≠n,n为所述最后一级的级别),被划分为4个第n 1级cu,且所述4个第n 1级cu均被决策为第二候选cu。那么将对所述第n级cu利用所述步骤s202、s203进行决策。从而实现由最后一级至第一级的cu循环决策,直至完成对应的ctu的决策。

这样,通过对同属于一个上一级cu的候选cu,直接根据其它同一级候选cu中采用下级cu进行编码的情况结束决策,可以进一步地减少计算量。

下面将给出一种具体的示例,对本申请提供的视频编码模式决策方法进行说明。

(1)将视频帧划分为多个64×64的ctu;

(2)将每个ctu划分为4个32×32的cu,对32×32的cu分别计算skip模式、merge模式、amvp模式、intra模式下的satd值,根据其中最小的satd值与预设结束阈值进行比较,确定大于预设结束阈值,继续向下一级划分;

(3)将每个32×32的cu划分为4个16×16的cu,对16×16的cu分别计算skip模式、merge模式、amvp模式、intra模式下的satd值,根据其中最小的satd值与预设结束阈值进行比较,确定大于预设结束阈值,继续向下一级划分;

(4)将每个16×16cu划分为4个8×8的cu,对8×8的cu分别计算skip模式、merge模式、amvp模式、intra模式下的satd值,根据其中最小的satd值与预设结束阈值进行比较,确定小于预设结束阈值,结束向下一级划分;

(5)对每个8×8的cu,分别计算skip模式、merge模式、amvp模式、intra模式下的rdo值,根据其中最小的rdo值决策出最佳编码模式。

(6)判断属于同一个16×16的cu的4个8×8的cu,这4个决策出的最佳模式是否为同一个模式;

若为是,此16×16的cu采用此4个8×8的cu使用对应的编码模式进行编码;

若为否,对此16×16的cu,分别计算skip模式、merge模式、amvp模式、intra模式下的rdo值,根据其中最小的rdo值决策出最佳编码模式;比较16×16的cu的最小rdo值,与4个8×8的cu的最小rdo值之和,根据两者中的较小值,选择对应的4个8×8的cu使用对应的编码模式进行编码,或者选择16×16的cu进行进一步决策;

(7)对每个32×32的cu,如果里面存在16×16的cu的区域已决策为采用8×8的cu编码,则不再进行32×32的cu的rdo值计算;否则计算32×32的cu的rdo值,根据其中最小的rdo值决策出最佳编码模式;比较32×32的cu的最小rdo值,与4个16×16的cu的最小rdo值之和,根据两者中的较小值,选择对应的4个16×16的cu使用对应的编码模式进行编码,或者选择32×32的cu使用对应的编码模式进行编码。

下面将给出一种详细的示例,对本申请提供的视频编码模式决策方法进行说明。需要说明的是,下文所述的示例中,对部分上文所述的步骤进行了合并。

如图8所示,首先对所述视频流的视频帧划分为多级cu,具体包括:

s801、将所述视频流中的视频帧划分为多个ctu;

s802、判断是否完成对所有ctu的划分;

若所述步骤s802结果为是,结束划分过程,执行图9所示的步骤s901。

若所述步骤s802结果为否,s803、选取一个未完成划分的ctu,将所述ctu设置为第0级cu;

s804、设置n=0;

s805、对所述第n级cu划分为多个第n 1级cu;

s806、基于第n 1级cu,判断不同候选编码模式对应的satd值中是否存在小于预设结束阈值的satd值;

若所述步骤s806的结果为是,执行步骤s807;若所述步骤s806的结果为否,执行步骤s808;

s807、结束向下一级划分;返回所述步骤s802;

s808、设置n=n 1。返回所述步骤s805。

在完成对所述视频帧的划分过程后,依次对每一个ctu对应的区域进行决策,如图9所示,具体包括:

s901、判断是否完成对所述视频帧的所有ctu对应区域的决策;

若为是,s902、对决策出的目标cu,采用决策该目标cu的编码模式进行编码;

若为否,s903、选取一个未完成决策的ctu;执行图10中的步骤s1001;

由最后一级至第一级cu的顺序,逐级向上进行决策,如图10所示,具体包括:

s1001、设置n=n;其中n为划分的cu的最后一级的级别,即n的最大值;

s1002、判断是否完成所有第n级cu选取;

若所述步骤s1002结果为否,执行所述步骤s1003;若所述步骤s1002结果为是,执行所述步骤s1007;

s1003、将一个未被选取为候选cu的第n级cu,作为候选cu;

s1004、判断n是否等于n;

若所述步骤s1004结果为是,执行步骤s1005;若所述步骤s1004结果为否,执行步骤s1009;

s1005、触发所述候选cu不同编码模式下的rdo值计算;

s1006、根据所述候选cu在不同编码模式下的rdo值,决策所述候选cu的编码模式;并返回所述步骤s1002;

s1007、设置n=n-1;

s1008、判断n是否等于0;

若所述步骤s1008结果为是,完成对该ctu所在区域的决策,返回图9所示的步骤s901;

若所述步骤s1008结果为否,返回所述步骤s1002;

s1009、判断n是否等于n-1;

若所述步骤s1009结果为是,执行步骤s1010;若所述步骤s1009结果为否,执行步骤s1016;

s1010、根据第n-1级候选cu对应的第n级子候选cu决策的编码模式,判断同一个编码模式的子候选cu数量是否大于等于预设数量;

若所述步骤s1010结果为是,执行步骤s1011;若所述步骤s1010结果为否,执行步骤s1012;

s1011、决策采用对应的子候选cu作为候选目标cu;并返回所述步骤s1002;

s1012、触发不同编码模式下的rdo值计算;

s1013、根据所述候选cu在不同编码模式下的rdo值,决策所述候选cu的编码模式;

s1014、根据所述候选cu在决策的编码模式下的rdo值,及该候选cu对应的第n 1级子候选cu在决策的编码模式下的rdo值之和,判断两者的较小值;

若所述候选cu对应的rdo值为较小值,执行所述步骤s1015;若所述第n 1级子候选cu对应的rdo值之和为较小值,执行所述步骤s1011;

s1015、决策采用候选cu作为候选目标cu;返回所述步骤s1002;

s1016、判断候选cu的区域中是否存在被决策为目标候选cu的第m级cu;其中m>n 1;

若所述步骤s1016结果为是,返回所述步骤s1002;

若所述步骤s1016结果为否,执行所述步骤s1012。

具体地,在上文所述示例中,所述步骤s1016的作用即为将候选cu分类为所述第一候选cu和第二候选cu。对于第一候选cu,将直接返回所述步骤s1002,即结束了对第一候选cu的决策。对于第二候选cu,通过继续执行s1012等步骤,进行了决策。

示例性设备

在介绍了本申请示例性实施方式的方法之后,接下来对本申请示例性实施方式的视频编码模式决策装置进行介绍。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

如图11所示,为本申请实施例提供的视频编码模式决策装置1100的结构示意图。在一个实施例中,所述视频编码模式决策装置1100包括:编码单元划分单元1101、代价计算单元1102、决策单元1103、分类单元1104、循环单元1105。

编码单元划分单元1101,用于获取待编码的视频流,将所述视频流中的视频帧划分为多级编码单元;第二损失代价函数值由下级至上级逐级执行如下步骤进行目标编码单元决策:

代价计算单元1102,用于对于当前级别中待决策目标编码单元的候选编码单元,确定所述候选编码单元的第一损失代价函数值;

决策单元1103,用于根据所述候选编码单元的第一损失代价函数值,及所述候选编码单元在下级对应的子候选编码单元的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元;

分类单元1104,用于将决策的候选目标编码单元根据第一预设条件分类为第一候选编码单元和第二候选编码单元;

循环单元1105,用于将第二候选编码单元向上一级进行目标编码单元决策,结束针对所述第一候选编码单元向上一级进行目标编码单元决策,并根据决策的候选目标编码单元,确定第一候选编码单元的目标编码单元。

可选地,将所述视频流中的视频帧划分为多级编码单元,包括:

将所述视频流中的视频帧划分为多个编码树单元;

对每个所述编码树单元划分多个第一级编码单元,之后每级编码单元划分为多个下一级编码单元;

基于每级划分得到的编码单元,根据不同候选编码模式对应的第二损失代价函数值确定满足结束条件时,结束向下一级划分。

可选地,根据不同编码模式对应的第二损失代价函数值确定满足结束条件,包括:

根据不同编码模式对应的第二损失代价函数值,确定其中一个编码模式的第二损失代价函数值小于预设结束阈值时,确定满足结束条件。

可选地,根据所述候选编码单元的第一损失代价函数值,及所述候选编码单元在下级对应的子候选编码单元的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元,包括:

根据所述候选编码单元在不同编码模式下的第一损失代价函数值,决策所述候选编码单元的编码模式;

确定当前级别不是最后一级时,根据所述候选编码单元在决策的编码模式下的第一损失代价函数值,及该候选编码单元在下级对应的子候选编码单元在决策的编码模式下的第一损失代价函数值,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元。

可选地,若当前级别为最后一级的上一级时,所述决策单元1103还包括:

根据候选编码单元对应的子候选编码单元决策的编码模式,确定满足第二预设条件的候选编码单元;

对于满足第二预设条件的候选编码单元,决策采用对应的子候选编码单元作为候选目标编码单元;

对于不满足第二预设条件的候选编码单元,触发不同编码模式下的第一损失代价函数值计算。

可选地,根据候选编码单元对应的子候选编码单元决策的编码模式,确定满足第二预设条件的候选编码单元,包括:

确定候选编码单元对应的子候选编码单元决策的编码模式中,同一个编码模式的子候选编码单元数量大于等于预设数量时,确定满足所述候选编码单元满足第二预设条件。

可选地,确定候选编码单元对应的子候选编码单元决策的编码模式中,同一个编码模式的子候选编码单元数量大于等于预设数量时,确定满足所述候选编码单元满足第二预设条件,包括:

确定候选编码单元对应的所有子候选编码单元决策的编码模式相同时,确定满足所述候选编码单元满足第二预设条件。

可选地,将所述候选编码单元或所述子候选编码单元决策为候选目标编码单元,包括:

确定所述候选编码单元在决策的编码模式下的第一损失代价函数值,是否小于所述候选编码单元在下级对应的子候选编码单元在决策的编码模式下的第一损失代价函数值总和;

若小于,决策采用所述候选编码单元作为候选目标编码单元;

否则,采用下级对应的所述子候选编码单元作为候选目标编码单元。

可选地,将决策的候选目标编码单元根据第一预设条件分类为第一候选编码单元和第二候选编码单元,包括:

确定同属于上一级的编码单元的多个候选编码单元;

确定所述多个候选编码单元中,至少一个候选编码单元采用对应的子候选编码单元作为候选目标编码单元时,确定所述多个候选编码单元为符合第一预设条件的编码单元;

否则,确定所述多个候选编码单元为第二候选编码单元。

可选地,所述第二损失代价函数值为绝对变换差和satd值。

可选地,所述第一损失代价函数值为率失真代价rdo值。

可选地,所述视频编码模式决策装置还包括:

编码单元1106,用于完成所有级的目标编码单元决策后,对决策出的目标编码单元,采用决策该目标编码单元的编码模式进行编码。

在此需要说明的是,本发明实施例提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。

基于与上述视频解码方法相同的发明构思,本申请实施例还提供了一种电子设备,该电子设备具体可以为桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视、车载设备、个人数字助理(personaldigitalassistant,pda)等电子设备。

下面参照图12来描述所述电子设备1200。图12显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图12所示,所述电子设备1200可以通用计算设备的形式表现,例如其可以为终端设备所述电子设备1200的组件可以包括但不限于:上述至少一个处理单元1210、上述至少一个存储单元1220、连接不同系统组件(包括存储单元1220和处理单元1210)的总线1230。

处理单元1210可以是通用处理器,例如中央处理器(centralprocessingunit,cpu)、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

总线1230表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储单元1220可以包括易失性存储器形式的可读介质,例如随机存取存储器(randomaccessmemory,ram)1221和/或高速缓存存储器1222,还可以进一步包括只读存储器(read-onlymemory,rom)1223。

存储单元1220还可以包括具有一组(至少一个)程序模块1224的程序/实用工具1225,这样的程序模块1224包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

当程序模块1224被处理单元1210执行时,使得处理单元1210执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的视频解码方法中的各种步骤。

例如,处理单元1210可以执行如图2a中所示的视频编码模式决策方法,包括:s201、获取待编码的视频流,将所述视频流中的视频帧划分为多级cu;由下级至上级逐级执行如下步骤进行目标cu决策:s202、对于当前级别中待决策目标cu的候选cu,确定所述候选cu的第一损失代价函数值;s203、根据所述候选cu的第一损失代价函数值,及所述候选cu在下级对应的子候选cu的第一损失代价函数值,将所述候选cu或所述子候选cu决策为候选目标cu;s204、将决策的候选目标cu根据第一预设条件分类为第一候选cu和第二候选cu;s205、将第二候选cu向上一级进行目标cu决策,结束针对所述第一候选cu向上一级进行目标cu决策,并根据决策的候选目标cu,确定第一候选cu的目标cu。

所述电子设备1200也可以与一个或多个外部设备1240(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与所述电子设备1200交互的设备通信,和/或与使得所述电子设备1200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1250进行。并且,所述电子设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(localareanetwork,lan),广域网(wideareanetwork,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与所述电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合所述电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

示例性程序产品

本申请实施例提供了一种计算机可读存储介质,用于储存上述电子设备所用的计算机程序指令,其包含用于执行本申请任一示例性实施方式中的视频编码模式决策方法的程序。

上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

在一些可能的实施方式中,如图13所示,本申请的各个方面还可以实现为一种计算机程序产品1300,其包括程序代码,当该计算机程序产品在电子设备上运行时,该计算机程序产品用于使所述电子设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的视频编码模式决策方法中的步骤,例如,所述电子设备可以执行如图2a中所示的视频编码模式决策方法,包括:s201、获取待编码的视频流,将所述视频流中的视频帧划分为多级cu;由下级至上级逐级执行如下步骤进行目标cu决策:s202、对于当前级别中待决策目标cu的候选cu,确定所述候选cu的第一损失代价函数值;s203、根据所述候选cu的第一损失代价函数值,及所述候选cu在下级对应的子候选cu的第一损失代价函数值,将所述候选cu或所述子候选cu决策为候选目标cu;s204、将决策的候选目标cu根据第一预设条件分类为第一候选cu和第二候选cu;s205、将第二候选cu向上一级进行目标cu决策,结束针对所述第一候选cu向上一级进行目标cu决策,并根据决策的候选目标cu,确定第一候选cu的目标cu。

所述计算机程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

根据本申请的实施方式的用于视频解码的计算机程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在服务器设备上运行。然而,本申请的程序产品不限于此,在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。

此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本申请的精神和原理,但是应该理解,本申请并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本申请旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

转载请注明原文地址: https://doc.8miu.com/read-150023.html

最新回复(0)