技术领域
[0001] 本
发明涉及音频
数据处理技术领域,特别涉及一种优化音频编解码器存储空间的方法及系统。
背景技术
[0002] 随着移动通信领域的不断发展,蓝牙技术的应用也越来越广,尤其在蓝牙音频的应用方面。
[0003] 目前蓝牙国际联盟联合众多厂商推出LC3编解码技术,由于LC3编解码技术推出的初衷是要满足低功耗蓝牙领域的音频应用,所以对LC3编解码器的功耗要求非常严格。但是,在低功耗蓝牙领域,很多处理器的运算性能及存储资源非常有限。
[0004] 表1为LC3编解码器中主要的系数表。在实际应用中,譬如某次通话或者听音乐的编解码过程中,只会用到其中一部分系数表,如果全部存储则会浪费存储资源,导致编解码器存储空间的利用率比较低。
[0005] 表1LC3编解码器中主要的系数表
[0006]
[0007] 另,重
采样滤波器的系数表长度为239。
发明内容
[0008] 本发明所要解决的技术问题是:提供一种优化音频编解码器存储空间的方法及系统,用来优化音频编解码器的存储空间,提高存储资源的合理利用率。
[0009] 第一方面,本发明提供一种优化音频编解码器存储空间的方法,包括:
[0010] 在离线处理中,通过仅对第一采样率为44.1kHz或48kHz的低延迟改进型离散余弦变换LD-MDCT窗函数的第一窗函数系数表进行差分编码,得到第二窗函数系数表,并将第二窗函数系数表存储到存储空间中;将坐标旋转数字计算机CORDIC运算需要的系数表作为第一CORDIC运算系数表,并将第一CORDIC运算系数表存储到存储空间中;以及将长期后置滤波器LTPF的第一重采样系数表中左半边或右半边系数表存储为第二重采样系数表,并将第二重采样系数表存储到存储空间中。
[0011] 第二方面,本发明提供一种优化音频编解码器存储空间的系统,包括:
[0012] 离线处理模
块,其用于仅对第一采样率为44.1kHz或48kHz的低延迟改进型离散余弦变换LD-MDCT窗函数的第一窗函数系数表进行差分编码,得到第二窗函数系数表,并将第二窗函数系数表存储到存储空间中;用于将坐标旋转数字计算机CORDIC运算需要的系数表作为第一CORDIC运算系数表,并将第一CORDIC运算系数表存储到存储空间中;以及用于将长期后置滤波器LTPF的第一重采样系数表中左半边或右半边系数表存储为第二重采样系数表,并将第二重采样系数表存储到存储空间中。
[0013] 本发明的有益效果在于:利用离线处理节省了窗函数存储空间、前旋和后旋系数表存储空间和LTPF重采样系数表存储空间,总体上节省了编解码器的存储空间,提高了存储资源的合理利用率。
附图说明
[0014] 图1为本发明优化音频编解码器存储空间方法的离线处理
流程图;
[0015] 图2为本发明优化音频编解码器存储空间方法的在线处理流程图;
[0016] 图3为本发明优化音频编解码器存储空间方法的离线处理过程中一个
实施例的窗函数系数的矩阵实验室Matlab仿真结果图;
[0017] 图4为本发明优化音频编解码器存储空间方法的一个实施例,第一在线处理中以16位存储的前旋480系数分别用数字旋转坐标计算机CORDIC运算基于16位的
精度采取16次循环计算和
现有技术系统函数生成方法,得到的性能图;
[0018] 图5为本发明优化音频编解码器存储空间方法的一个实施例,第一在线处理中以16位存储的前旋480系数分别用数字旋转坐标计算机CORDIC运算基于24位的精度采取24次循环计算和现有技术系统函数生成方法,得到的性能图;
[0019] 图6为LTPF重采样滤波器的图。
具体实施方式
[0020] 为了使本发明的上述特征和优点更加易懂,下面结合附图和具体实施方式对本发明做进一步详细说明。该详细说明仅仅是为了帮助理解本发明,本发明的保护范围不仅仅限于具体实施方式中的具体说明。
[0021] 结合图1和图2对本发明实施例提供的一种优化音频编解码器存储空间方法的应用架构进行说明。
[0022] 如图1所示,在本发明的一个实施方式中,本发明优化音频编解码器存储空间方法的离线处理过程由以下步骤完成。
[0023] 步骤S101为生成第二窗函数系数表步骤,在该步骤中,通过仅对第一采样率为44.1kHz或48kHz的低延迟改进型离散余弦变换LD-MDCT窗函数的第一窗函数系数表进行差分编码,得到第二窗函数系数表,并将第二窗函数系数表存储到存储空间中。
[0024] 在本发明的一个实施例中,在离线处理之前,对第一采样率为44.1kHz或48kHz的低延迟改进型离散余弦变换LD-MDCT窗函数表、坐标旋转数字计算机CORDIC运算需要的系数表以及长期后置滤波器LTPF的重采样系数表进行INT16量化、INT24量化或INT32量化。
[0025] 在本发明的一个具体实施例中,优选的,将INT 16量化的第一窗函数系数表数据中(INT24或INT 32量化,原理类似)尾部0数据删除后对剩余数据进行二阶差分编码,然后将二阶差分编码时两个遗漏ESCAPE值单独以INT 8量化后储存且原位清0,其余二阶差分编码得到的数据以INT 4量化后存储;
[0026] 在该实施例中,例如:
帧长为10毫秒时,删除INT 16量化的第一窗函数w_10_480数据中尾部180个0后对剩余数据进行二阶差分编码,然后将二阶差分编码时两个遗漏ESCAPE值单独以INT 8量化后储存为表格1且原位清0,其余二阶差分编码得到的数据以INT 4量化后存储为表格2,将表格1和表格2存储在第二窗函数系数表中。
[0027] 帧长为7.5毫秒时,删除INT 16量化的第一窗函数w_75_360数据中尾部84个0后对剩余数据进行二阶差分编码,然后将二阶差分编码时两个遗漏ESCAPE值单独以INT 8量化后储存为表格3且原位清0,其余二阶差分编码得到的数据以INT 4量化后存储为表格4,将表格3和表格4存储在第二窗函数系数表中。
[0028] 在本发明的一个实施例中,图3为帧长7.5毫秒/采样率48kHz时,窗函数系数的矩阵实验室Matlab仿真结果图。
[0029] 图3从上而下,第一层为LC3原始标准提供的窗函数浮点系数;第二层为INT16量化的窗函数定点系数;第三层为窗函数定点系数二阶差分的结果。
[0030] 图3所示,帧长为7.5毫秒时,删除INT 16量化的第一窗函数w_75_360数据中尾部84个0后对剩余数据进行二阶差分编码,然后将二阶差分编码得到的数据中最大绝对值是
8,可以用INT4量化存储。另外,在二阶差分编码时,窗函数尾部有两个较大的值,称为遗漏ESCAPE值,使用INT8量化单独存储,同时原位清0,以便压缩。
[0031] 步骤S102为生成第一CORDIC运算系数表步骤,在该步骤中,将坐标旋转数字计算机CORDIC运算需要的系数表作为第一CORDIC运算系数表并存储到存储空间中。
[0032] 步骤S103为生成第二重采样系数表步骤,在该步骤中,将长期后置滤波器LTPF的第一重采样系数表中左半边或右半边系数表存储为第二重采样系数表,并将第二重采样系数表存储到存储空间中。
[0033] 综上所述,利用离线处理节省了窗函数存储空间、前旋和后旋系数表存储空间和LTPF重采样系数表存储空间,总体上节省了编解码器的存储空间。
[0034] 在本发明的一个实施例中,本发明优化音频编解码器存储空间的方法,还包括:第一在线处理过程和第二在线处理过程。编码或解码的初始化阶段时调用第一在线处理和第二在线处理过程,调用一次处理过程即可。
[0035] 如图2所示,第一在线处理过程由以下步骤完成。
[0036] 步骤S201为生成第三或第四窗函数系数表步骤,在该步骤中,首先读取并对第二窗函数系数表进行差分解码得到第三窗函数系数表,若编解码器
选定所需采样率为第一采样率,则直接将第三窗函数系数表存储到存储空间中,若编解码器所需采样率为与第一采样率不同的第二采样率,则对第三窗函数系数表进行抗
混叠低通滤波处理之后再进行重采样,得到具有第二采样率的第四窗函数系数表,并将第四窗函数系数表存储到存储空间中。
[0037] 在本发明的一个具体实施例中,例如帧长为10毫秒时,则读取第二窗函数系数表中的表格2数据,同时,将表格2数据恢复到INT 16量化数据,然后读取并填充2个遗漏ESCAPE值即第二窗函数系数表中的表格1数据,然后将表格1和表格2数据进行差分解码并恢复尾部0数据,得到帧长为10毫秒的第三窗函数系数表。
[0038] 帧长为7.5毫秒时,则读取第二窗函数系数表中的表格4数据,同时,将表格4数据恢复到INT 16量化数据,然后读取并填充2个遗漏ESCAPE值即第二窗函数系数表中的表格3数据,然后将表格3和表格4数据进行差分解码并恢复尾部0数据,得到帧长为7.5毫秒的第三窗函数系数表。
[0039] 在该实施例中,例如,编解码器选定所需采样率为48kHz或44.1kHz的系数表时,则将上述第三窗函数系数表直接存储到存储空间中。
[0040] 在该实施例中,例如,编解码器选定所需采样率为32kHz的系数表时,先对上述第三窗函数系数表进行抗混叠低通滤波处理,然后将处理后的数据进行4倍上采样和6倍
下采样的重采样计算后,得到采样率为32kHz的系数表,并将其作为第四窗函数系数表存储到存储空间中。
[0041] 例如,编解码器选定所需采样率为24kHz的系数表时,先对上述第三窗函数系数表进行抗混叠低通滤波处理,然后将处理后的数据进行2倍下采样的重采样计算后,得到采样率为24kHz的系数表,并将其作为第四窗函数系数表存储到存储空间中。
[0042] 例如,编解码器选定所需采样率为16kHz的系数表时,先对上述第三窗函数系数表进行抗混叠低通滤波处理,然后将处理后的数据进行3倍下采样的重采样计算后,得到采样率为16kHz的系数表,并将其作为第四窗函数系数表存储到存储空间中。
[0043] 例如,编解码器选定所需采样率为8kHz的系数表时,先对上述第三窗函数系数表进行抗混叠低通滤波处理,然后将处理后的数据进行6倍下采样的重采样计算后,得到采样率为8kHz的系数表,并将其作为第四窗函数系数表存储到存储空间中。
[0044] 步骤S202为生成前旋和后旋系数表步骤,在该步骤中,首先在读取第一CORDIC运算系数表之后,对第一CORDIC运算系数表进行所需循环次数的坐标旋转数字计算机CORDIC运算,得到前旋和后旋系数表,并将前旋和后旋系数表存储到存储空间中。
[0045] 优选的,编解码器系统所需16位的精度时,则对第一CORDIC运算系数表进行循环16次坐标旋转数字计算机CORDIC运算,生成前旋和后旋系数表,并将其存储到存储空间中。
[0046] 优选的,编解码器系统所需32位的精度时,则对第一CORDIC运算系数表进行循环32次坐标旋转数字计算机CORDIC运算,生成前旋和后旋系数表,并将其存储到存储空间中。
[0047] 优选的,编解码器系统所需24位的精度时,则对第一CORDIC运算系数表进行循环24次坐标旋转数字计算机CORDIC运算,生成前旋和后旋系数表,并将其存储到存储空间中。
[0048] 从图4和图5中对比可以看出,基于16位的精度计算得到的前旋和后旋系数表的系数误差绝对值可以达到10以下,而其基于24位的精度计算得到前旋和后旋系数表的系数误差绝对值最高才达到1。因此编解码器系统所需精度越高,对应的循环计算次数越多。
[0049] 如图2所示,其中第二在线处理由S203步骤完成,首先在读取第二重采样系数表,然后利用第二重采样系数表的对称性合并相关数据。
[0050] 在本发明的一个实例中,如图6所示,LTPF重采样系数表可以看出左右完全对称,所以实际只需要存储左半部分或右半部分。
[0051] 在该实施例中,例如,针对LTPF压缩表格tab_resample_filter,在编码或解码初始化阶段调用时无需恢复原始表格,原始的LTPF重采样表格定义为:
[0052] INT16 tab_resample_filter[239]={……};//为了简洁,此处表格中具体的数据省略
[0053] 原始使用方法为:
[0054]
[0055] 删除对称的右半部分后的定义为:
[0056] INT16 tab_resample_filter_new[120]={……};//为了简洁,此处表格中具体的数据省略使用方法为:
[0057]
[0058] 根据统计,在本发明的
信号数据存储过程中,
[0059] (1)窗函数存储空间:需要的压缩表存储空间:
[0060] 所有采样率非44.1kHz/48kHz的窗函数系数表不用存储,采样率为44.1kHz/48kHz的窗函数系数表:
[0061] a)帧长为10毫秒的窗函数w_10_480用INT16量化后原始需要1920字节,进行二阶差分编码压缩后需要391字节和两个遗漏ESCAPE值,合计393字节;
[0062] b)帧长为7.5毫秒的窗函数w_75_360用INT16量化后原始需要1440字节,进行二阶差分编码压缩后需要324字节和和两个遗漏ESCAPE值,合计326字节;
[0063] c)实际需要的存储空间为:393+326=719字节。
[0064] (2)前旋和后旋系数表存储空间:
[0065] 只存储坐标旋转数字计算机CORDIC运算需要的第一CORDIC运算系数表(INT16量化),其大小为24*4=96字节。
[0066] (3)LTPF重采样系数表存储空间:
[0067] 只需要存储一半,例如,tab_resamp_filter需要占用239个16位整数(INT16),在本发明中只需要存储120个16位整数(INT16),即240字节。
[0068] 在离线处理模块和在线处理模块的程序新增加的代码空间为500字节。总体上,优化后需要的空间约为:719+96+240+500=1555字节,而LC3编解码器中主要的系数表(表1)总长度为:2560+1920+640+480+1280+960+239=8079。若全部存储,用INT16量化后则占用存储空间:8079*2=16158字节。
[0069] 1555/16158=0.096,即压缩后只需要原来9.6%的存储空间。
[0070] 在本发明的一个具体实施方式中,本发明一种优化音频编解码器存储空间的系统,包括:
[0071] 离线处理模块,其用于仅对第一采样率为44.1kHz或48kHz的低延迟改进型离散余弦变换LD-MDCT窗函数的第一窗函数系数表进行差分编码,得到第二窗函数系数表,并将第二窗函数系数表存储到存储空间中;
[0072] 离线处理模块,其用于将坐标旋转数字计算机CORDIC运算需要的系数表作为第一CORDIC运算系数表并存储到存储空间中;
[0073] 离线处理模块,其用于将长期后置滤波器LTPF的第一重采样系数表中左半边或右半边系数表存储为第二重采样系数表,并将第二重采样系数表存储到存储空间中。
[0074] 在本发明的一个具体实施例中,一种优化音频编解码器存储空间的系统还包括:
[0075] 第一在线处理模块,其读取并对第二窗函数系数表进行差分解码得到第三窗函数系数表之后,若编解码器选定所需采样率为第一采样率,则直接将第三窗函数系数表存储到存储空间中,若编解码器所需采样率为与第一采样率不同的第二采样率,则对第三窗函数系数表进行抗混叠低通滤波处理之后再进行重采样,得到具有第二采样率的第四窗函数系数表,并将第四窗函数系数表存储到存储空间中;
[0076] 第一在线处理模块,其在读取第一CORDIC运算系数表之后,对第一CORDIC运算系数表进行所需循环次数的坐标旋转数字计算机CORDIC运算,得到前旋和后旋系数表,并将前旋和后旋系数表存储到存储空间中;以及
[0077] 第二在线处理模块,其读取第二重采样系数表之后,利用第二重采样系数表的对称性合并相关数据。
[0078] 综合上文的描述,利用离线处理节省了窗函数存储空间、前旋和后旋系数表存储空间和LTPF重采样系数表存储空间,总体上节省了编解码器的存储空间,在编码或解码的初始化阶段过程中,调用第一在线处理和第二在线处理过程对编解码器所需的系数表进行解压,提高了存储资源的合理利用率。
[0079] 以上所述仅为本发明的实施例,并非因此限制本发明的
专利范围,凡是利用本发明
说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。