自适应的视频解压缩的制作方法

文档序号:7565029阅读:203来源:国知局
专利名称:自适应的视频解压缩的制作方法
供参考的相关申请本文包括了与本申请共同提交的下列专利申请以作为参考“在计算机显示器上显示一个二次抽样的视频图象”、“使数字化的音频与数字化的视频同步”、“用于计算机的视频外设”以及“自适应视频解压缩”。本发明的背景本发明涉及对视频节目作压缩编码,具体地说,涉及一种用于对视频节目的连续帧进行编码的自适应的方法。
随着高分辨率彩色计算机显示器成本及处理功耗的下降,用于微机的应用之一就是视频后期制作—在编辑过程中将计算机的显示器用作监视器来显示和编辑视频图象。为了在视频编辑系统中使用微机,读取通常是磁带录像机的图象源并将其以数字的形式存储在计算机磁盘上。可以按数字的形式来编辑图象并将其写回到视频设备。视频编辑具有较大的计算与存储要求,这一点可从很容易地从视频节目的大数据量中看出—每秒30帧、每帧300,000象素以上、每个象素若干位。为了能减少数据量,可以在例如从录像带中读取视频图象数据并将该数据存储到磁盘上时对视频图象数据进行压缩。然后,在编辑或播放过程中观看时,再对视频图象数据进行解压缩。
对视频数据压缩方法的选择要在质量与数量之间加以权衡。较大规模的压缩方法虽然能减少压缩数据的数量,但却会导致低质量的解压缩图象。一般地说,要恢复解压缩图象的质量,就要使用较小规模的压缩法。数据压缩算法通常带有一个或多个可调的参数,这些参数控制着质量与数量的平衡,这些参数称为“量化因子”或“Q-因子”。
视频节目的一帧所产生的压缩数据量会随该帧特征的变化而因帧而异。在已知的先有视频压缩法中,使用一组Q因子对所编辑的视频节目的每一个片段进行编码。其结果是,易于压缩的节目素材,也就是即使在较大规模的压缩水平下也能够保持适当质量的素材所占用的数据要多于提供较好画面所需的数据。而其它难以压缩的素材,即需要进行较小规模的压缩以避免压缩赝象的素材则是按折衷了的质量记录下来的。此外,在编辑这种素材时,编辑人员只能把按相同Q因子记录下来的素材编辑在一起。
发明概要一般地说,本发明的特征在于一种在对视频解压缩时通过调整解码参数而对视频数据进行解压缩的方法。这种方法在解码时能进行实时修正以便与编码时所进行的修正相匹配。在这种方法中,经编码的视频节目包括一系列数据包。这种方法中所使用的解码器带有控制寄存器,这些寄存器存放有解码参数,而解码参数则控制着解码器所应用的解码方法。上述方法包括的步骤有按顺序获取各个数据包,视频节目的各个数据包均包括解码参数以及经编码的视频数据;以及,在获取数据包时处理各个数据包。通过将解码参数存储进控制寄存器并且由解码器根据已存储的解码参数所作的规定对经编码的视频数据进行解码,从而处理各个数据包。
最佳实施例包括下列特征。所说的解码过程包括利用作为解码参数的解压缩参数来对按压缩形式构成的编码视频节目进行解压缩。上述解压缩参数包括一个在对源视频数据进行压缩时使用的该量化因子以便形成经编码的视频节目,较大的量化因子会导致将视频数据压缩成这样的编码视频数据,即该视频数据要比用较小的量化因子来压缩源视频数据占用更多的存储空间但会产生较少的压缩赝象。通过一多路解调器来获得所要获得的数据包,该多路解调器将解码参数传送给控制寄存器并将经编码的视频数据传送给解码器的输入端子。所说的数据包还包括一数据计数,此数据计数指定数据包内编码视频数据的字数,并且,该数据计数存储在一存储寄存器内。一控制装载解码参数的状态机使用上述数据计数。每个数据包均可描述一系列隔行扫描帧的一场。
本发明的特征在于下列优点。所说的方法在与自适应的编码方法一道使用时能够在参数方面作实时的调整以便与开始压缩视频节目时所用的Q-因子设置相匹配,而所说的参数则被用于对先前压缩的图象进行解压缩。由于经压缩的图象的每一帧都包括有上述解码过程所需的全部参数,所以,可以同时使用包括有在不同时间用完全不同的编码参数集进行编码的各数据段的视频节目,并且,可以作为一个整体对该视频节目进行解码和播放。因此,可以在不破坏旧压缩数据文件的可解码性或可编辑性的情况下改变将来版本的编辑软件中的视频编码参数。
从以下对最佳实施例的说明以及权利要求中可以看出本发明的其它优点与特征。对最佳实施例的说明以下说明最佳实施例。
附1是本发明视频编辑系统操作过程中所使用的组件的概略透视图;图2是

图1中系统所使用的主计算机和外部视频插板的框图;图3是上述主计算机另一种结构的框图;图4是说明图2中外部视频插板某些特征的框图;图5是说明解隔行扫描的示意图,所说的隔行扫描是一种由图2和图4中外部插板所执行的操作;图6显示了压缩后视频数据包的格式;图7是图2中总线控制电路的框图;图8显示了数据结构,主计算机通过该数据结构与外部插板进行通信;图9是显示上述视频编辑系统操作的流程图。
概述参照图1和图2,视频编辑系统11包括外部插板10,它插在主计算机12内。其它组件包括磁带录像机(VTR)16、监视器18、键盘20、鼠标22以及海量存储磁盘24。提供视频编辑功能的软件分成两部分,一部分26在主计算机的中央处理器(CPU)28内运行,它通常提供用户界面和监控,一部分14在外部插板中运行,它通常控制着外部插板、外部插板内的数据传递以及主计算机与外部插板之间的数据传递。
在视频编辑系统11中,通过视频输入端口30读取图象,通过音频输入端口32读取声音。在读取图象和声音时,将图象数字化并且压缩,同时将声音数字化。将图象和声音存储在磁盘24上。可以对经压缩的视频/音频数据进行解压缩,并将它们在显示器18和扬声器(未显示)中播放出来。视频编辑软件26允许用户将压缩后的图象部分和声音部分组合成视频/音频节目。用户在编辑视频/音频节目时可以播放该节目并且可以按小至单个场的增量或按组合后的组合形式来重新安排该节目。一旦用户对合成的节目感到满意,就可以按原本的帧频将该节目经由视频输出端口34和音频输出端口36输出至录像设备如VTR16或输出至广播设备。
参照图2,外部插板带有视频和音频端口30-36(它们与VTR16或其它视频设备相连)、总线控制电路42(它与主计算机12相连)、各种信号处理通路以及监控微处理器48。所说的信号处理通路包括一双向通路,它经由压缩/解压缩编码器/解码器(CODEC)60,以便将数字化的视频传递给主机的磁盘24或者传递来自该磁盘24的数字化视频;以及一单向彩色-空间转换(CSC)和二次抽样通路,以便在主机的显示器18上显示数字化的图象。视频I/O端口电路35将视频数据从VTR的模拟形式(如NTSC或PAL等)转换成数字形式(如YUV4∶2∶2模式)并且将数字化的图象传送到视频总线38(CODEC60在视频解压缩过程中也可以对视频总线38进行写操作)。微处理器48控制着外部插板的上述组件。
在输入源图象时,CODEC60从视频总线38中取出YUV格式的视频数据、将该数据压缩成压缩的形式、并将该数据写至外部数据总线40。总线控制电路42从外部数据总线40中取出压缩后的图象并将该图象存储到主机的RAM50内的缓冲区。主CPU28定期地将该缓冲区内容清除到磁盘24上。
回放时的过程正好相反主CPU28将压缩的视频数据从磁盘24读至RAM50中的缓冲区。总线控制电路42将该数据从缓冲区拷贝至CODEC60,CODEC60对这些数据进行解压缩并将它们输出给视频数据总线38。解压缩的视频数据可从数据总线经由二次抽样通路显示到主机的显示器18上和/或经由视频输出端口34输出。
在记录与播放的过程中,上述压缩或解压缩法可通过以下要详细说明的方法来适应源素材的变化。
音频通道经由音频控制器62和音频I/O端口32、36将数据从VTR(或其它声源)传递给外部数据总线40并且同时地将数据从外部数据总线40传递给VTR(或其它声源)。
在图3所示的主计算机的另一种结构中,主计算机的CPU28、显示器内存(也称“帧缓冲区”)44、主存储器50和/或磁盘控制器52等组件均可通过主计算机12专用的总线54传递数据,而总线54则带有位于专用总线54与系统总线46之间的总线控制接口56。在这种情况下,外部总线控制电路42可将数据传递给系统总线46或传递来自系统总线46的数据,并且,主机的总线控制接口56还控制着流向/来自主计算机专用总线54上的各设备的数据。
参照图5,某些视频格式(如NTSC等)使一帧的扫描线作隔行扫描。也就是说,不是从左至右、从上到下地连续扫描一帧,而是将一帧分成两个半帧70、72。第一个半帧70包括所有的奇数扫描线,而在整个第一个半帧完成之后发送的第二个半帧72则包括所有的偶数扫描线。组合帧的各场被交替地进行扫描。
在任何视频信号中都有垂直消隐时间以便重置从屏幕底部到屏幕顶部的回扫。在垂直消隐期间内,电子束被截止因而不会重写先前的一场。在垂直消隐期间,会产生称为“帧同步”脉冲的同步脉冲。在隔行扫描的格式中,每一帧均有两段垂直消隐时间,因而也具有两个垂直同步脉冲,这两个脉冲分别处于各个场的终端部。可以通过上述两个垂直同步脉冲与图象帧的两个场的实际图象数据的时间关系来区别这两个垂直同步脉冲。
压缩图象数据的通用方法使用了JPEG CODEC。在JPEG编码过程中,以独立于视频中其它帧的方式将各个帧或场作为静止的图象加以编码。通常根据图象的矩形扫描光栅来计算出二维的离散余弦变换(DCT)。JPEG标准定义了“Q-因子”,这些Q-因子可以进行改变以使得压缩与源视频素材的色度和亮度特征相协调,并且平衡解码后图象质量(没有压缩赝象)与压缩后图象所占用的存储空间的关系。例如,如果某些Q-因子非常大,则它们会使相应的视频亮度和色度成分减至0,从而能从压缩形式中有效地除掉亮度和色度成分,因而能减小用于描述图象的数据量,但也会排除其色度与亮度对解压缩后图象的作用。对Q-因子完整的说明请参阅Pennebacker和Mitchell的文章“The JPEG StillImage Data Compression Standard”,该文载于VanNostrand andReinhold,本文包括了这篇文章的内容以作为参考。
在压缩过程中,外部插板10具有一定的“目标”数据量以便对视频的每场进行编码,上述“目标”数据量一般在20-25K字节的范围内。如果为一场所产生的数据量超出上述目标一定的百分比,则向上调整Q-因子以便对下一场进行更大规模的压缩。与此相似,如果为一场所产生的数据量低于上述目标一定的百分比,则向下调整Q-因子以便在以后的各场中获得更好的质量。
尽管所述的最佳实施例允许Q-因子随每个场边界的改变而改变,但是,其粒度可以是视频节目的任何一小部分,例如是一帧或少数几帧或者是一帧或一场的一部分。较大的粒度会节省用于对较小Q-因子变化进行编码的存储空间。较细的粒度允许按较精细的边界对压缩的图象进行编辑,这是因为,本实施例只允许按Q-因子的边界来编辑拼接处。结构图4详细地显示了经由外部插板10的压缩/解压缩通路。视频数据总线38传递由诸如视频输入端口30或CODEC60的解码器部分等组件所产生的视频数据。数据总线40传递来自二次抽样通路的二次抽样图象、或传给/来自CODEC通路的编码图象。FIFO(先进先出)90、92、94会对到达/来自数据总线AO的数据起缓冲作用。来自解压缩FIFO94的通路以及通向压缩FIFO92的通路由状态机100所监控。CODEC60带有控制寄存器102,这些寄存器控制着CODEC的操作。状态机100可根据一个Q-因子表106对控制寄存器102进行写操作。1计数寄存器(one-count register)107存储着对输入给CODEC60或输出自CODEC60的压缩数据的计数。
CODEC60是一种三芯片设备,它由LIS(大规模集成)逻辑电路L64765QC-30型CSRBC、L64735QC-35型DCT处理器以及L64745QC-30型JPEG编码器构成。在CODEC60的控制寄存器102中间有一组为128个的Q-因子寄存器,每个寄存器为8位,其中64个寄存器用于色度、64个用于亮度。用于上述芯片的数据资料包括在本文中以作为参考。
Q-因子表106是一存储器,它可以保存多达265个Q-因子集,从而表示265种不同的质量设置。每个Q-因子集都包括128个8位值,从而与CODEC60的128个Q-因子控制寄存器相对应。可以用索引来存取Q-因子表,也就是说,可用一个在0至255之间的相关整数来存取每个Q-因子集。尽管Q-因子表106具有用于多达256个Q-因子集的空间,但本发明也可以在有较少量的实际填充数例如为四个的情况下进行操作。所填充的条目是按它们对压缩的影响程度来排序的,也就是说,索引值较大的Q-因子会导致较差的质量但会使得一帧或场有较高的压缩率和较低的存储量。Q-因子表中的Q-因子也可以有其它的组织形式,只要将微处理器48编程以便能够利用这种组织形式即可。
QINDEX寄存器108的值决定了当前哪一个Q-因子集装入CODEC。状态机100可对QINDEX寄存器108作读和写操作。
图6显示了编码后的视频场存储在磁盘上时的数据包格式110。一完整的Q-因子集和数据计数存储在131个字的包标题内。将Q-因子存储成64个色度条目以及64个亮度条目112、114。标识111、113标识哪64个条目是色度、哪64个条目是亮度。每个Q-因子均为8位,但是,在所说的数据包内,Q-因子调整成了32位。一个32位的计数115表示后随的压缩数据的字数lcount,该字数的后面是lcount个字的场图象压缩数据116。这样,每个视频场均带有自身的解码键值以及Q-因子集112、114,它们和该视频场存储在一起。可以用相同的Q-因子对连续的场进行编码,但是,这些场的压缩图象均带有同样的完整Q-因子标题111-114。这就能使得Q-因子在已压缩视频数据的任何场边界处产生变化。
参照图4,状态机100为PAL制式。在压缩编码过程中,CODEC60对所产生的压缩数据量进行计数,在每场结束时,状态机100均将这一计数送给lcount寄存器107。在解码过程中,状态机100计算对视频场进行编码的数据包的字数以便将该数据包的连续字传给外部插板10的适当组件。具体地说,状态机100通过选择多路解调器104的CODEC输出以及CODEC的“控制”模式而将Q-因子标题112、114以钟脉冲的方式写入CODEC60的Q-因子寄存器。通过用于多路解调器104的选择信号120而将下4个字节即lcount传至lcount寄存器。最后状态机设置用于LSI芯片组的“数据”模式并将实际的图象数据以钟脉冲的方式写入CODEC60以便进行解压缩。
参照图7,总线控制电路42将系统总线46与外部插板10连接起来。缓冲存储器220对系统总线46的总线数据和地址线起缓冲作用。数据缓冲存储器224对送至和接收自系统总线46的数据起缓冲作用,而从属地址锁存器226则锁存住地址。外部插板10可起总线主控器的作用,在这种模式下,总线主控器地址发生器236(与微处理器48相连)会产生用于这些总线事务的地址。总线主/从控制逻辑线路228会产生并接收传给/来自总线的总线控制信号230,同时传递来自微处理器48和外部插板组件的信号232、234或者将这些信号传给微处理器48和外部插板组件。
微处理器48和总线控制电路42相配合从而能在外部插板的FIFO90、92、94与主机的RAM50之间有效地传递数据。微处理器48监控着上述FIFO的占用情况、主RAM50中环形缓冲区的剩余空间量、以及在场结束前CODEC内(记录时)或数据包(播放时)内剩余的数据量,并且,微处理器48会向总线控制电路42发指令,以便将特定数量的数据字从主RAM50的特定地址传给FIFO或从FIFO传给主RAM50的特定地址。为了减少总线的通信量,总线控制电路42将来自微处理器48的请求分解为较小的块,一般每块为16个32位的数据字。这种分块就每次传递一个32位的数据字来说能够提高效率,并可防止任何一次传递占用总线过长时间。
最佳的主计算机是Apple Macintosh的Quadra 950型或更快的计算机。
视频编辑期受软件26的控制,该软件在主机的CPU内运行。所说的软件为用户提供了图形用户界面以便控制视频编辑期,并且该软件还监控着外部插板10的操作。
在所述的最佳实施例中,控制外部插板的微处理器48是Motorola MC68030。选择相对较快的微处理器以满足对实时服务的潜在需求。外部插板10受微处理器48所控制的组件包括总线控制电路42、二次抽样器和色彩空间转换器80、以及CODEC60。所说的控制是通过监控二次取样FIFO90、压缩和解压缩FIFO92、94、音频通路内的FIFO、以及来自主CPU的消息而实现的。
主CPU28和外部插板10通过外部指令与状态队列而相通连。该指令与状态队列是一双向的FIFO,它类似于一个多车道的公路,它带有一中间隔离带以便将沿一个方向传送的消息与沿另一个方向传送的消息隔离开来。所说的队列占用系统总线上的一个地址;为了将多个字的消息写到外部插板上,主机会依次将该消息的每个字写至上述的队列地址。微处理器48抽取来自指令队列64中的这些消息并依次根据每一种消息进行活动。以下将连同图8及二次抽样和播放操作来说明对上述数据的结构及消息的使用。
仍参照图4,视频数据总线38、二次抽样器与色彩空间转换器80、以及CODEC60均按视频I/O系统的速率进行操作。但是,具有管理用户程序和来自各种外设中断责任的主计算机12无法提供实时的服务。压缩FIFO92和解压缩FIFO94可断开同步视频数据总线38的实时操作和请求与主机12和外部数据总线40的固有异步操作之间的联系。每个压缩FIFO92和解压缩FIFO94均为32位宽、16K字长并且使用25ns的部件。以下将说明对各个FIFO之间的数据流控制的协调。操作主计算机在启动并执行自引程序时会查询显示系统以确定外部显示器是否连在系统总线上(如图2所示)、或者外部显示器是否连在主机专用总线上(如图3所示)、以及按什么地址来映射显示器内存。主机还查询扩展槽内的每个外部插板并且为每个插板都建立内存地址。
作为加电例程的一部分,外部插板10运行自检诊断程序(存储在外部插板10的ROM中),然后等待从主机12中下装到微处理器48中的软件14。视频编辑软件26在主机12中启动时会删掉主机的虚拟内存模式,从而外部插板10可以存取主机12的地址空间。然后,主软件26将外部软件14下装至外部插板。下装后的软件14会初始化外部插板10内的信号交换过程,然后与主CPU28进行信号交换。
当主机内的软件26开始执行时,主机会在RAM中创建一Q-因子集表。该表可通过索引存取并将被拷贝进压缩图象的每场的标题区111-114。主机还将具有非压缩形式的外部Q-因子表106下装至外部插板。将Q-因子的初始缺省集装进CODEC60。主机12在RAM50中分配磁盘缓冲区并将该缓冲区的地址告知外部微处理机48。
在主CPU28内运行的软件26为用户提供了多种选择。在这些选择中,包括将视频数据从VTR16拷贝至磁盘24或者相反。在前一种情况下,当二次抽样通路将图象显示在主显示器18上时,CODEC60会同步地压缩该视频数据,并且,总线控制电路42会将压缩后的图象数据拷贝至磁盘24。如果用户要观看存储在磁盘24上的数据,或者要对压缩后的图象进行解压缩并将其从磁盘24拷贝至VTR16,那么,总线控制电路42就会经由系统总线46从磁盘24中取出数据。取出的数据会在解压缩FIFO94内得以缓冲,然后在CODEC60内被解压缩。
在用户要求系统11压缩视频数据时,例如通过VTR16和视频输入端口30等将数字化的视频数据提供给视频总线38并供CODEC60使用。CODEC60对图象进行压缩,压缩后的数据在压缩FIFO92内得以缓冲。状态机100从CODEC60中取出数据计数并将其存储到lcount寄存器107中,同时,根据该计数设置QINDEX寄存器108,而寄存器108接下来又会选择Q-因子106,此Q-因子用于对下一场进行编码。压缩后的视频数据从压缩FIFO92中拷贝至主机的RAM50内。在那里,主机会将用于对数据进行编码的Q-因子的拷贝复制到带有压缩数据的包标题111-114内。然后,将压缩参数以及压缩后的数据写至磁盘24以便存储。
以下将更详细地说明压缩过程。
编码通路的位于视频数据总线38与压缩FIFO92之间的同步部分主要是在由视频I/O端口产生的象素时钟及垂直同步脉冲的控制之下。每个场起始于一个垂直同步脉冲并起始于一定的垂直消隐间隔。一旦接收到垂直同步脉冲,状态机100就捕捉变量QINDEX108的值,用于Q-因子集的Q-因子表106的这一索引可用来对即将到来的场进行编码。当状态机100捕捉到该值时,就会阻止更新QINDEX寄存器108。
在捕捉QINDEX的值时,状态机100将gamma(灰度)校正值装入CODEC60,该值决定了从输入视频值映射到输出视频值的色彩。(可编程序的灰度值允许编码器补偿各显示器之间的色彩差异,例如,补偿不同型号CRT之间的不同荧光体在色彩灵敏度方面的差异)。在捕捉到了QINDEX108并且装载了灰度值之后,状态机100通过顺序地从Q-因子表106内读取Q-因子并将该因子写入CODEC的控制寄存器102内而将QINDEX的值所指示的一组Q-因子表106装入CODEC60。
在每场结束时,状态机100都将CODEC60置为压缩模式并向CODEC60产生一垂直同步脉冲。在消隐间隔期间,外部插板10通过装载灰度值和Q-因子值而为即将到来的一场作准备。第一个水平同步脉冲发信号给下一场的第一条扫描线。已经对CODEC60进行了编程,以便忽略图象的头几条扫描线(这些线专供预定的标题信息等使用),并且,CODEC60利用告知扫描线数量以及每条扫描线的象素等的值开始压缩该场中包含实际图象数据的部分。
在经由CODEC60将来自视频总线38的数字化的视频数据压缩进压缩FIFO92之后,状态机100向CODEC60请求被压缩数据的计数并将该计数存入lcount寄存器107。
在下一个垂直消隐间隔及垂直同步脉冲处,微处理器48检查1count107的值。如果刚刚压缩的场的数据量超过一个预定的上阈值,即超过压缩数据的目标数据量一定的百分比,则外部微处理器48通过使QINDEX108增值而从Q-因子表中选择不同的Q-因子集。这组新的Q-因子使得能更大规模地去压缩后续的帧,从而减少代表后续帧的数据量。与此相似,如果用于一场的数据量降至一预定的低阈值以下,也就是说,它低于目标数据量一定的百分比,则微处理器48会使QINDEX减值以便选择另一组Q-因子,从而减少压缩,由此增加将要生成的数据量,而也会改善后续帧的图象质量。与此相似,如果编码数据按上述百分比的两倍而超过或低于所说的目标数据量,则状态机将以适当的量去使QINDEX增加或减少,在所示的最佳实施例中,该增减量为2。
可以使每个Q-因子集内的Q-因子符号例如用于自然图象—动画—对技术图象的节目素材。其阈值频带约为10%。
可以注意到,用于对每一帧进行编码的Q-因子是作为压缩前一帧的结果而计算出来的。这种方法的优点在于不需要额外的预压缩计算,即在编码之前不必估算一个帧以便确定该帧的压缩质量,也不必在发现“错误”的Q-因子压缩了一帧时重新压缩该帧。
对图象的每一场来说都按由视频时钟所确定的频率重复上述步骤。一旦将压缩后的象素存入压缩FIFO92内,就可以异步地进行余下的处理过程,该过程将在以下予以说明。随后的步骤在时间上是有限制的,要使这些步骤进行得足够快以便防止压缩FIFO92溢出。
主要参照图9、同时参照图4和图7,总线控制电路42在外部微处理器48的协助下将压缩后的视频数据从压缩FIFO92中传送进主RAM50内的磁盘缓冲区。总线控制电路42从压缩FIFO92中取出上述数据字,控制逻辑电路228和地址生成器236将该数据划分成16个字的块,以便用于系统总线46间的总线传输。微处理器48和地址生成器236算出由lcount寄存器107所计数的变长记录。在每个场的开始处,地址生成器将131个字留在用于数据包的标题区111-115的磁盘缓冲区内。微处理器48对每个RAM缓冲区内所用的字进行计数并且在缓冲区填满且准备好要写至磁盘24时发信号给主CPU28。然后,微处理器48将下一个缓冲区的地址提供给地址生成器236。
在每个场结束时,微处理器48向主CPU28发送一条消息。此消息表示指明用于对帧进行编码的Q-因子集的QINDEX值108,并且,上述消息还表示由对帧进行编码的字的数量所构成的lcount值107。主CPU28编制Q-因子表的索引,从而将适当的条目拷贝进数据包的标题111-114。即可以由总线控制电路42来将lcount的值直接拷贝进标题115,也可以由主CPU28将该值拷贝自“场结束”消息。另外,微处理器48可以使整个的包标题111-115、Q-因子以及lcount与主机相连通以便逐字地插入包标题。这样,每个编码的场均带有用于对包括有该场的数据包进行解码所必需的数据。一旦缓冲区充满且连同压缩数据一道存储了Q-因子,主CPU28就会将该缓冲区写至磁盘24。
总线控制电路42和微处理器48承担将视频数据从CODEC60传给主RAM50内缓冲区的全部实时操作。主机可以异步地进行从RAM缓冲区到磁盘24的传递。在压缩过程中主机的唯一任务是使得有足够多的磁盘缓冲区可用并腾空这些缓冲区以便在压缩时供外设插板使用。主机通过将满的缓冲区清除至磁盘24而保持有大量的空缓冲区。
当用户要求解压缩时,例如回放一段先前压缩的视频数据时,主机微处理器28和总线控制电路42通过向主机磁盘24请求数据而使得解压缩FIFO94被填满,以下将说明这一过程。在CODEC60从解压缩FIFO94中取得压缩的数据时,状态机100将CODEC60置为寄存器装入模式并对标题112、114计数(64个8位的条目,每个条目均为实际的Q-因子),这些标题存储在CODEC60的Q-因子寄存器内。然后,状态机100将CODEC60置为数据解压缩模式。状态机选择多路解调器104以便将信息lcount104发送给lcount寄存器107。此后,将数据直接送至CODEC60,在那里,这些数据被解压缩并被作为数字化的图象发送到视频总线38上。每个提供给CODEC60的32位的数据字都均使lcount寄存器107增1,因此,状态机100可以告知该字何时已将一场的所有图象数据提供给了CODEC60。
参照图8,对于要回放的每一帧来说,外部微处理器28将“PT_VidepFrameRequest”或“PT_AudioFrameRequest”消息包发送给主机以便用组成“frame”中所指示的时间标记ID来请求图象帧。外部插板排队等侯足够的帧请求,以致主机的缓冲区填充过程会在外部插板的缓冲区排空之前停留住。主机将上述消息转换成对Macintosh磁盘机的请求。一旦该磁盘机将数据放至RAM50,主机CPU28就会通过指令与状态队列64将“PT_VideoFrameDescriptor”或“PT_AudioFrameDescriptor”消息包送回外部插板。上述消息包指示已经读取了数据的主RAM50的地址以及数据计数。在微处理器48和总线控制电路42将数据从缓冲区送至解压缩FIFO94和音频输出FIFO98时,外部插板将消息包的“类型”改变成“PT_VideoFrameDiscard”或“PT_AudioFrameDiscard”并将该消息包经由指令与状态队列64送回主机,从而中断主机28以便通知主机去检查上述队列。主机会将释放的存储器放回空闲区。
解压缩操作可以指定对单帧(两个场)进行解压缩或连续地进行解压缩直至外部插板10从主机28中接收到停止指令。单帧模式可以用于压缩静止的图形。
在有停止指令时,状态机100通过使CODEC60结束对它正在处理的任何数据的解压缩、并阻止装入下一场的压缩数据从而有序地关闭CODEC60。
微控制器48负责按优先顺序排列外部插板上的任务。二次抽样通路基本上总是活动的,以便将视频数据总线38上的视频数据显示到主机的显示器18上,但是,一般来说,经由CODEC通路的任何数据移动要优先于观看操作磁带到磁盘的拷贝操作中的数据损失实际上是不可恢复的,因此,如果有可能的话应该加以避免。另一方面,允许二次抽样通路滞后CODEC通路或者从视频显示中省略了几帧是一种没有太大影响的故障。外部微处理器负责通过保持这种优先权而维持拷贝流的完整性。微处理器48控制着卸载FIFO90、92、94的速率一直到其高达主机系统总线46的饱和速率。这样,系统就可以优先地选择将视频数据传送至显示器内存的速率,从而改变出现在显示器上的二次抽样的图象帧频。这种数据流控制是由外部微处理器48完成的该处理器监控着CODEC的FIFO92、94的、音频通路中的FIFO的以及二次抽样FIFO90的填充程序,并利用这一信息去控制外部总线的事务处理。例如,如果CODEC的FIFO92、94中的一个趋于装满,那么,微处理器48就会挂起总线控制电路对二次抽样FIFO90的抽取并且立即去集中抽取CODEC的FIFO92、94。在实践中,当局限于二至四帧的延时的情况下,几乎是实时地(即按接近于视频速率的速率)来更新二次抽样窗口。
参照图9所示的中央循环,外部微处理器48监控着FIFO并且控制数据传递。微处理器48允许充分地填满FIFO以便有效地按块传递数据。例如,将二次抽样FIFO90分成由16个32位宽的字所构成的块以便在系统总线46间传递。块间间隔使得诸如CODEC拷贝操作、音频通道拷贝操作、或动态的RAM更新循环之类的其它操作优先地取得被二次抽样的视频数据流。其结果是,显示流是完全异步的,即二次取样窗口中的显示在两帧的各显示部分之间会被分隔开零点几秒,这个被分开的时间很短以致人眼通常无法辨别。在CODEC流达到十分充满的情况下,例如在图象一旦从易于压缩的素材变成难于压缩的素材(如变成带有许多更清晰边缘的新图象)之后,总线控制电路42会立即使得对二次抽样FIFO90的卸载中止若干帧,直至拷贝流中的数据量有所减少。在这段时间内,二次抽样FIFO90会溢出。然后,外部微处理器48会刷新二次抽样FIFO90,等待下一帧或场的边界,之后重新启动二次抽样视频流。
本发明的其它实施例均包括在权利要求的范围内。
权利要求
1.一种用解码器对编码后的视频节目进行解码的方法,所述经编码的视频节目包括一系列数据包,所述解码器由解码参数所控制,这些参数装在该解码器的控制寄存器内,上述方法包括的步骤有按顺序取得视频节目的各个数据包,这些数据包中的每一个均包括解码参数和编码的视频数据;以及在获得数据包时用包括有下列步骤的方法对该数据包进行处理,所说的步骤是将解码参数存入控制寄存器;以及用解码器按已存储的解码参数所作的规定对编码的视频数据进行解码。
2.如权利要求1所述的方法,其特征在于,所说的解码包括从压缩形式中将编码视频节目解压缩出来,所说的解码器包括一解压缩解码器,而所说的解码参数则包括解压缩参数。
3.如权利要求2所述的方法,其特征在于,所说的解压缩参数包括一量化因子,该因子在对源图象数据进行压缩时使用,以便形成编码的视频节目,较大的量化因子会使得将视频数据压缩成这样的编码视频数据,即它比用较小的量化因子来压缩源视频数据时会占有更多的存储空间但却产生更少的压缩赝象。
4.如权利要求1所述的方法,其特征在于,所说的解码器带有一数据输入端子,而所说的处理过程则包括将解码参数传送至控制寄存器并将编码视频数据传送至解码器的数据输入端子。
5.如权利要求4所述的方法,其特征在于,一个多路解调器受状态机的控制以便执行所说的传送工作。
6.如权利要求1所述的方法,其特征在于,它还包括下列步骤从数据包中抽取出数据计数,该数据计数指明了数据包内编码视频数据的字数;以及将上述数据计数存入一存储寄存器。
7.如权利要求6所述的方法,其特征在于,所说的抽取操作是由一状态机来实现的。
8.如权利要求1所述的方法,其特征在于,所说的每个数据包都描述了一系列隔行扫描视频帧的一场。
9.一种用于对数字化视频数据进行解压缩的设备,该设备包括数字化视频数据源,所说的数字化视频数据包括一系列数据包,每个数据包均包括一组参数值以及压缩的图象数据;解压缩解码器,它用于将压缩的图象数据解压缩成解压缩的图象数据,该解码器具有控制寄存器,这些寄存器接收参数值以改变所使用的解压缩法;一输入端口,它用于将压缩的数据作为输入而加以接收;以及一输出端口,它用于输出对应于压缩数据的解压缩数据;分离器,它用于将各个数据包分离成一组参数值以及压缩的图象数据;以及传送器,它由于将分解出来的参数传送给控制寄存器并将分离出的图象数据传送给输入端口。
10.如权利要求9所述的设备,其特征在于,所说的分离器包括一状态机。
11.如权利要求9所述的设备,其特征在于,所说的数据包还包括一数据计数,并且所述分离器能将来自数据计数的一组参数值与图象数据分离开。
12.如权利要求9所述的设备,其特征在于,所说的每个数据包均代表隔行扫描视频帧的一场。
13.如权利要求9所述的设备,其特征在于,所说的视频数据源包括个人计算机的海量存储器,上述个人计算机带有一块插在该机扩展槽内的外部插板,此外部插板带有解压缩解码器,分离器以及传送器。
14.一种用于播放经压缩的数字化视频数据的设备,该设备包括海量存储器,它用于存放上述数字化的视频数据,该数字化视频数据包括一系列数据包,每个数据包均包括一组参数值以及压缩的图象数据;解压缩解码器,它配置成能将压缩的图象数据解压缩成解压缩的图象数据,该解码器带有控制寄存器,这些寄存器接收参数值以改变所使用的解压缩法;一输入端口,它用于将压缩的数据接收为其输入;以及一输出端口,它用于输出对应于压缩数据的解压缩数据;分离器,它用于将各个数据包分离成一组参数值以及压缩的图象数据;以及传送器,它用于将分离出来的参数传送给控制寄存器并将分离出来的图象数据传送给输入端口。
15.如权利要求14所述的设备,其特征在于,所说的分离器包括一状态机。
16.如权利要求14所述的设备,其特征在于,所说的数据包还包括一数据计数,并且所述分离器能将来自数据计数的一组参数值与图象数据分离开。
17.如权利要求14所述的设备,其特征在于,所说的每个数据包均代表隔行扫描视频帧的一场。
18.如权利要求14所述的设备,其特征在于,所说的视频数据源包括个人计算机的海量存储器,上述个人计算机带有一块插在该机扩展槽内的外部插板,此外部插板带有解压缩解码器;分离器以及传送器。
全文摘要
一种用解码器对编码视频节目的数据包进行解码的方法,所说的解码器由解码参数所控制,解码参数装在控制寄存器内,上述方法包括顺序地获得含有解码参数和相关编码视频数据,从及在获得数据包时通过下列方法处理该数据包将解码参数从数据包存入控制寄存器、并且用相关解码参数来对编码视频数据进行解码。
文档编号H04N5/44GK1125028SQ94192294
公开日1996年6月19日 申请日期1994年3月15日 优先权日1993年4月16日
发明者J·M·哈迪曼 申请人:数据翻译公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1