專利名稱:嵌入和獲取聲源定向信息的方法及音頻編解碼方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及音頻數(shù)據(jù)的編解碼技術(shù),特別涉及一種在碼流中嵌入聲源定向信息的方法、一種從碼流中獲取聲源定向信息的方法,還涉及一種音頻壓縮編解碼方法和一種音頻壓縮編解碼系統(tǒng)。
背景技術(shù):
在現(xiàn)有的某些監(jiān)控場景中,通常會在監(jiān)控前端利用麥克風(fēng)陣列來采集音頻多聲道數(shù)據(jù),然后利用麥克風(fēng)陣列算法對音頻多聲道數(shù)據(jù)進(jìn)行去噪、定位等處理,得到音頻單聲道數(shù)據(jù)和聲源定向信息。
此后,即可基于現(xiàn)有的音頻壓縮編碼標(biāo)準(zhǔn),將音頻單聲道數(shù)據(jù)壓縮編碼、并生成碼流后傳輸至監(jiān)控后端,并由監(jiān)控后端解碼后播放。此外,聲源定向信息也可供監(jiān)控后端控制監(jiān)控場景中的攝像頭轉(zhuǎn)動和/或移動,以實(shí)現(xiàn)對監(jiān)控目標(biāo)的跟蹤。
然而,現(xiàn)有的音頻壓縮編碼標(biāo)準(zhǔn)并不支持在碼流中傳輸聲源定向信息,從而使得聲源定向信息無法由監(jiān)控前端傳輸至監(jiān)控后端。
為了解決上述問題,現(xiàn)有技術(shù)則直接將麥克風(fēng)陣列采集的音頻多聲道數(shù)據(jù)壓縮編碼、并生成碼流后傳輸至監(jiān)控后端,并由監(jiān)控解碼后利用麥克風(fēng)陣列算法對音頻多聲道數(shù)據(jù)進(jìn)行去噪、定位等處理,以得到聲源定向信息。
但由于多聲道音頻數(shù)據(jù)中各聲道的相位關(guān)系會在監(jiān)控前端的壓縮編碼過程中被破壞,從而使得監(jiān)控后端無法獲得準(zhǔn)確的聲源定位信息,而且,壓縮編碼后的多聲道音頻數(shù)據(jù)在監(jiān)控前端和監(jiān)控后端之間的傳輸或存儲,也會占用大量的傳輸帶寬或存儲空間。
可見,現(xiàn)有技術(shù)無法實(shí)現(xiàn)聲源定向信息隨碼流傳輸,從而不得不傳輸或存儲多聲道音頻數(shù)據(jù)的碼流,且基于多聲道音頻數(shù)據(jù)的碼流難以獲得準(zhǔn)確的聲源定向信息,并占用大量的傳輸帶寬或存儲空間。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種在碼流中嵌入聲源定向信息的方法、一種從碼流中獲取聲源定向信息的方法、一種音頻壓縮編解碼方法,以及一種音頻壓縮編解碼系統(tǒng),能夠使得聲源定向信息隨碼流傳輸。
本發(fā)明提供的一種在碼流中嵌入聲源定向信息的方法,包括接收音頻單聲道數(shù)據(jù)、及對應(yīng)的聲源定向信息;將所述音頻單聲道數(shù)據(jù)壓縮編碼形成碼流、并在所述碼流中各幀的頭語法結(jié)構(gòu)內(nèi)添加碼流信息的同時,還將所述聲源定向信息編碼后添加至任意一幀或多幀的所述頭語法結(jié)構(gòu)內(nèi)。
本發(fā)明提供的一種從碼流中獲取聲源定向信息的方法,包括接收由音頻單聲道數(shù)據(jù)壓縮編碼后生成的碼流,且所述碼流中任意一幀或多幀的頭語法結(jié)構(gòu)中還包括編碼后的聲源定向信息;從所述碼流中任意一幀或多幀的頭語法結(jié)構(gòu)中解碼得到所述聲源定向信息。
本發(fā)明提供的一種音頻壓縮編解碼方法,該編解碼方法先后包括上述音頻壓縮編碼方法中的各步驟、以及上述音頻解碼方法中的各步驟。
本發(fā)明提供的一種音頻壓縮編解碼系統(tǒng),包括相連的編碼端和解碼端, 所述編碼端,用于上述音頻壓縮編碼方法中各步驟對應(yīng)的操作; 所述解碼端,用于上述音頻解碼方法中各步驟對應(yīng)的操作。
由上述技術(shù)方案可見,本發(fā)明可以將聲源定向信息進(jìn)行編碼后添加至音頻單聲道數(shù)據(jù)碼流中任意幀的頭語法結(jié)構(gòu)內(nèi),從而能夠?qū)崿F(xiàn)將聲源定向信息嵌入至碼流中,以使得聲源定向信息能夠隨碼流傳輸。
如此一來,如果將本發(fā)明的技術(shù)方案應(yīng)用于監(jiān)控場景中,就無需在監(jiān)控前端和監(jiān)控后端之間傳輸或存儲多聲道音頻數(shù)據(jù)的碼流,從而避免監(jiān)控前端輸出多聲道音頻數(shù)據(jù)的碼流而使得監(jiān)控后端難以獲得準(zhǔn)確聲源定向信息,還避免多聲道音頻數(shù)據(jù)的碼流傳輸、以及存儲占用較大傳輸帶寬或存儲空間。
圖1為本發(fā)明實(shí)施例中聲源定向信息包括的水平和垂直角度的示意圖; 圖2為本發(fā)明實(shí)施例中壓縮編解碼方法的示例性流程圖; 圖3為本發(fā)明實(shí)施例中壓縮編解碼系統(tǒng)的示例性結(jié)構(gòu)圖。
具體實(shí)施例方式 為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對本發(fā)明進(jìn)一步詳細(xì)說明。
基于現(xiàn)有的音頻壓縮編碼標(biāo)準(zhǔn),音頻單聲道數(shù)據(jù)在壓縮編碼后形成的碼流中通常會劃分為若干個幀,且現(xiàn)有的音頻壓縮編碼標(biāo)準(zhǔn)中又為每一幀都定義了用于攜帶例如編碼模式、采樣頻率、通道數(shù)、碼率等碼流信息的頭語法結(jié)構(gòu),因此,在本發(fā)明實(shí)施例中仍然對音頻單聲道數(shù)據(jù)壓縮編碼以形成碼流,同時還將聲源定向信息進(jìn)行編碼后,添加至碼流中任意一幀或多幀的頭語法結(jié)構(gòu)內(nèi),以實(shí)現(xiàn)在碼流中嵌入聲源定向信息,并使得聲源定向信息能夠隨碼流傳輸。
如此一來,只要在解碼時從頭語法結(jié)構(gòu)中解析得到聲源定向信息的相關(guān)語法,即可獲得每幀音頻單聲道數(shù)據(jù)對應(yīng)的聲源定向信息。
考慮到在實(shí)際應(yīng)用中,并不是任何監(jiān)控場景都需要傳遞聲源定位信息的,即便需要傳遞也不一定必須在每一幀的頭語法結(jié)構(gòu)內(nèi)均添加編碼后的聲源定向信息,因此,本發(fā)明實(shí)施例中可進(jìn)一步在頭語法結(jié)構(gòu)中添加聲源定向標(biāo)志,以表示該頭語法結(jié)構(gòu)中是否有聲源定向信息。在解碼時,可以首先判斷該聲源定向標(biāo)志是否表示頭語法結(jié)構(gòu)中有聲源定向信息,如果是,再執(zhí)行對聲源定向信息的解碼,否則,即可跳過對聲源定位信息解碼的操作。
進(jìn)一步地,考慮到實(shí)際應(yīng)用中,還存在連續(xù)多幀中的音頻單聲道數(shù)據(jù)對應(yīng)相同或相近似的聲源定向信息,因此,本發(fā)明實(shí)施例為了減少在碼流中嵌入的聲源定向信息數(shù)據(jù)量、以進(jìn)一步節(jié)省碼流傳輸帶寬,可以在上述連續(xù)多幀的第一幀的頭語法結(jié)構(gòu)中,將聲源定向標(biāo)志設(shè)置為表示頭語法結(jié)構(gòu)中有聲源定向信息的有效值,并在第一幀的頭語法結(jié)構(gòu)中添加壓縮編碼后的聲源定向信息,而在除第一幀之外的后續(xù)所有幀的頭語法結(jié)構(gòu)中,將聲源定向標(biāo)志設(shè)置為表示頭語法結(jié)構(gòu)中無聲源定向信息的無效值,且不將上述的聲源定向信息壓縮編碼后添加至后續(xù)所有幀的頭語法結(jié)構(gòu)中。
在本發(fā)明實(shí)施例中,聲源定向信息可以包括水平方向角度信息和/或垂直方向角度信息。水平方向角度也可稱為水平方位角,在本文中表示為如圖1所示的α;垂直方向角度也可稱為垂直仰俯角,在本文中表示為如圖1所示的β。在圖1中,三位坐標(biāo)軸的原點(diǎn)位于麥克風(fēng)陣列的中心位置、X軸沿麥克風(fēng)陣列的正前方向延伸、Y軸沿麥克風(fēng)陣列的左側(cè)方向延伸、Z軸沿麥克風(fēng)陣列的正上方向延伸,α在逆時針方向?yàn)檎?、β向上為正,α和β的取值范圍均?~359度。
這樣,聲源定向信息在壓縮編碼后添加至頭語法結(jié)構(gòu)中的語法格式可如下所示 { 聲源定向標(biāo)志; 如果聲源定向標(biāo)志有效,則存在{ 水平方向角度信息編碼后的結(jié)果; 垂直方向角度信息編碼后的結(jié)果;} } 當(dāng)然,聲源定向信息內(nèi)還可以包含其它任意方向的角度信息。由于無論是何種方向的角度信息,對其編碼的原理均相同,因此,下文中就均以聲源定向信息包含如圖1所示的水平方向角度信息α和垂直方向角度信息β為例進(jìn)行說明。
實(shí)際應(yīng)用中,對于如上所列舉的聲源定向信息的編碼方式及對應(yīng)的解碼方式可以為多種,以下舉三種編解碼方式予以說明 1)聲源定向信息的編碼方式一 a1、將水平方向角度信息α和垂直方向角度信息β除以預(yù)設(shè)的編碼角度分辨率δ,得到兩個N比特(N為正整數(shù))的二進(jìn)制數(shù)、即編碼后的水平方向角度信息
和編碼后的垂直方向角度信息
以實(shí)現(xiàn)對聲源定向信息的編碼。該編碼過程可以表示為 其中,N的取值滿足
或更進(jìn)一步地具體滿足
a2、可選地,進(jìn)一步對N比特二進(jìn)制數(shù)、即壓縮編碼后得到的
和
補(bǔ)零,以使得嵌入有補(bǔ)零后的N比特二進(jìn)制數(shù)、即補(bǔ)零后的
和
的頭語法結(jié)構(gòu)為整數(shù)字節(jié)。
以下分別以10度、5度和1度的編碼角度分辨率δ為例進(jìn)一步說明 當(dāng)編碼角度分辨率δ為10度時,水平方向角度信息α和垂直方向角度信息β分別以6比特進(jìn)行壓縮編碼、即N取6,其有效范圍為0~36度。假設(shè),55度或60度的α和β經(jīng)壓縮編碼后得到的
和
表示為“000110”。
當(dāng)編碼角度分辨率δ為5度時,水平方向角度信息α和垂直方向角度信息β分別以7比特進(jìn)行壓縮編碼、即N取7,其有效范圍為0~72度。假設(shè),55度的α和β經(jīng)編碼后得到的
和
表示為“0001011”,而60度的α和β經(jīng)編碼后得到的
和
表示為“0001100”。
當(dāng)編碼角度分辨率δ為1度時,水平方向角度信息α和垂直方向角度信息β分別以9比特進(jìn)行壓縮編碼、即N取9,其有效范圍為0~359度。假設(shè),55度的α和β經(jīng)編碼后得到的
和
表示為“000110111”,而60度的α和β經(jīng)編碼后得到的
和
表示為“000111100”。
將水平方向角度信息α和垂直方向角度信息β按照編碼方式一編碼后,添加至頭語法結(jié)構(gòu)中的語法格式可如下所示 { 聲源定向標(biāo)志; 如果聲源定向標(biāo)志有效,則存在{
} } 相應(yīng)地,編碼方式一對應(yīng)的解碼方式一即可表示為 其中,α′為解碼后的水平方向角度信息、β′解碼后的垂直方向角度信息。
如上所述,水平方向角度信息α和垂直方向角度信息β可以6、7、9等非整數(shù)字節(jié)的比特進(jìn)行壓縮編碼,那么在這種情況下,將壓縮編碼后得到的
和
添加至頭語法結(jié)構(gòu)中,就有可能導(dǎo)致頭語法結(jié)構(gòu)為非整數(shù)字節(jié)。而非整數(shù)字節(jié)的頭語法結(jié)構(gòu)則易增加解碼處理的負(fù)擔(dān)。
對于編碼得到的6、7、9比特的
和
對應(yīng)的補(bǔ)零方式可分別參見表1~表3。
表1
表2
表3 2)聲源定向信息的編碼方式二、本文稱其為差分跟蹤編碼方式。差分跟蹤編碼方式主要是利用碼流中連續(xù)的前后幀所分別對應(yīng)的聲源定向信息之間的相關(guān)性,而不是如編碼方式一那樣保留聲源定向信息本身的全部信息,這樣可以進(jìn)一步節(jié)省碼流傳輸所占用的帶寬;且差分跟蹤編碼方式在碼字的最大取值不足以表示所述相關(guān)性的信息時,直接用碼字的最大取值表示該相關(guān)性的信息,并在連續(xù)多幀中利用碼字的最大取值實(shí)現(xiàn)對該相關(guān)性的信息的收斂。
差分跟蹤編碼方式的基本原理包括 b1、將當(dāng)前幀所對應(yīng)的每個方向的角度信息分別與前一幀中對應(yīng)的同一方向的角度信息進(jìn)行差分運(yùn)算,得到每個方向的9比特的第一差分運(yùn)算結(jié)果,且第一差分運(yùn)算結(jié)果的最高位為符號位。其中,這里所述的9比特是為了保證0~359度之間的取值范圍,當(dāng)然,實(shí)際應(yīng)用中也可采用10、11等大于9的比特?cái)?shù)。本文后續(xù)所出現(xiàn)的9比特也是如此,即本文中出現(xiàn)的9比特實(shí)際均可替換為至少9比特。
對于包含水平方向角度信息α和垂直方向角度信息β的這種情況,將當(dāng)前第i幀所對應(yīng)的水平方向角度信息α(i)和垂直方向角度信息β(i)分別與前一幀第i-1幀所對應(yīng)的水平方向角度信息α(i-1)和垂直方向角度信息β(i-1)進(jìn)行差分運(yùn)算,得到對應(yīng)的9比特第一差分運(yùn)算結(jié)果delta_α(i)和delta_β(i),i為大于1的正整數(shù),第一差分運(yùn)算結(jié)果delta_α(i)和delta_β(i)的取值范圍在0~359度之間。
其中,差分跟蹤編碼方式中的差分運(yùn)算過程可以表示為 delta_α(i)=(α(i)-α(i-1))rem360,delta_β(i)=(β(i)-β(i-1))rem360; 其中,本文中所出現(xiàn)的“rem”均表示取余數(shù)運(yùn)算。
此后,再將第一差分運(yùn)算結(jié)果delta_α(i)和delta_β(i)的取值范圍轉(zhuǎn)換至±180度之間,并設(shè)定第一差分運(yùn)算結(jié)果delta_α(i)和delta_β(i)的最高位為符號位。以水平方向角度信息的第一差分運(yùn)算結(jié)果delta_α(i)為例,轉(zhuǎn)換過程可表示為如果delta_α(i)>180,則delta_α(i)=delta_α(i)-360。
b2、為了減少第一差分運(yùn)算結(jié)果的比特?cái)?shù)、以節(jié)省碼流所占用的帶寬,利用預(yù)設(shè)的編碼角度分辨率δ量化每個方向的第一差分運(yùn)算結(jié)果,得到每個方向的M比特的第二差分運(yùn)算結(jié)果,并可將每個方向的第二差分運(yùn)算結(jié)果分別確定為該方向角度信息編碼后的結(jié)果。第二差分運(yùn)算結(jié)果的最高位為符號位,M為正整數(shù)、0<M<9,
δ為大于等于1的正整數(shù)。
實(shí)際應(yīng)用中,可先判斷每個方向的第一差分運(yùn)算結(jié)果的取值是否足以用M比特表示,例如判斷每個方向的第一差分運(yùn)算結(jié)果的取值是否在±(2M-1-1)δ之間;如果任一方向的第一差分運(yùn)算結(jié)果的取值足以用M比特表示、例如該方向的第一差分運(yùn)算結(jié)果的取值在±(2M-1-1)δ之間,則計(jì)算該方向的第一差分運(yùn)算結(jié)果除以編碼角度分辨率δ的商,并將該商確定為該方向的第二差分運(yùn)算結(jié)果;如果任一方向的第一差分運(yùn)算結(jié)果的取值不足以用M比特表示、例如該方向的第一差分運(yùn)算結(jié)果的取值大于(2M-1-1)δ或小于-(2M-1-1)δ,則將M比特所能夠表示的極值確定為該方向的第二差分運(yùn)算結(jié)果。
對于包含水平方向角度信息α和垂直方向角度信息β的這種情況,利用預(yù)設(shè)的編碼角度分辨率δ量化第一差分運(yùn)算結(jié)果delta_α(i)和delta_β(i),得到取值范圍在±(2M-1-1)之間的量化后的水平方向的第二差分運(yùn)算結(jié)果
和垂直方向的第二差分運(yùn)算結(jié)果
且
和
即可分別作為水平方向角度信息編碼后的結(jié)果和垂直方向角度信息編碼后的結(jié)果添加至頭語法結(jié)構(gòu)中。
以水平方向角度信息的差分運(yùn)算結(jié)果delta_α(i)為例,其對應(yīng)的差分跟蹤編碼方式中的量化過程可以表示為 或者,該量化過程可以進(jìn)一步簡化地表示為 同理,垂直方向角度信息的差分運(yùn)算結(jié)果delta_β(i)所對應(yīng)的量化過程也是如此。
b3、基于上述量化方式,在編碼角度分辨率δ大于1時,利用編碼角度分辨率δ量化得到的每個方向的第二差分運(yùn)算結(jié)果均會存在誤差;在編碼角度分辨率等于1時,取值位于±(2M-1-1)δ之外的第一差分運(yùn)算結(jié)果經(jīng)量化后會被直接賦值為±(2M-1-1)、因而也會存在誤差。因此,對于存在誤差的這兩種情況,利用對應(yīng)方向的第二差分運(yùn)算結(jié)果、編碼角度分辨率δ、以及前一幀中對應(yīng)的該方向的角度信息,更新當(dāng)前幀對應(yīng)方向的角度信息,用以補(bǔ)償量化該方向的第一差分運(yùn)算結(jié)果時產(chǎn)生的誤差、并供編碼下一幀對應(yīng)的該方向的角度信息時使用。
對于包含水平方向角度信息α和垂直方向角度信息β的這種情況,可利用量化后得到的第二差分運(yùn)算結(jié)果
和/或
編碼角度分辨率δ、以及前一幀對應(yīng)的水平方向角度信息α(i-1)和垂直方向角度信息β(i-1),更新當(dāng)前幀對應(yīng)的水平方向角度信息α(i)和/或垂直方向角度信息β(i),以補(bǔ)償量化delta_α(i)和/或delta_β(i)時產(chǎn)生的誤差、并供編碼下一幀對應(yīng)的水平方向角度信息α(i+1)和垂直方向角度信息β(i+1)時使用。
以更新水平方向角度信息α(i)為例,差分跟蹤編碼方式中的更新過程可表示為 如果
的最高位為正,即如果
則更新
如果
的最高位為負(fù),即如果
則更新
或者,該更新過程可以進(jìn)一步簡化地表示為 由于每一幀對應(yīng)的水平方向角度信息α(i)和垂直方向角度信息β(i)均按照上述方式更新、以供編碼下一幀對應(yīng)的水平方向角度信息α(i+1)和垂直方向角度信息β(i+1)時使用,因而如前所述的誤差不會累積。
將水平方向角度信息α和垂直方向角度信息β按照編碼方式二、即差分跟蹤方式編碼后,添加至頭語法結(jié)構(gòu)中的語法格式均可如下所示 {聲源定向標(biāo)志;如果聲源定向標(biāo)志有效,則存在 { } } 相應(yīng)地,差分跟蹤編碼方式、即編碼方式二對應(yīng)的解碼方式二即可利用編碼角度分辨率δ、以及在前一幀中解碼得到的每一方向的角度信息,分別對當(dāng)前幀中同一方向的M比特的第二差分運(yùn)算結(jié)果進(jìn)行解碼,得到當(dāng)前幀中每個方向的角度信息。
以水平方向角度信息編碼后的結(jié)果
為例,差分跟蹤編碼方式、即編碼方式二對應(yīng)的解碼方式二則利用編碼角度分辨率δ、以及在前一幀中解碼得到的水平方向角度信息α(i-1)′,對該
解碼得到當(dāng)前幀中的水平方向角度信息α(i)′,具體表示為 如果
的最高位為正,即如果
則解碼后的水平方向角度信息
如果
的最高位為負(fù),即如果
則解碼后的水平方向角度信息
或者,該解碼方式二可以進(jìn)一步簡化地表示為 解碼后的水平方向角度信息
當(dāng)然,為了便于解碼端的定位,上述解碼方式二也可設(shè)定解碼得到的每一方向的角度信息的取值范圍在±180度之間。
如前所述,由于編碼時可利用前述更新過程來消除誤差的累積,且解碼時也會基于該更新過程的原理、同時利用量化后的差分運(yùn)算結(jié)果
及前一幀解碼得到的水平方向角度信息α(i-1)′進(jìn)行解碼,因而最多只需要
幀即可實(shí)現(xiàn)解碼得到準(zhǔn)確角度信息的收斂。其中,編碼角度分辨率δ越大,如前所述的誤差就會越大,但收斂速度會越快、即T越小。
而且,解碼方式二的基本原理與編碼方式二中更新過程的基本原理相同,因而編碼方式二中的更新過程可看作是與解碼端的同步。
以下,對于上述差分跟蹤方式的編解碼過程,以水平方向角度信息編碼后的結(jié)果
為例,假設(shè)編碼角度分辨率δ取5、M取4(可以使得水平方向和垂直方向編碼后的結(jié)果總共只占1個字節(jié)),并舉一實(shí)例進(jìn)行說明。
先將當(dāng)前幀所對應(yīng)的水平方向角度信息α(i)與前一幀所對應(yīng)的水平方向角度信息α(i-1)進(jìn)行差分運(yùn)算,且α(i-1)的最高位為符號位。
然后量化差分運(yùn)算結(jié)果delta_α(i),得到取值范圍在±7之間的量化后的水平方向差分運(yùn)算結(jié)果
再利用量化后的差分運(yùn)算結(jié)果
以及前一幀對應(yīng)的水平方向角度信息α(i-1),更新當(dāng)前幀對應(yīng)的水平方向角度信息α(i) 此后,即可按照
進(jìn)行解碼,并經(jīng)
幀即可實(shí)現(xiàn)解碼得到準(zhǔn)確角度的收斂。
需要說明的是,在進(jìn)行差分運(yùn)算時將第一差分運(yùn)算結(jié)果的取值范圍轉(zhuǎn)換至±180度之間,并設(shè)定第一差分運(yùn)算結(jié)果的最高位為符號位、以及第二差分運(yùn)算結(jié)果的最高位為符號位,主要為了解碼端在解碼后能夠更快捷地實(shí)現(xiàn)準(zhǔn)確定位。假設(shè)編碼角度分辨率δ取5、M取4,任一方向的第一差分運(yùn)算結(jié)果為350度,那么對應(yīng)的第二差分運(yùn)算結(jié)果就只有7度,解碼端解碼后就只能在正方向上旋轉(zhuǎn)35度,如此一來就需要10幀才能夠?qū)崿F(xiàn)收斂;而如果將第一差分運(yùn)算結(jié)果量化在±180度之間,仍假設(shè)編碼角度分辨率δ取5、M取4,任一方向350度的第一差分運(yùn)算結(jié)果就會變?yōu)?10度,那么對應(yīng)的第二差分運(yùn)算結(jié)果就也是-2度,解碼端解碼后就直接在負(fù)方向上旋轉(zhuǎn)10度即可實(shí)現(xiàn)準(zhǔn)確定位,從而無需后續(xù)幀的收斂。
此外,更優(yōu)地,考慮到差分跟蹤編碼方式如b2所述的前述量化過程的具體實(shí)現(xiàn)方式中,00...00、10...00分別表示正負(fù)0度,顯然浪費(fèi)了可用于編碼的碼字,因此,在本發(fā)明實(shí)施例中,差分跟蹤編碼方式可采用另一種量化過程的具體實(shí)現(xiàn)方式予以替換。
另一種量化過程的具體實(shí)現(xiàn)方式利用10...00、即2M-1表示180度,如果任一方向的第一差分運(yùn)算結(jié)果的取值不足以用M比特表示,且該方向的第一差分運(yùn)算結(jié)果未接近±180度,則將M比特所能夠表示的極值確定為該方向的M比特的第二差分運(yùn)算結(jié)果;如果任一方向的第一差分運(yùn)算結(jié)果的取值不足以用M比特表示,且該方向的第一差分運(yùn)算結(jié)果接近±180度,則將表示180度的特殊碼字2M-1確定為該方向的M比特的第二差分運(yùn)算結(jié)果。
對于包含水平方向角度信息α和垂直方向角度信息β的這種情況,在量化過程中將接近±180度的delta_α(i)和delta_β(i)量化為表示180度的10...00。這樣,相比于將接近±180度的delta_α(i)和delta_β(i)量化為±(2M-1-1)度的前述量化過程,將接近±180度的delta_α(i)和delta_β(i)量化為表示180度的10...00所產(chǎn)生的誤差更小,從而使得收斂速度更快。
具體來說,以水平方向角度信息的差分運(yùn)算結(jié)果delta_α(i)為例,將絕對值大于預(yù)設(shè)的極限角度γ確定為接近±180度、γ≥90,那么將接近±180度的delta_α(i)和delta_β(i)量化為表示180度的10...00的另一種量化過程的具體實(shí)現(xiàn)方式可表示為 或者,該量化過程可以進(jìn)一步簡化地表示為 同理,垂直方向角度信息的差分運(yùn)算結(jié)果delta_β(i)所對應(yīng)的另一種量化過程的具體實(shí)現(xiàn)方式也是如此。
仍假設(shè)編碼角度分辨率δ取5、M取4,并假設(shè)γ取90度,且以水平方向角度信息的差分運(yùn)算結(jié)果delta_α(i)為例,則另一種量化過程的具體實(shí)現(xiàn)方式可表示為 本發(fā)明實(shí)施例中的差分跟蹤編碼方式相比于編碼方式一,均具有如下優(yōu)勢 當(dāng)某個聲源發(fā)聲并移動時,短時間間隔內(nèi)的移動角度通常都較小,只有當(dāng)另一個位置的聲源發(fā)聲、并取代這個聲源時,才會發(fā)生大角度的跳轉(zhuǎn)。因此,無論采用哪一種量化過程,即便將delta_α(i)和delta_β(i)的取值范圍量化在±(2M-1-1)之間,在絕大多數(shù)情況下仍能夠在解碼端立即獲得準(zhǔn)確的角度信息,只有發(fā)生上述大角度的跳轉(zhuǎn)時,才處于跟蹤收斂狀態(tài),且這個收斂速度很快。如此一來,在不影響聲源定位信息準(zhǔn)確度的情況下,差分跟蹤編碼方式相比于編碼方式一能夠減少碼流所占的帶寬。
且編碼方式一所需要的比特?cái)?shù)取決于角度的大小,角度越大則需要的碼字比特?cái)?shù)越多,例如對于±(2M-1-1)δ角度范圍之外的角度,編碼方式一需要的碼字比特?cái)?shù)一定大于M,那么為了統(tǒng)一所有角度所需碼字的碼字比特?cái)?shù)、以保證恒定的碼率,編碼方式一只能夠按照角度的最大取值來設(shè)定碼字的比特?cái)?shù),從而需要的碼字比特?cái)?shù)會比較多。因此,差分跟蹤編碼方式相比于編碼方式一能夠減少碼字的比特?cái)?shù),從而減少碼流所需帶寬。進(jìn)一步地,當(dāng)M取4、且不設(shè)置聲源定向標(biāo)志時,水平方向和垂直方向編碼后的結(jié)果總共只占1個字節(jié)。
可選地,考慮到跟蹤收斂時解碼得到的角度信息并不準(zhǔn)確,解碼端可以將其認(rèn)為是一個過渡結(jié)果并丟棄,表示跟蹤收斂狀態(tài)時的過渡結(jié)果的碼字包括±(2M-1-1)、2M-1。解碼端可等到出現(xiàn)其他碼字時,再獲取準(zhǔn)確的角度信息。
3)編碼方式三,本文稱其為差分分級編碼方式。差分分級編碼方式也利用碼流中連續(xù)的前后幀所分別對應(yīng)的聲源定向信息之間的相關(guān)性,而不是如編碼方式一那樣保留聲源定向信息本身的全部信息,這一點(diǎn)與差分跟蹤編碼方式基本相同。但與差分跟蹤編碼方式的不同之處在于,差分分級編碼方式在在預(yù)定比特的碼字不足以表示所述相關(guān)性的信息時,降低碼字所表示的角度精度以通過第一編碼級別實(shí)現(xiàn)粗定位,并在后續(xù)幀中恢復(fù)碼字所表示的角度精度、以通過第二編碼級別實(shí)現(xiàn)精定位。
較佳地,可設(shè)置Q與q相等,以使得第一編碼級別和第二編碼級別的碼率相同;如果Q與q不相等,但卻仍需要保證第一編碼級別和第二編碼級別的碼率相同,則可在Q大于q時,進(jìn)一步對第一編碼級別的q比特碼字補(bǔ)相應(yīng)數(shù)量個0、或表示其他信息的相應(yīng)數(shù)量比特;在Q小于q時,進(jìn)一步對第二編碼級別的Q比特碼字補(bǔ)相應(yīng)數(shù)量個0、或表示其他信息的相應(yīng)數(shù)量比特。
具體來說,對于差分分級編碼方式,可將360度等分為P個單位角度區(qū)間,每個單位角度區(qū)間包括
度,且對于預(yù)定的Q比特,2q-1<P<2q,P為可被360整除的正整數(shù),
較佳地,P的取值應(yīng)盡可能接近2q,和/或
盡可能接近(2Q-1×θ),以更充分地利用第一編碼級別的q比特碼字、以及第二編碼級別的Q比特碼字。
其中,P個單位角度區(qū)間的取值、即
度,可看作是第一編碼級別對應(yīng)的第一級角度精度,那么在第一編碼級別的編碼過程中,即可利用
度的第一級角度精度,對位于±(2Q-1×θ)角度范圍之外的差分運(yùn)算結(jié)果量化處理至0~P的取值范圍內(nèi),以使得量化得到的q比特足以表示差分運(yùn)算結(jié)果中的所述相關(guān)性的信息,用以實(shí)現(xiàn)粗定位。
相應(yīng)地,每個單位角度區(qū)間內(nèi)任意大小的角度θ則可看作第二編碼級別對應(yīng)的第二級角度精度,在第二編碼級別的編碼過程中,只需將位于±(2Q-1×θ)角度范圍之內(nèi)的差分運(yùn)算結(jié)果,按照取值大于等于1度且小于
度的第二級角度精度θ量化處理至±2Q-1的取值范圍內(nèi),以使得量化得到的Q比特足以表示差分運(yùn)算結(jié)果中的所述相關(guān)性的信息,用以實(shí)現(xiàn)精定位。只要
那么第一編碼級別有可能產(chǎn)生的量化誤差最大絕對值
就不會導(dǎo)致無法進(jìn)入第二編碼級別的狀態(tài)。
實(shí)際應(yīng)用中,第二級角度精度θ的具體取值還可以參考P、q、Q的取值、以及實(shí)際需要來選定。假設(shè)P取30、q取5,如果需要Q與q相同也取5,則需要選定第二級角度精度θ取1;又假設(shè)P取30、q取5,如果需要Q小于q并取4,則需要選定第二級角度精度θ取2;再假設(shè)P取12、q取4,如果需要Q與q相同也取4,則需要選定第二級角度精度θ取5。也就是說,在進(jìn)一步滿足的
情況下,可使得Q與q相等。較佳地,第二級角度精度θ取1,這樣可以最為充分地利用Q比特碼字,以使得精定位的精確度最高。
上述差分分級編碼方式的基本原理包括 c1、將當(dāng)前幀所對應(yīng)的每個方向的角度信息分別與前一幀中對應(yīng)的同一方向的角度信息進(jìn)行差分運(yùn)算,得到每個方向的9比特(或至少9比特)的第三差分運(yùn)算結(jié)果,且第三差分運(yùn)算結(jié)果無符號位。
對于包含水平方向角度信息α和垂直方向角度信息β的這種情況,將當(dāng)前第i幀所對應(yīng)的水平方向角度信息α(i)和垂直方向角度信息β(i)分別與前一幀第i-1幀所對應(yīng)的水平方向角度信息α(i-1)和垂直方向角度信息β(i-1)進(jìn)行差分運(yùn)算,得到對應(yīng)的第三差分運(yùn)算結(jié)果delta_α(i)和delta_β(i),i為大于1的正整數(shù)、且第三差分運(yùn)算結(jié)果delta_α(i)和delta_β(i)的取值范圍在0~359度之間。
其中,差分跟蹤編碼方式中的差分運(yùn)算過程可以表示為 delta_α(i)=(α(i)-α(i-1))rem360;delta_β(i)=(β(i)-β(i-1))rem360。
c2、判斷每個方向的第三差分運(yùn)算結(jié)果的取值是否位于預(yù)定的角度范圍±(2Q-1×θ)之外,即是否足以用Q比特表示。
實(shí)際應(yīng)用中,可判斷每個方向的第三差分運(yùn)算結(jié)果的取值、以及360度與每個方向的第三差分運(yùn)算結(jié)果之差是否均大于等于(2Q-1×θ),如果任一方向的第三差分運(yùn)算結(jié)果的取值、以及360度與該個方向的第三差分運(yùn)算結(jié)果之差均大于等于(2Q-1×θ),則表示該方向第三差分運(yùn)算結(jié)果的取值位于預(yù)定的角度范圍之外、不足以用Q比特表示;如果任一方向的第三差分運(yùn)算結(jié)果的取值、或360度與該方向的第三差分運(yùn)算結(jié)果之差小于(2Q-1×θ),則表示該方向第三差分運(yùn)算結(jié)果的取值位于預(yù)定的角度范圍之內(nèi)、足以用Q比特表示。
如果任一方向的第三差分運(yùn)算結(jié)果的取值位于預(yù)定的角度范圍之外,則設(shè)定該方向?qū)?yīng)的編碼級別為表示粗定位的第一編碼級別,并利用
度的第一級角度精度量化該方向的第三差分運(yùn)算結(jié)果,例如量化為
度的倍數(shù),得到該方向的q比特第四差分運(yùn)算結(jié)果,并將該方向的第四差分運(yùn)算結(jié)果確定為該方向角度信息編碼后的結(jié)果,且第四差分運(yùn)算結(jié)果無符號位。
如果任一方向的第三差分運(yùn)算結(jié)果的取值位于預(yù)定的角度范圍之內(nèi),則設(shè)定該方向?qū)?yīng)的編碼級別為表示粗定位的第二編碼級別,并利用大于等于1且小于
度的第二級角度精度θ量化該方向的第三差分運(yùn)算結(jié)果,得到該方向的Q比特第五差分運(yùn)算結(jié)果,并將該方向的第五差分運(yùn)算結(jié)果確定為該方向角度信息編碼后的結(jié)果,第五差分運(yùn)算結(jié)果的最高位為符號位。
對于包含水平方向角度信息α和垂直方向角度信息β、且Q比特最高位為符號位的這種情況,判斷delta_α(i)、以及360度與delta_α(i)之差是否均大于等于(2Q-1×θ),并判斷delta_β(i)、以及360度與delta_β(i)之差是否均大于等于(2Q-1×θ)。
如果delta_α(i)及360度與delta_α(i)之差、和/或delta_β(i)及360度與delta_β(i)之差均大于等于(2Q-1×θ),則表示該delta_α(i)和/或delta_β(i)位于±(2Q-1×θ)角度范圍之外、且不足以用Q比特表示,因而設(shè)定該delta_α(i)和/或delta_β(i)對應(yīng)的編碼級別為表示粗定位的第一編碼級別,并將該delta_α(i)和/或delta_β(i)量化為
度的倍數(shù),以水平方向角度信息的第三差分運(yùn)算結(jié)果delta_α(i)為例,該過程可表示為 Level_α(i)=1,
delta_α(i)≥2Q-1×θ、360-delta_α(i)≥2Q-1×θ。
如果delta_α(i)和/或delta_β(i)小于2Q-1、或者360度與delta_α(i)和/或delta_β(i)之差小于(2Q-1×θ),則表示該delta_α(i)和/或delta_β(i)位于±(2Q-1×θ)角度范圍內(nèi)、且足以用Q比特表示,因而設(shè)定該delta_α(i)和/或delta_β(i)對應(yīng)的編碼級別為表示精定位的第二編碼級別,并先利用第二級角度精度θ量化該delta_α(i)和/或delta_β(i),然后將該delta_α(i)和/或delta_β(i)量化結(jié)果的取值范圍轉(zhuǎn)換至±2Q-1角度范圍之內(nèi)、以使其最高位為符號位,從而得到作為編碼后結(jié)果的第五差分運(yùn)算結(jié)果
和/或
當(dāng)delta_α(i)和/或delta_β(i)小于(2Q-1×θ)時,可以計(jì)算該
和/或
與第二級角度精度θ的商。以水平方向角度信息的差分運(yùn)算結(jié)果delta_α(i)為例,該量化過程可表示為 Level_α(i)=0,
delta_α(i)<2Q-1×θ。
對于第二級角度精度θ取1的一種特殊情況,該量化過程可以等效于直接將該delta_α(i)和/或delta_β(i)確定為作為編碼后結(jié)果的第五差分運(yùn)算結(jié)果
和/或
當(dāng)360度與delta_α(i)之差小于(2Q-1×θ)時,可以計(jì)算該
和/或
與360度之差除以第二級角度精度θ的商。以水平方向角度信息的差分運(yùn)算結(jié)果delta_α(i)為例,該量化過程可表示為 Level_α(i)=0,
360-delta_α(i)<2Q-1×θ。
對于第二級角度精度θ取1的一種特殊情況,該量化過程可以等效于直接將該
和/或
與360度之差,確定為作為編碼后結(jié)果的第五差分運(yùn)算結(jié)果
和/或
以水平方向角度信息的差分運(yùn)算結(jié)果delta_α(i)為例,等效的上述量化過程可表示為
360-delta_α(i)<2Q-1×θ。
同理,垂直方向角度信息的差分運(yùn)算結(jié)果delta_β(i)所對應(yīng)的量化過程也是如此。
c3、基于上述量化方式,第一編碼級別利用
度進(jìn)行量化,因而會產(chǎn)生誤差,而當(dāng)?shù)诙壗嵌染圈却笥?時,第二編碼級別利用第二級角度精度θ進(jìn)行量化也會產(chǎn)生誤差。因此,為了補(bǔ)償?shù)谝痪幋a級別存在的誤差,可利用對應(yīng)方向的第四差分運(yùn)算結(jié)果、第一級角度精度
度、以及前一幀中對應(yīng)方向的角度信息,更新當(dāng)前幀對應(yīng)方向的角度信息,以供編碼下一幀對應(yīng)方向的角度信息時使用;為了補(bǔ)償?shù)诙幋a級別存在的誤差,可利用對應(yīng)方向的第五差分運(yùn)算結(jié)果、第二級角度精度θ、以及前一幀中對應(yīng)方向的角度信息,更新當(dāng)前幀對應(yīng)方向的角度信息,以供編碼下一幀對應(yīng)方向的角度信息時使用。
以更新水平方向角度信息α(i)為例,在使用第一編碼級別時,差分分級編碼方式中的更新過程可表示為 在使用第二編碼級別時,差分分級編碼方式中的更新過程可表示為 由于在使用第一編碼級別時,每個方向的角度信息均可按照上述方式更新、以供編碼下一幀對應(yīng)方向的角度信息時使用,因而如前所述的誤差不會累積。
假設(shè)P取30、Q取5、第二級角度精度θ取1、Q比特最高位為符號位,即將360度等分為30個單位角度區(qū)間,每個單位角度區(qū)間包括12度,并以水平方向角度信息α(i)為例,舉一實(shí)例對編碼方式三進(jìn)行說明。
先將當(dāng)前幀所對應(yīng)的水平方向角度信息α(i)與前一幀所對應(yīng)的水平方向角度信息α(i-1)進(jìn)行差分運(yùn)算。
然后判斷delta_α(i)、以及360度與delta_α(i)之差是否均大于16。
如果delta_α(i)、以及360度與delta_α(i)之差均大于等于16,則表示該delta_α(i)位于±16角度范圍之外,因而設(shè)定該delta_α(i)對應(yīng)的編碼級別為表示粗定位的第一編碼級別并將delta_α(i)量化為12度的倍數(shù),即 Level_α(i)=1,
delta_α(i)≥16、360-delta_α(i)≥16; 且更新水平方向角度信息
如果delta_α(i)小于16,則表示該delta_α(i)位于±16角度范圍內(nèi),因而設(shè)定該delta_α(i)對應(yīng)的編碼級別為表示精定位的第二編碼級別,并直接將該delta_α(i)確定為編碼后的結(jié)果
即 Level_α(i)=0,
delta_α(i)<2Q-1。
如果360度與delta_α(i)之差小于16,則表示該delta_α(i)位于±16角度范圍內(nèi),因而設(shè)定該delta_α(i)對應(yīng)的編碼級別為表示精定位的第二編碼級別,并將delta_α(i)量化至±16的范圍內(nèi),即 Level_α(i)=0,
360-delta_α(i)<16。
需要說明的是,第一編碼級別的q比特碼字的最高位也可以為符號位。那么此時,如果delta_α(i)及360度與delta_α(i)之差、和/或delta_β(i)及360度與delta_β(i)之差均大于等于2Q-1,則也需要將該delta_α(i)和/或delta_β(i)的取值范圍轉(zhuǎn)換至±2Q-1角度范圍之內(nèi)、以將該delta_α(i)和/或delta_β(i)的最高位設(shè)置為符號位;或者,由于第二編碼級別也需要上述角度范圍的轉(zhuǎn)換,因而可在差分運(yùn)算之后、判斷第一編碼級別和第二編碼級別之前,統(tǒng)一對將delta_α(i)和delta_β(i)的取值范圍轉(zhuǎn)換至±2Q-1角度范圍之內(nèi)、以將delta_α(i)和delta_β(i)的最高位設(shè)置為符號位。
將水平方向角度信息α和垂直方向角度信息β按照編碼方式三、即差分分級方式壓縮后,其在編碼后添加至頭語法結(jié)構(gòu)中的語法格式可如下所示 {聲源定向標(biāo)志;如果聲源定向標(biāo)志有效,則存在 { Level_α(i); Level_β(i); } } 相應(yīng)地,差分分級編碼方式、即編碼方式三對應(yīng)的解碼方式三需要先判斷每一方向角度信息編碼后的結(jié)果分別對應(yīng)的編碼級別; 如果當(dāng)前幀中的任一方向?qū)?yīng)第一編碼級別,則利用第一級角度精度、以及在前一幀中解碼得到的該方向角度信息,對當(dāng)前幀中該方向角度信息編碼后的結(jié)果進(jìn)行解碼,得到當(dāng)前幀中該方向的角度信息; 如果當(dāng)前幀中的任一方向?qū)?yīng)第二編碼級別,則利用第二級角度精度、以及在前一幀中解碼得到的該方向角度信息,對當(dāng)前幀中該方向角度信息編碼后的結(jié)果進(jìn)行解碼,得到當(dāng)前幀中該方向的角度信息。
以水平方向角度信息編碼后的結(jié)果
為例,差分分級編碼方式、即編碼方式三對應(yīng)的解碼方式三即可表示為 判斷
所對應(yīng)的編碼級別。
如果
所對應(yīng)的編碼級別為表示粗定位的第一編碼級別,則利用第一級角度精度
以及在前一幀中解碼得到的水平方向角度信息α(i-1)′,對該
解碼得到當(dāng)前幀中的水平方向角度信息α(i)′,具體表示為 如果
所對應(yīng)的編碼級別為表示精定位的第二編碼級別,則利用大于等于1且小于
度的第二級角度精度θ、以及在前一幀中解碼得到的水平方向角度信息α(i-1)′,對該
解碼得到當(dāng)前幀中的水平方向角度信息α(i)′,具體表示為 當(dāng)
的最高位為正、即
時, 解碼后的水平方向角度信息
當(dāng)
的最高位為負(fù)、即
時, 解碼后的水平方向角度信息
或者,如果
所對應(yīng)的編碼級別為表示精定位的第二編碼級別,該解碼方式三可以進(jìn)一步簡化地表示為 解碼后的水平方向角度信息
對于第二級角度精度θ取1的一種特殊情況,如果
所對應(yīng)的編碼級別為表示精定位的第二編碼級別,則解碼方式三可等效地表示為 解碼后的水平方向角度信息
同理,垂直方向角度信息編碼后的結(jié)果
所對應(yīng)的解碼過程也是如此。
而且,解碼方式三的基本原理與編碼方式三中更新過程的基本原理相同,因而編碼方式三中的更新過程可看作是與解碼端的同步。
本發(fā)明實(shí)施例中的差分分級編碼方式相比于編碼方式一和編碼方式二,具有如下優(yōu)勢 當(dāng)某個聲源發(fā)聲并移動時,短時間間隔內(nèi)的移動角度通常都較小,即通常會采用基于第二級角度精度θ的第二編碼級別實(shí)現(xiàn)精定位,而只有當(dāng)另一個位置的聲源發(fā)聲、并取代這個聲源時,才會發(fā)生大角度的跳轉(zhuǎn),并采用基于
度的第一級角度精度的第一編碼級別。因此,在絕大多數(shù)情況下仍能夠在解碼端立即獲得準(zhǔn)確的角度信息,即便發(fā)生上述大角度的跳轉(zhuǎn)、并采用第一編碼級別實(shí)現(xiàn)粗定位,但后續(xù)只需要1幀的精定位即可實(shí)現(xiàn)收斂,收斂速度明顯快于編碼方式二。
假設(shè)P取30、Q取5、第二級角度精度θ取1,并假設(shè) 在0時刻,聲源的水平方向角度α(0)=110、垂直方向角度β(0)=10; 在1時刻,聲源位置移動,水平方向角度α(1)=115、垂直方向角度β(1)=5。
對應(yīng)編解碼方式三的編解碼過程可以表示為 第一幀 在編碼端,其前一幀的水平方向角度和垂直方向角度均為初始狀態(tài)0,則delta_α(0)=(α(0)-0)rem360=110,delta_β(0)=(β(0)-0)rem360=10; 由于|delta_α(0)|>16、且360-|delta_α(0)|>16, 因此Level_α(0)=1,
并更新
由于|delta_β(0)|<16,因此Level_β(0)=0,
所以對于第一幀中頭語法結(jié)構(gòu)中添加的編碼結(jié)果為 { { 1; 01001; 0; 01010; } } 在解碼端,從第0幀的頭語法結(jié)構(gòu)中可以提取出 Level_α(0)=1,
Level_β(0)=1,
因而解碼得到α(0)1=(0+12×9)rem(360)=108;β(0)′=(0+10)rem(360)=10。
可見,由于對水平方向的delta_α(0)采用了表示粗定位的第一編碼級別,因而解碼端得到的水平方向角度α(0)′存在-2度的誤差。
第二幀 在編碼端,其前一幀的水平方向角度α(0)=108、而不是更新前的原始值110,而垂直方向角度β(0)=10,則 delta_α(1)=(115-108)rem360=7,delta_β(1)=(5-10)rem360=-5; 由于|delta_α(1)|<16,因此Level_α(1)=0,
由于|delta_β(1)|<16,因此Level_β(1)=0,
所以對于第二幀中頭語法結(jié)構(gòu)中添加的編碼結(jié)果為 { {0;00111; 0; 10101; } } 在解碼端,從第二幀的頭語法結(jié)構(gòu)中可以提取出 Level_α(1)=0,
Level_β(1)=0,
因而解碼得到α(1)′=(108+7)rem(360)=115;β(1)′=(10-5)rem(360)=5。
可見,由于在第一幀編碼時,更新水平方向角度α(0)=108、而不是保持其原始值110,因而在粗定位之后再利用第二幀這一幀的精定位調(diào)整,即獲得了準(zhǔn)確的水平方向角度α(1)′,并將α(0)′存在-2度的誤差消除。
而且,對于±2Q-1角度范圍之外的角度,編碼方式一需要的比特?cái)?shù)大于Q,因而差分分級編碼方式相比于編碼方式一能夠減少碼流所需帶寬。
可選地,考慮到第一編碼級別后的角度信息并不準(zhǔn)確,解碼端可以將其認(rèn)為是一個過渡結(jié)果并丟棄,并可等到出現(xiàn)其他碼字時,再獲取準(zhǔn)確的角度信息。
以上是對本實(shí)施例中在碼流中嵌入聲源定向信息的方法、以及聲源定向信息的各種具體編解碼方法的詳細(xì)說明,下面,再對本發(fā)明實(shí)施例的壓縮編解碼方法和系統(tǒng)進(jìn)行詳細(xì)說明。
圖2為本發(fā)明實(shí)施例中壓縮編解碼方法的示例性流程圖。如圖2所示,本實(shí)施例中的壓縮編解碼方法包括 作為壓縮編碼方法的步驟201,對音頻單聲道數(shù)據(jù)進(jìn)行壓縮編碼以形成碼流,并在碼流中各幀的頭語法結(jié)構(gòu)內(nèi)添加碼流信息的同時,還將聲源定向信息編碼后添加至所述碼流任意一幀或多幀的頭語法結(jié)構(gòu)中。
本步驟中可采用如前所述的編碼方式一、二、三中的任一方式對聲源定向信息進(jìn)行編碼。本步驟中,還可以進(jìn)一步在頭語法結(jié)構(gòu)中添加聲源定向標(biāo)志,以表示該頭語法結(jié)構(gòu)中是否有聲源定向信息。
作為解碼方法的步驟202,從碼流中上述任意一幀或多幀的頭語法結(jié)構(gòu)內(nèi)解碼得到聲源定向信息,并利用從該碼流中各幀的頭語法結(jié)構(gòu)內(nèi)解碼得到的碼流信息,解碼得到各幀的音頻單聲道數(shù)據(jù)。
與步驟201相對應(yīng),本步驟中可采用如前所述的解碼方式一、二、三中的任一方式對聲源定向信息進(jìn)行解碼。且如果步驟201中在頭語法結(jié)構(gòu)中進(jìn)一步添加了聲源定向標(biāo)志,則本步驟中在判斷出聲源定向標(biāo)志表示頭語法結(jié)構(gòu)中有聲源定向信息后,再執(zhí)行對碼流的頭語法結(jié)構(gòu)中解碼的操作。
至此,本流程結(jié)束。
此后,由于聲源定向信息進(jìn)行編碼后被添加至了音頻單聲道數(shù)據(jù)碼流的頭語法結(jié)構(gòu)中,因而實(shí)現(xiàn)了將聲源定向信息嵌入至碼流中,以使得聲源定向信息隨碼流傳輸。如此一來,如果將上述流程應(yīng)用于監(jiān)控場景中,由監(jiān)控前端執(zhí)行步驟201、監(jiān)控后端執(zhí)行步驟202,就無需在監(jiān)控前端和監(jiān)控后端之間傳輸或存儲多聲道音頻數(shù)據(jù)的碼流,從而避免了監(jiān)控前端輸出多聲道音頻數(shù)據(jù)的碼流而使得監(jiān)控后端難以獲得準(zhǔn)確聲源定向信息的問題,而且還避免了多聲道音頻數(shù)據(jù)的碼流傳輸或存儲占用較大傳輸帶寬或存儲空間。
需要說明的是,對于頭語法結(jié)構(gòu)中還包括聲源定向標(biāo)志的情況,進(jìn)一步地,在連續(xù)多幀中的音頻單聲道數(shù)據(jù)對應(yīng)相同的聲源定向信息時,為了減少在碼流中嵌入的聲源定向信息數(shù)據(jù)量、以進(jìn)一步節(jié)省碼流傳輸帶寬,上述流程中的步驟201可以在上述連續(xù)多幀的第一幀的頭語法結(jié)構(gòu)中,將聲源定向標(biāo)志設(shè)置為表示頭語法結(jié)構(gòu)中有聲源定向信息的有效值,并在第一幀的頭語法結(jié)構(gòu)中添加壓縮編碼后的聲源定向信息,而在除第一幀之外的后續(xù)所有幀的頭語法結(jié)構(gòu)中,將聲源定向標(biāo)志設(shè)置為表示頭語法結(jié)構(gòu)中無聲源定向信息的無效值,且不將上述的聲源定向信息壓縮編碼后添加至后續(xù)所有幀的頭語法結(jié)構(gòu)中。
實(shí)際應(yīng)用中,對于編解碼方式一、二,還可以預(yù)先配置多種取值的編碼角度分辨率δ,步驟201可任選其中一種對α和β進(jìn)行壓縮編碼。此時,為了在步驟202進(jìn)行解碼時,能夠獲知步驟201所依據(jù)的編碼角度分辨率δ取值,在步驟201可以進(jìn)一步在頭語法結(jié)構(gòu)中添加對應(yīng)的編碼角度分辨率標(biāo)記,如此一來,步驟202先依據(jù)編碼角度分辨率標(biāo)記識別出步驟201所依據(jù)的編碼角度分辨率δ取值,然后再執(zhí)行后續(xù)處理。
圖3為本發(fā)明實(shí)施例中壓縮編解碼系統(tǒng)的示例性結(jié)構(gòu)圖。如圖3所示,以本實(shí)施例中的壓縮編解碼系統(tǒng)應(yīng)用于監(jiān)控系統(tǒng)為例,該壓縮編解碼系統(tǒng)包括編碼器301和解碼器302。
其中,編碼器301設(shè)置于視頻監(jiān)控系統(tǒng)的監(jiān)控前端310中,且監(jiān)控前端310中的麥克風(fēng)陣列311、麥克風(fēng)陣列算法單元312與編碼器301順序串聯(lián);解碼器302則設(shè)置于視頻監(jiān)控系統(tǒng)的監(jiān)控后端320中,并與監(jiān)控后端320中的音頻播放單元321和控制分析模塊322分別相連。
編碼器301作為編碼端,用于接收麥克風(fēng)陣列算法單元312輸出的音頻單聲道數(shù)據(jù)和聲源定向信息,并對音頻單聲道數(shù)據(jù)進(jìn)行壓縮編碼以形成碼流,在將碼流信息編碼后添加至碼流各幀的頭語法結(jié)構(gòu)內(nèi)的同時,還將聲源定向信息壓縮編碼后添加至碼流中任意一幀或多幀的頭語法結(jié)構(gòu)內(nèi)并輸出。
編碼器301輸出的碼流可直接傳輸至解碼器302、或存儲后供解碼器302獲取。
解碼器302作為解碼端,用于從來自編碼器301的碼流中的上述任意一幀或多幀的頭語法結(jié)構(gòu)內(nèi),解碼得到聲源定向信息;并利用從該碼流中各幀的頭語法結(jié)構(gòu)內(nèi)解碼得到的碼流信息,從碼流中解碼得到各幀的音頻單聲道數(shù)據(jù);得到的聲源定向信息可輸出至控制分析模塊322、供控制分析模塊322處理后分析聲源運(yùn)動軌跡、聲源跟蹤、或控制監(jiān)控系統(tǒng)中攝像頭云臺的轉(zhuǎn)動移動,得到的音頻單聲道數(shù)據(jù)則可輸出至音頻播放單元321播放。
可選地,編碼器301可進(jìn)一步用于在頭語法結(jié)構(gòu)中添加聲源定向標(biāo)志,以表示該頭語法結(jié)構(gòu)中是否有聲源定向信息;相應(yīng)地,解碼器302則進(jìn)一步用于在判斷出聲源定向標(biāo)志表示頭語法結(jié)構(gòu)中有聲源定向信息后,再執(zhí)行從碼流的頭語法結(jié)構(gòu)中解碼得到聲源定向信息的處理。
進(jìn)一步地,對于頭語法結(jié)構(gòu)中還包括聲源定向標(biāo)志的情況,且在連續(xù)多幀中的音頻單聲道數(shù)據(jù)對應(yīng)相同的聲源定向信息時,為了減少在碼流中嵌入的聲源定向信息數(shù)據(jù)量、以進(jìn)一步節(jié)省碼流傳輸帶寬,編碼器301可以在上述連續(xù)多幀的第一幀的頭語法結(jié)構(gòu)中,將聲源定向標(biāo)志設(shè)置為表示頭語法結(jié)構(gòu)中有聲源定向信息的有效值,并在第一幀的頭語法結(jié)構(gòu)中添加壓縮編碼后的聲源定向信息,而在除第一幀之外的后續(xù)所有幀的頭語法結(jié)構(gòu)中,將聲源定向標(biāo)志設(shè)置為表示頭語法結(jié)構(gòu)中無聲源定向信息的無效值,且不將上述的聲源定向信息壓縮編碼后添加至后續(xù)所有幀的頭語法結(jié)構(gòu)中。
在上述系統(tǒng)中,編碼器301可基于如前所述的編碼方式一、二、三中的任一方式對聲源定向信息進(jìn)行編碼。相應(yīng)地,編碼器301可基于如前所述的解碼方式一、二、三中的任一方式對聲源定向信息進(jìn)行解碼。
需要說明的是,實(shí)際應(yīng)用中,對于編解碼方式一、二,編碼器301內(nèi)可以預(yù)先配置多種取值的編碼角度分辨率δ,且編碼器301可任選其中一種對α和β進(jìn)行壓縮編碼。此時,就需要編碼器301進(jìn)一步在頭語法結(jié)構(gòu)中添加對應(yīng)的編碼角度分辨率標(biāo)記,這樣,解碼器302先依據(jù)頭語法結(jié)構(gòu)中的編碼角度分辨率標(biāo)記識別出編碼器301所依據(jù)的編碼角度分辨率δ取值,然后再執(zhí)行后續(xù)處理。
可見,本實(shí)施例中的音頻編解碼系統(tǒng)將聲源定向信息進(jìn)行編碼后添加至了音頻單聲道數(shù)據(jù)碼流的頭語法結(jié)構(gòu)中,因而實(shí)現(xiàn)了將聲源定向信息嵌入至碼流中,以使得聲源定向信息隨碼流傳輸。
如此一來,就無需在監(jiān)控前端和監(jiān)控后端之間傳輸或存儲多聲道音頻數(shù)據(jù)的碼流,從而避免了監(jiān)控前端輸出多聲道音頻數(shù)據(jù)的碼流而使得監(jiān)控后端難以獲得準(zhǔn)確聲源定向信息的問題,而且還避免了多聲道音頻數(shù)據(jù)的碼流傳輸或存儲占用較大傳輸帶寬或存儲空間。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種在碼流中嵌入聲源定向信息的方法,其特征在于,該方法包括
接收音頻單聲道數(shù)據(jù)、及對應(yīng)的聲源定向信息;
將所述音頻單聲道數(shù)據(jù)壓縮編碼形成碼流、并在所述碼流中各幀的頭語法結(jié)構(gòu)內(nèi)添加碼流信息的同時,還將所述聲源定向信息編碼后添加至任意一幀或多幀的所述頭語法結(jié)構(gòu)內(nèi)。
2.如權(quán)利要求1所述的方法,其特征在于,所述聲源定向信息包括水平方向和/或垂直方向上的角度信息;
且該方法將所述角度信息除以預(yù)設(shè)的編碼角度分辨率,以實(shí)現(xiàn)對所述聲源定向信息的編碼。
3.如權(quán)利要求2所述的方法,其特征在于,所述角度信息除以預(yù)設(shè)的編碼角度分辨率后,得到對應(yīng)的N比特二進(jìn)制數(shù),N為大于等于1的正整數(shù);
且該方法進(jìn)一步對所述N比特二進(jìn)制數(shù)補(bǔ)零,以使得添加有編碼后的聲源定向信息的所述頭語法結(jié)構(gòu)為整數(shù)字節(jié)。
4.如權(quán)利要求1所述的方法,其特征在于,在所述碼流中各幀的頭語法結(jié)構(gòu)內(nèi)添加碼流信息的同時,該方法進(jìn)一步包括在各幀的頭語法結(jié)構(gòu)中添加聲源定向標(biāo)志,以表示頭語法結(jié)構(gòu)中是否有編碼后的聲源定向信息。
5.如權(quán)利要求4所述的方法,其特征在于,所述碼流中連續(xù)多幀的音頻單聲道數(shù)據(jù)對應(yīng)相同的聲源定向信息,
該方法在所述連續(xù)多幀中第一幀的頭語法結(jié)構(gòu)中將聲源定向標(biāo)志設(shè)置為有效值,在所述其他幀的頭語法結(jié)構(gòu)中將聲源定向標(biāo)志設(shè)置為無效值。
6.一種從碼流中獲取聲源定向信息的方法,其特征在于,該方法包括
接收由音頻單聲道數(shù)據(jù)壓縮編碼后生成的碼流,且所述碼流中任意一幀或多幀的頭語法結(jié)構(gòu)中還包括編碼后的聲源定向信息;
從所述碼流中任意一幀或多幀的頭語法結(jié)構(gòu)中解碼得到所述聲源定向信息。
7.如權(quán)利要求6所述的方法,其特征在于,所述編碼后的聲源定向信息包括水平方向和/或垂直方向上的角度信息除以預(yù)設(shè)的編碼角度分辨率后得到的對應(yīng)的N比特二進(jìn)制數(shù),N為大于等于1的正整數(shù);
且該方法將所述N比特二進(jìn)制數(shù)乘以所述編碼角度分辨率,以實(shí)現(xiàn)從所述頭語法結(jié)構(gòu)中解碼得到所述聲源定向信息。
8.如權(quán)利要求6所述的方法,其特征在于,所述頭語法結(jié)構(gòu)中進(jìn)一步包含表示頭語法結(jié)構(gòu)中是否有編碼后的聲源定向信息的聲源定向標(biāo)志;
且該方法進(jìn)一步在判斷出所述聲源定向標(biāo)志表示頭語法結(jié)構(gòu)中有聲源定向信息后,再執(zhí)行從所述頭語法結(jié)構(gòu)中解碼得到所述聲源定向信息。
9.一種音頻編解碼方法,其特征在于,該編解碼方法包括
接收音頻單聲道數(shù)據(jù)、及對應(yīng)的聲源定向信息,然后將所述音頻單聲道數(shù)據(jù)壓縮編碼形成碼流、并在所述碼流中各幀的頭語法結(jié)構(gòu)內(nèi)添加碼流信息的同時,還將所述聲源定向信息編碼后添加至任意一幀或多幀的頭語法結(jié)構(gòu)內(nèi);
從所述任意一幀或多幀的頭語法結(jié)構(gòu)中解碼得到所述聲源定向信息,并利用從碼流中各幀的頭語法結(jié)構(gòu)中解碼得到的碼流信息,解碼得到碼流中各幀的音頻單聲道數(shù)據(jù)。
10.一種音頻編解碼系統(tǒng),包括相連的編碼端和解碼端,其特征在于,
所述編碼端,用于接收音頻單聲道數(shù)據(jù)、及對應(yīng)的聲源定向信息,然后將所述音頻單聲道數(shù)據(jù)壓縮編碼形成碼流、并在所述碼流中各幀的頭語法結(jié)構(gòu)內(nèi)添加碼流信息的同時,還將所述聲源定向信息編碼后添加至任意一幀或多幀的頭語法結(jié)構(gòu)內(nèi);
所述解碼端,用于從所述任意一幀或多幀的頭語法結(jié)構(gòu)中解碼得到所述聲源定向信息,并利用從碼流中各幀的頭語法結(jié)構(gòu)中解碼得到的碼流信息,解碼得到碼流中各幀的音頻單聲道數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種在碼流中嵌入聲源定向信息的方法、一種音頻數(shù)據(jù)的壓縮編碼方法、一種音頻數(shù)據(jù)的解碼方法、一種音頻數(shù)據(jù)的壓縮編解碼方法,以及一種音頻數(shù)據(jù)的壓縮編解碼系統(tǒng)。本發(fā)明可以將聲源定向信息進(jìn)行編碼后添加至音頻單聲道數(shù)據(jù)碼流的頭語法結(jié)構(gòu)中,從而能夠?qū)崿F(xiàn)將聲源定向信息嵌入至碼流中,以使得聲源定向信息隨碼流傳輸。如此一來,將本發(fā)明的技術(shù)方案應(yīng)用于監(jiān)控場景中,就無需在監(jiān)控前端和監(jiān)控后端之間傳輸或存儲多聲道音頻數(shù)據(jù)的碼流,從而避免了監(jiān)控前端輸出多聲道音頻數(shù)據(jù)的碼流而使得監(jiān)控后端難以獲得準(zhǔn)確聲源定向信息的問題,而且還避免了多聲道音頻數(shù)據(jù)的碼流傳輸或存儲占用較大傳輸帶寬或存儲空間。
文檔編號G10L19/00GK101819776SQ20091007893
公開日2010年9月1日 申請日期2009年2月27日 優(yōu)先權(quán)日2009年2月27日
發(fā)明者馮宇紅, 張晨, 邱嵩 申請人:北京中星微電子有限公司