低功率高速度“运动图象专家小组”变长译码器的制作方法

文档序号:6410737阅读:123来源:国知局
专利名称:低功率高速度“运动图象专家小组”变长译码器的制作方法
技术领域
本发明涉及到被压缩数字数据的恢复,特别是涉及到用于对变长编码的数字信号进行译码的装置和方法。
电视信号的数字发射可以发射比模拟信号质量好得多的视频和音频服务。对于通过卫星向电缆电视联播台和/或直接向家庭卫星电视接收机进行广播的信号,这种数字发射方案是特别有优点的。下面所述是期望的,即当数字小型盘已经大量取代模拟唱机记录时,数字电视发射机和接收机将取代现存的模拟系统。
在任何一个数字电视系统中,必须发射基本数量的数字数据。在一个数字电视系统中,用户经过一个向用户提供视频和音频数据的接收机/去扰频器接收所述数字数据比特流。为了最大限度的利用可以得到的射频频谱,数字电视信号必须被进行压缩,以使得被发射的数据量最小。
电视信号的视频部分包括一系列共同提供运动图象的视频“帧”。在数字显示系统中,一个视频帧的每一行是由一系列被称之为“象素”的数字数据规定的。需要用大量的数据去规定一个电视信号的每个视频帧。例如,在国家电视系统委员会(NTSC)决议中规定,需要7.4兆比特提供一个视频帧。这假设使用的是具有用于红、黄和蓝等主要颜色中每一种的8-比特强度值的640×640象素行的显示器。高清晰度电视基本上需要更多的数据去提供每个帧。为了管理特别是用于HDTV的这些数量的数据,所述数据必须被压缩。
最近,对于在视频技术、视频电视会议的应用和/或多媒体的应用中的全运动频提出了如下要求,即在计算机系统的基础上引入用于运动视频的标准。这种应用需要研制一种压缩技术,这种压缩技术可以与和使用当前通信硬件发射的可管理长度的声音一起再现一个运动图象。
变长编码是一种经常用于无损耗数据压缩的编码技术。根据这种技术,视频数据的8×8个象素被转换成离散余弦变换(DCT)系数。然后,利用一个量化因数对DCT系数进行量化。量化后DCT的系数被进行霍夫曼(Huffman)编码,以形成霍夫曼代码字。这样一种包含在所述比特流中的视频数据的编码通常被用于构成一个用于已知数据典型统计量的最小冗余变长码。通常,对代码字的长度进行选择,以使较短的代码字被用于表示比较频繁发生的视频数据,而较长的代码字被选择用于低频发生的视频数据。
为发射或存储目的而使用霍夫曼编码对运动图形视频图象进行压缩的一个标准是已知的运动图形专家组(MPEG)标准。所述MPEG标准是一个关于运动视频图形和音频的压缩和通信的国际标准。所述MPEG标准允许全运动视频图象被以每秒30帧(fps)或每秒60场的速率进行发射。所述MPEG允许运动图形视频相应的高质量声音一起被压缩并提供诸如单一帧优先、反向运动和静止帧视频等其它特性。
所述MPEG视频比特流的译码和处理对于任意一个MPEG译码系统的性能来讲都是特别关键的。被压缩MPEG的视频比特流包含有重新构成所述音频和视频数据所需的各种参数。所述MPEG比特流可以很容易地被分成两个比特流,即音频和视频。
当前存在有两种已经被标准化MPEG的视频标准。通常被称之为MPEG1和MPEG2标准。一般来讲,MPEG2标准MPEG比标准具有更高的分辨度并且能够处理更多的功能。所述MPEG视频比特流由一些视频参数和一些实际被压缩的视频数据组成。


图1A和图2B示意性的示出了所述MPEG1和MPEG2标准的视频比特流的层结构。所述MPEG1标准包括一个顺序层1a,扩展和用户层1c、2b和3c,一个图象层组2a,一个图象层3a,一个片层4,一个宏模块层5a,一个模块层5b和顺序层1b的一端。另外,NPEG2标准包括一个顺序扩展层1b和图象编码层3b。这些MPEG1和MPEG2的层结构规定了所述视频数据的整个发射。
所述顺序、顺序扩展以及图象组等的标题层都包含有实际图象的参数。所述宏模块层5a和模块层5b含有实际图象的实际视频数据。在所述宏模块层5a之前的所有标题层都含有模块层5b的数据所需的初步信息。顺序层1a规定正在被传送的图象的尺寸。例如,用于一个电视(TV)的图象尺寸是固定的,同时,在诸如计算机方面的应用中,所述图象的尺寸是变化的。所述顺序层1a经常是不必进行传送的,只有当诸如图象尺寸的顺序参数中的一个需要进行修改时才进行传送。
顺序扩展层1b是所述MPEG1的稍后修改本并允许使用更多的比特去规定较大尺寸的图象。在MPEG1中的比特数量仅允许一个图象的尺寸达到某个限制。利用该顺序扩展层1b,MPEG2允许规定诸如高清晰度电视(HDTV)的较高分辨度图象的尺寸。例如,MPEG1的顺序层1a使用12比特去规定例如水平尺寸的图象尺寸。在美国,在数字电视中尺寸,所述水平尺寸是720个象素,而在HDTV中所述水平尺寸增加到1440个象素。MPEG1的顺序层1a对于规定这种尺寸是不够的,顺序扩展层1b的附加比特被用于规定HDTV的图象尺寸。
扩展和用户层1c、2b和3c被用于去包括一个与实体自己应用相关的数据。换言之,无论是谁编码的数据都可以被放置在位于所述视频比特流中的这个附加用户数据上。这个数据可以被用于、例如将一个特殊的公司标志放置在将要被显示的图象上。所述扩展和用户层1c、2b和3c不是必须的,并且可以如箭头所示的那样被从所述顺序层1a到图象层2a的跳过。
所述图象层组2a规定一个特定区域中的一个或多个图象。例如,图象层组2a可以规定有多少个图象要经过整个电影或一个视频顺序。图象层组2a还允许所述视频分级结构的分类。由于该图象层组2a不是必须的,MPEG2允许这个层被跳过到图象层3a上,该图象层3a包括一个实际图象帧的数据。在所述NTSC标准下,需要每秒30个图象帧。但是,就每个图象组中图象的数量而言,这并不是一个上限。
片层4允许所述图象被分解成多个不同的区域或片。这可能是构成一个整个图象的一个图象片,或者是多个片。例如,每个宠模块,或16×16个象素区域,或所述图象多个宠模块的相互结合都可以包括一个片。当检测到一个误差时,这种图象的分解便于所述图象的恢复。
假如图象没有被分解成多个片并且检测到一个误差,那么,由于在产生下一个图象之前不可能从所述误差中恢复过来,所以,该误差会使整个图象失真。通过将图象分解成多个片,当接收到该图象的后续片时,可以实现误差的恢复。可能仅存在有一个图象坏区域,但是,整个图象没有受到损失。由于只有一个较小的区域而不是整个的图象被掩蔽,所以,可以在一个片的基础上很容易地对该错误掩蔽进行处理。
宏模块和模块层5a和5b包括用于显示屏幕的实时数据。一个宠模块层5a包括数据的6个子模块。但是,显示屏幕所需的数据需要处于各种格式之下。例如,在计算机中,RGB(红、绿、蓝)格式被用于在屏幕上显示图象。在TV中,亮度,色度蓝和色度红是需要的。MPEG1和MPEG2使用这些数据格式在显示屏幕上形成图象。所述亮度信号规定一个象素的亮度,色度蓝和色度红提供用于显示屏幕的颜色。数据的4个子模块被指定给亮度信号,一个子模块被指定给色度红信号,和一个子模块被指定给色度蓝信号。
另外,数据的每个子模块具有需要所述屏幕上8×8个象素的信息。因此,所述宏模块层5a包含有用于在屏幕上显示图象的64个系数。在宏模块5a被传送以后,含有用于在屏幕上图象的视频数据的模块层5b被包括MPEG2在之中。
另外,由于所述宏模块层和模块层不具有开始码,所以,它们不同于其它的层。在每个层中都包括有开始码,用于识别位于MPEG1或MPEG2的层中的数据。有关开始码的详细描述可以在申请日为1995年11月22日、发明名称为“高比特速率开始码的检索和检测电路”的美国未公开专利申请No 08/561.756中获得,该文献在此一并作为参考。在MPEG1或MPEG2的数据比特流中不能很容易地检测到所述宏模块和模块层。因此,了解所述宏模块层和模块层存在的唯一途径是所述宏模块层直接跟在一个片层之后,而在宏模块层之后紧跟着的是所述模块层。
MPEG2标准还包括一个图象编码层3b。该编码层3b类似于顺序扩展层1b。在MPEG2中,可以得到用于在屏幕上显示图象的各种格式。这些格式允许所述图象的不同部分被进行显示。例如,由于不同的纵横比而使得电影屏幕比电视屏幕大得多,因此,在电视上显示的一个电影的图象帧的侧面被切掉。使用图象编码层3b,可以规定切掉该电影侧面的数据。
对任意一个MPEG编码的视频比特流进行译码的最初步骤是提取参数和视频数据。某些设计使用一个内部中央处理模块、即CPU芯片去检测所述顺序层和顺序扩展层等。但是,另外的一些设计使用了公知的变长译码器(VLD)。所述VLD的主要功能是去分析所述MPEG视频比特流和提取所有参数和视频数据。这些参数和视频数据被陆续提供给其它电路,这些电路然后可以再现所述视频图象帧。
例如,任意一个MPEG视频比特流的最高等级是所述的顺序层。因此,所述VLD必须在任意一个视频数据能够被译码之前检索和检测一个顺序层。所述VLD还必须能够通过所述顺序扩展层的存在与否自动检测所进入的比特流是MPEG1还是MPEG2。这些任务应当被尽可能快的完成并且具有很高的可靠性。再有,由于所述VLD仅是一个视频译码系统的一部分,所以,由所述VLD消耗的功率量对于整个系统的性能来讲是至关重要的。
在授权给Pollmann等人的美国专利No5.233.348中披露了一种作为霍夫曼译码器的现有技术,该技术将在图2中予以描述。所述霍夫曼译码器10的目的是将从一个编码器中接收的变长代码字解译成DCT系数以用于变换成视频数据。霍夫曼译码器10从视频先入-先出(FIFO)寄存器12中接收数据的比特流。视频FIFO寄存器12在8比特总线上输出所述比特流给霍夫曼译码器10。从传统的时钟电路14中同步输出14.6MPa时钟(“DA--TA_CLK”)和29.3MHz时钟(“DATA_2xCLK”)。
为了保证由霍夫曼译码器引起的误差不被无限制地扩散,利用一个用于每人宏模块层的同步电路16复位所述译码器。所述宏模块复位信号(“MBRESET”)是当所述霍夫曼译码器未被使能时在正在被处理的视频信号的水平消隐间隔期间内通过所述同步电路提供的。当在所述霍夫曼译码器中检测到一个误差时,一个霍夫曼误差检测信号(“HUFF_ERR”)将被输出给所述同步电路16。同步电路16向霍夫曼译码器10提供一个行同步(“LINE_SYNC”),该行同步被用于通知所述霍夫曼译码器10第一个比特已经为读出作好了准备。
图3是所述霍夫曼译码器10的更加详细的方框图。霍夫曼译码器10从一个视频FIFO寄存器12(例如,VRAM或DRAM)中接收需要被译码成视频数据的霍夫曼代码字。所述代码字被输入给一个输入滚筒式移位器和缓冲器20(图2)。所述输入滚筒式移位器的功能是从视频FIFO引入变长数据并将它传送给一个译码器ROM22的地址端口。该ROM包含有代码字转换所需的所有信息。
依据当前状态和从所述ROM中读出的数据而进行的数据选择是由主控状态计算机(machine)36控制的。对于大多数代码字而言,数据在一个时钟周期内根据由输入滚筒移位器20提供的代码字被进行译码之后锁存在数据多路转换器24之中。在代码字正在被译码的期间内,在在前时钟周期处被锁存的数据经过一个被用于对所述数据进行再规格化的逆量化滚筒移位器28被转换成与其编码前等效的幅值。在逆规格化以后,利用电路30将所述数据从符号量值转换成两个分量,并被输入给3到1多路转换器32,以用于输出给缓冲器34。
整个视频译码系统的性能和所述变长译码器的性能是直接相关的。因此,VLD的设计对系统的正确运行是极为重要的。所述VLD必须能够在很短的时间内分析非常大数量的视频比特流以便在低功率损耗的情况下产生每秒30个视频数据全帧的视频输出。
对于HDTV信号的数字发射来讲,这种高速度需求是至关重要的。在这种HDTV系统中,总的取样速率(结合亮度和色度信号)大约是100MHz。如果使用变长编码,最大长度的代码字通常是16个字节。因此,逐比特译码器将需要以取样速率的16倍、或每秒1.6兆比特进行移位,从而,以所述取样速率检测是代码字。
由于霍夫曼译码器和其他用于变长的设计具有很高的功率损耗和/或很低的输入比特速率,所以,它们有很多的缺点。对于高速译码器来讲,这种设计是不可取的。例如,用于VLD的这些设计经常需要使用两个或多个滚筒移位器,而这些移位器需要一个很大的区域且其性能方面又很慢。其它的一些设计使用内部存储器,而这些内部存储器的性能也很慢。这些现存的设计需要768或152个时钟周期去译码一个宏模块,这将在复杂视频比特流方面引起性能问题。
本发明的一个优点是增加了用于对包含有编码视频数据的比特流进行译码的视频显示系统的可靠性。
本发明的另一个优点是减少了在一个视频系统中使用的电路的功率损耗。
本发明的再一个优点是改善了视频显示系统中的误差检测和恢复。
本发明的还一个优点是减少了在视频显示系统中使用的电路的选通计数(gate count)。
根据本发明,前述和其它的优点部分的是通过一个变长译码器实现的,该变长译码器包括一个耦合到标题分析器上的比特流馈给器、一个模块数据译码器和一个控制电路。响应一个比特请求信号,一个64-比特的比特流被从一个存储装置输入给比特流馈给器。该比特流馈给器包括向所述标题分析器32-比特比特流的一个滚筒移位器、一个模块数据译码器和一个控制电路。标题分析器或模块译码器向比特流馈给器输出一个尺寸值,该比特流馈给器表示所使用的来自所述32-比特比特流的比特数量,以对包含在所述标题层中的参数或包含在MPEG宏模块和模块中的视频数据进行译码。比特流馈给器丢掉被使用过的比特,并输出包含有未使用过比特的新的32-比特比特流和取代被使用过比特的新比特。
标题分析器检测MPEG层的开始码并对包含在编码比特流中MPEG层的参数进行译码。所述参数在PARAMA总线上被输出,并且,标题分析器还输出一个PARAMA信号,用以表示正在PARAMA所述总线上输出的参数类型。另外,标题分析器对8×8个象素数据的量化因子进行译码,该量化因子被转换成64个DCT个系数。一旦根据所述比特流对片层的数据译码完毕,标题分析就输出一个信号以使能模块数据译码器。
所述数据译码器包括一个宠模块译码器和一个模块译码器。宏模块译码器输出一个header_start信号,并驱动所述模块译码器。模块译码器包括一个代码表,用于根据在所述比特流中的预定数量比特的二进制模式译码在6个模块层中每一个层内的被编码的64个系数。在384个时钟周期内,所有的6个模块层都要被译码。
控制电路监视所述比特流馈给器、标题分析器和模块数据译码器的功能。控制电路响应一个开始信号初始化变长译码器的操作。当在标题分析器和模块数据译码器中产生误差时,控制电路确定这个误差是致命的还是非致命的。如果是非致命的,变长译码器校正所述误差,然后继续所述比特流的译码。如果是致命的,在电路被复位,标题分析器检索下一个有效开始码。另外,如果该变长译码器正在以比芯片其它外部电路快的速度处理数据,那么,控制电路在外部电路赶上变长译码器之前暂停译码操作。
本发明的其它优点、目的和其它的特征将在下述的描述中部分地表示出来,并在下面解释例子的基础上对本专业技术领域以内的技术人员部分的变得更加明显,同时可以从本发明中学习到。本发明的目的和优点可以通过如下面特别表示的权利要求实现和获得。
下面将结合附图对本发明进行详细描述,在所述附图中,相同的标号表示相同的元件图1A和1B描述了MPEG1和MPEG2的视频比特流层的结构;图2示出了一个现有技术的变长译码器(VLD);图3详细地示出了图2中所示的VLD;图3示出了根据本发明的VLD;图5详细地示出了图4所示的比特流馈给器;图6A详细地示出了图4所示的标题分析器;图6B简单地示出了图6A的分析器;图7A详细地示出了图4所示的模块数据译码器;图7B示意性地示出了图7A所示的模块译码器;图7C是包含在图7B所示游程长度译码器中的代码表的例子;和图7D示出了当比特流“00100011010100000101……”被译码时,所述模块译码器的操作。
执行本发明的最佳形式当被编码的比特流被电视、计算机等接收时,微处理器将被编码数据的比特流存储在一个存储装置中。为了对包含在所述霍夫曼代码字中的比特流进行译码,VLD将一个请求信号传送给微处理器。图4示出了根据本发明的VLD100的结构,该VLD100包括耦合到标题分析器300的比特流馈给器200、模块数据译码器400和如所示彼此连接的控制电路500。
控制电路500响应各种输入控制信号对VLD100的运行进行控制。响应来自外部构件的STARDVLD信号,VLD100启动译码处理和向比特流馈给器输出一个信号,比特流馈给器向微处理器输出一个1-比特BITREQ(比特流请求)信号以使其将来自所述存储装置的64-比特的比特流输入给比特流馈给器200。
响应一个VLDSYNC(VLD同步)信号,VLD100将译码后的数据输出给显示装置。T1和T2是两个包括2-相位时钟的时钟信号。所述2-相位时钟被用于减少在VLD100内竞争状态的概率。如果VLD100的数据处理快于其它的电路,那么,一个VLDWAIT(VLD等待)信号将根据译码操作的进程暂时中止VLD100。当其它电路已经准备好时,外部CPU解放VLD100以继续译码操作。
当RESET信号被激活时,它将复位VLD100并结束译码处理。所述VLD返回到等待和检测所述顺序层的最初状态。当产生一个非致命误差时,NERROR信号将被激活;而当时产生一个致命误差时,RERROR信号将被激活。所述非致命误差不影响其它比特流的译码。例如,所述非致命误差是一个时间戳方面的误差,而所述时间戳对于所述比特流的译码根本是不需要的。图形的尺寸为零是一个致命误差,因为这样的图形根本就不存在。控制电路500、标题分析器300和模块数据译码器400被彼此相互耦合,从而使得以彼此适当的误差信号去传送。每个被检测到的误差。
由于所接收的比特是被变长编码的并且对数据的参数和象素译码所需的比特数量是未知的,所以,所述比特流馈给器输出编码数据的32-比特比特流给控制电路500、标题分析器300和模块数据译码器400。如果标题分析器300或模块数据译码器400使用来自编码数据的32-比特比特流中特定数量的比特,那么,标题分析器300或模块数据译码器400向比特流馈给器200传送一个6-比特值以表示这个特定数量。此后,比特流馈给器从最高有效比特移出被使用过的比特并在最低有效比特入新的比特。这个新的32-比特比特流然后被输出给标题分析器300和模块数据译码器400。
例如,标题分析器300将32比特比特流的较高4个比特译码成在顺序层中的编码图象尺寸参数。标题分析器300在6-比特总线上将植4传送给比特流馈给器,以表示较高的4个最高有效比特已经被使用。作为响应,该比特流馈给器移出所述较高的4个比特,并在下一个时钟周期期间使用具有新的4个较低比特的剩余28个比特。
比特流馈给器200把所述4个新的比特从剩余的64-比特比特流中移入到较低4个比特位置处,并且向控制电路500、标题分析器300和模块数据译码器400输出另外的32-比特比特流。在所有64-比特被译码完毕之前,编码数据比特流的这个移位一直重复进行。此后,比特流馈给器向所述微处理器输出一个1-比特BITREQ(1-比特请求)信号,以向所述比特流馈给器输入另外64-比特比特流。
标题分析器300包括一个开始码监视、检索和检测电路。根据开始码的检测,标题分析器300从作为输出PARAMD(参数数据)和PARAMA(参数地址)信号的编码比特流中提取所有显示参数。在8-比特总线上的PARAMA信号表示正在PARAMD总线上输出的是哪一种类型的参数。
例如,如果PAMAMA信号的值是零,那么,PARAMD数据是水平尺寸,该PARAMD数据被传送给显示装置或系统的其它电路。类似的,如果PARAMA信号的值是,那么,在PARAMD总线上的参数是垂直尺寸。PARAMA和PARAMD总线的这种配置减少了在VLD和所述芯片和显示装置/系统的其它部分之间所需的互联。这些显示参数被包含在标题之中,并每个时钟周期被译码一个参数。
标题分析器300还能译码和输出包含在32-比特编码比特流中的多个量化表,以在8-比特总线上输出QUANT信号。该QUANT信号被下加载到一个量化模块(未示出)上,以形成包含有用于64个象素的8×8个表。所述量化表包括与压缩比相关的多个量化因子。然后,每个模块中图象数据的64个系数被乘以量化表中的相应因子。在1-比特总线上输出的QMSYNC信号表示标题分析器30O正在QUANT总线上输出量化数据。
标题分析器300还可以检测任意一个非法参数值并通知控制电路500和模块数据译码器400产生了误差。例如,如果在利用模块数据译码器400在对宏模块和模块层译码期间检测到一个开始码,那么,标题检测器300将检测到这个误差,并输出一个相应的信号给模块数据译码器400去中止译码。标题分析器300将把这个误差标记给控制电路500,该控制电路500确定所述误差是致命误差还是非致命误差。如果是非致命误差,模块数据译码器400重新启动译码。如果是致命误差,控制电路500复位VLD并去检索下一个有效开始码。
在标题分析器300检查了所述片层的比特流之后,该标题分析器300向模块数据译码器400输出一个相应的信号,用于表示包含有宏模块层法定数据的比特流一直被从比特流馈给器200中送出。模块数据译码器400从所述编码比特流中提取视频数据。包含在所述比特流中的视频数据是霍夫曼变长编码的数据。模块数据译码器400包含有一个用于处理这些变长代码字的代码表。这些代码表中的每一个都是根据组合逻辑设计的,从而使得模块数据译码器的操作相对较快。所述代码表示任意一个非法的或有毛病的代码字。这个有毛病代码字的检测在后被用于误差掩蔽。
模块数据译码器400每个时钟周期检测一个霍夫曼代码字。每当模块数据译码器40被使能时,一个宏模块被完全处理。一个宏模块含有6个视频数据模块。一个模块含有表示64个图象数据系数的数据。由于霍夫曼编码,少于64个的霍夫曼代码字可以被包含在用于一个模块层的比特流中。换言之,一个霍夫曼代码字可以表示多个系数。模块数据译码器400将重新构成所有的64个系数。
即使在所述模块中的每个系数的值都为零,模块数据译码器400每个时钟周期也要在12-比特总线上输出一个系数作为VIDEO信号。除非检测到一个误差,模块数据译码器400总是精确地使用384个时钟周期去处理数据的一个宏模块,而不考虑所述系数的实际值。如果在宏模块和模块层被译码之后检测到其它的开始码,模块数据译码器400向标题分析器300输出一个信号,用于表示所述宏模块层的译码已经完成。模块数据译码器400还输出一个垂直同步(VSYNC)信号,该信号在TV中通常被用于表示视频开始。
图5详细地示出了比特流馈给器200。响应BITREQ信号,存储装置(未示出)将64-比特编码比特流输入给比特流馈给器200。在最初的时钟周期(即时钟周期1)期间内,较高的32个有效比特,即比特[63∶32]被提供给选择器202的Input-0端并存储在寄存器204中。较低的有效比特,即[31∶0]被存储在寄存器206中,在时钟周期2期间,从寄存器204中输出比特[63∶32]并存储在寄存器208中。另外,来自寄存器206的比特[31∶0]被提供一个Input-1并被存储到到寄存器204中。
虽然总的64个比特被存储在寄存器204和208中,但最低有效比特
被丢掉,和63个比特输入给63到32比特滚筒移位器210。根据在5-比特总线上的移位值,滚筒移位器210输出含有来自寄存器204和/或寄存器208的比特的32-比特比特流。如果移位值等于零,那么,32-比特比特流输出包括31个较低比特[62∶32]和多个比特,即比特[62∶30]中的一个较高比特[31∶0]。
如果在时钟周期N处所述移位值等于32,那么,一个BITREQ信号被送出,并且一个新的64比特比特流被输入给比特流馈给器200。在时钟周期1期间存储在寄存器208中的比特[63∶32]被丢掉,和比特[31∶0]被移入寄存器208。新比特流的较高有效比特[63∶32]被输入给寄存器204。较低有效比特[31∶0]被存储在检测器206中。在这个周期期间内,所述移位值被设置为零,并且,滚筒移位器210输出包含有寄存器208中比特[33∶0]在内的32-比特比特流。
当在时钟周期N+I处所述移位值再次达到32时,存储在寄存器208中的比特[31∶0]被丢掉。时钟周期N的比特[63∶32]被移入寄存器208。在时钟周期N期间内存储在寄存器206中的比特[31∶0]被提供给选择器202的Inout_1端并被存储在寄存器204中。所述移位值被复位到零,存储在寄存器208中的比特[63∶32]由滚筒移位器210输出。当移位值再次达到32时,一个新的64-比特比特流被提供给比特流馈给器200,并重复上述的处理。
比特流馈给器200的其余电路被用于控制上述64-比特比特流的移位。加法器212和寄存[]器214保持对移位值的跟踪。在6-比特总线上的尺寸值被从标题分析器300或模块数据译码器400中输入。所述尺寸值表示来自滚筒移位器的32-比特比特流的较高比特的数量,该滚筒移位器可被标题分析器300或模块数据译码器400使用对特定参数或视频数据进行译码。加法器212将这个移位值和存储在寄存器214中的再前尺寸值进行相加。其和值被存储在寄存器214中,并被用做与滚筒移位器210相关的移位值去输出一个来自存储在寄存器204和208中的64-比特数据的新的32-比特比特流。
虽然加法器212的输出是6个比特,但只有5个较低比特被提供给所述寄存器。由于5个比特只能表示高达31的值,所以,当所述移位值达到32时,寄存器214自动地翻转到零,即将移位值复位到零,较高的1-比特被用于使能寄存器204和208在一旦移位值达到32时移入新的数据。较高的1-比特还使能寄存器216输出一个信号去控制选择器202的选择。寄存器216的输出被反相器218反相,并存储在寄存器216中。
利用与(AND)门220将较高1-比特和寄存器216的输出逻辑与以输出一个信号去控制将所述新的数据移入寄存器206。另外,这些信号还作为输入提供给与门222。在所述移位值达到32之前,BITREQ信号不驱动存储装置去移入新的64-比特比特流。如所示,BITREQ信号是较高1-比特、寄存器216的输出和在前BITREQ信号逻辑与的结果,该信号被存储在寄存器224中。一旦移位值达到32,BITREQ信号就驱动存储装置移入编码数据的新的64-比特比特流。
图6A详细地示出了图4所示的标题分析器300。标题分析器300包括与开始码序列定序器320相连的开始码检索电路310,该电路控制多个分析器330、340、450、360、…、3nm。另外,由于所有的分析器都具有类似的电路结构,所以,图6B简单地示出了在图6A中示出的分析器3nm。
开始码检索电路310响应来自控制电路500的使能信号检索和检测所述的开始码。这种电路的例子可以在申请日为1995年11月22日、发明名称为“高比特速率开始码的检索和检测”、申请号为No.08/561.756的美国未授权专利申请中得到,该文献在这里一并作为参考。电路310从比特流馈给器200中接收320比特比特流,以确定顺序层、图象组层、图象层等的开始码是否被检测到,并输出适当的Sequence_Start、Gop_Start、Picture_Start等信号。另外,电路310输出一个表示在32-比特比特流中有多少个比特被使用过的6-比特尺寸值去检测开始码。该尺寸值被提供给比特流馈给器200以移出被使用过的比特,并且,一个新的32-比特比特流被输入给标题分析器300、模块数据译码器400和控制电路500。如果检测到一个误差,电路310向控制电路500输出一个误差信号。
如上所述,MPEG标题的标题层,即MPEG标准的顺序、图象组、图象等被以特定的顺序组织。开始码序列定序器320监视开始码的检测,以确定是否是一直在以一个适当的顺序检测由开始码电路310产生的开始码信号。例如,如果定序器320在图象组开始码之前检测到所述图象开始码,那么,定序器320就要向控制电路500输出一个误差信号EN2。如果检测到了一个适当的开始码,定序器320将产生一个适当的使能信号EN3nm去驱动多个标题分析器3nm中适当的一个。
一旦被使能,相应的分析器300nm对32-比特比特流进行译码,以输出标题层的多个参数,即PARAMD信号。由分析器3nm产生的PARAMA信号表示在PARAMD总线上输出的是哪种类型的参数。所述尺寸值表示根据用于对在PARAMD总线上的参数进行译码的32-比特比特流进行译码的比特数量。在完成对包含在编码比特流中标题层的参数译码之后,相应的分析器340输出一个完成信号DS3nm给定序器320。
例如,假定以一个适当的顺序检测到了所述的顺序开始码,那么,当开始码电路310输出一个Sequence_Start信号时,定序器320输出一个使能信号EN340给顺序标题分析器340。一旦被使能,分析器340对32-比特比特流进行译码以在PARAMD总线上输出一个水平尺寸参数,PARAMA信号表示该水平尺寸参数正在PARAMD总线上被输出。分析器340输出一个尺寸值以从比特流馈给器200中接收一个新的32-比特比特流。顺序标题分析器340然后译码和在PARAMD总线上输出垂直尺寸参数。重复上述处理以对纵横比信息参数、帧速率参数等进行译码,直到包含在编码比特流中顺序层的所有参数都被译码为止。
在完成之后,顺序标题分析器340输出一个完成信号给定序器320。但是,如果定序器320在完成之前接收了开始码(例如,Gop_Start),那么定序器320将标记一个误差信号给控制电路。反之,定序器320等待由开始码电路310检测图象组开始码以使能Gop标题分析器350。
由于所述量化因子也被包含在顺序层中,所以,顺序层的被使能驱动量化器矩阵分析器330。在对顺序层中的参数进行译码的过程中,量化器矩阵译码器对包含在编码比特流中的量化因子译码以输出QUANT和QMSYNC信号。如所能理解的那样,量化器矩阵分析器330可以是自己独立的,也可以是顺序标题分析器340的子装置。
利用开始码的适当顺序检测,多个分析器中的每一个都被驱动以对在编码标题层中的所有参数进行译码。一个根据编码比特流对片层的参数译码完毕,片标题分析器3nm输出一个Macroblock_Start信号,以向块数据译码器400表示所输入的比特流包含有宏模块和模块层的编码视频数据。作为响应,模块数据译码器400译码所述比特流以输出含有用于显示系统的象素数据的VIDEO信号。
图7A详细地示出了图4所示的模块译码码器400。模块数据译码器400包括连接到模块译码器420上的宏模块译码器410。响应来自片标题分析器3nm的Macroblock_Start信号,宏模块层译码32-比特比特流以产生Header_Start信号,并输出一个表示所述比特流被使用比特数量的尺寸值以译码Header_Start信号。一旦Header_Start信号被译码完毕,宏模块译码器410就向模块译码器420输出364个使能/时钟信号EN/CLK,以对包含在6个模块层中每个层内的编码的64个量化DCT系数进行译码。
图7B示意性地示出了模块译码器420,该模块译码器420包括一个游程长度译码器421、一个零计数器422、两个与门423和424、一个反相器425、一个或门426和一个6-比特计数器427。如上所述,每个宏模块层包含有64个DCT系数的6个模块。为了在每个时钟周期期间内对每个系数进行译码,每当施加使能/时钟信号EN/CLK时,6-比特计数器增加计数值,并且,所述EN/CLK信号还被作为VSYNC信号输出。所述计数值被提供给6-比特或门426以使能游程长度译码器421。当所述计数值达到值63时,反相器425产生适当电位的模块信号末端(Block_end),该信号表示一个模块的64个系数已经被译码完毕。对于所述宏模块层数据的6个模块重复上述操作。
游程长度译码器421包括一个代码表,用于产生12-比特值和以32-比特比特流的预定数量的二进制模式为基础的6-比特NumBits和6-比特Zero Count信号。代码表的例子示于图7C。被提供给零计数器422的ZeroCount信号产生一定数量的零,这些信号将被放置在所述值信号之前。换言之,所述ZeroCount信号表示在VIDEO总线上输出所述信号之前,作为VIDEO信号被输出的零的数量。
图7D简要地示出了当对比特流“00100011010100000101”,进行译码时模块译码器420的操作。在时钟周期1期间,前3个比特“001”与在代码表中的二进制模式相匹配,从而产生NumBits、Value和ZeroCount信号。如在图7C中的代码表所示,在所述值信号被输出之前,三个零被作为VIDEO信号输出。因此,在时钟周期1-3期间,在VIDEO总线上输出零值,并且,所述尺寸值保持为零,即同样的3-比特被用于3个时钟周期。在产生3个零以后,值3信号在VIDEO总线上被输出,并且,尺寸值3被提供给比特流馈给器200。
响应尺寸值3,使用过的比特“001”被丢掉,具有新的3个较低比特的剩余比特被提供给标题分析器300和模块数据译码器400。游程长度译码器421使较高的5个比特“00011”与在代码表中的二进制模式相匹配。如所示,NumBits、Value和Zerocount信号的值分别是5、1和4。因此,在时钟周期9处输出一个值信号1之前,在时钟周期5-8期间有4个零被作为VIDEO信号输出。尺寸值5被提供给比特流馈给器200以表示使用过比特的数量。对于64个时钟周期重复上述处理,以对来自所述编码比特流的64个系数进行译码,并对6个层中的每一层执行这种处理。因此,在364个时钟周期期间,所有6个模块层的364个系数被译码。
比起现存设计来讲,这种MPEG视频VLD具有很多优点。首先,这种VLD仅需要一个滚筒移位器和与之相结合的代码表,这允许非常快的译码速度和很小的区域要求。其次,该VLD能够检测出比特流中的序列层。然后,该VLD确定在检测出一个错位层之后,哪一个层或哪几个层对于重新启动译码是有效的。
本发明的VLD即使是在一个比特流包含有误差的情况下也能够处理任意一个MPEG编码的视频比特流。如果在所述比特流中检测到一个误差,在可能的情况下,该VLD将校正这个误差。如果这个误差是不可校正的,该VLD将确定这个误差是否是一个致命误差或者是将这个误差作为一个非致命误差而忽略掉。如果这个误差是一个非致命误差,所述VLD将继续正常译码。如果检测到一个致命误差,该VLD能够在没有任何外部控制的情况下从这个误差中恢复并检索下一个有效开始码。这样一种检测误差的方法允许很容易地进行误差检测和误差掩蔽。
所有的MPEG层都可以被译码,包括任意一个扩展数据、用户数据和量化表。当对用于每个层的比特流标题信息进行处理时,每个时钟译码一个参数,并立即输出。在参数提取之后,所述VLD具有一个设定数量的384个时钟周期,用于对视频数据的一个宏模块进行译码。这允许很容易地和MPEG译码系统同步。
上述的实施例仅仅是举例,并不构成对所述MPEG编码比特流的限制。本发明还可以应用到需要对包含有编码视频数据的比特流进行译码的很多不同的译码系统中。对于本专业技术领域内的普通技术人员来讲,可以对本发明作出很多的替换、修改和变化。
权利要求
1.一种用于对包含有参数和视频图象的视频数据进行译码的装置,包括一个比特流馈给器,用于馈给一个编码比特流;第一译码器,用于接收并译码所述编码比特流以提取所述参数;和第二译码器,用于接收和译码所述编码比特流以提取所述视频数据,其中,所述第一和第二译码器中的至少一个向所述比特流馈给器提供一个信号,以使所述馈给器丢掉来自所述编码比特流的规定数量的比特。
2.如权利要求1所述的装置,还包括一个用于控制和监视所述比特流馈给器以及所述第一和第二译码器的功能的装置。
3.如权利要求1的装置,其中,所述信号表示在所述比特流中使用的规定数量的比特,并用于对所述参数和视频数据中的一个进行译码。
4.如权利要求1所述的装置,其中所述比特流馈给器包括第一寄存器,用于存储第一预定数量的比特;第二寄存器,用于存储第二预定数量的比特;耦合到所述第一和第二寄存器上的一个滚筒移位器,用于根据所述规定的数量输出包含有部分所述第一和第二预定数量比特的编码比特流。
5.如权利要求4所述的装置,其中,所述的比特流馈给器还包括一个加法器,用于使所述规定的数量与在前周期的规定数量相加;和第三寄存器,用于存储所述相加的和,所述和被用做下个时钟期间内的规定数量。
6.如权利要求4所述的装置,其中,所述比特流馈给器还包括一个装置,用于当所述规定数量等于一个予设定值时,丢掉存储在所述第一寄存器中的第一预定数量比特和存储在所述第二寄存器中的第二预定数量比特中的至少一个。
7.如权利要求6所述的装置,其中,所述比特流馈给器还包括一个装置,用于当所述规定数量等于一个予设定值时,产生一个信号去请求用于所述第一和第二寄存器的多个新比特。
8.如权利要求1所述的装置,其中,所述的第一译码器包括用于在所述编码比特流中检索开始码并根据这个检测输出一个开始码信号的装置;用于确定是否是以预设定顺序检测开始码的装置;响应所述确定装置,对编码比特进行译码以提取所述参数的装置。
9.如权利要求8所述的装置,其中,所述第一译码器包括多个标题分析器,每个标题分析器是由来自所述顺序确定装置的相应信号驱动的,且每个标题分析器在第一总线上输出根据来自编码比特流译码的参数,在第二总线上输出表示所述第一总线上参数类型的一个信号,输出表示在所述编码比特流中被使用比特数量的所述数量,从而,每个时钟译码一个参数。
10.如权利要求9所述的装置,其中,所述第一译码器还包括一个量化器矩阵分析器,用于根据编码比特流译码用于压缩所述编码比特流的量化因子。
11.如权利要求1所述的装置,其中,所述第二译码器包括第一装置,用于根据编码比特流译码标题开始参数并输出表示在译码期间使用的比特数量的规定数量;和第二装置,用于根据编码比特流译码所述视频数据。
12.如权利要求11的装置,其中,所述第二装置每个时钟周期译码一个视频系数。
13.如权利要求11所述的装置,其中,所述第二装置包括一个游程长度译码器,包括一个以代码表为基础的组合逻辑电路,用于识别编码比特流的二进制模式,并在第三总线上输出视频数据值之前输出预先设定数量的二进制零;一个计数器,用于保持表示被译码视频系数的数量的计数值,并在所述计数值达到一个预先设定的数量之前使能所述游程译码器;和一个装置,用于确定在所述编码比特流中被使用比特的规定数量,以便每个时钟周期译码一个系数。
14.一种比特流馈给器,用于从存储装置中接收N-比特编码比特流以将N-比特比特流提供给一个装置,该装置对用于视频数据的参数和视频数据的所述M-比特比特流译码,其中,N>M,所述比特流馈给器包括第一装置,用于存储所述N-比特比特流的第一预定数量的比特;第二装置,用于存储所述N-比特比特流的第二预定数量的比特;和耦合到所述第一和第二装置上的一个滚筒移位器,用于根据一个预先规定的数量输出组成所述第一和第二预定数量比特一部分的M-比特比特流。
15.如权利要求14所述的比特流馈给器,还包括一个加法器,用于使所述的规定量和用于在前周期的规定量相加;第三寄存器,用于存储所述相加的和,该相加和在下一个周期期间被用做规定数量。
16.如权利要求14所述的比特流馈给器,还包括一个装置,用于当所述规定数量等于一个预先设定的值时,丢掉存储在所述第一装置中的第一预定量比特和存储在所述第二装置中的第二预定数量比特中的至少一个。
17.如权利要求16所述的比特流馈给器,还包括一个装置,当所述规定数量等于所述预先设定值时,该装置产生一个信号,以请求用于所述第一和第二装置中至少一个装置的多个新比特。
18.一种用于变长译码器的装置,所述变长译码器用于对与在MPEG标准中标题层参数相关的编码比特流译码,所述装置包括一个装置,用于检索位于所述编码比特流中的开始码,并根据该检测输出一个开始码信号;一个装置,用于确定所述开始码是否是按照预先设定的顺序进行检测的;和一个装置,该装置响应所述的顺序确定装置译码所述的编码比特流以提取所述参数。
19.如权利要求18所述的装置,其中,所述的译码装置包括多个标题分析器,每个标题分析器是由所述顺序确定装置的一个相应信号驱动的,并且,每个标题分析器在第一总线上输出根据所述编码比特流译码的多个参数,在第二总线上输出表示在所述第一总线上的参数类型的一个信号,并输出表示在所述编码比特流中被使用的比特数量的规定数量,从而每个时钟周期译码一个参数。
20.如权利要求19所述的装置,其中,所述的译码装置还包括一个量化器矩阵分析器,用于根据所述编码比特流译码用于压缩所述编码比特流的量化因子。
21.一种用于变长译码器的装置,所述变长译码器用于对与在MPEG标准中的宏模块和模块层的视频系数相关的编码比特流译码,所述装置包括第一译码器,用于根据所述编码比特流译码一个标题开始参数;和第二译码器,用于根据所述编码比特流每个时钟周期译码一个视频参数。
22.如权利要求21所述的装置,其中,所述第二译码器包括一个游程长度译码器,包括一个以一个代码表为基础的组合逻辑电路,用于识别所述编码比特流的二进制模式,并在第三总线上输出所述视频系数的一个值之前输出予设定数量的二进制零;和一个计数器,用于保持一个表示被译码视频系数数量的计数值,并在所述计数值达到一个予设定数量之前使能所述的游程译码器。
23.一种用于对包含有参数和视频图象的视频数据的编码比特流译码的方法,包括如下步骤a)输出所述编码比特流;b)译码所述编码比特流以提取所述参数;c)译码所述编码比特流以提取所述视频数据;d)输出一个规定量,该规定量被用于从所述编码比特流中丢掉规定数量的比特。
24.如权利要求23所述的方法,其中,所述的规定数量表示在比特流中用于对参数和视频数据译码所使用比特的数量。
25.如权利要求23所述的方法,其中,步骤(a)包括存储第一预定数量的比特;存储第二预定数量的比特;根据所述规定数量输出包括部分所述第一预定数量比特和第二预定数量比特的编码比特流。
26.如权利要求25所述的方法,其中,所述步骤(a)还包括将所述规定数量与在前周期的规定数量相加;和存储所述的相加和,所述相加和被用做下一个周期内的规定数量。
27.如权利要求24的方法,其中,所述步骤(a)还包括当所述规定数量等于一个予设定值时,丢掉所述第一预定数量比特和第二预定数量比特中的至少一个。
28.如权利要求27所述的方法,其中,所述步骤(a)还包括当所述规定数量等于一个予设定值时,产生一个信号去请求多个新的比特。
29.如权利要求23所述的方法,其中,所述的步骤(b)包括检索位于编码比特流中的开始码,并根据该检测输出一个开始码信号;确定是否是按照予设定顺序对所述开始码进行检测的;和译码所述编码比特以提取所述参数。
30.如权利要求29所述的方法,其中,所述步骤(b)还包括根据编码比特流译码用于压缩所述编码比特流的量化因子。
31.如权利要求23所述的方法,其中,所述步骤(c)包括根据编码比特流译码一个标题开始参数,并输出一个表示在译码期间使用的比特数量的规定数量;和根据编码比特流译码所述视频数据。
32.如权利要求31所述的方法,其中,步骤(c)每个时钟周期译码一个视频系数。
33.如权利要求31所述的方法,其中,步骤(c)还包括识别所述编码比特流的二进制模式,并在输出所述视频数据的值之前输出预定数量的二进制零;保持计数值,该计数值表示被译码的视频系数的数量;和确定所述编码比特流中被使用比特的规定数量,从而,每个时钟周期译码一个系数。
全文摘要
变长译码器包括连接到标题分析器上的一个比特流馈给器,和一个耦合到所述馈给器上的模块数据译码器。比特流馈给器包括一个滚筒移位器,用于输出一个32-比特比特流给标题分析器、模块数据译码器和一个控制电路。标题分析器MPEG检测标题层的开始码并译码包含在编码比特流中MPEG层的参数。另外,标题分析器译码8×8个象素数据的量化因子,所述8×8个象素数据已经被转换成64个DCT系数。
文档编号G06T9/00GK1155190SQ96119000
公开日1997年7月23日 申请日期1996年12月5日 优先权日1996年12月5日
发明者J·N·梅尔滕斯, K·I·汉 申请人:美国三菱半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1