以无损方式对数字图像和音频数据解码的系统和方法

文档序号:7740001阅读:205来源:国知局
专利名称:以无损方式对数字图像和音频数据解码的系统和方法
技术领域
本发明的背景发明领域本发明涉及图像处理、压缩和解压缩。本发明更特定地是涉及频域内数字图像和音频数据的无损解码。
相关领域的描述数字图像处理在数字信号处理领域有重要地位。人视觉感知的重要性使得该领域引起了极大的兴趣,带来了领域的发展并产生了数字图像处理这门科学。在视频信号的传输和接收领域内,诸如用于播放电影或电视的领域,实现了各种改善图像压缩的技术。当前和提出的许多视频系统使用数字编码技术。该领域的方面包括图像编码、图像恢复以及图像特征选择。图像编码表示试图以有效的方式传送数字通信的图像,即尽可能使用更少的比特以最小化需要的带宽的同时将失真率维持在一定限度内。图像恢复表示恢复目标的真实图像。经编码的图像在通信信道上发射,可能由于各种因子而失真。恶化源可能来自从目标建立图像。特征选择指选择图像的一定属性。在更宽泛的情况下识别、分类以及判决可能会需要该种属性。
视频的数字编码(诸如在数码电影院内)是受益于改善的图像压缩技术的领域。数字图像压缩可以一般分为两类无损和有损方法。无损图像是不丢失任何信息而经恢复的。有损方法涉及到不可恢复的一些信息的损失,这取决于压缩率、压缩算法的质量以及算法的实现。一般,有损压缩方法被视为是性价比高的数字电影方法需要的压缩比。为获得数字电影院质量水平,压缩方法应提供视觉损失较少的性能水平。这样,虽然由于压缩过程有信息的数学损失,但该损失引起的图像失却对于观看者在正常观看条件下是不可察觉的。
也对其它应用发展了现存的数字图像压缩技术,即电视机系统。该种技术使得设计合适于需要的应用,但不满足电影院放映需要的质量。
数字电影院压缩技术应提供看电影的人已经历的视觉质量。最理想的是,数字电影院的视觉质量应能试图超过高质量的电影拷贝的视觉质量。同时,压缩技术应有实际的高编码效率。如在此定义的,编码效率指使得压缩的图像质量需要的比特率能满足一定的定性水平。而且,系统和编码技术应能有内建的灵活性以适应不同的格式,且要有较高的性价比,即小型但有效的解码器或编码器过程。
许多可用的压缩技术提供很高的压缩程度,但导致视频信号质量的恶化。一般,传输压缩的信息的技术要求压缩的信息以恒定的比特速率传输。
一种能提供高压缩程度而同时保留视频信号期望的质量水平的压缩技术利用经编码的离散余弦变换(DCT)系数数据的自适应大小的模块以及子模块。该技术此后被称为自适应块大小离散余弦变换(ABSDCT)方法。该技术在美国专利号5021891内有揭示,题为“Adaptive Block Size Image Compression MethodAnd System”,转让给本发明的受让人,在此引入作为参考。DCT技术还在美国专利号5107345内有所揭示,题为“Adaptive Block Size Image CompressionMethod And System”,转让给本发明的受让人,在此引入作为参考。另外,连同差分四叉树(Quadtree)变换技术一起的ABSDCT技术的使用在美国专利号5452104内有揭示,题为“Adaptive Block Size Image Compression Method AndSystem”,转让给本发明的受让人,在此引入作为参考。在这些专利内揭示的系统利用称为“帧内”编码,其中每个图像数据帧以不与其它任何帧的内容相关的方式而经编码。使用ABSDCT技术,可获得的数据率可能从大致1 5亿比特每秒减少到大致5千万比特每秒而不会恶化图像质量。
ABSDCT技术可能用于压缩黑白、彩色图像或表示图像的信号。彩色输入信号可能是YIQ格式,Y是亮度或辉度采样,I和Q是色度或彩色采样,每个为4:4:4或其它格式。还可能使用其它已知的格式(YUV、YCbCr或RGB格式)。由于眼睛对色彩较低的空间灵敏度,许多研究表明色彩分量的子采样为水平和垂直方向上因子为四是合理的。相应地,视频信号可能由四个亮度分量和两个色度分量表示。
使用ABSDCT,视频信号一般被分成象素块以进行处理。对每个块,亮度和色度分量被发送到块交织器。例如一个16×16(象素)的块可能被送到块交织器,它排序或组织每个16×16块内的图像采样以生成数据块和复合子块用于离散余弦变换(DCT)分析。DCT操作是一种将时间和空间采样的信号转变成同一信号的频率表示的方法。通过转变为频率表示,DCT技术能实现高度的压缩,量化器能设计成利用图像的频率分布特性。在最优实施例中,对第一排序应用一个16×16的DCT,第二排序应用四个8×8DCT,第三阶应用16个4×4DCT,第四排序应用64个2×2的DCT。
DCT操作减少了视频资源内固有的空间冗余性。在实行了DCT后,大多数视频信号能量倾向于集中在几个DCT系数内。附加变换即差分四叉树变换(DQT)可能用于减少DCT系数间的冗余性。
对16×16块和每个子块,DCT系数值以及DQT值(如果使用DQT)经分析以确定对块或子块编码需要的比特数。然后,要求最少编码比特数的块或子块的组合被选用表示图像分段。例如,可能选用两个8×8子块,六个4×4子块,八个2×2子块。
选定的块或子块的组合然后适当地按顺序安排成16×16块。DCT/DQT系数值然后可能经历频率加权、量化以及编码(诸如可变长度编码)以准备传输。虽然以上描述的ABSDCT技术性能非常好,但计算强度很大。
另外,虽然使用ABSDCT是视觉无损的,但有时候希望能以数据编码的准确方式恢复数据。例如,原版盘制作以及归档方面的应用要求压缩数据后能准确恢复其在原始域内的形式。
一般,图像的无损压缩系统包括预测器,它估计当前要编码的象素的值。剩余象素是实际和预测象素之差。剩余量象素然后经熵编码、存储或发送。由于预测去除了象素相关,剩余量象素的动态范围减少,该范围的特征是双边指数(拉普拉斯)分布。因此完成压缩。剩余量的压缩量取决于预测和相继的熵编码方法。最通常使用的预测方法是差分脉冲缩码调制(DPCM)以及其变体诸如自适应DPCM(ADPCM)。
基于象素的预测的问题在于剩余仍有很高的能量。这是因为只有很小一部分相邻象素用于预测过程。因此存在改善基于象素预测方案的编码有效性的余地。
本发明概述本发明的实施例描述了一种对数字图像以及视频数据以无损的方式实现压缩的系统。该系统是混合型的,即它有一部分是以有损方式压缩所述的数据,另一部分以无损的方式压缩剩余量数据。对有损部分,系统使用自适应块大小离散余弦变换(ABSDCT)算法。ABSDCT系统对所述的数据进行压缩,产生高视觉质量以及压缩比。剩余量图像是来自ABSDCT系统的原始和压缩后图像之差。该剩余量使用Golomb-Rice编码算法经无损编码。由于视觉上基于自适应块大小以及DCT系数量化,剩余量的能量很低,这样产生了好的总体无损压缩比。
ABSDCT系统在电影质量上获得较高的压缩比。由于它是基于块的,比起任何基于象素的方案,它更好地去除了象素相关性。因此,它被用作无损系统内的预测器而在此被描述。连同该预测器,还加入了无损编码系统以形成混合无损压缩系统。要注意的是系统能压缩静止图像以及运动图像。如果是静止图像,只有用ABSDCT压缩的数据和经熵编码的余量数据用作压缩后的输出。对于运动序列,决定是使用帧内还是帧间压缩。例如,如果f(t)表示在时间t时的图像帧,F(t)和F(t+Δt)分别表示在时间t和t+Δt处的图像帧的DCT。值得注意的是Δt对应两个连续帧间的时间间隔。
本发明体现在用于压缩数据的装置和方法内,它能以数据经编码时的准确方式恢复数据。实施例包括实现帧内编码、帧间编码或两者混合的系统。系统是基于质量的系统,它利用离散余弦变换系数数据的自适应大小的块和子块。声明发无损地对表示图像的信号解码的方法。接收经有损缩的数据文件和经剩余压缩的数据文件。有损压缩的数据文件被分为DC系数和AC系数,并对其分开解码以确定相应的DC值和AC值。DC值和AC值然后经反量化以生成有损的经解压缩的数据。有损的经解压缩的频率数据与剩余量经解压缩的数据组合以生成无损数据文件,其中无损数据文件基本上与源图像相同。
使用诸如ABSDCT的混合压缩系统就如同好的象素或DCT值的预测器。因此这产生了比使用基于象素预测的系统更高的无损压缩比。对无损部分,不同Huffman编码,Golomb-Rice编码不需要预先生成码。因此,它不象Huffman编码要存储扩展的码本。这使得能有效使用码片这“不动产”。因此,在硬件实现中减少了码片的大小。另外Golomb-Rice编码比Huffman编码更容易实现。而且,Golomb-Rice编码的编码效率比Huffman编码的效率更高,这是因为DCT系数或剩余量有指数分布。而且,由于压缩系统的有损部分在块的子分割内使用视觉重要信息,则在剩余量编码中自然有环境建模。其重要性在于在为剩余量编码收集环境数据时不需要另外的存储寄存器。由于不使用运动估计,系统很容易实现。
相应地,本发明的一方面是提供能有效提供无损压缩的装置和方法。
实施例的另一方面是以有助于原版盘拷贝和归档应用的方式无损地对数字图像和音频信息进行压缩。
附图的简要描述通过下面提出的结合附图的详细描述,本发明的特征、性质和优点将变得更加明显,附图中相同的符号具有相同的标识,其中

图1是图像压缩和处理系统的编码器部分的框图;图2是图像压缩和处理系统的解码器部分的框图;图3是说明在基于方差的块大小分配所牵涉到的处理步骤的流程图;图4a说明在DCT系数矩阵内零游程长度的Y分量的指数分布;图4b说明DCT系数矩阵内的零游程长度的Cb1分量的指数分布;图4c说明DCT系数矩阵内的零游程长度的Cr分量的指数分布;图5a说明DCT系数矩阵内的幅度大小的Y分量的指数分布;图5b说明DCT系数矩阵内的幅度大小的Cb分量的指数分布;图5c说明DCT系数矩阵内的幅度大小的Cr1分量的指数分布;图6说明Golomb-Rice编码过程。
图7说明Golomb-Rice编码装置;图8说明对DC分量值编码的过程;图9说明无损压缩的装置;图10说明混合无损压缩的方法;以及图11说明无损解压缩的装置。
最优实施例的详细描述为了方便数字信号的数字传输并获得相应的好处,一般需要使用一些信号压缩的形式。为使产生的图像有高压缩比,很重要的是要维持图像的高质量。另外,为小型的硬件实现,计算有效性在许多应用中都是很需要且很重要的。
在详细解释本发明的实施例前,要理解的是本发明不限于在以下描述或附图中说明的构造细节和元件安排。本发明还能实现其它实施例并以各种方式实现。而且,要理解的是在此使用的措辞和术语是为了描述而不是为了限制。
在实施例的一方面使用的图像压缩是基于离散余弦变换(DCT)技术,诸如在共同待批的美国专利申请内揭示的,题为“Contrast Sensitive VarianceBased Adaptive Block Size DCT Image Compression”,序列号09436085,提交于1999年11月8日,转让给本发明的受让人,并在此引入作为参考。使用DCT的图像压缩和解压缩系统在所附的美国专利申请“Quality Based ImageCompression”内有描述,序列号为09494192,提交于2000年1月28日,转让给本发明的受让人并在此引入作为参考。一般,在数字域要处理的图像由象素数据组成,这些数据被分成不重叠的模块阵列,大小为N×N。可能对每个模块实现二维DCT。二维DCT由以下关系式定义X(k,l)=α(k)β(l)N*MΣm=0N-1Σn=0N-1x(m,n)cos[(2m+1)πk2N]cos[(2n+1)πl2N],0≤k,l≤N-1]]> 而且x(m,n)是在N×M块内位于(m,n)处的象素,以及X(k,l)是对应的DCT系数。
由于象素值非负,所以DCT分量X(0,0)总是正的,且一般有较多的能量。实际上,对于一般的图像,大多数变换能量集中在分量X(0,0)周围。该能量集中特性是为什么DCT技术是种极佳的压缩方法。
图像压缩技术利用对比度自适应编码以获得进一步的比特率减少。已观察到大多数自然图像是由相对缓慢变化的平坦区域组成的,而繁变的区域则是那些物体边界以及高对比度的纹理。对比度自适应编码方案利用该因素,它对于繁变区域分配以更多的比特,而对繁变较不明显区域分配以较少的比特。
对比度自适应方法利用帧内编码(空间处理)而不是帧间编码(空间-时间处理)。帧间编码本质上要求多个帧缓冲器以及更多的复杂处理电路。在许多应用中,对实际的实现需要减少复杂度。帧间编码还在使空间-时间编码方案失败并性能较差的情况可能有用。例如,每秒24帧的电影会属于这一类,这是因为,由于机械快门积分时间相对较短。较短的积分时间导致较高的时间混迭。对于快速运动,由于其不稳定性,帧与帧的相关性的假设变得不成立。当牵涉到50Hz和60Hz的电源线频率时,帧间编码还较容易标准化。使用帧间方案作为数字方法,可以应用于50Hz和60Hz的情况,甚至应用于24帧每秒电影(通过折衷帧速率比空间分辨率)。
对于图像处理的目的,对象素数据实现DCT操作,该数据被分成不重叠模块阵列。值得注意的是虽然模块的大小在此为N×N,但可以使用各种模块大小。例如还可以使用N×M模块大小,其中N和M均为整数,且M大于或小于N。另一重要方面是模块还可以分为至少一层的子模块,诸如N/i×N/i、N/i×N/j、N/i×M/j等,其中i和j为整数。另外,在此讨论的示例模块大小是带有对应的DCT系数的模块和子模块的16×16象素块。另外可能使用各种其它的奇数或偶整数值例如9×9。
图1和2说明包括可配置的串行转变器概念的图像处理系统100。该图像处理系统100包括编码器104,它对接收到的视频信号进行压缩。压缩后的信号使用传输信道或物理介质108进行发送,并由解码器112接收。解码器112将接收到的编码后数据解码成图像采样,然后示出。
一般,图像被分为象素块以进行处理。彩色信号可能RGB到YC1C2变换器116从RGB空间转换到YC1C2空间,其中Y是亮度分量,C1和C2是色度分量。由于眼睛对色彩的空间灵敏度较低,许多系统在水平和垂直方向以四倍因子对C1和C2分量进行子采样。然而,子采样并不是必要的。全分辨率图像(称为4:4:4格式)可能在一些应用中是非常有用或必要的,诸如那些被称为覆盖“数字电影院”的。两种可能的YC1C2表示为YIQ表示和YUV表示,这两种在领域内都为众知的。还可能使用已知为YCbCr的YUV表示的变体。这还可以进一步分为奇偶分量。相应地,在实施例中,还使用Y-偶、Y-奇、Cb-偶、Cb-奇、Cr-偶、Cr-奇。
在最优实施例中奇偶Y、Cb以及Cr分量中的每个不经子采样而被处理。因此,16×16的象素模块的六个分量中的每个的输入提供给编码器104。为进行说明,在此说明Y-偶分量的编码器104。类似的编码器也用于Y-奇分量以及偶和奇Cb和Cr分量。编码器104包括模块大小分配元件120,它为视频压缩作准备执行块大小分配。块大小分配元件120根据块内的图像的感觉特性确定16×16块的模块分解。取决于16×16块内的活动,块大小分配以四叉树方式将每个16×16块分割成更小的块,诸如8×8、4×4以及2×2。块大小分配元件120生成四叉树数据,这称为PQR数据,它的长度在1和21比特之间。因此,如果块大小分配确定要分割16×16块,这设定PQR数据的R比特且接着是对应四个分割的8×8块的Q数据的附加比特。如果块大小分配确定任何这些8×8块要继续分割,则对每个继续分割出的8×8块加入P数据的四个附加比特。
参考图3,流程图示出块大小分配元件120的操作细节。块方差用作是否要继续分割块的度量。开始于步骤202,读出一个16×16块。在步骤204,计算16×16块的方差v16。该方差的计算如下
var=1N2Σi=0N-1Σj=0N-1x2i,j-(1N2Σi=0N-1Σj=0N-1xi,j)2]]>其中,N=16,Xij是N×N模块内的第i行和第j列内的象素。在步骤206,如果块的均值在两个预定值之间,首先修改方差阀值T16以提供新的阀值T’16,然后块的方差与新阀值T’16相比较。
如果方差v16不大于阀值T16,则在步骤208,16×16块的起始地址被写入临时存储器,且PQR数据的R比特被设定为0以指明该16×16块不被继续分割。算法然后读出下一个16×16象素块。如果方差v16大于阀值T16,则在步骤210,PQR数据的R比特被设定为1以指明16×16块要被继续分割为四个8×8块。
四个8×8块(i=1∶4),被视为按顺序进行继续分割,如在步骤212示出。对于每个8×8模块,在步骤214计算方差v8i。在步骤216,如果模块的均值在两个预定值之间,首先方差阀值T8经修改以提供新阀值T’8,然后块的方差与该新阀值相比较。
如果方差v8i不大于阀值T8,则在步骤218,该8×8块的起始地址被写入临时存储器,且对应的Q比特Qi被设定为0。然后处理下一个8×8块。如果方差v8i大于阀值T8,则在步骤220,对应的Q比特Qi被设定为1以指明该8×8模块要被继续分割为四个4×4块。
四个4×4块(ji=1∶4)被视为按顺序进行进一步继续分割,如步骤222示出。对于每个4×4块,在步骤224计算方差v4ij。在步骤226,如果模块的均值在两个预定值之间,首先方差T4经修改以提供新阀值T’4,然后块的方差与该新阀值相比较。
如果方差v4ij不大于阀值T4,则在步骤228,4×4块的起始地址被写入临时存储器,且对应的P比特Pij被设定为0。然后处理下一个4×4块。如果方差v4ij大于阀值T4,则在步骤230,对应的P比特Pij被设定为1以指明该4×4块要被继续分割为四个2×2块。另外,四个2×2块的地址被写入临时存储器。
阀值T16、T8和T4可能是预定的常量。这称为硬判决。或者,可能实现自适应或软判决。例如,软判决根据2N×2N块的平均象素值改变方差的阀值,其中N可能是8、4或2。因此,求平均象素值的函数可能用作阀值。
为说明的目的,考虑以下例子。假设Y分量的预定方差阀值对于16×16、8×8和4×4块分别为50、1100和880。换而言之,T16=50、T8=1100以及T4=880。假设平均值范围为80和100。假设16×16块的计算的方差为60。由于60大于T16,且平均值90在80和100之间,则该16×16块被继续分割成四个8×8子块。假设8×8块计算的方差为1180、935、980以及1210。由于8×8块中的两个有超过T8的方差,则这两个块被进一步分给以产生总共为八个4×4子块。最后,假设八个4×4块的方差为620、630、670、610、590、525、930和690,其对应的均值为90、120、110、115、由于前四个块的均值落在范围(80,100)内,则其阀值会降低到T’4=200,它小于880。所以,这个4×4块会与其它七个4×4块一起继续被分割。
值得注意的是类似的过程用于为亮度分量Y-奇和色度分量Cb-偶、Cb-奇、Cr-偶、以及Cc-奇分配块大小。色度分量可能经水平、垂直或同时两者经抽选。
另外,值得注意的是虽然块大小分配被描述为以自顶向下方法,其中最大块(当前实例中为16×16块)首先经评估,可能取而代之使用自底向上的方法。自底向上的方法会首先评估最小模块(当前实例中为2×2块)。
参考图1,PQR数据以及选定的块的地址提供给DCT元件124。DCT元件124使用PQR数据以在选定的块上实现合适大小的离散余弦变换。只有选定的块需要实现DCT处理。
图像处理系统100还包括用于减少DCT的DC系数间的冗余性的DQT元件128。DC系数位于每个DCT块的左上角。DC系数一般比AC系数大。该大小差别使得很难设计有效的可变长度编码器。相应地,最好减少DC系数间的冗余性。
DQT元件128在DC系数上实现二维的DCT,每次取2×2。开始于4×4块内的2×2块,在四个DC系数上实现二维的DCT。该2×2DCT被称为四个DC系数的差分四叉树变换即DQT。下一步,DQT的DC系数以及8×8块内的三个相邻DC系数被用于计算下一层的DQT。最终,16×16块内的四个8×8块的DC系数用于计算DQT。因此,在16×16块内,有一个真DC系数且剩余的是对应DCT和DQT的AC系数。
变换系数(DCT和DQT)被提供给量化器以进行量化。在最优实施例中,DCT系数使用频率加权掩码(FWM)以及量化比例缩放因子而经量化。FWM是与输入DCT系数块相同维数的频率加权表。频率加权对不同的DCT系数应用不同的加权。加权用于加强含人类视觉或光学系统的较敏感的频率分量的输入采样,并削弱含人类视觉系统较不敏感的频率分量的输入采样。加权还可以根据诸如视野距离等因子确定。
加权是根据经验数据而选定的。决定8×8DCT系数的方法在ISO/IEC JTC1CD 10918中有揭示,“Digital compression and encoding of continuous-tone stil images-part 1Requirements and guidelines”,国际标准化组织1994,在此引入作为参考。一般,设计了两种FWM,一个用于亮度分量,一个用于色度分量。用于块大小4×4和2×2的FWM表是通过抽选获得的,而用于16×16的表格是通过内插8×8块的FWM表格实现的。比例缩放因子控制量化的系数的质量以及比特率。
因此,每个DCT系数根据以下关系经量化 其中DCT(i,j)是输入DCT系数,fwm(i,j)是频率加权掩码,q是比例缩放因子,以及DCTq(i,j)是量化的系数。值得注意的是取决于DCT系数的符号,括号内的第一项是四舍五入的。DQT系数还使用合适的加权掩码进行量化。然而,可以使用多个表格或掩码,并用于每个Y、Cb以及Cr分量。
AC值然后与DC值分开(130)并分开进行处理。对于DC元素,每个分段的第一个DC分量值经编码。每个分段的每个相继的DC分量值被表示为它和处理它的DC分量值之差,且经编码(134)。对于无损编码,每个分段的初始DC分量之以及差值用Golomb-Rice经编码(138),如用图6和8描述的。对相继DC分量值间的差用Golomb-Rice编码的好处在于DC分量值之差倾向于有双边指数分布。数据可能使用缓冲器142经暂时存储,且然后通过传输信道108被传输或发送到解码器112。
图8说明额对DC分量值编码的过程。该过程可应用静止图像、视频图像(诸如但不限于运动图像或高清晰度电视)以及音频。对给定的数据804的分段,获取(808)该分段的第一DC分量值。第一DC分量值然后经编码(812)。不同于AC分量值,DC分量值不需要经量化。在一实施例中,不管块大小分配失败,使用16×16块的单个DC值。可以考虑使用任何固定大小的块,诸如8×8或4×4或任何由块大小分配定义的可变块大小。然后获取(816)给定的分段的第二或下一DC分量值。然后将第二DC分量值与第一DC分量值比较,它们的差或剩余量经编码(820)。因此,第二DC分量值只需要表示为它和第一值之差。该过程对分段的每个DC分量值重复。因此,进行查询(824)是否到达分段的末尾(最后的块因此是最后的DC值)。如果不是(828),则获取(816)分段的下一DC值,并重复过程。如果是(832),则获取(804)下一分段,且处理重复直到处理了帧的所有分段以及文件的所有帧。
对DC分量值无损编码的目标是要生成带有较低方差的剩余值。在使用DCT中,DC系数分量值贡献了最大象素能量。因此,通过不量化DC分量值,减少了剩余量的方差。
对AC元素,数据块和频率加权掩码然后由量化器146或比例因子元件经比例缩放。DCT系数的量化将其大部分减少到零实现了压缩。在最优实施例中,有32个对应平均比特率的比例缩放因子。不同于其它诸如MPEG2的压缩方法,平均比特率根据处理的图像的质量而被控制,而不是目标比特速率和缓冲器状态。
为进一步增加压缩,提供给扫描串行转化器150量化后的系数。串行转化器150扫描量化后的系数块以生成经串行转化的量化系数流。可以使用之字型扫描、列扫描或行扫描。可采用多种不同的之字型扫描模式以及不同于之字型的模式。最优技术对之字型采用8×8模块。量化系数的之字型扫描改善了遇到大的零值游程的几率。该零值游程本质上有减少的概率,且可能使用Huffman码进行有效地编码。
经串行转化并经量化的AC系数流提供给可变长度编码器154。AC分量值可能或使用Huffman编码或使用Golomb-Rice编码。对于DC分量值,使用Golomb-Rice编码。游程长度编码器将为零和非零的系数分开,这在图6的描述中有揭示。在实施例中,使用Golomb-Rice编码。Golomb-Rice编码对带有指数分布的非负整数编码时有效。使用Golomb码在为指数分布的变量提供更短长度的码的压缩时更有效。
在Golomb编码游程长度中,Golomb码由非负整数m经参数化。例如,给定参数m,正整数n的Golomb编码由一元码内的n/m的商示出,接着是用修正的二进制码的余数表示,如果余量小于2[log2 m]-m,则二进制码为[log2m]比特长,否则为[log2m]比特长度。Golomb-Rice编码是Golomb编码的特殊情况,其中参数以m=2k示出。在该情况下,n/m的商通过将整数n的二进制表示向右移k比特,且n/m的余数由n的最小k个比特示出。因此,Golomb-Rice编码是两个的链接。Golomb-Rice编码可以用于对正和负整数用双边几何(指数)分布编码如下
pα(x)=cα|x|(1)在(1)中,α是表示x的概率衰减的特征,c是标准化常量。由于pα(x)是单调的,可得整数值序列满足以下不等式pα(xi=0)≥pα(xi=-1)≥pα(xi=+1)≥pα(xi=-2)≥…(2)如图4a、4b、4c和5a、5b和5c说明的,量化后的DCT系数矩阵内的零游程以及幅度有指数分布。在这些图例中说明的分布是基于来自实际图像的数据。图4a说明零游程长度对相对频率的Y分量分布400。类似的,图4b和4c相应地说明零游程长度对相对频率的Cb和Cr分量分布410和420。图5a说明幅度大小对相对频率的Y分量分布500。类似地,图5b和5c相应地说明幅度大小对相对频率的Cb和Cr分量分布510和520。值得注意的是在图5a、5b以及5c内,图线示出DCT系数的大小分布。每个大小代表一系数范围。例如,大小值为四的范围为{-15,-14,...-8,8,...,14,15},总共16个值。类似地,大小值为十的范围为{-1023,-1022,...-512,512,...,1022,1023},总共1024个值。可以从图4a、4b、4c、5a、5b、5c看出,游程长度以及幅度大小有指数分布。幅度的实际分布可以用以下等式(3)示出p(Xk,l)=2λ2exp{-2λ|xk,l|},k,l≠0---(3)]]>在(3)中,Xk,l表示相应对应垂直和水平方向上的频率k和l的DCT系数,且均值μx=12λ]]>方差σx2=12λ.]]>相应地,以描述的方式使用Golomb-Rice编码在处理DCT内的数据时最佳。
虽然以下是关于图像数据压缩的描述,但实施例也同样可应用于压缩音频数据的实施例。在压缩图像数据时,图像或音频信号可能例如或是带有线性或对数编码的象素值的RGB或YIQ或YUV或是Y Cb Cr分量。
图6说明对零和非零系数编码的过程600。当DCT矩阵被扫描,零和非零系数经分开处理并被分开(604)。对为零数据,确定零游程长度(608)。值得注意的是,游程长度是正整数。例如,如果游程长度为n,则确定Golomb参数m(612)。在一实施例中,Golomb参数作为游程长度的函数而经确定。在另一实施例中,Golomb参数(m)由以下等式(4)确定 可选地,游程长度以及相关的Golomb参数的长度由计数器或寄存器计数(616)。为对零的游程长度n编码,要对一个商进行编码(620)。在一实施例中,该商作为零的游程长度以及Golomb参数的函数而被确定。在另一实施例中,商(Q)由以下等式(5)确定 在实施例中,系数Q以一元码经编码,这需要Q+1个比特。下一步,余数经编码(624)。在一实施例中,余数作为游程长度和商的函数经编码。在另一实施例中,余数(R)使用以下等式(6)而确定R=n-2mQ(6)在一实施例中,余数以m比特二进制码经编码。此后,确定商Q和余数R,Q和R的码经链接(628)以表示零游程长度n的整个的码。
非零系数还使用Golomb-Rice经编码。由于系数幅度可以为正或为负,所以必须使用符号比特并对给定的幅度的绝对值编码。给定非零系数的幅度x,则幅度可以表示为幅度和符号的绝对值的函数。相应地,幅度用以下等式(7)可以表示为y 相应地,非零系数值可选地可由计数器或寄存器计数(632)。然后确定(636)幅度是否大于或等于零。如果是,则值作为给定值的两倍经编码(640)。如果不是,则值作为比两倍的绝对值小一进行编码(644)。还可以考虑使用其它映射方案。关键在于不需要额外的比特以区别值的符号。
按等式(7)示出的进行幅度编码会产生x的正值为偶整数,而负值为奇整数。另外,该映射保留了(2)内的x的概率分布。等式(7)内说明的编码的好处在于避免了使用符号比特以表示正数和负数。在完成映射后,y以对零游程同样的方式进行编码。继续进行处理直到当前模块内的所有系数都经扫描。
很重要的是,虽然本发明的实施例按等式(1)-(7)的函数确定系数和游程长度的值,但不一定要完全按照等式(1)-(7)进行。要使用Golomb-Rice编码和DCT系数的指数分布以对图像和音频数据进行更有效的压缩。
由于在编码后的零游程与非零幅度没有区别,可能需要使用固定长度的特定前缀码以标记第一零游程的发生。一般经常在遇到非零幅度后遇到模块内的所有的零。在该情况下,可能更有效的是使用关于块结束(EOB)码的码而不是Golomb-Rice码。EOB码(可选的)同样是特定的固定长度码。
根据等式(1)或(3),DCT系数矩阵内的幅度或游程长度的概率分布的参数表示为α或λ。这暗示着如果在产生特定DCT系数块的情况下,可能改善编码效率。然后可能使用合适的Golomb-Rice参数对涉及的量进行编码。在一实施例中,计数器或寄存器用于每个游程长度和幅度大小值以计算相应的累加值以及对应的该值发生的次数。例如,如果存储累加值和累加元素个数的寄存器相应为Rrl和Nrl,则以下等式(6)可能用作Rice-Golomb参数以对游程长度编码 可能对幅度进行类似的处理。
剩余量象素由首先使用ABSDCT解码器对压缩数据进行解压缩而生成,然后从原始数据中减去。剩余量的动态范围越小,则压缩度就越高。由于压缩是基于块的,则剩余量也在块基础上生成。众知的一个事实是剩余量象素有双边指数分布,一般中心在零点。由于Golomb-Rice编码一般对于该种数据为最优,则Golomb-Rice编码过程用于压缩剩余量数据。然而,由于没有游程长度要编码,所以不需要特别的码。另外,也不需要EOB码。因此,压缩的数据包括两个分量。一个是来自有损压缩器的分量,另一个来自无损压缩器。
当对运行序列编码时,也能通过使用时间相关性获得好处。为了充分利用时间相关性,首先由于运动的原因估计象素的位移,然后实现运动补偿预测以获得剩余量象素。由于ABSDCT实现自适应块大小编码,块大小信息可能交替地用作运动引起的位移的测量。作进一步简化,不需要场景变化检测。相反,对于序列内的每个帧,首先获得帧内压缩数据。然后当前和先前帧DCT之差可以在模块接着模块的基础上生成。DCT域内的这些剩余量用Huffman和Golomb-Rice编码过程经编码。最终压缩后的输出对应于每帧使用最小比特数的一个。
图9说明混合无损编码装置900。图10说明可能在该种装置上运行的处理。原始数字信息904驻留在存储器设备上,或经发射。图9内的许多元件将参照图1和图2作更详细的描述。数据帧被发送到压缩器908,该压缩器包括块大小分配元件912、DCT/DQT变换元件916、量化器920以及串行转化器921。在对数据实现DCT/DQT之后,数据被转换到频率域。在一个输出922内,数据由量化器920量化并发送到输出924,它可能包括存储和/或切换。以上描述的处理均为帧内的。
量化器的输出还被发送到解压缩器928。在另一实施例中,串行转化器(诸如huffman串行转化器921)的输出被发送到解压缩器。可选地,串行转化器的921的输出可能在解压缩器928前通过反向串行转化器(未示出)。解压缩器928的处理与压缩器的处理相反,通过反量化器932、IDQT/IDCT 936,以及获知的由BSA定义的PQR数据。解压缩器940的结果被发送到减法器944,在此它与原始情况相比。解压缩的数据与原始数据间的比较结果948是象素剩余量文件。即该结果948指明经压缩和解压缩的数据经历的损失。因此,原始数据等于与结果948组合的输出922。结果948然后经串行转化(952)以及Huffman和/或Golomb-Rice编码(956),并作为第二输出960提供。因此,无损、帧内输出是两个数据集合(即有损高质量图像文件(922或A)和剩余量文件(960或C))的组合或混合。
还可能使用帧间编码。DCT/DQT 962的输出(未经量化因此是无损的)被传送到存储器964,连同关于BSA的知识。在另一实施例中,量化器963的输出(经量化因此有损)被发送到存储器964以及关于BSA的知识。在收集到帧的数据后,减法器966将存储的帧964与下一帧968相比。在另一实施例中,减法器966在模块接着模块的基础上进行比较。该差值产生了DCT剩余量970,该剩余量然后经串行转化和/或Golomb-Rice编码(974),提供给输出924第三输出数据集合976。因此,搜集了B和C的帧间无损文件。因此可以根据大小的考虑而选择(A+C或B+C)的组合。另外,为进行编辑可能需要纯的帧间输出。
图11说明无损解码器1100,它以与图9描述的相同但相反的方式操作。在图11内,A表示帧间有损压缩编码后的数据,B表示帧间剩余量有损压缩编码后的数据,C表示帧内有损压缩编码后的数据,D表示剩余量有损压缩编码后的数据。A被分成DC系数1104和AC系数1108。DC系数1104经解压缩且该值以图8和所附的美国专利申请描述的方式而获取,该申请题为“LosslessInterframe Encoding Using GOLOMB-RICE”,提交于2001年7月2日,序列号为09/898284,在此特别引入作为参考。更特定的是,DC系数1104被发送到Golomb-Rice解码器1112,它的功能与Golomb-Rice编码器的功能相反,并将输出发送到反DC差分脉冲码调制器(IDCDPCM)1116。IDCDPCM 1116确定DC分量值并将它们发送到反离散余弦变换(IDCT)1120。类似地,AC系数1108被发送到反串行转化器1124。在一实施例中,反串行转化器是反huffman串行转化器。串行转化器1124的输出被发送到反量化器1128,其输出被传送到IDCT1120。通过实现反变换的IDCT 1120生成有损解压缩的频率数据。
输入B表示帧间剩余量有损压缩编码后的数据,它被传送到Golomb-Rice解码器1132。Golomb-Rice解码器1132的功能与Golomb-Rice编码器的功能相反,并将其输出传送到加法器1136。加法器1136将剩余量输出与IDCT1120的输出相加以生成频域内的无损帧间编码后的数据。彩色变换器将此最终转换为RGB形式作为最终输出。可能使用不同的彩色变换的变体,诸如在临时专利申请中描述的,题为“ABSDCT Lossl ess Algorithm for Digital CinemaArchival Applications”,提交于2002年7月11日,代理人号010421。
帧间解码以类似的方式操作。输入C表示有损帧间压缩编码后的数据,它被发送到Golomb-Rice解码器1144。来自Golomb-Rice解码器1144的输出是差分DCT数据,表示当前帧和前一帧间的元素之差。存储器1148存储来自前一帧的数据,并由加法器1152加入DCT差值,产生DCT域内的有损数据。因此,DCT域的有损数据被传送到反量化器1156,其输出被传送到IDCT1160。通过实现反变换而进行解压缩的IDCT1120生成有损解压缩的频率数据。反量化器1156的输出还被送到存储器1148以作为数据的前一帧,它将与数据的下一帧比较。
输入D表示帧内剩余量压缩编码后的数据,它被发送到Golomb-Rice解码器1164。Golomb-Rice解码器1164的功能与Golomb-Rice编码器的功能相反,并将输出传送到加法器1168。加法器1136将剩余量输出与IDCT 1160的输出相加以生成频域内的无损帧内编码数据。彩色变换器1172将其转换为RGB形式作为最终输出。
参考图1,由编码器104生成的压缩后的图像信号可能使用缓冲器142经暂时存储,然后用传输信道108暂时发送到解码器112。传输信道108可能是物理介质,诸如磁或光存储设备,或有线或无线传输处理或装置。包含块大小分配信息的PQR数据被提供给解码器112(图2)。解码器112包括缓冲器164以及可变长度解码器168,它对游程长度值以及非零值解码。可变长度解码器168以如图6描述的类似但相反的方式操作。
可变长度解码器168的输出被提供给反串行转化器172,它根据使用的扫描方案而排列系数。例如,如果使用之字型扫描、垂直扫描和水平扫描的混合,则反串行转化器172会根据已知的使用的扫描类型而重新对系数排序。反串行转化器172接收PQR数据以帮助将系数合适地排序成复合系数块。
复合块被提供给反量化器174,以进行与使用量化器比例缩放因子以及频率加权掩码的处理相反的处理。
如果应用差分四叉树变换,则系数块然后被提供给IDQT元件186,接着是IDCT元件190,否则系数块直接提供给IDCT元件190。IDQT元件186以及IDCT元件190对系数反变换以生成象素数据块。象素数据然后可能需要经内插、转换为RGB形式,然后被存储用于将来显式。
图7说明Golomb-Rice编码700的装置。图7内的装置最好实现关于图6描述的处理。确定器704确定游程长度(n)以及Golomb参数(m)。可选地,可以对每个游程长度和幅度大小值使用计数器或寄存器以计算相应的累加值以及该值对应的发生的次数。编码器712对商(Q)按游程长度和Golomb参数的函数编码。编码器712还对剩余量(R)按游程长度、Golomb参数和商的函数编码。在另一实施例中,编码器712还对非零数据按非零数据值和非零数据值的符号的函数编码。链接器716用于链接Q值和R值。
作为示例,上述优选实施例的描述揭示的各种说明性逻辑模框、流程图以及步骤可以以带有以下元件的硬件或软件方式实现应用专用集成电路(ASIC)、可编程逻辑器件、离散门或晶体管逻辑、离散硬件组件诸如寄存器和FIFO、执行一组固件指令的处理器、任意常规的可编程软件模块和处理器或以上的任何组合。处理器最好是微处理器,然而或者,处理器可以是任何常规的处理器、控制器、微控制器或状态机。软件模块可以驻留于RAM存储器、快闪(flash)存储器、ROM存储器、寄存器、硬盘、可移动盘、CD-ROM、DVD-ROM或本领域中已知的其它任意形式的存储媒体中。
上述优选实施例的描述使本领域的技术人员能制造或使用本发明。这些实施例的各种修改对于本领域的技术人员来说是显而易见的,这里定义的一般原理可以被应用于其它实施例中而不使用创造能力。因此,本发明并不限于这里示出的实施例,而要符合与这里揭示的原理和新颖特征一致的最宽泛的范围。
本发明的其它特征和优势在以下的权利要求中提出。
权利要求
1.一种无损地对表示图像的信号解码的方法,其特征在于包括接收经有损压缩的数据文件;接收经剩余量压缩的数据文件;将经有损压缩的数据文件分为DC系数和AC系数;对DC系数和AC系数分开解码以确定相应的DC值和AC值;以及对DC值和AC值反量化以产生有损的经解压缩的数据;对经剩余量压缩的数据文件解码以生成经剩余量解压缩的数据;将有损经解压缩的频率数据与经剩余量解压缩的数据组合以生成无损数据文件,其中无损数据文件基本上与源图像相同。
2.如权利要求1所述的方法,其特征在于所述的有损压缩的数据文件以及剩余量压缩的数据文件在帧内基础上经解码。
3.如以上任何权利要求所述的方法,其特征在于反量化使用的是离散余弦变换(DCT)以及离散四叉树变换(DQT)技术的组合。
4.如以上任何权利要求所述的方法,其特征在于还包括将无损数据文件变换成红、绿、蓝(RGB)彩色分量。
5.一种用于无损地对代表图像的信号解码的装置,其特征在于包括用于接收经有损压缩的数据文件的装置;用于接收经剩余量压缩的数据文件的装置;用于将经有损压缩的数据文件分为DC系数和AC系数的装置;用于对DC系数和AC系数分开解码以确定相应的DC值和AC值的装置;以及用于对DC值和AC值反量化以产生有损的经解压缩的数据的装置;用于对经剩余量压缩过的数据文件解码以生成经剩余量解压缩的数据的装置;用于将经有损解压缩的频率数据与经剩余量解压缩的数据组合以生成无损数据文件的装置,其中无损数据文件基本上与源图像相同。
6.如权利要求5所述的装置,其特征在于所述的经有损压缩后的数据文件以及经剩余量压缩的数据文件在帧内或帧间基础上破解码。。
7.如权利要求5或6所述的装置,其特征在于反量化的装置使用的是离散余弦变换(DCT)以及离散四叉树变换(DQT)技术的组合。
8.如权利要求5或取决于此的权利要求6-7中的任何一个所述的方法,其特征在于还包括将无损数据文件变换成红、绿、蓝(RGB)彩色分量的装置。
全文摘要
声明了一种无损地对表示图像的信号解码的方法。接收经有损压缩的数据文件和经剩余量压缩的数据文件。经有损压缩的数据文件然后被分成DC系数和AC系数,并分别经解码以确定DC值和AC值(130)。DC值和AC值经反量化以生成经有损的经解压缩的数据(146)。经有损的经解压的频率数据与经剩余量解压缩的数据组合以生成无损数据文件,其中无损数据文件基本上与原图像相同。
文档编号H04N1/41GK1547708SQ02816543
公开日2004年11月17日 申请日期2002年7月19日 优先权日2001年7月19日
发明者K·赛亚加拉简, K 赛亚加拉简, A·C·厄瓦恩, 厄瓦恩 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1