本公开涉及视频处理技术领域,尤其涉及一种视频编码方法、装置、电子设备和计算机可读存储介质。
背景技术:
视频编码是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。
目前来说,视频编码包括帧间编码和帧内编码。对视频中的编码单元进行帧间编码的一个重要内容是:从众多的参考帧中选择出最优的目标参考帧(最优的目标参考帧一般认为是所有参考帧中,率失真代价最小的参考帧),从而利用目标参考帧对当前编码单元进行预测、编码。
由于帧间预测过程中,目标参考帧选择的处理复杂度对于视频编码的效率影响极大,因此如何降低目标参考帧选择的处理复杂度,使得视频编码的复杂度降低,提高视频编码的效率,一直是本领域技术人员研究的问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现要素:
本公开实施例提供一种视频编码方法及装置、电子设备和计算机可读存储介质,能够降低目标参考帧的处理复杂度,进而降低视频编码的复杂度,提高视频编码的效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
本公开实施例提出一种视频编码方法,该方法包括:获取目标视频中当前帧图像的当前编码单元;获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码;确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码;获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码;根据所述第一参考帧、所述第二参考帧和所述第三参考帧,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧;确定所述当前预测单元相对于所述候选参考帧的第一率失真代价,以便根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
本公开实施例提供了一种视频编码装置,所述视频编码装置可以包括:当前编码单元获取模块、第一参考帧获取模块、第二参考帧获取模块、第三参考帧获取模块、候选参考帧确定模块、率失真代价确定模块以及编码模块。
其中,所述当前编码单元获取模块配置为获取目标视频中当前帧图像的当前编码单元。所述第一参考帧获取模块配置为获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码。所述第二参考帧获取模块配置为确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码。所述第三参考帧获取模块配置为获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码。所述候选参考帧确定模块配置为根据所述第一参考帧、所述第二参考帧和所述第三参考帧,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧。所述率失真代价确定模块配置为确定所述当前预测单元相对于所述候选参考帧的第一率失真代价。所述编码模块配置为根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
在一些实施例中,所述当前分割模式为整体分割模式。
在一些实施例中,所述候选参考帧确定模块可以包括:整体分割模式下候选参考帧确定单元和候选参考帧增强单元。
其中,所述整体分割模式下候选参考帧确定单元配置为根据所述第一参考帧、所述第二参考帧生成所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧。所述候选参考帧增强单元配置为根据所述当前帧图像的帧类型将所述当前帧图像的前k1参考帧或后k2参考帧,作为所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧,k1和k2均为大于或者等于1的整数。
在一些实施例中,所述当前分割模式为对称分割模式,所述目标分割模式包括整体分割模式。
在一些实施例中,所述候选参考帧确定模块可以包括:对称分割模式下第一候选参考帧确定单元。
其中,所述对称分割模式下第一候选参考帧确定单元配置为将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在一些实施例中,所述当前分割模式为对称分割模式,所述目标分割模式包括整体分割模式和所述对称分割模式中的预测分割模式。
在一些实施例中,所述候选参考帧确定模块可以包括:对称分割模式下第二候选参考帧确定单元。
其中,所述对称分割模式下第二候选参考帧确定单元配置为:将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式下和所述已预测分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在一些实施例中,所述当前分割模式为非对称分割模式,所述目标分割模式包括整体分割模式和对称分割模式。
在一些实施例中,所述候选参考帧确定模块可以包括:非对称分割模式下第一候选参考帧确定单元。
其中,所述非对称分割模式下第一候选参考帧确定单元配置为将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式和所述对称分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在一些实施例中,所述当前分割模式为非对称分割模式,所述当前编码单元在所述非对称分割模式下包括第一当前预测单元,所述目标分割模式包括整体分割模式和对称分割模式,所述当前编码单元在所述对称分割模式下包括第一目标预测单元。
在一些实施例中,所述候选参考帧确定模块可以包括:目标第一参考帧确定单元、目标第二参考帧确定单元以及非对称分割模式下第二候选参考帧确定单元。
其中,所述目标第一参考帧确定单元配置为从所述当前编码单元在所述整体分割模式下的预测单元的候选参考帧中,确定率失真代价最小的目标第一参考帧。所述目标第二参考帧确定单元配置为从所述第一目标预测单元的候选参考帧中,确定率失真代价最小的目标第二参考帧。所述非对称分割模式下第二候选参考帧确定单元配置为将所述目标第一参考帧和所述目标第二参考帧,作为所述当前编码单元在所述非对称分割模式下的所述第一当前预测单元对应的候选参考帧。
在一些实施例中,所述当前编码单元在所述非对称分割模式下还包括第二当前预测单元,所述当前编码单元在所述对称分割模式下还包括第二目标预测单元。
在一些实施例中,所述候选参考帧确定模块可以包括:第三参考帧确定单元和非对称分割模式下第三候选参考帧确定单元。
其中,所述第三参考帧确定单元配置为从所述第二目标预测单元的候选参考帧中,确定率失真代价最小的目标第三参考帧。所述非对称分割模式才第三候选参考帧确定单元配置为将所述目标第一参考帧和所述目标第三参考帧,作为所述当前编码单元在所述非对称分割模式下的所述第二当前预测单元对应的候选参考帧。
在一些实施例中,所述视频编码装置可以包括:预测单元最小率失真代价确定模块、各个分割模式最小率失真代价确定模块、率失真代价最小的分割模式确定模块以及编码模块。
其中,所述预测单元最小率失真代价确定模块配置为获取所述编码单元在各个分割模式下的各个预测单元的最小率失真代价。所述各个分割模式最小率失真代价确定模块配置为根据各个预测单元的最小率失真代价确定各个分割模式对应的最小率失真代价。所述率失真代价最小非分割模式确定模块配置为根据各个分割模式的最小率失真代价确定所述当前编码单元中率失真代价最小的分割模式。所述编码模块配置为根据所述率失真代价最小的分割模式对所述当前编码单元进行编码。
在一些实施例中,所述编码模块可以包括:目标参考帧确定单元、当前参考单元确定单元、目标残差确定单元以及目标残差编码单元。
其中,所述目标参考帧确定单元配置为获取在所述率失真代价最小的分割模式下各个预测单元对应的目标参考帧。所述当前参考单元确定单元配置为根据所述目标参考帧生成所述当前编码单元的当前参考单元。所述目标残差确定单元配置为根据所述当前参考单元生成所述当前编码单元的目标运动矢量和目标残差。所述目标残差编码单元配置为对所述目标运动矢量和所述目标残差进行编码,以对所述当前编码单元进行编码。
本公开实施例提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的视频编码方法。
本公开实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述任一项所述的视频编码方法。
本公开实施例提供的视频编码方法、装置、电子设备和计算机可读存储介质,根据当前编码单元相邻的第一预测单元的第一参考帧、当前编码单元的父编码单元或子编码单元的第二预测单元的第二参考帧以及当前编码单元在目标分割模式下的第三预测单元的第三参考帧,自适应地生成了当前编码单元在当前分割模式下的当前预测单元的候选参考帧。根据上述方法确定的候选参考帧对当前预测单元进行预测,一方面通降低了通过候选参考帧确定率失真代价最小的目标参考帧的处理复杂度,降低了视频编码的复杂度,另一方面通过确定与当前预测单元更为相似的候选参考帧来确定目标参考帧,提高了视频编码的效果,确保解码后的视频能够准确还原编码前视频。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1示出了应用于本公开实施例的视频编码方法或视频编码装置的示例性系统架构的示意图。
图2是根据一示例性实施例示出的一种应用于视频编码装置的计算机系统的结构示意图。
图3是根据一示例性实施例示出的一种视频编码框架示意图。
图4是根据一示例性实施例示出的一种通过四叉树划分编码树单元的示意图。
图5是根据一示例性实施例示出的一种通过四叉树划分编码树单元的示意图。
图6是根据一示例性实施例示出的编码单元的多种分割方式。
图7是根据一示例性实施例示出的一种当前编码单元与多个参考帧进行比对的示意图。
图8是根据一示例性实施例示出的一种视频编码方法的流程图。
图9是根据一示例性实施例示出的一种确定第一预测单元、第二预测单元的示意图。
图10是根据一示例性实施例示出的一种确定第一预测单元、第二预测单元的示意图。
图11是根据一示例性实施例示出的一种确定第一预测单元、第二预测单元的示意图。
图12是根据一示例性实施例示出的多种分割方式执行顺序示意图。
图13是根据一示例性实施例示出的一种视频编码方法的流程图。
图14是根据一示例性实施例示出的一种视频编码方法的流程图。
图15是根据一示例性实施例示出的一种视频编码方法的流程图。
图16是根据一示例性实施例示出的一种视频编码方法的流程图。
图17是图8中步骤s05在一示例性实施例中的流程图。
图18是根据一示例性实施例示出的一种确定当前编码单元的候选参考帧的示意图。
图19是根据一示例性实施例示出的一种确定当前编码单元的候选参考帧的示意图。
图20是图8中步骤s05在一示例性实施例中的流程图。
图21是根据一示例性实施例示出的一种视频编码方法。
图22是图21中步骤s104在一示例性实施例中的流程图。
图23是根据一示例性实施例示出的一种视频编码装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本说明书中,用语“一个”、“一”、“该”、“所述”和“至少一个”用以表示存在一个或多个要素/组成部分/等;用语“包含”、“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”、“第二”和“第三”等仅作为标记使用,不是对其对象的数量限制。
下面结合附图对本公开示例实施方式进行详细说明。
图1示出了可以应用于本公开实施例的视频编码方法或视频编码装置的示例性系统架构的示意图。
如图1所示,系统架构100可以包括电子设备101、102、103,网络104和服务器105。网络104用以在电子设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用电子设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。其中,电子设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、虚拟现实设备、智能家居等等。
服务器105可以是提供各种服务的服务器,例如对用户利用电子设备101、102、103所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给电子设备。
服务器105可例如获取目标视频中当前帧图像的当前编码单元;服务器105可例如获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码;服务器105可例如确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码;服务器105可例如获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码;服务器105可例如根据所述第一参考帧、所述第二参考帧和所述第三参考帧,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧;服务器105可例如确定所述当前预测单元相对于所述候选参考帧的第一率失真代价;服务器105可例如根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
应该理解,图1中的电子设备、网络和服务器的数目仅仅是示意性的,服务器105可以是一个实体的服务器,还可以为多个服务器组成,根据实际需要,可以具有任意数目的电子设备、网络和服务器。
另外,还可以通过云技术(cloudtechnology)中的云计算(cloudcomputing)完成本公开实施例提供的技术方案,本公开对此不做限制。
云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算指的是it(internettechnology,互联网技术)基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(gridcomputing)、分布式计算(distributedcomputing)、并行计算(parallelcomputing)、效用计算(utilitycomputing)、网络存储(networkstoragetechnologies)、虚拟化(virtualization)、负载均衡(loadbalance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
下面参考图2,其示出了适于用来实现本申请实施例的电子设备的计算机系统200的结构示意图。图2示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(cpu)201,其可以根据存储在只读存储器(rom)202中的程序或者从储存部分208加载到随机访问存储器(ram)203中的程序而执行各种适当的动作和处理。在ram203中,还存储有系统200操作所需的各种程序和数据。cpu201、rom202以及ram203通过总线204彼此相连。输入/输出(i/o)接口205也连接至总线204。
以下部件连接至i/o接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分207;包括硬盘等的储存部分208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至i/o接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入储存部分208。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(cpu)201执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块和/或)单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或)单元也可以设置在处理器中,例如,可以描述为:一种处理器包括发送单元、获取单元、确定单元和第一处理单元。其中,这些模块和/或)单元的名称在某种情况下并不构成对该模块和/或)单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备可实现功能包括:获取目标视频中当前帧图像的当前编码单元;获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码;确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码;获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码;根据所述第一参考帧、所述第二参考帧和所述第三参考帧,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧;确定所述当前预测单元相对于所述候选参考帧的第一率失真代价,以便根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
在视频传输领域中,需要将待传输视频进行编码以实现视频的传输。视频编码是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的编码方式。视频流传输中主要的编解码标准有h.261、h.263、h.264以及hevc(highefficiencyvideocoding,高效视频编码)等。
图3以hevc视频编码框架为例对视频编码进行解释。
首先,需要对图3中涉及的到缩写进行解释:db:deblockingfilter,去块滤波的简写;sao:sampleadaptiveoffset,自适应像素补偿的简称;me:motionestimation,运动估计的简称;mc:motioncompensation,运动补偿的简称。
视频编码可以分为帧内编码和帧间编码。在图3所述的视频编码框架中,可以将当前帧图像送入到编码器,先经过帧内预测或帧间预测之后得到预测值;将预测值与输入数据相减得到残差;然后进行dct(discretecosinetransform,离散余弦变换)变换和量化得到残差系数;将残差系数送入熵编码模块输出码流以完成视频编码。同时,残差系数经逆量化、逆变换之后,得到重构图像的残差值;然后和帧内或者帧间的预测值相加,从而得到了重构图像;重构图像再经环内滤波之后,进入参考帧队列,作为下一帧的参考图像,从而一帧帧向后编码。
在视频编码领域,一帧图像可以被划分为多个编码树单元(codingtreeunit,ctu),一个编码树单元可以按四叉树的方式向下划分。如图4所示,一个ctu可以按照四叉树的方式划分为多个cu(codeunit,编码单元),每个叶子节点(图4中每一个数字就代表了一个叶子节点)就可以认为是一个编码单元。将上述划分过程展示在图形中,可以得到如图5所示的划分效果(每一个数字可以代表一个编码单元)。
在一些实施例中,可以通过四叉树的划分深度和编码单元对应的最小率失真代价(rdcost,ratedistortioncost)可以将一个ctu划分为多个编码单元。
例如,在帧间编码过程中,可以通过以下步骤对ctu进行划分。
步骤一:对大小为64×64深度为0的编码单元a遍历所有帧间编码对应的分割模式,得到深度为0时的最优分割模式和率失真代价ra。
步骤二,对a进行一次cu划分,得到四个子cu:b0,b1,b2,b3,此时编码深度为1,并对编码单元b0遍历所有帧间分割模式,得到编码单元b0的对应的最优分割方式和率失真代价rb0。
步骤三,对b0进行进一步的cu划分,得到四个子cu:c0,c1,c2和c3,此时编码深度为2,并对编码单元c0遍历所有帧间编码对应的分割模式,得到编码单元c0对应的最优分割模式和率失真代价rc0。
步骤四,对c0做进一步cu划分,得到四个子cu:d0,d1,d2和d3,此时编码深度为3,已达到最大编码深度,不能再进行cu划分。依次对d0、d1、d2和d3进行分割模式选择,得到各自对应的最优分割方式和率失真代价rd0、rd1、rd2以及rd3,计算d0、d1、d2和d3的率失真代价之和,并与rc0进行比较,选择率失真较小的值作为c0的最小率失真代价(记为min-rc0),最小率失真代价对应的编码单元的分割方式以及划分方式即为c0的最优分割方式和划分方式(若rc0小于等于d0、d1、d2和d3的率失真代价之和,则舍弃对c0的四叉树划分;若rc0大于d0、d1、d2和d3的率失真代价之和,则保留对c0的四叉树划分)。
步骤五,仿照步骤四,依次对c1、c2和c3进行划分与编码单元分割模式的选择,分别得到各自对应的最优划分方式和率失真代价min-rc1、min-rc2、min-rc3,并计算当前编码深度的四个cu的率失真代价之和,与rb0比较,得到较小的率失真代价(记为min-rb0),较小的率失真代价对应的划分方式以及分割模式即为b0的最优划分方式和分割模式。
步骤六,仿照步骤二到步骤五,依次对b1、b2和b3进行划分与分割模式选择,分别得到各自对应的最优分割模式和率失真代价min-rb1、min-rb2、min-rb3,并计算当前编码深度的四个cu的率失真代价之和,并与ra比较,得到较小的率失真代价(记为min-ra),找出该tcu的最佳划分方式以及最优分割模式。
基于上述ctu的划分方式可以保证图像中变化较大的区域划分的更为细致,变化较小的区域划分较为粗犷,既能节约划分资源、提高编码效率,还能避免信息的丢失,保证视频编码的准确度。
在一些实施例中,还可以通过一定的分割方式将cu划分为pu(predictunit,预测单元),并获得各个分割方式下各个pu的最小率失真代价,以便根据pu的最小率失真代价确定cu的最小率失真代价以及最优分割方式。
在一些实施例中,可以按照如图6所示的七种分割方式将当前cu划分为pu,但本公开并不限于此。按照分割效果可以将上述七种分割方法分为三类,其中2n*2n可以认为是整体分割方式,2n*n、n*2n可以认为是对称分割方式,2n*nu、2n*nd、nl*2n以及nr*2n可以认为是非对称分割方式。其中,2n×2n为当前编码单元的大小,u、d、l、r为小于n大于0的正整数,可以根据实际需求进行设置,n为大于0的正数。
在相关技术中,可以通过编码器为当前编码单元配置多个参考帧,并分别计算当前编码单元在各个分割模式下的各个预测单元相对于该多个参考帧的率失真代价,以进一步的确定当前编码单元的最小率失真代价、最小率失真代价对应的最优分割模式以及该最优分割模式下各个pu对应的目标参考帧。
在帧间预测时,无论是单向预测还是双向预测,上述7种分割模式中的各个预测单元均要遍历该编码器配置的多个参考帧以获得对应的率失真代价,然后选择最小率失真代价对应的参考帧为目标参考帧。
如图7所示,若编码器为当前编码单元(当前编码单元在所述当前帧中)配置了八个参考帧(n-4~n 4),当前编码单元又可以按照上述七种分割模式进行划分(可以划分为13个pu),那么需要进行至少13*8次的率失真代价的计算,才能确定当前编码单元的最小率失真代价以及对应的最优编码方式。
显然,上述方法存在以下缺陷。
一、若编码器为当前编码单元配置的参考帧并中不包括当前编码单元中的目标体,通过该参考帧对当前编码单元进行编码,可能会导致编码效果不好。
二、编码器配置的参考帧过多,其中可能存在冗余,降低了编码效率。
三、实际操作中,在双向4个参考帧配置下,参考帧模块的计算占了整个视频编码计算量的40%左右,而且比重随着参考帧个数增加而增加,极大的增加了计算负担。
本公开实施例提供了一种视频编码方法,可以提高视频编码效率,提高视频编码效果。
图8是根据一示例性实施例示出的一种视频编码方法的流程图。本公开实施例所提供的方法可以由任意具备计算处理能力的电子设备处理,例如上述图1实施例中的服务器105和/或电子设备102、103,在下面的实施例中,以服务器105为执行主体为例进行举例说明,但本公开并不限定于此。
参照图8,本公开实施例提供的视频编码方法可以包括以下步骤。
在步骤s01中,获取目标视频中当前帧图像的当前编码单元。
在一些实施例中,在对目标视频进行编码时需要从目标视频中获取当前帧图像,并将当前帧图像通过四叉树划分以获取当前编码单元。
可以理解的是,当前编码单元可以是任意视频协议(包括但不限于hevc协议)中需要编码的编码单元或者编码块,本公开对此不做限制。
在步骤s02中,获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码。
如图9或图10所示,e为当前编码单元g的当前预测单元。可以理解的是,可以通过2n*2n分割模式对当前编码单元进行分割以获得如图9中e所示的当前预测单元e,也可以通过其他分割模式对当前编码单元进行分割以获得如图10(即当前预测单元可以与当前编码单元相同也可以是当前编码单元的一部分,此处仅以图10为例,但不限于图10所示效果)所示的当前预测单元e,本公开对此不做限制。
如图9所示,a、b、c以及d等与当前编码单元g空间相邻(边相接或者点相接)并且已完成编码的预测单元就可以是第一预测单元。可以理解的是,a、b、c以及d的边可以比当前编码单元g的边要长、也可比当前编码单元的边要短,本公开对此不做限制。
已编码预测单元可以已经利用视频帧间预测方法获取了最小率失真代价对应的目标参考帧,并基于该目标参考帧完成了预测。
因此,本公开提到的第一参考帧可以是各个第一预测单元的最小率失真代价对应的目标参考帧。
可以理解的是,不同的第一预测单元的目标参考帧可能相同也可能不同,本公开对此不做限制。
在步骤s03中,确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码。
在一些实施例中,对视频进行帧间编码的过程中,通常需要对编码树单元按照四叉树进行划分,并分别计算当前编码单元的最小率失真代价以及子编码单元的最小率失真代价之和,以确定是否需要将当前编码单元进行划分。
在一些实施例中,当前编码单元的代际编码单元可以指的是在编码树单元中当前编单元的父编码单元或者当前编码单元的子编码单元,也可以指的是当前编码单元的祖父编码单元或者当前编码单元的孙子编码单元,本公开对此不做限制。
在一些实施例中,可以通过编码单元的四叉树,从父到子进行率失真代价的计算。也就是说,在确定当前编码单元的目标参考帧时,当前编码单元的父编码单元对应的第二预测单元(可以为一个也可以为多个)的目标参考帧可以已经确定。其中,当前编码单元的父编码单元对应的第二预测单元可以是按照2n*2n分割方式获得的预测单元,但本公开对此不做限制。
如图9所示或图10所示,f可以是当前编码单元g的父编码单元对应的预测单元(通过2n*2n分割模式对父编码单元进行分割获得的预测单元,但本公开并不限制于该2n*2n分割模式)。
在一些实施例中,可以通过编码单元的四叉树,从子到父进行率失真代价的计算。如图11所示,在为当前编码单元g的当前预测单元确定候选参考帧时,当前编码单元g的子编码单元a、b、c、d对应的第二预测单元(可以为一个也可以为多个)的目标参考帧可以已经确定。其中,当前编码单元的子编码单元对应的第二预测单元可以是按照2n*2n分割方式获得的预测单元,但本公开对此不做限制。
在步骤s04中,获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧。
在一些实施例中,当前预测单元可以是按照当前分割模式对当前编码单元进行分割获得的预测单元。
在一些实施例中,对当前编码单元进行编码时,可以按照如图12所示顺序对当前编码单元进行分割,然后计算各个分割模式下当前编码单元的率失真代价,以将率失真代价最小的分割模式作为最优分割模式。在一些实施例中,按照分割效果可以将图12中示出的七种分割模式分为三大类,其中2n*2n可以认为是整体分割方式,2n*n、n*2n可以认为是对称分割方式,2n*nu、2n*nd、nl*2n以及nr*2n可以认为是非对称分割方式。
在一些实施例中,对称分割模式中的分割模式(2n*n、n*2n)排名可以不分先后,非对称分割模式中的分割模式(2n*nu、2n*nd、nl*2n以及nr*2n)排名也可以不分先后。
在一些实施例中,当前分割模式可以是如图12所示的任一分割模式,目标分割模式可以是排在在当前分割模式之前的所有的分割模式,当前编码单元在目标分割模式下的各个预测单元的最小率失真代价以及对应的目标参考帧均已确定。假设当前分割模式为2n*n,那么目标分割模式可以包括2n*2n和n*2n。
在一些实施例中,目标分割模式下的第三预测单元的已经确定了最小率失真代价对应的目标参考帧,而且第三预测单元的第三参考帧就是该第三预测单元的目标参考帧。
在步骤s05中,根据所述第一参考帧、所述第二参考帧和所述第三参考帧,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧。
在一些实施例中,可以将第一参考帧、第二参考帧以及第三参考帧作为当前编码单元的候选参考帧。
在步骤s06中,确定所述当前预测单元相对于所述候选参考帧的第一率失真代价,以便根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
在一些实施例中,可以计算当前预测单元相对于各个候选参考帧的率失真代价(即第一率失真代价),然后将第一率失真代价最小的候选参考帧作为当前预测单元的目标参考帧,最小率失真代价为当前预测单元的最小率失真代价。
通过上述方法可以获得当前编码单元在当前分割模式下各个预测单元的最小率失真代价;然后将各个预测单元的最小率失真代价相加以作为当前编码单元在当前分割模式下的最小率失真代价;接着获取当前编码单元在各个分割模式下的最小率失真代价,将率失真代价最小对应的分割模式作为当前编码单元的最优分割模式;通过当前编码单元的最优分割模式、最优分割模式下各个预测单元对应的目标参考帧,可以完成对当前编码单元的预测、运动矢量的估计以及残差系数的确定,以实现对当前编码单元的编码。
本实施例提供的技术方案,通过当前编码单元相邻的第一预测单元的第一参考帧、父编码单元或子编码单元的第二预测单元的第二参考帧以及当前编码单元在目标分割模式下确定的第三预测单元的第三参考帧确定了当前预测单元的候选参考帧。一方面,通过上述方法确定的候选参考帧中的目标体与当前预测单元中的目标体高概率相同,所以通过该候选参考帧可以高效、准确、自适应地确定当前预测单元的目标参考帧,能够提高视频编码的压缩率;另一方面,通过上述方法确定的候选参考帧数量较少,可以极大的节约计算资源,提供视频编码效率。
图13是根据一示例性实施例示出的一种视频编码方法。
在一些实施例中,帧间编码可以包括如图12所示的七种分割模式,该七种分割模式可以按照分割效果进一步的分为三大类,即整体分割模式、对称分割模式和非对称分割模式,每类内各个分割模式的执行顺序可以不分先后,也可以直接按照图12所示顺序进行执行,本公开对此不做限制。
在一些实施例中,当前分割模式可以是整体分割模式(例如2n*2n分割模式)。
参考图13,上述视频编码方法可以包括以下步骤。
在步骤s01中,获取目标视频中当前帧图像的当前编码单元。
在步骤s02中,获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码。
在步骤s03中,确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码。
在步骤s051中,根据所述第一参考帧、所述第二参考帧生成所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧。
在一些实施例中,由于整体分割模式一般被优先执行,所以在整体分割模式被执行之前,当前编码单元可能不存在已经确定了目标参考帧的预测单元,所以可以直接根据第一参考帧以及第二参考帧生成当前预测单元的候选参考帧。
在一些实施例中,若在整体分割模式执行之前,当前编码单元以及按照目标分割模式分割,并获得了该目标分割模式的第三预测单元对应的目标参考帧,则可以将该第三预测单元的目标参考帧作为该候选参考帧,本公开对此不作限制,以技术人员实际操作需求为准。
在步骤s052中,根据所述当前帧图像的帧类型将所述当前帧图像的前k1参考帧或后k2参考帧作为所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧,k1和k2均为大于或者等于1的整数。
在实际操作中,整体分割模式、对称分割模式以及非对称分割模式被选中的概率分别为50%,20%及10%。因此,整体分割模式被选中的概率最高,但是根据第一参考帧和第二参考帧生成的候选参考帧数量相对较少,所以可以根据当前编码单元所在当前帧的帧类型对候选参考帧进行加强处理。
其中,帧类型可以指的是帧间编码过程中的p帧(帧间预测编码帧)、b帧(双向预测编码帧)以及gbp帧(generalizedpandbpicture,广义p帧)等类型,其中p帧和gbp帧在视频编码过程中可能会成为很多帧图像的参考帧,可以为很多帧图像做出贡献,所以p帧和gbp帧在帧间视频编码中处于重要的地位。因此,需要为p帧或gbp帧内的预测单元的候选参考帧进行加强,以确保该预测单元可以找到最优的参考帧。
在一些实施例中,若当前帧的帧类型为p帧或者gbp帧,可以考虑将当前帧的前两帧或者后两帧加入候选参考帧,若当前帧的帧类型为b帧可以考虑将当前帧的前一帧或者后一帧加入候选参考帧,本公开对此不做限制。
其中,当前帧的前两帧可以指的是与当前帧时间相邻的前两帧,也可以指的是参考帧队列中最后两帧图像。在对视频进行编码时,每当一帧图像完成编码就可以将该帧图像作为参考帧加入参考帧队列,以备成为其他帧的参考帧。
假设参考帧队列中存在编码顺序为{195324768}的参考帧,那么当前帧的前两帧可以指的是编号为{68}的两帧图像,当前帧的后两帧可以指的是编号为{19}的两帧图像,但是本公开对此不做限制。
可以理解的是,也可以直接根据第一参考帧、第二参考帧生成所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧,无需对其进行加强处理,本公开对此不作限制。
在步骤s06中,确定所述当前预测单元相对于所述候选参考帧的第一率失真代价,以便根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
本实施例提供的技术方案,不仅将目标体与当前预测单元高概率相同的第一预测单元、第二预测单元对应的目标参考帧作为当前预测单元的候选参考帧,还充分考虑了当前分割方式在帧间预测中的重要性以及当前帧图像的帧类型在视频编码中的重要性,为当前预测单元确定了目标体高概率相同的候选参考帧,基于该候选参考帧进行视频编码,能够提高编码速度并增强编码效果。
图14是根据一示例性实施例示出的一种视频编码方法。
在一些实施例中,当前分割模式可以为图12所示对称分割模式中的任一分割模式,目标分割模式可以包括整体分割模式。
参考图14,上述视频编码方法可以包括以下步骤。
在步骤s01中,获取目标视频中当前帧图像的当前编码单元。
在步骤s02中,获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码。
在步骤s03中,确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码。
在步骤s04中,获取所述当前编码单元在整体分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码。
在一些实施例中,在执行当前分割模式之前,整体分割模式(2n*2n)可能已经执行结束,2n*2n分割模式对应的预测单元的目标参考帧(即第三参考帧)也已经确定。
在步骤s053中,将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在步骤s06中,确定所述当前预测单元相对于所述候选参考帧的第一率失真代价,以便根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
本实施例提供的技术方案,将与当前预测单元对应的目标体相似度极高的第一参考帧、第二参考帧以及当前编码单元在整体分割模式下的第三预测单元的第三参考帧作为当前预测单元的候选参考帧,根据该候选参考帧进行率失真代价以及目标参考帧的确定,可以极大的减少比对次数、节约计算资源、提高压缩率和视频编码效果。
图15是根据一示例性实施例示出的一种视频编码方法。
在一些实施例中,当前分割模式可以为对称分割模式,目标分割模式可以包括整体分割模式和对称分割模式中的已预测分割模式。
在一些实施例中,对称分割模式下可以包括至少两个分割模式,而且两个分割模式的执行顺序可以不分先后,所以当执行其中之一个分割模式时,另外一个分割模式可能已经执行完毕。因此,在当前模式执行之前已经执行完毕的分割模式可以是已预测分割模式。需要注意的是,已预测分割模式未必已完成预测,而是已完成pu的划分以及各个pu的目标参考帧的确定。
参考图15,上述视频编码方法可以包括以下步骤。
在步骤s01中,获取目标视频中当前帧图像的当前编码单元。
在步骤s02中,获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码。
在步骤s03中,确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码。
在步骤s04中,获取所述当前编码单元在整体分割模式和对称分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码。
在步骤s054中,将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式下和所述已预测分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在步骤s06中,确定所述当前预测单元相对于所述候选参考帧的第一率失真代价,以便根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
本实施例提供的技术方案不仅考虑了执行顺序在对称分割模式之前的整体分割模式下的预测单元的目标参考帧,还考虑了对称分割模式中执行顺序在当前分割模式之前的预测单元的目标参考帧,既保证了目标参考帧的搜索范围,也保证了视频编码的效率。
图16是根据一示例性实施例示出的一种视频编码方法。
在一些实施例中,当前分割模式可以为非对称分割模式,目标分割模式可以包括整体分割模式和对称分割模式下的所有分割模式。
参考图16,上述视频编码方法可以包括以下步骤。
在步骤s01中,获取目标视频中当前帧图像的当前编码单元。
在步骤s02中,获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码。
在步骤s03中,确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码。
在步骤s04中,获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码。
在步骤s055中,将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式和所述对称分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在一些实施例中,对称分割模式下可以包括至少四个分割模式,而且四个分割模式的执行顺序可以不分先后,所以当执行其中之一个分割模式时,其他的分割模式可能已经执行完毕。因此,在当前模式执行之前已经执行完毕的分割模式可以是非对称分割模式中的已预测分割模式。需要注意的是,已预测分割模式未必已完成预测,而是已完成pu的划分以及各个pu的目标参考帧的确定。
因此,还可以将非对称分割模式中的已预测分割模式下的第三预测单元的第三参考帧作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在步骤s06中,确定所述当前预测单元相对于所述候选参考帧的第一率失真代价,以便根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
本实施例提供的技术方案,为非对称分割模式下的各个分割模式对应的预测单元,自适应地确定了相似度极高的候选参考帧,有利于提供编码速度以及编码效果。
图17是图8中步骤s05在一示例性实施例中的流程图。
在一些实施例中,当前分割模式可以为图18或图19右侧所示的非对称分割模式(图18以2n*nu为例,图19以nl*2n为例,但不限于此),当前编码单元在非对称分割模式下包括第一当前预测单元(如图18中2n*nu分割模式下的0预测单元或图19中nl*2n分割模式下的0预测单元),目标分割模式可以包括整体分割模式和对称分割模式,当前编码单元在对称分割模式下可以包括第一目标预测单元(例如图18中2n*n分割模式下获得的0单元或n*2n分割模式下获得的0单元)。
参考图17,上述步骤s05可以包括以下步骤。
在步骤s056中,从所述当前编码单元在所述整体分割模式下的预测单元的候选参考帧中,确定率失真代价最小的目标第一参考帧。
在步骤s057中,从所述第一目标预测单元的候选参考帧中,确定率失真代价最小的目标第二参考帧。
在图18中,可以获取当前编码单元在2n*n分割模式下的第一目标预测单元(例如0对于的预测单元)对应的率失真代价最小的目标第二参考帧。
在图19中,可以获取当前编码单元在n*2n分割模式下的第一目标预测单元(0预测单元)对应的率失真代价最小的目标第二参考帧。
在步骤s058中,将所述目标第一参考帧和所述目标第二参考帧,作为所述当前编码单元在所述非对称分割模式下的所述第一当前预测单元对应的候选参考帧。
如图18或19所示,可以将整体分割模式下的目标第一参考帧与对称分割模式下的目标第二参考帧合并,以确定第一当前预测单元的候选参考帧。可以理解的是,第一当前预测单元与第一目标预测单元应该存在空间上的对应关系。例如若第一当前预测单元在当前编码单元的左侧,那么第二目标预测单元也应该在当前编码单元的左侧,若第一当前预测单元在当前编码单元的上侧,那么第二目标预测单元也应该在当前编码单元的上侧。
本实施例提供的技术方案,考虑了非对称分割方式在七种分割方式中占比不高,为节约计算资源,可以通过整体分割模式下的预测单元、对称分割模式下的预测单元确定非对称分割模式下的第一当前预测单元的候选参考帧,既能保证候选参考帧中的目标物体与第一当前预测单元的目标物体高相似度,又能减少计算过程,提高了视频编码的效率。
图20是图8中步骤s05在一示例性实施例中的流程图。
在一些实施例中,当前编码单元在非对称分割模式下还可以包括第二当前预测单元(如图18中2n*nu分割模式下的1预测单元或图19中nl*2n分割模式下的1预测单元),当前编码单元在对称分割模式下还可以包括第二目标预测单元(例如图18中2n*n分割模式下获得的1单元或n*2n分割模式下获得的1单元)。
参考图20,上述步骤s05可以包括以下步骤。
在步骤s059中,从所述第二目标预测单元的候选参考帧中,确定率失真代价最小的目标第三参考帧。
在图18中,可以获取当前编码单元在2n*n分割模式下的第一目标预测单元(1预测单元)对应的率失真代价最小的目标第三参考帧。
在图19中,可以获取当前编码单元在n*2n分割模式下的第一目标预测单元(1预测单元)对应的率失真代价最小的目标第三参考帧。
在步骤s0510中,将所述目标第一参考帧和所述目标第三参考帧作为所述当前编码单元在所述非对称分割模式下的所述第二当前预测单元对应的候选参考帧。
如图18或19所示,可以将整体分割模式下的目标第一参考帧与对称分割模式下的目标第三参考帧合并,以确定第二当前预测单元的候选参考帧。可以理解的是,第一当前预测单元与第一目标预测单元应该存在空间上的对应关系。例如若第一当前预测单元在当前编码单元的右侧,那么第二目标预测单元也应该在当前编码单元的右侧,若第一当前预测单元在当前编码单元的下侧,那么第二目标预测单元也应该在当前编码单元的下侧。
本实施例提供的技术方案,考虑了非对称分割方式在七种分割方式中占比不高,为节约计算资源,可以通过整体分割模式下的预测单元、对称分割模式下的预测单元确定非对称分割模式下的当前预测单元的后续参考帧,既能保证候选参考帧中的目标物体与当前预测单元的目标物体高相似度,又能减少计算过程,提高了视频编码的效率。
图21是根据一示例性实施例示出的一种视频编码方法。
参考图21,上述视频编码方法可以包括以下步骤。
在步骤s101中,获取所述编码单元在各个分割模式下的各个预测单元的最小率失真代价。
在一些实施例中,当前编码单元可以对应于多个分割单元,每个分割单元可以对应于至少一个预测单元,每个预测单元又可以有多个候选参考帧。可以依次求出各个预测单元的最小率失真代价。
在步骤s102中,根据各个预测单元的最小率失真代价确定各个分割模式对应的最小率失真代价。
在一些实施例中,可以确定各个预测单元对应的最小率失真代价以及最小率失真代价对应的目标参考帧;然后获取分割模式下各个预测单元最小率失真代价之和作为该分割模式的最小率失真代价。
在步骤s103中,根据各个分割模式的最小率失真代价确定所述当前编码单元中率失真代价最小的分割模式。
在步骤s104中,根据所述率失真代价最小的分割模式对所述当前编码单元进行编码。
在一些实施例中,根据所述率失真代价最小的分割模式对所述当前编码单元进行编码可以包括以下过程:获取率失真代价最小的分割模式作为当前编码单元的最优分割模式;然后将该最优分割模式下获得的预测单元的目标参考帧拼接以作为当前编码单元的参考单元;确定当前编码单元相对于目标参考单元的运动矢量以及残差,根据该运动矢量和残差可以完成对当前编码单元的编码。
图22是图21中步骤s104在一示例性实施例中的流程图。
参考图20,上述步骤s104可以包括以下步骤。
在步骤s1041中,获取在所述率失真代价最小的分割模式下各个预测单元对应的目标参考帧。
在一些实施例中,通过率失真代价最小的分割模式对当前编码单元进行分割可能会获取一个预测单元,也可能会获取两个预测单元,本公开对此不做限制。
在步骤s1042中,根据所述目标参考帧生成所述当前编码单元的当前参考单元。
在一些实施例,若通过率失真代价最小的分割模式对当前编码单元进行分割获取了一个预测单元,那么该预测单元对应的目标参考帧就是当前参考单元;若通过率失真代价最小的分割模式对当前编码单元进行分割获取了至少两个预测单元,那么将该至少两个预测单元对应的目标参考帧拼接就可以获得当前编码单元的当前参考单元
在步骤s1043中,根据所述当前参考单元生成所述当前编码单元的目标运动矢量和目标残差。
在步骤s1044中,对所述目标运动矢量和所述目标残差进行编码,以对所述当前编码单元进行编码。
本实施例提供的技术方案,通过与当前编码单元相邻的第一预测单元、当前编码单元的父编码单元或者子编码单元的第二预测单元以及当前编码单元中已完成预测的预测单元,确定了与当前预测单元中的目标物体高度相似的候选参考帧。该候选参考帧不仅与当前预测单元高度相似,而且数量较少,既能保证编码效果,也能通过编码效率。
图23是根据一示例性实施例示出的一种视频编码装置的框图。参照图23,本公开实施例提供的视频编码装置2300可以包括:当前编码单元获取模块2301、第一参考帧获取模块2302、第二参考帧获取模块2303、第三参考帧获取模块2304、候选参考帧确定模块2305、率失真代价确定模块2306以及编码单元2307。
其中,所述当前编码单元获取模块2301可以配置为获取目标视频中当前帧图像的当前编码单元。所述第一参考帧获取模块2302可以配置为获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码。所述第二参考帧获取模块2303可以配置为确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码。所述第三参考帧获取模块2304可以配置为获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码。所述候选参考帧确定模块2305可以配置为根据所述第一参考帧、所述第二参考帧和所述第三参考帧,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧。所述率失真代价确定模块2306可以配置为确定所述当前预测单元相对于所述候选参考帧的第一率失真代价。所述编码单元2307可以配置为根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
在一些实施例中,所述当前分割模式为整体分割模式。
在一些实施例中,所述候选参考帧确定模块2305可以包括:整体分割模式下候选参考帧确定单元和候选参考帧增强单元。
其中,所述整体分割模式下候选参考帧确定单元可以配置为根据所述第一参考帧、所述第二参考帧生成所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧。所述候选参考帧增强单元可以配置为根据所述当前帧图像的帧类型将所述当前帧图像的前k1参考帧或后k2参考帧作为所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧,k1和k2均为大于或者等于1的整数。
在一些实施例中,所述当前分割模式为对称分割模式,所述目标分割模式包括整体分割模式。
在一些实施例中,所述候选参考帧确定模块可以2305可以包括:对称分割模式下第一候选参考帧确定单元。
其中,所述对称分割模式下第一候选参考帧确定单元可以配置为将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式下的第三预测单元的第三参考帧作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在一些实施例中,所述当前分割模式为对称分割模式,所述目标分割模式包括整体分割模式和所述对称分割模式中的已预测分割模式。
在一些实施例中,所述候选参考帧确定模块可以2305可以包括:对称分割模式下第二候选参考帧确定单元。
其中,所述对称分割模式下第二候选参考帧确定单元可以配置为:将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式下和所述已预测分割模式下的第三预测单元的第三参考帧作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在一些实施例中,所述当前分割模式为非对称分割模式,所述目标分割模式包括整体分割模式和对称分割模式。
在一些实施例中,所述候选参考帧确定模块2305可以包括:非对称分割模式下第一候选参考帧确定单元。
其中,所述非对称分割模式下第一候选参考帧确定单元可以配置为将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式和所述对称分割模式下的第三预测单元的第三参考帧作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
在一些实施例中,所述当前分割模式为非对称分割模式,所述当前编码单元在所述非对称分割模式下包括第一当前预测单元,所述目标分割模式包括整体分割模式和对称分割模式,所述当前编码单元在所述对称分割模式下包括第一目标预测单元。
在一些实施例中,所述候选参考帧确定模块2305可以包括:目标第一参考帧确定单元、目标第二参考帧确定单元以及非对称分割模式下第二候选参考帧确定单元。
其中,所述目标第一参考帧确定单元可以配置为从所述当前编码单元在所述整体分割模式下的预测单元的候选参考帧中,确定率失真代价最小的目标第一参考帧。所述目标第二参考帧确定单元可以配置为从所述第一目标预测单元的候选参考帧中,确定率失真代价最小的目标第二参考帧。所述非对称分割模式下第二候选参考帧确定单元可以配置为将所述目标第一参考帧和所述目标第二参考帧作为所述当前编码单元在所述非对称分割模式下的所述第一当前预测单元对应的候选参考帧。
在一些实施例中,所述当前编码单元在所述非对称分割模式下还包括第二当前预测单元,所述当前编码单元在所述对称分割模式下还包括第二目标预测单元。
在一些实施例中,所述候选参考帧确定模块2305可以包括:第三参考帧确定单元和非对称分割模式下第三候选参考帧确定单元。
其中,所述第三参考帧确定单元可以配置为从所述第二目标预测单元的候选参考帧中,确定率失真代价最小的目标第三参考帧。所述非对称分割模式才第三候选参考帧确定单元可以配置为将所述目标第一参考帧和所述目标第三参考帧作为所述当前编码单元在所述非对称分割模式下的所述第二当前预测单元对应的候选参考帧。
在一些实施例中,所述视频编码装置可以包括:预测单元最小率失真代价确定模块、各个分割模式最小率失真代价确定模块、率失真代价最小的分割模式确定模块以及编码模块。
其中,所述预测单元最小率失真代价确定模块可以配置为获取所述编码单元在各个分割模式下的各个预测单元的最小率失真代价。所述各个分割模式最小率失真代价确定模块可以配置为根据各个预测单元的最小率失真代价确定各个分割模式对应的最小率失真代价。所述率失真代价最小非分割模式确定模块可以配置为根据各个分割模式的最小率失真代价确定所述当前编码单元中率失真代价最小的分割模式。所述编码模块可以配置为根据所述率失真代价最小的分割模式对所述当前编码单元进行编码。
在一些实施例中,所述编码模块可以包括:目标参考帧确定单元、当前参考单元确定单元、目标残差确定单元以及目标残差编码单元。
其中,所述目标参考帧确定单元可以配置为获取在所述率失真代价最小的分割模式下各个预测单元对应的目标参考帧。所述当前参考单元确定单元可以配置为根据所述目标参考帧生成所述当前编码单元的当前参考单元。所述目标残差确定单元可以配置为根据所述当前参考单元生成所述当前编码单元的目标运动矢量和目标残差。所述目标残差编码单元可以配置为对所述目标运动矢量和所述目标残差进行编码,以对所述当前编码单元进行编码。
由于本公开的示例实施例的视频编码装置2300的各个功能模块与上述视频编码方法的示例实施例的步骤对应,因此在此不再赘述。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本公开实施例的方法,例如图8的一个或多个所示的步骤。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
1.一种视频编码方法,其特征在于,包括:
获取目标视频中当前帧图像的当前编码单元;
获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码;
确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码;
获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧;
根据所述第一参考帧、所述第二参考帧和所述第三参考帧,确定所述当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧;
确定所述当前预测单元相对于所述候选参考帧的第一率失真代价;
根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
2.根据权利要求1所述方法,其特征在于,所述当前分割模式为整体分割模式;其中,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧,包括:
根据所述第一参考帧、所述第二参考帧生成所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧;
根据所述当前帧图像的帧类型将所述当前帧图像的前k1参考帧或后k2参考帧,作为所述当前编码单元在所述整体分割模式下的当前预测单元的候选参考帧,k1和k2均为大于或者等于1的整数。
3.根据权利要求1所述方法,其特征在于,所述当前分割模式为对称分割模式,所述目标分割模式包括整体分割模式;其中,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧,包括:
将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
4.根据权利要求1所述方法,其特征在于,所述当前分割模式为对称分割模式,所述目标分割模式包括整体分割模式和所述对称分割模式中的已预测分割模式;其中,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧,包括:
将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式下和所述已预测分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
5.根据权利要求1所述方法,其特征在于,所述当前分割模式为非对称分割模式,所述目标分割模式包括整体分割模式和对称分割模式;其中,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧,包括:
将所述第一参考帧、所述第二参考帧、所述当前编码单元在所述整体分割模式和所述对称分割模式下的第三预测单元的第三参考帧,作为所述当前编码单元在所述当前分割模式下的当前预测单元的候选参考帧。
6.根据权利要求1所述方法,其特征在于,所述当前分割模式为非对称分割模式,所述当前编码单元在所述非对称分割模式下包括第一当前预测单元,所述目标分割模式包括整体分割模式和对称分割模式,所述当前编码单元在所述对称分割模式下包括第一目标预测单元;其中,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧,包括:
从所述当前编码单元在所述整体分割模式下的预测单元的候选参考帧中,确定率失真代价最小的目标第一参考帧;
从所述第一目标预测单元的候选参考帧中,确定率失真代价最小的目标第二参考帧;
将所述目标第一参考帧和所述目标第二参考帧,作为所述当前编码单元在所述非对称分割模式下的所述第一当前预测单元对应的候选参考帧。
7.根据权利要求6所述方法,其特征在于,所述当前编码单元在所述非对称分割模式下还包括第二当前预测单元,所述当前编码单元在所述对称分割模式下还包括第二目标预测单元;其中,确定所述当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧,还包括:
从所述第二目标预测单元的候选参考帧中,确定率失真代价最小的目标第三参考帧;
将所述目标第一参考帧和所述目标第三参考帧,作为所述当前编码单元在所述非对称分割模式下的所述第二当前预测单元对应的候选参考帧。
8.根据权利要求1至7任一所述方法,其特征在于,还包括:
获取所述当前编码单元在各个分割模式下的各个预测单元的最小率失真代价;
根据各个预测单元的最小率失真代价确定各个分割模式对应的最小率失真代价;
根据各个分割模式的最小率失真代价确定所述当前编码单元中率失真代价最小的分割模式;
根据所述率失真代价最小的分割模式对所述当前编码单元进行编码。
9.根据权利要求8所述方法,其特征在于,根据所述率失真代价最小的分割模式对所述当前编码单元进行编码,包括:
获取在所述率失真代价最小的分割模式下所述编码单元的各个预测单元对应的目标参考帧;
根据各个预测单元对应的目标参考帧生成所述当前编码单元的当前参考单元;
根据所述当前参考单元生成所述当前编码单元的目标运动矢量和目标残差;
根据所述目标运动矢量和所述目标残差对所述当前编码单元进行编码。
10.一种视频编码装置,其特征在于,包括:
当前编码单元获取模块,配置为获取目标视频中当前帧图像的当前编码单元;
第一参考帧获取模块,配置为获取与所述当前编码单元相邻的第一预测单元的第一参考帧,所述第一预测单元已完成编码;
第二参考帧获取模块,配置为确定所述当前编码单元的代际编码单元,所述代际编码单元包括第二预测单元,获取所述第二预测单元的第二参考帧,所述第二预测单元已完成编码;
第三参考帧获取模块,配置为获取所述当前编码单元在目标分割模式下的第三预测单元的第三参考帧,所述第三预测单元已完成编码;
候选参考帧确定模块,配置为根据所述第一参考帧、所述第二参考帧和所述第三参考帧,确定当前编码单元在当前分割模式下的当前预测单元对应的候选参考帧;
率失真代价确定模块,配置为确定所述当前预测单元相对于所述候选参考帧的第一率失真代价;
编码模块,配置为根据所述第一率失真代价对所述当前帧图像的当前编码单元进行编码。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一项所述的方法。
技术总结