预测运动矢量的方法、编码设备和解码设备的制作方法
【专利摘要】本发明实施例提供了一种预测运动矢量的方法、编码设备和解码设备。该方法包括:确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用;在当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,预定值为已确定的值。该技术方案能够消除预测运动矢量过程中存在的延迟问题。
【专利说明】预测运动矢量的方法、编码设备和解码设备
【技术领域】
[0001]本发明涉及视频编解码领域,特别涉及一种预测运动矢量的方法、编码设备和解码设备。
【背景技术】
[0002]视间运动矢量预测(Inter-view Motion Vector Prediction)是三维视频编码(3-Dimension video coding, 3DV coding)中最重要的性能提升工具。三维高效视频编码(3D-HEVC, 3D-High Efficiency Video Coding)标准使用子预测块级视间运动矢量预测(Sub-PU Level Inter-view MV Prediction)来替代预测块级视间运动矢量预测(F1U LevelInter-view MV Prediction)。
[0003]在对当前预测块或预测单元(Prediction Unit, PU)进行视间运动补偿预测(Inter-view Motion Compensated Prediction)时,首先将当前预测块划分成若干等尺寸的子预测块或子预测单元(Sub-PU)。若当前子预测块(例如,第一个子预测块)的参考视中的对应块的运动矢量信息不可用,则不作处理,接着依次向后确定其他子预测块的运动矢量信息,直到找到预测块中的首个在参考视中的对应块的运动矢量信息可用的子预测块,并将该可用的运动矢量信息确定为该子预测块之前所有不可用的Sub-PU块的运动矢量预测值。上述处理方法容易造成预测运动矢量过程中的延迟。
【发明内容】
[0004]本发明实施例提供一种运动矢量的预测方法,该方法能够消除预测运动矢量过程中的延迟问题。
[0005]第一方面,本发明实施例提供了一种预测运动矢量的方法,包括:确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用;在所述当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,所述预定值为已确定的值。
[0006]结合第一方面,在第一种可能的实现方式中,该方法还包括:在当前子预测块为预测块中的第N个子预测块时,将预定值确定为第N个子预测块的运动矢量的预测值,其中,N为大于或等于2的整数。
[0007]结合第一方面,在第二种可能的实现方式中,该方法还包括:在当前子预测块为预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0008]结合第一方面或第一至第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,该方法还包括:构建预测块的运动矢量的合并候选列表,合并候选列表包括预测块的多个候选运动矢量;确定预测块中的首个可用子预测块,首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块;根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;将首个可用子预测块的运动矢量的预测值插入到预测块的合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
[0009]结合第三种可能的实现方式,在第四种可能的实现方式中,预定值包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。
[0010]结合第四种可能的实现方式,在第五种可能的实现方式中,零运动矢量为数值大小为零、参考图像索引号为零的矢量。
[0011]第二方面,本发明实施例提供了一种编码设备,包括:第一确定单元,用于确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用;第二确定单元,用于在当前子预测块为所述预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,预定值为已确定的值。
[0012]结合第二方面,在第一种可能的实现方式中,该编码设备还包括:第三确定单元,用于在当前子预测块为所述预测块中的第N个子预测块时,将预定值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0013]结合第二方面,在第二种可能的实现方式中,该编码设备还包括:第四确定单元,用于在当前子预测块为预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0014]结合第二方面或第二方面的第一至第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,该编码设备还包括:构建单元,用于构建预测块的运动矢量的合并候选列表,合并候选列表包括预测块的多个候选运动矢量;第五确定单元,用于确定预测块中的首个可用子预测块,首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块;第六确定单元,用于根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;插入单元,将首个可用子预测块的运动矢量的预测值插入到预测块的合并候选列表,以构成预测块的运动矢量的新合并候选列表。
[0015]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,预定值包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。
[0016]结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,零运动矢量为数值大小为零、参考图像索引号为零的矢量。
[0017]第三方面,本发明实施例提供了一种解码设备,包括:第一确定单元,用于确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用;第二确定单元,用于在当前子预测块为所述预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,预定值为已确定的值。
[0018]结合第三方面,在第一种可能的实现方式中,该解码设备还包括:第三确定单元,用于在当前子预测块为所述预测块中的第N个子预测块时,将预定值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0019]结合第三方面,在第二种可能的实现方式中,该解码设备还包括:第四确定单元,用于在当前子预测块为预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0020]结合第三方面或第三方面的第一至第二种可能的实现方式中的任一种可能的实现方式,在第三方面的第三种可能的实现方式中,该解码设备还包括:构建单元,用于构建预测块的运动矢量的合并候选列表,合并候选列表包括预测块的多个候选运动矢量;第五确定单元,用于确定预测块中的首个可用子预测块,首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块;第六确定单元,用于根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;插入单元,将首个可用子预测块的运动矢量的预测值插入到预测块的合并候选列表,以构成预测块的运动矢量的新合并候选列表。
[0021]结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,预定值包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。
[0022]结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,零运动矢量为数值大小为零、参考图像索引号为零的矢量。
[0023]本发明实施例通过确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用,并在当前子预测块为预测块中的第一个子预测块时,将预定值确定为所述第一个子预测块的运动矢量的预测值,这样能够及时确定第一个子预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定第一个子预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
【专利附图】
【附图说明】
[0024]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1是本发明一个实施例的预测运动矢量的方法示意流程图。
[0026]图2是本发明另一实施例的预测运动矢量的方法示意流程图。
[0027]图3是本发明再一实施例的预测运动矢量的方法示意流程图。
[0028]图4是本发明再一实施例的预测运动矢量的方法示意流程图。
[0029]图5是本发明再一实施例的预测运动矢量的过程的示意流程图。
[0030]图6是本发明再一实施例的预测运动矢量的过程的示意流程图。
[0031]图7是本发明实施例的一个预测块的示意图。
[0032]图8是本发明一个实施例的编码设备示意框图。
[0033]图9是本发明另一实施例的编码设备示意框图。
[0034]图10是本发明再一实施例的编码设备示意框图。
[0035]图11是本发明再一实施例的编码设备示意框图。
[0036]图12是本发明再一实施例的编码设备示意框图。
[0037]图13是本发明一个实施例的解码设备示意框图。
[0038]图14是本发明另一实施例的解码设备示意框图。[0039]图15是本发明再一实施例的解码设备示意框图。
[0040]图16是本发明再一实施例的解码设备示意框图。
[0041]图17是本发明再一实施例的解码设备示意框图。
【具体实施方式】
[0042]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0043]应理解,本发明实施例方法主要应用于三维视频编解码领域中的三维立体视频编解码中的运动矢量预测技术,也可应用于三维高效视频编解码中的运动矢量预测技术,本发明实施例不限于此,例如,本发明实施例的方法还可用于可伸缩视频编码(SVC:ScalableVideo Coding)领域中的层间运动矢量(inter-layer MV prediction)预测技术中。视间是指在三维(three-dimension, 3D)视频拍摄过程中对于同一场景从不同角度同时拍摄的两个或多个视频之间,视包括多个视频序列,每一个视可以包括至少一个视频帧。
[0044]图1是本发明一个实施例的预测运动矢量的方法示意流程图。例如,图1的方法可以由编码设备来执行。图1所示的方法用于图像或视频的编码或解码过程中,用于编码过程中的方法由编码设备执行,用于解码过程中的方法由解码设备执行。如图1所示,该方法包括:
[0045]110,确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用;
[0046]120,在当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,预定值为已确定的值。
[0047]也就是说在当前子预测块为预测块中的第一个子预测块时,将预定值确定为第一个子预测块的运动矢量的预测值。
[0048]具体地说,在进行视间预测的编码和解码时,根据当前预测块的空间邻域块、时域邻域对应块或视点间对应块的运动信息的可用性,以及针对深度图的当前深度块对应纹理块的运动信息的可用性,构建预测块的候选列表,并将预测块分成多个子预测块。针对当前预测块,对每个子预测块根据视差矢量DV (Disparity Vector)找到在参考视中对应块;若该视间对应块的运动信息可用,则将该对应块的运动矢量作为当前子预测块的运动矢量预测值,同时将首个运动矢量信息可用的子预测块的运动矢量预测值插入到候选列表中。本发明实施例的方法通过依次对当前预测块的子预测块进行运动矢量预测,确定每一个预测块的运动矢量预测值,在当前子预测块为该预测块中的第一个子预测块时,找到该子预测块在参考视中的对应块,若该对应块的运动矢量信息可用,则根据该运动矢量信息确定该当前子预测块的运动矢量预测值,并将该对应块的运动矢量信息作为当前子预测块的运动矢量预测值,若该对应块的运动矢量信息不可用,则无法得到当前子预测块的运动矢量预测值,从而形成运动空洞(motion hole)。本发明的实施例将预定值确定为当前子预测块的运动矢量预测值,以填补所形成的运动空洞。
[0049]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用并确定当前子预测块为预测块中的第一个子预测块时,将预定值确定为所述第一个子预测块的运动矢量的预测值,这样能够及时确定第一个子预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定第一个子预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。另外,本发明实施例方法还有利于流水作业,这在芯片处理领域具有较佳的实施效果。
[0050]本发明的实施例对当前子预测块为预测块中的第N个子预测块的情形(N为大于等于2的整数)不作限定,具体将在下文作详细描述。
[0051]应理解,运动矢量信息不可用为当前子预测块的参考视中的对应块的中不具有运动矢量信息。换句话说,在步骤110中,也可以确定预测块中的当前子预测块的参考视中的对应块不具有运动矢量信息。可用的运动矢量信息包括运动矢量的大小和参考图像索引号信息,根据参考图像索引号所指示的参考图像和当前子预测块所对应的图像的位置关系能够确定所预测的当前子预测块的运动矢量的方向。
[0052]应理解,本发明实施例中的预测块包括多个子预测块,预测块可以分为多个子预测块还可以为多种划分形式,例如可以分为3*3的9个子预测块、4*4的16个子预测块或5*5的25个子预测块,本发明实施例并不对此做限定,预测块中的第一个子预测块为该预测块的多个子预测块中的首个子预测块,换句话说在对预测块中的子预测块进行运动矢量预测中第一个进行预测处理的子预测块。第一个子预测块的位置可以位于预测块的任意位置,例如位于预测块的左上角、右上角、左下角或右下角,本发明实施例并不对此做限定。
[0053]应理解,本发明实施例能够根据视差矢量(Disparity Vector, DV)信息确定当前子预测块的参考视中的对应块。
[0054]应理解,预定值为已确定的值,可以认为预先已设定好的值,也可以认为是在之前的预测过程中得到的值,较优的,本发明实施例中的预定值可以直接使用,不需要计算或通过其他求解即可获得,应注意本发明实施例中的预定值可以为某一运动矢量信息,具体地,例如,预定值可以包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。这些预定值在执行子预测块级视间运动矢量预测之前都是可用的。应理解,当前子预测块进行视间运动补偿预测所对应的视差矢量是指当前视的当前块指向参考视的矢量,用于指示当前块相对于参考视的对应位置的偏移量。与利用运动矢量进行运动补偿预测(Motion Compensated Predictor,MCP)类似,视间运动补偿预测表示利用该视差矢量进行运动补偿预测,获得当前块的预测值。通过视间运动补偿预测得的当前块的预测值来自于参考视。预测块的合并候选列表中的候选矢量为运动矢量的合并候选列表中的任一矢量。零运动矢量可以为数值大小为零、参考图像索引号为零的矢量。
[0055]需要说明的一点是,为了填补所形成的运动空洞,也可以采用如下方法:如果子预测块的预测块视间运动补偿预测(PU Level IV-MCP)可用,则参考视中的对应块不存在可用运动矢量信息的当前子预测块可以使用该子预测块所在的预测块的视间运动补偿预测值进行填补所形成的运动空洞,并且在当前子预测块所在的预测块的视间运动补偿预测值也不可用时,使用零运动矢量(zero MV)对当前子预测块填补所形成的运动空洞。由于使用预测块的视间运动补偿预测对子预测块进行填补空洞,需要针对每个预测块重新生成其预测块的视间运动补偿预测的可用信息并进行存储,额外增加了计算量,增加了实现的复杂度。而本发明实施例不需额外计算,直接将预定值确定为当前子预测块的运动矢量预测值,因此,本发明实施例降低了实现复杂度,具有算法简单的特点。
[0056]可选地,若当前子预测块为预测块中的第N (N为大于等于2的整数)个子预测块时,若其对应块的运动矢量信息可用,则将其对应块的运动矢量信息作为当前子预测块的运动矢量预测值,若其对应块的运动矢量信息不可用,则此处会形成运动空洞,将预定值确定为当前子预测块的运动矢量预测值,同时填补了所形成的运动空洞。
[0057]相应地,作为另一实施例,如图2所示,该方法还包括:
[0058]130,若当前子预测块为预测块中的第N个子预测块时,将预定值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0059]也就是说,如果当前子预测块不是第一个子预测块时,也就是当前子预测块为第N个子预测块时,如果第N个子预测块的参考视中的对应块的运动矢量信息不可用,则直接将预定值确定为第N个子预测块的运动矢量的预测值,不需要等待延迟时间。
[0060]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用时,将预定值确定为当前子预测块的运动矢量的预测值,这样能够及时确定每个预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定这些预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0061]可选地,若当前子预测块为预测块中的第N个子预测块时,若该对应块的运动矢量信息可用,则将该对应块的运动矢量信息作为当前子预测块的运动矢量预测值,若该对应块的运动矢量信息不可用,则此处会形成运动空洞,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,同时填补了所形成的运动空洞。
[0062]相应地,作为另一实施例,如图3所示,该方法还包括:
[0063]140,当前子预测块为预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0064]也就是说,如果当前子预测块为不是第一个子预测块时,也就是当前子预测块为第N个子预测块时,如果第N个子预测块的参考视中的对应块的运动矢量信息不可用,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,不需要等待延迟时间,其中该第N个子预测块的参考视中的对应块的运动矢量信息不可用。
[0065]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用时,将预定值确定为当前子预测块的运动矢量的预测值,这样能够及时确定每个预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定这些预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。由于使用了相关性更高的相邻子预测块的运动矢量来填充空洞,有利于提高当前子预测块的运动补偿预测精度。
[0066]可选地,作为另一实施例,如图4所示,该方法还包括:
[0067]150,构建预测块的运动矢量的合并候选列表,合并候选列表包括预测块的多个候选运动矢量;
[0068]160,确定预测块中的首个可用子预测块,首个可用子预测块为在参考视中的对应块的运动矢量信息可用的子预测块;[0069]170,根据首个可用子预测块的对应块的运动矢量信息确定所述首个可用子预测块的运动矢量的预测值;
[0070]180,将首个可用子预测块的运动矢量的预测值插入到预测块的合并候选列表,以构成预测块的运动矢量的新合并候选列表。
[0071]也就是说可以先确定预测块中的首个在参考视中的对应块的运动矢量信息可用的子预测块,然后根据预测块中的首个在参考视中的对应块的运动矢量信息确定预测块中的首个在参考视中的对应块的运动矢量信息可用的子预测块的运动矢量预测值,最后将将首个在参考视中的对应块的运动矢量信息可用的子预测块的运动矢量的预测值插入到合并候选列表中。换句话说,也可以先确定预测块中的第M个子预测块,第M个子预测块在参考视中的对应块的运动矢量信息可用,第M个子预测块之前的全部子预测块在参考视中的对应块的运动矢量信息不可用,然后根据第M个子预测块在参考视中的对应块的运动矢量信息确定第M个子预测块的运动矢量的预测值,最后将第M个子预测块的运动矢量的预测值插入到预测块的运动矢量的合并候选列表,其中M为大于或等于I的整数,当M等于I时表示该首个可用子预测块为预测块中的第一个子预测块。
[0072]应理解,在150中,可以构建预测块的运动矢量的合并候选列表,包括对当前预测块,根据其空间邻域块、时域邻域对应块或视点间对应块的运动信息的可用性,以及针对深度图的当前深度块对应纹理块的运动信息的可用性,构建一个包含当前预测块的多个可用运动矢量的候选(MV candidate)的合并候选列表(candidate list),在对预测块进行运动矢量预测时,从该合并候选列表中挑选一个最佳候选值,作为当前预测块的合并预测模式的运动矢量预测值,同时传送最佳候选值在合并候选列表中的位置信息。
[0073]应理解,在180中,首个可用子预测块的运动矢量的预测值可以插入到候选列表中的多个位置已得到多个运动矢量的不同排列顺序,例如插入到列表中的前部、中部或后部,优选的,插入到候选列表中的前部。
[0074]可选地,预定值可以包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。这些预定值在执行子预测块级视间运动矢量预测之前都是可用的。
[0075]应理解,当前子预测块进行视间运动补偿预测所对应的视差矢量是指当前视的当前块指向参考视的矢量,用于指示当前块相对于参考视的对应位置的偏移量。与利用运动矢量进行运动补偿预测类似,视间运动补偿预测表示利用该视差矢量进行运动补偿预测,获得当前块的预测值。通过视间运动补偿预测得的当前块的预测值来自于参考视。预测块的合并候选列表中的候选矢量为运动矢量的合并候选列表中的任一矢量。零运动矢量可以为数值大小为零、参考图像索引号为零的矢量。
[0076]图5是本发明再一实施例的预测运动矢量的过程的示意流程图。图5所示的方法用于图像或视频的编码或解码过程中,用于编码过程中的方法由编码设备执行,用于解码过程中的方法由解码设备执行。图5为本发明实施例图1的一种运动矢量的预测方法的例子,在此适当省略详细的描述。
[0077]如图5所示,采用直接填充预定值的方式进行空洞填充。图5所示的方法针对当前子预测块对应参考视点相应块的运动信息不可用的情况,直接将预定值确定为当前子预测块的运动矢量预测值。如图5所示的方法包括如下内容。[0078]501,开始运动矢量预测。
[0079]具体地,可以是开始预测块中各个子预测块的运动矢量预测。
[0080]502,遍历预测块的所有子预测块,以便依次对当前预测块的子预测块进行运动矢
量预测。
[0081]具体地,可以遍历当前预测块的所有子预测块,并重复执行503至507,以便逐个对当前预测块的子预测块进行运动矢量预测。也就是从预测块中的第一个子预测块到最后一个子预测块逐个进行运动矢量预测。
[0082]503,判断当前子预测块的参考视中的对应块的运动矢量信息是否可用。如果可用,执行步骤504 ;如果不可用,执行步骤505。
[0083]具体地,运动矢量信息不可用为当前子预测块的参考视中的对应块的中不具有运动矢量信息。可用的运动矢量信息包括运动矢量的大小和运动矢量的参考图像索引号信肩、O
[0084]504,判断当前子预测块是否是预测块中的首个可用子预测块,首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块。如果是,则执行步骤506,如果不是,则执行步骤507。
[0085]也就是说,判断当前子预测块是否是预测块中首次出现的一个子预测块,并且该子预测块在参考视中的对应块的运动矢量信息可用。
[0086]505,将预定值确定为当前子预测块的运动矢量预测值。
[0087]具体地,将预定值确定为当前子预测块的运动矢量的预测值,同时填补了所形成的运动空洞。
[0088]506,将当前子预测块的运动矢量的预测值插入到预测块的运动矢量合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
[0089]也就是说根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;将首个可用子预测块的运动矢量的预测值插入到所述预测块的合并候选列表,以构成预测块的运动矢量的新合并候选列表。
[0090]507,将参考视对应块的运动矢量作为当前子预测块的运动矢量的预测值。
[0091]508,判断当前子预测块是否是最后一个子预测块。如果是,则执行步骤509,如果不是,则执行步骤502。
[0092]具体地,也就是判断当前子预测块之前的所有预测块是否都已经完成运动矢量预测。
[0093]509,结束运动矢量预测过程。
[0094]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用时,将预定值确定为当前子预测块的运动矢量的预测值,这样能够及时确定每个预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定这些预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。。
[0095]例如,图7是本发明实施例的一个预测块的示意图。
[0096]如图7所示,将预测块分为4*4的16个子预测块块,分别为第I个子预测块至第16个子预测块。例如第I个子预测块至第6个子预测块和第11个子预测块所对应的参考视中的对应块的运动矢量信息不可用,第7个子测块至第10个子预测块和第12个子预测块至第16个子预测块所对应的参考视中的对应块的运动矢量信息可用。那么可以利用图5所示的方法对图7所示的预测块中的子预测块的运动矢量预测。由于第I个子预测块至第6个子预测块和第11个子预测块所对应的参考视中的对应块的运动矢量信息不可用,所以将预定值确定为第I个子预测块至第6个子预测块和第11个子预测块的运动矢量预测值;由于第7个子测块至第10个子预测块和第12个子预测块至第16个子预测块所对应的参考视中的对应块的运动矢量信息可用所以将第7个子测块至第10个子预测块和第12个子预测块至第16个子预测块它们各自对应块的运动矢量信息作为它们各自的运动矢量预测值;由于第7个子预测块是预测块中的首个在参考视中的对应块的运动矢量信息可用的子预测块,所以将第7个子预测块的运动矢量预测值插入到该预测块的合并候选列表,构成预测块的运动矢量的新合并候选列表。
[0097]应注意,图5的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图5的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0098]应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0099]应理解,图7中的第I个子预测块至第6个子预测块和第11个子预测块的运动矢量预测值可以相同,也可以不同,也就是说第I个子预测块至第6个子预测块和第11个子预测块共有7个运动矢量的预测值,该7个预测值可以都不相同,也可以部分相同,本发明实施例并不对此做限定。
[0100]应注意,图7中预测块和子预测块只是示意性的表示,图7所示的预测块分为4*4的16个子预测块,在实际应用中,预测块可以分为多个子预测块,例如可以分为3*3的9个子预测块或5*5的25个子预测块,本发明实施例并不对此做限定,图7所示的预测块的子预测块的标号为横向排序标号方式,预测块的子预测块的标号方式还可以为其他方式,例如为倒序标号,或纵向标号等,本发明并不对此做限定。也就是说图7的例子仅仅是为了帮助本领域技术人员理解本发明实施例,而非要将本发明实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图7的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0101]图6是本发明再一实施例的预测运动矢量的过程的示意流程图。图6所示的方法用于图像或视频的编码或解码过程中,用于编码过程中的方法由编码设备执行,用于解码过程中的方法由解码设备执行。图6为本发明实施例图2的一种运动矢量的预测方法的例子,在此适当省略详细的描述。
[0102]如图6所示,如果第一个子预测块的参考视中的对应块的运动信息不可用,直接将预定值确定为当前子预测块的运动矢量预测值;后面出现的对应的参考视中的对应块的运动矢量信息不可用的子预测块,将直接继承前一个子预测块的运动矢量的预测值。如图6所示的方法,包括:
[0103]601,开始运动矢量预测。
[0104]具体地,可以是开始预测块中子预测块的运动矢量预测。
[0105]602,遍历预测块的所有子预测块,以便依次对当前预测块的子预测块进行运动矢量预测。
[0106]具体地,可以遍历当前预测块的所有子预测块,并重复执行603至609以便逐个对当前预测块的子预测块进行运动矢量预测。也就是从预测块中的第一个子预测块到最后一个子预测块逐个进行运动矢量预测。
[0107]603,判断当前子预测块的参考视中的对应块的运动矢量信息是否可用。如果可用,执行步骤604 ;如果不可用,执行步骤605。
[0108]具体地,运动矢量信息不可用为当前子预测块的参考视中的对应块的中不具有运动矢量信息。运动矢量信息可用为运动矢量信息包括运动矢量的大小和运动矢量的参考图像索引号信息。
[0109]604,判断当前子预测块是否是预测块中的首个可用子预测块,首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块。如果是,则执行步骤606,如果不是,则执行步骤607。
[0110]也就是说,判断当前子预测块是否是预测块中首次出现的一个子预测块,并且该子预测块在参考视中的对应块的运动矢量信息可用。
[0111]605,判断当前子预测块是否是第一个子预测块。如果是,则执行步骤608,如果不是,则执行步骤609。
[0112]具体地,判断当前子预测块是否是预测的首个子预测块,也就是判断当前子预测块是否为该预测块的多个子预测块中的首个子预测块。
[0113]606,将当前子预测块的运动矢量预测值插入到预测块的运动矢量合并候选列表中,以构成所述预测块的运动矢量的新合并候选列表。
[0114]也就是说根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;将首个可用子预测块的运动矢量的预测值插入到所述预测块的合并候选列表,以构成预测块的运动矢量的新合并候选列表。
[0115]607,将参考视对应块的运动矢量作为当前子预测块的运动矢量预测值。
[0116]608,将预定值确定为当前子预测块的运动矢量预测值。
[0117]具体地,将将预定值确定为当前子预测块的运动矢量的预测值,同时填补了所形成的运动空洞。
[0118]609,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值。
[0119]610,判断当前子预测块是否是最后一个子预测块。如果是,则执行步骤611,如果不是,则执行步骤602。
[0120]具体地,判断当前子预测块之前的所有预测块是否都已经完成运动矢量预测。
[0121]611,结束运动矢量预测过程。
[0122]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用时,将预定值确定为当前子预测块的运动矢量的预测值,这样能够及时确定每个预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定这些预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0123]例如,图7是本发明实施例的预测块的示意图。[0124]如图7所示,将预测块分为4*4的16个子预测块块,分别为第I个子预测块至第16个子预测块。例如第I个子预测块至第6个子预测块和第11个子预测块所对应的参考视中的对应块的运动矢量信息不可用,第7个子测块至第10个子预测块和第12个子预测块至第16个子预测块所对应的参考视中的对应块的运动矢量信息可用。那么可以利用图6所示的方法对图7所示的预测块中的子预测块的运动矢量预测。由于第I个子预测块所对应的参考视中的对应块的运动矢量信息不可用,所以将预定值确定为第I个子预测块的运动矢量预测值;由于,在第一个子预测块之后的第2个子预测块至第6个子预测块所对应的参考视中的对应块的运动矢量信息不可用,由于图6所示方法为将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,所以第2个子预测块的运动矢量的预测值与第I个子预测块的运动矢量预测值相同,即为同一个预定值,同理,第3个子预测块至第6个子预测块的运动矢量预测值也与第I个子预测块和第2个子预测块的运动矢量预测值相同;同理,第11个子预测的运动矢量预测值与第10个子预测块的运动矢量预测值相同;由于第7个子预测块是预测块中的首个在参考视中的对应块的运动矢量信息可用的子预测块,所以将第7个子预测块的运动矢量预测值插入到该预测块的合并候选列表,构成了预测块的新合并候选列表。
[0125]应注意,图6的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图6的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0126]应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0127]可选地,作为另一实施例,如果从预测块中的第一个子预测块到最后一个子预测块逐个进行运动矢量预测后,如果所有的预测块的对应块中的运动矢量信息都不可用,则认为该预测块的视间运动补偿预测候选(IV-MCP candidate)无效,在这种情况下,可以不将运动矢量信息插入该预测块的运动矢量合并候选列表中。
[0128]上文中结合图1至图7,详细描述了根据本发明实施例的预测运动矢量的方法和过程,下面结合图8至图12描述根据本发明实施例的编码设备,结合图13至图17描述根据本发明实施例的解码设备。
[0129]图8是本发明一个实施例的编码设备示意框图。图8所示的编码设备800包括第一确定单元810和第二确定单元820。
[0130]具体地,第一确定单元810用于确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用。第二确定单元820用于在当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,预定值为已确定的值。
[0131]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用并确定当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,这样能够及时确定第一个子预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定第一个子预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0132]编码设备800能够实现图1的实施例中由编码设备实现的各个过程,为避免重复,这里不再赘述。[0133]可选地,作为另一实施例,如图9所示编码设备900还包括:第三确定单元830。
[0134]具体地,第三确定单元830用于在当前子预测块为预测块中的第N个子预测块时,将预定值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0135]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用时,将预定值确定为当前子预测块的运动矢量的预测值,这样能够及时确定每个预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定这些预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0136]编码设备900能够实现图2的实施例中由编码设备实现的各个过程,为避免重复,这里不再赘述。
[0137]可选地,作为另一实施例,如图10所示编码设备1000还包括:第四确定单元840。
[0138]具体地,第四确定单元840用于在当前子预测块为预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0139]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用时,将预定值确定为当前子预测块的运动矢量的预测值,这样能够及时确定每个预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定这些预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。由于使用了相关性更高的相邻子预测块的运动矢量来填充空洞,有利于提高当前子预测块的运动补偿预测精度。
[0140]编码设备1000能够实现图3的实施例中由编码设备实现的各个过程,为避免重复,在此不再赘述。
[0141]可选地,作为另一实施例,如图11所示编码设备1100还包括:构建单元850、第五确定单元860、第六确定单元870和插入单元880。
[0142]具体地,构建单元850用于构建预测块的运动矢量的合并候选列表,合并候选列表包括预测块的多个候选运动矢量;第五确定单元,用于确定预测块中的首个可用子预测块,首个可用子预测块为在参考视中的对应块的运动矢量信息可用的子预测块;第六确定单元,用于根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;插入单元,用于将首个可用子预测块的运动矢量的预测值插入到预测块的合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
[0143]编码设备1100能够实现图4的实施例中由编码设备实现的各个过程,为避免重复,这里不再赘述。
[0144]可选地,作为另一实施例,预定值包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。
[0145]应理解,当前子预测块进行视间运动补偿预测所对应的视差矢量是指当前视的当前块指向参考视的矢量,用于指示当前块相对于参考视的对应位置的偏移量。与利用运动矢量进行运动补偿预测类似,视间运动补偿预测表示利用该视差矢量进行运动补偿预测,获得当前块的预测值。通过视间运动补偿预测得的当前块的预测值来自于参考视。预测块的合并候选列表中的候选矢量为运动矢量的合并候选列表中的任一矢量。零运动矢量可以为数值大小为零、参考图像索引号为零的矢量。
[0146]图12是本发明再一实施例的编码设备示意框图。图12所示的编码设备1200包括处理器1210,存储器1220和总线系统1230。
[0147]具体地,处理器1210用于通过总线系统1230调用存储在存储器1220中的代码,以确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用;在当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,预定值为已确定的值。
[0148]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用并确定当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,这样能够及时确定第一个子预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定第一个子预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0149]编码设备1200中的各个组件通过总线系统1230耦合在一起,其中总线系统1240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统1230。
[0150]上述本发明实施例揭示的方法可以应用于处理器1210中,或者由处理器1210实现。处理器1210可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1210中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1210可以是通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit, ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random AccessMemory, RAM)、闪存、只读存储器(Read-Only Memory, ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1220,处理器1210读取存储器1220中的信息,结合其硬件完成上述方法的步骤。
[0151]编码设备1220能够实现图1的实施例中由编码设备实现的各个过程,为避免重复,这里不再赘述。
[0152]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用并确定当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,这样能够及时确定第一个子预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定第一个子预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0153]可选地,作为另一实施例,处理器1210还用于在当前子预测块为预测块中的第N个子预测块时,将预定值确定为第N个子预测块的运动矢量的预测值,其中,N为大于或等于2的整数。
[0154]可选地,作为另一实施例,处理器1210还用于在当前子预测块为预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0155]可选地,作为另一实施例,处理器1210还用于构建预测块的运动矢量的合并候选列表,合并候选列表包括预测块的多个候选运动矢量;确定预测块中的首个可用子预测块,首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块;根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;将首个可用子预测块的运动矢量的预测值插入到预测块的合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
[0156]可选地,作为另一实施例,预定值包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。
[0157]应理解,当前子预测块进行视间运动补偿预测所对应的视差矢量是指当前视的当前块指向参考视的矢量,用于指示当前块相对于参考视的对应位置的偏移量。与利用运动矢量进行运动补偿预测类似,视间运动补偿预测表示利用该视差矢量进行运动补偿预测,获得当前块的预测值。通过视间运动补偿预测得的当前块的预测值来自于参考视。预测块的合并候选列表中的候选矢量为运动矢量的合并候选列表中的任一矢量。零运动矢量可以为数值大小为零、参考图像索引号为零的矢量。
[0158]图13是本发明一个实施例的解码设备示意框图。图13所示的解码设备1300包括第一确定单元1310和第二确定单元1320。
[0159]具体地,第一确定单元1310用于确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用。第二确定单元1320用于在当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,预定值为已确定的值。
[0160]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用并确定当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,这样能够及时确定第一个子预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定第一个子预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0161]解码设备1300能够实现图1的实施例中由解码设备实现的各个过程,为避免重复,这里不再赘述。
[0162]可选地,作为另一实施例,如图14所示解码设备1400还包括:第三确定单元1330。
[0163]具体地,第三确定单元1330用于在当前子预测块为预测块中的第N个子预测块时,将预定值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0164]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用时,将预定值确定为当前子预测块的运动矢量的预测值,这样能够及时确定每个预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定这些预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0165]解码设备1400能够实现图2的实施例中由解码设备实现的各个过程,为避免重复,这里不再赘述。[0166]可选地,作为另一实施例,如图15所示解码设备1500还包括:第四确定单元1340。
[0167]具体地,第四确定单元1340用于在当前子预测块为预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0168]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用时,将预定值确定为当前子预测块的运动矢量的预测值,这样能够及时确定每个预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定这些预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。由于使用了相关性更高的相邻子预测块的运动矢量来填充空洞,有利于提高当前子预测块的运动补偿预测精度。
[0169]解码设备1500能够实现图3的实施例中由解码设备实现的各个过程,为避免重复,在此不再赘述。
[0170]可选地,作为另一实施例,如图16所示解码设备1600还包括:构建单元1350、第五确定单元1360、第六确定单元1370和插入单元1380。
[0171]具体地,构建单元1350用于构建预测块的运动矢量的合并候选列表,合并候选列表包括预测块的多个候选运动矢量;第五确定单元,用于确定预测块中的首个可用子预测块,首个可用子预测块为在参考视中的对应块的运动矢量信息可用的子预测块;第六确定单元,用于根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;插入单元,用于将首个可用子预测块的运动矢量的预测值插入到预测块的合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
[0172]解码设备1600能够实现图4的实施例中由解码设备实现的各个过程,为避免重复,这里不再赘述。
[0173]可选地,作为另一实施例,预定值包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。
[0174]应理解,当前子预测块进行视间运动补偿预测所对应的视差矢量是指当前视的当前块指向参考视的矢量,用于指示当前块相对于参考视的对应位置的偏移量。与利用运动矢量进行运动补偿预测类似,视间运动补偿预测表示利用该视差矢量进行运动补偿预测,获得当前块的预测值。通过视间运动补偿预测得的当前块的预测值来自于参考视。预测块的合并候选列表中的候选矢量为运动矢量的合并候选列表中的任一矢量。零运动矢量可以为数值大小为零、参考图像索引号为零的矢量。
[0175]图17是本发明再一实施例的解码设备示意框图。图17所示的解码设备1700包括处理器1710,存储器1720和总线系统1730。
[0176]具体地,处理器1710用于通过总线系统1730调用存储在存储器1720中的代码,以确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用;在当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,预定值为已确定的值。
[0177]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用并确定当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,这样能够及时确定第一个子预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定第一个子预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0178]解码设备1700中的各个组件通过总线系统1730耦合在一起,其中总线系统1740除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图17中将各种总线都标为总线系统1730。
[0179]上述本发明实施例揭示的方法可以应用于处理器1710中,或者由处理器1710实现。处理器1710可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1710中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1710可以是通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit, ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random AccessMemory, RAM)、闪存、只读存储器(Read-Only Memory, ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1720,处理器1710读取存储器1720中的信息,结合其硬件完成上述方法的步骤。
[0180]解码设备1720能够实现图1的实施例中由解码设备实现的各个过程,为避免重复,这里不再赘述。
[0181]因此,本发明实施例在确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用并确定当前子预测块为预测块中的第一个子预测块时,确定第一个子预测块的运动矢量的预测值为预定值,这样能够及时确定第一个子预测块的运动矢量的预测值,而无需等到确定首个在参考视中的对应块的运动矢量信息可用的子预测块才确定第一个子预测块的运动矢量,从而能够消除预测运动矢量过程中的延迟问题。
[0182]可选地,作为另一实施例,处理器1710还用于在当前子预测块为预测块中的第N个子预测块时,将预定值确定为第N个子预测块的运动矢量的预测值,其中,N为大于或等于2的整数。
[0183]可选地,作为另一实施例,处理器1710还用于在当前子预测块为预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
[0184]可选地,作为另一实施例,处理器1710还用于构建预测块的运动矢量的合并候选列表,合并候选列表包括预测块的多个候选运动矢量;确定预测块中的首个可用子预测块,首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块;根据首个可用子预测块的对应块的运动矢量信息确定首个可用子预测块的运动矢量的预测值;将首个可用子预测块的运动矢量的预测值插入到预测块的合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
[0185]可选地,作为另一实施例,预定值包括零运动矢量、当前子预测块进行视间运动补偿预测所对应的视差矢量或预测块的合并候选列表中的候选矢量。
[0186]应理解,当前子预测块进行视间运动补偿预测所对应的视差矢量是指当前视的当前块指向参考视的矢量,用于指示当前块相对于参考视的对应位置的偏移量。与利用运动矢量进行运动补偿预测类似,视间运动补偿预测表示利用该视差矢量进行运动补偿预测,获得当前块的预测值。通过视间运动补偿预测得的当前块的预测值来自于参考视。预测块的合并候选列表中的候选矢量为运动矢量的合并候选列表中的任一矢量。零运动矢量可以为数值大小为零、参考图像索引号为零的矢量。
[0187]本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和块,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0188]结合本文中所公开的实施例描述的方法或步骤可以用硬件、处理器执行的软件程序,或者二者的结合来实施。软件程序可以置于随机存储器(RAM)、内存、只读存储器(ROM),电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0189]尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。
【权利要求】
1.一种预测运动矢量的方法,其特征在于,包括: 确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用; 在所述当前子预测块为所述预测块中的第一个子预测块时,确定所述第一个子预测块的运动矢量的预测值为预定值,所述预定值为已确定的值。
2.根据权利要求1所述的方法,其特征在于,还包括: 在所述当前子预测块为所述预测块中的第N个子预测块时,将所述预定值确定为所述第N个子预测块的运动矢量的预测值,其中,N为大于或等于2的整数。
3.根据权利要求1所述的方法,其特征在于,还包括: 在所述当前子预测块为所述预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为所述第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
4.根据权利要求1-3中任一项所述的方法,其特征在于,还包括: 构建所述预测块的运动矢量的合并候选列表,所述合并候选列表包括所述预测块的多个候选运动矢量; 确定所述预测块中的首个可用子预测块,所述首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的 子预测块; 根据所述首个可用子预测块的对应块的运动矢量信息确定所述首个可用子预测块的运动矢量的预测值; 将所述首个可用子预测块的运动矢量的预测值插入到所述预测块的合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
5.根据权利要求4所述的方法,其特征在于,所述预定值包括零运动矢量、所述当前子预测块进行视间运动补偿预测所对应的视差矢量或所述预测块的合并候选列表中的候选矢量。
6.根据权利要求5所述的方法,其特征在于,所述零运动矢量为数值大小为零、参考图像索引号为零的矢量。
7.一种编码设备,其特征在于,包括: 第一确定单元,用于确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用; 第二确定单元,用于在所述当前子预测块为所述预测块中的第一个子预测块时,确定所述第一个子预测块的运动矢量的预测值为预定值,所述预定值为已确定的值。
8.根据权利要求7所述的编码设备,其特征在于,还包括: 第三确定单元,用于在所述当前子预测块为所述预测块中的第N个子预测块时,将所述预定值确定为所述第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
9.根据权利要求7所述的编码设备,其特征在于,还包括: 第四确定单元,用于在所述当前子预测块为所述预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为所述第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
10.根据权利要求7-9中任一项所述的编码设备,其特征在于,还包括: 构建单元,用于构建所述预测块的运动矢量的合并候选列表,所述合并候选列表包括所述预测块的多个候选运动矢量; 第五确定单元,用于确定所述预测块中的首个可用子预测块,所述首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块; 第六确定单元,用于根据所述首个可用子预测块的对应块的运动矢量信息确定所述首个可用子预测块的运动矢量的预测值; 插入单元,用于将所述首个可用子预测块的运动矢量的预测值插入到所述预测块的合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
11.根据权利要求10所述的编码设备,其特征在于,所述预定值包括零运动矢量、所述当前子预测块进行视间运动补偿预测所对应的视差矢量或所述预测块的合并候选列表中的候选矢量。
12.根据权利要求11所 述的编码设备,其特征在于,所述零运动矢量为数值大小为零、参考图像索引号为零的矢量。
13.—种解码设备,其特征在于,包括: 第一确定单元,用于确定预测块中的当前子预测块的参考视中的对应块的运动矢量信息不可用; 第二确定单元,用于在所述当前子预测块为所述预测块中的第一个子预测块时,确定所述第一个子预测块的运动矢量的预测值为预定值,所述预定值为已确定的值。
14.根据权利要求13所述的解码设备,其特征在于,还包括: 第三确定单元,用于在所述当前子预测块为所述预测块中的第N个子预测块时,将所述预定值确定为所述第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
15.根据权利要求13所述的解码设备,其特征在于,还包括: 第四确定单元,用于在所述当前子预测块为所述预测块中的第N个子预测块时,将第N-1个子预测块的运动矢量的预测值确定为所述第N个子预测块的运动矢量的预测值,其中,N为大于等于2的整数。
16.根据权利要求13-15中任一项所述的解码设备,其特征在于,还包括: 构建单元,用于构建所述预测块的运动矢量的合并候选列表,所述合并候选列表包括所述预测块的多个候选运动矢量; 第五确定单元,用于确定所述预测块中的首个可用子预测块,所述首个可用子预测块为首个在参考视中的对应块的运动矢量信息可用的子预测块; 第六确定单元,用于根据所述首个可用子预测块的对应块的运动矢量信息确定所述首个可用子预测块的运动矢量的预测值; 插入单元,用于将所述首个可用子预测块的运动矢量的预测值插入到所述预测块的合并候选列表,以构成所述预测块的运动矢量的新合并候选列表。
17.根据权利要求16所述的解码设备,其特征在于,所述预定值包括零运动矢量、所述当前子预测块进行视间运动补偿预测所对应的视差矢量或所述预测块的合并候选列表中的候选矢量。
18.根据权利要求17所述的解码设备,其特征在于,所述零运动矢量为数值大小为零、参考图像索引号为零的矢量。
【文档编号】H04N13/00GK103747264SQ201410004055
【公开日】2014年4月23日 申请日期:2014年1月3日 优先权日:2014年1月3日
【发明者】林永兵, 张玉花, 朱策 申请人:华为技术有限公司