專利名稱:浮點格式的數(shù)字信號的無損編碼方法、解碼方法及其裝置和程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于將數(shù)字聲音、音樂或圖像信號壓縮成較小信息量的碼的編碼方法及其裝置、相應(yīng)的解碼方法、及其編碼裝置、解碼裝置以及程序。
背景技術(shù):
作為壓縮聲音或圖像信息的方法,已知的有不引入失真的無損編碼方法。
高壓縮的無損數(shù)據(jù)壓縮可以通過合并高壓縮的有損編碼和在從高壓縮有損編碼的結(jié)果再現(xiàn)的信號與原始信號之間的差的無損壓縮來實現(xiàn)。在專利文獻1中提出了這種合并的壓縮方法。下面將對在專利無線中詳細描述的該方法進行簡要描述。
在編碼器中,幀形成部分接連不斷地將數(shù)字輸入信號(又稱為輸入信號樣本序列)分成幀,每幀由例如1024個輸入信號樣本構(gòu)成,并且以幀為基礎(chǔ)有損地壓縮編碼這些數(shù)字信號。該編碼可以基于任何適于輸入數(shù)字信號的格式,并且可以通過解碼再現(xiàn)具有一定保真度(fidelity)的原始數(shù)字輸入信號。例如,如果數(shù)字輸入信號是聲音信號,則可以使用根據(jù)ITU-T推薦標準G.729所推薦的話音編碼。如果數(shù)字輸入信號是音樂信號,則可以使用用在MPEG-4中的變換域加權(quán)交織矢量量化(transform-domain weighted interleaved vectorquantization,TwinVQ)編碼。從有損壓縮編碼產(chǎn)生的碼進行局部解碼,并且生成表示局部解碼的信號和原始數(shù)字信號之間的差的差信號。然而,實際上并不需要局部解碼,相反,可以獲得原始數(shù)字信號和在有損壓縮編碼期間生成的量化信號之間的差。差信號的幅度典型地大大小于原始數(shù)字信號的幅度。因此,與原始數(shù)據(jù)信號的無損壓縮編碼相比,通過差信號的無損壓縮編碼可以減少信息量。
為了提高無損壓縮編碼的效率,對于幀中的差信號的所有樣本的序列,(每個樣本由符號和量值表示(符號和量值的二進制數(shù))表示),在每個位置上的位,即,在MSB、第二MSB、...、和LSB中的每個上的位沿著樣本序列(即,時間序列)鏈接在一起,形成相應(yīng)的位序列。換句話說,變換了位排列。為了方便起見,將由相等位位置上所鏈接的1024位組成的位序列稱為“并列位序列”(coordinate bit sequence)。另一方面,為了方便起見,將表示包含其符號的每個樣本的幅度值的1-字位序列(one-word bit sequence)稱為“幅度位序列”。差信號具有小的幅度,因此,最高有效位或者最高有效位和后面的多個位常常全是“0”。通過鏈接這樣的位位置上的位形成的并列位序列是位序列“0”。因此,并列位序列可以由預(yù)定的短碼表示,這樣,可以提高無損壓縮編碼的效率。
無損地壓縮編碼并列位序列。作為無損壓縮編碼,可以使用諸如霍夫曼編碼(Huffman coding)和算術(shù)編碼之類的熵編碼,其可以利用相同符號(1或0)連續(xù)出現(xiàn)的位序列的出現(xiàn)或頻繁出現(xiàn)。
當解碼時,解碼從無損壓縮編碼產(chǎn)生的碼,并且對解碼后的信號執(zhí)行位排列的逆變換。即,對于每幀,將并列位序列轉(zhuǎn)換成幅度位序列,并且順序地再現(xiàn)產(chǎn)生的差信號。此外,對由有損壓縮編碼產(chǎn)生的碼進行解碼,將解碼后的信號和再現(xiàn)的差信號加到一起,然后,將每個幀的和信號順序地鏈接到在一起,從而再現(xiàn)原始數(shù)字信號序列。
此外,已知的還有多種用于音頻或視頻信息的、允許無失真的無損編碼方法。例如,在非專利文獻1中公開了用于音樂信息的無損編碼方法。任何現(xiàn)有的方法都是對直接從信號波形得到的PCM信號執(zhí)行壓縮編碼的方法。
然而,在音樂記錄工作室中,有時以浮點的格式記錄和存儲波形。浮點格式的任何值被分離成符號、指數(shù)和尾數(shù)。例如,在圖1所示的IEEE 754標準浮點格式中,任何值由32位構(gòu)成,包括以有效位的降序排列的1位符號、8位指數(shù)和23位尾數(shù)。用S表示符號,十進制數(shù)E表示8位指數(shù)值,M表示尾數(shù)的二進制數(shù),這樣可以以如下的符號和量值二進制表示法來表示浮點格式的值。
(-1)S×1.M×2E-E0---(1)]]>根據(jù)IEEE 754標準,E0被定義為E0=27-1=127,從而表達式(1)中的“E-E0”可以是落入下面范圍的任何值-127≤E-E0≤128這里,定義當E-E0=-127時所有位被設(shè)為“0”,而當E-E0=128時所有位被設(shè)為“1”。
在聲音、音樂或圖像信息由浮點格式的數(shù)字信號序列表示的情況下,由“0”和“1”組成的位序列由于浮點格式的特性可能是隨機的。因此,即使執(zhí)行上述的位排列變換,熵壓縮編碼等也難以預(yù)期能提供高的壓縮比。此外,浮點格式的樣本序列與原始的模擬波形大大不同,從而沒有由于樣本之間的相關(guān)性而產(chǎn)生的冗余。因此,即使應(yīng)用上述非專利文獻1中公開的無損預(yù)測編碼方法,也無法期望更高的壓縮比。
專利文獻1日本申請?zhí)卦S公開No.2001-44847非專利文獻1“Lossless Compression of Digital Audio”by Mat Hans,Ronald W.Schafer et al.,IEEE SIGNAL PROCESSING MAGAZINE,July 2001,pp.21-32發(fā)明內(nèi)容本發(fā)明的目標是提供用于浮點格式的數(shù)字信號的、允許無失真并且具有高的壓縮比的無損編碼方法、相應(yīng)的解碼方法、其裝置和程序。
根據(jù)本發(fā)明的編碼方法和編碼器包括將浮點格式的第一信號樣本通過截斷轉(zhuǎn)換成整數(shù)格式的第二信號樣本以便減少其絕對值;無損地壓縮所述整數(shù)格式的第二信號樣本以輸出第一碼序列并且輸出第一碼序列;生成與所述整數(shù)格式的第二信號樣本和所述浮點格式的第一信號樣本之間的差對應(yīng)的、浮點格式的差信號;和生成并輸出與所述浮點格式的差信號中能夠是非零的位的范圍對應(yīng)的第二碼序列,所述位的范圍由整數(shù)格式的所述第二信號樣本中跟隨在最高有效的“1”后的數(shù)字位數(shù)確定。
這樣,通過轉(zhuǎn)換成接近原始模擬信號的波形的、整數(shù)格式的第一信號,可以通過消除由于樣本之間的相關(guān)性而產(chǎn)生的冗余的壓縮方法來實現(xiàn)高效壓縮,并且可以有效地只將在差信號中能夠是非零的位作為差信號輸出。
根據(jù)本發(fā)明的解碼方法和解碼器包括解碼并且展開第一碼序列來生成整數(shù)格式的第一信號樣本;根據(jù)由所述第一信號樣本中跟隨在最高有效的“1”后的位數(shù)確定的、能夠是非零的數(shù)字位數(shù)從第二碼序列生成浮點格式的差信號;將所述整數(shù)格式的第一信號樣本轉(zhuǎn)換成所述浮點格式的第二信號樣本;和合并所述浮點格式的第二信號樣本和所述浮點格式的差信號來生成浮點格式的第三信號樣本。
根據(jù)本發(fā)明,可以有效地壓縮浮點格式的數(shù)字信號樣本序列。此外,可以使用為整數(shù)格式的信號樣本序列設(shè)計的典型的壓縮編碼模塊,并且可以處理整數(shù)格式和浮點格式這兩者,而不必顯著增加處理裝置和程序的規(guī)模。
圖1示出根據(jù)IEEE-754的32位浮點表示的格式;圖2是根據(jù)本發(fā)明第一實施例的編碼器的功能圖;圖3是圖解圖2所示的整數(shù)格式化部分12的操作的圖;圖4是示出圖2所示的整數(shù)格式化部分12中執(zhí)行的過程的流程圖;圖5示出整數(shù)值的絕對值和表示該整數(shù)值的浮點的尾數(shù)的位序列之間的對應(yīng)關(guān)系;圖6示出數(shù)字差信號的整數(shù)值、符號、指數(shù)和尾數(shù)之間的關(guān)系;圖7是示出數(shù)字差信號的序列的要壓縮編碼的部分的圖;圖8是根據(jù)本發(fā)明第一實施例的解碼器的功能圖;圖9是根據(jù)本發(fā)明第二實施例的編碼器的功能圖;圖10是示出數(shù)字調(diào)整過程的流程圖;圖11是根據(jù)本發(fā)明第二實施例的解碼器的功能圖;圖12是根據(jù)本發(fā)明第二實施例的編碼器的變型的功能圖;圖13是根據(jù)本發(fā)明第二實施例的解碼器的變型的功能圖;圖14A是圖解將從浮點信號得到的、浮點格式的輸入信號X轉(zhuǎn)換成16位整數(shù)值信號的過程的圖;圖14B是圖解將從24位整數(shù)值信號得到的、浮點格式的輸入信號X轉(zhuǎn)換成16位整數(shù)值信號的過程的圖;圖14C是圖解將從16位整數(shù)值信號得到的、浮點格式的輸入信號X轉(zhuǎn)換成16位整數(shù)值信號的過程的圖;圖15A是示出圖9A所示的情況下可以是非零的尾數(shù)的位的范圍的圖;圖15B是示出圖9B所示的情況下可以是非零的尾數(shù)的位的范圍的圖;圖16是根據(jù)本發(fā)明第三實施例的編碼器的功能圖;圖17是根據(jù)本發(fā)明第三實施例的解碼器的功能圖;圖18是圖解通過掃描在幀方向上的位來編碼尾數(shù)的過程的圖;圖19示出執(zhí)行圖18所示的編碼的壓縮部分17的配置;圖20示出對應(yīng)于圖19所示的編碼的解碼器中的展開部分23的配置;圖21是圖解另一種掃描在幀方向上的位的方式的圖;
圖22是圖解另一種掃描在幀方向上的位的方式的圖;圖23是圖解另一種掃描在幀方向上的位的方式的圖;圖24是根據(jù)第五實施例的編碼器的功能圖;圖25是根據(jù)第五實施例的解碼器的功能圖;以及圖26示出實施本發(fā)明的計算機的配置。
具體實施例方式圖2示出了根據(jù)本發(fā)明實施例的編碼器的功能配置。根據(jù)該實施例的編碼器100包括整數(shù)格式化部分12、壓縮部分13、差生成部分14和壓縮部分17。整數(shù)格式化部分12具有數(shù)字位數(shù)計算部分12A,而差生成部分14包括浮點格式化部分15和減法部分16。例如,信號資源11輸出音樂信號樣本序列,作為32位浮點格式的輸入數(shù)字信號樣本X(以后也簡稱為輸入信號樣本X)的序列。通過對以24位整數(shù)格式記錄的原始信號執(zhí)行諸如變換、幅度調(diào)整、效果添加和混合之類的處理、以及將作為處理結(jié)果的具有小數(shù)部分的所得信號轉(zhuǎn)換成浮點格式,從而產(chǎn)生每個數(shù)字信號樣本X,或者通過將以24位整數(shù)格式記錄的原始信號轉(zhuǎn)換成32位浮點格式、并且對所得信號執(zhí)行如上所述的處理,從而產(chǎn)生每個數(shù)字信號樣本X。
浮點格式的輸入樣本X輸入到整數(shù)格式化部分12,并且將每個樣本轉(zhuǎn)換成整數(shù)格式的數(shù)字信號樣本Y(下面也簡稱為整數(shù)值信號樣本)。如上所述,在上述例子中,常常通過諸如變換、幅度調(diào)整、效果添加之類的處理從24位整數(shù)格式的原始信號得到數(shù)字信號樣本X,因而信號的幅度典型地不會大幅度變化。因此,下面將參照圖3描述整數(shù)格式化部分12截斷小數(shù)部分的情況。盡管整數(shù)格式的數(shù)字位數(shù)可以是16位、20位等,但在下面描述中假設(shè)整數(shù)格式的數(shù)字位數(shù)是24位。
為了表示浮點格式的波形,可以執(zhí)行標準化使得將整數(shù)值32768(=215)標準化為1.0,或者將整數(shù)值223標準化為1.0。然而,這些情況與下面描述的情況的不同之處僅僅在于指數(shù)值,并沒有本質(zhì)差別。
如果指數(shù)值E是例如147,則在其高位側(cè)與小數(shù)點相鄰的位是從尾數(shù)M的MSB起的第20(147-127)位。如圖3A所示,在23位尾數(shù)M中的最高有效的20位(MI)構(gòu)成跟隨以符號和量值二進制表示法表示的數(shù)的整數(shù)部分的最高有效的“1”的部分,而尾數(shù)M中余下的三個最低有效位(M2)構(gòu)成以符號和量值二進制表示法表示的數(shù)的小數(shù)點后的小數(shù)部分。下面,MI部分將稱為尾數(shù)M的整數(shù)部分。因此,如圖3B所示,如果尾數(shù)M向最低有效位位置移位3位使得尾數(shù)的整數(shù)部分(MI)中的最低有效位位于整個23位尾數(shù)的最低有效位,則小數(shù)點后的三位(M2)發(fā)生溢出,從而截斷這三位。這樣,在由這樣的移位導(dǎo)致的最高有效的三個未占用位(在這個例子中為“000”)中的最低有效位(即,從最低有效位起第21位)被設(shè)置為1,其對應(yīng)于表達式(1)中“1.M”的“1”,從而提供截斷的整數(shù)值(見圖3C)?;蛘?,可以在移位前在23位中的最高有效位MSB的前面添加“1”,可以將得到的24位移位3位。
此外,將得到的整數(shù)值轉(zhuǎn)換成2的補碼(complement)表示。即,每個浮點格式的數(shù)字信號樣本X的符號位用作最高有效位,而對于其他23位,如果符號S是“0”(正),則按原樣使用圖3C所示的23位,而如果符號S是“1”(負),則如圖3D所示邏輯反轉(zhuǎn)這23位,即,相互交換值“0”和“1”,然后,將“1”加到最低有效位上。作為最高有效位,按原樣使用符號位S。這樣,如圖3E所示,獲得以補碼表示法表示的24位整數(shù)格式的信號樣本Y。
上面描述通常是根據(jù)下面假設(shè)進行的尾數(shù)M包含對應(yīng)于小數(shù)部分的0或更多位,并且將32位浮點格式的數(shù)字信號樣本轉(zhuǎn)換成24位整數(shù)格式的數(shù)字信號樣本。然而,例如在多個24位整數(shù)格式的原始信號混合在一起來處理的情況下,一個樣本可能具有比24位可以表示的最大值大得多的幅度值。在E≥150的情況下,作為例外處理,在上述例子中將指數(shù)值E固定為150(E=127+23=150),提供例外信號y給差生成部分14,并且將“1M”(尾數(shù)M其前面加有“1”)的最高有效的23位轉(zhuǎn)換成2的補碼表示,來產(chǎn)生24位整數(shù)格式的信號樣本Y。或者,如稍后將參照另一實施例所述的,為了每個幀都落入適當?shù)恼麛?shù)值范圍,可以使用調(diào)整值ΔE調(diào)整浮點數(shù)的指數(shù),并且調(diào)整值ΔE可以被編碼為輔助信息。
整數(shù)格式化部分12執(zhí)行例如圖4所示的處理。首先,確定指數(shù)E是否等于或大于150,即,整數(shù)部分是否由23或更多位組成(S1)。如果整數(shù)部分由少于23位組成,則數(shù)字位數(shù)計算部分12A確定尾數(shù)的整數(shù)部分的數(shù)字位數(shù)n(n=E-E0)并且輸出結(jié)果(S2)。然后,尾數(shù)M向最低有效的位置移位(23-n)位以使小數(shù)部分發(fā)生溢出,并且在從由n位組成的所得的整數(shù)部分的最低有效位看的第(n+1)位的位置上放置“1”(S3)。然后,在第(n+1)位前的其余位的位置上放置“0”,使得整個尾數(shù)由233位組成,并且根據(jù)符號位S,將得到的23位轉(zhuǎn)換成以2的補碼表示法表示的24位整數(shù)格式,從而生成整數(shù)格式的信號樣本Y(S5)。更具體地說,按原樣使用符號S作為最高有效位,而對于其余的23位,如果符號S是“0”(正),則按原樣使用由在步驟S3中移位和對從最低有效位起的第(n+1)位加“1”而得到的整數(shù)部分中的、從最低有效位到第23位的位,而如果符號S是“1”(負),則反轉(zhuǎn)由移位和加“1”得到的整數(shù)部分中的、從最低有效位到第23位的位,并且將“1”加到得到的23位的最低有效位上,以提供補碼表示的值。如果在步驟S1中指數(shù)等于或大于150,則在步驟S4中設(shè)置指數(shù)值E為150,然后,在步驟S5中由“1M”的最高有效的23位生成整數(shù)格式的信號樣本Y。
在上面描述中,將尾數(shù)M移位(23-n)位以提供以符號和量值二進制表示的24位整數(shù)值樣本?;蛘?,可以提取如圖3A中MI所示的尾數(shù)M的最高有效的n位(n=E-E0),在n位的前面加“1”以形成圖3C所示的位數(shù)(n+1),在這(n+1)位的前面加上(22-n)位“0”來形成位數(shù)23,然后在這23位的前面加上符號位S來形成位數(shù)24。
如上所述由整數(shù)格式化部分12產(chǎn)生的、整數(shù)格式的數(shù)字信號樣本Y的序列作為整數(shù)值,在壓縮部分13中由使用與波形等的相關(guān)性的有效的無損壓縮方法進行壓縮編碼,然后作為碼序列Ca輸出。例如,如在上述非專利文獻1中所披露的,可以通過計算每個樣本值和預(yù)測值(整數(shù)值)之間的差、如在“背景技術(shù)”部分中所述的那樣變換這些差的序列的位排列、然后對得到的序列(即,并列位序列)執(zhí)行熵編碼來實現(xiàn)壓縮部分13中的無損壓縮。即,整數(shù)值信號樣本Y的序列接近原始模擬信號波形,來自信號源11的輸入數(shù)字信號樣本X是從后者得到的。因此,可以通過預(yù)測或變換來消除由于信號樣本之間的相關(guān)性而導(dǎo)致的冗余,高效地?zé)o損壓縮編碼輸入樣本X的序列。
差生成部分14生成差信號(誤差)Z,其指示整數(shù)值信號樣本Y和來自信號源11的、相應(yīng)的浮點格式的輸入信號樣本X之間的差。在該例子中,浮點格式化部分15再次將整數(shù)值信號樣本Y轉(zhuǎn)換成浮點格式的信號樣本Y’,減法部分16從浮點格式的原始輸入信號樣本X中減去得到的浮點格式的信號樣本Y’,從而生成浮點格式的差數(shù)字信號Z。
在整數(shù)格式的數(shù)字信號樣本由24位組成的情況下,浮點格式化部分15可以將數(shù)字信號沒有歧義或例外地轉(zhuǎn)換成32位浮點格式的輸入信號。如上所述,浮點格式的原始數(shù)字信號樣本X的指數(shù)E容易等于或小于149,而在這種情況下,指示數(shù)字信號樣本Y’和浮點格式的原始輸入信號樣本X之間的差的差信號Z等于原始輸入信號樣本X的小數(shù)部分的值。
上述關(guān)于差生成部分14的描述僅僅意圖幫助理解本發(fā)明,而實際上并不需要將整數(shù)值信號樣本Y轉(zhuǎn)換成浮點格式。輸入樣本X及其位數(shù)的整數(shù)部分的數(shù)字位數(shù)n輸入到差生成部分14,如果沒有提供例外信號y,則分別使用每個浮點格式的輸入樣本X的符號S、指數(shù)E和尾數(shù)M的最低有效的(23-n)位作為每個差信號樣本Z的符號S、指數(shù)E和尾數(shù)的最低有效的(23-n)位,并且將尾數(shù)其余的最高有效的n位全部設(shè)置為“0”。尾數(shù)的整數(shù)部分的數(shù)字位數(shù)n(n=E-E0)等于整數(shù)值信號樣本Y中的最高有效的“1”后的數(shù)字位數(shù)。如果提供例外信號y,則差信號樣本Z的符號由輸入信號的符號S構(gòu)成,差信號樣本Z的指數(shù)被設(shè)為E-150,而差信號樣本Z的尾數(shù)由輸入樣本X和信號樣本Y’之間的差構(gòu)成。
壓縮部分17對每個整數(shù)值信號樣本Y和相應(yīng)的浮點格式的輸入樣本X的差信號Z(即,來自差生成部分14的浮點格式的差信號Z)執(zhí)行無損壓縮編碼,并且輸出碼序列Cb。壓縮部分17使用從整數(shù)格式化部分12輸出的尾數(shù)的整數(shù)部分的數(shù)字位數(shù),僅對浮點格式的差信號Z中這些可以對每個樣本假設(shè)“0”之外的值的數(shù)字執(zhí)行無損壓縮編碼。每個浮點格式的輸入樣本X如下表示X=1.M×2n=Xw.XF假設(shè)Xw=1MI(MI在其前面加有“1”)表示二進制表示的整數(shù)部分,而XF=MF表示小數(shù)部分,對應(yīng)于尾數(shù)M中整數(shù)部分MI的位和對應(yīng)于小數(shù)部分(十進制值)MF的位如圖5所示相互關(guān)聯(lián)。在該圖中,尾數(shù)M被示為包括在表達式(1)中加在M前面的一位的24位的值,并且為了方便起見示出以符號和量值二進制表示的小數(shù)點PD的位置。
當整數(shù)絕對值Xw是0時,表達式(1)可以被分成兩種情況E-E0=-127的情況和-126≤E=E0≤-1的情況。前一情況是E=0的特殊情況,其中尾數(shù)M的所有23位“x23…x1”構(gòu)成小數(shù)部分MF,而輸入信號樣本X的23位尾數(shù)M按照定義為全“0”。在-126≤E=E0≤-1的情況中,尾數(shù)構(gòu)成小數(shù)部分,但不是其所有位都是“0”。在任何情況中,在E-E0假設(shè)是負值的情況下,整數(shù)值信號樣本Y的所有位是“0”,并且差信號Z與輸入樣本X相同,從而浮點格式的信號樣本X的所有32位將被編碼。
當整數(shù)絕對值Xw為1時,在比尾數(shù)M的第23位高一位的位置上的位“1”(下面稱為第24位)表示整數(shù)部分Xw,而尾數(shù)M的23位“x23…x1”表示小數(shù)部分MF。
當整數(shù)絕對值Xw是2到3時,由第24位“1”和第23位x23組成的兩位“1x23”表示整數(shù)值Xw,其中位x23表示尾數(shù)M中的整數(shù)部分MI,而其余的22位“x22…x1”表示小數(shù)部分MF。
當整數(shù)絕對值Xw是4到7時,由第24位“1”、第23位x23和第22位x22組成的三位“1x23x22”表示整數(shù)值Xw,其中位“x23x22”表示尾數(shù)M中的整數(shù)部分MI,而其余的21位“x21…x1”表示小數(shù)部分MF。
當整數(shù)絕對值Xw是2k-1到2k-1時,由第24位“1”和位“x23x22…x23-(k-2)”組成的k位表示整數(shù)值Xw,其中位“x23x22…x23-(k-2)”表示尾數(shù)M中的整數(shù)部分MI,而其余的(23-k)位“x23-(k-1)…x1”表示小數(shù)部分MF。
由于差信號Z是通過從32位浮點格式的輸入樣本X中減去由整數(shù)值信號樣本Y轉(zhuǎn)換來的32位浮點格式的樣本Y’而生成的,因此差信號Z如圖6所示。在整數(shù)絕對值Xw是0的情況(對應(yīng)于上述E-E0假設(shè)為負值的情況)下,差信號Z的符號S、指數(shù)E和尾數(shù)M全部與輸入樣本X的相同。
在整數(shù)絕對值Xw是1的情況下,樣本Y’的符號S和指數(shù)E與樣本X的相同,而樣本Y’的尾數(shù)M是0。在這種情況下,同樣執(zhí)行指數(shù)的減法。這樣,由于樣本Y’的符號和指數(shù)與樣本X的相同,因此差信號Z的符號S和指數(shù)E總是為0,并且差信號Z的尾數(shù)M與樣本X的尾數(shù)M相同。
在整數(shù)值Xw是2到3的情況下,樣本Y’的符號S和指數(shù)E與樣本X的相同,而對于樣本Y’的尾數(shù)M,其第23位x23與樣本X的尾數(shù)M相同,而其構(gòu)成小數(shù)部分“x22…x1”的位為全零。因此,差信號Z的符號S和指數(shù)E總是為0,尾數(shù)M中的最高有效位(第23位)總是為0,而構(gòu)成小數(shù)部分“x22…x1”的其余位與樣本X的各自對應(yīng)的位相同,并且隨著樣本X而變化。
類似地,在樣本X的整數(shù)值Xw是2k-1到2k-1的情況下,差信號Z的符號S和指數(shù)E總是為0,而對于其尾數(shù)M,對應(yīng)于樣本X的尾數(shù)M的整數(shù)部分的最高有效的(k-1)位(第23位)“x23…x23-(k-2)”總是為0,而其余23-(k-1)位“x23-(k-1)…x1”與樣本X的尾數(shù)M的各自對應(yīng)的位相同,并且隨著樣本X而變化。差信號Z的可以是非零的數(shù)字位數(shù)h(h=23-n)是根據(jù)整數(shù)格式的數(shù)字信號樣本Y的整數(shù)值的范圍(即,整數(shù)值的數(shù)字位數(shù)n)確定的。
由于這種關(guān)系,壓縮部分17使用從整數(shù)格式化部分12輸入的尾數(shù)的整數(shù)部分的數(shù)字位數(shù)n,僅對浮點格式的差信號Z中可以是非零的最低有效的h(h=23-n)位執(zhí)行無損壓縮編碼。即,如果尾數(shù)的整數(shù)部分的數(shù)字位數(shù)n是0,則指數(shù)E和尾數(shù)M的所有位被無損地壓縮編碼,而如果數(shù)字位數(shù)n不是0(n≠0),則僅無損地壓縮編碼尾數(shù)M的最低有效的h(h=23-n)位。通過上述描述,應(yīng)當理解,可以通過向差生成部分14輸入輸入信號樣本X和尾數(shù)的整數(shù)部分的數(shù)字位數(shù)n來生成差信號Z。
如上所述,當輸入信號樣本X的表達式(1)中的E-E0的值是從-127到0時,差信號Z與輸入信號樣本X相同。因此,壓縮部分17與差信號Z一樣編碼輸入信號樣本的32位。當E-E0的值是1到22時,在例如圖7所示的差信號樣本序列Z(=z1,z2,z3…)的情況下,僅編碼由可以是非零的位構(gòu)成的部分MD,n≠0的情況除外??梢酝ㄟ^對可以是非零的h位進行熵編碼(例如霍夫曼編碼),或者通過全體位的通用編碼來實現(xiàn)對可以是非零的位的編碼。即,只有圖7中陰影部分可以被恰當?shù)胤纸M成樣本或幀并且簡單地以樣本或幀為基礎(chǔ)進行無損壓縮編碼(例如熵編碼)。符號包含在作為編碼整數(shù)格式的數(shù)字信號樣本Y的結(jié)果的碼Ca中,因而,當編碼差信號Z時不需要編碼和發(fā)送符號S。此外,由于在接收方側(cè)可以由整數(shù)值信號樣本Y的、除了符號位之外跟隨在最高有效的“1”后面的位數(shù)n來確定n=E-E0,因此不需要發(fā)送位數(shù)n。
差信號Z有時在小數(shù)點后有大量的數(shù)位,在這種情況下,可能降低編碼效率。因此,可以將差信號Z中可以是非零的位作為碼序列Cb不經(jīng)編碼地輸出?;蛘?,比較在執(zhí)行編碼的情況和不執(zhí)行編碼的情況之間的差信號Z的信息量,并且可以選擇信息量較小的差信號Z。
如上所述,在浮點格式的數(shù)字信號樣本X的指數(shù)E保持E≥150的例外情況下,整數(shù)格式化部分12提供用于指示指數(shù)E固定為150的例外信號y給差生成部分14,并且差生成部分14生成浮點格式的差信號Z,其指數(shù)由固定的指數(shù)值150和數(shù)字信號樣本X的指數(shù)E之間的差(E-150)構(gòu)成,而其尾數(shù)由尾數(shù)M的差構(gòu)成。壓縮部分17無損地壓縮編碼差信號Z并且輸出得到的碼序列Cb。
圖8示出根據(jù)本發(fā)明的該實施例的、與圖2所示的編碼器100相關(guān)的解碼器200。
在展開部分21中無損地展開解碼輸入碼序列Ca。該無損展開解碼對應(yīng)于在圖2所示的壓縮部分13中執(zhí)行的無損壓縮編碼,并且將執(zhí)行無損壓縮編碼的逆處理。因此,該無損展開解碼生成24位整數(shù)格式的數(shù)字信號樣本Y。此外,展開部分21中的數(shù)字位數(shù)輸出部分21A確定在每個展開解碼后的樣本中跟隨在最高有效的“1”后的數(shù)字位數(shù)n,作為相應(yīng)浮點格式的樣本的尾數(shù)的整數(shù)部分的數(shù)字位數(shù),并且將數(shù)字位數(shù)n提供給展開部分23。
展開部分23無損地展開解碼輸入碼序列Cb。該無損展開解碼對應(yīng)于在圖2所示的壓縮部分17中執(zhí)行的無損壓縮編碼。因此,在展開部分23中,組裝部分23A對每個樣本,根據(jù)數(shù)字位數(shù)n,將展開解碼后的位的序列組裝成32位浮點格式的差(誤差)信號Z,并且輸出得到的差信號Z。在差信號Z從圖2所述的編碼器100的壓縮部分17未經(jīng)編碼地輸出的情況下,在解碼器200中的展開部分23處接收的碼序列Cb按原樣用作差信號Z。
根據(jù)對從展開部分21提供的第一樣本的數(shù)字位數(shù)n,如果對第一樣本的數(shù)字位數(shù)n,n=0不成立,則組裝部分23A從由展開部分23展開解碼的位序列的23位尾數(shù)M中提取最低有效的(h=23-n)位,并且將提取處的h位組裝成32位浮點格式的差信號z1,其由圖7所示的第一樣本z1的陰影部分構(gòu)成。1位符號S和8位指數(shù)E全部被設(shè)置為0,并且將構(gòu)成對應(yīng)于圖7所示的整數(shù)部分的尾數(shù)M的部分MI的所有位被設(shè)置為0。對于下一樣本,根據(jù)數(shù)字位數(shù)n(n≠0),從展開解碼后的位序列中提取h(h=23-n)位來形成32位浮點格式的差信號Z。類似地,連續(xù)組裝并輸出圖7所示的樣本序列z2,z3…。如果n=0成立,則從展開解碼后的位序列中提取8位指數(shù)E和23位尾數(shù)M,并且將其組裝成浮點格式的數(shù)字信號。解碼后的差信號Z的符號位S總是為0,除了n=0的情況外其指數(shù)E的位總是為0,其尾數(shù)M的最低有效的h(h=23-n)位可以是非零,而其尾數(shù)M的其余位總是為0。因此,要注意的是,盡管差信號嚴格意義上說不是浮點的表示法,但還是將差信號稱為浮點格式的差信號。
由浮點格式化部分22將來自展開部分21的24位整數(shù)格式的數(shù)字信號樣本Y轉(zhuǎn)換成32位浮點格式的數(shù)字信號樣本Y’。合并部分24合并數(shù)字信號樣本Y’與來自展開部分23的浮點格式的相應(yīng)差信號Z,來再現(xiàn)浮點格式的數(shù)字信號樣本X。每個再現(xiàn)的數(shù)字樣本X的符號與數(shù)字信號樣本Y’的相同,即,與解碼后的整數(shù)格式的數(shù)字信號樣本Y的符號相同。除了n=0的情況外,樣本X的指數(shù)E與信號樣本Y’的相同,尾數(shù)M的最高有效的n(n=23-h)位與信號樣本Y’的尾數(shù)的最高有效的n位相同,而其其余的最低有效的h(h=23-n)位與差信號Z的最低有效的h位相同。
有時會出現(xiàn)這樣的情況,即為了方便的目的將原始24位或16位整數(shù)值PCM信號轉(zhuǎn)換成浮點數(shù)來形成要編碼的序列,而不是使用普通的浮點數(shù)信號生成要編碼的序列。在這種特殊的浮點序列的情況中,不出現(xiàn)參照第一實施例的、如上所述的可以是非零的位。因此,來自差生成部分14的浮點格式的差(誤差)信號Z的符號S、指數(shù)E和尾數(shù)M全是零,因而不需要發(fā)送差信號Z。例如,這意味著兩個位被用作輔助信息,如果這兩個位是“00”,則意味著原始數(shù)據(jù)信號是16位整數(shù)值信號樣本,如果這兩個位是“01”,則意味著原始數(shù)據(jù)信號是24位整數(shù)值信號樣本,這兩個位是“10”,則意味著原始數(shù)據(jù)信號是與上面所述的不同的信號樣本。通過在從壓縮部分13輸出的碼序列Ca前面加上這兩位輔助信息、在前兩種情況中禁止碼序列Cb、并且在后一情況下允許碼序列Cb,可以實現(xiàn)有效壓縮。
在上面對圖2所示的實施例的描述中,對指數(shù)E有E≥150的例子執(zhí)行例外處理。然而,如前面簡要描述,可以以幀為基礎(chǔ)執(zhí)行數(shù)字調(diào)整來避免E≥150的情況。下面將參照圖9描述一個實施例,其中執(zhí)行數(shù)字調(diào)整以便在幀中的樣本的指數(shù)E的最大值落入150>E≥150-K的范圍中。
圖9是根據(jù)本發(fā)明的第二實施例的編碼器100的功能圖,與圖2中對應(yīng)的部分用與圖2相同的附圖標記表示。根據(jù)第二實施例,樣本序列劃分部分31將浮點格式的數(shù)字信號樣本X的序列劃分成預(yù)定樣本數(shù)量的塊,或者劃分成幀,而數(shù)字調(diào)整部分32對每個劃分出的單元的指數(shù)E執(zhí)行數(shù)字調(diào)整,使得整數(shù)格式的數(shù)字信號樣本Y的數(shù)字位數(shù)落入適當?shù)姆秶?,如下所述,從?shù)字信號樣本X轉(zhuǎn)換的整數(shù)格式的數(shù)字信號樣本的數(shù)字位數(shù)變得等于或小于24。
(a)如果具有大的幅度和大于150的指數(shù)E的浮點格式的數(shù)字信號樣本X被轉(zhuǎn)換成整數(shù)格式的24位數(shù)字信號樣本Y,則丟失由數(shù)字信號樣本X的尾數(shù)M的一個或多個最低有效位表示的信息。另外,如果具有大的幅度和接近150的指數(shù)E的浮點格式的數(shù)字信號樣本X被轉(zhuǎn)換成整數(shù)格式的數(shù)字信號樣本Y,則樣本的數(shù)值常常超過24位整數(shù)值。為了避免這些,對于每個劃分出的單元,數(shù)字調(diào)整部分32從數(shù)字信號樣本X的指數(shù)E中減去調(diào)整信息ΔE以使得指數(shù)E的值等于或小于150。
(b)如果具有小的幅度的浮點格式的數(shù)字信號樣本X被轉(zhuǎn)換成整數(shù)格式的24位數(shù)字信號樣本Y,并且24位數(shù)字信號樣本Y中的除去符號位S的最高有效的21到23位(最高有效位)全是“0”,幅度僅可以用大約2位表示。這樣,整數(shù)格式的數(shù)字信號樣本Y的序列的波形與模擬波形不接近,因而不能獲得轉(zhuǎn)換成整數(shù)格式的數(shù)字信號樣本Y的優(yōu)點,即,以高壓縮比無損壓縮編碼的優(yōu)點。此外,在整數(shù)格式的數(shù)字信號樣本Y的幅度值由大約兩個其最低有效位表示的情況下,如果信號樣本Y被轉(zhuǎn)換成浮點格式的數(shù)字信號,則得到的數(shù)字信號的尾數(shù)M的幾乎所有位都可能為“0”。例如,它們?nèi)繛椤?”,或者除了最高有效位為“1”之外全部為“0”。另一方面,即使信號樣本X的幅度小,浮點格式的輸入數(shù)字信號樣本X的尾數(shù)M也可以假設(shè)為大值。因此,浮點格式的差信號的尾數(shù)M(其對應(yīng)于與浮點格式的數(shù)字信號樣本X的尾數(shù)的誤差(差))可能有大的幅度。即,對所有樣本減少了為“0”的位數(shù),從而不能提高壓縮效率。
為了避免這種問題,數(shù)字調(diào)整部分32將調(diào)整信息ΔE加到每個劃分出的單元的每個指數(shù)E上,使得整數(shù)格式的數(shù)字信號樣本Y中包含盡可能多的由尾數(shù)M表示的信息。在這種情況下,由轉(zhuǎn)換成整數(shù)格式而產(chǎn)生的一個樣本的尾數(shù)應(yīng)當不大于24。
可以對每個劃分出的單元改變數(shù)字調(diào)整部分32中的調(diào)整信息ΔE(任何符號的整數(shù))。數(shù)字調(diào)整部分32找到每個劃分出的單元中的最大一個指數(shù)E,并且為該劃分出的單元確定調(diào)整信息ΔE,使得在保持整數(shù)格式的一個樣本的位數(shù)等于或小于24的同時可以盡可能多地利用由尾數(shù)M表示的信息。
圖10示出由數(shù)字調(diào)整部分32對每幀執(zhí)行的數(shù)字調(diào)整的過程。該圖示出了樣本序列劃分部分31以NF個樣本劃分樣本序列、并且以NF個樣本為單元執(zhí)行數(shù)字調(diào)整。
在步驟S1中,接收NF個輸入樣本,并且在步驟S2中,值i最初被設(shè)為1(i=1),值ΔE0最初被設(shè)為一個不可能的、足夠小的值,例如-150(ΔE0=-150)。
在步驟S3中,從第i個樣本的指數(shù)Ei減去150來生成差ΔEi。
在步驟S4中,確定差ΔEi是否大于前面的第(i-1)個樣本的差ΔEi-1。如果差ΔEi不大于差ΔEi-1,則處理繼續(xù)到步驟S6。
如果在步驟S5中差ΔEi大于差ΔEi-1,將差ΔEi當作最大差△Emax并且將其臨時存儲。
在步驟S6中,確定是否i=NF。如果確定i不等于NF,在步驟S7中i的數(shù)量加1,然后,處理返回步驟S3。
如果在步驟S6中確定i=NF,則在步驟S8中讀出最大差ΔEmax,并且確定差ΔEmax是否等于或大于1。如果差ΔEmax等于或大于1,則處理繼續(xù)到步驟S10。
如果在步驟S8中差ΔEmax小于1,則在步驟S9中確定差ΔEmax是否等于或小于-K,其中K是等于或大于1的預(yù)定的整數(shù)。如果差ΔEmax等于或小于-K,則處理繼續(xù)到步驟S10。
在步驟S10中,使用最大差ΔEmax作為校正信息ΔE,根據(jù)關(guān)系Ei’=Ei-ΔE調(diào)整NF樣本的每個的數(shù)字,將調(diào)整數(shù)字后得到的NF個樣本提供給整數(shù)格式化部分12,該樣本包含得到的Ei’替代原始的E’,然后結(jié)束處理。如果在步驟S9中差ΔEmax大于-K,則結(jié)束處理。
這樣,如果在步驟S8中差ΔEmax等于或大于1,則意味著數(shù)字信號樣本X的幅度大,并且指數(shù)E大于150。如果在步驟S9中差ΔEmax等于或小于-K,則意味著數(shù)字信號樣本X的幅度小,并且波形近似的程度很差。例如,K可以被設(shè)為從20到22的值。
與第一實施例中一樣,經(jīng)過這樣的數(shù)字調(diào)整后的浮點格式的數(shù)字信號樣本在整數(shù)格式化部分12中被轉(zhuǎn)換成整數(shù)格式的數(shù)字信號樣本Y,并且在壓縮部分13中無損壓縮編碼該信號樣本Y的序列以產(chǎn)生碼序列Ca。此外,對于差信號Z,與第一實施例中一樣,在壓縮編碼部分17中編碼可以是非零的尾數(shù)M的位,并且輸出碼序列Cb。
為了使解碼可以無損地再現(xiàn)編碼前浮點格式的原始數(shù)字信號樣本X,輔助編碼部分33對包括用于指示加或減的符號的調(diào)整信息ΔE進行編碼,來生成輔助碼序列Cc。
在圖9所示的實施例中,差生成部分14中的反數(shù)字調(diào)整部分34通過相應(yīng)劃分出的單元的調(diào)整信息ΔE對整數(shù)格式的數(shù)字信號序列Y執(zhí)行反數(shù)字調(diào)整。即,如果數(shù)字調(diào)整部分32添加了負調(diào)整信息ΔE(如果在步驟S10中ΔE為負),則反數(shù)字調(diào)整部分34將相應(yīng)的數(shù)字信號樣本除了最高有效位之外的23位向最低有效的位置移位ΔE位,并且用“0”填充由于移位而產(chǎn)生的未占用的位位置。如果數(shù)字調(diào)整部分32添加了正調(diào)整信息ΔE(如果在步驟S10中ΔE為正),則反數(shù)字調(diào)整部分34將相應(yīng)的數(shù)字信號樣本除了最高有效位之外的23位向最高有效的位置移位ΔE位,換句話說,使得發(fā)生ΔE位的溢出,并且用“1”填充由于移位而產(chǎn)生的未占用的最低有效的位位置,使得位數(shù)為23+ΔE。
由浮點格式化部分15將經(jīng)過反數(shù)字調(diào)整的整數(shù)格式的數(shù)字信號樣本Y轉(zhuǎn)換成浮點格式的數(shù)字信號樣本Y’。減法部分16獲得浮點格式的數(shù)字信號樣本Y’和浮點格式的原始數(shù)字信號樣本X之間的差Z。由壓縮部分17無損地壓縮編碼差信號Z,并且輸出得到的碼序列Cb。在該實施例中,可以只按原樣輸出作為差信息的差信號Z的小數(shù)部分,而不是壓縮編碼差信號Z。如圖9中的虛線所示,可以提供樣本序列劃分部分31,以便將劃分的浮點格式的數(shù)字信號樣本X的序列提供給數(shù)字調(diào)整部分32和減法部分16。
圖11示出與圖9所示的編碼器100相關(guān)的解碼器200的功能圖,其對應(yīng)于圖8所示的解碼器200的部分用相同的附圖標記表示。展開部分21對每個劃分出的單元無損地展開解碼碼序列Ca,從而產(chǎn)生整數(shù)格式的數(shù)字信號樣本Y的序列。在該實施例中,輔助解碼部分41解碼輔助碼Cc來生成調(diào)整信息ΔE。根據(jù)調(diào)整信息ΔE,數(shù)字糾正部分42以ΔEi+ΔE對整數(shù)格式的數(shù)字信號樣本Y執(zhí)行數(shù)字糾正。如果調(diào)整信息ΔE為正,則每個數(shù)字信號樣本Y的位向最高有效位位置移位ΔE位。如果調(diào)整信息ΔE為負,則每個數(shù)字信號樣本Y的位向最低有效位位置移位ΔE位。在該處理中,與圖9所示的反數(shù)字調(diào)整部分34一樣,將由于移位產(chǎn)生的未占用的位位置用“1”或“0”填充。
由浮點格式化部分22將來自數(shù)字糾正部分42的整數(shù)格式的數(shù)字信號樣本轉(zhuǎn)換成浮點格式的數(shù)字信號樣本Y’。將每個信號樣本Y’和通過由展開部分23反展開解碼從差信息Cb得到的浮點格式的差信號Z合并在一起。按照要求,連接部分43將所合并的數(shù)字信號連接進樣本序列中,從而再現(xiàn)浮點格式的數(shù)字信號樣本X的序列。
如圖12所示(其中與圖9中對應(yīng)的部分用相同的附圖標記表示),不執(zhí)行數(shù)字信號樣本Y的反數(shù)字調(diào)整,浮點格式化部分15可以將整數(shù)格式的數(shù)字信號樣本Y轉(zhuǎn)換成浮點格式的數(shù)字信號樣本,并且確定得到的浮點格式的數(shù)字信號樣本和經(jīng)由數(shù)字調(diào)整部分32數(shù)字調(diào)整后的浮點格式的數(shù)字信號樣本之間的差,從而生成浮點格式的差信號Z。即,對于差生成部分14確定浮點格式的原始數(shù)字信號樣本X和整數(shù)格式的數(shù)字信號樣本Y之間的浮點格式的差信號,可以使用圖2、9和12所示的任何配置。
圖13中所示的、與圖12所示的編碼器相關(guān)的解碼器200可以通過下列步驟再現(xiàn)浮點格式的數(shù)字信號樣本X首先,由浮點格式化部分22將經(jīng)過展開部分21無損地展開解碼的、整數(shù)格式的數(shù)字信號樣本Y轉(zhuǎn)換成浮點格式的數(shù)字信號樣本;由合并部分24將得到的數(shù)字信號樣本和由展開部分23無損地展開解碼后的浮點格式的差信號Z合并在一起;然后,數(shù)字校正部分42使用由輔助解碼部分41解碼的調(diào)整信息ΔE校正合并數(shù)字信號的指數(shù)E的數(shù)字。
在上述實施例中,通過利用這樣的事實來提高壓縮效率,即,如果通過截斷小數(shù)點后的小數(shù)部分將浮點格式的輸入信號樣本X轉(zhuǎn)換成整數(shù)值信號樣本,則所有構(gòu)成差信號Z的尾數(shù)的整數(shù)部分的位是“0”。根據(jù)第三實施例,除了截斷小數(shù)點后的位,還截斷整數(shù)部分的預(yù)定數(shù)量的位來生成整數(shù)值信號樣本Y。下面將示出這樣的情況,即,在通過截斷小數(shù)點后的位轉(zhuǎn)換成16位整數(shù)值時,還截斷了8位。然而,本發(fā)明可以應(yīng)用到任何轉(zhuǎn)換成由17位到23位組成的整數(shù)值的情況。
根據(jù)第三實施例,不管輸入信號樣本X所源自的原始信號是浮點信號、24位整數(shù)值信號還是16位整數(shù)值信號,都可以通過相同的處理來編碼浮點格式的輸入信號樣本X。然而,為了方便說明操作原理起見,將依次描述從浮點信號得到輸入信號樣本X的情況、從包含一個符號位的24位整數(shù)值信號得到輸入信號X樣本的情況以及從包含一個符號位的16位整數(shù)值信號得到輸入信號X樣本的情況。
將參照圖14A描述源自浮點信號的輸入信號樣本X到16位整數(shù)值的轉(zhuǎn)換和差信號Z的生成。在該圖中,值“x”可以是“0”或“1”(即,值“x”可以是非零)。“MX”表示浮點格式的輸入信號樣本X的23位尾數(shù),而“PD”表示小數(shù)點的位置,用于指示最高有效的n(n=E-E0)位構(gòu)成的整數(shù)部分與小數(shù)部分之間的邊界。通過將樣本X的指數(shù)E減少到E-8,尾數(shù)MX的小數(shù)點位置PD向最高有效位位置移動了8位。結(jié)果,在圖14A所示的例子中,尾數(shù)MX的最高有效的2(n-8=2)位“xx”構(gòu)成移位后尾數(shù)的整數(shù)部分。然后,在構(gòu)成整數(shù)部分的2位的前面加上位“1”,并且使用得到的位序列“1xx”作為16位整數(shù)值信號樣本Y的最低有效的位。
將16位整數(shù)值信號樣本Y向最高有效位位置移位8位,即,在16位整數(shù)值信號樣本Y的后面添加8位“0”,然后,將得到的信號樣本轉(zhuǎn)換成浮點格式的信號樣本Y’。這樣,得到的浮點格式的信號樣本Y’的指數(shù)E被加8,因而等于輸入信號樣本X的指數(shù)E。通過設(shè)置跟隨在向最高有效位位置移位了8位的整數(shù)值信號樣本Y中的最高有效的“1”后的整數(shù)部分的位作為最高有效的位,即,在該例中的2位“xx”,并且設(shè)置所有后面的位為“0”,形成信號樣本Y’的尾數(shù)MY’。為了方便起見,圖14A示出了在要移位8位的樣本Y中跟隨在最高有效的“1”后的整數(shù)部分和由轉(zhuǎn)換得到的浮點格式的信號樣本Y’的尾數(shù)MY’之間的關(guān)系。差信號Z的尾數(shù)MZ是尾數(shù)MX和尾數(shù)MY’之間的差。差信號Z的尾數(shù)MZ的最高有效的(n-8)位,或者在該例中最高有效的2位是“00”,并且后面的位(小數(shù)部分)等于尾數(shù)MX各自對應(yīng)的位。即,跟隨在構(gòu)成尾數(shù)MZ的整數(shù)部分的最高有效的位“00”后的所有位可以是非零。
對于差信號Z,只需要編碼可以是非零的、尾數(shù)M的最低有效的23-(n-8)位??偸窃O(shè)為0的、尾數(shù)MZ的最高有效的(n-8)位的數(shù)量與在接收方解碼后的整數(shù)值信號樣本Y中跟隨在最高有效的“1”后的位的總數(shù)相同。如圖15A所示,隨著整數(shù)部分的位數(shù)(n-8)增加,尾數(shù)M的、由可以是非零的位構(gòu)成的部分減少。
圖14B示出從24位整數(shù)值信號樣本得到浮點格式的輸入信號樣本X的情況。因此,樣本X的尾數(shù)MX與圖14A所示的尾數(shù)MX不同之處在于,圖14B所示的跟隨在小數(shù)點PD后的所有位是“0”。在圖14B中,輸入信號樣本X的指數(shù)被減少為E-8,從而將小數(shù)點PD的位置向最高有效位位置移位8位。然后,得到的16位整數(shù)值信號樣本Y與圖14A所示的情況相同。因此,從整數(shù)值信號樣本Y轉(zhuǎn)換的浮點格式的信號樣本的尾數(shù)MY’也與圖14A中所示的情況相同。
然而,差信號的尾數(shù)MZ是尾數(shù)MX和尾數(shù)MY’之間的差,而如圖14B所示,差信號Z的尾數(shù)MZ的整數(shù)部分是“00”,隨后的8位表示可以是非零的位的范圍,而跟隨這8位之后的位全是“0”。如圖15B所示,可以是非零的位的范圍向最低有效位位置移位,作為構(gòu)成整數(shù)部分的位數(shù)。
圖14C示出從包含一個符號位的16位整數(shù)值信號樣本得到浮點格式的輸入信號樣本的情況。因此,在23位尾數(shù)MX中,跟隨在小數(shù)點PD后的8位全是“0”,跟隨在這8位后的位也全是“0”。在跟隨在小數(shù)點后的數(shù)字位數(shù)h隨著n的值按照h=23-n而變化的同時,圖14C所示的情況與圖14B所示的情況不同之處在于數(shù)字位數(shù)h不會變得小于8。
在圖14C中,輸入信號樣本X的指數(shù)再次被減少到E-8,從而將小數(shù)點PD的位置向最高有效位位置移位8位,并且以與圖14A和14B相同的方式,使用移位后的尾數(shù)的整數(shù)部分“xx”生成16位整數(shù)值信號樣本Y。因此,從Y轉(zhuǎn)換的浮點格式的樣本的尾數(shù)MY’也與圖14A和14B中所示的情況相同。此外,與如圖14B所示的情況一樣,差信號Z的尾數(shù)MZ的整數(shù)部分的最高有效的(n-8)位全是“0”,隨后8位表示可以是非零的位的范圍,而緊跟這8位的位也全是“0”。在這種情況下,也與圖14所示相同,隨著整數(shù)部分的數(shù)字位數(shù)(n-8)增加,緊跟這可以是非零的8位的、數(shù)字“0”的數(shù)量減少,盡管數(shù)字位數(shù)不小于8。
通過上述描述可以清楚,在無論是從24位整數(shù)值信號、16位整數(shù)值信號還是浮點信號之一得到浮點格式的輸入信號樣本的情況下,可以通過8位截斷來生成16位整數(shù)值信號樣本Y,即將輸入信號樣本的指數(shù)E減少到E-8、將小數(shù)點向最高有效位位置移位8位、在構(gòu)成尾數(shù)MX的整數(shù)部分的最高有效的(n-8)位或者圖中所示例子中的位“xx”前面加“1”、并且采用得到的整數(shù)值“1xx”作為16位整數(shù)信號樣本Y的最低有效的位。此外,可以通過設(shè)置輸入信號樣本X的尾數(shù)MX的最高有效的(n-8)位為“0”來生成差信號Z的尾數(shù)MZ。
由此獲得的16位整數(shù)值信號樣本Y可以以與圖2所示的實施例相同的方式進行壓縮編碼。另一方面,對于差信號Z,不對總是為“0”的、尾數(shù)MZ的最高有效的(n-8)位進行編碼,對緊跟的可以是非零的8位和緊跟這8位的其余(23-n)位分別進行壓縮編碼。
在上述例子中,通過將23位尾數(shù)中的小數(shù)點向最高有效位位置移位8位并且截斷在移位后的小數(shù)點后跟隨的位,生成16位整數(shù)值。通常,可以通過將輸入信號樣本的指數(shù)E減少到E-m并且采用得到的尾數(shù)MX的最高有效的(n-m)位作為整數(shù)部分來截斷m位(m任何落入范圍22≥m≥8內(nèi)的整數(shù))。此外,如果不對總是為“0”的最高有效的(n-m)位進行編碼,并且對緊跟的、可以是非零的m位和緊跟這m位的其余(23-n)位分別進行壓縮編碼,則可以有效地編碼差信號Z的尾數(shù)。
圖16示出一編碼器,其中與圖2所示的對應(yīng)的部分用相同的附圖標記表示。如上參照圖14A、圖14B和14C所述,數(shù)字調(diào)整部分31將浮點格式的輸入信號樣本X的指數(shù)E減少到E-8,從而將小數(shù)點向最高有效位位置移位8位。整數(shù)格式化部分12截斷移位了8位后的小數(shù)點后跟隨的小數(shù)部分,并且在得到的整數(shù)部分前面加“1”來形成整數(shù)格式的16位(=24-8)信號樣本Y。壓縮部分13無損地壓縮信號樣本Y并輸出碼序列Ca。
反數(shù)字調(diào)整部分32將16位整數(shù)格式的信號樣本Y在與數(shù)字調(diào)整部分31的移位相反的方向上移位8位,即,在16位信號樣本Y的后面插入8位“0”來將整個信號樣本Y向最高有效位位置移動8位,從而形成整數(shù)格式的24位信號樣本。浮點格式化部分15將得到的24位整數(shù)格式的信號樣本轉(zhuǎn)換成浮點格式的信號樣本Y’。減法部分16計算浮點格式的信號樣本Y’和輸入信號樣本X之間的差,從而生成浮點格式的差信號Z。實際上,反數(shù)字調(diào)整部分32、浮點格式化部分15和減法部分16不執(zhí)行這些處理,差生成部分14可以僅僅使用從整數(shù)格式化部分12接收的尾數(shù)的整數(shù)部分的數(shù)字位數(shù)n,來提取每個輸入信號樣本X的尾數(shù)MX的最低有效的8+h(h=15-n)位(在n≠0的情況下)或者提取指數(shù)E和尾數(shù)MX(在n=0的情況下)。
壓縮部分17包括劃分器33和兩個壓縮部分17h和17c。差信號Z輸入到劃分器33。劃分器33還從整數(shù)格式化部分12接收移位后每個樣本X的尾數(shù)的整數(shù)部分的數(shù)字位數(shù)n。在n≠0的情況下,每個差信號樣本Z被劃分成數(shù)字子集Zh,包含由數(shù)字位數(shù)n確定的、能夠是非零的位,即,包含最低有效的h位(h=15-n);和數(shù)字子集Zc,包含由信號樣本Y從24位整數(shù)格式到16位整數(shù)格式的轉(zhuǎn)換確定的、或者由整數(shù)格式的信號樣本Y的位數(shù)確定的、能夠是非零的位,即包含第(h+1)到第(h+8)最低有效的位。在n=0的情況下,每個差信號樣本Z被劃分成由指數(shù)E的8位和尾數(shù)的最低有效的(23-8)位組成的數(shù)字子集Zh以及由尾數(shù)的最高有效的8位組成的數(shù)字子集Zc。壓縮部分17h和17c分別通過熵編碼等無損地壓縮編碼數(shù)字子集Zh和Zc,并輸出碼序列Cb1和Cb2。
因此,壓縮部分17h主要是接收和無損壓縮編碼可以是非零的、尾數(shù)M的最低有效位。如果原始數(shù)字信號是24位或16整數(shù)值,則除了圖14B和14C所示的n=0的情況外,輸入到壓縮部分17h的數(shù)字子集Zh中最高有效的h位全是“0”,從而可以實現(xiàn)對其高效壓縮。
如圖14A、14B和14C所示,壓縮部分17c不管輸入信號樣本X是從一般的浮點信號、24位整數(shù)值信號還是16位整數(shù)值信號得到的,都無損地壓縮編碼可以是非零的8個最低有效位,即,從第(h+1)到第(h+8)最低有效的位。與由壓縮部分17對差信號Z中所有可以是非零的位進行全體壓縮編碼的情況相比,這允許提高總的壓縮效率。
圖17示出根據(jù)本實施例的、與圖16所示的編碼器相關(guān)的解碼器,其與圖8所示的解碼器相對應(yīng)的部分用相同的附圖標記表示。展開部分21無損地展開解碼碼序列Ca來再現(xiàn)16位整數(shù)格式的信號樣本Y。展開部分23包括兩個展開器23h和23c以及合并器41、碼序列Cb1和Cb2分別由展開器23h和23c無損地展開解碼,并且將產(chǎn)生的位序列Bh和Bc輸入到合并器41。合并器41還接收由展開部分21解碼的每個樣本的整數(shù)部分中跟隨在最高有效的“1”后的位數(shù)n。在n≠0的情況下,從由展開器23c輸出的位序列Bh中提取h(h=15-n)位,從由展開器23c輸出的位序列Bc中提取8位,并且合并這h位和8位來分別組成位數(shù)M的最低有效的h位和最高有效的8位。類似地對于隨后的樣本,取決于數(shù)字位數(shù)n,從位序列Bh中提取h位,從位序列Bc中提取8位,并且合并所提取的位。在n=0的情況下,從位序列Bh中提取作為指數(shù)E的8位和15(=23-8)位,并且從位序列Bc中提取8位。將從位序列Bc中提取出的8位插入在位序列Bh的15位的前面,從而形成23位尾數(shù)。
數(shù)字調(diào)整部分42將8位“0”插入解碼后的16位整數(shù)格式的信號樣本Y后面,來將信號樣本Y向最高有效位位置移位8位,從而生成24位整數(shù)格式的信號樣本。然后,浮點格式化部分15將信號樣本轉(zhuǎn)換成32位浮點格式的信號樣本Y’。合并部分24合并信號樣本Y’和差信號Z來再現(xiàn)浮點格式的信號樣本X。
在上面描述中,整數(shù)格式的信號樣本Y是16位或24位樣本。然而,信號樣本Y中包含的位數(shù)可以是任何等于或小于24的數(shù)m,并且取決于m的值,可以確定每個整數(shù)格式的信號樣本Y中能夠是非零的數(shù)字位數(shù)。此外,在上述例子中,浮點格式的輸入信號樣本X的序列可以被劃分成例如1024個樣本的幀,或者劃分成連續(xù)樣本的塊,并且可以對每個這樣劃分出的單元執(zhí)行壓縮編碼。在對每個劃分出的單元執(zhí)行壓縮編碼的情況下,可以位每個劃分出的單元適當?shù)卮_定轉(zhuǎn)換成整數(shù)格式的位數(shù),并且可以輸出指定位數(shù)的輔助碼。
可以使用根據(jù)圖2所示的第一實施例的壓縮部分17作為圖16所示的編碼器中的壓縮部分17,并可以使用圖8所示的展開部分作為圖17所示的解碼器的展開部分23。在這種情況下,編碼器執(zhí)行參照第二實施例所述的16位整數(shù)格式化。然而,差信號Z不被劃分成具有可以是非零的位的兩部分,而是編碼尾數(shù)的最低有效的h(h=23-n)位。這樣,解碼器中的展開部分23解碼碼序列Cb來再現(xiàn)這h位,并且將n位“0”插入這h位的前面來生成尾數(shù)。
在上面所述的第一實施例中,無損地壓縮編碼每個差信號樣本中可以是非零的、最低有效的h(=23-n)位。然而,差信號Z可以例如被分組成幀,可以從差信號Z沿著幀方向提取位序列,并且對其無損地壓縮編碼。下面將參照圖18描述該編碼方法。
圖18示出一幀由1024個樣本組成的情況。此外,對于每個樣本號i(i=0到1023),示出輸入信號樣本X的尾數(shù)的n位整數(shù)部分的整數(shù)值(n=E-E0)及其h位小數(shù)部分的位序列(h=23-n)。如在參照圖7的第一實施例中所描述的那樣,每個差信號樣本Z的尾數(shù)M的整數(shù)部分的最高有效的n位全是“0”,并且小數(shù)部分的最低有效的h(=23-n)位是可以是非零的位。在圖18所示的編碼方法中,差信號樣本的尾數(shù)的整數(shù)部分的最高有效的n位與它們各自的相互對齊的最高有效位MSB一起排列,從每個樣本中提取沿著幅度方向的位位置j上的位,提取在各個樣本中沿著幅度方向的位位置j上的位并排列在幀方向上,來形成位序列Ei,并且編碼位序列Ei。
小數(shù)部分的位長度h(=23-n)隨樣本變化。這樣,在掃描幅度中的位位置j上幀方向的位時(j=0到hmax-1;hmax表示在相關(guān)幀中的樣本的小數(shù)部分的最大位長度),如果遇到在位位置i上沒有位的樣本,則跳過該樣本??梢匀缦麓_定是否跳過樣本i在樣本i的幅度中的位位置j上,將樣本的小數(shù)部分的位長度h與值j比較,如果h≥j,則提取位位置上的位,而如果h<j,則跳過該樣本,并且同樣地確定關(guān)于下一樣本(i+1)。
例如,當在幀方向上掃描從MSB起的位位置j=17上的位時,樣本i=0(其小數(shù)部分的位長度是23-6=17)在位位置j上具有最低有效位。然而,樣本i=1(其小數(shù)部分的位長度是23-8=15)在第15個MSB(或位位置j=14)后沒有位。因此,跳過樣本i=1。提取出的15位對幀分組,來形成位序列E16,并且熵編碼位序列E16。對每個其他位位置j執(zhí)行同樣的處理。作為熵編碼,由于算術(shù)編碼和Golomb編碼可以提供分層,因而更有優(yōu)勢。
在解碼器方,可以由在每個解碼后的整數(shù)值信號樣本Y中跟隨在最高有效的“1”后的位數(shù)n來確定整數(shù)部分的數(shù)字位數(shù)n,因此,可以確定幀中的每個差信號Z的尾數(shù)的小數(shù)部分的位長度h(=23-n)。因而,對于每解碼后的位序列Ej,順序地掃描幀中的樣本i的位,并且將沿著幅度方向的位位置j與每個幀的位長度h進行比較。如果j≤h,則可以通過將位序列Ej中的位的值分配到位位置(i,j)來再現(xiàn)圖18所示的尾數(shù)的小數(shù)部分。然后,在每個樣本的小數(shù)部分的前面,可以添加與樣本相關(guān)的n位“0”,從而再現(xiàn)差信號的23位尾數(shù)M。
圖19示出應(yīng)用圖18所示的編碼方法的、圖2所示的壓縮編碼部分17的功能配置。壓縮編碼部分17從差生成部分(見圖2)接收一幀差信號Z的樣本z0…z1023,并且將其各自的整數(shù)部分的數(shù)字位數(shù)n0-n1023存儲在存儲部分17B中。根據(jù)每個樣本i的數(shù)字位數(shù)ni,控制部分17C將輸入差信號Zi的尾數(shù)除了最高有效的n位之外的h位整數(shù)部分(h=23-n)置入緩沖器17A。因此,獲得圖18所示的尾數(shù)的整數(shù)部分的陣列。然后,控制部分17在幀方向上掃描在幅度上的位位置j(=0到hmax-1)上的樣本,提取滿足關(guān)系h≥j的位來形成位序列Ej,并且將位序列Ej提供給壓縮器17D。緩沖器17A、存儲部分17B和控制部分17C構(gòu)成了位序列生成裝置。壓縮器17D無損地壓縮編碼位序列Ej并且輸出碼Cb。
圖20示出用作于圖19所示的壓縮編碼部分17相關(guān)的、圖7中的差信號解碼裝置的展開部分23的功能配置。解碼部分23D解碼接收到的Cb來再現(xiàn)位序列Ej。另一方面,將從數(shù)字位數(shù)計算部分21(圖7)接收的、一幀的整數(shù)部分的數(shù)字位數(shù)n0-n1023存儲在存儲部分23B中,而控制部分23C將從位序列Ej中提取的一位分配到(滿足關(guān)于每個樣本i的小數(shù)部分的數(shù)字位數(shù)hi(=23-ni)的關(guān)系hi≥j的)每個位位置(i,j),并且將得到的位排列存儲在緩沖器23A中,并且對所有樣本重復(fù)相同處理,從而再現(xiàn)圖18所示的小數(shù)部分位陣列。一旦完成一幀的所有位序列Ej(j=0-hmax-1)的位排列,控制部分23C就在緩沖器23A中的每個樣本i的小數(shù)部分的前面添加ni位“0”,來再現(xiàn)差信號的尾數(shù),并且將差信號Z提供給合并部分24(圖7)。緩沖器23A、存儲部分23B和控制部分23C構(gòu)成再現(xiàn)裝置。
在編碼圖18所示的差信號的尾數(shù)時,沿著幀方向?qū)⒃谖晃恢胘上的位分組成位序列Ej,并且編碼位序列Ej。下面將描述掃描位位置的另一方法。在圖21中,以這樣的方式在幀方向上、連續(xù)在幅度方向上預(yù)定數(shù)量的多個位的寬度上掃描和收集位,即,在位位置j+1上的第一個位跟隨在位位置j上的最后一位后面,從而生成多個位序列E2’、E18’等。因此,位序列Ej的數(shù)量小于小數(shù)部分的最大位數(shù)hmax。此外,在該位掃描時,跳過任何滿足關(guān)系hi<j的位位置。此外,在該位掃描方法的情況中,可以根據(jù)hi=23-ni確定每個樣本的小數(shù)部分的數(shù)字位數(shù)。因此,在解碼器方,可以以與上述相同的方式,通過分配位序列Ej中的位來再現(xiàn)小數(shù)部分的位排列。
圖22示出另一位掃描方法。根據(jù)圖21所示的方法,以這樣的方式在幀方向上、連續(xù)在幅度方向上多個位的寬度上執(zhí)行位掃描,即,在位位置j+1上的第一個位跟隨在位位置j上的最后一位后面。然而,根據(jù)圖22所示的方法,從其MSB開始、在幅度方向上多個預(yù)定數(shù)量的位的寬度上掃描樣本i的位,使得在樣本i中的位的寬度中的最后一位后面跟隨著樣本i+1中的多個位的寬度中的第一位。重復(fù)該掃描直到達到幀中的最后一個樣本為止。在該例子中,同樣跳過滿足條件hi<j的任何位位置。
圖23是圖解圖18所示的位掃描時的例外操作的圖。在截斷使得整數(shù)部分為0的情況下,即,在E-E0為負的情況下,需要編碼并發(fā)送包括指數(shù)在內(nèi)的所有32位。因此如圖23所示,在樣本i=3的整數(shù)部分是0(即,n=0)的情況下,壓縮部分17省去對樣本i=3的尾數(shù)位掃描,并且分別地編碼樣本i=3。
在輸入信號樣本X是從整數(shù)值轉(zhuǎn)換來的浮點格式的信號樣本、并且原始整數(shù)值的數(shù)字位數(shù)與截斷的整數(shù)值的數(shù)字位數(shù)不同的情況下,即,在從24位整數(shù)值信號直接轉(zhuǎn)換來的浮點格式的信號樣本通過參照圖9B和10B所述的截斷被編碼成16位整數(shù)值信號時,差信號的尾數(shù)的小數(shù)部分的最高有效的8位可以是非零,盡管其余的位是0。如果例如用圖13所示的方法編碼該輸入信號樣本X,則位序列E0到E7可以是非零,盡管隨后的位序列E8到E21全是“0”,從而可以實現(xiàn)有效的編碼。容易理解的是,如果使用圖21和22所示的方法,則也可以類似地實現(xiàn)有效的編碼。
按照要求在音頻信號處理中所執(zhí)行的,例如,如果24位整數(shù)值信號樣本增加1.5倍,產(chǎn)生的信號樣本被轉(zhuǎn)換成浮點格式的信號,并且將通過截斷得到的信號編碼成16位整數(shù)值信號,增加24位整數(shù)值信號樣本1.5倍使得至少第一個小數(shù)位稱為可以是非零的位。具體地說,跟隨在圖14B所示的樣本X的尾數(shù)MX中的小數(shù)點PD后的第一位可以是非零。因此,差信號的尾數(shù)MZ的可以是非零的位向最低有效位位置增加1位到9位。在這種情況下,跟隨在這9位后的位同樣全是“0”,從而可以使用圖18、21、22和23所示的方法實現(xiàn)有效的編碼。另外,如果所有的位不是0,則非零(即“1”)的出現(xiàn)頻率可以隨著數(shù)字位而變化,在這種情況下,可以應(yīng)用適于該變型的無損壓縮。
在任何情況下,從MSB側(cè)數(shù)起、差信號的尾數(shù)的小數(shù)部分中能夠是非零的數(shù)字位數(shù)是相等的,從而可以實現(xiàn)有效的壓縮編碼。
圖18到23所示的尾數(shù)編碼方法是根據(jù)該方法應(yīng)用到圖2所示的第一實施例的假設(shè)進行描述的。然而,該方法也可以應(yīng)用到參照圖14A到17所述的、通過截斷形成16位整數(shù)值的情況。在這種情況下,圖16所示的壓縮部分17被如圖19所示重新配置,并且圖17所示的展開部分23被如圖20所示重新配置。
此外,可以根據(jù)小數(shù)部分的數(shù)字位數(shù)重新排列樣本以便掃描。例如,將其小數(shù)部分由23位組成的樣本分組在一起,然后將其小數(shù)部分由22位組成的樣本分組在一起,同樣將具有由更少數(shù)字位數(shù)組成的小數(shù)部分的樣本分組在一起??梢砸晕ㄒ坏姆绞綄崿F(xiàn)樣本的反排列,而不需要任何額外的信息,從而可以容易地管理要掃描的樣本的數(shù)量。
在上述第四實施例中,沿著樣本序列方向從(在每幀中與其相互對齊的MSB排列的)差信號Z的尾數(shù)M的小數(shù)部分中提取位序列,并且編碼提取出的位序列。根據(jù)第五實施例,通過排列包含有能夠是非零的位與其相互對其的LSB的小數(shù)部分,形成整數(shù)值樣本序列,并且通過消除樣本序列方向上的冗余來執(zhí)行壓縮編碼。圖24示出第五實施例所應(yīng)用的、圖2所示的編碼器100的配置。
圖24所示的編碼器100與圖2所示的編碼器100在壓縮編碼部分17的配置上不同。如圖24所示,壓縮編碼部分17包括小數(shù)部分提取部分17E、幀內(nèi)平均部分17F、減法器17G和編碼部分17D1和17D2。小數(shù)部分提取部分17E提取從差生成部分14接收的每個差信號樣本Z的尾數(shù)M的最低有效的h位(h=23-n)組成的小數(shù)部分作為一個整數(shù)值樣本F。幀內(nèi)平均部分17F對每幀計算提取的整數(shù)值樣本的平均值Fave,而編碼部分17D1編碼平均值Fave并且輸出得到的碼序列Cb1。減法器17G確定平均值Fave和每個整數(shù)值樣本F之間的差作為誤差樣本ΔF,而編碼部分17D2對誤差樣本ΔF進行預(yù)測編碼,無損地壓縮編碼預(yù)測誤差并且輸出得到的碼序列Cb2。預(yù)測參數(shù)可以作為輔助信息分別地發(fā)送,或者可以適應(yīng)地更新來與編碼器和解碼器之間保持一致。
圖25示出與圖24所示的編碼器相關(guān)的解碼器。該配置除了修改了展開部分23外,與圖8所示的解碼器相同。根據(jù)本實施例,展開部分23包括展開器23B和23C、加法器23D和組裝部分23A。展開器23B展開解碼接收到的碼序列Cb1并且輸出每幀的平均值Fave。展開器23C展開解碼接收到的碼序列Cb2來確定預(yù)測誤差,執(zhí)行預(yù)測解碼并且輸出誤差樣本ΔF。加法器23D將平均值Fave和誤差樣本ΔF相加來再現(xiàn)整數(shù)值樣本F。組裝部分23A使用來自位數(shù)數(shù)字計算部分21A的數(shù)字位數(shù)n從整數(shù)值樣本F組裝差信號Z。如圖8所示,將得到的差信號Z和由整數(shù)值信號樣本Y轉(zhuǎn)換來的浮點格式的信號樣本Y’合并成的信號樣本X。
僅僅通過用圖24中的壓縮編碼部分17和圖25中的展開部分25分別替代圖16中的壓縮編碼部分17和圖17中的展開部分23,該第四實施例就可以應(yīng)用到第三實施例。
如圖26所示,圖2、9、12、16和24所示的編碼器100可以由計算機600實現(xiàn),計算機600包括通過總線68相互連接的RAM 61、CPU 62、硬盤63、ROM 64、發(fā)射機/接收機65、輸入/輸出部分66和音頻/視頻輸入/輸出部分67。
ROM 64存儲用于引導(dǎo)計算機的程序,而硬盤63存儲計算機的操作系統(tǒng)程序。用于執(zhí)行根據(jù)本發(fā)明的編碼器100的功能的程序被預(yù)先從諸如CD-ROM和DVD之類的記錄介質(zhì)71、經(jīng)由CD/DVD驅(qū)動器66讀入硬盤63,或者通過通信線路和發(fā)射機/接收機65預(yù)先下載到硬盤63。
在例如音頻/視頻輸入/輸出部分67外部地接收要編碼的浮點格式的數(shù)字信號樣本X的序列,并且將其臨時存儲在用作緩沖器的硬盤63上。為了開始編碼,將用于執(zhí)行編碼的程序從硬盤63讀入RAM 61,并且由CPU 62執(zhí)行程序。編碼的結(jié)果,例如碼Ca、Cb(或Z)和Cc可以從發(fā)射機/接收機65通過通信線路發(fā)送到外部,或者可以存儲在CD/DVD驅(qū)動器66中的諸如CD-ROM和DVD之類的記錄介質(zhì)71中。
類似地,為了由圖26所示的計算機實現(xiàn)圖8、11、13、17和25所示的解碼器200,將用于執(zhí)行解碼器功能的程序存儲在硬盤63中,并且對通過通信線路在發(fā)射機/接收機65接收到的碼Ca、Cb(或Z)和Cc執(zhí)行解碼程序。編碼的結(jié)果輸出到顯示單元73和揚聲器74來再現(xiàn)。
本發(fā)明不僅可以應(yīng)用于音樂信號,還可以應(yīng)用于聲音信號、圖像信號等。
權(quán)利要求
1.一種用于浮點格式的數(shù)字信號的無損編碼方法,包括(a)將浮點格式的第一信號樣本通過截斷轉(zhuǎn)換成整數(shù)格式的第二信號樣本以便減少其絕對值的步驟;(b)無損地壓縮所述整數(shù)格式的第二信號樣本以輸出第一碼序列并且輸出第一碼序列的步驟;(c)生成與所述整數(shù)格式的第二信號樣本和所述浮點格式的第一信號樣本之間的差對應(yīng)的、浮點格式的差信號的步驟;和(d)生成并輸出與所述浮點格式的差信號中能夠是非零的位的范圍對應(yīng)的第二碼序列的步驟,所述位的范圍由整數(shù)格式的所述第二信號樣本中跟隨在最高有效的“1”后的數(shù)字位數(shù)確定。
2.如權(quán)利要求1所述的編碼方法,其中,所述步驟(d)包括無損地壓縮所述能夠是非零的位的范圍來生成所述第二碼序列的步驟。
3.如權(quán)利要求2所述的編碼方法,其中,所述能夠是非零的位的范圍對應(yīng)于在所述第一信號樣本的尾數(shù)中跟隨在小數(shù)點后的小數(shù)部分。
4.如權(quán)利要求2所述的編碼方法,其中所述步驟(a)包括(a-1)為包含多個浮點格式的第一信號樣本的每個塊檢測第一信號樣本的指數(shù)的最大值的步驟;(a-2)通過根據(jù)檢測到的最大值確定的調(diào)整值調(diào)整相關(guān)塊中第一信號樣本的指數(shù)值、以便從相關(guān)塊中的第一信號樣本轉(zhuǎn)換的整數(shù)值的最大數(shù)字位數(shù)值是預(yù)定值的步驟;(a-3)將調(diào)整了其指數(shù)的相關(guān)塊中浮點格式的第一信號樣本轉(zhuǎn)換成整數(shù)格式的步驟;和(a-4)編碼對應(yīng)于所述調(diào)整值的調(diào)整信息來生成輔助碼的步驟,并且,其中所述輔助碼也在所述步驟(d)中輸出。
5.如權(quán)利要求2所述的編碼方法,其中,所述整數(shù)格式的第二信號樣本的位數(shù)bI等于或小于所述浮點格式的第一信號樣本的尾數(shù)的位數(shù)bM,并且所述生成第二碼序列的步驟包括下面步驟將所述第一信號樣本的尾數(shù)中的、由所述整數(shù)格式的第二信號樣本中跟隨在最高有效的“1”后的位數(shù)確定的、能夠是非零的位的范圍,劃分成包括對應(yīng)于所述尾數(shù)的位數(shù)bM和所述第二信號樣本的位數(shù)bI之間的差的位數(shù)的較高有效位位置子范圍和包括其余位的較低有效位位置子范圍,分別無損地壓縮子范圍,以及將所述第二碼序列作為最后碼輸出。
6.如權(quán)利要求2所述的編碼方法,其中,所述步驟(d)包括下面步驟將在每幀中差信號樣本的尾數(shù)的、作為能夠是非零的位的范圍的小數(shù)部分與其相互對齊的最高有效位一起排列,選擇至少在樣本的排列方向上的位來生成多個位序列,以及無損地壓縮位序列來生成所述第二碼序列。
7.如權(quán)利要求1所述的編碼方法,其中,所述步驟(c)是為每幀確定對應(yīng)于相關(guān)幀中差信號的小數(shù)部分的整數(shù)值樣本的序列的平均值、執(zhí)行關(guān)于從由從每個整數(shù)值樣本的值減去平均值而得到的信號的誤差預(yù)測、無損地壓縮編碼誤差預(yù)測、和編碼該平均值來形成所述第二碼序列的步驟。
8.一種用于浮點格式的數(shù)字信號的解碼方法,包括(a)解碼并且展開第一碼序列來生成整數(shù)格式的第一信號樣本的步驟;(b)根據(jù)由所述第一信號樣本中跟隨在最高有效的“1”后的位數(shù)確定的、能夠是非零的數(shù)字位數(shù)從第二碼序列生成浮點格式的差信號的步驟;(c)將所述整數(shù)格式的第一信號樣本轉(zhuǎn)換成所述浮點格式的第二信號樣本的步驟;和(d)合并所述浮點格式的第二信號樣本和所述浮點格式的差信號來生成浮點格式的第三信號樣本的步驟。
9.如權(quán)利要求8所述的解碼方法,其中,所述步驟(b)是解碼和展開所述第二碼序列來生成與能夠是非零的數(shù)字對應(yīng)的小數(shù)部分、以及使用小數(shù)部分生成浮點格式的差信號的步驟。
10.如權(quán)利要求9所述的解碼方法,還包括解碼輔助碼來生成調(diào)整信息的步驟;和根據(jù)所述調(diào)整信息對所述整數(shù)格式的第一信號樣本或所述合并的信號執(zhí)行數(shù)字調(diào)整的步驟。
11.如權(quán)利要求9所述的解碼方法,其中,所述第二碼序列包括第一碼子序列和第二碼子序列,并且所述生成差信號的步驟(b)包括(b-1)解碼和展開在較高有效范圍的位中的所述第一碼序列的步驟,其中較高有效范圍的位數(shù)是所述整數(shù)格式的第一信號樣本的位數(shù)和所述浮點格式的第三信號樣本的尾數(shù)的位數(shù)之間的差;(b-2)解碼和展開所述較低有效位位置范圍的位中的所述第二碼序列的步驟;和(b-3)通過在較高有效位位置范圍的位后面添加較低有效范圍的位、以形成差信號的尾數(shù)的小數(shù)部分來生成所述差信號的步驟。
12.如權(quán)利要求9所述的解碼方法,其中所述步驟(b)包括(b-1)解碼和展開所述第二碼序列來生成每個幀的多個位序列的步驟;(b-2)通過掃描位來再現(xiàn)相關(guān)幀中的每個差信號的小數(shù)部分、以及將每個所述位序列中的位分配到小數(shù)部分的位長度內(nèi)的位位置的步驟,其中每個位的位置是由相關(guān)幀中的樣本的排列方向上的位置和相關(guān)樣本中幅度方向上的位置定義的,至少是由在樣本的排列方向上的位置定義的,而位長度由對應(yīng)于掃描的位的所述整數(shù)格式的第一信號樣本中跟隨在最高有效“1”后的位數(shù)確定;和(b-3)通過在小數(shù)部分的前面插入與對應(yīng)的第一信號樣本中跟隨在最高有效“1”后的位數(shù)相同數(shù)量的“0”來再現(xiàn)每個差信號的尾數(shù)、從而再現(xiàn)所述差信號的步驟。
13.如權(quán)利要求8所述的解碼方法,其中,所述步驟(b)包括展開解碼所述第二碼序列以獲得每個幀的樣本平均值和除了平均值外、獲得指示在相關(guān)幀中每個樣本的預(yù)測誤差的信號的步驟,通過相加所述平均值和除了平均值外的所述信號來生成小數(shù)部分的步驟,以及通過在小數(shù)部分的前面添加與所述整數(shù)值中跟隨在最高有效的“1”后的位數(shù)相同數(shù)量的“0”、來生成差信號的尾數(shù)的步驟。
14.一種用于浮點格式的數(shù)字信號的無損編碼器,包括整數(shù)格式化部分,用于將輸入的浮點格式的第一信號樣本通過截斷轉(zhuǎn)換成整數(shù)格式的第二信號樣本以便減少其絕對值;第一壓縮部分,用于接收所述整數(shù)格式的第二信號樣本,并且無損地壓縮第二信號樣本以生成第一碼序列;差生成部分,用于生成與所述整數(shù)格式的第二信號樣本和所述浮點格式的第一信號樣本之間的差對應(yīng)的、浮點格式的差信號;和第二碼序列生成裝置,用于生成并輸出與所述浮點格式的差信號中能夠是非零的位的范圍對應(yīng)的第二碼序列,所述位的范圍是由整數(shù)格式的所述第二信號樣本中跟隨在最高有效的“1”后的位數(shù)確定的。
15.如權(quán)利要求14所述的編碼器,其中,所述第二碼序列生成裝置包括第二壓縮部分,用于無損地壓縮所述差信號并且輸出壓縮結(jié)果作為所述第二碼序列。
16.如權(quán)利要求15所述的編碼器,還包括數(shù)字調(diào)整部分,用于為包含多個浮點格式的第一信號樣本的每個塊檢測第一信號樣本的指數(shù)的最大值,并且通過根據(jù)檢測到的最大值確定的調(diào)整值調(diào)整相關(guān)塊中第一信號樣本的指數(shù)值、以便從相關(guān)塊中的第一信號樣本轉(zhuǎn)換的整數(shù)值的最大數(shù)字位數(shù)值是預(yù)定值;和輔助碼生成部分,用于編碼對應(yīng)于所述調(diào)整值的調(diào)整信息來生成輔助碼,并且輸出輔助碼。
17.如權(quán)利要求15所述的編碼器,其中,所述整數(shù)格式的第二信號樣本的位數(shù)bI等于或小于所述浮點格式的第一信號樣本的尾數(shù)的位數(shù)bM,并且所述第二壓縮部分包括第一壓縮編碼部分,用于對在所述第一信號樣本的尾數(shù)中的、由所述整數(shù)格式的第二信號樣本中跟隨在最高有效的“1”后的位數(shù)確定的、能夠是非零的位的范圍中,包括對應(yīng)于所述尾數(shù)的位數(shù)bM和所述第二信號樣本的位數(shù)bI之間的差的位數(shù)的較高有效位位置子范圍進行無損地壓縮編碼,以生成第一碼子序列;和第二壓縮編碼部分,用于對包含其余位的較低有效位位置子范圍進行無損地壓縮編碼,來生成第二碼子序列,第一碼子序列和第二碼子序列作為所述第二碼序列輸出。
18.如權(quán)利要求15所述的編碼器,其中,所述差生成部分包括位序列生成部分,用于通過將在每幀中差信號樣本的尾數(shù)的、作為能夠是非零的位的范圍的小數(shù)部分與其相互對齊的最高有效位一起排列,并且選擇至少在樣本的排列方向上的位來生成多個位序列,并且所述第二壓縮部分無損地壓縮位序列來生成所述第二碼序列。
19.如權(quán)利要求15所述的編碼器,其中,所述差生成部分包括平均值計算部分,用于為每幀確定對應(yīng)于相關(guān)幀中差信號的小數(shù)部分的整數(shù)值樣本的序列的平均值;減法器,用于確定每個整數(shù)值樣本和平均值之間的誤差;和編碼部分,用于執(zhí)行在樣本的排列方向上的誤差預(yù)測,無損地壓縮編碼預(yù)測誤差,以及編碼該平均值來生成所述第二碼序列。
20.一種用于浮點格式的數(shù)字信號的解碼器,包括第一展開部分,用于接收第一碼序列,并且解碼和展開第一碼序列來生成整數(shù)格式的第一信號樣本;差信號解碼裝置,用于根據(jù)由所述第一信號樣本中跟隨在最高有效的“1”后的位數(shù)確定的、能夠是非零的數(shù)字位數(shù)從第二碼序列生成浮點格式的差信號;浮點格式化部分,用于接收所述整數(shù)格式的第一信號樣本,并且將整數(shù)格式的第一信號樣本轉(zhuǎn)換成浮點格式的第二信號樣本;和合并部分,用于接收所述浮點格式的第二信號樣本和所述浮點格式的差信號,并且合并第二信號樣本和差信號來生成浮點格式的第三信號樣本。
21.如權(quán)利要求20所述的解碼器,其中,所述差信號解碼裝置是用來解碼和展開所述第二碼序列來生成與能夠是非零的數(shù)字對應(yīng)的小數(shù)部分、以及使用小數(shù)部分生成浮點格式的差信號的裝置。
22.如權(quán)利要求21所述的解碼器,還包括輔助解碼部分,用于解碼輔助碼來生成調(diào)整信息;和數(shù)字校正部分,根據(jù)所述調(diào)整信息對所述整數(shù)格式的第一信號樣本或所述合并的信號執(zhí)行數(shù)字調(diào)整。
23.如權(quán)利要求20所述的解碼器,其中,所述第二碼序列包括第一碼子序列和第二碼子序列,并且所述第二展開部分包括第三展開部分,用于解碼和展開在較高有效范圍的位中的所述第二碼序列的步驟,其中較高有效范圍的位數(shù)是所述整數(shù)格式的第一信號樣本的位數(shù)和所述浮點格式的第三信號樣本的尾數(shù)的位數(shù)之間的差;第四展開部分,用于解碼和展開所述較低有效位位置范圍的位中的所述第二碼序列;和合并部分,用于通過在較高有效位位置范圍的位后面添加較低有效范圍的位、以形成差信號的尾數(shù)的小數(shù)部分來生成所述差信號。
24.如權(quán)利要求20所述的解碼器,其中所述第二展開部分包括解碼部分,用于解碼和展開所述第二碼序列來生成每個幀的多個位序列;和再現(xiàn)裝置,用于通過掃描位來再現(xiàn)相關(guān)幀中的每個差信號的小數(shù)部分、以及將每個所述位序列中的位分配到小數(shù)部分的位長度內(nèi)的位位置,并且通過在小數(shù)部分的前面插入與對應(yīng)的第一信號樣本中跟隨在最高有效“1”后的位數(shù)相同數(shù)量的“0”來再現(xiàn)每個差信號的尾數(shù)、從而再現(xiàn)所述差信號,其中每個位的位置是由相關(guān)幀中的樣本的排列方向上的位置和相關(guān)樣本中幅度方向上的位置定義的,至少是由在樣本的排列方向上的位置定義的,位長度由對應(yīng)于掃描的位的所述整數(shù)格式的第一信號樣本中跟隨在最高有效“1”后的位數(shù)確定。
25.如權(quán)利要求20所述的解碼器,其中,所述差信號解碼裝置包括展開解碼部分,用于展開解碼所述第二碼序列以獲得每個幀的樣本平均值和對應(yīng)于相關(guān)幀中每個樣本的誤差;加法器部分,用于通過將所述平均值和每個誤差相加來生成小數(shù)部分;和用于通過在小數(shù)部分的前面添加與所述整數(shù)值中跟隨在最高有效的“1”后的位數(shù)相同數(shù)量的“0”、來生成差信號的尾數(shù)的裝置。
26.一種編碼程序,其使得計算機執(zhí)行如權(quán)利要求1到7中任一個所述的、用于浮點格式的數(shù)字信號的無損編碼方法的每一步驟。
27.一種解碼程序,其使得計算機執(zhí)行如權(quán)利要求8到13中任一個所述的、用于浮點格式的數(shù)字信號的解碼方法的每一步驟。
28.一種存儲如權(quán)利要求26或27所述程序的計算機可讀記錄介質(zhì)。
全文摘要
由整數(shù)格式化部分12通過截斷來將浮點格式的信號樣本X轉(zhuǎn)換成24位整數(shù)格式的信號樣本Y,其中每個信號樣本X由1位符號S、8位指數(shù)E和23位尾數(shù)M構(gòu)成,由壓縮部分13將整數(shù)值信號樣本Y編碼成碼序列Ca,并且輸出碼序列Ca。根據(jù)在整數(shù)值信號樣本Y中跟隨在最高有效的“1”后的數(shù)字位數(shù)n,差生成部分14從輸入信號樣本X的尾數(shù)M中提取最低有效的(23-n)位來形成差信號,并且壓縮部分17對差信號Z執(zhí)行加密熵編碼來生成碼序列Cb并且輸出碼序列Cb?;蛘撸梢园凑赵瓨虞敵霾钚盘朲而不經(jīng)壓縮。
文檔編號G10L19/00GK1781253SQ20048001169
公開日2006年5月31日 申請日期2004年6月21日 優(yōu)先權(quán)日2003年6月20日
發(fā)明者守谷健弘, 楊戴 申請人:日本電信電話株式會社