CN1753081B - 波形文件的播放方法与装置 - Google Patents
波形文件的播放方法与装置 Download PDFInfo
- Publication number
- CN1753081B CN1753081B CN 200510115187 CN200510115187A CN1753081B CN 1753081 B CN1753081 B CN 1753081B CN 200510115187 CN200510115187 CN 200510115187 CN 200510115187 A CN200510115187 A CN 200510115187A CN 1753081 B CN1753081 B CN 1753081B
- Authority
- CN
- China
- Prior art keywords
- length
- total
- piece
- data
- data length
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000006835 compression Effects 0.000 claims description 20
- 238000007906 compression Methods 0.000 claims description 20
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 238000005070 sampling Methods 0.000 abstract description 9
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013139 quantization Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种IMA ADPCM格式的波形文件的播放方法及装置,该方法包括以下步骤:将文件的总数据长度减去所有块的数据头长度,确定总压缩数据长度;以及将总压缩数据长度除以每秒钟的压缩数据长度,确定播放总时长。并在此基础上根据输入的选定播放时间实现定时播放功能。本发明将文件各块的数据头中一个未被压缩的采样点忽略不计,在牺牲较小精度的前提下削减了计算的复杂度,从而简化了计算。
Description
技术领域
本发明涉及一种声音文件的播放方法与装置,特别地,涉及一种波形文件的播放方法与装置。
背景技术
声音的WAV文件即波形文件,是微软公司开发的音频文件格式,它来源于对声音模拟波形的采样。用不同的采样频率对声音的模拟波形进行采样可以得到一系列离散的采样点,以不同的量化位数,一般为8比特或16比特,把这些采样点的值转换成二进制数,然后存入磁盘,这就产生了波形文件。
由于波形文件记录声音的波形,因而只要采样频率高、量化位数高、机器速度快,利用该格式记录的声音文件能够和原声基本一致,质量非常高,但这样做的代价就是文件太大。例如,一首4分钟左右44KHz采样的立体声音乐就要占用30至40MB的存储空间。
IMA(交互式多媒体协议)ADPCM(自适应差分脉冲编码调制)算法,是一种针对16比特或者更高比特的声音波形数据的有损压缩算法,它将声音流中每次采样的16比特数据以4比特存储,所以压缩比为1∶4。而压缩/解压缩算法非常简单,所以是一种低空间消耗、高质量声音获得的好途径。著名的WestWood在它的许多游戏里都使用了该技术,如沙丘II、命令与征服、红色警戒等,保存声音的数据文件后缀名为.AUD的大多用IMA ADPCM算法压缩。
然而,对于IMA ADPCM格式的波形文件,如何实现播放总时长计算及定时播放功能,目前尚无解决方案。
发明内容
本发明的目的在于,实现IMA ADPCM格式的波形文件的播放总时长计算及定时播放功能。
根据本发明的第一方面,提供一种IMA ADPCM格式的波形文件的播放方法,包括以下步骤:将文件的总数据长度减去所有块的数据头长度,确定总压缩数据长度;以及将总压缩数据长度除以每秒钟的压缩数据长度,确定播放总时长。
在第一方面中,优选地,所有块的数据头长度通过以下步骤确定:将总数据长度除以每个块的长度,确定块总数;根据所述块总数与声道数及单声道数据头字节数的乘积,确定所有块的数据头长度。
优选地,播放方法在微控制器上实现。
优选地,在确定播放总时长之后,还包括以下定时播放步骤:将块总数乘以选定播放时间与所述播放总时长之比,确定需跳过的块数。进一步优选地,在确定需跳过的块数之后,定时播放步骤还包括:将需跳过的块数乘以每个块的长度,确定需跳过的字节数。
根据本发明的第二方面,提供一种IMA ADPCM格式的波形文件的播放装置,该播放装置包括:总压缩数据长度确定装置,用于将文件的总数据长度减去所有块的数据头长度,确定总压缩数据长度;以及播放总时长确定装置,用于将总压缩数据长度除以每秒钟的压缩数据长度,确定播放总时长。
在第二方面中,优选地,总压缩数据长度确定装置包括所有块的数据头长度确定装置,其用于将总数据长度除以每个块的长度,确定块总数;并根据块总数与声道数及单声道数据头字节数的乘积,确定所有块的数据头长度。
优选地,播放装置利用微控制器实现。
优选地,播放装置还包括定时播放装置,所述定时播放装置包括:需跳过的块数确定装置,用于将块总数乘以选定播放时间与播放总时长之比,确定需跳过的块数。进一步优选地,定时播放装置还包括:需跳过的字节数确定装置,用于将需跳过的块数乘以每个块的长度,确定需跳过的字节数。
按照本发明,出于计算精度和复杂度的平衡考虑,在确定播放总时长时,将文件各数据块的数据头中一个未被压缩的采样点忽略不计,这样,在牺牲较小精度的前提下削减了计算的复杂度,从而简化了计算。
附图说明
为更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步说明,其中:
图1是IMA ADPCM格式的波形文件的结构示意图。
具体实施方式
参照图1,图1是IMA ADPCM格式的波形文件的结构示意图。该文件由文件头和数据码流组成,数据码流以块为单位,块是最小的单独解码单元。每块的大小在文件头中用块长度(BlockAlign)来标识,除此之外,文件头中还包含以下信息:
采样率(SmplRate):指声音信号在“模-数”转换过程中单位时间内采样的次数,单位为采样个数/秒;
每采样点位数(BitsPerSmpl):指记录每次采样值数值大小的位数,即每个采样点所用的比特个数。对于IMA ADPCM格式的波形文件,该参数为4比特;
声道数(Channels):声音通道的个数,是指一次采样所记录产生的声音波形个数,单声道为1,双声道为2;
总数据长度(DataSize):指所有块的总字节个数。
IMA ADPCM格式的波形文件有单声道和双声道之分,对单声道文件而言,每个块有4字节的数据头:2字节用来标识一组原始的未被压缩的数据,另外2字节用来表示所用的解码索引;对双声道文件而言,数据头就是8字节。块中其余数据则为压缩后的ADPCM数据,如前所述,所有块的数据总长度在波形文件的文件头中指出。
根据本发明,要确定IMA ADPCM格式的波形文件的播放总时长,为简化计算的复杂度,不考虑各块数据头中的采样点,如单声道文件数据头4个字节中或双声道文件数据头8个字节中所包含的一个未压缩采样点。
首先,通过将文件的总数据长度减去所有块的数据头长度,可确定文件的总压缩数据长度。这里,可将总数据长度除以每个块的长度,来计算块总数,再将块总数与声道数及单声道数据头字节数相乘,来确定所有块的数据头长度。而总数据长度、每个块的长度及声道数信息可从文件头中获得。
其次,将计算的总压缩数据长度除以每秒钟的压缩数据长度,可计算出播放总时长。本领域技术人员了解,声音文件每秒钟的压缩数据长度可由声道数与每采样点位数及采样率三者相乘再除以8获得,其中除以8的运算可通过在计算机中右移3位实现,这样,播放总时长就能够确定。
本发明尤其适合在运算能力较差、对运算精度要求不是很高的处理器件如微控制器(MCU)上实现。为尽可能提高精度,可使用毫秒作为播放总时长的计算结果单位。考虑到微控制器32位计算溢出的问题,最后再将总时长单位从秒转化为毫秒,否则会因数据太大而导致溢出错误。
因此,IMA ADPCM格式的波形文件的播放总时长可按下式计算,其中TotalTime为播放总时长,计算结果单位为毫秒:
TotalTime=[DataSize-
(4*Channels)*(DataSize/BlockAlign)]/
[(Channels*BitsPerSmpl*SmplRate)>>3]*1000
在确定了播放总时长的基础上,可进一步根据输入的选定播放时间实现定时播放。因解码时需利用数据头中的信息,所以定时播放时需要跳过的字节个数必须是块长度的整数倍,因而,可直接计算需要跳过的块个数,然后再转化为需要跳过的字节数。
通过将文件的块总数乘以选定播放时间与播放总时长之比,就能够确定需要跳过的块个数。接下来,再将需要跳过的块个数乘以每个块的长度,就确定了需要跳过的字节数。
因此,可按下式计算定时播放时需要跳过的块个数,其中PassBlkNum为需要跳过的块个数,SeekPos为需要跳过的时间,单位为毫秒:
PassBlkNum=(DataSize/BlockAlign*(SeekPos/1000)
/(TotalTime/1000));
在这里,同样考虑了微控制器32位溢出的问题。相应地,定时播放时需要跳过的字节数可按下式计算,其中PassByteNum为要跳过的字节数,它必须是块长度的整数倍:
PassByteNum=PassBlkNum*BlockAlign
本发明中,由于各块数据头中包含的一个采样点没有参与到运算中,每个块会有一个采样点的精度损失。在声道数为1且块长度为512字节的情况下,精度损失约为1/1000秒。比如对于采样率为48K的数据来讲,48000个块会损失48000个采样点,也就是1秒钟的数据;而48000个块所包含的采样点数目为48000*(512-4)*2,相应时间为[48000*(512-4)*2]/48000=1016秒,因此,相当于1016秒会有1秒的损失。另外,利用微控制器实现本发明时,考虑到微控制器的整数除法和32位溢出的问题,也会有一些精度损失。
本发明可应用于带有录音功能的MP3播放器、从网络下载声音文件等多种场合,这对本领域技术人员来讲是显然的。
显而易见,在此描述的本发明可以有许多变化,这种变化不能认为偏离本发明的精神和范围。因此,所有对本领域技术人员显而易见的改变,都包括在本权利要求书的涵盖范围之内。
Claims (10)
1.一种交互式多媒体协议自适应差分脉冲编码调制格式的波形文件的播放方法,包括以下步骤:
将文件的总数据长度减去所有块的数据头长度,确定总压缩数据长度;以及
将所述总压缩数据长度除以每秒钟的压缩数据长度,确定播放总时长。
2.如权利要求1所述的播放方法,其特征在于,所述所有块的数据头长度通过以下步骤确定:
将总数据长度除以每个块的长度,确定块总数;
根据所述块总数与声道数及单声道数据头字节数的乘积,确定所有块的数据头长度。
3.如权利要求2所述的播放方法,其特征在于,所述播放方法在微控制器上实现。
4.如权利要求2或3所述的播放方法,其特征在于,在确定播放总时长之后,还包括定时播放步骤,所述定时播放步骤包括:
将所述块总数乘以选定播放时间与所述播放总时长之比,确定需跳过的块数。
5.如权利要求4所述的播放方法,其特征在于,在确定需跳过的块数之后,所述定时播放步骤还包括:
将所述需跳过的块数乘以每个块的长度,确定需跳过的字节数。
6.一种交互式多媒体协议自适应差分脉冲编码调制格式的波形文件的播放装置,包括:
总压缩数据长度确定装置,用于将文件的总数据长度减去所有块的数据头长度,确定总压缩数据长度;以及
播放总时长确定装置,用于将所述总压缩数据长度除以每秒钟的压缩数据长度,确定播放总时长。
7.如权利要求6所述的播放装置,其特征在于,所述总压缩数据长度确定装置包括所有块的数据头长度确定装置,其用于将总数据长度除以每个块的长度,确定块总数;并根据所述块总数与声道数及单声道数据头字节数的乘积,确定所有块的数据头长度。
8.如权利要求7所述的播放装置,其特征在于,所述播放装置利用微控制器实现。
9.如权利要求7或8所述的播放装置,其特征在于,所述播放装置还包括定时播放装置,所述定时播放装置包括:
需跳过的块数确定装置,用于将所述块总数乘以选定播放时间与所述播放总时长之比,确定需跳过的块数。
10.如权利要求9所述的播放装置,其特征在于,所述定时播放装置还包括:
需跳过的字节数确定装置,用于将所述需跳过的块数乘以每个块的长度,确定需跳过的字节数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510115187 CN1753081B (zh) | 2005-11-15 | 2005-11-15 | 波形文件的播放方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510115187 CN1753081B (zh) | 2005-11-15 | 2005-11-15 | 波形文件的播放方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1753081A CN1753081A (zh) | 2006-03-29 |
CN1753081B true CN1753081B (zh) | 2010-11-10 |
Family
ID=36679891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510115187 Expired - Fee Related CN1753081B (zh) | 2005-11-15 | 2005-11-15 | 波形文件的播放方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1753081B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002210926A (ja) * | 2001-01-12 | 2002-07-31 | Seiko Epson Corp | インクジェットプリンタにおけるヘッド駆動波形生成装置 |
JP2004042625A (ja) * | 2002-05-17 | 2004-02-12 | Canon Inc | 記録ヘッド及び該記録ヘッドを備えた記録装置及びその記録制御方法 |
JP2005116053A (ja) * | 2003-10-07 | 2005-04-28 | Toshiba Corp | 記録波形生成装置 |
-
2005
- 2005-11-15 CN CN 200510115187 patent/CN1753081B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002210926A (ja) * | 2001-01-12 | 2002-07-31 | Seiko Epson Corp | インクジェットプリンタにおけるヘッド駆動波形生成装置 |
JP2004042625A (ja) * | 2002-05-17 | 2004-02-12 | Canon Inc | 記録ヘッド及び該記録ヘッドを備えた記録装置及びその記録制御方法 |
JP2005116053A (ja) * | 2003-10-07 | 2005-04-28 | Toshiba Corp | 記録波形生成装置 |
Non-Patent Citations (5)
Title |
---|
张敬怀,马道钧.WAV语音文件格式的分析与处理.北京电子科技学院学报12 2.2004,12(2),46-50. |
张敬怀,马道钧.WAV语音文件格式的分析与处理.北京电子科技学院学报12 2.2004,12(2),46-50. * |
李兵,张生平.一种波形音频文件压缩的实现.计算机应用38 4.1998,38(4),50-53. |
李兵,张生平.一种波形音频文件压缩的实现.计算机应用38 4.1998,38(4),50-53. * |
李敏.音频文件格式WAVE的转换.电脑知识与技术.2005,73-75. * |
Also Published As
Publication number | Publication date |
---|---|
CN1753081A (zh) | 2006-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005157390A (ja) | 付加情報の挿入されたmpeg−4bsacオーディオビットストリームの符号化方法および復号化方法ならびに符号化装置および復号化装置 | |
EP1592008A2 (en) | Multi-channel compatible stereo recording | |
US7424333B2 (en) | Audio fidelity meter | |
CN109243471B (zh) | 一种快速编码广播用数字音频的方法 | |
US20080013430A1 (en) | Method of Recording, Reproducing and Handling Audio Data in a Data Recording Medium | |
CN103843064A (zh) | 在特技模式中播放音频 | |
EP0283727A3 (en) | Method and apparatus for producing an audio magnetic tape recording at high speed from a preselected music libray | |
CN101009951A (zh) | 再现电路 | |
KR101120968B1 (ko) | 악기 디지털 인터페이스 하드웨어 명령 세트 | |
CN1753081B (zh) | 波形文件的播放方法与装置 | |
Kefauver et al. | Fundamentals of digital audio | |
US5206851A (en) | Cross interleaving circuit | |
JPH0516101B2 (zh) | ||
KR102431737B1 (ko) | 멀티미디어 데이터에서 하이라이트를 찾는 방법 및 그를 이용한 장치 | |
CN108461086B (zh) | 一种音频的实时切换方法和装置 | |
JP4649901B2 (ja) | 曲の符号化伝送のための方法および装置 | |
US20070051228A1 (en) | Method and Apparatus for Playing in Synchronism with a DVD an Automated Musical Instrument | |
US8626494B2 (en) | Data compression format | |
JPWO2009090705A1 (ja) | 記録再生装置 | |
JP3925349B2 (ja) | 音声データと演奏データの同期再生を行うための装置および方法 | |
CN111866542B (zh) | 音频信号处理方法、多媒体信息处理方法、装置及电子设备 | |
CN102867514A (zh) | 一种混音方法和混音装置 | |
JP2002109824A (ja) | ディジタル音声信号の記録方法、およびその装置 | |
JPH02146599A (ja) | 音源データ圧縮符号化方法 | |
JP2005519489A5 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101110 Termination date: 20121115 |