一种运动矢量获取方法,装置,设备及计算机可读存储介质与流程

文档序号:32251675发布日期:2022-11-19 01:41阅读:37来源:国知局
一种运动矢量获取方法,装置,设备及计算机可读存储介质与流程
一种运动矢量获取方法,装置,设备及计算机可读存储介质
1.本技术是分案申请,原申请的申请号是201880087003.x,针对分案申请号是202010897427.1,原申请日是2018年05月16日,原申请的全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及视频编解码技术领域,尤其涉及一种运动矢量获取方法,装置,设备及计算机可读存储介质。


背景技术:

3.数字视频技术可广泛应用于各种装置中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、笔记本电脑、平板计算机、电子书阅读器、数字相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝或卫星无线电电话、视频电话会议装置、视频流式发射装置及其类似者。数字视频装置实施视频解码技术,例如在由mpeg-2、mpeg-4、itu-t h.263、itu-t h.264/mpeg-4第10部分先进视频解码(avc)、itu-t h.265(也被称作高效率视频解码(hevc))所定义的标准及这些标准的扩展中所描述的视频解码技术。数字视频装置可通过实施这些视频解码技术来更有效地发送、接收、编码、解码和/或存储数字视频信息。
4.视频压缩技术执行空间(图像内)预测和/或时间(图像间)预测,以减少或移除视频序列中固有的冗余信息。对于基于块的视频解码,可将视频块分割成视频块,视频块还可被称作树块、编码单元/解码单元(coding unit,cu)或编码节点/解码节点。使用位于同一图像中的相邻块中的参考样本的空间预测来编码图像的帧内解码(i)条带中的视频块。图像的帧间解码(p或b)条带中的视频块可使用位于同一图像中的相邻块中的参考样本的空间预测或位于其它参考图像中的参考样本的时间预测。图像可被称作帧,且参考图像可被称作参考帧。


技术实现要素:

5.本技术实施例提供了一种视频编解码的方法以及相关设备,主要涉及运动矢量的获取。在传统的帧间预测技术以及涉及运动估计的帧内预测技术中,运动矢量是一个关键的实现要素,用于确定待处理块的预测值,从而完成待处理块的重构。一般的,运动矢量由预测运动矢量和运动矢量差值构成,运动矢量差值为运动矢量和预测运动矢量的差值,在一些技术中,比如运动矢量合并模式(merge模式)中,不存在运动矢量差值,预测运动矢量被直接认为是运动矢量。预测运动矢量通常从与待处理块具有时域或空域相关性的在先编码块或解码块中获得,而待处理块的运动矢量通常会作为在后编码块或解码块的预测运动矢量。
6.但是,随着技术的发展,出现了与运动矢量更新相关的技术,确定待处理块的预测值的运动矢量不再直接取自预测运动矢量或者预测运动矢量与运动矢量差值的和(不妨把
这里的预测运动矢量或者预测运动矢量与运动矢量差值的和,称为初始运动矢量),而是取自初始运动矢量的更新值。具体的,待处理块获取初始运动矢量之后,首先对初始运动矢量进行更新,获得实际运动矢量,然后利用实际运动矢量获取待处理块的预测块,并且保存实际运动矢量进行在后编码块或解码块预测环节的使用。运动矢量更新技术的引入提高了预测的精准度,提高了编码的效率。但是与此同时,对于在后编码块或解码块来说,相比不进行运动矢量更新,执行预测步骤则需要等待前一个或前几个编码块或解码块的运动矢量更新完成之后,即确定了实际的运动矢量之后,才能进行,从而为不同块间的并行处理或者流水处理(pipe-line)引入了时延。
7.本技术的第一方面,提供了一种运动矢量的获取方法,包括:确定待处理块的参考块,所述参考块和所述待处理块具有预设的时域或空域相关性,所述参考块具有初始运动矢量和一个或多个预设的运动矢量偏移量,所述参考块的初始运动矢量基于所述参考块的预测运动矢量获得,所述参考块的预测块基于所述初始运动矢量和一个或多个预设的运动矢量偏移量获得;将所述参考块的初始运动矢量作为所述待处理块的预测运动矢量。
8.通过上述方式,采用更新前的初始运动矢量代替实际运动矢量,用于在后编码块或解码块的预测,在后编码块或解码块的预测不需要等到实际运动矢量更新完成之后就可以开始执行预测步骤,在保证了运动矢量更新带来的编码效率提升的同时,消除了处理时延。
9.在第一方面的第一种可行的实施方式中,所述参考块的初始运动矢量具体由如下方式获得:将所述参考块的预测运动矢量作为所述参考块的初始运动矢量;或者,将所述参考块的预测运动矢量和所述参考块的运动矢量差值相加,作为所述参考块的初始运动矢量。
10.在不同的帧间预测模式中,初始运动矢量可以取自预测运动矢量或者预测运动矢量与运动矢量差值得和,不同帧间预测模式合理的应用,带来了编码效率的提高。
11.在第一方面的第二种可行的实施方式中,所述参考块的预测块具体由如下方式获得:在所述参考块的参考帧中获取所述参考块的初始运动矢量指示的图像块,以作为所述参考块的临时预测块;将所述参考块的初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个实际运动矢量,其中,每个所述实际运动矢量指示一个搜索位置;在所述一个或多个实际运动矢量指示的搜索位置,获得一个或多个候选预测块,其中每个所述搜索位置对应一个所述候选预测块;从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述参考块的预测块。
12.该实施方式具体描述了一种运动矢量的更新方式,通过使用运动矢量更新,预测更为准确,提高了编码效率。
13.在第一方面的第三种可行的实施方式中,所述方法用于双向预测,所述参考帧包括第一向参考帧和第二向参考帧,所述初始运动矢量包括第一向初始运动矢量和第二向初始运动矢量,所述在所述参考块的参考帧中获取所述参考块的初始运动矢量指示的图像块,以作为所述参考块的临时预测块,包括:在所述参考块的第一向参考帧中获取所述参考块的第一向初始运动矢量指示的第一图像块;在所述参考块的第二向参考帧中获取所述参考块的第二向初始运动矢量指示的第二图像块;对所述第一图像块和所述第二图像块进行加权,以获得所述参考块的临时预测块。
14.该实施方式具体描述了在双向预测中一种运动矢量的更新方式,通过使用运动矢量更新,预测更为准确,提高了编码效率。
15.在第一方面的第四种可行的实施方式中,还包括:当所述实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的实际运动矢量的运动矢量分辨率为预设像素精度。
16.该实施方式保证了实际运动矢量的运动矢量分辨率为预设像素精度,降低了由于运动矢量分辨率不同所带来的计算复杂度。应理解的是,当不采用使用更新前的初始运动矢量代替实际运动矢量用于在后编码块或解码块的预测的方法时,单独采用本实施方式,由于降低了运动矢量更新的复杂度,也可以减少时延。
17.在第一方面的第五种可行的实施方式中,所述从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述参考块的预测块,包括:从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块对应的实际运动矢量;当所述被选的实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述被选的实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的被选的实际运动矢量的运动矢量分辨率为预设像素精度;确定所述处理后的被选的实际运动矢量指示的位置所对应的预测块为所述参考块的预测块。
18.该实施方式同样保证了实际运动矢量的运动矢量分辨率为预设像素精度,降低了由于运动矢量分辨率不同所带来的计算复杂度。应理解的是,当不采用使用更新前的初始运动矢量代替实际运动矢量用于在后编码块或解码块的预测的方法时,单独采用本实施方式,由于降低了运动矢量更新的复杂度,也可以减少时延。
19.在第一方面的第六种可行的实施方式中,所述预设像素精度为整像素精度,或二分之一像素精度,或四分之一像素精度,或八分之一像素精度。
20.在第一方面的第七种可行的实施方式中,还包括:将所述待处理块的预测运动矢量作为所述待处理块的初始运动矢量。
21.在第一方面的第八种可行的实施方式中,还包括:将所述待处理块的预测运动矢量和所述待处理块的运动矢量差值相加,以作为所述待处理块的初始运动矢量。
22.在第一方面的第九种可行的实施方式中,所述方法用于视频解码,所述待处理块的运动矢量差值通过解析码流中的第一标识信息获得。
23.在不同的帧间预测模式中,初始运动矢量可以取自预测运动矢量或者预测运动矢量与运动矢量差值得和,不同帧间预测模式合理的应用,带来了编码效率的提高。
24.在第一方面的第十种可行的实施方式中,所述方法用于视频解码,所述确定待处理块的参考块,包括:解析码流,获得第二标识信息;根据所述第二标识信息,确定所述待处理块的参考块。
25.在第一方面的第十一种可行的实施方式中,所述方法用于视频编码,所述确定待处理块的参考块,包括:从所述待处理块的一个或多个候选参考块中,选择一个作为所述待处理块的参考块时率失真代价值最小的候选参考块,作为所述待处理块的参考块。
26.参考块是与待处理块具有空域或时域相关性的视频图像块,比如可以是空域上的相邻块或者时域上的对应块(co-located),采用参考块的运动矢量来预测待处理块的运动矢量,提高了运动矢量的编码效率。
27.本技术的第二方面提供了一种运动矢量的获取装置,包括:确定模块,用于确定待处理块的参考块,所述参考块和所述待处理块具有预设的时域或空域相关性,所述参考块具有初始运动矢量和一个或多个预设的运动矢量偏移量,所述参考块的初始运动矢量基于所述参考块的预测运动矢量获得,所述参考块的预测块基于所述初始运动矢量和一个或多个预设的运动矢量偏移量获得;获取模块,用于将所述参考块的初始运动矢量作为所述待处理块的预测运动矢量。
28.在第二方面的第一种可行的实施方式中,所述获取模块还用于:将所述参考块的预测运动矢量作为所述参考块的初始运动矢量;或者,将所述参考块的预测运动矢量和所述参考块的运动矢量差值相加,作为所述参考块的初始运动矢量。
29.在第二方面的第二种可行的实施方式中,所述获取模块还用于:在所述参考块的参考帧中获取所述参考块的初始运动矢量指示的图像块,以作为所述参考块的临时预测块;将所述参考块的初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个实际运动矢量,其中,每个所述实际运动矢量指示一个搜索位置;在所述一个或多个实际运动矢量指示的搜索位置,获得一个或多个候选预测块,其中每个所述搜索位置对应一个所述候选预测块;从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述参考块的预测块。
30.在第二方面的第三种可行的实施方式中,所述装置用于双向预测,所述参考帧包括第一向参考帧和第二向参考帧,所述初始运动矢量包括第一向初始运动矢量和第二向初始运动矢量,所述获取模块具体用于:在所述参考块的第一向参考帧中获取所述参考块的第一向初始运动矢量指示的第一图像块;在所述参考块的第二向参考帧中获取所述参考块的第二向初始运动矢量指示的第二图像块;对所述第一图像块和所述第二图像块进行加权,以获得所述参考块的临时预测块。
31.在第二方面的第四种可行的实施方式中,所述装置还包括:舍入模块,用于当所述实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的实际运动矢量的运动矢量分辨率为预设像素精度。
32.在第二方面的第五种可行的实施方式中,所述获取模块具体用于:从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块对应的实际运动矢量;当所述被选的实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述被选的实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的被选的实际运动矢量的运动矢量分辨率为预设像素精度;确定所述处理后的被选的实际运动矢量指示的位置所对应的预测块为所述参考块的预测块。
33.在第二方面的第六种可行的实施方式中,所述预设像素精度为整像素精度,或二分之一像素精度,或四分之一像素精度,或八分之一像素精度。
34.在第二方面的第七种可行的实施方式中,所述获取模块具体用于:将所述待处理块的预测运动矢量作为所述待处理块的初始运动矢量。
35.在第二方面的第八种可行的实施方式中,所述获取模块具体用于:将所述待处理块的预测运动矢量和所述待处理块的运动矢量差值相加,以作为所述待处理块的初始运动矢量。
36.在第二方面的第九种可行的实施方式中,所述装置用于视频解码,所述待处理块
的运动矢量差值通过解析码流中的第一标识信息获得。
37.在第二方面的第十种可行的实施方式中,所述装置用于视频解码,所述确定模块具体用于:解析码流,获得第二标识信息;根据所述第二标识信息,确定所述待处理块的参考块。
38.在第二方面的第十一种可行的实施方式中,所述装置用于视频编码,所述确定模块具体用于:从所述待处理块的一个或多个候选参考块中,选择一个作为所述待处理块的参考块时率失真代价值最小的候选参考块,作为所述待处理块的参考块。
39.本技术的第三方面提供了一种运动矢量的获取方法,包括:确定待处理块的参考块,所述参考块和所述待处理块具有预设的时域或空域相关性;基于所述参考块,获取所述待处理块的初始运动矢量;基于所述待处理块的初始运动矢量和一个或多个预设的运动矢量偏移量,获得所述待处理块的预测块;将所述待处理块的初始运动矢量,作为处理顺序在所述待处理块之后的后续待处理块的预测运动矢量。
40.在第三方面的第一种可行的实施方式中,所述基于所述参考块,获取所述待处理块的初始运动矢量,包括:将所述参考块的初始运动矢量作为所述待处理块的初始运动矢量;或者,将所述参考块的初始运动矢量和所述待处理块的运动矢量差值相加,作为所述待处理块的初始运动矢量。
41.在第三方面的第二种可行的实施方式中,所述基于所述待处理块的初始运动矢量和一个或多个预设的运动矢量偏移量,获得所述待处理块的预测块,包括:在所述待处理块的参考帧中获取所述待处理块的初始运动矢量指示的图像块,以作为所述待处理块的临时预测块;将所述待处理块的初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个实际运动矢量,其中,每个所述实际运动矢量指示一个搜索位置;在所述一个或多个实际运动矢量指示的搜索位置,获得一个或多个候选预测块,其中每个所述搜索位置对应一个所述候选预测块;从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述待处理块的预测块。
42.在第三方面的第三种可行的实施方式中,所述方法用于双向预测,所述参考帧包括第一向参考帧和第二向参考帧,所述待处理块的初始运动矢量包括第一向初始运动矢量和第二向初始运动矢量,所述在所述待处理块的参考帧中获取所述待处理块的初始运动矢量指示的图像块,以作为所述待处理块的临时预测块,包括:在所述待处理块的第一向参考帧中获取所述待处理块的第一向初始运动矢量指示的第一图像块;在所述待处理块的第二向参考帧中获取所述待处理块的第二向初始运动矢量指示的第二图像块;对所述第一图像块和所述第二图像块进行加权,以获得所述待处理块的临时预测块。
43.在第三方面的第四种可行的实施方式中,还包括:当所述实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的实际运动矢量的运动矢量分辨率为预设像素精度。
44.在第三方面的第五种可行的实施方式中,所述从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述参考待处理块的预测块,包括:从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块对应的实际运动矢量;当所述被选的实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述被选的实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的被选的实际
运动矢量的运动矢量分辨率为预设像素精度;确定所述处理后的被选的实际运动矢量指示的位置所对应的预测块为所述待处理块的预测块。
45.在第三方面的第六种可行的实施方式中,所述预设像素精度为整像素精度,或二分之一像素精度,或四分之一像素精度,或八分之一像素精度。
46.在第三方面的第七种可行的实施方式中,还包括:将所述处理顺序在所述待处理块之后的后续待处理块的预测运动矢量作为所述处理顺序在所述待处理块之后的后续待处理块的初始运动矢量。
47.在第三方面的第八种可行的实施方式中,还包括:将所述处理顺序在所述待处理块之后的后续待处理块的预测运动矢量和所述待处理块的运动矢量差值相加,以作为所述处理顺序在所述待处理块之后的后续待处理块的初始运动矢量。
48.在第三方面的第九种可行的实施方式中,所述方法用于视频解码,所述处理顺序在所述待处理块之后的后续待处理块的运动矢量差值通过解析码流中的第一标识信息获得。
49.在第三方面的第十种可行的实施方式中,所述方法用于视频解码,所述确定待处理块的参考块,包括:解析码流,获得第二标识信息;根据所述第二标识信息,确定所述待处理块的参考块。
50.在第三方面的第十一种可行的实施方式中,所述方法用于视频编码,所述确定待处理块的参考块,包括:从所述待处理块的一个或多个候选参考块中,选择一个作为所述待处理块的参考块时率失真代价值最小的候选参考块,作为所述待处理块的参考块。
51.本技术的第四方面提供一种获取运动矢量的设备,该设备包括:设备可以是应用于编码侧,也可以是应用于解码侧。该设备包括处理器、存储器,所述处理器和存储器相连接(如通过总线相互连接),在可能的实施方式中,该设备还可包括收发器,收发器连接处理器和存储器,用于接收/发送数据。存储器用于存储程序代码和视频数据。处理器可用于读取所存储器中存储的程序代码,执行第一方面或第三方面所描述的方法。
52.本技术的第五方面提供一种视频编解码系统,该视频编解码系统包括源装置及目的地装置。源装置与目的地装置可进行通信连接。源装置产生经编码视频数据。因此,源装置可被称作视频编码装置或视频编码设备。目的地装置可解码由源装置产生的经编码视频数据。因此,目的地装置可被称作视频解码装置或视频解码设备。源装置及目的地装置可为视频编解码装置或视频编解码设备的实例。第一方面或第三方面所描述的方法会应用在该视频编解码装置或视频编解码设备。
53.本技术的第六方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第三方面所述的方法。
54.本技术的第七方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第三方面所述的方法。
55.应理解,本技术第二至七方面与本技术第一方面对应的实施例发明目的相同,技术特征相似,获得的有益技术效果也相同,不再赘述。
附图说明
56.图1为示例性的可通过配置以用于本技术实施例的一种视频编码及解码的系统框
图;
57.图2为示例性的可通过配置以用于本技术实施例的一种视频编码器的系统框图;
58.图3为示例性的可通过配置以用于本技术实施例的一种视频解码器的系统框图;
59.图4为示例性的可通过配置以用于本技术实施例的一种帧间预测模块的框图;
60.图5为示例性的一种合并预测模式的实施流程图;
61.图6为示例性的一种高级运动矢量预测模式的实施流程图;
62.图7为示例性的可通过配置以用于本技术实施例的一种由视频解码器执行的运动补偿的实施流程图;
63.图8为示例性的一种编码单元及与其关联的相邻位置图像块的示意图;
64.图9为示例性的一种构建候选预测运动矢量列表的实施流程图;
65.图10为示例性的一种将经过组合的候选运动矢量添加到合并模式候选预测运动矢量列表的实施示意图;
66.图11为示例性的一种将经过缩放的候选运动矢量添加到合并模式候选预测运动矢量列表的实施示意图;
67.图12为示例性的一种将零运动矢量添加到合并模式候选预测运动矢量列表的实施示意图;
68.图13为本技术实施例的一种视频编码中进行运动矢量更新方法的示意性流程图;
69.图14为本技术实施例的一种视频解码中进行运动矢量更新方法的示意性流程图;
70.图15为本技术实施例的一种运动矢量更新的示意性流程图;
71.图16为本技术实施例的一种运动矢量更新的示意性流程图;
72.图17为本技术实施例的一种运动矢量更新的示意性流程图;
73.图18为本技术实施例的一种运动矢量更新的示意性流程图;
74.图19为本技术实施例的一种视频编码中运动矢量获取方法的示意性流程图;
75.图20为本技术实施例的一种视频解码中运动矢量获取方法的示意性流程图;
76.图21为本技术实施例的一种视频解码中运动矢量获取装置的示意性框图;
77.图22为本技术实施例的一种视频编解码装置的示意性框图。
具体实施方式
78.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
79.图1为本技术实施例中视频编码及解码系统10的一种示意性框图。如图1中所展示,系统10包含源装置12,源装置12产生将在稍后时间由目的地装置14解码的经编码视频数据。源装置12及目的地装置14可包括广泛范围的装置中的任一者,包含桌上型计算机、笔记型计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手机、所谓的“智能”触控板、电视、摄影机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些应用中,源装置12及目的地装置14可经装备以用于无线通信。
80.目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个可行的实施方式中,链路16可包括使源装置12能够实时将经编码视频数据直接传输到目的地装置
14的通信媒体。可根据通信标准(例如,无线通信协议)调制经编码视频数据且将其传输到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频频谱或一个或多个物理传输线。通信媒体可形成基于包的网络(例如,局域网、广域网或因特网的全球网络)的部分。通信媒体可包含路由器、交换器、基站或可有用于促进从源装置12到目的地装置14的通信的任何其它装备。
81.替代地,可将经编码数据从输出接口22输出到存储装置24。类似地,可由输入接口从存储装置24存取经编码数据。存储装置24可包含多种分散式或本地存取的数据存储媒体中的任一者,例如,硬盘驱动器、蓝光光盘、dvd、cd-rom、快闪存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一可行的实施方式中,存储装置24可对应于文件服务器或可保持由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置24存取所存储视频数据。文件服务器可为能够存储经编码视频数据且将此经编码视频数据传输到目的地装置14的任何类型的服务器。可行的实施方式文件服务器包含网站服务器、文件传送协议服务器、网络附接存储装置或本地磁盘机。目的地装置14可经由包含因特网连接的任何标准数据连接存取经编码视频数据。此数据连接可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,缆线调制解调器等)或两者的组合。经编码视频数据从存储装置24的传输可为流式传输、下载传输或两者的组合。
82.本技术的技术不必限于无线应用或设定。技术可应用于视频解码以支持多种多媒体应用中的任一者,例如,空中电视广播、有线电视传输、卫星电视传输、流式传输视频传输(例如,经由因特网)、编码数字视频以用于存储于数据存储媒体上、解码存储于数据存储媒体上的数字视频或其它应用。在一些可行的实施方式中,系统10可经配置以支持单向或双向视频传输以支持例如视频流式传输、视频播放、视频广播和/或视频电话的应用。
83.在图1的可行的实施方式中,源装置12包含视频源18、视频编码器20及输出接口22。在一些应用中,输出接口22可包含调制器/解调制器(调制解调器)和/或传输器。在源装置12中,视频源18可包含例如以下各者的源:视频捕获装置(例如,摄像机)、含有先前捕获的视频的视频存档、用以从视频内容提供者接收视频的视频馈入接口,和/或用于产生计算机图形数据作为源视频的计算机图形系统,或这些源的组合。作为一种可行的实施方式,如果视频源18为摄像机,那么源装置12及目的装置14可形成所谓的摄影机电话或视频电话。本技术中所描述的技术可示例性地适用于视频解码,且可适用于无线和/或有线应用。
84.可由视频编码器20来编码所捕获、预捕获或计算机产生的视频。经编码视频数据可经由源装置12的输出接口22直接传输到目的地装置14。经编码视频数据也可(或替代地)存储到存储装置24上以供稍后由目的地装置14或其它装置存取以用于解码和/或播放。
85.目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些应用中,输入接口28可包含接收器和/或调制解调器。目的地装置14的输入接口28经由链路16接收经编码视频数据。经由链路16传达或提供于存储装置24上的经编码视频数据可包含由视频编码器20产生以供视频解码器30的视频解码器使用以解码视频数据的多种语法元素。这些语法元素可与在通信媒体上传输、存储于存储媒体上或存储于文件服务器上的经编码视频数据包含在一起。
86.显示装置32可与目的地装置14集成或在目的地装置14外部。在一些可行的实施方
式中,目的地装置14可包含集成显示装置且也经配置以与外部显示装置接口连接。在其它可行的实施方式中,目的地装置14可为显示装置。一般来说,显示装置32向用户显示经解码视频数据,且可包括多种显示装置中的任一者,例如液晶显示器、等离子显示器、有机发光二极管显示器或另一类型的显示装置。
87.视频编码器20及视频解码器30可根据例如目前在开发中的下一代视频编解码压缩标准(h.266)操作且可遵照h.266测试模型(jem)。替代地,视频编码器20及视频解码器30可根据例如itu-th.265标准,也称为高效率视频解码标准,或者,itu-th.264标准的其它专属或工业标准或这些标准的扩展而操作,itu-th.264标准替代地被称为mpeg-4第10部分,也称高级视频编码(advanced video coding,avc)。然而,本技术的技术不限于任何特定解码标准。视频压缩标准的其它可行的实施方式包含mpeg-2和itu-th.263。
88.尽管未在图1中展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当多路复用器-多路分用器(mux-demux)单元或其它硬件及软件以处置共同数据流或单独数据流中的音频及视频两者的编码。如果适用,那么在一些可行的实施方式中,mux-demux单元可遵照ituh.223多路复用器协议或例如用户数据报协议(udp)的其它协议。
89.视频编码器20及视频解码器30各自可实施为多种合适编码器电路中的任一者,例如,一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。在技术部分地以软件实施时,装置可将软件的指令存储于合适的非暂时性计算机可读媒体中且使用一个或多个处理器以硬件执行指令,以执行本技术的技术。视频编码器20及视频解码器30中的每一者可包含于一个或多个编码器或解码器中,其中的任一者可在相应装置中集成为组合式编码器/解码器(codec)的部分。
90.本技术示例性地可涉及视频编码器20将特定信息“用信号发送”到例如视频解码器30的另一装置。然而,应理解,视频编码器20可通过将特定语法元素与视频数据的各种经编码部分相关联来用信号发送信息。即,视频编码器20可通过将特定语法元素存储到视频数据的各种经编码部分的头信息来“用信号发送”数据。在一些应用中,这些语法元素可在通过视频解码器30接收及解码之前经编码及存储(例如,存储到存储系统34或文件服务器36)。因此,术语“用信号发送”示例性地可指语法或用于解码经压缩视频数据的其它数据的传达,而不管此传达是实时或近实时地发生或在时间跨度内发生,例如可在编码时将语法元素存储到媒体时发生,语法元素接着可在存储到此媒体之后的任何时间通过解码装置检索。
91.jct-vc开发了h.265(hevc)标准。hevc标准化基于称作hevc测试模型(hm)的视频解码装置的演进模型。h.265的最新标准文档可从http://www.itu.int/rec/t-rec-h.265获得,最新版本的标准文档为h.265(12/16),该标准文档以全文引用的方式并入本文中。hm假设视频解码装置相对于itu-th.264/avc的现有算法具有若干额外能力。例如,h.264提供9种帧内预测编码模式,而hm可提供多达35种帧内预测编码模式。
92.jvet致力于开发h.266标准。h.266标准化的过程基于称作h.266测试模型的视频解码装置的演进模型。h.266的算法描述可从http://phenix.int-evry.fr/jvet获得,其中最新的算法描述包含于jvet-g1001-v1中,该算法描述文档以全文引用的方式并入本文中。
同时,可从https://jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/获得jem测试模型的参考软件,同样以全文引用的方式并入本文中。
93.一般来说,hm的工作模型描述可将视频帧或图像划分成包含亮度及色度样本两者的树块或最大编码单元(largest coding unit,lcu)的序列,lcu也被称为ctu。树块具有与h.264标准的宏块类似的目的。条带包含按解码次序的数个连续树块。可将视频帧或图像分割成一个或多个条带。可根据四叉树将每一树块分裂成编码单元。例如,可将作为四叉树的根节点的树块分裂成四个子节点,且每一子节点可又为母节点且被分裂成另外四个子节点。作为四叉树的叶节点的最终不可分裂的子节点包括解码节点,例如,经解码视频块。与经解码码流相关联的语法数据可定义树块可分裂的最大次数,且也可定义解码节点的最小大小。
94.编码单元包含解码节点及预测单元(prediction unit,pu)以及与解码节点相关联的变换单元(transformunit,tu)。cu的大小对应于解码节点的大小且形状必须为正方形。cu的大小的范围可为8
×
8像素直到最大64
×
64像素或更大的树块的大小。每一cu可含有一个或多个pu及一个或多个tu。例如,与cu相关联的语法数据可描述将cu分割成一个或多个pu的情形。分割模式在cu是被跳过或经直接模式编码、帧内预测模式编码或帧间预测模式编码的情形之间可为不同的。pu可经分割成形状为非正方形。例如,与cu相关联的语法数据也可描述根据四叉树将cu分割成一个或多个tu的情形。tu的形状可为正方形或非正方形。
95.hevc标准允许根据tu进行变换,tu对于不同cu来说可为不同的。tu通常基于针对经分割lcu定义的给定cu内的pu的大小而设定大小,但情况可能并非总是如此。tu的大小通常与pu相同或小于pu。在一些可行的实施方式中,可使用称作“残余四叉树”(residual qualtree,rqt)的四叉树结构将对应于cu的残余样本再分成较小单元。rqt的叶节点可被称作tu。可变换与tu相关联的像素差值以产生变换系数,变换系数可被量化。
96.一般来说,pu包含与预测过程有关的数据。例如,在pu经帧内模式编码时,pu可包含描述pu的帧内预测模式的数据。作为另一可行的实施方式,在pu经帧间模式编码时,pu可包含界定pu的运动矢量的数据。例如,界定pu的运动矢量的数据可描述运动矢量的水平分量、运动矢量的垂直分量、运动矢量的分辨率(例如,四分之一像素精确度或八分之一像素精确度)、运动矢量所指向的参考图像,和/或运动矢量的参考图像列表(例如,列表0、列表1或列表c)。
97.一般来说,tu使用变换及量化过程。具有一个或多个pu的给定cu也可包含一个或多个tu。在预测之后,视频编码器20可计算对应于pu的残余值。残余值包括像素差值,像素差值可变换成变换系数、经量化且使用tu扫描以产生串行化变换系数以用于熵解码。本技术通常使用术语“视频块”来指cu的解码节点。在一些特定应用中,本技术也可使用术语“视频块”来指包含解码节点以及pu及tu的树块,例如,lcu或cu。
98.视频序列通常包含一系列视频帧或图像。图像群组(group of picture,gop)示例性地包括一系列、一个或多个视频图像。gop可在gop的头信息中、图像中的一者或多者的头信息中或在别处包含语法数据,语法数据描述包含于gop中的图像的数目。图像的每一条带可包含描述相应图像的编码模式的条带语法数据。视频编码器20通常对个别视频条带内的视频块进行操作以便编码视频数据。视频块可对应于cu内的解码节点。视频块可具有固定
或变化的大小,且可根据指定解码标准而在大小上不同。
99.作为一种可行的实施方式,hm支持各种pu大小的预测。假定特定cu的大小为2n
×
2n,hm支持2n
×
2n或n
×
n的pu大小的帧内预测,及2n
×
2n、2n
×
n、n
×
2n或n
×
n的对称pu大小的帧间预测。hm也支持2n
×
nu、2n
×
nd、nl
×
2n及nr
×
2n的pu大小的帧间预测的不对称分割。在不对称分割中,cu的一方向未分割,而另一方向分割成25%及75%。对应于25%区段的cu的部分由“n”后跟着“上(up)”、“下(down)”、“左(left)”或“右(right)”的指示来指示。因此,例如,“2n
×
nu”指水平分割的2n
×
2ncu,其中2n
×
0.5npu在上部且2n
×
1.5npu在底部。
100.在本技术中,“n
×
n”与“n乘n”可互换使用以指依照垂直维度及水平维度的视频块的像素尺寸,例如,16
×
16像素或16乘16像素。一般来说,16
×
16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样地,n
×
n块一股在垂直方向上具有n个像素,且在水平方向上具有n个像素,其中n表示非负整数值。可将块中的像素排列成行及列。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素。例如,块可包括n
×
m个像素,其中m未必等于n。
101.在使用cu的pu的帧内预测性或帧间预测性解码之后,视频编码器20可计算cu的tu的残余数据。pu可包括空间域(也称作像素域)中的像素数据,且tu可包括在将变换(例如,离散余弦变换(discrete cosine transform,dct)、整数变换、小波变换或概念上类似的变换)应用于残余视频数据之后变换域中的系数。残余数据可对应于未经编码图像的像素与对应于pu的预测值之间的像素差。视频编码器20可形成包含cu的残余数据的tu,且接着变换tu以产生cu的变换系数。
102.在任何变换以产生变换系数之后,视频编码器20可执行变换系数的量化。量化示例性地指对系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。例如,可在量化期间将n位值降值舍位到m位值,其中n大于m。
103.jem模型对视频图像的编码结构进行了进一步的改进,具体的,被称为“四叉树结合二叉树”(qtbt)的块编码结构被引入进来。qtbt结构摒弃了hevc中的cu,pu,tu等概念,支持更灵活的cu划分形状,一个cu可以正方形,也可以是长方形。一个ctu首先进行四叉树划分,该四叉树的叶节点进一步进行二叉树划分。同时,在二叉树划分中存在两种划分模式,对称水平分割和对称竖直分割。二叉树的叶节点被称为cu,jem的cu在预测和变换的过程中都不可以被进一步划分,也就是说jem的cu,pu,tu具有相同的块大小。在现阶段的jem中,ctu的最大尺寸为256
×
256亮度像素。
104.在一些可行的实施方式中,视频编码器20可利用预定义扫描次序来扫描经量化变换系数以产生可经熵编码的串行化向量。在其它可行的实施方式中,视频编码器20可执行自适应性扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可根据上下文自适应性可变长度解码(cavlc)、上下文自适应性二进制算术解码(cabac)、基于语法的上下文自适应性二进制算术解码(sbac)、概率区间分割熵(pipe)解码或其他熵解码方法来熵解码一维向量。视频编码器20也可熵编码与经编码视频数据相关联的语法元素以供视频解码器30用于解码视频数据。
105.为了执行cabac,视频编码器20可将上下文模型内的上下文指派给待传输的符号。
上下文可与符号的相邻值是否为非零有关。为了执行cavlc,视频编码器20可选择待传输的符号的可变长度码。可变长度解码(vlc)中的码字可经构建以使得相对较短码对应于可能性较大的符号,而较长码对应于可能性较小的符号。以这个方式,vlc的使用可相对于针对待传输的每一符号使用相等长度码字达成节省码率的目的。基于指派给符号的上下文可以确定cabac中的概率。
106.在本技术实施例中,视频编码器可执行帧间预测以减少图像之间的时间冗余。如前文所描述,根据不同视频压缩编解码标准的规定,cu可具有一个或多个预测单元pu。换句话说,多个pu可属于cu,或者pu和cu的尺寸相同。在本文中当cu和pu尺寸相同时,cu的分割模式为不分割,或者即为分割为一个pu,且统一使用pu进行表述。当视频编码器执行帧间预测时,视频编码器可用信号通知视频解码器用于pu的运动信息。示例性的,pu的运动信息可以包括:参考图像索引、运动矢量和预测方向标识。运动矢量可指示pu的图像块(也称视频块、像素块、像素集合等)与pu的参考块之间的位移。pu的参考块可为类似于pu的图像块的参考图像的一部分。参考块可定位于由参考图像索引和预测方向标识指示的参考图像中。
107.为了减少表示pu的运动信息所需要的编码比特的数目,视频编码器可根据合并预测模式或高级运动矢量预测模式过程产生用于pu中的每一者的候选预测运动矢量(motion vector,mv)列表。用于pu的候选预测运动矢量列表中的每一候选预测运动矢量可指示运动信息。由候选预测运动矢量列表中的一些候选预测运动矢量指示的运动信息可基于其它pu的运动信息。如果候选预测运动矢量指示指定空间候选预测运动矢量位置或时间候选预测运动矢量位置中的一者的运动信息,则本技术可将所述候选预测运动矢量称作“原始”候选预测运动矢量。举例来说,对于合并模式,在本文中也称为合并预测模式,可存在五个原始空间候选预测运动矢量位置和一个原始时间候选预测运动矢量位置。在一些实例中,视频编码器可通过组合来自不同原始候选预测运动矢量的部分运动矢量、修改原始候选预测运动矢量或仅插入零运动矢量作为候选预测运动矢量来产生额外候选预测运动矢量。这些额外候选预测运动矢量不被视为原始候选预测运动矢量且在本技术中可称作人工产生的候选预测运动矢量。
108.本技术的技术一般涉及用于在视频编码器处产生候选预测运动矢量列表的技术和用于在视频解码器处产生相同候选预测运动矢量列表的技术。视频编码器和视频解码器可通过实施用于构建候选预测运动矢量列表的相同技术来产生相同候选预测运动矢量列表。举例来说,视频编码器和视频解码器两者可构建具有相同数目的候选预测运动矢量(例如,五个候选预测运动矢量)的列表。视频编码器和解码器可首先考虑空间候选预测运动矢量(例如,同一图像中的相邻块),接着考虑时间候选预测运动矢量(例如,不同图像中的候选预测运动矢量),且最后可考虑人工产生的候选预测运动矢量直到将所要数目的候选预测运动矢量添加到列表为止。根据本技术的技术,可在候选预测运动矢量列表构建期间针对某些类型的候选预测运动矢量利用修剪操作以便从候选预测运动矢量列表移除重复,而对于其它类型的候选预测运动矢量,可能不使用修剪以便减小解码器复杂性。举例来说,对于空间候选预测运动矢量集合和对于时间候选预测运动矢量,可执行修剪操作以从候选预测运动矢量的列表排除具有重复运动信息的候选预测运动矢量。然而,当将人工产生的候选预测运动矢量添加到候选预测运动矢量的列表时,可在不对人工产生的候选预测运动矢量执行修剪操作的情况下添加人工产生的候选预测运动矢量。
109.在产生用于cu的pu的候选预测运动矢量列表之后,视频编码器可从候选预测运动矢量列表选择候选预测运动矢量且在码流中输出候选预测运动矢量索引。选定候选预测运动矢量可为具有产生最紧密地匹配正被解码的目标pu的预测子的运动矢量的候选预测运动矢量。候选预测运动矢量索引可指示在候选预测运动矢量列表中选定候选预测运动矢量的位置。视频编码器还可基于由pu的运动信息指示的参考块产生用于pu的预测性图像块。可基于由选定候选预测运动矢量指示的运动信息确定pu的运动信息。举例来说,在合并模式中,pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。在amvp模式中,pu的运动信息可基于pu的运动矢量差和由选定候选预测运动矢量指示的运动信息确定。视频编码器可基于cu的pu的预测性图像块和用于cu的原始图像块产生用于cu的一或多个残余图像块。视频编码器可接着编码一或多个残余图像块且在码流中输出一或多个残余图像块。
110.码流可包括识别pu的候选预测运动矢量列表中的选定候选预测运动矢量的数据。视频解码器可基于由pu的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动信息确定pu的运动信息。视频解码器可基于pu的运动信息识别用于pu的一或多个参考块。在识别pu的一或多个参考块之后,视频解码器可基于pu的一或多个参考块产生用于pu的预测性图像块。视频解码器可基于用于cu的pu的预测性图像块和用于cu的一或多个残余图像块来重构用于cu的图像块。
111.为了易于解释,本技术可将位置或图像块描述为与cu或pu具有各种空间关系。此描述可解释为是指位置或图像块和与cu或pu相关联的图像块具有各种空间关系。此外,本技术可将视频解码器当前在解码的pu称作当前pu,也称为当前待处理图像块。本技术可将视频解码器当前在解码的cu称作当前cu。本技术可将视频解码器当前在解码的图像称作当前图像。应理解,本技术同时适用于pu和cu具有相同尺寸,或者pu即为cu的情况,统一使用pu来表示。
112.如前文简短地描述,视频编码器20可使用帧间预测以产生用于cu的pu的预测性图像块和运动信息。在许多例子中,给定pu的运动信息可能与一或多个附近pu(即,其图像块在空间上或时间上在给定pu的图像块附近的pu)的运动信息相同或类似。因为附近pu经常具有类似运动信息,所以视频编码器20可参考附近pu的运动信息来编码给定pu的运动信息。参考附近pu的运动信息来编码给定pu的运动信息可减少码流中指示给定pu的运动信息所需要的编码比特的数目。
113.视频编码器20可以各种方式参考附近pu的运动信息来编码给定pu的运动信息。举例来说,视频编码器20可指示给定pu的运动信息与附近pu的运动信息相同。本技术可使用合并模式来指代指示给定pu的运动信息与附近pu的运动信息相同或可从附近pu的运动信息导出。在另一可行的实施方式中,视频编码器20可计算用于给定pu的运动矢量差(motion vector difference,mvd)。mvd指示给定pu的运动矢量与附近pu的运动矢量之间的差。视频编码器20可将mvd而非给定pu的运动矢量包括于给定pu的运动信息中。在码流中表示mvd比表示给定pu的运动矢量所需要的编码比特少。本技术可使用高级运动矢量预测模式指代通过使用mvd和识别候选者运动矢量的索引值来用信号通知解码端给定pu的运动信息。
114.为了使用合并模式或amvp模式来用信号通知解码端给定pu的运动信息,视频编码器20可产生用于给定pu的候选预测运动矢量列表。候选预测运动矢量列表可包括一或多个
候选预测运动矢量。用于给定pu的候选预测运动矢量列表中的候选预测运动矢量中的每一者可指定运动信息。由每一候选预测运动矢量指示的运动信息可包括运动矢量、参考图像索引和预测方向标识。候选预测运动矢量列表中的候选预测运动矢量可包括“原始”候选预测运动矢量,其中每一者指示不同于给定pu的pu内的指定候选预测运动矢量位置中的一者的运动信息。
115.在产生用于pu的候选预测运动矢量列表之后,视频编码器20可从用于pu的候选预测运动矢量列表选择候选预测运动矢量中的一者。举例来说,视频编码器可比较每一候选预测运动矢量与正被解码的pu且可选择具有所要码率-失真代价的候选预测运动矢量。视频编码器20可输出用于pu的候选预测运动矢量索引。候选预测运动矢量索引可识别选定候选预测运动矢量在候选预测运动矢量列表中的位置。
116.此外,视频编码器20可基于由pu的运动信息指示的参考块产生用于pu的预测性图像块。可基于由用于pu的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动信息确定pu的运动信息。举例来说,在合并模式中,pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。在amvp模式中,可基于用于pu的运动矢量差和由选定候选预测运动矢量指示的运动信息确定pu的运动信息。视频编码器20可如前文所描述处理用于pu的预测性图像块。
117.当视频解码器30接收到码流时,视频解码器30可产生用于cu的pu中的每一者的候选预测运动矢量列表。由视频解码器30针对pu产生的候选预测运动矢量列表可与由视频编码器20针对pu产生的候选预测运动矢量列表相同。从码流中解析得到的语法元素可指示在pu的候选预测运动矢量列表中选定候选预测运动矢量的位置。在产生用于pu的候选预测运动矢量列表之后,视频解码器30可基于由pu的运动信息指示的一或多个参考块产生用于pu的预测性图像块。视频解码器30可基于由用于pu的候选预测运动矢量列表中的选定候选预测运动矢量指示的运动信息确定pu的运动信息。视频解码器30可基于用于pu的预测性图像块和用于cu的残余图像块重构用于cu的图像块。
118.应理解,在一种可行的实施方式中,在解码端,候选预测运动矢量列表的构建与从码流中解析选定候选预测运动矢量在候选预测运动矢量列表中的位置是相互独立,可以任意先后或者并行进行的。
119.在另一种可行的实施方式中,在解码端,首先从码流中解析选定候选预测运动矢量在候选预测运动矢量列表中的位置,根据解析出来的位置构建候选预测运动矢量列表,在该实施方式中,不需要构建全部的候选预测运动矢量列表,只需要构建到该解析出来的位置处的候选预测运动矢量列表,即能够确定该位置出的候选预测运动矢量即可。举例来说,当解析码流得出选定的候选预测运动矢量为候选预测运动矢量列表中索引为3的候选预测运动矢量时,仅需要构建从索引为0到索引为3的候选预测运动矢量列表,即可确定索引为3的候选预测运动矢量,可以达到减小复杂度,提高解码效率的技术效果。
120.图2为本技术实施例中视频编码器20的一种示意性框图。视频编码器20可执行视频条带内的视频块的帧内解码和帧间解码。帧内解码依赖于空间预测来减少或去除给定视频帧或图像内的视频的空间冗余。帧间解码依赖于时间预测来减少或去除视频序列的邻近帧或图像内的视频的时间冗余。帧内模式(i模式)可指若干基于空间的压缩模式中的任一者。例如单向预测(p模式)或双向预测(b模式)等帧间模式可指若干基于时间的压缩模式中
的任一者。
121.在图2的可行的实施方式中,视频编码器20包含分割单元35、预测单元41、参考图像存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测单元41包含运动估计单元42、运动补偿单元44和帧内预测模块46。对于视频块重构建,视频编码器20也包含反量化单元58、反变换单元60和求和器62。也可包含解块滤波器(图2中未展示)以对块边界进行滤波从而从经重构建视频中去除块效应伪影。在需要时,解块滤波器将通常对求和器62的输出进行滤波。除了解块滤波器之外,也可使用额外环路滤波器(环路内或环路后)。
122.如图2中所展示,视频编码器20接收视频数据,且分割单元35将数据分割成视频块。此分割也可包含分割成条带、图像块或其它较大单元,以及(例如)根据lcu及cu的四叉树结构进行视频块分割。视频编码器20示例性地说明编码在待编码的视频条带内的视频块的组件。一般来说,条带可划分成多个视频块(且可能划分成称作图像块的视频块的集合)。
123.预测单元41可基于编码质量与代价计算结果(例如,码率-失真代价,rdcost,也称率失真代价)选择当前视频块的多个可能解码模式中的一者,例如多个帧内解码模式中的一者或多个帧间解码模式中的一者。预测单元41可将所得经帧内解码或经帧间解码块提供到求和器50以产生残余块数据且将所得经帧内解码或经帧间解码块提供到求和器62以重构建经编码块从而用作参考图像。
124.预测单元41内的运动估计单元42及运动补偿单元44执行相对于一个或多个参考图像中的一个或多个预测性块的当前视频块的帧间预测性解码以提供时间压缩。运动估计单元42可经配置以根据视频序列的预定模式确定视频条带的帧间预测模式。预定模式可将序列中的视频条带指定为p条带、b条带或gpb条带。运动估计单元42及运动补偿单元44可高度集成,但为概念目的而分别说明。通过运动估计单元42所执行的运动估计为产生估计视频块的运动矢量的过程。例如,运动矢量可指示当前视频帧或图像内的视频块的pu相对于参考图像内的预测性块的位移。
125.预测性块为依据像素差而被发现为紧密匹配待解码的视频块的pu的块,像素差可通过绝对差和(sad)、平方差和(ssd)或其它差度量确定。在一些可行的实施方式中,视频编码器20可计算存储于参考图像存储器64中的参考图像的子整数(sub-integer)像素位置的值。例如,视频编码器20可内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可执行相对于全像素位置及分数像素位置的运动搜索且输出具有分数像素精确度的运动矢量。
126.运动估计单元42通过比较pu的位置与参考图像的预测性块的位置而计算经帧间解码条带中的视频块的pu的运动矢量。可从第一参考图像列表(列表0)或第二参考图像列表(列表1)选择参考图像,列表中的每一者识别存储于参考图像存储器64中的一个或多个参考图像。运动估计单元42将经计算运动矢量发送到熵编码单元56及运动补偿单元44。
127.由运动补偿单元44执行的运动补偿可涉及基于由运动估计所确定的运动矢量提取或产生预测性块,可能执行到子像素精确度的内插。在接收当前视频块的pu的运动矢量后,运动补偿单元44即可在参考图像列表中的一者中定位运动矢量所指向的预测性块。视频编码器20通过从正经解码的当前视频块的像素值减去预测性块的像素值来形成残余视频块,从而形成像素差值。像素差值形成块的残余数据,且可包含亮度及色度差分量两者。求和器50表示执行此减法运算的一个或多个组件。运动补偿单元44也可产生与视频块及视
频条带相关联的语法元素以供视频解码器30用于解码视频条带的视频块。
128.如果pu位于b条带中,则含有pu的图像可与称作“列表0”和“列表1”的两个参考图像列表相关联。在一些可行的实施方式中,含有b条带的图像可与为列表0和列表1的组合的列表组合相关联。
129.此外,如果pu位于b条带中,则运动估计单元42可针对pu执行单向预测或双向预测,其中,在一些可行的实施方式中,双向预测为分别基于列表0和列表1的参考图像列表的图像进行的预测,在另一些可行的实施方式中,双向预测为分别基于当前帧在显示顺序上的已重建的未来帧和已重建的过去帧进行的预测。当运动估计单元42针对pu执行单向预测时,运动估计单元42可在列表0或列表1的参考图像中搜索用于pu的参考块。运动估计单元42可接着产生指示列表0或列表1中的含有参考块的参考图像的参考索引和指示pu与参考块之间的空间位移的运动矢量。运动估计单元42可输出参考索引、预测方向标识和运动矢量作为pu的运动信息。预测方向标识可指示参考索引指示列表0或列表1中的参考图像。运动补偿单元44可基于由pu的运动信息指示的参考块产生pu的预测性图像块。
130.当运动估计单元42针对pu执行双向预测时,运动估计单元42可在列表0中的参考图像中搜索用于pu的参考块且还可在列表1中的参考图像中搜索用于pu的另一参考块。运动估计单元42可接着产生指示列表0和列表1中的含有参考块的参考图像的参考索引和指示参考块与pu之间的空间位移的运动矢量。运动估计单元42可输出pu的参考索引和运动矢量作为pu的运动信息。运动补偿单元44可基于由pu的运动信息指示的参考块产生pu的预测性图像块。
131.在一些可行的实施方式中,运动估计单元42不向熵编码模块56输出用于pu的运动信息的完整集合。而是,运动估计单元42可参考另一pu的运动信息来用信号通知pu的运动信息。举例来说,运动估计单元42可确定pu的运动信息充分类似于相邻pu的运动信息。在此实施方式中,运动估计单元42可在与pu相关联的语法结构中指示一个指示值,所述指示值向视频解码器30指示pu具有与相邻pu相同的运动信息或具有可从相邻pu导出的运动信息。在另一实施方式中,运动估计单元42可在与pu相关联的语法结构中识别与相邻pu相关联的候选预测运动矢量和运动矢量差(mvd)。mvd指示pu的运动矢量和与相邻pu相关联的所指示候选预测运动矢量之间的差。视频解码器30可使用所指示候选预测运动矢量和mvd来确定pu的运动矢量。
132.如前文所描述,预测模块41可产生用于cu的每一pu的候选预测运动矢量列表。候选预测运动矢量列表中的一或多者可包括一或多个原始候选预测运动矢量和从原始候选预测运动矢量导出的一或多个额外候选预测运动矢量。
133.预测单元41内的帧内预测单元46可执行相对于在与待解码的当前块相同的图像或条带中的一个或多个相邻块的当前视频块的帧内预测性解码以提供空间压缩。因此,作为通过运动估计单元42及运动补偿单元44执行的帧间预测(如前文所描述)的替代,帧内预测单元46可帧内预测当前块。明确地说,帧内预测单元46可确定用以编码当前块的帧内预测模式。在一些可行的实施方式中,帧内预测单元46可(例如)在单独编码遍历期间使用各种帧内预测模式来编码当前块,且帧内预测单元46(或在一些可行的实施方式中,模式选择单元40)可从经测试模式选择使用的适当帧内预测模式。
134.在预测单元41经由帧间预测或帧内预测产生当前视频块的预测性块之后,视频编
码器20通过从当前视频块减去预测性块而形成残余视频块。残余块中的残余视频数据可包含于一个或多个tu中且应用于变换处理单元52。变换处理单元52使用例如离散余弦变换(dct)或概念上类似的变换的变换(例如,离散正弦变换dst)将残余视频数据变换成残余变换系数。变换处理单元52可将残余视频数据从像素域转换到变换域(例如,频域)。
135.变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小码率。量化过程可减少与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化的程度。在一些可行的实施方式中,量化单元54可接着执行包含经量化变换系数的矩阵的扫描。替代地,熵编码单元56可执行扫描。
136.在量化之后,熵编码单元56可熵编码经量化变换系数。例如,熵编码单元56可执行上下文自适应性可变长度解码(cavlc)、上下文自适应性二进制算术解码(cabac)、基于语法的上下文自适应性二进制算术解码(sbac)、概率区间分割熵(pipe)解码或另一熵编码方法或技术。熵编码单元56也可熵编码正经解码的当前视频条带的运动矢量及其它语法元素。在通过熵编码单元56进行熵编码之后,可将经编码码流传输到视频解码器30或存档以供稍后传输或由视频解码器30检索。
137.熵编码单元56可编码根据本技术的技术指示选定帧内预测模式的信息。视频编码器20可在可包含多个帧内预测模式索引表和多个经修改帧内预测模式索引表(也称作码字映射表)的所传输码流配置数据中包含各种块的编码上下文的定义及用于上下文中的每一者的mpm、帧内预测模式索引表和经修改帧内预测模式索引表的指示。
138.反量化单元58及反变换单元60分别应用反量化及反变换,以在像素域中重构建残余块以供稍后用作参考图像的参考块。运动补偿单元44可通过将残余块与参考图像列表中的一者内的参考图像中的一者的预测性块相加来计算参考块。运动补偿单元44也可将一个或多个内插滤波器应用于经重构建残余块以计算子整数像素值以用于运动估计。求和器62将经重构建残余块与通过运动补偿单元44所产生的经运动补偿的预测块相加以产生参考块以供存储于参考图像存储器64中。参考块可由运动估计单元42及运动补偿单元44用作参考块以帧间预测后续视频帧或图像中的块。
139.图3为本技术实施例中视频解码器30的一种示意性框图。在图3的可行的实施方式中,视频解码器30包含熵编码单元80、预测单元81、反量化单元86、反变换单元88、求和器90和参考图像存储器92。预测单元81包含运动补偿单元82和帧内预测单元84。在一些可行的实施方式中,视频解码器30可执行与关于来自图4的视频编码器20描述的编码流程的示例性地互逆的解码流程。
140.在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频条带的视频块及相关联的语法元素的经编码视频码流。视频解码器30的熵编码单元80熵解码码流以产生经量化系数、运动矢量及其它语法元素。熵编码单元80将运动矢量及其它语法元素转递到预测单元81。视频解码器30可在视频条带层级和/或视频块层级处接收语法元素。
141.在视频条带经解码为经帧内解码(i)条带时,预测单元81的帧内预测单元84可基于用信号发送的帧内预测模式及来自当前帧或图像的先前经解码块的数据而产生当前视频条带的视频块的预测数据。
142.在视频图像经解码为经帧间解码(例如,b、p或gpb)条带时,预测单元81的运动补偿单元82基于从熵编码单元80所接收的运动矢量及其它语法元素而产生当前视频图像的
视频块的预测性块。预测性块可从参考图像列表中的一者内的参考图像中的一者产生。视频解码器30可基于存储于参考图像存储器92中的参考图像使用默认构建技术来构建参考图像列表(列表0及列表1)。
143.运动补偿单元82通过解析运动矢量及其它语法元素来确定当前视频条带的视频块的预测信息,且使用预测信息来产生正经解码的当前视频块的预测性块。例如,运动补偿单元82使用所接收的语法元素中的一些来确定用以解码视频条带的视频块的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,b条带、p条带或gpb条带)、条带的参考图像列表中的一者或多者的构建信息、条带的每一经帧间编码视频块的运动矢量、条带的每一经帧间解码视频块的帧间预测状态及用以解码当前视频条带中的视频块的其它信息。
144.运动补偿单元82也可基于内插滤波器执行内插。运动补偿单元82可使用如由视频编码器20在视频块的编码期间所使用的内插滤波器来计算参考块的子整数像素的内插值。在此应用中,运动补偿单元82可从所接收的语法元素确定由视频编码器20使用的内插滤波器且使用内插滤波器来产生预测性块。
145.如果pu是使用帧间预测而编码,则运动补偿单元82可产生用于pu的候选预测运动矢量列表。码流中可包括识别选定候选预测运动矢量在pu的候选预测运动矢量列表中的位置的数据。在产生用于pu的候选预测运动矢量列表之后,运动补偿单元82可基于由pu的运动信息指示的一或多个参考块产生用于pu的预测性图像块。pu的参考块可在与所述pu不同的时间图像中。运动补偿单元82可基于由pu的候选预测运动矢量列表中的选定的运动信息确定pu的运动信息。
146.反量化单元86对码流中所提供且通过熵编码单元80所解码的经量化变换系数进行反量化(例如,解量化)。反量化过程可包含使用通过视频编码器20针对视频条带中的每一视频块所计算的量化参数确定量化的程度,且同样地确定应应用的反量化的程度。反变换单元88将反变换(例如,反dct、反整数变换或概念上类似的反变换过程)应用于变换系数以便在像素域中产生残余块。
147.在运动补偿单元82基于运动矢量及其它语法元素产生当前视频块的预测性块之后,视频解码器30通过将来自反变换单元88的残余块与通过运动补偿单元82产生的对应预测性块求和来形成经解码视频块。求和器90表示执行此求和运算的一个或多个组件。在需要时,也可应用解块滤波器来对经解码块进行滤波以便去除块效应伪影。其它环路滤波器(在解码环路中或在解码环路之后)也可用以使像素转变平滑,或以其它方式改进视频质量。给定帧或图像中的经解码视频块接着存储于参考图像存储器92中,参考图像存储器92存储供后续运动补偿所使用的参考图像。参考图像存储器92也存储供稍后呈现于例如图1的显示装置32的显示装置上的经解码视频。
148.如前文所注明,本技术的技术示例性地涉及帧间解码。应理解,本技术的技术可通过本技术中所描述的视频解码器中的任一者进行,视频解码器包含(例如)如关于图1到3所展示及描述的视频编码器20及视频解码器30。即,在一种可行的实施方式中,关于图2所描述的预测单元41可在视频数据的块的编码期间在执行帧间预测时执行下文中所描述的特定技术。在另一可行的实施方式中,关于图3所描述的预测单元81可在视频数据的块的解码期间在执行帧间预测时执行下文中所描述的特定技术。因此,对一般性“视频编码器”或“视频解码器”的引用可包含视频编码器20、视频解码器30或另一视频编码或编码单元。
149.图4为本技术实施例中帧间预测模块的一种示意性框图。帧间预测模块121,示例性的,可以包括运动估计单元42和运动补偿单元44。在不同的视频压缩编解码标准中,pu和cu的关系各有不同。帧间预测模块121可根据多个分割模式将当前cu分割为pu。举例来说,帧间预测模块121可根据2n
×
2n、2n
×
n、n
×
2n和n
×
n分割模式将当前cu分割为pu。在其他实施例中,当前cu即为当前pu,不作限定。
150.帧间预测模块121可对pu中的每一者执行整数运动估计(integer motion estimation,ime)且接着执行分数运动估计(fraction motion estimation,fme)。当帧间预测模块121对pu执行ime时,帧间预测模块121可在一个或多个参考图像中搜索用于pu的参考块。在找到用于pu的参考块之后,帧间预测模块121可产生以整数精度指示pu与用于pu的参考块之间的空间位移的运动矢量。当帧间预测模块121对pu执行fme时,帧间预测模块121可改进通过对pu执行ime而产生的运动矢量。通过对pu执行fme而产生的运动矢量可具有子整数精度(例如,1/2像素精度、1/4像素精度等)。在产生用于pu的运动矢量之后,帧间预测模块121可使用用于pu的运动矢量以产生用于pu的预测性图像块。
151.在帧间预测模块121使用amvp模式用信号通知解码端pu的运动信息的一些可行的实施方式中,帧间预测模块121可产生用于pu的候选预测运动矢量列表。候选预测运动矢量列表可包括一个或多个原始候选预测运动矢量和从原始候选预测运动矢量导出的一个或多个额外候选预测运动矢量。在产生用于pu的候选预测运动矢量列表之后,帧间预测模块121可从候选预测运动矢量列表选择候选预测运动矢量且产生用于pu的运动矢量差(mvd)。用于pu的mvd可指示由选定候选预测运动矢量指示的运动矢量与使用ime和fme针对pu产生的运动矢量之间的差。在这些可行的实施方式中,帧间预测模块121可输出识别选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引。帧间预测模块121还可输出pu的mvd。下文详细描述图6中,本技术实施例中高级运动矢量预测(amvp)模式的一种可行的实施方式。
152.除了通过对pu执行ime和fme来产生用于pu的运动信息外,帧间预测模块121还可对pu中的每一者执行合并(merge)操作。当帧间预测模块121对pu执行合并操作时,帧间预测模块121可产生用于pu的候选预测运动矢量列表。用于pu的候选预测运动矢量列表可包括一个或多个原始候选预测运动矢量和从原始候选预测运动矢量导出的一个或多个额外候选预测运动矢量。候选预测运动矢量列表中的原始候选预测运动矢量可包括一个或多个空间候选预测运动矢量和时间候选预测运动矢量。空间候选预测运动矢量可指示当前图像中的其它pu的运动信息。时间候选预测运动矢量可基于不同于当前图像的对应的pu的运动信息。时间候选预测运动矢量还可称作时间运动矢量预测(tmvp)。
153.在产生候选预测运动矢量列表之后,帧间预测模块121可从候选预测运动矢量列表选择候选预测运动矢量中的一个。帧间预测模块121可接着基于由pu的运动信息指示的参考块产生用于pu的预测性图像块。在合并模式中,pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。下文描述的图5说明merge示例性的流程图。
154.在基于ime和fme产生用于pu的预测性图像块和基于合并操作产生用于pu的预测性图像块之后,帧间预测模块121可选择通过fme操作产生的预测性图像块或者通过合并操作产生的预测性图像块。在一些可行的实施方式中,帧间预测模块121可基于通过fme操作产生的预测性图像块和通过合并操作产生的预测性图像块的码率-失真代价分析来选择用
于pu的预测性图像块。
155.在帧间预测模块121已选择通过根据分割模式中的每一者分割当前cu而产生的pu的预测性图像块之后(在一些实施方式中,编码树单元ctu划分为cu后,不会再进一步划分为更小的pu,此时pu等同于cu),帧间预测模块121可选择用于当前cu的分割模式。在一些实施方式中,帧间预测模块121可基于通过根据分割模式中的每一者分割当前cu而产生的pu的选定预测性图像块的码率-失真代价分析来选择用于当前cu的分割模式。帧间预测模块121可将与属于选定分割模式的pu相关联的预测性图像块输出到残差产生模块102。帧间预测模块121可将指示属于选定分割模式的pu的运动信息的语法元素输出到熵编码模块116。
156.在图4的示意图中,帧间预测模块121包括ime模块180a到180n(统称为“ime模块180”)、fme模块182a到182n(统称为“fme模块182”)、合并模块184a到184n(统称为“合并模块184”)、pu模式决策模块186a到186n(统称为“pu模式决策模块186”)和cu模式决策模块188(也可以包括执行从ctu到cu的模式决策过程)。
157.ime模块180、fme模块182和合并模块184可对当前cu的pu执行ime操作、fme操作和合并操作。图4的示意图中将帧间预测模块121说明为包括用于cu的每一分割模式的每一pu的单独ime模块180、fme模块182和合并模块184。在其它可行的实施方式中,帧间预测模块121不包括用于cu的每一分割模式的每一pu的单独ime模块180、fme模块182和合并模块184。
158.如图4的示意图中所说明,ime模块180a、fme模块182a和合并模块184a可对通过根据2n
×
2n分割模式分割cu而产生的pu执行ime操作、fme操作和合并操作。pu模式决策模块186a可选择由ime模块180a、fme模块182a和合并模块184a产生的预测性图像块中的一者。
159.ime模块180b、fme模块182b和合并模块184b可对通过根据n
×
2n分割模式分割cu而产生的左pu执行ime操作、fme操作和合并操作。pu模式决策模块186b可选择由ime模块180b、fme模块182b和合并模块184b产生的预测性图像块中的一者。
160.ime模块180c、fme模块182c和合并模块184c可对通过根据n
×
2n分割模式分割cu而产生的右pu执行ime操作、fme操作和合并操作。pu模式决策模块186c可选择由ime模块180c、fme模块182c和合并模块184c产生的预测性图像块中的一者。
161.ime模块180n、fme模块182n和合并模块184可对通过根据n
×
n分割模式分割cu而产生的右下pu执行ime操作、fme操作和合并操作。pu模式决策模块186n可选择由ime模块180n、fme模块182n和合并模块184n产生的预测性图像块中的一者。
162.pu模式决策模块186可基于多个可能预测性图像块的码率-失真代价分析选择预测性图像块,且选择针对给定解码情形提供最佳码率-失真代价的预测性图像块。示例性的,对于带宽受限的应用,pu模式决策模块186可偏向选择增加压缩比的预测性图像块,而对于其它应用,pu模式决策模块186可偏向选择增加经重建视频质量的预测性图像块。在pu模式决策模块186选择用于当前cu的pu的预测性图像块之后,cu模式决策模块188选择用于当前cu的分割模式且输出属于选定分割模式的pu的预测性图像块和运动信息。
163.图5为本技术实施例中合并模式的一种示例性流程图。视频编码器(例如视频编码器20)可执行合并操作200。在其它可行的实施方式中,视频编码器可执行不同于合并操作200的合并操作。举例来说,在其它可行的实施方式中,视频编码器可执行合并操作,其中视频编码器执行比合并操作200多、少的步骤或与合并操作200不同的步骤。在其它可行的实
施方式中,视频编码器可以不同次序或并行地执行合并操作200的步骤。编码器还可对以跳跃(skip)模式编码的pu执行合并操作200。
164.在视频编码器开始合并操作200之后,视频编码器可产生用于当前pu的候选预测运动矢量列表(202)。视频编码器可以各种方式产生用于当前pu的候选预测运动矢量列表。举例来说,视频编码器可根据下文关于图8到图12描述的实例技术中的一者产生用于当前pu的候选预测运动矢量列表。
165.如前文所述,用于当前pu的候选预测运动矢量列表可包括时间候选预测运动矢量。时间候选预测运动矢量可指示时域对应(co-located)的pu的运动信息。co-located的pu可在空间上与当前pu处于图像帧中的同一个位置,但在参考图像而非当前图像中。本技术可将包括时域对应的pu的参考图像称作相关参考图像。本技术可将相关参考图像的参考图像索引称作相关参考图像索引。如前文所描述,当前图像可与一个或多个参考图像列表(例如,列表0、列表1等)相关联。参考图像索引可通过指示在参考图像某一个参考图像列表中的位置来指示参考图像。在一些可行的实施方式中,当前图像可与组合参考图像列表相关联。
166.在一些视频编码器中,相关参考图像索引为涵盖与当前pu相关联的参考索引源位置的pu的参考图像索引。在这些视频编码器中,与当前pu相关联的参考索引源位置邻接于当前pu左方或邻接于当前pu上方。在本技术中,如果与pu相关联的图像块包括特定位置,则pu可“涵盖”所述特定位置。在这些视频编码器中,如果参考索引源位置不可用,则视频编码器可使用零的参考图像索引。
167.然而,可存在以下例子:与当前pu相关联的参考索引源位置在当前cu内。在这些例子中,如果pu在当前cu上方或左方,则涵盖与当前pu相关联的参考索引源位置的pu可被视为可用。然而,视频编码器可需要存取当前cu的另一pu的运动信息以便确定含有co-located pu的参考图像。因此,这些视频编码器可使用属于当前cu的pu的运动信息(即,参考图像索引)以产生用于当前pu的时间候选预测运动矢量。换句话说,这些视频编码器可使用属于当前cu的pu的运动信息产生时间候选预测运动矢量。因此,视频编码器可能不能并行地产生用于当前pu和涵盖与当前pu相关联的参考索引源位置的pu的候选预测运动矢量列表。
168.根据本技术的技术,视频编码器可在不参考任何其它pu的参考图像索引的情况下显式地设定相关参考图像索引。此可使得视频编码器能够并行地产生用于当前pu和当前cu的其它pu的候选预测运动矢量列表。因为视频编码器显式地设定相关参考图像索引,所以相关参考图像索引不基于当前cu的任何其它pu的运动信息。在视频编码器显式地设定相关参考图像索引的一些可行的实施方式中,视频编码器可始终将相关参考图像索引设定为固定的预定义预设参考图像索引(例如0)。以此方式,视频编码器可基于由预设参考图像索引指示的参考帧中的co-located pu的运动信息产生时间候选预测运动矢量,且可将时间候选预测运动矢量包括于当前cu的候选预测运动矢量列表中。
169.在视频编码器显式地设定相关参考图像索引的可行的实施方式中,视频编码器可显式地在语法结构(例如图像标头、条带标头、aps或另一语法结构)中用信号通知相关参考图像索引。在此可行的实施方式中,视频编码器可用信号通知解码端用于每一lcu(即ctu)、cu、pu、tu或其它类型的子块的相关参考图像索引。举例来说,视频编码器可用信号通知:用
于cu的每一pu的相关参考图像索引等于“1”。
170.在一些可行的实施方式中,相关参考图像索引可经隐式地而非显式地设定。在这些可行的实施方式中,视频编码器可使用由涵盖当前cu外部的位置的pu的参考图像索引指示的参考图像中的pu的运动信息产生用于当前cu的pu的候选预测运动矢量列表中的每一时间候选预测运动矢量,即使这些位置并不严格地邻近当前pu。
171.在产生用于当前pu的候选预测运动矢量列表之后,视频编码器可产生与候选预测运动矢量列表中的候选预测运动矢量相关联的预测性图像块(204)。视频编码器可通过基于所指示候选预测运动矢量的运动信息确定当前pu的运动信息和接着基于由当前pu的运动信息指示的一个或多个参考块产生预测性图像块来产生与候选预测运动矢量相关联的预测性图像块。视频编码器可接着从候选预测运动矢量列表选择候选预测运动矢量中的一者(206)。视频编码器可以各种方式选择候选预测运动矢量。举例来说,视频编码器可基于对与候选预测运动矢量相关联的预测性图像块的每一者的码率-失真代价分析来选择候选预测运动矢量中的一者。
172.在选择候选预测运动矢量之后,视频编码器可输出候选预测运动矢量索引(208)。候选预测运动矢量索引可指示在候选预测运动矢量列表中选定候选预测运动矢量的位置。在一些可行的实施方式中,候选预测运动矢量索引可表示为“merge_idx”。
173.图6为本技术实施例中高级运动矢量预测(amvp)模式的一种示例性流程图。视频编码器(例如视频编码器20)可执行amvp操作210。
174.在视频编码器开始amvp操作210之后,视频编码器可产生用于当前pu的一个或多个运动矢量(211)。视频编码器可执行整数运动估计和分数运动估计以产生用于当前pu的运动矢量。如前文所描述,当前图像可与两个参考图像列表(列表0和列表1)相关联。如果当前pu经单向预测,则视频编码器可产生用于当前pu的列表0运动矢量或列表1运动矢量。列表0运动矢量可指示当前pu的图像块与列表0中的参考图像中的参考块之间的空间位移。列表1运动矢量可指示当前pu的图像块与列表1中的参考图像中的参考块之间的空间位移。如果当前pu经双向预测,则视频编码器可产生用于当前pu的列表0运动矢量和列表1运动矢量。
175.在产生用于当前pu的一个或多个运动矢量之后,视频编码器可产生用于当前pu的预测性图像块(212)。视频编码器可基于由用于当前pu的一个或多个运动矢量指示的一个或多个参考块产生用于当前pu的预测性图像块。
176.另外,视频编码器可产生用于当前pu的候选预测运动矢量列表(213)。视频解码器可以各种方式产生用于当前pu的候选预测运动矢量列表。举例来说,视频编码器可根据下文关于图8到图12描述的可行的实施方式中的一个或多个产生用于当前pu的候选预测运动矢量列表。在一些可行的实施方式中,当视频编码器在amvp操作210中产生候选预测运动矢量列表时,候选预测运动矢量列表可限于两个候选预测运动矢量。相比而言,当视频编码器在合并操作中产生候选预测运动矢量列表时,候选预测运动矢量列表可包括更多候选预测运动矢量(例如,五个候选预测运动矢量)。
177.在产生用于当前pu的候选预测运动矢量列表之后,视频编码器可产生用于候选预测运动矢量列表中的每一候选预测运动矢量的一个或多个运动矢量差(mvd)(214)。视频编码器可通过确定由候选预测运动矢量指示的运动矢量与当前pu的对应运动矢量之间的差
来产生用于候选预测运动矢量的运动矢量差。
178.如果当前pu经单向预测,则视频编码器可产生用于每一候选预测运动矢量的单一mvd。如果当前pu经双向预测,则视频编码器可产生用于每一候选预测运动矢量的两个mvd。第一mvd可指示候选预测运动矢量的运动矢量与当前pu的列表0运动矢量之间的差。第二mvd可指示候选预测运动矢量的运动矢量与当前pu的列表1运动矢量之间的差。
179.视频编码器可从候选预测运动矢量列表选择候选预测运动矢量中的一个或多个(215)。视频编码器可以各种方式选择一个或多个候选预测运动矢量。举例来说,视频编码器可选择具有最小误差地匹配待编码的运动矢量的相关联运动矢量的候选预测运动矢量,此可减少表示用于候选预测运动矢量的运动矢量差所需的位数目。
180.在选择一个或多个候选预测运动矢量之后,视频编码器可输出用于当前pu的一个或多个参考图像索引、一个或多个候选预测运动矢量索引,和用于一个或多个选定候选预测运动矢量的一个或多个运动矢量差(216)。
181.在当前图像与两个参考图像列表(列表0和列表1)相关联且当前pu经单向预测的例子中,视频编码器可输出用于列表0的参考图像索引(“ref_idx_10”)或用于列表1的参考图像索引(“ref_idx_11”)。视频编码器还可输出指示用于当前pu的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_10_flag”)。或者,视频编码器可输出指示用于当前pu的列表1运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_11_flag”)。视频编码器还可输出用于当前pu的列表0运动矢量或列表1运动矢量的mvd。
182.在当前图像与两个参考图像列表(列表0和列表1)相关联且当前pu经双向预测的例子中,视频编码器可输出用于列表0的参考图像索引(“ref_idx_10”)和用于列表1的参考图像索引(“ref_idx_11”)。视频编码器还可输出指示用于当前pu的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_10_flag”)。另外,视频编码器可输出指示用于当前pu的列表1运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_11_flag”)。视频编码器还可输出用于当前pu的列表0运动矢量的mvd和用于当前pu的列表1运动矢量的mvd。
183.图7为本技术实施例中由视频解码器(例如视频解码器30)执行的运动补偿的一种示例性流程图。
184.当视频解码器执行运动补偿操作220时,视频解码器可接收用于当前pu的选定候选预测运动矢量的指示(222)。举例来说,视频解码器可接收指示选定候选预测运动矢量在当前pu的候选预测运动矢量列表内的位置的候选预测运动矢量索引。
185.如果当前pu的运动信息是使用amvp模式进行编码且当前pu经双向预测,则视频解码器可接收第一候选预测运动矢量索引和第二候选预测运动矢量索引。第一候选预测运动矢量索引指示用于当前pu的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置。第二候选预测运动矢量索引指示用于当前pu的列表1运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置。在一些可行的实施方式中,单一语法元素可用以识别两个候选预测运动矢量索引。
186.另外,视频解码器可产生用于当前pu的候选预测运动矢量列表(224)。视频解码器可以各种方式产生用于当前pu的此候选预测运动矢量列表。举例来说,视频解码器可使用
下文参看图8到图12描述的技术来产生用于当前pu的候选预测运动矢量列表。当视频解码器产生用于候选预测运动矢量列表的时间候选预测运动矢量时,视频解码器可显式地或隐式地设定识别包括co-located pu的参考图像的参考图像索引,如前文关于图5所描述。
187.在产生用于当前pu的候选预测运动矢量列表之后,视频解码器可基于由用于当前pu的候选预测运动矢量列表中的一个或多个选定候选预测运动矢量指示的运动信息确定当前pu的运动信息(225)。举例来说,如果当前pu的运动信息是使用合并模式而编码,则当前pu的运动信息可与由选定候选预测运动矢量指示的运动信息相同。如果当前pu的运动信息是使用amvp模式而编码,则视频解码器可使用由所述或所述选定候选预测运动矢量指示的一个或多个运动矢量和码流中指示的一个或多个mvd来重建当前pu的一个或多个运动矢量。当前pu的参考图像索引和预测方向标识可与所述一个或多个选定候选预测运动矢量的参考图像索引和预测方向标识相同。在确定当前pu的运动信息之后,视频解码器可基于由当前pu的运动信息指示的一个或多个参考块产生用于当前pu的预测性图像块(226)。
188.图8为本技术实施例中编码单元(cu)及与其关联的相邻位置图像块的一种示例性示意图,说明cu250和与cu250相关联的示意性的候选预测运动矢量位置252a到252e的示意图。本技术可将候选预测运动矢量位置252a到252e统称为候选预测运动矢量位置252。候选预测运动矢量位置252表示与cu250在同一图像中的空间候选预测运动矢量。候选预测运动矢量位置252a定位于cu250左方。候选预测运动矢量位置252b定位于cu250上方。候选预测运动矢量位置252c定位于cu250右上方。候选预测运动矢量位置252d定位于cu250左下方。候选预测运动矢量位置252e定位于cu250左上方。图8为用以提供帧间预测模块121和运动补偿模块162可产生候选预测运动矢量列表的方式的示意性实施方式。下文将参考帧间预测模块121解释实施方式,但应理解运动补偿模块162可实施相同技术,且因此产生相同候选预测运动矢量列表,在本技术实施例中,候选预测运动矢量位置所在的图像块被称为参考块,而且参考块包括空域参考块,比如上述252a到252e所在的图像块,也包括时域参考块,比如co-located块所在的图像块,或者co-located块的空间相邻图像块。
189.图9为本技术实施例中构建候选预测运动矢量列表的一种示例性流程图。将参考包括五个候选预测运动矢量的列表描述图9的技术,但本文中所描述的技术还可与具有其它大小的列表一起使用。五个候选预测运动矢量可各自具有索引(例如,0到4)。将参考一般视频解码器描述图9的技术。一般视频解码器示例性的可以为视频编码器(例如视频编码器20)或视频解码器(例如视频解码器30)。
190.为了根据图9的实施方式重建候选预测运动矢量列表,视频解码器首先考虑四个空间候选预测运动矢量(902)。四个空间候选预测运动矢量可以包括候选预测运动矢量位置252a、252b、252c和252d。四个空间候选预测运动矢量对应于与当前cu(例如,cu250)在同一图像中的四个pu的运动信息。视频解码器可以特定次序考虑列表中的四个空间候选预测运动矢量。举例来说,候选预测运动矢量位置252a可被第一个考虑。如果候选预测运动矢量位置252a可用,则候选预测运动矢量位置252a可指派到索引0。如果候选预测运动矢量位置252a不可用,则视频解码器可不将候选预测运动矢量位置252a包括于候选预测运动矢量列表中。候选预测运动矢量位置可出于各种理由而不可用。举例来说,如果候选预测运动矢量位置不在当前图像内,则候选预测运动矢量位置可能不可用。在另一可行的实施方式中,如果候选预测运动矢量位置经帧内预测,则候选预测运动矢量位置可能不可用。在另一可行
的实施方式中,如果候选预测运动矢量位置在与当前cu不同的条带中,则候选预测运动矢量位置可能不可用。
191.在考虑候选预测运动矢量位置252a之后,视频解码器可接下来考虑候选预测运动矢量位置252b。如果候选预测运动矢量位置252b可用且不同于候选预测运动矢量位置252a,则视频解码器可将候选预测运动矢量位置252b添加到候选预测运动矢量列表。在此特定上下文中,术语“相同”和“不同”指代与候选预测运动矢量位置相关联的运动信息。因此,如果两个候选预测运动矢量位置具有相同运动信息则被视为相同,且如果其具有不同运动信息则被视为不同。如果候选预测运动矢量位置252a不可用,则视频解码器可将候选预测运动矢量位置252b指派到索引0。如果候选预测运动矢量位置252a可用,则视频解码器可将候选预测运动矢量位置252指派到索引1。如果候选预测运动矢量位置252b不可用或与候选预测运动矢量位置252a相同,则视频解码器跳过候选预测运动矢量位置252b且不将其包括于候选预测运动矢量列表中。
192.候选预测运动矢量位置252c由视频解码器类似地考虑以供包括于列表中。如果候选预测运动矢量位置252c可用且不与候选预测运动矢量位置252b和252a相同,则视频解码器将候选预测运动矢量位置252c指派到下一可用索引。如果候选预测运动矢量位置252c不可用或并非不同于候选预测运动矢量位置252a和252b中的至少一者,则视频解码器不将候选预测运动矢量位置252c包括于候选预测运动矢量列表中。接下来,视频解码器考虑候选预测运动矢量位置252d。如果候选预测运动矢量位置252d可用且不与候选预测运动矢量位置252a、252b和252c相同,则视频解码器将候选预测运动矢量位置252d指派到下一可用索引。如果候选预测运动矢量位置252d不可用或并非不同于候选预测运动矢量位置252a、252b和252c中的至少一者,则视频解码器不将候选预测运动矢量位置252d包括于候选预测运动矢量列表
193.中。以上实施方式大体上描述示例性地考虑候选预测运动矢量252a到252d以供包括于候选
194.预测运动矢量列表中,但在一些实施方式中,可首先将所有候选预测运动矢量252a到252d添加到候选预测运动矢量列表,稍后从候选预测运动矢量列表移除重复。
195.在视频解码器考虑前四个空间候选预测运动矢量之后,候选预测运动矢量列表可能包括四个空间候选预测运动矢量或者该列表可能包括少于四个空间候选预测运动矢量。如果列表包括四个空间候选预测运动矢量(904,是),则视频解码器考虑时间候选预测运动矢量(906)。时间候选预测运动矢量可对应于不同于当前图像的图像的co-located pu的运动信息。如果时间候选预测运动矢量可用且不同于前四个空间候选预测运动矢量,则视频解码器将时间候选预测运动矢量指派到索引4。如果时间候选预测运动矢量不可用或与前四个空间候选预测运动矢量中的一者相同,则视频解码器不将所述时间候选预测运动矢量包括于候选预测运动矢量列表中。因此,在视频解码器考虑时间候选预测运动矢量(906)之后,候选预测运动矢量列表可能包括五个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量和框904处考虑的时间候选预测运动矢量)或可能包括四个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量)。如果候选预测运动矢量列表包括五个候选预测运动矢量(908,是),则视频解码器完成构建列表。
196.如果候选预测运动矢量列表包括四个候选预测运动矢量(908,否),则视频解码器
可考虑第五空间候选预测运动矢量(910)。第五空间候选预测运动矢量可(例如)对应于候选预测运动矢量位置252e。如果位置252e处的候选预测运动矢量可用且不同于位置252a、252b、252c和252d处的候选预测运动矢量,则视频解码器可将第五空间候选预测运动矢量添加到候选预测运动矢量列表,第五空间候选预测运动矢量经指派到索引4。如果位置252e处的候选预测运动矢量不可用或并非不同于候选预测运动矢量位置252a、252b、252c和252d处的候选预测运动矢量,则视频解码器可不将位置252处的候选预测运动矢量包括于候选预测运动矢量列表中。因此在考虑第五空间候选预测运动矢量(910)之后,列表可能包括五个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量和框910处考虑的第五空间候选预测运动矢量)或可能包括四个候选预测运动矢量(框902处考虑的前四个空间候选预测运动矢量)。
197.如果候选预测运动矢量列表包括五个候选预测运动矢量(912,是),则视频解码器完成产生候选预测运动矢量列表。如果候选预测运动矢量列表包括四个候选预测运动矢量(912,否),则视频解码器添加人工产生的候选预测运动矢量(914)直到列表包括五个候选预测运动矢量(916,是)为止。
198.如果在视频解码器考虑前四个空间候选预测运动矢量之后,列表包括少于四个空间候选预测运动矢量(904,否),则视频解码器可考虑第五空间候选预测运动矢量(918)。第五空间候选预测运动矢量可(例如)对应于候选预测运动矢量位置252e。如果位置252e处的候选预测运动矢量可用且不同于已包括于候选预测运动矢量列表中的候选预测运动矢量,则视频解码器可将第五空间候选预测运动矢量添加到候选预测运动矢量列表,第五空间候选预测运动矢量经指派到下一可用索引。如果位置252e处的候选预测运动矢量不可用或并非不同于已包括于候选预测运动矢量列表中的候选预测运动矢量中的一者,则视频解码器可不将位置252e处的候选预测运动矢量包括于候选预测运动矢量列表中。视频解码器可接着考虑时间候选预测运动矢量(920)。如果时间候选预测运动矢量可用且不同于已包括于候选预测运动矢量列表中的候选预测运动矢量,则视频解码器可将所述时间候选预测运动矢量添加到候选预测运动矢量列表,所述时间候选预测运动矢量经指派到下一可用索引。如果时间候选预测运动矢量不可用或并非不同于已包括于候选预测运动矢量列表中的候选预测运动矢量中的一者,则视频解码器可不将所述时间候选预测运动矢量包括于候选预测运动矢量列表中。
199.如果在考虑第五空间候选预测运动矢量(框918)和时间候选预测运动矢量(框920)之后,候选预测运动矢量列表包括五个候选预测运动矢量(922,是),则视频解码器完成产生候选预测运动矢量列表。如果候选预测运动矢量列表包括少于五个候选预测运动矢量(922,否),则视频解码器添加人工产生的候选预测运动矢量(914)直到列表包括五个候选预测运动矢量(916,是)为止。
200.根据本技术的技术,可在空间候选预测运动矢量和时间候选预测运动矢量之后人工产生额外合并候选预测运动矢量以使合并候选预测运动矢量列表的大小固定为合并候选预测运动矢量的指定数目(例如前文图9的可行的实施方式中的五个)。额外合并候选预测运动矢量可包括示例性的经组合双向预测性合并候选预测运动矢量(候选预测运动矢量1)、经缩放双向预测性合并候选预测运动矢量(候选预测运动矢量2),和零向量merge/amvp候选预测运动矢量(候选预测运动矢量3)。
201.图10为本技术实施例中将经过组合的候选运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图。经组合双向预测性合并候选预测运动矢量可通过组合原始合并候选预测运动矢量而产生。具体来说,原始候选预测运动矢量中的两个候选预测运动矢量(其具有mvl0和refidxl0或mvl1和refidxl1)可用以产生双向预测性合并候选预测运动矢量。在图10中,两个候选预测运动矢量包括于原始合并候选预测运动矢量列表中。一候选预测运动矢量的预测类型为列表0单向预测,且另一候选预测运动矢量的预测类型为列表1单向预测。在此可行的实施方式中,mvl0_a和ref0是从列表0拾取,且mvl1_b和ref0是从列表1拾取,且接着可产生双向预测性合并候选预测运动矢量(其具有列表0中的mvl0_a和ref0以及列表1中的mvl1_b和ref0)并检查其是否不同于已包括于候选预测运动矢量列表中的候选预测运动矢量。如果其不同,则视频解码器可将双向预测性合并候选预测运动矢量包括于候选预测运动矢量列表中。
202.图11为本技术实施例中将经过缩放的候选运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图。经缩放双向预测性合并候选预测运动矢量可通过缩放原始合并候选预测运动矢量而产生。具体来说,来自原始候选预测运动矢量的一候选预测运动矢量(其可具有mvlx和refidxlx)可用以产生双向预测性合并候选预测运动矢量。在图11的可行的实施方式中,两个候选预测运动矢量包括于原始合并候选预测运动矢量列表中。一候选预测运动矢量的预测类型为列表0单向预测,且另一候选预测运动矢量的预测类型为列表1单向预测。在此可行的实施方式中,mvl0_a和ref0可从列表0拾取,且ref0可复制到列表1中的参考索引ref0

。接着,可通过缩放具有ref0和ref0

的mvl0_a而计算mvl0

_a。缩放可取决于poc(picture order count)距离。接着,可产生双向预测性合并候选预测运动矢量(其具有列表0中的mvl0_a和ref0以及列表1中的mvl0

_a和ref0

)并检查其是否为重复的。如果其并非重复的,则可将其添加到合并候选预测运动矢量列表。
203.图12为本技术实施例中将零运动矢量添加到合并模式候选预测运动矢量列表的一种示例性示意图。零向量合并候选预测运动矢量可通过组合零向量与可经参考的参考索引而产生。如果零向量候选预测运动矢量并非重复的,则可将其添加到合并候选预测运动矢量列表。对于每一产生的合并候选预测运动矢量,运动信息可与列表中的前一候选预测运动矢量的运动信息比较。
204.在一种可行的实施方式中,如果新产生的候选预测运动矢量不同于已包括于候选预测运动矢量列表中的候选预测运动矢量,则将所产生的候选预测运动矢量添加到合并候选预测运动矢量列表。确定候选预测运动矢量是否不同于已包括于候选预测运动矢量列表中的候选预测运动矢量的过程有时称作修剪(pruning)。通过修剪,每一新产生的候选预测运动矢量可与列表中的现有候选预测运动矢量比较。在一些可行的实施方式中,修剪操作可包括比较一个或多个新候选预测运动矢量与已在候选预测运动矢量列表中的候选预测运动矢量和不添加为已在候选预测运动矢量列表中的候选预测运动矢量的重复的新候选预测运动矢量。在另一些可行的实施方式中,修剪操作可包括将一个或多个新候选预测运动矢量添加到候选预测运动矢量列表且稍后从所述列表移除重复候选预测运动矢量。
205.在本技术的一种可行的实施方式中,在帧间预测中,对待处理图像块的运动信息的预测方法,包括:获取待处理图像块所在图像中的至少一个已确定运动矢量图像块的运动信息,所述至少一个已确定运动矢量图像块包括与所述待处理图像块不邻接的已确定运
动矢量图像块;获取第一标识信息,所述第一标识信息用于从所述至少一个已确定运动矢量图像块的运动信息中确定目标运动信息;根据所述目标运动信息,预测所述待处理图像块的运动信息。
206.图13为本技术实施例中视频编码中进行运动矢量更新的一种示例性流程图,待处理块即为待编码块。
207.s1301、基于待处理块的预测运动矢量获得待处理块的初始运动矢量。
208.在一种可行的实施方式中,比如merge模式,将所述待处理块的预测运动矢量作为所述待处理块块的初始运动矢量;
209.在另一种可行的实施方式,比如amvp模式,将所述待处理块的预测运动矢量和所述待处理块的运动矢量差值相加,作为所述参考块的初始运动矢量。
210.其中,待处理块的预测运动矢量的获得可以根据本技术实施例中图9-图12所示的方法或者现有h.265标准或jem参考模式中任意一种预测运动矢量的获得方法获得,不做限定。运动矢量差值的获取可以通过以待处理块为参考,在根据待处理块的预测运动矢量确定的搜索范围内进行运动估计,运动估计后得到的待处理块的运动矢量与预测运动矢量的差值,作为运动矢量差值。
211.在双向预测中,该步骤具体包括:基于待处理块的前向预测运动矢量获得待处理块的前向初始运动矢量,基于待处理块的后向预测运动矢量获得待处理块的后向初始运动矢量。
212.s1302、基于所述初始运动矢量和一个或多个预设的运动矢量偏移量获得所述待处理块的预测块,具体的:
213.s13021、在所述待处理块的由所述待处理块的参考帧索引来指示的参考帧中获取所述待处理块的初始运动矢量指示的图像块,以作为所述待处理块的临时预测块;
214.s13022、将所述待处理块的初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个实际运动矢量,其中,每个所述实际运动矢量指示一个搜索位置;
215.s13023、在所述一个或多个实际运动矢量指示的搜索位置,获得一个或多个候选预测块,其中每个所述搜索位置对应一个所述候选预测块;
216.s13024、从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述待处理块的预测块。
217.应理解,像素差异可以有多种计算方式,比如可以计算所述候选预测块和所述临时预测块的像素矩阵的绝对误差和,也可以计算像素矩阵的均方误差,或者计算像素矩阵的相关性等,不做限定。
218.在双向预测中,该步骤具体包括:在所述待处理块的由所述待处理块的前向参考帧索引来指示的前向参考帧中获取所述待处理块的前向初始运动矢量指示的第一图像块,在所述待处理块的由所述待处理块的后向参考帧索引来指示的后向参考帧中获取所述待处理块的后向初始运动矢量指示的第二图像块,对所述第一图像块和所述第二图像块进行加权处理,获得为所述待处理块的临时预测块;将所述待处理块的前向初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个前向实际运动矢量,将所述待处理块的后向初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个后向实际运动矢量;在所述一个或多个前向实际运动矢量指示的搜索位置,获得一个或多个
前向候选预测块,在所述一个或多个后向实际运动矢量指示的搜索位置,获得一个或多个后向候选预测块;从所述一个或多个前向候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述待处理块的前向预测块,从所述一个或多个后向候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述待处理块的后向预测块,对所述前向预测块和所述后向预测块进行加权处理,获得所述待处理块的预测块。
219.可选的,在一种可行的实施方式中,在步骤s13022之后,还包括:
220.s13025、当所述实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的实际运动矢量的运动矢量分辨率为预设像素精度,其中,所述预设像素精度为整像素精度,或二分之一像素精度,或四分之一像素精度,或八分之一像素精度,不做限定。
221.应理解,所述运动矢量分辨率是指在运动估计或者运动补偿过程中,运动矢量所能分辨的像素精度。所述舍入处理可以包括基于某一像素精度的四舍五入处理,上取整处理或下取整处理等,不做限定。
222.示例性的,舍入处理可以采取如下操作:
223.将待处理的运动矢量的水平分量或竖直分量分解为整数部分a,小数部分b和符号位,显然a为非负整数,b为大于0且小于1的分数,符号位为正或负;
224.不妨设,预设的像素精度为n像素精度,n大于0且小于等于1,c等于b除以n;
225.当基于四舍五入的规则时,对c的小数部分做四舍五入取整处理;当基于上取整的规则时,对c的整数部分加1,舍弃小数部分;当基于下取整的规则时,舍弃c的小数部分。不妨设,处理后的c为d;
226.则处理后的运动矢量分量的绝对值为d乘以n加上a,运动矢量分量的正负符号不变。
227.示例性的,对于实际运动矢量为(1.25,1),当预设像素精度为整像素精度时,将实际运动矢量进行舍入处理,得到(1,1)。对于实际运动矢量为(-1.7,-1),当预设像素精度为1/4像素精度时,将实际运动矢量进行舍入处理,得到(-1.75,-1)。
228.可选的,在另一种可行的实施方式中,步骤s13024包括:从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块对应的实际运动矢量;当所述被选的实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述被选的实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的被选的实际运动矢量的运动矢量分辨率为预设像素精度;确定所述处理后的被选的实际运动矢量指示的位置所对应的预测块为所述待处理块的预测块。
229.同样,所述预设像素精度为整像素精度,或二分之一像素精度,或四分之一像素精度,或八分之一像素精度,不做限定。舍入处理可参考前一可行的实施方式中的示例,不再赘述。
230.应理解,像素精度越高一般意味着在进行运动估计或者运动补偿的过程中需要进行更复杂的搜索区域的像素插值(interpolation),将运动矢量分辨率钳制在预设的像素精度,可以降低复杂度。
231.图14为本技术实施例中视频解码中进行运动矢量更新的一种示例性流程图,待处理块即为待解码块。
232.s1401、基于待处理块的预测运动矢量获得待处理块的初始运动矢量。
233.在一种可行的实施方式中,比如merge模式,将所述待处理块的预测运动矢量作为所述待处理块块的初始运动矢量;
234.在另一种可行的实施方式,比如amvp模式,将所述待处理块的预测运动矢量和所述待处理块的运动矢量差值相加,作为所述参考块的初始运动矢量。
235.其中,待处理块的预测运动矢量的获得可以根据本技术实施例中图9-图12所示的方法或者现有h.265标准或jem参考模式中任意一种预测运动矢量的获得方法获得,不做限定。运动矢量差值的获取可以通过解析码流获得。
236.在双向预测中,该步骤具体包括:基于待处理块的前向预测运动矢量获得待处理块的前向初始运动矢量,基于待处理块的后向预测运动矢量获得待处理块的后向初始运动矢量。
237.s1402、基于所述初始运动矢量和一个或多个预设的运动矢量偏移量获得所述待处理块的预测块,具体的:
238.s14021、在所述待处理块的由所述待处理块的参考帧索引来指示的参考帧中获取所述待处理块的初始运动矢量指示的图像块,以作为所述待处理块的临时预测块;
239.s14022、将所述待处理块的初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个实际运动矢量,其中,每个所述实际运动矢量指示一个搜索位置;
240.s14023、在所述一个或多个实际运动矢量指示的搜索位置,获得一个或多个候选预测块,其中每个所述搜索位置对应一个所述候选预测块;
241.s14024、从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述待处理块的预测块。
242.应理解,像素差异可以有多种计算方式,比如可以计算所述候选预测块和所述临时预测块的像素矩阵的绝对误差和,也可以计算像素矩阵的均方误差,或者计算像素矩阵的相关性等,不做限定。
243.在双向预测中,该步骤具体包括:在所述待处理块的由所述待处理块的前向参考帧索引来指示的前向参考帧中获取所述待处理块的前向初始运动矢量指示的第一图像块,在所述待处理块的由所述待处理块的后向参考帧索引来指示的后向参考帧中获取所述待处理块的后向初始运动矢量指示的第二图像块,对所述第一图像块和所述第二图像块进行加权处理,获得为所述待处理块的临时预测块;将所述待处理块的前向初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个前向实际运动矢量,将所述待处理块的后向初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个后向实际运动矢量;在所述一个或多个前向实际运动矢量指示的搜索位置,获得一个或多个前向候选预测块,在所述一个或多个后向实际运动矢量指示的搜索位置,获得一个或多个后向候选预测块;从所述一个或多个前向候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述待处理块的前向预测块,从所述一个或多个后向候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述待处理块的后向预测块,对所述前向预测块和所述后向预测块进行加权处理,获得所述待处理块的预测块。
244.可选的,在一种可行的实施方式中,在步骤s14022之后,还包括:
245.s14025、当所述实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述实
际运动矢量进行运动矢量分辨率的舍入处理以使处理后的实际运动矢量的运动矢量分辨率为预设像素精度,其中,所述预设像素精度为整像素精度,或二分之一像素精度,或四分之一像素精度,或八分之一像素精度,不做限定。
246.可选的,在另一种可行的实施方式中,步骤s13024包括:从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块对应的实际运动矢量;当所述被选的实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述被选的实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的被选的实际运动矢量的运动矢量分辨率为预设像素精度;确定所述处理后的被选的实际运动矢量指示的位置所对应的预测块为所述待处理块的预测块。
247.同样,所述预设像素精度为整像素精度,或二分之一像素精度,或四分之一像素精度,或八分之一像素精度,不做限定。舍入处理可参考前一可行的实施方式中的示例,不再赘述。
248.下面通过几个具体的实施例来详细说明运动矢量更新的实施方式。应理解,如图13中的编码方法和图14中的解码方法,运动矢量的更新在编解码端具有一致性,因此下面的实施例仅从编码端或解码端进行描述,应理解当从编码端进行描述时,解码端的实现保持和编码端一致性,当从解码端进行描述时,编码端的实现保持和解码端一致性。
249.实施例一
250.如图15所示,当前解码块为第一解码块,获取当前解码块的预测运动信息,假设当前解码块的前后向运动矢量预测值分别为(-10,4)和(5,6),当前解码块所在的图像的poc为4,参考图像的索引值指示的参考图像的poc分别为2和6,则当前解码块对应的poc为4,前向预测参考图像块对应的poc为2,后向预测参考图像块对应的poc为6。
251.针对当前解码块分别进行前后向预测得到当前解码块的初始前向解码预测块(forwardpredictionblock,fpb)和初始后向解码预测块(backwardpredictionblock,bpb),假设分别为fpb1和bpb1,对fpb1和bpb1进行加权求和得到当前解码块的第一解码预测块(decodingpredictionblock,dpb),假设为dpb1。
252.以(-10,4)和(5,6)作为前后向运动矢量预测值的参考输入,分别对前向预测参考图像块和后向预测参考图像块进行第一精度的运动搜索,此时第一精度为1像素范围的1/2像素精度。以第一解码预测块dpb1为参考,针对每次运动搜索所得到对应的新前后向解码预测块与第一解码预测块dpb1进行差异比较,求得与dpb1差异最小的新解码预测块所对应的前后向运动矢量预测值作为目标运动矢量预测值,假设分别是(-11,4)和(6,6)。
253.更新目标运动矢量预测值为(-11,4)和(6,6),同时根据目标运动矢量预测值对第一解码块进行前后向预测,将得到的新前向解码预测块与新后向解码预测块进行加权求和,得到目标解码预测块,假设为dpb2,更新当前解码块的解码预测块为dpb2。
254.需要说明的是,对前向预测参考图像块和后向预测参考图像块进行第一精度的运动搜索时,第一精度可以是设定的任意精度,例如可以是整像素精度或1/2像素精度或1/4像素精度或1/8像素精度。
255.实施例二
256.如图16所示,当前解码块为第一解码块,获取当前解码块的预测运动信息,假设当前解码块的前向运动矢量预测值分别为(-21,18),当前解码块所在的图像的poc为4,参考
图像的索引值指示的参考图像的poc为2,则当前解码块对应的poc为4,前向预测参考图像块对应的poc为2。
257.针对当前解码块进行前向预测得到当前解码块的初始前向解码预测块,假设为fpb1,此时,将fpb1作为当前解码块的第一解码预测块,记为dpb1。
258.以(-21,18)作为前向运动矢量预测值参考输入,对前向预测参考图像块进行第一精度的运动搜索,此时第一精度为5像素范围的1像素精度。以第一解码预测块dpb1为参考,针对每次运动搜索所得到对应的新后向解码预测块与第一解码预测块dpb1进行差异比较,求得与dpb1差异最小的新解码预测块所对应的前向运动矢量预测值作为目标运动矢量预测值,假设分别是(-19,19)。
259.更新目标运动矢量预测值为(-19,19),同时根据目标运动矢量预测值对第一解码块进行前向预测,将得到的新前向解码预测块作为目标解码预测块,假设为dpb2,更新当前解码块的解码预测块为dpb2。
260.需要说明的是,对前向预测参考图像块和后向预测参考图像块进行第一精度的运动搜索时,第一精度可以是设定的任意精度,例如可以是整像素精度或1/2像素精度或1/4像素精度或1/8像素精度。
261.实施例三:
262.如图17所示,当前编码块为第一编码块,获取当前编码块的预测运动信息,假设当前编码块的前后向运动矢量预测值分别为(-6,12)和(8,4),当前解码块所在的图像的poc为8,参考图像的索引值指示的参考图像的poc分别为4和12,则当前编码块对应的poc为8,前向预测参考图像块对应的poc为4,后向预测参考图像块对应的poc为12。
263.针对当前编码块分别进行前后向预测得到当前编码块的初始前向编码预测块和初始后向编码预测块,假设分别为fpb1和bpb1,对fpb1和bpb1进行加权求和得到当前编码块的第一编码预测块,假设为dpb1。
264.以(-6,12)和(8,4)作为前后向运动矢量预测值参考输入,分别对前向预测参考图像块和后向预测参考图像块进行第一精度的运动搜索。以第一编码预测块dpb1为参考,针对每次运动搜索所得到对应的新前后向编码预测块与第一编码预测块dpb1进行差异比较,求得与dpb1差异最小的新编码预测块所对应的前后向运动矢量预测值作为目标运动矢量预测值,假设分别是(-11,4)和(6,6)。
265.更新目标运动矢量预测值为(-11,4)和(6,6),同时根据目标运动矢量预测值对第一编码块进行前后向预测,将得到的新前向编码预测块与新后向编码预测块进行加权求和,得到目标编码预测块,假设为dpb2,更新当前编码块的编码预测块为dpb2。
266.继续,以(-11,4)和(6,6)作为前后向运动矢量预测值参考输入,分别对前向预测参考图像块和后向预测参考图像块进行第一精度的运动搜索。以当前编码块的编码预测块dpb2为参考,针对每次运动搜索所得到对应的新前后向编码预测块与第一编码预测块dpb2进行差异比较,求得与dpb2差异最小的新编码预测块所对应的前后向运动矢量预测值作为新的目标运动矢量预测值,假设分别是(-7,11)和(6,5)。
267.继续更新目标运动矢量预测值为(-7,11)和(6,5),同时根据最新的目标运动矢量预测值对第一编码块进行前后向预测,将得到的新前向编码预测块与新后向编码预测块进行加权求和,得到目标编码预测块,假设为dpb3,更新当前编码块的编码预测块为dpb3。
268.进而,可以继续按照上述方法更新目标运动矢量预测值,以此类推循环次数不限。
269.需要说明的是,对前向预测参考图像块和后向预测参考图像块进行第一精度的运动搜索时,第一精度可以是设定的任意精度,例如可以是整像素精度或1/2像素精度或1/4像素精度或1/8像素精度。
270.应理解,在一些可行的实施例中,当满足某一条件时,循环结束。例如,当dpbn和dpbn-1的差异值小于某一阈值时,结束循环,其中n为大于2的正整数。
271.实施例四
272.如图18所示,当前解码块为第一解码块,获取当前解码块的预测运动信息,假设当前解码块的前后向运动矢量值分别为(-10,4)和(5,6),前后向运动矢量差值分别为(-2,1)和(1,1),当前解码块所在的图像的poc为4,参考图像的索引值指示的参考图像的poc分别为2和6,则当前解码块对应的poc为4,前向预测参考图像块对应的poc为2,后向预测参考图像块对应的poc为6。
273.针对当前解码块分别进行前后向预测得到当前解码块的初始前向解码预测块(-fpb)和初始后向解码预测块(bpb),假设分别为fpb1和bpb1,对fpb1和bpb1进行加权求和得到当前解码块的第一解码预测块(dpb),假设为dpb1。
274.以前后向运动矢量预测值与前后向运动矢量差值的和:(-10,4)+(-2,1)=(-12,5)和(5,6)+(1,1)=(6,7)作为前后向运动矢量,分别对前向预测参考图像块和后向预测参考图像块进行第一精度的运动搜索,此时第一精度为1像素范围的1/4像素精度。以第一解码预测块dpb1为参考,针对每次运动搜索所得到对应的新前后向解码预测块与第一解码预测块dpb1进行差异比较,求得与dpb1差异最小的新解码预测块所对应的前后向运动矢量作为目标运动矢量预测值,假设分别是(-11,4)和(6,6)。
275.更新目标运动矢量为(-11,4)和(6,6),同时根据目标运动矢量对第一解码块进行前后向预测,将得到的新前向解码预测块与新后向解码预测块进行加权求和,得到目标解码预测块,假设为dpb2,更新当前解码块的解码预测块为dpb2。
276.图19为本技术实施例中的编码端运动矢量获取方法的一种示意性流程图,包括:
277.s1901、确定待处理块的参考块。
278.参考块的概念已经在前文中结合图8进行了说明,应理解,参考块不仅包括图8中所示的待处理块的空间相邻块,还包括其它和所述待处理块具有预设的时域或空域相关性的其他实际图像块或者虚拟构成的图像块。
279.应理解,本技术实施例的有益效果体现于待处理块的参考块进行了运动矢量更新的场景,即所述参考块具有初始运动矢量和一个或多个预设的运动矢量偏移量,所述参考块的初始运动矢量基于所述参考块的预测运动矢量获得,所述参考块的预测块基于所述初始运动矢量和一个或多个预设的运动矢量偏移量获得。
280.具体的,所述参考块的运动矢量更新的过程,以及所述初始运动矢量的获取,可以参考与图13相关的本技术实施例。应理解,图19相关实施例中的参考块即为图13相关实施例中的待处理块。
281.在一些可行的实施方式中,确定待处理块的参考块,具体包括:从所述待处理块的一个或多个候选参考块中,选择一个作为所述待处理块的参考块时率失真代价值最小的候选参考块,作为所述待处理块的参考块。
282.在一些可行的实施方式中,在从所述待处理块的一个或多个候选参考块中确定待处理块的参考块之后,还包括将所述确定的参考块在所述一个或多个候选参考块中的标识信息编入码流。
283.s1902、将所述参考块的初始运动矢量作为所述待处理块的预测运动矢量。
284.在一种可行的实施方式中,比如merge模式,在步骤s1902之后,还包括:将所述待处理块的预测运动矢量作为所述待处理块的初始运动矢量。或者,步骤s1902即为将所述参考块的初始运动矢量作为所述待处理块的初始运动矢量。
285.在另一种可行的实施方式中,比如amvp模式,在步骤s1902之后,还包括:将所述待处理块的预测运动矢量和所述待处理块的运动矢量差值相加,以作为所述待处理块的初始运动矢量。
286.图20为本技术实施例中的解码端运动矢量获取方法的一种示意性流程图,包括:
287.s2001、确定待处理块的参考块。
288.应理解,本技术实施例的有益效果体现于待处理块的参考块进行了运动矢量更新的场景,即所述参考块具有初始运动矢量和一个或多个预设的运动矢量偏移量,所述参考块的初始运动矢量基于所述参考块的预测运动矢量获得,所述参考块的预测块基于所述初始运动矢量和一个或多个预设的运动矢量偏移量获得。
289.具体的,所述参考块的运动矢量更新的过程,以及所述初始运动矢量的获取,可以参考与图14相关的本技术实施例。应理解,图20相关实施例中的参考块即为图14相关实施例中的待处理块。
290.在一些可行的实施方式中,确定待处理块的参考块,具体包括:解析码流,获得第二标识信息;根据所述第二标识信息,确定所述待处理块的参考块。
291.s2002、将所述参考块的初始运动矢量作为所述待处理块的预测运动矢量。
292.在一种可行的实施方式中,比如merge模式,在步骤s2002之后,还包括:将所述待处理块的预测运动矢量作为所述待处理块的初始运动矢量。或者,步骤s2002即为将所述参考块的初始运动矢量作为所述待处理块的初始运动矢量。
293.在另一种可行的实施方式中,比如amvp模式,在步骤s2002之后,还包括:将所述待处理块的预测运动矢量和所述待处理块的运动矢量差值相加,以作为所述待处理块的初始运动矢量,其中,所述待处理块的运动矢量差值由解析所述码流中的第一标识信息获得。
294.通过上述实施方式,采用更新前的初始运动矢量代替实际运动矢量,用于在后编码块或解码块的预测,在后编码块或解码块的预测不需要等到实际运动矢量更新完成之后就可以开始执行预测步骤,在保证了运动矢量更新带来的编码效率提升的同时,消除了处理时延。
295.图21为本技术实施例中的运动矢量的获取装置2100的一种示意性框图,包括:
296.确定模块2101,用于确定待处理块的参考块,所述参考块和所述待处理块具有预设的时域或空域相关性,所述参考块具有初始运动矢量和一个或多个预设的运动矢量偏移量,所述参考块的初始运动矢量基于所述参考块的预测运动矢量获得,所述参考块的预测块基于所述初始运动矢量和一个或多个预设的运动矢量偏移量获得;
297.获取模块2102,用于将所述参考块的初始运动矢量作为所述待处理块的预测运动矢量。
298.在一种可行的实施方式中,所述获取模块2102还用于:将所述参考块的预测运动矢量作为所述参考块的初始运动矢量;或者,将所述参考块的预测运动矢量和所述参考块的运动矢量差值相加,作为所述参考块的初始运动矢量。
299.在一种可行的实施方式中,所述获取模块2102还用于:在所述参考块的参考帧中获取所述参考块的初始运动矢量指示的图像块,以作为所述参考块的临时预测块;将所述参考块的初始运动矢量和一个或多个预设的运动矢量偏移量相加,以获得一个或多个实际运动矢量,其中,每个所述实际运动矢量指示一个搜索位置;在所述一个或多个实际运动矢量指示的搜索位置,获得一个或多个候选预测块,其中每个所述搜索位置对应一个所述候选预测块;从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块作为所述参考块的预测块。
300.在一种可行的实施方式中,所述装置2100用于双向预测,所述参考帧包括第一向参考帧和第二向参考帧,所述初始运动矢量包括第一向初始运动矢量和第二向初始运动矢量,所述获取模块2102具体用于:在所述参考块的第一向参考帧中获取所述参考块的第一向初始运动矢量指示的第一图像块;在所述参考块的第二向参考帧中获取所述参考块的第二向初始运动矢量指示的第二图像块;对所述第一图像块和所述第二图像块进行加权,以获得所述参考块的临时预测块。
301.在一种可行的实施方式中,所述装置2100还包括:舍入模块2103,用于当所述实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的实际运动矢量的运动矢量分辨率为预设像素精度。
302.在一种可行的实施方式中,所述获取模块2102具体用于:从所述一个或多个候选预测块中选择与所述临时预测块的像素差异最小的候选预测块对应的实际运动矢量;当所述被选的实际运动矢量的运动矢量分辨率高于预设像素精度时,对所述被选的实际运动矢量进行运动矢量分辨率的舍入处理以使处理后的被选的实际运动矢量的运动矢量分辨率为预设像素精度;确定所述处理后的被选的实际运动矢量指示的位置所对应的预测块为所述参考块的预测块。
303.在一种可行的实施方式中,所述预设像素精度为整像素精度,或二分之一像素精度,或四分之一像素精度,或八分之一像素精度。
304.在一种可行的实施方式中,所述获取模块2102具体用于:将所述待处理块的预测运动矢量作为所述待处理块的初始运动矢量。
305.在一种可行的实施方式中,所述获取模块2102具体用于:将所述待处理块的预测运动矢量和所述待处理块的运动矢量差值相加,以作为所述待处理块的初始运动矢量。
306.在一种可行的实施方式中,所述装置2100用于视频解码,所述待处理块的运动矢量差值通过解析码流中的第一标识信息获得。
307.在一种可行的实施方式中,所述装置2100用于视频解码,所述确定模块2101具体用于:解析码流,获得第二标识信息;根据所述第二标识信息,确定所述待处理块的参考块。
308.在一种可行的实施方式中,所述装置2100用于视频编码,所述确定模块2101具体用于:从所述待处理块的一个或多个候选参考块中,选择一个作为所述待处理块的参考块时率失真代价值最小的候选参考块,作为所述待处理块的参考块。
309.图22为本技术实施例的视频编解码设备的一种示意性框图,该设备2200可以是应
用于编码侧,也可以是应用于解码侧。设备2200包括处理器2201、存储器2202,所述处理器2201、存储器2202相连接(如通过总线2204相互连接),在可能的实施方式中,设备2200还可包括收发器2203,收发器2203连接处理器2201和存储器2202,用于接收/发送数据。
310.存储器2202包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、或便携式只读存储器(compact disc read-only memory,cd-rom),该存储器2202用于存储相关程序代码及视频数据。
311.处理器2201可以是一个或多个中央处理器(central processing unit,cpu),在处理器2201是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。
312.该处理器2201用于读取所存储器2202中存储的程序代码,执行图13-图20所对应的任意一个实施方案及其各种可行的实施方式的操作。
313.示例性的,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行图13-图20所对应的任意一个实施方案及其各种可行的实施方式的操作。
314.示例性的,本技术实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行图13-图20所对应的任意一个实施方案及其各种可行的实施方式的操作。
315.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
316.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
317.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者任意组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网络站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、微波等)方式向另一个网络站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,也可以是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd等)、或者半导体介质(例如固态硬盘)等等。
318.在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
319.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1