含透明信息图片压缩和显示的方法

文档序号:7895575阅读:208来源:国知局
专利名称:含透明信息图片压缩和显示的方法
技术领域
本发明涉及一种含透明信息图片压缩和显示的方法,特别涉及一种将占用空间较大、绘制速度较慢的含透明信息图片转换为储存占用空间较小、绘制速度较快的图片在各种终端设备上压缩、储存、显示的方法。
背景技术
目前,在各种终端设备中手持终端的应用颇为广泛,在很多领域都有应用,比如 PDA、手机都是目前广泛使用的手持终端,但是一般的手持终端都有一个比较大的问题,即为了保持便携性,所以手持终端的设备计算性能、存储空间、传输速度往往不如电脑等大型设备,所以在处理较多数据时往往较为费时费力,在图片处理方面,此类情况特别容易出现在处理大型的含有透明信息的图片数据时,因为含透明信息的图片必然有alpha通道值,以PNG格式图片为例,PNG格式图片中存储像素点实际信息的数据块为图像数据块 IDAT (image data chunk)它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块,其中用来表示每个像素点的数据块均由两部分构成,一部分为M位的RGB565数据, 另一部分为用来表示图片透明度信息程度的8位alpha通道值,显然可见,含有透明度信息程度的PNG图片格式比不含透明信息的图片格式要大很多,所以在处理PNG格式图片时会出现数据处理缓慢、显示图片等待时间长、同时PNG格式图片的占用存储空间大,甚至会出现大量数据同时处理导致机能不足的情况产生。因此,发明一种将占用空间较大、绘制速度较慢的含透明信息图片转换为储存占用空间较小、绘制速度较快的图片在各种终端设备、 特别是在手持终端上压缩、储存、显示的方法很有必要。中国专利公告号CN 1361630A,公告日2002年7月31日,公开了一种用于无线网络和无线手持式设备的动画压缩方法,依次包括以下步骤(1)以Flash文件为数据源,从中提取原始帧,并以彩色BMP图象文件的格式保存这些原始帧;(2)将步骤1中生成的彩色 BMP图象转换成256灰度级的BMP图象;(3)根据帧中各个灰度级的象素点的比例差别,从已转换成256灰度级的BMP图象的原始帧中提取关键帧;(4)对关键帧进行差分处理获取差异图象,并以指定的命名方式存为BMP差异图象文件;(5)将步骤4中所生成BMP差异图象文件转换成PNG图象文件;该PNG文件名为l_f_x_y. PNG,其中PNG表示文件类型,f由 1开始,表示这个文件是属于第几帧,x、y分别表示这个差异图片在这一帧中的左上角的坐标;(6)对PNG图象文件序列进行了重新拼装,生成一个大的PNG图象文件及其相关的图片数据列表;再将该大PNG图象文件、数据列表及动画播放器一并打包。此技术方案公开了一种动画形式的图片压缩的方法,但是在此技术方案中,采用的PNG格式的图片依然有较大的压缩空间,依然能进一步做压缩,同时还可以提高绘制的速度。

发明内容
本发明的目的在于解决上述现有技术中含透明信息图片解码绘制时会出现数据处理缓慢、显示图片等待时间长、同时含透明信息图片的占用存储空间大的问题,提供一种将占用空间较大、绘制速度较慢的含透明信息图片转换为储存占用空间较小、绘制速度较快的图片在各种终端设备上进行压缩、储存、显示的方法。本发明解决其技术问题所采用的技术方案是一种含透明信息图片压缩和显示的方法,通过将原始图片解码后重新压缩形成体积较小、绘制速度快的目标图片储存,然后对目标图片进行解码绘制显示,首先在终端设备上建立专用解码库、专用绘制库,然后通过以下步骤将含透明信息图片的原始图片在手持终端上压缩储存显示
步骤一,所述的终端设备读取原始图片,确定原始图片的图片格式,终端设备根据原始图片的图片格式将原始图片解码;
步骤二,终端设备根据读取原始图片的图像大小新建对应的目标图片; 步骤三,终端设备调用原始图片解码库将原始图片的所有像素点的alpha通道值读取,然后将原始图片所有像素点的alpha通道值按顺序输入目标图片后构成alpha通道值表进行存储;
步骤四,终端设备将原始图片的所有像素点的颜色数据按顺序输入目标图片进行存
储;
步骤五,终端设备读取原始图片的辅助信息,并将原始图片的辅助信息输入目标图片进行存储;
步骤六,终端设备将原始图片删除,终端设备将目标图片根据专用解码库进行保存; 步骤七,终端设备调用专用解码库、专用绘制库将目标图片进行解码、绘制,终端设备显示目标图片。这样设置,通过将原始图片的alpha通道值抽取后输入目标图片,目标图片由文件头数据块、调色板数据块、图像数据块和图像结束数据块构成,其中存储实际的数据即图像数据块由两部分构成,首先是alpha通道值表,然后是每个像素的RGB565数据,由于alpha通道值的像素相关性,所以在压缩时有较高的压缩比,通过将alpha通道值作为 alpha通道值表保存能有效地减少目标图片的文件大小,同时在处理alpha通道值也可以对整体图像进行处理,解决了对单个像素点进行透明值处理速度较慢的问题。作为优选,所述的含透明信息图片压缩和显示的方法的步骤三中,在alpha通道值表中统计alpha通道值为0和255的数据进行游程编码算法压缩,然后将alpha通道值表输入目标图片后进行存储。这样设置,是因为大部分的图片中,alpha通道值中最常见的是0和255,即完全透明和完全不透明,甚至在很多图像中可能出现全图均为不透明,所以 alpha通道值为固定数值,在压缩中有很高的压缩比,适用游程编码做压缩是因为游程编码是一种统计编码,该编码属于无损压缩编码,是栅格数据压缩的重要编码方法,对于二值计算压缩尤为有效,行程编码的基本原理是用一个符号值或串长代替具有相同值的连续符号,使符号长度少于原始数据的长度,只在各行或者各列数据的代码发生变化时,一次记录该代码及相同代码重复的个数,从而实现数据的压缩;以PNG格式图片为例,在PNG格式图片中的,有25%的图像数据块为alpha通道值,而alpha通道值有大量的数值为255和0, PNG图像采用的是LZ77算法对图像数据块进行压缩,LZ77算法通过使用编码器或者解码器中已经出现过的相应匹配数据信息替换当前数据从而实现压缩功能,其压缩过程中对图像数据块中每个alpha通道值都需和相邻的颜色数据去匹配已经出现过的相应匹配数据信息,所以在压缩过程中即使alpha通道值有大量的数值为255和0,图片的压缩比也依然有限,而对抽取的alpha通道值采用游程编码算法,大量相邻的数值为255和0的alpha通道值只需一次记录该代码及相同代码重复的个数,从而实现数据的压缩,其压缩率远远大于采用LZ77的压缩率,压缩后alpha通道值表所占空间大大减少,经测试,采用本发明的方法压缩率能提高10%至30%左右。作为优选,所述的含透明信息图片压缩和显示的方法的步骤四中,所有像素点的颜色数据进行zip算法的压缩后输入目标图片后进行存储。像素点的颜色数据进行zip算法的压缩后输入目标图片后进行存储能够进一步降低。作为优选,所述的含透明信息图片压缩和显示的方法的步骤七中,终端设备将先读取目标图片的alpha通道值表进行解码,完成所有像素点的alpha通道值的计算,然后再进行所有像素点的颜色数据计算。终端设备需要显示SLG文件时,执行专用解码库,流程与 PNG文件的绘制相同,解码图像数据块后根像素点的不同颜色进行绘制,不同点在于绘制 alpha通道值,如果测试某一个点的alpha值为0,并且知道相邻像素的为0值一共有a个, 那么绘制这a个像素点的时候,直接跳过,不绘制;如果测试某一个点的alpha值为255,并且知道相邻的像素为255值一共有b个,那么绘制b个像素点的时候,直接从解码出来的 SLG文件拷贝b个像素的内存;如果测试某一个点的alpha值不为0,也不为255,那么就混合图像的像素与屏幕的像素,其中的混合值大小,就是读取的alpha值,这样设置大大加快了目标图片的绘制速度,经测试,采用本发明所述的方法,在终端设备上能提升20%至40% 的图片绘制速度。作为优选,所述的含透明信息图片压缩和显示的方法的步骤五中,终端设备将原始图片的辅助信息替换为空白信息后输入目标图片进行存储。图片辅助信息为物理像素尺寸数据块、基色和白色点数据块等非必要的可选的数据块将辅助信息替换为空白信息存储虽然损失了部分信息,但是也相应的提高了压缩率,可以作为可选步骤,需要较高图形质量时可以保持此部分信息,如果需要较高压缩率、较高的绘制显示速度时则可将此部分信息删除。本发明的有益效果是本发明能将占用空间较大、绘制速度较慢的含透明信息图片转换为储存占用空间较小、绘制速度较快的图片在终端设备上压缩、储存和显示。
具体实施例方式下面通过具体实施例,对本发明的技术方案作进一步的具体说明。实施例1
一种含透明信息图片压缩和显示的方法,以原始图片为PNG文件、终端设备为手持终端为例,所述的手持终端可以具体为手机、PDA、掌上游戏机等具有计算和图形显示功能的终端设备;首先,在手持终端中将目标图片设定为专用格式,在本实施例中设定为SLG文件,完整的SLG文件应由以下部分构成SLG文件头数据块、调色板数据块、alpha通道值表、图像数据块、结束信息码和校验码以及可选的辅助信息块;在手持终端内建立专用解码库、专用绘制库,专用解码库、专用绘制库根据SLG文件的构成进行构建,手持终端初始化开始、调用手持终端内置PNG解码库,手持终端读取原始图片的文件头,并对原始图片进行判定,如果原始图片不是PNG文件,则本流程结束,如果原始图片为PNG文件,则手持终端读取PNG文件数据块,手持终端通过PNG解码库进行解析,读取PNG文件的图像大小和PNG文件数据的容量;手持终端根据原始图片的大小和PNG文件数据的容量,创建内容为空白的目标图片即建立内容空白的SLG文件,其中空白的SLG文件内含有alpha通道值表;此时, 手持终端将压缩后PNG文件中的图像数据块解压缩,此时得到的图像数据为每个像素点的图像数据,每个像素点的图像数据由4个8位数据构成,前三个8位数据为显示像素点颜色数据的RGB565数据,第四个8位数据为alpha通道值,手持终端根据PNG文件的格式抽取 alpha通道值后将原始图片的alpha通道值送入alpha通道值表,此时手持终端根据专用解码库,统计一行相邻的透明像素为0值的像素个数,统计一行相邻的透明像素为255值的像素个数。单独对透明像素为0值,透明像素为255的像素,进行游程编码,所述的游程编码即用一个符号值或串长代替具有相同值的连续符号,使符号长度少于原始数据的长度, 只在各行或者各列数据的代码发生变化时,一次记录该代码及相同代码重复的个数,从而实现数据的压缩,如PNG文件中某一行像素点的alpha值为0、0、0、0、0、13、255、254、255、 255、255、255、255、255、0、128、0,则经过游程编码后即为 0-5、13、255、254、255_6、0、128、0, 显然可见此行alpha值经过游程编码后数据量减少,所以alpha通道值表完成数据的无损压缩;然后手持终端抽取PNG文件每个像素点的图像数据前三个8位数据进行ZIP压缩后送至SLG文件,完成图像数据块的无损压缩;然后手持终端读取PNG文件的辅助信息,图片辅助信息为物理像素尺寸数据块、基色和白色点数据块,这些数据块均为非必要的可选的数据块,手持终端将PNG文件的辅助信息输入至SLG文件,如果为了提高压缩率,也可以选择将PNG文件的辅助信息删除;在辅助信息输入完成后,手持终端将PNG文件其他数据包括调色数据块输入至SLG文件,SLG文件添加结束信息码和校验码,SLG文件构建完成,至此完成含透明信息图片的压缩;SLG文件构建完成后,手持终端储存SLG文件并将原始图片即 PNG文件删除,至此完成含透明信息图片的储存;手持终端需要显示目标图片时,手持终端对对应原始图片的SLG文件执行专用解码库、专用绘制库,绘制SLG文件的流程与PNG文件的绘制大致相同,解码图像数据块后根像素点的不同颜色进行绘制,不同点在于绘制alpha 通道值时,如果测试某一个点的alpha值为0,并且知道相邻像素的为0值一共有a个,那么绘制这a个像素点的时候,直接跳过,不绘制;如果测试某一个点的Alpha值为255,并且知道相邻的像素为255值一共有b个,那么绘制b个像素点的时候,直接从解码出来的SLG 文件拷贝b个像素的内存;如果测试某一个点的alpha值不为0,也不为255,那么就混合图像的像素与屏幕的像素,其中的混合值大小,就是读取的alpha值,这样设置大大加快了目标图片的绘制速度,经测试,采用本发明所述的方法,在手持终端上能提升20%至40%的图片绘制速度,至此完成含透明信息图片的显示。实施例2:
一种含透明信息图片压缩和显示的方法,以原始图片为TIFF文件为例;手持终端同样需要建立专用解码库和专用绘制库,基本过程与PNG格式图片在手持终端上压缩储存显示的方法类似,不同点在于,手持终端在读取TIFF文件时,手持终端需要调用TIFF解码库,并根据TIFF解码库的设定读取alpha通道值做游程编码,建立alpha通道值表。以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
权利要求
1.一种含透明信息图片压缩和显示的方法,通过将原始图片解码后重新压缩形成体积较小、绘制速度快的目标图片储存,然后对目标图片进行解码绘制显示,其特征在于首先在终端设备上建立专用解码库、专用绘制库,然后通过以下步骤将含透明信息图片的原始图片在手持终端上压缩储存显示步骤一,所述的终端设备读取原始图片,确定原始图片的图片格式,终端设备根据原始图片的图片格式将原始图片解码;步骤二,终端设备根据读取原始图片的图像大小新建对应的目标图片;步骤三,终端设备调用原始图片解码库将原始图片的所有像素点的alpha通道值读取,然后将原始图片所有像素点的alpha通道值按顺序输入目标图片后构成alpha通道值表进行存储;步骤四,终端设备将原始图片的所有像素点的颜色数据按顺序输入目标图片进行存储;步骤五,终端设备读取原始图片的辅助信息,并将原始图片的辅助信息输入目标图片进行存储;步骤六,终端设备将原始图片删除,终端设备将目标图片根据专用解码库进行保存;步骤七,终端设备调用专用解码库、专用绘制库将目标图片进行解码、绘制,终端设备显示目标图片。
2.根据权利要求1所述的含透明信息图片压缩和显示的方法,其特征在于所述的含透明信息图片压缩、储存、显示的方法的步骤三中,在alpha通道值表中统计alpha通道值为0和255的数据进行游程编码算法压缩,然后将alpha通道值表输入目标图片后进行存储。
3.根据权利要求1所述的含透明信息图片压缩和显示的方法,其特征在于所述的含透明信息图片压缩、储存、显示的方法的步骤四中,所有像素点的颜色数据进行zip算法的压缩后输入目标图片后进行存储。
4.根据权利要求1或2或3所述的含透明信息图片压缩和显示的方法,其特征在于 所述的含透明信息图片压缩、储存、显示的方法的步骤七中,终端设备将先读取目标图片的 alpha通道值表进行解码,完成所有像素点的alpha通道值的计算,然后再进行所有像素点的颜色数据计算。
5.根据权利要求1或2或3所述的含透明信息图片压缩和显示的方法,其特征在于 所述的含透明信息图片压缩、储存、显示的方法的步骤五中,终端设备将原始图片的辅助信息替换为空白信息后输入目标图片进行存储。
全文摘要
本发明涉及一种含透明信息图片压缩和显示的方法。本发明可以很好地解决现有技术占用空间较大、绘制速度较慢的问题,其技术方案要点是,首先在终端设备上建立专用解码库、专用绘制库,然后通过以下步骤将含透明信息图片的原始图片在终端设备上压缩储存显示步骤一,所述的终端设备读取原始图片,将原始图片解码;步骤二,新建对应的目标图片;步骤三,alpha通道值读取,构成alpha通道值表;步骤四,颜色数据进行存储;步骤五,将原始图片的辅助信息输入目标图片;步骤六,保存;步骤七,调用专用解码库、专用绘制库显示目标图片。本发明可以将含透明信息图片转换为储存占用空间小、绘制速度快的图片进行压缩、储存、显示。
文档编号H04N7/26GK102244784SQ20111015344
公开日2011年11月16日 申请日期2011年6月9日 优先权日2011年6月9日
发明者张志文, 龙小平 申请人:杭州典能科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1