音频压缩算法

音频压缩算法
音频压缩算法

第7章凌阳音频压缩算法261

第7章凌阳音频压缩算法

7.1背景介绍

7.1.1音频的概述(特点,分类)

我们所说的音频是指频率在20Hz~20kHz的声音信号,分为:波形声音,语音

和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础.语音也

可以表示为波形声音,但波形声音表示不出语言,语音学的内涵.语音是对讲话声音

的一次抽象.是语言的载体,是人类社会特有的一种信息系统,是社会交际工具的符

号.音乐与语音相比更规范一些,是符号化了的声音.但音乐不能对所有的声音进行

符号化.乐谱是符号化声音的符号组,表示比单个符号更复杂的声音信息内容. 7.1.2数字音频的采样和量化

将模拟的(连续的)声音波形数字元化(离散化),以便利数字计算机进行处理

的过程,主要包括采样和量化两个方面.

数字音频的质量取决于:采样频率和量化位数这两个重要参数.此外,声道的数目,相应的音频设备也是影响音频质量的原因.

7.1.3音频格式的介绍

音频文件通常分为两类:声音文件和MIDI文件

(1)声音文件:指的是通过声音录入设备录制的原始声音,直接记录了真实声音

的二进制采样数据,通常文件较大;

(2)MIDI文件:它是一种音乐演奏指令序列,相当于乐谱,可以利用声音输出设

备或与计算机相连的电子乐器进行演奏,由于不包含声音数据,其文件尺寸较小.

1)声音文件的格式

WAVE文件——*.WAV

WAVE文件使用三个参数来表示声音,它们是:采样位数,采样频率和声道数.

在计算机中采样位数一般有8位和16位两种,而采样频率一般有11025Hz(11KHz),

22050Hz(22KHz),44100Hz(44KHz)三种.我们以单声道为例,则一般WAVE文

件的比特率可达到88K~704Kbps.具体介绍如下:

(1)WAVE格式是Microsoft公司开发的一种声音文件格式,它符合RIFF(Resource InterchangeFileFormat)文件规范;

第7章凌阳音频压缩算法262

(2)用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持.

(3)WAVE格式支持MSADPCM,CCITTALaw,CCITTLaw和其它压缩算法,

支持多种音频位数,采样频率和声道,是PC机上最为流行的声音文件格式. (4)但其文件尺寸较大,多用于存储简短的声音片段.

AIFF文件——AIF/AIFF

(1)AIFF是音频交换文件格式(AudioInterchangeFileFormat)的英文缩写,是苹果计算机公司开发的一种声音文件格式;

(2)被Macintosh平台及其应用程序所支持,NetscapeNavigator浏览器中的LiveAudio也支持AIFF格式,SGI及其它专业音频软件包同样支持这种格式. (3)AIFF支持ACE2,ACE8,MAC3和MAC6压缩,支持16位44.1Kz立体声.

Audio文件——*.Audio

(1)Audio文件是SunMicrosystems公司推出的一种经过压缩的数字声音格式,是Internet中常用的声音文件格式;

(2)NetscapeNavigator浏览器中的LiveAudio也支持Audio格式的声音文件. MPEG文件——*.MP1/*.MP2/*.MP3

(1)MPEG是运动图像专家组(MovingPictureExpertsGroup)的英文缩写,代表MPEG标准中的音频部分,即MPEG音频层(MPEGAudioLayer);

(2)MPEG音频文件的压缩是一种有损压缩,根据压缩质量和编码复杂程度的不同可分为三层(MPEGAudioLayer1/2/3),分别对应MP1,MP2和MP3这三种声

音文件;

(3)MPEG音频编码具有很高的压缩率,MP1和MP2的压缩率分别为4:1和6:

1~8:1,而MP3的压缩率则高达10:1~12:1,也就是说一分钟CD音质的音

乐,未经压缩需要10MB存储空间,而经过MP3压缩编码后只有1MB左右,

同时其音质基本保持不失真,因此,目前使用最多的是MP3文件格式. RealAudio文件——*.RA/*.RM/*.RAM

(1)RealAudio文件是RealNerworks公司开发的一种新型流式音频(Streaming Audio)文件格式;

(2)它包含在RealMedia中,主要用于在低速的广域网上实时传输音频信息;

(3)网络连接速率不同,客户端所获得的声音质量也不尽相同:对于28.8Kbps的连

接,可以达到广播级的声音质量;如果拥有ISDN或更快的线路连接,则可获

得CD音质的声音.

2)MIDI文件——*.MID/*.RMI

(1)MIDI是乐器数字接口(MusicalInstrumentDigitalInterface)的英文缩写,是数

字音乐/电子合成乐器的统一国际标准;

(2)它定义了计算机音乐程序,合成器及其它电子设备交换音乐信号的方式,还规第7章凌阳音频压缩算法263

定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据传输的协议,可用于为不同乐器创建数字声音,可以模拟大提琴,小提琴,钢琴等常见

乐器;

(3)在MIDI文件中,只包含产生某种声音的指令,这些指令包括使用什么MIDI 设备的音色,声音的强弱,声音持续多长时间等,计算机将这些指令发送给声

卡,声卡按照指令将声音合成出来,MIDI在重放时可以有不同的效果,这取

决于音乐合成器的质量;

(4)相对于保存真实采样资料的声音文件,MIDI文件显得更加紧凑,其文件尺寸通常比声音文件小得多.

7.1.4语音压缩编码基础

语音压缩编码中的数据量是指:数据量=(采样频率×量化位数)/8(字节数)×声道

数目.

压缩编码的目的:通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息.

压缩编码的必要性:实际应用中,未经压缩编码的音频资料量很大,进行传输或存储是不现实的.所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,

这样就可以使我们用较少的资源建立更多的信息.

举个例子,没有压缩过的CD品质的资料,一分钟的内容需要11MB的内存容量

来存储.如果将原始资料进行压缩处理,在确保声音品质不失真的前提下,将数据压

缩一半,5.5MB就可以完全还原效果.而在实际操作中,可以依需要来选择合适的算

法.

常见的几种音频压缩编码:

1)波形编码:将时间域信号直接变换为数字代码,力图使重建语音波形保持原语音信号的波形形状.波形编码的基本原理是在时间轴上对模拟语音按一定的速率抽样,然后将幅度样本分层量化,并用代码表示.译码是其反过程,将收到

的数字序列经过译码和滤波恢复成模拟信号.

如:脉冲编码调制(PulseCodeModulation,PCM),差分脉冲编码调制(DPCM),

增量调制(DM)以及它们的各种改进型,如自适应差分脉冲编码调制(ADPCM),自适应增量调制(ADM),自适应传输编码(AdaptiveTransferCoding,ATC)和子带

编码(SBC)等都属于波形编码技术.

波形编码特点:高话音质量,高码率,适于高保真音乐及语音.

2)参数编码:参数编码又称为声源编码,是将信源信号在频率域或其它正交变换域提取特征参数,并将其变换成数字代码进行传输.译码为其反过程,将收到

的数字序列经变换恢复特征参量,再根据特征参量重建语音信号.具体说,参

数编码是通过对语音信号特征参数的提取和编码,力图使重建语音信号具有尽可能高的准确性,但重建信号的波形同原语音信号的波形可能会有相当大的差别.

第7章凌阳音频压缩算法264

如:线性预测编码(LPC)及其它各种改进型都属于参数编码.该编码比特率可

压缩到2Kbit/s-4.8Kbit/s,甚至更低,但语音质量只能达到中等,特别是自然度较低.

参数编码特点:压缩比大,计算量大,音质不高,廉价!

3)混合编码:混合编码使用参数编码技术和波形编码技术,计算机的发展为语音编码技术的研究提供了强有力的工具,大规模,超大规模集成电路的出现,则

为语音编码的实现提供了基础.80年代以来,语音编码技术有了实质性的进

展,产生了新一代的编码算法,这就是混合编码.它将波形编码和参数编码组

合起来,克服了原有波形编码和参数编码的弱点,结合各自的长处,力图保持

波形编码的高质量和参数编码的低速率.

如:多脉冲激励线性预测编码(MPLPC),规划脉冲激励线性预测编码(KPELPC), 码本激励线性预测编码(CELP)等都是属于混合编码技术.其数据率和音质介于参数

和波形编码之间.

总之,音频压缩技术之趋势有两个:

1)降低资料率,提高压缩比,用于廉价,低保真场合(如:电话).

2)追求高保真度,复杂的压缩技术(如:CD).语音合成,辨识技术的介绍:

按照实现的功能来分,语音合成可分两个档次:

(1)有限词汇的计算机语音输出

(2)基于语音合成技术的文字语音转换(TTS:Text-to-Speech)

按照人类语言功能的不同层次,语音合成可分为三个层次:

(1)从文字到语音的合成(Text-to-Speech)

(2)从概念到语音的合成(Concept-to-Speech)

(3)从意向到语音的合成(Intention-to-Speech)

图7.1是文本到语音的转换过程:

文本处理语音合成韵律处理

语音数据库词典及语言规范

合成语音输出文本输入

图7.1从文本到语音转换过程示意

语音辨识:

语音辨识技术有三大研究范围:口音独立,连续语音及可辨认字词数量.

口音独立:

1)早期只能辨认特定的使用者即特定语者(SpeakerDependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),作简单快速的训

第7章凌阳音频压缩算法265

练纪录使用者的声音特性来加以辨认.随着技术的成熟,进入语音适应阶段SA(speaker

adaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有

不错的辨识率.

2)非特定语者模式(SpeakerIndependent,SI),使用者无需训练即可使用,并进行辨认.任何人皆可随时使用此技术,不限定语者即男性,女性,小孩,老人皆可. 连续语音:

1)单字音辨认:为了确保每个字音可以正确地切割出来,必须一个字一个字分开来念,非常不自然,与我们平常说话的连续方式,还是有点不同.

2)整个句子辨识:只要按照你正常说话的速度,直接将要表达的说出来,中间并不需要停顿,这种方式是最直接最自然的,难度也最高,现阶段连续语音的辨识率及

正确率,虽然效果还不错但仍需再提高.然而,中文字有太多的同音字,因此目前所

有的中文语音辨识系统,几乎都是以词为依据,来判断正确的同音字.

可辨认词汇数量:

内建的词汇数据库的多寡,也直接影响其辨识能力.因此就语音辨识的词汇数量来说亦可分为三种:

1)小词汇量(10-100)

2)中词汇量(100-1000)

3)无限词汇量(即听写机)

图7.2是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别

模块.

复杂声

学,言

语条件

下的语

音输入

语音模型声学模式训练

语音匹配

语音模式训练

语音处理

识别结果,理

解结果

语言模型

图7.2语音识别原理简图

第7章凌阳音频压缩算法266

7.2凌阳音频简介

7.2.1凌阳音频压缩算法的编码标准

表7.1是不同音频质量等级的编码技术标准(频响):

表7.1

信号类型频率范围(Hz)采样率(kHz)量化精度(位)

电话话音200~340088

宽带音频

(AM质量)

50~70001616

调频广播

(FM质量)

20~15k37.816

高质量音频

(CD质量)

20~20k44.116

凌阳音频压缩算法处理的语音信号的范围是200Hz-3.4KHz的电话话音.

7.2.2压缩分类

压缩分无损压缩和有损压缩.

无损压缩一般指:磁盘文件,压缩比低:2:1~4:1.

而有损压缩则是指:音/视频文件,压缩比可高达100:1.

凌阳音频压缩算法根据不同的压缩比分为以下几种(具体可参见语音压缩工具一节内容):

SACM-A2000:压缩比为8:1,8:1.25,8:1.5

SACM-S480:压缩比为80:3,80:4.5

SACM-S240:压缩比为80:1.5

按音质排序:A2000>S480>S240

7.2.3凌阳常用的音频形式和压缩算法

1)波形编码:sub-band即SACM-A2000

特点:高质量,高码率,适于高保真语音/音乐.

2)参数编码:声码器(vocoder)模型表达,抽取参数与激励信号进行编码.如: SACM-S240.

特点:压缩比大,计算量大,音质不高,廉价!

3)混合编码:CELP即SACM-S480

特点:综合参数和波形编码之优点.

除此之外,还具有FM音乐合成方式即SACM-MS01.

第7章凌阳音频压缩算法267

7.2.4分别介绍凌阳语音的播放,录制,合成和辨识

凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最

高时钟频率可达到49MHz,具备运算速度高的优势等等,这些都无疑为语音的播放,

录放,合成及辨识提供了条件.

凌阳压缩算法中SACM_A2000,SACM_S480,SACM_S240主要是用来放音,可

用于语音提示,而DVR则用来录放音.对于音乐合成MS01,该算法较繁琐,而且需要具备音乐理论,配器法及和声学知识,所以对于特别爱好者可以到我们的网站去了

解相关内容,这里只给出它的API函数介绍及程序代码的范例,仅供参考.

对于语音辨识主要有以下两种:

1)特定发音人识别SD(SpeakerDependent):是指语音样板由单个人训练,

也只能识别训练人的语音命令,而他人的命令识别率较低或几乎不能识别.

2)非特定发音人识别SI(SpeakerIndependent):是指语音样板由不同年龄,

不同性别,不同口音的人进行训练,可以识别一群人的命令.

语音识别电路基本结构如图7.3所示:

滤除噪音

预加重

滤波器组

PARCOR系数

线性预测系数

过零次数

能量

相关函数等

模式匹配

词典

语音分析

语音

识别

结果

输出

图7.3语音识别电路结构

具体应用及程序代码可参考7.3.4

7.3常用的应用程序接口API的功能介绍及应用

7.3.1概述

表7.2所列出的是凌阳音频的几种算法:

表7.2SACM-lib库中模块及其算法类型

模块名称(Model-Index)语音压缩编码率类型资料采样率

SACM_A200016Kbit/s,20Kbit/s,24Kbit/s16KHz

SACM_S480/S7204.8Kbit/s,7.2Kbit/s16KHz

第7章凌阳音频压缩算法268

SACM_S2402.4Kbit/s24KHz

SACM_MS01音乐合成(16Kbits/s,20Kbits/s,24Kbits/s)16KHz

SACM_DVR(A2000)16Kbit/s的资料率,8K的采样率,用于ADC通道录音功能16KHz 语音和音乐与我们的生活有着非常密切的关系,而单片机对语音的控制如录放音,合成及辨识也广泛应用在现实生活中.我们知道对于语音处理大致可以分为A/D,编

码处理,存储,解码处理以及D/A等见图7.4所示.然而,通过前面介绍我们知道麦克风输入所生成的WAVE文件,其占用的存储空间很大,对于单片机来说想要存储大

量的信息显然是不可能的,而凌阳的SPCE061A提出了解决的方法,即SACM-LIB, 该库将A/D,编码,解码,存储及D/A作成相应的模块,对于每个模块都有其应用程序接口API,所以您只需了解每个模块所要实现的功能及其参数的内容,然后调用该

API函数即可实现该功能,例如在程序中插入语音提示,或连续播放一段语音或音乐,

也可以根据自己需要的空间或使用范围选择适合自己的算法如表7.2所示.

麦克风A/D转换

存储

喇叭编解码处理D/A转换

图7.4单片机对语音处理过程

以下就不同的算法具体介绍各自的API函数的格式,功能,参数,返回值,备注

及应用范例.

7.3.2SACM_A2000

该压缩算法压缩比较小(8:1)所以具有高质量,高码率的特点适用于高保真音乐和

语音.

其相关API函数如下所示:

voidSACM_A2000_Initial(intInit_Index)//初始化

voidSACM_A2000_ServiceLoop(void)//获取语音资料,填入译码队列

voidSACM_A2000_Play(intSpeech_Index,intChannel,intRamp_Set)//播放voidSACM_A2000_Stop(void)//停止播放

voidSACM_A2000_Pause(void)//暂停播放

voidSACM_A2000_Resume(void)//暂停后恢复

voidSACM_A2000_Volume(Volume_Index)//音量控制

unsignedintSACM_A2000_Status(void)//获取模块状态

第7章凌阳音频压缩算法269

voidSACM_A2000_InitDecode(intChannel)//译码初始化

voidSACM_A2000_Decode(void)//译码

voidSACM_A2000_FillQueue(unsignedintencoded-data)//填充队列

unsignedintSACM_A2000_TestQueue(void)//测试队列

CallF_FIQ_Service_SACM_A2000//中断服务函数

下面对各个函数进行具体介绍:

1)【API格式】C:voidSACM_A2000_Initial(intInit_Index)

ASM:R1=[Init_Index]

CallF_SACM_A2000_Initial

【功能说明】SACM_A2000语音播放之前的初始化.

【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.

【返回值】无

【备注】该函数用于对定时器,中断和DAC等的初始化.

2)【API格式】C:voidSACM_A2000_ServiceLoop(void)

ASM:CallF_SACM_A2000_ServiceLoop

【功能说明】从资源中获取SACM_A2000语音资料,并将其填入译码队列中. 【参数】无.

【返回值】无.

3)【API格式】

C:voidSACM_A2000_Play(intSpeech_Index,intChannel,int

Ramp_Set);

ASM:R1=[Speech_Index]

R2=[Channel]

R3=[Ramp_Set]

CallSACM_A2000_Play

【功能说明】播放资源中SACM_A2000语音或乐曲.

【参数】Speech_Index:表示语音索引号.

Channel:1.通过DAC1通道播放;

2.通过DAC2通道播放;

3.通过DAC1和DAC2双通道播放.

Ramp_Set:0.禁止音量增/减调节;

1.仅允许音量增调节;

2.仅允许音量减调节;

3.允许音量增/减调节.

【返回值】无.

【备注】

①SACM_A2000的数据率有16Kbps\20Kbps\24Kbps三种,可在同一模块的几种算法中自动选择一种.

第7章凌阳音频压缩算法270

②Speech_Index是定义在resource.inc文件中资源表(T_

SACM_A2000_SpeechTable)的偏移地址.

③中断服务子程序F_FIQ_Service_SACM_A2000必须安置在TMA_FIQ中断向量上(参见第五章中断系统内容).

函数允许TimerA以所选的的数据采样率(计数溢出)中断.

程序7-1以自动方式播放一段SACM_A2000语音,并自动结束.(见光盘) SACM_A2000自动方式主程序流程图:

SACM_A2000放音

SACM_A2000压缩播放

获取语音数据并解

码等待中断播放

图7.5A2000自动方式主程序流程

前台程序:

#defineSpeech_10

#defineDAC11

#defineDAC22

#defineRamp_UpDn_Off0

#defineRamp_Up_On1

#defineRamp_Dn_On2

#defineRamp_UpDn_On3

Main()

{

SACM_A2000_Initial(1);

SACM_A2000_Play(Speech_1,DAC1+DAC2,Ramp_UpDn_On);//放音while(SACM_A2000_Status()&0x01)

{

SACM_A2000_ServiceLoop();

}

}

背景程序:

.TEXT

第7章凌阳音频压缩算法271

.INCLUDEhardware.inc

.INCLUDEA2000.inc

.INCLUDEResource.inc

//======================================================== //函数:FIQ()

//语法:voidFIQ(void)

//描述:FIQ中服务断函数

//参数:无

//返回:无

//======================================================== .PUBLIC_FIQ;

_FIQ:

PUSHR1,R4TO[sp];//入栈保护

R1=0x2000;

TESTR1,[P_INT_Ctrl];//是否为定时器A中断

JNZL_FIQ_TimerA;

R1=0x0800;

TESTR1,[P_INT_Ctrl];//是否为定时器B中断

JNZL_FIQ_TimerB;

R1=C_FIQ_PWM;

[P_INT_Clear]=R1;//清中断

POPR1,R4from[sp];//恢复现场

RETI;

L_FIQ_TimerA://定时器A中断处理

[P_INT_Clear]=R1;//清中断

CALLF_FIQ_Service_SACM_A2000;//调用A2000中断服务函数

POPR1,R4FROM[sp];//恢复现场

RETI;

L_FIQ_TimerB://定时器B中断处理

[P_INT_Clear]=R1;//清中断

POPR1,R4FROM[sp];//恢复现场

RETI;//中断返回

/******************************************************************** ********/

注:播放语音文件中数据,当出现FFFFFFH数据时便停止播放.

4)【API格式】C:voidSACM_A2000_Stop(void);

ASM:CallF_SACM_A2000_Stop

【功能说明】停止播放SACM_A2000语音或乐曲.

【参数】无.

【返回值】无.

5)【API格式】C:voidSACM_A2000_Pause(void);

ASM:CallF_SACM_A2000_Pause

【功能说明】暂停播放SACM_A2000语音或乐曲.

第7章凌阳音频压缩算法272

【参数】无.

【返回值】无.

6)【API格式】C:voidSACM_A2000_Resume(void);

ASM:CallF_SACM_A2000_Resume

【功能说明】恢复暂停播放的SACM_A2000语音或乐曲.

【参数】无.

【返回值】无.

7)【API格式】C:voidSACM_A2000_Volume(Volume_Index);

ASM:R1=[Volume_Index]

CallF_SACM_A2000_Volume

【功能说明】在播放SACM_A2000语音或乐曲时改变主音量.

【参数】Volume_Index为音量数,音量从最小到最大可在0~15之间选择.

【返回值】无.

8)【API格式】C:unsignedintSACM_A2000_Status(void);

ASM:CallF_SACM_A2000_Status

[返回值]=R1

【功能说明】获取SACM_A2000语音播放的状态.

【参数】无.

【返回值】当R1的bit0=0,表示语音播放结束;bit0=1,表示语音在播放中. 9)【API格式】ASM:CallF_FIQ_Service_SACM_A2000

【功能说明】用作SACM_A2000语音背景程序的中断服务子程序.通过前台子程序(自动方式的SACM_A2000_ServiceLoop及手动方式的SACM_A2000_Decode) 对语音资料进行解码,然后将其送入DAC通道播放.

【参数】无.

【返回值】无.

【备注】SACM_A2000语音背景子程序只有汇编指令形式,且应将此子程序

安置在TMA_FIQ中断源上.

10)【API格式】C:voidSACM_A2000_InitDecode(intChannel);

ASM:CallF_SACM_A2000_Decode

【功能说明】开始对SACM_A2000语音资料以非自动方式(编程控制)进行译码. 【参数】Channel=1,2,3;分别表示使用DAC1,DAC2通道以及DAC1和

DAC2双通道.

【返回值】无.

【备注】用户只能通过非自动方式对语音资料解压缩.

11)【API格式】C:voidSACM_A2000_Decode(void);

ASM:CallF_SACM_A2000_Decode

第7章凌阳音频压缩算法273

【功能说明】从语音队列里获取的SACM_A2000语音资料,并进行译码,然后通过中断服务子程序将其送入DAC通道播放.

【参数】无.

【返回值】无.

【备注】用户仅能通过非自动方式对语音资料进行译码.

12)【API格式】C:voidSACM_A2000_FillQueue(unsignedintencoded-data); ASM:R1=[语音编码资料]

CallF_SACM_A2000_FillQueue

【功能说明】将从用户存储区里获取SACM_A2000语音编码资料,然后将其填

入语音队列中等候译码处理.

【参数】encoded-data为语音编码资料.

【返回值】无.

【备注】用户仅能通过非自动方式对语音资料进行译码.

13)【API格式】C:unsignedintSACM_A2000_TestQueue(void);

ASM:CallF_SACM_A2000_TestQueue

[返回值]=R1

【功能说明】获取语音队列的状态.

【参数】无.

【返回值】R1=0,1,2;分别表示语音队列不空不满,语音队列满及语音队列

空.

【备注】用户仅能通过非自动方式测试语音队列状态.

程序7-2SACM_A2000非自动方式(编程控制)播放语音.(见光盘)

SACM_A2000非自动方式主程序流程见图7.6:

第7章凌阳音频压缩算法274

A2000播放初始化

获取语音资源

并填充语音队列

解码获取数据并播放

判断语音队列

是否满

判断是否到

语音的结束地址放音结束

结束

开始

图7.6SACM_A2000非自动方式主程序流程

中断服务子程序流程见图7.7:

FIQ是TimerA中断吗

填充语音队列

清中断状态

中断返回

寄存器组出

开始

图7.7SACM_A2000中断服务子程序流程

前台程序:

第7章凌阳音频压缩算法275

#defineManual0

#defineAuto1

#defineFull1

#defineEmpty2

#defineDAC11

#defineDAC22

Main()

{

Addr=RES_A32_SA;//长整型资源地址

SACM_A2000_Initial(Manual);//选择非自动方式

SACM_A2000_InitDecode(DAC1+DAC2);//使用双通道

While(SACM_A2000_TestQueue()!=Full)//若队列不满,填入资料{

Ret=GetResource(Addr);//从ROM中取语音资料

SACM_A2000_FillQueue(Ret);//将语音资料填入队列

Addr++;//指向下一个资料地址

}

While(1)

{

If(SACM_A2000_TestQueue()!=Full)//继续填资料到队列中

{

Ret=GetResource(Addr);

SACM_A2000_FillQueue(Ret);

Addr++;

}

if(Addr

SACM_A2000_Decode();//对语音资料进行译码

elseSACM_A2000_Stop();//地址结束,停止播放

}

}

注:

1)文件的结束是由用户位址变量控制的.

2)在非自动方式播放语音,其音量的增/减是通过外部子程序

(SP_Ramp_Up,SP_Ramp_Dn)控制的.

7.3.3SACM_S480

该压缩算法压缩比较大80:3,存储容量大,音质介于A2000和S240之间,适用于语

音播放,如"文曲星"词库.

其相关API函数如下所示:

intSACM_S480_Initial(intInit_Index)//初始化

voidSACM_S480_ServiceLoop(void)//获取语音资料,填入译码队列

voidSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set)

第7章凌阳音频压缩算法276

//播放

voidSACM_S480_Stop(void)//停止播放

voidSACM_S480_Pause(void)//暂停播放

voidSACM_S480_Resume(void)//暂停后恢复

voidSACM_S480_Volume(Volume_Index)//音量的控制

unsignedintSACM_S480_Status(void)//获取模块的状态

CallF_FIQ_Service_SACM_S480//中断服务函数

各函数具体内容如下:

1)【API格式】C:intSACM_S480_Initial(intInit_Index)

ASM:R1=[Init_Index]

CallF_SACM_S480_Initial

【功能说明】SACM_S480语音播放之前的初始化.

【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.

【返回值】0:代表语音模块初始化失败

1:代表初始化成功.

【备注】该函数用于对定时器,中断和DAC等的初始化.

2)【API格式】C:voidSACM_S480_ServiceLoop(void)

ASM:CallF_SACM_S480_ServiceLoop

【功能说明】从资源中获取SACM_S480语音资料,并将其填入解码队列中.

【参数】无.

【返回值】无.

【备注】播放语音文件中数据,当出现FFFFFFH数据时便停止播放.

3)【API格式】

C:intSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set);

ASM:R1=[Speech_Index]

R2=[Channel]

R3=[Ramp_Set]

CallSACM_S480_Play

【功能说明】播放资源中SACM_S480语音.

【参数】Speech_Index表示语音索引号.

Channel:1.通过DAC1通道播放;

2.通过DAC2通道播放;

3.通过DAC1和DAC2双通道播放.

Ramp_Set:0.禁止音量增/减调节;

1.仅允许音量增调节;

2.仅允许音量减调节;

3.允许音量增/减调节.

【返回值】无.

第7章凌阳音频压缩算法277

【备注】

①SACM_S480的数据率有4.8Kbps\7.2Kbps三种,可在同一模块的几种算法中自动选择一种.

②Speech_Index是定义在resource.inc文件中资源表(T_SACM_S480_SpeechTable)

的偏移地址.

③中断服务子程序中F_FIQ_Service_SACM_S480必须放在TMA_FIQ中断向量

上(参见SPCE的中断系统).

④函数允许TimerA以所选的的数据采样率(计数溢出)中断.

程序7-3以自动方式播放一段SACM_S480语音,并自动结束.(见光盘)

SACM_S480自动方式主程序流程见图7.8:

SACM_S480放音的初

始化

SACM_S480压缩播放

获取语音数据并解码

等待中断播放

图7.8SACM_S480自动方式主程序流程

中断流程同上.

前台程序:

//******************************************************************* ************************/

//描述:s480只有自动播放方式,在中断FIQ的FIQ_TMA中断源中通过

//主程序的SACM_S480_ServiceLoop()对语音数据进行解码,然后将其

//送入DAC通道播放

//******************************************************************* ************************/

#include"s480.h"

#defineSpeech_10

#defineDAC11

#defineDAC22

#defineRamp_UpDn_Off0

#defineRamp_UpDn_On3

#defineAuto1

//=================================================================== ==

//函数:main()

第7章凌阳音频压缩算法278

//=================================================================== ==

main()

{

SACM_S480_Initial(1);//自动方式播放初始化

SACM_S480_Play(Speech_1,DAC1+DAC2,Ramp_UpDn_On);

//定义语音索引号,播放通道,允许音量增/减调节

while(SACM_S480_Status()&0x01)//是否播放结束

SACM_S480_ServiceLoop();//获取语音数据并将其填入解码队列

}

背景程序:

.TEXT

.INCLUDEhardware.inc

.INCLUDES480.inc

.PUBLIC_FIQ;

_FIQ:

PUSHR1,R4TO[sp];//入栈保护

R1=0x2000;

TESTR1,[P_INT_Ctrl];//是否为定时器A中断

JNZL_FIQ_TimerA;

R1=0x0800;

TESTR1,[P_INT_Ctrl];//是否为定时器B中断

JNZL_FIQ_TimerB;

L_FIQ_PWM:

R1=C_FIQ_PWM;

[P_INT_Clear]=R1;//清中断

POPR1,R4from[SP];//恢复现场

RETI;

L_FIQ_TimerA://定时器A中断处理

[P_INT_Clear]=R1;//清中断

CALLF_FIQ_Service_SACM_S480;//调用S480中断服务函数

POPR1,R4FROM[SP];//恢复现场

RETI;

L_FIQ_TimerB://定时器B中断处理

[P_INT_Clear]=R1;//清中断

POPR1,R4FROM[SP];//恢复现场

RETI;//中断返回

注:自动放音时,当语音资源文件中的资料为FFFFFFH时便停止播放.

4)【API格式】C:voidSACM_S480_Stop(void);

ASM:CallF_SACM_S480_Stop

【功能说明】停止播放SACM_S480语音.

【参数】无.

【返回值】无.

第7章凌阳音频压缩算法279

5)【API格式】C:voidSACM_S480_Pause(void);

ASM:CallF_SACM_S480_Pause

【功能说明】暂停播放SACM_S480语音.

【参数】无.

【返回值】无.

6)【API格式】C:voidSACM_S480_Resume(void);

ASM:CallF_SACM_S480_Resume

【功能说明】恢复暂停播放的SACM_S480语音.

【参数】无.

【返回值】无.

7)【API格式】C:voidSACM_S480_Volume(Volume_Index);

ASM:R1=[Volume_Index]

CallF_Model-Index_Volume

【功能说明】在播放SACM_S480语音时改变主音量.

【参数】Volume_Index为音量数,音量从最小到最大可在0~15之间选择. 【返回值】无.

8)【API格式】C:unsignedintSACM_S480_Status(void);

ASM:CallF_SACM_S480_Status

[返回值]=R1

【功能说明】获取SACM_S480语音播放的状态.

【参数】无.

【返回值】当R1的值bit0=0,表示语音播放结束;bit0=1,表示语音在播放中.

9)【API格式】ASM:CallF_FIQ_Service_SACM_S480

【功能说明】用作SACM_S480语音背景程序的中断服务子程序.通过前台子程序(自动方式的SACM_S480_ServiceLoop及手动方式的

SACM_S480_Decode)对语音资料进行解码,然后将其送入DAC通道

播放.

【参数】无.

【返回值】无.

【备注】SACM_S480语音背景子程序只有汇编指令形式,且应将此子程序

安置在TMA_FIQ中断源上.

7.3.4SACM_S240

该压缩算法的压缩比较大80:1.5,价格低,适用于对保真度要求不高的场合,如玩具

类产品的批量生产,编码率仅为2.4Kbps.

其相关API函数如下所示:

intSACM_S240_Initial(intInit_Index)//初始化

voidSACM_S240_ServiceLoop(void)//获取语音资料,填入译码队列

voidSACM_S240_Play(intSpeech_Index,intChannel,intRamp_Set)

第7章凌阳音频压缩算法280

//播放

voidSACM_S240_Stop(void)//停止播放

voidSACM_S240_Pause(void)//暂停播放

voidSACM_S240_Resume(void)//暂停后恢复

voidSACM_S240_Volume(Volume_Index)//音量控制

unsignedintSACM_S240_Status(void)//获取模块状态

CallF_FIQ_Service_SACM_S240//中断服务函数

下面具体介绍一下各个函数:

1)【API格式】C:intSACM_S240_Initial(intInit_Index)

ASM:R1=[Init_Index]

CallF_SACM_S240_Initial

【功能说明】SACM_S240语音播放之前的初始化.

【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.

【返回值】0:代表语音模块初始化失败

1:代表初始化成功.

【备注】函数用于S240语音译码的初始化以及相关设备的初始化.

2)【API格式】C:voidSACM_S240_ServiceLoop(void)

ASM:CallF_SACM_S240_ServiceLoop

【功能说明】从资源中获取SACM_S240语音资料,并将其填入解码队列中. 【参数】无.

【返回值】无.

3)【API格式】

C:intSACM_S240_Play(intSpeech_Index,intChannel,intRamp_Set);

ASM:R1=[Speech_Index]

R2=[Channel]

R3=[Ramp_Set]

CallSACM_S240_Play

【功能说明】播放资源中SACM_S240语音.

【参数】Speech_Index表示语音索引号.

Channel:1.通过DAC1通道播放;

2.通过DAC2通道播放;

3.通过DAC1和DAC2双通道播放.

Ramp_Set:0.禁止音量增/减调节;

1.仅允许音量增调节;

2仅允许音量减调节;

3.允许音量增/减调节.

【返回值】无.

【备注】

①SACM_S240的数据率为2.4Kbps,

第7章凌阳音频压缩算法281

②Speech_Index是定义在resource.inc文件中资源表(T_SACM_S240_SpeechTable)

的偏移地址

③中断服务子程序F_FIQ_Service_SACM_S240必须安置在TMA_FIQ中断向量

上(参见第五章中断系统内容).

④函数允许TimerA以所选的的数据采样率(计数溢出)中断.

程序7-4以自动方式播放一段SACM_S240语音,并自动结束.(见光盘)

SACM_S240在自动方式下的主程序流程见图7.9:

S240放音的初始化

SACM_S240压缩播放

播放下一段语音

获取语音数据并解码

等待中断播放

判断语

音是否播放完毕是否为

"1"

图7.9SACM_S240在自动方式下的主程序流程

//******************************************************************* ************************/

//名称:S240

//描述:s240只有自动播放方式,在中断FIQ的FIQ_TMA中断源中通过

//主程序的SACM_S240_ServiceLoop()对语音数据进行解码,然后将其

//送入DAC通道播放

//日期:2002/12/6

//******************************************************************* ************************/

#include"hardware.h"

#include"s240.h"

#defineDAC11

#defineDAC22

#defineRamp_UpDn_Off0

#defineRamp_Up_On1

第7章凌阳音频压缩算法282

#defineRamp_Dn_On2

#defineRamp_UpDn_On3

#defineMaxSpeechNum3//播放语音的最大个数

#defineAuto1

//=================================================================== =====

//函数:main()

//=================================================================== =====

main()

{

intSpeechIndex=0;//选择第一首语音

while(1)

{

SACM_S240_Initial(Auto);//自动方式播放初始化

SACM_S240_Play(SpeechIndex,DAC1+DAC2,Ramp_UpDn_On);//播放第一首

while(SACM_S240_Status()&0x01)//判断第一首是否播完

SACM_S240_ServiceLoop();//获取语音数据并将其填入解码队列SpeechIndex++;

if(SpeechIndex==3)//修改播放语音序号

SpeechIndex=0;

}

}

//=================================================================== =====

//函数:FIQ()

//=================================================================== =====

.TEXT

.INCLUDEhardware.inc

.INCLUDES240.inc

.INCLUDEResource.inc

.EXTERNALF_FIQ_Service_SACM_S240;

.PUBLIC_FIQ;

_FIQ:

PUSHR1,R4TO[SP];//入栈保护

R1=0x2000;

TESTR1,[P_INT_Ctrl];//是否为定时器A中断

JNZL_FIQ_TimerA;

R1=0x0800;

TESTR1,[P_INT_Ctrl];//是否为定时器B中断

JNZL_FIQ_TimerB;

L_FIQ_PWM:

R1=C_FIQ_PWM;

[P_INT_Clear]=R1;//清中断

POPR1,R4FROM[sp];//恢复现场

第7章凌阳音频压缩算法283

RETI;//中断返回

L_FIQ_TimerA://定时器A中断处理

[P_INT_Clear]=R1;//清中断

CALLF_FIQ_Service_SACM_S240;//调用S240中断服务函数

POPR1,R4FROM[sp];//恢复现场

RETI;//中断返回

L_FIQ_TimerB://定时器B中断处理

[P_INT_Clear]=R1;//清中断

POPR1,R4FROM[sp];//恢复现场

RETI;//中断返回

注:自动放音时,当语音资源文件中的资料为FFFFFFH时便停止播放.

4)【API格式】C:voidSACM_S240_Stop(void);

ASM:CallF_SACM_S240_Stop【功能说明】停止播放SACM_S240语音.

【参数】无.

【返回值】无.

5)【API格式】C:voidSACM_S240_Pause(void);

ASM:CallF_SACM_S240_Pause

【功能说明】暂停播放SACM_S240语音.

【参数】无.

【返回值】无.

6)【API格式】C:voidSACM_S240_Resume(void);

ASM:CallF_SACM_S240_Resume

【功能说明】恢复暂停播放的SACM_S240语音的播放.

【参数】无.

【返回值】无.

7)【API格式】C:voidSACM_S240_Volume(Volume_Index);

ASM:R1=[Volume_Index]

CallFSACM_S240_Volume

【功能说明】在播放SACM_S240语音时改变主音量.

【参数】Volume_Index为音量数,音量从最小到最大可在0~15之间选择. 【返回值】无.

8)【API格式】C:unsignedintSACM_S240_Status(void);

ASM:CallF_SACM_S240_Status

[返回值]=R1

【功能说明】获取SACM_S240语音播放的状态.

第7章凌阳音频压缩算法284

【参数】无.【返回值】当R1中bit0=0,表示语音播放结束;bit0=1,表

示语音在播放中.

9)【API格式】ASM:CallF_FIQ_Service_SACM_S240

【功能说明】用作SACM_S240语音背景程序的中断服务子程序.通过前台子程序(自动方式的SACM_S240_ServiceLoop及手动方式的

Model-Index_Decode)对语音资料进行译码,然后将其送入DAC通道

播放.

【参数】无.

矢量数据主要压缩方法及比较

矢量数据主要压缩方法及比较 张旭 测绘工程 211305020021 摘要:矢量数据主要是指城市大比例尺地形图。此系统中图层主要分为底图层、道路层、单位层,合理的分层便于进行叠加分析、图形的 阐述矢量数据压缩的概念,详细的对常见的矢量空间数据压缩方法了介绍与评价,并对一些改进方法做了介绍,希望通过本文的总结,大家能够更好地了解矢量数据及其压缩方法。 关键词:矢量数据,压缩方法 引言:矢量数据结构中,传统的方法是几何图形及其关系用文件方式组织,而属性数据通常采用关系型表文件记录,两者通过实体标识符连接。由于这一特点使得在某些方面有便利和独到之处,例如在计算长度、面积、形状和图形编辑、几何变换操作中,有很高的效率和精度。

矢量空间数据压缩 GIS中的矢量数据可分为点状图形要素、线状图形要素、面状图形要素。但从压缩的角度来看,矢量数据的压缩主要是线状图形要素的压缩,因为点状图形要素可看成是特殊的线状图形要素,面状图形要素的基础也是线状图形要素,需要由一条或多条线状图形要素围成。因此,线状图形要素的压缩就成为矢量数据压缩中最重要的问题。 矢量数据压缩是从组成曲线的点集合A中抽取一个子集B,用这个子集B在一定的精度范围内尽可能地反映原数据集合A,而这个子集B 的点数应尽可能少。矢量数据压缩与化简的核心是在不扰乱拓扑关系的前提下对原始采样数据进行合理的删减。 对矢量数据进行压缩除了能节约存贮空间,加快网络传输速度之外,其本质的原因在于原始的数据存在一定的冗余。这种数据冗余一方面是数据采样过程中不可避免产生的;另一方面是由于具体应用变化而产生,比如大比例尺的矢量数据用于小比例尺的应用时,就会存在不必要的数据冗余。因此应该根据具体应用来选择合适的矢量数据压缩与化简算法。 2、矢量数据压缩率与压缩误差 压缩率和压缩误差是评价一个矢量数据压缩算法的基本要素。分别以N和n表示矢量数据压缩前后的结点数。矢量数据压缩率为压缩后点的数量与压缩前点的数量之比,即η= (N-n) / N * 100%。 目前,描述压缩误差的方法主要有三种,分别是最大位移距离、位移距离之和以及偏差面积。假设压缩前的曲线为Fs,…,Ft,压缩后的线

数据压缩,算法的综述

数据压缩算法的综述 S1******* 许申益 摘要:数据压缩技术在数据通讯和数据存储应用中都有十分显著的益处。随着数据传输技术和计算机网络通讯技术的普及应用,以及在计算机应用中,应用软件的规模和处理的数据量的急剧增加,尤其是多媒体技术在计算机通讯领域中的出现,使数据压缩技术的研究越来越引起人们的注意。本文综述了在数据压缩算法上一些已经取得的成果,其中包括算术编码、字典式压缩方法以及Huffman码及其改进。 关键字:数据压缩;数据存储;计算机通讯;多媒体技术 1.引言 数据压缩技术在数据通讯和数据存储应用中都有十分显著的益处。在数据的存储和表示中常常存在一定的冗余度,一些研究者提出了不同的理论模型和编码技术降低了数据的冗余度。Huffman 提出了一种基于统计模型的压缩方法,Ziv Jacob 提出了一种基于字典模型的压缩方法。随着数据传输技术和计算机网络通讯技术的普及应用,以及在计算机应用中,应用软件的规模和处理的数据量的急剧增加,尤其是多媒体技术在计算机和通讯两个领域中的出现,使数据压缩技术的研究越来越引起人们的注意。本文综述了在数据压缩算法上的一些已经取得的成果。 本文主要介绍了香农范诺编码以及哈弗曼算法的基本思想,运用其算法的基本思想设计了一个文件压缩器,用Java 语言内置的优先队列、对象序列化等功能实现了文件压缩器的压缩和解压功能。 2数据压缩算法的分类 一般可以将数据压缩算法划分为静态的和动态的两类。动态方法又是又叫做适应性(adaptive)方法,相应的,静态方法又叫做非适应性方法(non-adaptive)。 静态方法是压缩数据之前,对要压缩的数据经过预扫描,确定出信源数据的

数字音频技术_MP3_的压缩编码原理与制作方法

第4卷第2期2004年6月 长沙航空职业技术学院学报 CHAN GSHA AERONAU TICAL VOCA TIONAL AND TECHN ICAL COLL EGE JOURNAL Vol.4No.2 J un.2004 收稿日期:2004-03-20 作者简介:张晓婷(1964-),女,上海市人,讲师,主要从事计算机教学与研究。 数字音频技术(MP3)的压缩编码原理与制作方法 张晓婷 (珠海市工业学校,广东珠海 519015) 摘要:本文从音频压缩理论的角度,阐述MP3音频格式、压缩编码原理,同时介绍专业制作 MP3的方法。 关键词:MP3音频格式;压缩编码原理;制作经验与技巧中图分类号:TN919.3+11 文献标识码:A 文章编号:1671-9654(2004)02-051-06 Compression Coding Principle and F acture of Digital Audio Frequency T echnique (MP 3) ZHAN G Xiao 2ting (Zhuhai Indust ry School ,Zhuhai Guangdong 519015) Abstract : From the perspective of Audio Compression Theory ,the paper discusses format of audio Frequency tech 2 nique (MP3)and compression coding principle and also introduces the facture of audio Frequency technique (MP3). K ey w ords : Fomat of audio Frequency technique (MP3);compression coding principle ;facture 一、引言 数字技术的出现与应用为人类带来了深远的影响,特别是互联网的普及,使数字音频技术得到更为广泛的应用,并具有良好的市场前景。与之相关的数字音频压缩技术也得到了充分的发展,一些著名的研究机构和公司都致力于开发专利技术和产品。其中,MP3便是目前为止开发得最为成功的数字音频压缩技术之一。 二、MP3简介 (一)数字音频MP3的格式 MP3音频格式诞生于20世纪80年代,全名MPEG Audio layer 3,是MPEG (Moving PicturesEx 2pert Group 运动图像专家组)当初和影像压缩格式同时开发的音频压缩格式,是MPEG 21标准中的第三个层次,是综合了MPEG Audio layer 2和ASPEC 优点的混合压缩技术,音频质量好,主要用于MP3音频压缩,典型的码流为每通道64Kbit/s 。 (二)数字音频MP3压缩的优点 使用数字音频MP3压缩方式的处理,能增加更多的存储空间。由于MP3的压缩比约在十到十二倍之间,一分钟的CD 音乐经MP3压缩后,只需要一兆左右的存储空间,即一张光盘可以存储六百五十分钟到七百五十分钟的音乐;MP3典型的码流是每通道64Kbit/s ,只有CD 音乐每通道大约十分之一的码流,非常适合网上传输。更重要的是,即使压缩比如此惊人,音乐的品质依然较好,这主要是利用了人类听觉掩蔽效应(Masking Effect )的缘故。MP3具有容量小、数码化、制作简单、传输方便、成本低廉等特点,虽历经14余年,仍然是网上最流行的音乐格式之一。 三、MP3压缩编码原理在MPEG 21的音频压缩中,采样频率可分为32、44.1和48KHz ,可支持的声道有单声道(mono 2phonic )、双—单声道(dual 2monophonic )、立体声模式 ? 15?

3多媒体计算机系统的组成

多媒体计算机系统的组成 多媒体计算机系统是指支持多媒体数据,并使数据之间建立逻辑联接,进而集成为一个具有交互性能的计算机系统。一般说的多媒体计算机指的是具有多媒体处理功能的个人计算机,简称MPC(Multimedia Personal Computer)。MPC与一般的个人机并无太大的差别,只不过是多了一些软硬件配置而已,如图1所示。其实,目前所购置的个人计算机大多都具有了多媒体应用功能。从系统组成上讲,与普通的个人计算机一样,多媒体计算机系统(见图2)也是由硬件和软件两大部分组成。 图1 MPC的基本构成图2多媒体计算机系统 1.多媒体计算机硬件系统 多媒体计算机系统除了需要较高配置的计算机主机外,还包括表示、捕获、存储、传递和处理多媒体信息所需要的硬件设备。 (1)多媒体外部设备 按其功能又可分为如下4类: ①人机交互设备,如键盘、鼠标、触摸屏、绘图板、光笔及手写输入设备等。 ②存储设备,如磁盘、光盘等。 ③视频、音频输入设备,如摄像机、录像机、扫描仪、数码相机、数码摄像机和话筒等。 ④视频、音频播放设备,如音响、电视机和大屏幕投影仪等。 (2)多媒体接口卡 多媒体接口卡是根据多媒体系统获取、编辑音频或视频的需要而插接在计算机上的接口卡。常用的接口卡有声卡、视频卡等。 ①声卡:也叫音频卡是MPC的必要部件,它是计算机进行声音处理的适配器,用于处理音频信息。它可以将话筒、唱机(包括激光唱机)、录音机、电子乐器等输入的声音信息进行模/数转换、压缩处理,也可以将经过计算机处理的数字化声音信号通过还原(解压缩)、数/模转换后用扬声器播放或记录下来。 ②视频卡:是一种统称。有视频捕捉卡、视频显示卡(VGA卡)、视频转换卡(如TV Coder)以及动态视频压缩和视频解压缩卡等。它们完成的功能主要包括图形图像的采集、压缩、显示、转换和输出等。 2.多媒体计算机软件系统 多媒体计算机软件系统主要分为系统软件和应用软件。 (1)系统软件。多媒体计算机系统的系统软件有以下几种:

语音压缩编码的发展和应用

语音压缩编码的发展和应用 摘要:为了满足数字通信及其它商业应用的需求,语音压缩编码技术得到了迅速发展。介绍了目前语音压缩编码技术的研究进展,主要包括连续可变斜率增量调制(CVSD)、小波分析、多脉冲激励线性预测编码、散布脉冲码激励线性预测(DP-CELP)、多重脉冲散布非均匀代数码本激励线性预测(MPD-USACELP)、波形内插(WI)、线谱对(频率)(LSP)的量化。对以上算法进行了分析比较,总结了它们的特点和适用范围,并介绍了其中一些算法在DSP上的实时实现。 关键词:语音压缩编码:线性预测(LP);波形内插;DSP;语音编码 ;波形编码 ;参数编码 ;混合编码 ;编码标准 Abstract: In order to satisfy demands of the digital communication and other commercial apphcations, the speech compression technology has been developed rapidly. The present research progress in speech compression techn ology is introduced in this paper including CVSD,wavelet an alysis an d its application to speech coding, MPLPC, DP—CELP, MPD-USACELP,、Ⅳ1 an d quan tification of LSF.Th ese algorithms are an alyzed an d compared.Th eir characteristics an d applicable scopes are summarized. Some algorithms apphed to DSP are also introduced. Key words:Speech compression coding;LP;waveform interpolation;DSP;voice coding;waveform coding;parametric coding;hybrid coding;Coding Standard 前言:近30 年来, 通信技术一直在发生着深刻的变化, 编码技术日臻完善,高质量、低速率的语音编码算法纷纷出现, 各国相继成立了一些国际通信标准化组织, 及时地制定专门的通信编码标准, 语音编码技术的发展也体现在这些不断制定的标准中。由于实现方式的不同, 语音压缩编码技术种类很多, 一直向着高质低速方向发展, 并出现了不少令人振奋的成果。 随着信息技术的发展, 信道资源显得更加宝贵, 为了在有限的信道内进行更多的信息传输, 必须对语音信号进行压缩。语音信号能够压缩的基本依据是语音信号中存在的冗余和人类的听觉感知机理。语音信号存在多种多样的冗余, 可分别从时间域和频率域描述。从时间域分析: 幅度的非均匀分布, 即语音中的小幅度样本出现的概率高, 信息主要集中在低功率上;采样数据间的相关, 相邻的语音信号间有很强的相关性, 研究表明, 当采样率为8 kHz 时, 相邻样值之间的相关系数大于0.85, 如果采样率提高, 相关性将更强; 周期间的相关, 浊音语音段具有准周期性, 反映在波形上出现图形的重复, 即信息冗余; 语音间隙, 实际语音通信中, 存在通话间隙, 通话分析表明, 全双工话路的典型效率约为通话时间的40%, 即静止系数为0.6;长时自相关, 除了本间、同期间的相关外, 在较长的时间间隔上, 语音信号也存在相关, 统计表明, 8 kHz 采样时的平均相关系数高达0.9。从频率域分析: 非均匀的长时功率谱密度, 从相当长的时间内统计平均, 语音信号的功率谱呈现强烈的非平坦性, 这说明语音信号对给定的

图像压缩算法性能的测试与分析工具

图像压缩算法性能的测试与分析工具1 蔡正兴,张虹 中国矿业大学计算机科学与技术学院,江苏徐州 (221008) 摘要:本文研究了图像压缩算法性能的评价方法,提出了图像压缩算法性能的测试算法,包括横向比较测试和纵向分解测试,并在此基础上设计并实现了压缩算法性能的测试与分析工具。该工具能够测试和分析压缩算法的性能,并自动生成各种分析图表,为用户提供了方便,具有较大的实用价值。为了提高评价的效率、准确性和全面性,文中提出了测试图像的选择方法和测试结果的分析方法,具有一定的理论意义。 关键词:压缩性能,测试方法,分析方法,图像选择方法 1. 引言 近年来,图像压缩得到快速发展[1],各种算法层出不穷,比如有损的压缩算法可以在低失真的条件下达到高压缩比[2,3],而无损的压缩算法则可以保证重建图像的无失真[4]。因此在实际应用中得知各种压缩算法的性能及特点是必要的。在评价图像压缩算法性能时主要考虑压缩比、重建质量、时间复杂度、空间复杂度和实现代价这几个方面[5],其中较为重要的是压缩比、重建质量和时间复杂度。为了计算这些压缩性能指标,常常使用一些工具软件,比如在图像处理领域广泛使用的MATLAB系列软件,它提供了大量的内置函数[6],操作方便,功能强大,但它不是评价图像压缩算法性能的专业工具,需要进行二次开发,不能有效的分析和评价压缩性能。其次,利用性能指标来评价压缩方法,尽管方便快捷,但还不能反映图像压缩算法的全部特点。例如,在考虑变换编码系统的失真性质时,一般采用MSE(均方误差),有时利用MSE计算得到的重建质量很好,但视觉效果却不好,这是因为MSE对图像中的失真显著性不敏感[7],可见,性能指标仅仅是对压缩算法进行宏观上的评价,无法评价每个过程对压缩性能的影响。再次,在评价压缩性能时,不可避免地要使用测试图像,用户在选择测试图像时带有随机性,不利于全面地评价压缩方法。针对这些不足,本文设计了图像压缩算法性能的测试与分析工具——AutoTA。AutoTA的目标是自动地对图像压缩算法进行测试与分析,并生成各种分析图表,全面的评价图像压缩算法的性能。AutoTA具有广泛的应用前景,科研人员利用AutoTA可横向比较各种压缩算法的性能,也可纵向分析压缩算法的特点;工程技术人员也可以根据AutoTA的测试结果,在实际应用中选择合适的图像压缩算法。 2. 压缩算法性能指标 压缩性能指标是评价压缩算法的重要方面,也是AutoTA分析图像压缩算法性能的重要依据,下面将描述相关的性能指标。 2.1压缩比 压缩比是指压缩过程中输入数据量和输出数据量之比,反映了图像压缩算法的压缩性能,当压缩比小于1时为正压缩,当压缩比大于1时为负压缩。压缩比的计算公式为: 1本课题得到国家自然科学基金项目(编号:60372102)、教育部博士点基金项目(编号:20030290011)、软件新技术国家重点实验室课题(编号:A200309)资助。

种音频格式介绍及音质压缩比的比较

目录 前言 (1) 1. 数码音乐简介 (2) 2. WMV格式 (4) 3. MP3格式 (4) 4. WMA格式 (5) 5. Mp3Pro格式 (5) 6. MOD格式 (6) 7. RA系列 (6) 8. MD格式 (7) 9. ASF格式 (7) 10. AAC格式 (7) 11. VQF格式 (8) 12. MID格式 (8) 13. OGG格式 (9) 14. M4A格式 (9) 15. AAC+格式 (10) 16. AIFF与AU格式 (10) 17. CD格式 (11) 18. WAV格式 (11) 19. FLAC格式 (12) 20. APE格式 (13) 21. 压缩比比较: (13) 22. 音质比较: (14) 前言

在日常生活中,我们会听各种音乐,而这些音乐大多数都是以数码的形式传播的,无论是在电脑上试听或下载还是在MP3或CD机上试听。当然也会经常看到各式各类的诸如MP3、WMV、APE等格式,但你是否明白这些格式的意思呢?下面小编就为你整理了一些这方面的内容,希望能有帮助。 1.数码音乐简介 数字音源,也就是数字音频格式,最早指的是CD,CD经过压缩之后,又衍生出多种适于在随身听上播放的格式,这些压缩过的格式,我们可以分为两大类:有损压缩的和无损压缩的。这里所说的压缩,是指把PCM编码的或者是WAV格式的音频流经过特殊的压缩处理,转换成其他格式,从而达到减小文件体积的效果。有损/无损,是指经过压缩过后,新文件所保留的声音信号相对于原来的PCM/WAV 格式的信号是否有所削减。 PCM编码是Pulse Code Modulation的缩写,又叫脉冲编码调制,它是数字通信的编码方式之一,其编码主要过程是将话音、图像等模拟信号每隔一定时间进行取样,使其离散化,同时将抽样值按分层单位四舍五入取整量化,同时将抽样值按一组二进制码来表示抽样脉冲的幅值。 数码音频信号的最终形式仍然是“0/1”构成的。它们可能是任何排列和组合,比如“0001110101”或者“11100001010”。当然,组合不同,其效果当然就不一样。看到这里,应该有朋友注意到了。如果声音是用“00101010”这样的形式来记录,那最终形态岂不就是一个“点”,也就是一个简单的“开关”过程而已。声音是连续不断的,怎么能用“点”来记录呢?这样我们听到的声音不就应该是一段一段的吗?道理不难理解。回家打开日光灯,你能发现日光灯在闪吗?不能?其实日光灯的确是在不停闪烁的。看过动画片吧,那些都是用一格一格的静止的图画连接成的。一格一格的图画我们也可以简单的理解为一个一个的“点”。人对自然界的感觉是有极限的,视觉和听觉都是如此。动画片能产生连贯的动作是因为这些“点”在人的视觉未能及时做出反映的情况下让人产生的一种错觉,除了机器,人是无法把这些“点”区分开的。声音也是如此。如果声音闪动的频率很快,人也是

音频、视频压缩有哪些技术标准

音频、视频压缩有哪些技术标准? 视频压缩技术有:MPEG-4、H263、H263+、H264等 MPEG-4视频编码技术介绍 MPEG是“Moving Picture Experts Group”的简称,在它之前的标准叫做JPEG,即“Joint Photographic Experts Group”。当人们用到常见的“.jpg”格式时,实际上正在使用JPEG的标准。JPEG规范了现代视频压缩的基础,而MPEG把JPEG 标准扩展到了运动图象。 MPEG-4视频编码标准支持MPEG-1、MPEG-2中的大多数功能,它包含了H.263的核心设计,并增加了优先特性和各种各样创造性的新特性。它提供不同的视频标准源格式、码率、帧频下矩形图像的有效编码,同时也支持基于内容的图像编码。采纳了基于对象(Object-Based)的编码、基于模型(Model-based)的编码等第二代编码技术是MPEG-4标准的主要特征。 MPEG4与MPEG1、MPEG2的比较 从上表可以看出,MPEG1和MPEG2主要应用于固定媒体,比如 VCD 和 DVD ,而对于网络传输,MPEG4具有无可比拟的优势。 H.263/H.263+/H.264视频编码技术介绍 1.H.263视频编码标准 1.H.263是最早用于低码率视频编码的ITU-T标准,随后出现的第二 版(H.263+)及H.263++增加了许多选项,使其具有更广泛的适用性。 H.263是ITU-T为低于64kb/s的窄带通信信道制定的视频编码标准。 它是在H.261基础上发展起来的,其标准输入图像格式可以是

S-QCIF、QCIF、CIF、4CIF或者16CIF的彩色4∶2∶0亚取样图像。 H.263与H.261相比采用了半象素的运动补偿,并增加了4种有效的 压缩编码模式。 2.H.263+视频压缩标准 1.ITU-T在H.263发布后又修订发布了H.263标准的版本2,非正式 地命名为H.263+标准。它在保证原H.263标准核心句法和语义不变 的基础上,增加了若干选项以提高压缩效率或改善某方面的功能。原 H.263标准限制了其应用的图像输入格式,仅允许5种视频源格式。 H.263+标准允许更大范围的图像输入格式,自定义图像的尺寸,从而 拓宽了标准使用的范围,使之可以处理基于视窗的计算机图像、更高 帧频的图像序列及宽屏图像。为提高压缩效率,H.263+采用先进的帧 内编码模式;增强的PB-帧模式改进了H.263的不足,增强了帧间预 测的效果;去块效应滤波器不仅提高了压缩效率,而且提供重建图像 的主观质量。为适应网络传输,H.263+增加了时间分级、信噪比和空 间分级,对在噪声信道和存在大量包丢失的网络中传送视频信号很有 意义;另外,片结构模式、参考帧选择模式增强了视频传输的抗误码 能力。 3.H.264视频压缩标准 1.H.264是由ISO/IEC与ITU-T组成的联合视频组(JVT)制定的新一 代视频压缩编码标准。对信道时延的适应性较强,既可工作于低时延 模式以满足实时业务,如会议电视等;又可工作于无时延限制的场合, 如视频存储等。 2.提高网络适应性,采用“网络友好”的结构和语法,加强对误码和 丢包的处理,提高解码器的差错恢复能力。 3.在编/解码器中采用复杂度可分级设计,在图像质量和编码处理之 间可分级,以适应不同复杂度的应用。 4.相对于先期的视频压缩标准,H.264引入了很多先进的技术,包括 4×4整数变换、空域内的帧内预测、1/4象素精度的运动估计、多参 考帧与多种大小块的帧间预测技术等。新技术带来了较高的压缩比, 同时大大提高了算法的复杂度。 G.7xx系列典型语音压缩标准介绍 G.7xx 是一组 ITU-T 标准,用于视频压缩和解压过程。它主要用于电话方面。在电话学中,有两个主要的算法,分别定义在 mu-law 算法(美国使用)和 a-law 算法(欧洲及世界其他国家使用),两者都是对数关系,但对于计算机的处理来说,后者的设计更为简单。 国际电信联盟G系列典型语音压缩标准的参数比较:

无损压缩算法的比较和分析

Adaptive-Huffman-Coding 自适应霍夫曼编码 压缩比:1.79 分析: 霍夫曼算法需要有关信息源的先验统计知识,而这样的信息通常很难获得,即使能够获得这些统计数字,符号表的传输仍然是一笔相当大的开销。 自适应压缩算法能够解决上述问题,统计数字是随着数据流的到达而动态地收集和更新的。概率再不是基于先验知识而是基于到目前为止实际收到的数据。随着接收到的符号的概率分布的改变,符号将会被赋予新的码字,这在统计数字快速变化的多媒体数据中尤为适用。 Lempel-Ziv-Welch 基于字典的编码 压缩比:1.86 分析: LZW算法利用了一种自适应的,基于字典的压缩技术。和变长编码方式不同,LZW使用定长的码字(本次实验使用12位定长码字)来表示通常会在一起出现的符号/字符的变长的字符串。 LZW编码器和解码器会在接受数据是动态的创建字典,编码器和解码器也会产生相同的字典。 编码器的动作有时会先于解码器发生。因为这是一个顺序过程,所以从某种意义上说,这是可以预见的。

算术编码(arithmetic coding) 压缩比:2 分析: 算术编码是一种更现代化的编码方法,在实际中不赫夫曼编码更有效。 算术编码把整个信息看作一个单元,在实际中,输入数据通常被分割成块以免错误传播。 算术编码将整个要编码的数据映射到一个位于[0,1)的实数区间中。并且输出一个小于1同时大于0的小数来表示全部数据。利用这种方法算术编码可以让压缩率无限的接近数据的熵值,从而获得理论上的最高压缩率。 比较分析: 一般来说,算术编码的性能优于赫夫曼编码,因为前者将整个消息看作一个单元,而后者受到了必须为每一个符号分配整数位的限制。 但是,算术编码要求进行无限精度的实数运算,这在仅能进行有限精度运算的计算机系统是无法进行的。随着研究的深入,有学者提出了一种基于整数运算的算术编码实现算法。在编码和解码的过程还需要不时的调整区间大小,以免精度不足,加大了实现的难度。 在3种无损压缩算法中,LZW算法相对来说,实现最为简单,但其压缩效果要在数据源足够大的时候,才能显现出来。

几种视频压缩算法对比

视频压缩算法对比 视频2008-05-23 10:10:09 阅读557 评论0 字号:大中小订阅 视频压缩标准及比较原始的数字视频信号的数据量是相当惊人的,例如,NTSC 图像以大约640X480的分辨率,24bist/象素,每秒30帧的质量传输时,则视频数据有640X480x24X30=221Mb/S或28MB/s秒,显然这样庞大的数据流对大多数传输线路来说是无法承受的,而且也是无法存储的。为此人们开始专门研究将这些视频、音频数据流进行压缩。很多压缩编码标准相继推出,主要有JPEG月吐一JPEG‘,幻,_H.261旧.263和MPEG等标准。其中JPEG标准主要是用在静止图像的压缩。M一PJEG是将PJEG改进后用到运动图像上,在压缩比不高时,有较好的复现图像质量,但占用存储空间大;在压缩比高的情况下,复现图像质量差。.H261爪.263标准是专门为用于图像质量要求不高的视频会议和可视电话设计。MpEG(MovnigPictureExPertGorPu即活动图像专家组)。它是由150(国际标准化组织)和正(c国际电工委员会)于1988年联合成立的。专门致力于运动图像及伴音编码标准化工作。它们推出了MPEG编码标准【1卜,1l。到现在为止,专家组己制定了MPEG一1,MPEG一2和MPEG一4三种标准,由于其标准化、较大的压缩比及较高的画面质量,成为视频压缩系统首选算法。 MPEGI是一种压缩比高但图像质量稍差的技术;而MPEGZ技术主要专注于图像质量,压缩比小,因此需要的存储空间就大;MPEG4技术是时下比较流行的技术,使用这种技术可以节省空间、提高图像质量、节省网络传输带宽等优点。 来自:https://www.360docs.net/doc/ff6632082.html,/blog/static/80720305200842310109120/

五种大数据压缩算法

?哈弗曼编码 A method for the construction of minimum-re-dundancy codes, 耿国华1数据结构1北京:高等教育出版社,2005:182—190 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,1997. 冯桂,林其伟,陈东华.信息论与编码技术[M].北京:清华大学出版社,2007. 刘大有,唐海鹰,孙舒杨,等.数据结构[M].北京:高等教育出版社,2001 ?压缩实现 速度要求 为了让它(huffman.cpp)快速运行,同时不使用任何动态库,比如STL或者MFC。它压缩1M数据少于100ms(P3处理器,主频1G)。 压缩过程 压缩代码非常简单,首先用ASCII值初始化511个哈夫曼节点: CHuffmanNode nodes[511]; for(int nCount = 0; nCount < 256; nCount++) nodes[nCount].byAscii = nCount; 其次,计算在输入缓冲区数据中,每个ASCII码出现的频率: for(nCount = 0; nCount < nSrcLen; nCount++) nodes[pSrc[nCount]].nFrequency++; 然后,根据频率进行排序: qsort(nodes, 256, sizeof(CHuffmanNode), frequencyCompare); 哈夫曼树,获取每个ASCII码对应的位序列: int nNodeCount = GetHuffmanTree(nodes); 构造哈夫曼树 构造哈夫曼树非常简单,将所有的节点放到一个队列中,用一个节点替换两个频率最低的节点,新节点的频率就是这两个节点的频率之和。这样,新节点就是两个被替换节点的父

浅谈无损压缩算法

龙源期刊网 https://www.360docs.net/doc/ff6632082.html, 浅谈无损压缩算法 作者:孔凡龙,程思远,关迅 来源:《电脑知识与技术》2011年第22期 摘要:该文介绍了经典的Huffman编码和目前压缩比最高的PAQ系列压缩算法,包括Huffman编码的原型,改进后的自适应Huffman编码及他们各自的实现方法和优缺点,PAQ系列压缩算法是如何进行上下文建模,预测和编码的。 关键词:无损压缩;Huffman;PAQ 中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)22-5466-02 在信息高速发展的今天,人们进行交流沟通的数据量相当的庞大,如何更好,更快的传输和存储数据已成为一个重大的问题,单纯地提高存储容量,并不能从根本解决问题,而数据的压缩是解决这一问题的重要方法。从无损音乐格式ape到文档的存储,数据的无损压缩已广泛应用于各个领域。 1 无损压缩概述 数据压缩是按照特定的编码机制用比未经编码少的数据位(或者其它信息相关的单位)表示信息的过程。无损压缩是利用数据的统计冗余进行压缩,可完全回复原始数据而不引起任何失真,但压缩率是受到数据统计冗余度的理论限制,一般为20%到50%。这类方法广泛用于 文本数据,程序和特殊应用场合的图像数据的压缩。 2 无损压缩算法Huffman和PAQ 2.1 基于Huffman编码的压缩 2.1.1 静态Huffman和动态Huffman编码 Huffman编码使用变长编码表对源符号进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现次数多的符号使用较短的编码,出现次数少的则使用较长的编码,这便使编码之后的符号串的平均长度降低,从而达到无损压缩数据的目的。Huffman编码是通过构建最优二叉树即带权路径长度最小的二叉树,来实现对数据的编码。Huffman编码的过程: (1)对数据中的源符号的种类和数量进行统计,共有n个源符号,其出现的频率分别为w1,w2...wn;

多媒体音视频调度系统产品介绍V01

IDM 多媒体音视频调度机MSAP-CP 1.简介 IDM 多媒体调度机MSAP-CP是北京瑞光极远开发设计的基于PBX/IPPBX融合通 信设备,广泛应用于电信运营商、政府、行业、大中型企业用户精心打造的,功能强大的。产品采用先进的数字集成电路、高集成优化结构、SDH/PDH光传输技术及PBX/IPPBX通信技术设计而成。可部署在企业侧或运营商机房,为用户提供音视频融 合一体的综合解决方案。 系统采用模块化设计、板卡组装方式,集成传统TDM PBX交换机E1中继接入和 模拟分机用户各项功能,支持PRI、NO.1、NO.7、SIP/H.323各种信令方式,可连接传 统PSTN网络和运营商VOIP软交换平台,可基于TDM网络和IP网络实现语音、传真、数据的传输,实现安全高效的企业内部音视频融合通信。 IDM 多媒体调度机MSAP-CP具有集SDH光纤传输、E1接入、各种64K的Z接口、IP通信以及各种无线通信等接入手段于一体,提供视频、音频、传真、数据等多媒 体通信服务。 IDM 多媒体调度机MSAP-CP基于Telecom BUS总线、IP总线以及ST-BUS总线 多总线系统,实现数字中继、IP中继和模拟中继方式,同时可接入多个触摸屏综合调度台。并支持与语音记录/语音信箱服务器、网络管理服务器、传真短信邮件收发服务器、录音/录像服务器、GIS服务器、GPS/GPRS服务器等的无缝连接。 IDM MSAP-CP正面图IDM MSAP-CP背面图 2.功能特点 ◆19英寸7U标准机箱结构,采用插盘式结构设计,配置灵活,提供16个槽位,可根据 业务配置多种业务盘; ◆支持AC 220V/DC -48V双电源互备份供电; ◆集SDH、PDH、PCM、IP、IPPBX、TDM OVER IP功能于一体;

图像无损压缩算法综述

图像无损压缩算法综述 【摘要】本文介绍了常见的图像无损压缩方法:静态及动态霍夫曼(Huffman)编码算法、算术编码算法、LZW ( lanpel-ziv-velch)编码及其改进算法、行程编码(又称游程编码,RLE)及改进自适应游程编码算法、费诺-香农编码算法和一种改进的编码方法。简要分析了各种算法的优缺点。 【关键词】霍夫曼算术编码 LZW 行程编码费诺-香农编码 1 前言 随着技术的不断发展,多媒体技术和通讯技术等对信息数据的存储和传输也提出了更高的要求,给现有的有限带宽带来更严峻的考验,尤其是具有庞大数据量的数字图像通信。存储和传输的高难度极大地制约了图像通信的发展,因此对图像信息压缩技术的研究受到了越来越多的关注。压缩数据量是图像压缩的首要目的,但保证压缩后图像的质量也是非常重要的,无损压缩是指能精确恢复原始图像数据的压缩方法,其在编码压缩过程中没有图像信号的损失。本文介绍了常见的无损压缩方法:静态及动态霍夫曼(Huffman)编码算法、算术编码算法、LZW ( lanpel-ziv-velch)编码及其改进算法、行程编码(又称游程编码,RLE)及改进自适应游程编码算法、费诺-香农编码算法和一种改进的编码方法。 2 常见图像无损压缩算法 2.1 霍夫曼算法 Huffman算法是一种用于数据压缩的算法,由D.A.Huffman最先提出。它完全依据字符出现概率来构造平均长度最短的编码,有时称之为最佳编码,一般叫做Huffman编码。频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。 2.1.1 静态霍夫曼编码 步骤:

基于DCT和DWT的遥感图像压缩算法比较_严俊雄

第8卷 第19期 2008年10月1671-1819(2008)18-5439-07 科 学 技 术 与 工 程 Sc ience T echno l ogy and Eng i nee ri ng V ol 18 N o 119 O ct . 2008Z 2008 Sci 1T ech 1Engng 1 基于DCT 和D W T 的遥感图像压缩算法比较 严俊雄 1,2 王 文1 李子扬 2,3 李 安1 陈 勃 1 (中国科学院对地观测与数字地球科学中心,北京100086;中国科学院研究生院2,北京100080;中国科学院光电研究院3,北京100080) 摘 要 由于遥感图像具有数据量大、分辨率高、覆盖范围广、纹理复杂、细节多、灰度变化大、目标小、空间相关性较差等特点,很难对其进行高比例压缩。因此遥感图像的及时显示、共享与数据传输问题,一直是遥感数据存储、处理与分析过程中存在的技术瓶颈。另一方面,在目前网络带宽有限的情况下,这也为G IS(地理信息系统)信息的实时动态应用造成了困难。因此,图像压缩在遥感数据存储、传输与共享等应用上有很重要的作用。探讨应用在遥感领域的DCT (JPEG )和D W T (JPEG 2000,EC W,M R SI D )算法,然后采用基于这些算法的技术工具比较压缩重建后图像的质量。最后,针对不同的遥感应用提出了一些建议。 关键词 DCT D W T 遥感图像 图像压缩中图法分类号 TP75111; 文献标志码 A 2008年6月19日收到 中国科学院知识创新工程青年人才领域 前沿项目资助 第一作者简介:严俊雄(1983)),男,中国科学院对地观测与数学地球科学中心研究生,研究方向:遥感卫星数据处理,E-m ai:l j xy -an@rs gs 1ac 1cn 。 所有图像压缩技术都是通过降低数据冗余度来达到压缩的目的。图像压缩分为无损压缩和有损压缩。无损压缩是指数据经过压缩后信息不受损失,还能完全恢复到压缩前的原样。有损压缩允许压缩过程中损失一定的信息,虽然不能完全恢复图像,但是所损失的部分应对原始图像的影响较小,但却提高了压缩比。根据编码理论,图像压缩又可分为概率统计编码、预测编码,变换编码等。常用的霍夫曼编码、算术编码、游程编码和LZ W 编码就都属于概率统计编码。由于这些编码都是基于图像的统计特性,因此压缩高冗余图像可以获得高压缩比,低冗余图像则对应低压缩比。预测编码则首先预测目标值,然后根据预测值与实际值的差进行量化和编码,最后在接收端解码,根据预测值和解码值重建图像。DPC M (D ifferentia l Pu lse Code M odu lation),作为最重要的预测编码方法,易于硬件实现,在许多领域得到了广泛的应用。它的最大的 弱点是降低了抗误码能力,容易造成误码扩散现象。 随着近年来数学方法与工具的发展,变换编码获得了长足的发展,成为了最有效的压缩方法之一。变换编码的基本思想是从频域(变换域)的角度减小数据相关性,通过正交变换将数据从相关性很强的空间域变换到相关性较弱的变换域,并通过保留方差较大的变换系数,舍弃方差较小的变换系数来实现压缩。常用的变换有K I 变换、DCT 变换、DST 变换、DFT 变换及D WT 变换等。作为最成熟的技术,DCT (D iscrete Cosi n e Transfo r m ,离散余弦变换)在很多领域得到了广泛应用。而D W T (D is -creteW ave letT ransfor m ,离散小波变换)因为其显著的特点也引起了越来越多的注意,许多学者进行了深入的研究。一系列基于DCT 和D W T 的压缩算法和工具涌现出来。本文主要讨论并比较基于DCT 和DWT 的压缩算法。 另外,基于自相似性和尺度变化无限性的分形图像压缩方法能获得相当高的压缩比和很好的压缩效果,具有很大的潜力。但这项技术还不够成熟,在图像压缩领域还不占主导地位。 1 遥感图像压缩的分类 遥感图像压缩可分为星上无损压缩、星上有损

多媒体数据处理中几种无损压缩算法的比较概要

119 摘要:为了使大容量的多媒体数据在网 络上有效的传输,必须对多媒体数据进行压缩。对多媒体数据压缩中的几种无损压缩方法进行了比较,并对每种方法用一个例子说明。 关键词:数据压缩;霍夫曼树;LZW;二 叉树 引言 随着网络发展的速度越来越快,视频, 音频的广泛应用使得大数据量的传输显得尤为重要,如何更快、更多、更好地传输与存储数据成为数据信息处理的首要问题。 在压缩算法中分为无损压缩和有损压 缩。相对于有损压缩来说,无损压缩的占用空间大,压缩比不高,但是它100%的保存了原始信息,没有任何信号丢失并且音质高,

不受信号源的影响,这点是有损压缩不可比拟的。而且随着时间的推移,限制无损格式的种种因素将逐渐被消除,比如说硬盘容量的急剧增长以及低廉的价格使得无损压缩格式的前景无比光明。 1、无损压缩的原理以及几种常见算法 本质上压缩数据是因为数据自身具有冗 余性。数据压缩是利用各种算法将数据冗余压缩到最小,并尽可能地减少失真,从而提 高传输效率和节约存储空间。 常见的无损压缩算法有,游长编码;香 浓-凡诺算法;霍夫曼算法;LZW算法;下面 详细介绍这些算法或编码步骤,并比较其优缺点。 2、游长编码 也叫行程编码,它是数据压缩中最简单 的一种方法。它的思想是:将图像一行中颜色值相同的相邻象素用一个计数值和该颜色值来代替。例如:aabbbccccdddddeeeeee对

其进行游长编码可得2a3b4c5d6e,可见其效 率很高。但它有两个致命缺点。 一:如果图象中每两个相邻点的颜色 都不同,用这种算法不但不能压缩,反而数 据量会增加,例如对abcdeabcde进行编码得 1a2b3c4d5e1a2b3c4d5e,可见数据量反而增 加了1倍。 二:容错性差。还是以aabbbccccddddde eeeee为例,如果在第二位a出错,例如丢失 了a,那么编码后结果为1a3b4c5d6e,虽然只 有一位发生了错误,但是在恢复数据时,将 和原始数据完全不同。 所以说游长编码在要压缩信息源中的符 号形成连续出现片段时才有效,并且它不是一种自适应的编码方式。 3、香浓-凡诺算法香浓-凡诺算法由贝尔实验室的Shannon 和MIT的Robert Fano开发的。它的编码步骤如下:一:根据符号出现的频率对符号进行排序二:递归的把符号分成两部分,每一部分中的符号具有相似的频率,直到所有的部分只有一个符号为止。这样,就得到一颗二叉树,我们把树中的左支赋为0,把树中的右支赋为1。那么从根节点到节点的路径即为它的编码。例如:对字符串abcccd编码。进行排序后为cabd。递归过程图1-图3。应当指出香浓-凡诺算法的编码结果并不是唯一的,例如在图1的时候可以交换左右子树的位置,在图3的时候也可以交换b,d的位置。香

数据快速压缩算法的C语言实现

价值工程 置,是一项十分有意义的工作。另外恶意代码的检测和分析是一个长期的过程,应对其新的特征和发展趋势作进一步研究,建立完善的分析库。 参考文献: [1]CNCERT/CC.https://www.360docs.net/doc/ff6632082.html,/publish/main/46/index.html. [2]LO R,LEVITTK,OL SSONN R.MFC:a malicious code filter [J].Computer and Security,1995,14(6):541-566. [3]KA SP ER SKY L.The evolution of technologies used to detect malicious code [M].Moscow:Kaspersky Lap,2007. [4]LC Briand,J Feng,Y Labiche.Experimenting with Genetic Algorithms and Coupling Measures to devise optimal integration test orders.Software Engineering with Computational Intelligence,Kluwer,2003. [5]Steven A.Hofmeyr,Stephanie Forrest,Anil Somayaji.Intrusion Detection using Sequences of System calls.Journal of Computer Security Vol,Jun.1998. [6]李华,刘智,覃征,张小松.基于行为分析和特征码的恶意代码检测技术[J].计算机应用研究,2011,28(3):1127-1129. [7]刘威,刘鑫,杜振华.2010年我国恶意代码新特点的研究.第26次全国计算机安全学术交流会论文集,2011,(09). [8]IDIKA N,MATHUR A P.A Survey of Malware Detection Techniques [R].Tehnical Report,Department of Computer Science,Purdue University,2007. 0引言 现有的压缩算法有很多种,但是都存在一定的局限性,比如:LZw [1]。主要是针对数据量较大的图像之类的进行压缩,不适合对简单报文的压缩。比如说,传输中有长度限制的数据,而实际传输的数据大于限制传输的数据长度,总体数据长度在100字节左右,此时使用一些流行算法反而达不到压缩的目的,甚至增大数据的长度。本文假设该批数据为纯数字数据,实现压缩并解压缩算法。 1数据压缩概念 数据压缩是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。常用的压缩方式[2,3]有统计编码、预测编码、变换编码和混合编码等。统计编码包含哈夫曼编码、算术编码、游程编码、字典编码等。 2常见几种压缩算法的比较2.1霍夫曼编码压缩[4]:也是一种常用的压缩方法。其基本原理是频繁使用的数据用较短的代码代替,很少使用 的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。 2.2LZW 压缩方法[5,6]:LZW 压缩技术比其它大多数压缩技术都复杂,压缩效率也较高。其基本原理是把每一个第一次出现的字符串用一个数值来编码,在还原程序中再将这个数值还成原来的字符串,如用数值0x100代替字符串ccddeee"这样每当出现该字符串时,都用0x100代替,起到了压缩的作用。 3简单报文数据压缩算法及实现 3.1算法的基本思想数字0-9在内存中占用的位最 大为4bit , 而一个字节有8个bit ,显然一个字节至少可以保存两个数字,而一个字符型的数字在内存中是占用一个字节的,那么就可以实现2:1的压缩,压缩算法有几种,比如,一个自己的高四位保存一个数字,低四位保存另外一个数字,或者,一组数字字符可以转换为一个n 字节的数值。N 为C 语言某种数值类型的所占的字节长度,本文讨论后一种算法的实现。 3.2算法步骤 ①确定一种C 语言的数值类型。 —————————————————————— —作者简介:安建梅(1981-),女,山西忻州人,助理实验室,研究方 向为软件开发与软交换技术;季松华(1978-),男,江苏 南通人,高级软件工程师,研究方向为软件开发。 数据快速压缩算法的研究以及C 语言实现 The Study of Data Compression and Encryption Algorithm and Realization with C Language 安建梅①AN Jian-mei ;季松华②JI Song-hua (①重庆文理学院软件工程学院,永川402160;②中信网络科技股份有限公司,重庆400000)(①The Software Engineering Institute of Chongqing University of Arts and Sciences ,Chongqing 402160,China ; ②CITIC Application Service Provider Co.,Ltd.,Chongqing 400000,China ) 摘要:压缩算法有很多种,但是对需要压缩到一定长度的简单的报文进行处理时,现有的算法不仅达不到目的,并且变得复杂, 本文针对目前一些企业的需要,实现了对简单报文的压缩加密,此算法不仅可以快速对几十上百位的数据进行压缩,而且通过不断 的优化,解决了由于各种情况引发的解密错误,在解密的过程中不会出现任何差错。 Abstract:Although,there are many kinds of compression algorithm,the need for encryption and compression of a length of a simple message processing,the existing algorithm is not only counterproductive,but also complicated.To some enterprises need,this paper realizes the simple message of compression and encryption.This algorithm can not only fast for tens of hundreds of data compression,but also,solve the various conditions triggered by decryption errors through continuous optimization;therefore,the decryption process does not appear in any error. 关键词:压缩;解压缩;数字字符;简单报文Key words:compression ;decompression ;encryption ;message 中图分类号:TP39文献标识码:A 文章编号:1006-4311(2012)35-0192-02 ·192·

相关文档
最新文档