1.本技术涉及视频处理技术领域,特别涉及一种编码方法、介质及电子设备。
背景技术:
2.随着5g技术的催生,超高清视频传输在越来越多行业得到蓬勃发展,如虚拟现实(virtual reality,vr)、增强现实(augmented reality,ar),视频直播等。在vr/ar等沉浸式视频体验领域,对分辨率、实时性和延时有很高的要求,如要求分辨率1080p、4k等,帧率60fps、120fps,延迟30ms左右。传输如此海量数据,对网络的带宽需求急剧增长。目前的视频编解码技术如h.265使用了一系列技术去先压缩视频再传输,可节省大量带宽。
3.目前,h.265和av1等视频编解码标准引入tile分块编码机制,对视频帧中每个tile分块独立并行编码,提高并行处理能力和编码效率。通过tile分块,可以只传输画面上关注区域的分块视频,降低对视频传输带宽的要求。另外,基于roi(感兴趣区域)的编码机制,对图像中roi感兴趣区域进行较高质量编码,对roi外的区域进行较低质量编码,从而节省带宽和控制码流。而roi的获取一般是使用视觉算法如最近的物体检测(object detection)深度学习算法,对视频帧进行模型推理获取物体的roi,如人脸区域。在联合使用tile分块编码和roi编码的方法下,一个物体的roi可能被分割在几个不同的tile分块内。在每个分块内处于roi区域的部分进行较高质量编码,对每个分块图像中处于其他区域(除了roi区域以外的区域)的部分进行较低质量编码。
4.然而,每个roi区域中通常不仅包含图像中的前景对象(即关注的物体,如人物的人脸、人头、人体,或动物等),还包含图像中该对象边缘的背景,尤其是在roi区域的尺寸较大时,roi区域中包含的背景的尺寸可能会较大。如此,即使视频编码器采用tile分块编码机制和roi编码机制对每帧图像中的不同分块编码,在roi区域中包含较多的背景时,视频编解码器将需要使用较多的计算资源对这些背景进行高质量编码,导致计算资源浪费,也会造成一些视频传输带宽的浪费,延迟变大等问题。
技术实现要素:
5.本技术实施例提供了一种编码方法、介质及电子设备,能够提高视频编码效率,避免计算资源的浪费,并减小视频传输延迟、降低带宽和码率。
6.第一方面,本技术实施例提供了一种编码方法,包括:获取待处理图像;将待处理图像划分为多个分块;对每个分块进行检测,检测出每个分块中包含目标物体的目标区域;按照第一编码参数对每个分块中的目标区域中的图像进行编码,并按照第二编码参数对每个分块图像中的除了目标区域之外的区域中的图像进行编码,其中,第一编码参数对应的图像编码质量高于所述第二编码参数对应的图像编码质量。
7.其中,上述待处理图像中的分块可以为tile分块。其中,对每个分块的检测具体可以为感兴趣区域(region of interest,roi)检测,每个分块中包含目标物体的目标区域为各个分块中的roi区域。作为一种示例,在待处理图像中包含人物的情况下,目标物体可以
为人物头部,如图1和图2中目标物体可以为包含帽子在内的人物头部。可以理解的是,待处理图像中的目标物体分割到各个分块上,上述各个分块上包含目标物体指的是各个分块上包含该目标物体的一部分,即包含该目标物体的分段。
8.在一些实施例中,第一编码参数表示的量化参数小于第二编码参数表示的量化参数。例如,对于亮度(luma)编码而言,量化参数(quantization parameter,qp)取值0~51,对于色度(chroma)编码,qp的取值为0~39。可以理解的是,量化参数qp,反映了空间细节压缩情况,值越小,量化越精细,图像质量越高,产生的码流也越长。在一些实施例中,第一编码参数(如下文中的编码参数1)为qp较小的值,对应roi区域较高质量编码,第二编码参数(如下文中的编码参数2)为qp较大的值,对应roi区域较低质量编码。如此,本技术实施例提供的编码方法是单独对每个分块进行检测来获取各个分块中的roi区域,使得各个分块上的roi区域包含的除了目标物体之外的背景较少,从而尽可能的避免了对图像中的背景进行高质编码,提高了编码效率,减少了编码过程中计算资源的浪费。
9.在上述第一方面的一种可能的实现中,上述对每个分块进行检测,检测出每个分块中包含目标物体的目标区域,包括:对待处理图像进行检测,检测出待处理图像中的包含目标物体的原始区域(如下文中的原始roi区域,如roi区域a);将原始区域分割到多个分块上,得到多个子区域(如下文中的子roi区域);对每个分块中的子区域中的图像进行检测(如roi检测),检测出每个分块中包含目标物体的目标区域(roi区域)。可以理解的是,在各个分块的子roi区域中的图像上进行检测,可以进一步去除子roi区域中包含的除了目标物体之外的背景得到各个分块上最终的目标区域,使得各个分块上的目标区域包含尽量少的背景。
10.在上述第一方面的一种可能的实现中,上述对待处理图像进行检测,检测出待处理图像中的包含目标物体的原始区域,包括:将待处理图像调整为第一图像尺寸并输入至第一物体检测模型(即下文中的一级粗调物件检测模型)中,并由第一物体检测模型输出待处理图像中的原始区域;另外,上述对每个分块中的子区域中的图像进行检测,检测出每个分块中包含目标物体的目标区域,包括:将每个分块中的子roi区域中的图像调整为第二图像尺寸并输入至第二物体检测模型(即下文中的二级细调物件检测模型),并由第二物体检测模型输出每个分块中的目标区域。其中,第一图像尺寸大于第二图像尺寸。上述第一物体检测模型和第二物体检测模型的模型结构可采用类似yolo,mobilenet-ssd和cornetnet等开源模型结构,或采用专用设计的模型结构等。可以理解的是,第一物体检测模型用于在整体图像上检测出物体roi,再将此roi的图像由tile分块后送给二级细调物体检测模型,这样可以缩小二级细调物体检测模型的检测范围。多个分块内的roi的图像可以堆叠成batch(批),在送入第二物体检测模型作推理任务,可以充分利用npu硬件的计算资源,提高推理效率。并且,经过两级物体检测模型可以检测出每个分块中较为精确的roi,使得每个分块中的roi中包含除了关注的目标物体之外尽可能少的背景。
11.在上述第一方面的一种可能的实现中,上述待处理图像为待处理视频中的任意一帧图像;在待处理图像为待处理视频中的i帧时,待处理图像中的各个分块是基于帧内编码按照第一编码参数和第二编码参数进行编码的;在待处理图像为待处理图像中的p帧或b帧时,待处理图像中的各个分块是基于帧间编码按照第一编码参数和第二编码参数进行编码的。可以理解的是,对于一帧图像而言,均是按照第一编码参数对最终计算得到的目标区域
(即roi区域)中的图像进行编码,按照第二编码参数对图像中除了目标区域之外的区域进行编码。如此,有利于进一步提高视频的编码效率。
12.在上述第一方面的一种可能的实现中,上述方法还包括:在基于第一编码参数和第二编码参数将待处理视频编码为视频码流的情况下,向云端设备发送视频码流;其中,云端设备用于向接收设备发送视频码流,接收设备用于解码视频码流并播放待处理视频。例如,待处理视频为直播场景中的视频。可以理解的是,基于第一编码参数和第二编码参数对待处理视频进行编码指的是,对针对待处理视频中的每帧图像中的各个分块并行编码,具体对每个分块均按照第一编码参数对roi区域(即目标区域)中的图像进行编码,按照第二编码参数对除了roi区域之外的区域中的图像进行编码。如此,本技术实施例提供的编码方法中,由于对一帧视频图像的编码过程采用tile并行编码的同时,使用更为聚焦物体的roi区域对各个分块上的不同部分采用适合的编码参数进行编码。从而,可以避免对各帧图像中的过多的背景进行高质量编码,避免计算资源的浪费,提高了视频的编码效率,进而减少视频传输延迟、带宽需求、传输码率。如此,使得高清视频直播场景的视频直播流畅、清晰且时延较低。
13.第二方面,本技术实施里提供了一种电子设备,包括:获取模块,用于获取待处理图像;划分模块,用于将所述获取模块获取的所述待处理图像划分为多个分块;检测模块,用于对所述划分模块划分得到的每个所述分块进行检测,检测出每个所述分块中包含目标物体的目标区域;编码模块,用于按照第一编码参数对检测模块检测出的每个所述分块中的目标区域中的图像进行编码,并按照第二编码参数对每个所述分块图像中的除了目标区域之外的区域中的图像进行编码,其中,第一编码参数对应的图像编码质量高于所述第二编码参数对应的图像编码质量。在一些实施例中,上述获取模块可以由电子设备中的isp实现,划分模块可以由电子设备中的cpu实现,检测模块可以由电子设备中的npu实现,编码模块可以由电子设备中的vpu实现。例如,上述电子设备可以为下文中的高清视频直播采集装置31,检测模块可以为npu 312,编码模块可以为vpu 313。
14.在上述第二方面的一种可能的实现中,上述检测模块,具体用于对待处理图像进行检测,检测出待处理图像中的包含目标物体的原始区域;将原始区域分割到多个分块上,得到多个子区域;对每个分块中的子区域中的图像进行检测,检测出每个分块中包含目标物体的目标区域。
15.在上述第二方面的一种可能的实现中,上述检测模块,具体用于将待处理图像调整为第一图像尺寸并输入至第一物体检测模型中,并由第一物体检测模型输出待处理图像中的原始区域;以及,将每个分块中的子roi区域中的图像调整为第二图像尺寸并输入至第二物体检测模型,并由第二物体检测模型输出每个分块中的目标区域。
16.在上述第二方面的一种可能的实现中,上述待处理图像为待处理视频中的任意一帧图像;在待处理图像为待处理视频中的i帧时,待处理图像中的各个分块是基于帧内编码按照第一编码参数和第二编码参数进行编码的;在待处理图像为待处理图像中的p帧或b帧时,待处理图像中的各个分块是基于帧间编码按照第一编码参数和第二编码参数进行编码的。
17.在上述第二方面的一种可能的实现中,上述设备还包括:发送模块,用于在基于第一编码参数和第二编码参数将待处理视频编码为视频码流的情况下,向云端设备发送视频
码流;其中,云端设备用于向接收设备发送视频码流,接收设备用于解码视频码流并播放待处理视频,待处理视频为直播视频。例如,上述发送模块可以由电子设备中的网络模块实现,如在电子设备为下文中的高清视频直播采集装置31时,上述发送模块可以为网络模块314。
18.第三方面,本技术实施里提供了一种可读介质,该可读介质上存储有指令,该指令在电子设备上执行时使该电子设备执行第一方面以及其任一种可能的实现方式中的编码方法。
19.第四方面,本技术实施里提供了一种电子设备,包括:存储器,用于存储由该电子设备的一个或多个处理器执行的指令,以及处理器,是该电子设备的处理器之一,用于执行第一方面以及其任一种可能的实现方式中的编码方法。
附图说明
20.图1根据本技术的一些实施例,示出了一种图像中的分块和roi区域示意图;
21.图2根据本技术的一些实施例,示出了一种图像中的分块和roi区域示意图;
22.图3根据本技术的一些实施例,示出了一种视频编码场景的示意图;
23.图4根据本技术的一些实施例,示出了一种高清视频直播采集装置的结构示意图;
24.图5根据本技术的一些实施例,示出了一种编码方法的示意图;
25.图6根据本技术的一些实施例,示出了一种编码方法的示意图。
具体实施方式
26.本技术的说明性实施例包括但不限于编码方法、装置、介质和设备。
27.为了方便描述,首先对本技术实施例中的一些名词或术语进行解释说明。
28.1、tile(分块):
29.一幅图像可以划分为若干个tile,即从水平和垂直方向将一幅图像分割为若干个矩形区域,一个矩形区域就是一个tile。划分tile的主要目的是在增强视频编码的并行处理能力以及控制码流,可以只传输关注的分块视频编码数据,在使用时无须进行复杂的线程同步。tile的划分并不要求水平和垂直边界均匀分布,可根据并行计算和差错控制的要求灵活控制。
30.2、感兴趣区域(region of interest,roi):
31.在图像处理领域,感兴趣区域(roi)是从图像中选择的一个图像区域,这个区域是图像分析所关注的重点,具体地圈定该区域以便对该区域中的目标物体(如人物的人脸、人头、人体,或动物等)进行进一步处理,可以减少处理时间,增加精度。其中,roi可以通过矩形、圆、椭圆、不规则多边形等方式从待处理图像中勾勒出的区域。例如,在和等机器视觉软件上常用到各种物体检测算法求得图像的roi,或者使用深度学习算法检测图像的roi,进而进行图像的下一步处理。其中,roi区域通常为矩形,而roi区域框选出的目标物体通常为不规则形状,因此矩形的原始roi区域中不仅包含目标物体还包含目标物体周围的一些背景(即矩形框的内边缘所在的背景)。
32.3、帧内编码:
33.帧内编码是空间域编码,利用图像空间性冗余度进行图像压缩,处理的是一幅独
立的图像,不会跨越多幅图像。空间域编码依赖于一幅图像中相邻像素间的相似性和图案区的主要空间域频率。
34.4、帧间编码:
35.帧间编码是时间域编码,是利用一组连续图像间的时间性冗余度进行图像压缩。如果某帧图像可被解码器使用,那么解码器只须利用两帧图像的差异即可得到下一帧图像。比如运动平缓的几帧图像的相似性大,差异性小,而运动剧烈的几幅图像则相似性小,差异性大。时间域编码依赖于连续图像帧间的相似性,尽可能利用已接收处理的图像信息来“预测”生成当前图像。
36.5、压缩算法:
37.作为一种示例,视频压缩算法包括步骤1)-4)。
38.1)分组:把几帧图像分为一个画面组(group of pictures,gop),为防止运动变化,帧数不宜取多,一个gop就是一组连续的画面,也就是一个序列。
39.2)定义帧:将每组内各帧图像定义为三种类型,即i帧、b帧和p帧。
40.3)预测帧:以i帧作为基础帧,以i帧预测p帧,再由i帧和p帧预测b帧。
41.4)数据传输:最后将i帧数据与预测的差值信息进行存储和传输。
42.其中,i帧又称帧内编码帧(也称为关键帧),p帧又称帧间预测编码帧(前向参考帧),b帧又称双向预测编码帧(双向参考帧)。
43.本技术提供的编码方法可以应用于汽车、嵌入式设备,视频监控,智能家居、医疗以及物联网等领域。
44.更具体地,上述编码方法可以应用于一些全高清视频传输场景中,如对虚拟现实(virtual reality,vr)、增强现实(augmented reality,ar)、混合现实(mixed reality,mr),1080p,4k等视频传输场景涉及的视频图像进行压缩编码。
45.下面将结合附图对本技术的实施例作进一步地详细描述。
46.通常情况下,在基于roi的视频编码场景中,常规编码方法使用ai物体检测算法独立检测出一帧完整的图像的roi区域,该roi区域可以称为原始roi区域。在使用tile分块编码机制对一帧图像中的不同分块(即tile)并行编码的情况下,将原始roi区域划分到不同的分块上,对每个分块中处于原始roi区域的部分进行高质量编码,并对每个分块中不处于原始roi区域的部分进行低质量编码。可以理解的是,低质量编码之后的图像相对高质量编码后的图像的质量较低,如分辨率较低。
47.作为一种示例,如图1所示,通过tile分块编码机制将图像a划分为两行两列的四个分块a1,a2,a3和a4。假定图像a中的目标物体为人物头部(包括人物的帽子和脸部)。上述常规编码方法是在图像a中识别出完整的人物头部,进而确定出完整的人物头部对应的roi区域a(原始roi区域)。也就是说,roi区域a聚焦的是图像a中完整的人物头部。随后,上述常规编码方法可以将roi区域a直接划分到分块a1,a2,a3和a4上,分别得到roi区域a1,a2,a3和a4,进而分别对各个分块中处于roi区域a1,a2,a3和a4中的图像进行高质量编码,即对图像a中处于原始roi区域a的所有部分均进行高质量编码。
48.然而,由于一幅图像中的目标物体(即需要聚焦的对象)通常为不规则形状,而roi区域通常为例如矩形这种规则的形状,因此为了使编码后的图像能够包含目标物体尽量多的特征,roi区域需要包含目标物体的所有边缘点。例如,图1所示的人物的帽子的下边缘比
人物的下巴长,帽子的右边缘比人物的右脸长,而roi区域a为矩形,那么为了使编码后的图像包含完整的人物头部,roi区域a需要包含人物头部之外较多的背景,如包含较多的下巴下方的背景和较多右脸右侧的背景。
49.作为一种示例,图1示出的分块a4上的物体分段(即部分头部)为目标物体(即整个人物头部)一部分,因此分块a4中roi区域a4的下边框超出了下巴边缘点所在的直线n,并且roi区域a4的右边框超出了右脸边缘点所在的直线q,即roi区域a4包含人脸之外的较多背景。
50.如此,使用常规roi视频编码方法对视频进行roi编码,使得roi区域中包含了一部分背景,对这一部分背景也使用了高质量的编码,造成视频带宽浪费和传输码率较大等问题。
51.为了解决上述问题,本技术实施例提供的一种编码方法,在视频编码器采用tile分块编码机制对一帧图像中的不同分块(即tile)进行编码时,对每个分块分别进行roi检测,即对每个分块分别进行ai物体检测算法得出roi区域。由于在对一个分块进行roi检测时,是检测该分块中感兴趣的物体(即目标物体)所在的区域,例如,假设对图1中的分块a4进行roi检测,只需要检测人物头部所在的区域。使得各分块上的roi区域的边缘紧贴各分块中人物头部的边缘,从而得到每个分块中更加精确的roi区域,使得每个分块的roi区域中的图像包含除了目标物体之外较少的背景。进而,视频编码器在对各个分块中的roi区域进行高质量编码时,由于各个分块中的roi区域中的图像包含较少的背景,因此相较于图1所示的编码方案,本技术提供的编码方法可以避免对过多的背景进行高质量编码,从而可以提高编码效率,避免计算资源的浪费,并在减小视频传输延迟、降低带宽和码率方面有一定的收益。
52.作为一种示例,如图2所示,本技术实施例提供的编码方法可以将图像a划分为两行两列的四个分块a1,a2,a3和a4,分别检测出roi区域a1,a2,a3和a4,再在roi区域a1,a2,a3和a4的基础上分别检测出roi区域b1,b2,b3和b4。
53.具体地,本技术实施例中,基于roi的ai物体检测算法采用2级模型机制,包括一级粗调物体检测模型和二级细调物体检测模型,从coarse(粗调)到fine(细调)实现roi检测。
54.可以理解的是,本技术提供的编码方法设计了2级神经网络物体检测模型,包括一级coarse粗调物件检测模型(即一级粗调物体检测模型或一级模型)和二级fine细调物体检测模型(即二级细调物体检测模型)。其中,一级粗调物体检测模型目的是在原始视频上获取大致的物体边缘框roi,二级细调物体检测模型再在一级粗调物体检测模型获取的roi的基础上进行细调,获取精确的roi。
55.此外,上述2级模型机制中的模型结构可采用类似yolo,mobilenet-ssd和cornetnet等开源模型结构,或采用专用设计的模型结构等。训练数据集可采用开源数据集,或者自己采集的数据并进行标注。训练过程中模型在数据集上达到收敛,检测精度达到应用的要求即可。
56.具体地,如图2所示,针对图像a而言,本技术实施例提供的编码方法如下:将原始图像调整到固定尺寸如300*300(像素),送入一级粗调物体检测模型,得出目标物体的roi矩形框,即得到roi区域;根据事先配置好的tile分块参数将图像a划分为不同分块,如将图像a划分为两行两列的四个分块a1,a2,a3和a4;然后,单独将每个分块内包含在一级物体检
测模型检测出的roi区域中的图像(即roi区域a1,a2,a3,a4),调整到固定尺寸如48*48(像素),然后送入二级细调物体检测模型,得出更加精确的roi区域。如此,检测出分块a1上的roi区域b1,分块a2上的roi区域b2,分块a3上的roi区域b3,分块a4上的roi区域b4。
57.可以理解的是,通过tile分块编码机制将一帧图像划分为多个分块时,该图像中的目标物体划分到多个分块上通常会产生多个分段(即目标物体的分段)。
58.作为一种示例,图2示出的人物头部(即目标物体)划分到分块a1、a2、a3、a4上分别形成一个分段,例如,人物头部的下半张脸的右侧部分为划分到分块a4上的分段。
59.例如,如2所示,分块a4上的分段为包括鼻子到下巴的人脸,聚焦该分段的roi区域b4包含人脸之外较少的背景。具体的,图2中roi区域b4的下边框超出下巴的边缘点所在的直线n较少,右边框超出右脸边缘点所在直线q较少。显然,图2示出的roi区域b4相比于图1示出的roi区域a4包含人脸之外较少的背景。
60.类似的,将roi区域b1,b2,b3分别与区域a1,a2,a3相比,roi区域b1,b2,b3和b4均包含较少的人脸之外的背景,即roi区域b1,b2,b3和b4整体相比于roi区域a而言包含更少的背景。
61.如此,本技术实施例提供的编码方法可以单独对图像中的每个分块进行检测来获取各个分块中的roi区域,使得图像中各个分块上的roi区域包含的除了目标物体的分段之外的背景较少,从而尽可能的避免了对图像中的背景进行高质编码,提高了编码效率,减少了编码过程中计算资源的浪费。
62.在一些实施例中,本技术实施例提供的编码方法可以应用于支持h.265标准和av1标准等视频压缩格式的电子设备中。更具体地,在一些实施例中,适用于本技术的电子设备包括但不限于:高清视频直播采集装置,电视或机顶盒,可穿戴设备,ar设备,vr设备,mr设备,数字直接广播系统,无线通信装置,个人数字助理(pda),膝上型或桌上型计算机,手机,平板计算机,数字相机,数字记录装置,视频游戏装置,蜂窝式或卫星无线电电话等。
63.以下实施例中,以申请中执行编码方法的电子设备为高清视频直播采集装置为例进行说明。
64.如图3所示,为本技术实施例提供的一种视频编解码场景,该场景中包括高清视频直播采集装置31和高清视频直播终端装置32。
65.高清视频直播采集装置31采集高清视频,如1080p,4k,对采集的视频编码得到视频码流,并通过云端等网络将视频码流分发至高清视频直播终端装置32,进而由高清视频直播终端装置32对视频码流进行解码并显示。
66.具体地,高清视频直播采集装置31中包括图像处理器(image signal processor,isp)311,视频编解码器(video processing unit,vpu,也称视频处理器)312和神经网络处理器(neural-network processing unit,npu)313,网络模块314,存储器315,显示单元316,中央处理器(central processing unit,cpu)317和摄像头318。
67.其中,摄像头318用于捕获图像。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给isp 311转换成数字图像信号。可以理解的是,高清视频直播采集装置31可以通过isp 311,摄像头318,vpu 312,显示单元316等实现视频拍摄功能。
68.vpu 312是一种视频处理平台核心引擎,具有硬件编解码功能,可以减少设备的
cpu负荷的能力。例如,在本技术实施例中,vpu 312用于对视频进行编码得到视频码流,以实现视频压缩编码。
69.npu 313是专为深度学习推理设计的架构,可用于处理视频、图像类的多媒体数据。例如,在本技术中npu用于采用ai技术检测物体的roi区域,包括完整图像的物体roi和各分块的物体roi(即物体分段的roi区域)。
70.显示单元316用于显示人机交互界面、图像、视频等,例如显示摄像头318采集的视频。
71.存储器315用于存储由cpu 317,isp 311,vpu 312,npu 313等处理器执行编码方法过程中所执行的指令和数据等。
72.cpu 317用于协同isp 311,vpu 312,npu 313,存储器315等单元对视频进行编码。作为一种示例,cpu 317用于控制isp 311,vpu 312,npu 313执行视频编码方法。
73.网络模块314用于将编码得到的视频码流发送给云端。网络模块314可以提供应用在高清视频直播采集装置31上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),移动通信网络等无线通信的解决方案。网络模块314可以通过无线通信技术与网络以及其他设备进行通信。其中,云端上的云端设备可以为服务器等。
74.可以理解的是,本发明实施例示意的结构并不构成对高清视频直播采集装置31的具体限定。在本技术另一些实施例中,高清视频直播采集装置31可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。例如,高清视频直播采集装置31还可以包括传感器模块,音频模块等。图示的部件可以以硬件,软件或软件和硬件的组合实现。
75.在一些实施例中,如图4所示,为高清视频直播采集装置31的一种可能的结构示意图。图4示出的装置包括网络模块314,视频编解码器(vpu)312,神经网络处理器(npu)313,显示单元316,中央处理器(cpu)317和存储器315,以及连接这些器件的总线319。
76.高清视频直播终端装置32中包括网络模块321,vpu 322,存储器323,显示单元324和cpu 325。
77.其中,网络模块321经过云端接收来自高清视频直播采集装置31的视频码流,该视频码流经过vpu 322解码后再由显示单元324直播。
78.而存储器323用于存储由cpu 325,vpu 322等处理器执行编码方法过程中所执行的指令。cpu 325用于协同vpu 322,存储器323等单元对视频进行解码播放。
79.可以理解的是,本发明实施例示意的结构并不构成对高清视频直播终端装置32的具体限定。
80.下面将根据本技术的一些实施例,结合上述场景的描述以及对高清视频直播采集装置31的描述,以一帧图像的编码过程为例介绍高清视频直播采集装置31中各个单元执行编码方法的工作流程。上述场景中描述的技术细节在此流程中依然适用,为了避免重复,有些在此次不再赘述。如图5所示,为申请实施例提供的一种对一帧图像的编码方法的流程示意图,该方法具体包括:
81.步骤501:高清视频直播采集装置31预先配置tile分块的参数,如tile分块的参数为n行m列,表示将一个图像划分为n行m列的tile分块。
82.例如,结合上述图2,对于图像a而言,预先配置的tile分块的参数可以为两行两列(n=m=2),即可以将图像a划分为四个分块a1,a2,a3和a4。其中,每个分块就是一个子图像,也可以称为分块子图像。
83.在一些实施例中,对于一帧图像,tile分块的参数可以包括各个分块相对于该图像的坐标,如各个矩形的分块的四个顶点在该图像上的坐标。
84.作为一种示例,上述步骤501可以由高清视频直播采集装置31中的cpu 317执行。
85.步骤502:高清视频直播采集装置31通过npu 313运行一级粗调物体检测模型,输入整幅图像,推理得出roi-a。
86.可以理解的是,roi-a为输入一级粗调物体检测模型的整幅图像上的粗略估计的roi区域。以图2为例,在一级粗调物体检测模型输入图像a时,推理得到的roi区域a(即roi-a)。
87.以图2为例,在一级粗调物体检测模型中输入图像a之前,npu 313或isp 311还可以先将图像a调整为固定尺寸,如300*300。
88.在一些实施例中,npu 313检测出待处理图像的整幅图像的roi区域为矩形时,可以通过每个矩形的roi区域的四个顶点坐标标识一个roi区域在图像上的位置。
89.步骤503:高清视频直播采集装置31根据配置的tile分块,将roi-a分割为多个子roi,提取每个子roi的图像。
90.作为一种示例,上述步骤503可以由高清视频直播采集装置31中的cpu 317以及isp 311等器件执行。
91.例如,结合上述图2,对于图像a而言,高清视频直播采集装置31将roi区域a(即roi-a)直接划分到分块上,得到分块a1,a2,a3和a4上分别对应的roi区域a1,a2,a3和a4。此时,roi区域a1,a2,a3和a4为上述多个子roi。那么,高清视频直播采集装置31可以分别提取出图像a中roi区域a1,a2,a3和a4中的图像。
92.在roi区域a1,a2,a3和a4中的图像上分别检测出roi区域b1,b2,b3和b4,即检测出各个分块上聚集目标物体分段的roi区域。相应地,npu 312可以将分块a1,a2,a3和a4上除了roi区域(即roi区域b1,b2,b3和b4)以外的其他区域作为非roi区域。
93.在一些实施例中,npu 313检测出待处理的图像的各个分块上的子roi为矩形时,同样可以通过每个矩形的roi区域的四个顶点坐标标识一个roi区域在对应的分块上的位置,当然这些坐标为相对于该分块的坐标或相对于该图像的坐标。
94.可以理解的是,本技术实施例中,在一帧图像中包括多个目标物体(如多个人物头部)时,通过一级粗调物体检测模型可以在检测出多个roi-a。相应的,该图像的一些分块上可能包括不同目标物体的分段,那么可以划分得到这些分块上属于不同roi-a的子roi,即不同目标物体的分段所在的子roi。例如,一帧图像中包括人物1和人物2,通过一级粗调物体检测模型可以在检测出人物1所在的roi-a和人物2所在的roi-a。此时,如果该图像上的一个分块中既包括人物1的分段又包括人物2的分段,那么可以划分得到两个分段在不同roi-a中的子roi。
95.步骤504:高清视频直播采集装置31将每个子roi的图像调整到同一尺寸并堆叠起来作为二级细调物体检测模型的输入,npu 313运行二级细调物体检测模型,推理得到每个子roi的图像上精确的roi-b。
96.以图2为例,高清视频直播采集装置31可以分别将图像a中roi区域a1,a2,a3和a4中的图像分别调整到同一尺寸,如48*48。并且,通过二级细调物体检测模型可以在roi区域a1,a2,a3和a4中的图像的基础上,检测出分块a1,a2,a3和a4上分别对应的roi区域b1,b2,b3和b4,即各个分块上精确的roi-b。
97.其中,待处理的图像的各个分块上除了roi-b之外的区域称为非roi区域。那么,待处理的图像中除了所有分块上的roi-b之外的区域为该图像中的非roi区域。
98.在一些实施例中,本技术实施例在使用一级粗调物体检测模型和二级细调物体检测模型之前,通过预先采集并标注的训练数据集训练深度学习模型,使得模型能够执行上述步骤。其中,上述训练数据集中的图像可以为预设尺寸(如或100*100,或48*48),并且预先标记有roi。
99.具体地,在一些实施例中,训练数据集中的图像输入物体检测深度学习模型(如一级粗调物体检测模型和二级细调物体检测模型),模型推理输出roi位置和得分(置信度等)信息。模型loss损失函数可以是定位损失和分类损失的和(具体可参考mobilenet-ssd),模型中不断喂给新的数据集进行训练,经过多次迭代后,直到模型收敛,loss损失函数稳定在一个比较低的数值,同时在评估数据集上accuracy(精确度)达到预期目标。
100.作为一种示例,物体检测深度学习模型可采用开源模型如yolo,mobilenet-sdd,cornernet等,或专用设计的网络架构。其中,一级粗调物体检测模型的训练数据集可采用开源数据集,如针对人脸检测的wider face数据集。也可以采用自己采集的数据集并标注物体框roi。二级细调物体检测模型训练数据集可以沿用一级粗调物体检测模型的训练数据集,通过随机tile分块将整幅图像切分开,标注的roi也需要根据tile分块进行切分,另外,为了获得更精确的roi,标注的roi被分割后,可以人工再次标注,得到精确的roi区域。
101.步骤505:高清视频直播采集装置31通过vpu 312按照编码参数1对图像中每个tile分块中的roi-b中的图像进行编码,按照编码参数2对各个tile分块中非roi区域中的图像进行编码。
102.其中,各个tile分块中非roi区域就是图像中除了roi-b区域之外的区域。
103.可以理解的是,编码参数1可以为与roi区域对应的编码参数,用于对图像数据进行高质量编码,即编码参数1对应较高的图像编码质量。而编码参数2可以为与非roi区域对应的编码参数,用于对图像数据进行较低质量编码,即编码参数2对应较低的图像编码质量。
104.可以理解的是,调整编码参数主要是调整量化参数(quantization parameter,qp),对于亮度(luma)编码而言,qp取值0~51,对于色度(chroma)编码,qp的取值0~39。其中,量化参数qp,反映了空间细节压缩情况,值越小,量化越精细,图像质量越高,产生的码流也越长。如qp较小,图像中大部分的细节都会被保留;qp增大,一些细节丢失,码率降低,但图像失真加强和质量下降。例如,对于亮度编码而言,qp取最小值0时,表示量化最精细;相反,qp取最大值51时,表示量化是最粗糙的。当然,本技术实施例提供的编码参数表示的量化参数包括但不限于上述示例。
105.在一些实施例中,编码参数1为qp较小的值,对应roi区域较高质量编码,编码参数2为qp较大的值,对应roi区域较低质量编码。也就是说,编码参数1表示的量化参数小于编码参数2表示的量化参数。qp值的选取可根据实际码率要求和系统带宽需求决定。
106.可以理解的是,一级粗调物体检测模型用于在整体图像上检测出物体roi,再将此roi的图像由tile分块后送给二级细调物体检测模型,这样可以缩小二级细调物体检测模型的检测范围。多个分块tile内的roi的图像可以堆叠成batch(批),在送入二级细调物体检测模型作推理任务,可以充分利用npu硬件的计算资源,提高推理效率。并且,经过两级物体检测模型可以检测出每个tile分块中较为精确的roi,使得每个分块中的roi中包含除了关注的目标物体之外尽可能少的背景。从而,可以避免对过多的背景进行高质量编码,从而可以提高编码效率,避免计算资源的浪费,并在减小视频传输延迟、降低带宽和码率方面有一定的收益。
107.一般情况下,针对视频编码,主要是有帧内编码(i帧)和帧间编码(p/b帧),一级、二级物体检测模型可以作用于每个原始帧得到每个原始帧对应的精确roi,如果当前帧是按i帧处理,就按i帧和当前帧对应的roi编码。如果当前帧是按p/b帧处理,就按p/b帧和当前帧对应的roi编码。
108.进一步的,参照图5示出的编码方法,以下以视频中多帧视频图像的编码过程为例,介绍高清视频直播采集装置31中的各个单元执行编码方法的工作流程。如图6所示,为本技术实施例提供的多帧视频图像的编码方法的流程示意图,该方法具体包括:
109.步骤601:高清视频直播采集装置31输入视频。
110.其中,上述视频为高清直播采集装置通过摄像头318实时采集的。作为一种示例,上述视频可以为直播视频。
111.步骤602:高清视频直播采集装置31获取一帧图像。
112.步骤603:高清视频直播采集装置31预先配置tile分块的参数,如tile分块的参数为n行m列,表示将一个图像划分为n行m列的tile分块。
113.步骤604:npu 313运行一级粗调物体检测模型,输入整幅图像,推理得出roi-a。
114.步骤605:高清视频直播采集装置31根据配置的tile分块,将roi-a分割为多个子roi,提取每个子roi的图像。
115.步骤606:高清视频直播采集装置31将每个子roi的图像调整到同一尺寸并堆叠起来作为二级细调物体检测模型的输入,npu 313运行二级细调物体检测模型,推理得到每个子roi的图像上精确的roi-b。
116.步骤607:高清视频直播采集装置31通过vpu 312按照编码标准对当前帧进行帧内或者帧间编码,并按照编码参数1对图像中每个tile分块中的roi-b中的图像进行编码,按照编码参数2对各个tile分块中非roi区域中的图像进行编码。
117.其中,上述步骤603-607中的详细描述可以参照上述实施例中的步骤501-506,相同之处不再赘述。不同之处在于,在使用编码数据编码时,如果当前帧为i帧则采用帧内编码,当前帧为p或b帧则采用帧间编码。更具体地,针对属于i帧的tile分块采用帧内编码,针对属于p或b帧的tile分块采用帧间编码。
118.步骤608:高清视频直播采集装置31获取下一帧图像,重复执行步骤603-607。
119.进一步的,在视频直播的场景中,高清视频直播采集装置31在对采集的视频进行编码之后,可以通过网络模块314向云端设备发送编码得到的视频码流。随后,云端设备可以将接收到的视频流码发送给高清视频直播终端设备32。然而,高清视频直播终端设备32通过网络模块321接收视频流码,通过vpu 322对视频流码进行解码,再通过显示单元324直
播解码后的视频,完成视频直播。
120.本技术实施例提供的编码方法中,由于对一帧视频图像的编码过程采用tile并行编码的同时,使用更为聚焦物体的roi区域对各个分块上的不同部分采用适合的编码参数进行编码。从而,可以避免对各帧图像中的过多的背景进行高质量编码,避免计算资源的浪费,提高了视频的编码效率,进而减少视频传输延迟、带宽需求、传输码率。如此,使得高清视频直播场景的视频直播流畅、清晰且时延较低。
121.本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
122.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
123.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
124.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
125.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
126.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
127.需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
128.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
技术特征:
1.一种编码方法,其特征在于,包括:获取待处理图像;将所述待处理图像划分为多个分块;对每个所述分块进行检测,检测出每个所述分块中包含目标物体的目标区域;按照第一编码参数对每个所述分块中的目标区域中的图像进行编码,并按照第二编码参数对每个所述分块图像中的除了目标区域之外的区域中的图像进行编码,其中,所述第一编码参数对应的图像编码质量高于所述第二编码参数对应的图像编码质量。2.根据权利要求1所述的方法,其特征在于,所述对每个所述分块进行检测,检测出每个所述分块中包含目标物体的目标区域,包括:对所述待处理图像进行检测,检测出所述待处理图像中的包含所述目标物体的原始区域;将所述原始区域分割到所述多个分块上,得到多个子区域;对每个所述分块中的子区域中的图像进行检测,检测出每个所述分块中包含所述目标物体的目标区域。3.根据权利要求2所述的方法,其特征在于,所述对所述待处理图像进行检测,检测出所述待处理图像中的包含所述目标物体的原始区域,包括:将所述待处理图像调整为第一图像尺寸并输入至第一物体检测模型中,并由所述第一物体检测模型输出所述待处理图像中的所述原始区域;所述对每个所述分块中的子区域中的图像进行检测,检测出每个所述分块中包含所述目标物体的目标区域,包括:将每个所述分块中的子区域中的图像调整为第二图像尺寸并输入至第二物体检测模型,并由所述第二物体检测模型输出每个所述分块中的目标区域。4.根据权利要求3所述的方法,其特征在于,所述待处理图像为待处理视频中的任意一帧图像;在所述待处理图像为待处理视频中的i帧时,所述待处理图像中的各个分块是基于帧内编码按照所述第一编码参数和所述第二编码参数进行编码的;在所述待处理图像为待处理图像中的p帧或b帧时,所述待处理图像中的各个分块是基于帧间编码按照所述第一编码参数和所述第二编码参数进行编码的。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在基于所述第一编码参数和所述第二编码参数将所述待处理视频编码为视频码流的情况下,向云端设备发送所述视频码流;其中,所述云端设备用于向接收设备发送所述视频码流,所述接收设备用于解码所述视频码流并播放所述待处理视频。6.一种电子设备,其特征在于,包括:获取模块,用于获取待处理图像;划分模块,用于将所述获取模块获取的所述待处理图像划分为多个分块;检测模块,用于对所述划分模块划分得到的每个所述分块进行检测,检测出每个所述分块中包含目标物体的目标区域;
编码模块,用于按照第一编码参数对所述检测模块检测出的每个所述分块中的目标区域中的图像进行编码,并按照第二编码参数对每个所述分块图像中的除了目标区域之外的区域中的图像进行编码,其中,所述第一编码参数对应的图像编码质量高于所述第二编码参数对应的图像编码质量。7.根据权利要求6所述的设备,其特征在于,所述检测模块,具体用于对所述待处理图像进行检测,检测出所述待处理图像中的包含所述目标物体的原始区域;将所述原始区域分割到所述多个分块上,得到多个子区域;对每个所述分块中的子区域中的图像进行检测,检测出每个所述分块中包含所述目标物体的目标区域。8.根据权利要求7所述的设备,其特征在于,所述检测模块,具体用于将所述待处理图像调整为第一图像尺寸并输入至第一物体检测模型中,并由所述第一物体检测模型输出所述待处理图像中的所述原始区域;以及,将每个所述分块中的子区域中的图像调整为第二图像尺寸并输入至第二物体检测模型,并由所述第二物体检测模型输出每个所述分块中的目标区域。9.根据权利要求8所述的设备,其特征在于,所述待处理图像为待处理视频中的任意一帧图像;在所述待处理图像为待处理视频中的i帧时,所述待处理图像中的各个分块是基于帧内编码按照所述第一编码参数和所述第二编码参数进行编码的;在所述待处理图像为待处理图像中的p帧或b帧时,所述待处理图像中的各个分块是基于帧间编码按照所述第一编码参数和所述第二编码参数进行编码的。10.根据权利要求9所述的设备,其特征在于,所述设备还包括:发送模块,用于在基于所述第一编码参数和所述第二编码参数将所述待处理视频编码为视频码流的情况下,向云端设备发送所述视频码流;其中,所述云端设备用于向接收设备发送所述视频码流,所述接收设备用于解码所述视频码流并播放所述待处理视频,所述待处理视频为直播视频。11.一种可读介质,其特征在于,所述可读介质上存储有指令,所述指令在电子设备上执行时使所述电子设备执行权利要求1至5中任一项所述的编码方法。12.一种电子设备,其特征在于,包括:存储器,用于存储由所述电子设备的一个或多个处理器执行的指令,以及处理器,是所述电子设备的处理器之一,用于执行权利要求1至5中任一项所述的编码方法。
技术总结
本申请涉及视频处理技术领域,公开了一种编码方法、介质及电子设备,能够提高视频编码效率,避免计算资源的浪费,并减小视频传输延迟、降低带宽和码率。该编码方法,包括:获取待处理图像;将待处理图像划分为多个分块;对每个分块进行检测,检测出每个分块中包含目标物体的目标区域;按照第一编码参数对每个分块中的目标区域中的图像进行编码,并按照第二编码参数对每个分块图像中的除了目标区域之外的区域中的图像进行编码,第一编码参数对应的图像编码质量高于第二编码参数对应的图像编码质量。该方法具体用于对高清直播视频等视频进行编码的过程中。行编码的过程中。行编码的过程中。
技术研发人员:阮小飞 吴胜华 尚峰 胡春林
受保护的技术使用者:安谋科技(中国)有限公司
技术研发日:2021.12.01
技术公布日:2022/3/8