具有提供参考运动向量的读取缓冲器的运动预测处理器的制作方法

文档序号:7659129阅读:240来源:国知局
专利名称:具有提供参考运动向量的读取缓冲器的运动预测处理器的制作方法
具有提供参考运动向量的读取缓冲器的运动预测处理器
絲舰
本发明涉及逐块地执行视频帧的帧间预测的设备,以及利用该设备的 视频编码和解码设备。更具体而言,本发明涉及适合于这样一种操作模式 的帧间预测处理器、视频编码设备和视频解码设备,在该操作模式中,当
前块(current block)的运动向量是直接根据先前计算出的参考图片中共位 块(co-locatedblock)的运动向量来计算的。
絲絲
数字视频压縮技术被广泛用于许多应用中。MPEG和IL264就是该技 术领域中的标准规范中的两种,其中MPEG代表"运动图片专家组"。这 些标准中使用的编码和解码算法将每个给定图片划分成小的区域,并且利 用运动补偿技术来处理这些小区域。这种图片区域被称为"宏块
(macroblock)"。视频编码过程包括帧内预测和帧间预测。帧内预测通 过利用正交变换、量化和其他数据压縮算法减小了单个帧内的冗余。另一 方面,帧间预测通过对运动补偿残余(即当前帧和经运动补偿的参考帧之 间的差)进行提取和编码来减小连续的帧之间的冗余。所得到的视频数据 随后被进行熵编码以便传输或存储。视频解码过程颠倒上述步骤,以根据 压縮视频重建原始视频。
一些标准的编码算法包括MPEG-2和H.264,它们自适应性地选择基 于帧的编码模式或基于场的编码模式来处理交织的视频信号。这些算法还 允许对于每两个垂直相邻的宏块(或"宏块对")在帧间预测和场间预测 之间切换以进行运动向量计算。该编码模式被称为"宏块自适应场/帧"
(MBAFF)模式。使用这三种模式中的哪一种可由"编码类型"参数逐个 图片地指定。在本说明书中,这三种编码模式将被称为"FRM"(帧)、
"FLD"(场)和"MBAFF"模式。
图33说明了对于每种不同的编码类型要处理的宏块的顺序。图33最 上方部分示出了编码过程以何种顺序选择构成一幅图片的16x16像素宏 块。具体而言,图33的左上部分示出了FRM编码类型的情况,在该种模 式中,构成一帧的16x16个像素的宏块被从左到右、从上到下地处理。这 意味着奇数行和偶数行被交替选择以供处理。图33的上方中间部分示出 了 "FLD"编码类型的情况,在该种模式中,视频数据作为两个单独的场 (即前场(top field)和后场(bottom field))被处理。编码过程从前场 (或奇数行)开始,然后在后续的场同步时段中进行到后场(或偶数 行),如图33的下方中间部分所示。
图33的右上角示出了 MBAFF编码类型的情况,其中逐宏块对地处理 帧。场行的处理顺序取决于所关注的宏块对是要被帧间编码还是场间编码 的。在帧间编码宏块对(以下称为"帧对")的情况下,奇数行和偶数行 被交替处理,如图33的右下部分所示。在场间编码宏块对(以下称为 "场对")的情况下,奇数行先于偶数行被处理,因为这种对的第一和第 二宏块分别对应于前场数据和后场数据。
为了提高包含边缘和轮廓的宏块的运动向量预测的精度, 一些现有的 编码算法将这种宏块分割成更小的块,并且计算每个块的运动向量。例 如,H.264支持宏块分区,这种宏块分区根据需要将大小为16x16像素的 基本宏块划分成各种块大小,包括最小的4x4像素的子分区。
图34A至34E示出了 H.264中定义的宏块和子宏块的各种大小。图 34A所示的是大小为16x16像素的基本宏块。在本说明书中适当时,块的 大小以表示宽度乘高度的前缀的形式指定(例如"16x16宏块")。
图34A的16x16基本宏块可被垂直分区成两个16x8宏块12 (图 34B),或被水平分区成两个8x16宏块13 (图34),或者在两个方向上 被分区成四个8x8宏块14 (图34D)。如虚线所示,16x8宏块12被从上 到下处理。8x16宏块13被从左到右处理。8x8宏块14被从左上到右上然 后从左下到右下处理。
R264还允许8x8宏块14被划分成更小的称为"子宏块"的分区。上 述大小前缀也可应用到这些子宏块。在图34E所示的示例中,右上的8x8宏块被划分成两个8x4子宏块,左下的8x8宏块被划分成两个4x8子宏 块,而右下的8x8宏块被划分成四个4x4子宏块。假定子宏块被按与图 34A至34D所示的宏块分区中相同的顺序处理。
上述视频编码系统中的帧间预测过程通过逐宏块地将当前帧与过去帧 相比较来计算运动向量。通过只对根据每个帧的宏块图像计算的运动向量 和根据周围块的宏块图像预测出的运动向量之间的差进行编码,减少了被 编码的数据的量。为了减少被编码数据的量,H.264规范允许视频编码设 备选择直接模式编码,这种直接模式编码仅基于先前计算出的另一帧的同 一块的运动向量来计算当前块的运动向量。
图35示出了直接模式中的运动向量计算的概念。直接模式编码可应 用到双向编码的图片(B图片)。在该模式中,直接根据参考图片中同一 位置处的宏块(共位宏块或MBcol)的运动向量计算当前图片(CurrPic) 中当前宏块(CuitMB)的运动向量。在适当时,参考图片可由符号 "ColPic"来指代,意思是包含共位宏块的图片。
在直接模式中,当前宏块的前向和后向运动向量是根据先前针对在显 示顺序上在当前图片之后的参考图片中的共位块计算的共位运动向量来得 出的。具体而言,直接模式向量计算是通过根据当前图片和参考图片之间 的时间距离来縮放共位向量而实现的。
直接模式向量计算要求计算出的运动向量被保存在存储器中,并且之 后被读出作为共位块处的参考向量。但是,如上所述,图片可能是按不同 模式编码的,并且宏块可能是按各种方式来分区的。因此,控制存储器读 取操作以读出用于直接模式预测的运动向量将会是一个复杂的过程。具体 而言,当除了 FRM和FLD模式外还允许MBAFF模式时,对于当前宏块 和参考宏块都会存在大量的块大小和块位置样式(pattern)。这种组合的 多样性使得非常难以控制向量读取操作。
在未经实审日本专利申请公布No. 2006-166459的第0078至0092段 和图IO中提出了一种提高MBAFF模式中运动向量预测的效率的技术。根 据该技术,所提出的设备使用上侧(top-side)存储器来存储上方相邻宏块 中的下方块群组的运动向量,并使用左侧存储器来存储左方相邻宏块中的 右方块群组的运动向量。上侧存储器提供了单独的存储体来存储宏块对的 上方部分和下方部分的运动向量。当前块的预测运动向量是参考存储在这 些存储器中的运动向量来计算的。
从上文可以看出,具有所有的FRM、 FLD和MBAFF编码类型的直接 模式的实现要求对参考运动向量的读取操作进行复杂控制,从而给处理器 施加了沉重的处理负荷,并且向电路设计中引入了更高的复杂度。简化直 接模式处理的传统方法是将宏块分区成最小大小块(即大小为4x4像素的 块),并且针对每一个这样的块存储运动向量。即,传统方法保留并实际 使用了与最小大小分区的数目相同数目的存储器地址,而不管参考宏块实 际是如何被分区的。所产生的问题是编码和解码过程必须应对由大量存储 器访问周期和运动向量计算量增加引起的沉重的处理负荷。另一个问题是 编码过程可能会经历较差的视频压縮比,这是由于所产生的被编码数据量 增加而造成的。

发明内容
基于以上原因,本发明的一个目的是提供一种使得直接模式运动预测 能够得到更广泛使用并且减轻处理负荷的运动预测处理器。本发明的另一 个目的是提供使用这种运动预测处理器的视频编码和解码设备。
为了实现上述第一目的,本发明提供了一种逐基本块地执行帧间运动 预测的运动预测处理器。该运动预测处理器被耦合到提供多个存储器区域 的向量存储器以及组织成先进先出数据存储装置的第一和第二缓冲器。该 运动预测处理器包括写入控制器、读取控制器和向量计算器等等元件。写 入控制器将构成参考图片的多个块行(block line)的运动向量写入在与块 行相对应的存储器区域中,以便用在针对当前图片的运动预测过程中,其 中每个块行由多个水平对齐的基本块形成。读取控制器将存储的运动向量 从向量存储器的每个存储器区域传送到第一和第二缓沖器中的至少一个。 进行该数据传送的方式是根据若干个参数确定的,这些参数是当前图片 是帧图片还是场图片、参考图片是帧图片还是场图片,以及是否指定了块 自适应预测模式。在这里块自适应预测模式是指允许针对每个基本块选择
帧预测或场预测的操作模式。向量计算器基于从第一和第二缓冲器顺序地 读出的运动向量,计算当前图片的每个基本块的运动向量。
另外,为了实现上述第二目的,本发明提供了一种通过逐基本块地执 行帧间运动预测来将视频信号编码成压縮视频数据的视频编码设备。该视 频编码设备包括向量存储器、第一和第二缓冲器、写入控制器、读取控制 器和向量计算器等元件。向量存储器提供多个存储器区域。第一和第二缓 冲器被组织成先进先出数据存储装置。写入控制器将构成参考图片的多个 块行的运动向量写入在与块行相对应的存储器区域中,以便用在针对当前 图片的运动预测过程中,其中每个块行由多个水平对齐的基本块形成。读 取控制器将存储的运动向量从向量存储器的每个存储器区域传送到第一和 第二缓冲器中的至少一个。进行该数据传送的方式是根据若干个参数确定 的,这些参数是当前图片是帧图片还是场图片、参考图片是帧图片还是 场图片以及是否指定了块自适应预测模式。在这里,块自适应预测模式是 指允许针对每个基本块选择帧预测或场预测的操作模式。向量计算器基于 从第一和第二缓冲器顺序地读出的运动向量,计算当前图片的每个基本块 的运动向量。
此外,为了实现上述第二目的,本发明提供了一种根据通过逐基本块 地执行帧间运动预测而产生的压縮视频信号重建原始视频图片的视频解码 设备。该视频解码设备包括向量存储器、第一和第二缓冲器、写入控制 器、读取控制器和向量计算器等元件。向量存储器提供多个存储器区域。 第一和第二缓冲器被组织成先进先出数据存储装置。写入控制器将构成参
考图片的多个块行的运动向量写入在与块行相对应的存储器区域中,以便 用在针对当前图片的运动预测过程中,其中每个块行由多个水平对齐的基 本块形成。读取控制器将存储的运动向量从向量存储器的每个存储器区域 传送到第一和第二缓冲器中的至少一个。进行该数据传送的方式是根据若 干个参数确定的,这些参数是当前图片是帧图片还是场图片、参考图片 是帧图片还是场图片以及是否指定了块自适应预测模式。在这里,块自适 应预测模式是指允许针对每个基本块选择帧预测或场预测的操作模式。向 量计算器基于从第一和第二缓冲器顺序地读出的运动向量,计算当前图片的每个基本块的运动向量。
当结合附图理解以下描述时,可以很清楚地看出本发明的上述和其他 目的、特征和优点,其中附图以示例方式图示了本发明的优选实施例。


图1是根据本发明一个实施例的运动预测处理器的框图。
图2是根据本发明一个实施例的视频编码设备的框图。
图3是根据本发明一个实施例的视频解码设备的框图。
图4是图示用于直接模式的存储器控制功能的框图。
图5是示出向量写入控制器的示例性内部结构的框图。
图6A至6C示出参考图片数据如何被存储在外部存储器中。
图7示出读取模式判决表。
图8A、 8B和9A至9C示出了在帧/场类型的各种组合中当前块和共 位块之间的关系。
图IOA、 IOB、 IIA、 IIB和12A至12C示出了在不同读取模式中如
何读取数据。
图13说明了读取模式0中的宏块顺序。
图14说明了读取模式1中的宏块顺序。
图15说明了读取模式2中的宏块顺序。
图16说明了读取模式3中的宏块顺序。
图17说明了读取模式4中的宏块顺序。
图18说明了读取模式5中的宏块顺序。
图19说明了读取模式6中的宏块顺序。
图20是向量读取控制器的框图,重点在于其针对内部缓冲器的读取 控制功能。
图21示意性地示出了数据如何被传送到两个内部缓冲器。
图22示意性地示出了数据如何被传送到单个内部缓冲器。
图23A和23B示出了宏块行的示例性块配置,用于说明数据读取会话。
图24是示出相邻宏块行的数据如何被存储在两个内部缓冲器中的定 时图。
图25是示出从两个内部缓冲器读取数据的过程的定时图。
图26示出了图片中部的切片(slice)类型的改变。
图27A和27B示出了在切片边界处选择新的参考图片的情况。
图28示出了宏块类型查找表。
图29示出了针对MBColMode=0的当前宏块类型的示例。
图30示出了针对MBColMode=l的当前宏块类型的示例。
图31示出了针对MBColMode=2或3的当前宏块类型的示例。
图32示出了针对MBColMod"的当前宏块类型的示例。
图33说明了对于每种不同编码类型将要处理的宏块的顺序。
图34A至34E示出了 H.264中定义的宏块和子宏块的各种大小。
图35示出了直接模式中的运动向量计算的概念。
现在将参考附图详细描述本发明的优选实施例,在所有附图中,类似 的标号指代类似的元素。本说明书开始于对本发明的概述,然后描述本发 明的更具体的实施例。在本文的其余部分,块(即图片分区)的大小和形 状以NxM的形式指示,其中N和M分别表示宽度和髙度。例如,术语 "16x8块"表示宽为16像素并且髙为8像素的块。
图1是根据本发明一个实施例的运动预测处理器的框图。图示的运动 预测处理器1提供了帧间运动估计功能,以用于以压縮形式对视频信号进 行编码的编码设备中,以及根据编码的信号再现原始视频信号的视频解码 设备中。运动预测处理器1将视频帧划分成固定大小的基本块,例如 16x16块,以逐块地执行运动估计。
运动预测处理器1被用于直接根据所选参考图片的运动向量计算当前 图片的每个块的运动向量。该计算被称为直接模式预测。根据本实施例, 运动预测处理器1包括写入控制器2、读取控制器3和向量计算器4,以 实现该目的。运动预测处理器1还使用了向量存储器10以及两个缓冲器11和12来进行直接模式处理。向量存储器10被划分成多个存储器区域 10-1、 10-2、 10-3等等,每个区域允许顺序寻址以进行读取访问和写入访 问。缓冲器11和12充当先进先出(FIFO)数据存储装置。向量存储器IO 以及缓冲器11和12可实现为运动预测处理器1的集成部分,或者实现为 单独的组件。
写入控制器2将构成参考图片20的多个块行20-l、 20-2、 20-3等等的 运动向量写入相应的存储器区域10-1、 10-2、 10-3等等中,以便用于后续 的针对当前图片的运动预测过程中。参考图片20的每个块行由多个水平 对齐的基本块形成。写入控制器2逐块行地写入参考运动向量。
读取控制器3将存储的运动向量从每个存储器区域10-1、 10-2、 10-3 等等传送到两个缓冲器11和12。此时,读取控制器3根据以下条件确定 存储器区域10-1、 10-2、 10-3等等中的数据应当如何被传送到缓冲器11 和12:当前图片是帧图片还是场图片,参考图片20是帧图片还是场图 片,块自适应预测模式是否被使用。在这里,术语"块自适应预测模式" 是指允许为每个基本块选择帧预测或场预测的操作模式,就像H.264的 MBAFF模式中那样。
利用从每个缓冲器11和12顺序读出的运动向量,向量计算器4预测 当前图片的每个基本块的运动向量,从而执行直接模式运动向量计算。
在直接模式和块自适应预测模式被组合的情况下,读取控制器3必须 应对大量样式的图片类型和条件。为了简化控制,传统方法将参考图片的 块划分成具有最小大小(例如4x4)的子块,并且将这些子块的每一个实 例的运动向量存储在存储器中。这意味着存储器存储的运动向量比原本针 对参考图片20计算的要多,从而导致针对直接模式计算的存储器访问周 期数目增大。
另一方面,根据所提出的运动预测处理器l,向量存储器10只存储原 本针对参考图片20计算的那么多的运动向量,而无需为了适应于最小大 小的块而对它们进行相乘。另外,对向量存储器10的读取和写入操作是 逐块行地执行的。艮卩,与不同的块行20-1、 20-2、 20-3等等相对应的运动 向量被存储在单独的存储器区域10-1、 10-2、 10-3等等中,从而使得能够
利用顺序寻址在单次存储器访问会话中读取或写入所需的最少量的运动向
量。从而,本实施例使对向量存储器10的访问周期的数目达到最低限
度,进而减轻了直接模式计算的处理负荷。这还导致处理速度的增大和功 耗的下降。
读取控制器3根据当前图片和参考图片20的编码模式(即它们是帧 图片还是场图片)以及块自适应预测模式的使用,控制向量存储器10的 存储器读取周期,以将运动向量从每个存储器区域10-1、 10-2、 10-3等等 传送到两个缓冲器11和12。读取控制器3的这种机制根据图片和块的各 种编码条件,确保了向量计算器4按所需顺序从缓冲器11和12接收所需 的运动向量。即,向量计算器4可通过简单地从缓冲器ll和12读出向量 数据序列来获得所需的基本块位置的运动向量,从而利用最少量的读取操 作执行向量计算。
读取控制器3可根据上述图片条件使用一些预定义的表来控制从每个 存储器区域10-1、 10-2、 10-3等等到缓冲器11和12的数据传送操作。这 种基于表的实现方式简化了对存储器读取操作的控制。
根据本发明的上述实施例的运动预测处理器1使得能够扩展直接模式 运动预测的应用,而不会增大处理负荷。本实施例利用合理量的计算执行 直接模式预测,尤其是在参考图片20和当前图片具有不同的帧/场编码类 型的情况下或者在对两幅图片中的至少一个指定了块自适应预测模式的情 况下更是如此。
视频编码设备
这一部分和随后的部分将讨论H.264视频编码和解码设备,作为本发 明的更具体实施例。IL264标准提供了以下宏块大小选项16x16、 16x8、 8x16和8x8。如果选择8x8模式,则四个8x8宏块分区中的每一个可被分 割成具有以下大小的更小的块8x8、 8x4、 4x8和4x4 (被称为宏块子分 区)。基线编码(baseline coding)算法逐宏块地对每个给定的源帧进行编 码,在利用帧内的空间冗余的帧内编码和利用连续的帧之间的时间冗余的 帧间编码之间切换。视频解码过程颠倒上述步骤,以根据压缩视频重建原 始视频。
图2是根据本发明一个实施例的视频编码设备的框图。图示的视频编 码设备100包括以下元件宏块划分器101、运动向量估计器102、过去 帧缓冲器103、帧间预测器104、帧内预测器105、当前帧缓冲器106、预 测模式选择器107、减法器108、正交变换和量化单元109、熵编码器 110、解量化和逆正交变换单元111、加法器112、解块滤波器113和帧缓 冲器管理器114。
宏块划分器101将给定的源图片划分成预定大小的宏块。运动向量估 计器102将源宏块的视频信号分量与存储在过去帧缓冲器103中的参考宏 块的视频信号分量相比较,从而计算该源宏块的运动向量。由于相邻块的 运动向量经常是彼此非常相关的,因此特定块的运动向量可以根据其周围 块的向量来预测。从而,帧间预测器104根据这种周围运动向量计算运动 向量预测值(MVP),然后通过从由运动向量估计器102计算出的真实运 动向量中减去MVP来计算运动向量差(MVD)。另一方面,帧内预测器 105对存储在当前帧缓冲器106中的帧执行帧内编码。
预测模式选择器107例如通过将帧间预测器104的预测误差与帧内预 测器105的预测误差相比较,来选择使当前宏块的编码效率达到最大的编 码模式。预测模式选择器107创建编码模式参数以指示选择结果。编码模 式参数被传递到熵编码器110,作为要被熵编码的数据的一部分。编码模 式参数包括宏块分区的大小和子宏块分区的大小。
当选择帧内模式时,经划分的源宏块被从宏块划分器101按原样提供 到正交变换和量化单元109。这些宏块被进行正交变换和量化,并且所得 到的变换系数被传递到熵编码器110以便进行熵编码和传输。变换系数还 被解量化和逆正交变换单元111解码并被发送到当前帧缓冲器106。
当选择帧间模式时,帧间预测器104向熵编码器110提供MVD以用 于熵编码。此夕卜,帧间预测器104产生利用MVP和过去帧缓冲器103中 的图片数据预测的图片,并通过预测模式选择器107将其发送到减法器 108。减法器108逐宏块地从源图片中减去预测的图片,并将结果发送到 正交变换和量化单元109。经量化的输出数据被解量化和逆正交变换单元 111在本地解码,并被引导到加法器112,在这里与通过预测模式选择器 107提供的预测图片相加。所得到的图片被写入到当前帧缓冲器106中。
熵编码器110利用熵编码算法对给定的数据进行编码,从而输出以压 縮形式携带视频数据的经编码视频信号。存储在当前帧缓冲器106中的参 考图片经过解块滤波器113,以平滑宏块之间的边缘区域。所得到的图片 通过帧缓冲器管理器114被输入到过去帧缓冲器103。
视频解码设备
图3是根据本发明一个实施例的视频解码设备的框图。图示的视频解 码设备200由以下元件形成熵解码器201、解量化和逆正交变换单元 202、加法器203、当前帧缓冲器204、帧内预测器205、预测模式选择器 206、解块滤波器207、帧缓冲器管理器208、过去帧缓冲器209和帧间预 测器210。利用这些元件,视频解码设备200对由图2的视频编码设备 IOO产生的经编码的视频信号进行解码。
给定的经编码视频信号被熵解码器201进行熵解码,然后被解量化和 逆正交变换单元202进行解量化和反变换。该解码过程的结果包括编码模 式参数等等,并且在帧间编码的情况下还包括MVD形式的运动向量数 据。基于经解码的编码模式参数,预测模式选择器206选择帧内预测器 205或帧间预测器210。
当选择帧内预测器20 时,由解量化和逆正交变换单元202重建的图 片帧被发送到当前帧缓冲器204。当选择帧间预测器210时,帧间预测器 210通过将MVD和MVP相加来再现原始运动向量。利用所得到的运动向 量,帧间预测器210再现预测图片并通过预测模式选择器206将其提供到 加法器203。在解量化和逆正交变换单元202处解码的预测误差随后被与 该预测图片相加。所得到的经解码图片被输入到当前帧缓冲器204。除了 作为经解码的视频信号输出之外,当前帧缓冲器204中的该图片数据还通 过解块滤波器207和帧缓冲器管理器208被传送到过去帧缓冲器209之 一,在这里解块滤波器207平滑宏块边界。
本发明尤其涉及直接模式中B图片的编码和解码,其中当前块的运动 向量是直接根据参考图片中其共位块的运动向量计算出的。具体而言,当 视频编码设备100在直接模式中工作时,帧间预测器104通过参考在显示
顺序上紧接着的后一个参考图片的同一块,来计算当前所选块的运动向
量。帧间预测器104按与图片之间的时间距离成比例的方式插入该块的运 动向量,从而产生在两个方向上当前块的预测运动向量。如果这些预测的 向量相对于由运动向量估计器102计算的向量具有足够高的精度,则视频 编码设备100产生指示直接模式被用于该图片的代码,而不是对运动向量 差进行编码,从而减少了经编码数据的量。当视频解码设备200在直接模 式中对B图片进行解码时,帧间预测器210基于同一算法,根据参考图片 中其共位块的运动向量再现当前块的运动向量。
用于直接模式编码的存储器控制
直接模式向量计算要求计算出的运动向量被存储在存储器中并在之后 被读出作为共位块的参考向量。这意味着视频编码设备100中的帧间预测 器104以及视频解码设备200中的帧间预测器210必须具有运动向量存储 器和用于该存储器的读取/写入控制器。
本部分将说明用于直接模式编码的存储器控制功能。本实施例允许每 幅图片在FRM、 FLD或MBAFF模式中被编码。由于对于当前图片和参考 图片可能存在编码模式和块分区的多种组合,因此对于传统的编码器和解 码器来说,要控制用于在直接模式中读出运动向量的频繁的存储器访问操 作,是一个很复杂的过程。相反,本实施例只将所需的最少量的运动向量 存储在存储器中,从而避免了频繁的存储器访问。本实施例还通过使用两 个内部缓冲器以及用于从编码模式和块分区的组合中查找存储器地址的 表,从而简化了存储器访问控制。
图4是图示用于直接模式的存储器控制功能的框图。虽然以下描述假 定这些功能是作为上述视频解码设备200 (图3)中的帧间预测器210的 一部分实现的,但它们也可应用到视频编码设备100 (图2)的帧间预测 器104。
如图4所示,帧间预测器210具有用于运动向量计算的运动向量计算 器310和作为直接模式中运动向量的临时存储装置的外部存储器320。为 了实现前述存储器控制功能,帧间预测器210包括向量写入控制器330、 第一和第二内部缓冲器341和342、向量读取控制器350以及分区大小管
理器360。这里假定外部存储器320被实现为与帧间预测器210 (或视频 解码设备200)分开的单独的电路。该外部存储器320还可与一些其他功 能块共享。
运动向量计算器310计算用于运动补偿编码的运动向量,其主要功能 是根据从给定压縮视频流解码的运动向量差来再现原始运动向量。该运动 向量计算器310包括直接运动向量计算器311,用于基于从外部存储器 320读出的参考图片的共位运动向量计算当前图片的运动向量。当对非直 接模式块进行解码时,帧间预测器210使用运动向量差来再现用于运动补 偿的向量。当对直接模式块进行解码时,帧间预测器210使用直接运动向 量计算器311的输出来执行运动补偿。为了供以后参考,该补偿中使用的 运动向量在向量写入控制器330的控制下被保存在外部存储器320中。
图4的配置也可被应用到视频编码设备100,如上所述。在这种情况 下,运动向量计算器310为向量写入控制器330提供在运动向量估计器 102处针对非直接模式块计算的运动向量。对于直接模式块,在直接运动 向量计算器311处计算的运动向量被提供给向量写入控制器330。
外部存储器320是具有足以存储至少一帧的参考运动向量的容量的先 进先出(FIFO)存储器。外部存储器320例如可利用同步动态随机访问存 储器(SDRAM)设备来实现。如后面更详细描述的,其存储空间被划分 成多个(N个)存储器区域320-1至320-N (NS),其中N表示宏块行 (即水平对齐的大小为16x16像素的基本宏块)的数目。这些存储器区域 320-1至320-N具有相等的容量。
向量写入控制器330控制对外部存储器320的写入操作,以存储从运 动向量计算器310提供的作为参考向量的运动向量。如后面将描述的,向 量写入控制器330被设计为选择外部存储器320的适当的存储器空间,以 使得存储的向量可以与当前图片和参考图片的各种编码类型组合相适应地 被很容易地取得作为参考向量。
向量写入控制器330包括偏移量生成器331,用于为外部存储器320 提供写入地址偏移量。该偏移量生成器331通过检査给定的当前图片的 MBAFF和FIELDFLG标志来识别其编码类型。MBAFF标志指示当前图片
是否是在MBAFF模式中编码的,而FIELDFLG指示当前图片是否是在场 模式中编码的。另外,当场模式被选择用于当前宏块时,偏移量生成器 331测试给定的BOTTOMFLG标志,以确定其场类型(即其是前场还是后 场)。偏移量生成器331还测试给定的参数MBPOSY以确定当前宏块
(这里假定它是16x16基本宏块)的垂直位置。基于这些测试的结果,偏 移量生成器331产生偏移量,偏移量被向量写入控制器330用来在写入运 动向量时确定存储器区域的前列地址(top address)。在这种向量写入过 程中,向量写入控制器330向外部存储器320输出运动向量作为写入数据
(WDT),生成写入地址(WAD)并断言写入使能(WEN)信号。
第一和第二内部缓冲器341和342是FIFO存储器,其在向量读取控 制器350的控制之下,在从外部存储器320读出的运动向量被传送到向量 读取控制器350之前,充当其临时存储装置。
向量读取控制器350和分区大小管理器360共享偏移量生成器370, 该偏移量生成器370在每次当前图片的MBPOSY参数改变时产生读取地 址的新的偏移量,使得外部存储器320的适当的存储器区域320-1至320-N将会被选择。与向量读取控制器350和分区大小管理器360相耦合的还 有读取模式判决表381和宏块类型査找表382。在从外部存储器320读出 运动向量时,它们使用读取模式判决表381来根据当前图片和参考图片的 编码类型的组合确定适当的读取模式。宏块类型查找表382被用于根据以 上确定的读取模式以及共位宏块的宏块类型选择当前宏块的适当宏块类 型。术语"宏块类型"是指所关注的基本宏块被分区或者将被分区的方 式。
向量读取控制器350利用当前图片以及参考图片的编码类型(由 MBAFF、 FIELDFLG和BOTTOMFLG指定)和帧/场类型咨询读取模式判 决表381,从外部存储器320读出运动向量。向量读取控制器350通过第 一和第二内部缓冲器341和342将这些运动向量传送到分区大小管理器 360。读取模式判决表381指定如何将从外部存储器320读出的运动向量 引导到第一和第二内部缓冲器341和342,从而确保运动向量计算器310 以适当的顺序接收到必要的参考运动向量,以便计算当前宏块内每个块处的运动向量。
分区大小管理器360的任务是选择从向量读取控制器350提供来的运 动向量应当被应用到的当前图片的适当宏块类型。分区大小管理器360通 过利用参考图片中共位宏块的宏块类型来咨询宏块类型査找表382,从而 完成此任务。这样,分区大小管理器360合并当前宏块的一些分区,从而 减少要经过直接运动向量计算器311的块的数目及其相应运动向量的数 目。在视频编码的上下文中,这也意味着要编码的运动向量的数目的减 少。
外部存储器写入操作
下面将更详细描述上述存储器控制功能。先说明运动向量如何被写入 外部存储器320中。图5是示出向量写入控制器330的示例性内部结构的 框图。可以看出,向量写入控制器330包括偏移量生成器331、写入地址 生成器332和写入数据生成器333 。
写入地址生成器332产生写入地址WAD,该写入地址WAD用于将 从运动向量计算器310提供来的写入运动向量MV以及每个宏块的头部信 息写入到外部存储器320中。这种写入操作对于每个宏块行发生,该宏块 行的前列地址由偏移量生成器331提供的偏移量值确定。写入数据生成器 333根据在运动向量计算器310产生运动向量MV时已识别的关于宏块的 分区大小信息编译头部信息。写入数据生成器333向外部存储器320提供 写入数据WDT,其中包括这些运动向量和它们相应的头部信息。
利用上述元件,向量写入控制器330将参考图片的运动向量MV写入 在外部存储器320中。图6A至6B示出参考图片数据如何被存储在外部存 储器320中,其中"MB_POS"表示图片内的16x16基本宏块的水平位置 和垂直位置。"LINE_SIZE"表示外部存储器320中分配的与每个宏块行 相对应的单个存储器区域320-1至320-N的容量。
当FRM被指定为当前编码类型时,每个宏块行的运动向量被假设为 被顺序输入到其相应的存储器区域320-1至320-N。在FLD类型的情况 下,前场宏块行的运动向量首先进入奇数存储器区域320-1至320-N,然 后后场宏块行的运动向量被引导到偶数存储器区域。该过程对于每一宏块
行重复。结果,外部存储器320中的存储器区域320-1至320-N被交替填 充以前场宏块行的运动向量和后场宏块行的运动向量。这意味着图片的数 据结构最终被从场模式转换成帧模式。
在MBAFF类型的情况下,给定的图片是逐宏块对地处理的,即编码 器将每对垂直相邻的基本宏块作为单个单元来处理。因此,外部存储器 320应当被划分成大小为(LINE_SIZE x 2)的更大的分区。具体而言,每 两个连续的存储器区域320-1至320-N被指派给宏块对的水平行(称为 "宏块对行")。外部存储器320按处理顺序存储这种宏块对行的运动向
独立于上述图片编码类型,每个宏块可按不同方式被分区成多个块。 因此,每个存储器区域320-1至320-N (或者在MBAFF模式情况下每两 个存储器区域)可包含不同量的数据。存储器区域320-1至320-N实际上 可存储比它们能容纳的量更少量的运动向量。在FRAM或FIELD编码模 式中,向量写入控制器330利用不同宏块行的运动向量,从前列地址开始 填充每个存储器区域,而将剩余空间留空。同样,在MBAFF编码模式 中,向量写入控制器330利用不同的宏块对行的运动向量,从前列地址开 始填充每个存储器区域,而将剩余空间留空。
通过以上述方式存储参考运动向量,本实施例消除了将参考图片中的 每个基本宏块转换成4x4子宏块并写入与子宏块数目相同数目的运动向量 的需要。由于存储器在大多数情况下只需要容纳较少的向量,因此本实施 例减少了用于运动向量存储和取得的存储器写入访问以及后续的存储器读 取访问(通过向量读取控制器350),从而提高了处理速度。
外部存储器读取操作
图7示出读取模式判决表381。图示的读取模式判决表381是由以下 用于其主要目的的数据字段形成的"当前图片类型"、"参考图片类 型"和"读取模式"。图7的读取模式判决表381还提供了用于说明目的 的"内部缓冲器"和"MBColMODE"字段(后面描述)。
具体而言,当前图片类型字段包含当前图片的编码类型和帧/场类型。 参考图片类型字段包含参考图片的编码类型和帧/场类型。对于当前图片和
参考图片的编码类型和帧/场类型的每种特定组合,定义了 0至6范围内的 读取模式值。为了避免可能的混淆,图7和后面的图使用了小写字母 "fim"和"fld"来分别表示帧宏块和场宏块,与之相对照的是大写字母 "FRM"和"FLD"表示图片编码类型。
向量读取控制器350利用当前图片和参考图片的指定编码类型和帧/场 类型来咨询读取模式判决表381,从而获得相应的读取模式。该读取模式 告诉向量读取控制器350如何从外部存储器320读出运动向量以及如何将 它们发送到第一和第二内部缓冲器341和342。
为了提供额外的信息,图7的读取模式判决表381给出了 "内部缓冲 器"字段来指示每种读取模式中要使用的内部缓冲器的数目。字段值 "1"意味着只有第一内部缓冲器341被使用,而值"2"表示第一和第二 内部缓冲器341和342都将被使用。图7的读取模式判决表381中还包括 "MBColMode"字段,它表明根据当前宏块和共位宏块的编码类型和帧/ 场类型的组合确定的模式。
注意H.264不包括MBAFF当前图片和FRM参考图片的组合。因此, 读取模式判决表381不具有针对该特定组合的条目。
现参考图8A-8B和9A-9C,将描述由MBColMode值0至4分类的当 前宏块和共位宏块之间的关系。然后给出每种模式中的读取序列的更具体 示例。
图8A、 8B和9A至9C示出了在其帧/场类型的各种组合中当前宏块
和参考宏块的块之间的关系。
在MBColMode=0 (图8A)中,当前宏块(CuitMB)和共位宏块 (MBCol)都是帧编码的图片中的帧宏块。在这种情况下,对于当前宏块 和共位块,最小块大小都是4x4像素。当前宏块中的每个这种块的运动向 量可根据共位宏块内的共位运动向量直接得出。该直接计算过程只要求这 些块的参考运动向量按它们被处理的顺序取得。注意,对图8A-8B和9A-9C中的当前宏块和共位宏块的每个块赋予了一个块号。这表明这些当前块 的运动向量是根据具有相应号码的共位块计算的。
在MBColMode=l的情况下(图8B),当前宏块和共位宏块都是MBAFF图片中的帧宏块或者FRM或MBAFF图片中的场宏块。图8B示 出了这种情况下的最小块大小对于共位宏块是4x4,而对于当前宏块是 8x8。因此,在计算当前块501至504的直接模式运动向量时,只参考共 位宏块的四个子宏块505至508。
在MBColMode2 (图9A)或者MBColMode=3 (图9B)的情况下, 当前宏块是FRM或MBAFF图片中的帧宏块,而共位宏块是FLD图片中 的场宏块。注意,当处理当前宏块的奇数行时应用MBColMode=2,而当 处理其偶数行时应用MBColMode=3。在这些情况下,最小块大小对于共 位宏块是4x4,而对于当前宏块是8x8。
更具体而言,在MBColMode=2的情况下(图9A),在计算当前块 511至514的直接模式运动向量时,参考了共位宏块中的四个子宏块515 至518。另一方面,在MBColMode=3的情况下(图9B),在计算当前 8x8块521至524的直接模式运动向量时,参考了共位宏块中的四个子宏 块525至528。从而,对于当前宏块的奇数行和偶数行的个别向量计算, 编码类型的上述组合要求读出相同的共位宏块数据。
对于所有其他情况应用MBColMode=4。但是,图9C只示出了当前宏 块是场宏块而共位宏块是帧宏块的情况。在这种情况下,当前宏块的运动 估计必须参考两个垂直对齐的共位宏块以便进行前场预测和后场预测。当 前宏块被分区成四个宏块531至534。从图9C可以看出,宏块531和532 的运动向量分别是根据上方共位宏块的子宏块535和536直接得出的。同 样地,宏块533和534的运动向量分别是根据下方共位宏块的子宏块537 和538直接得出的。
图IOA、 IOB、 IIA、 IIB和12A至12C示出了在每种不同读取模式 中如何读出数据,其中圈中的数字表示读取数据的顺序。另外,图13至 19示出了每种不同的读取模式中的宏块顺序。图13至19各自是由三部分 形成的。最上方部分示出了在外部存储器320中写入共位宏块的顺序。中 间部分示出了从外部存储器320读取共位宏块的顺序,其中假定了某种特 定的读取模式。最下方部分示出了当前宏块中直接模式处理的顺序。顺序 由虚线指示。注意,图示的基本宏块分区只是一个示例。符号MV0、
MV1等等表示根据每个基本宏块中的处理顺序包含在该基本宏块中的运动 向量。
当当前图片和参考图片都是FLD图片时,选择读取模式0。在这种编 码类型组合中,共位宏块以图8B所示的方式与当前宏块相关联。当前宏 块的个别场的运动向量可通过读取外部存储器320以获得每个相应共位宏 块的数据来预测。图10A示出了读取模式0中的这个过程。具体而言,前 场数据被有选择地从外部存储器320中的前场宏块行Top一0、 Top_l等等 读出,并被发送到第一内部缓冲器341。这是通过从存储器区域320-1至 320-N中选择奇数存储器区域并将其数据顺序地传送到第一内部缓冲器 341来实现的。同样地(虽然图10A中未示出),后场数据被有选择地从 后场宏块行BottomJ)、 BottomJ等等(即外部存储器320的偶数存储器 区域)读出,并被顺序传送到第一内部缓冲器341。
更具体而言,图13示出了前场参考图片601和前场当前图片602,作 为上述编码类型组合的示例。外部存储器320按图13最上方部分所示的 顺序存储参考图片601。通过简单地遵循这种存储顺序,必要的共位宏块 的数据完全根据每个场的当前宏块的处理顺序(参见图13的最下方部 分)从外部存储器320中出来(参见图13的中间部分)。
最终,通过按图10A所示的顺序读出前场(或后场)共位宏块的数 据,可以获得对于当前宏块的直接模式运动估计来说必要的共位宏块(例 如宏块604)的一系列参考运动向量。读取的数据按该顺序被一次传送到 第一内部缓冲器341,然后经过向量计算过程,同时保持相同的顺序。
当当前图片是FLD图片而参考图片是FRM图片时,选择读取模式 1。在这种编码类型组合中,当前宏块和共位宏块是以图9C所示的方式相 关联的。为了计算当前宏块的前场和后场的运动向量,必须参考参考图片 中作为共位宏块的两个垂直相邻宏块。图10B示出了读取模式1中的这种 存储器读取过程。具体而言,第一和第二内部缓冲器341和342都被用于 接收从外部存储器320读出的相邻的每对宏块行(例如MBLineJ)和 MBLine一l)的数据。
更具体而言,图14的最上方部分示出了参考图片611的数据如何被存储在外部存储器320中。另一方面,当前图片612按图14的最下方部分 所示的顺序被处理。例如,假设选择当前图片612中的直接模式宏块 613。由于当前图片612是FLD类型的,因此当前宏块613的直接向量计 算需要参考图片611中的两个宏块614和615的数据。因此,存储器读取 序列按图14中间部分所示的方式发生。即,包含上方宏块614的宏块行 被提供到第一内部缓冲器341,而包含下方宏块615的另一宏块行被提供 到第二内部缓冲器342。所需的共位宏块(例如在此示例中是宏块614和 615)的向量数据可通过从两个内部缓冲器341和342顺序地读取数据来 同时获得。
当当前图片是FLD图片而参考图片是MBAFF图片时,选择读取模式
2。 图15的最上方部分示出了这种MBAFF参考图片621,其每个宏块对 行被存储在外部存储器320的相应的存储器区域320-1至320-N中。另一 方面,当前图片622按图15最下方部分所示的顺序被处理。当前宏块的 直接向量计算必须参考参考图片621中的相应的宏块对。例如,假设当前 图片622中的直接模式宏块623被选择用于进行预测。在这种情况下,为 了计算当前宏块623的运动向量,需要参考图片621中的两个宏块624和 625的数据。
因此,读取模式2中的存储器读取序列按图15中间部分和图IIA所 示的方式进行,以将一系列宏块对行(例如图11A中的MBLine一O和_1, MBLine_2和_3,...)从外部存储器320传送到第一内部缓冲器341。这是 通过将数据从存储器区域320-1, 320-2,…,320-N顺序地传送到第一内部缓 冲器341来实现的。向量读取控制器350随后从第一内部缓冲器341读出 每个宏块对的存储数据,从而将所需的共位宏块的运动向量提供给运动向 量计算器310。
当当前图片是FRM图片而参考图片是FLD图片时,选择读取模式
3。 在这种编码类型组合中,参考图片宏块数据的同一宏块行的数据首先 被用于当前图片的奇数行,然后用于当前图片的偶数行。图IIB示出了读 取模式3中的这种存储器读取过程。具体而言,前场宏块行(即T叩J), Top一l,...)的数据被每行两次地从奇数存储器区域读出,并被发送到第一
内部缓冲器341。
更具体而言,图16的最上方部分示出了参考图片631的数据如何被 存储在外部存储器320中。即,前场宏块行的数据被写入到外部存储器 320的奇数存储器区域中。然后,后场宏块行的数据被写入到偶数存储器 区域中。当需要外部存储器320中的参考向量数据时,向量读取控制器 350按图16中间部分所示的方式将其读出。即,它读取奇数存储器区域两 次,然后读取偶数存储器区域两次。所有读取的数据被传送到第一内部缓 冲器341,从而允许同一宏块行上的共位宏块的数据被不间断地从同一第 一内部缓冲器341读出两次。例如,假设当前图片632中的宏块633被选 择用于进行直接模式预测,如图16的最下方部分所示。第一内部缓冲器 341输出其相应宏块634的数据以用于奇数行的计算,然后输出相同数据 用于偶数行。
当当前图片和参考图片都是FRM图片时,选择读取模式4。图8A示 出了在这种读取模式中当前宏块和共位宏块之间的块与块关系。对于直接 模式计算,运动向量计算器310要求共位宏块的数据的顺序与其通过当前 图片的顺序相同。因此,向量读取控制器350从外部存储器320的其相应 的存储器区域320-1至320-N中读取一系列宏块行(MBLineJ), MBLine一l,...),并将它们全都发送到第一内部缓冲器341,如图12A所 示。具体而言,图17示出了向量读取控制器350按与运动向量计算器310 处理当前图片642的当前宏块的顺序相同的顺序,从外部存储器320读出 参考图片641的共位宏块的数据。
当当前图片是MBAFF图片而参考图片是FLD图片时,选择读取模式 5。在当前宏块和共位宏块的这种组合中的块与块关系与图9A和9B分别 被应用到宏块对的上方部分和下方部分的情况等同。由于MBAFF当前图 片是逐宏块对地被处理的,因此运动向量计算器310必须被提供以来自外 部存储器320的每一对上方共位宏块和下方共位宏块的数据。因此,向量 读取控制器350按图12B所示的并行的方式,将上方宏块行(例如 Top一O)的数据传送到第一内部缓冲器341,并将下方宏块行(例如 BottomJ))的数据传送到第二内部缓冲器342。换言之,它从存储器区域320-1至320-N中选择奇数存储器区域用于第一内部缓冲器341,并选择偶 数存储器区域用于第二内部缓冲器342。
图18的最上方部分示出了参考图片651的宏块数据如何被写入在外 部存储器320中。该FLD参考图片651由前场651a和后场651b组成。在 外部存储器320中,宏块行的前场数据和后场数据根据图6B所示的格式 被存储在连续的存储器区域中。另一方面,运动向量计算器310逐宏块对 地针对MBAFF当前图片652执行直接模式预测,如图18的最下方部分所 示。因此,向量读取控制器350使得运动向量计算器310能够从第一和第 二内部缓冲器341和342接收每个宏块对的数据,如图18的中间部分所 示。这是通过预先将上方宏块行和下方宏块行的数据分别传送到第一和第 二内部缓冲器341和342来实现的。例如,假设对当前图片652中的宏块 对653指定了直接模式。在这种情况下,其相应的宏块654和655被连续 读出,以供运动向量计算器310使用。
当当前图片和参考图片都是MBAFF图片时,选择读取模式6。从图 19的最上方部分和最下方部分可以看出,在这种编码类型的组合中,当前 图片622中的宏块数据的处理顺序与参考图片661中的宏块数据的写入顺 序一致。因此,向量读取控制器350从外部存储器320顺序地读出宏块对 行(例如MBLineJ)和一l,MBLine一2和-3,...)的数据,并将数据传送到第 一内部缓冲器341,如图12C和图19中间部分所示。即,数据被按图示顺 序从存储器区域320-1至320-N传送到第一内部缓冲器341 。
内部缓冲器结构
图20是示出向量读取控制器350的示例性结构的框图,重点在于针 对内部缓冲器的读取控制功能。为了实现预期的功能,向量读取控制器 350采用了第一和第二读取地址生成器351和352、第一和第二头部信息 解析器353和354、第一和第二共位向量缓冲器355和356以及选择器 (SEL) 357。
第一和第二读取地址生成器351和352分别针对第一和第二内部缓冲 器341和342产生读取地址信号。具体而言,第一和第二读取地址生成器 351和352基于偏移量生成器370输出偏移量值的定时,使其自身与对给
定当前图片的宏块行的处理同步。选择器357向第一和第二内部缓冲器 341和342提供产生的读取地址信号。
第一和第二头部信息解析器353和354分别耦合到第一和第二内部缓 冲器341和342,以接收添加到存储在其中的参考图片的每个共位宏块的 头部信息。头部信息描述了共位宏块的分区大小等等。第一和第二头部信 息解析器353和354解析信息以确定共位宏块被划分成了多少个块。它们 各自的判决被传递到第一和第二读取地址生成器351和352。从头部信息 提取的分区大小信息还被发送到分区大小管理器360 (图4)。
第一和第二读取地址生成器351和352产生与确定出的块分区的数目 相同数目的地址。这允许了共位宏块中包含的每个运动向量被从第一和第 二内部缓冲器341和342读出。这些运动向量在被送出到分区大小管理器 360之前被临时保存在第一和第二共位向量缓冲器355和356中。
图21示意性地示出了数据如何被传送到两个内部缓冲器341和342。
图21 (以及下面的图22)使用了诸如"MVO"和"MV1"之类的一系列 符号,以按其使用顺序指示与基本宏块内的个别块相对应的运动向量。
具体而言,图21示出了读取模式1的示例。针对参考图片701计算的 运动向量被存储在外部存储器320中的多个存储器区域320-1至320-N 中,其中对于每个不同宏块行,这些运动向量被分开存储。参考图片701 包括以后将作为共位宏块被参考的以各种方式分区的基本宏块。因此,每 个存储器区域320-1至320-3可容纳不同数目的运动向量。即,针对单个 宏块行计算的每组运动向量作为可变长度数据对象被存储在外部存储器 320中。
以这种方式写入的数据以并行方式被从两个连续的存储器区域(在本 示例中是320-1和320-2)读出,以分别输入到第一和第二内部缓冲器341 和342中。向量读取控制器350利用一系列连续的读取地址对每个存储器 区域进行顺序访问,从而取得与单个宏块行相对应的一组运动向量。图21 的最下方部分示出了因此得到的第一和第二内部缓冲器341和342的状 态。第一和第二头部信息解析器353和354以并行方式从第一和第二内部 缓冲器341和342读出头部信息,并且将块分区的数目通知给第一和第二
读取地址生成器351和352。这使得第一和第二内部缓冲器341和342能 够输出与块分区的数目相同数目的运动向量。
利用上述控制,第一和第二内部缓冲器341和342同时地或连续地输 出例如基本宏块702和703的运动向量,以便用作直接模式预测中的参考
图22示意性地示出了在读取模式6中数据如何被传送到单个内部缓 冲器。图22的最上方部分示出了 MBAFF模式中的参考图片711以及其运 动向量的布置。与每个宏块对相对应的运动向量被存储在从设置在外部存 储器320中的多个存储器区域320-1至320-N中选择出的两个连续的存储 器区域中。正如图21所示的情况一样,它们是作为可变长度数据对象被 存储的。
通过生成用于读出与宏块对行相对应的运动向量的连续地址,以这种 方式写入的数据被从两个连续的存储器区域(在本示例中是320-1和320-2)传送到第一内部缓冲器341。因此得到的第一和第二内部缓冲器341和 342的状态在图22的最下方部分示出。注意,第二内部缓冲器342不包含 数据。在这种情况下,只有第一头部信息解析器353进行操作以从第一内 部缓冲器341读取头部信息并将块分区的数目通知给第一读取地址生成器 351。第一内部缓冲器341从而输出与块分区的数目相同数目的运动向 量。这使得运动向量计算器310能够利用例如参考图片711中的一对基本 宏块712和713的一系列运动向量来执行直接模式预测。
下面将描述使用两个内部缓冲器341和342的读取模式1的更具体示 例。图23A和23B示出了两个示例性宏块行721和722,用于说明数据读 取会话。假设这些宏块行721和722的运动向量数据被存储在外部存储器 320中的两个相邻的存储器区域中。更具体而言,图23A的宏块行721是 由五个基本宏块731至735形成的。同样地,图23B的宏块行722是由五 个基本宏块741至745形成的。就块分区的数目和每个块的大小来说,这 两个宏块行721和722彼此从头到尾都是完全不同的。
图24是示出图23A和23B所示的相邻宏块行的数据如何被存储在两 个内部缓冲器中的定时图。在该图24中,WEN_Bufl和WEN一Buf2分别
表示用于第一和第二内部缓冲器341和342的写入使能信号。WAD一Bufl 和WAD_Buf2分别是第一和第二内部缓冲器341和342的写入地址。 WDT_Bufl和WDT一Buf2分别是第一和第二内部缓冲器341和342的写入 数据。
图24的示例假定了图23A和23B所示的宏块行721和722的数据以 并行方式分别被传送到第一和第二内部缓冲器341和342。前述向量写入 控制器330已将共位宏块的运动向量以及在前的头部信息字段写入在外部 存储器320中。头部信息包括名为"宏块分区大小"(MB SIZE)和"子 宏块分区大小"(SUB-MB SIZE)的参数。宏块分区大小参数指示构成一 个宏块的块的大小。这种块的最小大小是8x8。另一方面,子宏块分区大 小参数指示8x8宏块的子分区的大小。后缀(0)至(3)被添加用来示出16x16 基本宏块内的8x8宏块的位置。参数SUB-MB SIZE (O)至SUB-MB SIZE (3) 只在宏块分区大小是8x8时产生。
本切片开始于宏块行721和722的上部。针对这两行的数据读取会话 在时刻Tl同时开始。在后续的时段Pll至P15中,宏块行721中的共位 宏块731至735的运动向量和头部信息被传送到第一内部缓冲器341。另 外,在时段P21至P25中,宏块行722中的共位宏块741至745的运动向 量和头部信息被传送到第二内部缓冲器342。
图25是示出从两个内部缓冲器341和342读取数据的过程的定时图。 在该图25中,REN一Bufl和RE!SLBuf2分别表示用于第一和第二内部缓冲 器341和342的读取使能信号。RAD一Bufl和RAD一Buf2分别是第一和第 二内部缓冲器341和342的读取地址信号。RDT_Bufl和RDT一Buf2分别 是从第一和第二内部缓冲器341和342读取的数据。
时段P31、 P33、 P35和P37是第一内部缓冲器341输出数据的时段, 时段P32、 P34、 P36和P38是第二内部缓冲器342输出数据的时段。每个 时段开始于第一阶段,在该第一阶段中,第一头部信息解析器353或第二 头部信息解析器354读取头部信息。这之后是第二阶段,在该第二阶段 中,从针对在头部信息中指定的那么多的块分区生成的一系列读取地址中 读出 一个共位宏块的运动向量。
在图25的示例中,第一和第二头部信息解析器353和354交替地从第 一和第二内部缓冲器341和342接收头部信息。头部信息被用于针对每对 垂直相邻的共位宏块(例如图23A和23B中的宏块731和741、宏块732 和742)以串行方式读取运动向量。
应当注意,本发明不限于图25所示的操作。作为一个替换实施例, 第一和第二内部缓冲器341和342可被设计为同时向其相应的第一和第二 头部信息解析器353和354提供宏块对的头部信息并向相应的共位向量缓 冲器355和356提供运动向量。每当针对一个共位宏块的数据读取会话完 成时,第一和第二头部信息解析器353和354就取入下一宏块的头部信 息。
从以上内容可以看出,本实施例根据当前图片和参考图片的编码类 型、帧/场类型以及块分区的数目的组合,针对直接模式运动向量预测从外 部存储器320读取共位宏块的数据。本实施例使用表来管理这种组合并针 对给定组合选择适当的读取方法。本实施例还被设计为将外部存储器320 划分成多个固定长度的区域以逐宏块行地或逐宏块对行地存储参考图片。 此外,本实施例具有两个内部缓冲器341和342,作为从外部存储器320 读出的数据的临时存储装置。因此,前述功能可利用相对简单的电路结构 来实现。具体而言,在参考图片和当前图片彼此就帧/场类型而言不同的情 况下或者在它们被指定为MBAFF图片的情况下,本实施例对于直接模式 操作是有利的。
本实施例的另一个优点在于就频率和持续时间而言它减少了对外部存 储器320的读取和写入访问。这是通过只存储原始共位宏块的参考运动向 量而不复制针对4x4像素的最小大小块计算出的运动向量来实现的。虽然 宏块行或宏块对行的运动向量是作为可变长度数据被存储的,但是本实施 例却能够以减少的时间和功耗对这种数据进行顺序访问。由于必须读取的 运动向量的数目的减少,被编码的数据的量也减少了。因而本实施例能够 更高效地压縮视频数据,而不会牺牲图片质量。
切片类型切换
本实施例使得对当前宏块的移动的处理变得简单,这是因为必定能够
取得所期望的共位宏块。另外,本实施例的上述结构支持图片中部的切片 类型切换。本实施例还支持可能发生在不同切片类型之间的边界处的对新 参考图片的选择。
H.264允许在图片中部改变切片类型。图26示出了在宏块802和803 之间的边界处切片类型从P切换到B的示例。本实施例以前面部分所述的 方式将参考图片的数据存储在外部存储器320中。虽然可对宏块803指定 直接模式,但可以很容易地从参考图片中的共位宏块取得每个所需的参考 运动向量。具体而言,本实施例被设计为逐宏块行地或者逐宏块对行地从 外部存储器320读出参考运动向量,从而自然会从新宏块行的最上方共位 宏块开始处理每个切片,而无需在切片类型的边界处进行额外的处理。
IL264还允许在切片边界处改变参考图片。图27A和27B示出了这种 改变的示例。具体而言,图27A示出了包含B切片814和815的当前图片 811,所述B切片814和815的边界位于宏块812和M13之间。另一方 面,图27B示出了当前图片811与在切片边界附近所使用的它的参考图片 816和817之间的关系。具体而言,包含宏块812的上方切片814是参考 在前图片816编码的,而包含宏块813的下方切片815是参考另一在前图 片817编码的。外部存储器320可按与上述相同的方式存储图片816和 817的运动向量以供以后参考,从而提供了不同参考图片的共位运动向 量。
分区大小管理
本部分描述分区大小管理器360的操作。图28示出了宏块类型査找 表。图示的宏块类型查找表382的最左边三个数据字段是 "MBColMode"、"当前宏块"和"共位宏块"。第一字段MBColMode 对当前宏块和共位宏块的帧/场模式的组合进行分类。对于每种 MBColMode ,表382的第四列给出了特定的共位宏块类型 ("MBCol一MBTYPE "字段),以及相应的当前宏块类型 ("CurrMB—MBTYPE"字段)。
分区大小管理器360咨询该读取模式判决表381以找出与当前图片和 参考图片的编码类型和帧/场模式的给定组合相对应的可能的MBColMode。然后,每当当前图片中的新的宏块被选择用于处理时,分区 大小管理器360通过再次咨询宏块类型查找表382,根据与新的当前宏块 相对应的新的共位宏块的帧/场模式和当前图片的行类型的组合,来判定 MBColMode。分区大小管理器360还使用宏块类型查找表382来根据与共 位宏块有关的MBCol一MBTYPE确定CurrMB_MBTYPE,从而从提供自向 量读取控制器350的那些运动向量中选择必要的运动向量。以这种方式选 择的运动向量被发送到直接运动向量计算器311。
图28的宏块类型查找表382具有用于说明目的的名为"合并 (CONSOLIDATE)"的额外字段。该字段指示当前宏块中的块分区的数 目是否可以小于共位宏块中的块分区的数目。正如后面将描述的,如果能 够对当前宏块应用块合并,则可以减少直接模式运动向量的数目(从而减 少被编码的数据的量)。该功能使得编码器能够提高视频压縮比,而不会 降低图片质量。它还使得解码器能够减轻运动向量计算和运动补偿的处理 负荷,而不会降低图片质量。
现参考图29至32,下面将给出关于如何根据当前宏块的共位宏块的 宏块类型来确定当前宏块的宏块类型的一些细节。共位宏块(MBCol)的 各种类型在每幅图的右侧示出,其相应的当前宏块(CurrMB)的类型在左 侧示出。宏块类型组合的最上方样式是当前宏块和共位宏块都被分区成最 小大小块的情况,这实际上与图8A至9C所示的情况相同。如图8A至9C 所示,块号被附加到各个块,以指示当前宏块的每个块的运动向量可以根 据共位宏块中其相应的、相同编号的块来得出。
图29示出了针对MBColMode=0的当前宏块类型的示例。 MBCOlMode=0意味着当前宏块和共位宏块都是帧形式的(并且它们的图 片编码类型是FRM)。在这种情况下,当前宏块的每个块的运动向量是直 接根据先前计算出的共位块的运动向量来得出的。因此,在 MBColModeO时,当前宏块被赋予与共位宏块相同的宏块类型,如图29 的PT1至PT6所示。
图30给出了针对MBColMode=l的当前宏块类型的示例。 MBColMode=l意味着由于标准规范共位宏块可被分区成4x4块而当前宏
块的最小大小分区是8x8块,如之前在图犯中所述。具体而言,图30的 样式PT11示出了 8x8宏块分区901至904。它们的直接模式运动向量是仅 分别参考相应的子宏块905至卯8计算出的。艮卩,样式PT11允许共位宏 块中的四个子宏块的左上群组在被映射在当前宏块上时被合并成一个8x8 宏块901。同样地,右上、左下和右下子宏块的其他群组可分别被合并成 三个8x8宏块902、 903和904。
基于样式PT11的概念,图30所示的接下来的四个样式PT12至PT15 都不允许块合并,因为这些类型的共位宏块的最小大小块的大小为8x8像 素。这些样式PT12至PT15的当前宏块因而将被赋予与共位宏块相同的宏 块类型。另一方面,图30的最下方样式PT16涉及作为共位宏块的一部分 的更小的分区(4x4、 4x8和8x4子宏块)。在这种情况下,这些子宏块中 的一些在被映射在当前宏块上时将被合并成8x8。例如,子宏块909和 910可被合并成单个8x8宏块911,从而该宏块911的运动向量将直接根据 子宏块910的运动向量得出。即,分区大小管理器360选择8x8作为与这 些共位子宏块909和910相对应的当前宏块类型,并因而将子宏块910的 运动向量和该宏块类型信息一起发送到直接运动向量计算器311。
图31示出了针对MBColMode=2或3的当前宏块类型的示例。参考图 31的样式PT21,同一个共位宏块被示为两个宏块;左边那个被用于在 MBColMode=2的情况下处理当前宏块的奇数行;右边那个被用于在 MBColMode=3的情况下处理当前宏块的偶数行。当MBColMode=2或3 时,最小块大小对于共位宏块来说是4x4,而对于当前宏块来说是8x8, 如样式PT21所示。
如图9A所讨论的,在MBColMode=2的情况下,四个当前宏块911 至914的奇数行的运动向量分别是根据共位子宏块915至918得出的。如 图9B所讨论的,在MBColMod^3的情况下,四个当前宏块911至914的 偶数行的运动向量分别是根据共位子宏块919至922得出的。这意味着第 一行中最左边的两个共位子宏块和第三行中最左边的两个共位子宏块被映 射到大小为8x8的单个合并的当前宏块911上。同样地,第一行中最右边 的两个共位子宏块和第三行中最右边的两个共位子宏块被映射到单个合并
的当前宏块912上。第二行中最左边的两个共位子宏块和第四行中最左边 的两个共位子宏块被映射到单个合并的当前宏块913上。第二行中最右边 的两个共位子宏块和第四行中最右边的两个共位子宏块被映射到单个合并 的当前宏块914上。
将样式PT21的概念应用到图31所示的随后的三个样式PT23至 PT25,如果它们的共位宏块的上方或下方的16x8块都不被垂直分区成子 宏块,则不需要它们的当前宏块具有垂直分区。该条件对于图31中的样 式PT23至PT25成立,并且两个样式PT23和PT25受到了块的垂直合 并。
另一方面,在最下方的样式PT26中,共位宏块包括在其上半部和下 半部的垂直子分区。因此,当前宏块应当被分区成8x8宏块。例如考虑那 些8x8宏块923和924。分区大小管理器360通过向直接运动向量计算器 311提供针对奇数行的子宏块925的运动向量和针对偶数行的子宏块926 和927的运动向量,来帮助直接运动向量计算器311计算这些宏块的运动
口参考样式PT22,共位宏块不经历分区。因此,16x16当前宏块维持了 其原始的单块结构。
图32示出了针对MBColMode=4的当前宏块类型的示例。从样式 PT31中可以看出,在MBColMode=4的情况下可能的最小块大小对于共位 宏块而言是4x4,而对于当前宏块而言是8x8。在该样式PT31中,共位宏 块和当前宏块以图9C所示的方式相关联。为了计算这样的当前宏块的前 场和后场的运动向量,必须参考参考图片中作为共位宏块的两个垂直相邻 的宏块。图28的宏块类型査找表382给出在MBColMode=4时关于此的信 息。具体而言,MBCol_MBTYPE字段的列包括描述"上方MBCol"和 "下方MBCol"的条目。该条目是指共位宏块的两个垂直相邻的分区。
返回参考图32,分区大小管理器360因此向直接运动向量计算器311 提供共位子宏块935和936的运动向量,以用于上方两个当前宏块分区 931和932的直接模式向量预测。它还提供共位子宏块937和938的运动 向量,以用于下方两个当前宏块分区933和934的直接模式向量预测。基于样式PT31的概念,图30所示的接下来的两个样式PT32和PT33 都将允许块合并,如果它们的共位宏块的上半部和下半部没有8x8或更小 的子宏块分区的话。具体而言,样式PT32中的当前宏块被形成为垂直相 邻的一对16x8宏块,其中每个宏块可能是两个共位宏块合并的结果。在 除上述情况外的其他情况下,当前宏块将被分区成四个8x8宏块,如PT33 所示。
从以上说明可以看出,本实施例的分区大小管理器360根据其相应的 共位宏块的宏块类型来确定当前图片中的宏块的分区大小,以尽可能地使 当前宏块的分区最大化。利用最大化的分区,最少量的共位运动向量被选 择并经历针对当前宏块分区的直接模式向量预测。直接模式预测中使用的 这种运动向量的数目的减少还意味着对用于运动补偿的参考图片存储器的 访问减少,从而放松了对存储器带宽的要求。因此所得到的优点包括处理 负荷更轻、功耗更小以及编码器/解码器电路的制造成本降低。本实施例在 不牺牲运动补偿的精度的情况下实现了这些优点。在视频编码应用中,本 实施例减少了被编码的数据的量(或者换言之提高了视频压縮比),而不 会降低图片质量。
传统的技术只能将4x4块组合成8x8宏块,因为它们通过将针对一个 宏块计算的运动向量映射到均一大小(4x4)的块上来将这些运动向量存 储在外部存储器中,就像图29至32的样式PT1、 PTll、 PT21和PT31中 那样。相反,根据本实施例,共位宏块在经过分区大小管理器360时维持 了其原始的宏块类型,从而能够将当前宏块划分成大于8x8像素的块。因 此,本实施例减少了在直接模式中计算的运动向量的数目。此外,分区大 小管理器360确定宏块类型的处理负担可得以减轻,因为与传统的均一 4x4分区的情况相比,分区大小管理器360接收的共位运动向量的数目更 少。这也为功耗降低作出了贡献。
上述实施例将参考图片的运动向量存储在外部存储器320中,该外部 存储器320被用作与帧间预测器210 (或视频解码设备200)分开的单独 组件。但是,本发明并不限于这种外部存储器配置。存储器可实现为帧间 预测器210或视频解码设备200的集成部分。第一和第二内部缓冲器341 和342进而可以实现为外部组件。此外,外部存储器320以及第一和第二 内部缓冲器341和342可实现在单个存储器子系统上。上述变化不仅适用 于视频解码设备200 (图3)的帧间预测器210,还适用于视频编码设备 100 (图2)的帧间预测器104。
计算机可读介质
所提出的运动预测处理器的上述处理机制实际上是实现在计算机系统 上的。用于前述视频编码器和解码器的计算机指令是以计算机程序的形式 编码的。计算机系统执行这些程序以提供本发明的预期功能。出于存储和 分发的目的,这些程序可被存储在计算机可读存储介质中。合适的计算机 可读存储介质包括磁存储介质、光盘、磁光存储介质和固态存储器设备。
诸如DVD和CD-ROM之类的便携式存储介质适合于程序产品的分 发。软件程序的基于网络的分发也是可能实现的,在这种情况下,在服务 器计算机上提供若干个主程序文件以便经由网络下载到其他计算机。
用户计算机将必要的软件组件存储在其本地存储单元中,这些软件组 件先前已从便携式存储介质安装或从服务器计算机下载下来。计算机执行 从本地存储单元读出的程序,从而执行所编程的功能。作为程序执行的替 换方式,计算机可在直接从便携式存储介质读出程序代码的同时执行程 序。另一种替换方法是用户计算机在需要时动态地从服务器计算机下载程 序并在递送时执行这些程序。
结论
根据本发明,运动预测处理器使用了一个向量存储器,该向量存储器 提供了与参考图片的多个块行相对应的多个存储器区域。所提出的运动预 测处理器被设计为逐个块行地只写入和读取向量存储器中的有限数目的参 考运动向量,以使对向量存储器的访问达到最低限度。存储的运动向量按 根据以下因素确定的方式被读出当前图片是帧图片还是场图片。参考图 片是帧图片还是场图片,在每幅图片中是否使用块自适应预测模式。该特 征允许向量计算器从每个缓冲器接收所需的运动向量,而不论当前图片和 参考图片是如何组织的。本发明因而扩展了直接模式运动预测的应用范 围,并且减轻了运动估计的处理负荷。前述内容被认为只是对本发明原理的说明。此外,由于本领域的技术 人员将很容易想到许多修改和改变,因此不希望将本发明限制到所示出和 描述的确切构造和应用,并且因此所有合适的修改和等同都可被认为是落 在所附权利要求及其等同物所限定的本发明的范围之内。
权利要求
1.一种逐基本块地执行帧间运动预测的运动预测处理器,该运动预测处理器被耦合到提供多个存储器区域的向量存储器以及组织成先进先出数据存储装置的第一和第二缓冲器,该运动预测处理器包括写入控制器,该写入控制器将构成参考图片的多个块行的运动向量写入在与所述块行相对应的存储器区域中,以便用在针对当前图片的运动预测过程中,其中每个块行由多个水平对齐的基本块形成;读取控制器,该读取控制器以根据下述因素确定的方式将存储的运动向量从所述向量存储器的每个存储器区域传送到所述第一和第二缓冲器中的至少一个所述当前图片是帧图片还是场图片、所述参考图片是帧图片还是场图片以及是否指定了块自适应预测模式,其中所述块自适应预测模式是允许针对每个基本块选择帧预测或场预测的操作模式;以及向量计算器,该向量计算器基于从所述第一和第二缓冲器顺序地读出的运动向量,计算所述当前图片的每个基本块的运动向量。
2. 如权利要求1所述的运动预测处理器,其中如果所述参考图片是场图片,并且没有使用所述块自适应预测模式, 则所述写入控制器将前场的运动向量写入到所述第一缓冲器,并将后场的 运动向量写入到所述第二缓冲器;如果所述参考图片和所述当前图片都不处于所述块自适应预测模式, 并且所述参考图片是帧图片,所述当前图片是场图片,则所述读取控制器 以并行方式将运动向量从指派给所述参考图片的奇数块行的存储器区域传 送到所述第一缓冲器并从指派给所述参考图片的偶数块行的存储器区域传 送到所述第二缓冲器;如果所述参考图片是场图片但不处于所述块自适应预测模式,并且所 述当前图片处于所述块自适应预测模式,则所述读取控制器以并行方式将 运动向量从指派给所述参考图片的前场的存储器区域传送到所述第一缓冲 器并从指派给所述参考图片的后场的存储器区域传送到所述第二缓冲器; 并且 在其他情况下,所述读取控制器将运动向量从所述存储器区域传送到 所述第一缓冲器。
3. 如权利要求2所述的运动预测处理器,其中如果所述参考图片处于所述块自适应预测模式,则所述写入控制器将 运动向量写入到指派给所述参考图片的两个垂直相邻的块行的两个存储器区域;并且如果所述参考图片处于所述块自适应预测模式,则所述读取控制器顺 序地将每两个块行的运动向量从相应的存储器区域仅传送到所述第一缓冲器。
4. 如权利要求2所述的运动预测处理器,其中,如果所述参考图片和 当前图片都是场图片但都不处于所述块自适应预测模式,则所述读取控制 器仅从指派给所述前场的存储器区域读出运动向量并将所述运动向量仅输 入到所述第一缓冲器。
5. 如权利要求2所述的运动预测处理器,其中,如果所述参考图片是 场图片但不处于所述块自适应预测模式,并且所述当前图片是帧图片但不 处于所述块自适应预测模式,则所述读取控制器从指派给所述前场的存储 器区域读出每个运动向量两次并将所述运动向量仅输入到所述第一缓冲 器。
6. 如权利要求1所述的运动预测处理器,其中,所述读取控制器包括根据以下因素描述用于传送运动向量的方式的表所述当前图片是帧图片 还是场图片、所述参考图片是帧图片还是场图片以及是否指定了块自适应 预测模式。
7. 如权利要求1所述的运动预测处理器,其中所述向量计算器或者以交替从所述第一和第二缓冲器的方式,或者以只从所述第一缓冲器的方 式,逐个基本块地接收存储的运动向量。
8. 如权利要求1所述的运动预测处理器,还包括分区大小管理器,该 分区大小管理器根据表示下述因素的参数的组合,确定是以与参考块相同 的方式对当前块分区还是以所述当前块的一个分区的大小等于所述参考块的两个或更多个分区的大小的方式来对所述当前块分区所述当前图片中 的当前宏块是帧形式的还是场形式的、所述参考图片中的参考宏块是帧形 式的还是场形式的,所述当前图片是否处于块自适应预测模式以及所述参 考图片是否处于块自适应预测模式。
9. 如权利要求8所述的运动预测处理器,其中,如果所述当前图片和 所述参考图片都不处于所述块自适应预测模式,所述当前块是帧形式的而 所述参考块是场形式的,并且所述参考块的上半部和下半部都未曾经历进 一步的垂直分区,则所述分区大小管理器不向所述当前块应用垂直分区。
10. 如权利要求8所述的运动预测处理器,其中,如果所述当前图片 和所述参考图片都不处于所述块自适应预测模式,所述当前块是场形式的 而所述参考块是帧形式的,并且与所述当前块相对应的两个垂直相邻的参 考块都未曾被分区成小于四分之一大小块的块,则所述分区大小管理器将 所述当前块分区成两个垂直相邻的块而不是两个水平相邻的块。
11. 一种通过逐基本块地执行帧间运动预测来将视频信号编码成压縮 视频数据的视频编码设备,该视频编码设备包括提供多个存储器区域的向量存储器;组织成先进先出数据存储装置的第一和第二缓冲器;写入控制器,该写入控制器将构成参考图片的多个块行的运动向量写入在与所述块行相对应的存储器区域中,以便用在针对当前图片的运动预测过程中,其中每个块行由多个水平对齐的基本块形成;读取控制器,该读取控制器以根据下述因素确定的方式将存储的运动向量从所述向量存储器的每个存储器区域传送到所述第一和第二缓冲器中 的至少一个所述当前图片是帧图片还是场图片、所述参考图片是帧图片还是场图片以及是否指定了块自适应预测模式,其中所述块自适应预测模 式是允许针对每个基本块选择帧预测或场预测的操作模式;以及向量计算器,该向量计算器基于从所述第一和第二缓冲器顺序地读出 的运动向量,计算所述当前图片的每个基本块的运动向量。
12. —种根据通过逐基本块地执行帧间运动预测而产生的压縮视频信 号重建原始视频图片的视频解码设备,该视频解码设备包括提供多个存储器区域的向量存储器; 组织成先进先出数据存储装置的第一和第二缓冲器;写入控制器,该写入控制器将构成参考图片的多个块行的运动向量写入在与所述块行相对应的存储器区域中,以便用在针对当前图片的运动预测过程中,其中每个块行由多个水平对齐的基本块形成;读取控制器,该读取控制器以根据下述因素确定的方式将存储的运动向量从所述向量存储器的每个存储器区域传送到所述第一和第二缓冲器中 的至少一个所述当前图片是帧图片还是场图片、所述参考图片是帧图片还是场图片以及是否指定了块自适应预测模式,其中所述块自适应预测模 式是允许针对每个基本块选择帧预测或场预测的操作模式;以及向量计算器,该向量计算器基于从所述第一和第二缓冲器顺序地读出 的运动向量,计算所述当前图片的每个基本块的运动向量。
13. —种逐基本块地执行帧间运动预测的方法,包括以下步骤 提供向量存储器,该向量存储器提供多个存储器区域; 提供组织成先进先出数据存储装置的第一和第二缓冲器; 将构成参考图片的多个块行的运动向量写入在与所述块行相对应的存储器区域中,以便用在针对当前图片的运动预测过程中,其中每个块行山 多个水平对齐的基本块形成;以根据下述因素确定的方式将存储的运动向量从所述向量存储器的每 个存储器区域传送到所述第一和第二缓冲器中的至少一个所述当前图片 是帧图片还是场图片,所述参考图片是帧图片还是场图片以及是否指定了 块自适应预测模式,其中所述块自适应预测模式是允许针对每个基本块选 择帧预测或场预测的操作模式;以及基于从所述第一和第二缓冲器顺序地读出的运动向量,计算所述当前 图片的每个基本块的运动向量。
14. 一种存储用于逐基本块地执行帧间运动预测的程序的计算机可读 存储介质,该程序致使计算机系统实现以下部分的功能提供多个存储器区域的向量存储器;组织成先进先出数据存储装置的第一和第二缓冲器;写入控制器,该写入控制器将构成参考图片的多个块行的运动向量写 入在与所述块行相对应的存储器区域中,以便用在针对当前图片的运动预测过程中,其中每个块行由多个水平对齐的基本块形成;读取控制器,该读取控制器以根据下述因素确定的方式将存储的运动 向量从所述向量存储器的每个存储器区域传送到所述第一和第二缓冲器中 的至少一个所述当前图片是帧图片还是场图片、所述参考图片是帧图片还是场图片以及是否指定了块自适应预测模式,其中所述块自适应预测模 式是允许针对每个基本块选择帧预测或场预测的操作模式;以及向量计算器,该向量计算器基于从所述第一和第二缓冲器顺序地读出 的运动向量,计算所述当前图片的每个基本块的运动向量。
全文摘要
本发明提供了一种使得直接模式运动预测能够得到更广泛使用并且减轻处理负荷的运动预测处理器。一种运动预测过程参考参考图片以计算当前图片的运动向量。写入控制器将参考图片的多个块行的运动向量写入在与这些块行相对应的存储器区域中。读取控制器将存储的运动向量从每个存储器区域传送到两个缓冲器中的至少一个。读取控制器根据以下因素确定如何传送这些运动向量当前图片是帧图片还是场图片、参考图片是帧图片还是场图片,以及在每幅图片中是否指定了块自适应预测模式。
文档编号H04N7/26GK101198057SQ20071013802
公开日2008年6月11日 申请日期2007年8月2日 优先权日2006年8月17日
发明者仲石英典 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1