CN101174328B - 一种二值图像编解码方法 - Google Patents
一种二值图像编解码方法 Download PDFInfo
- Publication number
- CN101174328B CN101174328B CN2006101618473A CN200610161847A CN101174328B CN 101174328 B CN101174328 B CN 101174328B CN 2006101618473 A CN2006101618473 A CN 2006101618473A CN 200610161847 A CN200610161847 A CN 200610161847A CN 101174328 B CN101174328 B CN 101174328B
- Authority
- CN
- China
- Prior art keywords
- length
- image
- data
- continuity
- point
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种对二值图像进行压缩、解压缩的技术,特别是一种在运行速度较慢、存储空间有限的单片机系统上对二值图像进行压缩、解压缩的方法。本发明所述基于单片机系统的二值图像编解码方法包括编码过程和解码过程;对于编码过程,首先生成压缩文件的文件头;第二步,提取图像相关数据存入文件头内;第三步,对原始图像进行S形扫描,生成编码值;最后,将编码值写入存储空间,编码过程结束;对于解码过程,它是编码过程的逆过程,以相应的解码方式对数据进行解码,最终将图像还原。本发明通过合理分配表示连续数据长度的位数,在基于单片机系统中,针对特定的图像能够达到优越的图像编码效率。
Description
技术领域
本发明涉及一种对二值图像进行压缩、解压缩的技术,特别是一种在运行速度较慢、存储空间有限的单片机系统上对二值图像进行压缩、解压缩的方法。
背景技术
图像的压缩、解压缩技术又称为图像编解码技术,二值图像的压缩、解压缩方法是图像压缩、解压缩方法中的一种。图像的编码方法经过多年的发展,已经有了一些成熟的技术和方法,如游程编码、哈夫曼编码、算术编码、离散余弦变换编码等,这些编码或其组合的编码方法在32位计算机上已被普遍采用,并可以取得较好的压缩效果,但在基于8位单片机的嵌入式系统中,针对特定的被压缩对象,还可以探索效率更高的图像编码方法。
对于数字化后的图像数据,编码后存储的不是图像数据每一位的值,而是数据连续的长度,这是压缩最基本的方法。数据压缩的一个关键问题就是表示数据连续长度的位数,这个位数是压缩率的关键。如果位数确定得比较少,则表示很长的连续数据就需要很多条记录;而位数过大,对于间隔较多的部分就显得不大经济。从位数分配的合理性来说,哈夫曼编码是最优的,但是,哈夫曼编码需要传递哈夫曼表,这个开销可能会大大降低压缩率,并且,哈夫曼编码由于以位为基础,解码速度相对较慢。
评价图像编码方法的优劣是在特定的平台上运行不同的编码方法,考察各种方法在压缩效率以及完成压缩所需要的时间。在基于单片机的系统中,由于系统的外围资源有限,在压缩效率和压缩时间指标上要求尤其严格,需要采用高效的编码方法,同时,由于系统本身的资源有限,在综合考虑编码效率和压缩、解压缩时间方面,具有复杂算法的编码方法不一定能取得良好的效果,因此需要寻找适合基于单片机系统特点的编码方法。
发明内容
本发明的目的在于通过合理选取表示数据连续长度的位数,针对二值图像在基于单片机系统上提供一种高效的图像压缩编码方法,这种编码方法使得编码效率和编、解码速度针对特定的对象达到更优的效果,应用于单片机系统中时,其编码效率及编、解码速度较之于传统的编码方法有一定程度的提高。
本发明是按如下的技术方案来实现的:本发明所述基于单片机系统的二值图像编解码方法包括编码过程和解码过程;对于编码过程,第一步,生成压缩文件的文件头;第二步,将标识码以及从图像中提取的图像宽度、图像高度、背景色、前景色等数据存入文件头内;第三步,对原始图像进行S形扫描,以获得不同的连续点长度;第四步,根据连续点长度的大小,判断需采用的编码位数,不同的连续点长度对应于不同的编码方式生成编码值;第五步,将编码值写入文件头以后的存储空间内,并将压缩文件的长度值存入文件头内的相应位置,编码过程结束;对于解码过程,它是编码过程的逆过程,根据文件头得到图像的高度、宽度、背景色、前景色等图像数据,再根据数据内容对数据进行解码,最终将图像还原。
所述文件头由16个字节构成,第1、2字节存储标识码,第3、4字节存储图像宽度数据,第5、6字节存储图像高度数据,第7~10字节存储压缩文件的长度值,第11~13字节存储背景色数据,第14~16字节存储前景色数据。
所述图像宽度和图像高度,这两个数据分别以16位的无符号整数大端模式进行存储。
所述背景色和前景色,定义图像左上角的像素颜色为图像的背景色,而另一种颜色就为图像的前景色,这两种颜色值均以24位YCbCr格式进行存储。
所述S型扫描,其扫描过程是从图像左上角的像素点开始,每一次遇到不同颜色的点,记录本次扫描过的连续点的长度,并根据连续点的长度选择不同的编码方式进行编码;当连续点的长度达到67496,还没有颜色值的改变时,则重新进行一次编码;当扫描达到图像末尾时,再进行一次编码并结束扫描。
所述编码方式是根据连续点长度的不同,采用不同的编码方法,本发明涉及六种编码方式;编码方式一,当连续点的长度在1~14之间时,采取4位编码,编码值=(长度-1);编码方式二,当连续点的长度在15~41点之间时,采用8位或12位变长编码,此变长编码的前4位固定为1110,代表14个连续点,当剩余长度小于15个时,采取8位编码,后4位采用上面1~14个点的编码方式进行,如果剩余长度大于等于15,则采用12位编码,前8位固定为11101110,代表28个连续点,剩余点以1~14的编码方式进行编码;编码方式三,当连续点的长度在42~169点之间时,采用12位编码,此时,前5位固定为11110,后7位编码值=(长度-42);编码方式四,当连续点的长度在170~1960点之间时,采用16位编码,此时,前5位固定为11111,后11位编码值=(长度-170);编码方式五,当连续点的长度在1961~67495点之间时,采用24位编码,此时,前8位固定为11111111,后16位编码值=(长度-1961);编码方式六,当连续点的长度达到67496个点时,进行一次编码,编码位数为24位,编码值为111111111111111111111111,此时意味着出现了67495个连续点,并从第67496个点开始重新编码。
本发明的积极效果如下:本发明是一种二值图像编、解码方法,通过对需压缩原始图像的扫描,获取图像数字化后的数据连续“0”或连续“1”的长度,通过合理分配表示这些连续数据长度的位数,在基于单片机系统中,针对特定的图像能够达到优越的图像编码效率。
附图说明
图1是本发明头文件结构图
图2是本发明S形扫描示意图
图3是本发明编码过程示意图
图4是本发明编码方式一示意图
图5是本发明编码方式二示意图
图6是本发明编码方式三示意图
图7是本发明编码方式四示意图
图8是本发明编码方式五示意图
图9是本发明编码方式六示意图
图10是本发明编码流程图
图11是本发明解码流程图
具体实施方式
本发明所述基于单片机系统的二值图像编解码方法包括编码过程和解码过程;对于编码过程,第一步生成压缩文件的文件头,文件头结构见图1;第二步,将标识码以及从图像中提取的图像宽度、图像高度、背景色、前景色等数据存入文件头内;第三步,对原始图像进行S形扫描,扫描方式见图2,以获得不同的连续点长度;第四步,根据连续点长度的大小,判断需采用的编码位数,不同的连续点长度对应于不同的编码方式生成编码值;第五步,将编码值写入文件头以后的存储空间内,并将压缩文件的长度值存入文件头的内,编码过程结束,编码过程示意图见图3,编码程序流程图见图10;对于解码过程,它是编码过程的逆过程,根据文件头得到图像的高度、宽度、背景色、前景色等数据,再根据数据内容对数据进行解码,最终将图像还原,解码程序流程图见图11。
所述文件头由16个字节构成,见图1,第1、2字节存储标识码,第3、4字节存储图像宽度数据,第5、6字节存储图像高度数据,第7~10字节存储压缩文件的长度值,第11~13字节存储背景色数据,第14~16字节存储前景色数据。
所述图像宽度和图像高度,这两个数据分别以16位的无符号整数大端模式进行存储。
所述背景色和前景色,定义图像左上角的像素颜色为图像的背景色,而另一种颜色就为图像的前景色,这两种颜色值均以24位YCbCr的格式进行存储。
所述S型扫描,见图2,其扫描过程是从图像左上角的像素点开始,每一次遇到不同颜色的点,记录本次扫描过的连续点的长度,并根据连续点的长度选择不同的编码方式进行编码;当连续点的长度达到67496还没有颜色值的改变时,则重新进行一次编码;当扫描达到图像末尾时,再进行一次编码并结束扫描。
所述编码方式是根据连续点长度的不同,采用不同的编码方法,本发明涉及以下几种编码方式:
编码方式一,当连续点的长度在1~14之间时,采取4位编码,编码值=(长度-1);例如图4所示的图像元素,起始位置上的黑色方块的连续长度为4,那么其编码值为0011,后面的白色方块为14个连续值,其编码值则为1101。
编码方式二,当连续点的长度在15~41点之间时,采用8位或12位变长编码,此变长编码的前4位固定为1110,代表14个连续点,当剩余长度小于15个时,采取8位编码,后4位采用上面1~14个点的编码方式进行,如果剩余长度大于等于15,则采用12位编码,前8位固定为11101110,代表28个连续点,剩余点以1~14的编码方式进行编码;例如图5所示的图像元素,起始位置上黑色图像的连续长度为21,在15~41之间,编码1110后,剩余点为7个,故可以用上面编码方式一的编码格式进行编码,编码值为0110,故整体的编码为11100110;后面的白色方块长为40个,连续点的长度在15~41点之间,编码1110后,剩余为26个点,大于等于15个,这时继续编码1110,此后剩余12个点,再根据编码方式一进行编码,编码值为1001,故整体的编码为111011101001。
编码方式三,当连续点的长度在42~169点之间时,采用12位编码,此时,前5位固定为11110,后7位编码值=(长度-42);例如图6所示的图像元素,黑色点的长度为66个,编码为11110001100。
编码方式四,当连续点的长度在170~1960点之间时,采用16位编码,此时,前5位固定为11111,后11位编码值=(长度-170);例如图7所示的图像元素,黑色点的长度为201个,编码为1111100000010111。
编码方式五,当连续点的长度在1961~67495点之间时,采用24位编码,此时,前8位固定为11111111,后16位编码值=(长度-1961);例如图8所示的图像元素,黑色点的长度为4000个,编码为111111110000011111110111。
编码方式六,当连续点的长度达到67496个点时,进行一次编码,编码位数为24位,编码值为111111111111111111111111,此时意味着出现了67495个连续点,并从第67496个点开始重新编码。例如图9所示的图像元素,这时连续点的长度为70000个,当在67496个时,编码为111111111111111111111111,此时剩余2504个点根据编码方式五的方法编成111111110000001000011111。
编码及解码流程:编码程序流程图见图10,解码程序流程图见图11。
Claims (4)
1.一种基于单片机系统的二值图像编解码方法,包括编码过程和解码过程,其特征在于:所述编码过程是,第一步,生成压缩文件的文件头;第二步,将标识码以及从图像中提取的图像宽度、图像高度、背景色、前景色数据存入文件头内;第三步,对原始图像进行S形扫描,以获得不同的连续点长度,其扫描过程是从图像左上角的像素点开始,每一次遇到不同颜色的点,记录本次扫描过的连续点的长度,并根据连续点的长度选择不同的编码方式进行编码;当连续点的长度达到67496,还没有颜色值的改变时,则重新进行一次编码;当扫描达到图像末尾时,再进行一次编码并结束扫描;第四步,根据连续点长度的大小,判断需采用的编码位数,不同的连续点长度对应于不同的编码方式生成编码值,有六种编码方式:编码方式一,当连续点的长度在1~14之间时,采取4位编码,编码值=(长度-1),编码方式二,当连续点的长度在15~41点之间时,采用8位或12位变长编码,此变长编码的前4位固定为1110,代表14个连续点,当剩余长度小于15个时,采取8位编码,后4位采用上面1~14个点的编码方式进行,如果剩余长度大于等于15,则采用12位编码,前8位固定为11101110,代表28个连续点,剩余点以1~14的编码方式进行编码,编码方式三,当连续点的长度在42~169点之间时,采用12位编码,前5位固定为11110,后7位编码值=(长度-42)、编码方式四,当连续点的长度在170~1960点之间时,采用16位编码,前5位固定为11111,后11位编码值=(长度-170),编码方式五,当连续点的长度在1961~67495点之间时,采用24位编码,前8位固定为11111111,后16位编码值=(长度-1961),编码方式六,当连续点的长度达到67496个点时,进行一次编码,编码位数为24位,编码值为111111111111111111111111,表示出现了67495个连续点,并从第67496个点开始重新编码;第五步,将编码值写入文件头以后的存储空间内,并将压缩文件的长度值存入文件头内,编码过程结束;对于解码过程,它是编码过程的逆过程,根据文件头得到图像的高度、宽度、背景色、前景色图像数据,再根据数据内容对数据进行解码,最终将图像还原。
2.根据权利要求1所述的基于单片机系统的二值图像编解码方法,其特征在于:所述文件头由16个字节构成,第1、2字节存储标识码,第3、4字节存储图像宽度数据,第5、6字节存储图像高度数据,第7~10字节存储压缩文件的长度值,第11~13字节存储背景色数据,第14~16字节存储前景色数据。
3.根据权利要求1所述的基于单片机系统的二值图像编解码方法,其特征在于:所述图像宽度和图像高度,这两个数据分别以16位的无符号整数大端模式进行存储。
4.根据权利要求1所述的基于单片机系统的二值图像编解码方法,其特征在于:所述背景色和前景色,定义图像左上角的像素颜色为图像的背景色,而另一种颜色就为图像的前景色,这两种颜色值均以24位YCbCr的格式进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101618473A CN101174328B (zh) | 2006-11-01 | 2006-12-06 | 一种二值图像编解码方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200620134235.0 | 2006-11-01 | ||
CN200620134235 | 2006-11-01 | ||
CN2006101618473A CN101174328B (zh) | 2006-11-01 | 2006-12-06 | 一种二值图像编解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101174328A CN101174328A (zh) | 2008-05-07 |
CN101174328B true CN101174328B (zh) | 2012-04-11 |
Family
ID=39422822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101618473A Expired - Fee Related CN101174328B (zh) | 2006-11-01 | 2006-12-06 | 一种二值图像编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101174328B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5045619B2 (ja) * | 2008-09-08 | 2012-10-10 | ソニー株式会社 | 画像処理装置および方法、並びにプログラム |
JP5157768B2 (ja) * | 2008-09-08 | 2013-03-06 | ソニー株式会社 | 画像処理装置および方法、並びにプログラム |
CN102523444B (zh) * | 2011-11-22 | 2015-10-14 | 惠州市德赛西威汽车电子股份有限公司 | 一种单色位图压缩方法及其系统 |
CN105516540B (zh) * | 2015-12-14 | 2018-09-14 | 天津津芯微电子科技有限公司 | 二值图像的压缩方法及装置 |
CN111145465B (zh) * | 2018-11-05 | 2022-02-08 | 厦门拾数科技有限公司 | 电子打印机系统 |
CN110264533A (zh) * | 2019-06-25 | 2019-09-20 | 北京慧眼智行科技有限公司 | 一种数据传输方法、装置及电子设备 |
CN112232453B (zh) * | 2019-06-27 | 2022-04-12 | 北汽福田汽车股份有限公司 | 拆机检测装置、终端设备及车辆 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1746899A (zh) * | 2004-09-07 | 2006-03-15 | 佳能株式会社 | 用于检测文档图像的歪斜的方法、设备和存储介质 |
CN1812474A (zh) * | 2000-05-24 | 2006-08-02 | 西尔弗布鲁克研究有限公司 | 具有标签编码器的打印控制器 |
-
2006
- 2006-12-06 CN CN2006101618473A patent/CN101174328B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1812474A (zh) * | 2000-05-24 | 2006-08-02 | 西尔弗布鲁克研究有限公司 | 具有标签编码器的打印控制器 |
CN1746899A (zh) * | 2004-09-07 | 2006-03-15 | 佳能株式会社 | 用于检测文档图像的歪斜的方法、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101174328A (zh) | 2008-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101174328B (zh) | 一种二值图像编解码方法 | |
CN1684495B (zh) | 图像和视频的预测无损编码 | |
CN100463488C (zh) | 用于渐进地变换并编码数字数据的系统和方法 | |
WO2013108639A1 (en) | High throughput coding for cabac in hevc | |
CN1223057A (zh) | 静画和动画编码的量化矩阵 | |
CN106170921A (zh) | 涉及符号压缩的数据的源编码和解码方法及装置 | |
CN101253775A (zh) | 用于视频错误恢复的编解码方法及装置 | |
CN103262534A (zh) | 改进熵编码和解码的方法及装置 | |
CN116489369B (zh) | 一种行车数字录像压缩处理方法 | |
CN110383696B (zh) | 用于对超像素边界进行编码和解码的方法和装置 | |
CN1195806A (zh) | 图像处理装置和图像处理方法 | |
JP4902474B2 (ja) | 画像処理装置及び画像処理方法 | |
CN100425066C (zh) | 图像压缩的方法 | |
US6791543B2 (en) | Forming method for structuring polygonal mesh data and apparatus, and storage medium | |
Tischer et al. | Context-based lossless image compression | |
US5966467A (en) | System for compressing and decompressing binary representations of dithered images | |
CN107682699B (zh) | 一种近无损图像压缩方法 | |
CN115102934B (zh) | 点云数据的解码方法、编码方法、装置、设备及存储介质 | |
CN108235038B (zh) | 图像编解码压缩的方法和装置 | |
Liu et al. | Edge-based inpainting and texture synthesis for image compression | |
KR20060128586A (ko) | 영상 부호화 및 복호화 장치와, 그 방법, 및 이를 수행하기위한 프로그램이 기록된 기록 매체 | |
CN108024114A (zh) | 一种基于标志位参数修改的大容量无损hevc信息隐藏方法 | |
CN113422965A (zh) | 一种基于生成对抗网络的图像压缩方法及装置 | |
CN101267557A (zh) | 一种用复合矢量量化进行图像压缩的方法 | |
CN113573078B (zh) | 一种基于卷积神经网络增强avs帧内解码的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120411 Termination date: 20161206 |
|
CF01 | Termination of patent right due to non-payment of annual fee |