用于在纹理映射引擎中执行运动补偿的方法与设备的制作方法

文档序号:7504973阅读:197来源:国知局
专利名称:用于在纹理映射引擎中执行运动补偿的方法与设备的制作方法
发明的领域本发明涉及利用电子设备的图形显示。更具体地,本发明涉及利用电子设备显示的图形的运动补偿。
发明的背景目前存在几种标准用于数据音频和/或视频数据的通信。例如,运动图象专家组(MPEG)已研制用于与音频-视频数据一起使用的几种标准(例如,MPEG-1、MPEG-2、MPEG-4)。为了改善数据通信,音频-视频数据标准时常包括压缩方案。具体地,MPEG-2将运动矢量用作数字音频压缩方案的一部分。
一般地,将运动矢量用于利用视频帧之间的冗余来减少传送整个运动视频所要求的数据量。能传送帧之间的差异而不传送具有冗余数据的连续的全帧。一般地,确定称为“宏功能块”的16×16象素(pel)的数据组的运动矢量。
采用运动补偿的数字编码将搜索窗口或比宏功能块大的另一基准用于生成指向最佳匹配当前宏功能块的宏功能块的运动矢量,此搜索窗口一般大于当前宏功能块。利用描述此宏功能块的数据来编码所得到的运动矢量。
视频数据的解码一般利用软件与硬件的组合来完成的。运动补偿一般利用对代表宏功能块的视频数据的缓冲操作的专用运动补偿电路来解码。然而,此方案在利用纹理映射引擎处理视频帧时导致运动补偿电路空闲并且在利用运动补偿电路处理视频帧时导致纹理映射引擎空闲。视频数据的此连续解码导致解码资源的无效使用。所需要的是一种改善的运动补偿解码方案。
描述利用纹理映射引擎的图形运动补偿的方法和设备。接收具有涉及宏功能块的运动补偿数据的命令。对宏功能块执行解码操作,生成校正数据。根据对应于解码操作输出的第一顺序将该校正数据存储在纹理调色板中。执行帧预测操作以响应此命令。根据第二顺序从纹理调色板中读出此校正数据,将此校正数据与帧预测操作的结果组合以生成输出视频帧。
附图的简述利用示例但不限于附图中的特征来说明本发明,在附图中相同的标号表示相同的单元。


图1是用于与本发明一起使用的系统。
图2是适于与本发明一起使用的MPEG-2解码处理的方框图。
图3是帧传送与MPEG-2帧显示的典型时线。
图4表示3个MPEG-2帧。
图5表示适于与本发明一起使用的象素数据的概念表示。
图6是根据本发明的一个实施例用于执行运动补偿与纹理映射的组成部分的方框图。
图7表示用于16象素乘16象素宏功能块的亮度校正数据。
图8是根据本发明的一个实施例用于运动补偿解码的硬件-软件接口的方框图。
详细描述描述利用纹理映射引擎的图形运动补偿的方法和设备。在下面的描述中,为了解释目的,提出许多具体细节以提供本发明的全面了解。然而,对于本领域技术人员来说,显然没有这些具体细节也能实施本发明。在其他情况中,以方框图形式表示结构与设备,以避免使本发明模糊。
本说明书中的“一个实施例”或“实施例”的提法表示结合此实施例所述的具体特性、结构或特征包括在本发明的至少一个实施例中。此说明书中不同地方中短语“在一个实施例中”的出现不一定都指同一实施例。
一般地,本发明通过从一个或多个基准图象中预测象素彩色重构图象来提供运动补偿,此预测能是前向、后向或双向的。在此所述的结构用于将纹理映射硬件组成部分重复用于完成数字视频数据的运动补偿。修改边框和边缘测试,以便为了运动补偿而处理全部宏功能块。另外,根据基于逆离散余弦变换(IDCT)结果的第一顺序将象素数据写入纹理调色板中并根据对于基准的位置而优化的第二顺序读出此数据。纹理调色板存储器管理方案用于保持当前数据并在传送运动补偿命令时避免有效数据的重写。
图1是适于与本发明一起使用的系统的一个实施例。系统100包括总线101或用于传送信息的另一通信设备和耦合到总线101用于处理信息的处理器102。系统100还包括耦合到总线101的随机存取存储器(RAM)或其他的动态存储装置104(称为主存储器),用于存储处理器102执行的信息与指令。主存储器104在处理器102执行指令期间也能用于存储临时变量或其他的中间信息。系统100也包括耦合到总线101的只读存储器(ROM)和/或其他的静态存储装置106,用于存储处理器102的静态信息与指令。数据存储装置107耦合到总线101以存储信息与指令。
诸如磁盘或光盘的数据存储装置107与相应的驱动器能耦合到系统100。系统100也能通过总线101耦合到显示装置121,诸如阴极射线管(CRT)或液晶显示器(LCD),用于对计算机用户以及支持电路显示信息。下面更详细描述数字视频解码与处理电路。包括字母数字与其他键的字母数字输入装置122一般耦合到总线101,用于传送信息与命令选择给处理器102。另一类型的用户输入装置是光标控制123,诸如鼠标、跟踪球或光标方向键,用于给处理器102传送方向信息与命令选择并用于控制显示器121上的光标移动。
网络接口130在系统100与网络(未在图1中示出)之间提供接口。网络接口130例如能用于提供至局域网或至互联网的接入。网络接口130能用于从远程源中接收数字视频数据以便通过显示装置121进行显示。
本发明的一个实施例涉及系统100用于在图形纹理映射引擎中执行运动补偿。根据一个实施例,系统100执行运动补偿以响应处理器102执行包含在主存储器104中的一系列指令。
通过远程连接(例如,通过网络)等将指令从诸如磁盘、只读存储器(ROM)集成电路(IC)、CD-ROM、DVD的存储装置提供给主存储器104,在可选择实施例中,硬布线电路能用于代替或与软件指令组合来实施本发明。因此,本发明不限于硬件电路与软件指令的任何特定组合。
图2是适用于与本发明一起使用的MPEG-2解码处理的方框图。获得解码的视频数据200。解码的视频数据200能源于本地(例如,存储器、DVD、CD-ROM)或远程(例如,网络服务器、电视会议系统)源。
在一个实施例中,利用可变长度码对编码视频数据200进行编码。在这样的实施例中,解码输入的比特流并利用可变长度解码210将此输入比特流变换为二维阵列。可变长度解码210用于识别输入数据流中例如因为改变数据量、改变指令大小等而具有可变长度的指令。
将可变长度解码210的输出输入给逆量化230,这生成一组离散余弦变换(DCT)系数。DCT系数的二维阵列通过逆DCT(IDCT)240进行处理,生成校正数据值的二维阵列。校正数据值包括视频数据的运动矢量。在一个实施例中,校正数据值包括亮度与色度以及运动矢量。
将来自IDCT 240的校正数据值输入给运动补偿方框250,这得到解码的象素。解码的象素和校正数据值用于存取存储器260中存储的象素值数据。存储器260存储预测象素和基准象素。
图3是帧传送与MPEG-2帧显示的典型时线。视频数据流内的帧能以不同于显示顺序的顺序进行解码。另外,能与不同于图3所示的顺序传送帧。能根据本领域公知的几个因素来选择帧传送的顺序。
视频帧分类为内部编码(I)、预测编码(P)、双向预测编码(B)。内部编码的帧是不从其他帧中重构的帧。换句话说,传送整个帧而不传送前面和/或后面帧之间的差异。
根据帧之间的差异在前一帧和后一帧之间内插双向预测编码帧,也能从前向或后向基准帧中预测B帧,内插从前向基准图象中预测的编码帧。I、P与B帧的使用在本领域中是公知的并且除了本发明所涉及的之外不再进行详细描述。图3中的下标表示编码器接收的帧的原始顺序。下面将更具体描述利用本发明的I、P与B帧的使用。
图4表示3个MPEG-2帧。重构的图象是当前显示的B或P帧。前向基准图象与重构图象相比在时间上是后向的帧。后向基准图象与重构图象相比在时间上是前向的帧。
利用“帧图象结构”或“场(Field)图象结构”来重构帧。帧图象包含图象的每条扫描线,而场图象只包含交替的扫描线。“顶场”包含偶数标号的扫描线,而“底场”包含奇数标号的扫描线。下面将更详细地描述与运动矢量相关的帧图象结构和场图象结构。在一个实施例中,顶场与底场以交错方式存储在存储器中。可选择地,头场(Top field)与底场能相互独立地进行存储。
一般地,运动补偿包括通过从一个或多个基准图象中前向、后向或双向预测得到的象素彩色来重构图象。图4表示两个基准图象和双向预测的重构图象。在一个实施例中,将图象分成16个象素乘16个象素的宏功能块。然而,也能使用其他的宏功能块大小(例如,16×8,8×8)。进一步将宏功能块分成8个象素乘8个象素块。
在一个实施例中,运动矢量在当前宏功能块的左上角上始发并指向最接近匹配基准象素所在的偏移位置。运动矢量能源于宏功能块内的其他位置并能用于宏功能块的较小部分。位于运动矢量所表示的位置上的象素用于预测重构图象。
在一个实施例中,重构图象中的每个象素根据基准图象中的象素进行双线性过滤。内插从基准图象中过滤的彩色以形成新的彩色。能加上基于IDCT输出的校正项以进一步使所得到象素的预测精确。
图5表示适用于与本发明一起使用的象素数据的概念表示。每个宏功能块具有256字节的亮度(Y)数据用于宏功能块的256个象素,宏功能块象素的兰色度(U)与红色度(U)数据以1/4分辨度或宏功能块的64字节的U数据与64字节的V数据进行传送,并且过滤用于混合象素彩色。也能使用其他的象素编码方案。
图6是用于根据本发明的一个实施例执行运动补偿与纹理映射的组成部分的方框图。图6的组成部分能用于执行纹理映射和运动补偿。在一个实施例中,执行运动补偿解码以响应在此称为GFXBLOCK命令的特殊命令;然而,也能使用其他的命令名称与格式。下面参照图9更详细地描述GFXBLOCK命令的一种格式。
耦合命令数据流控制器600以便从外部源(例如,处理器或缓冲器)中接收命令。命令数据流控制器600对这些命令进行语法分析并解码这些命令以执行合适的控制功能。如果收到的命令不是GFXBLOCK命令,则命令数据流控制器600将控制信号与数据传送给建立引擎605。命令数据流控制器600也控制用于非GFXBLOCK命令的存储器管理、状态变量管理、二维操作等等。
在一个实施例中,在命令数据流控制器接收到GFXBLOCK命令时,将校正数据传送给纹理调色板650并将此数据存储在纹理调色板650中;然而,能将校正数据存储在任何存储器中。命令数据流控制器600也发送控制信息给写地址生成器640。发送给写地址生成器640的控制信息包括块模式比特、预测类型(例如,I、B或P)等等。写地址生成器640使用于宏功能块的象素的校正数据以宏功能块的IDCT操作输出的顺序写入纹理调色板中。在一个实施例中,利用软件执行IDCT操作;然而,也能利用硬件来实施。
图7表示16象素乘16象素宏功能块的亮度校正数据。一般地,宏功能块700包括四个标记为710、720、730与740的8象素乘8象素块。每个块包括4个4象素乘4象素子块。例如,块710包括子块712、714、716与718,而块720包括子块722、724、726与728。
写地址生成器640使用于宏功能块的象素的校正数据以行主顺序(row major order)逐个块被写到纹理调色板650。换句话说,将第一行的块710(象素0-7)在第二行的块710(象素16-23)之前写入纹理调色板650。将其余行的块710以同一方式写入纹理调色板650。
在将块710的数据写入纹理调色板650之后,将块720的数据以同一方式写入纹理调色板650。因此,将第一行的块720(象素8-15)在第二行的块720(象素24-31)之前写入纹理调色板650。将其余行的块720以同一方式写入纹理调色板650。块730与740以同一方式写入纹理调色板650。
再参见图6,命令数据流控制器600也发送控制信息给建立引擎605。在一个实施例中,命令数据流控制器600给建立引擎605提供对应于正在处理的GFXBLOCK命令的宏功能块的原点的坐标。例如,将坐标(0,0)用于帧的左上宏功能块,或将坐标(0,16)用于帧的顶行的第二宏功能块。
命令数据流控制器600也给建立引擎605提供与此宏功能块相关的高度与宽度信息。从所提供的信息中,建立引擎605确定包含在此宏功能块的预定三角形内的边框。相反地,在执行纹理映射时,建立引擎605确定包含此三角形的边框。因此,在执行运动补偿时,迭代整个宏功能块而不只是迭代此三角形。
在一个实施例中,利用边框的左上角与右下角定义此边框。边框的左上角是包括在GFXBLOCK命令中的宏功能块的原点。通过将此区域高度与宽度加到此原点来计算边框的右下角。
在一个实施例中,边框计算根据下式确定的纹理地址偏移POPOu=Originx+MVx(等式1)和POv=Originy+MVy(等式2)其中Pov和Pou分别是v和u坐标的偏移。Originx和Originy分别是边框原点的x与y坐标,而MVx和MVy分别是运动矢量的x与y分量。PO项以线性方式变换纹理地址。
在一个实施例中,通过根据下式将运动矢量与区域原点相加来矢量计算Pov与Pou
其中在下面描述等式3与4中的变量。在一个实施例中,下面的值用于GFXBLOCK命令。对于非GFXBLOCK命令,这些值由建立引擎605来计算。利用下面的值,能简化用于运动补偿计算的复杂纹理映射等式,从而允许为这两个用途而使用硬件。
u、v纹理地址用于确定从基准象素中提取哪些象素。
映射地址生成器615提供读地址给提取单元620。由映射地址生成器615生成并提供给提取单元620的读地址基于利用运动矢量所描述的帧之间的象素移动,这允许存储在存储器中的象素通过重新安排提取的象素的地址重复用于后续帧。在一个实施例中,利用上面列出的值由映射地址生成器615生成的地址简化为v(x,y)=y+Pov(等式5)和u(x,y)=x+Pou(等式6)建立引擎605给窗口610提供边框信息。窗口610迭代此边框内的象素以生成利用GFXBLOCK命令写入的数据的写地址。换而言之,总是通过三角形边缘等式,这允许窗口610处理整个宏功能块而不是停在三角形边界上。
窗口610生成象素写地址以便将数据写入未在图6中示出的超高速缓冲存储器。窗口610也给映射地址生成器615提供宏功能块的原点并提供运动矢量信息给映射地址生成器615。在一个实施例中,窗口610提供控制命令与象素时标给映射地址生成器615,此生成器615根据窗口610与建立引擎605提供的信息确定基准象素位置。
提取单元620将映射地址生成器615提供的读地址变换为超高速缓存地址。将提取单元620生成的超高速缓存地址发送给超高速缓冲存储器630。将存储在超高速缓存地址上的象素数据发送给双线性过滤器625。映射地址生成器615将部分象素位置数据与相邻象素的超高速缓存地址发送给双线性过滤器625。如果此运动矢量定义小于全象素的移动,则双线性过滤器625根据部分位置数据与相邻象素过滤从超高速缓冲存储器630返回的象素数据。双线性过滤技术在本领域是公知的并在此不再进一步进行描述。
在一个实施例中,双线性过滤器625生成发送给混合单元670的前向与后向过滤象素信息,能利用图6所示的独立信道发送此信息给混合单元670,或能在单个信道上时分多路复用此信息。双线性过滤器625发送象素位置信息给读地址生成器660。如上所述,定位和过滤此象素位置信息。
读地址生成器660以不同于写地址生成器640控制的写入的顺序从纹理调色板650中读出象素信息。参见图7,读地址生成器660使象素数据以行主顺序逐个子块从纹理调色板650中读出。此排顺由于存储在超高速缓冲存储器630中的象素基准的位置而优化超高速缓冲存储器630的性能。换句话说,在第2行的子块710(象素16-19)之前读出第1行的子块712(象素0-3)。以同一方式读出子块712的其余象素。
在读出子块712的象素之后,以同一方式读出子块714的象素。在第二行的子块714(象素20-23)之前读出第一行的子块714(象素4-7)。以同一方式读出块710(716与718)的其余子块,以同一方式读出块720的子块,之后读出块730的子块并且最后读出块740的子块。
将从纹理调色板650中读出的象素输入给混合单元670。混合单元670组合来自双线性调色板650的象素数据和来自纹理调色板的校正数据,以生成新视频帧的输出象素。映射地址生成器615给双线性过滤器625提供部分象素定位信息。
图6的流水线中能同时存在多个GFXBLOCK命令。结果,校正数据流通过纹理调色板650。管理至纹理调色板650的读与写接入,以使校正数据流不复写存储在纹理调色板650中的有效数据。
在一个实施例中,在映射地址生成器615与双线性过滤器625之间提供FIFO缓冲器(在图6中未示出)。因为存储器存取比其他的硬件操作慢,所以至存储基准象素的存储器的存取能安装流水线操作。FIFO缓冲器允许存储器等待时间被隐藏,这允许流水线起作用而不必等待基准象素从存储器返回,从而改善流水线性能。
为了同时隐藏存储等待时间并在纹理调色板650中存储后续GFXBLOCK命令的校正数据,阻止写地址生成器640复写纹理调色板650中的有效数据。在一个实施例中,读地址生成器660将同步点传送给写地址生成器640。这些同步点对应于读地址生成器660将不接入的地址之外的地址。同样地,写地址生成器640将同步点传送给读地址生成器660来表示有效数据。
图8是根据本发明一个实施例的运动补偿解码的硬件-软件接口的方框图。图8的方框图对应于运动补偿电路再现B帧和显示I帧的时间。在处理视频数据流时,某些输入和/或输出帧可以不同。
将压缩的宏功能块880存储在存储器830中。在一个实施例中,存储器830包括在计算机系统或另一电子装置内。也能从诸如例如CD-ROM、DVD播放器等的源中获得压缩的宏功能块880。
在一个实施例中,将压缩的宏功能块880存储在超高速缓冲存储器810中,将压缩的宏功能块存储在超高速缓冲存储器810中使处理器800更快地存取压缩宏功能块880中的数据。在可选择实施例中,在存储器830中由处理器800存取压缩的宏功能块880。
处理器800处理存储在超高速缓冲存储器810中的宏功能块以便语法分析和解释宏功能块命令。在一个实施例中,处理器800也执行一系列指令以便对存储在超高速缓冲存储器810中的宏功能块数据执行一个或多个IDCT操作。处理器800将IDCT操作的结果和命令数据存储在存储缓冲器820中。存储缓冲器820分级存储在存储器830中的数据。
将来自存储缓冲器820的数据存储在运动补偿命令缓冲器890中。在一个实施例中,运动补偿命令缓冲器890是存储诸如在运动补偿电路840处理之前的GFXBLOCK命令的运动补偿命令的FIFO队列。运动补偿电路840如上面结合图6所述对运动补偿命令进行操作。
在图8的示例中,运动补偿电路840从I帧852与P帧854中重构B帧858。在一个实施例中,将各个帧存储在视频存储器850中。可选择地,能将帧存储在存储器830或某一其他存储器中。如果例如运动补偿电路840在再现B帧,则从视频存储器850中读出单个帧以便重构。在图8的示例中,将4个帧存储在视频存储器850中;然而,能将任何数量的帧存储在视频存储器850中。
显示的帧(I帧852)由重叠电路860从视频存储器850中读出。重叠电路860将YUV编码的帧变换为红-绿-兰(RGB)编码的帧,以致能利用显示装置870显示这些帧。如果需要的话,重叠电路860能将显示的帧变换为其他的格式。
在前面的说明中,结合其特定实施例描述了本发明。然而,能对其进行各种修改与变化而不背离本发明的较宽的精神与范畴。因此,此说明书与附图应认为是示意性而不是限制性的。
权利要求
1.数字视频数据的运动补偿的一种方法,此方法包括接收具有涉及宏功能块的相关校正数据的运动补偿命令;根据对应于此运动补偿命令的第一顺序将此校正数据存储在存储器中;根据此运动补偿命令执行帧预测操作;根据第二顺序从存储器中读出此校正数据;和将此校正数据与帧预测操作的结果组合,以生成一个输出视频帧。
2.如权利要求1的方法,根据逆离散余弦变换(IDCT)操作的输出确定第一顺序。
3.如权利要求1的方法,执行帧预测操作还包括生成包含此宏功能块的边框;和迭代此边框;提取基准象素;过滤这些基准象素;在需要时,平均过滤的基准象素;和将校正数据附加到这些基准象素上。
4.如权利要求1的方法,其中此运动补偿数据包括至少一个运动矢量。
5.如权利要求1的方法,还包括对此宏功能块执行纹理操作。
6.用于数字视频数据的运动补偿的一种设备,此设备包括用于接收具有涉及宏功能块的相关校正数据的运动补偿命令的装置;用于根据对应于此运动补偿命令的第一顺序将此校正数据存储在存储器中的装置;用于执行帧预测操作以响应此运动补偿命令的装置;用于根据第二顺序从存储器中读出此校正数据的装置;和用于将此校正数据与帧预测操作的结果组合以生成输出视频帧的装置。
7.如权利要求6的设备,第一顺序基于逆离散余弦变换(IDCT)操作的输出。
8.如权利要求6的设备,执行帧预测操作还包括;用于生成包含此宏功能块的边框的装置;和用于迭代此边框的装置;用于提取基准象素的装置;用于过滤这些基准象素的装置;用于在需要时平均过滤的基准象素的装置;和用于将校正数据附加到这些基准象素上的装置。
9.如权利要求6的设备,其中此运动补偿数据包括至少一个运动矢量。
10.如权利要求6的设备,还包括用于对此宏功能块执行纹理操作的装置。
11.用于生成运动补偿视频的一种电路,此电路包括耦合以接收控制运动补偿视频数据的指令的命令数据流控制器;写地址生成器,耦合到此命令数据流控制器;存储器,耦合到此命令数据流控制器并耦合到此写地址生成器,纹理调色板以此写地址生成器确定的第一顺序存储象素数据;处理电路,耦合到写地址生成器,以便从此命令数据流控制器中接收控制信息与数据来生成重构视频帧;读地址生成器,耦合到此处理电路并耦合到此存储器,此读地址生成器使此存储器以第二顺序输出象素数据。
12.如权利要求11的电路,其中第一顺序是逐个块行主顺序。
13.如权利要求11的电路,其中第一顺序对应于逆离散余弦变换操作的输出序列。
14.如权利要求11的电路,其中第二顺序是逐个子块行主顺序。
15.如权利要求11的电路,其中此处理电路包括确定利用此指令控制的象素的边框的建立引擎,其中此边框包含宏功能块的所有边缘。
16.如权利要求11的电路,其中此处理电路包括具有其中处理边框中的三角形内的象素的第一模式和其中处理边框内的所有象素的第二模式的窗口。
全文摘要
描述用于利用纹理映射引擎进行数字视频数据的运动补偿的方法与设备。一般地,本发明通过从一个或多个基准图象中预测象素彩色重构图象来提供运动补偿,此预测能是前向、后向或双向的。在此所述的结构将纹理映射硬件部分重复用于完成数字视频数据的运动补偿。修改边框和边缘检验,以便为了运动补偿而处理宏功能块。另外,根据基于逆离散余弦变换(IDCT)结果的第一顺序将象素数据写入纹理调色板并根据对于基准的位置而优化的第二顺序读出此象素数据。提供纹理调色板存储器管理方案以保持当前数据并在传送运动补偿命令时避免有效数据的重写。
文档编号H03M7/36GK1346573SQ99816443
公开日2002年4月24日 申请日期1999年12月21日 优先权日1999年1月7日
发明者T·A·皮亚扎, V·G·库克 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1