CN114299967A - 音频编解码方法和装置 - Google Patents

音频编解码方法和装置 Download PDF

Info

Publication number
CN114299967A
CN114299967A CN202011004241.5A CN202011004241A CN114299967A CN 114299967 A CN114299967 A CN 114299967A CN 202011004241 A CN202011004241 A CN 202011004241A CN 114299967 A CN114299967 A CN 114299967A
Authority
CN
China
Prior art keywords
data
audio frame
decoding
length
mode
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
Application number
CN202011004241.5A
Other languages
English (en)
Inventor
王萌
王卓
杜春晖
范泛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011004241.5A priority Critical patent/CN114299967A/zh
Priority to PCT/CN2021/118048 priority patent/WO2022062942A1/zh
Publication of CN114299967A publication Critical patent/CN114299967A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders

Abstract

本申请提供一种音频编解码方法和装置。本申请音频编解码方法包括:音频发送设备确定待编码的当前音频帧的信号类型和使用场景;根据当前音频帧的信号类型和当前音频帧的使用场景确定当前音频帧的初始编码方式;根据当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定当前音频帧的最终编码方式,最终编码方式包括时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;根据当前音频帧的最终编码方式对当前音频帧进行编码;音频接收设备获取码流;解析码流以获取待解码的码流数据和解码方式的指示信息;根据解码方式对码流数据进行解码。本申请具有音质高且根据信号特点和编码模式进行不同编码方式的自适应切换的优点。

Description

音频编解码方法和装置
技术领域
本申请涉及音频编解码技术,尤其涉及音频编解码方法和装置。
背景技术
随着真无线立体声(true wireless stereo,TWS)耳机、智能音箱和智能手表等无线蓝牙设备在人们日常生活中的广泛普及和使用,人们在各种场景下对高质量音乐播放体验的需求也变得越来越迫切,尤其是在地铁、机场、火车站等蓝牙信号易受干扰的环境中。由于蓝牙信道对数据传输大小的限制,音乐数据流必须经过蓝牙设备发送端的音频编码器进行数据压缩后才能传输到蓝牙设备接收端进行解码,这样同时也促使了各种蓝牙音频编解码器的蓬勃发展。
蓝牙音频编解码器主要应用于蓝牙互联的设备(耳机、音箱、智能可穿戴设备等)之间,以在不同场景需求下提供一个高质量的音乐传输和播放。目前音频编解码技术分为两种,一种是时域编码技术,例如可以是基于线性预测编码(linear predictive coding,LPC)方式的编解技术,对语音等具有明显谱包络的音频信号有很高的编码效率。另一种是频域编码技术,例如可以是基于改进的离散余弦变换(modified discrete cosinetransform,MDCT)方式的编解码技术,对音乐等频率丰富的音频信号有很高的编码效率。
因此,在LPC时域编解码和MDCT频域编解码之间实现灵活切换,可以提高音频编解码后的音质,对高清音频场景具有非常重要的意义。
发明内容
本申请提供一种音频编解码方法和装置,具有能够根据信号特点和编码模式进行不同编码方式的自适应切换。
第一方面,本申请提供一种音频编码方法,包括:确定待编码的当前音频帧的信号类型和使用场景,所述使用场景包括低延时场景或者高音质场景;根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,所述初始编码方式包括时域编码方式或者频域编码方式;根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,所述最终编码方式包括时域编码方式、频域编码方式、时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码。
音频帧可以是音频发送设备发送给音频接收设备的音频中的任意一帧。本申请中每次编码的对象可以是音频中的一帧音频帧,即本申请提供的音频编码方法是针对一帧音频帧的,下文确定编码方式的方法适用于音频中的每一帧音频帧。因此为了区分,将音频发送设备正在进行编码的音频帧称为音频帧或者当前音频帧,将音频发送设备仅先于音频帧编码的音频帧称为上一帧音频帧。
音频帧的信号类型可以包括语音类型或者音乐类型。音频帧的信号类型可以通过音频帧的属性信息确定,例如手机从音源文件中读取到待传输的音频后,也可从该音源文件中读取其属性信息;也可以通过音频帧的播放方式确定,例如,如果用户通过手机打电话,则手机传输给蓝牙耳机的音频帧属于语音类型,如果用户在手机上用应用程序(application,APP)播放音乐,则手机传输给蓝牙音响的音频帧属于音乐类型。除此之外,音频发送设备还可以通过其他方式获取音频帧的类型,本申请对此不做具体限定。
音频帧的使用场景可以包括低延时场景或者高音质场景。当编解码的帧长为N时,时域编码的延时为N个样点数据或者N+D个样点数据,频域编码的延时为2N个样点数据或者2N-2M个样点数据,本申请中默认低延时场景指的是时域编码,因为时域编码的延时比频域编码的延时低。由于频域编码可以结合心里声学模型,对于时域平稳信号的编码质量大于时域编码方式,而对于非时域平稳信号,时域编码方式的编码质量高,本申请中默认的高音质模式指的是时域和频域融合的编码方式,无论对于时域平稳信号还是非时域平稳信号都具有高质量的编码效果。
音频帧的使用场景可以通过用户在手机上APP的交互界面上点击的控件、选项等确定,例如用户在手机上连接蓝牙时,在弹出的界面上选择低延时场景或者高音质场景;也可以通过用户在手机上打开的APP类型确定,例如,如果该APP是游戏APP、直播APP、打电话APP或者K歌APP等,则使用场景是低延时场景;如果该APP是音频播放器APP,视频播放器APP、K歌APP、录音APP或者广播APP,则使用场景是高音质场景。除此之外,音频发送设备还可以通过其他方式获取音频帧的使用场景,本申请对此不做具体限定。
编码方式包括时域编码方式或者频域编码方式。当音频帧的使用场景为低延时场景时,确定音频帧的编码方式为时域编码方式。当音频帧的使用场景为高音质场景时,将音频帧拆分为多个音频子帧,计算多个音频子帧的能量方差;判断多个音频子帧的能量方差是否大于第一设定阈值;当多个音频子帧的能量方差大于第一设定阈值时,采用LPC编码对音频帧进行滤波得到滤波后的音频帧的能量;判断滤波后的音频帧的能量与音频帧的能量之比是否大于第二设定阈值;当滤波后的音频帧的能量与音频帧的能量之比大于第二设定阈值时,确定音频帧是时域平稳信号;当滤波后的音频帧的能量与音频帧的能量之比小于第二设定阈值时,确定音频帧不是时域平稳信号;当多个音频子帧的能量方差小于第一设定阈值时,采用MDCT变换对音频帧进行变换得到变换后的音频帧的各个频点的能量方差;判断变换后的音频帧的各个频点的能量方差是否大于第三设定阈值;当变换后的音频帧的各个频点的能量方差大于第三设定阈值时,确定音频帧是时域平稳信号;当变换后的音频帧的各个频点的能量方差小于第三设定阈值时,确定音频帧不是时域平稳信号。当音频帧是时域平稳信号时,确定音频帧的编码方式为频域编码方式;当音频帧不是时域平稳信号时,确定音频帧的编码方式为时域编码方式。
需要说明的是,上述分别与第一设定阈值、第二设定阈值、第三设定阈值的比较中,等于这一情况可以归于大于的情况进行处理,也可以归入小于的情况进行处理,本申请对此不作具体限定。
可选的,当音频帧为语音类型时,确定音频帧的编码方式为时域编码方式。这在相关技术中已采用,此处不再赘述。
可见,时域编码方式除了可以直接用于语音类型的音频帧,还可以用于低延时场景下的音乐类型的音频帧,以及高音质场景下的是音乐类型但不是时域平稳信号的音频帧,这样可以充分发挥出时域编码方式、尤其是LPC编码方式的低延时优势,以及对语音类型和非平稳信号的音频帧的高效编码的优势。
上述方法确定了音频帧的编码方式,而上一帧音频帧的最终编码方式在对其编码时已经确定了是上述四种最终编码方式的其中之一,因此有以下几种情况:
(1)当音频帧的编码方式和上一帧音频帧的编码方式均为频域编码方式时,确定音频帧的最终编码方式为频域编码方式;或者,
(2)当音频帧的编码方式为频域编码方式,上一帧音频帧的编码方式为时域编码方式时,确定音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,
(3)当音频帧的编码方式为频域编码方式,上一帧音频帧的编码方式为时域编码向频域编码切换编码方式时,确定音频帧的最终编码方式为频域编码方式;或者,
(4)当音频帧的编码方式为频域编码方式,上一帧音频帧的编码方式为频域编码向时域编码切换编码方式时,确定音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,
(5)当音频帧的编码方式和上一帧音频帧的编码方式均为时域编码方式时,确定音频帧的最终编码方式为时域编码方式;或者,
(6)当音频帧的编码方式为时域编码方式,上一帧音频帧的编码方式为频域编码方式时,确定音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,
(7)当音频帧的编码方式为时域编码方式,上一帧音频帧的编码方式为时域编码向频域编码切换编码方式时,确定音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,
(8)当音频帧的编码方式为时域编码方式,上一帧音频帧的编码方式为频域编码向时域编码切换编码方式时,确定音频帧的最终编码方式为时域编码方式。
根据音频帧的最终编码方式可以有以下几种编码方法:
(1)音频帧的最终编码方式为时域编码方式
音频发送设备将上一帧音频帧的后N/2个数据和音频帧的前N/2个数据拼接得到长度为N的第一数据,N表示音频帧的长度;对长度为N的第一数据进行时域编码。
本申请中对音频帧的时域编码过程可以参考图4所示的LPC编码方式,区别在于:图4中的编码对象是一个完整的音频帧,该音频帧包括例如N个采样点上的数据;而本申请中的编码对象虽然也是一个长度为N的数据,但该数据是由上一帧音频帧的后N/2个数据和音频帧的前N/2个数据拼接得到的,相当于是包含了两个音频帧各自的一半数据。
由于时域编码方式比频域编码方式的时延低,因此为了方便进行时域编码方式和频域编码方式之间的切换,本申请中音频接收设备在接收到当前音频帧的码流后,经时域解码,将得到的长度为N的数据的前N/2个数据与上一次时域解码得到的长度为N的数据的后N/2个数据组成完整的上一帧音频帧的N个数据。这样可以使得时域编解码的总时延从N个样点变为2N个样点,实现和频域编解码的总时延对齐。而将解码得到的长度为N的数据的后N/2个数据存入缓存中,以便于下一帧音频帧解码后,再依此方法组成完整的当前音频帧的N个数据。
(2)音频帧的最终编码方式为频域编码方式
音频发送设备将上一帧音频帧的N个数据和音频帧的N个数据拼接得到长度为2N的第一数据,N表示音频帧的长度;对长度为2N的第一数据进行加窗处理得到长度为2N的第二数据;对长度为2N的第二数据进行频域编码。
本申请中对音频帧的频域编码过程可以参考图5~7所示的MDCT变换方式。如上所述,频域编解码的总时延为2N个样点。
(3)音频帧的最终编码方式为频域编码向时域编码切换编码方式
音频发送设备对上一帧音频帧的N个数据进行加窗处理得到长度为N的第一数据,N表示音频帧的长度;对长度为N的第一数据进行以中心位置为奇对称点的奇对称折叠处理得到长度为N/2的第二数据;将长度为N/2的第二数据和音频帧的前N/2个数据拼接得到长度为N的第三数据;对长度为N的第三数据进行时域编码。
本申请中对音频帧的时域编码过程可以参考图4所示的LPC编码方式,区别在于:在时域编码前,融合频域编码方式(例如加窗处理和奇对称折叠处理)和时域编码方式,对上一帧音频帧和音频帧各自的部分数据进行预处理得到长度为N的数据,进而对该长度为N的数据进行时域编码。
(4)音频帧的最终编码方式为时域编码向频域编码切换编码方式
a、时域编解码的总时延为N个样点,N表示音频帧的长度
音频发送设备对音频帧的N个数据进行加窗处理得到长度为N的第一数据;对长度为N的第一数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第二数据;将上一帧音频帧后N/2个数据和长度为N/2的第二数据拼接得到长度为N的第三数据;对长度为N的第三数据进行时域编码。
本申请中对音频帧的时域编码过程可以参考图4所示的LPC编码方式,区别在于:在时域编码前,融合频域编码方式(例如加窗处理和偶对称折叠处理)和时域编码方式,对上一帧音频帧和音频帧各自的部分数据进行预处理得到长度为N的数据,进而对该长度为N的数据进行时域编码。
b、时域编解码的总时延为N+D个样点,N表示音频帧的长度,D表示时域编码方式中的正交镜像变换(quadrature mirror filter,QMF)的时延
音频发送设备对音频帧的N个数据进行加窗处理得到长度为N的第一数据;对长度为N的第一数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第二数据;对长度为N/2的第二数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三数据,长度为N的第三数据的前N/2个数据是长度为N/2的第二数据,长度为N的第三数据的后N/2个数据是长度为N/2的第四数据;将长度为N/2的第二数据和长度为N/2的第四数据的前D个数据拼接得到长度为N/2+D的第五数据;对长度为N/2+D的第五数据进行插值处理得到长度为N/2第六数据;将上一帧音频帧的后N/2个数据和长度为N/2第六数据拼接得到长度为N的第七数据;对长度为N的第七数据进行时域编码。
本申请中对音频帧的时域编码过程可以参考图4所示的LPC编码方式,区别在于:在时域编码前,融合频域编码方式(例如加窗处理和偶对称折叠处理)和时域编码方式,对上一帧音频帧和音频帧各自的部分数据进行预处理得到长度为N的数据,进而对该长度为N的数据进行时域编码。b情况和a情况的区别在于,由于时域编码方式增加了QMF处理将待传输的音频的频带分成多个子带,从而导致时域编码方式的时延增加了D个样点,因此为了使频域编解码和时域编解码各自的总时延对齐,需要在预处理中增加插值处理,将音频帧从N/2-D个数据或N/2+D个数据向N/2个数据等间距插值。由于实际情况下,D的值远远小于N/2,因此上述插值处理不会被人感知到。
根据上述(3)和(4)的描述,当音频帧的最终编码方式为切换编码方式(频域编码向时域编码切换和时域编码向频域编码切换)时,均采用时域编码方式对音频帧的N个数据进行编码,可以极大的降低运行开销,在保持音质的前提下降低码流比特大小(即码率恒定),对提高短距传输的抗干扰性具有非常重要的意义。另外,音频发送设备通过加窗处理和奇/偶对称折叠处理构造新的待编码数据,音频接收设备解码码流后,通过奇/偶对称展开处理和去窗处理,以及叠加处理恢复出原始数据。可见这种方式只需要更改编码前和解码后的数据,可以作为编码前预处理和解码后后处理,并不改变时域编解码的内部核心算法,实用性强。而且本申请可以结合任意的时域编码方式和频域编码方式,只需要满足:a、音频帧的长度相同;b、延迟可对齐。
本申请通过融合频域编码方式和时域编码方式,可以支持语音类型和音乐类型的音频帧的编解码,并且可以适用于低延时场景和高音质场景,实现码率范围16kbps~1000kbps全码率段,具有实现简单、开销小、码率恒定、音质高且根据信号特点和编码模式进行不同编码方式的自适应切换的优点。另外,还可以将任意的时域编码方式和任意的频域编码方式进行融合,使得音频编解码的架构灵活、拓展性强。
第二方面,本申请提供一种音频解码方法,包括:获取码流;解析所述码流以获取待解码的码流数据和解码方式的指示信息,所述解码方式包括时域解码方式、频域解码方式、时域解码向频域解码切换解码方式或者频域解码向时域解码切换解码方式;根据所述解码方式对所述码流数据进行解码。
音频接收设备解析接收到的编码码流的数据包头,得到解码方式的指示信息,根据该解码方式对码流数据进行解码和后处理(奇/偶对称展开处理、插值处理及去窗处理等)。音频接收设备解析数据包头确定当前音频帧的解码方式。然后音频接收设备采用该解码方式对码流数据进行解码(解码或者解码和后处理)得到音频PCM数据。
与编码过程相对应,根据解码方式可以有以下几种解码方法:
(1)音频帧的解码方式为时域解码方式
音频接收设备对码流数据进行时域解码得到长度为N的第一数据,长度为N的第一数据的前N/2个数据是上一帧音频帧的后N/2个数据,长度为N的第一数据的后N/2个数据是当前音频帧的前N/2个数据,N表示音频帧的长度;将上一次时域解码得到的缓存中的N/2个数据和长度为N的第一数据的前N/2数据拼接得到上一帧音频帧;将长度为N的第一数据的后N/2个数据存入缓存中。
(2)音频帧的解码方式为频域解码方式,且时域编解码的总时延为N+D个样点,N表示音频帧的长度,D表示时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为时域解码向频域解码切换解码方式
音频接收设备对码流数据进行时域解码得到长度为2N的第一数据;将长度为2N的第一数据的前N个数据的前N/2个数据和之后的D个数据拼接得到长度为N/2+D的第二数据;对长度为N/2+D的第二数据进行插值处理得到长度为N/2第三数据;将长度为2N的第一数据的前N个数据的后N/2个数据和之前的D个数据拼接得到长度为N/2+D的第四数据;对长度为N/2+D的第四数据进行插值处理得到长度为N/2第五数据;将长度为N/2的第三数据和长度为N/2的第五数据拼接得到长度为N的第六数据;将长度为N的第六数据和上一次频域解码得到的缓存中的N个数据进行去窗交叠处理得到上一帧音频帧;将长度为2N的第一数据的后N个数据存入缓存中。
(3)音频帧的解码方式为频域解码方式,且时域编解码的总时延为N+D个样点,N表示音频帧的长度,D表示时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为频域解码方式时;或者,音频帧的解码方式为频域解码方式,且时域编解码的总时延为N个样点
音频接收设备对码流数据进行时域解码得到长度为2N的第一数据;将长度为2N的第一数据的前N个数据和上一次频域解码得到的长度为2N的第二数据的后N个数据进行去窗交叠处理得到上一帧音频帧;将长度为2N的第一数据的后N个数据存入缓存中。
(4)音频帧的解码方式为频域解码向时域解码切换解码方式,且时域编解码的总时延为N个样点,N表示音频帧的长度
音频接收设备对码流数据进行时域解码得到长度为N的第一数据;将长度为N的第一数据的前N/2个数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第二数据;将长度为N的第二数据与上一次频域解码得到的长度为2N的第三数据的后N个数据进行去窗交叠处理得到长度为N的上一帧音频帧;将长度为N的第一数据的后N/2个数据存入缓存中。
(5)音频帧的解码方式为频域解码向时域解码切换解码方式,且时域编解码的总时延为N+D个样点,N表示音频帧的长度,D表示时域编码方式中的QMF的时延
音频接收设备对码流数据进行时域解码得到长度为N的第一数据;将长度为N的第一数据的前N/2个数据的后N/2-D个数据进行插值处理得到长度为N/2个第二数据;对长度为N/2个第二数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第三数据;将上一次频域解码得到的长度为2N的第四数据的后N个数据的前N/2-D个数据进行插值处理得到长度为N/2的第五数据;将上一次频域解码得到的长度为2N的第四数据的后N个数据的后N/2-D个数据进行插值处理得到长度为N/2的第六数据;将长度为N/2的第五数据和长度为N/2的第六数据拼接得到长度为N的第七数据;将长度为N的第三数据和长度为N的第七数据进行去窗交叠处理得到长度为N的上一帧音频帧;将长度为N的第一数据的后N/2个数据存入缓存中。
(6)音频帧的解码方式为时域解码向频域解码切换解码方式
音频接收设备对码流数据进行时域解码得到长度为N的第一数据,N表示音频帧的长度;将上一次时域解码得到的长度为N的第二数据的后N/2个数据和长度为N的第一数据的前N/2个数据拼接得到长度为N的上一帧音频帧;对长度为N的第一数据的后N/2个数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三数据;将长度为N的第三数据存入缓存中。
本申请通过融合频域编码方式和时域编码方式,可以支持语音类型和音乐类型的音频帧的编解码,并且可以适用于低延时场景和高音质场景,实现码率范围16kbps~1000kbps全码率段,具有实现简单、开销小、码率恒定、音质高且根据信号特点和编码模式进行不同编码方式的自适应切换的优点。另外,还可以将任意的时域编码方式和任意的频域编码方式进行融合,使得音频编解码的架构灵活、拓展性强。
在一种可能的实现方式中,音频发送设备上编码的对象音频帧,可以是PCM信号,或者,可以是将PCM信号经QMF得到的信号,或者,可以是将PCM信号经LPC逆滤波得到的残差信号。
本申请可以直接在原始的PCM信号上进行上述音频编解码方法。可选的,还可以在LPC滤波残差信号和QMF拆分子带信号上分别进行音频编解码。一种是音频发送设备将原始PCM信号经过LPC逆滤波得到残差信号,再针对残差信号执行上述音频编码方法。音频接收设备按照上述音频解码方法恢复出残差信号,然后对残差信号进行LPC滤波合成原始PCM信号。另一种是音频发送设备将原始PCM信号经过QMF拆分为多个子带信号,再针对每个子带信号执行上述音频编码方法。音频接收设备按照上述音频解码方法恢复除多个子带信号,然后对多个子带信号进行QMF合成合成原始PCM信号。
第三方面,本申请提供一种音频编码装置,包括:确定模块,用于确定待编码的当前音频帧的信号类型和使用场景,所述使用场景包括低延时场景或者高音质场景;根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,所述初始编码方式包括时域编码方式或者频域编码方式;根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,所述最终编码方式包括时域编码方式、频域编码方式、时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;编码模块,用于根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码。
在一种可能的实现方式中,所述确定模块,具体用于当所述当前音频帧的信号类型为音乐类型,且所述使用场景为低延时场景时,确定所述当前音频帧的初始编码方式为时域编码方式;或者,当所述当前音频帧的信号类型为音乐类型,且所述使用场景为高音质场景时,判断所述当前音频帧是否为时域平稳信号;若所述当前音频帧是时域平稳信号,则确定所述当前音频帧的初始编码方式为频域编码方式;或者,若所述当前音频帧不是时域平稳信号,则确定所述当前音频帧的初始编码方式为时域编码方式。
在一种可能的实现方式中,所述确定模块,具体用于将所述音频帧拆分为多个音频子帧;计算所述多个音频子帧的能量方差;当所述多个音频子帧的能量方差大于第一设定阈值时,采用线性预测编码LPC的滤波器对所述音频帧进行滤波得到滤波后的音频帧的能量,根据所述滤波后的音频帧的能量确定所述音频帧是否为所述时域平稳信号;当所述多个音频子帧的能量方差小于所述第一设定阈值时,采用改进的离散余弦变换MDCT对所述音频帧进行变换得到变换后的音频帧的各个频点的能量方差,根据所述变换后的音频帧的各个频点的能量方差确定所述音频帧是否为所述时域平稳信号。
在一种可能的实现方式中,所述确定模块,具体用于若所述滤波后的音频帧的能量与所述音频帧的能量之比大于第二设定阈值时,则所述音频帧是所述时域平稳信号;若所述滤波后的所述音频帧的能量与所述音频帧的能量之比小于所述第二设定阈值时,则所述音频帧不是所述时域平稳信号。
在一种可能的实现方式中,所述确定模块,具体用于若所述变换后的音频帧的各个频点的能量方差大于第三设定阈值,则所述音频帧是所述时域平稳信号;若所述变换后的音频帧的各个频点的能量方差小于所述第三设定阈值,则所述音频帧不是所述时域平稳信号。
在一种可能的实现方式中,所述确定模块,具体用于当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式。
在一种可能的实现方式中,当所述最终编码方式为所述时域编码方式时,所述编码模块,具体用于将所述上一帧音频帧的后N/2个样点数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第一数据,N表示音频帧的长度;对所述第一数据进行时域编码。
在一种可能的实现方式中,当所述最终编码方式为所述频域编码方式时,所述编码模块,具体用于将所述上一帧音频帧的N个样点数据和所述当前音频帧的N个样点数据拼接得到长度为2N的第二数据,N表示音频帧的长度;对所述第二数据进行加窗处理得到长度为2N的第三数据;对所述第三数据进行频域编码。
在一种可能的实现方式中,当所述最终编码方式为所述频域编码向时域编码切换编码方式时,所述编码模块,具体用于对所述上一帧音频帧的N个样点数据进行加窗处理得到长度为N的第四数据,N表示音频帧的长度;对所述第四数据进行以中心位置为奇对称点的奇对称折叠处理得到长度为N/2的第五数据;将所述第五数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第六数据;对所述第六数据进行时域编码。
在一种可能的实现方式中,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N个样点数据时,所述编码模块,具体用于对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第七数据,N表示音频帧的长度;对所述第七数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第八数据;将所述上一帧音频帧的后N/2个样点数据和所述第八数据拼接得到长度为N的第九数据;对所述第九数据进行时域编码。
在一种可能的实现方式中,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N+D个样点数据时,所述编码模块,具体用于对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第十数据;对所述第十数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第十一数据,N表示音频帧的长度;对所述第十一数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第十二数据,所述第十二数据的前N/2个样点数据是所述第十一数据,所述第十二数据的后N/2个样点数据是长度为N/2的第十三数据;将所述第十一数据和所述第十三数据的前D个样点数据拼接得到长度为N/2+D的第十四数据,D表示所述时域编码方式中的QMF的时延;对所述第十四数据进行插值处理得到长度为N/2第十五数据;将所述上一帧音频帧的后N/2个样点数据和所述第十五数据拼接得到长度为N的第十六数据;对所述第十六数据进行时域编码。
在一种可能的实现方式中,所述当前音频帧为脉冲编码调制PCM信号;或者,所述当前音频帧为PCM信号经正交镜像变换QMF得到的信号;或者,所述当前音频帧为PCM信号经LPC逆滤波得到的残差信号。
第四方面,本申请提供一种音频解码装置,包括:获取模块,用于获取码流;解码模块,用于解析所述码流以获取待解码的码流数据和解码方式的指示信息,所述解码方式包括时域解码方式、频域解码方式、时域解码向频域解码切换解码方式或者频域解码向时域解码切换解码方式;根据所述解码方式对所述码流数据进行解码。
在一种可能的实现方式中,当所述解码方式为所述时域解码方式时,所述解码模块,具体用于对所述码流数据进行时域解码得到长度为N的第十七数据,所述第十七数据的后N/2个样点数据是当前音频帧的前N/2个样点数据,所述第十七数据的前N/2个样点数据是所述当前音频帧的上一帧音频帧的后N/2个样点数据,N表示音频帧的长度;将缓存的所述上一帧音频帧的前N/2个样点数据和所述第十七数据的前N/2个样点数据拼接得到所述上一帧音频帧的数据;将所述第十七数据的后N/2个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,且上一帧音频帧的解码方式为所述时域解码向频域解码切换解码方式时,所述解码模块,具体用于对所述码流数据进行频域解码得到长度为2N的第十八数据,N表示音频帧的长度;将所述第十八数据的前N个样点数据的前N/2个样点数据和所述前N/2个样点数据之后的D个样点数据拼接得到长度为N/2+D的第十九数据,D表示所述时域编码方式中的正交镜像变换QMF的时延;对所述第十九数据进行插值处理得到长度为N/2第二十数据;将所述第十八数据的前N个样点数据的后N/2个样点数据和所述后N/2个样点数据之前的D个样点数据拼接得到长度为N/2+D的第二十一数据;对所述第二十一数据进行插值处理得到长度为N/2第二十二数据;将所述第二十数据和所述第二十二数据拼接得到长度为N的第二十三数据;将所述第二十三数据和上一次频域解码得到的缓存中的N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;将所述第十八数据的后N个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为所述频域解码方式时;或者,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N个样点数据时,所述解码模块,具体用于对所述码流数据进行频域解码得到长度为2N的第二十四数据;将所述第二十四数据的前N个样点数据和上一次频域解码得到的长度为2N的第二十五数据的后N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;将所述第二十四数据的后N个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N个样点数据,N表示音频帧的长度时,所述解码模块,具体用于对所述码流数据进行时域解码得到长度为N的第二十六数据;将所述第二十六数据的前N/2个样点数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第二十七数据;将所述第二十七数据与上一次频域解码得到的长度为2N的第二十八数据的后N个样点数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;将所述第二十六数据的后N/2个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延时,所述解码模块,具体用于对所述码流数据进行时域解码得到长度为N的第二十九数据;将所述第二十九数据的前N/2个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2个第三十数据;对所述第三十数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第三十一数据;将上一次频域解码得到的长度为2N的第三十二数据的后N个样点数据的前N/2-D个样点数据进行插值处理得到长度为N/2的第三十三数据;将所述第三十二数据的后N个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2的第三十四数据;将所述第三十三数据和所述第三十四数据拼接得到长度为N的第三十五数据;将所述第三十一数据和所述第三十五数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;将所述第二十九数据的后N/2个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述时域解码向频域解码切换解码方式时,所述解码模块,具体用于对所述码流数据进行时域解码得到长度为N的第三十六数据,N表示音频帧的长度;将上一次时域解码得到的长度为N的第三十七数据的后N/2个样点数据和所述第三十六数据的前N/2个样点数据拼接得到长度为N的上一帧音频帧的数据;对所述第三十六数据的后N/2个样点数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三十八数据;将所述第三十八数据存入缓存中。
在一种可能的实现方式中,所述上一帧音频帧为脉冲编码调制PCM信号;或者,所述上一帧音频帧为经正交镜像变换QMF得到的PCM信号;或者,所述上一帧音频帧为经LPC滤波得到的PCM信号。
第五方面,本申请提供一种音频编码设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中任一项所述的方法。
第六方面,本申请提供一种音频解码设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第二方面中任一项所述的方法。
第七方面,本申请提供一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一至二方面中任一项所述的方法。
第八方面,本申请提供一种计算机可读存储介质,包括根据如上述第一方面中任一项所述的音频编码方法获得的编码码流。
第九方面,本申请提供一种计算机可读存储介质,包括根据如上述第二方面中任一项所述的音频解码方法获得的音频帧。
附图说明
图1为本申请音频播放系统的一个示例性的结构图;
图2为本申请音频译码系统10的一个示例性的结构框图;
图3是本申请音频编码方法的一个示例性的流程图;
图4为本申请LPC编码方式的一个示例性的编解码框架图;
图5为本申请MDCT编码方式的一个示例性的编解码框架图;
图6a~6c为本申请窗函数的几个示例性的示意图;
图7为本申请通过MDCT变换和IMDCT变换得到PCM数据的一个示例性的过程图;
图8为本申请音频帧的编码方式的确定方法的一个示例性的流程图;
图9为本申请切换编解码方式的一个示例性的流程框图;
图10为本申请从频域编码向时域编码切换编码方式的一个示例性的帧变化流程图;
图11为本申请从时域编码向频域编码切换编码方式的一个示例性的帧变化流程图;
图12a和12b为本申请切换编解码方式的一个示例性的流程框图;
图13为本申请从频域编码向时域编码切换编码方式的一个示例性的帧变化流程图;
图14为本申请从时域编码向频域编码切换编码方式的一个示例性的帧变化流程图;
图15为本申请音频编码装置实施例的结构示意图;
图16为本申请音频解码装置实施例的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
本申请涉及到的相关名词解释:
音频帧:音频数据是流式的,在实际应用中,为了便于音频处理和传输,通常取一时长内的音频数据量作为一帧音频,该时长被称为“采样时间”,可以根据编解码器和具体应用的需求确定其值,例如该时长为2.0ms~60ms,ms为毫秒。
图1为本申请音频播放系统的一个示例性的结构图,如图1所示,该音频播放系统包括:音频发送设备和音频接收设备,其中,音频发送设备包括例如手机、电脑(笔记本电脑、台式电脑等)、平板(手持平板、车载平板等)等可以进行音频编码并发送音频码流的设备;音频接收设备包括例如TWS耳机、普通无线耳机、音响、智能手表、智能眼镜等可以接收音频码流、解码音频码流并播放的设备。
音频发送设备和音频接收设备之间可以建立蓝牙连接,二者之间可以支持语音和音乐的传输。音频发送设备和音频接收设备的较为广泛的示例是手机与TWS耳机、无线头戴式耳机或者无线颈圈式耳机之间,或者手机与其他终端设备(例如智能音箱、智能手表、智能眼镜和车载音箱等)之间。可选的,音频发送设备和音频接收设备的示例也可以是平板、笔记本电脑或者台式电脑与TWS耳机、无线头戴式耳机、无线颈圈式耳机或其他终端设备(例如智能音箱、智能手表、智能眼镜和车载音箱)之间。
需要说明的是,音频发送设备和音频接收设备之间除蓝牙连接外,还可以通过其他通信方式连接,例如WiFi连接、有线连接或其他无线连接等,本申请对此不做具体限定。
图2为本申请音频译码系统10的一个示例性的结构框图,如图2所示,音频译码系统10可包括源设备12和目的设备14,源设备12可以是图1的音频发送设备,目的设备14可以是图1的音频接收设备。源设备12产生经编码的码流,因此,源设备12可被称为音频编码装置。目的设备14可对由源设备12所产生的经编码的码流进行解码,因此,目的设备14可被称为音频解码装置。
源设备12包括编码器20,可选地,可包括输入接口16、音频预处理器18、通信接口22。
输入接口16用于输入音频脉冲编码调制(pulse code modulation,PCM)数据和使用场景。其中,音频PCM数据可以分为语音类型或音乐类型,使用场景分为低延迟场景或高音质场景。
音频预处理器18用于根据输入接口16输入的音频PCM数据的类型和使用场景确定编码方式。即在语音类型下、或者在音乐类型和低延迟场景下,采用时域编码方式(例如LPC方式)对音频帧进行编码,这样可以充分体现时域编码方式对语音信号的高效编码和低延迟的优点;在音乐类型和高音质场景下,采用时域编码方式和频域编码方式(例如MDCT方式)融合的编码方案对音频帧进行编码,根据音频帧的瞬态特征和平稳特征自适应地选择合适的编码方式。
编码器20用于根据音频预处理器18确定出的编码方式对音频帧进行编码得到码流。
源设备12中的通信接口22可用于接收码流并通过通信信道13向目的设备14发送该码流。
目的设备14包括解码器30,可选地,可包括通信接口28、音频后处理器32和播放设备34。
目的设备14中的通信接口28用于直接从源设备12接收码流,并将码流提供给解码器30。
通信接口22和通信接口28可用于通过源设备12与目的设备14之间的通信链路,例如蓝牙连接等,发送或接收码流。
例如,通信接口22可用于将码流封装为报文等合适的格式,和/或使用蓝牙的传输编码或处理来处理码流,以便在通信链路上进行传输。
通信接口28与通信接口22对应,例如,可用于接收码流,并使用对应传输解码或处理和/或解封装,得到码流。
通信接口22和通信接口28均可配置为如图2中从源设备12指向目的设备14的对应通信信道13的箭头所指示的单向通信接口,或双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或编码音频数据等数据传输相关的任何其它信息,等等。
解码器30用于接收码流,并根据码流中的解码方式的指示信息对码流中的码流数据解码得到音频数据。
音频后处理器32用于对解码的音频数据进行后处理,得到后处理后的音频数据。音频后处理器32执行的后处理可以包括例如修剪或重采样等。
播放设备34用于接收后处理后的音频数据,以向用户或收听者播放音频。播放设备34可以为或包括任意类型的用于播放重建后音频的播放器,例如,集成或外部扬声器。例如,扬声器可包括喇叭、音响等。
基于上述实施例的描述,本申请提供了一种多声道音频信号的编解码方法。
图3是本申请音频编码方法的一个示例性的流程图。该过程300可由音频播放系统中的音频发送设备执行,即由音频发送设备实现音频编码,然后将编码码流发送给音频接收设备。过程300描述为一系列的步骤或操作,应当理解的是,过程300可以以各种顺序执行和/或同时发生,不限于图3所示的执行顺序。如图3所示,该方法包括:
步骤301、音频发送设备确定待编码的当前音频帧的信号类型和使用场景。
音频帧可以是音频发送设备发送给音频接收设备的音频中的任意一帧。本申请中每次编码的对象可以是音频中的一帧音频帧,即本申请提供的音频编码方法是针对一帧音频帧的,下文确定编码方式的方法适用于音频中的每一帧音频帧。因此为了区分,将音频发送设备正在进行编码的音频帧称为音频帧或者当前音频帧,将音频发送设备仅先于音频帧编码的音频帧称为上一帧音频帧。
音频帧的信号类型可以包括语音类型或者音乐类型。当前音频帧的信号类型可以通过音频帧的属性信息确定,例如手机从音源文件中读取到待传输的音频后,也可从该音源文件中读取其属性信息;也可以通过音频帧的播放方式确定,例如,如果用户通过手机打电话,则手机传输给蓝牙耳机的音频帧属于语音类型,如果用户在手机上用应用程序(application,APP)播放音乐,则手机传输给蓝牙音响的音频帧属于音乐类型。除此之外,音频发送设备还可以通过其他方式获取音频帧的类型,本申请对此不做具体限定。
音频帧的使用场景可以包括低延时场景或者高音质场景。当编解码的帧长为N时,时域编码的延时为N个样点数据或者N+D个样点数据,频域编码的延时为2N个样点数据或者2N-2M个样点数据,本申请中默认低延时场景指的是时域编码,因为时域编码的延时比频域编码的延时低。由于频域编码可以结合心里声学模型,对于时域平稳信号的编码质量大于时域编码方式,而对于非时域平稳信号,时域编码方式的编码质量高,本申请中默认的高音质模式指的是时域和频域融合的编码方式,无论对于时域平稳信号还是非时域平稳信号都具有高质量的编码效果。
音频帧的使用场景可以通过用户在手机上APP的交互界面上点击的控件、选项等确定,例如用户在手机上连接蓝牙时,在弹出的界面上选择低延时场景或者高音质场景;也可以通过用户在手机上打开的APP类型确定,例如,如果该APP是游戏APP、直播APP、打电话APP或者K歌APP等,则使用场景是低延时场景;如果该APP是音频播放器APP,视频播放器APP、K歌APP、录音APP或者广播APP,则使用场景是高音质场景。除此之外,音频发送设备还可以通过其他方式获取音频帧的使用场景,本申请对此不做具体限定。
音频帧可以是音频发送设备发送给音频接收设备的音频中的任意一帧。本申请中每次编码的对象可以是音频中的一帧音频帧,即本申请提供的音频编码方法是针对一帧音频帧的,下文确定编码方式的方法适用于音频中的每一帧音频帧。因此为了区分,将音频发送设备正在进行编码的音频帧称为音频帧或者当前音频帧,将音频发送设备仅先于音频帧编码的音频帧称为上一帧音频帧。
可选的,音频帧为脉冲编码调制PCM信号;或者,音频帧为PCM信号经正交镜像变换QMF得到的信号;或者,音频帧为PCM信号经LPC逆滤波得到的残差信号。
步骤302、音频发送设备根据当前音频帧的信号类型和当前音频帧的使用场景确定当前音频帧的初始编码方式。
初始编码方式包括时域编码方式或者频域编码方式。
时域编码方式例如可以是指LPC编码方式。图4为本申请LPC编码方式的一个示例性的编解码框架图,如图4所示,音频发送设备先将音频PCM数据输入斜滤波器(TiltFilter)进行处理,斜滤波器的作用是让输入的PCM数据在不同频率上的能量分布更均匀,这样可以提高后面LPC编码的效率。然后对斜滤波处理后的数据进行LPC编码。假设N表示音频帧的长度,即一个音频帧包含N个采样点,以下示例性的描述了LPC编码的原理:
Figure BDA0002695358150000141
其中,x表示原始信号,
Figure BDA0002695358150000142
表示LPC编码后的信号,ai表示LPC编码系数,p表示LPC编码的阶数,常见的LPC编码阶数为8阶或16阶。上述公式表示当前样点值
Figure BDA0002695358150000143
可以由历史的p个样点值x(n-i),i=1~p进行线性预测。ai可以通过求解残差信号
Figure BDA0002695358150000144
Figure BDA0002695358150000145
最小化得到,常见的解法为levinson durbin算法。
音频发送设备先通过levinson durbin算法进行LPC分析得到p个LPC编码系数ai,对ai进行编码。然后通过LPC逆滤波得到残差信号
Figure BDA0002695358150000146
分配比较少的比特对该残差进行编码。这样音频发送设备只编码LPC编码系数和残差信号e(n),并不需要编码原始PCM数据,以达到数据压缩的目的。最后音频发送设备将编码后的LPC编码系数和残差信号e(n)打包成码流送给音频接收设备进行解码。
音频接收设备先解码出LPC编码系数和残差信号e(n),然后经过LPC滤波合成信号,再经过逆斜滤波器恢复出解码后的PCM数据。
由此可见,时域编解码的总延迟为N。
频域编码方式例如可以是指MDCT编码方式。图5为本申请MDCT编码方式的一个示例性的编解码框架图,如图5所示,音频发送设备对输入的音频PCM数据经过加窗处理和MDCT变换后得到频域数据,然后对频域数据进行编码获得编码码流。音频接收设备对编码码流进行解码,经过IMDCT变换和去窗处理后、再混叠相加得到解码后的PCM数据。加窗的作用是防止频谱泄漏。
如图6a所示,普通窗是对称窗,因此MDCT变换和IMDCT变换用的普通窗是一样的,采用普通窗时,频域编解码的总延迟为2N个样点,其中编码侧延迟为N,解码侧延迟也为N。
如图6b和图6c所示,低延迟窗是非对称窗,因此MDCT变换和IMDCT变换用的低延迟窗互为倒置。MDCT变换用的低延迟窗的后M个样点是M个零点,这M个零点乘以任意数据都为零,因此只需要2N-M个数据即可进行MDCT变换,相当于编码侧采用低延迟窗比采用普通窗在MDCT变换时少了M个样点的延迟。IMDCT变换用的低延迟窗的前M个样点是M个零点,这M个零点乘以任意数据都为零,因此IMDCT变换后的前M个样点不用参与到与上一帧音频帧的去窗和交叠过程,相当于解码侧采用低延迟窗比采用普通窗在IMDCT变换时又少了M个样点的延迟。综上所述,采用低延迟窗时,频域编解码的总延迟为2N-2M个样点。
假设N表示音频帧的长度,即一个音频帧包含N个采样点,以下示例性的描述了MDCT变换和IMDCT变换的原理:
MDCT变换的原理是
Figure BDA0002695358150000151
相应的,IMDCT变换为MDCT变换的逆变换,其原理是
Figure BDA0002695358150000152
其中,x(n)和X(k)分别表示原始时域数据和MDCT变化后的频率数据。上述MDCT变换的公式表示将长度为2N的时域数据变化为长度为N的频域数据;上述IMDCT变换的公式表示将长度为N的频域数据逆变换为长度为2N的时域数据。
音频发送设备经过加窗处理和MDCT变换后,得到频域MDCT数据X(k),然后再计算频域的谱包络信息用于对X(k)进行归一化,再分配比特对归一化后的MDCT数据进行量化,并与频谱包络信息一起打包成码流。音频接收设备解码出频谱包络信息和归一化后的MDCT数据,计算得到原始MDCT数据,然后通过IMDCT逆变化和去窗处理,与上一帧解码出来的数据进行叠加,最终得到上一帧数据。因此,基于MDCT的频域编码器是编码第i帧,解码得到第i-1帧,整体延迟为两帧数据。
图7为本申请通过MDCT变换和IMDCT变换得到PCM数据的一个示例性的过程图,如图7所示,音频包含3个音频帧(第1~3帧),每帧音频帧的长度为N,被等分为前N/2个数据和后N/2个数据两部分,其中第1帧分为a和b,第2帧分为c和d,第3帧分为e和f,因此a~f的长度均为N/2。
第一次MDCT变换的过程包括:音频发送设备先将第1帧和第2帧拼接成长度为2N的第一数据(a、b、c和d),然后对该第一数据进行折叠得到长度为N的第二数据(-cr-d和a-br),r表示数据倒置(reverse),再对该第二数据进行第四类型离散余弦变换(discretecosine transform,DCT)变换得到长度为N的第三数据(-Cr-D和A-Br)。可见MDCT变换实现了长度为2N到长度为N的变换。
第一次IMDCT变换的过程包括:音频接收设备先对第三数据进行第四类型DCT逆变换得到长度为N的第二数据(-cr-d和a-br),然后再对第二数据进行展开得到长度为2N的第四数据(a-br、-ar+b、c+dr和cr+d),其中a-br和-ar+b互为奇对称,c+dr和cr+d互为偶对称。可见第一次MDCT变换和IMDCT变换的结果是IMDCT(MDCT(a,b,c,d))=a-br,-ar+b,c+dr,cr+d。
同理,第二次MDCT变换是先将第2帧和第3帧拼接成长度为2N的第一数据(c、d、e和f),经上述MDCT变换和IMDCT变换的过程后可以得到IMDCT(MDCT(c,d,e,f))=c-dr,-cr+d,e+fr,fr+e。
音频接收设备将第一次MDCT变换和IMDCT变换后得到的后半部分(即第一次的第四数据的后N个数据c+dr和cr+d)与第二次MDCT变换和IMDCT变换后得到的前半部分(即第二次的第四数据的前N个数据c-dr和-cr+d)叠加,可以得到c和d,也就是得到了原始的第2帧。可见,音频接收设备可以在输入第3帧的时候得到第2帧,整体延迟为2N个样点。
在一种可能的实现方式中,对于基于低延迟窗的MDCT变换和IMDCT变换,由于窗函数中带M个零点,所以编码侧和解码侧的延迟各减少M,整体延迟为2N-2M。
图8为本申请音频帧的编码方式的确定方法的一个示例性的流程图,如图8所示,输入为音乐类型的PCM数据,判断音频帧的使用场景;当音频帧的使用场景为低延时场景时,确定音频帧的编码方式为时域编码方式。
当音频帧的使用场景为高音质场景时,将音频帧拆分为多个音频子帧,计算多个音频子帧的能量方差;判断多个音频子帧的能量方差是否大于第一设定阈值;
当多个音频子帧的能量方差大于第一设定阈值时,采用LPC编码对音频帧进行滤波;判断滤波后的音频帧的能量与音频帧的能量之比是否大于第二设定阈值;当滤波后的音频帧的能量与音频帧的能量之比大于第二设定阈值时,确定音频帧是时域平稳信号;当滤波后的音频帧的能量与音频帧的能量之比小于第二设定阈值时,确定音频帧不是时域平稳信号;
当多个音频子帧的能量方差小于第一设定阈值时,采用MDCT变换对音频帧进行变换;判断变换后的音频帧的各个频点的能量方差是否大于第三设定阈值;当变换后的音频帧的各个频点的能量方差大于第三设定阈值时,确定音频帧是时域平稳信号;当变换后的音频帧的各个频点的能量方差小于第三设定阈值时,确定音频帧不是时域平稳信号。
当音频帧是时域平稳信号时,确定音频帧的编码方式为频域编码方式;当音频帧不是时域平稳信号时,确定音频帧的编码方式为时域编码方式。
需要说明的是,上述分别与第一设定阈值、第二设定阈值、第三设定阈值的比较中,等于这一情况可以归于大于的情况进行处理,也可以归入小于的情况进行处理,本申请对此不作具体限定。
可选的,当音频帧为语音类型时,确定音频帧的编码方式为时域编码方式。这在相关技术中已采用,此处不再赘述。
可见,本申请中时域编码方式除了可以直接用于语音类型的音频帧,还可以用于低延时场景下的音乐类型的音频帧,以及高音质场景下的是音乐类型但不是时域平稳信号的音频帧,这样可以充分发挥出时域编码方式、尤其是LPC编码方式的低延时优势,以及对语音类型和非平稳信号的音频帧的高效编码的优势。
步骤303、音频发送设备根据当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定当前音频帧的最终编码方式。
最终编码方式包括时域编码方式、频域编码方式、时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式。步骤302确定了音频帧的编码方式,而上一帧音频帧的最终编码方式在对其编码时已经确定了是上述四种最终编码方式的其中之一,因此有以下几种情况:
(1)当音频帧的编码方式和上一帧音频帧的编码方式均为频域编码方式时,确定音频帧的最终编码方式为频域编码方式;或者,
(2)当音频帧的编码方式为频域编码方式,上一帧音频帧的编码方式为时域编码方式时,确定音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,
(3)当音频帧的编码方式为频域编码方式,上一帧音频帧的编码方式为时域编码向频域编码切换编码方式时,确定音频帧的最终编码方式为频域编码方式;或者,
(4)当音频帧的编码方式为频域编码方式,上一帧音频帧的编码方式为频域编码向时域编码切换编码方式时,确定音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,
(5)当音频帧的编码方式和上一帧音频帧的编码方式均为时域编码方式时,确定音频帧的最终编码方式为时域编码方式;或者,
(6)当音频帧的编码方式为时域编码方式,上一帧音频帧的编码方式为频域编码方式时,确定音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,
(7)当音频帧的编码方式为时域编码方式,上一帧音频帧的编码方式为时域编码向频域编码切换编码方式时,确定音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,
(8)当音频帧的编码方式为时域编码方式,上一帧音频帧的编码方式为频域编码向时域编码切换编码方式时,确定音频帧的最终编码方式为时域编码方式。
步骤304、音频发送设备根据当前音频帧的最终编码方式对当前音频帧进行编码。
根据步骤303中确定的音频帧的最终编码方式可以有以下几种编码方法:
(1)音频帧的最终编码方式为时域编码方式
音频发送设备将上一帧音频帧的后N/2个数据和音频帧的前N/2个数据拼接得到长度为N的第一数据,N表示音频帧的长度;对长度为N的第一数据进行时域编码。
本申请中对音频帧的时域编码过程可以参考图4所示的LPC编码方式,区别在于:图4中的编码对象是一个完整的音频帧,该音频帧包括例如N个采样点上的数据;而本申请中的编码对象虽然也是一个长度为N的数据,但该数据是由上一帧音频帧的后N/2个数据和音频帧的前N/2个数据拼接得到的,相当于是包含了两个音频帧各自的一半数据。
由于时域编码方式比频域编码方式的时延低,因此为了方便进行时域编码方式和频域编码方式之间的切换,本申请中音频接收设备在接收到当前音频帧的码流后,经时域解码,将得到的长度为N的数据的前N/2个数据与上一次时域解码得到的长度为N的数据的后N/2个数据组成完整的上一帧音频帧的N个数据。这样可以使得时域编解码的总时延从N个样点变为2N个样点,实现和频域编解码的总时延对齐。而将解码得到的长度为N的数据的后N/2个数据存入缓存中,以便于下一帧音频帧解码后,再依此方法组成完整的当前音频帧的N个数据。
(2)音频帧的最终编码方式为频域编码方式
音频发送设备将上一帧音频帧的N个数据和音频帧的N个数据拼接得到长度为2N的第一数据,N表示音频帧的长度;对长度为2N的第一数据进行加窗处理得到长度为2N的第二数据;对长度为2N的第二数据进行频域编码。
本申请中对音频帧的频域编码过程可以参考图5~7所示的MDCT变换方式。如上所述,频域编解码的总时延为2N个样点。
(3)音频帧的最终编码方式为频域编码向时域编码切换编码方式
音频发送设备对上一帧音频帧的N个数据进行加窗处理得到长度为N的第一数据,N表示音频帧的长度;对长度为N的第一数据进行以中心位置为奇对称点的奇对称折叠处理得到长度为N/2的第二数据;将长度为N/2的第二数据和音频帧的前N/2个数据拼接得到长度为N的第三数据;对长度为N的第三数据进行时域编码。
本申请中对音频帧的时域编码过程可以参考图4所示的LPC编码方式,区别在于:在时域编码前,融合频域编码方式(例如加窗处理和奇对称折叠处理)和时域编码方式,对上一帧音频帧和音频帧各自的部分数据进行预处理得到长度为N的数据,进而对该长度为N的数据进行时域编码。
上述奇对称折叠处理的公式:
Figure BDA0002695358150000181
其中,
Figure BDA0002695358150000182
表示音频帧的第i+N/2个样点数据,
Figure BDA0002695358150000183
表示音频帧的第N/2+1-i个样点数据,y(i)表示奇对称折叠处理后得到的第i个样点数据。
(4)音频帧的最终编码方式为时域编码向频域编码切换编码方式
a、时域编解码的总时延为N个样点,N表示音频帧的长度
音频发送设备对音频帧的N个数据进行加窗处理得到长度为N的第一数据;对长度为N的第一数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第二数据;将上一帧音频帧后N/2个数据和长度为N/2的第二数据拼接得到长度为N的第三数据;对长度为N的第三数据进行时域编码。
本申请中对音频帧的时域编码过程可以参考图4所示的LPC编码方式,区别在于:在时域编码前,融合频域编码方式(例如加窗处理和偶对称折叠处理)和时域编码方式,对上一帧音频帧和音频帧各自的部分数据进行预处理得到长度为N的数据,进而对该长度为N的数据进行时域编码。
上述偶对称处理的公式:
Figure BDA0002695358150000191
其中,
Figure BDA0002695358150000192
表示音频帧的第i+N/2个样点数据,
Figure BDA0002695358150000193
表示音频帧的第N/2+1-i个样点数据,y(i)表示奇对称折叠处理后得到的第i个样点数据。
b、时域编解码的总时延为N+D个样点,N表示音频帧的长度,D表示时域编码方式中的正交镜像变换(quadrature mirror filter,QMF)的时延
音频发送设备对音频帧的N个数据进行加窗处理得到长度为N的第一数据;对长度为N的第一数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第二数据;对长度为N/2的第二数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三数据,长度为N的第三数据的前N/2个数据是长度为N/2的第二数据,长度为N的第三数据的后N/2个数据是长度为N/2的第四数据;将长度为N/2的第二数据和长度为N/2的第四数据的前D个数据拼接得到长度为N/2+D的第五数据;对长度为N/2+D的第五数据进行插值处理得到长度为N/2第六数据;将上一帧音频帧的后N/2个数据和长度为N/2第六数据拼接得到长度为N的第七数据;对长度为N的第七数据进行时域编码。
本申请中对音频帧的时域编码过程可以参考图4所示的LPC编码方式,区别在于:在时域编码前,融合频域编码方式(例如加窗处理和偶对称折叠处理)和时域编码方式,对上一帧音频帧和音频帧各自的部分数据进行预处理得到长度为N的数据,进而对该长度为N的数据进行时域编码。b情况和a情况的区别在于,由于时域编码方式增加了QMF处理将待传输的音频的频带分成多个子带,从而导致时域编码方式的时延增加了D个样点,因此为了使频域编解码和时域编解码各自的总时延对齐,需要在预处理中增加插值处理,将音频帧从N/2-D个数据或N/2+D个数据向N/2个数据等间距插值。由于实际情况下,D的值远远小于N/2,因此上述插值处理不会被人感知到。
根据上述(3)和(4)的描述,当音频帧的最终编码方式为切换编码方式(频域编码向时域编码切换和时域编码向频域编码切换)时,均采用时域编码方式对音频帧的N个数据进行编码,可以极大的降低运行开销,在保持音质的前提下降低码流比特大小(即码率恒定),对提高短距传输的抗干扰性具有非常重要的意义。另外,音频发送设备通过加窗处理和奇/偶对称折叠处理构造新的待编码数据,音频接收设备解码码流后,通过奇/偶对称展开处理和去窗处理,以及叠加处理恢复出原始数据。可见这种方式只需要更改编码前和解码后的数据,可以作为编码前预处理和解码后后处理,并不改变时域编解码的内部核心算法,实用性强。而且本申请可以结合任意的时域编码方式和频域编码方式,只需要满足:a、音频帧的长度相同;b、延迟可对齐。
步骤305、音频发送设备将编码码流发送给音频接收设备。
音频发送设备可以通过蓝牙连接等通信方式将编码码流发送给音频接收设备。
步骤306、音频接收设备解析码流以获取待解码的码流数据和解码方式的指示信息。
码流包括待解码的码流数据和解码方式的指示信息,解码方式包括时域解码方式、频域解码方式、时域解码向频域解码切换解码方式或者频域解码向时域解码切换解码方式。
步骤307、音频接收设备根据解码方式对码流数据进行解码。
音频接收设备解析接收到的编码码流的数据包头,得到解码方式的指示信息,根据该解码方式对码流数据进行解码和后处理(奇/偶对称展开处理、插值处理及去窗处理等)。音频接收设备解析数据包头确定当前音频帧的解码方式。然后音频接收设备采用该解码方式对码流数据进行解码(解码或者解码和后处理)得到音频PCM数据。
与步骤304的编码过程相对应,根据解码方式可以有以下几种解码方法:
(1)音频帧的解码方式为时域解码方式
音频接收设备对码流数据进行时域解码得到长度为N的第一数据,长度为N的第一数据的前N/2个数据是上一帧音频帧的后N/2个数据,长度为N的第一数据的后N/2个数据是当前音频帧的前N/2个数据,N表示音频帧的长度;将上一次时域解码得到的缓存中的N/2个数据和长度为N的第一数据的前N/2数据拼接得到上一帧音频帧;将长度为N的第一数据的后N/2个数据存入缓存中。
(2)音频帧的解码方式为频域解码方式,且时域编解码的总时延为N+D个样点,N表示音频帧的长度,D表示时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为时域解码向频域解码切换解码方式
音频接收设备对码流数据进行时域解码得到长度为2N的第一数据;将长度为2N的第一数据的前N个数据的前N/2个数据和之后的D个数据拼接得到长度为N/2+D的第二数据;对长度为N/2+D的第二数据进行插值处理得到长度为N/2第三数据;将长度为2N的第一数据的前N个数据的后N/2个数据和之前的D个数据拼接得到长度为N/2+D的第四数据;对长度为N/2+D的第四数据进行插值处理得到长度为N/2第五数据;将长度为N/2的第三数据和长度为N/2的第五数据拼接得到长度为N的第六数据;将长度为N的第六数据和上一次频域解码得到的缓存中的N个数据进行去窗交叠处理得到上一帧音频帧;将长度为2N的第一数据的后N个数据存入缓存中。
(3)音频帧的解码方式为频域解码方式,且时域编解码的总时延为N+D个样点,N表示音频帧的长度,D表示时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为频域解码方式时;或者,音频帧的解码方式为频域解码方式,且时域编解码的总时延为N个样点
音频接收设备对码流数据进行时域解码得到长度为2N的第一数据;将长度为2N的第一数据的前N个数据和上一次频域解码得到的长度为2N的第二数据的后N个数据进行去窗交叠处理得到上一帧音频帧;将长度为2N的第一数据的后N个数据存入缓存中。
(4)音频帧的解码方式为频域解码向时域解码切换解码方式,且时域编解码的总时延为N个样点,N表示音频帧的长度
音频接收设备对码流数据进行时域解码得到长度为N的第一数据;将长度为N的第一数据的前N/2个数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第二数据;将长度为N的第二数据与上一次频域解码得到的长度为2N的第三数据的后N个数据进行去窗交叠处理得到长度为N的上一帧音频帧;将长度为N的第一数据的后N/2个数据存入缓存中。
(5)音频帧的解码方式为频域解码向时域解码切换解码方式,且时域编解码的总时延为N+D个样点,N表示音频帧的长度,D表示时域编码方式中的QMF的时延
音频接收设备对码流数据进行时域解码得到长度为N的第一数据;将长度为N的第一数据的前N/2个数据的后N/2-D个数据进行插值处理得到长度为N/2个第二数据;对长度为N/2个第二数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第三数据;将上一次频域解码得到的长度为2N的第四数据的后N个数据的前N/2-D个数据进行插值处理得到长度为N/2的第五数据;将上一次频域解码得到的长度为2N的第四数据的后N个数据的后N/2-D个数据进行插值处理得到长度为N/2的第六数据;将长度为N/2的第五数据和长度为N/2的第六数据拼接得到长度为N的第七数据;将长度为N的第三数据和长度为N的第七数据进行去窗交叠处理得到长度为N的上一帧音频帧;将长度为N的第一数据的后N/2个数据存入缓存中。
(6)音频帧的解码方式为时域解码向频域解码切换解码方式
音频接收设备对码流数据进行时域解码得到长度为N的第一数据,N表示音频帧的长度;将上一次时域解码得到的长度为N的第二数据的后N/2个数据和长度为N的第一数据的前N/2个数据拼接得到长度为N的上一帧音频帧;对长度为N的第一数据的后N/2个数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三数据;将长度为N的第三数据存入缓存中。
本申请通过融合频域编码方式和时域编码方式,可以支持语音类型和音乐类型的音频帧的编解码,并且可以适用于低延时场景和高音质场景,实现码率范围16kbps~1000kbps全码率段,具有实现简单、开销小、码率恒定、音质高且根据信号特点和编码模式进行不同编码方式的自适应切换的优点。另外,还可以将任意的时域编码方式和任意的频域编码方式进行融合,使得音频编解码的架构灵活、拓展性强。
在一种可能的实现方式中,音频发送设备上编码的对象音频帧,可以是PCM信号,或者,可以是将PCM信号经QMF拆分得到的多个子带信号,或者,可以是将PCM信号经LPC逆滤波得到的残差信号。
本申请可以直接在原始的PCM信号上进行上述音频编解码方法。可选的,还可以在LPC滤波残差信号和QMF拆分子带信号上分别进行音频编解码。
一种是音频发送设备将原始PCM信号经过LPC逆滤波得到残差信号,再针对残差信号执行上述音频编码方法。音频接收设备按照上述音频解码方法恢复出残差信号,然后对残差信号进行LPC滤波合成原始PCM信号。
另一种是音频发送设备将原始PCM信号经过QMF拆分为多个子带信号,再针对每个子带信号执行上述音频编码方法。音频接收设备按照上述音频解码方法恢复除多个子带信号,然后对多个子带信号进行QMF合成合成原始PCM信号。
下面采用几个具体的实施例,对图3所示方法实施例的技术方案进行详细说明。
实施例一
如上所述,当音频帧的最终编码方式为时域编码方式或者频域编码方式时,本申请对该音频帧的编码方法可以参照步骤304中描述过,此处不再赘述。
图9为本申请切换编解码方式的一个示例性的流程框图,如图9所示,音频发送设备同时处理上一帧音频帧和音频帧的PCM数据,经过加窗处理和折叠处理,构造长度为N的数据,再将该数据经过时域编码后打包成编码码流。音频接收设备采用时域解码方式对码流进行解码,然后对解码数据进行展开处理、去窗处理和混叠相加处理得到上一帧音频帧的PCM数据。
图10为本申请从频域编码向时域编码切换编码方式的一个示例性的帧变化流程图,如图10所示,高音质场景下的音乐类型的音频包含5个音频帧(第0~4帧),每帧音频帧的长度为N,被等分为前N/2个数据和后N/2个数据两部分,其中,第0帧分别为0和0,第1帧分为a和b,第2帧分为c和d,第3帧分为e和f,第4帧分为g和h,因此a~h的长度均为N/2。第0~2帧是时域平稳信号,第3~4帧不是时域平稳信号。
1、当获取到第1帧时,第1帧的最终编码方式是频域编码方式,音频发送设备将第0帧和第1帧组合成长度为2N的第一数据(0、0、a和b),采用图7所示的方法对第一数据进行频域编码。音频接收设备对码流进行频域解码,得到长度为N的第二数据,然后对第二数据进行IMDCT变换得到长度为2N的第三数据(0、0、a+br和ar+b)。由于没有第-1帧数据,假设第-1帧数据为0,因此音频接收设备将第三数据的前N个数据(0和0)和0叠加得到第0帧数据0和0。然后将第三数据的后N个数据(a+br和ar+b)存入缓存中。
2、当获取到第2帧时,第2帧的最终编码方式是频域编码方式,音频发送设备将第1帧和第2帧组合成长度为2N的第一数据(a、b、c和d),采用图7所示的方法对第一数据进行频域编码。音频接收设备对码流进行频域解码,得到长度为N的第二数据,然后对第二数据进行IMDCT变换得到长度为2N的第三数据(a-br、-ar+b、c+dr和cr+d)。音频接收设备将第三数据的前N个数据(a-br和-ar+b)与上一次频域解码得到的、存入缓存的第三数据的后N个数据(a+br和ar+b)叠加,恢复出第1帧(a和b)。然后将本次频域解码得到的第三数据的后N个数据(c+dr和cr+d)存入缓存中。
3、当获取到第3帧时,由于第3帧不是时域平稳信号,而且上一帧为频域编码状态,因此第3帧的最终编码方式是频域编码向时域编码切换编码方式,音频发送设备将第2帧c和d进行折叠处理得到长度为N/2的第一数据-cr+d,然后将第一数据与第3帧的前N/2个数据e组成长度为N的第二数据(-cr+d和e),音频发送设备对第二数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第二数据(-cr+d和e),先将第二数据的前N/2个数据-cr+d进行奇对称展开处理得到长度为N的第三数据(c-dr和-cr+d),然后将第三数据(c-dr和-cr+d)与上一次频域解码得到的、存入缓存的第三数据的后N个数据(c+dr和cr+d)叠加,恢复出第2帧数据(c和d)。然后将本次时域解码得到的第二数据的后N/2个数据e存入缓存中。
4、当获取到第4帧时,由于第4帧仍不是时域平稳信号,由于上一帧是频域编码向时域编码切换编码方式,因此第4帧的最终编码方式是时域编码方式,音频发送设备将第4帧的前N/2个数据g与第3帧的后N/2个数据f组成长度为N的第一数据(f和g),然后对第一数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第一数据(f和g),将第一数据的前N/2个数据f与上一次时域解码得到的、存入缓存的第三数据的后N/2个数据e组成第3帧(e和f)。然后将本次时域解码得到的第一数据的后N/2个数据g存入缓存中。
实施例二
图11为本申请从时域编码向频域编码切换编码方式的一个示例性的帧变化流程图,如图11所示,高音质场景下的音乐类型的音频包含5个音频帧(第0~4帧),每帧音频帧的长度为N,被等分为前N/2个数据和后N/2个数据两部分,其中,第0帧分别为0和0,第1帧分为a和b,第2帧分为c和d,第3帧分为e和f,第4帧分为g和h,因此a~h的长度均为N/2。第0~2帧不是时域平稳信号,第3~4帧是时域平稳信号。
1、当获取到第1帧时,第1帧的最终编码方式是时域编码方式,音频发送设备将第0帧的后N/2个数据0和第1帧的前N/2个数据a组合成长度为N的第一数据(0和a),对第一数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第一数据(0和a),然后将第一数据的前N/2个数据0和上一次时域解码得到的、存入缓存的数据0组成第0帧(0和0)。然后将第一数据的后N/2个数据a存入缓存中。
2、当获取到第2帧时,第2帧的最终编码方式是时域编码方式,音频发送设备将第1帧的后N/2个数据b和第2帧的前N/2个数据c组合成长度为N的第一数据(b和c),对第一数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第一数据(b和c),然后将第一数据的前N/2个数据b和上一次时域解码得到的、存入缓存的第一数据的后N/2个数据a组成第1帧(a和b)。然后将第一数据的后N/2个数据c存入缓存中。
3、当获取到第3帧时,由于第3帧是时域平稳信号,而且上一帧为时域编码状态,因此第3帧的最终编码方式是时域编码向频域编码切换编码方式,音频发送设备对第3帧(e和f)进行折叠处理得到长度为N/2的第一数据e+fr,然后将第一数据与第2帧的后N/2个数据d组成长度为N的第二数据(d和e+fr),对第二数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第二数据(d和e+fr),对第二数据的后N/2个数据e+fr进行展开处理,得到长度为N的第三数据(e+fr和er+f)。音频接收设备将第二数据的前N/2个数据d和上一次时域解码得到的、存入缓存的第一数据的后N/2个数据c组成第2帧(c和d)。然后将第三数据(e+fr和er+f)存入缓存中。
4、当获取到第4帧时,由于第4帧仍是时域平稳信号,由于上一帧是时域编码向频域编码切换编码方式,因此第4帧的最终编码方式是频域编码方式,音频发送设备将第4帧与第3帧组成长度为2N的第一数据(e、f、g和h),采用图7所示的方法对第一数据进行频域编码。音频接收设备对码流进行频域解码,得到长度为N的第二数据,然后对第二数据进行IMDCT变换得到长度为2N的第三数据(e-fr、-er+f、g+hr和gr+h)。音频接收设备将第三数据的前N个数据(e-fr和-er+f)与上一次时域解码得到的、存入缓存的第三数据(e+fr和er+f)叠加,恢复出第3帧(e和f)。然后将本次频域解码得到的第三数据的后N个数据(g+hr和gr+h)存入缓存中。
实施例三
图12a和12b为本申请切换编解码方式的一个示例性的流程框图,如图12a和12b所示,与图9所示框图的区别在于:在频域编码向时域编码切换编码方式中,音频接收设备解码码流之后,需要进行插值处理;在时域编码向频域编码切换编码方式中,音频发送设备编码之前,需要进行插值处理。
图13为本申请从频域编码向时域编码切换编码方式的一个示例性的帧变化流程图,如图13所示,高音质场景下的音乐类型的音频包含5个音频帧(第0~4帧),每帧音频帧的长度为N,被等分为前N/2个数据和后N/2个数据两部分,其中,第0帧分别为0和0,第1帧分为a和b,第2帧分为c和d,第3帧分为e和f,第4帧分为g和h,因此a~h的长度均为N/2。第0~2帧是时域平稳信号,第3~4帧不是时域平稳信号。
1、当获取到第1帧时,第1帧的最终编码方式是频域编码方式,音频发送设备将第0帧和第1帧组合成长度为2N的第一数据(0、0、a和b),采用图7所示的方法对第一数据进行频域编码。音频接收设备对码流进行频域解码,得到长度为N的第二数据,然后对第二数据进行IMDCT变换得到长度为2N的第三数据(0、0、a+br和ar+b)。由于没有第-1帧数据,假设第-1帧数据为0,因此音频接收设备将第三数据的前N个数据(0和0)和0叠加得到第0帧数据0和0。然后将第三数据的后N个数据(a+br和ar+b)存入缓存中。
2、当获取到第2帧时,第2帧的最终编码方式是频域编码方式,音频发送设备将第1帧和第2帧组合成长度为2N的第一数据(a、b、c和d),采用图7所示的方法对第一数据进行频域编码。音频接收设备对码流进行频域解码,得到长度为N的第二数据,然后对第二数据进行IMDCT变换得到长度为2N的第三数据(a-br、-ar+b、c+dr和cr+d)。音频接收设备将第三数据的前N个数据(a-br和-ar+b)与上一次频域解码得到的、存入缓存的第三数据的后N个数据(a+br和ar+b)叠加,恢复出第1帧(a和b)。然后将本次频域解码得到的第三数据的后N个数据中的c+dr从后N/2-D个数据等间距插值得到长度为N/2的第四数据(c+dr)i,cr+d从前N/2-D个数据等间距插值得到长度为N/2的第五数据(cr+d)i,其中上标i表示插值处理,将(c+dr)i和(cr+d)i存入缓存中。
3、当获取到第3帧时,由于第3帧不是时域平稳信号,而且上一帧为频域编码状态,因此第3帧的最终编码方式是频域编码向时域编码切换编码方式,音频发送设备将第2帧c和d进行折叠处理得到长度为N/2的第一数据-cr+d,然后将第一数据与第3帧的前N/2个数据e组成长度为N的第二数据(-cr+d和e),音频发送设备对第二数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第三数据((-cr+d)’和e’),上标’表示由QMF引入的额外的D个样点时延。先将第三数据的前N/2个数据(-cr+d)’从后N/2-D个数据等间距插值得到长度为N/2的第四数据(-cr+d)i,对第四数据进行奇对称展开处理得到长度为N的第五数据((c-dr)i和(-cr+d)i),然后将第五数据((c-dr)i和(-cr+d)i)与上一次频域解码得到的、存入缓存的(c+dr)i和(cr+d)i叠加,恢复出第2帧数据(ci和di)。然后将本次时域解码得到的第三数据的后N/2个数据e’存入缓存中。
4、当获取到第4帧时,由于第4帧仍不是时域平稳信号,由于上一帧是频域编码向时域编码切换编码方式,因此第4帧的最终编码方式是时域编码方式,音频发送设备将第4帧的前N/2个数据g与第3帧的后N/2个数据f组成长度为N的第一数据(f和g),然后对第一数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第二数据(f’和g’),将第二数据的前N/2个数据f’与上一次时域解码得到的、存入缓存的第三数据的后N/2个数据e’组成第3帧(e’和f’)。然后将本次时域解码得到的第二数据的后N/2个数据g’存入缓存中。
从音频接收设备输出的数据上看,解码第1帧时输出第0帧0和0,解码第2帧时输出第1帧a和b,解码第3帧时输出第2帧ci和di,解码第4帧时输出第3帧e’和f’。其中,解码第3帧时输出为从N/2-D个数据向N/2个数据插值的结果,因此第2帧为数据拉伸处理,实际的表现为音频慢放处理。由于实际情况下,D的值远远小于N/2,所以音频慢放不会被人感知到。
实施例四
图14为本申请从时域编码向频域编码切换编码方式的一个示例性的帧变化流程图,如图14所示,高音质场景下的音乐类型的音频包含5个音频帧(第0~4帧),每帧音频帧的长度为N,被等分为前N/2个数据和后N/2个数据两部分,其中,第0帧分别为0和0,第1帧分为a和b,第2帧分为c和d,第3帧分为e和f,第4帧分为g和h,因此a~h的长度均为N/2。第0~2帧不是时域平稳信号,第3~4帧是时域平稳信号。
1、当获取到第1帧时,第1帧的最终编码方式是时域编码方式,音频发送设备将第0帧的后N/2个数据0和第1帧的前N/2个数据a组合成长度为N的第一数据(0和a),对第一数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第二数据(0’和a’),然后将第一数据的前N/2个数据0’和上一次时域解码得到的、存入缓存的数据0’组成第0帧(0’和0’)。然后将第一数据的后N/2个数据a’存入缓存中。
2、当获取到第2帧时,第2帧的最终编码方式是时域编码方式,音频发送设备将第1帧的后N/2个数据b和第2帧的前N/2个数据c组合成长度为N的第一数据(b和c),对第一数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第一数据(b’和c’),然后将第一数据的前N/2个数据b’和上一次时域解码得到的、存入缓存的第一数据的后N/2个数据a’组成第1帧(a’和b’),该第1帧为延迟N+D个样点的数据。然后将第一数据的后N/2个数据c’存入缓存中。
3、当获取到第3帧时,由于第3帧是时域平稳信号,而且上一帧为时域编码状态,因此第3帧的最终编码方式是时域编码向频域编码切换编码方式,音频发送设备对第3帧(e和f)进行折叠处理得到长度为N/2的第一数据e+fr,然后将第一数据e+fr的N/2个数据与偶对称展开得到的er+f的D个数据组成长度为N/2+D的第二数据,将第二数据等间距插值为长度为N/2的第三数据(e+fr)i。音频发送设备将第三数据(e+fr)i与第2帧的后N/2个数据d组成长度为N的第四数据(d和(e+fr)i),对第四数据进行时域编码。音频接收设备对码流进行时域解码,得到长度为N的第四数据(d’和(e+fr)i),对第四数据的后N/2个数据(e+fr)i进行展开处理,得到长度为N的第五数据((e+fr)i和(er+f)i)。音频接收设备将第四数据的前N/2个数据d’和上一次时域解码得到的、存入缓存的第一数据的后N/2个数据c’组成第2帧(c’和d’)。然后将第五数据((e+fr)i和(er+f)i)存入缓存中。
4、当获取到第4帧时,由于第4帧仍是时域平稳信号,由于上一帧是时域编码向频域编码切换编码方式,因此第4帧的最终编码方式是频域编码方式,音频发送设备将第4帧与第3帧组成长度为2N的第一数据(e、f、g和h),采用图7所示的方法对第一数据进行频域编码。音频接收设备对码流进行频域解码,得到长度为N的第二数据,然后对第二数据进行IMDCT变换得到长度为2N的第三数据(e-fr、-er+f、g+hr和gr+h)。音频接收设备将第三数据的前N个数据中的e-fr与后面的D个数据组成长度为N/2+D的第四数据,对第四数据进行等间距插值得到长度为N/2的第五数据(e-fr)i,将第三数据的前N个数据中的-er+f与前面的D个数据组成长度为N/2+D的第六数据,对第六数据进行等间距插值得到长度为N/2的第七数据(-e+fr)i。音频接收设备将((e-fr)i和(-e+fr)i)与上一次时域解码得到的、存入缓存的第五数据((e+fr)i和(er+f)i)叠加,恢复出第3帧(ei和fi)。然后将本次频域解码得到的第三数据的后N个数据(g+hr和gr+h)存入缓存中。
从音频接收设备输出的数据上看,解码第1帧时输出第0帧0’和0’,解码第2帧时输出第1帧a’和b’,解码第3帧时输出第2帧c’和d’,解码第4帧时输出第3帧ei和fi。其中,解码第4帧时输出为从N/2+D个数据向N/2个数据插值的结果,因此第3帧为数据缩放处理,实际的表现为音频快进处理。由于实际情况下,D的值远远小于N/2,所以音频快进不会被人感知到。
需要说明的是,插值可以有多种方式,例如线性插值,三次样条插值,多项式插值等,本申请对此不做具体限定。
实施例五
上述实施例一至四中的高音质场景下的音乐类型的音频,在频域编码方式、时域编码向频域编码切换编码方式以及频域编码向时域编码切换编码方式中,音频发送设备均在折叠处理之前有对音频帧进行加窗处理的步骤,音频接收设备均在展开处理之后有对音频帧进行去窗处理的步骤。
如果是普通窗,则可以按照上述实施例一至四的方法对音频进行编解码。
如果是低延时窗,则加窗处理中需要先对音频包含的多个样点做左移的操作,例如如图6b所示,左移M个样点;去窗处理中需要对音频包含的多个样点做左移的操作,例如如图6c所示,左移M个样点。其他的均可以按照上述实施例一至四的方法对音频进行编解码。左移M个样点表示向最新的数据移动M个样点,即延迟减少M个样点。
图15为本申请音频编码装置实施例的结构示意图,如图15所示,该装置可以应用于上述实施例中的音频发送设备。本实施例的编码装置可以包括:确定模块1501和编码模块1502。其中,
确定模块1501,用于确定待编码的当前音频帧的信号类型和使用场景,所述使用场景包括低延时场景或者高音质场景;根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,所述初始编码方式包括时域编码方式或者频域编码方式;根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,所述最终编码方式包括时域编码方式、频域编码方式、时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;编码模块1502,用于根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码。
在一种可能的实现方式中,所述确定模块1501,具体用于当所述当前音频帧的信号类型为音乐类型,且所述使用场景为低延时场景时,确定所述当前音频帧的初始编码方式为时域编码方式;或者,当所述当前音频帧的信号类型为音乐类型,且所述使用场景为高音质场景时,判断所述当前音频帧是否为时域平稳信号;若所述当前音频帧是时域平稳信号,则确定所述当前音频帧的初始编码方式为频域编码方式;或者,若所述当前音频帧不是时域平稳信号,则确定所述当前音频帧的初始编码方式为时域编码方式。
在一种可能的实现方式中,所述确定模块1501,具体用于将所述音频帧拆分为多个音频子帧;计算所述多个音频子帧的能量方差;当所述多个音频子帧的能量方差大于第一设定阈值时,采用线性预测编码LPC的滤波器对所述音频帧进行滤波得到滤波后的音频帧的能量,根据所述滤波后的音频帧的能量确定所述音频帧是否为所述时域平稳信号;当所述多个音频子帧的能量方差小于所述第一设定阈值时,采用改进的离散余弦变换MDCT对所述音频帧进行变换得到变换后的音频帧的各个频点的能量方差,根据所述变换后的音频帧的各个频点的能量方差确定所述音频帧是否为所述时域平稳信号。
在一种可能的实现方式中,所述确定模块1501,具体用于若所述滤波后的音频帧的能量与所述音频帧的能量之比大于第二设定阈值时,则所述音频帧是所述时域平稳信号;若所述滤波后的所述音频帧的能量与所述音频帧的能量之比小于所述第二设定阈值时,则所述音频帧不是所述时域平稳信号。
在一种可能的实现方式中,所述确定模块1501,具体用于若所述变换后的音频帧的各个频点的能量方差大于第三设定阈值,则所述音频帧是所述时域平稳信号;若所述变换后的音频帧的各个频点的能量方差小于所述第三设定阈值,则所述音频帧不是所述时域平稳信号。
在一种可能的实现方式中,所述确定模块1501,具体用于当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式。
在一种可能的实现方式中,当所述最终编码方式为所述时域编码方式时,所述编码模块1502,具体用于将所述上一帧音频帧的后N/2个样点数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第一数据,N表示音频帧的长度;对所述第一数据进行时域编码。
在一种可能的实现方式中,当所述最终编码方式为所述频域编码方式时,所述编码模块1502,具体用于将所述上一帧音频帧的N个样点数据和所述当前音频帧的N个样点数据拼接得到长度为2N的第二数据,N表示音频帧的长度;对所述第二数据进行加窗处理得到长度为2N的第三数据;对所述第三数据进行频域编码。
在一种可能的实现方式中,当所述最终编码方式为所述频域编码向时域编码切换编码方式时,所述编码模块1502,具体用于对所述上一帧音频帧的N个样点数据进行加窗处理得到长度为N的第四数据,N表示音频帧的长度;对所述第四数据进行以中心位置为奇对称点的奇对称折叠处理得到长度为N/2的第五数据;将所述第五数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第六数据;对所述第六数据进行时域编码。
在一种可能的实现方式中,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N个样点数据时,所述编码模块1502,具体用于对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第七数据,N表示音频帧的长度;对所述第七数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第八数据;将所述上一帧音频帧的后N/2个样点数据和所述第八数据拼接得到长度为N的第九数据;对所述第九数据进行时域编码。
在一种可能的实现方式中,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N+D个样点数据时,所述编码模块1502,具体用于对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第十数据;对所述第十数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第十一数据,N表示音频帧的长度;对所述第十一数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第十二数据,所述第十二数据的前N/2个样点数据是所述第十一数据,所述第十二数据的后N/2个样点数据是长度为N/2的第十三数据;将所述第十一数据和所述第十三数据的前D个样点数据拼接得到长度为N/2+D的第十四数据,D表示所述时域编码方式中的QMF的时延;对所述第十四数据进行插值处理得到长度为N/2第十五数据;将所述上一帧音频帧的后N/2个样点数据和所述第十五数据拼接得到长度为N的第十六数据;对所述第十六数据进行时域编码。
在一种可能的实现方式中,所述当前音频帧为脉冲编码调制PCM信号;或者,所述当前音频帧为PCM信号经正交镜像变换QMF得到的信号;或者,所述当前音频帧为PCM信号经LPC逆滤波得到的残差信号。
本实施例的装置,可以用于执行图3~图14所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图16为本申请音频解码装置实施例的结构示意图,如图16所示,该装置可以应用于上述实施例中的音频接收设备。本实施例的编码装置可以包括:获取模块1601和解码模块1602。其中,
获取模块1601,用于获取码流;解码模块1602,用于解析所述码流以获取待解码的码流数据和解码方式的指示信息,所述解码方式包括时域解码方式、频域解码方式、时域解码向频域解码切换解码方式或者频域解码向时域解码切换解码方式;根据所述解码方式对所述码流数据进行解码。
在一种可能的实现方式中,当所述解码方式为所述时域解码方式时,所述解码模块1602,具体用于对所述码流数据进行时域解码得到长度为N的第十七数据,所述第十七数据的后N/2个样点数据是当前音频帧的前N/2个样点数据,所述第十七数据的前N/2个样点数据是所述当前音频帧的上一帧音频帧的后N/2个样点数据,N表示音频帧的长度;将缓存的所述上一帧音频帧的前N/2个样点数据和所述第十七数据的前N/2个样点数据拼接得到所述上一帧音频帧的数据;将所述第十七数据的后N/2个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,且上一帧音频帧的解码方式为所述时域解码向频域解码切换解码方式时,所述解码模块1602,具体用于对所述码流数据进行频域解码得到长度为2N的第十八数据,N表示音频帧的长度;将所述第十八数据的前N个样点数据的前N/2个样点数据和所述前N/2个样点数据之后的D个样点数据拼接得到长度为N/2+D的第十九数据,D表示所述时域编码方式中的正交镜像变换QMF的时延;对所述第十九数据进行插值处理得到长度为N/2第二十数据;将所述第十八数据的前N个样点数据的后N/2个样点数据和所述后N/2个样点数据之前的D个样点数据拼接得到长度为N/2+D的第二十一数据;对所述第二十一数据进行插值处理得到长度为N/2第二十二数据;将所述第二十数据和所述第二十二数据拼接得到长度为N的第二十三数据;将所述第二十三数据和上一次频域解码得到的缓存中的N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;将所述第十八数据的后N个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为所述频域解码方式时;或者,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N个样点数据时,所述解码模块1602,具体用于对所述码流数据进行频域解码得到长度为2N的第二十四数据;将所述第二十四数据的前N个样点数据和上一次频域解码得到的长度为2N的第二十五数据的后N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;将所述第二十四数据的后N个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N个样点数据,N表示音频帧的长度时,所述解码模块1602,具体用于对所述码流数据进行时域解码得到长度为N的第二十六数据;将所述第二十六数据的前N/2个样点数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第二十七数据;将所述第二十七数据与上一次频域解码得到的长度为2N的第二十八数据的后N个样点数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;将所述第二十六数据的后N/2个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延时,所述解码模块1602,具体用于对所述码流数据进行时域解码得到长度为N的第二十九数据;将所述第二十九数据的前N/2个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2个第三十数据;对所述第三十数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第三十一数据;将上一次频域解码得到的长度为2N的第三十二数据的后N个样点数据的前N/2-D个样点数据进行插值处理得到长度为N/2的第三十三数据;将所述第三十二数据的后N个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2的第三十四数据;将所述第三十三数据和所述第三十四数据拼接得到长度为N的第三十五数据;将所述第三十一数据和所述第三十五数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;将所述第二十九数据的后N/2个样点数据存入缓存中。
在一种可能的实现方式中,当所述解码方式为所述时域解码向频域解码切换解码方式时,所述解码模块1602,具体用于对所述码流数据进行时域解码得到长度为N的第三十六数据,N表示音频帧的长度;将上一次时域解码得到的长度为N的第三十七数据的后N/2个样点数据和所述第三十六数据的前N/2个样点数据拼接得到长度为N的上一帧音频帧的数据;对所述第三十六数据的后N/2个样点数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三十八数据;将所述第三十八数据存入缓存中。
在一种可能的实现方式中,所述上一帧音频帧为脉冲编码调制PCM信号;或者,所述上一帧音频帧为经正交镜像变换QMF得到的PCM信号;或者,所述上一帧音频帧为经LPC滤波得到的PCM信号。
本实施例的装置,可以用于执行图3~图14所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (45)

1.一种音频编码方法,其特征在于,包括:
确定待编码的当前音频帧的信号类型和使用场景,所述使用场景包括低延时场景或者高音质场景;
根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,所述初始编码方式包括时域编码方式或者频域编码方式;
根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,所述最终编码方式包括时域编码方式、频域编码方式、时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;
根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,包括:
当所述当前音频帧的信号类型为音乐类型,且所述使用场景为低延时场景时,确定所述当前音频帧的初始编码方式为时域编码方式;或者,
当所述当前音频帧的信号类型为音乐类型,且所述使用场景为高音质场景时,判断所述当前音频帧是否为时域平稳信号;若所述当前音频帧是时域平稳信号,则确定所述当前音频帧的初始编码方式为频域编码方式;或者,若所述当前音频帧不是时域平稳信号,则确定所述当前音频帧的初始编码方式为时域编码方式。
3.根据权利要求2所述的方法,其特征在于,所述判断所述当前音频帧是否为时域平稳信号,包括:
将所述当前音频帧拆分为多个音频子帧;
计算所述多个音频子帧的能量方差;
当所述多个音频子帧的能量方差大于第一设定阈值时,采用线性预测编码LPC的滤波器对所述音频帧进行滤波得到滤波后的音频帧的能量,根据所述滤波后的音频帧的能量确定所述音频帧是否为所述时域平稳信号;
当所述多个音频子帧的能量方差小于所述第一设定阈值时,采用改进的离散余弦变换MDCT对所述音频帧进行变换得到变换后的音频帧的各个频点的能量方差,根据所述变换后的音频帧的各个频点的能量方差确定所述音频帧是否为所述时域平稳信号。
4.根据权利要求3所述的方法,其特征在于,所述根据所述滤波后的音频帧的能量确定所述音频帧是否为所述时域平稳信号,包括:
若所述滤波后的音频帧的能量与所述音频帧的能量之比大于第二设定阈值时,则所述音频帧是所述时域平稳信号;若所述滤波后的所述音频帧的能量与所述音频帧的能量之比小于所述第二设定阈值时,则所述音频帧不是所述时域平稳信号。
5.根据权利要求3所述的方法,其特征在于,所述根据所述变换后的音频帧的各个频点的能量方差确定所述音频帧是否为所述时域平稳信号,包括:
若所述变换后的音频帧的各个频点的能量方差大于第三设定阈值,则所述音频帧是所述时域平稳信号;若所述变换后的音频帧的各个频点的能量方差小于所述第三设定阈值,则所述音频帧不是所述时域平稳信号。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,包括:
当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,
当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,
当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,
当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,
当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式;或者,
当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,
当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,
当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式。
7.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述时域编码方式时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:
将所述上一帧音频帧的后N/2个样点数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第一数据,N表示音频帧的长度;
对所述第一数据进行时域编码。
8.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述频域编码方式时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:
将所述上一帧音频帧的N个样点数据和所述当前音频帧的N个样点数据拼接得到长度为2N的第二数据,N表示音频帧的长度;
对所述第二数据进行加窗处理得到长度为2N的第三数据;
对所述第三数据进行频域编码。
9.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述频域编码向时域编码切换编码方式时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:
对所述上一帧音频帧的N个样点数据进行加窗处理得到长度为N的第四数据,N表示音频帧的长度;
对所述第四数据进行以中心位置为奇对称点的奇对称折叠处理得到长度为N/2的第五数据;
将所述第五数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第六数据;
对所述第六数据进行时域编码。
10.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N个样点数据时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:
对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第七数据,N表示音频帧的长度;
对所述第七数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第八数据;
将所述上一帧音频帧的后N/2个样点数据和所述第八数据拼接得到长度为N的第九数据;
对所述第九数据进行时域编码。
11.根据权利要求1-6中任一项所述的方法,其特征在于,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N+D个样点数据时,所述根据所述最终编码方式对所述当前音频帧进行编码,包括:
对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第十数据;
对所述第十数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第十一数据,N表示音频帧的长度;
对所述第十一数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第十二数据,所述第十二数据的前N/2个样点数据是所述第十一数据,所述第十二数据的后N/2个样点数据是长度为N/2的第十三数据;
将所述第十一数据和所述第十三数据的前D个样点数据拼接得到长度为N/2+D的第十四数据,D表示所述时域编码方式中的QMF的时延;
对所述第十四数据进行插值处理得到长度为N/2第十五数据;
将所述上一帧音频帧的后N/2个样点数据和所述第十五数据拼接得到长度为N的第十六数据;
对所述第十六数据进行时域编码。
12.根据权利要求1-11中任一项所述的方法,其特征在于,所述当前音频帧为脉冲编码调制PCM信号;或者,
所述当前音频帧为PCM信号经正交镜像变换QMF得到的信号;或者,
所述当前音频帧为PCM信号经LPC逆滤波得到的残差信号。
13.一种音频解码方法,其特征在于,包括:
获取码流;
解析所述码流以获取待解码的码流数据和解码方式的指示信息,所述解码方式包括时域解码方式、频域解码方式、时域解码向频域解码切换解码方式或者频域解码向时域解码切换解码方式;
根据所述解码方式对所述码流数据进行解码。
14.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述时域解码方式时,所述根据所述解码方式对所述码流数据进行解码,包括:
对所述码流数据进行时域解码得到长度为N的第十七数据,所述第十七数据的后N/2个样点数据是当前音频帧的前N/2个样点数据,所述第十七数据的前N/2个样点数据是所述当前音频帧的上一帧音频帧的后N/2个样点数据,N表示音频帧的长度;
将缓存的所述上一帧音频帧的前N/2个样点数据和所述第十七数据的前N/2个样点数据拼接得到所述上一帧音频帧的数据;
将所述第十七数据的后N/2个样点数据存入缓存中。
15.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,且上一帧音频帧的解码方式为所述时域解码向频域解码切换解码方式时,所述根据所述解码方式对所述码流数据进行解码,包括:
对所述码流数据进行频域解码得到长度为2N的第十八数据,N表示音频帧的长度;
将所述第十八数据的前N个样点数据的前N/2个样点数据和所述前N/2个样点数据之后的D个样点数据拼接得到长度为N/2+D的第十九数据,D表示所述时域编码方式中的正交镜像变换QMF的时延;
对所述第十九数据进行插值处理得到长度为N/2第二十数据;
将所述第十八数据的前N个样点数据的后N/2个样点数据和所述后N/2个样点数据之前的D个样点数据拼接得到长度为N/2+D的第二十一数据;
对所述第二十一数据进行插值处理得到长度为N/2第二十二数据;
将所述第二十数据和所述第二十二数据拼接得到长度为N的第二十三数据;
将所述第二十三数据和上一次频域解码得到的缓存中的N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;
将所述第十八数据的后N个样点数据存入缓存中。
16.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为所述频域解码方式时;或者,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N个样点数据时,所述根据所述解码方式对所述码流数据进行解码,包括:
对所述码流数据进行频域解码得到长度为2N的第二十四数据;
将所述第二十四数据的前N个样点数据和上一次频域解码得到的长度为2N的第二十五数据的后N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;
将所述第二十四数据的后N个样点数据存入缓存中。
17.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N个样点数据,N表示音频帧的长度时,所述根据所述解码方式对所述码流数据进行解码,包括:
对所述码流数据进行时域解码得到长度为N的第二十六数据;
将所述第二十六数据的前N/2个样点数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第二十七数据;
将所述第二十七数据与上一次频域解码得到的长度为2N的第二十八数据的后N个样点数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;
将所述第二十六数据的后N/2个样点数据存入缓存中。
18.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延时,所述根据所述解码方式对所述码流数据进行解码,包括:
对所述码流数据进行时域解码得到长度为N的第二十九数据;
将所述第二十九数据的前N/2个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2个第三十数据;
对所述第三十数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第三十一数据;
将上一次频域解码得到的长度为2N的第三十二数据的后N个样点数据的前N/2-D个样点数据进行插值处理得到长度为N/2的第三十三数据;
将所述第三十二数据的后N个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2的第三十四数据;
将所述第三十三数据和所述第三十四数据拼接得到长度为N的第三十五数据;
将所述第三十一数据和所述第三十五数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;
将所述第二十九数据的后N/2个样点数据存入缓存中。
19.根据权利要求13所述的方法,其特征在于,当所述解码方式为所述时域解码向频域解码切换解码方式时,所述根据所述解码方式对所述码流数据进行解码,包括:
对所述码流数据进行时域解码得到长度为N的第三十六数据,N表示音频帧的长度;
将上一次时域解码得到的长度为N的第三十七数据的后N/2个样点数据和所述第三十六数据的前N/2个样点数据拼接得到长度为N的上一帧音频帧的数据;
对所述第三十六数据的后N/2个样点数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三十八数据;
将所述第三十八数据存入缓存中。
20.根据权利要求13-19中任一项所述的方法,其特征在于,所述上一帧音频帧为脉冲编码调制PCM信号;或者,
所述上一帧音频帧为经正交镜像变换QMF得到的PCM信号;或者,
所述上一帧音频帧为经LPC滤波得到的PCM信号。
21.一种音频编码装置,其特征在于,包括:
确定模块,用于确定待编码的当前音频帧的信号类型和使用场景,所述使用场景包括低延时场景或者高音质场景;根据所述当前音频帧的信号类型和所述当前音频帧的使用场景确定所述当前音频帧的初始编码方式,所述初始编码方式包括时域编码方式或者频域编码方式;根据所述当前音频帧的初始编码方式与上一帧音频帧的最终编码方式确定所述当前音频帧的最终编码方式,所述最终编码方式包括时域编码方式、频域编码方式、时域编码向频域编码切换编码方式或者频域编码向时域编码切换编码方式;
编码模块,用于根据所述当前音频帧的最终编码方式对所述当前音频帧进行编码。
22.根据权利要求21所述的装置,其特征在于,所述确定模块,具体用于当所述当前音频帧的信号类型为音乐类型,且所述使用场景为低延时场景时,确定所述当前音频帧的初始编码方式为时域编码方式;或者,当所述当前音频帧的信号类型为音乐类型,且所述使用场景为高音质场景时,判断所述当前音频帧是否为时域平稳信号;若所述当前音频帧是时域平稳信号,则确定所述当前音频帧的初始编码方式为频域编码方式;或者,若所述当前音频帧不是时域平稳信号,则确定所述当前音频帧的初始编码方式为时域编码方式。
23.根据权利要求22所述的装置,其特征在于,所述确定模块,具体用于将所述音频帧拆分为多个音频子帧;计算所述多个音频子帧的能量方差;当所述多个音频子帧的能量方差大于第一设定阈值时,采用线性预测编码LPC的滤波器对所述音频帧进行滤波得到滤波后的音频帧的能量,根据所述滤波后的音频帧的能量确定所述音频帧是否为所述时域平稳信号;当所述多个音频子帧的能量方差小于所述第一设定阈值时,采用改进的离散余弦变换MDCT对所述音频帧进行变换得到变换后的音频帧的各个频点的能量方差,根据所述变换后的音频帧的各个频点的能量方差确定所述音频帧是否为所述时域平稳信号。
24.根据权利要求23所述的装置,其特征在于,所述确定模块,具体用于若所述滤波后的音频帧的能量与所述音频帧的能量之比大于第二设定阈值时,则所述音频帧是所述时域平稳信号;若所述滤波后的所述音频帧的能量与所述音频帧的能量之比小于所述第二设定阈值时,则所述音频帧不是所述时域平稳信号。
25.根据权利要求23所述的装置,其特征在于,所述确定模块,具体用于若所述变换后的音频帧的各个频点的能量方差大于第三设定阈值,则所述音频帧是所述时域平稳信号;若所述变换后的音频帧的各个频点的能量方差小于所述第三设定阈值,则所述音频帧不是所述时域平稳信号。
26.根据权利要求21-25中任一项所述的装置,其特征在于,所述确定模块,具体用于当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码方式;或者,当所述当前音频帧的初始编码方式为频域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码向频域编码切换编码方式;或者,当所述当前音频帧的初始编码方式和所述上一帧音频帧的最终编码方式均为时域编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为时域编码向频域编码切换编码方式时,确定所述当前音频帧的最终编码方式为频域编码向时域编码切换编码方式;或者,当所述当前音频帧的初始编码方式为时域编码方式,所述上一帧音频帧的最终编码方式为频域编码向时域编码切换编码方式时,确定所述当前音频帧的最终编码方式为时域编码方式。
27.根据权利要求21-26中任一项所述的装置,其特征在于,当所述最终编码方式为所述时域编码方式时,所述编码模块,具体用于将所述上一帧音频帧的后N/2个样点数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第一数据,N表示音频帧的长度;对所述第一数据进行时域编码。
28.根据权利要求21-26中任一项所述的装置,其特征在于,当所述最终编码方式为所述频域编码方式时,所述编码模块,具体用于将所述上一帧音频帧的N个样点数据和所述当前音频帧的N个样点数据拼接得到长度为2N的第二数据,N表示音频帧的长度;对所述第二数据进行加窗处理得到长度为2N的第三数据;对所述第三数据进行频域编码。
29.根据权利要求21-26中任一项所述的装置,其特征在于,当所述最终编码方式为所述频域编码向时域编码切换编码方式时,所述编码模块,具体用于对所述上一帧音频帧的N个样点数据进行加窗处理得到长度为N的第四数据,N表示音频帧的长度;对所述第四数据进行以中心位置为奇对称点的奇对称折叠处理得到长度为N/2的第五数据;将所述第五数据和所述当前音频帧的前N/2个样点数据拼接得到长度为N的第六数据;对所述第六数据进行时域编码。
30.根据权利要求21-26中任一项所述的装置,其特征在于,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N个样点数据时,所述编码模块,具体用于对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第七数据,N表示音频帧的长度;对所述第七数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第八数据;将所述上一帧音频帧的后N/2个样点数据和所述第八数据拼接得到长度为N的第九数据;对所述第九数据进行时域编码。
31.根据权利要求21-26中任一项所述的装置,其特征在于,当所述最终编码方式为所述时域编码向频域编码切换编码方式,且时域编解码的总时延为N+D个样点数据时,所述编码模块,具体用于对所述当前音频帧的N个样点数据进行加窗处理得到长度为N的第十数据;对所述第十数据进行以中心位置为偶对称点的偶对称折叠处理得到长度为N/2的第十一数据,N表示音频帧的长度;对所述第十一数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第十二数据,所述第十二数据的前N/2个样点数据是所述第十一数据,所述第十二数据的后N/2个样点数据是长度为N/2的第十三数据;将所述第十一数据和所述第十三数据的前D个样点数据拼接得到长度为N/2+D的第十四数据,D表示所述时域编码方式中的QMF的时延;对所述第十四数据进行插值处理得到长度为N/2第十五数据;将所述上一帧音频帧的后N/2个样点数据和所述第十五数据拼接得到长度为N的第十六数据;对所述第十六数据进行时域编码。
32.根据权利要求21-31中任一项所述的装置,其特征在于,所述当前音频帧为脉冲编码调制PCM信号;或者,所述当前音频帧为PCM信号经正交镜像变换QMF得到的信号;或者,所述当前音频帧为PCM信号经LPC逆滤波得到的残差信号。
33.一种音频解码装置,其特征在于,包括:
获取模块,用于获取码流;
解码模块,用于解析所述码流以获取待解码的码流数据和解码方式的指示信息,所述解码方式包括时域解码方式、频域解码方式、时域解码向频域解码切换解码方式或者频域解码向时域解码切换解码方式;根据所述解码方式对所述码流数据进行解码。
34.根据权利要求33所述的装置,其特征在于,当所述解码方式为所述时域解码方式时,所述解码模块,具体用于对所述码流数据进行时域解码得到长度为N的第十七数据,所述第十七数据的后N/2个样点数据是当前音频帧的前N/2个样点数据,所述第十七数据的前N/2个样点数据是所述当前音频帧的上一帧音频帧的后N/2个样点数据,N表示音频帧的长度;将缓存的所述上一帧音频帧的前N/2个样点数据和所述第十七数据的前N/2个样点数据拼接得到所述上一帧音频帧的数据;将所述第十七数据的后N/2个样点数据存入缓存中。
35.根据权利要求33所述的装置,其特征在于,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,且上一帧音频帧的解码方式为所述时域解码向频域解码切换解码方式时,所述解码模块,具体用于对所述码流数据进行频域解码得到长度为2N的第十八数据,N表示音频帧的长度;将所述第十八数据的前N个样点数据的前N/2个样点数据和所述前N/2个样点数据之后的D个样点数据拼接得到长度为N/2+D的第十九数据,D表示所述时域编码方式中的正交镜像变换QMF的时延;对所述第十九数据进行插值处理得到长度为N/2第二十数据;将所述第十八数据的前N个样点数据的后N/2个样点数据和所述后N/2个样点数据之前的D个样点数据拼接得到长度为N/2+D的第二十一数据;对所述第二十一数据进行插值处理得到长度为N/2第二十二数据;将所述第二十数据和所述第二十二数据拼接得到长度为N的第二十三数据;将所述第二十三数据和上一次频域解码得到的缓存中的N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;将所述第十八数据的后N个样点数据存入缓存中。
36.根据权利要求33所述的装置,其特征在于,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延,且上一帧音频帧的解码方式为所述频域解码方式时;或者,当所述解码方式为所述频域解码方式,且时域编解码的总时延为N个样点数据时,所述解码模块,具体用于对所述码流数据进行频域解码得到长度为2N的第二十四数据;将所述第二十四数据的前N个样点数据和上一次频域解码得到的长度为2N的第二十五数据的后N个样点数据进行去窗交叠处理得到上一帧音频帧的数据;将所述第二十四数据的后N个样点数据存入缓存中。
37.根据权利要求33所述的装置,其特征在于,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N个样点数据,N表示音频帧的长度时,所述解码模块,具体用于对所述码流数据进行时域解码得到长度为N的第二十六数据;将所述第二十六数据的前N/2个样点数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第二十七数据;将所述第二十七数据与上一次频域解码得到的长度为2N的第二十八数据的后N个样点数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;将所述第二十六数据的后N/2个样点数据存入缓存中。
38.根据权利要求33所述的装置,其特征在于,当所述解码方式为所述频域解码向时域解码切换解码方式,且时域编解码的总时延为N+D个样点数据,N表示音频帧的长度,D表示所述时域编码方式中的QMF的时延时,所述解码模块,具体用于对所述码流数据进行时域解码得到长度为N的第二十九数据;将所述第二十九数据的前N/2个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2个第三十数据;对所述第三十数据进行以中心位置为奇对称点的奇对称展开处理得到长度为N的第三十一数据;将上一次频域解码得到的长度为2N的第三十二数据的后N个样点数据的前N/2-D个样点数据进行插值处理得到长度为N/2的第三十三数据;将所述第三十二数据的后N个样点数据的后N/2-D个样点数据进行插值处理得到长度为N/2的第三十四数据;将所述第三十三数据和所述第三十四数据拼接得到长度为N的第三十五数据;将所述第三十一数据和所述第三十五数据进行去窗交叠处理得到长度为N的上一帧音频帧的数据;将所述第二十九数据的后N/2个样点数据存入缓存中。
39.根据权利要求33所述的装置,其特征在于,当所述解码方式为所述时域解码向频域解码切换解码方式时,所述解码模块,具体用于对所述码流数据进行时域解码得到长度为N的第三十六数据,N表示音频帧的长度;将上一次时域解码得到的长度为N的第三十七数据的后N/2个样点数据和所述第三十六数据的前N/2个样点数据拼接得到长度为N的上一帧音频帧的数据;对所述第三十六数据的后N/2个样点数据进行以中心位置为偶对称点的偶对称展开处理得到长度为N的第三十八数据;将所述第三十八数据存入缓存中。
40.根据权利要求33-39中任一项所述的装置,其特征在于,所述上一帧音频帧为脉冲编码调制PCM信号;或者,所述上一帧音频帧为经正交镜像变换QMF得到的PCM信号;或者,所述上一帧音频帧为经LPC滤波得到的PCM信号。
41.一种音频编码设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一项所述的方法。
42.一种音频解码设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求13-20中任一项所述的方法。
43.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行权利要求1-20中任一项所述的方法。
44.一种计算机可读存储介质,其特征在于,包括根据如权利要求1-12中任一项所述的音频编码方法获得的编码码流。
45.一种计算机可读存储介质,其特征在于,包括根据如权利要求13-20中任一项所述的音频解码方法获得的音频帧。
CN202011004241.5A 2020-09-22 2020-09-22 音频编解码方法和装置 Pending CN114299967A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011004241.5A CN114299967A (zh) 2020-09-22 2020-09-22 音频编解码方法和装置
PCT/CN2021/118048 WO2022062942A1 (zh) 2020-09-22 2021-09-13 音频编解码方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011004241.5A CN114299967A (zh) 2020-09-22 2020-09-22 音频编解码方法和装置

Publications (1)

Publication Number Publication Date
CN114299967A true CN114299967A (zh) 2022-04-08

Family

ID=80844933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011004241.5A Pending CN114299967A (zh) 2020-09-22 2020-09-22 音频编解码方法和装置

Country Status (2)

Country Link
CN (1) CN114299967A (zh)
WO (1) WO2022062942A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666763A (zh) * 2022-05-24 2022-06-24 东莞市云仕电子有限公司 车载无线耳机系统、控制方法及车载无线系统
WO2023216119A1 (zh) * 2022-05-10 2023-11-16 北京小米移动软件有限公司 音频信号编码方法、装置、电子设备和存储介质
CN117373465A (zh) * 2023-12-08 2024-01-09 富迪科技(南京)有限公司 一种语音频信号切换系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101025918B (zh) * 2007-01-19 2011-06-29 清华大学 一种语音/音乐双模编解码无缝切换方法
CN101661749A (zh) * 2009-09-23 2010-03-03 清华大学 一种语音和音乐双模切换编/解码的方法
US9129600B2 (en) * 2012-09-26 2015-09-08 Google Technology Holdings LLC Method and apparatus for encoding an audio signal
US20150310869A1 (en) * 2012-12-13 2015-10-29 Nokia Corporation Apparatus aligning audio signals in a shared audio scene
CN103617797A (zh) * 2013-12-09 2014-03-05 腾讯科技(深圳)有限公司 一种语音处理方法,及装置
CN109273017B (zh) * 2018-08-14 2022-06-21 Oppo广东移动通信有限公司 编码控制方法、装置以及电子设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023216119A1 (zh) * 2022-05-10 2023-11-16 北京小米移动软件有限公司 音频信号编码方法、装置、电子设备和存储介质
CN114666763A (zh) * 2022-05-24 2022-06-24 东莞市云仕电子有限公司 车载无线耳机系统、控制方法及车载无线系统
CN117373465A (zh) * 2023-12-08 2024-01-09 富迪科技(南京)有限公司 一种语音频信号切换系统
CN117373465B (zh) * 2023-12-08 2024-04-09 富迪科技(南京)有限公司 一种语音频信号切换系统

Also Published As

Publication number Publication date
WO2022062942A1 (zh) 2022-03-31

Similar Documents

Publication Publication Date Title
EP2641244B1 (en) Converting multi-microphone captured signals to shifted signals useful for binaural signal processing
WO2022062942A1 (zh) 音频编解码方法和装置
US9313599B2 (en) Apparatus and method for multi-channel signal playback
US8060374B2 (en) Slot position coding of residual signals of spatial audio coding application
US8311810B2 (en) Reduced delay spatial coding and decoding apparatus and teleconferencing system
EP2022045B1 (en) Decoding of predictively coded data using buffer adaptation
WO2009081567A1 (ja) ステレオ信号変換装置、ステレオ信号逆変換装置およびこれらの方法
CN104718572A (zh) 音频编码方法和装置、音频解码方法和装置及采用该方法和装置的多媒体装置
JPWO2007043388A1 (ja) 音響信号処理装置および音響信号処理方法
US11568882B2 (en) Inter-channel phase difference parameter encoding method and apparatus
US20220007126A1 (en) Representing spatial audio by means of an audio signal and associated metadata
US20230040515A1 (en) Audio signal coding method and apparatus
EP2610867B1 (en) Audio reproducing device and audio reproducing method
CN113593586A (zh) 音频信号编码方法、解码方法、编码设备以及解码设备
WO2021244418A1 (zh) 一种音频编码方法和音频编码装置
CN114495951A (zh) 音频编解码方法和装置
CN102576531B (zh) 用于处理多信道音频信号的方法、设备
CN113966531A (zh) 声音信号接收解码方法、声音信号解码方法、声音信号接收侧装置、解码装置、程序以及记录介质
US11696075B2 (en) Optimized audio forwarding
EP3984027B1 (en) Packet loss concealment for dirac based spatial audio coding
US20220293112A1 (en) Low-latency, low-frequency effects codec
KR20230038777A (ko) 멀티-채널 오디오 신호 인코딩/디코딩 방법 및 장치
RU2807473C2 (ru) Маскировка потерь пакетов для пространственного кодирования аудиоданных на основе dirac
WO2021136343A1 (zh) 音频信号的编解码方法和编解码装置
JP2024050601A (ja) 予測コーディングにおける低コスト誤り回復のための方法および装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination