CN107911570B - 一种对图片特征进行压缩及解压的方法 - Google Patents
一种对图片特征进行压缩及解压的方法 Download PDFInfo
- Publication number
- CN107911570B CN107911570B CN201711208952.2A CN201711208952A CN107911570B CN 107911570 B CN107911570 B CN 107911570B CN 201711208952 A CN201711208952 A CN 201711208952A CN 107911570 B CN107911570 B CN 107911570B
- Authority
- CN
- China
- Prior art keywords
- byte
- character
- character string
- steps
- arrays
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32144—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
- H04N1/32149—Methods relating to embedding, encoding, decoding, detection or retrieval operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32144—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
- H04N1/32149—Methods relating to embedding, encoding, decoding, detection or retrieval operations
- H04N1/32267—Methods relating to embedding, encoding, decoding, detection or retrieval operations combined with processing of the image
- H04N1/32277—Compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种对图片特征进行压缩及解压的方法,压缩速度快,且压缩比高。首先分析储存为字符串的图片特征,确认需要编码的字符种类;然后,根据需要编码的字符建立编码字典,每个编码对应4个比特位;最后,根据编码字典对字符串进行压缩和解压。压缩包括:将每个字符按照编码字典进行转码;将每两个字符转码后的结果组成一个新的字节,所有新字节拼接得到转换后的字节数组;对转换后的字节数组使用字符集转换为字符串。解压包括:按照压缩的步骤中选用的字符集将压缩得到的字符串转换为字节数组;将字节数组的每一个字节拆分为高4位和低4位;将字节的每个4位使用编码字典翻译为字符,组合字符得到压缩前的图片特征的字符串。
Description
技术领域
本发明涉及数据压缩领域,具体是一种对图片特征进行压缩及解压的方法。
背景技术
目前,应用人工智能深度学习技术,已经可以识别图片中车辆、行人、外部环境等信息。由于业务应用的需求,还需要提取图片中对象的特征值用于分析比对,特征值一般是算法中神经网络其中一层的输出,由于目前算法模型较多,且网络深度大,其输出较多,且均为数值型,为了便于多种环境下的存储,将输出拼接为字符串。由于输出项多,导致字符串长度较长。特征字符串较长一方面导致所需存储空间较大;另一方面,当读取特征时,IO负载较大。这两方面问题并不会导致应用无法开展,但的确对应用的效率造成了较大的影响。
由于特征是在图片采集处理过程中提取的,而图片采集可能发生在实时环境下的,卡口每拍摄一张图片就会立刻进行采集处理,所以对压缩算法的主要要求是速度,要求不能对实时环境产生较大的影响。经实测,对长度为1万的数值型字符串,采用常规的数据压缩算法耗时在9毫秒左右,压缩耗时较长。
发明内容
针对现有技术中存在的上述问题,本发明提供了一种对图片特征进行压缩及解压的方法,压缩速度快,且压缩比高。
其技术方案是这样的:一种对图片特征进行压缩及解压的方法,其特征在于,包括以下步骤:分析储存为字符串的图片特征,确认需要编码字符种类;根据需要编码字符建立编码字典,每个编码对应4个比特位;根据编码字典对字符串进行压缩和解压;
其中,压缩包括:
将每个字符按照编码字典进行转码;
将每两个字符转码后的结果组成一个新的字节,所有新字节拼接得到转换后的字节数组;
对转换后的字节数组使用字符集转换为字符串;
解压包括:
按照压缩的步骤中选用的字符集将压缩得到的字符串转换为字节数组;
将字节数组的每一个字节拆分为高4位和低4位;
将字节的每个4位使用编码字典翻译为字符,组合字符得到压缩前的图片特征的字符串。
其进一步特征在于:所述字符包括结束符,所述结束符为字符P。
进一步的,需要编码字符包括数字0至数字9、逗号、减号、小数点、字符E、字符P,编码对应为二进制下的0-7,9-15。
进一步的,压缩具体包括以下步骤:
s1、创建一个空的字节数组b;
s2、遍历带待压缩字符串的字符,对每一个字符,执行如下步骤:
s2.1、将字符按照编码字典表转化为编码;
s2.2、判断字符所在的序号的奇偶性,如果序号是奇数则创建一个新的临时字节a,将编码赋值给该临时字节a,如果该字符是字符串中最后一个字符,则临时字节a左移4位,按位并将字节a的低4位用1111编码填充,将临时字节a加入字节数组b的尾部;如果序号是偶数,则将临时字节a左移4位,按位并将编码并入临时字节a的低4位,然后将临时字节a加入字节数组b的尾部,如果该字符是字符串中最后一个字符,则向字节数组b中再追加一个字节8位,以11111111填充;
s2.3、重复s2.1至s2.2,直到遍历完整个字符串;
s3、对字节数组b,使用字符集转换为字符串,
进一步的,解压具体包括以下步骤:
p1、创建一个空的字符串s;
p2、按照压缩时使用的字符集将带解压的字符串转换成字节数组b;
p3、遍历字节数组b,对每个字节,执行如下步骤:
p3.1:获取高4位,并右移4位得到字节x,使用字节x查询编码字典,得到对应的字符,并将字符追加到字符串s尾部;
p3.2:获取低4位,得到字节y,使用字节y查询编码字段,得到对应的字符,并将字符追加到字符串s尾部;
p3.3:重复步骤3.1-3.2,直到遍历完整个字节数组;
p4:得到的字符串s的即为压缩前的图片特征的字符串。
进一步的,所述左移为将字节左移4位,且不改变0,1的排列方式,设字节值为x,具体步骤如下:判断x是否大于7,若小于等于7,返回直接x左移4位的值;否则,返回128-(16*x);
所述按位并是将一个字节的高4位与另一字节的低4位并为一个字节,设需要将b1的高4位与b2的低4位求并,具体步骤如下:判断b1是否大于0,若大于0,返回b1与b2按位或的结果,否则,令x= -128-b1,y=x与b2按位或,返回-128-y;
所述获取高4位是返回指定字节的高四位,且不改变0,1的排列方式,设字节值为m,具体步骤如下:判断m是否大于0,若大于0,返回m与-16按位与的结果;否则,令x= -128-m,y=x与-16按位与,返回-128-y;
所述获取低4位是返回指定字节的低四位,且不改变0,1的排列方式,设字节值为n,具体步骤如下:判断n是否大于0,若大于0,返回m与15按位与的结果,否则,令x= -128-m,y=x与15按位与,返回y;
所述右移为将字节右移4位,且不改变0,1的排列方式,设字节值为x,具体步骤如下:判断x是否大于0,若大于等于0,返回直接x右移4位的值;否则,令y=x右移4位的值;y= -128-y,m=y与15按位与的值,返回m与8按位或的值。
进一步的,所述左移、按位并、获取高4位、获取低4位、右移的运算过程中的数均为有符号数。
进一步的,当需要在数据库中保存字符串,则使用BASE64字符集进行转换。
本发明的对图片特征进行压缩及解压的方法的优点在于:由于对所有图片特征来说,编码字典相对固定,编码字典可以根据需要自由切换,已编码信息也可以按照新的编码字典重新编码,相比Huffman、LZ77等压缩算法,压缩速度快,实际环境下对长度10000的特征字符串的测试压缩时间稳定在为2毫秒以内,最终压缩比为0.67,压缩效果好。
附图说明
图1为本发明的对图片特征进行压缩及解压的方法的流程框图;
图2为本发明的压缩的具体流程图;
图3为本发明的解压的具体流程图。
具体实施方式
见图1,图2,图3,本发明的一种对图片特征进行压缩及解压的方法,其特征在于,包括以下步骤:将图片特征转化为字符串;分析储存为字符串的图片特征,确认需要编码的字符种类;根据需要编码字符建立编码字典,每个编码对应4个比特位;根据编码字典对字符串进行压缩和解压;
其中,压缩包括:
将每个字符按照编码字典进行转码;
将每两个字符转码后的结果组成一个新的字节,得到转换后的字节数组;
对转换后的字节数组使用字符集转换为字符串。
解压包括:
按照压缩的步骤中选用的字符集将压缩得到的字符串转换为字节数组;
将字节数组的每一个字节拆分为高4位和低4位;
将字节的每个4位使用编码字典翻译为字符,组合字符得到压缩前的图片特征的字符串。
具体的,将图片特征向量直接转化为字符串,以逗号分隔,形如:0.345,-0.224E6,......,1.336等等,为了准确标识字符串的结尾,引入结束符,即字符P,故需要编码字符包括数字0-数字9、逗号、减号、小数点、字符E、字符P,编码对应为二进制下的0-7,9-15,每个编码只占4个比特位。由于数据操作面向有符号数,字符对应的编码永不使用二进制下的8,即1000。
设定编码字典如下表,字符与编码的对应关系可任意改变:
字符 | 编码 |
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1110 |
9 | 1001 |
- | 1010 |
. | 1011 |
, | 1100 |
E | 1101 |
P | 1111 |
见图2,压缩具体包括以下步骤:
s1、创建一个空的字节数组b;
s2、遍历带待压缩字符串的字符,对每一个字符,执行如下步骤:
s2.1、将字符按照编码字典表转化为编码;
s2.2、判断字符所在的序号的奇偶性,如果序号是奇数则创建一个新的临时字节a,将编码赋值给该临时字节a,如果该字符是字符串中最后一个字符,则临时字节a左移4位,按位并将字节a的低4位用1111编码填充,将临时字节a加入字节数组b的尾部;如果序号是偶数,则将临时字节a左移4位,按位并将编码并入临时字节a的低4位,然后将临时字节a加入字节数组b的尾部,如果该字符是字符串中最后一个字符,则向字节数组b中再追加一个字节8位,以11111111填充。
s2.3、重复s2.1至s2.2,直到遍历完整个字符串;
s3、对字节数组b,使用BASE64字符集转换为字符串。
见图3,解压具体包括以下步骤:
p1、创建一个空的字符串s;
p2、按照压缩时使用的字符集将带解压的字符串转换成字节数组b;
p3、遍历字节数组b,对每个字节,执行如下步骤:
p3.1:获取高4位,并右移4位得到字节x,使用字节x查询编码字典,得到对应的字符,并将字符追加到字符串s尾部;
p3.2:获取低4位,得到字节y,使用字节y查询编码字段,得到对应的字符,并将字符追加到字符串s尾部;
p3.3:重复步骤3.1-3.2,直到遍历完整个字节数组;
p4:得到的字符串s的即为压缩前的图片特征的字符串。
由于JAVA环境下的数值均为无符号数,JAVA中负数以补码形式存储,所以在JAVA环境下,需要开发专用的位操作,具体如下:
1、左移:左移为将字节左移4位,且不改变0,1的排列方式,设字节值为x,具体步骤如下:判断x是否大于7,若小于等于7,返回直接x左移4位的值;否则,返回128-(16*x);
2、按位并:按位并是将一个字节的高4位与另一字节的低4位并为一个字节,设需要将b1的高4位与b2的低4位求并,具体步骤如下:判断b1是否大于0,若大于0,返回b1与b2按位或的结果,否则,令x= -128-b1,y=x与b2按位或,返回-128-y;
3、获取高4位:获取高4位是返回指定字节的高四位,且不改变0,1的排列方式,设字节值为m,具体步骤如下:判断m是否大于0,若大于0,返回m与-16按位与的结果;否则,令x= -128-m,y=x与-16按位与,返回-128-y;
4、获取低4位:获取低4位是返回指定字节的低四位,且不改变0,1的排列方式,设字节值为n,具体步骤如下:判断n是否大于0,若大于0,返回m与15按位与的结果,否则,令x=-128-m,y=x与15按位与,返回y;
5、右移:右移为将字节右移4位,且不改变0,1的排列方式,设字节值为x,具体步骤如下:判断x是否大于0,若大于等于0,返回直接x右移4位的值;否则,令y=x右移4位的值;y=-128-y,m=y与15按位与的值,返回m与8按位或的值。
左移、按位并、获取高4位、获取低4位、右移的运算过程中的数均为有符号数。
本发明的对图片特征进行压缩及解压的方法的优点在于:由于对所有图片特征来说,编码字典相对固定,编码字典可以根据需要自由切换,已编码信息也可以按照新的编码字典重新编码,相比Huffman、LZ77等压缩算法,压缩速度快,实际环境下对长度10000的特征字符串的测试压缩时间稳定在为2毫秒以内,最终压缩比为0.67,压缩效果好。
以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (2)
1.一种对图片特征进行压缩及解压的方法,其特征在于,包括以下步骤:分析储存为字符串的图片特征,确认需要编码的字符种类;根据需要编码字符建立编码字典,每个编码对应4个比特位;根据编码字典对字符串进行压缩和解压;
其中,压缩包括:
将每个字符按照编码字典进行转码,
将每两个字符转码后的结果组成一个新的字节,所有新字节拼接得到转换后的字节数组,
对转换后的字节数组使用字符集转换为字符串;
解压包括:
按照压缩的步骤中选用的字符集将压缩得到的字符串转换为字节数组,
将字节数组的每一个字节拆分为高4位和低4位,
将字节的每个4位使用编码字典翻译为字符,组合字符得到压缩前的图片特征的字符串;
所述字符串的字符包括结束符,所述结束符为字符P;
需要编码字符包括数字0至数字9、逗号、减号、小数点、字符E、字符P,编码对应为二进制下的0-7,9-15;
压缩具体包括以下步骤:
s1、创建一个空的字节数组b;
s2、遍历带待压缩字符串的字符,对每一个字符,执行如下步骤:
s2.1、将字符按照编码字典表转化为编码;
s2.2、判断字符所在的序号的奇偶性,如果序号是奇数则创建一个新的临时字节a,将编码赋值给该临时字节a,如果该字符是字符串中最后一个字符,则临时字节a左移4位,按位并将字节a的低4位用1111编码填充,将临时字节a加入字节数组b的尾部;如果序号是偶数,则将临时字节a左移4位,按位并将编码并入临时字节a的低4位,然后将临时字节a加入字节数组b的尾部,如果该字符是字符串中最后一个字符,则向字节数组b中再追加一个字节8位,以11111111填充;
s2.3、重复s2.1至s2.2,直到遍历完整个字符串;
s3、对字节数组b,使用字符集转换为字符串;
解压具体包括以下步骤:
p1、创建一个空的字符串s;
p2、按照压缩时使用的字符集将带解压的字符串转换成字节数组b;
p3、遍历字节数组b,对每个字节,执行如下步骤:
p3.1:获取高4位,并右移4位得到字节x,使用字节x查询编码字典,得到对应的字符,并将字符追加到字符串s尾部;
p3.2:获取低4位,得到字节y,使用字节y查询编码字段,得到对应的字符,并将字符追加到字符串s尾部;
p3.3:重复步骤p 3.1-p 3.2,直到遍历完整个字节数组;
p4:得到的字符串s的即为压缩前的图片特征的字符串;
所述左移为将字节左移4位,且不改变0,1的排列方式,设字节值为x,具体步骤如下:判断x是否大于7,若小于等于7,返回直接x左移4位的值;否则,返回128-(16*x);
所述按位并是将一个字节的高4位与另一字节的低4位并为一个字节,设需要将b1的高4位与b2的低4位求并,具体步骤如下:判断b1是否大于0,若大于0,返回b1与b2按位或的结果,否则,令x= -128-b1,y=x与b2按位或,返回-128-y;
所述获取高4位是返回指定字节的高四位,且不改变0,1的排列方式,设字节值为m,具体步骤如下:判断m是否大于0,若大于0,返回m与-16按位与的结果;否则,令x= -128-m,y=x与-16按位与,返回-128-y;
所述获取低4位是返回指定字节的低四位,且不改变0,1的排列方式,设字节值为n,具体步骤如下:判断n是否大于0,若大于0,返回m与15按位与的结果,否则,令x= -128-m,y=x与15按位与,返回y;
所述右移为将字节右移4位,且不改变0,1的排列方式,设字节值为x,具体步骤如下:判断x是否大于0,若大于等于0,返回直接x右移4位的值;否则,令y=x右移4位的值;y= -128-y,m=y与15按位与的值,返回m与8按位或的值;
所述左移、按位并、获取高4位、获取低4位、右移的运算过程中的数均为有符号数。
2.根据权利要求1所述的一种对图片特征进行压缩及解压的方法,其特征在于:当需要在数据库中保存字符串,则使用BASE64字符集进行转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711208952.2A CN107911570B (zh) | 2017-11-27 | 2017-11-27 | 一种对图片特征进行压缩及解压的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711208952.2A CN107911570B (zh) | 2017-11-27 | 2017-11-27 | 一种对图片特征进行压缩及解压的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107911570A CN107911570A (zh) | 2018-04-13 |
CN107911570B true CN107911570B (zh) | 2019-11-29 |
Family
ID=61848954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711208952.2A Active CN107911570B (zh) | 2017-11-27 | 2017-11-27 | 一种对图片特征进行压缩及解压的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107911570B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189971A (zh) * | 2018-09-04 | 2019-01-11 | 四川长虹电器股份有限公司 | 一种灵活显示特效数字的方法 |
CN110505218B (zh) * | 2019-08-07 | 2021-11-16 | 中国电子科技集团公司第二十八研究所 | 基于json的栅格数据自适应压缩传输方法及计算机存储介质 |
CN115499506B (zh) * | 2022-09-21 | 2023-04-18 | 广东保伦电子股份有限公司 | 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101095284B (zh) * | 2004-12-28 | 2012-04-18 | 卡西欧电子工业株式会社 | 用于有选择地压缩和解压缩数据的设备与方法 |
CN100430943C (zh) * | 2006-01-09 | 2008-11-05 | 中国科学院自动化研究所 | 一种过程工业历史数据智能两级压缩方法 |
CN101592740A (zh) * | 2006-12-08 | 2009-12-02 | 国家气象信息中心 | 气象数据的北斗卫星自动发送系统 |
CN105282124A (zh) * | 2014-07-24 | 2016-01-27 | 上海未来宽带技术股份有限公司 | 基于xmpp协议的渐进式图片的传输方法及呈现方法 |
CN106454772B (zh) * | 2015-08-13 | 2019-11-26 | 阿里巴巴集团控股有限公司 | 短信息的发送、接收方法及装置 |
-
2017
- 2017-11-27 CN CN201711208952.2A patent/CN107911570B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107911570A (zh) | 2018-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107911570B (zh) | 一种对图片特征进行压缩及解压的方法 | |
CN105207678B (zh) | 一种改进型lz4压缩算法的硬件实现系统 | |
CN108023597B (zh) | 一种数控系统可靠性数据压缩方法 | |
CN109871362A (zh) | 一种面向流式时序数据的数据压缩方法 | |
Sonal | A study of various image compression techniques | |
CN107565970B (zh) | 一种基于特征识别的混合无损压缩方法及装置 | |
CN105915226A (zh) | 一种录波数据的处理方法及系统 | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
CN114466082B (zh) | 数据压缩、数据解压方法、系统及人工智能ai芯片 | |
CN110995396B (zh) | 基于层级结构的用电信息采集系统通信报文的压缩方法 | |
CN112150362A (zh) | 一种图片前处理解决方法 | |
CN111787321A (zh) | 用于边缘端的基于深度学习的图片压缩、解压缩方法及系统 | |
CN116471337A (zh) | 一种基于bwt和lzw的报文压缩与解压缩方法及设备 | |
CN113891088A (zh) | Png图像解压逻辑电路及装置 | |
CN112052916B (zh) | 基于神经网络的数据处理方法、装置以及可读存储介质 | |
CN108829930A (zh) | 三维数字化工艺设计mbd模型的轻量化方法 | |
CN103517022B (zh) | 一种图像数据压缩和解压缩方法、装置 | |
CN102891730B (zh) | 基于bcd码卫星短报文的编码方法和装置 | |
CN112200301B (zh) | 卷积计算装置及方法 | |
CN111858391A (zh) | 一种数据处理过程中优化压缩存储格式的方法 | |
CN114692077A (zh) | 一种矩阵计算装置、方法、系统、电路、芯片及设备 | |
CN113554719A (zh) | 一种图像编码方法、解码方法、存储介质及终端设备 | |
CN112559465A (zh) | 一种日志压缩方法、装置、电子设备及存储介质 | |
KR102134893B1 (ko) | 사전 압축된 텍스트 데이터의 압축 방식을 식별하는 시스템 및 방법 | |
KR101006059B1 (ko) | 정보 압축방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |