一种AAC音频编码的握手协议方法转让专利

申请号 : CN201010274509.7

文献号 : CN101930744B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 毛峡姜磊

申请人 : 北京航空航天大学

摘要 :

本发明一种AAC音频编码的握手协议方法,可概括为:语音信号经模数转换芯片(AD)采样后进入FPGA,被缓存在FPGA的先入先出的数据缓存器(FIFO)中,当FIFO1存储数据量大于AAC编码所需的一帧数据,将指示信号1设置为高,否则置为低;DSP若检测到指示信号1为低,则继续检测,若检测到指示信号1为高,则取走一帧数据,进行编码;编码后DSP检测FPGA端指示信号2(FIFO2是否达到半满),若为高,则向FPGA发送长帧,若为低,则发送短帧;通过FIFO缓存和长短帧机制保证AAC编码输出码流速率恒定。

权利要求 :

1.一种AAC音频编码的握手协议方法,其特征在于,包括下述几个步骤:

步骤1:

语音信号经模数转换芯片采集后,得到的待编码的脉冲编码调制码进入FPGA中,存储在FPGA内的先入先出数据缓存器中,当先入先出数据缓存器内存储的数据达到AAC编码所需的一帧数量,将该先入先出数据缓存器对应的指示信号置为高;若先入先出数据缓存器内数据数量小于AAC编码所需的一帧数量,对应的指示信号被置为低;

步骤2:

DSP检测FPGA内存储待编码的脉冲编码调制码的先入先出数据缓存器的指示信号,若FPGA内存储待编码的脉冲编码调制码的先入先出数据缓存器的指示信号为低,则继续检测该信号;若FPGA内存储待编码的脉冲编码调制码的先入先出数据缓存器的指示信号为高,从先入先出数据缓存器中取走一帧数据,然后DSP对该帧数据进行编码操作;

步骤3:

若FPGA内存储编码后数据的先入先出数据缓存器内数据量大于容量的一半,则将FPGA内存储编码后数据的先入先出数据缓存器的指示信号置为低;否则,将FPGA内存储编码后数据的先入先出数据缓存器的指示信号置为高;DSP检测FPGA内存储编码后数据的先入先出数据缓存器的指示信号,若检测到FPGA内存储编码后数据的先入先出数据缓存器的指示信号为高,则向FPGA发送长帧编码后数据,若检测到FPGA内存储编码后数据的先入先出数据缓存器的指示信号为低,则向FPGA发送短帧编码后数据;

步骤4:

FPGA将存储在先入先出数据缓存器中的编码后的数据以恒定速率发送出去,DSP继续检测FPGA内存储待编码的脉冲编码调制码先入先出数据缓存器的指示信号。

2.根据权利要求1所述方法,其中:模数转换芯片采用TI公司的PCM4204,采样频率为

44100Hz,工作在主模式,数据格式为I2S;FPGA采用Altera公司的Cyclone EP1C12Q240C8;

先入先出数据缓存器的深度为1024,宽度为32,存储数据为16位脉冲编码调制码;AAC编码所需一帧数据为1024个采样点,16位脉冲编码调制码。

3.根据权利要求1所述方法,其中:DSP采用TI公司的TMS320C6727,通过DSP的外部存储器接口从先入先出数据缓存器中读取数据。

4.根据权利要求1所述方法,其中:DSP通过EMIF口向先入先出数据缓存器中写入数据,FPGA中先入先出数据缓存器的深度为512,宽度为32位;长帧数据的长度为372字节,短帧数据的长度为360字节。

5.根据权利要求1所述方法,其中:FPGA发送编码后数据的速率恒定为128kbps。

说明书 :

一种AAC音频编码的握手协议方法

(一)技术领域:

[0001] 本发明涉及一种握手协议方法,尤其是一种AAC音频编码的握手协议方法。属于通信领域。(二)背景技术:
[0002] AAC(Advanced Audio Coding)标准完成于1997年,经BBC(British Broadcasting Corporation)和NHK(Japan Broadcasting Corporation)使用并测试表明其对低比特率的多声道编码能提供相当高的声音质量。在相同音质情况下,AAC压缩率比MP3高30%,并且在立体声128kbps下,可达到接近CD的音质。
[0003] 在AAC的实际应用中,通常对声音信号的采样率和编码后的码流速率有一定要求,而声音采样时钟和输出码流时钟可能是非同源的,输出码流速率恒定难以保证;且由于AAC编码的压缩率与输入有关,在输入声音信号变化的情况下,若无相应的调节机制,输出码流的速率恒定也难以保证。(三)发明内容:
[0004] 本发明的目的在于提出一种AAC音频编码的握手协议方法,以解决现有技术实际应用中在特定采样率下,要求输出码流保持速率恒定的问题。
[0005] 本发明的技术方案概括为:语音信号经模数转换芯片(AD)采样后进入FPGA,被缓存在FPGA的先入先出的数据缓存器(FIFO)中,当FIFO存储数据量大于AAC编码所需的一帧数量,将指示信号1设置为高,否则置为低;DSP若检测到指示信号1为低,则继续检测,若检测到指示信号1为高,则取走一帧数据,进行编码;编码后DSP检测FPGA端指示信号2(FPGA内存储编码后数据的FIFO是否达到半满),若为高,则向FPGA发送长帧,若为低,则向FPGA发送短帧,通过FIFO缓存和长短帧机制保证AAC编码输出码流速率恒定。
[0006] 本发明一种AAC音频编码的握手协议方法,其具体步骤如下:
[0007] 步骤1:
[0008] 语音信号经模数转换芯片采集后,得到的PCM编码进入FPGA并存储在FPGA内的FIFO中,当FIFO内存储的数据达到AAC编码所需一帧的数量,将该FIFO对应的指示信号置为高;若FIFO内数据数量小于AAC编码所需的一帧数量,对应的指示信号被置为低。
[0009] 步骤2:
[0010] DSP检测FPGA内存储待编码数据FIFO的指示信号1,指示信号1表征FPGA内存储编码后数据FIFO的数据数量,若该指示信号为低,则继续检测该信号;若该指示信号为高,从FIFO中取走一帧数据,然后DSP对该帧数据进行编码操作。
[0011] 步骤3:
[0012] 编码完成后,DSP检测FPGA的指示信号2,指示信号2表征FPGA内存储编码后数据FIFO的数据数量,若存储编码后数据FIFO内数据量大于FIFO容量的一半,则将指示信号2置为低;否则,将指示信号2置为高。DSP若检测到指示信号2为高,则向FPGA发送长帧数据,若检测到指示信号2为低,则向FPGA发送短帧数据。
[0013] 步骤4:
[0014] FPGA将存储在FIFO中的编码后的数据以恒定速率发送出去,DSP继续检测FPGA内存储待编码数据FIFO的指示信号。
[0015] 本发明优点及功效在于:通过对数据流进行缓存,并通过握手机制使用长短帧保证输出码流速率恒定,适用于AAC音频编码的要求。(四)附图说明:
[0016] 图1为本发明的硬件架构图。
[0017] 图2为本发明的DSP的握手流程图。
[0018] (五)具体实施方法:
[0019] 本发明的技术方案概括为:语音信号经模数转换芯片(AD)采样后进入FPGA,被缓存在FPGA的先入先出的数据缓存器(FIFO)中,当FIFO1存储数据量大于AAC编码所需的一帧数据,将指示信号1设置为高,否则置为低;DSP若检测到指示信号1为低,则继续检测,若检测到指示信号1为高,则取走一帧数据,进行编码;编码后,DSP检测FPGA端指示信号2(FIFO2是否达到半满),若为高,则向FPGA发送长帧,若为低,则发送短帧,通过FIFO缓存和长短帧机制保证AAC编码输出码流速率恒定。
[0020] 下面结合附图对本发明的技术方案作进一步的详细描述。主要步骤如下:
[0021] 步骤1:
[0022] 如图1所示,连接硬件设备。语音信号经AD采集后,得到的PCM(脉冲编码调制)编码进入FPGA并存储在FPGA内的FIFO1中。其中AD芯片采用TI公司的PCM4204,采样频率为44100Hz,工作在主模式,数据格式为I2S;FPGA采用Altera公司的CycloneEP1C12Q240C8;
FIFO的深度为1024,宽度为32,存储的数据为16位PCM编码。当FIFO内存储的数据达到AAC编码所需一帧数量,将该FIFO对应的指示信号1置为高;若FIFO内数据数量小于AAC编码所需一帧数量,对应的指示信号被置为低。其中,AAC编码所需一帧数据为1024个采样点,16位PCM编码。
[0023] 步骤2:
[0024] 如图2上半部分所示,DSP检测FPGA内存储待编码数据FIFO1对应的指示信号1,若该指示信号为低,则继续检测该信号;若该指示信号为高,从FIFO中取走一帧数据,然后DSP对该帧数据进行编码操作。DSP采用TI公司的TMS320C6727,通过EMIF口(DSP的外部存储器接口)从FIFO1中读取数据。
[0025] 步骤3:
[0026] 如图2下半部分所示,编码完成后,DSP检测FPGA的指示信号2,该信号表征FPGA内存储编码后数据FIFO2的数据数量,若FIFO2内数据量大于FIFO容量的一半,则该信号置为低;否则,该信号置为高。DSP若检测到指示信号2为高,则向FPGA发送长帧编码后数据,若检测到该指示信号为低,则向FPGA发送短帧编码后数据。其中FPGA中FIFO2的深度为512,宽度为32位;DSP通过EMIF口向FIFO2中写入数据;长帧数据长度为372字节,短帧数据长度为360字节。通过缓冲机制和长短帧机制,保证FIFO2内始终缓存一定数量的数据,FIFO2不会出现空或满的情况。
[0027] 步骤4:
[0028] FPGA将存储在FIFO2中的编码后的数据以恒定速率发送出去,DSP继续检测FPGA的指示信号1。其中FPGA发送编码后的数据的速率为128kbps。由于FIFO2中始终缓存一定数量的数据,不会出现空或满的情况,可保证输出码流的速率恒定。
[0029] 说明书附图中出现的英文缩写,其含义如下:
[0030] PCM:脉冲编码调制;
[0031] FIFO:先入先出的数据缓存器;
[0032] AD:模数转化芯片。