发明内容
有鉴于此,本发明实施例中一方面提供一种带补偿的音频编码方法和解码方法,另一方面提供一种带补偿的音频编码装置和解码装置,以便降低量化噪声的影响。
本发明实施例中所提供的带补偿的音频编码方法,包括:
对当前帧输入信号的信号类型进行检测,在检测到所述输入信号为快变信号时,计算所述输入信号的误差补偿区域;所述误差补偿区域为所述输入信号中快变点之前的区域;
对所述误差补偿区域计算量化过程中引入的量化误差信号;
对所计算的量化误差信号进行量化及编码,得到误差压缩码流;所述量化为线性量化或压扩后量化;
将所得到的误差压缩码流与编码生成的音频压缩码流复用在音频码流中。
其中,所述计算量化过程中引入的量化误差信号具体为:
利用量化前的变换域输入信号,减去量化后的音频样本信号,得到变换域的量化误差信号。
较佳地,对所计算的量化误差信号进行量化及编码之前,该方法进一步包括:判断所计算量化误差信号的幅度变化是否平缓,如果是,则执行所述对所计算的量化误差信号进行量化及编码的操作;否则,将量化后的音频样本信号转换为时域信号,利用所述转换的时域信号,减去量化前的时域输入信号,得 到时域的量化误差信号,根据得到的时域的量化误差信号,执行所述对所计算的量化误差信号进行量化及编码的操作。
其中,所述计算量化过程中引入的量化误差信号具体为:
将量化后的音频样本信号转换为时域信号,利用量化前的时域输入信号,减去所述转换的时域信号,得到时域的量化误差信号。
较佳地,该方法进一步包括:预先设置误差补偿区域长度的下门限值;
所述对误差补偿区域执行所述计算量化过程中引入的量化误差信号的操作之前进一步包括:对误差补偿区域的长度进行判断,若误差补偿区域长度大于等于下门限值,则执行所述对误差补偿区域执行所述计算量化过程中引入的量化误差信号的操作。
较佳地,该方法进一步包括:预先设置误差补偿区域长度的上门限值;
若误差补偿区域长度大于等于下门限值且小于上门限值,则所述对误差补偿区域执行所述计算量化过程中引入的量化误差信号具体为:将量化后的音频样本信号转换为时域信号,利用量化前的时域输入信号,减去所述转换的时域信号,得到时域的量化误差信号;
若误差补偿区域长度大于等于上门限值,则所述对误差补偿区域执行所述计算量化过程中引入的量化误差信号具体为:利用量化前的变换域输入信号,减去量化后的音频样本信号,得到变换域的量化误差信号。
本发明实施例中所提供的带补偿的音频解码方法,包括:
从音频码流中分离出快变信号的误差压缩码流;
对所述误差压缩码流进行与编码时的量化及编码相对应的解码及反量化,得到量化误差信号;所述量化为线性量化或压扩后量化;
利用所得到的量化误差信号对解码出的误差补偿区域的音频信号进行误差补偿;所述误差补偿区域为所述快变信号中快变点之前的区域。
其中,若所述得到的量化误差信号为变换域量化误差信号,则所述解码出的音频信号为:解码得到的变换域的音频信号;
若所述得到的量化误差信号为时域量化误差信号,则所述解码出的音频信号为:解码得到的时域的音频信号。
本发明实施例中所提供的带补偿的音频编码装置,包括:滤波器组、心理声学模型模块、量化模块及编码模块,此外,还包括:
信号类型检测模块,用于对原始输入信号的信号类型进行检测,若检测到输入信号为快变信号,则向误差计算编码模块发送进行误差处理的控制指示;
误差计算编码模块,用于根据所述进行误差处理的控制指示,接收所述量化前的原始输入信号和来自量化模块的量化后的音频样本信号,计算所述输入信号的误差补偿区域,所述误差补偿区域为所述输入信号中快变点之前的区域,对所述误差补偿区域根据所接收的原始输入信号和音频样本信号,计算得到量化误差信号,对所计算的量化误差信号进行量化及编码,得到误差压缩码流,将所得到的误差压缩码流输出给比特流复用模块;所述量化为线性量化或压扩后量化;
比特流复用模块,将所接收的误差压缩码流和来自编码模块的音频压缩码流复用在一起,形成音频码流输出。
所述误差计算编码模块的接收端与所述量化模块的输出端和所述滤波器组的输出端相连;根据来自滤波器组的变换域的输入信号和来自量化模块的变换域的音频样本信号,完成所述计算量化误差信号的操作;
或者,所述误差计算编码模块的接收端与所述量化模块的输出端和所述装置的输入接口相连;将所接收的来自量化模块的变换域的音频样本信号转换为时域信号,根据所述转换的时域信号和来自输入接口的时域输入信号,完成所述计算量化误差信号的操作。
其中,所述误差计算编码模块的接收端与所述量化模块的输出端和所述滤波器组的输出端相连,接收滤波器组输出的变换域的输入信号,且还与所述装置的输入接口相连,接收来自输入接口的时域的输入信号;
所述误差计算编码模块决策在变换域进行编码时,根据来自滤波器组的变换域的输入信号和来自量化模块的变换域的音频样本信号,完成所述计算量化误差信号的操作;所述误差计算编码模块决策在时域进行编码时,将来自量化模块的变换域的音频样本信号转换为时域信号,并根据所述转换的时域信号和 来自输入接口的时域输入信号,完成所述计算量化误差信号的操作。
本发明实施例中所提供的带补偿的音频解码装置,包括:解码模块、反量化模块及滤波器组,此外,还包括:
比特流解复用模块,用于从音频码流中分离出快变信号的误差压缩码流,将分离出的误差压缩码流输出给误差解码模块;
误差解码模块,用于对所接收的误差压缩码流进行与编码时的量化及编码相对应的解码及反量化处理,得到量化误差信号,将所得到的量化误差信号输出给误差补偿模块;所述量化为线性量化或压扩后量化;
误差补偿模块,用于根据所接收的量化误差信号,对解码出的误差补偿区域的音频信号进行误差补偿;所述误差补偿区域为所述快变信号中快变点之前的区域。
其中,所述误差补偿模块的接收端与误差解码模块的输出端和反量化模块的输出端相连,输出端与滤波器组的输入端相连,根据所接收的变换域的量化误差信号,对来自反量化模块的解码出的变换域音频信号执行所述进行误差补偿的操作;
或者,所述误差补偿模块的接收端与误差解码模块的输出端和滤波器组的输出端相连,输出端与所述装置的输出接口相连,根据所接收的时域的量化误差信号,对来自滤波器组的解码出的时域音频信号执行所述进行误差补偿的操作。
从上述方案可以看出,本发明实施例中由于在编码端对量化过程中引入的量化误差信号进行量化及编码,将量化后生成的误差压缩码流携带在音频码流中,并在解码端,从音频码流中分离出误差压缩码流,对误差压缩码流进行解码及反量化,得到量化误差信号,利用所得到的量化误差信号对解码出的音频信号进行误差补偿。从而降低量化误差(噪声)对输入信号的影响。
具体实施方式
本发明的基本思想是:在编码端,根据量化前的原始输入信号和量化后的音频样本信号,计算量化过程中引入的量化误差信号,对所计算的量化误差信号进行量化及编码,得到误差压缩码流,将所得到的误差压缩码流与编码生成的音频压缩码流复用在一个音频码流中;在解码端,从音频码流中分离出误差压缩码流,对误差压缩码流进行解码及反量化,得到量化误差信号,利用所得到的量化误差信号对解码出的音频信号进行误差补偿。
相应地,在编码装置中,增加误差计算编码模块和比特流复用模块。其 中,误差计算编码模块用于接收量化前的原始输入信号和量化后的音频样本信号,根据所接收的原始输入信号和音频样本信号,计算得到量化误差信号,对所计算的量化误差信号进行量化及编码,得到误差压缩码流,将所得到的误差压缩码流输出给比特流复用模块;比特流复用模块,将所接收的误差压缩码流和编码模块输出的音频压缩码流复用在一起,形成音频码流输出。
其中,误差计算编码模块的接收端还可与滤波器组相连,接收滤波器组输出的变换域的输入信号,并根据来自滤波器组的变换域的输入信号和来自量化模块的变换域的音频样本信号,完成计算量化误差信号的操作;或者,误差计算编码模块的接收端还与所在装置的输入接口相连,接收时域的原始输入信号,并将来自量化模块的变换域的音频样本信号转换为时域信号,并根据该转换的时域信号和来自输入接口的时域输入信号,完成计算量化误差信号的操作。
在解码装置中,增加比特流解复用模块、误差解码模块和误差补偿模块。其中,比特流解复用模块,用于从音频码流中分离出误差压缩码流,将分离出的误差压缩码流输出给误差解码模块;误差解码模块,用于对所接收的误差压缩码流进行解码及反量化处理,得到量化误差信号,将所得到的量化误差信号输出给误差补偿模块;误差补偿模块,用于根据量化误差信号,对解码出的音频信号进行误差补偿。
具体实现时,量化误差信号可以是变换域的量化误差信号,也可以是时域的量化误差信号。相应地,进行补偿时,若量化误差信号为变换域的量化误差信号,则对变换域的音频信号进行误差补偿;若量化误差信号为时域的量化误差信号,则对时域的音频信号进行误差补偿。
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
实施例一:
本实施例中,以在变换域内进行量化误差计算及编码的情况为例。
参见图5,图5为本发明实施例一中带补偿的音频编码方法的流程图。 如图5所示,该流程包括如下步骤:
步骤501,对当前输入信号的信号类型进行检测。
其中,对信号类型进行检测的方法现有技术中有多种,常用的一种是采用感知熵PE进行判断的方法。实际应用中,使用PE进行判断时,还需要结合具体的感知模型,或者以及结合滤波器组的结果等进行分析判断。
利用感知熵进行判断时,首先需要估算感知熵的取值,如感知熵的估算可采用计算公式
其中,N为频率分量的个数,fi和fu为频率的上下边界,如取0Hz和20000Hz。signal(f)为频率分量f的幅度,threshold(f)为估算出对应于频率分量f的阈值。当PE大于预设的某个阈值时,认为信号是快变信号,否则为缓变信号。
此外,信号类型检测还可以采用任何已知的瞬态检测方法等,或者是采用估计音频帧的能量的方法,当出现大的能量变换时,则可认为该信号类型发生改变,存在快变信号。此处不再一一赘述。
步骤502,判断当前输入信号是否为快变信号,如果是,则执行步骤503;否则,执行现有编码过程,生成音频压缩码流输出,结束本次流程。
步骤503,在现有编码过程进行中,在变换域内计算量化过程中引入的量化误差信号。
本步骤中,误差信号的计算如下:
其中
是现有编码过程中量化后的重建信号,即量化后的音频样本信号,x(n)是量化前的输入信号,y(n)=e(n)是量化误差信号。即本实施例中,将量化前的变换域输入信号,减去量化后得到的音频样本信号,得到变换域的量化误差信号。
可见,如果把y(n)作为一个独立的信号,它本身也有时频域的特性,因此可以对y(n)进行量化编码。
步骤504,对所计算的变换域的量化误差信号进行量化及编码,得到误 差压缩码流。
本步骤中,对步骤503中计算得到的变换域的量化误差信号进行量化及编码,得到误差压缩码流。其中,对误差信号进行量化的方法可以是采用线性的量化,也可以是采用与现有音频编码中进行量化时一致的方法,即进行压扩以后再量化等。编码方法也可采用与现有音频编码中进行编码时一致的方法
步骤505,将所得到的误差压缩码流与编码生成的音频压缩码流复用在一起,形成音频码流中输出,并结束本次流程。
其中,复用方法可与现有技术中的复用方法一致,将各个内容的码流按照约定的方法或格式排放在一起。
上述流程中,可只执行步骤503至步骤505,而无需执行步骤501至步骤502,即对所有输入信号都执行步骤503至步骤505的操作,而不管该信号是否是快变信号。
以上对本发明实施例一中带补偿的音频编码方法进行了详细描述,下面再对本发明实施例一中带补偿的音频解码方法进行详细描述。
参见图6,图6为本发明实施例一中带补偿的音频解码方法的流程图。如图6所示,该流程包括如下步骤:
步骤601,从音频码流中分离出误差压缩码流。
本步骤中,对所接收码流进行解复用,从音频码流中分离出误差压缩码流。其中,解复用的过程与复用过程相对应,为复用过程的逆过程,按照约定的方法或格式将各个内容的码流取出来。
步骤602,对误差压缩码流进行解码及反量化,得到变换域的量化误差信号。
本步骤中,解码及反量化过程与编码时的量化及编码过程相对应,具体方法,可按照现有解码流程进行,对误差压缩码流进行解码及反量化后,得到变换域的量化误差信号。
步骤603,利用所得到的变换域的量化误差信号对解码出的变换域的音 频信号进行误差补偿。
本步骤中,将现有解码流程中,反量化模块解码出的变换域的音频信号进行误差补偿,具体补偿过程为:
其中,
是补偿后的变换域的音频信号,
是解码端得到的量化误差信号,
是解码出的变换域的音频信号。
步骤604,将补偿后的变换域的音频信号转换为时域的音频信号输出。
以上对本发明实施例一中带补偿的音频编、解码方法进行了详细描述,下面再对本发明实施例一中带补偿的音频编、解码装置进行详细描述。
参见图7,图7为本发明实施例一中带补偿的音频编码装置的结构图。如图7中的实线部分所示,该装置除了包括滤波器组、心理声学模型、量化模块及编码模块以外,还包括:误差计算编码模块和比特流复用模块。
其中,滤波器组,用于对输入信号进行时频域映射,将输入信号由时域映射为变换域,得到变换域输入信号,并将所映射的变换域输入信号输出给量化模块及误差计算编码模块。
心理声学模型,用于对输入信号进行分析,根据人耳的听觉模型确定输入信号中哪些分量可以不进行编码,哪些分量可以用比较低的精度进行编码等,并生成控制信号输出给量化模块。
量化模块,用于根据来自心理声学模型的控制信号中的掩噪比及感知熵等信息,对所接收的滤波器组输出的变换域信号的每个尺度因子带进行比特分配及量化,生成音频样本信号输出给编码模块。
编码模块,用于对量化模块输出的音频样本信号进行熵编码等压缩编码处理,生成音频压缩码流输出给比特流复用模块。
误差计算编码模块,用于接收来自滤波器组的变换域输入信号和量化模块输出的音频样本信号,根据所接收的变换域输入信号和音频样本信号,计算得到量化误差信号,对所计算的量化误差信号进行量化及编码,得到误差压缩码流,将所得到的误差压缩码流输出给比特流复用模块。
比特流复用模块,用于接收来自误差计算编码模块的误差压缩码流和来自编码模块的音频压缩码流,将所接收的误差压缩码流和音频压缩码流复用在一起,形成音频码流输出。
此外,如图7中的虚线部分所示,该装置可进一步包括:信号类型检测模块,用于对输入信号的信号类型进行检测,若检测到输入信号为快变信号,则向误差计算编码模块发送进行误差处理的控制指示。
误差计算编码模块接收到上述进行误差处理的控制指示后,执行上述接收来自滤波器组的变换域输入信号和量化模块输出的音频样本信号,根据所接收的变换域输入信号和音频样本信号,计算得到量化误差信号,对所计算的量化误差信号进行量化及编码,得到误差压缩码流,将所得到的误差压缩码流输出给比特流复用模块的操作。
其中,若信号类型检测模块采用感知熵的方法进行检测,则该感知熵的取值可从心理声学模型中获取,或者也可以通过自身进行计算。
参见图8,图8为本发明实施例一中音频解码装置的结构示意图。如图8所示,该装置除了包括:解码模块、反量化模块和滤波器组以外,还包括:比特流解复用模块、误差解码模块和误差补偿模块。
其中,比特流解复用模块,用于从音频码流中分离出误差压缩码流,将分离出的误差压缩码流输出给误差解码模块,将分离后的音频压缩码流输出给解码模块。
误差解码模块,用于对所接收的误差压缩码流进行解码及反量化处理,得到量化误差信号,将所得到的量化误差信号输出给误差补偿模块。
解码模块,用于对所接收的音频压缩码流进行解码,将解码后的音频样本信号输出给反量化模块。
反量化模块,用于对来自解码模块的音频样本信号进行反量化等操作,将反量化后的变换域信号输出。
误差补偿模块,用于根据量化误差信号,对解码出的音频信号进行误差补偿。
滤波器组,用于接收变换域信号,将所接收的变换域信号反变换为时域信号输出。
其中,误差补偿模块的接收端与误差解码模块的输出端和反量化模块的输出端相连,输出端与滤波器组的输入端相连,误差补偿模块根据所接收的来自误差解码模块的变换域的量化误差信号,对来自反量化模块的解码出的变换域音频信号执行所述进行误差补偿的操作,将补偿后的变换域信号输出给滤波器组。
实施例二:
本实施例中,以在时域内进行量化误差计算及编码的情况为例。
参见图9,图9为本发明实施例二中带补偿的音频编码方法的流程图。如图9所示,该流程包括如下步骤:
步骤901,对当前输入信号的信号类型进行检测。
本步骤的具体实现过程可与图5所示步骤501中的描述一致。
步骤902,判断当前输入信号是否为快变信号,如果是,则执行步骤903;否则,执行现有编码过程,生成音频压缩码流输出,结束本次流程。
步骤903,在现有编码过程进行中,在时域内计算量化过程中引入的量化误差信号。
本步骤中,误差信号的计算同样为:
其中
是现有编码过程中量化后的重建信号,即量化后的音频样本信号,x(n)是量化前的输入信号,y(n)=e(n)是量化误差信号。即本实施例中,将量化后的音频样本信号转换为时域信号,利用量化前的时域输入信号,减去所转换的时域信号,得到时域的量化误差信号。
同样,如果把y(n)作为一个独立的信号,它本身也有时频域的特性,因此可以对y(n)进行量化编码。
本实施例中,进一步地,在计算量化过程中引入的量化误差信号之前,还可以进一步包括:计算误差补偿区域的操作,如图10所示,图10为划分 补偿区域的示意图。在进行时域的量化噪声补偿的时候,可以只补偿图10中前面可能产生“预回声”的部分而不需要对本帧输入信号的所有量化噪声(误差)都进行补偿。即对于快变信号来说,误差补偿区域即指快变点T之前的一段区域,如图10所示补偿区域。
可见,选择补偿区域的关键就是找到信号发生快变的T点。其中,确定信号发生快变的T点的方法可以有多种,比如可将信号划分成若干段,计算每一小段信号的能量,相邻段之间发生很大改变时,就是信号发生快变的位置。或者计算每一小段信号的幅度的绝对值,也可以找到快变点。还有计算信号的包络,判断包络的变化趋势也可以找到信号发生快变的位置。具体采用哪种计算方法可根据实际情况而定。
之后,对所计算的误差补偿区域执行计算量化过程中引入的量化误差信号的操作。
进一步地,还可预先设置误差补偿区域长度的下门限值;对步骤903中计算的误差补偿区域的长度进行判断,若误差补偿区域长度大于等于下门限值,则执行计算量化过程中引入的量化误差信号的操作,否则,执行现有编码过程,生成音频压缩码流输出,结束本次流程。
步骤904,对所计算的时域的量化误差信号进行量化及编码,得到误差压缩码流。
本步骤中,对步骤903中计算得到的时域的量化误差信号进行量化及编码,得到误差压缩码流。其中,对误差信号进行量化的方法可以是采用线性的量化,也可以是采用与现有音频编码中进行量化时一致的方法,即进行压扩以后再量化等。编码方法也可采用与现有音频编码中进行编码时一致的方法
步骤905,将所得到的误差压缩码流与编码生成的音频压缩码流复用在一起,形成音频码流输出,并结束本次流程。
其中,复用方法可与现有技术中的复用方法一致,将各个内容的码流按照约定的方法或格式排放在一起。
上述流程中,可只执行步骤903至步骤905,而无需执行步骤901至步骤902,即对所有输入信号都执行步骤903至步骤905的操作,而不管该信号是否是快变信号。此时,若执行步骤903中描述的计算误差补偿区域的操作,则对于非快变信号,其误差补偿区域的长度可以是整帧信号的长度。
以上对本发明实施例二中带补偿的音频编码方法进行了详细描述,下面再对本发明实施例二中带补偿的音频解码方法进行详细描述。
参见图11,图11为本发明实施例二中带补偿的音频解码方法的流程图。如图11所示,该流程包括如下步骤:
步骤1101,从音频码流中分离出误差压缩码流。
本步骤中,对所接收码流进行解复用,从音频码流中分离出误差压缩码流。其中,解复用的过程与复用过程相对应,为复用过程的逆过程,按照约定的方法或格式将各个内容的码流取出来。
步骤1102,对误差压缩码流进行解码及反量化,得到时域的量化误差信号。
本步骤中,解码及反量化过程与编码时的量化及编码过程相对应,具体方法,可按照现有解码流程进行,对误差压缩码流进行解码及反量化后,得到时域的量化误差信号。
步骤1103,利用所得到的时域的量化误差信号对解码出的时域的音频信号进行误差补偿。
本步骤中,将现有解码流程中,滤波器组转换后的解码出的时域的音频信号进行误差补偿,具体补偿过程为:
其中,
是补偿后的时域的音频信号,
是解码端得到的量化误差信号,
是解码出的时的音频信号,将补偿后的时域的音频信号输出。
以上对本发明实施例二中带补偿的音频编、解码方法进行了详细描述,下面再对本发明实施例二中带补偿的音频编、解码装置进行详细描述。
参见图12,图12为本发明实施例二中带补偿的音频编码装置的结构图。 如图12中的实线部分所示,该装置除了包括滤波器组、心理声学模型、量化模块及编码模块以外,还包括:误差计算编码模块和比特流复用模块。
其中,滤波器组,用于对输入信号进行时频域映射,将输入信号由时域映射为变换域,得到变换域输入信号,并将所映射的变换域输入信号输出给量化模块。
心理声学模型,用于对输入信号进行分析,根据人耳的听觉模型确定输入信号中哪些分量可以不进行编码,哪些分量可以用比较低的精度进行编码等,并生成控制信号输出给量化模块。
量化模块,用于根据来自心理声学模型的控制信号中的掩噪比及感知熵等信息,对所接收的滤波器组输出的变换域信号的每个尺度因子带进行比特分配及量化,生成音频样本信号输出给编码模块。
编码模块,用于对量化模块输出的音频样本信号进行熵编码等压缩编码处理,生成音频压缩码流输出给比特流复用模块。
误差计算编码模块,用于接收该装置输入接口的时域输入信号和量化模块输出的音频样本信号,将所接收的音频样本信号转换为时域信号,根据所转换的时域信号和所接收的时域输入信号,计算得到量化误差信号,对所计算的量化误差信号进行量化及编码,得到误差压缩码流,将所得到的误差压缩码流输出给比特流复用模块。
比特流复用模块,用于接收来自误差计算编码模块的误差压缩码流和来自编码模块的音频压缩码流,将所接收的误差压缩码流和音频压缩码流复用在一起,形成音频码流输出。
此外,如图12中的虚线部分所示,该装置可进一步包括:信号类型检测模块,用于对输入信号的信号类型进行检测,若检测到输入信号为快变信号,则向误差计算编码模块发送进行误差处理的控制指示。
误差计算编码模块接收到上述进行误差处理的控制指示后,执行上述接收该装置输入接口的时域输入信号和量化模块输出的音频样本信号,将所接收的音频样本信号转换为时域信号,根据所转换的时域信号和所接收的时域 输入信号,计算得到量化误差信号,对所计算的量化误差信号进行量化及编码,得到误差压缩码流,将所得到的误差压缩码流输出给比特流复用模块的操作。
其中,若信号类型检测模块采用感知熵的方法进行检测,则该感知熵的取值可从心理声学模型中获取,或者也可以通过自身进行计算。
此外,进一步地,误差计算编码模块还用于:计算输入信号的误差补偿区域,对所计算的误差补偿区域执行所述计算量化误差信号的操作。
参见图13,图13为本发明实施例二中音频解码装置的结构示意图。如图13所示,该装置除了包括:解码模块、反量化模块和滤波器组以外,还包括:比特流解复用模块、误差解码模块和误差补偿模块。
其中,比特流解复用模块,用于从音频码流中分离出误差压缩码流,将分离出的误差压缩码流输出给误差解码模块,将分离后的音频压缩码流输出给解码模块。
误差解码模块,用于对所接收的误差压缩码流进行解码及反量化处理,得到量化误差信号,将所得到的量化误差信号输出给误差补偿模块。
解码模块,用于对所接收的音频压缩码流进行解码,将解码后的音频样本信号输出给反量化模块。
反量化模块,用于对来自解码模块的音频样本信号进行反量化等操作,将反量化后的变换域信号输出。
误差补偿模块,用于根据量化误差信号,对解码出的音频信号进行误差补偿。
滤波器组,用于接收变换域信号,将所接收的变换域信号反变换为时域信号输出。
其中,误差补偿模块的接收端与误差解码模块的输出端和滤波器组的输出端相连,输出端与所述装置的输出接口相连,误差补偿模块根据所接收的时域的量化误差信号,对来自滤波器组的解码出的时域音频信号执行所述进行误差补偿的操作,将补偿后的时域信号输出。
实施例三:
本实施例中,以既可以在变换域内进行量化误差计算及编码,又可以在时域内进行量化误差计算及编码的情况为例,具体采用哪种形式可以根据实际需要进行判断。
参见图14,图14为本发明实施例三中的一种带补偿的音频编码方法的流程图。如图14所示,该流程包括如下步骤:
步骤1401,对当前输入信号的信号类型进行检测。
本步骤的具体实现过程可与图5所示步骤501中的描述一致。
步骤1402,判断当前输入信号是否为快变信号,如果是,则执行步骤1403;否则,执行现有编码过程,生成音频压缩码流输出,结束本次流程。
步骤1403,在现有编码过程进行中,在变换域内计算量化过程中引入的量化误差信号。
本步骤中,误差信号的计算如下:
其中
是现有编码过程中量化后的重建信号,即量化后的音频样本信号,x(n)是量化前的输入信号,y(n)=e(n)是量化误差信号。即本实施例中,将量化前的变换域输入信号,减去量化后得到的音频样本信号,得到变换域的量化误差信号。
同样,如果把y(n)作为一个独立的信号,它本身也有时频域的特性,因此可以对y(n)进行量化编码。
步骤1404,判断所计算的变换域的量化误差信号的幅度变化是否平缓,如果是,则执行步骤1406;否则,执行步骤1405。
步骤1405,将量化后的音频样本信号转换为时域信号,利用量化前的时域输入信号,减去转换的时域信号,得到时域的量化误差信号。
本步骤中,将现有编码过程中量化后的音频样本信号转换为时域信号,之后减去量化前的时域输入信号,得到时域的量化误差信号。
步骤1406,对所计算的量化误差信号进行量化及编码,得到误差压缩码流。
本步骤中,可对步骤1403中计算得到的变换域的量化误差信号进行量化及编码,也可以对步骤1405中计算得到的时域的量化误差信号进行量化及编码,得到误差压缩码流。其中,对误差信号进行量化的方法可以是采用线性的量化,也可以是采用与现有音频编码中进行量化时一致的方法,即进行压扩以后再量化等。编码方法也可采用与现有音频编码中进行编码时一致的方法
步骤1407,将所得到的误差压缩码流与编码生成的音频压缩码流复用在音频码流中输出,并结束本次流程。
其中,复用方法可与现有技术中的复用方法一致,将各个内容的码流按照约定的方法或格式排放在一起。
上述流程中,可只执行步骤1403至步骤1407,而无需执行步骤1401至步骤1402,即对所有输入信号都执行步骤1403至步骤1407的操作,而不管该信号是否是快变信号。
参见图15,图15为本发明实施例三中的又一种带补偿的音频编码方法的流程图。如图15所示,该流程包括如下步骤:
步骤1501,对当前输入信号的信号类型进行检测。
本步骤的具体实现过程可与图5所示步骤501中的描述一致。
步骤1502,判断当前输入信号是否为快变信号,如果是,则执行步骤1503;否则,执行现有编码过程,生成音频压缩码流输出,结束本次流程。
步骤1503,计算误差补偿区域。
本步骤中,计算误差补偿区域的方法可与图9所示步骤903中的描述一致,即实际应用中,可以只补偿前面可能产生“预回声”的部分而不需要对本帧输入信号的所有量化噪声(误差)都进行补偿。
即对于快变信号来说,误差补偿区域即指快变点T之前的一段区域,其中,确定信号发生快变的T点的方法可以有多种,比如可将信号划分成若干段,计算每一小段信号的能量,相邻段之间发生很大改变时,就是信号发生快变的位置。或者计算每一小段信号的幅度的绝对值,也可以找到快变点。 还有计算信号的包络,判断包络的变化趋势也可以找到信号发生快变的位置。具体采用哪种计算方法可根据实际情况而定。
步骤1504,根据误差补偿区域的长度,确定量化误差信号的编码方式,若确定在时域内编码,则执行步骤1505,若确定在变换域内编码,则执行步骤1506,否则,执行现有编码过程,生成音频压缩码流输出,结束本次流程。
具体实现时,可预先设置误差补偿区域长度的下门限值和上门限值;对步骤1503中计算的误差补偿区域的长度进行判断,若误差补偿区域长度小于下门限值,则执行现有编码过程,生成音频压缩码流输出,结束本次流程。
若误差补偿区域长度大于等于下门限值且小于上门限值,则确定在时域内编码,执行步骤1505;若误差补偿区域长度大于等于上门限值,则确定在变换域内编码,执行步骤1506。
步骤1505,在现有编码过程进行中,将量化后的音频样本信号转换为时域信号,利用量化前的时域输入信号,减去所转换的时域信号,得到时域的量化误差信号。之后执行步骤1507。
本步骤中,误差信号的计算同样为:
其中
是量化后的重建信号,x(n)是量化前的输入信号,y(n)=e(n)是量化误差信号。即本实施例中,将量化后的音频样本信号转换为时域信号,利用量化前的时域输入信号,减去所转换的时域信号,得到时域的量化误差信号。
步骤1506,在现有编码过程进行中,利用量化前的变换域输入信号,减去量化后的音频样本信号,得到变换域的量化误差信号。
本步骤中,误差信号的计算如下: 其中是量化后的重建信号,x(n)是量化前的输入信号,y(n)=e(n)是量化误差信号。即本实施例中,将量化前的变换域输入信号,减去量化后得到的音频样本信号,得到变换域的量化误差信号。
步骤1507,对所计算的量化误差信号进行量化及编码,得到误差压缩 码流。
本步骤中,可对步骤1505中计算得到的时域的量化误差信号进行量化及编码,也可以对步骤1506中计算得到的变换域的量化误差信号进行量化及编码,得到误差压缩码流。其中,对误差信号进行量化的方法可以是采用线性的量化,也可以是采用与现有音频编码中进行量化时一致的方法,即进行压扩以后再量化等。编码方法也可采用与现有音频编码中进行编码时一致的方法。
步骤1508,将所得到的误差压缩码流与编码生成的音频压缩码流复用在音频码流中输出,并结束本次流程。
其中,复用方法可与现有技术中的复用方法一致,将各个内容的码流按照约定的方法或格式排放在一起。
上述流程中,可只执行步骤1503至步骤1508,而无需执行步骤1501至步骤1502,即对所有输入信号都执行步骤1503至步骤1508的操作,而不管该信号是否是快变信号。此时,对于非快变信号,其误差补偿区域的长度可以是整帧信号的长度。
上述图14和图15所示流程中,由于根据具体情况,可选择在变换域内进行量化误差信号编码,也可选择在时域内进行量化误差信号编码,因此在对量化误差信号进行量化及编码时,应提供当前量化误差信号所使用的编码域的信息,以便解码端根据该编码域信息,在对应域内进行解码。
以上对本发明实施例三中带补偿的音频编码方法进行了详细描述,下面再对本发明实施例三中带补偿的音频解码方法进行详细描述。
参见图16,图16为本发明实施例一中带补偿的音频解码方法的流程图。如图16所示,该流程包括如下步骤:
步骤1601,从音频码流中分离出误差压缩码流。
本步骤中,对所接收码流进行解复用,从音频码流中分离出误差压缩码流。其中,解复用的过程与复用过程相对应,为复用过程的逆过程,按照约定的方法或格式将各个内容的码流取出来。
步骤1602,对误差压缩码流进行解码及反量化,得到量化误差信号,若所得到量化误差信号为变换域的量化误差信号,则执行步骤1603;否则,执行步骤1605。
本步骤中,解码及反量化过程与编码时的量化及编码过程相对应,具体方法,可按照现有解码流程进行。
步骤1603,利用所得到的变换域的量化误差信号对解码出的变换域的音频信号进行误差补偿。
本步骤中,将现有解码流程中,反量化模块解码出的变换域的音频信号进行误差补偿,具体补偿过程为:
其中,
是补偿后的变换域的音频信号,
是解码端得到的量化误差信号,
是解码出的变换域的音频信号。
步骤1604,将补偿后的变换域的音频信号转换为时域的音频信号,输出,结束本流程。
步骤1605,利用所得到的时域的量化误差信号对解码出的时域的音频信号进行误差补偿。
本步骤中,将现有解码流程中,滤波器组转换后的解码出的时域的音频信号进行误差补偿,具体补偿过程为:
其中,
是补偿后的时域的音频信号,
是解码端得到的量化误差信号,
是解码出的时的音频信号。将补偿后的时域的音频信号输出。
以上对本发明实施例三中带补偿的音频编、解码方法进行了详细描述,下面再对本发明实施例三中带补偿的音频编、解码装置进行详细描述。
参见图17,图17为本发明实施例三中带补偿的音频编码装置的结构图。如图17中的实线部分所示,该装置除了包括滤波器组、心理声学模型、量化模块及编码模块以外,还包括:误差计算编码模块和比特流复用模块。
其中,滤波器组,用于对输入信号进行时频域映射,将输入信号由时域映射为变换域,得到变换域输入信号,并将所映射的变换域输入信号输出给 量化模块。
心理声学模型,用于对输入信号进行分析,根据人耳的听觉模型确定输入信号中哪些分量可以不进行编码,哪些分量可以用比较低的精度进行编码等,并生成控制信号输出给量化模块。
量化模块,用于根据来自心理声学模型的控制信号中的掩噪比及感知熵等信息,对所接收的滤波器组输出的变换域信号的每个尺度因子带进行比特分配及量化,生成音频样本信号输出给编码模块。
编码模块,用于对量化模块输出的音频样本信号进行熵编码等压缩编码处理,生成音频压缩码流输出给比特流复用模块。
误差计算编码模块,用于接收原始输入信号和量化模块输出的音频样本信号,根据所接收的原始输入信号和音频样本信号,计算得到量化误差信号,对所计算的量化误差信号进行量化及编码,得到误差压缩码流,将所得到的误差压缩码流输出给比特流复用模块。
比特流复用模块,用于接收来自误差计算编码模块的误差压缩码流和来自编码模块的音频压缩码流,将所接收的误差压缩码流和音频压缩码流复用在一起,形成音频码流输出。
其中,误差计算编码模块的接收端与量化模块的输出端和滤波器组的输出端相连,则原始输入信号可以是接收滤波器组输出的变换域的输入信号,且还与所述装置的输入接口相连,则原始输入信号还可以是接收的输入接口的时域的输入信号;
其中,误差计算编码模块决策在变换域进行编码时,根据来自滤波器组的变换域的输入信号和来自量化模块的变换域的音频样本信号,完成上述计算量化误差信号的操作;当误差计算编码模块决策在时域进行编码时,将来自量化模块的变换域的音频样本信号转换为时域信号,并根据所转换的时域信号和来自输入接口的时域输入信号,完成上述计算量化误差信号的操作。
其中,误差计算编码模块决策在变换域进行编码,还是在时域进行编码的方法,可以是按照图14所述流程中描述的方法,也可以是按照图15所述 流程中描述的方法,或者还可以是其它的方法。
此外,如图17中的虚线部分所示,该装置可进一步包括:信号类型检测模块,用于对输入信号的信号类型进行检测,若检测到输入信号为快变信号,则向误差计算编码模块发送进行误差处理的控制指示。
误差计算编码模块接收到上述进行误差处理的控制指示后,执行上述接收原始输入信号和量化模块输出的音频样本信号等的操作。
其中,若信号类型检测模块采用感知熵的方法进行检测,则该感知熵的取值可从心理声学模型中获取,或者也可以通过自身进行计算。
此外,进一步地,误差计算编码模块还用于:计算输入信号的误差补偿区域,对所计算的误差补偿区域执行所述计算量化误差信号的操作。
参见图18,图18为本发明实施例一中音频解码装置的结构示意图。如图18所示,该装置除了包括:解码模块、反量化模块和滤波器组以外,还包括:比特流解复用模块、误差解码模块和误差补偿模块。
其中,比特流解复用模块,用于从音频码流中分离出误差压缩码流,将分离出的误差压缩码流输出给误差解码模块,将分离后的音频压缩码流输出给解码模块。
误差解码模块,用于对所接收的误差压缩码流进行解码及反量化处理,得到量化误差信号,将所得到的量化误差信号输出给误差补偿模块。
解码模块,用于对所接收的音频压缩码流进行解码,将解码后的音频样本信号输出给反量化模块。
反量化模块,用于对来自解码模块的音频样本信号进行反量化等操作,将反量化后的变换域信号输出。
误差补偿模块,用于根据量化误差信号,对解码出的音频信号进行误差补偿。
滤波器组,用于接收变换域信号,将所接收的变换域信号反变换为时域信号输出。
其中,误差补偿模块的接收端可以与误差解码模块的输出端和反量化模 块的输出端相连,输出端与滤波器组的输入端相连,误差补偿模块根据所接收的来自误差解码模块的变换域的量化误差信号,对来自反量化模块的解码出的变换域音频信号执行所述进行误差补偿的操作,将补偿后的变换域信号输出给滤波器组。
或者,误差补偿模块的接收端与误差解码模块的输出端和滤波器组的输出端相连,输出端与所述装置的输出接口相连,根据所接收的时域的量化误差信号,对来自滤波器组的解码出的时域音频信号执行上述进行误差补偿的操作,将补偿后的时域信号输出。
图18中,为了描述清晰,将两种情况按照分支的方式进行处理,实际上,图18中的两个误差补偿模块实际上是同一个误差补偿模块,两个滤波器组也是同一个滤波器组,具体实现时,误差补偿模块的接收端和输出端与哪个模块相连,可根据误差解码模块解码出的量化误差信号是变换域的量化误差信号,还是时域的量化误差信号而定,若量化误差信号为变换域的量化误差信号,则误差补偿模块的接收端与误差解码模块的输出端和反量化模块的输出端相连,输出端与滤波器组的输入端相连;若量化误差信号为时域的量化误差信号,误差补偿模块的接收端与误差解码模块的输出端和滤波器组的输出端相连,输出端与输出接口相连。
上述各实施例中提到的编码过程可以是熵编码,并且熵编码的方法可以是霍夫曼(Huffman)编码,香农编码或者算术编码等。
此外,上述各实施例中所描述的对所计算的量化误差信号进行量化及编码的过程可以是一层,即直接对所计算的量化误差信号进行量化及编码,生成一次量化压缩码流,复用到音频码流中;也可以是两层,即对所计算的量化误差信号进行量化及编码,生成一次量化压缩码流后,再对该次量化过程中引入的量化误差进行量化及编码,生成二次量化压缩码流,将一次量化压缩码流和二次量化压缩码流共同复用到音频码流中;或者还可以是三层或者更多层,实现过程依次类推。相应地,在解码端,对无偿压缩码流进行解码及补偿的过程与编码端相对应,可逐层展开进行解码及补偿。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。