掌桥专利:专业的专利平台
掌桥专利
首页

音频处理方法与装置、以及多声道系统

文献发布时间:2023-06-19 09:30:39


音频处理方法与装置、以及多声道系统

技术领域

本发明涉及显示技术领域,特别涉及音频处理方法与装置、以及多声道系统。

背景技术

为了更好的达到音效的真实饱满,通常采用多声道录制声源文件。然而,在将具有多声道的声源文件进行传输播放时,由于传输条件的限制,导致传输时不能将声源文件中的所有声道传输到功放中,从而导致在播放时不能实现多个声道的输出,进而导致播放效果不佳等问题。

发明内容

本发明实施例提供的音频处理方法与装置、以及多声道系统,用以提高播放效果。

本发明实施例提供了一种音频处理方法,包括:

接收具有多个声道的声源数据;

将所述声源数据解码出各所述声道对应的原始音频数据;

根据预设编码规则将所述原始音频数据进行重新编码后,通过至少2个第一I2S总线接口输出;其中,所述声道的总数大于所有所述第一I2S总线接口的通道总数。

可选地,在本发明实施例中,所述根据预设编码规则将所述原始音频数据进行重新编码后,通过至少2个第一I2S总线接口输出,包括:

根据所有所述原始音频数据、所有所述第一I2S总线接口的通道总数,以及所述第一I2S总线接口的每个通道的通信规则,确定每个所述第一I2S总线接口的每个通道对应的目标音频数据;其中,所述目标音频数据的数据位大于所述原始音频数据的数据位;

将得到的所述目标音频数据通过对应的第一I2S总线接口的通道输出。

可选地,在本发明实施例中,所述确定每个所述第一I2S总线接口的每个通道对应的目标音频数据,包括:

在确定所有所述原始音频数据的数量Q满足公式:

在确定所有所述原始音频数据的数量Q满足公式:

可选地,在本发明实施例中,选取进行拆分的原始音频数据包括:空白原始音频数据。

可选地,在本发明实施例中,所述确定每个所述第一I2S总线接口的每个通道对应的目标音频数据,包括:

在确定所有所述原始音频数据的数量Q满足公式:

可选地,在本发明实施例中,所述确定每个所述第一I2S总线接口的每个通道对应的目标音频数据,包括:

在确定所有所述原始音频数据的数量Q满足公式:

可选地,在本发明实施例中,所述原始音频数据为具有K个数据位的数字信号,一个所述拆分音频数据为具有相邻的

可选地,在本发明实施例中,所述将得到的所述目标音频数据通过对应的第一I2S总线接口的通道输出,包括:

改变第一位时钟的采样位数和/或改变所述第一位时钟的采样频率,在第一帧时钟发生沿变化后的第2个第一位时钟的脉冲开始,按照所述第一位时钟传输单个声道的数据位,使每一个所述第一I2S总线接口在一个所述第一帧时钟的一个周期内传输两个声道的目标音频数据。

可选地,在本发明实施例中,所述第一位时钟的一个周期传输两个数据位;或者,所述第一位时钟的一个周期传输一个数据位。

本发明实施例还提供了一种音频处理装置,包括:

至少2个第一I2S总线接口;

接收电路,用于接收具有多个声道的声源数据;

初解码电路,用于将所述声源数据解码出各所述声道对应的原始音频数据;

重编码电路,与所述至少2个第一I2S总线接口电连接,用于根据预设编码规则将所述原始音频数据进行重新编码后,通过至少2个第一I2S总线接口输出;其中,所述声道的总数大于所有所述第一I2S总线接口的通道总数。

本发明实施例还提供了一种多声道系统,包括:多声道设备以及上述音频处理装置。

本发明有益效果如下:

本发明实施例提供的音频处理方法与装置、以及多声道系统,通过将声源数据解码出各声道对应的原始音频数据,由于声道的总数大于所有第一I2S总线接口的通道总数,从而根据预设编码规则将原始音频数据进行重新编码后,可以将所有声道的原始音频数据通过至少2个第一I2S总线接口进行输出。这样可以将声源文件中的所有声道对应的原始音频数据均传输到多声道设备中,进而提高多声道设备的播放效果。

附图说明

图1为本发明实施例提供的I2S总线接口的信号时序图;

图2为本发明实施例提供的音频处理方法的流程图;

图3为本发明实施例提供的多声道设备的结构示意图;

图4为本发明实施例提供的原始音频数据的示意图之一;

图5为本发明实施例提供的第一I2S总线接口输出数据时的时序示意图之一;

图6为本发明实施例提供的接收第一I2S总线接口输出的数据时的时序示意图之一;

图7为本发明实施例提供的截取目标音频数据中的数据时的时序示意图之一;

图8为本发明实施例提供的原始音频数据的示意图之二;

图9为本发明实施例提供的原始音频数据的示意图之三;

图10为本发明实施例提供的第一I2S总线接口输出数据时的时序示意图之二;

图11a为本发明实施例提供的接收第一I2S总线接口输出的数据时的时序示意图之二;

图11b为本发明实施例提供的接收第一I2S总线接口输出的数据时的时序示意图之三;

图11c为本发明实施例提供的接收第一I2S总线接口输出的数据时的时序示意图之四;

图12为本发明实施例提供的截取目标音频数据中的数据时的时序示意图之二;

图13a为本发明实施例提供的第一I2S总线接口输出数据时的时序示意图之三;

图13b为本发明实施例提供的第一I2S总线接口输出数据时的时序示意图之四;

图13c为本发明实施例提供的第一I2S总线接口输出数据时的时序示意图之五;

图14a为本发明实施例提供的接收第一I2S总线接口输出的数据时的时序示意图之五;

图14b为本发明实施例提供的接收第一I2S总线接口输出的数据时的时序示意图之六;

图14c为本发明实施例提供的接收第一I2S总线接口输出的数据时的时序示意图之七;

图15为本发明实施例提供的截取目标音频数据中的数据时的时序示意图之三;

图16为本发明实施例提供的原始音频数据的示意图之四;

图17为本发明实施例提供的第一I2S总线接口输出数据时的时序示意图之六;

图18为本发明实施例提供的接收第一I2S总线接口输出的数据时的时序示意图之八;

图19为本发明实施例提供的截取目标音频数据中的数据时的时序示意图之四;

图20为本发明实施例提供的音频处理装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

需要注意的是,附图中各图形的尺寸和形状不反映真实比例,目的只是示意说明本发明内容。并且自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。

随着显示技术的飞速发展,液晶显示装置(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light Emitting Diode,OLED)显示装置等已经应用于人们的生活中。这些显示装置可以接收视频数据和声源数据,并对这些数据进行处理,以显示图像并输出声音。

一般,为了提高体验感,可以使声源数据具有多个声道,例如8声道、9声道、12声道等。示例性地,8声道可以包括:左声道L,右声道R,左环绕声道SL,右环绕声道SR,左天空声道TOPL,右天空声道TOPR,中置声道center,重低音声道woofer。为了使上述声道可以输出,显示装置可以设置多个扬声器,以使一个扬声器对应播放一个声道的音频。例如,结合图3所示,显示装置中设置有8个扬声器Y1~Y8,其中,扬声器Y1播放对应左声道L的音频数据,扬声器Y2播放对应右声道R的音频数据,扬声器Y3播放对应左环绕声道SL的音频数据,扬声器Y4播放对应右环绕声道SR的音频数据,扬声器Y5播放对应左天空声道TOPL的音频数据,扬声器Y6播放对应右天空声道TOPR的音频数据,扬声器Y7播放对应中置声道center的音频数据,扬声器Y8播放对应重低音声道woofer的音频数据,以使显示装置作为多声道设备将声源数据的这些声道进行播放。

一般采用I2S总线接口向作为多声道设备的显示装置传输音频数据。I2S总线接口传输格式的信号无论有多少位有效数据,数据的最高位总是出现在帧时钟WS的发生沿(也就是一帧开始)后的第2个位时钟BCLK脉冲处。这样使得接收端与发送端的有效数据位可以不同。如果接收端能处理的有效数据位少于发送端,可以放弃数据帧中多余的低数据位据;如果接收端能处理的有效数据位多于发送端,可以自行补足剩余的位。这种同步机制使得采用I2S总线接口传输音频数据更加方便,而且不会造成数据错位。

然而,多声道设备中处理声源数据的主芯片一般采用2个I2S总线接口或3个I2S总线接口输出音频数据,这样使得在I2S总线接口的通道总数小于音频数据的声道总数时,可能会导致部分声道对应的音频数据在传输时缺失,从而导致传输到多声道设备中的音频数据不完整,降低多声道设备的播放效果。

如图1所示,I2S总线接口的在传输时主要涉及的信号如下:

(1)串行时钟BCLK,即位时钟,其对应数字音频信号的每一数据位,BCLK的频率=2×采样频率×采样位数。例如,BCLK的频率=2*48KHz*16bit=1.536MHz。

(2)帧时钟WS,用于切换左右声道的数据。例如,WS为“1”表示正在传输的是左声道的数据,WS为“0”则表示正在传输的是右声道的数据。WS的频率等于采样频率。

(3)串行数据SDATA,用二进制补码表示的音频数据。

当然,在实际应用中,I2S总线接口在传输时涉及的信号还可以包括一些相关信号,例如:MCLK主时钟(即系统时钟),目的是为了使系统间能够更好地同步,MCLK的频率是采样频率的256倍或384倍,例如48KHz*256=12.288MHz。

结合图1所示,I2S总线接口在传输时,WS=0(WS为低电平信号),表示正在传输的是左声道(Left Channel)的数据。WS=1(WS为高电平信号),表示正在传输的是右声道(Right Channel)的数据。也就是说,一个I2S总线接口具有两个传输音频数据的通道。或者,也可以使WS=1(WS为高电平信号),表示正在传输的是左声道(Left Channel)的数据。WS=0(WS为低电平信号),表示正在传输的是右声道(Right Channel)的数据。当然,在实际应用中,这需要根据实际应用环境来设计确定,在此不作限定。

结合图1所示,I2S总线接口的一个通道传输左声道对应的音频数据,另一个通道传输右声道对应的音频数据。并且,WS可以在串行时钟BCLK的上升沿或者下降沿发生改变,并且WS信号不需要一定是对称的。一般,在从属装置端,数据的最高位总是出现在帧时钟WS的下降沿(也就是一帧开始)后的第2个位时钟BCLK的脉冲处。即WS总是在最高位传输前的一个时钟周期发生改变,这样可以使从属装置得到与被传输的串行数据DATA同步的时间,并且使接收端存储当前的命令以及为下次的命令清除空间。

本发明实施例提供了一种音频处理方法,如图2所示,可以包括如下步骤:

S100、接收具有多个声道的声源数据;

S200、将声源数据解码出各声道对应的原始音频数据;

S300、根据预设编码规则将原始音频数据进行重新编码后,通过至少2个第一I2S总线接口输出;其中,声道的总数大于所有第一I2S总线接口的通道总数。

本发明实施例提供的音频处理方法,先将声源数据解码出各声道对应的原始音频数据,由于声道的总数大于所有第一I2S总线接口的通道总数,从而根据预设编码规则将原始音频数据进行重新编码后,可以将所有声道的原始音频数据通过至少2个第一I2S总线接口进行输出。这样可以将声源文件中的所有声道对应的原始音频数据均传输到多声道设备中,进而提高多声道设备的播放效果。

下面结合具体实施例,对本发明进行详细说明。需要说明的是,本实施例中是为了更好的解释本发明,但不限制本发明。

实施例一、

在具体实施时,在本发明实施例中,根据预设编码规则将原始音频数据进行重新编码后,通过至少2个第一I2S总线接口输出,可以包括:

根据所有原始音频数据、所有第一I2S总线接口的通道总数,以及第一I2S总线接口的每个通道的通信规则,确定每个第一I2S总线接口的每个通道对应的目标音频数据;其中,目标音频数据的数据位大于原始音频数据的数据位;

将得到的目标音频数据通过对应的第一I2S总线接口的通道输出。

在具体实施时,在本发明实施例中,确定每个第一I2S总线接口的每个通道对应的目标音频数据,可以包括:

在确定所有原始音频数据的数量Q满足公式:

示例性地,在具体实施时,在本发明实施例中,可以使第一I2S总线接口为2个,则所有第一I2S总线接口的通道总数为4个,也就是说,M=4。由于声源数据的声道的总数可以大于所有第一I2S总线接口的通道总数,那么可以使声道的总数为5个、6个、8个、12个、16个等,在此不作限定。

示例性地,在具体实施时,在本发明实施例中,也可以使第一I2S总线接口为3个,则所有第一I2S总线接口的通道总数为6个,也就是说,M=6。由于声源数据的声道的总数可以大于所有第一I2S总线接口的通道总数,那么可以使声道的总数为7个、8个、9个、12个、16个、18个、24个等,在此不作限定。

当然,在实际应用中,第一I2S总线接口的数量可以根据实际应用环境来设计确定,在此不作限定。

示例性地,在具体实施时,在本发明实施例中,可以使N=2,或者,也可以使N=4,或者,也可以使N=6等。当然,在实际应用中,N的数量可以根据实际应用环境来设计确定,在此不作限定。

一般杜比全景声(Dolby Atmos)5.1.2技术的多声道设备可以实现较佳的音效。示例性地,在具体实施时,在本发明实施例中,多个声道可以包括:左声道,右声道,左环绕声道,右环绕声道,左天空声道,右天空声道、中置声道、重低音声道。这样可以使该声源文件采用杜比全景声(Dolby Atmos)5.1.2技术的多声道设备进行播放。当然,在实际应用中,声道的具体声道可以根据实际应用环境来设计确定,在此不作限定。

示例性地,在具体实施时,在本发明实施例中,选取进行拆分的原始音频数据包括:中置声道对应的原始音频数据和重低音声道对应的原始音频数据。这样在后续解码时再将拆分后的数据进行拼接,从而得到中置声道对应的原始音频数据和重低音声道对应的原始音频数据。一般在多声道设备播放声音时,中置声道和重低音声道对播放效果的影响较小。并且一般传输过程中可能对拆分的数据造成影响,不利于后续的解码拼接。本发明实施例通过将中置声道对应的原始音频数据和重低音声道对应的原始音频数据进行拆分,在传输过程中对拆分的数据造成影响时,后续虽然可能解码不出中置声道对应的原始音频数据和重低音声道对应的原始音频数据,但是其对多声道设备的播放效果影响也较小。

一般数码录音通常使用16比特(bit)、20bit或24bit的二进制补码制作音乐的声源文件。示例性地,在具体实施时,在本发明实施例中,可以使原始音频数据为具有K个数据位的数字信号。示例性地,可以使原始音频数据为16比特(即K=16)、20比特(即K=20)或24比特(即K=24)等数据位的二进制的数字信号。

示例性地,在具体实施时,在本发明实施例中,可以使一个拆分音频数据为具有相邻的

需要说明的是,空白原始音频数据不携带声源的音频信息,其可以是采用“0”形成的数据。例如,原始音频数据为0100 0010 0001 1101的数字信号,则可以使空白原始音频数据为0000 0000 0000 0000的数字信号。

为了提高传输的稳定性,以及降低后序解码的时间,提高后序解码的效率,在具体实施时,在本发明实施例中,可以使同一第一I2S总线接口对应的两个目标音频数据中的拆分音频数据属于同一原始音频数据。

在具体实施时,在本发明实施例中,将得到的目标音频数据通过对应的第一I2S总线接口的通道输出,可以包括:

改变第一位时钟的采样位数,在第一帧时钟发生沿变化后的第2个第一位时钟的脉冲开始,按照第一位时钟传输单个声道的数据位,使每一个第一I2S总线接口在一个第一帧时钟的一个周期内传输两个声道的目标音频数据。

示例性地,在具体实施时,在本发明实施例中,第一位时钟的一个周期传输一个数据位。也就是说,第一位时钟采用单沿采样。例如,采用每一个周期的上升沿或下降沿采样一个数据位。

示例性地,在具体实施时,在本发明实施例中,第一位时钟的一个周期传输两个数据位。也就是说,第一位时钟采用双沿采样。例如,采用每一个周期的上升沿和下降沿分别采样一个数据位。

示例性地,在具体实施时,在本发明实施例中,可以使第一位时钟的采样位数与目标音频数据的数据位相同。

在具体实施时,在本发明实施例中,在根据预设编码规则将原始音频数据进行重新编码后通过至少2个第一I2S总线接口输出之后,还可以包括:

根据第二帧时钟和第二位时钟接收各第一I2S总线接口传输的目标音频数据,并根据预设编码规则将接收的数据进行重新解码,得到各原始音频数据;其中,第二帧时钟的时序与第一帧时钟的时序相同,第二位时钟的时序与第一位时钟的时序相同。这样可以稳定接收各第一I2S总线接口传输的目标音频数据。并还原出原始音频数据。

在具体实施时,在本发明实施例中,根据第二帧时钟和第二位时钟接收各第一I2S总线接口传输的目标音频数据,可以包括:可以根据一个第二帧时钟和一个第二位时钟接收各第一I2S总线接口传输的目标音频数据。这样可以降低输出的第二帧时钟和第二位时钟的信号数量。

在具体实施时,在本发明实施例中,根据第二帧时钟和第二位时钟接收各第一I2S总线接口传输的目标音频数据,也可以包括:根据多个第二帧时钟和多个第二位时钟接收各第一I2S总线接口传输的目标音频数据;其中,一个第一I2S总线接口对应一个第二帧时钟和一个第二位时钟。这样可以独立的接收每个第一I2S总线接口传输的目标音频数据,从而避免传输干扰,提高传输稳定性。

示例性地,在具体实施时,在本发明实施例中,可以使目标音频数据的数据位最多为第一I2S总线接口的一个通道最多可传输的数据位。例如,一般第一I2S总线接口的一个通道可以传输32bit的数据,则可以使目标音频数据的数据位最多为32bit。

示例性地,在具体实施时,在本发明实施例中,在根据预设编码规则将接收的数据进行重新解码,得到各原始音频数据之后,还可以包括:将得到的各原始音频数据采用多个第二I2S总线接口输出给多声道设备;其中,第二I2S总线接口的数量为所有声道的二分之一。也就是说,一个第二I2S总线接口对应两个原始音频数据。

下面结合图4至图7,以原始音频数据为16比特,以及第一I2S总线接口为3个为例,通过具体实施例对本发明提供的音频处理方法进行说明。但读者应知,其具体过程不局限于此。其中,这3个第一I2S总线接口分别为I2S_0、I2S_1、I2S_2。图5和图6仅是以目标音频数据SD1_0和目标音频数据SD2_0的传输过程为例进行说明的。

本发明实施例提供的音频处理方法,可以包括如下步骤:

(1)接收具有左声道,右声道,左环绕声道,右环绕声道,左天空声道,右天空声道、中置声道、重低音声道的声源数据。其中,该声源数据可以是USB存储介质中存储的,也可以为直接通过网络获取的。

(2)将声源数据解码出各声道对应的原始音频数据。其中,可以采用现有的任意解码方式将声源数据进行解码,以解码出各声道对应的原始音频数据。例如,结合图4所示,可以解码出左声道对应的16bit的原始音频数据ch0:16bit,右声道对应的16bit的原始音频数据ch1:16bit,左环绕声道对应的16bit的原始音频数据ch2:16bit,右环绕声道对应的16bit的原始音频数据ch3:16bit,左天空声道对应的16bit的原始音频数据ch4:16bit,右天空声道对应的16bit的原始音频数据ch5:16bit、中置声道对应的16bit的原始音频数据ch6:16bit、以及重低音声道对应的16bit的原始音频数据ch7:16bit。

(3)所有原始音频数据的数量为8个,即Q=8,所有第一I2S总线接口的通道总数为6,即M=6。则N=2。结合图4所示,在所有原始音频数据中增加1个空白原始音频数据ch8:16bit,这样可以在所有原始音频数据和生成的空白原始音频数据中,选取中置声道对应的16bit的原始音频数据ch6:16bit、重低音声道对应的16bit的原始音频数据ch7:16bit、以及空白原始音频数据ch8:16bit共3个原始音频数据进行拆分,使原始音频数据ch6:16bit生成拆分音频数据ch6:high 8bit、ch6:low 8bit;使原始音频数据ch7:16bit生成拆分音频数据ch7:high 8bit、ch7:low 8bit;使空白原始音频数据ch8:16bit生成拆分音频数据ch8:high 8bit、ch8:low 8bit。

(4)结合图4与图5所示,将原始音频数据ch0:16bit与拆分音频数据ch6:high8bit拼接为目标音频数据SD1_0,将原始音频数据ch1:16bit与拆分音频数据ch6:low 8bit拼接为目标音频数据SD2_0,将原始音频数据ch2:16bit与拆分音频数据ch7:high 8bit拼接为目标音频数据SD1_1,将原始音频数据ch3:16bit与拆分音频数据ch7:low 8bit拼接为目标音频数据SD2_1,将原始音频数据ch4:16bit与拆分音频数据ch8:high 8bit拼接为目标音频数据SD1_2,将原始音频数据ch5:16bit与拆分音频数据ch8:low 8bit拼接为目标音频数据SD2_2。

(5)结合图4与图5所示,一个目标音频数据的数据位由原始音频数据的16bit改变为24bit,因此可以改变第一位时钟BCLK1的采样位数,使第一位时钟BCLK1的采样位数与一个目标音频数据的数据位相同。并且,在第一位时钟BCLK1的每一个周期内的上升沿传输一个数据位。

在WS1=0时,控制第一I2S总线接口I2S_0对应左声道的通道传输目标音频数据SD1_0。具体地,在第一帧时钟WS1下降沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD1_0,使目标音频数据SD1_0采用第一I2S总线接口I2S_0的左声道对应的通道输出。其中,在传输目标音频数据SD1_0时,先从最高位开始依次传输原始音频数据ch0:16bit,之后再从最高位开始依次传输拆分音频数据ch6:high 16bit。

在WS1=1时,控制第一I2S总线接口I2S_0对应右声道的通道传输目标音频数据SD2_0。具体地,在第一帧时钟WS1上升沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD2_0,使目标音频数据SD2_0采用第一I2S总线接口I2S_0的右声道对应的通道输出。其中,在传输目标音频数据SD2_0时,先从最高位开始依次传输原始音频数据ch1:16bit,之后再从最高位开始依次传输拆分音频数据ch6:low 16bit。

同理,在WS1=0时,控制第一I2S总线接口I2S_1对应左声道的通道传输目标音频数据SD1_1。在WS1=1时,控制第一I2S总线接口I2S_1对应右声道的通道传输目标音频数据SD2_1。

并且,在WS1=0时,控制第一I2S总线接口I2S_2对应左声道的通道传输目标音频数据SD1_2。在WS1=1时,控制第一I2S总线接口I2S_2对应右声道的通道传输目标音频数据SD2_2。

(6)结合图4至图6所示,控制第二帧时钟WS2的时序与第一帧时钟WS1的时序相同,第二位时钟BCLK2的时序与第一位时钟BCLK1的时序相同。

根据第二帧时钟WS2和第二位时钟BCLK2,控制接收第一I2S总线接口I2S_0传输的目标音频数据SD1_0和SD2_0,控制接收第一I2S总线接口I2S_1传输的目标音频数据SD1_1和SD2_1,以及控制接收第一I2S总线接口I2S_2传输的目标音频数据SD1_2和SD2_2。

并根据上述预设编码规则,采用预设时钟信号YCLK分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1、SD1_2以及SD2_2中的前16bit的数据,即分别截取到原始音频数据ch0:16bit、ch1:16bit、ch2:16bit、ch3:16bit、ch4:16bit、ch5:16bit,并将原始音频数据ch0:16bit和ch1:16bit分别存放在第一个第二I2S总线接口的对应左声道的通道堆栈中和对应右声道的通道堆栈中,将原始音频数据ch2:16bit和ch3:16bit分别存放在第二个第二I2S总线接口的对应左声道的通道堆栈中和对应右声道的通道堆栈中,以及将原始音频数据ch4:16bit和ch5:16bit分别存放在第三个第二I2S总线接口的对应左声道的通道堆栈中和对应右声道的通道堆栈中,从而还原出来原始音频数据ch0:16bit、ch1:16bit、ch2:16bit、ch3:16bit、ch4:16bit、ch5:16bit。

之后分别截取目标音频数据SD1_0、SD2_0、SD1_1以及SD2_1中的后8bit数据,在目标音频数据SD1_0中的后8bit数据之后拼接目标音频数据SD2_0中的后8bit数据,以拼接还原出原始音频数据ch6:16bit,并将还原出的原始音频数据ch6:16bit存放在第四个第二I2S总线接口的对应左声道的通道堆栈中。在目标音频数据SD1_1中的后8bit数据之后拼接目标音频数据SD2_1中的后8bit数据,以拼接还原出原始音频数据ch7:16bit,并将还原出的原始音频数据ch7:16bit存放在第四个第二I2S总线接口的对应右声道的通道堆栈中。从而还原出来原始音频数据ch6:16bit、ch7:16bit。

之后,可以将还原出来的原始音频数据采用这些第二I2S总线接口输出给多声道设备中的功放装置中,以通过功放装置驱动扬声器发声。

需要说明的是,预设时钟信号可以为预设存储的时钟信号。并且,预设时钟信号的周期可以与位时钟的周期相同。在实际应用中,预设时钟信号可以根据实际应用环境来设计其频率,在此不作赘述。

需要说明的是,由于目标音频数据SD1_2和SD2_2中的后8bit数据是采用空白原始音频数据进行拆分得到的,其不是声源数据中携带的,因此可以将目标音频数据SD1_2和SD2_2中的后8bit数据直接进行删除。

通过上述实施例可以看出,在I2S总线接口为3个时,可以传输具有大于6个声道的声源数据,从而可以将声源文件中的所有声道对应的原始音频数据均传输到多声道设备中,进而提高多声道设备的播放效果。

当然,也可以先将接收到的目标音频数据SD1_0~SD2_2先进行缓存,然后再根据上述实施方式,采用预设时钟信号YCLK分别进行截取。具体实施方式可以参照上述实施例,在此不作赘述。

实施例二、

本实施例针对实施例一中的部分实施方式进行了变形。下面仅说明本实施例与实施例一的区别之处,其相同之处在此不作赘述。

在具体实施时,在本发明实施例中,确定每个第一I2S总线接口的每个通道对应的目标音频数据,也可以包括:

在确定所有原始音频数据的数量Q满足公式:

下面结合图5至图8,以原始音频数据为16比特,以及第一I2S总线接口为3个为例,通过具体实施例对本发明提供的音频处理方法进行说明。但读者应知,其具体过程不局限于此。其中,这3个第一I2S总线接口分别为I2S_0、I2S_1、I2S_2。

本发明实施例提供的音频处理方法,可以包括如下步骤:

(1)接收至少包括右声道,左环绕声道,右环绕声道,左天空声道,右天空声道、中置声道、重低音声道以及第九声道共9个声道的声源数据。

(2)将声源数据进行解码,以解码出左声道对应的16bit的原始音频数据ch0:16bit,右声道对应的16bit的原始音频数据ch1:16bit,左环绕声道对应的16bit的原始音频数据ch2:16bit,右环绕声道对应的16bit的原始音频数据ch3:16bit,左天空声道对应的16bit的原始音频数据ch4:16bit,右天空声道对应的16bit的原始音频数据ch5:16bit、中置声道对应的16bit的原始音频数据ch6:16bit、重低音声道对应的16bit的原始音频数据ch7:16bit、以及第九声道对应的16bit的原始音频数据ch9:16bit。

(3)所有原始音频数据的数量为9个,即Q=9,所有第一I2S总线接口的通道总数为6,即M=6。则N=2。结合图8所示,可以直接在所有原始音频数据中选取中置声道对应的16bit的原始音频数据ch6:16bit、重低音声道对应的16bit的原始音频数据ch7:16bit、以及第九声道对应的原始音频数据ch9:16bit共3个原始音频数据进行拆分,使原始音频数据ch6:16bit生成拆分音频数据ch6:high 8bit、ch6:low 8bit;使原始音频数据ch7:16bit生成拆分音频数据ch7:high 8bit、ch7:low 8bit;使原始音频数据ch9:16bit生成拆分音频数据ch9:high 8bit、ch9:low 8bit。

(4)结合图8与图5所示,将原始音频数据ch0:16bit与拆分音频数据ch6:high8bit拼接为目标音频数据SD1_0,将原始音频数据ch1:16bit与拆分音频数据ch6:low 8bit拼接为目标音频数据SD2_0,将原始音频数据ch2:16bit与拆分音频数据ch7:high 8bit拼接为目标音频数据SD1_1,将原始音频数据ch3:16bit与拆分音频数据ch7:low 8bit拼接为目标音频数据SD2_1,将原始音频数据ch4:16bit与拆分音频数据ch9:high 8bit拼接为目标音频数据SD1_2,将原始音频数据ch5:16bit与拆分音频数据ch9:low 8bit拼接为目标音频数据SD2_2。

(5)结合图8与图5所示,一个目标音频数据的数据位由原始音频数据的16bit改变为24bit,因此可以改变第一位时钟BCLK1的采样位数,使第一位时钟BCLK1的采样位数与一个目标音频数据的数据位相同。并且,在第一位时钟BCLK1的每一个周期内的上升沿传输一个数据位。

在WS1=0时,控制第一I2S总线接口I2S_0对应左声道的通道传输目标音频数据SD1_0。具体地,在第一帧时钟WS1下降沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD1_0,使目标音频数据SD1_0采用第一I2S总线接口I2S_0的左声道对应的通道输出。其中,在传输目标音频数据SD1_0时,先从最高位开始依次传输原始音频数据ch0:16bit,之后再从最高位开始依次传输拆分音频数据ch6:high 16bit。

在WS1=1时,控制第一I2S总线接口I2S_0对应右声道的通道传输目标音频数据SD2_0。具体地,在第一帧时钟WS1上升沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD2_0,使目标音频数据SD2_0采用第一I2S总线接口I2S_0的右声道对应的通道输出。其中,在传输目标音频数据SD2_0时,先从最高位开始依次传输原始音频数据ch1:16bit,之后再从最高位开始依次传输拆分音频数据ch6:low 16bit。

同理,在WS1=0时,控制第一I2S总线接口I2S_1对应左声道的通道传输目标音频数据SD1_1。在WS1=1时,控制第一I2S总线接口I2S_1对应右声道的通道传输目标音频数据SD2_1。

并且,在WS1=0时,控制第一I2S总线接口I2S_2对应左声道的通道传输目标音频数据SD1_2。在WS1=1时,控制第一I2S总线接口I2S_2对应右声道的通道传输目标音频数据SD2_2。

(6)结合图5至图8所示,控制第二帧时钟WS2的时序与第一帧时钟WS1的时序相同,第二位时钟BCLK2的时序与第一位时钟BCLK1的时序相同。

根据第二帧时钟WS2和第二位时钟BCLK2,控制接收第一I2S总线接口I2S_0传输的目标音频数据SD1_0和SD2_0,控制接收第一I2S总线接口I2S_1传输的目标音频数据SD1_1和SD2_1,以及控制接收第一I2S总线接口I2S_2传输的目标音频数据SD1_2和SD2_2。

并根据上述预设编码规则,分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1、SD1_2以及SD2_2中的前16bit的数据,即分别截取到原始音频数据ch0:16bit、ch1:16bit、ch2:16bit、ch3:16bit、ch4:16bit、ch5:16bit,并将原始音频数据ch0:16bit和ch1:16bit分别存放在第一个第二I2S总线接口的对应左声道的通道堆栈中和对应右声道的通道堆栈中,将原始音频数据ch2:16bit和ch3:16bit分别存放在第二个第二I2S总线接口的对应左声道的通道堆栈中和对应右声道的通道堆栈中,以及将原始音频数据ch4:16bit和ch5:16bit分别存放在第三个第二I2S总线接口的对应左声道的通道堆栈中和对应右声道的通道堆栈中,从而还原出来原始音频数据ch0:16bit、ch1:16bit、ch2:16bit、ch3:16bit、ch4:16bit、ch5:16bit。

之后分别截取目标音频数据SD1_0、SD2_0、SD1_1以及SD2_1中的后8bit数据,在目标音频数据SD1_0中的后8bit数据之后拼接目标音频数据SD2_0中的后8bit数据,以拼接还原出原始音频数据ch6:16bit,并将还原出的原始音频数据ch6:16bit存放在第四个第二I2S总线接口的对应左声道的通道堆栈中。在目标音频数据SD1_1中的后8bit数据之后拼接目标音频数据SD2_1中的后8bit数据,以拼接还原出原始音频数据ch7:16bit,并将还原出的原始音频数据ch7:16bit存放在第四个第二I2S总线接口的对应右声道的通道堆栈中。以及在目标音频数据SD1_2中的后8bit数据之后拼接目标音频数据SD2_2中的后8bit数据,以拼接还原出原始音频数据ch8:16bit,并将还原出的原始音频数据ch8:16bit存放在第五个第二I2S总线接口的对应左声道的通道堆栈中。从而还原出来原始音频数据ch6:16bit、ch7:16bit、ch8:16bit。

当然,也可以先将接收到的目标音频数据SD1_0~SD2_2先进行缓存,然后再根据上述实施方式,采用预设时钟信号YCLK分别进行截取。具体实施方式可以参照上述实施例,在此不作赘述。

实施例三、

本实施例针对实施例一中的部分实施方式进行了变形。下面仅说明本实施例与实施例一的区别之处,其相同之处在此不作赘述。

在具体实施时,在本发明实施例中,确定每个第一I2S总线接口的每个通道对应的目标音频数据,也可以包括:

在确定所有原始音频数据的数量Q满足公式:

示例性地,第一I2S总线接口的数量为2个时,所有第一I2S总线接口的通道的总数为4个,则所有原始音频数据的数量为8时,可以确定每一个目标音频数据包括2个原始音频数据,也就是说,N=4。

示例性地,第一I2S总线接口的数量为3个时,所有第一I2S总线接口的通道的总数为6个,则所有原始音频数据的数量为12时,可以确定每一个目标音频数据包括2个原始音频数据,也就是说,N=4。

当然,在实际应用中,第一I2S总线接口的数量以及所有原始音频数据的数量可以根据实际应用环境来设计确定,在此不作限定。

在具体实施时,在本发明实施例中,在N=4时,可以使同一目标音频数据中的两个原始音频数据设置为同一类型声道对应的原始音频数据。示例性地,这些声道中至少包括:左声道,右声道,左环绕声道,右环绕声道,左天空声道,右天空声道、中置声道、重低音声道。则左声道和右声道可以作为同一类型的主声道,左环绕声道和右环绕声道可以作为同一类型的环绕声道,左天空声道和右天空声道可以作为同一类型的天空声道,中置声道和重低音声道可以作为同一类型的增效声道。其余同理,在此不作赘述。

下面结合图9至图12,以原始音频数据为16比特,以及第一I2S总线接口为3个为例,通过具体实施例对本发明提供的音频处理方法进行说明。但读者应知,其具体过程不局限于此。其中,这3个第一I2S总线接口分别为I2S_0、I2S_1、I2S_2。图10仅是以目标音频数据SD1_0和目标音频数据SD2_0的传输过程为例进行说明的。

本发明实施例提供的音频处理方法,可以包括如下步骤:

(1)接收具有12个声道的声源数据。例如,这些声道中至少包括:左声道,右声道,左环绕声道,右环绕声道,左天空声道,右天空声道、中置声道、重低音声道。其余声道可以根据实际应用环境来设计确定,在此不作限定。

(2)结合图9所示,采用现有的任意解码方式将声源数据进行解码,以解码出这12个声道分别对应的原始音频数据:ch0:16bit、ch1:16bit、ch2:16bit、ch3:16bit、ch4:16bit、ch5:16bit、ch6:16bit、ch7:16bit、ch8:16bit、ch9:16bit、ch10:16bit、ch11:16bit。其中,ch0:16bit和ch1:16bit可以作为同一类型的声道对应的原始音频数据,ch2:16bit和ch3:16bit可以作为同一类型的声道对应的原始音频数据,ch4:16bit和ch5:16bit可以作为同一类型的声道对应的原始音频数据,ch6:16bit和ch7:16bit可以作为同一类型的声道对应的原始音频数据,ch8:16bit和ch9:16bit可以作为同一类型的声道对应的原始音频数据,ch10:16bit和ch11:16bit可以作为同一类型的声道对应的原始音频数据。

(3)由于第一I2S总线接口的数量为3个,则所有第一I2S总线接口的通道的总数为6个,即M=6。所有原始音频数据的数量为12,即Q=12。则可以使N=4,从而将两个原始音频数据组合为一个目标音频数据。例如,ch0:16bit和ch1:16bit作为一个目标音频数据SD1_0,使ch2:16bit和ch3:16bit作为一个目标音频数据SD2_0,使ch4:16bit和ch5:16bit作为一个目标音频数据SD1_1,使ch6:16bit和ch7:16bit作为一个目标音频数据SD2_1,使ch8:16bit和ch9:16bit作为一个目标音频数据SD1_2,使ch10:16bit和ch11:16bit作为一个目标音频数据SD2_2。

(4)结合图9与图10所示,一个目标音频数据的数据位由原始音频数据的16bit改变为32bit,因此可以改变第一位时钟BCLK1的采样位数,不改变第一位时钟BCLK1的采样频率,使第一位时钟BCLK1的采样位数与一个目标音频数据的数据位相同。并且,在第一位时钟BCLK1的每一个周期内的上升沿传输一个数据位。

在WS1=0时,控制第一I2S总线接口I2S_0对应左声道的通道传输目标音频数据SD1_0。具体地,在第一帧时钟WS1下降沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD1_0,使目标音频数据SD1_0采用第一I2S总线接口I2S_0的左声道对应的通道输出。其中,在传输目标音频数据SD1_0时,先从最高位开始依次传输原始音频数据ch0:16bit,之后再从最高位开始依次传输原始音频数据ch1:16bit。

在WS1=1时,控制第一I2S总线接口I2S_0对应右声道的通道传输目标音频数据SD2_0。具体地,在第一帧时钟WS1下降沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD2_0,使目标音频数据SD2_0采用第一I2S总线接口I2S_0的右声道对应的通道输出。其中,在传输目标音频数据SD2_0时,先从最高位开始依次传输原始音频数据ch2:16bit,之后再从最高位开始依次传输原始音频数据ch3:16bit。

同理,在WS1=0时,控制第一I2S总线接口I2S_1对应左声道的通道传输目标音频数据SD1_1。在WS1=1时,控制第一I2S总线接口I2S_1对应右声道的通道传输目标音频数据SD2_1。

并且,在WS1=0时,控制第一I2S总线接口I2S_2对应左声道的通道传输目标音频数据SD1_2。在WS1=1时,控制第一I2S总线接口I2S_2对应右声道的通道传输目标音频数据SD2_2。

(5)结合图9至图12所示,第一I2S总线接口I2S_0对应第二帧时钟WS2_0和第二位时钟BCLK2_0,第一I2S总线接口I2S_1对应第二帧时钟WS2_1和第二位时钟BCLK2_1,第一I2S总线接口I2S_2对应第二帧时钟WS2_2和第二位时钟BCLK2_2。其中,控制第二帧时钟WS2_0~WS2_2的时序分别与第一帧时钟WS1的时序相同,第二位时钟BCLK2_0~BCLK2_2的时序分别与第一位时钟BCLK1的时序相同。

根据第二帧时钟WS2_0和第二位时钟BCLK2_0,控制接收第一I2S总线接口I2S_0传输的目标音频数据SD1_0和SD2_0。根据第二帧时钟WS2_1和第二位时钟BCLK2_1,控制接收第一I2S总线接口I2S_1传输的目标音频数据SD1_1和SD2_1。根据第二帧时钟WS2_2和第二位时钟BCLK2_2,控制接收第一I2S总线接口I2S_2传输的目标音频数据SD1_2和SD2_2。

并根据上述预设编码规则,采用预设时钟信号YCLK分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1、SD1_2以及SD2_2中的前16bit的数据,即分别截取到原始音频数据ch0:16bit、ch2:16bit、ch4:16bit、ch6:16bit、ch8:16bit、ch10:16bit,并将原始音频数据ch0:16bit存放在第一个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch2:16bit存放在第二个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch4:16bit存放在第三个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch6:16bit存放在第四个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch8:16bit存放在第五个第二I2S总线接口的对应左声道的通道堆栈中,以及将原始音频数据ch10:16bit存放在第六个第二I2S总线接口的对应左声道的通道堆栈中。从而还原出来原始音频数据ch0:16bit、ch2:16bit、ch4:16bit、ch6:16bit、ch8:16bit、ch10:16bit。

之后,采用预设时钟信号YCLK分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1、SD1_2以及SD2_2中的后16bit的数据,即分别截取到原始音频数据ch1:16bit、ch3:16bit、ch5:16bit、ch7:16bit、ch9:16bit、ch11:16bit,并将原始音频数据ch1:16bit存放在第一个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch3:16bit存放在第二个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch5:16bit存放在第三个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch7:16bit存放在第四个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch9:16bit存放在第五个第二I2S总线接口的对应右声道的通道堆栈中,以及将原始音频数据ch11:16bit存放在第六个第二I2S总线接口的对应左声道的通道堆栈中。从而还原出来原始音频数据ch1:16bit、ch3:16bit、ch5:16bit、ch7:16bit、ch9:16bit、ch11:16bit。

之后,可以将还原出来的原始音频数据ch0:16bit~ch11:16bit采用这些第二I2S总线接口输出给多声道设备中的功放装置中,以通过功放装置驱动扬声器发声。

需要说明的是,在I2S总线接口为2个时,其传输声源数据的过程可以参照上述实施例,在此不作赘述。

当然,也可以先将接收到的目标音频数据SD1_0~SD2_2先进行缓存,然后再根据上述实施方式,采用预设时钟信号YCLK分别进行截取。具体实施方式可以参照上述实施例,在此不作赘述。

实施例四、

本实施例针对实施例三中的部分实施方式进行了变形。下面仅说明本实施例与实施例三的区别之处,其相同之处在此不作赘述。

本发明实施例提供的音频处理方法,除了包括上述步骤(1)~(3)还可以包括如下步骤:

(4)结合图9以及图13a至图13c所示,一个目标音频数据的数据位由原始音频数据的16bit改变为32bit,因此可以改变第一位时钟BCLK1的采样频率,不改变第一位时钟BCLK1的采样位数,使第一位时钟BCLK1的采样位数与一个目标音频数据的数据位相同。其中,在第一位时钟BCLK1的每一个周期内的上升沿和下降沿分别传输一个数据位。

在WS1=0时,控制第一I2S总线接口I2S_0对应左声道的通道传输目标音频数据SD1_0。具体地,在第一帧时钟WS1下降沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD1_0,使目标音频数据SD1_0采用第一I2S总线接口I2S_0的左声道对应的通道输出。其中,在传输目标音频数据SD1_0时,先从最高位开始依次传输原始音频数据ch0:16bit,之后再从最高位开始依次传输原始音频数据ch1:16bit。

在WS1=1时,控制第一I2S总线接口I2S_0对应右声道的通道传输目标音频数据SD2_0。具体地,在第一帧时钟WS1下降沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD2_0,使目标音频数据SD2_0采用第一I2S总线接口I2S_0的右声道对应的通道输出。其中,在传输目标音频数据SD2_0时,先从最高位开始依次传输原始音频数据ch2:16bit,之后再从最高位开始依次传输原始音频数据ch3:16bit。

同理,在WS1=0时,控制第一I2S总线接口I2S_1对应左声道的通道传输目标音频数据SD1_1。在WS1=1时,控制第一I2S总线接口I2S_1对应右声道的通道传输目标音频数据SD2_1。

并且,在WS1=0时,控制第一I2S总线接口I2S_2对应左声道的通道传输目标音频数据SD1_2。在WS1=1时,控制第一I2S总线接口I2S_2对应右声道的通道传输目标音频数据SD2_2。

(5)结合图9,以及图14a至图15所示,第一I2S总线接口I2S_0对应第二帧时钟WS2_0和第二位时钟BCLK2_0,第一I2S总线接口I2S_1对应第二帧时钟WS2_1和第二位时钟BCLK2_1,第一I2S总线接口I2S_2对应第二帧时钟WS2_2和第二位时钟BCLK2_2。其中,控制第二帧时钟WS2_0~WS2_2的时序分别与第一帧时钟WS1的时序相同,第二位时钟BCLK2_0~BCLK2_2的时序分别与第一位时钟BCLK1的时序相同。

根据第二帧时钟WS2_0和第二位时钟BCLK2_0,控制接收第一I2S总线接口I2S_0传输的目标音频数据SD1_0和SD2_0。根据第二帧时钟WS2_1和第二位时钟BCLK2_1,控制接收第一I2S总线接口I2S_1传输的目标音频数据SD1_1和SD2_1。根据第二帧时钟WS2_2和第二位时钟BCLK2_2,控制接收第一I2S总线接口I2S_2传输的目标音频数据SD1_2和SD2_2。

并根据上述预设编码规则,采用预设时钟信号YCLK分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1、SD1_2以及SD2_2中的前16bit的数据,即分别截取到原始音频数据ch0:16bit、ch2:16bit、ch4:16bit、ch6:16bit、ch8:16bit、ch10:16bit,并将原始音频数据ch0:16bit存放在第一个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch2:16bit存放在第二个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch4:16bit存放在第三个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch6:16bit存放在第四个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch8:16bit存放在第五个第二I2S总线接口的对应左声道的通道堆栈中,以及将原始音频数据ch10:16bit存放在第六个第二I2S总线接口的对应左声道的通道堆栈中。从而还原出来原始音频数据ch0:16bit、ch2:16bit、ch4:16bit、ch6:16bit、ch8:16bit、ch10:16bit。

之后,采用预设时钟信号YCLK分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1、SD1_2以及SD2_2中的后16bit的数据,即分别截取到原始音频数据ch1:16bit、ch3:16bit、ch5:16bit、ch7:16bit、ch9:16bit、ch11:16bit,并将原始音频数据ch1:16bit存放在第一个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch3:16bit存放在第二个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch5:16bit存放在第三个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch7:16bit存放在第四个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch9:16bit存放在第五个第二I2S总线接口的对应右声道的通道堆栈中,以及将原始音频数据ch11:16bit存放在第六个第二I2S总线接口的对应左声道的通道堆栈中。从而还原出来原始音频数据ch1:16bit、ch3:16bit、ch5:16bit、ch7:16bit、ch9:16bit、ch11:16bit。

之后,可以将还原出来的原始音频数据ch0:16bit~ch11:16bit采用这些第二I2S总线接口输出给多声道设备中的功放装置中,以通过功放装置驱动扬声器发声。

需要说明的是。预设时钟信号YCLK的时序可以与第二位时钟的时序相同。

实施例五、

本实施例针对实施例一中的部分实施方式进行了变形。下面仅说明本实施例与实施例一的区别之处,其相同之处在此不作赘述。

在具体实施时,在本发明实施例中,确定每个第一I2S总线接口的每个通道对应的目标音频数据,也可以包括:

在确定所有原始音频数据的数量Q满足公式:

在具体实施时,在本发明实施例中,选取进行拆分的原始音频数据可以包括:空白原始音频数据。这样在传输过程中对拆分的数据造成影响时,后续虽然可能解码不出空白原始音频数据,但是其对多声道设备的播放效果无影响。

下面以第一I2S总线接口为2个为例,则M=4。本发明实施例提供的音频处理方法,可以包括如下步骤:

(1)接收具有左声道,右声道,左环绕声道,右环绕声道,左天空声道,右天空声道、中置声道、重低音声道的声源数据。

(2)结合图16所示,采用现有的任意解码方式将声源数据进行解码,以解码出左声道对应的16bit的原始音频数据ch0:16bit,右声道对应的16bit的原始音频数据ch1:16bit,左环绕声道对应的16bit的原始音频数据ch2:16bit,右环绕声道对应的16bit的原始音频数据ch3:16bit,左天空声道对应的16bit的原始音频数据ch4:16bit,右天空声道对应的16bit的原始音频数据ch5:16bit、中置声道对应的16bit的原始音频数据ch6:16bit、以及重低音声道对应的16bit的原始音频数据ch7:16bit。

(3)所有原始音频数据的数量为8个,即Q=8,所有第一I2S总线接口的通道总数为4,即M=4。则N=4。结合图16所示,在所有原始音频数据中增加4个空白原始音频数据ch01:16bit、ch02:16bit、ch03:16bit、ch04:16bit,这样可以在所有原始音频数据和生成的空白原始音频数据中,选取空白原始音频数据ch01:16bit、ch02:16bit、ch03:16bit、ch04:16bit共4个原始音频数据进行拆分,使空白原始音频数据ch01:16bit生成拆分音频数据ch01:high 8bit、ch01:low 8bit;使空白原始音频数据ch02:16bit生成拆分音频数据ch02:high 8bit、ch02:low 8bit;使空白原始音频数据ch03:16bit生成拆分音频数据ch03:high 8bit、ch03:low 8bit,以及使空白原始音频数据ch04:16bit生成拆分音频数据ch04:high8bit、ch04:low 8bit。

(4)结合图16与图17所示,将原始音频数据ch0:16bit、ch1:16bit与拆分音频数据ch01:high 8bit、ch01:low 8bit拼接为目标音频数据SD1_0,将原始音频数据ch2:16bit、ch3:16bit与拆分音频数据ch02:high 8bit、ch02:low 8bit拼接为目标音频数据SD2_0,将原始音频数据ch4:16bit、ch5:16bit与拆分音频数据ch03:high 8bit、ch03:low 8bit拼接为目标音频数据SD1_1,将原始音频数据ch6:16bit、ch7:16bit与拆分音频数据ch04:high8bit、ch04:low 8bit拼接为目标音频数据SD2_1。以目标音频数据SD1_0为例,可以在ch0:16bit的最低位后面拼接ch01:high 8bit,并在ch01:high 8bit的最低位后面拼接ch1:16bit的最高位,在ch1:16bit的最低位后面拼接ch01:low 8bit的最低位。其他同理,依此类推,在此不作限定。

(5)结合图16与图17所示,一个目标音频数据的数据位由原始音频数据的16bit改变为48bit,因此可以改变第一位时钟BCLK1的采样位数与采样频率,使目标音频数据根据第一位时钟BCLK1传输。并且,在第一位时钟BCLK1的每一个周期内的上升沿和下降沿传输一个数据位。

在WS1=0时,控制第一I2S总线接口I2S_0对应左声道的通道传输目标音频数据SD1_0。具体地,在第一帧时钟WS1下降沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD1_0,使目标音频数据SD1_0采用第一I2S总线接口I2S_0的左声道对应的通道输出。其中,在传输目标音频数据SD1_0时,先从最高位开始依次传输原始音频数据ch0:16bit,之后再从最高位开始依次传输拆分音频数据ch01:high 16bit,之后再从最高位开始依次传输原始音频数据ch1:16bit,之后再从最高位开始依次传输拆分音频数据ch01:low 16bit。

在WS1=1时,控制第一I2S总线接口I2S_0对应右声道的通道传输目标音频数据SD2_0。具体地,在第一帧时钟WS1上升沿后的第2个第一位时钟BCLK1开始,按照第一位时钟BCLK1传输目标音频数据SD2_0,使目标音频数据SD2_0采用第一I2S总线接口I2S_0的右声道对应的通道输出。其中,在传输目标音频数据SD2_0时,先从最高位开始依次传输原始音频数据ch2:16bit,之后再从最高位开始依次传输拆分音频数据ch02:high 16bit,之后再从最高位开始依次传输原始音频数据ch3:16bit,之后再从最高位开始依次传输拆分音频数据ch02:low 16bit。

同理,在WS1=0时,控制第一I2S总线接口I2S_1对应左声道的通道传输目标音频数据SD1_1。在WS1=1时,控制第一I2S总线接口I2S_1对应右声道的通道传输目标音频数据SD2_1。

并且,在WS1=0时,控制第一I2S总线接口I2S_2对应左声道的通道传输目标音频数据SD1_2。在WS1=1时,控制第一I2S总线接口I2S_2对应右声道的通道传输目标音频数据SD2_2。

(6)结合图16至图19所示,控制第二帧时钟WS2的时序与第一帧时钟WS1的时序相同,第二位时钟BCLK2的时序与第一位时钟BCLK1的时序相同。

根据第二帧时钟WS2和第二位时钟BCLK2,控制接收第一I2S总线接口I2S_0传输的目标音频数据SD1_0和SD2_0,控制接收第一I2S总线接口I2S_1传输的目标音频数据SD1_1和SD2_1,以及控制接收第一I2S总线接口I2S_2传输的目标音频数据SD1_2和SD2_2。

并根据上述预设编码规则,采用预设时钟信号YCLK分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1中的前16bit的数据,即分别截取到原始音频数据ch0:16bit、ch2:16bit、ch4:16bit、ch6:16bit,并将原始音频数据ch0:16bit存放在第一个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch2:16bit存放在第二个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch4:16bit存放在第三个第二I2S总线接口的对应左声道的通道堆栈中,将原始音频数据ch6:16bit存放在第四个第二I2S总线接口的对应左声道的通道堆栈中。从而还原出来原始音频数据ch0:16bit、ch2:16bit、ch4:16bit、ch6:16bit。

之后,采用预设时钟信号YCLK分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1中的之后的8bit的数据,即分别截取到ch01:high 8bit、ch02:high8bit、ch04:high 8bit、ch06:high 8bit,可以直接将该数据删除。

之后,采用预设时钟信号YCLK分别截取目标音频数据SD1_0、SD2_0、SD1_1、SD2_1中的之后的16bit的数据,即分别截取到原始音频数据ch1:16bit、ch3:16bit、ch5:16bit、ch7:16bit,并将原始音频数据ch1:16bit存放在第一个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch3:16bit存放在第二个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch5:16bit存放在第三个第二I2S总线接口的对应右声道的通道堆栈中,将原始音频数据ch7:16bit存放在第四个第二I2S总线接口的对应右声道的通道堆栈中。从而还原出来原始音频数据ch1:16bit、ch3:16bit、ch5:16bit、ch7:16bit。

之后可以直接将删除的SD1_0、SD2_0、SD1_1、SD2_1中的数据删除。

基于同一发明构思,本发明实施例还提供了一种音频处理装置,如图20所示,包括:

至少2个第一I2S总线接口110;

接收电路120,用于接收具有多个声道的声源数据;

初解码电路130,用于将声源数据解码出各声道对应的原始音频数据;

重编码电路140,与至少2个第一I2S总线接口电连接,用于根据预设编码规则将原始音频数据进行重新编码后,通过至少2个第一I2S总线接口输出;其中,声道的总数大于所有第一I2S总线接口的通道总数。

在具体实施时,在本发明实施例中,如图20所示,音频处理装置还可以包括:与至少2个第一I2S总线接口110电连接的重解码电路150。该重解码电路150用于根据第二帧时钟和第二位时钟接收各第一I2S总线接口传输的目标音频数据,并根据预设编码规则将接收的数据进行重新解码,得到各原始音频数据;其中,第二帧时钟的时序与第一帧时钟的时序相同,第二位时钟的时序与第一位时钟的时序相同

在具体实施时,在本发明实施例中,如图20所示,重解码电路150通过多个第二I2S总线接口170将再次解码后的原始音频数据传输给多声道设备160。也就是说,重解码电路150可以通过多个第二I2S总线接口170与多声道设备160电连接。

其中,该音频处理装置的工作原理和具体实施方式与上述实施例音频处理方法的原理和实施方式相同,因此,该音频处理装置的工作方法可参见上述实施例中音频处理方法的具体实施方式进行实施,在此不再赘述。

在具体实施时,在本发明实施例中,上述各电路可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。示例性地,初解码电路可以为能够实现其功能的解码器。重编码电路可以为能够实现其功能的编码器。重解码电路可以为能够实现其功能的解码器或XMOS芯片。进一步地,上述第一I2S总线接口、接收电路、初解码电路以及重编码电路可以形成主芯片。

基于同一发明构思,本发明实施例还提供了一种多声道系统,包括多声道设备以及本发明实施例提供的上述音频处理装置。该多声道系统解决问题的原理与前述音频处理装置相似,因此该多声道系统的实施可以参见前述音频处理装置的实施,重复之处在此不再赘述。

在具体实施时,在本发明实施例中,多声道设备可以为电视机、笔记本电脑等任何具有显示功能的产品或部件,在此不作限定。

基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,并且该程序被处理器执行时实现本发明实施例提供的上述任一种音频处理方法的步骤。具体地,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

基于同一发明构思,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本发明实施例提供的上述任一种音频处理方法的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

技术分类

06120112197068