视频编码方法及装置、编码器、设备、存储介质与流程

文档序号:25731048发布日期:2021-07-02 21:19阅读:76来源:国知局
视频编码方法及装置、编码器、设备、存储介质与流程
本申请实施例涉及多媒体技术,涉及但不限于视频编码方法及装置、编码器、设备、存储介质。
背景技术
:与视频图像的数字化的广泛发展相关地,对于视频图像信息的传输和累积来说,提高图像质量和编码效率的需求都越来越强烈。尤其对于实时的视频会议、视频通话等场景,编码端的编码效率的高低直接影响了解码端的实时显示。技术实现要素:有鉴于此,本申请实施例提供的视频编码方法及装置、编码器、设备、存储介质,能够在确保前景区域的清晰度的前提下,提高编码效率,从而改善解码端的显示实时性。本申请实施例提供的视频编码方法及装置、编码器、设备、存储介质是这样实现的:本申请实施例提供的视频编码方法,包括:对待编码的视频帧进行前景检测,得到检测结果;根据所述检测结果,确定属于前景区域的第一编码单元和属于背景区域的第二编码单元各自对应的目标量化参数(quantizationparameter,qp)值;其中,所述前景区域的编码单元的目标qp值小于所述背景区域的编码单元的目标qp值;根据所述目标qp值,对对应的编码单元进行编码,得到码流。本申请实施例提供的视频编码装置,包括:检测模块,用于对待编码的视频帧进行前景检测,得到检测结果;确定模块,用于根据所述检测结果,确定属于前景区域的第一编码单元和属于背景区域的第二编码单元各自对应的目标量化参数qp值;其中,所述前景区域的编码单元的目标qp值小于所述背景区域的编码单元的目标qp值;编码模块,用于根据所述目标qp值,对对应的编码单元进行编码,得到码流。本申请实施例提供的编码器,包括存储器和处理器,所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行如本申请实施例所述的方法。本申请实施例提供的电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例所述的方法。本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的所述的方法。在本申请实施例中,对待编码的视频帧进行前景检测,得到检测结果;根据检测结果,确定属于前景区域的第一编码单元的目标qp值以及属于背景区域的第二编码单元的目标qp值;其中,第一编码单元的目标qp值小于第二编码单元的目标qp值;基于各个编码单元的目标qp值进行编码;如此,在确保前景区域的清晰度的前提下,由于直接确定的是编码单元的目标qp值,而不是码率,这样就无需将所有编码单元的码率逐一换算为qp值再进行编码,从而简化了编码流程,进而提高了编码效率。附图说明此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。图1为本申请实施例提供的视频编码方法的实现流程示意图;图2为图像语义分割的结果示意图;图3为本申请实施例提供的视频编码方法的实现流程示意图;图4为本申请实施例提供的视频编码方法的实现流程示意图图5为本申请实施例提供的人体感知roi-x264编码流程图;图6为本申请实施例视频编码装置的结构示意图;图7为本申请实施例提供的电子设备的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
技术领域
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。需要指出,本申请实施例所涉及的术语“第一\第二\第三”用以区别类似或不同的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。本申请实施例提供一种视频编码方法,该方法应用于电子设备,该电子设备在实施的过程中可以为各种类型的具有视频编码能力的设备,例如所述电子设备可以包括可以是电视机、投影仪、手机、个人计算机、平板电脑、虚拟现实(virtualreality,vr)头戴设备等任何具有视频编解码功能或者仅有编码功能的设备。该方法所实现的功能可以通过电子设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该电子设备至少包括处理器和存储介质。图1为本申请实施例提供的视频编码方法的实现流程示意图,如图1所示,该方法可以包括以下步骤101至步骤103:步骤101,对待编码的视频帧进行前景检测,得到检测结果。可以理解地,检测结果包括用以标识哪些是待编码的视频帧的前景区域,以及哪些是待编码的视频帧的背景区域的相关信息。对于前景检测算法,在本申请实施例中不做限制,前景检测算法可以是任一能够识别前景和背景的图像处理算法。在一些实施例中,电子设备根据预设的人像语义分割算法或者已训练的人脸检测模型,对所述待编码的视频帧进行前景检测,得到检测结果;其中,所述检测结果为用以区分属于前景区域的人像区域和属于背景区域的非人像区域的目标图像,所述目标图像的大小与所述待编码的视频帧的大小相等。可以理解地,语义分割是一种将图像分割成一系列具有特定语义类别的属性区域的方法。例如图2所示,左边是一张自然街景拍摄的图片,右边是对应的语义分割图。可以看到,分割的结果就是将同类的物体全都用一种颜色标注出来,每一类物体就是一种“语义”,例如图中人是一类语义,马路是一类语义,树是一类语义,电线杆是一类语义,等等。语义分割就是要按照语义类别进行分割。如果两个像素靠的很近,例如图中的人和树,但是它们不属于同一个语义类别,那么语义分割算法就需要将他们分割开来。可以看到,语义分割相比传统的分割添加了语义的概念,因此能够将人像精确地分割出来。换句话说,前景区域仅仅包括人像,而不包括其他内容;这样,将该检测结果应用于视频编码方案中,一方面,仅将人像以较高的码率进行编码,而非人像区域的内容以较低的码率进行编码,如此,既保证了人像在解码端的清晰度,也节约了非人像区域占用的带宽资源,整体上能够缩短码流的传输时延,这对于实时视频会议、视频通话等应用场景具有重要意义。这是因为,在这些应用场景中,更期望在较低码率的情况下也能保证人体区域的清晰度。另一方面,由于前景区域仅包含人像,也就是说人像即为前景区域,可见前景区域并非是诸如方形或其他多边形那样规则的区域,前景区域并不包括背景区域的内容,前景与背景的边界清楚,因此,在本申请实施例提供的视频编码方案中,能够使得最终在解码端得到的图像中的前景区域与背景区域过渡更加自然。在一些实施例中,电子设备可以采样deeplabv3+语义分割模型进行人像分割。deeplabv3+采用金字塔池化模块能够编码多尺度上下文信息,编码解码结构通过双线性插值上采样恢复空间信息来捕获清晰的边缘细节信息。但是因为该模型较大,cpu上不能达到实时运行,而由于视频帧之间存在相似性,因此电子设备在运用过程中可以间隔一帧或多帧进行一次人像分割。比如,电子设备利用该模型对第1帧、第4帧、第7帧·····等进行前景检测,从而在不影响视频传输的实时性的前提下,改善这些帧图像的前景清晰度,进而提升用户的视觉体验。当然,电子设备可以根据实施所述视频编码方法的处理器的当前可用运算力,动态地调整间隔的帧数。对于人脸检测模型,在本申请实施例中对其类型也不做限定,人脸检测模型的类型可以是多种多样的。在一些实施例中,电子设备可以采用pyramidbox-lite作为人脸检测模型,该模型为轻量级模型;这样,一方面,能够快速确定待编码的视频帧中的前景区域,从而提高编码效率;另一方面,该模型能够在cpu上实时运行,满足实际应用需求。模型基于主干网络faceboxes。pyramidbox是基于ssd(singleshotmultiboxdetector)通用目标检测算法优化的人脸检测算法。充分利用多尺度的上下文信息改善人脸检测中难样本(存在部分遮挡、小目标、模糊目标等)问题。步骤102,根据所述检测结果,确定属于前景区域的第一编码单元和属于背景区域的第二编码单元各自对应的目标qp值;其中,所述前景区域的编码单元的目标qp值小于所述背景区域的编码单元的目标qp值。在一些实施例中,qp值对应量化步长的序号,对于亮度而言,qp值的范围为0至51,例如,表1所示的部分qp值与量化步长:表1qp值012345678910量化步长0.6250.68750.81250.87511.1251.251.3751.6251.752qp值11121314···464748495051量化步长2.252.52.753.25···128144160176208224可以看到,qp值越小,量化步长就越小,而这样量化的精度也就越高,这意味着同样画质的情况下,产生的数据量可能会更大。在码率固定的情况下,编码单元的qp值越小,该单元则会被分配更高的码率,反之qp值越大,被分配的码率也就越低。需要说明的是,前景区域的编码单元的目标qp值与背景区域的编码单元的目标qp值是不同的。而前景区域的所有编码单元的目标qp值可以相同,也可以不同;背景区域的所有编码单元的目标qp值也是如此,可以相同,也可以不同。可以理解地,前景区域的编码单元的目标qp值小于背景区域的编码单元的目标qp值;这样,在码率固定的情况下,能够给前景区域分配较高的码率,从而改善视频编码后的图像的前景区域的清晰度。在一些实施例中,电子设备可以通过如下实施例的步骤302至步骤304得到每一编码单元的目标qp值。步骤103,根据所述目标qp值,对对应的编码单元进行编码,得到码流。在本申请实施例中,对待编码的视频帧进行前景检测,得到检测结果;根据检测结果,确定属于前景区域的第一编码单元的目标qp值以及属于背景区域的第二编码单元的目标qp值;其中,第一编码单元的目标qp值小于第二编码单元的目标qp值;基于各个编码单元的目标qp值进行编码;如此,在确保前景区域的清晰度的前提下,由于直接确定的是编码单元的目标qp值,而不是码率,这样就无需将所有编码单元的码率逐一换算为qp值再进行编码,从而简化了编码流程,进而提高了编码效率。本申请实施例再提供一种视频编码方法,图3为本申请实施例提供的视频编码方法的实现流程示意图,如图3所示,该方法可以包括以下步骤301至步骤305:步骤301,根据预设的人像语义分割算法或者已训练的人脸检测模型,对所述待编码的视频帧进行前景检测,得到检测结果;其中,所述检测结果为用以区分属于前景区域的人像区域和属于背景区域的非人像区域的目标图像,所述目标图像的大小与所述待编码的视频帧的大小相等。在一些实施例中,目标图像为二值图像。例如,人像区域的像素点的值为1,非人像区域的像素点的值为0;反之也可以。在一些实施例中,所述已训练的人脸检测模型的训练过程包括:获取yuv样本数据集;利用所述yuv样本数据集,对预设的人脸检测模型进行训练,得到所述已训练的人脸检测模型;相应地,所述待编码的视频帧为yuv图像。当然,在另一些实施例中,电子设备也可以基于rgb样本数据集对预设的人脸检测模型进行训练,从而得到所述已训练的人脸检测模型。只不过,当该模型在线使用时,处理的待编码的视频帧应为rgb图像。然而,这样相比于前一实施例,电子设备需要先将yuv视频帧转换为rgb图像,可见该方法增加了整体的编码流程,编码效率相对较低。换句话说,基于yuv样本数据集训练得到的人脸检测模型,在投入到视频编码中,能够提高视频帧的编码效率。在本申请实施例中,对于人脸检测模型的具体结构不做限定,预设的人脸检测模型可以是多种多样的。比如,该模型可以是轻量级模型,也可以是重量级模型。然而,由于重量级模型的实时性难以满足实时视频会议以及视频通话等对实时性应用场景的需求;因此,电子设备在使用这类模型进行前景检测时,可以不对每一待编码的视频帧均进行处理,而是根据预设的间隔处理规则,间隔性地对视频序列中的目标视频帧进行前景检测。比如,对第1帧、第3帧、第5帧···等图像进行前景检测。步骤302,获取所述待编码的视频帧的初始qp矩阵。可以理解地,初始qp矩阵包括待编码的视频帧的每一编码单元(例如每一宏块)的初始qp值,即未调整前的qp值。例如,该初始qp矩阵为原x264码率控制流程中得到的qp矩阵。步骤303,根据所述目标图像,确定大小与所述初始qp矩阵相同的qp偏移值矩阵;其中,所述qp偏移值矩阵包括所述第一编码单元和所述第二编码单元各自对应的qp偏移值。所谓矩阵大小相同是指两个矩阵的行数相等,且列数也相等。可以理解地,最终使电子设备确定的前景区域的编码单元的目标qp值小于背景区域的编码单元的目标qp值的方法可以是多种多样的,当然这与设置的两类区域的编码单元的qp偏移值的关系有关。例如,在一些实施例中,所述第一编码单元的qp偏移值为负数,所述第二编码单元的qp偏移值大于所述第一编码单元的qp偏移值。相应地,在步骤304中,电子设备可以将初始qp矩阵与qp偏移值矩阵进行加和运算,即对应位置的元素相加,即可得到目标qp矩阵。又如,在一些实施例中,所述第一编码单元的qp偏移值为比所述第二编码单元的qp偏移值小的正系数;相应地,在步骤304中,电子设备可以将初始qp矩阵与qp偏移值矩阵进行相乘运算,即对应位置的元素相乘,即可得到目标qp矩阵;再如,在一些实施例中,所述第一编码单元的qp偏移值设置为比所述第二编码单元的qp偏移值大的正数;相应地,电子设备可以将初始qp矩阵与qp偏移值矩阵进行相除运算,即初始qp矩阵中的元素除以qp偏移值矩阵中对应位置的元素,从而得到目标qp矩阵。需要说明的是,在本申请实施例中,同一区域的编码单元的qp偏移值可以相同,也可以不同,对此不做限定。例如,每一第一编码单元的qp偏移值相同,每一第二编码单元的qp值相同,均为预设的固定值;这样,电子设备就无需逐一计算每一编码单元的qp偏移值了,从而能够降低整体视频编码的处理复杂度,从而提高编码效率;又如,不同的编码单元,无论是第一编码单元还是第二编码单元,qp偏移值均不同,电子设备可以自动计算这些编码单元的qp偏移值;再如,前景区域的中心区域的qp偏移值相同,剩余前景区域的qp偏移值相同,背景区域的qp偏移值相同,且这三块区域的qp偏移值均是预设的固定值,且这三块区域的qp偏移值不同。在一些实施例中,电子设备可以通过如下实施例的步骤403至步骤405实现步骤303。步骤304,将所述初始qp矩阵与所述qp偏移值矩阵进行融合运算,得到目标qp矩阵。可以理解地,在本申请实施例中,确定大小与初始qp矩阵相同的qp偏移值矩阵,这样电子设备无需对原有的码率控制流程进行修改,只需将qp偏移值矩阵与原有的码率控制流程中得到的初始qp矩阵进行融合运算,即可实现对码率的调整;可见,这种方法兼容性较强,电子设备在不改变原有的码率控制流程的基础上,即可实现视频编码方案的优化。融合运算的方式可以是多种多样的。例如,在将qp偏移值矩阵中前景区域的编码单元的qp偏移值设置为负数,背景区域的编码单元的qp偏移值设置为大于前景区域的编码单元的qp偏移值的情况下,电子设备可以将初始qp矩阵与qp偏移值矩阵进行加和运算,即对应位置的元素相加,即可得到目标qp矩阵。又如,在将qp偏移值矩阵中前景区域的编码单元的qp偏移值设置为比背景区域的编码单元的qp偏移值小的正系数的情况下,电子设备可以将初始qp矩阵与qp偏移值矩阵进行相乘运算,即对应位置的元素相乘,即可得到目标qp矩阵;再如,在将qp偏移值矩阵中前景区域的编码单元的qp偏移值设置为比背景区域的编码单元的qp偏移值大的正数的情况下,电子设备可以将初始qp矩阵与qp偏移值矩阵进行相除运算,即初始qp矩阵中的元素除以qp偏移值矩阵中对应位置的元素,从而得到目标qp矩阵。步骤305,根据所述目标qp矩阵中的目标qp值,对对应的编码单元进行编码,得到码流。本申请实施例再提供一种视频编码方法,图4为本申请实施例提供的视频编码方法的实现流程示意图,如图4所示,该方法可以包括以下步骤401至步骤407:步骤401,根据预设的人像语义分割算法或者已训练的人脸检测模型,对所述待编码的视频帧进行前景检测,得到检测结果;其中,所述检测结果为用以区分属于前景区域的人像区域和属于背景区域的非人像区域的目标图像,所述目标图像的大小与所述待编码的视频帧的大小相等。步骤402,获取所述待编码的视频帧的初始qp矩阵;步骤403,获取所述待编码的视频帧的各个编码单元的区域信息;步骤404,根据所述各个编码单元的区域信息,对所述目标图像进行降采样,得到降采样图像。对于要采样编码单元的多少个像素点的像素值,与初始qp矩阵的大小和目标图像的大小比例有关。比如,初始qp矩阵的大小与目标图像的大小比例为m/n,其中,n为编码单元的大小;那么,电子设备可以采样每一编码单元的m个像素点的像素值。当然,m可以是预设的固定值,基于该固定值和各个编码单元的区域信息,对目标图像进行降采样,得到的降采样图像的大小与初始qp矩阵的大小相同。m也可以是电子设备实时计算得到的,电子设备可以根据初始qp矩阵的大小、目标图像的大小和编码单元的大小,确定编码单元的采样数目。例如qp矩阵的大小与目标图像的大小的比例为1/4,而编码单元的大小为4×4,那么,该编码单元的采样数目为4;又如,另一编码单元的大小为2×2,那么,该编码单元的采样数目为1。步骤405,根据所述降采样图像,确定所述qp偏移值矩阵。在一些实施例中,将所述降采样图像的前景区域的中心像素点的qp偏移值设置为最小负数;以所述中心像素点的最小负数为起始值,以所述中心像素点为原点,由近及远而逐级递增地设置所述降采样图像的其他像素点的qp偏移值。当然,该实施例是以所述第一编码单元的qp偏移值为负数,所述第二编码单元的qp偏移值大于所述第一编码单元的qp偏移值的情况来讲的。那么,在一些实施例中,在所述第一编码单元的qp偏移值为比所述第二编码单元的qp偏移值小的正系数的情况下,电子设备可以将所述中心像素点的qp偏移值设置为最小正数,然后以所述中心像素点的最小正数为起始值,以所述中心像素点为原点,由近及远而逐级递增地设置所述降采样图像的其他像素点的qp偏移值。在另一些实施例中,在所述第一编码单元的qp偏移值设置为比所述第二编码单元的qp偏移值大的正数的情况下,电子设备还可以将所述中心像素点的qp偏移值设置为最大正数,然后以所述中心像素点的最大正数为起始值,以所述中心像素点为原点,由近及远而逐级递减地设置所述降采样图像的其他像素点的qp偏移值。可以理解地,基于上述实施例,使得最终得到的目标qp值矩阵中以前景区域的中心像素点为原点,由近及远的其他像素点的目标qp值是逐渐增大的;基于此对相应的编码单元进行编码,使得解码端解码得到的视频帧中前景区域与背景区域的边缘过渡更加自然,从而提升用户的视觉体验。步骤406,将所述初始qp矩阵与所述qp偏移值矩阵进行融合运算,得到目标qp矩阵。步骤407,根据所述目标qp矩阵中的目标qp值,对对应的编码单元进行编码,得到码流。h.264是主流的视频编码方法之一,x264则是h.264的应用版本。主流的视频编码技术对图像中的所有场景(即前景区域和背景区域)均采用同一编码方法,在带宽有限或者码率较低的情况下,解码后的前景区域也会有模糊情况。实时视频会议、视频通话等应用场景中更期望在较低码率的情况下也能保证人体区域的清晰度,为了获取更清晰的画面,更多的相关技术是对x264编码的视频数据在解码后对视频图像进行增强方法;如果编码数据中人体区域分配码率不够,视频增强方案也较难恢复出清晰的人体区域。相关的前景区域的编码方案一般需要人工给定前景区域,然而视频流中人体位置经常存在变动,人工给定每帧人体区域的方法不太实用。基于此,下面将说明本申请实施例在一个实际的应用场景中的示例性应用。本申请实施例提供的人体感知x264-roi编码流程如图5所示,在原x264码率控制的基础上增加视频帧人脸检测和人像语义分割的人体感知码率控制模块。此处的宏块(macroblock,mb)都是16×16像素大小,在码率固定的情况下,mb(即编码单元的一种示例)的qp值越小,该mb区域则会分配更高的码率,反之qp越大,分配的码率越低,前景区域的编码原理则是对roi区域分配更高的码率。在本申请实施例中,通过人体感知码率控制模块设置qp偏移值得到视频帧的qpmap(即qp偏移值矩阵),去调节mb级的qp值,相当在原自适应量化和mbtree过程计算得到前景区域对应的mb的qp值的基础上加上qp偏移值。所以,前景区域的qp偏移值是负数。如图5所示,处理步骤如下:步骤501,输入yuv视频序列,一个分支不进行人体感知,待编码的视频帧进入原x264码率控制流程中;如图5所示,待编码的yuv视频帧输入后进入到帧级别码率控制与宏块码率控制流程中,帧级别码率控制会通过复杂度计算来调整qp级别,同时也会通过宏块码率控制编码后的反馈来调节qp级别。自适应量化过程会提前进行,并通过对mb的能量分析结合自适应量化强度因子进行调节,实现mb级的qp调整。步骤502,另一分支为进行人体感知,电子设备需要将待编码的yuv视频帧转换为rgb图像;比如,yuv420数据作为编码视频数据,转换为rgb图像后选择合适的人体感知方法,如果选择基于人脸检测模型的人像检测方法跳到步骤503,否则跳到步骤504进行人像语义分割。在一些实施例中,电子设备可以根据当前应用场景选择合适的前景检测方法。对于实时性要求比较高的应用场景,比如视频会议、视频通话等实时的应用场景,可以选择已训练的人脸检测模型进行人像检测;对于实时性要求较低的应用场景,比如影视观看、下载视频等,可以选择人像语义分割算法进行人像检测。步骤503,对rgb图像进行人脸检测;在本申请实施例中,人脸检测模型采用pyramidbox-lite,该模型是pyramidbox的轻量级模型,能够在cpu上实时运行。模型基于主干网络faceboxes。pyramidbox是基于ssd通用目标检测算法优化的人脸检测算法。充分利用多尺度的上下文信息改善人脸检测中难样本(存在部分遮挡、小目标、模糊目标等)问题。通过人脸检测算法得到人脸坐标信息left、right、top、bottom,分别表示人脸矩形区域最左边、最右边、最上边、最下边的坐标位置。由于mb是16×16像素大小,qpmap宽高大小都为原图的1/16,如下式1所示。对该前景区域的mb赋值qpdelta(即为负数的qp偏移值),背景区域则为-qpdelta或者赋予其他非负数。关键伪代码如下表2所示,qpmap在代码中相当是qpmap行扫描的一维的数组:表2人脸检测qpmap设置关键代码步骤504,对rgb图像进行人像语义分割;在本申请实施例中,人像语义分割算法采用deeplabv3+语义分割模型对rgb图像进行人像分割。deeplabv3+采用金字塔池化模块能够编码多尺度上下文信息,编码解码结构通过双线性插值上采样恢复空间信息来捕获清晰的边缘细节信息。因为该模型较大,cpu上不能达到实时运行,视频帧之间存在相似性,在运用过程中间隔预设帧进行一次人像分割。人像分割最后得到scoremap(灰度图,像素值为0-255),将scoremap宽高缩小16倍并且则得到qpmap大小的图像score_map_new,阈值分割出人像区域并赋值qpdelta,背景区域则为-qpdelta。步骤505,经过mb级的qp调整以后,进行编码,输出编码后的码流数据。其中,关键伪代码如下表3所示:表3人像分割qpmap设置关键代码在本申请实施例中,人体感知编码方法可以通过调整x264视频帧编码的qp值,引导编码器对前景区域分配更高的码率,对背景区域分配更低的码率,在同一码率或者较低码率情况下也能解码恢复出清晰的人像区域。基于深度学习的人脸检测、人像语义分割技术,通过模型压缩技术的模型在边缘设备也能超实时运行,x264编码技术也能够超实时运行,两者算法结合在边缘设备上实时运行也成为可能。随着视频云技术迅速的发展,云端算力足够实时运行深度学习检测、分割模型,本申请实施例提供的视频编码方法可以节省传输带宽,视频编码方案存在较广的应用场景,不仅能节省大量的云端下载流量,还能为视频会议、视频通话、视频直播等应用提供更多路的视频接入。在本申请实施例中,针对x264编码框架在码率有限的情况下无法解码出感兴趣区域的高清图像,采用计算机视觉中的人脸检测和人像语义分割技术分析编码前数据中的的前景区域和背景区域,在一个较低的码率下降低背景清晰度的前提下提升前景的清晰度,可以让前景区域达到高码率一样的清晰效果。其中,人体感知码率控制模块主要提供两类算法,人脸检测算法和人像语义分割算法,开发人员或者电子设备可以根据实际应用进行算法选型。算力足够的情况下,各类可应用人体感知编码的智能算法可纳入这个码率控制模块。通过人体感知算法调节前景区域的qp值对x264编码框架进行优化,在低码率视频编码的情况下,解码器输出的视频感知区域也足够清晰。由于qpdelta值较大的情况下人脸检测编码部分和人脸矩形区域外存在的清晰度不一样的情况,因此在一些实施例中,电子设备可以采用热点图的思想以矩形中心为热点图的圆心,缓慢增加qpdelta值,消除这类边界情况。由于视频编码前的原数据往往是yuv视频数据,从yuv数据转换成rgb数据会存在时间和空间的消耗,可以采用yuv图像数据进行人脸检测模型的训练。甚至可以采用yuv视频序列将x264视频编码过程参与到训练过程中,从而实现端到端的视频编码。本申请实施例提供的视频编码方法也可以运用到其他编码框架中去,类似x265、vp8、vp9等。基于前述的实施例,本申请实施例提供一种视频编码装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)或现场可编程门阵列(fpga)等。图6为本申请实施例视频编码装置的结构示意图,如图6所示,所述装置600包括检测模块601、确定模块602和编码模块603,其中:检测模块601,用于对待编码的视频帧进行前景检测,得到检测结果;确定模块602,用于根据所述检测结果,确定属于前景区域的第一编码单元和属于背景区域的第二编码单元各自对应的目标量化参数qp值;其中,所述前景区域的编码单元的目标qp值小于所述背景区域的编码单元的目标qp值;编码模块603,用于根据所述目标qp值,对对应的编码单元进行编码,得到码流。在一些实施例中,检测模块601,用于:根据预设的人像语义分割算法或者已训练的人脸检测模型,对所述待编码的视频帧进行前景检测,得到检测结果;其中,所述检测结果为用以区分属于前景区域的人像区域和属于背景区域的非人像区域的目标图像,所述目标图像的大小与所述待编码的视频帧的大小相等。在一些实施例中,确定模块602,用于:获取所述待编码的视频帧的初始qp矩阵;根据所述目标图像,确定大小与所述初始qp矩阵相同的qp偏移值矩阵;其中,所述qp偏移值矩阵包括所述第一编码单元和所述第二编码单元各自对应的qp偏移值;将所述初始qp矩阵与所述qp偏移值矩阵进行融合运算,得到目标qp矩阵。在一些实施例中,确定模块602,用于:获取所述待编码的视频帧的各个编码单元的区域信息;根据所述各个编码单元的区域信息,对所述目标图像进行降采样,得到降采样图像;根据所述降采样图像,确定所述qp偏移值矩阵。在一些实施例中,所述第一编码单元的qp偏移值为负数,所述第二编码单元的qp偏移值大于所述第一编码单元的qp偏移值。在一些实施例中,确定模块602,用于:将所述降采样图像的前景区域的中心像素点的qp偏移值设置为最小负数;以所述中心像素点的最小负数为起始值,以所述中心像素点为原点,由近及远而逐级递增地设置所述降采样图像的其他像素点的qp偏移值。在一些实施例中,所述已训练的人脸检测模型的训练过程包括:获取yuv样本数据集;利用所述yuv样本数据集,对预设的人脸检测模型进行训练,得到所述已训练的人脸检测模型;相应地,所述待编码的视频帧为yuv图像。以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。需要说明的是,本申请实施例中图6所示的视频编码装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。也可以采用软件和硬件结合的形式实现。需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。本申请实施例提供一种电子设备,图7为本申请实施例的电子设备的硬件实体示意图,如图7所示,所述电子设备700包括存储器701和处理器702,所述存储器701存储有可在处理器702上运行的计算机程序,所述处理器702执行所述程序时实现上述实施例中提供的方法中的步骤。需要说明的是,存储器701配置为存储由处理器702可执行的指令和应用,还可以缓存待处理器702以及电子设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(randomaccessmemory,ram)实现。本申请实施例提供一种编码器,包括存储器和处理器,所述存储器,用于存储能够在所述处理器上运行的计算机程序;所述处理器,用于在运行所述计算机程序时,执行上述实施例中提供的方法中的步骤。本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的方法中的步骤。本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的方法中的步骤。这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如对象a和/或对象b,可以表示:单独存在对象a,同时存在对象a和对象b,单独存在对象b这三种情况。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1