专利名称:格式化一个mpeg译码器中的再压缩的数据的制作方法
技术领域:
本发明涉及处理数字图象表示信息。
背景技术:
数字技术的快速发展已在诸如高清晰度电视(HDTV)的各个领域的数字图象信号处理中产生了相应的进步。一个相关的发展是用于MPEG-2的视频处理的MPEG(运动图象专家组)信号压缩标准(ISO/IEC国际标准13818-2,1995年1月20日)。已经发现这一广泛接受的图象处理标准在卫星,有线电视,和包括HDTV系统的地面广播系统的应用中特别具有吸引力。
在美国,最近采纳为大联盟HDTV系统(Grand Alliance HDTV System)的数字HDTV地面广播系统定义了一种高清晰度(HD)节目素材的数字广播的标准,该节目素材已经使用MPEG-2压缩标准进行了压缩。该大联盟HDTV系统的描述可在例如1994美国广播协会会刊的1994年3月20-24日第48届广播工程会议年会的会刊中找到(1994 Proceedings of theNational Association of Broadcasters,48th Annual BroadcastEngineer Conference Proceedings,March 20-24,1994)。该HD广播标准提供了高达每行1920个象素(水平)X1080行的分辨率。该MPEG-2标准定义了用于解压缩该HD图象以由诸如在电视接收机中的显示设备用于再现所需的过程。如在地面广播标准中所定义的,MPEG译码器正确地译码HD图像需要大约80兆位(Mb)的存储器。在一个消费者接收机中通常需要96Mb的存储器。
在一个比如可以在电视信号接收机中发现的MPEG视频信号译码器,为译码一个MPEG编码的数字数据流通常需要一个以上的图象帧存储器,如所公知的,这些帧代表I,P,B图象帧,通常需要3个帧存储器以译码一个MPEG数据流,需要两个帧存储器来存储参考I或P帧数据和使用另外一个帧存储器存储B帧数据。
一个MPEG译码器包括一个DPCM环,该DPCM环与用于产生最终译码的像素采样的运动补偿功能相关,这是公知的。正如在共同未决的美国专利申请(序列号为08/579192)中所公开的,DPCM环被通过包括一个数字压缩网络而进行有益的改动。这一压缩网络在将被解压缩MPEG数据传送给帧处理器之前对该解压缩的MPEG数据进行再压缩,从而减少了对MPEG译码器的存储器需要。DPCM环使得要被压缩的像素值取决于预测器电路对要处理像素的紧邻的左边,正上方和对角线左上方的各个像素的计算结果。该预测器操作是一个实时的计算密集的串行操作。该预测器操作是重要的,因为涉及一个以上的像素值而且还因为好的压缩需要精确的预测而不是对像素值的“猜测”。
发明内容
根据本发明的原则,一个MPEG兼容信号处理器解压缩所压缩的MPEG数据.该解压缩的数据由一个子采样网络和一个再压缩网络进行数据缩减。来自该子采样网络的子采样的数据在被提供给该再压缩网络之前被重新排序。
图1是根据本发明原则安排的利用一个MPEG译码器和相关的数字信号处理网络的一个电视信号接收机一部分的框图。
图2-17示出了有助于理解图1所表示的压缩/解压缩和相关网络的操作的像素块处理格式。
图18示出了像素的子采样(subsampling)和上采样(upsampling)。
图19是用于执行图18示出的过程的装置的框图。
图20示出了图1的压缩网络的细节。
图21示出了图1的解压缩网络的细节。
图22示出了有助于理解图20所示出的网络操作的像素布局。
图23-26示出了图1系统的数据流控制操作图27是一个表示在图20示出的网络的操作期间像素关系的表。
图28示出了一个图23示出的网络的另一种安排。
具体实施例方式
在本发明的所公开的一个实施例中,电视接收机中的MPEG译码器在该译码器和它的帧存储器之间利用了包括再压缩的数据缩减,从该译码器的帧存储器导出要显示的图像信息,预测器处理器的时序要求,本系统使用了流水线处理,其中必须得到3个像素(图像单元)的值,以预测一个给定的第4个像素的值,然而流水线处理降低了处理的速度(减少了带宽)。这个问题通过将来自MPEG解压缩器的独立的8×8像素块的象素数据进行交错而解决。交错增加了处理的速度,因为它允许已交替的时钟处理数据,从而总是在产生压缩的像素值。该再压缩功能使用了数量缩减的压缩操作,用共享的功能进行交错的操作,从而节省了集成电路的面积。
图1示出了数字视频信号处理器的一部分,该信号处理器比如可以在处理一个输入的高清晰度的视频信号的电视接收机中看到。该视频处理器包括可在常规的MPEG译码器中看到的功能。例如在由Ang等人在题目为“视频压缩带来巨大的好处”(Video Compression Makes Big Gains)(发表于1991年10月IEEE Spectrum)的文章中描述了一个MPEG编码器和译码器。这些功能通常包括输入缓冲,可变长译码,逆量化和在产生最终译码的输出采样的相关的运动补偿处理之前的逆DTC变换。有关这些和相关的视频信号处理功能的其它信息,可以在Weiss的书“关于先进的电视技术的问题”(Issues In Advanced Television Technology)(FocalPress,Boston,USA出版)中找到。
图一的系统从单元10表示的数据源接收一个MPEG编码压缩的数据的控制的数据流,该单元10包括一个在输入信号解调之后把数据包分开的传送译码器,在这个例子中所接收的输入数据流表示高清晰度图像素材(1920像素/水平行X1088个水平行),如在美国高清晰度地面电视广播系统的大联盟规范中所规定的。1920×1088高清晰度信息的数据速率是94003200字节/秒,其由下式确定(1920HX1088VX30FX(8+4)YC)/B其中H表示水平像素数V表示垂直行数F表示帧数/秒YC表示(亮度+色度)位数B表示8位/字节在实践中通过内部存储器总线55和包括在单元128中的一个压缩的数据的接口提供所压缩的MPEG数据流,单元128在微处理器120的控制下从控制总线114接收数据,微处理器120通过压缩数据的输入端接收MPEG数据流。
来自源10的输入数据流采取数据块的形式,每个数据块表示8×8个象素,这个数据表示压缩的编码的帧内信息和帧间信息。帧内信息包括I帧定位帧(anchor frane);帧间信息包括预测的运动编码的残留图像信息,该残留图象信息表示相邻图像帧之间的图像差别。该帧间运动编码涉及产生运动矢量,该运动矢量代表在一个当前正在处理的数据块和在一个先前重构的图像块之间的偏移。将代表当前和先前块之间的最佳匹配的运动矢量进行编码和传送。在进行传输之前也对每个运动补偿的8×8块和先前重构的块之间的差别(残留)进行DCT变换、量化和可变长度编码。这运动补偿编码过程的细节在各种公开物中都有描述,其中包括上述的Weiss的教材和Ang等人的论文。
MPEG译码器要求的存储器容量减少了,这就允许外部帧存储器的总容量大大减小。正如随后将要解释的,这是通过将要存储在存储器中的解压缩的视频帧进行再压缩和根据该译码器的操作模式通过选择性地水平过滤和分样(即子采样或下采样)在译码器环中的像素数据而完成的。比如在一种模式中该系统提供定位帧压缩,在另一个模式中该系统通过低通滤波和下采样进行水平细节缩减之后提供压缩。
输入的压缩的像素数据块,在被单元14进行可变长度译码之前由单元12进行缓存,单元14如所知道的那样也产生运动矢量12。缓存器12在主层次(main level),主分布(main profile)MPEG数据流的情况下其存储器的容量是1.75兆位。通过一个多路转换器(Mux)15将译码的压缩的数据块从单元14输出,产生输出数据流P1和P2,输出数据流P1和P2表示双数据流水线,此后称之为流水线1(P1)和流水线2(P2),流水线P1包含一组用于一个给定的宏块的8×8像素块“A”的DCT系数,后跟一组用于该宏块的8×8像素块“C”的DCT系数。该DCT系数如所公知的被安排成对角线或之字形扫描格式。流水线1传送这种用于一个对应宏块序列的A,C块的序列,流水线2类似地包含一组用于该给定宏块和同时排成序列的多个宏块的DCT系数B和D,在流水线的序列中的这种像素块和宏块的像素数据的安排已被示出,并将结合图2-17讨论。
象素块数据由并行数据处理路径中的各个流水线进行传送,每个流水线包括一个逆量化器(18,20),一个逆离散余弦变换(DCT)单元(22,21),输出FIFO缓冲器(26,28),块重定序单元(23,25),块交错单元(24,27)和加法器(30,32)。在分别作用到加法器30和32的一个输入端之前,由该逆量化单元和逆DCT单元在各个流水线上分别进行解压缩和变换译码。
重定序单元23,25从单元21和22去除该逆DCT变换的象素数据的之字形扫描图形,以对每个8×8块产生一个水平的逐行象素扫描序列。从而,例如在流水线1,单元23的输出表示形式为a1,a2,a3...a63 a64(关于块A),c1,c2,c3...c63,c64(关于块C)等的象素值。交错单元24使用多路转换技术产生形式为a1 c1 a2 c2 a3 c3...a64 c64的流水线1的输出数据。对于块B,D,交错器27产生类似的序列。
逆量化器18和20的量化步幅由来自缓冲器的量化控制(QuantControl)信号控制,以确保有一个平滑的数据流。将所译码的运动矢量MV从译码器14提供给运动补偿单元90,正如下面将要讨论的。译码器14也产生一个帧内/帧间模式选择控制信号,这是众所周知的,为了简化附图,这里未予示出。单元14,18/20,21/22和23/25所执行的操作是MPEG译码器在发送器所执行的相应操作的逆操作。图1的MPEG译码器使用MPEG处理技术重建所接收的图象,下面将对MPEG处理技术进行简要描述。
基于视频帧存储器20的内容通过将来自单元26和28的残留图象数据与在运动补偿单元90的输出端所提供的所预测的图象数据进行相加而在加法器30和32的输出端分别提供重建的象素块。所重建的图象表示象素块的整个帧存储在帧存储器60中。在帧间模式中,使用来自译码器14的运动矢量MV从单元90提供所预测的块的位置。运动补偿处理从以前所译码的图象中形成预测,该以前所译码的图象与(来自IDCT单元21和22的输出的)系数数据进行组合以恢复最后所译码的采样。运动补偿单元90按照例如在前面所提到的MPEG规范和在Weiss和Ang的文献中所讨论的公知的MPEG兼容技术进行操作。单元90的A,C和B,D输出表示所解压缩的交错的象素块数据A,C和所交错的象素块数据B,D,如下面将对其进行讨论的。
图象重建过程涉及加法器30,32,外部译码器帧存储器60和运动补偿单元90,由于使用了基于块的并行处理压缩器40和42和水平象素分样(子采样)单元36和38(其减少了水平细节),其优点是显著减少了对帧存储器的要求。作为由再压缩单元40,42和单元36和38的分样所实现的数据缩减的函数,帧存储器60的大小可以减少25%,50%或更多。分样单元36和38的输出数据由块重定序单元43进行处理,然后在利用水平分样的数据缩减操作模式中将输出数据传送到压缩器40,正如后面将要讨论的。结合图12和14以及相关的附图将可以看到重定序操作的效果。在激活水平分样单元36和38的缩减数据操作模式中,模式控制(ModeControl)信号和模式切换器45修改压缩器的操作,如将要讨论的。在缩减的数据模式中禁止压缩器42(例如关闭电源)。在其他时间,例如在处理高清晰度输入信号时,将压缩器40和42都激活。
解压缩单元80-84执行由单元40和42执行的压缩操作的逆操作。单元88执行由单元36和38执行的分样操作的逆操作。后面将讨论这些操作的其他细节。格式化单元86摒弃不需要的解压缩的象素行,直到获得包含单元90用于运动补偿预测器处理所需要的解压缩的象素的行时为止。这一选择过程防止累积不必要的数据,这一过程在存储器中不提供对每一象素的唯一映射的压缩系统(如所揭示的系统)中十分有用。关于这一方面,请注意一个象素值可能已经以例如3,4或5位进行了压缩或量化,而只有在解压缩之后才知道该象素的值。
在再压缩之前通过交错MPEG译码的输入高清晰度数据流以及通过使用一个所交错的数据的压缩网络处理该所交错的数据进行该MPEG译码的输入高清晰度数据流的处理是有利的。该数据再压缩网络包括对一个所交错的数据流进行操作的类似的压缩器40和42。这些压缩器共用包含在单元44中的某些逻辑电路和查找表,以及响应由时钟发生器50产生的本地发生的54MHz(2×27MHz)时钟信号CLK进行工作。该CLK信号也作用到水平上采样网络88。由发生器50产生的81MHz(3×27MHz)时钟信号也作用到解压缩器62,80,82和84,以及显示处理器70。
在继续该系统操作的描述之前,理解由图2-17所示出的交错的象素数据处理操作的性质是有益的。图2示出了一个公知的MPEG宏块结构,该宏块结构包括亮度(Y)和色度(U,V)象素块部分。每一宏块的亮度部分由四个8×8象素亮度块Ya,Yb,Yc和Yd构成。色度部分包括所示出的4×4象素“U”块Ua-Ud和4×4象素“V块”Va-Vd。交错器24和27(图1)如先前所讨论的和图3中的所示出的将数据流P1和P2中的这些象素块进行交错,图3示出如何对亮度和色度块进行安排以用于A,C和B,D流水线处理。在图4中相对于4×4象素块更详细地示出交错之前的流水线式处理,该4×4象素块构成一个“U”色度部分。图4示出单元23和25将色度象素块Ua和Uc放入数据流P1和将象素块Ub和Ud放入流水线P2的处理过程的结果。在该图中,A1表示块A的第一个象素值(8位),A2表示块A的第二个象素值(8位),B1表示块B的第一个象素值(8位),如此等等,通过最后的值A16和B16至块D。涉及亮度象素数据可以看到类似的处理。
在图5-7所示出的象素数据布局中,假定图1的单元36和38不进行水平分样(horizontal decimation)。在这一操作模式中,根据对于一个设定的系统配置所希望的数据缩减量(分样加上压缩)旁路36和38。图11-17示出了允许水平分样的象素数据处理。
图5示出在流水线1中从交错器24的输出经过缓冲器26和加法器30到压缩器40所传送的没有由单元36进行分样的交错象素数据的A,C序列。类似地,流水线2的象素数据以序列B1,D1,B2,D2...等从交错器27和加法器32传送到压缩器42。将宏块划分成由A,B,C和D数据组表示的段不是关键。比如,在另一个系统中,流水线P1可以传送A,B数据或A,D数据。类似地,流水线2可以传送一个数据组合而不是B,D。在所示出的实施例中,流水线1所传送的A,C数据对应于MPEG规范中的“偶”数据块,流水线2所传送的B,D数据对应于MPEG规范中的“奇”数据块。
图6示出在Huffman编码后从第一个流水线的第一个压缩器40输出的所压缩的象素数据。图6数据流中的每一个“x”表示一个“不关注”状态,该状态被产生以简化定时过程,从而对于每一时钟周期使用包含8位数据的连续时钟(而不是一个不太理想的停止/启动时钟)。写使能信号(未示出)确信当前只有有效的所压缩的数据被写到存储器。对于在输入端的每16个8位(色度)象素(8个字节),在输出端产生16个字节的所压缩的数据。对于流水线2的块B,D,没有示出从第二个压缩器所输出的类似的象素数据。将参考图20示出适合于压缩器40和42使用的压缩电路的细节,并进行讨论。
在单元40和42进行压缩之后,通过一个128位宽(即每一条传送一位的128条并行数据线)的内部存储器总线55(图1)和一个64位宽的外部存储器总线57将该象素数据传送到外部译码器帧存储器60。存储器60以解交错形式存储该象素块数据。可以在一个本地微处理器120的控制下,由与压缩器40和42相连的输出电路进行解交错,或者由存储器60之前的电路进行。这些电路使用已知的信号处理技术执行该逆交错功能,为了简化没有将这些电路示出在附图中。图7示出了在解交错之后传送到存储器60的压缩后的象素数据的形式。每个被压缩的象素用一个3到6位的数据表示。在所压缩的A数据块中,“a1”并不表示在该点的象素a1,而是一个8位的数据,其由所压缩的象素和额外开销数据构成。一个象素的数据长度由该数据本身和该象素的位置确定。用于压缩在这一色度块中的数据的位数是64位。原始的色度数据由128位(8×16位)构成。对“B”至“D”数据也进行类似的处理。
现在回头参见图1,由包括显示解压缩器62,FIFO显示缓冲器64,多路转换器68和显示处理器70的显示处理网络对存储在存储器60的所压缩的象素数据进行处理用于显示。显示缓冲器64容纳16个图象行,被分成两个分别为8行的缓冲器。从其中一个行缓冲器通过多路转换器68读出要进行显示处理的解压缩的数据,同时另一个行缓冲器以来自单元62的解压缩的数据进行填充。缓冲器64可以位于存储器单元60。显示处理器70可以包括例如一个NTSC编码网络,用于调节显示象素的电路,和用于向图象再现设备72(例如高清晰度显象管或其他适当的显示装置)提供视频信号的显示驱动器网络。
在由单元62进行解压缩之前,对象素数据进行再次交错以提供一个“ab”块序列,如图8所展示的。这一交错可以由对存储器60寻址的适当的读出操作或通过与显示解压缩器62相连的输入逻辑电路进行。类似地,在解压缩之前,对象素c和d进行再次交错以产生一个“cd”数据序列(未示出)。该用于显示的再次交错序列(即ab和cd)不同于最初的输入交错序列(即ac和bd)。最初的交错允许例如首先对数据a和b进行访问以及对数据a和b进行并行处理。再次交错的显示序列适用于显示目的,其中需要来自同一图象帧的数据(象素a,b,和c,d在同一图象帧)。图9示出用于“ab”序列的所交错的解压缩的象素数据序列。也产生用于“cd”序列的所交错的解压缩的象素数据序列(C1,D1,C2,D2,C3,D3...),但未在图中示出。在单元64,68和70处理之后,将一个给定块的象素重新安排成如图10所示的显示格式。这是一个所简化的4∶2∶0形式而不是4∶2∶2形式的例子。
再次参见图1,MPEG译码器环也包括一个由与单元86和88分别进行的数据格式化和水平上采样有关的多个解压缩器80,82和84执行的解压缩功能。关于图8和9的上述描述也可应用于这一控制环解压缩功能,其中在解压缩之前,由与该解压缩有关的电路进行象素数据的交错,以产生如图8所示的一个“ab”(和“cd”)数据序列。
图11-17示出了象素数据序列布局,其中假设已经启动图1的单元36和38的水平分样(即子采样或下采样(downsampling))。在启动单元36和38的水平分样形式的数据缩减时,由于数据量的减少,禁止压缩器42,只使用压缩器40对数据进行压缩。网络44包含单元40和42所使用的逻辑电路和查找表。在数据处理需要量较少的数据缩减操作模式中,在一个压缩器不工作时,只有另一个压缩器使用这些电路和表。在两个压缩器40和42都工作的高分辨率模式中,利用该交错的数据流水线式的处理便利了对这些电路和表的共用。具体地,单元44包含两个查找表,一个由压缩器40使用,一个由压缩器42使用。共用用于压缩器40的LUT来压缩所交错的A和C数据,因为这些数据是在不同的时间被压缩的,诸如以交错的时钟,后面将对其进行讨论。在压缩数据B和D期间,类似地共用压缩器42的LUT。
图11示出了从数据流1施加到图1的分样过滤器36的输入端的象素数据序列。过滤器36的分样产生图12的象素数据序列,该序列也应用到重定序网络43的输入端。在图12中,标记为“x”的单元表示“不关注”或空数据,在一个H/2模式,用因数2对水平象素数据进行子采样,过滤器36平均两个相邻的象素,如公式a1*=(A1+A2)/2,c1*=(C1+C2)/2,a2*=(A3+A4)/2,等。这一过程示出在图18中,如将要讨论的。也可以使用利用其他子采样因数的分样。图13和14类似地示出了图1中从数据流水线2施加到分样过滤器38的象素数据序列。
图15显示了在由图1的单元43进行分样和重定序之后的象素数据的序列。具体地,由单元43对象素数据进行重新对齐,将它们以适当的序列压缩和存储在存储器60中。在图15中,象素数据a1至c4表示在分样之后的一个图象帧(一个2×4矩阵),象素数据b1至d4表示在分样之后的第二个图象帧(2×4矩阵),如此等等。
在图1中,将来自单元43的所有重定序的象素数据通过模式切换器45作用到压缩器40,因为在经过分样之后,只需要一个压缩器来压缩经过缩减的数据。在分样过程中的数据平均从两个象素产生一个象素,产生更少的数据,并且相应的减少了对数据处理带宽的需要。因此只要一个压缩器就够了,压缩器42处于不工作状态。如以下所讨论的,压缩器响应模式控制信号根据分样是否操作对压缩器进行使能和禁止。
发生在重定序网络43中的重定序不象先进先出缓冲器中那样是一个直接的过程。为了减少包括水平分样,重定序和再压缩的运动补偿环处理的复杂性,以基本上与没有经过单元36和38进行分样处理的数据相同的格式将数据提供给压缩器40。提供独立于再压缩器40的重定序网络43简化了电路,因为重定序器40不必区分来自单元36和38的要求重定序的数据和来自加法器30和32的不要求重定序的数据。
图15A是图11至15的汇集,显示了相对于象素时序经过水平分样和重定序的的数据流。图15A的数据流15-1和15-2分别表示从加法器30和32出来的和进入分样器网络36和38的数据。数据流15-3和15-4分别表示从分样器网络36,38出来并且进入重定序网络43的数据。如前面所讨论的,对象素进行交错,如在数据流15-1至15-4中所看到的。数据流15-1和15-3表示来自流水线P1的数据,数据流15-2和15-4表示来自流水线P2的数据。数据流15-5表示从重定序网络43出来的数据,该数据经过切换器45进入再压缩器40。在图15A的底部,是象素时钟CLK,以表示数据象素通过该系统时的时序。作为一个示例,将所选择的数据象素通过重定序过程。该过程对任一流水线的数据是相同的。该数据流15-1和15-2的象素表示一个色度象素宏块。对于亮度象素宏块该过程是相同的,但是该过程更复杂,因为其重排序是在四个8×8的象素块上而不是四个4×4的象素块上扩展的。该较大的宏块使得重定序在更多数目的时钟周期以四倍的数据量进行。然而,对于亮度和色度数据本发明的范围仍然是一样的。
来自数据流15-2的象素B1被分样至百分之五十,并且与象素B2组合以形成与一个输入数据象素同样大小的一个输出数据象素。对于象素D1和D2也是同样的。分样器网络38缓冲来自象素B1和D1的被分样的数据,直到象素B2和D2被处理。这就是在第一个两个时钟周期期间来自分样网络38的输出数据无效的原因。在第三个时钟周期期间出现有效数据,如象素b1*。在第三个时钟周期的前半部分期间输出象素B1的数据,在第三个时钟周期的后半部分期间输出象素B2的数据。在第四个时钟周期以同样方式产生象素d1*。
将来自流水线P1和P2的数据传送到重定序网络43,该重定序网络43缓冲该数据并以适当的顺序访问特定的象素,以形成进入压缩器40的一个连续数据流。如同从图15A的数据流15-4和15-5所看到的,象素b1*,b2*,b3*和b4*必须与象素d1*,d2*,d3*和d4*相交错,但是在相应的a,c象素之后。因此这些象素驻留在重定序网络43中不同的时间,以等待进行输出。比如在时钟周期3期间重定序网络接受象素b1*,并且在时钟周期12期间输出,而在时钟周期7期间重定序网络接收象素b2*并且在时钟周期14期间进行输出。通过由一个微处理器120所控制的状态机将象素导引到重定序网络43。
为了维护恒定的数据流,压缩器40期待以交错格式的输入象素数据,如在数据流15-1和15-2中所示出的。在分样网络36和38之后改变象素的顺序,因为两个流水线P1和P2被按照2的级数下采样,每一个流水线提供数据流15的一半数据。然而来自P1和P2的下采样的数据源于该图象的垂直相邻的块。压缩器40等待来自水平相邻块的所交错的象素数据。因此重定序网络43将以数据流15-3和15-4所示出的顺序的下采样的数据组合成数据流15-5中所示出的顺序。这一顺序实质上与没有经历过在分样网络中的下采样的所交错的数据相同。来自下采样的数据和没有经过下采样的数据的象素块的大小是相同的,也就是它们水平和垂直方向具有同样数目的象素。唯一的差别是所下采样的象素数据块包括来自两个水平相邻象素块的象素信息,如前面所描述的。这个差别对于压缩器40是透明,该压缩器允许连续的数据流。然而这一系统进行重定序以将水平相邻的象素块组合成一个下来样的象素块,本发明的精神也包括这样一个系统,该系统组合具有不同的空间关系的象素块。
如图15A所看到的,重定序网络43表现为需要来自分样器网络36的象素a2*至a4*和a6*至a8*(数据流15-3)以在它们可用之前输出(数据流15-5)。现实是,这不能发生也不会发生,但其所示出的是重定序网络43必须适应的不同的时序和延迟。为了防止数据在被重定序网络43接收之前而需要输出,单元43保存并且延迟足够数量的数据,直到可以处理所有的数据,因此提供了如在数据流15-5所示出的连续的数据输出。这一延迟对于流经流水线P1和P2并且到达重定序网络43的第一数据发生,比如在对电视接收机开始加电时,在频道切换时,或者在任何时候建立数据同步时发生这种延迟。在一个最初的延迟之后,数据就是连续的了,不损失时钟周期。
图16描述了从压缩器40输出的所压缩的象素数据的序列。在图16中,所压缩的数据“m”指示由从分样后的象素a和b(即对一个8×8象素块进行分样后所产生的一个4×8象素块)导出的数据构成的所压缩的象素数据。类似地,所压缩的数据“n”指示由从分样后的象素c和d导出的数据构成的所压缩的数据。象素数据a和b在同一个图象场,象素数据c和d在同一个图象场。由压缩器40进行的象素块压缩过程被设计成对8×8象素块进行操作。在分样之后,将所产生的4×8象素“a”块和4×8象素“b”块进行组合以产生一个8×8象素块,其被压缩以产生象素块“m”。类似的作法涉及从所分样的4×8象素块“c”和“d”形成所压缩的象素块“n”。在这一方式中,为进行有效的MPEG译码,将在同一个图象帧中的象素块进行适当的对齐。图17表示了被传送到并且存储在存储器60中的正确的帧序列的所压缩的象素块的安排。
通过减少存储在存储器60中的象素值的数量,由分样网络产生的水平细节缩减还减少了对译码器的存储器要求。在提供数据给存储器60之前,分样网络36,38利用一个水平空间低通滤波器,后跟一个2∶1水平分样(下采样)。在由单元80,82和84进行解压缩之后,来自存储器60的图象信息的分辨率由单元88使用象素重复上采样过程重新构成。该上采样过程在显示解压缩器62和显示处理器70之间不需要,因为处理器70提供了所要求的水平采样率转换。在缩减成本的接收机中,预计显示解压缩器62和处理器70将不执行上采样,因为这样的接收机提供的显示分辨率减少了。在这一情况下,存储器缩减了的所译码的帧的分辨率高于标准清晰度的显示器。比如,为了译码和在一个720×480象素显示设备上显示一个1920×1088象素的视频序列,就要求存储在帧存储器中的图象具有960×1088的分辨率(进行1/2水平分样)。从而显示解压缩器62不必需要上采样图象,但是显示处理器70将不得不对960×1088分辨率的图象进行下采样成720×480,以适于在显示器上显示。
图18和19分别示出了与由图1的单元36,38执行的象素子采样过程和由单元88执行的象素上采样有关的单元的总的布局。在单元36和38中,在进行二分样之前,该原始的象素首先由一个偶序号低通滤波器102进行低通滤波,从而单元104每隔一个去除一个象素值。这些象素值存储在存储器60中。以后,由上采样单元88的部件106使用公知的技术重复存储器60中的象素数据。
在这一例子中,过滤器102是一个8抽头对称FIR过滤器。这一过滤器在该水平空间域中操作,并且跨越块边界进行过滤。该8抽头过滤器的作用是将输出象素的相对位置相对于该输入移动半个采样周期,如图18所示。正如在图18所示出的,象素重复上采样的效果是保持该所下采样/上采样的象素相对于该原始象素的同一空间位置。分样过滤器单元104可以是两抽头过滤器,使得对于输入象素x和y,该过滤器输出是(x+y)/2,该分样通过每隔一个象素去掉一个而完成。该过滤器并不跨越块边界,容易实现,并且是水平分样的较好选择。
图1所示的电视接收机系统已被简化,使得不会用过多的细节使附图复杂。例如,没有示出与该系统的各个部件有关的FIFO输入和输出缓冲器,读/写控制,时钟发生器电路和用于连接到外部存储器的控制信号,该存储器可以是扩展数据输出类型(EDO)的存储器或同步型(SDRAM)的存储器。另外图1的系统包括一个用于发送和接收数据,例如读/写使能和地址信息的微处理器120,连接到一个内部控制总线114的总线接口122和控制器126。在这一例子中,微处理器位于包括该MPEG译码器的集成电路的外部。
显示处理器70包括将一种所译码的图形格式转换成单元72用于显示的一种预定的格式所需要的水平和垂直再采样过滤器。例如,该系统可以接受和译码对应于诸如525隔行,1125隔行或720逐行扫描的格式的图象序列。处理器70也产生与该图象显示器有关的时钟和H,V,同步信号,以及通过内部存储器总线55与帧存储器60通讯。
外部总线接口网络122除了输入所压缩的视频数据用于由该MPEG译码器处理之外,还在MPEG译码器和外部处理器120之间传送控制和配置信息。该MPEG译码器系统模仿微处理器120的协处理器,例如对于要译码的每一帧,微处理器发布一个译码命令给MPEG译码器。该译码器定位该相关的头标信息,然后该头标信息由微处理器120读取。利用该信息,微处理器120发布用于配置该译码器的数据,即关于帧类型,量化矩阵等,在这之后,译码器发布适当的译码命令。可变长度译码器14通过存储器总线55进行通讯,并且接口电路128提供了存储器总线55和控制总线114之间的通讯。
模式控制数据由接收机的制造厂家进行编程,该数据由与存储器控制器134和控制器126相连的微处理器120进行传送,如按系统的设计参数所要求的以建立用于单元40,42和80-84的压缩/解压缩因子和控制压缩和解压缩网络以及上采样和下采样网络的状态。微处理器120也将存储器60分成多个帧存储器段,帧存储器和位缓冲器,以及用于MPEG译码和显示处理的在屏显示位映射段。本地存储器控制单元134接收(例如来自单元70的)水平和垂直同步,和数据请求输入,以及提供确认输出和存储器地址,读取使能(Ren)和写入使能(Wen)输出到包括缓冲器控制电路的各种系统电路。单元134为控制存储器60产生实时地址和控制信号。响应信号CLKin中的输入时钟,提供输出时钟信号CLKout,时钟信号CLKin可以由诸如单元50的本地时钟发生器进行提供。图1的系统可以与在各种数字数据处理方案的上下文中的MPEG规范的所有层面(Profile)和级别一起使用,这些数据处理方案可以与例如地面广播,有线电视和卫星传送系统有关。
在这一实施例中,视频帧存储器60位于包括图1的MPEG译码器和有关部件的集成电路的外部。显示处理器70可包括一些在MPEG译码器集成电路上没有的部件。使用这种外部存储器器件允许接收机的制造商选择经济的存储器器件,使得在接收机接收到高清晰度的数据流时,能与接收机的预定使用目的,例如全高清晰度显示器或清晰度降低的显示器,相兼容。作为实际应用,通常用于MPEG译码的较大容量的存储器当前要求该存储器位于该译码器集成电路的外部。技术的将来发展有可能允许该存储器与该MPEG译码器部件位于同一个集成电路上。然而使用外部存储器器件给了制造商选择存储器的大小的自由,以与接收机的显示器分辨率和其他特征一致。
在实际上,接收机制造商将决定是将接收机配置为一个具有扩展特征的昂贵的优质模型,还是配置为具有较少特征的更为经济的模型。一个感兴趣的特征是所显示的图象的分辨率。在一个成本节约的接收机中,有助于节约成本的因素包括廉价的分辨率降低的图象显示设备和与MPEG译码器有关的存储器的容量。
在这一例子中,在压缩器网络将数据压缩25%时,对存储器的要求降低到64兆位,并且在压缩器网络将数据压缩50%时,对存储器的要求降低到更为经济的48兆位。该25%的压缩因子与全HD图象显示器有关,并且几乎与没有压缩的全MPEG译码没有差别。采用50%的压缩比例,经过训练的观看者能够发现几乎注意不到的人为现象。在任一情况下,所译码的图象序列提供全1920×1088的MP分辨率,用于由一个全HD分辨率图象显示装置显示。
在有些情况下,不需要全HD图象分辨率,诸如在一个型号的接收机使用的廉价的显示装置的分辨率低于全HD分辨率时。在这种情况下,最好接收和译码HD信息而不显示全HD分辨率图象。在这样一个接收机中,分样器网络36,38和压缩器网络40可以被一起用于极大地减少译码器的存储器要求。例如,分样器网络可以以1/2水平分样数据,压缩器网络可以将所分样的数据压缩50%。这就会将译码器的存储器的容量极大地减少,只有32兆位。在这一情况下,用于显示的图象的分辨率是960×1088,这对于1H或2H的接收机应用是足够的。从而只使用32兆位的MPEG译码器存储器就可以构成能够译码全HD图象数据流的低成本的接收机。响应由微处理器120提供给切换器45的模式控制信号,执行上述的操作。根据该MPEG译码器是位于一个高清晰度的接收机中还是位于一个分辨率低的接收机中,编程微处理器120以确定压缩的量,以及确定是否启动分样器网络对数据下采样,或对其旁路。
图1的系统展示了用于处理一种信号的第一数据处理模式和用于处理一种数量缩减的数据的第二模式,该信号包含诸如由高清晰度显示装置显示的一种高清晰度电视信号的大量的数据。该第二模式例如可以实现在一个包括具有较低的数据分辨率功能的成本较低的显示装置的经济的接收机(即一种非HDTV显示装置)中。
图1中切换器45的状态由模式控制信号控制,该信号可由接收机制造商进行编程以指示由该接收机显示的数据的类型,例如高清晰度(第一模式)或低于高清晰度(第二模式)。如果所接收的高清晰度信号要由高清晰度显示装置显示,则控制切换器45以产生第一模式操作,而在一种高清晰度输入信号由单元36和38进行子采样以产生低于高清晰度的图象信息用于由具有低于高清晰度分辨率的经济的显示设备进行再现时,控制该切换器产生第二模式。
在第一模式,分样器单元36和38被旁路,要压缩的数据块被直接传送到压缩器42和通过切换器45传送到压缩器40。在这一模式中,将模式控制信号作用到压缩器42的控制输入端,以启动压缩器42。在第二模式中,在这一实施例中,通过移去压缩器42的电源,该模式控制信号的状态禁止压缩器42,同时通过切换器45使能要从加法器传送的数据以激活加法器40。在一个用于处理HDTV信息的集成电路器件中通过移去电源而禁止压缩器42是极其有利的,这是因为由于这种集成电路的高的时钟频率,大的表面积和集成在其上面的工作部件的数量很大,对其功耗(散热)有限制。在一个选通的时钟系统中,移去电源可通过停止压缩器的时钟来有效实现。这种操作的一个另外的优点是压缩器只需要以类似于诸如8×8和4×8的块处理模式的方式操作。也就是,例如不需要对压缩器40进行再编程以处理由该分样处理产生的4×8象素块。块重定序单元43从4×8象素块重建分样后的象素块以产生与该压缩器的块处理算法兼容的8×8象素块。
在没有利用单元36和38进行分样时,也将模式控制信号作用到水平上采样网络88的控制输入端,以旁路在操作模式中的上采样功能。为此目的,单元88可以利用一个相对简单的切换装置,以在这种旁路模式中将单元86的输出信号直接切换到单元90。
在存储数据到存储器60之前的压缩要求在运动补偿处理环中的单元88之前对数据进行解压缩。这是通过基于块的解压缩器80,82和84完成的,解压缩器执行压缩器40和42的逆操作。基于块的显示解压缩器62使用类似于压缩器80-84的解压缩技术,在将所存储的象素数据传送到显示处理器70之前对之解压缩。在存储器60之前启动下采样网络36,38时,在运动补偿处理环中的单元90之前由单元88对存储器60的输出数据进行上采样,该操作是网络36和38的逆操作。
有利的是,图1的系统利用多个并行块解压缩器,它们分别用运动补偿环中的单元80,82和84表示。在这一例子中,使用了9个解压缩器,在单元80,82和84中每一个有3个解压缩器,以允许所有的象素单个被解压缩。这些解压缩器的每一个具有一个相关的FIFO输入缓冲器。(例如在单元80的)三个解压缩器被用于解压缩在一个MPEG前进预测模式中的亮度信号,(例如在单元82的)三个解压缩器被用于解压缩在一个MPEG后退预测模式中的亮度信号。由于色度信息是亮度信息的一半,仅仅(例如在单元84中的)的三个解压缩器被用于解压缩色度象素数据。对于最坏情况下的MPEG B-图形译码,需要使用所有9个解压缩器,这时需要双向运动补偿预测处理。从而B图形预测要求两个图象帧(前一帧和后一帧),同时MPEG P图形预测只需要一个图象帧。
可能(并且经常不会)在一个块边界不出现运动补偿预测器块(predictor block)。相反,几个块可能不得不从帧存储器60中调用。在最坏的情形下,在一个具有一半象素分辨率的MPEG-2系统中,该运动补偿预测器块可能交叉6个块。从而必须从存储器访问6个块。在一个诸如具有在运动补偿环中(通过单元40,42)进行再压缩的所揭示的系统中,不能直接访问象素。所有的块象素必须首先进行解压缩,在出现6个块的最坏的情形下这需要许多开销,并且产生的数据比实际需要的多。如前面所描述的,格式化单元86将不需要的象素信息丢弃,但是仅仅在所有的象素已被解压缩之后。
在要处理大量数据的情形下,诸如在如上所述的6个块的情形下,在存储之前进行解压缩极大地增加了与处理该所解压缩的象素信息有关的缓冲器容量的要求。相反,已经发现最好在所揭示的系统中如所揭示的那样并行地解压缩数据,并且在后来(通过单元86)丢弃与该预测器块不相关的不需要的所解压缩的象素数据。有利的是,这一过程要求明显小的缓冲器存储容量。因此,尽管降低了缓冲器存储器带宽(数据容量)的要求,但需要更多的集成电路表面积。然而,并行地使用几个解压缩器带来的其他优点是,对运动补偿预测器处理所需要的数据的操作更快,以及随之带来的对之快速的访问。
该多个解压缩器不是成流水线。每个解压缩器和其相关的缓冲器独立地分发数据,从而快速地分发数据。在一个解压缩器/缓冲器网络中操作的延迟不影响其他解压缩器网络的操作。解压缩器也对于象素数据执行交错的操作,这便利了每个解压缩器的独立操作。也象该压缩器网络,解压缩器80,82和84共用单元44中的一个公共的查找表(LUT)。
根据特定系统的要求,网络40,42可以使用包括量化和变换的各种压缩类型。所揭示的系统使用固定长度压缩,尽管也可以使用可变长度压缩或自适应固定/可变压缩。
所使用的压缩的类型最好具有某些特征。每个块应当被压缩一个预定的量,以使得容易确定每一所压缩的块的位置。每一块应当独立于其他块压缩/解压缩。从而不需要读取任一其他块就可访问任一块。该压缩/解压缩过程不应当在所再现的图象中产生可以看到的人为现象。与没有这种压缩的常规的译码器处理相比,以25%的压缩比几乎是清楚的。以50%的压缩,其结果是清楚程度降低,但其结果是可接收的,与没有压缩和存储器缩减的常规译码器相比,不认为是明显地不同。
图20示出在图1的每一再压缩器40和42中使用的固定的压缩网络。该压缩网络利用了具有自适应预测的差分脉冲编码调制(DPCM)环。这种具有预测的DPCM处理的思想是消除连续象素之间的相互冗余,以及只产生差别信息。这一公知的过程在A.K.Jain所著的“数字图象处理基础”(Prentice Hall国际出版社出版)第483页中有描述。
在讨论图20的电路之前,现在参照图22进行描述。图22示出了与DPCM网络的预测处理操作相关的一个四象素组a,b,c和x(要预测的象素)的一种示例安排。在图22的8×8象素块中引用该象素组。以图22所示出的光栅方式扫描每一象素块,方向是从左到右,从上到下。在这一例子中,对于亮度信息,相对于象素c延迟象素b一个象素间隔,相对于象素b延迟象素a七个象素间隔,相对于象素a延迟象素x一个象素间隔。对于色度信息,象素“a”延迟三个象素间隔。
在DPCM预测处理中,通过使用先前编码的象素预测要编码的当前象素,对于解压缩器62,80,82和84(图1)这是已知的。在图22中,象素x是要预测编码的象素值,象素a,b,和c先前已经进行了预测编码,这对于解压缩网络是已知的。根据下面的伪码,x的预测Xpred使用a,b,和c的值,该伪码描述了所使用的算法逻辑if(|a-c|<e1&&|b-c|>e2),Xpred=belse if(|b-c|<e1&&|a-c|>e2),Xpred=aelse Xpred=(a+b)/2其中e1和e2是代表预定阈值的常数。只对于没有位于该要处理的块的第一行或第一列的象素才使用该算法。如下是要处理的一些例外不引用任何其他象素非常精细地编码一个块的第一个象素,在第一行中的象素使用象素值a作为该预测值,在第一列中的象素使用象素值b作为该预测值。这一算法基本上是试图监测一个边缘。在第一情况下,提示象素c和b之间以及象素a和x之间的一个垂直边缘。从而b是最好的预测值。在第二情况下,提示象素a和c之间以及象素b和x之间的一个水平边缘。从而a是最好的预测值。在第三种情况下,没有发现明显的边缘。在这一情况下,a和b都是同样好的预测值,因此使用它们的平均值。
图20的压缩网络量化作为DPCM处理的结果的差(残留)象素值。图20使用具有两个预定的延迟和并行而不是串行处理的一个交错的DPCM环。图20所示出的电路对应于图1的再压缩器40所使用的用于处理图5所示出的序列中的所交错的象素数据A和C的电路。压缩器42使用一个类似的电路用于压缩所交错的象素数据B和D。由于图20的网络压缩一个残留值,在相应的下一块的相应的位置的象素出现之前,该预测器环必须完成一个给定块的一个象素的处理。该交错的象素块数据独立地运动通过该电路,在具有不同速率的输入和输出数据的可变长编码系统中这是重要的。
在图20中,单元230将来自各个交错的象素块A,C...(图5)的交错的象素数据序列a,c,a,c,...延迟一个象素。将一个要压缩的给定的象素值作用到一个减法组合器210的非反相(+)输入端。组合器210的反相(-)输入端接收来自预测器215的预测的象素值。分别由单元220和222对从组合器210输出的残留(差)象素值进行量化和逆量化。在这一例子中,单元220提供的量化是固定的,并且保证一个理想的固定数量的数据压缩。单元230,232,234,236,238,240和242是由54MHz CLK信号同步定时的寄存器(例如触发器)。单元230,232,240和242(Z-1)产生一个时钟周期的延时。由于数据交错,要花费两个时钟才前进一个象素。单元238,234和236分别产生两个,六个和八个时钟周期延迟,其作为对两个交错的象素块的数据流进行网络处理的结果。逆量化器222的输出逼近量化器的输入,但差别一个由量化误差造成的一个小的DC偏差。加法器228的输出,Input’,与到组合器220的输入信号相差这一同样的量。在图27中相对于图20的所选择的电路单元,示出在几个时钟周期上的交错的输入象素序列a,c,...的时序关系,下面将进行详细的讨论。
图20的网络也包括一个加法器228和多路转换器225和235,如图所示。这些多路转换器包括与预测器逻辑215和象素延迟单元234,236和238相关的象素预测网络。多路转换器235的切换状态由所施加的亮度(Y)和色度(C)控制信号确定。Y,C控制信号是作为如图3所示的亮度和色度块交错的函数产生的。控制信号Y,C的状态由象素计数/定时过程得到,使得在宏块亮度象素之后的序列中处理色度象素。对于8×8亮度块处理或4×8色度块处理,使用Y和C控制信号来控制预测器电路的适当的延迟量。在将一个“1”逻辑电平控制信号施加到多路转换器235时,启动色度象素的处理,使得多路转换器235将出现在其“1”输入端上的数据传送。在将一个“0”逻辑电平控制信号施加到多路转换器235时,启动亮度象素数据的处理,使得多路转换器235将来自延迟单元236的输出端施加在其“0”输入端上的数据传送。在一个8×8亮度块的情况下,“x”预测器象素是离去的8个象素。多路转换器235切换输入延迟路径以产生这一更大的延迟。
在量化器220的输出端产生所压缩(量化)的残留象素输出数据。这一所压缩的数据(图6)在进行包括Huffman编码的进一步的处理之前由单元242延迟一个时钟周期。
要特别提到两个触发器延迟单元232和240。使用单元232和240产生双延迟路径Δ1和Δ2,并且允许相邻象素的预测而不是每隔一个象素。
延迟路径Δ1包括在延迟单元232的输出端和延迟单元240的输入端之间的电路部件。延迟路径Δ2包括在延迟单元240的输出端和延迟单元232的输入端之间的电路部件。每一个延迟单元232和240代表一个大约18纳秒的时钟延迟,或一个54MHz的时钟周期。采用这一装置,在就要压缩的象素被时钟同步到该电路的时候,将一个所压缩的输出象素同步出该电路。从而对于要压缩的每个输入象素实时产生一个所压缩的输出象素。
在另一个系统中,上述讨论的原则可用于4倍的交错,即4个数据流水线和四个延迟路径,而不是图20的系统中的两个延迟路径。可以将关键的处理环路分成四个部分以方便同步,这可允许使用一个更快的时钟。也是在这一情况下,使用一个共享的查找表可节约集成电路芯片的面积。在这一例子中,尽管交错该输入象素块,但是在所有的系统中不必交错该输入数据。
使用双延迟路径Δ1和Δ2便利了设计所需的整个网络延迟,即在这一例子中的大约18纳秒的延迟。在这一方面,要注意到与每个延迟路径有关的广泛的信号处理提供了用于设计延迟的各种手段。由两个延迟路径提供延迟不是关键。最好围绕该时钟优化该电路,使得每个延迟提供大约54MHz时钟的一个时钟周期。然而,在另一个系统中,相对于一个给定的电路设计该时钟周期可以是适当的,例如产生不规则的或非周期的时钟周期。这两个延迟路径不须表现出相同的信号处理延迟,但是在所揭示的系统中大约相同的延迟是最好的。
对于信号处理延迟可以优化诸如Δ1和Δ2的两个信号处理路径,其比一个总的路径容易得多,诸如在没有单元232和240的情况下。在由单元232和240所定义的两个路径的情况下,每个路径可以开始操作而不必等待另一路径的结果。在单个路径的系统的情况下,每一象素值(例如在单元234,215和225输入端的节点的象素值)必须由几个功能处理,其包括预测器逻辑,加法器,量化和逆量化,并且在下一时钟周期开始之前在该路径的末端出现。另外,这种象素值必须在这一时间稳定。这是一个严重的限制,对于所揭示的多个路径系统这种限制是不存在的,其显示出较多的灵活性。
图20的装置在以硬件实现在集成电路中时,能够以54MHz时钟速率实时地对于每一象素输入产生一个压缩的象素输出。图20的装置对于设计信号的处理延迟提供了较多的自由,并且以明显较少的集成电路的表面积产生同样的结果。此外,所减少的表面积表现出较少的电容,操作速度更快,并且消耗较少的功率。使用较快的时钟也是可能的。在这种情况下,交错仍然带来集成电路面积减少的益处(例如较少的压缩单元和有关的支持单元),以及使用自动设计工具更好地进行系统优化的优点。
所有逻辑门必须同时以一个时钟合成(synthesized)。在该集成电路设计涉及使用VHDL高级语言代码(该语言是公知的),由该语言代码合成这些逻辑门时,如所讨论的使用两个延迟路径极大地简化了用于压缩器和解压缩器网络的逻辑门的合成。采用两个延迟路径,自动逻辑设计很快收敛,使得可以更快,更精确和更容易复制地合成这些逻辑门。
除了方便了更容易复制的设计,图20的所描述的双处理路径促进了使用交错技术以产生更好的带宽和使用共享的逻辑单元(例如查找表)。这种双处理路径也便利了将该设计划分成特定系统所要求的功能单元或模块,诸如在这一实施例中的预测和压缩计算功能。这种模块可以按需要进行裁剪以适合特定系统设计的需要。
要注意的是,考虑到所交错的压缩器操作,已发现最好采用一个快速时钟的两个周期将一个压缩器用于所交错的数据,而不是使用两个压缩器电路,每个电路以该给定时钟的一半进行时钟同步。通过交错使用一个时钟的两个周期便利了时序优化,如所讨论的,并且交错允许处理两倍的数据。在所揭示的系统中,在一个时钟周期进行一个给定象素值的预测,同时在下一个时钟周期进行对该象素的计算(诸如量化和逆量化)。比如,对于所交错的象素块A和C,在一个54MHz的时钟周期期间预测来自块A的象素数据,同时对来自块C的象素数据进行量化计算。在下一个时钟周期,对块A的象素数据进行量化计算,同时对块C的象素数据进行预测。因此该系统交替地对不同的交错的块进行预测和计算。使用54MHz时钟的两个时钟周期提供了采用硬件电路制造中可用的适当工具以优化电路的延迟的机会。图27示出了交替地预测象素值和计算压缩值的过程。
利用图27示出的该过程,以该54MHz的压缩时钟的几个周期处理相关的交错的象素块A和C的交错的象素“a”和“c”。假设以第一个象素块A1的第一个象素a1开始该处理。考虑图27和图20,第一个时钟周期使得来自寄存器(触发器)230的输入端的象素a1被同步到其输出端,从而由单元220量化象素a1,并且在其出现在寄存器232的输入端之前由单元222进行逆量化,所有这些都是在第一个时钟周期进行的。在该点上,将象素a1表示为象素a1’,因为在该点的象素a1逼近输入象素a1,但有一个小的DC偏差,这是由于与单元220和222的处理相关的量化误差造成的。
第二个时钟周期使得下一个出现的象素,即所交错的象素块C1的第一个交错的象素c1,被以类似于对象素a1处理的方式进行处理。另外,第二个时钟周期使得象素a1’被同步到寄存器232的输出端,并且从而同步到包括单元215和225的预测网络。这使得象素a1’的预测值出现在寄存器240的输入端。从而在第二个时钟周期期间压缩(量化)象素c1,同时对先前压缩的象素a1’进行预测处理。
在第三个时钟周期,将预测地处理的象素a1’传送到寄存器240的输出端,在单元210中进行相减组合,由单元220进行压缩,并且作为所压缩的输出值a1”出现在输出寄存器242的输入端。在下一个时钟周期将象素a1”从这一寄存器同步到随后的霍夫曼编码电路。也是在该第三个时钟周期,在产生压缩的象素值a1”的同时,由单元215对交错的象素c1’进行预测处理。对交错的块A和C的其余象素an,cn该过程继续进行处理,从而在每一个时钟周期,分别对交错的象素进行预测和压缩处理。
如果没有数据交错,其处理将不得不在一个时钟周期例如从象素值a1前进到输出压缩的值a1”。这一要求对于速度和时序是一个严重的约束,而通过所描述的交错处理,则可避免这种约束。交错的处理也允许共用量化和逆量化逻辑,使得集成电路的面积和功耗减少。
可以独立于MPEG压缩使用所描述的交错的压缩器操作,并且这也代表在消费者视频应用(例如诸如VCR和摄像机(camcorder)的家庭视频系统)中使用的一种经济的处理系统,以提供25%-50%的预测压缩,从而不需要更复杂和昂贵的MPEG压缩。
可以以一个更快的时钟使用四个而不是两个交错的象素块。在这种情况下,可以一次处理四个8×8亮度象素块的一个整块。
在所揭示的系统中,如图21所示安排每个解压缩器网络。该解压缩器电路类似于图20的压缩器电路,除了单元210是一个9位加法器以及已经去掉单元220,222,228和242之外。路径Δ2涉及的处理少于路径Δ1,然而即使在路径Δ2中包括一个9位加法器231增加了大约9毫秒的时间约束,这使解压缩器的设计复杂化了。考虑与此,要注意加法器231在多路转换器225接收到有效数据之前不能开始计算。因此减少环路的时序约束是有利的。使用双延迟路径可实现这些,并且极大地简化了整个设计。
对于解压缩,已经发现预测路径Δ1是更重要的路径。已经发现在压缩的情况下,预测路径Δ2是更重要的路径,其中密集的数据处理决定使用更慢的54MHz时钟。
如前所说明的,网络80-84中的每个解压缩器独立地操作,使得快速地分发象素数据。通常通过时钟同步的设备,诸如触发器或寄存器,完成数据的传输。在从两个或多个数据源导出要进行流水的数据时,例如在交错的数据的情况下,在一些寄存器中的数据来自一个数据源的同时,其他寄存器的数据来自另一个数据源。响应于一个共同的数据时钟,数据流到一起,但在连续的寄存器中的数据是相互独立的。在两个数据源同步开始和停止的时候,只要该数据流(流水线)在同一时间开始和停止,可以避免系统操作的问题。
在一个数据源停止发送数据,而同时另一个数据源继续发送数据的时候,会出现一个问题。在诸如HDTV信号处理器的数据密集的流水线中,对于产生一个精确的高质量的显示图象,每秒大量的计算是关键。只要有一个或两个(或多个)数据源停止发送数据,这种系统不能中断该数据流。在这种情况下,重要的是控制该流水线的数据流,以在中断另一数据源时维持从一个未中断的数据源提供的输出数据的正确相位。
重要的是,在诸如HDTV系统的数据密集的图象处理系统中该数据时钟不被停止。在这种系统中,诸如压缩和解压缩子系统的某些部件具有不同的输入和输出数据处理要求和不同的数据速率。例如,用于显示的解压缩的输出象素必须连续地输出,因此要求一个连续的时钟,但是在一个时钟不存在的时候,要解压缩的压缩的输入数据可以以空间隔(nullinterval)零散地到达。如果在输入数据不存在的时候该解压缩的时钟被停止,则解压缩的象素数据时钟同步输出也停止。在数据密集的高清晰度的图象处理和显示系统中这是破坏性的。因此如所要讨论的,在某些情况下重复数据是有利的,尤其是在解压缩过程中使用霍夫曼译码时。
在所揭示的系统中,对压缩网络(图20)的输出进行霍夫曼编码。霍夫曼译码与在一个译码器的解压缩有关。由于不同的编码的字长度,霍夫曼编码/译码是一个具有不同的输入和输出数据速率的统计过程,因此使用缓冲器适应可变的数据内容。
如参照图23和24所看到的,在由一个寄存器的流水线序列处理来自不同的数据源的数据时,使用来自每隔一个寄存器的反馈保持一个(来自第一个数据源的)数据分量流经该流水线,同时(来自第二个数据源的)其他数据分量对其自身进行重复。利用这一技术,采用来自数据源的交错的数据,在一个数据源已经停止提供数据的时候,可以以一个需要的预计的速率通过该流水线处理数据。
重复数据等价于停止该数据时钟,但没有启动-停止的同步问题。使用重复的数据最好是不使用数据(即空数据),因为在恢复延时中常常丢失数据周期。重复数据对于保持数据流的完整性是重要的,并且不象不发送数据一样是破坏性的。
该数据重复过程可以在一个8×8象素块的期间(64个时钟周期)重复数据,而不引入系统的复杂性。根据系统的性质以及有关的处理,较长的重复延迟也是可能的。比如,在象素预测处理期间,多达6个块将存储在存储器中。在这种情况下,在一个数据源被破坏的情况下,一个块可被有效地保持(重复),而同时从存储器中获取其他的块。预计可容许在1个或2个宏块的间隔上重复延迟。
在出现一个数据源被破坏的情况下,重复数据最好是加入空数据,因为处理空数据是低效率的。象其他数据一样,空数据存储在存储器中,从一个空数据情况下恢复是浪费时钟周期的,即除去空数据之后重新加载有效数据。在诸如高清晰度电视系统的数据密集系统中这是重要的考虑,其中存储器带宽是非常重要的,应当尽可能地减少数据处理所要求的时钟周期数目。
在图23中,输入流水线分别从各个数据源,例如从诸如图1的帧存储器60的存储器中的各个单元,传送数据X和Y。数据X和Y是相互独立的,并且没有特定的顺序,即它们可以是或不是交错的,并且表示从存储器请求的任一象素数据。在这一例子中,X和Y数据分别表示由运动补偿网络(图1)使用的前进和后退运动信息。即使Y数据不存在,也必须处理X数据,反之亦然。
图23的电路从存储器60传送数据到图1的解压缩器网络80-84,并且很好地适应MPEG处理。可产生一个MPEG编码的P或B图形,但可能发生一个给定的宏块可能不具有一个或其他用于处理的前进或后退数据。图23的装置识别这一可能性。
对于一个数据块,输入FIFO缓冲器332和334与每一个输入有关。在这一例子中,缓冲器332和334表示图1的每一解压缩器80,82和84的输入缓冲器。每一缓冲器在适当时候(例如响应涉及单向对双向预测的处理)发送一个信号Req,通过存储器控制器134从存储器请求数据,并且接收表示一个数据可用于发送的一个返回确认信号Ackn。如所公知的,数据读取/写入控制信号控制存储器源和缓冲器之间的数据流动。
响应CLK/2数据时钟,通过多路转换器336在一个共用的数据线上对输入X,Y数据进行多路转换,在多路转换器336的输出端产生一个交替的X,Y数据的流水线。通过一串行的反馈寄存器部分360和364处理来自多路转换器336的数据。所使用的寄存器部分的数量是交错的数据单元的数量的函数,在这一情况中,是两个寄存器部分。部分360包括一个输入多路转换器338和串联的寄存器(触发器)340和342,如图所示的。每一个寄存器单元由CLK信号以81MHz进行同步。寄存器部分364也类似地安排。最后一个寄存器单元350的输出施加到图1的数据解压缩网络,后者解压缩包括前进和后退的运动预测信息的数据。一旦该解压缩器接收到数据,将对该数据解压缩。解压缩器一直等待,直到填充了X,Y缓冲器。在每一个寄存器部分,从该寄存器部分的最后一个寄存器的输出端反馈到该相关的多路转换器的切换控制输入端,即从寄存器342的输出端到多路转换器338的“1”输入端。由反馈寄存器部分360和364构成的网络作为一个选择性的具有两种工作模式的数字取样和保持网络进行工作。在一种模式中,对数据进行取样和保持以产生数据重复操作。在另一个模式,正常地没有重复地传输数据。
单元356,例如数字比较器,读取Req和Ackn信号线的状态。如果一个FIFO缓冲器产生一个Req信号,并且没有从该存储器源接收到一个返回Ackn,则单元356产生一个为“1”电平或“1”状态的数据Halt(停止)信号。在该Halt信号为“0”状态时,数据正常流经该流水线,但是在Halt信号是“1”状态时,将如下面所解释的,对数据进行重复。在没有从一个特定的输入端接收到一个Ackn信号时,该Halt信号使得在每一个寄存器部分重复或循环该最后一个有效数据分量。这通过图24的波形而示出,如下面将要讨论的。如果没有从X和Y输入数据源接收到一个Ackn信号,停止该时钟,并且没有数据循环。
从而在该Halt信号为0电平时,数据正常流经该流水线,以正确的交错的(时钟)相位关系保持输入数据X和Y,使得该同步时钟输出的数据在数据源X数据和数据源Y数据之间交替。这一相位关系对于防止混合数据是重要的。在这种情况下,每一寄存器部分的输出数据(例如在寄存器342和350的输出端)对应于两个时钟前的输入数据(即输出=输入(Z-2)---Output=Input(Z-2))。该Halt信号为1电平时,该相关的多路转换器(338或344)将该输入信号从该输出端解耦合,使得每一个寄存器部分简单地循环数据。这些操作状态由图25和26分别示出。
图24示出了这样一种状态,例如只有在来自Y数据的数据源的某些数据已停止时,该Halt信号才为1电平。在该Halt信号为活跃的同时,循环(重复)使用该Y数据,直到该Halt信号返回到通常的0电平,并且Y数据再次流动。在这一期间,来自数据源X的数据无中断地流动。在图24中,该输入波形包含X和Y数据分量的一个交错的序列。在这一例子中,对于接着分量X2的Y2分量还没有接收到一个Ackn信号。因此,单元356的Halt信号的通常的“0”状态转换为“1”状态,使得每一个寄存器部分360和364重复该最后一个有效的Y分量,在这种情况下,是Y1分量,只要该Halt信号为“1”状态。该Halt信号连接到多路转换器238和244的控制输入端,从而该Halt信号的“1”状态使得每一个多路转换器传送连接到其“1”切换输入端的信号,在这种情况下,是Y数据分量。
输入信号波形的阴影部分表示该丢失的Y2分量,即在分量Y1之后,该第二数据源不发布Y分量。对于三个Req/Ackn周期重复该Y1分量,据此产生三个Halt信号,并且重复分量Y1三次,如在图24的输出波形中所示出的。以后,对于分量Y2,第二数据源产生一个Ackn信号,其出现在跟随数据分量X5的输出波形序列中。
该Halt信号也被提供给所相关的解压缩器网络的控制输入端,以指示该解压缩器忽略该数据流中所重复的数据。如前面所描述的,交错的X,Y数据分量是独立的,不需要在任一特定(数字)的序列中彼此相随。需要的只是与一个给定的输入相关的数据沿着一个规定的序列,例如X5跟着X4,X4跟着X3,X3跟着X2,等等。而例如Y2跟着X5是没有什么后果的。
图28描述了图23的安排为用于并行操作的网络。将来自多路转换器336(图23)的交错的输入数据通过多路转换器285和286提供给并行的寄存器280和282,寄存器280和282的输出通过多路转换器284被多路转换到一个数据输出路径。该多路转换器284,285和286的操作由Halt1和Halt2控制信号进行控制,该控制信号与各个数据源有关,并且产生如结合图23所描述的效果。
权利要求
1.一个在用于处理包含表示图象象素数据的MPEG兼容的压缩的信息的一个数据流的系统中的MPEG兼容的译码器,包括一个解压缩器(14,18,22),用于从所述数据流在一个输出产生具有一个第一格式的解压缩的数据;一个帧存储器(60),用于向一个显示处理器提供最终译码的象素数据;以及一个运动补偿网络(90),其连接到所述解压缩器的输出和所述帧存储器,用于产生最终译码的运动补偿的象素数据;其中所述运动补偿网络还包括一个数据缩减网络,该数据缩减网络包括(a)用于产生具有一个第二格式的下采样的数据的一个下采样网络(36),(b)用于将来自所述下采样网络的数据以一种基本上与所述第一格式兼容以及与一个再压缩网络使用的一个再压缩算法兼容的格式放置的一个重定序网络(43),以及(c)一个再压缩网络(40),其响应来自所述重定序网络的重定序的数据,该再压缩网络的一个输出连接到所述帧存储器。
2.一个处理表示图象象素数据的MPEG编码压缩的信息的一个数据流的方法,所述方法包括用于产生最终译码的象素数据以由一个显示处理器进行处理的MPEG兼容的译码方法,所述译码方法包括步骤解压缩所述数据流以在一个输出产生解压缩的数据;从所述解压缩的数据导出最终译码的运动补偿的象素数据;其中所述导出步骤包括进行下采样以产生下采样的数据的步骤,进行重定序以产生与由一个再压缩步骤使用的一个再压缩算法兼容的重定序的数据的步骤,以及再压缩所述解压缩的数据以产生数据缩减的信息以存储在帧存储器中的步骤;以及所述解压缩的数据具有一个第一格式,所述下采样的数据具有一个第二格式,以及所述重定序的数据具有基本上与所述第一格式兼容的格式。
全文摘要
在一个高清晰度的电视接收机中的一个MPEG译码器(14,18,22)译码和解压缩MPEG编码的数据以产生解压缩的图象象素块,并且包括连接到一个帧存储器(60)的运动补偿网络(90…)以产生最终的译码的象素数据用于显示。在将解压缩的MPEG数据存储到帧存储器之前由多个并行的再压缩器(40,42)对之进行再压缩。每个再压缩器接收一个交错的象素数据数据流(24,27;图5)并且在每一时钟周期期间分别预测和压缩交错的象素值(a,c)(图20,27)。在再压缩之前对象素数据进行子采样的时候,在一个数据缩减的处理模式中对一个再压缩器(42)撤去电源。在再压缩之前将子采样的数据进行重排序(43)。连接到帧存储器的多个并行解压缩器(80,82,84)将象素数据提供给运动处理网络。一个控制单元(356,360,364,图23)在数据源被中断的时候通过重复最后一个有效数据确保将一个未被中断的交错的数据流提供给解压缩器。
文档编号H04N7/46GK1496130SQ0314589
公开日2004年5月12日 申请日期1997年12月15日 优先权日1996年12月18日
发明者M·A·舒尔茨, M A 舒尔茨, G·A·克拉纳维特, 克拉纳维特 申请人:汤姆森消费电子有限公司