读改变未来的九大算法笔记01_数据压缩

news2024/12/27 11:05:22

1. 起源

1.1. 香农–法诺编码(Shannon-Fano Coding)

1.1.1. 克劳德·香农

1.1.1.1. 1948年论文创建信息理论领域的贝尔实验室科学家

1.1.2. 麻省理工学院教授罗伯特·法诺(Robert Fano)

1.2. 霍夫曼编码

1.2.1. 大卫·霍夫曼

1.2.1.1. 法诺的一位学生

1.2.2. 一种基础压缩算法,它被广泛用于通信和数据存储系统

1.2.3. Huffman Coding

1.3. LZ77算法

1.3.1. 以色列计算机科学家亚伯拉罕·伦佩尔(Abraham Lempel)

1.3.2. 雅各布·齐夫(Jacob Ziv)

1.3.3. 1977年

2. 错误印象

2.1. 压缩对绝大多数人没有影响

2.2. 事实

2.2.1. 几乎所有软件都是以压缩格式被下载的

2.2.1.1. 这意味着下载和转移文件的速度要比不压缩时快数倍

2.2.2. 你对着电话讲话时,你的声音也经过了压缩

3. 纠错码和压缩算法是同一枚硬币的两面

3.1. 来自冗余的想法

3.1.1. 如果一个文件有冗余,它就比必要的长度长

3.2. 纠错码能被视为向消息或文件中添加冗余的原则性方法

3.3. 压缩算法正好相反:它们会从消息或文件中移除冗余

3.3.1. 基本思想是发现数据中彼此相同的部分,并运用某种把戏更高效地描述这些部分

3.4. 好的压缩算法会移除低效冗余,而纠错编码会增加另一种更高效的冗余

3.5. 首先压缩一条信息,再往里面添加一些纠错码的做法非常常见

4. 无损压缩

4.1. 终极免费午餐

4.2. 无损压缩算法并不能为所有文件节省大量空间

4.3. 一种好的压缩算法能为特定大类的文件节省大量空间

5. 计算机中的数据压缩

6. 行程长度编码

6.1. Run-length Encoding

6.2. 将重复的“行程”和行程的“长度”编码在了一起

6.2.1. ABABAB

6.2.2. 3AB

6.3. 只在压缩非常特殊的数据种类上有用

6.4. 大部分时候只是和其他压缩算法结合起来使用

6.5. 传真机就将行程长度编码和另一种被称为霍夫曼编码的技术结合

6.6. 传真是黑白文件,文件会被转换成许多点,每个点都是非黑即白。当你按顺序阅读这些点(从左到右,从上到下)时,你会遇到大段白点(背景)以及小段黑点(前景文本或笔迹),这让使用行程长度编码变得非常有效

7. 同前把戏

7.1. Same-as-earlier Trick

7.2. 往回数27个字母,然后复制从那一点开始往下的8个字母

7.2.1. back 27,copy 8

7.2.1.1. b27c8

7.3. FG-FG-FG-FG-FG-FG-FG-FG

7.3.1. FG-FG-FG-FG-b8c8

7.3.2. back 2,copy14

7.3.2.1. 数回2个字母,直至抄到第14个字母

7.3.2.2. b2c14

7.3.2.3. FG-b2c14

7.4. Ab1c250

7.4.1. 251个A

8. 更短符号把戏

8.1. Shorter-symbol Trick

8.2. 如果你使用某样东西足够多次,给它起个简短缩写名是很值得的

8.2.1. United States of America

8.2.2. USA

8.3. 两个常用字母的代码被缩短了,代价是用更大的数字增长了不常用符号的代码

8.3.1. 结果是大部分消息的总长度都有所缩短

9. 实施步骤

9.1. 计算机使用同前把戏传输未经压缩的原文件,让文件中绝大多数重复数据由短得多的指令取代,这些指令会返回并拷贝其他地方的数据

9.2. 计算机会检查传输后的文件,选出经常出现的符号。

9.2.1. 用短数字码代表经常用到的符号,用更长的数字码代表极少用到的符号

10. 有损压缩

10.1. 简单且有效的方法是直接“抛弃”一些数据

10.1.1. 会导致解压后的原始文件发生一些小改变

10.2. 抛弃对成品影响很小的信息

10.3. 压缩缺陷

10.3.1. Compression Artifact

10.3.2. 不仅仅是细节的损失,而且有损压缩的某种方法会在接下来的解压中引入明显的新特征

11. 抛弃把戏

11.1. Leave-it-out Trick

11.2. JPEG图像压缩格式

11.2.1. 整张图片划分为8像素×8像素的小方块

11.2.1.1. 每个方块都会被单独压缩

11.2.2. 如果方块恰好只有一种颜色,整个方块就能由一个数字代表,而计算机就能“抛弃”63个数字

11.2.3. 如果方块的大部分是由一种颜色组成的,只有少数像素的颜色略有不同(也许一片天空的灰度都相同),计算机也可以用单个数字代表方块,让方块得到好的压缩结果,并在稍后解压时只出现少量错误

11.2.4. 如果8×8方块从一种颜色渐变为另一种颜色(比如左边是深灰色,右边是浅灰色),那么64个数字也许能被压缩到只有2个:一个深灰的值和一个浅灰的值

11.3. 音频压缩格式

11.3.1. 音频也会被划分成“块”,每个“块”都会被单独压缩

11.3.2. 能利用与人耳有关的已知事实

11.3.2.1. 有些种类的声音对人只有很小的影响或没有影响

11.3.2.2. 压缩算法能在不降低输出质量的情况下消除这些声音

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/600009.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python关联图简介

Python关联图简介 Python语言是一种非常流行和广泛使用的语言,可用于各种用途,包括数据分析和数据可视化。在数据可视化方面,Python有许多强大的库和工具,可以用来创建各种类型的图表和图形。其中之一是Python关联图。 在本篇文…

LNMP应用

安装 Nginx 服务 systemctl stop firewalld systemctl disable firewalld setenforce 0 1、安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make2、创建运行用户 useradd -M -s /sbin/nologin nginx3、编译安装 cd /opt tar zxvf nginx-1.12.0.tar.gz -C /op…

chatgpt赋能Python-python关联分析算法

介绍 Python是一种高级、通用、直译式编程语言。在数据科学和机器学习领域,它已成为首选语言之一。它有很多强大的库和框架,可以帮助数据分析师、科学家和工程师处理大量数据。Python关联分析算法就是其中之一。 Python关联分析算法可以帮助我们在数据…

MobileNetv1、MobileNetv2、MobileNetv3网络讲解

MobileNetv1、MobileNetv2、MobileNetv3网络讲解_mobilenetv3和mobilenetv2_I松风水月的博客-CSDN博客MobileNetv1、MobileNetv2、MobileNetv3网络讲解https://blog.csdn.net/qq_38683460/article/details/127409816

ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)

ChatGPT工作提效系列文章目录 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式ChatGPT工作提效之小鹅通二次开发批量API对…

人体姿态估计与MMPose

姿态估计:从给定的图像中识别人脸、手部、身体等关键点 输入:图像I 输出:所有关键点的像素坐标 2D姿态估计:在图像上定位人体关键点的坐标 基本思路: 1.将关键点检测建模为回归问题,让模型直接回归关键点…

共享打印机,报错0x0000011b不重装系统如何能使用(教程)

连接共享打印机0x0000011b共享打印机报错大家都遇到过吧?下面介绍个小方法供大家参考一下。 1.下载对应的打印机驱动并安装 2.1手动添加打印机 2.2点击‘我需要的打印机不在列表中’ 2.3选择手动设置添加本地打印机 2.4创建新的端口,如图所示 这里输入共…

I.MX6ull CP15协处理器

CP15 CP15协处理器是ARM处理器中一门重要的协处理器,主要用来控制 cache、TCM( tiny code memory)和存储器管理。 CP15协处理器包含16个32位的寄存器,其编号为0~15,其中CP15寄存器0是预留的,所以CP15实际有…

C#:在word表格中的某一行下面插入新行

今天要讲的文章是关于Word开发的相关知识,以前开发的过程中关于办公类文件的开发,做过PDF和Excel以及TXT或者是XML等文件的开发。没有做过Word文件的开发,刚接触了一些关于Word方面开发的知识下面分享给大家。 首先开发Word,需要…

chatgpt赋能python:Python免费开发环境介绍

Python免费开发环境介绍 Python是一种简单易学的编程语言,它有着很多应用场景,例如Web开发、数据科学、自动化脚本等等。对于想要学习Python的人来说,选择一个好的开发环境是至关重要的。由于Python是免费的,因此有许多免费的Pyt…

chatgpt赋能python:Python入侵WiFi网络:了解攻击方法和防范措施

Python入侵WiFi网络:了解攻击方法和防范措施 WiFi网络是现代生活中必不可少的组成部分,而Python编程语言可以用于许多WiFi网络应用,包括网络管理、渗透测试等。然而,Python也可以被黑客用于入侵WiFi网络,从而窃取信息…

chatgpt赋能python:Python关联规则Apriori算法

Python关联规则Apriori算法 介绍 Apriori算法是一个常用的关联规则挖掘算法,用于挖掘商品之间的关联关系。该算法的基本思想是先通过扫描数据集,找到满足最小支持度的所有项集,再通过计算置信度,从而得到满足最小置信度的强关联…

mysql查询语句执行过程及运行原理命令

Mysql查询语句执行原理 数据库查询语句如何执行? DML语句首先进行语法分析,对使用sql表示的查询进行语法分析,生成查询语法分析树。语义检查:检查sql中所涉及的对象以及是否在数据库中存在,用户是否具有操作权限等视…

(业务向) 数据分析知识 + 产品

数据分析方法 趋势分析法、对比分析法、多维分解法、用户细查、漏斗分析、留存分析、AB测试法、4P理论、PESTEL理论、SWOT分析、5W2H理论、逻辑树理论、用户使用行为理论、AARRR模型 数据指标体系 1. 概述 指标,是反映某种事物或现象,描述在一定时间和…

MAE(Masked Autoencoders) 详解

MAE详解 0. 引言1. 网络结构1.1 Mask 策略1.2 Encoder1.3 Decoder2. 关键问题解答2.1 进行分类任务怎么来做?2.2 非对称的编码器和解码器机制的介绍2.3 损失函数是怎么计算的?2.4 bert把mask放在编码端,为什么MAE加在解码端? 3. 总…

chatgpt赋能python:Python做词云:从入门到精通

Python做词云:从入门到精通 如果你对数据可视化有所追求,那么词云图一定会是你的首选之一。Python作为一种常用的编程语言,在这个领域也有着广泛的应用。本文将介绍Python做词云的方法,从入门到精通,让你轻松掌握这一…

伍尔特IT公司利用SNP软件实现SAP系统现代化

近日,SAP生态伙伴中的自动化数据迁移和数据管理软件提供商SNP公司,正在支持伍尔特IT公司(Wrth IT) 向SAP S/4HANA转型。伍尔特集团的全球IT服务提供商计划首先整合其现有的ECC系统,然后进行标准化,最后将清…

数据结构与算法课程设计---最小生成树的应用

文章目录 一.课题概述1.问题2.分析3.目标 二.图的实现1.图的存储结构2.图的基本操作2.1添加顶点2.2添加边弧2.3Kruskal算法2.4Prim算法 三.堆的实现1.堆的概念及结构2.堆的基本操作2.1入堆(向上调整算法)2.2出堆(向下调整算法) 四…

【PWN · ret2libc】[CISCN 2019东北]PWN2

虽然最近的ret2libc的做题基本一致(毕竟类型都是ret2libc嘛),但是对于本蒟蒻现阶段来说,还是有必要记录一下的 前言 持续巩固ret2libc的做题范式/基本套路能力,同时也发现,reverse与pwn密不可分的联系。 一…

chatgpt赋能python:Python做表格的优势及应用

Python做表格的优势及应用 在数据处理与可视化的领域,表格是最常见的形式之一,也是经常被用来展示数据的有效方式。Python作为一种流行的编程语言,在数据处理方面有着强大的功能,同时也提供了许多生成表格的库与工具。本文将会介…