多媒体数据压缩编码方法资料
区别于霍夫曼编码:算数编码根据信源符号估计出各个 元素的概率,然后进行迭代计算;霍夫曼编码必须预先得 知信源的出现概率。
算术编码的过程
(1)设定编码区间的高端位h,编码区间的低端位为l,编 码区间的长度为len,设fh为某个编码字符所分配区间的高 端,fl为该编码字符所分配区间的低端。 (2)根据有限的信源符号估算出各元素的概率和区间。 (3)对于待编码元素b1,根据(2)估算出的概率和区间, 计算出该元素编码后新的h和l,计算公式如下: l=l+len×fl 和h=l+len×fh 得到新的区间高端、低端和区间范围len=h-l。 (4)对于下一个编码元素b2,利用上述公式重新计算h、l 和len。
熵编码-建立在随机过程的统计特性基础上
有一幅39个象素组成的灰度图像,灰度共有5级,分别 用符号A、B、C、D和E表示,39个象素中出现灰度A的 象素数有15个,出现灰度B的象素数有7个,出现灰度C 的象素数有6个等等,如下表所示。如果用3个位表示5 个等级的灰度值,也就是每个象素用3位表示,编码这 幅图像总共需要117位。 符 号 出现的次数 概率 A 15 15/39 B 7 7/39 C 6 6/39 D 6 6/39 E 5 5/39
S=(A,B,C,D,E) 符号 出现的次数(Pi) A 15(0.3846) B 7(0.1795) C 6(0.1538) D 6(0.1538) E 5(0.1282)
log2(1/pi) 1.38 2.48 2.70 2.70 2.96
分配的代码 需要位数 0 15 100 21 101 18 110 18 111 15
• 无损压缩编码:解压后数据与原始数据相同,无任何 偏差。
特点:压缩比比较低,一般在2:1~5:1。
常用编码方法:行程编码(利用相关性)、霍夫曼 编码和算术编码(利用概率分布)等。
应用:传真机,文本文件传输等。
• 有损压缩:解压后数据与原始数据有一定偏差,但 仍可以保证一定的视听效果。 特点:压缩比最高可达100:1,压缩比越高,解压 后视频、音频质量越差。
i 1 i 1 n n
无损பைடு நூலகம்缩编码方法
无损编码(无失真编码):又称统计编码, 包括行程编码、LZW编码、霍夫曼编码、 算术编码等。 根据信息出现的概率的分布特性而进行的 压缩编码。 • A: 行程编码RLC:主要检测重复的比特 或者字符序列,并用他们出现的次数取而 代之,它计算信源符号出现的行程长度, 然后将行程长度转换为代码。
图7-1 LZW 编码过程
举例:如果有一个输入的字符流abacaba。
读取第1个字符a,a可以在编译表中找到,修改“前缀=a”; 读取第2个字符b,这时的ab在编译表中找不到,那么添加#4=ab到编 译表,同时输出前缀码(也就是 a )的索引 #0 到编码流,修改“前缀 =b”; 读取第3个字符a,这时的ba在编译表中找不到,添加编译表#5=ba, 输出前缀码(b)的索引#1到编码流,修改“前缀=a”;
B. LZW编码
LZW( Lempel Ziv Welch)压缩编码是一种压缩 效率较高的无损数据压缩技术。该技术取得了LZW专 利,被广泛用于图像压缩领域。
LZW压缩基本原理 LZW压缩的基本原理是:LZW压缩把每一个第 一次出现的字符串用一个数值来编码,在还原程 序中再将这个数值还成原来的字符串。
对于可预测性不大的数据具有较好的处理效果.
LZW压缩编码过程
LZW压缩过程中主要处理:
输入流,即为原始图像数据流;
输出流,压缩所生成的代码流;
字符串表,记录代码与数据的转换 关系,是压缩算法的核心。
• 一般一个字符串表项大于255但小于512,这 时我们可以使用9 bit 的代码。
LZW压缩程序工作时,根据内存大小 开辟了两个缓冲区: 当前前缀码(Current Prefix)缓 冲区,用于存放上一次处理的代码; 当前串(Current String)缓冲区, 用于存放前缀码所代表的字符串,并 把两种字符串连接在一起。
评价一种数据压缩技术的性能好坏有三个关键指标:压 缩比、再现质量、压缩和解压的速度。此外,还要考虑 压缩算法所需要的软件和硬件。
压缩比:输入数据量/输出数据量 再现质量:与压缩类型有关
无损压缩系统不担心图像(音频)质量; 有损压缩系统压缩前后图像(音频)不完全一样, 但不影响视(听)觉。
压缩和解压的速度:速度越快越好
常用编码:预测编码、变换编码、矢量量化编码、 分层编码、子带编码等
应用:图像、声音、动态视频的压缩。 多媒体技术侧重于有损压缩,并出台了一系列的国际 标准
图像统计特性
• 图像的信息量
信源符号Si概率:
0 p( Si ) 1, p(Si ) 1
i 1 n
符号Si的信息量: I (Si ) log2 (1/ p(Si )) log2 p(Si )
l=l+len×fl=0.5+(0.7-0.5)×0=0.5 h=l+len×fh=0.5+(0.7-0.5)×0.1=0.52
新的间隔就取[0.5, 0.7]的第一个十分之一[0.5,0.52]。 依此可得到所有新的间隔,见表7-1编码过程。消息的编 码输出可以是最后一个间隔中的任意数,如从 [0.5143876, 0.514402]中选择一个数输出:0.5143887。
本例中,N稍大于H,是最佳: N=1* 0.3846+3*( 0.1795+ 0.1538+ 0.1538+ 0.1282) =2.2305 总结: (1)N要稍大于H
(2)保证解码唯一性,短码不构成长码前缀,编码不唯一。
(3)接收端与发送端保存相同霍夫曼码表,编码效率一致。
•C: 算术编码:
算术编码是另一种最佳编码方式,它与霍夫曼编码一样,也是对 出现概率较大的符号采用短码,对概率较小的符号采用长码。但 是它的编码原理却与霍夫曼编码很不相同,也不局限于仅使用整 数码,编码效率比霍夫曼编码高。常用于图像数据压缩标准(如 JPEG,JBIG)中。 •基本思想:把一个信源集合表示为实数线上的0到1之间的一个 区间,这个集合中的每个元素都用来压缩这个区间。信源集合的 元素越多,所得到的区间就越小,当区间变小时,就需要一些更 多的数位来表示这个区间。算术编码首先假设一个信源的概率模 型,然后用概率来缩小表示信源的区间。 •二进制编码,信源符号只有两个。因此在算术编码初始阶段可 预置一个大概率Pe和小概率Qe,然后对被编码比特流符号进行 判断。设编码初始化子区间为[0,1],Qe从0算起,则Pe=1-Qe. 随着被编码数据流符号的输入,子区间逐渐缩小。
• 离散信源
S1, S2 , ..., Sn X p(S ), p(S ), ..., p(S ), 2 n 1
p ( Si ) 1
i 1
n
• 图像的信息熵
H ( X ) p( Si ) I ( Si ) p( Si ) log 2 p( Si ) 1
读下一个字符c,这时的ac在编译表中找不到,添加#6=ac到编译表, 输出前缀码(a)的索引#0到编码流,修改“前缀= c”;
读下一个字符 a,这时的ca在编译表中找不到,添加#7=ca到编译表, 输出前缀码(c)的索引#2到编码流,修改“前缀=a”;
读下一个字符b,这时的ab可找到编译表的#4=ab,修改“前缀=ab”;
动态视频15帧/s,全动态视频25帧/s和30帧/s。
客观尺度:均方误差、信噪比(SNR)、峰值信噪 比(PSNR)
3、数据冗余的类型与压缩方法分类
A:数据冗余的类型 空间冗余、时间冗余、信息熵冗余、视觉冗余、听 觉冗余和其他冗余 B:数据压缩方法的分类
根据解压后数据压缩的保真度,数据压缩技术分为 无损压缩编码和有损压缩编码两大类。
就是说,表中的第i项是由字符串<i>组成, 并对应着代码值<i。假如我们有一个字母 表a、b、c、d,那么初始化字符串表就是: #0=a,#1=b,#2=c,#3=d。可以看出,其中 第1、2、3、4项对应着代码值分别为0、1、 2、3。表的第<256>项和第<257>项分别用 于清零和结束代码,以便于确定每个编码 条文的开始和结束。而加入字串表的第一 个多字符项是从代码值<258>位置开始的。
(5)重复上述过程以得到新的间隔值。迭代次数越多,区 间越小,所需表示区间的数据位数越多。
如果有一个二进制消息序列的输入为:10 00 11 00 10 11 01。其中第一个输入符号是10,它的编码区间范围是 [0.5, 0.7]。第二个符号00的编码区间范围是[0, 0.1), 根据计算公式:
读取最后一个字符 a,这时的aba在编译表中找不能,添加#8=aba到 编译表,输出前缀码(ab)的索引#4到编码流,修改“前缀=a”;
没有数据了,输出前缀码(a)的索引#0到编码流,最后的输出结果 就是:#0#1#0#2#4#0。
•B:
霍夫曼编码
霍夫曼(Huffman)在1952年提出了对统计独立信源能达到最 小平均码长的编码方法。霍夫曼码通常称为最优码。 编码的基本思想:是根据信源符号出现的概率大小进行排 序,出现的概率大的符号分配短码,反之分配长码。在分 配代码过程中,需要建立一个n阶二叉树。 编码过程如下: ①对信源符号按其出现的概率进行递减排序; ②将两个最小的概率相加,其和作为新符号的概率; ③重复①和②,直到概率之和达到1为止; ④每次合并消息时,将被合并的消息赋予1和0或者0和1; ⑤寻找从每个信源符号到概率为1处的路径,记录下路径上 的 1和 0; ⑥从树根节点到叶子节点,对每个信源符导列出0、1序列。
第6讲 多媒体数据压缩 和信息编码
内 容 提 要
多媒体数据压缩基本特征和方法