51
1/40 编编编编 编编 编编编编编编编编编编编编编编编编编编编编编 :; 编编 编编编编编编编编编编编编编编编编 :; 编编编编编编编编编编编编编编编编编编 编编编编编编编 编编编编编编编编 编编编 编编编编编编编

编码解码

Embed Size (px)

DESCRIPTION

编码解码. 编码:是将语音或是视频信号改编成数字信号的过程; 解码:将数字信号转换成模拟信号的过程; 调制解调器: 通常编码运算复杂度比解码低 数据压缩的目的:为了数据的存储和传输; 解压缩:对数据进行还原. 一、多媒体数据压缩的必要性. 多媒体技术特点:实时性 发展: 在图像文件编码过程中图像数据和识别信息是必不可少的两项,而 压缩 原理则是经常被采用的要素;. 多媒体数据量庞大. 庞大的数据量要求人们必须对数据进行压缩 符号:较小 音频、图像、视频:大. 数字化音频数据量. - PowerPoint PPT Presentation

Citation preview

Page 1: 编码解码

1/40

编码解码

– 编码:是将语音或是视频信号改编成数字信号的过程;

– 解码:将数字信号转换成模拟信号的过程;– 调制解调器:– 通常编码运算复杂度比解码低

– 数据压缩的目的:为了数据的存储和传输;– 解压缩:对数据进行还原

Page 2: 编码解码

2/40

一、多媒体数据压缩的必要性

– 多媒体技术特点:实时性– 发展:– 在图像文件编码过程中图像数据和识别信息是必不可少的两项,而压缩原理则是经常被采用的要素;

Page 3: 编码解码

3/40

多媒体数据量庞大

庞大的数据量要求人们必须对数据进行压缩

符号:较小 音频、图像、视频:大

Page 4: 编码解码

4/40

数字化音频数据量

例 1 :计算存储 3 分 30 秒的 CD 音质立体声歌曲所需的存储空间

– 44.1kHz×16×2×210 秒 = 37044KB = 36.2M

(未经压缩的数字声音的数据率 (b/s) = 采样频率 (Hz)* 样本精度 (bit)* 声道数)

Page 5: 编码解码

5/40

数字化图像数据量

例 2 :存储一幅帧分辨率为 720×576 的 PAL 制式数字电视信号的静态真彩色图像需要的存储空间:

– 720×576 ×3B≈1.2MB

真彩色色彩深度 24bit ,即 3 个字节

Page 6: 编码解码

6/40

数字化视频数据量

例 3 :计算 1 分钟 PAL 数字电视信号产生的数据量(分辨率为 720×576 ,每秒 25 帧)不含音频数据

–1.2MB×25×60≈1.76GB

Page 7: 编码解码

7/40

总结

– 数据量过大,存储问题( D9, 大容量硬盘);– 实际播放时数据传输率限制;(光盘、网络)

– 日常工作生活中: WinRAR 、 WinZip

Page 8: 编码解码

8/40

二、数据压缩的可能性

– 能够对多媒体信息进行压缩的前提就是因为数据中存在大量的冗余,尤其是声音和图像;

– 数据压缩的目的就是尽可能的消除这些冗余;

Page 9: 编码解码

9/40

静态图像空间冗余

1) 在静态图像中存在的空间冗余– 原理:一幅图像,大部分区域具有

相同的物理特性(亮度、颜色等)– 应用算法: RLC

Page 10: 编码解码

10/40

视频时间冗余

2) 在动态视频中存在的时间冗余 – 原理:视频序列中相邻的帧具有相

同的画面或者几乎相同的画面,因此没有必要记录同样的画面。只记录两幅画面之间的差别即可;

– 应用算法: MPEG

Page 11: 编码解码

11/40

视觉听觉冗余

3) 音频、静态图像等 依据:人的听觉视觉系统对某些部分

的数据信息不敏感,甚至感觉不出来; 算法: MP3 、 JPEG

Page 12: 编码解码

12/40

三、数据压缩的方法

1 )无损压缩– 压缩时不损失任何信息,解压时可以完全恢复成原来的数据;

– 利用原始信息中的相关性进行的数据压缩不损失原信息的内容,可实现无损压缩

– 统计式: Huffman 编码、算术编码( AC )、行程编码( RLC) ;字典式( LZW )编码

Page 13: 编码解码

13/40

2) 有损压缩:数据压缩后不能将原来的文件信息完全保留的压缩;

– 在很多情况下,数据压缩还原过后允许有一定的损失,不过应当能基本表述原信息的内容,否则没有意义;

– 依据:在原始信息中存在一些对用户来说不重要、不敏感、可以忽略的内容;

– JPEG 、 MPEG

Page 14: 编码解码

14/40

数据压缩技术的重要指标

– 压缩比大小:压缩前后所需的信息存储量之比要大;

– 解压缩效率高低:实现压缩的算法要简单,压缩、解压速度快,尽可能地做到实时压缩和解压;

– 数据完整性:恢复效果要好,要尽可能的完全恢复原始数据。

Page 15: 编码解码

15/40

无损压缩

图像压缩方法

有损压缩

Huffman 编码

RLE 行程编码

AC 算术编码

LZ 字典式编码

预测编码 (DCT) 变换编码 混合编码

JPEG

MPEG

DPCM

ADPCM

运动补偿(帧间预测)

Page 16: 编码解码

16/40

1 、 Huffman 编码

1) 先对要编码的数据整体所采用的符号作个统计;

2) 采用变长编码:对于出现频率高的信息,编码长度较短,对于出现频率低的信息,编码长度较长,从而使得总的数据量变小;

Page 17: 编码解码

17/40

Huffman — 步骤

:将信源符号按概率递减顺序排列; :把两个最小的概率加起来,作为新符号

的概率; :重复和 ,直到概率和达到 1 为止; :在每次合并消息时,将被合并的消息赋

予 1 和 0 或赋予 0 和 1 ; :寻找从每一信源符号到概率为 1 的路径,

记录下路径上的 1 和 0; :对每一符号写出从码树的根到终节点 1 、

0 序列。

Page 18: 编码解码

18/40

练习

设某信源有 5 种符号 x={A1 , A2 , A3 , A4 , A

5} 。在数据中出现的概率 p={0.25 , 0.22 , 0.20 ,0.18 , 0.15} ,试给出 Huffman 编码方案,写出每个符号对应的 Huffman 编码。

答案 1 : A1:10 A2:01 A3:00 A4:111 A5:110

答案 2 : A1:01 A2:10 A3:11 A4:000 A5:001

Page 19: 编码解码

19/40

Huffman — 特点

– 压缩比大小:与信号源中各字符出现概率有关

– 压缩解压缩复杂度:由于编码长度可变,压缩及解压缩较费时

– 无损压缩

Page 20: 编码解码

20/40

2 、行程编码( RLC)

( Run Length Coding )数据流中相同的字符会连续重复出现,连续重复出现的字符长度叫行程长度 Run Length ;

例:设有数据流“ AAABBBBCCCCCDAAAAAA”,试计算该字符串行程编码:

3A4B5C1D6A

Page 21: 编码解码

21/40

Page 22: 编码解码

22/40

1) 原始数据所需存储空间 :

50×3B+2×3B+1×3B+9×3B+72×3B=402B2) RLE 编码后得到的代码为:

50 ( 200,30,100 ) 2 ( 255,255,255 ) 1 ( 0,5,5 ) 9( 0,0,0 ) 72 ( 200,30,100 )

编码后需存储空间(行程长度值用 2B 表示) 2B+3B+2B+3B+2B+3B+2B+3B+ 2B+3B =25B

3) 压缩比率: 402:25=16.08 : 1

Page 23: 编码解码

23/40

练习

下列矩阵为计算机屏幕上某数字图像(色彩深度为 24 位真彩色)的一个截取片断,试对该片断像素数据进行行程编码(行程长度取 1Byte ),并计算可节省多少字节的存储空间。(提示:计算机采用逐行扫描)

5 0 0 0 0

0 4 0 0 0

0 0 3 0 0

0 0 0 2 0

0 0 0 0 1

Page 24: 编码解码

24/40

答案

RLC 编码: 155014501350125011

原数据量= 3B*25=72B

RLC 编码后数据量= 4B*9=36B

可以节省数据量 36B

Page 25: 编码解码

25/40

RLC — 特点– 压缩比:与数据流中字符重复出现的概率及长度有关;数据中字符重复出现次数相同的情况下,重复字符串的平均长度越长,压缩比越高;在重复字符串的平均长度相同的情况下,字符重复出现的次数越多,压缩比也越高

– 解、压缩效率高:算法简单,速度快– 无损压缩

Page 26: 编码解码

26/40

算术编码( AC )Arithmetic coding 静态模型 自适应模型

Page 27: 编码解码

27/40

算术编码性能分析– 算术编码的特点

①不必预先定义概率模型 , 自适应模式具有独特的优点 ;②信源符号概率接近时 , 建议使用算术编码 , 这种情况下其效率高于 Huffman 编码 ;③算术编码绕过了用一个特定的代码替代一个输入符号的想法 , 用一个浮点输出数值代替一个流的输入符号 , 较长的复杂的消息输出的数值中就需要更多的位数。

Page 28: 编码解码

28/40

算术编码性能分析

④算术编码实现方法复杂一些 , 但 JPEG 成员对多幅图像的测试结果表明 , 算术编码比 Huffman 编码提高了 5% 左右的效率 , 因此在 JPEG 扩展系统中用算术编码取代 Huffman 编码。

Page 29: 编码解码

29/40

字典式( LZ )编码

LZ是其发明者 J.Ziv和 A.Lempel两个犹太人姓氏的缩写。此二人于 1977 年发表题为《顺序数据压缩的一个通用算法》的论文,论文中描述的算法被后人称为 LZ77算法。1978 年,二人又发表了该论文的续篇,描述了后来被命名为 LZ78的压缩算法。

Page 30: 编码解码

30/40

LZW 编码

1984 年, Terry Welch发表论文描述了他在Sperry 研究中心的研究成果,也就是后来非常有名的 LZW算法。

它实质上是 LZ78算法的一个变种,但被认为是一个独立的编码算法。 LZW 继承了 LZ77和 LZ78压缩效果好、速度快的优点,而且在算法描述上更容易被人们接受,实现也相对简单。

Page 31: 编码解码

31/40

字典式( LZ )编码其实 LZ系列的算法并不新鲜,其中既没有高深的理论背景,也没有复杂的数学公式。它们只是简单的延续了千百年来人们对字典的追崇和喜好,并用一种极为巧妙的方式将字典技术运用于通用数据压缩领域。简单的说如果你习惯用字典中的页码和行号代替文章中的每个单词的时候,那实际上你已经掌握了 LZ系列算法的真谛,因此这类编码算法被统称为 Dictionary coders。

Page 32: 编码解码

32/40

LZW 编码

而在其后发展出来的各式各样的字典编码算法,基本上都是这三种编码算法的分支或变体。也就是说 LZ77、 LZ78和 LZW是字典编码中最基础的 3 种编码算法

Page 33: 编码解码

33/40

LZ 编码与传统统计编码比较

在压缩效果上字典式编码大大超过了 Huffman编码;而且在实现上,压缩和解压缩的速度也异常惊人。于是 LZ系列算法的优越性很快就在数据压缩领域里体现出来,使用 LZ系列算法的工具软件数量呈爆炸式增长

Page 34: 编码解码

34/40

LZ78和 LZW一时间几乎统治了 UNIX和 DOS两大平台。然而随着时间流逝,事情变得耐人寻味。目前为止占据个人用户计算机的主流压缩工具几乎都采用 LZ77 变种算法;更为优秀的 LZ78和 LZW没有成为最主流的算法? LZ77 与它们有什么不同?

Page 35: 编码解码

35/40

LZ 字典编码专利限制

LZ77完全没有专利限制;

LZ78在美国稍稍涉及到一些专利禁止区;

而 LZW 专利权最终归属于 Unisys 公司;

Page 36: 编码解码

36/40

ZIP 格式的诞生

DOS 环境下由于硬件资源的有限,标准配置 360kB的 5.25 寸软盘;网络条件十分有限, 14.4kbit/s

1985 年 SEA 公司开发的 MS-DOS 环境下第一个应用 LZW算法的 ARC(商业软件)

Phillip W.Katz(菲利普·卡兹)

Page 37: 编码解码

37/40

ZIP 格式的诞生

DEFLATE:完美地结合 LZ77和 Huffman编码可将多个文件压缩到一个文件中,无论压缩比、压缩速度都全面超过了商业软件 ARC

开放 ZIP 格式,任何人都可以自由使用 ZIP编码算法而不需要缴纳任何专利费用。这个决定最终改变了压缩的世界,使得通用数据无损压缩领域再无法出现垄断的商业巨鳄

Page 38: 编码解码

38/40

LZW 编码

”转换表“(字典);前缀;当前字符P57

Page 39: 编码解码

39/40

LZW 性能分析

对于可预测性不大的数据具有较好的处理效果对于简单图像、平滑且噪声小的信号源具有较高的压缩比,且压缩解压缩速度快;对于数据流中连续重复出现的字节和字串,具有很高的压缩比,除用于图像数据的压缩处理外,还被用于文本程序等领域的数据压缩

Page 40: 编码解码

40/40

JPEG 编码

P80: 两种基本压缩算法

① 采用以离散余弦变换 DCT 为基础的有损压缩算法;

② 采用以预测编码技术为基础的压缩算法;

Page 41: 编码解码

41/40

(DCT) 变换编码

P81

基本思想:利用图像块内像素值之间的相关性,把图像变换到一组新的基上,使得能量集中到少数几个变换系数上,通过存储这些系数而达到压缩的目的;

Page 42: 编码解码

42/40

预测编码

基本思想:编码器记录与传输的不是样本的真实值,而是真实值与预测值的差;

基本过程:首先根据算法模型,用原有的样本值对新样本进行预测,得到新样本的预测值,接着,取新样本的实际数值,然后和预测值进行比较,二者相减得到差值,最后对差值进行编码

Page 43: 编码解码

43/40

JPEG 压缩流程

P84

:通过正向离散余弦变换把空间域表示的图像变换成频率域表示的图像;

:加权函数对 DCT 系数进行量化; :对量化系数进行行程编码( RLC )及 Huffman 无损编码

Page 44: 编码解码

44/40

MPEG 压缩原理 1. 动态图像特点

– 动态图像以每秒 25 帧播放,在如此短的时间内,画面通常不会有大的变化;

– 在画面中变化的只是运动的部分,静止的部分往往占有较大的面积;

– 即使是运动的部分,也多为简单的平移。

压缩原理: 记录某一帧,对于随后的帧只记录

和前一帧不同;播放时,根据前一帧的画面和两帧的不同构造出当前画面

Page 45: 编码解码

45/40

MPEG 压缩原理

2. 压缩中的问题– 如果只保留第一帧,其他帧采用差异帧。那么后面的每一帧都需要从前一帧计算出来,恢复时也必需一帧帧顺序进行。这样就无法想跳到哪一点就从哪一点进行播放。一旦某一帧数据出了问题,后面的帧更无法恢复。

– 由于差异帧的压缩是有损的。上述方式在压缩和解压缩时将发生误差的积累,积累到一定程度势必造成很大的失真。

Page 46: 编码解码

46/40

MPEG 压缩原理

3. 解决方法– 每隔若干帧(如 30 帧)之后记录一幅

原始(完整)帧 – 运动补偿的矢量算法

Page 47: 编码解码

47/40

课堂练习

1. 简述多媒体数据压缩的可能性?2. 设某信源有 5 种符号 x={A1 , A2 , A3 , A4 , A

5} 。在数据中出现的概率 p={0.25 , 0.22 , 0.20 ,0.18 , 0.15} ,试给出 Huffman 编码方案,写出每个符号对应的 Huffman 编码。

Page 48: 编码解码

48/40

课堂练习

1. 假设有 4 个符号的信源,它们的概率如下所示 :

符号 概率 初始编码间隔00 0.1 [0 , 0.1 )

01 0.4 [0.1 , 0.5 )10 0.2 [0.5 , 0.7 )11 0.3 [0.7 , 1 )

输入序列为: 10 00 11 00 ,请对该输入序列进行静态算术编码。

Page 49: 编码解码

49/40

课堂练习

2. 假设有 4 个符号的信源,它们的概率如下所示符号 概率 初始编码间隔a 0.2 [0 , 0.2 )

e 0.3 [0.2 , 0.5 )i 0.1 [0.5 , 0.6 )o 0.2 [0.6 , 0.8 )u 0.1 [0.8 , 0.9 )l 0.1 [0.9 , 1 )

对某输入字符串进行算术编码,已知输出编码为 0.23 ,试解码出输入字符串的前 3 个字符。

Page 50: 编码解码

50/40

课堂练习

3. 输入序列为:“ ba” ,请对该输入序列进行动态自适应算术编码。(运算中及结果保留两 位小数即可)

假设初始时它们的概率如下所示 :符号 概率 初始编码间隔a 1/5 [0 , 0.2 )

b 1/5 [0.2 , 0.4 )c 1/5 [0.4 , 0.6 )d 1/5 [0.6 , 0.8 )e 1/5 [0.8 , 1 )

Page 51: 编码解码

51/40

课堂练习

4. 设有输入字符流 bbcab ,试对其进行 LZW 编码(假定初始字典为 a:1; b:2; c:3)。