專利名稱:浮點信號可逆編碼方法、解碼方法、其設備、程序及其記錄介質的制作方法
技術領域:
本發明涉及一種用于將承載聲音、音樂或圖像信息的浮點信號樣本(sample)序列壓縮為更小信息量的碼而沒有失真的編碼方法、對應的解碼方法,其編碼裝置、其解碼裝置、以及其程序和其記錄介質。
背景技術:
作為用于壓縮聲音或圖像信息的方法,已知一種不涉及失真的無損編碼方法。
可以通過組合高度壓縮的有損編碼和在有損編碼的再現信號與原始信號之間的差別的無損壓縮來實現高度壓縮的無損數據壓縮。在專利文獻1中已經提出了這樣的組合壓縮方法。下面將簡要描述在所述專利文獻中詳細說明的方法。
在編碼器中,幀形成部分連續地將數字輸入信號(也稱為輸入信號樣本序列)分為幀,每個幀由例如1024個輸入信號樣本組成,并且在幀的基礎上有損地壓縮編碼所述數字信號。這種編碼可以基于適合于輸入數字信號的任何格式,并且可以通過解碼而以某個保真度來再現原始數字輸入信號。
例如,如果數字輸入信號是聲音信號,則可以使用按照ITU-建議G.729推薦的語音編碼。如果數字輸入信號是音樂信號,則可以使用在MPEG-4中使用的變換域加權交織向量量化(Twin VQ)編碼。對從有損壓縮編碼產生的碼進行本地解碼,并且產生用于表示本地解碼后的信號和原始數字信號之間的差的差信號。但是,實際上,沒有本地解碼的必要,而是相反,其足以獲得在原始數字信號和有損壓縮編碼期間產生的量化信號之間的差。差信號的幅度通常比原始數字信號的幅度小得多。因此,與原始數字信號的無損壓縮編碼相比,可以通過差信號的無損壓縮編碼來減少信息量。
為了提高無損壓縮編碼的效率,對于每個都通過符號和幅度表示法(符號和幅度的二進制數)來表示的幀中的差信號的所有樣本的序列,每個位置的比特、即MSB、第二MSB、...和LSB中的每一個的比特沿著樣本序列(即時間序列)被鏈接,以形成相應的比特序列。換句話說,變換比特排列(arrangement)。為方便起見,將由相同比特位置處的相鏈接的1024個比特組成的比特序列稱為“同位(coordinate)比特序列”。另一方面,為方便起見,將表示包括其符號的每個樣本的幅度值的一個字的比特序列稱為“幅度比特序列”。差信號具有小幅度,因此,最高有效比特、或者最高有效比特和隨后的多個比特常常是全“0”。因此,借助于表示通過鏈接這種比特位置處的比特而形成的同位比特序列,可以提高差信號的無損壓縮編碼效率。
對同位比特序列進行無損壓縮編碼。作為無損壓縮編碼,可以使用熵編碼,例如霍夫曼編碼和算術編碼,其利用其中連續出現相同符號(1或0)的序列的出現或頻繁出現。
當解碼時,從無損壓縮編碼產生的碼被解碼,并且對解碼信號執行比特排列的逆變換。也就是說,對于每個幀,將同位比特序列變換為幅度比特序列,并且依序再現所得到的差信號。另外,對從有損壓縮編碼產生的碼進行解碼,并且將解碼信號和再現的差信號一起求和,并隨后依序將每個幀的和數信號(sum signal)鏈接到一起,從而再現原始數字信號序列。
此外,已知有多種無損編碼方法,用于不允許失真的音頻或視頻信息。例如,在非專利文獻1中公開了音樂信息的無損編碼方法。任何傳統方法都是這樣的,其對從信號波形直接得到的PCM信號執行壓縮編碼。
但是,在音樂錄音棚中,有時以浮點格式來記錄和存儲波形。浮點格式中的任何值都被分離為符號、指數和尾數。例如,在圖37中所示的IEEE-754標準浮點格式中,任何值都包括以有效值的降序排列的32個比特,其包括用于符號的1比特、用于指數的8比特和用于尾數的23個比特。以S來表示符號、以小數E來表示由用于指數的8比特表示的值、并且以M來表示尾數的二進制數,則可以以符號和幅度二進制表示法來表示浮點格式的值如下。
(-1)S×1.M×2E-E0(1)按照IEEE-754標準,E0被定義為E0=27-1=127,使得表達式(1)中的“E-E0”可以是落入下面范圍內的任何值-127≤E-E0≤128。
在此,定義當E-E0=-127時所有的比特被設置為“0”,而當E-E0=128時所有的比特被設置為“1”。術語“E-E0=n”表示通過從由公式(1)表示的值的整數部分的數字的數量(比特數量)減去1而獲得的值,即,跟隨在最高有效“1”之后的比特的數量。
在通過浮點格式的數字信號序列表示聲音、音樂或圖像信息的情況下,由“0”和“1”組成的比特序列有可能因為浮點格式的特性而是隨機的。因此,即使執行上述比特排列變換,也不能期望熵壓縮編碼等提供高壓縮比。而且,浮點格式的樣本序列與原始模擬波形大大不同,因此沒有從樣本之間的相關性產生的冗余。因此,即使應用在上述非專利文獻1中公開的無損預測編碼方法,也不能期望更高的壓縮比。
專利文獻1日本中請Kokai公開第2001-44847號非專利文獻1“Lossless Compression of Digital Audio”,Mat Hans,Ronald W.Schafer等,IEEE SIGNAL PROCESSING MAGAZINE,2001年7月,第21-32頁發明內容本發明的目的是提供一種用于浮點格式的信號樣本序列的無損編碼方法和無損解碼方法、其裝置、其程序及其記錄介質。
解決問題的手段根據本發明第一方面的用于浮點格式的信號的無損編碼方法包括以下步驟(a)將浮點格式的第一信號樣本序列轉換為整數格式的第二信號樣本序列;(b)無損壓縮整數格式的第二信號樣本序列以產生第一碼序列;(c)產生浮點格式的差信號,其對應于整數格式的第二信號樣本序列和浮點格式的第一信號樣本序列之間的差;(d)確定哪種編碼處理具有較高的壓縮效率第一編碼處理,其對在浮點格式的差信號的樣本中能夠取非零的范圍的比特進行編碼,所述比特的范圍由整數格式的第二信號樣本序列中的對應樣本中的最高有效的“1”的比特位置確定,或者第二編碼處理,其直接對差信號進行編碼;以及(e)如果確定結果指示第一編碼處理,則通過第一編碼處理來對差信號進行編碼,以產生第二碼序列,或者如果確定結果指示第二編碼處理,則通過第二編碼處理來對差信號進行編碼,以產生第二碼序列。
根據本發明第二方面的用于浮點格式的信號的無損編碼方法包括以下步驟(a)確定哪種壓縮具有較高的壓縮效率幀基礎上的浮點格式的第一信號樣本序列的直接壓縮,或者整數值樣本序列和從第一信號樣本序列得到的差信號的雙信號分離壓縮;(b)如果確定結果指示雙信號分離壓縮,則執行雙信號分離壓縮,步驟(b)包括以下步驟(b-1)將第一信號樣本序列轉換為整數格式的第二信號樣本序列;(b-2)無損壓縮整數格式的第二信號樣本序列,以產生第一碼序列;(b-3)產生浮點格式的差信號,其對應整數格式的第二信號樣本序列和浮點格式的第一信號樣本序列之間的差;(b-4)從浮點格式的差信號產生第二碼序列;或者(c)如果確定結果指示直接壓縮,則直接無損壓縮第一信號樣本序列,以產生第三碼序列;以及(d)產生輔助碼,其指示是執行直接無損壓縮還是兩種類型信號的分離壓縮。
本發明的效果根據本發明的第一方面,如果浮點格式的輸入信號樣本序列X的平均幅度大于預定值,則直接對信號樣本序列X進行無損編碼,而如果平均幅度等于或小于所述預定值,則將輸入信號樣本序列X分離為整數值樣本序列和差信號,并且分別對所述整數值樣本序列和差信號進行編碼。因此,可以提高編碼效率。
根據本發明的第二方面,在將浮點格式的輸入信號樣本序列X分離為被分別編碼的整數值樣本序列Y和差信號Z的情況下,在壓縮效率方面將僅僅對差信號中能夠取非0的比特進行編碼的情況和直接對差信號進行編碼的情況進行比較,并采用具有較高壓縮效率的所述碼之一。因此,可以進一步提高編碼效率。
圖1是根據本發明第一實施例的編碼器的功能圖;圖2是用于圖解圖2所示的整數格式化部分12的操作的圖;
圖3是示出在圖2所示的整數格式化部分12中執行的處理過程的流程圖;圖4示出在整數值的絕對值和表示該整數值的尾數的比特序列之間的對應;圖5示出整數值的絕對值、數字差信號的符號、指數和尾數之間的關系;圖6是示出數字差信號序列的要壓縮編碼的部分的圖;圖7是根據本發明第一實施例的解碼器的功能圖;圖8示出圖1所示的編碼器的修改實施例;圖9是根據本發明第二實施例的編碼器的功能圖;圖10是根據本發明第二實施例的解碼器的功能圖;圖11是根據本發明第二實施例的編碼器的修改的功能圖;圖12是根據本發明第三實施例的編碼器的功能圖;圖13是根據本發明第三實施例的解碼器的功能圖;圖14A是用于圖解將已經從浮點信號得到的、浮點格式的輸入信號X轉換為16比特整數值信號的過程的圖;圖14B是用于圖解將已經從24比特整數值信號得到的、浮點格式的輸入信號X轉換為16比特整數值信號的過程的圖;圖14C是用于圖解將已經從16比特整數值信號得到的、浮點格式的輸入信號X轉換為16比特整數值信號的過程的圖;圖15A是示出在圖9A所示的情況中可以是非零的尾數的比特范圍的圖;圖15B是示出在圖9B所示的情況中可以是非零的尾數的比特范圍的圖;圖16是根據本發明第四實施例的編碼器的功能圖;圖17是根據本發明第四實施例的解碼器的功能圖;圖18是用于圖解通過在時間軸方向上掃描尾數的比特而對尾數進行編碼的過程的圖;圖19示出執行圖18所示的編碼的壓縮部分17的配置;圖20示出可以解碼圖19所示的編碼的解碼器中的擴展部分23的配置;圖21是用于圖解在時間軸方向上掃描比特的另一種方式的圖;圖22是用于圖解在時間軸方向上掃描比特的另一種方式的圖;圖23是用于圖解在時間軸方向上掃描比特的另一種方式的圖;圖24是用于圖解在時間軸方向上掃描比特的方式的圖,其中每個由能夠取非零的比特構成的比特序列的LSB彼此對齊;圖25示出根據本發明第六實施例的編碼器中的壓縮部分17的配置;圖26示出根據本發明第六實施例的解碼器中的擴展部分23的配置;圖27示出根據本發明第七實施例的編碼器中的壓縮部分17的配置;圖28示出根據本發明第七實施例的解碼器中的擴展部分23的配置;圖29是示出圖27所示的壓縮部分17的修改的圖;圖30示出可以取代圖11所示的編碼器中的壓縮部分17和131而使用的機構;圖31示出將圖10所示的解碼器中的擴展部分23和231、選擇部分233和輔助解碼部分234替換以便使解碼器適合于并入圖30所示的機構的編碼器的機構;圖32示出浮點輸入和從浮點輸入的刪截(truncation)產生的整數值之間的關系;圖33示出浮點輸入和從浮點輸入的舍入(rounding)產生的整數值之間的關系;圖34示出浮點輸入和從浮點輸入的修改的舍入產生的整數值之間的關系;圖35示出圖11所示的編碼器的修改;圖36示出了在其上實現本發明的計算機的配置;圖37示出按照IEEE-754的32比特浮點表示的格式。
具體實施例方式
雖然本發明也可以應用到圖像信號、聲音信號等,但是將主要針對本發明被應用到音樂信號的實施例來進行以下描述。另外,雖然可以使用各種浮點格式,但是將在使用按照IEEE-754標準的32比特浮點格式的假設下進行以下描述。
圖1是根據本發明實施例的編碼器的功能配置。根據此實施例的編碼器包括分析和選擇部分100、單信號編碼部分120、雙信號編碼部分110、輔助編碼部分103和輸出部分104。分析和選擇部分100包括效率估計部分101和選擇部分102。雙信號編碼部分110包括整數格式化部分12、壓縮部分13和17以及差產生部分14。
例如,信號源10輸出具有32比特浮點格式的輸入數字信號樣本序列X的形式的音樂信號樣本序列。通過對以24比特整數格式記錄的原始信號執行諸如變換、幅度調整、效果增加和混合之類的處理,并將具有作為處理結果的小數(fractional)部分的所得到的信號轉換為浮點格式,來產生輸入信號樣本序列X,或者,通過將以24比特整數格式記錄的原始信號轉換為32比特的浮點格式,并且對所得到的信號執行如上所述的這種處理,來產生輸入信號樣本序列X。輸入信號樣本序列X被幀形成部分11劃分為幀,每個幀中包含一定數量的樣本,例如1024個樣本。輸入信號樣本序列可以被劃分為超幀(super-frame),每個超幀包含16至32個幀,或者每個所得到的幀可以被細分為一半或四分之一。僅僅有必要的是,將輸入信號樣本序列劃分為一定數量樣本的組,并且這種樣本組將被一般地稱為幀。
輸入信號樣本序列X被分析和選擇部分100分析,然后被傳遞給雙信號編碼部分110和單信號編碼部分120中的任何一個,所述雙信號編碼部分110分別無損地壓縮編碼整數值和其誤差,所述單信號編碼部分120直接無損地壓縮編碼輸入信號樣本序列X。在分析和選擇部分100中,例如,輸入信號樣本序列X被輸入到效率估計部分101,在此,平均部分101a計算相關幀的平均幅度,并且確定部分101b確定平均幅度是否等于或大于預定值,并且基于確定結果來控制選擇部分102。如果平均幅度被確定為等于或大于預定值,則將所述幀的輸入信號樣本序列X提供給雙信號編碼部分110,或者如果平均幅度被確定為小于預定值,則將所述幀的輸入信號樣本序列X提供給單信號編碼部分120。
例如,如果用16比特二進制數來表示輸入信號樣本序列X中的每個樣本的整數部分,則被用作確定部分101b中的確定標準的預定值是8比特的值。該預定值隨著上述整數值而改變,并且基于輸入信號樣本序列的特性而對其進行選擇,以便提高整個壓縮效率。
在雙信號編碼部分110中,浮點格式的信號樣本序列X被輸入到整數格式化部分12,并在樣本的基礎上被轉換為整數格式的信號樣本序列Y。如上所述,在上述示例中,常常通過諸如變換、幅度調整和效果增加之類的處理來從24比特整數格式的原始信號得到數字信號樣本X,使得信號幅度通常不會顯著變化。因此,整數格式化部分12可以僅僅通過舍入、刪截或上舍入小數部分而將信號樣本序列X轉換為整數格式。
作為示例,將參照圖2來說明刪截。雖然整數格式的數字的數量可以是16比特、20比特等,但是將在使用24比特整數格式的假設下進行以下描述。
為了以浮點格式表示波形,可以進行歸一化,使得將32768(=215)的整數值歸一化為1.0,或者將223的整數值歸一化為1.0。但是,這些情況與下述情況區別僅在于指數的值,而不具有本質區別。
例如,如果指數值E是147,則在其較高階一側臨近小數點的比特是從尾數中的MSB起的第20(147-120=20)比特。如圖2A所示,在23比特的尾數M中的最高有效的20比特(M1)對應于跟隨在符號和幅度二進制表示法中的整數部分的最高有效的“1”之后的部分,并且尾數M中的剩余的3個最低有效比特(M2)對應于在小數點下的小數部分。在下面,部分M1將被稱為尾數M的整數部分。因此,如圖2B所示,如果尾數M向最低有效比特位置移動3位,使得尾數的整數部分(M1)中的最低有效比特被定位在整個23比特的尾數中的最低有效比特處,則發生小數點下的這三個比特(M2)的溢出,因此截去這三個比特。然后,在已經通過這種移位而使得未被占據的最高有效的三位(在本示例中是“000”)中的最低有效比特(即,從最低有效比特起的第21比特)被設置為1,其對應于表達式(1)中的“1.M”的“1”,由此提供被刪截的整數值(見圖3C)。或者,可以在移位之前在所述23比特中的最高有效比特之前增加“1”,并且可以將所得到的24比特移動3位。
此外,將所得到的整數值轉換為二的補碼表示法。即,浮點格式的每個信號樣本序列X的符號比特S被按原樣用作最高有效比特,而對于其它23比特,如果符號S是“0”(正),則按原樣使用圖2C所示的23比特,而如果符號S是“1”(負),則將這23比特如圖2D所示邏輯反轉,即將值“0”和“1”互換,然后,向最低有效比特加“1”。作為最高有效比特,符號比特S被按原樣使用。以這種方式,獲得以補碼表示法表示的24比特整數格式的信號樣本序列Y,如圖2E所示。
已經在尾數M包含對應于小數部分的0或更多比特、并且將浮點格式的32比特數字信號樣本轉換為整數格式的24比特數字信號樣本的假設下一般地進行了上述描述。但是,例如,在混合24比特整數格式的多個原始信號以進行處理的情況下,一個樣本可具有比可由24比特表示的最大值大得多的幅度值。在E≥150的這種情況下,作為例外處理,在上述示例中將指數E的值固定到150(E=127+23=150),將例外(exception)信號y提供給差產生部分14,并將作為在其頂部增加了“1”的尾數M的“1M”的最高有效23比特轉換為二的補碼表示法,以產生24比特整數格式的信號樣本序列Y。
整數格式化部分12執行例如圖3所示的處理。首先,檢查是否指數E等于或大于150、即整數部分由23或更多比特構成(S1)。如果整數部分由少于23比特構成,則數字計算部分12A確定尾數的整數部分的數字的數量n(n=E-E0)并輸出結果(S2)。然后,將尾數M向最低有效位置移動(23-n)位,以使得發生小數部分溢出,并將“1”置于從所得到的由n比特構成的整數部分的最低有效比特來看的第(n+1)比特的位置(S3)。然后,將“0”置于在所述第(n+1)比特之前的剩余比特位置,使得整個尾數由23比特構成,并且基于符號比特S,將所得到的23比特轉換為以二的補碼表示法表示的24比特整數格式,由此產生整數格式的信號樣本Y(S4)。
具體地說,將符號比特S按原樣用作最高有效比特,而對于剩余的23比特,如果符號S是“0”(正),則按原樣使用從步驟S3中的移位并向從最低有效比特起的第(n+1)比特增加“1”而產生的整數部分的、從最低有效比特到第23比特的比特,而如果符號S是“1”(負),則將從所述移位和增加“1”產生的整數部分的、從最低有效比特到第23比特的比特反轉,并向所得到的23比特的最低有效比特加“1”,以提供采用補碼表示法的值。如果在步驟S1中指數E等于或大于150,則在步驟S5將指數E設置在150,然后在步驟S4從“1M”的最高有效的23比特產生整數格式的信號樣本Y。
在以上描述中,尾數M被移動(23-n)位,以提供采用符號和幅度二進制表示法的24比特絕對值樣本。或者,可以提取在圖2A中被示出為M1的尾數M的最高有效的n個比特(n=E-E0),在所述n個比特的前部增加“1”,以產生圖2C所示的比特數量(n+1),在所述(n+1)比特的前部增加(22-n)個“0”以產生比特數量23,并隨后在所述23比特的前部增加符號比特S,以產生比特數量24。
在壓縮部分13中,使用波形等的相關性、通過有效的無損壓縮方法,將如上所述由整數格式化部分12產生的整數值信號樣本序列Y作為整數值壓縮編碼,然后其作為碼序列Ca輸出。例如,如上述非專利文獻1中公開的那樣,通過確定在每個樣本的值和預測值(整數值)之間的差,如在“背景技術”部分所述的那樣變換這種差的序列的比特排列,并隨后對所得到的序列、即同位比特序列執行熵編碼,可以實現壓縮部分13中的無損壓縮。也就是說,整數值信號樣本序列Y接近從中得到來自信號源11的輸入信號樣本序列X的原始模擬信號波形。因此,可以通過經由預測或變換消除由于信號樣本之間的相關性而導致的冗余來有效地無損壓縮編碼輸入信號樣本序列X。
差產生部分14產生差信號(誤差)Z,其指示在整數值信號樣本Y和對應的來自信號源11的浮點格式的輸入信號樣本X之間的差。在這個示例中,浮點格式化部分15將整數值信號樣本Y再次轉換為浮點格式的信號樣本Y’,并且加法部分16從浮點格式的原始輸入信號樣本X中減去所得到的浮點格式的信號樣本Y’,由此產生浮點格式的差數字信號Z。
在整數格式的數字信號樣本由24比特構成的情況下,浮點格式化部分15可以將數字信號轉換為32比特浮點格式的輸入信號,而沒有任何模糊或例外。如上所述,浮點格式的原始信號樣本序列X的指數E有可能等于或小于149,并且在這種情況下,指示在信號樣本序列Y’中的樣本和浮點格式的原始輸入信號樣本序列X中的樣本之間的差的差信號樣本Z等于原始輸入信號樣本序列X中的樣本的小數部分的值。
以上關于差產生部分14的描述僅僅意欲幫助理解本發明,并且實際上,不必將整數值信號樣本序列Y轉換為浮點格式。輸入樣本序列X及其尾數的整數部分的數字數量n被輸入到差產生部分14,并且如果沒有提供例外信號y,則將在浮點格式的輸入樣本序列X中的每個樣本的尾數M的符號S、指數E和(23-n)個最低有效比特分別用作每個差信號樣本Z的尾數的符號S、指數E和(23-n)個最低有效比特,并且將所述尾數的剩余的最高有效的n個比特全部設置為“0”。所述尾數的整數部分的數字數量n(n=E-E0)等于跟隨在整數值信號樣本序列Y中的對應樣本的最高有效的“1”之后的數字數量。由于整數值信號樣本的比特長度是固定的,因此當確定在最高有效的“1”之前的數字數量時,尾數的整數部分的數字數量也被確定。也就是說,如果查明了整數值信號樣本中的最高有效的“1”的位置,則也可以查明對應的浮點信號樣本的尾數的整數部分的數字數量。如果提供了例外信號y,則差信號樣本Z的符號由輸入樣本的符號S構成,差信號樣本Z的指數被設置為E-150,并且差信號樣本Z的尾數由輸入樣本序列X的尾數和信號樣本序列Y’之間的差構成。
壓縮部分17對浮點格式的對于整數值信號樣本序列Y和輸入樣本序列X的每個樣本組合的差信號Z、即來自差產生部分14的浮點格式的差信號Z執行無損壓縮編碼,并輸出碼序列Cb。例如,壓縮部分17使用從整數格式化部分12輸出的尾數的整數部分的數字數量n,來僅僅對每個樣本可以取除了“0”以外的值的、浮點格式的差信號Z中的數字執行無損壓縮編碼。浮點格式的輸入樣本序列X中的每個樣本表示如下X=1.M×2n=XW.XF如果XW=1MI(其前部被加上“1”的MI)指示采用二進制表示法的整數部分,并且XF=MF指示小數部分,則對應于尾數M中的整數部分MI的比特和對應于小數部分(小數值)MF的比特彼此相關,如圖4所示。在此圖中,尾數M被示出為包括在表達式(1)中的M的前部的一個比特的24比特值,并且為方便起見示出了采用符號和幅度二進制表示法的小數點PD的位置。
當整數部分的絕對值XW是0時,表達式(1)可以被分類為兩種情況E-E0=-127的情況;和-126≤E-E0≤-1的情況。前一種情況是E=0的特殊情況,其中,尾數M的所有23個比特“x23...x1”構成小數部分MF,并且輸入信號樣本序列X中的樣本的尾數的23個比特被定義為全“0”。在-126≤E-E0≤-1的情況中,尾數組成小數部分,但其所有比特不全是“0”。在任何情況下,在E-E0取負值的情況中,整數值信號樣本序列Y中的樣本的所有比特都是“0”,并且差信號Z與輸入信號樣本序列X中的樣本相同,使得浮點格式的信號樣本序列X中的樣本的所有32個比特將被編碼。
當所述整數值的絕對值XW是1時,在比尾數M的第23比特高一比特的位置處的比特“1”(以下稱為第24比特)表示整數值XW,并且尾數M的23比特“x23...x1”表示小數部分MF。
當所述整數值的絕對值XW是2至3時,由第24比特“1”和第23比特x23組成的兩個比特“1x23”表示整數值XW,其中,比特x23表示尾數M中的整數部分MI,而剩余的22比特“x22...x1”表示小數部分MF。
當絕對值XW是4至7時,由第24比特“1”、第23比特x23和第22比特x22組成的三個比特“1x23x22”表示整數值XW,其中,比特“x23x22”表示尾數M中的整數部分MI,而剩余的21比特“x21...x1”表示小數部分MF。
當絕對值XW是2k-1至2k-1時,由第24比特“1”和比特“x23...x23-(k-2)”組成的k個比特表示整數值XW,其中,比特“x23x22...x23-(k-2)”表示尾數M中的整數部分MI,而剩余的(23-k)比特“x23-(k-1)...x1”表示小數部分MF。
由于通過從32比特浮點格式的輸入樣本序列X中減去從整數值信號樣本序列Y轉換的32比特浮點格式的樣本序列Y’而產生差信號Z,因此差信號Z如圖5所示。在對應于E-E0取負值的上述情況的絕對值XW是0的情況下,差信號Z的符號S、指數E和尾數M全部與輸入樣本X的那些相同。
在所述整數值的絕對值XW是1的情況下,樣本序列Y’中的樣本的符號S和指數E與樣本序列X中的對應樣本的那些相同,并且所述樣本的尾數M是0。在這種情況下,也執行指數的相減。因此,差信號Z的符號S和指數E總是與樣本序列X中的對應樣本的那些、即分別為0和0相同,并且差信號Z的尾數M與樣本序列X中的樣本的尾數M相同。
在整數值XW是2至3的情況中,樣本Y’的符號S和指數E與樣本X的那些相同,而對于樣本Y’的尾數M,其第23比特x23與樣本X的尾數M的相同,并且構成其小數部分“x22...x1”的比特全部是“0”。因此,差信號的符號S和指數E總是0,尾數M中的最高有效比特(第23比特)總是0,并且,構成小數部分“x22...x1”的剩余比特與樣本X的各個對應比特相同,并根據樣本X而變化。
類似地,在樣本X的整數值XW是2k-1到2k-1的情況下,差信號Z的符號S和指數E總是0,而對于其尾數M,對應于樣本X的尾數M的整數部分的最高有效(k-1)比特“x23...x23-(k-2)”總是0,并且剩余的23-(k-1)比特“x23-(k-1)...x1”與樣本X的尾數M的各個對應比特相同,并根據樣本X而變化。以這種方式,根據整數格式的信號樣本序列Y的整數值的范圍、即整數值的數字數量n+1,確定可以是非0的差信號Z的數字數量h(h=23-n)。
由于這種關系,壓縮部分17使用從整數格式化部分12輸入的尾數的整數部分的數字數量n,來僅僅對浮點格式的差信號Z中可以是非0的最低有效的h(h=23-n)比特執行無損壓縮編碼。也就是說,如果尾數的整數部分的數字數量n是0,則對指數E和尾數M的所有比特進行無損壓縮編碼,而如果數字數量n不是0(n≠0),則僅對尾數M的最低有效的h(h=23-n)比特進行無損壓縮編碼。由以上描述將理解可以通過向差產生部分14輸入輸入信號樣本X和尾數的整數部分的數字數量n來產生差信號Z。
如上所述,當輸入信號樣本序列X中的樣本的表達式(1)中的E-E0的值是從-127到0時,差信號Z與輸入信號樣本X相同。因此,壓縮部分17將輸入信號樣本X的32個比特編碼為差信號Z。當E-E0的值是1到22時,在差信號樣本序列Z(=z1,z2,z3,...)如圖6所示的情況下,例如,除了n≠0的情況之外,僅對由可以是非0的比特構成的部分MD進行編碼。可以通過可以是非0的h比特的諸如霍夫曼編碼之類的熵編碼、或通過全部比特的通用編碼,來實現可以是非0的比特的編碼。也就是說,僅僅圖6的陰影部分可以被適當地分組為樣本或幀,并在樣本的基礎上或在幀的基礎上被簡單地無損壓縮編碼,例如被熵編碼。由于包含能夠取非0的比特的每個樣本的部分MD的數字數量(比特數量)h被確定為h=(23-n),因此即使每個幀中的所有部分MD被編碼為一系列比特序列,也可以根據在每個樣本中能夠取非0的比特數量h來再次分離在解碼器一側解碼的這一系列的比特序列。
作為整數格式的信號樣本序列Y的編碼結果,在碼Ca中包含符號S,因此,當對差信號Z進行編碼時,沒有必要編碼和發送符號S。另外,由于可以在接收機一側從跟隨在整數值信號樣本序列Y中的每個樣本的、除符號比特以外的最高有效的“1”之后的比特數量n來確定n(=E-E0),因此不必發送比特數量n。
差信號Z有時具有大量跟隨在小數點之后的數字,并且在這種情況下,可能降低編碼效率。因此,在圖1所示的實施例中,將從差信號Z中能夠取非0的比特的編碼得到的碼序列的信息量與不被編碼的、能夠取非0的比特的信息量進行比較,并且如果后一信息量更小,則可以將能夠取非0的比特輸出為碼序列Cb而不被編碼。或者,在對其所有比特進行編碼的情況和不執行編碼的情況之間,比較差信號樣本Z的信息量,并且可以選擇較小信息量的差信號Z。
如上所述,在浮點格式的信號樣本序列X的尾數E保持E≥150的例外情況中,整數格式化部分12向差產生部分14提供例外信號y,其指示指數E被固定為150,并且差產生部分14產生浮點格式的差信號Z,其指數由固定指數值150和信號樣本序列X中的樣本的指數E之間的差(E-150)構成,并且其尾數由尾數M中的差構成。壓縮部分17無損地壓縮編碼差信號Z,并輸出所得到的碼序列Cb。
如圖1所示,在單信號編碼部分120中,浮點格式的輸入信號樣本序列X在壓縮部分121中被直接無損壓縮編碼,并且從其輸出為碼序列Cc。可以通過例如8比特通用編碼來實現無損壓縮編碼。分析和選擇部分100中的輔助編碼部分103對關于選擇了雙信號編碼部分110和單信號編碼部分120的哪一個的輔助信息進行編碼,并將該信息作為輔助碼Cd輸出。將碼序列Ca和Cb以及輔助碼Cd、或者碼序列Cc和輔助碼Cd從輸出部分104輸出,以將其發送或記錄在記錄介質中。
圖7示出了與圖1所示的編碼器相關的、根據本發明的解碼器的實施例。
在輸入端201處輸入碼序列,并且輔助碼提取部分202從碼序列的每個幀提取輔助碼Cd。根據輔助碼Cd來控制分離部分203。如果輔助碼Cd指示雙信號編碼,則分離部分203分離經由輸入端201接收的碼序列Ca和Cb,并向雙信號解碼部分210傳送所述碼序列,或者如果輔助碼Cd指示單信號編碼,則分離部分203將碼序列Cc從經由輸入端接收的碼序列分離,并向單信號解碼部分220傳送碼序列Cc。
輸入雙信號解碼部分210的輸入碼序列Ca在擴展部分21中被無損地擴展解碼。這一無損擴展解碼對應于圖1所示的壓縮部分13中執行的無損壓縮編碼,并用于執行無損壓縮編碼的逆處理。因此,這種無損擴展解碼產生24比特整數格式的數字信號樣本序列Y。另外,擴展部分21中的數字數量輸出部分21A將在每個擴展解碼的樣本中跟隨在最高有效的“1”之后的數字數量n確定為浮點格式的對應數字信號的尾數的整數部分的數字數量n,并輸出數字數量n。該數字數量n被輸入到擴展部分23。
擴展部分23無損地擴展解碼輸入碼序列Cb。這種無損擴展解碼對應于在圖1所示的壓縮部分17中執行的無損壓縮編碼。因此,在擴展部分23中,組配(assembly)部分23A根據數字數量n,將擴展解碼后的比特的序列組配為對于每個樣本的32比特浮點格式的差(誤差)數字信號,并將所得到的數字信號作為差信號Z輸出。
根據從擴展部分21提供的幀中的第一樣本的數字數量n,如果第一樣本的比特數量n不保持n=0,則組配部分23A從由擴展部分23擴展解碼的比特序列的23比特尾數M提取最低有效的h(h=23-n)比特,并將所提取的h比特組配為32比特浮點格式的差信號z1,其由圖6所示的第一樣本z1的陰影部分構成。將符號S的1比特和指數E的8比特全部設置為0,并且構成對應于圖6示出的整數部分的尾數M的部分M1的所有比特設置為0。對于下一個樣本,根據數字數量n(n≠0),從擴展解碼后的比特序列提取h(h=23-n)比特,以形成32比特浮點格式的差信號Z。類似地,圖6示出的樣本序列z2、z3、...被連續組配和輸出。如果它保持n=0,則從擴展解碼后的比特序列中提取指數E的8比特和尾數M的23比特,并將其組配為浮點格式的數字信號。解碼后的差信號Z的符號比特S總是0,除了n=0的情況之外,其指數E的比特總是0,其尾數M的最低有效的h(h=23-n)比特可以是非0的,并且其尾數M的剩余比特總是0。因此,在嚴格的意義上,所述差信號不是采用浮點表示法。但是,在本說明書中,將所述差信號稱為浮點格式的差信號。
浮點格式化部分22將來自擴展部分21的24比特整數格式的信號樣本序列Y轉換為32比特浮點格式的單樣本序列Y’。組合部分24將信號樣本序列Y’中的樣本與來自擴展部分23的浮點格式的各個差信號Z組合,以再現浮點格式的信號樣本序列X。所再現的信號樣本序列X中的每個樣本的符號與信號樣本序列Y’中的對應樣本的符號相同、即與解碼后的整數格式的信號樣本序列Y中的對應樣本的符號相同。除了n=0的情況之外,樣本序列X中的每個樣本的指數E與信號樣本序列Y’中的對應樣本的指數E相同,樣本序列X中的每個樣本的尾數M的最高有效的n(n=23-h)比特與信號樣本序列Y’中的對應樣本的尾數M的最高有效的n比特相同,并且樣本序列X中的每個樣本的剩余的最低有效的h(h=23-n)比特與差信號Z的最低有效的h比特相同。
通過對應于在圖1所示的壓縮部分121中執行的壓縮處理的無損擴展解碼處理,將輸入到單信號解碼部分220的碼序列Cc直接解碼為浮點格式的原始信號樣本序列X。
幀組合部分205將由雙信號解碼部分210和單信號解碼部分220解碼的浮點格式的信號樣本序列X依序組合為浮點格式的信號樣本序列。
圖8示出了圖1所示的編碼器的修改的實施例。該編碼器不使用圖1所示的分析和選擇部分100。在這種情況下,雙信號編碼部分110和單信號編碼部分120均對輸入信號樣本序列X進行編碼,并分別將碼序列Ca和Cb以及碼序列Cc輸入分析和選擇部分100’,在分析和選擇部分100’中,通過效率計算部分100c來計算每個幀的壓縮效率。例如,對于每組碼序列Ca和Cb以及碼序列Cc,計算相關幀的總碼長度,并且比較和確定部分100d將總碼長度相互比較,并將較短總碼長度的碼序列確定為以較高效率壓縮的碼序列。確定結果被傳送給輔助編碼部分103,并且輔助編碼部分產生碼Cd。另外,根據比較結果來控制輸出部分,并且輸出部分選擇性地輸出碼集(code set)(Ca,Cb,Cd)或碼集(Cc,Cd)。剩余的配置與圖1所示的配置相同,因此將省略對其的進一步描述。如圖中的虛線所示,可以任選地按原樣輸出差信號Z,并且可以輸出其壓縮效率最高的碼集(Ca,Cb,Cd)、(Ca,Z,Cd)和(Cc,Cd)之一。作為適合于圖8所示的解碼器,可以按原樣使用圖7所示的解碼器。
在圖1所示的編碼器中,如果壓縮部分17直接無損地壓縮編碼浮點格式的差信號Z,則圖7所示的解碼器中的擴展部分23不使用數字數量n,并直接解碼浮點格式的差信號Z。在執行這種直接無損壓縮編碼和解碼的情況下,整數格式化部分12可以不僅通過刪截還可以通過舍入和上舍入來執行整數格式化。
有時有這樣的情況,其中,為方便起見,原始的24比特或16比特的整數值PCM信號被轉換為浮點數,以形成要編碼的序列,而不是使用普通浮點數信號來產生要編碼的序列。在這種特殊浮點序列的情況下,上面參照第一實施例描述的可以是非0的比特消失。因此,來自差產生部分14的浮點格式的差(誤差)信號Z的符號S、指數E和尾數M全部是0,并且不必發送差信號Z。在這種情況下,例如,使用兩個比特作為輔助信息,并且僅僅需要通知解碼器如果這兩個比特是“00”,則表示原始數字信號是16比特整數值信號樣本,如果這兩個比特是“01”,則表示原始數字信號是24比特整數值信號樣本,而如果這兩個比特是“10”,則表示原始數字信號是除了上述信號樣本以外的信號樣本。為此,在從壓縮部分17輸出的碼序列Ca的前部增加2比特的輔助信息。只有在前兩種情況下所述2比特的輔助碼作為碼序列Cb輸出、或者在后一情況下輔助碼與碼序列Cb一起輸出,才可以實現有效壓縮。
根據本發明的第二實施例,浮點格式的信號樣本序列X總是被轉換為整數格式的信號樣本序列Y。但是,通過被期望提供較高壓縮效率的兩種無損壓縮編碼處理之一來對浮點格式的差信號Z進行編碼。具體地說,一種是如參照第一實施例描述的那樣、根據整數格式的信號樣本序列Y中的每個樣本的數字數量來僅僅對浮點格式的差信號中能夠取非0的比特進行無損編碼的處理。另一種是直接對浮點格式的差信號進行無損壓縮編碼的處理。
圖9示出了根據第二實施例的編碼器的功能配置。在該圖中,用與圖1中的附圖標號相同的附圖標號來表示對應于圖1示出的部分的部分,并且將避免對其描述的重復(這同樣適用于其它實施例)。在第二實施例中,為了對差信號Z進行編碼,提供了壓縮部分17,其使用整數值樣本中跟隨在最高有效的“1”之后的數字數量n;以及壓縮部分131,其直接地無損壓縮編碼浮點格式的差信號Z。尾數M的整數部分的數字數量n(整數值樣本中跟隨在最高有效的“1”之后的數字數量)被從整數格式化部分12輸入分析部分132。確定部分132a將數字數量n與參考值相比較,并且根據比較結果來控制選擇部分133。差信號Z的尾數M的最高有效的n比特是“0”,并且當數字數量n增大時,壓縮部分17的壓縮效率增大。因此,如果數字數量n等于或大于參考值,則向壓縮部分17提供差信號Z,或者如果數字數量n小于參考值,則向壓縮部分131提供差信號Z。然后,將對應于由壓縮部分17或131無損壓縮編碼的差信號Z的碼序列Cb輸入到輸出部分104。
如果數字數量n大,即如果幅度大,則如上面參照圖5所述,每個差信號樣本Z中能夠取非0的比特數量h(=23-n)小,因此,可以有效地壓縮差信號Z。另一方面,如果數字數量n小,即如果幅度小,則差信號Z中能夠取非0的比特數量h大,因此,更有利的是使用壓縮部分131,其例如通過典型的8比特通用編碼來無損壓縮編碼浮點格式的差信號Z。例如,在每個差信號樣本的23比特尾數的前部(或后部)加上一個比特“0”,以形成24比特的比特序列,所述比特序列被劃分為3個碼元(即編碼單位),每個碼元包含8比特,并且每個8比特碼元被壓縮編碼。或者,可以在8比特的基礎上僅僅分離在每個差信號樣本的尾數中能夠取非0的比特。如果所述比特的數量不能被8整除,則向比特序列添加所需數量的比特“0”,將所得到的比特序列劃分為8比特的碼元,并且對每個碼元進行壓縮編碼。例如,如果在樣本的尾數中能夠取非0的比特數量是11,則向所述比特序列添加5個比特“0”,并將所得到的比特序列劃分為兩個8比特碼元。
例如,如果整數格式的數字信號樣本序列Y的幅度長度是16比特,則在確定部分132a中使用的參考值是10。與在第一實施例中的確定部分101b中使用的預定值一樣,根據各種條件來確定參考值,以便實現高壓縮效率。
可以對每個樣本進行在壓縮部分17和131之間的選擇。或者,可以這樣的方式來對于每個幀進行選擇分析部分132中的平均部分132b對于每個幀中的整數格式的信號樣本計算跟隨在最高有效的“1”之后的平均數字數量n,并且如果該平均數等于或大于參考值,則選擇壓縮部分17,或者如果該平均數小于參考值,則選擇壓縮部分131。在對于每個樣本執行在壓縮部分17和131之間的選擇的情況中,例如,壓縮部分17耦接輸入幀中的每個所選樣本中能夠取非0的比特,并且執行所耦接的比特的熵編碼。由于可以從在解碼器一側解碼的整數格式的信號樣本來確定數字數量n,因此即使當基于數字數量n來執行在壓縮部分17和131之間的選擇時,也不必發送指示已經選擇了壓縮部分17和131中的哪一個的輔助碼。
圖10示出了與圖9所示的編碼器相關聯的解碼器的實施例,其中,用與圖7中相同的附圖標號來表示對應于圖7所示的解碼器的那些部分的部分。被分離部分203分離的碼序列Ca總是被輸入到擴展部分21,并被解碼和擴展為整數格式的信號樣本序列Y。為了擴展碼序列Cb,除了擴展部分23之外,還提供了擴展部分231。
將在來自擴展部分21的整數格式的數字信號樣本中跟隨在最高有效的“1”之后的數字數量n輸入到分析部分232。分析部分232被配置為與圖9所示的分析部分132相同。確定部分232a將數字數量n與參考值相比較,并且控制選擇部分233,以便如果數字數量n等于或大于參考值,則向擴展部分23提供碼序列Cb,而如果數字數量n小于參考值,則向擴展部分231提供碼序列Cb。如上面參照第一實施例所述,擴展部分23從解碼和擴展后的比特序列中提取能夠取非0的h比特,所述數量h通過數字數量n來確定,并且,組配部分23a將所提取的比特組配為浮點格式的差信號Z。
擴展部分231通過對應于在圖9所示的壓縮部分131中執行的處理的解碼和擴展處理,將碼序列Cb直接解碼并擴展為浮點格式的差信號Z。在圖9所示的分析部分132使用數字數量n的平均數的情況下,分析部分232中的平均部分232b計算與參考值相比較的數字數量n的平均數。根據比較結果,控制選擇部分233來向擴展部分23或231提供碼序列Cb。如在參照圖7所述的情況中那樣,擴展部分23將碼序列Cb解碼為由能夠取非0的比特組成的比特序列。從該比特序列,使用數字數量n來再現差信號的尾數,然后,組配浮點格式的差信號Z。
如上所述,在本實施例中,雖然差信號Z是浮點格式的,但是由編碼器中的差產生部分14產生的浮點格式的差信號Z的指數和符號的所有比特都是“0”。因此,指數和符號不被發送給解碼器,并且該解碼器從由擴展部分23解碼的能夠取非0的比特組配差信號Z的尾數,并隨后通過向所述尾數添加由“0”比特構成的指數和符號比特“0”來組配浮點格式的差信號Z。
擴展部分231接收碼序列Cb作為碼序列Cb’,并執行作為在圖9所示的壓縮部分131中執行的編碼的逆處理的解碼處理,從而直接形成差信號Z。加法器24對這些差信號Z的任何一個與對應于整數格式的樣本Y的浮點格式的樣本Y’求和,從而形成浮點格式的信號樣本X。
圖11示出了圖9所示的實施例的修改,其中,用與圖9中相同的附圖標號來表示對應于圖9的那些部分的部分。在此修改的實施例中,取代使用圖9所示的分析部分132和選擇部分133的是,在壓縮部分17和131中執行壓縮編碼,確定哪個壓縮部分可以實現具有較高壓縮效率的編碼,并且輸出由較高壓縮效率的壓縮部分產生的碼。具體地說,可以通過壓縮部分17和131二者來無損地壓縮編碼差信號Z,可以將所得到的碼序列Cb和Cb’輸入到分析和選擇部分134,效率計算部分134a和確定部分134b可以確定壓縮部分17和131的哪一個可以對于相關幀以較高的壓縮效率對差信號Z進行編碼,并且,可以從輸出部分104輸出較高壓縮效率的碼序列,作為碼序列Cb。在這種情況下,必須從輔助編碼部分103輸出輔助碼Ce,所述輔助碼Ce指示壓縮部分17和131的哪一個已經產生了碼序列Cb。
適合于圖11所示的編碼器的解碼器是圖10所示的解碼器,其中去除了分析部分232并提供了由虛線示出的輔助解碼部分234。輔助解碼部分234將由分離部分203分離的輔助碼Ce解碼,并且根據解碼結果,控制選擇部分233向擴展部分23或231提供碼序列Cb。剩余的操作與被適配為用于圖9示出的編碼器的解碼器的操作相同。
圖11所示的分析和選擇部分134以及輔助編碼部分103可以被添加到如圖9所示配置的編碼器中,使得有可能在基于數字數量n的確定和基于壓縮效率的確定之間進行選擇,并且,除了分析部分232之外,還可以在圖10所示的解碼器中提供輔助解碼部分234,使得可以使用所述確定方法的任何一種。但是,在編碼器和解碼器中必須使用對應的確定方法。
本發明的第三實施例是圖1所示的第一實施例和圖9所示的第二實施例的組合。圖12示出了根據第三實施例的編碼器的功能配置。在該圖中,對應于圖1、8、9和11所示的那些部分的部分用與那些圖中相同的附圖標號來表示,并且將避免對其描述的重復。按照這個實施例,根據由選擇部分102和133進行的選擇的組合,選擇并輸出碼序列集(Ca,Cb,Cd)、(Ca,Cb’,Cd)和(Cc,Cd)中的任何一個。
可以通過按照與如圖11示出的實施例中的虛線所示相同的方式來另外提供圖8示出的壓縮部分121、并通過分析和選擇部分134選擇具有最高壓縮效率的碼序列集之一,來進行從這三個碼序列集中的選擇。
圖13中示出了根據第三實施例的解碼器。在該圖中,用相同的附圖標號來表示對應于圖7和圖10中示出的那些部分的部分,并且將省略對其的重復描述。
根據上述第一實施例,提供了一種編碼器,其通過刪截浮點格式的輸入信號樣本X的小數部分而將其轉換為整數格式,并且利用在差信號Z的尾數中的整數部分的所有比特都是“0”的事實來僅僅對差信號Z中能夠取非0的比特進行編碼,從而提高壓縮效率。另外,根據第二實施例,提供了一種編碼器,其選擇在僅對能夠取非0的比特進行編碼的情況中的壓縮效率和在對所有比特進行編碼的情況中的壓縮效率中的較高的一個。根據第四實施例,除了刪截小數點之后的部分之外,還刪截整數部分的預定數量的比特以產生整數值信號樣本Y。在下述示例中,將示出這樣的情況,其中,在通過刪截跟隨在小數點之后的比特而進行的向16比特整數值的轉換中,還刪截8比特。但是,本發明可以被應用到向由17比特到23比特構成的整數值的任何轉換。
根據第四實施例,可以通過相同的處理來對浮點格式的輸入信號樣本X進行編碼,而不管從中得到輸入信號樣本X的原始信號是浮點信號、24比特整數值信號還是16比特整數值信號。但是,為了便于解釋操作原理,將按順序描述從浮點信號得到輸入信號樣本X的情況、從包含一個符號比特的24比特整數值信號得到輸入信號樣本X的情況、以及從包含一個符號比特的16比特整數值信號得到輸入信號樣本X的情況。
參考圖14A,將描述從浮點信號得到的輸入信號樣本X向16比特整數值的轉換和差信號Z的產生。在該圖中,值“x”可以是“0”或“1”(即,值“x”可以是非零的)。“MX”表示浮點格式的輸入信號樣本X的尾數的23比特,并且“PD”表示小數點的位置,所述小數點指示在由最高有效的n(n=E-E0)比特組成的整數部分和小數部分之間的邊界。通過將樣本X的指數E降低到E-8,尾數MX的小數點PD的位置向最高有效比特位置移動8位。因此,在圖14A所示的示例中,尾數MX的最高有效的2(n-8=2)比特“xx”構成移位后的尾數的整數部分。然后,在構成整數部分的2比特的前部添加比特“1”,并將所得到的比特序列“1xx”用作16比特整數值信號樣本Y的最低有效比特。
將16比特整數值信號樣本Y中的每個樣本向最高有效比特位置移動8位,也就是說,在16比特整數值信號樣本Y的后部添加8個比特“0”,然后,將所得到的信號樣本序列轉換為浮點格式的信號樣本序列Y’。因此,所得到的浮點格式的信號樣本序列Y’的指數E已經被加上了8,并且等于輸入信號樣本序列X的指數E。通過以下方式來形成信號樣本序列Y’的尾數MY’將已經向最高有效比特位置移動8位的整數值信號樣本序列Y的、跟隨在最高有效的“1”之后的整數部分的比特、即本示例中的2比特“xx”設置為最高有效比特,并且將所有隨后的比特設置為“0”。為方便起見,圖14A示出了在還要移動8位的樣本序列Y中跟隨在最高有效的“1”之后的整數部分和從轉換產生的浮點格式的信號樣本序列Y’的尾數MY’之間的關系。差信號Z的尾數MZ是在尾數MX和尾數MY’之間的差。差信號Z的尾數MZ的最高有效的(n-8)比特或本示例中的最高有效的2比特是“00”,并且隨后的比特(小數部分)等于尾數MX的各個對應比特。也就是說,構成尾數MZ的整數部分的、跟隨在最高有效比特“xx”之后的所有比特可以是非0。
對于差信號Z,僅必須對可以是非0的尾數M的最低有效的23-(n-8)比特進行編碼。總是被設置為0的尾數MZ的最高有效的(n-8)比特的數量與在接收側解碼的整數值信號樣本序列Y中的、跟隨在最高有效的“1”之后的比特的總數量相同。如圖15A所示,當整數部分的比特數量(n-8)增大時,由可以是非0的比特構成的尾數M的部分減小。
圖14B示出了從24比特整數值信號得到浮點格式的輸入信號樣本序列X的情況。因此,樣本序列X的尾數MX與圖14A所示的尾數MX不同之處在于跟隨在小數點PD之后的所有比特都是“0”,如圖14B所示。此外,在圖14B中,輸入信號樣本X的指數E被減小為E-8,從而將小數點PD的位置向最高有效比特位置移動8位,因此,所得到的16比特整數值信號樣本序列Y與圖14A所示的情況中相同。因此,從整數值信號樣本序列Y轉換的浮點格式的信號樣本序列的尾數MY’也與圖14A所示的情況中相同。
但是,差信號的尾數MZ是尾數MX和MY’之間的差,并且如圖14B所示,差信號Z的尾數MZ的整數部分是“00”,并且隨后的8比特表示可以是非0的比特的范圍,并且進一步跟隨這8比特的比特全部是“0”。當構成整數部分的比特的數量增大時,可以是非0的比特的范圍向最低有效比特位置移動,如圖15B所示。
圖14C示出了從包含一個符號比特的16比特整數值信號樣本得到浮點格式的輸入信號樣本的情況。因此,在23比特的尾數MX中,跟隨在小數點PD之后的8比特全部是“0”,并且跟隨在這8比特之后的比特也全部是“0”。當跟隨在小數點之后的數字數量h根據h=23-n而隨著n值變化時,圖14C示出的情況與圖14B示出的情況不同之處在于數字數量h不會變為小于8。
在圖14C中,輸入信號樣本序列X的指數E被減小為E-8,從而將小數點PD的位置向最高有效比特位置移動8位,并且按照與圖14A和14B所示相同的方式來使用移位后的尾數的整數部分“xx”產生16比特整數值信號樣本序列Y。因此,從樣本序列Y轉換的浮點格式的樣本序列的尾數MY’也與在圖14A和14B所示的情況中相同。另外,如圖14B中所示的情況那樣,差信號Z的尾數MZ的整數部分的最高有效的(n-8)比特全部是“0”,隨后的8比特表示可以是非0的比特的范圍,并且進一步跟隨在這8比特之后的比特全部是“0”。此外,在此情況中,如圖15B所示,當整數部分的數字數量(n-8)增大時,盡管數字數量不會變得小于8,但是跟隨在可以是非0的這8比特之后的數字“0”的數量減少。
如同可以從以上描述明白的那樣,無論浮點格式的輸入信號樣本是從24比特整數值信號、16比特整數值信號還是浮點信號得到的,都可以通過8比特刪截、借助于以下方式來產生16比特整數值信號樣本Y通過將輸入信號樣本X的指數E減小為E-8而將小數點向最高有效比特位置移動8位,在構成尾數MX的整數部分的最高有效的(n-8)比特、或在圖中示出的示例中的比特“xx”的前部添加“1”,并且采用所得到的整數值“1xx”作為16比特整數值信號樣本Y的最低有效比特。另外,可以通過將輸入信號樣本X的尾數MX的最高有效的(n-8)比特設置為“0”來產生差信號Z的尾數MZ。
可以按照與圖1所示的實施例相同的方式來壓縮編碼如此獲得的16比特整數值信號樣本Y。另一方面,對于差信號Z,不對總是為“0”的尾數MZ的最高有效的(n-8)比特進行編碼,并且分別壓縮編碼可以是非0的隨后的8比特和進一步跟隨在這8比特之后的剩余的(23-n)比特。
在上述示例中,通過將23比特的尾數中的小數點向最高有效比特位置移動8位,并刪截跟隨在所移位的小數點之后的比特,來產生16比特整數值。通常,可以通過將輸入信號樣本的指數E減小到E-m,并采用所得到的尾數MX的最高有效的(n-m)比特作為整數部分,來刪截m比特(m落入范圍22≥m≥8的任何整數)。另外,如果不對總是為“0”的最高有效的(n-m)比特進行編碼,并且分別對可以是非0的隨后的m比特和進一步跟隨在這m比特之后的剩余(23-n)比特進行編碼,則可以高效地對差信號Z的尾數進行編碼。
圖16示出了編碼器,其中,用相同的附圖標號來表示對應于圖12所示的那些部分的部分。如上面參照圖14A、14B和14C所述,數字調整部分31將從選擇部分102接收的、浮點格式的輸入信號樣本序列X的指數E減小為E-8,從而將小數點向最高有效比特位置移動8位。整數格式化部分12刪截跟隨在已經移動8位的小數點之后的小數部分,并在所得到的整數部分的前部添加“1”,以形成整數格式的16比特(=24-8)信號樣本序列Y。壓縮部分13無損地壓縮信號樣本序列Y,并輸出碼序列Ca。
逆數字調整部分32沿與數字調整部分31進行的移位相反的方向,將16比特整數格式的信號樣本序列Y移動8位,即,在16比特信號樣本Y的后部插入8比特“0”,以便將整個信號樣本Y向最高有效比特位置移動8位,從而形成整數格式的24比特信號樣本。浮點格式化部分15將所得到的24比特整數格式的信號樣本轉換為浮點格式的信號樣本序列Y’。減法部分16確定在浮點格式的信號樣本序列Y’和輸入信號樣本序列X之間的差,從而產生浮點格式的差信號Z。實際上,不執行由逆數字調整部分32、浮點格式化部分15和減法部分16進行的這種處理,并且差產生部分14可以簡單地使用從整數格式化部分12接收的尾數的整數部分的數字數量n,來在n≠0的情況下提取每個輸入信號樣本X的尾數MX的最低有效的8+h(h=15-n)比特,或者在n=0的情況下提取指數E和尾數MX。如圖12所示的情況中那樣,根據分析部分132的輸出,將差信號Z傳送給壓縮部分17或131。
壓縮部分17包括分配器(divider)33以及兩個壓縮器17h和17c。將差信號Z輸入到分配器33。分配器還從整數格式化部分12接收移位后的每個樣本X的尾數的整數部分的數字數量n。在n≠0的情況下,將每個差信號樣本Z劃分為數字子集Zh和數字子集Zc,所述數字子集Zh包含通過數字數量n確定的能夠取非0的比特,即包含最低有效的h(h=15-n)比特,所述數字子集Zc包含通過數字樣本序列Y從24比特整數格式向16比特整數格式的轉換確定、或者通過整數格式的信號樣本Y的比特數量確定的能夠取非0的比特,即包含第(h+1)到第(h+8)最低有效比特。在n=0的情況下,每個差信號樣本Z被劃分為由指數E的8比特和尾數的最低有效的(23-8)比特構成的數字子集Zh、以及由尾數的最高有效的8比特構成的數字子集Zc。壓縮器17h和17c通過熵編碼等而無損地壓縮編碼數字子集Zh和Zc,并且分別輸出碼序列Cb1和Cb2。
因此,壓縮器17h主要接收和無損壓縮編碼可以是非0的尾數M的最低有效比特。如果原始數字信號是24比特或16比特的整數值信號,則除了如圖14B和14C所示的n=0的情況之外,在輸入到壓縮器17h的數字子集Zh中的最低有效的h個比特全部是“0”,因此,可以實現對其的高效壓縮。
如圖14A、14B和14C所示,壓縮器17c無損地壓縮編碼可以是非0的8個最低有效比特、即第(h+1)到第(h+8)最低有效比特,而不管輸入信號樣本X是從一般的浮點信號、24比特整數值信號還是16比特整數值信號得到的。與在差信號Z中可以非0的所有比特被圖1所示的壓縮部分17集體壓縮編碼的情況相比,這使得能夠提高總壓縮效率。如可以從圖16看出的那樣,壓縮器17c和17h的使用不僅可以應用到根據圖12示出的實施例的編碼器,還可以應用到根據圖1、8、9和11中示出的每個實施例的編碼器。
圖17示出了與圖16所示的編碼器相關聯的解碼器的實施例,所述解碼器對應于圖13所示的解碼器的那些部分的部分用相同的附圖標號來表示。在分離部分203按照從輔助碼提取部分202接收的輔助碼Cd而輸出碼序列Ca、Cb1和Cb2的情況下,擴展部分21無損地將碼序列Ca擴展解碼,以再現16比特整數格式的信號樣本序列Y。擴展部分23包括兩個擴展器23h和23c以及組合器41。碼序列Cb1和Cb2分別被擴展器23h和23c無損地擴展解碼,并且所得到的比特序列Bh和Bc被輸入到組合器41。組合器41還接收在由擴展部分21解碼的每個樣本的整數部分中、跟隨在最高有效的“1”之后的比特的數量n。在n≠0的情況下,從自擴展器23h輸出的比特序列Bh提取h(=15-n)比特,從自擴展器23c輸出的比特序列Bc提取8比特,并組合所述h比特和8比特,以分別構成尾數M的最低有效的h比特和最高有效的8比特。對于以下示例,類似地,根據數字數量n,從比特序列Bh提取h比特,從比特序列Bc提取8比特,并且組合所提取的比特。在n=0的情況下,從比特序列Bh提取作為指數E的8比特和15(=23-8)比特,并從比特序列Bc提取8比特。將從比特序列Bc提取的8比特插入到來自比特序列Bh的15比特的前部,從而形成23比特的尾數。
數字調整部分42在解碼后的16比特整數格式的信號樣本Y的后部插入8個比特“0”,以便將信號樣本Y向最高有效比特位置移動8位,從而產生24比特整數格式的信號樣本。然后,浮點格式化部分15將該信號樣本轉換為32比特浮點格式的信號樣本序列Y’。組合部分24組合信號樣本序列Y’和差信號Z,以便再現浮點格式的信號樣本序列X。在分離部分203按照輔助碼Cd輸出碼序列Cc的情況下,擴展部分221將碼序列Cc解碼,從而直接再現數字樣本序列X。
在以上描述中,整數格式的信號樣本序列Y是16比特樣本或24比特樣本。但是,在信號樣本Y中包含的比特數量可以是等于或小于24的任何數量m,并且根據m的值,可以確定每個整數格式的信號樣本Y中能夠取非0的數字的數量。而且,在上述示例中,可以將浮點格式的輸入信號樣本序列X劃分為例如1024個樣本的幀或者連續樣本的塊,并且可以對每個這樣的劃分單位(divisional unit)執行壓縮編碼。在劃分單位的基礎上執行壓縮編碼的情況下,可以對每個劃分單位適當地確定被轉換為整數格式的比特的數量,并且可以輸出指定該比特數量的輔助碼。
作為圖16所示的編碼器中的壓縮部分17,可以使用圖1所示的第一實施例中的壓縮部分17,并且作為圖17所示的解碼器中的擴展部分23,可以使用圖7所示的擴展部分23。在這種情況下,編碼器執行16比特整數格式化。但是,差信號Z不會被劃分為包含比特“0”的部分和包含能夠取非0的比特的部分,并且如參照圖6所述,僅對尾數的最低有效的h(=23-n)比特進行編碼。因此,解碼器中的擴展部分23將碼序列Cb解碼,以再現這h比特,并在這h個比特的前部插入n個比特“0”以產生所述尾數。
在上面參照圖1、8、9、11和12描述的實施例中,例如,壓縮部分17可以配置為對每個幀,沿時間軸方向對從差信號Z提取的比特序列執行無損壓縮編碼。在下面,將參照圖18來描述這種編碼方法。
圖18示出了一個幀由1024個樣本組成的情況。另外,對于每個樣本編號i(i=0到1023),示出了在輸入信號樣本序列X中的樣本的尾數M的n比特整數部分的整數值(n=E-E0)、及其h比特小數部分的比特序列。如在第一實施例中參照圖6所述的那樣,每個差信號樣本Z的尾數M的整數部分的最高有效的n比特全部是“0”,并且小數部分的最低有效的h(=23-n)比特是可以為非0的比特。在圖18所示的編碼方法中,差信號的尾數的最低有效的h比特被排列為它們各自的最高有效比特MSB彼此對齊,在時間軸方向上提取其每一個定位在每個樣本中沿幅度方向的比特位置j處的比特,以形成比特序列Ej,并對該比特序列Ej進行編碼。
小數部分的比特長度h(=23-n)隨著樣本而變化。因此,在時間軸方向上掃描沿幅度方向的比特位置j(j=0到hmax-1;hmax表示在相關幀中的樣本的小數部分的最大比特長度)處的比特時,如果遇到在比特位置j處沒有比特的樣本,則跳過該樣本。可以按照下面所述來確定是否跳過樣本i在樣本i的沿幅度方向的比特位置j處,將該樣本的小數部分的比特長度h與值j相比較,并且如果h≥j,則提取該比特位置處的比特,而如果h<j,則跳過該樣本,并且進行對于下一樣本(i+1)的相同確定。
例如,在時間軸方向上掃描從MSB起的比特位置j=17處的比特時,其小數部分的比特長度h是23-6=17的樣本i=0具有在比特位置j處的最低有效比特。但是,其小數部分的比特長度是23-8=15的樣本i=1不具有跟隨在第15MSB之后(或比特位置j=14)的比特。因此,跳過樣本i=1。所提取的第15比特對于所述幀被分組,以形成比特序列E16,并且對比特序列E16進行熵編碼。對其它比特位置j的每個執行相同的處理。作為熵編碼,因為可以提供分層(layering),所以算術編碼或Golomb編碼是有益的。
在解碼器一側,可以從每個解碼后的整數值信號樣本Y中的、跟隨在最高有效的“1”之后的比特的數量n來確定整數部分的數字數量n,因此,可以確定在所述幀中每個差信號Z的尾數的小數部分的比特長度h(=23-n)。因此,對于每個解碼后的比特序列Ej,依序掃描幀中的樣本i的比特,并且將沿幅度方向的比特位置j與每個樣本的比特長度h相比較。如果j≤h,則可以通過向比特位置(i,j)分配在比特序列Ej中的比特的值來再現圖18所示的尾數的小數部分。然后,在每個樣本的小數部分的前部,可以添加與所述樣本相關聯的n個比特“0”,從而再現差信號的23比特的尾數M。
圖19示出了應用了圖18所示的編碼方法的、圖1、8、9、11和12所示的壓縮編碼部分17的功能配置。壓縮編碼部分17從差產生部分14(例如,參見圖1)接收差信號Z的樣本z0-z1023的一個幀,并將它們各自的整數部分的數字數量n0-n1023存儲在存儲部分17B中。根據每個樣本i的數字數量ni,控制部分17C將除了最高有效的n比特之外的、輸入差信號Zi的尾數的h比特整數部分(h=23-n)置于緩沖器17A中。這樣,獲得了如圖18所示的尾數的整數部分的陣列。然后,控制部分17C在時間軸方向上掃描沿幅度方向的比特位置j(=0到hmax-1)處的樣本,提取滿足h≥j的關系的比特以形成比特序列Ej,并且向壓縮部分17D提供比特序列Ej。緩沖器17A、存儲部分17B和控制部分17C構成比特序列產生部件。壓縮部分17D無損地壓縮編碼比特序列Ej,并輸出碼Cb。
圖20示出了充當與圖19所示的壓縮編碼部分17相關聯的差信號解碼部件的、圖7、10和13所示的擴展部分23的功能配置。解碼部分23D將所接收的碼Cb解碼以再現比特序列Ej。另一方面,從數字計算部分21A(例如,參見圖7)接收的、一個幀的整數部分的數字的數量n0-n1023被存儲在存儲部分23B中,并且控制部分23C將從比特序列Ej提取的一個比特分配給每個比特位置(i,j),對于所述比特位置(i,j),滿足關于每個樣本的小數部分的數字數量hi(=23-ni)的關系hi≥j,并且,控制部分23C在緩沖器23A中存儲所得到的比特排列,并對所有樣本重復相同的處理,從而再現圖18所示的小數部分的比特陣列。一旦完成了一個幀的所有比特序列Ej(j=0到hmax-1)的比特排列,控制部分23C就在緩沖器23A中每個樣本i的小數部分的前部增加ni個比特“0”,以再現差信號的尾數,并且向組合部分24(圖7)提供差信號Z。緩沖器23A、存儲部分23B和控制部分23C構成重建部件。
在圖18所示的差信號的尾數的編碼中,沿時間軸方向將比特位置j處的比特分組為比特序列Ej,并對比特序列Ej進行編碼。下面,將描述另一種掃描比特位置的方法。在圖21中,在幀的方向上,在沿幅度方向的預定比特長度上,按照比特位置j+1處的比特的第一個跟隨在比特位置j處的比特的最后一個之后這樣的方式,來連續地掃描和收集比特,從而產生多個比特序列E2’、E18’等。因此,比特序列Ej的數量小于小數部分的最大比特數量hmax。此外,在此比特掃描中,跳過滿足關系hi<j的任何比特位置。此外,在這種比特掃描方法的情況中,可以根據hi=23-ni來確定每個樣本i的小數部分的數字數量。因此,在解碼器一側,可以通過按照與上面所述相同的方式來分配比特序列Ej中的比特來再現小數部分的比特排列。
圖22示出了另一種比特掃描方法。按照圖21所示的方法,按照比特位置j+1處的比特的第一個跟隨在比特位置j處的比特的最后一個之后這樣的方式,來執行在幀方向上的、在沿幅度方向的多個比特長度上的連續比特掃描。然而,根據圖22所示的方法,在多個比特長度上的幅度方向上、從其MSB開始掃描樣本i的比特,使得樣本i+1中的多個比特長度中的第一比特跟隨在樣本i中的多個比特長度中的最后一個比特之后。重復這樣的掃描,直到到達幀中的最后樣本為止。同樣,在這個示例中,跳過滿足條件hi<j的任何比特位置。
圖23是用于圖解在圖18所示的比特掃描中的例外操作的圖。在刪截使整數部分為0的情況下,即在E-E0的值為負的情況下,必須編碼和發送包括指數的所有32比特。因此,如圖23所示,在樣本i=3的整數部分是0(即n=0)的情況下,圖1所示的壓縮部分17在尾數的比特掃描中不考慮樣本i=3,并且對樣本i=3單獨進行編碼。
在輸入信號樣本序列X是從整數格式轉換的浮點格式的信號樣本序列、并且原始整數值的數字數量與刪截后的整數值的數字數量不同的情況下,也就是說,在從24比特整數值信號樣本序列直接轉換的浮點格式的信號樣本序列通過如參照圖14B和15B所述的刪截而被編碼為16比特整數值信號樣本序列的情況下,差信號的尾數的小數部分的最高有效的8比特可以是非0的,盡管剩余的比特是0。如果通過例如圖13所示的方法來將這種輸入信號樣本序列X編碼,則比特序列E0至E7可以是非0的,盡管隨后的比特序列E8至E21全是“0”,使得可以實現高效編碼。將容易理解,如果使用圖21和22所示的方法,則可以類似地實現高效編碼。
如根據需要在音頻信號處理中執行的那樣,例如,如果將24比特的整數值信號樣本增加1.5倍(fold)(或二進制表示法中的1.1倍),則所得到的信號樣本被轉換為浮點格式的信號,并且所得到的信號通過刪截而被編碼為16比特的整數值信號,將24比特整數值信號樣本增加1.5倍使至少第一小數位置是可以為非0的比特。具體地說,在圖14B所示的樣本X的尾數MX中、跟隨在小數點PD之后的第一位置可以是非0的。因此,可以是非0的差信號的尾數MZ的比特向最低有效比特位置增加1比特到9比特。同樣,在這種情況下,跟隨在這9比特之后的比特全部是“0”,使得可以使用圖18、21、22和23所示的方法來實現高效編碼。此外,如果所有的比特不都是0,則非0(即“1”)的發生頻率可隨著數字位置變化,并且在這種情況下,可以對所述變化適當地應用無損編碼。
在任何情況下,在從MSB一側計數的差信號的尾數的小數部分中能夠取非0的數字的數量是相等的,因此可以實現高效壓縮編碼。
已經在將所述方法應用到圖1所示的第一實施例的假設下描述了圖18至23中示出的尾數編碼方法。但是,所述方法可以被應用到如參照圖14A至17所述的通過刪截來形成16比特整數值的情況。在這種情況下,圖16所示的壓縮部分17被如圖19所示重新配置,并且圖17所示的擴展部分23被如圖20所示重新配置。
另外,可以根據小數部分的數字數量來重新布置樣本以進行掃描。例如,將小數部分由23個數字構成的樣本分組在一起,然后將小數部分由22個數字構成的樣本分組在一起,并且以相同的方式將具有由更少數量的數字組成的小數部分的樣本分組在一起。可以以唯一的方式來實現樣本的逆向布置,而不需要任何附加信息,使得可以簡單地管理要掃描的樣本的數量。
在圖18所示的示例中,通過在時間軸方向上掃描在每個幀中的差信號Z的樣本z的尾數M中能夠取非0的比特,產生比特序列Ej,每個樣本包含能夠取非0的h比特,并且每個樣本的h比特的MSB與其它樣本的MSB對齊。但是,如圖24所示,可以執行類似的掃描,并且每個樣本的能夠取非0的h比特的LSB與其它樣本的LSB對齊。在這種情況下,可以如圖19所示相同地配置壓縮編碼部分17,并且僅僅修改控制部分控制掃描的方式。另外,可以如圖20所示相同地配置解碼器中的擴展解碼部分23。
圖25示出了在上述圖1、8、9、11和12中示出的編碼器中的壓縮部分17的另一實施例。在這個實施例中,通過布置包含能夠取非0的比特的小數部分并且其LSB彼此對齊而形成整數值樣本序列,并且通過在樣本序列方向上消除冗余來執行壓縮編碼。如圖25中所示,壓縮編碼部分17包括小數部分提取部分17E、幀內(in-frame)平均部分17F、減法器17G以及編碼部分17D1和17D2。小數部分提取部分17E提取由從差產生部分14接收的每個差信號樣本Z的尾數M的最低有效的h比特(h=23-n)組成的小數部分,作為一個整數值樣本F。幀內平均部分17F計算每個幀的所提取的整數值樣本的平均Fave,并且編碼部分17D1對平均Fave進行編碼,并輸出所得到的碼序列Cb1。減法器17G將平均Fave和每個整數值樣本F之間的差確定為誤差樣本ΔF,并且,編碼部分17D2對誤差樣本ΔF進行預測編碼,對預測誤差進行無損壓縮編碼,并輸出所得到的碼序列Cb2。預測參數可作為輔助信息而單獨發送,或者可被自適應地更新,并在編碼器和解碼器之間保持一致性。
圖26示出了與圖25所示的編碼器相關聯的解碼器中的解碼和擴展部分23的配置。這一配置可被應用到圖7、10或13所示的解碼器中的擴展部分23。根據這個實施例,擴展部分23包括擴展器23B和23C、加法器23D以及組配部分23A。擴展器23B擴展解碼所接收的碼序列Cb1,并輸出每個幀的平均Fave。擴展器23C擴展解碼所接收的碼序列Cb2以確定預測誤差,執行預測解碼并輸出誤差樣本ΔF。加法器23D對平均Fave和誤差樣本ΔF求和以再現整數值樣本F。組配部分23A使用來自數字計算部分21A的數字數量n而從整數值樣本F組配差信號Z。
如果分別用圖25所示的壓縮編碼部分17和圖26所示的擴展部分23來代替圖16所示的壓縮編碼部分17和圖17所示的擴展部分23,則這個實施例可以被應用到圖16和圖17所示的實施例。
圖27示出了根據第七實施例的壓縮部分的配置,其被應用到圖1、8、9、11和12示出的壓縮部分17。圖18到23示出了對通過利用各種掃描方法掃描能夠取非0的比特的陣列而產生的比特序列進行編碼的方法。但是,根據第七實施例,選擇所述多種掃描方法中最佳的一種來對所輸出的比特序列進行編碼。
如圖19中的情況所示,存儲部分17B存儲從整數格式化部分12(例如,參見圖1)接收的差信號樣本的數字數量n(n0、n1、n2、...、n1023)。然后,在控制部分17C的控制下,在差信號Z的尾數M中可以是非0的最低有效的h(=23-n)比特被存儲在緩沖器17A1、17A2和17A3中。在每個緩沖器中,存儲所述比特,并且每個差信號Z的MSB與其它差信號Z的MSB對齊,例如如圖18所示。在控制部分17C的控制下,在時間軸的方向上,對于沿幅度方向的每個比特位置,掃描存儲在緩沖器17A1中的比特陣列中的比特,以產生比特序列Ej1,如圖18所示。在時間軸方向上,在沿幅度方向的每個預定比特長度內,掃描存儲在緩沖器17A2中的比特陣列中的比特,以產生比特序列Ej2,例如如圖21所示。在幅度方向上,在沿每個樣本的幅度方向的每個預定比特長度內,掃描存儲在緩沖器17A3中的比特陣列中的比特,以產生比特序列Ej3。
對于每個幀,控制部分17C根據“1”的計數,確定通過所述掃描方法產生的每個比特序列Ej中的比特的值的偏移,確定每種掃描方法的比特“1”的偏移程度,確定哪種掃描方法提供最高的偏移程度(或最低的熵),然后向選擇部分17E提供選擇信號SL,所述選擇信號SL指明對應于具有最高偏移程度的掃描方法的緩沖器中的比特序列Ej。在編碼部分17D中對所選擇的比特序列進行編碼,并且輸出所得到的碼序列Cb。
通過下面的公式來表示對應于幀中的比特“1”的偏移的熵∑j-mj(kj/mj)log2(kj/mj)+(1-(kj/mj))log2(1-kj/mj)))(2)其中,“mj”表示每個比特序列Ej中的比特數量,并且“k”表示比特序列中的“1”的數量。“∑j”是指所有可能的“j”值的和(即比特序列的數量)。當比特“1”的偏移增大時,熵減小。熵取決于如何掃描幀的比特陣列或者如何將比特陣列劃分為比特序列。因此,根據第七實施例,針對每個幀選擇用于能夠取非0的比特的最佳掃描方法。
圖28示出了被適配用于圖27所示的壓縮部分17的、圖7、10和13所示的壓縮部分23的配置。除了另外提供解碼部分23E以外,與圖20所示的擴展部分23相同地配置擴展部分23。解碼部分23E將輔助碼Ce解碼以再現選擇信號SL,并向控制部分23C提供選擇信號SL。根據對應于所提供的控制信號的掃描方法和數字數量,控制部分23C按照再現各個樣本的能夠取非0的比特序列這樣的方式,將從解碼部分23D輸出的比特序列Ej存儲到緩沖器23A中。然后,在每個樣本的能夠取非0的hj比特的前部增加ni個比特“0”,以形成尾數M,并且輸出尾數M,作為差信號Z。
圖29示出了圖27所示的壓縮部分的修改,其中,分別通過編碼部分17D1、17D2和17D3對來自緩沖器17A1、17A2和17A3的比特序列Ej1、Ej2和Ej3進行編碼。分析部分17G確定哪個輸出碼具有最小信息量,并且不僅向選擇部分17F還向編碼部分17E提供指定輸出碼的選擇信號SL,以獲得碼Ce。選擇部分17E將由選擇信號指定的最小信息量的碼序列作為碼序列Cb而與碼Ce一起輸出。作為與圖29所示的壓縮部分17相關聯的解碼器中的擴展部分23,可以按原樣使用圖28所示的擴展部分23。
取代圖11所示的壓縮部分17和131,可以使用圖30所示的配置。該配置包括可變比特壓縮部分17-1、可變比特提取部分17-2、尾數壓縮部分131-1和尾數提取部分131-2。可變比特壓縮部分17-1根據數字數量n從差信號Z的尾數M中提取和壓縮編碼能夠取非0的h(=23-n)比特(可變比特),并輸出碼Cb。可變比特提取部分17-2從差信號Z的尾數M中提取包含能夠取非0的h比特的比特序列MD,并輸出該比特序列而不進行處理。尾數提取部分131-1壓縮編碼差信號Z的尾數M,并輸出碼Cm。尾數提取部分131-2提取差信號Z的尾數M,并輸出尾數M而不進行處理。效率估計部分134計算Cb、MD、Cm、M和Z的每一個的信息量,并確定它們中具有最小信息量的一個。指定所確定的那個的選擇信號SL被輔助編碼部分103編碼,并且所得到的碼Ce被提供給輸出部分104。輸出部分104選擇由選擇信號SL指定的Cb、MD、Cm、M和Z之一,并將其作為碼Cb與碼Ce一起輸出。
圖31示出了與圖30所示的配置相關聯并且可以代替圖10所示的解碼器中的擴展部分23和231、選擇部分233以及輔助解碼部分234而使用的配置。在此,分析部分232不是必需的。在圖31中,解碼部分234將碼Ce解碼為選擇信號SL,并且,根據選擇信號SL,控制選擇部分233。具體地說,根據選擇信號SL,作為輸入碼Cb,可變比特序列的壓縮碼Cb被提供給解碼部分23,可變比特序列(能夠取非0的比特的序列)MD被提供給組配部分23a,尾數M的壓縮碼Cm被提供給解碼部分231,或者按原樣輸出尾數M。解碼部分23將碼序列Cb解碼以產生由能夠取非0的比特組成的比特序列MD,并向組配部分23a提供比特序列MD。根據數字數量n,組配部分23a在比特序列MD的前部增加n個比特“0”,以再現尾數M。
在圖5中,通過刪截、即按照整數值的絕對值盡可能小這樣的方式,將輸入的浮點信號樣本序列X中的每個樣本轉換為整數值。但是,如果使得從浮點格式化部分15的轉換產生的浮點信號樣本序列Y’中的每個樣本的指數等于輸入的浮點信號樣本序列X中的對應樣本的指數,則可以使用舍入來代替刪截。如圖32所示,刪截分別將從0到1、從1到2、...、以及從8到9連續變化的輸入浮點值改變為整數值0、1、2、...、和9。因此,通過從輸入浮點值減去所述整數值而產生的誤差信號、即差信號Z的尾數總是負的。另一方面,如圖33所示,舍入分別將從0到0.5、從0.5到1.5、從1.5到2.5、...、以及從8.5到9.5連續變化的輸入浮點值改變為整數值0、1、2、...、和9。因此,通過從輸入浮點值減去再次從整數值轉換的浮點值而產生的誤差信號、即差信號Z可以是負的。在整數格式化中,如果在2的冪的值中出現上舍入,則從整數值樣本序列再次轉換的浮點數字信號樣本序列Y’中的每個樣本的指數與在輸入浮點數字信號樣本序列X中的對應樣本的指數不同,并且每個樣本的尾數與輸入浮點信號樣本序列X中的對應樣本的尾數完全不同。這對于壓縮是不利的。
因此,如下所述來修改舍入。如圖34所示,分別將從0到1、從1到2、從2到2.5、從2.5到4、從4到4.5、從4.5到5.5、從5.5到6.5、從6.5到8、從8到9.5等連續變化的輸入浮點值改變為整數值0、1、2、3、4、5、6、7、8、9等。也就是說,如圖中的箭頭所示,如果尾數M的n比特的整數部分MI取值2的冪之前的2n-1,則執行刪截而不是舍入。否則,執行舍入。盡管另外需要1比特來指示用于指明誤差信號(差信號)Z是正還是負的符號,但是因為被舍入的樣本的誤差等于或小于0.5,所以尾數的最大數字數量減少1比特。因此,包括符號比特的尾數的數字數量與刪截的情況相同。然而,當整數部分MI取值2n、即2的冪時,誤差的尾數的數字數量可以減小1,而當整數部分MI取值2n-1時,只有當誤差為正時才發生一直到1的誤差。因此,必須專門處理這兩種情況。
也就是說,在每個差信號樣本Z中能夠取非0的比特的前部增加符號比特,并且如果整數部分MI取值2n-1,則將指定能夠取非0的比特數量h的碼增加到所述比特上,并將所得到的比特序列壓縮編碼,并且,解碼器解碼和擴展碼序列Cb,并將所得到的比特序列分離為子序列,其每一個包含多個比特,所述比特的數量是從整數部分的比特數量n確定的能夠取非0的比特數量h與符號比特的1比特的總和。如果整數部分MI取值2n-1,則符號比特、指定能夠取非0的比特數量h的碼的比特數量、以及通過所述碼指定的比特數量h被分離,以確定差信號Z的一個樣本。在僅對能夠取非0的比特進行編碼的情況下,當幅度增大時,效率提高。當幅度增大時,整數部分取值2n-1的次數、即例外處理發生的次數減少,使得可以整個地提高壓縮效率。
使用上述修改的舍入可以使得浮點輸入和整數部分之間的誤差能量(error energy)低于在使用刪截情況下的誤差能量,因此可以提高整數部分序列的預測效率。另外,因為只有能夠取非0的比特必須被編碼,所以可以提高通過壓縮部分17進行的差信號Z的壓縮的效率。
例如,如圖3中的交錯的長短虛線所示,在步驟S2之后,確定輸入的浮點信號樣本序列X的整數部分MI是否是2n-1。例如,確定尾數M的最高有效的n(=E-E0)比特是否全是“1”。如果所有比特都是“1”,則意味著整數部分MI取在2的冪之前的值,處理繼續進行到步驟S3,在此執行刪截。如果最高有效的E-E0比特不全是“1”,則處理繼續進行到步驟S6,在此執行通過修改的舍入進行的整數格式化。
在圖9所示的第二實施例中,根據由分析部分132進行的確定,在由壓縮部分17進行的壓縮編碼和由壓縮部分131進行的壓縮編碼之間進行選擇。為了實現正確的選擇,如圖11所示,壓縮部分17和131均執行編碼,并且采用所得到的具有更高壓縮效率的碼之一。雖然由壓縮部分131進行的壓縮編碼是準確的,但是差信號Z的直接壓縮編碼需要較大的處理量和處理時間。因此,可以使用下述方法。
例如,作為在字節(8比特)的基礎上估計通用編碼效率的方法,存在一種計算每個字節的熵的方法。誤差信號、即浮點格式的差信號Z被當作在8比特的基礎上范圍從0到28-1的整數值y,從一個幀內的整數值y的出現次數L(y)建立直方圖,并且將次數L(y)除以所述幀中的字節數量B,以確定密度函數p(y)。
p(y)=L(y)/B(3)根據此密度函數p(y),確定平均熵H(p(y))。
H(p(y))=-Σy=0255p(y)log2p(y)---(4)]]>通用編碼會有可能將1字節的數字值壓縮為大約平均熵的大小(比特)。因此,如果平均熵值和所述幀中的字節數量B的乘積小于由壓縮部分17僅對能夠取非0的比特進行壓縮編碼而產生的一個幀中的比特的總數量,則在字節基礎上的通用編碼、即由壓縮部分131進行的壓縮編碼更為有利。
圖35中示出了允許這種在壓縮部分之間的選擇的編碼器的配置。圖35所示的編碼器的配置是附加地提供有選擇部分133、平均熵計算部分136和確定部分137的圖11所示的配置。如該圖所示,從差產生部分14向平均熵計算部分136輸入差信號Z,如上所述確定平均熵H(p(y)),并確定平均熵H(p(y))和字節數量B的乘積。確定部分137將該乘積與由效率估計部分134a估計的碼序列Cb’的一個幀的比特數量進行比較。如果前者較小,則控制選擇部分133,使得由壓縮部分131來壓縮編碼差信號Z,或者如果后者較小,則將由壓縮部分17通過壓縮編碼產生的碼序列Cb’作為碼序列Cb輸出。此外,輸出指示選擇哪個壓縮部分的輔助碼Ce。這里,如果整數格式化部分12在計算熵時通過刪截來執行整數格式化,則在1字節的基礎上確定每個差信號樣本Z的23比特尾數M的出現次數L(y),或者如果整數格式化部分12通過修改的舍入來執行整數格式化,則確定包括其符號的每個樣本的出現次數。
如果如上所述估計通用編碼的效率,則與對差信號Z進行通用編碼的情況相比,可以降低處理負荷,確定在一個幀內的所得到的碼的總比特數量,并且分析和選擇部分134選擇所述壓縮部分之一。這種通用編碼的效率估計的使用可被應用到圖8所示的實施例。
在以上描述中,整數格式的信號樣本序列Y中的樣本已經是16比特樣本或24比特樣本。但是,信號樣本序列Y中的樣本可以由等于或小于24的任何數量的比特構成,并且根據比特的數量,可以確定取決于每個樣本的比特數量的、整數格式的數字信號樣本序列Y中的每個樣本中能夠取非0的比特的數量。以這一方式,如果在劃分單位的基礎上執行壓縮編碼,則可以方便地確定要轉換為整數格式的比特的數量,并且還可以輸出指定該比特數量的輔助碼。
如圖36所示,可以通過包括經由總線68互連的RAM 61、CPU 62、硬盤63、ROM 64、發送器/接收器65、輸入/輸出部分66和音頻/視頻輸入/輸出部分67的計算機600,來實現圖1、8、9、11、12、16和35中示出的編碼器。
ROM 64存儲用于啟動計算機的程序,并且硬盤63存儲用于計算機的操作系統程序。用于執行根據本發明的編碼器的功能的程序被預先經由CD/DVD驅動器66而從諸如CD-ROM或DVD的記錄介質71讀入硬盤63,或者通過通信線路和發送器/接收器65而被預先下載到硬盤63。
要編碼的浮點格式的信號樣本序列X在例如音頻/視頻輸入/輸出部分67處被外部接收,并被臨時存儲在充當緩沖器的硬盤63中。為了開始編碼,將用于執行編碼的程序從硬盤63讀入RAM 61,并且通過CPU 62來執行該程序。可以將編碼結果例如碼Ca、Cb(或Z)和Cc從發送器/接收器65經由通信線路發送到外部,或者可以將其存儲在CD/DVD驅動器66中的記錄介質65例如CD和DVD中。
類似地,為了通過圖36所示的計算機實現圖7、10、11、13和17中示出的解碼器,將用于執行該解碼器的功能的程序存儲在硬盤63中,并且對于通過通信線路在發送器/接收器65處接收的碼Ca、Cb(或Z)和Cc執行解碼程序。編碼結果被輸出到顯示單元73和揚聲器74以便再現。
本發明可以不僅可以應用于音樂信號,還可以應用于聲音信號、圖像信號等。
權利要求
1.一種用于浮點格式的信號的無損編碼方法,包括以下步驟(a)將浮點格式的第一信號樣本序列轉換為整數格式的第二信號樣本序列;(b)無損壓縮所述整數格式的第二信號樣本序列,以產生第一碼序列;(c)產生浮點格式的差信號,其對應于所述整數格式的第二信號樣本序列和所述浮點格式的第一信號樣本序列之間的差;(d)確定哪種編碼處理具有較高的壓縮效率第一編碼處理,其對所述浮點格式的差信號的樣本中能夠取非零的范圍的比特進行編碼,所述比特的范圍由所述整數格式的第二信號樣本序列中的對應樣本中的最高有效的“1”的比特位置確定,或者第二編碼處理,其直接對所述差信號進行編碼;以及(e)如果所述確定的結果指示所述第一編碼處理,則通過所述第一編碼處理來對所述差信號進行編碼以產生第二碼序列,或者如果所述確定的結果指示所述第二編碼處理,則通過所述第二編碼處理來對所述差信號進行編碼以產生第二碼序列。
2.一種用于浮點格式的信號的無損編碼方法,包括以下步驟(a)確定哪種壓縮具有較高的壓縮效率在幀基礎上的浮點格式的第一信號樣本序列的直接壓縮,或者整數值樣本序列和從第一信號樣本序列得到的差信號的雙信號分離壓縮;(b)如果所述確定的結果指示雙信號分離壓縮,則執行雙信號分離壓縮,步驟(b)包括以下步驟(b-1)將第一信號樣本序列轉換為整數格式的第二信號樣本序列;(b-2)無損壓縮所述整數格式的第二信號樣本序列,以產生第一碼序列;(b-3)產生浮點格式的差信號,其對應于所述整數格式的第二信號樣本序列和所述浮點格式的第一信號樣本序列之間的差;(b-4)從所述浮點格式的差信號產生第二碼序列;(c)如果所述確定的結果指示直接壓縮,則直接無損壓縮所述第一信號樣本序列,以產生第三碼序列;以及(d)產生輔助碼,其指示是執行所述直接無損壓縮還是所述兩種類型信號的分離壓縮。
3.根據權利要求2的用于浮點格式的信號的無損編碼方法,其中,在所述步驟(b-1)中,通過小數部分的刪截來實現向所述整數格式的第二信號樣本序列的轉換,并且所述步驟(b-4)包括以下步驟(b-4-1)確定哪個編碼處理具有較高的壓縮效率第一編碼處理,其對所述浮點格式的差信號的樣本中能夠取非零的范圍的比特進行編碼,所述比特的范圍由所述整數格式的第二信號樣本序列中的對應樣本中的最高有效的“1”的比特位置確定,或者第二編碼處理,其直接對所述差信號進行編碼;以及(b-4-2)如果所述確定的結果指示所述第一編碼處理,則通過所述第一編碼處理來對所述差信號進行編碼以產生第二碼序列,或者如果所述確定的結果指示所述第二編碼處理,則通過所述第二編碼處理來對所述差信號進行編碼以產生第二碼序列。
4.根據權利要求1或3的用于浮點格式的信號的無損編碼方法,其中,在所述第一編碼處理中,無損地壓縮所述能夠取非0的范圍的比特以產生所述第二碼序列,或者將所述能夠取非0的范圍的比特作為所述第二碼序列輸出而不進行處理。
5.根據權利要求1或3的用于浮點格式的信號的無損編碼方法,其中,在所述第二編碼處理中,無損地壓縮所述差信號的尾數以產生所述第二碼序列,或者將所述尾數作為所述第二碼序列輸出而不進行處理。
6.根據權利要求1或3的用于浮點格式的信號的無損編碼方法,其中,所述整數格式的第二信號樣本序列中的一個樣本的比特長度bI小于所述浮點格式的第一信號樣本序列的尾數的比特數量bM,并且在所述第一編碼處理中,所述能夠取非0的比特的范圍被分離為高階子范圍和低階子范圍,所述高階子范圍包含對應于在所述尾數的比特數量bM和所述一個樣本的比特數量bI之間的差的比特數量,所述低階子范圍包含剩余的比特,所述子范圍被分別無損壓縮以產生各個碼序列,并且所述碼序列被組合和輸出為所述第二碼序列。
7.根據權利要求1或3的用于浮點格式的信號的無損編碼方法,其中,對包含多個樣本的每個幀執行所述第一編碼處理,并且所述第一編碼處理包括以下步驟布置作為能夠取非0的比特范圍的、每個幀中的差信號樣本的尾數的小數部分,并且其最高有效比特或其最低有效的比特彼此對齊;至少在時間軸方向和/或幅度方向上選擇多個比特以產生多個被掃描的比特序列;以及無損壓縮所述被掃描的比特序列以產生所述第二碼序列。
8.根據權利要求1或3的用于浮點格式的信號的無損編碼方法,其中,對包含多個樣本的每個幀執行所述第一編碼處理,并且所述第一編碼處理包括以下步驟布置在每個幀中的每個差信號樣本中能夠取非0的比特的范圍,并且以多種不同的預定掃描順序來掃描所述比特的陣列,以產生各個被掃描的比特序列;對通過以所述各個掃描順序掃描而產生的所述被掃描的比特序列進行編碼,以產生各個掃描順序的碼序列;以及確定哪種掃描順序提供具有最小信息量的碼序列,并將所確定的碼序列作為所述第二碼序列而與指示對應掃描順序的輔助碼一起輸出。
9.根據權利要求1或3的用于浮點格式的信號的無損編碼方法,其中,所述第一編碼處理包括以下步驟對于包含多個樣本的每個幀,確定與相關幀中的差信號的小數部分相對應的整數值樣本的序列的平均值;在時間軸方向上,執行關于通過從每個整數值樣本的值中減去所述平均值而得到的信號的誤差預測;無損壓縮編碼該預測誤差;以及對所述平均值進行編碼,以形成所述第二碼序列。
10.一種用于浮點格式的信號的無損解碼方法,包括以下步驟(a)根據輸入的輔助碼,確定輸入碼是通過單信號編碼還是雙信號編碼產生的碼;(b)如果所述確定的結果指示單信號編碼,則將輸入碼序列解碼和擴展為一個碼序列,以再現浮點格式的原始信號樣本序列;(c)如果所述確定的結果指示雙信號編碼,則將輸入碼序列分離為第一碼序列和第二碼序列;(d)解碼和擴展所述第一碼序列,以產生整數格式的第一信號樣本序列;(e)從所述第二碼序列得到浮點格式的差信號;(f)將所述整數格式的第一信號樣本序列轉換為浮點格式的第二信號樣本序列;以及(g)組合所述浮點格式的第二信號樣本序列和所述浮點格式的差信號,以再現浮點格式的原始信號樣本序列。
11.根據權利要求10的用于浮點格式的信號的無損解碼方法,其中,所述步驟(e)包括以下步驟根據所述整數格式的第一信號樣本序列或輸入輔助碼,確定使用第一擴展方法和第二擴展方法中的哪一種來解碼和擴展所述第二碼序列;以及將所述第二碼序列解碼和擴展為每個都包含能夠取非0的多個比特的比特序列,所述比特的數量由所述第一信號樣本序列的每個樣本中的最高有效的“1”的比特位置唯一地確定,并且如果確定結果指示第一擴展方法,則從通過解碼和擴展產生的比特序列組配所述差信號,或者如果確定結果指示第二擴展方法,則通過第二擴展方法將所述第二碼序列直接解碼和擴展為所述差信號。
12.一種用于浮點格式的信號的無損解碼方法,包括以下步驟(a)解碼和擴展第一碼序列,以產生整數格式的第一信號樣本序列;(b)根據所述第一信號樣本序列或輔助碼,確定使用第一擴展方法和第二擴展方法中的哪一種來解碼和擴展第二碼序列;(c)如果確定結果指示第一擴展方法,則將所述第二碼序列解碼和擴展為每個都包含能夠取非0的多個比特的比特序列,所述比特的數量由所述第一信號樣本序列的每個樣本中的最高有效的“1”的比特位置唯一地確定,并且將從解碼和擴展產生的比特序列組配為差信號;(d)如果確定結果指示第二擴展方法,則直接從所述第二碼序列產生浮點格式的數字差信號;(e)將所述整數格式的第一信號樣本序列轉換為浮點格式的第二信號樣本序列;以及(f)組合所述浮點格式的第一信號樣本序列和所述浮點格式的差信號,以再現浮點格式的原始數字信號序列。
13.根據權利要求11或12的用于浮點格式的信號的無損解碼方法,其中,通過所述第一擴展方法產生所述差信號的步驟包括以下步驟將所述第二碼序列的第一部分解碼和擴展為包含能夠取非0的多個比特的比特序列,所述比特的數量由所述整數格式的第一信號樣本序列的每個樣本中的最高有效的“1”的比特位置唯一地確定;將所述第二碼序列的第二部分解碼和擴展為包含能夠取非0的多個比特的比特序列,所述比特的數量由所述整數格式的第一信號樣本序列中的樣本的比特數量和浮點格式的原始信號樣本序列的尾數的比特數量之間的差來唯一地確定;以及組合從第二碼序列的第一部分的解碼和擴展產生的比特序列和從第二碼序列的第二部分的解碼和擴展產生的比特序列,以產生所述差信號。
14.一種用于浮點格式的信號的無損編碼器,包括第一編碼部件,將所輸入的浮點格式的第一信號樣本序列分離為整數值和誤差,并且無損壓縮編碼該整數值和誤差;第二編碼部件,直接無損壓縮編碼所述浮點格式的第一信號樣本序列;以及分析和選擇部件,確定或估計所述第一編碼部件和所述第二編碼部件的哪一個提供較高的壓縮效率,選擇所確定或估計的編碼部件以提供較高的壓縮效率,并且產生承載關于選擇結果的信息的輔助碼。
15.一種用于浮點格式的信號的無損編碼器,包括第一編碼部分,用于將所輸入的浮點格式的第一信號樣本序列轉換為整數格式的第二信號樣本序列,并且無損壓縮第二信號樣本序列;差產生部分,產生對應于所述整數格式的第二信號樣本序列和所述浮點格式的第一信號樣本之間的差的、浮點格式的差信號;第二編碼部分,直接對所述浮點格式的差信號進行編碼;第三編碼部分,對所述差信號的每個樣本中能夠取非0的范圍的比特進行編碼,所述比特范圍由所述整數格式的信號樣本序列中的對應樣本中的最高有效的“1”的比特位置來確定;以及確定或估計所述第二編碼部分和所述第三編碼部分的哪一個提供較高的壓縮效率、并選擇和輸出來自所確定或估計的編碼部分的碼以提供較高壓縮效率的部件。
16.一種用于浮點格式的信號的解碼器,包括第一解碼部件,將輸入碼序列直接無損解碼和擴展為浮點格式的信號樣本序列;第二解碼部件,將輸入碼序列分離為整數值和誤差,并無損解碼和擴展該整數值和誤差,以產生浮點格式的數字信號序列;以及選擇部件,根據輸入的輔助碼來選擇所述第一解碼部件和所述第二解碼部件之一。
17.一種用于浮點格式的信號的解碼器,包括第一擴展部分,解碼和擴展所輸入的第一碼序列,以產生整數格式的第一信號樣本序列;第二擴展部分,將差信號中的所輸入的第二碼序列解碼和擴展為包含能夠取非0的多個比特的比特序列,所述比特的數量由所述整數格式的第一信號樣本序列的對應樣本中的最高有效的“1”的比特位置來確定,并且第二擴展部分將從解碼和擴展產生的比特序列組配為浮點格式的差信號;第三擴展部分,將所述輸入的第二碼序列直接解碼和擴展為所述浮點格式的差信號;選擇部分,根據所述第一信號樣本序列或輸入的輔助碼來選擇所述第二擴展部分和所述第三擴展部分之一;以及組合部分,組合所述浮點格式的第一信號樣本序列和從所選擇的所述第二擴展部分和所述第三擴展部分之一接收的所述浮點格式的差信號,以產生浮點格式的第三信號樣本序列。
18.一種編碼程序,其使計算機執行根據權利要求1至9中的任何一個的用于浮點格式的數字信號的無損編碼方法的每個步驟。
19.一種解碼程序,其使計算機執行根據權利要求10至13中的任何一種的用于浮點格式的數字信號的解碼方法的每個步驟。
20.一種計算機可讀記錄介質,其存儲根據權利要求18或19的程序。
全文摘要
對于每個幀檢查浮點格式的信號樣本序列X的平均幅度。當平均幅度超過預定值時,在整數形成單元(12)處通過丟棄序列X的小數來將序列X轉換為16比特整數格式的信號樣本序列Y。壓縮部分(13)將序列Y編碼,并輸出碼串Ca。差產生單元(14)產生等于通過將序列Y轉換為浮點格式而獲得的序列Y’和信號樣本序列X之間的差的差信號Z。差產生單元(14)提取通過序列Y的每個樣本的低于最高有效的1的比特的數量n確定的、差信號Z的尾數M的較低的23-n比特,通過壓縮單元(17)對其進行熵編碼,并輸出碼串Cb。當平均幅度小于預定值時,通過壓縮單元(121)對序列X進行可逆編碼。指示選擇了哪種編碼方法的碼Cd被輸出。
文檔編號H04N7/24GK1799200SQ20048001511
公開日2006年7月5日 申請日期2004年9月1日 優先權日2003年9月2日
發明者守谷健弘, 楊戴, 原田登 申請人:日本電信電話株式會社