1.本申请涉及计算机技术领域,尤其涉及一种视频编码方法、装置、计算机设备和存储介质。
背景技术:
2.所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的h.261、h.263、h.264、h.265/hevc(high efficiency video coding)、h.266/vvc(versatile video coding,多功能视频编码)。
3.h.266/vvc中很多编码工具,通常通过scc编码工具对视频序列进行编码,视频序列由若干帧图像组成,一帧图像可以划分成若干互不重叠的编码块,当视频序列中同时包含scc(screen content coding,屏幕内容视频)片段和非scc片段时,现有技术通过scc编码工具对视频序列中的scc片段和非scc片段采用相同的编码策略进行压缩,无法针对不同类型的片段采取不同的编码策略,scc编码工具对scc片段可以大幅提升压缩性能,但对非scc片段的压缩性能提升较小、耗时久,延长了编码时间,降低了视频编码效率。
技术实现要素:
4.为了解决上述技术问题,本申请提供了一种视频编码方法、装置、计算机设备和存储介质。
5.第一方面,本申请提供了一种视频编码方法,包括:
6.获取当前编码块,所述当前编码块为视频序列中未编码的编码块;
7.获取编码标志,所述编码标志为上一编码块编码生成的预判标志;若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码;
8.若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码;
9.若所述当前编码块编码完成,则得到对应的编码数据。
10.可选地,所述第一编码方式包括多个不同的scc编码模式,所述根据第一编码方式对所述当前编码块进行编码,包括:
11.根据各个所述scc编码模式对所述当前编码块进行编码计算后,得到各个所述scc编码模式对应的编码结果,所述编码结果为scc编码模式为选中状态的占比结果;
12.根据至少一个所述scc编码模式对应的编码结果,生成所述当前编码块对应的预判标志;
13.根据所述当前编码块对应的预判标志更新所述编码标志。
14.可选地,所述当前编码块包括多个编码单元,所述根据各个所述scc编码模式对所述当前编码块进行编码计算,得到各个所述scc编码模式对应的编码结果,包括:
15.根据所述scc编码模式对所述各个编码单元进行编码计算,根据计算结果,确定所述编码单元对应的所述scc编码模式的选择状态,所述选择状态包括选中和未选中;
16.将各个所述scc编码模式进行编码计算的次数进行计数,得到对应的编码计算量;
17.将选择状态为选中的scc编码模式的数量作为模式选中数量,根据所述模式选中数量和对应的编码计算量的比值,得到所述scc编码模式对应的编码结果。
18.可选地,所述得到所述编码单元对应的所述scc编码模式的选择状态之后,所述方法还包括:
19.获取各个scc编码模式对应的累计计算量和累计选中数量;
20.计算所述累计计算量和对应scc编码模式的编码计算量之和,得到更新后的累计计算量;
21.计算所述累计选中数量和对应scc编码模式的模式选中数量之和,得到更新后的累计选中数量;
22.根据更新后的累计选中数量和更新后的累计计算量的比值,得到所述scc编码模式对应的编码结果。
23.可选地,所述获取各个scc编码模式对应的累计计算量和累计选中数量之后,所述方法还包括:
24.计算所述累计计算量与预设衰减系数的乘积,得到衰减计算量;
25.计算所述模式选中数量与预设衰减系数的乘积,得到衰减选中数量;
26.计算所述衰减计算量和对应scc编码模式的编码计算量之和,得到更新后的累计计算量;
27.计算所述衰减选中数量和对应scc编码模式的模式选中数量之和,得到更新后的累计选中数量;
28.根据更新后的累计选中数量和更新后的累计计算量的比值,得到所述scc编码模式对应的编码结果。
29.可选地,所述第二编码方式包括预设数量的scc编码模式,所述预设数量小于所述第一编码方式对应的scc编码模式的数量,所述根据第二编码方式对所述当前编码块进行编码,包括:
30.若所述预设数量不为零,则根据所述第二编码方式中的scc编码模式对所述当前编码块进行编码计算,得到所述scc编码模式对应的编码结果。
31.可选地,所述根据至少一个所述scc编码模式对应的编码结果,生成所述当前编码块对应的预判标志,包括:
32.根据所述scc编码模式对应的编码结果与对应的加权系数的乘积,得到所述scc编码模式对应的决策参数;
33.根据各个所述scc编码模式对应的决策参数,生成所述当前编码块对应的预判标志。
34.第二方面,本申请提供了一种视频编码装置,包括:
35.编码内容获取模块,用于获取当前编码块,所述当前编码块为视频序列中未编码的编码块;
36.标志获取模块,用于获取编码标志,所述编码标志为上一编码块编码生成的预判标志;
37.第一编码模块,用于若所述编码标志为第一标志,则根据第一编码方式对所述当
前编码块进行编码;
38.第二编码模块,用于若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码;
39.编码数据生成模块,用于若所述当前编码块编码完成,则得到对应的编码数据。
40.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
41.获取当前编码块,所述当前编码块为视频序列中未编码的编码块;
42.获取编码标志,所述编码标志为上一编码块编码生成的预判标志;
43.若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码;
44.若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码;
45.若所述当前编码块编码完成,则得到对应的编码数据。
46.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
47.获取当前编码块,所述当前编码块为视频序列中未编码的编码块;
48.获取编码标志,所述编码标志为上一编码块编码生成的预判标志;
49.若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码;
50.若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码;
51.若所述当前编码块编码完成,则得到对应的编码数据。
52.上述视频编码方法、装置、计算机设备和存储介质,所述方法包括:获取当前编码块,所述当前编码块为视频序列中未编码的编码块;获取编码标志,所述编码标志为上一编码块编码生成的预判标志;若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码;若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码;若所述当前编码块编码完成,则得到对应的编码数据。基于上一编码块生成的预判标志,确定当前编码块的编码策略,即根据不同类型的编码块选择对应的编码策略,从而实现提升编码压缩性能的同时,缩短编码时间,提高编码效率。
附图说明
53.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
54.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
55.图1为一个实施例中视频编码方法的应用环境图;
56.图2为一个实施例中视频编码方法的流程示意图;
57.图3为一个实施例中视频编码方法的原理示意图;
58.图4为一个实施例中视频编码装置的结构框图;
59.图5为一个实施例中计算机设备的内部结构图。
具体实施方式
60.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
61.图1为一个实施例中视频编码方法的应用环境图。参照图1,该视频编码方法应用于视频编码系统。该视频编码系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
62.在一个实施例中,图2为一个实施例中一种视频编码方法的流程示意图,参照图2,提供了一种视频编码方法。本实施例主要以该方法应用于上述图1中的服务器120来举例说明,该视频编码方法具体包括如下步骤:
63.步骤s210,获取当前编码块,所述当前编码块为视频序列中未编码的编码块。
64.具体地,编码块由视频序列划分而来,编码块具体可以为视频序列中的一帧图像、编码树单元(coding tree unit,ctu)或编码单元(coding unit,cu),其中,一帧图像可以划分成若干互不重叠的编码树单元,每个编码树单元作为根节点可以划分成若干尺寸更小的编码单元。在本实施例中,选择以编码树单元作为编码块。视频序列中的编码块依照顺序依次进行编码,当前编码块为视频序列中待编码的编码块,且当前编码块的上一编码块为编码完成的编码块。
65.步骤s220,获取编码标志,所述编码标志为上一编码块编码生成的预判标志。
66.具体地,编码标志为根据上一编码块的编码结果预判当前编码块类型的标志,编码标志记为b_scc,编码块的类型包括scc(screen content coding,屏幕内容视频)视频和非scc视频,scc视频是指由计算机生成的视频,包括游戏视频或视频会议的实时屏幕共享视频等,非scc视频为自然内容视频,自然内容视频是指由摄像头采集的视频。根据上一编码块对应的编码标志判断当前编码块是否属于scc视频。
67.步骤s230,若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码。
68.具体地,第一标志为当前编码块属于scc视频的标志,第一编码方式为对scc视频进行编码的编码方式,即当前编码块属于scc视频时,采用第一编码方式对当前编码块进行编码。
69.步骤s240,若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码。
70.具体地,第二标志为当前编码块属于非scc视频的标志,第二编码方式为对非scc视频进行编码的编码方式,即当前编码块属于非scc视频时,采用第二编码方式对当前编码块进行编码,第二编码方式区别于第一编码方式,从而实现根据不同类型的视频采用对应的编码策略进行编码,这样既可以保留scc编码工具对属于scc视频的编码块的压缩性能,又能减少对属于非scc序列的编码块的编码时间。
71.步骤s250,若所述当前编码块编码完成,则得到对应的编码数据。
72.具体地,编码数据为当前编码块去除冗余信息、进行压缩后的数据,编码数据的数据量小于当前编码块的数据量,便于存储或传输,且编码数据为去除冗余信息后的数据,其中,冗余信息包括空间冗余、时间冗余和编码冗余等,空间冗余用于表示图像相邻像素之间的相关性,时间冗余用于表示视频序列中相邻图像之间的相关性,编码冗余用于表示不同像素值出现的概率。
73.在一个实施例中,所述第一编码方式包括多个不同的scc编码模式,所述根据第一编码方式对所述当前编码块进行编码,包括:根据各个所述scc编码模式对所述当前编码块进行编码计算后,得到各个所述scc编码模式对应的编码结果,所述编码结果为scc编码模式为选中状态的占比结果;根据至少一个所述scc编码模式对应的编码结果,生成所述当前编码块对应的预判标志;根据所述当前编码块对应的预判标志更新所述编码标志。
74.具体地,每一种scc编码模式对应一个scc编码工具,第一编码方式包括但不仅限于变换跳过模式(transform skip mode,ts)、帧内块拷贝(intra block copy,ibc)、调色板模式(palettemode,plt)、块差分脉冲编码调制(block differential pulse coded modulation,bdpcm)等scc编码模式,第一编码方式还包括基础编码模式,所述基础编码模式包括帧内预测模式和帧间预测模式,其中,帧内预测模式是利用图像帧内相邻像素的相关性去除空间冗余,帧内预测模式具体可以为角度预测模式、planar模式或dc模式等。帧间预测模式是利用视频图像帧间的相关性,即时间相关性,来达到图像压缩的目的,帧间预测具体可以为merge模式、affine模式、me模式等。根据第一编码方式中的基础编码模式和各个scc编码模式对当前编码块进行编码计算,每一种scc编码模式对应一个编码结果,在本实施例中,第一编码方式包括基础编码方式和上述四种scc编码模式,则根据基础编码模式和四种scc编码模式对应的scc编码工具对当前编码块进行编码计算,得到基础编码模式以及四个scc编码模式对应的编码结果,scc编码模式对应的编码结果为scc编码模式为选中状态的占比结果。
75.通过基础编码模式或不同的scc编码方式对当前编码块进行编码后,每个编码模式都会得到一个对应的率失真代价以及编码后的压缩数据,率失真代价越小,表示压缩性能越好,因此,从各个率失真代价中选择数值最小的率失真代价对应的压缩数据作为编码数据。
76.预判标志为根据至少一种scc编码模式对应的编码结果生成的,预判标志也可根据多种scc编码模式对应的编码结果综合生成。例如,若当前编码块编码完成后,则仅根据plt编码模式对应的编码结果生成预判标志,根据plt编码模式对应的编码结果预判下一编码块是否属于scc视频,若plt编码模式对应的编码结果满足预设条件,则生成第一标志作为当前编码块的预判标志,判定下一编码块属于scc视频,根据预判标志更新编码标志,即令编码标志为第一标志,用于使下一编码块通过第一编码方式进行编码计算。若plt编码模式对应的编码结果不满足预设条件,则生成第二标志作为当前编码块的预判标志,判定下一编码块属于非scc视频,根据预判标志更新编码标志,即令编码标志为第二标志,用于使下一编码块通过第二编码方式进行编码计算。
77.在一个实施例中,所述当前编码块包括多个编码单元,所述根据各个所述scc编码模式对所述当前编码块进行编码计算,得到各个所述scc编码模式对应的编码结果,包括:根据所述scc编码模式对所述编码单元进行编码计算,得到所述编码单元对应的所述scc编
码模式的选择状态,所述选择状态包括选中和未选中;将各个所述scc编码模式进行编码计算的次数进行计数,得到对应的编码计算量;将选择状态为选中的scc编码模式的数量作为模式选中数量,根据所述模式选中数量和对应的编码计算量的比值,得到所述scc编码模式对应的编码结果。
78.具体地,参照图3,在本实施例中编码块为编码树单元,编码树单元是正方形的(一般是128x128的像素块),每个编码块可划分为若干编码单元cu,划分得到的编码单元大小一般不同,划分得到的编码单元可以继续划分,图3中粗线为四叉树划分,细线为二叉树或三叉树划分,仅考虑四叉树划分时,128x128的编码树单元可以划分成4个64x64的编码单元,64x64的编码单元可以继续划分成4个32x32的编码单元,也可以不划分,具体是否划分可根据划分前与划分后各个scc编码模式对应的率失真代价决定,最终可得到互不重叠的编码单元。
79.根据第一编码方式中scc编码模式对当前编码块进行编码,就是根据第一编码方式中的四种scc编码模式各自对应的scc编码工具,对当前编码块中的每个编码单元进行编码计算,即每种模式对应的scc编码工具都要对当前编码块中的每个编码单元进行编码计算,每个编码单元都要进行四种编码工具的计算,每个编码单元经过四种编码工具的计算后,分别得到四种编码工具对应的计算结果,计算结果包括压缩结果和率失真代价,根据各个编码工具计算得到的率失真代价,确定当前编码单元对应的四种scc编码模式的选择状态,若ts编码模式对应的编码工具计算得到的率失真代价小于对应的预设代价值,则令当前编码单元对应的ts编码模式的选择状态为选中,其他scc编码模式对应的选择状态同理,根据各个scc编码模式计算得到的率失真代价确定其选择状态。
80.若一个编码单元进行了某种scc编码模式对应的编码工具的计算,则该scc编码模式对应的编码计算量累加一,计算后发现该scc编码模式对应的率失真代价小于对应的预设代价,令该scc编码模式的选择状态为选中,则该scc编码模式对应的选择状态为选中的模式选中数量累加一。模式选中数量为当前编码块中各个编码单元进行了四种编码工具对应的计算后,各个scc编码模式的选择状态为选中的数量,根据各个scc编码模式对应的模式选中数量除以编码计算量,得到各个scc编码模式对应的编码结果。
81.其中,ts编码模式对应的编码计算量记为ts_valid,选择状态为选中的ts编码模式的模式选中数量记为ts_used,ibc编码模式对应的编码计算量记为ibc_valid,选择状态为选中的ibc编码模式的模式选中数量记为ibc_used,plt编码模式对应的编码计算量记为plt_valid,选择状态为选中的plt编码模式的模式选中数量记为plt_used,bdpcm编码模式对应的编码计算量记为bdpcm_valid,选择状态为选中的bdpcm编码模式的模式选中数量记为bdpcm_used。ts编码模式对应的编码结果为ibc编码模式对应的编码结果为plt编码模式对应的编码结果为bdpcm编码模式对应的编码结果为
82.还可根据scc编码模式对应的被选中面积和该scc编码模式对应的计算面积的比值,得到scc编码模式对应的编码结果。一个编码单元的面积为长乘以宽,记为size,若当前
编码单元进行了ts编码模式对应的编码工具的计算,则令ts编码模式对应的编码计算面积ts_valid累加size,若计算后发现当前编码单元选中了ts编码模式,则令ts编码模式对应的模式选中面积ts_used累加size,若当前编码块中所有编码单元的编码计算完成后,则按照上述比值,得到各个scc编码模式对应的编码结果。
83.若当前编码块为视频序列中的第一个编码块,则令编码标志默认为第一标志,并初始化各个scc编码模式对应的计算量,以及选择状态为选中的scc编码模式的数量,即令ts_used、ts_valid、ibc_used、ibc_valid、plt_used、plt_valid、bdpcm_used、bdpcm_valid的初始值为0。
84.在一个实施例中,所述得到所述编码单元对应的所述scc编码模式的选择状态之后,所述方法还包括:获取各个scc编码模式对应的累计计算量和累计选中数量;计算所述累计计算量和对应scc编码模式的编码计算量之和,得到更新后的累计计算量;计算所述累计选中数量和对应scc编码模式的模式选中数量之和,得到更新后的累计选中数量;根据更新后的累计选中数量和更新后的累计计算量的比值,得到所述scc编码模式对应的编码结果。
85.具体地,上一实施例中仅根据当前编码块中各个编码单元的计算结果,统计得到各个scc编码模式对应的编码结果,并未结合在当前编码块之前参与编码计算的编码块的计算结果,统计的数据量较小,因此,得到的编码结果的准确性较低。在本实施例中,每一个编码块经过各个scc编码模式的编码计算后,对各个scc编码模式对应的编码计算量和模式选中数量进行累计,得到对应的累计计算量和累计选中量。
86.在当前视频编码过程中,累计计算量用于表示某种scc编码模式参与编码计算的累计次数,累计选中数量用于表示该scc编码模式参与计算后选择状态为选中的次数。在当前编码块经过各个scc编码模式的计算后,得到各个scc编码模式对应的编码计算量和模式选中数量,将编码计算量和累计计算量进行叠加,得到更新后的累计计算量;将模式选中数量和累计选中数量进行叠加,得到更新后的累计选中数量,以此方式,扩大了计算编码结果的数据量,从而提高了编码结果的准确度。
87.示例性的,第一编码块中的各个编码单元经过四种scc编码模式的编码计算后,统计得到四种scc编码模式对应的第一编码计算量和第一模式选中数量。第二编码块中的各个编码单元经过四种scc编码模式的编码计算后,统计得到对应的第二编码计算量和第二模式选中数量,将各个scc编码模式对应的第一编码计算量和第二编码计算量进行相加,得到对应的累计计算量;将各个scc编码模式对应的第一模式选中数量和第二模式选中数量进行相加,得到对应的累计选中数量。在第三编码块进行编码计算结束后,同理,将第三编码块计算得到的第三编码计算量与累计计算量进行叠加,将第三编码块计算得到第三模式选中数量与累计选中数量进行叠加。
88.在每个编码块计算编码结果时,结合所有编码结束的编码块的计算结果,扩大了统计数据量,以此提高编码块计算编码结果的准确度。
89.在一个实施例中,所述获取各个scc编码模式对应的累计计算量和累计选中数量之后,所述方法还包括:计算所述累计计算量与预设衰减系数的乘积,得到衰减计算量;计算所述模式选中数量与预设衰减系数的乘积,得到衰减选中数量;计算所述衰减计算量和对应scc编码模式的编码计算量之和,得到更新后的累计计算量;计算所述衰减选中数量和
对应scc编码模式的模式选中数量之和,得到更新后的累计选中数量;根据更新后的累计选中数量和更新后的累计计算量的比值,得到所述scc编码模式对应的编码结果。
90.具体地,在上一实施例中,虽然增加了统计数据量,但并未侧重性地增加数据量,在本实施例中,预设衰减系数用于减少部分累计计算量和累计选中数量,预设衰减系数具体可以为0
‑
1之间的任意常数,具体数值可依据实际需求自定义,若预设衰减系数为0,表示当前编码块计算编码结果无需利用累计计算量和累计选中数量,则仅根据当前编码块对应的编码计算量和模式选中数量的比值,得到对应的编码结果。若预设衰减系数为1,表示当前编码块计算得到编码结果需要统计之前所有编码结束的编码块的编码计算量和模式选中数量,即参照上一实施例,将累计计算量和当前编码块对应的编码计算量进行叠加,得到更新后的累计计算量,将累计选中数量和当前编码块对应的模式选中数量进行叠加,得到更新后的累计选中数量,利用更新后的累计计算量和累计选中数量计算得到编码结果。
91.若预设衰减系数为0.5,则当前编码块计算编码结果时,都需将累计计算量x1和累计选中数量y1进行衰减,得到衰减后的衰减计算量0.5x1和衰减选中数量0.5y1,再将衰减后的衰减计算量与当前编码块计算得到的编码计算量x2相加,得到更新后的累计计算量(0.5x1 x2);将衰减后的衰减选中量与当前编码块计算得到的模式选中数量y2相加,得到更新后的累计选中数量(0.5y1 y2),若对下一编码块进行编码计算,则需要对更新后的累计选中数量和累计计算量继续衰减,得到衰减后的衰减计算量0.5(0.5x1 x2)和衰减选中数量0.5(0.5y1 y2),再将衰减后的衰减计算量与下一编码块计算得到的编码计算量x3相加,得到更新后的累计计算量[0.5(0.5x1 x2) x3];将衰减后的衰减选中量与下一编码块计算得到的模式选中数量y3相加,得到更新后的累计选中数量[0.5(0.5y1 y2) y3],相当于进一步衰减了距离下一编码块较远的编码块对应的数据量(即y1和x1),后续按照上述方式继续对编码计算过的数据量进行迭代衰减。由于每个编码块计算编码结果时都需将累计计算量和累计选中数量进行衰减,以此方式减少距离当前编码块较远的编码块对应的数据量,使得距离当前编码块越近的编码块对应的数据量比重较大,计算编码结果的数据量较多,且距离当前编码块较近的数据较多,使得当前编码块计算得到的编码结果准确度更高。
[0092]
衰减系数越大,当前编码块编码之前的统计基数量权重较大,统计基数量权重为各个计算量或选中数量前的系数,即衰减系数迭代的乘积,例如上述累计计算量[0.5(0.5x1 x2) x3]中,x1的统计基数量权重为0.25,x2的统计基数量权重为0.5,x3的统计基数量权重为1,也就是说,衰减系数越大,当前编码块之前的统计基数量越多,判断视频序列整体是否为scc视频的准确度越高,适合不存在scc视频与非scc视频切换的场景,即视频类型为scc视频或非scc视频的场景,即视频序列整体为单一类型视频的场景。
[0093]
衰减系数越小,当前编码块之前的统计基数量权重较小,即之前的统计基数量越少,根据距离当前编码块较近的统计基数量判断当前编码块是否属于scc视频,判断视频序列局部是否为scc视频的准确度较高,适合存在scc视频与非scc视频切换的场景。
[0094]
综上所述,若视频序列为单一视频类型,则令衰减系数的数值较大,最大值可为1;若视频序列不为单一视频类型,则令衰减系数的数值较小,最小可为0,为了保证有一定的统计基数量参与判断,因此,令衰减系数为0.5是更优的选择。
[0095]
在一个实施例中,所述第二编码方式包括预设数量的scc编码模式,所述预设数量小于所述第一编码方式对应的scc编码模式的数量,所述根据第二编码方式对所述当前编
码块进行编码,包括:若所述预设数量不为零,则根据所述第二编码方式中的scc编码模式对所述当前编码块进行编码计算,得到所述scc编码模式对应的编码结果。
[0096]
具体地,第二编码方式包括基础编码模式和预设数量的scc编码模式,预设数量小于第一编码方式对应的scc编码模式的数量,预设数量可在满足数量要求的情况下自定义,参照上述实施例中,第一编码方式包括四种scc编码模式,本实施例中的预设数量具体可以为0、1、2、3,即第二编码方式令编码单元进行较少不同的编码工具的计算,计算后的结果可用于更新编码标志,使得后续的编码标志更准确,同时还缩短了非scc视频的编码时间。
[0097]
若预设数量为0,则仅依照基础编码模式对当前编码块进行编码,无需进行scc编码工具的计算,导致当前编码块之后的所有编码块无法利用scc编码模式进行编码计算,即无法更改编码标志,最大程度的缩短编码时间。
[0098]
若预设数量为1,则在第一编码方式对应的四种scc编码模式中随机选择一种scc编码模式,作为第二编码方式对应的scc编码模式,令当前编码块根据第二编码方式中的基础编码模式和scc编码模式进行编码计算,得到scc编码模式对应的编码结果。若选择ts编码模式作为第二编码方式对应的scc编码模式,则令当前编码块根据基础编码模式和ts编码模式进行编码计算,统计ts编码模式对应的编码计算量ts_valid,以及选择状态为选中的ts编码模式的模式选中数量ts_used,从而得到ts编码模式对应的编码结果
[0099]
由于ts编码模式对应的计算复杂度较低,同时作为单一特征判断编码块的视频类型是否为scc视频的准确度较高,可选择ts编码模式作为第二编码方式对应的scc编码模式,令下一编码块仅根据ts编码模式进行相应的编码计算,可根据编码计算结果更新编码标志,提高了编码标志的准确度,也可缩短编码时间。
[0100]
若预设数量为2,则依照预设数量为1的情况,在第一编码方式对应的四种scc编码模式中随机选择两种不同的scc编码模式,作为第二编码方式对应的scc编码模式。由于第二编码方式对应的scc编码模式的数量小于第一编码方式对应的scc编码模式的数量,所以当前编码块通过第二编码方式进行编码的编码计算量小于第一编码方式对应的编码计算量,当前编码块为非scc视频,则通过第二编码方式进行编码,从而减少当前编码块的编码计算量,达到缩短编码时间的效果。
[0101]
在一个实施例中,所述根据至少一个所述scc编码模式对应的编码结果,生成所述当前编码块对应的预判标志,包括:根据所述scc编码模式对应的编码结果与对应的加权系数的乘积,得到所述scc编码模式对应的决策参数;根据各个所述scc编码模式对应的决策参数,生成所述当前编码块对应的预判标志。
[0102]
具体地,各个scc编码模式对应的加权系数通过线性模型或决策树模型根据多个scc编码模式对应的编码结果训练生成,即将多个scc编码模式对应的编码结果作为线性模型或决策树模型的输入参数,线性模型或决策树模型的输出参数为各个scc编码模式对应的加权系数。例如,ts编码模式对应的加权系数为2.83,ibc编码模式对应的加权系数为0.09,plt编码模式对应的加权系数为5.76,bdpcm编码模式对应的加权系数为0.64,则ts编码模式对应的决策参数为ratio_ts*2.83,ibc编码模式对应的决策参数为ratio_ibc*0.09,plt编码模式对应的决策参数为ratio_plt*5.76,bdpcm编码模式对应的决策参数为
ratio_bdpcm*0.64。预设条件包括至少一种scc编码模式对应的预设数值,预设数值可通过线性模型或决策树模型根据各个样本视频序列训练生成。
[0103]
相比其他3个scc编码模式对应的加权系数,线性模型或决策树模型输出的plt编码模式对应的加权系数最大,ratio_plt判断是否为scc序列的准确度最高,所以plt编码模式对应的决策参数对于判断编码块是否属于scc视频的影响度最大,可单独根据plt编码模式对应的决策参数判断编码块是否属于scc视频,例如,plt编码模式对应的预设数值为0.75,若plt编码模式对应的决策参数为ratio_plt*5.76>0.75,则生成第一标志作为当前编码块的预判标志;若plt编码模式对应的决策参数为ratio_plt*5.76≤0.75,则生成第二标志作为当前编码块的预判标志。
[0104]
预设条件还可为综合多种scc编码模式的决策参数确定的预设数值,例如,预设条件综合了四种scc编码模式的决策参数确定的预设数值为1.45,若ratio_ts*2.83 ratio_ibc*0.09 ratio_plt*5.76 ratio_bdpcm*0.64>1.45,则生成第一标志作为当前编码块的预判标志。
[0105]
若ratio_ts*2.83 ratio_ibc*0.09 ratio_plt*5.76 ratio_bdpcm*0.64≤1.45,则生成第二标志作为当前编码块的预判标志。
[0106]
预设条件还可综合两种scc编码模式的决策参数确定预设数值,例如,由于ibc编码模式和bdpcm编码模式对应的scc编码工具的计算量较大,因此仅考虑plt编码模式和ts编码模式对应的决策参数,当plt编码模式和ts编码模式对应的决策参数满足对应的预设条件,则生成当前编码块对应的预判标志。
[0107]
在一个实施例中,所述根据所述当前编码块对应的预判标志更新所述编码标志之后,所述方法还包括:若所述视频序列中不存在未编码的编码块,则结束编码;若所述视频序列中存在未编码的编码块,则将下一编码块作为所述当前编码块,执行所述获取当前编码块的步骤。
[0108]
具体地,若当前编码块为视频序列中最后一个编码块,其余编码块均已完成编码,则当前编码块编码完成表示该视频序列编码完成;若当前编码块不是视频序列中最后一个编码块,视频序列中仍存在未编码的编码块,则获取当前编码块之后的下一编码块,令下一编码块作为当前编码块执行步骤s210的内容,直至视频序列中所有编码块均已完成编码计算,则结束编码过程。
[0109]
图2为一个实施例中视频编码方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0110]
在一个实施例中,如图4所示,提供了一种视频编码装置,包括:
[0111]
编码内容获取模块310,用于获取当前编码块,所述当前编码块为视频序列中未编码的编码块;
[0112]
标志获取模块320,用于获取编码标志,所述编码标志为上一编码块编码生成的预
判标志;
[0113]
第一编码模块330,用于若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码;
[0114]
第二编码模块340,用于若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码。
[0115]
编码数据生成模块350,用于若所述当前编码块编码完成,则得到对应的编码数据。
[0116]
在一个实施例中,所述第一编码方式包括多个不同的scc编码模式,所述第一编码模块330包括:
[0117]
第一编码单元,用于根据各个所述scc编码模式对所述当前编码块进行编码计算后,得到各个所述scc编码模式对应的编码结果,所述编码结果为scc编码模式为选中状态的占比结果;
[0118]
根据至少一个所述scc编码模式对应的编码结果,生成所述当前编码块对应的预判标志;
[0119]
根据所述当前编码块对应的预判标志更新所述编码标志。
[0120]
在一个实施例中,所述当前编码块包括多个编码单元,所述第一编码单元还用于:
[0121]
根据所述scc编码模式对所述编码单元进行编码计算,得到所述编码单元对应的所述scc编码模式的选择状态,所述选择状态包括选中和未选中;
[0122]
将各个所述scc编码模式进行编码计算的次数进行计数,得到对应的编码计算量;
[0123]
将选择状态为选中的scc编码模式的数量作为模式选中数量,根据所述模式选中数量和对应的编码计算量的比值,得到所述scc编码模式对应的编码结果。
[0124]
在一个实施例中,所述第一编码单元还用于:
[0125]
获取各个scc编码模式对应的累计计算量和累计选中数量;
[0126]
计算所述累计计算量和对应scc编码模式的编码计算量之和,得到更新后的累计计算量;
[0127]
计算所述累计选中数量和对应scc编码模式的模式选中数量之和,得到更新后的累计选中数量;
[0128]
根据更新后的累计选中数量和更新后的累计计算量的比值,得到所述scc编码模式对应的编码结果。
[0129]
在一个实施例中,所述第一编码单元还用于:
[0130]
计算所述累计计算量与预设衰减系数的乘积,得到衰减计算量;
[0131]
计算所述模式选中数量与预设衰减系数的乘积,得到衰减选中数量;
[0132]
计算所述衰减计算量和对应scc编码模式的编码计算量之和,得到更新后的累计计算量;
[0133]
计算所述衰减选中数量和对应scc编码模式的模式选中数量之和,得到更新后的累计选中数量;
[0134]
根据更新后的累计选中数量和更新后的累计计算量的比值,得到所述scc编码模式对应的编码结果。
[0135]
在一个实施例中,所述第二编码方式包括预设数量的scc编码模式,所述预设数量
小于所述第一编码方式对应的scc编码模式的数量,所述第二编码模块340还用于:
[0136]
若所述预设数量不为零,则根据所述第二编码方式中的scc编码模式对所述当前编码块进行编码计算,得到所述scc编码模式对应的编码结果。
[0137]
在一个实施例中,所述标志生成模块包括:
[0138]
加权单元,用于根据所述scc编码模式对应的编码结果与对应的加权系数的乘积,得到所述scc编码模式对应的决策参数;
[0139]
标志生成单元,用于根据各个所述scc编码模式对应的决策参数,生成所述当前编码块对应的预判标志。
[0140]
在一个实施例中,所述装置还包括:
[0141]
结束模块,用于若所述视频序列中不存在未编码的编码块,则结束编码;
[0142]
循环执行模块,用于若所述视频序列中存在未编码的编码块,则将下一编码块作为所述当前编码块,执行所述获取当前编码块的步骤。
[0143]
图5示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图5所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0144]
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0145]
在一个实施例中,本申请提供的视频编码装置可以实现为一种计算机程序的形式,计算机程序可在如图5所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频编码装置的各个程序模块,比如,图4所示的编码内容获取模块310、标志获取模块320、第一编码模块330、第二编码模块340和编码数据生成模块350。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。
[0146]
图5所示的计算机设备可以通过如图4所示的视频编码装置中的编码内容获取模块310执行获取当前编码块,所述当前编码块为视频序列中未编码的编码块。计算机设备可通过标志获取模块320执行获取编码标志,所述编码标志为上一编码块编码生成的预判标志。计算机设备可通过第一编码模块330执行若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码。计算机设备可通过第二编码模块340执行若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码。编码数据生成模块350执行若所述当前编码块编码完成,则得到对应的编码数据。
[0147]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时用于实现上述任一实施例中的方法。
[0148]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中的方法。
[0149]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双倍速率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0150]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0151]
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种视频编码方法,其特征在于,所述方法包括:获取当前编码块,所述当前编码块为视频序列中未编码的编码块;获取编码标志,所述编码标志为上一编码块编码生成的预判标志;若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码;若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码;若所述当前编码块编码完成,则得到对应的编码数据。2.根据权利要求1所述的方法,其特征在于,所述第一编码方式包括多个不同的scc编码模式,所述方法还包括:根据各个所述scc编码模式对所述当前编码块进行编码计算后,得到各个所述scc编码模式对应的编码结果,所述编码结果为scc编码模式为选中状态的占比结果;根据至少一个所述scc编码模式对应的编码结果,生成所述当前编码块对应的预判标志;根据所述当前编码块对应的预判标志更新所述编码标志。3.根据权利要求2所述的方法,其特征在于,所述当前编码块包括多个编码单元,所述根据各个所述scc编码模式对所述当前编码块进行编码计算,得到各个所述scc编码模式对应的编码结果,包括:根据所述scc编码模式对所述各个编码单元进行编码计算,根据计算结果,确定所述编码单元对应的所述scc编码模式的选择状态,所述选择状态包括选中和未选中;将各个所述scc编码模式进行编码计算的次数进行计数,得到对应的编码计算量;将选择状态为选中的scc编码模式的数量作为模式选中数量,根据所述模式选中数量和对应的编码计算量的比值,得到的是所述scc编码模式对应的编码结果。4.根据权利要求3所述的方法,其特征在于,所述得到所述编码单元对应的所述scc编码模式的选择状态之后,所述方法还包括:获取各个scc编码模式对应的累计计算量和累计选中数量;计算所述累计计算量和对应scc编码模式的编码计算量之和,得到更新后的累计计算量;计算所述累计选中数量和对应scc编码模式的模式选中数量之和,得到更新后的累计选中数量;根据更新后的累计选中数量和更新后的累计计算量的比值,得到所述scc编码模式对应的编码结果。5.根据权利要求4所述的方法,其特征在于,所述获取各个scc编码模式对应的累计计算量和累计选中数量之后,所述方法还包括:计算所述累计计算量与预设衰减系数的乘积,得到衰减计算量;计算所述模式选中数量与预设衰减系数的乘积,得到衰减选中数量;计算所述衰减计算量和对应scc编码模式的编码计算量之和,得到更新后的累计计算量;计算所述衰减选中数量和对应scc编码模式的模式选中数量之和,得到更新后的累计选中数量;根据更新后的累计选中数量和更新后的累计计算量的比值,得到所述scc编码模式对
应的编码结果。6.根据权利要求2所述的方法,其特征在于,所述第二编码方式包括预设数量的scc编码模式,所述预设数量小于所述第一编码方式对应的scc编码模式的数量,所述根据第二编码方式对所述当前编码块进行编码,包括:若所述预设数量不为零,则根据所述第二编码方式中的scc编码模式对所述当前编码块进行编码计算,得到所述scc编码模式对应的编码结果。7.根据权利要求2所述的方法,其特征在于,所述根据至少一个所述scc编码模式对应的编码结果,生成所述当前编码块对应的预判标志,包括:根据所述scc编码模式对应的编码结果与对应的加权系数的乘积,得到所述scc编码模式对应的决策参数;根据各个所述scc编码模式对应的决策参数,生成所述当前编码块对应的预判标志。8.一种视频编码装置,其特征在于,所述装置包括:编码内容获取模块,用于获取当前编码块,所述当前编码块为视频序列中未编码的编码块;标志获取模块,用于获取编码标志,所述编码标志为上一编码块编码生成的预判标志;第一编码模块,用于若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码;第二编码模块,用于若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码;编码数据生成模块,用于若所述当前编码块编码完成,则得到对应的编码数据。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
技术总结
本申请涉及一种视频编码方法、装置、计算机设备和存储介质。所述方法包括:获取当前编码块,所述当前编码块为视频序列中未编码的编码块;获取编码标志,所述编码标志为上一编码块编码生成的预判标志;若所述编码标志为第一标志,则根据第一编码方式对所述当前编码块进行编码;若所述编码标志为第二标志,则根据第二编码方式对所述当前编码块进行编码;若所述当前编码块编码完成,则得到对应的编码数据。基于上一编码块生成的预判标志,确定当前编码块的编码策略,即根据不同类型的编码块选择对应的编码策略,从而实现提升编码压缩性能的同时,缩短编码时间,提高编码效率。提高编码效率。提高编码效率。
技术研发人员:罗昆 董胜富
受保护的技术使用者:北京奇艺世纪科技有限公司
技术研发日:2021.03.15
技术公布日:2021/6/25
转载请注明原文地址:https://doc.8miu.com/read-150215.html