视频编码的方法与装置,以及视频解码的方法与装置与流程

文档序号:21049209发布日期:2020-06-09 21:05阅读:168来源:国知局
视频编码的方法与装置,以及视频解码的方法与装置与流程

版权申明

本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。

本申请涉及视频编码领域和视频解码领域,并且更为具体地,涉及一种视频编码的方法与装置,以及一种视频解码的方法与装置。



背景技术:

视频编码的基本原理是利用空域、时域和码字之间的相关性,尽可能去除冗余以节省传输带宽或者存储空间。目前常用的做法是采用基于块的混合视频编码框架,通过预测(包括帧内预测和帧间预测)、变换、量化、熵编码等步骤实现视频编码压缩。在各种视频编码方案和解码方案中,运动估计和运动补偿是一种影响编码性能和解码性能的关键技术。

由于视频中邻近帧中的物体之间存在着一定的相关性,因此,可将待编码帧分成若干图像块,搜索出每个图像块在邻近帧中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量即运动矢量(motionvector,mv),得到运动矢量的过程被称为运动估计(motionestimation,me),通过运动估计可以去除帧间冗余,减少视频传输的比特开销。

由于不同类型的视频中物体的运动方式复杂多变,编码端和解码端在进行运动估计时会消耗较多的时间,如何提高运动估计的效率是当前需要解决的问题。



技术实现要素:

本申请提供了一种视频编码的方法与装置,以及一种视频解码的方法与装置,能够减小编码的复杂度和解码的复杂度。

第一方面,本申请提供了一种视频编码的方法,包括:根据当前块的运动信息候选列表确定当前块的基准运动信息;根据当前块所属的帧的类型从对应的偏移值候选集合中确定目标偏移值,其中,所述类型包括第一类型和第二类型,第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集;根据基准运动信息确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

应用上述方法的视频编码装置对于不同类型的帧采用不同的偏移值集合进行帧间预测。对于运动较为复杂的帧,视频编码装置可以采用包含较多偏移值的集合,从而可以选择较小的搜索步长精确搜索最优运动矢量;对于运动较为简单的帧,视频编码装置可以采用包含较少偏移值的集合(即,包含较多偏移值的集合的子集),从而可以快速搜索最优运动矢量。此外,由于视频编码装置对于不同类型的帧均从预设的集合中选择目标偏移值,无需再基于不同的类型确定是否对偏移值进行移位处理,从而减小了视频编码的复杂度。

第二方面,本申请提供了另一种视频编码的方法,包括:根据当前块的运动信息候选列表确定当前块的基准运动信息;根据当前块所属的帧的类型从同一个偏移值候选列表中确定目标偏移值;根据基准运动信息确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

应用上述方法的视频编码装置对于不同类型的帧采用不同的偏移值集合进行帧间预测。对于运动较为复杂的帧,视频编码装置可以采用包含较多偏移值的集合,从而可以选择较小的搜索步长精确搜索最优运动矢量;对于运动较为简单的帧,视频编码装置可以采用包含较少偏移值的集合,从而可以快速搜索最优运动矢量。此外,由于视频编码装置对于不同类型的帧均从预设的列表中选择目标偏移值,无需再基于不同的类型确定是否对偏移值进行移位处理,从而减小了视频编码的复杂度。

第三方面,本申请提供了再一种视频编码的方法,包括:根据当前块的运动信息候选列表确定所述当前块的基准运动信息;从偏移值候选列表中选择所述当前块的目标偏移值,其中,屏幕内容和非屏幕内容的视频帧采用同一个偏移值候选列表;根据所述基准运动信息和所述目标偏移值确定所述当前块的运动信息;根据所述当前块的运动信息对所述当前块进行编码,得到码流,其中,所述码流中包含所述目标偏移值在所述偏移值候选列表中的索引号。

应用上述方法的视频编码装置对于不同类型的帧采用不同的偏移值集合进行帧间预测。对于运动较为复杂的帧,视频编码装置可以采用包含较多偏移值的集合,从而可以选择较小的搜索步长精确搜索最优运动矢量;对于运动较为简单的帧,视频编码装置可以采用包含较少偏移值的集合,从而可以快速搜索最优运动矢量。此外,由于视频编码装置对于不同类型的帧均从预设的列表中选择目标偏移值,无需再基于不同的类型确定是否对偏移值进行移位处理,从而减小了视频编码的复杂度。此外,由于不同类型的帧对应的目标偏移值的索引号是同一编排的,因此,码流中无需携带指示帧的类型的指示信息,从而减小了码流的比特开销。

第四方面,本申请提供了一种视频解码的方法,包括:根据当前块的运动信息候选列表确定当前块的基准运动信息;确定目标偏移值,其中,目标偏移值为当前块所属的帧的类型对应的偏移值候选集合中的一个偏移值,其中,所述类型包括第一类型和第二类型,第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集;根据基准运动信息确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

由于不同类型的帧所对应的偏移值集合均为预设的偏移值集合,视频解码装置无需根据帧的类型确定是否对偏移值进行移位处理,因此,应用上述方法的视频解码装置减小了解码的复杂度。

第五方面,本申请提供了另一种视频解码的方法,包括:根据当前块的运动信息候选列表确定当前块的基准运动信息;从一个偏移值候选列表中确定目标偏移值,其中,不同类型的帧中的图像块采用同一个偏移值候选列表确定目标偏移值;根据基准运动信息确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

由于不同类型的帧所对应的偏移值集合属于预设的偏移值列表中的集合,视频解码装置无需根据帧的类型确定是否对偏移值进行移位处理,因此,应用上述方法的视频解码装置减小了解码的复杂度。

第六方面,本申请提供了再一种视频解码的方法,包括:接收码流,所述码流包含索引号;根据所述索引号从偏移值候选列表中选择所述当前块的目标偏移值,其中,屏幕内容和非屏幕内容的视频帧采用同一个偏移值候选列表;根据当前块的运动信息候选列表确定所述当前块的基准运动信息;根据所述基准运动信息和所述目标偏移值确定所述当前块的运动信息;根据所述当前块的运动信息对所述当前块进行解码,得到解码后的所述当前块。

由于不同类型的帧所对应的偏移值集合属于预设的偏移值列表中的集合,视频解码装置可以基于码流中的索引号确定目标偏移值,无需根据帧的类型确定是否对偏移值进行移位处理,因此,应用上述方法的视频解码装置减小了解码的复杂度。此外,应用上述方法的视频解码装置无需接收指示帧的类型的指示信息,码流无需携带该指示信息,从而减小了码流的比特开销。

第七方面,本申请提供了一种编码装置,所述编码装置包括处理单元,用于:根据当前块的运动信息候选列表确定当前块的基准运动信息;根据当前块所属的帧的类型从对应的偏移值候选集合中确定目标偏移值,其中,所述类型包括第一类型和第二类型,第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集;根据基准运动信息确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

第八方面,本申请提供一种编码装置,所述编码装置包括存储器和处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并且对所述存储器中存储的指令的执行使得所述处理器执行第一方面提供的方法。

第九方面,本申请提供一种芯片,所述芯片包括处理模块与通信接口,所述处理模块用于控制所述通信接口与外部进行通信,所述处理模块还用于实现第一方面提供的方法。

第十方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时使得所述计算机实现第一方面提供的方法。

第十一方面,本申请提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得所述计算机实现第一方面提供的方法。

第十二方面,本申请提供了一种编码装置,所述编码装置包括处理单元,用于:根据当前块的运动信息候选列表确定当前块的基准运动信息;根据当前块所属的帧的类型从同一个偏移值候选列表中确定目标偏移值;根据基准运动信息确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

第十三方面,本申请提供一种编码装置,所述编码装置包括存储器和处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并且对所述存储器中存储的指令的执行使得所述处理器执行第二方面提供的方法。

第十四方面,本申请提供一种芯片,所述芯片包括处理模块与通信接口,所述处理模块用于控制所述通信接口与外部进行通信,所述处理模块还用于实现第二方面提供的方法。

第十五方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时使得所述计算机实现第二方面提供的方法。

第十六方面,本申请提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得所述计算机实现第二方面提供的方法。

第十七方面,本申请提供了一种编码装置,所述编码装置包括处理单元,用于:根据当前块的运动信息候选列表确定所述当前块的基准运动信息;从偏移值候选列表中选择所述当前块的目标偏移值,其中,屏幕内容和非屏幕内容的视频帧采用同一个偏移值候选列表;根据所述基准运动信息和所述目标偏移值确定所述当前块的运动信息;根据所述当前块的运动信息对所述当前块进行编码,得到码流,其中,所述码流中包含所述目标偏移值在所述偏移值候选列表中的索引号。

第十八方面,本申请提供一种编码装置,所述编码装置包括存储器和处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并且对所述存储器中存储的指令的执行使得所述处理器执行第三方面提供的方法。

第十九方面,本申请提供一种芯片,所述芯片包括处理模块与通信接口,所述处理模块用于控制所述通信接口与外部进行通信,所述处理模块还用于实现第三方面提供的方法。

第二十方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时使得所述计算机实现第三方面提供的方法。

第二十一方面,本申请提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得所述计算机实现第三方面提供的方法。

第二十二方面,本申请提供了一种解码装置,所述解码装置包括处理单元,用于:根据当前块的运动信息候选列表确定当前块的基准运动信息;确定目标偏移值,其中,目标偏移值为当前块所属的帧的类型对应的偏移值候选集合中的一个偏移值,其中,所述类型包括第一类型和第二类型,第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集;根据基准运动信息确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

第二十三方面,本申请提供一种解码装置,所述解码装置包括存储器和处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并且对所述存储器中存储的指令的执行使得所述处理器执行第四方面提供的方法。

第二十四方面,本申请提供一种芯片,所述芯片包括处理模块与通信接口,所述处理模块用于控制所述通信接口与外部进行通信,所述处理模块还用于实现第四方面提供的方法。

第二十五方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时使得所述计算机实现第四方面提供的方法。

第二十六方面,本申请提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得所述计算机实现第四方面提供的方法。

第二十七方面,本申请提供了一种解码装置,所述解码装置包括处理单元,用于:根据当前块的运动信息候选列表确定当前块的基准运动信息;从一个偏移值候选列表中确定目标偏移值,其中,不同类型的帧中的图像块采用同一个偏移值候选列表确定目标偏移值;根据基准运动信息确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

第二十八方面,本申请提供一种解码装置,所述解码装置包括存储器和处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并且对所述存储器中存储的指令的执行使得所述处理器执行第五方面提供的方法。

第二十九方面,本申请提供一种芯片,所述芯片包括处理模块与通信接口,所述处理模块用于控制所述通信接口与外部进行通信,所述处理模块还用于实现第五方面提供的方法。

第三十方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时使得所述计算机实现第五方面提供的方法。

第三十一方面,本申请提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得所述计算机实现第五方面提供的方法。

第三十二方面,本申请提供了一种解码装置,所述解码装置包括接收单元和处理单元,所述接收单元用于:接收码流,所述码流包含索引号;所述处理单元用于:根据所述索引号从偏移值候选列表中选择所述当前块的目标偏移值,其中,屏幕内容和非屏幕内容的视频帧采用同一个偏移值候选列表;根据当前块的运动信息候选列表确定所述当前块的基准运动信息;根据所述基准运动信息和所述目标偏移值确定所述当前块的运动信息;根据所述当前块的运动信息对所述当前块进行解码,得到解码后的所述当前块。

第三十三方面,本申请提供一种解码装置,所述解码装置包括存储器和处理器,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,并且对所述存储器中存储的指令的执行使得所述处理器执行第六方面提供的方法。

第三十四方面,本申请提供一种芯片,所述芯片包括处理模块与通信接口,所述处理模块用于控制所述通信接口与外部进行通信,所述处理模块还用于实现第六方面提供的方法。

第三十五方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时使得所述计算机实现第六方面提供的方法。

第三十六方面,本申请提供一种包含指令的计算机程序产品,所述指令被计算机执行时使得所述计算机实现第六方面提供的方法。

附图说明

图1是一种适用于本申请的视频编码方法的示意图。

图2是一种适用于本申请的视频解码方法的示意图。

图3是一种适用于本申请的构建运动信息候选列表的方法的示意图。

图4是一种适用于本申请的确定最优运动矢量的方法的示意图。

图5是一种适用于本申请的插值方法的示意图。

图6是本申请提供的一种视频编码方法的示意图。

图7是本申请提供的一种视频解码方法的示意图。

图8是本申请提供的一种视频编码器的示意图。

图9是本申请提供的一种视频解码器的示意图。

图10是本申请提供的一种帧间预测装置的示意图。

图11是本申请提供的视频编码设备或者视频解码设备的示意图。

具体实施方式

为了便于理解本申请,首先对本申请提供的技术方案中可能涉及的技术特征进行描述。

图1示出了一种适用于本申请的视频编码方法的示意图。

该视频编码方法包括帧内预测(intraprediction)、帧间预测(interprediction)、变换(transform)、量化(quantization)、熵编码(entropyencode)、环内滤波(in-loopfiltering)等环节。将图像划分为编码块之后进行帧内预测或者帧间预测,并且在得到残差之后进行变换量化,最终进行熵编码并输出码流。此处编码块为由像素点组成的m×n大小的阵列(m可以等于n,也可以不等于n),并且各个像素点的像素值已知。图1中,p表示预测值,dn表示残差,ufn'表示重建值(滤波前),dn'表示残差。

帧内预测是指利用当前图像内已重建区域内像素点的像素值对当前编码块内像素点的像素值进行预测。

帧间预测是在已重建的图像中,为当前图像中的当前编码块寻找匹配的参考块。将参考块中的像素点的像素值作为当前编码块中像素点的像素值的预测信息或者预测值(以下不再区分信息和值),此过程即运动估计。

需要说明的是,当前编码块的运动信息包括了预测方向的指示信息(通常为前向预测、后向预测或者双向预测),一个或两个指向参考块的运动矢量,以及参考块所在图像的指示信息(通常为参考帧索引)。

前向预测是指当前编码块从前向参考图像集合中选择至少一个参考图像获取至少一个参考块。后向预测是指当前编码块从后向参考图像集合中选择至少一个参考图像获取至少一个参考块。双向预测是指从前向和后向参考图像集合中各选择至少一个参考图像获取至少一个参考块。当使用双向预测方法时,当前编码块会存在至少两个参考块,每个参考块各自需要运动矢量和参考帧索引进行指示,然后根据至少两个参考块内像素点的像素值确定当前块内像素点像素值的预测值。

运动估计过程需要为当前编码块在参考图像中搜索多个参考块,可以通过率失真优化(rate-distortionoptimization,rdo)或者其它方法确定最终使用哪一个或者哪几个参考块进行预测。

利用帧内预测方法或者帧间预测方法得到预测信息之后,根据当前编码块内像素点的像素值和对应的预测信息可以得到残差信息,例如可以通过当前编码块的像素值与参考块的像素值直接相减的方式得到残差信息,也可以是通过其它可能的方式得到残差值信息。然后利用离散余弦变换(discretecosinetransformation,dct)等方法对残差信息进行变换,再对变换后的残差信息进行量化,熵编码等操作,最终得到码流,以便解码端对码流进行解码。在编码端的处理中,还可以对预测信息和残差信息进行滤波操作,进而得到重建信息,并将其作为后续编码的参考信息。

解码端对码流的处理类似于编码端对图像进行编码的逆过程,图2示出了适用于本申请的码流解码方法的示意性流程图。

如图2所示,首先利用熵解码,反量化等操作变换得到残差信息,解码端首先通过解析码流得到当前待解码块的预测模式。如果是帧内预测,则利用当前待解码块周围已重建区域内像素点的像素值构建预测信息。如果是帧间预测,则需要得到当前解码块的运动信息,并使用该运动信息在已重建的图像中确定参考块,将参考块内像素点的像素值作为预测信息。使用预测信息(亦称为预测块)和残差信息(亦称为残差块),经过滤波操作便可以得到当前待解码块的重建信息(亦称为重建块),从而进一步得到重建的部分图像。

一些实现方式中,编码端(或解码端)在对当前图像块进行预测之前,会构建运动信息候选列表,根据在该运动信息候选列表中选中的候选运动信息对当前图像块进行预测。当前图像块为待进行编码(或解码)的图像块。当前图像块所在的图像帧称为当前帧。例如,当前图像块在一些视频标准中为一个编码单元(codingunit,cu)或一个解码单元(decodingunit,du)。

其中,本文中所提到的运动信息可以包括运动矢量,或者包括运动矢量和参考帧信息。其中,该运动信息候选列表指的是当前块的候选运动信息的集合,该运动信息候选列表中的各候选运动信息可以存储在同一个缓冲区(buffer)中,也可以存储在不同的缓冲区中,在此不做限制。下文中所提到的运动信息在运动信息候选列表中的索引,可以是运动信息在当前块的全部候选运动信息集合中的索引,或者,也可以运动信息在所在的缓冲区的索引,在此不做限制。

构建运动信息候选列表有多类模式。下面先对构建运动信息候选列表的其中一种模式进行举例说明。

作为一个示例,在编码端,在构建好运动信息候选列表之后,可以通过如下步骤完成当前图像块的编码。

1)从运动信息候选列表中选出最优的一个运动信息,根据该运动信息确定当前图像块的运动矢量mv1,并获得该选出的运动信息在运动信息候选列表中的索引。

2)根据当前图像块的运动矢量mv1,从参考图像(即参考帧)中确定当前图像块的预测图像块。即,确定当前图像块的预测图像块在参考帧中的位置。

3)获得当前图像块与预测图像块之间的残差。

4)向解码端发送步骤1)中获得的索引以及步骤3)获得的残差。

作为示例,在解码端,可以通过如下步骤解码出当前图像块。

1)从编码端接收残差与索引。

2)采用预设的方法构建运动信息候选列表。该预设的方法与编码端构建运动信息候选列表的方法可以一致。

3)根据索引,在运动信息候选列表中选中运动信息并根据该选中的运动信息确定当前图像块的运动矢量mv1。

4)根据运动矢量mv1,获取当前图像块的预测图像块,再结合残差,解码得到当前图像块。

也即在该模式中,当前图像块的运动矢量等于预测mv(motionvectorprediction,mvp)(例如上述提到的运动矢量mv1)。在一些视频编解码标准中,该模式包括合并(merge)模式。在一些视频编解码标准中,merger模式包括普通合并(normalmerge)模式和/或仿射合并(affinemerge)模式。

在该模式中,当前图像块的运动矢量等于预测mv(motionvectorprediction,mvp)(例如上述提到的运动矢量mv1)。一些示例中,该mvp可以是运动信息候选列表中的一个候选者,也可以是根据该运动信息候选列表中的其中一个候选者处理后(例如进行缩放后)得到的。

此外,还可以在当前图像块的mvp的基础上进一步优化,得到当前图像块的运动矢量。例如,以mvp为基准mv,以固定的搜索步长在其周围进行搜索,从搜索结果中选择最优mv。在一个示例中,在编码端,在确定基准mv后,以默认的固定方向(例如上下左右),以偏移值候选列表中的搜索步长每一个试一遍,搜索时仅按偏移值的步长偏移默认次数(例如偏移一次),然后将搜索得到的最优结果对应的图像块所采用的偏移值的索引号和方向的索引号写到码流中。解码端接收到基准mv的索引号、偏移值的索引号和方向的索引号,然后根据基准mv指向的块,以索引号对应的偏移值按索引号对应的方向偏移一次,就得到当前图像块的参考块。在一些视频标准中,该模式也可被称为mvd合并模式(mergemodewithmvd,mmvd)。

图3和图4示出了mmvd中确定最优mv的方法。

在mmvd中,编码端可以从运动矢量候选列表选择若干个(例如两个)基准mv。例如,一个mv为空域临近已编码块的mv(例如,图3中图像块1~5中的一个已编码块的mv),另一个mv为时域临近已编码块的mv(例如,在其他图像帧中对应图3中图像块6或图像块7位置处的图像块的mv)。该两个基准mv所对应的像素点如图4中的两个虚线圆所示,其中,l0表示第一基准mv所指向的图像帧,l1表示第二个基准mv所指向的图像帧。

在一个示例中,编码端分别以选择出的基准mv为起点,沿着固定方向(例如上下左右四个方向)进行搜索。在一个示例中,搜索时所采用的步长为偏移值候选列表中的一个偏移值。在一个示例中,偏移值候选列表中包含八个偏移值,分别为{1/4,1/2,1,2,4,8,16,32},对应的搜索步长索引号分别为0~7。编码端从偏移值候选列表中选择一个偏移值作为搜索步长进行搜索,根据rdo或者其它规则确定最优mv。实心圆和空心圆表示基于两种搜索步长搜索到的像素点。

由于物体运动的连续性,物体在相邻两帧之间的mv不一定刚好是整数个像素点。但是数字视频中并不存在分数像素点(例如,1/4像素点和1/2像素点),即,两个像素点之间不存在其它像素点。为了提高mv搜索的精确程度,可以将这些分像素点的值通过内插方式近似估算出来,也就是对参考帧的行方向和列方向进行插值,在插值之后的参考帧中进行搜索。在对当前块进行插值的过程,需要用到当前块中的像素点及其相邻区域的像素点。下面举例说明插值方法。

如图5所示,a0,0和d0,0为1/4像素点,b0,0和h0,0为1/2像素点(也可称之为“半像素点”),c0,0和n0,0为3/4像素点。编码块为由a0,0~a1,0以及a0,0~a0,1围成的2x2大小的块。为了计算这个2x2的块中所有的插值像素点,需要该编码块外部的一些像素点,包括该编码块的左边3个像素点、右边4个像素点、上边3个像素点以及下边4个像素点。下列公式给出了上述编码块中部分插值像素点所使用外部像素点。

a0,j=(∑i=-3..3ai,jqfilter[i])>>(b-8)

b0,j=(σi=-3..4ai,jhfilter[i])>>(b-8)

c0,j=(σi=-2..4ai,jqfilter[1-i])>>(b-8)

d0,0=(σi=-3..3a0,jqfilter[j])>>(b-8)

h0,0=(σi=-3..4a0,jhfilter[j])>>(b-8)

n0,0=(∑i=-2..4a0,jqfilter[1-j])>>(b-8)

完成插值后,即可使用1/4或1/2等分数搜索步长搜索最优mv。

由于不同类型的帧中物体的运动情况不同,因此,需要根据当前块所属的帧选择不同的搜索步长。

本申请提供了一种视频编码方法,能够提高编码性能。如图6所示,该方法600包括:

s610,根据当前块的运动信息候选列表确定当前块的基准mv。

确定基准mv的方法如上文所述,在此不再赘述。

s620,根据当前块所属的帧的类型从对应的偏移值候选集合中确定目标偏移值,其中,所述类型包括第一类型和第二类型,第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集。

第一类型的帧的内容变化程度相比第二类型的帧的内容变化程度简单。上述第一类型例如是屏幕内容,上述第二类型例如是非屏幕内容。其中,屏幕内容可以是录屏得到的帧,非屏幕内容可以是拍摄自然物体得到的帧。通常情况下,屏幕内容中物体的运动方式(例如,文字的平移)相比非屏幕内容中自然物体的运动方式(例如,运动员的转动)简单。因此,第一类型的帧也可以被称为简单运动帧,第二类型的帧也可以被称为复杂运动帧。

对于简单运动帧,编码端可以使用较长的搜索步长搜索最优mv,以便于提高编码效率;对于复杂运动帧,编码端可以使用较短的搜索步长搜索最优mv。

例如,若当前块所属的帧的类型为第一类型,编码端可以从第一类型对应的偏移值候选集合{1,2,4,8,16,32}中选择一个值作为当前块的目标偏移值;若当前块所属的帧的类型为第二类型,编码端可以从第二类型对应的偏移值候选集合{1/4,1/2,1,2,4,8,16,32}中选择一个值作为当前块的目标偏移值。

由于第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集,因此,作为一个可选的实施方式,该两个偏移值候选集合可以合并存储。即,第一类型对应的偏移值候选集合和第二类型对应的偏移值候选集合位于同一个偏移值候选列表中。编码端在编码第一类型和第二类型的帧中的图像块时,可以将所选择的偏移值在该同一个偏移值候选列表中的索引号写入码流中。可选地,第一类型对应的偏移值候选集合和第二类型对应的偏移值候选集合存储于同一个缓冲区中。

上述示例仅是举例说明,适用于本申请的偏移值候选集合不限于此。例如,第一类型对应的偏移值候选集合还可以是{1,2,4,8,16,32,64},第二类型对应的偏移值候选集合是{1/4,1/2,1,2,4,8,16,32}。在该情况下,第一类型对应的偏移值候选集合和第二类型对应的偏移值候选集合可以位于同一个偏移值候选列表中。

在一个示例中,s620也可以替换为下述步骤:

根据当前块所属的帧的类型从同一个偏移值候选列表中确定目标偏移值。

编码端确定目标偏移值后,即可执行下列步骤。可选地,s630也可以s620之前执行,或者,与s620一起执行。

s630,根据基准mv确定搜索起点。

s640,在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

若搜索步长为1/4或1/2等非整数像素点的长度,则编码端需要对参考帧进行插值,并在插值后的参考帧中搜索参考块;若搜索步长为1或2等整数像素点的长度,则编码端无需对参考帧进行插值,可以直接在参考帧中搜索参考块。插值的方法以及搜索参考块的方法上文中已经详细描述,此处不再赘述。

在一些示例中,屏幕内容采用的偏移值候选列表为{1,2,4,8,16,32,64,128},非屏幕内容采用的偏移值候选列表为{1/4,1/2,1,2,4,8,16,32};编码端对图像块进行编码后,需要在码流中加入标识,用于指示帧的类型是属于屏幕内容还是非屏幕内容,以及在码流中加入所选择的偏移值在对应的偏移值候选列表中的索引号。解码端在接收到码流后,根据码流中的标识确定图像帧的类型是屏幕内容还是非屏幕内容,然后选择对应的偏移值候选列表,并根据码流中的索引号从对应的偏移值候选列表中选择出对应的偏移值作为搜索步长进行搜索。一些示例中,为减少占用的存储量,编解码端在存储偏移值候选列表时仅存储非屏幕内容采用的偏移值候选列表{1/4,1/2,1,2,4,8,16,32}。当根据标识确定图像帧类型为屏幕内容时,对偏移值候选列表{1/4,1/2,1,2,4,8,16,32}进行移位操作,得到{1,2,4,8,16,32,64,128},然后根据索引号在移位操作后得到的偏移值候选列表中选择对应的偏移值作为搜索步长。

本申请的一些示例中,由于64或128的搜索步长过大,采用这两种搜索步长得到的最优mv可能只是局部最优mv,对编码性能可能有负面影响,因此,本申请提供的编码方法无需使用64或128作为目标偏移值,提高了编码性能。而且,第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集,或者,在确定不同类型的帧中的图像块的搜索步长时是从同一个偏移值候选列表中确定目标偏移值,因此,这个过程中编解码端均无需进行移位操作,减小了编码的复杂度。本申请的一些示例中,编码端也可以不需要在码流中加入用于指示图像帧是属于第一类型还是第二类型的标识;也即码流中没有用于指示图像帧是属于第一类型还是第二类型的标识,减少了字节开销。

编码端确定参考块之后,可以对当前块进行编码,得到码流,其中,该码流包含目标偏移值在偏移值候选列表中的索引号。

一个示例中,偏移值候选列表中的值为{1/4,1/2,1,2,4,8,16,32},码流中的索引号可以是0~7,分别对应偏移值候选列表中的八个值。对于第一类型帧中的图像块,在码流中用于指示搜索步长的索引号是2~7中的一个数字;对于第二类型帧中的图像块,在码流中用于指示搜索步长的索引号是0~7中的一个数字。

一个示例中,偏移值候选列表中的值为{1/4,1/2,1,2,4,8,16,32,64},码流中的索引号可以是0~8,分别对应偏移值候选列表中的九个值。对于第一类型帧中的图像块,在码流中用于指示搜索步长的索引号是2~8中的一个数字;对于第二类型帧中的图像块,在码流中用于指示搜索步长的索引号是0~8中的一个数字。

编码端可以将目标偏移值在偏移值候选列表中的索引号写入码流,以便于解码端基于索引号对应的搜索步长进行搜索。由于不同类型的帧对应一套偏移值索引号,解码端无需根据帧的类型对偏移值进行移位,因此,编码端无需在码流中写入帧的类型的指示信息,从而减小了编码的信息开销。

解码端可以基于图7所示的方法进行解码。图7所示的方法包括:

s710,根据当前块的运动信息候选列表确定当前块的基准mv。

解码端可以按照编码端所示的方法构建当前块的运动信息候选列表。随后,解码端从运动信息候选列表中选择基准mv,并执行下列步骤。

s720,确定目标偏移值。

其中,所述目标偏移值为当前块所属的帧的类型对应的偏移值候选集合中的一个偏移值,所述类型包括第一类型和第二类型。

一个示例中,第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集。解码端可以使用一个偏移值候选列表,即,解码端从一个偏移值候选列表中确定不同类型的帧对应的偏移值候选集合;解码端也可以使用多个偏移值候选列表,即,解码端从不同的类型对应的偏移值候选列表中选择目标偏移值。

例如,第一类型对应的偏移值候选集合为{1,2,4,8,16,32},第二类型对应的偏移值候选集合为{1/4,1/2,1,2,4,8,16,32},该两个集合可以位于一个列表中,该列表包含的偏移值为{1/4,1/2,1,2,4,8,16,32}。解码端接收到的码流中用于指示搜索步长的索引号,是对应同一个偏移值候选列表中的不同偏移值。

一个示例中,第一类型对应的偏移值候选集合和第二类型对应的偏移值候选集合存在交集。解码端可以使用一个偏移值候选列表,即,解码端从一个偏移值候选列表中确定不同类型的帧对应的偏移值候选集合。

例如,第一类型对应的偏移值候选集合为{1,2,4,8,16,32,64},第二类型对应的偏移值候选集合为{1/4,1/2,1,2,4,8,16,32},该两个集合可以位于一个列表中,该列表包含的偏移值为{1/4,1/2,1,2,4,8,16,32,64}。

解码端可以自己确定搜索步长,可选地,解码端可以从当前块对应的码流中确定索引号,并根据该索引号从一个偏移值候选列表中确定目标偏移值。由于不同类型的帧对应一套偏移值索引号,解码端无需根据帧的类型对偏移值进行移位。可选地,编码端无需在码流中写入帧的类型的指示信息,从而减小了编码的信息开销。解码端在解码时不需要去区分帧的类型,不管图像帧是属于哪一种类型,都是从码流中解出索引号后从同一个偏移值候选列表中确定搜索步长。

解码端确定目标偏移值之后,可以执行下列步骤。可选地,s730也可以s720之前执行,或者,与s720一起执行。

s730,根据基准mv确定搜索起点。

s740,在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

若搜索步长为1/4或1/2等非整数像素点的长度,则解码端需要对参考帧进行插值,并在插值后的参考帧中搜索参考块;若搜索步长为1或2等整数像素点的长度,则解码端无需对参考帧进行插值,可以直接在参考帧中搜索参考块。插值的方法以及搜索参考块的方法上文中已经详细描述,此处不再赘述。

由于64或128的搜索步长过大,采用这两种搜索步长得到的最优mv可能只是局部最优mv,对解码性能可能有负面影响,一些示例中,本申请提供的解码方法未使用64或128作为目标偏移值,提高了编码性能。

上文详细描述了本申请提供的视频编码方法和视频解码方法,下面,将结合附图对本申请提供的视频编码装置和视频解码装置进行清楚、完整地描述。

图8为本申请提供的一种视频编码器的示意图。视频编码器100用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码视频数据的视频实体的示例,例如,媒体感知网络元件(media-awarenetworkelement,mane)或拼接/编辑装置。后处理实体41和视频编码器100互为独立装置,或者,后处理实体41可集成在包括视频编码器100中。视频编码器100可根据本申请提出的方法执行图像块的帧间预测。

在图8的示例中,视频编码器100包括预测处理单元108、滤波器106、编码图像缓冲器(codedpicturebuffer,cpb)107、求和器112、变换器101、量化器102和熵编码器103。预测处理单元108包括帧间预测器110和帧内预测器109。为了重构图像块,视频编码器100还包含反量化器104、反变换器105和求和器111。滤波器106表示一个或多个环路滤波器,例如去块滤波器、自适应环路滤波器(adaptiveloopfilter,alf)和样本自适应偏移(sampleadaptiveoffset,sao)滤波器。图8中滤波器106可以是环路内滤波器,也可以为环路后滤波器。在一种示例中,视频编码器100还可以包括视频数据存储器(图中未示意)。

视频数据存储器可存储待视频编码器100编码的视频数据。视频数据存储器也可以作为参考图像存储器,存储视频编码器100在帧内译码模式和/或帧间译码模式中对视频数据进行编码时的参考视频数据。视频数据存储器和cpb107可由多种存储器装置中的任一者形成,例如包含同步动态随机存取存储器(synchronousdynamicrandomaccessmemory,sdram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、磁阻式随机存取存储器(magneticrandomaccessmemory,mram)、电阻式随机存取存储器(resistiverandomaccessmemory,rram)或其它类型的存储器。视频数据存储器和cpb107可由同一存储器装置或单独存储器装置提供。视频数据存储器还可与视频编码器100的其它组件集成在芯片上,或者与其它组件分立设置。

如图8所示,视频编码器100接收视频数据,并将所述视频数据存储在视频数据存储器中。分割单元将视频数据(帧)分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构进行分割。上述分割的结果可以是条带(slice)、片(tile)或其它较大单元,所述条带可被分成多个图像块或者被称作“片”的图像块集合。预测处理单元108(例如帧间预测单元110)可以确定当前图像块的运动信息候选列表,并根据筛选规则从该运动信息候选列表中确定目标运动信息,随后根据目标运动信息,对当前图像块执行帧间预测。预测处理单元108可以将经过帧内译码和/或帧间译码的当前图像块提供给求和器112以产生残差块,预测处理单元108还可以将经过帧内译码和/或帧间译码的当前图像块提供给求和器111以重构作为参考图像块的编码块。此外,预测处理单元108(例如帧间预测单元110)可以将目标运动信息的索引信息发送至熵编码器103,以便于熵编码器103将目标运动信息的索引信息编入码流。

预测处理单元108内的帧内预测器109可对当前图像块执行帧内预测性编码,以去除空间冗余。预测处理单元108内的帧间预测器110可对当前图像块执行帧间预测性编码以去除时间冗余。

帧间预测器110用于确定用于帧间预测的目标运动信息,并根据该目标运动信息预测当前图像块中一个或多个基本运动补偿单元的运动信息,并利用当前图像块中一个或多个基本运动补偿单元的运动信息获取或产生当前图像块的预测块。

例如,帧间预测器110可计算运动信息候选列表中的各种运动信息的rdo值,并从中选择具有最佳rdo特性的运动信息。rdo特性通常用于衡量已编码图像块与未编码图像块之间的失真(或误差)程度。例如,帧间预测器110可确定运动信息候选列表中编码当前图像块的rdo代价最小的运动信息为对当前图像块进行帧间预测的目标运动信息。

帧间预测器110还可产生与图像块和条带相关联的语法元素以供视频解码器200在对条带中的图像块解码时使用。

在为当前图像块选择目标运动信息之后,帧间预测器110可将当前图像块的目标运动信息的索引发送到熵编码器103,以便于熵编码器103编码该索引。

帧内预测器109用于确定用于帧内预测的目标运动信息,并基于该目标运动信息对当前图像块执行帧内预测。例如,帧内预测器109可计算各个候选运动信息的rdo值,选择rdo代价最小的运动信息为对当前图像块进行帧内预测的目标运动信息,并基于rdo值选择具有最佳rdo特性的帧内预测模式。在选择目标运动信息之后,帧内预测器109可将当前图像块的目标运动信息的索引发送到熵编码器103,以便熵编码器103编码该索引。

在预测处理单元108通过帧间预测和/或帧内预测产生当前图像块的预测块之后,视频编码器100通过待编码的当前图像块减去所述预测块来形成残差图像块(残差块)。求和器112表示执行此减法运算的一个或多个组件。所述残差块中的残差视频数据可包含在一个或多个变换单元(transformunit,tu)中,并应用于变换器101。变换器101使用例如dct等方式将残差视频数据变换成残差变换系数。变换器101可将残差视频数据从像素值域转换到变换域,例如频域。

变换器101可将所得变换系数发送到量化器102。量化器102量化所述变换系数以进一步减小位速率。在一些示例中,量化器102可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码器103可执行扫描。

在量化之后,熵编码器103对经量化变换系数进行熵编码。举例来说,熵编码器103可执行上下文自适应可变长度编码(contextadaptivevariablelengthcoding,cavlc)、上下文自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)、基于语法的上下文自适应二进制算术编码(syntax-basedcontextadaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)编码或其它熵编码方法。熵编码器103在进行熵编码之后,可将将码流发射到视频解码器200。熵编码器103还可对待编码的当前图像块的语法元素进行熵编码,例如,将目标运动信息编入码流中。

反量化器104和反变化器105分别应用逆量化和逆变换以在像素域中重构残差块(例如,用作参考图像的图像块)。求和器111将经重构的残差块添加到由帧间预测器110或帧内预测器109产生的预测块,以产生经重构的图像块。滤波器106可以用于处理经重构的图像块以减小失真,例如减小方块效应(blockartifacts)。该经重构的图像块可以存储在图像缓冲器107中,作为帧间预测器110对后续视频帧或图像中的块进行帧间预测的参考块。

应当理解的是,上述视频编码器100的处理流程仅是举例说明,视频编码器100还可以基于其它处理流程进行视频编码。例如,对于某些图像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换器101处理,相应地也不需要经反变换器105处理;或者,对于某些图像块或者图像帧,视频编码器100没有产生残差数据,相应地不需要经变换器101、量化器102、反量化器104和反变换器105处理;或者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器106处理;或者,视频编码器100中量化器102和反量化器104可以合并在一起。

图9为本申请提供的一种视频解码器的示意图。在图9的示例中,视频解码器200包括熵解码器203、预测处理单元208、反量化器204、反变换器205、求和器211、滤波器206以及经解码图像缓冲器207。预测处理单元208可以包括帧间预测器210和帧内预测器209。在一些示例中,视频解码器200可执行大体上与视频编码器100描述的编码过程互逆的解码过程。

在解码过程中,视频解码器200从视频编码器100接收包括图像块和相关联的语法元素的码流。视频解码器200可从网络实体42接收视频数据,可选的,还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可以作为存储码流的解码图像缓冲器(codedpicturebuffer,dpb)。因此,尽管在图9中没有示意出视频数据存储器,但视频数据存储器和dpb207可以是同一个的存储器,也可以是单独设置的存储器。视频数据存储器和dpb207可由多种存储器装置中的任一者形成,例如:包含sdram、dram、mram、rram或其它类型的存储器。在各种示例中,视频数据存储器可与视频解码器200的其它组件的其它组件集成在芯片上,或者与其它组件分立设置。

网络实体42例如可以是服务器、mane或视频编辑器/剪接器。网络实体42可包括或不包括视频编码器,例如视频编码器100。网络实体42和视频解码器200可以是相互独立的装置,可选地,网络实体42也可以与视频解码器200集成在一个装置中。

视频解码器200的熵解码器203对码流进行熵解码以产生经量化的系数和语法元素。熵解码器203将语法元素转发到预测处理单元208。视频解码器200可接收视频条带层级和/或图像块层级的语法元素。本申请中,在一种示例下,这里的语法元素可以包括与当前图像块相关的目标运动信息。

当视频条带被解码为帧内解码条带(i条带)时,预测处理单元208的帧内预测器209可基于码流中指示的帧内预测模式和来自当前帧的已解码图像块产生当前视频条带的图像块的预测块。当视频条带被解码为帧间解码条带(b条带或p条带)时,预测处理单元208的帧间预测器210可基于从熵解码器203接收到的语法元素,确定用于对当前视频条带的当前图像块进行解码的目标运动信息,基于该目标运动信息,对当前图像块进行解码(例如执行帧间预测)。

帧间预测器210可以确定是否对当前视频条带的当前图像块采用新的帧间预测方法进行预测,例如,是否采用本申请的方法来确定目标偏移值。如果语法元素指示采用新的帧间预测方法来对当前图像块进行预测,基于新的帧间预测方法(例如采用本申请的方法来确定目标偏移值)预测当前图像块的运动信息,并通过运动补偿过程使用预测出的当前图像块的运动信息来生成当前图像块的预测块。这里的运动信息可以包括参考图像信息和运动矢量,其中参考图像信息可以包括但不限于单向/双向预测信息,参考图像列表号和参考图像列表对应的参考图像索引。

视频解码器200可基于存储在dpb207中的参考图像来建构参考图像列表。上文方法实施例中已经详细的阐述了采用方法700来预测当前图像块的运动信息的帧间预测过程。

反量化器204将熵解码器203解码得到的量化变换系数进行逆量化(即,去量化)。逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度,以及根据该量化程度确定应施加的逆量化程度。反变换器205对变换系数进行逆变换处理,例如,逆dct、逆整数变换或其它逆变换过程,以产生像素域中的残差块。

在帧间预测器210产生当前图像块或当前图像块的子块的预测块之后,视频解码器200对来自反变换器205的残差块与来自帧间预测器210的预测块求和得到重建的块。求和器211表示执行此求和操作的组件。在需要时,还可使用滤波器206(在解码环路中或在解码环路之后)来使像素转变平滑或者使用以其它方式改进视频质量。滤波器206可以是一个或多个环路滤波器,例如去块滤波器、alf以及sao滤波器。在一种示例下,滤波器206适用于重建块以减小块失真,并将该结果作为解码视频流输出。并且,还可以将给定帧或图像中的经解码图像块存储在dpb207中,用于后续运动补偿的参考图像。dpb207还可以存储解码后的视频,以供稍后在显示装置上呈现。

应当理解的是,上述视频解码器200的处理流程仅是举例说明,视频解码器200还可以基于其它处理流程进行视频解码。例如,视频解码器200可以不经滤波器206处理而输出视频流;或者,对于某些图像块或者图像帧,视频解码器200的熵解码器203没有解码出经量化的系数,这些图像块或者图像帧也就不需要经反量化器204和反变换器205处理。

图10为本申请实施例中的帧间预测装置1000的一种示意性框图。需要说明的是,帧间预测装置1000既适用于解码视频图像的帧间预测,也适用于编码视频图像的帧间预测,应当理解的是,这里的帧间预测装置1000可以对应于图8中的帧间预测器110,或者可以对应于图9中的帧间预测器210。

当装置1000用于编码视频图像,该帧间预测装置1000可以包括:

帧间预测处理单元1001,用于根据当前块的运动信息候选列表确定当前块的基准mv。

偏移值选择单元1002,用于根据当前块所属的帧的类型从对应的偏移值候选集合中确定目标偏移值,其中,所述类型包括第一类型和第二类型,第一类型对应的偏移值候选集合是第二类型对应的偏移值候选集合的子集。

或者,用于根据当前块所属的帧的类型从同一个偏移值候选列表中确定目标偏移值。

帧间预测处理单元1001还用于:根据基准mv确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

由此可见,帧间预测装置1000对于不同类型的帧采用不同的偏移值集合进行帧间预测。对于运动较为复杂的帧,帧间预测装置1000可以采用包含较多偏移值的集合,从而可以选择较小的搜索步长精确搜索最优mv;对于运动较为简单的帧,帧间预测装置1000可以采用包含较少偏移值的集合(即,包含较多偏移值的集合的子集),从而可以快速搜索最优mv。该两个集合可以位于一个列表中,并且存储于一个缓冲区中,从而减小视频编码所消耗的存储空间。

当装置1000用于解码视频图像,装置1000可以包括:

帧帧间预测处理单元1001,用于根据当前块的运动信息候选列表确定当前块的基准mv。

偏移值选择单元1002,用于确定目标偏移值。

其中,所述目标偏移值为所述当前块所属的帧的类型对应的偏移值候选集合中的一个偏移值,所述类型包括第一类型和第二类型,所述第一类型对应的偏移值候选集合是所述第二类型对应的偏移值候选集合的子集;或者,不同类型的帧中的图像块采用同一个偏移值候选列表确定目标偏移值。

帧帧间预测处理单元1001还用于:根据基准mv确定搜索起点;在搜索起点以目标偏移值为搜索步长,搜索当前块的参考块。

由于不同类型的帧所对应的偏移值集合均为预设的偏移值集合,装置1000可以基于码流中的索引号确定目标偏移值,无需根据帧的类型确定是否对偏移值进行移位处理,因此,装置1000减小了解码的复杂度。

需要说明的是,本申请实施例的帧间预测装置中的各个模块为实现本申请的方法实施例中的各种步骤的功能主体,具体请参见本文方法实施例中对帧间预测方法的介绍,此处不再赘述。

图11为本申请提供的编码设备或解码设备(简称为译码设备1100)的一种实现方式的示意性框图。其中,译码设备1100可以包括处理器1110、存储器1130和总线系统1150。其中,处理器和存储器通过总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令。编码设备的存储器存储程序代码,且处理器可以调用存储器中存储的程序代码执行本申请描述的各种视频编码或解码方法,尤其是本申请描述的帧间预测方法。为避免重复,这里不再详细描述。

在本申请实施例中,该处理器1110可以是cpu,该处理器1110还可以是其他通用处理器、dsp、asic、fpga或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器1130可以包括rom或者ram。任何其他适宜类型的存储设备也可以用作存储器1130。存储器1130可以包括由处理器1110使用总线1150访问的代码和数据1131。存储器1130可以进一步包括操作系统1133和应用程序1135,该应用程序1135包括允许处理器1110执行本申请描述的视频编码或解码方法(尤其是本申请描述的帧间预测方法)的至少一个程序。例如,应用程序1135可以包括应用1至n,其进一步包括执行在本申请描述的视频编码或解码方法的视频编码或解码应用(简称视频译码应用)。

该总线系统1150除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1150。

可选的,译码设备1100还可以包括一个或多个输出设备,诸如显示器1170。在一个示例中,显示器1170可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1170可以经由总线1150连接到处理器1110。

本领域技术人员能够理解,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。

本申请还提供了一种包含上述编码方法和解码方法的计算机可读存储介质,计算机可读存储介质包含计算机程序产品,该计算机程序产品可由一个或多个处理器读取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构。

计算机可读存储介质可包含无形介质和有形介质。其中,无形介质例如是信号或者载波。作为示例而非限制,有形介质可包括软盘、硬盘、磁带等磁性介质,以及dvd等光介质,以及固态硬盘(solidstatedisk,ssd)等半导体介质。此外,连接也可称作计算机可读介质。举例来说,如果使用同轴缆线、光纤、双绞线、数字订户线(digitalsubscriberline,dsl)、红外线、无线电和微波从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤、双绞线、dsl、红外线、无线电和微波包含在介质的定义中。

本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(integratedcircuit,ic)或一组ic(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调装置能够实现所揭示的技术的功能,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件集成在编码器或解码器的硬件单元中。

领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1