本發(fā)明涉及錄音數(shù)據(jù)處理,具體地,涉及一種錄音數(shù)據(jù)壓縮方法和可計算幅度的錄音數(shù)據(jù)解壓方法。
背景技術(shù):
1、目前的錄音壓縮方法是對聲音振動等模擬信號進行a/d轉(zhuǎn)換,然后轉(zhuǎn)換好的結(jié)果直接寫入wav文件或按mp3格式進行壓縮后保存文件中。上述現(xiàn)有技術(shù)主要存在以下缺陷:如果需要精度高,ad位數(shù)要高,wav文件的尺寸就比較大,如果希望尺寸小,可以采用mp3等格式進行壓縮,但壓縮算法比較復雜,無法使用主頻比較低的單片機做到邊采集邊壓縮邊保存到文件內(nèi)。寫入到wav文件的數(shù)值與輸入電壓的對應(yīng)關(guān)系不知道,無法由wav文件直接計算出采集到模擬信號的電壓值。
2、因此目前需要一種可以采用主頻比較低的單片機對模擬信號邊采集、邊壓縮、邊保存到文件中的錄音壓縮方法。
3、在上述背景技術(shù)部分公開的上述信息僅用于加強對本申請的背景的理解,因此它可以包括不構(gòu)成對本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供一種解決現(xiàn)階段中壓縮成本高和壓縮算法復雜的技術(shù)問題的錄音數(shù)據(jù)壓縮和解決現(xiàn)階段無法直接計算出模擬信號的電壓值的解壓方法。
2、本發(fā)明實施例中提供的一種技術(shù)方案是,一種錄音數(shù)據(jù)壓縮方法,包括:
3、獲取待壓縮的目標數(shù)據(jù),并對所述目標數(shù)據(jù)進行序列化處理;
4、將處理后的序列化數(shù)據(jù)寫入預設(shè)緩存區(qū),在所述預設(shè)緩存區(qū)寫滿或完成所述序列化數(shù)據(jù)的寫入后,對所述預設(shè)緩存區(qū)內(nèi)的數(shù)據(jù)進行壓縮處理,隨后進入下一個寫入壓縮周期;
5、所述對所述預設(shè)緩存區(qū)內(nèi)的數(shù)據(jù)進行壓縮處理,具體包括:
6、計算所述預設(shè)緩存區(qū)內(nèi)所述序列化數(shù)據(jù)的絕對峰值,并計算所述絕對峰值的偏移量,將所述偏移量寫入存儲設(shè)備的記錄文件中;
7、根據(jù)所述偏移量對所述預設(shè)緩存區(qū)中的每個數(shù)據(jù)進行偏移處理,以得到偏移序列;
8、根據(jù)預設(shè)壓縮位數(shù)獲取所述偏移序列中的偏移數(shù)據(jù)的部分數(shù)據(jù),以得到壓縮序列,并將所述壓縮序列寫入記錄文件中。
9、本發(fā)明實施例中提供的一種技術(shù)方案是,一種可精確計算幅度的錄音數(shù)據(jù)解壓方法,對上述所述的錄音數(shù)據(jù)壓縮方法獲取的記錄文件進行解壓,包括:
10、獲取數(shù)據(jù)解壓請求;
11、根據(jù)所述數(shù)據(jù)解壓請求打開存儲設(shè)備中任意記錄有錄音數(shù)據(jù)的記錄文件,讀取所述記錄文件的文件頭;
12、讀取所述記錄文件中文件頭對應(yīng)的記錄數(shù)據(jù),所述記錄數(shù)據(jù)包括偏移量和所述偏移量對應(yīng)的壓縮數(shù)據(jù),根據(jù)所述偏移量對對應(yīng)的所述壓縮數(shù)據(jù)進行還原,得到解壓數(shù)據(jù)。
13、本發(fā)明實施例中提供的一種技術(shù)方案是,一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行,以用于實現(xiàn)如上述所述的錄音數(shù)據(jù)壓縮方法,或者,如上述所述的錄音數(shù)據(jù)解壓方法。
14、本發(fā)明的有益效果:
15、通過直接獲取預設(shè)緩存區(qū)內(nèi)的絕對峰值,并計算絕對峰值對應(yīng)的偏移量,隨后根據(jù)該偏移量對緩沖區(qū)內(nèi)的所有數(shù)據(jù)進行偏移處理,以得到偏移數(shù)據(jù),由于緩沖區(qū)其他數(shù)據(jù)都比絕對峰值小,所以將其他數(shù)據(jù)進行偏移后不會造成緩沖區(qū)數(shù)據(jù)溢出,因此只要保證絕對峰值的精度,就可以保證緩沖區(qū)內(nèi)其他數(shù)據(jù)的精度。從而實現(xiàn)了只需要計算絕對峰值的偏移量就可以對緩沖區(qū)內(nèi)的其他數(shù)據(jù)進行偏移,無需計算每個數(shù)據(jù)的偏移量,進而減少計算量。
16、通過對偏移數(shù)據(jù)截取預設(shè)壓縮位數(shù)的部分數(shù)據(jù),由于壓縮后的數(shù)據(jù)位數(shù)比序列化數(shù)據(jù)中的數(shù)據(jù)位數(shù)要小很多,即減少數(shù)據(jù)的位數(shù),從而實現(xiàn)了將數(shù)據(jù)進行壓縮。
17、因此,也就是說針對緩沖區(qū)內(nèi)的不同數(shù)據(jù)進行相同處理,即可以實現(xiàn)每采集到一個緩沖區(qū)數(shù)據(jù)或者完成所述序列化數(shù)據(jù)的寫入后,就對該緩沖區(qū)數(shù)據(jù)進行壓縮處理,并且每次壓縮平均計算量約為一次比較(計算絕對峰值)和一次移位(直接通過絕對峰值的偏移量對數(shù)據(jù)進行移位),從而實現(xiàn)可以采用主頻比較低的單片機對模擬信號邊采集、邊壓縮、邊保存到文件中,進而實現(xiàn)了對錄音文件壓縮的低功耗、高壓縮率、高保真和實時錄音。
18、錄音數(shù)據(jù)解壓方法:利用最大輸入電壓可以計算出此文件錄制模擬信號的對應(yīng)電壓值。
19、上述
技術(shù)實現(xiàn)要素:
僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
1.一種錄音數(shù)據(jù)壓縮方法,其特征在于,包括:
2.如權(quán)利要求1所述的錄音數(shù)據(jù)壓縮方法,其特征在于,所述對所述目標數(shù)據(jù)進行序列化處理,將處理后的序列化數(shù)據(jù)寫入預設(shè)緩存區(qū),包括:
3.如權(quán)利要求1所述的錄音數(shù)據(jù)壓縮方法,其特征在于,所述計算所述預設(shè)緩存區(qū)的絕對峰值,包括:
4.如權(quán)利要求1所述的錄音數(shù)據(jù)壓縮方法,其特征在于,所述計算所述絕對峰值的偏移量,包括:
5.如權(quán)利要求1所述的錄音數(shù)據(jù)壓縮方法,其特征在于,根據(jù)預設(shè)壓縮位數(shù)獲取所述偏移序列中的偏移數(shù)據(jù)的部分數(shù)據(jù),以得到壓縮序列,并將所述壓縮序列寫入記錄文件中,包括:
6.如權(quán)利要求1或5所述的錄音數(shù)據(jù)壓縮方法,其特征在于,所述預設(shè)壓縮位數(shù)為8。
7.如權(quán)利要求1所述的錄音數(shù)據(jù)壓縮方法,其特征在于,所述記錄文件的文件頭還包括:采樣頻率、位數(shù)、通道數(shù)、最大輸入電壓和緩沖長度。
8.一種可精確計算幅度的錄音數(shù)據(jù)解壓方法,其特征在于,對權(quán)利要求1-7任一項所述的錄音數(shù)據(jù)壓縮方法獲取的記錄文件進行解壓,包括:
9.如權(quán)利要求8所述的可精確計算幅度的錄音數(shù)據(jù)解壓方法,其特征在于,于得到所述解壓數(shù)據(jù)后還包括:根據(jù)下述公式計算所述解壓為24位數(shù)據(jù)的電壓值:
10.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,該程序被處理器執(zhí)行,以用于實現(xiàn)如權(quán)利要求1-7任一項所述的錄音數(shù)據(jù)壓縮方法,或者,如權(quán)利要求8-9任一項所述的錄音數(shù)據(jù)解壓方法。