音频编解码原理讲解和分析

音频编解码原理讲解和分析
音频编解码原理讲解和分析

音频编码原理讲解和分析

作者:谢湘勇,算法部,xie.chris@https://www.360docs.net/doc/6a14287760.html, 2007-10-13 简述 (2)

音频基本知识 (2)

采样(ADC) (3)

心理声学模型原理和分析 (3)

滤波器组和window原理和分析 (6)

Window (6)

TDAC:时域混叠抵消,time domain aliasing cancellation (7)

Long and short window、block switch (7)

FFT、MDCT (8)

Setero and couple原理和分析 (8)

量化原理和分析 (9)

mp3、AAC量化编码的过程 (9)

ogg量化编码的过程 (11)

AC3量化编码的过程 (11)

Huffman编码原理和分析 (12)

mp3、ogg、AC3的编码策略 (12)

其他技术原理简介 (13)

比特池技术 (13)

TNS (13)

SBR (13)

预测模型 (14)

增益控制 (14)

OGG编码原理和过程详细分析 (14)

Ogg V orbis的引入 (14)

Ogg V orbis的编码过程 (14)

ogg心理声学模型 (15)

ogg量化编码的过程 (16)

ogg的huffman编码策略 (17)

主要音频格式编码对比分析 (19)

Mp3 (19)

Ogg (20)

AAC (21)

AC3 (22)

DRA(A VS内的中国音频标准多声道数字音频编码) (23)

BSAC,TwinVQ (24)

RA (24)

音频编码格式的对比分析 (25)

主要格式对比表格如下 (26)

语音编码算法简介 (26)

后处理技术原理和简介 (28)

EQ (28)

SRS WOW (29)

环境音效技术(EAX) (29)

3D (30)

Dolby多项后处理技术 (30)

多声道介绍 (30)

简述

音频编解码目前主流的原理框图如图1,下面我希望由浅入深的对各算法原理作一说明。

音频基本知识

?人类可听的音频频率范围为20-20khz

?全音域可分为8度音阶(Octave)概念,每octave又可以分为12份,相当于1—7的每半音为一份(1/12 octave)

?音调和噪音:音调有规律的悦耳的声音(如乐器的1—7),噪音是无规律的难听的声音。音调具有谐波分量,不同的乐器对同一音调产生不同的谐波,所以我们产生不同的感觉,这叫做音色,不同的谐波也产生了音色的好坏。音质主要定义为噪音的多少。

?主要的音频编解码对象是音乐、语音,一般采用不同的编解码算法来进行编码

?音频的编解码的格式分类

?无压缩的格式(PCM…)

?无损压缩格式(APE,FLAC,LPAC,WMA_LS…)

?有损音乐压缩格式(AAC,AACPlus,AC3,DTS,A TRAC,MP3,WMA,OGG,RA…)

?有损语音压缩格式(AMR, GSM, LPC, SPEEX, CELP, G.7XX, ADPCM,…)

?合成算法(MIDI,TTS)

?音频的编解码的目的:减少传输的信息量,减少储存的信息量

采样(ADC)

采样即将连续的信号转化为离散的量化信号,一般应用是ADC,音频编码内采样的频率一般有:fs=8k,11.025k,12k,16k,22.05k,24k,32k,44.1k,48k(hz)9种,96khz,192khz也有应用。根据奈归斯特定理,采样频率fs大于信号频率f的两倍时,可完全重构原信号,所以音域为20khz的音乐信号,一样采用fs=44.1khz采样率。

采样混叠问题,由于采样会使信号的频谱产生2π为周期的周期扩展,所以信号的频率f>fs/2时,会产生混叠效应,故一般进行采样需要增加低通滤波器,使输入信号频率小于fs/2。重采样的问题下面列出两问题作参考:

1.将采样率为48khz的音频信号转化为24khz的信号,请问其处理过程?答案:先经过

一低通滤波器(截止频率为π/2),再每两个信号抽取一个信号,产生24khz的信号.

如果不进行低通滤波,则会产生混叠。

2.将采样率为24khz的音频信号转化为48khz的信号,请问其处理过程?答案:先每个信

号后插入一个0,再经过一低通滤波器(截止频率为π/2),产生48khz的信号. 如果不进行低通滤波,则会产生原信号的映像,且最大幅度下降,增加滤波可去除映像和实现对填充的零值平滑化。

心理声学模型原理和分析

心理声学模型是研究心理与声学的相关性,目前的主要研究成果是,

1.低于一定频率或高于一定频率我们无法听到,一般人可听范围为(20hz-20khz)

2.人的耳朵对在低于一定的声压级或高于一定的声压级的声音,我们无法听到,而最

低的可听声压级,被称为绝对听觉阈值曲线

●绝对听觉曲线近似方程:

3.对不同频率同一声压级的声音人感觉的声音响度是不同的,同时不同年龄的人对同

一声音其感觉的响度也会不同,小孩对低频和高频的感受能力都比老人要强烈很

多。这里声音的实际能量大小我们定义为声压级,人感觉的声音大小我们定义为响

度。通常人对1k-4khz的声音感觉最敏感,而人的语音也大部分集中在这个频段。

下图为等响曲线,其中0的曲线是绝对听觉阈值曲线。

4.掩蔽性,即比较大的声音会掩蔽比较小的声音,掩蔽原理分:时域掩蔽、频域掩蔽。

●频域掩蔽即同一时间点某一声音较大的某一频率信号会掩蔽附近其他频率的

信号,如下图2.5红线以下的信号被掩蔽,蓝线为绝对听觉曲线,以下的信号

也同样被掩蔽。同时低频信号对高频信号掩蔽效果较大,如下图2.6。整体掩

蔽效果是所有掩蔽的叠加,如下图1.3

●时域掩蔽是某一时间点某一声音较大的某一频率信号会掩蔽此信号之前和后

的声音,向前的掩蔽时间较短5ms,向后的掩蔽时间较长150ms。

●根据声学模型,声音在用一临界区间内的掩蔽作用基本相同,所以我们一般定

义此区间的单位为bark,0—20khz声音可基本分为25bark,某一临界区间内

的强信号对别的临界区间的掩蔽效果可以用拓展函数计算。bark计算公式和带

宽如下图:

●掩蔽同时又可主要分出:音调掩蔽噪音(TMN)和噪音掩蔽音调(NMT)。而且音

调掩蔽噪音的作用较小,噪音掩蔽音调较大。

根据心理声学模型的成果,目的是将人耳听不到的或影响很小的信息部分去除,不编码。目前的应用也有不同的实现方法,但都使用同样的心理声学模型成果。mpeg有mode1和mode2两种声学模型,lay1和lay2使用mode1,lay3(mp3)使用mode2,AAC与mp3相同使用mode2,ogg实现方法与mpeg不同。下面主要介绍mpeg的mode2声学模型的具体实现方式和ogg的实现方式。

MPEG mode2声学模型

MPEG mode2声学模型计算原理可以分为几个步骤

1.FFT+haning window

2.将谱线按临界区间进行分组,计算掩蔽值按分组为单位

3.辨认音调信号和噪声信号。Mode1主要是根据局部峰值特性来确定音调信号,

临界区间内的其他信号根据几何平均值来确定噪声信号;而mode2则根据不

可预测性指数来作为加权值进行掩蔽值计算,依据的原理是音调信号预测性较

好,而噪声信号预测性较差。加权公式如下:

●SNR=tb(b)*TMN(b)+(1-tb(b))*NMT(b), TMN=18db, NMT=6

4.使用扩展函数计算其他临界区间对此区间的影响

5.预回声控制,取min(前一帧的掩蔽性nb_l(b)*rpe,nb(b)),rpe=1 or 2

6.使用绝对听觉阈值曲线max(绝对阈值qt(b),nb(b))

7.计算谱线掩蔽thr(w),并计算和输出子带SMR

8.感知熵计算,用于长短窗判定,平稳信号的感知熵较小。PE=-∑

(whigh(b)-wlow(b))*log10(nb(b)/(e(b)+1))

9.

ogg心理声学模型

下见“OGG编码原理和过程详细分析”内:ogg心理声学模型

滤波器组和window原理和分析

Window

Window的作用是将无限信号截取为短时有限信号,但其会改变信号的频谱特性,主要是频谱泄漏,使中心频带变宽,产生旁瓣频谱。而中心频带宽度,旁瓣频谱的衰减特性是我们实际应用中选择window的主要依据,目前主要的window函数如下>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

窗类型项数阻带衰减通带增益[20log(1-deta_p)]

矩形0.91*fs/TW 21db -0.9db

汉宁 3.32*fs/TW 44db -0.06db

哈明 3.44*fs/TW 55db -0.02db

布莱克曼 5.98*fs/TW 75db -0.0014db

凯塞(pda=6) 4.33*fs/TW 64db -0.0057db

凯塞(pda=8) 5.25*fs/TW 81db -0.00087db

凯塞(pda=10) 6.36*fs/TW 100db -0.000013db

fs=frequency sample, TW=中心频带带宽>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

在此介绍AAC、mp3、ogg的window使用

AAC的使用了正弦窗和KBD窗(kaiser-bessel dirved window)两种窗类型,解码使可切换。KBD win的主瓣较宽,旁瓣衰减大,适合频率间隔大于140hz的变换;正弦窗的主瓣较窄,

旁瓣衰减小,适合频率间隔小于140hz的变换;故AAC内长窗(2048point)用正弦窗,短窗(256point)用KBD窗.窗频谱对比分析如下图

Mp3长短都用了与AAC一样的正弦窗,正弦窗公式w=sin(π/N*(i+0.5))

OGG长短也只用一种窗,但与AAC、mp3不同,公式为y=sin(0.5 * π * sin2((x+0.5)/n * π)),也可以属于正弦窗之列

TDAC:时域混叠抵消,time domain aliasing cancellation

目前的音频编码使用MDCT的基本上都用了此项技术,可抵消掉MDCT的边界的问题,保证MDCT与IMDCT完全重构,目前都采用50%混叠,相应窗函数必须满足对称性和完全

重构条件。

Long and short window、block switch

使用短窗可以去除预回声效应,出现非平稳信号时使用,使用长窗可以提高压缩比,稳态信号时使用,音频编码时大部分都是稳态信号,所以长窗使用较多,长短窗间形成block switch,从而有起始窗函数和结束窗函数对应。如下图

可用感知熵PE进行长短窗的判决,PE大用短窗,反之用长窗

预回声的产生原理,过大的冲击信号使同一区间的小信号的量化噪声过大,而向前掩蔽的效应时间较短,产生预回声

mp3的长短窗长度为(12,36),但其是分32子带,所以等效窗长为(384,1152)

AAC的长短窗长度为(256,2048)

ogg的长短窗长度可有多种配置方案,(512,512), (1024,1024), (512,1024), (256,2048) , (512,4096),大部分的编码都用(256,2048) 方案

FFT、MDCT

FFT、MDCT都是用来将时域信号转化为频域信号,FFT是在复数域上计算,而MDCT是在实数域上计算,而且此变换一般占用音频编解码的运算量百分比较大,所以基于它们的快速算法或电路设计都较多,所以在此不再叙述。目前发现大部分的主要音频编解码算法都使用了这些变换作为滤波器组的算法,而且使用算法相同。

FFT: X(k)=∑(x(n)*W N nk), (n=0 to N-1,k=0 to N-1, W N=e-j2π/N )

MDCT:

IMDCT:

Setero and couple原理和分析

根据声学研究的结论人类的听觉是低频段(<1400),相位差起主导作用,中频(1400-4000),幅度差和相位差共同起作用,高频段(>4000),幅度差起主导作用。

Stereo的原理是利用上结论,并两声道间的相关性和冗余来编码,因为在实际生活中两声道往往发出非常类似的声音,主要有MS stereo和Intensity stereo编码,都是利用声道之间的特性,进行压缩,这种处理也可以称为couple,如果不进行couple处理则成为dual channels mode。

MS stereo原理是利用两声道间较强的相关性进行,编码时令M=(L+R)/2,S=(L-R)/2,可认为一个声道保留幅度,一个声道保留“相位”。

Intensity stereo原理是利用人耳对声音的高频成分感知与频谱相位相关性小,主要靠其强度进行判知,故可对高频成分,左声道用来表示左右声道的强度之和,右声道设为0,同时保

存左右声道各子带的能量比,具体看如下公式

Mp3编码可选性的使用MS stereo和Intensity stereo

AAC与mp3相同

Ogg使用正方形极坐标映射算法(Polar stereo) 和类似Intensity stereo的技术,原理一样

量化原理和分析

通常简单的量化表示一个数按N bit进行线形量化,如PCM按16bit量化,即[-1,1] 之间的小数线形均匀的分成65536份,qstep=(1/2)15。此种量化每提高1bit,可提高SNR 6db左右,16bit量化的SNR=90db,CD音质即为16bit PCM,已基本满足人类的听觉需要,这也通常表示为无压缩的格式准则,而数据量为,按44.1k采样率2声道计算,44.1*16*2=1411.2kbps,经过音频编码后一般需要压缩到64kbps或128kbps,压缩比分别为22.05,11.025倍。量化的过程基本涵盖了音频编码的整体核心架构,接下来将详细讲解mp3、AAC、ogg、AC3量化编码的过程,对比分析。

mp3、AAC量化编码的过程

mp3和AAC量化编码的过程基本是一样,所以放在一起讲。使用非均匀量化,公式为:

量化的过程没有固定的最好办法,但总的流程是比较固定的。整体上分成三层循环,frame_loop,outer_loop,inner_loop,每层循环设定一定的跳出条件,如图

inner_loop负责量化并进行huffman编码,满足量化总bits小于可用bits,否则增加整体量化因子common_scalefac,重新量化;

outer_loop负责使每一子带的量化噪声小于掩蔽阈值,否则提高对应子带的saclefactor,重新进入inter_loop,量化噪声计算公式为

frame_loop是整体的音频帧循环。

量化的每层循环流程图如下

(frame_loop)

理想的情况是所有的量化子带量化噪声都在掩蔽阈值之下,且量化总bits小于可用的bits,但由于受软硬件资源的限制,需要在outer_loop设置循环的次数限制或较弱的跳出条件。同时outer_loop内可加入最优算法,即将每次的量化方案与最优方案进行比较,如更优,则将当前方案保存为最优方案,在outer_loop结束循环后,重新load出最优方案,作为最后的量化方案。同时实践中可以根据每阶段的数据分析,调整量化的实际计算过程和方案。

由此和心理声学模型一起形成的感知音频编码整体过程为

ogg量化编码的过程

ogg分floor 量化编码和residue量化编码两部分,与mp3/AAC不同,具体下见“OGG编码原理和过程详细分析”内:ogg量化编码的过程

AC3量化编码的过程

在此简单带过一下AC3的量化过程,因为它与前mp3/ogg两种都不同,见下量化整体框图

它是提取频谱的指数和尾数两部分分别进行量化,将指数部分作为频谱包络,并根据心理声学模型决定尾数部分量化编码的位分配信息,最后合并进行封装,与ogg分两部分量化编码有类似的地方,只是提取包络的方式不一样。

Huffman编码原理和分析

Huffman编码可以称为无损熵编码,熵即信息熵;

信息熵,1948年,由香农提出了“信息熵”(shāng) 的概念,解决了对信息的量化度量问题。香农指出,它的准确信息量H=-(p1*log2(p1)+p2*log2 (p2)+...+pN*log2 (pN)),其中p1,p2,...,pN 分别是其概率。香农把它称为“信息熵”(Entropy),一般用符号H 表示,单位是比特。变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。

实际中,由于每变量的出现概率往往不能准确获得,所以所需bits一般并不能理想达到熵的值。

Huffman编码也是根据每变量的概率来构建huffman tree,概率越大,code_len越短,最后构建的目标是total_len=code1_len*p1+ code2_len*p2+…+codeN_len*pN最小,pN是其出现概率。其码字的特点是任何一个码字都不会是另外一码字的前面的部分。如下图一种huffman tree的例子

上图例子:0—7即每码字对应的编码code_value,当然它可以映射为其他值,如(-3,-2,-1,0,1,2,3,4) 分别对应(0—7).

Huffman编码同时可以分为线性量化和向量量化两种,线性量化即每code_value只表示一个需要编码的量化值,而向量量化可表示多个需要编码的量化值,具体的个数是Huffman tree 的维数。

下面来看两简单的2维huffman code table,code_value=(x,y),code_len=hlen,code=hcode.

左边是4个code_value属于等概率时构建而成的tree,右边是4个不等概率构建而成的tree。#x y hlen hcod #x y hlen hcod

0 0 2 11 0 0 1 1

0 1 2 10 0 1 3 001

1 0

2 01 1 0 2 01

1 1

2 00 1 1

3 000

另huffman编码可以进行迭代编码,即由多个huffman trees来对一量化值编码。

mp3、ogg、AC3的编码策略

mp3的huffman编码策略

Mp3一帧分成2个颗粒,每颗粒576个量化值,对576个量化值分成3个区,大值区,小值区,0值区;小值区是不大于1的数,0值区是等于0的数;大值区使用32个huffman

trees,每2个量化值组成一向量编码,小值区使用2个huffman trees,每4个量化值组成一向量编码,0值区不需编码。

OGG的huffman编码策略

下见“OGG编码原理和过程详细分析”内:ogg的huffman编码策略

AC3的编码策略

没用huffman编码,直接设计组合打包算法,采用指数和尾数两部分编码,指数采用D15, D25, or D45映射编码策略;尾数也采用类似的group映射原理编码;

D15表示1个指数差被编码,exp diff=(-2,-1,0,1,2)分别映射为M=(0,1,2,3,4);

D25表示2个指数差被编码,但第2个与第一个相同,映射同D15;

D45表示4个指数差被编码,但第2-4个与第一个相同,映射同D15;

对所有模式,每3个Dx5策略的映射值(M1,M2 and M3)被组合一起编码成7bit code,公式为

Coded 7 bit Grouped V alue = (25*M1) + (5*M2) + M3 ;

每帧含6block,后面的block可以重用0block的部分量化值和信息,使1-5block的部分量化值和信息可以不编码。

其他技术原理简介

比特池技术、TNS、SBR、预测模型、增益控制

比特池技术

前面帧没用完的bits可以提供给后面帧使用,可以在信息量大的时候用多些bits,信息量少的时候用少些bits,从而在固定bps下灵活调控量化噪声的掩蔽,但它受bits cache的大小限制

TNS

TNS,即时域噪声整形(temporal noise shaping),其原理是时域和频域具有对偶性,时域信号较平稳时,频域信号变化较剧烈,而频域信号较平稳时,时域信号变化较剧烈。根据此原理,但时域信号变化较剧烈,利用预测算法预测平稳的频域信号,将原信号减去预测值,对差值进行下面的量化编码,将可提高压缩比。一般感知熵PE大于预设值时,进行TNS,TNS 在>1.5khz进行较好,目前定在>2.5khz,而算法预测使用levison-durbin recursion算法

SBR

SBR ,即spectral band reprication;1997,由coding technologies公司发明,利用高频和低频信号具有较强的相关性原理设计,只编码低频成份,高频成份有提取的参数和低频成份构造产生,后被加入mpeg4 standard 标准,mp3+ SBR =mp3pro,AAC+ SBR=AAC+

预测模型

Predition,用前两帧的信号预测当前帧的信号,二阶预测

增益控制

Gain conctrol,由PQF, gain detector, gain modifier三部分组成

OGG编码原理和过程详细分析

Ogg Vorbis的引入

Ogg Vorbis是由美国https://www.360docs.net/doc/6a14287760.html, 基金组织开发的一种类似于MP3等现有的通过有损压缩算法进行音频压缩的感知音频编解码方式。与MP3以及其他优秀音频压缩编码算法不同的是,这种格式是完全免费、开放源码且没有专利限制的。V orbis是这种音频压缩方式的名字,而Ogg则是一种为V orbis音频数据提供同步以及校验等操作的封装机制。该组织意图设计一个完全开放源码的多媒体系统供人们免费使用。

Ogg Vorbis的编码过程

同其他的高效宽带音频编解码一样,Ogg V orbis也属于感知编码的范畴。它出现的时间比较晚,可以借鉴之前出现的编码方法的所有成功之处,因而立足点比较高。与MP3相比,在相同码率下它能达到较高的声音质量,或者在相同回放音质的情况下它具有更低的码率。

Ogg V orbis的编解码流程如下Ogg编码框图1所示,

●首先对输入音频PCM信号加窗,进行稳态/瞬态分析,决定MDCT窗的长度,Ogg

的长短窗长度可有多种配置方案,(512,512), (1024,1024), (512,1024), (256,2048) ,

(512,4096),大部分的编码都用(256,2048) 方案;OGG长短窗只用一种窗函数,但与

AAC、mp3不同,公式为

y=sin(0.5 * π * sin2((x+.5)/n * π));

●然后将这些音频信号进行FFT和MDCT变换分析。两种变换得到的频谱系数被输

入到心理声学模型单元进行掩蔽曲线的计算,掩蔽曲线求出之后,再联合MDCT

系数求代表整个频谱包络的基底曲线;

●基底曲线求出之后,从MDCT系数中去掉频谱包络便得到被白化的残差频谱,相

对于MDCT系数来说,残差频谱的动态范围明显变小,从而可以降低编解码时的

量化误差。而且去掉基底曲线之后,剩余多声道的残差矢量会具有很大的相似性,这给之后采用声道耦合技术进一步降低冗余度提供了前提;

●去掉基底曲线的残差信号进行信道之间的耦合之后进行矢量量化,Ogg使用残差声

道交织和正方形极坐标映射(Polar stereo) 和类似Intensity stereo的技术,有效避开

mp3的joint setero专利;

●然后将量化之后的信息进行Huffman编码;

●最后将要传输的各种信息数据按照V orbis定义的包格式组装,形成V orbis压缩码

流;

●Ogg V orbis解码过程与编码过程相反,但是没有心理声学模型分析、比特分配以及

矢量量化等模块。

<-(Ogg编码框图1)

ogg心理声学模型

ogg心理声学模型的计算主要步骤

1.FFT+haning window

2.音调掩蔽曲线计算,根据FFT谱线找到所有单音信号后计算每单音的掩蔽,形成

总音调掩蔽曲线

3.MDCT+WINDOW

4.噪声掩蔽曲线计算,根据mdct的每谱线对其所在临界区间进行线性回归分析,求

出此点的噪声均值,所有点形成噪声平滑曲线,平滑曲线及噪声频谱偏移两曲线(预

设)可得到最终的噪声掩蔽曲线。线性回归方程:

5.取音调掩蔽曲线和噪音掩蔽曲线两者每谱线的最大者作为输出综合掩蔽曲线,提供

给floor计算,完成

6.<- (ogg心理声学模型流程框图)

ogg量化编码的过程

ogg量化编码整体流程如下,它与mp3的三层循环过程不一样,

主要分floor和residue两模块,

●floor以心理声学模型的输出综合掩蔽曲线为输入,对幅度db域[-140,0]db的谱线信号

均匀量化为1024级,然后进行分段线形回归,分段数根据采样率和量化等级决定,求出一定数目的回归点,作为输出控制基底曲线的趋势点postlist,对postlist进行线性插值得出全域的控制基底曲线,提供给residue module。

●Residue信号是由mdct谱线值除于控制基底曲线得出的商取整产生,再经过couple处

理后进行huffman编码。

●而它对量化噪声的控制和bitrate管理则通过调整综合掩蔽曲线来完成,产生16种掩蔽

曲线,分别进行上量化过程,同时产生16种量化方案,根据比特池来选择一种合适量化方案,作为最后输出。

●Floor的计算原理如下:

Ogg V orbis的频谱包络分析(floor)是整个编码过程中最具特色之处。从最初版本发布至今,它的基底函数推出了两种求取方法,分别称为基底类型0和基底类型1。V orbis基底类型0以线谱对LSP参数表示编码平滑的频谱包络曲线。这种方法计算复杂,已经逐渐被淘汰。V orbis基底类型1使用分段线段逼进的方法来表示编码频谱包络,并基于线性频率轴和对数幅度轴画出曲线。基底类型1的算法比较简单,而且具有较高的帧间稳定特性,所以现在发

行的V orbis版本都采用了这种方法。下面对这种方法做简单介绍(下面的例子是为了理解的方便而不是编解码真正采用的数值):假设基底函数的长度为128,从码本头包中得出的频率系数下标按顺序为:{0,16,32,48,64,80,96,112,128}。在编码时建立基底曲线的过程如下图2所示。首先将0与128点的绝对值连线,组成一条整体预测曲线,然后按照顺序进行内插,使用连线上的预测值和实际值相减的方法得出各个点的编码值(在V orbis中,为了最大限度的降低比特率,除了前后两个端点的Y值是用绝对值编码外,其余值都是相对于预测值的差值)。按照这个过程直到所选数据都处理完毕,这样比特流中数据部分的编码依次为{110,20,-5,-45,0,-25,-10,30,-10}。解码器工作时首先根据边缘的点预测中间内插值,然后再与解码出来的差值相加,重构基底曲线。

上面只是通过一个例子来说明基底类型1的编解码过程,实际的横轴取点并不是均匀的,编码器在低频部分所取的样点要多于高频部分。以采样率为44.1kHz的宽带音乐编码为例,码本头包中128点的短块使用的基底样点下标按照从低到高的顺序为{0,2,4,6,8,10,12,14,16,19,23,28,33,39,46,58,70,90,128}。

<-(floor计算图)ogg的huffman编码策略

ogg分floor 编码和residue编码,由于有多种huffman码书方案,根据编码的要求,选择码书方案,然后将编码所用方案的码书全放在编码的信息头内,供解码时用;

●floor 编码采用的都是线性huffman trees,对控制基底曲线的postlist进行编码;

●residue编码同时采用线性和向量huffman trees编码,且采用huffman迭代编码。

●residue编码的策略可看下图

此图内例子,是class_codeword使用一种线性码书,而partition内的8个量化值使用m级迭代huffman编码,每级编码使用一种向量码书,分A、B两组向量。

每partition内的向量group方式有三种mode:residue0,residue1,residue2 residue 0

Residue 0 and 1 differ only in the way the values within a residue partition are interleaved during partition encoding(visually treated as a black box--or cyan box or brown box--in the above figure). Residue encoding 0 interleaves VQ encoding according to the dimension of the codebook used to encode a partition in a specific pass. The dimension of the codebook need not be the same in multiple passes, however the partition size must be an even multiple of the codebook dimension. As an example, assume a partition vector of size eight, to be encoded by residue 0 using codebook sizes of 8, 4, 2 and 1:

original residue vector: [ 0 1 2 3 4 5 6 7 ]

codebook dimensions = 8 encoded as: [ 0 1 2 3 4 5 6 7 ]

codebook dimensions = 4 encoded as: [ 0 2 4 6 ], [ 1 3 5 7 ] codebook dimensions = 2 encoded as: [ 0 4 ],[ 1 5 ],[ 2 6 ],[ 3 7 ] codebook dimensions = 1 encoded as: [0],[1],[2],[3],[4],[5],[6],[7] It is worth mentioning at this point that no configurable value in the residue coding setup is restricted to a power of two.

residue 1

Residue 1 does not interleave VQ encoding. It represents partition vector scalars in order. As with

residue 0, however, partition length must be an integer multiple of the codebook dimension, although dimension may vary from pass to pass. As an example, assume a partition vector of size eight, to be encoded by residue 0 using codebook sizes of 8, 4, 2 and 1:

original residue vector: [ 0 1 2 3 4 5 6 7 ]

codebook dimensions = 8 encoded as: [ 0 1 2 3 4 5 6 7 ]

codebook dimensions = 4 encoded as: [ 0 1 2 3 ], [ 4 5 6 7 ] codebook dimensions = 2 encoded as: [ 0 1 ],[ 2 3 ],[ 4 5 ],[ 6 7 ] codebook dimensions = 1 encoded as: [0],[ 1 ],[2],[3],[4],[5],[6],[ 7] residue 2

Residue type two can be thought of as a variant of residue type 1. Rather than encoding multiple passed-in vectors as in residue type 1, the ch passed in vectors of length n are first interleaved and flattened into a single vector of length ch*n. Encoding then proceeds as in type 1. Decoding is as

in type 1 with decode interleave reversed. If operating on a single vector to begin with, residue type 1 and type 2 are equivalent.

主要音频格式编码对比分析

下面列出各格式的编码框图作为参考

Mp3

Mp3的编码框图如下

Ogg

PFC电路原理与分析

引言 追求高品质的电力供需,一直是全球各国所想要达到的目标,然而,大量的兴建电厂,并非解决问题的唯一途径,一方面提高电力供给的能量,一方面提高电气产品的功率因数(Power factor)或效率,才能有效解决问题。有很多电气产品,因其内部阻抗的特性,使得其功率因数非常低,为提高电气产品的功率因数,必须在电源输入端加装功率因数修正电路(Power factor correction circuit),但是加装电路势必增加制造成本,这些费用到最后一定会转嫁给消费者,因此厂商在节省成本的考量之下,通常会以低价为重而不愿意让客户多花这些环保金,大多数的消费者,也因为不了解功率因数修正电路的重要性,只以为兴建电厂才是解决电力不足问题的唯一方案,这是大多数发展中国家电力供应的一大问题所在。 功率因数的意义 电力公司经由输配电系统送至用户端的电力(市电)是电压100-110V/60Hz或200-240V/50Hz的交流电,而电气产品的负载阻抗有三种状况,包括电阻性、电容性、和电感性等,其中只有电阻性负载会消耗功率而产生光或热等能源转换,而容性或感性负载只会储存能量,并不会造成能量的消耗。在纯阻性负载状况下,其电压和电流是同相位的,而在电容性负载下,电流的相位是超前电压的,在电感性负载下电压又是超前电流相位的。这超前或滞后的相位角度直接影响了负载对能量的消耗和储存状况,因此定义了实功功率的计算公式: P=VICosθ θ为V和I和夹角,Cosθ的值介于0-1之间,此值直接影响了电流对负载作实功的状况,称之为功率因数(Power Factor,简称PF)。 为了满足消费者的需要,电力公司必须提供S=VI的功率,而消费者实际上只使用了P的功率值,有一部分能量做了虚功,消耗在无功功率上。PF值越大,则消耗的无功功率越小,电力公司需要提供的S值也越小,将可以少建很多电厂。 功率因数修正器的结构 功率因数修正器的主要作用是让电压与电流的相位相同且使负载近似于电阻性,因此在电路设计上有很多种方法。其中依使用元件来分类,可分为被动式和主动式功因修正器两种。被动式功因修正器在最好状况下PF值也只能达到70%,在严格的功因要求规范下并不适用。若要在全电压范围内(90V~265Vac)且轻重载情况下都能达到80%以上PF值,则主动式功因修正器是必要的选择。主动式功因修正器多为升压式电路结构(Boost Topology), 如图一所示,图二为电感作用波形,输入电压要求为90V~265Vac,在Vd点则为127V~375V直流电压,由升压电路把输出电压V o升到400V的直流,其工作过程如下:

电路原理讲解分析

电源电路 一、电源电路的功能和组成: 每个电子设备都有一个供给能量的电源电路。电源电路有整流电源、逆变电源和变频器三种。常见的家用电器中多数要用到直流电源。直流电源的最简单的供电方法是用电池。但电池有成本高、体积大、需要不时更换(蓄电池则要经常充电)的缺点,因此最经济可靠而又方便的是使用整流电源。 电子电路中的电源一般是低压直流电,所以要想从 220 伏市电变换成直流电,应该先把 220 伏交流变成低压交流电,再用整流电路变成脉动的直流电,最后用滤波电路滤除脉动直流电中的交流成分后才能得到直流电。有的电子设备对电源的质量要求很高,所以有时还需要再增加一个稳压电路。因此整流电源的组成一般有四大部分,见图 1 。其中变压电路其实就是一个铁芯变压器,需要介绍的只是后面三种单元电路。 二、整流电路 整流电路是利用半导体二极管的单向导电性能把交流电变成单向脉动直流电的电路。 ( 1 )半波整流 半波整流电路只需一个二极管,见图 2 ( a )。在交流电正半周时 VD 导通,负半周时 VD 截止,负载 R 上得到的是脉动的直流电

( 2 )全波整流 全波整流要用两个二极管,而且要求变压器有带中心抽头的两个圈数相同的次级线圈,见图 2 ( b )。负载 R L 上得到的是脉动的全波整流电流,输出电压比半波整流电路高。 ( 3 )全波桥式整流 用 4 个二极管组成的桥式整流电路可以使用只有单个次级线圈的变压器,见图2 ( c )。负载上的电流波形和输出电压值与全波整流电路相同。 ( 4 )倍压整流 用多个二极管和电容器可以获得较高的直流电压。图 2 ( d )是一个二倍压整流电路。当 U2 为负半周时 VD1 导通, C1 被充电, C1 上最高电压可接近1.4U2 ;当 U2 正半周时 VD2 导通, C1 上的电压和 U2 叠加在一起对 C2 充电,使 C2 上电压接近 2.8U2 ,是 C1 上电压的 2 倍,所以叫倍压整流电路。 三、滤波电路 整流后得到的是脉动直流电,如果加上滤波电路滤除脉动直流电中的交流成分,就可得到平滑的直流电。 ( 1 )电容滤波

mad资料

libmad音频解码库分析 2008-07-25 11:46 MAD(libmad)是一个开源的高精度MPEG音频解码库,支持MPEG-1标准。libmad提供24-bit的PCM输出,完全定点计算,非常适合在没有浮点支持的嵌入式硬件平台上使用。使用libmad提供的一系列API可以实现MP3文件的解码。 “mad.h”头文件定义了libmad的数据结构及API函数[15]。 表4 libmad中的主要数据结构 MAD通过回调函数机制来实现解码,每个回调函数会返回一个枚举类型mad_flow,通过mad_flow可以控制解码的过程。在未经处理的情况下,MAD一般输出32bit,以little endian格式存放在mad_fixed_t中的数据。但是大多数的声卡并不能支持输出高达32bit精度的数据,因而还必须对mad_fixed_t进行量化,圆滑处理以及抖动,使到采样信号降到16bit精度。MAD负责的只是解码的过程,它工作过程是:从外部获取输入,逐帧解码,在解码的过程中返回信息,然后得到解码结果。开发人员要手动设置输入输出。 编程实现解码的方法为:初始化mad_decoder,里面包含了指向输入、输出、滤波、错误和消息回调函数的指针。通过mad_decoder_init()实现初始化[16]。 struct mad_decoder decoder; struct my_playbuf playbuf; //设置数据缓冲区 mad_decoder_init(&decoder,&playbuf,input_func,header_func,/*filter*/0 , output_func, /*error*/ 0, /* message */ 0); 在这个初始化函数里面,回调输入函数指向了input_func,处理帧头信息的函数指向了header_func,而输出函数则为output_func。其它的滤波,错误和信息函数没有设置,置0。 接着,MAD进入了一个解码的循环过程:

音频的编解码

音频编码解码基本概念介绍 对数字音频信息的压缩主要是依据音频信息自身的相关性以及人耳对音频信息的听觉冗余度。音频信息在编码技术中通常分成两类来处理,分别是语音和音乐,各自采用的技术有差异。 语音编码技术又分为三类:波形编码、参数编码以及混合编码。 波形编码:波形编码是在时域上进行处理,力图使重建的语音波形保持原始语音信号的形状,它将语音信号作为一般的波形信号来处理,具有适应能力强、话音质量好等优点,缺点是压缩比偏低。该类编码的技术主要有非线性量化技术、时域自适应差分编码和量化技术。非线性量化技术利用语音信号小幅度出现的概率大而大幅度出现的概率小的特点,通过为小信号分配小的量化阶,为大信号分配大的量阶来减少总量化误差。我们最常用的G.711标准用的就是这个技术。自适应差分编码是利用过去的语音来预测当前的语音,只对它们的差进行编码,从而大大减少了编码数据的动态范围,节省了码率。自适应量化技术是根据量化数据的动态范围来动态调整量阶,使得量阶与量化数据相匹配。G.726标准中应用了这两项技术,G.722标准把语音分成高低两个子带,然后在每个子带中分别应用这两项技术。 参数编码:广泛应用于军事领域。利用语音信息产生的数学模型,提取语音信号的特征参量,并按照模型参数重构音频信号。它只能收敛到模型约束的最好质量上,力图使重建语音信号具有尽可能高的可懂性,而重建信号的波形与原始语音信号的波形相比可能会有相当大的差别。这种编码技术的优点是压缩比高,但重建音频信号的质量较差,自然度低,适用于窄带信道的语音通讯,如军事通讯、航空通讯等。美国的军方标准LPC-10,就是从语音信号中提取出来反射系数、增益、基音周期、清/浊音标志等参数进行编码的。MPEG-4标准中的HVXC声码器用的也是参数编码技术,当它在无声信号片段时,激励信号与在CELP时相似,都是通过一个码本索引和通过幅度信息描述;在发声信号片段时则应用了谐波综合,它是将基音和谐音的正弦振荡按照传输的基频进行综合。 混合编码:将上述两种编码方法结合起来,采用混合编码的方法,可以在较低的数码率上得到较高的音质。它的特点是它工作在非常低的比特率(4~16 kbps)。混合编码器采用合成分析技术。

AAC解码算法原理详解

AAC解码算法原理详解 原作者:龙帅 (loppp138@https://www.360docs.net/doc/6a14287760.html,) 此文章为便携式多媒体技术中心提供,未经站长授权,严禁转载,但欢迎链接到此地址。 本文详细介绍了符合ISO/IEC 13818-7(MPEG2 AAC audio codec) , ISO/IEC 14496-3(MPEG4 Audio Codec AAC Low Complexity)进行压缩的的AAC音频的解码算法。 1、程序系统结构 下面是AAC解码流程图: AAC解码流程图 在主控模块开始运行后,主控模块将AAC比特流的一部分放入输入缓冲区,通过查找同步字得到一帧的起始,找到后,根据ISO/IEC 13818-7所述的语法开始进行Noisless Decoding(无噪解码),无噪解码实际上就是哈夫曼解码,通过反量化(Dequantize)、联合立体声(Joint Stereo),知觉噪声替换(PNS),瞬时噪声整形(TNS),反离散余弦变换(IMDCT),频段复制(SBR)这几个模块之后,得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。

2. 主控模块 主控模块的主要任务是操作输入输出缓冲区,调用其它各模块协同工作。其中,输入输出缓冲区均由DSP控制模块提供接口。输出缓冲区中将存放的数据为解码出来的PCM数据,代表了声音的振幅。它由一块固定长度的缓冲区构成,通过调用DSP控制模块的接口函数,得到头指针,在完成输出缓冲区的填充后,调用中断处理输出至I2S接口所连接的音频ADC芯片(立体声音频DAC和DirectDrive 耳机放大器)输出模拟声音。 3. 同步及元素解码 同步及元素解码模块主要用于找出格式信息,并进行头信息解码,以及对元素信息进行解码。这些解码的结果用于后续的无噪解码和尺度因子解码模块。 AAC的音频文件格式有以下两种: ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。 ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。 AAC的ADIF格式见下图: 3.1 ADIF的组织结构 AAC的ADTS的一般格式见下图: 3.2 ADTS的组织结构 图中表示出了ADTS一帧的简明结构,其两边的空白矩形表示一帧前后的数据。ADIF和ADTS的header是不同的。它们分别如下所示:

ATX电源电路原理分析和维修教程整理

ATX电源结构简介 ATX电源电路结构较复杂,各部分电路不但在功能上相互配合、相互渗透,且各电路参数设置非常严格,稍有不当则电路不能正常工作。下面以市面上使用较多的银河、世纪之星ATX电源为例,讲述ATX电源的工作原理、使用与维修。其主电路整机原理图见图13-10,从图中可以看出,整个电路可以分成两大部分:一部分为从电源输入到开关变压器T3之前的电路(包括辅助电源的原边电路),该部分电路和交流220V电压直接相连,触及会受到电击,称为高压侧电路;另一部分为开关变压器T3以后的电路,不和交流220V直接相连,称为低压侧电路。二者通过C2、C3高压瓷片电容构成回路,以消除静电干扰。其原理方框图见图13-1,从图中可以看出整机电路由交流输入回路与整流滤波电路、推挽开关电路、辅助开关电源、PWM脉宽调制及推动电路、PS-ON控制电路、自动稳压与保护控制电路、多路直流稳压输出电路和PW-OK信号形成电路组成。弄清各部分电路的工作原理及相互关系对我们维修判断故障是很有用处的,下面简单介绍一下各组成部分的工作原理。 图13-1 主机电源方框原理图 1、交流输入、整流、滤波与开关电源电路

交流输入回路包括输入保护电路和抗干扰电路等。输入保护电路指交流输入回路中的过流、过压保护及限流电路;抗干扰电路有两方面的作用:一是指电脑电源对通过电网进入的干扰信号的抑制能力:二是指开关电源的振荡高次谐波进入电网对其它设备及显示器的干扰和对电脑本身的干扰。通常要求电脑对通过电网进入的干扰信号抑制能力要强,通过电网对其它电脑等设备的干扰要小。 推挽开关电路由Q1、Q2、C7及T3,组成推挽电路。推挽开关电路是ATX开关电源的主要部分,它把直流电压变换成高频交流电压,并且起着将输出部分与输入电网隔离的作用。推挽开关管是该部分电路的核心元件,受脉宽调制电路输送的信号作激励驱动信号,当脉宽调制电路因保护电路动作或因本身故障不工作时,推挽开关管因基级无驱动脉冲故不工作,电路处于关闭状态,这种工作方式称作他激工作方式。 本章介绍的ATX电源在电路结构上属于他激式脉宽调制型开关电源,220V市电经BD1~BD4整流和C5、C6滤波后产生+300V直流电压,同时C5、C6还与Q1、Q2、C8及T1原边绕组等组成所谓“半桥式”直流变换电路。当给Q1、Q2基极分别馈送相位相差180°的脉宽调制驱动脉冲时,Q1和Q2将轮流导通,T1副边各绕组将感应出脉冲电压,分别经整流滤波后,向电脑提供+3.3V、±5V、±12V 5组直流稳压电源。 THR为热敏电阻,冷阻大,热阻小,用于在电路刚启动时限制过大的冲击电流。D1、D2是Q1、Q2的反相击穿保护二极管,C9、C10为加速电容,D3、D4、R9、R10为C9、C10提供能量泄放回路,为Q1、Q2下一个周期饱和导通作好准备。主变换电路输出的各组电源,在主机未开启前均无输出。其单元电路原理如下图13.2所示:

NP1380视频、音频、图片处理扩展专用增强工具

文件下载地址 NP1380media.rar 点击进入115下载 测:在我机子(V1.5.7)十分正常,有问题请跟帖报告 通俗说明: 安装方法,下载上面的东西,解压,得到两个文件,全部放卡里,要放在根目录,然后安装那个ipk,完了。 然后看AVI视频就有特别的功能了 在扩展应用里有mpg123的播放器图标 在资源管理里看大图不会被缩小 正规说明: 声明: 1、最好结合Hack补丁使用,你实在不想安装Hack也行…… 2、此工具在V1.5.7版本的系统使用正常 3、此工具不会生成卸载、不能卸载、不准你卸载,安装后要想还原只能重新升级 4、安装此个后,不能再安装其他会修改文件关联的ipk,否则会完全失效

5、此工具不适合经常换卡的用户使用 6、此工具仅适合纯种NP1380使用!!!!!!! NP1300、NP1500、NP2150和切换成NP1380系统的机子都不可用不可用 特点:使用完全不需要自己输入命令,就这么双击文件打开即可 安装: 0、储存卡需保留至少100MB的空间用于存放文件,本地磁盘需保留至少2MB的空间用于存放文件 1、下载上面的压缩包 2、解压,得到NP1380media.ipk和media两个文件,其中media的大小为100MB 整 3、把这两个文件复制到卡的根目录 4、在机子安装那个ipk文件,然后此ipk文件可以删除,但media必须保留在卡的根目录 提示: 1、安装了Hack2.0+测试版的用户,用前,先删除本地磁盘的local文件夹再安装,安装好后会又有个local文件夹,不过体积减小了很多,大小不过2MB 2、安装后嫌因修正比例而导致视屏播放不全屏的人,执行 rm /.mplayer/config即可,但AVI视屏播放不会有改变 3、播放视频,不会那么快开始播放,耐心等几秒

mp3解码算法原理详解

MPEG1 Layer3 (MP3)解码算法原理详解 本文介绍了符合ISO/IEC 11172-3(MPEG 1 Audio codec Layer I, Layer II and Layer III audio specifications) 或 ISO/IEC 13818-3(BC Audio Codec)的音频编码原理。通过madlib解码库进行实现。 1、程序系统结构 mp3解码流程图 其中同步及差错检查包括了头解码模块 在主控模块开始运行后,主控模块将比特流的数据缓冲区交给同步及差错检查模块,此模块包含两个功能,即头信息解码及帧边信息解码,根据它们的信息进行尺度因子解码及哈夫曼解码,得出的结果经过逆量化,立体声解码,混淆缩减,IMDCT,频率反转,合成多相滤波这几个模块之后,得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。 2、主控模块

主控模块的主要任务是操作输入输出缓冲区,调用其它各模块协同工作。 其中,输入输出缓冲区均由DSP控制模块提供接口。 输入缓冲区中放的数据为原始mp3压缩数据流,DSP控制模块每次给出大于最大可能帧长度的一块缓冲区,这块缓冲区与上次解帧完后的数据(必然小于一帧)连接在一起,构成新的缓冲区。 输出缓冲区中将存放的数据为解码出来的PCM数据,代表了声音的振幅。它由一块固定长度的缓冲区构成,通过调用DSP控制模块的接口函数,得到头指针,在完成输出缓冲区的填充后,调用中断处理输出至I2S接口所连接的音频ADC芯片(立体声音频DAC和DirectDrive耳机放大器)输出模拟声音。 3、同步及差错检测 同步及差错检测模块主要用于找出数据帧在比特流中的位置,并对以此位置开始的帧头、CRC校验码及帧边信息进行解码,这些解码的结果用于后继的尺度因子解码模块和哈夫曼解码模块。Mpeg1 layer 3的流的主数据格式见下图: 主数据的组织结构图 其中granule0和granule1表示在一帧里面的粒度组1和粒度组2,channel0 和channel1表示在一个粒度组里面的两个通道,scalefactor为尺度因子quantized value为量化后的哈夫曼编码值,它分为big values大值区和count1 1值区 CRC校验:表达式为X16+X15+X2+1 3.1 帧同步 帧同步目的在于找出帧头在比特流中的位置,ISO 1172-3规定,MPEG1 的帧头为12比特的“1111 1111 1111”,且相邻的两个帧头隔有等间距的字节数,这个字节数可由下式算出: N= 144 * 比特率 / 采样率 如果这个式子的结果不是整数,那么就需要用到一个叫填充位的参数,表示间距为N +1。

pcb板电路原理图分模块解析

PCB板电路原理图分模块解析 前面介绍了电路图中的元器件的作用和符号。一张电路图通常有几十乃至几百个元器件,它们的连线纵横交叉,形式变化多端,初学者往往不知道该从什么地方开始,怎样才能读懂它。其实电子电路本身有很强的规律性,不管多复杂的电路,经过分析可以发现,它是由少数几个单元电路组成的。好象孩子们玩的积木,虽然只有十来种或二三十种块块,可是在孩子们手中却可以搭成几十乃至几百种平面图形或立体模型。同样道理,再复杂的电路,经过分析就可发现,它也是由少数几个单元电路组成的。因此初学者只要先熟悉常用的基本单元电路,再学会分析和分解电路的本领,看懂一般的电路图应该是不难的。 按单元电路的功能可以把它们分成若干类,每一类又有好多种,全部单元电路大概总有几百种。下面我们选最常用的基本单元电路来介绍。让我们从电源电路开始。 一、电源电路的功能和组成 每个电子设备都有一个供给能量的电源电路。电源电路有整流电源、逆变电源和变频器三种。常见的家用电器中多数要用到直流电源。直流电源的最简单的供电方法是用电池。但电池有成本高、体积大、需要不时更换(蓄电池则要经常充电)的缺点,因此最经济可靠而又方便的是使用整流电源。 电子电路中的电源一般是低压直流电,所以要想从220 伏市电变换成直流电,应该先把 220 伏交流变成低压交流电,再用整流电路变成脉动的直流电,最后用滤波电路滤除脉动直流电中的交流成分后才能得到直流电。有的电子设备对电源的质量要求很高,所以有时还需要再增加一个稳压电路。因此整流电源的组成一般有四大部分,见图1。其中变压电路其实就是一个铁芯变压器,需要介绍的只是后面三种单元电路。 二、整流电路 整流电路是利用半导体二极管的单向导电性能把交流电变成单向脉动直流电的电路。 ( 1 )半波整流 半波整流电路只需一个二极管,见图 2 ( a )。在交流电正半周时 VD 导通,负半周时VD 截止,负载 R 上得到的是脉动的直流电

电路原理图详解

电子电路图原理分析 电器修理、电路设计都是要通过分析电路原理图,了解电器的功能和工作原理,才能得心应手开展工作的。作为从事此项工作的同志,首先要有过硬的基本功,要能对有技术参数的电路原理图进行总体了解,能进行划分功能模块,找出信号流向,确定元件作用。若不知电路的作用,可先分析电路的输入和输出信号之间的关系。如信号变化规律及它们之间的关系、相位问题是同相位,或反相位。电路和组成形式,是放大电路,振荡电路,脉冲电路,还是解调电路。 要学会维修电器设备和设计电路,就必须熟练掌握各单元电路的原理。会划分功能块,能按照不同的功能把整机电路的元件进行分组,让每个功能块形成一个具体功能的元件组合,如基本放大电路,开关电路,波形变换电路等。 要掌握分析常用电路的几种方法,熟悉每种方法适合的电路类型和分析步骤。 1.交流等效电路分析法 首先画出交流等效电路,再分析电路的交流状态,即:电路有信号输入时,电路中各环节的电压和电流是否按输入信号的规律变化、是放大、振荡,还是限幅削波、整形、鉴相等。 2.直流等效电路分析法 画出直流等效电路图,分析电路的直流系统参数,搞清晶体管静态工作点和偏置性质,级间耦合方式等。分析有关元器件在电路中所处状态及起的作用。例如:三极管的工作状态,如饱和、放大、截止区,二极管处于导通或截止等。 3.频率特性分析法 主要看电路本身所具有的频率是否与它所处理信号的频谱相适应。粗略估算一下它的中心频率,上、下限频率和频带宽度等,例如:各种滤波、陷波、谐振、选频等电路。 4.时间常数分析法 主要分析由R、L、C及二极管组成的电路、性质。时间常数是反映储能元件上能量积累和消耗快慢的一个参数。若时间常数不同,尽管它的形式和接法相似,但所起的作用还是不同,常见的有耦合电路、微分电路、积分电路、退耦电路、峰值检波电路等。 最后,将实际电路与基本原理对照,根据元件在电路中的作用,按以上的方法一步步分析,就不难看懂。当然要真正融会贯通还需要坚持不懈地学习。 电子设备中有各种各样的图。能够说明它们工作原理的是电原理图,简称电路图。 电路图有两种 一种是说明模拟电子电路工作原理的。它用各种图形符号表示电阻器、电容器、开关、晶体管等实物,用线条把元器件和单元电路按工作原理的关系连接起来。这种图长期以来就一直被叫做电路图。 另一种是说明数字电子电路工作原理的。它用各种图形符号表示门、触发器和各种逻辑部件,用线条把它们按逻辑关系连接起来,它是用来说明各个逻辑单元之间的逻辑关系和整机的逻辑功能的。为了和模拟电路的电路图区别开来,就把这种图叫做逻辑电路图,简称逻辑图。 除了这两种图外,常用的还有方框图。它用一个框表示电路的一部分,它能简洁明了地说明电路各部分的关系和整机的工作原理。 一张电路图就好象是一篇文章,各种单元电路就好比是句子,而各种元器件就是组成句子的单词。所以要想看懂电路图,还得从认识单词——元器件开始。有关电阻器、电容器、电感线圈、晶体管等元器件的用途、类别、使用方法等内容可以点击本文相关文章下的各个链接,本文只把电路图中常出现的各种符号重述一遍,希望初学者熟悉它们,并记住不忘。 电阻器与电位器(什么是电位器) 符号详见图 1 所示,其中( a )表示一般的阻值固定的电阻器,( b )表示半可调或微调电阻器;( c )表示电位器;( d )表示带开关的电位器。电阻器的文字符号是“ R ”,电位器是“ RP ”,即在 R 的后面再加一个说明它有调节功能的字符“ P ”。

tcpmp播放器介绍。

TCPMP(The Core Pocket Media Player),这是一个应用于智能设备上的开源媒体播放软件。 TCPMP是一个功能强大开放式的开源多媒体播放器,播放器主要由核心框架模块(common工程)和解码器分离器插件组成。 TCPMP的插件非常多,联合几个最常用的插件(ffmpeg、splitter)来说明,其中interface 插件实现TCPMP的界面,由于他和媒体播放没有什么关系,这部分可以完全被替换掉,替换成自己的界面。 ffmpeg工程是系统主要的音视频解码模块,ffmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。ffmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,A VI、MPEG、OGG、Matroska、ASF等90多种解码。很多开源播放器都用到了ffmpeg。但是ffmpeg程序解码效率不是很高,系统仅仅使用了FFmpeg的部分解码功能。ffmpeg主目录下主要有libavcodec、libavformat和libavutil等子目录。其中libavcodec 用于存放各个encode/decode模块,libavformat用于存放muxer/demuxer模块,libavutil用于存放内存操作等常用模块。本系统的媒体文件分离器有单独的splitter模块完成所以不需要libavformat子目录。ffmpeg目录下libavcodec、libavutil保留子目录。 libmad工程用于MP3文件解码,该工程包含两个功能模块,一个负责解析MP3文件格式,包括MPEG1音频文件 (MP1,MP2,MP3,MPA),读取每一帧音频数据;另一个负责解码MPEG1音频数据,解码代码在libmad子目录中。 libmad是一个开源的高精度 MPEG1音频解码库,支持 MPEG-1 (Layer I, Layer II 和 LayerIII,也就是 MP3)。libmad提供 24-bit 的 PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用 libmad 提供的一系列 API,就可以非常简单地实现 MP3 数据解码工作。在 libmad 的源代码文件目录下的 mad.h 文件中,可以看到绝大部分该库的数据结构和 API 等。libmad是用的fixed-integer,通过整数模拟小数计算的,精度只能保证到小数点后第9位(大于0的最小值 0.00000000372529),虽然解码精度会有损失,但是极大提高了解码效率,特别是在嵌入式设备上也可以实现高码率MP3文件的解码。 splitter工程用于解析多种音视频文件格式。可以解析的文件格式包括:ASF媒体文件,视频文件 (A VI,DIVX),Windows波形文件 (W A V,RMP),MPEG电影文件 (MPEG,MPG,MPV),MPEG4文件 (MP4,3GP,M4A,M4B,K3G)。以上格式可以被解析但是数据编码不一定能正确解码,需要依赖系统的解码器。 common工程是核心模块,是一个开放的集数据输入、转换、音/视频解码、信号输出等功能为一体的完整的多媒体播放框架。这个框架自身不包含任何的Decode和Split功能,这些功能由插件实现,核心模块以一个树状结构管理所有的功能模块和插件模块,实现数据Render功能,对输入、转换、输出流程的控制,接受播放过程中的操作和对事件进行处理,同时也实现系统运行中经常使用的一些共用函数,比如解码过程中经常使用的逆离散余弦变换,内存操作,界面中需要使用的多语言字符处理等。common工程的主目录下主要有:blit、dyncode、overlay、pcm、softidct、win32、zlib等子目录。其中blit和overlay存放是视频信号渲染模块,pcm存放PCM音频信号转换模块,softidct存放逆离散余弦变换函数,win32存放内存操作等常用模块,dyncode这个目录的代码比较晦涩,存放的是程序运行是动态生成代码模块,针对不同的CPU指令集,PCM数据数据声道和采样率不同,视频渲染数据格式和色深等不同情况动态生成不同的优化代码(这段代码非常精彩,不能不让人佩服TCPMP 作者的高超水平)。核心模块有一个上下文对象context,该对象在初始化函数 bool_t Context_Init(……)中候创建了一个该对象实例。该对象实例记录管理各个功能模块,

AAC解码算法原理详解

A A C解码算法原理详解原作者:龙帅 此文章为提供,未经站长授权,严禁转载,但欢迎链接到此地址。 本文详细介绍了符合 ISO/IEC13818-7(MPEG2AACaudiocodec),ISO/IEC144 96-3(MPEG4AudioCodecAACLowComplexity)进行压缩的的AAC音频的解码算法。 1、程序系统结构 下面是AAC解码流程图: AAC解码流程图 ?在主控模块开始运行后,主控模块将AAC比特流的一部分放入输入缓冲区,通过查找同步字得到一帧的起始,找到后,根据ISO/IEC13818-7所述的语法开始进行NoislessDecoding(无噪解码),无噪解码实际上就是哈夫曼解码,通过反量化(Dequantize)、联合立体声(JointStereo),知觉噪声替换(PNS),瞬时噪声整形(TNS),反离散余弦变换(IMDCT),频段复制(SBR)这几个模块之后,得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。 2.主控模块 主控模块的主要任务是操作输入输出缓冲区,调用其它各模块协同工作。其中,输入输出缓冲区均由DSP控制模块提供接口。输出缓冲区中将存放的数据为解码出来的PCM数据,代表了声音的振幅。它由一块固定长度的缓冲区构成,通过调用DSP控制模块的接口函数,得到头指针,在完成输出缓冲区的填充后,调用中断处理输出至I2S接口所连接的音频ADC芯片(立体声音频DAC和DirectDrive 耳机放大器)输出模拟声音。 3.同步及元素解码 同步及元素解码模块主要用于找出格式信息,并进行头信息解码,以及对元素信

入门电路原理图分析

入门电路原理图分析 一、电子电路的意义电路图是人们为了研究和工程的需要,用约定的符号绘制的一种表示电路结构的图形。通过电路图可以知道实际电路的情况。这样,我们在分析电路时,就不必把实物翻来覆去地琢磨,而只要拿着一张图纸就可以了。在设计电路时,也可以从容地纸上或电脑上进行,确认完善后再进行实际安装,通过调试、改进,直至成功。我们更可以应用先进的计算机软件来进行电路的辅助设计,甚至进行虚拟的电路实验,大大提高工作效率。二、电子电路图的分类常遇到的电子电路图有原理图、方框图、装配图和印版图等。1、原理图 原理图就是用来体现电子电路的工作原理的一种电路图,又被叫做“电原理图”。这种图由于它直接体现了电子电路的结构和工作原理,所以一般用在设计、分析电路中。分析电路时,通过识别图纸上所画的各种电路元件符号以及它们之间的连接方式,就可以了解电路的实际工作情况。下图所示就是一个收音机电路的原理图。2、方框图(框图) 方框图是一种用方框和连线来表示电路工作原理和构成概 况的电路图。从根本上说,这也是一种原理图。不过在这种图纸中,除了方框和连线几乎没有别的符号了。它和上面的原理图主要的区别就在于原理图上详细地绘制了电路的全

部的元器件和它们连接方式,而方框图只是简单地将电路安装功能划分为几个部分,将每一个部分描绘成一个方框,在方框中加上简单的文字说明,在方框间用连线(有时用带箭头的连线)说明各个方框之间的关系。所以方框图只能用来体现电路的大致工作原理,而原理图除了详细地表明电路的工作原理外,还可以用来作为采集元件、制作电路的依据。下图所示的就是上述收音机电路的方框图。(三)装配图它是为了进行电路装配而采用的一种图纸,图上的符号往往是电路元件的实物的外形图。我们只要照着图上画的样子,依样画葫芦地把一些电路元器件连接起来就能够完成电路的装配。这种电路图一般是供初学者使用的。装配图根据装配模板的不同而各不一样,大多数作为电子产品的场合,用的都是下面要介绍的印刷线路板,所以印板图是装配图的主要形式。在初学电子知识时,为了能早一点接触电子技术,我们选用了螺孔板作为基本的安装模板,因此安装图也就变成另一种模式。如下图:(四)印板图印板图的全名是“印刷电路板图”或“印刷线路板图”,它和装配图其实属于同一类的电路图,都是供装配实际电路使用的。印刷电路板是在一块绝缘板上先覆上一层金属箔,再将电路不需要的金属箔腐蚀掉,剩下的部分金属箔作为电路元器件之间的连接线,然后将电路中的元器件安装在这块绝缘板上,利用板上剩余的金属箔作为元器件之间导电的连线,完成电路的连接。由于这种电路板的一面

基于晶心科技Andes平台的MP3移植

基于晶心科技Andes平台的MP3移植 晶心科技 (Andes)作为亚洲首家原创性32位微处理器IP与系统芯片开发平台的设计公司,面向32位市场推出了Andes Core N9,N10,N12三个系列低功耗高性价比的32位处理器软硬核IP。基于各系列处理器,晶心科技针对不同音频应用提供了多种解决方案。其中包括将多种音频格式的编、解码器(开源),例如MP3、AAC、WMA、G729等移植到Andes平台上。并且利用nds32(基于Andes Core)架构的优势和针对音频效能的扩展指令集,以及算法上的改进,对这些编解码器做了进一步的优化,使其不仅占用的空间较小而且具备了较高的运行性能。本文以MP3解码器为例,介绍如何将madplay移植到Andes平台,以及晶心科技基于N903A处理器提供的MP3解决方案。 1.MP3简介 MPEG-1 Audio Layer3(简称MP3)是一种有损音频编码方式,它利用掩蔽效应(一种心理声学模型),将脉冲编码调制(Pulse Code Modulation)音频数据中人耳听觉系统无法察觉的那部分数据去掉,使得MP3能够在音质丢失很小的情况下把音乐文件压缩到很小的程度(1:10 甚至1:12 的压缩率)。因为其体积小、音质高的特点,MP3已经成为当今最为流行的音频格式。madplay是目前使用较为广泛的一种MP3的解码器,下面将详细介绍如何使用Andes提供的AndeSight集成开发工具将madplay移植到Andes平台。 2.环境及软件介绍 2.1系统环境: Linux:Fedora 8。 2.2开发环境: AndeSight v1.4。 AndeSight是晶心科技提供的一种基于nds32架构开发嵌入式工程的图形化的集成开发环境。主要由AndeSight IDE, AndESLive和nds32工具集3个部分组成。 AndeSight IDE为工程师提供了各种友好的界面,包括对嵌入式工程做编辑,编译,运行,调试或者评测等等操作。 AndESLive提供了基于nds32架构的仿真器和一种图形化的虚拟SoC构建模型,它与AndeSight IDE相结合为用户提供了一个虚拟的硬件平台。这个虚拟评估平台提供Andes自行定义ISA的多组系列32位CPU IP以及各种外围设备IP,并且支持用户自定义IP模型。 AndESLive配合AndeSight IDE不仅使得SoC设计者能在计划初期就开始软件设计、侦错、最优化等工作,并对系统架构及功能进行检验,而且使硬件工程师和软件工程师具有一样的能力去制作和修改他们各自的系统模型,可以有效的控制NRE(NonRecurring Engineering)成本,让软件工程师在拿到硬件原型之前,即可以进行软件的开发和优化。 nds32工具集提供了一套在Andes平台上开发嵌入式应用程序所需要的标准工具,例如编译器、调试器、链接器等等。 2.3交叉编译器: nds32le-linux-gcc。

(完整)流媒体传输协议及音视频编解码技术

1.1音视频编解码技术 1.1.1 MPEG4 MPEG全称是Moving Pictures Experts Group,它是“动态图象专家组”的英文缩写,该专家组成立于1988年,致力于运动图像及其伴音的压缩编码标准化工作,原先他们打算开发MPEG1、MPEG2、MPEG3和MPEG4四个版本,以适用于不同带宽和数字影像质量的要求。 目前,MPEG1技术被广泛的应用于VCD,而MPEG2标准则用于广播电视和DVD等。MPEG3最初是为HDTV开发的编码和压缩标准,但由于MPEG2的出色性能表现,MPEG3只能是死于襁褓了。MPEG4于1999年初正式成为国际标准。它是一个适用于低传输速率应用的方案。与MPEG1和MPEG2相比,MPEG4更加注重多媒体系统的交互性和灵活性MPEG1、MPEG2技术当初制定时,它们定位的标准均为高层媒体表示与结构,但随着计算机软件及网络技术的快速发展,MPEG1、MPEG2技术的弊端就显示出来了:交互性及灵活性较低,压缩的多媒体文件体积过于庞大,难以实现网络的实时传播。而MPEG4技术的标准是对运动图像中的内容进行编码,其具体的编码对象就是图像中的音频和视频,术语称为“AV对象”,而连续的AV对象组合在一起又可以形成AV场景。因此,MPEG4标准就是围绕着AV对象的编码、存储、传输和组合而制定的,高效率地编码、组织、存储、传输AV 对象是MPEG4标准的基本内容。 在视频编码方面,MPEG4支持对自然和合成的视觉对象的编码。(合成的视觉对象包括2D、3D动画和人面部表情动画等)。在音频编码上,MPEG4可以在一组编码工具支持下,对语音、音乐等自然声音对象和具有回响、空间方位感的合成声音对象进行音频编码。 由于MPEG4只处理图像帧与帧之间有差异的元素,而舍弃相同的元素,因此大大减少了合成多媒体文件的体积。应用MPEG4技术的影音文件最显著特点就是压缩率高且成像清晰,一般来说,一小时的影像可以被压缩为350M左右的数据,而一部高清晰度的DVD电影, 可以压缩成两张甚至一张650M CD光碟来存储。对广大的“平民”计算机用户来说,这就意味着, 您不需要购置DVD-ROM就可以欣赏近似DVD质量的高品质影像。而且采用MPEG4编码技术的影片,对机器硬件配置的要求非常之低,300MHZ 以上CPU,64M的内存和一个8M显存的显卡就可以流畅的播放。在播放软件方面,它要求也非常宽松,你只需要安装一个500K左右的MPEG4 编码驱动后,用WINDOWS 自带的媒体播放器就可以流畅的播放了 AV对象(AVO,Audio Visual Object)是MPEG-4为支持基于内容编码而提出的重要概念。对象是指在一个场景中能够访问和操纵的实体,对象的划分可根据其独特的纹理、运动、形状、模型和高层语义为依据。在MPEG-4中所见的音视频已不再是过去MPEG-1、MPEG-2中图像帧的概念,而是一个个视听场景(AV场景),这些不同的AV场景由不同的AV对象组成。AV对象是听觉、视觉、或者视听内容的表示单元,其基本单位是原始AV对象,它可以是自然的或合成的声音、图像。原始AV对象具有高效编码、高效存储与传输以及可交互性的特性,它又可进一步组成复合AV对象。因此MPEG-4标准的基本内容就是对AV对象进行高效编码、组织、存储与传输。AV对象的提出,使多媒体通信具有高度交互及高效编码的能力,AV对象编码就是MPEG-4的核心编码技术。 MPEG-4不仅可提供高压缩率,同时也可实现更好的多媒体内容互动性及全方位的存取性,它采用开放的编码系统,可随时加入新的编码算法模块,同时也可根据不同应用需求现场配置解码器,以支持多种多媒体应用 1.1.2 H264 H.264是由ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)联合组建的联合视频组(JVT:joint video team)提出的一个新的数字视频编码标准,

AAC的ADTS格式及解码算法详解

AAC的ADTS格式及解码算法详解 本文详细介绍了符合ISO/IEC 13818-7(MPEG2 AAC audio codec) , ISO/IEC 14496-3(MPEG4 Audio Codec AAC Low Complexity)进行压缩的的AAC音频的解码算法。 1、程序系统结构 下面是AAC解码流程图: AAC解码流程图 在主控模块开始运行后,主控模块将AAC比特流的一部分放入输入缓冲区,通过查找同步字得到一帧的起始,找到后,根据ISO/IEC 13818-7所述的语法开始进行Noisless Decoding(无噪解码),无噪解码实际上就是哈夫曼解码,通过反量化(Dequantize)、联合立体声(Joint Stereo),知觉噪声替换(PNS),瞬时噪声整形(TNS),反离散余弦变换(IMDCT),频段复制(SBR)这几个模块之后,得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。 2. 主控模块 主控模块的主要任务是操作输入输出缓冲区,调用其它各模块协同工作。其中,输入输出缓冲区均由DSP控制模块提供接口。输出缓冲区中将存放的数据为解码出来的PCM数据,代表了声音的振幅。它由一块固定长度的缓冲区构成,通过调用DSP控制模块的接口函数,得到头指针,在完成输出缓冲区的填充后,调用中断处理输出至I2S接口所连接的音频ADC 芯片(立体声音频DAC和DirectDrive耳机放大器)输出模拟声音。 3. 同步及元素解码 同步及元素解码模块主要用于找出格式信息,并进行头信息解码,以及对元素信息进行解码。这些解码的结果用于后续的无噪解码和尺度因子解码模块。 AAC的音频文件格式有以下两种: ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。 ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。 AAC的ADIF格式见下图: 3.1 ADIF的组织结构 AAC的ADTS的一般格式见下图:

高频电路原理与分析

高频电路原理与分析期末复习资料 陈皓编 10级通信工程 2012年12月

1.单调谐放大电路中,以LC 并联谐振回路为负载,若谐振频率f 0 =10.7MH Z , C Σ= 50pF ,BW 0.7=150kH Z ,求回路的电感L 和Q e 。如将通频带展宽为300kH Z ,应在回路两端并接一个多大的电阻? 解:(1)求L 和Q e (H )= 4.43μH (2)电阻并联前回路的总电导为 47.1(μS) 电阻并联后的总电导为 94.2(μS) 因 故并接的电阻为 2.图示为波段内调谐用的并联振荡回路,可变电容 C 的变化范围为 12~260 pF ,Ct 为微调电容,要求此回路的调谐范围为 535~1605 kHz ,求回路电感L 和C t 的值,并要求C 的最大和最小值与波段的最低和最高频率对应。 题2图 12min 12max ,22(1210) 22(26010)3 3根据已知条件,可以得出: 回路总电容为因此可以得到以下方程组16051053510t t t C C C LC L C LC L C ππππ∑ --=+? ?== ??+?? ??== ??+?

3.在三级相同的单调谐放大器中,中心频率为465kH Z ,每个回路的Q e =40,试 问总的通频带等于多少?如果要使总的通频带为10kH Z ,则允许最大的Q e 为多少? 解:(1)总的通频带为 4650.51 5.928()40 e z e Q kH =≈?= (2)每个回路允许最大的Q e 为 4650.5123.710 e e Q =≈?= 4.图示为一电容抽头的并联振荡回路。谐振频率f 0 =1MHz ,C 1 =400 pf ,C 2= 100 pF 121212121232 260109 121082601091210260108 10198 1 253510260190.3175-12 6 1605 535 ()()10103149423435 t t t t C C C C pF L mH π-----?+==?+=?-??-= ?==??+?=≈

相关文档
最新文档