用于确定视频运动矢量的方法和设备与流程

文档序号:12008427阅读:267来源:国知局
用于确定视频运动矢量的方法和设备与流程
本公开内容在此一般涉及视频编码,并且具体涉及用于计算运动矢量的方法、系统和计算机程序产品。

背景技术:
高效视频编码(“HEVC”)标准已由国际标准化组织(“ISO”)、国际电工技术委员会(“IEC”)、移动图像专家组(“MPEG”)以及国际电信联盟电信标准化组(“ITU-T”)的视频编码联合协作组(“JCT-VC”)讨论。对于HEVC标准,一个目标是对MEPG-4先进视频编码(“AVC”)H.264高配置(HighProfile)标准的有效改善。在一个例子中,预测单元(“当前PU”)具有其自己的由预测编码来编码的相应运动矢量,因此:(a)从包括毗邻当前PU的顶和/或左侧的全部预测单元(共同称为“邻近PU”)的相应运动矢量的运动矢量预测器(“MVP”)列表,选择具有与当前PU的运动矢量最小差的运动矢量(“已选择运动矢量”);以及(b)将这样的差和MVP指数(识别具有已选择运动矢量的邻近PU)编码。尽管有这样的例子,但更有效的改善是可能的。

技术实现要素:
预测单元(PU)在视频序列的图片内被识别。预测单元在图片内和邻近预测单元毗邻。针对预测单元的匹配位于第一参考图片内。扫描邻近预测单元的至少一个子组从而识别运动矢量预测器(“MVP”)候选。如果第一型的MVP候选可用,就识别第一型的MVP候选,其中针对第一型的MVP候选的匹配位于第一参考图片内。响应于第一型的MVP候选不可用,识别第二型的MVP候选,其中针对第二型的MVP候选的匹配位于第二参考图片内。编码器计算在MVP候选的运动矢量和预测单元的运动矢量之间的差,并且将该差和指数编码从而识别该MVP候选。解码器将该差解码,并且通过将该差与MVP候选的运动矢量相加来计算预测单元的运动矢量。附图说明图1是用于编码和解码图片的信息处理系统的框图。图2是在由图1的系统处理的数字化图片内的最大编码单元(“LCU”)的概念图解。图3是在图2的示例LCU内的编码单元(“CU”)和预测单元(“PU”)的概念图解。图4是在由图1的系统处理的图片k内的CU的概念图解。图5是在图4的CU内的PU的概念图解。图6是在第一实施例中图5的PU的概念图解。图7是在第一实施例中图1的系统的编码装置的第一操作的流程图。图8是在第一实施例中图1的系统的编码装置的第二操作的流程图。图9是在第一实施例中并且在第二和第三实施例中图1的系统的编码装置的第三操作的流程图。图10是在第二实施例中图5的PU的概念图解。图11是在第二实施例中图1的系统的编码装置的第一操作的流程图。图12是在第二实施例中图1的系统的编码装置的第二操作的流程图。图13是第一示例的概念图解,其中两个PU(在图片j内)分别是图5的两个PU(在图片k内)的最优匹配。图14是第二示例的概念图解,其中:(a)两个PU(在图片j内)分别是图5的两个PU(在图片k内)的最优匹配;以及(b)PU(在图片i内)是图5的另一PU(在图片k内)的最优匹配。图15是第一状况的概念图解,其中在第一参考图片列表LIST0的第一图片内的第一和第二PU分别是图5的第一和第二PU(在图片k内)的最优匹配。图16是第二状况的概念图解,其中:(a)在LIST0的第一图片内的第一PU是图5的第一PU(在图片k内)的最优匹配;以及(b)在第二参考图片列表LIST1的第一图片内的第二PU是图5的第二PU(在图片k内)的最优匹配。图17是第三状况的概念图解,其中:(a)在LIST0的第一图片内的第一PU是图5的第一PU(在图片k内)的最优匹配;以及(b)在LIST0的第二图片内的第二PU是图5的第二PU(在图片k内)的最优匹配。图18是第四状况的概念图解,其中:(a)在LIST0的第一图片内的第一PU是图5的第一PU(在图片k内)的最优匹配;以及(b)在LIST1的第二图片内的第二PU是图5的第二PU(在图片k内)的最优匹配。图19是在第三实施例中图1的系统的编码装置的第一操作的流程图。图20A和20B是在第三实施例中图1的系统的编码装置的第二操作的流程图。图21是用于执行空间MVP缩放的图1的系统的硬件框图。具体实施方式图1示出用于编码和解码图片的信息处理系统100。在图1的例子中,物理物体102和104能够在各种方向上移动(例如,如由箭头106和108分别表明)。在一段时间期间,视频摄像机110:(a)观察这种物体和其周围前景和背景;(b)将这样景象的图片数字化;以及(c)向编码装置112输出这种数字化(或“数字”)图片的视频序列。编码装置112:(a)从视频摄像机110接收这种数字化图片的视频序列;(b)响应于此,将这种数字化图片的视频序列编码成二进制逻辑位流;以及(c)向存储装置114输出这种位流,该存储装置114接收并存储这种位流。在一个实施例中,编码装置112可操作而根据HEVC标准(例如H.265标准)执行这种编码。解码装置116:(a)从存储装置114读取这种位流;(b)响应于此,将这种位流解码成这种数字化图片的视频序列;以及(c)向显示器装置118输出这种数字化图片的视频序列。显示器装置118:(a)从解码装置116接收这种数字化图片的视频序列;以及(b)响应于此,显示人类用户可见的视觉图像的视频序列(例如,物体102和104和其周围前景和背景的视觉图像)。在一个实施例中,解码装置116可操作从而根据HEVC标准执行这种解码。在可替换实施例中:(a)编码装置112经通信信道(例如以太网、互联网或无线通信信道)向解码装置116直接输出这种位流;以及(b)因此,解码装置116从编码装置112直接接收这种位流。在这种可替换实施例中,存储装置114:(a)从编码装置112同时接收和存储这种位流;或(b)系统100没有该存储装置114。解码装置112响应于存储在计算机可读介质120(例如,硬盘驱动器、闪存存储器卡或其他非易失性存储装置)上的计算机可读程序的指令执行其操作。相似地,解码装置116响应于存储在计算机可读介质122上的计算机可读程序的指令执行其操作。系统100由用于执行系统100操作的电子电路部件形成。图2示出在由系统100处理的数字化图片内的最大编码单元(“LCU”)。在图解实施例中,每个LCU都是具有特别尺寸(例如64×64个像素,等于每LCU4,096个像素)的正方形阵列。在图2中,LCU编号为LCUab,其中:(a)a是范围从0到N的LCU行号;(b)N是在数字化图片内LCU行的总数;(c)b是范围从0到M的LCU列号;以及(d)M是在数字化图片内LCU列的总数。为了清楚,尽管N>2且M>2,但图2仅示出LCU中的9个,其中a的范围从0到2,并且其中b的范围从0到2。图3示出在图2的示例LCU内的编码单元(“CU”)和预测单元(“PU”)。通过以光栅扫描顺序(例如由光栅扫描箭头302和304分别表明的从左到右和从顶到底)将这种数字化图片的像素编码,编码装置112将数字化图片编码成二进制逻辑位流。相似地,通过以相同的光栅扫描顺序将这种数字化图片的像素解码,解码装置116将这种位流解码成数字化图片。在图3中:(a)CU306包括单个PU,因此CU306与其单个PU共同延伸;(b)CU308包括单个PU,因此CU308与其单个PU共同延伸;以及(c)CU310包括单个PU,因此CU310与其单个PU共同延伸。同样,在图3中:(a)另一CU包括两个PU312a和312b;以及(b)更另一CU包括标记为PU1a和PU1b的两个PU。此外,在图3中:(a)另一CU包括四个PU314a、314b、314c和314d;以及(b)更另一CU包括标记为PU2a、PU2b、PU2c和PU2d的四个PU。因此,如在图3中示出,示例LCU包括具有各种尺寸和形状的CU和PU。这些尺寸和形状、CU的数目和PU的数目基于逐个LCU可能不同。这样,每个LCU都包括具有各种尺寸和形状的其自己的CU和PU相应组合。在图解实施例中,最小PU尺寸是4×8(和/或8×4)个像素,最大PU尺寸是64×64个像素,并且最大CU尺寸是64×64个像素。在一个实施例中,最小CU尺寸是8×8个像素。在另一实施例中,最小CU尺寸是16×16个像素。图4示出在由系统100处理的图片k内的CU402、404、406、408、410和412。这样的CU在一个或更多LCU内存在。在一个例子中:(a)第一LCU包括CU402、408和412;以及(b)第二LCU包括CU404、406和410。类似于在图3中CU308小于CU306的方式,CU412小于CU402、404、406、408和410。此外,图片k包括为清晰不在图4中示出的另外的CU。图5示出在图4的CU内的PU。在图5中,每个正方形都是CU,并且每个矩形都是PU。正方形是其侧边具有相同长度的矩形。为清晰,由于在图5中PU的巨大数目(即33),因此仅标记PU502、504和506。此外,图片k包括另外的PU(在图片k的另外的CU内),为清晰不在图5中示出它们。图6示出在第一实施例中图5的PU。如在图6中所示,PU的阴影子组仅包括以下七个PU(共同称为“邻近的角落PU”),并且排除图5的其他PU:(a)下侧角落PU,其毗邻PU502的第一角落;(b)下侧PU,其毗邻PU502的第一角落;(c)上侧PU,其毗邻PU502的第二角落;(d)顶部左角落PU,其毗邻PU502的第二角落;(e)顶部左PU,其毗邻PU502的第二角落;(f)顶部右PU,其毗邻PU502的第三角落;以及(g)顶部右角落PU,其毗邻PU502的第三角落。在图6的例子中:(a)下侧PU和上侧PU通过插入在该下侧PU和上侧PU之间的另外的左侧PU相互隔开,因此该下侧PU和上侧PU不相互毗邻;以及(b)顶部左PU和顶部右PU由插入在该顶部左PU和顶部右PU之间的另外的顶侧PU相互隔开,因此该顶部左PU和顶部右PU不相互毗邻。图7是在第一实施例中编码装置112的第一操作的流程图。图8是在第一实施例中编码装置112的第二操作的流程图。图9是在第一、第二和第三实施例中编码装置112的第三操作的流程图。在图解实施例中,当前PU(例如在图6的例子中的PU502)具有其自己的相应运动矢量,编码装置112通过预测编码将该相应运动矢量编码,例如:(a)对于第一实施例,根据图7-9;(b)对于第二实施例,根据图9、11和12;以及(c)对于第三实施例,根据图9、19和20。在一个例子中,其中物体102图像至少部分在图片k的当前PU和前面参考图片的匹配PU内,当前PU的运动矢量数值上表明在这种匹配PU和当前PU之间物体102运动的方向和量值。在图解实施例中,编码装置112将各种PU(在图片k内)的相应运动矢量如此编码,每个运动矢量都以光栅扫描顺序(例如从左到右和从顶到底,如由图3的光栅扫描箭头302和304分别表明)如当前PU那样被如此连续编码。参考图7,在步骤702、704和706,编码装置112识别并扫描(以由图6的箭头602示出的顺序)下侧角落PU、下侧PU和上侧PU,从而确定这些PU中的一个是否可接受作为MVP候选。在一个例子中,如果单个PU作为下侧PU和上侧PU安置(例如,如果这样的单个PU毗邻PU502的整个左侧),那么编码装置112扫描下侧角落PU和这种单个PU(以由图6的箭头602示出的顺序),从而确定这些PU中的一个是否可接受为MVP候选。在步骤708、710和712,响应于编码装置112确定这些PU中的一个可接受为MVP候选(“可接受的侧PU”),编码装置112结束这种扫描并且选择(例如识别)可接受的侧PU作为侧MVP候选,因此该可接受的侧PU的运动矢量用作侧MVP候选的运动矢量。在步骤714,响应于编码装置112确定下侧角落PU、下侧PU和上侧PU都不可接受为MVP候选,编码装置112将侧MVP候选标记为不可用。在第一和第二实施例中,如果PU可以接受为MVP候选,那么这种PU满足以下条件:(a)这种PU是帧间编码的(inter-coded);(b)这种PU具有与当前PU的运动矢量相同或不同方向的运动矢量(例如LIST0或LIST1);以及(c)这种PU使用与当前PU相同或不同的参考指数。参考图8,在步骤802、804、806和808,编码装置112识别并扫描(以由图6的箭头604示出的顺序)顶部右角落PU、顶部右PU、顶部左PU和顶部左角落PU,从而确定这些PU中的一个是否可作为MVP候选来接受。在一个例子中,如果单个PU作为顶部右PU和顶部左PU安置(例如,如果这样的单个PU毗邻PU502的整个顶侧),那么编码装置112扫描顶部右角落PU、这种单个PU和顶部左角落PU(以由图6的箭头604示出的顺序),从而确定这些PU中的一个是否可作为MVP候选来接受。在步骤810、812、814和816,响应于编码装置112确定这些PU中的一个可作为MVP候选(“可接受的顶部PU”)来接受,编码装置112结束这种扫描并且选择可接受的顶部PU作为顶部MVP候选,因此该可接受的顶部PU的运动矢量用作顶部MVP候选的运动矢量。在步骤818,响应于编码装置112确定顶部右角落PU、顶部右PU、顶部左PU和顶部左角落PU都不可作为MVP候选来接受,编码装置112将顶部MVP候选标记为不可用。这样,因为编码装置112扫描(例如搜索)(a)仅多达三个邻近角落PU从而选择侧MVP候选;以及(b)仅多达四个邻近角落PU从而选择顶部MVP候选,所以编码装置112在第一实施例中减小其最坏情况处理负载,而不降低编码效率。通过比较,在先前的技术中:(a)必须扫描毗邻当前PU的顶部和/或左侧的全部PU(共同称为“邻近PU”);以及(b)因此,如果最小PU尺寸是4×8(和/或8×4)个像素,那么必须扫描多达17个邻近PU以选择侧MVP候选,并且必须扫描多达18个邻近PU以选择顶部MVP候选。除了侧MVP候选和/或顶部MVP候选之外,编码装置112从可应用参考帧选择时域(temporal)MVP候选(如果可用且可接受)。这样的时域MVP候选的选择以常规方式执行。在编码装置112执行图7和8的操作之后,其执行图9的操作及其编码操作的剩余部分。参考图9,编码装置112选择具有与当前PU的运动矢量的最小差的侧MVP候选的运动矢量、顶部MVP候选的运动矢量或时域MVP候选的运动矢量(“已选运动矢量”)。例如,如果侧MVP候选的运动矢量具有与当前PU的运动矢量的最小差,那么编码装置112将该侧MVP候选识别为已选MVP。同样,如果顶部MVP候选的运动矢量具有与当前PU的运动矢量的最小差,那么编码装置112将该顶部MVP候选识别为已选MVP。相似地,如果时域MVP候选的运动矢量具有与当前PU的运动矢量的最小差,那么编码装置112将该时域MVP候选识别为已选MVP。因此,在步骤902,如果侧MVP候选可用,那么编码装置112计算在该侧MVP候选的运动矢量和当前PU的运动矢量之间的差(“侧MVP差”)。相似地,在下个步骤904,如果顶部MVP候选可用,那么编码装置112计算在该顶部MVP候选的运动矢量和当前PU的运动矢量之间的差(“顶部MVP差”)。进一步地,在下个步骤906,如果时域MVP候选可用,那么编码装置112计算在该时域MVP候选的运动矢量和当前PU的运动矢量之间的差(“时域MVP差”)。在下个步骤908,编码装置112将侧MVP差、顶部MVP差或时域MVP差编码,无论哪个较小。在下个步骤910,编码装置112将MVP指数编码从而识别已选MVP。例如,如果侧MVP候选、顶部MVP候选或时域MVP候选中的仅一个可用,那么编码装置112编码:(a)在这种可用MVP候选的运动矢量和当前PU的运动矢量之间的差;以及(b)MVP指数,从而将这种可用MVP识别为已选MVP。编码装置112和解码装置116响应于八种情况中的任何情况来操作,如在以下MVP指数表中示出的。如果情况0发生:(a)在步骤908,编码装置112将当前PU的运动矢量的实际值编码(而不是将侧MVP差、顶部MVP差或时域MVP差编码);以及(b)在步骤910,编码装置112将MVP指数=0编码。如果情况1-7发生,那么如适用则编码装置112根据在上面的MVP指数表将MVP指数编码。在第一实施例中,解码装置116:(a)执行图7和8的操作从而识别侧MVP候选(如果可用)和顶部MVP候选(如果可用);(b)识别时域MVP候选(如果可用);以及(c)响应于这样的识别,根据上面的MVP指数表确定已解码的MVP指数是否涉及/引用侧MVP候选、顶部MVP候选或时域MVP候选。图10示出在第二实施例中图5的PU。如在图10中示出,PU的阴影子组仅包括以下五个PU(共同称为“邻近角落PU”),并且排除图5的其他PU:(a)下侧角落PU,其毗邻PU502的第一角落;(b)下侧PU,其毗邻PU502的第一角落;(c)顶部左角落PU,其毗邻PU502的第二角落;(d)顶部右PU,其毗邻PU502的第三角落;以及(e)顶部右角落PU,其毗邻PU502的第三角落。在图10的例子中:(a)下侧PU和顶部左角落PU通过插入在该下侧PU和顶部左角落PU之间的另外左侧PU相互隔开,因此该下侧PU和顶部左角落PU不相互毗邻;以及(b)顶部左角落PU和顶部右PU通过插入在该顶部左角落PU和顶部右PU之间的另外顶侧PU相互隔开,因此该顶部左角落PU和顶部右PU不相互毗邻。图11是在第二实施例中编码装置112的第一操作的流程图。图12是在第二实施例中编码装置112的第二操作的流程图。参考图11,在步骤1102和1104,编码装置112识别并扫描(以由图10的箭头602示出的顺序)下侧角落PU和下侧PU,从而确定这些PU中的一个是否可接受为MVP候选。在步骤1106和1108,响应于编码装置112确定这些PU中的一个可接受为MVP候选(“可接受的侧PU”)来,编码装置112结束这种扫描并且选择可接受的侧PU作为侧MVP候选,因此该可接受的侧PU的运动矢量用作侧MVP候选的运动矢量。在步骤1110,响应于编码装置112确定下侧角落PU和下侧PU都不可接受为MVP候选,编码装置112将侧MVP候选标记为不可用。参考图12,在步骤1202、1204和1206,编码装置112识别并扫描(以由图10的箭头604示出的顺序)顶部右角落PU、顶部右PU、和顶部左角落PU,从而确定这些PU中的一个是否可接受为MVP候选。在步骤1208、1210和1212,响应于编码装置112确定这些PU中的一个可接受为MVP候选(“可接受的顶部PU”),编码装置112结束这种扫描并且选择可接受的顶部PU作为顶部MVP候选,因此该可接受的顶部PU的运动矢量用作顶部MVP候选的运动矢量。在步骤1214,响应于编码装置112确定顶部右角落PU、顶部右PU和顶部左角落PU都不可接受为MVP候选,编码装置112将顶部MVP候选标记为不可用。这样,因为编码装置112扫描:(a)仅多达两个邻近角落PU从而选择侧MVP候选;以及(b)仅多达三个邻近角落PU从而选择顶部MVP候选,所以编码装置112在第二实施例中进一步减小其最坏情况处理负载,而不降低编码效率。在编码装置112执行图11和12的操作之后,其执行图9的操作及其编码操作的剩余部分。在第二实施例中,解码装置116:(a)执行图11和12的操作从而识别侧MVP候选(如果可用)和顶部MVP候选(如果可用);(b)识别时域MVP候选(如果可用);以及(c)响应于这样的识别,根据上面的MVP指数表确定已解码的MVP指数是否涉及侧MVP候选、顶部MVP候选或时域MVP候选。再次参考图6,在可替换实施例中,编码装置112:(a)识别并扫描(以下面的顺序,或可选地以不同顺序)下侧PU和上侧PU,从而确定这些PU中的一个是否可接受为MVP候选(“第一MVP候选”),并且响应于确定这些PU中的一个是如此可接受的来结束这种扫描;(b)识别并扫描(以下面的顺序,或可选地以不同顺序)顶部右PU和顶部左PU,从而确定这些PU中的一个是否可接受为MVP候选(“第二MVP候选”),并且响应于确定这些PU中的一个是如此可接受的来结束这种扫描;(c)识别并扫描(以下面的顺序,或可选地以不同顺序)下侧角落PU、顶部左角落PU和顶部右角落PU,从而确定这些PU中的一个是否可接受为MVP候选(“第三MVP候选”),并且响应于确定这些PU中的一个是如此可接受的来结束这种扫描;(d)响应于第一、第二和第三MVP候选的相应运动矢量,计算第四MVP候选的运动矢量(例如,通过计算第一、第二和第三MVP候选的相应运动矢量的平均值或中间值);(e)从第一、第二、第三和第四MVP候选的相应运动矢量中,选择具有与当前PU的运动矢量的最小差的运动矢量(“已选运动矢量”);以及(f)(为当前PU)编码这种差和MVP指数,从而识别具有已选运动矢量的MVP候选(“已选MVP”),并且执行编码装置112的编码操作的剩余部分。在该可替换实施例中,如果PU可接受为MVP候选,那么这种PU满足与在上文中关于第一和第二实施例讨论的相同条件。图13示出第一示例,其中两个PU(在图片j内)分别是PU502和504(在图片k内)的最优匹配,如在图13中由点划线示出。由于此原因,在第一示例中,图片j是针对PU502和504(在图片k内)的参考图片(或“参考帧”)。因此,在第一示例中,PU502和504(在图片k内)具有相同的参考帧(图片j)。图14示出第二示例,其中:(a)两个PU(在图片j内)分别是PU502和506(在图片k内)的最优匹配,如在图14中由点划线示出;以及(b)PU(在图片i内)是PU504(在图片k内)的最优匹配,如在图14中由另一点划线示出。由于此原因,在第二示例中:(a)图片j是针对PU502和506(在图片k内)的参考帧;以及(b)图片i是针对PU504(在图片k内)的参考帧。因此,在第二示例中,PU502和506(在图片k内)具有相同的参考帧(图片j),但PU502和504(在图片k内)具有不同的参考帧(图片j和图片i)。图15示出第一状况,其中在第一参考图片列表LIST0的图片01内的第一和第二PU分别是PU502和504(在图片k内)的最优匹配,如在图15中由点划线示出。由于此原因,在第一状况中,LIST0的图片01是针对PU502和504(在图片k内)的参考帧。因此在第一状况中:(a)PU502和504(在图片k内)具有相同列表(LIST0)的相同参考帧(图片01);以及(b)为方便,与PU502比较,PU504在此被称为具有1型运动矢量(“T1矢量”)。在图15-18的例子中:(a)在编码装置112将图片k编码之前,该编码装置112已将LIST0的图片编码;以及(b)类似地,在解码装置116将图片k解码之前,该解码装置116已将LIST0的图片解码。因此,LIST0的尺寸(例如在LIST0中图片的总数)易于变化(例如根据MPEG-4标准)。例如,图15-18示出在LIST0中编号为图片0f的四个图片,其中:(a)f是范围从0到P-1的图片号;以及(b)P是在LIST0内的图片总数。为清晰,尽管P易于变化,但图15-18示出在LIST0中的四个图片,其中f的范围是从0到3。图16示出第二状况,其中:(a)在LIST0的图片01内的第一PU是PU502(在图片k内)的最优匹配,如在图16中由第一点划线示出;以及(b)在第二参考图片列表LIST1的图片11内的第二PU是PU504(在图片k内)的最优匹配,如在图16中由第二点划线示出。由于此原因,在第二状况中:(a)LIST0的图片01是针对PU502(在图片k内)的参考帧;以及(b)LIST1的图片11是针对PU504(在图片k内)的参考帧。在第二状况中,LIST1的图片11等同于(即相同于)LIST0的图片01。因此在第二状况中:(a)PU502和504(在图片k内)具有不同列表(LIST0和LIST1)的相同参考帧(图片01及其等同图片11);以及(b)为方便,与PU502比较,PU504在此被称为具有2型运动矢量(“T2矢量”)。在图15-18的例子中:(a)在编码装置112将图片k编码之前,该编码装置112已将LIST1的图片编码;以及(b)类似地,在解码装置116将图片k解码之前,该解码装置116已将LIST1的图片解码。因此,LIST1的尺寸(例如在LIST1中图片的总数)易于变化(例如根据MPEG-4标准)。例如,图15-18示出在LIST1中编号为图片1g的四个图片,其中:(a)g是范围从0到Q-1的图片号;以及(b)Q是在LIST1内的图片总数。为清晰,尽管Q易于变化,但图15-18示出在LIST1中的四个图片,其中g的范围是从0到3。图17示出第三状况,其中:(a)在LIST0的图片01内的第一PU是PU502(在图片k内)的最优匹配,如在图17中由第一点划线示出;以及(b)在LIST0的图片02内的第二PU是PU504(在图片k内)的最优匹配,如在图17中由第二点划线示出。由于此原因,在第三状况中:(a)LIST0的图片01是针对PU502(在图片k内)的参考帧;以及(b)LIST0的图片02是针对PU504(在图片k内)的参考帧。因此在第三状况中:(a)PU502和504(在图片k内)具有相同列表(LIST0)的不同参考帧(图片01和图片02);以及(b)为方便,与PU502比较,PU504在此被称为具有3型运动矢量(“T3矢量”)。图18示出第四状况,其中:(a)在LIST0的图片01内的第一PU是PU502(在图片k内)的最优匹配,如在图18中由第一点划线示出;以及(b)在LIST1的图片12内的第二PU是PU504(在图片k内)的最优匹配,如在图18中由第二点划线示出。由于此原因,在第四状况中:(a)LIST0的图片01是针对PU502(在图片k内)的参考帧;以及(b)LIST1的图片12是针对PU504(在图片k内)的参考帧。因此在第四状况中:(a)PU502和504(在图片k内)具有不同列表(LIST0和LIST1)的不同参考帧(图片01和图片12);以及(b)为方便,与PU502比较,PU504在此被称为具有4型运动矢量(“T4矢量”)。图19是在第三实施例中编码装置112的第一操作的流程图。在步骤1902,编码装置112识别并扫描下侧角落PU,从而确定该下侧角落PU是否具有T1矢量、T2矢量,或没有该T1矢量和T2矢量。在步骤1904,响应于编码装置112确定(在步骤1902)下侧角落PU具有T1矢量或T2矢量:(a)编码装置112选择下侧角落PU作为侧MVP候选,因此该下侧角落PU的运动矢量被用作侧MVP候选的运动矢量;以及(b)第一操作结束。在步骤1906,响应于编码装置112确定(在步骤1902)下侧角落PU既没有T1矢量也没有T2矢量,该编码装置112识别并扫描下侧PU,从而确定该下侧PU是否具有T1矢量、T2矢量,或没有该T1矢量和T2矢量。在步骤1908,响应于编码装置112确定(在步骤1906)下侧PU具有T1矢量或T2矢量:(a)编码装置112选择下侧PU作为侧MVP候选,因此该下侧PU的运动矢量被用作侧MVP候选的运动矢量;以及(b)第一操作结束。在步骤1910,响应于编码装置112确定(在步骤1906)下侧PU既没有T1矢量也没有T2矢量,该编码装置112识别并扫描下侧角落PU,从而确定该下侧角落PU是否具有T3矢量、T4矢量,或没有该T3矢量和T4矢量。在步骤1912,响应于编码装置112确定(在步骤1910)下侧角落PU具有T3矢量或T4矢量:(a)编码装置112选择下侧角落PU作为侧MVP候选,因此该下侧角落PU的运动矢量被用作侧MVP候选的运动矢量;以及(b)第一操作结束。在步骤1914,响应于编码装置112确定(在步骤1910)下侧角落PU既没有T3矢量也没有T4矢量,该编码装置112识别并扫描下侧PU,从而确定该下侧PU是否具有T3矢量、T4矢量,或没有该T3矢量和T4矢量。在步骤1916,响应于编码装置112确定(在步骤1914)下侧PU具有T3矢量或T4矢量:(a)编码装置112选择下侧PU作为侧MVP候选,因此该下侧PU的运动矢量被用作侧MVP候选的运动矢量;以及(b)第一操作结束。在步骤1918,响应于编码装置112确定(在步骤1914)下侧PU既没有T3矢量也没有T4矢量:(a)编码装置112将侧MVP候选标记为不可用;以及(b)第一操作结束。图20A和20B(共同称为“图20”)是在第三实施例中编码装置112的第二操作的流程图。在步骤2002,编码装置112识别并扫描顶部右角落PU,从而确定该顶部右角落PU是否具有T1矢量、T2矢量,或没有该T1矢量和T2矢量。在步骤2004,响应于编码装置112确定(在步骤2002)顶部右角落PU具有T1矢量或T2矢量:(a)编码装置112选择顶部右角落PU作为顶部MVP候选,因此该顶部右角落PU的运动矢量被用作顶部MVP候选的运动矢量;以及(b)第二操作继续到步骤2006。在步骤2008,响应于编码装置112确定(在步骤2002)顶部右角落PU既没有T1矢量也没有T2矢量,该编码装置112识别并扫描顶部右PU,从而确定该顶部右PU是否具有T1矢量、T2矢量,或没有该T1矢量和T2矢量。在步骤2010,响应于编码装置112确定(在步骤2008)顶部右PU具有T1矢量或T2矢量:(a)编码装置112选择顶部右PU作为顶部MVP候选,因此该顶部右PU的运动矢量被用作顶部MVP候选的运动矢量;以及(b)第二操作继续到步骤2006。在步骤2012,响应于编码装置112确定(在步骤2008)顶部右PU既没有T1矢量也没有T2矢量,该编码装置112识别并扫描顶部左角落PU,从而确定该顶部左角落PU是否具有T1矢量、T2矢量,或没有该T1矢量和T2矢量。在步骤2014,响应于编码装置112确定(在步骤2012)顶部左角落PU具有T1矢量或T2矢量:(a)编码装置112选择顶部左角落PU作为顶部MVP候选,因此该顶部左角落PU的运动矢量被用作顶部MVP候选的运动矢量;以及(b)第二操作继续到步骤2006。在步骤2016,响应于编码装置112确定(在步骤2012)顶部左角落PU既没有T1矢量也没有T2矢量,该编码装置112确定侧MVP候选(如果可用)是否具有T1矢量、T2矢量,或没有该T1矢量和T2矢量。在步骤2018,响应于编码装置112确定(在步骤2016)侧MVP候选(如果可用)既没有T1矢量也没有T2矢量:(a)编码装置112将顶部MVP候选标记为不可用;以及(b)第二操作结束。相反,响应于编码装置112确定(在步骤2016)侧MVP候选具有T1矢量或T2矢量(或该侧MVP候选不可用),第二操作从步骤2016继续到步骤2020。再次参考步骤2006,响应于编码装置112确定(在步骤2006)侧MVP候选可用,第二操作结束。相反,响应于编码装置112确定(在步骤2006)侧MVP候选不可用,第二操作从步骤2006继续到步骤2020,因此编码装置112进展到确定顶部右角落PU、顶部右PU或顶部左角落PU是否具有T3矢量或T4矢量(在用顶部MVP候选的T1或T2矢量代替不可用的侧MVP候选的运动矢量的尝试中)。在步骤2020,编码装置112识别并扫描顶部右角落PU,从而确定该顶部右角落PU是否具有T3矢量、T4矢量,或没有该T3矢量和T4矢量。在步骤2022,响应于编码装置112确定(在步骤2020)顶部右角落PU具有T3矢量或T4矢量:(a)如果侧MVP候选不可用,那么编码装置112用顶部MVP候选的T1矢量或T2矢量代替不可用的侧MVP候选的运动矢量,因此该侧MVP候选由此变得可用;(b)编码装置112选择顶部右角落PU作为顶部MVP候选,因此该顶部右角落PU的T3矢量或T4矢量用作顶部MVP候选的运动矢量;以及(c)第二操作结束。在步骤2024,响应于编码装置112确定(在步骤2020)顶部右角落PU既没有T3矢量也没有T4矢量,编码装置112识别并扫描顶部右PU,从而确定该顶部右PU是否具有T3矢量、T4矢量,或没有该T3矢量和T4矢量。在步骤2026,响应于编码装置112确定(在步骤2024)顶部右PU具有T3矢量或T4矢量:(a)如果侧MVP候选不可用,那么编码装置112用顶部MVP候选的T1矢量或T2矢量代替不可用的侧MVP候选的运动矢量,因此该侧MVP候选由此变得可用;(b)编码装置112选择顶部右PU作为顶部MVP候选,因此该顶部右PU的T3矢量或T4矢量被用作顶部MVP候选的运动矢量;以及(c)第二操作结束。在步骤2028,响应于编码装置112确定(在步骤2024)顶部右PU既没有T3矢量也没有T4矢量,编码装置112识别并扫描顶部左角落PU,从而确定该顶部左角落PU是否具有T3矢量、T4矢量,或没有该T3矢量和T4矢量。在步骤2030,响应于编码装置112确定(在步骤2028)顶部左角落PU具有T3矢量或T4矢量:(a)如果侧MVP候选不可用,那么编码装置112用顶部MVP候选的T1矢量或T2矢量代替不可用的侧MVP候选的运动矢量,因此该侧MVP候选由此变得可用;(b)编码装置112选择顶部左角落PU作为顶部MVP候选,因此该顶部左角落PU的T3矢量或T4矢量被用作顶部MVP候选的运动矢量;以及(c)第二操作结束。在步骤2032,响应于编码装置112确定(在步骤2028)顶部左角落PU既没有T3矢量也没有T4矢量,编码装置112确定顶部MVP候选是否具有T1矢量、T2矢量,或没有该T1矢量和T2矢量。这样,编码装置112确定在用顶部MVP候选的T1矢量或T2矢量代替不可用的侧MVP候选的运动矢量的尝试中是否执行步骤2020、2024和2028。在步骤2034,响应于编码装置112确定(在步骤2032)顶部MVP候选既没有T1矢量也没有T2矢量:(a)编码装置112将顶部MVP候选标记为不可用;以及(b)第二操作结束。相反,响应于编码装置112确定(在步骤2032)顶部MVP候选具有T1矢量或T2矢量:(a)编码装置112确定在用顶部MVP候选的T1矢量或T2矢量代替不可用的侧MVP候选的运动矢量的尝试中执行步骤2020、2024和2028;以及(b)第二操作结束。图21是用于执行空间MVP缩放的系统100的硬件(例如电路)的框图。如果侧MVP候选可用而既没有T1矢量也没有T2矢量,那么侧MVP候选的运动矢量是T3矢量或T4矢量。类似地,如果顶部MVP候选可用而既没有T1矢量也没有T2矢量,那么顶部MVP候选的运动矢量是T3矢量或T4矢量。由于步骤2018(图20):(a)如果侧MVP候选的运动矢量是T3矢量或T4矢量,那么系统100确保顶部MVP候选的运动矢量既不是T3矢量也不是T4矢量;以及(b)如果顶部MVP候选的运动矢量是T3矢量或T4矢量,那么系统100确保侧MVP候选的运动矢量既不是T3矢量也不是T4矢量。因此,响应于控制线2102(其根据图19和20的操作选择以下PU中的一个)的逻辑状态,多路复用器2104向空间MVP缩放单元2106输出以下PU中的一个:(a)下侧角落PU,如果其是侧MVP候选,并且如果其运动矢量是T3矢量或T4矢量;(b)下侧PU,如果其是侧MVP候选,并且如果其运动矢量是T3矢量或T4矢量;(c)顶部右角落PU,如果其是顶部MVP候选,并且如果其运动矢量是T3矢量或T4矢量;(d)顶部右PU,如果其是顶部MVP候选,并且如果其运动矢量是T3矢量或T4矢量;以及(e)顶部左角落PU,如果其是顶部MVP候选,并且如果其运动矢量是T3矢量或T4矢量。空间MVP缩放单元2106接收这种PU(其从多路复用器2104输出),并且执行这种PU的运动矢量的运动矢量缩放(或“空间MVP缩放”),以便相对于当前PU的运动矢量将这种运动矢量适当规格化。这样,图21的硬件解释在以下中的差异:(a)在这种PU及其相应参考帧之间的时间距离;以及(b)在当前PU及其相应参考帧之间的时间距离。通过比较,如果PU具有T1矢量或T2矢量,那么因为这样的差异不存在,所以图21的硬件不执行这种PU的运动矢量的空间MVP缩放。有利地,因为空间MVP缩放单元2106将源自五个PU(即,下侧角落PU、下侧PU、顶部右角落PU、顶部右PU和顶部左角落PU)中仅一个(若有的话)的T3矢量或T4矢量相对于当前PU的运动矢量适当规格化,所以一个空间MVP缩放单元2106由这五个PU共享。因此,在第三实施例中:(a)编码装置112包括图21的这种硬件以在编码操作中执行空间MVP缩放;以及(b)类似地,解码装置116包括图21的这种硬件以在解码操作中执行空间MVP缩放。在可替换实施例中:(a)编码装置112是通用计算资源(例如通用计算机),该通用计算资源响应于存储在计算机可读介质120上的计算机可读程序的指令执行空间MVP缩放(根据图21的技术),而不是在编码装置112中的专用硬件执行空间MVP缩放;以及(b)类似地,解码装置116是通用计算资源(例如通用计算机),该通用计算资源响应于存储在计算机可读介质122上的计算机可读程序的指令执行空间MVP缩放(根据图21的技术),而不是在解码装置116中的专用硬件执行空间MVP缩放。这样,因为编码装置112减少空间MVP缩放的实例,所以编码装置112在第三实施例中在不降低编码效率的情况下减小其处理负载和硬件面积。例如,编码装置112通过以下方法如此减少空间MVP缩放的实例:(a)在扫描下侧角落PU和下侧PU从而确定它们中的任意一个是否具有T3矢量或T4矢量之前,扫描该下侧角落PU和下侧PU从而确定它们中的任意一个是否具有T1矢量或T2矢量,如在上文中关于图19讨论的;(b)在扫描顶部右角落PU、顶部右PU和顶部左角落PU从而确定它们中的任何一个是否具有T3矢量或T4矢量之前,扫描该顶部右角落PU、顶部右PU和顶部左角落PU从而确定它们中的任何一个是否具有T1矢量或T2矢量,如在上文中关于图20讨论的;以及(c)扫描顶部右角落PU、顶部右PU和顶部左角落PU从而确定它们中的任何一个是否具有T3矢量或T4矢量,除非侧MVP候选具有T3矢量或T4矢量(例如,仅如果侧MVP候选具有T1矢量或T2矢量,或如果侧MVP候选不可用),如在上文中关于图20讨论的。在编码装置112执行图19、20和21的操作之后,其执行图9的操作(响应于由图21的空间MVP缩放单元2106适当规格化的可用MVP候选的相应运动矢量)及其编码操作的剩余部分。在第三实施例中,解码装置116:(a)执行图19和20的操作从而识别侧MVP候选(如果可用)和顶部MVP候选(如果可用);(b)识别时域MVP候选(如果可用);以及(c)响应于这种识别,根据上面的MVP指数表确定已解码的MVP指数是否涉及侧MVP候选、顶部MVP候选或时域MVP候选。因此,在第一、第二和第三实施例中,解码装置116通过以下方法将当前PU的运动矢量解码:(a)将来自已编码位流的这种差和MVP指数解码;(b)识别侧MVP候选(如果可用)、顶部MVP候选(如果可用)和时域MVP候选(如果可用),如在上文中讨论的;(c)响应于这种识别,根据上面的MVP指数表确定已解码的MVP指数是否涉及侧MVP候选、顶部MVP候选或时域MVP候选;(d)响应于这样的确定和已解码的MVP指数,识别已选运动矢量;以及(e)将这种已解码的差与已选运动矢量相加,用于计算当前PU的运动矢量。解码装置116将各种PU(在图片k内)的相应运动矢量如此解码,每个运动矢量都以光栅扫描顺序(例如从左到右和从顶到底,如由图3的光栅扫描箭头302和304分别表明)如当前PU那样被如此连续解码。在图解实施例中,计算机程序产品是具有以下物的制品:(a)计算机可读介质;以及(b)在这样的介质上存储的计算机程序。这样的程序可以由指令执行设备(例如系统或装置)处理,以导致该设备执行在上文中讨论(例如关于框图讨论的)的各种操作。例如,响应于处理(例如执行)这种程序的指令,设备(例如可编程计算机)执行在上文中讨论的各种操作。因此,这样的操作是计算机实施的。这样的程序(例如软件、固件和/或微代码)以一种或更多编程语言编写,例如:面向对象的编程语言(例如Java、Smalltalk和C++);常规过程编程语言(例如C);和/或其任何合适组合。在第一状况中,计算机可读介质是计算机可读存储介质。在第二示例中,计算机可读介质是计算机可读信号介质。计算机可读存储介质包括适合存储程序的任何系统、装置和/或其他非暂时性有形设备(例如电子的、磁的、光的、电磁的、红外的、半导体和/或其任何合适组合),因此这样的程序可以由指令执行设备处理,以导致该设备执行在上文中讨论的各种操作。计算机可读存储介质的示例包括但不限于:具有一条或更多线路的电子连接;便携计算机磁盘;硬盘;随机存取存储器(“RAM”);只读存储器(“ROM”);可擦写可编程只读存储器(“EPROM”或闪存存储器);光纤;便携紧凑光盘只读存储器(“CD-ROM”);光存储装置;磁存储装置;和/或其任何合适组合。计算机可读信号介质包括适合传递程序(例如传播或传输)的任何计算机可读介质(不同于计算机可读存储介质),因此这样的程序可以由指令执行设备处理,以导致该设备执行在上文中讨论的各种操作。在一个实施例中,计算机可读信号介质包括具有在其中包含(例如在基带中或作为载波的部分)的计算机可读程序代码的数据信号,该数据信号经有线线路、无线、光缆和/或其任何合适组合来通信(例如电子地、电磁地和/或光学地通信)。尽管已示出图解实施例并且作为示例描述,但宽范围的其他可替换实施例在前述公开内容的范围内是可能的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1