椎體矢量量化器形狀搜索的制作方法
【技術(shù)領(lǐng)域】
[0001] 本公開(kāi)總體涉及由編碼器執(zhí)行的矢量量化(VQ)。
【背景技術(shù)】
[0002] 己知非約束矢量量化是用于特定長(zhǎng)度的群組樣本(即,矢量)的最優(yōu)量化方法。然 而,非約束矢量量化的實(shí)施需要對(duì)于復(fù)雜度和存儲(chǔ)器容量的高要求。對(duì)于還能夠在具有存 儲(chǔ)器和搜索復(fù)雜度限制的情況下實(shí)施矢量量化的期望己經(jīng)使得開(kāi)發(fā)出所謂的結(jié)構(gòu)矢量量 化器。不同結(jié)構(gòu)給出在搜索復(fù)雜度和存儲(chǔ)器要求方面的不同權(quán)衡。這樣的一種方法是所謂 的增益-形狀矢量量化,其中,使用形狀矢量X和增益值G來(lái)表示目標(biāo)矢量t:
[0003]
[0004] 増益-形狀矢量量化的概念在于量化對(duì)G}而不是直接量化目標(biāo)矢量t。使 用針對(duì)歸一化的形狀輸入的形狀量化器以及處理信號(hào)的動(dòng)態(tài)變化的增益量化器對(duì)增益(G) 和形狀(X)分量進(jìn)行編碼。經(jīng)常在音頻編碼中使用該增益-形狀結(jié)構(gòu),因?yàn)榈絼?dòng)態(tài)變化和 形狀的劃分(還被稱為精細(xì)結(jié)構(gòu))良好地適應(yīng)聽(tīng)覺(jué)模型。增益-形狀概念還可以應(yīng)用于離 散余弦變換系數(shù)或在視頻編碼中使用的其它系數(shù)。
[0005] 許多語(yǔ)音和音頻編解碼器(諸如ITU-TG. 718和IETFOpus(RFC6716))使用基于 結(jié)構(gòu)化PVQ的增益-形狀VQ,以對(duì)目標(biāo)語(yǔ)音/音頻信號(hào)的頻譜系數(shù)進(jìn)行編碼。
[0006] PVQ編碼概念由R.Fischer在1983年至丨986年間引入,并從那以后隨著更高效的 數(shù)字信號(hào)處理器(!)SP)的出現(xiàn)而發(fā)展為實(shí)際使用。PVQ編碼概念涉及利羯K個(gè)單位脈沖的 整數(shù)L1-范數(shù)對(duì)N維超椎體上的點(diǎn)進(jìn)行搜索、定位并且隨后編碼。所謂的L1-范數(shù)是矢量 的絕對(duì)值的和,即,帶符號(hào)整數(shù)PVQ矢量的絕對(duì)和被限制為精確的K,其中,單位脈沖由整數(shù) 值"1"表示。相對(duì)于只能表示非負(fù)整數(shù)的無(wú)符號(hào)整數(shù)而言,帶符號(hào)整數(shù)能夠表示負(fù)整數(shù)。
[0007] 與許多其它結(jié)構(gòu)化VQ相比,結(jié)構(gòu)化PVQ-編碼方法的一個(gè)優(yōu)勢(shì)在于在維度N方面 不存在固有限制,從而為PVQ-編碼開(kāi)發(fā)的搜索方法應(yīng)該可以應(yīng)用于任意維度N和任意K 值。
[0008] 與結(jié)構(gòu)化PVQ…形狀量化相關(guān)的一個(gè)問(wèn)題在于使用合理程度的復(fù)雜度來(lái)找到可能 的最好的量化矢量。對(duì)于較高速率的語(yǔ)音和音頻編碼而言,當(dāng)可允許的單位脈沖的數(shù)目K 變得非常高并且維度N也變得非常高時(shí),更加需要一種有效的PVQ-搜索并同時(shí)保持重構(gòu)語(yǔ) 音/音頻的質(zhì)量(例如信噪比(SNR))。
[0009] 此外,PVQ概念的使用不限于語(yǔ)音和音頻編碼領(lǐng)域。當(dāng)前,所謂的互聯(lián)網(wǎng)工程任務(wù) 部(1BTF)正在尋求使用基tPVQ的算法對(duì)興散余弦變換(DCT)糸數(shù)進(jìn)行編碼的視頻編解 碼開(kāi)發(fā)。視頻編碼與音頻編碼相比更需要高效的搜索處理,因?yàn)閷?duì)于大顯示器而言系數(shù)的 數(shù)目可能變得非常大。
【發(fā)明內(nèi)容】
[0010] 對(duì)于結(jié)構(gòu)化PV(h期望實(shí)現(xiàn)計(jì)算上更高效的形狀搜索并仍然保持高的信噪比。尤其 針對(duì)涉及固定精度DSP的實(shí)施。本文提供的方案通過(guò)提供改進(jìn)的PVQ精細(xì)搜索來(lái)實(shí)現(xiàn)計(jì)算 高效的PVQ形狀搜索。
[0011] 根據(jù)第一方案,提供了一種用于由編碼器執(zhí)行的PVQ形狀搜索的方法。假設(shè)所述 PVQ涉及采用目標(biāo)矢量X作為輸入,通過(guò)在內(nèi)部維度搜索循環(huán)中迭代地添加單位脈沖來(lái)獲 得矢量y_。提供的方法包括:在進(jìn)入用于單位脈沖添加的下一個(gè)內(nèi)部維度搜索循環(huán)之前:基 于當(dāng)前矢量y的最大脈沖幅度maxainpy,確定是否需要多于當(dāng)前比特字長(zhǎng)來(lái)以無(wú)損方式表示 變量enloopy。在即將到來(lái)的內(nèi)部維度循環(huán)中,變量enloopy與y的累加能量相關(guān)。
[0012] 根據(jù)第二方案,提供了一種用于PVQ形狀搜索的編碼器。假設(shè)所述PVQ涉及采用 目標(biāo)矢量X作為輸入,通過(guò)在內(nèi)部維度搜索循環(huán)中迭代地添加單位脈沖來(lái)獲得矢量y。提 供的編碼器包括:在進(jìn)入用于單位脈沖添加的下一個(gè)內(nèi)部維度搜索循環(huán)之前:基于當(dāng)前 矢量y的最大脈沖幅度maxampy,確定是否需要多于當(dāng)前比特字長(zhǎng)來(lái)以無(wú)損方式表示變量 enloopy。在即將到來(lái)的內(nèi)部維度循環(huán)中,變量enj_oop^_y的累加能量相關(guān)。
[0013] 所述方法可以包括并且所述編碼器可以被配置為:在進(jìn)入用于單位脈沖添加的下 一個(gè)內(nèi)部維度循環(huán)之前:基于輸入矢量X的最大絕對(duì)值xabs_,確定比特字φ的X和矢量y 之間的下一個(gè)循環(huán)累加循環(huán)內(nèi)相關(guān)值corriy的可能上移。
[0014] 所述方法可以包括并淚.所述編碼器可以被配置為:當(dāng)需要多于當(dāng)前比特字長(zhǎng)來(lái)表 示en:loopy時(shí),使用更長(zhǎng)比特字長(zhǎng)執(zhí);行內(nèi)循環(huán)計(jì)算以表示en:loopy〇
[0015] 所述方法可以包括并且所述編碼器可以被配置為:當(dāng)需要多于當(dāng)前比特字長(zhǎng)來(lái)表 示enloob時(shí),使用更長(zhǎng)比特字長(zhǎng)執(zhí)行內(nèi)循環(huán)計(jì)算以表示內(nèi)循環(huán)中的X和矢量y之間的平 方累加循環(huán)內(nèi)相關(guān)值c〇rrxy2。
[0016] 所述方法還可以包括并且所述編碼器可以被配置為:當(dāng)不需要多于當(dāng)前比特字長(zhǎng) 來(lái)表示enloop^,通過(guò)采用使用第一比特字長(zhǎng)表示enloop濟(jì)第一單位脈沖添加循環(huán)來(lái) 執(zhí)行內(nèi)循環(huán)計(jì)算,以及,當(dāng)需要多于當(dāng)前比特字長(zhǎng)來(lái)表示enloop^i;通過(guò)采用使用比第一 單位脈沖添加循環(huán)更長(zhǎng)的比特字長(zhǎng)表示enl〇〇b的第二單位脈沖添加循環(huán)來(lái)汍行內(nèi)循環(huán)計(jì) 算。
[0017] 基于maxampy確定是否需要多于當(dāng)前比特字長(zhǎng)來(lái)表示enloopy可以包括:確定在即 將到來(lái)的內(nèi)部搜索循環(huán)中,單位脈沖被添加到與maxampdg關(guān)聯(lián)的y中的位置的情況的特 性。
[0018] 所述方法還可以包括并且所述編碼器可以被配置為:在羯于單位脈沖添加的內(nèi)部 維度搜索循環(huán)中:通過(guò)將針對(duì)y中的每個(gè)位置η的當(dāng)前η的相關(guān)性和能量值的交叉相乘以 及根據(jù)η的先前值保存的-f'方相關(guān)性BestCorrSq和能童值bestEn評(píng)估為下式,來(lái)確定用 于添加單位脈沖的y中的位置nb_:
[0019] cor:rXY'_*best.En>BestCorrSq*enloopY
[0020] 其中,當(dāng)corrxy2*bestEn>BestCorrSq*enloopyN
[0021] 所述方法還可以包括并且所述編碼器可以被配置為:當(dāng)與目標(biāo)矢量x相關(guān)聯(lián)的 最終值K超過(guò)閾值特,跟蹤maxamiv這里,所述方法可以包括并且所述編碼器可以被配置 為僅在K的當(dāng)前值超過(guò)可以作為在以上句子中提到的閾值的閾值時(shí)才計(jì)算能量余量en"margin"
[0022] 根據(jù)第:Ξ;方案,提供一種包括根據(jù)第二方案所述的編碼器的通信設(shè)備。
[0023] 根據(jù)第四方案,提供一種包括指令的計(jì)算機(jī)程序,其中,當(dāng)所述指令被至少一個(gè)處 理器執(zhí)行時(shí),使所述至少一個(gè)處理器執(zhí)行根據(jù)第一方案所述的方法。
[0024] 根據(jù)第il方案,提供一種包含根據(jù)第四方案所述的計(jì)算機(jī)裎序的載體,其中,所述 載體是電子信號(hào)、光信號(hào)、無(wú)線電信號(hào)或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的一個(gè)。
[0025] 根據(jù)第六方案,提供一種被配置用于PVQ形狀搜索的編碼器,所述PVQ采用目標(biāo)矢 量X作為輸入,并通過(guò)在內(nèi)部維度搜索循環(huán)中迭代地添加單位脈沖來(lái)獲得矢量y。提供的編 碼器包括第一確定單元,用于:在進(jìn)入用于單位脈沖添加的下一個(gè)內(nèi)部維度搜索循環(huán)之前, 基于當(dāng)前矢量y的最大脈沖幅度maxamp,,確定是否需要多于當(dāng)前比特字長(zhǎng)來(lái)在即將到來(lái)的 內(nèi)部維度循環(huán)中以無(wú)損方式表示與y的累加能量相關(guān)的變量enlooPy。
[0026] 根據(jù)第六方案所述的編碼器還可以包括第二確定單元,用于:在進(jìn)入用于單位脈 沖添加的下一個(gè)內(nèi)部維度循環(huán)之前:基于輸入矢量X的最大絕對(duì)值xabs_,確定比特字中 的X和矢量y之間的下一個(gè)循環(huán)累加循環(huán)內(nèi)相關(guān)值corrx:y的可能上移。
[0027] 根據(jù)第六方案所述的編碼器可以包括精細(xì)搜索單元,用于;當(dāng)需要多于當(dāng)前比特 字長(zhǎng)來(lái)表示enloopjf,使用更長(zhǎng)比特字長(zhǎng)表示enloopy來(lái)汍行內(nèi)循環(huán)計(jì)算。
[0028] 根據(jù)第六方案所述的編碼器可以包括精細(xì)搜索單元,用于:當(dāng)不需要多于當(dāng)前比 特字長(zhǎng)來(lái)表示enloop5M',通過(guò)采用使用第一比特字長(zhǎng)的第一單位脈沖添加循環(huán)來(lái)執(zhí)行內(nèi) 循環(huán)計(jì)算,以及,當(dāng)需要多于當(dāng)前比特字長(zhǎng)來(lái)表示enloop#,通過(guò)采用使用比第一單位脈 沖添加循環(huán)更長(zhǎng)的比特字長(zhǎng)的第二單位脈沖添加循環(huán)來(lái)執(zhí)行內(nèi)循環(huán)計(jì)算。
[0029] 根據(jù)第六方案所述的編碼器可以包括精細(xì)搜索單元,用于:當(dāng)不需要多于當(dāng)前比 特字長(zhǎng)來(lái)表示enloop#〗%通過(guò)采用具有特定精度的第一單位脈添加循環(huán)來(lái)執(zhí)行內(nèi)循環(huán) 計(jì)算;以及,當(dāng)需要多于當(dāng)前比特字長(zhǎng)來(lái)表示enloopji,通過(guò)采用具有比第一單位脈沖添 加循環(huán)更高的精度的第二單位脈沖添加循環(huán)來(lái)執(zhí)行內(nèi)循環(huán)計(jì)算。
[0030] 根據(jù)第六方案所述的編碼器可以被配置為執(zhí)行:通過(guò)確定在即將到來(lái)的內(nèi)部搜索 循環(huán)中単位脈沖被添加到與maxampdg關(guān)聯(lián)的y屮的位置的情況的特性:^來(lái)基于inaxampy. 定是否需要多于當(dāng)前比特字長(zhǎng)來(lái)表示enl〇〇py。
[0031] 根據(jù)第六方案所述的編碼器可以包括精細(xì)搜索單元,用于r在用于單位脈沖添加 的內(nèi)部維度搜索循環(huán)中;通過(guò)將針對(duì)y中的每個(gè)位置η的當(dāng)前η的相關(guān)性和能量值的交叉 相乘以及根據(jù)η的先前值保存的相關(guān)性BestCorrSq和能量值bestEn評(píng)估為下式,來(lái)確定 用于添加單位脈沖的y中的位置
[0032] corrxy2*bestEn>BestCorrSq*enloopy
[0033] 其中,當(dāng)carrx/*bestBn>BestCorrSq*enloopy時(shí)
[0034]
[0035] 根據(jù)第六方案所述的編碼器可以包括存儲(chǔ)單元,周于:當(dāng)與目標(biāo)矢量x相關(guān)聯(lián)的 最終值K超過(guò)_值時(shí),跟蹤maxaEnpy〇
[0036] 根據(jù)第七方案,提供/ 一種包括根據(jù)第六方案所述的編碼器的通信設(shè)備。
【附圖說(shuō)明】
[0037] 從以下在附圖中示出的實(shí)施倒的更具體地描述中,本文公開(kāi)的技術(shù)的以上和其它 目的、特征和優(yōu)點(diǎn)將是清楚的。附圖不需要按比例繪制,而是可以突出齡圖以示出本文公開(kāi) 的技術(shù)的原理。
[0038] 圖1至圖4示出根據(jù)不同示例實(shí)施例的用于PVQ形狀搜索(精細(xì)搜索)的方法。
[0039] 圖5示出根據(jù)示例實(shí)施例的PVQ形狀搜索(精細(xì)搜索)的實(shí)施例的步驟。
[0040] 圖6更詳細(xì)地示出根據(jù)示例實(shí)施例的圖5的PVQ形狀搜索(精細(xì)搜索)的步驟。 [0041 ] 圖7示出PVQ形狀搜索的實(shí)施例。
[0042] 圖8示出配備有EVS編碼器的通信設(shè)備的實(shí)施例。
[0043] 圖9示出通信設(shè)備的實(shí)施例,以及
[0044] 圖丨0也示出通信設(shè)備的實(shí)施例。
[0045] 圖11a至圖11c示出根據(jù)示例實(shí)施例的編碼器。
[0046] 圖12示出PVQ音頻編碼系統(tǒng)的示例,其中,系統(tǒng)的至少一部分包括在編碼器和/ 或編解碼器中,所述編碼器和/或編解碼器轉(zhuǎn)而包括在通信設(shè)備(諸如移動(dòng)電話)中。
【具體實(shí)施方式】
[0047] 在浮點(diǎn)算法中,不存在與建立內(nèi)循環(huán)PVQ形狀搜索迭代參數(shù)的動(dòng)態(tài)變化相關(guān)的主 要問(wèn)題,然而,在具有例如16/32比特限制的累加器(存儲(chǔ)有中間算法和/或邏輯結(jié)果的寄 存器)和變量的固定精度的DSP中,采?高效搜索方法是很重要的,在該方法中,DSP變量 的有限動(dòng)態(tài)范圍被最大化并且精度被最大化,同時(shí)也能夠使用盡可能多的可用快速有限動(dòng) 態(tài)范圍的DSP運(yùn)算。
[0048] 以上術(shù)語(yǔ)"精度"指的是能夠表示盡可能少的數(shù)目,即,在針對(duì)特定字長(zhǎng)的小數(shù)點(diǎn) 后的位的數(shù)目。換句話說(shuō),精度對(duì)應(yīng)于表示的精確度,其同樣也由十進(jìn)制數(shù)或二迸制數(shù)的數(shù) 目定義。在卜文描述的買施例中可以將精度闡述為與小數(shù)點(diǎn)zJs的位的數(shù)目相關(guān)而不必須 與其自身的字長(zhǎng)相關(guān)的原因在于,在定點(diǎn)算法中,對(duì)于相同字長(zhǎng)可能存在不同的精度。例 如,數(shù)據(jù)格式1Q〗_5和2Q14的字長(zhǎng)均為〗_6,但是前者在小數(shù)點(diǎn)之后具有15位,而后者具有 14位。它們可以表示的最小數(shù)字將分另I]是2 ;5和2 M。
[0049] 在Valin等人的"Afull-bandwidthaudiocodecwithlowcomplexityand verylowdelay",EUSIPCO, 2009中的章節(jié)3, 2中公開(kāi)了執(zhí)行形狀的椎體矢量量化的一種 方式。在該文檔中,提出了一種MDCT編解碼器,其中,使用球形碼本來(lái)對(duì)每個(gè)帶中的細(xì)節(jié) (即,形狀)進(jìn)行代數(shù)量化^并且故編碼器和解碼器之間共享的信息推導(dǎo)出位分配。本Φ請(qǐng) 的公開(kāi)的多個(gè)方案和實(shí)施例至少粗略地涉及如何通過(guò)受限于例如16/32位算法的定點(diǎn)的 高效方式而非Valin等人的浮點(diǎn)值來(lái)進(jìn)行根據(jù)Valin等人的等式4-7的搜索。
[0050] 在下文公開(kāi)的一些方案和實(shí)施例中,給出特定維度N的目標(biāo)矢量x(n)(等式 〇中的t) ^并給出單位脈沖的特定數(shù)目K,分析形狀并且確定合適的重構(gòu)矢量xq(n)= func(y(η)):>其最小化形狀量化誤差并從而最大化例如在音頻編碼的情況下的感知質(zhì)量。 所述方案和實(shí)施例中的至少一些被實(shí)施為目的在于在需要依附于Li范數(shù)的矢量y(η)中找 至UK個(gè)單位脈沖的最優(yōu)星群^并同時(shí)使復(fù)雜度在控刺之中肩,在實(shí)踐中盡可能低。
[0051] 作為使用現(xiàn)有技術(shù)的開(kāi)放環(huán)路方法來(lái)確定內(nèi)循環(huán)動(dòng)態(tài)范圍和累加器精度的替代, 所述方案和實(shí)施例的一些被設(shè)計(jì)為在開(kāi)始最內(nèi)側(cè)I搜索循環(huán)中的PVQ-形狀失真商的高成本 評(píng)估之前,使用低成本(在需要的DSP周期方面以及在需要的闕加程序只讀存儲(chǔ)器(ROM) 方面)對(duì)最差情況分子和/或最差情況分母進(jìn)行"接近最優(yōu)"預(yù)分析。"接近最優(yōu)"預(yù)分析 的目的不在于將值縮放至精確的最優(yōu)最大動(dòng)態(tài)范圍:> 相反預(yù)分析確定接近最優(yōu)的以2為 冪的標(biāo)度因子,因?yàn)橐?為冪的標(biāo)度可以被實(shí)施為二進(jìn)制數(shù)的移位并且這種移位在DSP周 期和DSPROM中具有低成本。
[0052] 感知地激發(fā)分母精度選擇,因?yàn)榕c較平坦的區(qū)域相比,將更精確地分配頻譜峰值 區(qū)域。
[0053] 雖然在本公幵中描述的主要概念覆蓋各種修改和備選結(jié)構(gòu),但是在附圖和示例性 代碼中示出多方面的實(shí)施例,并且將在下文進(jìn)行詳細(xì)描述。
[0054] 削二搜索總體體遞.
[0055] -種L1-范數(shù)結(jié)構(gòu)化的PVQ-量化器允許若〒搜索優(yōu)化,其中,首要優(yōu)化