对手机和弦芯片上的波表进行处理的方法

文档序号:7946679阅读:406来源:国知局
专利名称:对手机和弦芯片上的波表进行处理的方法
所属领域本发明涉及波表处理领域,尤其涉及对手机和弦芯片上的波表进行处理的方法。
背景技术
波表合成技术是将真实乐器的音色采样录制下来再进行合成处理的,所以波表越大音色采样就越真实,效果就越好。就PC的声卡而言,最小都要在声卡的ROM里装载1M的波表。但是对于手机上的和弦芯片而言,考虑到芯片的面积和成本,这样大的波表是不能接受的,所以必须对波表进行删减,但由此带来的就是音色的损失。比如删除了吉他的波表,那么就无法合成MIDI里的吉他声了。这样也带来了芯片性能的下降。因此新型的波表压缩技术越来越为人们所期待。
另外,ADPCM压缩算法是大家所熟知的一种压缩算法,但是如果固化到芯片里的是采取ADPCM算法压缩过的波表,那么在合成MIDI的过程中必须把需要合成的乐器的波表首先进行ADPCM解压缩,然后才能进行进一步的合成处理。参看图1,图1中的横轴表示采样点,纵轴表示该采样点的数值。由于ADPCM算法决定,每个ADPCM编码都是和他以前的编码相关的,解压缩每个采样点的时候,都需要上一个采样点在解压缩时产生的一组系数,这里用Idx和preVal表示。比如,Idx和preVal的初始值都为0,在解压缩采样点0的时候,产生了一组系数Idx0和preVal0,这两个系数是在解压缩采样点1时所必需的。依此类推,在解压采样点2的时候就需要Idx1和preVal1,但是要得出Idx1和preVal1必须已知Idx0和preVal0,所以在ADPCM解码的时候就要顺序进行,而且不能跳过任何一个采样点。这样会带来一个问题,因为如果在波表合成时的循环起始采样点是m,循环终止采样点是z,在用到的采样点z后,下一个所需要的采样点不是0而是m。但是要解压采样点m就必须从0到m的这些采样点都要解压缩,这样会带来芯片不必要的消耗。因此怎样运用ADPCM压缩算法来压缩波表而不增加芯片不必要的消耗成为了亟待解决的问题。

发明内容
为了解决上述现有技术中的问题,本发明的目的在于提供一种不增加芯片不必要消耗的对手机和弦芯片上的波表进行处理的方法。
为了实现上述发明目的,本发明的技术方案以如下方式实现对手机和弦芯片上的波表进行处理的方法,其步骤为1)对脉冲编码调制波表库使用ADPCM压缩算法进行压缩;2)将压缩后的波表固化在芯片内;3)根据MIDI文件纪录的乐曲信息向压缩后的波表发出指令,从压缩后的波表中逐一找出对应的声音样本;4)使用ADPCM解压缩算法对相应乐器的声音样本进行解压缩,并且当波表合成时的循环起始采样点为m,则把解压缩采样点m-1所得到的那组系数Idx(m-1)和preVal(m-1),也就是解压缩采样点m所必需的系数,保存到芯片的寄存器中;6)将解压缩后的对应的声音样本经过合成、加工后回放出来。
对手机和弦芯片上的波表进行处理的方法,其步骤为1)对脉冲编码调制波表库使用ADPCM压缩算法进行压缩;2)对波表本身进行预处理,用软件对压缩过的波表进行模拟芯片处理过程的解压缩,如果波表合成时声音样本的循环起始采样点为m,则把解压缩采样点m-1所得到的那组系数Idx(m-1)和preVal(m-1),也就是解压缩采样点m所必需的系数,保存到该声音样本的后面;3)将压缩后的波表固化在芯片内;4)根据MIDI文件纪录的乐曲信息向压缩后的波表发出指令,从压缩后的波表中逐一找出对应的声音样本;5)使用ADPCM解压缩算法对相应乐器的声音样本进行解压缩;6)对应的声音样本经过合成、加工后回放出来。
上述步骤2)中解压缩采样点m所必需的那组系数Idx(m-1)和preVal(m-1)也可以被保存到整个压缩波表的最后,当需要的时候用检索的方法抽取。
上述步骤1)中的ADPCM压缩算法为IMA-ADPCM压缩算法。
本发明对脉冲编码调制波表库使用ADPCM压缩算法进行压缩。ADPCM是一种有损压缩,它丢掉了部分信息。由于人耳对声音的不敏感性,适当的有损压缩对视听播放效果影响不大。ADPCM记录的量化值不是每个采样点的幅值,而是该点的幅值与前一个采样点幅值之差。这样对16bitd的PCM进行压缩,每个采样点的量化位就不需要16bit,由此可减少信号的容量。如果波表合成时的循环起始采样点为m,本发明将解压缩采样点m-1所得到的那组系数Idx(m-1)和preVal(m-1),也就是解压缩采样点m所必需的系数,保存到芯片的寄存器或者整个波表的最后。这样,下一次再解压采样点m的时候,就可以直接使用系数Idx(m-1)和preVal(m-1),不用再解压缩0到m所有的采样点,不用增加芯片不必要消耗。


图1为某种乐器的ADPCM波表图;图2为本发明实施例1的工作流程图;图3为本发明实施例2的工作流程图;图4为本发明实施例2波表预处理的示意图;图5为本发明进行脉冲编码调制的示意图。
具体实施例方式
下面结合附图具体说明本发明的实施方式。
参看图1和图2,对手机和弦芯片上的波表进行处理的方法,其步骤为1)对脉冲编码调制波表库使用ADPCM压缩算法进行压缩。2)将压缩后的波表固化在芯片内。3)根据MIDI文件记录的乐曲信息向压缩后的波表发出指令,从压缩后的波表中逐一找出对应的声音样本。4)使用ADPCM解压缩算法对相应乐器的声音样本进行解压缩,并且当波表合成时的循环起始采样点为10,中止采样点为24,则把解压缩采样点9所得到的那组系数Idx9和preVal9,也就是解压缩采样点10所必需的系数,保存到芯片的寄存器中。这样,当解压缩完采样点24后,下一次再解压采样点10的时候,就可以直接使用寄存器中的系数Idx9和preVal9了,不用再解压缩0到10所有的采样点了。6)将解压缩后的对应的声音样本经过合成、加工后回放出来。
参看图3和图4,对手机和弦芯片上的波表进行处理的方法,其步骤为1)对脉冲编码调制波表库使用ADPCM压缩算法进行压缩。2)对波表本身进行预处理,用软件对压缩过的波表进行模拟芯片处理过程的解压缩,如果波表合成时的循环起始采样点为10,中止采样点为24,则把解压缩采样点9所得到的那组系数Idx9和preVal9,也就是解压缩采样点10所必需的系数,保存到该声音样本的后面。这样,当解压缩完采样点24后,下一次再解压采样点10的时候,就可以直接就可以直接读出第25、26点,知道系数Idx9和preVal9了,不用再解压缩0到10所有的采样点了。3)将压缩后的波表固化在芯片内。4)根据MIDI文件纪录的乐曲信息向压缩后的波表发出指令,从压缩后的波表中逐一找出对应的声音样本。5)使用ADPCM解压缩算法对相应乐器的声音样本进行解压缩。6)对应的声音样本经过合成、加工后回放出来。
ADPCM(Adaptive Differential Pulse Code Modulation),称为自适应差分脉冲编码。ADPCM记录的量化值不是每个采样点的幅值,而是该点的幅值与前一个采样点幅值之差。由于一般波表的乐器声音信息都以44.1KHz、16Bit的精度录制的PCM,以达到最真实回放效果。这样对16bitd的PCM进行压缩,每个采样点的量化位就不需要16bit,由此可减少信号的容量。
参看图5,上述步骤1)中的脉冲编码调制PCM包括以下步骤1)用一组脉冲采样时钟信号与输入的模拟音频信号相乘,相乘的结果即输入信号在时间轴上的数字化;2)对采样以后的信号幅值进行量化,最简单的量化方法是均衡量化,这个量化的过程由量化器来完成;3)对经量化器A/D变换后的信号再进行编码,即把量化的信号电平转换成二进制码组,得到离散的二进制输出数据序列x(n),n表示量化的时间序列,x(n)的值就是n时刻量化后的幅值以二进制的形式表示和记录。
参看图5,对于同一音频模拟信号,运用同一采样精度(一般为16bit或8bit)进行采样,采样频率越低形成的二进制文件就越小,反之亦然。比如对一个500毫秒的音频模拟信号,以16bit的采样精度进行采样,如果采样频率为44.1k也就是每秒钟采样44100个点,那么所形成的二进制文件的大小为44100×16bit×0.5s=352800bit=44100byte如果采用22.05k的采样频率进行采样,那么形成的二进制文件就小一倍。
22050×16bit×0.5s=146700bit=22050byte但是,与此同时会损失掉一些模拟信号中一些高频分量,不过在手机的音响系统中,某些乐器的这些高频分量不是很突出,不易被人耳分辨出来。所以就可以对这些乐器的波表采用22.05k采样率,16bit采样精度,达到初步降低波表大小的目的。
本发明同样也可以应用于对其它移动通讯终端的和弦芯片上的波表库进行压缩。应用本发明对其他和弦芯片上的波表库进行压缩均属于本发明的保护范围。对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。
权利要求
1.对手机和弦芯片上的波表进行处理的方法,其步骤为1)对脉冲编码调制波表库使用ADPCM压缩算法进行压缩;2)将压缩后的波表固化在芯片内;3)根据MIDI文件纪录的乐曲信息向压缩后的波表发出指令,从压缩后的波表中逐一找出对应的声音样本;4)使用ADPCM解压缩算法对相应乐器的声音样本进行解压缩,并且当波表合成时的循环起始采样点为m,则把解压缩采样点m-1所得到的那组系数Idx(m-1)和preVal(m-1),也就是解压缩采样点m所必需的系数,保存到芯片的寄存器中;6)将解压缩后的对应的声音样本经过合成、加工后回放出来。
2.对手机和弦芯片上的波表进行处理的方法,其步骤为1)对脉冲编码调制波表库使用ADPCM压缩算法进行压缩;2)对波表本身进行预处理,用软件对压缩过的波表进行模拟芯片的处理过程进行解压缩,如果波表合成时的循环起始采样点为m,则把解压缩采样点m-1所得到的那组系数Idx(m-1)和preVal(m-1),也就是解压缩采样点m所必需的系数,保存到该声音样本的后面;3)将压缩后的波表固化在芯片内;4)根据MIDI文件纪录的乐曲信息向压缩后的波表发出指令,从压缩后的波表中逐一找出对应的声音样本;5)使用ADPCM解压缩算法对相应乐器的声音样本进行解压缩;6)对应的声音样本经过合成、加工后回放出来。
3.按照权利要求1或2所述的对波表进行压缩的方法,其特征在于,所述步骤1)中的ADPCM压缩算法为IMA-ADPCM压缩算法。
4.按照权利要求2所述的对波表进行压缩的方法,其特征在于,步骤2)中解压缩采样点m所必需的那组系数Idx(m-1)和preVal(m-1)也可以被保存到整个压缩波表的最后,当需要的时候用检索的方法抽取。
全文摘要
本发明公开了对手机和弦芯片上的波表进行处理的方法,属于波表处理领域。本发明是一种不增加芯片不必要消耗的对手机和弦芯片上的波表进行处理的方法。本发明使用ADPCM解压缩算法对相应乐器的声音样本进行解压缩,并且当波表合成时的循环起始采样点为m,则把解压缩采样点m-1所得到的那组系数Idx(m-1)和preVal(m-1),也就是解压缩采样点m所必需的系数,保存到芯片的寄存器中。本发明将解压缩后的对应的声音样本经过合成加工后回放出来。
文档编号H04W88/02GK1525778SQ0315696
公开日2004年9月1日 申请日期2003年9月16日 优先权日2003年6月3日
发明者张韵东, 刘淼, 赵原 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1