專利名稱:音頻信號編碼方法、程序及記錄介質和音頻信號編碼裝置的制作方法
技術領域:
本發明例如可應用于通過MPEG(運動圖像專家組)1和MPEG2的第1層和第2層對音頻信號進行編碼的情況。與以往根據心理聲學分析編碼音頻信號的實例相比,本發明通過預先對用于比特分配的評價標準排序、檢測分配了比特的子帶信號,以及當對重新算出的評價標準進行排序時部分改變最新排序結果的順序,從而排序評價標準,能夠降低處理的負擔。
背景技術:
過去,感知編碼(perceptual coding)作為音頻信號編碼處理已經眾所周知。感知編碼也被稱作心理聲學編碼。感知編碼在不向根據最小可聽限制和掩蔽效應而難以感知的成分分配比特的情況下對音頻信號進行編碼,從而利用人類聽覺特性有效地編碼音頻信號。MPEG1和MPEG2的第1層和第2層作為使用感知編碼技術的編碼方法而廣為人知。
圖16是示出用于對音頻信號S1進行編碼的編碼器的方框圖。該編碼器1通過例如數字信號處理器構成。編碼器1通過MPEG1的第1層或第2層或者MPEG2的第1層或第2層來編碼音頻信號S1,然后輸出比特流S2。音頻信號S1是多信道音頻信號,例如,線性量化16位PCM(脈沖編碼調制)數據或線性量化24位PCM數據。
編碼器1中的子帶分析濾波器組2由例如多相濾波器組構成。子帶分析濾波器組2將音頻信號S1的全部頻帶劃分為32個頻帶(子帶),對各個頻帶中的信號進行二次采樣,然后輸出子帶信號。另外,在第1層中,在一幀中設置并處理音頻信號S1的384個樣本,而在第2層中,在一幀中設置并處理音頻信號S1的1152個樣本。
線性量化器3在動態比特分配單元4的控制下,對從子帶分析濾波器組2輸出的子帶信號進行量化,然后輸出經過量化的子帶信號。比特壓縮單元11對線性量化器3的輸出數據進行比特壓縮,然后輸出經過比特壓縮的數據。比特流形成單元5將補充信息(sideinformation)編碼單元10的輸出數據、CRC(循環冗余碼校驗)碼等添加至比特壓縮單元11的輸出數據,然后輸出比特流S2。
比例因子提取單元6檢測從子帶分析濾波器組2輸出的每個子帶信號的比例因子。比例因子是表示每個子帶信號振幅最大值的系數。在第1層中,比例因子提取單元6將每個子帶信號的12個樣本設置為一個塊,并針對每個塊檢測子帶信號的各個樣本值的絕對值的最大值。另外,比例因子提取單元6選擇表示高于所檢測的最大值的振幅值的比例因子,并從所選擇的比例因子中選擇表示最小振幅值的比例因子。
另一方面,在第2層中,像在第1層中一樣,12個樣本設置為一個塊,并針對每個塊檢測比例因子。另外,檢測出連續塊的已檢出比例因子之間的差,通過1~3個比特的傳輸圖案(transmissionpattern)來代表差值的連續圖案,并將傳輸圖案與比例因子選擇信息7一起輸出。在第2層中,比例因子選擇信息7和1~3個比特的傳輸圖案作為每個塊的比例因子傳輸。
快速傅立葉變換(FFT)單元8在第1層中以512個樣本為單位、在第2層中以1024個樣本為單位使音頻信號S1經受快速傅立葉變換處理。
心理聲學模型單元9利用預定的心理聲學模型,根據快速傅立葉變換單元8的處理結果和通過比例因子提取單元6檢測的比例因子,來計算每個子帶的SMR(信號掩蔽比)。SMR是從各個子帶信號獲取的、從而得出用于各個子帶信號比特分配的評價標準的每個子帶信號的評價值。SMR為子帶信號的最大振幅值和通過人類聽覺或感知特性掩蔽的最大振幅值(掩蔽閾值)之間的比(信號掩蔽比)。
動態比特分配單元4計算可分配用于音頻信號S1自身傳輸的比特量,并根據SMR來計算已算出的比特量中將要分配給各個子帶的比特量。另外,動態比特分配單元4計算每個子帶信號的量化比例。動態比特分配單元4控制線性量化器3以算出的要分配的比特量和算出的量化比例來對每個子帶信號進行編碼。另外,通過從可用比特總數中減去報頭、CRC碼、輔助碼數據、及比特分配數據來獲得可分配用于音頻信號S1自身傳輸的比特量。
補充信息編碼單元10接收被分配給每個子帶信號的比特量、量化比例數據、比例因子數據等作為解碼所需的輸入數據,對所輸入的數據進行編碼,隨后將結果輸出至比特流形成單元5。
圖17是簡要表示動態比特分配單元4的處理的流程圖。動態比特分配單元4針對音頻信號S1的每個塊執行該處理程序。
具體來說,開始該處理程序后,動態比特分配單元4根據在心理聲學模型單元9中算出的SMR來計算每個子帶信號的MNR(掩蔽噪聲比)。MNR是用于向各個子帶信號分配比特的評價標準。MNR通過從SNR(信噪比)[dB]中減去SMR[dB]來求得。另外,SNR為當通過例如n個比特執行量化時每個子帶信號的SNR。由于在開始圖17的處理后沒有立刻將比特分配給每個子帶信號,所以初始值應用于n。
接下來,動態比特分配單元4從步驟SP1前進至步驟SP2,此處,動態比特分配單元4搜索每個子帶信號的MNR,檢測具有最低值的MNR。在接下來的步驟SP3中,動態比特分配單元4計算將要分配給具有所檢測出的MNR的子帶信號的比特量,并將算出的比特量分配給該子帶信號。在接下來的步驟SP4中,動態比特分配單元4確定是否完成了所有可分配比特的分配。當在步驟SP4中獲得否定結果時,動態比特分配單元4重新計算在步驟SP3中被分配了比特的子帶信號的MNR。隨后,動態比特分配單元4返回步驟SP2。另一方面,當在步驟SP4中獲得肯定結果時,動態比特分配單元4從步驟SP4前進至步驟SP5,結束處理程序。
圖18和圖19是詳細表示圖17中處理程序的流程圖。另外,盡管圖17中步驟SP4的處理在步驟SP3后執行,但圖17是為了便于理解而描述了方便的處理程序。實際上,如圖18和圖19所示,相應于步驟SP3和步驟SP4的處理是以與圖17的實例相反的順序提供的。
具體來說,開始該處理程序后,動態比特分配單元4計算每個子帶信號的MNR。動態比特分配單元4從步驟SP11前進至步驟SP12,此處,動態比特分配單元4將已經完成了分配的比特的總數(alloc_bit_total)初始化為0。
接下來,動態比特分配單元4前進至步驟SP13,此處,動態比特分配單元4初始化各種變量。另外,ch是用于識別音頻信號S1的信道的變量。min_ch和min_sb分別為用于識別具有最小值的MNR的信道和子帶信號的變量。min_mnr為MNR的最小值。動態比特分配單元4將ch初始化為0,將min_ch和min_sb初始化為-1,將min_mnr初始化為可能值的最大值MAX。
接下來,在步驟SP14中,動態比特分配單元4將用于識別子帶信號的變量sb初始化為0。在接下來的步驟SP15中,動態比特分配單元4確定是否還沒完成對由變量ch識別的信道的由變量sb識別的子帶信號(used[ch][sb])的比特分配,并確定該子帶信號的MNR值是否低于變量min_mnr的值。
另外,確定對于由變量ch識別的信道的由變量sb識別的子帶信號(used[ch][sb])的比特分配還沒完成的情況是已經完成分配的比特的總數(alloc_bit_total)超過可分配比特的總數(total_bit)的情況,或者是被分配給該子帶信號的比特數超過可分配給一個子帶信號的比特數的情況。另外,在聯合立體聲的情況下,當完成了對于相應信道的子帶信號的比特分配時,確定完成了對于相應子帶信號的比特分配。
當在步驟SP15中獲得肯定結果時,動態比特分配單元4從步驟SP15前進至步驟SP16。在步驟SP16中,動態比特分配單元4將最小MNR值min_mnr更新為由變量ch和sb識別的信道和子帶信號的MNR。另外,動態比特分配單元4用變量ch更新用于識別具有最小MNR值的信道的變量min_ch。進一步,動態比特分配單元4用變量sb更新用于識別具有最小MNR值的子帶信號的變量min_sb。隨后,動態比特分配單元4前進至步驟SP17。
另一方面,當在步驟SP15中獲得否定結果時,動態比特分配單元4從步驟SP15直接前進至步驟SP17。在步驟SP17中,動態比特分配單元4確定變量sb的值是否低于子帶總數(last_sb)的值。當在步驟SP17中獲得肯定結果時,動態比特分配單元4前進至步驟SP18,此處,動態比特分配單元4將變量sb的值加1,從而將作為處理對象的子帶信號變為隨后的子帶信號。然后,動態比特分配單元4返回步驟SP15。另一方面,當在步驟SP17中得到否定結果時,動態比特分配單元4從步驟SP17前進至步驟SP19。在步驟SP19中,動態比特分配單元4確定變量ch的值是否低于信道總數(last_ch)的值。當在步驟SP19中得到肯定結果時,動態比特分配單元4前進至步驟SP20,此處,動態比特分配單元4將變量ch的值加1,從而將作為處理對象的信道改變為隨后的信道。隨后,動態比特分配單元4返回步驟SP14。
通過步驟SP13~SP20的處理,動態比特分配單元4持續地改變信道和子帶信號,并檢測最小MNR值,從而執行上述參照圖17所描述的步驟SP2的處理。當對所有信道和子帶信號執行了步驟SP13~SP20的處理后,在步驟SP19中得到肯定結果。動態比特分配單元4從步驟SP19前進至步驟SP21(圖19)。
在步驟SP21中,動態比特分配單元4確定用于識別具有最小MNR值的子帶信號的變量min_sb是否維持在初始值(-1)。當變量min_sb被維持在初始值(-1)時,在步驟SP15中,對于所有信道的所有子帶信號獲得否定結果。在這種情況下,動態比特分配單元4從步驟SP21前進至步驟SP22,此處,動態比特分配單元4結束處理程序。另外,步驟SP21和步驟SP22對應于上述參照圖17所描述的步驟SP3和步驟SP4。
另一方面,當在步驟SP21中得到否定結果時,動態比特分配單元4從步驟SP21前進至步驟SP23。在該步驟SP23中,動態比特分配單元4計算將要分配給由變量min_ch識別的信道的由變量min_sb識別的子帶信號的比特數(alloc_bit)。
在接下來的步驟SP24中,動態比特分配單元4將在步驟SP23中算出的比特數(alloc_bit)與迄今為止已經完成分配的比特的總數(alloc_bit_total)相加,并確定相加值(alloc_bit_total+alloc_bit)是否低于可分配比特的總數(total_bit)。
當在步驟SP24中獲得肯定結果時,動態比特分配單元4前進至步驟SP25,此處,動態比特分配單元4將相加值(alloc_bit_total+alloc_bit)設置為完成分配的比特的總數(alloc_bit_total)。另外,動態比特分配單元4將分配給由變量min_ch識別的信道的由變量min_sb識別的子帶信號的比特數增加在步驟SP23中算出的比特數,將由變量min_ch識別的信道的由變量min_sb識別的子帶信號所用的量化步長(quantization step)減少一步。進一步,動態比特分配單元4重新計算該子帶信號的MNR,并將分配給該子帶信號的比特數減1。
接下來,動態比特分配單元4前進至步驟SP26,其中,動態比特分配單元4確定已經被分配給子帶信號的比特數是否超過了可分配給一個子帶信號的比特數。當在步驟SP26中獲得否定結果時,動態比特分配單元4從步驟SP26返回至步驟SP13。另一方面,當在步驟SP26中獲得肯定結果時,動態比特分配單元4從步驟SP26前進至步驟SP27,其中,動態比特分配單元4將子帶信號設置為比特分配完成狀態。隨后,動態比特分配單元4返回步驟SP13。而且,當在步驟SP24中獲得否定結果時,動態比特分配單元4從步驟SP24前進至步驟SP27,其中,動態比特分配單元4設置子帶信號為比特分配完成狀態。隨后,動態比特分配單元4返回步驟SP13。
通過步驟SP23~SP27的處理,動態比特分配單元4為具有通過步驟SP13~SP20所檢測的最小MNR值的子帶信號分配比特。因此,步驟SP23~步驟SP27相應于圖17中的步驟SP4。
針對這種編碼處理,日本專利公開Hei 8-123488等中提出了各種設備。
當在持續計算評價標準的情況下向每個子帶信號分配比特時,每次當已經將比特分配給一個子帶信號后,要再次搜索所有子帶信號的MNR來檢測最小值。因此,過去的編碼處理存在具有嚴重處理負擔的問題。
發明內容
鑒于上述問題提出本發明,期望提供一種當根據心理聲學分析對音頻信號進行編碼時,與現有實例相比能夠降低處理負擔的音頻信號編碼方法、音頻信號編碼方法的程序、其上記錄有音頻信號編碼方法的程序的記錄介質、及音頻信號編碼裝置。
根據本發明的實施例,提供一種用于將音頻信號劃分為多個子帶信號、根據心理聲學分析為子帶信號分配比特、并對音頻信號進行編碼的音頻信號編碼方法,該音頻信號編碼方法包括以下步驟根據心理聲學分析,計算用于為每個子帶信號分配比特的評價標準;對評價標準排序;及通過重復比特分配步驟、評價標準重新計算步驟、和重新排序步驟為多個子帶信號分配比特。在該音頻信號編碼方法中,比特分配步驟是從多個子帶信號中選擇一個子帶信號、并根據排序步驟的排序結果和重新排序步驟的排序結果中的一個為子帶信號分配比特的步驟,評價標準重新計算步驟是重新計算在比特分配步驟中被分配了比特的子帶信號的評價標準的步驟,重新排序步驟是將在評價標準重新計算步驟中算出的評價標準應用于相應的子帶信號并對評價標準排序的步驟,并且重新排序步驟通過部分改變在緊前一步的比特分配步驟中比特分配所使用的排序結果的順序來對評價標準排序。
根據本發明的實施例,提供了一種音頻信號編碼方法的程序,該音頻信號編碼方法將音頻信號劃分為多個子帶信號、根據心理聲學分析為子帶信號分配比特并對音頻信號進行編碼,該程序通過運算處理裝置執行,該程序包括以下步驟根據心理聲學分析,計算用于為每個子帶信號分配比特的評價標準;對評價標準排序;及通過重復比特分配步驟、評價標準重新計算步驟、及重新排序步驟為多個子帶信號分配所述比特。在該程序中,比特分配步驟是從多個子帶信號中選擇一個子帶信號、并根據排序步驟的排序結果和重新排序步驟的排序結果中的一個為子帶信號分配比特的步驟,評價標準重新計算步驟是重新計算在比特分配步驟中被分配了比特的子帶信號的評價標準的步驟,重新排序步驟是將在評價標準重新計算步驟中算出的評價標準應用于相應的子帶信號并對評價標準排序的步驟,并且重新排序步驟通過部分改變在緊前一步的比特分配步驟中比特分配所使用的排序結果的順序來對評價標準排序。
根據本發明的實施例,提供一種其上記錄有音頻信號編碼方法的程序的記錄介質,該音頻信號編碼方法將音頻信號劃分為多個子帶信號、根據心理聲學分析為子帶信號分配比特并對音頻信號進行編碼,該程序通過運算處理裝置執行,該程序包括以下步驟根據心理聲學分析,計算用于為每個子帶信號分配比特的評價標準;對評價標準排序;及通過重復比特分配步驟、評價標準重新計算步驟、及重新排序步驟為多個子帶信號分配所述比特。在該程序中,比特分配步驟是從多個子帶信號中選擇一個子帶信號、并根據排序步驟的排序結果和重新排序步驟的排序結果中的一個為子帶信號分配比特的步驟,評價標準重新計算步驟是重新計算在比特分配步驟中被分配了比特的子帶信號的評價標準的步驟,重新排序步驟是將在評價標準重新計算步驟中算出的評價標準應用于相應的子帶信號并對評價標準排序的步驟,并且重新排序步驟通過部分改變在緊前一步的比特分配步驟中比特分配所使用的排序結果的順序來對評價標準排序。
根據本發明的實施例,提供了一種音頻信號編碼裝置,用于將音頻信號劃分為多個子帶信號、根據心理聲學分析為子帶信號分配比特并對音頻信號進行編碼。在該音頻信號編碼裝置中,根據心理聲學分析計算用于為每個子帶信號分配比特的評價標準;對評價標準進行排序;通過重復比特分配、評價標準重新計算、及重新排序為多個子帶信號分配比特;在比特分配中,從多個子帶信號中選擇一個子帶信號,并根據排序的排序結果和重新排序的排序結果中的一個為子帶信號分配比特;在評價標準重新計算中,重新計算在比特分配中被分配了比特的子帶信號的評價標準;在重新排序中,將在評價標準重新計算中算出的評價標準應用于相應的子帶信號,并對評價標準排序;并且在重新排序中,通過部分改變在緊前一步的比特分配中比特分配使用的排序結果的順序來對評價標準排序。
根據上述實施例的結構,預先對用于比特分配的評價標準排序,并檢測分配了比特的子帶信號。當要對重新算出的評價標準進行排序時,能夠通過部分改變最近排序結果的順序來對評價標準排序。因此,能夠通過與現有實例相比更簡單的處理來檢測分配了比特的子帶信號。因此,當根據心理聲學分析編碼音頻信號時,與現有實例相比,能夠降低處理負載。
根據本發明,當根據心理聲學分析編碼音頻信號時,與現有實例相比,能夠降低處理負載。
圖1是根據本發明第一實施例的編碼器中的動態比特分配單元4的處理程序的流程圖;圖2A、2B和2C是輔助說明圖1的處理程序的示意圖;圖3A、3B和3C是示出接續圖2A、2B和2C的狀態的示意圖;圖4A、4B和4C是示出接續圖3A、3B和3C的狀態的示意圖;圖5是表示圖1的處理程序中的步驟SP42及相關處理的細節的流程圖;圖6是表示圖1中的步驟SP43、SP44和SP46的處理程序的細節的流程圖;圖7A、7B和7C是輔助說明圖6的處理程序的示意圖;圖8是表示圖1中步驟SP45的處理的細節的流程圖;圖9是根據本發明第二實施例的編碼器中的動態比特分配單元4的處理程序的流程圖;圖10A、10B和10C是輔助說明圖9的處理程序的示意圖;圖11A、11B和11C是示出接續圖10A、10B和10C的狀態的示意圖;圖12是表示圖9的處理程序中的步驟SP100的處理細節的流程圖;
圖13是輔助說明噪聲出現的特性曲線圖;圖14是輔助說明噪聲防止的特性曲線圖;圖15是根據本發明第三實施例的編碼器中的動態比特分配單元4的處理程序的流程圖;圖16示出了編碼器的方框圖;圖17是以往編碼器中的動態比特分配單元4的處理程序的流程圖;圖18是表示圖17的處理程序的細節的流程圖;以及圖19是接續圖18的流程圖。
具體實施例方式
下文中,將適當參照附圖詳細描述本發明的優選實施例。
(1)實施例的構成與圖17相比,圖1是根據本發明第一實施例的編碼器中的動態比特分配單元4的處理程序的流程圖。除了根據第一實施例的編碼器中的動態比特分配單元4的處理程序不同之外,根據第一實施例的編碼器以與上文參照圖16描述的編碼器相同的方式構成。因此,將適當地使用圖16的結構來進行下面的說明。
動態比特分配單元4對音頻信號S1中設置的每個塊執行處理程序,從而向每個子帶信號分配比特。開始該處理程序,如上面參照圖17所述,動態比特分配單元4計算每個子帶信號的MNR。然后,動態比特分配單元4從步驟SP41前進至步驟SP42,此處,動態比特分配單元4以升序方式排序所算出的MNR。
如圖2A、2B和2C所示,動態比特分配單元4在未示出的存儲器中確保一定區域,按照MNR,針對所有信道的所有子帶信號對包括MNR(p_mnr(圖2B))、用于識別檢測出了MNR的信道和子帶信號的索引index(圖2A)、及表示索引index的處理狀態的狀態used(圖2C)的組合進行排序,隨后將結果存儲在存儲器中。狀態(used)的0值表示沒有分配比特的狀態;狀態(used)的1值表示被分配了比特的狀態;而狀態(used)的2值表示完成了比特分配的狀態。所設定的一定區域具有足夠的自由空間,從而存儲所有信道的所有子帶信號的包括索引index、狀態used、及MNR的組合,并重復隨后將描述的步驟SP44的處理。
因此,在圖2A、2B和2C的實例中,存儲空間中由變量no=0識別的開頭區域中存儲的是index=4、p_mnr=20、及used=0的組合。下文中,存儲器中記錄的MNR、用于識別檢測出了MNR的信道和子帶信號的索引index、及表示索引index的處理狀態的狀態used的組合將被適當地稱作MNR組合。變量no識別MNR組合。
接下來,動態比特分配單元4前進至步驟SP43,在該步驟中,動態比特分配單元4檢測在排序結果的開頭處所記錄的具有最低值的MNR。另外,根據檢測出的MNR的索引index,動態比特分配單元4為相應信道的子帶信號分配比特,然后重新計算被分配了比特的子帶信號的MNR。
隨后,動態比特分配單元4前進至步驟SP44,此處,動態比特分配單元4確定是否完成了所有可分配比特的分配。當在步驟SP44中得到否定結果時,動態比特分配單元4前進至步驟SP45。在該步驟SP45中,動態比特分配單元4采用步驟SP44中重新算出的MNR,對存儲器中記錄的MNR進行再排序。
如圖3A、3B和3C所示,在步驟SP44的排序處理中,動態比特分配單元4通過部分改變迄今為止的排序結果的順序來對MNR排序。具體來說,動態比特分配單元4在記錄有排序結果的存儲器中,如箭頭所示將迄今為止的排序結果的組合連續移向末端,直至檢測到具有低于重新算出的MNR的值的MNR。當檢測到具有低于重新算出的MNR的值的MNR時,動態比特分配單元4將包括重新算出的MNR的組合記錄在通過移動組合而得到的自由空間中。因此,圖3A、3B和3C的實例是這樣的一種情況向存儲空間的開頭區域中存儲的index=4的子帶信號分配比特,通過重新計算MNR得到值44,將no=7~9的組合的記錄一個接一個地移向末端,然后將重新計算的結果記錄到通過移動組合得到的no=7的自由空間中。如陰影所示,在重新計算并排序MNR后,動態比特分配單元4從隨后處理的對象中排除包括重新計算前的MNR的記錄。
在完成步驟SP45的處理后,動態比特分配單元4返回步驟SP43,此處,動態比特分配單元4從通過步驟SP45中的排序獲得的排序結果中,檢測出在處理對象的開頭記錄的具有最低值的MNR。因此,在圖3A、3B和3C的實例中,通過no=1識別的index=9的MNR被檢測為具有最低值的MNR。因此,在這種情況下,如圖4A、4B和4C所示,動態比特分配單元4在步驟SP43中為index=9的子帶信號分配比特,并重新計算MNR,隨后在步驟SP45中進一步排序MNR。另外,圖4A、4B和4C示出了通過index=9的子帶信號的重新計算而獲得具有值32的MNR的情況。另外,如將在后面描述的一樣,當作為在步驟SP43中分配比特的結果而完成了對被分配了比特的子帶信號的比特分配時,動態比特分配單元4省去步驟SP45的處理,并重復步驟SP43的處理。
圖5是表示圖1的處理程序中的步驟SP42及相關處理的細節的流程圖。開始該處理程序,例如,當以一個比特執行量化時,動態比特分配單元4計算每個子帶信號的MNR。隨后,動態比特分配單元4從步驟SP51前進至步驟SP52。
在步驟SP52中,動態比特分配單元4將表示已經完成分配的比特的數目的比特總數(alloc_bit_total)初始化為0值。另外,為了與現有實例的表達一致,在下文中,索引index將為ch=index/last_sb,并且sb=index%last_sb。因此,p_mnr[index]表示與mnr[ch][sb]相同的值。另外,%表示用于求余數的余數計算,ch和sb為識別信道和子帶信號的變量。
接下來,動態比特分配單元4前進至步驟SP53,此處,動態比特分配單元4將各個變量no和變量sort_num初始化為0值。另外,變量sort_num表示將被排序的對象數。圖5表示的處理中的變量no表示排序對象。
接下來,動態比特分配單元4前進至步驟SP54,此處,動態比特分配單元4確定變量no的值是否低于通過將信道的總數last_ch乘以子帶的總數last_sb獲得的乘積值last_ch×last_sb,從而確定是否沒有完成所有排序對象的處理。
當在步驟SP54中獲得肯定結果時,動態比特分配單元4前進至步驟SP55。在步驟SP55中,動態比特分配單元4將變量no轉換成用于識別信道和子帶信號的變量ch和變量sb。
在接下來的步驟SP56中,動態比特分配單元4確定由變量ch所識別的信道的由變量sb識別的子帶信號的狀態used[ch][sb],從而確定是否完成了對該子帶信號的比特分配。
當在步驟SP56中獲得否定結果時,動態比特分配單元4前進至步驟SP57。在步驟SP57中,動態比特分配單元4將通過變量no識別的MNR組合存儲在迄今為止存儲在存儲器中的MNR組合的末端的隨后的區域sort_num中。另外,order[x]=y表示由no=y識別的組合存儲在從存儲空間的開頭側開始的第x個區域中,或者說,由no=y所識別的組合被載入從存儲空間的開頭側開始的第x個區域中。在本實施例中,在步驟SP57中被存儲在存儲器中的MNR組合為排序對象。另外,動態比特分配單元4將用于通過存儲空間中的記錄順序來識別與排序對象進行比較的比較對象的變量m設置為sort_num-1,從而將存儲在緊接排序對象之前位置處的MNR組合設置為比較對象。動態比特分配單元4還將表示排序數的變量sort_num加1。通過執行步驟SP57的處理,動態比特分配單元4準備好排序。
接下來,動態比特分配單元4前進至步驟SP58,此處,動態比特分配單元4確定變量m是否大于0。當排序對象為記錄在存儲空間開頭處的MNR組合時,該組合之前沒有MNR組合記錄,因此無比較對象。另外,在將比較對象從末尾端連續改變至開頭端并且第一MNR組合成為比較對象后,沒有比較對象。因此,在這些情況下,動態比特分配單元4在步驟SP58中獲得否定結果,然后從步驟SP58前進至步驟SP59。
在步驟SP59中,動態比特分配單元4將排序對象的組合記錄在存儲空間的開頭(order
=no)。
接下來,動態比特分配單元4前進至步驟SP60,此處,動態比特分配單元4將變量no加1,隨后返回步驟SP54。
另一方面,當在步驟SP58中獲得肯定結果時,動態比特分配單元4前進至步驟SP61。在步驟SP61中,動態比特分配單元4確定由變量no識別的組合的MNR(p_mnr[no])是否低于由變量m識別的組合的MNR(p_mnr[order[m]]),即,排序對象的MNR是否低于比較對象的MNR。
當在步驟SP61中獲得肯定結果時,動態比特分配單元4前進至步驟SP62,此處,動態比特分配單元4將存儲空間中比較對象的記錄向末尾端移動1(order[m+1]=order[m])。另外,動態比特分配單元4將變量m減1,從而將比較對象變為緊前位置處記錄的組合。隨后,動態比特分配單元4返回步驟SP58。
另一方面,當在步驟SP61中獲得否定結果時,動態比特分配單元4從步驟SP61前進至步驟SP63,此處,動態比特分配單元4將排序對象的組合記錄在移動比較對象前的記錄位置(order[m+1]=no)。隨后,動態比特分配單元4前進至步驟SP60。
動態比特分配單元4通過執行步驟SP53~SP63的處理,將MNR組合連續存儲在存儲空間中。此時,每一次將一個組合存儲在存儲器中時,如上述參照圖3A、3B和3C所述,在存儲空間中將已經存儲的組合連續地移向末尾端,直至檢測到具有低于將要存儲的MNR的值的MNR,然后在作為結果創建的自由空間中存儲MNR組合,從而執行排序處理。
當完成排序處理時,動態比特分配單元4在步驟SP54中獲得否定結果,隨后前進至步驟SP43。
圖6是表示圖1中步驟SP43、SP44及SP46的處理程序的細節的流程圖。另外,盡管在圖1中步驟SP44的處理在步驟SP43后執行,但是圖1為了便于理解而描述了方便的處理程序。實際上,該處理程序以圖6所示的順序執行。具體來說,開始處理程序,動態比特分配單元4前進至步驟SP71,此處,動態比特分配單元4將變量no初始化為0。
接下來,動態比特分配單元4前進至步驟SP72,此處,動態比特分配單元4確定變量no的值是否低于排序數sort_num,從而確定是否結束處理。當變量no等于或大于排序數sort_num時,動態比特分配單元4從步驟SP72前進至步驟SP73,此處,動態比特分配單元4結束處理程序。因此,步驟SP72和步驟SP73相應于上文參照圖1所述的步驟SP44和步驟SP46。
另一方面,當變量no的值低于排序數sort_num時,動態比特分配單元4從步驟SP72前進至步驟SP74。在步驟SP74中,動態比特分配單元4檢測在存儲空間中由變量no識別的組合的索引index(index=order[no]),并將索引index轉換為識別信道和子帶信號的變量min_ch和min_sb(min_ch=index/last_sb并且min_sb=index%last_sb)。因此,在這種情況下,在處理對象中檢測出在存儲空間的開頭區域經過排序并記錄的具有最低值的MNR。
接下來,動態比特分配單元4前進至步驟SP75,此處,動態比特分配單元4確定針對步驟SP74中檢測出的索引index的組合所設置的狀態used[min_ch][min_sb],從而確定是否完成了對索引index的子帶信號的比特分配。
當在步驟SP75中獲得肯定結果時,動態比特分配單元4從步驟SP75前進至步驟SP76,此處,動態比特分配單元4將變量no加1。隨后,動態比特分配單元4返回步驟SP72。另一方面,當在步驟SP75中獲得否定結果時,動態比特分配單元4從步驟SP75前進至步驟SP77。
因此,動態比特分配單元4以步驟SP71、SP72、SP74及SP75的順序來執行處理,并且當在步驟SP75中獲得肯定結果時,動態比特分配單元4以步驟SP76、SP72、SP74及SP75的順序進一步執行處理。從而,動態比特分配單元4從存儲器中被記錄為處理對象的組合中,檢測出沒有完成比特分配并且具有在最靠前位置處記錄的最低MNR的組合。
當檢測具有最低MNR的組合時,動態比特分配單元4從步驟SP75前進至步驟SP77,此處,動態比特分配單元4計算要分配給具有最低MNR的組合的子帶信號(在步驟SP74中所檢測的子帶信號)的比特量(alloc_bit)。在接下來的步驟SP78中,動態比特分配單元4將算出的比特量(alloc_bit)與比特總數(alloc_bit_total)相加,并確定相加值(alloc_bit_total+alloc_bit)是否低于可分配的比特總數(total_bit)。
當在步驟SP78中得到肯定結果時,動態比特分配單元4前進至步驟SP79,此處,動態比特分配單元4將相加值(alloc_bit_total+alloc_bit)設置為完成分配的比特的總數(alloc_bit_total)。另外,動態比特分配單元4將由變量no識別的組合的狀態used設置為表示比特被分配的狀態的值1。然后,動態比特分配單元4將在步驟SP77中算出的比特數與分配給由變量no識別的組合的子帶信號的比特數相加,并重新計算MNR。然后,動態比特分配單元4將由變量min_ch識別的信道的由變量min_sb識別的子帶信號的量化步長減少1步。然后,動態比特分配單元4將分配給子帶信號的比特數減1。
接下來,在步驟SP80中,動態比特分配單元4確定已經被分配給由變量no識別的組合的子帶信號的比特數是否超過可分配給一個子帶信號的比特數,從而確定是否完成了子帶信號的比特分配。
當在步驟SP80中得到肯定結果時,動態比特分配單元4前進至步驟SP81,此處,動態比特分配單元4將在步驟SP79中狀態used已經被設置為值1的組合的狀態used改變為表示完成了比特分配的值2。隨后,動態比特分配單元4返回步驟SP76。
因此,當完成了對在步驟SP79中被分配了比特的子帶信號的比特分配時,動態比特分配單元4從步驟SP81前進至步驟SP76。如用于與圖4A、4B和4C比較的圖7A、7B和7C所示,在這種情況下,將比特分配給具有下一個最低MNR的子帶信號,而不用執行排序處理,從而減少了排序數。另外,圖7A、7B和7C示出了索引index=5的子帶信號被檢測為具有最低MNR并完成了子帶信號比特分配的子帶信號的情況。在這種情況下,不執行索引index=5的子帶信號的排序,并將比特分配給索引index=8的下一個子帶信號。
圖8是表示圖1中步驟SP45的處理細節的流程圖。開始該處理程序后,動態比特分配單元4前進至步驟SP84,此處,動態比特分配單元4將先前步驟SP79中被分配了比特的子帶信號的組合存儲在存儲于存儲器中的MNR組合的末端的隨后區域sort_num中(order[sort_num]=index)。另外,動態比特分配單元4將存儲在末尾端隨后的位置處的組合設置為排序對象。然后,動態比特分配單元4將用于識別比較對象的變量m設置為sort_num-1,從而將排序對象緊前位置處記錄的MNR組合設置為比較對象。然后,動態比特分配單元4將變量sort_num加1。
接下來,動態比特分配單元4前進至步驟SP85,此處,動態比特分配單元4確定變量m是否高于值no+1。在將比較對象從末尾端連續改變至開頭端,并且位于處理對象開頭處的MNR組合變為比較對象后,不存在比較對象。因此,在這些情況下,動態比特分配單元4在步驟SP85中得到否定結果,并從步驟SP85前進至步驟SP86。
在步驟SP86中,動態比特分配單元4將排序對象的組合記錄在存儲空間的第(no+1)位置處(order[no+1]=index)。另外,該組合的MNR是步驟SP79中重新算出的MNR。另外,在步驟SP86中,當設置排序對象的組合的記錄位置(order[])并設置變量sort_num,使得對于在先前步驟SP80中獲得肯定結果并這樣完成了比特分配的子帶信號不被包括為隨后排序處理中的比較對象時,能夠進一步降低處理負擔。
接下來,動態比特分配單元4前進至步驟SP87,此處,動態比特分配單元4將變量no加1。動態比特分配單元4返回步驟SP72(圖6)。
另一方面,當在步驟SP85中獲得肯定結果時,動態比特分配單元4前進至步驟SP88。在步驟SP88中,動態比特分配單元4確定由索引index識別的排序對象的MNR(p_mnr[index])是否低于由變量m識別的組合的MNR(p_mnr[order[m]])。
當在步驟SP88中獲得肯定結果時,動態比特分配單元4前進至步驟SP89,此處,動態比特分配單元4將存儲空間中比較對象的記錄向末尾端移動1(order[m+1]=order[m])。另外,動態比特分配單元4將變量m減1,從而將比較對象變成記錄在緊前位置處的組合。隨后,動態比特分配單元4返回步驟SP85。
另一方面,當在步驟SP88中獲得否定結果時,動態比特分配單元4從步驟SP88前進至步驟SP90,此處,動態比特分配單元4將排序對象的組合記錄在比較對象緊后的記錄位置處(order[m+1]=index)。隨后,動態比特分配單元4前進至步驟SP87。
(2)實施例的操作通過上述構成,在根據本實施例的編碼器中(見圖16),子帶分析濾波器組2將連續輸入的音頻信號S1劃分為多個子帶信號,并且線性量化器3量化每個子帶信號。比特壓縮單元11對量化處理的結果進行比特壓縮,隨后,比特流形成單元5將比特壓縮結果轉換成比特流S2,并輸出比特流S2。快速傅立葉變換單元8使音頻信號S1經受快速傅立葉變換處理。心理聲學模型單元9分析快速傅立葉變換處理的結果,并檢測每個子帶信號的SMR(信號掩蔽比)。動態比特分配單元4根據信號掩蔽比SMR來確定音頻信號S1的每個子帶信號的MNR(掩蔽噪聲比),并根據MNR來確定比特分配和量化比例。線性量化器3通過該比特分配及量化比例來執行量化處理。
動態比特分配單元4中的比特分配處理通過重復從分配比特的多個子帶信號中檢測具有最低值的MNR的處理和為檢測出的子帶信號分配比特并重新計算MNR的處理、及為每個信道的每個子帶信號分配所有可分配比特來執行。另外,設置每個子帶信號的量化比例,從而對應于該比特分配。
在本實施例中,動態比特分配單元4(圖1)首先以MNR的升序來排序各個子帶的MNR,并向具有記錄在排序結果開頭處的MNR的子帶信號分配比特(圖2A、2B和2C)。重新計算并重新排序被分配了比特的子帶信號的MNR(圖3A、3B和3C)。向具有記錄在經過重新排序的MNR的開頭處的MNR的子帶信號分配比特。動態比特分配單元4重復重新計算和重新排序MNR的處理以及向具有記錄在經過重新排序的MNR的開頭處的MNR的子帶信號分配比特的處理,從而為每個信道的每個子帶信號分配所有比特。
因此,動態比特分配單元4預先執行排序,隨后檢測分配了比特的子帶信號。因此,與現有實例相比,能夠更快地檢測分配了比特的子帶信號。
具體來說,首先根據初始設置來計算音頻信號S1的MNR,并在存儲器中一個接一個地存儲并排序所算出的MNR、索引index及狀態used的組合(圖5)。
此時,在已經被存儲在存儲器中的一行MNR組合的末端處存儲一個MNR組合(步驟SP57(圖5)),并改變該MNR組合與被存儲在緊前位置處的組合之間的排列順序,直至檢測到具有更低值的MNR為止(以步驟SP58、SP61、SP62、SP58、...、SP58、SP61及SP63的順序,或以步驟SP58、SP61、SP62、SP58、...、SP58及SP59的順序(圖5)),從而執行排序。
作為排序結果,存儲在開頭處的MNR組合包括具有最低值的MNR,并向位于開頭處的組合的信道和子帶信號分配比特(以步驟SP71和SP74、SP75及SP77的順序(圖6))。
另外,對于重新算出的MNR,從處理對象中排除已經存儲在存儲器中的相應MNR,并在已經存儲在存儲器中的一行MNR組合的末端處存儲該重新算出的MNR(步驟SP84(圖8))。直至檢測到具有更低值的MNR時,改變該MNR組合與存儲在緊前位置處的組合之間的排列順序,從而執行排序(以步驟SP85、SP88、SP89、SP88、...、SP85、SP88及SP87的順序,或以步驟SP85、SP88、SP89、SP88、...、SP85及SP90的順序(圖8))。
作為重新算出的MNR的排序結果,存儲在開頭處的MNR組合包括具有最低值的MNR,并向位于開頭處的組合的信道和子帶信號分配比特(以步驟SP71和步驟SP74、SP75及SP77的順序(圖6))。
因此,當完成對位于排序結果開頭處的組合的子帶信號的比特分配時,能夠為排序結果中的下一個組合的子帶信號分配比特(以步驟SP56、SP60、SP54、SP55、SP56及SP57的順序(圖5))。因此,能夠減少作為處理進程的排序次數,并且能夠簡化對能夠被分配比特的子帶信號的最小MNR的檢測處理。
盡管預先排序了MNR并快速檢測出最小MNR,但是在本實施例中對MNR進行了排序,因此,看起來處理負擔與現有實例的處理負擔沒有什么不同。然而,在本實施例中,當要對重新算出的MNR進行排序時,將該重新算出的MNR的組合存儲在已經存儲在存儲器中的排序結果的末端處,之后改變該重新算出的MNR的組合與存儲在緊前位置處的組合之間的排列順序,直至檢測到具有更低值的MNR位置,由此執行排序。因此,有效地利用了迄今為止的排序結果。因此,總體看來,與現有實例相比,能夠降低處理負擔。實際上,當像本實施例中一樣執行排序處理及比特分配時,與通過現有實例執行的處理相比,編碼器的處理量總體上能夠降低52[%]。
(3)實施例的效果根據上述構成,預先對MNR排序并檢測分配了比特的子帶信號。當要對重新算出的MNR進行排序時,將該重新算出的MNR的組合存儲在已經被存儲在存儲器中的一行MNR組合的末尾端處,此后,改變該重新算出的MNR的組合與存儲在緊前位置處的組合之間的排列順序,直至檢測到具有更低值的MNR,從而執行排序。因此,能夠有效地利用迄今為止的排序結果,并且通過部分地改變迄今為止的排序結果的順序來排序MNR。因此,與現有實例相比,能夠降低處理負擔。
圖9是表示根據本發明第二實施例的編碼器中的動態比特分配單元4的處理程序的流程圖,用于與圖1進行比較。除了根據第二實施例的編碼器中的動態比特分配單元4的處理程序不同之外,根據第二實施例的編碼器以與參照圖16如上所述的編碼器相同的方式構成。因此,將適當使用圖16的結構來進行下面的說明。另外,除了步驟SP100中重新排序處理不同之外,動態比特分配單元4以與上文參照圖1所述的編碼器中相同的方式構成。因此,在下面的說明中,與在第一實施例中所描述的動態比特分配單元4的處理相同的處理用相同的附圖標號表示,并將省去其重復的說明。
與第一實施例的動態比特分配單元4一樣,開始該處理程序后,動態比特分配單元4從步驟SP99前進至步驟SP42,此處,動態比特分配單元4對每個子帶信號的MNR與索引index等一起進行排序,并將每個子帶信號的MNR與索引index等一起存儲在存儲器中。在接下來的步驟SP43中,動態比特分配單元4向具有最低值的MNR的子帶信號分配比特,隨后重新計算被分配了比特的子帶信號的MNR。在接下來的步驟SP44中,動態比特分配單元4確定是否分配了所有可分配的比特。當在步驟SP44中獲得否定結果時,動態比特分配單元4從步驟SP44前進至步驟SP100。
在這個步驟SP100中,動態比特分配單元4將在步驟SP44中重新算出的MNR應用于對存儲器中記錄的MNR進行重新排序。
在步驟SP100中的排序處理中,動態比特分配單元4通過部分改變迄今為止的排序結果的順序來排序MNR。此時,如與圖3A、3B和3C進行比較的圖10A、10B和10C所示,按照箭頭所示,動態比特分配單元4在記錄了排序結果的存儲器中,將迄今為止的排序結果的組合連續移向開頭側,直至檢測到具有高于重新算出的MNR的值的MNR。當檢測到具有高于該重新算出的MNR的值的MNR時,動態比特分配單元4將包括該重新算出的MNR的組合記錄在通過移動組合而得到的自由空間中。因此,圖10A、10B和10C的實例是向存儲在存儲空間的開頭區域中的index=4的子帶信號分配比特、通過重新計算MNR獲得值44、將no=1~6的組合的記錄移向開頭側、然后將重新算出的結果記錄在通過移動組合而獲得的no=6的自由空間中的情況。
在完成步驟SP100的處理后,動態比特分配單元4返回步驟SP43,此處,動態比特分配單元4從通過步驟SP100中的排序獲得的排序結果中,檢測記錄在處理對象的開頭處的具有最低值的MNR。因此,在圖10A、10B和10C的實例中,由no=1識別的index=9的MNR被檢測為具有最低值的MNR。因此,在這種情況下,在步驟SP43中,動態比特分配單元4為index=9的子帶信號分配比特并重新計算MNR,隨后,如圖11A、11B和11C所示,在接下來的步驟SP100中進一步排序MNR。另外,圖11A、11B和11C示出了通過對index=9的子帶信號的再計算而獲得具有值32的MNR的情況。
圖12是表示圖9中的步驟SP100的處理細節的流程圖。開始該處理程序后,動態比特分配單元4前進至步驟SP101,此處,動態比特分配單元4將在先前步驟SP43中被分配了比特的子帶信號的組合設置為排序對象(order[no]=index)。另外,動態比特分配單元4將用于識別比較對象的變量m設置為no+1,從而將記錄在排序對象的緊后位置處的MNR組合設置為比較對象。
接下來,動態比特分配單元4前進至步驟SP102,此處,動態比特分配單元4確定變量m是否低于變量sort_num。在將比較對象從開頭端連續改變至末尾端并且最后的MNR組合成為比較對象后,不存在比較對象。因此,在這種情況下,動態比特分配單元4在步驟SP102中獲得否定結果,隨后從步驟SP102前進至步驟SP103。
在步驟SP103中,動態比特分配單元4將排序對象的組合記錄在存儲空間的末尾端處(order[sort_num-1]=index)。動態比特分配單元4返回步驟SP43。
另一方面,當在步驟SP102中獲得肯定結果時,動態比特分配單元4前進至步驟SP104。在步驟SP104中,動態比特分配單元4確定由索引index識別的排序對象的MNR(p_mnr[index])是否低于由變量m識別的組合的MNR(p_mnr[order[m]])。
當在步驟SP104中得到肯定結果時,動態比特分配單元4前進至步驟SP105,此處,動態比特分配單元4將存儲空間中的比較對象的記錄向開頭端移動1(order[m-1]=order[m])。另外,動態比特分配單元4將變量m加1,從而將比較對象改變成記錄在緊后位置處的組合。隨后,動態比特分配單元4返回步驟SP102。
另一方面,當在步驟SP104中得到否定結果時,動態比特分配單元4從步驟SP104前進至步驟SP106,此處,動態比特分配單元4將排序對象的組合記錄在比較對象緊前記錄位置處(order[m]=index)。隨后,動態比特分配單元4前進至步驟SP43。
即使當從較低的MNR值側開始執行重新排序處理時,本實施例也能提供與第一實施例類似的效果。
當執行根據心理聲學分析的比特分配和編碼時,依賴于音頻信號的頻率特性,發生如圖13所示的情況,沒有比特分配給位于高頻端的特定子帶信號B1和B2,而是將比特分配給了具有比子帶信號B1和B2更高頻率的子帶信號B3和B4。當以低比特率執行編碼處理時,如圖13所示的情形尤其容易發生。各種研究結果已經表明,當如上所述沒有比特分配給位于高頻端的特定子帶信號B1和B2,而是將比特分配給了比子帶信號B1和B2具有更高頻率的子帶信號B3和B4時,經過解碼的音頻信號的音質將下降。
因此,如用于與圖13進行比較的圖14所示,本實施例檢測引起音質降低的子帶信號B3和B4,并如箭頭所示,將被分配給子帶信號B3和B4的比特重新分配給其他子帶信號。
圖15是根據本發明第三實施例的編碼器中的動態比特分配單元4的處理程序的流程圖。除了根據第三實施例的編碼器中的動態比特分配單元4的處理程序不同之外,根據第三實施例的編碼器以與上文參照圖16所述的編碼器同樣的方式構成。因此,將適當地使用圖16的結構來進行下面的說明。
動態比特分配單元4對音頻信號S1的每個塊執行該處理程序。開始該處理程序后,動態比特分配單元4從步驟SP121前進至步驟SP122,此處,動態比特分配單元4通過執行圖1或圖9的處理程序來計算對每個子帶信號的比特分配。
接下來,動態比特分配單元4前進至步驟SP123,此處,動態比特分配單元4確定是否存在對引起音質降低的子帶信號的比特分配。在步驟SP123中,當不存在對等于或高于一定頻率的頻帶的低頻端的頻帶中的子帶信號的比特分配、存在對高頻端的頻帶中的子帶信號的比特分配、進而被分配給高頻端的頻帶中的子帶信號的比特數等于或小于一定數目時,動態比特分配單元4確定存在對引起音質降低的子帶信號的比特分配。
當在步驟SP123中得到否定結果時,動態比特分配單元4從步驟SP123前進至步驟SP124,此處,動態比特分配單元4結束處理程序。另一方面,當在步驟SP123中得到肯定結果時,動態比特分配單元4從步驟SP123前進至步驟SP125。在步驟SP125中,動態比特分配單元4計算被分配給引起音質降低的子帶信號的比特數。于是,在圖13的實例中,動態比特分配單元4計算被分配給子帶信號B3和B4的比特數。
接下來,動態比特分配單元4前進至步驟SP126,此處,動態比特分配單元4將在步驟SP125中算出的比特量分配給其他子帶信號。動態比特分配單元4通過再次執行圖1或圖9的處理程序來執行步驟SP126的處理。具體來說,動態比特分配單元4首先設置引起音質降低的子帶信號B3和B4以及在低頻端臨近于子帶信號B3和B4且沒有被分配比特的子帶信號B1和B2的狀態used,來表示比特分配的完成,從而不為子帶信號B1~B4分配比特。另外,動態比特分配單元4將已經預先分配給子帶信號B3和B4的比特量設置為剩余的可分配比特量,重復如上參照圖1或圖9所述的重新排序(步驟SP45或步驟SP100)及比特分配(步驟SP43)的處理,從而將已經預先分配給子帶信號B3和B4的比特分配給其他子帶信號。另外,可以通過從最初開始重新開始圖1或圖9的處理來執行步驟SP126的處理。另外,可以簡單進行設置,使得不將比特僅分配給引起音質降低且已經預先被分配了比特的子帶信號B3和B4。
本實施例檢測對引起音質降低的子帶信號的比特分配,并將被分配給該子帶信號的比特重新分配給其他子帶信號。因此,能夠通過簡單的處理防止音質的降低。
應該注意,雖然在前述的實施例中,以MNR值增加的順序來對MNR進行排序,但是本發明不限于此,也可以以MNR值降低的順序來相反地排序MNR。另外,在這種情況下,當然以與前述實施例相反的方式來執行具有最低值的MNR的檢測處理,即,從排序結果的末端開始,在與前述實施例的方向相反的方向上來執行MNR重新排序等的處理。
另外,在前述實施例中,編碼器由數字信號處理器構成,但是本發明不限于此,可以將其應用于通過例如計算機對音頻信號進行編輯處理的情況,并且可以將其廣泛地應用于通過例如執行運算處理裝置的程序來對音頻信號進行編碼處理的情況。另外,通過這種運算處理裝置執行的音頻信號編碼方法的程序可以以被記錄在諸如光盤、磁盤及存儲卡中的狀態提供,或者可以通過諸如互聯網的網絡來提供該程序。
進一步,在前述實施例中,已經對將本發明應用于通過MPEG1或MPEG2編碼音頻信號的處理并且將MNR用作分配比特的評價標準的情況進行了描述。但是,本發明并不限于此,可以將其廣泛地應用于以使用各種評價標準的各種格式來執行編碼處理的情況。
例如,可以將本發明應用于通過MPEG1和MPEG2的第1層和第2層編碼音頻信號的情況。
對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的權利要求范圍之內。
權利要求
1.一種音頻信號編碼方法,用于將音頻信號劃分為多個子帶信號、根據心理聲學分析向所述子帶信號分配比特、并對所述音頻信號進行編碼,所述音頻信號編碼方法包括以下步驟根據所述心理聲學分析,計算用于為每個所述子帶信號分配所述比特的評價標準;對所述評價標準排序;以及通過重復比特分配步驟、評價標準重新計算步驟、及重新排序步驟向所述多個子帶信號分配所述比特;其中,所述比特分配步驟是從所述多個子帶信號中選擇一個子帶信號,并根據所述排序步驟的排序結果和所述重新排序步驟的排序結果中的一個為所述子帶信號分配比特的步驟,所述評價標準重新計算步驟是重新計算在所述比特分配步驟中被分配了比特的所述子帶信號的所述評價標準的步驟,所述重新排序步驟是將在所述評價標準重新計算步驟中算出的所述評價標準應用于相應的子帶信號并對所述評價標準排序的步驟,以及所述重新排序步驟通過部分改變在緊前一步的所述比特分配步驟中比特分配所使用的排序結果的順序來對所述評價標準排序。
2.根據權利要求1所述的音頻信號編碼方法,其中,所述評價標準為掩蔽噪聲比。
3.根據權利要求1所述的音頻信號編碼方法,其中,在所述重新排序步驟中部分改變所述排序結果的順序是這樣的處理將在緊前一步的所述比特分配步驟中比特分配所使用的所述排序結果的所述評價標準連續設置為比較對象,并將所述比較對象與在緊前一步的所述評價標準重新計算步驟中算出的所述評價標準連續進行比較,并且根據比較結果,連續改變所述比較對象在所述排序結果上的位置,并將在緊前一步的所述評價標準重新計算步驟中算出的所述評價標準排列在所述排序結果中。
4.根據權利要求1所述的音頻信號編碼方法,進一步包括以下步驟根據所述重復處理步驟的處理結果,檢測高頻端的子帶信號,在所述比特分配步驟中向所述高頻端的子帶信號分配了所述比特,并且在所述比特分配步驟中沒有向低頻端的臨近子帶信號分配所述比特;以及將被分配給在所述子帶信號檢測處理步驟中檢測的所述子帶信號的所述比特重新分配給頻率低于所述子帶信號的子帶信號。
5.一種音頻信號編碼方法的程序,所述音頻信號編碼方法將音頻信號劃分為多個子帶信號、根據心理聲學分析向所述子帶信號分配比特、并對所述音頻信號進行編碼,所述程序通過運算處理裝置執行,所述程序包括以下步驟根據所述心理聲學分析,計算用于為每個所述子帶信號分配所述比特的評價標準;對所述評價標準排序;以及通過重復比特分配步驟、評價標準重新計算步驟、及重新排序步驟為所述多個子帶信號分配所述比特;其中,所述比特分配步驟是從所述多個子帶信號中選擇一個子帶信號,并根據所述排序步驟的排序結果和所述重新排序步驟的排序結果中的一個為所述子帶信號分配比特的步驟,所述評價標準重新計算步驟是重新計算在所述比特分配步驟中被分配了比特的所述子帶信號的所述評價標準的步驟,所述重新排序步驟是將在所述評價標準重新計算步驟中算出的所述評價標準應用于相應的子帶信號并對所述評價標準排序的步驟,以及所述重新排序步驟通過部分改變在緊前一步的所述比特分配步驟中比特分配所使用的排序結果的順序來對所述評價標準排序。
6.一種記錄有音頻信號編碼方法的程序的記錄介質,所述音頻信號編碼方法將音頻信號劃分為多個子帶信號、根據心理聲學分析向所述子帶信號分配比特、并對所述音頻信號進行編碼,所述程序通過運算處理裝置執行,所述程序包括以下步驟根據所述心理聲學分析,計算用于為每個所述子帶信號分配所述比特的評價標準;對所述評價標準排序;以及通過重復比特分配步驟、評價標準重新計算步驟、及重新排序步驟為所述多個子帶信號分配所述比特;其中,所述比特分配步驟是從所述多個子帶信號中選擇一個子帶信號,并根據所述排序步驟的排序結果和所述重新排序步驟的排序結果中的一個為所述子帶信號分配比特的步驟,所述評價標準重新計算步驟是重新計算在所述比特分配步驟中被分配了比特的所述子帶信號的所述評價標準的步驟,所述重新排序步驟是將在所述評價標準重新計算步驟中算出的所述評價標準應用于相應的子帶信號并對所述評價標準排序的步驟,以及所述重新排序步驟通過部分改變在緊前一步的所述比特分配步驟中比特分配所使用的排序結果的順序來對所述評價標準排序。
7.一種音頻信號編碼裝,用于將音頻信號劃分為多個子帶信號、根據心理聲學分析向所述子帶信號分配比特、并對所述音頻信號進行編碼,其中,根據所述心理聲學分析,計算為每個所述子帶信號分配所述比特的評價標準;對所述評價標準進行排序;通過重復比特分配、評價標準重新計算、及重新排序為所述多個子帶信號分配所述比特;在所述比特分配中,從所述多個子帶信號中選擇一個子帶信號,并根據所述排序的排序結果和所述重新排序的排序結果中的一個為所述子帶信號分配比特,在所述評價標準重新計算中,重新計算在所述比特分配中被分配了比特的所述子帶信號的所述評價標準,在所述重新排序中,將在所述評價標準重新計算中算出的所述評價標準應用于相應的子帶信號,并對所述評價標準排序,以及在所述重新排序中,通過部分改變緊前一步的所述比特分配中比特分配使用的排序結果的順序對所述評價標準排序。
全文摘要
本發明提供了一種用于將音頻信號劃分為多個子帶信號、根據心理聲學分析為所述子帶信號分配比特、并對所述音頻信號進行編碼的音頻信號編碼方法,所述音頻信號編碼方法包括評價標準計算步驟、排序步驟及重復處理步驟。
文檔編號G10L19/02GK101046962SQ200710088820
公開日2007年10月3日 申請日期2007年3月28日 優先權日2006年3月28日
發明者茂木幸彥, 鹽田晉 申請人:索尼株式會社