午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

在移動(dòng)終端中壓縮聲音的方法

文檔序號(hào):7991007閱讀:197來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):在移動(dòng)終端中壓縮聲音的方法
發(fā)明
背景技術(shù)
領(lǐng)域本發(fā)明涉及一種使用所記錄的聲音和聲音備忘錄(下指“聲音”)在移動(dòng)終端中壓縮鈴聲的方法,特別是涉及一種在移動(dòng)終端中壓縮聲音的方法,該方法通過(guò)應(yīng)用一差分方法使用LZW(Lempel Ziv Welch)壓縮技術(shù)壓縮由采樣聲音產(chǎn)生的脈碼調(diào)制(PCM)碼。
背景技術(shù)
通常,移動(dòng)終端使用樂(lè)器數(shù)字接口(MIDI)或所記錄的鈴聲通知用戶有來(lái)電。MIDI鈴聲已從現(xiàn)有的單—復(fù)音發(fā)展到復(fù)—復(fù)音,所記錄的鈴聲使用錄制的音樂(lè)或聲音以滿足不同的個(gè)人品味。而且,移動(dòng)終端存儲(chǔ)聲音以存儲(chǔ)通話期間電話的細(xì)節(jié)或者在呼叫等待時(shí)留一個(gè)備忘錄。
目前,一種在移動(dòng)終端中存儲(chǔ)包括鈴聲和聲音備忘錄等聲音的方法采用一種沒(méi)有使用聲音編碼器/解碼器(CODEC)、而使用自適應(yīng)差分脈碼調(diào)制(ADPCM)壓縮算法的存儲(chǔ)聲音的方法以支持由移動(dòng)終端提供的高通話品質(zhì)。上面的自適應(yīng)差分脈碼調(diào)制(ADPCM)壓縮算法可減少一半的存儲(chǔ)空間,但其不能抵抗通話品質(zhì)的下降。
在現(xiàn)有的存儲(chǔ)聲音的方法中,聲音通過(guò)轉(zhuǎn)換被采樣進(jìn)使用ADPCM的PCM的數(shù)據(jù)而被存儲(chǔ)。PCM算法已在國(guó)際電信聯(lián)盟—電信標(biāo)準(zhǔn)化分部(ITU-T)G711建議中公開(kāi),ADPCM算法也已在ITU-T G721建議中公開(kāi)。
使用上述的現(xiàn)有ADPCM的聲音存儲(chǔ)方法已被改進(jìn),但其依然存在過(guò)分消耗存儲(chǔ)器的問(wèn)題以及不能按原樣恢復(fù)最初的聲音的問(wèn)題,因?yàn)槭褂脡嚎s技術(shù)的方法導(dǎo)致了源數(shù)據(jù)的損壞。

發(fā)明內(nèi)容
因而,本發(fā)明在于解決上面提及的在現(xiàn)有技術(shù)中存在的問(wèn)題。本發(fā)明的目標(biāo)是提供一種壓縮聲音的方法,其通過(guò)在由采樣聲音產(chǎn)生的PCM碼上應(yīng)用差分方法從而轉(zhuǎn)換適于LZW壓縮算法的輸入數(shù)據(jù)而提高壓縮率。
為實(shí)現(xiàn)上述的至少一個(gè)目標(biāo),在整體上或者部分地,本發(fā)明提供了一種在移動(dòng)終端壓縮聲音的方法,包括在詞表中初始化差分碼,該差分碼對(duì)應(yīng)于由采樣輸入聲音產(chǎn)生的PCM碼中的鄰近PCM碼之間的差;繼續(xù)讀取由采樣的實(shí)際上所輸入的輸入聲音產(chǎn)生的PCM碼,轉(zhuǎn)換PCM碼為對(duì)應(yīng)的在詞表中已初始化了的差分碼,并輸出差分碼;通過(guò)字典產(chǎn)生算法在字典中寄存所輸出的差分碼。
在詞表中初始化差分碼時(shí),差分碼為6位差分碼且差分碼的數(shù)目是64。
所述的繼續(xù)讀取PCM碼、轉(zhuǎn)換PCM碼為差分碼、并輸出差分碼包括產(chǎn)生差分碼變量,該差分碼變量是在前讀取的PCM碼和當(dāng)前讀取的PCM碼之間的差;根據(jù)所產(chǎn)生的差分碼變量的值不同地輸出差分碼。
在所述的根據(jù)所產(chǎn)生的差分碼變量的值不同地輸出差分碼中,如果所產(chǎn)生的差分碼變量值在一定的范圍之內(nèi),差分碼變量按其原樣被輸出,否則,如果所產(chǎn)生的差分碼變量值不在一定的范圍之內(nèi),差分碼變量被轉(zhuǎn)換和輸出。
一定的范圍是指所產(chǎn)生的差分碼變量值大于等于0且小于31。
如果所產(chǎn)生的差分碼變量值不在一定的范圍之內(nèi),最好根據(jù)差分碼變量的值對(duì)差分碼變量進(jìn)行再次分類(lèi),相應(yīng)的差分碼變量根據(jù)所分類(lèi)的值以不同方式被轉(zhuǎn)換并被輸出。
附圖簡(jiǎn)要說(shuō)明本發(fā)明的上述的和其他的目標(biāo)、特征和優(yōu)點(diǎn)將在下面的結(jié)合附圖的詳細(xì)描述中變得更加清楚,其中


圖1為根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的在移動(dòng)終端中用于聲音壓縮的方法的流程圖。
圖2為圖1中所圖示的差分步驟的流程圖。
圖3為圖1中所圖示的壓縮步驟中的字典產(chǎn)生功能的流程圖。
圖4表示的是根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的代碼字的輸出位串。
圖5表示的是根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的聲音數(shù)據(jù)的代碼字表的結(jié)構(gòu)。
圖6表示的是根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的采樣聲音數(shù)據(jù)的PCM碼的概率。
圖7表示的是根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的差分碼的概率。
優(yōu)選實(shí)施例的詳細(xì)描述在下文中,將結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)描述。
圖1為根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的在移動(dòng)終端中用于聲音壓縮的方法的流程圖,其第一步是在詞表(S110)中初始化用于6位差分碼的64個(gè)代碼字。
也就是說(shuō),為建立一聲音壓縮所需要的代碼字,作為由采樣所記錄的聲音獲得的PCM碼的分析結(jié)果,在鄰近的PCM碼之間的差(一PCM碼減去鄰近PCM碼所得的一定值的絕對(duì)值)小于32。所以只有64個(gè)可能產(chǎn)生的代碼字能被存儲(chǔ)在詞表中作為差分碼,指示下一將被寄存的代碼字的代碼字變量(C1)被初始化為數(shù)目N5(N5=65),該數(shù)目為初始的字典詞條數(shù)目。
接著,所存儲(chǔ)的PCM碼被一個(gè)接一個(gè)地繼續(xù)讀取(S120)。所讀取的PCM碼用差分處理以映射為在詞表(S130)中初始化了的64差分碼。差分后的差分碼被輸出給一壓縮函數(shù)(S140)。
根據(jù)該壓縮函數(shù),差分碼通過(guò)使用字典產(chǎn)生算法而被壓縮,壓縮后的代碼字被輸出并存儲(chǔ)在存儲(chǔ)器中。在這時(shí),字典產(chǎn)生算法產(chǎn)生適于差分碼的字典樹(shù)。
重復(fù)步驟S120、S130、S140,直到所有由采樣獲得的PCM碼被讀取(S150)。
接著,當(dāng)所有PCM碼的差分及壓縮均被完成后,最后引導(dǎo)一清洗(S160)。根據(jù)存儲(chǔ)器中的存儲(chǔ)方法,數(shù)據(jù)以8位或16位進(jìn)行存儲(chǔ)。由于所壓縮的數(shù)據(jù)的位數(shù)是變化的,存儲(chǔ)在存儲(chǔ)器中的最終數(shù)據(jù)可能不對(duì)應(yīng)于8位或16位。從而,剩余的位用0填充,上面的過(guò)程被叫做“清洗(flush)”。
聲音壓縮的各個(gè)步驟將結(jié)合附圖進(jìn)行詳細(xì)描述。
圖2為差分PCM碼步驟(S130)的流程圖。
參見(jiàn)圖2,相應(yīng)的差分步驟是轉(zhuǎn)換8位PCM碼為6位差分碼,其中先前讀取的PCM碼(old)減去當(dāng)前讀取的PCM碼(cur)以獲得PCM碼的差分值,且將所減得的值存儲(chǔ)在差分碼變量(temp)中(S201)。
接下來(lái),檢查差分碼變量的值是否在初始化的差分碼范圍之內(nèi),以采用差分碼變量,將輸入聲音映射為在詞表中初始化了的64差分碼。
例如,如果差分碼變量值的范圍在0-31(不包括31)之間(S202),對(duì)應(yīng)的差分碼變量被作為一差分碼輸出,因?yàn)閷?duì)應(yīng)的碼變量是一在詞表中初始化的差分碼(S203)。如果差分碼變量值的范圍在-32到0(不包括0)之間(S204),對(duì)于差分碼變量的2位的6位補(bǔ)碼被輸出作為差分碼(S205)。
然而,如果差分碼變量的值超出了詞表中初始化的差分碼的范圍,差分碼變量則經(jīng)歷一定的處理。當(dāng)差分碼變量的值在-160到-32(不包括-160)之間時(shí)(S206),為了指示差分碼變量的值小于-32,差分碼32被輸出,接著,對(duì)應(yīng)的差分碼變量的絕對(duì)值除以2后被輸出作為差分碼(S207和S208)。
當(dāng)差分碼變量的值在31到159(不包括159)之間時(shí)(S209),為了指示對(duì)應(yīng)的差分碼變量的值大于31,差分碼31被輸出,接著,對(duì)應(yīng)的差分碼變量的值除以2后被輸出作為差分碼(S210和S211)。
圖3為壓縮由差分步驟轉(zhuǎn)換的差分碼的步驟(S140)的流程圖,其中使用字典產(chǎn)生算法。所產(chǎn)生的用于壓縮差分碼的字典可在制造移動(dòng)終端或最初存儲(chǔ)聲音時(shí)就生成。
參見(jiàn)圖3,字符串未被加到字典的情況是該字符串超出了字符串的最大數(shù)目(N7)(S301)或者該字符串已在先前被寄存在字典中(S302)。除了前述兩種情況外,字符串被分配給一新代碼字C1(S303)。
接著,新代碼字C1加1以分配給下一步將生成的字符串的代碼字(S304)。當(dāng)增加后的C1等于或大于代碼字的數(shù)目(N2)時(shí)(S305),將最初的字典詞條數(shù)目N5分配給C1(S306)。重復(fù)步驟S304、S306直到分配給C1的節(jié)點(diǎn)是一指示字典樹(shù)中的字符串的最后一個(gè)字符的葉節(jié)點(diǎn),或者是一沒(méi)被使用的節(jié)點(diǎn)(C1=NULL)(S307)。
在分配給C1的節(jié)點(diǎn)是一葉節(jié)點(diǎn)或者一沒(méi)被使用的節(jié)點(diǎn)時(shí),為了將被分配的字符串的新代碼字,從字典樹(shù)中刪除C1(S308)。
當(dāng)通過(guò)上述步驟而完成壓縮時(shí),所生成的代碼字被輸出并存儲(chǔ)在存儲(chǔ)器中。為減小所壓縮的代碼字的大小,執(zhí)行下述步驟。即,為了在解壓縮所壓縮的代碼字時(shí)獲得準(zhǔn)確的字符串,對(duì)應(yīng)的代碼字被輸出時(shí)應(yīng)滿足下面的幾個(gè)方程式方程式1(C1+lim)≤2(log2(C1+1))-1]]>方程式2lim=C3-C1-方程式3C3=2(log2(C1+1))]]>其中C1為當(dāng)前分配的代碼字的數(shù)目,lim為能夠減少位數(shù)的限制值,(log2(C1+1))為大于log2(C1+1)的最小整數(shù)。因而,當(dāng)代碼字轉(zhuǎn)變?yōu)槲淮畷r(shí),如果代碼字小于預(yù)先確定的限制值lim,其被輸出為(log2(C1+1))-1位,如果代碼字大于限制值,其被輸出為(log2(C1+1))位。
例如,如圖4所不,當(dāng)C1為750時(shí),lim=(1024-750-1)=273。在壓縮的基礎(chǔ)上范圍在0到273之間的代碼字按9位編碼并輸出,范圍在274到749之間的代碼字在增加274到各個(gè)代碼字后按10位編碼并輸出。
當(dāng)解壓縮時(shí),代碼字的位數(shù)按9位讀取。如果讀取的值小于274,則該值本身當(dāng)作代碼字;反之,如果讀取的值大于274,代碼字位數(shù)按10位再次讀取,且將從讀取的值減去274所得的確定值當(dāng)作代碼字。
圖5表示的是根據(jù)本發(fā)明的一優(yōu)選實(shí)施例的字典表的結(jié)構(gòu)。在0到63范圍之內(nèi)的代碼字被確定為差分碼,在64到127范圍的代碼字為7位編碼區(qū),在128到255范圍的代碼字為8位編碼區(qū),最后在2048到4095范圍的代碼字為12位編碼區(qū)。
為了評(píng)估根據(jù)本發(fā)明的壓縮聲音的方法的表現(xiàn),使用C語(yǔ)言的壓縮算法被執(zhí)行并測(cè)試。對(duì)于聲音數(shù)據(jù),真實(shí)的人的聲音以8000樣本每秒(64Kbps)記錄并使用。
圖6表示的是采樣聲音數(shù)據(jù)的PCM碼的概率,圖7表示的是差分碼的概率,其記錄基于來(lái)自圖6的數(shù)據(jù)的差。
根據(jù)本發(fā)明的聲音的可壓縮性可通過(guò)將壓縮前的聲音數(shù)據(jù)的大小除以壓縮后的聲音數(shù)據(jù)的大小而獲得。作為這種運(yùn)算的結(jié)果,樣本1到4分別具有3.00、3.66、3.35和2.5的壓縮性,平均值為3.13。
如上所述,通過(guò)在由采樣聲音產(chǎn)生的PCM碼上應(yīng)用差分方法,本發(fā)明可減少各種代碼字的數(shù)量,這是一個(gè)提高LZW壓縮算法的性能的參數(shù);通過(guò)增加重復(fù)的字符串的數(shù)量,本發(fā)明還可增強(qiáng)聲音壓縮效率。
盡管為了說(shuō)明的目的對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行了詳細(xì)描述,對(duì)那些本領(lǐng)域的熟練技術(shù)人員而言,在不離開(kāi)本發(fā)明的范圍和精神情況下,各種修改、添加和替代均是可能的。
權(quán)利要求
1.一種在移動(dòng)終端中壓縮聲音的方法,包括在詞表中初始化差分碼,該差分碼對(duì)應(yīng)于由采樣輸入聲音產(chǎn)生的PCM碼中的鄰近PCM碼之間的差;繼續(xù)讀取由采樣的實(shí)際上所輸入的輸入聲音產(chǎn)生的PCM碼,轉(zhuǎn)換PCM碼為對(duì)應(yīng)的在詞表中初始化的差分碼,并輸出差分碼;及通過(guò)字典產(chǎn)生算法在字典中寄存所輸出的差分碼。
2.根據(jù)權(quán)利要求1的方法,其中在詞表中初始化差分碼時(shí),差分碼為6位差分碼且差分碼的數(shù)目是64。
3.根據(jù)權(quán)利要求1的方法,其中所述的繼續(xù)讀取PCM碼、轉(zhuǎn)換PCM碼為差分碼、并輸出差分碼包括產(chǎn)生差分碼變量,該差分碼變量是在前讀取的PCM碼和當(dāng)前讀取的PCM碼之間的差;根據(jù)所產(chǎn)生的差分碼變量的值不同地輸出差分碼。
4.根據(jù)權(quán)利要求3的方法,在所述的根據(jù)所產(chǎn)生的差分碼變量的值不同地輸出差分碼中,其中當(dāng)所產(chǎn)生的差分碼變量值在一定的范圍之內(nèi),差分碼變量按其原樣被輸出,否則,如果所產(chǎn)生的差分碼變量值不在一定的范圍之內(nèi),差分碼變量被轉(zhuǎn)換和輸出。
5.根據(jù)權(quán)利要求4的方法,其中一定的范圍是指所產(chǎn)生的差分碼變量值大于等于0且小于31。
6.根據(jù)權(quán)利要求4的方法,其中當(dāng)所產(chǎn)生的差分碼變量值不在一定的范圍之內(nèi),根據(jù)差分碼變量的值對(duì)差分碼變量進(jìn)行再次分類(lèi),相應(yīng)的差分碼變量根據(jù)所分類(lèi)的值以不同方式被轉(zhuǎn)換并被輸出。
全文摘要
本發(fā)明公開(kāi)了一種在移動(dòng)終端中壓縮聲音的方法,該方法通過(guò)應(yīng)用一差分方法轉(zhuǎn)換脈碼調(diào)制(PCM)碼,該碼是使用所記錄的聲音或聲音備忘錄的鈴聲的源數(shù)據(jù)并通過(guò)采樣聲音生成;接著采用LZW壓縮技術(shù)壓縮PCM碼,從而減少了在移動(dòng)終端中存儲(chǔ)使用聲音或聲音備忘錄的鈴聲所需要的存儲(chǔ)空間。該方法包括在詞表中初始化差分碼,該差分碼對(duì)應(yīng)于由采樣輸入聲音產(chǎn)生的PCM碼中的鄰近PCM碼之間的差;繼續(xù)讀取由采樣的實(shí)際上所輸入的輸入聲音產(chǎn)生的PCM碼,轉(zhuǎn)換PCM碼為對(duì)應(yīng)的在詞表中初始化的差分碼,并輸出差分碼;及通過(guò)字典產(chǎn)生算法在字典中寄存所輸出的差分碼。與現(xiàn)有的使用ADPCM的壓縮存儲(chǔ)方法相比,根據(jù)本發(fā)明,通過(guò)采用應(yīng)用差分方法轉(zhuǎn)換PCM碼的LZW算法使得壓縮效率最大化,從而增加了原始聲音的存儲(chǔ)效率并提高壓縮率約50%。
文檔編號(hào)H04M19/04GK1498007SQ03160040
公開(kāi)日2004年5月19日 申請(qǐng)日期2003年9月23日 優(yōu)先權(quán)日2002年10月17日
發(fā)明者趙畇衍, 趙 衍 申請(qǐng)人:泛泰株式會(huì)社
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1