采用可变量化的自适应视频压缩的制作方法

文档序号:7565027阅读:223来源:国知局
专利名称:采用可变量化的自适应视频压缩的制作方法
交叉参照相关申请通过参照将与本申请一起提交的标题为“在计算机显示器上显示二次抽样视频图象”、“同步数字声频到数字视频”、“计算机的视频外围设备”及“自适应视频解压缩”的专利申请结合在此。本发明的背景本发明涉及视频节目的压缩编码,更具体地涉及用于编码视频节目的相继的帧的一种自适应方法。
随着高清晰度彩色计算机显示器及处理能力的成本的降低,正在崛起的微型计算机的应用之一便是视频后期制作--在编辑过程中利用计算机的显示器作为监视器显示与编辑视频图象。为了在视频编辑系统中利用微型计算机,读取一个视频源,通常为带式录象机,并以数字形式存储在计算机的盘上。可以数字形式编辑该视频及将其写回到一个视频设备。视频编辑提出巨大的计算与存储需求,这容易在一个视频节目的全部数据量中看出--每秒30帧每帧300,000象素以上,及每个象素若干位。为了降低数据量,在从诸如影带上读取视频图象数据时可以压缩它们并存储在盘上。然后在编辑或回放中观看时解压缩这些数据。
选择一种视频数据压缩方法是质量与数量之间的一种折衷。较激进的压缩方法可以降低压缩数据的数量,但可能导致更低质量的解压缩图象。通常,恢复解压缩图象的质量要求采用较保守的压缩。数据压缩算法通常带有一个或多个控制质量与数量之间的这一折衷的可调节的参数;这些系数称作“量化因子”或“Q因子”。
随着帧的内容的变化,视频节目的一帧所生成的压缩数据量也逐帧变化。在一种已知的旧有视频压缩方法中,利用一个单一的Q因子组来编码待编辑的一个视频节目的各剪辑部分。其结果是易压缩的节目内容(即使在较激进的压缩水平上也能保持足够质量的内容)消耗比提供一个良好的画面所需的更多的数据。其它较难压缩的节目内容(要求较保守的压缩来避免压缩的人为影响的内容)是在折衷的质量上录制的。此外,在编辑这些内容时,编辑器局限于只能将以相同的Q因子录制的内容编辑在一起。
本发明的概述本发明的一般特征在于在压缩视频时通过调节压缩编码器所采用的压缩参数(诸如Q因子)来压缩视频数据的一种方法。压缩编码器位于连接在一台主计算机上的一个外围设备控制器上。在本方法中,视频数据是以段形式压缩的,并且各段(诸如一帧或一个场)具有用于压缩该段的一组相关联的压缩参数。测量从压缩的各段得出的压缩视频数据的尺寸,并且作为压缩的视频数据的测出的大小的一个函数自动地改变压缩参数。将改变后的参数加载进压缩编码器的控制寄存器中并用在压缩下一视频段中。将用在压缩各视频段中的压缩参数的一个标识与压缩的视频一起存储以允许在解压缩中采用适当的参数。该方法能够实时调节压缩参数来匹配为节目内容设定的质量,以达到可接受的画面质量与数据速率。
较佳实施例可包含下述特征。压缩参数的调整包括判定压缩的视频数据的大小是否超过一个预定的上阈值,并且如果这样,便将指定比原来的压缩参数较大的压缩率与较低的质量的新的压缩参数加载进控制寄存器。压缩参数的调整还包括判定压缩的视频数据的大小是否小于一个预定较低的下阈值,并且如果这样,便将指定比原来的压缩参数较低的压缩率与较高质量的新的压缩参数加载进控制寄存器。压缩参数是由一个状态机的控制下在视频的连续段的压缩的间隙中加载进压缩编码器的控制寄存器中的。将压缩的视频数据存储进主计算机的大容量存储设备的缓冲器中。外围设备控制器通知给主计算机指示用来压缩各段视频数据的同时能用来对压缩的视频数据解压缩的压缩参数的一个索引值。与该索引值对应的压缩的视频数据与解压缩参数是存储在主计算机的一个大容量存储设备上的。外围设备控制器还通知给主计算机指示压缩的视频数据的大小的一个计数值,主计算机将这一计数值与压缩的数据一起存储在大容量存储设备上。存储以前,压缩的视频数据是通过一个FIFO排队的,FIFO允许主计算机异步于压缩过程来处理存储的压缩的视频数据。
本发明的较理想的应用是在由一台主计算机、一个相关联的外围设备控制器、以及控制两者去执行视频编辑功能的软件实现的一个视频编辑系统。
本发明的特征在于下述优点。用户能在压缩质量与数量之间指定一个有利的折衷水平,而压缩方法则通过适应变化的节目内容来保持该水平。能将用不同的质量设定值录制的视频段编辑在一起;一段的设定值不含导致另一段不正确地解码。在录制中,可以在主计算机中合成Q因子信息;从而没有必要占用总线带宽以在外围设备板与主微型计算机之间拷贝整个Q因子组。各帧的Q因子判定是作为压缩前一帧的副产品几乎“免费”计算的。
从以下一个较佳实施例的描述及从权利要求书中,本发明的其它优点与特征将是显然的。较佳实施例的描述下面描述一个较佳实施例。
图例

图1为用在按照本发明操作的一个视频编辑系统中的部件的示意性透视图。
图2为用在图1的系统中的一台主计算机及一块视频外围设备板的方框图。
图3为主计算机的另一种组成的方框图。
图4为详细示出图2的视频外围设备板的某些特征的方框图。
图5为展示图2与4的外围设备板所执行的一种操作、解除隔行扫描的图。
图6示出压缩的视频数据的包格式。
图7为图2的总线控制电路的方框图。
图8示出主机用来与外围设备通信的数据结构。
图9为展示系统的操作的流程图。
概述参见图1与2,视频编辑系统11包括插接在主计算机12中的外围设备板10。其它部件包括带式录象机(VTR)16、监视器18、键盘20、鼠标器22及大容量存储盘24。提供视频编辑功能的软件分成两部分,在主计算机的中央处理单元(CPU)28上执行的一个部分26,它通常提供一个用户接口与监控,以及在外围设备板上执行的一个部分14,它通常控制该外围设备板、外围设备板内部的数据传输、及主计算机与外围设备之间的数据传输。
在视频编辑系统11中,视频是通过视频输入端口30读取的,而声频则是通过声频输入端口32读取的。读入它们时,视频被数字化与压缩,而声频则被数字化。视频与声频是存储在盘24上的。压缩的视频/声频数据可以解压缩及回放在显示器18与扬声器(未示出)上。视频编辑软件26允许用户将压缩的视频与声频部分编辑成一个声/象节目。当用户编辑该节目时,他能够播放它并以小到一个单一的场的小增量或编辑的组合重新排列它。一旦用户对得到的节目感到满意,便能通过视频输出端口34与声频输出端口36以全帧速率将其输出到一台视频捕获设备,诸如VTR16,或输出到一台广播设备。
参见图2,外围设备板具有视频与声频端口30-36(连接至VTR16或其它视频设备)、总线控制电路42(与主计算机12接口)、各种信号处理链路、以及监控微处理器48。这些链路中包含一条通过一个压缩/解压缩编码器/解码器(CODEC)60传输数字化视频去往或来自主计算机盘24的双向路径,及一条在主计算机显示器18上显示数字化视频的单向彩色空间转换(CSC)与二次抽样链路。视频I/O端口电路35将来自VTR的诸如NTSC或PAL等模拟制式的视频数据转换成诸如YUV4∶2∶2格式的数字制式,并将数字化视频放置在视频总线38上。(视频总线38也能在视频解压缩期间由CODEC60写入)。一个微处理器48控制外围设备板的部件。
输入源视频期间,CODEC60从视频总线38上取得YUV格式视频,将其压缩成一种压缩的形式、将其写在外围设备数据总线40上。总线控制电路42从外围设备数据总线40上取得压缩的视频并将其存储在主机的RAM50中的缓冲器中。主机CPU28周期性地将缓冲器倾倒到盘24上。
回放期间,颠倒这一过程主机CPU28将压缩的视频数据从盘24上读入RAM50中的缓冲器中。总线控制电路42将数据从缓冲器中拷贝到CODEC60中,后者解压缩这些数据并将它们输出到视频数据总线38。从那里,解压缩的视频数据便能通过二次抽样链路显示在主机的显示器18上,与/或通过视频输出端口34输出。
录制与回放期间,用下面将要详细描述的方法使压缩或解压缩方法适应于考虑进去源内容中的变化。
同时,一条声道通过一个声频控制器62及一个声频I/O端口32、36在VTR(或其它声源)与外围设备的数据总线40之间来往传输数据。
在图3中所示的主计算机的另一种组成中,主计算机的CPU28、显示存储器(也称作“帧缓冲器”)44、主存储器50、与/或盘控制52部件可通过一条主计算机12专用的总线54传输数据,在专用总线54与系统总线46之间具有总线控制接口56。在这一情况中,外围设备的总线控制电路42传输去往/来自系统总线46的数据,而主机的总线控制接口56进一步引导数据去往/来自主计算机的专用总线54上的设备。
参见图5,诸如NTSC等一些视频制式隔行扫描一帧的扫描行。即,不是连续地从左到右、从上到下扫描一帧的,而是将一帧分成两个场70、72。第一场70包括所有的奇数编号的扫描行,而在完成了整个第一场之后传输的第二场72则包括所有的偶数编号的扫描行。组合成帧的场是交错地扫描的。
在任何视频信号中,存在着一个垂直消隐周期来复位从屏幕的底部到屏幕的顶部的回扫。在垂直消隐周期中,电子束是停止的,因此它不会改写前面的场。在该垂直消隐周期中,出现一个称作“垂直同步”脉冲的同步脉冲。在隔行扫描制式中,每帧有两个垂直消隐周期,从而有两个垂直同步脉冲,每一个场的末尾各一个。这两个垂直同步脉冲能用它们对一帧的两个场的实际图象数据的定时关系来区别。
一种压缩图象数据的通用方法采用一个JPEG CODEC。在JPEG编码中,将各帧或场编码成独立于该视频信号中的其它帧的一个静止图象。通常在图象的方形光栅上计算一个二维离散余弦变换(DCT)。JPEG标准定义“Q因子”,这些Q因子是可以加以改变的以便将压缩调谐到源视频内容的色度与亮度特征上,并在解码的图象的质量(不出现压缩人为现象)与压缩的图象所耗用的存储空间之间折衷。例如,如果某些Q因子非常大,它们将对应的视频亮度或色度作用减小到零,实际上从压缩格式中消除它们,从而减少用于表示该图象的数据量,但同时也消除了它们对解压缩的图象的作用。对于Q因子的全面说明,见Pennebacker与Mitchell的JPEG静止图象数据压缩标准,来自VanNostrand与Reiuhold,通过参照结合在此。
在压缩中,外围设备板10具有一个“目标”数据尺寸用于编码视频信号的各场,这通常在20-25K字节的范围内。如果为一个场生成的数据量溢出这一目标一定的百分比,则向上调整这些Q因子直至实现下一个场的更为强烈的压缩。类似地,如果为一个场生成的数据量下溢该目标一定的百分比,则向下调整这些Q因子以达到在后面的场中更佳的质量。
虽然本较佳实施例允许Q因子在每一个场边界上频繁地改变,其粒度可以是一个视频节目的任何小的段,例如一帧或少数的帧,或者一帧或场的一部分。较大的粒度将由于编码较少的Q因子改变而节省存储空间。较小的粒度使压缩的视频在较精细的边界上编辑,由于当前的实施例只允许编辑在Q因子的边界上拼接。结构图4更详细地示出通过外围设备板10的压缩/解压缩链路。视频数据总线38携带由诸如视频输入端口30或CODEC60的解码器部分等若干部件中任何一种生成的视频数据。数据总线40携带来自二次抽样链路的二次抽样视频或去往/来自CODEC链路的编码视频。FIFO90、92、94缓存去往/来自数据总线40的数据。来自解压缩FIFO94的链路及去往压缩FIFO92的链路都受到状态机100的监视。CODEC60具有控制其操作的控制寄存器102。状态机100可根据一张Q因子表106写入控制寄存器102。一计数寄存器107中保持输入到CODEC60或从其中输出的压缩数据的计数值。
CODEC60实现为大规模集成逻辑(LSI Logic)的一个三芯片组,L64765 QC-30 CSRBC、L64735 QC-35DCT处理器、及L64745QC-30JPEG编码器。在CODEC60的控制寄存器102中有一组128个Q因子寄存器,各8位宽,64个寄存器用于色度,64个用于亮度。这些芯片的数据图表通过参照结合在此。
Q因子表106为能够保持表示256种不同的质量设定值的256个Q因子组的一个存储器。各Q因子组包含128个8位的值,对应于CODEC60的128个Q因子控制寄存器。Q因子表是用索引访问的;即,各Q因子组是用0与255之间的一个相关整数访问的。虽然Q因子表106具有用于高达256个Q因子组的空间,本发明可用较小数目的实际填充的组工作,例如四组。填充的项是以它们对压缩的效果排序的;即,一个较高索引的Q因子组将得出一帧或场的较低的质量但较高的压缩,较低存储表示。只要将微处理器48编程为能利用Q因子表的组织,Q因子表中的Q因子的其它组织也是可能的。
QINDEX寄存器108的值确定当前加载在CODEC中的是哪一个Q因子组。QINDEX寄存器108可由状态机100读与写。
图6示出用于存储在盘上的一个编码的视频场的数据包格式110。一个完整的Q因子组与数据计数值存储在131个字的包报头中。Q因子是作为64个色度项与64个亮度项112、114存储的。标识符标志111、113标识哪64个项为色度及哪些是亮度。每一个Q因子是8位,但在包中,一个Q因子填充到32位。一个32位计数115表示后面的压缩数据的字数1count,后而跟着该场图象的压缩数据116的1count个字。因此,各视频场具有其解码键,Q因子组112、114与其一起存储。相继的场可用相同的Q因子编码,但尽管如此,这些场的压缩图象将仍然存储有完整的、全同的Q因子包报头111-114。这使得Q因子的改变能出现在压缩的视频数据的任何场边界上。
再参见图4,状态机100是在PAL(可编程阵列逻辑)中实现的。在压缩编码中,CODEC60计数所生成的压缩数据量;状态机100在各场的末尾将这一计数移至1count寄存器107。在解码中,状态机100计数编码一个视频场的一个数据包的字来引导该包的相继的字到外围设备板10的正确部件上。具体地说,状态机100通过选择信号分离器104的CODEC输出端及CODEC的“控制”模式而将Q因子报头112、114记录进CODEC60的Q因子寄存器中。通过信号分离器104的选择信号120将下面的四个字节(1count)引导到1count寄存器。最后,状态机为LSI芯片组设定“数据”模式并将实际的图象数据记录进CODEC60供解压缩。
参见图7,总线控制电路42将系统总线46接口到外围设备板10上。缓冲器220缓存系统总线46的总线数据与地址线。数据缓冲器224缓存要送到系统总线44上及从其接收的数据,并且从属地址锁存器226锁存这些地址。外围设备板10可作为总线主控器工作;当在这一模式中时,总部线主控器地址发生器236(结合微处理器48)生成这些总线事务的地址。总线主/从控制逻辑228生成与接收去往/来自总线的控制信号230,并将信号232、234传递自/到微处理器48及外围设备板的其它部件。
微处理器48与总线控制电路42合作在外围设备板的FIFO90、92、94与主机的RAM50之间高效地传输数据。微处理器48监视FIFO的填充水平,主机RAM50中的环形缓冲器的剩余空间量,或者在一个场结束以前剩余在CODEC(在录制中)或一个包(在播放中)中的数据量,并发布命令给总线控制电路42在FIFO与主机RAM50的一个特定地址之间互相传输指定数目的数据字。为了减少总线通信量,总线控制电路42将来自微处理器48的请求分解成较小的块,通常每块16个32位数据字。相对于每次传输一个32位字的数据,这一分块改进了效率,同时防止了任何一次传输束缚住总线一段不能接受的长时间。
较佳的主计算机为一台Apple MacIntosh型号Quadra 950或更快的机型。
视频编辑对话是在主计算机的CPU上运行的软件的控制下的。这一软件向人类用户提供一个图形用户接口用于控制视频编辑对话,以及监控外围设备板10的操作。
在本较佳实施例中,控制外围设备板的微处理器48是一个Motorola MC68030。选择了相对快速的微处理器来满足实时服务的等待时间要求。在微处理器48的控制下的外围设备板10的部件包含总线控制电路42、二次抽样器与彩色空间转换器80、及CODEC60。控制是通过监视二次抽样FIFO90、压缩与解压缩FIFO92、94、声频链路中的FIFO以及来自主机CPU的消息来实现的。
主机CPU28与外围设备板10通过外围设备的命令与状态队列64通信的。命令与状态队列是一个双向FIFO,类似于带有将一个方向上发送的消息与另一方向上发送的消息分开的中间隔离带的一条多车道公路。该队列在系统总线上占用一个单一的地址;为了写一则多个字的消息到外围设备上,主机依次将消息的各字写在该队列地址上。微处理器48从命令队列64中抽取消息并依次依据各消息工作。下面结合图8及二次抽样与播放操作讨论这些数据结构与消息的用途。
再参见图4,视频数据总线38、二次抽样器与彩色空间转换器80以及CODEC60受到制约只能在视频I/O系统的速率上操作。但负有服务于用户程序及来自各种外围设备的中断的责任的主计算机12不能提供实时的服务。压缩FIFO92及解压缩FIFO94从主计算机12与外围设备数据总线40的内在的异步操作上解耦同步视频数据总线38的实时操作与需求。压缩FIF092与解压缩FIFO92各为32位宽、16K字深并采用26ns部件。下面讨论各种FIFO之间的流控制的协调。操作当主计算机开机并执行其引导过程时,它查询显示系统以找出是否有一个外部显示设备位于系统总线上(如图2中所示),或者是否显示器在主机专用总线上(如图3中所示),以及显示存储器映射在什么地址上。主机还查询扩展槽中的各外围设备板,并为它们中每个建立存储器地址。
作为其加电例程的一部分,外围设备板10运行一个自检诊断(存储在外围设备板10上的ROM中)然后等待软件14从主计算机12卸载到微处理器48。当视频编辑软件26在主计算机12上启动时,它便使主机脱离虚拟存储器模式使得外围设备10能访问主机12的地址空间。然后主机软件26卸载外围设备软件14到外围设备板。卸载的软件14建立外围设备板内部的握手,然后与主机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压缩视频数据时,便将数字化的视频数据提交给视频总线38,诸如由VTR16与视频输入端口30,并由CODEC60使用。CODEC60压缩视频;将压缩的数据缓存在压缩FIFO92中。状态机100从CODEC60得到数据计数并将其存储在1count 107寄存器中,并根据该计数设置QINDEX寄存器108,后者又进而选择用于编码下一个场的Q因子106。将压缩的视频数据从压缩FIFO92拷贝进主计算机的RAM50中。在那里,主机将用于编码数据的Q因子的复制品拷贝进带有压缩的数据的包报头111-114中。然后将压缩参数及压缩的数据写在盘24上供存储。
下面更详细地描述压缩进程。
视频数据总线38与压缩FIFO92之间的编码链路的同步部分基本上处于视频I/O端口所生成的象素时钟与垂直同步脉冲的控制之下。各场从一个带有其垂直同步脉冲的垂直空白间隔开始。状态机100在接收到垂直同步信号时捕获变量QINDEX108的值,用于编码将要到来的场的Q因子组的Q因子表106的索引。当状态机100正在捕捉QINDEX的值时,保护QINDEX寄存器108以防止受到更新。
当正在捕捉QINDEX值时,状态机100将确定从输入视频映射到输出视频值上的彩色的γ校正值加载进CODEC60。(可编程的γ值允许编码器补偿显示器之间的色差,诸如不同型号的CRT之间的不同荧光物质的彩色反应中的变化)。在捕捉到QINDEX108并加载了γ值之后,状态机100通过从表106中串行读出Q因子并将它们写入CODEC的控制寄存器102中而加载由QINDEX的值指示的Q因子表106的组到CODEC60中。
在各场的结尾处,状态机100将CODEC60置于压缩模式中,并生成一个垂直同步脉冲给CODEC60。在消隐期间,外围设备板10通过加载γ与Q因子值而为将要到来的场作好准备。第一水平同步脉冲标识下一个场的第一行。CODEC60已编程为略去视频的前面几行(为封闭的标题信息等保留的),并带有通知扫描行的数目及每一扫描行的象素等的值。CODEC60开始压缩包含实际图象数据的场的部分。
通过CODEC60将来自视频总线38的数字化视频数据压缩进压缩FIFO92之后,状态机100向CODEC60请求压缩的数据的计数值并将其存储在1count寄存器107中。
在下一个垂直消隐间隔与垂直同步脉冲上,微处理器48检验1count 107的值,如果刚压缩的场的数据量超过一个预定的上阈值,即如果它超过了压缩数据的目标量一个预定的百分比,则外围设备微处理器48通过增加QINDEX108从Q因子表106中选择另一组Q因子。这一新的Q因子组将导致更强烈地压缩后面的帧,而减少代表未来的帧的数据量。类似地,如果一个场的数据量下降到一个预定的下阈值以下,即如果它下溢目标一个百分比,微处理器48减小QINDEX来选择不同的Q因子组以降低压缩率,借此增加将生成的数据量,而同时又改进了后面的帧的画面质量。类似地,如果编码数据上溢或下溢目标两倍百分比窗口,状态机将增加或减小QINDEX一个适当的量,在本较佳实施例中为2。
可以使各组中的Q因子适应于节目内容,--例如,自然视频、动画、科技。阈值带大约为10%。
注意用来编码各帧的Q因子是作为压缩前一帧的结果计算出的。这一方法的优点是不需要额外的预压缩计算编码以前不需要评估一帧来确定其压缩质量,如果发现已经用“错误”的Q因子压缩了它也不需要重新压缩该帧。
在视频时钟确定的速率上为视频的各场重复上述步骤。一旦将压缩的象素存储在压缩FIFO92中,下面要讨论的其余处理便可以异步进行。将以下的步骤的定时强制成使它们进行得快到足以防止压缩FIFO92溢出。
主要参见图9并对照图4与7,总线控制电路42在来自外围设备的微处理器48的某些帮助下,将压缩的视频数据从压缩FIFO92传输进主机的RAM50中的盘缓冲器中。总线控制电路42从压缩FIFO92中抽取数据字,而控制逻辑228及地址发生器236则将数据组成16字的块供通过系统总线46总线传输。微处理器48与地址发生器236计算出1count寄存器107计数的可变长度记录。在各场的开始处,地址发生器在盘缓冲器中为一个数据包的报头区111-115留出131个字。微处理器48计数用在各RAM缓冲器中的字,并在完成了一个缓冲器及准备好写入盘24中时以信号指令主机CPU28。然后微处理器48将下一个缓冲器的地址提供给地址发生器236。
在各场的末尾,微处理器48发送一则消息到主机CPU28。这一消息指示索引用于编码该帧的Q因子组的QINDEX值108,以及编码该帧的字数的1count值107。主机CPU28通过索引检索其Q因子表,将适当的项拷贝到数据包的报头111-114中。1count值可由总线控制电路42直接拷贝到报头115中,或者由主机CPU28从“场完成”消息中拷贝。另外,微处理器48可将整个包报头111-115、Q因子与1count发送给主机供逐字插入包报头中。从而各编码的场具有解码所需的数据与它包装在一起。一旦缓冲器充满并且Q因子已与压缩的数据存储在一起,主机CPU28便将缓冲器写入盘24中。
总线控制电路42与微处理器48承担将视频数据从CODEC60传输到主机的RAM50中的缓冲器的全部实时重任。从RAM缓冲器到盘24的传输可由主机异步完成。主机在压缩期间的唯一责任是保持供外围设备在压缩中使用的可利用与空的盘缓冲器的充足供应。主机通过将满的缓冲器倾倒进盘24中来维持其空缓冲器的供应。
当用户要求解压缩时,例如回放一个前面压缩的视频数据剪辑部分,主机微处理器28与总线控制电路42通过向主计算机的盘24请求数据而承担保持解压缩FIFO94充满的责任;这一进程在下面讨论。当CODEC60从解压缩FIFO94中抽取压缩的数据时,状态机100将CODEC60设定在寄存器加载模式中,并计数掉报头112、114(各实际Q因子64个8位项),将它们存储在CODEC60的Q因子寄存器中。然后状态机100将CODEC60设定在数据压缩模式中。状态机选择信号分离器104将1count 104项送至1count寄存器107。然后将数据直接送给CODEC60,在其中它们被解压缩及作为数字视频提供在视频总线38上。每向CODEC60提供一个32位数据字便将1count寄存器107减少一,因此状态机100能告诉什么时候它已将该场的所有图象数据提交给了CODEC60。
再参见图8,对于要回放的各帧,外围设备处理器28发送一则“Pt-Video Frame Request”或“Pt_Audio Frame Request”消息包到主机请求由元素“帧”中指示的时间印记ID的帧。外围设备排起足够多的这些帧请求的队列,使得主机的缓冲器填充进程超前于外围设备的缓冲器抽空进程。主机将该消息翻译成对MacIn-tosh盘机的一个请求。一旦盘机将数据放入RAM50,主机CPU便将一个“Pt_Video Frame Descriptor”或“PT_Audio FrameDescriptor”包通过命令与状态队列64送回外围设备。该包指示主机的RAM50中读取数据的地址及数据计数。当微处理器48与总线控制电路42已将数据从缓冲器抽到解压缩FIFO94与声频输出FIFO98中时,外围设备将包的“类型”改变到“PT_VideoFrame Discard“或“PT_Audio Frame Discard”,并通过命令与状态队列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。在实践中,二次抽样窗口是几乎实时更新的(即在接近视频的速率上),延迟只限于2到4帧。
参见图9中所示的中央循环,外围设备的微处理器48监视FIFO并指令数据传输。微处理器48允许充分填满FIFO以便以块高效地传输数据。例如,二次抽样FIFO90可组成供通过系统总线46传输的16个32位宽的字的块。块间间隙允许其它操作,诸如CODEC拷贝操作、声道拷贝操作或动态RAM刷新周期抢占二次抽样视频数据流。这一结果是显示流是完全异步的——二次抽样窗口中的显示经常在两帧的显示部分之间分裂几分之一秒,通常是一个肉眼所不能分辨的极短时间。当CODEC流非常满的时候,诸如紧接在一个场景从容易压缩的内容改变到难于压缩的内容(诸如到带有许多较清晰的边的一个新场景)之后,总线控制电路42挂起卸载二次抽样FIFO90若干帧,直到拷贝流上的数据量降低为止。这一期间二次抽样FIFO90可能溢出。这时外围设备的微处理器48倒掉二次抽样FIFO90,等待下一帧或场边界,然后重新启动二次抽样视频流。
本发明的其它实施例在权利要求书的范围以内。
权利要求
1.一种采用压缩编码器压缩视频数据的方法,该视频数据包括一序列接连的段,所述压缩编码器用来压缩一个段的压缩方法是由加载在所述压缩编码器的控制寄存器中的压缩参数控制的,该方法包括下述步骤用所述压缩编码器将所述视频数据的第一段压缩成压缩的视频数据,所述控制寄存器已加载有压缩参数;测定用所述压缩参数压缩所述第一段块所得出的所述压缩的视频数据的大小;自动地将作为所述压缩的视频数据的所述大小的一个函数而变化的压缩参数重新加载进所述控制寄存器中;以及存储所述压缩的视频数据及用在压缩所述块中的压缩参数的一个标识。
2.权利要求1的方法,其中所述重新加载步骤进一步包括下述步骤判定所述压缩的视频数据的大小是否超过一个预定的上阈值,如果是,将指定比所述原来的压缩参数较大的压缩比与较低的质量的新的压缩参数加载进所述控制寄存器;以及判定所述压缩的视频数据的大小是否小于一个预定的阈值,如果是,则将指定的比所述原来的压缩参数较低的压缩比与较高的质量的新的压缩参数加载进所述控制寄存器。
3.权利要求1的方法,其中所述压缩参数中包括一个量化因子,一个增加的量化因子在将所述视频数据的未来段压缩成压缩的视频数据时,得出比用所述原来的压缩参数的量化因子压缩所述未来段,耗用更多的存储空间及明显地较少的压缩人为现象。
4.权利要求1的方法,其中所述压缩参数是在所述段之间的间隙上执行所述加载的在一个状态机的控制下加载进所述控制寄存器的。
5.权利要求1的方法,其中所述压缩的视频数据是存储在用于一台主计算机的一个大容量存储设备的缓冲器中的,所述缓冲器位于所述主计算机的存储器中。
6.权利要求5的方法,还包括下述步骤通知所述主计算机一个指示压缩参数的索引值,所述视频数据的所述段便是用这些参数压缩的,并且所述压缩的视频数据能用它们来解压缩;以及将所述压缩的视频数据及对应于所述索引值的解压缩参数存储在所述主计算机的一个大容量存储设备上。
7.权利要求5的方法,还包括下述步骤通知所述主计算机一个指示所述压缩的视频数据的大小的计数值;以及将所述压缩的视频数据及所述计数值存储在所述主计算机的一个大容量存储设备上。
8.权利要求5的方法,其中所述缓冲器具有为允许插入用于压缩所述压缩的数据的压缩参数及所述压缩的视频数据的大小的一个标识保留的空间。
9.权利要求5的方法,其中所述主计算机编程为用软件实现一个视频编辑系统。
10.权利要求1的方法,其中所述压缩的视频数据在所述存储之前是通过一个FIFO排队的,所述FIFO允许一台主计算机与所述压缩异步地处理所述存储的压缩视频数据。
11.权利要求1的方法,其中所述视频数据的每个所述段包含一帧。
12.权利要求1的方法,其中所述视频数据是以隔行扫描的次序提交给所述压缩编码器的,以及所述视频数据的每个所述段包含所述视频数据的一个场。
13.一种视频编辑装置,包括一台具有一个大容量存储设备的主计算机;一个外围设备控制器,包括一个视频输入端口,配置成接收与数字化视频输入;一个压缩编码器,以所述数字化的视频输入作为输入并产生输出的压缩的视频数据,所述压缩编码器所使用的压缩方法是通过将压缩参数加载进所述压缩编码器的控制寄存器中而加以控制的;一个计数器,配置成在所述压缩编码器输出所述块时,计数所述压缩视频数据的一个块;压缩调整装置,用于自动地将作为所述压缩的视频数据的所述计数的一个函数而确定的新的压缩参数重新加载进所述控制寄存器;以及一个总线控制电路,以所述压缩的视频数据作为输入,并配置成将所述压缩的视频数据及用于压缩所述压缩的视频数据的压缩参数传输到所述主计算机的所述大容量存储设备。
14.权利要求13的装置,其中所述压缩调整装置包括用于判定所述压缩的视频数据的大小是否超过一个预定的上阈值的装置,如果是,便在所述控制寄存器中加载指定比所述原来的压缩参数更大的压缩比与较低的质量的新的压缩参数;以及用于判定所述压缩的视频数据的大小是否小于一个预定的下阈值的装置,如果是,便在所述控制寄存器中加载指定比所述原来的压缩参数低的压缩比与较高的质量的新的压缩参数。
15.权利要求13的装置,其中所述压缩参数中包括一个量化因子,一个增加的量化因子在将所述视频数据的未来段压缩成压缩的视频数据时得到比利用所述原来的压缩参数的量化因子压缩所述未来段耗用更多的存储空间及明显的较少压缩人为现象。
16.权利要求13的装置,还包括一个状态机,它将所述压缩参数加载进所述控制寄存器中。
17.权利要求13的装置,其中所述主计算机具有位于所述主计算机的一个存储器中的用于所述大容量存储设备的缓冲器,以及所述总线控制电路将所述压缩的视频数据传输进所述缓冲器中。
18.权利要求17的装置,其中所述主计算机具有用于接收指示压缩参数的一个索引值的装置,所述视频数据的所述段便是用这些参数压缩的,及所述压缩的视频数据能用它们来解压缩;以及将所述压缩的视频数据及对应于所述索引值的解压缩参数存储在所述大容量存储器上的装置。
19.权利要求17的装置,其中所述主计算机具有从所述计数器接收所述压缩的视频数据的一个对应段的计数值并将所述计数值连同所述压缩的视频的所述对应段存储在所述大容量存储设备中的装置。
20.权利要求17的装置,其中所述缓冲器具有允许插入用于压缩所述压缩的数据的压缩参数及所述压缩的视频数据的大小的一个标识而保留的空间。
21.权利要求17的装置,其中所述主计算机编程为用软件实现一个视频编辑系统。
22.权利要求13的装置,其中所述外围设备控制器还包括FIFO,所述压缩的视频数据在其中排队等待传输到所述主计算机。
23.权利要求13的装置,其中所述视频数据的各所述段包括一帧。
24.权利要求13的装置,其中所述视频数据是以隔行扫描次序提交给所述压缩编码器的,所述视频数据的每个所述段包括所述视频数据的一个场。
全文摘要
一种采用压缩编码器(60)压缩视频数据的装置(10),该编码器(60)具有加载有压缩参数的控制寄存器(102),装置(10)被控制成测定从采用一组压缩参数压缩的一段源视频数据中得出的压缩视频数据的大小,以自动地重新加载作为测定到的压缩的视频数据的大小的一个函数而变化的压缩参数,其中该变化的参数是用于要压缩的视频数据的下一段的,以及与各压缩的段一起存储用在压缩该段中的压缩参数的一个标识。
文档编号H04N1/41GK1125031SQ94192287
公开日1996年6月19日 申请日期1994年3月14日 优先权日1993年4月16日
发明者J·R·哈迪曼 申请人:数据翻译公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1