專利名稱:Dac音頻數(shù)據(jù)壓縮與解壓縮技術的制作方法
技術領域:
本技術屬于高質(zhì)量音頻處理技術領域,尤其是指能夠?qū)崿F(xiàn)高品質(zhì)采樣壓縮和隨意多通道壓縮與解壓縮的技術。
背景技術:
決定音頻壓縮與解壓縮質(zhì)量的技術指標主要有采樣頻率、采樣位數(shù)(采樣精度)、聲道數(shù)(通道數(shù))。現(xiàn)有的音頻壓縮與解壓縮技術利用人的心理聽覺模型,對聲音數(shù)據(jù)以20hz到44.1khz之間的頻率進行采樣,采 樣位數(shù)為8位或16位,采樣聲道從I到8個聲道,只能處理單通道(通道就是聲道)、兩通道、四通道與六通道,且每種通道處理方式都不一致,使其不能處理多語言播放問題,不能隨意處理多通道。為了達到數(shù)據(jù)壓縮的目的,現(xiàn)有技術根據(jù)人耳對高頻聲音不敏感的特點,從而把這些不敏感數(shù)據(jù)丟掉,導致高頻數(shù)據(jù)的丟失,不能對48khz以上的頻率數(shù)據(jù)進行采樣,這就直接限制了音質(zhì)的效果。
發(fā)明內(nèi)容
為了克服現(xiàn)有音頻壓縮與解壓縮技術采樣頻率和處理通道受到限制,播放音質(zhì)較差的問題,提高音頻播放品質(zhì),本發(fā)明專利提供了 DAC壓縮與解壓縮技術(DAC是數(shù)字音頻壓縮的英文Digital Audio Compres簡稱),它支持在8K-1MHZ之間的任意頻率中采樣壓縮、支持多達32通道的多通道處理方式,以相同位率200K-300K(立體聲)來作比較,本發(fā)明專利的音質(zhì)效果能夠達到95%以上的⑶原聲效果,而現(xiàn)有技術只能達到91%以下的⑶原聲效果。為解決以上技術問題,本發(fā)明專利提供的技術方案是在音頻數(shù)據(jù)采集壓縮過程中,基于聲音的自然模型來編碼,在8Κ-1ΜΗΖ之間的任意頻率范圍內(nèi)采樣,沒有頻率數(shù)據(jù)丟失。在把采集后的數(shù)據(jù)從時域轉(zhuǎn)換到頻域時,采用的是指數(shù)尾數(shù)編碼分析方法。指數(shù)能確定清晰和模糊的聲音,而尾數(shù)越大,則聲音越精確,此編碼保證了高頻聲音數(shù)據(jù)能不丟失,同時采用模糊尾數(shù)的方法限制了編碼后的數(shù)據(jù)量。本發(fā)明專利拓寬了壓縮頻率的范圍和靈活性,在8Κ -1MHZ范圍內(nèi)都可以壓縮,不需要指定現(xiàn)在一般使用的頻率,如8Κ,11.25, 22. 5Κ, 32Κ, 44. 1K、96K (DVD);每個通道獨立編碼,所以可以定義多個通道,能夠支持多達32個通道。在音頻數(shù)據(jù)壓縮后,進行的解壓縮播放過程首先從文件讀入一個DAC數(shù)據(jù)幀,根據(jù)數(shù)據(jù)幀標志分為若干數(shù)據(jù)組,再把數(shù)據(jù)組分成數(shù)據(jù)塊。然后,通過查數(shù)據(jù)分配表來解壓縮數(shù)據(jù)塊。解壓后,把數(shù)據(jù)依次進行還原,通過還原得到最終的頻域數(shù)據(jù)。最后進行頻域數(shù)據(jù)到時域的變換,得到了最終播放的音頻數(shù)據(jù)。本發(fā)明專利的有益效果是(I)能夠在8Κ-1ΜΗΖ之間的任意頻率進行采樣壓縮,極大的提高了音質(zhì)效果,能達到相當于95%以上的⑶原聲。(2)能支持多達32個通道的聲音,可以把多語言壓在一起,不需要多個音頻流,減少了系統(tǒng)開銷。(3)采用非整數(shù)位壓縮的方法,在不影響音質(zhì)效果的前提下,極大的提高了數(shù)據(jù)壓縮率。
圖1說明了本發(fā)明專利的壓縮總體過程。圖2說明了本發(fā)明專利通道數(shù)據(jù)采集的過程。圖3說明將時域數(shù)據(jù)如何轉(zhuǎn)化為頻域數(shù)據(jù)的過程。圖4說明頻域數(shù)據(jù)變換的過程。圖5說明數(shù)據(jù)壓縮的具體過程。圖6說明將數(shù)據(jù)塊合并為數(shù)據(jù)幀并保存的過程。圖7說明了本技術解壓縮的總體過程。
具體實施例方式本發(fā)明專利中涉及的音頻數(shù)據(jù)采集、壓縮、解壓縮過程圖1中,概要的介紹了如何從一個聲音采集設備采集數(shù)據(jù)到數(shù)據(jù)變換壓縮,直到合并為DAC文件流。首先,采用多通道獨立編碼方式,進行多通道數(shù)據(jù)采集。然后,將數(shù)據(jù)進行時域到頻域的轉(zhuǎn)換,得到頻域數(shù)據(jù)。下一步,基于自然聲學模型方式分析,采用指數(shù)和尾數(shù)編碼分析方法對數(shù)據(jù)模糊化處理。繼續(xù)上述步驟,采用非整數(shù)位壓縮方法對數(shù)據(jù)進行壓縮。最后,把加工好的數(shù)據(jù)塊合并為數(shù)據(jù)組,再把若干個數(shù)據(jù)組合并為一個數(shù)據(jù)幀,寫上同步標記,最后寫入DAC文件或DAC數(shù)據(jù)流。下面,將詳細介紹每個處理過程。圖2說明了數(shù)據(jù)采集過程本發(fā)明專利采用多通道獨立編碼方式進行多個通道數(shù)據(jù)采集,最多可采集32個通道數(shù)據(jù)。所謂多通道獨立編碼,就是根據(jù)用戶選擇的通道個數(shù),實現(xiàn)通道的數(shù)據(jù)采集互不相干,而且能夠同時進行采集壓縮。這樣如果聲音有多個語種的話,比如國語和粵語,在播放時,通過選擇不同的通道播放,就能夠清晰的播放不同的語種。(現(xiàn)有技術的數(shù)據(jù)采集方式只能采集1-8個通道數(shù)據(jù)且采集方式?jīng)]有獨立區(qū)分,這樣就不能實現(xiàn)多語種播放。)圖2A顯示了每個聲音通道,圖2B顯示了每個聲音通道采集后的聲音數(shù)據(jù)。圖3說明了時域到頻域轉(zhuǎn)換過程該過程把數(shù)據(jù)按規(guī)定的長度進行分段(比如512個數(shù)據(jù)為一段)。由于每個數(shù)據(jù)段波形數(shù)據(jù)之間會產(chǎn)生差值,如圖9所示,這樣播放時會產(chǎn)生噪音。為解決這個問題,在圖3A中我們采用了加窗法來消除數(shù)據(jù)段之間的差值,然后通過圖3B中傅立葉變換或MDCT變換把時域數(shù)據(jù)轉(zhuǎn)換為頻域數(shù)據(jù)。(加窗法就是通過產(chǎn)生一個余玄函數(shù)值,然后與每個數(shù)據(jù)段值相加,從而達到消除差值目的。)圖4說明了數(shù)據(jù)轉(zhuǎn)換過程在得到頻域數(shù)據(jù)后,采用獨特的自然聲學模型方式對數(shù)據(jù)進行分析。自然聲學模型根據(jù)人耳對聲音頻率的敏感度,分析出人耳敏感度高的頻率數(shù)據(jù)和人耳敏感度低的頻率數(shù)據(jù)。這樣做的好處是通過分析,能對不同的敏感度數(shù)據(jù)分別進行處理,把敏感度高的頻率數(shù)據(jù)進行細化,把敏感度低的頻率數(shù)據(jù)丟棄或壓縮。這樣既保證了聲音的高品質(zhì),又有效控制了數(shù)據(jù)量的大小。通過圖4A中我們首先對數(shù)據(jù)分段,然后在圖4B中對分段后的數(shù)據(jù)進行分析,最后在圖4C確認每個數(shù)據(jù)段的敏感等級并確認數(shù)據(jù)的尾數(shù)位數(shù)。通過對數(shù)據(jù)的分析,把數(shù)據(jù)按聲音敏感分成了區(qū)域,根據(jù)聲音敏感高低來設定每個區(qū)域尾數(shù)。聲音敏感高的區(qū)域多取尾數(shù),以便精確的表示數(shù)據(jù)。聲音敏感低的區(qū)域少取尾數(shù),這樣既不影響聲音的質(zhì)量,又節(jié)省了數(shù)據(jù)空間。數(shù)據(jù)分析后,我們采取指數(shù)尾數(shù)編碼方法對每個數(shù)據(jù)區(qū)域進行模糊化處理。具體做法為首先在圖4D中生成指數(shù)數(shù)據(jù)段。從原始數(shù)據(jù)段取每一個數(shù)據(jù)的最高有效位為作為指數(shù),根據(jù)這個指數(shù)生成一個新的數(shù)據(jù)。比如數(shù)據(jù)是13 二進制表示為1101,那么它的最高有效數(shù)據(jù)位為3,生成的指數(shù)就是3 了。通過遍歷整 個數(shù)據(jù)段生成了新的指數(shù)數(shù)據(jù)段。這個段的長度和原始數(shù)據(jù)段長度一樣。然后在圖4E中我們根據(jù)數(shù)據(jù)的尾數(shù)位數(shù)來生成尾數(shù)數(shù)據(jù)。先取原始數(shù)據(jù)段的最高有效位的下一個有效位的位數(shù),把指數(shù)和它相減得到第一個尾數(shù)值,如果沒有有效位,則尾數(shù)值為零。這樣生成了第一個尾數(shù)數(shù)據(jù)段。依次類推,做下一次循環(huán)取下一個尾數(shù)生成下一個尾數(shù)數(shù)據(jù)段。最后圖4F合并指數(shù)數(shù)據(jù)和尾數(shù)數(shù)據(jù),結果數(shù)據(jù)為指數(shù)數(shù)據(jù)段+尾數(shù)數(shù)據(jù)段1+尾數(shù)數(shù)據(jù)段2+…尾數(shù)數(shù)據(jù)段n,n〈32。下面我們舉例說明這個過程。比如,有一段數(shù)據(jù)區(qū)為[13,6,8,7,9] 二進制表示為[1101,0110, 1000,0111, 1001]。首先我們?nèi)≈笖?shù),通過計算得到了指數(shù)數(shù)據(jù)段
,接著取出第二個尾數(shù)數(shù)據(jù)段
,最后把數(shù)據(jù)段合并得到了目標數(shù)據(jù)段,見圖8。圖5說明了數(shù)據(jù)壓縮的具體過程在經(jīng)過數(shù)據(jù)模糊化處理后,需要對其進行數(shù)據(jù)壓縮,在此采用本發(fā)明專利特有的非整數(shù)位壓縮方法。它的優(yōu)點為用盡可能少的二進制位來存儲盡可能多的數(shù)據(jù)。比如可以用8個二進制位存儲5個小于等于2的數(shù),普通方法必須用10個二進制位。這樣極大的提高了數(shù)據(jù)壓縮率。具體過程為通過在圖5A中對源數(shù)據(jù)段按一定長度和數(shù)據(jù)大小相近來劃分組,然后在圖5B里設置該組的基數(shù),基數(shù)=組最大數(shù)減組最小數(shù)。設置好基數(shù),通過圖5C查數(shù)據(jù)位分配表來確定數(shù)據(jù)的存儲位數(shù)。數(shù)據(jù)位分配表是我們設定的一種數(shù)據(jù)表結構,它規(guī)定每個基數(shù)所占的數(shù)據(jù)位數(shù)和數(shù)據(jù)個數(shù),比如基數(shù)2的表項表示0-2之間的5個數(shù)用8個二進制位來存儲。共有32個表項。例如上面數(shù)據(jù)段經(jīng)過指數(shù)尾數(shù)編碼后為[3,2,3,3,I, I, O, I, 3,3,O, O, 2,O],我們可以把它分為兩組,分別為[3,3,3,3,3]與[2,2,2,1,1,1,0,0,0,0]。第一組的基數(shù)為
3,第二組的基數(shù)為2。分組后,在圖中根據(jù)數(shù)據(jù)的存儲位數(shù)合并數(shù)據(jù)。具體如下我們設置一個緩沖區(qū),對每組數(shù)據(jù)逐個讀入,首先檢查數(shù)據(jù)所在組的基數(shù)。根據(jù)基數(shù)查表得到存儲位數(shù)和存儲數(shù)據(jù)個數(shù),然后檢查緩沖區(qū)的數(shù)據(jù)是否達到存儲數(shù)據(jù)個數(shù)。如果達到則將這幾個數(shù)合并為一組二進制數(shù)并寫上表的序號和組標,這就組成壓縮數(shù)據(jù)組,最后清除緩沖區(qū)。否則,將數(shù)加入緩沖區(qū),繼續(xù)讀下一個數(shù)。重復上述步驟,直到所有的數(shù)據(jù)都處理完畢。對于第一組基數(shù)為3時,通過查表得知基數(shù)3的表項為0-3之間的5個數(shù)用9個二進制位來存儲。這樣我們可以把這一組數(shù)合并為9個二進制位的一組數(shù)。對于第一組基數(shù)為2時,通過查表得知基數(shù)3的表項為0-2之間的5個數(shù)用8個二進制位來存儲,因為這組數(shù)有十個,所以我們把它分兩次合并,每次處理5個數(shù),組成了兩組8個進制位的數(shù)。然后我們合并所有的壓縮數(shù)據(jù)組形成了 一個目標數(shù)據(jù)塊。圖6說明了數(shù)據(jù)合并過程通過上述操作,形成了目標數(shù)據(jù)塊。目標數(shù)據(jù)塊的個數(shù)取決于選擇的通道個數(shù)。圖6A中把若干個目標數(shù)據(jù)塊合并為數(shù)據(jù)組。圖六B中把若干數(shù)據(jù)組合并寫上同步標志就成為一個數(shù)據(jù)幀。圖6C中把數(shù)據(jù)幀保存到DAC文件或DAC流。至此,DAC壓縮完畢。圖7說明了解壓縮過程,它是本發(fā)明專利壓縮技術的逆向操作。首先從文件讀入一個DAC幀,根據(jù)數(shù)據(jù)幀標志分為若干數(shù)據(jù)組,再把數(shù)據(jù)組分成數(shù)據(jù)塊。然后,通過查數(shù)據(jù)分配表來解壓縮數(shù)據(jù)塊。解壓后,把數(shù)據(jù)依次進行還原。通過還原我們得到了最終的頻域數(shù)據(jù)。最后進行頻域數(shù)據(jù)到時域的變換,得到了最終播放音頻數(shù)據(jù)。下面詳細介紹每一個操作過程。圖7A數(shù)據(jù)幀拆解過程首先從DAC文件讀入一個數(shù)據(jù)幀,根據(jù)數(shù)據(jù)幀標志分成若干個數(shù)據(jù)組。然后根據(jù)塊標志把數(shù)據(jù)組分為目標數(shù)據(jù)塊。圖7B數(shù)據(jù)解壓縮過程我們從目標數(shù)據(jù)塊逐個讀入每個壓縮數(shù)據(jù)組,根據(jù)數(shù)據(jù)組所標識的數(shù)據(jù)位分配表的序號去查表。得到了該壓縮數(shù)據(jù)組的數(shù)據(jù)個數(shù)和基數(shù)。然后用除法去除合并的二進制數(shù)來分解出每一個數(shù)據(jù),除多少次取決于該壓縮數(shù)據(jù)組個數(shù)。圖7C數(shù)據(jù)還原過程通過數(shù)據(jù)解壓縮,我們得到了包含指數(shù)數(shù)據(jù)和尾數(shù)數(shù)據(jù)的數(shù)據(jù)段?,F(xiàn)在需要進行還原處理。我們以圖9表示的數(shù)據(jù)來解釋如何還原。首先,我們依次讀入每個指數(shù)數(shù)據(jù)段的數(shù)據(jù),根據(jù)它們的值生成新的數(shù)據(jù)。新的數(shù)據(jù)=2X,X是每個指數(shù)數(shù)據(jù)段的數(shù)據(jù),得到的目標數(shù)據(jù)段為[8,4,8,4,8],然后我們讀入取第一個尾數(shù)段。注意尾數(shù)數(shù)據(jù)的生成方法與指數(shù)數(shù)據(jù)不一樣,新的數(shù)據(jù)=2的(指數(shù)-尾數(shù))次方,尾數(shù)不等于零。尾數(shù)等于零則新的數(shù)據(jù)直接等于零。這樣我們得到了尾數(shù)目標數(shù)據(jù)段[4,2,0,2,1]。把它與目標數(shù)據(jù)段累加得到了新的目標數(shù)據(jù)段[12,6,8,6,9]。我們再讀入下一個尾數(shù)數(shù)據(jù)段用以上方法得到了尾數(shù)目標數(shù)據(jù)段[1,0,0,1,0]。與目標數(shù)據(jù)段累加得到了 [13,6,8,7,9]。這就是轉(zhuǎn)換結果的最終數(shù)據(jù),我們可以與以上模糊化的過程相比較。圖7D是頻域到時域的轉(zhuǎn)換過程通過數(shù)據(jù)還原后,我們得到了頻域數(shù)據(jù)段。我們采用了通用的方法使用傅立葉變換或MDCT變換把頻域數(shù)據(jù)轉(zhuǎn)換到時域數(shù)據(jù)。最后,在圖7E中我們把時域數(shù)據(jù)送入通道,通過聲音設備就能進行播放了。當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1.一種DAC音頻數(shù)據(jù)壓縮與解壓縮方法,包括以下步驟 采用多通道獨立編碼方式,進行多個通道數(shù)據(jù)采集; 將數(shù)據(jù)進行時域到頻域的轉(zhuǎn)換,得到頻域數(shù)據(jù); 基于自然聲學模型方式分析,采用指數(shù)和尾數(shù)編碼的方法對數(shù)據(jù)模糊化處理; 采用非整數(shù)位壓縮方法對數(shù)據(jù)進行壓縮; 壓縮后的模塊進行合并,得到DAC文件或DAC音頻數(shù)據(jù)流; 從DAC文件讀入數(shù)據(jù)幀進行解壓縮播放。
2.根據(jù)權利要求1所述的方法,其特征在于還包括多通道音頻采集設備按照用戶選擇的通道個數(shù),各通道之間互不相干地同時進行音頻數(shù)據(jù)采集的步驟。
3.根據(jù)權利要求1所述的方法,其特征在于還包括步驟 基于自然聲學模型方式分析; 采用指數(shù)和尾數(shù)編碼分析方法對數(shù)據(jù)模糊化處理。
4.根據(jù)權利要求3所述的方法,其特征在于,所述基于自然聲學模型方式分析的步驟還包括步驟 對數(shù)據(jù)進行分段; 對數(shù)據(jù)段進行分析; 按人耳對聲音的敏感度高低,確認每個數(shù)據(jù)段的敏感等級。
5.根據(jù)權利要求3所述的方法,其特征在于,所述采用指數(shù)和尾數(shù)編碼分析方法對數(shù)據(jù)模糊化處理的步驟還包括步驟 通過原始數(shù)據(jù)段生成指數(shù)數(shù)據(jù); 根據(jù)數(shù)據(jù)段的敏感度等級,生成尾數(shù)數(shù)據(jù); 合并指數(shù)數(shù)據(jù)段和尾數(shù)數(shù)據(jù)段; 得出轉(zhuǎn)換后的數(shù)據(jù)塊。
全文摘要
DAC音頻數(shù)據(jù)壓縮與解壓縮技術。在音頻數(shù)據(jù)采集壓縮過程中,基于聲音的自然模型來編碼,在8K-1MHZ之間的任意頻率范圍內(nèi)采樣,沒有頻率數(shù)據(jù)丟失。在把采集后的數(shù)據(jù)從時域轉(zhuǎn)換到頻域時,采用的是指數(shù)尾數(shù)編碼分析方法。指數(shù)能確定清晰和模糊的聲音,而尾數(shù)越大,則聲音越精確,此編碼保證了高頻聲音數(shù)據(jù)能不丟失,同時采用模糊尾數(shù)的方法限制了編碼后的數(shù)據(jù)量。
文檔編號G10L19/008GK103021415SQ20121053729
公開日2013年4月3日 申請日期2012年12月12日 優(yōu)先權日2012年12月12日
發(fā)明者姜付鵬, 鐘虹, 解然 申請人:青島天信通軟件技術有限公司