用于根据图像类型选择压缩算法的方法与流程

文档序号:12071844阅读:404来源:国知局
用于根据图像类型选择压缩算法的方法与流程
每个压缩算法使用其自己的数据表示。例如,借助小波的压缩利用频率变换将图像分开成相继的子图像,而一些编码解码器,尤其是由申请人开发的编码解码器,求图像的数字值之间的差。因此,本发明提出定义一种编码解码器,该编码解码器自动地在编码时根据图像数据类型选择最好的数据表示,并且在解压缩时借助包含在文件头部中的信息进行反向变换。每个类型的算法或多或少地适于一些类型的图像。特别地,频率表示可以很好地对弱对比度的图像进行建模,而借助差的表示可以良好地对强对比度的图像进行建模。可以按有损或无损模式使用每种方法(差/小波)。变换被分别应用到多个层中的每个层。相反,对变换类型的选择是在被认为是最具代表性的层上进行的,例如,在图像预先经受了YCbCr变换的情况下,最具代表性的层为Y层,或者在无损比色变换的情况下,最具代表性的层为最好地表示了图像的亮度强度的层。当所使用的算法是借助小波的变换时,该变换可以通过二进制编码和小波的特定实现来进行,或者借助诸如Jpeg2000或PGF之类的标准格式来执行。在下面的示例中,以非限制性的方式,所使用的小波格式是Jpeg2000和PGF。当所使用的算法是借助差的变换时,该借助差的变换包括求相同层上的两个相邻像素的值之间的差,然后通过预定义的因子Q量化该差。为了不传播错误,相对于下面定义的解压缩值进行求差。以同样的方式,如果可能存在两个方向上的差,则根据解压缩值来确定哪个方向是生成最小差的方向。随后,在压缩和解压缩时计算该差。以更详细的方式,该编码方法按以下方式进行:考虑要变换的矩阵,该矩阵表示2维图像的一层。采用以下命名方式:Vij是该矩阵的初始值,对于Vij而言,i表示行号且j表示列号。Cij表示相对应的压缩值,以及Dij表示相对应的解压缩值。因此,对于5×5的矩阵,具有以下值的分配:以用于每个Vij的以下数字值以及量化系数Q=3作为数字示例:00000002552530002552530002552530002552530从第一行到最后一行,从左到右逐行进行求差。按原值保留第一个值V11。在第一水平行中,对于每个值Vij,相对于位于其左侧D1j-1处的解压缩值进行求差,然后量化并四舍五入(round)。因此:D11=C11=V11=0;C12=ROUND((V12–D11)/Q)=ROUND((0–0)/3)=0D12=ROUND(D11+(C12*Q))=ROUND(0+0*3)=0如此继续直到最后一行。对于随后的行中的每一行,通过求当前值Vi1与上一行的解压缩值Di-11之间的差来计算所述行的第一格的压缩值Ci1:因此,例如对于第2行有:C21=ROUND((V21–D11)/Q)=ROUND((0–0)/3)=0D21=ROUND(D11+(C21*Q))=ROUND(0+(0*3))=0对于该行的随后的值中的每个值,如果(Di-1j–Di-1j-1)以绝对值计算小于(Dij-1–Di-1j-1),则针对每个值Vij计算水平差,并且否则计算竖直差。因此,对于值V22:·(D12-D11)的绝对值为0;·(D21-D11)的绝对值为0;·这两个值是相等的,选择竖直差;·因此计算压缩值:C22=ROUND((V22–D12)/Q)=ROUND((0–0)/3)=0·然后计算解压缩值:D22=ROUND(D12+(C22*Q))=ROUND(0+0*3)=0因此,对于值V23:·(D13-D12)的绝对值为0;·(D22-D12)的绝对值为0;·这两个值是相等的,选择竖直差;·因此计算压缩值:C23=ROUND((V23–D13)/Q)=ROUND((255–0)/3)=85·然后计算解压缩值:D23=ROUND(D13+(C23*Q))=ROUND(0+85*3)=255因此,对于值V24:·(D14-D13)的绝对值为0;·(D23-D13)的绝对值为255;·第一个差(水平差)的值更小,选择水平差;·因此计算压缩值:C24=ROUND((V24–D23)/Q)=ROUND((253–255)/3)=-1·然后计算压缩值:D24=ROUND(D23+(C24*Q))=ROUND(255–1*3)=252通过迭代,获得了针对该矩阵的以下压缩值和解压缩值:当Q=1时,该变换是无损的。当Q>1时,该变换是有损的。将该数据变换称为“APE”一旦进行了该“APE”变换,就应用RLE(Run-LengthEncoding,运行-长度编码)变换,然后借助算法Bzip2对所获得的数据进行压缩。因此,对于图像的多个层中的每个层,压缩链如下:APE、RLE、Bzip。在一种实施方式中,对于3个不同的图像应用两种借助小波的压缩方法,例如Jpeg2000和PGF,以及上面描述的压缩链APE、RLE、Bzip:·图1是在白色背景上包含许多文本的屏幕拷贝,并且其表示“图形化”类型的图像的示例;·图2是在建筑物与天空、光等之间具有强对比度的城市照片。其表示“强对比度”类型的图像的示例;·图3是包含许多颜色渐变的飞行表演的照片。其表示“弱对比度”类型的图像的示例。借助称作PSNR的曲线表示方法(APE/RLE/Bzip、Jpeg2000、PGF)中每种方法的效力,该PSNR曲线表示在压缩然后解压缩之后重建图像的质量。每个编码参数对应于文件尺寸以及称作PSNR的质量值(包括在0至100之间)。PSNR是标准测量,此处在Y层上计算,100是可能的最好质量并且对应于无损压缩。当文件尺寸相等时,认为具有更好PSNR的压缩比另一压缩性能更好,或者,当PSNR相等时,认为文件尺寸更小的压缩比另一压缩性能更好。图4和下表表示对于图1所示的图像,PSNR根据图像尺寸的演变。图5和下表表示对于图2所示的图像,PSNR根据图像尺寸的演变。图6和下表表示对于图3所示的图像,PSNR根据图像尺寸的演变。因此观察到:·借助小波的编码解码器具有趋向于接近的尺寸/质量性能,而APE获得了完全不同的结果;·在图1(图形化图像)的情况下,APE在各种情况下都是较好的;·在图2(强对比度图像)的情况下,APE在高质量时是较好的,对于更强的压缩,借助小波的编码较好;·在图3(弱对比度图像)的情况下,借助小波的编码在各种情况下都是较好的。在本发明的第一实施方式中,进行比色变换之后进行算法的选择,在所示出的示例中比色变换是YCbCr。为了选择算法,按以下方式进行:·对在最具代表性的层(理想地,Y)上的多个值中的每个值的数目进行计数;·构造如在图7中示出的值的直方图:·对于每个值k(一般地,包括在0至255之间),记录该值出现在该层中的次数n(k):·因此,该层的像素数目等于n(k)的和:·度量(metric)“FD2”给出了直方图的“峰”方面的概念(idea):·在图像的一层的全部或部分上执行度量FD2图像1图像2图像3FD20.180.000651.1E-06·FD2越大,值越集中·因此清楚地看到不同类型的图像属于不同的量级,并且该公式具有良好的区分度。·按以下方式划分图像:oFD2>0.075:图形化图像oFD2>104:强对比度图像o否则:弱对比度图像·如果FD2>0.075,选择借助差的变换,例如APE+RLE+zlib;·在强对比度图像的情况下,在无损模式和几乎无损模式的情况下选择借助差的变换,例如APE+RLE+zlib,并且在其他情况下选择借助小波的编码;·在弱对比度图像的情况下,在所有情况下进行借助小波的编码,例如JPEG类型或PGF类型。·在文件的头部中存储图像类型;·在解压缩时根据图像类型进行反向操作。在第二实施方式中,对RGB颜色三元组的数目进行计数,将其按图像的大小进行折算。当RGB颜色三元组的数目低于预定阈值时,将该图像认为是图形化图像;当该数目高于比第一阈值更高的第二阈值时,将该图像认为是弱对比度图像。在这两个阈值之间时,将该图像认为是强对比度图像。随后,应用与在第一实施方式中相同的变换:·在强对比度图像的情况下,在无损模式和几乎无损模式的情况下选择借助差的变换,例如APE+RLE+zlib,否则选择借助小波的编码;·在弱对比度的情况下,在所有情况下进行借助小波的编码,例如JPEG类型或PGF类型。·在文件的头部中存储图像类型;·在解压缩时根据图像类型进行反向操作。以更一般的方式:因此,提出一种压缩图像的方法,其特征在于:-在图像的一层的至少整体上进行图像色调级的计算,-根据在一层的至少整体上的色调的类型,将图像分类到以下三个类中的一个类:o若图像为图形化类型的图像,则第一类;o若图像为强对比度类型的图像,则第二类;o若图像为弱对比度类型的图像,则第三类;以及,-根据图像的类选择压缩处理:o若图像为第一类,则选择差类型的处理;o若图像为第三类,则选择频率类型的处理,优选地使用小波;和,o若图像为第二类,则:■对于无损或弱损失的压缩,优选地使用差类型的处理,和■在其他情况下,优选地使用频率类型的处理,优选地使用小波。有利地,在图像的最具代表性的层(例如Y层)的整体上进行计算。有利地,在这些步骤之前可以在输入数据上进行有损或无损的比色变换。例如,可以在RGB输入数据上应用YCbCr变换。为了对图像进行分类,每个色度对应于一个色度值(优选地,在8比特层的情况下k=0-255),对于每个色度,计算呈现该色度的像素数目n(k);然后,计算在值k周围的图像的色度的浓度指示,例如:E(k)=n(k)-0.4(n(k-1)+n(k+1))–0.1(n(k-2)+n(k+2)),该指示的计算是通过以下来进行的:通过求所考虑的色度(k)的像素数目n(k)和所述色度的邻居色度的像素数目的比例之间的差,优选地,所述色度的邻居色度为第一行(k-1和k+1)以及第二行(k-2和k+2)的邻居,对于行数越高的邻居,相应的比例越低,例如,对于第一行的每个邻居(即所考虑的色度(k)的直接邻居),比例为80%,而对于第二行的每个邻居(即第一行邻居的直接邻居),比例为20%。优选地,邻居值的比例的和等于一。在示出的示例中,比例的和确实等于1(0.4+0.4+0.1+0.1)。保留高于特定阈值的在值k周围的色度的浓度指示(E(k)),优选地,正浓度指示,即Max(E(k),0),并且将这些浓度指示中的每一个按图像的大小,例如,图像的总像素数目(N)进行折算。优选地,为了多个图像类型之间更好的区分度,即为了方便进行分类,随后将结果Max(E(k))/N提升到严格大于1次方,优选地等于2次方。随后,通过针对整个层编译这些结果,优选地通过对该层的所有色度的如此获得的结果求和来获得度量(FD)。因此,在所示出的示例中:FD2=Σ(Max(E(k))/N)2,其中k从0到255变化。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1