局部多重假设预测的执行方法及装置与流程

文档序号:19130481发布日期:2019-11-15 20:50阅读:172来源:国知局

本申请是申请号为201180001047.4的中国专利申请的分案申请,原申请的申请日为2011年04月14日、申请号为201180001047.4,发明名称为“局部多重假设预测的执行方法及装置”。

本发明是关于运动补偿(motioncompensation)的视频处理,尤指在编码单元(codingunit)进行视频编码(videocoding)时执行局部多重假设预测(localizedmultihypothesisprediction)的方法以及相关装置。



背景技术:

运动补偿为一种将视频数据编码(coding)与译码(decoding)以进行视频压缩(videocompression)与解压缩(decompression)时所使用的技术,通过运动补偿的帮助,一当前画面(currentpicture)可由一个或多个参考画面(referencepicture)的部分视频数据来呈现,其中参考画面可能是之前已出现的画面,甚至是接下来会出现的画面。一般来说,当运用运动补偿时,图像可通过之前已传送/储存的图像来加以准确地合成产生,进而提升压缩效率(compressionefficiency)。此外,随着编码技术的进步,因应新的标准的相关设计也已被应用,以更进一步提升压缩效率。传统的运动补偿机制无法一直保持最佳效果,举例来说,某些情况下可能会存在低编码效率(codingefficiency)的问题,因此,需要有一种提升视频编码的编码效率的创新方法。



技术实现要素:

因此,本发明的目的之一在于提供一种局部多重假设预测技术的执行方法及装置,用于编码单元的视频编码,以解决上述问题。

根据本发明的实施例,其揭示一种局部多重假设预测的执行方法,用于编码单元的视频编码。该方法包含有:将该编码单元分割成多个次编码单元,以及对该多个次编码单元中的每一次编码单元进行处理。更具体地说,对该多个次编码单元的每一次编码单元进行处理的步骤包含:于第一已编码单元集合中取得运动信息,以供该多个次编码单元中的特定次编码单元执行多重假设运动补偿之用,其中,所述第一已编码单元集合中的已编码单元已进行过运动补偿,且所述运动信息包含第一运动向量与第二运动向量,所述第一运动向量与所述第二运动向量对应于所述编码单元所位于的当前帧内其他编码单元的多个次编码单元;由所述第一已编码单元集合的所述运动信息中取得多个像素值;利用所述多个像素值的线性组合来作为该特定次编码单元的预测像素值;以及利用第二已编码单元集合的运动信息来得到该编码单元中另一次编码单元的预测像素值,其中该第二已编码单元集合具有不包含于该第一已编码单元集合中的至少一已编码单元。

根据本发明的实施例,其另揭示一种局部多重假设预测的执行装置,用于编码单元的视频编码。该装置包含处理电路,用以对该编码单元进行视频编码,其中该处理电路包含预处理模块以及至少一编码模块。该预处理模块用以将该编码单元分割成多个次编码单元并处理该多个次编码单元中的每一次编码单元,更具体地说,该预处理模块会取得第一已编码集合的运动信息以供该多个次编码单元中特定次编码单元执行多重假设运动补偿,以及根据该运动信息对该特定次编码单元执行多重假设运动补偿,其中该预处理模块利用由该第一已编码单元集合的该运动信息所得到的多个像素值的线性组合来作为该特定次编码单元的预测像素值,其中所述第一已编码单元集合中的已编码单元已进行过运动补偿,且所述运动信息包含第一运动向量与第二运动向量,所述第一运动向量与所述第二运动向量对应于所述编码单元所位于的当前帧内其他编码单元的多个次编码单元。此外,该至少一编码模块用以根据由该预处理模块执行的多重假设运动补偿来对该编码单元进行视频编码。另外,该预处理模块利用第二已编码单元集合的运动信息来得到该编码单元中的另一次编码单元的预测像素值,其中该第二已编码单元集合具有不包含于该第一已编码单元集合中的至少一已编码单元,所述第二已编码单元集合中的编码单元已进行过运动补偿。

根据本发明的实施例,其另揭示一种局部多重假设预测的执行方法,用于编码单元的视频编码。该方法包含有:将该编码单元分割成多个次编码单元,以及对该多个次编码单元中的每一次编码单元进行处理。更具体地说,对该多个次编码单元的每一次编码单元进行处理的步骤包含:取得多个已编码单元的运动信息以供该多个次编码单元中的特定次编码单元执行多重假设运动补偿之用,其中所述多个已编码单元已进行过运动补偿,且所述运动信息包含第一运动向量与第二运动向量,所述第一运动向量与所述第二运动向量对应于所述编码单元所位于的当前帧内其他编码单元的多个次编码单元;利用由该多个已编码单元的该运动信息所得到的多个像素值的加权总和来作为该特定次编码单元的预测像素值;以及利用由该多个已编码单元的该运动信息所得到的该多个像素值的另一不同的加权总和来得到该编码单元中另一次编码单元的预测像素值。

根据本发明的实施例,其另揭示一种局部多重假设预测的执行方法,用于编码单元的视频编码,所述局部多重假设预测的执行方法包含有:对所述编码单元进行处理,其中对所述编码单元进行处理的步骤包含:于一个或多个已编码单元中取得至少两个运动信息集合,以供所述编码单元执行多重假设运动补偿之用,其中所述一个或多个已编码单元包含至少一个相邻编码单元,以及所述至少一个相邻编码单元的运动信息用作所述编码单元的运动信息,且所述至少一个相邻编码单元的所述运动信息包含第一运动向量与第二运动向量,所述第一运动向量与所述第二运动向量对应于所述编码单元所位于的当前帧内的其他编码单元,其中,所述一个或多个已编码单元已进行过运动补偿;以及利用分别由所述至少两个运动信息集合得到的多个像素值的线性组合来作为所述编码单元的预测像素值。

根据本发明的实施例,其另揭示一种局部多重假设预测的执行装置,用于编码单元的视频编码,所述局部多重假设预测的执行装置包含有:处理电路,用以对所述编码单元进行视频编码,其中所述处理电路包含:预处理模块,用以处理所述编码单元,其中所述预处理模块于一个或多个已编码单元中取得至少两个运动信息集合以用于所述编码单元的多重假设运动补偿,并根据所述至少两个运动信息集合对所述编码单元执行多重假设运动补偿,其中,所述一个或多个已编码单元包含至少一个相邻编码单元,所述至少一个相邻编码单元的运动信息用作所述编码单元的运动信息,且所述至少一个相邻编码单元的所述运动信息包含第一运动向量与第二运动向量,所述第一运动向量与所述第二运动向量对应于所述编码单元所位于的当前帧内的其他编码单元,所述一个或多个已编码单元已进行过运动补偿,以及所述预处理模块利用分别由所述至少两个运动信息集合得到的多个像素值的线性组合来作为所述编码单元的预测像素值;以及至少一编码模块,用以根据由所述预处理模块执行的多重假设运动补偿来对所述编码单元进行视频编码。

本发明的优点之一在于可有效率地对正在处理中的编码单元/编码单元的次编码单元执行多重假设运动补偿,因此在执行运动向量预测操作与多重假设运动补偿操作时,可避免产生如低编码效率等常见问题。

附图说明

图1a为本发明在编码单元进行视频编码时执行局部多重假设预测的装置的第一实施例的示意图。

图1b为图1a所示的画面间/画面内预测模块的一实施例的示意图。

图1c为图1a所示的画面间/画面内预测模块进行多重假设运动补偿操作的一实施例的示意图。

图2为本发明在编码单元进行视频编码时执行局部多重假设预测的方法的一实施例的流程图。

图3为与图2所示的方法相关的已编码块的一实施例的示意图。

图4为与图2所示的方法相关的实施细节的一实施例的示意图。

图5a至图5d为与图2所示的方法相关的多重假设预测的实施细节的多个实施例的示意图。

图6a至图6b为用以取得与图2所示的方法相关的运动信息的来源的多个实施例的示意图。

图7a至图7b分别为与图2所示的方法相关的时间与空间运动向量的多个实施例的示意图。

图8a至图8c为用以取得与图2所示的方法相关的运动信息的来源的多个实施例的示意图。

图9为与图2所示的方法相关的实施细节的一实施例的示意图。

图10为与图2所示的方法相关的实施细节的一实施例的示意图。

图11为与图2所示的方法相关的实施细节的一实施例的示意图。

具体实施方式

在说明书及后续的权利要求当中使用了某些词汇来指称特定的组件。本领域技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及后续的权利要求并不以名称的差异来作为区别组件的方式,而是以组件在功能上的差异来作为区别的基准。在通篇说明书及后续的请求项当中所提及的“包含”为一开放式的用语,故应解释成“包含但不限定于”。此外,“耦接”一词在此包含任何直接及间接的电气连接手段。因此,若文中描述一第一装置电性连接于一第二装置,则代表该第一装置可直接连接于该第二装置,或通过其他装置或连接手段间接地连接至该第二装置。

请参阅图1a,图1a为根据本发明在编码单元进行视频编码时执行局部多重假设预测的装置100的第一实施例的示意图。装置100包含画面间/画面内预测模块(inter/intrapredictionmodule)110(于图1a中,标示为“画面间/画面内预测”)、运算单元(arithmeticunit)120、转换与量化模块(transformandquantizationmodule)130(于图1a中,标示为“转换与量化”)、熵编码电路(entropycodingcircuit)140(于图1a中,标示为“熵编码”)、反转换与反量化模块(inversetransformandinversequantizationmodule)150(于图1a中,标示为“反转换与反量化”)、重建电路(reconstructioncircuit)160(于图1a中,标示为“重建”)、去块滤波器(deblockingfilter)170,以及帧缓冲器(framebuffer)180。请参考图1b,上述的画面间/画面内预测模块110可包含:多重假设画面间预测电路(multihypothesisinterpredictioncircuit)112(于图1b中,标示为“多重假设画面间预测”)、画面间预测电路(interpredictioncircuit)114(于图1b中,标示为“画面间预测”)、画面内预测电路116(于图1b中,标示为“画面内预测”),以及切换电路(switchingcircuit)118。

根据图1a所示的实施例,装置100可对一原始信号109进行视频编码以产生一个挟带编码结果的输出信号(例如熵编码电路140的输出),举例来说,原始信号109可以是代表挟带编码单元的数据的视频输入,而熵编码电路140的输出可以是一输出比特流。此外,画面间/画面内预测模块110用以进行画面间/画面内预测,更具体地说,画面间/画面内预测模块110利用图1b所示的多重假设画面间预测电路112、画面间预测电路114以及画面内预测电路116来分别进行多重假设画面间预测、画面间预测及画面内预测。

如图1a所示,运算单元120用以进行一运算操作,例如对原始信号109(举例而言,原始信号109可以是代表挟带该编码单元数据的视频输入)与由画面间/画面内预测模块110所产生的预测信号119来进行相减(subtraction)操作。另外,转换与量化模块130、熵编码电路140、反转换与反量化模块150以及重建电路160则分别用以进行转换与量化、熵编码、反转换与反量化以及重建等操作,因此,重建电路160便会产生挟带重建操作的多个重建结果的暂时性重建信号(temporarilyreconstructedsignal)169。另外,去块滤波器170则用来对暂时性重建信号169进行去块滤波处理,以产生用来暂存于帧缓冲器180的挟带去块数据的去块信号179(deblockedsignal),而供连续编码画面的画面间预测之用,以及画面间/画面内预测模块110可存取暂时性重建信号169以及由已解压缩信号(restoredsignal)189所挟带的多个先前已解码画面(previousdecodedpicture)的去块视频数据。以上所述仅供说明之需,并不用来作为本发明的限制。根据本实施例中多个变形,在去块滤波器170与其相关滤波处理操作得以省略的情形下,由暂时性重建信号169所挟带的多个重建结果可暂存于帧缓冲器180,以及画面间/画面内预测模块110可存取当前编码画面的暂时性重建信号169以及通过已解压缩信号189所得到的先前多个已解码画面的重建结果。

请参考图1b,多重假设画面间预测电路112用以根据原始信号109及通过已解压缩信号189所得的先前多个已译码画面的重建结果来进行多重假设画面间预测,以产生多重假设画面间预测输出113;画面间预测电路114用以根据原始信号109与通过已解压缩信号189所得的先前多个已译码画面的重建结果来进行画面间预测以产生画面间预测输出115;以及画面内预测电路116用以根据原始信号109与暂时性重建信号169来进行画面内预测,以产生画面内预测输出117,其中切换电路118则用以动态地选择多重假设画面间预测输出113、画面间预测输出115以及画面内预测输出117的其中之一来作为上述的预测信号119。

实际上,装置100中至少有一部分的组件(例如部分或是全部的组件)可利用硬件电路(hardwarecircuit)来加以实现,例如,装置100可由一种用以对编码单元进行视频编码的处理电路(processingcircuit)来实现,其中该处理电路可包含一个具有画面间/画面内预测模块110的预处理模块(preprocessingmodule),以及另可包含至少一个具有运算单元120、转换与量化模块130、熵编码电路140、反转换与反量化模块150、重建电路160以及去块滤波器170的编码模块(codingmodule),更具体地说,装置100中的一个或多个组件可由数字信号处理技术(digitalsignalprocessingtechnique)来实现。以上所述仅供说明之需,并不用来作为本发明的限制。此外,根据本实施例的多个变形,装置100中至少有一部分组件可至少利用软件(software)及/或固件(firmware)来实现,举例来说,该处理电路可能是一种执行多个程序代码(programcode)的处理器(processor),其中执行该多个程序代码中的第一部分程序代码的处理器能够进行与上述预处理模块的相同或相似的操作,以及执行该多个程序代码中的第二部分程序代码的处理器能够进行与上述编码模块的相同或相似的操作。

无论装置100中至少有一部分的组件(例如,部分或是全部的组件)是利用硬件电路还是利用软件来实现,装置100皆能够对多个编码单元中的每一编码单元来进行视频编码,举例来说,多个编码单元可为多个宏块(macroblock,mb),而在另一个例子中,多个编码单元可为具有介于一预定最大编码单元(largestcodingunit,lcu)与一预定最小编码单元(smallestcodingunit,scu)的尺寸之间的多个编码单元。画面首先会被分割成多个最大编码单元,以及该多个最大编码单元中的每一个编码单元被适应性地分割为较小的多个编码单元,直到得到多个末端编码单元(leafcodingunit)为止。根据本实施例,上述预处理模块能够将上述的编码单元分割成多个次编码单元(sub-codingunit),例如,以多种分割区(partition)(例如采用正方形或非正方形的分割区)来进行分割,以及上述预处理模块能够对该多个次编码单元中的每一个次编码单元进行预测,更具体地,预处理模块能够对每一个次编码单元进行画面间预测、画面内预测或多重假设运动补偿。当多重假设运动补偿为一特定次编码单元所选用时,预处理模块会计算根据多个其他已编码单元所取得的多个像素值的线性组合,并利用所计算的结果来作为该特定次编码单元的预测像素值。该多个其他已编码单元可为已编码的次编码单元、已编码的编码单元或是以上两者的组合。此外,上述的至少一编码模块用以根据预处理模块所执行的多重假设运动补偿来对编码单元进行视频编码。

根据本发明的一实施例,图1c说明了图1a所示的画面间/画面内预测模块110的多重假设运动补偿的范例操作。在本实施例中,多个符号f(t0-3)、f(t0-2)、f(t0-1)以及f(t0)代表多个连续帧(subsequentframes){f(t)}中的一部分,其中f(t0)为一当前帧(currentframe)。当前帧f(t0)可包含多个编码单元{cu(t0)},以及一编码单元cu(t0)可包含多个次编码单元{subcu(t0)},而上述的预处理模块会由多个其他次编码/编码单元分别得到运动信息(motioninformation),例如多个运动向量(motionvector){vk},这表示预处理模块利用该多个其他次编码/编码单元的多个运动向量来作为该特定次编码单元进行多重假设运动补偿所需的多个运动向量{vk}。根据本实施例,预处理模块能够根据多个运动向量{vk}来对该特定次编码单元(如图1c所示的次编码单元subcu(t0))进行多重假设运动补偿。

一般来说,预处理模块会计算由该多个次编码/编码单元的运动信息所得的多个参考像素值(referencepixelvalue){ψr}的线性组合,而该线性组合为该特定次编码单元的预测像素值(predictedpixelvalue)ψp。举例来说,第一已编码单元集合(firstsetofcodedunit)的运动信息包含一运动向量或是一运动向量组合、一或多个参考帧索引(referenceframeindex),以及一或多个预测方向(predictiondirection),更具体地说,该运动信息包含由单个次编码单元所得到的多个运动向量。在另一个例子中,该运动信息可为一或多个运动向量、一或多个参考帧索引、一或多个预测方向或是上述三者的任意组合,而在以下的实施例中,则是以多个运动向量来作为该运动信息的范例说明。请注意,该线性组合可以是多个像素值的加权总和,其表示预处理模块利用多个像素值的加权总和来作为该特定次编码单元的预测像素值。举例来说,在具有预测像素值ψp的该特定预测像素属于第i个次编码单元(如图1c所示的次编码单元subcu(t0))且处在位置x(例如一个指向此一位置的向量,比方说在当前帧f(t0)图像平面上的一个二维向量)的情形下,预测像素值ψp可改写为ψp(i,x),以及预测像素值ψp(i,x)可表示如下:

ψp(i,x)=σk∈k(hk(i,x)ψr(x+vk));

其中索引值k可于数值集合k中变动,而符号hk(i,x)则代表一个与索引值k相关的加权参数,举例来说,当可能的索引值k的个数超过1时,多个加权参数{hk(i,x)}的总和可简化为1。

如图1c所示,多个运动向量{vk}可包含当前帧f(t0)中多个其他已编码单元的次编码单元a与b的运动向量va与vb,以及另包含另一个帧(例如先前帧(previousframe)f(t0-1))中编码单元cu(t0-1)的次编码单元t的运动向量vt。举例来说,在该多个编码单元为多个块(block)的情形下,编码单元cu(t0-1)相对于编码单元cu(t0)来说可以是一共位块(collocatedblock),因此,通过将多个加权参数{hk(i,x)}应用至由多个运动向量{vk}所得的多个参考像素值{ψr},则预处理模块得以针对该多个运动向量{vk}(例如va、vb以及vt)所指向的多个部分图像(partialimage)进行混成(blend/mix),以产生一加权总和图像(weightedsummationimage),并且利用该加权总和图像作为该特定次编码单元(如图1c所示的次编码单元subcu(t0))的预测部分图像(predictedpartialimage)。关于上述所揭露的操作的进一步说明,请参阅图2。

图2为根据本发明的一实施例而在一编码单元进行视频编码时执行局部多重假设预测的方法910的流程图。方法910可被应用于图1a的装置100,更具体地说,可被应用于上述的处理电路。该方法说明如下。

于步骤912中,上述的预处理模块会将编码单元cu(t0)(例如,即将处理的编码单元)分割为多个次编码单元,例如多个次编码单元{subcu(t0)},以及会对多个次编码单元{subcu(t0)}之中的每一个次编码单元执行预测。具体地说,预处理模块会由上述的多个其他已编码单元得到运动信息,例如上文所揭露的多个运动向量{vk},以供多个次编码单元{subcu(t0)}的特定次编码单元subcu(t0)进行多重假设运动补偿。根据本发明的一实施(例如图3所示),编码单元cu(t0)可以是一个正在处理的块(在图3中,标示为“处理中的块”(processedblock)),以及特定次编码单元subcu(t0)可以是一个子块(sub-block,sb),其中图3中多个阴影部分可代表多个已编码单元/已编码块{cb}(codedblock,cb)中的至少一部分。请参阅图3,已编码块{cb}可能包含一个左半部已编码块cbl、一个左上部已编码块cbul、一个上半部已编码块cbu,以及一个右上部已编码块cbur,举例来说,多个运动向量{vk}可包含至少一部分(例如,部分或是全部)的已编码块{cb}(例如,已编码块cbl、cbul、cbu以及cbur中的一个或更多个已编码块)的多个运动向量。

在步骤914中,上述的预处理模块根据多个运动向量{vk}来对特定次编码单元subcu(t0)进行多重假设运动补偿,具体地说,预处理模块利用于步骤912提及的多个其他已编码单元(例如,多个其他次编码/编码单元)的多个像素值的线性组合,例如上述的多个其他已编码单元中多个参考像素的参考像素值{ψr}的线性组合,来作为该特定次编码单元的预测像素值ψp。举例来说,每一个编码单元(例如编码单元cu(t0))可以是一个块,尤指一个包含一像素数组的块,例如一延伸宏块(extendedmacroblock)、一宏块(macroblock)或是一宏块的一部分,因此,一个次编码单元可被称为一个子块。根据本发明的一实施例(如图3所示),前述的预处理模块可根据上述的多个运动向量{vk}来对正在处理的块(在图3中,标示为“处理中的块”)进行多重假设运动补偿,其中预处理模块得以对由至少一部分(例如部分或全部)的已编码块{cb}(例如,已编码块cbl、cbul、cbu以及cbur中的一个或更多个已编码块)中多个参考像素的多个参考像素值{ψr}来进行混成,在此实施例中,已编码块{cb}可以是已运动补偿的块(motion-compensatedblock)。

根据本实施例,预处理模块用以处理于步骤912所提及的该多个次编码单元的每一个次编码单元,举例来说,预处理模块会得到一第一已编码单元集合的运动信息以供步骤912提及的该多个次编码单元中的第一次编码单元(例如,特定次编码单元subcu(t0))进行多重假设运动补偿,以及根据该运动信息对该第一次编码单元(例如,该特定次编码单元)进行多重假设运动补偿。更具体地说,预处理模块利用由该第一已编码单元集合的运动信息所得的多个像素值的线性组合来作为该第一次编码单元(例如,该特定次编码单元)的预测像素值。此外,上述的至少一编码模块是根据由预处理模块所执行的多重假设运动补偿,来对该编码单元进行视频编码。另外,预处理模块利用一第二已编码单元集合的运动信息来得到该编码单元中的另一次编码单元(例如,步骤912所提及的该多个次编码单元中的第二次编码单元)的预测像素值,其中该第二已编码单元集合不同于该第一已编码单元集合。

有关该第一次编码单元的部分,该第一已编码单元集合可包含:编码单元cu(t0)中的一个或多个其他次编码单元(亦即编码单元cu(t0)中除了该第一次编码单元的一个或多个其他次编码单元)、至少一其他编码单元中的一个或多个其他次编码单元(亦即与编码单元cu(t0)相异的至少一其他编码单元中的一个或多个其他次编码单元)及/或一个或多个其他编码单元(例如,一个或多个与编码单元cu(t0)相异的编码单元)。此外,有关该第二次编码单元的部分,该第二已编码单元集合可包含:编码单元cu(t0)中的一个或多个其他次编码单元(亦即编码单元cu(t0)中除了该第二次编码单元以外的一个或多个其他次编码单元)、至少一其他编码单元中的一个或多个其他次编码单元(亦即与编码单元cu(t0)相异的至少一其他编码单元中的一个或多个其他次编码单元)及/或一个或多个其他编码单元(例如,一个或多个与编码单元cu(t0)相异的编码单元)。请注意,该第二已编码单元集合中至少有一已编码单元没有包含在该第一已编码单元集合之中,然而,此仅供说明之需,并非用来作为本发明限制,根据本实施例的多个变形,该第二已编码单元集合与该第一已编码单元集合亦可为同一个已编码集合,然而,预处理模块是利用由该同一个已编码集合的运动信息所得到的多个像素值的不同的线性组合,来分别作为该第一已编码单元集合与该第二已编码单元集合各自的预测像素值,举例来说,预处理模块是利用该多个像素值的第一加权参数集合(firstsetofweightedparameters)所对应的第一线性组合来作为该第一次编码单元的预测像素值,以及利用该多个像素值的第二加权参数集合所对应的第二线性组合来作为该第二次编码单元的预测像素值。在另一个例子中,预处理模块利用由该第一已编码单元集合的运动信息所得到的多个像素值的第一加权总和(weightedsummation)来作为该第一次编码单元(例如,该特定次编码单元)的预测像素值,以及利用由该同一个已编码单元集合(亦即该第一已编码单元集合)的运动信息所得到的多个像素值的第二加权总和来得到该第二次编码单元的预测像素值,其中该第一加权总和与该第二加权总和相异。

在图3所示的实施例的多个变形中,步骤912中提及的该多个其他已编码单元中的每一个编码单元为一已编码的次编码/编码单元,举例来说,在这些变形的一部分变形中,步骤912中提及的该多个其他已编码单元包含至少一个空间上已编码(spatiallycoded)的次编码/编码单元(例如当前帧f(t0)中的一个或多个已编码块{cb},或是正在处理的块/已编码块中的一个或多个已编码子块)及/或至少一个时间上已编码(temporallycoded)的次编码/编码单元(例如与当前帧f(t0)相异的另一个帧中一个或多个已编码的子块/块)。于另一实施例,在这些变形的一部分变形中,步骤912中提及的该多个其他已编码单元为一已运动补偿的次编码/编码单元。此外,根据一部分的变形,多个运动向量{vk}可以通过运动估计(motionestimation)来得知。

根据本发明的一实施例,图4说明了图2所示的方法910相关的实施细节。于本实施例中,预处理模块可利用步骤914中提及的该多个预测像素值的加权总和(例如,本实施例中的σk∈k(hk(i,x)ψr(x+vk)))来作为该特定次编码单元(例如图4所示的第i个子块bi)的预测像素值ψp。另外,为使更易于理解,多个已编码块cbl、cbul、cbu以及cbur可视为分别等同于图3中所示的多个已编码块。举例来说,用于计算预测像素值ψp的多个参考像素的多个参考像素值{ψr}可由已编码块cbl、cbul、cbu以及cbur中一个或多个已编码块来得到,以及多个运动向量{vk}可包含已编码块cbl、cbul、cbu以及cbur所分别对应的运动向量vl、vul、vu以及vur之中的一个或多个运动向量。

更具体地说,针对每一个子块(例如,图4所示的第i个子块bi)来说,一预测像素值(例如,预测像素值ψp(i,x))可通过对多个已编码块{cb}中的一些参考像素的参考像素值{ψr}进行混成而得到,其仍可表示如下:

ψp(i,x)=σk∈k(hk(i,x)ψr(x+vk));

其中索引值k可于数值集合k中变动,而符号vk与hk(i,x)可用来分别表示第k个参考运动向量以及其相关的加权参数。举例来说,bi∈bm,而符号bm表示正在处理的块(在图4中,标示为“处理中的块”)中多个子块的集合。如图4所示,多个运动向量{vk}的运动向量vk图标于已编码块cbu中,其表示在此情形下,多个运动向量{vk}包含已编码块cbu的运动向量vu。

在一实施例中(例如图4所示的实施例的一个变形),预处理模块可对该多个像素值(例如,多个参考像素值{ψr})进行对于正在处理的当前像素(currentpixel)的实际像素值(realpixelvalue)ψreal(i,x)而言的最佳维纳滤波处理(optimumwienerfiltering),以调整该多个像素值(例如,多个参考像素值{ψr})各自的加权参数{hk(i,x)}以及产生该加权总和,亦即于此实施例中的σk∈k(hk(i,x)ψr(x+vk))。举例来说,多个加权参数{hk(i,x)}可利用于如下所示的预处理模块中一最佳维纳滤波器(optimumwienerfilter)来得到:

(h0*,…,hk*)=argmin|ψreal(i,x)-σk∈k(hk(i,x)ψr(x+vk))|;

其表示在预处理模块执行最佳维纳滤波处理的期间,多个加权参数{hk(i,x)}可通过搜寻|ψreal(i,x)-σk∈k(hk(i,x)ψr(x+vk))|的最小值所对应的一组(h0*,…,hk*)来得到,然而,以上仅供说明之需,并非用来作为本发明的限制。根据图4所示的实施例的一个变形,预处理模块可根据至少一邻近(neighboring)编码单元的内容,例如已编码块cbl、cbul、cbu以及cbur之中的一个或多个已编码块的内容,来决定该多个像素值各自的加权参数{hk(i,x)},以产生该加权总和,亦即于此变形中的σk∈k(hk(i,x)ψr(x+vk))。根据图4所示的实施例的另一个变形,预处理模块可根据步骤912提及的多个其他已编码单元(例如,该第一已编码单元集合)的内容来决定该多个像素值各自的加权参数{hk(i,x)},用以产生该加权总和,亦即于此变形中的σk∈k(hk(i,x)ψr(x+vk))。

在其他多个实施例中(例如图4所示的实施例的多个变形),预处理模块可利用脱机训练(offlinetraining)或是在线训练(onlinetraining)的方式来决定该多个像素值各自的加权参数{hk(i,x)},用以产生该加权总和,亦即于这些变形中的σk∈k(hk(i,x)ψr(x+vk))。根据图4所示的实施例的另一变形,预处理模块可利用该多个像素值的平均值来作为该特定次编码单元的预测像素值,其表示多个加权参数{hk(i,x)}中的任两个加权参数会彼此相等,更具体地说,于此变形中,多个加权参数{hk(i,x)}中的每一个加权参数会等于1/n(k),其中n(k)代表数值集合k中可能的索引值k的个数。

根据本发明的多个实施例,图5a至图5d说明了与图2所示的方法910相关的多重假设预测的一些实施细节,其中于步骤914所提及的线性组合可视为加权总和,亦即于这些实施例中的σk∈k(hk(i,x)ψr(x+vk))。为使更易于理解,多个已编码块cbl、cbul、cbu以及cbur可视为分别等同于图3所示的多个已编码块,此外,第i个子块bi图示于其中,以作为特定次编码单元subcu(t0)的一个范例。

请参阅图5a,多个次编码单元a、b、c及d属于正在处理的块(在图5a中,标示为“处理中的块”)或其他多个已编码单元(例如,cbul、cbu、cbur以及cbl),更具体地说,关于图5a所示的第i个子块bi,次编码单元a为左侧相邻的次编码单元、次编码单元b为上方相邻的次编码单元、次编码单元c为右上方相邻的次编码单元,以及次编码单元d为左上方相邻的次编码单元。于此实施例中,多个运动向量{vk}可由图5a所示的多个次编码单元a、b、c及d来求得,因此,多个运动向量{vk}可包含各自对应的运动向量va、vb、vc及/或vd于其中,举例来说,多个运动向量{vk}可包含多个次编码单元a、b、c及d所对应的运动向量va、vb、vc及vd中所有的运动向量。在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元c存在的话,则多个运动向量{vk}则可包含运动向量va、vb及vc;而在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元c不存在的话,则多个运动向量{vk}则可包含运动向量va、vb及vd。

因此,步骤914所提及的线性组合可为上文所揭露的加权总和σk∈k(hk(i,x)ψr(x+vk))与包含运动向量va、vb、vc及/或vd的多个运动向量{vk}的组合,简言之,预测像素值ψp可表示如下:

ψp=weighted_sum(ψr(va),ψr(vb),ψr(vc),and/orψr(vd));

其中符号weighted_sum代表上述所揭示的情形中的加权总和。

根据图5a所示的实施例的一个变形,预处理模块利用该多个像素值的平均值来作为该特定次编码单元的预测像素值,其表示步骤914所提及的线性组合可视为该平均值,在此情形下,多个加权参数{hk(i,x)}中的任两个为彼此相等,简言之,预测像素值ψp可表示如下:

ψp=average(ψr(va),ψr(vb),ψr(vc),and/orψr(vd));

其中符号average代表于此情形下的平均值。相似的描述在此不再赘述。

请参阅图5b,多个次编码单元α1、α2、α3、α4、α5、α6、α7及α8属于左半部已编码块cbl,多个次编码单元β1、β2、β3、β4、β5、β6、β7及β8属于上半部已编码的块cbu,以及多个次编码单元β9与δ则分别属于右上部已编码块cbur与左上部已编码块cbul。更具体地说,关于图5b所示的第i个子块bi,例如,于此实施例中,位于正在处理的块中右下四分之一处的一个子块,多个运动向量{vk}可由本实施例中的多个次编码单元a、b、c及/或d来取得,其中次编码单元a可定义为位于左半部已编码块cbl中的最靠近的次编码单元(closestsub-codingunit)、次编码单元b可定义为位于上半部已编码块cbu中的最靠近的次编码单元、次编码单元c可定义为与次编码单元b右侧相邻的次编码单元,以及次编码单元d可定义与次编码单元b左侧相邻的次编码单元。在图5b所示的情形下,多个次编码单元a、b、c及d分别为多个次编码单元α5、β6、β7及β5。

于此实施例中,多个运动向量{vk}可由此实施例的多个次编码单元a、b、c及d来求得,因此,多个运动向量{vk}可包含各自对应的运动向量va、vb、vc及/或vd于其中。举例来说,多个运动向量{vk}可包含多个次编码单元a、b、c及d所对应的运动向量va、vb、vc及vd中所有的运动向量。在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元c存在的话,多个运动向量{vk}可包含运动向量va、vb及vc;而在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元c不存在的话,多个运动向量{vk}则可包含运动向量va、vb及vd。

因此,步骤914所提及的线性组合可为上文所揭露的加权总和σk∈k(hk(i,x)ψr(x+vk))与包含运动向量va、vb、vc及/或vd的多个运动向量{vk}的组合,简言之,预测像素值ψp可表示如下:

ψp=weighted_sum(ψr(va),ψr(vb),ψr(vc),and/orψr(vd));

其中符号weighted_sum代表上述所揭示的情形中的加权总和。举例来说,预处理模块可决定该特定次编码单元的大小等为该编码单元进行视频编码的转换尺寸(transformsize),以及该多个次编码单元(例如,图5b所示的多个子块)的大小可为同一个转换尺寸,例如,4x4、8x8、16x16等。

根据图5b所示的实施例的一个变形,预处理模块利用该多个像素值的平均值来作为该特定次编码单元的预测像素值,其表示步骤914所提及的取得线性组合的操作可视为一平均值操作,在此情形下,多个加权参数{hk(i,x)}中的任两个为彼此相等,简言之,预测像素值ψp可表示如下:

ψp=average(ψr(va),ψr(vb),ψr(vc),and/orψr(vd));

其中符号average代表于此情形下的平均值。相似的描述在此不再赘述。

请参阅图5c,多个次编码单元{α1、α2、α3、α4、α5、α6、α7、α8、β1、β2、β3、β4、β5、β6、β7、β8、β9、δ}的定义与图5b所示的实施例中的定义相同,此外,关于图5c所示的第i个子块bi,例如,于此实施例中,位于正在处理的块中右下四分之一处的一个子块,多个运动向量{vk}可由本实施例中的多个次编码单元a、b、c、d、e、f及/或z来取得,其中多个次编码单元a、b、c及d的定义与图5b所示的实施例中的定义相同,次编码单元e可定义为与次编码单元a上侧相邻的次编码单元,次编码单元f可定义为与次编码单元a下侧相邻的次编码单元,以及次编码单元z可定义为位于左上部已编码块cbul中最靠近的次编码单元。在图5c所示的情形下,多个次编码单元a、b、c、d、e、f及z分别为多个次编码单元α4、β6、β7、β5、α3、α5及δ。

于此实施例中,多个运动向量{vk}可由此实施例的多个次编码单元a、b、c、d、e、f及/或z来求得,因此,多个运动向量{vk}可包含各自对应的运动向量va、vb、vc、vd、ve、vf及/或vz于其中。举例来说,多个运动向量{vk}可包含多个次编码单元a、b、c、d、e、f及z所对应的运动向量va、vb、vc、vd、ve、vf及vz中所有的运动向量。在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元e存在的话,多个运动向量{vk}可包含运动向量va、vb、vc、vd、ve及vf;而在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元e不存在的话,多个运动向量{vk}可包含运动向量va、vb、vc、vd、ve及vz。此外,在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元c及e都不存在的话,多个运动向量{vk}可包含运动向量va、vb、vd、vf及vz。

因此,步骤914所提及的线性组合可为上述所揭示的加权总和σk∈k(hk(i,x)ψr(x+vk))与包含运动向量va、vb、vc、vd、ve、vf及/或vz的多个运动向量{vk}的组合,简言之,预测像素值ψp可表示如下:

ψp=weighted_sum(ψr(va),ψr(vb),ψr(vc),ψr(vd),ψr(ve),ψr(vf),and/orψr(vz));

其中符号weighted_sum代表上述所揭示的情形中的加权总和。举例来说,预处理模块可决定该特定次编码单元的大小等于该编码单元进行视频编码的转换尺寸,以及该多个次编码单元(例如,图5c所示的多个子块)的大小可为同一个转换尺寸,例如,4x4、8x8、16x16等。

根据图5c所示的实施例的一个变形,预处理模块利用该多个像素值的平均值来作为该特定次编码单元的预测像素值,其表示步骤914所提及的取得线性组合的操作可视为一平均值操作,在此情形下,多个加权参数{hk(i,x)}中的任两个为彼此相等,简言之,预测像素值ψp可表示如下:

ψp=average(ψr(va),ψr(vb),ψr(vc),ψr(vd),ψr(ve),ψr(vf),and/orψr(vz));

其中符号average代表于此情形下的平均值。相似的描述在此不再赘述。

请参阅图5d,多个次编码单元{α1、α2、α3、α4、α5、α6、α7、α8、β1、β2、β3、β4、β5、β6、β7、β8、β9、δ}的定义与图5b所示的实施例中的定义相同,此外,关于图5d所示的第i个子块bi,例如,于此实施例中,位于正在处理的块中右下四分之一处的一个子块,多个运动向量{vk}可由本实施例中的多个次编码单元a、b、c及/或d来取得,其中多个次编码单元a、b、c及d的定义与图5b所示的实施例中的定义相同。在图5d所示的的情形下,多个次编码单元a、b、c及d分别为次编码单元α5、β6、β7及β5。

于此实施例中,多个运动向量{vk}可由此实施例的多个次编码单元a、b、c及/或d来求得,因此,多个运动向量{vk}可包含各自对应的运动向量va、vb、vc及/或vd于其中。举例来说,多个运动向量{vk}可包含多个次编码单元a、b、c及d所对应的运动向量va、vb、vc及vd中所有的运动向量。在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元c存在的话,多个运动向量{vk}可包含运动向量va、vb及vc;而在另一个例子中,如果该特定次编码单元(例如第i个子块bi)所对应的次编码单元c不存在的话,则多个运动向量{vk}可包含运动向量va、vb及vd。

此外,于此实施例中的加权参数hk(i,x)可反比于(inverselyproportional)该特定次编码单元与其相关的其他已编码单元(于步骤912所提及的该多个其他已编码单元之中的一个)之间的距离,举例来说,加权参数hk(i,x)可改写为与位置x无关的wk(i),以及加权参数wk(i)反比于dk(i)的m次方,亦即wk(i)∝1/(dk(i))m,其中符号dk(i)代表该特定次编码单元(例如,第i个子块bi)与其相关而具有第k个参考运动向量vk的其他次编码/编码单元(例如,位于多个次编码单元a、b、c及d内的第k个次编码单元)之间的距离,以及符号m代表一个大于零的常数(constant)。因此,预测像素值ψp可表示如下:

ψp(i,x)=σk∈k(wk(i)ψr(x+vk));或

ψp=σk∈k(wkψr(vk));

其中多个运动向量{vk}可包含运动向量va、vb、vc及/或vd。此外,在图5d所示的情形下,多个运动向量{vk}可包含运动向量va、vb及vc,以及符号dist_w、dist_h及dist_h’分别代表多个距离da(i)、db(i)及dc(i)。因此,预测像素值ψp可表示如下:

ψp=waψr(va)+wbψr(vb)+wcψr(vc);

其中wa∝1/(dist_w)m、wb∝1/(dist_h)m,以及wc∝1/(dist_h’)m

在图5a至图5d所示的实施例的多个变形中,预处理模块可利用舍弃多个已编码单元的运动信息中的至少一极端运动向量(extrememotionvector),来对一运动向量集合进行筛选(screen),更具体地说,利用舍弃该运动向量集合的至少一极端运动向量以选择该运动向量集合的剩余部分来作为用以得出该预测像素值的运动信息,例如该第一已编码单元集合的运动信息。举例来说,在考虑运动向量的长度(length)及/或方向(direction)之下,前述的至少一极端向量可包含与其他运动向量集合相差很多的一个或多个运动向量。

根据图5a至图5d所示的实施例的多个变形,预处理模块可适应性地操作于包含模式1(mode1)、模式2(mode2)、模式3(mode3)及模式4(mode4)的多个模式,其中模式1、2、3及4个别的操作可分别与图5a至图5d的实施例所揭示的操作相同或相似。举例来说,在模式1时,预处理模块可根据与图5a所示的实施例相同的方法来操作,而在另一模式下,例如模式2、3或4之中的任一个,预处理模块可根据与相关实施例(例如,图5b至图5d所对应的实施例)相同的方法来操作。此外,相对于其他的模式,上述的模式1、2及3允许装置100轻易地进行处理以及对于提升装置100整体处理速度有所帮助,因此,上述的模式1、2及3亦可视为简化模式(simplifiedmode)。

根据图5a至图5d所示的任一个实施例中的一个变形,在步骤912中,预处理模块可根据至少一邻近编码单元的至少一模式,例如已编码块cbl、cbu、cbur以及cbul中一个或更多个已编码块的模式1、2、3及/或4,来将该编码单元分割为该多个次编码单元。此外,根据图5a至图5d所示的任一个实施例中的另一个变形,在步骤912中,预处理模块可根据至少一邻近编码单元(例如,已编码块cbl、cbu、cbur以及cbul中一个或更多个已编码块)的内容来将该编码单元分割为该多个次编码单元。

根据本发明的多个不同实施例,图6a与图6b说明了用以取得与图2所示的方法910相关的运动信息的多个范例来源。为使更易于理解,多个已编码块cbl、cbu、cbur以及cbul可视为分别等同于图3所示的多个已编码块。

于此实施例中,在当特定次编码单元subcu(t0)的大小扩充至编码单元cu(t0)的大小时,则无需于步骤912中对编码单元cu(t0)进行分割,因此,在步骤912中,上述的预处理模块可执行编码单元cu(t0)的运动向量预测,更具体地说,由多个其他已编码单元(例如,多个已编码块{cb}中的至少一部分,比方说,已编码块cbl、cbu、cbur及cbul中的一个或更多个已编码块)来取得多个运动向量(例如上文所揭露的多个运动向量{vk}),以供执行编码单元cu(t0)的多重假设运动补偿。此外,于步骤914中,预处理模块可根据运动信息(例如,多个运动向量{vk})来对编码单元cu(t0)执行多重假设运动补偿,更具体地说,利用多个其他编码单元的多个像素值的线性组合来作为该编码单元的预测像素值,例如无需使用索引值i的预测像素值ψp。类似地,预测像素值ψp可表示如下:

ψp=σk∈k(hk(i,x)ψr(x+vk))。

实际上,多个模式另可包含分别对应于多个运动块尺寸(motionblocksize)(例如,16x16、32x32等)的一些略过模式(skipmode)。根据此实施例,符号a可用来代表包含至少一部分(例如,部分或是全部)的已编码块cbl的一次编码/编码单元,符号d可用来代表包含至少一部分(例如,部分或是全部)的已编码块cbul的次编码/编码单元,符号b可用来代表包含至少一部分(例如,部分或是全部)的已编码块cbu的次编码/编码单元,以及符号csize(例如c16、c32等)可用来代表包含至少一部分(例如,部分或是全部)的已编码块cbur的次编码/编码单元,其中符号csize的下标值(suffix)size代表编码单元cu(t0)(例如,正在处理的块,而在图6a至图6b中,标示为“处理中的块”)的尺寸。举例来说,在正在处理的块包含32x32像素的情形下,次编码/编码单元csize可为图6a所示的次编码/编码单元c32。另一个例子中,在正在处理的块包含16x16像素的情形下,次编码/编码单元csize可为图6b所示的次编码/编码单元c16。因此,次编码/编码单元csize的位置由运动块尺寸而定。

根据此实施例,多个运动向量{vk}可包含多个次编码/编码单元a、b、csize及d所对应的运动向量va、vb、vc及vd中所有的运动向量,因此,此实施例的线性组合可为加权总和σk∈k(hk(i,x)ψr(x+vk))与包含运动向量va、vb、vc及vd的多个运动向量{vk}的组合,简言之,预测像素值ψp可表示如下:

ψp=weighted_sum(ψr(va),ψr(vb),ψr(vc),ψr(vd));

其中符号weighted_sum代表上述所揭示的情形中的加权总和。

根据图6a至图6b所示的实施例的一个变形,预处理模块利用该多个像素值的平均值来作为该特定次编码单元的预测像素值,其表示上述的线性组合可视为该平均值,在此情形下,多个加权参数{hk(i,x)}中的任两个为彼此相等,简言之,预测像素值ψp可表示如下:

ψp=average(ψr(va),ψr(vb),ψr(vc),ψr(vd));

其中符号average代表于此情形下的平均值。相似的描述在此不再赘述。

根据本发明的多个不同实施例,图7a至图7b分别说明了与图2所示的方法910相关的多个时间(temporal)与空间(spatial)运动向量。为使更易于理解,多个已编码块cbl、cbul、cbu以及cbur可视为分别等同于图3所示的多个已编码块,此外,第i个子块b-i图标为特定次编码单元subcu(t0)的一个范例。

于图7a所示的实施例中,步骤912所提及的多个运动向量{vk}可包含相对于包围特定次编码单元subcu(t0)(例如第i个子块bi)的窗口(window)中一个或多个时间运动向量{vt,k},其中该窗口可具有一预定尺寸。于图7b所示的实施例中,步骤912所提及的多个运动向量{vk}可包含一个或多个空间运动向量{vs,k},例如,图7b所示的已编码块cbu的空间运动向量。此外,根据图7a至图7b所示的实施例中的多个变形,步骤912所提及的多个运动向量{vk}可包含多个时间运动向量{vt,k}以及多个空间运动向量{vs,k}。另外,相似的叙述在此不再赘述。

根据本发明的多个实施例,图8a至图8c说明了用以取得与图2所示的方法910相关的运动信息的多个范例来源。为使更易于理解,多个已编码块cbl、cbu、cbur以及cbul可视为分别等同于图3所示的多个已编码块,此外,第i个子块bi图标为特定次编码单元subcu(t0)的一个范例。

请参阅图8a,上文所揭露的多个时间运动向量{vt,k}可包含有一般由另一帧的一共位(co-located)次编码单元而得的时间运动向量例如图8a所示的相对于第i个子块bi的共位子块t,因此,时间运动向量可视为一共位运动向量。请参阅图8b,上文所揭露的多个空间运动向量{vs,k}可包含多个次编码单元a、b、c、d、e、f及z的运动向量va、vb、vc、vd、ve、vf及vz中至少一部分(例如,部分或全部)的运动向量。

因此,步骤914所提及的线性组合可为上述所揭示的加权总和σk∈k(hk(i,x)ψr(x+vk))与同时包含时间运动向量及运动向量va、vb、vc、vd、ve、vf及/或vz的多个运动向量{vk}的组合。举例来说,在多个运动向量{vk}包含时间运动向量以及多个运动向量va、vb、vc、vd、ve、vf及vz的情形下,预测像素值ψp可表示如下:

其中符号weighted_sum代表上述所揭示的情形中的加权总和。此外,针对此一实施例,相似的描述在此不再赘述。

根据图8a至图8b所示的实施例的一个变形,预处理模块利用该多个像素值的平均值来作为该特定次编码单元的预测像素值,其表示步骤914所提及的线性组合可视为该平均值,在此情形下,多个加权参数{hk(i,x)}中的任两个为彼此相等,简言之,预测像素值ψp可表示如下:

其中符号average代表于此情形下的平均值。相似的叙述在此不再赘述。

请参阅图8c,上文所揭露的多个时间运动向量{vt,k}可包含上文所揭露的时间运动向量以及由附近另一帧的多个共位次编码单元(例如,相邻于具有时间运动向量的子块t的多个次编码单元,亦即图8c所示的次编码块tul、tu、tur、tu、tr、tdl、td及tdr)所分别取得的多个其他时间运动向量此外,上文所揭露的多个空间运动向量{vs,k}可包含如图8b所示的多个次编码单元a、b、c、d、e、f及z的运动向量va、vb、vc、vd、ve、vf及vz中至少一部分(例如,部分或全部)的运动向量。

因此,步骤914所提及的线性组合可为上述所揭示的加权总和σk∈k(hk(i,x)ψr(x+vk))与同时包含时间运动向量以及运动向量va、vb、vc、vd、ve、vf及/或vz的多个运动向量{vk}的组合。举例来说,在多个运动向量{vk}包含多个时间运动向量以及多个运动向量va、vb、vc、vd、ve、vf及vz的情形下,预测像素值ψp可表示如下:

其中符号weighted_sum代表上述所揭示的情形中的加权总和。此外,相似的叙述在此不再赘述。

根据图8c所示的实施例的一个变形,预处理模块利用该多个像素值的平均值来作为该特定次编码单元的预测像素值,其表示步骤914所提及的线性组合可视为该平均值,在此情形下,多个加权参数{hk(i,x)}中的任两个为彼此相等,简言之,预测像素值ψp可表示如下:

其中符号average代表于此情形下的平均值。相似的叙述在此不再赘述。

根据本发明的一实施例(例如上文所揭示的任一实施例/变形),预处理模块可由多个运动向量集合(其中,运动向量集合中的运动向量可视为候选运动向量(candidatemotionvector))中动态地选择一运动向量集合,以及利用所选择的运动向量集合来作为多个运动向量{vk},更具体地说,预处理模块由多个运动向量集合中动态地选择上述的运动向量集合,以及根据一显旗标(explicitflag)以利用所选择的运动向量集合来作为步骤912所提及的该多个其他已编码单元的运动信息,并利用所选择的运动向量集合得到该特定次编码单元的预测像素值。举例来说,该多个运动向量集合可包含一第一运动向量集合(例如,上文所揭露的多个时间运动向量{vt,k}),以及另可包含一第二运动向量集合(例如,上文所揭露的多个空间运动向量{vs,k})。实际上,预处理模块可根据一旗标(例如,一显旗标)所动态指出的被选择的运动向量集合来执行多重假设预测。相似的叙述在此不再赘述。

根据本发明的另一实施例(例如上文所揭示的任一实施例/变形),预处理模块可利用执行运动估计来取得编码单元cu(t0)的至少一运动向量,用以进行率失真优化(rate-distortionoptimization),举例来说,在步骤912中,预处理模块利用执行运动估计来取得多个运动向量{vk}中的至少一部分以供特定次编码单元subcu(t0)进行多重假设运动补偿。此外,于步骤914中,预处理模块另可利用与多个运动向量{vk}相关的多个次编码/编码单元的多个像素值{ψr}的线性组合来作为特定次编码单元subcu(t0)的预测像素值ψp。举例来说,在具有预测像素值ψp的特定预测像素处于位置x(例如一个指向此一位置的向量,比方说在当前帧f(t0)图像平面中的一个二维向量)的情形下,预测像素值ψp可改写为ψp(x),以及预测像素值ψp(x)可表示为:

ψp(x)=σk∈k(hk(x)ψr(x+vk))+h0(x)ψr(x+v0);

其中索引值k可于数值集合k中变动,而符号hk(x)则代表一个与索引值k相关的加权参数,以及估测运动向量(estimatedmotionvector)v0为在运动估计中所估测出来的运动向量,此外,符号hk(x)则代表一个与估测运动向量v0的下标值0相关的加权参数。

在上述的率失真优化的期间,预处理模块可计算出失真指针(distortionindicator)idist,其中该失真指标一般而言代表在相对于估测运动向量v0的可能状态(例如,长度与角度)进行多重假设预测的后,特定次编码单元subcu(t0)的原始部分图像(originalparitalimage)与特定次编码单元subcu(t0)的重建部分图像(reconstructedparitalimage)之间的差异。举例来说,失真指标idist与其相关的运动向量差量(motionvectordifference,mvd)可表示为:

idist=|ψreal(x)-σk∈k(hk(x)ψr(x+vk))-h0(x)ψr(x+v0)|;以及

mvd=v0-mvp;

其中符号ψreal(x)代表正在处理的当前像素的实际像素值,以及符号mvp代表预测的运动向量(motionvectorpredictor,mvp)。更具体地说,于上述两个方程式中,用来表示失真指标idist的第一个方程式可重新整理为:

idist=|ψreal(x)-σk∈k(hk(x)ψr(x+vk))-h0(x)ψr(x+v0)|

=|(ψreal(x)-σk∈k(hk(x)ψr(x+vk)))-h0(x)ψr(x+v0)|

=h0(x)|(ψreal(x)-σk∈k(hk(x)ψr(x+vk)))/h0(x)-ψr(x+v0)|

=h0(x)|γreal(x)-ψr(x+v0)|;

其中γreal(x)=(ψreal(x)-σk∈k(hk(x)ψr(x+vk)))/h0(x)。在上述方程式中,γreal(x)项与(ψreal(x)-σk∈k(hk(x)ψr(x+vk)))项独立于估测运动向量v0,因此,根据本实施例,上述几项之中的至少一项(例如,γreal(x)项及/或(ψreal(x)-σk∈k(hk(x)ψr(x+vk)))项)可事先被计算出并暂存的以供存取,用以增加装置100的处理速度。

根据此实施例,预处理模块可从估测运动向量v0的其他可能的状态中,找出最小拉格朗日函数(lagrangefunction)的失真指标所对应的最佳状态以及找出用以编码运动向量差量的多个位,来将估测运动向量v0优化。因此,此实施例的线性组合可为加权总和σk∈k(hk(x)ψr(x+vk))+h0(x)ψr(x+v0)与已取得的估测运动向量v0,以及预处理模块可利用加权总和σk∈k(hk(x)ψr(x+vk))+h0(x)ψr(x+v0)来作为特定次编码单元subcu(t0)的预测像素值ψp。相似的叙述在此不再赘述。

根据本发明的一实施例,图9说明了与图2所示的方法910相关的实施细节,其中预处理模块可执行一可变分割(variablepartition)多重假设预测,更具体地说,预处理模块可适应性地因应至少一邻近编码单元的分割来决定编码单元cu(t0)的分割。另外,为使更易于理解,多个已编码块cbl、cbul、cbu以及cbur可视为分别等同于图3所示的多个已编码块。

根据此实施例,于步骤912中,预处理模块可根据至少一邻近编码单元,例如已编码块cbl、cbul、cbu及cbur中的一个或更多个已编码块,来将编码单元cu(t0),例如,正在处理中的块,其在图9中标示为“处理中的块”)分割为多个次编码单元{subcu(t0)}。举例来说,多个次编码单元{subcu(t0)}可包含多个子块b11、b12、b13、b21、b22、b23、b31、b32、b33、b41、b42以及b43,其大小对应于多个邻近已编码块(例如,已编码块cbl与cbu)的分割,更具体地说,其大小对应于该多个邻近已编码块中一些子块的相关尺寸。在图9所示的情形下,该多个邻近已编码块的该多个子块与正在处理的块相邻,其中该多个子块分别以不同的阴影型式来表示。相似的叙述在此不再赘述。

根据本发明的另一实施例,图10说明了与图2所示的方法910相关的实施细节,其中预处理模块可适应性地根据至少一邻近编码单元的内容来决定多个混合权重(blendingweight),例如,上文所揭露的多个加权参数{hk(i,x)}。为使更易于理解,多个已编码块cbl、cbul、cbu以及cbur可视为分别等同于图3所示的多个已编码块,此外,子块sb图标为特定次编码单元subcu(t0)的一个范例。

举例来说,多个运动向量{vk}可包含多个次编码单元a、b及c的运动向量va、vb及vc,其中次编码单元a属于左半部已编码块cbl,以及多个次编码单元b与c属于上半部已编码的块cbu。在产生加权总和σk∈k(hk(x)ψr(x+vk))(例如,在图10所示的情形下,则为加权总和weighted_sum(ψr(va),ψr(vb),ψr(vc)))的处理过程中,当次编码单元b与c为多个纹理(texture)次编码单元(例如,多个纹理子块)以及次编码单元a为非纹理(non-texture)次编码单元(例如,非纹理子块)时,预处理模块可适应性地决定使与次编码单元b与c的多个运动向量vb及vc相关的多个加权参数hb(i,x)及hb(i,x),分别大于与次编码单元a的运动向量va相关的加权参数ha(i,x)。相似的叙述在此不再赘述。

根据本发明的一实施例,图11说明了与图2所示的方法910相关的实施细节。根据此实施例,预处理模块仍将编码单元cu(t0)(例如,正在处理的编码单元)分割为多个次编码单元(例如多个次编码单元{subcu(t0)})以及对步骤912的多个次编码单元{subcu(t0)}中的每一个次编码单元执行预测。然而,在取得上述多个运动向量{vk}的运动信息时/前,预处理模块可指定(designate)一运动向量给每一次编码单元,使其的后可被一个或多个其他次编码/编码单元所参考。只要编码器与译码器双方同意并遵从,指定运动向量的规则可任意设定。此外,用以指定运动向量的一些预定规则包含:h.264所定义的预测运动向量(motionvectorpredictor)、h.264所定义但具有运动向量缩放(motionvectorscaling)的预测运动向量、由左侧的块来填补(padding)、由上方的块来填补,以及由左侧或上方的块来填补。根据由左侧或上方的块来填补的一实施例,预处理模块利用另一编码单元(除了正在处理的编码单元cu(to)之外)的次编码单元的运动向量(例如,相邻于编码单元cu(to)的相邻编码单元cuadj(to)的已编码次编码单元)来指定一运动向量,更具体地说,对于特定次编码单元subcu(to)而言,该其他编码单元(例如,编码单元cuadj(to))的该次编码单元为在该其他编码单元内最靠近的次编码单元,以及预处理模块可利用于该其他编码单元(例如,编码单元cuadj(to))内最靠近的次编码单元的运动向量来作为指定给特定次编码单元subcu(to)的运动向量。所指定给一编码单元或一次编码单元的运动向量主要用来作为多个其他编码单元或次编码单元的参考运动向量,而无需应用于运动预测。

如图11所示,对于编码单元cu(t0)而言,例如正在处理的块(在图11中,标示为“处理中的块”),与此实施例相关的多个相邻编码单元{cuadj(to)}可包含左半部已编码块cbl、上半部已编码块cbu、右上部已编码块cbur以及左上部已编码块cbul的至少一部分,其中于多个已编码块cbl、cbu、cbur以及cbul中的多个次编码单元可视为多个子块。为使更易于理解,位于左半部已编码块cbl中多个次编码单元的最右一栏的多个运动向量y1、y2、y3、y4、y5、y6、y7及y8分别被标示于多个次编码单元的最右一栏的上;同样地,位于上半部已编码块cbu中多个次编码单元的最下一列的多个运动向量x1、x2、x3、x4、x5、x6、x7及x8分别被标示于多个次编码单元的最下一列的上。此外,位于左上部已编码块cbul中右下方的次编码单元的运动向量d以及位于右上部已编码块cbur中左下方的次编码单元的运动向量x9皆分别被标示于其上。

根据此实施例,预处理模块接收包含多个次编码单元{subcu(t0)}的编码单元cu(t0)以及分析(parse)编码单元cu(t0)的数据,并根据一预定规则来指定一参考运动向量予多个次编码单元{subcu(t0)}中的次编码单元subcu(t0),其中该参考运动向量用以作为至少一其他次编码单元的参考,而并不用于作为特定次编码单元subcu(t0)的运动向量预测之用。当多个参考运动向量作为参考之用时,预处理模块可迅速地操作,而无需等待任何关于特定次编码单元subcu(t0)的实际运动向量的复杂计算的完成。实际上,预处理模块可指定此运动向量(亦即上述的参考运动向量)作为一邻近编码单元中至少一部分的运动向量,更具体地说,该邻近编码单元中的该至少一部分可为该邻近编码单元中最靠近该特定次编码单元的那一部分。

举例来说,假设特定次编码单元subcu(t0)代表正在处理的块(在图11中,标示为“处理中的块”)中多个子块的某一列内的第j个子块,其中j可在1到8之间变动。在一第一指定规则(例如,“垂直指定”(verticaldesignation))中,预处理模块可利用在上半部已编码块cbu内最靠近的次编码单元的运动向量xj来作为特定次编码单元subcu(t0)的该参考运动向量。

在另一个例子,假设特定次编码单元subcu(t0)代表正在处理的块(在图11中,标示为“处理中的块”)中多个子块的某一栏内的第j个子块,其中j可在1到8之间变动。在一第二指定规则(例如,“水平指定”(horizontaldesignation))中,预处理模块可利用在左半部已编码块cbl内最靠近的次编码单元的运动向量yj来作为特定次编码单元subcu(t0)的该参考运动向量。

在另一个例子,一第三指定规则(例如,“混成指定”(hybriddesignation))可被选取以决定该参考运动向量。假设特定次编码单元subcu(t0)代表正在处理的块(在图11中,标示为“处理中的块”)中多个子块的第4列/第8列内的第j个子块,其中j可在1到8之间变动。请参阅图11,如图中指向多个子块的第4列/第8列内的第j个子块的箭头所示,预处理模块可利用在上半部已编码块cbu内最靠近的次编码单元的运动向量xj来作为特定次编码单元subcu(t0)的该参考运动向量。此外,假设特定次编码单元subcu(t0)代表正在处理的块(在图11中,标示为“处理中的块”)中多个子块的第4栏/第8栏内的第j个子块,其中j可在1到7(除了4以外)之间变动。请参阅图11,如图中指向多个子块的第4栏/第8栏内的第j个子块的箭头所示,预处理模块可利用在左半部已编码块cbl内最靠近的次编码单元的运动向量yj来作为特定次编码单元subcu(t0)的该参考运动向量。于此实施例中,位于编码单元cu(t0)内的多个剩余次编码单元的多个参考运动向量可利用上文所揭示的任一实施例/变形中相同或相似的方法来得到。相似的叙述在此不再赘述。

请注意,在一些实施例中(例如,上述实施例的多个变形),预处理模块可利用一旗标来控制上述的操作,更具体地说,利用明确地传送一旗标来控制上述的操作。举例来说,根据多个实施例之一所实作出的一编码器可传送一旗标来指出“垂直指定”还是“水平指定”(甚至是“混成指定”)的指定规则需被采用,因此,通过接收挟带该旗标的比特流(bitstream),相关的译码器便可被通知需采用哪一个指定规则。

此外,在一些实施例中,上述的不同的运动向量指定方法(例如,“垂直指定”与“水平指定”,甚至是“混成指定”)可用于执行局部(local)运动向量的推导。举例来说,在应用“垂直指定”的情形下,多个次编码单元中每一列的多个运动向量可分别由位于上半部已编码块cbu内相对应的多个位置来推导出,例如,位于上半部已编码块cbu内最靠近的次编码单元。

本发明的优点之一在于本发明的方法与装置可适当地执行局部多重假设预测,更具体地说,可有效率地对正在处理中的编码单元的次编码单元执行多重假设运动补偿,因此,利用本发明的方法与装置来执行运动向量预测操作与多重假设运动补偿操作,可避免产生如低编码效率等常见问题。

以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。

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