使用神经网络选择可变长度编码 比特流长度的装置和方法 本发明要求于2003年1月21日在韩国知识产权局提出的韩国专利申请No.2003-4099的优先权,其全部内容在此引用作为参考。
【技术领域】
本发明涉及一种通过使用神经网络来选择可变长度编码比特流的长度的装置和方法。
背景技术
图1是传统视频数据压缩装置的结构图。传统视频数据压缩装置包括离散余弦变换(DCT)单元11、量化单元12、以及可变长度编码单元13。
数字类型的数据压缩,特别是视频数据的压缩,是多种多媒体应用环境的基本要素。但是,由于在视频数据压缩过程中要处理大量的信息,因此在有效地传送、存储或者处理数据中存在着很多限制。为了解决这些问题,诸如运动图像专家组(MPEG)-2、MPEG-4、H.263以及H.26L地国际标准定义了压缩流语法和解码处理。
通常,压缩方法分为无损压缩方法和有损压缩方法。如果一个无损压缩方法被应用于字符、图表以及普通的数据,则有可能对其进行完全的重建,但是压缩比例平均是2∶1。同时,如果诸如视频和音频数据被允许在一个用户无法察觉到该损耗的一个较小的损耗程度上压缩,那么能够轻松地获得10∶1甚至更高的压缩比。在用于有效地压缩视频数据的有损编码技术中,变换编码技术被广泛使用。在该方法的基本帧内,利用正交变换将具有高空间相关排列的数据转换成频率分量,范围是从低频分量到高频分量。对每一频率分量进行量化。此时,每一频率分量之间的相关性几乎消失,并且信号的能量被集中到低频部分。在通过正交变换获得的频域数据中,为一个集中了更多的能量的频率分量分配更多的比特(即,分布值更高),从而使得频率分量能够统一地被压缩。当分布值增加了四倍时(即幅度增加了两倍),多分配一个比特,从而使得所有的频率分量具有相同的量化误差特征值。在多种正交变换中,Karhunen-Loeve变换(KLT)理论上具有最高的能量集中特性并且提供了最高效的压缩。但是,由于在该方法中变换应当被定义用于不同的图像,所以实际上不能使用KLT变换。具有接近于KLT变换的性能并且在实际中能够被使用的一种变换是离散余弦变换(DCT)。
DCT单元11通过对视频数据进行DCT变换而将视频数据转换成DCT系数块。在DCT变换中,图像元素的每个8×8阵列被分组成一个块并且以块为单位进行变换。压缩比例随着块大小的增加而增加,但是变换的执行就变得更加困难。根据经验,通过折衷地考虑性能和执行的难易,选择图像元素的8×8阵列的大小。通常在现有技术的压缩技术中,当图像被压缩的时候,为了消除空间冗余,使用了DCT变换,并且为了消除时间冗余,使用了运动估计(ME)和运动补偿(MC)技术。
量化单元12使用一个Q值,就是一个量化参数,来对DCT系数的每一个系数值进行量化。此时,较小的值就成为0,这样就产生了一些信息损耗。
可变长度编码单元13对经过DCT步骤和量化步骤的数据执行可变长度编码(VLC)。这是压缩处理的最后一个步骤,其中DCT变换量化的系数被无损压缩。就是说,一个连续重复的字符(这里是0)可以被一个包括一个与字符的数目相对应的字符的整数串所代替,并且通过Z字形扫描,产生的整数串被转换成二进制数。此时,使用一个VLC表,从而使得一个具有高出现概率的字符被分配一个短代码,一个具有低出现概率的字符被分配具有一个长代码。这就是被称为可变长度编码的原因。
在上面所述的整个压缩处理之后,一个8×8阵列被减化为一些0和1的组合。如果压缩处理被相反地执行,那么压缩的视频数据就被解压缩。图1的视频数据压缩装置被用于将一幅静止的图像压缩成一个联合图像专家组(JPEG)类型的压缩文件,并且当运动图像被压缩成一个MPEG格式压缩文件时,在视频数据压缩装置中应当增加一个执行差分脉冲编码调制(DPCM)的装置。通过DPCM,一个将被传送的信号值根据已经传送的信号被估计,并且估算的值和实际值之间的差被编码,然后被传送。例如,如果点A的信号值被用作一个估算的值,那么该信号值和点B的信号值之间的差就是一个估算误差。该估算误差代替点B的信号值被编码和传送。
在现有技术中,为了控制比特率,应当调整一个量化参数,即Q值。为了检查当使用一个Q值时用户期望的比特率是否被输出,则应当多次执行VLC,直到期望的比特率被输出。但是,对于VLC,当一个字符被映射成一个代码时,每次都需要使用VLC表。这造成了繁重的计算量,并且因此,当一个量化的DCT系数块,其利用一个Q值而不是利用期望的Q值被量化,被VLC编码的时候,系统资源的浪费就会极大地增加。类似地,在另一个方面,与比特流的长度相关的处理应当被执行,VLC应当被多次执行直到期望的比特率被输出,系统资源的浪费也会极大地增加。在这种情况下,处理通常通过并联的硬件来执行,而由于每一个硬件单元都分别具有VLC表,这也极大地增加了系统资源的浪费。
除了控制比特率之外,在一些情况下,压缩的视频包应当满足预定的限制长度。在这种情况下,不对下一个宏块进行VLC编码,就不能识别在进行VLC编码之后的下一个比特流的长度。因此,应当对每一个块都进行VLC编码,从而系统资源的浪费会极大的增加。
【发明内容】
本发明提供了一种方法和装置,利用这种方法和装置,可变长度编码(VLC)产生的比特流的长度能够被估算,这样用户就能够不执行可变长度编码而预先选择比特流的长度,然后再执行可变长度编码。
根据本发明的一个方面,提供了一种编码数据大小训练装置,包括:训练编码数据产生单元,用于通过以预定的编码方法编码训练数据来产生训练编码数据;以及神经网络训练单元,用于将在训练编码数据产生单元产生的训练数据输入到神经网络的输入层,并且将通过编码方法编码训练数据所获得的训练编码数据的大小输入到神经网络的输出层,这样神经网络就被训练。
根据本发明的另一个方面,提供了一种编码数据大小选择装置,包括:编码数据估算大小接收单元,用于将预定的数据输入到完成训练的神经网络,并且从该神经网络接收与该数据相对应的编码数据的估算大小;以及估算大小选择单元,用于接收关于编码数据估算大小接收单元接收的估算大小的用户选择。
根据本发明的另一个方面,提供了一种可变长度编码比特流长度训练装置,包括:训练量化离散余弦变换(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系数块进行可变长度编码来产生比特流。
根据本发明的一个附加方面,提供了一种编码数据大小训练方法,包括:(a)以一种预定的编码方法对训练数据进行编码来产生训练编码数据;以及(b)将在训练编码数据产生单元产生的训练数据输入到神经网络的输入层,并且将通过所述编码方法编码训练数据所获得的训练编码数据的大小输入到神经网络的输出层,这样神经网络就被训练。
根据本发明的一个附加方面,提供了一种编码数据大小选择方法,包括:将预定的数据输入到完成训练的神经网络,并且从该神经网络接收与该数据相对应的编码数据的估算大小;以及(b)接收关于接收到的估算大小的用户选择。
根据本发明的一个附加方面,提供了一种可变长度编码比特流长度训练方法,包括:(a)通过对训练视频数据进行DCT而产生训练DCT系数块,并且通过利用训练量化参数对产生的训练DCT系数块进行量化产生训练量化DCT系数块;(b)通过对产生的训练量化DCT系数块进行可变长度编码来产生训练比特流;以及(c)将产生的训练量化DCT系数块输入到神经网络的输入层,并且将产生的训练比特流输入到该神经网络的输出层。
根据本发明的一个附加方面,提供了一种可变长度编码比特流长度选择方法,包括:(a)将预定的量化DCT系数块输入到已经完成训练的神经网络,并且从该神经网络接收与该量化DCT系数块相对应的比特流的估算长度;以及(b)接收关于接收到的估算长度的用户选择。
根据本发明的一个附加方面,提供了一种平行可变长度编码比特流长度训练方法,包括:(a)通过对训练视频数据进行DCT产生训练DCT系数块,并且通过利用训练量化参数对产生的训练DCT系数块进行量化产生训练量化DCT系数块;(b)通过对所产生的训练量化DCT系数块进行可变长度编码产生训练比特流;以及(c)将所产生的训练量化DCT系数块输入到平行排列的预定数目的神经网络的输入层,并且将产生的训练比特流的长度输入到预定数目的神经网络的输出层,从而使得预定数目的神经网络被训练。
根据本发明的一个附加方面,提供了一种平行可变长度编码比特流长度选择方法,包括:(a)向已经完成了训练的预定数目的神经网络的每一个平行输入预定数目的量化DCT参数块,该量化DCT系数是通过利用预定数目的量化参数对预定数目的DCT系数块进行量化获得的,并且从每一个神经网络接收与预定数目的量化DCT系数块相应的预定数目的比特流的估算长度;以及(b)接收关于接收到的预定数目的估算长度的用户选择。
根据本发明的一个附加方面,提供了一种视频数据压缩方法,包括:(a)通过对预定的视频数据进行DCT变换产生DCT系数块;(b)通过利用预定的量化参数对所产生的DCT系数块进行量化来产生量化DCT系数块;(c)将所产生的量化DCT系数块输入到已经完成训练的神经网络,从该神经网络接收与量化DCT参数块相对应的比特流的估算长度;以及(d)如果估算长度被用户所选择,通过对相应于所选择的估算长度的量化DCT系数块进行可变长度编码来产生比特流。
【附图说明】
本发明的上述目的和方法将通过参照附图进行的详细描述而变得清楚,其中:
图1示出了传统视频数据压缩装置的结构图;
图2示出了本发明中使用的神经网络的结构图;
图3示出了根据本发明一个实施例的编码数据大小训练装置的结构图;
图4示出了根据本发明一个实施例的编码数据大小选择装置的结构图;
图5示出了根据本发明一个实施例的可变长度编码比特流长度训练装置的结构图;
图6示出了根据本发明一个实施例的可变长度编码比特流长度选择装置的结构图;
图7示出了根据本发明一个实施例的一个平行可变长度编码比特流长度训练装置的结构图;
图8示出了根据本发明一个实施例的一个平行可变长度编码比特流长度选择装置的结构图;
图9示出了根据本发明一个实施例的一个视频数据压缩装置的结构图;
图10示出了根据本发明一个实施例的编码数据大小训练方法的流程图;
图11示出了根据本发明一个实施例的编码数据大小选择方法的流程图;
图12示出了根据本发明一个实施例的可变长度编码比特流大小训练方法的流程图;
图13示出了根据本发明一个实施例的可变长度编码比特流大小选择方法的流程图;
图14示出了根据本发明一个实施例的一个平行可变长度编码比特流大小训练方法的流程图;
图15示出了根据本发明一个实施例的一个平行可变长度编码比特流大小选择方法的流程图;
图16示出了根据本发明一个实施例的视频数据压缩方法的流程图。
【具体实施方式】
图2示出了一个在已经开发的神经网络中使用最广泛的多层感知(MLP)神经网络。与一个无线基础功能网络一起,MLP是一个引导静态神经网络,并且通过辅助学习被用于识别,分类和功能近似。MLP是一个具有层结构的神经网络,其中在输入层和输出层之间存在一个或者多个中间层(隐藏层)。训练一个MLP是通过辅助学习来进行的,其中调整一个加权值从而使得当一个输入模式所属的类型是已知的,并且输入模式利用一个正确的网络输出被提供给该网络的时候,网络产生一个期望的输出。换句话说,一个输出和多个已经精确地知道与该输出相对应的输出的多个完全组被作为一个训练模式提供给一个网络,并且实际的输出和该输出模式的网络期望输出之间的差被定义为一个适当的目标函数,然后使该目标函数最小的一个加权值就被获得。此时,该目标函数用一个输入,一个期望的输出以及一个加权值来表示。通常,目标函数使用一个均方误差或者一个交叉熵误差。
对于输出层,y=g(WLhL-1) …(1)
对于第i个隐藏层,hi=g(Wihi-l) …(2)
对于第1个隐藏层,hi=g(Wlx) …(3)
隐藏层的输出由等式2和3定义,而输出层的输出由等式1确定。这里,函数g是一个基于S形函数的阶梯激活函数。已知如果一个目标函数被定义为一个均方误差并且对于多种训练模式的目标函数的最小值已经获得,那么MLP的输出层的每一个神经元近似于与该神经元相对应的类型的后验概率,或者与后验概率成比例的值。
包括MLP的神经网络在利用统计原则或者根据常识处理分类或者识别方面与传统的方法具有很多不同。特别是,在声音识别或者图像识别领域,神经网络具有很多吸引人的优点。首先,神经网络主要在执行判别式学习方面具有优势。就是,MLP通过增加所属模式的类型的输出值,减小不属于该模式的其它类型的输出值来减小该输入模式的输出误差值。与其他方法相比较,对于一个输入方法而言,只有该模式所属的类型的可能性被最大,该模式不属于的其它类型也被优化,使得一个模式参数不包含在一个竞争类别当中。因此,类别之间的差别就被加强。其次,神经网络对于具有很多变化的声音信号或者视频信号具有最好的性能。再次,不象传统的顺序方法那样,由于其结构特征,可能进行平行的处理并且更大量的数据能够同时高效地处理。最后,神经网络通常在限制训练数据方面表现出了更强的性能。
图3示出了根据本发明一个实施例的编码数据大小训练装置的结构图。
编码数据大小训练装置包括训练编码数据产生单元31和神经网络训练单元32。通常,对于使用神经网络的产品,使用了训练已经完成的神经网络。因此,编码数据大小训练装置可以被应用于产品处理步骤。
训练编码数据产生单元31通过一个预定的编码方法对训练数据进行编码并且产生训练编码数据。这里,编码方法是用于压缩视频数据或者音频数据的编码方法中的一个。例如,编码方法可以是VLC方法。该VLC方法是一种具有较高的出现概率的字符被一个短的代码,例如,“0”,“1”,“01”和“10”表示,具有较低的出现概率的字符被长的代码,例如“0011”和“01010”表示的方法。这里,由于训练编码数据是用于训练该神经网络33的,训练编码数据具有更多变化的值,神经网络33就将具有更多的适用可能性并且训练的效果将会更好。
神经网络训练单元32向神经网络33的输入层输入训练数据以及向神经网络33的输出层输入的训练编码数据的大小,它们是由所述的编码方法进行编码的,这样神经网络33就能够被训练。如上参考图2所述,神经网络的训练是通过辅助学习来进行的,其中调整一个加权值,使得当输出模式所属的类型已知并且输出模式利用一个正确的网络输出被提供的时候,网络能够产生一个期望的输出。这里,编码之前的训练数据被输入到输入层,编码之后的训练数据被输入到输出层。如果编码方法是一种压缩编码方法的话,编码数据大小将与压缩数据的大小或者运动矢量差相对应。
图4示出了根据本发明一个实施例的编码数据大小选择装置的结构图。
编码数据大小选择装置包括编码数据估算大小接收单元41、编码数据估算大小选择单元42、以及编码数据产生单元43。
如果神经网络44的训练已经完成,编码数据估算大小接收单元41向已经完成训练的神经网络44输入预定的数据,并且从该神经网络接收相应于该数据的编码数据的估算大小。如果期望被编码的数据已经被输入到已经完成训练的神经网络44,神经网络44就输出一个数据的估算大小,该大小是根据直到目前当数据被编码的时候,作为数据大小被训练的信息而估算的。编码数据估算大小接收单元41接收输出编码数据估算大小。
编码数据估算大小选择单元42接收有关编码数据估算大小接收单元41所接收的估算大小的用户选择。用户发现当数据通过一个图像输出装置或者一个声音输出装置(主要地通过图像输出装置)编码的时候,估算的大小有多大。如果大小与用户期望的大小相同,用户将选择它,否则用户将不选择它。例如,如果编码方法是一种压缩编码方法并且估算大小表明用户所期望的压缩数据的大小,用户将选择该估算大小。这里,估算大小可以由用户通过输入工具直接选择或者通过用户写入的程序而自动选择。
如果用户选择了该估算大小,编码数据产生单元43就通过编码方法编码与所选的估算大小相对应的数据,并且产生编码数据。例如,如果估算大小表明用户期望的压缩数据的大小并且用户选择了该估算大小,那么数据就利用所述编码方法被编码。就是,在传统的方法中,为了获得压缩数据的期望大小,对每一个值数据都必须被压缩从而检查结果。但是,根据本发明,压缩之后的大小使用神经网络来估算,这样仅当用户期望的结果获得的时候,压缩处理才被执行。因此,为了获得压缩数据的期望大小,对每一个值来说不需要压缩数据的加载。
图5示出了根据本发明一个实施例的可变长度编码比特流长度训练装置的结构图。
可变长度编码比特流训练装置包括训练量化DCT系数块产生单元51、训练比特流产生单元52、以及神经网络训练单元53。通常,对于一个使用神经网络的产品,会使用一个已经完成训练的神经网络。因此,编码长度编码比特流长度训练装置可以在一个生产处理步骤当中被使用。
训练量化DCT系数块产生单元51通过对训练视频数据进行DCT变换而产生训练DCT系数块,并且通过利用训练量化参数对所产生的训练DCT系数块进行量化来产生训练量化DCT系数块。这里,训练视频数据表示一个任意的视频序列,其中当训练视频数据进行DCT变化的时候,就产生了一个具有多个值的DCT系数块。
现在将描述用于压缩视频数据的一个通常的处理过程。
首先,原始的视频数据被分成8×8的块,并且以8×8的块为单位进行DCT变化。就是说,在DCT变换当中,一个时间域的视频信号被分成一些频率域,其中信号能量从高频到低频排列,然后被变换。这里,由于视频信号的信息被集中在低频带内,因此大量的位被分配给包含许多信息的低频域,少量的位被分配给包含较少信息的高频域。通过这样做,高频域中使用的位数就会减少而且不会带来质量的恶化,同时压缩能够有效地进行。然后,通过利用一个预定大小的量化参数来进行分割,较小的值就变成了“0”,通过这样做,就进行了用于减少整个数据量的量化操作。此时,由于成为0并且已经消失的值,造成了一些信息的丢失。然后,进行行程编码,其中连续重复的字符(这里是0)被一个字符以及该字符的长度所代替。字符的长度越长或者重复字符出现的频率越高,压缩比例就越高。接下来,执行哈夫曼编码,其中通过Z字形扫描产生的整数串被转换成一个二进制数。在上述的步骤以后,该8×8阵列被减化为0和1的一个组合。为了解压缩该压缩视频数据,上述的压缩处理反过来被执行。训练量化DCT系数块产生单元51在上述的压缩处理过程中执行量化步骤。
训练比特流产生单元52通过对训练量化DCT系数块产生单元51中产生的训练量化DCT系数块进行可变长度编码来产生一个训练比特流。训练比特流产生单元52执行游程编码和哈夫曼编码,其在上述的压缩处理的量化之后进行。特别是,当通过象具有高出现概率的字符分配短的代码和向低出现概率的字符分配长的代码来提高压缩效率的编码被执行的时候,该方法就被称为是可变长度编码(VLC)。此时,对于字符和代码之间的对应关系,使用一个VLC表。如果训练量化DCT系数块是可变长度编码的,就产生了一个连续排列着比特0和1的比特流。
神经网络训练单元53向神经网络54的输入层输入训练量化DCT系数块,并且向神经网络54的输出层输入对训练量化DCT系数块进行可变长度编码的训练比特流的长度,从而神经网络54被训练。这里,神经网络54主要是一个2-层的MLP,但是任何具有更好的结构用于训练视频数据的神经网络都能够被使用。如上参照图2进行的描述,神经网络的训练是通过辅助学习进行的,其中调整一个加权值,使得当输出模式所属的类型已知并且输入模式利用一个正确的网络输出被提供的时候,神经网络产生一个期望的输出。这里,训练量化DCT系数块被输入到输入层,训练比特流的长度被输入到输出层。当训练视频数据被DCT变换的时候,就产生了一个具有多个值的DCT系数块。因此具有多个值的训练量化DCT系数块被输入到输入层,并且当从一个VLC表或者一个相应于每一个训练量化DCT系数块的训练比特流之后,比特流的长度被输入到输出层。通过这样做,调整神经网络54的一个加权值的辅助学习就被执行。此时,8×8量化DCT系数块的所有值(就是,64个系数)可以被输入到神经网络54,但是由于量化DCT系数块的特性,最多的系数值将是0。因此,通过仅抽取具有不是0的值的系数,系数就被输入到神经网络54。而且,另一个目的,仅有部分的8×8量化DCT系数块可以被抽取并且输入到神经网络54。
图6示出了根据本发明一个实施例的可变长度编码比特流长度选择装置的结构图。
可变长度编码比特流选择装置包括比特流估算长度接收单元61、比特流长度选择单元62、以及比特流产生单元63。
如果神经网络64的训练已经完成,比特流估算长度接收单元61就向已经完成训练的神经网络输入一个预定的量化DCT系数块,并且从该神经网络64接收与量化DCT系数块相应的比特流的估算长度。如果量化DCT系数块被输入到已经完成训练的神经网络64,神经网络64就输出该比特流的一个估算长度,该长度是根据到目前为止当量化DCT系数块被可变长度编码的时候,作为比特流的长度被训练的信息而估算的。比特流估算长度接收单元61接收比特流的输出估算长度。如上所述,VLC编码处理是一种压缩处理,其中为了向具有高出现概率的字符分配短的代码,向低出现概率的字符分配长的代码,就存在着使用一个VLC表使字符与代码之间建立映射的繁重的负担。但是如果本发明被使用,神经网络的内部处理就仅通过等式1-3的加法和乘法来进行,因此,在VLC执行以后,比特流的长度的估算就仅通过加法和乘法来进行,而不是用一个VLC表。
此时,8×8量化DCT系数块的所有值(即64个系数)可以被输入到神经网络64,但是由于量化DCT系数块的特性,最多的系数值将是0。因此,通过仅抽取具有不是0的值的系数,系数就被输入到神经网络64。而且,另一个目的,仅有部分的8×8量化DCT系数块可以被抽取并且输入到神经网络64。
比特流估算长度选择单元62接收有关比特流估算长度接收单元61所接收的估算长度的用户选择。用户发现当数据通过一个图像输出装置或者一个声音输出装置(主要地通过图像输出装置)编码的时候,估算的长度有多大。如果长度与用户期望的长度相同,用户将选择它,否则用户将不选择它。例如,如果估算长度表明用户所期望的压缩数据的大小,用户将选择该估算长度。这里,用户可以通过输入工具直接选择估算长度或者通过用户写入的程序而自动选择。
如果用户选择了该估算长度,比特流产生单元63就通过对与所选的估算长度相对应的量化DCT系数块进行可变长度编码来产生一个比特流。如果估算长度表明用户期望的压缩数据的大小并且以用户选择了该估算长度,那么数据就被进行可变长度编码。就是,在传统的方法中,为了获得可变长度编码数据的期望长度,数据都必须被进行可变长度编码从而检查结果。但是,根据本发明,可变长度编码之后的比特流的长度使用一个神经网络来估算,这样仅当用户期望的结果获得的时候,可变长度编码处理才被执行。因此,为了获得可变长度编码数据的期望长度,对每一个值来说不需要执行可变长度编码的负担。就是说,通过应用多个量化参数,就是多个Q值,经量化的量化DCT系数被输入到神经网络。结果是,通过应用一个使结果接近于用户的目标比特率的Q值,来对量化DCT系数进行可变长度编码,就能够获得最接近用户期望的比特流的比特率。因此,通过预测如果被应用,将使比特率最接近于用户期望的比特率的Q值,就能够更快速和更有效地控制比特率。
图7示出了根据本发明一个实施例的平行可变长度编码比特流长度训练装置。
平行可变长度编码比特流长度训练装置包括训练量化DCT系数块产生单元71、训练比特流产生单元72、以及平行神经网络训练单元73。通常,对于一个使用神经网络的产品来说,其会使用一个已经完成训练的神经网络。因此,可变长度编码比特流长度训练装置可以在一个生产处理步骤中使用。
训练量化DCT系数块产生单元71通过对训练视频数据进行DCT变换产生训练DCT系数块,并且通过利用量化参数量化产生的训练DCT系数块。这里,训练视频数据是一个任意的视频序列,其中当训练视频数据被DCT变换的时候,就产生了一个具有多个值的DCT系数块。训练量化DCT系数块产生单元71通过量化具有多个值的DCT系数块产生具有多个值的训练量化DCT系数块。
训练比特流产生单元72通过对训练量化DCT系数块产生单元71产生的训练量化DCT系数块进行可变长度编码产生一个训练比特流。如果训练量化DCT系数块被可变长度编码,就产生了一个连续排列着0和1的比特流。
平行神经网络训练单元73向平行排列的预定数目的神经网络的输入层输入训练量化DCT系数块,并且将对训练量化DCT系数块进行可变长度编码或者的训练比特流的长度输入到预定数目的神经网络的输出层。例如,如果N个神经网络741-744如图7所示平行排列,训练量化DCT系数块和训练比特流的长度就被输入到每一个神经网络从而使得该N个神经网络741-744同时被训练。这里神经网络主要是2-层的MLP。
图8示出了根据本发明一个实施例的平行可变长度编码比特流长度选择装置的结构图。
平行可变长度编码比特流长度选择装置包括平行比特流估算长度接收单元81、比特流估算长度选择单元82、以及比特流产生单元83。
如果预定数目的神经网络的训练已经完成,平行比特流估算长度接收单元81向已经完成训练的预定数目的神经网络,通过使用预定数目的量化参数块,平行输入利用预定数目的量化参数量化的预定数目的量化DCT系数块。平行比特流估算长度接收单元81从每个神经网络接收与量化DCT系数块相对应的预定数目的估算长度。
通过将一个期望被压缩的图像分成一个8×8的块,并且以8×8的块为单位进行DCT变换,一个DCT系数块就被产生并且被量化,小于该量化参数的值就成为0。此时,由于成为0并且消失的值,就存在着一些信息丢失。然后,执行游程编码,其中连续重复的字符(这里是0)就被一个字符和该字符的长度所替代。字符的长度越长或者重复字符出现的频率越高,压缩比例就越高。因此,量化参数越大,就有越多的DCT系数成为0,压缩比例就越高。同时,数据是否被压缩成用户所需期望的大小能够仅在最后的压缩步骤之后,就是执行可变长度编码之后被发现。根据本发明,如果一个量化DCT系数块被输入到一个已经完成训练序列的神经网络,神经网络就输出一个比特流的估算长度,该长度是根据到目前为止,当量化DCT系数块被进行可变长度编码的时候,作为将被获得的比特流的长度训练的信息而估算的。因此,被多个量化参数量化的量化DCT系数块被输入到N个神经网络841-844,并且N个神经网络841-844输出相应于多个量化DCT系数块的多个比特流估算长度。
比特流估算长度选择单元82接收关于平行比特流估算长度接收单元8 1所接收的预定数目的估算长度用户选择。当量化DCT系数通过一个图像输出装置或者一个声音输出装置(主要是,通过一个图像输出装置)被可变长度编码的时候,用户将发现一个比特流的估算长度有多长。如果该长度与用户期望的长度相同的时候,用户将选择它,否则用户将不选择它。例如,如果一个估算长度表明压缩数据的用户期望长度,用户将选择该估算长度。这里,用户可以通过使用一个输入工具直接地选择估算长度,或者通过用于写入的程序自动地选择。
如果用户选择了预定数目的估算长度中的任意一个,比特流产生单元83将通过对一个量化DCT系数块进行与所选择的估算长度相对应的可编码长度编码来产生一个比特流。如果一个估算长度表明了用户期望的压缩数据的大小,并且用户选择了该估算长度,那么可变长度编码将被执行。就是,为了获得可变长度编码数据的期望大小,在传统的方法中,所有的量化DCT系数块都必须进行可编码长度编码从而检查结果。但是,根据本发明,可变长度编码之后的比特流的长度通过使用一个神经网络来估算,这样就使得仅当用户期望的结果被获得的时候,执行可变长度编码处理。因此,为了获得可变长度编码数据的期望长度,对于每一个值来说,执行可变长度编码的负担是不需要的。
图9示出了根据本发明一个实施例的视频数据压缩装置的结构图。
视频数据压缩装置包括DCT变换单元91、量化单元92、可变长度编码(VLC)比特流长度选择单元93、以及比特流产生单元94。
DCT变换单元91通过对预定的视频数据进行DCT变换产生一个DCT系数块。期望被压缩的图像被分成8×8的块并且以8×8的块为单位进行DCT变换,如果一个DCT变换被执行,包含有大量信息的低频域被分配多个位,包含有少量信息的高频域被分配少量的位。这里,视频数据表示一个期望被编码的视频序列。
量化单元92通过利用一个预定的量化参数对DCT变换单元91所产生的DCT量化系数块进行量化来产生一个量化DCT系数块。通过对一个预定大小的量化参数执行分割,较小的值就成为“0”,通过这样做,用于减少整个数据的总量的量化就被执行。此时,由于成为0并且消失的值,存在着一些信息丢失。
VLC比特流长度选择单元93向已经完成训练的神经网络输入量化单元92产生的量化DCT系数块,并且从该神经网络接收与量化DCT系数块相对应的比特流的估算长度,以及接收关于接收到的估算长度的用户选择。这里,神经网络主要是一个2-层的MLP。
如果用户选择了接收的估算长度,比特流产生单元94就通过对相应于所选的估算长度的量化DCT系数块进行可变长度编码来产生一个比特流。如果估算的长度表明用户期望的压缩数据的大小,并且用户选择了该估算长度,那么可变长度编码就被执行。就是,为了获得可变长度编码数据的期望长度,在传统的方法中,所有的量化DCT系数块都必须被可变长度编码。但是根据本发明,可变长度编码之后的比特流的长度通过使用一个神经网络来估算从而使得仅当用户期望的结果能够被获得的时候,才执行可变长度编码处理。因此,为了获得可变长度编码数据的期望长度,对于每一个值来说,不需要执行可变长度编码的负担。
图9的视频数据压缩装置用于将一幅静止的图像压缩成一个联合图像专家组(JPEG)类型的压缩文件,并且当移动图像被压缩成一个MPEG格式压缩文件的时候,在视频数据压缩装置中应当加入一个执行差分脉冲编码调制(DPCM)的装置。通过该DPCM,一个将被传送的信号值将根据已经被传送的信号来估算,并且估算的值与实际的值之间的差被编码然后被传送。例如,如果点A的信号值被用作估算值,信号值与点B的信号值之间的差是一个估算误差。该估算误差代替点B的信号值被编码和传送。
图10示出了根据本发明一个实施例的编码数据大小训练方法的流程图。
在步骤101中利用所述编码方法对训练数据进行编码来产生训练编码数据。接下来,在步骤102中,训练数据被输入到一个神经网络的输入层,利用预定的编码方法编码训练数据获得的训练编码数据的大小被输入到神经网络的输出层,这样神经网络就被训练。
图11示出了根据本发明一个实施例的编码数据大小选择方法的流程图。
在步骤111中,预定的数据被输入到已经完成训练的神经网络,并且从该神经网络接收相应于该数据的编码数据的估算大小。然后,在步骤112中,用于接收关于接收到的估算大小的用户选择。接下来,如果在步骤112中用户选择了估算大小,在步骤113中,利用编码方法编码该数据,就产生了编码数据。
图12示出了根据本发明一个实施例的可变长度比特流大小训练方法的流程图。
在步骤121中,通过对一个训练视频数据进行DCT变换,就产生了一个训练DCT系数块,并且通过利用一个训练量化参数对产生的训练DCT系数块进行量化,产生一个训练量化DCT系数块。这里,训练视频信号表示一个任意的视频序列,其中当训练视频数据被DCT变换的时候,就产生具有多个值的一个DCT系数块。接下来,在步骤122中,通过对产生的训练量化DCT系数块进行可变长度编码,就产生了一个训练比特流。然后,在步骤123中,训练量化DCT系数块被输入到神经网络的输入层,并且通过对训练量化DCT系数块进行可变长度编码获得的训练量化DCT系数块被输入到神经网络的输出层,这样神经网络就能够被训练。这里,神经网络主要是一个2-层的MLP。
图13示出了根据本发明一个实施例的可变长度编码比特流大小选择方法。
在步骤131中,预定数目的量化DCT系数块被输入到已经完成训练的神经网络,并且从该神经网络接收相应于量化DCT系数块相应的一个比特流的估算长度。然后,在步骤132中,接收关于接收到的估算长度的用户选择。接下来,如果在步骤132中用户选择了估算长度,那么在步骤133中,通过对一个与所选择的估算长度相对应的量化DCT系数块进行可变长度编码,就产生了一个比特流。
图14示出了根据本发明一个实施例的平行可变长度编码比特流大小训练方法。
在步骤141中,通过对训练视频数据进行DCT变换,产生一个训练DCT系数块并且通过利用一个训练量化参数对产生的训练DCT系数块进行量化,产生一个训练量化DCT系数块。这里,训练视频数据表示一个任意的视频序列,其中当训练视频数据被DCT变换的时候,产生一个具有多个值的DCT系数块。接下来,在步骤142中,通过对产生的训练量化DCT系数块进行可变长度编码,产生了一个训练比特流。然后,在步骤143中,训练量化DCT系数块被输入到平行排列的预定数目的神经网络的输入层,通过对训练量化DCT系数块进行可变长度编码获得的训练比特流的长度被输入到预定数目的神经网络的输出层,这样预定数目的神经网络就被训练。这里,神经网络主要是一个2-层的MLPs。
图15示出了根据本发明一个实施例的平行可变长度编码比特流大小选择方法的流程图。
在步骤151中,通过利用预定数目的量化参数量化预定数目的DCT系数块所获得的预定数目的量化DCT系数块,被平行输入到预定数目的神经网络,并且从该神经网络接收相应于预定数目的量化DCT系数块的预定数目的比特流的估算长度。然后,在步骤152中,接收关于接收到的预定数目的估算长度的用户选择。接下来,如果在步骤152中用于选择了预定数目的估算长度的任意一个,在步骤153中,通过对一个相应于所选择的估算长度的量化DCT系数块进行可变长度编码,产生一个比特流。
图16示出了根据本发明一个实施例的视频数据压缩方法的流程图。
在步骤161中,通过对预定的视频数据进行DCT变换,产生了一个DCT系数块。这里,视频数据表明一个期望被编码的视频序列。然后,在步骤162中,通过利用一个预定的量化参数对产生的DCT系数块进行量化,产生了一个量化DCT系数块。接下来,在步骤163中,一个训练量化DCT系数块被输入到一个神经网络的输入层,以及通过对训练量化DCT系数块进行可变长度编码获得的一个训练比特流的长度被输入到该神经网络的输出层,这样该神经网络就被训练。如果该神经网络的训练已经被完成,产生的量化DCT系数块就被输入到已经完成训练的神经网络,并且从该神经网络接收相应于该量化DCT系数块的一个比特流的估算长度。在步骤164中接收有关接收到的估算长度的用户选择。这里,神经网络主要是一个2-层的MLP。如果在步骤164接收的估算长度是用户所选择的,在步骤165中就通过对相应于所选择的估算长度的量化DCT系数块进行可变长度编码来产生一个比特流。
本发明可以体现为一种在计算机可读记录介质上由计算机读取的代码。该计算机可读记录介质包括其上能够存储计算机可读数据的所有类型的记录装置。
计算机可读记录介质包括诸如磁存储介质(例如,ROM,软盘,硬盘等),光学可读介质(例如,CD-ROMs,DVDs,等)和载波(例如,在互联网上传送)的存储介质。
上面已经描述和介绍了示意性的实施例。但是,本发明并不局限于上述的示意性实施例。很明显本领域的技术人员可以在所附权利要求定义的本发明的精神和范围内作出各种改变和变形。因此本发明的范围不是由上面的描述所确定的,而是由所附权利要求来确定。
根据本发明,通过使用一个神经网络,可变长度编码比特流的长度能够被估算,这样用户能够预先选择比特流的期望长度,而不用执行可变长度编码。就是,不需要对每个值都进行可变长度编码,而且能够预测如果被应用,将提供最接近于目标比特率的结果的Q值,这样比特流控制就能够更为快速和有效地进行。特别是,在传统的方法中,对于VLC处理需要使用一个VLC表,这带来了繁重的负担,并且极大地增加了系统的浪费。通过使用一个仅执行加法和乘法的神经网络,作为VLC编码结果的比特流的长度估算就能够被执行,这样就能够避免系统的巨大浪费。
此外,为了快速地找到一个期望的比特率,通常使用一个平行硬件处理,并且,在这种情况下,每一个硬件单元都不需要具有一个VLC表,从而就能够避免系统的巨大浪费。而且,本发明能够被用于估算对其他系数进行可变长度编码的结果,例如,除了估算对一个量化DCT系数块进行可变长度编码的结果以外,还可以估算运动矢量差。就是,本发明能够被应用于多个设备当中,其中不用执行可变长度编码,比特流的长度就期望被发现。