CN101968961A - 一种基于faac lc模式的多路音频实时编码软件设计方法 - Google Patents
一种基于faac lc模式的多路音频实时编码软件设计方法 Download PDFInfo
- Publication number
- CN101968961A CN101968961A CN2010102877344A CN201010287734A CN101968961A CN 101968961 A CN101968961 A CN 101968961A CN 2010102877344 A CN2010102877344 A CN 2010102877344A CN 201010287734 A CN201010287734 A CN 201010287734A CN 101968961 A CN101968961 A CN 101968961A
- Authority
- CN
- China
- Prior art keywords
- data
- channel
- buffer
- buffer area
- faac
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
Abstract
本发明提供了一种基于FAAC LC模式的多路音频实时编码软件设计方法。该软件设计方法主要包括:多路音频接收机制模块,包含多路接收传输缓冲区,其中每路接收传输缓冲区能够存储2帧未编码的PCM数据,能够防止接收数据溢出,同时保证AAC编码器正确接收多路音频数据;多路预存接收缓冲区,其中每路预存接收缓冲区用于存储该链路需要预存的3帧数据及当前编码数据;多路窗型判定预留缓冲区,其中每路预留缓冲区用于存储上一帧编码数据,利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行窗型判定;多路滤波器组预留缓冲区,其中每路预留缓冲区用于存储上一帧编码数据,利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行MDCT变换;多路音频发送机制模块,包含多路发送传输缓冲区,其中每路发送传输缓冲区存储1帧编码后的AAC码流,能够保证AAC编码器正确发送多路音频数据。
Description
技术领域
本发明涉及一种基于FAAC LC模式的多路音频实时编码软件设计方法,该软件设计方法可以使得FAAC编码器能够进行多路音频编码,属于通信领域。
背景技术
先进音频编码(Advanced Audio Coding,简称AAC)是在MP3基础上发展起来的新一代感知音频压缩编解码技术,该技术综合了多种主流音频编解码技术的优点,具有信号压缩比高,重建音质好,编解码过程高度模块化和声道配置灵活等特点。FAAC是目前最好的开源AAC编码器,其编码质量完全能和商业性质的编码器相媲美。
FAAC编码器支持单路64通道音频编码,不支持多路音频编码,但在实际应用中,经常需要AAC编码器能够处理来自不同传输链路的多路音频。
发明内容
为了实现FAAC支持多路音频编码,本发明提供了一种基于FAAC LC模式的多路音频实时编码软件设计方法。该软件设计方法主要包括:多路音频接收机制模块,包含多路接收传输缓冲区,其中每路接收传输缓冲区能够存储2帧未编码的PCM数据,能够防止接收数据溢出,同时保证AAC编码器正确接收多路音频数据;多路预存接收缓冲区,其中每路预存接收缓冲区用于存储该链路需要预存的3帧数据及当前编码数据;多路窗型判定预留缓冲区,其中每路预留缓冲区用于存储上一帧编码数据,利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行窗型判定;多路滤波器组预留缓冲区,其中每路预留缓冲区用于存储上一帧编码数据,利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行MDCT变换;多路音频发送机制模块,包含多路发送传输缓冲区,其中每路发送传输缓冲区存储1帧编码后的AAC码流,能够保证AAC编码器正确发送多路音频数据。具体步骤如下:
步骤一多路接收传输缓冲区主动地从多路数据链路中获取未编码的PCM数据,多路音 频接收机制模块负责将接收到的数据正确地存入对应的预存接收缓冲区;
步骤二依据准则将预存接收缓冲区切换为当前编码预存接收缓冲区;
步骤三利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行窗型判定;
步骤四将当前编码数据存入对应的窗型判定预留缓冲区,覆盖原有数据;
步骤五进行窗型切换,抑制预回声;
步骤六利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行MDCT;
步骤七将当前编码数据存入对应的滤波器组预留缓冲区,覆盖原有数据;
步骤八AAC LC模式可选模块及量化编码,生成AAC码流;
步骤九AAC码流存入对应的发送传输缓冲区,多路音频发送机制模块负责将AAC码流发送到对应的数据链路中。
其中,所述的步骤一中:当某路或某几路接收传输缓冲区的数据满一帧时,多路音频接收机制模块将数据存入对应的预存接收缓冲区。
其中,所述的步骤二中:准则指将多路预存接收缓冲区进行编号,依次将预存接收缓冲区切换为当前编码预存接收缓冲区,如果某预存接收缓冲区中的数据不满4帧或未得到更新,则此次跳过对该预存接收缓冲区的处理,继续处理下一个预存接收缓冲区。
其中,所述的步骤三中:FAAC采用基于信号各短块能量变化率和高频比变换率的窗型判定算法,需要预留上一帧的编码数据。
其中,所述的步骤四中:窗型判定预留缓冲区初始数据为全零。
其中,所述的步骤六中:为消除时域混叠,需要预留上一帧的编码数据。
其中,所述的步骤七中:滤波器组预留缓冲区初始数据为全零。
本发明的原理:在开源FAAC编码器的基础上,通过设置多路音频接收机制模块、多路预存接收缓冲区、多路窗型判定预留缓冲区、多路滤波器组预留缓冲区及多路音频发送机制模块来实现多路AAC编码。
本发明与现有技术相比的优点在于:
1、FAAC实现多路音频编码;
2、FAAC程序修改量小;
3、多路音频接收发送机制模块能够正确地接收、发送多路音频数据,鲁棒性高。
附图说明
图1是本发明提出的多路音频实时编码软件设计方法的整体流程图;
图2是本发明提出的多路音频接收机制流程图;
图3是本发明提出的多路接收传输缓冲区指定序号示意图;
图4是本发明图的当前编码预存接收缓冲区切换示意图;
图5是本发明图的窗型判定预留缓冲区切换示意图;
图6是本发明图的滤波器组预留缓冲区切换示意图;
图7是本发明提出的多路音频发送机制流程图。
具体实施方式
下面结合附图,对本发明的技术方案做进一步说明。
本发明提供了一种基于FAAC LC模式的多路音频实时编码软件设计方法。该软件设计方法主要包括:多路音频接收机制模块,包含多路接收传输缓冲区,其中每路接收传输缓冲区能够存储2帧未编码的PCM数据,能够防止接收数据溢出,同时保证AAC编码器正确接收多路音频数据;多路预存接收缓冲区,其中每路预存接收缓冲区用于存储该链路需要预存的3帧数据及当前编码数据;多路窗型判定预留缓冲区,其中每路预留缓冲区用于存储上一帧编码数据,利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行窗型判定;多路滤波器组预留缓冲区,其中每路预留缓冲区用于存储上一帧编码数据,利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行MDCT变换;多路音频发送机制模块,包含多路发送传输缓冲区,其中每路发送传输缓冲区存储1帧编码后的AAC码流,能够保证AAC编码器正确发送多路音频数据。
参见附图1,多路接收传输缓冲区接收来自不同传输链路中的多路未编码PCM数据(101);然后多路音频接收机制模块将接收到的PCM数据存入对应的预存接收缓冲区(102);接着根据chain(当前处理的链路)值使用指针对当前编码预存接收缓冲区进行切换(103);在进行窗型判定之前,先根据chain值使用指针对当前窗型判定预留缓冲区进行切换(104);之 后利用当前编码数据与当前链路窗型判定预留缓冲区中的数据进行窗型判定(105);切换窗型,达到抑制预回声的目的(106);根据chain值使用指针对当前滤波器组预留缓冲区进行切换(107);进而利用当前编码数据与当前链路滤波器组预留缓冲区中的数据进行MDCT(108);完成AAC可选模块及量化编码,生成AAC码流(109);最后AAC码流存入对应的发送传输缓冲区,多路音频发送机制模块负责将AAC码流发送到对应的数据链路中(110)。
101是本发明提出的多路音频接收机制模块,是多路音频实时编码软件设计方法的核心模块。参见附图2,对多路接收传输缓冲区进行编号及初始化(201),编号指依次指定接收传输缓冲区的序号(301),初始化指各接收传输缓冲区初始值全为零,且chain=1;之后各接收传输缓冲区接收数据,直至某路或某几路缓冲区中的数据满一帧(202);然后查询AAC编码器是否空闲(203);如果AAC编码器当前状态为忙,则返回到202,如果AAC编码器当前状态为空闲,则检测chain链路接收传输缓冲区(204);其数据是否满一帧(205);如不满一帧则chain++(206),并返回到204;如满一帧,则将chain链路传输缓冲区的数据存入对应的chain链路预存接收缓冲区。本发明的多路音频接收机制模块的核心思想是优先处理chain链路接收传输缓冲区,如chain链路接收传输缓冲区未准备就绪,则处理下一链路接收传输缓冲区,如此在突发状态下,能够避免因多路音频接收机制模块一直等待chain链路数据,进而造成不能及时处理其它链路数据的情况。
103中的当前编码预存接收缓冲区切换是通过指针的形式完成切换(401),105中当前窗型判定预留缓冲区的切换是通过指针的形式完成切换(501),108中当前滤波器组预留缓冲区的切换是通过指针的形式完成切换(601)。
110是本发明提出的多路音频发送机制模块,是多路音频实时编码软件设计方法的核心模块。参见附图7,对多路发送传输缓冲区进行编号及初始化(701),编号指依次指定发送传输缓冲区的序号,初始化指各发送传输缓冲区初始值全为零;之后多路音频发送机制模块检测AAC编码器是否完成编码(702);如未完成,则继续检测,直至完成,如完成,则将编码后的AAC码流从chain链路发送传输缓冲区发送至对应的数据传输链路中。
说明书附图中出现的英文缩写,其含义如下:
MDCT:改进型离散余弦变换;
chain:当前处理链路。
Claims (7)
1.一种基于FAAC LC模式的多路音频实时编码软件设计方法,其特征在于:该方法具体包括以下步骤:
(1)多路接收传输缓冲区主动地从多路数据链路中获取未编码的PCM数据,多路音频接收机制模块负责将接收到的数据正确地存入对应的预存接收缓冲区;
(2)依据准则将预存接收缓冲区切换为当前编码预存接收缓冲区;
(3)利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行窗型判定;
(4)将当前编码数据存入对应的窗型判定预留缓冲区,覆盖原有数据;
(5)进行窗型切换,抑制预回声;
(6)利用当前链路预留缓冲区中的上一帧编码数据和当前编码数据进行MDCT;
(7)将当前编码数据存入对应的滤波器组预留缓冲区,覆盖原有数据;
(8)AAC LC模式可选模块及量化编码,生成AAC码流;
(9)AAC码流存入对应的发送传输缓冲区,多路音频发送机制模块负责将AAC码流发送到对应的数据链路中。
2.根据权利要求1所述的一种基于FAAC LC模式的多路音频实时编码软件设计方法,其特征在于:所述的步骤(1)中:当某路或某几路接收传输缓冲区的数据满一帧时,多路音频接收机制模块将数据存入对应的预存接收缓冲区。
3.根据权利要求1所述的一种基于FAAC LC模式的多路音频实时编码软件设计方法,其特征在于:所述的步骤(2)中:准则指将多路预存接收缓冲区进行编号,依次将预存接收缓冲区切换为当前编码预存接收缓冲区,如果某预存接收缓冲区中的数据不满4帧或未得到更新,则此次跳过对该预存接收缓冲区的处理,继续处理下一个预存接收缓冲区。
4.根据权利要求1所述的一种基于FAAC LC模式的多路音频实时编码软件设计方法,其特征在于:所述的步骤(3)中:FAAC采用基于信号各短块能量变化率和高频比变换率的窗型判定算法,需要预留上一帧的编码数据。
5.根据权利要求1所述的一种基于FAAC LC模式的多路音频实时编码软件设计方法,其特征在于:所述的步骤(4)中:窗型判定预留缓冲区初始数据为全零。
6.根据权利要求1所述的一种基于FAAC LC模式的多路音频实时编码软件设计方法,其特征在于:所述的步骤(6)中:为消除时域混叠,需要预留上一帧的编码数据。
7.根据权利要求1所述的一种基于FAAC LC模式的多路音频实时编码软件设计方法,其特征在于:所述的步骤(7)中:滤波器组预留缓冲区初始数据为全零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102877344A CN101968961B (zh) | 2010-09-19 | 2010-09-19 | 一种基于faac lc模式的多路音频实时编码软件设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102877344A CN101968961B (zh) | 2010-09-19 | 2010-09-19 | 一种基于faac lc模式的多路音频实时编码软件设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101968961A true CN101968961A (zh) | 2011-02-09 |
CN101968961B CN101968961B (zh) | 2012-03-21 |
Family
ID=43548105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102877344A Expired - Fee Related CN101968961B (zh) | 2010-09-19 | 2010-09-19 | 一种基于faac lc模式的多路音频实时编码软件设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101968961B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1118196A (zh) * | 1993-11-29 | 1996-03-06 | 索尼公司 | 信号编码方法、信号编码装置、信号解码方法、信号解码装置和记录媒体 |
EP0841656A2 (en) * | 1996-10-23 | 1998-05-13 | Sony Corporation | Method and apparatus for speech and audio signal encoding |
CN1595393A (zh) * | 2003-12-22 | 2005-03-16 | 上海广电信息产业股份有限公司 | 实时音频编码器接口预处理软硬件系统及方法和用途 |
US6885992B2 (en) * | 2001-01-26 | 2005-04-26 | Cirrus Logic, Inc. | Efficient PCM buffer |
CN101231850A (zh) * | 2007-01-23 | 2008-07-30 | 华为技术有限公司 | 编解码方法及装置 |
-
2010
- 2010-09-19 CN CN2010102877344A patent/CN101968961B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1118196A (zh) * | 1993-11-29 | 1996-03-06 | 索尼公司 | 信号编码方法、信号编码装置、信号解码方法、信号解码装置和记录媒体 |
EP0841656A2 (en) * | 1996-10-23 | 1998-05-13 | Sony Corporation | Method and apparatus for speech and audio signal encoding |
US6885992B2 (en) * | 2001-01-26 | 2005-04-26 | Cirrus Logic, Inc. | Efficient PCM buffer |
CN1595393A (zh) * | 2003-12-22 | 2005-03-16 | 上海广电信息产业股份有限公司 | 实时音频编码器接口预处理软硬件系统及方法和用途 |
CN101231850A (zh) * | 2007-01-23 | 2008-07-30 | 华为技术有限公司 | 编解码方法及装置 |
Non-Patent Citations (1)
Title |
---|
《计算机与数字工程》 20060420 汪国有等 MPEG-4AAC实时音频编码器设计与实现研究 124-128 1-7 第33卷, 第08期 2 * |
Also Published As
Publication number | Publication date |
---|---|
CN101968961B (zh) | 2012-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101061404B1 (ko) | 가변 레이트로 오디오를 인코딩 및 디코딩하는 방법 | |
CN101395661B (zh) | 音频编码和解码的方法和设备 | |
CN101849258B (zh) | 用于在可缩放音频编解码器中编码/解码的方法和装置 | |
CN110706715B (zh) | 信号编码和解码的方法和设备 | |
CN103988255B (zh) | 管理抖动缓存器的方法和使用其的抖动缓存器 | |
CN100568344C (zh) | 改善音频信号编码效率的方法 | |
JP6204501B2 (ja) | 高周波帯域信号を予測するための方法、符号化デバイス、および復号デバイス | |
KR101019398B1 (ko) | 오디오 코딩 및 디코딩에서의 여기의 프로세싱 | |
CN103035248B (zh) | 音频信号编码方法和装置 | |
WO2004082288A1 (en) | Switching between coding schemes | |
CN105684078A (zh) | 对音频信号进行重采样以用于低延迟编码/解码 | |
CN103366755A (zh) | 对音频信号进行编码和解码的方法和设备 | |
CN102522092B (zh) | 一种基于g.711.1的语音带宽扩展的装置和方法 | |
CN103250206A (zh) | 用于比特流域中的编码音频帧的强度估计的装置及方法 | |
CN101366082B (zh) | 可变帧偏移编解码方法、编解码器及无线电通信设备 | |
CN102664015A (zh) | 一种基于g726编码的多路音频实时编码软硬件方案 | |
CN104616658A (zh) | 一种支持多种语音编码制式的回声抵消实现方法 | |
CN105321522A (zh) | 一种语音数据处理和传输的方法和装置 | |
CN104392725A (zh) | 多声道无损音频混合编解码方法及装置 | |
CN101968961B (zh) | 一种基于faac lc模式的多路音频实时编码软件设计方法 | |
CN102917141A (zh) | 一种评估语音质量的测试方法、装置及系统 | |
CN104023007A (zh) | 一种数据流的发送和接收方法及其终端和系统 | |
CN101968959A (zh) | 一种基于faad2 main模式的多路音频实时解码软件设计方法 | |
WO2010075777A1 (zh) | 信号编码、解码方法及装置、系统 | |
CN106228991A (zh) | 编解码方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120321 Termination date: 20120919 |