一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于嵌入式系统图片的无损压缩算法、装置、计算机设备及存储介质的制作方法

2022-09-04 03:20:12 来源:中国专利 TAG:


1.本发明涉及数据压缩算法技术领域,尤其涉及一种基于嵌入式系统图片的无损压缩算法、装置、计算机设备及存储介质。


背景技术:

2.在微小的嵌入式系统中,往往需要存储大量的数据,例如tft彩屏、oled屏显示的图片,这些图片如果以原始文件的方式存储,会占用系统大量的rom空间,甚至需要额外使用存储芯片,增加了设备的体积及成本。此外,字典、霍夫曼编码、lempel-ziv等算法解码时也需要耗费大量的系统ram,或者压缩后数据有一定的损失。对微小的嵌入式系统来说ram容量一般是非常小的,不足以支撑上述算法解码时所需ram;如果数据存在损失,在显示屏上显示时也会存在一定的缺陷。


技术实现要素:

3.本发明的实施例提供了一种基于嵌入式系统图片的无损压缩算法、装置、计算机设备及存储介质,旨在解决现有图片在微信嵌入式系统中存储占用空间较大的技术问题。
4.为达到上述目的,本发明所提出的技术方案为:
5.第一方面,本发明提供了一种基于嵌入式系统图片的无损压缩算法,包括以下步骤:
6.确定源数据中出现频率最低的数据或非源数据中的数据,将其标记为节点数据;
7.统计源数据中可压缩数据的数据长度并标记位置,以得到统计数据;
8.若所述节点数据出现于源数据,则在所述节点数据后插入特定字符,若所述节点数据为非源数据中的数据,则不作任何处理,以得到节点标识数据;
9.将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据。
10.其中,所述统计源数据中可压缩数据的长度及标记位置的步骤包括以下步骤:
11.统计源数据中相邻相同数据个数大于设定数值的数据长度,以得到数据长度值;
12.在所有可压缩数据段的位置进行位置标记,以得到标记位置。
13.其中,所述将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据的步骤包括以下步骤:
14.将可压缩数据替换为:节点数据 数据长度值 一位源数据,以得到局部压缩数据;
15.将与节点数据相同的数据替换为:节点数据 特定字符,以得到节点替换数据;
16.将所述局部压缩数据和所述节点替换数据分别插入到所述源数据的对应标记位置。
17.其中,所述确定源数据中出现频率最低的数据或非源数据中的数据,将其标记为节点数据的步骤之前还包括对被压缩的图片进行取模处理,以得到源数据的步骤。
18.第二方面,本发明的实施例提供了一种基于嵌入式系统图片的无损压缩装置,其包括以下单元:
19.节点数据确定单元,用于确定源数据中出现频率最低的数据或非源数据中的数据,将其标记为节点数据;
20.压缩数据统计单元,用于统计源数据中可压缩数据的数据长度及标记位置;
21.节点数据处理单元,用于若所述节点数据出现于源数据,则在所述节点数据后插入特定字符,若所述节点数据为非源数据中的数据,则不作任何处理,以得到节点标识数据;
22.源数据压缩单元,用于将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据。
23.其中,所述压缩数据统计单元包括:
24.数据长度统计单元,用于统计源数据中相邻相同数据个数大于设定数值的数据长度,以得到数据长度值;
25.位置标记单元,用于在所有可压缩数据段的位置进行位置标记,以得到标记位置。
26.其中,所述源数据压缩单元包括:
27.压缩数据替换单元,用于将可压缩数据替换为:节点数据 数据长度值 一位源数据,以得到局部压缩数据;
28.节点数据替换单元,用于将与节点数据相同的数据替换为:节点数据 特定字符,以得到节点替换数据;
29.数据嵌入单元,用于将所述局部压缩数据和所述节点替换数据分别插入到所述源数据的对应标记位置。
30.其中,还包括:取模单元,所述取模单元用于对被压缩的图片进行取模处理,以得到源数据。
31.第三方面,本发明的实施例提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于嵌入式系统图片的无损压缩算法。
32.第四方面,本发明的实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如上所述的基于嵌入式系统图片的无损压缩算法。
33.与现有技术相比,本发明的实施例提供了一种基于嵌入式系统图片的无损压缩算法、装置、计算机设备及存储介质,所述方法包括:确定源数据中出现频率最低的数据或非源数据中的数据,将其标记为节点数据;统计源数据中可压缩数据的数据长度并标记位置,以得到统计数据;若所述节点数据出现于源数据,则在所述节点数据后插入特定字符,若所述节点数据为非源数据中的数据,则不作任何处理,以得到节点标识数据;将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据。其通过将图片的数据进行聚类处理,对于相邻出现多次相同的数据采用设定格式数据替换,大大压缩了数据的大小,对于微型嵌入系统而言,无需外接存储,既节省了成本也降低了设备体积。
附图说明
34.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1为本发明实施例提供的基于嵌入式系统图片的无损压缩算法的主流程图;
36.图2为本发明实施例提供的基于嵌入式系统图片的无损压缩算法的子流程图;
37.图3为本发明实施例提供的基于嵌入式系统图片的无损压缩算法的子流程图;
38.图4为本发明实施例提供的服务器的节点匹配装置的示意性简图;以及
39.图5为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
40.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
42.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
43.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
44.请参阅附图1至图3,附图1为本发明实施例提供的基于嵌入式系统图片的无损压缩算法的主流程图,图2和图3为子流程示意图,本发明实施例的基于嵌入式系统图片的无损压缩算法主要应用于微型嵌入式体统的图片存储及微型嵌入式系统驱动的显示屏类产品。具体的,实现该基于嵌入式系统图片的无损压缩算法包括以下步骤:
45.步骤s100、对被压缩的图片进行取模处理,以得到源数据。在嵌入式单片机系统中,图片的存储一般会通过取模软件进行取模处理,将图片转换成普通的数据进行存储,取模处理是将图片的像素点转换成对应的二进制数据,以数据形式存储。例如,tft彩屏一般采用rgb565或者rgb888的方式,其中,rgb565每个像素点的占用的空间为2byte(16bit),rgb888每个像素点的占用的空间为3byte(24bit)。在无压缩的情况下,一张完整的图片,假设宽为80像素点长为160像素点,则占用的空间为80*160*2byte(即25k byte)或者80*160*3byte(37.5k byte),仅仅一张图片就消耗了很多rom空间。
46.需要说明的是,对于纯色图片或仅仅只有两种颜色的图片,则无需进行以下压缩算法处理。若图片是单色,用0或者1来表示即可,不需要rom空间存储。若图片只有两种颜色,用0表示一种颜色,1表示另外一种颜色,此时一个像素点的只需要1bit来表示,即原来需要16bit来表示的数据,现在只要1bit了,压缩率为(16-1)/16≈93%。若图片中具有的颜色超过两种,则继续进行以下算法处理:
47.步骤s200、确定源数据中出现频率最低的数据或未出现的数据,将其标记为节点数据;图片在进行取模处理后,以二进制编码形式存在,相同像素点的二进制编码相同,则选取其中出现频率最低的数据作为节点数据,一般而言,出现频率最低的数据不需要进行压缩处理,保持原状即可,因此将出现频率最低的数据作为节点数据,该节点数据用于后续压缩算法处理时的节点标识。于其他实施例中,由于节点数据的功能是作为节点标识,因此也可以采用其他未在源数据中出现的数据,此时在后续压缩处理时,需要对该节点标识进行区别,增加标识位,会略微增大压缩数据的大小。其中,将节点数据标记为skp,优先选择源数据中未出现的数据,只需要到一个skp即可,一方面在解码查找时skp时,尽可能查找的次数少;另一方面,防止skp在源数据中出现的次数太多,在skp后插入特定字符反而将源数据变多了。
48.步骤s300、统计源数据中可压缩数据的数据长度并标记位置,以得到统计数据;也即根据压缩规则确定哪些数据段需要被压缩,同时需要标记被压缩数据段在源数据中的位置,以便后续将压缩数据嵌入对应位置。通过该步骤的筛选,防止相同数据太小,而在后续数据压缩替换时反而将源数据增多,无法达到压缩的目的。
49.具体的,请再次参阅图2,所述统计源数据中可压缩数据的长度及标记位置的步骤s300包括以下步骤:
50.步骤s301、统计源数据中相邻相同数据个数大于设定数值的数据长度,以得到数据长度值;例如,设定数值为5,那么则统计源数据中相邻数据相同个数大于或等于5的数据段,也即符合上述条件的数据段是需要被压缩处理的。上述设定数值可以根据源数据的复杂程度而定,对于复杂程度较低的源数据,选择设定数值较小,反之,则选择较大。
51.步骤s302、在所有可压缩数据段的位置进行位置标记,以得到标记位置。标记统计过可以压缩数据段的位置的目的是为了后续压缩数据替换容易找到对应的位置,也方便在解码时,可以快速的将压缩数据还原至原本位置。
52.步骤s400、若所述节点数据与源数据相同,则若所述节点数据出现于源数据,则在所述节点数据后插入特定字符,若所述节点数据为非源数据中的数据,则不作任何处理,以得到节点标识数据。由于节点数据为源数据的一部分,在压缩和加压过程中,均需要进行标识,标识在数据在源数据中也是存在的,而不是单纯的节点标识。若节点标识采用非源数据相同的数据,那么压缩和解码时,会将节点数据位替换成对应的源数据。
53.步骤s500、将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据。
54.其中,所述将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据的步骤s500包括以下步骤:
55.步骤s501、将可压缩数据替换为:节点数据 数据长度值 一位源数据,以得到局部压缩数据;其中,节点数据位标识后续数据是被压缩处理的,而数据长度值,则具体描述了该压缩数据的数据长度,一位源数据位则是描述该压缩段的原数据类型,例如为红色等。通过该步骤处理后,可将相邻相同的数据段简化为三位数据组合的数据,大大降低了数据量。
56.步骤s502、将与节点数据相同的数据替换为:节点数据 特定字符,以得到节点替换数据;若节点数据是与源数据相同的数据,那么通过节点数据后的特定字符可以描述源数据中存在于节点数据相同的数据段,在解锁时需要对应补充。若节点数据不是源数据的
一部分,那么那么直接将节点数据为替换为后续对应的一位源数据相同的数据。
57.步骤s503、将所述局部压缩数据和所述节点替换数据分别插入到所述源数据的对应标记位置。对于未被压缩的数据段仍按照原有先后顺序保留,将压缩的数据段按照上述规则替换后,再次生成存储数据即可。
58.请参阅附图4,本发明的实施例提供了一种基于嵌入式系统图片的无损压缩装置100,其包括以下单元:
59.取模单元101,所述取模单元用于对被压缩的图片进行取模处理,以得到源数据。
60.节点数据确定单元102,用于确定源数据中出现频率最低的数据或非源数据中的数据,将其标记为节点数据;
61.压缩数据统计单元103,用于统计源数据中可压缩数据的数据长度及标记位置;
62.其中,所述压缩数据统计单元103包括:
63.数据长度统计单元1031,用于统计源数据中相邻相同数据个数大于设定数值的数据长度,以得到数据长度值;
64.位置标记单元1032,用于在所有可压缩数据段的位置进行位置标记,以得到标记位置。
65.节点数据处理单元104,用于若所述节点数据出现于源数据,则在所述节点数据后插入特定字符,若所述节点数据为非源数据中的数据,则不作任何处理,以得到节点标识数据;
66.源数据压缩单元105,用于将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据。
67.其中,所述源数据压缩单元105包括:
68.压缩数据替换单元1051,用于将可压缩数据替换为:节点数据 数据长度值 一位源数据,以得到局部压缩数据;
69.节点数据替换单元1052,用于将与节点数据相同的数据替换为:节点数据 特定字符,以得到节点替换数据;
70.数据嵌入单元1053,用于将所述局部压缩数据和所述节点替换数据分别插入到所述源数据的对应标记位置。
71.请参阅附图5,本发明的实施例提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。该程序指令包括:
72.步骤s100、对被压缩的图片进行取模处理,以得到源数据。
73.步骤s200、确定源数据中出现频率最低的数据或未出现的数据,将其标记为节点数据。
74.步骤s300、统计源数据中可压缩数据的数据长度并标记位置,以得到统计数据。
75.若所述节点数据与源数据相同,则若所述节点数据出现于源数据,则在所述节点数据后插入特定字符,若所述节点数据为非源数据中的数据,则不作任何处理,以得到节点标识数据。
76.步骤s500、将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据。
77.该计算机设备可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
78.该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
79.该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种基于嵌入式系统图片的无损压缩算法。
80.该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
81.该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种基于嵌入式系统图片的无损压缩算法。
82.该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
83.本发明的实施例还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述的方法。该程序指令包括以下步骤:
84.步骤s100、对被压缩的图片进行取模处理,以得到源数据。在嵌入式单片机系统中,图片的存储一般会通过取模软件进行取模处理,将图片转换成普通的数据进行存储,取模处理是将图片的像素点转换成对应的二进制数据,以数据形式存储。例如,tft彩屏一般采用rgb565或者rgb888的方式,其中,rgb565每个像素点的占用的空间为2byte(16bit),rgb888每个像素点的占用的空间为3byte(24bit)。在无压缩的情况下,一张完整的图片,假设宽为80像素点长为160像素点,则占用的空间为80*160*2byte(即25k byte)或者80*160*3byte(37.5k byte),仅仅一张图片就消耗了很多rom空间。
85.需要说明的是,对于出色图片或仅仅只有两种颜色的图片,则无需进行以下压缩算法处理。若图片是单色,用0或者1来表示即可,不需要rom空间存储。若图片只有两种颜色,用0表示一种颜色,1表示另外一种颜色,此时一个像素点的只需要1bit来表示,即原来需要16bit来表示的数据,现在只要1bit了,压缩率为(16-1)/16≈93%。若图片中具有的颜色超过两种,则继续进行以下算法处理:
86.步骤s200、确定源数据中出现频率最低的数据或未出现的数据,将其标记为节点数据;图片在进行取模处理后,以二进制编码形式存在,相同像素点的二进制编码相同,则选取其中出现频率最低的数据作为节点数据,一般而言,出现频率最低的数据不需要进行压缩处理,保持原状即可,因此将出现频率最低的数据作为节点数据,该节点数据用于后续压缩算法处理时的节点标识。于其他实施例中,由于节点数据的功能是作为节点标识,因此也可以采用其他未在源数据中出现的数据,此时在后续压缩处理时,需要对该节点标识进行区别,增加标识位,会略微增大压缩数据的大小。其中,将节点数据标记为skp,优先选择源数据中未出现的数据,只需要到一个skp即可,一方面在解码查找时skp时,尽可能查找的
次数少另一方面,防止skp在源数据中出现的次数太多,在skp后插入特定字符反而将源数据变多了
87.步骤s300、统计源数据中可压缩数据的数据长度并标记位置,以得到统计数据;也即根据压缩规则确定哪些数据段需要被压缩,同时需要标记被压缩数据段在源数据中的位置,以便后续将压缩数据嵌入对应位置。通过该步骤的筛选,防止相同数据太小,而在后续数据压缩替换时反而将源数据增多,无法达到压缩的目的。
88.具体的,请再次参阅图2,所述统计源数据中可压缩数据的长度及标记位置的步骤s300包括以下步骤:
89.步骤s301、统计源数据中相邻相同数据个数大于设定数值的数据长度,以得到数据长度值;例如,设定数值为5,那么则统计源数据中相邻数据相同个数大于或等于5的数据段,也即符合上述条件的数据段是需要被压缩处理的。上述设定数值可以根据源数据的复杂程度而定,对于复杂程度较低的源数据,选择设定数值较小,反之,则选择较大。
90.步骤s302、在所有可压缩数据段的位置进行位置标记,以得到标记位置。标记统计过可以压缩数据段的位置的目的是为了后续压缩数据替换容易找到对应的位置,也方便在解码时,可以快速的将压缩数据还原至原本位置。
91.步骤s400、若所述节点数据与源数据相同,则若所述节点数据出现于源数据,则在所述节点数据后插入特定字符,若所述节点数据为非源数据中的数据,则不作任何处理,以得到节点标识数据;由于节点数据为源数据的一部分,在压缩和加压过程中,均需要进行标识,标识在数据在源数据中也是存在的,而不是单纯的节点标识。若节点标识采用非源数据相同的数据,那么压缩和解码时,会将节点数据位替换成对应的源数据。
92.步骤s500、将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据。
93.其中,所述将所述统计数据压缩后与所述节点标识数据一并嵌入到源数据中以获得压缩后的存储数据的步骤s500包括以下步骤:
94.步骤s501、将可压缩数据替换为:节点数据 数据长度值 一位源数据,以得到局部压缩数据;其中,节点数据位标识后续数据是被压缩处理的,而数据长度值,则具体描述了该压缩数据的数据长度,一位源数据位则是描述该压缩段的原数据类型,例如为红色等。通过该步骤处理后,可将相邻相同的数据段简化为三位数据组合的数据,大大降低了数据量。
95.步骤s502、将与节点数据相同的数据替换为:节点数据 特定字符,以得到节点替换数据;若节点数据是与源数据相同的数据,那么通过节点数据后的特定字符可以描述源数据中存在于节点数据相同的数据段,在解锁时需要对应补充。若节点数据不是源数据的一部分,那么那么直接将节点数据为替换为后续对应的一位源数据相同的数据。
96.步骤s503、将所述局部压缩数据和所述节点替换数据分别插入到所述源数据的对应标记位置。对于未被压缩的数据段仍按照原有先后顺序保留,将压缩的数据段按照上述规则替换后,再次生成存储数据即可。
97.与现有技术相比,本发明的实施例提供了一种基于嵌入式系统图片的无损压缩算法、装置、计算机设备及存储介质,其通过将图片的数据进行聚类处理,对于相邻出现多次相同的数据采用设定格式数据替换,大大压缩了数据的大小,对于微型嵌入系统而言,无需外接存储,既节省了成本也降低了设备体积。
98.上述内容,仅为本发明的较佳实施例,并非用于限制本发明的实施方案,本领域普通技术人员根据本发明的主要构思和精神,可以十分方便地进行相应的变通或修改,故本发明的保护范围应以权利要求书所要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献