首页> 中国专利> 以实时的方式生成当前帧的块的运动场运动向量的方法和装置

以实时的方式生成当前帧的块的运动场运动向量的方法和装置

摘要

运动向量(motion vector,简称MV)投影方法包括通过将MV投影应用于多个参考帧中的每个的一部分的MV来生成当前帧的第一部分的运动场运动向量(motion filed motion vector,简称MFMV),并将当前帧的第一部分的MFMV存储至MFMV缓冲器,以及通过将MV投影应用于多个参考帧中的每个的一部分的MV生成当前帧的第二部分的MFMV,并将当前帧的第二部分的MFMV存储至MFMV缓冲器。第二部分与第一部分不重叠。在当前帧的第二部分的MFMV被生成之前,第一部分的MFMV中至少一个从MFMV缓冲器被读取,并且参与第一部分中包括的至少一个编解码块的运动向量的确定。

著录项

  • 公开/公告号CN112954363A

    专利类型发明专利

  • 公开/公告日2021-06-11

    原文格式PDF

  • 申请/专利权人 联发科技股份有限公司;

    申请/专利号CN202011322090.8

  • 申请日2020-11-23

  • 分类号H04N19/513(20140101);H04N19/176(20140101);H04N19/129(20140101);H04N19/42(20140101);

  • 代理机构44280 深圳市威世博知识产权代理事务所(普通合伙);

  • 代理人黎坚怡

  • 地址 中国台湾新竹市新竹科学工业园区笃行一路一号

  • 入库时间 2023-06-19 11:21:00

说明书

相关引用

本发明要求在2019年11月26日递交的申请号为16/697,119的美国非临时申请案的优先权,以上申请的全部内容以引用方式并入本发明。

技术领域

本发明涉及视频编解码,更具体的是,本发明涉及以实时的方式生成当前帧的块的运动场运动向量的方法和装置。

背景技术

常规的视频编解码标准通常采用基于块的编解码技术来利用空间和时间冗余。例如,基本方法是将源帧划分为多个块,对每个块执行预测,对每个块的残差进行变换,并且执行量化,扫描和熵编码。此外,重构帧在视频编码器的内部解码环路中生成,以提供用于对后续块进行编解码的参考像素数据。例如,逆扫描、逆量化和逆变换可被包括在视频编码器的内部解码环路中,以恢复每个块的残差,这些残差将被添加到每个块的预测样本以生成重构帧。视频编码器的内部解码环路的功能也实现在视频解码器中,用于恢复每个块的残差并生成重构帧。

运动估计是现代视频编解码标准中的帧间预测的核心部分,其极大地提高了压缩效率。另一方面,运动信息占据相当一部分压缩的比特流,尤其是在低比特率的情况下。为了最小化表示运动向量(motion vector,简称MV)信息所需的位数,运动向量预测子(motion vector predictor,简称MVP)通常被使用,然后运动向量差(motion vectordifference,简称MVD),即MV和MVP之间的差,被编码为比特流。此外,MVP还被用作运动估计的起点。基于MV(MV=MVP+MVD),运动补偿获得可被用来重构块的预测块。在视频序列中,块的运动在空间和时间域中都具有高度相关性。因此,包括几个空间和时间预测子的MVP候选集合可被建立,使得块的最终MVP可基于MVP候选集合来确定。如果MVP精度可被提高,则MVD可被降低,并且编解码效率可被提高。例如,为了增加MVP精度,通过从MV投影导出的运动场运动向量(motion field motion vector,简称MFMV),MVP候选集合中包括的每个时间预测子可被设置。一种常规设计采用脱机方法检查(traverse)参考帧的所有64x64块,并在当前帧的任一块的运动向量确定被启动之前,准备MFMV缓冲器中的当前帧(即待编码/解码的帧)的所有块的MFMV。换句话说,关于当前帧的编码/解码,后处理阶段(例如,运动向量确定)必须等待预处理阶段的结束(例如,运动向量投影),从而导致编码/解码性能的下降。

发明内容

所要求保护的发明的目的之一是提供一种以实时的方式生成当前帧的块的运动场运动向量的方法和装置。

根据本发明的第一方面,公开了一种示例MV投影方法。该示例MV投影方法包括:通过将MV投影应用于多个参考帧中的每个的一部分的MV来生成当前帧的第一部分的运动场运动向量(motion field motion vector,简称MFMV),以及将当前帧的第一部分的MFMV存储至MFMV缓冲器;通过将MV投影应用于多个参考帧中的每个的一部分的MV来生成当前帧的第二部分的MFMV,并将当前帧的第二部分的MFMV存储至MFMV缓冲器。当前帧的第二部分与当前帧的第一部分不重叠。在生成当前帧的第二部分的MFMV被完成之前,当前帧的第一部分的MFMV中的至少一个从MFMV缓冲器中被读取,并参与包括在当前帧的第一部分的至少一个编解码块的运动向量确定。

根据本发明的第二方面,公开了一种示例性MV投影装置。该示例性MV投影装置包括MFMV缓冲器和处理电路。所述处理电路被布置为通过将MV投影应用于多个参考帧中的每个的一部分的MV来生成当前帧的第一部分的MFMV,并将当前帧的第一部分的MFMV存储至MFMV缓冲器;以及通过将MV投影应用于多个参考帧中的每个的一部分的MV来生成当前帧的第二部分的MFMV,并将当前帧的第二部分的MFMV存储至MFMV缓冲器。当前帧的第二部分与当前帧的第一部分不重叠。在当前帧的第二部分的MFMV由处理电路产生之前,当前帧的第一部分的MFMV中至少一个从MFMV缓冲器中被读取,并参与包括在当前帧的第一部分的至少一个编码块的运动向量确定。

在阅读了在各个附图和附图中示出的优选实施例的以下详细描述之后,本发明的该些和其他目的无疑对于所属技术领域的技术人员将变得显而易见。

附图说明

图1示出根据本发明实施例的视频解码器的图。

图2示出使用当前帧的运动轨迹来预测当前帧中包括的当前块的运动的示例的图。

图3示出使用运动向量投影来生成当前帧中包括的块的运动场运动向量的示例的图。

图4示出根据本发明的实施例的运动向量投影装置的图。

图5示出根据本发明的实施例的通过先前的运动向量投影操作和随后的运动向量预测子确定来访问的相同运动场运动向量缓冲器的图。

图6示出根据本发明实施例的由处理电路以实时的方式执行的第一运动向量投影操作的图。

图7示出根据本发明的实施例的由处理电路以实时的方式执行的第二运动向量投影操作的图。

图8示出根据本发明的实施例的由处理电路以实时的方式执行的第三运动向量投影操作的图。

图9示出图6所示的实施例遇到的可能的重叠/覆盖场景的图。

图10示出根据本发明的实施例的利用优先级表的块级运动向量投影操作的图。

图11示出根据本发明的实施例的块级运动向量投影操作的图,该块级运动向量投影操作通过K个64×64个参考块(K≥2)确保一个参考帧的运动向量投影进度领先于另一参考帧的运动向量投影进度。

图12示出根据本发明的实施例的大小为64×64的超级块的扫描顺序的图。

图13示出根据本发明的实施例的大小为128×128的超级块的扫描顺序的图。

图14示出根据本发明的实施例的运动场运动向量缓冲器设计的图,该设计使用单个存储空间来处理大小为64×64的超级块的存储过程。

图15示出根据本发明的实施例的运动场运动向量缓冲器设计的图,该设计使用单个存储空间来处理大小为128×128的超级块的存储过程。

图16示出根据本发明的实施例的运动场运动向量缓冲器的图。

图17示出根据本发明的实施例的运动场运动向量缓冲器设计的图,该运动场运动向量缓冲器设计使用两个存储空间来处理大小为128×128的超级块的存储过程。

具体实施方式

贯穿以下描述和权利要求特定术语,其涉及特定组件被使用。如所属技术领域的技术人员将理解的,电子装置制造商可通过不同的名称来指示同一组件。本文文件无意区别名称不同但功能相同的组件。在以下描述和权利要求中,术语“包括”和“包含”以开放式的方式使用,因此应该被解释为表示“包括但不限于......”。而且,术语“耦合”旨在表示间接或直接电子连接。因此,如果一个装置耦合到另一个装置,则该连接可以通过直接电子连接,或通过其他装置和链接的间接电子连接。

图1示出根据本发明的实施例的视频解码器的图。视频解码器100可以是AV1视频解码器。然而,这仅出于说明的目的,并不意味着对本发明的限制。使用所提出的实时方法来生成解码的当前帧的块的运动场运动向量的任一视频解码器都属于本发明的范围。如图1所示,视频解码器100包括熵解码电路(例如,可变长度解码器(variable lengthdecoder,简称VLD)102),逆扫描电路(以“IS”表示)104,逆量化电路(以“IQ”表示)106,逆变换电路(以“IT”表示)106,重构电路110,运动向量计算电路(以“MV计算”表示)112,运动补偿电路(以“MC”表示)114,帧内预测电路(以“IP”表示)116,帧间/帧内模式选择电路(以“帧间/帧内选择”表示)118,环路滤波器(例如,解块滤波器(deblocking,简称DBF)120)和参考帧缓冲器122。当块以帧内预测模式进行编码时,帧内预测电路116被用来确定帧内预测块,并且重构电路110根据来自帧间/帧内模式选择电路118的帧内预测块输出以及来自逆变换电路108的残差输出来生成重构块。当块以帧间预测模式进行编码,运动向量计算电路112和运动补偿电路110被用来确定帧间预测块,并且重构电路110根据来自帧间/帧内模式选择电路118的帧间预测块输出以及来自逆变换电路108的残差输出来生成重构块。此外,由重构电路110生成的重构帧,在被存储至参考帧缓冲器122中用作参考帧之前,该重构帧经历环路滤波。由于所属技术领域的技术人员可以容易地理解VLD102,逆扫描电路104,逆量化电路106,逆变换电路108,重构电路110,帧内预测电路116,运动补偿电路114,帧间/帧内模式选择电路118,DBF 120和参考帧缓冲器122的细节,为简洁起见,在此进一步的描述被省略。

当前编解码块的运动向量差(motion vector difference,简称MVD)从VLD102解码,当前编解码块的运动向量预测子(motion vector predictor,简称MVP)在运动向量计算电路112中确定。因此,运动向量计算电路112根据解码的MVD和计算出的MVP来计算当前编解码块的运动向量(motion vector,简称MV),其中MV=MVP+MVD。在该实施例中,运动向量计算电路112建立包括几个空间和时间预测子的MVP候选集合,并根据该MVP候选集合确定当前编解码块的最终MVP,其中MVP候选集合中包括的每个时间预测子可由从MV投影导出的运动场运动向量(motion field motion vector,简称MFMV)设置。在该实施例中,运动向量计算电路112包括MV投影装置124,其被布置为以实时的方式生成当前帧的块的MFMV。根据所提出的实时运动向量投影方案,后处理阶段(例如,运动向量确定)不需要等待预处理阶段的结束(例如,运动向量投影),因此减少了解码的处理时间,提高了硬件效率。

图2示出使用当前帧200的运动轨迹来预测当前帧200中包括的当前块202的运动的示例的示图。该运动轨迹示出了当前帧200和三个参考帧(由“参考帧1”,“参考帧0”和“参考帧2”表示的)204、206和208之间的运动。基于参考运动向量210,运动轨迹被确定,该参考运动向量210表示参考帧206与参考帧之间的运动。例如,参考帧206可以是用于预测参考帧204的一个或多个块的运动的参考帧。在参考运动向量210被确定之后,运动轨迹被确定为与该参考运动向量210的方向相对应的轨迹。

运动轨迹将当前块202识别为当前帧200与运动轨迹相交的位置。然后,第一时间运动向量候选212被确定为指示参考帧204和当前帧200之间的运动。第二时间运动向量候选214被确定为指示参考帧208和当前帧200之间的运动。参考运动向量210,第一时间运动向量候选212和第二时间运动向量候选214中的一个或多个可被包括在MVP候选集合中,最终的MVP从该MVP候选集合被选择以实际预测当前块202的运动。

根据显示顺序,参考帧206和208被示为相对于当前帧200的过去帧(可以是先前解码的帧),参考帧204被示为相对于当前帧200的将来帧(可以是先前解码的帧)。然而,其他数量的过去或将来参考帧可被使用。例如,存在一个过去参考帧和一个将来参考帧的运动轨迹可被确定。在另一示例中,存在一个过去帧和两个将来参考帧的运动轨迹可被确定。在另一示例中,存在两个或更多过去参考帧以及两个或更多将来参考帧的运动轨迹可被确定。

图3示出使用运动向量投影来生成当前帧中包括的块的MFMV的示例的图。参考帧中包括的所有64×64块的MV被存储在参考帧MV缓冲器302中,其中每个64×64块被划分为多个8×8块,并且每个8×8块的MV被记录在参考帧MV缓冲器302中。MFMV缓冲器304被用来存储通过将MV投影应用于参考帧中包括的64×64块的MV而获得的MV投影结果。例如,在MFMV缓冲器304中分配的存储区域308被用来存储当前帧中的第一64x64块的MFMV(例如,当前帧的当前64x64块中包括的8x8块位置处的投影MV),其中所存储的MFMV可被用作参与MVP确定和随后的MV确定的时间预测子;在MFMV缓冲器304中分配的存储区域310被用作存储当前帧中的第二64x64块的MFMV(例如,当前帧的当前64x64块的左相邻块中包括的8x8块位置处的投影MV),其中所存储的MFMV可被用作MVP确定以及随后的MV确定中涉及的时间预测子;MFMV缓冲器304中分配的存储区域312被用来存储当前帧中的第三64x64块的MFMV(例如,当前帧的当前64x64块的右相邻块中包括的8x8块位置处的投影MV),其中存储的MFMV可被用作MVP确定以及随后的MV确定中涉及的时间预测子。

如图3所示,存储区域306在参考帧MV缓冲器302中被分配,用于在参考帧中存储64×64参考块的MV(特别是64×64参考块中包括的所有8×8块的MV),其中,参考帧中的64×64参考块和当前帧中的第一64x64块是同位块。为了提高MVP确定的准确性,通过MV投影对64x64参考块的原始MV进行预处理,以生成当前帧中64x64块的MFMV(投影MV),其中MFMV可用作以后由MVP确定所使用的时间预测子。在该示例中,包括在第一64x64参考块中的8x8参考块的块位置BP11处的原始运动向量MV1被投影到当前帧,从而在当前帧的第二64x64块中的8x8块投影块的位置BP2处产生投影运动向量MV1'。因此,根据投影块位置BP2,投影运动向量MV1'被存储在存储区域310中的对应地址中。

包括在64x64参考块中的8x8参考块的块位置BP12处的原始运动向量MV2被投影到当前帧,从而在包含在当前帧的第三64x64块中的8x8块的投影块位置BP31处产生投影运动向量MV2'。因此,根据投影块位置BP31,投影运动向量MV2'被存储在存储区域308中的对应地址中。

包括在64x64参考块中的8x8参考块的块位置BP13处的原始运动向量MV3被投影到当前帧,从而在当前帧的第三64x64块中的8x8块的投影块位置BP32处产生投影运动向量MV3'。因此,根据投影块位置BP32,投影运动向量MV3'被存储在存储区域312的对应地址中。

在64x64参考块中的8x8参考块的块位置BP14处的原始运动向量MV4被投影到当前帧,从而在当前帧的第一64x64块中的8x8块的投影块位置BP16处产生投影运动向量MV4'。因此,根据投影块位置BP16,投影运动向量MV4'被存储在存储区域308中的对应地址中。

投影的8x8块位置应在有效范围内。如上所述,当前帧中的第一64x64块和参考帧中的64x64参考块是同位块,当前帧中的第二64x64块是当前帧中的第一64x64块的左相邻块,并且当前帧中的第三64x64块是当前帧中第一64x64块的右相邻块。当MV投影被应用于参考帧中64×64参考块的8×8参考块所拥有的MV时,有效范围由第一64×64块、第二64×64块和第三64×64块定义。因此,当投影位置在第一64x64块,第二64x64块和第三64x64块中的任一时,投影位置有效,而当投影位置在不是第一64x64块,第二64x64块和第三64x64块中之一的一个的64x64块内时,投影位置无效。如图3所示,在64×64参考块中的8×8参考块的块位置BP15处的原始运动向量MV5被投影到当前帧,从而导致在有效范围之外的无效投影块位置处的投影运动向量。因此,具有无效的投影块位置的投影运动向量被阻止存储至MFMV缓冲器304中。

当MV投影被应用于参考帧中64x64参考块的8x8参考块所拥有的MV时,在第二64x64块(例如,第一64x64块的左相邻块)在当前帧中不可用的情形下,有效范围由第一64x64块和第三64x64块(例如,第一64x64块的右相邻块)定义。因此,当投影位置在第一64x64块和第三64x64块中的任一内时,投影位置是有效的;而当投影位置在不是第一64x64块和第三64x64块中之一的一个64x64块内时,投影位置是无效的。

在另一情形中,当MV投影被应用于参考帧中64x64参考块的8x8参考块所拥有的MV时,第三64x64块(例如,第一64x64块的右相邻块)在当前帧中不可用,有效范围由第一64x64块和第二64x64块(例如,第一64x64块的左相邻块)定义。因此,当投影位置在第一64x64块和第二64x64块中的任一内时,投影位置是有效的;而当投影位置在不是第一64x64块和第二64x64块中之一的一个64x64块内时,投影位置是无效的。

MV投影装置124被布置为以实时的方式生成当前帧的块的投影MV(又名MFMV),其中,投影MV可稍后从MFMV缓冲器304中读取,并且在整个参考帧的MV投影完成之前,投影MV被用作用于当前帧的块的MVP确定的时间预测子。

图4示出根据本发明实施例的MV投影装置的图。图1所示的MV投影装置124可使用图4中所示的MV投影装置400来实现。MV投影装置400包括处理电路402和MFMV缓冲器404。例如,处理电路402可由处理器实现,而MFMV缓冲器404可由在其中分配有一个或多个存储空间的静态随机存取内存(static random access memory,简称SRAM)实现。在本发明的一些实施例中,图4中所示的MFMV缓冲器404可充当图3所示的MFMV缓冲器304。

处理电路402被布置为通过将MV投影应用于每个参考帧的一部分的MV而生成当前帧的第一部分的MFMV,并且将当前帧的第一部分的MFMV存储至MFMV缓冲器404;并且还被安排为通过将MV投影应用于每个参考帧的一部分的MV而生成当前帧的第二部分的MFMV,并且将当前帧的第二部分的MFMV存储至MFMV缓冲器404中。当前帧的第二部分与当前帧的第一部分不重叠。在当前帧的第二部分的MFMV由处理电路402生成之前,当前帧的第一部分的MFMV中的至少一个从MFMV缓冲器404中被读取,并参与当前帧的第一部分中包括的至少一个编码解块的运动向量的确定。例如,通过MV投影,三个参考帧的MV被处理以生成当前帧的MFMV。因此,包括在第一参考帧Ref1(例如,图2所示的参考帧206)中的64x64块的MV被存储在参考帧MV缓冲器406中,包括在第二参考帧Ref2(例如,图2所示的参考帧204)的64x64块的MV被存储在参考帧MV缓冲器408中,包括在第三参考帧Ref3(例如,图3所示的参考帧208)的64×64块的MV被存储在参考帧MV缓冲器410中。

参考帧中的所有64x64块将被访问以进行MV投影。假设超级块(super block,简称SB)的大小为64x64。图5示出根据本发明的实施例的通过先前的MV投影操作和随后的MVP确定来访问的相同的MFMV缓冲器404的图。如图5所示,第一参考帧Ref1被划分为例如由参考标号“1”,“2”,…,“24”索引的多个64×64块;第二参考帧Ref2被划分为多个例如由参考标号“1”,“2”,…,“24”索引的64×64块;第三参考帧Ref3被划分为多个例如由参考标号“1”,“2”,…,“24”索引的64×64块;当前帧Fc被划分为多个例如由参考标号“1”,“2”,…,“24”索引的64×64块。由相同参考标号索引的64×64块是同位块。关于应用于第一参考帧Ref1的MV投影,多个64×64块以光栅扫描顺序检查,如参考标号所示1→2→3→4→…→23→24的上升顺序。关于应用于第二参考帧Ref2的MV投影,多个64×64块以光栅扫描顺序检查,如参考标号所示1→2→3→4→…→23→24的上升顺序。关于应用于第三参考帧Ref3的MV投影,多个64×64块以光栅扫描顺序检查,如参考标号所示1→2→3→4→…→23→24的上升顺序。传统的脱机方法将帧级MV投影应用于参考帧,使得在完成整个第一参考帧Ref1的MV投影之后,开始第二参考帧Ref2的MV投影,以及在完成整个第二参考帧Ref2的MV投影之后,开始第三参考帧Ref3的MV投影。另外,在完成所有参考帧的MV投影之后,当前帧的MFMV缓冲器中的MFMV可用于后处理阶段(例如,MVP确定)。与在帧级别执行MV投影的常规脱机方法相反,所提出的实时方法在块级别(更具体地为64x64块级别)执行MV投影。因此,在完成所有参考帧的MV投影之前,MFMV缓冲器404中可用于当前帧Fc的MFMV可被后处理阶段(例如,MVP确定)使用。例如,在由“24”索引的64x64块(即,位于当前帧Fc的最右块列(column)和最底部的块行(row)的最后一个64x64块)的MFMV被生成之前,通过应用于由“23”和“24”索引的64x64参考块所拥有的MV的MV投影,当前帧中可用于当第一64x64块的MFMV中的至少一个从MFMV缓冲器404中被读取,并参与包括在当前帧Fc的先前64×64块中的至少一个编解码块的运动向量的确定(即(MV=MVP+MVD)。所提出的实时方法的更多细节参照附图被描述。

图6示出根据本发明的实施例的由处理电路402以实时的方式执行的第一运动向量投影操作的图。在处理周期P1期间,处理电路402将MV投影应用于第一参考帧Ref1(由“MV_P(BK1_Ref1)”表示)中的第一64x64参考块所拥有的MV以生成MV投影结果,并使用MV投影结果(用“MV_PR(BK1_Ref1)”表示)来更新MFMV缓冲器404。在处理周期P2期间,处理电路402将MV投影应用于第二参考帧Ref2中的第一64x64参考块所拥有的MV(由“MV_P(BK1_Ref2)”表示)以产生MV投影结果,并使用组合的MV投影结果(表示为“MV_PR(BK1_Ref1+BK1_Ref2)”)来更新MFMV缓冲器404,其中,当最新投影结果的投影8x8块位置与先前结果的投影8x8块位置相同时,最新投影结果将重叠/覆盖先前结果。在处理周期P3期间,处理电路402将MV投影应用于第三参考帧Ref3中的第一64x64参考块所拥有的MV(由“MV_P(BK1_Ref3)”表示)以生成MV投影结果,并使用组合的MV投影结果(表示为“MV_PR(BK1_Ref1+BK1_Ref2+BK1_Ref3)”)来更新MFMV缓冲器404,其中,当最新投影结果的投影8x8块位置与先前结果的投影8x8块位置相同时,最新投影结果将重叠/覆盖先前结果。第一参考帧Ref1中的第一64x64参考块,第二参考帧Ref2中的第一64x64参考块和第三参考帧Ref3中的第一64x64参考块是同位块。在完成参考帧Ref1,Ref2,Ref3中所有同位的第一64x64参考块的MV投影之后,MFMV缓冲器404包括MFMV,该些MFMV可被用作当前帧Fc中一个64x64块中包含的编解码块的MVP确定的时间预测子。因此,至少一个MFMV可从MFMV缓冲器404中被读取,并参与当前帧Fc的第一64x64块中包括的至少一个编解码块的运动向量确定,而MV投影仍在继续以确定当前帧Fc中其余的64×64个块的MFMV。

在完成参考帧Ref1,Ref2,Ref3中所有同位的第一64x64参考块的MV投影之后,处理电路402开始另一投影周期以处理在参考帧Ref1,Ref2,Ref3中同位的下个64x64参考块的MV投影。同一参考帧中的第一64x64参考块和第二64x64参考块是按照光栅扫描顺序的连续块。例如,第一64x64参考块和第二64x64参考块可位于同一块行,并且第二64x64参考块是第一64x64参考块的右相邻块。在处理周期P4期间,处理电路402将MV投影应用于第一参考帧Ref1中的第二64x64参考块所拥有的MV(由“MV_P(BK2_Ref1)”表示)以生成MV投影结果,并使用组合的MV投影结果(用“MV_PR(BK2_Ref1+BK1_Ref1+BK1_Ref2+BK1_Ref3)”表示)来更新MFMV缓冲器404,其中,当最新投影结果的投影8x8块位置与先前结果的投影8x8块位置相同时,最新投影结果将重叠/覆盖先前结果。在处理周期P5期间,处理电路402将MV投影应用于第二参考帧Ref2中的第二64x64参考块所拥有的MV(由“MV_P(BK2_Ref2)”表示)以产生MV投影结果,并使用组合的MV投影结果(用“MV_PR(BK2_Ref1+BK2_Ref2+BK1_Ref1+BK1_Ref2+BK1_Ref3)”表示)更新MFMV缓冲器404,其中,当最新投影结果的投影8x8块位置与先前结果的投影8x8块位置相同时,最新投影结果将重叠/覆盖先前结果。在处理周期P6期间,处理电路402将MV投影应用于第三参考帧Ref3中的第二64x64参考块所拥有的MV(由“MV_P(BK2_Ref3)”表示)以产生MV投影结果,并使用组合的MV投影结果(表示为“MV_PR(BK2_Ref1+BK2_Ref2+BK2_Ref3+BK1_Ref1+BK1_Ref2+BK1_Ref3)”)来更新MFMV缓冲器404,其中,当最新投影的投影8x8块位置与先前结果的投影8x8块位置相同时,最新的投影结果将重叠/覆盖先前结果。第一参考帧Ref1中的第二64x64参考块,第二参考帧Ref2中的第二64x64参考块和第三参考帧Ref3中的第二64x64参考块是同位块。在完成参考帧Ref1,Ref2,Ref3中所有同位的第二64x64参考块的MV投影之后,组合的MV投影结果(用“MV_PR(BK2_Ref1+BK2_Ref2+BK2_Ref3+BK1_Ref1+BK1_Ref2+BK1_Ref3)”表示)在MFMV缓冲器404中可用,并包括MFMV,该些MFMV可被用作用于当前帧Fc的一个64×64块中包括的编解码块的MVP确定的时间预测子。因此,至少一个MFMV可从MFMV缓冲器404中被读取,并参与当前帧Fc的一个64x64块中包括的至少一个编码块的运动向量确定,而MV投影仍在继续以确定当前帧Fc中其余64×64块的MFMV。

在图6所示的实施例中,每当完成一个参考帧中的单个64×64块的MV投影时,处理电路402就将MV投影应用于另一参考帧中的单个64×64块。然而,这仅出于说明的目的,并不意味着对本发明的限制。可替代地,每次完成一个参考帧中的多个连续的64x64块的MV投影时,处理电路402可将MV投影应用于另一参考帧中的多个连续的64x64块,其中多个连续的64x64块的数量是不小于2的正整数。

图7示出根据本发明实施例的由处理电路402以实时的方式执行的第二运动向量投影操作的图。在处理周期P1期间,处理电路402将MV投影应用于第一参考帧Ref1中的第一64x64参考块所拥有的MV(由“MV_P(BK1_Ref1)”表示)以生成MV投影结果,并使用MV投影结果(用“MV_PR(BK1_Ref1)”表示)来更新MFMV缓冲器404。在处理周期P2期间,处理电路402将MV投影应用于第一参考帧Ref1中的第二64x64参考块所拥有的MV(由“MV_P(BK2_Ref1)”表示)以生成MV投影结果,并使用组合的MV投影结果(由“MV_PR(BK1_Ref1+BK2_Ref1)”表示)来更新MFMV缓冲器404。第一参考帧Ref1中的第一64x64参考块和第二64x64参考块是按照光栅扫描顺序的连续块。例如,第一64x64参考块和第二64x64参考块可位于第一参考帧Ref1的相同块行,并且第二64x64参考块是第一64x64参考块的右相邻块。

在处理周期P3期间,处理电路402将MV投影应用于第二参考帧Ref2中的第一64x64参考块所拥有的MV(由“MV_P(BK1_Ref2)”表示)以生成MV投影结果,并使用组合的MV投影结果(由“MV_PR(BK1_Ref1+BK1_Ref2+BK2_REF1)”表示)来更新MFMV缓冲器404,其中,当最新投影结果的投影8x8块位置与先前结果的投影8x8块位置相同时,最新投影结果将重叠/覆盖先前结果。在处理周期P4期间,处理电路402将MV投影应用于第二参考帧Ref2中的第二64x64参考块所拥有的MV(由“MV_P(BK2_Ref2)”表示)以产生MV投影结果,并使用组合的MV投影结果(由“MV_PR(BK1_Ref1+BK1_Ref2+BK2_Ref1+BK2_Ref2)”表示)来更新MFMV缓冲器404,其中,当最新投影结果的投影8x8块位置与先前结果的投影8x8块位置相同时,最新投影结果将重叠/覆盖先前结果。第二参考帧Ref2中的第一64x64参考块和第二64x64参考块是按照光栅扫描顺序的连续块。例如,第一64x64参考块和第二64x64参考块可以位于第二参考帧Ref2的相同块行,并且第二64x64参考块是第一64x64参考块的右相邻块。

在处理周期P5期间,处理电路402将MV投影应用于第三参考帧Ref3中的第一64x64参考块所拥有的MV(由“MV_P(BK1_Ref3)表示”)以生成MV投影结果,并使用组合的MV投影结果(由“MV_PR(BK1_Ref1+BK1_Ref2+BK1_Ref3+BK2_Ref1+BK2_Ref2)”)表示)来更新MFMV缓冲器404,其中,当最新投影结果的8x8块的投影8x8块位置与先前结果的投影8x8块位置相同时,最新的投影结果将重叠/覆盖先前结果。

在处理周期P6中,处理电路402将MV投影应用于第三参考帧Ref3中的第二64x64参考块所拥有的MV(由“MV_P(BK2_Ref3)”表示)以生成MV投影结果,并使用组合的MV投影结果(由“MV_PR(BK1_Ref1+BK1_Ref2+BK1_Ref3+BK2_Ref1+BK2_Ref2+BK2_Ref3)”表示)来更新MFMV缓冲器404,其中,当最新投影结果的8x8块的投影8x8块位置与先前结果的投影8x8块位置相同时,最新的投影结果将重叠/覆盖先前结果。第三参考帧Ref3中的第一64x64参考块和第二64x64参考块是按照光栅扫描顺序的连续块。例如,第一64x64参考块和第二64x64参考块可位于第三参考帧Ref3的相同块行,并且第二64x64参考块是第一64x64参考块的右相邻块。

参考帧Ref1,Ref2,Ref3中的第一64x64个参考块是同位块。参考帧Ref1,Ref2,Ref3中的第二64x64参考块是同位块。在完成参考帧Ref1,Ref2,Ref3中所有同位的第一64x64参考块的MV投影之后,MFMV缓冲器404包括MFMV,该些MFMV可被用作用于包含在当前帧Fc的一个64x64块中的编解码块的MVP确定的时间预测子。类似地,在完成参考帧Ref1,Ref2,Ref3中所有同位的第二64x64参考块的MV投影之后,MFMV缓冲器404包括MFMV,该些MFMV可被用作用于包含在当前帧Fc的一个64x64块中的编解码块的MVP确定的时间预测子。因此,至少一个MFMV可从MFMV缓冲器404中读取,并参与当前帧Fc的一个64x64块中包括的至少一个编码块的运动向量确定,而MV投影仍在继续以确定当前帧Fc中的其余64×64块的MFMV。

图8示出根据本发明实施例的由处理电路以实时的方式执行的第三运动向量投影操作的图。如上所述,当MV投影被应用于参考帧中的64x64参考块的MV时,有效范围由当前帧中的同位64x64块、当前帧中该同位64x64块的左相邻块和当前帧中该同位64x64块的右相邻块定义。在该实施例中,通过组合从参考帧中的可能的投影块导出的MV投影结果,当前帧中的一个64×64块的MFMV可以以实时的方式获得。参照图8,当前帧中的64x64块802,第一参考帧中的64x64参考块804_2,第二参考帧中的64x64参考块806_2以及第三参考帧中的64x64参考块808_2是同位块。根据有效范围限制,用于在目标块(例如64x64块802)的块位置提供MFMV(投影MV)的可能的投影块包括第一参考帧中的64x64参考块804_1、804_2、804_3,第二参考帧中的64x64参考块806_1、806_2、806_3和第三参考帧中的64x64参考块808_1、808_2、808_3,其中不同参考帧中的64x64参考块804_1、806_1、808_1和当前帧中的64x64块802的左相邻块是同位块,以及不同参考帧中的64x64参考块804_3、806_3、808_3和当前帧中的64x64块802的右相邻块是同位块。处理电路402参考64x64参考块804_1-804_3、806_1-806_3、808_1-808_3的MV,以在64x64块802的块位置处生成MV投影结果,并根据从当前帧中64x64块802的块位置处的MV投影结果导出的组合结果,生成当前帧的64x64块802的MFMV,其中第一参考帧中的64x64参考块804_1-804_3的MV从一个参考帧MV缓冲器(例如,参考帧MV缓冲器406)读取,第二参考帧中的64x64参考块806_1-806_3的MV是从另一个参考帧MV缓冲器(例如,参考帧MV缓冲器408)读取,以及第三参考帧中的64x64参考块808_1-808_3的MV从又一个参考帧MV缓冲器(例如,参考帧MV缓冲器410)读取。应当注意,当投影8x8块位置相同时,第二参考帧的64×64参考块806_1-806_3中的8×8块的投影结果将重叠/覆盖第一参考帧的64×64参考块804_1-804_3中的8×8块的投影结果。当投影的8x8块位置相同时,第三参考帧的64x64参考块808_1-808_3中的8x8块的投影结果将重叠/覆盖64x64第一参考帧的64×64参考块804_1-804_3中的8x8块的投影结果。当投影的8x8块位置相同时,第三参考帧的64x64参考块808_1-808_3中的8x8块的投影结果将重叠/覆盖第二参考帧的64×64参考块806_1-806_3中的8x8块的投影结果。

为了获得当前帧中的64x64块802的右相邻块的MFMV,基于以下事实:用于在64x64块802的右相邻块的块位置提供MFMV(投影MV)的可能的投影块包括第一参考帧中的64x64参考块804_2和804_3,第二参考帧中的64x64参考块806_2和806_3以及第三参考帧中的64×64参考块808_2和808_3,采用图8中所示的实时方法的处理电路402,再次从一个参考帧MV缓冲器(例如,参考帧MV缓冲器406)读取第一参考帧的64x64参考块804_2和804_3的MV,再次从另一参考帧MV缓冲器(例如,参考帧MV缓冲器408)读取第二参考帧的64x64参考块806_2和806_3的MV,以及再次从另一参考帧MV缓冲器(例如,参考帧MV缓冲器410)读取第二参考帧的64x64参考块808_2和808_3的MV。

当根据常规的脱机方法在帧级别上执行MV投影操作时,帧级别的MV投影一个接一个地被应用于第一参考帧,第二参考帧和第三参考帧。因此,当投影的8x8块位置相同时,第二参考帧的一个64x64参考块中的8x8块的投影结果将重叠/覆盖第一参考帧的一个64x64参考块中的8x8块的投影结果,当投影的8x8块位置相同时,第三参考帧的一个64x64参考块中的8x8块的投影结果将重叠/覆盖第一参考帧的一个64x64参考块中的8x8块的投影结果。当投影的8x8块位置相同时,第三参考帧的一个64x64参考块中的8x8块的投影结果将重叠/覆盖第二参考帧的一个64x64参考块中的8x8块的投影结果。关于图6和图7所示的实施例,MV投影操作以块级别而不是帧级别执行。因此,不同参考帧中的64×64参考块可以交织的方式经历MV投影。因此,有可能由于错误的投影结果替代了正确的结果而发生了错误的重叠/覆盖。

图9示出图6所示的实施例遇到的可能的重叠/覆盖场景的图。如上所述,当MV投影被应用于参考帧中64x64参考块的MV时,有效范围由当前帧中同位的64x64块,当前帧的该同位的64x64块的左相邻块以及当前帧的同位的64x64块的右相邻块定义。因此,当块级MV投影被应用于不同参考帧中同位的当前64×64参考块时,MFMV缓冲器404具有存储区域902,存储区域904和另一存储区域902。该存储区域902被用来存储当前帧的当前64x64块的左相邻块中的8x8块位置处投影MV,该存储区域904被用来存储当前帧的当前64x64块中的8x8块位置处投影MV,以及该另一存储区域902被分配用于存储当前帧的当前64x64块的右相邻块中的8x8块位置处投影MV。在完成应用于不同参考帧中同位的先前64x64参考块的块级MV投影之后,块级MV投影被应用于不同参考帧中同位的当前64x64参考块。参照图9,应用于第三参考帧Ref3中的先前参考块的MV投影的投影结果具有在左相邻块中的8x8块位置处投影的第一MFMV,以及应用于第一参考帧Ref1中的当前参考块的MV投影的投影结果具有在该左相邻块中的相同的8x8块位置处投影的第二MFMV。因此,根据图6的实施例,存储在存储区域902中的第一MFMV被第二MFMV重叠/覆盖,从而导致错误的重叠/覆盖。为了解决这个问题,本发明还提出使用优先级表或通过K个64×64参考块(K≥2)来确保一个参考帧的MV投影进度领先于另一参考帧的MV投影进度。

图10示出根据本发明的实施例的利用优先级表的块级运动向量投影操作的图。图6的示例可被修改为包括优先级表1002。处理电路402还被布置为在其内部存储器中构建优先级表1002,其中优先级表1002记录64x64块中不同8x8块位置的表值。例如,优先级表1002可仅以光栅扫描顺序记录当前帧的三个连续的64x64块中不同的8x8块位置的表值。在该实施例中,当块级MV投影被应用于不同参考帧中的同位当前64×64参考块时,由处理电路402建立和维护的优先级表1002具有子表1004,子表1006和子表1008。该子表1004记录MFMV的表值,该MFMV被投影在当前帧中当前64x64块的左相邻块中的8x8块位置处并被存储至MFMV缓冲器404的存储区域902中;该子表记录MFMV的表值,该MFMV被投影在当前帧中当前64x64块的8x8块位置处并被存储至存储区域904中;该子表1008记录MFMV的表值,该MFMV被投影在当前帧中当前64x64块的右相邻块中的8x8块位置处并被存储至存储区域906中。具体地说,当一个8x8块的MFMV从参考帧的MV投影导出并被存储至MFMV缓冲器404中时,通过参考帧的帧索引,8x8块位置的相关联表值被设置。在优先级表1002中保持的每个表值被参考以判断是否允许重叠/覆盖存储在MFMV缓冲器404中的MFMV。例如,处理电路402将MV投影应用于第一参考帧中的第一64x64参考块所拥有的MV,以生成第一MV投影结果,其中,第一参考帧中的第一64x64参考块和当前帧中的第一64x64块是同位块,并且第一MV投影结果包括当前帧中投影的8x8块位置处的第一MFMV。接下来,处理电路402将第一MFMV存储至MFMV缓冲器404中,并通过第一参考帧的帧索引来设置优先级表1002的表值。在第一MV投影结果被生成之后,处理电路402将MV投影应用于第二参考帧中的第二64x64参考块所拥有的MV,以产生第二MV投影结果,其中第二参考帧中的第二64x64参考块和当前帧中的第二64x64块是同位块,第一64x64块和第二64x64块位于相同的块行,第二MV投影结果包括第二MFMV,该第二MFMV位于当前帧中相同的投影8x8块位置。接下来,处理电路402将优先级表1002的记录的表值与第二参考帧的帧索引进行比较,以确定是否将第二MFMV存储至MFMV缓冲器404中以覆盖存储在MFMV缓冲器404中的第一MFMV。

参照图10,应用于第三参考帧Ref3中的先前参考块的MV投影的投影结果具有左相邻块中的投影8×8块位置处的第一MFMV。假设第一MFMV被允许存储至MFMV缓冲器404中。子表1004中的关联表值由第三参考帧Ref3的帧索引“3”设置。应用于第一参考帧Ref1中的当前参考块的MV投影的投影结果具有左相邻块中相同的投影8x8块位置处的第二MFMV。由于相关联的表值由大于第一参考帧Ref1的帧索引“1”的帧索引“3”设置,因此在MFMV缓冲器404的存储区域902中缓冲的第一MFMV被阻止由第二MFMV重叠/覆盖。这样,通过使用优先级表1002,错误的重叠/覆盖被避免。

如图10进一步所示,应用于第二参考帧Ref2中的先前参考块的MV投影的投影结果具有在当前帧的当前64x64块中的投影8x8块位置处的第三MFMV。假设第三MFMV被允许存储至MFMV缓冲器404中。子表1006中的相关联表值由第二参考帧Ref2的帧索引“2”设置。应用于第三参考帧Ref2中的当前参考块的MV投影的投影结果具有在当前帧的当前64x64块中的相同的投影8x8块位置处的第四MFMV。由于相关联的表值由小于第三参考帧Ref3的帧索引“3”的帧索引“2”设置,在MFMV缓冲器404的存储区域904中缓冲的第三MFMV被改变为第四MFMV。

图11示出根据本发明的实施例的块级运动向量投影操作的图,该块级运动向量投影操作通过K个64×64参考块(K≥2)确保一个参考帧的MV投影进度领先于另一参考帧的MV投影进度。图6的示例可被修改以采用前导块(leading block)的概念,以避免错误的重叠/覆盖。在三个参考帧Ref1,Ref2和Ref3中64x64参考块的MV投影顺序由参考标号所示的1→2→3→…→16→17上升顺序表示。因此,直到应用于第一参考帧Ref1中的64x64参考块BK1-BK3的MV的MV投影完成后,应用于第二参考帧Ref2中的第一64x64参考块BK1的MV的MV投影才开始;并且直到应用于第一参考帧Ref1中的64x64参考块BK1-BK5的MV的MV投影和应用于第二参考帧Ref2中的64x64参考块BK1-BK3的MV的MV投影完成后,应用于第三参考帧Ref3中的第一64x64参考块BK1的MV的MV投影才开始。具体地,处理电路402将MV投影应用于第一选择参考帧(例如,Ref1和Ref2之一)中的第M参考块所拥有的MV,其中,第一选择参考帧中的第M参考块和当前帧中的块行(row)的第M参考块是同位块。在第一选择参考帧中的第M参考块的MV投影完成后,处理电路402将MV投影应用于不用于第一选择参考帧的第二选择参考帧(例如,Ref2和Ref3之一)中的第N参考块所拥有的MV,其中第二选择参考帧中的第N参考块与当前帧中的块行的第N块为同位块。根据前导块的概念,M和N是正整数,M大于N,并且除了该块行中最左边的(M-N)个块,该块行中的任一块都是第M块。例如,(M-N)的值等于或大于2,具体取决于实际的设计考虑。

如上所述,当MV投影被应用于参考帧中的64x64参考块的MV时,有效范围由当前帧中的同位64x64块,当前帧的同位64x64的左相邻块,以及当前块中的同位64x64的右相邻块定义。当将MV投影被应用于不同参考帧Ref1-Ref3中的同位的64×64参考块BK1时,存储区域A0和A1被访问以进行MFMV存储。当MV投影被应用于不同参考帧Ref1-Ref3中同位的64×64参考块BK2时,存储区域A0,A1和A2被访问以进行MFMV存储。当MV投影被应用于不同参考帧Ref1-Ref3中同位的64×64参考块BK3时,存储区域A1,A2和A3被访问以进行MFMV存储。当MV投影被应用于不同参考帧Ref1-Ref3中同位的64×64参考块BK4时,存储区域A2,A3和A4被访问以进行MFMV存储。当MV投影被应用于不同参考帧Ref1-Ref3中同位的64×64参考块BK5时,存储区域A3,A4和A5被访问以进行MFMV存储。当MV投影被应用于不同参考帧Ref1-Ref3中同位的64×64参考块BK6时,存储区域A4,A5和A6被访问以进行MFMV存储。当MV投影被应用于不同参考帧Ref1-Ref3中的64×64参考块BK7时,存储区域A5,A6和A7被访问以进行MFMV存储。

参照图11,当MV投影当前被应用于第三参考帧Ref3中的64x64参考块BK3所拥有的MV时,存储区域A1,A2和A3可被访问以缓冲从第三参考帧Ref3中的64x64参考块BK3产生的投影结果。由于第一参考帧Ref1中的64x64参考块BK1-BK5所拥有的MV的MV投影已经完成,并且第二参考帧Ref2的64x64参考块BK1-BK5所拥有的MV的MV投影已经完成,从第三参考帧Ref3中的64x64参考块BK3的MV投影生成并存储在MFMV缓冲区404中的任一投影MV不会被从包括在第一参考帧Ref1和第二参考帧Ref2中的任一的64x64参考块BK1-BK5的MV投影导出的投影MV覆盖。这样,通过确保一个参考帧的MV投影进度比另一参考帧的MV投影进度领先两个或更多64x64参考块,错误的重叠/覆盖可被避免。

参照图11,当MV投影当前被应用于第二参考帧Ref2中的64x64参考块BK6所拥有的MV时,存储区域A4,A5和A6可被访问以缓冲从第二参考帧Ref2中的64x64参考块BK6产生的投影结果。由于第一参考帧Ref1中64x64参考块BK4-BK8拥有的MV的MV投影已经完成,从第二参考帧Ref2中64x64参考块BK6的MV投影生成并存储在MFMV缓冲器404中的任一投影MV不被从包括在第一参考帧Ref1中的64×64参考块BK4-BK8的MV投影产生的投影MV所覆盖。这样,通过确保一个参考帧的MV投影进度比另一参考帧的MV投影进度领先两个或更多64x64参考块,错误的重叠/覆盖可被避免。

一帧可被划分为多个超级块(super block,简称SB)。例如,每个SB可以是AV1/VP9的一个块或多个块。对于另一示例,每个SB可以是最大编码单元(largest coding unit,简称LCU)或用于高效视频编码(High Efficiency Video Coding,简称HEVC)的多个LCU。MV投影顺序由64x64块的扫描顺序设置。但是,SB大小的扫描顺序可能与不同SB大小的扫描顺序不同。这也表明将MFMV存储至MFMV缓冲器的过程不相同。图12示出根据本发明的实施例的64×64SB大小的扫描顺序的图。由于SB是64x64块,因此同一帧中的64x64块以光栅扫描顺序(也是MV投影顺序)访问。MV投影顺序由图12中所示的箭头符号指示。图13示出根据本发明的实施例的SB大小为128×128的扫描顺序的图。由于一个SB可包括四个64x64块,因此同一帧中的SB以光栅扫描顺序访问,并且同一SB中的64x64块以光栅扫描顺序访问。MV投影顺序由图13中所示的箭头符号指示。

由于将MVMV存储至SB大小为128x128的MFMV缓冲器中的过程不同于将MFMV存储至SB大小为64x64的MFMV缓冲器中的过程,因此使用具有单个存储空间的MFMV缓冲器来处理SB大小为128x128的存储过程可能需要复杂的硬件设计。

图14示出根据本发明的实施例的MFMV缓冲器设计的图,该MFMV缓冲器设计使用单个存储空间来处理SB大小为64×64的存储过程。MFMV缓冲器可由具有由连续内存地址定义的单个存储空间的SRAM来实现。图12所示的MV投影顺序可被采用。

当MV投影被应用于块索引为“1”的64x64参考块时,存储索引为“1”的存储区域在MFMV缓冲器440中被分配,以存储当前64x64块中的8x8块位置处投影MV,并且存储索引为“2”的存储区域在MFMV缓冲器440中被分配,以存储在右相邻块中的8×8块位置处投影MV。

当MV投影被应用于块索引为“2”的64x64参考块时,存储索引为“1”的存储区域被用来存储在左相邻块中的8x8块位置处的投影MV,存储索引为“2”的存储区域被用于存储在当前64x64块中的8x8块位置处的投影MV,并且存储索引为“3”的存储区域在MFMV缓冲器440中被分配,以存储在右相邻块中的8x8块位置处的投影MV。

当MV投影被应用于块索引为“3”的64x64参考块时,存储索引为“2”的存储区域被用来存储在左相邻块中的8x8块位置处的投影MV,存储索引为“3”的存储区域被用来存储在当前64x64块中的8x8块位置处的投影MV,并且存储索引“4”的存储区域在MFMV缓冲器440中被分配,以存储在右相邻块中的8x8块位置处的投影MV。另外,存储在存储索引为“1”的存储区域中的MFMV可被访问,以用于随后的MV处理(例如,MVP确定和MV确定)。

当MV投影被应用于块索引为“4”的64x64参考块时,存储索引为“3”的存储区域被用来存储在左相邻块中的8x8块位置处的投影MV,存储索引为“4”的存储区域被用来存储在当前64x64块中的8x8块位置的投影MV,存储索引为“5”的存储区域是通过释放和重用存储索引为“1”的原始存储区域而得出的,并且被用来存储右相邻块中的8x8块位置投影的MV。存储索引为“2”的存储区域中的MFMV可被读取以用于随后的MV处理(例如,MVP确定和MV确定)。

图15示出根据本发明实施例的MFMV缓冲器设计的图,该MFMV缓冲器设计使用单个存储空间来处理SB大小为128x128的存储过程。MFMV缓冲器可由具有由连续内存地址定义的单个存储空间的SRAM来实现。图13所示的MV投影顺序可被采用。

当MV投影被应用于块索引为“1”的64x64参考块时,存储索引为“1”的存储区域在MFMV缓冲器440中被分配,以存储在当前64x64的8x8块位置处的投影MV,并且存储索引为“2”的存储区域在MFMV缓冲器440中被分配,以存储右相邻块中的8×8块位置的投影MV。

当MV投影被应用于块索引为“2”的64x64参考块时,存储索引为“1”的存储区域被用来存储左相邻块中8x8块位置处的投影MV,存储索引为“2”的存储区域被用来当前64x64块中8x8块位置处的投影MV,并且存储索引“5”的存储区域在MFMV缓冲器440中被分配,以存储右相邻块中8x8块位置处的投影MV。

当MV投影被应用于块索引为“3”的64x64参考块时,存储索引为“3”的存储区域在MFMV缓冲器440中被分配,以存储当前64x64块中8x8块位置处块的投影MV,并且存储索引为“4”的存储区域在MFMV缓冲器440中被分配,以存储右相邻块中8×8块位置处投影MV。

当MV投影被应用于块索引为“4”的64x64参考块时,存储索引为“3”的存储区域被用来存储在左相邻块中8x8块位置处的投影MV,存储索引为“4”的存储区域被用来存储当前64x64块中8x8块位置处的投影MV,并且存储索引为“7”的存储区域在MFMV缓冲器440中被分配,以存储右相邻块中8×8块位置处投影MV。

当MV投影被应用于块索引为“5”的64x64参考块时,由于存储区域在单个存储单元的连续内存地址中被分配和存储索引为“4”的存储区域的结束地址后面没有跟随存储索引为“5”的存储区域的起始地址这一事实,需要地址回跳(address jump back)控制来执行存储过程。但是,地址回跳控制对于硬件设计而言很复杂。为了解决这个问题,本发明提出实现具有两个存储空间的MFMV缓冲器。

图16示出根据本发明的实施例的MFMV缓冲器的图。当SB大小被设置为128×128时,图1中所示的MFMV缓冲器404可由图16所示的MFMV缓冲器1600实现。MFMV缓冲器1600包括两个存储空间1602和1604。当前帧被分为奇数编号的块行和偶数编号的块行,每个奇数编号的块行由64×64的块组成,每个偶数编号的块行由64×64的块组成。SB大小为128x128的MFMV存储过程被分为两个存储过程,一个存储过程被用于奇数编号的块行,另一个存储过程被用于偶数编号的块行。SB大小为128x128的MFMV存储过程可被视为两个SB大小为64x64的存储过程。在SB大小被设置为128×128的条件下,处理电路402仅将对位于当前帧的奇数编号的块行的每个64×64块生成的MFMV存储至存储空间1602中,并仅将对位于当前帧的偶数编号的块行的每个64×64块生成的MFMV存储至存储空间1604中。

请结合图17来参考图15。图17示出根据本发明实施例的MFMV缓冲器设计的图,该MFMV缓冲器设计使用两个存储空间来处理SB大小为128x128的存储过程。MFMV缓冲器1600可由具有两个存储空间1602和1604的SRAM来实现,每个存储空间1602和1604由连续的内存地址来定义。图15所示的MV投影顺序可被采用。

当MV投影被应用于块索引为“1”的64x64参考块时,存储索引为“1”的存储区域在存储空间1602中被分配,以存储当前64x64块中8x8块位置处的投影MV,存储索引为“2”的存储区域在存储空间1604中被分配,以存储右相邻块中8×8块位置处的投影MV。

当MV投影被应用于块索引为“2”的64x64参考块时,存储索引为“1”的存储区域被用来存储左相邻块中8x8块位置处的投影MV,存储索引为“2”的存储区域被用来存储当前64x64块中8x8块位置处的投影MV,存储索引为“5”的存储区域在存储空间1602中被分配,以存储右相邻块中8×8块位置处的投影MV。

当MV投影被应用于块索引为“3”的64x64参考块时,存储索引为“3”的存储区域在存储空间1604中被分配,以存储当前64x64块中8x8块位置处的投影MV,并且存储索引为“4”的存储区域在存储空间1604中被分配,以存储右相邻块中8×8块位置处的投影MV。

当MV投影被应用于块索引为“4”的64x64参考块时,存储索引为“3”的存储区域被用来存储左相邻块中的8x8块位置处的投影MV,存储索引为“4”的存储区域被用来存储当前64x64块中的8x8块位置处的投影MV,并且存储索引为“7”的存储区域在存储空间1604中被分配,以存储右相邻块中8×8块位置处的投影MV。

当MV投影被应用于块索引为“5”的64x64参考块时,存储索引为“2”的存储区域被用来存储左相邻块中8x8块位置处的投影MV,存储索引为“5”的存储区域被用来存储当前64x64块中8x8块位置处的投影MV,并且存储索引“6”的存储区域在存储空间1602中被分配,以存储右相邻块中8×8块位置处的投影MV。由于存储索引为“4”的存储区域和存储索引为“5”的存储区域被分配在单独的存储空间中,因此不需要对其中在连续内存地址中分配了存储区域的一个存储空间进行地址回跳控制。另外,存储索引为“1”的存储区域中存储的MFMV可从存储空间1602中读取,以用于随后的MV处理(例如,MVP确定和MV确定)。

当MV投影被应用于块索引为“6”的64x64参考块时,存储索引为“5”的存储区域被用来存储左相邻块中8x8块位置处的投影MV,存储索引为“6”存储区域被用来存储当前64x64块中8x8块位置处的投影MV,而存储索引为“9”的存储区域是通过释放和重用存储索引为“1”的原始存储区域而得出的并且被用来存储在右相邻块中8x8块位置处的投影MV。另外,存储索引为“2”的存储区域中的MFMV可被读取,以用于随后的MV处理(例如,MVP确定和MV确定)。

参照图17,无需地址回跳控制就可访问存储空间1602/1604的连续内存地址中分配的存储区域。这样,处理电路402的硬件设计可被简化。

在以上实施例中,所提出的实时MV投影方案和相关的改进技术(例如,优先级表和前导块)可由视频解码器采用。然而,这仅出于说明的目的,并不意味着对本发明的限制。实际上,所提出的动态MV投影方案和相关的改进技术(例如,优先级表和前导块)也由视频编码器采用。

所属技术领域的技术人员易知,可在保持本发明的教导内容的同时对装置及方法做出诸多修改及变动。因此,以上公开内容应被视为仅受随附权利要求的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号