CN102842337A - 基于wifi的高保真音频传输方法 - Google Patents
基于wifi的高保真音频传输方法 Download PDFInfo
- Publication number
- CN102842337A CN102842337A CN201210182062XA CN201210182062A CN102842337A CN 102842337 A CN102842337 A CN 102842337A CN 201210182062X A CN201210182062X A CN 201210182062XA CN 201210182062 A CN201210182062 A CN 201210182062A CN 102842337 A CN102842337 A CN 102842337A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- frame
- audio transmission
- audio
- 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.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种基于WIFI的高保真音频传输方法,该方法通过基于WIFI的便携式音频传输装置接收和传输音频信号,该方法包括如下步骤:步骤1:音频传输装置上电复位,采用密匙与随机数3DES加密校验方式运行权限验证,步骤2:校验通过后会初始化相关硬件,根据配置信息WIFI通讯模块自动尝试连接无线接入点;同时,音频传输装置响应发送端的搜索消息,反馈本地信息给发送端建立连接;步骤3:建立连接后,音频传输装置会启动四类服务:接收服务、播放服务、交互服务和控制服务。本发明提供的基于WIFI的高保真音频传输方法,能够将高保真音频信号无损失地传输,便于实现移动终端或其它播放设备上输出高保真音频信号。
Description
技术领域
本发明涉及音响设备,尤其涉及一种通过WIFI进行高保真音频传输的方法。
背景技术
随着人们物质生活水平的不断提高,移动智能终端设备如:智能手机、笔记本电脑、平板电脑等已逐渐进入到每个家庭中,人们通过移动设备,可以体验上网、音乐、视频等娱乐。
而人们的娱乐,一个重要的构成部分是收听音乐。在收听音乐的过程中,上述移动智能终端设备虽可以利用来接收和播放音乐,满足人们对音乐的欣赏的要求,但是,不仅是音乐发烧友,越来越多的收听者,已不满足简单的音乐播放,他们更希望听到专业级高保真音效。因此,部分家庭购买专业级音响设备,可以在家中享受高品质音乐。
但是,对于普通消费者来说,一方面购买专业级音响设备,需要花费不小的开支;另一方面,这种专业级音响设备,通常体积比较大,不便于经常移动,给使用者带来一定的不变。
为此,亟需设计一种音频传输方法,以便于进行音频的高保真播放,为人们提供高质量的音频播放效果。
发明内容
本发明的首要目的在于提供一种基于WIFI的高保真音频传输方法,该方法能够将高保真音频信号无损失地传输,便于实现移动终端或其它播放设备上输出高保真音频信号。
本发明的另一目的在于提供一种基于WIFI的高保真音频传输方法,便于进行音频数据的转播,方便实用。
为达到上述目的,本发明是通过以下技术方案实现的。
一种基于WIFI的高保真音频传输方法,其特征在于该方法通过基于WIFI的便携式音频传输装置接收和传输音频信号,该音频传输装置包括有WIFI通讯模块、通信端口及串口、程序存储单元、RAM内存单元、音频解码模块及控制模块,该方法包括如下步骤:
步骤1:音频传输装置上电复位,采用密匙与随机数3DES(3DES是三重加密算法,或称为Triple DES)加密校验方式运行权限验证,验证通过则进入步骤S22,否则退出;
步骤2:校验通过后会初始化相关硬件,根据配置信息WIFI通讯模块自动尝试连接无线接入点;同时,音频传输装置响应发送端的搜索消息,反馈本地信息给发送端建立连接;
步骤3:建立连接后,音频传输装置会启动四类服务:接收服务、播放服务、交互服务和控制服务;
接收服务线程通过TCP方式缓存接收音频文件数据,传送给硬件解码模块,再将解码后音频数据传送给播放服务线程;播放服务线程再将音频数据输送到声卡中进行数模转换播放;同时控制服务线程监控本地控制信息,对相应的命令做处理;交互服务线程作为消息终端,接收发送端控制消息,解析处理。
上述的四类服务,除了接收服务外,播放服务、交互服务和控制服务是可以任选一种或多种进行实现的。
其中,在步骤3中,四类服务具体分为:
S31 TCP服务主线程:提供长连接服务,接收网络包,进行数据解码,再输送音频解码数据到播放子线程;
S32 播放子线程:负责音频输出,将传过来的音频解码数据传递给声卡播放;
S33 UDP服务子线程:提供消息接收服务,接收响应发送端,如Android手机端的所有控制消息;
S34 按键子线程:负责监控本地用户(音频传输装置)的按键动作,并对相关动作做处理;
S35 串口子线程:负责监控串口控制信息,并对接收信息做处理;
S36 心跳子线程:提供心跳功能,维护与发送端的心跳同步,监控连接状态;
各线程间通过信号量、互斥量进行同步和互斥,并行执行。
上述的解码过程中,解码以帧为单位进行,过程如下:
1)己编码数据流输入解码器,按规定的语义进行分解,恢复出各种信息,并对量化样值进行哈夫曼解码;
2)根据分解码流所得到的频带比例因子、总增益、窗口类型等信息,对哈夫曼解码后的量化值进行反量化处理;
3)对反量化结果进行立体声处理后,再经过变换域的计算,经过混叠处理、IMDCT、合成滤波处理就可以得到原始的音频信息了。
在进行MP3解码时,首先要检测数据流中的同步字以得到正确的帧信号,提取帧头信息,进而得到相应的解码参数,同时分离边信息和主数据。
更进一步,数据流同步及帧头、边信息的读取如下:
MP3数据流的同步以帧为单位,每一帧的帧头都包含有同步信息,这个同步信息是连续的12个“1”组成的同步字:“1111 1111 1111”。在进行解码时也是以帧为单位的,在数据流中搜索同步字,若搜索到一帧便开始解码。先是提取帧头信息,然后是边信息和主数据。 帧头信息中包含有采样率、比特率、填充位等主要信息。比特率和填充位信息用来确定每帧的帧长。在得到每帧的帧头信息之后,该帧的帧长由下式来确定:
length=(1440 * bitrates / sampfreqs)+padding _bit
其中bitrates代表比特率;sampfreqs代表采样率;padding_bit为填充位的值。紧跟在帧头信息之后的是边信息,边信息提供huffman解码时所需要的参数。
主数据的提取如下:
由于MPEG-1 Layer III标准中用到了数据池(bit reservoir)技术,所以当前帧的主数据不一定都在当前帧中。在解码过程中,必须结合main_data_end的值来确定主数据的位置。所以在解码器中需要开辟一个缓冲区来作为数据池的存储空间,由于main_data_end字段的长度为9位,因此缓冲区最长为2^9-1=511字节长。处理完当前帧时,把此帧中的缓冲数据存储到缓冲区中供后续帧使用。
主数据中包含的数据有缩放因子、huffman数据和附加数据。这些字段在主数据中都有固定的格式,应当对这些数据顺序提取。
优选地,反量化的过程如下:
反量化的目的是重建编码时经过MDCT变换后输出的频域样本值。反量化是基于前面步骤中所得到的huffman解码数据(记为Xi)、缩放因子信息和边信息。长窗中的数据用下面的公式来进行反量化(记反量化后的值为Yi):
而短窗中每粒度(gr)每声道(ch)的反量化公式为:
在上述两个公式中频谱值xi 的幅度首先提高到原值的4/3幂,用以补偿编码时的幅度衰减,之后再乘上符号位sign(Xi)。Global_gain变量是每声道中的全局量化步长;常数“210”是一个系统常数,用以保证合适的量化步长,同时也保证编码过程中不会出现全“1”而扰乱同步字;步长通过scalefac_scale来标识,若scalfac_scale=0则scalefac_ multiplier=0.5,否则scalefac_multiplier=1;Preflg变量和pretab变量只在长窗中有效;Preflag是高频预加重标志,Preflag=1 表示采用高频预加重,pretab[sfb]用来查表得出每个缩放带的预加重值;Scalefac_l和scalefac_s分别对应缩放因子解码中所得出的长短窗的缩放因子。
更进一步,反量化后,还需要对频谱值进行重排序。反量化过程中得出的频谱值不是按相同的顺序排列的。在编码的MDCT过程中,对于长窗产生的频谱值先按子带然后按频率排列;为了提高huffman编码效率,短窗中的数据被重新排序,按照子带、频率、窗的顺序排列。
然后进行立体声处理。立体声模式为:MS—立体声(MS-stereo)和强度立体声(intensity stereo),通过头标中的模式(mode)和模式扩展位(mode extension)来确定。
MS立体声模式:传送的是规格化的中间旁边声道Mi/Si,而不是左右声道Li/Ri。这时Li/Ri重建应使用下列公式:
其中值Mi在左声道中传送,值Si在右声道中传送。一般左右声道的值是很接近的,因此采用MS立体声模式后,只需要传送一个均值和一个小值,这样可以减少所传输的比特数。
强度立体声模式:在层m中,强度立体声不是像第I层和第II层那样通过使用一对比例因子来完成的,而是左声道传送缩放因子,右声道传送立体声位置is_pos[sfb]。解码时利用式如下两个公式解出左右声道信号:
及混叠重建处理。在编码的MDCT过程中为了得到更好的频域特性对每个子带进行了去混叠处理,因此为了得到正确的音频信号,在解码时必须进行子带的混叠重建。每个子带的混叠重建由8个蝶形运算组成。
然后再逆向离散余弦变换。经过混叠消除后的信号便可以进行IMDCT变换,IMDCT的变换公式为:
式中Xk表示经去混叠处理输出的频谱值,Xi 表示IMDCT变换输出的值,最终的输出值为子带样本。根据block_type 的值,Xi 还要进行不同的加窗运算。
Block_ type=0(正常窗):
Block_ type=1(起始窗):
Block type=3(结束窗):
Block type=2(短窗):
Block type12时,Xi 和iw直接相乘,结果记为Zi:
Block_type=2时,Xi 和Wi 相乘后要经过如下运算才能得到Zi,Yi 为中间变量:
上述计算的结果是每个子带的Zi。这些值再经过重叠运算得到新的样本值Si。
再频率反转和子带合成。频率反转是对IMDCT的子带输出值进行反相处理,用以补偿编码时为提高MDCT变换效率而进行的频率反转。子带合成是IMDCT变换后的一个通道中32个子带的样值,经过一系列运算还原出32个PCM数字音频信号的过程。子带合成过程是先将32个子带样值进行IMDCT变换,生成64个中间值,把这64个中间值转入到一个长为1024点的类似先进先出FIFO的缓存,再在这1024个值中抽取一半,构成一个512点的矢量,进行加窗运算,最后把加窗结果进行叠加生成32个时域输出。在子带合成中,通过IMDCT变换将32个等频带宽内的频域信号反变化成64个样值。
公式如下:
本发明与现有技术相比,有益效果在于:本发明提供的基于WIFI的高保真音频传输方法,能够将高保真音频信号无损失地传输,便于实现移动终端或其它播放设备上输出高保真音频信号。而且WIFI具有足够的带宽,便于音频数据快速、准确地传输。通过该方法,可以将音频数据快速、无损失地传输到移动终端、音箱、电视机、功放、立体声耳机等播放设备,便于人们通过各种智能设备接听到高保真的音频信号。
附图说明
图1为本发明实现音频传输方法总体流程图。
图2为本发明实现音频传输装置音频传输控制流程图。
图3为本发明实现的音频数据解码流程图。
图4为本发明实现的双声道中帧数据的结构图。
图5为本发明实现的混叠重建过程示意图。
图6为本发明实现的重叠运算的示意图。
图7为本发明实施的均衡滤波器结构框图。
图8为本发明实施的丢包补偿算法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明所实现的音频传输方法,首先要通过发送端基于WIFI发送音频信号,音频传输装置接收到音频信号后进行解析处理,完成音频无损传输,发送端配合音频传输装置进行工作,为音频传输装置提供音频信号,因此,如图1所示,发送端的控制方法如下。
步骤S11:开机初始化,通过广播搜索获取音频传输装置信息,根据反馈信息进行选取建立连接。
步骤S12:启动控制服务和传输服务;控制服务用于监控用户输入信息,对本地音频信号进行解码及音频传输装置播放做相应处理;传输服务将播放歌曲文件封装成网络包形式,通过WIFI传输到音频传输装置。
同时,发送端和音频传输装置还维护着心跳同步,保持双方在线响应,以便及时监测连接状态。
本发明实现的核心在于音频传输装置对音频的控制处理,总体的控制步骤如下。
步骤S21:音频传输装置上电复位,采用密匙与随机数3DES(3DES是三重加密算法,或称为Triple DES)加密校验方式运行权限验证,验证通过则进入步骤S22,否则退出。
步骤S22:校验通过后会初始化相关硬件,根据配置信息自动尝试连接无线接入点;同时,音频传输装置响应发送端的搜索消息,反馈本地信息给发送端建立连接,如音箱名字和网络地址。
步骤S23:建立连接后,音频传输装置会启动四类服务:接收服务、播放服务、交互服务和控制服务。
接收服务线程通过TCP方式缓存接收音频文件数据,传送给硬件解码模块,再将解码后音频数据传送给播放服务线程;播放服务线程再将音频数据输送到声卡中进行数模转换播放;同时控制服务线程监控本地控制信息,对相应的命令做处理;交互服务线程作为消息终端,接收发送端控制消息,解析处理;此外,音频传输装置也维持着心跳机制,以监测连接状态。
其中,上述的四类服务,出来接收服务外,播放服务、交互服务和控制服务是可以任选一种或多种进行实现的。
发射端包括有用户界面模块、播放控制模块(包括WIFI通讯模块)、数据编码压缩模块及心跳同步模块。用户界面模块负责与用户进行交互,读取用户操作,显示相关信息。软件启动后,首先读取保存的属性信息,恢复现场。在建立连接后,播放控制模块负责与音频传输装置进行消息通信,保持通话;数据编码压缩模块将数据打包音频文件封装成网络包形式进行传输;心跳同步模块维持着与音频传输装置的心跳同步,提供一种监控连接有效性的机制。在程序退出前,会先保存相关信息,以便下次启动进行恢复。发射端的结构通过现有技术即可实现,在此不再赘述。
发射端的数据编码压缩模块中,编码算法可分为时频变换(包括子带滤波器组和MDCT),心理声学模型,量化编码(包括比特和比特因子分配和哈夫曼编码)等三大功能模块。实现实时编码的关键在于这三个功能块,各部分计算都十分复杂。利用各种快速算法可大大减少算法实现的复杂程度,减少编码的延时。
对于编码算法,输入的PCM音频数据是按帧进行处理的,每1152个PCM样值划分为一帧,而每帧又划分为两节,即576样值/节。MP3压缩的实质属于有损压缩,实现压缩的理论基础是人耳听觉系统掩蔽效应,包括时域掩蔽效应和频域掩蔽效应,其中主要应用了频域掩蔽效应。为了更有效的应用频域掩蔽效应,需要对每节的576个PCM样值作时频变换:首先将PCM数据送入子带分析滤波器组,经子带滤波后均匀地划分成32个子带信号SB0-SB31(每子带18个样值),然后分别对各子带做MDCT,从而得到576个等间距的频域样值点x0-x575。经过时频变换而得到的频域样值需要根据所要求的模式进行声道模式处理,而经模式处理后的频域样值,就可以进行量化和编码了。所采用的量化方式是非均匀量化,量化过程处于两重迭代循环中,而且每循环一次都要对每个频域样值执行一次量化。采用哈夫曼编码对量化结果进行编码,虽然运算量大,但有利于利用信号的统计特性提高压缩率。
量化是在心理声学模型的控制下进行的。原始的PCM数据流分成两路,其中一路进入子带分析滤波器,另一路经适当延时后进入心理声学模型。
心理声学模型是对掩蔽效应的具体应用:它在对当前音频信号的频域特性进行分析的基础上,依据事先已建立起来的统计模型数据求出各个比例因子带的信号掩蔽比,并以此指导频域样值量化的进行,使得量化噪声尽可能地分布在不易察觉的频带上。
比特流打包是编码过程的最后一个环节,其任务是按照MP3标准所规定的码流格式,把帧头、纠错码、边信息、主数据、附加数据等相关信息组合成适用于解码的帧。
音频传输装置是本发明实现的核心内容,其具体功能流程如图2所示。
S21应用程序运行(上电复位)后,首先对运行权限进行校验,先本地产生一随机数,发送给外部加密芯片,两边结合各自密匙进行3DES加密,根据两个加密结果是否相等即可判断密匙是否一致,如一致,则校验通过,否则程序退出。
S22校验后,先初始化相关环境,然后根据本地网络配置信息尝试自动连接到WiFi热点。
S23最后初始化相关线程,启动相关服务。各线程及对应服务如下:
S231 TCP服务主线程:提供长连接服务,接收网络包,进行数据解码,再输送音频解码数据到播放子线程。
S232 播放子线程:负责音频输出,将传过来的音频解码数据传递给声卡播放。
S233 UDP服务子线程:提供消息接收服务,接收响应发送端,如Android手机端的所有控制消息。
S234 按键子线程:负责监控本地用户(音频传输装置)的按键动作,并对相关动作做处理。
S235 串口子线程:负责监控串口控制信息,并对接收信息做处理。
S236 心跳子线程:提供心跳功能,维护与发送端的心跳同步,监控连接状态。
各线程间通过信号量、互斥量进行同步和互斥,并行执行。
在S231步骤中,由于上述音频的编码算法是利用ISO/IEC11172-3 Layer III(MP3) 标准综合了ASPEC,MUSICAM,SB-ADPCM等编码方案的优点,考虑到编解码的复杂度和延时以及编码效率等因素,改进了心理声学模型,采用正交镜像滤波器组(QMF, Quadrature Mirror Filter)把音频信号划分成32个等宽子带,同时利用满足时域混叠消除(TDAC,Time Domain Abasing Cancellation)的离散余弦变换(MDCT)进行变换域编码。为了充分利用人耳的心理声学模型,以达到更好的压缩比和更高的音质,MP3在其解码和音频数据帧组织过程中采用了声道耦合技术、自适应比特分配技术、自适应窗切换技术、熵编码及变速率编码的比特缓冲技术。相对于层I 和层II而言,加大了计算复杂度,但获得更低的码率和更高的重建音质。此外,由于解码器是通用的,因此生成的数据并不是生产厂商特定的,具有更好的兼容性。MPEG音频编码中还可以编进为客户应用而特定设置的辅助信息。该信息的读取可以由解码器单独完成并且对于在保持标准和解码的兼容性的同时传送一些特殊的信息(如音量变化信息)是非常有用的。
如图3所示,解码以帧为单位进行,过程如下。
1)己编码数据流输入解码器,按规定的语义进行分解,恢复出各种信息,并对量化样值进行哈夫曼解码。
2)根据分解码流所得到的频带比例因子、总增益、窗口类型等信息,对哈夫曼解码后的量化值进行反量化处理。
3) 结合帧头的立体声信息,对反量化结果进行立体声处理后,再经过变换域的计算,经过混叠处理、IMDCT、合成滤波处理就可以得到原始的音频信息了。
其中,在IMDCT处理中,先由离散余弦变换((IMDCT)重建子带亚采样信号,再经合成子带滤波器恢复音频采样信号。
需要注意的是:在进行MP3解码时,首先要检测数据流中的同步字以得到正确的帧信号,提取帧头信息,进而得到相应的解码参数,同时分离边信息和主数据。边信息数据通过解码可得到哈夫曼解码信息和反量化信息,主数据就可以根据哈夫曼解码信息解码出量化前的数据,量化前数据再结合反量化信息就可以得到频域的数据流。结合帧头的立体声信息,对反量化结果进行立体声处理后,再经过变换域的计算,经过混叠处理、IMDCT、合成滤波处理就可以得到原始的音频信息了。
具体地说,数据流同步及帧头、边信息的读取如下。
MP3数据流的同步以帧为单位,每一帧的帧头都包含有同步信息,这个同步信息是连续的12个“1”组成的同步字:“1111 1111 1111”。在进行解码时也是以帧为单位的,在数据流中搜索同步字,若搜索到一帧便开始解码。先是提取帧头信息,然后是边信息和主数据。 帧头信息中包含有采样率、比特率、填充位等主要信息。比特率和填充位信息用来确定每帧的帧长。在得到每帧的帧头信息之后,该帧的帧长由下式来确定:
length=(1440 * bitrates / sampfreqs)+padding _bit
其中bitrates代表比特率;sampfreqs代表采样率;padding_bit为填充位的值。紧跟在帧头信息之后的是边信息,边信息提供huffman解码时所需要的参数。
主数据的提取如下。
由于MPEG-1 Layer III标准中用到了数据池(bit reservoir)技术,所以当前帧的主数据不一定都在当前帧中。在解码过程中,必须结合main_data_end的值来确定主数据的位置。所以在解码器中需要开辟一个缓冲区来作为数据池的存储空间,由于main_data_end字段的长度为9位,因此缓冲区最长为2^9-1=511字节长。处理完当前帧时,把此帧中的缓冲数据存储到缓冲区中供后续帧使用。
主数据中包含的数据有缩放因子、huffman数据和附加数据。这些字段在主数据中都有固定的格式,以双声道为例,如图4所示。在解码过程中,应当对这些数据顺序提取。Huffman解码输出的数据是经过重量化的频域样本值,和缩放因子结合就可以进行反量化处理。
反量化的过程如下。
反量化的目的是重建编码时经过MDCT变换后输出的频域样本值。反量化是基于前面步骤中所得到的huffman解码数据(记为Xi)、缩放因子信息和边信息。长窗中的数据用下面的公式来进行反量化(记反量化后的值为Yi):
而短窗中每粒度(gr)每声道(ch)的反量化公式为:
在上述两个公式中频谱值xi 的幅度首先提高到原值的4/3幂,用以补偿编码时的幅度衰减。之后再乘上符号位sign(Xi)。Global_gain变量是每声道中的全局量化步长。常数“210”是一个系统常数,用以保证合适的量化步长,同时也保证编码过程中不会出现全“1”而扰乱同步字。在编码器中缩放因子使用对数量化的形式,步长通过scalefac_scale来标识,若scalfac_scale=0则scalefac_ multiplier=0.5,否则scalefac_multiplier=1。Preflg变量和pretab变量只在长窗中有效。Preflag是高频预加重标志,Preflag=1 表示采用高频预加重,pretab[sfb]用来查表得出每个缩放带的预加重值。Scalefac_l和scalefac_s分别对应缩放因子解码中所得出的长短窗的缩放因子。当运用短窗时,subblock_gain变量对应子带中更细的量化。
反量化后,还需要对频谱值进行重排序。反量化过程中得出的频谱值不是按相同的顺序排列的。在编码的MDCT过程中,对于长窗产生的频谱值先按子带然后按频率排列;而对于短窗,产生的频谱值是按子带、窗、频率的顺序排列的。为了提高huffman编码效率,短窗中的数据被重新排序,按照子带、频率、窗的顺序排列。在解码时,重排序过程就是将短窗中的频谱值重新排列。
然后进行立体声处理。本发明所实现的音频传输装置,除了支持简单的单声道和立体声(双声道)之外,还支持更为复杂的联合立体声模式:MS—立体声(MS-stereo)和强度立体声(intensity stereo),通过头标中的模式(mode)和模式扩展位(mode extension)来确定。
MS立体声模式:传送的是规格化的中间旁边声道Mi/Si,而不是左右声道Li/Ri。这时Li/Ri重建应使用下列公式:
其中值Mi在左声道中传送,值Si在右声道中传送。一般左右声道的值是很接近的,因此采用MS立体声模式后,只需要传送一个均值和一个小值,这样可以减少所传输的比特数。
强度立体声模式:在层m中,强度立体声不是像第I层和第II层那样通过使用一对比例因子来完成的,而是左声道传送缩放因子,右声道传送立体声位置is_pos[sfb]。解码时利用式如下两个公式解出左右声道信号:
及混叠重建。在编码的MDCT过程中为了得到更好的频域特性对每个子带进行了去混叠处理,因此为了得到正确的音频信号,在解码时必须进行子带的混叠重建。每个子带的混叠重建由8个蝶形运算组成,如图5所示。
逆向离散余弦变换。经过混叠消除后的信号便可以进行IMDCT变换。IMDCT的变换公式为:
式中Xk表示经去混叠处理输出的频谱值,Xi 表示IMDCT变换输出的值,最终的输出值为子带样本。根据block_type 的值,Xi 还要进行不同的加窗运算。
Block_ type=0(正常窗):
Block_ type=1(起始窗):
Block type=3(结束窗):
Block type=2(短窗):
Block type12时,Xi 和iw直接相乘,结果记为Zi:
Block_type=2时,Xi 和Wi 相乘后要经过如下运算才能得到Zi,Yi 为中间变量:
上述计算的结果是每个子带的Zi。这些值再经过重叠运算得到新的样本值Si。重叠运算如图6所示。
及频率反转和子带合成。频率反转是对IMDCT的子带输出值进行反相处理,用以补偿编码时为提高MDCT变换效率而进行的频率反转。子带合成是IMDCT变换后的一个通道中32个子带的样值,经过一系列运算还原出32个PCM数字音频信号的过程。子带合成过程是先将32个子带样值进行IMDCT变换,生成64个中间值,把这64个中间值转入到一个长为1024点的类似先进先出FIFO的缓存,再在这1024个值中抽取一半,构成一个512点的矢量,进行加窗运算,最后把加窗结果进行叠加生成32个时域输出。在子带合成滤波器中,通过IMDCT变换将32个等频带宽内的频域信号反变化成64个样值。
公式如下:
为了保证整个音频数据的高保真性,通常还需要对音频数据进行后处理,后处理包括有防混叠滤波、均衡滤波及丢包补偿几个方面。
防混叠滤波器。在任何一个量化系统中,防混叠滤波器可以使被采样的信号从无限带宽变为有限带宽,并将不需要的信号从量化系统中消除,从而防止信号频率在采样频率附近发生混叠。随着转换系统的采样频率增加,过采样技术可以达到降低滤波器抑制频率衰减的技术要求.在本发明的实施中我们采用4倍过采样技术,在A/D转换之前使用一个6阶防混叠滤波器;在D/A转换器之后采用3阶滤波器,达到防混叠的技术要求,提高系统性能。
均衡滤波。音频均衡器作为高品质音响设备不可或缺的关键附属调节器,在音效调整修饰方面起着至关重要的作用。一般音频均衡器有数字和模拟两种实现方法,模拟方法用有源和无源滤波器组实现,受器件温度等特性的影响,难以达到较高的可靠性和一致性,且成本较高。数字实现方法采用数字滤波器,具有较高的灵活性和可靠性。常用的数字滤波器有IIR和FIR两种。IIR滤波器结构简单,所需的存储空间小,但其相位是非线性;FIR滤波器是线性相位滤波器,这对高品质音效处理是必要的。本方案中我们采用1024阶的FIR均衡滤波器实现数字均衡滤波,通过系数的重载实现多种频率响应的均衡特性。具体实现结构如图7所示。
输入序列以及滤波系数分别存储在缓存阵列中,在时钟同步下由控制模块通过生成相应的读写地址及使能信号,使其按照一定次序输出到乘累加模块进行运算,并输出最终结果。系数可通过外部输入重载,以实现不同的均衡特性。
丢包补偿算法。音频数字信号经过编码器转换成编码码流,并按照网络传输要求分割成组(包),然后通过网络传输接口进入WiFi无线网络。如果数据在无线网络中正常传输,则收端的网络接口将接收到全部数据包;这些数据包从音频传输装置的网络接口出来后被重新拼接成编码码流进入解码器,解码器利用接收到的数据在输出端重建出声音的离散数字信号,重建信号最终经过数模转换和电声转化,就能被人耳感知。但在实际过程中由于存在分组丢失现象,某些分组在传输中丢失,那么与此相对应的信号波形就不能直接由解码器重建出来,这样整个重建的信号波形中就会有许多“缺口”(gap),使音频传输装置重建的语音信号质量受到损害。另外由于分组交换网络状况的时变性以及终端软硬件的处理延迟,随机延迟和丢包不可避免,因此导致收端音频质量的大幅度下降,为了实现高保真音质必须在收端采取合适的丢包补偿技术,使音频质量损伤最小化,实现音频信号高保真传输。
丢包补偿就是利用所有可得到的信息,对丢失帧进行估计,以便产生的输出音频和前后帧尽可能平滑,改善音频质量。图8为丢包补偿算法流程。
图中,当前帧表示前瞻帧,用于帮助判断丢失帧情况,前帧表示当前应输出的解码音频流,上前帧表示应输出解码音频流的上一帧。错误隐藏结构体保存备份用于丢包补偿的信息。若前瞻帧为好帧,则将前瞻帧保存到错误隐藏结构体中,而将错误隐藏结构体中的帧信息交换出来。对前帧为好帧的情况,这意味着错误隐藏结构体中的帧信息即为前帧帧信息,可以直接经合成滤波器完成该帧的音频流解码;而对前帧为坏帧的情况,就必须进行丢包补偿,进一步判断上前帧是否为好帧,若是,那么前帧MDCT谱系数可以通过当前帧和上前帧进行合理估计获得;若不是,那么意味着至少存在两帧丢失,那么通过错误隐藏结构中保存的最后好帧信息,对前帧丢失信息进行估计。若前瞻帧为坏帧,则将错误隐藏结构体的帧信息复制到前帧(输出帧)信息中,而保持错误隐藏结构体中的信息不变。这其实意味着前帧(输出帧)必须通过最后的好帧信息进行恢复。同样接着判断前帧是否为好帧,如果是,则意味着从错误隐藏结构体中恢复出来的帧信息即为前帧信息,可以直接经合成滤波器组进行解码,否则,由于前瞻帧为坏帧,无法通过前瞻帧和上前帧进行MDCT谱系数进行估计,因此直接采用最后的好帧通过合适的修正方法对丢失帧MDCT谱系数进行估计。根据当前解码器的状态,对经上述过程恢复出的MDCT系数,做某种调整修正,即完成对输出音频帧的MDCT域系数恢复,然后通过合成滤波器组完成丢失帧的解码。最后,更新错误隐藏结构体的信息,以便下帧解码。
丢包补偿利用所有可得到的信息,通过对丢失帧的估计,使输出音频和前后帧尽可能平滑,改善音频质量。
总之,通过本发明可以通过WIFI将音频数据进行高保真地传输,使移动终端,例如手机或其它播放设备上能够输出高保真音频信号,便于人们随时随地欣赏高品质的音频信号。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种基于WIFI的高保真音频传输方法,其特征在于该方法通过基于WIFI的便携式音频传输装置接收和传输音频信号,该音频传输装置包括有WIFI通讯模块、通信端口及串口、程序存储单元、RAM内存单元、音频解码模块及控制模块,该方法包括如下步骤:
步骤1:音频传输装置上电复位,采用密匙与随机数3DES(3DES是三重加密算法,或称为Triple DES)加密校验方式运行权限验证,验证通过则进入步骤S22,否则退出;
步骤2:校验通过后会初始化相关硬件,根据配置信息WIFI通讯模块自动尝试连接无线接入点;同时,音频传输装置响应发送端的搜索消息,反馈本地信息给发送端建立连接;
步骤3:建立连接后,音频传输装置会启动四类服务:接收服务、播放服务、交互服务和控制服务;
接收服务线程通过TCP方式缓存接收音频文件数据,传送给硬件解码模块,再将解码后音频数据传送给播放服务线程;播放服务线程再将音频数据输送到声卡中进行数模转换播放;同时控制服务线程监控本地控制信息,对相应的命令做处理;交互服务线程作为消息终端,接收发送端控制消息,解析处理。
2.如权利要求1所述的基于WIFI的高保真音频传输方法,其特征在于其中,在步骤3中,四类服务具体分为:
S31 TCP服务主线程:提供长连接服务,接收网络包,进行数据解码,再输送音频解码数据到播放子线程;
S32 播放子线程:负责音频输出,将传过来的音频解码数据传递给声卡播放;
S33 UDP服务子线程:提供消息接收服务,接收响应发送端,如Android手机端的所有控制消息;
S34 按键子线程:负责监控本地用户(音频传输装置)的按键动作,并对相关动作做处理;
S35 串口子线程:负责监控串口控制信息,并对接收信息做处理;
S36 心跳子线程:提供心跳功能,维护与发送端的心跳同步,监控连接状态;
各线程间通过信号量、互斥量进行同步和互斥,并行执行。
3.如权利要求2所述的基于WIFI的高保真音频传输方法,其特征在于上述的解码过程中,解码以帧为单位进行,过程如下:
1)己编码数据流输入解码器,按规定的语义进行分解,恢复出各种信息,并对量化样值进行哈夫曼解码;
2)根据分解码流所得到的频带比例因子、总增益、窗口类型信息,对哈夫曼解码后的量化值进行反量化处理;
3)对反量化结果进行立体声处理后,再经过变换域的计算,经过混叠处理、IMDCT就可以得到原始的音频信息了。
4.如权利要求3所述的基于WIFI的高保真音频传输方法,其特征在于在进行MP3解码时,首先要检测数据流中的同步字以得到正确的帧信号,提取帧头信息,进而得到相应的解码参数,同时分离边信息和主数据。
5.如权利要求4所述的基于WIFI的高保真音频传输方法,其特征在于数据流同步及帧头、边信息的读取如下:
MP3数据流的同步以帧为单位,每一帧的帧头都包含有同步信息,这个同步信息是连续的12个“1”组成的同步字:“1111 1111 1111”,在进行解码时也是以帧为单位的,在数据流中搜索同步字,若搜索到一帧便开始解码;先是提取帧头信息,然后是边信息和主数据; 帧头信息中包含有采样率、比特率、填充位,比特率和填充位信息用来确定每帧的帧长每帧的帧长由下式来确定:
length=(1440 * bitrates / sampfreqs)+padding _bit
其中bitrates代表比特率;sampfreqs代表采样率;padding_bit为填充位的值,紧跟在帧头信息之后的是边信息,边信息提供huffman解码时所需要的参数;
主数据的提取如下:
在解码器中需要开辟一个缓冲区来作为数据池的存储空间,由于main_data_end字段的长度为9位,因此缓冲区最长为2^9-1=511字节长,处理完当前帧时,把此帧中的缓冲数据存储到缓冲区中供后续帧使用;
主数据中包含的数据有缩放因子、huffman数据和附加数据,这些字段在主数据中都有固定的格式,应当对上述的数据顺序提取。
6.如权利要求3所述的基于WIFI的高保真音频传输方法,其特征在于所述的反量化的过程如下:
反量化是基于前面步骤中所得到的huffman解码数据(记为Xi)、缩放因子信息和边信息,
长窗中的数据用下面的公式来进行反量化(记反量化后的值为Yi):
而短窗中每粒度(gr)每声道(ch)的反量化公式为:
在上述两个公式中频谱值xi 的幅度首先提高到原值的4/3幂,用以补偿编码时的幅度衰减,之后再乘上符号位sign(Xi);Global_gain变量是每声道中的全局量化步长;常数“210”是一个系统常数,用以保证合适的量化步长,同时也保证编码过程中不会出现全“1”而扰乱同步字;步长通过scalefac_scale来标识,若scalfac_scale=0则scalefac_ multiplier=0.5,否则scalefac_multiplier=1;Preflg变量和pretab变量只在长窗中有效;Preflag是高频预加重标志,Preflag=1 表示采用高频预加重,pretab[sfb]用来查表得出每个缩放带的预加重值;Scalefac_l和scalefac_s分别对应缩放因子解码中所得出的长短窗的缩放因子。
7.如权利要求6所述的基于WIFI的高保真音频传输方法,其特征在于反量化后,还需要对频谱值进行重排序;对于长窗产生的频谱值先按子带然后按频率排列;短窗中的数据被重新排序,按照子带、频率、窗的顺序排列。
9.如权利要求3所述的基于WIFI的高保真音频传输方法,其特征在于在编码的MDCT过程中为了得到更好的频域特性对每个子带进行了去混叠处理,因此为了得到正确的音频信号,在解码时必须进行子带的混叠重建,每个子带的混叠重建由8个蝶形运算组成。
10.如权利要求3所述的基于WIFI的高保真音频传输方法,其特征在于经过混叠消除后的信号便可以进行IMDCT变换,IMDCT的变换公式为:
式中Xk表示经去混叠处理输出的频谱值,Xi 表示IMDCT变换输出的值,最终的输出值为子带样本;根据block_type 的值,Xi 还要进行不同的加窗运算;
Block_ type=0:
Block_ type=1:
Block type=3:
Block type=2:
Block type12时,Xi 和iw直接相乘,结果记为Zi:
Block_type=2时,Xi 和Wi 相乘后要经过如下运算才能得到Zi,Yi 为中间变量:
上述计算的结果是每个子带的Zi,这些值再经过重叠运算得到新的样本值Si。
12.如权利要求1所述的基于WIFI的高保真音频传输方法,其特征在于上述的四类服务,除了接收服务外,播放服务、交互服务和控制服务是可以任选一种或多种进行实现的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210182062XA CN102842337A (zh) | 2012-06-05 | 2012-06-05 | 基于wifi的高保真音频传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210182062XA CN102842337A (zh) | 2012-06-05 | 2012-06-05 | 基于wifi的高保真音频传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102842337A true CN102842337A (zh) | 2012-12-26 |
Family
ID=47369612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210182062XA Pending CN102842337A (zh) | 2012-06-05 | 2012-06-05 | 基于wifi的高保真音频传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102842337A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166702A (zh) * | 2013-02-05 | 2013-06-19 | 何建亿 | 通过音频方式配置无线网络的方法与装置 |
CN103489450A (zh) * | 2013-04-07 | 2014-01-01 | 杭州微纳科技有限公司 | 基于时域混叠消除的无线音频压缩、解压缩方法及其设备 |
CN103607678A (zh) * | 2013-10-25 | 2014-02-26 | 上海山景集成电路股份有限公司 | 一种无线同步音箱 |
CN104089699A (zh) * | 2014-06-20 | 2014-10-08 | 国家电网公司 | 一种变电站设备声音重建算法 |
CN105072614A (zh) * | 2015-08-10 | 2015-11-18 | 小米科技有限责任公司 | 音频播放设备控制方法及装置 |
CN105630633A (zh) * | 2015-12-25 | 2016-06-01 | 四川秘无痕信息安全技术有限责任公司 | 一种恢复手机音频文件的方法 |
CN105978680A (zh) * | 2015-03-13 | 2016-09-28 | 恩智浦有限公司 | 在白盒实现方案中实现填充 |
CN106407792A (zh) * | 2016-09-26 | 2017-02-15 | 广东欧珀移动通信有限公司 | 控制移动终端的方法及音箱 |
CN106470092A (zh) * | 2015-08-17 | 2017-03-01 | 美国莱迪思半导体公司 | 传输及接收音频信号的方法及其装置 |
CN106685895A (zh) * | 2015-11-09 | 2017-05-17 | 中国科学院声学研究所 | 一种支持用户干预的多输入参数协同媒体处理装置 |
CN106941643A (zh) * | 2017-05-03 | 2017-07-11 | 广州市花都区国光音频科技中心(普通合伙) | 一种集合多功能的智能音响控制方法 |
US10043523B1 (en) | 2017-06-16 | 2018-08-07 | Cypress Semiconductor Corporation | Advanced packet-based sample audio concealment |
CN112189231A (zh) * | 2018-04-25 | 2021-01-05 | 杜比国际公司 | 高频音频重建技术的集成 |
CN112988249A (zh) * | 2021-03-23 | 2021-06-18 | 上海摩勤智能技术有限公司 | 创建声卡的方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1835576A (zh) * | 2006-03-27 | 2006-09-20 | 深圳亿道科技有限公司 | 采用无线传送方式显示演示内容的系统及方法 |
CN201004651Y (zh) * | 2006-11-30 | 2008-01-09 | 上海怡得网络有限公司 | 一种便携式多媒体存储播放器 |
US20090176529A1 (en) * | 2006-07-05 | 2009-07-09 | Warren Robert W | Systems and methods for mobile data storage and acquisition |
-
2012
- 2012-06-05 CN CN201210182062XA patent/CN102842337A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1835576A (zh) * | 2006-03-27 | 2006-09-20 | 深圳亿道科技有限公司 | 采用无线传送方式显示演示内容的系统及方法 |
US20090176529A1 (en) * | 2006-07-05 | 2009-07-09 | Warren Robert W | Systems and methods for mobile data storage and acquisition |
CN201004651Y (zh) * | 2006-11-30 | 2008-01-09 | 上海怡得网络有限公司 | 一种便携式多媒体存储播放器 |
Non-Patent Citations (1)
Title |
---|
丰帆: "MP3数字音频编解码算法的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166702A (zh) * | 2013-02-05 | 2013-06-19 | 何建亿 | 通过音频方式配置无线网络的方法与装置 |
CN103489450A (zh) * | 2013-04-07 | 2014-01-01 | 杭州微纳科技有限公司 | 基于时域混叠消除的无线音频压缩、解压缩方法及其设备 |
CN103607678A (zh) * | 2013-10-25 | 2014-02-26 | 上海山景集成电路股份有限公司 | 一种无线同步音箱 |
CN104089699A (zh) * | 2014-06-20 | 2014-10-08 | 国家电网公司 | 一种变电站设备声音重建算法 |
CN104089699B (zh) * | 2014-06-20 | 2016-08-24 | 国家电网公司 | 一种变电站设备声音重建算法 |
CN105978680A (zh) * | 2015-03-13 | 2016-09-28 | 恩智浦有限公司 | 在白盒实现方案中实现填充 |
CN105072614A (zh) * | 2015-08-10 | 2015-11-18 | 小米科技有限责任公司 | 音频播放设备控制方法及装置 |
CN106470092A (zh) * | 2015-08-17 | 2017-03-01 | 美国莱迪思半导体公司 | 传输及接收音频信号的方法及其装置 |
CN106685895B (zh) * | 2015-11-09 | 2019-08-20 | 中国科学院声学研究所 | 一种支持用户干预的多输入参数协同媒体处理装置 |
CN106685895A (zh) * | 2015-11-09 | 2017-05-17 | 中国科学院声学研究所 | 一种支持用户干预的多输入参数协同媒体处理装置 |
CN105630633B (zh) * | 2015-12-25 | 2019-03-12 | 四川秘无痕信息安全技术有限责任公司 | 一种恢复手机音频文件的方法 |
CN105630633A (zh) * | 2015-12-25 | 2016-06-01 | 四川秘无痕信息安全技术有限责任公司 | 一种恢复手机音频文件的方法 |
CN106407792A (zh) * | 2016-09-26 | 2017-02-15 | 广东欧珀移动通信有限公司 | 控制移动终端的方法及音箱 |
CN106407792B (zh) * | 2016-09-26 | 2019-03-12 | Oppo广东移动通信有限公司 | 控制移动终端的方法及音箱 |
CN106941643A (zh) * | 2017-05-03 | 2017-07-11 | 广州市花都区国光音频科技中心(普通合伙) | 一种集合多功能的智能音响控制方法 |
US10043523B1 (en) | 2017-06-16 | 2018-08-07 | Cypress Semiconductor Corporation | Advanced packet-based sample audio concealment |
US11037577B2 (en) | 2017-06-16 | 2021-06-15 | Cypress Semiconductor Corporation | Advanced packet-based sample audio concealment |
CN112189231A (zh) * | 2018-04-25 | 2021-01-05 | 杜比国际公司 | 高频音频重建技术的集成 |
CN112988249A (zh) * | 2021-03-23 | 2021-06-18 | 上海摩勤智能技术有限公司 | 创建声卡的方法、装置、电子设备及存储介质 |
CN112988249B (zh) * | 2021-03-23 | 2024-05-28 | 上海摩勤智能技术有限公司 | 创建声卡的方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102842337A (zh) | 基于wifi的高保真音频传输方法 | |
US7573912B2 (en) | Near-transparent or transparent multi-channel encoder/decoder scheme | |
CN102388418B (zh) | 低复杂度频谱带复制(sbr)滤波器组 | |
CN1973319B (zh) | 编码和解码多通道音频信号的方法和设备 | |
CN100508026C (zh) | 立体声信号编码 | |
CN100442850C (zh) | 用于无损数据编码和解码的方法和系统 | |
CN104282309A (zh) | 丢包掩蔽装置和方法以及音频处理系统 | |
JPH09505193A (ja) | 複数のオーディオ信号を符号化する方法 | |
CN101411063B (zh) | 滤波器自适应频率分辨率 | |
CN101206860A (zh) | 一种可分层音频编解码方法及装置 | |
US8036390B2 (en) | Scalable encoding device and scalable encoding method | |
US10460738B2 (en) | Encoding apparatus for processing an input signal and decoding apparatus for processing an encoded signal | |
US8041041B1 (en) | Method and system for providing stereo-channel based multi-channel audio coding | |
KR20210102300A (ko) | 낮은 차수, 중간 차수 및 높은 차수 컴포넌트 생성기를 사용하는 DirAC 기반 공간 오디오 코딩과 관련된 인코딩, 디코딩, 장면 처리 및 기타 절차를 위한 장치, 방법 및 컴퓨터 프로그램 | |
Salau et al. | Audio compression using a modified discrete cosine transform with temporal auditory masking | |
CN114299967A (zh) | 音频编解码方法和装置 | |
KR20070090217A (ko) | 스케일러블 부호화 장치 및 스케일러블 부호화 방법 | |
Johnston et al. | AT&T perceptual audio coding (PAC) | |
JP2024063226A (ja) | DirACベースの空間オーディオ符号化のためのパケット損失隠蔽 | |
EP2595147B1 (en) | Audio data encoding method and device | |
EP2489036B1 (en) | Method, apparatus and computer program for processing multi-channel audio signals | |
US11696075B2 (en) | Optimized audio forwarding | |
CN102436822A (zh) | 信号控制装置及其方法 | |
Bii | MPEG-1 Layer III Standard: A Simplified Theoretical Review | |
Cheng et al. | Multiple description error mitigation techniques for streaming compressed audio over a 802.11 wireless network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121226 |