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

文档序号:32664375发布日期:2022-12-24 00:30阅读:28来源:国知局
视频的编码方法、装置、电子设备及存储介质与流程

1.本公开涉及计算机技术领域,尤其涉及一种视频的编码方法、装置、电子设备、存储介质及计算机程序产品。


背景技术:

2.cu-tree(coding unit tree,编码单元树)是一种自适应量化的技术,其目的是通过预估当前块在帧间预测中被未来的参考帧所参考的信息多少(使用propagate cost,传播代价表示),来调整当前块的qp(quantization parameter,量化参数)值。若当前块贡献给参考帧的信息越多,则应当提高当前块的编码质量,减少qp值;反之,则增大当前块的qp值。
3.相关技术中,若当前块所属的当前帧对应的参考帧为多帧,通常需要依赖当前帧与参考帧之间的参考结构,根据当前帧和各个参考帧之间的距离为各个参考帧分配相应的传播权重。按照与各个参考帧对应的传播权重,将传播代价总量分配给各个参考帧,得到当前块传递给各个参考帧的传播代价。但是,参考结构通常较为固定,容易导致同一帧中不同编码块对应的传播权重为固定参数,从而导致无法准确传播块级特征。


技术实现要素:

4.本公开提供一种视频的编码方法、装置、电子设备、存储介质及计算机程序产品,以至少解决相关技术中cu-tree作为块级传播工具,无法准确传播块级特征的问题。本公开的技术方案如下:
5.根据本公开实施例的第一方面,提供一种视频的编码方法,包括:
6.在视频的当前编码块对应的参考帧包括多帧的情况下,确定所述当前编码块分别参考各个所述参考帧产生的、与各个所述参考帧对应的第一参考损失;
7.根据各个所述参考帧对应的第一参考损失,为各个所述参考帧中的参考块分配相应的传播权重,所述传播权重与所述第一参考损失呈负相关关系;
8.基于所述传播权重对所述当前编码块进行编码。
9.在其中一个实施例中,所述根据各个所述参考帧对应的第一参考损失,为各个所述参考帧中的参考块分配相应的传播权重,包括:
10.确定所述当前编码块同时参考多帧所述参考帧产生的第二参考损失;
11.根据各个所述参考帧对应的第一参考损失以及所述第二参考损失,为各个所述参考帧中的参考块分配相应的传播权重。
12.在其中一个实施例中,所述根据各个所述参考帧对应的第一参考损失以及所述第二参考损失,为各个所述参考帧中的参考块分配相应的传播权重,包括:
13.确定各个所述参考帧对应的第一参考损失与所述第二参考损失之间的损失差异值;
14.根据各个所述参考帧对应的损失差异值,为各个所述参考帧分配相应的传播权
重。
15.在其中一个实施例中,所述根据各个所述参考帧对应的损失差异值,为各个所述参考帧中的参考块分配相应的传播权重,包括:
16.针对任一参考帧,获取其他参考帧的损失差异值之和,所述其他参考帧为多个所述参考帧中除所述任一参考帧之外的参考帧;
17.获取多个所述参考帧的损失差异值之和;
18.根据其他参考帧的损失差异值之和,以及多个所述参考帧的损失差异值之和,生成所述任一参考帧中的参考块对应的传播权重。
19.在其中一个实施例中,所述确定各个所述参考帧对应的第一参考损失与所述第二参考损失之间的损失差异值,包括:
20.获取各个所述参考帧对应的第一参考损失与所述第二参考损失之差,作为各个所述参考帧对应的损失差异值。
21.在其中一个实施例中,所述确定所述当前编码块分别参考各个所述参考帧产生的、与各个所述参考帧对应的第一参考损失,包括:
22.对所述当前编码块所属的当前帧、以及各个所述参考帧进行划分,得到与当前帧以及各个所述参考帧的多个块;
23.针对当前帧的多个块中的任一块,在各所述参考帧的多个块中进行运动搜索,确定所述任一块与各所述参考帧中各个块之间的参考损失;
24.根据所述当前帧中各个块与各个所述参考帧中各个块之间的参考损失,确定所述第一参考损失。
25.在其中一个实施例中,在所述当前编码块所属的当前帧为b帧的情况下,多帧所述参考帧包括所述当前帧的前向参考帧和后向参考帧。
26.根据本公开实施例的第二方面,提供一种视频的编码装置,包括:
27.损失确定模块,被配置为执行在视频的当前编码块对应的参考帧包括多帧的情况下,确定所述当前编码块分别参考各个所述参考帧产生的、与各个所述参考帧对应的第一参考损失;
28.权重确定模块,被配置为执行根据各个所述参考帧对应的第一参考损失,为各个所述参考帧中的参考块分配相应的传播权重,所述传播权重与所述第一参考损失呈负相关关系;
29.编码模块,被配置为执行基于所述传播权重对所述当前编码块进行编码。
30.在其中一个实施例中,所述权重确定模块,包括:
31.损失确定单元,被配置为执行确定所述当前编码块同时参考多帧所述参考帧产生的第二参考损失;
32.权重分配单元,被配置为执行根据各个所述参考帧对应的第一参考损失以及所述第二参考损失,为各个所述参考帧中的参考块分配相应的传播权重。
33.在其中一个实施例中,所述权重分配单元,包括:
34.差异值生成子单元,被配置为执行确定各个所述参考帧对应的第一参考损失与所述第二参考损失之间的损失差异值;
35.权重分配子单元,被配置为执行根据各个所述参考帧对应的损失差异值,为各个
所述参考帧中的参考块分配相应的传播权重。
36.在其中一个实施例中,所述权重分配子单元,被配置为执行针对任一参考帧,获取其他参考帧的损失差异值之和,所述其他参考帧为多个所述参考帧中除所述任一参考帧之外的参考帧;获取多个所述参考帧的损失差异值之和;根据其他参考帧的损失差异值之和,以及多个所述参考帧的损失差异值之和,生成所述任一参考帧中的参考块对应的传播权重。
37.在其中一个实施例中,所述差异值生成子单元,被配置为执行获取各个所述参考帧对应的第一参考损失与所述第二参考损失之差,作为各个所述参考帧对应的损失差异值。
38.在其中一个实施例中,所述损失确定模块,被配置为执行对所述当前编码块所属的当前帧、以及各个所述参考帧进行划分,得到与当前帧以及各个所述参考帧的多个块;
39.针对当前帧的多个块中的任一块,在各所述参考帧的多个块中进行运动搜索,确定所述任一块与各所述参考帧中各个块之间的参考损失;
40.根据所述当前帧中各个块与各个所述参考帧中各个块之间的参考损失,确定所述第一参考损失。
41.在其中一个实施例中,在所述当前编码块所属的当前帧为b帧的情况下,多帧所述参考帧包括所述当前帧的前向参考帧和后向参考帧。
42.根据本公开实施例的第三方面,提供一种电子设备,包括:
43.处理器;
44.用于存储所述处理器可执行指令的存储器;
45.其中,所述处理器被配置为执行所述指令,以实现上述第一方面任一项所述的视频的编码方法。
46.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述第一方面任一项所述的视频的编码方法。
47.根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中包括指令,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行上述第一方面任一项所述的视频的编码方法。
48.本公开的实施例提供的技术方案至少带来以下有益效果:
49.在视频的当前编码块对应的参考帧包括多帧的情况下,确定当前编码块分别参考各个参考帧产生的、与各个参考帧对应的第一参考损失,根据各个参考帧对应的第一参考损失,基于序列特征动态的调整cu-tree的传播权重,相对于相关技术基于帧级间距离使全帧编码块都使用相同的传播权重而言,能够提升视频的压缩性能,使各个码率段都具有较好的效果(例如,bd-rate收益,一种衡量编码性能的客观指标)。
50.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
51.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施
例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
52.图1是根据一示例性实施例示出的一种视频的编码方法的流程图。
53.图2是根据一示例性实施例示出的另一种视频的编码方法的流程图。
54.图3是根据一示例性实施例示出的一种视频的编码装置的框图。
55.图4是根据一示例性实施例示出的一种电子设备的框图。
56.图5是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
57.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
58.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
59.还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
60.mb-tree(macroblock-tree)算法是x264(一种视频编码标准)中引入的一项新技术,算法的主要思想是编码当前图像帧时考虑各种编码决策对未来图像帧编码质量的影响,可以有效的提高视频的主客观质量。在x265中也继承这一算法,更名为cu-tree。
61.cu-tree是一个块级的qp(quantization parameter,量化参数)控制方法。对于每个cu块(编码块),会向前预测一定数量的图像帧,根据图像帧中该编码块被参考的情况,对该编码块使用相应的增量qp进行量化。若当前编码块贡献给后续图像帧的信息越多,则说明其重要性越高,应当提高该编码块的编码质量,减少量化参数值;反之,则增大该编码块的量化参数值。
62.cu-tree算法的核心包括传播代价的计算和qp增量计算。计算流程如下:
63.(1)获取当前编码块的intra_cost,inter_cost,根据intra_cost和inter_cost计算当前编码块到其参考编码块的传播因子(propagate_fraction):
64.propagate_fraction=1

inter_cost/intra_cost
65.其中,inter_cost代表使用帧间模式估计预测值与原始值的satd(sum of absolute transformed difference,绝对误差和)损失成本;intra_cost代表使用帧内模式估计预测值与原始值的satd损失成本。
66.(2)计算从当前编码块到其参考编码块(即参考块)的传播总量(propagate_cost
out
):
67.propagate_cost
out
=propagate_fraction*(intra_cost+propagate_cost
in
)
68.其中,propagate_cost
in
代表当前编码块被参考从而被传入的传播总量。
69.(3)在参考块所属参考帧的数量为多帧的情况下,由于参考块并不是位于同一个
编码单元上,因此,可以根据参考区域面积(overlap_area/cu_area),以及,根据当前编码块所属的当前帧与各个参考帧之间的距离,将传播总量分配给各个参考块,得到各个参考块的传播代价。
70.以当前图像帧为b帧为例。b帧为双向预测编码帧,以前面的i帧(帧内编码帧)或p帧(前向预测编码帧),以及后面的p帧为参考帧,可以得到两个参考帧(前向参考帧和后向参考帧)中参考块各自对应的传播代价为:
71.propagate_cost
ref1
=(d2/(d1+d2))*propagate_cost
out
*(overlap_area/cu_area)
72.propagate_cost
ref2
=(d1/(d1+d2))*propagate_cost
out
*(overlap_area/cu_area)
73.其中,propagate_cost
ref1
代表前向参考帧中参考块对应的传播代价;propagate_cost
ref2
代表后向参考帧中参考块对应的传播代价;d1代表当前帧至前向参考帧的帧间距离;d2代表当前帧至后向参考帧的帧间距离;d2/(d1+d2)代表前向参考帧中参考块的传播权重;d1/(d1+d2)代表后向参考帧中参考块的传播权重;overlap_area/cu_area代表参考区域面积。
74.(4)确定qp增量
75.继续以上述b帧为例,在得到前向参考帧和后向参考帧中参考块分别对应的传播代价后,便可根据传播代价计算得到各个参考块各自对应的qp增量:
76.deltaqp_1=-strength*log2(1+propagate_cost
ref1
/intra_cost)
77.deltaqp_2=-strength*log2(1+propagate_cost
ref2
/intra_cost)
78.其中,deltaqp_1代表前向参考帧中参考块对应的qp增量;deltaqp_2代表后向参考帧中参考块对应的qp增量;strength为可调节强度值。
79.由上述步骤(3)中的公式可知,对于x264、x265等编码标准,cu-tree基于当前帧和其参考帧之间的距离设置传播权重。传播权重依赖于固定的参考结构,易导致当前帧中不同编码块的传播权重为相同值。以当前帧为b帧为例,双向预测编码帧的结构通常较为固定,多为二分帧结构,即传播权重多为固定值1/2。而cu-tree作为块级传播工具,所有块级使用帧级固定参数,无法准确传播块级特征。
80.为了解决上述问题,本公开提供一种视频的编码方法,该方法可以应用于电子设备,该电子设备可以是终端、服务器,或者终端和服务器构成的系统,由终端和服务器交互实现。一个实施例中,电子设备为安装有能够发布视频的客户端。该客户端可以为直播类、电商类、社交类、即时通信类等的客户端。在终端获取到用户拍摄的视频后,可以采用本公开提供的视频的编码方法对视频进行压缩编码,并将压缩后的视频发送给服务器,由服务器将压缩后的视频发送至其他客户端。该其他客户端为播放该视频的任意客户端。其他客户端接收到压缩后的视频后,可以采用与压缩编码相对应的解码方式对视频进行解码,以播放该视频。
81.其中,上述终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
82.图1是根据一示例性实施例示出的一种视频的编码方法的流程图,如图1所示,视频的编码方法用于电子设备中,包括步骤s110~s130。
83.在步骤s110中,在视频的当前编码块对应的参考帧包括多帧的情况下,确定当前编码块分别参考各个参考帧产生的、与各个参考帧对应的第一参考损失。
84.其中,第一参考损失可以采用当前编码块单独参考各个参考帧产生的satd、sse(和方差,the sum of squares due to error)、mse(mean squared error,均方误差)、sad(绝对误差和,sum of absolute difference)等损失指标表征。可以理解的是,第一参考损失为帧间模式下的损失。
85.具体地,在当前编码块对应多块参考编码块,且多块参考块所属的参考帧为多帧的情况下,在生成当前编码块与多个参考块之间的传播总量后,电子设备计算当前编码块单独参考各个参考帧中的参考块产生的、与各个参考帧相对应的第一参考损失。传播总量的具体计算方式可以参照上述内容,在此不做具体阐述。
86.以下对第一参考损失的一种获取方式进行说明:
87.对当前编码块以及所属的当前帧以及各个参考帧进行下采样,并将当前帧以及各个参考帧划分成预设大小的块。预设大小可以为8x8。针对某个参考帧,采用当前帧中的当前块在划分后的参考帧中进行运动搜索,确定当前块与参考帧中各个块之间的参考损失,从参考损失中找到损失最小的块作为当前块的最佳匹配块。在当前帧中的所有块搜索完毕后,将所有块与各自的最佳匹配块之间的参考损失之和,作为第一参考损失。
88.在步骤s120中,根据各个参考帧对应的第一参考损失,为各个参考帧中的参考块分配相应的传播权重。
89.其中,传播权重与第一参考损失呈负相关关系,即参考帧对应的第一参考损失越大,说明参考帧被参考的重要性越小,应为该参考帧中的参考块设置越小的传播权重,以减少参考块的qp量化损失。
90.在一个可能性实施例中,可以预先设置传播权重与第一参考损失之间的映射关系,基于该映射关系得到的传播权重与第一参考损失呈负相关关系。在获取与每个参考帧对应的第一参考损失后,便可基于该映射关系得到与第一参考损失相对应的传播权重。
91.在步骤s130中,基于传播权重为当前编码块进行编码。
92.具体地,在得到与每个参考帧对应的传播权重后,电子设备可以按照各个参考帧的传播权重,将传播总量分配给参考帧中的参考块,得到各个参考块对应的传播代价。进而根据各个参考块的传播代价计算得到各个参考块的qp增量。基于各个参考块的qp增量对当前编码块进行编码。
93.上述视频的编码方法中,在视频的当前编码块对应的参考帧包括多帧的情况下,确定当前编码块分别参考各个参考帧产生的、与各个参考帧对应的第一参考损失,根据各个参考帧对应的第一参考损失,基于序列特征动态的调整cu-tree的传播权重,相对于相关技术基于帧级间距离使全帧编码块都使用相同的传播权重而言,能够提升视频的压缩性能,使各个码率段都具有较好的收益。
94.在一示例性实施例中,步骤s120,根据各个参考帧对应的第一参考损失,为各个参考帧中的参考块分配相应的传播权重,包括:确定当前编码块同时参考多帧参考帧产生的第二参考损失;根据各个参考帧对应的第一参考损失以及第二参考损失,为各个参考帧中
的参考块分配相应的传播权重。
95.其中,第二参考损失可以采用当前编码块同时参考多个参考帧产生的satd、sse、mse、sad等指标表征。
96.具体地,若当前编码块对应的参考块有一个,可以将该当前编码块标注为“不存在多个参考块”,进而不执行计算第二参考损失的步骤。若当前编码块对应的参考块存在多个,且多个参考块属于多帧参考帧、不同的参考块属于不同参考帧,则在生成当前编码块与多个参考块之间的传播总量后,电子设备计算当前编码块同时参考多帧参考帧产生的第二参考损失。因此,可以理解的是,第二参考损失小于或等于任一个参考帧对应的第一参考损失。电子设备可以基于与各个参考帧对应的第一参考损失和第二参考损失,计算得到与各个参考帧对应的第一参考损失具有负相关关系的传播权重。
97.一个可能性实施例中,针对任一参考帧,电子设备可以基于其他参考帧的第一参考损失在第二参考损失中的占比,确定各个参考帧中参考块的传播权重。其中,其他参考帧为多个参考帧中除该任一参考帧之外的其他所有参考帧。
98.本实施例中,通过基于当前编码块同时参考多个参考帧产生的第二参考损失,以及各个参考帧的第一参考损失,计算各个参考帧的传播权重,可以合理的利用各个参考帧实际被参考所造成的损失,动态的调整各个参考帧中参考块的传播权重,从而有利于得到准确性较高的传播权重。
99.在一示例性实施例中,在得到各个参考帧对应的第一参考损失和第二参考损失之后,电子设备可以计算各个参考帧对应的第一参考损失与第二参考损失之间的损失差异值,进而根据各个参考帧对应的损失差异值,计算得到各个参考帧中参考块的传播权重。其中,损失差异值可以采用差值、比值等表征。
100.一个可能性实施例中,针对任一参考帧,电子设备可以基于其他参考帧的损失差异值总量,在所有参考帧的损失差异值总量中的占比,确定各个参考帧中参考块的传播权重。其中,损失差异值总量可以采用加法、乘法等运算方式计算得到。
101.以损失差异值采用差值、损失差异值总量采用加法计算为例。若参考帧包括n(n为大于1的正整数)帧,针对任一参考帧,电子设备获取其他参考帧的损失差异值之和;获取多个参考帧的损失差异值之和;根据其他参考帧的损失差异值之和,以及多个参考帧的损失差异值之和,生成该任一参考帧中参考块对应的传播权重,可以通过以下公式表示第i个参考帧中参考块的传播权重wi:
[0102][0103]
其中,ref_costi代表第i个参考帧对应的第一参考损失;ref_cost代表第二参考损失。
[0104]
本实施例中,通过基于当前编码块同时参考多个参考帧产生的第二参考损失,以及各个参考帧的第一参考损失,计算各个参考帧中参考块的传播权重,可以合理的利用各个参考帧实际被参考所造成的损失,动态的调整各个参考帧的传播权重,从而有利于得到准确性较高的传播权重。
[0105]
在一示例性实施例中,如图2所示,提供一种视频的编码方法,在该方法中以当前编码块所属的当前帧为b帧进行说明。在当前帧为b帧的情况下,多帧参考帧包括当前帧的前向参考帧(假设为p0帧)和后向参考帧(假设为p1帧,p1大于p0)。具体可以通过以下步骤实现:
[0106]
在步骤s202中,获取当前编码块的intra_cost,inter_cost,根据intra_cost、inter_cost计算当前编码块到其参考编码块的传播因子。
[0107]
在步骤s204中,计算从当前编码块到其前向参考帧和后向参考帧的传播总量。
[0108]
在步骤s206中,确定当前编码块参考前向参考帧产生的、与前向参考帧对应的第一参考损失ref_cost1=d(p0,b,b),当前编码块参考后向参考帧产生的、与后向参考帧对应的第一参考损失ref_cost2=d(b,b,p1),以及,当前编码块同时参考前向参考帧和后向参考帧产生的第二参考损失ref_cost=d(p0,b,p1)。
[0109]
以下对p0帧的第一参考损失的确定方式进行说明:
[0110]
(1)对将p0帧、b帧进行1/2降采样,将降采样后的p0帧、b帧分别划分为8
×
8的块。
[0111]
(2)以b帧的当前块i的值作为搜索值,在p0帧中进行运动搜索,找到satd损失最小的块作为最佳匹配块i’。
[0112]
(3)当b帧内每个块搜索完毕,对当前帧内每个块的satd损失进行加和,得到d(p0,b,b)。
[0113]
p1帧的第一参考损失的确定方式可以参照上述过程,在此不进行具体阐述。
[0114]
以下对第二参考损失的确定方式进行说明:
[0115]
(1)对将p0帧、b帧、p1帧进行1/2降采样,将降采样后的p0帧、b帧、p1帧分别划分为8
×
8的块。
[0116]
(2)以b帧的当前块i的值作为搜索值,在p0帧中进行运动搜索,找到satd最小的块作为最佳匹配块i’。此时,当前块的satd损失记为satd1。
[0117]
(3)将2*i-i’的值作为搜索值,在帧p1帧中进行运动搜索,找到satd最小的块作为最佳匹配块,损失记为satd2。若satd1》satd2,则以satd2作为当前块的satd损失,否则,仍以satd1作为当前块的satd损失。其中,2*i表示对块i中的每个像素均乘以2;2*i-i’表示对块i中的像素与块i’中的像素逐点相减。
[0118]
(4)当b帧内每个块搜索完毕,对当前帧内每个块的satd损失进行加和,得到d(p0,b,p1)。
[0119]
在步骤s208中,根据前向参考帧对应的第一参考损失ref_cost1、后向参考帧对应的第一参考损失ref_cost2,以及第二参考损失ref_cost,分别计算得到前向参考帧和后向参考帧中参考块的传播权重:
[0120]
w1=(ref_cost
2-ref_cost)/(ref_cost1+ref_cost2–
2ref_cost)
[0121]
w2=(ref_cost
1-ref_cost)/(ref_cost1+ref_cost2–
2ref_cost)
[0122]
假设ref_cost
1-ref_cost《ref_cost
2-ref_cost,说明前向参考帧中的参考块被参考的重要性越大,传播权重应设定越大,以减少前向参考帧的qp量化损失,当前编码块可以最大程度利用其相似性进行参考;反之,说明前向参考帧中的参考块被参考的重要性小,需降低传播权重。
[0123]
在步骤s210中,根据前向参考帧和后向参考帧中参考块的传播权重,计算前向参
考帧和后向参考帧中参考块各自对应的传播代价。
[0124]
propagate_cost
ref1
=w1*propagate_cost
out
*(overlap_area/cu_area)
[0125]
propagate_cost
ref2
=w2*propagate_cost
out
*(overlap_area/cu_area)
[0126]
其中,propagate_cost
ref1
代表前向参考帧对应的传播代价;propagate_cost
ref2
代表后向参考帧对应的传播代价。
[0127]
在步骤s212中,确定前向参考帧和后向参考帧中参考块各自对应的qp增量。
[0128]
deltaqp_1=-strength*log2(1+propagate_cost
ref1
/intra_cost)
[0129]
deltaqp_2=-strength*log2(1+propagate_cost
ref2
/intra_cost)
[0130]
其中,deltaqp_1代表第一参考帧中参考块对应的qp增量;deltaqp_2代表第二参考帧中参考块对应的qp增量;strength为可调节强度值。
[0131]
在步骤s214中,基于前向参考帧和后向参考帧中参考块各自对应的qp增量,为当前编码块进行编码。
[0132]
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0133]
可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
[0134]
图3是根据一示例性实施例示出的一种视频的编码装置300框图。参照图3,该装置包括损失确定模块302、权重确定模块304和编码模块306。
[0135]
损失确定模块302,被配置为执行在视频的当前编码块对应的参考帧包括多帧的情况下,确定当前编码块分别参考各个参考帧产生的、与各个参考帧对应的第一参考损失;权重确定模块304,被配置为执行根据各个参考帧对应的第一参考损失,为各个参考帧中的参考块分配相应的传播权重,传播权重与第一参考损失呈负相关关系;编码模块306,被配置为执行基于传播权重对当前编码块进行编码。
[0136]
在一示例性实施例中,权重确定模块304,包括:损失确定单元,被配置为执行确定当前编码块同时参考多帧参考帧产生的第二参考损失;权重分配单元,被配置为执行根据各个参考帧对应的第一参考损失以及第二参考损失,为各个参考帧中的参考块分配相应的传播权重。
[0137]
在一示例性实施例中,权重分配单元,包括:差异值生成子单元,被配置为执行确定各个参考帧对应的第一参考损失与第二参考损失之间的损失差异值;权重分配子单元,被配置为执行根据各个参考帧对应的损失差异值,为各个参考帧中的参考块分配相应的传播权重。
[0138]
在一示例性实施例中,权重分配子单元,被配置为执行针对任一参考帧,获取其他参考帧的损失差异值之和,其他参考帧为多个参考帧中除任一参考帧之外的参考帧;获取多个参考帧的损失差异值之和;根据其他参考帧的损失差异值之和,以及多个参考帧的损
失差异值之和,生成任一参考帧中的参考块对应的传播权重。
[0139]
在一示例性实施例中,差异值生成子单元,被配置为执行获取各个参考帧对应的第一参考损失与第二参考损失之差,作为各个参考帧对应的损失差异值。
[0140]
在一示例性实施例中,损失确定模块302,被配置为执行对当前编码块所属的当前帧、以及各个参考帧进行划分,得到与当前帧以及各个参考帧的多个块;针对当前帧的多个块中的任一块,在各参考帧的多个块中进行运动搜索,确定任一块与各参考帧中各个块之间的参考损失;根据当前帧中各个块与各个参考帧中各个块之间的参考损失,确定第一参考损失。
[0141]
在一示例性实施例中,在当前编码块所属的当前帧为b帧的情况下,多帧参考帧包括当前帧的前向参考帧和后向参考帧。
[0142]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0143]
图4是根据一示例性实施例示出的一种用于对视频进行编码的电子设备z00的框图。例如,电子设备z00可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
[0144]
参照图4,电子设备z00可以包括以下一个或多个组件:处理组件z02、存储器z04、电源组件z06、多媒体组件z08、音频组件z10、输入/输出(i/o)的接口z12、传感器组件z14以及通信组件z16。
[0145]
处理组件z02通常控制电子设备z00的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件z02可以包括一个或多个处理器z20来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件z02可以包括一个或多个模块,便于处理组件z02和其他组件之间的交互。例如,处理组件z02可以包括多媒体模块,以方便多媒体组件z08和处理组件z02之间的交互。
[0146]
存储器z04被配置为存储各种类型的数据以支持在电子设备z00的操作。这些数据的示例包括用于在电子设备z00上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器z04可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
[0147]
电源组件z06为电子设备z00的各种组件提供电力。电源组件z06可以包括电源管理系统,一个或多个电源,及其他与为电子设备z00生成、管理和分配电力相关联的组件。
[0148]
多媒体组件z08包括在所述电子设备z00和用户之间的提供输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件z08包括前置摄像头和/或后置摄像头。当电子设备z00处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是固定的光学透镜系统或具有焦距和光学变焦能力。
[0149]
音频组件z10被配置为输出和/或输入音频信号。例如,音频组件z10包括麦克风(mic),当电子设备z00处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器z04或经由通信组件z16发送。在一些实施例中,音频组件z10还包括扬声器,用于输出音频信号。
[0150]
i/o接口z12为处理组件z02和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0151]
传感器组件z14包括一个或多个传感器,用于为电子设备z00提供各个方面的状态评估。例如,传感器组件z14可以检测到电子设备z00的打开/关闭状态,组件的相对定位,例如所述组件为电子设备z00的显示器和小键盘,传感器组件z14还可以检测电子设备z00或电子设备z00组件的位置改变,用户与电子设备z00接触的存在或不存在,设备z00方位或加速/减速和电子设备z00的温度变化。传感器组件z14可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件z14还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件z14还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
[0152]
通信组件z16被配置为便于电子设备z00和其他设备之间有线或无线方式的通信。电子设备z00可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它们的组合。在一个示例性实施例中,通信组件z16经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件z16还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0153]
在示例性实施例中,电子设备z00可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0154]
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器z04,上述指令可由电子设备z00的处理器z20执行以完成上述方法。例如,计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0155]
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备z00的处理器z20执行以完成上述方法。
[0156]
图5是根据一示例性实施例示出的另一种用于对视频进行编码的电子设备s00的框图。例如,电子设备s00可以为服务器。参照图5,电子设备s00包括处理组件s20,其进一步包括一个或多个处理器,以及由存储器s22所代表的存储器资源,用于存储可由处理组件s20的执行的指令,例如应用程序。存储器s22中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件s20被配置为执行指令,以执行上述方法。
[0157]
电子设备s00还可以包括:电源组件s24被配置为执行电子设备s00的电源管理,有线或无线网络接口s26被配置为将电子设备s00连接到网络,和输入输出(i/o)接口s28。电子设备s00可以操作基于存储在存储器s22的操作系统,例如windows server,mac os x,unix,linux,freebsd或类似。
[0158]
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器s22,上述指令可由电子设备s00的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0159]
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备s00的处理器执行以完成上述方法。
[0160]
需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
[0161]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
[0162]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1