多媒体数据压缩编码方法资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算术编码基本原理
基本原理:将出现概率较多的“事件”(可以是字符或 字符串),用尽可能少的位或字节来表示。 算术编码是一种变长码,主要针对出现的概率高的事件 序列标识的信息进行压缩。 两个基本参数:符号概率和编码间隔。
信源符号的概率决定压缩编码的效率,也决定编码过程中信源 符号的间隔,间隔则决定了符号压缩后的输出。 例如一个信源符号“10 ”可表示成[0.5, 0.7]。信息越长,这 个间隔就越小,一个较长的信源符号可表示成[0.514384, 0.51442],表示这一间隔所需的二进制位数就越多。也就是说,
第6讲 多媒体数据压缩 和信息编码
内 容 提 要
多媒体数据压缩基本特征和方法
图像统计特性
无损数据压缩编码方法 有损数据压缩编码方法
多媒体数据压缩基本特征和方法
1.数据压缩的处理过程:
编码过程:对原始数据进行压缩,便于存储和传输。 解码过程:对压缩数据进行解压,恢复成可用数据。
2、数据压缩技术的性能指标
常用编码:预测编码、变换编码、矢量量化编码、 分层编码、子带编码等
应用:图像、声音、动态视频的压缩。 多媒体技术侧重于有损压缩,并出台了一系列的国际 标准
图像统计特性
• 图像的信息量
信源符号Si概率:
0 p( Si ) 1, p(Si ) 1
i 1 n
符号Si的信息量: I (Si ) log2 (1/ p(Si )) log2 p(Si )
区别于霍夫曼编码:算数编码根据信源符号估计出各个 元素的概率,然后进行迭代计算;霍夫曼编码必须预先得 知信源的出现概率。
算术编码的过程
(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。
• 离散信源
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
动态视频15帧/s,全动态视频25帧/s和30帧/s。
客观尺度:均方误差、信噪比(SNR)、峰值信噪 比(PSNR)
3、数据冗余的类型与压缩方法分类
A:数据冗余的类型 空间冗余、时间冗余、信息熵冗余、视觉冗余、听 觉冗余和其他冗余 B:数据压缩方法的分类
根据解压后数据压缩的保真度,数据压缩技术分为 无损压缩编码和有损压缩编码两大类。
本例中,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. 随着被编码数据流符号的输入,子区间逐渐缩小。
(5)重复上述过程以得到新的间隔值。迭代次数越多,区 间越小,所需表示区间的数据位数越多。
如果有一个二进制消息序列的输入为:10 00 11 00 10 11 01。其中第一个输入符号是10,它的编码区间范围是 [0.5, 0.7]。第二个符号00的编码区间范围是[0, 0.1), 根据计算公式:
就是说,表中的第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>位置开始的。
图7-1 LZW 编码过程
举例:如果有一个输入的字符流abacaba。
读取第1个字符a,a可以在编译表中找到,修改“前缀=a”; 读取第2个字符b,这时的ab在编译表中找不到,那么添加#4=ab到编 译表,同时输出前缀码(也就是 a )的索引 #0 到编码流,修改“前缀 =b”; 读取第3个字符a,这时的ba在编译表中找不到,添加编译表#5=ba, 输出前缀码(b)的索引#1到编码流,修改“前缀=a”;
例如用数值0x100代替字符串“abccddeee”这样每 当出现该字符串时,都用0x100代替。把数据流中复 杂的数据用简单的代码来表示,就起到了压缩的作用。 并把代码和数据的对应关系建立一个转换表,又叫 “字符串表”或“编码对照表”。
LZW压缩的特点
压缩过程复杂,但过程完全可逆。 对于简单图像和平滑且噪音小的信号源具有较高的压 缩比,并且有较高的压缩和解压缩速度。 对机器硬件条件要求不高。 可压缩任何类型和格式的数据。对于任意宽度和像素 位长度的图像,都具有稳定的压缩过程。 常用于GIF格式的图像压缩,其平均压缩比在2:1以 上,最高压缩比可达到3:1。 用于文本程序等数据压缩领域,对于数据流中连续重 复出现的字节和字串,LZW压缩技术具有很高的压缩比。
读下一个字符c,这时的ac在编译表中找不到,添加#6=ac到编译表, 输出前缀码(a)的索引#0到编码流,修改“前缀= c”;
读下一个字符 a,这时的ca在编译表中找不到,添加#7=ca到编译表, 输出前缀码(c)的索引#2到编码流,修改“前缀=a”;
读下一个字符b,这时的ab可找到编译表的#4=ab,修改“前缀=ab”;
熵编码-建立在随机过程的统计特性基础上
有一幅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
B. LZW编码
LZW( Lempel Ziv Welch)压缩编码是一种压缩 效率较高的无损数据压缩技术。该技术取得了LZW专 利,被广泛用于图像压缩领域。
LZW压缩基本原理 LZW压缩的基本原理是:LZW压缩把每一个第 一次出现的字符串用一个数值来编码,在还原程 序中再将这个数值还成原来的字符串。
i 1 Βιβλιοθήκη Baidu 1 n n
无损压缩编码方法
无损编码(无失真编码):又称统计编码, 包括行程编码、LZW编码、霍夫曼编码、 算术编码等。 根据信息出现的概率的分布特性而进行的 压缩编码。 • A: 行程编码RLC:主要检测重复的比特 或者字符序列,并用他们出现的次数取而 代之,它计算信源符号出现的行程长度, 然后将行程长度转换为代码。
读取最后一个字符 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序列。
• 无损压缩编码:解压后数据与原始数据相同,无任何 偏差。
特点:压缩比比较低,一般在2:1~5:1。
常用编码方法:行程编码(利用相关性)、霍夫曼 编码和算术编码(利用概率分布)等。
应用:传真机,文本文件传输等。
• 有损压缩:解压后数据与原始数据有一定偏差,但 仍可以保证一定的视听效果。 特点:压缩比最高可达100:1,压缩比越高,解压 后视频、音频质量越差。
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
评价一种数据压缩技术的性能好坏有三个关键指标:压 缩比、再现质量、压缩和解压的速度。此外,还要考虑 压缩算法所需要的软件和硬件。
压缩比:输入数据量/输出数据量 再现质量:与压缩类型有关
无损压缩系统不担心图像(音频)质量; 有损压缩系统压缩前后图像(音频)不完全一样, 但不影响视(听)觉。
压缩和解压的速度:速度越快越好
对于可预测性不大的数据具有较好的处理效果.
LZW压缩编码过程
LZW压缩过程中主要处理:
输入流,即为原始图像数据流;
输出流,压缩所生成的代码流;
字符串表,记录代码与数据的转换 关系,是压缩算法的核心。
• 一般一个字符串表项大于255但小于512,这 时我们可以使用9 bit 的代码。
LZW压缩程序工作时,根据内存大小 开辟了两个缓冲区: 当前前缀码(Current Prefix)缓 冲区,用于存放上一次处理的代码; 当前串(Current String)缓冲区, 用于存放前缀码所代表的字符串,并 把两种字符串连接在一起。
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。
0
1
A 0
0 1 C
1 0 D 1 E
B
这幅图像的熵为: H(S)=(15/39) log2(39/15) + (7/39)log2(39/7) + (7/39)log2(39/7) + (6/39)log2(39/6) +(5/39)log2(39/5) = 2.1859 这说明每个符号可用2.1859位表示,39个象素需用85.25位。 编码中以N表示编码器输出码字的平均码长,用熵值衡量是 否最佳编码,即:当N>>H(S)有冗余,不是最佳;N< H(S),不 可能;N≈H(S)(N稍大于H(S)),是最佳编码。