一种音频数据的处理方法和服务器转让专利

申请号 : CN201210169030.6

文献号 : CN102682776B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾勇

申请人 : 深圳市茁壮网络股份有限公司

摘要 :

本发明实施例公开了一种音频数据的处理方法和音效服务器,其中,该方法包括:根据有差异级数合成算法,将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据;将所述混音合成的一路脉冲编码调制数据进行压缩编码;将压缩编码后的数据封装输出。该方法能有效的克服了现有技术中采用线性合成中容易导致部分高音量的PCM的音量被低音量的PCM拉低的现象。

权利要求 :

1.一种音频数据的处理方法,其特征在于,所述方法包括:

根据有差异级数合成算法,将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据;

将所述混音合成的一路脉冲编码调制数据进行压缩编码;

将压缩编码后的数据封装输出;

其中,所述根据有差异级数合成算法,将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据,具体包括:根据所述读入的多于一路脉冲编码调制数据,将一时刻的采样值叠加的绝对值划分为n个区域,每个区域的长度设置为Smax,再根据各个区域所处位置有差异的比例叠加,最终的和作为该一时刻所述混音合成的一路脉冲编码调制数据的样本值;计算选取级数公式如下,其中各项依次对应于区域0,区域1,区域2,...,区域n,α为调节因子防止总和溢出采样值最大值:或者,

其中,k为差异的权重比例参数,k的取值为2的整数倍,且f(α)<=1,则可以确定调解因子α的取值;所说的有差异的比例由函数f(α)中的级数确定;

设输入样本点值PCM[0],PCM[1],......,PCM[n-1]表示第0路,第1路,...,第n-1路在同一时刻采样值;因此多路输入的样本点线性叠加总和为:sum=PCM[0]+PCM[1]+...+PCM[n-1];

记sum的绝对值为sum_abs,因为输出的音频路数是有限的,因此可以确定sum_abs<=n*Smax,其中n是输入的音频总路数,Smax是单个采样值绝对值的最大值;

因此,混音合成的采样值A的计算公式如下:

其中,对于采样值A的计算公式前半部分表示sum_abs值在前m个Smax中计算值,后半部分表示不足Smax的剩余值在m+1个区域的计算值,所述m为整数;两部分的和是同一时刻多路音频输入的脉冲编码调制数据混音合成的一路脉冲编码调制数据。

2.根据权利要求1所述的方法,其特征在于,所述将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据之前,所述方法还包括:读入多于一路的脉冲编码调制数据,并将所述脉冲编码调制数据转换成相同属性的脉冲编码调制数据。

3.根据权利要求2所述的方法,其特征在于,所述属性包括:采样频率,采样精度,和声道个数三项。

4.一种音效服务器,其特征在于,所述服务器包括:混音合成单元,压缩编码单元,和封装输出单元;

所述混音合成单元,用于根据有差异级数合成算法,将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据;

所述压缩编码单元,用于将所述混音合成的一路脉冲编码调制数据进行压缩编码;

所述封装输出单元,用于将压缩编码后的数据封装输出;

其中,所述混音合成单元,具体用于根据所述读入的多于一路脉冲编码调制数据,将一时刻的采样值叠加的绝对值划分为n个区域,每个区域的长度设置为Smax,再根据各个区域所处位置有差异的比例叠加,最终的和作为该一时刻所述混音合成的一路脉冲编码调制数据的样本值;计算选取级数公式如下,其中各项依次对应于区域0,区域1,区域2,...,区域n,α为调节因子防止总和溢出采样值最大值:或者,

其中,k为差异的权重比例参数,k的取值为2的整数倍,且f(α)<=1,则可以确定调解因子α的取值;所说的有差异的比例由函数f(α)中的级数确定;

设输入样本点值PCM[0],PCM[1],......,PCM[n-1]表示第0路,第1路,...,第n-1路在同一时刻采样值;因此多路输入的样本点线性叠加总和为:sum=PCM[0]+PCM[1]+...+PCM[n-1];

记sum的绝对值为sum_abs,因为输出的音频路数是有限的,因此可以确定sum_abs<=n*Smax,其中n是输入的音频总路数,Smax是单个采样值绝对值的最大值;

因此,混音合成的采样值A的计算公式如下:

其中,对于采样值A的计算公式前半部分表示sum_abs值在前m个Smax中计算值,后半部分表示不足Smax的剩余值在m+1个区域的计算值,所述m为整数;两部分的和是同一时刻多路音频输入的脉冲编码调制数据混音合成的一路脉冲编码调制数据。

5.根据权利要求4所述的服务器,其特征在于,所述服务器还包括:转换单元,用于读入多于一路的脉冲编码调制数据,并将所述脉冲编码调制数据转换成相同属性的脉冲编码调制数据。

6.根据权利要求5所述的服务器,其特征在于,所述属性包括:采样频率,采样精度,和声道个数三项。

说明书 :

一种音频数据的处理方法和服务器

技术领域

[0001] 本发明涉及数字电视领域,具体涉及一种音频数据的处理方法和服务器。

背景技术

[0002] 现有技术中将多路脉冲编码调制(PCM,Pulse Code Modulation)数据进行混音合成处理时,采用简单的线性合成,即将多路PCM数据采样值叠加求平均值,即获取混音合成的采样值。该线性合成方案很明显的缺陷:容易导致部分高音量的PCM的音量被低音量的PCM拉低,最极端的情况,当多路非常低的PCM和一路高音量的PCM合成,将导致高音量的PCM的原始音效音量变得非常小,从而音效失真,使得用户体验低。
[0003] 进一步,在现有数字电视领域中,用户需要的音频数据是存储在机顶盒中,因为机顶盒的存储空间有限和处理能力比较弱,单靠机顶盒的处理能力和存储空间,只能满足时间很短的音效,而且音效的数量极为有限。在遇到复杂的应用时,机顶盒音效处理功能很难达到用户需求,现有技术中机顶盒的处理,不能使得用户感受到音效的实时变化,而且在音效的持续时间和数量方面基本不受限制。

发明内容

[0004] 本发明实施例提供了一种音频数据的处理方法和服务器,克服现有技术中线性合成导致音质效果差的缺点。
[0005] 本发明实施例提供了一种音频数据的处理方法,所述方法包括:
[0006] 根据有差异级数合成算法,将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据;
[0007] 将所述混音合成的一路脉冲编码调制数据进行压缩编码;
[0008] 将压缩编码后的数据封装输出。
[0009] 优选的,所述根据有差异级数合成算法,将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据,具体包括:
[0010] 根据所述读入的多于一路脉冲编码调制数据,将一时刻的采样值叠加的绝对值划分为n个区域,每个区域的长度设置为Smax,根据各个区域所处位置有差异的比例叠加,叠加的和作为该一时刻所述合成一路脉冲编码调制数据的样本值;
[0011] 其中,所述有差异的比例由函数f(α)中的级数确定,n为大于1的整数,Smax是单个采样值绝对值的最大值。
[0012] 优选的,所述将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据之前,所述方法还包括:
[0013] 读入多于一路的脉冲编码调制数据,并将所述脉冲编码调制数据转换成相同属性的脉冲编码调制数据。
[0014] 优选的,所述属性包括:采样频率,采样精度,和声道个数三项。
[0015] 本发明实施例还提供了一种音效服务器,所述服务器包括:混音合成单元,压缩编码单元,和封装输出单元;
[0016] 所述混音合成单元,用于根据有差异级数合成算法,将读入的多于一路的属性相同的脉冲编码调制数据混音合成一路脉冲编码调制数据;
[0017] 所述压缩编码单元,用于将所述混音合成的一路脉冲编码调制数据进行压缩编码;
[0018] 所述封装输出单元,用于将压缩编码后的数据封装输出。
[0019] 优选的,所述混音合成单元,具体用于根据所述读入的多于一路脉冲编码调制数据,将一时刻的采样值叠加的绝对值划分为n个区域,每个区域的长度设置为Smax,根据各个区域所处位置有差异的比例叠加,叠加的和作为该一时刻所述合成一路脉冲编码调制数据的样本值;
[0020] 其中,所述有差异的比例由函数f(α)中的级数确定,n为大于1的整数,Smax是单个采样值绝对值的最大值。
[0021] 优选的,所述服务器还包括:
[0022] 转换单元,用于读入多于一路的脉冲编码调制数据,并将所述脉冲编码调制数据转换成相同属性的脉冲编码调制数据。
[0023] 优选的,其特征在于,所述属性包括:采样频率,采样精度,和声道个数三项。
[0024] 从以上技术方案可以看出,本发明实施例提供的方法通过有差异级数合成算法,将读入的多于一路的属性相同的PCM数据混音合成一路PCM数据;再将混音合成的一路PCM数据进行压缩编码、封装,通过网络发送给机顶盒,该方法将采样值叠加的绝对值划分为多个个区域,然后再根据各个区域所处位置有差异的比例叠加,最终的和作为该一时刻样本值,有效的克服了现有技术中采用线性合成中容易导致部分高音量的PCM的音量被低音量的PCM拉低的现象。

附图说明

[0025] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026] 图1是本发明实施例提供的一种音频数据的处理方法流程示意简图;
[0027] 图2是本发明实施例提供的一种服务器示意简图。

具体实施方式

[0028] 本发明实施例提供了一种音频数据的处理方法,该方法可以应用在一种音效服务器中,但是不限于此处举例的音效服务器,也可以是其它设备,如图1所示,该方法包括:
[0029] 步骤101:根据有差异级数合成算法,将读入的多于一路的属性相同的PCM数据混音合成一路PCM数据;
[0030] 需要理解的是,本方案采用的混音算法,选取了泰勒级数计算混音合成采样值。首先根据输入的PCM数据路数,可以将采样值叠加的绝对值划分为n个区域,每个区域的长度是Smax,然后再根据各个区域所处位置有差异的比例叠加,最终的和作为该一时刻样本值。计算选取级数公式如下,其中各项依次对应于区域0,区域1,区域2,...,区域n,α为调节因子防止总和溢出采样值最大值:
[0031]
[0032]
[0033]
[0034] 或者,
[0035]
[0036] 其中,k为差异的权重比例参数,k的取值通常为2的整数倍,在本发明实施例优选的以k的取值为8,且f(α)<=1,则可以确定调解因子α的取值。所说的有差异的比例由函数f(α)中的级数确定。
[0037] 设输入样本点值PCM[0],PCM[1],……,PCM[n-1]表示第0路,第1路,…,第n-1路在同一时刻采样值;因此多路输入的样本点线性叠加总和为:
[0038] sum=PCM[0]+PCM[1]+…+PCM[n-1];
[0039] 记sum的绝对值为sum_abs,因为输出的音频路数通常是有限的,因此可以确定sum_abs<=n*Smax,其中n是输入的音频总路数,Smax是单个采样值绝对值的最大值;
[0040] 因此,混音合成的采样值A的计算公式如下:
[0041]
[0042] 其中,对于采样值A的计算公式前半部分表示sum_abs值在前m个Smax中计算值,后半部分表示不足Smax的剩余值在m+1个区域的计算值。这两部分的和就是同一时刻多路音频输入的PCM混音合成的样本点值。
[0043] 为了保证计算的速度,上述公式的计算前半部分可以转换成查表(由于α,k,Smax半都为已知数值,则m不同取值可以作为),若根据计算机计算特点选择合适的k和α取值后,后半部分可以转换成移位和定点乘法。
[0044] 采用如上所述的有差异级数合成算法,将多于一路的PCM数据混音合成一路PCM数据,有用有效的克服了现有技术中采用线性合成中容易导致部分高音量的PCM的音量被低音量的PCM拉低的现象。
[0045] 步骤102:将混音合成的一路PCM数据进行压缩编码;
[0046] 其中,对PCM数据进行压缩编码的具体操作可以参考现有技术。如:混音合成的PCM数据输入音频压缩编码单元,输出运动图像专家组织国际标准一音频第二层(MPEG1 audio LayII)数据,这个过程可以参照现有技术中MPEG1标准。
[0047] 步骤103:将压缩编码后的数据封装输出。
[0048] 其中,将压缩编码后的数据封装输出的操作具体可以参考现有技术,具体可以是:将压缩编码后的数据封装成MPEG2 13818-1传输流(TS,Transport stream)[0049] 音频服务器可以依照音频单帧的播放时间,控制数据输出码率,保证数据的匀速发出。其中,发送给机顶盒的数据,可以采用传输控制协议(TCP,Transmission Control Protocol)或者用户数据包协议(UDP,User Datagram Protocol)发送方式。
[0050] 通过上述对本发明实施例的说明,本发明实施例提供的方法通过有差异级数合成算法,将读入的多于一路的属性相同的PCM数据混音合成一路PCM数据;再将混音合成的一路PCM数据进行压缩编码、封装,通过网络发送给机顶盒,该方法将采样值叠加的绝对值划分为多个个区域,然后再根据各个区域所处位置有差异的比例叠加,最终的和作为该一时刻样本值,有效的克服了现有技术中采用线性合成中容易导致部分高音量的PCM的音量被低音量的PCM拉低的现象。
[0051] 优选的,若音效服务器中读入的多路PCM数据是属性不同的,则该方法还包括:
[0052] 步骤100:读入多于一路的PCM数据,并将读入的PCM数据转换成相同属性的PCM数据;
[0053] 其中,PCM数据可以是存储在本地的素材库,或者是应用的素材,为了便于理解,可以理解为在一个游戏中,音频数据在用户侧的体现可以包括:游戏的背景音乐(该背景音乐可以是以PCM数据的形式存储在本地的素材库中),以及游戏中某个应用的按键音(该应用的按键音可以是以PCM数据的形式作为应用的素材存储在相应的应用中)。
[0054] 还需要说明的是,PCM数据的属性可以包括:采样频率,采样精度,和声道个数。例如:PCM数据可以描述为:采样频率为44.1KHz,采样精度为16位,以及双声道。
[0055] 若输入的PCM数据的属性是不同的,需要将不同属性的PCM数据转换为相同数据的PCM属性。转换PCM数据属性的具体操作通常可以包括两种,即:
[0056] 第一种方式,预先将多于一路的PCM数据转换成相同属性的PCM数据,如将PCM数据转换成统一的44.1KHz,16位,双声道;
[0057] 第二种方式,约定需要转换的音频素材属性,在进入混音合成模块前,先通过重采样模块将不一致的PCM转换成约定的格式。
[0058] 下面具体对如何将不同属性的PCM数据转换为相同属性的PCM数据进行详细说明,如下的详细说明可以作为本发明的一种具体实现的举例,并非对本发明实施例的限制。
[0059] 一、当读入的PCM数据需要转换为相同的采用频率时,其具体操作可以包括:
[0060] 如果是实时重采样,选择速度较快的线性插值算法;
[0061] 如果是离线重采样,采用算法较复杂的低通滤波算法,保证音质最佳。
[0062] 其中,第一种:线性插值的算法比较简单,现在假定T(m)是需要插入的重采样样本点时刻位置;原始样本点x(n)和x(n+1)的时刻为t(n),t(n+1),满 足t(n) ≤ T(m)≤ t(n+1),那 么 插 入 的 样 本 值 Y(m)计 算 公 式 如 下:Y(m)=θ*x(n)+(1-θ)*x(n+1);
[0063] 其中,x(n)是插入样本点Y(m)的左边原样本点,x(n+1)是Y(m)的右边原始样本点;重采样后样本点的计算依赖于插入样本点和它们之间的时间差值比例,θ=(t(n+1)-T(m))/(t(n+1)-t(n))。
[0064] 第二种:低通滤波算法如下,假定x(-n+1),...,x(0),...,x(n-1)是原始采样值,它们投影到滤波曲线上对应滤波系数为h[-n+1],...,h[0],...,h[n-1],p时刻,0≤p≤1插入采样点的采样值计算方法:
[0065]
[0066] 二、当采用精度不同时,将输入的PCM数据的采用精度转换为相同的采用精度,具体的操作可以是:可以直接采用移位操作处理,如果需要定点和浮点互转,则可以通过强制转换。
[0067] 三、当声道不一致时,由于现在音效服务器仅支持单声道和双声道的数据,从单声道转成双声道可以采用复制的方式;而从双声道转成单声道,支持三种方式:一种是将左右声道线性合成;一种仅取左声道;还有一种是仅取右声道。
[0068] 通过增加步骤100,使得该方法可以对属性不同的PCM数据进行处理,转换为相同属性的PCM数据。
[0069] 本发明实施例提供了一种服务器,如图2所示,该服务器可以包括:混音合成单元201,压缩编码单元202,和封装输出单203。
[0070] 其中,混音合成单元201,用于根据有差异级数合成算法,将读入的多于一路的属性相同的PCM数据混音合成一路PCM数据;
[0071] 需要说明的是,关于有差异级数合成算法的详细说明可以参考步骤101中的详细说明,此处不重述。
[0072] 优选的,所述混音合成单元,具体用于根据所述读入的多于一路脉冲编码调制数据,将一时刻的采样值叠加的绝对值划分为n个区域,每个区域的长度设置为Smax,根据各个区域所处位置有差异的比例叠加,叠加的和作为该一时刻所述合成一路脉冲编码调制数据的样本值;
[0073] 其中,所述有差异的比例由函数f(α)中的级数确定,n为大于1的整数,Smax是单个采样值绝对值的最大值。
[0074] 混音合成单元201采用有差异级数合成算法,将多于一路的PCM数据混音合成一路PCM数据,有用有效的克服了现有技术中采用线性合成中容易导致部分高音量的PCM的音量被低音量的PCM拉低的现象。
[0075] 压缩编码单元202,用于将混音合成的一路PCM数据进行压缩编码;
[0076] 其中,压缩编码单元202具体可以将混音合成的PCM数据进行压缩编码,输出MPEG1 audio LayII数据,这个过程可以参照现有技术中MPEG1标准。
[0077] 封装输出单203,用于将压缩编码后的数据封装输出。
[0078] 通过上述对本发明实施例的说明,本发明实施例提供的服务器通过混音合成单元201采用有差异级数合成算法,将读入的多于一路的属性相同的PCM数据混音合成一路PCM数据;再将混音合成的一路PCM数据进行压缩编码、封装,通过网络发送给机顶盒,该方法将采样值叠加的绝对值划分为多个个区域,然后再根据各个区域所处位置有差异的比例叠加,最终的和作为该一时刻样本值,有效的克服了现有技术中采用线性合成中容易导致部分高音量的PCM的音量被低音量的PCM拉低的现象。
[0079] 优选的,该服务器还可以包括:转换单元200;
[0080] 转换单元200,用于读入多于一路的PCM数据,并将读入的PCM数据转换成相同属性的PCM数据;
[0081] 中,PCM数据可以是存储在本地的素材库,或者是应用的素材,为了便于理解,可以理解为在一个游戏中,音频数据在用户侧的体现可以包括:游戏的背景音乐(该背景音乐可以是以PCM数据的形式存储在本地的素材库中),以及游戏中某个应用的按键音(该应用的按键音可以是以PCM数据的形式作为应用的素材存储在相应的应用中)。
[0082] 还需要说明的是,PCM数据的属性可以包括:采样频率,采样精度,和声道个数。例如:PCM数据可以描述为:采样频率为44.1KHz,采样精度为16位,以及双声道。
[0083] 若输入的PCM数据的属性是不同的,需要将不同属性的PCM数据转换为相同数据的PCM属性。转换PCM数据属性的具体操作通常可以包括两种,即:
[0084] 第一种方式,预先将音频素材转换成相同属性的PCM数据,如将PCM数据转换成统一的44.1KHz,16位,双声道;
[0085] 第二种方式,约定需要转换的音频素材属性,在进入混音合成模块前,先通过重采样模块将不一致的PCM转换成约定的格式。
[0086] 下面具体对如何将不同属性的PCM数据转换为相同属性的PCM数据进行详细说明,如下的详细说明可以作为本发明的一种具体实现的举例,并非对本发明实施例的限制。
[0087] 一、当读入的PCM数据需要转换为相同的采用频率时,其具体操作可以包括:
[0088] 如果是实时重采样,选择速度较快的线性插值算法;
[0089] 如果是离线重采样,采用算法较复杂的低通滤波算法,保证音质最佳。
[0090] 二、当采用精度不同时,将输入的PCM数据的采用精度转换为相同的采用精度,具体的操作可以是:可以直接采用移位操作处理,如果需要定点和浮点互转,则可以通过强制转换。
[0091] 三、当声道不一致时,由于现在音效服务器仅支持单声道和双声道的数据,从单声道转成双声道可以采用复制的方式;而从双声道转成单声道,支持三种方式:一种是将左右声道线性合成;一种仅取左声道;还有一种是仅取右声道。
[0092] 通过增加转换单元200,使得该服务器可以对属性不同的PCM数据进行处理,转换为相同属性的PCM数据。
[0093] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0094] 以上对本发明所提供的一种音频数据的处理方法和服务器进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。