CN101127902B - 具有用于运动向量存储的地址管理机制的帧间预测处理器 - Google Patents

具有用于运动向量存储的地址管理机制的帧间预测处理器 Download PDF

Info

Publication number
CN101127902B
CN101127902B CN2007100004017A CN200710000401A CN101127902B CN 101127902 B CN101127902 B CN 101127902B CN 2007100004017 A CN2007100004017 A CN 2007100004017A CN 200710000401 A CN200710000401 A CN 200710000401A CN 101127902 B CN101127902 B CN 101127902B
Authority
CN
China
Prior art keywords
motion vector
address
piece
memory location
calculator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007100004017A
Other languages
English (en)
Other versions
CN101127902A (zh
Inventor
仲石英典
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Socionext Inc
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Publication of CN101127902A publication Critical patent/CN101127902A/zh
Application granted granted Critical
Publication of CN101127902B publication Critical patent/CN101127902B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种用于处理可变尺寸宏块以实现高速帧间预测的设备。预测值计算器根据与当前宏块相邻的其他宏块的运动向量,确定当前宏块的运动向量预测值(MVP)。为此,预测值计算器向地址计算器指定相邻宏块。地址计算器基于被指定的宏块的块尺寸来计算每个被指定的相邻宏块的向量存储器地址。预测值计算器从接收到的地址中读出运动向量,并确定当前宏块的MVP。

Description

具有用于运动向量存储的地址管理机制的帧间预测处理器
技术领域
本发明涉及用于根据其他帧预测帧的设备和方法,并且涉及使用这种设备和方法的视频编码和解码设备。更具体而言,本发明涉及基于可变尺寸的块执行视频帧的帧间预测的帧间预测处理器和其方法、视频编码设备以及视频解码设备。 
背景技术
数字视频压缩技术被广泛用于许多应用中。MPEG和H.264是该技术领域中的标准规范,其中MPEG代表“运动图片专家组”。用在这些标准中的编码和解码算法将每个给定图片划分为小的区域,并且利用运动补偿技术处理这些区域。这种区域被称为“宏块”(macroblock)。视频编码过程涉及帧内预测和帧间预测。帧内预测通过利用正交变换、量化和其他数据处理算法减少了单个帧内的冗余。另一方面,帧间预测通过对运动补偿残余(即,当前帧和经运动补偿的参考帧之间的差)编码减少了连续帧之间的冗余。所得到的视频数据随后被进行熵编码以用于传输或存储。视频解码过程反转上述步骤以从经压缩的视频中重构原始视频。 
这种视频编码算法的大部分工作是计算运动向量以用于帧间预测。因此,希望开发一种更快速和更有效的运动向量计算方法。一种方法例如在日本未审查专利申请公开No.2004-266731中提出。所提出的视频编码方法通过选择性地存储已被确定为用在下一经运动补偿的帧间编码中的有限数目的参考宏块,减轻了对存储器容量的需求。 
为了提高用于包含边(edge)和框(outline)的宏块的运动向量预测的精度,某些现有的编码算法将这种宏块分割为更小的块,并且针对每个块计算运动向量。例如,H.264支持将16×16像素的基本宏块按需要划分为各种块尺寸(包括4×4像素的子分区)的宏块分区。
图24示出了在H.264中定义的块尺寸,其中箭头指示处理顺序。在图24的最上部示出了尺寸为16×16像素的基本宏块91。在该规范中,块的尺寸被适当地指定为代表宽度×高度的前缀(如“16×16宏块91”)。16×16基本宏块91可被垂直分区为两个16×8宏块92,或被水平分区为两个8×16宏块93,或被以两种方式同时分区为四个8×8宏块94。16×8宏块92被从上到下地加以处理。8×16宏块93被从左到右地加以处理。8×8宏块94被从左上到右上,然后从左下到右下地加以处理。 
H.264还允许8×8宏块94被划分为更小的分区,称为“子宏块”。上述尺寸的前缀也可被应用于这些子宏块。在图24所示的示例中,左上8×8宏块94被划分为两个8×4子宏块95a,右上8×8宏块94被划分为两个4×8子宏块95b,右下8×8宏块94被划分为四个4×4子宏块95c。子宏块假定按与在上述宏块分区中相同的顺序加以处理。 
从上文中可见,视频编码设备被允许使用更小的块来进行运动补偿,以更好地跟踪视频中对象的更快和/或更精细的运动。然而,该技术的使用导致运动向量的编码数据量增大。因此,若干研究者提出了一种视频编码设备,该设备可以通过根据用在运动向量预测中的宏块尺寸动态确定虚拟样本的精度,从而减少产生虚拟样本所需的存储器带宽。例如见日本未审查专利申请公开No.2004-48552。这种现有帧间预测技术的一个缺点是必须根据最小块尺寸对参考图片数据公式化,以使得其可以应对各种尺寸的宏块。 
视频编码设备计算与每个个别宏块相对应的运动向量(在适当的情况下缩写为“MV”),然后根据所计算的当前宏块的周围宏块的运动向量确定当前宏块的运动向量预测值(在适当的情况下缩写为“MVP”)。视频编码设备随后对MV和MVP之间的运动向量差(在适当的情况下缩写为“MVD”)编码,并将其与宏块信息一起输出作为经编码的视频数据流。该视频流被视频解码设备接收。视频解码设备对经编码的MVD和宏块信息解码,并根据MVD和MVP计算运动向量,其中宏块的MVP可以根据已经被解码的周围块的运动向量确定。利用这些运动向量,视频解码设备重构原始视频流。
更具体而言,视频解码设备以以下方式产生运动向量。图25是传统的视频解码设备中的运动向量计算器的框图。该视频解码设备具有存储器901、MVP计算控制器902、运动向量计算控制器903、4×4块存储处理器904、MB-A向量存储管理器905和MB-BCD向量存储管理器906。符号“MB-A”指相邻宏块A,“MB-BCD”指相邻宏块B、C和D(将在下面描述)。存储器901提供向量存储位置以存储与最小尺寸块(即,4×4子宏块)相对应的运动向量以供以后参考。这些向量存储位置被用于存储当前被处理的宏块的运动向量,以及已对与当前宏块相邻的宏块计算的运动向量。 
在操作中,图示的视频解码设备在接收到以下几条信息后开始产生运动向量:宏块尺寸、子宏块尺寸和经解码的MVD。MVP计算控制器902读出与当前宏块相邻的宏块的运动向量。基于这些运动向量,MVP计算控制器902产生当前宏块的MVP。这里,MVP计算控制器902以最小块尺寸为基础指定要读取哪些相邻块。运动向量计算控制器903随后从所计算的MVP和经解码的MVD中再现运动向量。对于每个4×4像素块(即,最小块尺寸),4×4块存储处理器904在为当前宏块保留的向量存储位置上复制经再现的运动向量。存储器901还提供向量存储位置以存储所计算的相邻宏块的运动向量,与当前宏块的情形类似,这些向量存储位置是以最小块尺寸为基础保留的。MB-A和MB-BCD向量存储管理器905和906利用相邻宏块的运动向量填充这些向量存储位置(假定4×4最小块尺寸)。 
图26示出了16×16宏块910和其相邻宏块,其中运动向量被扩展。当前被处理的宏块由符号“Cu”指代,其周围宏块被称为“MB-A”(紧挨着左边的)、“MB-B”(紧挨着上面的)、“MB-C”(对角线右上角)、“MB-D”(对角线左上角)。当读取参考运动向量时,MVP计算控制器902以最小块为基础指定这些相邻宏块。 
在图26的示例中,当前焦点(focus)在16×16宏块910上。则其相邻宏块MB-A是4×4子宏块911,在当前宏块910的左侧的四个子宏块的最上部。类似地,MB-B是4×4子宏块912,在当前宏块910的紧挨着上 面的四个子宏块的最左侧。MB-C是4×4子宏块913,位于当前宏块910的右上角的对角线上方。MB-D是4×4子宏块914,位于当前宏块910的左上角的对角线上方。根据针对这些子宏块计算的运动向量确定当前宏块910的MVP,然后根据确定的MVP和给定的MVD计算当前宏块910的运动向量MV0。4×4块存储处理器904将所计算的运动向量MV0保存在与当前宏块910相对应的多个向量存储位置910-1中。 
如上所述,多个向量存储位置910-1被保留在存储器901中以容纳与最小尺寸块数目相等的运动向量。更具体而言,预备了十六个向量存储位置,假定尺寸为16×16像素的宏块被分区为4×4像素的最小尺寸块。4×4块存储处理器904将MV0存储到所有十六个向量存储位置中。(注意,图26只示出了向量存储位置和宏块之间的逻辑关系,而不是存储器区域的物理布置。) 
图26中所示的配置将所计算的运动向量MV0与构成当前宏块910的每一个子宏块相关联。当焦点移到下一宏块时,宏块910随后将被参考作为针对新的当前宏块的相邻宏块。例如,宏块910的右上子宏块现在被参考作为新的当前宏块的MB-A。图26的逻辑配置允许该MB-A的运动向量被从相应的向量存储位置911-1读出。类似地,宏块910的左下子宏块在以后的处理中可被参考作为MB-B或MB-C,在这种情形中MB-B和MB-C的运动向量可以从存储器901中的向量存储位置912-1取得。宏块910的右下子宏块可被参考作为MB-D,在这种情形中其运动向量可以在向量存储位置914-1处得到。 
图27示出了与16×8宏块相邻的宏块。图示的16×8宏块921和922是16×16基本宏块的上分区和下分区。假定当前焦点在上16×8宏块921上。随后参考四个相邻宏块MB-A921a、MB-B921b、MB-C921c和MB-D921d的现有运动向量计算该宏块的运动向量。当焦点移到下16×8宏块922上时,参考另一组相邻宏块MB-A922a、MB-B922b、MB-C922c和MB-D922d处的现有运动向量计算其运动向量。注意,与相邻宏块MB-B922b相对应的运动向量已被计算作为上16×8宏块921的运动向量。 
从以上示例中可见,传统的方法在与4×4子宏块相对应的向量存储 位置中保存了先前已计算的运动向量的多个拷贝。这些存储的运动向量可以在以后用于计算另一宏块的运动向量。 
图28A和28B示出了运动向量是如何在多个向量存储位置中复制的。具体而言,图28A示出了写入16×16宏块的运动向量的序列,图28B示出了写入16×8宏块的运动向量的序列。 
在16×16宏块的情形中,针对一个基本宏块产生一个运动向量MV0,并且该运动向量MV0被写入在十六个向量存储位置中。在图28A的示例中可见,写序列由写使能信号(EN)的上升沿触发以在将写地址(WAD)从0增大到15的同时写入相同的运动向量MV0。该操作允许后续的运动向量计算过程从这十六个地址中的任何一个取得相同的MV0。 
在16×8宏块的情形中,针对16×16基本宏块的上半部分和下半部分计算两个运动向量MV0和MV1。MV0被写入在与上16×8宏块921(图27)相对应的向量存储位置中,而MV1被写入在与下16×8宏块922(图27)相对应的向量存储位置中。如图28B所示,由EN的上升沿触发的向量写序列开始通过将WAD从0增大到7将MV0写入到前八个向量存储位置中。紧接着,另一系列八个存储器周期通过将WAD从8增大到15将MV1写入到后八个向量存储位置中。因此,可以通过指定范围从0到7的地址,从与上16×8宏块921相对应的向量存储位置中取得MV0。另外,可以通过指定范围从8到15的地址,从与下16×8宏块922相对应的向量存储位置中取得MV1。 
由于先前计算的运动向量的多个拷贝被存储在与16×16宏块相对应的向量存储位置中,因此后续对于其他宏块的处理可以在这些向量存储位置中的任何一个处得到该参考运动向量。然而,将运动向量重复地写入与16×16宏块相对应的所有向量存储位置是费时的。这对于其他尺寸和形状的宏块来说也是一样的。 
返回图25,MB-A向量存储管理器905将相邻宏块MB-A的数据存储在被保留作为存储器901的一部分的存储位置中,以供后续处理中使用。在假定宏块被分区为4×4子宏块的情形中,也必需复制数据。该假设导致运动向量计算的处理时间增大。
H.264的帧间编码允许在前向和后向两个方向上使用多个参考帧以提高预测精度。该特征必然需要更大数目的向量存储位置。随后屏幕尺寸或像素数目的增大,视频编码和解码设备将不得不处理更大数目的宏块。从而,在多个位置中复制运动向量的任务将越来越费时。因此,需要开发一种能加速MVP计算从而可以以高精度预测具有大图片尺寸的视频帧的新技术。 
发明内容
考虑到上述内容,本发明的目的是提供一种用于处理可变尺寸宏块以实现高速帧间预测的设备和方法。本发明的另一个目的是提供一种采用所提出的帧间预测设备的视频编码设备和视频解码设备。 
为了实现上述第一目的,本发明提供了一种以块为基础执行视频帧的帧间预测的帧间预测处理器。该帧间预测处理器包括以下元件:(a)参考图片存储器,其提供与最小尺寸块一一对应的向量存储位置以存储针对可变尺寸的块计算的运动向量;(b)地址计算器,其响应于对在当前块的帧间预测时参考的与当前块相邻的块的指定,至少基于被指定的与当前块相邻的块的尺寸计算参考图片存储器中向量存储位置的地址;(c)预测值计算器,其向地址计算器指定与当前块相邻的块以便从其获得针对被指定的相邻块计算的运动向量的地址,从所获得的参考图片存储器的地址中读出运动向量,并基于从参考图片存储器中读出的运动向量确定当前块的运动向量预测值;以及(d)参考图片存储管理器,其将所计算的运动向量写入到在参考图片存储器内保留的向量存储位置中。 
另外,为了实现上述第二目的,本发明提供了一种通过以块为基础执行源图片和参考图片之间的运动补偿预测来将视频帧编码为压缩视频数据的视频编码设备。该视频编码设备包括以下元件:(a)参考图片存储器,其提供与最小尺寸块一一对应的向量存储位置以存储针对可变尺寸的块计算的运动向量;(b)地址计算器,其至少基于被指定的块的尺寸计算参考图片存储器中向量存储位置的地址;(c)预测值计算器,其向地址计算器指定与当前块相邻的块以便从其获得针对被指定的相邻块计算的 运动向量的地址,从所获得的参考图片存储器的地址中读出运动向量,并基于从参考图片存储器中读出的运动向量确定当前块的运动向量预测值;以及(d)参考图片存储管理器,其将所计算的运动向量写入到在参考图片存储器内保留的向量存储位置中。 
另外,为了实现上述第二目的,本发明提供了一种从压缩视频信号中重构原始视频帧的视频解码设备,所述压缩视频信号是通过以块为基础执行运动补偿帧间预测产生的。该视频解码设备包括以下元件:(a)参考图片存储器,其提供与最小尺寸块一一对应的向量存储位置以存储针对可变尺寸的块计算的运动向量;(b)地址计算器,其至少基于被指定的块的尺寸计算参考图片存储器中向量存储位置的地址;(c)预测值计算器,其向地址计算器指定与当前块相邻的块以便从其获得针对被指定的相邻块计算的运动向量的地址,从所获得的参考图片存储器的地址中读出运动向量,基于从参考图片存储器中读出的运动向量确定当前块的运动向量预测值,并从所确定的运动向量预测值和经解码的运动向量差重构所述当前块的运动向量;以及(d)参考图片存储管理器,其将经重构的运动向量写入到在参考图片存储器内保留的向量存储位置中。 
本发明的以上和其他的目的、特征和优点将从下面结合附图的描述中变清楚,附图以示例方式图示了本发明的优选实施例。 
附图说明
图1示出了实现本发明的帧间预测处理器的概念。 
图2是根据本发明实施例的视频编码设备的框图。 
图3是根据本发明实施例的视频解码设备的框图。 
图4是作为所提出的视频解码设备的一个元件的帧间预测器的功能框图,其在帧间预测模式中产生运动向量。 
图5示出了根据本实施例的帧结构和向量存储位置之间的关系。 
图6示出了构成16×16基本宏块的4×4块和其块号。 
图7A和7B示出了在16×16宏块的情形中本实施例是如何计算并保存运动向量的。 
图8A和8B示出了在16×8宏块的情形中本实施例是如何计算并保存运动向量的。 
图9A和9B示出了在8×16宏块的情形中本实施例是如何计算并保存运动向量的。 
图10A和10B示出了在8×8宏块的情形中本实施例是如何计算并保存运动向量的。 
图11A和11B示出了本实施例是如何将宏块分区为子宏块以及如何为其产生代表性运动向量的。 
图12A是另一副示出了本实施例是如何产生子宏块的运动向量的图。 
图12B示出了本实施例是如何将代表性运动向量保存在存储器中的。 
图13示出了地址翻译表是如何被用于参考16×16宏块和16×8宏块的。 
图14示出了地址翻译表是如何被用于参考8×16宏块、8×8宏块、8×4子宏块、4×8子宏块和4×4子宏块的。 
图15示出了本实施例是如何将相邻宏块的运动向量保存在MB-A向量存储位置中的。 
图16示出了本实施例是如何将相邻宏块的运动向量保存在MB-BCD向量存储位置中的。 
图17A和17B示出了根据本实施例的相邻16×16宏块和16×8宏块的代表性向量存储位置。 
图18A和18B示出了根据本实施例的相邻8×16宏块和8×8宏块的代表性向量存储位置。 
图19示出了根据本实施例的相邻4×4子宏块的代表性向量存储位置。 
图20和21示出了地址翻译表是如何被用于参考MB-A向量存储位置的。 
图22和23示出了地址翻译表是如何被用于参考MB-BCD向量存储位置的。 
图24示出了在H.264中定义的宏块的各种尺寸。 
图25是传统的视频解码设备中的运动向量估计器的框图。
图26示出了与16×16宏块相邻的宏块和在4×4块上扩展的运动向量。 
图27示出了与16×8宏块相邻的宏块。 
图28A和28B示出了在多个存储位置中复制运动向量的过程。 
具体实施方式
下面将参考附图描述本发明的优选实施例,附图中相似的标号在全文中指代相似的元件。首先描述本发明的概述,然后描述本发明的特定实施例。在该文件的以下部分,宏块(及其分区)的尺寸和形状由代表其宽度和高度的前缀指示。例如,术语“16×8宏块”表示该宏块为16个像素宽以及8个像素高。尽管本实施例应对各种块尺寸,但是16×16像素的全尺寸宏块被称为“基本宏块”。还要注意,术语“宏块”(或简称“块”)在该说明书中用来指用于运动补偿的数字图像的基本单元。除非这种区别是必要的,否则这种意义上的宏块指16×16基本宏块,以及具有在前面部分中说明的规定尺寸的宏块分区和宏块子分区(或子宏块)。 
图1示出了实现本发明的帧间预测处理器的概念。该实施例意图用在视频编码设备和视频解码设备中,这些设备通过将每个给定的图片帧划分为具有适当尺寸的小区域(被称为宏块)以用于运动向量预测目的来处理视频数据流。块尺寸(即,宏块的面积尺寸)是取决于图像运动幅度或目标的所需分辨率而从若干个规定尺寸中选出的。本发明并不讨论如何确定块尺寸的细节,因为某些现有的技术文献已经提供了这些信息。 
帧间预测处理器用于参考周围块的运动向量(MV)计算特定宏块的运动向量预测值(MVP)。为此,所提出的帧间预测处理器包括以下元件:参考图片存储器1、预测值计算器2、地址计算器3和参考图片存储管理器4。 
参考图片存储器1存储包括与当前被处理的宏块相邻的那些宏块的多个宏块的运动向量,这些相邻宏块可以在计算该当前宏块的MVP时被参考。参考图片存储器1提供至少两组保留的向量存储位置。一组用于存储在当前被处理的基本宏块中包括的宏块的运动向量。另一组用于存储与当 前宏块相邻的被参考宏块的运动向量。每组向量存储位置可以容纳最大数目的运动向量,该最大数目是根据基本宏块的分区的最小尺寸确定的。例如,在H.264的情形中,一个16×16基本宏块可被划分为16个4×4子宏块。在假定该分区的最小尺寸的情况下,参考图片存储器1针对每个16×16基本宏块提供了16个向量存储位置。针对可变尺寸宏块计算的运动向量可被存储在与一个基本宏块相对应的这十六个向量存储位置之一中。即,当当前被处理的宏块例如是16×16基本宏块时,其运动向量不被输入到全部十六个向量存储位置,而是被输入到从这十六个位置中选出的一个向量存储位置。根据规定规则进行适当的选择,这种规则对于每种不同形状的宏块是唯一的。选出的向量存储位置在下文中将被称为“代表性向量存储位置”,并且存储在该位置中的运动向量将被称为“代表性向量”。 
预测值计算器2向地址计算器3指定具体的相邻宏块以获得其在参考图片存储器1中的相应代表性向量存储位置的存储器地址。所获得的存储器地址被用于从参考图片存储器1中读出期望的运动向量。基于这些运动向量,预测值计算器2计算当前块的MVP。在视频编码的情形中,这种MVP和MV之间的运动向量差(MVD)被计算并被压缩以递送到解码器设备。在视频解码的情形中,预测值计算器2从所计算的MVP和解码的MVD中再现运动向量。再现的运动向量被用于重构视频图片。 
当从预测值计算器2接收到指定相邻宏块的地址请求时,地址计算器3基于所指定的相邻宏块的块尺寸确定其相应代表性向量在参考图片存储器1中的存储器地址。针对在先宏块计算的运动向量可以在与这些宏块相对应的代表性向量存储位置中得到。由于与特定宏块相对应的代表性向量存储位置可以唯一地从该宏块的块尺寸确定,因此地址计算器3首先查看给定的地址请求以指出指定宏块的尺寸。地址计算器3根据块尺寸计算存储器地址,并将其传递回预测值计算器2。如下文中详细所述,地址计算器3可被设计为使用将代表性向量存储位置的存储器地址值与不同的块尺寸相关联的翻译表。 
参考图片存储管理器4在适当的向量存储位置中存储代表性向量以供 参考,以计算下一宏块和后续宏块的运动向量。相邻的宏块向量存储位置已被保留在参考图片存储器1中,以存储用于计算其他宏块的MVP的运动向量。 
在操作中,预测值计算器2按预定顺序连续选择给定源图片的宏块,以计算每个宏块的运动向量。参考图片存储器1在先前保留的代表性向量存储位置中尺寸针对在先宏块计算的代表性运动向量。为了计算当前选择的宏块的MVP,预测值计算器2需要与围绕当前宏块的相邻宏块相对应的每个代表性向量存储位置的存储器地址。因此,预测值计算器2将地址请求发送到地址计算器3,指定想要知道的这些相邻宏块。地址计算器3基于该宏块的块尺寸计算每个指定的相邻宏块的存储器地址。利用从地址计算器3接收到的存储器地址,预测值计算器2从参考图片存储器1中取得相关的运动向量,从而产生MVP。在视频编码应用中,MVP被用于计算要编码的运动向量差MVD。在视频解码应用中,MVP被用于从解码后的MVD中重构运动向量。参考图片存储管理器4在向量存储位置之一中保存所计算的当前宏块的运动向量,以便该向量可以在以后被参考作为相邻宏块的运动向量。 
从上文中可见,所提出的帧间预测处理器采用地址计算器3来提供存储先前计算的运动向量的代表性向量存储位置的地址。地址计算器3消除了在参考图片存储器1中的多个存储位置内复制所计算的运动向量以允许使用最小块尺寸的需要。从而,本实施例减少了运动向量计算的处理时间。 
H.264视频编码设备 
这一部分和以下的部分将讨论H.264视频编码和解码设备作为本发明的更加具体的实施例。如前所述,H.264标准提供了以下的宏块尺寸选项:16×16、16×8、8×16和8×8。如果选择8×8,则这四个8×8宏块分区中的每一个可被分割为具有以下尺寸的更小的块:8×8、8×4、4×8和4×4(被称为宏块子分区)。基线编码算法以宏块为基础对每个给定的源帧进行编码,在利用一个帧内的空间冗余的帧内编码和利用连续帧之间的时间冗余的帧间编码之间切换。解码算法遵循与之相反的过程。
尽管H.264允许双向运动预测,但是下面的描述假定了前向预测以进行简化。然而,本发明不应当限于前向预测。本领域技术人员将意识到,通过添加某些存储器区域以存储过去和未来参考帧的运动向量,本发明也可以应用于双向预测。 
图2是根据本发明实施例的视频编码设备的框图。图示的视频编码设备100包括以下元件:宏块划分器101、运动向量估计器102、过去帧缓冲器103、帧间预测器104、帧内预测器105、当前帧缓冲器106、预测模式选择器107、减法器108、正交变换和量化单元109、熵编码器110、解量化和反向正交变换单元111、加法器112、解块滤波器113和帧缓冲器管理器114。 
宏块划分器101将给定源图片划分为预定尺寸的宏块。运动向量估计器102将源宏块的视频信号分量与存储在过去帧缓冲器103中的参考宏块的视频信号分量相比较,从而计算该源宏块的运动向量。由于邻近块的运动向量经常是高度相关的,因此可以从周围块的向量中预测出某个块的运动向量。从而,帧间预测器104根据周围的运动向量计算运动向量预测值MVP,然后通过从真实运动向量中减去MVP来计算运动向量差MVD。另一方面,帧内预测器105执行存储在当前帧缓冲器106中的帧的帧内编码。 
预测模式选择器107例如通过将帧间预测器104的预测误差与帧内预测器105的预测误差相比较,来选择使得当前宏块的编码效率最大的编码模式。预测模式选择器107创建编码模式参数以指示选择结果。编码模式参数被传递到熵编码器110,作为要进行熵编码的数据的一部分。编码模式参数包括宏块分区的尺寸和子宏块分区的尺寸。 
当选择帧内模式时,划分后的源宏块被原样从宏块划分器101提供给正交变换和量化单元109。这些宏块被进行正交变换和量化,所得到的变换系数被传递到熵编码器110以进行熵编码和传输。变换系数还被解量化和反向正交变换单元111解码并被发送到当前帧缓冲器106中。 
当选择帧间模式时,帧间预测器104向熵编码器110提供MVD以用于熵编码。另外,利用MVP预测的图片通过预测模式选择器107被给予 减法器108。减法器108以宏块为基础从源图片中减去预测的图片,并将结果发送到正交变换和量化单元109。经量化的输出数据被解量化和反向正交变换单元111本地解码并被导向加法器112,在加法器112处添加通过预测模式选择器107提供的预测图片。所得到的图片被写入到当前帧缓冲器106中。熵编码器110利用熵编码算法对给定数据编码,从而输出携带有压缩形式的视频数据的经编码视频信号。存储在当前帧缓冲器106中的参考图片受到解块滤波器113的处理,在解块滤波器113处对宏块之间的边界区域进行平滑。所得到的图片被通过帧缓冲器管理器114输入到过去帧缓冲器103。 
H.264视频解码设备 
图3是根据本发明实施例的视频解码设备的框图。图示的视频解码设备200由以下元件构成:熵解码器201、解量化和反向正交变换单元202、加法器203、当前帧缓冲器204、帧内预测器205、预测模式选择器206、解块滤波器207、帧缓冲器管理器208、过去帧缓冲器209和帧间预测器210。利用这些元件,视频解码设备200对由图2的视频编码设备100产生的经编码视频信号进行解码。 
给定的经编码视频信号被熵解码器201进行熵解码,然后被解量化和反向正交变换单元202解量化并反向变换。该解码过程的结果包括MVD形式的运动向量数据和编码模式参数等等。基于编码模式参数,预测模式选择器206选择帧内预测器205或帧间预测器210。 
当选择帧内预测器205时,由解量化和反向正交变换单元202重构的图片帧被路由到当前帧缓冲器204。当选择预测模式选择器206时,运动向量差MVD被解码回视频编码设备100针对各个宏块产生的原始运动向量。利用所得到的运动向量,帧间预测器210再现预测图片,并将预测图片通过预测模式选择器206提供给加法器203。在解量化和反向正交变换单元202处解码的预测误差随后被添加到该预测图片。所得到的经解码图片被输入到当前帧缓冲器204。当前帧缓冲器204中的该图片数据被通过解块滤波器207和帧缓冲器管理器208传送到过去帧缓冲器209之一。 
上述视频解码设备中的帧间预测器210按以下方式对运动向量解码。 图4是帧间预测器210的功能框图。具体而言,帧间预测器210包括以下元件:存储器211、MVP计算器212、地址翻译器213、运动向量计算器214、MB-A向量存储管理器215和MB-BCD向量存储管理器216。如前所述,当前宏块由符号“Cu”指代,其相邻宏块被称为“MB-A”(紧挨着左边的)、“MB-B”(紧挨着上面的)、“MB-C”(对角线右上角)、“MB-D”(对角线左上角)。另外,三个相邻宏块MB-B、MB-C和MB-D被统称为符号“MB-BCD”。 
存储器211存储先前已针对在先宏块计算的运动向量。这些运动向量中的某一些被用于计算当前宏块的MVP。存储器211还提供用于当前块的运动向量的存储空间。更多细节将在下面描述。 
MVP计算器212向地址翻译器213指定围绕当前宏块的每个相关的相邻宏块,从而获得存储器211中每个相应的代表性向量存储位置的地址。利用从所获得的地址中读出的代表性向量,MVP计算器212计算MVP。尽管有各种确定MVP的方式,但是本实施例计算相邻宏块的运动向量的中值作为运动向量预测值MVP: 
MVP=中值(MV-A,MV-B,MV-C)......(1) 
其中MV-A、MV-B和MV-C分别指相邻宏块MB-A、MB-B和MB-C的运动向量。在当前宏块位于帧的右边的情形中(其中不可获得MV-C),公式(1)中的运动向量MV-C可被替换以另一个宏块MB-D的运动向量MV-D。三个变量x、y和z的中值表达如下: 
中值(x,y,z)=x+y+z-Min(x,Min(y,z))-Max(x,Max(y,z))......(2) 
其中Min(x,y)指x和y中的较小值,Max(x,y)指x和y中的较大值。 
地址翻译器213将给定的相邻宏块尺寸(或子宏块尺寸)翻译为代表性向量存储位置地址。运动向量计算器214按以下方式根据由MVP计算器212计算的MVP和经解码MVD重构运动向量: 
MV=MVP+MVD......(3) 
所得到的运动向量MV被保存在存储器211中,更具体而言,是保存在与当前宏块相对应的代表性向量存储位置中。 
存储器211维护先前针对每个宏块计算的运动向量。MB-A向量存储 管理器215读出这些存储中与一个宏块相对应的运动向量之一,以在后续的向量预测过程中被参考作为相邻宏块MB-A,并将其输入到MB-A向量存储位置。类似地,MB-BCD向量存储管理器216读出与宏块相对应的存储的运动向量,以在后续的向量预测过程中被参考作为相邻宏块MB-B、MB-C和MB-D,并将其输入到同一存储器211中保留的MB-BCD向量存储位置。 
上述帧间预测器210根据在本实施例中提出的帧间预测方法进行操作。帧间预测的细节将在下面的部分中给出。 
运动向量的存储器布置 
根据本实施例,存储器211提供针对计算的运动向量保留的向量存储位置。具体而言,图5示出了根据本实施例帧结构和若干类向量存储位置之间的关系。对于帧间预测,给定帧300被划分为多个16×16基本宏块301,其中宏块的尺寸可以按需要变化。 
根据本实施例,存储器211提供当前块向量存储位置310以存储针对当前宏块Cu计算的运动向量。还提供了相邻块数据存储位置320、331和332以存储相邻宏块MB-A和MB-BCD的运动向量。假定16×16基本宏块被分区为十六个4×4基本宏块,即最小尺寸分区,当前宏块存储位置310可以容纳高达十六个向量。 
相邻块向量存储位置被划分为两类。一类是用于存储作为相邻宏块MB-A被参考的宏块的运动向量的MB-A向量存储位置320。MB-A向量存储位置320被映射到当前宏块Cu左边的四个垂直对齐的4×4子宏块上。当当前宏块Cu310的运动向量在当前块向量存储位置中变得可用时,MB-A向量存储管理器215将它们拷贝到这些MB-A向量存储位置320。细节将在后面参考图15描述。 
另一类是被保留来存储作为相邻宏块MB-B、MB-C和MB-D被参考的宏块的运动向量的MB-BCD向量存储位置331和332。MB-BCD向量存储位置331被映射到紧挨着当前宏块Cu310上方的4×4子宏块的最下一行上。该行包括相邻宏块MB-B、MB-C和MB-D。MB-BCD向量存储位置332被映射到当前宏块Cu310所属的帧线上的4×4子宏块的最下一行 上。当当前宏块Cu的运动向量在当前块向量存储位置310中变得可用时,MB-BCD向量存储管理器216将它们拷贝到MB-BCD存储位置332。MB-BCD存储位置332中的这些运动向量将在焦点到达帧的下一条线时被参考。更多细节将在后面参考图16描述。 
随着处理焦点的移动,存储在存储器211中的以上向量存储位置内的运动向量被更新。例如,假定焦点从当前宏块移到下一宏块311。已被用于存储在先宏块的运动向量的向量存储位置随后开始为新的当前宏块311服务。从而,MB-A向量存储位置320被用于存储前一宏块的运动向量。MB-BCD向量存储位置331和332也以类似方式被重写。 
子宏块标号 
为了说明方便,基本宏块的4×4子宏块分区按以下方式标号。图6示出了被分配给构成16×16基本宏块340的十六个子宏块的框号。具体而言,图示的16×16基本宏块340首先被分区为四个8×8宏块,并且标号过程按左上、右上、左下和右下的顺序进行。另外,每个8×8宏块被分区为四个4×4子宏块,并且所得到的左上、右上、左下和右下的块按该顺序标号。因此,构成左上8×8宏块的左上、右上、左下和右下子块分别被标号为b0、b1、b2和b3。然后构成右上8×8宏块的左上、右上、左下和右下子块分别被标号为b4、b5、b6和b7。类似地,构成左下8×8宏块的四个4×4子宏块被标号为b8到b11,构成右下8×8宏块的四个4×4子宏块被标号为b12到b15。 
在下一部分中,以上定义的块号b0到b15将被用于指代与宏块分区相对应的向量存储位置。 
运动向量计算和存储管理 
再次参考图5,MVP计算器212咨询地址翻译器213以获得存储有每个被参考的相邻宏块的运动向量的存储器地址。MVP计算器212从所获得的存储器地址中读出所需的运动向量,并根据公式(1)计算MVP。然后利用公式(3),运动向量计算器214根据所计算的MVP和经解码MVD产生运动向量MV0,然后将结果写到存储器211中的代表性向量存储位置中。现在假设该代表性向量存储位置对应于当前宏块的左上角处的4×4 子宏块。 
图7A和图7B示出了在16×16宏块的情形中本实施例如何产生运动向量和如何将它们存储到存储器中。MVP计算器212读出与16×16当前宏块Cu400相邻的MB-A的b5 400a、MB-B的b10 400b、MB-C的b10400c和MB-D的b15 400d的运动向量,从而根据公式(1)计算MVP。然后利用公式(3),运动向量计算器214根据所计算的MVP和经解码的MVD产生运动向量MV0。所计算的运动向量MV0被存储在位于当前宏块Cu400的左上角的b0 401中。 
参考图7B的序列图,EN信号发起将MV0写入到地址WAD=0的存储位置b0中的写周期。当随后的MVP计算过程参考该向量时,地址翻译器213自动提供上述存储地址,从而消除了在存储器211中的预定向量存储位置上复制同一向量的需要。即,所提出的方法只写入一个地址,而传统方法写入十六个地址。本实施例极大地减少了处理时间。 
图8A和8B示出了本实施例是如何产生代表性运动向量以及在16×8宏块的情形中是如何将其保存到存储器中的过程。 
假定当前焦点在上16×8宏块Cu0 411上。MVP计算器212从与16×8当前宏块Cu0 411相邻的MB-A的b5 411a、MB-B的b10 411b、MB-C的b10 411c和MB-D的b15 411d读取运动向量。MVP计算器212根据这些运动向量确定MVP,从而允许运动向量计算器214计算当前宏块Cu0411的运动向量MV0。所计算的运动向量MV0被存储在位于当前宏块Cu0411的左上角的块b0412中。 
现在假定焦点移到下16×8宏块Cu1413。MVP计算器212从与16×8当前宏块Cu1 413相邻的MB-A的b13413a、Cu0 411的b2413b(如同MB-B一样)和MB-D的b7 413d读取运动向量。MVP计算器212根据这些运动向量确定MVP,从而允许运动向量计算器214计算当前宏块Cu1413的运动向量MV1。注意,对于位于相邻宏块MB-C位置处的宏块X413c没有计算运动向量。由此,运动向量MV1通过修改公式(1)以使得运动向量MV-A、MV-B和MV-D的中值被选择来计算。所计算的MV1随后被存储在位于当前宏块Cu1 413的左上角的b8 414中。
参考图8B的序列图,EN信号被两次断言以发起两个写周期。第一写周期将MV0存储到地址WAD=0的存储位置b0中。第二写周期将MV1存储到地址WAD=8的另一个存储位置b8中。 
图9A和9B示出了本实施例是如何产生代表性运动向量以及在8×16宏块的情形中是如何将其保存到存储器中的过程。假定当前焦点在左8×16宏块Cu0 421上。MVP计算器212从与8×16当前宏块Cu0 421相邻的MB-A的b5 421a、MB-B的b10 421b、MB-C的b14 421c和MB-D的b15421d读取运动向量。MVP计算器212根据这些运动向量确定MVP,从而允许运动向量计算器214计算当前宏块Cu0 421的运动向量MV0。所计算的运动向量MV0被存储在位于当前宏块Cu0 421的左上角的b0422中。 
现在假定焦点移到右8×16宏块Cu1 423。MVP计算器212从与16×8当前宏块Cu0 411相邻的MB-A的b1 423a(=前一8×16宏块Cu0)、MB-B的b14 423b、MB-C的b10 423c和MB-D的b11 423d读取运动向量。MVP计算器212根据这些运动向量确定MVP,从而允许运动向量计算器214计算当前宏块Cu1 423的运动向量MV1。所计算的运动向量MV1被存储在位于当前宏块Cu1 423的左上角的b4 424中。 
参考图9B的序列图,EN信号被两次断言以发起两个写周期。第一写周期将MV0存储到地址WAD=0的存储位置b0中。第二写周期将MV1存储到地址WAD=4的另一个存储位置b4中。 
图10A和10B示出了本实施例是如何产生代表性运动向量以及在8×8宏块的情形中是如何将其保存到存储器中的过程。假定当前焦点在左上8×8宏块Cu0 431上。MVP计算器212从与当前宏块Cu0 431相邻的MB-A的b5 431a、MB-B的b10 431b、MB-C的b14 431c和MB-D的b15 431d读取运动向量。MVP计算器212根据这些运动向量确定MVP,从而允许运动向量计算器214计算当前宏块Cu0431的运动向量MV0。所计算的运动向量MV0被存储在位于当前宏块Cu0 431的左上角的b0 432中。 
假定焦点移到右上8×8宏块Cu1 433。则MVP计算器212从围绕当前宏块Cu1 433的MB-A的b1 433a(=前一8×8宏块Cu0)、MB-B的b14 433b、MB-C的b10 433c和MB-D的b11 433d读取运动向量。MVP计 算器212根据这些运动向量确定MVP,从而允许运动向量计算器214计算当前宏块Cu1 433的运动向量MV1。所计算的运动向量MV1被存储在位于当前宏块Cu1 433的左上角的b4434中。 
假定焦点移到左下8×8宏块Cu2 435。则MVP计算器212从围绕当前宏块Cu2 435的MB-A的b13 435a、MB-B的b2 435b(=左上8×8宏块Cu0 431)、MB-C的b6 435c(=右上8×8宏块Cu1 433)和MB-D的b7435d读取运动向量。MVP计算器212根据这些运动向量确定MVP,从而允许运动向量计算器214计算当前宏块Cu2 435的运动向量MV2。所计算的运动向量MV2被存储在位于当前宏块Cu2 435的左上角的b8 436中。 
假定焦点移到右下8×8宏块Cu3 437。则MVP计算器212从围绕当前宏块Cu3 437的MB-A的b9 437a(=在先8×8宏块Cu2 435)、MB-B的b6 437b(=右上宏块Cu1 433)和b3 437d(=左上宏块Cu0 431)读取运动向量。MVP计算器212根据这些运动向量确定MVP,从而允许运动向量计算器214计算当前宏块Cu3 437的运动向量MV3。注意,在该过程中不考虑在MB-C位置处的分区X437c。所得到的向量MV3被存储在位于当前宏块Cu3 437的左上角的b12 438中。 
参考图10B的序列图,EN信号被四次断言以发起四个写周期。第一写周期将MV0存储到地址WAD=0的存储位置b0中。第二写周期将MV1存储到地址WAD=4的另一个存储位置b4中。第三写周期将MV2存储到地址WAD=8的另一个存储位置b8中。第四写周期将MV3存储到地址WAD=12的另一个存储位置b12中。 
图11A、11B、12A和12B示出了本实施例是如何将宏块分区为子宏块以及如何产生并保存子宏块的代表性运动向量的过程。具体而言,图11A示出了宏块子分区的示例,图11B示出了针对子宏块SB0到SB2产生的代表性运动向量。图12A示出了针对另一个子宏块SB3产生的代表性运动向量。图12B是示出了如何在存储器211中保存所得到的运动向量的序列图。 
参考图11A,图11A示出了宏块子分区的示例。每个8×8宏块可被分区为更小的块。具体而言,左上8×8宏块实际不被分区,而是仍保持 为单个8×8块SB0 441。右上8×8宏块被划分为两个8×4块,SB1-0 451和SB1-1 453。左下8×8宏块被划分为两个4×8块,SB2-0 461和SB2-1463。右下8×8宏块被划分为四个4×4块,SB3-0 471、SB3-1 472、SB3-2 473和SB3-3 474。 
参考图11B,按以下方式确定这些子宏块的运动向量。针对左上子宏块SB0 441,根据周围块的运动向量确定运动向量MV0,并保存在位于SB0 441的左上角的b0 442中。针对上8×4子宏块SB1-0 451,根据周围块的运动向量确定运动向量MV1,并保存在与SB1-0 451的左半部分相对应的b4 452中。类似地,针对下8×4子宏块SB1-1 453产生运动向量MV2,并保存在与SB1-1 453的左半部分相对应的b6 454中。以类似方式,针对左4×8子宏块SB2-0 461产生运动向量MV3,并保存在b8 462中,针对右4×8子宏块产生运动向量MV4,并保存在b9 464中。 
参考图12A,分别针对最小尺寸的子宏块SB3-0 471、SB3-1 472、SB3-2 473和SB3-3 474确定运动向量MV5、MV6、MV7和MV8。这些运动向量被保存在其相应的存储位置b12、b13、b14和b15中。 
参考图12B的序列图,EN信号发起九个写周期。第一写周期将MV0存储到地址WAD=0的b0中,第二写周期将MV1存储到地址WAD=4的b4中。第三写周期将MV2存储到地址WAD=6的b6中,第四写周期将MV3存储到地址WAD=8的b8中。第五写周期将MV4存储到地址WAD=9的b9中,第六写周期将MV5存储到地址WAD=12的b12中。第七写周期将MV6存储到地址WAD=13的b13中,第八写周期将MV7存储到地址WAD=14的b14中。最后,第九写周期将MV8存储到地址WAD=15的b15中。 
本实施例仅在特定的向量存储位置(例如,与左上块相对应的一个位置)中保存所产生的运动向量,该特定存储位置代表了产生该向量的宏块域。从图7A到10B中可见,对于被分区的基本宏块的预测过程在分区尺寸为8×8或更大时至多涉及四个写周期。只有当每个分区是4×4块时,基本宏块的全部十六个存储位置才被填满。在大多数情形中,与传统过程不同,利用较小数目的写周期完成了预测过程。从而,本实施例减少了预 测运动向量所需的时间。 
上述过程允许运动向量被存储在向量存储位置310、320、331和332中,这些向量存储位置是为当前宏块Cu和其周围的宏块MB-A和MB-BCD保留的,如图5中所述。 
地址翻译 
地址翻译器213通过将指定相邻宏块的给定信息翻译为与该宏块相对应的代表性向量存储位置的特定地址,来为MVP计算器212服务。即,地址翻译器213从MVP计算器212接收指定要参考的4×4相邻宏块的一条信息。更具体而言,MVP计算器212发送期望的16×16基本宏块的标识符以及特定的块号(例如,图6中所示的b0到b15)。地址翻译器213具有地址翻译表,该表将宏块尺寸和子宏块尺寸与代表性向量存储位置相关联,以提供与指定的相邻宏块相对应的地址。 
如前在图5中所述,本实施例从与相邻宏块MB-A和MB-BCD相对应的向量存储位置320、331和332中读出参考运动向量(当该参考运动向量位于当前被处理的宏块Cu外部时)。具体的参考运动向量是外部向量还是内部向量不仅取决于当前宏块的形状,还取决于当前宏块的位置。这一部分将首先说明内部运动向量的情形,然后说明外部运动向量的情形。 
出于说明目的,我们假定外部向量可以按与内部向量相同的方式处理。即,假定每一宏块中的运动向量按与图5的当前宏块Cu相同的方式存储。 
图13和14示出了地址翻译表在本实施例中是如何起作用的。具体而言,图13示出了地址翻译表是如何用于参考16×16宏块和16×8宏块的。图14示出了地址翻译表是如何用于参考8×16宏块、8×8宏块、8×4子宏块、4×8子宏块和4×4子宏块的。 
当相邻宏块是16×16宏块时,MVP计算器212可以在其地址请求中指定十六个块b0到b15之一。然而,这种情形中,代表性向量只存储在与块b0相对应的一个向量存储位置中,如图7中所述。因此,响应于来自MVP计算器212的请求,地址翻译器213返回块b0的向量存储位置地 址,而不论在该请求中指定了哪一个块。被参考作为相邻宏块的宏块已经经受了向量预测处理,这意味着其尺寸是已知的。因此,该实施例可被配置为将这种相邻宏块的尺寸信息保留在存储器中的某处以供以后参考。 
当相邻宏块是上16×8宏块时,MVP计算器212可以在其地址请求中指定前八个块b0到b7之一。这种情形中,代表性向量被存储在与块b0相对应的向量存储位置中,如图8中所述。因此,响应于来自MVP计算器212的请求,地址翻译器213返回块b0的向量存储位置地址,而不论在该请求中指定了哪一个块。 
当相邻宏块是下16×8宏块(未示出)时,MVP计算器212可以在其地址请求中指定后八个块b8到b15之一。这种情形中,代表性向量被存储在与块b8相对应的向量存储位置中,如图8中所述。因此,地址翻译器213向MVP计算器212返回块b8的向量存储位置地址,而不论在该请求中指定了哪一个块。 
参考图14,当相邻宏块是左8×16宏块时,MVP计算器212可以在其地址请求中指定以下块之一:b0、b1、b2、b3、b8、b9、b10和b11。这种情形中,代表性向量被存储在与块b0相对应的向量存储位置中,如图9中所述。因此,地址翻译器213向MVP计算器212返回块b0的地址。 
当相邻宏块是右8×16宏块(未在图14中示出)时,MVP计算器212可以在其地址请求中指定以下块之一:b4、b5、b6、b7、b12、b13、b14和b15。这种情形中,代表性向量被存储在与块b4相对应的向量存储位置中,如图9中所述。因此,地址翻译器213向MVP计算器212返回块b4的地址。 
当相邻宏块是左上8×8宏块时,MVP计算器212可以指定块b0、b1、b2或b3。这种情形中,代表性向量被存储在与块b0相对应的向量存储位置中,如图10中所述。因此,地址翻译器213向MVP计算器212返回块b0的地址。类似地,当MVP计算器212指定右上8×8宏块(未在图14中示出)和块b4、b5、b6或b7时,地址翻译器213返回块b4的代表性向量存储位置的地址。当MVP计算器212指定左下8×8宏块(未在 图14中示出)和块b8、b9、b10或b11时,地址翻译器213返回块b8的代表性向量存储位置的地址。当MVP计算器212指定右下8×8宏块(未在图14中示出)和块b12、b13、b14或b15时,地址翻译器213返回块b12的代表性向量存储位置的地址。 
运动向量计算器214可以请求子宏块的地址。下面的描述说明了地址翻译器213是如何处理该请求的,为了简化,假定所指定的子宏块属于左上8×8宏块。地址翻译器213以类似的方式处理其他类型的子宏块,以根据指定的块尺寸和位置唯一地确定代表性向量存储位置。 
在左上8×8宏块的上8×4子宏块的情形中,运动向量计算器214可以指定块b0或块b1作为相邻宏块。这种情形中,代表性向量存储位置是与块b0相对应的向量存储位置。因此,地址翻译器213向运动向量计算器214返回该向量存储位置的地址。 
在左上8×8宏块的左8×4子宏块的情形中,运动向量计算器214可以指定块b0或块b2作为相邻宏块。这种情形中,代表性向量存储位置是与块b0相对应的向量存储位置。因此,地址翻译器213向运动向量计算器214返回该向量存储位置的地址。 
在左上8×8宏块的左上4×4子宏块的情形中,运动向量计算器214可以指定块b0作为相邻宏块。这种情形中,代表性向量存储位置是与块b0相对应的向量存储位置。因此,地址翻译器213向运动向量计算器214返回该向量存储位置的地址。 
从上文中可见,代表性向量存储位置可以通过利用相邻宏块的宏块尺寸和子宏块尺寸以及指定的块位置(b0到b15)对翻译表执行查找来加以确定。该特征允许MVP计算器212得到由运动向量计算器214存储在代表性向量存储位置中的运动向量。 
尽管图13和14中所示的并不是每se的翻译表,但是所提出的地址翻译表的基本功能是从指定的相邻宏块尺寸和块位置的组合中导出存储地址。因此,该翻译表可以是能够将相邻宏块的宏块尺寸和子宏块尺寸以及指定的块位置(b0到b15)与特定的代表性向量存储位置相关联的任何形式。
代表性向量存储位置 
在期望参考运动向量位于当前宏块Cu外部的情形中,本实施例按以下方式操作。例如,假定当前焦点在16×16基本宏块上。这种情形中,每个参考运动向量必须在为相邻宏块MB-A和MB-BCD保留的向量存储位置320、331和332(图5)中的某处找到。 
图15示出了本实施例是如何将相邻宏块的运动向量保存在MB-A向量存储位置中的。假定当前焦点在宏块501上。用于该当前宏块501的向量预测过程参考其相邻块MB-A(A0、A1、A2、A3)。在当前宏块501之前的宏块502已被处理,并且所得到的运动向量被存储在向量存储位置中作为代表性运动向量。MB-A向量存储管理器215读出相关的代表性运动向量,并将其存储在与MB-A(A0、A1、A2、A3)相对应的存储位置中。在多个代表性运动向量存在于同一行上的情形中,MB-A向量存储管理器215选择最右侧的向量,并将其输入到相应的MB-A向量存储位置。例如,当宏块502被水平分区为8×16宏块时,针对A0行上的两个块b0和b4计算代表性运动向量。在这种情形中,MB-A向量存储管理器215选择块b4的向量并将其存储在A0中,因为b4位于b0右侧。 
图16示出了本实施例是如何将相邻宏块的运动向量保存在MB-BCD向量存储位置中的。用于当前宏块501的向量预测过程按需要分别访问MB-BCD向量存储位置N0、N1、N2、N3、N4和N5。宏块503、504和505已被处理,并且所得到的运动向量被存储在向量存储位置中作为代表性运动向量。MB-BCD向量存储管理器216读出例如块503的相关的代表性运动向量,并将其存储在MB-BCD向量存储位置N1、N2、N3和N4中。类似地,MB-BCD向量存储位置N0和N5分别接收针对宏块504和505产生的代表性运动向量。在多个代表性运动向量存在于同一列上的情形中,MB-BCD向量存储管理器216选择最下侧的向量,并将其输入到相应的MB-BCD向量存储位置。例如,当宏块503被垂直分区为16×8宏块时,针对N1列上的两个块b0和b8计算代表性运动向量。在这种情形中,MB-BCD向量存储管理器216选择块b9的向量并将其存储在N1中,因为b8比b0更靠近底部。
代表性运动向量的存储地址取决于块尺寸。下面将描述存储每个块尺寸的运动向量的过程。图17A到19B示出了根据本实施例的相邻宏块的代表性向量存储位置。更具体而言,图17示出了16×16宏块的代表性向量存储位置。运动向量计算器214针对16×16宏块510产生一个代表性运动向量MV0,并将其存储在块b0中。MB-A向量存储管理器215从块b0中读出MV0,并将其存储在位于b0右侧的MB-A向量存储位置A0511中。另外,MB-BCD向量存储管理器216读出块b0的MV0,并将其存储在位于b0下方的MB-BCD向量存储位置N1512中。 
图17B示出了相邻16×8宏块的代表性向量存储位置。在16×16基本宏块被分区为两个16×8宏块520的情形中,运动向量计算器214产生两个代表性运动向量MV0和MV8。运动向量计算器214将MV0存储在块b0中,将MV8存储在块b8中。MB-A向量存储管理器215从块b0和b8中读出MV0和MV8,并将其分别存储在位于b0和b8右侧的MB-A向量存储位置A0521和A2522中。另一方面,MB-BCD向量存储管理器216选择MV8,因为b8比b0更靠近底边。MB-BCD向量存储管理器216随后将该MV8存储在位于b0和b8下方的MB-BCD向量存储位置N1523中。 
图18A示出了相邻8×16宏块的代表性向量存储位置。在16×16基本宏块被分区为两个8×16宏块530的情形中,运动向量计算器214产生两个代表性运动向量MV0和MV4,并将其分别存储在块b0和b4中。在这种情形中,MB-A向量存储管理器215选择性地从块b4中读出MV4,因为b4比b0更接近右边。MB-A向量存储管理器215随后将其存储在位于b4右侧的MB-A向量存储位置A0531中。另一方面,MB-BCD向量存储管理器216从块b0和b4中读出MV0和MV4,并将其分别存储在位于b0和b4下方的MB-BCD向量存储位置N1532和N3533中。 
图18B示出了相邻8×8宏块的代表性向量存储位置。在16×16基本宏块被分区为8×8宏块540的情形中,运动向量计算器214产生四个代表性运动向量MV0、MV4、MV8和MV12,并将其分别存储在块b0、b4、b8和b12中。在这种情形中,MB-A向量存储管理器215分别从块b4和 b12中读出MV4和MV12,因为b4和b12比b0和b8更接近右边。MB-A向量存储管理器215随后将MV4和MV12存储在MB-A向量存储位置A0541和A2542中。另一方面,MB-BCD向量存储管理器216读出MV8和MV12,因为b8和b12比b0和b4更靠近底边。MB-BCD向量存储管理器216随后将MV8和MV12分别存储在MB-BCD向量存储位置N1543和N3544中。 
图19示出了相邻4×4宏块的代表性向量存储位置。在16×16基本宏块被分区为两个4×4子宏块550的情形中,运动向量计算器214产生十六个代表性运动向量MV0到MV15,并将其分别存储在块b0到b15中。在这种情形中,MB-A向量存储管理器215选择最右侧的运动向量MV5、MV7、MV13和MV15,并将其分别存储在MB-A向量存储位置A0、A1、A2和A3中。类似地,MB-BCD向量存储管理器216选择最底侧的运动向量MV10、MV11、MV14和MV15,并将其分别存储在MB-BCD向量存储位置N1、N2、N3和N4中。尽管未在图19中示出,但是MB-A向量存储管理器215和MB-BCD向量存储管理器216在8×4子宏块和4×8子宏块的情形中将以类似方式工作。 
向量预测中的地址翻译 
这一部分描述了在MVP计算器212参考MB-A或MB-BCD向量存储位置中的外部运动向量时是如何翻译地址的。MVP计算器212给予地址翻译器213一条指定特定的相邻4×4块的信息。在接收到该信息后,地址翻译器213确定是否有与指定的块直接对应的MB-A或MB-BCD向量存储位置。如果没有,则先前在图13和14中讨论的翻译表被用于提供相关向量存储位置的地址。如果有,则地址翻译器213通过咨询另一个翻译表来产生地址,该另一个翻译表将参考图20到23描述。 
图20和21示出了地址翻译表是如何被用于参考MB-A向量存储位置的。具体而言,图20示出了存储在MB-A向量存储位置中的运动向量的源宏块是16×16、16×8、8×16或8×8宏块的情形。图21示出了8×4、4×8或4×4子宏块的情形。 
在MB-A的源宏块尺寸是16×16的情形中,只有单个运动向量MV0 被存储在为MB-A保留的四个可用向量存储位置内的A0中。在这种情形中,尽管MVP计算器212可以指定A0、A1、A2或A3,但是翻译表将所有这些位置翻译为A0的地址,从而允许MVP计算器212从同一位置A0读出MV0。 
在16×8源宏块的情形中,两个运动向量MV0和MV8分别被存储在向量存储位置A0和A2中。当MVP计算器212指定A0或A1时,翻译表将其翻译为A0的地址。当MVP计算器212指定A2或A3时,翻译表将其翻译为A2的地址。因此,MVP计算器212对于A0和A1可以获得MV0,对于A2和A3可以获得MV2。 
在8×16源宏块的情形中,一个运动向量MV4被存储在最顶端的向量存储位置A0中。当MVP计算器212指定A0、A1、A2或A3时,翻译表将所有这些位置翻译为A0的地址。因此,在这种情形中,MVP计算器212读出MV0,而不论其指定哪一个块。 
在8×8源宏块的情形中,两个运动向量MV4和MV12被分别存储在向量存储位置A0和A2中。当MVP计算器212指定A0或A1时,翻译表将其翻译为A0的地址。当MVP计算器212指定A2或A3时,翻译表将其翻译为A2的地址。因此,MVP计算器212对于A0和A1可以获得MV4,对于A2和A3可以获得MV12。 
图21示出了在子分区MB-A块的情形中是如何翻译地址的。图21省略了每个基本宏块的左半部分的图示,因为MB-A向量存储位置存储相同组的代表性运动向量,而不论左半部分可能采取什么样的块结构。 
在源宏块被分区为8×4子宏块的情形中,运动向量MV4、MV6、MV12和MV14被分别存储在向量存储位置A0、A1、A2和A3中。当MVP计算器212指定A0、A1、A2或A3时,翻译表将这些位置翻译为其各自的地址。 
在4×8子宏块的情形中,运动向量MV5和MV13被分别存储在向量存储位置A0和A2中。当MVP计算器212指定A0或A1时,翻译表将其翻译为A0的地址。当MVP计算器212指定A2或A3时,翻译表将其翻译为A2的地址。
在4×4子宏块的情形中,运动向量MV5、MV7、MV13和MV15被分别存储在向量存储位置A0、A1、A2和A3中。当MVP计算器212指定A0、A1、A2或A3时,翻译表将这些位置翻译为其各自的地址。 
从图20和21中可见,地址翻译器213通过咨询其本地地址翻译表,将指定的MB-A块位置翻译为规定的存储器地址。所获得的地址被传递到MVP计算器212以用于读出期望的代表性运动向量。 
对于MB-BCD向量存储位置发生类似的地址翻译过程。具体而言,图22和23示出了地址翻译器213是如何使用地址翻译表来参考MB-BCD向量存储位置的。更具体而言,图22示出了在存储在MB-BCD向量存储位置中的运动向量的源宏块是16×16、16×8、8×16或8×8宏块的情形中的地址翻译,而图23示出了8×4、4×8或4×4子宏块的情形。 
在源宏块尺寸是16×16的情形中,单个运动向量MV0被存储在MB-BCD的四个可用向量存储位置外的N1中。当MVP计算器212指定N1、N2、N3或N4时,翻译表将其翻译为N1的地址,从而允许MVP计算器212读出MV0,而不论其指定了哪一个块。 
在16×8宏块的情形中,单个运动向量MV8被存储在向量存储位置N1中。当MVP计算器212指定N1、N2、N3或N4时,翻译表将其翻译为N1的地址,从而允许MVP计算器212读出MV8,而不论其指定了哪一个块。 
在8×16宏块的情形中,运动向量MV0和MV4被分别存储在向量存储位置N1和N3中。当MVP计算器212指定N1或N2时,翻译表将其翻译为N1的地址。当MVP计算器212指定N3或N4时,翻译表将其翻译为N3的地址。因此,MVP计算器212对于N1和N2可以获得MV0,对于N3和N4可以获得MV4。 
在8×8宏块的情形中,运动向量MV8和MV12被分别存储在向量存储位置N1和N3中。当MVP计算器212指定N1或N2时,翻译表将其翻译为N1的地址。当MVP计算器212指定N3或N4时,翻译表将其翻译为N3的地址。因此,MVP计算器212对于N1和N2可以获得MV8,对于N3和N4可以获得MV12。
图23示出了在子分区MB-BCD块的情形中是如何翻译地址的。图23省略了每个基本宏块的上半部分的图示,因为MB-BCD向量存储位置存储相同组的代表性运动向量,而不论上半部分可能采取什么样的块结构。 
在8×4子宏块的情形中,运动向量MV8和MV12被存储在向量存储位置N1和N3中。当MVP计算器212指定N1或N2时,翻译表将其翻译为N1的地址。当MVP计算器212指定N3或N4时,翻译表将其翻译为N3的地址。 
在4×8子宏块的情形中,运动向量MV8、MV9、MV12和MV13被分别存储在向量存储位置N1、N2、N3和N4中。当MVP计算器212指定N1、N2、N3或N4时,翻译表将这些位置翻译为其各自的地址。 
在4×4子宏块的情形中,运动向量MV10、MV11、MV14和MV15被分别存储在向量存储位置N1、N2、N3和N4中。当MVP计算器212指定N1、N2、N3或N4时,翻译表将这些位置翻译为其各自的地址。 
从图22和23中可见,地址翻译器213通过咨询其本地地址翻译表,将指定的MB-BCD块位置翻译为规定的存储器地址。所获得的地址被传递到MVP计算器212以用于读出期望的代表性运动向量。 
向量写周期的减少 
上述部分已经描述了地址翻译器213是如何提供存储器地址以供MVP计算器212读取参考运动向量来进行向量预测的。本实施例的这种布置消除了运动向量计算器214在多个存储器位置中扩展每个计算的运动向量以供以后参考的需要。 
通过去除不必要的向量写周期,本实施例减少了计算运动向量所需的时间。例如,在16×16宏块的情形中,传统的向量计算过程花费十六个写周期来保存计算的运动向量,花费四个写周期来填充MB-A向量存储位置,并花费另外四个写周期来填充MB-BCD向量存储位置。这意味着该过程包括24个存储器写周期。与此相反,本实施例花费一个写周期来保存计算的运动向量,花费另一个写周期来填充MB-A向量存储位置,并花费另一个写周期来填充MB-BCD向量存储位置。即,本实施例只需要三个写周期来处理16×16宏块。这意味着写周期的数目最大可减少21个周期。
对于另一种情况,考虑8×8宏块。尽管如同16×16宏块的情形一样,传统过程花费十六个写周期,但是本实施例花费八个周期来保存计算的运动向量,花费两个周期来填充MB-A向量存储位置,并花费另外两个周期来填充MB-BCD向量存储位置。本实施例只需要12个存储器写周期,最大减少了12个周期。当向量计算过程应对更大尺寸的宏块时,或者当其处理更宽和更精细的图片时,该写周期减少的效果将更加明显。 
总结 
根据本发明,所提出的帧间预测处理器采用地址计算器来自动提供在帧间预测过程中参考的每个运动向量的存储器地址。该地址计算器消除了在存储器的多个存储位置中复制计算的运动向量以允许使用最小块尺寸的需要。从而,所提出的帧间预测处理器减少了运动向量计算的处理时间。本发明可用于利用其快速运动补偿的优点增大视频编码和解码设备的处理速度。 
前述内容被认为仅是说明了本发明的原理。另外,由于本领域技术人员将很容易进行大量修改和改变,因此并不希望将本发明限制在这里示出和描述的实际构造和应用,所以,所有合适的修改和等同物都可被认为落在权利要求及其等同物中的本发明的范围内。

Claims (7)

1.一种以块为基础执行视频帧的帧间预测的帧间预测处理器,包括:
参考图片存储器,其提供与最小尺寸块一一对应的向量存储位置,以存储针对可变尺寸的块计算的运动向量;
地址计算器,其响应于对在当前块的帧间预测时参考的与当前块相邻的块的指定,至少基于被指定的与当前块相邻的块的尺寸计算所述参考图片存储器中向量存储位置的地址;
预测值计算器,其向所述地址计算器指定与当前块相邻的块以便从其获得针对被指定的相邻块计算的运动向量的地址,从所获得的所述参考图片存储器的地址中读出所述运动向量,基于从所述参考图片存储器中读出的运动向量确定所述当前块的运动向量预测值,并从所确定的运动向量预测值和经解码的运动向量差重构所述当前块的运动向量;以及
参考图片存储管理器,其将经重构的运动向量写入到在所述参考图片存储器内保留的向量存储位置中。
2.如权利要求1所述的帧间预测处理器,其中:
所述地址计算器包括翻译表,所述翻译表将块尺寸和块位置的每个组合与所述参考图片存储器的特定地址相关联;并且
所述地址计算器使用所述翻译表来基于所述被指定的块的块尺寸和块位置确定所述参考图片存储器中运动向量的地址。
3.如权利要求1所述的帧间预测处理器,其中:
所述参考图片存储器中的向量存储位置包括用于存储所述当前块内的多个块的运动向量的当前块向量存储位置和用于存储与所述当前块相邻的多个块的运动向量的相邻块向量存储位置;并且
在紧接着所述当前块的一个块被选为新的当前块之前,所述参考图片存储管理器将所计算的运动向量从所述当前块向量存储位置拷贝到所述相邻块向量存储位置。
4.如权利要求3所述的帧间预测处理器,其中所述地址计算器包括:
第一翻译表,其将所述块尺寸和块位置的每个组合与所述当前块向量存储位置之一的地址相关联;以及
第二翻译表,其将所述块尺寸和块位置的每个组合与所述相邻块向量存储位置之一的地址相关联,
其中所述地址计算器使用所述第一和第二翻译表来确定与所述被指定的块相对应的向量存储位置的地址。
5.一种以块为基础执行视频帧的帧间预测的方法,包括以下步骤:
提供与最小尺寸块一一对应的向量存储位置,以存储针对可变尺寸的块计算的运动向量;
指定与当前块相邻的多个块;
响应于对在当前块的帧间预测时参考的与当前块相邻的块的指定,至少基于所述被指定的相邻块中每一个的尺寸来计算与所述被指定的相邻块相对应的向量存储位置的地址;
从所计算的地址中读出运动向量;
基于被读出的运动向量确定所述当前块的运动向量预测值;
从所确定的运动向量预测值和经解码的运动向量差重构所述当前块的运动向量;以及
将经重构的运动向量写入到在所述参考图片存储器内保留的向量存储位置中。
6.一种通过以块为基础执行源图片和参考图片之间的运动补偿预测来将视频帧编码为压缩视频数据的视频编码设备,包括:
参考图片存储器,其提供与最小尺寸块一一对应的向量存储位置,以存储针对可变尺寸的块计算的运动向量;
地址计算器,其至少基于被指定的与当前块相邻的块的尺寸计算所述参考图片存储器中向量存储位置的地址;
预测值计算器,其向所述地址计算器指定与当前块相邻的块以便从其获得针对被指定的相邻块计算的运动向量的地址,从所获得的所述参考图片存储器的地址中读出所述运动向量,基于从所述参考图片存储器中读出的运动向量确定所述当前块的运动向量预测值,并从所确定的运动向量预测值和经解码的运动向量差重构所述当前块的运动向量;以及
参考图片存储管理器,其将经重构的运动向量写入到在所述参考图片存储器内保留的向量存储位置中。
7.一种从压缩视频信号中重构原始视频帧的视频解码设备,所述压缩视频信号是通过以块为基础执行运动补偿帧间预测产生的,所述设备包括:
参考图片存储器,其提供与最小尺寸块一一对应的向量存储位置,以存储针对可变尺寸的块计算的运动向量;
地址计算器,其至少基于被指定的与当前块相邻的块的尺寸计算所述参考图片存储器中向量存储位置的地址;
预测值计算器,其向所述地址计算器指定与当前块相邻的块以便从其获得针对被指定的相邻块计算的运动向量的地址,从所获得的所述参考图片存储器的地址中读出所述运动向量,基于从所述参考图片存储器中读出的运动向量确定所述当前块的运动向量预测值,并从所确定的运动向量预测值和经解码的运动向量差重构所述当前块的运动向量;以及
参考图片存储管理器,其将经重构的运动向量写入到在所述参考图片存储器内保留的向量存储位置中。
CN2007100004017A 2006-08-17 2007-01-25 具有用于运动向量存储的地址管理机制的帧间预测处理器 Expired - Fee Related CN101127902B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006222395 2006-08-17
JP2006222395A JP4712643B2 (ja) 2006-08-17 2006-08-17 フレーム間予測処理装置、フレーム間予測方法、画像符号化装置及び画像復号装置
JP2006-222395 2006-08-17

Publications (2)

Publication Number Publication Date
CN101127902A CN101127902A (zh) 2008-02-20
CN101127902B true CN101127902B (zh) 2013-05-22

Family

ID=39095799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100004017A Expired - Fee Related CN101127902B (zh) 2006-08-17 2007-01-25 具有用于运动向量存储的地址管理机制的帧间预测处理器

Country Status (3)

Country Link
US (1) US8565308B2 (zh)
JP (1) JP4712643B2 (zh)
CN (1) CN101127902B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI323132B (en) * 2006-12-29 2010-04-01 Ind Tech Res Inst Motion vector (mv) prediction method and apparatus
KR100834443B1 (ko) * 2007-02-27 2008-06-04 삼성전자주식회사 비디오 코덱을 위한 메모리 구조 및 메모리 액세스 방법
WO2010072946A2 (fr) * 2008-12-22 2010-07-01 France Telecom Prediction d'images par repartionnement d'une portion de zone causale de reference, codage et decodage utilisant une telle prediction
KR101452859B1 (ko) * 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
CN104601997B (zh) * 2009-10-20 2018-11-09 夏普株式会社 运动图像编码装置、运动图像解码装置、运动图像编码方法及运动图像解码方法
WO2011125211A1 (ja) 2010-04-08 2011-10-13 株式会社 東芝 画像符号化方法及び画像復号化方法
KR20140011475A (ko) * 2011-01-07 2014-01-28 가부시키가이샤 엔.티.티.도코모 움직임 벡터의 예측 부호화 방법, 예측 부호화 장치, 및 예측 부호화 프로그램, 그리고 움직임 벡터의 예측 복호 방법, 예측 복호 장치, 및 예측 복호 프로그램
US8755437B2 (en) * 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
HUE056367T2 (hu) * 2011-03-21 2022-02-28 Lg Electronics Inc Eljárás mozgásvektor elõrejelzõk kiválasztására
CN102223543B (zh) * 2011-06-13 2013-09-04 四川虹微技术有限公司 参考像素读取存储系统
US9699456B2 (en) * 2011-07-20 2017-07-04 Qualcomm Incorporated Buffering prediction data in video coding
US20140219361A1 (en) * 2013-02-01 2014-08-07 Samplify Systems, Inc. Image data encoding for access by raster and by macroblock
EP3099072A1 (en) 2015-05-28 2016-11-30 Parabola Research Limited Method, system and device for image and video coding
CN106331724B (zh) * 2015-06-26 2019-05-24 北京君正集成电路股份有限公司 一种hevc中的运动矢量预测方法及装置
US20170188033A1 (en) * 2015-12-23 2017-06-29 Mediatek Inc. Method and Apparatus of Bandwidth Estimation and Reduction for Video Coding
KR102411911B1 (ko) * 2015-12-24 2022-06-22 삼성전자주식회사 프레임 레이트 변환 장치 및 그 프레임 레이트 변환 방법
US11638027B2 (en) 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
US10592451B2 (en) 2017-04-26 2020-03-17 International Business Machines Corporation Memory access optimization for an I/O adapter in a processor complex
US10572286B2 (en) * 2017-04-26 2020-02-25 International Business Machines Corporation Memory access optimization in a processor complex
JP6936641B2 (ja) * 2017-07-05 2021-09-22 キヤノン株式会社 画像処理装置、画像処理方法
US20230107012A1 (en) * 2021-10-05 2023-04-06 Mellanox Technologies, Ltd. Hardware accelerated video encoding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1248861A (zh) * 1998-07-13 2000-03-29 摩托罗拉公司 对视频信号进行编码和解码的方法和装置
CN1622627A (zh) * 2004-12-21 2005-06-01 北京中星微电子有限公司 视频编解码过程中宏块数据读取的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3569143B2 (ja) 1997-12-25 2004-09-22 松下電器産業株式会社 画像データ圧縮伸長処理装置
JP2000224521A (ja) * 1999-01-29 2000-08-11 Nec Corp Iピクチャ高速サーチ装置
KR100450746B1 (ko) * 2001-12-15 2004-10-01 한국전자통신연구원 계층탐색 기반의 혼합형 움직임 추정 장치 및 방법
CN1265649C (zh) * 2002-01-24 2006-07-19 株式会社日立制作所 运动图像的编码方法、解码方法、编码装置及解码装置
JP2004088722A (ja) * 2002-03-04 2004-03-18 Matsushita Electric Ind Co Ltd 動画像符号化方法および動画像復号化方法
JP4724351B2 (ja) 2002-07-15 2011-07-13 三菱電機株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
JP3934568B2 (ja) 2003-03-04 2007-06-20 松下電器産業株式会社 動画符号化方法および装置
US7852938B2 (en) * 2004-07-20 2010-12-14 Qualcomm Incorporated Method and apparatus for motion vector processing
JP2006074474A (ja) * 2004-09-02 2006-03-16 Toshiba Corp 動画像符号化装置、動画像符号化方法および動画像符号化プログラム
JP2006074520A (ja) * 2004-09-02 2006-03-16 Matsushita Electric Ind Co Ltd 動きベクトル検出装置
KR101104828B1 (ko) * 2004-12-09 2012-01-16 삼성전자주식회사 움직임 벡터 연산 장치 및 그 방법
US20060126739A1 (en) * 2004-12-15 2006-06-15 Stoner Michael D SIMD optimization for H.264 variable block size motion estimation algorithm
US7965773B1 (en) * 2005-06-30 2011-06-21 Advanced Micro Devices, Inc. Macroblock cache

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1248861A (zh) * 1998-07-13 2000-03-29 摩托罗拉公司 对视频信号进行编码和解码的方法和装置
CN1622627A (zh) * 2004-12-21 2005-06-01 北京中星微电子有限公司 视频编解码过程中宏块数据读取的方法

Also Published As

Publication number Publication date
JP2008048200A (ja) 2008-02-28
US8565308B2 (en) 2013-10-22
JP4712643B2 (ja) 2011-06-29
CN101127902A (zh) 2008-02-20
US20080043842A1 (en) 2008-02-21

Similar Documents

Publication Publication Date Title
CN101127902B (zh) 具有用于运动向量存储的地址管理机制的帧间预测处理器
CN101127913B (zh) 具有提供参考运动向量的位置的机制的帧间预测处理器
CN113170181B (zh) 块内拷贝模式中的仿射继承方法
US11109050B2 (en) Video encoding and decoding
US9154790B2 (en) Methods for encoding/decoding of video using common merging candidate set of asymmetric partitions
JP2021022936A (ja) 画像予測方法および関連装置
TW201742465A (zh) 用於視訊寫碼之仿射運動預測
JP2022506767A (ja) ペアワイズ平均候補計算におけるラウンディング
TW201931854A (zh) 統一合併候選列表運用
CN112005551B (zh) 一种视频图像预测方法及装置
TWI536812B (zh) 針對三維(3d)視訊之基於鄰近區塊的差異向量之約束
CN112567752A (zh) 产生仿射候选的方法及装置
CN103493492A (zh) 用于对多视点视频进行编码和解码的方法和设备
JP2010504010A (ja) ビデオシーケンスにおけるデータ圧縮方法
CN109922336A (zh) 视频数据的帧间预测方法和装置
CN113709458B (zh) 视频编解码中的位移矢量预测方法、装置及设备
JP7323220B2 (ja) 大域的運動を伴うフレームにおける候補
US20220360814A1 (en) Enhanced motion vector prediction
CN113475075B (zh) 基于共享Merge列表的运动预测
TW202145784A (zh) 幀間預測方法、編碼器、解碼器以及電腦儲存媒介
CN113767626B (zh) 视频增强的方法及装置
JP2014150467A (ja) 動き推定装置及び動き推定プログラム
JP2009260421A (ja) 動画像処理システム、符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
JP2002335529A (ja) 動画像符号化方法および装置
KR100708183B1 (ko) 움직임 추정을 위한 영상 데이터 저장 장치 및 그 데이터저장 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: FUJITSU MICROELECTRONICS CO., LTD.

Free format text: FORMER OWNER: FUJITSU LIMITED

Effective date: 20081024

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20081024

Address after: Tokyo, Japan, Japan

Applicant after: Fujitsu Microelectronics Ltd.

Address before: Kanagawa

Applicant before: Fujitsu Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SUOSI FUTURE CO., LTD.

Free format text: FORMER OWNER: FUJITSU SEMICONDUCTOR CO., LTD.

Effective date: 20150515

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150515

Address after: Kanagawa

Patentee after: Co., Ltd. Suo Si future

Address before: Kanagawa

Patentee before: Fujitsu Semiconductor Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130522

Termination date: 20210125

CF01 Termination of patent right due to non-payment of annual fee