精华内容
下载资源
问答
  • 多媒体数据压缩编码技术概述.pptx
  • 多媒体数据压缩基本知识以及压缩
  • 多媒体数据压缩编码技术.pptx
  • 多媒体数据压缩编码技术.pptx
  • 多媒体数据压缩编码介绍.pptx
  • 第四章多媒体数据压缩编码技术单项选择题1-7:1、下列哪些说法是正确的:答:(b)(1)冗余压缩法不会减少信息量,可以原样恢复原始数据。(2)冗余压缩法减少冗余,不能原样恢复原始数据。(3)冗余压缩法是有损压缩法。(4...

    第四章多媒体数据压缩编码技术

    单项选择题1-7:

    1、下列哪些说法是正确的:答:(b)

    (1)冗余压缩法不会减少信息量,可以原样恢复原始数据。

    (2)冗余压缩法减少冗余,不能原样恢复原始数据。

    (3)冗余压缩法是有损压缩法。

    (4)冗余压缩的压缩比一般都比较小。

    (A)(1)(3)(B)(1)(4)(C)(1)(3)(4)(D)仅(3)2、图象序列中的两幅相邻图象,后一幅图象与前一幅图象之间有较大的相关,这是:答:(b)

    (A)空间冗余(B)时间冗余(C)信息熵冗余(D)视觉冗余

    3、下列哪一种说法是不正确的:答:(a)

    (A)预测编码是一种只能针对空间冗余进行压缩的方法

    (B)预测编码是根据某一种模型进行的

    (C)预测编码需将预测的误差进行存储或传输

    (D)预测编码中典型的压缩方法有DPCM、ADPCM

    4、下列哪一种说法是正确的:答:(c)

    (A)信息量等于数据量与冗余量之和

    (B)信息量等于信息熵与数据量之差

    (C)信息量等于数据量与冗余量之差

    (D)信息量等于信息熵与冗余量之和

    5、P 64K是视频通信编码标准,要支持通用中间格式CIF,要求P至少为:

    答:(d)

    (A)1 (B)2 (C)4 (D)6

    展开全文
  • 第4章多媒体数据压缩编码技术.ppt
  • 文档介绍:第3章多媒体数据压缩3.1数据压缩的基本原理和方法3.2音频压缩标准3.3图像压缩标准3.4视频压缩标准奇坤海候酌副热稠双疙技等裴傲病赢挺朋术妖宴吧稻亮妥氛享鸦叁淖蚌玄第3章多媒体数据压缩第3章多媒体数据...

    文档介绍:

    第3章多媒体数据压缩3.1数据压缩的基本原理和方法3.2音频压缩标准3.3图像压缩标准3.4视频压缩标准奇坤海候酌副热稠双疙技等裴傲病赢挺朋术妖宴吧稻亮妥氛享鸦叁淖蚌玄第3章多媒体数据压缩第3章多媒体数据压缩3.1数据压缩的基本原理和方法所谓“数据”,通常是指信源所发信号的数字化表示或记录所谓数据压缩,就是以最少的数码表示信源所发出的信号,减少容纳给定消息集合或数据采样集合的信息空间。信息空间亦即被压缩对象是指:物理空间:如储存器、磁盘、光盘等数据存储介质时间区间:如传输给定消息集合所需的时间电磁频谱区域:如传输给定消息集合所需的带宽等。压缩的必要性音频、视频的数据量很大,如果不进行处理,计算机系统几乎无法对它进行存取和交换。猫琳拥峨欢滓烩欢恨任欣绝父恨扛主闸咋因卵榔辉屑蚌袒矫豢钒绦杰昭溃第3章多媒体数据压缩第3章多媒体数据压缩3.1数据压缩的基本原理和方法1950年在计算机普及之前,世界范围内信息量的增长速度是每150年翻一番;随着计算机的广泛应用,1950-1960年间信息量的增长达到每10年翻一番;1960-1992年间缩短为每5年翻一番。人们预计2020年以后信息量每73天就要翻一番。几个未经压缩的数字化信息的例子:B5(180x255mm)、300dpi(12像素点/mm)-------6.61MB/页----CD-ROM98页双声道立体声激光唱盘(CD-DA):44.1x103x16x2=1.41Mb/s,650M:----约一小时数字音频磁带(DAT):48x103x16=768kb/s巡显秒断涣隐啄椒行答篙稳映戎欣欠丰因般桐柏钉瘫扬毙赘痞植谅始蹲竖第3章多媒体数据压缩第3章多媒体数据压缩3.1数据压缩的基本原理和方法SIF(SourceInputFormat)格式,NTSC制式,4:4:4采样每帧数据:352x240x3=253KB每秒数据:253x30=7.603MB/sCCIR(mitteeforRadio)格式,PAL制式,4:4:4采样每帧数据:720x576x3=1.24MB每秒数据:1.24x25=31.3MB/s实验表明,176×144的YUV原始视频在10Mbps的LAN上传送速率是3帧/秒左右。陆地卫星遥感图片的水平和垂直分辨率分别为2340及3240,四波段、采样精度为7bit的一幅图像的数据量为212Mb,按每天30幅计算,其数据量为6.36Gb,而每年的数据量则高达2300Gb。污薪潘釜息衍缅蒜娟啪揪尸锑赁鄙陨源邯居蛔霍迷咐蒜庶漳甭鞘肘球爸擦第3章多媒体数据压缩第3章多媒体数据压缩3.1数据压缩的基本原理和方法压缩的可行性信息论认为:若信源编码的熵大于信源的实际熵,该信源中一定存在冗余度。空间冗余、时间冗余、视觉冗余、听觉冗余等城袒沦斤名碧勋用足拽挠空阮掂丈其旬马热功瑟缨辑瑞隙庸讫颜鞍瘦逻鹰第3章多媒体数据压缩第3章多媒体数据压缩3.1.1数据压缩技术的性能指标有三个关键参数评价一个压缩系统压缩比压缩性能常常用压缩比定义(输入数据和输出数据比)图象质量无损压缩(图象质量不变)有损压缩,失真情况很难量化,只能对测试的图象进行估计。压缩和解压的速度压缩和解压可能不同时用,压缩、解压速度分别估计。骇群未九藩称岔傣孤斋召邵需矫娘启追荤隋敌赠恫闺歹郎孔羌尺笼隆隐伊第3章多媒体数据压缩第3章多媒体数据压缩3.1.2数据冗余的类型与压缩方法分类数据冗余的类型空间冗余时间冗余信息熵冗余视觉冗余听觉冗余其它冗余结构冗余知识冗余挪漓怕寡溉俘潦荆仕吱慢笺钝尖划渗差师拷睛蛤警传埂热角标釉逾慎币龚第3章多媒体数据压缩第3章多媒体数据压缩3.1.2数据冗余的类型与压缩方法分类空间冗余这是图像数据中经常存在的一种冗余。在同一幅图像中,规则物体和规则背景的表面物理特性具有相关性,这些相关性的光成像结构在数字化图像中就表现为数据冗余。A谰舍施握镍燎煽刮讣忆沤恶减纤呜屈葛盛镊枫驴蛙派遭圆帘媳莫堕胯唤续第3章多媒体数据压缩第3章多媒体数据压缩3.1.2数据冗余的类型与压缩方法分类时间冗余这是序列图像(电视图像、运动图像)和语音数据中经常出现的冗余。T教鸽傻只窗沟蒲俭知胖渡罚街义派腊捻哗宫扁府槽占泡卵喜畏析罕搂痉梧第3章多媒体数据压缩第3章多媒体数据压缩3.1.2数据冗余的类型与压缩方法分类信息熵冗余(编码冗余)信息熵(entropy)是指一组数据所携带的信息量H=-Pilog2Pi(i=0~k-1)k为数据类数或码元个数Pi为第i个数据类数或码元发生的概率d=Pib(yi)(i=0~k-1)b(yi)是分配给码元yi的比特数,理论上应该是b(yi)=-log2Pi,实际中很难估计出码元的的概率,当选用等概率时,d则大于H通绥傅绅诧尽局触钡海煞炕迸啸庶近颗羽请栏***爹予赔财碑皱毙饲填蕾定第3章多媒体数据压缩第3章多媒体数

    内容来自淘豆网www.taodocs.com转载请标明出处.

    展开全文
  • 第四章 多媒体数据压缩编码术 一、多媒体数据压缩编码的重要性和分类 二、量化。。。。
  • 多媒体课程课件,多媒体数据压缩编码
  • 本文介绍了在多媒体通信中常用的图像数据压缩编码方法及图像的压缩标准,重点介绍JPEG和MPEG
  • 介绍了在多媒体通信中常用的图像数据压缩编码方法,重点介绍JPEG和MPEG。
  • 多媒体数据压缩

    2012-12-04 10:51:40
    多媒体数据压缩技术介绍,本文介绍了多媒体通信中的图像数据压缩编码方法。
  • JPEG)编码算法及压缩过程的实现摘要本文首先介绍了静态...关键词:图像压缩有损压缩JPEG离散余弦变换DCT量化第一章图像压缩编码的综述1.1图象压缩的目的和方法图象的数字化表示使得图象信号可以高质量地传输,并便...

    JPEG)编码算法及压缩过程的实现

    摘要

    本文首先介绍了静态图像压缩(JPEG)编码算法的基本原理、压缩的实现过程及其重要过程的离散余弦变换(DCT)算法的实现原理及软件实现的例程,其次着重介绍了压缩过程中的DCT、量化和编码三个重要步骤的实现原理。

    关键词:图像压缩有损压缩JPEG离散余弦变换DCT量化

    第一章图像压缩编码的综述

    1.1图象压缩的目的和方法

    图象的数字化表示使得图象信号可以高质量地传输,并便于图像的检索、分析、处理和存储。但是数字图像的表示需要大量的数据,必须进行数据的压缩。即使采用多种方法对数据进行了压缩,其数据量仍然巨大,对传输介质、传输方法和存储介质的要求较高。因此图象压缩编码技术的研究显得特别有意义,也正是由于图象压缩编码技术及传输技术的不断发展、更新,推动了现代多媒体技术应用的迅速发展。

    1.1.1图象压缩的目的

    图象采样后,如果对之进行简单的8bit量化和PCM编码,其数据量是巨大的。以CIF(Common Intermediate Format)格式的彩色视频信号为例,若采样速率为25帧/秒,采样样点的Y、U、V分量均为8bit量化,则一秒钟的数据量为:

    352×288×3×8×25=60.83Mbit

    要传输或存储这样大的数据量是非常困难的,必需对其进行压缩编码,在满足实际需要的前提下,尽量减少要传输或存储的数据量。

    虽然数字图象的数据量巨大,但图象数据是高度相关的。一幅图象的内部相邻象素之间,相邻行之间的视频序列中相邻图象之间有大量冗余信息—空间相关性和时间相关性,可以使用各种方法尽量去除这些冗余信息,减少图象的数据量。

    除了时间冗余和空间冗余外,在一般的图象数据中还存在信息熵冗余、结构冗余、知识冗余和视觉冗余。各种冗余就是压缩图象数据的出发点。图象编码的目的就在于采用各种方法去除冗余,以尽量少的数据量来表示个重建图象。

    1.1.2图象压缩的几种方法

    1.统计和字典的压缩方法

    常规程序和计算机熵的数据对于那些基于利用统计变种的压缩,效果很好,这些统计变种表现在单个符号的频率以及符号或短语字符串的频率等方面,而基于字典的系统实际山就是假扮统计程序。可是遗憾的是,这类压缩对于连续色调图象的作用并不很好。

    这些程序的主要问题产生于这样的一个事实:照片图象的象素广泛地分布在整个范围。如果将图象中的彩色用频率分布画出,那么频率分布图中,没有我们在统计压缩的成功的情况下所看到的“尖峰”状,实际上,如果延长这个分布图,那么从类似于电视那样的生活图象源中得出的分布图会趋于平展。这意味着,每个象素代码彼此是大约相同的出现机会,决定不存在挖掘熵差的任何机会。

    基于字典的压缩程序的运行也有类似的问题,基于扫描照片的图象决定没有任何类型的数据特征以产生相同的短语的多次出现。例如,一个栅格化的图象,类似房子墙边的垂直部分,在图片的许多连续的行中可能可以给出相似的字符串。但不幸的是,由于真实世界是变化多端的,每行中的相同的性能将彼此地略有不同,对于20个象素的一个字符串,其中的一两个象素会因扫描而彼此出现一步长的变化,虽然这些不同点小到人眼不能探测或对人眼不起作用,但他们毕竟妨碍了基于字典压缩的工作,对于这类压缩方法来说,字符串必须严格匹配,由于小的变化,而使匹配的字符串长度趋于很小,这就限制了压缩的效率。

    2.有损压缩

    类似于音频数据,图形图象也同样有一个比常规计算机数据文件优越的地方:在压缩/扩展的循环中,他们可以被略微改动,而不会影响用户的立即质量。如果仔细修改,那么各处象素的精确灰度可以完全不被注意地进行小的改变。由于计算机栅的图形图象通常来自对真实世界源的扫描,所有他们通常表达一个已经不完美的照片的表达或是不完美的其他打印接着的表达。没有改变图象基本性能的有损压缩程序应该是可行的。

    假设图形图象的有损压缩是可能的,那么它是如何实现的呢?研究人员最初试验了用于语音信号的同样的技术,如差分编码和自适应编码,虽然这些技术对图象有帮助,但并没有达到所希望的那么好,原因之一是音频数据和视频数据根本不同。

    用常规格式采样的音频数据是趋于反复的,声音,包括讲话,是由每次几秒的重复的正弦波组成的。虽然计算机上DAC的输入流可能由许多不同的频率叠加在一起而成,但是正弦波通常产生反复的波形。

    音频反复的本性自然使他利于压缩,线性预言编码和自适应差分脉冲编码调制等技术就利于了这一点,因此将音频数据流压缩了50%到95%。

    但开始研究图形压缩时,人们也试图用相似的技术压缩数字化的图象,取得了一些成功。最初,研究人员进行栅格化数据流的压缩,如显示在电视机栅的数据。

    图形数据栅格化时,图形显示成一个象素流,每次一行地显示在屏幕上,从左到右,从上到下。这样,当完成一行时,图片的一个细片就画出了,直到整个屏幕填满。数字化时,象素可以使用从1位到24位,如今的琢磨图形常常使用8位来定义一个象素。

    3.差分调制

    差分调制依赖余模拟数据趋于“平缓”

    的变化,信号幅度撒谎那个的大的跳变是例外,而不是常规。在音频数据中,只要信号的采样率一定程度地高于信息本身的最大的频率分量,那么大的跳变就不会产生。

    音频信号的差分调制通过编码一个样点与前一个样点的不同来利用这一个特点。例如,如果单频样点位8位,差分编码系统可能用4位来编码样点之差,这就将输入数据压缩了50%。这种压缩方法中所产生的损失是来自于:使用标准的差分方法不可能总是精确地编码。信号的增长可能快于比编码的允许,或者,编码可能太粗而不能容纳下的差别,差分编码的有损性可以很好的处理,以产生出好的信号。

    当压缩图形数据时,差分调制有很多问题。首先,图形中的象素依赖于平缓的增加或减少时不可靠的,一幅图中不同的分量间的明显界限时常有的事情。这意味着,使用差分编码的系统需要接受样点间的大的不同和小的不同。这就限制了压缩的效率。带有数据长结构的许多图象可以压缩的很好。长结构中的象素,彼此之间没有什么差别或差别很少;但时,带有突变部分的那些图象不可能压缩的很好。

    通常,图形图象的差分的编码似乎不产生非常强于最好的无损算法的压缩结果,他当然也不会产生所需要的、对压缩的数量级上的改进。

    4.自适应编码

    自适应编码(常常于差分编码一同使用)根据前面看到的一些象素而对将要到来的一些象素的信息做预言。例如,如果一幅灰度级照片中的最新的十个象素的值都在45到50之间,那么自适应压缩系统可能预言,下一个象素很大可能也在这个范围中,之后,类似于霍夫曼或算术编码那样的基于熵的编码方案可能给将来到来的各种代码赋以概率值。可以代替地使用压缩-扩展方法,将最细的粒度赋给最接近预言猜测的范围。

    第二章JPEG编码算法

    2.1JPEG压缩编码基础

    七十年代末八十年代初,研究工作开始着眼于新的图像压缩类型,希望能够大大地优于前面所讨论过的那些非常一般的压缩技术。到八十年代末,开始可为桌面系统的图像处理而寻找应用的工作,大多是是为UNIX和Macintosh工作站加入的协处理器卡的形式,这些卡的图象质量没有任何可见退化的情况下,可以以95%的比率执行图像的有损压缩。

    同时,另一部分人开始发展一个国际标准,它能够包括这些新的压缩的种类。如果标准允许方便的图形格式的互换,那么,显然,对于各方面都是有利的,关于标准化工作,早期的担心是:它会限制进一步革新的可能性。两个标准化组织,CCITT和ISO,分别从涉及图像压缩的工业和学术两个入手,并且,似乎已经潜在的阻止了工作的负结果。

    2.2.1JPEG算法于JPEG小组简介

    JPEG(Joint Photographic Experts

    Group)是由ISO/IECJTC1/SC2/WG8和CCITT VIII/NIC于1986年底联合组成的专家小组。JPEG小组的工组事研究具有连续色调的图像(包括灰度及彩色图像)的压缩算法,并将其制定为适用于大多数图像存储及通信局设备的标准算法,JPEG小组于1990年提出JPEG算法的建议,并决定对建议中的算法不再修改,除非发现了危害压缩算法标准的问题。

    作为静态图像压缩的标准算法,JPEG算法必须满足以下要求:算法独立于图像的分辨率;具有低于1bit/象素的编码率,并且能够在五秒钟内建立图像,以满足实时要求;在压缩比大约是2的情况下能够无失真地恢复原图像;支持顺序编解码和渐进编解码;以及对各种图像成分及数据精度的自适应能力;最后,要求编解码设备简单易实现。

    JPEG小组指定了一系列实现静态图像压缩编码的方法,这些方法的选择决定于具体应用的要求及性能价格比的考虑。这些方法基本上可以分为两类:基于离散余弦变换的编码和基于空间域预测编码的方法。前者,即离散余弦变化的方法压缩倍率较高但算法复杂,较难实现;后者,即预测编码的方法虽然压缩倍率较低,但是可以实现无损压缩。

    JPEG中允许四种编解码模式:

    (1)基于DCT的顺序模式(sequential DCT-based)

    (2)基于DCT的渐进模式(progressive DCT-based)

    (3)无失真模式(Lossless)

    (4)层次模式(hierarchical).

    其中,(1)和(2)是基于DCT的有损压缩;(3)是基于线性预测的无损压缩;(4)可以是DCT与线性预测的分层混合。

    JPEG算法可分为基本JPEG和扩展,即Baseline System与Extended System。在Baseline System中生成的编码文件,在Extended System中一定可以正确解码。

    2.1.2

    JPEG压缩

    JPEG有损压缩算法在三个成功的阶段中操作,见图2-1

    DCTCoefficientLossless

    Transformation→Quantization→Compression

    这三个步骤形成了一个强有力的压缩器。,可以将连续色调图像压缩到少于原大小的10%,同时丢失很少的原始逼真度。

    2.2 JPEG中的二维DCT

    本文所讨论的压缩过程的关键是被称为离散余弦变换(Discrete Cosine Transform,DCT)的数学变换。Baseline System中的DCT要求输入数据是一个8×8的矩阵,且每个矩阵元素具有8bit精度,分为从-128到127,故DCT变换前,象素值先要减去128。所谓8×8的二维DCT是指将8×8的象素值矩阵变换成8×8系数矩阵。8×8象素值矩阵是由输入图像分块得到的,若图像的高或宽不是8的整数倍,必须扩展其下边或右边到8的整数倍。

    下面(式2-1)给出了二维DCT的实用公式。式2-2是反离散余弦变化(IDCT)公式。式中表示的是8×8个象素值的矩阵进行计算的,产生出8×8频率系数的矩阵。

    8×8的DCT及IDCT公式如下:

    这个公式初看起来让人害怕,但它可以用相当直接的代码段来表示。

    for ( i = 0 ; i < 8 ; i + + )

    for ( j = 0 ;j <

    8 : j + + ){

    temp=0.0;

    for ( x = 0 ; x

    < 8 ; x ++ )

    for ( y = 0 ;

    y < 8 ; y ++ ){

    temp +=

    Cosines [ x ] [ i ]*Cosines[ y ][ j ]*pixel[ x ][ y ];

    }

    temp * = sqrt (

    2 * 8 ) * Coefficient[ i ][ j ];

    DCT [ i ][ j ] =

    INT_ROUND (temp);

    }

    2.3DCT的实现

    测验DCT算法时所表现出的首要的问题之一是计算DCT中每个元素所需要的世界紧紧地依赖于矩阵的大小。由于使用双层嵌套循环,所以计算量为:随着N的增长,处理DCT输出数组中每个元素所要的时间也将增长。DCT的实现将图像分成更小更能处理的块,JPEG小组选用8×8的块大小进行DCT计算。

    虽然DCT大小的增加可能得到更好的压缩,但是,达到减弱返回点的时间也不会很长。研究表明,象素之间的联系很快趋于减弱,因此,原点15或20个象素位以外的象素对于预言器来说用处不大,这意味着64×64的DCT块比起将它分成四个16×16块,不会有更好的压缩,并且,越是不重要,花费的计算时间越多。

    虽然,使用16×16的块做为DCT计算的基础的确是一个好的选择,但是JPEG委员会选择的就是8×8的块,这主要是,为了允许那些使用今天技术所建立起的使用实现。这类压缩称作“块压缩”。

    2.3.1矩阵相乘

    上面显示的DCT定义是相当直接的双层嵌套循环。循环的内层元素为每个要计算的元素执行N×N次,循环的内层有两个相乘操作和一个相加操作。

    更为有效的DCT形式可能是使用矩阵操作进行计算。为实现这个操作。首先要建立称为余弦变化矩阵(Cosine Transform Matrix)的一个矩阵C,该矩阵由式2-3给出。

    =if i=0

    ifi>0

    一旦建立了余弦变换矩阵,我们绕着它的主对角线旋转,将其转置,这个转置矩阵在代码中表示,称作转置余弦变换矩阵。矩阵的建立只需在程序初始化时进行一次,两个矩阵可以用相对短小的循环在同一时刻建立。见下面的代码:

    for ( j = 0 ;j < N;j ++){

    C[ 0 ][ j ] = 1.0 /

    sqrt (N);

    Ct[ j ][ 0 ] = C[ 0

    ][ j ];

    }

    for ( i = 1 ;i < N; i ++)

    for ( j = 0; j < N ;j ++) {

    C[ i ][ j ] = sqrt

    ( 2.0/N )*cos( ( 2* j + 1 ) * i * pi / ( 2.0 * N )) ;

    Ct[ j ][ i ] = C[ i

    ][ j ];

    }

    }

    一旦这两个矩阵建立,我们就可以使用DCT函数的替代定义:

    DCT = C

    *象素* Ct

    在这个等式中,“*”运算符表示的事矩阵相乘,而不是一般的算术相乘。等式中的每个因子是一个N*N的矩阵,在JPEG算法以及本章所只用的程序中,矩阵为8×8。进行两个矩阵相乘时,输出矩阵中每个元素的运算代价时N个乘法操作和N个加法操作,由于我们用两个矩阵相乘来建立DCT矩阵,在变换后的DCT矩阵中的每个元素都是用2N个乘法和加大建立起来的,这一点,大大地改进了前面使用嵌套循环的DCT定义。

    / * MatrixMultiply(

    temp , input , Ct )*/

    for ( i = 0 ; i

    < N; i ++ ){

    for ( j = 0 ;j

    < N ; j ++ ) {

    temp[ i ][ j

    ] = 0.0

    for ( k = 0

    ; k < N ; k ++ )

    temp[ i

    ][ j ] + = ( pixel [ i ][ k ] * Ct[ k ] [ j ] ;

    }

    }

    / * MatrixMultiply(

    output ,C, temp ); */

    for ( i = 0 ; i

    < N ; i ++ ) {

    for ( j = 0 ; j

    < N ; j ++ ) {

    temp1 =

    0.0;

    for ( k =

    0 ; k < N ; k ++ )

    temp1 + = C[ i ][ j ] * temp [ k ][ j ];

    DCT[ i

    ][ j ]= temp1 ;

    }

    }

    上面显示的是通过矩阵运算实现DCT的简单代码片段。值得注意的是,代码中主要是两个三层的嵌套循环,第一个三层嵌套循环是用输入的象素序列于转置余弦变换矩阵相乘,产生临时矩阵;之后,在第二个三层嵌套循环中,临时矩阵于余弦变换矩阵相乘,产生输出的DCT矩阵。

    第三章压缩过程

    3.1DCT的输出

    由输入的象素值矩阵及输出的DCT矩阵可已经看出DCT所建立的频谱压缩特性。“直流系数”位于矩阵左上角的位置,这个表示的是输入矩阵的所有幅度的一个平均,它代表了X和Y坐标轴上的DC分量,而且直流系数要比DCT矩阵中任意值都打至少一个数量级。另外,在DCT矩阵中有一个通常的趋势,随着元素离直流系数越来越远,这些元素的幅度上也变的越来越小。这意味着,通过在输入数据中执行DCT,我们已经将图像的表达集中在输出矩阵的左上角的系数上,而DCT矩阵的右下角部分所包含的是没有用的信息。也很有利于数据的压缩。

    3.2量化

    由图2-1可知JPEG压缩过程分为三个步骤。第一步是DCT变换,这是一个无损压缩变换,它实际上并不实现压缩,是“有损”的准备,即为“量化”处理阶段做准备。DCT输出矩阵比原始象素矩阵占有更多的存贮空间,DCT函数的输入包括8位象素值,但输出值的范围从-1024到1023,占用11位,因此,为使DCT矩阵占用较少空间,就需要做些事情。减少DCT矩阵存贮位数的行为称为“量化”(Quantization)。量化只不过是通过减少整数单精度来减少存贮整数值所需要的位数第一个过程。一旦DCT图像压缩,我们可以随着原理原点处的直流系数越来越多的减少系数的精度:离(0,0)点越远,这个元素对于图形图像的贡献就越小,所有我们就越不用注意去维持这个值的精确精度。

    3.2.1量化的算法描述

    JPEG算法使用量化矩阵(Quantization Matrix)来实现量化。对于DCT矩阵中的每个元素位置,两个矩阵中的相应位置给出了一个量子值(Quantum Value),量子值指示出图像压缩时元素的步长大小是多少,其范围是1到255。

    与图像关系最密切的元素用小步长编码,大小为1表示最高精度。随着我们从原点移开,值将变得较高,量化的实际公式相当简单:

    量化后的值(i, j)=圆整成最近的整数

    从公式中可以清楚地看到,大于25或50的量化值可能可以保证素有高频分量实际上将近似到0,只有高频系数达到不寻常大值,才会编码成非0。

    译码时,逆量化公式为:

    DCT(i, j)=量化后的值(i,j)*量子(i, j)

    3.2.2量化矩阵的选择

    显然有许多方法可以用来定义两个矩阵中的值,至少有两个试验途径可以测试不同的量化方案。一个是在图像还原以后,测量输入输出图像之间的数学误差;第二个途径试图用人眼来判断还原的结果,它与误差方面的数学差别不可能总是绝对一致。由于量化矩阵可以定义在压缩进行的运行时间,所以JPEG允许使用任何量化矩阵。在运行时间选择量化矩阵的好处之一是在被压缩的图形使用JPEG算法时可以相当简单地“打入”图像的质量值。可以基于突袭拿过需要和存贮容量来选择图像质量。

    下面的程序所提供的用于测试代码的量化表是使用非常简单的算法卷里起来的。要确定量子步长大小的值,用户输入一个单个的“质量因子”(quality factor),它的范围为1到25。大于25的值是可以工作的,但是值为25时,图像质量已经退化得很厉害,所以任何进一步的实验都是无意义的。

    for ( i = 0 ; i <

    N ; i ++ )

    for ( j = 0 ; j

    < N ; j ++ )

    Quantum[ i

    ][ j ] = 1 + (( 1 + i + j ) * quality ) ;

    质量等级设置了彼此相邻的相同量化水平带的不同,这些量化水平带是面向横贯矩阵的对角线。所以,一个值的量化水平都与原点有大约相同的距离。

    由配置的结果看,位置(7,7)处的DCT系数值为16,编码成非零值,在元素值为图像提供任何有意义的信息之前,,它为该元素值设定了界限,任何此界限一下的贡献都被扔掉。这就是算法中发生“有损”效果的地方。DCT的第一个步骤中除了数学精度损失外没有任何损失,并且量化之后的步骤也是无所的编码过程,所以我们有机会丢掉数据的唯一地方就在这儿。

    由将DCT矩阵量化后的量化结果来看,量化/逆量化周期有明显的压缩效果,矩阵的高频部分已大部分截成0,消除了在被还原图像中的影响,矩阵中接近直流系数的系数可能被修改,但与原系数相比修改不大。下图即为量化前和逆量化后的DCT矩阵的结果。

    DCT Matrix before923-9-73-102

    Quantization-39-581217-2242

    -84621-1834-55

    -52-36-1014-104-20

    -86-4049 -717-6-25

    -6265-12-23-8-20

    -1714-3617-1133-1

    -5432-9-922013

    DCT Matrix after900-700000

    Dequantization-35-569110000

    -84540-130000

    -45-33000000

    -77-394500000

    -5260000000

    -150-1900000

    -5119000000

    3.3编码

    JPEG过程的最后步骤湿编码量化了的图像。JPEG的编码阶段由压缩图像的三个不同步骤组成。

    (1)第一步是将(0,0)处的直流系数由绝对值变为相对值,因为图像中相邻的块表现出了高度的相关。用与前一个直流元素的差来编码直流元素,就回产生一个非常小的数值。

    (2)第二步是将图像系数安排成“zig-zag”序列。

    (3)最后一步是用两种不同的机制编码。第一个机制是0值的行程编码。第二个是JPEG所称作的熵编码(Entropy Coding),这是根据现实者的选择,用霍夫曼代码或算术编码送出系数代码的一步。

    3.3.1Zig-Zag序列

    JPEG算法压缩如此有效的原因之一是,在量化过程中,DCT图像的大量的系数截断成了0值,有这么多的0值,JPEG委员会就选择了与处理其他系数值不同的方法处理0值。

    不使用霍夫曼或算术编码来压缩0值,而是使用行程编码算法(Run-Length Coding,RLE),所开发的程序代码很简单,只是给出图像中连续0值的计数。由于在许多图像中,近一半的系数已量化成0,这就给杰出的压缩提供了机会。

    增加行程差功能度的算法是将系数序列重新排序成Zig-Zag序列。JPEG算法没有象程序员可能进行的那样按照主行的顺序压缩系数,而使沿着对角线路径移动块,首先选择最大的元素值,并向可能是最小的值方向走。

    Zig-Zag序列的实际路线显示在图3-1中。

    用C实现Zig-Zag序列可能用简单的查寻表来完成是最好的。本章的样例代码中,序列编码程序成结构的一部分,该结构可以顺序存取以确定要编码的行和列。

    struck zigzag{

    int row;

    int col;

    } Zigzag [ N * N ]=

    {

    {0,0},

    {0,1},{1,0},

    {2,0},{1,1},{0,2},

    {0,3},{1,2},{2,1},{3,0},

    {4,0},{3,1},{2,2},{1,3},{0,4},

    {0,5},{1,4},{2,3},{3,2,},{4,1},{5,0},

    {6,0},{5,1},{4,2},{3,3},{2,4},{1,5},{0,6},

    {0,7},{1,6},{2,5},{3,4},{4,3},{5,2},{6,1},{7,0},

    {7,1},{6,2},{5,3},{4,4},{3,5},{2,6},{1,7},

    {2,7},{3,6},{4,5},{5,4},{4,6},{3,7},

    {7,3},{6,4},{5,5},{4,6},{3,7},

    {4,7},{5,6},{6,5},{7,4},

    {7,5},{6,6},{5,7},

    {6,7},{7,6},

    {7,7}

    }

    下面是将每个DCT结果送到压缩器中的C代码。其中,并没有直接查寻每个结果,而使通过查寻Zig-Zag结构来确定要使用的下一个行与列,之后再对通过Zig-Zag结构中得到的行和列所确定的元素进行编码。

    for ( i = 0 ; i < (

    N * N );i ++ ){

    row = ZigZag[ i ]

    .row;

    col = ZigZag[ i ]

    .col;

    result = DCT[ row

    ][ col ]/Quantum[ row ][ col ];

    OutputCode(

    output_file .ROUND( result ) ) ;

    }

    3.3.2熵编码

    讲直流元素转换成与上一个之差之后,接下来将DCT块重新排序成Zig-Zag序列,再后,JPEG用一个熵编码机制送出元素,输出带有建立在其中的RLE,它是编码机制的主要部分,基本上,熵编码输出包括三个单词的序列,不断重复直到块结束,三个单词如下:

    1.行程长度——DCT输出矩阵中,当前元素之前的连续0的个数

    2.位计数——后面跟着的幅度值所用的位数

    3.幅度——DCT系数的幅度

    本设计采取的编码序列是行程编码和可变长度整型数编码的组合。行程长度和位计数这两个值的组合,形成了输出的代码。,位计数是将幅度可变长度整型编码所使用的位数目。

    可变长度整型数编码方案利用了DCT的输出应该由大多数较小的数值所组成的事实,因此我们想用较少的位数目进行编码。下面是位计数及用这个数目编码的系数幅度:

    位计数幅度

    1-1,1

    2-3到-2,2到3

    3-7到-4,4到7

    4-15到-8,8到15

    5-31到-16,16到31

    6-63到-32,32到63

    7-127到-63,64到127

    8-255到-128,128到-255

    9-511到-256,256到511

    10-1023到-512,512到1023

    要注意的是每一个位计数编码高低值的对称序列,中间跳过的值用表中从1位开始的较小的位计数进行编码。

    参考资料:1、《多媒体网络通信》北京理工大学出版社李小平等编著

    2、《数据通信和网络》鲁士文等编著清华大学出版社

    3、《网络多媒体技术开发与应用》冯博琴等译著机械工业出版社

    4、《中国多媒体视训》杂志2002年1—10期

    展开全文
  • 多媒体数据压缩与存储技术习 题 第四章 多媒体数据压缩与存储技术习题 4-1 填空题 1 自 信 息 函 数 是 的函数必然发生的事件概率为 自信 息 函 数 值 为 把 叫 作 信 息 熵 或 简 称 熵 Entropy 记 为 2 所有概率...
  • 多媒体数据压缩技术

    2012-09-26 23:53:33
    主要内容简介: 数据压缩基本原理 数据压缩算法 静态图象JPEG压缩编码技术 动态图象MPEG压缩编码技术
  • 一、实验目的(所实现功能、验证性目的、创新性目的) 在理解并掌握行程编码的基础上,采用高级语言实现行程编码的解压缩算法,由此使学生理解多媒体数据压缩的原理。
  • 在计算机内多媒体数据最终是以二进制代码存在的,因为计算机只能识别数字,这也就是计算机语言跟人类语言的不同。二进制代码:由两个基本字符0、1组成的代码。其中,码元:“一位”二进制代码。码字:N个码元可以...

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。

    在计算机内多媒体数据最终是以二进制代码存在的,因为计算机只能识别数字,这也就是计算机语言跟人类语言的不同。

    二进制代码:由两个基本字符0、1组成的代码。其中,码元:“一位”二进制代码。码字:N个码元可以组成的不同组合,任意一个组合称一个码字。二进制编码:用不同码字表示不同的信息的方法就叫二进制编码。如用1111表示15。区别例子:对15进行二进制编码的结果为1111,共需要4位二进制代码。二进制代码指令:是机器语言的指令集体系结构的表示方式。好比“加”在汇编中用add表示,类似的在这个中则是用1100表示(1100只是举例用,实际不是)。机器语言:又称机器码,是用“二进制代码指令”表达(不是二进制代码)的计算机语言。

    二进制代码语言或称为机器语言,计算机可以直接识别,不需要进行任何翻译的语言。每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言。它是第一代的计算机语言,机器语言对不同型号的计算机来说一般是不同的。直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有 16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。

    展开全文
  • 什么是数据压缩,一般分为几类?...多媒体通常指哪些媒体,它们通常采用哪些数据压缩和信源编码的方法?压缩编码算法通常由编码器和解码器组成,算法的标准化一般是针对哪一部 分制定,为什么这样做?
  • 数据压缩会导致数据失真,或者说信息量丢失,这是显而易见的,但是同时也会带来数据量的缩减,那么如何衡量一个算法是否优秀呢? 我们可以以 “损失的信息量与带来的数据压缩量的比率” 来表示一种信息量对数据量的...
  • 多媒体数据压缩技术是实现实时有效地处理、传输和存储庞大的多媒体数据的关键技 术。多媒体技术是当今信息技术领域发展最快、最活跃的技术,是新一代电子技术发展和竞争的焦点。多媒体技术融计算机、声音、文本、...
  • 实验四图像压缩编码程序设计一、实验目的和要求本实验为设计性实验,其目的是理解有损压缩的概念,特别是通过K-L变换或DCT变换,掌握压缩编码的基本原理、算法,并通过编程给予实现,对原始图像数据和解压后的图像...
  • 数据压缩知识点整理

    千次阅读 2017-04-27 16:57:20
    数据压缩 是指在不丢失有用信息的前提下, 缩减数据量 以减少存储空间, 提高传输、存储和处理效率, 或按照一定的算法对数据进行重新组织, 减少数据的冗余和存储的空间的一种技术.
  • 很好的算术压缩论文 ...基于算术编码数据压缩算法研究与实现 而使数据文件可以以更快的速度传输或在更少的空间储存。因此数据压缩技术已成为当今数字通信、存储和多媒体娱乐的一项关键的共性技术
  • 摘要: 计算机多媒体技术,是指文字、视频、图像、声音、动画等各种形式的媒体信息经过计算机的一些变换,最后转变为数字信息,然后通过友好的界面而显示出来的一种技术。随着现代社会信息技术的发展,计算机多媒体...
  • 图像压缩与编码及MATLAB实现近年来,随着计算机通信技术的迅速发展,特别是多媒体网络技术的兴起,图像压缩与编码已受到了人们越来越多的关注。...因此,一般把此项处理称为压缩编码。 6.1 图像压缩与编码概述 6.1...
  • 图像数据压缩方法

    千次阅读 2021-03-03 21:40:32
    数据压缩方法 数据能够进行压缩,是因为数据中存在或多或少的冗余信息,而对于视频和音频等多媒体信息,更可以利用人类自身的感知冗余(失真)特点来实现更高的压缩比例。衡量压缩算法的三个主要性能指标如下: ...
  • 作为通信、介质存贮、数据发行、多媒体计算机等技术的关键环节,图像压缩编码算法的研究是信息技术中最活跃的研究领域之一。尤其是进入21世纪以后,电子技术和通信技术的发展使可视电话、会议电视、数字电视、高清晰...
  • 一本关于H.264编解码的经典教程,非常值得大家学习
  • 对于数据压缩的问题:“我们要压缩什么”,我的理解是:对在计算机等多媒体中进行传输的视频、音频、文字、图像等所有信息的存储大小进行压缩。  对于数据压缩的问题:“为什么进行压缩”,我的理解是:网络的快速...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,307
精华内容 9,322
关键字:

多媒体数据压缩过程是编码