一种对纯三原色图片数据的无损压缩编码方法与流程

文档序号:13915315阅读:223来源:国知局

本发明涉及图片压缩技术领域,具体地说是涉及一种对纯三原色图片数据的无损压缩编码方法。



背景技术:

目前,公知的图片压缩方法有有损压缩法和无损压缩法。

无损压缩法通常有行程长度编码,其基本原理是将一扫描行中颜色值相同的相邻像素用两个字节来表示,第一个字节是一个计数值,用于指定像素重复的次数;第二个字节是具体像素的值。无损压缩法能够比较好地保存图像的质量,但如果遇到图片像素多变,同值的像素位置也是多变分散的,就会造成用来记录指定像素重复的次数的计数值的字节数量变大,并且两个字节只能记录一个像素,使得这种方法的压缩率比较低。

有损压缩法通常是将色彩空间化减到图像中常用的颜色。所选择的颜色定义在压缩图像头的调色板中,图像中的每个像素都用调色板中颜色索引表示,这种方法可以与抖动(en:dithering)一起使用以模糊颜色边界。有损压缩有以下方法:

色度抽样;这利用了人眼对于亮度变化的敏感性远大于颜色变化,这样就可以将图像中的颜色信息减少一半甚至更多。

变换编码;首先使用如离散余弦变换(dct)或者小波变换这样的傅立叶相关变换,然后进行量化和用熵编码法压缩。

分形压缩(en:fractalcompression);查找图形内自相似部分而导致压缩时间过长。

使用有损压缩法压缩和解压缩相当速度较慢,解压出来的图片不完整,从而限制了一些需要完整图片的场合的使用。



技术实现要素:

针对现有技术之不足,本发明提供了一种对纯三原色图片数据的无损压缩编码方法。

本发明的对纯三原色图片数据的无损压缩编码方法的具体技术方案如下:

一种对纯三原色图片数据的无损压缩编码方法,按从头至尾的顺序对待压缩图片中的每一个像素进行处理;处理步骤如下:

s1:提取待压缩图片中像素的像素值数据;

s2:将提取的像素的像素值数据与一个指定像素值进行多次比较;其中,将与所述指定像素值相同的所述像素的像素值均按步骤s3处理;其中,将与所述指定像素值不相的所述像素的像素值均按步骤s4处理;

s3:将该像素值记录为十进制1;

s4:将该像素值记录为十进制0并存储该像素的像素值;

s5:将所述步骤s3记录的所有十进制1和所述步骤s4记录的所有十进制0通过算法并合成一个字节并存储;

s6:判断所述步骤s5所处理的像素数据是否为所述待压缩图片的数据尾;若所述像素数据不是所述待压缩图片的数据尾,则按步骤s7处理;若所述像素数据是所述待压缩图片的数据尾,则按步骤s8处理;

s7:按所述步骤s1-s6的方法对所述待压缩图片中的下一个像素数据进行处理;

s8:将所述指定像素值、所有经所述步骤s5合成后的字节数据和所有所述步骤s4中存储的像素值组合成新的图片像素文件,从而实现对所述待压缩图片的压缩。

本发明的对纯三原色图片数据的无损压缩编码方法通过将待压缩图片中每个像素的像素值数据与一个指定像素值比较,并将与指定像素值相同的像素的像素值均记录为1,将与指定像素值不同的像素的像素值均记录为0并记录像素的值,如此顺序比较多次并通过算法组合成一个字节记录下来,这个字节的每一位(比特)对应的值是前面的指定像素值或者是其他像素值,循环比较直到待压缩的图片数据文件尾,最终生成压缩了的新图片数据文件,新的数据文件包含所述指定像素值、所有经所述步骤s5合成后的字节数据和所有所述步骤s4中存储的像素值,从而达到图片数据的压缩的目的。

通过上述技术方案,本发明的对纯三原色图片数据的无损压缩编码方法提供了一种图片数据无损压缩方法,其可以提高图片数据压缩率,并使图片完整无损;能够克服现有技术中图片压缩压缩率低、压缩效果不足和有损压缩的问题;即使是分散的不连续重复的像素也能使用较少字节来记录,提高图片数据压缩率,并保持图片数据完整无损。

根据一个优选的实施方式,所述指定像素值为:通过顺序类比所述待压缩图片全部像素得到的、所述待压缩图片中数量最多的那个像素值。

根据一个优选的实施方式,所述指定像素值为十进制0-255中的一个。

根据一个优选的实施方式,在所述步骤s2中,提取的所述像素的像素值数据与所述指定像素值比较的次数总共为8次。

根据一个优选的实施方式,在所述步骤s5中,是将由所述步骤s3记录的所有十进制1和所述步骤s4记录的所有十进制0组成的8个数据通过算法并合成一个字节并存储。

根据一个优选的实施方式,在所述步骤s5中,所述算法为将所述步骤s3记录的所有十进制1和所述步骤s4记录的所有十进制0分别用二因式分解,取余转换成多个二进制并合成一个字节存储。

根据一个优选的实施方式,所述算法为将由所述步骤s3记录的所有十进制1和所述步骤s4记录的所有十进制0组成的8个数据分别用二因式分解,取余转换成8个二进制并合成一个字节存储。

与现有技术相比,本发明的对纯三原色图片数据的无损压缩编码方法具有如下有益效果:

本发明的对纯三原色图片数据的无损压缩编码方法通过将待压缩图片中每个像素的像素值数据与一个指定像素值比较,并将与指定像素值相同的像素的像素值均记录为1,将与指定像素值不同的像素的像素值均记录为0并记录像素的值,如此顺序比较多次并通过算法组合成一个字节记录下来,这个字节的每一位(比特)对应的值是前面的指定像素值或者是其他像素值,循环比较直到待压缩的图片数据文件尾,最终生成压缩了的新图片数据文件,新的数据文件包含所述指定像素值、所有经所述步骤s5合成后的字节数据和所有所述步骤s4中存储的像素值,从而达到图片数据的压缩的目的。

通过上述技术方案,本发明的对纯三原色图片数据的无损压缩编码方法提供了一种图片数据无损压缩方法,其可以提高图片数据压缩率,并使图片完整无损;能够克服现有技术中图片压缩压缩率低、压缩效果不足和有损压缩的问题;即使是分散的不连续重复的像素也能使用较少字节来记录,提高图片数据压缩率,并保持图片数据完整无损。

附图说明

图1是本发明对纯三原色图片数据的无损压缩编码方法中一种优选实施方式的流程图。

具体实施方式

图像压缩是指减少表示数字图像时需要的数据量,图像数据之所以能被压缩,就是因为数据中存在着冗余。图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。

下面结合附图对本发明的对纯三原色图片数据的无损压缩编码方法进行详细的说明。

一种对纯三原色图片数据的无损压缩编码方法,按从头至尾的顺序对待压缩图片中的每一个像素进行处理;处理步骤如下:

s1:提取待压缩图片中像素的像素值数据。

s2:将提取的像素的像素值数据与一个指定像素值进行多次比较;并且将与所述指定像素值相同的所述像素的像素值均按步骤s3处理;将与所述指定像素值不相的所述像素的像素值均按步骤s4处理;

其中,所述指定像素值为通过顺序类比所述待压缩图片全部像素得到的、所述待压缩图片中数量最多的那个像素值;其为十进制0-255中的一个;

并且,提取的所述像素的像素值数据与所述指定像素值比较的次数总共为8次。通过总共8次的比较和记录可以正好形成一个字节的8位。

s3:将该像素值记录为十进制1。

s4:将该像素值记录为十进制0并存储该像素的像素值。

s5:将所述步骤s3记录的所有十进制1和所述步骤s4记录的所有十进制0通过算法并合成一个字节并存储。

优选的,在所述步骤s5中,是将由所述步骤s3记录的所有十进制1和所述步骤s4记录的所有十进制0组成的8个数据通过算法并合成一个字节并存储。

所述算法为将所述步骤s3记录的所有十进制1和所述步骤s4记录的所有十进制0分别用二因式分解,取余转换成多个二进制并合成一个字节存储。

具体的,所述算法为将由所述步骤s3记录的所有十进制1和所述步骤s4记录的所有十进制0组成的8个数据分别用二因式分解,取余转换成8个二进制并合成一个字节存储。

例如:(d表示十进制,b表示二进制)

十进制整数1转二进制:

1/2=0余1,结果是1(d)=00000001(b);

十进制整数0转二进制:

0/2=0余0,结果是0(d)=00000000(b);

8个二进制合并成一个字节:

1→00000001(b)

2→00000000(b)

3→00000001(b)

4→00000001(b)

5→00000001(b)

6→00000000(b)

7→00000001(b)

8→00000001(b)

顺序1向左移一位得到00000010(b)加上顺序2得到00000010(b),得到的结果值再向左移一位得到00000100(b)再加上顺序3得到00000101(b)再移一位加上顺序4,如此移位和累加8次最终得到10111011(b)一个8比特的字节。

s6:判断所述步骤s5所处理的像素数据是否为所述待压缩图片的数据尾;若所述像素数据不是所述待压缩图片的数据尾,则按步骤s7处理;若所述像素数据是所述待压缩图片的数据尾,则按步骤s8处理。

s7:按所述步骤s1-s6的方法对所述待压缩图片中的下一个像素数据进行处理。

s8:将所述指定像素值、所有经所述步骤s5合成后的字节数据和所有所述步骤s4中存储的像素值组合成新的图片像素文件,从而实现对所述待压缩图片的压缩。

下面结合附图说明本发明对纯三原色图片数据的无损压缩编码方法中一种优选实施方式。

图1示出了本发明对纯三原色图片数据的无损压缩编码方法中一种优选实施方式的流程图。

如图1所示,本发明对纯三原色图片数据的无损压缩编码方法具体的主要流程如下:

第一步:程序开始运行;

第二步:提取图片像素的像素值数据并与指定像素值进行8次比较;

第三步:比较过程中,将与所述指定像素值相同的所述像素的像素值均记录为十进制1;将与所述指定像素值不相的所述像素的像素值均记录为十进制0并存储该像素的像素值;

第四步:将由上述所有十进制1和所有十进制0组成的8个十进制数据分别通过二因式分解,取余转换成8个二进制并合成一个字节存储;

第五步:判断是否图片数据尾;若判断为否回则到第二步对下一像素的像素值数据进行处理,否则运行到第六步;

第六步:指定像素值、存储的比较后合成的字节数据和存储的图片像素值组合成新图片像素文件;

第七步:结束。

本发明的对纯三原色图片数据的无损压缩编码方法通过将待压缩图片中每个像素的像素值数据与一个指定像素值比较,并将与指定像素值相同的像素的像素值均记录为1,将与指定像素值不同的像素的像素值均记录为0并记录像素的值,如此顺序比较多次并通过算法组合成一个字节记录下来,这个字节的每一位(比特)对应的值是前面的指定像素值或者是其他像素值,循环比较直到待压缩的图片数据文件尾,最终生成压缩了的新图片数据文件,新的数据文件包含所述指定像素值、所有经所述步骤s5合成后的字节数据和所有所述步骤s4中存储的像素值,从而达到图片数据的压缩的目的。

通过上述技术方案,本发明的对纯三原色图片数据的无损压缩编码方法提供了一种图片数据无损压缩方法,其可以提高图片数据压缩率,并使图片完整无损;能够克服现有技术中图片压缩压缩率低、压缩效果不足和有损压缩的问题;即使是分散的不连续重复的像素也能使用较少字节来记录,提高图片数据压缩率,并保持图片数据完整无损。

需要注意的是,本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

另外,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1