视频信号编码系统控制器的制作方法

文档序号:7532206阅读:139来源:国知局
专利名称:视频信号编码系统控制器的制作方法
技术领域
本发明涉及用在视频信号编码系统中的控制器;而更具体地涉及通过确定一量化参数来防止缓冲器的上溢或下溢以控制来自编码系统的数据量,并且还确定该编码系统的帧间/帧内与场/帧DCT(离散余弦变换)模式的控制器。
随着通信与集成电路技术的新进展,数字化视频信号的传输已成为常见的现实。当以数字形式表示包含一序列图像“帧”的图像信号时,便会生成供传输的可观的数据量,尤其是在高清晰度电视系统的情况中。然而,由于一条传统传输信道可供利用的频带宽度是有限的,为了通过它来传输可观的数字数据量,不可避免地要利用减少传输数据量但不损失图像的主观质量的压缩技术。这方面,过去数十年中已产生若干种用于数字视频信号压缩的国际标准,并且还有许多当前正在开发。这些标准之一便是作为国际标准化组织(ISO)与国际电工技术委员会(IEC)的联合技术委员会的一部分的电影专家组(MPEG)开发的ISO/IEC MPEG标准。该标准规定了压缩的比特流的语法以及解码方法,但留有可观的余地以容许编码系统中所采用的算法中的变化。由于本发明是旨在用于这一编码系统中的,为了便于理解本发明,下面将说明MPEG视频压缩算法的一些相关方面。然而,必须指出,本发明也能应用于具有直接与本发明相关的某些MPEG算法的特征的其它视频编码算法。
一个MPEG视频序列可分成连续的画面或帧的集合,各集合称作一个画面组(GOP)。各GOP包含多个画面,各画面又细分成片。再进一步,各片由若干宏块(MB)构成,而各MB则由四个8×8的亮度块及两个8×8的色度块构成。
在一个GOP中可出现三种画面,第一种画面,即帧内模式画面或I画面,是与任何其它画面无关地压缩的。另外两种画面为预测运动补偿画面(P画面)与双向运动补偿画面(B画面)。
运动补偿为消除连续画面之间的冗余的一种压缩方法。在MPEG中,将各MB与参照帧中同一总空间位置中的16×16区进行比较。利用过去的一个单一的前面的帧作为参照帧进行预测运动补偿的帧为P画面。这种预测称作时间上向前预测。在B画面中,除了时间上向前预测还采用时间上向后预测。在I画面中,所有宏块是以帧内模式编码的,即用其本身而不考虑运动补偿加以编码。在P画面与B画面中,各宏块可以用帧内模式或者用帧间模式编码,其中帧间模式中的宏块是采用运动补偿编码的,为了为宏块选择两种编码模式中的一种,首先计算VAR与VAROR如下VAR=Σi=116Σj=116[O(i,j)-S(i,j)]2256-----(Eq.1A)]]>VAROR=Σi=116Σj=116O(i,j)2-ave[O(i,j)]256-----(Eq.1B)]]>其中O(i,j)与S(i,j)分别表示待编码的原始宏块中的象素值与采用传统运动补偿法重构的宏块中的象素值;而ave[O(i,j)]则为宏块中的O(i,j)的平均值。必须指出,VAR与VAROR分别与采用帧间与帧内模式编码该宏块中所得出的数据量相关。如图5中所示,帧间/帧内模式是根据VAR与VAROR之值决定的。
在MPEG与若干其它压缩标准中,采用了离散余弦变换(DCT),在利用隔行扫描来定义一帧的MPEG编码过程中可以有选择地采用两种DCT,即基于场的及基于帧的DCT。将构成一帧的水平行分成一个奇数与一个偶数场,其中的偶数行(行2,4,6…)构成偶数场,而奇数行(行1,3,5…)则构成奇数场。一个数字化隔行视频信号可用“场模式”或“帧模式”压缩。在场模式中,各帧是分成独立处理的偶数与奇数场的。在帧模式中,是通过交错对应的偶数与奇数场的行将两个场作为一个单一的帧处理的。对于视频压缩,这两种选择都不是完全令人满意的。由于每一帧具有存在于一个给定的图像的一个场中的行数的两倍,样本之间将具有较多的相关性,从而增加了可压缩性。然而,在详细的运动区中,帧模式处理受到交错偶数与奇数场引发的过高垂直频率的困扰。
对于DCT,场/帧DCT模式是在宏块的基础上选择的。利用下式来说明确定DCT模式的标准之一(见Test Model 4,ISO_IEC/JTC1/SC29/WG11 MPEG93/225)。VAR1=Σi=116Σj=115[O(i,j)-O(i,j+1)]2-----(Eq.2A)]]>RAR2=Σi=116Σj=114[O(i,j)-O(i,j+2)]2-----(Eq.2B)]]>对于其VAR1大于VAR2的宏块,采用以帧为基础的DCT,反之亦然。
由基于场或基于帧的DCT得到的DCT系数必须经过量化。量化是通过用Wmn×QP去除一块DCT系数达到的,其中Wmn表示一个加权因子矩阵而QP则为一个量化参数。加权因子使较粗糙的量化作用在视觉上较不显著的系数上。量化参数QP的作用为图象质量与比特率之间的折衷手段。QP可在一个画面内的MB之间变化。由于这一称作自适应量化的特征,各帧的不同区域能用不同的量化步长量化。
量化之后,采用诸如Huffman编码等可变长度编码(VLC)编码量化的系数。取决于视频信号的特征,从VLC得出的数据量随时间变化。因此,需要一种速率控制方法来将编码的数据调节到给定的传输率上。如上所述,这一速率控制器的作用为主要根据诸如缓冲器的充满程序及输入图像的活动来改变量化参数QP以控制编码数据量。
下面描述通过在宏块基础上适配量化参数来控制比特率的方案之一。整个过程在三步中完成目标比特分配;速率控制;及自适应量化。在第一步中,估算可用来编码下一帧的比特数。在第二步中,用一个虚拟缓冲器来为各宏块确定量化参数的一个参照值。最后,根据该宏块中的空间活动来调整量化参数的参照值以导出量化参数。下面更详细地描述各该步骤。<第一步骤比特分配>
编码了一定类型的一个画面(I,P或B画面)之后,更新一个相应的“总体复杂性测度”(Xi,Xp或Xb)如下Xi=Si×Qi(Eq.3A)Xp=Sp×Qp(Eq.3B)Xb=Sb×Qb(Eq.3C)其中Si,Sp或Sb表示通过编码对应的画面所生成的比特数,而Qi,Qp或Qb为通过为该画面中的所有宏块求出实际量化参数值的平均值而计算出的平均量化参数。
在编码过程开始时,将复杂性测度的初始常数值确定为Xi=160×BIT_RATE/115(Eq.3D)Xp=60×BIT_RATE/115 (Eq.3E)Xb=42×BIT_RATE/115 (Eq.3F)其中,BIT_RATE的值为以比特/秒测定的一个预定常数。
确定了Xi,Xp或Xb之后,便事先确定一个目标比特数,即在编码下一画面中生成的估算的比特数。
一个I、P或B画面的目标比特数(Ti,Tp或Tb)计算为Ti=max[R1+Np×XpXi×Kp+Nb×XbXi×Kb,BIT_RATE8×PICTURE_RATE]---(Eq.4A)]]>Tp=max[RNp+Nb×Kp×XbKb×Xp,BIT_RATE8×PICTURE_RATE]---(Eq.4B)]]>Tb=max[RNb+Np×Kb×XpKp×Xb,BIT_RATE8×PICTURE_RATE]---(Eq.4C)]]>其中,Kp与Kb为预定的常数。
R为分配给当前GOP的剩余比特数,并在编码一个画面之后更新如下R=R-Si(or Spor Sb) (Eq.5)其中,Si(或Sp或Sb)为刚编码的帧中所生成的位数,下标i,p或b表示帧的类型。编码一个GOP中的第一个画面之前的R的值确定为R=G+R (Eq.6A)G=BIT_RATE×N/PICTURE_RATE (Eq.6B)其中,N为表示该GOP中的画面数的常量,而PICTURE_RATE的值为一个预定的常数。在编码过程开始时,R的初始常数值为0。
在式4A至4C中,Np与Nb为剩余在当前GOP中的P画面与B画面的数目。因此,在一个GOP开始时,Np与Nb分别为包含在该GOP中的P画面与B画面的总数。<第二步骤速率控制>
在本步骤中,根据虚拟缓冲器的概念为各宏块计算一个参照量化参数。
在编码宏块j之前,取决于画面的类型确定虚拟缓冲器的充满程度如下dji=doi+Bj-1-Ti×(j-1)MB_cnt-----(Eq.7A)]]>djp=dop+Bj-1-Tp×(j-1)MB_cnt-----(Eq.7B)]]>djb=dob+Bj-1-Tb×(j-1)MB_cnt-----(Eq.7C)]]>其中,doi、dop与dob表示相应画面类型的一个画面开始时的虚拟缓冲器的充满程度;Bj为通过编码到并包含宏块j的当前画面中的所有宏块时所生成的位数;MB_cnt为画面中的宏块数;而dji、djp与djb则为相应的画面类型的宏块j上的虚拟缓冲器的充满程度。
将该画面结束时的虚拟缓冲器的最终充满程度(即在j=MB_cnt时的dj、dj、dj)用作编码同一类型的下一画面的do、do与do。
然后,将宏块j的参照量化参数(Qj)确定如下Qj=(dj×31)/r(Eq.8)其中,r=2×BITE_RATE/PICTURERATE,而dj为虚拟缓冲器的充满程度。
在编码过程开始时,虚拟缓冲器的充满程度值为doi=10×r/31 (Eq.7D)dop=Kpdoi(Eq.7E)dob=Kbdoi(Eq.7F)<第三步骤自适应量化>
在本步骤中,根据图象的空间活动从参照量化参数中计算实际上用在量化各宏块中的Mquant(修正的量化参数)。
宏块j的空间活动测度用帧内象素值从宏块j的四个亮度帧组成的块与四个场组成的块中计算如下其中var_sblk=164Σk=164(Pk-Pmean)2-----(Eq.10)]]>及Rmean=164Σk=164Pk-----(Eq.11)]]>Pk为原始块中的象素值。在帧组成的块的情况中,一actj=1+min(var_sblk) (Eq.9)sblk=1to8其中块由8个接连的行组成,而在场组成的块的情况中,分开奇数场与偶数场的行来构成分离的块。
然后,确定归一化actj(N_actj)为N_actj=2×actj+avg_actactj+2×avg_act-----(Eq.12)]]>其中,avg_act为最后画面的actj的平均值。第一画面的avg_act为400。
此后,最终确定Mquant如下Mquantj=Qj×N_actj.(Eq.13)将Mquantj的最终值箝切到1到31的范围内并将其应用在量化过程中。
这样做,如果从编码过程中得出的位数超过一个预定的值(馈送给缓冲器的数据增加),便增加量化步长,反之亦然,从而使缓冲器充满程度达到一定水平。
上述三项任务,即帧间/帧内与场/帧DCT模式以及量化参数确定,涉及一系列数学过程。虽然这些作业可用一个通用处理器来完成,但从成本与速度考虑,设计一种专用于这些任务的电路是有利的。
因此,本发明的主要目的为提供一种计算量化参数及确定帧间/帧内模式与场/帧DCT模式的控制器的结构与操作方法。
按照本发明,提供了一种用于在视频信号编码系统中确定帧间/帧内模式、场/帧DCT模式及量化参数的控制器,其中该视频信号包含许多GOP,GOP中的每个分类成三种类型的画面,各画面分成许多宏块,并且该编码系统在宏块的基础上编码视频信号,该控制器包括一个状态机,用于生成一个控制序列,其中包含响应当前正在编码的画面的类型以及表示画面开始的信号的多个控制信号;一个算术单元,用于响应该控制序列,通过根据当前正在编码的宏块的序号与预定的初始常数值计算一组预定的公式,而为画面中的各宏块生成一组控制值,该组控制值表示帧间/帧内模式、场/帧DCT模式及量化参数;以及一个存储器与输入/输出单元,用于存储初始常数值,将初始常数值提供给算术单元,存储在算术单元上确定的该组控制值并提供这些控制值供在编码视频信号中使用。
从下面结合附图给出的较佳实施例的描述中,本发明的上述及其它目的与特征将是显而易见的,附图中

图1示出采用本发明的控制器的视频信号编码系统的方框图;图2描绘本发明的控制器的详细方框图;图3表示图2中所示的存储器与I/O单元的方框图;图4提供图2中所示的算术单元的方框图;以及图5示出利用VAR与VAROR确定帧间/帧内模式的方法。
参见图1,其中示出了采用本发明的控制器100的传统视频编码系统的方框图,它确定帧间/帧内模式、场/帧DCT模式及量化参数Mquant。
首先,将待编码的视频信号的当前帧数据馈入DPCM部件200与运动补偿(“MC”)部件500。同时将来自MC部件500的预测帧数据馈入DPCM部件200。实际上,在整个编码过程中,视频数据是在宏块的基础上提供与处理的。取决于编码模式,即相关宏块的帧间/帧内模式,在DPCM部件200上将预测的帧数据与当前帧数据之间的差或者当前帧数据本身提供给DCT部件250。在DCT部件250上用诸如DCT变换该差值或当前帧数据,并将变换系数馈入量化(“Q”)部件300及在其中量化。此后,经由两条信号路径传输量化的变换系数一条导向熵编码器350,在其中,采用诸如行程长度与可变长度编码的组合来编码这些量化的变换系数;而另一条导向逆量化(“IQ”)部件400,然后到逆DCT(“IDCT”)部件450,在其中将量化的变换系数转换回重构的帧数据。将重构的帧数据馈入MC部件500,在其中采用本技术中众所周知的运动估算与补偿法得出预测的帧数据。
将来自熵编码器350的编码数据馈入缓冲器600并传输给一个对应的解码系统。
本发明的控制器100的作用为在宏块基础上确定帧间/帧内模式、场/帧DCT模式及量化参数,并提供信号将前两个通知DPCM部件200及后一个通知Q部件300。响应帧间/帧内模式信号,DPCM部件200将预测的帧数据与当前帧数据之间的差(帧间模式)或者当前帧数据本身(帧内模式)提供给DCT部件250。差值或象素值是以8×8的块为单位提供的并为其执行8×8DCT。从DPCM部件200提供给DCT部件250的这些块的格式取决于场/帧DCT模式信号。在帧DCT模式情况中,DPCM部件200提供帧组成的块,而在场DCT模式情况中,则提供场组成的块,使得DCT部件250能根据模式执行基于场或帧的DCT。利用提供给Q部件300的量化参数来调整量化的粗糙性/精细性并借此控制缓冲器600的充满程度。
参见图2,其中示出了图1中所示的控制器100的详细方框图。
在本发明的控制器100上,包含在三种判定中的所有算术计算都是在状态机120及存储器与I/O单元140的协助下在算术单元130上执行的。
提交用来完成这些任务的输入信号。这些输入信号为PIC_SYNC、MBS、CLD、RESET、PIC_TYPE、BUF_FULL以及来自图1中所示的DPCM部件的差数据或当前帧数据,等等。在输入信号中,馈入图2中所示的控制单元110的PIC_SYNC与MBS分别表示各帧与各宏块的起始。RESET与CLK为系统控制信号。输入状态机120的PIC_TYPE表示当前处理的帧属于三种画面类型,即I、P或B,中的哪一种。PIC_SYNC、MBS与PIC_TYPE可从输入视频信号流中获得。表示缓冲器600的状态的BUF_FULL是输入到算术单元130中的。
在进行三种判定时必须用到各种初始常数值。这些值是按照系统设计预定及输入到本发明的控制器100中的,更具体地,是在控制器100执行计算之前经由L90输入到存储器与I/O单元140中的。在上列各式中,编码过程起始时的Xi、Xp、Xb、R、Nb与Np的初始常数值以及Kp与Kb的值为这些实例中的一部分。
响应其输入信号,控制单元110生成一对控制信号并将它们提供给状态机120。首先,控制单元110提供表示要在控制器100上完成的是基于画面的操作还是基于宏块的操作的PRCS_PIC_MS,其中基于画面与基于宏块的操作分别对应于上面给出的在每一个画面与每一个宏块上执行的公式。必须指出,基于画面的操作的例子为式3A至3C、4A至4C、5,而基于宏块的操作的例子则为式1A、1B、2A、2B、7A至7C、8至13。其次,控制单元110生成标识当前待处理的宏块的MB_NUM并将其提供给算术单元130。
响应诸如PIC_TYPE及PRCS_PIC_MB等输入信号,状态机120生成一个控制序列流并将其提供给算术单元130及存储器与I/O单元140,借此令算术单元130执行上述公式之一。状态机120可根据在算术单元130上执行的公式编程为生成预定的控制序列。
存储器与I/O单元140在L90上接收与存储来自主处理器(未示出)的初始常数值并在L50上接收与存储来自算术单元130的计算结果。响应经由L80来自状态机120的控制序列,存储器与I/O单元140受到控制在L60上提供初始常数值及包含在计算结果中的暂时值,其中这些暂时值是指从某些公式中得出的计算结果并且也是在计算某些其它公式所需要的以及用前面的宏块(或画面)的值为各宏块(或画面)更新的计算结果而言。在上面的公式中,编码过程进行中的Ti、Tp、Tb、R、djidjp与djb的值便是这些例子中的一部分。还控制存储器与I/O单元140输出计算的最终结果,即帧间/帧内、场/帧DCT模式及量化参数到图1中所示的DPCM与Q部件200与300。下面分别参照图3与4给出算术单元130及存储器与I/O单元140的操作的更详尽的描述。
参见图3,其中为图2中所示的存储器与I/O单元140的方框图。
HOST_DATA表示用来在算术单元130上执行公式的初始常数值。式4A至4C中的BIT_RATE、PICTURE_RATE、Kp与Kb、编码过程起始时的Xi、Xp、Xb、R、Np、Nb、doi、dop、与dob的初始常数值便是作为HOST_DATA提供的这些初始常数的实例。它们是由起存储与提供根据诸如系统设计预定的各种初始常数值作用的主处理器提供的。在编码图象序列开始时,所有必要的常数是在L90上经由MUX(多路复用器)166提供给并存储在RAM(随机存取存储器)160中的。当算术单元130在执行上述公式中需要它们中的某一些时,便在L60上将它们从RAM160提供给算术单元130。
还将算术单元130上得出的计算结果经由L50馈送给MUX166并存储在RAM160中。这些计算结果的实例为R、Np、Nb、Ti、Tp、Tb等。R为用式5的规定所确定的分配给当前GOP的剩余比特数,它是存储在RAM160中并在编码了一帧之后在算术单元130上更新的。Np与Nb为剩余在当前GOP中的P与B画面的相应数目,它们用在按照式4A至4C计算目标位数Ti、Tp、与Tb中。
ST_WR_ADRS与HOST_WR_ADRS分别为用来将数据,即经由MUX166输入的来自算术单元130的数据及HOST_DATA写入RAM160中的地址信号。ST_WR_EN与HOST_WR_EN为启动信号,它们在数据写入RAM160时进入活跃状态。
当正在将一个初始常数值馈入RAM160时,MUX162、164与166分别选择HOST_WR_ADRS、HOST_WR_EN与HOST_DATA。HOST_WR_ADRS表示要存储该初始常数值的RAM160的地址而HOST_WR_EN则为活跃状态。类似地,当将来自算术单元130的计算结果输入到RAM160中时,MUX162、164与166分别选择ST_WR_ADRS、ST_WR_EN与L50上的数据,ST_WR_ADRS表示要存储计算结果的RAM160的地址而ST_WR_EN则为活跃状态。
RD_ADRS为用于读取存储在RAM160中的数据的地址信号,并将其提供给图1中所示的算术单元130或DPCM或Q部件之一。具体地,初始常数值或在算术单元130上确定的暂时值是从RAM160读取及经由L60提供给算术单元130的。同时,将三种判定的最终结果,即帧间/帧内及场/帧DCT模式与量化参数确定结果Mquant馈送到图1中所示的DPCM与Q部件。
参见图4,其中提供了图2中所示的算术单元130的方框图。
分别将MB_NUM与BUF_FULL从控制单元110与缓冲器600馈送到MUX132a。还将来自DPCM部件200的差数据或当前帧数据馈送到MUX132a。如上所述,初始常数值及暂时值是经由L60从存储器与I/O单元140提供的,更具体地,是从图3中所示的RAM160中提供的。
FR_EXT_SEL、REG_EN_X、REG_EN_Y、CIN、OPERATION_SEL、FEED_BACK_SEL、DIV_START、QUOT_EN、TO_RAM_SEL、WINDOW_PNT与FR_RAMPNT为包含在从图2中所示的状态机120所提供的控制序列中的控制信号。图4中所示的算术单元130的各种元件是按照该控制序列加以控制来执行算术任务的。下面提出这些控制信号的功能。(1)FR_RAM_PNT(或WIN_PNT)在数据输入到桶形移位器131(或136)时有效。FR_RAM_PNT(或WIN_PNT)的值表示输入数据在桶形移位器131(或136)上移位的位数。例如,如果FR_RAM_PNT为“2”,桶形移位器131的输出为其输入的四倍。(2)FR_EXT_SEL(或FB_SEL)表示所选择与提供给REGISTER(X)133a(或REGISTER(Y)133b)的是MUX132a(或132b)的输入的哪一个。(3)REG_EN_X(或REG_EN_Y)在数据正在存储进REGISTER(X)(或REGISTER(Y))时为有效状态。(4)CIN、DIV_START、QUOT_START它们是控制计算部件134的信号。
CIN表示ADD(加法器)134a所提供的是来自REGISTER(X)与REGISTER(Y)的两个操作数的相加结果,还是进一步将该相加结果增加一。
DIV_START通知DIV(除法器)134d开始除法运算。
QUOT_EN表示何时从DIV134d输出除法结果,即商。它应从除法开始时起DIV134d等待后启动一个时钟周期。
注意,对于包含在计算部件134中的其它部件,即ADD134a、SUB(减法器)134b及MUL(乘法器)134c,不使用启动或开始信号。在从REGISTER(X)与/或REGISTER(Y)读取输入到其中的操作数时,ADD、SUB与MUL执行对应的运算而不等待开始信号。还要注意,对于ADD、SUB与MUL,不使用对应于QUOT EN的信号。在完成计算时,ADD134a、SUB134b及MUL134c立即输出结果。ADD与SUB不延迟便提供结果,但DIV134d与MUL134c经过预定的延迟之后才输出结果。(5)OP_SEL向MUX135指示在计算部件134上得出的运算结果之一。计算部件134分别用对应的部件,即ADD134a、SUB134b、MUL134c与DIV134d执行加法、减法、乘法与除法。除了这四种运算之外,计算部件134会同MUX135比较分别来自REGISTER(X)133a与REGISTER(Y)133b的两个操作数A与B。比较是通过首先从操作数(A)中减去另一个(B)然后根据减法结果的符号在MUX135上选择操作数之一来执行的。如图4所示,来自SUB134b的输出的MSB(最高位)或符号位构成OP_SEL的一位,借此影响选择。例如,如果符号为‘+’,则选择A作为MUX135的输出;否则选择B。(6)TO_RAM_SEL当正在将来自算术单元130的数据写入RAM160时有效。它还表示将MUX137的两个输入,一个来自MUX132a而另一个来自桶形移位器136,中哪一个提供给RAM160。
下面用按照下列公式计算Ti的一个示范性过程来描述算术单元130的子部件Ti=max[R1+Np×XpXi×Kp+Nb×XbXi×Kb,BIT_RATE8×P_RATE].]]>首先,介绍计算(Np×Xp)/(Xi×Kp)的过程。该过程包括以下10个步骤。在各步骤中,为完成指派给该步骤的任务而从状态机120提供的控制信号是连同其功能一起说明的。不在各步骤中说明但包含在控制序列中的其余控制信号在“无关”状态中,这意味着这些信号与进行对应的任务无关。[1]将Xi从RAM160读入REGISTER(X)133aRD_ADRSXi在RAM160中的地址FR_RAM_PNT‘0’(这表示来自RAM160的数据不乘以2n,n为一个非负整数)FR_EXT_SEL选择来自桶形移位器131的输出REG_EN_X;启动REGISTER(X)一个时钟周期以防止其它无关数据改写REGISTER(X)上的Xi值[2]从RAM160中读取KpRD_ADRSKp在RAM160中的地址FR_RAM_PNT;‘O’FB_SEL选择来自桶形移位器131的输出REG_EN_Y启动REGISTER(Y)一个时钟周期以防止其它无关数据改写REGISTER(Y)上的Kp值[3]启动Xi×Kp及读取Np这两个任务是同时进行的,在启动Xi×Kp中不需要控制信号。以下用于读取Np。RD_ADRSNp在RAM160中的地址FR_RAM_PNT‘0’FR_EXT_SEL选择来自桶形移位器131的输出REG_EN_X启动REGISTER(X)一个时钟周期[4]从RAM160中读取XpRD_ADRSXp在RAM160中的地址FR_RAM_PNT‘0’FB_SEL选择来自桶形移位器131的输出REG_EN_Y启动REGISTER(Y)一个时钟周期[5]启动Np×Xp不需要控制信号[6]完成Xi×Kp及将结果写入RAM160OP_SEL从MUL134c中选择一个输出WIN_PNT‘0’(表示来自MUX135的数据不乘以2n)TO_RAMSEL;选择来自桶形移位器136的输出并将其提供给RAM160[7]从RAM160中读取Xi×KpRD_ADRSXi×Kp的地址FR_RAM_PNT‘0’(表示来自RAM160的数据不乘以2n)FR_EXT_SEL选择来自桶形移位器131的输出REG_EN_X启动REGISTER(X)一个时钟周期[8]完成(Np×Xp)及将结果反馈给REGISTER(Y)OP_SEL选择来自MUL134c的输出WIN_PNT‘0’FB_SEL从桶形移位器136中选择一个输出REG_EN_X停用REGISTER(X)一个时钟周期REG_EN_Y启动REGISTER(Y)133b一个时钟周期[9]启动(Np×Xp)/(Xi×Kp)DIV_START向DIV134d通知启动除法[10]完成(Np×Xp)/(Xi×Kp)及将结果写入RAM160QUOT_EN将除法结果耦合到MUX135上OP_SEL选择来自DIV134d的输出WIN_PNT‘0’TO_RAM_SEL选择来自桶形移位器136的输出ST_WR_ADRS;写入(Np×Xp/(Xi×Kp)的地址ST_WR_EN启动RAM160的写入操作以上述步骤[1]至[10]相似的过程,计算(Nb×Xb)/(Xi×Kb)及存储在RAM160中。在FB_SEL与REG_EN_Y的协助下将结果也馈入REGISTER(Y)133b。此后,继续进行步骤[11]至[17]。[11]将(Np×Xp)/(Xi×Kp)读入REGISTER(X)133a类似于步骤[1]。注意该数据是在步骤[10]中存储在RAM160中的。[12]计算1+(Np×Xp)/(Xi×Kb)+(Np×Xp)/(Xi×Kp)及将结果馈入REGISTER(Y)CIN表示将1加到两个操作数的相加结果上OP_SEL选择ADD134a的输出WIN_PNT‘0’FB_SEL选择来自桶形移位器136的输出。REG_EN_Y启动一个时钟周期。[13]将R从RAM160读入REG1STER(X)133a类似于步骤[1][14]启动R/1+(Nb×Xb)/(Xi×Kb)+(Np×Xp)/(Xi×Kp)DIV_START向DIV134d通知启动除法[15]完成R/1+(Nb×Xb)/(Xi×Kb)+(Np×Xp)/(Xi×Kp)及将结果馈入REGISTER(Y)QUOT_EN将除法结果耦合到MUX135上OP_SEL选择来自DIV134d的输出WIN_PNT‘0’FB_SEL选择来自桶形移位器136的输出REG_EN_Y启动一个时钟周期[16]将BIT_RATE/(8×PICTURE_RATE)从RAM160读入REGISTER(X)类似于步骤[1][17]将R/1+(Nb×Xb)/(Xi×Kb)+(Np×Xp)/(Xi×Kp)与BIT_RATE/(8×PICTURE_RATE)进行比较,选择较大的一个及将其存储在RAM160中。OP_SEL根据SUB134b的输出的符号位(或MSB),从REGISTER(X)或REGISTER(Y)之一选择输出,WIN_PNT‘0’TO_RAM_SEL选择来自桶形移位器136的输出ST_WR_ADRS表示写入Ti的地址ST_WR_EN启动RAM160的写入操作通过逐步执行上述过程便完成了计算式4A中给出的Ti,其中包含加法、乘法、除法、比较及RAM160中取数据及将数据存储在RAM160中。其它公式也能以类似的方式计算。通过求出公式的结果,便执行了指定给本发明的控制器100的三项任务。
虽然已经相对于具体的实施例描述了本发明,显而易见,对于熟悉本技术的人员而言,可以作出各种改变与修正而仍不脱离以下的权利要求书中所定义的发明精神与范围。
权利要求
1.用在视频信号编码系统中的一种控制器,用于确定帧间/帧内模式、场/帧DCT模式及量化参数,其中该视频信号包含许多GOP,各个GOP分类成三种类型的画面,各画面分成许多宏块,编码系统在宏块的基础上编码视频信号,所述控制器包括一个状态机,用于生成一个控制序列,其中响应当前编码的画面的类型及一个表示画面开始信号包含多个控制信号;一个算术单元,用于响应该控制序列为画面中的各宏块生成一组控制值,该组控制值通过根据当前编码的宏块的序号及预定的初始常数值计算一组预定的公式,指明帧间/帧内模式、场/帧DCT模式及量化参数;以及一个存储器与输入/输出单元,用于存储初始常数值,将初始常数值提供给算术单元,存储在算术单元上确定的该组控制值,及提供这些控制值供在编码视频信号中使用。
2.权利要求1的控制器,其中所述存储器与输入/输出单元包括一个存储器装置,其中存储有初始常数值及控制值;一个读取装置,用于响应控制序列提供控制值;以及一个写入装置,用于响应控制序列,将控制值输入到及存储在存储器装置上。
3.权利要求1的控制器,其中该控制序列包括写地址信号,它指示存储器装置中存储初始常数值及控制值的单元;写启动信号,它在将初始常数值或控制值之一存储在存储器装置上时进入活跃状态;以及读地址信号,它指示从其中提供初始常数值及控制,值的存储器装置的单元。
4.权利要求2的控制器,其中所述算术单元还生成在计算预定的公式组的进程中得出的暂时值;这些暂时值进一步存储在存储器装置上;所述读取装置进一步响应控制序列将暂时值提供给算术单元;以及所述写入装置进一步响应控制序列将暂时值输入到及存储在存储器装置上。
5.权利要求4的控制器,其中该控制序列包含写地址信号,它指示存储器装置中存储初始常数值、控制值及暂时值的单元;写启动信号,它在将初始常数值、控制值或暂时值之一存储在存储器装置上时,进入活跃状态;以及读地址信号,它指示从其中提供初始常数值及控制值供在编码视频信号中使用,及从其中将暂时值提供给算术单元的存储器装置中的单元。
6.权利要求1的控制器,其中该算术单元包括一个第一输入装置,用于从第一组输入值中选择一个第一输入值;一个第二输入装置,用于从第二组输入值中选择一个第二输入值,第二组中包含在第一输入装置上选择的第一输入值;一个第一与一个第二寄存器,分别用于存储第一与第二输入值;一个计算装置,用于执行加法、减法、乘法、除法及第一与第二输入值的比较,借此提供由加法结果、乘法结果、减法结果、除法结果及比较结果构成的一组计算结果;一个选择装置,用于选择计算结果之一;以及一个输出装置,用于将所选择的计算结果或第一输入值作为输入值之一提供给第二输入装置或者提供给存储器与I/O装置。
7.权利要求6的控制器,其中该计算装置包括用于提供第一与第二输入值的相加结果的装置;用于提供从第一输入值减去第一输入值的减法结果的装置,减法结果由一个符号及一个绝对值构成;用于在将第一与第二输入值输入到其中的时间起经过一个预定的第一延迟量之后,提供第一与第二输入值的相乘结果的装置;用于在将第一与第二输入值输入到其中的时间起经过一个预定的第二延迟量之后,提供第一输入值除以第二输入值的除法结果的装置。
8.权利要求6的控制器,其中该算术单元包括一个第一输入装置,用于从第一组输入值中选择一个第一输入值;一个第二输入装置,用于从第二组输入值中选择一个第二输入值,第二组中包含在第一输入装置上所选择的输入值;一个第一及一个第二寄存器,分别用于存储第一与第二输入值;一个计算装置,用于执行加法、减法、乘法、除法及第一与第二输入值的比较,借此提供由加法结果、乘法结果、减法结果、除法结果及比较结果构成的一组计算结果;一个选择装置,用于选择计算结果之一;以及一个输出装置,用于将所选择的计算结果或第一输入值作为输入值之一提供给第二输入装置或者提供给存储器与I/O装置,其中该计算装置包括用于提供第一与第二输入值的相加结果的装置;用于提供从第一输入值减去第二输入值的减法结果的装置,减法结果由一个符号及一个绝对值构成;用于在将第一与第二输入值输入到其中的时间起经过一个预定的第一延迟量之后,提供第一与第二输入值的相乘结果的装置;以及用于在将第一与第二输入值输入到其中的时间起经过一个预定的第二延迟量之后,提供第一输入值除以第二输入值的除法结果的装置。
9.权利要求8的控制器,其中该控制序列还包含一个第一与一个第二输入选择信号,第一与第二输入装置分别对它们作出响应,选择第一与第二输入值;一个第一与一个第二寄存器启动信号,第一与第二寄存器分别对它们作出响应,存储第一与第二输入值;一个加法控制信号,通知加法装置是否进一步在加法结果上增加一;一个除法启动信号,除法装置对其作出响应启动除法;一个除法启动结束信号,表示在除法装置上何时完成除法;一个操作选择信号,选择装置对其作出响应选择计算结果之一,其中如果选择了比较结果,选择装置便响应操作信号及减法结果的符号,选择第一或第二输入值;以及一个选择信号,输出装置对其作出响应,将所选择的计算结果或第一输入值作为输入值之一提供给第二输入装置,或者提供给存储器与I/O装置。
10.用在视频信号编码系统中的一种控制器,用于确定帧间/帧内模式、场/帧DCT模式及量化参数,其中该视频信号包含许多GOP,各GOP分类成三种类型的画面,各画面分成许多宏块,编码系统在宏块基础上编码视频信号,所述控制器包括用于根据当前编码的画面的类型,生成包含多个控制信号的一个控制序列,及用于提供指示当前编码的宏块的序号的信号、指示画面开始及宏块开始的信号的装置;一个算术单元,用于根据控制序列及预定的初始常数值计算一组预定的公式,为各宏块生成指示帧间/帧内模式、场/帧DCT模式及量化参数的一组控制值;以及一个存储器与输入/输出单元,用于存储初始常数值、将初始常数值提供给算术单元,存储在算术单元上确定的该组控制值,及提供这些控制值供在编码视频信号中使用。
全文摘要
用在视频信号编码系统中的一种控制器,包括一个状态机,用于响应当前编码的画面的类型及指示画面的开始的信号,生成包含多个控制信号的一个控制序列;一个算术单元,响应该控制序列,根据当前编码的宏块的序号及预定的初始常数值,计算一组预定的公式;为画面中的各宏块生成一组控制值;以及一个存储器与输入/输出单元,用于存储初始常数值,将初始常数值提供给算术单元,存储在算术单元上确定的该组控制值,及提供控制值供在编码视频信号中使用。
文档编号H03M7/40GK1143301SQ9610717
公开日1997年2月19日 申请日期1996年6月28日 优先权日1995年6月30日
发明者金圣桢 申请人:大宇电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1