ata Assistant, PDA),手持式或便攜式計算機(jī),全球定位 系統(tǒng)(Global Positioning System, GPS)接收機(jī)/導(dǎo)航器,照相機(jī),音頻/視頻播放器,攝 像機(jī),錄像機(jī),監(jiān)控設(shè)備等。通常,這類電子設(shè)備中包括語音或音頻編碼器,還可以包括語音 或音頻解碼器,語音或音頻編碼器,以及語音或音頻解碼器可以直接由數(shù)字電路或芯片例 如數(shù)字信號處理(Digital Signal Processor, DSP)芯片實現(xiàn),或者由軟件代碼驅(qū)動處理器 執(zhí)行軟件代碼中的流程而實現(xiàn)。
[0029] 圖1是根據(jù)本發(fā)明實施例的處理信號的方法的示意性流程圖。圖1的方法由編碼 端執(zhí)行,例如上述語音或音頻編碼器。圖1的方法還可以由解碼端執(zhí)行,例如上述語音或音 頻解碼器。
[0030] 在編碼過程中,編碼端可以先將時域信號變換為頻域信號,例如可以采用快速 傅立葉變換(Fast Fourier Transform,F(xiàn)FT)或改進(jìn)離散余弦變換(Modified Discrete Cosine Transform,MDCT)等算法進(jìn)行時頻變換。然后,可以利用全局增益對頻域信號的頻 譜系數(shù)進(jìn)行歸一化,將歸一化的頻譜系數(shù)進(jìn)行分帶從而得到多個子帶。
[0031] 在解碼過程中,解碼端可以對從編碼端接收的碼流進(jìn)行解碼,得到歸一化的頻譜 系數(shù),將歸一化的頻譜系數(shù)進(jìn)行分帶從而得到多個子帶。
[0032] 110,從N個子帶中選擇M個子帶,N個子帶是對信號的當(dāng)前幀的頻譜系數(shù)劃分得 到的,M個子帶的頻段低于N個子帶中除M個子帶之外的K個子帶的頻段,N為大于1的正 整數(shù),M和K均為正整數(shù),M與K之和為N。
[0033] 本發(fā)明實施例中,信號可以是語音信號,也可以是音頻信號。上述K個子帶是N個 子帶中除M個子帶之外的所有子帶。
[0034] 120,根據(jù)M個子帶的性能信息,確定對M個子帶的原始包絡(luò)值執(zhí)行修正操作,性能 信息用于指示M個子帶的能量特性和頻譜特性。
[0035] 130,分別對M個子帶的原始包絡(luò)值進(jìn)行修正,以獲取M個子帶的修正包絡(luò)值。
[0036] 140,根據(jù)M個子帶的修正包絡(luò)值以及K個子帶的原始包絡(luò)值,對N個子帶進(jìn)行一 次比特分配。
[0037] 本發(fā)明實施例中,通過從N個子帶中選擇低頻段的M個子帶,根據(jù)M個子帶的能量 特性和頻譜特性確定對M個子帶的原始包絡(luò)值執(zhí)行修正操作,根據(jù)M個子帶的原始包絡(luò)值 分別對M個子帶的原始包絡(luò)值進(jìn)行修正,并根據(jù)M個子帶的修正包絡(luò)值以及K個子帶的原 始包絡(luò)值,對N個子帶進(jìn)行一次比特分配,而非直接根據(jù)N個子帶的原始包絡(luò)值進(jìn)行比特分 配,使得比特分配更為符合各個子帶的比特需求,從而能夠提升信號的編碼以及解碼性能。
[0038] 具體而言,在現(xiàn)有的頻域編碼算法中,直接根據(jù)頻域包絡(luò)的大小對信號的各個子 帶進(jìn)行比特分配,使得所分配的比特數(shù)并不能很好地滿足某些低頻段子帶的比特需求。而 本發(fā)明實施例中,首先從N個子帶中選擇低頻段的M個子帶,根據(jù)M個子帶的能量特性和頻 譜特性確定對M個子帶的原始包絡(luò)值執(zhí)行修正操作,根據(jù)N個子帶的原始包絡(luò)值對M個子 帶的原始包絡(luò)值進(jìn)行修正,然后根據(jù)M個子帶的修正包絡(luò)值以及K個子帶的原始包絡(luò)值對 N個子帶進(jìn)行一次比特分配??梢?,本發(fā)明實施例中,并非直接根據(jù)N個子帶的原始包絡(luò)值 對N個子帶進(jìn)行比特分配,而是將M個子帶的能量特性和頻譜特性作為考慮因素來確定需 要對M個子帶進(jìn)行修正,從而得到M個子帶各自的修正包絡(luò)值,并根據(jù)低頻段子帶的修正包 絡(luò)值以及其它子帶的原始包絡(luò)值進(jìn)行比特分配,使得對各個子帶的比特分配更為合理,尤 其是低頻段的M個子帶,從而能夠提升信號的編碼以及解碼性能。
[0039] 在對頻譜系數(shù)劃分得到N個子帶后,可以計算并量化每個子帶的包絡(luò)。所以每個 子帶具有量化的包絡(luò)值。應(yīng)理解,原始包絡(luò)值與修正包絡(luò)值是相對而言的,原始包絡(luò)值可以 指子帶原本的包絡(luò)值,即在劃分子帶后計算得到的量化的包絡(luò)值。在對子帶原本的包絡(luò)值 進(jìn)行修正后得到的包絡(luò)值,稱為修正包絡(luò)值。因此,本發(fā)明實施例中,所提到的原始包絡(luò)值 和修正包絡(luò)值均是指量化的包絡(luò)值。
[0040] 可選地,作為一個實施例,在步驟110中,可以根據(jù)子帶諧波性以及子帶能量,從N 個子帶中選擇M個子帶。例如,對于M個子帶而言,每個子帶的諧波性強(qiáng)度可以大于預(yù)設(shè)的 強(qiáng)度閾值并且該子帶的能量占 N個子帶的總能量的比例大于預(yù)設(shè)的能量閾值。如上所述, 低頻帶子帶往往是信號編碼性能的瓶頸,而這些子帶中,諧波性較強(qiáng)并且能量占所有子帶 總能量一定比例的子帶尤其是編碼性能的瓶頸,因此,根據(jù)子帶諧波性以及子帶能量,從N 個子帶中選擇M個子帶,這樣對這M個子帶的原始包絡(luò)值進(jìn)行修正后,使得對于這M個子帶 的比特分配更為合理,從而能夠更有效地提升信號的編碼及解碼性能。
[0041] 可選地,作為另一實施例,N個子帶可以是可以按照頻段從小到大的順序排列的。 這樣,在步驟110中,可以從N個子帶中選擇前M個子帶。本實施例中,按照頻段從小到大 的順序選擇M個子帶,能夠簡化操作,提升信號處理效率。
[0042] 可選地,作為另一實施例,在步驟120中,可以根據(jù)N個子帶的原始包絡(luò)值,確定第 一參數(shù),其中第一參數(shù)可以表示信號的頻譜能量在M個子帶的集中程度??梢愿鶕?jù)M個子 帶的原始包絡(luò)值,確定第二參數(shù),其中第二參數(shù)表示M個子帶的頻譜波動程度??梢栽谒?第一參數(shù)屬于第一范圍并且所述第二參數(shù)屬于第二范圍的情況下,確定對M個子帶的原始 包絡(luò)值執(zhí)行修正操作。
[0043] 具體地,M個子帶的能量特性可以是信號的頻譜能量在M個子帶的集中程度,M個 子帶的頻譜特性可以是M個子帶的頻譜波動程度。
[0044] 第一范圍與子帶的能量相關(guān),可以是預(yù)先設(shè)定的。當(dāng)信號的頻譜能量在除M個子 帶的集中程度較小時,可以說明這M個子帶在N個子帶中的比例小,不會對編碼性能造成很 大的影響,因此無需修正這M個子帶的原始包絡(luò)值。當(dāng)信號的頻譜能量在M個子帶的集中 程度較大時,說明這M個子帶的原始包絡(luò)值也會比較大,那么這M個子帶所分配的比特數(shù)是 足夠用于編碼的,也無需修正這M個子帶的原始包絡(luò)值??梢赃M(jìn)行實驗仿真預(yù)先確定第一 范圍。例如,第一范圍可以預(yù)設(shè)為[1/6,2/3]。
[0045] 第二范圍與子帶的頻譜波動程度相關(guān),可以是預(yù)先設(shè)定的。M個子帶的頻譜波動程 度小,則即使M個子帶所分配的比特數(shù)少也不會對編碼性能造成很大的影響,這樣就無需 修正M個子帶的原始包絡(luò)值。因此,第二范圍表示子帶的頻譜波動程度較大。可以進(jìn)行實 驗仿真預(yù)先確定第二范圍。例如,第二范圍可以預(yù)設(shè)戈
通 常,如果信號中能夠編碼的帶寬為〇~4KHz,第二范圍可以預(yù)設(shè)戈
如果信 號中能夠編碼的帶寬為0~8KHz,第二范圍可以預(yù)設(shè)>
[0046] 當(dāng)?shù)谝粎?shù)屬于第一范圍并且第二參數(shù)屬于第二范圍時,意味著信號的頻譜能量 在M個子帶上的集中程度不是特別大也不是特別小,而且M個子帶的頻譜波動程度較大,可 以對M個子帶的原始包絡(luò)值進(jìn)行修正,以便在M個子帶的一次比特分配中使得M個子帶所 分配到的比特更符合M個子帶的比特需求。例如,對于M個子帶中每個子帶,修正包絡(luò)值大 于原始包絡(luò)值。那么,相比根據(jù)M個子帶的原始包絡(luò)值進(jìn)行一次比特分配而言,根據(jù)M個子 帶的修正包絡(luò)值進(jìn)行一次比特分配使得M個子帶分配到的比特數(shù)要多一些,從而能夠提升 M個子帶的編碼性能。
[0047] 可見,本實施例中,根據(jù)N個子帶的原始包絡(luò)值確定的第一參數(shù)和第二參數(shù)可以 反映各頻段的特點,因此在第一參數(shù)屬于第一范圍并且第二參數(shù)屬于第二范圍的情況下確 定對M個子帶執(zhí)行的原始包絡(luò)值修正操作,使得后續(xù)根據(jù)M個子帶的修正包絡(luò)值進(jìn)行比特 分配時,M個子帶所分配到的比特數(shù)更符合M個子帶的比特需求,從而能夠提升信號的編碼 和解碼性能。
[0048] 可選地,作為另一實施例,在步驟120中,可以根據(jù)M個子帶的原始包絡(luò)值確定M 個子帶的總能量??梢愿鶕?jù)K個子帶的原始包絡(luò)值確定K個子帶的總能量??梢詫個子 帶的總能量與K個子帶的總能量的比值確定為第一參數(shù)。
[0049] 具體地,可以將M個子帶的總能量與K個子帶的總能量的比值確定為第一參數(shù)。這 樣,能夠
[0050] 例如,可以按照如下等式計算得到第一參數(shù)。第一參數(shù)可以由ct表示。
[0054] 其中,$_可以表示M個子帶的總能量,可以表示K個子帶的總能量,band_ Widthi可以表示第i個子帶的帶寬,banc^energyi可以表示第i個子帶的能量。band_ energyi可以表示第i個子帶的原始包絡(luò)值。例如,可以根據(jù)第i個子帶的頻譜系數(shù),得到 第i個子帶的原始包絡(luò)值bancLenergyi。比如,可以按照下述等式得到bancLenergyi。
[0055] band_energyi = Iog2Ei
[0056]
[0057] 應(yīng)理解,本領(lǐng)域技術(shù)人員根據(jù)上述等式,顯然可以進(jìn)行各種等價的修改或變化來 得到第一參數(shù),這樣的修改或變化也落入本發(fā)明實施例的范圍內(nèi)。
[0058] 可選地,作為另一實施例,在步驟120