首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 复合运动补偿的预测

复合运动补偿的预测

阅读:950发布:2020-05-16

专利汇可以提供复合运动补偿的预测专利检索,专利查询,专利分析的服务。并且选择预测方案以对视频 块 进行编码或解码。可以通过使用一个或多个量化加权系数加权从第一参考 帧 到 视频帧 的距离以及从第二参考帧到视频帧的距离来确定第一复合运动块。可以基于来自第一参考帧的视频块的 像素 值和来自第二参考帧的视频块的像素值的平均值来确定第二复合运动块。第一复合运动块或第二复合运动块中的一个被选择并用于生成预测块。替选地,编码到包括视频帧的比特流的数据可以用于确定使用哪个复合运动块来生成预测块。然后,使用预测块对视频帧的当前块进行编码或解码。,下面是复合运动补偿的预测专利的具体信息内容。

1.一种用于对视频的当前进行编码的方法,所述方法包括:
通过使用一个或多个量化加权系数来加权从第一参考帧到所述视频帧的距离以及从第二参考帧到所述视频帧的距离以确定第一复合运动块;
基于来自所述第一参考帧的视频块的像素值和来自所述第二参考帧的视频块的像素值的平均值,确定第二复合运动块;
选择所述第一复合运动块或所述第二复合运动块中的一个复合运动块;
使用所述第一复合运动块或所述第二复合运动块中的所选择的一个复合运动块来生成预测块;以及
使用所述预测块对所述当前块进行编码。
2.根据权利要求1所述的方法,其中,通过使用一个或多个量化加权系数来加权从所述第一参考帧到所述视频帧的距离以及从所述第二参考帧到所述视频帧的距离以确定所述第一复合运动块包括:
通过将从所述第一参考帧到所述视频帧的第一距离与从所述第二参考帧到所述视频帧的第二距离进行比较,确定第一量化加权系数和第二量化加权系数,其中,所述第一量化加权系数和所述第二量化加权系数是基于所述比较来被量化的,并且所述第一复合运动块是使用所述第一量化加权系数和所述第二量化加权系数来确定的。
3.根据权利要求2所述的方法,其中,通过将所述第一距离与所述第二距离进行比较来确定所述第一量化加权系数和所述第二量化加权系数包括以下操作中的一个:
响应于确定所述第一距离大于所述第二距离,确定所述第一量化加权系数的值为1并且所述第二量化加权系数的值至少为1;或者
响应于确定所述第一距离小于所述第二距离,确定所述第一量化加权系数的值至少为
1并且所述第二量化加权系数的值为1。
4.根据权利要求2或3所述的方法,还包括:
通过对来自所述第一参考帧的视频块的像素值应用所述第一量化加权系数来确定第一值;以及
通过对来自所述第二参考帧的视频块的像素值应用所述第二量化加权系数来确定第二值,
其中,所述第一复合运动块是通过将所述第一值和所述第二值之和除以所述第一量化加权系数和所述第二量化加权系数之和来确定的。
5.根据权利要求1至4中的任一项所述的方法,其中,选择所述第一复合运动块或所述第二复合运动块中的一个复合运动块包括:
确定由于使用与所述第一复合运动块和所述第二复合运动块中的每一个相关联的运动矢量来预测所述当前块的运动而导致的率失真值;以及
选择所述第一复合运动块或所述第二复合运动块中的、导致所述率失真值中的更低的率失真值的一个复合运动块。
6.根据权利要求1至5中的任一项所述的方法,还包括:
将指示对所述第一复合运动块或所述第二复合运动块的所述选择的一个或多个语法元素编码到所述当前块被编码到的比特流。
7.一种用于对编码视频帧的编码块进行解码的方法,所述方法包括:
基于编码到包括所述编码视频帧的比特流的一个或多个语法元素,确定所述编码块是否是通过加权从多个参考帧中的每个参考帧到所述编码视频帧的距离来被编码的;
响应于确定所述编码块是通过加权从所述多个参考帧中的每个参考帧到所述编码视频帧的所述距离来被编码的,通过使用一个或多个量化加权系数来加权从第一参考帧到所述编码视频帧的第一距离和从第二参考帧到所述编码视频帧的第二距离以确定复合运动块;
使用所述复合运动块生成预测块;以及
使用所述预测块对所述编码块进行解码。
8.根据权利要求7所述的方法,其中,通过使用所述一个或多个量化系数来加权所述第一距离和所述第二距离以确定所述复合运动块包括:
通过将所述第一距离与所述第二距离进行比较,确定第一量化加权系数和第二量化加权系数,
其中,所述第一量化加权系数和所述第二量化加权系数是基于所述比较来被量化的,并且所述复合运动块是使用所述第一量化加权系数和所述第二量化加权系数来确定的。
9.根据权利要求8所述的方法,其中,通过将所述第一距离与所述第二距离进行比较来确定所述第一量化加权系数和所述第二量化加权系数包括以下操作中的一个:
响应于确定所述第一距离大于所述第二距离,确定所述第一量化加权系数的值为1并且所述第二量化加权系数的值至少为1;或者
响应于确定所述第一距离小于所述第二距离,确定所述第一量化加权系数的值至少为
1并且所述第二量化加权系数的值为1。
10.根据权利要求8或9所述的方法,还包括:
通过对来自所述第一参考帧的视频块的像素值应用所述第一量化加权系数来确定第一值;以及
通过对来自所述第一参考帧的所述视频块的像素值应用所述第二量化加权系数来确定第二值,
其中,所述复合运动块是通过将所述第一值和所述第二值之和除以所述第一量化加权系数和所述第二量化加权系数之和来确定的。
11.根据权利要求7至10中的任一项所述的方法,其中,所述复合运动块是第一复合运动块,并且所述预测块是第一预测块,所述方法还包括:
响应于确定所述编码块并非是通过使用所述一个或多个量化加权系数对所述距离进行加权来被编码的,基于来自所述第一参考帧的编码视频块的像素值和来自所述第二参考帧的编码视频块的像素值的平均值,确定第二复合运动块;
使用所述第二复合运动块生成第二预测块;以及
使用所述第二预测块对所述编码块进行解码。
12.根据权利要求7至11中的任一项所述的方法,还包括:
在确定所述编码块是否是通过加权从所述多个参考帧中的每个参考帧到所述编码视频帧的所述距离来被编码的之前,从所述比特流中解码所述一个或多个语法元素。
13.根据权利要求7至12中的任一项所述的方法,其中,在所述比特流内指示视频序列的编码视频帧的顺序,所述视频序列包括所述编码视频帧、所述第一参考帧和所述第二参考帧。
14.一种用于对编码视频帧的编码块进行解码的装置,所述装置包括:
处理器,所述处理器被配置为执行存储在非暂时性存储器中的指令以:
基于编码到包括所述编码视频帧的比特流的一个或多个语法元素,确定所述编码块是否是通过加权从多个参考帧中的每个参考帧到所述编码视频帧的距离来被编码的;
响应于确定所述编码块是通过加权从所述多个参考帧中的每个参考帧到所述编码视频帧的所述距离来被编码的,通过使用一个或多个量化加权系数来加权从第一参考帧到所述编码视频帧的第一距离和从第二参考帧到所述编码视频帧的第二距离以确定复合运动块;
使用所述复合运动块生成预测块;以及
使用所述预测块对所述编码块进行解码。
15.根据权利要求14所述的装置,其中,通过使用所述一个或多个量化加权系数来加权所述第一距离和所述第二距离以确定所述复合运动块的指令包括进行以下操作的指令:
通过将所述第一距离与所述第二距离进行比较,确定第一量化加权系数和第二量化加权系数,
其中,所述第一量化加权系数和所述第二量化加权系数是基于所述比较来被量化的,并且所述复合运动块是使用所述第一量化加权系数和所述第二量化加权系数来确定的。
16.根据权利要求15所述的装置,其中,通过将所述第一距离与所述第二距离进行比较来确定所述第一量化加权系数和所述第二量化加权系数的指令包括进行以下操作的指令:
响应于确定所述第一距离大于所述第二距离,确定所述第一量化加权系数的值为1并且所述第二量化加权系数的值至少为1;或者
响应于确定所述第一距离小于所述第二距离,确定所述第一量化加权系数的值至少为
1并且所述第二量化加权系数的值为1。
17.根据权利要求15或16所述的设备,其中,所述指令包括进行以下操作的指令:
通过对来自所述第一参考帧的视频块的像素值应用所述第一量化加权系数来确定第一值;以及
通过对来自所述第一参考帧的所述视频块的像素值应用所述第二量化加权系数来确定第二值,
其中,所述复合运动块是通过将所述第一值和所述第二值之和除以所述第一量化加权系数和所述第二量化加权系数之和来确定的。
18.根据权利要求14至17中的任一项所述的装置,其中,所述复合运动块是第一复合运动块,并且所述预测块是第一预测块,其中,所述指令包括进行以下操作的指令:
响应于确定所述编码块并非是通过使用所述一个或多个量化加权系数对所述距离进行加权来被编码的,基于来自所述第一参考帧的编码视频块的像素值和来自所述第二参考帧的编码视频块的像素值的平均值,确定第二复合运动块;
使用所述第二复合运动块生成第二预测块;以及
使用所述第二预测块对所述编码块进行解码。
19.根据权利要求14至18中的任一项所述的装置,其中,所述指令包括进行以下操作的指令:
在确定所述编码块是否是通过加权从所述多个参考帧中的每个参考帧到所述编码视频帧的所述距离来被编码的之前,从所述比特流中解码所述一个或多个语法元素。
20.根据权利要求14至19中的任一项所述的装置,其中,在所述比特流内指示视频序列的编码视频帧的顺序,所述视频序列包括所述编码视频帧、所述第一参考帧和所述第二参考帧。
21.一种用于对视频帧的当前块进行编码的装置,所述装置包括:
处理器,所述处理器被配置为执行存储在非暂时性存储器中的指令以:
通过使用一个或多个量化加权系数来加权从第一参考帧到所述视频帧的距离以及从第二参考帧到所述视频帧的距离以确定第一复合运动块;
基于来自所述第一参考帧的视频块的像素值和来自所述第二参考帧的视频块的像素值的平均值,确定第二复合运动块;
选择所述第一复合运动块或所述第二复合运动块中的一个复合运动块;
使用所述第一复合运动块或所述第二复合运动块中的所选择的一个复合运动块来生成预测块;以及
使用所述预测块对所述当前块进行编码。

说明书全文

复合运动补偿的预测

背景技术

[0001] 数字视频流可以使用一系列或静止图像来表示视频。数字视频可用于各种应用,包括例如视频会议、高清视频娱乐、视频广告或用户生成的视频的共享。数字视频流可以包含大量数据,并且消耗用于处理、传输或存储视频数据的计算设备的大量计算或通信资源。已经提出了各种方法来减少视频流中的数据量,包括编码或解码技术。发明内容
[0002] 根据本公开的实施方式的一种用于对视频帧的当前进行编码的方法,所述方法包括:通过使用一个或多个量化的加权系数加权从第一参考帧到所述视频帧以及从第二参考帧到所述视频帧的距离来确定第一复合运动块。所述方法还包括:基于来自所述第一参考帧的视频块的像素值和来自所述第二参考帧的视频块的像素值的平均值,确定第二复合运动块;所述方法还包括:选择所述第一复合运动块或所述第二复合运动块中的一个。所述方法还包括:使用所述第一复合运动块或所述第二复合运动块中的所选择的一个来生成预测块。所述方法还包括:使用所述预测块对所述当前块进行编码。
[0003] 根据本公开的实施方式的一种用于对编码视频帧的编码块进行解码的方法,所述方法包括:基于编码到包括所述编码视频帧的比特流的一个或多个语法元素,确定所述编码块是否是通过加权从多个参考帧中的每一个到所述编码视频帧的距离来被编码的。所述方法还包括:响应于确定所述编码块是通过加权从所述多个参考帧中的每一个到所述编码视频帧的所述距离来被编码的,通过使用一个或多个量化加权系数加权从第一参考帧到所述编码视频帧的第一距离和从第二参考帧到所述编码视频帧的第二距离来确定复合运动块。所述方法还包括:使用所述复合运动块生成预测块。所述方法还包括:使用所述预测块对所述编码块进行解码。
[0004] 根据本公开的实施方式的一种用于解码编码视频帧的编码块的装置,所述装置包括:处理器,被配置为执行存储在非暂时性存储器中的指令。所述指令包括用于以下操作的指令:基于编码到包括所述编码视频帧的比特流的一个或多个语法元素,确定所述编码块是否是通过加权从多个参考帧中的每一个到所述编码视频帧的距离来被编码的。所述指令还包括用于以下操作的指令:响应于确定所述编码块是通过加权从所述多个参考帧中的每一个到所述编码视频帧的所述距离来被编码的,通过使用一个或多个量化加权系数加权从第一参考帧到所述编码视频帧的第一距离和从第二参考帧到所述编码视频帧的第二距离来确定复合运动块。所述指令还包括用于以下操作的指令:使用所述复合运动块生成预测块。所述指令包括用于以下操作的指令:使用所述预测块对所述编码块进行解码。
[0005] 根据本公开的实施方式的一种用于对视频帧的当前块进行编码的装置,所述装置包括:处理器,被配置为执行存储在非暂时性存储器中的指令。所述指令包括用于以下操作的指令:通过使用一个或多个量化加权系数加权从第一参考帧到所述视频帧以及从第二参考帧到所述视频帧的距离来确定第一复合运动块。所述指令还包括用于以下行为的指令:基于来自所述第一参考帧的视频块的像素值和来自所述第二参考帧的视频块的像素值的平均值,确定第二复合运动块;选择所述第一复合运动块或所述第二复合运动块中的一个;
使用所述第一复合运动块或所述第二复合运动块中的所选择的一个来生成预测块;以及,使用所述预测块对所述当前块进行编码。
[0006] 在以下对实施例、所附权利要求书和附图的详细描述中公开了本公开的这些和其他方面。

附图说明

[0007] 本文的描述参考了以下描述的附图,其中,贯穿若干视图,相似的附图标记指代相似的部分。
[0008] 图1是视频编码和解码系统的示意图。
[0009] 图2是可以实现发送站或接收站的计算设备的示例的框图
[0010] 图3是待编码并随后解码的典型视频流的图。
[0011] 图4是根据本公开的实施方式的编码器的框图。
[0012] 图5是根据本公开的实施方式的解码器的框图。
[0013] 图6是用于使用选定的预测方案对视频块进行编码的技术的示例的流程图
[0014] 图7是用于使用选择的预测方案对编码的块进行解码的技术的示例的流程图。
[0015] 图8是视频序列的帧之间的距离的示例的图示。
[0016] 图9是用于确定量化的加权系数的树的示例的图。

具体实施方式

[0017] 视频压缩方案可包括将相应的图像或视频帧分解成诸如视频块的更小部分,以及通过使用技术来限制其相应视频块所包括的信息来生成编码的比特流。可以对编码的比特流进行解码,以根据被限制的信息重新创建源图像。在某些情况下,复合运动预测可用于通过组合两个或更多个参考帧的运动信息来预测当前视频块中的运动。
[0018] 例如,当使用两个参考帧时,来自那些参考帧中的每个参考帧的块的像素值可以被识别并且被取平均以确定复合运动块以用于预测当前视频块的运动。但是,这种基于取平均的预测方案可能并不总是导致对视频序列进行编码或解码的最佳性能。例如,参考帧可能与包括当前视频块的视频帧不等距。结果,基于取平均的预测方案可能无法准确反映视频序列中的运动变化。
[0019] 本公开的实施方式包含通过选择最佳复合运动预测方案来编码或解码视频帧的视频块。可以通过使用一个或多个量化的加权系数加权从第一参考帧到视频帧以及从第二参考帧到视频帧的距离来确定第一复合运动块。可以基于来自第一参考帧的视频块的像素值和来自第二参考帧的视频块的像素值的平均值来确定第二复合运动块。选择第一复合运动块或第二复合运动块中的一个并用于生成预测块。替选地,编码到包括视频帧的比特流的数据可以用于确定使用哪个复合运动块来生成预测块。然后,使用预测块对视频帧的视频块进行编码或解码。
[0020] 例如,在编码操作期间,编码器可以例如基于其率失真值来选择基于距离的预测方案(例如,第一复合运动块)或基于取平均的预测方案(例如,第二复合运动块)中的一个,并且将指示该选择的数据编码至视频块被编码到的比特流。在解码操作期间,解码器可以对来自比特流的编码数据进行解码,以确定选择基于距离的预测方案或基于取平均的预测方案中的哪一个来用于解码编码块。如本文中所使用,复合运动块可指代基于两个或更多个其他像素值群组的组合来确定或以其他方式计算的像素值群组。
[0021] 使用帧旋转进行视频代码化的技术的更多细节在本文中描述,其中首先参考可以实现所述技术的系统。图1是视频编码和解码系统100的示意图。发送站102可以是例如具有诸如图2中所描述的硬件的内部配置的计算机。然而,发送站102的其他实施方式也是可能的。例如,发送站102的处理可以分布在多个设备间。
[0022] 网络104可以连接发送站102和接收站106,以对视频流进行编码和解码。具体地,可以在发送站102中对视频流进行编码,并且可以在接收站106中对编码的视频流进行解码。网络104可以是例如互联网。网络104还可以是局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、蜂窝电话网络或将视频流从发送站102传输到在本示例中的接收站106的任何其他手段。
[0023] 在一个示例中,接收站106可以是具有诸如在图2中描述的硬件的内部配置的计算机。然而,接收站106的其他合适的实施方式也是可能的。例如,接收站106的处理可以分布在多个设备之间。
[0024] 视频编码和解码系统100的其他实施方式也是可能的。例如,一个实施方式可以省略网络104。在另一个实施方式中,可以对视频流进行编码,然后将其存储以在以后的时间传输到接收站106或具有存储器的任何其他设备。在一个实施方式中,接收站106(例如,经由网络104、计算机总线和/或某种通信路径)接收编码的视频流,并存储该视频流以用于以后的解码。在一个示例实施方式中,实时传输协议(RTP)用于在网络104上传输编码的视频。在另一实施方式中,可以使用除RTP以外的传输协议,例如,基于超文本传输协议(HTTP)的视频流送协议。
[0025] 例如,当在视频会议系统中使用时,发送站102和/或接收站106可以包括如下所述的对视频流进行编码和解码的能。例如,接收站106可以是视频会议参与者,其从视频会议服务器(例如,发送站102)接收编码的视频比特流以解码和观看,并将他或她自己的视频比特流进一步编码并发送给视频会议服务器,以供其他参与者解码和查看。
[0026] 图2是可以实现发送站或接收站的计算设备200的示例的框图。例如,计算设备200可以实现图1的发送站102和接收站106之一或两者。计算设备200可以是包括多个计算设备的计算系统的形式,也可以是一个计算设备的形式,例如,移动电话、平板计算机、膝上型计算机、笔记本计算机和台式计算机等。
[0027] 计算设备200中的处理器202可以是常规的中央处理单元。替选地,处理器202可以是能够操纵或处理现在存在或以后发展的信息的另一类型的设备或多个设备。例如,虽然所公开的实施方式可以用所示的一个处理器(例如,处理器202)来实践,但是可以通过使用多个处理器来实现速度和效率上的优势。
[0028] 在一个实施方式中,计算设备200中的存储器204可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。然而,其他合适类型的存储设备可以用作存储器204。存储器204可以包括由处理器202使用总线212访问的代码和数据206。存储器204可以进一步包括操作系统208和应用程序210,应用程序210包括至少一个程序,该程序允许处理器202执行本文所述的技术。例如,应用程序210可以包括应用1至N,其还包括执行本文描述的技术的视频代码化应用。计算设备200还可以包括辅助存储214,其可以例如是用于移动计算设备的存储卡。由于视频通信会话可能包含大量信息,因此它们可以全部或部分存储在辅助存储214中,并根据需要将其加载到存储器204中以用于处理。
[0029] 计算设备200还可以包括一个或多个输出设备,例如显示器218。在一个示例中,显示器218可以是将显示器与可操作用于感测触摸输入的触敏元件组合的触敏显示器。显示器218可以经由总线212耦合到处理器202。除显示器218之外或作为显示器218的替选,可以提供允许用户编程或以其他方式使用计算设备200的其他输出设备。当输出设备是显示器或包括显示器时,则该显示器可以以各种方式实现,包括通过液晶显示器(LCD)、阴极射线管(CRT)显示器或发光二极管(LED)显示器(例如有机LED(OLED)显示器)实现。
[0030] 计算设备200还可以包括下述或与之通信:图像感测设备220(例如,相机);或者,现在存在或以后开发的任何其他图像感测设备220,其可以感测诸如操作该计算设备200的用户的图像之类的图像。图像感测设备220可以被定位成使得其指向操作计算设备200的用户。在一个示例中,图像感测设备220的位置和光轴可以被配置成使得视场包括与显示器218直接相邻并且从中可见显示器218的区域。
[0031] 计算设备200还可以包括下述或与之通信:声音感测设备222,例如,麦克或现在存在或以后开发的能够感测在计算设备200附近的声音的任何其他声音感测设备。声音感测设备222可以被定位成使得其指向操作计算设备200的用户,并且可以被配置成接收用户在用户操作计算设备200时发出的声音,例如语音或其他话语。
[0032] 虽然图2将计算设备200的处理器202和存储器204描绘为集成到一个单元中,但是可以利用其他配置。处理器202的操作可以分布在可以直接耦合或跨局域网或其他网络耦合的多个机器(其中,个体机器可以具有一个或多个处理器)上。存储器204可以分布在诸如基于网络的存储器或执行计算设备200的操作的多台机器中的存储器之类的多台机器上。虽然在这里被描述为一条总线,但是计算设备200的总线212可以由多条总线组成。此外,辅助存储214可以直接耦合到计算设备200的其他组件,或者可以经由网络被访问,并且可以包括诸如存储卡的集成单元或诸如多个存储卡的多个单元。因此,可以以多种配置来实现计算设备200。
[0033] 图3是要被编码并且随后被解码的视频流300的示例的图。视频流300包括视频序列302。在下一层级,视频序列302包括多个相邻帧304。虽然将三个帧描绘为相邻帧304,但是视频序列302可以包括任意数目的相邻帧304。然后,可以将相邻帧304进一步细分为单个帧,例如,帧306。在下一级别,可以将帧306划分为一系列平面或分段308。例如,分段308可以是允许并行处理的帧的子集。分段308也可以是可以将视频数据分离成分开的颜色的帧的子集。例如,彩色视频数据的帧306可以包括亮度平面和两个色度平面。可以以不同的分辨率对分段308进行采样
[0034] 不管帧306是否被划分为分段308,帧306都可以进一步细分为块310,其可以包含与例如帧306中的16x16像素相对应的数据。还可以布置块310以包括来自像素数据的一个或多个分段308的数据。块310还可以具有任何其他合适的尺寸,例如4x4像素、8x8像素、16x8像素、8x16像素、16x16像素或更大。除非另有说明,否则在本文中可互换使用术语块和宏块。
[0035] 图4是根据本公开的实施方式的编码器400的框图。如上所述,编码器400可以在发送站102中实现,例如通过提供存储在诸如存储器204的存储器中的计算机软件程序来实现。计算机软件程序可以包括机器指令,该机器指令当由诸如处理器202之类的处理器执行时使发送站102以图4中描述的方式编码视频数据。编码器400还可以被实现为例如包括在发送站102中的专用硬件。在一个特别可取的实施方式中,编码器400是硬件编码器。
[0036] 编码器400具有以下级以在前向路径(由实线连接线示出)中执行各种功能,以使用视频流300作为输入来产生编码或压缩比特流420:帧内/帧间预测级402、变换级404、量化级406和熵编码级408。编码器400还可包括重构路径(由虚线连接线示出),以重构用于对未来块进行编码的帧。在图4中,编码器400具有以下级以执行在重构路径中的各种功能:去量化级410、逆变换级412、重构级414和环路滤波级416。编码器400的其他结构变体可以用于对视频流300进行编码。
[0037] 当呈现视频流300以进行编码时,可以以块为单位处理相应的相邻帧304,例如帧306。在帧内/帧间预测级402,可以使用帧内预测或帧间预测对相应的块进行编码。无论如何,都可以形成预测块。在帧内预测的情况下,可以由当前帧中的先前已编码和重构的样本形成预测块。在帧间预测的情况下,可以由一个或多个先前构造的参考帧中的样本形成预测块。
[0038] 接着,可在帧内/帧间预测级402处从当前块减去预测块以产生残差块(也称为残差)。变换级404使用基于块的变换在例如频域中将残差变换为变换系数。量化级406使用量化器值或量化平将所述变换系数转换为离散量子值,其被称为量化变换系数。例如,可以将变换系数除以量化器值并截断。
[0039] 然后,由熵编码级408对经量化的变换系数进行熵编码。熵编码的系数以及用于解码块的其他信息(其可以包括例如语法元素,诸如用于指示所使用的预测的类型、变换类型、运动矢量或量化器值等的语法元素)然后被输出到压缩比特流420。可以使用各种技术来格式化压缩比特流420,例如可变长度代码化(VLC)或算术编码。压缩比特流420也可以被称为编码视频流或编码视频比特流,并且将在本文中可互换使用这些术语。
[0040] 重构路径(由虚线连接线示出)可用于确保编码器400和解码器500(以下将参照图5进行描述)使用相同的参考帧来解码压缩比特流420。重构路径执行与在解码过程期间发生的功能(下面关于图5描述的)类似的功能,包括在去量化级410处对量化的变换系数进行去量化以及在逆变换级412处对经去量化的变换系数进行逆变换以产生推导残差块(也称为推导残差)。在重构级414中,在帧内/帧间预测级402所预测的预测块可以添加到推导残差以创建重构的块。可以将环路滤波级416应用于重构的块,以减少诸如构块伪像的失真。
[0041] 编码器400的其他变型可以用于编码压缩比特流420。在一些实施方式中,基于非变换的编码器可以针对某些块或帧直接量化残差信号,而无需变换级404。在一些实施方式中,编码器可以具有在公共级中组合的量化级406和去量化级410。
[0042] 图5是根据本公开的实施方式的解码器500的框图。例如,通过提供存储在存储器204中的计算机软件程序,可以在接收站106中实现解码器500。该计算机软件程序可以包括机器指令,当由诸如处理器202的处理器执行时,该机器指令使得接收站106以图5中描述的方式解码视频数据。解码器500还可以以例如包括在发送站102或接收站106中的硬件来实现。
[0043] 类似于以上讨论的编码器400的重构路径,解码器500在一个示例中包括以下级以执行各种功能以从压缩比特流420产生输出视频流516:熵解码级502、去量化级504、逆变换级506、帧内/帧间预测级508、重构级510、环路滤波级512和去块滤波级514。解码器500的其他结构变型可以用于解码压缩比特流420。
[0044] 当呈现压缩比特流420以进行解码时,压缩比特流420内的数据元素可以由熵解码级502解码以产生一组量化的变换系数。逆量化级504对量化的变换系数进行逆量化(例如,通过将量化的变换系数乘以量化器值),逆变换级506对逆量化后的变换系数进行逆变换,以产生可以与由编码器400中的逆变换级412所创建的推导残差完全相同的推导残差。使用从压缩比特流420解码的报头信息,解码器500可以使用帧内/帧间预测级508来创建与在编码器400中(例如,在帧内/帧间预测级402处)创建的预测块的完全相同的预测块。
[0045] 在重构级510处,可以将预测块添加到推导残差以创建重构块。环路滤波级512可以应用于重构块以减少构块伪像。可以将其他滤波应用于重构块。在该示例中,去块滤波级514被应用于重构块以减少构块失真,并且结果被输出为输出视频流516。输出视频流516也可以被称为解码视频流,并且将在本文中互换使用这些术语。解码器500的其他变型可以用于解码压缩比特流420。在一些实施方式中,解码器500可以在没有去块滤波级514的情况下产生输出视频流516。
[0046] 现在参照图6和图7描述用于编码或解码视频块的技术。图6是用于使用选定的预测方案对视频块进行编码的方法或技术600的示例的流程图。图7是用于使用选择的预测方案对编码的块进行解码的方法或技术700的示例的流程图。技术600或技术700中之一或两者可被实现为例如可由诸如发送站102或接收站106之类的计算设备执行的软件程序。例如,该软件程序可包括机器可读指令,其可以存储在诸如存储器204或辅助存储214之类的存储器中,并且在由诸如处理器202之类的处理器执行时可以使计算设备执行技术600和/或技术700。可以使用专用硬件或固件来实现技术600或技术700中之一或两者。如上所述,一些计算设备可以具有多个存储器或处理器,并且可以使用多个处理器、存储器或两者来分布在技术600或技术700之一或两者中描述的操作。
[0047] 为了说明的简单,将技术600和技术700分别描绘和描述为一系列步骤或操作。然而,根据本公开的步骤或操作可以以各种顺序和/或同时发生。另外,可以使用本文未提出和描述的其他步骤或操作。此外,实现根据所公开主题的技术可能不需要所有示出的步骤或操作。
[0048] 首先参考图6,示出了用于使用选择的预测方案对视频块进行编码的技术600的流程图。在602,通过使用一个或多个量化的加权系数加权从第一参考帧到视频帧的距离以及从第二参考帧到视频帧的距离来确定第一复合运动块。第一参考帧和第二参考帧可以是过去的帧(例如,在显示顺序上出现在当前视频帧之前的帧)或将来的帧(例如,在显示顺序上出现在当前视频帧之后的帧)。例如,第一参考帧可以是过去帧,第二参考帧可以是将来帧。在另一个示例中,第一参考帧和第二参考帧都可以是过去的帧。在又一示例中,第一参考帧和第二参考帧都可以是将来的帧。
[0049] 确定第一复合运动块可以包括:通过比较从第一参考帧到视频帧的第一距离与从第二参考帧到视频帧的第二距离来确定第一量化加权系数和第二量化加权系数。第一距离和第二距离的比较值可以例如是第一距离和第二距离的绝对值。基于比较来对第一量化加权系数和第二量化加权系数进行量化,并且使用第一量化加权系数和第二量化加权系数来确定第一复合运动块。例如,如下面关于图9所描述的,第一量化加权系数和第二量化加权系数中的每一个可以被量化为1、2、3或4的值。在另一示例中,第一量化加权系数和第二量化加权系数可以被量化为表现第一距离和第二距离之间关系的其他值。
[0050] 通过将第一距离与第二距离进行比较来确定第一量化加权系数和第二量化加权系数可以包括确定第一距离是否大于或小于第二距离。响应于确定第一距离大于第二距离,可以确定第一量化加权系数具有值1,并且第二量化加权系数具有至少1的值。响应于确定第一距离小于第二距离,可以确定第一量化加权系数具有至少1的值,并且第二量化加权系数具有1的值。
[0051] 第一复合运动块可以例如被确定为CMB=((Ref1_MB*a))+(Ref2_MB*b))(a+b),其中,Ref1_MB是可用于预测当前视频块内的运动的第一参考帧的像素值的块,Ref2_MB是可用于预测当前视频块内的运动的第二参考帧的像素值的块,a是通过将第一量化加权系数应用于第一参考帧和当前视频帧之间的距离而确定的值,b是通过将第二量化加权系数应用于第二参考帧和当前视频帧之间的距离而确定的值。
[0052] 也就是说,可以通过对来自第一参考帧的视频块的像素值应用第一量化加权系数来确定第一值。可以通过对来自第二参考帧的视频块的像素值应用第二量化加权系数来确定第二值。然后可以通过将第一值和第二值之和除以第一量化加权系数和第二量化加权系数之和来确定第一复合运动块。
[0053] 在604处,基于来自第一参考帧的视频块的像素值和来自第二参考帧的视频块的像素值的平均值,确定第二复合运动块。例如,确定来自第一参考帧的视频块的像素值和来自第二参考帧的视频块的像素值的平均值可以包括对两个视频块的对应位置中的像素值求和,然后将那些求和后的像素值除以2。在另一示例中,确定来自第一参考帧的视频块的像素值和来自第二参考帧的视频块的像素值的平均值可以包括对来自第一参考帧或第二参考帧的视频块的全部或部分像素值进行加权,然后再确定其平均值。
[0054] 在606处,选择第一复合运动块或第二复合运动块中的一个。选择第一复合运动块或第二复合运动块中的一个包括:确定由于使用第一复合运动块和第二复合运动块中的每一个来预测当前块的运动而导致的率失真值。可以通过基于第一复合运动块和第二复合运动块执行率失真分析来确定那些率失真值。例如,可以为第一复合运动块确定第一率失真值,并且可以为第二复合运动块确定第二率失真值。然后选择第一复合运动块或第二复合运动块中的、导致率失真值中更低的率失真值的一个复合运动块。例如,执行率失真分析可以包括比较第一率失真值和第二率失真值。
[0055] 率失真值指的是平衡失真量(例如,视频质量的损失)与用于对块或其他视频分量进行代码化的率(例如,比特数)的比率。这样,选择使对视频块进行编码的率失真值最小化的预测方案来对当前块进行编码。例如,当用于第一复合运动块的率失真值(例如,基于距离的预测方案)高于用于所述第二复合运动块的率失真值(例如,基于取平均的预测方案)时,它可能反映出参考帧和当前视频帧之间的运动相对低。然而,当用于第一复合运动块的率失真值低于用于所述第二复合运动块的率失真值的情况下,可能反映了参考帧和当前视频帧之间的运动相对高。
[0056] 在608处,使用第一复合运动块或第二复合运动块中的所选择的一个来生成预测块。预测块可以包括这样的像素值,其指示根据第一复合运动块或第二复合运动块中的所选择的一个的、当前块的运动的预测。生成预测块可以包括:基于当前块与预测块之间的差来生成预测残差。例如,可以使用由图4所示的编码器400(例如,在帧内/帧间预测级402)执行的操作来生成预测残差。在610,使用预测块对当前块进行编码。例如,使用预测块对当前块进行编码可以包括:将预测残差变换、量化和熵编码到编码比特流(例如,图4所示的压缩比特流420)。
[0057] 在一些实施方式中,技术600包含:将指示对第一复合运动块或第二复合运动块的选择的一个或多个语法元素编码到当前块被编码到的比特流。举例来说,一个或多个语法元素可包含一比特。该比特的值可以指示与用于对当前块进行编码的运动矢量相关联的预测方案。例如,当使用第一复合运动块并因此使用基于距离的预测方案时,该比特的值可以为零。当使用第二复合运动块并因此使用基于取平均的预测方案时,该比特的值可以为1。一个或多个语法元素可以被编码到包括已编码的当前块的视频帧的帧报头。
[0058] 技术600可以包括使用多于两个参考帧。例如,当使用三个参考帧时,可以通过下述方式来确定第一复合运动块:使用第一量化加权系数加权在参考帧中的第一参考帧和当前视频帧之间的距离,使用第二量化加权系数加权在参考帧中的第二参考帧和当前视频帧之间的距离,并且使用第三量化加权系数加权在参考帧中的第三参考帧和当前视频帧之间的距离。
[0059] 例如,用于使用这三个参考帧预测当前视频块中运动的复合运动块可以确定为CMB=((Ref1_MB*(1/a))+(Ref2_MB*(1/b)))+(Ref3_MB*(1/c)))/((1/a)+(1/b)+(1/c)),其中,Ref1_MB是可用来预测当前视频块中的运动的第一参考帧的像素值块,Ref2_MB是可用于预测当前视频块中运动的第二参考帧的像素值的块,Ref3_MB是可用来预测当前视频块中运动的第三参考帧的像素值的块,a是通过将第一量化加权系数应用于第一参考帧与当前视频帧之间的距离所确定的值,b是通过将第二量化加权系数应用于第二参考帧与当前视频帧之间的距离所确定的值,c是通过将第三量化加权系数应用于第三参考帧与当前视频帧之间的距离所确定的值。
[0060] 技术600可以包括:更新与视频帧相关联的概率模型以指示基于距离的预测方案(例如,第一复合运动块)还是基于取平均的预测方案(例如,第二复合运动块)被选择来预测当前块的运动。例如,可以基于当前块的上相邻者块或当前块的左相邻者块中的一个或多个的上下文来确定当前块的预测方案的上下文,其中上下文指示被选择来用于编码这些相邻者块的预测方案。视频帧的给定块的上下文可以具有指示使用基于距离的预测方案的第一值或指示使用基于取平均的预测方案的第二值。可以更新概率模型以反映所使用的那些预测方案中的每一个的概率。
[0061] 接下来参考图7,示出了用于使用选择的预测方案对编码的块进行解码的技术700。在702,从包括编码视频帧的比特流中解码一个或多个语法元素,该编码视频帧包括编码块。可以例如从编码视频帧的帧报头中解码一个或多个语法元素。一个或多个语法元素可能已经被编码到编码比特流,以指示用于编码编码块的编码器在将其编码之前是选择了基于距离的预测方案还是基于取平均预测方案。
[0062] 在704,确定编码块是否通过加权从多个参考帧中的每个参考帧到编码视频帧的距离来被编码。可以基于从包括编码帧的比特流解码的一个或多个语法元素的一个或多个值来进行该确定。例如,解码的语法元素可以包括一比特。当该比特具有第一值(例如,0)时,可以确定编码块是通过加权从多个参考帧中的每一个到编码视频帧的距离来被编码的。但是,当该比特具有第二值(例如,1)时,可以确定该编码块并非通过加权从多个参考帧中的每一个到编码视频帧的距离来来被编码。
[0063] 在706处,响应于确定编码块已通过加权从多个参考帧中的每一个到编码视频帧的距离来被编码,通过使用一个或多个量化加权系数对从第一参考帧到编码视频帧的第一距离以及从第二参考帧到编码视频帧的第二距离加权来确定复合运动块。如上所述,第一参考帧和第二参考帧可以是过去的帧(例如,在显示顺序上出现在当前视频帧之前的帧)或将来的帧(例如,在显示顺序上出现在当前视频帧之后的帧)。
[0064] 可以在706处以与关于技术600所描述的用于确定第一复合运动块的实施方式中相同或相似的方式来确定复合运动块。然而,执行技术600的编码器接收指示视频序列的显示顺序的信息——该视频序列包括来自输入视频流的视频帧、第一参考帧和第二参考帧,而执行技术700的解码器不接收来自输入视频流的该信息。
[0065] 作为替代,可以在包括编码视频帧(以及例如,先前解码的一个或多个语法元素)的比特流中指示包括编码视频帧、第一参考帧和第二参考帧的视频序列的编码视频帧的顺序。例如,编码比特流可以包括指示编码到编码比特流的每个视频帧的帧索引的数据。那些帧索引可以本身或与其他数据(例如,分组标记数据或其他时间偏移数据等)结合被执行技术700的解码器使用来确定视频序列的显示顺序。
[0066] 替选地,在708处,响应于确定编码块并非通过使用一个或多个量化的加权系数对距离进行加权来进行编码,基于第一参考帧的编码视频块的像素值和第二参考帧的编码视频块的像素值的平均值来确定复合运动块。可以在708处以与关于技术600描述的用于确定第二复合运动块的实施方式中相同或相似的方式来确定复合运动块。
[0067] 在710处,使用在706处或在708处确定的复合运动块来生成预测块。如以上关于技术600所描述的,该预测块可以包括指示根据确定的复合运动块的、对编码块的运动的预测的像素值。生成预测块可包含基于编码块与预测块之间的差生成预测残差。例如,可以使用由图5所示的解码器500(例如,在帧内/帧间预测级508处)执行的操作来生成预测残差。在712,使用预测块对编码块进行解码。例如,使用预测块对编码块进行解码可以包括:基于预测残差来重构视频块;对重构的视频块进行滤波;以及,将滤波后的视频块输出至视频流(例如,图5所示的输出视频流516)。
[0068] 在一些实施方式中,技术700包括使用多于两个参考帧。例如,技术700可以使用与用于对编码块进行编码的编码器相同数目的参考帧来对编码块进行解码。上面关于技术600描述了使用多于两个参考帧的实施方式。
[0069] 技术700可以包括更新与编码视频帧相关联的概率模型,以指示与基于距离的预测方案相对应的复合运动块(例如,第一复合运动块)还是与基于取平均的预测方案相对应的复合运动块(例如,第二复合运动块)被选择用于预测编码块的运动。上面关于技术600描述了用于更新概率模型的实施方式。
[0070] 图8是视频序列的帧之间的距离的示例的图示。视频帧800包括要被编码或解码的视频块802。可以使用第一参考帧804和第二参考帧806对视频块802进行编码或解码。例如,可以将第一参考帧的视频块808的全部或部分像素值与第二参考帧的视频块810的全部或部分像素值组合。这些像素值的组合可以基于距离1 812以及基于距离2 814,距离1 812指示第一参考帧804和视频帧800之间的在显示顺序上的距离,距离2 814指示第二参考帧806和视频帧800之间的在显示顺序上的距离。
[0071] 在距离1 812和距离2 814相等的情况下,视频块808的像素值和视频块810的像素值可以相等地组合以预测视频块802中的运动。然而,距离1 812和距离2 814中的一个可能大于另一个。在这种情况下,两个参考帧804、806与视频帧800的距离越远,对视频块802的运动的总体预测可能具有减弱的影响。在所示示例中,距离2 814比距离1812大。这样,当将第一参考帧的视频块808和第二参考帧的视频块810的相应像素值组合以预测视频块802的运动时,应当向第一参考帧的视频块808的相应像素值给与比第二参考帧的视频块810的相应像素值更大的权重。
[0072] 图9是用于确定量化的加权系数的树900的示例的图。当使用如本公开的实施方式中所描述的将基于距离的预测方案用于复合运动预测时,确定如何加权来自每个参考帧的像素值有助于隐藏由那些参考帧中的每个带来的量化噪声。为了进一步减少量化噪声,施加到来自每个参考帧的像素值的权重是量化系数。可以基于那些参考帧中的每一个与包括要编码或解码的视频块的视频帧之间的距离之间的比较,确定施加到参考帧的像素值的每个群组上的量化加权系数。
[0073] 在所示的示例中,树900的每个叶都包括距离D1(例如,图8中所示的距离1 812)和距离D2(例如,图8中所示的距离2 814)的比较或用于使用来自第一参考帧和第二参考帧的像素值预测视频块的运动的一对量化的加权系数。如上所述,D1和D2的比较值可以例如是D1和D2的绝对值。
[0074] 在第一叶处,比较D1和D2以确定哪个更大。基于该比较,树900进一步将D1和D2的比率与不同值进行比较,以确定不同的八个可能的量化加权系数对中的一对,其中,每对包括针对第一参考帧的视频块的像素值施加的第一量化加权系数和针对第二参考帧的视频块的像素值施加的第二量化加权系数。
[0075] 例如,如果D1大于D2并且D1与D2的比率小于1.5,则第一量化加权系数为1,第二量化加权系数为1。如果D1大于D2并且比率D1与D2的比率大于或等于1.5且小于2.5,则第一量化加权系数为1,第二量化加权系数为2。如果D1大于D2并且D1与D2的比率大于或等于2.5且小于3.5,则第一量化加权系数为1,第二量化加权系数为3。但是,如果D1大于D2并且D1与D2的比率大于或等于3.5,则第一量化加权系数为1,第二量化加权系数为4。
[0076] 在另一个示例中,如果D2大于D1并且D2与D1的比率小于1.5,则第一量化加权系数为1,第二量化加权系数为1。如果D2大于D1并且D2与D1的比率大于或等于1.5且小于2.5,则第一量化加权系数为2,第二量化加权系数为1。如果D2大于D1并且D2与D1的比率大于或等于到2.5且小于3.5,则第一量化加权系数为3,第二量化加权系数为1。但是,如果D2大于D1并且D2与D1的比率大于或等于3.5,则第一量化加权系数为4,第二量化加权系数为1。
[0077] 因此,第一量化加权系数和第二量化加权系数的值表现了第一参考帧与当前视频帧之间的第一距离与第二参考帧与当前视频帧之间的第二距离之间的关系。例如,如果第一距离与第二距离的比率指示第一距离是第二距离的两倍,则第一量化加权系数的值为2,第二量化加权系数的值为1。在另一示例中,如果第一距离与第二距离之比指示第一距离是第二距离的四倍或更多倍,则第一量化加权系数将具有值1,而第二量化加权系数将具有值4。
[0078] 上面描述的编码和解码的方面示出了编码和解码技术的一些示例。然而,应当理解,如在权利要求中使用的那些术语,编码和解码可以表示压缩、解压缩、变换或数据的任何其他处理或改变。
[0079] 词语“示例”在本文中用来表示用作示例、实例或例示。本文中被描述为“示例”的任何方面或设计不必被解释为相对于其他方面或设计优选或有利。相反,使用“示例”一词旨在以具体方式呈现概念。如在本申请中使用的,术语“或”旨在表示包括性的“或”而不是排他性的“或”。也就是说,除非上下文另外指定或另外明确指出,否则陈述“X包括A或B”旨在表示其任何自然的包含性排列组合。也就是说,如果X包括A;X包括B;或X包括A和B,则在任何上述情况下均满足“X包括A或B”。另外,在本申请和所附权利要求书中使用的冠词“一”和“一个”通常应当被解释为意指“一个或多个”,除非上下文另外指出或明确指出是针对单数形式。此外,在整个本公开中,术语“实施方式”或术语“一个实施方式”的使用并不旨在表示相同的实施例或实施方式,除非如此描述。
[0080] 发送站102和/或接收站106的实施方式(以及存储在其上和/或由其(包括由编码器400和解码器500)执行的算法、方法、指令等,)可以以硬件、软件或其任何组合实现。硬件可以包括例如计算机、知识产权(IP)核心、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器数字信号处理器或任何其他合适的电路。在权利要求中,术语“处理器”应被理解为单独地或组合地包括任何前述硬件。可互换使用术语“信号”和“数据”。此外,发送站102和接收站106的部分不必一定以相同的方式实现。
[0081] 另外,在一方面,例如,可以使用具有计算机程序的通用计算机或通用处理器来实现发送站102或接收站106,该计算机程序在被执行时执行在此描述的任何相应方法、算法和/或指令。另外或替选地,例如,可以利用专用计算机/处理器,其可以包含用于执行本文所述的任何方法、算法或指令的其他硬件。
[0082] 发送站102和接收站106可以例如在视频会议系统中的计算机上实现。替选地,发送站102可以在服务器上实现,而接收站106可以在与服务器分开的设备(例如,手持通信设备)上实现。在这种情况下,发送站102可以使用编码器400将内容编码为编码视频信号,并将编码视频信号发送给通信设备。进而,通信设备然后可以使用解码器500对编码的视频信号进行解码。替选地,通信设备可以解码本地存储在通信设备上的内容,例如,未由发送站102发送的内容。其他合适的发送和接收实现方案是可用的。例如,接收站106可以是大体上固定的个人计算机,而不是便携式通信设备,和/或包括编码器400的设备也可以包括解码器500。
[0083] 此外,本公开的全部或部分实施方式可以采取可从例如计算机可用或计算机可读介质访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是例如可以有形地包含、存储、通信或传输程序以供任何处理器使用或与其结合使用的任何设备。介质可以是例如电子磁性、光学、电磁或半导体设备。也可获得其他合适的介质。
[0084] 已经描述了上述实施例、实施方式和方面,以便于容易理解本公开并且不限制本公开。相反,本公开意图覆盖包括在所附权利要求书的范围内的各种修改和等同布置,该范围应被赋予法律允许的最宽泛的解释,以涵盖所有这样的修改和等同布置。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈