论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 代写论文
当前位置: > 电子信息 >

A4003_基于AC3的虚拟环绕声实现

原来的LSRS经过滤波处理以后得到四组数据,这样就需要重新定义数组对结果进行存储

内容来自www.paper51.com

     typedef struct stream_samples_srs_s 内容来自www.paper51.com

{float channel[8][512];

内容来自论文无忧网 www.paper51.com

} stream_samples_srs_t;

http://www.paper51.com

现在的数据存储规则变为: copyright paper51.com

samples_srs-> channel[0][512]              对应      左L声道

内容来自论文无忧网 www.paper51.com

samples_srs-> channel[1][512]              对应      中央C声道

内容来自论文无忧网 www.paper51.com

samples_srs-> channel[2][512]              对应      右R声道

内容来自www.paper51.com

samples_srs-> channel[3][512]              对应      http://www.paper51.com

samples_srs-> channel[4][512]              对应      *LS copyright paper51.com

samples_srs-> channel[5][512]              对应     

内容来自论文无忧网 www.paper51.com

samples_srs-> channel[6][512]              对应      *RS http://www.paper51.com

samples_srs-> channel[7][512]              对应      低频LFE声道

内容来自论文无忧网 www.paper51.com

5.3.2  子函数Downmix   paper51.com

由于原来的六声道变成了现在的八声道,所以在把多声道信息向下混合成两声道信息的部分downmix也需要做相应的调整[18]。只需要利用式(4-1),把各声道数据相加,就可以混合成两声道的音频。其程序如下 内容来自www.paper51.com

voidmix321to20( stream_samples_srs_t *samples, sint_16 *out_samples )

paper51.com

{  int i;

copyright paper51.com

    sint_32 left,    内容来自论文无忧网 www.paper51.com

           center,    内容来自论文无忧网 www.paper51.com

           right,  paper51.com

           rear_ls_alpha1, http://www.paper51.com

           rear_ls_beta1,  http://www.paper51.com

           rear_rs_alpha1, paper51.com

           rear_rs_beta1,  内容来自论文无忧网 www.paper51.com

           lfe;   内容来自论文无忧网 www.paper51.com

    sint_16 Acc1, Acc2; /*累加器 */

内容来自www.paper51.com

    /* AC3 5.1 channel downmix, 3front, 2 rear channels */ copyright paper51.com

    for ( i=0; i < 256; ++i )

内容来自论文无忧网 www.paper51.com

    {     left = samples->channel[0][i] * 32000.0; 内容来自论文无忧网 www.paper51.com

           center= samples->channel[1][i] * 0.707 * 32000.0;

paper51.com

           right= samples->channel[2][i] * 32000.0; 内容来自论文无忧网 www.paper51.com

           rear_ls_alpha1= samples->channel[3][i] * 32000.0;

http://www.paper51.com

           rear_ls_beta1= samples->channel[4][i] * 32000.0;

内容来自论文无忧网 www.paper51.com

           rear_rs_alpha1= samples->channel[5][i] * 32000.0; http://www.paper51.com

           rear_rs_beta1= samples->channel[6][i] * 32000.0;

http://www.paper51.com

           lfe= samples->channel[7][i] * 0.707 * 32000.0; paper51.com

           Acc1= ( 2 + left + center + rear_ls_alpha1 + rear_rs_beta1 + lfe ) >> 1; 内容来自论文无忧网 www.paper51.com

           Acc2= ( 2 + right + center + rear_ls_beta1 + rear_rs_alpha1 + lfe ) >> 1; 内容来自www.paper51.com

           out_samples[(i<<1)   ] = Acc1;

paper51.com

           out_samples[(i<<1)+1 ] = Acc2;

内容来自论文无忧网 www.paper51.com

    } paper51.com

} paper51.com

5.4结论分析

内容来自论文无忧网 www.paper51.com

本章用C语言在VC环境下编程实现AC3的虚拟环绕声系统,本设计是在AC3解码C语言程序的基础上,在其子程序IMDCT后面,对分离出来的环绕声道数据进行虚拟滤波处理,然后把结果混同其他声道数据送入Downmix子程序进行混合,生成两声道的虚拟环绕声。原解码程序经编译、组建,生成可执行的EXE文件,运行后,生成一个名为“Title04_interpreter_18_34_test.wav”的音频文件。而修改后的程序运行得到一个名为“Title04_interpreter_18_34_srs.wav”的音频文件,其波形如图5-6。两个文件数据长度相等,均为2.93MB。在水平位置,如图2-3所示,以人圆心,r=1.4m为半径的圆周上,在前方的位置布置两个左、右扬声器,重放时在圆心处试听,“Title04_interpreter_18_34_srs.wav”比“Title04_interpreter_18_34_test.wav”有明显的空间感和立体感,给人身临其境的感觉。

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

图5-6“Title04_interpreter_18_34_srs.wav”的波形 paper51.com

------分隔线----------------------------
联系方式