用于信号处理的方法和装置与流程

文档序号:11136030阅读:558来源:国知局
用于信号处理的方法和装置与制造工艺

本发明涉及音频编解码技术,并且更具体地,涉及一种用于信号处理的方法和装置。



背景技术:

现有频域编码算法中,在做比特分配时,具有以下处理:根据子带包络对每个子带进行比特分配;将子带按照比特分配数从小到大排序;从比特分配数小的子带开始编码;将被编码子带所剩的冗余比特平均分配到余下的未编码的子带中去,其中,每一个子带所剩比特不够编码一个信息单位。由于冗余比特的分配只是平均分配到由能量包络确定的原始比特分配数较大的子带中去,这会导致一定的比特浪费,使得编码效果不够理想。



技术实现要素:

本发明实施例提供了一种用于信号处理的方法和装置,能够避免比特浪费,提高编解码的质量。

第一方面,提供了一种用于信号处理的方法,包括:确定当前帧的待处理子带对应的待分配比特总数;根据待分配比特总数,对待处理子带进行一次比特分配,以得到待处理子带中各个子带的一次比特分配数;根据各个子带的一次比特分配数,对一次比特分配后的各个子带进行一次信息单位数确定操作,得到当前帧冗余比特总数以及待处理子带中各个子带对应的信息单位数;根据二次比特分配参数,从待处理子带中选择二次比特分配子带,其中,二次比特分配参数包括待处理子带中各个子带的子带特征和冗余比特总数中的至少一种;对二次比特分配子带进行二次比特分配,以便于将冗余比特分配给二次比特分配子带并得到二次比特分配子带中各个子带的二次比特分配数;根据二次比特分配子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作,以重新得到二次比特分配子带中各个子带对应的信息单位数。

结合第一方面,在第一方面的第一种可能的实现方式中,待处理子带中各个子带的子带特征包括子带承载的信号特征、子带对应的比特分配状态和子带的频率范围中的至少一种。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,子带承载的信号特征包括:子带承载的信号类型和子带的包络值中的至少一种;和/或子带对应的比特分配状态包括:子带的前一帧对应子带的系数量化情况、子带的一次每信息单位比特数、子带的一次带宽平均比特数和子带的一次比特分配数中的至少一种;其中,子带的一次带宽平均比特数是根据该子带的一次比特分配数以及所述该子带的带宽确定的,子带的一次每信息单位比特数是根据该子带的一次比特分配数以及该子带的一次信息单位数确定的,其中,该子带的一次信息单位数是对该子带进行一次信息单位数确定操作后得到的。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,子带承载的信号类型包括谐波和/或非谐波。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,从待处理子带中选择二次比特分配子带,包括:根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定目标子带集合以及从目标子带集合中选择二次比特分配子带,目标子带集合中的子带属于待处理子带。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,确定目标子带集合,包括:根据m个第一子带集合中各个子带的子带特征,以及与m个第一子带集合一一对应的m个预定条件,确定目标子带集合,m为大于等于1的整数,m个第一子带集合中的子带属于待处理子带;其中,在m个第一子带集合中的每个子带集合均满足对应的预定条件时,将同属于m个第一子带集合的子带组成的集合确定为目标子带集合,否则,将所述待处理子带中除同属于m个第一子带集合的子带之外的子带组成的集合确定为目标子带集合;或者在m个第一子带集合中存在至少一个子带集合满足对应的预定条件时,将至少一个子带集合中所有子带组成的集合确定为目标子带集合,否则,将待处理子带中不属于m个第一子带集合中任一子带集合的子带组成的集合确定为目标子带集合。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,m个预定条件中的任一预定条件包括以下条件中的至少一种:对应的第一子带集合的前一帧对应子带中存在被系数量化的子带、对应的第一子带集合中的子带的平均包络值大于第一阈值和对应的第一子带集合中存在承载的信号类型为谐波的子带。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,所述m个第一子带集合中的子带的频率高于所述待处理子带中除所述m个第一子带集合中的子带之外的子带的频率。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,从目标子带集合中选择二次比特分配子带,包括:根据目标子带集合中各个子带的一次带宽平均比特数、各个子带的一次每信息单位比特数和各个子带的一次比特分配数中的至少一种,从目标子带集合中选择二次比特分配子带,其中,子带的一次带宽平均比特数是根据该子带的一次比特分配数以及该子带的带宽确定的,子带的一次每信息单位比特数是根据该子带的一次比特分配数以及该子带的一次信息单位数确定的,其中,子带的一次信息单位数是对该子带进行一次信息单位数确定操作后得到的。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,从目标子带集合中选择二次比特分配子带,包括:将目标子带集合中的一次带宽平均比特数最低的子带、一次每信息单位比特数最低的子带或一次比特分配数最低的子带确定为优先增强子带,优先增强子带属于二次比特分配子带。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,从目标子带集合中选择二次比特分配子带,还包括:在冗余比特总数大于阈值aN且小于aN+1时,确定需要选择N个二次比特分配子带,其中,aN和aN+1分别为按照递增顺序排列的多个阈值中的第N个阈值和第N+1个阈值;在N大于等于2时,从目标子带集合中除所述优先增强子带之外的其他子带中选择N-1个二次比特分配子带。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,从目标子带集合中除优先增强子带之外的其他子带中选择N-1个二次比特分配子带,包括:基于优先增强分配子带,确定该N-1个二次比特分配子带,其中,N个二次比特分配子带在频域上是连续的。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,从目标子带集合中选择二次比特分配子带,还包括:在冗余比特总数大于阈值时,从目标子带集合中确定次优增强子带,其中,二次比特分配子带包括次优增强子带和优先增强子带。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,从目标子带集合中选择二次比特分配子带,还包括:从目标子带集合,确定次优增强子带;在冗余比特总数大于阈值时,将次优增强子带确定为属于二次比特分配子带。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,从目标子带集合,确定次优增强子带,包括:将优先增强子带相邻的两个子带中的一次带宽平均比特数较低的子带、一次每信息单位比特数较低的子带或一次比特分配数较低的子带确定为次优增强子带。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,对二次比特分配子带进行二次比特分配,包括:在二次比特分配子带包括的子带的数量大于等于2时,根据二次比特分配子带中各个子带的一次每信息单位比特数、一次带宽平均比特数或一次比特分配数,对二次比特分配子带进行二次比特分配。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,根据待分配比特总数,对待处理子带进行一次比特分配,包括:根据待分配比特总数,按照待处理子带的各个子带的包络大小,对待处理子带进行一次比特分配。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,在该方法的执行主体为编码端时,该方法还包括:根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行量化操作以得到各个子带对应的量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;将量化的频谱系数写入码流并输出所述码流。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;该方法还包括:将至少一种参数写入码流。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,在该方法的执行主体为解码端时,该方法还包括:根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行逆量化操作以得到各个子带对应的逆量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;根据逆量化的频谱系数获取输出信号。

结合第一方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;该方法还包括:从待解码码流中获取该至少一种参数。

第二方面,提供了一种用于信号处理的装置,包括:比特总数确定单元,用于确定当前帧的待处理子带对应的待分配比特总数;第一比特分配单元,用于根据待分配比特总数,对待处理子带进行一次比特分配,以得到待处理子带中各个子带的一次比特分配数;第一信息单位数确定单元,用于根据各个子带的一次比特分配数,对一次比特分配后的各个子带进行一次信息单位数确定操作得到当前帧冗余比特总数以及待处理子带中各个子带对应的信息单位数;子带选择单元,用于根据二次比特分配参数,从待处理子带中选择二次比特分配子带,其中,二次比特分配参数包括待处理子带中各个子带的子带特征和冗余比特总数中的至少一种;第二比特分配单元,用于对二次比特分配子带进行二次比特分配,以便于将冗余比特分配给二次比特分配子带并得到二次比特分配子带中各个子带的二次比特分配数;第二信息单位数确定单元,用于根据二次比特分配子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数。

结合第二方面,在第二方面的第一种可能的实现方式中,待处理子带中各个子带的子带特征包括子带承载的信号特征、子带对应的比特分配状态和子带的频率范围中的至少一种。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,子带承载的信号特征包括:子带承载的信号类型和子带的包络值中的至少一种;和/或子带对应的比特分配状态包括:子带的前一帧对应子带的系数量化情况、子带的一次每信息单位比特数、子带的一次带宽平均比特数和子带的一次比特分配数中的至少一种;其中,子带的一次带宽平均比特数是根据该子带的一次比特分配数以及该子带的带宽确定的,子带的一次每信息单位比特数是根据该子带的一次比特分配数以及该子带的一次信息单位数确定的,其中,子带的一次信息单位数是对该子带进行一次信息单位数确定操作后得到的。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,子带承载的信号类型包括谐波和/或非谐波。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,子带选择单元包括:确定子单元,用于根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定目标子带集合;选择子单元,用于从目标子带集合中选择二次比特分配子带,目标子带集合中的子带属于待处理子带。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,确定子单元具体用于:根据m个第一子带集合中各个子带的子带特征,以及与m个第一子带集合一一对应的m个预定条件,确定目标子带集合,m为大于等于1的整数,m个第一子带集合中的子带属于待处理子带;其中,在m个第一子带集合中的每个子带集合均满足对应的预定条件时,将同属于m个第一子带集合的子带组成的集合确定为目标子带集合,否则,将所述待处理子带中除同属于m个第一子带集合的子带之外的子带组成的集合确定为目标子带集合;或者在m个第一子带集合中存在至少一个子带集合满足对应的预定条件时,将至少一个子带集合中所有子带组成的集合确定为目标子带集合,否则,将待处理子带中不属于m个第一子带集合中任一子带集合的子带组成的集合确定为目标子带集合。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,m个预定条件中的任一预定条件包括以下条件中的至少一种:对应的第一子带集合的前一帧对应子带存在被系数量化的子带、对应的第一子带集合中的子带的平均包络值大于第一阈值和对应的第一子带集合中存在承载的信号类型为谐波的子带。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,所述m个第一子带集合中的子带的频率高于所述待处理子带中除所述m个第一子带集合中的子带之外的子带的频率。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,选择子单元具体用于:根据目标子带集合中各个子带的一次带宽平均比特数、各个子带的一次每信息单位比特数和各个子带的一次比特分配数中的至少一种,从目标子带集合中选择二次比特分配子带。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,选择子单元具体用于:将目标子带集合中一次带宽平均比特数最低的子带、一次每信息单位比特数最低的子带或一次比特分配数最低的子带确定为优先增强子带,优先增强子带属于二次比特分配子带。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,选择子单元具体用于:在冗余比特总数大于阈值aN且小于aN+1时,确定需要选择N个二次比特分配子带,其中,aN和aN+1分别为按照递增顺序排列的多个阈值中的第N个阈值和第N+1个阈值;在N大于等于2时,从目标子带集合中除所述优先增强子带之外的其他子带中选择N-1个二次比特分配子带。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,选择子单元具体用于:基于优先增强分配子带,确定N-1个二次比特分配子带,其中,N个二次比特分配子带在频域上是连续的。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,选择子单元具体用于:在冗余比特总数大于阈值时,从目标子带集合中确定次优增强子带,其中,二次比特分配子带包括次优增强和优先增强子带。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,选择子单元具体用于:从目标子带集合中确定次优增强子带;在冗余比特总数大于阈值时,将次优增强子带确定为属于二次比特分配子带。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,选择子单元具体用于:将优先增强子带相邻的两个子带中一次带宽平均比特数较低的子带、一次每信息单位比特数较低的子带或一次比特分配数较低的子带确定为次优增强子带。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,第二比特分配单元具体用于:在二次比特分配子带包括的子带的数量大于等于2时,根据二次比特分配子带中各个子带一次信息单位数确定操作后得到的每信息单位比特数、一次信息单位数确定操作后得到的带宽平均比特数或一次比特分配数,对二次比特分配子带进行二次比特分配。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,第一比特分配单元具体用于:根据待分配比特总数,按照待处理子带的各个子带的包络大小,对待处理子带进行一次比特分配。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,该装置为解码器,该装置还包括:量化单元,用于根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行量化操作以得到各个子带对应的量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;传送单元,用于将量化的频谱系数写入码流并输出所述码流。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;传送单元还用于:将该至少一种参数写入码流。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,该装置为解码器,该装置还包括:逆量化单元,用于根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行逆量化操作以得到各个子带对应的逆量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;第一获取单元,用于根据逆量化的频谱系数获取输出信号。

结合第二方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;该装置还包括:第二获取单元,用于从待解码码流中获取该至少一种参数。

第三方面,提供了一种用于信号处理的装置,该装置包括该装置800包括存储器和处理器;存储器用于存储程序代码;处理器用于调用存储器中存储的程序代码,执行以下操作:确定当前帧的待处理子带对应的待分配比特总数;根据待分配比特总数,对待处理子带进行一次比特分配,以得到待处理子带中各个子带的一次比特分配数;根据各个子带的一次比特分配数,对一次比特分配后的各个子带进行一次信息单位数确定操作得到当前帧冗余比特总数以及待处理子带中各个子带对应的信息单位数;根据二次比特分配参数,从待处理子带中选择二次比特分配子带,其中,二次比特分配参数包括待处理子带中各个子带的子带特征和冗余比特总数中的至少一种;对二次比特分配子带进行二次比特分配,以便于将冗余比特分配给二次比特分配子带并得到二次比特分配子带中各个子带的二次比特分配数;根据二次比特分配子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数。

结合第三方面,在第三方面的第一种可能的实现方式中,待处理子带中各个子带的子带特征包括子带承载的信号特征、子带对应的比特分配状态和子带的频率范围中的至少一种。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,子带承载的信号特征包括:子带承载的信号类型和子带的包络值中的至少一种;和/或子带对应的比特分配状态包括:子带的前一帧对应子带的系数量化情况、子带的一次每信息单位比特数、子带的一次带宽平均比特数和子带的一次比特分配数中的至少一种,其中,子带的一次带宽平均比特数是根据该子带的一次比特分配数以及该子带的带宽确定的,子带的一次每信息单位比特数是根据该子带的一次比特分配数以及该子带的一次信息单位数确定的,其中,子带的一次信息单位数是对该子带进行一次信息单位数确定操作后得到的。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,子带承载的信号类型包括谐波和/或非谐波。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器存储的程序代码,具体执行以下操作:根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定目标子带集合以及从目标子带集合中选择二次比特分配子带,目标子带集合中的子带属于待处理子带。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:根据m个第一子带集合中各个子带的子带特征,以及与m个第一子带集合一一对应的m个预定条件,确定目标子带集合,m为大于等于1的整数,m个第一子带集合中的子带属于待处理子带;其中,在m个第一子带集合中的每个子带集合均满足对应的预定条件时,将同属于m个第一子带集合的子带组成的集合确定为目标子带集合,否则,将所述待处理子带中除同属于m个第一子带集合的子带之外的子带组成的集合确定为目标子带集合;或者在m个第一子带集合中存在至少一个子带集合满足对应的预定条件时,将至少一个子带集合中所有子带组成的集合确定为目标子带集合,否则,将待处理子带中不属于m个第一子带集合中任一子带集合的子带组成的集合确定为目标子带集合。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,m个预定条件中的任一预定条件包括以下条件中的至少一种:对应的第一子带集合的前一帧对应子带中存在被系数量化的子带、对应的第一子带集合中的子带的平均包络值大于第一阈值和对应的第一子带集合中存在承载的信号类型为谐波的子带。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,所述m个第一子带集合中的子带的频率高于所述待处理子带中除所述m个第一子带集合中的子带之外的子带的频率。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:根据目标子带集合中各个子带的一次带宽平均比特数、各个子带的一次每信息单位比特数和各个子带的一次比特分配数中的至少一种,从目标子带集合中选择二次比特分配子带。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:将目标子带集合中一次带宽平均比特数最低的子带、一次每信息单位比特数最低的子带或一次比特分配数最低的子带确定为优先增强子带,优先增强子带属于二次比特分配子带。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:在冗余比特总数大于阈值aN且小于aN+1时,确定需要选择N个二次比特分配子带,其中,aN和aN+1分别为按照递增顺序排列的多个阈值中的第N个阈值和第N+1个阈值;在N大于等于2时,从目标子带集合中除所述优先增强子带之外的其他子带中N-1个二次比特分配子带。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:基于优先增强分配子带,确定N-1个二次比特分配子带,其中,N个二次比特分配子带在频域上是连续的。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:在冗余比特总数大于阈值时,从目标子带集合中确定次优增强子带,其中,二次比特分配子带包括次优增强和优先增强子带。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:从目标子带集合中确定次优增强子带;在冗余比特总数大于阈值时,将次优增强子带确定为属于二次比特分配子带。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:将优先增强子带相邻的两个子带中一次带宽平均比特数较低的子带、一次每信息单位比特数较低的子带或一次比特分配数较低的子带确定为次优增强子带。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:在二次比特分配子带包括的子带的数量大于等于2时,根据二次比特分配子带中各个子带一次每信息单位比特数、一次信带宽平均比特数或一次比特分配数,对二次比特分配子带进行二次比特分配。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,处理器用于调用存储器中存储的程序代码,具体执行以下操作:根据待分配比特总数,按照待处理子带的各个子带的包络大小,对待处理子带进行一次比特分配。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,该装置为编码器,处理器用于调用存储器中存储的程序代码,还执行以下操作:根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行量化操作以得到各个子带对应的量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;将量化的频谱系数写入码流并输出该码流。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;在装置为编码器时,处理器用于调用存储器中存储的程序代码,还执行以下操作:将该至少一种参数写入码流。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,该装置为解码器,处理器用于调用存储器中存储的程序代码,还执行以下操作:根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行逆量化操作以得到各个子带对应的逆量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;根据逆量化的频谱系数获取输出信号。

结合第三方面或其上述任一可能的实现方式,在其另一种可能的实现方式中,在装置为解码器时,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;在该装置为解码器时,处理器用于调用存储器中存储的程序代码,还执行以下操作:从待解码码流中获取该至少一种参数。

因此,在本发明实施例中,先根据当前帧的待分配比特总数对待处理子带进行一次比特分配得到各个子带的一次比特分配数,并对一次比特分配后的子带进行一次信息单位数确定操作得到待处理子带中各个子带对应的信息单位数以及当前帧冗余比特总数,再根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定二次比特分配子带,并将冗余比特分配给该二次比特分配子带得到二次比特分配子带中各个子带的二次比特分配数,并根据二次比特分配子带中各个子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数,而非将被编码子带所剩的冗余比特平均分配到余下的未编码的子带中去,从而可以使得可用比特得到了更加合理、充分的利用,明显的提高了编解码的质量。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的用于信号处理的方法的示意性流程图。

图2是根据本发明另一实施例的用于信号处理的方法的示意性流程图。

图3是根据本发明另一实施例的选择二次比特分配子带的示意性图。

图4是根据本发明另一实施例的选择二次比特分配子带的示意性图。

图5是根据本发明另一实施例的选择二次比特分配子带的示意性图。

图6是根据本发明另一实施例的选择二次比特分配子带的示意性图。

图7是根据本发明另一实施例的二次信息单位数确定操作示意性图。

图8是根据本发明另一实施例的用于信号处理的方法的示意性流程图。

图9是根据本发明另一实施例的用于信号处理的方法的示意性流程图。

图10是根据本发明另一实施例的用于信号处理的装置的示意性框图。

图11是根据本发明另一实施例的用于信号处理的装置的示意性框图。

图12是根据本发明另一实施例的用于信号处理的装置的示意性框图。

图13是根据本发明另一实施例的用于信号处理的装置的示意性框图。

图14是根据本发明另一实施例的用于信号处理的装置的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是根据本发明实施例的比特分配方法100的示意性流程图。如图1所示,该方法100包括:

S110,确定当前帧的待处理子带对应的待分配比特总数;

S120,根据该待分配比特总数,对该待处理子带中各个子带进行一次比特分配,以得到待处理子带中各个子带的一次比特分配数;

S130,根据各个子带的一次比特分配数,对一次比特分配后的该待处理子带中各个子带进行一次信息单位数确定操作得到当前帧冗余比特总数以及待处理子带中各个子带对应的信息单位数;

S140,根据二次比特分配参数,从该待处理子带中选择二次比特分配子带,其中,该二次比特分配参数包括冗余比特总数和该待处理子带中各个子带的子带特征中的至少一种;

S150,对该二次比特分配子带进行二次比特分配,以便于将该冗余比特分配给该二次比特分配子带并得到二次比特分配子带中各个子带的二次比特分配数;

S160,根据该二次比特分配子带进行一次比特分配时得到的比特和二次比特分配时得到的比特,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到所述二次比特分配子带中各个子带对应的信息单位数。

具体地说,在当前帧的对待处理子带进行比特分配时,可以确定待处理子带对应的待分配比特总数;根据待分配比特总数,对待处理子带进行一次比特分配以得到各个子带的一次比特分配数,其中,可以按照各个子带的包络值,对各个子带进行一次比特分配;根据各个子带的一次比特分配数,对一次比特分配后的各个子带进行一次信息单位数确定操作,对所有子带进行一次信息单位数确定操作后得到的各个子带对应的信息单位数以及冗余比特总数;根据二次比特分配参数,具体根据待处理子带中各个子带的子带特征和/或冗余比特总数,从待处理子带中选择二次比特分配子带;对选择的二次比特分配子带进行二次比特分配,即将冗余比特分配给二次比特分配子带;然后根据二次比特分配子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数。从而,可以根据待处理子带中各个子带对应的信息单位数,进行后续操作;例如,对于编码端而言,可以根据各个子带对应的信息单位数进行量化操作,而对于解码端而言,可以根据各个子带对应的信息单位数进行逆量化操作。

应理解,在编码端时,本发明实施例中的待处理子带可以称作为待编码子带;在解码端时,本发明实施例中的待处理子带可以称作为待解码子带。

应理解,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数。

应理解,在本发明实施例中,对待处理子带中各个子带进行一次信息单位数确定操作,可以得到各个子带对应的信息单位数以及各个子带对应的冗余比特数,其中,各个子带对应的信息单位数所占的比特数与各个子带对应的冗余比特数之和为各个子带的一次比特分配数,每个子带对应的冗余比特数不够编码一个信息单位;然后,将当前帧待处理子带中的各个子带对应的冗余比特进行求和可以得到当前帧冗余比特总数,并将当前帧冗余比特总和分配给当前帧待处理子带中的二次比特分配子带。

还应理解,本发明实施例中信息单位是编码的一个单位,信息单位数确定操作是编解码操作中的一个具体过程,具体可以根据分配的比特数来进行确定。当然,对于不同的编码方法,可以有不同的叫法,例如有些编码方法中,将信息单位称作为脉冲,不管采用何种叫法只要实质与本发明相同,均应在本发明的保护范围之内。

因此,在本发明实施例中,先根据待分配比特总数对当前帧的待处理子带进行一次比特分配得到各个子带的一次比特分配数,并对一次比特分配后的子带进行一次信息单位数确定操作得到待处理子带中各个子带对应的信息单位数以及冗余比特总数,再根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定二次比特分配子带,并将冗余比特分配给该二次比特分配子带得到二次比特分配子带中各个子带的二次比特分配数,并根据二次比特分配子带中各个子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数,而非将被编码子带所剩的冗余比特平均分配到余下的未编码的子带中去,从而可以使得可用比特得到了更加合理、充分的利用,明显的提高了编解码的质量。

在本发明实施例中,上述二次比特分配参数可以包括冗余比特总数和待处理子带中各个子带的子带特征中的至少一种。

可选地,待处理子带中各个子带的子带特征可以包括子带承载的信号特征、子带对应的比特分配状态和子带频率范围中的至少一种。或者,各个子带的子带特征只是子带的编号等。

可选地,子带承载的信号特征可以包括子带承载的信号类型和包络值中的至少一种;其中,承载的信号类型可以包括谐波和/或非谐波;和/或

子带对应的比特分配状态可以包括:子带的前一帧对应子带的系数量化情况、子带的一次每信息单位比特数、子带的一次带宽平均比特数和子带的一次比特分配数中的至少一种。

可选地,子带的前一帧对应子带的系数量化情况可以是该子带的前一帧对应子带是否有系数被量化的情况,具体可以通过该子带的前一帧对应子带是否有比特分配来确定,其中,前一帧对应子带是否有比特分配可以根据一次比特分配和二次比特分配综合来看,只要有比特分配(不管是一次比特分配时分配的还是二次比特分配时分配的),均可以理解为前一帧对应子带有比特分配。

在本发明实施例中,任一子带的一次带宽平均比特数是根据所述任一子带的一次比特分配数以及所述任一子带的带宽确定的。

子带的一次带宽平均比特数可以按照以下公式确定:

其中,Rk1[ki]表示子带ki的一次比特分配数,bandwidth[ki]表示子带的带宽;

任一子带的一次每信息单位比特数是根据所述任一子带的一次比特分配数以及所述任一子带的一次信息单位数确定的,其中,所述任一子带的一次信息单位数是对所述任一子带进行一次信息单位数确定操作后得到的。

子带的一次每信息单位比特数可以按照以下公式确定:

其中,Rk1[ki]表示子带ki的一次比特分配数Rk1[ki],npluse[ki]表示子带ki的一次信息单位数确定操作后得到的信息单位数(即该子带的一次信息单位数)。

应理解,本发明实施例中,按照每一帧均对信号所占用的带宽进行划分为多个子带进行描述的,当前帧的子带与该子带的前一帧对应子带(即该子带对应的前一帧)在频率上是相同的。如果在某些场景下,针对不同的帧,即使将具有相同频率范围的子带称作为一个子带,只要所采用的技术方案在实质上与本发明相同,也应在本发明的保护范围之内。

在本发明实施例中,S130中从待处理子带中选择二次比特分配子带,可以包括:

根据冗余比特总数和待处理子带中各个子带的子带特征中的至少一种,确定目标子带集合以及从该目标子带集合中选择二次比特分配子带,其中,目标子带集合中的子带属于待处理子带。

具体地,根据m个第一子带集合中的子带特征,以及与该m个第一子带集合一一对应的m个预定条件,确定目标子带集合,所述m为大于等于1的整数;其中,

在m个第一子带集合中的每个子带集合均满足对应的预定条件时,将同属于该m个第一子带集合的子带组成的集合(在m大于等于2时,该集合为m个第一子带集合的交集)确定为目标子带集合,否则,将待处理子带中除同属于m个第一子带集合的子带之外的子带组成的集合确定为目标子带集合;或者,在m个第一子带集合中存在至少一个子带集合满足对应的预定条件时,将该至少一个子带集合中所有子带组成的集合确定为目标子带集合,否则,将待处理子带中不属于该m个第一子带集合中任一子带集合的子带组成的集合确定为目标子带集合。

应理解,m个第一子带集合与m个预定条件一一对应指m个子带集合中每一个子带集合对应一个预定条件,并且各个子带集合所对应的预定条件各不相同。

可选地,上述m个预定条件中的任一预定条件包括以下条件中的至少一种:

对应的第一子带集合的前一帧对应子带中存在被系数量化的子带、对应的第一子带集合中的子带的平均包络值大于第一阈值、对应的第一子带集合中存在承载的信号类型为谐波的子带。

可选地,该第一阈值具体可以根据第一子带集合之外各个子带的平均包络值来确定。例如,可以根据公式来确定,其中,Ep[i]表示子带i的包络值,BANDS为待处理子带数量,第一子带集合共包括J个子带,Ep[i]表示子带i的包络值表示对除所述J个子带之外的各个子带包络值求和。

可选地,所述m个第一子带集合中的子带的频率高于所述待处理子带中除所述m个第一子带集合中的子带之外的子带的频率。也就是说,先判断高频中的子带是否满足条件,如果满足相应条件,则在高频中选择二次比特分配子带;如果不满足相应条件,则在低频中选择二次比特分配子带。

可选地,在本发明实施例中,可以预配置上述m个第一子带集合或者编解码设备来从待处理子带集合中选择上述m个第一子带集合。

可选地,在本发明实施例中,不管预配置上述m个第一子带集合或者编解码设备来选择上述m个第一子带集合,在选择上述m个第一子带集合时均可以根据待编解码信号所占的带宽来确定上述m个子带集合。例如,所占带宽为窄带带宽(例如,带宽为4KHZ),可以将带宽大于2KHZ的子带组成的集合确定为一个第一子带集合,以及将带宽大于3KHZ的子带组成的集合确定为另一个第一子带集合。再例如,所占带宽为宽带带宽(例如,带宽为8KHZ),可以将带宽大于5KHZ的子带组成的集合确定为一个第一子带集合,以及将带宽大于6KHZ的子带组成的集合确定为另一个第一子带集合。

应理解,本发明实施例可以直接根据预定条件从待处理子带中选择目标子带集合;此时,预定条件可以是承载的信号类型为谐波的子带,则可以将全部承载的信号类型为谐波的子带确定为组成目标子带集合;或者,预定条件可以是待处理子带的前一帧对应子带中有系数被量化的子带,则可以将前一帧对应子带有系数被量化的全部当前帧子带确定为组成目标子带集合;或者,预定条件可以是包络值大于某一阈值的当前帧子带,则可以将全部包络值大于某一阈值的当前帧子带确定为组成目标子带集合,其中,该阈值可以根据当前帧所有子带的平均包络值来确定,例如,可以直接将该平均包络值确定为该阈值,或者将平均包络值的4/5确定为该阈值;或者,预定条件包括以上至少两个,则将满足该至少两个条件的全部子带确定为组成目标子带集合。

在本发明实施例中,在确定了目标子带集合之后,则可以从目标子带集合中选择二次比特分配子带;其中,可以根据目标子带集合中各个子带的一次带宽平均比特数、各个子带的一次每信息单位比特数和各个子带的一次比特分配数中的至少一种,从目标子带集合中选择二次比特分配子带。

具体地,可以先确定优先增强子带;其中,可以将目标子带集合中的一次带宽平均比特数最低的子带、一次信息单位数确定操作得到后的每信息单位比特数最低的子带或具有最低一次比特分配数的子带确定为优先增强子带,该优先增强子带属于二次比特分配子带。可选地,可以直接将所有冗余比特分配给该优先增强子带,也就是说二次分配子带只包括该优先增强子带;也可以继续选择属于二次比特分配子带的其他子带。具体如何确定是否选择其他二次比特分配子带和如何选择其他二次比特分配子带可以通过以下两种方式实现。

在第一种实现方式中,在冗余比特总数大于阈值aN且小于aN+1时,确定需要选择N个二次比特分配子带,其中,aN和aN+1分别为按照递增顺序排列的多个阈值中的第N个阈值和第N+1个阈值;如果N大于等于2时,从目标子带集合中除所述优先增强子带之外的其他子带中选择N-1个二次比特分配子带。当然,在N等于1时,则不需要再进行其他二次比特分配子带的选择。

在本发明实施例中,多个指两个或两个以上。例如,多个阈值指两个或两个以上的阈值。

可选地,在本发明实施例中,可以根据待编解码信号所占的带宽和/或优先增强子带的带宽来确定上述各个阈值。可选地,上述各个阈值与待编解码信号所占的带宽和/或优先增强子带的带宽正相关。

可选地,可以基于上述优先增强子带,选择其他N-1个二次比特分配子带,为了更好的保持频谱的连续性,该N个二次比特分配在频域上是连续的。

具体地,在N为2时,可以从将该优先增强子带相邻的两个子带中一次带宽平均比特数较低的子带、一次信息单位数确定操作得到后的每信息单位比特数最低的子带或具有较低一次比特分配数的子带确定为另一个二次比特分配子带;在N=3时,可以将优先增强子带k相邻的两个子带k+1和k-1确定为二次比特分配子带;如果N=4,则可以将子带k+1和k-1确定为二次比特分配子带,以及将子带k+1和k-1相邻的子带k+2和k-2中一次带宽平均比特数较低的子带、一次信息单位数确定操作得到后的每信息单位比特数较低的子带或具有较低一次比特分配数的子带确定为二次比特分配子带;如果N≥5,也可以按照上述类似方式继续选择。应理解,上述子带的标记k,k+1,k-1等只是为了描述的方便,不应对本发明构成限定。

当然,本发明实施例也可以无需保证N个二次比特分配子带在频域上的连续性,例如,从目标子带集合中按照各个子带的一次带宽平均比特数,将具有较低带宽平均比特数的N个子带确定为二次比特分配子带;或者,从目标子带集合中按照各个子带的一次每信息单位比特数,将具有较低带宽每信息单位比特数的N个子带确定为二次比特分配子带;或者,从目标子带集合中按照各个子带的一次比特分配数,将具有一次比特分配数的N个子带确定为二次比特分配子带。或者,从优先增强子带k相邻的两个子带k+1和k-1中选择一个子带,从子带k+2和k-2中选择一个子带,依次类推,直到选择全部N个子带。

在第二种实现方式中,在冗余比特总数大于某一阈值a时,可以确定需要选择次优增强子带,然后,从目标子带集合中确定次优增强子带,其中,二次比特分配子带由优先增强子带和次优增强子带组成。或者,可以先从目标子带集合中,确定次优增强子带,然后判断冗余比特总数是否大于阈值a,如果大于,则可以将次优增强子带确定为属于二次比特分配子带,否则,次优增强子带不属于二次比特分配子带。可选地,优先增强子带与次优增强子带在频域上是连续的,具体地可以将优先增强子带相邻的两个子带中的一次带宽平均比特数较低的子带、一次每信息单位比特数最低的子带或具有较低一次比特分配数的子带确定为该次优增强子带。

可选地,上述阈值a可以根据优先增强子带的带宽和/或待编解码信号所占的带宽来确定。可选地,阈值a与优先增强子带的带宽和/或待编解码信号所占的带宽正相关。例如,在待编码信号的带宽为4kHZ时,上述阈值可以取值为8,在上述待编码信号的带宽为8kHZ时,上述阈值a可以取值为12。

当然,本发明实施例中的优先增强子带和次优增强子带可以不一定为频域上连续的子带,例如,从目标子带集合中按照各个子带一次信息单位数确定操作后得到的带宽平均比特数,将具有较低带宽平均比特数的2个子带确定为优先增强子带和次优增强子带;或者,从目标子带集合中按照各个子带的一次每信息单位比特数,将具有较低带宽每信息单位比特数的2个子带确定为优先增强子带和次优增强子带;或者,从目标子带集合中按照各个子带的一次比特分配数,将具有一次比特分配数的2个子带确定为优先增强子带和次优增强子带。

应理解,本发明实施例也可以不确定目标子带集合,直接从待处理子带中选择二次比特分配子带,其中,需要选择的二次比特分配子带的数量可以根据冗余比特总数确定,例如,将一次比特分配数前h少的子带确定为二次比特分配子带(包括h个子带)。本发明也可以将具有某一特征的所有子带确定为二次比特分配子带,例如,将前一帧对应子带有系数被量化的当前帧子带确定为二次比特分配子带等等。

以上已经介绍了如何确定二次比特分配子带,在确定了二次比特分配子之后,可以将冗余比特分配给二次比特分配子带,以下将具体介绍如何将冗余比特分配给二次比特分配子带。

在本发明实施例中,在二次比特分配子带包括的子带的数量为1时,可以直接将所有冗余比特分配给该一个二次比特分配子带。

在本发明实施例中,在二次比特分配子带包括至少2个子带时,可以根据该二次比特分配子带中各个子带的一次每信息单位比特数、一次比特分配的带宽平均比特数或一次比特分配数,对该二次比特分配子带中的各个子带进行二次比特分配。具体地可以按比例将冗余比特分配给二次比特分配子带。具体如何确定分配比例可以有以下几种方式,以下方式中假设存在k1,k2…kN共N个子带,子带ki的分配比例βi可以按照以下几种方式确定:

1)

其中,aver_bit[ki]表示子带ki的一次带宽平均比特数,即

其中,Rk1[ki]表示子带ki的一次比特分配数,bandwidth[ki]表示子带的带宽。

2)

其中,Rk_pulse[ki]表示子带ki的一次每信息单位比特数,即其中,Rk1[ki]表示子带ki的一次比特分配数Rk1[ki],npluse[ki]表示子带ki的一次信息单位数。

3)

其中,Rk1[ki]表示子带ki的一次比特分配数。

在确定了二次比特分配子带中各个子带的冗余比特分配比例后,可以按照比例将冗余比特分配给二次比特分配子带中各个子带,具体地,子带ki的二次比特分配数是Rk2[ki]=βi*bit_surplus,其中,bit_surplus是冗余比特总数。

应理解,以上给出的分配比例确定方法只是本发明的具体实施例,不应对本发明的保护范围构成限定。上述给出的分配比例确定方式,可以进行相应的变形,例如,在二次比特分配子带包括两个子带时,在按照上述三个方式中的任一个方式确定了一个子带的二次比特分配子带的分配比例β时,可以通过1-β的方式确定另一个子带的比特分配比例。这些简单的数学变换都应该在本发明的保护范围之内。

还应理解,虽然上述假设存在k1,k2…kN共N个子带,只是为了使得描述适用于一般情况,这里并不限定N大于等于3,对于N为2的情况,上述几种二次比特分配比例也是适用的。

因此,在本发明实施例中,先根据待分配比特总数对当前帧的待处理子带进行一次比特分配得到各个子带的一次比特分配数,并对一次比特分配后的子带进行一次信息单位数确定操作得到待处理子带中各个子带对应的信息单位数以及冗余比特总数,再根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定二次比特分配子带,并将冗余比特分配给该二次比特分配子带得到二次比特分配子带中各个子带的二次比特分配数,并根据二次比特分配子带中各个子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数,而非将被编码子带所剩的冗余比特平均分配到余下的未编码的子带中去,从而可以使得可用比特得到了更加合理、充分的利用,明显的提高了编解码的质量。

为了更加清楚地理解本发明,以下将结合图2至图9对本发明进行详细描述。

图2是根据本发明实施例的比特分配方法200的示意性流程图。如图2所示,该方法200包括:

S201,确定当前帧的待处理子带以及待处理子带对应的待分配比特总数。

S202,根据待分配比特总数,按照待处理子带中各个子带的包络值对各个子带进行一次比特分配,以将待分配比特分配给待处理子带并得到各个子带的一次比特分配数。

S203,对一次比特分配后的待处理子带进行一次信息单位数确定操作,得到各个子带对应的信息单位数以及当前帧冗余比特总数。

S204,判断m个第一子带集合中的子带是否满足m个预定条件中对应的预定条件,其中,上述任一第一子带集合中的子带属于上述待处理子带。以下将结合多个举例进行详细说明。

举例1,m为1,预定条件为前M个高频子带中是否存在承载的信号类型为谐波的子带,第一子带集合为前M个高频子带。则判断前M个高频子带中是否存在承载的信号类型为谐波的子带。

举例2,m为1,预定条件为前L个高频子带的前一帧对应子带中存在有系数被量化的子带,第一子带集合为前L个高频子带。则判断前L个高频子带对应的当前帧子带中是否存在有系数被量化的子带。

举例3,m为1,预定条件为前J个高频子带的平均包络值大于阈值,其中,前J个高频子带的平均包络值aver_Ep以及相应阈值θ的计算可以如下:

其中,Ep[i]表示子带i的包络值,BANDS为子带数量;

其中,Ep[i]表示子带i的包络值,BANDS为子带数量。

此种情况,需要判断前J个高频子带的平均包络值aver_Ep是否大于阈值θ。

举例4,m为2,第一子带集合为前L个高频子带,对应的预定条件为前L个高频子带的前一帧对应子带中存在有系数被量化的子带;另一第一子带集合为前L个高频子带,对应的预定条件为前J个高频子带的平均包络值大于阈值。则需要判断前L个高频子带的前一帧对应子带中是否存在有系数被量化的子带,以及需要判断前J个高频子带的平均包络值是否大于阈值。

举例5,m为2,第一子带集合为前L个高频子带,对应的预定条件为前L个高频子带的前一帧对应子带中存在有系数被量化的子带;另一第一子带集合为前M个高频子带,对应的预定条件为前M个高频子带中存在承载的信号类型为谐波的子带。则需要判断前L个高频子带的前一帧对应子带中有系数被量化的子带,以及需要判断前M个高频子带中是否存在承载的信号类型为谐波的子带。

举例6,m为2,第一子带集合为前J个高频子带,对应的预定条件为前J个高频子带的平均包络值大于阈值;另一个第一子带集合为前M个高频子带,对应的预定条件为前M个高频子带中存在承载的信号类型为谐波的子带。则需要判断前J个高频子带的平均包络值是否大于阈值,以及需要判断前M个高频子带中是否存在承载的信号类型为谐波的子带。

举例7,m为3,第一子带集合为前J个高频子带,对应的预定条件为前J个高频子带的平均包络值大于阈值;另一第一子带集合为前M个高频子带,对应的预定条件为前M个高频子带中存在承载的信号类型为谐波的子带;另一第一子带集合为前L个高频子带,对应的预定条件为前L个高频子带的前一帧对应子带中存在有系数被量化的子带。则需要判断前J个高频子带的平均包络值是否大于阈值,前M个高频子带中是否存在承载的信号类型为谐波的子带,以及为前L个高频子带的前一帧对应子带中是否存在有系数被量化的子带。

对于如何选择目标子带集合,有以下两种方式:

在第一种方式中,在m个第一子带集合中的每个子带集合均满足对应的预定条件时,将同属于m个第一子带集合的子带组成的集合确定为目标子带集合(即执行S205a),否则,将除同属于所述m个第一子带集合的子带之外的子带组成的集合确定为目标子带集合(即执行S206a)。例如,在举例1中,如果前M个高频子带中存在承载的信号类型为谐波的子带,则可以将前M个高频子带组成的集合确定为目标子带集合,否则,将除前M个高频子带之外的子带组成的集合确定为目标子带集合;例如,在举例4中,在前L个高频子带的前一帧对应子带中存在有系数被量化的子带,且前J个高频子带的平均包络值大于阈值时,可以将前L个高频子带和前J个高频子带的交集确定为目标子带集合,否则,将该交集之外的子带确定为目标子带集合;再例如,在举例7中,在前J个高频子带的平均包络值大于阈值,且前L个高频子带的前一帧对应子带中存在有系数被量化的子带,以及前M个高频子带中存在承载的信号类型为谐波的子带,则可以将前J个高频子带、前M个高频子带以及前L个高频子带的交集确定为目标子带集合,否则,将所述待处理子带中除该交集之外的子带确定为目标子带集合。

在第二种方式中,在该m个第一子带集合中存在至少一个子带集合满足对应的预定条件时,将该至少一个子带集合中所有子带组成的集合确定为目标子带集合(即执行S205b),否则,将待处理子带中不属于m个第一子带集合中任一第一子带集合的子带组成的集合确定为所述目标子带集合(即执行S206b)。例如,在举例1中,如果前M个高频子带中存在承载的信号类型为谐波的子带,则可以将前M个高频子带组成的集合确定为目标子带集合,否则,将除前M个高频子带之外的子带组成的集合确定为目标子带集合;例如,在举例4中,在前L个高频子带中的前一帧对应子带中存在有系数被量化的子带,且前J个高频子带的平均包络值大于阈值时,可以将前S(S=max(J,L))个子带组成的集合确定为目标子带集合,否则,将该前S个子带之外的子带组成的集合确定为目标子带集合;再例如,在举例7中,在前J个高频子带的平均包络值大于阈值,且前L个高频子带的前一帧对应子带中存在有系数被量化的子带,以及前M个高频子带中存在承载的信号类型为谐波的子带,可以将前S(S=max(J,L,M))个子带组成的集合确定为目标子带集合,否则,将该前S个子带之外的子带组成的集合确定为目标子带集合;再例如,在举例7中,在前J个高频子带的平均包络值不大于阈值,且前L个高频子带的前一帧对应子带中存在有系数被量化的子带,以及前M个高频子带中存在承载的信号类型为谐波的子带,可以将前S(S=max(L,M))个子带组成的集合确定为目标子带集合,否则,将该前S个子带之外的子带组成的集合确定为目标子带集合。

S205a,将同属于m个第一子带集合的子带组成的集合确定为目标子带集合。

S206a,将待处理子带中除同属于所述m个第一子带集合的子带之外的子带组成的集合确定为目标子带集合。

S205b,将满足对应预定条件的至少一个子带集合中所有子带组成的集合确定为目标子带集合。

S206b,将待处理子带中不属于m个第一子带集合任一子带集合的子带组成的集合确定为所述目标子带集合。

S207,从目标子带集合中确定优先增强子带k。

具体地,可以将目标子带集合中的一次带宽平均比特数最低的子带、一次信息单位数确定操作得到后的每信息单位比特数最低的子带或具有最低一次比特分配数的子带确定为优先增强子带k。

S208,确定二次比特分配子带数量N以及二次比特分配子带。可以通过以下几种方式确定二次比特分配子带数量N以及二次比特分配子带。

方式1:

步骤1:根据优先增强子带的带宽确定阈值alpha,其中,优先增强子带的带宽可以与阈值alpha正相关。

步骤2:确定冗余比特总数(bit_surplus)是否大于阈值alpha(图3中所示的a);如果大于,则将二次比特分配子带数量N确定为2;如果小于,则将二次比特子带数量N确定为1,例如,如图3所示。

步骤3:如果N等于1,则将二次比特分配子带确定为只包括上述优先增强子带k。如果N等于2,则除了优先增强子带k外,还需要确定二次比特分配子带包括的另一个子带,为了保持频谱的连续性,可以将优先增强子带k相邻的两个子带k+1和k-1中的一个子带确定为次优增强子带k1(例如,如图4所示),即二次比特分配子带包括的另一个子带;具体可以将优先增强子带k相邻的两个子带k+1和k-1中具有较低一次比特分配数的子带、具有较低带宽平均比特数的子带或一次每信息单位比特数较低的子带确定为次优增强子带k1,即二次比特分配子带包括的另一个子带。

方式2:

步骤1:确定次优增强子带k1,可以将优先增强子带k相邻的两个子带k+1和k-1中的一个子带确定为次优增强子带k1(例如,如图4所示);具体可以将优先增强子带相邻的两个子带中前帧具有较低一次比特分配数的子带、一次带宽平均比特数较低的子带或一次信息单位数确定操作得到后的每信息单位比特数较低的子带确定为次优增强子带k1

步骤2:根据优先增强子带k的带宽确定阈值alpha,其中,优先增强子带的带宽可以与阈值alpha正相关

步骤3:确定冗余比特总数bit_surplus是否大于阈值alpha;如果大于,则将二次比特分配子带数量N确定为2,如果小于则将二次比特子带数量确定为1,例如,如图3所示。

步骤4:如果N等于1,则将二次比特分配子带确定为只包括上述优先增强子带k;如果N等于2,则除了优先增强子带k外,二次比特分配子带还包括步骤1确定的次优增强子带k1

方式3:

步骤1:假设存在按照递增顺序排列的n-1个阈值(alphan-1,alphan-1。。。,alpha1),可以先判断冗余比特总数(bit_surplus)是否大于阈值alphan-1,如果大于则确定二次比特分配子带的数量N=n;否则,判断bit_surplus是否大于阈值alphan-2,若大于则N=n-1,依次类推,例如,如图5所示。其中,an表示alphan,an-1表示alphan-1,a1表示alpha1

步骤2:在N=1时,则将二次比特分配子带确定为只包括上述优先增强子带k;在N>1时,则除了优先增强子带k外,二次比特分配子带还包括其他子带。其中,为了保持频谱的连续性,如果N=2,则可以将子带k+1和k-1相邻的子带k+2和k-2中前帧具有较低一次比特分配数的子带、一次带宽平均比特数较低的子带或一次信息单位数确定操作得到后的每信息单位比特数较低的子带确定为一个二次比特分配子带,如果N=3,则可以将子带k+1和k-1确定为二次比特分配子带,如果N=4,则可以子带k+1和k-1确定为二次比特分配子带,并从子带k+2和k-2中选择子带,如果N大于4,其它次优增强子带的选择按照上述类似的方式进行选择,例如,如图6所示,确定次优增强子带k1,K2,k3,k4,。。。kn-1

应理解,上述方式3也可以有其他的变形,均应在本发明的保护范围之内。例如,可以先判断冗余比特总数bit_surplus是否大于阈值alphan/2;如果大于,再判断是否小于alpha(n/2)+1,如果小于,再判断是否大于alpha(n/2)-1alphan/2+1,如此类推。

S209,将冗余比特分配给二次比特分配子带,以得到二次比特分配子带中各个子带的二次比特分配数。在确定了二次比特分配子带之后,可以将冗余比特分配给二次比特分配子带包括的各个子带。

具体地,在N=1时,即二次比特分配子带只包括优先增强子带,则可以将该冗余比特全部分配给优先增强子带。

在N>1时,可以按照分配比例将冗余比特分配给二次比特分配子带包括的各个子带,其中,每一个子带的冗余比特分配比例可以按照该子带的一次每信息单位比特数、一次带宽平均比特数或一次比特分配数来确定,具体确定方法可以参考上文所述。

S210,根据二次比特分配子带各个子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作。

具体可以如图7所示,整合一次分配得到的比特Rk1和二次分配得到的比特Rk2为Rkall,然后用Rkall对二次比特分配子带进行二次信息单位数确定操作。

因此,在本发明实施例中,先根据待分配比特总数对待处理子带进行一次比特分配得到一次比特分配数,并对一次比特分配后的子带进行一次信息单位数确定操作得到待处理子带中各个子带对应的信息单位数以及冗余比特总数,再根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定二次比特分配子带,并将冗余比特分配给该二次比特分配子带得到二次比特分配子带中各个子带的二次比特分配数,并根据二次比特分配子带中各个子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数,而非将被编码子带所剩的冗余比特平均分配到余下的未编码的子带中去,从而可以使得可用比特得到了更加合理、充分的利用,明显的提高了编解码的质量。

本发明实施例的比特分配方法可以使用于解码端和编码端。

在用于编码端时,方法100还可以包括:根据待处理子带中各个子带对应的信息单位数,对该各个子带进行量化操作以得到各个子带对应的量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;将该量化的频谱系数写入码流并输出该码流。

可选地,在用于编码端时,在二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数时,该方法100还可以包括:将该至少一个参数写入码流。

本发明实施例还可以应用于解码端,在用于解码端时,方法100还可以包括:

根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行逆量化操作以得到各个子带对应的逆量化的频谱系数,其中,所述二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;根据该逆量化的频谱系数获取输出信号。

可选地,本发明实施例在用于解码端时,在二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数时,该方法100还可以包括:从待解码码流中获取所述至少一种参数。

为了更加清楚地理解本发明,以下将结合图8和图9分别描述根据本发明实施例的用于信号处理的方法,其中,图8所示的为编码方法,图9所示的为解码方法。

图8是根据本发明实施例的编码方法示意性图。如图8所示,该方法300可以包括:

S301,编码端在获取到输入信号(例如,音频信号)之后,可以对输入信号进行时频变换得到频域信号,该频域信号占用的子带以下称作为待编码子带;

S302,确定待编码子带中各个子带的子带类型,其中,各个子带的子带类型可以为各个子带承载的信号类型,例如,该信号类型可以为谐波或非谐波;

S303,根据S302中确定的各个子带的子带类型,计算和量化频域包络,得到各个子带的包络值;

S304,根据S303中得到的各个子带的包络值以及根据待分配比特总数,对各个子带进行一次比特分配,以得到各个子带的一次比特分配数;

S305,对一次比特分配后的各个子带进行一次信息单位数确定操作可以得到各个子带对应的信息单位数和冗余比特总数;

S306,根据S302中确定的当前帧各个子带的子带类型、S303中确定的当前帧各个子带的包络值、S304中确定的当前帧各个子带的一次比特分配数、S305中确定的冗余比特总数中的至少一种,从当前帧待编码子带中确定二次比特分配子带;可选地,还可以根据各个子带的前一帧对应子带的比特分配状态确定二次比特分配子带;

S307,根据S306中确定的二次比特分配子带和S305中确定的冗余比特总数,将冗余比特分配给二次比特分配子带;具体如何分配可以根据S304一次比特分配后各个子带的一次比特分配比特、和/或一次每信息单位比特数(和/或带宽平均比特数)进行二次比特分配;

S308,根据二次比特分配子带进行一次比特分配(S304)时得到的一次比特分配数和二次比特分配(S307)时得到的二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数;

S309,根据待编码子带中各个子带对应的信息单位数,对承载有S301时频变换后的频域信号的子带进行量化操作以得到各个子带对应的量化的频谱系数,其中,当前帧二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,当前帧其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;

S310,将量化的频谱系数、各个子带的前一帧对应子带的比特分配状态、各个子带的子带类型以及包络值写入码流并输出该码流,以便于解码端获取该码流并进行解码。其中,在S306确定二次比特分配子带未采用各个子带的前一帧对应子带的比特分配状态时,各个子带的前一帧对应子带的比特分配状态也可以不传送至解码端。

图9是根据本发明实施例的解码方法400的示意性流程图。如图9所示,该方法400可以包括:

S401,解码端在获取到待解码码流后,可以解码该待解码码流,得到待解码子带中各个子带的量化的频谱系数,各个子带的前一帧对应子带的比特分配状态、各个子带的子带类型以及包络值;

S402,根据S401中获取的待解码子带中各个子带的包络值以及根据待编码比特总数对各个子带进行一次比特分配,以得到各个子带的一次比特分配数

S403,对一次比特分配后的各个子带进行一次信息单位数确定操作可以得到各个子带对应的信息单位数和冗余比特总数;

S404,可以根据S401中获取的各个子带的子带类型、各个子带的包络值以及各个子带的前一帧对应子带的比特分配状态,以及根据S403中确定的冗余比特总数中的至少一种从待解码子带中确定二次比特分配子带(具体采用哪个参数确定二次比特分配子带,可以与编码端保持一致);

S405,根据S404中确定的二次比特分配子带和S403中确定的冗余比特总数,将冗余比特分配给二次比特分配子带,以得到二次比特分配子带中各个子带的二次比特分配数;具体如何分配可以根据S402一次比特分配后各个子带的一次比特分配比特、和/或S403一次信息单位数确定操作后每信息单位比特数(和/或带宽平均比特数)进行二次比特分配;

S406,根据二次比特分配子带进行一次比特分配(S402)时得到的一次比特分配数和二次比特分配(S405)时得到的二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数;

S407,根据待解码子带中各个子带对应的信息单位数,对S401解码比特流后的得到的各个子带进行逆量化操作,以得到各个子带对应的逆量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;

S408,将各个子带对应的逆量化的频谱系数进行时频变换得到输出信号(例如,音频信号)。

因此,在本发明实施例中,先根据待分配比特总数对待处理子带进行一次比特分配得到一次比特分配数,并对一次比特分配后的子带进行一次信息单位数确定操作得到待处理子带中各个子带对应的信息单位数以及冗余比特总数,再根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定二次比特分配子带,并将冗余比特分配给该二次比特分配子带得到二次比特分配子带中各个子带的二次比特分配数,并根据二次比特分配子带中各个子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数,而非将被编码子带所剩的冗余比特平均分配到余下的未编码的子带中去,从而可以使得可用比特得到了更加合理、充分的利用,明显的提高了编解码的质量。

以上已结合图1至图9描述了根据本发明实施例的方法,以下将结合图9至图13描述根据本发明实施例用于信号处理的装置。

图10是根据本发明实施例的用于信号处理的装置500的示意性框图。如图10所示,该装置500包括:

比特总数确定单元510,用于确定当前帧的待处理子带对应的待分配比特总数;

第一比特分配单元520,用于根据待分配比特总数,对待处理子带进行一次比特分配,以得到待处理子带中各个子带的一次比特分配数;

第一信息单位数确定单元530,用于根据各个子带的一次比特分配数,对一次比特分配后的各个子带进行一次信息单位数确定操作得到当前帧冗余比特总数以及待处理子带中各个子带对应的信息单位数;

子带选择单元540,用于根据二次比特分配参数,从待处理子带中选择二次比特分配子带,其中,二次比特分配参数包括待处理子带中各个子带的子带特征和冗余比特总数中的至少一种;

第二比特分配单元550,用于对二次比特分配子带进行二次比特分配,以便于将冗余比特分配给二次比特分配子带并得到二次比特分配子带中各个子带的二次比特分配数;

第二信息单位数确定单元560,用于根据二次比特分配子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数。

可选地,待处理子带中各个子带的子带特征包括子带承载的信号特征、子带对应的比特分配状态和子带的频率范围中的至少一种。

可选地,子带承载的信号特征包括:子带承载的信号类型和子带的包络值中的至少一种;和/或

子带对应的比特分配状态包括:子带的前一帧对应子带的系数量化情况、子带的一次每信息单位比特数、子带的一次带宽平均比特数和子带的一次比特分配数中的至少一种。

在本发明实施例中,其中,任一子带的一次带宽平均比特数是根据所述任一子带的一次比特分配数以及所述任一子带的带宽确定的,任一子带的一次每信息单位比特数是根据所述任一子带的一次比特分配数以及所述任一子带的一次信息单位数确定的,其中,所述任一子带的一次信息单位数是对所述任一子带进行一次信息单位数确定操作后得到的。

可选地,子带承载的信号类型包括谐波和/或非谐波。

可选地,如图11所示,子带选择单元540包括:

确定子单元542,用于根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定目标子带集合;

选择子单元546,用于从目标子带集合中选择二次比特分配子带,目标子带集合中的子带属于待处理子带。

可选地,确定子单元542具体用于:

根据m个第一子带集合中各个子带的子带特征,以及与m个第一子带集合一一对应的m个预定条件,确定目标子带集合,m为大于等于1的整数,m个第一子带集合中的子带属于待处理子带;其中,

在m个第一子带集合中的每个子带集合均满足对应的预定条件时,将同属于m个第一子带集合的子带组成的集合确定为目标子带集合,否则,将待处理子带中除同属于m个第一子带集合的子带之外的子带组成的集合确定为目标子带集合;或者

在m个第一子带集合中存在至少一个子带集合满足对应的预定条件时,将至少一个子带集合中所有子带组成的集合确定为目标子带集合,否则,待处理子带中不属于m个第一子带集合中任一子带集合的子带组成的集合确定为目标子带集合。

可选地,m个预定条件中的任一预定条件包括以下条件中的至少一种:

对应的第一子带集合的前一帧对应子带中存在被系数量化的子带、对应的第一子带集合中的子带的平均包络值大于第一阈值和对应的第一子带集合中存在承载的信号类型为谐波的子带。

可选地,所述m个第一子带集合中的子带的频率高于所述待处理子带中除所述m个第一子带集合中的子带之外的子带的频率。

可选地,选择子单元546具体用于:

根据目标子带集合中各个子带的一次带宽平均比特数、各个子带的一次每信息单位比特数和各个子带的一次比特分配数中的至少一种,从目标子带集合中选择二次比特分配子带。

可选地,选择子单元546具体用于:

将目标子带集合中一次带宽平均比特数最低的子带、一次每信息单位比特数最低的子带或一次比特分配数最低的子带确定为优先增强子带,优先增强子带属于二次比特分配子带。

可选地,选择子单元546具体用于:

在冗余比特总数大于阈值aN且小于aN+1时,确定需要选择N个二次比特分配子带,其中,aN和aN+1分别为按照递增顺序排列的多个阈值中的第N个阈值和第N+1个阈值;

在N大于等于2时,从目标子带集合中除所述优先增强子带之外的其他子带中选择N-1个二次比特分配子带。

可选地,选择子单元546具体用于:

基于优先增强分配子带,确定上述N-1个二次比特分配子带,其中,N个二次比特分配子带在频域上是连续的。

可选地,选择子单元546具体用于:

在冗余比特总数大于阈值时,从目标子带集合中确定次优增强子带,其中,二次比特分配子带包括次优增强子带和优先增强子带。

可选地,选择子单元546具体用于:

从目标子带集合中,确定次优增强子带;

在冗余比特总数大于阈值时,将次优增强子带确定为属于二次比特分配子带。

可选地,选择子单元546具体用于:

将优先增强子带相邻的两个子带中一次带宽平均比特数较低的子带、一次每信息单位比特数较低的子带或一次比特分配数较低的子带确定为次优增强子带。

可选地,第二比特分配单元550具体用于:

在二次比特分配子带包括的子带的数量大于等于2时,根据二次比特分配子带中各个子带的一次每信息单位比特数、一次带宽平均比特数或一次比特分配数,对二次比特分配子带进行二次比特分配。

可选地,第一比特分配单元520具体用于:

根据待分配比特总数,按照待处理子带的各个子带的包络大小,对待处理子带进行一次比特分配。

本发明实施例的用于信号处理的装置500可以用于实现方法实施例中用于信号处理的方法,为了简洁,在此不再赘述。

因此,在本发明实施例中,先根据当前帧的待分配比特总数对待处理子带进行一次比特分配得到一次比特分配数,并对一次比特分配后的子带进行一次信息单位数确定操作得到待处理子带中各个子带对应的信息单位数以及冗余比特总数,再根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定二次比特分配子带,并将冗余比特分配给该二次比特分配子带得到二次比特分配子带中各个子带的二次比特分配数,并根据二次比特分配子带中各个子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数,而非将被编码子带所剩的冗余比特平均分配到余下的未编码的子带中去,从而可以使得可用比特得到了更加合理、充分的利用,明显的提高了编解码的质量。

可选地,本发明实施例的用于信号处理的装置可以为编码器,也可以是解码器。以下将结合图12和图13进行详细说明。

图12是根据本发明实施例的编码器600的示意性框图。除了比特总数确定单元610、第一比特分配单元620、第一信息单位数确定单元630、子带选择单元640、第二比特分配单元650和第二信息单位数确定单元660之外,还可以包括量化单元670和传送单元680。其中,

量化单元670,用于根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行量化操作以得到各个子带对应的量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;

传送单元680,用于将量化的频谱系数写入码流并输出该码流。

可选地,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;

传送单元680还用于:将该至少一种参数写入码流。

应理解,编码器600中的比特总数确定单元610、第一比特分配单元620、第一信息单位数确定单元630、子带选择单元640、第二比特分配单元650和第二信息单位数确定单元660可以分别相当于用于信号处理的装置500中的比特总数确定单元510、第一比特分配单元520、第一信息单位数确定单元530、子带选择单元540、第二比特分配单元550和第二信息单位数确定单元560,为了简洁,在此不再赘述。还应理解,编码器600还可以实现编码方法300中的相应流程,为了简洁,在此不再赘述。

图13是根据本发明实施例的解码器700的示意性框图。除了比特总数确定单元710、第一比特分配单元720、第一信息单位数确定单元730、子带选择单元740、第二比特分配单元750和第二信息单位数确定单元760之外,还可以包括逆量化单元770和第一获取单元780。其中,

逆量化单元770,用于根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行逆量化操作以得到各个子带对应的逆量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;

第一获取单元780,用于根据逆量化的频谱系数获取输出信号。

可选地,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;解码器700还包括:

第二获取单元790,用于从待解码码流中获取该至少一种参数。

应理解,编码器700中的比特总数确定单元710、第一比特分配单元720、第一信息单位数确定单元730、子带选择单元740、第二比特分配单元750和第二信息单位数确定单元760可以分别相当于用于信号处理的装置500中的比特总数确定单元510、第一比特分配单元520、第一信息单位数确定单元530、子带选择单元540、第二比特分配单元550和第二信息单位数确定单元560,为了简洁,在此不再赘述。还应理解,解码器700还可以实现解码方法400中的相应流程,为了简洁,在此不再赘述。

图14是根据本发明实施例的用于信号处理的装置800的示意性框图。如图14所示的装置800,该装置800包括存储器810和处理器820。存储器810用于存储程序代码;处理器820用于调用存储器810中存储的程序代码,执行以下操作:

确定当前帧的待处理子带对应的待分配比特总数;

根据待分配比特总数,对待处理子带进行一次比特分配,以得到待处理子带中各个子带的一次比特分配数;

根据各个子带的一次比特分配数,对一次比特分配后的各个子带进行一次信息单位数确定操作得到待处理子带中各个子带对应的信息单位数以及当前帧冗余比特总数;

根据二次比特分配参数,从待处理子带中选择二次比特分配子带,其中,二次比特分配参数包括待处理子带中各个子带的子带特征和冗余比特总数中的至少一种;

对二次比特分配子带进行二次比特分配,以便于将冗余比特分配给二次比特分配子带并得到二次比特分配子带中各个子带的二次比特分配数;

根据二次比特分配子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数。

可选地,待处理子带中各个子带的子带特征包括子带承载的信号特征、子带对应的比特分配状态和子带的频率范围中的至少一种。

可选地,子带承载的信号特征包括:子带承载的信号类型和子带的包络值中的至少一种;和/或

子带对应的比特分配状态包括:子带的前一帧对应子带的系数量化情况、子带的一次每信息单位比特数、子带的一次带宽平均比特数和子带的一次比特分配数中的至少一种。

可选地,子带承载的信号类型包括谐波和/或非谐波。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定目标子带集合以及从目标子带集合中选择二次比特分配子带,目标子带集合中的子带属于待处理子带。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

根据m个第一子带集合中各个子带的子带特征,以及与m个第一子带集合一一对应的m个预定条件,确定目标子带集合,m为大于等于1的整数,m个第一子带集合中的子带属于待处理子带;其中,

在m个第一子带集合中的每个子带集合均满足对应的预定条件时,将同属于m个第一子带集合的子带组成的集合确定为目标子带集合,否则,将所述待处理子带中除同属于m个第一子带集合的子带之外的子带组成的集合确定为目标子带集合;或者

在m个第一子带集合中存在至少一个子带集合满足对应的预定条件时,将至少一个子带集合中所有子带组成的集合确定为目标子带集合,否则,待处理子带中不属于m个第一子带集合中任一子带集合的子带组成的集合确定为目标子带集合。

可选地,m个预定条件中的任一预定条件包括以下条件中的至少一种:

对应的第一子带集合的前一帧对应子带中存在被系数量化的子带、对应的第一子带集合中的子带的平均包络值大于第一阈值和对应的第一子带集合中存在承载的信号类型为谐波的子带。

可选地,所述m个第一子带集合中的子带的频率高于所述待处理子带中除所述m个第一子带集合中的子带之外的子带的频率。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

根据目标子带集合中各个子带的一次带宽平均比特数、各个子带的一次每信息单位比特数和各个子带的一次比特分配数中的至少一种,从目标子带集合中选择二次比特分配子带。

在本发明实施例中,任一子带的一次带宽平均比特数是根据所述任一子带的一次比特分配数以及所述任一子带的带宽确定的,任一子带的一次每信息单位比特数是根据所述任一子带的一次比特分配数以及所述任一子带的一次信息单位数确定的,其中,所述任一子带的一次信息单位数是对所述任一子带进行一次信息单位数确定操作后得到的。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

将目标子带集合中一次信息单位数确定操作后得到的带宽平均比特数最低的子带、一次每信息单位比特数最低的子带或一次比特分配数最低的子带确定为优先增强子带,优先增强子带属于二次比特分配子带。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

在冗余比特总数大于阈值aN且小于aN+1时,确定需要选择N个二次比特分配子带,其中,aN和aN+1分别为按照递增顺序排列的多个阈值中的第N个阈值和第N+1个阈值;

在N大于等于2时,从目标子带集合中除所述优先增强子带之外的其他子带中选择N-1个二次比特分配子带。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

基于优先增强分配子带,确定上述N-1个二次比特分配子带,其中,N个二次比特分配子带在频域上是连续的。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

在冗余比特总数大于阈值时,从目标子带集合中确定次优增强子带,其中,二次比特分配子带包括次优增强子带和优先增强子带。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

从目标子带集合,确定次优增强子带;

在冗余比特总数大于阈值时,将次优增强子带确定为属于二次比特分配子带。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

将优先增强子带相邻的两个子带中一次带宽平均比特数较低的子带、一次每信息单位比特数较低的子带或一次比特分配数较低的子带确定为次优增强子带。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

在二次比特分配子带包括的子带的数量大于等于2时,根据二次比特分配子带中各个子带的一次每信息单位比特数、一次带宽平均比特数或一次比特分配数,对二次比特分配子带进行二次比特分配。

可选地,处理器820用于调用存储器810中存储的程序代码,具体执行以下操作:

根据待分配比特总数,按照待处理子带的各个子带的包络大小,对待处理子带进行一次比特分配。

可选地,该装置800为编码器,处理器820用于调用存储器810中存储的程序代码,还执行以下操作:

根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行量化操作以得到各个子带对应的量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;

将量化的频谱系数写入码流并输出该码流。

可选地,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;在装置800为编码器时,处理器820用于调用存储器810中存储的程序代码,还执行以下操作:将该至少一种参数写入该码流。

可选地,该装置800为解码器,处理器820用于调用存储器810中存储的程序代码,还执行以下操作:

根据待处理子带中各个子带对应的信息单位数,对待处理子带中各个子带进行逆量化操作以得到各个子带对应的逆量化的频谱系数,其中,二次比特分配子带中各个子带对应的信息单位数是进行二次信息单位数确定操作后得到的信息单位数,其他子带对应的信息单位数是进行一次信息单位数确定操作后得到的信息单位数;

根据逆量化的频谱系数获取输出信号。

可选地,在装置800为解码器时,二次比特分配参数包括待处理子带中至少一个子带承载的信号类型、待处理子带中至少一个子带的包络值以及待处理子带中至少一个子带的前一帧对应子带的系数量化情况中的至少一种参数;在装置800为解码器时,处理器820用于调用存储器810中存储的程序代码,还执行以下操作:从待解码码流中获取该至少一种参数。

本发明实施例的用于信号处理的装置500可以用于实现方法实施例中用于信号处理的方法,为了简洁,在此不再赘述。

因此,在本发明实施例中,先根据当前帧的待分配比特总数对待处理子带进行一次比特分配得到一次比特分配数,并对一次比特分配后的子带进行一次信息单位数确定操作得到冗余比特总数以及待处理子带中各个子带对应的信息单位数,再根据待处理子带中各个子带的子带特征和冗余比特总数中的至少一种,确定二次比特分配子带,并将冗余比特分配给该二次比特分配子带得到二次比特分配子带中各个子带的二次比特分配数,并根据二次比特分配子带中各个子带的一次比特分配数和二次比特分配数,对二次比特分配子带中各个子带进行二次信息单位数确定操作以重新得到二次比特分配子带中各个子带对应的信息单位数,而非将被编码子带所剩的冗余比特平均分配到余下的未编码的子带中去,从而可以使得可用比特得到了更加合理、充分的利用,明显的提高了编解码的质量。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1