本发明涉及视频编/解码技术领域,更具体地,涉及一种运动矢量精度与运动矢量预测之间的对应方法、基于该方法的运动矢量信息的编/解码方法和装置。
背景技术:
在自然视频中,图像与图像之间存在很高的相似性。因此在视频压缩时,为了去除图像与图像之间的信息冗余,往往要进行帧间预测。所谓的帧间预测就是利用已经编码过的图像对当前要编码的图像进行预测,然后将预测误差传递给解码器。与直接传输当前图像的内容相比,预测误差的信息量要小得多,这样就达到了压缩的目的。实际在进行帧间预测时,编码器需要对每个图像块在之前已编码的参考图像中寻找一个尽量与之匹配的参考块,这样才能最大限度地减少预测误差。当前块与参考块之间的位置差称为运动矢量,运动矢量信息也需要在码流中传输,这样解码器才能知道当前块的参考块是哪个块。
所以,虽然帧间预测这一技术减少了在码流中传输的像素信息,但是却增加了需要传输的新的信息。随着预测技术的发展,预测误差越来越小,这样运动矢量信息在码流中所占的比例就越来越大了。所以,运动矢量信息也需要压缩。目前的方法是对运动矢量进行预测,将运动矢量预测和运动矢量的差值写入码流,这一差值称为运动矢量差。运动矢量差的大小要比原运动矢量大小小得多,这样就起到了对运动矢量信息的压缩作用。
当前块的运动矢量是可以预测的。一种运动矢量预测的方法利用空间上运动矢量的相关性,将几个周边块的运动矢量通过条件判断与计算得出唯一的一个运动矢量预测,我们称之为唯一运动矢量预测技术。视频编码领域的专家还提出了高级运动矢量预测技术。该技术利用空间、时间上的运动矢量的相关性,分别建立空域候选列表和时域候选列表,再从候选列表中选取最优的运动矢量预测。空域候选列表需要当前块的周边块的运动矢量或运动矢量的缩放,时域候选列表需要临近已编码图像中对应参考块位置的块的运动矢量的缩放。编码器从空域和时域候选列表中选择最优运动矢量预测并将其索引写入码流。
近年又出现了一种叫做基于历史信息的运动矢量预测技术,简称hmvp。该技术建立并维护一个一定长度的运动矢量列表,该运动矢量列表是一个先进先出或有(保证不重复)限制的先进先出的队列。编码器同样要将最优运动矢量预测的索引写入码流。基于历史信息的运动矢量预测技术增加了运动矢量预测候选的数目,从而有助于提高编码性能。
在提高帧间预测效率方面,为了能够得到与当前块更为匹配的参考块,目前的编解码器都采用了分像素帧间预测,也就说参考块在参考图像中的位置并不一定是整像素,也可以是分像素。为了支持分像素的参考块,运动矢量的精度也必须是分像素的,进而运动矢量差也是分像素精度的。这样,一方面由于分像素位置的参考块的使用提高了帧间预测的效率降低了预测误差,另一方面由于分像素精度的运动矢量差的使用而增加了运动矢量信息在码流中传输时所需要的比特数。
为了平衡这一矛盾,视频编码领域的专家们又提出了变精度的运动矢量技术。所谓变精度的运动矢量技术就是说码流中传输的运动矢量差以及实际编解码时使用的运动矢量的精度是非固定的,不同的图像块可以采用的不同的运动矢量精度。这样,一些大的运动矢量差可以用低像素精度的运动矢量差表示以减少传输比特。
变精度运动矢量技术的实现方法:由编码器根据当前图像块的情况来选择运动矢量精度,然后在码流中传输所使用的精度值的索引。
这样在码流中需要写入运动矢量预测的索引和运动矢量精度的索引。有专家提出一个运动矢量精度对应空域或时域上一个特定位置的运动矢量预测的方法。我们称之为时空运动矢量预测绑定的变精度运动矢量技术。例如第一个运动矢量精度对应的是从其左边相邻块得到的运动矢量预测。这样就减少了运动矢量预测的索引在码流中的传输,进一步提高了编码的效率。
国际最新视频编码标准vvc和国内最新视频编码标准avs3在帧间跳过模式和帧间直接模式编码中都采用了基于hmvp技术。这项技术在帧间跳过模式和直接模式的情况下,扩展了候选运动信息列表,即将编码器曾经使用过的运动信息(称为历史运动信息)添加到候选运动信息列表中,编码器可以获得更多的运动信息以用于预测。同时,在vvc或者avs3中,这些扩展到候选运动信息列表中的运动信息也需要通过索引值进行标识,这样就可以通过索引值确定帧内跳过模式或者帧内直接模式采用的是候选运动信息列表中的哪个运动信息。
上述现有技术中存在的问题
高级运动矢量预测和基于历史信息的运动矢量预测虽然提供了多个运动矢量预测候选,但是需要在码流中传输运动矢量预测的索引值。而时空运动矢量预测绑定的变精度运动矢量技术虽然省去了在码流中传输运动矢量预测索引值,但它所采用的只有时间上和空间上相邻的块的运动矢量预测,存在着一定的局限性。
另一方面在vvc或者avs3中候选运动信息列表中的运动信息索引值的编码效率并不高,主要体现在运动信息索引值的二值化上,现有标准中采用的都是截断一元码的二值化方式。在采纳hmvp编码技术后,随着候选运动信息列表中的运动信息数量的增加,运动信息的索引值的概率分布不再满足随着运动信息的索引值增大概率值递减的分布,所以需要有新二值化方式。
技术实现要素:
技术方案
为了解决现有技术中存在的上述问题,在本申请的第一方面中,提供了一种运动矢量信息的编码方法,包括:针对每一个运动矢量精度,基于变精度运动矢量精度列表中的运动矢量精度至少部分与基于历史信息的运动矢量预测列表中的运动矢量预测相对应的对应关系,来确定所对应的运动矢量预测;确定最终的运动矢量精度和运动矢量预测的组合,并且基于所确定的最终的运动矢量预测确定最终的预测矢量差值;以及在码流中至少编码所述最终的运动矢量预测精度信息和所述最终的运动矢量差值信息。
根据第一方面,其中,所述变精度运动矢量精度列表中的至少一个运动矢量精度与经由唯一运动矢量预测方法的唯一运动矢量预测相对应,所述变精度运动矢量精度列表中的其余的运动矢量精度与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
根据第一方面,其中,所述变精度运动矢量精度列表中的一部分运动矢量精度与经由时空运动矢量预测绑定的变精度运动矢量方法获得的空域候选列表、时域候选列表中的运动矢量预测相对应,并且所述变精度运动矢量精度列表中的其余部分的运动矢量精度与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
根据第一方面,所述运动矢量精度与所述运动矢量预测的对应顺序为顺序对应和逆序对应之一,其中:所述顺序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序一致;所述逆序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序相反。
根据第一方面,其中,当所述运动矢量精度的数量大于所述运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度按照已进行了对应操作的运动矢量精度进行对应操作所遵循的所述顺序对应和所述逆序对应之一再次与所述运动矢量预测相对应,直至所有运动矢量精度均对应。
根据第一方面,其中,当所述运动矢量精度的数量大于所述运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度均与所述运动矢量预测中的某一运动矢量预测相对应。
根据第一方面,其中,当所述运动矢量精度的数量大于所述运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度不与所述运动矢量预测中的任何运动矢量预测相对应。
根据第一方面,其中,所述运动矢量精度的第一个运动矢量精度和最后一个运动矢量精度之一与所述唯一运动矢量预测相对应,所述运动矢量精度的其余的运动矢量精度与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应,且对应顺序为顺序对应和逆序对应之一,其中:所述顺序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序一致;以及所述逆序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序相反。
根据第一方面,其中,当所述运动矢量精度的其余的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度均与所述唯一运动矢量预测相对应。
根据第一方面,其中,当所述运动矢量精度的其余的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测数量时,所述运动矢量精度中未进行对应操作的运动矢量精度按照已经进行了对应操作的运动矢量精度进行对应操作所遵循的所述顺序对应和所述逆序对应之一,再次与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应,直至所有运动矢量精度均对应。
根据第一方面,其中,当所述运动矢量精度的其余的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度均与所述基于历史信息的运动矢量预测列表中的某一运动矢量预测相对应。
根据第一方面,其中,当所述运动矢量精度的其余的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度不与任何运动矢量预测相对应。
根据第一方面,其中,所述运动矢量精度中的第一部分与所述空域候选列表、时域候选列表中的运动矢量预测相对应,所述运动矢量精度中的除了所述第一部分之外的第二部分与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
根据第一方面,其中,所述第二部分的运动矢量精度与所述基于历史信息的运动矢量预测列表中的运动矢量预测的对应顺序为顺序对应和逆序对应之一,其中:所述顺序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序一致;所述逆序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序相反。
根据第一方面,其中,当所述第二部分中的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述第二部分中未进行对应操作的运动矢量精度按照所述第二部分已经进行了对应操作的运动矢量精度进行对应操作所遵循的所述顺序对应和所述逆序对应之一,再次与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应,直至所有运动矢量精度均对应。
根据第一方面,其中,当所述第二部分中的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述第二部分中未进行对应操作的运动矢量精度均与所述基于历史信息的运动矢量预测列表中的某一运动矢量预测相对应。
根据第一方面,其中,当所述第二部分中的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述第二部分中未进行对应操作的运动矢量精度不与任何运动矢量预测相对应。
根据第一方面,其中,在当前运动矢量预测在已对应过的运动矢量预测中已出现过的情况下,则跳过当前运动矢量预测,当前运动矢量精度与符合限制的运动矢量预测相对应,其中,所述限制为:运动矢量预测未在已对应过的运动矢量预测中出现过。
根据第一方面,其中,在没有符合所述限制的候选运动矢量预测的情况下,则未对应的运动矢量精度均与某一运动矢量预测相对应。
根据第一方面,还包括:确定预测方向,并且基于所述预测方向确定参考帧。
根据第一方面,其中,所述确定预测方向包括:在运动矢量预测的预测方向为只参考第一个参考帧列表的第一方向、只参考第二个参考帧列表的第二方向、或者参考两个参考帧列表的第三个方向中的一个方向的情况下,则将所述预测方向确定为所参考的那一个方向。
根据第一方面,其中,所述确定预测方向包括:在运动矢量预测的预测方向为只参考第一个参考帧列表的第一方向、只参考第二个参考帧列表的第二方向的情况下,将所述预测方向确定为所参考的那一种方向;在运动矢量预测的预测方向为参考两个参考帧列表的第三方向的情况下,则将所述预测方向确定为所述第一方向、所述第二方向和所述第三方向。
根据第一方面,其中,所述基于所述预测方向确定参考帧包括:将所述参考帧确定为运动矢量预测在所确定的预测方向对应的参考帧。
根据第一方面,其中,所述确定最终的运动矢量精度和运动矢量预测的组合并且基于所确定的最终的运动矢量预测确定最终的预测矢量差值包括:通过运动搜索的方法确定不同运动精度下不同预测方向下不同参考帧下的最优运动矢量并计算运动矢量差值;以及比较采用不同精度下不同预测方向下不同参考帧下的最优运动矢量对当前块进行编码的编码代价,以此确定最终的运动矢量精度和运动矢量预测的组合、最终的预测方向、最终的参考帧以及所述最终运动矢量精度下的最终运动矢量差值。
根据第一方面,其中,无论运动矢量精度对应的运动矢量预测的预测方向为何,均不在码流中编码预测方向信息,而是认为预测方向与运动矢量精度相对应的运动矢量预测的预测方向相同。
根据第一方面,其中,在运动矢量预测的预测方向为只参考第一个参考帧列表的第一方向、只参考第二个参考帧列表的第二方向的情况下,则均不在码流中编码预测方向信息,而是将其视为与运动矢量精度相对应的运动矢量预测的预测方向;在运动矢量预测的预测方向为参考两个参考帧列表的第三方向的情况下,则将预测方向信息随所确定的最终的运动矢量精度信息和最终的运动矢量差值信息一起编码入码流中。
根据第一方面,其中,无论所述最终参考帧为何,均不在码流中编码参考帧信息,而是将其视为所述最终运动矢量精度相对应的运动矢量预测的参考帧。
根据第一方面,其中,在所述最终预测方向为只参考第一个参考帧列表的第一方向或只参考第二个参考帧列表的第二方向的情况下,则不在码流中编码参考帧信息,将所述最终参考帧确定为与所述最终运动精度相对应的运动矢量预测的参考帧;以及在所述最终预测方向为参考两个参考帧列表的第三方向的情况下,则还在码流中编码参考帧信息。
根据第一方面,还包括:确定最终的运动矢量预测模式,并且在码流中编码所述最终的运动矢量预测模式。
根据第一方面,其中,所述确定运动矢量预测模式包括:在不使用所述运动矢量精度至少部分地与运动矢量预测相对应的对应关系的第一模式下得出针对当前块的第一编码代价;在使用所述运动矢量精度至少部分地与运动矢量预测相对应的对应关系的第二模式下得出针对当前块的第二编码代价;以及将所述第一编码代价与所述第二编码代价进行比较,选择编码代价小的模式为最终运动矢量预测模式。
根据第一方面,还包括:在所述最终运动矢量预测模式为所述第一模式的情况下,还在码流中编码最终的运动矢量预测信息;以及在所述最终运动矢量预测模式为所述第二模式的情况下,不在码流中编码最终的运动矢量预测信息。
在本申请的第二方面中,提供了一种运动矢量信息编码装置,在其中执行根据第一方面所述的方法。
在本申请的第三方面中,提供了一种运动矢量信息的解码方法,包括:从码流中解析得到运动矢量精度信息、运动矢量差值信息;基于变精度运动矢量精度列表中的运动矢量精度至少部分与基于历史信息的运动矢量预测列表中的运动矢量预测相对应的对应关系,根据解析得到的运动矢量精度信息确定对应的运动矢量预测;以及根据所述运动矢量精度信息、所述运动矢量差值信息以及所述运动矢量预测解码出所述运动矢量信息。
根据本申请的第三方面,其中,所述变精度运动矢量精度列表中的至少一个运动矢量精度与经由唯一运动矢量预测方法的唯一运动矢量预测相对应,所述变精度运动矢量精度列表中的其余的运动矢量精度与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
根据本申请的第三方面,其中,所述变精度运动矢量精度列表中的一部分运动矢量精度与经由时空运动矢量预测绑定的变精度运动矢量方法获得的空域候选列表、时域候选列表中的运动矢量预测相对应,并且所述变精度运动矢量精度列表中的其余部分的运动矢量精度与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
根据本申请的第三方面,所述运动矢量精度与所述运动矢量预测的对应顺序为顺序对应和逆序对应之一,其中:所述顺序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序一致;所述逆序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序相反。
根据本申请的第三方面,其中,当所述运动矢量精度的数量大于所述运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度按照已进行了对应操作的运动矢量精度进行对应操作所遵循的所述顺序对应和所述逆序对应之一再次与所述运动矢量预测相对应,直至所有运动矢量精度均对应。
根据本申请的第三方面,其中,当所述运动矢量精度的数量大于所述运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度均与所述运动矢量预测中的某一运动矢量预测相对应。
根据本申请的第三方面,其中,当所述运动矢量精度的数量大于所述运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度不与所述运动矢量预测中的任何运动矢量预测相对应。
根据本申请的第三方面,其中,所述运动矢量精度的第一个运动矢量精度和最后一个运动矢量精度之一与所述唯一运动矢量预测相对应,所述运动矢量精度的其余的运动矢量精度与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应,且对应顺序为顺序对应和逆序对应之一,其中:所述顺序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序一致;以及所述逆序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序相反。
根据本申请的第三方面,其中,当所述运动矢量精度的其余的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度均与所述唯一运动矢量预测相对应。
根据本申请的第三方面,其中,当所述运动矢量精度的其余的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度按照已经进行了对应操作的运动矢量精度进行对应操作所遵循的所述顺序对应和所述逆序对应之一,再次与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应,直至所有运动矢量精度均对应。
根据本申请的第三方面,其中,当所述运动矢量精度的其余的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度均与所述基于历史信息的运动矢量预测列表中的某一运动矢量预测相对应。
根据本申请的第三方面,其中,当所述运动矢量精度的其余的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述运动矢量精度中未进行对应操作的运动矢量精度不与任何运动矢量预测相对应。
本申请的第三方面,其中,所述运动矢量精度中的第一部分与所述空域候选列表、时域候选列表中的运动矢量预测相对应,所述运动矢量精度中的除了所述第一部分之外的第二部分与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
根据本申请的第三方面,其中,所述第一部分的运动矢量精度与所述空域候选列表、时域候选列表中的运动矢量预测的对应顺序为顺序对应和逆序对应之一,以及所述第二部分的运动矢量精度与所述基于历史信息的运动矢量预测列表中的运动矢量预测的对应顺序为顺序对应和逆序对应之一,其中:所述顺序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序一致;所述逆序对应为:将要对应的运动矢量精度的顺序与将要对应的运动矢量预测的顺序相反。
根据本申请的第三方面,其中,当所述第二部分中的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述第二部分中未进行对应操作的运动矢量精度按照所述第二部分已经进行了对应操作的运动矢量精度进行对应操作所遵循的所述顺序对应和所述逆序对应之一,再次与所述基于历史信息的运动矢量预测列表中的运动矢量预测相对应,直至所有运动矢量精度均对应。
根据本申请的第三方面,其中,当所述第二部分中的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述第二部分中未进行对应操作的运动矢量精度均与所述基于历史信息的运动矢量预测列表中的某一运动矢量预测相对应。
根据本申请的第三方面,其中,当所述第二部分中的运动矢量精度的数量大于所述基于历史信息的运动矢量预测列表中的运动矢量预测的数量时,所述第二部分中未进行对应操作的运动矢量精度不与任何运动矢量预测相对应。
根据本申请的第三方面,其中,在当前运动矢量预测在已对应过的运动矢量预测中已出现过的情况下,则跳过当前运动矢量预测,当前运动矢量精度与符合限制的运动矢量预测相对应,其中,所述限制为:运动矢量预测未在已对应过的运动矢量预测中出现过。
根据本申请的第三方面,其中,在没有符合所述限制的候选运动矢量预测的情况下,则未对应的运动矢量精度均与某一运动矢量预测相对应。
根据本申请的第三方面,还包括:确定预测方向信息和参考帧信息;以及基于所述运动矢量精度信息、所述运动矢量差值信息、所述运动矢量预测、所述预测方向信息以及所述参考帧信息解码出所述运动矢量信息。
根据本申请的第三方面,其中,所述确定预测方向信息包括:把预测方向设置为与运动矢量精度对应的运动矢量预测的预测方向相同。
根据本申请的第三方面,其中,所述确定预测方向信息包括:在运动矢量精度对应的运动矢量预测的预测方向为只参考第一参考帧列表的第一方向或只参考第二参考帧列表的第二方向的情况下,把预测方向设为与运动矢量精度对应的运动矢量预测的预测方向相同;以及在运动矢量精度对应的运动矢量预测的预测方向为参考两个参考帧列表的第三方向的情况下,从码流中解析预测方向信息。
根据本申请的第三方面,所述确定参考帧信息包括:把参考帧设为与运动矢量精度对应的运动矢量预测的参考帧相同。
根据本申请的第三方面,所述确定参考帧信息包括:在运动矢量精度对应的运动矢量预测的预测方向为只参考第一参考帧列表的第一方向或只参考第二参考帧列表的第二方向的情况下,把参考帧设为与运动矢量精度对应的运动矢量预测的参考帧相同;在运动矢量精度对应的运动矢量预测的预测方向为参考两个参考帧列表的第三方向的情况下,从码流中解析参考帧信息。
根据本申请的第三方面,所述方法还包括:从码流中解析得到运动矢量预测模式信息,以及在所述运动矢量预测模式为不使用所述对应关系的第一模式、且编/解码器约定的运动矢量预测不唯一的情况下,从码流中解析出运动矢量预测信息。
在本申请的第四方面中,提供了一种运动矢量信息的解码装置,在其中执行根据第三方面所述的方法。
在本申请的第五方面中,提供了一种运动矢量信息二值化方法,包括:将候选运动信息列表进行分类;利用第一二值化方法对分类出的类型的索引值进行二值化,并且利用第二二值化方法对当前运动信息在所在候选运动信息列表类型中的索引值进行二值化;以及将所述二值化信息写入码流中。
根据本申请的第五方面,其中,所述候选运动信息列表的分类类别大于等于2,并且所述第一二值化方法和所述第二二值化方法是相同的方法。
根据本申请的第五方面,其中,所述候选运动信息列表的分类类别大于等于2,并且所述第一二值化方法和所述第二二值化方法是不同的方法。
在本申请的第六方面中,提供了一种确定运动矢量信息的方法,包括:从码流中获得候选运动信息列表的类型索引值的二值化信息和当前运动信息在所在候选运动信息列表类型中的索引值的二值化信息;基于所获得的二值化信息解析出类型索引值和当前运动信息在所在候选运动信息列表类型中的索引值;按照与编码器侧对候选运动信息列表进行分类的相同分类方法对所述候选运动信息列表进行分类;根据解析出的类型索引值和当前运动信息在所在候选运动信息列表类型中的索引值、以及分类的类型来确定运动信息;以及根据所述运动信息进行解码。
根据本申请的第六方面,其中,所述基于所获得的二值化信息解析出类型索引值和当前运动信息在所在候选运动信息列表类型中的索引值包括:将码流中的类型索引的二值化信息通过第一二值化方法的反二值化方法得到类型索引值;以及将码流中的当前运动信息在所在候选运动信息列表类型中的索引的二值化信息通过第二二值化方法的反二值化方法得到当前运动信息在所在候选运动信息列表类型中的索引值。
根据本申请的第六方面,其中,所述根据解析出的类型索引值和当前运动信息在所在候选运动信息列表类型中的索引值、以及分类的类型来确定运动信息包括:通过类型索引值确定当前运动信息在哪个类型中,并且通过当前运动信息在所在候选运动信息列表类型中的索引值来在所确定的类型中找到运动信息。
在本申请的第七方面中,提供了一种编码器,包括:分类单元,被配置为将候选运动信息列表进行分类;二值化单元,被配置为:利用第一二值化方法对分类出的类型的索引值进行值化,并且利用第二二值化方法对当前运动信息在所在候选运动信息列表类型中的索引值进行二值化;以及二值化信息的写入单元,被配置为将所述二值化信息写入码流中。
根据本申请的第七方面,其中,所述候选运动信息列表的分类类别大于等于2,并且所述第一二值化方法和所述第二二值化方法是相同的方法。
根据本申请的第七方面,其中,所述候选运动信息列表的分类类别大于等于2,并且所述第一二值化方法和所述第二二值化方法是不同的方法。
在本申请的第八方面中,提供了一种解码器,包括:获得单元,被配置为:从码流中获得候选运动信息列表的分类的类型索引值的二值化信息和当前运动信息在所在候选运动信息列表类型中的索引值的二值化信息;解析单元,被配置为基于所获得的二值化信息,解析出类型索引值和当前运动信息在所在候选运动信息列表类型中的索引值;分类单元,被配置为按照与编码器侧对候选运动信息列表进行分类的相同分类方法对所述候选运动信息列表进行分类;以及确定单元,被配置为根据解析出的类型索引值和当前运动信息在所在候选运动信息列表类型中的索引值、以及分类出的类型来确定运动信息。
根据本申请的第八方面,所述解析单元还被配置为:将码流中的类型索引的二值化信息通过第一二值化方法的反二值化方法得到类型索引的值;将码流中的当前运动信息在所在候选运动信息列表类型中的索引的二值化信息通过第二二值化方法的反二值化方法得到当前运动信息在所在候选运动信息列表类型中的索引的值。
根据本申请的第八方面,所述确定单元还被配置为:通过类型索引值确定当前运动信息在哪个类型中,并且通过当前运动信息在所在候选运动信息列表类型中的索引值来在所确定的类型中找到运动信息。
技术效果
本申请通过在变精度运动矢量技术的运动矢量精度与运动矢量预测的对应关系中引入基于历史信息的运动矢量预测,不仅消除了指示运动矢量预测所带来的开销,还相对于只有时间上和空间上相邻块的运动矢量预测增加了更多的候选值,能有效的减小运动矢量差的值,从而提高编码性能。
此外,在vvc或者avs3采纳hmvp编码技术后,运动信息的索引值的概率分布不再适合截断一元码的二值化方式。因此,本发明提出了一种运动信息索引值的二值化方法,先根据候选运动信息列表中运动矢量类型,将候选运动信息列表中的运动矢量分为多个类型,记为类型索引,并对类型索引进行二值化,再对大类型中的运动信息索引值进行二值化,这样可以有效的提高二值化以及编码的效率,进而提高视频编码压缩效率。
附图说明
图1a和图1b中示例性地示出了根据本发明实施例的变精度运动矢量技术的运动矢量精度与基于历史信息的运动矢量预测列表中的运动矢量预测之间的对应关系。
图2a至图2d中示例性地示出了根据本发明实施例的变精度运动矢量技术的运动矢量精度与经由唯一运动矢量预测技术得到的唯一运动矢量预测和基于历史信息的运动矢量预测列表中的运动矢量预测之间的对应关系。
图3a至图3b中示例性地示出了根据本发明实施例的变精度运动矢量技术的运动矢量精度与空域候选列表、时域候选列表、以及基于历史信息的运动矢量预测列表中的运动矢量预测之间的对应关系。
图4中示出了对运动矢量信息进行编码的第一实施例的流程图400。
图5中示出了对运动矢量信息进行编码的第二实施例的流程图500。
图6中示意性地示出了对运动矢量信息进行解码的第一实施例的流程图600。
图7中示意性地示出了对运动矢量信息进行解码的第二实施例的流程图700。
图8示意性地示出了编码器侧对帧间跳过模式或者帧间直接模式下的运动信息索引的二值化方法的流程图。
图9示意性地示出了解码器侧基于二值化信息来获得运动信息的流程图。
图10示意性地示出了对帧间跳过模式或者帧间直接模式下的运动信息索引进行二值化的装置。
图11示意性地示出了基于帧间跳过模式或者帧间直接模式下的运动信息索引的二值化信息来获得运动信息的装置。
具体实施方式
下面将详细描述本发明的具体实施例,应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。在以下描述中,为了提供对本发明的透彻理解,阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的电路、材料或方法。
在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”、“在实施例中”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和/或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。应当理解,当称元件“耦接到”或“连接到”另一元件时,它可以是直接耦接或连接到另一元件或者可以存在中间元件。相反,当称元件“直接耦接到”或“直接连接到”另一元件时,不存在中间元件。相同的附图标记指示相同的元件。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
i.运动矢量精度与运动矢量预测的对应
为了解决现有技术中运动矢量预测所存在的问题,本发明中将变精度运动矢量技术的运动矢量精度与基于历史信息的运动矢量预测列表中的运动矢量预测形成对应关系,由此不仅消除指示运动矢量预测所带来的开销,还相对于只有时间上和空间上相邻块的运动矢量预测增加了更多的候选值,能有效的减小运动矢量差的值,从而提高编码性能。
变精度运动矢量技术的运动矢量精度(以下简称为运动矢量精度)与基于历史信息的运动矢量预测列表中的运动矢量预测之间的对应关系可以是多样化的,不仅可以仅与基于历史信息的运动矢量预测列表中的运动矢量预测相对应,还可以通过引入其它运动矢量预测,将基于历史信息的运动矢量预测列表中的运动矢量预测与所引入的其它运动矢量预测作为整体与运动矢量精度相对应。以下结合附图对各种对应关系进行示例性说明。
·运动矢量精度仅与基于历史信息的运动矢量预测列表中的运动矢量预测相对应
图1a和图1b中示出了根据本发明实施例的运动矢量精度仅与基于历史信息的运动矢量预测列表中的运动矢量预测相对应的情况。其中,运动矢量精度和预设运动矢量精度由编解码器共同约定或者编解码标准中规定,一种可能的约定为十六分之一像素、八分之一像素、四分之一像素、二分之一像素、整像素、双像素、四像素、八像素、十六像素中的若干个或是其它2的幂次方像素精度。
在这种情况下,第1个运动矢量精度可以与基于历史信息的运动矢量预测列表中最后一个运动矢量预测相对应,第2个运动矢量精度可以与基于历史信息的运动矢量预测列表中倒数第2个运动矢量预测相对应,依次类推。然而,本领域技术人员应当理解,运动矢量精度与运动矢量预测的这种对应方式仅是出于便于说明和描述的目的而示例性列出的。
备选地,第1个运动矢量精度可以与基于历史信息的运动矢量预测列表中的第1个运动矢量预测相对应,第2个运动矢量精度可以与基于历史信息的运动矢量预测列表中第2个运动矢量预测相对应,依次类推。
备选地,运动矢量精度可以以不同于上述任一对应关系的其它对应关系与基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
为了便于描述,在该示例中,假设运动矢量精度个数为n,基于历史信息的运动矢量预测列表中运动矢量预测个数为m。
图1a示例性示出了当m大于或等于n时运动矢量精度与基于历史信息的运动矢量预测列表中的运动矢量预测的对应图。如所示,第1个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应……第n个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-n+1个运动矢量预测相对应。此时,针对每一个运动矢量精度,在基于历史信息的运动矢量预测列表中都有对应的运动矢量预测。
图1b示例性示出了当m小于n时运动矢量精度与基于历史信息的运动矢量预测列表中的运动矢量预测的对应图。如所示,第1个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应……第m个运动矢量精度与基于历史信息的运动矢量预测列表中的第1个运动矢量预测相对应。
此时,对于第m+1至第n个运动矢量精度,可以进采用如下设置之一:
(1)第一种设置:第m+1至第n个运动矢量精度都与基于历史信息的运动矢量预测列表中的某一个运动矢量预测相对应。例如,第m+1至第n个运动矢量精度都与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应。
(2)第二种设置:第m+1个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第m+2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应,依次类推。当2m≥n时,此时,针对每个运动矢量精度,在基于历史信息的运动矢量预测列表中均存在对应的运动矢量预测。当2m<n时,将从第2m+1至第n个运动矢量精度按照第m+1至第2m个运动矢量精度的对应方式进行对应,依次类推,直至所有运动矢量精度均对应基于历史信息的运动矢量预测列表中的运动矢量预测为止。
(3)第三种设置:第m+1至第n个运动矢量精度不与任何运动矢量预测对应。
针对上述任何对应方法,可以存在这样的限制:如果当前运动矢量预测在已对应过的运动矢量预测中已出现过,则跳过当前运动矢量预测,当前运动矢量精度与上述对应顺序的下一个符合该限制的候选运动矢量预测相对应。例如,如果第2个运动矢量精度在与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应时,发现第m-1个运动矢量预测与第m个运动矢量预测完全一致,此时,跳过第m-1个运动矢量预测,将第2个运动矢量精度与第m-2个运动矢量预测进行对应,如果第m-2个运动矢量预测仍与第m个运动矢量预测完全一致,则继续向下对应,直到找到与第m个运动矢量预测不一致的运动矢量预测为止。
如果基于历史信息的运动矢量预测列表中已无符合该限制的候选运动矢量预测,可以将剩余的未对应的运动矢量精度都与基于历史信息的运动矢量预测列表中某一运动矢量预测相对应。例如,从第2至第n个运动矢量精度都与第m个运动矢量预测相对应。
·运动矢量精度与经由唯一运动矢量预测技术得到的唯一运动矢量预测和基于历史信息的运动矢量预测列表中的运动矢量预测相对应
图2a至图2d中示出了根据本发明实施例的运动矢量精度与经由唯一运动矢量预测技术得到的唯一运动矢量预测和基于历史信息的运动矢量预测列表中的运动矢量预测相对应的情况。其中,运动矢量精度和预设运动矢量精度由编解码器共同约定或者编解码标准中规定,一种可能的约定为十六分之一像素、八分之一像素、四分之一像素、二分之一像素、整像素、双像素、四像素、八像素、十六像素中的若干个或是其它2的幂次方像素精度。
在这种情况下,第1个运动矢量精度可以与唯一运动矢量预测相对应,第2个运动矢量精度可以与基于历史信息的运动矢量预测列表中的最后一个运动矢量预测相对应,第3个运动矢量精度可以与基于历史信息的运动矢量预测列表中倒数第2个运动矢量预测相对应,依次类推,直到所有的运动矢量精度都有对应的运动矢量预测为止。然而,本领域技术人员应当理解,运动矢量精度与运动矢量预测的这种对应方式仅是出于便于说明和描述的目的而示例性列出的。
备选地,最后一个运动矢量精度可以与唯一运动矢量预测相对应。
备选地,第1个运动矢量精度可以与基于历史信息的运动矢量预测列表中的第一个运动矢量预测相对应,第2个运动矢量精度可以与基于历史信息的运动矢量预测列表中第2个运动矢量预测相对应,依次类推。
备选地,运动矢量精度可以以不同于上述任一对应关系的其它对应关系与基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
为了便于描述,在该示例中,假设运动矢量精度个数为n,基于历史信息的运动矢量预测列表中运动矢量预测个数为m。
图2a和图2b示出了当第1个运动矢量精度与唯一运动矢量预测相对应的情况下的对应图。
其中,图2a示例性示出了当m+1大于或等于n时运动矢量精度与经由唯一运动矢量预测技术得到的唯一运动矢量预测和基于历史信息的运动矢量预测列表中的运动矢量预测的对应图。如所示,第1个运动矢量精度可以与唯一运动矢量预测相对应,第2个运动矢量精度可以与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第3个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应……第n个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-n+2个运动矢量预测相对应。此时,针对每一个运动矢量精度,在基于历史信息的运动矢量预测列表中都有对应的运动矢量预测。
图2b示例性示出了当m+1小于n时运动矢量精度与经由唯一运动矢量预测技术得到的唯一运动矢量预测和基于历史信息的运动矢量预测列表中的运动矢量预测的对应图。如所示,第1个运动矢量精度与唯一运动矢量预测相对应,第2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第3个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应……第m+1个运动矢量精度与基于历史信息的运动矢量预测列表中的第1个运动矢量预测相对应。
此时,对于第m+2至第n个运动矢量精度,可以进采用如下设置之一:
(1)第一种设置:第m+2至第n个运动矢量精度都与基于历史信息的运动矢量预测列表中的某一个运动矢量预测相对应。例如,第m+2至第n个运动矢量精度都与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应。
(2)第二中设置:第m+2至第n个运动矢量精度都与唯一运动矢量预测相对应。
(3)第三种设置:第m+2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第m+3个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应,依次类推。当2m+1≥n时,此时,针对每个运动矢量精度,在基于历史信息的运动矢量预测列表中均存在对应的运动矢量预测。当2m+1<n时,将从第2m+2至第n个运动矢量精度按照第m+2至第2m+1个运动矢量精度的对应方式进行对应,依次类推,直至所有运动矢量精度均对应基于历史信息的运动矢量预测列表中的运动矢量预测为止。
(4)第四种设置:第m+2至第n个运动矢量精度不与任何运动矢量预测对应。
针对上述任何对应方法,可以存在这样的限制:如果当前运动矢量预测在已对应过的运动矢量预测中已出现过,则跳过当前运动矢量预测,当前运动矢量精度与上述对应顺序的下一个符合该限制的候选运动矢量预测相对应。例如,如果第3个运动矢量精度在与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应时,发现第m-1个运动矢量预测与第m个运动矢量预测完全一致,此时,跳过第m-1个运动矢量预测,将第3个运动矢量精度与第m-2个运动矢量预测进行对应,如果第m-2个运动矢量预测仍与第m个运动矢量预测完全一致,则继续向下对应,直到找到与第m个运动矢量预测不一致的运动矢量预测为止。
如果基于历史信息的运动矢量预测列表中已无符合该限制的候选运动矢量预测,可以将剩余的未对应的运动矢量精度都与基于历史信息的运动矢量预测列表中某一运动矢量预测相对应。例如,从第3至第n个运动矢量精度都与第m个运动矢量预测相对应。
备选地,如果基于历史信息的运动矢量预测列表中已无符合该限制的候选运动矢量预测,可以将剩余的未对应的运动矢量精度都与唯一运动矢量预测相对应。
图2c和图2d示出了当第最后一个运动矢量精度与唯一运动矢量预测相对应的情况下的对应图。
其中,图2c示例性示出了当m+1大于或等于n时运动矢量精度与经由唯一运动矢量预测技术得到的唯一运动矢量预测和基于历史信息的运动矢量预测列表中的运动矢量预测的对应图。如所示,最后一个运动矢量精度可以与唯一运动矢量预测相对应,第1个运动矢量精度可以与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应,依次类推。此时,针对每一个运动矢量精度,在基于历史信息的运动矢量预测列表中都有对应的运动矢量预测。
图2d示例性示出了当m+1小于n时运动矢量精度与经由唯一运动矢量预测技术得到的唯一运动矢量预测和基于历史信息的运动矢量预测列表中的运动矢量预测的对应图。如所示,最后一个运动矢量精度与唯一运动矢量预测相对应,第1个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应……第m个运动矢量精度与基于历史信息的运动矢量预测列表中的第1个运动矢量预测相对应。
此时,对于第m+1至第n-1个运动矢量精度,可以采用如下设置之一:
(1)第一种设置:第m+1至第n-1个运动矢量精度都与基于历史信息的运动矢量预测列表中的某一个运动矢量预测相对应。例如,第m+1至第n-1个运动矢量精度都与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应。
(2)第二种设置:第m+1至第n-1个运动矢量精度都与唯一运动矢量预测相对应。
(3)第三种设置:第m+1个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第m+2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应,依次类推。当2m+1≥n时,此时,针对每个运动矢量精度,在基于历史信息的运动矢量预测列表中均存在对应的运动矢量预测。当2m+1<n时,将从第2m+2至第n-1个运动矢量精度按照第m+1至第2m+1个运动矢量精度的对应方式进行对应,依次类推,直至所有运动矢量精度均对应基于历史信息的运动矢量预测列表中的运动矢量预测为止。
(4)第四种设置:第m+1至第n个运动矢量精度不与任何运动矢量预测对应。
针对上述任何对应方法,可以存在这样的限制:如果当前运动矢量预测在已对应过的运动矢量预测中已出现过,则跳过当前运动矢量预测,当前运动矢量精度与上述对应顺序的下一个符合该限制的候选运动矢量预测相对应。例如,如果第2个运动矢量精度在与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应时,发现第m-1个运动矢量预测与第m个运动矢量预测完全一致,此时,跳过第m-1个运动矢量预测,将第2个运动矢量精度与第m-2个运动矢量预测进行对应,如果第m-2个运动矢量预测仍与第m个运动矢量预测完全一致,则继续向下对应,直到找到与第m个运动矢量预测不一致的运动矢量预测为止。
如果基于历史信息的运动矢量预测列表中已无符合该限制的候选运动矢量预测,可以将剩余的未对应的运动矢量精度都与基于历史信息的运动矢量预测列表中某一运动矢量预测相对应。例如,从第2至第n-1个运动矢量精度都与第m个运动矢量预测相对应。
备选地,如果基于历史信息的运动矢量预测列表中已无符合该限制的候选运动矢量预测,可以将剩余的未对应的运动矢量精度都与唯一运动矢量预测相对应。
·运动矢量精度与空域候选列表、时域候选列表和基于历史信息的运动矢量预测列表中的运动矢量预测相对应
图3a和图3b中示出了根据本发明实施例的运动矢量精度与与空域候选列表、时域候选列表、以及基于历史信息的运动矢量预测列表中的运动矢量预测相对应的情况。其中,运动矢量精度和预设运动矢量精度由编解码器共同约定或者编解码标准中规定,一种可能的约定为十六分之一像素、八分之一像素、四分之一像素、二分之一像素、整像素、双像素、四像素、八像素、十六像素中的若干个或是其它2的幂次方像素精度。
在这种情况下,先将前半部分的运动矢量精度与空域候选列表、时域候选列表中运动矢量预测相对应,具体对应方法本发明不做限制,然后再将运动矢量精度中未与空域候选列表、时域候选列表中运动矢量预测进行对应的后半部分运动矢量精度与基于历史信息的运动矢量预测列表中的运动矢量预测相对应。其中,前半部分的运动矢量精度的数量可以与空域候选列表、时域候选列表中运动矢量预测的数量相同,也可以不同。例如,如图3所示,运动矢量精度个数为n个,空域候选列表和时域候选列表中与运动矢量精度对应的运动矢量预测个数为k(k<n)个,基于历史信息的运动矢量预测列表中的运动矢量预测个数为m。此时,第1个至第k个运动矢量预测精度与k个空域候选列表和时域候选列表中的运动矢量预测相对应,第k+1个至第n个与m个基于历史信息的运动矢量预测列表中的运动矢量预测相对应。
关于第1个至第k个运动矢量预测精度与k个空域候选列表和时域候选列表中的运动矢量预测相对应的情况,本发明不做限制。
关于第k+1个至第n个与m个基于历史信息的运动矢量预测列表中的运动矢量预测相对应的情况,可以采用第k+1个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第k+2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应,依次类推。
当n-k≤m时,第n个运动矢量精度与基于历史信息的运动矢量预测列表中的第m+1+k-n个运动矢量预测相对应,此时n个运动矢量精度均存在对应的运动矢量预测(如图3a所示)。当n-k>m时,第k+m与基于历史信息的运动矢量预测列表中的第1个运动矢量预测相对应,对于第k+m+1至第n个运动矢量精度,可以采用如下设置之一:
(1)第一种设置:第k+m+1至第n个运动矢量精度都与基于历史信息的运动矢量预测列表中的某一个运动矢量预测相对应。例如,第k+m+1至第n个运动矢量精度都与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应。
(2)第二种设置:第k+m+1个运动矢量精度与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应,第k+m+2个运动矢量精度与基于历史信息的运动矢量预测列表中的第m-1个运动矢量预测相对应,依次类推,直至所有运动矢量精度均对应基于历史信息的运动矢量预测列表中的运动矢量预测为止。
(3)第三种设置:第k+m+1至第n个运动矢量精度不与任何运动矢量预测对应。
针对上述任何对应方法,可以存在这样的限制:如果当前运动矢量预测在已对应过的运动矢量预测中已出现过,则跳过当前运动矢量预测,当前运动矢量精度与上述对应顺序的下一个符合该限制的候选运动矢量预测相对应。例如,如果第k+2个运动矢量精度在与基于历史信息的运动矢量预测列表中的第m个运动矢量预测相对应时,发现第m-1个运动矢量预测与第m个运动矢量预测完全一致,此时,跳过第m-1个运动矢量预测,将第k+2个运动矢量精度与第m-2个运动矢量预测进行对应,如果第m-2个运动矢量预测仍与第m个运动矢量预测完全一致,则继续向下对应,直到找到与第m个运动矢量预测不一致的运动矢量预测为止。
如果基于历史信息的运动矢量预测列表中已无符合该限制的候选运动矢量预测,可以将剩余的未对应的运动矢量精度都与基于历史信息的运动矢量预测列表中某一运动矢量预测相对应。例如,从第k+2至第n个运动矢量精度都与第m个运动矢量预测相对应。
请注意,以上关于运动矢量预测精度与各个运动矢量预测之间的对应关系仅是出于便于说明和描述的目的而示例性列出的。也可以引入其它运动矢量预测,其与基于历史信息的运动矢量预测列表中的运动矢量预测作为一个整体与运动矢量精度进行对应。
ii.运动矢量信息编码方法
·运动矢量信息编码方法的第一实施例
根据上述运动矢量精度与运动矢量预测之间的对应方法,本申请提供了视频编解码中运动矢量信息的编码方法。
图4中示出了基于上述运动矢量精度与运动矢量预测之间的对应方法而对运动矢量信息进行编码的第一实施例的流程图400。
在步骤401中,确定运动矢量精度、运动矢量预测和运动矢量差值。
对于确定运动矢量精度、运动矢量预测和运动矢量差值的方法,在一个示例中,编码器可以遍历所有的候选运动矢量精度,对于每个运动矢量精度,根据上述运动矢量精度与运动矢量预测的对应方法找到对应的运动矢量预测。
之后,例如可以通过运动搜索的方法确定在确定的运动矢量精度下的最优运动矢量值,并且基于运动矢量精度下的最优运动矢量值与该运动矢量精度相对应的运动矢量预测来计算运动矢量差值。此时,在多个不同的运动矢量精度下存在多个运动矢量差值。然后,比较采用不同运动矢量精度下的最优运动矢量值对当前块进行编码所需的编码代价,以此确定最优的运动矢量精度和运动矢量预测的组合以及该最优的运动矢量精度下的运动矢量差值。
对于确定运动矢量精度、运动矢量预测和运动矢量差值的方法,备选地,在另一示例中,编码器可以遍历所有的候选的运动矢量值,针对每个运动矢量值,确定最优运动矢量精度和运动矢量预测的组合,然后比较采用各自最优运动矢量精度下的运动矢量值进行编码所需的编码代价,以此确定最优的运动矢量精度和运动矢量预测的组合以及该精度下的运动矢量差值。
其中,在步骤401中的候选运动矢量精度由编解码器共同约定或者编/解码标准中规定,可以将候选运动矢量精度约定为十六分之一像素、八分之一像素、四分之一像素、二分之一像素、整像素、双像素、四像素、八像素、十六像素中的若干个或是其它2的幂次方像素精度。
在步骤402中,将所确定的最优运动矢量精度和该精度下的运动矢量差值信息写入码流。
最优的运动矢量精度信息可以例如通过索引值的形式写入码流,该精度下的运动矢量差值信息可以使用任何现有的运动矢量差值编码方式写入码流。
可选地,根据需要还可以在码流中写入预测方向信息。对于预测方向的确定方法,可以采用如下方法之一:
(1)无论运动矢量预测的预测方向为只参考第一个参考帧列表、只参考第二个参考帧列表、或者参考两个参考帧列表,编码器都尝试这三个方向,即预测方向的可选范围为这三个方向。
(2)如果运动矢量预测的预测方向为只参考第一个参考帧列表、只参考第二个参考帧列表、或者参考两个参考帧列表中的某一个,则编码器只尝试所参考的那一种方向。
(3)如果运动矢量预测的预测方向为只参考第一个参考帧列表还是只参考第二个参考帧列表,则编码器只尝试那一种方向。
(4)如果运动矢量预测的预测方向为参考两个参考帧列表,则编码器尝试这三个方向。
本领域技术人员应当理解,以上预测方向的确定方法仅是出于说明和描述的目的而示例性列出的,可以采用现有已知的或将来开发出的新的确定方法中的任何方法。
可选地,根据需要还可以在码流中写入参考帧信息。对于参考帧的确定方法,可以采用如下方法之一:
(1)编码器可以遍历当前预测方向参考帧列表中的所有参考帧。运动矢量预测在该参考帧下的预测值根据运动矢量预测的值缩放得到,缩放的方法本发明不做限制。
(2)编码器只尝试运动矢量预测在所确定的预测方向对应的参考帧。
本领域技术人员应当理解,以上参考帧的确定方法仅是出于说明和描述的目的而示例性列出的,可以采用现有已知的或将来开发出的新的确定方法中的任何方法。
对于预测方向信息,是否传输预测方向信息可以由编解码器共同约定或者编解码标准规定。
在一个示例中,可以规定为:无论运动矢量精度所对应的运动矢量预测的预测方向为何,都需要在码流中传输预测方向信息。
在一个示例中,可以规定为:无论运动矢量精度所对应的运动矢量预测的预测方向为何,都不需要在码流中传输预测方向信息,而是默认地认为预测方向与运动矢量精度所对应的运动矢量预测的预测方向相同。
在一个示例中,可以规定为:如果与运动矢量精度相对应的运动矢量预测的预测方向为只参考第一参考帧列表或只参考第二参考帧列表,则不需要在码流中传输预测方向信息,而是默认地认为预测方向与运动矢量精度所对应的运动矢量预测的预测方向相同。如果与运动矢量精度相对应的运动矢量预测的预测方向为参考两个参考帧列表,则需要在码流中传输预测方向信息。
如果确定需要在码流中传输预测方向信息,则可以使用现有的任何预测方向信息的编码方法将预测方向信息编码到码流中。
对参考帧信息,是否传输参考帧信息可以由编解码器共同约定或者编解码标准规定。
在一个示例中,可以规定为:无论与运动矢量精度相对应的运动矢量预测的参考帧为何,都需要在码流中传输参考帧信息。
在一个示例中,可以规定为:无论与运动矢量精度相对应的运动矢量预测的参考帧为何,都不需要在码流中传输参考帧信息,而是默认地认为参考帧与运动矢量精度所对应的运动矢量预测的参考帧相同。
在一个示例中,可以规定为:如果与运动矢量精度相对应的运动矢量预测的预测方向为只参考第一参考帧列表或只参考第二参考帧列表,则不需要在码流中传输参考帧信息,而是默认地认为参考帧与运动矢量精度所对应的运动矢量预测的参考帧相同。如果与运动矢量精度相对应的运动矢量预测的预测方向为参考两个参考帧列表,则需要在码流中传输参考帧信息。
如果确定要在码流中传输参考帧信息,可以使用现有的任何参考帧信息的编码方法来编码参考帧信息。
·运动矢量信息编码方法的第二实施例
图5中示出了对运动矢量信息进行编码的第二实施例的流程图500。
在步骤501中,确定运动矢量预测模式、运动矢量精度、运动矢量预测和运动矢量差值。
运动矢量预测模式分为两种,一种是不使用运动矢量预测与运动矢量精度之间的对应,另一种是使用运动矢量预测与运动矢量精度之间的对应。
确定运动矢量预测模式的方法可以为:编码器尝试在不使用运动矢量预测与运动矢量精度之间的对应的模式下得出当前块的编码代价,编码器尝试在使用运动矢量预测与运动矢量精度之间的对应的模式下得出当前块的编码代价。编码器比较这两个模式下的编码代价,选择编码代价小的模式为最优运动矢量预测模式。
在不使用运动矢量预测与运动矢量精度之间的对应的模式下,确定运动矢量精度、运动矢量预测和运动矢量差值的方法可以使用现有的任何方法。
在使用运动矢量预测与运动矢量精度之间的对应的模式下,确定运动矢量精度、运动矢量预测和运动矢量差值的一种可能的实现方法为:编码器遍历所有的候选运动矢量精度,对于每个运动矢量精度,根据上述运动矢量精度与运动矢量预测的对应方法找到对应的运动矢量预测。通过运动搜索的方法确定该精度下的最优运动矢量并计算运动矢量差值,然后比较采用不同精度下的最优运动矢量对当前块进行编码的编码代价,以此确定最优的运动矢量精度和运动矢量预测的组合以及该精度下的运动矢量差值。
另一种可能的实现方法为,编码器遍历所有的候选的运动矢量值,为每个运动矢量值确定最优精度和运动矢量预测的组合,然后比较采用各自最优运动矢量精度下的运动矢量进行编码的编码代价,以此确定最优的运动矢量精度和运动矢量预测的组合以及该精度下的运动矢量差值。
其中,在步骤501中的候选运动矢量精度由编解码器共同约定或者编/解码标准中规定,可以将候选运动矢量精度约定为十六分之一像素、八分之一像素、四分之一像素、二分之一像素、整像素、双像素、四像素、八像素、十六像素中的若干个或是其它2的幂次方像素精度。
在步骤502中,将确定的运动矢量预测模式、运动矢量精度信息、运动矢量预测(如果需要)和最优的运动矢量差值信息写入码流。
运动矢量预测模式信息可以使用一个比特的标志信息的形式写入码流中。
一种可能的方法是,如果运动矢量预测模式为不使用运动矢量预测与运动矢量精度之间的对应,则标志信息设为“0”,否则设为“1”。
另一种可能的方法是,如果运动矢量预测模式为不使用运动矢量预测与运动矢量精度之间的对应,则标志信息设为“1”,否则设为“0”。
运动矢量精度信息可以通过索引值的形式写入码流,最优的运动矢量差值信息可以使用任何现有的运动矢量差值编码方式写入码流。如果运动矢量预测模式为不使用运动矢量预测与运动矢量精度之间的对应的模式而且编解码器约定的运动矢量预测不唯一,则需要在码流中传输运动矢量预测的信息,运动矢量预测信息可以使用任何现有的运动矢量预测编码方法写入码流。
可选地,根据需要还可以在码流中写入预测方向信息。对于预测方向的确定方法,在使用运动矢量预测与运动矢量精度之间的对应的模式下,可以采用如下方法之一:
(1)无论运动矢量预测的预测方向为只参考第一个参考帧列表、只参考第二个参考帧列表、或者参考两个参考帧列表,编码器都尝试这三个方向,即预测方向的可选范围为这三个方向。
(2)如果运动矢量预测的预测方向为只参考第一个参考帧列表、只参考第二个参考帧列表、或者参考两个参考帧列表中的某一个,则编码器只尝试所参考的那一种方向。
(3)如果运动矢量预测的预测方向为只参考第一个参考帧列表还是只参考第二个参考帧列表,则编码器只尝试那一种方向。
(4)如果运动矢量预测的预测方向为参考两个参考帧列表,则编码器尝试这三个方向。
本领域技术人员应当理解,以上预测方向的确定方法仅是出于说明和描述的目的而示例性列出的,可以采用现有已知的或将来开发出的新的确定方法中的任何方法。
对于在不使用运动矢量预测与运动矢量精度之间的对应的模式下确定预测方向的方法再次不再描述,以便使本发明构思模糊。
可选地,根据需要还可以在码流中写入参考帧信息。对于参考帧的确定方法,在使用运动矢量预测与运动矢量精度之间的对应的模式下,可以采用如下方法之一:
(1)编码器可以遍历当前预测方向参考帧列表中的所有参考帧。运动矢量预测在该参考帧下的预测值根据运动矢量预测的值缩放得到,缩放的方法本发明不做限制。
(2)编码器只尝试运动矢量预测在所确定的预测方向对应的参考帧。
本领域技术人员应当理解,以上参考帧的确定方法仅是出于说明和描述的目的而示例性列出的,可以采用现有已知的或将来开发出的新的确定方法中的任何方法。
对于在不使用运动矢量预测与运动矢量精度之间的对应的模式下确定参考帧的方法再次不再描述,以便使本发明构思模糊。
在使用运动矢量预测与运动矢量精度之间的对应的模式下,对于预测方向信息,是否传输预测方向信息可以由编解码器共同约定或者编解码标准规定。
在一个示例中,可以规定为:在使用运动矢量预测与运动矢量精度之间的对应的模式下,无论运动矢量精度所对应的运动矢量预测的预测方向为何,都需要在码流中传输预测方向信息。
在一个示例中,可以规定为:在使用运动矢量预测与运动矢量精度之间的对应的模式下,无论运动矢量精度所对应的运动矢量预测的预测方向为何,都不需要在码流中传输预测方向信息,而是默认地认为预测方向与运动矢量精度所对应的运动矢量预测的预测方向相同。
在一个示例中,可以规定为:在使用运动矢量预测与运动矢量精度之间的对应的模式下,如果与运动矢量精度相对应的运动矢量预测的预测方向为只参考第一参考帧列表或只参考第二参考帧列表,则不需要在码流中传输预测方向信息,而是默认地认为预测方向与运动矢量精度所对应的运动矢量预测的预测方向相同。如果与运动矢量精度相对应的运动矢量预测的预测方向为参考两个参考帧列表,则需要在码流中传输预测方向信息。
如果确定需要在码流中传输预测方向信息,则可以使用现有的任何预测方向信息的编码方法将预测方向信息编码到码流中。
在使用运动矢量预测与运动矢量精度之间的对应的模式下,对参考帧信息,是否传输参考帧信息可以由编解码器共同约定或者编解码标准规定。
在一个示例中,可以规定为:在使用运动矢量预测与运动矢量精度之间的对应的模式下,无论与运动矢量精度相对应的运动矢量预测的参考帧为何,都需要在码流中传输参考帧信息。
在一个示例中,可以规定为:在使用运动矢量预测与运动矢量精度之间的对应的模式下,无论与运动矢量精度相对应的运动矢量预测的参考帧为何,都不需要在码流中传输参考帧信息,而是默认地认为参考帧与运动矢量精度所对应的运动矢量预测的参考帧相同。
在一个示例中,可以规定为:在使用运动矢量预测与运动矢量精度之间的对应的模式下,如果与运动矢量精度相对应的运动矢量预测的预测方向为只参考第一参考帧列表或只参考第二参考帧列表,则不需要在码流中传输参考帧信息,而是默认地认为参考帧与运动矢量精度所对应的运动矢量预测的参考帧相同。如果与运动矢量精度相对应的运动矢量预测的预测方向为参考两个参考帧列表,则需要在码流中传输参考帧信息。
如果确定要在码流中传输参考帧信息,可以使用现有的任何参考帧信息的编码方法来编码参考帧信息。
iii.运动矢量信息解码方法
·运动矢量信息解码方法的第一实施例
对应于本申请中提供的基于上述运动矢量精度与运动矢量预测之间的对应方法的上述运动矢量信息编码方法,本申请提出运动矢量信息解码方法。图6中示意性地示出了基于上述运动矢量精度与运动矢量预测之间的对应方法而对运动矢量信息进行解码的第一实施例的流程图600。
在步骤601处:从码流中解析得到运动矢量精度信息和运动矢量差值信息,并且确定运动矢量精度、运动矢量预测和该运动矢量精度下的运动矢量差值。
具体地,解析运动矢量精度信息的一种可能的方法为解析得到运动矢量精度索引值并以此确定运动矢量精度。
具体地,运动矢量预测的一种确定方法可以为根据确定的运动矢量精度和上述运动矢量精度与运动矢量预测的对应方法,确定运动矢量预测。
解析运动矢量差值信息的方法可以为使用现有的任何运动矢量差值解析方法。
可选地,基于上述编码方法的描述,还可以从码流中解析得到预测方向信息和/或参考帧信息(如果需要)。
预测方向信息是否需要解析,由编解码器共同约定或者编解码标准规定。
在一个示例中,可以规定为:无论运动矢量精度对应的运动矢量预测的预测方向为何,都需要解析预测方向信息。
在一个示例中,可以规定为:无论运动矢量精度对应的运动矢量预测的预测方向为何,都不需要解析预测方向信息,而是默认地把预测方向设为与运动矢量精度对应的运动矢量预测的预测方向相同。
在一个示例中,可以规定为:如果运动矢量精度对应的运动矢量预测的预测方向为只参考第一参考帧列表或只参考第二参考帧列表,则不需要解析预测方向信息,而是默认地把预测方向设为与运动矢量精度对应的运动矢量预测的预测方向相同。如果运动矢量精度对应的运动矢量预测的预测方向为参考两个参考帧列表,则需要解析预测方向信息。
解析预测方向信息的方法可以使用现有的任何预测方向信息的解析方法。
参考帧信息是否需要解析,由编解码器共同约定或者编解码标准规定。
在一个示例中,可以规定为:无论运动矢量精度对应的运动矢量预测的参考帧为何,都需要解析参考帧信息。
在一个示例中,可以规定为:无论运动矢量精度对应的运动矢量预测的参考帧为何,都不需要解析参考帧信息,而是默认地把参考帧设为与运动矢量精度对应的运动矢量预测的参考帧相同。
在一个示例中,可以规定为:如果运动矢量精度对应的运动矢量预测的预测方向为只参考第一参考帧列表或只参考第二参考帧列表,不需要解析参考帧信息,而是默认把参考帧设为与运动矢量精度对应的运动矢量预测的参考帧相同。如果运动矢量精度对应的运动矢量预测的预测方向为参考两个参考帧列表,需要解析参考帧信息。
解析参考帧信息的方法可以使用现有的任何参考帧信息的解析方法。
在步骤602处:根据确定的运动矢量精度、运动矢量预测和该运动矢量精度下运动矢量差值,导出运动矢量。
可选地,在解析预测方向和参考帧的情况下,运动矢量预测的预测值可以根据运动矢量预测的预测方向、参考帧和当前块的预测方向、参考帧进行缩放,缩放的方法本发明不做限制。
对当前运动矢量精度下的运动矢量差值进行缩放得到基准运动矢量精度下的运动矢量差值。
根据运动矢量预测的预测值或预测值的缩放和基准运动矢量精度下的运动矢量差值导出运动矢量。
步骤603:在导出运动矢量值后根据该运动矢量值获取参考帧中的参考块并进行后续的解码操作,具体方法不发明不做限定。
·运动矢量信息解码方法的第二实施例
本申请还提出与另一运动矢量信息解码方法。图7中示意性地示出了对运动矢量信息进行解码的第二实施例的流程图700。其中,第二实施例的流程图700例示性示出的解码方法可以被视为是与图5中所例示出的编码方法相对应。
在步骤701处:从码流中解析得到运动矢量预测模式信息、运动矢量精度信息、运动矢量预测信息(如果需要)和运动矢量差值信息,并且确定运动矢量精度、运动矢量预测和该运动矢量精度下的运动矢量差值。
解析运动矢量预测模式信息的一种可能的方法是,如果运动矢量预测模式的标志信息为“0”,则运动矢量预测模式为不使用运动矢量预测与运动矢量精度之间的对应。否则,如果运动矢量预测模式的标志信息为“1”,则运动矢量预测模式为使用运动矢量预测与运动矢量精度之间的对应。
解析运动矢量预测模式信息的另一种可能的方法是,如果运动矢量预测模式的标志信息为“1”,则运动矢量预测模式为不使用运动矢量预测与运动矢量精度之间的对应。否则,如果运动矢量预测模式的标志信息为“0”,则运动矢量预测模式为使用运动矢量预测与运动矢量精度之间的对应。
解析运动矢量精度信息的一种可能的方法为解析得到运动矢量精度索引值并以此确定运动矢量精度。
如果运动矢量预测模式为使用运动矢量预测与运动矢量精度之间的对应的模式,则根据确定的运动矢量精度和运动矢量精度与运动矢量预测的对应方法,来确定运动矢量预测。如果运动矢量预测模式为不使用运动矢量预测与运动矢量精度之间的对应的模式,并且编/解码器约定的运动矢量预测不唯一,则需要解析运动矢量预测信息。解析运动矢量预测信息的方法可以使用任何现有的运动矢量预测解析方法,本发明不做任何限制。
解析运动矢量差值信息的方法可以使用现有的任何运动矢量差值解析方法。
可选地,在编码器处写入了预测方向信息和参考帧信息的情况下,解码器侧还可以解析出预测方向信息和参考帧信息。
对预测方向信息和参考帧信息,如果运动矢量预测模式为使用运动矢量预测与运动矢量精度之间的对应的模式,则预测方向信息和参考帧信息是否需要解析以及解析方法可以参考步骤601中所述的内容。如果运动矢量预测模式为不使用运动矢量预测与运动矢量精度之间的对应的模式,则对预测方向信息和参考帧信息的解析本发明不做限制。
在步骤702处:根据确定的运动矢量精度、当前运动矢量精度下的运动矢量差值及运动矢量预测,导出运动矢量。
根据确定的运动矢量精度、当前运动矢量精度下的运动矢量差值及运动矢量预测来导出运动矢量的具体操作可以参考步骤602的描述。
在步骤703处:在导出运动矢量值后根据该运动矢量值获取参考块并进行后续的解码操作,具体方法不发明不做限定。
ⅳ.运动信息索引值的二值化
为了解决现有技术中运动信息索引值的二值化技术所存在的上述问题,本申请提出了一种新的运动信息索引值的二值化方式。为了便于描述和说明,以下将参考图8和图9进行说明。图8示意性地示出了编码器侧对帧间跳过模式或者帧间直接模式下的运动信息索引的二值化方法的流程图800。图9示意性地示出了解码器侧基于对帧间跳过模式或者帧间直接模式下的运动信息索引的二值化方法而得到的二值化信息进行解码来获得运动信息的流程图900。
在步骤801处,将候选运动信息列表分为多个类型。
具体地,在候选运动信息列表包括基于历史信息的运动矢量预测列表和空域候选列表、时域候选列表的情况下,一种可能的实现方式为将当前块的周边块的时域和空域运动信息分为一类,并记类型索引的值为“0”;将历史运动信息分为一类,并记类型索引的值为“1”。
一种可能的实现方式为将历史运动信息分为一类,并记类型索引的值为“0”;将当前块的周边块的时域和空域运动信息分为一类,并记类型索引的值为“1”。
在步骤802处:将类型索引的值和当前运动信息在所在候选运动信息列表类型中的索引值进行二值化。
具体的,一种可能的实现方式为将类型索引值进行定长编码,即类型索引的值为“0”对应着二值化“0”,类型索引的值为“1”对应着二值化“1”;将当前运动信息在所在候选运动信息列表类型中的索引值进行截断一元码二值化。
本领域技术人员应当能够理解,将类型索引值进行二值化的方法和将当前运动信息在所在候选运动信息列表类型中的索引值进行二值化的方法可以是相同的方法,也可以是不同的方法。
关于将类型索引值进行二值化和将当前运动信息在所在候选运动信息列表类型中的索引值进行二值化的方法在此不做任何限制,可以使用现有的或将来开发的任何二值化方法。
在步骤803处:将类型索引的二值化信息和当前运动信息在所在候选运动信息列表类型中的索引值的二值化信息写入码流。
图9示意性地示出了解码器侧基于对帧间跳过模式或者帧间直接模式下的运动信息索引的二值化方法而得到的二值化信息进行解码来获得运动信息的流程图900。
在步骤901处:解码器从码流中解析类型索引的值和当前运动信息在所在候选运动信息列表类型中的索引值。
具体的,一种可能的实现方式为将码流中的类型索引的二值化信息通过定长编码的反二值化方法得到类型索引的值;将码流中的当前运动信息在所在候选运动信息列表类型中的索引的二值化信息通过截断一元码的反二值化方法得到当前运动信息在所在候选运动信息列表类型中的索引的值。
本领域技术人员应当能够理解,关于将码流中的类型索引的二值化信息和码流中的当前运动信息在所在候选运动信息列表类型中的索引的二值化信息进行反二值化的方法可以是相同的方法,也可以是不同的方法。
关于反二值化的方法在此不做任何限制,可以使用现有的或将来开发的任何二值化方法。
在步骤902处:将候选运动信息列表分为多个类型。
具体的,一种可能的实现方式为按照编码器侧对候选运动信息列表进行分类的相同分类方法对其进行分类,由此可以获得的分类类型与编码器侧获得的分类类型相同。
具体地,将当前块的周边块的时域和空域运动信息的缩放分为一类,并记类型索引的值为“0”;将历史运动信息分为一类,并记类型索引的值为“1”。
一种可能的实现方式为将历史运动信息分为一类,并记类型索引的值为“0”;将当前块的周边块的时域和空域运动信息分为一类,并记类型索引的值为“1”。
在步骤903处:根据解析出的类型索引的值和当前运动信息在所在候选运动信息列表类型中的索引值来确定运动信息。
具体的,一种可能的实现方式为通过类型索引的值确定当前运动信息在哪个类型中,并通过当前运动信息在所在候选运动信息列表类型中的索引的值在所确定的类型中找到运动信息。
对应于上述在编/解码器侧对二值化信息的处理方法,本申请还提出了执行所述方法的装置,以下将参考图10和图11进行说明。
图10示意性地示出了对帧间跳过模式或者帧间直接模式下的运动信息索引进行二值化的装置1000。
装置1000可以包括分类单元1001、二值化单元1002以及二值化信息的写入单元1003。
分类单元1001可以被配置为将候选运动矢量列表分成不同的类型。
示例性地,在候选运动信息列表包括基于历史信息的运动矢量预测列表和空域候选列表、时域候选列表的情况下,一种可能的实现方式为将当前块的周边块的时域和空域运动信息分为一类,并记类型索引的值为“0”;将历史运动信息分为一类,并记类型索引的值为“1”。
一种可能的实现方式为将历史运动信息分为一类,并记类型索引的值为“0”;将当前块的周边块的时域和空域运动信息分为一类,并记类型索引的值为“1”。
二值化单元1002可以被配置为将经由分类单元1001分类出的候选运动信息列表的多个类型的类型索引的值和当前运动信息在所在候选运动信息列表类型中的索引值进行二值化。
示例性地,一种可能的实现方式为将类型索引值进行定长编码,即类型索引的值为“0”对应着二值化“0”,类型索引的值为“1”对应着二值化“1”;将当前运动信息在所在候选运动信息列表类型中的索引值进行截断一元码二值化。
二值化信息的写入单元1003可以被配置为将在二值化单元1002中得到的二值化结果写入码流中。
具体地,二值化信息的写入单元1003可以将候选运动信息列表的多个类型的类型索引的值和当前运动信息在所在候选运动信息列表类型中的索引值的二值化结果写入码流中。
图11示意性地示出了基于帧间跳过模式或者帧间直接模式下的运动信息的索引的二值化信息来获得运动信息的装置1100。
装置1100可以包括解析单元1101、分类单元1102、以及确定单元1103。
解析单元1101可以被配置为将解析码流中类型索引的值和当前运动信息在所在候选运动信息列表类型中的索引值。
具体的,一种可能的实现方式为将码流中的类型索引的二值化信息通过定长编码的反二值化方法得到类型索引的值;将码流中的当前运动信息在所在候选运动信息列表类型中的索引的二值化信息通过截断一元码的反二值化方法得到当前运动信息在所在候选运动信息列表类型中的索引的值。
分类单元1102可以被配置为将候选运动矢量列表分成不同的类型。
具体的,一种可能的实现方式为将当前块的周边块的时域和空域运动信息的缩放分为一类,并记类型索引的值为“0”;将历史运动信息分为一类,并记类型索引的值为“1”。
一种可能的实现方式为将历史运动信息分为一类,并记类型索引的值为“0”;将当前块的周边块的时域和空域运动信息分为一类,并记类型索引的值为“1”。
确定单元1103可以被配置为根据解析出的类型索引的值和当前运动信息在所在候选运动信息列表类型中的索引值来确定运动信息。
具体的,一种可能的实现方式为通过类型索引的值确定当前运动信息在哪个类型中,并通过当前运动信息在所在候选运动信息列表类型中的索引的值在所确定的类型中找到运动信息。
以上所述的各模块、单元可以通过软件、硬件、固件或其结合来实现。例如,可以通过在计算机可读介质中保持的包括指令集的计算机程序来实现。所述指令集为执行上述操作的代码。计算机可读介质包括计算机储存介质和通信介质,包括促进将计算机程序从一个地方传输到另一个地方的任何介质。储存介质可以是计算机可以访问的任何可用介质。通过实例,而非限制性地,这种计算机可读介质可以包括ram、rom、eeprom、cd-rom或其他光盘储存器、磁盘储存器或其他磁储存装置、或者可用于通过指令或数据结构的形式传输或储存期望的程序代码的并且可以由计算机访问的任何其他介质。而且,任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或无线技术(例如,红外、无线电以及微波),从网站、服务器或其他远程源中传输软件,那么在介质的定义内包括同轴电缆、光纤电缆、双绞线、dsl或无线技术(例如,红外、无线电以及微波)。在本文中使用的磁盘和圆盘包括光碟(cd)、激光盘、光盘、数字通用光盘(dvd)、软盘以及blu-raytm盘,其中,圆盘通常磁性再现数据,同时,圆盘通过激光在光学上再现数据。因此,在一些方面,计算机可读介质可以包括永久的计算机可读介质(例如,有形介质)。此外,在一些方面,计算机可读介质可以包括暂时的计算机可读介质(例如,信号)。还应在计算机可读介质的范围内包括以上内容的组合。
虽然上面已经详细描述了具体的实施方式,但是描述仅仅是出于说明的目的。因此,应当理解,除非另有明确说明,否则上述许多方面不旨在作为必需或必要的要素。除了上述示例性实现之外,在不脱离在所附权利要求限定的本公开的精神和范围的情况下,受益于本公开的本领域普通技术人员可以对与示例性实施方式的公开方面进行各种相对应的修改和等效操作,本公开的范围应得到最广泛的解释,以便包含这些修改和等效结构。