本發(fā)明涉及一種補償編解碼裝置及方法,尤其是針對被舍棄的子空間分量的補償編解碼裝置及方法。
背景技術(shù):
隨著科技的發(fā)展,出現(xiàn)了多種對聲音信號的編碼技術(shù),上述聲音通常指的是語音、音樂、自然聲音和人工合成聲音等人耳可感知的信號在內(nèi)的數(shù)字聲音。目前,很多聲音編碼技術(shù)已經(jīng)成為工業(yè)標準被大量應(yīng)用,融入人們的日常生活中,常用的聲音編碼技術(shù)有杜比實驗室的AC-3、數(shù)字影院系統(tǒng)公司的DTS、移動圖像專家組(MPEG)組織的MP3和AAC、微軟公司的WMA,以及索尼公司的ATRAC。
為了重現(xiàn)立體聲的聲音效果,現(xiàn)在多采用多個聲道將多聲道聲音信號播放給用戶,多聲道聲音信號的編碼方法也從以AC-3和MP3為代表的和差立體聲(M/S Stereo)和強度立體聲(Intensity Stereo)等波形編碼技術(shù),演進到以MP3Pro、ITU EAAC+、MPEG Surround、Dolby DD+為代表的參數(shù)立體聲(Parametric Stereo)和參數(shù)環(huán)繞聲(Parametric Surround)技術(shù)。
但是,無論是傳統(tǒng)的PS技術(shù)還是MPEG Surround技術(shù),都過分依賴了雙耳的心理聲學(xué)特性,而忽略了多聲道聲音信號本身的統(tǒng)計特性。例如,傳統(tǒng)的PS技術(shù)和MPEG Surround技術(shù)都沒有利用聲道對之間的統(tǒng)計冗余信息。而且,MPEG Surround采用殘差信息編碼時,和聲道信號和殘差聲道信號間仍然存在統(tǒng)計冗余,從而無法兼顧編碼效率和編碼信號的質(zhì)量。專利申請201410395806.5、201410404895.5中提出了基于子空間映射(主成分分析(principal components analysis,PCA)、獨立成分分析(Independent components analysis,ICA)等方法)的多聲道音頻編解碼的方法,通過子空間映射有效去除冗余,兼顧多聲道聲音信號的統(tǒng)計特性和心理聲學(xué)特性,提高了編碼效率。該方法通過選擇映射后子空間分量(數(shù)量為K)中重要的若干項進行感知編碼,比如對若干主成分分量(數(shù)量為p)進行編碼,其余的子空間分量(數(shù)量為K-p)則被舍棄,達到了降維的效果。這種降維處理有時會造成多聲道音頻間重建質(zhì)量的差異,若某一通道音頻與被舍棄的子空間分量(未進行感知編碼的子空間分量)關(guān)聯(lián)度高,則該通道的重建質(zhì)量會顯著變差,重建音頻的能量也顯著低于原始能量。如何能夠在通過子空間映射進行降維處理時保證各通道的重建質(zhì)量都不會顯著降低,成為了一個關(guān)鍵問題。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是在采用舍棄法降維處理后信號重建質(zhì)量變差,重建后的音頻 能量顯著低于原始能量。
為了解決上述技術(shù)問題,本發(fā)明提供了一種針對被舍棄的子空間分量的補償編碼裝置,包括如下模塊:
基礎(chǔ)補償矢量生成模塊,用于根據(jù)已感知編碼的信號模型生成固定補償矢量作為基礎(chǔ)補償矢量,或者根據(jù)當前幀中已編碼的主成分分量拷貝生成自適應(yīng)補償矢量作為基礎(chǔ)補償矢量;
基礎(chǔ)補償集合生成模塊,用于將各個基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成一一對應(yīng)的序號或特征參數(shù);
補償編碼參數(shù)編碼模塊,用于根據(jù)補償需要選出用于補償?shù)幕A(chǔ)補償矢量,并將這些基礎(chǔ)補償矢量的序號或特征參數(shù)作為補償編碼參數(shù)進行量化編碼,獲得補償編碼碼流。
采用基礎(chǔ)補償矢量生成模塊生成用于補償?shù)幕A(chǔ)補償矢量,該基礎(chǔ)補償矢量可以用作對被舍棄的子空間分量進行替代補償,有效提高信號重建質(zhì)量,重建后的音頻能量也與原始能量相近;采用基礎(chǔ)補償集合生成模塊將基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成對應(yīng)的序號或特征參數(shù),能夠方便調(diào)用基礎(chǔ)補償矢量集合中的基礎(chǔ)補償矢量;采用補償編碼參數(shù)編碼模塊對補償編碼參數(shù)進行量化編碼,方便將補償編碼參數(shù)進行存儲或轉(zhuǎn)發(fā)。
作為本發(fā)明編碼裝置的進一步改進方案,還包括如下模塊:
碼流復(fù)用模塊,用于將補償編碼碼流存儲為碼流文件或直接發(fā)送到通信通道上。
采用碼流復(fù)用模塊能夠?qū)⒀a償編碼碼流存儲為碼流文件或直接發(fā)送到通信通道上,方便解碼裝置讀取或接受,從而實時復(fù)用補償編碼參數(shù)。
作為本發(fā)明編碼裝置的進一步限定方案,基礎(chǔ)補償矢量集合包括固定基礎(chǔ)補償矢量集合和/或自適應(yīng)基礎(chǔ)補償矢量集合;固定補償矢量放置于固定基礎(chǔ)補償矢量集合中;自適應(yīng)補償矢量放置于自適應(yīng)基礎(chǔ)補償矢量集合中。采用將固定補償矢量和自適應(yīng)補償矢量分別放置于固定基礎(chǔ)補償矢量集合和自適應(yīng)基礎(chǔ)補償矢量集合中,方便分別且快速地調(diào)用固定補償矢量和自適應(yīng)補償矢量,提高了補償效率。
作為本發(fā)明編碼裝置的進一步限定方案,固定補償矢量根據(jù)正弦信號模型、隨機噪聲信號模型以及HILN信號模型中的一種或幾種生成,且不跟隨每幀編碼數(shù)據(jù)的變化而變化;自適應(yīng)補償矢量跟隨每幀編碼數(shù)據(jù)的變化而變化。采用已知的信號模型生成固定不變的固定補償矢量,不會隨著幀編碼數(shù)據(jù)的變化而變化,具有較高的可靠性;采用自適應(yīng)補償矢量能夠?qū)崟r地跟隨每幀編碼數(shù)據(jù)的變化而變化,具有較高的實時性。
本發(fā)明還提供了一種針對被舍棄的子空間分量的補償編碼方法,包括如下步驟:
步驟1,根據(jù)已感知編碼的信號模型生成固定補償矢量作為基礎(chǔ)補償矢量,或者根據(jù)當前幀中已編碼的主成分分量拷貝生成自適應(yīng)補償矢量作為基礎(chǔ)補償矢量;
步驟2,將各個基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成一一對應(yīng)的序號或特征參數(shù);
步驟3,根據(jù)補償需要選出用于補償?shù)幕A(chǔ)補償矢量,并將這些補償矢量的序號或特征參數(shù)作為補償編碼參數(shù)進行量化編碼,獲得補償編碼碼流。
作為本發(fā)明補償編碼方法的進一步限定方案,還包括如下步驟:
步驟4,將補償編碼碼流存儲為碼流文件或直接發(fā)送到通信通道上。
作為本發(fā)明補償編碼方法的進一步限定方案,基礎(chǔ)補償矢量集合包括固定基礎(chǔ)補償矢量集合和/或自適應(yīng)基礎(chǔ)補償矢量集合;固定補償矢量放置于固定基礎(chǔ)補償矢量集合中;自適應(yīng)補償矢量放置于自適應(yīng)基礎(chǔ)補償矢量集合中。
作為本發(fā)明補償編碼方法的進一步限定方案,固定補償矢量根據(jù)正弦信號模型、隨機噪聲信號模型以及HILN信號模型中的一種或幾種生成,且不跟隨每幀編碼數(shù)據(jù)的變化而變化;自適應(yīng)補償矢量跟隨每幀編碼數(shù)據(jù)的變化而變化。
本發(fā)明還提供了一種針對被舍棄的子空間分量的補償解碼裝置,包括如下模塊:
基礎(chǔ)補償矢量生成模塊,用于根據(jù)已感知解碼的信號模型生成固定補償矢量作為基礎(chǔ)補償矢量,或者根據(jù)當前幀中已解碼的主成分分量拷貝生成自適應(yīng)補償矢量作為基礎(chǔ)補償矢量;
基礎(chǔ)補償集合生成模塊,用于將各個基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成一一對應(yīng)的序號或特征參數(shù);
碼流解復(fù)用模塊,用于讀取碼流文件或從通信通道上直接讀取補償編碼碼流;
補償編碼參數(shù)解碼模塊,用于對補償編碼碼流進行解碼,獲得用于補償?shù)母鱾€基礎(chǔ)補償矢量的序號或特征參數(shù);
子空間分量補償模塊,用于根據(jù)序號或特征參數(shù)在基礎(chǔ)補償矢量集合中選出相對應(yīng)的基礎(chǔ)補償矢量,再將選出的基礎(chǔ)補償矢量替代被舍棄的子空間分量。
采用基礎(chǔ)補償矢量生成模塊生成用于補償?shù)幕A(chǔ)補償矢量,該基礎(chǔ)補償矢量用于對被舍棄的子空間分量進行替代補償,有效提高信號重建質(zhì)量,重建后的音頻能量也與原始能量相近;采用基礎(chǔ)補償集合生成模塊將基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成對應(yīng)的序號或特征參數(shù),能夠方便調(diào)用基礎(chǔ)補償矢量集合中的基礎(chǔ)補償矢量進行解碼補償;采用補償編碼參數(shù)解碼模塊對補償編碼參數(shù)進行解碼,從而獲得補償編碼參數(shù);采用子空間分量補償模塊根據(jù)補償編碼參數(shù)在基礎(chǔ)補償矢量集合中選出對應(yīng)的基礎(chǔ)補償矢量, 從而進一步對被舍棄的子空間分量進行替代補償。
作為本發(fā)明補償解碼裝置的進一步限定方案,基礎(chǔ)補償矢量集合包括固定基礎(chǔ)補償矢量集合和/或自適應(yīng)基礎(chǔ)補償矢量集合;固定補償矢量放置于固定基礎(chǔ)補償矢量集合中;自適應(yīng)補償矢量放置于自適應(yīng)基礎(chǔ)補償矢量集合中。采用將固定補償矢量和自適應(yīng)補償矢量分別放置于固定基礎(chǔ)補償矢量集合和自適應(yīng)基礎(chǔ)補償矢量集合中,方便分別且快速地調(diào)用固定補償矢量和自適應(yīng)補償矢量,提高了補償效率。
作為本發(fā)明補償解碼裝置的進一步限定方案,固定補償矢量根據(jù)正弦信號模型、隨機噪聲信號模型以及HILN信號模型中的一種或幾種生成,且不跟隨每幀解碼數(shù)據(jù)的變化而變化;自適應(yīng)補償矢量跟隨每幀解碼數(shù)據(jù)的變化而變化。采用已知的信號模型生成固定不變的固定補償矢量,不會隨著幀解碼數(shù)據(jù)的變化而變化,具有較高的可靠性;采用自適應(yīng)補償矢量能夠?qū)崟r地跟隨每幀解碼數(shù)據(jù)的變化而變化,具有較高的實時性。
本發(fā)明還提供了一種針對被舍棄的子空間分量的補償解碼方法,包括如下步驟:
步驟1,根據(jù)已感知解碼的信號模型生成固定補償矢量作為基礎(chǔ)補償矢量,或者根據(jù)當前幀中已解碼的主成分分量拷貝生成自適應(yīng)補償矢量作為基礎(chǔ)補償矢量;
步驟2,將各個基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成一一對應(yīng)的序號或特征參數(shù);
步驟3,讀取碼流文件或從通信通道上直接讀取補償編碼碼流;
步驟4,對補償編碼碼流進行解碼,獲得用于補償?shù)母鱾€基礎(chǔ)補償矢量的序號或特征參數(shù);
步驟5,用于根據(jù)序號或特征參數(shù)在基礎(chǔ)補償矢量集合中選出相對應(yīng)的基礎(chǔ)補償矢量,再將選出的基礎(chǔ)補償矢量替代被舍棄的子空間分量。
作為本發(fā)明補償解碼方法的進一步限定方案,基礎(chǔ)補償矢量集合包括固定基礎(chǔ)補償矢量集合和/或自適應(yīng)基礎(chǔ)補償矢量集合;固定補償矢量放置于固定基礎(chǔ)補償矢量集合中;自適應(yīng)補償矢量放置于自適應(yīng)基礎(chǔ)補償矢量集合中。
作為本發(fā)明補償解碼方法的進一步限定方案,固定補償矢量根據(jù)正弦信號模型、隨機噪聲信號模型以及HILN信號模型中的一種或幾種生成,且不跟隨每幀解碼數(shù)據(jù)的變化而變化;自適應(yīng)補償矢量跟隨每幀解碼數(shù)據(jù)的變化而變化。
本發(fā)明的有益效果在于:(1)采用基礎(chǔ)補償矢量生成模塊生成用于補償?shù)幕A(chǔ)補償矢量,該基礎(chǔ)補償矢量用于對被舍棄的子空間分量進行替代補償,有效提高信號重建質(zhì)量,重建后的音頻能量也與原始能量相近;(2)采用基礎(chǔ)補償集合生成模塊將基礎(chǔ)補償矢量放置于基礎(chǔ) 補償矢量集合中,并為各個基礎(chǔ)補償矢量生成對應(yīng)的序號或特征參數(shù),能夠方便調(diào)用基礎(chǔ)補償矢量集合中的基礎(chǔ)補償矢量進行解碼補償;(3)在編碼裝置中采用補償編碼參數(shù)編碼模塊對補償編碼參數(shù)進行量化編碼,方便將補償編碼參數(shù)進行存儲或轉(zhuǎn)發(fā);(4)在解碼裝置中采用補償編碼參數(shù)解碼模塊對補償編碼參數(shù)進行解碼,從而獲得補償編碼參數(shù);(5)在解碼裝置中采用子空間分量補償模塊根據(jù)補償編碼參數(shù)在基礎(chǔ)補償矢量集合中選出對應(yīng)的基礎(chǔ)補償矢量,從而進一步對被舍棄的子空間分量進行替代補償。
附圖說明
圖1為現(xiàn)有的多聲道聲音信號編碼方法流程圖;
圖2為本發(fā)明的補償編碼裝置結(jié)構(gòu)示意圖;
圖3為采用本發(fā)明的補償編碼裝置對多聲道聲音信號編碼方法進行補償應(yīng)用的流程示意圖;
圖4為本發(fā)明的執(zhí)行步驟207的具體流程示意圖;
圖5為本發(fā)明的補償解碼裝置結(jié)構(gòu)示意圖;
圖6為采用本發(fā)明的補償解碼裝置對多聲道聲音信號解碼方法進行補償應(yīng)用的流程示意圖;
圖7為本發(fā)明的執(zhí)行步驟303的具體流程示意圖;
圖8為本發(fā)明的生成固定基礎(chǔ)補償矢量集合A1的流程示意圖;
圖9為本發(fā)明的生成自適應(yīng)基礎(chǔ)補償矢量集合A2的流程示意圖;
圖10為本發(fā)明的一種對PCA主成分分量進行補償處理編碼的方法的流程示意圖;
圖11為本發(fā)明的一種對PCA主成分分量進行補償處理解碼的方法的流程示意圖;
圖12為本發(fā)明的一種以模型參數(shù)作為補償編碼參數(shù)的對PCA主成分分量進行補償處理編碼的方法的流程示意圖;
圖13為本發(fā)明的一種以模型參數(shù)作為補償編碼參數(shù)的對PCA主成分分量進行補償處理解碼的方法的流程示意圖;
圖14為本發(fā)明的一種無需固定基礎(chǔ)補償矢量集合存儲的對PCA主成分分量進行補償處理編碼的方法的流程示意圖;
圖15為本發(fā)明的一種無需固定基礎(chǔ)補償矢量集合存儲的對PCA主成分分量進行補償處理解碼的方法的流程示意圖;
圖16為本發(fā)明的一種矢量組合的對PCA主成分分量進行補償處理編碼的方法的流程示意圖;
圖17為本發(fā)明的一種矢量組合的對PCA主成分分量進行補償處理解碼的方法的流程示意圖;
圖18為本發(fā)明的一種調(diào)整映射矩陣系數(shù)對PCA主成分分量進行補償處理編碼的方法的流程示意圖;
圖19為本發(fā)明的一種基于子空間映射的高效多聲道音頻編碼裝置的結(jié)構(gòu)示意圖;
圖20為本發(fā)明的一種基于子空間映射的高效多聲道音頻解碼裝置的結(jié)構(gòu)示意圖。
具體實施方式
如圖1所示,現(xiàn)有技術(shù)中的多聲道聲音信號編碼方法包括如下步驟:
步驟101,采用修正離散余弦變換MDCT或修正離散正弦變換MDST,將第一多聲道聲音信號映射為第一頻域信號;
步驟102,將第一頻域信號劃分為不同時頻子帶;
步驟103,在不同時頻子帶中的每個時頻子帶內(nèi),計算所述第一多聲道聲音信號的第一統(tǒng)計特性;
步驟104,根據(jù)第一統(tǒng)計特性,估計主成分分析PCA映射模型;
步驟105,采用PCA映射模型,將第一多聲道聲音信號映射為第二多聲道聲音信號;
步驟106,根據(jù)時間、頻率和聲道的不同,對第二多聲道聲音信號中的至少一組和所述PCA映射模型進行感知編碼,并復(fù)用成編碼多聲道碼流。
該方法通過選擇映射后子空間分量(數(shù)量為K)中重要的若干項進行感知編碼,比如對若干主成分分量(數(shù)量為p)進行編碼,其余的子空間分量(數(shù)量為K-p)則被舍棄,達到了降維的效果。這種降維處理有時會造成多聲道音頻間重建質(zhì)量的差異,若某一通道音頻與被舍棄的子空間分量(未進行感知編碼的子空間分量)關(guān)聯(lián)度高,則該通道的重建質(zhì)量會顯著變差,重建音頻的能量也顯著低于原始能量。
下面結(jié)合附圖2-20對本發(fā)明技術(shù)方案進行詳細說明,但是本發(fā)明的保護范圍不局限于所述實施例。
針對現(xiàn)有多聲道編碼方法中的問題,本發(fā)明給出了一種對被舍棄的子空間分量進行補償編碼/解碼的方案,實施例1是對本發(fā)明對被舍棄的子空間分量進行補償編碼的補償編碼裝置的說明;實施例2描述的是一種應(yīng)用了此補償編碼方法的多聲道編碼方法;與編碼對應(yīng),實施例3是對本發(fā)明對被舍棄的子空間分量進行補償解碼的補償解碼裝置的說明;實施例4描述的是一種應(yīng)用了此補償解碼方法的多聲道解碼方法;實施例13描述的是一種應(yīng)用了實施例1所述補償編碼裝置的多聲道編碼裝置;實施例14描述的是一種應(yīng)用了實施例3所述補償解碼裝置的多聲道解碼裝置;實施例5是對補償編碼中固定基礎(chǔ)補償矢量集合A1生成方法的說明;實施例6是對補償編碼中自適應(yīng)基礎(chǔ)補償矢量集合A2生成方法的說明;實施例7~實施例12描述的是幾種更具體的補償編碼/解碼方法,其中實施例7和實施例8描述的是以基礎(chǔ)補償矢量在集合中序號indext為補償編碼參數(shù)時的情況;實施例9描述的是以模型參數(shù)為補償編碼參數(shù)時的情 況;實施例10描述的是不對基礎(chǔ)補償矢量集合進行存儲時的情況;實施例11描述的是從集合中選擇兩個矢量進行組合時的情況;實施例10描述的是補償處理的一種變體方法,通過調(diào)整映射矩陣系數(shù)進行補償處理。
實施例1:
如圖2所示,本發(fā)明的補償編碼裝置包括基礎(chǔ)補償矢量生成模塊、基礎(chǔ)補償集合生成模塊、補償編碼參數(shù)編碼模塊以及碼流復(fù)用模塊;其中,
基礎(chǔ)補償矢量生成模塊,用于根據(jù)已感知編碼的信號模型生成固定補償矢量作為基礎(chǔ)補償矢量或者根據(jù)當前幀中已編碼的主成分分量拷貝生成自適應(yīng)補償矢量作為基礎(chǔ)補償矢量固定補償矢量可以根據(jù)已感知編碼的正弦信號模型、隨機噪聲信號模型以及諧波和單弦加噪聲HILN(Harmonic and Individual Line plus Noise)模型中的一種或幾種生成,且不跟隨每幀編碼數(shù)據(jù)的變化而變化,自適應(yīng)補償矢量跟隨每幀編碼數(shù)據(jù)的變化而變化;
基礎(chǔ)補償集合生成模塊,用于將各個基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合A中,并為各個基礎(chǔ)補償矢量生成一一對應(yīng)的序號或特征參數(shù),基礎(chǔ)補償矢量集合A包括固定基礎(chǔ)補償矢量集合A1和/或自適應(yīng)基礎(chǔ)補償矢量集合A2,固定補償矢量放置于固定基礎(chǔ)補償矢量集合A1中,自適應(yīng)補償矢量放置于自適應(yīng)基礎(chǔ)補償矢量集合A2中;
補償編碼參數(shù)編碼模塊,用于根據(jù)補償需要選出用于補償?shù)幕A(chǔ)補償矢量并將這些基礎(chǔ)補償矢量的序號或特征參數(shù)作為補償編碼參數(shù)進行量化編碼,獲得補償編碼碼流;
碼流復(fù)用模塊,用于將補償編碼碼流存儲為碼流文件或直接發(fā)送到通信通道上,方便補償解碼裝置讀取或直接接收。
本發(fā)明的補償編碼裝置利用基礎(chǔ)補償矢量生成模塊生成用于補償?shù)幕A(chǔ)補償矢量,該基礎(chǔ)補償矢量可以用作對被舍棄的子空間分量進行替代補償,有效提高信號重建質(zhì)量,重建后的音頻能量也與原始能量相近;利用基礎(chǔ)補償集合生成模塊將基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成對應(yīng)的序號或特征參數(shù),能夠方便調(diào)用基礎(chǔ)補償矢量集合中的基礎(chǔ)補償矢量;利用補償編碼參數(shù)編碼模塊對補償編碼參數(shù)進行量化編碼,方便將補償編碼參數(shù)進行存儲或轉(zhuǎn)發(fā);利用碼流復(fù)用模塊能夠?qū)⒀a償編碼碼流存儲為碼流文件或直接發(fā)送到通信通道上,方便解碼裝置讀取或接受,從而實時復(fù)用補償編碼參數(shù);將固定補償矢量和自適應(yīng)補償矢量分別放置于固定基礎(chǔ)補償矢量集合和自適應(yīng)基礎(chǔ)補償矢量集合中,方便分別且快速地調(diào)用固定補償矢量和自適應(yīng)補償矢量,提高了補償效率;利用已知的信號 模型生成固定不變的固定補償矢量,不會隨著幀編碼數(shù)據(jù)的變化而變化,具有較高的可靠性,利用自適應(yīng)補償矢量能夠?qū)崟r地跟隨每幀編碼數(shù)據(jù)的變化而變化,具有較高的實時性。
實施例2:
如圖3所示,采用本發(fā)明的補償編碼裝置對多聲道聲音信號編碼方法進行補償應(yīng)用,具體包括如下步驟:
步驟201,采用修正離散余弦變換(MDCT,Modified Discrete Cosine Transform)或修正離散正弦變換(MDST,Modified Discrete Sine Transform),將第一多聲道聲音信號映射為第一頻域信號;
步驟202,將第一頻域信號劃分為不同時頻子帶;
步驟203,在不同時頻子帶中的每個時頻子帶內(nèi),計算第一多聲道聲音信號的第一統(tǒng)計特性;
步驟204,根據(jù)第一統(tǒng)計特性,估計PCA映射模型;
步驟205,采用PCA映射模型,將第一多聲道聲音信號映射為第二多聲道聲音信號;
步驟206,根據(jù)時間、頻率和聲道的不同,對第二多聲道聲音信號中的至少一組進行感知編碼,得到感知編碼碼流;
步驟207,根據(jù)時間、頻率和聲道的不同,利用本發(fā)明的編碼補償裝置對第二多聲道聲音信號中未進行感知編碼的至少一組進行補償編碼處理,得到補償編碼碼流;
步驟208對PCA映射模型進行編碼得到PCA映射模型碼流,并與感知編碼碼流、補償編碼碼流等復(fù)用成編碼多聲道碼流。
其中,步驟201中第一多聲道聲音信號的最初表現(xiàn)形式為時域信號u(m,t),通過步驟201中的映射處理后,可以得到多聲道頻域信號x(m,k),m為聲道序號,t為幀(或子幀)序號,k為頻率序號;
在執(zhí)行步驟202時,若步驟201獲得的第一頻域信號為x(m,k),可以將x(m,k)劃分為不同的時頻子帶xi(t,k),m為聲道序號,i是時頻子帶的序號,t為幀(或子幀)序號,k為頻率序號;
在執(zhí)行步驟205時,在不同時頻子帶內(nèi),計算多聲道聲音信號xi(t,k)的統(tǒng)計特性,并估計優(yōu)化子空間映射模型Wi(t,k),采用估計的映射模型,將多聲道信號映射到新的子空間,獲得新的一組多聲道信號zi(t,k);
在執(zhí)行步驟207時,具體的步驟如圖4所示,包括:
步驟1-1,根據(jù)已感知編碼的信號模型生成固定補償矢量作為基礎(chǔ)補償矢量或者根據(jù) 當前幀中已感知編碼的主成分分量(第二多聲道聲音信號)拷貝生成自適應(yīng)補償矢量作為基礎(chǔ)補償矢量其中,固定補償矢量根據(jù)已感知編碼的正弦信號模型、隨機噪聲信號模型以及HILN信號模型中的一種或幾種生成,且不跟隨每幀編碼數(shù)據(jù)的變化而變化,自適應(yīng)補償矢量跟隨每幀編碼數(shù)據(jù)的變化而變化;
步驟1-2,將各個基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合A中,并為各個基礎(chǔ)補償矢量生成一一對應(yīng)的序號或特征參數(shù),其中,基礎(chǔ)補償矢量集合包括固定基礎(chǔ)補償矢量集合A1和/或自適應(yīng)基礎(chǔ)補償矢量集合A2,固定補償矢量放置于固定基礎(chǔ)補償矢量集合A1中,自適應(yīng)補償矢量放置于自適應(yīng)基礎(chǔ)補償矢量集合A2中;
步驟1-3,用于根據(jù)待補償處理的第二多聲道信號的補償需要選出用于補償?shù)幕A(chǔ)補償矢量并將這些基礎(chǔ)補償矢量的序號或特征參數(shù)作為補償編碼參數(shù)進行量化編碼,獲得補償編碼碼流。
在執(zhí)行步驟208時,映射模型編碼可以編碼對應(yīng)的映射矩陣(即特征矢量),也可以編碼該模型的其他變換形式,亦可以直接編碼借以計算映射矩陣的協(xié)方差矩陣。映射模型編碼時,可以采用眾所周知的標量量化、矢量量化和預(yù)測編碼等方法,也可以采用熵編碼(如huffman編碼或算數(shù)編碼)來進一步提高編碼效率。
實施例3:
如圖5所示,本發(fā)明補償解碼裝置,包括基礎(chǔ)補償矢量生成模塊、基礎(chǔ)補償集合生成模塊、碼流解復(fù)用模塊、補償編碼參數(shù)解碼模塊以及子空間分量補償模塊。其中,
基礎(chǔ)補償矢量生成模塊,用于根據(jù)已感知解碼的信號模型生成固定補償矢量作為基礎(chǔ)補償矢量或者根據(jù)當前幀中已解碼的主成分分量(第二多聲道聲音信號)拷貝生成自適應(yīng)補償矢量作為基礎(chǔ)補償矢量其中,固定補償矢量根據(jù)已感知解碼的正弦信號模型、隨機噪聲信號模型以及HILN信號模型中的一種或幾種生成,且不跟隨每幀解碼數(shù)據(jù)的變化而變化;自適應(yīng)補償矢量跟隨每幀解碼數(shù)據(jù)的變化而變化;
基礎(chǔ)補償集合生成模塊,用于將各個基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合A中,并為各個基礎(chǔ)補償矢量生成一一對應(yīng)的序號或特征參數(shù),其中,基礎(chǔ)補償矢量集合A包括固定基礎(chǔ)補償矢量集合A1和/或自適應(yīng)基礎(chǔ)補償矢量集合A2,固定補償矢量放置于固定基礎(chǔ)補償矢量集合A1中,自適應(yīng)補償矢量放置于自適應(yīng)基礎(chǔ)補償矢量集合A2中;
碼流解復(fù)用模塊,用于讀取碼流文件或從通信通道上直接讀取補償編碼碼流;
補償編碼參數(shù)解碼模塊,用于對補償編碼碼流進行解碼,獲得用于補償?shù)母鱾€基礎(chǔ)補償矢量的序號或特征參數(shù);
子空間分量補償模塊,用于根據(jù)序號或特征參數(shù)在基礎(chǔ)補償矢量集合A中選出相對應(yīng)的基礎(chǔ)補償矢量再將選出的基礎(chǔ)補償矢量替代第二多聲道信號中被舍棄的子空間分量。
利用基礎(chǔ)補償矢量生成模塊生成用于補償?shù)幕A(chǔ)補償矢量,該基礎(chǔ)補償矢量用于對被舍棄的子空間分量進行替代補償,有效提高信號重建質(zhì)量,重建后的音頻能量也與原始能量相近;利用基礎(chǔ)補償集合生成模塊將基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成對應(yīng)的序號或特征參數(shù),能夠方便調(diào)用基礎(chǔ)補償矢量集合中的基礎(chǔ)補償矢量進行解碼補償;利用補償編碼參數(shù)解碼模塊對補償編碼參數(shù)進行解碼,從而獲得補償編碼參數(shù);利用子空間分量補償模塊根據(jù)補償編碼參數(shù)在基礎(chǔ)補償矢量集合中選出對應(yīng)的基礎(chǔ)補償矢量,從而進一步對被舍棄的子空間分量進行替代補償;將固定補償矢量和自適應(yīng)補償矢量分別放置于固定基礎(chǔ)補償矢量集合和自適應(yīng)基礎(chǔ)補償矢量集合中,方便分別且快速地調(diào)用固定補償矢量和自適應(yīng)補償矢量,提高了補償效率;利用已知的信號模型生成固定不變的固定補償矢量,不會隨著幀解碼數(shù)據(jù)的變化而變化,具有較高的可靠性;利用自適應(yīng)補償矢量能夠?qū)崟r地跟隨每幀解碼數(shù)據(jù)的變化而變化,具有較高的實時性。
實施例4:
如圖6所示,采用本發(fā)明的解碼裝置對多聲道聲音信號解碼方法進行補償應(yīng)用,具體包括如下步驟:
步驟301,對編碼多聲道碼流進行解復(fù)用,得到感知編碼碼流、補償編碼碼流、PCA映射模型碼流;
步驟302,對編碼多聲道碼流中感知編碼碼流、PCA映射模型碼流進行解碼,獲得第二多聲道聲音信號中的至少一組和PCA映射模型;
步驟303,利用本發(fā)明的補償解碼裝置對編碼多聲道碼流中補償編碼碼流進行解碼得到補償編碼參數(shù),利用補償編碼參數(shù)對第二多聲道聲音信號進行補償處理獲得補償處理后的第二多聲道聲音信號;
步驟304,采用PCA映射模型,將補償處理后第二多聲道聲音信號映射回第一多聲道聲音信號;
步驟305,采用修正離散余弦逆變換IMDCT或修正離散正弦逆變換IMDST,將第一多 聲道聲音信號從頻域映射為時域。
其中,在執(zhí)行步驟303時,具體的步驟如圖7所示,包括:
步驟2-1,根據(jù)已感知解碼的信號模型生成固定補償矢量作為基礎(chǔ)補償矢量,或者根據(jù)當前幀中已解碼的主成分分量拷貝生成自適應(yīng)補償矢量作為基礎(chǔ)補償矢量,其中,基礎(chǔ)補償矢量集合A包括固定基礎(chǔ)補償矢量集合A1和/或自適應(yīng)基礎(chǔ)補償矢量集合A2,固定補償矢量放置于固定基礎(chǔ)補償矢量集合A1中,自適應(yīng)補償矢量放置于自適應(yīng)基礎(chǔ)補償矢量集合A2中;
步驟2-2,將各個基礎(chǔ)補償矢量放置于基礎(chǔ)補償矢量集合中,并為各個基礎(chǔ)補償矢量生成一一對應(yīng)的序號或特征參數(shù);
步驟2-3,對補償編碼碼流進行解碼,獲得用于補償?shù)母鱾€基礎(chǔ)補償矢量的序號或特征參數(shù);
步驟2-4,用于根據(jù)序號或特征參數(shù)在基礎(chǔ)補償矢量集合A中選出相對應(yīng)的基礎(chǔ)補償矢量再將選出的基礎(chǔ)補償矢量替代第二多聲道信號中被舍棄的子空間分量。
在執(zhí)行步驟305時,當?shù)谝欢嗦暤缆曇粜盘栐陬l域為多個分組聲音信號時,在步驟304之前,還可以包括:對碼流中的聲道分組信息進行解碼,獲得解碼的聲道分組信息;根據(jù)解碼的聲道分組信息將多個分組聲音信號進行分組復(fù)原,獲得第三多聲道聲音信號,將第三多聲道聲音信號作為第一多聲道聲音信號執(zhí)行步驟304。
實施例5:
固定基礎(chǔ)補償矢量集合A1可以根據(jù)已感知編碼的信號模型生成或幾種信號模型的組合來生成,比如正弦模型、隨機噪聲模型、HILN(Harmonic and Individual Line plus Noise)模型等。固定基礎(chǔ)補償矢量集合A1中的每一個基礎(chǔ)補償矢量都由與其對應(yīng)的補償編碼參數(shù)確定,兩者一一對應(yīng),如A1中有Nt個矢量,則有Nt個補償編碼參數(shù)Paraset[i](i=1…Nt)與之一一對應(yīng),例如由HILN信號模型生成A1時,則Paraset[i]是一組HILN模型的固定基礎(chǔ)補償矢量集合。
固定基礎(chǔ)補償矢量集合A1生成時,首先確定基礎(chǔ)補償矢量所要表達的音調(diào)性參數(shù)Tnrset,再根據(jù)音調(diào)性參數(shù)Tnrset計算獲得相應(yīng)信號模型的歸一化能量,最后再根據(jù)歸一化能量生成相應(yīng)信號模型的固定補償矢量。
具體步驟如圖8所示,以根據(jù)音調(diào)性參數(shù)來生成正弦模型信號與隨機噪聲模型信號的組合信號為例來進行說明,此時Paraset[i]為音調(diào)性參數(shù)集Tnrset[i]。具體步驟如下:
步驟3-1,確定集合A1所表達的模型參數(shù)集,即集合A1中元素個數(shù)Nt,以及每一個元 素所對應(yīng)音調(diào)性參數(shù)Tnrset[i](i=1…Nt,0≤Tnrset[i]≤1),音調(diào)性描述的是信號的調(diào)性,當Tnrset等于1時表示信號為純弦性信號,當Tnrset等于0時表示信號為白噪聲;
步驟3-2,令indext=1;
步驟3-3,根據(jù)音調(diào)性參數(shù)Tnrset[indext]構(gòu)造出基礎(chǔ)補償矢量具體為:
步驟3-3-1,根據(jù)音調(diào)性參數(shù)Tnrset[indext]得到歸一化補償矢量中的噪性能量engo_n和弦性能量engo_t,滿足engo_n+engo_t=1,計算方法可采用專利申請201210085257.2中的方法;
步驟3-3-2,生成能量為engo_n的噪聲信號和能量為engo_t的弦性信號生成方法可采用專利申請201210085257.2中的方法;
步驟3-3-3,將噪聲信號和弦性信號組合得到基礎(chǔ)補償矢量為:
步驟3-4,將基礎(chǔ)補償矢量加入到集合A1中,在集合A1中對應(yīng)的序號為indext。
步驟3-5,令indext=indext+1,再轉(zhuǎn)至步驟3-3,重復(fù)直至indext>Nt。
實施例6:
自適應(yīng)基礎(chǔ)補償矢量集合A2可以根據(jù)當前幀或前后幾幀的已解碼信號來生成,如當前幀的已感知解碼的p個主成分分量、前一幀的感知解碼的p個主成分分量、當前幀的已解碼的低頻數(shù)據(jù)等。自適應(yīng)基礎(chǔ)補償矢量集合A2需要在每幀數(shù)據(jù)處理中都進行更新。
自適應(yīng)基礎(chǔ)補償矢量集合A2在生成時,首先讀取當前幀中已編碼的主成分分量,并對各個已編碼的主成分分量進行歸一化處理;再將歸一化后的已編碼的主成分分量作為變化矢量,并設(shè)定與各個變化矢量相對應(yīng)的編碼參數(shù)。
具體步驟如圖9所示,以根據(jù)當前幀的感知編碼/解碼的p個主成分分量來生成自適應(yīng)基礎(chǔ)補償矢量集合A2為例來對A2的生成過程進行說明:
步驟4-1,令indext=1;
步驟4-2,將當前幀的感知編碼/解碼的第indext個主成分分量替換基礎(chǔ)補償矢量并對基礎(chǔ)補償矢量進行歸一化處理為:
步驟4-3,將基礎(chǔ)補償矢量加入到自適應(yīng)基礎(chǔ)補償矢量集合A2,在集合A2中對應(yīng)的補償編碼參數(shù)為indext;
步驟4-4,令indext=indext+1,再轉(zhuǎn)至步驟4-2,重復(fù)直至indext>p。
實施例7和實施例8描述的是以基礎(chǔ)補償矢量在集合中序號indext為補償編碼參數(shù)時的補償編碼方法和補償解碼方法。
實施例7:
如圖10所示,是一種對PCA主成分分量進行補償處理編碼的方法,包括如下步驟:
步驟5-1,計算某個需要進行補償?shù)奈唇?jīng)感知編碼的主成分的能量engo,并進行量化編碼,量化編碼的方法可采用公知的方法,可以是標量量化,也可以是矢量量化;
步驟5-2,從基礎(chǔ)補償矢量集合A中選出用于補償處理的基礎(chǔ)補償矢量在集合A中的序號為indext作為補償編碼參數(shù),對補償編碼參數(shù)indext進行量化編碼,量化編碼的方法可采用公知的方法,可以是標量量化,也可以是矢量量化,從基礎(chǔ)補償矢量集合A中選出用于補償處理的基礎(chǔ)補償矢量的方法可以有多種,比如根據(jù)信號音調(diào)性差異最小的準則,選擇音調(diào)性與最接近的基礎(chǔ)補償矢量;
步驟5-3,調(diào)整所對應(yīng)的映射矩陣系數(shù)wok(k=1…K),如前所述,第o個主成分分量逆映射到第k個通道的數(shù)據(jù)上所對應(yīng)的映射矩陣系數(shù)是wok,對于每一個k(k=1…K),如果與第k個通道的數(shù)據(jù)的音調(diào)性的差值的絕對值大于給定的閾值Threshold_1(音調(diào)性的取值范圍在[0,1]內(nèi),那么閾值Threshold_1也應(yīng)該在這個范圍內(nèi),比如取0.3,如果兩者音調(diào)性的差值較大,如大于0.5,則說明兩個信號的特點差別很大,有可能一個為弦性信號,而另一個為噪性信號),則將映射矩陣系數(shù)wok調(diào)整為0,也可以不進行映射矩陣系數(shù)的調(diào)整,則步驟5-3可以省略。
實施例8:
如圖11所示,是一種對PCA主成分分量進行補償處理解碼的方法,具體步驟為:
步驟6-1,解碼待補償?shù)谋簧釛壍哪骋恢鞒煞址至康哪芰縠ngo。
步驟6-2,解碼補償編碼參數(shù)indext,并據(jù)此從基礎(chǔ)補償矢量集合A中選出對應(yīng)的基礎(chǔ)補償矢量
步驟6-3,進行補償處理,即將基礎(chǔ)補償矢量拷貝到并進行幅度調(diào)整:
實施例9描述的是以模型參數(shù)為補償編碼參數(shù)時的補償編碼方法和補償解碼方法。
實施例9:
對于基礎(chǔ)補償矢量集合A來說,其中的每一個矢量由唯一確定的indext與之對應(yīng),因此前述實施例中將indext作為補償編碼參數(shù)并對其進行編碼,解碼端根據(jù)解碼的indext和集合A就能確定對應(yīng)的矢量而對于固定基礎(chǔ)補償矢量集合A1來說,與indext類似,模型參數(shù)Paraset[indext](indext=1…Nt)與固定基礎(chǔ)補償矢量集合A1的矢量間也存在這種一一對應(yīng)的關(guān)系,并且模型參數(shù)Paraset[indext](indext=1…Nt)與序號indext也存在這種一一對應(yīng)關(guān)系。所以,可以選擇模型參數(shù)Paraset[indext]作為補償編碼參數(shù)進行編碼,這可以看作是對序號indext進行的一種特殊編碼。以對模型參數(shù)為音調(diào)性參數(shù)Tnrset[i]進行編碼為例來進行說明。
如圖12所示,以模型參數(shù)作為補償編碼參數(shù)的對PCA主成分分量進行補償處理編碼的方法,對被舍棄的主成分分量進行補償編碼的步驟如下:
步驟7-1,計算待補償?shù)谋簧釛壍哪骋恢鞒煞址至康哪芰縠ngo并進行編碼,量化編碼的方法可采用公知的方法,可以是標量量化,也可以是矢量量化;
步驟7-2,從基礎(chǔ)補償矢量集合A中選出用于補償處理的基礎(chǔ)補償矢量(在集合A中的序號為indext,其對應(yīng)的模型參數(shù)為模型參數(shù)Tnrset[indext]),對Tnrset[indext]進行量化編碼,量化編碼的方法可采用公知的方法,可以是標量量化,也可以是矢量量化;
步驟7-3,調(diào)整所對應(yīng)的映射矩陣系數(shù)wok(k=1…K),調(diào)整步驟與前述的步驟5-3相同,也可以不進行這種調(diào)整,則步驟7-3可以省略。
如圖13所示,以模型參數(shù)作為補償編碼參數(shù)的對PCA主成分分量進行補償處理解碼的方法,對被舍棄的主成分分量行補償解碼的步驟如下:
步驟8-1,對待補償?shù)谋簧釛壍闹鞒煞址至康哪芰縠ngo進行解碼;
步驟8-2,解碼音調(diào)性參數(shù)Tnrset[indext],并據(jù)此從基礎(chǔ)補償矢量集合A中選出對應(yīng)的基礎(chǔ)補償矢量
步驟8-3,進行補償處理,即將補償分量拷貝到并進行幅度調(diào)整:
由前述實施例5固定基礎(chǔ)補償矢量集合生成和前述實施例6自適應(yīng)基礎(chǔ)補償矢量集合生成可知,基礎(chǔ)補償矢量集合A或A1或A2中的每一個矢量都是由一組確定的模型參數(shù)Paraset或一個確定的序號indext就可構(gòu)建出來的,因此,可以不對集合A或A1或A2進行存儲,而是在解碼器中根據(jù)模型參數(shù)來直接生成補償矢量(實施例5中方法)或根據(jù)序號indext(對應(yīng)于在已感知解碼的p個主成分分量中的第indext個主成分分量)通過對已感知解碼的主成分分量進行歸一化處理來生成補償矢量(實施例6中方法);相應(yīng)的,編碼器中也不需要對集合A或A1或A2進行搜索來確定indext或模型參數(shù)Paraset,而是通過信號分析直接獲得序號indext或模型參數(shù)Paraset并對其進行編碼。根據(jù)模型參數(shù)來直接生成補償矢量(實施例5中方法),相當于對待補償處理主成分進行模型參數(shù)編碼的方法來進行補償處理,且與實施例9的方法是等效的;根據(jù)序號indext(在已感知解碼的p個主成分分量中的第indext個主成分分量)通過對已感知解碼的主成分分量進行歸一化處理來生成補償矢量,相當于通過從已感知解碼的主成分分量中拷貝數(shù)據(jù)來進行補償處理,且與實施例7/實施例8的方法是等效的。下面以不對固定基礎(chǔ)補償矢量集合進行存儲時的補償編碼/補償解碼方法為例進行說明。
實施例10:
對于固定基礎(chǔ)補償矢量集合A1來說,其中的每一個矢量都是由唯一確定的一組模型參數(shù)Paraset[indext](indext=1…Nt)生成的,因此,可以不對集合A1進行存儲,而是在解碼器根據(jù)模型來直接生成;相應(yīng)的,編碼器中也不需要對集合A1進行搜索來確定indext和Paraset[indext],而是通過信號分析直接獲得模型Paraset[indext]并對其進行編碼。這種處理方式與實施例9的方法是等效的,以模型參數(shù)為調(diào)性參數(shù)Tnrset時為例來進行說明。
如圖14所示,無需固定基礎(chǔ)補償矢量集合A存儲的對PCA主成分分量進行補償處理編碼的方法。在編碼中,對被舍棄的主成分分量進行補償編碼的步驟如下:
步驟9-1,計算的能量engo并進行量化編碼,量化編碼的方法可采用公知的方法,可以是標量量化,也可以是矢量量化;
步驟9-2,計算的音調(diào)性參數(shù)Tnrset并進行量化編碼,計算音調(diào)性的方法可采用專利申請201210085257.2中的方法;
步驟9-3,調(diào)整所對應(yīng)的映射矩陣系數(shù)是wok(k=1…K),調(diào)整步驟與前述的步驟5-3 相同,也可以不進行這種調(diào)整,則步驟9-3可以省略。
如圖15所示,無需固定基礎(chǔ)補償矢量集合存儲的對PCA主成分分量進行補償處理解碼的方法,在解碼中,對被舍棄的主成分分量行補償解碼的步驟如下:
步驟10-1,解碼的能量engo;
步驟10-2,解碼音調(diào)性參數(shù)Tnrset,并據(jù)此生成補償分量具體步驟為:
步驟10-2-1,根據(jù)音調(diào)性參數(shù)Tnrset得到歸一化補償矢量的噪性能量engo_n和弦性能量engo_t,滿足engo_n+engo_t=1,計算方法可采用專利申請201210085257.2中的方法;
步驟10-2-2,生成能量為engo_n的噪聲信號和能量為engo_t的弦性信號方法可采用專利申請201210085257.2中的方法;
步驟10-2-3,將噪聲信號和弦性信號組合得到補償分量
步驟10-3,進行補償處理,即將補償分量拷貝到并進行幅度調(diào)整:
實施例11:
除了從集合A(A=A1∪A2)中選擇一個基礎(chǔ)補償矢量進行補償處理外,還可以從集合A中選擇兩個或多個基礎(chǔ)補償矢量的組合來進行補償處理。以分別從固定基礎(chǔ)補償矢量集合A1和自適應(yīng)基礎(chǔ)補償矢量集合A2中各選擇一個矢量進行組合為例進行說明。
如圖16所示,矢量組合的對PCA主成分分量進行補償處理編碼的方法。在編碼器中,進行補償處理編碼的步驟如下:
步驟11-1,計算待補償?shù)谋簧釛壍哪骋恢鞒煞址至康哪芰縠ngo;
步驟11-2,從自適應(yīng)基礎(chǔ)補償矢量集合A2中選出用于補償處理的基礎(chǔ)補償矢量(在集合A2中的序號為indext1作為補償編碼參數(shù)),從基礎(chǔ)補償矢量集合選出用于補償處理的基礎(chǔ)補償矢量的方法可以有多種,比如根據(jù)信號音調(diào)性差異最小的準則,選擇音調(diào)性與最接近的基礎(chǔ)矢量;
步驟11-3,確定自適應(yīng)基礎(chǔ)補償矢量集合A2和固定基礎(chǔ)補償矢量集合A1的補償處理在的能量中的比重β1和β2,且β1和β2滿足β1+β2=1,例如β1=1,β2=0時,則相當于 只采用了自適應(yīng)基礎(chǔ)補償矢量集合A2中的矢量進行處理;例如β1=0.6,β2=0.4,則相當于采用了固定基礎(chǔ)補償矢量集合A1和自適應(yīng)基礎(chǔ)補償矢量集合A2的組合進行處理;
比如可以通過計算與的相似程度的來確定β1、β2的值,相似程度的度量可以有多種方法,比如相關(guān)系數(shù)、音調(diào)性的相似度等,以采用相關(guān)系數(shù)為例,與的歸一化互相關(guān)系數(shù)的絕對值中的最大值為cor1,則:
β1=cor1*cor1
β2=1-cor1*cor1
以采用音調(diào)性的相似度為度量為例,與的音調(diào)性參數(shù)分別為TNR1和TNR2,則可以采用如下公式來確定β1和β2:
β1=1-2*abs(TNR1-TNR2)/(TNR1+TNR2)
β2=1-β1
式中,abs()為絕對值函數(shù);
步驟11-4,確定從固定基礎(chǔ)補償矢量集合A1中所選矢量的目標音調(diào)性的值為TNR3,例如可以通過如下公式計算TNR3:
TNR3=TNR1-TNR2;
步驟11-5,從基礎(chǔ)補償矢量集合A1中選出用于補償處理的基礎(chǔ)補償矢量(在集合A1中的序號為indext2作為補償編碼參數(shù)),從自適應(yīng)基礎(chǔ)補償矢量集合A2選出用于補償處理的基礎(chǔ)補償矢量的方法可以有多種,比如根據(jù)信號音調(diào)性差異最小的準則,選擇音調(diào)性與TNR3最接近的基礎(chǔ)補償矢量作為
步驟11-6,對indext1、indext2、engo1和engo2進行量化編碼,其中engo2=engo*β2,engo1=engo*β1。
如圖17所示,矢量組合的對PCA主成分分量進行補償處理解碼的方法。在解碼器中,對進行補償處理解碼的步驟如下:
步驟12-1,對indext1、indext2、engo1以及engo2進行解碼;
步驟12-2,根據(jù)indext1從自適應(yīng)基礎(chǔ)補償矢量集合A2中獲取
步驟12-3,根據(jù)indext2從固定基礎(chǔ)補償矢量集合A1中獲取
步驟12-4,進行補償處理,即將補償分量拷貝到并進行幅度調(diào)整:
實施例12:
當采用從自適應(yīng)基礎(chǔ)補償矢量集合A2中選擇基礎(chǔ)補償矢量來生成補償分量時,其效果等同于對映射矩陣系數(shù)進行調(diào)整,這形成了補償處理方法的一種變體:調(diào)整映射矩陣系數(shù)的補償處理方法:通過調(diào)整逆映射矩陣WT,達到利用經(jīng)過感知編碼的p個主成分(j=1,…,p)中的一個或幾個主成分來對被舍棄的一個或幾個主成分進行補償?shù)哪康摹?/p>
如圖18所示,調(diào)整映射矩陣系數(shù)對PCA主成分分量進行補償處理編碼的方法。對于某個需要進行補償?shù)奈唇?jīng)感知編碼的主成分在編碼器中進行補償處理編碼的步驟如下:
步驟13-1,從選擇經(jīng)過感知編碼的p個主成分(j=1,…,p)中選擇一個主成分來對進行補償處理,在p個主成分中的序號記為l,的選擇方法可以有多種,比如可以選擇p個主成分(j=1,…,p)中最后一個可以選擇(j=1,…,p)中音調(diào)性與最接近的一個作為可以選擇(j=1,…,p)中譜平坦度與最接近的一個作為
步驟13-2,計算和的能量engo和engl;
步驟13-3,調(diào)整映射矩陣系數(shù)wlk:
步驟13-4,調(diào)整映射矩陣系數(shù)wok:
wok=0,k=1,…,K。
在解碼器中,只需對映射矩陣進行正常的解碼處理,不需要進行特殊處理。
實施例13:
如圖19所示,給出了一種基于子空間映射的高效多聲道音頻編碼裝置,該裝置在專利申請201410395806.5、201410404895.5中方法的基礎(chǔ)上,通過利用本發(fā)明前述的補償處理方法,結(jié)合了對映射子空間成分進行感知編碼和補償處理的優(yōu)點,能有效提高多聲道音頻的編碼效率和重建質(zhì)量。該裝置的編碼部分包括時頻變換模塊、頻帶劃分模塊、子空間映射模塊、編碼/補償選擇模塊、感知編碼模塊、補償處理編碼模塊、映射矩陣編碼模塊以及多聲道音頻碼流復(fù)用模塊。其中,
時頻變換模塊,用于采用時頻變換,或者采用子帶濾波,將多聲道聲音信號映射為頻域 信號;
頻帶劃分模塊,用于將頻域信號劃分為不同時頻子帶;
子空間映射模塊,用于在不同時頻子帶內(nèi),計算多聲道聲音信號X的統(tǒng)計特性,并估計PCA映射模型W,采用估計的映射模型,將多聲道信號映射到新的子空間,獲得新的一組多聲道信號Z;
編碼/補償選擇模塊,用于選擇需要進行感知編碼的p個主成分分量,以及需要進行補償處理的q個主成分分量(q<=K-p);
感知編碼模塊,用于分別對編碼/補償選擇中選定的p個主成分分量進行感知編碼,得到感知編碼碼流;
補償處理編碼模塊,用于根據(jù)本幀的感知編碼的p個主成分分量對基礎(chǔ)補償矢量集合A中的自適應(yīng)基礎(chǔ)補償矢量進行更新,分別對編碼/補償選擇中選定的q個主成分分量進行補償處理編碼,得到補償編碼碼流;
映射模型編碼模塊,用于編碼對應(yīng)的映射矩陣(即特征矢量),得到映射模型編碼碼流,也可以編碼該模型的其他變換形式,亦可以直接編碼借以計算映射矩陣的協(xié)方差矩陣。映射模型編碼時,可以采用眾所周知的標量量化、矢量量化和預(yù)測編碼等方法,也可以采用熵編碼(如huffman編碼或算數(shù)編碼)來進一步提高編碼效率;
多聲道音頻碼流復(fù)用模塊,用于對感知編碼碼流、補償編碼碼流、映射模型編碼碼流等進行復(fù)用得到編碼多聲道碼流。
其中,編碼/補償選擇部分可以采用多種方法來進行選擇。如,按照能量大小排序,選擇能量最大的p個主成分分量進行感知編碼,而對剩余的K-p個主成分分量中的q個進行補償處理編碼,q<=K-p,也可以按照對的重要程度來進行選擇,具體步驟如下:
步驟14-1,計算重要程度矩陣Q=(qij)K*K,qij表征了對的重要程度,可以采用多種方法計算,比如可以是:
也可以利用幅度值對重要程度進行加權(quán):
步驟14-2,根據(jù)重要程度矩陣Q=(qij)K*K計算的重要度P(j)
P(j)=max{qij,i=1,…,K};
步驟14-3,根據(jù)P(j)對進行排序,選擇P(j)值最大的p個主成分分量進行感知編碼,而對剩余的K-p個主成分分量中的q個進行補償處理編碼,q<=K-p。
如圖20所示,本發(fā)明對應(yīng)給出了一種基于子空間映射的高效多聲道音頻解碼裝置,包括多聲道音頻碼流解復(fù)用模塊、感知解碼模塊、映射模型解碼模塊、補償處理解碼模塊、子空間逆映射模塊以及頻時變換模塊。其中,
多聲道音頻碼流解復(fù)用模塊,用于對編碼多聲道碼流進行解復(fù)用得到感知編碼碼流、補償編碼碼流、映射模型編碼碼流等;
感知解碼模塊,用于對編碼多聲道碼流中感知編碼碼流進行解碼,獲得p個主成分分量;
映射模型解碼模塊,用于從映射模型編碼碼流中解碼得到PCA映射模型,即映射矩陣;
補償處理解碼模塊,用于根據(jù)本幀的已感知解碼的p個主成分分量對基礎(chǔ)補償矢量集合A中的自適應(yīng)基礎(chǔ)補償矢量進行更新,對需要進行補償處理的q個主成分分量進行補償處理解碼;
子空間逆映射模塊,用于采用解碼得到的PCA映射模型,將解碼得到主成分分量映射回多聲道數(shù)據(jù)的原始空間;
頻時變換模塊,用于采用逆的時頻變換,將多聲道聲音信號從頻域映射為時域,或者采用逆的子帶濾波,將多聲道聲音信號從子帶域映射為時域。