一种PNG格式的编码、解码方法及装置制造方法及图纸

技术编号:33191140 阅读:47 留言:0更新日期:2022-04-24 00:19
本发明专利技术属于图像处理技术领域,具体涉及一种PNG格式的编码、解码方法及装置;所述方法包括读取出原始图片中的目标像素,计算出每个目标像素的位数和每个目标像素中不同通道的位数;识别出目标像素的颜色类型与预设的定义值对应;判断需进行编码的颜色类型的定义值的大小,按照不同的条件计算出不同颜色类型的像素的位深度;确定需要进行编码时的每个像素的位深度,计算出图像的大小;将图像分块,并在图像头部块中预设压缩算法采用扫描线对计算出的图像下采样;对扫描线数据滤波后进行压缩,编码出PNG数据流。本发明专利技术新增了不等位深度的真彩色图像的编码,还能实现各种颜色类型之间转换。换。换。

【技术实现步骤摘要】
一种PNG格式的编码、解码方法及装置


[0001]本专利技术属于图像处理
,具体涉及一种PNG格式的编码、解码方法及装置。

技术介绍

[0002]近年来,在智能穿戴、工业控制、物联网控制、医疗电子等方面,MCU芯片得到了广泛的应用,越来越多客户都希望MCU能具备一定的图形运算能力,让人机接口(UI)能更漂亮、绚丽。MCU本身受限于主频、图像处理能力、Memory的限制大小以及接口速率的限制,特别是MCU广泛使用SPI接口屏,受限于SPI接口速率限制,使得对MCU到屏之间传输的像素数据量有较高的要求。提出了要求。MCU中彩屏显示时,RGB565的彩色模式相比于RGB888而言,MCU和彩屏之间的数据传输量可以减少1/3,因此RGB565在MCU产品中得到广泛的应用。
[0003]在MCU产品中,通常使用PNG格式进行图像存储,由于其对图像的高压缩率,统计来看,至少可以节约一半的存储器空间,甚至更高。当然,如果采用PNG格式进行图像存储,则需要MCU对PNG图像进行解码,因此对MCU的处理能力提出了要求,此瓶颈一般可以通过设计PNG硬件加速器的方式来解决,在此不做进一步的讨论。
[0004]PNG是一种采用无损压缩算法的位图格式,其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。PNG使用从LZ77派生的无损数据压缩算法,因压缩比高,生成文件体积小,一般应用于JAVA程序、网页或S60程序中。PNG格式主要有8位、24位、32位三种形式,其中8位PNG支持两种不同的透明形式(索引透明和alpha透明),24位PNG不支持透明,32位PNG在24位基础上增加了8位透明通道,因此可展现256级透明程度。
[0005]PNG的编码过程包括filter(滤波)、deflate(压缩)、chunk(数据分块)编码3个过程;PNG的解码过程包括chunk(分块)解码、inflate(解压缩)、un-filter(滤波还原)3个过程。其中滤波是无损的,滤波是按字节为单位进行,滤波的过程本身不减少数据量的大小,但通过滤波能提高deflate的压缩能力;deflate过程包括LZ77压缩和对压缩后数据采用huffman编码的过程,该过程也是对数据自身进行操作。PNG在标准定义时,只支持颜色的位深度相等的像素图片,比如可以支持颜色位深度为1、2、4、8、16几种格式;由于RGB565及RGB565A这两种格式的三个颜色的位深度不一致,因此PNG的编码过程不支持的RGB565及RGB565A这些格式。
[0006]另一方面,在MCU上使用PNG时,如果送屏显示用的是RGB565,则对PNG直接支持RGB565、RGB565A提出了需求,那么,为了节约了PNG图像的存储空间,又避免解码的时候多一次RGB888(或RGB888A)到RGB565(或RGB565A)的映射。为此需要对PNG图像格式以及压缩方式进行研究,以实现对颜色位深度不一致的RGB格式进行支持的PNG编码和解码方式。

技术实现思路

[0007]基于现有技术存在的问题,本专利技术提出了一种PNG格式的编码、解码方法及装置;考虑到RGB565的彩色模式占用16位,相比于RGB888的24位在MCU和彩屏之间的数据传输量
减少了1/3;因此本专利技术对PNG图像格式以及其压缩方式进行进一步研究,提供了一种能够使得PNG图像能够直接支持RGB565等格式的编码解码方案。
[0008]具体的,本专利技术通过如下方案实现:
[0009]在本专利技术的第一方面,本专利技术提供了一种PNG格式的编码方法,所述编码方法包括以下步骤:
[0010]读取出原始图片中的目标像素,并计算出当前目标像素的位数以及每个目标像素中不同通道的位数;
[0011]识别出当前目标像素的颜色类型并与预设的定义值对应;设置编码过程中允许的位深度指向该定义值;其中所述颜色类型至少包括灰度图像、真彩色图像、索引彩色图像、带α通道数据的灰度图像、带α通道数据的真彩色图像、不等位深度的真彩色图像以及带α通道数据的不等位深度的真彩色图像;
[0012]判断需进行编码的颜色类型的定义值的大小,对不等位深度的真彩色图像和带α通道数据的不等位深度的真彩色图像按照第一条件计算出像素中的位深度;对其他颜色类型的图像按照第二条件计算出像素中的位深度;
[0013]确定需要进行编码时的每个像素的位深度,计算出图像的大小,将图像分块,并在图像头部块中预设压缩算法采用扫描线对计算出的图像下采样;
[0014]对扫描线数据滤波后按照预设的压缩算法进行压缩,编码出图像数据块,并在图像数据块尾端编码出图像结束块,从而完成PNG图像的编码。
[0015]进一步的,在判断需进行编码的颜色类型的定义值的大小之前还包括读取出的原始图片中的目标像素进行颜色类型转换,即从灰度图像、真彩色图像、索引彩色图像、带α通道数据的灰度图像、带α通道数据的真彩色图像、不等位深度的真彩色图像以及带α通道数据的不等位深度的真彩色图像中任意一种颜色类型转换到另一种与之前不同的颜色类型;并重新确定新的颜色类型的定义值。
[0016]所述识别出目标像素的颜色类型并与预设的定义值对应包括为灰度图像、真彩色图像、索引彩色图像、带α通道数据的灰度图像、带α通道数据的真彩色图像分配[0,6]之间的整数值,为不等位深度的真彩色图像以及带α通道数据的不等位深度的真彩色图像分配[7,12]之间的整数值;且所述定义值占用一个字节比特空间。
[0017]进一步的,所述设置编码过程中允许的位深度指向该定义值包括为灰度图像、真彩色图像、索引彩色图像、带α通道数据的灰度图像、带α通道数据的真彩色图像设置多个可选的第三位深度,且每个通道占用的位深度相等;为不等位深度的真彩色图像以及带α通道数据的不等位深度的真彩色图像设置固定的位深度,所述固定的位深度包括第一位深度和第二位深度;所述第一位深度是该颜色类型中其中一个颜色通道占用的位深度,所述第二位深度是该颜色类型中一个像素所占用的总的位深度。
[0018]进一步的,所述预设的第一函数表示为f(x)=3A+α,A代表通道的位深度,α代表α通道占用的位深度;所述可调参数的值为
±
1或者
±
2。
[0019]在本专利技术的第一方面的基础上,在本专利技术的第二方面,本专利技术提供了一种与第一方面所对应的PNG格式的解码方法,所述解码方法包括以下步骤:
[0020]读取出PNG图像,读取出图像头部块、图像数据块和图像结束块;
[0021]按照从图像头部块读取出的压缩算法,对所述图像数据块解压缩后并进行滤波还
原;
[0022]按照从图像头部块读取出的定义值确定出颜色类型,所述颜色类型包括灰度图像、真彩色图像、索引彩色图像、带α通道数据的灰度图像、带α通道数据的真彩色图像、不等位深度的真彩色图像以及带α通道数据的不等位深度的真彩色图像;
[0023]按照从图像头部块读取的该颜色本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种PNG格式的编码方法,其特征在于,所述编码方法包括以下步骤:读取出原始图片中的目标像素,并计算出当前目标像素的位数以及每个目标像素中不同通道的位数;识别出当前目标像素的颜色类型并与预设的定义值对应;设置编码过程中允许的位深度指向该定义值;其中所述颜色类型至少包括灰度图像、真彩色图像、索引彩色图像、带α通道数据的灰度图像、带α通道数据的真彩色图像、不等位深度的真彩色图像以及带α通道数据的不等位深度的真彩色图像;判断需进行编码的颜色类型的定义值的大小,对不等位深度的真彩色图像和带α通道数据的不等位深度的真彩色图像按照第一条件计算出像素中的位深度;对其他颜色类型的图像按照第二条件计算出像素中的位深度;确定需要进行编码时的每个像素的位深度,计算出图像的大小,将图像分块,在图像头部块中预设压缩算法并采用扫描线对计算出的图像下采样;对扫描线数据滤波后按照预设的压缩算法进行压缩,编码出图像数据块,并在图像数据块尾端编码出图像结束块,从而完成PNG图像的编码。2.根据权利要求1所述的一种PNG格式的编码方法,其特征在于,在判断需进行编码的颜色类型的定义值的大小之前还包括读取出的原始图片中的目标像素进行颜色类型转换,即从灰度图像、真彩色图像、索引彩色图像、带α通道数据的灰度图像、带α通道数据的真彩色图像、不等位深度的真彩色图像以及带α通道数据的不等位深度的真彩色图像中任意一种颜色类型转换到另一种与之前不同的颜色类型;并重新确定新的颜色类型的定义值。3.根据权利要求1所述的一种PNG格式的编码方法,其特征在于,所述设置编码过程中允许的位深度指向该定义值包括为灰度图像、真彩色图像、索引彩色图像、带α通道数据的灰度图像、带α通道数据的真彩色图像设置多个可选的第三位深度,且每个通道占用的位深度相等;为不等位深度的真彩色图像以及带α通道数据的不等位深度的真彩色图像设置固定的位深度,所述固定的位深度包括第一位深度和第二位深度;所述第一位深度是该颜色类型中其中一个颜色通道占用的位深度,所述第二位深度是该颜色类型中一个像素所占用的总的位深度。4.根据权利要求3所述的一种PNG格式的编码方法,其特征在于,按照第一条件计算出对不等位深度的真彩色图像和带α通道数据的不等位深度的真彩色图像的像素位深度大小包括调用附加有可调参数的第一函数按照其各自允许的第一位深度计算出像素的位深度,或者直接将允许的第二位深度作为像素的位深度;按照第二条件计算出其他颜色类型的图像的位深度包括调用预设的第一函数按照其允许的第三位深度计算出像素中的位深度大小。根据权利要求4所述的一种PNG格式的编码方法,其特征在于,所述预设的第一函数表示为f(x)=3A+α,A代表通道的位深度,α代表α通道占用的位深度;所述可调参数的值为
±<...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:思澈科技重庆有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1