首页 > 其他分享 >压缩数据

压缩数据

时间:2024-02-21 12:44:05浏览次数:18  
标签:编码 字节 17 哈夫曼 压缩 数据

压缩文件扩展名:LZH
文件储存的基本单位:1字节=8位
文件内容用“数据的值*循环次数”是RLE算法
Windows计算机使用的SHIFT JIS字符编码,1个半角英数用1字节表示。
BMP格式的图像文件没有压缩过。
压缩后能复原的是可逆压缩,无法复原是非可逆压缩

文件是将数据存储在磁盘等存储媒介得一种形式。存储数据单位是字节(B=Byte)

RLE算法机制
把文件内容用“数据*重复次数” 例如:AAAAAABBCDDEEEEEF-A6B2C1D2E5F1
原文件17字节 压缩后12字节 即文件压缩了12%17 70%

RLE缺点:实际的文本文件,同样字符多次重复的情况不多见,RLE只能针对相同数据重复出现的情况

第二个压缩技巧:哈夫曼算法

莫尔斯编码:根据字符种类不同,莫尔斯编码符号的长度也不同,1为短点(嘀),11为长点(嗒)

莫尔斯编码把一般文本中出现频率高的字符用短编码表示

二叉树实现哈夫曼编码
用哈夫曼算法压缩过的文件,存储着哈夫曼编码信息和压缩过的数据
哈夫曼树:从叶生枝,然后生根。使用哈夫曼树,出现频率越高的数据所占用的数据位就越少。最终数字汇集在一个点上,该点就是根,即哈夫曼树完成,按照从根到底,左边的线处写0,右边写1.按顺序写就可以得到哈夫曼编码

例如: AAAAAABBCDDEEEEEF
频率(6)(5)(2)(2)(1)(1)
数据 A E B D C F
00 01 100 101 110 111
最终结果四十位 5字节 原本17字节 压缩率5%17=29%

图像文件使用目的是把图像数据输出到显示器
JPEG非可逆压缩,还原后图像信息一部分模糊
GIF虽是可逆压缩,但有色数不超过256色限制
TIFF不模糊但是比原始的BMP文件还大,因为TIFF格式由各种标签信息

标签:编码,字节,17,哈夫曼,压缩,数据
From: https://www.cnblogs.com/zhhhhh/p/18024943

相关文章

  • django分页后过滤数据,要进行补全数据的方法
    项目开发中遇到一个问题:当分页后还要进行数据处理,可能导致原本分页返回的数据不足,那么需要从另外一页进行数据补全(也要数据进行过滤)。自己写了一个小的组件:defdata_paging(queryset,page,limit,deal_func=None,*args,**kwargs):#创建分页器对象paginator=......
  • 亲自尝试压缩数据
    压缩数据,我们常用的方式由zip等进行压缩。我们进行压缩是因为,有些文件不方便存储。1.先了解保存文件中的数据形式:文件以字节为单位保存。文件是字节数据的集合体。无论在任何情况下,文件中的字节数据都是连续储存的。2.认识RLE算法的机制:RLE就是把文件内容用“数据*重复次数”的......
  • 2024年2月中国数据库排行榜:PolarDB夺魁首登顶,TiDB攀升回探花
    银装素裹覆大地,春意初醒待来临。2024年2月墨天轮中国数据库流行度榜单出炉,表现最亮眼的无疑是PolarDB,其自23年7月以来一路高歌猛进,此次更是一举夺魁,彰显了云原生数据库的蓬勃发展态势,OceanBase、TiDB紧接拿下榜眼探花。榜单前十中,开源与商业平分秋色、各家数据库乘云直上,你追我赶......
  • Python数据结构与算法05——插入排序 shell排序
    插入排序 definsrt_sort(aimlist):n=len(aimlist)forcurinrange(1,n):i=curwhilei>0:ifaimlist[i]<aimlist[i-1]:aimlist[i],aimlist[i-1]=aimlist[i-1],aimlist[i]i-=1e......
  • 龙年-数据库时间类型字段精度问题 datetime类型的精度
    数据库时间类型字段精度问题理论DatetimeTimestamp保存毫秒防止精度丢失数据库字段为DATETIME(3)时可以保存毫秒。工程经验当数据库为MariaDb10.x.x,则需要jdbc驱动需更换为mariadbconnnector,或者Mariadb相应Mysql数据库版本高于5.6.4则无需更改。DATETIME(3)......
  • SQL查询数据,要求日期不间断,没有数据的日期显示0
    <selectid="getTaskPublish"resultType="java.util.Map">SELECTcount(u.id)AScount,s.dateFROM(SELECTdate_add(#{date},INTERVAL@i:=@i+1DAY)ASdateF......
  • 数据可视化为什么能帮助我们建设智慧社区?
    在迅猛发展的科技时代,数据可视化作为一种强大的工具,为智慧社区的建设提供了无限可能。它不仅改变了我们对信息的获取方式,更为社区管理、居民生活等方面注入了新的活力。下面我就以可视化从业者的角度,简单聊聊这个话题。数据可视化首先为社区管理提供了直观的决策支......
  • 实例详解在Go中构建流数据pipeline
    本文分享自华为云社区《Go并发范式流水线和优雅退出Pipeline与Cancellation》,作者:张俭。介绍Go的并发原语可以轻松构建流数据管道,从而高效利用I/O和多个CPU。本文展示了此类pipelines的示例,强调了操作失败时出现的细微之处,并介绍了干净地处理失败的技术。什么是pipeli......
  • R语言k-Shape时间序列聚类方法对股票价格时间序列聚类|附代码数据
    原文链接:http://tecdat.cn/?p=3726最近我们被客户要求撰写关于时间序列聚类的研究报告,包括一些图形和统计输出。本文我们将使用k-Shape时间序列聚类方法检查与我们有业务关系的公司的股票收益率的时间序列企业对企业交易和股票价格在本研究中,我们将研究具有交易关系的公司的......
  • Python数据结构与算法04——栈与队列
    栈的实现:classStack(object):def__init__(self):self.__list=[]defpush(self,item):self.__list.append(item)defpop(self):returnself.__list.pop()defpeek(self):ifself.__list:returnself._......