# Compression

## 一、容量计算

### 1. 文本容量

设分辨率为$$1280 \times 768$$，字符大小为$$8 \times 8$$点阵，每个字符用2字节表示

$$全屏字符 = (\frac{1280}{8} \times \frac{768}{8}) \times 2 \approx 10\ (MB)$$

### 2. 数字音频

采样率为 44.1 kHz，采样精度为16位的双声道音频

$$1分钟数据量 = (44.1 \times 1000) \times 16 \times 2 \times 60 \approx 10\ (MB)$$

### 3. 图像容量

$$1024 \times 768$$的彩图，每像素用24bit表示

$$数据量 = 1024 \times 768 \times 24 = 2.25\ (MB)$$

## 二、冗余

D = I + R

信息量 = 数据量 - 冗余量

1. 空间: 图像中颜色相近的像素，可以被划归为一个颜色(用`大色块`代替一堆`小色块`)
2. 时间: 如前后帧`背景(音)`相同
3. 结构: 物体表面纹理(3D游戏地面建模就是用的纹理重复技术)
4. 知识: 人脑预先知道的东西不必重复传输(如头下面是身子，如果身子不动，那么就拍脸好了)
5. 视听: 人的听觉、视觉传感器有接收范围，超过就听不到也看不到了
6. 信息熵冗余(编码冗余): ~~过于高深，暂时不解释~~

&#x20;**熵(entropy): 注意这个字念shang**

## 三、压缩种类

无损: 去掉或减少冗余，压缩比`2:1`到`5:1`

有损: 失真压缩，压缩比`50:1`到`200:1`

## 四、压缩的理论基础

### 1. 信息度量

某事件x，出现的概率为$$P(x\_i)$$，$$0 \leq P(x\_i) \leq 1$$

该事件信息量 $$I(x\_i) = -\log\_2{P(x\_i)}$$

### 2. 信息熵

$$H(x) = - \sum\_{i=1}^{N} P(x\_i) \cdot \log\_2 {P(x\_i)}$$

![](https://2889346953-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Le4Kw7maZEabKFjsC7z%2F-Lf5hWWAPXrS6pkg310z%2F-Lf5hpGZ34gcQXhytKhT%2Fentropy_example_question.jpg?generation=1558112067593552\&alt=media)

平均码长: $$\bar{L} = \sum\_i P(x\_i) \cdot n(x\_i)$$

无失真条件: $$平均码长 = \bar{L} \geq \frac{H(x)}{\log\_2{n}}$$

编码效率: $$\eta = \frac{H(x)}{\bar{L}}$$，百分制

> 百分制 0\~100 是对比度量的好方法

## 五、压缩的性能比较

* 压缩比: `压缩前`比`压缩后`，越大越好
* 重现质量: 主要指图像、声音
* 压缩、解压的速度
