1k likes | 1.26k Views
第 2 章 压缩编码技术. 本章结构. 压缩编码技术. 学习目标. 1 .知识目标: 知道流媒体数据可以压缩的原因;了解有损编码和无损编码的区别;了解压缩编码的分类;掌握霍夫曼编码、算术编码、行程编码;了解预测编码和变换编码的基本原理;了解 MPEG-4 、 MPEG-7 、 MPEG-21 编码标准;了解 H.26x 标准, 掌握 MPEG-2 标准; 了解音频压缩,掌握恒定比特率压缩与可变比特率压缩的区别。 2 .能力目标:能按照霍夫曼编码、算术编码、行程编码的原理,写出对数据压缩后的结果;能对不同压缩状态下视音频的数据量进行计算。
E N D
本章结构 压缩编码技术
学习目标 • 1.知识目标: • 知道流媒体数据可以压缩的原因;了解有损编码和无损编码的区别;了解压缩编码的分类;掌握霍夫曼编码、算术编码、行程编码;了解预测编码和变换编码的基本原理;了解MPEG-4、MPEG-7、MPEG-21编码标准;了解H.26x标准,掌握MPEG-2标准;了解音频压缩,掌握恒定比特率压缩与可变比特率压缩的区别。 • 2.能力目标:能按照霍夫曼编码、算术编码、行程编码的原理,写出对数据压缩后的结果;能对不同压缩状态下视音频的数据量进行计算。 • 3.素质目标:能根据不同的网络条件选择合适的编码方法。
2.1概述 • 2.1.1压缩的必要性 • 2.1.2压缩的可行性 • 2.1.3压缩编码的分类 • 2.1.4常用的压缩方法
2.1.1压缩的必要性 • 数字压缩技术不仅是音视频通信的需要,也是高效利用网络资源、降低用户通信费用的有效途径,还是使流媒体走向实用化的关键技术之一。 • 问题:尝试计算一个7GB的DVD 视频文件,在2Mb的理论带宽下需要下载多少个小时? • 约等于8个小时
2.1.2压缩的可行性 • 1.空间冗余 • 2.时间冗余 • 3.信息熵冗余 • 4.结构冗余 • 5.知识冗余 • 6.视觉冗余
2.1.2压缩的可行性 • 1.空间冗余 • 视频图像通常与它周围的某些像素在亮度和色度上相同或非常接近,存在一定的相关性。这些相关性的光成像结果在数字化图像中就表现为数据的空间冗余。
2.1.2压缩的可行性 • 2.时间冗余 • 指活动图像连续的帧之间的冗余。 • 相邻两帧图像的内容差别不大,往往背景相同,只不过移动物体所在的空间位置略为不同,即后一帧数据与前一帧数据有诸多相同之处,这就表现为时间冗余。
2.1.2压缩的可行性 • 3.信息熵冗余 • 信息熵冗余又称编码冗余。信息熵是指一组数据所携带的信息量。 • 而对于实际图像数据的每个像素,很难得到它的信息熵,因此一般是对每个像素采用相同的比特数来表示,这样就必然存在冗余,这种冗余称为信息熵冗余。
2.1.2压缩的可行性 • 4.结构冗余 • 许多图像存在着较强的纹理结构。在图像纹理区,图像的像素值存在着明显的分布模式,如瓦片构成的屋顶、方格状的地板图案等,如果对相似的、对称的结构都加以记录,就会出现结构冗余。
2.1.2压缩的可行性 • 5.知识冗余 • 有许多图像的理解与某些先验知识有相当大的相关性。例如,人脸的图像有同样的结构:嘴的上方有鼻子,鼻子上方有眼睛,鼻子在中线上等。 • 这些规律的结构可由先验知识和背景知识得到,这类冗余称为知识冗余。
2.1.2压缩的可行性 • 6.视觉冗余 • 人类视觉系统对亮度变化敏感,而对色度变化相对不敏感。在高亮区,人眼对亮度变化敏感度下降,致使对内部细节相对不敏感,而对整体轮廓敏感。 • 因此,人类视觉系统并不是对图像的任何变化都能感知出来,表现为视觉冗余。
2.1.3压缩编码的分类 • 从信息论的角度出发,把它分为无损压缩和有损压缩两大类
2.1.3压缩编码的分类 • 无损压缩是利用数据的统计特性对图像进行的压缩,即解压缩后的图像与原图像相一致而不存在任何失真,但压缩率受到数据统计冗余度的理论限制,一般为2:1到5:1。 • 这类方法广泛用于文本数据、程序和特殊应用场合的图像数据(如指纹图像、医学图像)的压缩。
2.1.3压缩编码的分类 • 有损压缩也称信息量压缩方法,即解压缩后的图像与原图像不一致,存在数据丢失的现象,并且丢失的这些数据不可恢复,但可以利用人的视觉特性使解压缩后的图像看起来与原始图像一样。 • 有损压缩的压缩比一般为100:1~200:1。
2.1.4 常用的压缩方法 • 1.无损压缩编码 • 常用的无损压缩方法有香农-范诺(Shannon-Fano)编码、哈夫曼(Huffman)编码、RLE(run-length encoding,行程编码)、LZW(Lempel-Ziv-Welch)编码和算术编码。
2.1.4 常用的压缩方法 • 1)香农-范诺编码 • (1)基本概念 • ① 熵 • 熵(Entropy)是度量信息量的一种方法, 它通常表示事件发生的概率越大,确定性越强,携带的消息量越少。 • 信息熵:信息的基本作用就是消除人们对事物的不确定性。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。
2.1.4 常用的压缩方法 • ② 信源S的熵 • 按照香农的理论,信源S的熵定义为: pi表示符号Si在S中出现的概率
2.1.4 常用的压缩方法 • (2)算法步骤—从上往下 • ① 按照符号出现的概率减少的顺序将待编码的符号排成序列; • ② 将符号分成两组,使这两组符号的概率之和相等或几乎相等; • ③ 将第一组赋值为0,第二组赋值为1; • ④ 对每一组,重复步骤 2 的操作。
香农-范诺编码的应用: • 假设有一幅80个像素组成的图像,颜色共有8种,分别用符号A、B、C、D、E、F、G和H表示,80个像素中符号出现的情况如表2-1所示。
按照香农理论,这幅图像的熵为: • H(S)=(20/80)log2(80/20)+(20/80)log2(80/20)+(10/80)log2(80/10)+…+(5/80)log2(80/5) =2.75 • 这种方法采用从上到下的方法进行编码。最后的编码如下图所示:
压缩率对比 • --编码前:用3个位表示8个等级的颜色值(A~H),也就是每个像素用3位表示(000~111),编码这幅图像总共需要240位。 --编码后:按照这种方法进行编码得到的总位数为220,压缩比约为1.09 : 1。
思考一下 存在问题: 1,同步问题,如1100与100要用特殊的间隔符来区分 2,一些码变长了,如E~H,变为了4位
2.1.4 常用的压缩方法 • 2)霍夫曼(Haffman)编码 • 霍夫曼编码是依据香农和范诺阐述的编码思想提出的一种不定长编码的方法,其编码完全依据字符出现概率来构造平均长度最短的码字,有时称之为最佳编码。
2.1.4 常用的压缩方法 • (1)基本方法 • (2)算法步骤—从下往上 • ① 按照符号出现的概率减少的顺序将待编码的符号排成序列; • ② 把概率最小的两个符号组成一个新节点,其概率等于原两个符号之和; • ③ 重复2,直到形成一个节点为止(树),其概率为1; • ④ 从根节点开始回溯到原始符号,并将每个下分支赋值为1,上分支赋值为0。
2.1.4 常用的压缩方法 • (3)示例:霍夫曼编码的过程 • 字母A、B、C、D、E出现的概率为:p(A)=0.16、p(B)=0.51、p(C)=0.09、p(D)=0.13、p(E)=0.11。
2.1.4 常用的压缩方法 • 与香农-范诺编码相比: • 1,该方法自含同步码,在编码之后的码串中不需要另外添加标记符号(即在译码时分割符号的特殊代码)。例如,码串中的第一位为0,那么肯定是符号B,因为其它符号没有一个是从0开始的。 • 2,霍夫曼编码的编码效率比香农-范诺编码效率高。
2.1.4 常用的压缩方法 • 课题练习:比较香农和哈夫曼编码,将前面的哈夫曼编码案例进行香农编码 0 1 (0) 0 1 B ADEC 0 1 0 1 AC DE (110) (111) (100) (101) D E 香农:从上往下走;哈夫曼:从下往上走 A C
2.1.4 常用的压缩方法 • 3)算术编码 • 算术编码应用于JPEG/JBIG图像数据压缩,它不用二进制代码来表示符号,而改用[0,1)中的一个宽度等于其出现概率的实数区间来表示一个符号,符号表中的所有符号刚好布满整个[0,1)区间(概率之和为1,不重不漏)。 • 输出:把输入符号串(数据流)映射成[0,1)区间中的一个实数值。 • Low=low+range×rangelow(字符分配的间隔低端) • High=low+range×rangehigh (字符分配的间隔高端) • Range=high-low
算术编码的过程 • 设输入数据为eaiou,其出现的概率和所设定的取值范围如表2-3所示 • 表2-3 信源符号、概率和初始编码间隔 • 初始化,Low=0,high=1;从字母e开始计算,最后eaiou输出为0.23396(下界) Low=low+range×rangelow(字符分配的间隔低端) High=low+range×rangehigh (字符分配的间隔高端) Range=high-low
2.1.4 常用的压缩方法 • 算术编码具有以下特点 • ① 必预先定义概率模型; • ② 信源符号概率接近时,建议使用算术编码,这种情况下其效率高于哈夫曼编码; • ③ 实现方法相对复杂,但其编码效率比哈夫曼编码高5%左右,因此在JPEG扩展系统中用算术编码取代哈夫曼编码。
2.1.4 常用的压缩方法 • 4)RLE编码 • RLE又称“运行长度编码 ”或“游程编码 ”,是一种统计编码。 • 基本原理是:用一个符号值或串长代替具有相同值的连续符号(连续符号构成了一段连续的“行程”,行程编码因此而得名),使符号长度少于原始数据的长度。
“5555557777733322221llllll” • RLE编码为: • (5,6)(7,5)(3,3)(2,4)(l,7 )
2.1.4 常用的压缩方法 • 2.预测编码 • 预测编码主要消除图像的时间冗余度。常用的预测编码方法包括DPCM(differential pulse code modulation,差分脉冲编码调制)、ADPCM (adaptive difference pulse code modulation,自适应差分预测编码)和帧间预测编码。
2.1.4 常用的压缩方法 • 1)DPCM • DPCM的思想是:依据过去的样本去估算下一个样本信号的幅度大小,这个值称为预测值,然后对实际信号值与预测值之差进行量化编码,从而就减少了表示每个样本信号的位数。
2.1.4 常用的压缩方法 • DPCM的工作过程如图2-5所示。
2.1.4 常用的压缩方法 • 2)ADPCM • ADPCM就是预测器和量化器的参数能根据图像不同位置的具体特点进行自动调节,从而匹配图像的局部变化,具有更大的灵活性,并获得进一步的压缩效果或提高压缩质量。
2.1.4 常用的压缩方法 • 3)帧间预测编码 • 帧间预测编码是利用视频图像帧间的相关性,即时间相关性,来达到图像压缩的目的,即不直接传送当前帧的像素值,而是传送当前帧与其前一帧或后一帧之间的差值。
2.1.4 常用的压缩方法 • 3.变换编码 • 变换编码就是将图像时域信号(时间)变换到频域信号(频率)或者将原始数据“变换”到另一个更为紧凑的表示空间,消除空间冗余,进行压缩编码的方法。
1)DCT(离散余弦变换) • DCT编码的基本思想是:源图像在输入到编码器之前,被分割成一系列按顺序排列的8×8像素的图像块,同时把作为原始采样数据的无符号整数转换成有符号整数,这一过程叫正交变换。 有序
2.1.4 常用的压缩方法 • 2)小波变换编码 • 小波变换用于图像编码的基本思想就是把图像进行多分辨率分解,分解成不同空间、不同频率的子图像,然后再对子图像进行系数编码。
2.1.4 常用的压缩方法 • 4.其他编码方法 • 1)子带编码 • 子带编码就是利用数字滤波器将输入的数字信号分解成频域不相关的、具有不同能量成分的频带,然后根据各频带的特性进行量化、编码。
2.1.4 常用的压缩方法 • 2)模型编码 • 模型编码是利用计算机视觉和计算机图形学的知识对图像信号的分析与合成。模型编码中比较典型的是分形编码。
2.1.4 常用的压缩方法 • 3)矢量量化编码 • 量化编码按一次量化的码元个数,可分为标量量化和矢量量化。标量量化就是对数字化后的数据一个一个地量化,而矢量量化就是将这些数据分组,每组m个数构成m维矢量,再以矢量为单元逐个进行量化。
2.1.4 常用的压缩方法 • 4)混合编码 • 混合编码就是同时采用多种编码方法所形成的编码。例如,将变换编码和预测编码结合起来所形成的MPEG编码。
2.2网络视频压缩编码的标准 • 2.2.1 MPEG标准 • 2.2.2 H.26X标准