本發(fā)明實(shí)施例涉及音頻技術(shù)領(lǐng)域,并且更具體地,涉及音頻信號(hào)的比特分配的方法和裝置。
背景技術(shù):
目前的通信傳輸越來(lái)越重視音頻的質(zhì)量,所以要求編解碼時(shí)在保證語(yǔ)音質(zhì)量的前提下要盡可能地提高音樂(lè)質(zhì)量。由于音樂(lè)信號(hào)信息量極為豐富,不能采用傳統(tǒng)語(yǔ)音的celp(codeexcitedlinearprediction,碼激勵(lì)線(xiàn)性預(yù)測(cè))編碼模式,通常是利用變換編碼的方法,在頻域來(lái)處理音樂(lè)信號(hào),提升音樂(lè)信號(hào)的編碼質(zhì)量。但如何有效地用有限的編碼比特高效率的編碼信息成為目前音頻編碼的主要研究課題。
目前的音頻編碼技術(shù)通常采用fft(fastfouriertransform,快速傅立葉變換)或mdct(modifieddiscretecosinetransform,改進(jìn)離散余弦變換)將時(shí)域信號(hào)轉(zhuǎn)換到頻域,然后對(duì)頻域信號(hào)進(jìn)行編碼。變換編碼通常需要把頻域系數(shù)進(jìn)行分帶,求得每個(gè)帶的歸一化能量,并對(duì)帶內(nèi)系數(shù)能量歸一化,然后進(jìn)行比特分配,最后根據(jù)每個(gè)帶分到的比特對(duì)帶內(nèi)系數(shù)進(jìn)行量化,其中比特分配是極為關(guān)鍵的一部。比特分配指在量化頻譜系數(shù)的過(guò)程中,根據(jù)頻譜的子帶特性將音頻信號(hào)用于量化頻譜系數(shù)的比特分配在各個(gè)子帶上,即將音頻信號(hào)能使用的編碼資源分配到各個(gè)子帶上,一般編碼資源由比特表征。
具體而言,現(xiàn)有的比特分配的過(guò)程包括:對(duì)頻譜信號(hào)進(jìn)行分帶,例如根據(jù)臨界頻帶理論從低頻到高頻逐漸增加帶寬;頻譜分帶,求出每個(gè)子帶的歸一化能量norm,并量化得到子帶歸一化因子wnorm;將各子帶按子帶歸一化因子wnorm的值從大到小降序排列;比特分配,例如根據(jù)子帶歸一化因子wnorm的值迭代循環(huán)分配每個(gè)子帶的比特?cái)?shù)。其中,迭代循環(huán)分配比特又可以細(xì)化為以下步驟:步驟1,初始化每個(gè)子帶的比特?cái)?shù)和迭代因子fac;步驟2,找出最大的子帶歸一化因子wnorm所對(duì)應(yīng)的帶;步驟3,將此帶分配的比特?cái)?shù)累加帶寬值,并將子帶歸一化因子wnorm的值減去迭代因子fac;步驟4,迭代步驟2和步驟3,直至比特分配完畢。可見(jiàn),在現(xiàn)有技術(shù)中,每次分配的比特單位最小是帶寬值,而量化時(shí)所需的最低比特?cái)?shù)要小于帶寬值,這就使得這種整數(shù)的比特分配在低比特率下效率較低,好多帶分配不到比特,而其它的帶又分得太多。由于是全頻帶循環(huán)迭代分配比特,對(duì)不同的帶寬的子帶,循環(huán)迭代參數(shù)都是一樣的,會(huì)使分配結(jié)果很隨機(jī),量化比較分散,前后幀不連續(xù)。
由此可知,在低比特率下,比特分配對(duì)性能影響較大。通常的比特分配主要是根據(jù)每個(gè)子帶歸一化能量的高低在全頻帶進(jìn)行分配,在比特率不足的情況下,這種分配很隨機(jī),也比較分散,會(huì)在時(shí)域上產(chǎn)生量化不連續(xù)的現(xiàn)象。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種音頻信號(hào)的比特分配的方法和裝置,能夠解決中低比特率的情況下,現(xiàn)有比特分配方法導(dǎo)致分配隨機(jī)且分散,從而在時(shí)域上產(chǎn)生量化不連續(xù)的問(wèn)題。
一方面,提供了一種音頻信號(hào)的比特分配的方法,包括:將音頻信號(hào)的頻帶分為多個(gè)子帶,量化每個(gè)子帶的子帶歸一化因子;將所述多個(gè)子帶劃分為多個(gè)組,所述多個(gè)組中的一個(gè)組包含一個(gè)或多個(gè)子帶,獲取每個(gè)組的組參數(shù),其中所述組參數(shù)用于表征對(duì)應(yīng)組的音頻信號(hào)的信號(hào)特點(diǎn)和能量屬性;根據(jù)所述每個(gè)組的組參數(shù),為至少一個(gè)組分配編碼比特,其中該至少一個(gè)組分配的編碼比特?cái)?shù)之和為所述音頻信號(hào)的編碼比特?cái)?shù);依據(jù)所述至少一個(gè)組中的每個(gè)組的每個(gè)子帶的子帶歸一化因子,將分配到所述至少一個(gè)組的編碼比特分配到所述至少一個(gè)組中的每個(gè)組的每個(gè)子帶。
另一方面,提供了一種音頻信號(hào)的比特分配的裝置,包括:分帶量化單元,用于將音頻信號(hào)的頻帶分為多個(gè)子帶,量化每個(gè)子帶的子帶歸一化因子;分組單元,用于將所述多個(gè)子帶劃分為多個(gè)組,所述多個(gè)組中的一個(gè)組包含一個(gè)或多個(gè)子帶,獲取每個(gè)組的組參數(shù),其中所述組參數(shù)用于表征對(duì)應(yīng)組的音頻信號(hào)的信號(hào)特點(diǎn)和能量屬性;第一分配單元,用于根據(jù)所述每個(gè)組的組參數(shù),為至少一個(gè)組分配編碼比特,其中該至少一個(gè)組分配的編碼比特?cái)?shù)之和為所述音頻信號(hào)的編碼比特?cái)?shù);第二分配單元,用于依據(jù)所述至少一個(gè)組中的每個(gè)組的每個(gè)子帶的子帶歸一化因子,將分配到所述至少一個(gè)組的編碼比特分配到所述至少一個(gè)組中的每個(gè)組的每個(gè)子帶。
本發(fā)明實(shí)施例可以在中低比特率時(shí),通過(guò)分組保證前后幀分配比較穩(wěn)定,減少全局對(duì)局部不連續(xù)的影響。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明實(shí)施例的音頻信號(hào)的比特分配的方法的流程圖。
圖2是根據(jù)本發(fā)明實(shí)施例的音頻信號(hào)的比特分配的裝置的結(jié)構(gòu)示意圖。
圖3是根據(jù)本發(fā)明另一個(gè)實(shí)施例的音頻信號(hào)的比特分配的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
編碼技術(shù)方案和解碼技術(shù)方案,廣泛應(yīng)用于各種電子設(shè)備中,例如:移動(dòng)電話(huà),無(wú)線(xiàn)裝置,個(gè)人數(shù)據(jù)助理(pda),手持式或便攜式計(jì)算機(jī),gps接收機(jī)/導(dǎo)航器,照相機(jī),音頻/視頻播放器,攝像機(jī),錄像機(jī),監(jiān)控設(shè)備等。通常,這類(lèi)電子設(shè)備中包括音頻編碼器或音頻解碼器,音頻編碼器或者解碼器可以直接由數(shù)字電路或芯片例如dsp(digitalsignalprocessor)實(shí)現(xiàn),或者由軟件代碼驅(qū)動(dòng)處理器執(zhí)行軟件代碼中的流程而實(shí)現(xiàn)。
作為示例,在一種音頻編碼技術(shù)方案中,首先將音頻時(shí)域信號(hào)變換為頻域信號(hào),再將編碼比特分配給音頻頻域信號(hào)進(jìn)行編碼,將編碼后的信號(hào)通過(guò)通信系統(tǒng)傳輸給解碼端,解碼端對(duì)編碼后的信號(hào)解碼恢復(fù)。
本發(fā)明根據(jù)分組的理論和信號(hào)的特點(diǎn)進(jìn)行比特分配。首先對(duì)帶進(jìn)行分組,再根據(jù)每組的特點(diǎn),對(duì)組內(nèi)能量進(jìn)行加權(quán),根據(jù)加權(quán)后的能量對(duì)各組進(jìn)行比特分配,再根據(jù)組內(nèi)的信號(hào)特點(diǎn)將比特分配到每個(gè)帶。因?yàn)橄葘?duì)整組進(jìn)行分配,避免了分配不連續(xù)的現(xiàn)象,從而提升不同信號(hào)的編碼質(zhì)量。而在組內(nèi)分配時(shí)又考慮了信號(hào)的特點(diǎn),使得有限的比特能分配到影響感知的重要的音頻帶中。
圖1是本發(fā)明一個(gè)實(shí)施例的音頻信號(hào)的比特分配的方法的流程圖。
101,將音頻信號(hào)的頻帶分為多個(gè)子帶,量化每個(gè)子帶的子帶歸一化因子。
下面以mdct變換為例進(jìn)行描述。首先對(duì)輸入的音頻信號(hào)進(jìn)行mdct變換,得到頻域系數(shù)。這里的mdct變換可包括加窗、時(shí)域混疊和離散dct變換幾個(gè)過(guò)程。
例如對(duì)輸入時(shí)域信號(hào)x(n)加正弦窗
得到加窗后的信號(hào)為:
然后進(jìn)行時(shí)域混疊操作:
這里的il/2和jl/2分別表示為階數(shù)為l/2的對(duì)角矩陣:
對(duì)時(shí)域混疊信號(hào)做離散dct變換,最終得到頻域的mdct系數(shù):
然后從mdct系數(shù)中提取頻域包絡(luò)并量化。將整個(gè)頻帶分成一些不同頻域分辨率的子帶,提取每個(gè)子帶的歸一化因子,并量化子帶歸一化因子。
例如對(duì)于32khz采樣的音頻信號(hào),對(duì)應(yīng)16khz帶寬的頻帶,如幀長(zhǎng)為20ms(640樣點(diǎn)),則可以分為如下44個(gè)子帶:
8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
16,16,16,16,16,16,16,16,
24,24,24,24,24,24,24,24,24,24,24,24,
32,32,32,32,32,32,32,32
首先分成幾個(gè)組,然后組內(nèi)再細(xì)化子帶,每個(gè)子帶的歸一化因子可定義為:
這里lp是子帶內(nèi)的系數(shù)個(gè)數(shù),sp是子帶的起始點(diǎn),ep是子帶的結(jié)束點(diǎn),p為總共的子帶數(shù)。
得到歸一化因子后,可以在對(duì)數(shù)域?qū)ζ溥M(jìn)行量化,得到量化后的子帶歸一化因子wnorm。
102,將全部子帶劃分為多個(gè)組,獲取每個(gè)組的組參數(shù),其中組參數(shù)用于表征對(duì)應(yīng)組的音頻信號(hào)的信號(hào)特點(diǎn)和能量屬性,其中所述多個(gè)組中的一個(gè)組包含一個(gè)或多個(gè)子帶。
此外,考慮將特性和能量相似的子帶分入一組。例如,可以將具有相同帶寬的子帶劃分為一個(gè)組,優(yōu)選地將相鄰的具有相同帶寬的子帶劃分為一個(gè)組。例如,可以將全部子帶分為四組,則在低比特率時(shí),只采用前兩組或前三組,而不對(duì)剩余的組進(jìn)行比特分配。
或者,可以根據(jù)子帶的歸一化能量norm之間的關(guān)系進(jìn)行分組。也就是說(shuō),可以將子帶歸一化因子wnorm接近的子帶分成一組。例如,可以利用以下方法判斷子帶的子帶歸一化因子是否接近:將子帶的子帶歸一化因子wnorm[i](i=1…p-1,p是總共的子帶數(shù))與預(yù)定閾值k進(jìn)行比較。如果wnorm[i]大于預(yù)定閾值k,則記錄下該子帶序號(hào)i,最終將其子帶歸一化因子wnorm[i]大于預(yù)定閾值k的子帶分為一組,其余的子帶分為另一組。應(yīng)理解,可以根據(jù)不同的需求設(shè)定多個(gè)預(yù)定閾值,從而得到更多個(gè)組。
可選地,還可以將相鄰的子帶歸一化因子接近的子帶分成一組。例如,可以利用以下方法判斷相鄰子帶的子帶歸一化因子是否接近:先計(jì)算相鄰子帶的子帶歸一化因子的差值wnorm_diff[i],其中wnorm_diff[i]=abs(wnorm[i]–wnorm[i-1]),i=1…p-1。p是總共的子帶數(shù)。如果wnorm_diff[i]小于預(yù)定閾值k’,表明相鄰子帶的子帶歸一化因子接近,從而確定能分成一組的相鄰子帶序號(hào)。
一旦完成子帶分組,便可獲取每個(gè)組的組參數(shù),以表征組的能量屬性。一般而言,組參數(shù)可以包括以下中的一個(gè)或多個(gè):組內(nèi)子帶歸一化因子之和group_wnorm、組內(nèi)子帶歸一化因子的峰均比group_sharp。
具體而言,組內(nèi)子帶歸一化因子之和group_wnorm是組內(nèi)所有子帶的子帶歸一化因子的加和,即
或者,組內(nèi)子帶歸一化因子的峰均比group_sharp是組內(nèi)子帶歸一化因子的峰值與組內(nèi)子帶歸一化因子的平均值的比值。即
或者,組內(nèi)子帶歸一化因子的峰值group_peak是組內(nèi)所有子帶的子帶歸一化因子的最大值,即group_peak[i]=max(wnorm[si],....,wnorm[ei]),其中wnorm[si]是第i組中的開(kāi)始子帶的子帶歸一化因子,wnorm[ei]是第i組中的結(jié)束子帶的子帶歸一化因子。
或者,組內(nèi)子帶歸一化因子的平均值group_avg是組內(nèi)所有子帶的子帶歸一化因子的平均值,即
103,根據(jù)每個(gè)組的組參數(shù),為至少一個(gè)組分配編碼比特,其中該至少一個(gè)組分配的編碼比特?cái)?shù)之和為所述音頻信號(hào)的編碼比特?cái)?shù)。
由于上述組參數(shù)表征了組的能量屬性,從而可以根據(jù)組參數(shù)將音頻信號(hào)的比特分配到每個(gè)組。這樣,在比特率不足的情況下,利用分組的原理,考慮組的能量屬性,使得音頻信號(hào)的比特分配更加集中,也使得幀間比特分配更加連續(xù)。應(yīng)理解,組參數(shù)不限于在此列舉的幾種,還可以是其他能夠表征組的能量屬性的參數(shù)。一個(gè)實(shí)施例中,在比特率不足情況下,僅為部分組分配比特,例如對(duì)于組內(nèi)子帶歸一化因子之和為零的組,其不會(huì)被分配到比特;又例如,當(dāng)比特?cái)?shù)很少時(shí),也會(huì)存在不被分配到比特的組。也就是說(shuō),在獲得以上組參數(shù)的基礎(chǔ)上,可以?xún)H根據(jù)每個(gè)組的組內(nèi)子帶歸一化因子之和,為至少一個(gè)組分配編碼比特,其中該至少一個(gè)組分配的編碼比特?cái)?shù)之和為音頻信號(hào)的編碼比特?cái)?shù)。
進(jìn)一步的,還可以通過(guò)調(diào)整組參數(shù)來(lái)優(yōu)化將音頻信號(hào)的比特分配到每個(gè)組的結(jié)果。比如,根據(jù)不同的分配需求,為不同組的組參數(shù)分配不同的權(quán)重,使得有限的比特?cái)?shù)分配在恰當(dāng)?shù)慕M中,再在該組中分配,使得比特分配不再分散,這樣將有利于音頻信號(hào)的編碼。
下面只是示例性地給出一種實(shí)施方式。例如,在獲取每個(gè)組的組內(nèi)子帶歸一化因子之和group_wnorm以及組內(nèi)子帶歸一化因子的峰均比group_sharp之后,可以根據(jù)組內(nèi)子帶歸一化因子的峰均比group_sharp,加權(quán)組內(nèi)子帶歸一化因子之和group_wnorm,得到加權(quán)的組內(nèi)子帶歸一化因子之和group_wnorm_w。
具體的,比較第一組的組內(nèi)子帶歸一化因子的峰均比group_sharp[i]與第二組的組內(nèi)子帶歸一化因子的峰均比group_sharp[i-1]。若第一組的組內(nèi)子帶歸一化因子的峰均比相對(duì)第二組的組內(nèi)子帶歸一化因子的峰均比大于第一閾值,即根據(jù)第一加權(quán)因子調(diào)整該第一組的組內(nèi)子帶歸一化因子之和,根據(jù)第二加權(quán)因子調(diào)整所述第二組的組內(nèi)子帶歸一化因子之和。反之亦然。即若第二組的組內(nèi)子帶歸一化因子的峰均比相對(duì)第一組的組內(nèi)子帶歸一化因子的峰均比大于第二閾值,根據(jù)第一加權(quán)因子調(diào)整該第二組的組內(nèi)子帶歸一化因子之和,根據(jù)第二加權(quán)因子調(diào)整所述第一組的組內(nèi)子帶歸一化因子之和。
例如,如果group_sharp[i]-group_sharp[i-1]>a,則group_wnorm_w[i]=b*group_wnorm[i]?;蛘?,如果group_sharp[i-1]-group_sharp[i]>c,則group_wnorm[i-1]=b*group_wnorm[i-1]。其中,組序號(hào)i=1…p-1。p是總共的子帶數(shù)。b為權(quán)重,a為第一閾值,c為第二閾值。應(yīng)理解,a、b和c的選取可以根據(jù)比特分配的需求進(jìn)行。
這里,僅是示意性地說(shuō)明了一種簡(jiǎn)單的加權(quán)方法。本領(lǐng)域技術(shù)人員應(yīng)很容易想到其他的加權(quán)方法,以便通過(guò)不同的加權(quán)系數(shù)來(lái)調(diào)整子帶的權(quán)重。例如,可以加大需要分配更多信號(hào)比特的子帶的權(quán)重,而減小無(wú)需或需要分配較少信號(hào)比特的子帶的權(quán)重。
接著,根據(jù)加權(quán)的組內(nèi)子帶歸一化因子之和,將音頻信號(hào)的比特分配到每個(gè)組。例如按照加權(quán)的組內(nèi)子帶歸一化因子之和group_wnorm[i]與全部子帶的子帶歸一化因子之和sum_wnorm比率,確定該組的組比特?cái)?shù),并將音頻信號(hào)的比特按照確定的組比特?cái)?shù)分配到該組。通過(guò)以下公式確定每組的總比特?cái)?shù)group_bits:group_bits[i]=sum_bits*group_wnorm[i]/sum_wnorm,其中sum_bits為需要分配的音頻信號(hào)的總比特?cái)?shù),sum_wnorm是所有子帶的子帶歸一化因子之和。
在比特被分入各個(gè)組之后,可以進(jìn)一步將每個(gè)組分到的編碼比特再分入組內(nèi)的各個(gè)子帶中。
104,依據(jù)該至少一個(gè)組中的每個(gè)組的每個(gè)子帶的子帶歸一化因子,將分配到至少一個(gè)組的編碼比特分配到該至少一個(gè)組中的每個(gè)組的每個(gè)子帶。
應(yīng)理解,可以采用現(xiàn)有的迭代循環(huán)分配方法對(duì)組內(nèi)的子帶進(jìn)行比特分配。但是,迭代循環(huán)分配方法仍會(huì)使得組內(nèi)的比特分配結(jié)果很隨機(jī),前后幀不連續(xù)。因此,可以結(jié)合不同音頻信號(hào)的信號(hào)特點(diǎn),即不同的信號(hào)類(lèi)型,依據(jù)該組內(nèi)的子帶歸一化因子,將分配到該組的音頻信號(hào)的比特分配到該組內(nèi)的子帶中。
另外,在本發(fā)明實(shí)施例中,在比特率不足的情況下,若將有限的比特分配到組內(nèi)所有的子帶上,將影響比特分配的效果。因此,可以先確定組內(nèi)可以進(jìn)行比特分配的子帶數(shù)band_num;然后,根據(jù)音頻信號(hào)的類(lèi)型等,依據(jù)組內(nèi)的子帶歸一化因子,將分配到組的音頻信號(hào)的比特分配到組內(nèi)進(jìn)行比特分配的子帶中,其中所述組內(nèi)進(jìn)行比特分配的子帶的個(gè)數(shù)等于子帶數(shù)band_num。
這里,可以根據(jù)組比特?cái)?shù)以及第三閾值確定每個(gè)組內(nèi)初始比特分配的子帶數(shù),其中第三閾值表示用于量化一個(gè)歸一化后的頻譜系數(shù)的最小比特?cái)?shù)。比如,一個(gè)組分配到了13比特,第三閾值為7比特,那么組內(nèi)初始比特分配的子帶數(shù)為2。然后,根據(jù)組內(nèi)初始比特分配的子帶數(shù)以及組內(nèi)的總子帶數(shù)確定組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num。
例如,如果組內(nèi)初始比特分配的子帶數(shù)大于組內(nèi)的總子帶數(shù)乘以比例因子k的值,則確定band_num的取值為組內(nèi)的總子帶數(shù),否則band_num的取值為組內(nèi)初始比特分配的子帶數(shù),這里的比例因子k是經(jīng)驗(yàn)因子可以為0.75,或其他數(shù)值。也可以簡(jiǎn)化該過(guò)程,使組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num取組內(nèi)初始比特分配的子帶數(shù)與組內(nèi)的總子帶數(shù)兩者中較少的子帶數(shù)。
接下來(lái),可以根據(jù)組的音頻信號(hào)的類(lèi)型,結(jié)合組內(nèi)的子帶歸一化因子為組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num個(gè)子帶分配比特。在判斷該組的音頻信號(hào)的類(lèi)型時(shí),可以依據(jù)該組的組內(nèi)子帶歸一化因子的峰均比group_sharp進(jìn)行。若通過(guò)組內(nèi)子帶歸一化因子的峰均比group_sharp確定音頻信號(hào)為正常(normal)信號(hào),可以采用現(xiàn)有的迭代循環(huán)分配方法為該組進(jìn)行比特分配;若判斷該組的音頻信號(hào)為諧波(harmonic)信號(hào),可以采用現(xiàn)有的迭代循環(huán)分配方法為該組進(jìn)行比特分配,也可以采用以下方法a或方法b進(jìn)行比特分配。
方法a:
步驟1,對(duì)所述組內(nèi)全部子帶的子帶歸一化因子進(jìn)行由大到小排序,選取排在前n個(gè)子帶,其中n為組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num;
步驟2,初始化所述n個(gè)子帶的比特?cái)?shù)為1,并初始化循環(huán)次數(shù)j為0;
步驟3,確定所述n個(gè)子帶中其子帶歸一化因子大于零的子帶的子帶歸一化因子總和band_wnorm;
步驟4,為所述n個(gè)子帶中其子帶歸一化因子大于零的子帶分配比特?cái)?shù);
步驟5,判斷n個(gè)子帶中最后的子帶所分配的比特?cái)?shù)是否小于固定閾值fac,如果小于固定閾值fac,則將這個(gè)子帶分配的比特?cái)?shù)置零;
步驟6,將所述循環(huán)次數(shù)j加1;
循環(huán)步驟3至步驟6,直到循環(huán)次數(shù)j等于n;
步驟7,對(duì)所述組內(nèi)的全部子帶恢復(fù)最初原始的排序,即恢復(fù)到量化每個(gè)子帶的子帶歸一化因子之前全部子帶的排序。
方法b:
步驟1,對(duì)所述組內(nèi)全部子帶的子帶歸一化因子進(jìn)行由大到小排序,選取排在前n個(gè)子帶,其中n為組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num;
步驟2,初始化所述n個(gè)子帶的比特?cái)?shù)為1,并初始化循環(huán)次數(shù)j為0,初始化已分配比特?cái)?shù)bit_sum為0;
步驟3,確定所述n個(gè)子帶中其子帶歸一化因子大于零的子帶的子帶歸一化因子總和band_wnorm;
步驟4,為所述n個(gè)子帶中其子帶歸一化因子大于零的子帶分配比特?cái)?shù);
步驟5,判斷n個(gè)子帶所分配的比特?cái)?shù)是否小于固定閾值fac,如果小于固定閾值fac,則將這個(gè)子帶分配的比特?cái)?shù)置零;
步驟6,計(jì)算所有n個(gè)子帶所分配的比特?cái)?shù)的總和temp_sum;
步驟7,將所述循環(huán)次數(shù)j加1;
步驟8,判斷temp_sum和bit_sum是否相等,如果相等就執(zhí)行步驟10;否則繼續(xù)步驟9;
步驟9,更新bit_sum,將temp_sum值賦值給bit_sum;
循環(huán)步驟3至步驟9,直到循環(huán)次數(shù)j等于n;
步驟10,對(duì)所述組內(nèi)的全部子帶恢復(fù)最初原始的排序。
應(yīng)理解,除了上述方法a或方法b,還可以采用其他方法進(jìn)行組內(nèi)的比特分配。另外,方法a和方法b也可以與確定band_num的方法相結(jié)合,即結(jié)合不同的音頻信號(hào)特點(diǎn)進(jìn)行組內(nèi)分配。例如,如果組內(nèi)初始比特分配的子帶數(shù)大于組內(nèi)的總子帶數(shù)乘以比例因子k的值,則采用方法a;如果組內(nèi)初始比特分配的子帶數(shù)小于或等于組內(nèi)的總子帶數(shù)乘以比例因子k的值,則采用方法b。
綜上所述,為組內(nèi)的子帶進(jìn)行比特分配的過(guò)程是,先從組內(nèi)全部子帶中選取子帶歸一化因子最大的前n個(gè)子帶作為待分配子帶,其中n為組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num;然后,依據(jù)該n個(gè)子帶的子帶歸一化因子,依次為這n個(gè)子帶分配比特?cái)?shù);最后,對(duì)該組的全部子帶恢復(fù)最初原始的排序。
結(jié)合不同音頻信號(hào)的信號(hào)特點(diǎn),可以有效地將比特分配到能體現(xiàn)信號(hào)聽(tīng)覺(jué)感知的頻帶,譬如對(duì)于諧波性強(qiáng)的帶就需要把比特集中分配到有諧波的帶,而對(duì)于那些頻譜能量比較平均的信號(hào),就需要把比特分配得均勻一些。
借鑒上述的分組方式,還可以將組再細(xì)分,即將組內(nèi)的子帶再劃分為多個(gè)小組,并獲取每個(gè)小組的小組參數(shù);然后根據(jù)每個(gè)小組的小組參數(shù),將分配到組的比特分配到每個(gè)小組。最后,依據(jù)子帶歸一化因子,將分配到每個(gè)小組的音頻信號(hào)的比特分配到每個(gè)小組內(nèi)的每個(gè)子帶。有一種可能,是不斷進(jìn)行細(xì)化,直到每個(gè)組上只有一個(gè)帶為止。
經(jīng)過(guò)本發(fā)明實(shí)施例的分組方式保證了前后幀分配比較穩(wěn)定,并且根據(jù)信號(hào)特點(diǎn)對(duì)組內(nèi)進(jìn)行不同側(cè)重的比特分配,使得分配的比特都用于量化重要頻譜信息上,從而能夠提升音頻信號(hào)的編碼質(zhì)量。
由上可知,根據(jù)本發(fā)明實(shí)施例的音頻信號(hào)的比特分配的方法可以通過(guò)分組保證前后幀分配比較穩(wěn)定,減少全局對(duì)局部不連續(xù)的影響。此外,每個(gè)組內(nèi)的比特分配可以設(shè)不同的閾值參數(shù),從而更加自適應(yīng)地分配比特,并且根據(jù)頻譜信號(hào)特點(diǎn)對(duì)組內(nèi)進(jìn)行不同側(cè)重的比特分配,例如對(duì)于頻譜較集中的類(lèi)諧波信號(hào)重點(diǎn)分配在能量大的子帶,諧波間的子帶無(wú)需分配更多比特,而對(duì)于頻譜較為平緩的信號(hào),比特分配則盡量保證子帶間平滑,這樣會(huì)使得分配的比特都用于量化重要的頻譜信息上。
以下將結(jié)合圖2,描述根據(jù)本發(fā)明實(shí)施例的音頻信號(hào)的比特分配的裝置的示意結(jié)構(gòu)。
在圖2中,音頻信號(hào)的比特分配的裝置20包括分帶量化單元21、分組單元22、第一分配單元23以及第二分配單元24。
其中,分帶量化單元21用于將音頻信號(hào)的頻帶分為多個(gè)子帶,量化每個(gè)子帶的子帶歸一化因子。
其中,分組單元22用于將多個(gè)子帶劃分為多個(gè)組,所述多個(gè)組中的一個(gè)組包含一個(gè)或多個(gè)子帶,獲取每個(gè)組的組參數(shù),其中組參數(shù)用于表征對(duì)應(yīng)組的音頻信號(hào)的信號(hào)特點(diǎn)和能量屬性。
其中,第一分配單元23用于根據(jù)該每個(gè)組的組參數(shù),為至少一個(gè)組分配編碼比特,其中該至少一個(gè)組分配的編碼比特?cái)?shù)之和為音頻信號(hào)的編碼比特?cái)?shù)。
可選地,分組單元22可以用于將具有相同帶寬的子帶劃分為一個(gè)組,從而該多個(gè)子帶被劃分為多個(gè)組。或者,分組單元22可以用于將子帶歸一化因子接近的子帶分成一組,從而多個(gè)子帶被劃分為多個(gè)組。一般而言,每個(gè)組中的子帶可以是相鄰的。
可選地,分組單元22用于獲取每個(gè)組的組內(nèi)子帶歸一化因子之和、每個(gè)組的組內(nèi)子帶歸一化因子的峰均比,其中所述組內(nèi)子帶歸一化因子之和是所述組內(nèi)所有子帶的子帶歸一化因子的加和,所述組內(nèi)子帶歸一化因子的峰均比是組內(nèi)子帶歸一化因子的峰值與組內(nèi)子帶歸一化因子的平均值的比值,其中所述組內(nèi)子帶歸一化因子的峰值是所述組內(nèi)所有子帶的子帶歸一化因子的最大值,所述組內(nèi)子帶歸一化因子的平均值是所述組內(nèi)所有子帶的子帶歸一化因子的平均值。
進(jìn)一步地,分組單元22用于還可以根據(jù)所述每個(gè)組的組內(nèi)子帶歸一化因子的峰均比,加權(quán)所述每個(gè)組的組內(nèi)子帶歸一化因子之和,得到每個(gè)組的加權(quán)的組內(nèi)子帶歸一化因子之和。
可選的,分組模塊22可以用于比較第一組的組內(nèi)子帶歸一化因子的峰均比與第二組的組內(nèi)子帶歸一化因子的峰均比;若第一組的組內(nèi)子帶歸一化因子的峰均比相對(duì)第二組的組內(nèi)子帶歸一化因子的峰均比大于第一閾值,根據(jù)第一加權(quán)因子調(diào)整該第一組的組內(nèi)子帶歸一化因子之和,根據(jù)第二加權(quán)因子調(diào)整第二組的組內(nèi)子帶歸一化因子之和。
可選地,第一分配單元23可以用于根據(jù)該每個(gè)組的組內(nèi)子帶歸一化因子之和,為至少一個(gè)組分配編碼比特,其中該至少一個(gè)組分配的編碼比特?cái)?shù)之和為音頻信號(hào)的編碼比特?cái)?shù)?;蛘撸谝环峙鋯卧?3可以用于根據(jù)加權(quán)的組內(nèi)子帶歸一化因子之和,為至少一個(gè)組分配編碼比特,其中該至少一個(gè)組分配的編碼比特?cái)?shù)之和為音頻信號(hào)的編碼比特?cái)?shù)?;蛘撸谝环峙鋯卧?3可以用于按照該組的加權(quán)的組內(nèi)子帶歸一化因子之和與全部子帶的子帶歸一化因子之和的比率,確定該組的組比特?cái)?shù),并將音頻信號(hào)的編碼比特按照該組比特?cái)?shù)分配到該組。
其中,第二分配單元24用于依據(jù)該至少一個(gè)組中的每個(gè)組的每個(gè)子帶的子帶歸一化因子,將分配到至少一個(gè)組的編碼比特分配到該至少一個(gè)組中的每個(gè)組的每個(gè)子帶。
進(jìn)一步地,第二比特分配模塊24可以包括確定模塊241和分配模塊242。其中,確定模塊241用于確定該組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num;分配模塊242用于根據(jù)所述組內(nèi)的子帶歸一化因子,將分配到所述組的音頻信號(hào)的比特分配到所述組內(nèi)進(jìn)行比特分配的子帶中,其中所述組內(nèi)進(jìn)行比特分配的子帶的個(gè)數(shù)等于所述組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num。
可選地,確定子模塊241可以用于根據(jù)該組比特?cái)?shù)以及第三閾值,確定組內(nèi)初始比特分配的子帶數(shù),其中該第三閾值表示用于量化一個(gè)歸一化后的頻譜系數(shù)的最小比特?cái)?shù);確定所述組內(nèi)初始比特分配的子帶數(shù)以及所述組內(nèi)的總子帶數(shù)中的較小值為所述組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num。
或者,確定子模塊241可以用于根據(jù)該組比特?cái)?shù)以及第三閾值,確定組內(nèi)初始比特分配的子帶數(shù),其中該第三閾值表示用于量化一個(gè)歸一化后的頻譜系數(shù)的最小比特?cái)?shù);比較所述組內(nèi)初始比特分配的子帶數(shù)以及所述組內(nèi)的總子帶數(shù)與比例因子k的乘積,其中比例因子k用于調(diào)整所述組內(nèi)的總子帶數(shù);若所述組內(nèi)初始比特分配的子帶數(shù)小于所述組內(nèi)的總子帶數(shù)與比例因子k的乘積,確定所述組內(nèi)進(jìn)行比特分配的子帶數(shù)為所述組內(nèi)初始比特分配的子帶數(shù);否則,確定所述組內(nèi)進(jìn)行比特分配的子帶數(shù)為所述組內(nèi)的總子帶數(shù)。
可選地,分配模塊242可以用于從該組全部子帶中選取子帶歸一化因子最大的前n個(gè)子帶作為待分配子帶,其中n為組內(nèi)進(jìn)行比特分配的子帶數(shù);依據(jù)所述n個(gè)子帶的子帶歸一化因子,依次為所述n個(gè)子帶分配比特?cái)?shù)。對(duì)所述組的全部子帶恢復(fù)最初原始的排序。
例如,分配模塊242具體執(zhí)行以下步驟:
步驟1,對(duì)所述組內(nèi)全部子帶的子帶歸一化因子進(jìn)行由大到小排序,選取排在前n個(gè)子帶,n為組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num;
步驟2,初始化所述n個(gè)子帶的比特?cái)?shù)為1,并初始化循環(huán)次數(shù)j為0;
步驟3,確定所述n個(gè)子帶中其子帶歸一化因子大于零的子帶的子帶歸一化因子總和band_wnorm;
步驟4,為所述n個(gè)子帶中其子帶歸一化因子大于零的子帶分配比特?cái)?shù);
步驟5,判斷n個(gè)子帶中最后的子帶所分配的比特?cái)?shù)是否小于固定閾值fac,如果小于固定閾值fac,則將這個(gè)子帶分配的比特?cái)?shù)置零;
步驟6,將所述循環(huán)次數(shù)j加1;
循環(huán)步驟3至步驟6,直到循環(huán)次數(shù)j等于n;
步驟7,對(duì)所述組內(nèi)的全部子帶恢復(fù)最初原始的排序。
可選地,分配子模塊242可以用于執(zhí)行以下具體步驟:
步驟1,對(duì)所述組內(nèi)全部子帶的子帶歸一化因子進(jìn)行由大到小排序,選取排在前n個(gè)子帶,其中n為組內(nèi)進(jìn)行比特分配的子帶數(shù)band_num;
步驟2,初始化所述n個(gè)子帶的比特?cái)?shù)為1,并初始化循環(huán)次數(shù)j為0,初始化已分配比特?cái)?shù)bit_sum為0;
步驟3,確定所述n個(gè)子帶中其子帶歸一化因子大于零的子帶的子帶歸一化因子總和band_wnorm;
步驟4,為所述n個(gè)子帶中其子帶歸一化因子大于零的子帶分配比特?cái)?shù);
步驟5,判斷n個(gè)子帶所分配的比特?cái)?shù)是否小于固定閾值fac,如果小于固定閾值fac,則將這個(gè)子帶分配的比特?cái)?shù)置零;
步驟6,計(jì)算所有n個(gè)子帶所分配的比特?cái)?shù)的總和temp_sum;
步驟7,將所述循環(huán)次數(shù)j加1;
步驟8,判斷temp_sum和bit_sum是否相等,如果相等就執(zhí)行步驟10;否則繼續(xù)步驟9;
步驟9,更新bit_sum,將temp_sum值賦值給bit_sum;
循環(huán)步驟3至步驟9,直到循環(huán)次數(shù)j等于n;
步驟10,對(duì)所述組內(nèi)的全部子帶恢復(fù)最初原始的排序。
此外,在如圖2所示的根據(jù)本發(fā)明實(shí)施例的音頻信號(hào)的比特分配的裝置中,第一分配單元23還可以進(jìn)一步將該組內(nèi)的子帶劃分為多個(gè)小組,獲取每個(gè)小組的小組參數(shù);于是根據(jù)該每個(gè)小組的小組參數(shù),將分配到該組的比特分配到該每個(gè)小組。由此,第二分配單元24則用于依據(jù)該子帶歸一化因子,將分配到該每個(gè)小組的音頻信號(hào)的比特分配到該每個(gè)小組內(nèi)的每個(gè)子帶。
由此可見(jiàn),根據(jù)本發(fā)明實(shí)施例的音頻信號(hào)的比特分配的裝置可以通過(guò)分組保證前后幀分配比較穩(wěn)定,減少全局對(duì)局部不連續(xù)的影響。此外,每個(gè)組內(nèi)的比特分配可以設(shè)不同的閾值參數(shù),從而更加自適應(yīng)地分配比特,并且根據(jù)頻譜信號(hào)特點(diǎn)對(duì)組內(nèi)進(jìn)行不同側(cè)重的比特分配,例如對(duì)于頻譜較集中的類(lèi)諧波信號(hào)重點(diǎn)分配在能量大的子帶,諧波間的子帶無(wú)需分配更多比特,而對(duì)于頻譜較為平緩的信號(hào),比特分配則盡量保證子帶間平滑,這樣會(huì)使得分配的比特都用于量化重要的頻譜信息上。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專(zhuān)業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
圖3是本發(fā)明的音頻信號(hào)的比特分配的裝置30另一個(gè)實(shí)施例的示意框圖。裝置30包括處理器31、存儲(chǔ)器32、輸入設(shè)備33和輸出設(shè)備34等,通過(guò)總線(xiàn)相互通信。其中,處理器31調(diào)用存儲(chǔ)器32存儲(chǔ)的程序,可以執(zhí)行上述音頻信號(hào)的比特分配方法實(shí)施例的各個(gè)步驟。
處理器31用于執(zhí)行存儲(chǔ)器32存儲(chǔ)的本發(fā)明實(shí)施例的程序,并通過(guò)總線(xiàn)與其他裝置雙向通信。
存儲(chǔ)器32可以是包括ram和rom、或任何固定的存儲(chǔ)介質(zhì)、或可移動(dòng)的存儲(chǔ)介質(zhì),用于存儲(chǔ)可以執(zhí)行本發(fā)明實(shí)施例的程序或本發(fā)明實(shí)施例中待處理的數(shù)據(jù)。
存儲(chǔ)器32和處理器31也可以整合成應(yīng)用本發(fā)明實(shí)施例的物理模塊,在該物理模塊上存儲(chǔ)和運(yùn)行實(shí)現(xiàn)該本發(fā)明實(shí)施例的程序。
輸入設(shè)備33可以包括鍵盤(pán)、鼠標(biāo)等任何合適的裝置,用于接收用戶(hù)的輸入或來(lái)自其他設(shè)備的輸入,并發(fā)送給處理器31。
輸出設(shè)備34用于將音頻信號(hào)的比特分配的結(jié)果輸出,可以是顯示器、打印機(jī)等。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。