一种视频压缩方法、装置、电子设备及存储介质与流程

文档序号:29119714发布日期:2022-03-04 21:36阅读:91来源:国知局
一种视频压缩方法、装置、电子设备及存储介质与流程

1.本发明涉及视频处理技术领域,特别是涉及一种视频压缩方法、装置、电子设备及存储介质。


背景技术:

2.av1(aomedia video 1)是由aom(alliance for open media,开放媒体联盟)开发的免专利的视频编码标准,用以实现视频压缩。由于av1相比其他视频压缩方式较大幅度地提高了视频压缩效率,因此较多视频应用公司开始尝试使用av1进行视频压缩。
3.然而,相比其它压缩方式,av1虽然提高了视频压缩的压缩效率,但同时也增加了视频编码的复杂度。
4.av1是通过组合参考帧模式选出一组参考帧图像,对当前帧图像进行编码。具体的,需要对组合参考帧图像模式下的每种参考帧图像组合均进行编码测试,得到该参考帧图像组合对应的编码代价。然后选出编码代价最小的参考帧图像组合用于实现对待压缩视频的压缩。然而,现有的对组合参考帧图像模式下的每种参考帧图像组合均进行编码测试使得av1视频编码的编码复杂度较高。


技术实现要素:

5.本发明实施例的目的在于提供一种视频压缩方法、装置、电子设备及存储介质,以降低视频压缩的复杂度。
6.为了达到上述目的,本发明实施例提供了一种视频压缩方法,包括:
7.针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对所述当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价;
8.基于各个参考帧图像对应的编码代价,计算所述当前待编码图像对应的每组双向组合参考帧对应的编码代价;其中,所述当前待编码图像的每组双向组合参考帧包括:一个在待压缩视频中的显示序号位于当前待编码图像之前的参考帧图像和一个在待压缩视频中的显示序号位于当前待编码图像之后的参考帧图像;待压缩视频中的每帧图像对应的显示序号用于反映该帧图像在待压缩视频中的显示顺序;
9.将对应的编码代价最小的双向组合参考帧确定为所述当前待编码图像对应的目标组合参考帧;并使用所述目标组合参考帧中的参考帧图像对所述当前待编码图像进行编码,以实现对待压缩视频的压缩。
10.进一步的,所述针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对所述当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价,包括:
11.针对待压缩视频中的当前待编码图像的每个参考帧图像,以该参考帧图像对所述当前待编码图像进行编码,得到编码后图像,并确定所述编码后图像所消耗的编码比特;
12.计算当前待编码图像和编码后图像相对应的各个像素点之间的残差之和,得到编
码后图像与当前待编码图像相比存在的失真;
13.基于所述失真和所述编码比特,确定该参考帧图像对应的编码代价。
14.进一步的,所述基于各个参考帧图像对应的编码代价,计算所述当前待编码图像对应的每组双向组合参考帧对应的编码代价,包括:
15.对所述当前待编码图像的所有参考帧图像进行两两组合,得到多个组合参考帧;
16.针对每个组合参考帧,获得该组合参考帧中两个参考帧图像在待压缩视频中对应的显示序号,以及获得所述当前待编码图像在待压缩视频中对应的显示序号;
17.若所述当前待编码图像的显示序号位于该组合参考帧中两个参考帧图像的显示序号之间,则确定该组合参考帧为所述当前待编码图像对应的双向组合参考帧,得到所述当前待编码图像对应的至少一组双向组合参考帧;
18.针对所述当前待编码图像对应的每组双向组合参考帧,计算该组双向组合参考帧中两个参考帧图像对应的编码代价之和,作为该组双向组合参考帧对应的编码代价。
19.进一步的,当前待编码图像包括多个图像块;
20.所述获得以该参考帧图像对所述当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价,包括:
21.获得以该参考帧图像对所述当前待编码图像的每个图像块进行编码后的编码代价,作为该参考帧图像针对该图像块的编码代价;
22.所述基于各个参考帧图像的编码代价,计算所述当前待编码图像对应的每组双向组合参考帧对应的编码代价,包括:
23.基于每个参考帧图像针对所述当前待编码图像的每个图像块的编码代价,计算该图像块对应的每组双向组合参考帧对应的编码代价;
24.所述将对应的编码代价最小的双向组合参考帧确定为所述当前待编码图像对应的目标组合参考帧;并使用所述目标组合参考帧中的参考帧图像对所述当前待编码图像进行编码,以实现对待压缩视频的压缩,包括:
25.基于所述当前待编码图像的每个图像块对应的每组双向组合参考帧的编码代价,确定该图像块对应的目标组合参考帧;
26.针对所述当前待编码图像的每个图像块,使用该图像块对应的目标组合参考帧对该图像块进行编码,以实现对待压缩视频的压缩。
27.为了达到上述目的,本发明实施例还提供了一种视频压缩装置,包括:
28.第一编码代价获得模块,用于针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对所述当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价;
29.第二编码代价获得模块,用于基于各个参考帧图像对应的编码代价,计算所述当前待编码图像对应的每组双向组合参考帧对应的编码代价;其中,所述当前待编码图像的每组双向组合参考帧包括:一个在待压缩视频中的显示序号位于当前待编码图像之前的参考帧图像和一个在待压缩视频中的显示序号位于当前待编码图像之后的参考帧图像;待压缩视频中的每帧图像对应的显示序号用于反映该帧图像在待压缩视频中的显示顺序;
30.参考帧确定模块,用于将对应的编码代价最小的双向组合参考帧确定为所述当前待编码图像对应的目标组合参考帧;并使用所述目标组合参考帧中的参考帧图像对所述当
前待编码图像进行编码,以实现对待压缩视频的压缩。
31.进一步的,所述第一编码代价获得模块,具体用于针对待压缩视频中的当前待编码图像的每个参考帧图像,以该参考帧图像对所述当前待编码图像进行编码,得到编码后图像,并确定所述编码后图像所消耗的编码比特;计算当前待编码图像和编码后图像相对应的各个像素点之间的残差之和,得到编码后图像与当前待编码图像相比存在的失真;基于所述失真和所述编码比特,确定该参考帧图像对应的编码代价。
32.进一步的,所述第二编码代价获得模块,具体用于对所述当前待编码图像的所有参考帧图像进行两两组合,得到多个组合参考帧;针对每个组合参考帧,获得该组合参考帧中两个参考帧图像在待压缩视频中对应的显示序号,以及获得所述当前待编码图像在待压缩视频中对应的显示序号;若所述当前待编码图像的显示序号位于该组合参考帧中两个参考帧图像的显示序号之间,则确定该组合参考帧为所述当前待编码图像对应的双向组合参考帧,得到所述当前待编码图像对应的至少一组双向组合参考帧;针对所述当前待编码图像对应的每组双向组合参考帧,计算该组双向组合参考帧中两个参考帧图像对应的编码代价之和,作为该组双向组合参考帧对应的编码代价。
33.进一步的,当前待编码图像包括多个图像块;
34.所述第一编码代价获得模块,具体用于获得以该参考帧图像对所述当前待编码图像的每个图像块进行编码后的编码代价,作为该参考帧图像针对该图像块的编码代价;
35.所述第二编码代价获得模块,具体用于基于每个参考帧图像针对所述当前待编码图像的每个图像块的编码代价,计算该图像块对应的每组双向组合参考帧对应的编码代价;
36.所述参考帧确定模块,具体用于基于所述当前待编码图像的每个图像块对应的每组双向组合参考帧的编码代价,确定该图像块对应的目标组合参考帧;针对所述当前待编码图像的每个图像块,使用该图像块对应的目标组合参考帧对该图像块进行编码,以实现对待压缩视频的压缩。
37.为了达到上述目的,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
38.存储器,用于存放计算机程序;
39.处理器,用于执行存储器上所存放的程序时,实现上述任一所述视频压缩方法步骤。
40.为了达到上述目的,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述视频压缩方法步骤。
41.为了达到上述目的,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述视频压缩方法步骤。
42.采用本发明实施例提供的方法,针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价;基于各个参考帧图像对应的编码代价,计算当前待编码图像对应的每组双向组合参考帧对应的编码代价;将对应的编码代价最小的双向组合参考帧确定为当前待编码图像对应的目标组合参考帧;并使用目标组合参考帧中的参考帧图像对当前待编码
图像进行编码,以实现对待压缩视频的压缩。即通过获得每个参考帧图像对应的编码代价,进而得到双向组合参考帧对应的编码代价,进一步的可以确定出编码代价最小的目标组合参考帧用于对当前待编码图像进行编码,实现对待压缩视频的压缩,而不再需要对组合参考帧模式下的每种参考帧组合均进行编码测试。因此,与现有的对组合参考帧模式下的每种参考帧组合均进行编码测试的方式相比,采用本发明实施例提供的方法,通过编码代价确定出目标组合参考帧用于编码的方式可以很好地降低视频压缩的复杂度。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
44.图1为本发明实施例提供的视频压缩方法的一种流程图;
45.图2为本发明实施例提供的确定参考帧图像对应的编码代价的一种流程图;
46.图3为本发明实施例提供的确定双向组合参考帧对应的编码代价的一种流程图;
47.图4为本发明实施例提供的视频压缩方法的另一种流程图;
48.图5为本发明实施例提供的视频压缩装置的一种结构图;
49.图6为本发明实施例提供的电子设备的结构示意图。
具体实施方式
50.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
51.由于现有的对组合参考帧图像模式下的每种参考帧图像组合均进行编码测试使得av1视频编码的编码复杂度较高,为了降低视频压缩的复杂度,本发明实施例提供了一种视频压缩方法、装置、电子设备及存储介质。
52.参见图1,图1为本发明实施例提供的视频压缩方法的一种流程,包括:
53.步骤101,针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价。
54.本发明实施例中,当前待编码图像可以对应存在多个参考帧图像,具体可以包括多个第一类参考帧图像和多个第二类参考帧图像,其中,第一类参考帧图像为待压缩视频中显示序号在当前待编码图像之前的图像,第二类参考帧图像为待压缩视频中显示序号在当前待编码图像之后的图像。
55.例如,当前待编码图像对应的多个第一类参考帧图像可以包括:last_frame(当前待编码图像的前一帧图像)、last2_frame(当前待编码图像的前一帧图像的前一帧图像)、last3_frame(当前待编码图像的前一帧图像的前一帧图像的前一帧图像)、golden_frame(待压缩视频中显示序号在当前待编码图像之前的任一帧图像)。
56.当前待编码图像对应的多个第二类参考帧图像可以包括:bwdref_frame(待压缩视频中显示序号在当前待编码图像之后的任一帧图像)、altref2_frame(当前待编码图像的后一帧图像)、altref_frame(当前待编码图像的后一帧图像的后一帧图像)。
57.其中,图像帧的显示序号为用于反映该图像帧在待压缩视频中的显示顺序。例如,待压缩视频b包括4个图像帧:图像帧b1、b2、b3和b4,且在播放时按照图像帧b1、b3、b2、b4的顺序进行播放,则待压缩视频b中各个图像帧的显示顺序为:图像帧b1、b3、b2、b4。可以为待
压缩视频b的各个图像帧赋予显示序号,例如,图像帧b1、b2、b3、b4对应的显示序号分别为:1、3、2、4,显示序号即为各个图像帧在待压缩视频b中的显示顺序。
58.本发明实施例中,可以使用当前待编码图像对应的每个参考帧图像,对当前待编码图像进行编码,得到编码后图像,然后可以根据编码后图像与当前待编码图像相比存在的失真,以及编码后图像所消耗的编码比特,确定出该参考帧图像对应的编码代价。
59.步骤102,基于各个参考帧图像对应的编码代价,计算当前待编码图像对应的每组双向组合参考帧对应的编码代价。
60.其中,当前待编码图像的每组双向组合参考帧包括:一个在待压缩视频中的显示序号位于当前待编码图像之前的参考帧图像和一个在待压缩视频中的显示序号位于当前待编码图像之后的参考帧图像;待压缩视频中的每帧图像对应的显示序号用于反映该帧图像在待压缩视频中的显示顺序。
61.步骤103,将对应的编码代价最小的双向组合参考帧确定为当前待编码图像对应的目标组合参考帧;并使用目标组合参考帧中的参考帧图像对当前待编码图像进行编码,以实现对待压缩视频的压缩。
62.采用本发明实施例提供的方法,针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价;基于各个参考帧图像对应的编码代价,计算当前待编码图像对应的每组双向组合参考帧对应的编码代价;将对应的编码代价最小的双向组合参考帧确定为当前待编码图像对应的目标组合参考帧;并使用目标组合参考帧中的参考帧图像对当前待编码图像进行编码,以实现对待压缩视频的压缩。即通过获得每个参考帧图像对应的编码代价,进而得到双向组合参考帧对应的编码代价,进一步的可以确定出编码代价最小的目标组合参考帧用于对当前待编码图像进行编码,实现对待压缩视频的压缩,而不再需要对组合参考帧模式下的每种参考帧组合均进行编码测试。因此,与现有的对组合参考帧模式下的每种参考帧组合均进行编码测试的方式相比,采用本发明实施例提供的方法,通过编码代价确定出目标组合参考帧用于编码的方式可以很好地降低视频压缩的复杂度。
63.在一种可能的实施方式中,图2为本发明实施例提供的确定参考帧图像对应的编码代价的一种流程图,如图2所示,所述针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价,可以包括:
64.步骤201,针对待压缩视频中的当前待编码图像的每个参考帧图像,以该参考帧图像对当前待编码图像进行编码,得到编码后图像,并确定编码后图像所消耗的编码比特。
65.本步骤中,得到编码后图像所使用的编码比特为编码后图像所消耗的编码比特。
66.步骤202,计算当前待编码图像和编码后图像相对应的各个像素点之间的残差之和,得到编码后图像与当前待编码图像相比存在的失真。
67.具体的,本步骤中,可以采用如下公式计算编码后图像与当前待编码图像相比存在的失真:
68.r=s-p;
69.其中,r为当前待编码图像和编码后图像相对应的各个像素点之间的残差之和,s为当前待编码图像的像素点,p为编码后图像的像素点;
70.基于计算得到的当前待编码图像和编码后图像相对应的各个像素点之间的残差之和r,可以继续可以采用如下公式对r进行压缩处理:
71.对r进行变换处理,得到变换后的残差c:
72.c=t(r);
73.其中,t表示变换运算;
74.进一步的,对变换后的残差c进行量化处理,得到量化后的残差q:
75.q=q(c);
76.其中,q表示量化运算;
77.基于量化后的残差q,可以继续可以采用如下公式对q进行解压缩处理,得到解压缩后的残差r':
78.对量化后的残差q进行反量化处理,得到反量化后的残差c':
79.c'=i(q);
80.其中,i表示反量化运算;
81.进一步的,对反量化后的残差c'进行反变换处理,得到反变换后的残差r':
82.r'=it(c');
83.其中,it表示反变换运算;
84.进一步的,基于反变换后的残差r',可以采用如下公式计算得到解压缩重建后的编码后图像的像素点s':
85.s'=r'+p;
86.进一步的,基于解压缩重建后的编码后图像的像素点s',可以采用如下公式计算得到编码后图像与当前待编码图像相比存在的失真:
87.d=ssd(s,s')
88.其中,d为编码后图像与当前待编码图像相比存在的失真,ssd(s,s')表示计算s'和s之间的误差平方和。
89.本发明实施例中,也可以采用任何其他确定图像失真的算法,计算编码后图像与当前待编码图像相比存在的失真,此处不做限定。
90.步骤203,基于失真和编码比特,确定该参考帧图像对应的编码代价。
91.具体的,可以采用如下公式基于失真和编码比特,确定该参考帧图像对应的编码代价:
92.cost=d+λr
93.其中,cost为该参考帧图像对应的编码代价,d为使用该参考帧图像对当前待编码图像进行编码后得到的编码后图像与当前待编码图像相比存在的失真,r为编码后图像所消耗的编码比特,λ为预设的常数参数。
94.本发明实施例中,也可以直接将编码后图像与当前待编码图像相比存在的失真和编码后图像所消耗的编码比特叠加求和,得到的和值作为该参考帧图像对应的编码代价。
95.本发明实施中,也可以采用任何其他图像编码代价计算方法,确定该参考帧图像对应的编码代价,此处不做限定。
96.在一种可能的实施方式中,图3为本发明实施例提供的确定双向组合参考帧对应的编码代价的一种流程图,如图3所示,所述基于各个参考帧图像对应的编码代价,计算当
前待编码图像对应的每组双向组合参考帧对应的编码代价,可以包括:
97.步骤301,对当前待编码图像的所有参考帧图像进行两两组合,得到多个组合参考帧。
98.例如,当前待编码图像对应存在7个参考帧图像:last_frame、last2_frame、last3_frame、golden_frame、bwdref_frame、altref2_frame和altref_frame。则本步骤可以对当前待编码图像对应的7个参考帧图像进行两两组合,得到个组合参考帧,每个组合参考帧中包括当前待编码图像对应的两个参考帧图像。
99.步骤302,针对每个组合参考帧,获得该组合参考帧中两个参考帧图像在待压缩视频中对应的显示序号,以及获得当前待编码图像在待压缩视频中对应的显示序号。
100.步骤303,若当前待编码图像的显示序号位于该组合参考帧中两个参考帧图像的显示序号之间,则确定该组合参考帧为当前待编码图像对应的双向组合参考帧,得到当前待编码图像对应的至少一组双向组合参考帧。
101.例如,组合参考帧(last_frame,bwdref_frame)中,参考帧图像last_frame为当前待编码图像的前一帧图像,参考帧图像bwdref_frame为当前待编码图像之后的任一帧图像,即当前待编码图像的显示序号位于last_frame和bwdref_frame的显示序号之间,则该组合参考帧(last_frame,bwdref_frame)为当前待编码图像对应的双向组合参考帧。
102.例如,组合参考帧(last_frame,last2_frame)中,参考帧图像last_frame为当前待编码图像的前一帧图像,参考帧图像last2_frame为当前待编码图像的前一帧图像的前一帧图像,当前待编码图像的显示序号位于last_frame和last2_frame的显示序号之后,即当前待编码图像的显示序号不位于last_frame和last2_frame的显示序号之间,则该组合参考帧(last_frame,last2_frame)不是当前待编码图像对应的双向组合参考帧。
103.本发明实施例中,当前待编码图像对应的多个第一类参考帧图像进行两两组合,得到的组合参考帧为单向组合参考帧,例如,当前待编码图像对应的4个第一类参考帧图像last_frame、last2_frame、last3_frame和golden_frame进行两两组合,所得到的组合参考帧中的两个参考帧图像都是显示序号位于当前待编码图像之前的图像,因此,所得到的组合参考帧为单向组合参考帧。
104.当前待编码图像对应的多个第二类参考帧图像进行两两组合,得到的组合参考帧为单向组合参考帧,例如,当前待编码图像对应的3个第二类参考帧图像bwdref_frame、altref2_frame和altref_frame进行两两组合,所得到的组合参考帧中的两个参考帧图像都是显示序号位于当前待编码图像之后的图像,因此,所得到的组合参考帧也为单向组合参考帧。
105.如果组合参考帧中包括当前待编码图像对应的一个第一类参考帧图像和一个第二类参考帧图像,则该组合参考帧为当前待编码图像对应的一组双向组合参考帧。
106.本发明实施例中,还可以根据当前待编码图像对应的4个第一类参考帧图像last_frame、last2_frame、last3_frame和golden_frame,以及当前待编码图像对应的3个第二类参考帧图像bwdref_frame、altref2_frame和altref_frame,指定16个组合参考帧,16个组合参考帧包括4个单向组合参考帧和12个双向组合参考帧,具体的,12个双向组合参考帧可以为:(last_frame,bwdref_frame)、(last_frame,altref2_frame)、(last_frame,altref_frame)、(last2_frame,bwdref_frame)、(last2_frame,altref2_frame)、(last2_frame,
altref_frame)、(last3_frame,bwdref_frame)、(last3_frame,altref2_frame)、(last3_frame,altref_frame)、(golden_frame,bwdref_frame)、(golden_frame,altref2_frame)和(golden_frame,altref_frame);4个单向组合参考帧可以为:(last_frame,last2_frame)、(last2_frame,last3_frame)、(last3_frame,golden_frame)和(altref2_frame,altref_frame)。
107.步骤304,针对当前待编码图像对应的每组双向组合参考帧,计算该组双向组合参考帧中两个参考帧图像对应的编码代价之和,作为该组双向组合参考帧对应的编码代价。
108.具体的,本步骤中,可以求双向组合参考帧中的两个参考帧图像对应的编码代价的加和,将两个参考帧图像对应的编码代价的加和作为该组双向组合参考帧对应的编码代价。
109.采用本发明实施例提供的方法,通过获得参考帧图像对应的编码代价,进而得到双向组合参考帧对应的编码代价,进一步的可以确定出编码代价最小的目标组合参考帧用于对当前待编码图像进行编码,实现对待压缩视频的压缩,而不再需要对组合参考帧模式下的每种参考帧组合均进行编码测试。因此,与现有的对组合参考帧模式下的每种参考帧组合均进行编码测试的方式相比,采用本发明实施例提供的方法,通过编码代价确定出目标组合参考帧用于编码的方式可以很好地降低视频压缩的复杂度。
110.在一种可能的实施方式中,图4为本发明实施例提供的视频压缩方法的另一种流程图,如图4所示,该方法包括:
111.步骤401,针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对当前待编码图像的每个图像块进行编码后的编码代价,作为该参考帧图像针对该图像块的编码代价。
112.其中,当前待编码图像可以包括多个图像块。
113.步骤402,基于每个参考帧图像针对当前待编码图像的每个图像块的编码代价,计算该图像块对应的每组双向组合参考帧对应的编码代价。
114.步骤403,基于当前待编码图像的每个图像块对应的每组双向组合参考帧的编码代价,确定该图像块对应的目标组合参考帧。
115.针对每个图像块的每组双向组合参考帧,可以将编码代价最小的双向组合参考帧确定为该图像块对应的目标组合参考帧。
116.步骤404,针对当前待编码图像的每个图像块,使用该图像块对应的目标组合参考帧对该图像块进行编码,以实现对待压缩视频的压缩。
117.本步骤中,可以使用目标组合参考帧中的两个参考帧图像对该图像块进行编码。进一步的,针对待压缩视频中各个待压缩图像帧中的各个图像块,可以应用本发明实施例提供的视频压缩方法,实现对各个待压缩图像帧中的各个图像块的编码,进而实现对待压缩视频的压缩。其中,使用参考帧图像对图像块进行编码可参见视频编码技术中帧间编码技术,此处不进行赘述。
118.采用本发明实施例提供的方法,可以通过获得参考帧图像对应的编码代价,进而得到双向组合参考帧对应的编码代价,进一步的可以确定出编码代价最小的目标组合参考帧图像用于对当前待编码图像的图像块进行编码,实现对待压缩视频的压缩,而不再需要对组合参考帧模式下的每种参考帧组合均进行编码测试。因此,与现有的对组合参考帧模
式下的每种参考帧组合均进行编码测试的方式相比,采用本发明实施例提供的方法,通过编码代价确定出目标组合参考帧图像用于编码的方式可以很好地降低视频压缩的复杂度。
119.在一种可能的实施方式中,所述基于每个参考帧图像针对当前待编码图像的每个图像块的编码代价,计算该图像块对应的每组双向组合参考帧对应的编码代价,可以包括如下步骤a1-a3:
120.步骤a1,针对待压缩视频中的当前待编码图像的每个参考帧图像,以该参考帧图像对当前待编码图像的每个图像块进行编码,得到该图像块的编码后图像块。
121.步骤a2,计算该图像块和编码后图像块相对应的各个像素点之间的残差之和,得到编码后图像块与该图像块相比存在的失真。
122.具体的,本步骤中,可以采用如下公式计算编码后图像块与该图像块相比存在的失真:
123.r1=s1-p1
124.其中,r1为该图像块和编码后图像块相对应的各个像素点之间的残差之和,s1为该图像块的像素点,p1为编码后图像块的像素点;
125.基于计算得到的该图像块和编码后图像块相对应的各个像素点之间的残差之和r1,可以继续可以采用如下公式对r1进行压缩处理:
126.对r1进行变换处理,得到变换后的残差c1:
127.c1=t(r1)
128.其中,t表示变换运算;
129.进一步的,对变换后的残差c1进行量化处理,得到量化后的残差q1:
130.q=q(c);
131.q1=q(c1)
132.其中,q表示量化运算;
133.基于量化后的残差q1,可以继续可以采用如下公式对q1进行解压缩处理,得到解压缩后的残差r1’:
134.对量化后的残差q1进行反量化处理,得到反量化后的残差c1’:
135.c'=i(q);
136.c1’=i(q1)
137.其中,i表示反量化运算;
138.进一步的,对反量化后的残差c1’进行反变换处理,得到反变换后的残差r1’:
139.r'=it(c');
140.r1’=it(c1’)
141.其中,it表示反变换运算;
142.进一步的,基于反变换后的残差r1’,可以采用如下公式计算得到解压缩重建后的编码后图像块的像素点s1’:
143.s1’=r1’+p1
144.进一步的,基于解压缩重建后的编码后图像块的像素点s1’,可以采用如下公式计算得到编码后图像块与该图像块相比存在的失真:
145.d1=ssd(s1,s1’)
146.其中,d1为编码后图像块与该图像块相比存在的失真,ssd(s1,s1’)表示计算s1’和s1之间的误差平方和。
147.步骤a3,基于编码后图像块与该图像块相比存在的失真,确定该参考帧图像针对该图像块的编码代价。
148.具体的,可以采用如下公式获得以该参考帧图像对该图像块进行编码后的编码代价,作为该参考帧图像针对该图像块的编码代价:
149.cost=d+λr
150.cost’=d1+λ’r’151.其中,cost’为该参考帧图像针对该图像块的编码代价,d1为使用该参考帧图像对该图像块进行编码后得到的编码后图像块与该图像块相比存在的失真,r’为编码后图像块所消耗的编码比特,λ’为预设的常数参数。
152.在一种可能的实施方式中,基于每个参考帧图像针对当前待编码图像的每个图像块的编码代价,计算该图像块对应的每组双向组合参考帧对应的编码代价,可以包括如下步骤b1-b2:
153.步骤b1,根据每个参考帧图像与当前待编码图像的每个图像块在待压缩视频中的显示序号,确定出该图像块的多组双向组合参考帧。
154.具体的,可以对所有参考帧图像进行两两组合,获得多个组合参考帧。针对每个组合参考帧,获得该组合参考帧中两个参考帧图像待压缩视频中的显示序号,以及获得该图像块在待压缩视频中的显示序号。其中,该图像块在待压缩视频中的显示序号与当前待编码图像在待压缩视频中的显示序号一致。例如,若当前待编码图像在待压缩视频中的显示序号为24,则该图像块在待压缩视频中的显示序号为24。
155.若该图像块的显示序号位于该组合参考帧中两个参考帧图像的显示序号之间,则确定该组合参考帧为该图像块的双向组合参考帧。其中,若该图像块的显示序号位于该组合参考帧中两个参考帧图像的显示序号之间,则表示该组合参考帧中的两个参考帧图像分别为:在待压缩视频中的显示序号位于该图像块之前的一个参考帧图像,以及在待压缩视频中的显示序号位于该图像块之后的一个参考帧图像。
156.若该图像块的显示序号不位于该组合参考帧中两个参考帧图像的显示序号之间,则可以删去该组合参考帧。
157.本发明实施例中,可以利用当前待编码图像对应的7参考帧图像:last_frame、last2_frame、last3_frame、golden_frame、bwdref_frame、altref2_frame和altref_frame,获得每个图像块对应的指定的16个组合参考帧,每个组合参考帧包括该图像块的两个参考帧图像。
158.其中,指定的16个组合参考帧包括:4个单向组合参考帧和12个双向组合参考帧,每个单向组合参考帧包括:在待压缩视频中的显示序号均位于该图像块之前的两个参考帧图像,或在待压缩视频中的显示序号均位于该图像块之后的两个参考帧图像。本步骤中,12个双向组合参考帧具体可以为:(last_frame,bwdref_frame)、(last_frame,altref2_frame)、(last_frame,altref_frame)、(last2_frame,bwdref_frame)、(last2_frame,altref2_frame)、(last2_frame,altref_frame)、(last3_frame,bwdref_frame)、(last3_frame,altref2_frame)、(last3_frame,altref_frame)、(golden_frame,bwdref_frame)、
(golden_frame,altref2_frame)和(golden_frame,altref_frame)。
159.本步骤中,4个单向组合参考帧具体可以为:(last_frame,last2_frame)、(last2_frame,last3_frame)、(last3_frame,golden_frame)和(altref2_frame,altref_frame)。
160.针对每个组合参考帧,可以获得该组合参考帧中两个参考帧图像待压缩视频中的显示序号,以及获得每个图像块的显示序号,若该图像块的显示序号位于该组合参考帧中两个参考帧图像的显示序号之间,则确定该组合参考帧为该图像块的双向组合参考帧,若该图像块的显示序号不位于该组合参考帧中两个参考帧图像的显示序号之间,则可以删去该组合参考帧。
161.步骤b2,针对该图像块的每组双向组合参考帧,计算该组双向组合参考帧中的两个参考帧图像的编码代价之和,作为该图像块对应的该组双向组合参考帧对应的编码代价。
162.本步骤中,可以求双向组合参考帧中的两个参考帧图像的编码代价的加和,将两个参考帧图像的编码代价的加和作为该图像块对应的该组双向组合参考帧对应的编码代价。
163.采用本发明实施例提供的方法,通过获得参考帧图像的编码代价,进而得到双向组合参考帧的编码代价,进一步的可以针对当前待编码图像的每个图像块确定出编码代价最小的目标组合参考帧用于对该图像块进行编码,实现对待压缩视频的压缩,而不再需要对组合参考帧模式下的每种参考帧组合均进行编码测试。因此,与现有的对组合参考帧模式下的每种参考帧组合均进行编码测试的方式相比,采用本发明实施例提供的方法,通过编码代价确定出目标组合参考帧用于编码的方式可以很好地降低视频压缩的复杂度。
164.基于同一发明构思,根据本发明上述实施例提供的视频压缩方法,相应地,本发明另一实施例还提供了一种视频压缩装置,其结构示意图如图5所示,具体包括:
165.第一编码代价获得模块501,用于针对待压缩视频中的当前待编码图像的每个参考帧图像,获得以该参考帧图像对所述当前待编码图像进行编码后的编码代价,作为该参考帧图像对应的编码代价;
166.第二编码代价获得模块502,用于基于各个参考帧图像对应的编码代价,计算所述当前待编码图像对应的每组双向组合参考帧对应的编码代价;其中,所述当前待编码图像的每组双向组合参考帧包括:一个在待压缩视频中的显示序号位于当前待编码图像之前的参考帧图像和一个在待压缩视频中的显示序号位于当前待编码图像之后的参考帧图像;待压缩视频中的每帧图像对应的显示序号用于反映该帧图像在待压缩视频中的显示顺序;
167.参考帧确定模块503,用于将对应的编码代价最小的双向组合参考帧确定为所述当前待编码图像对应的目标组合参考帧;并使用所述目标组合参考帧中的参考帧图像对所述当前待编码图像进行编码,以实现对待压缩视频的压缩。
168.可见,采用本发明实施例提供的装置,通过获得每个参考帧图像对应的编码代价,进而得到双向组合参考帧对应的编码代价,进一步的可以确定出编码代价最小的目标组合参考帧用于对当前待编码图像进行编码,实现对待压缩视频的压缩,而不再需要对组合参考帧模式下的每种参考帧组合均进行编码测试。因此,与现有的对组合参考帧模式下的每种参考帧组合均进行编码测试的方式相比,采用本发明实施例提供的装置,通过编码代价确定出目标组合参考帧用于编码的方式可以很好地降低视频压缩的复杂度。
169.进一步的,所述第一编码代价获得模块501,具体用于针对待压缩视频中的当前待编码图像的每个参考帧图像,以该参考帧图像对所述当前待编码图像进行编码,得到编码后图像,并确定所述编码后图像所消耗的编码比特;计算当前待编码图像和编码后图像相对应的各个像素点之间的残差之和,得到编码后图像与当前待编码图像相比存在的失真;基于所述失真和所述编码比特,确定该参考帧图像对应的编码代价。
170.进一步的,所述第二编码代价获得模块502,具体用于对所述当前待编码图像的所有参考帧图像进行两两组合,得到多个组合参考帧;针对每个组合参考帧,获得该组合参考帧中两个参考帧图像在待压缩视频中对应的显示序号,以及获得所述当前待编码图像在待压缩视频中对应的显示序号;若所述当前待编码图像的显示序号位于该组合参考帧中两个参考帧图像的显示序号之间,则确定该组合参考帧为所述当前待编码图像对应的双向组合参考帧,得到所述当前待编码图像对应的至少一组双向组合参考帧;针对所述当前待编码图像对应的每组双向组合参考帧,计算该组双向组合参考帧中两个参考帧图像对应的编码代价之和,作为该组双向组合参考帧对应的编码代价。
171.进一步的,当前待编码图像包括多个图像块;
172.所述第一编码代价获得模块501,具体用于获得以该参考帧图像对所述当前待编码图像的每个图像块进行编码后的编码代价,作为该参考帧图像针对该图像块的编码代价;
173.所述第二编码代价获得模块502,具体用于基于每个参考帧图像针对所述当前待编码图像的每个图像块的编码代价,计算该图像块对应的每组双向组合参考帧对应的编码代价;
174.所述参考帧确定模块503,具体用于基于所述当前待编码图像的每个图像块对应的每组双向组合参考帧的编码代价,确定该图像块对应的目标组合参考帧;针对所述当前待编码图像的每个图像块,使用该图像块对应的目标组合参考帧对该图像块进行编码,以实现对待压缩视频的压缩。
175.本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
176.存储器603,用于存放计算机程序;
177.处理器601,用于执行存储器603上所存放的程序时,实现上述实施例中任一所述的视频压缩方法步骤。
178.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
179.通信接口用于上述电子设备与其他设备之间的通信。
180.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
181.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,
简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
182.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的视频压缩方法。
183.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频压缩方法。
184.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
185.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
186.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
187.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1