一種isf系數(shù)矢量量化的方法與裝置制造方法
【專利摘要】本發(fā)明涉及一種ISF系數(shù)矢量量化方法與裝置,將訓練好的多區(qū)域碼表中的ISF系數(shù)轉(zhuǎn)化為LPC系數(shù),分別獲取區(qū)域索引Choosen_cluster(i)、第一級矢量量化VQ的索引VQ(j)和第二級分裂矢量量化SVQ的索引SVQ[5]對待量化的ISF[16]系數(shù)進行量化,得到量化后的ISF_q[16],進一步得到當前幀量化后的LPC_q[16],將原始的LPC[16]系數(shù)通過功率譜計算公式得到對應(yīng)的功率譜pf[128];將得到的當前幀量化后的LPC_q[16]系數(shù)和原始LPC[16]系數(shù)對應(yīng)的功率譜pf[128]計算出當前區(qū)域?qū)?yīng)的譜失真SD,并與上一個區(qū)域的譜失真進行比較,獲取最小的譜失真SD,將最小譜失真對應(yīng)的區(qū)域索引Choosen_cluster(i)和第一級矢量量化后的索引VQ(j)以及第二級分裂矢量量化后的索引SVQ[5]輸出,完成ISF系數(shù)矢量量化。本發(fā)明僅使用42bit量化16階ISF系數(shù),相比AMR-WB+的46bit,少了4bit。
【專利說明】一種ISF系數(shù)矢量量化的方法與裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及音頻編解碼【技術(shù)領(lǐng)域】,尤其涉及音頻編解碼技術(shù)中ISF系數(shù)矢量量化 方法與裝置。
【背景技術(shù)】
[0002] 現(xiàn)有當前全球移動通信已全面進入3G、B3G時代,3G技術(shù)的發(fā)展使得終端接入網(wǎng) 絡(luò)的帶寬進一步提升,龐大的移動通信客戶群和3G移動通信網(wǎng)的開通,驅(qū)動移動通信業(yè)進 入新一輪增長高峰,各種基于高速網(wǎng)絡(luò)的增值業(yè)務(wù)層出不窮,其中又以移動多媒體點播、多 媒體短信、手機音樂等為代表的移動多媒體業(yè)務(wù)最具發(fā)展前景。然而,移動網(wǎng)絡(luò)的應(yīng)用環(huán)境 不同于固定網(wǎng)絡(luò)環(huán)境:移動網(wǎng)絡(luò)的帶寬資源較有線網(wǎng)絡(luò)大大減少、移動設(shè)備的電池供電時 間較短,內(nèi)存容量較小,資源相對有限,同時由于目前多聲道編碼效率不高,導致目前移動 環(huán)境下難以給用戶滿意的聽覺享受,制約了移動音頻相關(guān)業(yè)務(wù)的普遍應(yīng)用。作為移動通信 核心技術(shù)的語音編碼壓縮中,通常用線性預測編碼(Linear Predictive Coding, LPC)系數(shù) 表征語音的短時譜包絡(luò),對其高效量化是語音編碼中一個關(guān)鍵性的問題。
[0003] 量化是有損數(shù)據(jù)壓縮中的關(guān)鍵技術(shù)之一。量化方法一般可以分為兩種:一種是標 量量化,另一種是矢量量化。對于一組數(shù)據(jù),標量量化方法的思路是對這一組數(shù)據(jù)中的每一 個值分別進行考察,采用同一個量化器進行量化,輸入一個值,從規(guī)定的值中找到一個對應(yīng) 的值輸出。在這個過程中,沒有考慮這一組數(shù)據(jù)中數(shù)據(jù)間的相關(guān)性,每個數(shù)據(jù)都是相對獨立 的。而矢量量化則不同,它將這一組數(shù)據(jù)分成若干個小的單元,這個小單元被稱作為矢量, 小單元中數(shù)據(jù)的個數(shù),稱為這個矢量的維數(shù),"規(guī)定的值"被稱作為碼本。矢量量化的過程是 將輸入的每個矢量根據(jù)一定的原則進行選擇,在碼本中找到最接近的那個值。標量量化每 個數(shù)據(jù)都是獨立的,而矢量量化利用了矢量中各個分量的相關(guān)性來消除冗余度,所以從這 個角度來講,矢量量化方法總是優(yōu)于標量量化方法的。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于為克服現(xiàn)有技術(shù)的缺陷,而提供一種ISF系數(shù)矢量量化方法與 裝直。
[0005] 為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:一種ISF系數(shù)矢量量化的方法,包括 以下步驟:
[0006] S1 :將輸入的一組待量化的ISF[16]系數(shù)轉(zhuǎn)化成LPC_s[16],并且將訓練好的多 區(qū)域碼表中的ISF系數(shù)轉(zhuǎn)化為LPC系數(shù),通過最近鄰搜索法則,采用歐氏距離測度選擇出 歐氏距離最近的6個區(qū)域,然后按順序選擇第一個區(qū)域?qū)?yīng)的碼本,并將該區(qū)域的索引值 Choosen_cluster(i)(用 4bit 表不)輸出,其中 i = 0, 1,2, 3, · · ·,15 ;
[0007] S2 :在步驟S1中輸出的索引Choosen_cluster (i)對應(yīng)的已經(jīng)訓練好的一張 16*64*16的碼表中,根據(jù)最近鄰法則,采用歐式距離測度進行搜索,搜索出一組與待量化的 ISF[16]系數(shù)殘差最小的一組碼本,得到第一級矢量量化VQ對應(yīng)的索引VQ(j)(用6bit表 示),j = 0, 1,2, 3,…,63,然后將計算出來的殘差Re[16]化分為5組,5組的長度分別為 3, 3, 3, 3, 4,在第一級矢量量化VQ輸出的索引中對應(yīng)的3個3*64碼表,1個3*128碼表和 1個4*128碼表中通過最近鄰法則,按照歐式距離測度,分別搜索出與5組殘差中殘差最小 的一組碼本,得到第二級分裂矢量量化索引SVQ[5](分別用6bit,6bit,6bit,7bit,7bit表 示);最后通過區(qū)域索引Choosen_cluster(i)、第一級矢量量化VQ的索引VQ(j)和第二級 分裂矢量量化SVQ的索引SVQ[5]對待量化的ISF[16]系數(shù)進行量化,得到量化后的ISF_ q[16];
[0008] S3 :將步驟S2中得到的當前幀量化后的ISF_q[16]系數(shù)和前一幀保留的量化后 的ISF_q_old[16]系數(shù)通過LPC和ISF之間的關(guān)系進行換算,得到當前幀量化后的LPC_ q[16],并且將前一幀量化后的所保存的ISF_q_old[16]系數(shù)進行更新,把當前幀量化后的 ISF_q[16]系數(shù)保存到ISF_q_old[16]系數(shù)中,以便下一幀使用;
[0009] S4 :將原始的LPC[16]系數(shù)通過功率譜計算公式得到對應(yīng)的功率譜pf [128];
[0010] S5 :將步驟S3得到的當前幀量化后的LPC_q[16]系數(shù)和步驟S4中得到的原始 LPC[16]系數(shù)對應(yīng)的功率譜pf [128]通過譜失真計算公式,計算出當前區(qū)域?qū)?yīng)的譜失真 SD,并與上一個區(qū)域的譜失真進行比較,若當前區(qū)域計算出的譜失真小于上一個區(qū)域計算 的譜失真,則將譜失真進行更新min_error = SD,然后跳轉(zhuǎn)至步驟S1進行下一個區(qū)域的計 算;若當前區(qū)域計算出的譜失真大于上一個區(qū)域計算的譜失真,則直接跳轉(zhuǎn)至步驟S1進行 下一個區(qū)域的計算;若6個區(qū)域?qū)?yīng)的譜失真計算完成,最終將最小譜失真對應(yīng)的區(qū)域索 引Choosen_cluster(i)和第一級矢量量化后的索引VQ(j)以及第二級分裂矢量量化后的 索引SVQ[5]輸出,完成ISF系數(shù)矢量量化。
[0011] 進一步,所述步驟S5中若當前區(qū)域為第一個區(qū)域,則將當前區(qū)域計算出的譜失真 與系統(tǒng)初始的min_error = INF(無窮大)進行比較。
[0012] 一種ISF系數(shù)矢量量化的裝置,包括多區(qū)域選擇模塊、多級分裂矢量量化模塊、 LPC系數(shù)還原模塊、功率譜計算模塊、譜失真比較模塊,其中,
[0013] 所述多區(qū)域選擇模塊,用于將輸入的一組待量化的ISF系數(shù)轉(zhuǎn)化為LPC系數(shù),并且 將訓練好的多區(qū)域碼表中的ISF系數(shù)轉(zhuǎn)化為LPC系數(shù),通過最近鄰搜索法則,采用歐氏距離 測度選擇出最近的6個區(qū)域,然后按順序依次輸出每一個區(qū)域?qū)?yīng)的碼本,并將該區(qū)域的 索引輸出到多級分裂矢量量化模塊中;
[0014] 所述多級分裂矢量量化模塊,用于將待量化的ISF系數(shù)通過多區(qū)域選擇模塊中輸 出的區(qū)域索引進行第一級矢量量化和第二級分裂矢量量化,并將量化后的ISF系數(shù)和第一 級矢量量化后的索引和第二級分裂矢量量化后的索引輸出到LPC系數(shù)還原模塊中;
[0015] 所述LPC系數(shù)還原模塊,用于將多級分裂矢量量化模塊中輸出的量化后的ISF系 數(shù)和上一幀保留的量化后的ISF系數(shù)經(jīng)過量化矢量,還原出原始的LPC系數(shù),同時將當前幀 量化后的ISF系數(shù)保存,以便下一幀使用,最后將保存的ISF系數(shù)和還原出的LPC系數(shù)輸出 到譜失真比較模塊中;
[0016] 所述功率譜計算模塊,用于將原始的LPC系數(shù)通過功率譜計算公式得到對應(yīng)的功 率譜,并將功率譜輸出到譜失真比較模塊中;
[0017] 所述譜失真比較模塊,用于將功率譜計算模塊中輸出的功率譜和LPC系數(shù)還原模 塊中輸出的還原的LPC系數(shù)通過譜失真計算公式算出對應(yīng)的譜失真,將計算出的譜失真與 上一個區(qū)域計算得到的譜失真進行比較;若當前區(qū)域計算出的譜失真小于上一個區(qū)域計算 的譜失真,則將譜失真進行更新,然后進行下一個區(qū)域的計算;若當前區(qū)域計算出的譜失真 大于上一個區(qū)域計算的譜失真,則直接進行下一個區(qū)域的計算;若6個區(qū)域?qū)?yīng)的譜失真 計算完成,最終將最小譜失真對應(yīng)的區(qū)域索引和第一級矢量量化后的索引以及第二級分裂 矢量量化后的索引輸出,完成ISF系數(shù)矢量量化。
[0018] 本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:本發(fā)明僅使用42bit量化16階ISF系數(shù), 相比 AMR-WB+ 的 46bit,少了 4bit。
[0019] 下面結(jié)合附圖和具體實施例對本發(fā)明作進一步描述。
【專利附圖】
【附圖說明】
[0020] 圖1是本發(fā)明實施例的系統(tǒng)結(jié)構(gòu)框圖。
[0021] 圖2是本發(fā)明實施例的方法流程圖。
【具體實施方式】
[0022] 為了更充分理解本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合具體實施例對本發(fā)明的技術(shù)方案進 一步介紹和說明。
[0023] 如圖1所示,本發(fā)明實施例提供的ISF系數(shù)矢量量化方法,具體包括如下步驟:
[0024] 在步驟S1中:將輸入的一組待量化的ISF[16]系數(shù)轉(zhuǎn)化成LPC_s[16],并且將訓 練好的多區(qū)域碼表中的ISF系數(shù)轉(zhuǎn)化為LPC系數(shù),通過最近鄰搜索法則,采用歐氏距離測度 選擇出歐氏距離最近的6個區(qū)域,然后按順序選擇第一個區(qū)域?qū)?yīng)的碼本,并將該區(qū)域的 索引值 Choosen_cluster (i)(用 4bit 表示)輸出,其中 i = 0, 1,2, 3, · · ·,15 ;
[0025] 在步驟S2中:在步驟S1中輸出的索引Choosen_cluster (i)對應(yīng)的已經(jīng)訓練好 的一張16*64*16的碼表中,根據(jù)最近鄰法則,采用歐式距離測度進行搜索,搜索出一組與 待量化的ISF[16]系數(shù)殘差最小的一組碼本,得到對應(yīng)碼本的索引,即第一級矢量量化VQ 對應(yīng)的索引VQ(j)(用6bit表示),j = 0, 1,2,3,…,6 Re[16]3 ;然后將計算出來的殘差 Re [16]化分為 5 組,5 組的長度分別為 3, 3, 3, 3, 4,即 Rei [3]、Re2 [3]、Re3 [3]、Re4 [3]、Re5 [4], 然后根據(jù)第一級矢量量化VQ輸出的索引VQ(j)(用6bit表示)中對應(yīng)的已經(jīng)訓練好的3 個3*64碼表,1個3*128碼表和1個4*128碼表中通過最近鄰法則,按照歐式距離測度,分 別搜索出與ReJS]、Re 2[3]、Re3[3]、Re4[3]、Re5[4]殘差最小的一組碼本,得到第二級分裂 矢量量化索引5¥0[5](分別用613^,613^,613^,713^,713^表示) ;最后通過切換區(qū)域索引 Chooserucluster (i)、第一級矢量量化VQ的索引VQ (j)和第二級分裂矢量量化SVQ的索引 SVQ[5]對待量化的ISF[16]進行量化,得到量化后的ISF_q[16];
[0026] 在步驟S3中:將步驟S2中得到的當前幀量化后的ISF_q[16]系數(shù)和前一幀保 留的量化后的ISF_q_old[16]系數(shù)通過LPC和ISF之間的關(guān)系進行換算,得到當前幀量化 后的LPC_q[16],并且將前一幀量化后的所保存的ISF_q_old[16]系數(shù)進行更新,ISF_q_ old[16] = ISF_q[16],即把當前幀量化后的ISF_q[16]系數(shù)保存到ISF_q_old[16]系數(shù) 中,以便下一幀使用;
[0027] 在步驟S4中:將原始的LPC[16]系數(shù)通過功率譜計算公式得到對應(yīng)的功率譜 pf[128];
[0028] 在步驟S5中:將步驟S3得到的當前幀量化后的LPC_q[16]系數(shù)和步驟S4中得到 的原始LPC[16]系數(shù)對應(yīng)的功率譜pf [128]通過譜失真計算公式,
[0029]
【權(quán)利要求】
1. 一種ISF系數(shù)矢量量化的方法,其特征在于,包括以下步驟: 51 :將輸入的一組待量化的ISF[16]系數(shù)轉(zhuǎn)化成LPC_s[16],并且將訓練好的多區(qū)域碼 表中的ISF系數(shù)轉(zhuǎn)化為LPC系數(shù),通過最近鄰搜索法則,采用歐氏距離測度選擇出歐氏距離 最近的6個區(qū)域,然后按順序選擇第一個區(qū)域?qū)?yīng)的碼本,并將該區(qū)域的索引值Chooser^ cluster (i)(用 4bit 表示)輸出,其中 i =0, 1,2, 3,···,15; 52 :在步驟S1中輸出的索引Choosen_cluster(i)對應(yīng)的已經(jīng)訓練好的一張16*64*16 的碼表中,根據(jù)最近鄰法則,采用歐式距離測度進行搜索,搜索出一組與待量化的ISF[16] 系數(shù)殘差最小的一組碼本,得到第一級矢量量化VQ對應(yīng)的索引VQ (j)(用6bit表示),j = 0, 1,2, 3,…,63,然后將計算出來的殘差Re [16]化分為5組,5組的長度分別為3, 3, 3, 3, 4, 在第一級矢量量化VQ輸出的索引中對應(yīng)的3個3*64碼表,1個3*128碼表和1個4*128碼 表中通過最近鄰法則,按照歐式距離測度,分別搜索出與5組殘差中殘差最小的一組碼本, 得到第二級分裂矢量量化索引5¥0[5](分別用613^,613^,613^,713^,713^表示) ;最后通 過區(qū)域索引Ch〇〇sen_CluSter(i)、第一級矢量量化VQ的索引VQ(j)和第二級分裂矢量量化 SVQ的索引SVQ[5]對待量化的ISF[16]系數(shù)進行量化,得到量化后的ISF_q[16]; 53 :將步驟S2中得到的當前幀量化后的ISF_q[16]系數(shù)和前一幀保留的量化后的 ISF_q_old[16]系數(shù)通過LPC和ISF之間的關(guān)系進行換算,得到當前幀量化后的LPC_ q[16],并且將前一幀量化后的所保存的ISF_q_old[16]系數(shù)進行更新,把當前幀量化后的 ISF_q[16]系數(shù)保存到ISF_q_old[16]系數(shù)中,以便下一幀使用; S4:將原始的LPC[16]系數(shù)通過功率譜計算公式得到對應(yīng)的功率譜pf[128]; S5 :將步驟S3得到的當前幀量化后的LPC_q[16]系數(shù)和步驟S4中得到的原始LPC[16] 系數(shù)對應(yīng)的功率譜pf [128]通過譜失真計算公式,計算出當前區(qū)域?qū)?yīng)的譜失真SD,并與 上一個區(qū)域的譜失真進行比較,若當前區(qū)域計算出的譜失真小于上一個區(qū)域計算的譜失 真,則將譜失真進行更新min_error = SD,然后跳轉(zhuǎn)至步驟S1進行下一個區(qū)域的計算; 若當前區(qū)域計算出的譜失真大于上一個區(qū)域計算的譜失真,則直接跳轉(zhuǎn)至步驟S1進行下 一個區(qū)域的計算;若6個區(qū)域?qū)?yīng)的譜失真計算完成,最終將最小譜失真對應(yīng)的區(qū)域索引 Ch〇〇sen_CluSter(i)和第一級矢量量化后的索引VQ(j)以及第二級分裂矢量量化后的索 引SVQ[5]輸出,完成ISF系數(shù)矢量量化。
2. 根據(jù)權(quán)利要求1所述ISF系數(shù)矢量量化的方法,其特征在于,所述步驟S5中若當前 區(qū)域為第一個區(qū)域,則將當前區(qū)域計算出的譜失真與系統(tǒng)初始的min_error = INF(無窮 大)進行比較。
3. -種ISF系數(shù)矢量量化的裝置,其特征在于:包括多區(qū)域選擇模塊、多級分裂矢量量 化模塊、LPC系數(shù)還原模塊、功率譜計算模塊、譜失真比較模塊,其中, 所述多區(qū)域選擇模塊,用于將輸入的一組待量化的ISF系數(shù)轉(zhuǎn)化為LPC系數(shù),并且將訓 練好的多區(qū)域碼表中的ISF系數(shù)轉(zhuǎn)化為LPC系數(shù),通過最近鄰搜索法則,采用歐氏距離測度 選擇出最近的6個區(qū)域,然后按順序依次輸出每一個區(qū)域?qū)?yīng)的碼本,并將該區(qū)域的索引 輸出到多級分裂矢量量化模塊中; 所述多級分裂矢量量化模塊,用于將待量化的ISF系數(shù)通過多區(qū)域選擇模塊中輸出的 區(qū)域索引進行第一級矢量量化和第二級分裂矢量量化,并將量化后的ISF系數(shù)和第一級矢 量量化后的索引和第二級分裂矢量量化后的索引輸出到LPC系數(shù)還原模塊中; 所述LPC系數(shù)還原模塊,用于將多級分裂矢量量化模塊中輸出的量化后的ISF系數(shù)和 上一幀保留的量化后的ISF系數(shù)經(jīng)過量化矢量,還原出原始的LPC系數(shù),同時將當前幀量化 后的ISF系數(shù)保存,以便下一幀使用,最后將保存的ISF系數(shù)和還原出的LPC系數(shù)輸出到譜 失真比較模塊中; 所述功率譜計算模塊,用于將原始的LPC系數(shù)通過功率譜計算公式得到對應(yīng)的功率 譜,并將功率譜輸出到譜失真比較模塊中; 所述譜失真比較模塊,用于將功率譜計算模塊中輸出的功率譜和LPC系數(shù)還原模塊中 輸出的還原的LPC系數(shù)通過譜失真計算公式算出對應(yīng)的譜失真,將計算出的譜失真與上一 個區(qū)域計算得到的譜失真進行比較;若當前區(qū)域計算出的譜失真小于上一個區(qū)域計算的譜 失真,則將譜失真進行更新,然后進行下一個區(qū)域的計算;若當前區(qū)域計算出的譜失真大于 上一個區(qū)域計算的譜失真,則直接進行下一個區(qū)域的計算;若6個區(qū)域?qū)?yīng)的譜失真計算 完成,最終將最小譜失真對應(yīng)的區(qū)域索引和第一級矢量量化后的索引以及第二級分裂矢量 量化后的索引輸出,完成ISF系數(shù)矢量量化。
【文檔編號】G10L19/032GK104269176SQ201410524836
【公開日】2015年1月7日 申請日期:2014年9月30日 優(yōu)先權(quán)日:2014年9月30日
【發(fā)明者】胡瑞敏, 張茂勝, 姚雪春, 王曉晨, 姜林, 涂衛(wèi)平, 王松, 楊乘 申請人:武漢大學深圳研究院