文档库 最新最全的文档下载
当前位置:文档库 › 一种快速有效的自适应算术编码

一种快速有效的自适应算术编码

一种快速有效的自适应算术编码
一种快速有效的自适应算术编码

多媒体技术基础试题

多媒体技术基础及应用试题(一)1.单项选择题(每小题2分,共20分) 1.下列说法不正确的是()。 A.熵压缩法会减少信息量 B.熵压缩法是有损压缩法 C.熵压缩法可以无失真地恢复原始数据 D.熵压缩法的压缩比一般都较大 2.在数字音频信息获取与处理过程中,下列顺序正确的是()。 A.A/D变换,采样,压缩,存储,解压缩,D/A变换 B.采样,压缩,A/D变换,存储,解压缩,D/A变换 C.采样,A/D变换,压缩,存储,解压缩,D/A变换 D.采样,D/A变换,压缩,存储,解压缩,A/D变换3.某音频信号的采样频率为44.1kHz,每个样值的比特数是8位,则每秒存储数字音频信号的字节数是()。 A.344.531k B.43.066k C.44.1k D.352.8k 4.全电视信号主要由()组成。 A.图像信号、同步信号、消隐信号 B.图像信号、亮度信号、色度信号 C.图像信号、复合同步信号、复合消隐信号 D.图像信号、复合同步信号、复合色度信号 5.下列说法不正确的是()。 A.预测编码是一种只能针对空间冗余进行压缩的方法 B.预测编码是根据某一模型进行的 C.预测编码需将预测的误差进行存储或传输 D.预测编码中典型的压缩方法有DPCM、ADPCM 6.国际标准MPEG—II采用了分层的编码体系,提供了四种技术,它们是()。 A.空间可扩展性;信噪比可扩充性;框架技术;等级技 术 B.时间可扩充性;空间可扩展性;硬件扩展技术;软件 扩展技术 C.数据分块技术;空间可扩展性;信噪比可扩充性;框 架技术 D.空间可扩展性;时间可扩充性;信噪比可扩充性;数 据分块技术 7.如果按三个色差信号B-Y,R-Y,G-Y来传输彩色全电视信号,会造成()失真。 A.幅度 B.传输 C.色彩 D.图像 8.人们在实施音频数据压缩时,通常应综合考虑的因素有()。 A.音频质量、数据量、音频特性 B.音频质量、计算复杂度、数据量 C.计算复杂度、数据量、音频特性 D.音频质量、计算复杂度、数据量、音频特性 9.彩色可用()来描述。 A.亮度,饱和度,色调 B.亮度,饱和度,颜色 C.亮度,对比度,颜色 D.亮度,色调,对比度 10.帧频率为25帧/秒的制式为()。 A.PAL、NTSC B.PAL、SECAM C.SECAM、NTSC D.PAL、YUV 二、多项选择题(每小题3分,共15分) 1.多媒体计算机的发展趋势是()。 A.进一步完善计算机支持的协同工作环境CSCW B.智能多媒体技术 C.把多媒体信息实时处理和压缩编码算法作到CPU芯 片中 D.多媒体创作工具极其丰富 2.音频卡的核心,是声音的合成与处理,它由以下几部分组成()。 A.数字声音处理器 B.混合信号处理器 C.功率放大器 D.FM音乐合成器 E.MIDI控制器 3.下列会议系统属于点对点视频会议系统的是()。 A.可视电话 B.桌面视频会议系统 C.会议室型视频会议系统 D.MCU视频会议系统 4.下面列出的卡中,属于视频采集卡的有()。 A.Video Blaster SE100 B.MegaMotion C.Media Magic ISP-16 D.Intel Smart Video Recorder Pro 5.三个重要的有关视频图像压缩编码的国际标准是()。 A.JPEG标准 B.H.261标准 C.H.320标准 D.AIF E.MPEG标准 一、单项选择题(每小题1分,共10分) 1.C 2.C 3.B 4.C 5.A 6.D 7.A 8.B 9.A 10.B

算术编码

实现算术编码及其译码 一、实验内容 借助C++编程来实现对算术编码的编码及其译码算法的实现 二、实验环境 1.计算机 2.VC++6.0 三、实验目的 1.进一步熟悉算术编码的原理,及其基本的算法; 2.通过编译,充分对于算术编码有进一步的了解和掌握; 3.掌握C++语言编程(尤其是数值的进制转换,数值与字符串之间的转换 等) 四、实验原理 算术编码 算术编码的基本原理是将编码的消息表示成实数0和1之间的一个间隔,消息越长,编码表示它的间隔就越小,表示这一间隔所需的二进制位就越多。 算术编码用到两个基本的参数:符号的概率和它的编码间隔。信源符号的概率决定压缩编码的效率,也决定编码过程中信源符号的间隔,而这些间隔包含在0到1之间。编码过程中的间隔决定了符号压缩后的输出。 给定事件序列的算术编码步骤如下: (1)编码器在开始时将“当前间隔”设置为[0,1)。 (2)对每一事件,编码器按步骤(a)和(b)进行处理 (a)编码器将“当前间隔”分为子间隔,每一个事件一个。 (b)一个子间隔的大小与下一个将出现的事件的概率成比例,编码器选择子间隔对应于下一个确切发生的事件相对应,并使它成为新的“当前间 隔”。 (3)最后输出的“当前间隔”的下边界就是该给定事件序列的算术编码。 编码过程 假设信源符号为{A, B, C, D},这些符号的概率分别为{ 0.1, 0.4, 0.2,0.3 },根据这些概率可把间隔[0, 1]分成4个子间隔:[0, 0.1], [0.1, 0.5],

[0.5, 0.7], [0.7, 1],其中[x,y]表示半开放间隔,即包含x不包含y。上面的信息可综合在表03-04-1中。 下表为信源符号,概率和初始编码间隔 如果二进制消息序列的输入为:C A D A C D B。编码时首先输入的符号是C,找到它的编码范围是[0.5,0.7]。由于消息中第二个符号A的编码范围是[0,0.1],因此它的间隔就取[0.5, 0.7]的第一个十分之一作为新间隔[0.5,0.52]。依此类推,编码第3个符号D时取新间隔为[0.514, 0.52],编码第4个符号A 时,取新间隔为[0.514, 0.5146],…。消息的编码输出可以是最后一个间隔中的任意数。整个编码过程如图03-04-1所示。 编码和译码的全过程分别表示在下表。 编码过程

算术编码的C实现

算术编码的C++实现 #include #include #include #include using namespace std; #define N 50 //输入的字符应该不超过50个 struct L //结构用于求各字符及其概率 { char ch; //存储出现的字符(不重复) int num; //存储字符出现的次数 double f;//存储字符的概率 }; //显示信息 void disp(); //求概率函数,输入:字符串;输出:字符数组、字符的概率数组;返回:数组长度; int proba(string str,char c[],long double p[],int count); //求概率的辅助函数 int search(vector arch,char,int n); //编码函数,输入:字符串,字符数组,概率数组,以及数组长度;输出:编码结果 long double bma(char c[],long double p[],string str,int number,int size); //译码函数,输入:编码结果,字符串,字符数组,概率数组,以及它们的长度;输出:字符串 //该函数可以用于检测编码是否正确 void yma(string str,char c[],long double p[], int number,int size,long double input); int main() { string str; //输入要编码的String类型字符串 int number=0,size=0; //number--字符串中不重复的字符个数;size--字符串长度char c[N]; //用于存储不重复的字符 long double p[N],output; //p[N]--不重复字符的概率,output--编码结果 disp(); cout<<"输入要编码的字符串:"; getline(cin,str); //输入要编码的字符串 size=str.length(); //字符串长度 number=proba(str,c,p,size);//调用求概率函数,返回不重复字符的个数 cout.setf(ios::fixed); //“魔法配方”规定了小数部分的个数 cout.setf(ios::showpoint); //在此规定编码结果的小数部分有十个 cout.precision(10); output=bma( c, p, str, number, size);//调用编码函数,返回编码结果 yma(str,c, p, number, size, output); //调用译码函数,输出要编码的字符串, //以验证编码是否正确 return 0;

算术编码工作原理

算术编码工作原理 在给定符号集和符号概率的情况下,算术编码可以给出接近最优的编码结果。使用算术编码的压缩算法通常先要对输入符号的概率进行估计,然后再编码。这个估计越准,编码结果就越接近最优的结果。 例: 对一个简单的信号源进行观察,得到的统计模型如下: ?60% 的机会出现符号中性 ?20% 的机会出现符号阳性 ?10% 的机会出现符号阴性 ?10% 的机会出现符号数据结束符. (出现这个符号的意思是该信号源'内部中止',在进行数据压缩时这样的情况是很常见的。当第一次也是唯一的一次看到这个符号时,解码器就知道整个信号流都被解码完成了。) 算术编码可以处理的例子不止是这种只有四种符号的情况,更复杂的情况也可以处理,包括高阶的情况。所谓高阶的情况是指当前符号出现的概率受之前出现符号的影响,这时候之前出现的符号,也被称为上下文。比如在英文文档编码的时候,例如,在字母Q 或者q出现之后,字母u出现的概率就大大提高了。这种模型还可以进行自适应的变化,即在某种上下文下出现的概率分布的估计随着每次这种上下文出现时的符号而自适应 更新,从而更加符合实际的概率分布。不管编码器使用怎样的模型,解码器也必须使用同样的模型。 一个简单的例子以下用一个符号串行怎样被编码来作一个例子:假如有一个以A、B、C三个出现机会均等的符号组成的串行。若以简单的分组编码会十分浪费地用2 bits 来表示一个符号:其中一个符号是可以不用传的(下面可以见到符号B正是如此)。为此,这个串行可以三进制的0和2之间的有理数表示,而且每位数表示一个符号。例如,“ABBCAB”这个串行可以变成0.011201(base3)(即0为A, 1为B, 2为C)。用一个定点二进制数字去对这个数编码使之在恢复符号表示时有足够的精度,譬如 0.001011001(base2) –只用了9个bit,比起简单的分组编码少(1 – 9/12)x100% = 25%。这对于长串行是可行的因为有高效的、适当的算法去精确地转换任意进制的数字。 编码过程的每一步,除了最后一步,都是相同的。编码器通常需要考虑下面三种数据: ?下一个要编码的符号 ?当前的区间(在编第一个符号之前,这个区间是[0,1), 但是之后每次编码区间都会变化) ?模型中在这一步可能出现的各个符号的概率分布(像前面提到的一样,高阶或者自适应的模型中,每一步的概率并不必须一样) 编码其将当前的区间分成若干子区间,每个子区间的长度与当前上下文下可能出现的对应符号的概率成正比。当前要编码的符号对应的子区间成为在下一步编码中的初始区间。

简单短序列的算术编码的MATLAB实现

简单短序列的算术编码的MATLAB实现 正确实现的算术编码算法压缩能力Shannond定理描述的理论极限,是目前已知的压缩能力最强的无损压缩算法。 不过,由于算术编码算法的实现比较复杂,使用它作为默认压缩算法的应用程序还相当少。在Unix平台上非常流行的bzip2(这个工具有命令行模式的Windows版本)使用的就是经过修改的算术编码算法。 目前为止还没有使用算术编码作为默认压缩算法的Windows应用程序,WinRAR和WinIMP能够支持bzip2的解压。除此之外,在最新的JPEG标准中也用到了经过修改的算术编码压缩算法,但JPEG所用的那种算法受专利保护,因此使用时必须获得授权。 在之后的文章会很好的研究这个算法的实现: 现在给出一个简单的实例:

运行过程如下:

%I=imread('001.bmp') %imshow(I); clear I=[3 3 1 1 3 3 1 2;2 3 3 1 3 2 3 2;1 2 3 3 3 3 1 2]; %I=[1 1 1 1 0 0 1 0 1 1 1 0]; [m,n]=size(I); % 第一列为灰度值,第二列为个数,第三列为概率百分数,应该也可以用imhist table = tabulate(I(); % 注意的是,tabulate要求I的元素必须为非负整数 % 否则,以采用如下方法求解 % 如[1 2 3;1 2 2],则统计出结果1是2个,2是3个,3是1个 % sortM=sort(M(); % uniqueM=([diff(sortM);1]>0); % count = [sortM(uniqueM) diff(find([1;uniqueM]))] % 即color,p如下所示 color = table(:,1)'; p = table(:,3)'/100; % 计算上下限 csump = cumsum(table(:,3)'); allLow =[0,csump(1:end-1)/100]; allHigh = csump/100; numberlow = 0; numberhigh = 1; for k = 1:m for kk = 1:n data = I(k,kk); low = allLow(data==color); high = allHigh(data==color); range = numberhigh-numberlow; tmp = numberlow; numberlow = tmp+range*low; numberhigh = tmp+range*high; end

H.264标准的特点及应用

H.264标准的特点及应用 随着人类精神需求和空间需求的提升,人们不再满足面对面的语言交流,空间距离的增加导致人们面对面的语言交流变得越来越少,人们更需要在时空中交流与交往。当传统的交流方式难以实现时,更需要视觉、感观以及信息交流。正因为如此,促进了卫星通信、微波通信、有线/无线传输技术的发展,也推动信息压缩技术和宽带传输技术,同时推动了安防业的迅猛发展。视频信息传输和视频通讯的猛增,给视频压缩技术带来了很大挑战。无论是互联网还是无线网络,都需要一种新型的压缩算法,新算法要求高压缩比,且能适应不同的网络环境。以较小的失真、较高的压缩比、更小的花费、较低的码率在信道中传递视频,进行多媒体通信是今后视频压缩技术研究的一个方向。 H.264,又称MPEG-4part10,也称AVC(AdvancedVideoCoding),是一个数字视频压缩标准,由 VCEG(ITU-TVideoCodingExpertsGroup)和MPEG(ISO/IECMovingPictureExpertsGroup)联合组成的 JVT(JointVideoTeam)于2003年3月正式发布[1,2]。H.264标准的主要目标就是在同等保真条件下,提高编码效率。这是一对矛盾,既然要求图像不失真,则图像传输的比特数就大,在网络带宽一定的情况下,图像信号传输的速度就快,因此,只有提高编码效率才能实现。 H.264的源起 在以往众多的视频编码算法中,被广泛认可并应用于实际的是ISO/IEC制定的MPEG-X和ITU-T制定的H.26x两大系列视频编码国际标准。 H.261是早期的编码标准,主要是规范ISDN网上的会议电视和可视对讲。它采用的是可减少时间冗余的帧间预测和减少空间冗余的DCT变换的混合编码方法,以及ISDN信道匹配,其输出码率是P×64kbit/s。P较小时,传输清晰度不太高的图像;P较大时,可以传输清晰度较好的会议电视图像。 H.263是低码率图像压缩标准,在技术上是H.261的改进和扩充,且支持码率小于64kbit/s的应用。后期263+、263++已能支持全码率应用,支持众多图像,可看出,其支持多格式图像信息传输,如Sub-QCIF、QCIF、CIF、4CIF、16CIF等格式。 MPEG-1标准的码率为1.2mbit/s,可实现30帧/sCIF(352×288)图像传输,它与H.261和H.263相似,也采用运动补偿的帧间预测、二维DCT及VLC游程编码等措施。此外还引入帧内帧(I)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,进一步提高了编码效率。在MPEG-1的基础上,MPEG-2将针对提高分辨率、兼容数字电视方面做一些改进。 从编码方面知,MPEG-4标准编码技术是简单档次(SimpleProfile),比如Microsoft的WindowsMediaPlayer就是这种档次的媒体系统。这种传统的编码技术因为基于对象编码的难点就是对象的提取,所以影响实用进程。从传输方面分析,目前流行的基于MPEG-4的流媒体技术其本质上没有采用14496-6所提出的传输多媒体集成框架(DMLF),而是根据IEIF提出的传输建议来实现的,还不成熟,目前可实际应用的编码技术仍然是基于帧编码的技术。H.261、H.263、MPEG-1/2/4都是在尽可能低的码率(存储容量)下获得尽可能好的图像质量。目前,H.264标准被广泛应用于有线/无线视频远程监控、网络交互媒体、数字电视及视频会议等等。 H.264的关键技术及优势

多媒体计算机技术期末复习

一、填空题: 1、国际电报电话咨询委员会(CCITT,目前已被ITU取代)曾对媒体作过如下分类: (1)感觉媒体:直接作用于人的感官、使人能直接产生感觉。 (2)表示媒体:为了加工、处理和传输感觉媒体而人为研究、构造出来的一种数据类型。 (3)表现媒体:指感觉媒体和用于通信的电信号相互转换用的物理手段或设备。 (4)存储媒体:用于存放表示媒体,以便计算机随时处理、加工和调用信息编码。 (5)传输媒体:用来将媒体从一处传送到另一处的物理载体。 2、(感觉媒体)指能直接作用于人的感官、使人能直接产生感觉的一类媒体。 3、(表示媒体)是为了加工、处理和传输感觉媒体而人为研究、构造出来的一种数据类型。 4、(表现媒体)是指感觉媒体和用于通信的电信号相互转换用的物理手段或设备。 5、(存储媒体)用于存放表示媒体(感觉媒体数字化后的代码),以便计算机随时处理、加工和调用信息编码。 6、(传输媒体)是用来将媒体从一处传送到另一处的物理载体。 7、多媒体技术有时被简称为(多媒体),或(多媒体计算机技术)。 8、人类获取的信息主要是通过(视觉)获取的。 9、DPCM系统中的误差来源是发送端的量化器,而与接收端(无)关。 10、预测编码主要是在(时)域上进行,变换编码则利用频域中能量较集中的特点,在(频)域(变换域)上进行。 11、Huffman编码/算术编码是(可逆[无失真])编码。 12、MPEG音频压缩后的比特流可以按(4)种模式之一支持单声道或(双声道)。 13、MPEG算法允许编码选择I图像的(频率)和位置。 14、基于块的(运动补偿)技术,就是在其(参照)帧中寻找符合—定条件限制、当前被预测块的最佳匹配块。 15、为了适应不同应用的要求,并保证数据的可交换性,MPEG-2 Video定义了不同的功能档次,每个档次又分为几个(功能档次、等级和规 范)。 16、一般情况下,对细节多、运动部分少的图像在(帧)内进行DCT,而细节少、运动分量多的图像在(场)内进行DCT。 17、MPEG算法编码过程和解码过程是一种非(镜像)对称算法,解码过程要比编码过程相对(简单)些。 18、目前市场上流行的MPEG软解压软件有哪些?答:金山解霸、豪杰超级解霸、Xing等。 19、与同期硬盘相比,单片光盘容量比硬盘略(小)。 20、光盘的用户容量比格式化容量要(少)。 21、光盘存储数据采用EFM编码,即将1字节的8位编码为 (14 ) 位的光轨道位。 22、CD-DA即激光唱盘常采用(常线速)伺服方式。 23、激光唱盘的每秒的音频数据分为(75)个扇区。 24、Video CD标准是目前流行的视频光盘标准,它描述一个使用(CD-ROM)格式和(MPEG1)标准的数字电视播放系统。 25、实践中常用的多媒体功能卡有:(声卡、视频卡和图形加速卡)。 26、声卡可选择多种声源(麦克风、CD唱机、线路)输入。 27、(MIDI)是一种电子乐器之间、电子乐器与电脑之间的统一交流协议。 28、目前主要的声音合成手段有:(FM合成和波表合成)。(FM合成)多用于以前的ISA声卡; 波表合成是现在最先进的声音合成方法,它的合成原理要比FM合成复杂得多。 29、如果一首MIDI乐曲中的复音数超过了声卡的复音数,则将丢失某些声部,但一般不会丢失(主旋律)。 30、声音采样位数越(高),采样精度越(高)。 31、声音采样频率越(高),记录声音的波形就越(准确),保真度就越高,但采样产生的数据量也越(大),要求的存储空间也越(多)。 32、声卡复音数越 (大 ),音色就越好,播放MIDI时可以听到的声部越多、越细腻。 33、目前PC 视频采集卡通常采用32位的(PCI)总线接口,插到PC机主板的扩展槽中,以实现采集卡与PC机的通讯与数据传输。 34、低档视频采集卡通过PC机上的(声卡)获取数字化的伴音并把伴音与采集到的数字视频同步到一起。 35、可以把国际标准JPEG或MPEG算法集成在一块(视频处理)芯片上。 36、高性能的视频采集卡一般具有一个( 采集卡)接口和一个S-Video接口,以便与模拟视频设备相连。 37、一般的采集卡都支持(NTSC)和(PAL)两种电视制式。(NTSC,PAL,SECAM) 38、一般的PC视频采集卡采用帧内压缩的算法把数字化的视频存储成( AVI)文件。 39、视频采集卡一般都配有( 图形加速卡 )以控制和操作采集过程。 40、画面刷新率(Frame Rate)即显示器上图像画面的更新速度,单位为FPS或帧每秒。 41、凹凸贴图(Bump Mapping)是一种在3D场景中模拟粗糙表面的技术。 42、常见的3D贴图有:材质3D贴图、Mip贴图、凹凸贴图、视频材质贴图。

算术编码与解码

算术编码与解码 1、编码过程 算术编码方法是将被编码的一则消息或符号串(序列)表示成0和1之间的一个间隔(Interval),即对一串符号直接编码成[0,1]区间上的一个浮点小数。符号序列越长,编码表示它的间隔越小,表示这一间隔所需的位数就越多。信源中的符号序列仍然要根据某种模式生成概率的大小来减少间隔。可能出现的符号概率要比不太可能出现的符号减少范围小,因此,只正加较少的比特位。 在传输任何符号串之前,0符号串的完整范围设为[0,1]。当一个符号被处理时,这一范围就依据分配给这一符号的那一范围变窄。算术编码的过程,实际上就是依据信源符号的发生概率对码区间分割的过程。 输入:一个字符串 输出:一个小数 考虑某条信息中可能出现的字符仅有a b c 三种,要压缩保存的信息为bccb。 假设对a b c 三者在信息中的出现概率一无所知(采用自适应模型),暂时认为三者的出现概率相等,也就是都为1/3,将0 - 1 区间按照概率的比例分配给三个字符,即a 从0.0000 到0.3333,b 从0.3333 到0.6667,c 从0.6667 到 1.0000。用图形表示就是: +-- 1.0000 | Pc = 1/3 | | +-- 0.6667 | Pb = 1/3 | | +-- 0.3333 | Pa = 1/3 | | +-- 0.0000 对于第一个字符b,选择b 对应的区间0.3333 - 0.6667。这时由于多了字符b,三个字符的概率分布变成:Pa = 1/4,Pb = 2/4,Pc = 1/4。再按照新的概率分布比例划分0.3333 - 0.6667 这一区间,划分的结果可以用图形表示为: +-- 0.6667 Pc = 1/4 | +-- 0.5834 | | Pb = 2/4 | | | +-- 0.4167 Pa = 1/4 | +-- 0.3333 接着字符c,上一步中得到的 c 的区间0.5834 - 0.6667。新添了c 以后,三个字符的概率分布变成Pa = 1/5,Pb = 2/5,Pc = 2/5。用这个概率分布划分区间0.5834 - 0.6667: +-- 0.6667 | Pc = 2/5 | | +-- 0.6334 | Pb = 2/5 | | +-- 0.6001 Pa = 1/5 | +-- 0.5834 现在输入下一个字符c,三个字符的概率分布为:Pa = 1/6,Pb = 2/6,Pc = 3/6。划分c 的区间0.6334 - 0.6667: +-- 0.6667 | | Pc = 3/6 | | | +-- 0.6501 | Pb = 2/6 | | +-- 0.6390 Pa = 1/6 | +-- 0.6334 输入最后一个字符b,因为是最后一个字符,不用再做进一步的划分了,上一步中得到的 b 的区间为0.6390 - 0.6501,好,让我们在这个区间内随便选择一个容易变成二进制的数,例如0.64,将它变成二进制0.1010001111,去掉前面没有太多意义的0 和小数点,我们可以输出1010001111,这就是信息被压缩后的结果,我们完成了一次最简单的算术压缩过程。我的代码: publicstaticvoidBianMa(String info,StringDeal sd){ int i = 0, j = 0; //定义上下限 double low = 0, high = 1; double count = sd.getCount(); //定义初始各字符频率 double[] zifu = new double[(int)(count)]; for(i = 0;i < zifu.length;i++){ zifu[i] = 1;

H264标准的主要特点如下

H264标准的主要特点如下: 1.更高的编码效率:同H.263等标准的特率效率相比,能够平均节省大于50%的码率。 2.高质量的视频画面:H.264能够在低码率情况下提供高质量的视频图像,在较低带宽上提供高质量的图像传输是H.264的应用亮点。 3.提高网络适应能力:H.264可以工作在实时通信应用(如视频会议)低延时模式下,也可以工作在没有延时的视频存储或视频流服务器中。 4.采用混合编码结构:同H.263相同,H.264也使用采用DCT变换编码加DPCM的差分编码的混合编码结构,还增加了如多模式运动估计、帧内预测、多帧预测、基于内容的变长编码、4x4二维整数变换等新的编码方式,提高了编码效率。 5.H.264的编码选项较少:在H.263中编码时往往需要设置相当多选项,增加了编码的难度,而H.264做到了力求简洁的“回归基本”,降低了编码时复杂度。 6.H.264可以应用在不同场合:H.264可以根据不同的环境使用不同的传输和播放速率,并且提供了丰富的错误处理工具,可以很好的控制或消除丢包和误码。 7.错误恢复功能:H.264提供了解决网络传输包丢失的问题的工具,适用于在高误码率传输的无线网络中传输视频数据。 8.较高的复杂度:264性能的改进是以增加复杂性为代价而获得的。据估计,H.264编码的计算复杂度大约相当于H.263的3倍,解码复杂度大约相当于H.263的2倍。 H.264标准的关键技术 1.帧内预测编码 帧内编码用来缩减图像的空间冗余。为了提高H.264帧内编码的效率,在给定帧中充分利用相邻宏块的空间相关性,相邻的宏块通常含有相似的属性。因此,在对一给定宏块编码时,首先可以根据周围的宏块预测(典型的是根据左上角的宏块,因为此宏块已经被编码处理),然后对预测值与实际值的差值进行编码,这样,相对于直接对该帧编码而言,可以大大减小码率。 H.264提供6种模式进行4×4像素宏块预测,包括1种直流预测和5种方向预测,如图2所示。在图中,相邻块的A到I共9个像素均已经被编码,可以被用以预测,如果我们选择模式4,那么,a、b、c、d4个像素被预测为与E相等的值,e、f、g、h4个像素被预测为与F相等的值,对于图像中含有很少空间信息的平坦区,H.264也支持16×16的帧内编码。图2 帧内编码模式 2.帧间预测编码 帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿。H.264的运动补偿支持以往的视频编码标准中的大部分关键特性,而且灵活地添加了更多的功能,除了支持P帧、B帧外,H.264还支持一种新的流间传送帧——SP帧,如图3所示。码流中包含SP帧后,能在有类似内容但有不同码率的码流之间快速切换,同时支持随机接入和快速回放模式。图3 SP-帧示意图H.264的运动估计有以下4个特性。 (1)不同大小和形状的宏块分割

数字图像处理和算术编码

数字图像处理课程设计 题目:数字图像处理及算术编码 (或D C T压缩编码)仿真实现学生姓名: 学院:信息工程学院 系别:电子信息工程系 专业:电子信息工程 班级:电子09-2班 指导教师:韩建峰辛莉 2012 年 12月 17 日 数字图像处理课程设计 1、课程设计目的 通过本课程设计使学生了解数字图像的基本概念,掌握数字图像处理的基本内容,如图像点运算、几何变换、增强处理、图像复原、边缘检测以及图像压缩等的基本原理和Matlab实现方法。 通过本次课程设计,让学生掌握如何学习一门语言,如何进行资料查阅搜集,如何自己解决问题等方法,养成良好的学习习惯。扩展理论知识,培养学生的综合设计能力。 2、课程设计内容 2.1 图像处理基本功能 1)数字图像的变换:普通傅里叶变换(ft)与逆变换(ift)、快速傅里叶变 换(fft)与逆变换(ifft)、离散余弦变换(DCT),小波变换。

2) 数字图像直方图的统计及绘制等; 2.2 图像处理综合功能 1)图像平滑算法程序设计: 2)DCT压缩(保留不同系数),要求显示原图像、压缩后图像的文件大小、压缩比或算术编码压缩 3、课程设计的一般步骤 1)选题与搜集资料:选择课题,进行系统调查,搜集资料。 2)分析与设计:根据搜集的资料,进行功能分析,并对系统功能与模块划分等设计。 3)程序设计:运用掌握的语言,编写程序,实现所设计的功能。 4)调试与测试:自行调试程序,同学之间交叉测试程序,并记录测试情况。 5)验收与评分:指导教师对每个成员开发的程序进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。 4、要求 4.1总体要求 1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准 备工作。尤其是对编程软件的使用有基本的认识。 2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题, 独立思考,努力钻研,勤于实践,勇于创新。 3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容, 否则成绩以不及格计。 4、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态 度,必须按时、按质、按量完成课程设计。 4.2 课程设计报告的内容及要求 在完成课题验收后,学生应在规定的时间内完成课程设计报告一份,报告的内容和要求如下: 1.目的与要求 这部分主要说明本课程设计的目的、任务和要求; 2.设计的内容 根据指导书的讲述,介绍系统中所设计的主要功能和原理方法; 3.各个功能的实现程序及结果 附各个功能的实现程序,需要在程序中做适当的注释,附处理前后效果图。 5.测试和调试 按课程设计要求,选用多幅图像(自己的照片)对程序进行测试,并提供系统的主要功能实现的效果图。并在调试中发现的问题做说明。 6.课程设计总结与体会

算术编码与哈夫曼编码

安徽大学 本科毕业论文(设计、创作)题目:哈夫曼编码与算术编码压缩效率比较 学生姓名:李伟学号:E20714134 院(系):计算机科学与技术专业:软件工程 入学时间:2007年9月 导师姓名:韩莉职称/学位:讲师/硕士 导师所在单位:安徽大学计算机科学与技术学院 完成时间:2011年5月

哈夫曼编码与算术编码压缩效率比较 摘要 算术编码和哈夫曼编码都利用信源符号的概率分布特性进行编码,使平均码长逼近信息熵是压缩编码算法的第一要求,算术编码比哈夫曼编码逼近信息熵的能力要强,但是编码效率和实现往往是一对矛盾,编码效率的提高,往往要在实现上付出代价,所以,选择压缩算要权衡这两点。本论文开篇先引入了信息论的一些概念,因为编码理论发源于信息论,是各种编码算法的数学基础。然后在第2章分析了算术编码原理,并从无限精度的算术编码原理过渡到在计算机上能够实现的二进制编码原理。在第3章紧接着介绍了哈夫曼编码原理,并讨论了怎样把信源符号映射为对应的码字,过程中用到的哈夫曼编码表是编码与解码的关键。在第4章对两者的编码效率作了比较,主要是结合信息论中的一些概念从微观上对两者逼近信息熵的能力作了比较,并在这章最后对两者在文本文件的压缩效果的表现上给出了一些实验结果。最后,在5章,主要是对前面内容做了些补充和总结。 关键词:信息熵;算术编码;哈夫曼编码;编码效率

The comparison of Huffman Coding and Arithmetic Coding in File Compression Abstract Full use of the probability distribution of source symbols is the feature of the arithmetic encoding and Huffman encoding. Approaching the average code length to the information entropy come first when designing a compression algorithm. To the capacity of closing to information entropy, arithmetic encoding is stronger than Huffman encoding. However, the coding efficiency and implementation is often a contradiction: to improve coding efficiency, which means the algorithm implementation process needs to pay a higher price. Therefore, you need to weigh both when choosing a compression algorithm. In the beginning of this thesis, it first introduced some of the concepts of information theory. Because encoding algorithms are derived from information theory and information theory is the mathematical foundation of various coding algorithms. Then in Chapter 2, it introduces the principle of arithmetic coding. For better to understand the binary arithmetic coding principle, it first introduces the unlimited precision arithmetic coding. In Chapter 3, it describes the Huffman coding theory, and discusses how to map source symbol to the corresponding code word, among which Huffman coding and decoding table is the key. In Chapter 4, the coding efficiency of the two algorithms is compared. Mainly compare the capacities to approximate information entropy with some of the concepts in information theory. And the final part in this chapter, some experimental results are given to show the compression effect to compress a text file. Finally, in Chapter 5, it gives some additions and summary. Keywords:Information Entropy; Arithmetic Coding; Huffman Coding;Coding Efficiency

多媒体课后思考题1

多媒体课后思考题 5个名词解释,5*8;8个论述选择6个,6*10;名词解释注意看卷积,自适应差分脉冲编码调制(ADPCM),熵,拉普拉斯算子,经典的滤波概念,可以画图,中值;论述题主要是课后思考题 SML与GML评价,差值、误差。 直方图规定化有两种经典算法,分别是单映射规则(sml)和组映射规则(gml),sml 映射规则时,从原始累计直方图向目标累积直方图进行,从小到大依次找到能使下式最小的k和l: 由于这里每个ps(si)是分别对应过去的,因而这种方法简单直观,但有时候会有较大的取证误差。 组映射规则(gml): 运用组映射规则(GML)产生的误差要比单映射规则(SML)小,GML产生的图像更接近于规定图,在连续情况下两个规则都能给出精确的规定化结果,但在离散情况下精确程度常不一样,因为取整误差的影响,当把某ps(si)对应到pu(uj)时,运用SML映射规则可能会产生的最大误差是pu(uj)/2,而运用GML映射规则可能会产生的最大误差是ps(i)/2。因为规定直方图灰度级(N)<原始图的直方图灰度级(M),所以ps(si)/2≤pu(uj)/2,也就是说SML映射规则的期望误差总大于等于GML映射规则的期望误差。 FFT STFT WAVELET之间的关系 快速傅里叶变换,短时傅里叶变换,小波变换, FFT是一种离散傅里叶变换的高效算法,称为快速傅立叶变换(fast Fourier transform),它根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。FFT算法可分为按时间抽取算法和按频率抽取算法, 由于傅里叶变换只能够给出信号的频域性质。也就是说频率并没有对应到时间上。这对于一个稳定信号是没有什么影响的,因为信号的频率永远都是一种分布。然而对于一个非稳定的信号,由于频率随时间在变化,那么使用傅里叶变换就无法完整的描述这种变化的性质。为了更好地表达这种变化的特点,短时傅里叶变换(STFT)被引入并且很快得到了推广。连续时间短时傅立叶变换: x(t)代表信号,w(t)是窗函数。 离散时间短时傅立叶变换:

算术编码

实验三算术编码 一、实验目的 1、复习C++语言基本编写方法,熟悉VC编程环境。 2、复习算术编码基本流程, 学会调试算术编码编码程序。 3、根据给出资料,自学自适应0阶算术编、解码方法。 二、实验内容 1.复习C++代码基本语法(类和虚函数等面向对象数据结构定义) 2.根据实验提供的源代码,学习算术编码实现流程,培养实际动手调试能力和 相应的编程技巧。 三、实验仪器、设备 1.计算机-系统最低配置256M 内存、P4 CPU。 2.C++ 编程软件-Visual C++ 7.0 (Microsoft Visual Studio 2003) Visual C++ 8.0 (Microsoft Visual Studio 2005) 四、实验原理 1.算术编码基本原理是将编码消息表示成实数0 和1 之间的一个间隔,消息 越长,编码表示它的间隔就越小,表示这一间隔所需的二进制位就越多。算术编码用到两个基本的参数:符号的概率和它的编码间隔。信源符号的概率决定压缩编码 的效率,也决定编码过程中信源符号的间隔,而这些间隔包含在0 到1 之间。编码 过程中的间隔决定了符号压缩后的输出。如何解压缩呢?那就更简单了。解压缩之前仍然假定三个字符的概率相等。解压缩时面对的是二进制流 1010001111,先在前面加上 0 和小数点把它变成小数0.1010001111,也就是十进制 0.64。这时我们发现 0.64 在分布图中落入字符 b 的区间内,立即输出字符 b,并得出三个字符新的概率分布。类似压缩时采用的方法,我们按照新的概率分布划分字符 b 的区间。在新的划分中,我们发现 0.64 落入了字符c 的区间,我们可以输出字符 c。同理,我们可以继续输出所有的字符,完成全部解压缩过程。 2.小数存储方法 如果信息内容特别丰富,我们要输出的小数将会很长很长,该如何在内存中表 示如此长的小数呢?其实,没有任何必要在内存中存储要输出的整个小数。从上面 的例子可以知道,在编码的进行中,会不断地得到有关要输出小数的各种信息。具 体地讲,当我们将区间限定在 0.6390 - 0.6501 之间时,我们已经知道要输出的小数第一位(十进制)一定是 6,那么我们完全可以将 6 从内存中拿掉,接着在区间 0.390 - 0.501 之间继续我们的压缩进程。内存中始终不会有非常长的小数存在。 使用二进制时也是一样的,我们会随着压缩的进行不断决定下一个要输出的二进制 位是 0 还是 1,然后输出该位并减小内存中小数的长度,具体可以参考E1/E2/E3 放大原理,及它们之间关系的描述。 3.静态模型与自适应模型 1)静态模型 对信息 bccb 我们统计出其中只有两个字符,概率分布为 Pb = 0.5,Pc = 0.5。在压缩过程中不必再更新此概率分布,每次对区间的划分都依照此分布即可,对上例 也就是每次都平分区间。这样,压缩过程可以简单表示为: 输出区间的下限输出区间的上限 ------------------------------------------------------------------------ 压缩前 0.0 1.0 输入 b 0.0 0.5 输入 c 0.25 0.5 输入 c 0.375 0.5 输入 b 0.375 0.4375

算术编码

算术编码原理 在给定符号集和符号概率的情况下,算术编码可以给出接近最优的编码结果。使用算术编码的压缩算法通常先要对输入符号的概率进行估计,然后再编码。这个估计越准,编码结果就越接近最优的结果。 例: 对一个简单的信号源进行观察,得到的统计模型如下: ?60% 的机会出现符号中性 ?20% 的机会出现符号阳性 ?10% 的机会出现符号阴性 ?10% 的机会出现符号数据结束符. (出现这个符号的意思是该信号源'内部中止',在进行数据压缩时这样的情况是很常见的。当第一次也是唯一的一次看到这个符号时,解码器就知道整个信号流都被解码完成了。) 算术编码可以处理的例子不止是这种只有四种符号的情况,更复杂的情况也可以处理,包括高阶的情况。所谓高阶的情况是指当前符号出现的概率受之前出现符号的影响,这时候之前出现的符号,也被称为上下文。比如在英文文档编码的时候,例如,在字母Q或者q出现之后,字母u出现的概率就大大提高了。这种模型还可以进行自适应的变化,即在某种上下文下出现的概率分布的估计随着每次这种上下文出现时的符号而自适应更新,从而更加符合实际的概率分布。不管编码器使用怎样的模型,解码器也必须使用同样的模型。 一个简单的例子以下用一个符号串行怎样被编码来作一个例子:假如有一个以A、B、C三个出现机会均等的符号组成的串行。若以简单的分组编码会十分浪费地用2 bits来表示一个符号:其中一个符号是可以不用传的(下面可以见到符号B正是如此)。为此,这个串行可以三进制的0和2之间的有理数表示,而且每位数表示一个符号。例如,―ABBCAB‖ 这个串行可以变成0.011201(base3)(即0为A, 1 为B, 2为C)。用一个定点二进制数字去对这个数编码使之在恢复符号表示时有足够的精度,譬如0.001011001(base2) –只用了9个bit,比起简单的分组编码少(1 –9/12)x100% = 25%。这对于长串行是可行的因为有高效的、适当的算法去精确地转换任意进制的数字。 编码过程的每一步,除了最后一步,都是相同的。编码器通常需要考虑下面三种数据: ?下一个要编码的符号 ?当前的区间(在编第一个符号之前,这个区间是[0,1), 但是之后每次编码区间都会变化)

相关文档