视频解码设备的制作方法

文档序号:7609805阅读:154来源:国知局
专利名称:视频解码设备的制作方法
技术领域
本发明涉及一种视频解码设备,特别是涉及但不限于用于对运动图片专家组(MPEG)和相关联的已编码视频类型进行解码的视频解码设备。
背景技术
数字视频压缩被用于许多不同的环境并已在许多不同的情形中成为首选。三种这类环境是广播和DVB(数字视频广播)标准;视频数据的存储和DVD(数字多功能盘)标准;以及使用诸如MPEG-4编码之类的标准的互联网节点对节点通信。
传统上,与这些相关联的这些编码器和解码器(编解码器(Codec))的大部分是基于原始MPEG(运动图片专家组-国际标准组织/国际电子技术委员会视频解码和编码方法)标准,通常已知为MPEG2。编解码器及支持它们的编码/解码算法已改进,因为原始算法被设定为标准。这些改进已被合并到一系列不是MPEG标准而仍使用MPEG类型分段和压缩步骤的编解码器中。
MPEG和MPEG类型编解码器对由一系列图像(这些图像已知为图片)组成的视频数据进行处理。存在两种类型的图片帧图片或半帧图片。帧图片被进一步细分成一对半帧,每一半帧包括交替的扫描图像行。半帧图片包含来自单个半帧的图像数据行。每一图片由编解码器作为参照图片或非参考图片来处理。
所有这些MPEG类型方案参照帧或半帧图片,特别是参照特定的一个或多个参考图片来进行编码和解码。在其最基本的形式中,这涉及对后面有一系列非参考图片的初始参考图片进行编码。然而,实际上,参考和非参考图片之间的区别不那么简单。参考图片可以是帧内(I)图片和/或P图片。I图片是未参考任何其它图片编码的图片。然而,P和B图片是用来自一个或多个其它图片的数据编码的。B图片不用于编码其它图片。
I图片被分成一序列宏块(MB)。然后对块进行处理。B和P图片从P和I图片中搜索宏块,以找到与B和P图片中的块类似的块。然后按与在内容以及位置方面与I和P图片的宏块不同的宏块对B和P图片编码。
解码方案执行重建原始的P和I图片的编码方案的逆过程,然后用I和P图片和额外的P和B图片数据重建原始的P和B图片。
当前商业上可用的视频解码芯片解决方案主要为解码MPEG2编码的视频流而设计。因此,这些商业上可用的解决方案是为MPEG2优化的,且不能被容易地修改以对用任何其它标准编码的视频流解码。
有多种已知的灵活解码器可用,但是它们是基于诸如那些用于个人计算机中的之类的通用处理单元(GPU)。这些灵活的解码器用存储在处理器外部的存储器中的指令执行整个解码过程,该解码过程是根据需要解码的视频标准来选择并加载的。这些GPU不是为执行视频解码而优化的,与先前使用的MPEG2视频处理单元相比,它们消耗大量功率且产生大量热量。GPU与先前使用的MPEG2视频处理单元相比还很贵,因此使得灵活视频解码系统的生产成本昂贵。
发明概述本发明的实施例的一个目的在于解决或至少部分缓解上述一个或多个问题。
本发明的实施例可提供一种能够足以灵活以对一套标准进行解码的单个设备。
根据本发明提供了一种视频解码电路,它包括第一视频数据处理器;第二视频数据处理器;以及连接所述第一视频数据处理器和所述第二数据处理器的连接;其中,所述第一视频数据处理器被安排成接收包括已编码视频数据的第一信号,处理所述第一信号以提供第二信号并输出所述第二信号,所述第一视频数据处理器被安排成根据所述接收到的第一信号的至少一部分处理所述第一信号,而所述第二视频数据处理器被安排成接收所述第二信号的至少一部分,处理所述第二信号的至少一部分以提供第三信号,并输出所述第三信号,所述第二和第三信号包括已解码视频图像流,且所述第二视频数据处理器被安排成根据至少部分所述第二信号的至少一部分处理所述第二信号的所述至少一部分。
第一视频数据处理器可以被安排成对所接收到的第一信号进行可变长度解码以产生已解码第一信号。
所述第一视频数据处理器可以被安排成将所述第一信号数据分成至少第一部分和第二部分,其中所述第一部分可包括像素数据和残留数据中至少一种,且其中所述第二部分可包括运动矢量数据。
第一视频数据处理器可以被安排成反量化所述第一信号的所述第一部分。
第一视频数据处理器可以被安排成对所述第一信号的所述第一部分进行空间域变换。
第一视频数据处理器可以被安排成将经过所述空间域变换和/或反量化的所述第一信号的第一部分与所述第一信号的所述第二部分相组合。
第二视频数据处理器可以被安排成内插所述第二信号的至少第一部分。
第二视频数据处理器可以被安排成用水平和垂直内插法中的一种内插所述第二信号的至少第一部分。
该电路还可包括存储器,所述第二视频数据处理器可以被安排成将所述第二信号的所述内插的部分存储在所述存储器中。
第二视频数据处理器可以被安排成用水平和垂直内插法中的另一种内插所述存储的所述第二信号的内插的第一部分。
第二视频数据处理器可以被安排成将所述第二信号的所述内插部分和所述第二信号的又一部分相组合,其中所述第二信号的所述内插部分可包括估计的宏块,而所述第二信号的又一部分可包括残留误差数据。
第二视频数据处理器可以被安排成对所述第二信号的所述至少一部分和所述第三信号中至少一个进行滤波。
滤波器可包括去鸣振滤波器(de-ringing filter)和去块滤波器(de-blockingfilter)中的至少一个。
该连接可包括连接所述第一和第二视频数据处理器的总线。
该电路还可包括存储设备,所述存储设备可以与所述总线连接。
第一视频数据处理器可具有用于通过所述总线将所述第二信号输出到所述存储设备的输出。
第二视频数据存储器可具有用于通过所述总线从所述存储设备接收所述第二信号的所述部分的输入。
该连接可包括数据互连,所述数据互连可直接连接所述第一视频数据处理器和所述第二视频数据处理器。
第一视频数据处理器可具有用于将所述第二信号输出至所述数据互连的输出。
第二视频数据处理器可具有用于从所述数据互连接收所述第二信号的所述部分的输入。
第二视频数据处理器可从所述数据互连接收部分所述第二信号的所述部分和从所述总线接收部分所述第二信号的所述部分。
所述第一信号可以是至少下列之一MPEG2编码视频流;H.263编码视频流;RealVideo9编码视频流;Windows媒体播放器编码视频流;H.264编码视频流。
第二信号可包括至少下列之一缓冲区基地址字;图片级参数首部字;图片级参数字;宏块首部字;片参数字;运动矢量水平亮度字;运动矢量垂直亮度字;运动矢量水平色度字;运动矢量垂直色度字;像素数据参考字和像素数据残留字。
第一视频数据处理器可包括数据打包器。
第二视频数据处理器可包括数据打包器。
数据打包器可包括输入,所述输入可以被安排成接收所述第二信号;所述第二信号可以包括数据字;用于为所述数据字排序的装置;和输出,所述输出可以被安排成发送包括经排序的数据字的数据包。
一集成电路可包括上述电路。
第一视频数据处理器可包括一个超长指令字处理器。
该超长指令字处理器适用于进一步根据存储器中存储的一组指令处理所述第一信号。
第二视频数据处理器可包括可编程处理器。
根据本发明的第二方面,提供了一种视频解码方法,它包括下列步骤在第一视频数据处理器处接收包括已编码视频数据的第一信号,根据所述第一信号的至少一部分处理所述第一信号以提供第二信号,输出所述第二信号,在第二视频数据处理器处接收所述第二信号的至少一部分,
根据所述第二信号的至少一部分处理所述第二信号的至少一部分以提供第三信号,并输出所述第三信号,其中所述第二和第三信号包括解已码视频数据流。
处理所述第一信号的步骤可包括对所述第一信号进行可变长度解码的步骤。
处理所述第一信号的步骤可包括将所述第一信号分成至少第一部分和第二部分的步骤,其中所述第一部分可包括像素数据和残留数据中至少一种,且其中所述第二部分包括运动矢量数据。
处理所述第一信号的步骤还可包括反量化所述第一信号的所述第一部分的步骤。
处理所述第一信号的步骤还可包括对所述第一信号的所述第一部分进行空间域变换的步骤。
处理所述第一信号的步骤还可包括将经过所述空间域变换和/或反量化的所述第一信号的第一部分与所述第一信号的所述第二部分相组合的步骤。
处理所述第二信号的至少一部分的步骤还可包括内插所述第二信号的至少第一部分的步骤。
内插所述第二信号的至少第一部分的步骤可包括用水平和垂直内插法中的一种内插所述第二信号的至少第一部分的步骤。
所述内插步骤还可包括存储所述第二信号的所述内插部分。
所述内插步骤还可包括用水平和垂直内插法中的另一种内插所述第二信号的所述内插部分。
处理所述第二信号的至少一部分的步骤还可包括将所述第二信号的所述内插部分和所述第二信号的又一部分相组合,其中所述第二信号的所述内插部分可包括估计的宏块,而所述第二信号的又一部分可包括残留误差数据。
处理所述第二信号的至少一部分的步骤还可包括滤波步骤,其中所述滤波步骤可包括下列步骤中的至少之一去环滤波和去块滤波。
输出所述第二信号的步骤还可包括将所述第二信号存储在存储器中的步骤。
接收所述第二信号的至少一部分的步骤可包括直接从所述第一视频数据处理器接收所述第二信号的所述至少一部分。
接收所述第二信号的至少一部分的步骤可包括直接从所述第一视频数据处理器接收所述第二信号的所述至少一部分的第一部分和从所述存储器接收所述第二信号的所述至少一部分的第二部分。
处理所述第一信号的步骤还可包括对所述第二信号分包的步骤。
处理所述第二信号的步骤还可包括下列步骤对所述第二信号的所述至少一部分分包;将所述第二信号的所述至少一部分存储在存储器中;以及从所述存储器接收所述至少部分所述存储的第二信号。
附图简要描述为了更好地理解本发明及如何实现本发明,现在将仅作为示例来参考附图,附图中

图1示出来自形成运动图像的帧序列的一对帧;图2示出MPEG类型编码器的示意图;图3示出其中能实现本发明的实施例的MPEG类型解码器的示意图;图4a示出视频解码系统的一个实施例的示意图;图4b示出视频解码系统的又一实施例的示意图;图5a示出用于图4a和4b所示的解码视频处理器的第一安排的示意图;图5b示出用于图4a和4b所示的解码视频处理器的第二安排的示意图;图5c示出用于图4a和4b所示的解码视频处理器的第三安排的示意图;图5d示出用于图4a和4b所示的解码视频处理器的第四安排的示意图;图6a示出用于图4a和4b所示的视频协处理器的第一安排的示意图;图6b示出用于图4a和4b所示的视频协处理器的第二安排的示意图;图6c示出用于图4a和4b所示的视频协处理器的第三安排的示意图;图7示出图6a、6b和6c所示的预测量构造器的示意图;图8示出图5b、5d和6c所示的数据打包器的示意图;图9示出传送至图8所示的打包器单元的已解码数据字;图10示出详细说明图8所示的数据打包器的过程的框图;图11示出用于从图8所示的数据打包器输出的图像数据的数据结构;图12示出用于图7所示的预测量内插器中的内插引擎的示意图。
图13示出说明图4b所示的视频解码处理器和视频协处理器之间的‘同步’和‘异步’连接实施例的时序图。
本发明实施例的详细描述参见图1,图1示出展示MPEG类型压缩系统的一对帧图片。如前详述,通用MPEG类型压缩系统涉及将视频采样成一系列图片101、103。这些帧图片在本发明的实施例中可以被进一步分成半帧图片150、152。在该实施例中,帧图片具有两个半帧图片,每个半帧图片包括交替的帧图片行。
该图片被进一步分成一系列宏块(MB),其中一个宏块105被示出。宏块包含采样的亮度(明亮)和色度(色彩)数据。通常色度数据被二次采样。因此,在宏块为16×16像素大的实施例中,有256个亮度样本和较少数量的色度样本。宏块被进一步分解为更小的块,其数量和结构由所使用的编解码器的类型来确定。例如,在MPEG-2编码中,每一宏块被细分成6个块。各为8×8像素大的四个块包含亮度数据。同样为8×8像素大的另两个块包含二次采样的色度数据。其它编码标准可以例如使用8×4像素或4×8像素大的块。因此,在720×480像素(NTSC-美国国家电视系统委员会)或720×576(PAL-逐行倒相)像素的全屏图像图片中,在每一图片中有许多要编码的宏块。
参见图2,为了更好地理解本发明,将更详细地描述MPEG类型压缩系统的步骤。MPEG类型编码器包括以下各项块编码器201;频域编码器203;量化器205;以及可变长度编码器207。
数据流是这样的,它使得最初将图像数据传送至块编码器201。在由块编码器201处理后,数据被传送至频域编码器203。在频域编码203之后,数据被传送至量化器205。在量化后,数据被传送至可变长度编码器207。可变长度编码器207的输出为MPEG类型视频图像代码。
I图片101和P、B图片103在它们的编码方法中经历稍有不同的过程。
块编码器201在对I图片编码的过程中对每一宏块(MB)进行亮度和色度值的采样,如本领域中已知的。所采样的数据被传送至频域编码器203。所采样的I图片数据的副本也被存储用于P或B图片编码。
块编码器201在处理P或B图片的过程中使用所存储的I或P图片数据。对照I或P图片宏块搜索P或B图片的宏块样本系列。如果I或P图片中的宏块与P或B图片中的宏块相似,则找到‘匹配’。用两条信息对匹配的宏块编码。
已知第一条信息为残留数据。该残留数据是两个宏块(107,105),即P或B图片中的宏块与I或P图片中的匹配宏块之间的亮度和色度中的差别。
所创建的第二条信息是块移动预测量,也称为运动矢量。图1中示意性地示出的运动矢量为匹配的宏块之间的空间差。为了图示运动矢量109,将P或B图片的宏块107映射到I或P图片上。映射的宏块的标号为111。运动矢量109示出映射的宏块111和I或P宏块105之间的位置差。这只是为了图解。
I图片被传送至频域编码器203。B或P残留数据也被传送至频域编码器203,而运动矢量数据被直接传送至可变长度编码器207。
频域编码器203应用一种将来自宏块中的每一块的数据从空间域转换到频域的变换。如本领域中已知的,这种变换可以是离散余弦变换(DCT),但也可以是其它已知的频域变换。然后,来自频域编码器203的频域输出被传送至量化器205。
量化器205对来自宏块的块数据的频域信息进行二次采样。这是通过将频域编码器的结果除以预定数字以去除某些最底有效位值而实现的。
然后将量化的频域数据流传送至可变长度编码器207,从而将预测的宏块数据与运动矢量数据重新组合。
可变长度编码器207应用通过检测0的或1的序列并将它们编码成更有效的形式来从比特流中去除冗余的过程。可以使用诸如霍夫曼(Hoffman)或哈夫曼(Huffman)编码序列之类的可变长度编码序列以及本领域已知的其它序列。
参见图3,示出编码过程的逆过程,即MPEG类型视频流的解码过程。
MPEG类型解码器包括数据输入300、可变长度解码器301、反量化器303、空间域编码器305、加法器307、宏块参考图像选择器309、环内滤波器351、后处理滤波器353和图像输出311。
解码器还包括将解码器的各种组件连接在一起的一系列互连313、315、317、319、321、323、325和327。
互连313将可变长度解码器301与反量化器303连接。互连319将反量化器303与空间域编码器305连接。互连321将空间域编码器305与加法器307连接。互连315将可变长度解码器与宏块参考图像选择器309连接。互连317将宏块参考图像选择器309与加法器307连接。互连325将加法器307的输出与环内滤波器351连接。互连323将环内滤波器的输出与宏块选择器309连接。互连327将环内滤波器的输出与后处理滤波器353连接。
MPEG类型压缩信号为对可变长度解码器301的输入300。
可变长度解码器(VLD)对原始数据流执行两个功能。第一功能是对该数据流应用可变长度编码算法的逆运算。
可变长度解码器301还确定图片类型,换言之,确定信号是I、P还是B图片。
如果当前图片为I图片,则通过互连313将所有数据传送至反量化器303。如果当前图片为P或B图片,则通过互连313将残留数据传送至反量化器303,并通过互连315将运动矢量和宏块的预测模式传送至宏块选择器309。
反量化器303执行量化单元的逆过程,换言之,通过将所接收到的值乘以所使用的预定数字将数据流返回至其原始的比特长度。但在量化过程期间从最低有效位丢失的值不能被恢复。通过互连319将此数据传送至空间域变换器305。
空间域编码器305对数据执行频阈至空间域的变换,从而将数据恢复到原始编码的空间域。已知的空间域变换包括反离散余弦变换。
来自空间域编码器305的输出为原始编码的宏块亮度和色度信息,但取决于原始执行的量化的值一些数据丢失。对于帧内(I图片)值,该数据为绝对亮度或色度值,而对于P或B图片值,该数据为相对亮度或色度值。
这些值通过互连321被输出至加法器307的第一输入。
在并行数据流路径中,预测的运动矢量信息被传送至宏块选择器309。此数据用于标识存储在先前解码的I或P图片中的匹配的元素。然后此匹配的元素通过互连317被传送至加法器307的第二输入。
加法器307对I图片宏块只输出从空间域变换器305传送至其的数据。加法器307对P或B图片输出选择的预测的宏块元素与空间域变换器305输出的残留数据的组合值。
图3中所示的解码实施例中示出两种滤波器。第一种类型是环内滤波器351。环内滤波器由MPEG流的类型定义。因此,例如,一些标准H.263、WMV、Real Video和H.264使去块滤波器被实现为解码的一部分。
在某些标准中,不要求环内滤波器,在该情况中环内滤波器用作数据缓冲器。
第二种类型为后处理滤波器353。后处理滤波器353不由任何一种标准定义,且能执行一套滤波功能以改善图片质量。这些滤波器可以是去块、去环或其它图像增强或减噪滤波器。另外,这些所使用的滤波器在图片存储环路外被应用于数据。
可以将本领域已知的去块滤波器同时用作环内滤波器和后处理滤波器。该滤波器在空间域中工作。滤波器检查宏块之间的边界以确定宏块之间的图像质量是否显著不同。宏块之间的量化差异能在块之间产生边界,从而宏块之间相同的特征点或线不邻接。去块滤波器试图通过检查非邻接特征点是否具有低或高频分量来改善图像。在特征点缓慢移动,从而为低频的情况下,可以平滑线条之间的差异并在宏块之间产生较不可见的人工产物。而快速移动的特征点不被平滑,因为这会产生特征的模糊。
去环滤波器是试图降低粗糙量化的效应的又一自适应滤波器。这种滤波器只由后处理滤波器使用。宏块的粗糙量化去除了大量高频信息。视觉上这可以从以所定义的特征为中心的人工产物环的出现看到。这种类型的人工产物在本领域中已知为蚊式噪声(mosquito noise)。这种噪声能通过应用将当前宏块与先前计算的宏块相比较的去环滤波器得以缓解。它还检查当前宏块中的像素值以试图缓解噪声。
因此,对于帧内或预测的图片数据,从加法器307输出在组合时能形成总图片的一系列宏块。然后可以通过互连将帧内和P图片传送回去用于存储和用于后续的预测图片重建。
从上述讨论可见,一旦数据已被可变长度解码,在数据路径之间存在可能的算法划分。运动矢量信息和残留数据在P和B图片的重建中不相互作用,直至由加法器/组合器307接收到它们。因此,可以分开这两条数据路径的处理而不需要在两个处理阶段之间传送数据。
一旦引入内插动作,运动矢量和残留解码的这一分离就更明确了。因为运动矢量可能不指向确切的像素值,但可指向诸如离开整个行或列值1/2或1/4像素值之类的分数位置,可要求宏块选择器执行图像数据的内插或重采样。为了执行这一内插过程,I或P图片数据被导入并要求内插器执行许多数值计算,以计算每一内插的图像。在测试用于在通用处理器单元上运行的时间百分比时,MPEG数据流的解码的运动补偿过程部分能占整个运行时间高达40%。
对于本发明描述两种类型的视频解码器。两种类型均为可配置的视频解码器,因此足以灵活以解码一套不同的已编码视频数据流。
首先,两个主要过程的分离由两个分离的数据处理器执行。第二,两个分离的数据处理器通过两者之间的互连连接。
参见图4a,示出第一种类型的灵活视频解码器499。第一种类型表示插入视频协处理器以允许灵活视频解码器499中的灵活性。视频解码器处理器和视频协处理器之间通过公用数据总线通信。
灵活视频解码器包括视频解码器处理器(VDP)509、视频协处理器(VCP)519、共享存储器501、共享数据总线503和一系列互连505、507、517。
共享数据总线503通过互连505互连共享存储器501,通过互连507互连视频解码器处理器(VDP)509,并通过互连517互连视频协处理器(VCP)519。
在单个集成电路上创建所述的所有组件。然而,在发明的一些实施例中,诸如外部输入/输出设备和数据控制器之类的其它组件可以被连接至灵活视频解码器,或作为灵活视频解码器的一部分来实现。
灵活视频解码器系统在共享数据总线503上接收经压缩的视频数据。该数据可以由灵活视频解码器499通过未示出的输入/输出设备从外部信源接收或从共享存储器501接收。
此数据被传送至视频解码器处理器(VDP)509。
参见图5a和6a,示出具体化本发明的视频解码处理器和视频协处理器。图5a更详细地示出图4a中所示的视频解码处理器VDP的示意图。视频解码处理器509包括存储器管理单元403、可变长度解码器407、反量化器411、空间域编码器415、内部数据互连417、外部数据互连401和互连405、409、413。
应理解,在本发明的一些实施例中,在超长指令字(VLIW)处理器上实现视频解码处理器。在这种实现中,所述的数据互连以软件控制和实现。
外部数据总线401将外部互连507与存储器管理单元403连接。存储器管理单元进一步通过互连405与可变长度解码器407连接。可变长度解码器407通过互连409与反量化器411连接。反量化器411通过互连413与空间域编码器415连接。内部数据互连417将可变长度解码器和空间域编码器的输出连接至存储器管理单元403。
存储器管理单元403包括总线路由和寻址系统,以及存储器高速缓存,以缓存数据和访问共享数据总线503。因此,由存储器管理单元403接收到的数据在处理前先被缓存。
在VLIW处理器上实现视频解码处理器的本发明的实施例中,存储器管理单元属于VLIW处理器并包含指令和数据高速缓存。
存储器管理单元403还被安排成检测由视频解码处理器509接收到的视频数据,以确定视频数据的格式并根据视频数据的格式配置VDP。
在VLIW处理器上实现视频解码处理器的本发明的其它实施例中,对接收到的压缩视频数据的检测通过在VLIW处理器上执行的软件过程实行。然后VLIW被安排成向视频协处理器发送命令以配置该协处理器。
然后将接收到的数据发送至用于可变长度解码的可变长度解码器407。可变长度解码器407被安排成以上述方式对编码的数据流解码。
可变长度解码器还被安排成根据数据类型和编码格式将数据分段。如果解码的数据是帧内图片的一部分,则通过互连409将该数据传送至反量化器。如果解码的数据是P或B图片,则将数据分成其残留数据和运动矢量数据分量。运动矢量数据分量在内部数据互连417上输出,而残留数据通过互连409被传送至反量化器411。
反量化器411被安排成对接收到的数据执行反量化。反量化器411接收残留数据分量,或解码的宏块数据并根据已编码数据的格式执行反量化。然后数据通过互连413被传送至空间域编码器415。
空间域编码器被安排成实现空间域编码,即频域到空间域的变换。因此空间域编码器根据接收到的数据的格式执行频域到空间域的变换。然后经处理的数据被输出到内部数据互连417上。
因此,通过内部数据互连417将运动矢量和P或B图片的残留数据及I图片的参考数据传送至存储器管理单元403,其中数据在通过互连507和共享数据总线503传送到共享存储器501之前先被缓存。
如果该数据为帧内图片,则将已编码数据存储在存储器中作为要由其它P和B图片参考的I图片之一。类似地,如果数据为P图片,则已编码运动矢量和残留数据作为P图片存储在存储器中并可由其它B或P图片参考。然而,如果该数据为B图片的一部分以重建真实图像,则需要从运动矢量和残留数据值创建宏块和残留误差。
视频协处理器(VCP)519被安排成接收数据并实现图像构造。图6a示出图4a所示的视频协处理器519的一个实施例的示意图。
视频协处理器包括存储器管理单元453、预测量构造器459、外部数据互连451和内部数据互连455。
外部数据互连451将互连517与存储器管理单元453连接。存储器管理单元通过内部数据互连与预测量构造器459连接。
存储器管理单元453被安排成缓存数据、通过互连517将数据发送至共享存储器501和从共享存储器501接收数据。然后这一信息被放置在内部数据连接455上以供预测量构造器459使用。
在本发明的一个实施例中,在可编程处理器上实现视频协处理器519。在这样一个实施例中,存储器管理单元由可编程处理器控制。
存储器管理单元453还被安排成检测所接收到的视频数据的格式。存储器管理单元453还被安排成根据接收到的数据的格式配置预测量构造器459。
预测量构造器459被安排成从内部数据互连455接收数据并根据接收到的数据的格式处理运动矢量数据。因此预测量构造器能请求参考数据并对接收到的参考数据执行内插以创建所需的参考宏块。
预测量构造器459还被安排成组合残留和参考数据以产生完整的预测量宏块。
参见图7,示出预测量构造器的示意图。预测量构造器459包括解包器683、预测量误差存储685、加法器/组合器687、预测量读取器681和预测量内插器689。预测量构造器459还包括I/O互连671、预测量互连673和互连672、677、675。
在可编程处理器上实现视频协处理器519的本发明的一个实施例中,参照图7所述的过程可以通过一系列软件指令或一系列软件指令和硬件实现的组合来实现。在涉及软件进程的这一实现中,术语互连包括软件进程之间和寄存器和/或内部存储器之间数据传输。
I/O互连671将视频协处理器内部数据互连455连接至加法器/组合器687、连接至预测量读取器681、并连接至解包器683。预测量互连673将解包器连接至预测量内插器689,并连接至预测量误差存储685。互连672将预测量读取器687连接至预测量内插器689。互连677将预测量内插器689连接至加法器/组合器687。互连675将预测量误差存储685连接至加法器/组合器687。
解包器683被安排成通过内部数据连接455从存储器管理单元453接收数据,并将运动矢量数据与残留误差数据分离。残留误差数据通过互连673被传送至预测量误差存储685,而运动矢量预测量数据通过互连673被传送至预测量内插器689。
预测量内插器689接收预测量运动矢量数据,并计算所需的参考宏块数据。然后预测量内插器689通过互连672从预测量读取器681请求此数据。
预测量读取器681从共享存储器501请求所需的I或P图片宏块,并检索I或P图片宏块并将其传送至预测量内插器689。
预测量内插器被安排成基于取决于视频数据的格式的配置信息执行内插。然后通过互连677将经处理的视频数据传送至加法器/组合器687。
关于图12,示出内插器的一个实施例的示意图。内插器包括复制器1202、水平内插器1203、存储器阵列和垂直内插器。内插器还包括输出1201和输出1209,以及互连1204、1209、1211、1213和1215。
输出1201通过互连1204与复制器1202连接。复制器1202通过互连1209与水平内插器1203连接。水平内插器1203通过互连1211与存储器阵列1205连接。存储器阵列通过互连1213与垂直内插器1207连接。垂直内插器通过互连1215与输出连接。
输入接收要求内插的像素数据。这一像素信息被逐水平行地输入内插器,所述像素从各行的最左端至最右端输入。像素于是被传送至复制器。
在只可部分地获得正在使用的参考宏块的地方使用复制器。例如,在某些视频编码标准中,离当前宏块最近的参考宏块不是存储在参考图像中的完整宏块。例如,如果图片一角所显示的特征在后一或前一图片中移向图像的中心,则最近的参考图像是包含该部分特征的图像。在这种情形下,需要从部分检索到的宏块重建完整的宏块。此重建由复制器实现,该复制器根据视频编码格式重复最后的部分宏块像素值。
在完全从共享存储器检索宏块的情况下,复制器将像素数据传送至水平内插器1203。
水平内插器接收像素数据,并根据内插程度和视频流的格式执行水平内插。例如,在需要半像素内插的情况下,这能用采样延迟和加法器来实现。像素数据被传送至采样延迟和加法器的输入之一。加法器的第二输入与采样延迟的输出连接。因此加法器的输出是当前和前一像素的和。因此能执行除以2来产生平均值-或两个像素之间的内插值。然后水平内插的数据被传送至存储器阵列,使得像素形成一个内插值行的阵列。
一旦存储器阵列满,换言之,所有的像素都已被水平地内插,则将存储器阵列垂直读取至垂直内插器1207。
垂直内插器能在垂直平面中执行内插。垂直内插能例如是一个简单的半像素内插,并包括与水平内插器类似的装置-加法器、除法器和采样延迟元件,以创建和平均值。
然后将垂直内插器的输出传送至输出1209,该输出在本发明的实施例中是到加法器/组合器687的输出。
在本发明的其它实施例中,如果在水平或垂直度上都不需要内插,则可以绕过水平和垂直内插器。内插器的其它实施例可在最终内插级之后只具有一个除法级。本发明的其它实施例能最初在垂直方向上读取像素信息并在执行水平内插前在像素数据上执行垂直内插。本发明的其它实施例可以仅使用一个内插级。在这种实现中,以第一次序将数据读取到内插级中,以实现所需的水平或垂直内插。内插级将数据输出至存储器阵列。然后数据从存储器阵列读出并以第二不同次序返回到同一内插级以实现其它所需的内插。
预测量误差存储685被安排成存储又称为预测量误差数据的残留数据,同时预测量内插器对运动矢量数据执行内插。预测量误差存储将预测量误差数据传送至互连675。
加法器/组合器687从互连677和675接收输入,分别包括内插的预测量宏块和预测量误差数据,并将这些组合起来以产生完整的视频图像数据。通过数据互连679将图像数据输出至内部数据互连。将数据传送至存储器管理单元453,以向共享存储器传送。
在本发明的其它实施例中,视频协处理器519还包括环内滤波器461。环内滤波器通过内部数据互连465与存储器管理单元453和预测量构造器459连接。
环内滤波器461被安排成对接收到的视频数据执行诸如上述去块滤波之类的环内滤波。
根据视频数据格式配置环内滤波器461。环内滤波器从存储器管理单元453或从预测量构造器459接收图像数据。环内滤波器能处理参考和非参考图像数据。在视频数据格式不明确允许使用环内滤波的情况下,对预滤波和后滤波都存储发送给环内滤波的图像数据,以使得将预滤波的数据用于未来的参考,而将后滤波的数据用于改善的显示图像。
参见图5b和6a,示出本发明的第二实施例的示意图。
视频解码处理器509包括存储器管理单元403、可变长度解码器407、反量化器411、空间域编码器415、数据打包器419、内部数据互连417、外部数据互连401和互连405、409、413。
存储器管理单元403、可变长度解码器407、反量化器411和空间域编码器415如参照图5a所述地那样连接和操作。内部数据互连417还将数据打包器419与存储器管理单元403、可变长度解码器407和空间域编码器415连接。
数据打包器419接收由可变长度解码器407和空间域编码器415输出的数据,并处理该数据以产生标准化视频数据包。这一打包过程的目的在于减少从视频解码处理器传送数据所需的存储器带宽。如下详述,又称为预测量误差数据的残留图片数据为9比特长。因此可以将7个残留图片数据元素打包成单个64比特字。另外,在VLIW处理器中实现视频解码处理器509的本发明的实施例中,能通过软件进程实现数据打包器。
为了理解数据打包器的角色,将描述由VDP 509产生并由数据打包器419接收的数据字。这些在图9中示出。
由VDP为每一图像产生的第一个字是图9a所示的缓冲器基地址(BBA)字901。缓冲器基地址字定义了其中放置之后的图像数据的基存储器位置。本发明的实施例能使用完整的32比特字(它提供最大232(4,294,967,296)个可寻址位置)或使用较少量的使用较少比特来寻址的可寻址的位置。
在缓冲器基地址字901之后,VDP 503产生图片级参数首部字(PLPH)903。该图片级参数首部字903进一步包括编码标准半字节、图片级参数比特907和参数字长度字节909。
编码标准半字节905指示被解码的当前视频标准。在本发明的一个实施例中,半字节0000b(其中符号b指示所涉及的数字为二进制数字)指示MPEG2流,而半字节0001b指示MPEG4流(由运动图片专家组提出的标准且通过引用包括在此,还包括DivX视频编码方法)。半字节0010b指示RealVideo9信号,这是由Real Network提出的专有编码系统。半字节0011b指示用于低比特速率通信上的视频编码的H.263流(H.263是国际电信联盟-电信ITU-T标准推荐,它被通过引用包括在此)。半字节0011b将指示视频流是微软Windows Media Video(Windows媒体视频)9视频流,它是由微软创建的专有标准,并通过引用包括在此。半字节1000b指示视频流是H.264标准流(H.264是由ITU-T委员会推荐的另一通信系统上的视频编码,它通过引用包括在此)需要编码标准信息,因为不同MPEG类型编码系统在宏块数据中包含的数据类型中有所不同。因此,DivX和MPEG4类型能被组合在一起,因为这两个标准的宏块句法相同。
图片级参数比特907预先指示在图片级参数字911中某种类型的数据的存在。
图片级参数字长度字节909定义图片级参数标题字903之后的参数字个数。图片级参数字长度能具有的最大值为28-1(255)。
因此,下列图片级参数标题字903是若干个图片级参数字,其中一个由图9(c)911中的例子示出。图片级参数定义了由图片级参数比特907预先指示的变量。这些变量定义诸如图片类型、图片大小、内插模式、滤波类型和滤波器变量之类的项目。
一旦为特定图像设置图片级参数,由VDU 509传送至数据打包器419的之后的数据字定义了组成图像的许多宏块。在本发明的一个实施例中,以每次一个宏块并以下述次序传送数据。
定义每一宏块的第一个字是宏块首部第一字913。参照图9(d),进一步详细描述宏块首部第一字。
宏块首部第一字913还包括标准专用参数字915、E(结束)标志917、L(新片)标志919、S(跳过宏块)标志921、I(帧内宏块)标志923和运动矢量长度字925。
标准专用参数字915和整个宏块首部第二字927(宏块第二首部字紧接在宏块第一首部字之后,如参考图9(e)所示)包括与标准专用宏块预测模式相关的信息。
换言之,标准专用参数字915和宏块首部第二字927均包括诸如被解码的宏块的类型、用于重建当前帧/半帧的参考图像的数量和方向之类的参数。
例如,下列表格示出表示MPEG2编码流中的各种宏块类型的各种预测量代码值。这些值对不同的编码方法可以有不同的意义。

因此,对于第一种宏块,正在处理的宏块为帧内块。第二和第三种宏块定义基于图片的帧,所述帧参考在当前处理的帧之前或之后存储的帧。第四和第五种宏块定义基于图片的半帧,所述半帧参考在当前所基于的半帧之前或之后存储的半帧。第六种宏块定义基于图片的帧,所述帧参考当前处理的帧之前及之后的帧。最后,第七图像定义基于图片的半帧,所述半帧参考当前处理的半帧之前及之后的半帧。
将四个标志比特,即I标志923、S标志921、L标志919和E标志917插入到宏块首部字中,以使打包器能更有效地执行打包过程。
I标志923指示当前宏块是否为帧内宏块的一部分。
S标志921指示在编码期间此宏块是否被跳过。
只有当不断言I标志923时才插入S标志921,换言之,因为不能跳过帧内宏块,因此两个标记是互斥的。
L标志919指示这是否为片的第一个宏块。
E标志917指示此宏块是否为当前图片的最后一个宏块。
运动矢量长度字925定义当前宏块中的运动矢量数。产生完整的宏块所需的运动矢量数等于(运动矢量长度字的值)+1。因此,00000b的运动矢量长度字将指示有一个运动矢量要处理,而11111b的运动矢量长度字将指示有32个运动矢量要处理。
通过断言指示当前宏块为帧内编码的因而不具有运动矢量的I标志923,规定宏块中存在0个运动矢量的情形。
P或B图片宏块中的运动矢量数取决于使用的编码的类型。
例如,将MPEG2编码用作一个例子,下表示出所需的运动矢量数。

如果L标志919被断言,则在宏块首部字913和927之后发送的字为片参数字,其中之一参考图9(f)中的929显示。如果L宏块标志1027没有被断言,则没有片参数字被发送,而打包器则输出下一数据类型字。
因此,换言之,如果视频流不是H.264编码流且正在解码的宏块不是该流的第一个宏块,则不存在片参数字929。
片参数字定义在H.264编码流的处理中所使用的变量。
如果当前宏块是帧内宏块,如通过断言宏块首部第一字913中的I标志923所指示的,则不需要运动矢量信息来重建宏块,且打包器转到下一串字以依次发送。如果当前宏块不是帧内宏块,则VDP 509将一串定义运动矢量信息的字传送至数据打包器。如前所述,每个宏块的组成和运动矢量数取决于所使用的编码方案的类型和变形。
为了在水平和垂直轴上定位宏块,每一运动矢量描述一个水平和垂直分量。另外,在所有编码方法中,亮度和色度运动矢量被分开发送。因此,每个运动矢量,进而每个宏块(对于非参考帧/半帧)的最小运动矢量字数为4-水平亮度、垂直亮度、水平色度、垂直色度。
表示本发明的一个实施例中所使用的单个运动矢量的运动矢量字的四位字节如图9(g)-(j)所示。这四个运动矢量字表示例如在其中对前向预测或后向预测类型的宏块解码的MPEG2编码数字流中所使用的基本的四个运动矢量字。
在当前例子中,VDP传送运动矢量的次序是以水平亮度字、垂直亮度字、水平色度字、垂直色度字的次序。在其它实施例中,可能有其它组合,下面将就其进行讨论。
参见图9(g),示出运动矢量水平亮度字931。运动矢量水平亮度字931包括参考图片索引值933和水平亮度分量935。
参照图片索引值933是4比特数,它指示最多16个存储的图片中哪些形成基础图像。
水平亮度分量935是能以半像素精度表示-1024至1023.5的范围内的偏移量或以四分之一像素精度表示-512至511.75范围内的偏移量的12比特数。因此,水平亮度分量描述来自当前宏块和帧内或P宏块的这些数字之间某处的水平偏移量。
参见图9(h),示出运动矢量垂直亮度字937。该运动矢量垂直亮度字937包括半帧指示符比特939和垂直亮度分量941。
半帧指示符比特939指示当前宏块是一对半帧的上半帧还是下半帧。在当前宏块是基于帧的情况下,半帧指示符未定义且可以是0或1。在当前宏块是基于半帧的情况下,定义上半帧宏块的运动矢量具有第一值,而定义下半帧的运动矢量具有第二且相反的值。
垂直亮度分量941是能以半像素精度表示-1024至1023.5的范围内的偏移量或以四分之一像素精度表示-512至511.75范围内的偏移量的12比特数。因此,垂直亮度分量描述来自当前宏块和帧内或P宏块的这些数字之间某处的垂直偏移量。
参见图9(i),示出运动矢量水平色度字943。该运动矢量水平色度字943包括水平色度分量945。
水平色度分量945是能以半像素精度表示-1024至1023.5的范围内的偏移量或以四分之一像素精度表示-512至511.75范围内的偏移量的12比特数。因此,水平色度分量描述来自当前宏块和帧内或P宏块的这些数字之间某处的水平色度偏移量。
参见图9(j),示出运动矢量垂直色度字947。该运动矢量垂直色度字947包括垂直色度分量947。
垂直色度分量941是能以半像素精度表示-1024至1023.5的范围内的偏移量或以四分之一像素精度表示-512至511.75范围内的偏移量的12比特数。因此,垂直色度分量描述来自当前宏块和帧内或P宏块的这些数字之间某处的垂直色度偏移量。
在本发明的其它实施例中,对每个运动矢量字四位字节,可多次存储参考值和半帧指示符。
如前所述,对每一宏块可能需要一个以上的矢量字四位字节,以在双向编码中为一个以上图片定义估计的宏块,并在隔行图像编码中为一个以上帧/半帧定义估计的宏块。
如前所述,并由宏块首部第一字913和运动矢量长度925所确定的,可以在单个宏块中定义多达32个运动矢量。因此,例如,在H.264中,单个宏块可需要32个运动矢量,进而需要120个运动矢量字。
在每个宏块定义一个以上运动矢量的情况下,本发明的实施例被安排成使VDP509在输出所有色度运动矢量字之前输出所有亮度运动矢量字。本发明的其它实施例被安排成使VDP 509每次单独输出每个运动矢量四位字节。
如果由VDP解码的宏块为帧内宏块,则要由VDP输出的下一数据类型字是像素数字参考字。参见图9(k),更详细地描述了像素数据参考字951。该像素数据参考字951包括像素参考字节953。像素参考字节为如8比特值的帧内宏块解码像素数据。因此,该像素具有范围从0-255的值。
如果由VDP解码的宏块是预测宏块的一部分,则要由VDP输出的下一数据类型字是像素数据残留字。参见图9(l),更详细地描述像素数据残留字955。该像素数据残留字955包括像素残留值957。像素残留值是相对于已知参考值的像素残留值。9比特值给出范围从-256至255的相对位移。
如果不跳过当前宏块,如由宏块首部第一字913中的S标志921所示,VDP 509输出像素数据残留字955或像素数据参考字951的384个字。这定义了6个8×8块-4个块定义亮度值,2个块定义色度值。这些块中每一个的像素字次序是逐行的,换言之,在第二行上从左到右开始前从左到右输出整个第一行。
在除了H.264之外的所有标准中的帧图像中和在H.264自适应半帧/帧图片中编码的帧宏块中,始终用隔行模式发送行次序-换言之,首先由VDP发送像素数据的奇数行,然后发送像素数据的偶数行。此排序由VDP在将其发送至数据打包器之前执行。
在自适应半帧/帧图片中的MPEG2或H.264半帧图片和H.264半帧宏块中,每一块只包含来自一个半帧的数据。
参见图6a,如在第二实施例中所实现的,视频协处理器519包括与在本发明的第一实施例中实现的视频协处理器519相同的组件。图7所示的第二实施例预测量构造器459除了将预测量构造器459的解包器683安排成在将数据分段成残留和运动矢量分量之前将视频数据包解包之外,与在第一实施例中所实现的相同。
第二实施例预测量内插器还可包括如图12所示的上述内插引擎。
因此,第一类实现由图4a示出并在前两个实施例中详细示出,第一个实施例由图5a和6a的组合示出,第二个实施例由图5b和6a的组合示出,它们由图7-12进一步详细地示出。此第一类型代表比GPU或当前视频解码系统更灵活和成本有效的方案。
然而,就有效存储器带宽利用而言,对将所有信息从VDP传送至存储器,然后从存储器传送至VCP的依靠能在本发明的某些实施例中引起VDP问题。虽然如在第二实施例中详述的数据打包器的添加可提高去往和来自VDP的存储器带宽的有效使用,但就处理视频和可能是音频数据而言,它可能是以VDP的低效使用为代价。
因此,参见图4b,示出第二种灵活视频解码器的示意图。此实施例试图改善先前的实施例的某些问题。
在元件在第二类型及其实施例中与第一类型及其实施例执行基本上相同的任务的情况下,如图4A所示,参考标号相同。
灵活视频解码器509包括视频解码器处理器(VDP)509、视频协处理器(VCP)519、共享存储器501、共享数据总线503和一系列互连505、507、517。灵活视频解码器还包括数据互连511。
共享数据总线503通过互连505将共享存储器501互连,通过互连507将视频解码器处理器(VDP)509互连,并通过互连517将视频协处理器(VDP)519互连。数据互连511将视频解码处理器509连接至视频协处理器519。
因此,在本发明的本实施例中,在视频解码处理器509和视频协处理器519存在直接连接。
此直接连接能通过使用“同步”数据连接或“异步”数据连接来利用。
图13示出“同步”和“异步”数据连接之间的差异的示意图。图13a所示的“同步”数据连接是其中将由视频解码处理器处理的数据传送至视频协处理器,且一接收到该数据即进行处理的数据连接。这可以从在时刻t1、t2和t3处在VDP处接收到图片n、n+1和n+2中看出。每一图片被解码1351、1355、1359,解码的信息被传送至VCP,并尽快重建图片。因为重建每一图片花费比解码级更长的时间,因此VCP立刻启动,以阻断VDP中的处理,如VDP 1367中的停止时间所示,该停止时间也使VCP在每一图片的重建中过速,如区域1363和1365所示。因此,换言之,VDP和VCP必须同步,以使数据平滑地通过VDP和VCP对,从而在图片刷新周期中显示一个新的图片。
在图13b所示的‘异步’数据连接中,虽然通过直接数据连接传送数据,但视频协处理器只需接收数据并将数据存储在视频解码处理器时帧中,因此能在更灵活的时间周期内处理数据。如图13b所示,虽然从在VDP处接收已编码数据和解码图片1301、1307和1315以及在VCP处重建图片1303、1309和1313有一个时间周期的有效延迟,但因为它等待VDP清除其先前的图片重建,所以不存在VDP的停止。另外,因为VDP没有被保持在停止条件下,因此它能在它不解码接收到的图片的时间周期(如周期1305和1311所示)期间执行其它任务。这些任务包括音频解码或其它数据相关成像,如字幕显示。
参见图5c和图6b,描述本发明的第三实施例的示意图,它可利用‘同步’数据连接。
图5c所示的VDP 509包括存储器管理单元403、可变长度解码器407、反量化器411、空间域编码器415、内部数据互连417、外部数据互连401和互连405、409、413。
外部数据总线401将外部互连507连接至存储器管理单元403。存储器管理单元还通过互连405与可变长度解码器407连接。可变长度解码器407通过互连409与反量化器411连接。反量化器411通过互连413与空间域编码器415连接。
第三实施例中的内部数据互连417不同于上述实施例中所述的内部数据互连,因为可变长度解码器和空间域编码器的输出不与存储器管理单元403连接,而是将可变长度解码器和空间域编码器的输出与互连511连接。
因此,VDP以与前两个实施例中所描述的相似的方式工作,不同之处在于从可变长度解码器407和空间域编码器415的输出没有传回到存储器单元403,而是通过互连511传送至视频协处理器519。
图6b中示出第三实施例VCP 519的示意图。第三实施例VCP 519包括存储器管理单元453、预测量构造器459、外部数据互连451、环内滤波器619和内部数据互连455。可理解,VCP 519的其它实施例可以不需要环内滤波器619。
外部数据互连451将互连517与存储器管理单元453连接。存储器管理单元通过内部数据互连与预测量构造器459和环内滤波器619连接。图6b所示的第三实施例不同于第一和第二实施例VCP,因为内部数据互连455与数据互连511连接,从而将VDP 509连接至VCP 519的组件。
除了图6b所示的VCP从图5c所示的VDP接收数据的方式之外,VCP的功能与在第一实施例中所述的VCP中详述的基本上相似。因此,上述及图7中所示的预测量构造器和图12所示的内插引擎都适用于第三实施例。
在这种‘同步’数据连接中,VDP 509和VCP 519在已知为主从连接的系统中被连接在一起。因此,从VDP 509传送的数据由VCP 519接收,并且一接收到即予以处理。
本发明的第四实施例通过图5d所示的VDP和图6b所示的VCP的组合示为包括在图4b中所示的实现中。
在此第四实施例中,VDP以与前面在本发明的第二实施例中详述的相似的方式将从可变长度解码器409和空间域编码器415传送的数据处理成数据包格式。图5d中示出VDP 509的这样一个实施例的示意图。本发明的第四实施例中实现的VDP不同于在第三实施例中实现的VDP,因为将与前面在第二实施例中所述的类似的数据包419插入在外部数据互连417和数据互连511之间。类似地,VCP预测量构造器459包括解包器683。因而,图6b中所示的VCP接收由数据打包器处理的包并以与前面在第二实施例中所述的类似方式解包经处理的数据。因此,第四实施例具有VDP和VCP之间直接链接的优点,还具有使用该链接有效打包的数据。
‘同步’数据连接实施例、第三和第四实施例保持对解码各种类型的视频数据的灵活性,而没有由于使用VDP 509的存储器管理单元403来接收原始编码数据并发送部分处理的视频数据而产生的低效率。但是,‘同步’数据连接实施例通过直接链接VDP 509和VCP 519可能要求相对严格的定时同步。为了使VDP和VCP都有效地处理数据,VDP和VCP以相同的速率解码每一图片。如果没有维持此同步,则或者VDP等待VCP完成处理并赶上VDP,或者VCP等待VDP完成处理宏块或数据包。数据的内部缓冲可以防止一些延迟。
如果要求VDP不止做对接收到的数据流的视频解码的工作,则‘同步’数据连接意味着VCP没有被有效使用。在这些时间期间VCP空闲。
如本发明的第五和第六实施例所示的‘异步’数据连接实施例旨在减少任何可能的低效和‘同步’数据连接所要求的严格数据同步,而对VDP 509没有提出进一步的要求。
本发明的第五实施例参照图4b、5c和6c进行描述,这些附图示出可利用‘异步’数据连接(例如第二类型中所示的)的VDP 509和VCP 519的示意图。
在第五实施例中实现的VDP与本发明的第三实施例中实现的相似,其中数据从可变长度解码器407和空间域编码器415的输出传送至互连511。所传送的数据被解包,并通过互连发送至VCP。
图6c中的示意图中所示的VCP 519包括存储器管理单元453、预测量构造器459、外部数据互连451、环内滤波器619和内部数据互连455。能理解,VCP 519的其它实施例可能不需要环内滤波器619。本发明的第五实施例中所示的VCP 519与所有前述实施例VCP实现中所述的那些的不同之处在于该VCP还包括数据打包器单元457。
外部数据互连451将互连517与存储器管理单元453连接。存储器管理单元通过内部数据互连与预测量构造器459、环内滤波器619和数据互连511连接。图6c中所示的实施例还具有与数据打包器单元457连接的内部数据互连455。
将参照图8更详细地描述数据打包器457的示意图和数据打包器的应用。数据打包器包括包打包器801、存储缓冲器单元803和互连851、853和855。第一互连851将数据互连511连接至包打包器801的输入。第二互连853将包打包器801的输出连接至存储缓冲器单元803的输入。第三互连855将存储缓冲器单元803的输出连接至数据互连515。
如能理解的,能将包打包器和存储缓冲器单元的功能组合成单个单元。
上面详述的数据字由数据打包器457接收。这些字通过互连851传送至包打包器801。
包打包器801检查每一个字,并根据经检查的字控制存储缓冲器单元803。包打包器801和存储缓冲器单元一起工作以将由VDP 509的元件创建的字转换成一系列自含式数据包,每一包包含恢复单个图片(或帧或半帧)所需的数据。
参照图10更详细地描述数据打包器处理由VDP 509的元件创建的字的过程。左侧的奇数步骤是由包打包器801执行的步骤,右侧的偶数步骤是由存储缓冲器单元803执行的步骤。
对于每一单独的图像,启动。由包打包器(PP)801执行的第一步骤1001是读取缓冲器基地址字901。这被传送至存储缓冲器单元(MBU)803并在步骤1002中被存储在MBU中备用。
下一步骤1003是让包打包器801在图片级参数首部字911中读取。这用于设置包打包器801中的剩余图片级参数计数器以读取后面的字作为图片级参数标题字。图片级参数标题字还用于根据图片级参数的存储器分配设立MBU,及用于宏块中的任何图片级编码标准变形。图片级参数首部字也被传送至MBU并在步骤1004中被存储。
下一步骤1005是在之后的字中读取直至剩余图片级参数字计数器到达0。这些字被传送至MBU 803并在步骤1006中被存储。
下一步骤1007形成宏块循环的开始。对每一宏块重复该宏块循环直至接收到该图像的最后一个宏块。最初读取宏块首部字913、927。包打包器801复制标志设置917、919、921、923、标准专用参数字915和运动矢量长度925,并根据这些值为宏块分配MBU 803中的存储。另外,宏块首部字被传送至MBU并在步骤1008中被存储。
下一步骤1009确定L(片)标志919是否已被断言,如果该L标志已被断言,则包打包器801在片参数字中读取。然后这些字被传送至MBU 803并在步骤1010中被存储在MBU中。
下一步骤1011确定I(帧内)标志923是否未被断言,如果I标志923未被断言,则包打包器801读取运动矢量字931、937、943、947。要读取的运动矢量字的数目由从宏块首部字913、927收集并如上讨论的标准专用参数字915的值和运动矢量长度值925确定。运动矢量字被传送至MBU,并在步骤1212被存储在MBU中。因此,这一步骤在被解码的宏块是预测宏块的一部分的情况下发生。
下一步骤1013确定I标志923和S(跳过)标志921是否均未被断言。如果I和S标志均未被断言,则包打包器801读取像素数据残留字955。每个宏块的字的数目在本领域中已知,并在前面讨论过。像素数据残留字955被传送至MBU,并在步骤1214被存储在MBU中。因此这一步骤在被解码的宏块既是预测宏块的一部分又是非跳过宏块的情况下发生。
下一步骤1015检查I标志是否被断言。如果I标志被断言,换言之,该宏块是帧内宏块的一部分,则包打包器801读取像素数据参考字951。每个宏块的字的数目在本领域中已知,并在前面讨论过。像素数据参考字951被传送至MBU,并在步骤1216被存储在MBU中。
下一步骤1017检查E(结束)标志是否被断言。如果E标志未被断言,则包打包器结束宏块循环的这一实例,并将过程返回至步骤1007和下一宏块循环的开始,等待来自下一宏块的数据。
如果E标志被断言,则执行步骤1019。步骤1019结束图像循环的这一实例,并将过程返回至步骤1001和下一图片包的开始。同时,包打包器801指令MBU执行步骤1020。这一步骤使MBU发出存储器中断请求。一旦该请求被批准,则存储缓冲器单元将所存储的包传送至存储器管理单元403并等待传送至共享存储器501,从而将包存储在由缓冲存储器基地址901提供的位置中。最后,MBU将其本身恢复至等待来自下一图像的数据的初始条件。
参照图11更详细地描述最终数据包的数据结构。包1101包括图片级参数首部字903、图片级参数块1103(它包括图片级参数字911)和宏块数据块1105。
宏块数据块包括一系列宏块数据元素1105a-1105n,其中每一个分别定义宏块MB(0)至MB(N-1)。宏块数据元素还在图11中被更详细的示出。
典型的数据元素1105n按存储的次序包括宏块首部第一字913、宏块首部第二字927、片参数块1111、运动矢量块1113和像素数据块1115。
片参数块1111在其由于步骤1010而存在时包括一起存储在同一块中的片参数字929。
运动矢量块1113在其由于步骤1012而存在时包括运动矢量字931、937、943、947。如前所述,这些字的安排是这样的亮度运动矢量字931、937出现在运动矢量块1113的第一部分中,而色度运动矢量字943、947出现在运动矢量块1113的第二部分中。
像素数据块1115在其由于步骤1014或1016而存在时包括像素数据参考字951(其中宏块是帧内宏块的一部分),或像素数据残留字955(其中宏块是预测宏块的一部分且该宏块不被跳过)。
然后,数据包被输出至内部数据互连455。
而在‘同步’数据连接实施例中,如本发明的第三和第四实施例中详述的,视频数据基本上在其一被接收到时立即由预测量构造器459处理(该视频数据有可能由存储器管理单元453或在解包器683中被临时缓存),‘异步’数据连接实施例将经处理的包传送至存储器管理单元453以存储在共享存储器501中。
在第五实施例中,存储器管理单元因此从数据打包器457接收数据包并将该数据包发送至共享存储器501中由数据包指示的存储器位置。
当VCP 519能恢复预测宏块时,则能从共享存储器501读取这些数据包。在需要时图片的恢复和后续滤波以与前面在本发明的第一实施例中详述的分包的数据的处理相似的方式执行。
因此,这一实施例允许VDP执行一系列图片解码,它能在VCP对先前解码和取得的图片执行预测图片重建和可能的环内滤波的同时被存储在共享存储器中。因此,当VCP‘赶上’处理经解码的图片时,VDP能被配置成执行诸如音频解码之类的其它处理任务。
本发明的第六实施例能参照图4b进一步描述,其中实现的VDP由图5c示意性地示出,而实现的VCP由图6b示意性地示出。在此第六实施例中,VCP 519从VDP 509接收数据并将该数据发送至共享存储器501而不首先将其分包。因此,VCP执行存储VDP处理的数据的任务但不将其分包。然后,VCP还以与先前在本发明的第一实施例中描述的方式来请求VDP处理的数据。
因此,第五和第六实施例的优点在于通过其它共享组件不能到达的直接互连链接VDP和VCP,因此数据能直接传送,而不影响共享数据传输系统的性能。虽然被直接连接,它们没有被同步成以同步图片产生的速率来处理数据,因此通过共享存储器缓存图片数据。这允许VCP和VDP在处理能力中的一定的灵活性,包括批处理数据、存储几个图片以及在VCP方便的时间重建预测图片的能力。
应理解,可以提供组合本发明的上述实施例的不同方面的本发明的其它实施例。
在MPEG的上下文中描述了本发明的实施例。然而,应理解,本发明的实施例可以用于任何其它类型的视频数据。
权利要求
1.一种视频解码电路,包括第一视频数据处理器;第二视频数据处理器;以及连接所述第一视频数据处理器和所述第二数据处理器的连接;其中,所述第一视频数据处理器被安排成接收包括已编码视频数据的第一信号,处理所述第一信号以提供第二信号并输出所述第二信号,所述第一视频数据处理器被安排成根据所述接收到的第一信号的至少一部分处理所述第一信号,以及所述第二视频数据处理器被安排成接收所述第二信号的至少一部分,处理所述第二信号的所述至少一部分以提供第三信号,并输出所述第三信号,所述第二和第三信号包括已解码视频图像流,且所述第二视频数据处理器被安排成根据所述至少部分第二信号的至少一部分处理所述第二信号的所述至少一部分。
2.如权利要求1所述的电路,其特征在于,所述第一视频数据处理器被安排成对所接收到的第一信号进行可变长度解码以产生已解码第一信号。
3.如权利要求2所述的电路,其特征在于,所述第一视频数据处理器被安排成将所述第一信号数据分成至少第一部分和第二部分,其中,所述第一部分包括像素数据和残留数据中至少一种,且其中,所述第二部分包括运动矢量数据。
4.如权利要求3所述的电路,其特征在于,所述第一视频数据处理器被安排成反量化所述第一信号的所述第一部分。
5.如权利要求3或4所述的电路,其特征在于,所述第一视频数据处理器被安排成对所述第一信号的所述第一部分进行空间域变换。
6.如权利要求4或5所述的电路,其特征在于,所述第一视频数据处理器被安排成将经过所述空间域变换和/或反量化的所述第一信号的第一部分与所述第一信号的所述第二部分相组合。
7.如上述权利要求中任一项所述的电路,其特征在于,所述第二视频数据处理器被安排成内插所述第二信号的至少第一部分。
8.如权利要求7所述的电路,其特征在于,所述第二视频数据处理器被安排成用水平和垂直内插法中的一种内插所述第二信号的至少第一部分。
9.如权利要求8所述的电路,其特征在于,还包括存储器,所述第二视频数据处理器被安排成将所述第二信号的所述内插部分存储在所述存储器中。
10.如权利要求8或9所述的电路,其特征在于,所述第二视频数据处理器被安排成用水平和垂直内插法中的另一种内插所述存储的所述第二信号的内插的第一部分。
11.如权利要求7-10所述的电路,其特征在于,所述第二视频数据处理器被安排成组合所述第二信号的所述内插部分和所述第二信号的又一部分,其中,所述第二信号的所述内插部分包括估计的宏块,而所述第二信号的所述又一部分可包括残留误差数据。
12.如上述权利要求中任一项所述的电路,其特征在于,所述第二视频数据处理器被安排成对所述第二信号的所述至少一部分和所述第三信号中的至少一个进行滤波。
13.如权利要求12所述的电路,其特征在于,所述滤波器包括去环滤波器和去块滤波器中的至少一个。
14.如上述权利要求中任一项所述的电路,其特征在于,所述连接包括连接所述第一和第二视频数据处理器的总线。
15.如权利要求14所述的电路,其特征在于,还包括存储设备,所述存储设备与所述总线连接。
16.如权利要求15所述的电路,其特征在于,所述第一视频数据处理器具有用于通过所述总线将所述第二信号输出到所述存储设备的输出。
17.如权利要求16所述的电路,其特征在于,所述第二视频数据处理器具有用于通过所述总线从所述存储设备接收所述第二信号的所述部分的输入。
18.如权利要求1-17所述的电路,其特征在于,所述连接包括数据互连,所述数据互连直接连接所述第一视频数据处理器和所述第二视频数据处理器。
19.如权利要求18所述的电路,其特征在于,所述第一视频数据处理器具有用于将所述第二信号输出至所述数据互连的输出。
20.如权利要求18和19所述的电路,其特征在于,所述第二视频数据处理器具有用于从所述数据互连接收所述第二信号的所述部分的输入。
21.如权利要求20所述的电路,当附加于权利要求15时,其特征在于,所述第二视频数据处理器从所述数据互连接收部分所述第二信号的所述部分,并从所述总线接收部分所述第二信号的所述部分。
22.如上述权利要求中任一项所述的电路,其特征在于,所述第一信号是下列的至少之一MPEG2编码视频流;H.263编码视频流;RealVideo9编码视频流;Windows媒体播放器编码视频流;H.264编码视频流。
23.如上述权利要求中任一项所述的电路,其特征在于,所述第二信号包括下列的至少之一缓冲器基地址字;图片级参数首部字;图片级参数字;宏块首部字;片参数字;运动矢量水平亮度字;运动矢量垂直亮度字;运动矢量水平色度字;运动矢量垂直色度字;像素数据参考字,以及像素数据残留字。
24.如上述权利要求中任一项所述的电路,其特征在于,所述第一视频数据处理器包括数据打包器。
25.如权利要求1-23所述的电路,其特征在于,所述第二视频数据处理器包括数据打包器。
26.如权利要求24或25所述的电路,其特征在于,所述数据打包器包括输入,所述输入被安排成接收所述第二信号,所述第二信号包括数据字;用于为所述数据字排序的装置;以及输出,所述输出被安排成发送包括经排序的数据字的数据包。
27.一种包括上述任一项权利要求中所要求保护的电路的集成电路。
28.如权利要求1-26所述的电路,其特征在于,所述第一视频数据处理器包括超长指令字处理器。
29.如权利要求28所述的电路,其特征在于,所述超长指令字处理器适用于进一步根据存储器中存储的一组指令处理所述第一信号。
30.如权利要求1-29所述的电路,其特征在于,所述第二视频数据处理器包括可编程处理器。
31.一种视频解码方法,包括下列步骤在第一视频数据处理器处接收包括已编码视频数据的第一信号,根据所述第一信号的至少一部分处理所述第一信号以提供第二信号,输出所述第二信号,在第二视频数据处理器处接收所述第二信号的至少一部分,根据所述第二信号的至少一部分处理所述第二信号的所述至少一部分以提供第三信号,以及输出所述第三信号,其中,所述第二和第三信号包括已解码视频图像流。
32.如权利要求31所述的方法,其特征在于,所述处理所述第一信号的步骤包括对所述第一信号进行可变长度解码的步骤。
33.如权利要求31和32所述的方法,其特征在于,所述处理所述第一信号的步骤包括将所述第一信号数据分成至少第一部分和第二部分的步骤,其中,所述第一部分包括像素数据和残留数据中至少一种,且其中,所述第二部分包括运动矢量数据。
34.如权利要求33所述的方法,其特征在于,所述处理所述第一信号的步骤还包括反量化所述第一信号的所述第一部分的步骤。
35.如权利要求33和34所述的方法,其特征在于,所述处理所述第一信号的步骤还包括对所述第一信号的所述第一部分进行空间域变换的步骤。
36.如权利要求34或35所述的方法,其特征在于,所述处理所述第一信号的步骤还包括将经过所述空间域变换和/或反量化的所述第一信号的第一部分与所述第一信号的所述第二部分相组合的步骤。
37.如权利要求31-36所述的方法,其特征在于,所述处理所述第二信号的至少一部分的步骤还包括内插所述第二信号的至少第一部分的步骤。
38.如权利要求37所述的方法,其特征在于,所述内插所述第二信号的至少第一部分的步骤包括用水平和垂直内插法中的一种内插所述第二信号的至少第一部分的步骤。
39.如权利要求38所述的方法,其特征在于,所述内插步骤还包括存储所述第二信号的所述内插部分。
40.如权利要求38和39所述的方法,其特征在于,所述内插步骤还包括用水平和垂直内插法中的另一种内插所述第二信号的所述内插部分。
41.如权利要求37-40所述的方法,其特征在于,所述处理所述第二信号的至少一部分的步骤还包括组合所述第二信号的所述内插部分和所述第二信号的又一部分,其中,所述第二信号的所述内插部分包括估计的宏块,而所述第二信号的又一部分包括残留误差数据。
42.如权利要求31-41所述的方法,其特征在于,所述处理所述第二信号的至少一部分的步骤还包括滤波步骤,其中,所述滤波步骤包括下列步骤的至少之一去环滤波和去块滤波。
43.如权利要求31-42所述的方法,其特征在于,所述输出所述第二信号的步骤还包括将所述第二信号存储在存储器中的步骤。
44.如权利要求31-43所述的方法,其特征在于,所述接收所述第二信号的至少一部分的步骤包括直接从所述第一视频数据处理器接收所述第二信号的所述至少一部分。
45.如权利要求44所述的方法,当附加于权利要求40时,其特征在于,所述接收所述第二信号的至少一部分的步骤包括直接从所述第一视频数据处理器接收所述第二信号的所述至少一部分的第一部分,以及从所述存储器接收所述第二信号的所述至少一部分的第二部分。
46.如权利要求31-45所述的方法,其特征在于,所述处理所述第一信号的步骤还包括将所述第二信号分包的步骤。
47.如权利要求31-45所述的方法,其特征在于,所述处理所述第二信号的步骤还包括下列步骤将所述第二信号的所述至少一部分分包;将所述第二信号的所述至少一部分存储在存储器中;以及从所述存储器接收所述存储的第二信号的所述至少一部分。
48.一种视频解码电路,包括第一视频数据处理器(509);第二视频数据处理器(519);以及连接所述第一视频数据处理器和所述第二数据处理器的连接;其中,所述第一视频数据处理器(509)被安排成接收包括已编码视频数据的第一信号,处理所述第一信号以提供第二信号并输出所述第二信号,所述第一视频数据处理器(509)被安排成根据所述接收到的第一信号的至少一部分处理所述第一信号,且所述第二视频数据处理器(519)包括预测量构造器419,所述第二视频数据处理器(519)被安排成接收所述第二信号的至少一部分,处理所述第二信号的至少一部分以提供第三信号,并输出所述第三信号,所述第二和第三信号包括已解码视频图像流,且其中,所述第二信号的一部分包括其中包括编码标准信息的图片级参数字,所述编码标准信息定义数据类型中的变化,且所述第二视频数据处理器(519)预测量构造器(459)被安排成根据所接收到的数据的格式处理所述第二信号的所述至少一部分。
49.一种视频解码方法,包括下列步骤在第一视频数据处理器(509)处接收包括已编码视频数据的第一信号,根据所述第一信号的至少一部分处理所述第一信号以提供第二信号,输出所述第二信号,在第二视频数据处理器(519)处接收所述第二信号的至少一部分,在所述第二视频处理器(519)的预测量构造器(459)中处理所述第二信号的所述至少一部分以提供第三信号,以及输出所述第三信号,其中,所述第二和第三信号包括已解码视频数据流,其中,所述输出所述第二信号的步骤包括输出编码的标准信息的步骤,所述编码标准信息定义数据类型中的变化,且所述处理所述第二信号的所述至少一部分的步骤取决于所接收到的视频数据的格式。
全文摘要
一种视频解码电路,包括第一视频数据处理器;第二视频数据处理器;以及连接所述第一视频数据处理器和所述第二数据处理器的连接;其中,第一视频数据处理器被安排成接收包括已编码视频数据的第一信号,处理该第一信号以提供第二信号并输出第二信号,该第一视频数据处理器被安排成根据所接收到的第一信号的至少一部分处理该第一信号。第二视频数据处理器被安排成接收第二信号的至少一部分,处理该第二信号的至少一部分以提供第三信号,并输出第三信号,该第二和第三信号包括已解码视频图像流。第二视频数据处理器被安排成根据至少部分第二信号的至少一部分处理该第二信号的至少一部分。
文档编号H04N7/26GK1934866SQ200480039401
公开日2007年3月21日 申请日期2004年11月23日 优先权日2003年11月26日
发明者M·博尔顿, M·卡兰诺 申请人:圣微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1