510 likes | 678 Views
编码解码. 编码:是将语音或是视频信号改编成数字信号的过程; 解码:将数字信号转换成模拟信号的过程; 调制解调器: 通常编码运算复杂度比解码低 数据压缩的目的:为了数据的存储和传输; 解压缩:对数据进行还原. 一、多媒体数据压缩的必要性. 多媒体技术特点:实时性 发展: 在图像文件编码过程中图像数据和识别信息是必不可少的两项,而 压缩 原理则是经常被采用的要素;. 多媒体数据量庞大. 庞大的数据量要求人们必须对数据进行压缩 符号:较小 音频、图像、视频:大. 数字化音频数据量.
E N D
编码解码 • 编码:是将语音或是视频信号改编成数字信号的过程; • 解码:将数字信号转换成模拟信号的过程; • 调制解调器: • 通常编码运算复杂度比解码低 • 数据压缩的目的:为了数据的存储和传输; • 解压缩:对数据进行还原
一、多媒体数据压缩的必要性 • 多媒体技术特点:实时性 • 发展: • 在图像文件编码过程中图像数据和识别信息是必不可少的两项,而压缩原理则是经常被采用的要素;
多媒体数据量庞大 庞大的数据量要求人们必须对数据进行压缩 • 符号:较小 • 音频、图像、视频:大
数字化音频数据量 例1:计算存储3分30秒的CD音质立体声歌曲所需的存储空间 • 44.1kHz×16×2×210秒 = 37044KB = 36.2M (未经压缩的数字声音的数据率(b/s) =采样频率(Hz)*样本精度(bit)*声道数)
数字化图像数据量 例2:存储一幅帧分辨率为720×576的PAL制式数字电视信号的静态真彩色图像需要的存储空间: • 720×576 ×3B≈1.2MB 真彩色色彩深度24bit,即3个字节
数字化视频数据量 例3:计算1分钟PAL数字电视信号产生的数据量(分辨率为720×576 ,每秒25帧)不含音频数据 • 1.2MB×25×60≈1.76GB
总结 • 数据量过大,存储问题(D9,大容量硬盘); • 实际播放时数据传输率限制;(光盘、网络) • 日常工作生活中:WinRAR、WinZip
二、数据压缩的可能性 • 能够对多媒体信息进行压缩的前提就是因为数据中存在大量的冗余,尤其是声音和图像; • 数据压缩的目的就是尽可能的消除这些冗余;
静态图像空间冗余 • 在静态图像中存在的空间冗余 • 原理:一幅图像,大部分区域具有相同的物理特性(亮度、颜色等) • 应用算法:RLC
视频时间冗余 • 在动态视频中存在的时间冗余 • 原理:视频序列中相邻的帧具有相同的画面或者几乎相同的画面,因此没有必要记录同样的画面。只记录两幅画面之间的差别即可; • 应用算法:MPEG
视觉听觉冗余 • 音频、静态图像等 • 依据:人的听觉视觉系统对某些部分的数据信息不敏感,甚至感觉不出来; • 算法:MP3、JPEG
三、数据压缩的方法 1)无损压缩 • 压缩时不损失任何信息,解压时可以完全恢复成原来的数据; • 利用原始信息中的相关性进行的数据压缩不损失原信息的内容,可实现无损压缩 • 统计式:Huffman编码、算术编码(AC)、行程编码(RLC);字典式(LZW)编码
有损压缩:数据压缩后不能将原来的文件信息完全保留的压缩;有损压缩:数据压缩后不能将原来的文件信息完全保留的压缩; • 在很多情况下,数据压缩还原过后允许有一定的损失,不过应当能基本表述原信息的内容,否则没有意义; • 依据:在原始信息中存在一些对用户来说不重要、不敏感、可以忽略的内容; • JPEG、MPEG
数据压缩技术的重要指标 • 压缩比大小:压缩前后所需的信息存储量之比要大; • 解压缩效率高低:实现压缩的算法要简单,压缩、解压速度快,尽可能地做到实时压缩和解压; • 数据完整性:恢复效果要好,要尽可能的完全恢复原始数据。
图像压缩方法 无损压缩 有损压缩 Huffman编码 预测编码 (DCT)变换编码 混合编码 RLE行程编码 JPEG DPCM AC算术编码 MPEG ADPCM LZ字典式编码 运动补偿(帧间预测)
1、Huffman编码 • 先对要编码的数据整体所采用的符号作个统计; • 采用变长编码:对于出现频率高的信息,编码长度较短,对于出现频率低的信息,编码长度较长,从而使得总的数据量变小;
Huffman — 步骤 :将信源符号按概率递减顺序排列; :把两个最小的概率加起来,作为新符号的概率; :重复和 ,直到概率和达到1为止; :在每次合并消息时,将被合并的消息赋予1和0或赋予0和1; :寻找从每一信源符号到概率为1的路径,记录下路径上的1和0; :对每一符号写出从码树的根到终节点1、0序列。
练习 设某信源有5种符号x={A1,A2,A3,A4,A5}。在数据中出现的概率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
Huffman — 特点 • 压缩比大小:与信号源中各字符出现概率有关 • 压缩解压缩复杂度:由于编码长度可变,压缩及解压缩较费时 • 无损压缩
2、行程编码(RLC) • (Run Length Coding)数据流中相同的字符会连续重复出现,连续重复出现的字符长度叫行程长度Run Length ; 例:设有数据流“AAABBBBCCCCCDAAAAAA”,试计算该字符串行程编码: 3A4B5C1D6A
原始数据所需存储空间: • 50×3B+2×3B+1×3B+9×3B+72×3B=402B • 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 • 压缩比率:402:25=16.08 : 1
练习 下列矩阵为计算机屏幕上某数字图像(色彩深度为24位真彩色)的一个截取片断,试对该片断像素数据进行行程编码(行程长度取1Byte),并计算可节省多少字节的存储空间。(提示:计算机采用逐行扫描)
答案 RLC编码:155014501350125011 原数据量=3B*25=72B RLC编码后数据量=4B*9=36B 可以节省数据量36B
RLC — 特点 • 压缩比:与数据流中字符重复出现的概率及长度有关;数据中字符重复出现次数相同的情况下,重复字符串的平均长度越长,压缩比越高;在重复字符串的平均长度相同的情况下,字符重复出现的次数越多,压缩比也越高 • 解、压缩效率高:算法简单,速度快 • 无损压缩
算术编码(AC) Arithmetic coding • 静态模型 • 自适应模型
算术编码性能分析 • 算术编码的特点 ①不必预先定义概率模型 , 自适应模式具有独特的优点;②信源符号概率接近时 , 建议使用算术编码 , 这种情况下其效率高于 Huffman 编码;③算术编码绕过了用一个特定的代码替代一个输入符号的想法 , 用一个浮点输出数值代替一个流的输入符号 , 较长的复杂的消息输出的数值中就需要更多的位数。
算术编码性能分析 ④算术编码实现方法复杂一些 , 但 JPEG 成员对多幅图像的测试结果表明 , 算术编码比Huffman 编码提高了 5% 左右的效率 , 因此在 JPEG 扩展系统中用算术编码取代 Huffman 编码。
字典式(LZ)编码 • LZ是其发明者J.Ziv和A.Lempel两个犹太人姓氏的缩写。此二人于1977年发表题为《顺序数据压缩的一个通用算法》的论文,论文中描述的算法被后人称为LZ77算法。 • 1978年,二人又发表了该论文的续篇,描述了后来被命名为LZ78的压缩算法。
LZW编码 • 1984年,Terry Welch发表论文描述了他在Sperry研究中心的研究成果,也就是后来非常有名的LZW算法。 • 它实质上是LZ78算法的一个变种,但被认为是一个独立的编码算法。LZW继承了LZ77和LZ78压缩效果好、速度快的优点,而且在算法描述上更容易被人们接受,实现也相对简单。
字典式(LZ)编码 • 其实LZ系列的算法并不新鲜,其中既没有高深的理论背景,也没有复杂的数学公式。它们只是简单的延续了千百年来人们对字典的追崇和喜好,并用一种极为巧妙的方式将字典技术运用于通用数据压缩领域。 • 简单的说如果你习惯用字典中的页码和行号代替文章中的每个单词的时候,那实际上你已经掌握了LZ系列算法的真谛,因此这类编码算法被统称为Dictionary coders。
LZW编码 • 而在其后发展出来的各式各样的字典编码算法,基本上都是这三种编码算法的分支或变体。也就是说LZ77、LZ78和LZW是字典编码中最基础的3种编码算法
LZ编码与传统统计编码比较 • 在压缩效果上字典式编码大大超过了Huffman编码; • 而且在实现上,压缩和解压缩的速度也异常惊人。 • 于是LZ系列算法的优越性很快就在数据压缩领域里体现出来,使用LZ系列算法的工具软件数量呈爆炸式增长
LZ78和LZW一时间几乎统治了UNIX和DOS两大平台。 • 然而随着时间流逝,事情变得耐人寻味。目前为止占据个人用户计算机的主流压缩工具几乎都采用LZ77变种算法; • 更为优秀的LZ78和LZW没有成为最主流的算法?LZ77与它们有什么不同?
LZ字典编码专利限制 • LZ77完全没有专利限制; • LZ78在美国稍稍涉及到一些专利禁止区; • 而LZW专利权最终归属于Unisys公司;
ZIP格式的诞生 • DOS环境下由于硬件资源的有限,标准配置360kB的5.25寸软盘;网络条件十分有限,14.4kbit/s • 1985年SEA公司开发的MS-DOS环境下第一个应用LZW算法的ARC(商业软件) • Phillip W.Katz(菲利普·卡兹)
ZIP格式的诞生 • DEFLATE:完美地结合LZ77和Huffman编码可将多个文件压缩到一个文件中,无论压缩比、压缩速度都全面超过了商业软件ARC • 开放ZIP格式,任何人都可以自由使用ZIP编码算法而不需要缴纳任何专利费用。这个决定最终改变了压缩的世界,使得通用数据无损压缩领域再无法出现垄断的商业巨鳄
LZW编码 • ”转换表“(字典);前缀;当前字符 • P57
LZW性能分析 • 对于可预测性不大的数据具有较好的处理效果 • 对于简单图像、平滑且噪声小的信号源具有较高的压缩比,且压缩解压缩速度快; • 对于数据流中连续重复出现的字节和字串,具有很高的压缩比,除用于图像数据的压缩处理外,还被用于文本程序等领域的数据压缩
JPEG编码 P80:两种基本压缩算法 • 采用以离散余弦变换DCT为基础的有损压缩算法; • 采用以预测编码技术为基础的压缩算法;
(DCT)变换编码 • P81 • 基本思想:利用图像块内像素值之间的相关性,把图像变换到一组新的基上,使得能量集中到少数几个变换系数上,通过存储这些系数而达到压缩的目的;
预测编码 • 基本思想:编码器记录与传输的不是样本的真实值,而是真实值与预测值的差; • 基本过程:首先根据算法模型,用原有的样本值对新样本进行预测,得到新样本的预测值,接着,取新样本的实际数值,然后和预测值进行比较,二者相减得到差值,最后对差值进行编码
JPEG压缩流程 P84 :通过正向离散余弦变换把空间域表示的图像变换成频率域表示的图像; :加权函数对DCT系数进行量化; :对量化系数进行行程编码(RLC)及Huffman无损编码
MPEG压缩原理 • 1. 动态图像特点 • 动态图像以每秒25 帧播放,在如此短的时间内,画面通常不会有大的变化; • 在画面中变化的只是运动的部分,静止的部分往往占有较大的面积; • 即使是运动的部分,也多为简单的平移。 压缩原理: 记录某一帧,对于随后的帧只记录和前一帧不同;播放时,根据前一帧的画面和两帧的不同构造出当前画面
MPEG压缩原理 • 2.压缩中的问题 • 如果只保留第一帧,其他帧采用差异帧。那么后面的每一帧都需要从前一帧计算出来,恢复时也必需一帧帧顺序进行。这样就无法想跳到哪一点就从哪一点进行播放。一旦某一帧数据出了问题,后面的帧更无法恢复。 • 由于差异帧的压缩是有损的。上述方式在压缩和解压缩时将发生误差的积累,积累到一定程度势必造成很大的失真。
MPEG压缩原理 • 3. 解决方法 • 每隔若干帧(如30帧)之后记录一幅原始(完整)帧 • 运动补偿的矢量算法
课堂练习 • 简述多媒体数据压缩的可能性? • 设某信源有5种符号x={A1,A2,A3,A4,A5}。在数据中出现的概率p={0.25,0.22,0.20,0.18,0.15},试给出Huffman编码方案,写出每个符号对应的Huffman编码。
课堂练习 • 假设有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,请对该输入序列进行静态算术编码。
课堂练习 • 假设有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个字符。
课堂练习 • 输入序列为:“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)