彩色图像编码的方法、系统和软件产品的制作方法

文档序号:6655605阅读:592来源:国知局
专利名称:彩色图像编码的方法、系统和软件产品的制作方法
技术领域
本发明涉及一种彩色图像编码的方法、系统和软件产品。
背景技术
近年来,互联网上彩色图像数据量急速增长。具体地,由于网页、数码摄像机和在线游戏的加速流行,彩色图像数据成为互联网流量的主要部分。另一方面,通过无线信道或通过低功率的小型设备访问彩色图像仍然是耗时且不便的,这主要是由于图像显示设备、存储和传输带宽的限制成为多数多媒体应用的瓶颈,例如,参见J.Barrilleaux,R.Hinkle和S.Wells,“Efficient vector quantization for color image encoding,”Acoustics,Speech,and Signal Processing,IEEE International Conference onICASSP’87,vol.12,pp740-743,April 1987(下面称为“参考[1]”)、M.T.Orchard and C.A.Bouman,“Color quantization of images,”SignalProcessing,IEEE transations on,vol.39,no.12,pp.2677-2690,Dec.1991(下面称为“参考[2]”)、I.Ashdown,“Octree color quantization,”C/C++ UsersJounal,vol.13,no.3,pp.31-43,1994(下面称为“参考[3]”)、X.Wu,“Yiq vectorquantization in new color palette architecture,”IEEE Trans.On ImageProcessing,vol.5,no.2,pp.321-329,1996(下面称为“参考[4]”)、L.Velho,J.Gomes和M.V.R.Sobreiro,“Color image quantization by pairwiseclustering,”Proc.Tenth Brazilian Symp.Comput.Graph.ImageProcess.,L.H.de Figueiredo和M.L.Netto,Eds.Campos do Jordao,Spain,pp.203-210,1997(下面称为“参考[5]”)以及S.Wan,P.Prusinkiewicz和S.Wong,“Variance-based color image quantization for frame buffer display,”Res.Appl.,vol.15,pp.52-58,1990(下面称为“参考[6]”)。
消除以上限制的一种方式是应用高效的彩色图像编码方案,其压缩、优化或重新编码彩色图像。典型的彩色图像编码方案包括调色板、像素映射和无损代码。调色板用作矢量量化码本,并且用于代表原始彩色图像中的所有颜色。像素映射则将图像中的每一种颜色映射至于调色板中的颜色相对应的索引。像素映射可以是硬判决像素映射,其中一旦给定了调色板,则RGB彩色矢量到调色板的颜色的量化是固定的,并且与图像中RGB彩色矢量的像素位置无关,像素映射也可以是软判决像素映射,其中在不同像素位置处RGB彩色矢量被量化为调色板的不同颜色。最后由无损代码对从像素映射产生的索引序列进行编码。
以前,调色板设计、像素映射和编码被分离地研究。在调色板和像素映射的设计中,通常忽略编码部分,并且主要目的是减小量化失真、改进量化图像的可视质量以及降低计算复杂度。在文献中,例如参见参考[1]至[6],提出了多种树结构的划分和合并彩色图像量化方法,以多少能够实现该目的。
另一方面,当考虑编码时,通常假设调色板和像素映射已经被给定,并且其目的是设计索引序列的有效代码,以便降低压缩率。例如,在A.Zaccarin和B.Liu,“A novel approach for coding color quantized image,”Image Processing,IEEE Transactions on,vol.2,no.4,pp.442-453,Oct.1993(下面称为“参考[7]”)中给出的彩色量化图像的LUV彩色空间中的有损压缩的算法。在N.D.Memon和A.Venkateswaran,“On ordering color maps forlossless predictive coding,”IEEE Transactions on Image Processing,vol.5,no.11,pp.1522-1527,1996(下面称为“参考[8]”)中提出了两个启发式的解决方案,在编码图像之前,通过无损预测编码技术来对彩色图像进行重新编码。根据二进制树结构和基于上下文的熵编码,在X.Chen,S.Kwong和J.fu Feng,“A new compression scheme for color-quantized images,”Circuits and Systems for Video Technology,IEEE Transactionson,vol.12,no.10,pp.904-908,Oct 2002(下面称为“参考[9]”)中提出了一种压缩算法,以提供进步的彩色量化图像的编码。在这些算法中,以压缩的比特流与诸如GIF/PNG解码器之类的标准解码器不兼容为代价,实现了压缩效率。

发明内容
根据本发明的第一方面,提供了一种方法,使用数据处理系统,从具有N个不同颜色的数字化彩色图像中创建数字化彩色图像中所有像素到M个不相交簇(cluster)的树结构划分,其中,M小于或等于N,N个不同颜色中的每种颜色由调色板中的多个P比特字节数字地表示,并且每个P比特字节中的P比特是从最高有效到最低有效排列的。该方法包括(a)提供包括所有N个不同颜色的根节点;(b)提供与根节点相连的第一级兄弟节点,其中由数据处理系统根据所述多个P比特字节中的每个P比特字节的第一比特的值,将N个不同颜色中的每种颜色分配给第一级兄弟节点中的相关节点;(c)对于包括多于一种颜色的第k级节点中的每个节点,在第k+1级提供多个兄弟节点,其中由数据处理系统根据该颜色的所述多个P比特字节中的每个P比特字节的第k+1比特的值,将该节点中的每种颜色分配给第k+1级多个兄弟节点中的相关兄弟节点,使得对于N个不同颜色中的这种颜色,存在只包含该颜色的独立叶节点;以及(d)选择并合并叶节点,直到仅剩下M个叶节点为止。
根据本发明的第二方面,提供了一种数据处理系统,用于从具有N个不同颜色的数字化彩色图像中创建数字化彩色图像中所有颜色到M个不相交簇的树结构划分,其中,M小于或等于N,N个不同颜色中的每种颜色由调色板中的多个P比特字节数字地表示,并且每个P比特字节中的P比特是从最高有效到最低有效排列的。该数据处理系统包括(a)节点创建装置,用于(i)提供包括所有N个不同颜色的根节点;(ii)提供与根节点相连的第一级兄弟节点,其中根据所述多个P比特字节中的每个P比特字节的第一比特的值,将N个不同颜色中的每种颜色分配给第一级兄弟节点中的相关节点;以及(iii)对于包括多于一种颜色的第k级节点中的每个节点,在第k+1级提供多个兄弟节点,其中根据该颜色的所述多个P比特字节中的每个P比特字节的第k+1比特的值,将该节点中的每种颜色分配给第k+1级多个兄弟节点中的相关兄弟节点,使得对于N个不同颜色中的这种颜色,存在只包含该颜色的独立叶节点;以及(b)节点合并装置,用于选择并合并叶节点,直到仅剩下M个叶节点为止。
根据本发明的第三方面,提供了一种在计算机系统上使用的计算机程序产品,用于从具有N个不同颜色的数字化彩色图像中创建数字化彩色图像中所有像素到M个不相交簇的树结构划分,其中,M小于或等于N,N个不同颜色中的每种颜色由调色板中的多个P比特字节数字地表示,并且每个P比特字节中的P比特是从最高有效到最低有效排列的。该计算机程序产品包括记录介质;记录在介质上的装置,用于指示计算机系统执行以下步骤(a)提供包括所有N个不同颜色的根节点;(b)提供与根节点相连的第一级兄弟节点,其中由数据处理系统根据所述多个P比特字节中的每个P比特字节的第一比特的值,将N个不同颜色中的每种颜色分配给第一级兄弟节点中的相关节点;(c)对于包括多于一种颜色的第k级节点中的每个节点,在第k+1级提供多个兄弟节点,其中由数据处理系统根据该颜色的所述多个P比特字节中的每个P比特字节的第k+1比特的值,将该节点中的每种颜色分配给第k+1级多个兄弟节点中的相关兄弟节点,使得对于N个不同颜色中的这种颜色,存在只包含该颜色的独立叶节点;以及(d)选择并合并叶节点,直到仅剩下M个叶节点为止。
根据本发明的第四方面,提供了一种方法,用于针对从原始数字化彩色图像中推导出的新数字化彩色图像,推导出表示像素映射的新索引序列和表示调色板的新输出函数,其中原始和新的数字化彩色图像两者都定义在n个像素上,其中,原始数字化彩色图像由分配给n个像素的N个不同颜色提供,新数字化彩色图像由分配给n个像素的M个不同颜色提供,新索引序列具有表示n个像素的n个索引组分(index member),新输出函数用于将n个索引组分映射至M种颜色。该方法包括(a)根据原始数字化彩色图像中的每个像素的颜色,通过将原始数字化彩色图像中的所有像素划分为M个不相交簇,来提供第一新索引序列,与像素在原始数字化彩色图像中的位置无关,其中,M小于或等于N;(b)提供第一新输出函数,用于将M个不同颜色一对一地映射至M个不相交簇中的像素;(c)对于第一新索引序列的每个组分,分别根据由第一新输出函数分配给该组分的颜色值与由第一新输出函数分配给第一新索引序列的至少一个其它组分的颜色值的相关程度,来对第一新索引序列和第一新输出函数应用软判决优化过程,以提供新的索引序列和新的输出函数。
根据本发明的第五方面,提供了一种数据处理系统,用于针对从原始数字化彩色图像中推导出的新数字化彩色图像,推导出表示像素映射的新索引序列和表示调色板的新输出函数,其中原始和新的数字化彩色图像两者都定义在n个像素上,其中,原始数字化彩色图像由分配给n个像素的N个不同颜色提供,新数字化彩色图像由分配给n个像素的M个不同颜色提供,新索引序列具有表示n个像素的n个索引组分,新输出函数用于将n个索引组分映射至M种颜色。该数据处理系统包括(a)硬判决模块,用于(i)根据原始数字化彩色图像中的每个像素的颜色,通过将原始数字化彩色图像中的所有像素划分为M个不相交簇,来提供第一新索引序列,与像素在原始数字化彩色图像中的位置无关,其中,M小于或等于N;以及(ii)提供第一新输出函数,用于将M个不同颜色一对一地映射至M个不相交簇中的像素;以及(b)软判决模块,用于对于第一新索引序列的每个组分,分别根据由第一新输出函数分配给该组分的颜色值与由第一新输出函数分配给第一新索引序列的至少一个其它组分的颜色值的相关程度,来对第一新索引序列和第一新输出函数应用软判决优化过程,以提供新的索引序列和新的输出函数。
根据本发明的第六方面,提供了一种在计算机系统上使用的计算机程序产品,以针对从原始数字化彩色图像中推导出的新数字化彩色图像,创建像素映射和表示调色板的新输出函数,其中原始和新的数字化彩色图像两者都定义在n个像素上,其中,原始数字化彩色图像由分配给n个像素的N个不同颜色提供,新数字化彩色图像由分配给n个像素的M个不同颜色提供,新索引序列具有表示n个像素的n个索引组分,新输出函数用于将n个索引组分映射至M种颜色。该计算机程序包括记录介质;以及装置,记录在介质上,用于指示计算机系统执行以下步骤(a)根据原始数字化彩色图像中的每个像素的颜色,通过将原始数字化彩色图像中的所有像素划分为M个不相交簇,来提供第一新索引序列,与像素在原始数字化彩色图像中的位置无关,其中,M小于或等于N;(b)提供第一新输出函数,用于将M个不同颜色一对一地映射至M个不相交簇中的像素;(c)对于第一新索引序列的每个组分,分别根据由第一新输出函数分配给该组分的颜色值与由第一新输出函数分配给第一新索引序列的至少一个其它组分的颜色值的相关程度,来对第一新索引序列和第一新输出函数应用软判决优化过程,以提供新的索引序列和新的输出函数。


下面参考以下附图来提供本发明优选方面的详细描述,附图中图1是示出了根据本发明优选方面的计算机系统的方框图;图2是示出了根据本发明优选方面的八叉树结构的图;图3是示出了根据本发明软判决优化方面的第一变体的维特比算法的图;图4是示出了根据本发明软判决优化方面的第二变体的维特比算法的图;以及图5是示出了图1的计算机系统的CPU的方框图。
具体实施例方式
参考图1,示出了根据本发明方面的计算机系统10的方框图。计算机系统包括存储器12,用于存储彩色图像数据;监视器14,用于显示数字彩色图像;CPU 16,用于图像处理,并且在保持低计算复杂度和与GIF/PNG解码器的兼容的同时,提供联合地优化了量化、失真和压缩权重的颜色数据的压缩;以及编码器20,例如GIF编码器或PNG编码器,用于在通过传输导管20从计算机系统10传输之前,对彩色图像数据进行编码。
彩色图像编码的联合优化问题可以定义如下设定Ω={(r,g,b)|0≤r,g,b≤255}是RGB颜色空间。假设O={o1,o1,...,oN-1}是具有N个不同颜色的原始彩色图像的调色板。如果原始图像中的总像素数目是n,则通过从上至下、从左至右扫描彩色图像,获得索引序列I=(i0,i1,...,in-1),其中ik表示第k个像素的颜色矢量是oik。如果限定使用具有M种颜色(M<N)的新调色板C来再现原始彩色图像,则联合优化编码器致力于找到新调色板C={c0,c1,...,cM-1}、新索引序列U=(u0,u1,...,un-1)以及无损代码字长度函数I,以再现原始图像,且使下面的代价函数(cost function)最小化n-1l(U)+λn-1Σk=0n-1d(oik,cuk)]]>其中,λ是拉格朗日乘子,d是由cuk表示oik所引起的平方误差d(oi,ck)=||oi-ck||2=(roI-rck)2+(goi-gck)2+(boi-bck)2---(1.1)]]>由于在无损代码字长度函数和无损代码之间存在一对一的映射,对无损代码字长度函数的选择等效于对无损代码的选择。
显而易见地,Σk=0n-1d(oik,cik)=Σk=0n-1[(rok-rck)2+(gok-gck)2+(bok-bck)2]---(1.2)]]>是总平方误差(TSE),与量化彩色图像的可视质量紧密相关。注意,TSE或者其它类似失真测量的最小化是在参考[1]至[6]所考虑的面向量化的方法的唯一目的。类似地,给定新调色板C和像素映射(因此有索引序列U),所有可能的无损代码字长度函数1中比特率n-1l(U)的最小化是参考[7]至[9]所考虑的颜色量化图像的编码方法的唯一目的。以上给出的代价函数提出了速率和失真的联合优化的问题。量化失真由调色板C和像素映射(即索引序列U)确定;压缩率由像素映射和无损代码字长度函数1确定。当然,在这里,像素映射是软判决像素映射。因此,即使无损代码长度函数1是固定的,通过改变C和U,仍然可以联合地优化速率和失真。
存在多种无损代码字长度函数,每一个函数与不同的熵代码相对应,例如D.A.Huffman,“A method for the construction of minimum-redundancycodes,”Proc.IRE,vol.40,no.9,pp.1098-1101,1952(下面称为“参考[12]”)的Huffman代码、J.Ziv和A.Lempel,“A universal algorithm for sequentialdata compression,”IEEE Trans.On Information Theory,vol.23,pp.337-343,1977(下面称为“参考[11]”)、J.Ziv和A.Lempel IEEETrans.Inform.theory(下面称为“参考[10]”)的Lempel-ziv代码、I.H.Witten,M.Neal和J.G.Cleary,“Arithmetic coding for data compression,”Commun.ACM,vol.30,pp.520-540,June 1987(下面称为“参考[13]”)的算术代码、E.-H.Yang和J.C.Kieffer,“Efficient universal lossless datacompression algorithms based on a greedy sequential grammar transform-part onewithout context models,”IEEE Trans.On Information Theory,vol.46,no.3,pp.755-4777,may 2000(下面称为“参考[14]”)以及J.C.Kieffer和E.-H Yang,“Grammer based codesA new class of universal lossless sourcecodes,”IEEE Trans.on information Theory,vol.46,no.3,pp.737-754,may 2000(下面称为“参考[16]”)的基于语法的代码以及特别针对彩色图像编码而设计的无损代码(参见参考[7]至[9])。由于希望保持与GIF/PNG解码器的兼容,所以在GIF解码器的情况下将l选择为LZ78或其变体的代码字长度,并且在PNG解码器的情况下将l选择为LZ77或其变体的代码字长度,参见J.Miano,“Compressed image file formatsJpeg,png,gif,xbm,bmp,”ACM Press,2000(下面称为“参考[17]”),在所有情况下简单地由lLZ(U)表示。因此,要最小化的代价函数是n-1lLZ(U)+λn-1Σk=0n-1d(oik,cuk).]]>以上给出的代价函数具有与熵限制矢量量化(ECVQ)中定义的代价函数类似的形式,参见P.A.Chou,T.Lookabaugh和R.M.Gray,“Entropy-constrained vector quantization,”Acoustic,Speech,and SignalProcessing[还参见IEEE Transactions on Signal Processing],IEEETransactions on,vol.37,no.1,pp.31-42,Jan.1989(下面称为“参考[18]”),特别地具有与可变速率格栅信源编码(VRTSE)中定义的代价函数类似的形式,参见E.-H.Yang和Z.Zhang,“Variable rate trellis source encoding,”IEEETrans.on information Theory,vol.45,no.2,pp.586-608,March 1999(下面称为“参考[19]”)。在利用格栅结构且联合地优化产生的速率、失真和选定的编码路径意义上,VRTSE可以被看作熵限制标量量化和矢量量化[18]的概括。其有效的性能,尤其是在低速率区域,使VRTSE特别适用于彩色图像编码,在彩色图像编码中,通常希望有高压缩比以节约存储空间和传输时间。
根据VRTSE,根据本发明的方面,开发出两种方法可变速率格栅(trellis)颜色量化(VRTCQ)1和VRTCQ2,以在保持低计算复杂度和与GIF/PNG解码器兼容的同时,联合地优化量化失真和压缩率。VRTCQ1和VRTCQ2使用软判决像素映射,并且是递归的。此外,根据本发明的另一个方面,开发出熵限制等级合并量化(ECHMQ),其使用RGB颜色的八叉树数据结构,并且局部地使量化彩色图像的熵限制代价最小化,以提供VRTCQ1和VRTCQ2的初始彩色图像编码方案。ECHMQ独立地提供了一种平衡量化彩色图像的速率和失真的有效方式。
可变速率格栅信源编码的简要回顾[19]中给出的可变速率格栅信源编码是固定斜率有损编码对格栅结构解码器的扩展,参见E.hui Yang.,Z.Zhang和T.Berger,“Fixed-slopeuniversal lossy data compression,”IEEE Trans.on Information Theory,vol.43,no.5,pp.1465-1476,Sept.1997(下面称为“参考[20]”)。对于每个实数值信源序列xn=(x0,x1,...,xn-1)∈Rn,目的在于找到序列un=(u0,u1,...,un-1)∈Mnset,Mset={0,1,...,M-1},以使以下代价函数最小化J(xn)=n-1l(un)+λn-1p(xn,β(un))其中,λ是给定的拉格朗日乘子,l是无损代码字长度函数,β(un)=(z0,z1,...,zn-1)是与un相对应的再现序列,p是由下式定义的平方误差失真p(xn,zn)Δ‾Σi=0n-1p(xi,zi)Δ‾Σ0n-1(xi-zi)2]]>其中xn=(x0,x1,...,xn-1),且zn=(z0,z1,...,zn-1)。
从un中,通过格栅结构的解码器β=(f,g),确定再现序列β(un),其中fS×Mset→S是状态变换函数,S={s0,s1,...,s|s|-1}是状态集合,并且gS×Mset→R是输出函数。函数f和g分别确定了格栅结构和再现等级的集合(与调色板类似)。给定初始状态Si0,再现序列β(un)=(z0,z1,...,zn-1)计算如下zj=g(sij,uj)]]>sij+1=f(sij,uj)]]>j=0,1,...,n-1 (2.3)换句话说,当接收到un时,解码器β在遍历状态序列si0,si1,...,sin的同时输出再现序列β(un)=(z0,z1,...,zn-1)。
固定β。将l选择为具有k阶变换概率函数W(u|uk|)的k阶静态算术代码字长度函数LWk。然后使用维特比算法来找到最佳序列unun=argvn=(v0,v1,...,vn-1)∈Mnmin[n-1LWk(v0,v1,...,vn-1)+λn-1p(xn,β(vn))]---(2.4)]]>固定f。g、un和LWk的联合优化(或者等效为W(u|uk|))可以描述如下ming,Wminun∈Mn[n-1LWk(un)+λn-1p(xn,β(un))]---(2.5)]]>
在[19]中提出了一种可选的算法,以解决联合优化问题(2.5)。这种可选算法的过程如下步骤1设定t=0。选择输出函数g(o)和变换概率函数W(0),满足W(o)(u|uk)>0,对于任意u∈Mset和uk∈Mkset。
步骤2固定g(t)和W(t)。使用维特比算法,由g(t)替换g,W(t)替换W,来找到满足方程(2.4)的序列(un)(t)=(u0(t),u1(t),..,un-1(t))。
步骤3固定(un)(t)。索引序列(un)(t)引起变换概率函数和输出函数如下的更新W(t+1)(u|uk)=|{j:uj(t)=u,(uj-kj-1)(t)=uk,0≤i≤n}||{j:(uj-kj-1)(t)=uk,0≤j<n}|,]]>uk∈Msetk,]]>u∈Mset以及g(t)(s,u)=Σs,uxj|{j:sij=s,uj(t)=u,0≤j<n}|]]>s∈S,u∈Mset其中,uj-kj-1=uj-k...uj-1,]]>sij,j=0,1,...,n-1是隔栅解码器(f,g(t))响应于(un)(t)而遍历的状态,并且对满足sij=s]]>且uj(i)=u]]>的所有j取∑s,u。
步骤4对于t=0,1,2,..重复步骤2至3,直到[n-1LkW(i)((un)(i))+λn-1p(xn,β(t)((un)(i)))]-[n-1LkW(i+1)((un)(i+1))+λn-1p(xn,β(i+1)((un)(i+1)))]≤ξ]]>其中,ξ是预定的小阈值,LkW(t)是与k阶变换概率函数W(t)(u|uk|)相关的k阶静态算法代码字长度函数。然后输出g(t+1)、(un)(t+1)和W(t+1)。
VRTSE的性能渐进地接近于如参考[19]中定理3和4所示的有限速率-失真。对高斯、拉普拉斯、高斯-马尔可夫信源的实验结果表示VRTSE尤其适用于低速率编码。为了将VRTSE应用于彩色图像编码,必须解决以下问题问题1VRTSE中使用的无损代码字长度函数是k阶静态算术代码字长度函数Lk。另一方面,在彩色图像编码的本示例中,无损代码字长度函数是Lempel-ziv代码字长度函数LLZ。
问题2在VRTSE中,未规定初始化步骤,即步骤1。即,在VRTSE中怎样选择初始函数g(0)和W(0)是开放的。在彩色图像编码设置中,这转变为怎样设计初始彩色图像编码方案。
问题3为了减小计算复杂度,VRTSE中的索引集合Mset通常被选择为Mset=2的二进制,使得可以使用高级算术代码字长度。另一方面,在彩色图像编码中,基数M通常相对较大,并且可以大至256。因此,需要一种新方法来降低计算复杂度。
为了避开问题1,给Lempel-ziv代码字长度函数lLZ定上界。如果LLZ是LZ78的代码字长度函数,则遵守针对任意序列un=(u0,u1,...,un-1)的无损信源编码文献(例如,参见[14]),1nlLZ(un)≤rk(un)+qkloglognlogn---(2.6)]]>其中,rk(un)是每符号中比特的un的k阶经验熵,qk是仅取决于k的常数,log代表底为2的对数。如果lLZ是LZ77的代码字长度函数,则类似的上限也是有效的。代替使受失真限制的 最小化,使VRTCQ1中受相同失真限制的rk(un)最小化。在VRTCQ1中使用不同的上限。下面解决问题2至3。
熵限制等级合并量化根据本发明的方面,通过熵限制等级合并量化(ECHMQ)来解决问题2,ECHMQ提供了VRTSE的初始彩色图像编码方案。ECHMQ用作VRTCQ1和VRTCQ2的第一阶段,即阶段1。
ECHMQ是硬判决量化,将原始N个颜色划分为M个非交迭的簇,找到每个簇的再现颜色,并确定每个原始颜色的再现颜色,而与原始颜色在2维图像中的位置无关。其利用八叉树数据结构[3],并通过局部地使下面定义的熵限制代价最小化,来平衡速率和失真。
设定具有调色板O={o1,o1,...,oN-1}的n像素彩色图像和所希望的新调色板大小M<N,使用硬判决量化器q来将N个颜色划分为M簇C0,C1,...,CM-1,其对于i≠j和0≤i,j<M,满足
Ci∩Cj≡ФC0∪C1∪...∪CM-1≡O(3.7)簇的质心的整数形式构成了调色板C={c0,c1,...,cM-1},并且从原始颜色到簇的映射明确地将每个像素映射至索引。设定un=(u0,u1,...,un-1)∈Msetn]]>是将所有像素映射至索引所获得的索引序列。因此,量化图像的熵限制代价定义如下J(q)=R(q)+λD(q)(3.8)其中,λ是拉格朗日乘子。在(3.8)中,D(q)是总平方误差D(q)=Σj=0M-1Σok∈cjF(ok)d(ok,cj)---(3.9)]]>其中,对于0≤i<N,F(oi)是颜色oi在原始彩色图像中出现的次数,d(ok,cj)是两种颜色在RGB空间的欧几里德距离的平方,如方程(1.1)所定义的。R(q)是索引序列un的代码字长度。由于从颜色至索引的映射与颜色在彩色图像中的位置无关,所以第一阶熵用于计算代码字长度R(q)=Σj=0M-1[(Σok∈c1F(ok))lognΣok∈c1F(ok)]---(3.10)]]>方程(3.8)中定义的代价函数与参考[18]中的熵限制矢量量化(ECVQ)中定义的拉格朗日函数类似。主要问题是设计一种具有良好速率失真平衡和较低编码复杂度的硬判决量化器q。使用八叉树来加速合并,并且使用方程(3.8)中定义的代价函数来平衡量化图像的速率和失真。
与扫描每个像素的颜色并将其插入树[3]的高速(on-the-fly)八叉树构建过程不同,获得原始彩色图像的直方图,并一次构建初始八叉树。参考图2,示出了包含原始彩色图像中所有不同的颜色及其出现次数的八叉树22。根节点24,即等级0,包括彩色图像中的不同颜色。由于RGB颜色空间中每个颜色包括三个8比特字节,每个字节代表基本组成,三个字节的最高有效位确定颜色在等级1中的位置。只要多于一个颜色被传递给一个节点,则该节点就是中间节点26,并且应该根据较低有效RGB位的组合来进一步分裂。传递给叶节点28的颜色被称为在该叶节点28的颜色,并且颜色本身实际上是该叶节点的质心。沿每个颜色分量方向,等级k处任何两个叶兄弟节点的质心之间处于(0,29-k)的范围内。显而易见地,k越大,这些质心颜色越类似。注意,图2所示的八叉树非常不平衡且不对称,这是由于以下两个原因第一,普通的彩色图像中出现的颜色数目远小于RGB空间可用的224个颜色总数目(参见参考[17]);第二,如果只有一种颜色被分配给一个节点,则该节点停止分裂。
现在,将原始彩色图像中每个不同颜色oi放在八叉树中的不同叶节点Θi中。通过重复每次合并两个叶兄弟节点,可以将叶节点的数目从N减少至M。产生的每个叶节点的质心的整数形式是新的调色板中的颜色。注意,在重复合并叶兄弟节点之后,每个叶节点与原始彩色图像的调色板中的颜色子集相对应。
假设O={o1,o1,...,oN-1}是原始彩色图像的调色板。设定Θi和Θj是父节点Θ下的两个叶兄弟节点,其中Θi={oi0,oi1,...,oim-1},]]>Θj={oj0,oj1,...,ojK-1}.]]>并且Θi∩Θj≡Ф。设定ci是Θi的质心颜色,cj是Θj的质心颜色。节点Θi的出现次数Fi定义为节点Θi中每种颜色出现次数的总和FiΔ=Fi0+Fi1+...+Fim-1]]>其中,Fi1表示原始图像中颜色oi1的出现次数。按照类似的方式计算节点Θj的出现次数FjFjΔ=Fj0+Fj1+...+Fjk-1]]>其中,Fji表示原始图像中颜色oji的出现次数。通过将两个节点Θi和Θj合并为新的节点Θij,将Θi和Θj中的所有颜色移到了新的节点Θij,即Θij=Θi∪Θj={oi0,oi1,...,oim-1,oj0,oj1,...,ojk-1,}.]]>因此,节点Θij的出现次数是Fij=Fi+Fj。假设允许实数值颜色。下面的引理给出了从Θi和Θj合并至Θij的产生的熵限制待机增量。
引理1通过合并节点Θi和Θj,熵限制代价增加了ΔJ=λ(Fid(c1,cij)+Fjd(cj,cij))+FijlognFij-FilognFi-FjlognFj---(3.11)]]>其中,cij是节点Θij的质心,即cij=1Fij(Fici+Fjcj)---(3.14)]]>证明当利用该单元质心来再现该单元中所有元素时实现了最小的总平方误差。这是质心条件,参见在量化方法中广泛使用的S.P.Lloyd,“Leastsquares quantization in pcm,”IEEE Trans.on Information Theory,no.28,pp.127-135,March 1982(下面称为“参考[21]”)。在这篇文章中,使用叶节点的质心作为该节点中所有颜色的量化等级,即再现颜色。通过这种方式,可以计算出每种可能的合并的熵限制代价,而不需要计算合并之前总熵限制代价与合并之后总熵限制代价之间的差值。
由于Fici=Σp=0m-1Fipoip]]>以及Fjcj=Σq=0k-1Fjqojq,]]>新节点Θij的质心是cij=1Σp=0m-1Fip+Σq=0n-1Fjq(Σp=0m-1Fipoip+Σq=0k-1Fjqojq)=1Fij(Fici+Fjcj)]]>可以通过分别计算增加的平方误差ΔD和增加的代码字长度ΔR来证明增加的熵限制代价ΔJ的方程(3.11)。设定DΘi表示使用ci作为Θi的量化等级而引起的总平方误差。则DΘi=Σp=0m-1Fip||oip-ci||2.]]>类似地,有DΘi=Σq=0k-1Fjq||ojq-cj||2]]>和DΘij=Σp=0m-1Fip||oip-cij||2+Σq=0k-1Fjq||ojq-cij||2.]]>将cij代入方程(3.12),并简化D(Θij)的表达式,获得DΘij=DΘi+DΘj+Fid(c1,cij)+Fjd(cj,cij).]]>因此,ΔD=DΘij-(DΘi+DΘj)=Fid(ci,cij)+Fid(cj,cij)]]>设定RΘi表示对具有节点Θi中的颜色的所有像素进行熵编码所产生的总比特数目。则RΘi=FilognFi.]]>类似地,有RΘj=FjlognFj]]>和RΘij=FijlognFij.]]>因此,ΔR=R(Θij)-(R(Θi)+R(Θj))=FijlognFij-FilognFi-FjlognFj]]>其与ΔD一起暗示了(3.11)。这实现了引理1的证明。
引理1提供了合并两个叶兄弟节点的规则。阶段1的目的是产生给出量化图像的速率和失真之间的有效平衡的硬判决量化器。由于原始调色板是限定的,通过搜索所有可能的组合,可以找到全局最佳硬判决量化器。而,这种方法具有较高的计算复杂度,因此对于实时压缩是不实用的。引理1提出了一种可选方法,即一种贪婪法(greedy method),以设计一种树结构的硬判决量化器。根据具有N个叶节点的原始八叉树,可以以最小熵限制代价的增加来重复地合并两个叶兄弟节点,直到剩下M个叶节点为止。被称为熵限制等级合并量化(ECHMQ)的这种方法是快速的,且给出了量化图像的速率和失真之间的相当好的平衡。ECHMQ的详细步骤如下步骤1读出n个像素的原始彩色图像X=(x0,x1,...,xn-1),并获得调色板O={o1,o1,...,oN-1}和每种颜色oi的出现次数fi,其中0≤i<N。
步骤2通过将每种颜色oi插入树作为不同的叶节点Θi,构建八叉树。对于0≤i<N的每一个叶节点Θi,计算其质心ci=oi,TSEDΘi=0,]]>出现次数Fi=fi,并且代码字长度RΘi=FilognFi.]]>步骤3设定k=N。
步骤4对于每两个叶兄弟节点Θi和Θj,通过方程(3.12)计算质心cij,通过方程(3.11)计算增加的熵限制代价。
步骤5在所有叶兄弟节点对中,选择使在前一步骤中计算的增加的熵限制代价最小化的两个叶兄弟节点Θp和Θq。如果Θp和Θq是其父节点下仅有的兄弟,则将Θp和Θq合并为等于Θp和Θq的父节点的新叶节点Θpq,否则将其合并为Θp和Θq父节点下的新组合叶节点。计算Θpq的质心cpq,Fpq=Fp+Fq,DΘpq=DΘp+DΘq+Fpd(cp,cpq)+Fqd(cq,cpq)]]>以及RΘpq=FpqlognFpq.]]>步骤6从八叉树中去除叶节点Θp和Θq。
步骤7使k减1。
步骤8重复步骤4至7,直到k=M为止。然后将不同的索引i∈Mset分配给最终八叉树中剩下的M个叶节点中的每一个。叶节点的质心的整数形式是新的调色板中的不同颜色,并且该叶节点中的所有颜色映射至与该叶节点相对应的索引。
当达到所希望的颜色数目时,量化原始图像的最终熵限制代价是J=JN+ΔJN+ΔJN-1+...+ΔJM+1=JN+Σi=NM+1ΔJi,]]>其中JN是具有N个不同颜色的原始图像的代价,ΔJi是当合并两个选定的叶节点并且将八叉树的叶节点数目从i减为i-1时增加的代价。通过找到每次在合并八叉树中的两个叶兄弟节点时的最小增加熵限制代价,ECHMQ提供了一种使熵限制代价最小化的局部最佳方式。
ECHMQ目的在于(局部)使熵限制代价最小化,而不是使纯失真TSE最小化。因此,由拉格朗日乘子λ控制和平衡量化图像的速率和失真。随着λ增加,平均失真减小,相应的速率增加。实际上,-λ可以解释为产生的速率失真曲线的斜率。因此,在ECHMQ中,可以灵活地使用λ作为平衡因子来改变量化图像的速率和失真。
ECHMQ的另一个优点在于其较低的计算复杂度。为了示出该优点,假设最初有总共256个叶节点,所有叶节点分配在等级7的32个父节点之下的等级8处。为了使叶节点的数目减为255,需要计算32×8!2!×6!=896]]>对叶兄弟节点的增加的熵限制代价。如果不使用八叉树结构,则需要计算256!2!×254!=32640]]>对的增加代价,在[5]中,成对地分簇主要使用该方法。将方程(3.11)改写为ΔJ=λ{F1[(rci-rcij)2+(gci-gcij)2+(bci-bcij)2]+]]>Fj[(rci-rcij)2+(gci-gcij)2+(bcj-bcij)2]}+]]>FijlognFij-(RΘi+RΘj)]]>可见,每对叶兄弟节点的增加代价的计算包括8次加、7次减、10次乘、1次除以及1次对数运算。与其它方法中所需的较高计算相比,如对于每次分裂采用Jocobi方法的基于TSE的等级分裂方法[2]等,ECHMQ享有非常低的复杂度。此外,在步骤8处可以容易地获得调色板和像素的映射;这与如在参考[5]和[6]中所述方法等的文献中的其它方法相比也是有利的,在这些方法中,在调色板设计和像素的映射中包括大量的计算。
如果略过下面所述的进一步的优化,可以直接由GIF/PNG编码器对在ECHMQ结尾处所获得的新的调色板和像素的映射进行编码。为了明确,下面使用PNG编码器作为熵编码器。用可用的GIF编码器代替PNG编码器,可以容易地获得与GIF解码器兼容的输出。
VRTCQ1在这部分,采用软判决量化,在保持与GIF/PNG解码器兼容的同时,进一步联合地优化量化彩色图像的压缩率和失真。使用在ECHMQ结尾处获得的硬判决量化器作为初始彩色图像编码方案,可以将VRTSE扩展到彩色图像编码,产生VRTCQ1。
设定从VRTCQ1的VRTSE设置开始。由于希望保持与GIF/PNG解码器的兼容,输出函数g不能够依赖于任何状态。换句话说,状态集S仅包括s0。在这种情况下,可以丢开状态变换函数f,输出函数g仅仅是从Mset至RGB空间的映射,定义了索引和调色板中颜色之间的对应,并且隔栅解码器降为β=g。给定原始彩色图像xn=(x0,x1,...,xn-1),对于un∈(u0,u1,...,un-1)∈Msetn]]>的任意序列,定义d(xn,g(un))=Σi=0n-1d(xi,g(ui))]]>使用在(2.6)中给定的上界,并且使受失真限制的rk(un)最小化。为了明确,设定k=1。然而,可以容易地将下面所述的过程扩展到任意k。
可以从在ECHMQ结尾处获得的调色板和像素映射中推导出初始输出函数g(0)和变换概率函数W(0)。VRTCQ1的详细过程描述如下步骤1设t=0。从ECHMQ中获得(un)(0)、g(0)和W(0)(un)(0)=(u0(0),u1(0),...,un-1(0))]]>是从硬判决量化器产生的量化图像的索引序列,g(0)(j)是在ECHMQ结尾处获得的新调色板中与索引j相对应的颜色,其中0≤j<M,以及对于任意α∈Mset和w∈Mset,有W(0)(α|w)=|{i:ui(0)=α,ui-1(0)=w,0≤i<n}||{i:ui-1(0)=w,0≤i<n}|]]>还计算初始代价J(0)=n-1L1W(0)((un)(0))+λn-1d(xn,g(0)((un)(0)))].]]>步骤2固定g(t)和W(t)。使用维特比算法来找到满足以g(t)代替g和以W(t)代替W的方程(2.4)的序列(un)(i+1)=(u0(i+1),u1(i+1),...,un-1(i+1)).]]>步骤3固定(un)(t+1)。索引序列(un)(t+1)使得变换概率函数和输出函数更新如下对于任意α∈Mset和w∈Mset,有W(t+1)(α|w)=|{i:ui(t+1)=α,ui-1(t+1)=w,0≤i<n}||{i:ui-1(t+1)=w,0≤i<n}|,]]>以及对于任意u∈Mset,有g(t+1)(u)=Σuxi|{i:ui(t+1)=u,0≤i<n}|]]>其中,对ui(t+1)=u]]>的所有i求和∑u。注意,xi代表原始图像中第i个像素的颜色。
步骤4计算更新的代价Jt+1=n-1L1W(t+1)((un)(t+1))+λn-1d(xn,g(t+1)((un)(t+1)))].]]>步骤5对于t=0,1,2,...重复步骤2至4,直到J(t)-Jt+1≤ξ为止,其中ξ是预定阈值。
然后输出g(t+1)和(un)(t+1)。
步骤6使用[17]中描述的PNG编码器对调色板g(t+1)和索引序列(un)(t+1)进行编码。
可以将步骤2至6简称为VRTCQ1的阶段2。图3所示的图示出了此处所用的维特比算法。阶段之间增加的代价计算如下-logW(ui|ui-1)+d(xi,g(ui))(4.13)其中对于任意0≤i<n,si=ui。在阶段i为了找到达到状态j的优选路径,需要比较M个累加的代价,每个需要3次加、3次减和乘。因此总的计算复杂度是O(nM2)。
中的定理3示出了阶段2的最优性。整体上,VRTCQ1在保持与GIF/PNG解码器的兼容的同时,在一定程度上联合地优化了量化彩色图像的速率和失真。实验示出了收敛非常快;通常,在2至3次迭代之后,J(t)非常接近于其极限。
考虑VRTCQ1的整体计算复杂度来结束本部分。与阶段2相比,VRTCQ1的阶段1,即ECHMQ,具有非常低的计算复杂度。因此,VRTCQ1的主要计算复杂度在于阶段2,尤其是在维特比算法中。由于维特比算法的每次迭代具有计算复杂度O(nM2),所以当M较大时,VRTCQ1的总计算复杂度非常不利于实时压缩。因此,希望在大M(large M)的情况下降低计算复杂度。这个问题由VRTCQ2解决。
VRTCQ2为了在大M的情况下降低VRTCQ1的计算复杂度,现在以不同于(2.6)的方式来定义Lempel-Ziv代码字长度函数的上限。为此,定义与第k阶经验熵rk(un)不同的新信息量。设定M’是严格小于M的整数。设定b(·)是从Mset={0,1,...,M-1}至M′set={0,1,...,M′-1}的映射。关于b,将Mset划分为M’组{i∈Msetb(i)=j},j=0,1,...,M′-1。对于任意un=(u0,u1,...,un-1)∈Msetn,]]>设定b(un)=(b(u0),b(u1),...,b(un-1))定义r(un|b(un))Δ=Σj-1M′-1Σi=0M-1|t:0≤t<n,ut=i,b(ut)=j}|log|{t:0≤t<n,b(ut)=j}||{t:0≤t<n,ut=i,b(ut)=j}|]]>量r(un|b(un))被称为给定b(un)下的un的条件经验熵。希望的信息量定义如下rk*(un)=rk(b(un))+r(un|b(un))]]>其中,rk(b(un))是b(un)的第k阶经验熵。不难表明rk(un)≤rk*(un)+O(lognn)]]>因此,由于(2.6),Lempel-Ziv代码字长度函数lLZ的上限为1nlLZ(un)≤rk*(un)+O(loglognlogn)---(5.14)]]>代替使受失真限制rk(un)的最小化,现在使在VRTCQ2中受失真限制的rk*(un)最小化。与nrk(un)是所有k阶静态算术代码字长度函数LWk所提供的最小代码字长度的事实类似,nrk*(un)也与代码字长度函数相关。设定WS(s|sk)是从M′setk至M′set的概率变换函数,WU(u|s)是从M′set至Mset的概率变换函数。对于任意un=(u0,u1,...,un-1)∈Msetn,]]>使LWsWU(un)=-Σt=0n-1[logWS(b(ut)|b(ut-1)...b(ut-k))+logWU(ut|b(ut))]---(5.15)]]>很容易看出,LWSWU是与无损代码相对应的代码字长度函数,其中首先使用具有变换概率Ws的第k阶静态算术代码来编码b(un),然后在给定b(un)下有条件地编码un,从而通过无损代码编码un。此外,不难以表明nrk*(un)=minWS,WULWSWU(un)+O(logn)]]>因此,给定映射b,VRTCQ2中的联合优化问题变为ming,WS,WUminun∈Msetn[n-1LWSWU(un)+λn-1d(xn,g(un))]---(5.16)]]>为了明确,设定k=1。然而,下面的所有论据和过程也适用于一般的k。给定g、Ws和Wu,则可以由复杂度为O(nM′2)而不是O(nM2)的维特比算法来解决(5.16)中的内部最小化。为了表明的确如此,注意,由于(5.15),每次t增加时,代价增加-logWS(b(ut)|b(ut-1))-logWU(ut|b(ut))+λd(xt,g(ut))(5.17)在(5.17)中,仅第一项取决于通过(past through)b(ut-1)。因此,可以构建具有状态集SM′set和两个连续阶段的状态之间的完全连接的隔栅,然后对隔栅执行维特比算法,以解决内部最小化问题。在执行维特比算法之前,计算最小的子代价c(s,x)Δ‾minu∈{i:0≤i<M,b(i)=s[-logWU(u|s)+λd(x,g(u))]]]>对于每个(s,x)组合,其中s∈M′set和x∈O。将(s,x)对的最小子代价和实现最小子代价的相应颜色索引u保存在查找表中。从隔栅的阶段t-1处的状态st-1∈M′set变换到隔栅的阶段t处的状态st的代价是-logWS(st|st-1)+c(st,xt)。给定原始图像xn=(x0,x1,...,xn-1),如果sn=(s0,s1,...,sn-1)∈Mset′n]]>是通过隔栅的最佳路径,则un=(u0,u1,...,un-1),其中ut∈{i0≤i<M,b(i)=st}实现了最小代价c(st,xt),其中t=0,1,..,n-1是实现(5.16)中内部最小化的最佳索引序列。
与VRTCQ1类似,VRTCQ2以迭代方式解决了联合优化问题(5.16)。VRTCQ2的阶段1确定映射b,并提供了初始输出函数g(0)和变换概率函数WU(0)和WS(0)。然后VRTCQ2的阶段2使用可选过程来解决最小化问题。VRTCQ2的详细过程描述如下。
A.阶段1的过程步骤1对原始图像执行ECHMQ,以获得具有M个叶节点、调色板大小为M的八叉树TM以及相应的硬判决像素映射。
步骤2根据TM,重复ECHMQ的步骤4至7,直到剩下M’个叶节点为止。
步骤3确定从八叉树TM至在步骤2中获得的具有M’个叶节点的八叉树TM’的映射b,TM’是TM的子集。具体地,当且仅当TM的第i个叶节点位于以TM’的第j个叶节点为根的TM的子树中时,b(i)=j,i∈Mset并且j∈M′set。
B.阶段2的过程步骤1设定t=0。从VRTCQ2的阶段1获得b、(un)(0)、(sn)(0)、g(0)、WU(0)和WS(0),其中(un)(0)=(u0(0),u1(0),...,un-1(0))]]>时从硬判决像素映射产生的索引序列,(sn)(0)=(s0(0),s1(0),...,sn-1(0))=b((un)(0),g(0)(u))]]>(0≤u<M)是在阶段1的步骤1中获得的新调色板中与索引u相对应的颜色,WU(0)(u|s)=|{i:ui(0)=u,si(0)=s,0≤i<n}||{i:si=s,0≤i<n}|,u∈Mset,s∈M′set]]>以及WS(0)(α|w)=|{i:si-1=w,si=α,0≤i<n}||{i:si-1=w,0≤i<n}|,α∈M′set,w∈M′set]]>还计算初始代价J(0)=n-1LWS(0)WU(0)((un)(0))+λn-1d(xn,g(0)((un)(0)))]]>步骤2固定g(t)和W(t)。构建查找表。对于每对(s,x),其中s∈M′set和x∈O,计算最小子代价
c(s,x)=minu∈{i:0≤i<M,b(i)=s}[-logWU(t)v(u|s)+λd(x,g(t)(u))]]]>并且记录实现c(t)(s,x)的颜色索引u∈{i0≤i<M,b(i)=s}。
步骤3固定g(t)、WU(t)和WS(t)。使用维特比算法来找到通过隔栅的最佳路径(sn)(i+1)=(s0(i+1),s1(i+1),...sn-1(i+1)),]]>其与b以及查找表一起确定了由g(t)代替g、由WU(t)代替WU和由WS(t)代替WS的(5.16)中的内部最小化的最佳索引序列(un)(i+1)=(u0(i+1),u1(i+1),...,un-1(i+1)).]]>步骤4固定(un)(t+1)和(sn)(t+1)。这两个序列使得变换概率函数和输出函数更新如下WU(i+1)(u,s)=|{i:ui(i+1)=u,si(i+1)=s,0≤i<n|{i:si(i+1)=w,0≤i<n}|,u∈Mset,s∈M′set,]]>WS(i+1)(α|w)=|{i:si-1(i+1)=w,si(i+1)=α,0≤i<n}||{i:wt-1(i+1)=w,0≤i<n}|,α∈M′,w∈M′]]>以及g(t+1)(u)=Σuxi|{i:ui(t+1)=u,0≤i<n}|,u∈M]]>其中,对ui(t+1)=u]]>的所有i求和∑u。
步骤5计算更新代价Jt+1=n-1LWX(t+1)WU(t+1)((un)(t+1))+λn-1d(xn,g(t+1)((un)(t+1)))].]]>步骤6对于t=0,1,2,...重复步骤2至5,直到J(t)-Jt+1≤ξ为止,其中ξ是预定阈值。
然后输出g(t+1)和(un)(t+1)。
步骤7使用[17]中的PNG编码器对调色板g(t+1)和索引序列(un)(t+1)进行编码。
图4的图示出了步骤3中使用的维特比算法。在图中,每个圆圈代表一组,圆圈中的黑点代表组中的所有颜色索引u∈Mset。
与VRTCQ1类似,VRTCQ2的主要计算复杂度仍然在其阶段2。尽管与VRTCQ1的阶段2相比,VRTCQ2的阶段2具有额外的步骤,即步骤2,但是该步骤并不是计算量密集的。实际上,其计算复杂度是O(NM),不取决于原始图像的大小n,并因此当n较大时,与维特比算法的复杂度相比可以忽略。VRTCQ2的阶段2的步骤3中的维特比算法现在具有O(nM′2)的计算复杂度,与VRTCQ1中使用的维特比算法的O(nM2)的计算复杂度相比是有利的。因此,当M′<<M时,VRTCQ2远比VRTCQ1快。此外,一旦固定M′,则VRTCQ2的计算复杂度就不再依赖于M。这使得对于颜色丰富的图像而言,VRTCQ2更具吸引力。VRTCQ2的代价是由于使用宽松边界来限制Lempel-Ziv代码字长度函数的上界,所以在压缩率和失真之间的平衡方面,压缩性能稍有损失。
参考图5,示出了图1的计算机系统10的CPU 16的方框图。如图所示,CPU 16包括硬判决模块40和软判决模块42。硬判决模块40提供了如上所述的ECHMQ。软判决模块42提供了如上所述的VRTCQ1和VRTCQ2。
如上所述,硬判决模块40包括节点创建子模块,用于构建八叉树;节点合并子模块,用于选择和合并叶节点;以及代价计算子模块,用于对于叶节点对的可能的合并,计算每个这种合并的熵限制代价增量。与硬判决模块40类似,软判决模块42包括代价计算子模块,用于确定在软判决模块42的每次软判决迭代之后代价的增量减小。
本发明的其它变化和修改也是可以的。例如,如上所述,ECHMQ可以独自使用,而不使用VRTCQ来进行其它的软判决优化,以提供硬判决像素映射。可选地,可以使用VRTCQ,而不使用ECHMQ来提供初始硬判决像素映射。但是,也可以提供一些其它的初始硬判决过程。此外,代替VRTCQ,其它的软判决优化方法可以结合ECHMQ一起使用。此外,尽管以上描述主要涉及怎样在保持较低计算复杂度和与如GIF/PNG解码器等的标准解码器兼容的同时、联合地解决量化失真和压缩率,对于本领域技术人员显而易见的是,在其它上下文中,ECHMQ和VRTCQ也可以应用于彩色图像数据的压缩。所有这种修改或变化被认为处于所附权利要求所限定的本发明的界限和范围内。
权利要求
1.一种方法,用于使用数据处理系统,从具有N个不同颜色的数字化彩色图像中创建数字化彩色图像中所有像素到M个不相交簇的树结构划分,其中,M小于或等于N,N个不同颜色中的每个颜色由调色板中的多个P比特字节数字地表示,并且每个P比特字节中的P比特是从最高有效到最低有效排列的,该方法包括(a)提供包括所有N个不同颜色的根节点;(b)提供与根节点相连的第一级兄弟节点,其中,由数据处理系统根据所述多个P比特字节中的每个P比特字节的第一比特的值,将N个不同颜色中的每个颜色分配给第一级兄弟节点中的相关节点;(c)对于包括多于一种颜色的第k级节点中的每个节点,在第k+1级处提供多个兄弟节点,其中由数据处理系统根据该颜色的所述多个P比特字节中的每个P比特字节的第k+1比特的值,将该节点中的每个颜色分配给第k+1级多个兄弟节点中的相关兄弟节点,使得对于N个不同颜色中的每种颜色,存在只包含该颜色的不同叶节点;以及(d)选择并合并叶节点,直到仅剩下M个叶节点为止。
2.根据权利要求1所述的方法,其中,步骤(d)包括重复选择和合并叶兄弟节点对,直到仅剩下M个叶节点为止。
3.根据权利要求1所述的方法,其中,步骤(d)包括重复选择和合并合并具有最小熵限制代价增量的叶兄弟节点对,直到仅剩下M个叶节点为止。
4.根据权利要求3所述的方法,其中,步骤(d)包括计算最小熵限制代价增量,而不计算合并前总熵限制代价和合并后总熵限制代价之间的差值。
5.根据权利要求1所述的方法,其中,N个不同颜色中每个颜色的多个P比特字节包括多个基色中每个基色的P比特字节。
6.根据权利要求3所述的方法,其中,多个基色包括红、绿和蓝。
7.根据权利要求1所述的方法,还包括创建具有M个不同颜色的新数字化彩色图像,其中在M个不同颜色和完成步骤(d)之后剩下的M个叶节点之间存在一对一的对应。
8.一种数据处理系统,用于从具有N个不同颜色的数字化彩色图像中创建数字化彩色图像中所有颜色到M个不相交簇的树结构划分,其中,M小于或等于N,N个不同颜色中的每个颜色由调色板中的多个P比特字节数字地表示,并且每个P比特字节中的P比特是从最高有效到最低有效排列的,该数据处理系统包括(a)节点创建装置,用于(i)提供包括所有N个不同颜色的根节点;(ii)提供与根节点相连的第一级兄弟节点,其中根据所述多个P比特字节中的每个P比特字节的第一比特的值,将N个不同颜色中的每个颜色分配给第一级兄弟节点中的相关节点;以及(iii)对于包括多于一种颜色的第k级节点中的每个节点,在第k+1级处提供多个兄弟节点,其中根据该颜色的所述多个P比特字节中的每个P比特字节的第k+1比特的值,将该节点中的每个颜色分配给第k+1级多个兄弟节点中的相关兄弟节点,使得对于N个不同颜色中的每个颜色,存在只包含该颜色的独立叶节点;以及(b)节点合并装置,用于选择并合并叶节点,直到仅剩下M个叶节点为止。
9.根据权利要求8所述的数据处理系统,其中,节点合并装置操作用于重复地选择和合并叶兄弟节点对,直到仅剩下M个叶节点为止。
10.根据权利要求8所述的数据处理系统,还包括代价计算装置,用于对于叶节点对的可能合并,计算每个这种合并的熵限制代价增量,其中,代价计算装置与节点合并装置相链接,并且节点合并装置操作用于重复地选择和合并由代价计算装置确定其合并具有最小熵限制代价增量的叶兄弟节点对,直到仅剩下M个叶节点为止。
11.根据权利要求10所述的数据处理系统,其中,代价计算装置操作用于计算最小熵限制代价增量,而不计算合并前总熵限制代价和合并后总熵限制代价之间的差值。
12.根据权利要求8所述的数据处理系统,其中,N个不同颜色中每个颜色的多个P比特字节包括多个基色中每个基色的P比特字节。
13.根据权利要求10所述的数据处理系统,其中,多个基色包括红、绿和蓝。
14.根据权利要求8所述的数据处理系统,还包括创建具有M个不同颜色的新数字化彩色图像,其中在M个不同颜色和完成步骤(d)之后剩下的M个叶节点之间存在一对一的对应。
15.一种在计算机系统上使用的计算机程序产品,用于从具有N个不同颜色的数字化彩色图像中创建数字化彩色图像中所有像素到M个不相交簇的树结构划分,其中,M小于或等于N,N个不同颜色中的每个颜色由调色板中的多个P比特字节数字地表示,并且每个P比特字节中的P比特是从最高有效到最低有效排列的,该计算机程序产品包括记录介质;记录在介质上的装置,用于指示计算机系统执行以下步骤(a)提供包括所有N个不同颜色的根节点;(b)提供与根节点相连的第一级兄弟节点,其中由数据处理系统根据所述多个P比特字节中的每个P比特字节的第一比特的值,将N个不同颜色中的每个颜色分配给第一级兄弟节点中的相关节点;(c)对于包括多于一种颜色的第k级节点中的每个节点,在第k+1级处提供多个兄弟节点,其中由数据处理系统根据该颜色的所述多个P比特字节中的每个P比特字节的第k+1比特的值,将该节点中的每个颜色分配给第k+1级多个兄弟节点中的相关兄弟节点,使得对于N个不同颜色中的每个颜色,存在只包含该颜色的独立叶节点;以及(d)选择并合并叶节点,直到仅剩下M个叶节点为止。
16.根据权利要求15所述的计算机程序产品,其中,步骤(d)包括重复选择和合并叶兄弟节点对,直到仅剩下M个叶节点为止。
17.根据权利要求15所述的计算机程序产品,其中,步骤(d)包括重复选择和合并合并具有最小熵限制代价增量的叶兄弟节点对,直到仅剩下M个叶节点为止。
18.根据权利要求15所述的计算机程序产品,其中,步骤(d)包括计算最小熵限制代价增量,而不计算合并前总熵限制代价和合并后总熵限制代价之间的差值。
19.根据权利要求15所述的计算机程序产品,其中,N个不同颜色中每个颜色的多个P比特字节包括多个基色中每个基色的P比特字节。
20.根据权利要求15所述的计算机程序产品,其中,多个基色包括红、绿和蓝。
21.根据权利要求15所述的计算机程序产品,还包括创建具有M个不同颜色的新数字化彩色图像,其中在M个不同颜色和完成步骤(d)之后剩下的M个叶节点之间存在一对一的对应。
22.一种方法,用于针对从原始数字化彩色图像中推导出的新数字化彩色图像,推导出表示像素映射的新索引序列和表示调色板的新输出函数,其中原始和新的数字化彩色图像两者都定义在n个像素上,其中,原始数字化彩色图像由分配给n个像素的N个不同颜色提供,新数字化彩色图像由分配给n个像素的M个不同颜色提供,新索引序列具有表示n个像素的n个索引组分,新输出函数用于将n个索引组分映射至M种颜色,该方法包括(a)根据原始数字化彩色图像中的每个像素的颜色,通过将原始数字化彩色图像中的所有像素划分为M个不相交簇,来提供第一新索引序列,与像素在原始数字化彩色图像中的位置无关,其中,M小于或等于N;(b)提供第一新输出函数,用于将M个不同颜色一对一地映射至M个不相交簇中的像素;(c)对于第一新索引序列的每个组分,分别根据由第一新输出函数分配给该组分的颜色值与由第一新输出函数分配给第一新索引序列的至少一个其它组分的颜色值的相关程度,来对第一新索引序列和第一新输出函数应用软判决优化过程,以提供新的索引序列和新的输出函数。
23.根据权利要求22所述的方法,其中,新索引序列提供软判决像素映射,使得对于新数字化彩色图像中的每个像素,由新索引序列和新输出函数分配给像素的颜色值取决于像素在彩色图像中的位置。
24.根据权利要求22所述的方法,其中步骤(c)包括应用迭代软判决优化过程,并在每次迭代之后,确定代表原始数字化彩色图像的压缩和失真的代价函数中的增量减小,以及当增量减小降到选定的阈值以下时,步骤(c)终止,确定了新索引序列和新颜色映射。
25.根据权利要求24所述的方法,其中,步骤(c)包括(i)设定计数器k等于1(ii)对于第k个索引序列,通过对于所有可能的索引序列,优化第k个输出函数和第k个变换概率函数的代价函数,来确定第(k+1)个索引序列;(iii)根据第(k+1)个索引序列,确定第(k+1)个输出函数和第(k+1)个变换概率函数;(iv)根据第(k+1)个索引序列、第(k+1)个输出函数和第(k+1)个变换概率函数,确定第(k+1)个代价;以及(v)计算第(k+1)个代价和第k个代价之间的第(k+1)个代价差值,当第(k+1)个代价差值小于选定的阈值时,分别选择第(k+1)个索引速率和第(k+1)个输出函数作为新的索引序列和新的输出函数,否则,使k增加1,并重复子步骤(ii)至(v)。
26.根据权利要求25所述的方法,其中,步骤(ii),即针对所有可能的索引序列,通过优化给定的第k个输出函数和第k个变换概率函数的代价函数来确定第(k+1)个索引序列的步骤,包括使用维特比算法。
27.根据权利要求26所述的方法,其中,步骤(a)包括将M个不相交簇分组为M’个不相交簇,其中M’小于M;以及步骤(c)包括将软判决优化过程应用于M’个不相交簇。
28.根据权利要求27所述的方法,其中,代价函数取决于M和M’。
29.一种数据处理系统,用于针对从原始数字化彩色图像中推导出的新数字化彩色图像,推导出表示像素映射的新索引序列和表示调色板的新输出函数,其中原始和新的数字化彩色图像两者都定义在n个像素上,其中,原始数字化彩色图像由分配给n个像素的N个不同颜色提供,新数字化彩色图像由分配给n个像素的M个不同颜色提供,新索引序列具有表示n个像素的n个索引组分,新输出函数用于将n个索引组分映射至M种颜色,该数据处理系统包括(a)硬判决模块,用于(i)根据原始数字化彩色图像中的每个像素的颜色,通过将原始数字化彩色图像中的所有像素划分为M个不相交簇,来提供第一新索引序列,与像素在原始数字化彩色图像中的位置无关,其中,M小于或等于N;以及(ii)提供第一新输出函数,用于将M个不同颜色一对一地映射至M个不相交簇中的像素;以及(b)软判决模块,用于对于第一新索引序列的每个组分,分别根据由第一新输出函数分配给该组分的颜色值与由第一新输出函数分配给第一新索引序列的至少一个其它组分的颜色值的相关程度,来对第一新索引序列和第一新输出函数应用软判决优化过程,以提供新的索引序列和新的输出函数。
30.根据权利要求29所述的数据处理系统,其中,新索引序列提供软判决像素映射,使得对于新数字化彩色图像中的每个像素,由新索引序列和新输出函数分配给像素的颜色值取决于像素在彩色图像中的位置。
31.根据权利要求29所述的数据处理系统,其中,软判决模块操作用于(i)应用迭代软判决优化过程,(ii)在每次迭代之后,确定代表原始数字化彩色图像的压缩和失真的代价函数中的增量减小,以及(iii)当增量减小降到选定的阈值以下时,终止迭代软判决优化过程,并确定新索引序列和新颜色映射。
32.根据权利要求31所述的数据处理系统,其中,迭代软判决优化过程包括(i)设定计数器k等于1(ii)对于第k个索引序列,通过对于所有可能的索引序列,优化第k个输出函数和第k个变换概率函数的代价函数,来确定第(k+1)个索引序列;(iii)根据第(k+1)个索引序列,确定第(k+1)个输出函数和第(k+1)个变换概率函数;(iv)根据第(k+1)个索引序列、第(k+1)个输出函数和第(k+1)个变换概率函数,确定第(k+1)个代价;以及(v)计算第(k+1)个代价和第k个代价之间的第(k+1)个代价差值,当第(k+1)个代价差值小于选定的阈值时,分别选择第(k+1)个索引速率和第(k+1)个输出函数作为新的索引序列和新的输出函数,否则,使k增加1,并重复子步骤(ii)至(v)。
33.根据权利要求32所述的数据处理系统,其中,在步骤(ii),即在针对所有可能的索引序列,通过优化给定的第k个输出函数和第k个变换概率函数的代价函数来确定第(k+1)个索引序列的步骤,包括使用维特比算法。
34.根据权利要求33所述的数据处理系统,其中,硬判决模块操作用于将M个不相交簇分组为M’个不相交簇,其中M’小于M;以及硬判决模块操作用于将软判决优化过程应用于M’个不相交簇。
35.根据权利要求34所述的数据处理系统,其中,代价函数取决于M和M’。
36.一种在计算机系统上使用的计算机程序产品,以针对从原始数字化彩色图像中推导出的新数字化彩色图像,创建像素映射和表示调色板的新输出函数,其中原始和新的数字化彩色图像两者都定义在n个像素上,其中,原始数字化彩色图像由分配给n个像素的N个不同颜色提供,新数字化彩色图像由分配给n个像素的M个不同颜色提供,新索引序列具有表示n个像素的n个索引组分,新输出函数用于将n个索引组分映射至M种颜色,该计算机程序产品包括记录介质;以及记录在介质上的装置,用于指示计算机系统执行以下步骤(a)根据原始数字化彩色图像中的每个像素的颜色,通过将原始数字化彩色图像中的所有像素划分为M个不相交簇,来提供第一新索引序列,与像素在原始数字化彩色图像中的位置无关,其中,M小于或等于N;(b)提供第一新输出函数,用于将M个不同颜色一对一地映射至M个不相交簇中的像素;(c)对于第一新索引序列的每个组分,分别根据由第一新输出函数分配给该组分的颜色值与由第一新输出函数分配给第一新索引序列的至少一个其它组分的颜色值的相关程度,来对第一新索引序列和第一新输出函数应用软判决优化过程,以提供新的索引序列和新的输出函数。
37.根据权利要求36所述的方法,其中,新索引序列提供软判决像素映射,使得对于新数字化彩色图像中的每个像素,由新索引序列和新输出函数分配给像素的颜色值取决于像素在彩色图像中的位置。
38.根据权利要求36所述的方法,其中步骤(c)包括应用迭代软判决优化过程,并在每次迭代之后,确定代表原始数字化彩色图像的压缩和失真的代价函数中的增量减小,以及当增量减小降到选定的阈值以下时,步骤(c)终止,确定了新索引序列和新颜色映射。
39.根据权利要求38所述的方法,其中,步骤(c)包括(i)设定计数器k等于1(ii)对于第k个索引序列,通过对于所有可能的索引序列,优化第k个输出函数和第k个变换概率函数的代价函数,来确定第(k+1)个索引序列;(iii)根据第(k+1)个索引序列,确定第(k+1)个输出函数和第(k+1)个变换概率函数;(iv)根据第(k+1)个索引序列、第(k+1)个输出函数和第(k+1)个变换概率函数,确定第(k+1)个代价;以及(v)计算第(k+1)个代价和第k个代价之间的第(k+1)个代价差值,当第(k+1)个代价差值小于选定的阈值时,分别选择第(k+1)个索引速率和第(k+1)个输出函数作为新的索引序列和新的输出函数,否则,使k增加1,并重复子步骤(ii)至(v)。
40.根据权利要求39所述的方法,其中,在步骤(ii),即在针对所有可能的索引序列,通过优化给定的第k个输出函数和第k个变换概率函数的代价函数来确定第(k+1)个索引序列的步骤,包括使用维特比算法。
41.根据权利要求40所述的方法,其中,步骤(a)包括将M个不相交簇分组为M’个不相交簇,其中M’小于M;以及步骤(c)包括将软判决优化过程应用于M’个不相交簇。
全文摘要
本发明涉及一种彩色图像数据的压缩。硬判决像素映射和软判决像素映射的组合用于在保持较低计算复杂度和与如GIF/PNG解码器等的标准解码器兼容的同时,联合地解决量化失真和压缩率的问题。
文档编号G06T9/40GK101065779SQ200580012655
公开日2007年10月31日 申请日期2005年4月15日 优先权日2004年4月21日
发明者杨恩辉, 曾剑分 申请人:喷流数据有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1