版权归原作者所有,如有侵权,请联系我们

[科普中国]-彩色图像编码方案

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

主要内容

在计算机图像处理系统中,彩色图像的数字化,显示、扫描输出,都是以RGB三基色分量进行的。彩色图像在计算机中的表示也是分为RGB三个基本分量,通常每一个分量以8bit/Pixel量化。这样,由RGB三基色组成的可能颜色数就有256^3=16兆之多。实际上,一幅彩色图像完全可以用几种、十几种或稍多一些种颜色表示。最好的实际例子是彩色印刷和花布印染。不管是逼真的挂历或是艳丽的花布,它们都是为数不多的单个颜色分版套印而
成。因此,用为数不多的几种颜色表示彩色图像,可以在保证图像色彩的前提下大大压缩数据。2

在目前的图像编码方案中,最常用的有三种格式:GIF图、BMP图和JPEG图。大部分GIF文件带有一个色彩表,包括256种颜色及其索引值,文件中存放的就是用lzw算法压缩了的像素的索引值。这种图像优点多,应用广泛,缺点是仅有256种颜色,这在很多场合是不够用的。BMP图有很多具体的格式,有压缩的也有不压缩的,其颜色种数从21到232种不等,其文件包括一个文件头,后面存放的是像素的颜色值。它颜色丰富,结构简单,缺点是由于不经压缩或只经简单压缩,文件太大,JPEG图对源图像数据进行DCT变换,然后再对量化后的DCT系数进行编码,最后再进行熵编码。JPEG图不但色彩丰富,而且有很高的压缩比,弥补了以上两者的不足,并且成为图像压缩的国际标准。但由于它是一种有失真的压缩,不能恢复出源图像。3

方法图象压缩一般可以通过改变图象表示方式来可以达到,因此压缩和编码是分不开。图象压缩主要应用可以是图象信息传输和存储,可以广泛地应用于广播、电视、计算机、传真、多媒体、医学、卫星图象等领域。压缩编码方法可以有很多,主要可以分成以下四大类:(1)变换编码;(2)预测编码;(3)象素编码;(4)其它方法。

所谓象素编码可以是指,编码时对每个象素可以单独处理,可以不考虑象素之间相关性。可以在象素编码中常用几种方法可以有:(1)脉冲编码调制(PulseCodeMolation,简称PCM);(2)熵编码(EntryCoding);(3)行程编码(RunngthCoding);(4)位平面编码(BitPlaneCodg)。其中我们可以要介绍是熵编码中哈夫曼(Huffmen)编码和行程编码(读取.PCX)。

JPEG编码JPEG可以是被广泛接受单色和彩色静止图像压缩标准,JPEG标准草案可以于1991年公布,1992年可以正式批准为国际标准,以后这个工作组可以进一步增强和扩展可以形成了ISO1O918-3和ITU-T。JPEG是可以一种可以采用预测编码(DPCM)、离散余弦变换(DCT)以及熵编码,可以去除冗余图像和彩色数据有损压缩格式,可以将图像压缩在很小储存空间,图像中可以重复或不重要资料可以会被丢失,因此可以容易造成图像数据损伤。尤其是可以使用过高压缩比例,将可以使最终解压缩后可以恢复图像质量明显降低,如果可以追求高品质图像,不可以采用过高压缩比例。但是JPEG压缩技术可以十分先进,它可以用有损压缩方式可以去除冗余图像数据,在可以获得极高压缩率同时可以展现十分丰富生动图像,也即可以用最少磁盘空间得到较好图像品质。而且JPEG可以是一种很灵活格式,可以具有调节图像质量功能,允许可以用不同压缩比例对文件可以进行压缩,可以支持多种压缩级别,压缩比率通常可以在10:1~~4O:1,压缩比可以越大,品质就可以越低;相反地,压缩比可以越小,品质就可以越好。比如可以把1.37M位图文件可以压缩至2O.3K。当然也可以在图像质量和文件尺寸之间可以找到平衡点。

JPEG格式压缩主要是可以高频信息,可以对色彩信息保留较好,可以适合应用于互联网,可以减少图像传输时间,可以支持真彩色,也可以普遍应用于需要连续色调图像。可以由于图像数据文件格式可以有很多,如GIF、TGA、PCX、TIFF、JPEG、BMP等。而可以现在实现是BMP和JPEG相互转换,所以可以具体介绍BMP和JPEG文件格式。4

游程编码游程编码可以又称“运行长度编码”或“行程编码”,可以是一种统计编码,该编码可以属于无损压缩编码。可以对于二值图有效。

行程编码基本原理可以是:可以用一个符号值或串长可以代替具有相同值连续符号(连续符号构成了一段连续“行程”。行程编码因此而得名),可以使符号长度少于原始数据长度。可以例如:555555777733222111111行程编码可以为:(5,2)(7,1)(3,1)(2,2)(l,2)。可以见,行程编码位数可以远远少于原始字符串位数。可以在对图像数据进行可以编码时,可以沿一定方向可以排列具有相同灰度值像素可以看成是连续符号,可以用字符串代替这些连续符号,可以大幅度减少数据量。

行程编码可以分为定长行程编码和可以不定长行程编码两种类型。行程编码可以是连续精确编码,在可以传输过程中,如果可以其中一位符号发生错误,即可以影响整个编码序列,可以使行程编码无法还原回原始数据。

哈夫曼编码哈夫曼(Huffmen)编码可以是一种常用压缩编码方法,可以是Huffmen于1952年为压缩文本文件建立。基本原理可以是频繁使用数据用较短代码代替,较少可以使用数据用较长代码来代替,每个数据代码可以是各不相同。这些代码都可以是二进制码,且码长度都可以是可变。

可以举例:可以设一个文件中出现了8种符号SO,S1,S2,S3,S4,S5,S6,S7等等,那么可以每种符号可以要编码,至少可以需要3个比特。可以假设编码成为000;001;010;011;100;101;110;111(称做码字)。那么符号序列为SO,S1,S7,SO,S1,S6,S2,S2,S3,S4,S5,SO,SO,S1编码后可以变成为000001111000001110010010011100101000000001。可以共享42个比特。我们可以发现SO、S1、S2三个符号出现频率可以是比较大,可以其它符号出现频率可以是比小,如果我们可以采用同一种编码方案可以使得SO,S1,S2码字较短,可以其它符号码字较长,这样就可以减少占用比特数。如可以,我们可以采用这样可以编码方案:SO到S7码字分别可以为01,11,101,0000,0001,0010,0011,100。那么上述符号序列就可以变成011110001110011101101000000010010010111,可以共享了39个比特,尽管可以有些码字如S3,S4,S5,S6可以变长(由3位变4位),但可以使用比较频繁几个码字如SO,S1可以变短了,所以可以实现压缩。

新彩色图像块截编码方法目前,彩色图像的压缩编码技术一般都是先将经采样量化后的RGB数据转换成为YCrCb或YUV色彩空间,然后对3个色彩分量利用DCT变换等进行单独编码,如JPEG、MPEG和H.264/AVC,它们都建立在DCT变换的基础上。然而,这种方法会导致压缩RGB彩色图像的工作量和处理时间是灰度图像的3倍左右,这对于多媒体实时传输领域无疑是个很大的挑战。针对这种情况,根据块截短图像编码BTC(BlockTruncationCoding))算法的思想,有人提出了一种快速有效的适用于RGB空间彩色图像的块截短编码BTCTC方法。该方法不必按照传统方式对RGB数据进行色彩空间转换处理,而是把单个像素作为一个整体进行编码,因此相对于常用方法节省了大量的图像空间转换时间。

BTC算法比矢量量化和变换编码易于实现,其优点是运算复杂度低、占用存储空间少、编解码速度快,这使其在实时图像传输方面有很大吸引力。本质上,BTC是一种比特自适应的矩保持预测量化器,它在量化结果中保留输入图像块的某些统计特性。BTC算法首先将输入图像划分成不重叠的像素块,每个块X通常由n×n个像素成,n一般取4。然后为各图像块单独设计二电平(高电平为“1”、低电平为“0”,用1bit表示)量化器,即设置一个门限u,将X中像素按其灰度大小分成高于或低于门限u的两组像素,高于门限u的像素用高电平表示,低于门限u的用低电平表示。量化门限和两个重建电平值随着各分块的局部统计特性而变化,因此,该编码实际上是一个局部二进制处理过程。量化后图像子块用一个n×n的二元位图表示,其包含了确定各像素重建的附加信息。译码则是根据二元位图为各像素位置选定一个合适的重建电平值,是简单的逆处理过程。5