视频编码中的块分割方式处理方法和相关装置
技术领域
本发明涉及视频编解码技术领域,具体涉及视频编码中的块分割处理方法和相关装置。
背景技术
自从国际电信联盟(英文:international telegraph union,缩写:ITU)在1984年推出第一个视频编码国际标准H.120以来,视频编码技术已经获得了迅猛蓬勃的发展,已成为了现代信息技术中不可或缺的重要组成部分。随着因特网(英文:internet)、无线通讯网和数字广播网的快速发展,人们对获取多媒体信息的需求日益旺盛,而视频编码技术是有效传输和存储视频信息的关键技术之一。
视频编码技术的目标是在同样压缩率下取得更好的画面质量,或者是在同样的画质下实现更大的压缩率。可见,压缩率和画质是一对编码技术需要权衡的重要指标,在编码技术一定的条件下,一个指标的提高通常必然带来另一个指标的降低。
画质的评价一般分为主观评价标准和客观评价标准。在目前已发布的主流视频编码技术标准中,主要基于峰值信噪比这一客观参数来作为画质好坏的评价标准,这就是一种客观评价标准。画质好坏最终需要人眼来判断,客观评价标准只是用来在一定程度上模拟人眼对画质的感受,客观评价标准虽然具有一定参考意义,但是客观画质与人眼主观画质之间并不总是保持一致的。例如图1所示的左右画面的峰值信噪比(英文:peak signalto noise ratio,缩写:PSNR)相同,但是右图的主观质量明显要比左图要好,原因就在于右图将比特资源偏重分配于画面中人脸五官所在区域,而人脸部分是人眼较为敏感的区域,这样就较大的提高了人眼对画质的主观感受。这也正是基于视觉感知的视频编码技术的由来。
科学研究发现,人类视觉系统(英文:human visual system,缩写:HVS)对于视频画面中的部分区域或特征较为敏感。根据这一特性研究人员提出了基于视觉感知的视频编码,其目的是利用已知的HVS特性,较大限度消除人眼无法或难以感知的信息,期望用更少的比特资源提供视觉感知质量更理想的视频帧。
在传统基于视觉感知的视频编码过程中,对于视频帧中的任何一级(即任何一种划分深度)的任何一个编码块(英文:coding unit,缩写:CU),都是通过计算和比较该CU进行子块划分前后的率失真大小,来确定是否对该CU继续进行子块划分,这样导致需要大量的计算资源。
发明内容
本发明实施例提供视频编码中的块分割处理方法和相关装置,以降低确定编码块是否进行子块分割的计算复杂度。
本发明实施例第一方面提供一种视频编码中的块分割处理方法,包括:
获取视频帧的细分区域,其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域中的至少一个;
确定所述视频帧的第一编码块包含所述细分区域中的像素点;
将所述第一编码块进行子块分割。
结合第一方面,在第一方面的第一种可能的实施方式中,在所述将所述第一编码块进行子块分割之前,所述方法还包括:确定所述第一编码块的当前分割深度小于第一分割深度阈值,其中,所述第一分割深度阈值小于或等于所述视频帧的最大允许分割深度。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,所述确定所述视频帧的第一编码块包含所述细分区域中的像素点,包括:确定所述视频帧的第一编码块包含所述感兴趣区域和所述边缘区域的重叠区域的像素点。
结合第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,所述确定所述视频帧的第一编码块包含所述细分区域中的像素点,包括:确定所述视频帧的第一编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第一编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点;
其中,所述将所述第一编码块进行子块分割之前,
所述方法还包括:确定所述第一编码块的率失真代价大于所述第一编码块进行子块分割后的率失真代价。
本发明实施例第二方面提供一种视频编码中的块分割处理装置,包括:
获取单元,用于获取视频帧的细分区域,其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域中的至少一个;
确定单元,用于确定所述视频帧的第一编码块包含所述细分区域中的像素点;
分割单元,用于将所述第一编码块进行子块分割。
结合第二方面,在第二方面的第一种可能的实施方式中,
所述确定单元还用于,在所述将所述第一编码块进行子块分割之前,确定所述第一编码块的当前分割深度小于第一分割深度阈值,其中,所述第一分割深度阈值小于或等于所述视频帧的最大允许分割深度。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,在所述确定所述视频帧的第一编码块包含所述细分区域中的像素点的方面,所述确定单元具体用于,确定所述视频帧的第一编码块包含所述感兴趣区域和所述边缘区域的重叠区域的像素点。
结合第二方面的第一种可能的实施方式,在第二方面的第三种可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,在所述确定所述视频帧的第一编码块包含所述细分区域中的像素点的方面,所述确定单元具体用于,确定所述视频帧的第一编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第一编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点;
其中,所述确定单元还用于,将所述第一编码块进行子块分割之前,确定所述第一编码块的率失真代价大于所述第一编码块进行子块分割后的率失真代价。
本发明实施例第三方面提供一种视频编码装置,包括:
处理器和存储器,
其中,通过运行所述存储器中存储的指令或代码,所述处理器用于获取视频帧的细分区域,其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域中的至少一个;确定所述视频帧的第一编码块包含所述细分区域中的像素点;将所述第一编码块进行子块分割。
结合第三方面,在第三方面的第一种可能的实施方式中,所述处理器还用于在所述将所述第一编码块进行子块分割之前,确定所述第一编码块的当前分割深度小于第一分割深度阈值,其中,所述第一分割深度阈值小于或等于所述视频帧的最大允许分割深度。
结合第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,所述处理器用于确定所述视频帧的第一编码块包含所述感兴趣区域和所述边缘区域的重叠区域的像素点。
结合第三方面的第一种可能的实施方式,在第三方面的第三种可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,所述处理器用于,确定所述视频帧的第一编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第一编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点;
其中,所述处理器还用于,在将所述第一编码块进行子块分割之前,确定所述第一编码块的率失真代价大于所述第一编码块进行子块分割后的率失真代价。
可以看出,本发明一些实施例的技术方案中,在视频编码过程中,在获取视频帧的细分区域之后,当确定所述视频帧的第一编码块包含所述细分区域中的像素点,将所述第一编码块进行子块分割,其中,所述视频帧的细分区域包括所述视频帧的ROI和所述视频帧的边缘区域中的至少一个,也就是说,视频帧的第一编码块与细分区域之间的相对位置关系可在一定程度上决定所述第一编码块在当前分割深度下是否进行子块分割,这相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本发明的上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对计算资源的占用。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1-a为本发明的实施例提供的一种视频编码中的块分割处理方法的流程示意图;
图1-b为本发明的实施例提供的一种索伯算子的示意图;
图1-c为本发明的实施例提供的一种腐蚀模板的示意图;
图1-d为本发明的实施例提供的一种腐蚀处理的对比示意图;
图2~图7为本发明的实施例提供的另几种视频编码中的块分割处理方法的流程示意图;
图8-a为本发明的实施例提供的一种视频编码方法的流程示意图;
图8-b为本发明的实施例提供的一种生成显著性映射图的示意图;
图9为本发明实施例提供的一种视频编码中的块分割处理装置的示意图;
图10为本发明实施例提供的一种视频编码装置的示意图。
具体实施方式
本发明实施例提供视频编码中的块分割处理方法和相关装置,以降低确定编码块是否进行子块分割的计算复杂度。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先介绍本发明实施例提供的视频编码中的块分割处理方法,本发明实施例提供的视频编码中的块分割处理方法的执行主体可为视频编码装置,该视频编码装置可以是任何需输出、存储视频的装置,例如手机、笔记本电脑、平板电脑或个人电脑等设备。
本发明视频编码中的块分割处理方法的一个实施例,其中,一种视频编码中的块分割处理方法可以包括:获取视频帧的细分区域,其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域(英文:region of interest,缩写:ROI)和所述视频帧的边缘区域中的至少一个;确定所述视频帧的第一编码块包含所述细分区域中的像素点;将所述第一编码块进行子块分割。
请参见图1-a,图1-a为本发明的一个实施例提供的一种视频编码中的块分割处理方法的流程示意图。其中,如图1-a举例所示,本发明的一个实施例提供的一种视频编码中的块分割处理方法可包括:
101、获取视频帧的细分区域。
其中,所述视频帧的细分区域包括所述视频帧的ROI和所述视频帧的边缘区域中的至少一个。
其中,获取视频帧的细分区域的具体方式可为多种多样的。在本发明的一些可能的实施方式中,例如可以利用区域匹配算法对视频帧进行匹配处理来获取视频帧的细分区域。具体例如,基于区域匹配算法对视频帧进行匹配处理例如可以识别出视频帧中的哪些区域为细分区域,哪些区域不是细分区域。
或者本发明的一些可能的实施方式中,还可以根据配置文件中的配置指令来获取视频帧的细分区域。具体例如,配置文件中的配置指令可以具体指定了哪些区域为细分区域,哪些区域不是细分区域。当然亦可通过其他方式获取视频帧的细分区域。
102、确定所述视频帧的第一编码块包含所述细分区域中的像素点。
其中,所述视频帧的第一编码块为所述视频帧中的任意一个编码块。
第一编码块的当前分割深度可为小于所述视频帧的最大允许分割深度的任意分割深度,也就是说第一编码块的尺寸可为大于允许的最小编码块尺寸的任意尺寸。例如第一编码块的尺寸可能是64*64,32*32,16*16,或是允许的其他尺寸。
103、将所述第一编码块进行子块分割。
例如可将所述第一编码块分割为4个子编码块或其他数量的子编码块。
其中,视频帧的ROI一般是指视频帧中HVS相对敏感的区域或者HVS主要关注的区域。例如可基于区域匹配算法来确定视频帧的ROI,当然亦可根据配置文件中的配置指令来确定视频帧的ROI。
可以理解,不同视频帧的ROI可能并不相同。例如在视频会议或新闻节目等视频中,HVS通常主要关注视频帧中的人脸、视频帧的中央区域等,因此在这类视频视频帧中的人脸所在区域、视频帧的中央区域等可看做视频帧的ROI。又例如对于监控视频帧等,HVS通常主要关注视频帧中的移动物体,因此在这些视频帧中的移动物体所在区域可看做视频帧的ROI。又例如,在一些比赛视频中,HVS可能比较关注持球队员区域,因此,在这类视频帧中持球队员区域可看做视频帧的ROI。当然也可将视频帧中某个特定区域指定为视频帧的ROI,即使该指定区域可能不包含人脸和/或移动物体等,例如在某些实验场景或嫌疑人监控场景,需重点关注视频帧中的某些特定区域,因此,这些区域可能被设定为ROI。当然,在实际应用中也可能存在通过其他方式来获取视频帧的ROI的情况。
可以理解,某视频帧的感兴趣区域可能是一个连续的像素区域,也可能包括多个非连续的像素子区域。
其中,视频帧的边缘区域是指视频帧中包含边缘像素点的区域。
其中,检测视频帧中的边缘像素点的方法之一在于确定视频帧中某像素点的四周是否有剧烈的亮度变化。其中,若视频帧中某像素点的四周有剧烈的亮度变化表示该像素点为边缘像素点;否则表示该像素点不是边缘像素点。其中,整个视频帧对应于一个相同尺寸的二值映射图。其中,边缘像素点的检测算法很多,主要流程包括:确定边缘检测算子;利用边缘检测算子对视频帧进行滤波处理,对进行滤波处理后的视频帧进行后处理。
其中,边缘检测算子是一组当前像素点与当前像素点的周围像素点作运算的法则。例如图1-b所示的索伯算子,当前像素点经滤波后的像素值为上方3个像素值分别乘以第一排的3个系数加上下方3个像素值分别乘以第三排的3个系数的和的平均值;其中,如果滤波后的值超过阈值t0则判断当前像素点为边缘像素点,否则判断当前像素点不为边缘像素点。
进一步的,可对视频帧中被检测到的边缘像素点进行腐蚀处理以去除视频帧中孤立的、稀疏的边缘像素点。通常认为视频帧中存在的这类孤立的、稀疏的边缘像素点是由于视频帧噪声产生的。其中,腐蚀处理也可以用腐蚀模板或通过滤波来完成,例如,可基于图1-c所示的7*7的腐蚀模板(或其他腐蚀模板)来完成图1-d所示的腐蚀处理,其中,图1-d的左边是腐蚀处理前的状态,右边是腐蚀处理后的状态。腐蚀处理中的滤波过程也是当前像素点的周围像素点与模板中对应位置相乘求和,如果和大于0则像素点滤波后值取1,即表示当前像素点为边缘像素点;否则像素点滤波后值取0,即,表示当前像素点不为边缘像素点。
可以看出,本实施例视频编码过程中,在获取视频帧的细分区域后,当确定所述视频帧的第一编码块包含所述细分区域中的像素点,将所述第一编码块进行子块分割。其中,所述视频帧的细分区域包括所述视频帧的ROI和所述视频帧的边缘区域中的至少一个。也就是说,视频帧的第一编码块与细分区域之间的相对位置关系可在一定程度上决定第一编码块在当前分割深度下是否进行子块分割。因此,相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本发明上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对计算资源的占用。
可选的,在本发明的一些可能的实施方式中,在所述将所述第一编码块进行子块分割之前,所述方法还可包括:确定所述第一编码块的当前分割深度小于第一分割深度阈值,其中,所述第一分割深度阈值小于或等于所述视频帧的最大允许分割深度。其中,可从配置文件中获得第一分割深度阈值。
可选的,在本发明的一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域。其中,所述确定所述视频帧的第一编码块包含所述细分区域中的像素点,可包括:确定所述视频帧的第一编码块包含所述感兴趣区域和所述边缘区域的重叠区域的像素点。即,当所述视频帧的第一编码块包含了所述感兴趣区域和所述边缘区域的重叠区域的像素点,则可将所述第一编码块进行子块分割,这种情况下可无需参考第一编码块划分前和划分前后的率失真的大小关系来确定是否对第一编码块继续进行子块划分。
可选的,在本发明一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,所述确定所述视频帧的第一编码块包含所述细分区域中的像素点,可以包括:确定所述视频帧的第一编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第一编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点。其中,所述将所述第一编码块进行子块分割之前,所述方法还可包括:确定所述第一编码块的率失真代价大于或者等于所述第一编码块进行子块分割后的率失真代价。即,当所述视频帧的第一编码块包含所述感兴趣区域和所述边缘区域的非重叠区域的像素点,但所述第一编码块未包含所述感兴趣区域和所述边缘区域的重叠区域的像素点,这种情况下还可进一步参考第一编码块子块划分前后的率失真的大小关系来确定是否对第一编码块继续进行子块划分。
可选的,在本发明一些可能的实施方式中,所述将所述第一编码块进行子块分割之前,所述方法还可进一步包括:确定所述第一编码块的当前分割深度小于第二分割深度阈值,其中,所述第二分割深度阈值小于或者等于所述第一分割深度阈值。也就是说,例如当所述视频帧的第一编码块包含所述感兴趣区域和所述边缘区域的非重叠区域的像素点,但所述第一编码块未包含所述感兴趣区域和所述边缘区域的重叠区域的像素点,这种情况下还可进一步参考第一编码块的当前分割深度和第二分割深度阈值之间的大小关系来确定是否对第一编码块继续进行子块划分。例如,可以将第一编码块的分割深度限制到第二分割深度阈值之内。其中,可从配置文件中获得第二分割深度阈值。第二分割深度阈值可小于或等于第一分割深度阈值,可根据具体需要来设定第二分割深度阈值的大小。
可选的,在本发明一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域。其中,方法还可包括:确定所述视频帧的第二编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第二编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点;确定所述第二编码块的率失真代价小于或等于所述第二编码块进行子块分割后的率失真代价;确定所述第二编码块不进行子块分割。即,当所述视频帧的第二编码块包含所述感兴趣区域和所述边缘区域的非重叠区域的像素点,但所述第二编码块未包含所述感兴趣区域和所述边缘区域的重叠区域的像素点,这种情况下还可进一步参考第二编码块子块划分前后的率失真的大小关系来确定是否对第二编码块继续进行子块划分。
其中,视频帧的第二编码块可指所述视频帧中的任意一个编码块。
其中,第二编码块的当前分割深度可为小于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第二编码块的尺寸可为大于允许的最小编码块尺寸的任意尺寸。例如第二编码块的尺寸可能是64*64,32*32,16*16,或是允许的其他尺寸。
又可选的,在本发明一些可能的实施方式中,所述方法还可包括:确定所述视频帧的第三编码块不包含所述细分区域中的像素点;确定所述第三编码块不进行子块分割。也就是说,当所述视频帧的第三编码块不包含所述细分区域中的像素点,可以考虑所述第三编码块不进行子块分割,这种情况下可以不进一步参考第三编码块子块划分前后的率失真的大小关系等条件来确定是否对第三编码块继续进行子块划分。
进一步可选的,在本发明一些可能的实施方式中,所述确定所述第三编码块不进行子块分割之前,所述方法还包括:确定所述第三编码块的当前分割深度大于或等于第三分割深度阈值,其中,所述第三分割深度阈值小于或等于编码块的最大允许分割深度。也就是说,当第三编码块不包含所述细分区域中的像素点,可以将第三编码块的分割深度限制到第三分割深度阈值之内。可从配置文件中获得第三分割深度阈值。第三分割深度阈值可小于或等于第一分割深度阈值。第三分割深度阈值例如可小于或等于第二分割深度阈值。可根据具体需要来设定第三分割深度阈值的大小。
又进一步可选的,在本发明一些可能的实施方式中,所述确定所述第三编码块不进行子块分割之前,所述方法还可包括:确定所述第三编码块的率失真代价小于或等于所述第三编码块进行子块分割后的率失真代价;确定所述第三编码块的当前分割深度小于第三分割深度阈值,其中,所述第三分割深度阈值小于或等于编码块的最大允许分割深度。即,当第三编码块不包含所述细分区域中的像素点,这种情况下也可同时参考第三编码块划分前和划分前后的率失真大小关系等条件来确定是否对第三编码块继续进行子块划分。
其中,视频帧的第三编码块可指所述视频帧中的任意一个编码块。
其中,第三编码块的当前分割深度可为小于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第三编码块的尺寸可为大于允许的最小编码块尺寸的任意尺寸。例如第三编码块的尺寸可能是64*64,32*32,16*16,或是允许的其他尺寸。
可选的,在本发明一些可能的实施方式中,所述方法还可包括:确定所述视频帧的第四编码块不包含所述细分区域中的像素点;确定所述第四编码块的率失真代价大于所述第四编码块进行子块分割后的率失真代价。其中,所述第三分割深度阈值小于或等于所述视频帧的最大允许分割深度;确定所述第四编码块进行子块分割。进一步的,确定所述第四编码块进行子块分割之前,还可确定所述第四编码块的当前分割深度小于第三分割深度阈值。其中,可从配置文件中获得第三分割深度阈值。第三分割深度阈值可小于或等于第一分割深度阈值。第三分割深度阈值例如可小于或等于第二分割深度阈值。可根据具体需要来设定第三分割深度阈值的大小。
其中,视频帧的第四编码块可指所述视频帧中的任意一个编码块。
其中,第四编码块的当前分割深度可为小于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第四编码块的尺寸可为大于允许的最小编码块尺寸的任意尺寸。例如第四编码块的尺寸可能是64*64,32*32,16*16,或是允许的其他尺寸。
可以理解的是,视频帧的最大允许分割深度是指可允许的最小编码块所对应的分割深度。也就是说,视频帧的最大允许分割深度是指将可允许的最大尺寸的编码块分割为可允许的最小尺寸的编码块所需的分割次数。而当前分割深度是指将可允许的最大尺寸的编码块分割为当前编码块所需的分割次数。
假设编码块允许的最大尺寸为64*64,编码块允许的最小尺寸为8*8,那么若当前编码块的尺寸为64*64,当前编码块的当前分割深度为0;若当前编码块的尺寸为32*32,当前编码块的当前分割深度为1;若当前编码块的尺寸为16*16,则当前编码块的当前分割深度为2;若当前编码块的尺寸为8*8,则当前编码块的当前分割深度为3。在这种场景下,由于尺寸为64*64的编码块分割为尺寸为8*8的编码块需要进行3次分割,因此,该场景下视频帧的最大允许分割深度为3。
假设编码块允许的最大尺寸为64*64,编码块允许的最小尺寸为2*2,那么若当前编码块的尺寸为64*64,当前编码块的当前分割深度为0;若当前编码块的尺寸为32*32,则当前编码块的当前分割深度为1;若当前编码块的尺寸为16*16,则当前编码块的当前分割深度为2;若当前编码块的尺寸为8*8,则当前编码块的当前分割深度为3;类似的,若当前编码块的尺寸为4*4,则当前编码块的当前分割深度为4;若当前编码块的尺寸为2*2,则当前编码块的当前分割深度为5。在这种场景下,由于尺寸为64*64的编码块分割为尺寸为2*2的编码块需要进行5次分割,因此,该场景下视频帧的最大允许分割深度为5。可以理解,编码块允许的最大尺寸和最小尺寸亦可为其他值,在相应场景下,亦可按照类似方式来确定最大允许分割深度和当前分割深度等。
在对编码块子块分割时,可将当前编码块分割四个等大的子编码块,例如可将尺寸为64*64的编码块分割为尺寸为32*32的四个编码块,例如可将尺寸为16*16的编码块分割为尺寸为8*8的四个编码块。
可以理解,由于所述第一分割深度阈值小于或等于视频帧的最大允许分割深度,因此若最大允许分割深度为5,所述第一分割深度阈值可为5、4、3或2等等;若最大允许分割深度为3,则第一分割深度阈值可为3、2或1等,其他类似场景可以此类推。第一分割深度阈值大于或等于第二分割深度阈值。第一分割深度阈值大于或者等于第三分割深度阈值,因此,当第一分割深度阈值确定之后,可以在小于或等于第一分割深度阈值的取值范围内选取第二分割深度阈值或第三分割深度阈值的具体取值。例如当第一分割深度阈值为3时,第二分割深度阈值的具体取值可为2,第三分割深度阈值的具体取值可为2或1。又例如当第一分割深度阈值为5,第二分割深度阈值的具体取值可以为4或3,第三分割深度阈值的具体取值可为3或2或1等。
可以理解的是,在一些场景下,当第三分割深度阈值等于第二分割深度阈值时,第三分割深度阈值和第二分割深度阈值可看做是同一分割深度阈值。同理,当第二分割深度阈值、第一分割深度阈值和第三分割深度阈值相等时,则第二分割深度阈值、第一分割深度阈值和第三分割深度阈值也可看做是同一分割深度阈值。也就是说,当某几个分割深度阈值相等时,可将相等的这几个分割深度阈值看做是同一分割深度阈值。
为便于更好的理解和实施本发明实施例的上述方案,下面通过一些具体应用场景进行举例说明。
请参见图2,图2为本发明的另一个实施例提供的另一种视频编码中的块分割处理方法的流程示意图。图2所对应的实施例中,主要参考第一编码块与细分区域之间的相对位置关系、第一分割深度阈值、第二分割深度阈值和第三分割深度阈值等,来确定编码块的分割处理方式。
其中,图2举例所示,本发明的另一个实施例提供的另一种视频编码中的块分割处理方法可包括:
201、获取视频帧的细分区域。
其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域。
其中,获取图像的细分区域的具体方式可为多种多样的,具体的可参考步骤101的描述,本实施例在此不再详述。
202、确定所述视频帧的第一编码块的当前分割深度是否小于视频帧的最大允许分割深度。
若是,则执行步骤203。
若否,则执行步骤208。
其中,所述视频帧的第一编码块可指所述视频帧中的任意一个编码块。
第一编码块的当前分割深度可为小于或等于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第一编码块的尺寸可为大于或等于允许的最小编码块尺寸的任意尺寸。例如第一编码块的尺寸可能是64*64、32*32、16*16或是允许的其他尺寸。
203、确定所述视频帧的第一编码块是否包含所述细分区域中的像素点。
若是,则执行步骤204。
若否,则执行步骤207。
204、确定所述视频帧的第一编码块是否包含所述视频帧的感兴趣区域和边缘区域的重叠区域中的像素点。
若是,则执行步骤205。
若否,则执行步骤206。
205、确定所述视频帧的第一编码块的当前分割深度是否小于第一分割深度阈值。
此处,第一分割深度阈值小于视频帧的最大允许分割深度,因此,当可以在小于视频帧的最大允许分割深度的取值范围内选取第一分割深度阈值的具体取值。例如当视频帧的最大允许分割深度为3时,第一分割深度阈值的具体取值可为2。又例如当最大允许分割深度为5,第一分割深度阈值的具体取值可为4或3或2等。
若是,则执行步骤209。
若否,则执行步骤208。
206、确定所述第一编码块的当前分割深度是否小于第二分割深度阈值。
若否,则执行步骤210。
若是,则执行步骤208。
其中,第二分割深度阈值主要用于限制所述视频帧中的不包含所述视频帧的感兴趣区域和边缘区域的重叠区域中的像素点,但包含所述视频帧的感兴趣区域和边缘区域的非重叠区域中的像素点的编码块的分割深度。
其中,第二分割深度阈值小于视频帧的最大允许分割深度,因此,当可以在小于视频帧的最大允许分割深度的取值范围内选取第二分割深度阈值的具体取值。例如当视频帧的最大允许分割深度为3时,第二分割深度阈值的具体取值可为2或1。又例如当第一分割深度阈值为5,第二分割深度阈值的具体取值可为4或3或2或1等。
207、确定所述第一编码块的当前分割深度是否小于第三分割深度阈值。
若否,则执行步骤210。
若是,则执行步骤208。
其中,第三分割深度阈值主要用于限制所述视频帧中的不包含细分区域的像素点的编码块的分割深度。
其中,第三分割深度阈值小于视频帧的最大允许分割深度,因此,当可以在小于视频帧的最大允许分割深度的取值范围内选取第三分割深度阈值的具体取值。例如当视频帧的最大允许分割深度为3时,第三分割深度阈值的具体取值可为2或1。又例如当第一分割深度阈值为5,第三分割深度阈值的具体取值可为4或3或2或1等。第三分割深度阈值小于或等于第二分割深度。
208、确定所述第一编码块的率失真代价是否大于所述第一编码块进行子块分割后的率失真代价。
若是,则执行步骤209。
若否,则执行步骤210。
209、将所述第一编码块进行子块分割。
210、确定不对所述第一编码块进行子块分割。
可以理解,对于视频帧中的每个编码块,均可按照图2举例方式来进行子块分割处理。例如视频帧中的编码块CU-1,可按照图2举例方式来进行子块分割处理,假设将编码块CU-1分割为4个编码块,分别为CU-11、CU-12、CU-13和CU-14,那么对于CU-11、CU-12、CU-13和CU-14中的每个编码块,亦可按图2举例方式来进行子块分割处理,例如可能将CU-11割为4个编码块,而CU-12也可能不再进行子块分割,其他场景以此类推。
可以看出,本实施例视频编码过程中,获取视频帧的细分区域之后,当确定视频帧的第一编码块包含视频帧的感兴趣区域和边缘区域的重叠区域中的像素点,且第一编码块当前分割深度小于视频帧的第一分割深度阈值,将所述第一编码块进行子块分割。也就是说,视频帧的第一编码块与感兴趣区域和边缘区域的重叠区域之间的相对位置关系,可在一定程度上决定所述第一编码块在当前分割深度下是否进行子块分割,因此,这相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本实施例的上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对相关计算资源的占用。
请参见图3,图3为本发明的另一个实施例提供的另一种视频编码中的块分割处理方法的流程示意图。图3所对应的实施例中,主要参考第一编码块与细分区域之间的相对位置关系、第一分割深度阈值(本实施例中以第一分割深度阈值等于视频帧的最大允许分割深度为例)和第三分割深度阈值等,来确定编码块的分割处理方式。
其中,图3举例所示,本发明的另一个实施例提供的另一种视频编码中的块分割处理方法可包括:
301、获取视频帧的细分区域。
其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域。
其中,获取图像的细分区域的具体方式可为多种多样的,具体的可参考步骤101的描述,本实施例在此不再详述。
302、确定所述视频帧的第一编码块的当前分割深度是否小于视频帧的最大允许分割深度。
若是,则执行步骤303。
若否,则执行步骤308。
其中,所述视频帧的第一编码块可指所述视频帧中的任意一个编码块。
第一编码块的当前分割深度可为小于或等于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第一编码块的尺寸可为大于或等于允许的最小编码块尺寸的任意尺寸。例如第一编码块的尺寸可能是64*64、32*32、16*16或是允许的其他尺寸。
303、确定所述视频帧的第一编码块是否包含所述细分区域中的像素点。
若是,则执行步骤304。
若否,则执行步骤305。
304、确定所述视频帧的第一编码块是否包含所述视频帧的感兴趣区域和边缘区域的重叠区域中的像素点。
若是,则执行步骤307。
若否,则执行步骤306。
305、确定所述第一编码块的当前分割深度是否小于第三分割深度阈值。
若否,则执行步骤308。
若是,则执行步骤306。
其中,第三分割深度阈值小于视频帧的最大允许分割深度,因此,当可以在小于视频帧的最大允许分割深度的取值范围内选取第三分割深度阈值的具体取值。例如当视频帧的最大允许分割深度为3时,第三分割深度阈值的具体取值可为2或1。又例如当第一分割深度阈值为5,第三分割深度阈值的具体取值可为4或3或2或1等。
306、确定所述第一编码块的率失真代价是否大于所述第一编码块进行子块分割后的率失真代价。
若是,则执行步骤307。
若否,则执行步骤308。
307、将所述第一编码块进行子块分割。
308、确定不对所述第一编码块进行子块分割。
可以理解,对于视频帧中的每个编码块,均可按照图3举例方式来进行子块分割处理。
可以看出,本实施例视频编码过程中,获取视频帧的细分区域之后,当确定视频帧的第一编码块包含视频帧的感兴趣区域和边缘区域的重叠区域中的像素点,且第一编码块当前分割深度小于视频帧的最大允许分割深度,将所述第一编码块进行子块分割,也就是说,视频帧的第一编码块与感兴趣区域和边缘区域的重叠区域之间的相对位置关系,可在一定程度上决定所述第一编码块在当前分割深度下是否进行子块分割,这相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本实施例的上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对相关计算资源的占用。
请参见图4,图4为本发明的另一个实施例提供的一种视频编码中的块分割处理方法的流程示意图。图4所对应的实施例中,主要参考第一编码块与细分区域之间的相对位置关系、第一分割深度阈值(本实施例中以第一分割深度阈值等于视频帧的最大允许分割深度为例)和第三分割深度阈值等,来确定编码块的分割处理方式。其中,图4举例所示,本发明的另一个实施例提供的一种视频编码中的块分割处理方法可包括:
401、获取视频帧的细分区域。
其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域中的至少一个。
其中,获取视频帧的细分区域的具体方式可为多种多样的,具体的可参考步骤101的描述,本发明实施例在此不再详述。
402、确定所述视频帧的第一编码块的当前分割深度是否小于视频帧的最大允许分割深度。
若是,则执行步骤403。
若否,则执行步骤407。
其中,所述视频帧的第一编码块可指所述视频帧中的任意一个编码块。
第一编码块的当前分割深度可为小于或等于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第一编码块的尺寸可为大于或等于允许的最小编码块尺寸的任意尺寸。例如第一编码块的尺寸可能是64*64、32*32、16*16或是允许的其他尺寸。
403、确定所述视频帧的第一编码块是否包含所述细分区域中的像素点。
若否,则执行步骤404。
若是,则执行步骤406。
其中,所述视频帧的第一编码块可指所述视频帧中的其中一个编码块或任意一个编码块。第一编码块的尺寸可能是允许的最大尺寸(例如64*64),或是允许的次大尺寸(例如32*32),或是允许的次次大尺寸(例如16*16),或是允许的其他尺寸。
404、确定所述第一编码块的当前分割深度是否小于第三分割深度阈值。
若是,则执行步骤405。
若否,则执行步骤407。
其中,第三分割深度阈值小于视频帧的最大允许分割深度,因此,当可以在小于或等于视频帧的最大允许分割深度的取值范围内选取第三分割深度阈值的具体取值。例如当视频帧的最大允许分割深度为3时,第三分割深度阈值的具体取值可为2或1。又例如当第一分割深度阈值为5,第三分割深度阈值的具体取值可为4或3或2或1等。
405、确定所述第一编码块的率失真代价是否大于所述第一编码块进行子块分割后的率失真代价。
若是,则执行步骤406。
若否,则执行步骤407。
406、将所述第一编码块进行子块分割。
407、确定不对所述第一编码块进行子块分割。
可以理解,对于视频帧中的每个编码块,均可按照图4举例方式来进行子块分割处理。
可以看出,本实施例视频编码过程中,获取视频帧的细分区域之后,当确定所述视频帧的第一编码块包含所述细分区域中的像素点,且第一编码块当前分割深度小于视频帧的最大允许分割深度,将第一编码块进行子块分割。也就是说,视频帧的第一编码块与细分区域之间的相对位置关系,可在一定程度上决定所述第一编码块在当前分割深度下是否进行子块分割,因此,这相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本实施例的上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对相关计算资源的占用。
请参见图5,图5为本发明的另一个实施例提供的一种视频编码中的块分割处理方法的流程示意图。图5所对应的实施例中,主要参考第一编码块与细分区域之间的相对位置关系、第一分割深度阈值(本实施例中以第一分割深度阈值等于视频帧的最大允许分割深度为例)和率失真代价等,来确定编码块的分割处理方式。其中,图5举例所示,本发明的另一个实施例提供的一种视频编码中的块分割处理方法可包括:
501、获取视频帧的细分区域。
其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域。
其中,获取视频帧的细分区域的具体方式可为多种多样的,具体的可参考步骤101的描述,本发明实施例在此不再详述。
502、确定所述视频帧的第一编码块的当前分割深度是否小于视频帧的最大允许分割深度。
若是,则执行步骤503。
若否,则执行步骤506。
其中,所述视频帧的第一编码块可指所述视频帧中的任意一个编码块。
第一编码块的当前分割深度可为小于或等于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第一编码块的尺寸可为大于或等于允许的最小编码块尺寸的任意尺寸。例如第一编码块的尺寸可能是64*64、32*32、16*16或是允许的其他尺寸。
503、确定所述视频帧的第一编码块是否包含所述视频帧的感兴趣区域和所述边缘区域的重叠区域中的像素点。
若是,则执行步骤505。
若否,则执行步骤504。
504、确定所述第一编码块的率失真代价是否大于所述第一编码块进行子块分割后的率失真代价。
若是,则执行步骤505。
若否,则执行步骤506。
505、将所述第一编码块进行子块分割。
506、确定不对所述第一编码块进行子块分割。
可以理解,对于视频帧中的每个编码块,均可按照图5举例方式来进行子块分割处理。
可以看出,本实施例视频编码过程中,获取视频帧的细分区域之后,当确定所述视频帧的第一编码块包含所述视频帧的感兴趣区域和边缘区域的重叠区域中的像素点,并且,第一编码块当前分割深度小于视频帧的最大允许分割深度,将所述第一编码块进行子块分割,而当第一编码块不包含所述视频帧的感兴趣区域和边缘区域的重叠区域中的像素点,则可参考所述第一编码块分割前后的率失真代价的大小关系来确定第一编码块是否继续进行子块分割。也就是说,视频帧的第一编码块与感兴趣区域和边缘区域的重叠区域之间的相对位置关系,可在一定程度上决定所述第一编码块在当前分割深度下是否进行子块分割,这相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本实施例的上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对相关计算资源的占用。
请参见图6,图6为本发明的另一个实施例提供的一种视频编码中的块分割处理方法的流程示意图。图6所对应的实施例中,主要参考第一编码块与细分区域之间的相对位置关系、第一分割深度阈值(本实施例中以第一分割深度阈值等于视频帧的最大允许分割深度为例)和率失真代价等,来确定编码块的分割处理方式。其中,图6举例所示,本发明的另一个实施例提供的一种视频编码中的块分割处理方法可包括:
601、获取视频帧的细分区域。
其中,所述视频帧的细分区域包括所述视频帧的边缘区域或感兴趣区域。
其中,获取视频帧的细分区域的具体方式可为多种多样的,具体的可参考步骤101的描述,本发明实施例在此不再详述。
602、确定所述视频帧的第一编码块的当前分割深度是否小于视频帧的最大允许分割深度。
若是,则执行步骤603。
若否,则执行步骤606。
其中,所述视频帧的第一编码块可指所述视频帧中的任意一个编码块。
第一编码块的当前分割深度可为小于或等于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第一编码块的尺寸可为大于或等于允许的最小编码块尺寸的任意尺寸。例如第一编码块的尺寸可能是64*64、32*32、16*16或是允许的其他尺寸。
603、确定所述视频帧的第一编码块是否包含了所述视频帧的细分区域中的像素点。
若是,则执行步骤605。
若否,则执行步骤604。
604、确定所述第一编码块的率失真代价是否大于所述第一编码块进行子块分割后的率失真代价。
若是,则执行步骤605。
若否,则执行步骤606。
605、将所述第一编码块进行子块分割。
606、确定不对所述第一编码块进行子块分割。
可以理解,对于视频帧中的每个编码块,均可按照图6举例方式来进行子块分割处理。
可以看出,本实施例视频编码过程中,获取视频帧的边缘区域或感兴趣区域之后,当确定所述视频帧的第一编码块包含所述视频帧的边缘区域或感兴趣区域中的像素点,且第一编码块当前分割深度小于视频帧的最大允许分割深度,则可将所述第一编码块进行子块分割,当第一编码块不包含所述视频帧的边缘区域或感兴趣区域中的像素点,则可参考第一编码块分割前后的率失真代价的大小关系来确定第一编码块是否继续进行子块分割。也就是说,第一编码块与边缘区域或感兴趣区域之间的相对位置关系,可在一定程度上决定所述第一编码块在当前分割深度下是否进行子块分割,这相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本实施例的技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对相关计算资源的占用。
请参见图7,图7为本发明的另一个实施例提供的另一种视频编码中的块分割处理方法的流程示意图。图7所对应的实施例中,主要参考第一编码块与细分区域之间的相对位置关系、第一分割深度阈值(本实施例中以第一分割深度阈值等于视频帧的最大允许分割深度为例)和第三分割深度阈值等,来确定编码块的分割处理方式。其中,图7举例所示,本发明的另一个实施例提供的另一种视频编码中的块分割处理方法可包括:
701、获取视频帧的细分区域。
其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域。
其中,获取视频帧的细分区域的具体方式可为多种多样的,具体的可参考步骤101的描述,本发明实施例在此不再详述。
702、确定所述视频帧的第一编码块的当前分割深度是否小于视频帧的最大允许分割深度。
若是,则执行步骤703。
若否,则执行步骤708。
其中,所述视频帧的第一编码块可指所述视频帧中的任意一个编码块。
第一编码块的当前分割深度可为小于或等于所述视频帧的最大允许分割深度的任意分割深度,也就是说,第一编码块的尺寸可为大于或等于允许的最小编码块尺寸的任意尺寸。例如第一编码块的尺寸可能是64*64、32*32、16*16或是允许的其他尺寸。
703、确定所述视频帧的第一编码块是否包含所述细分区域中的像素点。
若是,则执行步骤704。
若否,则执行步骤705。
704、确定所述视频帧的第一编码块是否包含了所述视频帧的边缘区域中的像素点。
若是,则执行步骤707。
若否,则执行步骤706。
705、确定所述第一编码块的当前分割深度是否小于第三分割深度阈值。
若否,则执行步骤708。
若是,则执行步骤706。
其中,第三分割深度阈值小于视频帧的最大允许分割深度,因此,当可以在小于或等于视频帧的最大允许分割深度的取值范围内选取第三分割深度阈值的具体取值。例如当视频帧的最大允许分割深度为3时,第三分割深度阈值的具体取值可为2或1。又例如当第一分割深度阈值为5,第三分割深度阈值的具体取值可为4或3或2或1等。
706、确定所述第一编码块的率失真代价是否大于所述第一编码块进行子块分割后的率失真代价。
若是,则执行步骤707。
若否,则执行步骤708。
707、将所述第一编码块进行子块分割。
708、确定不对所述第一编码块进行子块分割。
可以理解,对于视频帧中的每个编码块,均可按照图7举例方式来进行子块分割处理。
可以看出,本实施例视频编码过程中,在获取视频帧的细分区域后,当确定所述视频帧的第一编码块包含所述视频帧的边缘区域中的像素点,且第一编码块当前分割深度小于视频帧的最大允许分割深度,则可将所述第一编码块进行子块分割,而当第一编码块不包含所述视频帧的边缘区域中的像素点,则可参考所述第一编码块分割前后的率失真代价的大小关系等条件来确定第一编码块是否继续进行子块分割。也就是说,视频帧的第一编码块与边缘区域之间的相对位置关系,可在一定程度上决定所述第一编码块在当前分割深度下是否进行子块分割,这相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本实施例的上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对相关计算资源的占用。
请参见图8-a,图8-a为本发明的另一个实施例提供的另一种视频编码中的块分割处理方法的流程示意图。其中,图8-a举例所示,本发明的另一个实施例提供的另一种视频编码中的块分割处理方法可包括:
801、获取第一视频帧的细分区域。
其中,第一视频帧的细分区域包括第一视频帧的感兴趣区域和第一视频帧的边缘区域。其中,第一图像组可为码流中的任意一个图像组。第一视频帧属于第一图像组(英文,group of pictures,缩写:GOP)。
其中,获取第一视频帧的细分区域的具体方式可为多种多样的。在本发明的一些可能的实施方式中,例如可以利用区域匹配算法对第一视频帧进行匹配处理来获取第一视频帧的细分区域,具体例如,基于区域匹配算法对第一视频帧进行匹配处理例如可以识别出第一视频帧中的哪些区域为细分区域,哪些区域不是细分区域。或者,可以根据配置文件中的配置指令来获取第一视频帧的细分区域,具体例如,配置文件中的配置指令可以具体指定了第一视频帧的哪些区域为细分区域,第一视频帧的哪些区域不是细分区域。当然亦可通过其他方式获取第一视频帧的细分区域。
802、生成第一视频帧对应的显著性映射图(英文:saliency map)。
其中,生成Saliency map的算法旨在输出例如图8-b中的右图所示的方块化的映射图,图8-b左边为原图,图8-b中的右图的为左图对应saliency map。图8-b中的右图中的每种颜色代表一种权重值。例如显著性映射图中纯白色的编码块的权重值最高,例如5,显著性映射图中纯黑色的编码块的权重值最低,例如可为1。
在H.264标准中,宏块的大小是确定的(16×16),显著性映射图中的每个宏块对应一个权重值;在H.265标准中,CU的大小是可变的,显著性映射图中的每一个最小的CU覆盖的像素区域(例如8×8)对应一个权重值,对于任何一个确定大小的CU对应的权重值,可以由这个CU所覆盖的像素区域对应的权重值计算得到。例如一个16×16大小的CU的权重值,可以由其覆盖的4个8×8像素区域对应的权重值平均而得。
其中,显著性映射图上各编码块的权重值的确定方法可有多种。例如检测到的人员区域可定义为ROI,例如,包含ROI中的像素点的编码块的权重值可设定为2,而不包含ROI中的像素点的编码块权重值可设定为1。
或者,也可采用另一方式来确定显著性映射图上各编码块的权重值。具体例如可根据人脸中眼、鼻、口的位置的先验知识,结合人脸的区域信息,得到包含眼、鼻、口的像素点的编码块为最高权重,包含人脸边缘的像素点的编码块的权重次之,其它脸部平坦区域再次之,人脸之外的其它区域可以赋以最低权重。
803、为第一图像组中的各视频帧分配目标比特数。
首先根据码率、帧率和第一图像组中视频帧的个数,通过公式(1)计算出第一图像组使用的比特数TG。
公式(1)中的S表示码率,N表示GOP中帧的个数,fps表示帧率。
然后,根据TG通过公式(2)计算出给第一图像组中的每个视频帧分配的比特数Tf,其中,wI是第一图像组中的I帧对应的权值,wB是第一图像组中的B帧对应的权值,wP是第一图像组中的P帧对应的权值,NI是第一图像组中I帧的个数,NB是第一图像组中B帧的个数,NP是第一图像组中P帧的个数。
Tf=TG/(wI×NI+wP×NP+wB×NB)×wI (2)
804、对第一视频帧中的各编码块进行子块分割。
其中,可以基于上述方法实施例所举例的任意一种视频编码中的块分割处理方法来对第一视频帧中的各编码块进行子块分割。当然,第一图像组中的其他视频帧的各编码块进行子块分割的方式可与之类似。
其中,在进行子块分割过程中可能使用到参数RDCost。计算RDCost可能使用到第一视频帧对应的量化参数(英文:quantization parameter,QP)。例如可指定的第一视频帧的QP,例如指定QP=30。也可以根据上下文预测第一视频帧的QP,具体例如,可以根据公式(3)计算一个GOP中第j个视频帧的量化参数QP(j)。
其中,公式(3)中的MADpred(j)表示预测的GOP中的第j视频帧编码前后的最大绝对差。其中,因为第j视频帧当前尚未编码,因此难以得到精确的平均绝对差(英文:meanabsolute difference,缩写:MAD),可预测MAD。MAD的预测一般采用前一个编码帧(即第j-1帧)的MAD。MAD代表视频帧的复杂程度,公式(3)中T(j)表示目标码率,目标码率T(j)一定的条件下,MAD越大则QP越大,也就表示视频帧越复杂,编码后视频帧的细节越差。Npixel(j)表示第j视频帧包含的像素总数,α、β是调节参数,α、β通常可设置为1。QP(j)表示第j视频帧的QP。
805、根据第一视频帧中的各CU对应的目标比特数和由saliency map计算得出的各各CU的权重值,计算各CU的QP。
例如可基于公式(4)来计算各CU的QP。
其中,公式(4)中的k表示第k个CU,wi表示第i个CU的权重值,Ti(j)表示在编码第i个CU时第j视频帧剩余的目标码率,其中,N表示第j视频帧未编码的CU数量,Npixel,i(j)表示第i个CU的像素数量。其中,QPk(j)表示第j视频帧中的第k个的QP。MADpred,k(j)表示预测的GOP中的第j视频帧的第k个CU编码前后的最大绝对差。
806、根据第一视频帧的各CU的QP对CU编码。
其中,对CU编码主要包括对残差的量化和对编码模式、参数和量化后残差的熵编码等。
可以看出,本实施例视频编码过程中,在获取视频帧的细分区域后,根据视频帧的当前编码块与边缘区域之间的相对位置关系等,来确定当前编码块是否继续进行子块分割。也就是说,视频帧的当前编码块与边缘区域之间的相对位置关系,可以在一定程度上决定当前编码块在当前分割深度下是否进行子块分割,这相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本实施例的上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对相关计算资源的占用。
为便于更好的实施本发明实施例的上述方案,下面还提供一些用于实施上述方案的相关装置。
参见图9,本发明实施例提供一种视频编码中的块分割处理装置900,可以包括:获取单元910、确定单元920和分割单元930。
获取单元910,用于获取视频帧的细分区域,
其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域中的至少一个。
其中,获取单元910获取视频帧的细分区域的方式可为上述实施例举例的任意一种。
确定单元920,用于确定所述视频帧的第一编码块包含所述细分区域中的像素点。
分割单元930,用于将所述第一编码块进行子块分割。
在本发明的一些可能的实施方式中,确定单元920还可用于,在所述将所述第一编码块进行子块分割之前,确定所述第一编码块的当前分割深度小于第一分割深度阈值,其中,所述第一分割深度阈值小于或等于所述视频帧的最大允许分割深度。
在本发明的一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,在所述确定所述视频帧的第一编码块包含所述细分区域中的像素点的方面,确定单元920可具体用于,确定所述视频帧的第一编码块包含所述感兴趣区域和所述边缘区域的重叠区域的像素点。
在本发明一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,在所述确定所述视频帧的第一编码块包含所述细分区域中的像素点的方面,确定单元920可具体用于,确定所述视频帧的第一编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第一编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点;
其中,所述确定单元920还可用于,将所述第一编码块进行子块分割之前,确定所述第一编码块的率失真代价大于所述第一编码块进行子块分割后的率失真代价。
在本发明的一些可能的实施方式中,确定单元920还可用于,将所述第一编码块进行子块分割之前,确定所述第一编码块的当前分割深度小于第二分割深度阈值,所述第二分割深度阈值小于所述第一分割深度阈值。
在本发明的一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;确定单元920还可用于,确定所述视频帧的第二编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第二编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点;确定所述第二编码块的率失真代价小于或者等于所述第二编码块进行子块分割后的率失真代价;确定所述第二编码块不进行子块分割。
在本发明的一些可能的实施方式中,确定单元920还可用于,确定所述视频帧的第三编码块不包含所述细分区域中的像素点;确定所述第三编码块不进行子块分割。
在本发明的一些可能的实施方式中,确定单元920还可用于,在确定所述第三编码块不进行子块分割之前,确定所述第三编码块的当前分割深度等于第三分割深度阈值,其中,所述第三分割深度阈值小于所述视频帧的最大允许分割深度。
在本发明的一些可能的实施方式中,确定单元920还可用于,在确定所述第三编码块不进行子块分割之前,确定所述第三编码块的率失真代价小于或等于所述第三编码块进行子块分割后的率失真代价。
在本发明的一些可能的实施方式中,确定单元920还可用于,确定所述视频帧的第四编码块不包含所述细分区域中的像素点;确定所述第四编码块的率失真代价大于所述第四编码块进行子块分割后的率失真代价;
所述分割单元930还可用于,将所述第四编码块进行子块分割。
在本发明的一些可能的实施方式中,确定单元920还可用于,在所述将所述第四编码块进行子块分割之前,确定所述第四编码块的当前分割深度小于第三分割深度阈值;其中,所述第三分割深度阈值小于所述视频帧的最大允许分割深度。
可以理解的是,本实施例的视频编码中的块分割处理装置900的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。视频编码中的块分割处理装置900可集成于视频编码装置中。其中,视频编码装置例如可为任何需要采集,存储或者向外传输音频信号的装置,例如手机,平板电脑,个人电脑,笔记本电脑等等。
可以看出,本实施例视频编码中的块分割处理装置900在获取视频帧的细分区域后,当确定所述视频帧的第一编码块包含所述细分区域中的像素点,将所述第一编码块进行子块分割。其中,所述视频帧的细分区域包括所述视频帧的ROI和所述视频帧的边缘区域中的至少一个。也就是说,视频帧的第一编码块与细分区域之间的相对位置关系可在一定程度上决定第一编码块在当前分割深度下是否进行子块分割。因此,相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本发明上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对计算资源的占用。
参见图10,图10是本发明另一实施例提供的视频编码装置的结构框图。
视频编码装置1000可包括:至少1个处理器1001,存储器1005和至少1个通信总线1002。通信总线1002用于实现这些组件之间的连接通信。
可选的,该视频编码装置1000还可包括:至少1个网络接口1004和用户接口1003等。其中,可选的,用户接口1003包括显示器(如触摸屏,液晶显示器或者全息成像(英文:Holographic)或者投影(英文:Projector)等等),点击设备(例如鼠标,轨迹球(英文:trackball)触感板或触摸屏等),摄像头和/或拾音装置等。
其中,存储器1005可以包括只读存储器和随机存取存储器,并向处理器1001提供指令和数据。存储器1005中的一部分还可以包括非易失性随机存取存储器。
在一些可能的实施方式中,存储器1005存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:获取单元910,确定单元920和分割单元930。
在本发明实施例中,通过执行存储器1005中的代码或指令,处理器1001用于获取视频帧的细分区域,其中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域中的至少一个;确定所述视频帧的第一编码块包含所述细分区域中的像素点;将所述第一编码块进行子块分割。
在本发明的一些可能的实施方式中,处理器1001还用于在所述将所述第一编码块进行子块分割之前,确定所述第一编码块的当前分割深度小于第一分割深度阈值,其中,所述第一分割深度阈值小于或等于所述视频帧的最大允许分割深度。
在本发明的一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,处理器1001用于确定所述视频帧的第一编码块包含所述感兴趣区域和所述边缘区域的重叠区域的像素点。
在本发明的一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,处理器1001用于,确定所述视频帧的第一编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第一编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点;
其中,所述处理器1001还用于,在将所述第一编码块进行子块分割之前,确定所述第一编码块的率失真代价大于所述第一编码块进行子块分割后的率失真代价。
在本发明的一些可能的实施方式中,处理器1001还用于,在将所述第一编码块进行子块分割之前,确定所述第一编码块的当前分割深度小于第二分割深度阈值,所述第二分割深度阈值小于所述第一分割深度阈值。
在本发明的一些可能的实施方式中,所述视频帧的细分区域包括所述视频帧的感兴趣区域和所述视频帧的边缘区域;其中,处理器1001还还用于,确定所述视频帧的第二编码块包含所述感兴趣区域中的像素点且不包含所述视频帧的边缘区域中的像素点,或者确定所述视频帧的第二编码块包含所述视频帧的边缘区域中的像素点且不包含所述视频帧的感兴趣区域中的像素点;确定所述第二编码块的率失真代价小于或者等于所述第二编码块进行子块分割后的率失真代价;确定所述第二编码块不进行子块分割。
在本发明的一些可能的实施方式中,处理器1001还用于,确定所述视频帧的第三编码块不包含所述细分区域中的像素点;确定所述第三编码块不进行子块分割。
在本发明的一些可能的实施方式中,处理器1001还用于在所述确定所述第三编码块不进行子块分割之前,确定所述第三编码块的当前分割深度等于第三分割深度阈值,其中,所述第三分割深度阈值小于所述视频帧的最大允许分割深度。
在本发明的一些可能的实施方式中,处理器1001还用于在所述确定所述第三编码块不进行子块分割之前,确定所述第三编码块的率失真代价小于或等于所述第三编码块进行子块分割后的率失真代价。
在本发明的一些可能的实施方式中,处理器1001还用于确定所述视频帧的第四编码块不包含所述细分区域中的像素点;确定所述第四编码块的率失真代价大于所述第四编码块进行子块分割后的率失真代价;将所述第四编码块进行子块分割。
在本发明的一些可能的实施方式中,处理器1001还用于在所述将所述第四编码块进行子块分割之前,确定所述第四编码块的当前分割深度小于第三分割深度阈值;其中,所述第三分割深度阈值小于所述视频帧的最大允许分割深度。
可以理解的是,本实施例的视频编码装置1000的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。视频编码装置1000例如可为任何需要采集,存储或者向外传输音频信号的装置,例如手机,平板电脑,个人电脑,笔记本电脑等等。
可以看出,本实施例视频编码装置1000在获取视频帧的细分区域后,当确定所述视频帧的第一编码块包含所述细分区域中的像素点,将所述第一编码块进行子块分割。其中,所述视频帧的细分区域包括所述视频帧的ROI和所述视频帧的边缘区域中的至少一个。也就是说,视频帧的第一编码块与细分区域之间的相对位置关系可在一定程度上决定第一编码块在当前分割深度下是否进行子块分割。因此,相比于完全通过计算和比较当前编码块划分前和划分前后的率失真大小来确定是否对当前编码块继续进行子块划分的传统机制,本发明上述技术方案有利于降低确定当前编码块在当前分割深度下是否进行子块分割的计算复杂度,进而有利于减少对计算资源的占用。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任意一种视频编码中的块分割处理方法的部分或全部步骤。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任意一种视频编码方法的部分或全部步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明各个实施例所述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(英文:read-only memory,缩写:ROM)或者随机存取存储器(英文:random access memory,缩写:RAM)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。