视频编码方法、装置、计算机设备及存储介质与流程
未命名
10-21
阅读:69
评论:0
1.本技术涉及视频技术领域,尤其涉及一种视频编码方法及装置。
背景技术:
2.视频网站为了给用户提供稳定的观看体验,会在视频转码时,控制视频编码后的画质满足一个预设目标。在衡量编码画质时,业内普遍采用vmaf(video multimethod assessment fusion,视频多方法评估融合)指标来衡量,该指标可以比较准确得衡量编码后的画质指令,因此,可以通过控制编码后的vmaf指标来为用户提供稳定的画质体验。现有技术中,为了控制视频编码后的vmaf指标,可以通过调整编码器的编码参数,比如rf(rate factor,码率因子)参数来实现,然后基于调整后的编码参数对视频进行编码,从而使得编码后得到的视频的画质满足该vmaf指标。
3.然而,发明人发现,虽然通过控制编码后的vmaf指标可以控制大多数视频的画质满足预设目标,但是对于某些视频,会出现实际画质明显恶化的现象。比如图1所示的这类视频,这类视频的视频画面由一个动态的视频序列叠加在一个静态背景上组成,整个画面中只有中间一小部分区域处于连续变化中,其他静态区域一直处于静止状态。当使用vmaf指标决策的编码参数对这类视频进行编码后,发现编码后得到的视频的动态区域的画质会出现明显的模糊、块效应等画质问题,严重影响观看体验。
技术实现要素:
4.有鉴于此,现提供一种视频编码方法、装置、计算机设备及计算机可读存储介质,以解决现有的视频编码方法在确定编码参数时,准确度不高的问题。
5.本技术提供了一种视频编码方法,所述方法包括:
6.获取待编码视频;
7.根据预设的编码目标决策出所述待编码视频的原始编码参数,所述编码目标为所述目标编码视频的视频多方法评估融合vmaf指标满足设定目标;
8.对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;
9.根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。
10.可选地,根据预设的编码目标决策出所述待编码视频的原始编码参数包括:
11.采用预设的编码参数对所述待编码视频中的至少一帧视频帧进行编码,得到编码后的视频帧;
12.计算编码后的视频帧的vmaf指标;
13.判断编码后的视频帧的vmaf指标是否满足所述设定目标;
14.若编码后的视频帧的vmaf指标不满足所述设定目标,则对所述预设的编码参数进
行调整;
15.采用调整后的编码参数再次对所述待编码视频中的至少一帧视频帧进行编码,直到编码后的视频帧的vmaf指标满足所述设定目标为止,并将满足所述设定目标所对应的编码参数作为所述原始编码参数。
16.可选地,所述对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比包括:
17.将所述待编码视频中所有视频帧转换为对应的灰度图;
18.根据所有视频帧对应的灰度图生成像素灰度方差图;
19.根据所述像素灰度方差图确定所述待编码视频中的静态区域的面积占比。
20.可选地,所述根据所有视频帧对应的灰度图生成像素灰度方差图包括:
21.针对视频帧中的每一个像素位置,根据所有视频帧对应的灰度图计算出所有视频帧在每一个像素位置处的像素的方差;
22.将计算得到的视频帧中所有像素位置处的像素的方差组成所述像素灰度方差图。
23.可选地,所述根据所述像素灰度方差图确定所述待编码视频中的静态区域的面积占比包括:
24.将所述像素灰度方差图转换为静态区域的二值图;
25.统计所述二值图中用于表示静态区域的像素点的数量;
26.根据统计到的数量以及所述二值图中包含的所有像素点的数量确定所述待编码视频中的静态区域的面积占比。
27.可选地,所述将所述像素灰度方差图转换为静态区域的二值图包括:
28.针对所述像素灰度方差图中的每一个像素点,若该像素点的像素值小于预设值,则判定该像素点作为所述二值图中用于表示静态区域的像素点,若该像素点的像素值大于或者等于所述预设值,则判定该像素点作为所述二值图中用于表示动态区域的像素点。
29.可选地,所述根据预设的编码目标决策出所述待编码视频的原始编码参数的步骤之后,还包括:
30.判断所述原始编码参数是否大于预设的阈值编码参数;
31.若所述原始编码参数大于所述阈值编码参数,则执行对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比的步骤。
32.可选地,所述获取待编码视频包括:
33.获取原始视频;
34.对所述原始视频进行场景检测,并根据检测结果将所述原始视频切分为多个场景片段视频,其中,每一个场景片段视频作为一个待编码视频。
35.本技术还提供了一种视频编码装置,所述视频编码装置包括:
36.获取模块,用于获取待编码视频;
37.决策模块,用于根据预设的编码目标决策出所述待编码视频的原始编码参数,所述编码目标为所述目标编码视频的视频多方法评估融合vmaf指标满足设定目标;
38.检测模块,用于对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;
39.编码模块,用于根据所述原始编码参数、所述面积占比及预设的编码参数调整算
法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。
40.本技术还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
41.本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
42.本技术实施例视频编码方法,通过获取待编码视频;根据预设的编码目标决策出所述待编码视频的原始编码参数;对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。采用上述视频编码方式,通过对视频中的静态区域进行检测,并根据静态区域占比,对决策的编码参数进行自适应调整,从而使得最终的编码参数为合适的编码参数,通过该合适的编码参数得到的目标编码视频的动态区域中的画质不会出现模糊、块效应等令人反感的画质问题。此外,上述视频编码方式,只需引入很低的计算代价,即可提高视频编码的画质稳定性,避免了vmaf不准确造成的编码画质问题。
附图说明
43.图1为具有静态区域的视频的示意图;
44.图2为本技术实施例的视频编码方法的一实施例的应用环境示意图;
45.图3为本技术所述的视频编码方法的一种实施例的流程图;
46.图4为本技术一实施例中获取待编码视频的步骤细化示意图;
47.图5为本技术一实施例中根据预设的编码目标决策出所述待编码视频的原始编码参数的步骤细化示意图;
48.图6为本技术一实施例中对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比的步骤细化示意图;
49.图7为本技术一实施例中根据所有视频帧对应的灰度图生成像素灰度方差图的步骤细化示意图;
50.图8为本技术一实施例中根据所述像素灰度方差图确定所述待编码视频中的静态区域的面积占比的步骤细化示意图;
51.图9为本技术所述的视频编码装置的一种实施例的程序模块图;
52.图10为本技术实施例提供的执行视频编码方法的计算机设备的硬件结构示意图。
具体实施方式
53.以下结合附图与具体实施例进一步阐述本技术的优点。
54.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附
权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
55.在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
56.应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
57.在本技术的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本技术及区别每一步骤,因此不能理解为对本技术的限制。
58.以下为本技术的术语解释:
59.crf:constant rate factor,恒定码率因子,是视频编码的一种码率控制方式。
60.rf:rate factor,码率因子,是crf编码模式的编码参数,可以控制编码文件的码率和质量。
61.vmaf:video multimethod assessment fusion,视频多方法评估融合,是视频多维度混合评价因子,一种衡量编码后视频质量的全参考评价方法。
62.avc:advanced video coding,高级视频编码,一种视频编码标准,
63.x264:一个编码器,参照的标准是avc。
64.下面提供本技术的示例性应用环境。图2示意性示出了根据本技术实施例的视频编码方法的应用环境示意图。
65.在示例性的实施例中,该应用环境的系统可包括终端设备10、服务器20。其中,终端设备10与服务器20通过无线或有线网络连接。终端设备10可以为移动终端、固定终端等。服务器20可以为机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。网络可以包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙和/或代理设备等。网络还可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路及其组合和/或类似物。
66.在一具体应用场景中,终端设备10可以通过网络将待编码视频上传至服务器20。服务器20中部署有视频编码装置,该视频编码装置可以获取待编码视频;根据预设的编码目标决策出所述待编码视频的原始编码参数;对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。
67.相关技术中,视频编码质量评价方法主要采用vmaf作为指标来对编码后的视频画质进行衡量,然而,当视频中包含大量静态区域时,采用vmaf指标对视频画质进行衡量会降低其准确性,会使vmaf指标虚高,从而导致基于该vmaf指标决策出的编码参数对视频进行编码后得到的编码视频的动态区域中的画质不会出现模糊、块效应等令人反感的画质问题。
68.发明人仔细研究发现,上述编码方法之所有会出现明显的画质问题是因为,当采用vmaf对编码后视频画质进行评价时,会先计算图像中局部的失真,再将局部失真求平均后得到整张图的失真,并以此来评价视频画质。在编码过程中,静态区域的画面极易编码,基本不会产生明显的失真,当视频画面中的静态区域面积占比很大时,vmaf计算得到的整张图平均失真很小,即使动态区域有很大的失真,在整图平均之后也很小。因此,vmaf会认为在当前的编码参数下,视频的画质已经满足要求了,不需要再增加码率。但实际上,人眼非常关注的动态区域的画质却出现了明显的损伤,出现了码率不足带来的模糊、块效应等令人反感的编码失真。
69.基于上述发现,本技术通过获取待编码视频;根据预设的编码目标决策出所述待编码视频的原始编码参数;对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。采用上述视频编码方式,通过对视频中的静态区域进行检测,并根据静态区域占比,对决策的编码参数进行自适应调整,从而使得最终的编码参数为合适的编码参数,通过该合适的编码参数得到的目标编码视频的动态区域中的画质不会出现模糊、块效应等令人反感的画质问题。此外,上述视频编码方式,只需引入很低的计算代价,即可提高视频编码的画质稳定性,避免了vmaf不准确造成的编码画质问题。
70.下面,将在上述示例性应用环境下提供若干个实施例,来说明本技术中的视频编码方案。参阅图3,其为本技术一实施例的视频编码方法的流程示意图。本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的视频编码方法包括:
71.步骤s30、获取待编码视频。
72.具体地,所述待编码视频可以为需要进行编码的场景片段视频,也可以为需要进行编码的完整视频,甚至可以为需要进行编码的视频帧,在本实施例中不作限定。
73.需要说明的是,上述场景片段视频指的是对视频进行场景检测后,根据场景检测结果切分后得到的视频。比如,一个视频在进行场景检测后,若检测到其中包括5个场景片段,则可以将该视频划分为5个场景片段视频。
74.在一示例性的实施方式中,参阅图4,为了使得编码后得到的所有画面的画质都能达到相同的画质目标,所述获取待编码视频包括:
75.步骤s40,获取原始视频。
76.具体地,所述原始视频为完整的未经过视频分段处理的视频,所述原始视频也是未经过编码的视频,其一般由多个单镜头的场景片段剪辑而成,不同场景片段的时空域特性不同。
77.步骤s41,对所述原始视频进行场景检测,并根据检测结果将所述原始视频切分为多个场景片段视频,其中,每一个场景片段视频作为一个待编码视频。
78.具体地,在得到原始视频后,可以调用编码器对原始视频进行场景检测,以从中检测出原始视频中发生场景切换的视频帧,在检测到发生场景切换的视频帧后,即可以以该视频帧为分割点,从而将原始视频划分为多个场景片段视频,其中,场景片段视频的数量与
检测到的分割点的数量确定,比如,检测到共有4个分割点,则可以将整个原始视频分为5个场景片段视频。
79.其中,场景检测算法有很多,其原理均是检测视频帧之间的内容相关性,在一个场景片段内部,帧与帧之间具有很强的相似性,而在不同的场景片段拼接处,帧间相关性会出现明显减小。在实际应用中可根据实际需求选择具体的场景检测算法实现对原始视频的场景检测,比如,可以采用x264编码器中场景检测算法对原始视频进行场景检测。
80.本实施例中,为了原始视频在编码后,每个场景片段视频之间的画质可以保持一致,需要先对原始视频进行场景切换检测,以以便可以将原始视频分成一段段只包含单镜头的场景片段视频。
81.步骤s31,根据预设的编码目标决策出所述待编码视频的原始编码参数。
82.具体地,所述编码目标为用户预先设定的编码后的视频的画质所需要达到的目标。
83.在一实施方式中,所述编码目标可以为对待编码视频进行编码后得到的目标编码视频的视频多方法评估融合vmaf指标满足设定目标,比如,vmaf指标=93。可以理解的是,该设定目标也可以为其他值,或者为一个设定的范围,比如vmaf指标为90~92。
84.编码参数为用于对所述待编码视频编码后得到的视频的码率进行控制的参数,所述编码参数可以为cqp(constant quantitative parameters,固定量化参数)模式的qp参数(qp值)、crf(constant rate factor,固定码率因子)模式的rf参数(rf值)、abr(average bitrate rate,平均比特率)模式的br参数(br值)。所述编码参数优选为crf模式的rf值。
85.需要说明的是,所述原始编码参数为根据编码目标决策出的对待编码视频进行编码的作为参考的编码参数,其并不一定是最终的编码参数,最终的编码参数需要根据后续的流程进行确定。
86.在本实施例中,对原始编码参数进行决策的方法有多种,比如可以采用搜索的方式,具体的搜索方式在下面实施例中会详细说明。在一实施方式中,也可以通过预测的方法快速决策出原始编码参数,其中,预测的方法为通过预先训练好的预测模型对原始编码参数进行预测得到。
87.在一示例性的实施方式中,参阅图5,所述根据预设的编码目标决策出所述待编码视频的原始编码参数包括:步骤s50,采用预设的编码参数对所述待编码视频中的至少一帧视频帧进行编码,得到编码后的视频帧;步骤s51,计算编码后的视频帧的vmaf指标;步骤s52,判断编码后的视频帧的vmaf指标是否满足所述设定目标;步骤s53,若编码后的视频帧的vmaf指标不满足所述设定目标,则对所述预设的编码参数进行调整;步骤s54,采用调整后的编码参数再次对所述待编码视频中的至少一帧视频帧进行编码,直到编码后的视频帧的vmaf指标满足所述设定目标为止,并将满足所述设定目标所对应的编码参数作为所述原始编码参数。
88.本实施例中在采用搜索的方式决策出原始编码参数时,会先用一个预设的编码参数对所述待编码视频中的至少一帧视频帧进行编码,得到编码后的视频帧,之后,会计算编码后得到的视频帧的vmaf指标,如果vmaf指标大于或小于设定的目标vmaf指标值,即编码后的视频帧的vmaf指标不满足所述设定目标,则会预设的编码参数进行调整,然后采用调整后的编码参数重新进行编码,如此反复,直到搜索得到最优的目标编码参数,即直到编码
后的视频帧的vmaf指标满足所述设定目标,则可以将此时的编码参数作为所述原始编码参数。
89.步骤s22,对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比。
90.具体地,所述静态区域指的是待编码视频中画面处于静态状态的区域,即在该区域中,待编码视频中的所有视频帧在该静态区域中的画面基本上保存不变,或仅仅有细微的变化。
91.在一示例性的实施方式中,参阅图6,所述对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比包括:
92.步骤s60,将所述待编码视频中所有视频帧转换为对应的灰度图。
93.具体地,在获取到待编码视频后,依次读取待编码视频中的每一帧视频帧,然后对读取到的视频帧进行灰度化处理,从而将每一帧视频帧转换为对应的灰度图。
94.步骤s61,根据所有视频帧对应的灰度图生成像素灰度方差图。
95.具体地,在将所有的视频帧转换为对应的灰度图后,可以根据这些灰度图生成一张宽高和各个视频帧一致的像素灰度方差图。其中,该像素灰度方差图由各个像素点的像素方差值组成的。
96.在一示例性的实施方式中,参阅图7,所述根据所有视频帧对应的灰度图生成像素灰度方差图包括:
97.步骤s70,针对视频帧中的每一个像素位置,根据所有视频帧对应的灰度图计算出所有视频帧在每一个像素位置处的像素的方差。
98.作为示例,假设视频帧中总共具有100个像素点,则针对第1个像素点,会获取所有的视频帧中的第1个像素点的灰度值,然后根据获取到的所有灰度值计算该第1个像素点的方差。同理,针对第2个像素点,会获取所有的视频帧中的第2个像素点的灰度值,然后根据获取到的所有灰度值计算该第2个像素点的方差;针对第3个像素点,会获取所有的视频帧中的第3个像素点的灰度值,然后根据获取到的所有灰度值计算该第3个像素点的方差;
……
,针对第100个像素点,会获取所有的视频帧中的第100个像素点的灰度值,然后根据获取到的所有灰度值计算该第100个像素点的方差。
99.需要说明的是,在另一实施方式中,也可以采用标准差代替上述方差。
100.步骤s71,将计算得到的视频帧中所有像素位置处的像素的方差组成所述像素灰度方差图。
101.具有地,在得到所有像素位置处的像素的方差后,可以将所有的方差值按照像素位置组成一张宽高和各个视频帧一致的像素灰度方差图。
102.步骤s62,根据所述像素灰度方差图确定所述待编码视频中的静态区域的面积占比。
103.具体地,如果某个像素位置的灰度方差很小,则表示该位置在时域上的变化很小,即可以认定该位置属于静态区域;反之某个像素位置的灰度方差很大,则表示该位置在时域上的变化很小,即可以认定该位置属于动态区域。因此,在本实施例中,在根据像素灰度方差图确定所述待编码视频中的静态区域的面积占比时,可以依次判断像素灰度方差图中的每一个像素点的方差是否大于或者预设的方差阈值,若该像素点的方差大于或者预设的
方差阈值,则可以认定该像素点位置属于动态区域,若该像素点的方差小于预设的方差阈值,则可以认定该像素点位置属于静态区域。其中,该方差阈值可以根据实际情况进行设定与调整,比如,该方差阈值为10。
104.在对像素灰度方差图中的所有的像素点进行判断后,即可以得出属于静态区域的像素点的数量n,之后,根据该数量n与像素灰度方差图中的像素点的总数量n可以得到静态区域的面积占比,即面积占比s=n/n。
105.在一示例性的实施方式中,为了便于统计用于表示静态区域的像素点的数量,参阅图8,所述根据所述像素灰度方差图确定所述待编码视频中的静态区域的面积占比包括:
106.步骤s80,将所述像素灰度方差图转换为静态区域的二值图。
107.具体地,在得到像素灰度方差图后,可以对该像素灰度方差图进行二值化处理,以将该像素灰度方差图转换为静态区域的二值图。
108.在一示例性的实施方式中,所述将所述像素灰度方差图转换为静态区域的二值图包括:针对所述像素灰度方差图中的每一个像素点,若该像素点的像素值小于预设值,则判定该像素点作为所述二值图中用于表示静态区域的像素点,若该像素点的像素值大于或者等于所述预设值,则判定该像素点作为所述二值图中用于表示动态区域的像素点。
109.具体地,在进行二值化处理时,需要预先设定一个预设值以作为二值化阈值,其中,该预设值可以根据实际情况进行设定与调整,比如,所述预设值为10。这样,在进行二值化处理时,可以依次判断各个像素点的像素值是否小于10,若小于10,则可以判定该像素点作为所述二值图中用于表示静态区域的像素点,并将该像素点的像素值二值化为“0”。同理,若大于或者等于10,则可以判定该像素点作为所述二值图中用于表示动态区域的像素点,并可以将该像素点的像素值二值化为“1”。
110.在完成所有像素点的二值化处理后,即可以生成一张静态区域的二值图。
111.步骤s81,统计所述二值图中用于表示静态区域的像素点的数量;
112.步骤s82,根据统计到的数量以及所述二值图中包含的所有像素点的数量确定所述待编码视频中的静态区域的面积占比。
113.作为示例,若统计所述二值图中用于表示静态区域的像素点的数量为n,则可以根据该数量n与二值图中的像素点的总数量n可以得到静态区域的面积占比,即面积占比s=n/n。
114.步骤s33,根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。
115.具体地,静态区域的面积占比s越大,说明待编码视频中不动的像素点个数越多,vmaf指标对画质评价的准确性越低,决策得到的编码参数越不可信,越需要调整;反之s越大,vmaf指标准确性越高,决策得到的编码参数越可信,越不需要调整。因此,本实施例中,在得到所述原始编码参数、所述面积占比s后,可以利用s与预设的编码参数调整算法对所述原始编码参数进行自适应调整得到所述目标编码参数,从而来提高画质稳定性。
116.在一示例性的实施方式中,所述编码参数调整算法具体为:
117.rf’=rf
min
+(1-s)(rf-rf
min
),其中,rf’为所述目标编码参数,rf
min
为预先设定的阈值编码参数,s为所述面积占比,rf为所述原始编码参数。
118.需要说明的是,rf
min
是一个较低的值,使用该值对视频进行编码,出现画质问题的概率很低,因此当决策出的原始编码参数小于该值时,可以不需要对决策出的原始编码参数进行调整,而是可以直接使用该决策出的原始编码参数对视频进行编码。该值的设置与具体业务场景和编码器有关,本技术以rf
min
=30为例,具体设置为多少可根据实际应用需求进行调整。
119.在本实施例中,当决策出的原始编码惨rf超过rf
min
,则有可能由于vmaf指标不准确使得决策出的rf偏高,从而码率偏低,出现画质问题,此时就需要根据静态区域面积占比对rf进行调整。当静态区域越高时,对rf调整力度越大。在整个视频画面都是静态区域时,rf会被设置为rf
min
。反之,当静态区域越低时,对rf调整力度越小,在整个视频画面都不是静态区域时,rf保持不变。
120.在一示例性的实施方式中,为了避免对原始编码参数的无效调整,所述根据预设的编码目标决策出所述待编码视频的原始编码参数的步骤之后,还包括:判断所述原始编码参数是否大于预设的阈值编码参数;若所述原始编码参数大于所述阈值编码参数,则执行步骤s32;若所述原始编码参数小于或者等于所述阈值编码参数,则直接使用决策出的原始编码参数对待编码视频进行编码,而无需对原始编码参数进行调整,以使用目标编码参数对待编码视频进行编码。
121.可以理解的是,当需要编码的视频由多个场景片段视频组成时,则在对该视频进行编码时,会依次将该视频中的各个场景片段视频作为所述待编码视频,然后对于每一个待编码视频都执行上述s30-s33步骤,以将各个场景片段视频编码成对应的编码视频,并将编码视频的二进制码流写入至压缩视频文件中。若当前的场景片段视频完成编码,则会判断是否还存在未编码的场景片段视频,若存在,则会对未编码的场景片段视频继续执行上述s30-s33步骤,以对其进行编码,在完成所有场景片段视频的编码后,可以输出完整的压缩视频文件。
122.本实施例通过获取待编码视频;根据预设的编码目标决策出所述待编码视频的原始编码参数;对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。采用上述视频编码方式,通过对视频中的静态区域进行检测,并根据静态区域占比,对决策的编码参数进行自适应调整,从而使得最终的编码参数为合适的编码参数,通过该合适的编码参数得到的目标编码视频的动态区域中的画质不会出现模糊、块效应等令人反感的画质问题。此外,上述视频编码方式,只需引入很低的计算代价,即可提高视频编码的画质稳定性,避免了vmaf不准确造成的编码画质问题。
123.参阅图9所示,是本技术视频编码装置90一实施例的程序模块图。
124.本实施例中,视频编码装置90包括一系列的存储于存储器上的计算机程序指令,当该计算机程序指令被处理器执行时,可以实现本技术各实施例的视频编码功能。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,视频编码装置90可以被划分为一个或多个模块,具体可以划分的模块如下:
125.获取模块91,用于获取待编码视频;
126.决策模块92,用于根据预设的编码目标决策出所述待编码视频的原始编码参数,
所述编码目标为所述目标编码视频的视频多方法评估融合vmaf指标满足设定目标;
127.检测模块93,用于对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;
128.编码模块94,用于根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。
129.在一示例性的实施方式中,决策模块92,还用于采用预设的编码参数对所述待编码视频中的至少一帧视频帧进行编码,得到编码后的视频帧;计算编码后的视频帧的vmaf指标;
130.判断编码后的视频帧的vmaf指标是否满足所述设定目标;若编码后的视频帧的vmaf指标不满足所述设定目标,则对所述预设的编码参数进行调整;采用调整后的编码参数再次对所述待编码视频中的至少一帧视频帧进行编码,直到编码后的视频帧的vmaf指标满足所述设定目标为止,并将满足所述设定目标所对应的编码参数作为所述原始编码参数。
131.在一示例性的实施方式中,所述检测模块93,还用于将所述待编码视频中所有视频帧转换为对应的灰度图;根据所有视频帧对应的灰度图生成像素灰度方差图;根据所述像素灰度方差图确定所述待编码视频中的静态区域的面积占比。
132.在一示例性的实施方式中,所述检测模块93,还用于针对视频帧中的每一个像素位置,根据所有视频帧对应的灰度图计算出所有视频帧在每一个像素位置处的像素的方差;将计算得到的视频帧中所有像素位置处的像素的方差组成所述像素灰度方差图。
133.在一示例性的实施方式中,所述检测模块93,还用于将所述像素灰度方差图转换为静态区域的二值图;统计所述二值图中用于表示静态区域的像素点的数量;根据统计到的数量以及所述二值图中包含的所有像素点的数量确定所述待编码视频中的静态区域的面积占比。
134.在一示例性的实施方式中,所述检测模块93,还用于针对所述像素灰度方差图中的每一个像素点,若该像素点的像素值小于预设值,则判定该像素点作为所述二值图中用于表示静态区域的像素点,若该像素点的像素值大于或者等于所述预设值,则判定该像素点作为所述二值图中用于表示动态区域的像素点。
135.在一示例性的实施方式中,所述视频编码装置90还包括判断模块及执行模块。
136.所述判断模块,用于判断所述原始编码参数是否大于预设的阈值编码参数。
137.所述执行模块,用于若所述原始编码参数大于所述阈值编码参数,则执行对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比的步骤。
138.在一示例性的实施方式中,所述获取模块91,还用于获取原始视频;对所述原始视频进行场景检测,并根据检测结果将所述原始视频切分为多个场景片段视频,其中,每一个场景片段视频作为一个待编码视频。
139.本实施例中的视频编码方案,通过获取待编码视频;根据预设的编码目标决策出所述待编码视频的原始编码参数;对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;根据所述原始编码参数、所述面积
占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。采用上述视频编码方式,通过对视频中的静态区域进行检测,并根据静态区域占比,对决策的编码参数进行自适应调整,从而使得最终的编码参数为合适的编码参数,通过该合适的编码参数得到的目标编码视频的动态区域中的画质不会出现模糊、块效应等令人反感的画质问题。此外,上述视频编码方式,只需引入很低的计算代价,即可提高视频编码的画质稳定性,避免了vmaf不准确造成的编码画质问题。
140.图10示意性示出了根据本技术实施例的适于实现视频编码方法的计算机设备12的硬件架构示意图。本实施例中,计算机设备12是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图10所示,计算机设备12至少包括但不限于:可通过系统总线相互通信链接存储器120、处理器121、网络接口122。其中:
141.存储器120至少包括一种类型的计算机可读存储介质,该可读存储介质可以是易失性的,也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备12的内部存储模块,例如该计算机设备12的硬盘或内存。在另一些实施例中,存储器120也可以是计算机设备12的外部存储设备,例如该计算机设备12上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,存储器120还可以既包括计算机设备12的内部存储模块也包括其外部存储设备。本实施例中,存储器120通常用于存储安装于计算机设备12的操作系统和各类应用软件,例如视频编码方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将要输出的各类数据。
142.处理器121在一些实施例中可以是中央处理器(central processing unit,简称为cpu)、控制器、微控制器、微处理器、或其它视频编码芯片。该处理器121通常用于控制计算机设备12的总体操作,例如执行与计算机设备12进行数据交互或者通信相关的控制和处理等。本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。
143.网络接口122可包括无线网络接口或有线网络接口,该网络接口122通常用于在计算机设备12与其它计算机设备之间建立通信链接。例如,网络接口122用于通过网络将计算机设备12与外部终端相连,在计算机设备12与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(global system of mobile communication,简称为gsm)、宽带码分多址(wideband code division multiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。
144.需要指出的是,图10仅示出了具有部件120~122的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
145.在本实施例中,存储于存储器120中的视频编码方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本技术。
146.本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有
计算机程序,计算机程序被处理器执行时实现实施例中的视频编码方法的步骤。
147.本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的视频编码方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
148.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本技术实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
149.通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
150.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
技术特征:
1.一种视频编码方法,其特征在于,所述方法包括:获取待编码视频;根据预设的编码目标决策出所述待编码视频的原始编码参数,所述编码目标为所述目标编码视频的视频多方法评估融合vmaf指标满足设定目标;对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。2.根据权利要求1所述的视频编码方法,其特征在于,根据预设的编码目标决策出所述待编码视频的原始编码参数包括:采用预设的编码参数对所述待编码视频中的至少一帧视频帧进行编码,得到编码后的视频帧;计算编码后的视频帧的vmaf指标;判断编码后的视频帧的vmaf指标是否满足所述设定目标;若编码后的视频帧的vmaf指标不满足所述设定目标,则对所述预设的编码参数进行调整;采用调整后的编码参数再次对所述待编码视频中的至少一帧视频帧进行编码,直到编码后的视频帧的vmaf指标满足所述设定目标为止,并将满足所述设定目标所对应的编码参数作为所述原始编码参数。3.根据权利要求1所述的视频编码方法,其特征在于,所述对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比包括:将所述待编码视频中所有视频帧转换为对应的灰度图;根据所有视频帧对应的灰度图生成像素灰度方差图;根据所述像素灰度方差图确定所述待编码视频中的静态区域的面积占比。4.根据权利要3所述的视频编码方法,其特征在于,所述根据所有视频帧对应的灰度图生成像素灰度方差图包括:针对视频帧中的每一个像素位置,根据所有视频帧对应的灰度图计算出所有视频帧在每一个像素位置处的像素的方差;将计算得到的视频帧中所有像素位置处的像素的方差组成所述像素灰度方差图。5.根据权利要求3所述的视频编码方法,其特征在于,所述根据所述像素灰度方差图确定所述待编码视频中的静态区域的面积占比包括:将所述像素灰度方差图转换为静态区域的二值图;统计所述二值图中用于表示静态区域的像素点的数量;根据统计到的数量以及所述二值图中包含的所有像素点的数量确定所述待编码视频中的静态区域的面积占比。6.根据权利要5所述的视频编码方法,其特征在于,所述将所述像素灰度方差图转换为静态区域的二值图包括:针对所述像素灰度方差图中的每一个像素点,若该像素点的像素值小于预设值,则判
定该像素点作为所述二值图中用于表示静态区域的像素点,若该像素点的像素值大于或者等于所述预设值,则判定该像素点作为所述二值图中用于表示动态区域的像素点。7.根据权利要1至6任一项所述的视频编码方法,其特征在于,所述根据预设的编码目标决策出所述待编码视频的原始编码参数的步骤之后,还包括:判断所述原始编码参数是否大于预设的阈值编码参数;若所述原始编码参数大于所述阈值编码参数,则执行对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比的步骤。8.根据权利要1至8任一项所述的视频编码方法,其特征在于,所述获取待编码视频包括:获取原始视频;对所述原始视频进行场景检测,并根据检测结果将所述原始视频切分为多个场景片段视频,其中,每一个场景片段视频作为一个待编码视频。9.一种视频编码装置,其特征在于,所述视频编码装置包括:获取模块,用于获取待编码视频;决策模块,用于根据预设的编码目标决策出所述待编码视频的原始编码参数,所述编码目标为所述目标编码视频的视频多方法评估融合vmaf指标满足设定目标;检测模块,用于对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;编码模块,用于根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。10.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的方法的步骤。11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至8任一项所述的方法的步骤。
技术总结
本申请公开了一种视频编码方法。该方法包括:获取待编码视频;根据预设的编码目标决策出所述待编码视频的原始编码参数,所述编码目标为所述目标编码视频的视频多方法评估融合VMAF指标满足设定目标;对所述待编码视频中的静态区域进行检测,并根据检测结果计算出所述待编码视频中的静态区域的面积占比;根据所述原始编码参数、所述面积占比及预设的编码参数调整算法确定所述待编码视频的目标编码参数,并使用所述目标编码参数对所述待编码视频进行编码,得到目标编码视频。本申请可以提高视频画质。频画质。频画质。
技术研发人员:蔡春磊 徐一方 李诗琪 尹壮
受保护的技术使用者:上海哔哩哔哩科技有限公司
技术研发日:2023.07.11
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/