法律状态公告日
法律状态信息
法律状态
2011-08-10
未缴年费专利权终止 IPC(主分类):H04N7/26 授权公告日:20051019 终止日期:20100530 申请日:20030530
专利权的终止
2005-10-19
授权
授权
2004-03-31
实质审查的生效
实质审查的生效
2004-01-21
公开
公开
该申请要求韩国专利申请No.2002-40405的优先权,该专利申请于2002年7月11日在韩国知识产权局提交,在这里公开的所有内容作为参考。
技术领域
该发明涉及一种运动图像的编码方式及其设备,更具体地说,就是一种用来控制DCT计算量的方法和设备。
背景技术
图1的框图表示了用来产生常规运动图像编码的编码器120和解码器140。为了获得需要的视频(VOD)服务或运动图像通信,编码器120利用压缩技术产生编码比特流,同时解码器140从接收的比特流中恢复图像。
离散余弦变换(DCT)单元122实现对接收的图像数据在8×8象素块(pixelblock)内进行DCT操作,这样可以消除空间相关性。量化器(Q)单元124实现对DCT系数的量化,这些系数在DCT单元122中获得,来完成高效的有损压缩(loss-compression)。
逆量化(IQ)单元126对Q单元124量化的图像数据进行解量化。逆DCT(IDCT)单元128对IQ单元126解量化的图像数据进行IDCT操作。帧存储器130以帧连帧的方式存储由IDCT单元128执行IDCT后的图像数据。
根据当前接收的图像数据帧和存放在帧存储器130内的先前图像数据帧,运动估计器(ME)/运动补偿器(MC)单元132估计独立宏数据块的运动向量(MV)和估计相当于块匹配误差的绝对值差值之和(SAD)。
变长编码器(VLC)单元134,利用ME/MC单元132估计的MV来去掉DCT和量化后的数据内的冗余。
编码器120编码后的比特流由解码器140进行解码,该解码器包括变长解码器(VLD)单元142,IQ单元144,IDCT单元146,帧存储器148,和MC单元150。
VOD服务或实时运动图像通信需要实时的运动图像编码和解码,这些可以通过有效的控制解码和编码的计算量来实现。所有的运动图像编码技术,包括MPEG 4和H.26x,DCT单元和ME单元是需要计算量最多的地方。
因此,编码器利用跳DCT技术(DCT skipping technique)和快速ME算法来减少DCT单元和ME单元所需要的计算量。编码器的计算量是由编码器的编码结果来确定的,并受到跳过的数据块的数目的影响。
另外,美国专利No.6,122,321阐述了近似于图1所示的编码器设备。
图2表示了一个利用传统跳DCT技术的运动图像编码器。图2中运动图像编码器的结构是在图1的编码器120基础上增加一个用来控制DCT单元120计算量的DCT计算量控制器280。
这个DCT计算量控制器280,将ME 270估计的每个数据块的SAD和Q单元220的量化系数(Q)与预设的门限(T)比较,来决定在DCT单元210内的每个8×8象素块上实现的DCT是否可以跳过。更详细的说,如果SAD/Q比预设的门限T小,那么该数据块的结尾(EOB)近似于0,相应的DCT计算量控制器280就不再处理接收的数据。另一方面,如果SAD/Q比预设的门限T大,那么DCT计算量控制器280就实现对DCT的控制。这样,就降低了编码器上的DCT计算量。
然而,对于传统的运动图像编码器,在解码器上可实现的计算量是有限制的,而实际上分配的计算量和真实计算量会依赖于环境而改变,这一点并没有考虑。因此,当输入一个经传统运动图像编码器编码后的比特流,解码器就可能不能对接收的比特流进行解码,或者不能充分利用分配的计算量。
而且,对于传统的运动图像编码器,预设的门限T在图像序列内是个固定值,这就意味着并没有考虑每一个宏数据块或帧上的DCT计算量是变化的。因此,不能实现对接收运动图像数据的实时编码。
发明内容
考虑到解码器的计算量,该发明提供了一种在编码器中控制运动图像编码的DCT计算量的方法和设备,这样分配给解码器的计算量可以充分得到利用,而且输入的比特流也能正常编码。
该发明还提供了一种控制运动图像编码的DCT计算量的方法和设备,其中运动图像编码器通过由运动估计单元将运动估计计算量的变化分配给DCT单元,使得运动图像编码器的计算复杂度可以始终不用考虑图像的特征而被连续地保持。
根据本发明的一个方面,为运动图像编码提供一种控制对运动图像编码进行离散余弦变换(DCT)的计算量的方法,该方法包括:接收代表先前图像数据的解码计算量的解码器复杂度信息;和根据接收的解码器复杂度信息,控制对当前图像数据的跳DCT操作。
最好,解码器计算量信息能进一步包括计算解码器复杂度信息,该信息表示之前的图像数据的解码计算量。
最好,跳DCT控制的步骤包括:利用接收的解码器复杂度信息,计算出当前图像数据的目标DCT计算量;根据计算的目标DCT计算量,计算出对当前图像数据实行跳DCT操作的门限值;和根据该计算的门限值,控制对当前图像数据的跳DCT操作。
根据本发明的一方面,该发明还提供了一种控制为运动图像编码DCT计算量的设备。该设备包括:DCT计算量控制器,利用代表对先前输入图像数据来说的解码计算量的解码器复杂度信息,控制对当前图像数据的跳DCT操作;和DCT单元,根据从DCT计算量控制器输出的控制信号,实现对输入的当前图像数据执行DCT或跳DCT操作。
最好,该设备还包括解码器复杂度计算器,计算解码器复杂度信息,该解码器复杂度信息表示对输入的先前图像数据进行解码的计算量。
最好,DCT计算量控制器利用解码器复杂度信息,计算出当前图像数据的目标DCT计算量,根据计算的目标DCT计算量,计算出对当前图像数据实行跳DCT操作所需的门限值,和根据该计算的门限值控制对当前图像数据的跳DCT操作。
根据本发明的另一方面,该发明还提供了一种为运动图像编码提供一种控制离散余弦变换(DCT)计算量的设备,包括:一个DCT计算量控制器和一个DCT单元。DCT计算量控制器利用表示对输入的先前时刻图像数据进行解码的计算量的解码器计算量信息,来控制对当前图像信号进行跳DCT操作。DCT单元根据从DCT计算量控制器输出的控制信号,来实现对当前输入的图像数据进行DCT操作或DCT操作的跳步执行。
最好,该设备还能包括一个解码器计算量计算器,可以统计表示先前输入图像数据解码计算量的解码器的计算量信息。
最好,DCT计算量控制器包括:利用解码计算量信息计算出当前图像数据所需要的目标DCT计算量;根据计算的目标DCT计算量,利用对当前图像数据的跳DCT操作来计算门限;和根据计算的门限来控制对当前图像数据的跳DCT操作。
根据本发明的另一方面,提供一种控制运动图像编码的DCT计算量的设备,该设备包括:DCT计算量控制器,使用表示先前图像数据的解码计算量信息的解码器复杂度信息和表示运动估计(ME)计算量的变化信息的ME计算量变化信息来控制对当前图像数据的跳DCT操作;和DCT变换器,根据从DCT计算量控制器输出的控制信号,实现对输入的当前图像数据进行DCT或跳DCT操作。
最好,DCT计算量控制器利用解码器复杂度信息和ME计算量变化信息,计算出当前图像数据的目标DCT计算量,根据计算的目标DCT计算量,计算出对当前图像数据实行跳DCT操作所需的门限值,和根据该计算的门限值控制对当前图像数据的跳DCT操作。
附图说明
通过结合附图对本发明进行详细描述,本发明的上述特点和优点将会变的更加清楚,其中:
图1是用来实现传统运动图像编码的编码器120和解码器140的结构方框图;
图2是用来实现传统离散余弦变换(DCT)跳技术的运动图像编码器的结构方框图;。
图3是利用该发明实施例构成的运动图像编码器和解码器的结构方框图;
图4是根据该发明实施例,实现控制DCT计算量的方法的流程图;
图5是利用该发明的另一个实施例构成的运动图像编码器和解码器的结构方框图;和
图6是根据该发明另一个实施例,实现控制DCT计算量的方法的流程图。
具体实施方式
根据图3,该发明的运动图像编码器320包括:DCT单元332,Q单元324,IQ单元326,IDCT单元328,帧存储器330,ME单元332,VLC单元334,和DCT计算量控制器336。DCT单元322是对接收的图像数据进行DCT计算操作。Q单元324利用量化系数Q对由DCT单元322所获得的DCT系数进行量化。IQ单元326将Q单元324的量化图像数据解量化。IDCT单元328对IQ单元326逆量化后的图像数据进行IDCT操作。帧存储器330以帧一帧的方式存储由IDCT单元328执行IDCT后的图像数据。ME332利用当前接收的图像数据帧和存放在帧存储器330的先前帧的图像数据,获得运动的估计信息。VLC单元334通过从DCT后的和量化后的数据去掉统计冗余来实现编码。DCT计算量控制器336根据从解码器复杂度计算器342输出的解码器复杂度信息来控制DCT单元322的DCT计算量。
相应于图1所示的解码器140,解码器340包括:VLD单元,IQ单元,IDCT单元,帧存储器,和MC单元(未表示)。这样,解码器340的结构将不详细说明。
当解码器340已经解码完一个帧,也就是第n帧(在以下文中记为f(n)),解码器复杂度计算器342统计出先前帧f(n)的解码所需要的计算量信息,即解码器复杂度信息,并通过返向信道将该解码器复杂度信息传送给编码器320中的DCT计算量控制器336。如果处理IDCT的计算量相对于先前帧f(n)的解码计算量的比为CIDCT(n),解码器可以消耗的计算量为Callowed(n),实际消耗计算量Ctotalk(n),之前所解码的k个帧的解码器复杂度信息为{CIDCT(j),Callowed(j),Ctotal(j)=n-k+1,...n}。这里k是可选择的变量。
实际计算量Ctotalk(n)定义为解码器340的VLD单元、IQ单元、IDCT单元、和MC单元在第n帧的计算量总和。尽管IDCT的计算量CIDCT(n)已经包含在解码器复杂度信息中,可以根据编码器320中的IDCT单元328来获得IDCT计算量,而不是在解码器复杂度信息中包含IDCT计算量。
根据从解码器复杂度计算器342所接收的解码器复杂度计算量,DCT计算量控制器336采用跳DCT技术,在DCT单元322中,控制对在所接收图像数据中的当前要编码的帧f(n+1)进行DCT操作的数量。
根据该发明的优选实施例,如果解码器340在先前帧f(n)解码的实际计算量Ctotalk(n)小于解码器340允许的计算量Callowed(n),可以认为当前解码器没有充分利用可用的资源。因此,在对下一帧f(n+1)做跳DCT操作的数目将会减少,增加编码器320和解码器340的计算量。这样解码器340能够正常地执行解码,并且因为跳DCT操作的次数减少还能提供好的图像质量。
另外,如果解码器340在先前帧f(n)解码的实际计算量Ctotal(n)大于解码器340允许的计算量Callowed(n),那么在对下一帧f(n+1)做跳DCT操作的数目将会增加,来减少编码器320和解码器340的计算量。这样解码器340能够正常地执行解码。这样,虽然解码器340的DCT计算量减少了,但是图像质量有所下降。
如果解码器340的允许计算量是300MIPS,而在第n帧f(n)的实际消耗计算量是250MIPS,跳DCT操作的次数会下降,增加编码器320和解码器340的计算量,增加的幅度为解码器允许计算量和实际计算量的差,也就是50MIPS,这样,解码器340就可以充分利用计算量资源了。
相对于现有技术,即在当前帧跳DCT的门限Tcurrent是固定的,在本发明中,当前帧f(n+1)的门限值Tcurrent或Tn+1是考虑到解码器在先前帧f(n)的计算量而更新的,也就是通过反向信道接收自解码器的解码器复杂度。这样,分配给解码器的计算量就能得到充分的利用,输入的比特流也能得到正常编码。
在计算当前帧f(n+1)的门限Tn+1的过程中,根据DCT的计算量与门限和量化系数之积成反比的特性,DCT的计算量可以用公式1表示:
其中,C是指DCT的计算复杂度,T定义为门限值,和Q定义为量化系数。
在公式1中,如果第n帧f(n)的复杂度,门限,和量化系数分别是Cn,Tn,和Qn,那么ν等于CnTnQn,并且第(n+1)帧的目标门限值Tn+1可由公式2获得:
公式3可以进一步转化为公式4:
为了提供柔性(flexibility),公式4还可以改写为公式5:
其中,a定义为控制收敛速度的参数。根据公式5,当前帧f(n+1)的目标门限值Tn+1的获得是依靠先前帧f(n)的门限值Tn,先前帧和当前帧的量化系数Qn和Qn+1,先前帧f(n)的DCT计算复杂度Cn,和当前帧f(n+1)的目标DCT计算量Ct。
下面将描述一种方法,该方式是DCT计算量控制器336根据公式5和由解码器复杂度计算器342所获得的解码器复杂度来确定当前帧f(n+1)的门限值Tn+1的方法。
首先,编码器320中的DCT计算量控制器336根据来自解码器复杂度计算器342的解码器计算量信息来统计当前帧f(n+1)的目标DCT计算量。根据本发明的优选实施例,当前帧f(n+1)的目标DCT计算量是根据公式6获得:
编码器320利用公式6计算当前帧f(n+1)的目标DCT计算量。然而,编码器320也可以根据接收自解码器复杂度计算器342的Callowed(n)和Ctotalk(n),利用预定的公式来计算当前帧f(n+1)的目标DCT计算量,
当前帧f(n+1)的门限值Tn+1也可以通过将公式6得到的当前帧f(n+1)的目标计算量Ct代入到公式5中获得。
DCT计算量控制器336利用公式7来确定DCT操作是否需要跳过当前帧f(n+1)的第i个块,这是根据求得的当前帧f(n+1)的门限值Tn+1,第i个块的SAD值,SADn+1,i,和第i个块的量化系数Qn+1:
换句话说,如果公式7的左边小于它的右边,DCT单元322就被设置为非编码模式,在该模式下DCT操作被跳过执行,相应的在当前帧f(n+1)的第i个块不执行DCT操作。否则,在当前帧f(n+1)的第i个块进行DCT操作。
图4是根据该发明优选实施例,利用解码器复杂度实现控制DCT计算量的方法的流程图。参考图3和4,在步骤410处,编码器320的DCT计算量控制器336接收最近的k个被解码的帧的解码器复杂度信息,{CIDCT(j),Callowed(j),Ctatal(j)|j=n-k+1,...,n},这些信息是通过反向信道接收自解码器340的解码器复杂度计算器342的。之前的k个被解码的帧的解码器复杂度信息包括:关于解码器340被IDCT计算占去的计算量在总计算量中的比例的信息,CIDCT(n);关于允许解码器消耗的计算量的信息,Callowed(n);和关于实际消耗的计算量的信息,Ctotal(n)。正如上面所描述的,根据该发明实施例,IDCT的计算量CIDCT(j)已经包含在解码器复杂度信息中。然而也可以根据编码器320中的IDCT单元328来获得IDCT计算量CIDCT(j)。
在步骤420处,根据接收的解码器复杂度信息计算当前帧f(n+1)的目标DCT计算量Ct。根据该发明实施例,公式6用来计算当前帧f(n+1)的目标DCT计算量Ct。然而也可以用不同的公式。
在步骤430处,根据步骤420处计算的目标DCT计算量Ct,接收自DCT单元312的先前帧f(n)的DCT计算量信息Cn,和接收自Q单元314的先前帧和当前帧f(n)和f(n+1)的量化系数Qn和Qn+1,DCT计算量控制器336计算出用来在当前帧f(n+1)进行跳DCT操作的门限Tn+1。
在步骤440处,根据当前帧f(n+1)的第i个块的SAD值和接收自Q单元314的量化系数Qn+1,DCT计算量控制器336决定DCT单元312是否对每个8×8块进行跳DCT操作;这些SAD值是接收自ME/MC单元332,并用来判断是否执行跳DCT操作的。更确切的说,如果SADn+1,i/Qn+1小于当前帧f(n+1)的门限Tn+1,步骤440就执行步骤450。另一方面如果SADn+1/Qn+1大于或等于当前帧f(n+1)的门限Tn+1,步骤440就执行步骤460。
在步骤450处,关于当前帧f(n+1)的第i个块的DCT单元312的操作被设置为非编码模式,并且相应的在当前帧f(n+1)的第i个块,DCT单元312不进行DCT操作。步骤450继续执行步骤470。
在步骤460处,在当前帧f(n+1)的第i个块,DCT单元312执行DCT操作。
在步骤470处,判断第i块是否是当前帧的最后一块。如果在步骤470处确定了第i块是当前帧的最后一块,那么步骤470执行步骤480。反之,步骤470就返回到步骤440处,并且相应的重复步骤440到步骤470的过程。
在步骤480处,判断输入的运动图像是否已经完成编码。相应的,重复执行上面的步骤,直到所有的输入运动图像都完成编码。
这种考虑到解码器计算量的编码能使解码器充分的利用分配的计算量资源。
图5是利用该发明的另一个实施例的运动图像编码器520和解码器540的结构方框图。根据图5,编码器520包括图3中编码器320,并且还包括ME计算量计算器538,它是用来计算ME/MC单元532消耗的ME计算量的变化量。
ME计算量计算器538计算ME/MC单元532消耗的ME计算的目标量,CME,target,和先前帧f(n)实际消耗的ME计算量,CME(n),之间的差,并根据求得的差传送ME计算量变化信息至DCT计算量控制器536。
因为除了DCT计算量控制器536和ME计算量计算器538的之外,其它的部分与图3的编码器320的一样,所以在这里就不再对它们做详细的描述。
图6是根据该发明另一个优选实施例,考虑到ME计算量变化信息和解码器复杂度,实现控制DCT计算量的方法的流程图。
根据图5和6,在步骤610处,编码器520的DCT计算量控制器536接收解码器复杂度信息,这些信息是通过反向信道接收自解码器复杂度计算器542的,还接收来自ME计算量计算器538的ME计算量变化信息。解码器复杂度信息包括:处理IDCT的计算量与解码器540总消耗的计算量的比值的信息,CIDCT(n);解码器允许的计算量信息,Callowed(n);和实际的计算量信息,Ctotal(n)。
如上所述,根据该发明的一个实施例,IDCT计算量CIDCT(j)包括在解码器复杂度信息内。然而,IDCT计算量CIDCT(j)也可以通过编码器520的IDCT单元528来获得。
在步骤620处,根据接收的编码器复杂度信息和ME计算量变化信息,利用公式8计算出当前帧f(n+1)的目标DCT计算量Ct:
其中,CME,target定义为ME/MC单元532处理当前帧f(n+1)所消耗的目标ME计算量,CME(n)定义为处理先前帧f(n)实际消耗的ME计算量。
在该发明的一个实施例中,公式8是用来计算被解码的当前帧f(n+1)的目标DCT计算量Ct。然而,可以用不同的公式来获得。
在步骤630处,根据步骤620处计算的目标DCT计算量Ct,接收自DCT单元522的先前帧f(n)的DCT计算量信息Cn,和接收自Q单元524的先前帧f(n)及当前帧f(n+1)的量化系数Qn和Qn+1,DCT计算量控制器536计算在当前帧f(n+1)执行跳DCT操作的门限值Tn+1。
在步骤640处,根据当前帧f(n+1)的第i个块的SAD值和接收自Q单元542的量化系数Qn+1,DCT计算量控制器536决定DCT单元522是否对每个8×8块进行跳DCT操作;这些SAD值是接收自ME/MC单元532,,并用来判断是否执行跳DCT操作的。更确切的说,如果SADn+1/Qn+1小于当前帧f(n+1)的门限值Tn+1,步骤640就执行步骤650。另一方面如果SADn+1/Qn+1大于或者等于当前帧f(n+1)的门限Tn+1,步骤640就执行步骤660。
在步骤650处,关于当前帧f(n+1)的第i个块的DCT单元522的操作被设置为非编码模式,并且相应的在当前帧f(n+1)的第i个块,DCT单元522不进行DCT操作。
在步骤660处,在当前帧f(n+1)的第i个块,DCT单元522执行DCT操作。
在步骤670处,判断第i块是否是当前帧的最后一块。如果在步骤670处确定了第i块是当前帧的最后一块,那么步骤670执行步骤680。反之,步骤670就返回到步骤640处,并且相应的重复步骤640到步骤670的过程。
在步骤680处,判断输入的运动图像是否已经完成编码。相应的,重复执行上面的步骤,直到所有的输入运动图像都完成编码。
如上所述,通过这种结合考虑解码器540的计算复杂度和ME/MC单元524计算量的变化信息,控制DCT计算量,解码器540能充分利用允许的计算量资源。而且,能保持编码器消耗的总计算量最接近目标计算量。
根据对该发明的优选例所描述,本领域的技术人员明白在没有背离权利要求所限定的该发明思想和范围的条件下,对于本发明在形势和细节上可进行不同的变化。
该发明也可以在计算机可读介质上以计算机可读码实现。计算机可读介质可以是任何一种数据存储设备,用来存放可被计算机系统阅读的数据。计算机可读存储介质包括有:只读存储器(ROM),随机地址存储器(RAM),CD-ROM,磁带,软盘,光数据存储设备等等。而且这些计算机可读码能通过例如英特网的载波进行传送。计算机可读存储介质也能分布到多计算机系统的网络上,这样计算机可读码就能进行分布式的存储和执行。
如上所述,在根据该发明设计的DCT计算量控制方法和设备中,结合考虑解码器的计算量信息和ME单元的计算量变化信息,运动图像编码采用跳DCT技术。这样,解码器允许的计算量能最大的得到利用,并且输入的比特流也能得到正常的编码。而且,运动图像编码器的计算复杂度可以始终不用考虑图像的特征而被连续地保持。
机译: 控制运动图像编码的dct计算量的方法及其装置
机译: 用于控制运动图像编码的DCT计算量的方法和装置
机译: 运动图像编码设备,运动图像编码方法,运动图像编码计算机程序,运动图像解码设备,运动图像解码方法和运动中的计算机图像解码程序