文档库 最新最全的文档下载
当前位置:文档库 › 算术编码与解码

算术编码与解码

算术编码与解码
算术编码与解码

算术编码与解码

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;

}

String deal = sd.getDeal();

for(i = 0;i < info.length();i++){

//得到频率范围

double cha = high - low;

double sa = 0;

for(j = 0; j < deal.length(); j++){

//sa表示频率上限分子

sa += zifu[j];

//sb表示频率下限分子

double sb = sa - zifu[j];

if(info.charAt(i) == deal.charAt(j)){

//得到新的上限

high = low + sa/count * cha;

//得到新的下限

low = low + sb/count*cha;

zifu[j]++;

}

} //重置sa为0

sa = 0;

//频率分母

count++; }

shu = (low+high)/2;

System.out.println(shu);

}

2、解码过程

解码是编码的逆过程,对应每个频率范围,若输入位于某各字符的频率范围之内,则将该字符记录,并得到新的上下限。

我的代码:

publicstaticvoid JieMa(StringDeal sd,double shu){

//定义上下限

double low = 0, high = 1;

double count = sd.getCount();

int j = 0, i =0;

String deal = sd.getDeal();

//定义一个初始字符串存储译码结果

String info = "";

//字符初始字符量设置为1

double[] zifu = newdouble[(int)(count)];

for(i = 0;i < zifu.length;i++){

zifu[i] = 1;

}

while((low+high)/2 != shu){

//定义上下限

double cha = high - low;

double sa = 0;

for(j = 0; j < deal.length(); j++){

//sa表示频率上限分子

sa += zifu[j];

//sb表示频率下限分子

double sb = sa - zifu[j];

if(shu < low+sa/count * cha && shu >low+sb/count * cha){

//将译码结果存入字符串

info = info + deal.charAt(j);

//得到新的上限

high = low + sa/count * cha;

//得到新的下限

low = low + sb/count*cha;

zifu[j]++;

}

}

//重置sa

sa = 0;

i++;

}

//输出译码结果

System.out.println(info);

}

实验结果:(运行环境:win10)

视频压缩编码方法简介—AVI

视频压缩编码方法简介—AVI AVI(Audio Video Interleave)是一种音频视像交插记录的数字视频文件格式。1992年初Microsoft公司推出了AVI技术及其应用软件VFW(Video for Windows)。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。这种按交替方式组织音频和视像数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等: 1、视像参数 (1)、视窗尺寸(Video size):根据不同的应用要求,AVI的视窗大小或分辨率可按4:3的比例或随意调整:大到全屏640×480,小到160×120甚至更低。窗口越大,视频文件的数据量越大。 (2)、帧率(Frames per second):帧率也可以调整,而且与数据量成正比。不同的帧率会产生不同的画面连续效果。 2、伴音参数:在AVI文件中,视像和伴音是分别存储的,因此可以把一段视频中的视像与另一段视频中的伴音组合在一起。AVI 文件与WAV文件密切相关,因为WAV文件是AVI文件中伴音信号的来源。伴音的基本参数也即WAV文件格式的参数,除此以外,AVI文件还包括与音频有关的其他参数: (1)、视像与伴音的交织参数(Interlace Audio Every X Frames)AVI格式中每X帧交织存储的音频信号,也即伴音和视像交替的频率X是可调参数,X的最小值是一帧,即每个视频帧与音频数据交织组织,这是CD-ROM上使用的默认值。交织参数越小,回放AVI文件时

读到内存中的数据流越少,回放越容易连续。因此,如果AVI文件的存储平台的数据传输率较大,则交错参数可设置得高一些。当AVI文件存储在硬盘上时,也即从硬盘上读AVI文件进行播放时,可以使用大一些的交织频率,如几帧,甚至1秒。 (2)、同步控制(Synchronization) 在AVI文件中,视像和伴音是同步得很好的。但在MPC中回放AVI文件时则有可能出现视像和伴音不同步的现象。 (3)、压缩参数:在采集原始模拟视频时可以用不压缩的方式,这样可以获得最优秀的图像质量。编辑后应根据应用环境环择合适的压缩参数。 3、 AVI数字视频的特点 (1)、提供无硬件视频回放功能:AVI格式和VFW软件虽然是为当前的MPC设计的,但它也可以不断提高以适应MPC的发展。根据AVI格式的参数,其视窗的大小和帧率可以根据播放环境的硬件能力和处理速度进行调整。在低档MPC机上或在网络上播放时,VFW的视窗可以很小,色彩数和帧率可以很低;而在Pentium级系统上,对于64K色、320×240的压缩视频数据可实现每秒25帧的回放速率。这样,VFW就可以适用于不同的硬件平台,使用户可以在普通的MPC上进行数字视频信息的编辑和重放,而不需要昂贵的专门硬件设备。 (2)、实现同步控制和实时播放:通过同步控制参数,AVI可以通过自调整来适应重放环境,如果MPC的处理能力不够高,而AVI文件的数据率又较大,在WINDOWS环境下播放该AVI文件时,播放器可

算术编码工作原理

算术编码工作原理 在给定符号集和符号概率的情况下,算术编码可以给出接近最优的编码结果。使用算术编码的压缩算法通常先要对输入符号的概率进行估计,然后再编码。这个估计越准,编码结果就越接近最优的结果。 例: 对一个简单的信号源进行观察,得到的统计模型如下: ?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), 但是之后每次编码区间都会变化) ?模型中在这一步可能出现的各个符号的概率分布(像前面提到的一样,高阶或者自适应的模型中,每一步的概率并不必须一样) 编码其将当前的区间分成若干子区间,每个子区间的长度与当前上下文下可能出现的对应符号的概率成正比。当前要编码的符号对应的子区间成为在下一步编码中的初始区间。

信息论与编码理论习题答案

信息论与编码理论习题 答案 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

第二章 信息量和熵 八元编码系统,码长为3,第一个符号用于同步,每秒1000个码字,求它的信息速 率。 解:同步信息均相同,不含信息,因此 每个码字的信息量为 2?8log =2?3=6 bit 因此,信息速率为 6?1000=6000 bit/s 掷一对无偏骰子,告诉你得到的总的点数为:(a) 7; (b) 12。问各得到多少信息 量。 解:(1) 可能的组合为 {1,6},{2,5},{3,4},{4,3},{5,2},{6,1} )(a p =366=6 1 得到的信息量 =) (1 log a p =6log = bit (2) 可能的唯一,为 {6,6} )(b p =361 得到的信息量=) (1 log b p =36log = bit 经过充分洗牌后的一副扑克(52张),问: (a) 任何一种特定的排列所给出的信息量是多少? (b) 若从中抽取13张牌,所给出的点数都不相同时得到多少信息量? 解:(a) )(a p =! 521 信息量=) (1 log a p =!52log = bit (b) ? ??????花色任选种点数任意排列 13413!13 )(b p =13 52134!13A ?=1352 13 4C 信息量=1313 52 4log log -C = bit 随机掷3颗骰子,X 表示第一颗骰子的结果,Y 表示第一和第二颗骰子的点数之和, Z 表示3颗骰子的点数之和,试求)|(Y Z H 、)|(Y X H 、),|(Y X Z H 、 )|,(Y Z X H 、)|(X Z H 。

视频压缩编解码标准

广州市诚讯电子有限公司培训教程之视频压缩编解码标准

目前视频流传输中最为重要的编解码标准有国际电联的H.261、H.263 、H.264 ,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV以及Apple公司的QuickTime等。 监控系统大致可分为信号采集、传输、记录三部分。应用不同的视频压缩格式会影响到图像清晰度、画面延时、稳定性,主要的视频压缩算法包括:M-JPEG、Mpeg、H.264、Wavelet(小波压缩)。

MPEG系列标准 MPEG-1标准: 广泛的应用在VCD 的制作和一些视频片段下载的网络应用上面,可以说99% 的VCD 都是用MPEG1 格式压缩的。 我们目前习惯的MP3,并不是MPEG-3,而是MPEG 1 layer 3,属于MPEG 1中的音频部分。MPEG 1的像质等同于VHS,存储媒体为CD-ROM,图像尺寸320×240,音质等同于CD,比特率为1.5Mbps。 MPEG-2标准: MPEG组织于1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性。PEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定,编码码率从每秒3Mbps~100Mbps。MPEG-2不是MPEG-1的简单升级,MPEG-2在系统和传送方面作了更加详细的规定和进一步的完善。MPEG-2特别适用于广播级的数字电视的编码和传送,被认定为DVD 和HDTV的编码标准。 MPEG-3标准: 是ISO/IEC最初为HDTV 开发的编码和压缩标准,要求传输速率在20Mbits/sev- 40Mbits/sec间,但这将使画面有轻度扭曲,而且由于MPEG2 的高速发展,此算法已被淘汰; MPEG-4标准: 传输速率要求较低,与MPEG-1和MPEG-2相比,更适于交互AV服务以及远程监控。 此算法也是目前在监控领域应用比较广泛、成熟的;

视频文件格式和视频编码方式区别

目前网上的各种视频格式可以说是泛滥成灾,加上各个PMP(Portable Media Player,便携式媒体播放器)生产厂家的对自己产品在功能方面的炒作,使得很多人对视频格式的名称都是一头的雾水。 经常有些童鞋问我类似下面的问题。 A问我说:“我的MP4分明写着能播放AVI吗?为什么这一个AVI文件就播放不了?” B问:“我的MP4支持Mpeg-4啊,为什么Mp4文件不能播放呢?” 好的,下面我从最基本的概念给大家解释一下,顺便回答这两个问题 首先大家要清楚两个概念,视频文件格式和视频编码方式。 视频文件格式一般情况下从视频文件的后缀名就能看出来,比如AVI,Mp4,3gp,mov,rmvb等等。这些格式又叫做容器格式(container format),顾名思义就是用来装东西的,你可以把它想象成为一个便当盒,或者野餐篮(兄弟,你没吃早饭吧)。 通常我们从网上下载的电影都是有声音的(废话,难道你只看默片!众人扔香蕉皮),所以容器格式中一般至少包含有两个数据流(stream),一个视频流,一个音频流,就好比是一个便当盒里装着的配菜和米饭。 视频编码方式则是指容器格式中视频流数据的压缩编码方式,例如Mpeg-4,,,等等。而视频数据采用了何种编码方式是无法单单从文件格式的后缀上看出来的。就是说你无法从一个盖着盖子的便当盒外面看出里面装了什么配菜。 如果你想播放一个视频文件,第一步你的播放器(不论是软件的还是硬件的)要能够解析相应的容器格式,这一步也叫做解复用(demux),第二步你的播放器要能够解码其中所包含视频流和音频流。这样影片才能播放出来。 打个不太恰当的比方,播放器好比你雇用的一个试菜员,由他来品尝便当(视频文件),然后告诉你便当里装了什么东西。(没天理阿!我想自己吃,好的当然可以,0x00 00 01 B6 05 FF 36 1A 50 …… ……,俄~) 所以试菜员首先要懂得如何打开便当盒,还要知道吃的出来便当盒里装了什么配菜,这样你才能获得你想要的信息。 回过头来看前面的两个问题,用以上的比喻翻译一下。 问题A,我的试菜员能打开AVI这种便当的,为什么我不能知道里面装了什么? 回答很简单,虽然他能够打开便当,但是吃不出里面的东西是什么。理论上没有一个播放器能够播放所有的AVI格式的电影,因为你不知道我会往里面放什么配菜。 问题B,我的试菜员吃过Mpeg-4这种牛排阿,为什么不能打开Mp4这种便当盒呢? 这个问题通过翻译之后看起来已经不是问题了,Mpeg-4是视频编码方式,而Mp4是容器格式,两者本来就不是一个范畴里的东西。 好了下面简单介绍一下流行的视频格式。 AVI是音频视频交错(Audio Video Interleaved)的英文缩写,它是Microsoft公司开发的一种数字音频与视频文件格式,允许视频和音频交错在一起同步播放。 AVI文件的格式是公开并且免费的,大量的视频爱好者在使用这种文件格式。很多PMP 唯一能支持的格式就是AVI格式,一般的PMP都带有可以转换其他格式视频成为AVI格式的软件。 AVI文件采用的是RIFF(Resource Interchange File Format,资源互换文件格式)文件结构,RIFF是Microsoft公司定义的一种用于管理windows环境中多媒体数据的文件格

算术编码与解码

算术编码与解码 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;

视频编码的基本原理及基本框架

视频编码的基本原理及基本框架 视频图像数据有极强的相关性,也就是说有大量的冗余信息。其中冗余信息可分为空域冗余信息和时域冗余信息。压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。 去时域冗余信息 使用帧间编码技术可去除时域冗余信息,它包括以下三部分: -运动补偿 运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。 -运动表示 不同区域的图像需要使用不同的运动矢量来描述运动信息。运动矢量通过熵编码进行压缩。-运动估计 运动估计是从视频序列中抽取运动信息的一整套技术。 注:通用的压缩标准都使用基于块的运动估计和运动补偿 去空域冗余信息 主要使用帧内编码技术和熵编码技术: -变换编码 帧内图像和预测差分信号都有很高的空域冗余信息。变换编码将空域信号变换到另一正交矢量空间,使其相关性下降,数据冗余度减小。 -量化编码 经过变换编码后,产生一批变换系数,对这些系数进行量化,使编码器的输出达到一定的位率。这一过程导致精度的降低。

熵编码是无损编码。它对变换、量化后得到的系数和运动信息,进行进一步的压缩。 视频编码的基本框架 H.261 H.261标准是为ISDN设计,主要针对实时编码和解码设计,压缩和解压缩的信号延时不超过150ms,码率px64kbps(p=1~30)。 H.261标准主要采用运动补偿的帧间预测、DCT变换、自适应量化、熵编码等压缩技术。只有I帧和P帧,没有B帧,运动估计精度只精确到像素级。支持两种图像扫描格式:QCIF 和CIF。 H.263 H.263标准是甚低码率的图像编码国际标准,它一方面以H.261为基础,以混合编码为核心,其基本原理框图和H.261十分相似,原始数据和码流组织也相似;另一方面,H.263也吸收了MPEG等其它一些国际标准中有效、合理的部分,如:半像素精度的运动估计、PB帧预测等,使它性能优于H.261。 H.263使用的位率可小于64Kb/s,且传输比特率可不固定(变码率)。H.263支持多种分辨率:SQCIF(128x96)、QCIF、CIF、4CIF、16CIF。 与H.261和H.263相关的国际标准 与H.261有关的国际标准 H.320:窄带可视电话系统和终端设备; H.221:视听电信业务中64~1 920Kb/s信道的帧结构; H.230:视听系统的帧同步控制和指示信号; H.242:使用直到2Mb/s数字信道的视听终端的系统。 与H.263有关的国际标准 H.324:甚低码率多媒体通信终端设备; H.223:甚低码率多媒体通信复合协议; H.245:多媒体通信控制协议; G.723.1.1:传输速率为5.3Kb/s和6.3Kb/s的语音编码器。 JPEG 国际标准化组织于1986年成立了JPEG(Joint Photographic Expert Group)联合图片专家小组,主要致力于制定连续色调、多级灰度、静态图像的数字图像压缩编码标准。常用的基于离散余弦变换(DCT)的编码方法,是JPEG算法的核心内容。

视频压缩编码方法简介—AVI

视频压缩编码方法简介—A V I A VI(Audio Video Interleave)是一种音频视像交插记录的数字视频文件格式。1992年初Microsoft公司推出了A VI技术及其应用软件VFW(Video for Windows)。在A VI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。这种按交替方式组织音频和视像数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。构成一个A VI文件的主要参数包括视像参数、伴音参数和压缩参数等。 1.视像参数 (1)视窗尺寸(Video size)。根据不同的应用要求,A VI的视窗大小或分辨率可按4:3的比例或随意调整,大到全屏640×480,小到160×120甚至更低。窗口越大,视频文件的数据量越大。 (2)帧率(Frames per second)。帧率也可以调整,而且与数据量成正比。不同的帧率会产生不同的画面连续效果。 2.伴音参数。在A VI文件中,视像和伴音是分别存储的,因此可以把一段视频中的视像与另一段视频中的伴音组合在一起。A VI文件与WA V文件密切相关,因为WA V文件是A VI文件中伴音信号的来源。伴音的基本参数也即WA V文件格式的参数,除此以外,A VI文件还包括与音频有关的其他参数。 (1)视像与伴音的交织参数(Interlace Audio Every X Frames)。A VI格式中每X帧交织存储的音频信号,也即伴音和视像交替的频率X是可调参数,X的最小值是一帧,即每个视频帧与音频数据交织组织,这是CD-ROM上使用的默认值。交织参数越小,回放A VI文件时读到内存中的数据流越少,回放越容易连续。因此,如果A VI文件的存储平台的数据传输率较大,则交错参数可设置得高一些。当A VI文件存储在硬盘上时,也即从硬盘上读A VI文件进行播放时,可以使用大一些的交织频率,如几帧,甚至1秒。 (2)同步控制(Synchronization)。在A VI文件中,视像和伴音是同步得很好的。但在MPC中回放A VI文件时则有可能出现视像和伴音不同步的现象。 (3)压缩参数。在采集原始模拟视频时可以用不压缩的方式,这样可以获得最优秀的图像质量。编辑后应根据应用环境选择合适的压缩参数。 3.A VI数字视频的特点 (1)提供无硬件视频回放功能。A VI格式和VFW软件虽然是为当前的MPC设计的,但它也可以不断提高以适应MPC的发展。根据A VI格式的参数,其视窗的大小和帧率可以根据播放环境的硬件能力和处理速度进行调整。在低档MPC机上或在网络上播放时,VFW的视窗可以很小,色彩数和帧率可以很低;而在Pentium级系统上,对于64K色、320×240的压缩视频数据可实现每秒25帧的回放速率。这样,VFW就可以适用于不同的硬件平台,使用户可以在普通的MPC上进行数字视频信息的编辑和重放,而不需要昂贵的专门硬件设备。 (2)实现同步控制和实时播放。通过同步控制参数,A VI可以通过自调整来适应重放环境,如果MPC 的处理能力不够高,而A VI文件的数据率又较大,在WINDOWS环境下播放该A VI文件时,播放器可以通过丢掉某些帧,调整A VI的实际播放数据率来达到视频、音频同步的效果。 (3)可以高效地播放存储在硬盘和光盘上的A VI文件。由于A VI数据的交叉存储,VFW播放A VI数据时只需占用有限的内存空间,因为播放程序可以一边读取硬盘或光盘上的视频数据一边播放,而无需预先把容量很大的视频数据加载到内存中。在播放A VI视频数据时,只需在指定的时间内访问少量的视频图像和部分音频数据。这种方式不仅可以提高系统的工作效率,同时也可以实现迅速地加载和快速地启动播放程序,减少播放A VI视频数据时用户的等待时间。 (4)提供了开放的A VI数字视频文件结构。A VI文件结构不仅解决了音频和视频的同步问题,而且具有通用和开放的特点。它可以在任何Windows环境下工作,而且还具有扩展环境的功能。用户可以开发自己的A VI视频文件,在Windows环境下可随时调用。 (5)A VI文件可以再编辑。A VI一般采用帧内有损压缩,可以用一般的视频编辑软件如Adobe Premiere 或MediaStudio进行再编辑和处理。

视频编码标准汇总及比较

视频编码标准汇总及比较 MPEG-1 类型:Audio&Video 制定者:MPEG(Moving Picture Expert Group) 所需频宽:2Mbps 特性:对动作不激烈的视频信号可获得较好的图像质量,但当动作激烈时,图像就会产生马赛克现象。它没有定义用于额外数据流进行编对码的格式,因此这种技术不能广泛推广。它主要用于家用VCD,它需要的存储空间比较大。 优点:对动作不激烈的视频信号可获得较好的图像质量。 缺点:当动作激烈时,图像就会产生马赛克现象。它没有定义用于额外数据流进行编对码的格式,因此这种技术不能广泛推广。 应用领域:Mixer 版权方式:Free 备注:MPEG-1即俗称的VCD。MPEG是ISO/IEC JTC1 1988年成立的运动图像专家组(Moving Picture Expert Group)的简称,负责数字视频、音频和其他媒体的压缩、解压缩、处理和表示等国际技术标准的制定工作。MPEG-1制定于1992年,它是将视频数据压缩成1~2Mb/s的标准数据流。对于清晰度为352×288的彩色画面,采用25帧/秒,压缩比为50:1时,实时录像一个小时,经计算可知需存储空间为600MB左右,若是8路图像以每天录像10小时,每月30天算,则要求硬盘存储容量为1440GB,则显然是不能被接受的。 --------------------------------------------------------------------------------------------- MPEG-2

类型:Audio&Video 制定者:MPEG(Moving Picture Expert Group) 所需频宽:视频上4.3Mbps,音频上最低的采样率为16kHz 特性:编码码率从每秒3兆比特~100兆比特,是广播级质量的图像压缩标准,并具有CD 级的音质。MPEG-2的音频编码可提供左、右、中及两个环绕声道,以及一个加重低音声道,和多达7个伴音声道。作为MPEG-1的兼容性扩展,MPEG-2支持隔行扫描视频格式和其它先进功能,可广泛应用在各种速率和各种分辨率的场合。但是MPEG-2标准数据量依然很大,不便存放和传输。 优点:MPEG-2的音频编码可提供左、右、中及两个环绕声道,以及一个加重低音声道,和多达7个伴音声道,具有CD级的音质。可提供一个较广的范围改变压缩比,以适应不同画面质量、存储容量以及带宽的要求。支持隔行扫描视频格式和其它先进功能,可广泛应用在各种速率和各种分辨率的场合。 缺点:压缩比较低,数据量依然很大,不便存放和传输,如用于网络方面则需要较高的网络带宽,因此不太适合用于Internet和VOD点播方面。 应用领域:Mixer 版税方式:按个收取(最初的收费对象为解码设备和编码设备,中国DVD制造商每生产一台DVD需要交纳专利费16.5美元。向解码设备和编码设备收取的专利授权费每台2.5美元) 备注:MPEG-2是其颁布的(活动图像及声音编码)国际标准之一,制定于1994年,是为高级工业标准的图像质量以及更高的传输率而设计,为了力争获得更高的分辨率 (720×486),提供广播级视频和CD级的音频,它是高质量视频音频编码标准。在常规电视的数字化、高清晰电视HDTV、视频点播VOD,交互式电视等各个领域中都是核心的技术之一。由于MPEG-2在设计时的巧妙处理,使得大多数MPEG-2解码器也可播放MPEG-1格式的数据,如VCD。MPEG-2的音频编码可提供左、右、中及两个环绕声道,以及一个加重低音声道,和多达7个伴音声道。我们平时所说的DVD就是采用MPEG-2编码压缩,所以可有8种语言的配音。除了作为DVD的指定标准外,MPEG-2的应用前景非常的广阔,

视频编解码芯片

芯片厂商如何改变视频监控行业(1) 随着中国安防市场近年来的迅速增长,芯片市场也随之得到了强劲发展。安防行业的需求逐渐明确,芯片厂家开始关注并主动去推广安防这个潜力巨大的市场。安防行业的发展吸引了越来越多的芯片厂商加入,成为继工业自动化、消费电子、电话机等领域之后一个新的利润角逐场。 然而,表象背后,是否会续写PC电脑行业的悲哀,频频受制于英特尔?“狼来了”的口号是否会在安防行业响起?值得我们欣慰的是,安防行业产品种类繁多,应用情况又各不相同,这也就决定了芯片厂商还没有能力“一手遮天”。 未来,将会有越来越多的芯片厂商将目光投向SoC芯片,致力于提高集成度,引入先进工艺,降低系统成本,改善系统性能以增强市场竞争力。为下游用户带来更多价值,从而推动产业向更深、更广的范围发展。 目前,中国已成为全球最大的安防市场。中国安防产值从十年前两百多亿元增长到目前的两千亿元,安防各类产品、系统、解决方案的应用层出不穷,安防市场出现难得的“百花齐放”的景象。然而,繁华背后却隐藏着些许担忧。核心技术的缺失,阻碍了中国安防技术源动力的蓬勃发展,成为中国安防市场向高端科技领域进军的掣肘。那么,是谁在禁锢着安防技术?谁又在影响和改变着安防呢?毋庸置疑,芯片决定着安防技术的级别。 随着“平安城市”、“北京奥运”等重大项目的带动,中国视频监控市场呈现迅猛发展的态势,以年均40%的速度傲视整个安防市场。视频监控市场需求的不断增长,除了引起安防监控设备厂商的关注,同样也引起了视频监控核心器件——芯片生产商的广泛关注。作为安防产品的上游核心客户,芯片厂商“跺一跺脚”就会直接影响着安防设备生产商们的生死存亡。TI、NXP、ADI、Techwell等一大批国际半导体企业将目光投向中国安防市场,量身打造一些符合中国安防市场使用的芯片,对推动中国安防市场的蓬勃发展起到了一定积极的作用。另外,像中国台湾和中国大陆的一些芯片商也纷纷拿出“看家本领”,进一步推动了中国安防市场的发展。海思、中星微、升迈、映佳等纷纷涉足视频监控处理芯片领域。 芯片厂商发力视频监控市场 1999年,恩智浦PNX1300芯片在中国推广并得到应用之后,2003年,TI推出通用数字媒体处理器TMS320DM642,正式进军中国数字视频监控领域。2006年左右,海思作为全球率先推出H.264 SoC监控专用芯片的半导体公司,在綷-历了三年多的调研和研发之后,进入到大家的视野之中。几乎在同一时间,台湾升迈开始整合ARMcore,兼容FA526CPU 和MPEG4/MJPEGcodec及多项外围IP,为数字监控量身打造视频编解码芯片SoC。 基于国内蓬勃发展的监控形势,海思自2006年在全球推出首款针对安防应用的H.264 SoC开始,至今已綷-发展到了第三代SoC芯片,已成为国内领先的视频监控解决方案供应商。海思半导体有限公司成立于2004年10月,前身是建于1991年的华为集成电路设计中心。作为领先的本土芯片提供商,海思的产品线覆盖无线网络、固定网络、数字媒体等领域的芯片及解决方案,并成功应用于全球100多个国家和地区。 在中国芯片业发展的历史上,有这样一家公司为历史所铭记,它的名字叫“中星微电子有限公司”。这家承担了国家战略项目——“星光中国芯工程”的企业,致力于数字多媒体芯片的开发、设计和产业化。中星微电子从2006年开始投入IP视频监控系统的研发和设计,在网络摄像机专用芯片、终端以及运营级网络视频监控平台等方面持续投入,并取得了一系列的成果。目前,中星微依靠多媒体芯片、视频编解码、智能、网络产品开发的技术积累,提供多媒体处理芯片、高清网络摄像机、硬件视频智能分析终端、视频监控统一媒体平台四大视频监控组件,并在此基础上提供视频监控应用解决方案。 有专家指出,安防用的芯片具有几个显著特点:一是长时间不间断工作,二是多视频的

各种音视频编解码学习详解

各种音视频编解码学习详解 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间。尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析、应用开发、释放license收费等等。最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了。所以豆丁上看不出所以然,从wiki上查。中文的wiki信息量有限,很短,而wiki的英文内容内多,删减版也减肥得太过。我在网上还看到一个山寨的中文wiki,长得很像,红色的,叫―天下维客‖。wiki的中文还是很不错的,但是阅读后建议再阅读英文。 我对媒体codec做了一些整理和总结,资料来源于wiki,小部分来源于网络博客的收集。网友资料我们将给出来源。如果资料已经转手几趟就没办法,雁过留声,我们只能给出某个轨迹。 基本概念 编解码 编解码器(codec)指的是一个能够对一个信号或者一个数据流进行变换的设备或者程序。这里指的变换既包括将信号或者数据流进行编码(通常是为了传输、存储或者加密)或者提取得到一个编码流的操作,也包括为了观察或者处理从这个编码流中恢复适合观察或操作的形式的操作。编解码器经常用在视频会议和流媒体等应用中。 容器 很多多媒体数据流需要同时包含音频数据和视频数据,这时通常会加入一些用于音频和视频数据同步的元数据,例如字幕。这三种数据流可能会被不同的程序,进程或者硬件处理,但是当它们传输或者存储的时候,这三种数据通常是被封装在一起的。通常这种封装是通过视频文件格式来实现的,例如常见的*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or *.tta. 这些格式中有些只能使用某些编解码器,而更多可以以容器的方式使用各种编解码器。 FourCC全称Four-Character Codes,是由4个字符(4 bytes)组成,是一种独立标示视频数据流格式的四字节,在wav、avi档案之中会有一段FourCC来描述这个AVI档案,是利用何种codec来编码的。因此wav、avi大量存在等于―IDP3‖的FourCC。 视频是现在电脑中多媒体系统中的重要一环。为了适应储存视频的需要,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,以方便同时回放。视频档实际上都是一个容器里面包裹着不同的轨道,使用的容器的格式关系到视频档的可扩展性。 参数介绍 采样率 采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数叫作采样周期或采样时间,它是采样之间的时间间隔。注意不要将采样率与比特率(bit rate,亦称―位速率‖)相混淆。 采样定理表明采样频率必须大于被采样信号带宽的两倍,另外一种等同的说法是奈奎斯特频率必须大于被采样信号的带宽。如果信号的带宽是100Hz,那么为了避免混叠现象采样频率必须大于200Hz。换句话说就是采样频率必须至少是信号中最大频率分量频率的两倍,否则就不能从信号采样中恢复原始信号。 对于语音采样: ?8,000 Hz - 电话所用采样率, 对于人的说话已经足够 ?11,025 Hz ?22,050 Hz - 无线电广播所用采样率 ?32,000 Hz - miniDV 数码视频camcorder、DAT (LP mode)所用采样率 ?44,100 Hz - 音频CD, 也常用于MPEG-1 音频(VCD, SVCD, MP3)所用采样率

信息与编码理论课后习题答案

二章-信息量和熵习题解 2.1 莫尔斯电报系统中,若采用点长为0.2s ,1划长为0.4s ,且点和划出现的概率分别为2/3和1/3,试求它的信息速率(bits/s)。 解: 平均每个符号长为: 15 44.0312.032=?+?秒 每个符号的熵为9183.03log 3 123log 32=?+?比特/符号 所以,信息速率为444.34159183.0=?比特/秒 2.2 一个8元编码系统,其码长为3,每个码字的第一个符号都相同(用于同步),若每秒产生1000个码字,试求其信息速率(bits /s)。 解: 同步信号均相同不含信息,其余认为等概,每个码字的信息量为 3*2=6 比特; 所以,信息速率为600010006=?比特/秒 2.3 掷一对无偏的骰子,若告诉你得到的总的点数为:(a ) 7;(b ) 12。 试问各得到了多少信息量? 解: (a)一对骰子总点数为7的概率是 36 6 所以,得到的信息量为 585.2)36 6(log 2= 比特 (b) 一对骰子总点数为12的概率是36 1 所以,得到的信息量为 17.5361log 2= 比特 2.4 经过充分洗牌后的一付扑克(含52张牌),试问: (a) 任何一种特定排列所给出的信息量是多少? (b) 若从中抽取13张牌,所给出的点数都不相同时得到多少信息量? 解: (a)任一特定排列的概率为! 521, 所以,给出的信息量为 58.225!521log 2 =- 比特 (b) 从中任取13张牌,所给出的点数都不相同的概率为 1313 1313525213!44A C ?=

所以,得到的信息量为 21.134 log 1313522=C 比特. 2.5 设有一个非均匀骰子,若其任一面出现的概率与该面上的点数成正比,试求各点 出现时所给出的信息量,并求掷一次平均得到的信息量。 解:易证每次出现i 点的概率为 21i ,所以 比特比特 比特 比特 比特 比特 比特 398.221 log 21)(807.1)6(070.2)5(392.2)4(807.2)3(392.3)2(392.4)1(6,5,4,3,2,1,21 log )(2612=-==============-==∑=i i X H x I x I x I x I x I x I i i i x I i 2.6 园丁植树一行,若有3棵白杨、4棵白桦和5棵梧桐。设这12棵树可随机地排列, 且每一种排列都是等可能的。若告诉你没有两棵梧桐树相邻时,你得到了多少关 于树的排列的信息? 解: 可能有的排列总数为 27720! 5!4!3!12= 没有两棵梧桐树相邻的排列数可如下图求得, Y X Y X Y X Y X Y X Y X Y X Y 图中X 表示白杨或白桦,它有???? ??37种排法,Y 表示梧桐树可以栽种的位置,它有? ??? ??58种排法, 所以共有???? ??58*??? ? ??37=1960种排法保证没有两棵梧桐树相邻, 因此若告诉你没有两棵梧桐树相邻时,得到关于树排列的信息为1960log 27720log 22-=3.822 比特 2.7 某校入学考试中有1/4考生被录取,3/4考生未被录取。被录取的考生中有50%来 自本市,而落榜考生中有10%来自本市,所有本市的考生都学过英语,而外地落榜考生中以及被录取的外地考生中都有40%学过英语。 (a) 当己知考生来自本市时,给出多少关于考生是否被录取的信息?

视频压缩编解码标准综述

视频压缩编解码标准综述 摘要:本文从目前视频流传输中最为重要的编解码标准国际电联的H.261、H.263,运动静止图像专家组的M-JPEG,国际标准化组织运动图像专家组的MPEG系列标准,以及在互联网上被广泛应用的Real Video、WMT、 QuickTime等方面,详细地介绍了视频压缩编解码标准及其应用。 关键词:视频压缩编解码标准,H.261,H.263,M-JPEG,MPEG,MPEG-1,MPEG-2,MPEG-4,MPEG-7,MPEG-21,Real Video,WMT,QuickTime。 随着Internet带宽的不断增长,在Internet上传输视频的相关技术也成为Internet节研究和开发的热点。目前,许多实验性的高速宽带网络都把视频传输的技术和应用作为研究的重点课题。在Internet上传输视频有许多困难,其根本的原因在于Internet的无连接每包转发机制主要为突发性的数据传输设计,不适用于对连续媒体流的传输。为了在Internet上有效的、高质量的传输视频流,需要多种技术的支持,其中数字视频的压缩编码技术是Internet视频传输中的关键技术之一。此外,在多媒体的传输、处理、应用中还有许多问题:如何在网络上传输视频?如何通过手机上网并接收视频和图像?如何对多媒体 数据进行快速有效的检索?如何对多媒体信息进行统一的存取?等等。 目前视频流传输中最为重要的编解码标准有国际电联的H.261、H.263,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMT 以及Apple公司的QuickTime等。具体如下: 一、国际电联的H.261、H.263标准 1.H.261 H.261又称为P*64,其中P为64kb/s的取值范围,是1到30的可变参数,它最初是针对在ISDN上实现电信会议应用特别是面对面的可视电话和视频会议而设计的。实际的编码算法类似于MPEG算法,但不能与后者兼容。H.261在实时编码时比MPEG所占用的CPU运算量少得多,此算法为了优化带宽占用量,引进了在图像质量与运动幅度之间的平衡折中机制,也就是说,剧烈运动的图像比相对静止的图像质量要差。因此这种方法是属于恒定码流可变质量编码而非恒定质量可变码流编码。 2.H.263 H.263是国际电联ITU-T的一个标准草案,是为低码流通信而设计的。但实际上

编程实现算术编码算法

编程实现算术编码算法 中国地质大学计算机学院信息安全专业 信息论实验报告 实验三算术编码 一、实验内容 编程实现算术编码算法 二、实验环境 1.计算机 2.Windows 2000或以上 3.DEVC++ 三、实验目的 1.进一步熟悉算术编码算法; 2.掌握C语言编程(尤其是数值的进制转换,数值与字符串之间的转换等) 四、实验要求 1.提前预习实验,认真阅读实验原理。 2.认真高效的完成实验,实验过程中服从实验室管理人员以及实验指导老师的管理。 3.认真填写实验报告。 五、实验原理 算术编码是把一个信源表示为实轴上0和1之间的一个区间,信源集合中的每一个元素都用来缩短这个区间。

1.算法流程 (1)输入信源符号个数,信源概率分布,还有需要编码的符号序列,(2)根据概率可以算出初始编码间隔, High——当前编码的上限, Low——当前编码的下限, high——中间变量,用来计算下一个编码符号的当前间隔的上限,low——中间变量,用来计算下一个编码符号的当前间隔的下限,d——当前间隔之间的距离。 (3)扫描需编码的符号序列,确定编码空间 第1个编码符号的当前间隔为其初始的编码间隔, 第i个编码符号的当前间隔为第i-1个编码后的[Low,High),第i+1个编码符号的当前间隔算法如下:high=Low+d*第i+1个初始编码符号对应的上限,low=Low+d*第i+1个编码符号对应的下限,然后High=high,Low=low,d=d*第i 个编码符号的概率。 六、参考书 1.《信息论——基础理论及应用》傅祖芸,电子工业出版社 七、源代码 #include #include #include const double proc[]={0.10,0.10,0.10,0.1,0.1,0.1,0.1,0.1,0.15,0.05}; double result,areaBegin,areaEnd; int cord[1000],cordLength;

相关文档