数据压缩速成课-1-introduction

数据压缩速成课-1-introduction

github课程翻译
https://github.com/jermp/data_compression_course

目录

  • 数据压缩速成课-1-introduction
    • github课程翻译 [https://github.com/jermp/data_compression_course](https://github.com/jermp/data_compression_course)
  • 前言
  • 一、什么是数据压缩?
    • 基础模型如下:
      • 压缩率
    • 空间和时间权衡
    • 限制
  • 二、为什么要进行数据压缩?
  • 三、技术局限
  • 四、简单的实验


前言

在学习数据压缩之前,本文首先介绍了什么是数据压缩以及为什么需要压缩。


一、什么是数据压缩?

数据压缩是将数据被转换成另一种占用更少空间的表达方式的过程,好处是在存储数据时节省空间、传输数据节省时间。这个过程是完全或者是允许一些损失的情况下可逆的。
Q:这个过程是什么?
A:计算机程序将输入数据转化为占用更少存储空间的数据结构。
我们就是要寻找能构建这种数据结构的有效programs。

基础模型如下:

输入数据流 B ——> [压缩编码器] ——>输出压缩后数据C(B)——> [解码器]——>输入数据流B
其中,在[压缩编码器]阶段,如果允许,会有一些损失,此时为有损压缩。

压缩率

CR = |B|/|C(B)|.
如果CR=r,则压缩输出的尺寸是输入尺寸的1/r。

空间和时间权衡

压缩率受很多因素影响:受限于CPU性能的压缩和解压速度;精度损失…
压缩的空间和压缩操作的耗时需要权衡。

限制

现在还没有算法能对每一个bit-string进行压缩。
proof:
假设以下过程成立,
|B| > |C(B)| > |C(|C(B)| )| > …
则,所有的bit-string都能被压缩到0bits,这是不符合逻辑的。

二、为什么要进行数据压缩?

1、大型计算和存储的需求不断增加
-通用文件压缩:gzip, bzip,LZ4, zstd,ecc。
-多媒体文件:图像(jpeg,png,gif);音频(MP3);视频(MPEG,DVD);Spotify,Nextflix,ecc。
-搜索引擎
-分布式存储
2、通讯成本
-Skype,Zoom,FaceTime,WhatsApp,ecc.
-社交网络(Facebook,Ins,Twitter,…)
3、提升软件性能

三、技术局限

所有资源都是有限的。
摩尔定律:芯片上的晶体管数量每1.5~2年会翻倍,处理器越来越快,而memories not faster.

四、简单的实验

同一数据结构,分别定义为uint8和uint64,进行同样的运算,结果显示,短数据类型计算耗时更少。

你可能感兴趣的:(图像处理,图像处理)