- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
!利用游程编码实现二值图像压缩.
算术编码、游程编码都属于无损压缩。
算术编码(Arithmetic coding)
算术编码是一种无损数据压缩方法,也是一种熵编码的方法。和其它熵编码方法不同的地方在于,其他的熵编码方法通常是把输入的消息分割为符号,然后对每个符号进行编码。而算术编码是直接把整个输入的消息编码为一个数,一个满足(0.0 ≤ n 1.0)的小数n。
算术编码用到两个基本的参数:符号的概率和它的编码间隔。信源符号的概率决定压缩编码的效率,也决定编码过程中信源符号的间隔,而这些间隔包含在0到1之间。
算术编码的算法思想如下:(1)对一组信源符号按照符号的概率从大到小排序,将[0,1)设为当前分析区间。按信源符号的概率序列在当前分析区间划分比例间隔。(2)检索“输入消息序列”,锁定当前消息符号(初次检索的话就是第一个消息符号)。找到当前符号在当前分析区间的比例间隔,将此间隔作为新的当前分析区间。并把当前分析区间的起点(即左端点)指示的数“补加”到编码输出数里。当前消息符号指针后移。(3)仍然按照信源符号的概率序列在当前分析区间划分比例间隔。然后重复第二步。直到“输入消息序列”检索完毕为止。(4)最后的编码输出数就是编码好的数据。
在算术编码中需要注意几个问题:(1)由于实际计算机的精度不可能无限长,运算中出现溢出是一个明显的问题,但多数及其都有16位,32位或者64位的精度,因此这个问题可以使用比例缩放方法解决。(2)算术编码器对整个消息只产生一个码字,这个码字是在间隔[0,1)中的一个实数,因此译码器在接受到表示这个实数的所有位之前不能进行译码。(3)算术编码是一种对错误很敏感的编码方法,如果有一位发生错误就会导致整个消息译错。
算术编码可以是静态的或者是自适应的。在静态算术编码中,信源符号的概率是固定的。在自适应算术编码中,信源符号的概率根据编码时符号出现的频率动态地进行修改,在编码期间估算信源符号概率的过程叫做建模。需要开发动态算术编码的原因是因为事前知道精确的信源概率是很难的,而且不切实际。当压缩消息时,不能期待一个算术编码器获得最大的效率,所能做的最有效的方法是在编码过程中估算概率。因此动态建模就成为确定编码器压缩效率的关键。
游程编码(RLE编码——Run Length Encoding)
游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。对于二值图有效。 行程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号(连续符号构成了一段连续的“行程”。行程编码因此而得名),使符号长度少于原始数据的长度。
例如:5555557777733322221111111
行程编码为:(5,6)(7,5)(3,3)(2,4)(l,7)。可见,行程编码的位数远远少于原始字符串的位数。
在对图像数据进行编码时,沿一定方向排列的具有相同灰度值的像素可看成是连续符号,用字串代替这些连续符号,可大幅度减少数据量。 行程编码分为定长行程编码和不定长行程编码两种类型。 行程编码是连续精确的编码,在传输过程中,如果其中一位符号发生错误,即可影响整个编码序列,使行程编码无法还原回原始数据。
游程编码所能获得的压缩比有多大,主要取决于图像本身的特点。如果图像中具有相同颜色的图像块越大,图像块数目越少,获得的压缩比就越高。反之,压缩比就越小。
利用游程编码实现二值图像压缩
文章出处:/course/3_program/c++/cppjs/2008331/107771.html
编码方案设计:
按位进行压缩,对二进制流进行超前扫描,判断是否值得压缩,如果压缩有意义,则压缩;否则保持原始数据。
系统实现方案:
总体思想:将图像文件以二进制方式读入缓冲区,把二进制位转制为整数,对缓冲区数据进行编码,以特定的格式(unsigned short)写入输出文件;解压缩过程反过来即可。
压缩文件存储格式:
以每两个字节为单位储存(即每次写入16位unsigned short类型)。
0 1 2~15
...
第0位 存储压缩信息(1压缩;0不压缩,原始数据)
第1位 如果第0位为1(压缩),此位标明字符类别(0或1);如果第0位为0(原始数据),此位无意义,默认为0
后14位 存储字符数量或者原始数据的值
算法实现:
缓冲区:定义缓冲区为一维char数组,因为只用14位来统计数量,所以缓冲区总字符量即维数应小于或等于214(16384)。
判断可压缩性:对当前指针位置,超前扫描16位,如果这16位全相同(例:11111111111111或00000000000000),那么可压缩性为真,从当前位置开始计数并指针前移,直到相同序
您可能关注的文档
最近下载
- 甘肃省暴雨图集新版.pdf VIP
- 课题开题报告:学科素养导向的道德与法治“教-学-评”一体设计研究.docx VIP
- 马工程《民法学》(第二版)下册参考教学课件07-11民法学-第七编 侵权责任法 第十一章.pptx VIP
- 小学英语核心素养培养与跨学科融合教学策略研究教学研究课题报告.docx
- TZS 0678—2025《生物安全实验室工作人员本底血清样本管理规范》(水印版).pdf VIP
- 河南省信阳市2025年某中学小升初入学分班考试语文考试真题含答案.docx VIP
- 马工程《民法学》(第二版)下册参考教学课件07-10民法学-第七编 侵权责任法 第十章.pptx VIP
- (高清版)DB13(J)∕T 8453-2021 住宅工程常见质量问题控制标准.pdf VIP
- 2024年水浒传知识点及考点总结.docx VIP
- 大学校园内急救知识培训.pptx VIP
原创力文档


文档评论(0)