读数据压缩入门笔记01_数据压缩导读

news2025/2/27 23:04:01

 

1. 建立在数据压缩上的世界

1.1. 数据压缩技术最让人惊异之处在于,它与过去40年里个人计算的很多重大改变有关,但很少有人知道这一点

1.2. 我们当下生活在其中的这个计算世界,完全建立在数据压缩算法之上

1.3. 图像的压缩

1.3.1. 1978年

1.3.2. 图像语料库

1.3.2.1. 1972年11月《花花公子》杂志中莱娜•瑟德贝里(Lena Söderberg)

1.4. 音乐的压缩

1.4.1. 1996年

1.4.2. WAV

1.4.2.1. MP3

1.4.2.1.1. Napster音乐共享平台

1.4.2.1.2. iPod

1.4.2.1.2.1. iTunes

1.4.2.1.2.2. iPhone

1.5. 视频的压缩

1.5.1. 2001年

1.5.2. YouTube

1.5.2.1. MOV

1.6. 基因图谱

1.6.1. 2008年

1.6.2. 单个基因组序列就包含了大量的数据,仅仅是描述人类基因组成的数据就超过了14GB

1.6.3. BWT是最有效的存储DNA信息的压缩格式,甚至无须解压就能对数据进行操作

1.7. 压缩与经济

1.7.1. 压缩后的文件会变得更小

1.7.1.1. 同样的数据传输所需的时间会变短,相应的费用也会减少

1.7.1.2. 分发者的分发成本会降低,消费者的支出也会减少

2. 克劳德•香农

2.1. 硕士论文题为《继电器与开关电路的符号分析》

2.1.1. 为基于开关的现代电路计算奠定了基础

2.2. 1948年发表了《通信的数学理论》

2.2.1. 论述了发送者怎样对要发送的信息进行编码才能达到最佳效果

2.2.2. 开创了信息论(information theory)这一全新的学术领域

2.3. 发明了一种度量消息所携带信息内容的方法

2.3.1. 信息熵(information entropy)

3. 什么是数据压缩

3.1. 用最紧凑的方式来表示数据

3.2. “在保证信息能恢复的前提下,我们能将消息变得多么紧凑”

3.3. 根据现代信息论的观点,在压缩数据以减少总二进制位数的时候存在一个临界点,如果超过了这个值,我们就不能将压缩后的数据唯一正确地恢复为原来的数据流。

3.3.1. 我们的压缩目标就是尽可能地减少总二进制位数以接近这个临界值,并且不超过这个值

4. 消息编码方式

4.1. 对每一个特定的消息来说,都有一个最佳的编码方式,这里的“最佳”指的是传递消息时用到的字母或者符号(也可以说是二进制位,即信息的单位)最少

4.2. “字母表”与“摩尔斯码”是其中常见的两种

5. 数据压缩思路

5.1. 减少数据中不同符号的数量

5.1.1. 即让“字母表”尽可能小

5.2. 用更少的位数对更常见的符号进行编码

5.2.1. 即最常见的“字母”所用的位数最少

6. 数据压缩考虑因素

6.1. 不同数据的处理方法不同

6.1.1. 压缩一本书中的文字和压缩浮点型的数

6.2. 有些数据必须经过转换才能变得更容易压缩

6.3. 数据可能是偏态的

6.3.1. 夏天的整体气温偏高

6.3.1.1. 高气温出现的频率比接近零度的气温出现的频率高很多

7. 数据压缩算法

7.1. 变长编码(variable-length codes,VLC)

7.2. 统计压缩(statistical compression)

7.3. 字典编码(dictionary encodings)

7.4. 上下文模型(context modeling)

7.5. 多上下文模型(multicontext modeling)

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

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

相关文章

HMM实现中文分词

引言 在隐马尔可夫模型中介绍了HMM的理论部分,为了巩固理论知识,本文基于HMM实现中文分词。具体来说,通过HMM实现基于字级别的分词算法。 HMM 这里简单说明一下,更详细的请参考隐马尔可夫模型。 这里输入序列为 X 1 : N X_{1:N…

【h5】实现语音转文字

【h5】实现语音转文字 一、需求功能概述是: 二、实现过程1、实现按住录音,松开发送。有两个录音按钮。a. 获取用户的麦克风声音和创建一个MediaRecorder对象:b. 启动和停止录音:c. 将音频数据上传到服务器,并在处理完后…

【C++】指针 - 定义和使用,所占内存空间,空指针,野指针,const修饰指针,指针和数组,指针和函数

文章目录 1. 定义和使用2. 所占内存空间3. 空指针4. 野指针5. const修饰指针6. 指针和数组7. 指针和函数 1. 定义和使用 数据类型 * 变量名; 指针的作用是,可以通过指针间接访问内存。 内存编号是从 0 开始记录的,一般用十六进制数字表示。可以利用指…

nodejs+vue社区母婴幼儿用品商城系统

本系统实现了管理员对用户、商品信息、交流论坛、订单信息的管理,是为了满足用户更深层次的需求。除了上述优势外,本系统还具有:查询迅速,搜索资料方便,可靠性强等等在如今这个高速发展的时代,效率决定着你…

十款开源测试开发工具推荐(自动化、性能、混沌测试、造数据、流量复制)

在本篇文章中,我将给大家推荐 10 款日常工作中经常用到的测试开发工具神器,涵盖了自动化测试、性能压测、流量复制、混沌测试、造数据等。 1、AutoMeter-API 自动化测试平台 AutoMeter 是一款针对分布式服务,微服务 API 做功能和性能一体化…

可靠可用性基本知识

可靠可用性基本知识 1. 基本概念1.1 可靠性1.2 可用性 2. 可靠和可用性指标3. 可靠性工程实践相关概念4. FEMA相关知识4.1 基本概念4.2 FEMA分析流程 5. 产品开发流程中可靠可用性测试如何开展5.1 测试可靠可用性输入\输出5.2 可靠可用性开展流程5.3 测试设计5.4 测试执行5.4.1…

chatgpt赋能python:Numpy读音:是“num-pie”还是“num-pee”?

Numpy读音:是“num-pie”还是“num-pee”? 你是否曾经在想,“numpy”这个词怎么念?很多人都有不同的看法。有些人说“num-pie”,而另一些人则说“num-pee”。那么,谁是正确的呢?在这篇文章中&a…

ad18学习笔记三:关于测量点对点

如何测量? 方法有很多种,比如 1、 点击 ‘放置’–》‘尺寸’–》‘线性尺寸’ 2、 快捷工具栏 3、 快捷键 AD如何使用测量命令?-凡亿课堂 AD中的三种测量距离的方式 清除测量标线? 这个简单,在显示测量结果的…

【论文阅读】GNN在推荐系统中的应用

【论文阅读】GNN在推荐系统中的应用 参考Graph Neural Networks for Recommender Systems: Challenges, Methods, and Directions 文章目录 【论文阅读】GNN在推荐系统中的应用1、本文结构2、推荐系统的目的,发展和基于GNN模型的挑战3、推荐系统相应背景&#xff0…

GPT-4 插件和插件化的思考

一、前言 最近 ChatGPT 的 Plus 用户在 GPT-4 中新增了插件功能, GPT 在插件的加持下如虎添翼。 那么我常用的插件是哪些?插件化是什么?插件化有什么好处?插件化和我们日常开发中哪些设计模式思想一致?GPT 的插件还存…

竟然还可以这样计算圆周率π?你被惊艳到吗(50)

小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 和猫妹学Python,一起趣味学编程。 今日主题 什么是圆周率π? 如何用蒙特卡洛法来计算圆周率? 圆周率π 圆周率用希腊字母π&#xf…

TatukGIS Developer Kernel 11.78 for .NETCore Crack

Tatuk GIS Developer Kernel for .NET 是一个变体,它是受控代码和 .NET GIS SDK,用于为用户 Windows 操作系统创建 GIS 专业软件的过程。它被认为是一个完全用于 Win Forms 的 .NET CIL,WPF 的框架是为 C# 以及 VB.NET、VC、oxygen 以及最终与…

chatgpt赋能python:Python个人数据合并:简单优雅地整合您的个人数据

Python个人数据合并:简单优雅地整合您的个人数据 在信息时代,我们收集了大量的个人数据,包括社交媒体、电子邮件、日历事件和其他各种来源。但是,如何以整洁的方式将这些数据整合到同一地方?Python提供了一种简单而优…

chatgpt赋能python:介绍:Python中的jieba.cut

介绍:Python 中的 jieba.cut Jieba 是一个用于中文分词的 Python 库,被广泛应用于自然语言处理、文本分析等领域。其中的 jieba.cut 方法是该库的核心功能之一,对于各类中文文本的分词操作起到至关重要的作用。本文将从以下四个方面对 jieba…

springboot--请求

1. 请求 在本章节呢,我们主要讲解,如何接收页面传递过来的请求数据。 1.1 Postman 当下最为主流的开发模式:前后端分离 在这种模式下,前端技术人员基于"接口文档",开发前端程序;后端技术人员也…

1.3. 数据类型与变量

数据类型 在Java中,数据类型决定着一个数据的取值范围和操作。Java中的数据类型主要分为两类:基本数据类型和引用数据类型。 基本数据类型 Java中的基本数据类型包括整型、浮点型、字符型和布尔型。 整型:byte、short、int、long。对应的…

【嵌入式烧录/刷写文件】-3.3-Bin文件转换为S19/Hex文件

案例背景(共8页精讲): 该篇将告诉您:如何使用Vector HexView工具,j将一个bin文件转换为Intel Hex或Motorola S-record(S19/SREC/mot/SX)文件。 目录 1 Intel Hex,Motorola S-record(S19/SREC/mot/SX),Bin文件之间的…

Flutter 笔记 | Flutter 自定义组件

Flutter 自定义组件的几种方式 当Flutter提供的现有组件无法满足我们的需求,或者我们为了共享代码需要封装一些通用组件,这时我们就需要自定义组件。在Flutter中自定义组件有三种方式:通过组合其他组件、自绘和实现RenderObject。 1. 组合多…

RT1170如何在SRAM/SDRAM运行程序

一般Flash为non-XIP时,我们需要在RAM上运行程序。还有一种情况,就是我们不想每次调试都要将程序写入Flash,然后由BootROM进行代码的拷贝和跳转,这样可以减少Flash的烧写次数。本篇文章就来讨论一下如何实现这两种情形的RAM代码运行…

总结882

每周小结: 暴力英语:一边背单词,一边背文章,背了两篇文章 高等数学:进行了二重积分和矩阵第二讲专题的纠错,刷了微分方程上的相关题目。 每日必复习(5分钟) 就复习了昨天的一道题…