本申請要求2014年4月25日提交的美國臨時(shí)專利申請No.61/984634的優(yōu)先權(quán),該美國臨時(shí)專利申請的全文通過引用并入這里。
技術(shù)領(lǐng)域
實(shí)施例總體上涉及自適應(yīng)音頻信號處理,并且更具體地涉及使用描述音頻對象的運(yùn)動的空間元數(shù)據(jù)對音頻進(jìn)行分割,以導(dǎo)出用于將對象渲染給離散的揚(yáng)聲器通道的下混矩陣。
背景技術(shù):
新的專業(yè)和消費(fèi)級視聽(AV)系統(tǒng)(如的AtmosTM系統(tǒng))已被開發(fā),以使用包括音頻床(通道)和音頻對象兩者的格式來渲染混合音頻內(nèi)容。音頻床指的是要在預(yù)定義的、固定的揚(yáng)聲器位置處被再現(xiàn)的音頻通道(例如,5.1或7.1環(huán)繞),而音頻對象指的是在定義的持續(xù)時(shí)間上存在并具有描述各對象的位置、速度和大小(作為例子)的空間信息的單獨(dú)的音頻元素。在發(fā)送過程中,床和對象可以被分別發(fā)送,然后被空間再現(xiàn)系統(tǒng)使用以重新創(chuàng)建使用位于已知物理位置的可變數(shù)目的揚(yáng)聲器的藝術(shù)意圖?;趧?chuàng)作系統(tǒng)的能力,可能有數(shù)十甚至上百個(gè)單獨(dú)的音頻對象(靜態(tài)和/或時(shí)變的),該音頻對象在渲染期間被組合以創(chuàng)建空間上變化多樣和身臨其境的音頻體驗(yàn)。在一個(gè)實(shí)施例中,由系統(tǒng)處理的音頻可包括基于通道的音頻、基于對象的音頻、或基于對象和通道的音頻。音頻包括指示音頻被如何渲染以便在特定設(shè)備和收聽環(huán)境上回放的元數(shù)據(jù)或者與該元數(shù)據(jù)相關(guān)聯(lián)。一般而言,術(shù)語“混合音頻”或“自適應(yīng)音頻”被用來指的是基于通道的和/或基于對象的音頻信號加上元數(shù)據(jù),該元數(shù)據(jù)通過使用其中對象的位置被編碼為空間中的三維位置的音頻流加元數(shù)據(jù)來渲染音頻信號。
從而,自適應(yīng)音頻系統(tǒng)將聲音場景表示為一組音頻對象,其中每個(gè)對象包含指示聲源的位置的時(shí)變元數(shù)據(jù)以及音頻信號(波形)。通過傳統(tǒng)揚(yáng)聲器設(shè)置(諸如7.1布置(或其它環(huán)繞聲格式))的回放是通過將對象渲染給一組揚(yáng)聲器饋送來實(shí)現(xiàn)的。渲染的過程主要(或完全)包括在每個(gè)時(shí)刻將空間元數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的增益矩陣,該增益矩陣表示每個(gè)對象饋送有多少到特定的揚(yáng)聲器。由此,在時(shí)間“t”(t)渲染“N”個(gè)音頻對象到“M”個(gè)揚(yáng)聲器可以由長度“N”的向量x(t)乘以“M×N”矩陣A(t)來表示,該向量包含來自各對象的在時(shí)間t的音頻樣本,該矩陣A(t)是通過在時(shí)間t適當(dāng)解釋相關(guān)聯(lián)的位置元數(shù)據(jù)(以及任何其他元數(shù)據(jù),如對象增益)而構(gòu)成的。所得到的在時(shí)間t的揚(yáng)聲器饋送的樣本由向量y(t)來表示。這在下式1中示出:
上式1的矩陣方程表示一種自適應(yīng)音頻(例如,Atmos)渲染觀點(diǎn),但它還可以表示一組通用的情境,其中一組音頻樣本通過線性操作被轉(zhuǎn)換為另一組音頻樣本。在極端的情況下,A(t)是靜態(tài)矩陣,并可能表示一組音頻通道x(t)到較少的一組通道y(t)的常規(guī)下混。例如,x(t)可能是在Ambisonics(高保真立體聲)格式中描述空間場景的一組音頻通道,并且到揚(yáng)聲器饋送y(t)的轉(zhuǎn)換可被規(guī)定為乘以靜態(tài)下混矩陣。作為替代,x(t)可以是用于7.1通道布局的一組揚(yáng)聲器饋送,并且到5.1通道布局的轉(zhuǎn)換可以被規(guī)定為乘以靜態(tài)下混矩陣。
為了盡可能準(zhǔn)確地提供音頻再現(xiàn),自適應(yīng)音頻系統(tǒng)常常與高清晰度的音頻編解碼器(編碼器-解碼器)系統(tǒng)(諸如Dolby TrueHD)一起使用。作為這種編解碼器的一個(gè)例子,Dolby TrueHD是支持音頻信號的無損和可擴(kuò)展發(fā)送的音頻編解碼器。源音頻被編碼成子流的層次結(jié)構(gòu),其中只有子流的子集需要被從比特流檢索和解碼,以便獲得空間場景的較低維度(或下混)的表示,并且當(dāng)所有的子流被解碼時(shí),所得的音頻與源音頻是相同的。盡管實(shí)施例可相對于TrueHD系統(tǒng)被描述并示出,但應(yīng)當(dāng)注意的是,任何其他類似的HD音頻編解碼系統(tǒng)也可以使用。因此,術(shù)語“TrueHD”意圖包括所有可能的HD類型的編解碼器。Dolby TrueHD以及其所基于的子午線無損壓縮(MLP)技術(shù)是眾所周知的。TrueHD和MLP的各方面在2003年8月26日發(fā)布的并且被轉(zhuǎn)讓給Dloby Laboratories Licensing Corp.的美國專利6611212中、以及在Gerzon等人的標(biāo)題為“The MLP Lossless Compression System for PCM Audio”,J.AES,Vol.52,No.3,pp.243-260(2004年3月)中被描述。
TrueHD支持下混矩陣的規(guī)范。在典型的使用中,7.1通道音頻節(jié)目的內(nèi)容創(chuàng)作者指定了將7.1通道節(jié)目下混到5.1通道混合的靜態(tài)矩陣、和下混該5.1通道下混到雙通道(立體聲)下混的另一個(gè)靜態(tài)矩陣。每個(gè)靜態(tài)下混矩陣可被轉(zhuǎn)換為下混矩陣的序列(該序列中的每個(gè)矩陣用于下混節(jié)目中的不同的間隔),以便實(shí)現(xiàn)剪裁保護(hù)(clip-protection)。然而,序列中的每個(gè)矩陣被發(fā)送(或確定序列中的每個(gè)矩陣的元數(shù)據(jù)被發(fā)送)到解碼器,并且解碼器不對任何以前指定的下混矩陣執(zhí)行插值來確定節(jié)目的下混矩陣的序列中的后續(xù)矩陣。
TrueHD比特流承載一組輸出本原矩陣和通道分配,該組輸出本原矩陣和通道分配應(yīng)用于內(nèi)部通道的適當(dāng)子集來導(dǎo)出所需的下混/無損表示。在TrueHD編碼器處,本原矩陣被設(shè)計(jì)為使得指定的下混矩陣可以通過輸入通道分配、輸入本原矩陣、輸出本原矩陣和輸出通道分配的級聯(lián)來實(shí)現(xiàn)(或近似實(shí)現(xiàn))。如果指定的矩陣是靜態(tài)的,即,時(shí)不變的,也可以僅一次設(shè)計(jì)本原矩陣和通道分配,并在整個(gè)音頻信號中采用相同的分解。然而,當(dāng)希望經(jīng)由TrueHD發(fā)送自適應(yīng)音頻內(nèi)容,使得該比特流是分層的并且支持通過僅訪問內(nèi)部通道的適當(dāng)子集導(dǎo)出數(shù)個(gè)下混時(shí),指定的下混矩陣隨著對象移動而隨時(shí)間演化。在這種情況下,需要時(shí)變分解,并且一組通道分配將在所有時(shí)間都不工作(在給定時(shí)間的一組通道分配對應(yīng)于在該時(shí)間的比特流中的所有子流的通道分配)。
TrueHD比特流中的“重啟間隔(restart interval)”是音頻的一個(gè)片段,該片段已被編碼以使得其可以獨(dú)立于在其之前或之后出現(xiàn)的任何片段被解碼,也就是說,它是一個(gè)可能的隨機(jī)訪問點(diǎn)。TrueHD編碼器將音頻信號劃分為連續(xù)的子段,每個(gè)子段被編碼為重啟間隔。重啟間隔一般被約束為長度是8至128訪問單位(access unit)(AUS)。訪問單元(針對特定的音頻采樣頻率定義的)是具有固定數(shù)量的連續(xù)樣本的一個(gè)片段。在48kHz的采樣頻率下,TrueHD AU的長度為40個(gè)樣本,或者跨越0.833毫秒。每個(gè)子流的通道分配可依照比特流語法中的約束對于每個(gè)重啟間隔被僅指定一次。這樣做的理由是將與可類似分解的下混矩陣相關(guān)聯(lián)的音頻分組到一個(gè)重啟間隔內(nèi),并且受益于與(在重啟內(nèi))每當(dāng)下混矩陣被更新時(shí)不必發(fā)送通道分配相關(guān)聯(lián)的比特流節(jié)省。
在傳統(tǒng)TrueHD系統(tǒng)中,下混規(guī)范一般靜態(tài)的,并且因此可以設(shè)想一個(gè)原型分解/通道分配可被采用以用于編碼音頻信號的整個(gè)長度。因此,重啟間隔可被形成為盡可能大(128AUs),和音頻信號被均勻地分成此最大尺寸的重啟間隔。這在自適應(yīng)音頻內(nèi)容必須經(jīng)由TrueHD發(fā)送的情況下這不再可行,因?yàn)橄禄炀仃囀莿討B(tài)的。換句話說,必須檢查下混矩陣的隨時(shí)間的演化和并且將音頻信號劃分成間隔(在該間隔上,單個(gè)通道分配可被采用以在整個(gè)子段中對指定的下混矩陣進(jìn)行分解)。因此,有利的是在考慮下混矩陣軌跡的動態(tài)的情況下將音頻分段為具有可能變化的長度的重啟間隔。
目前的系統(tǒng)在分割音頻時(shí)也沒有使用自適應(yīng)音頻內(nèi)容中的對象的空間線索。因此,還有利的是基于與自適應(yīng)音頻對象相關(guān)聯(lián)的并且描述了這些對象的持續(xù)運(yùn)動的空間元數(shù)據(jù)將音頻分段,以便通過分立揚(yáng)聲器通道進(jìn)行渲染。
在背景部分中所討論的主題不應(yīng)該僅僅由于其在背景技術(shù)部分提到而被認(rèn)為是現(xiàn)有技術(shù)。同樣地,不應(yīng)假定在背景技術(shù)部分提到的或與背景部分的主題相關(guān)聯(lián)的問題已經(jīng)在現(xiàn)有技術(shù)中被認(rèn)識到。在背景部分中的主題只是表示不同的方法,其本身也可以是發(fā)明。Dolby、Dolby TrueHD和Atmos為Dolby Laboratories Licensing Corporation的注冊商標(biāo)。
技術(shù)實(shí)現(xiàn)要素:
實(shí)施例針對一種方法,該方法通過接收N個(gè)對象以及相關(guān)聯(lián)的描述這些對象的持續(xù)運(yùn)動的空間元數(shù)據(jù);以及基于所述空間元數(shù)據(jù)將所述音頻劃分成段,來編碼自適應(yīng)音頻??臻g元數(shù)據(jù)定義了時(shí)變矩陣軌跡,所述時(shí)變矩陣軌跡包括用于將N個(gè)對象渲染到M輸出通道的在不同時(shí)刻的矩陣的序列,并且該劃分步驟包括將矩陣的序列分成多個(gè)段。該方法進(jìn)一步包括導(dǎo)出用于序列中的矩陣的矩陣分解,以及配置所述多個(gè)段以有助于包括矩陣分解參數(shù)的自適應(yīng)音頻的一個(gè)或多個(gè)特性的編碼。該導(dǎo)出矩陣分解的步驟包括將序列中的矩陣分解為本原矩陣和通道分配,并且其中所述矩陣分解參數(shù)包括通道分配、本原矩陣通道序列、以及關(guān)于本原矩陣的插值決定。
該方法進(jìn)一步包括配置分割矩陣的序列的所述多個(gè)段以使得一個(gè)或多個(gè)分解參數(shù)能夠被在所述多個(gè)段上保持恒定;或者配置分割矩陣的序列的多個(gè)段,以使得在一個(gè)或多個(gè)分解參數(shù)中的任何變化的影響關(guān)于包括壓縮效率、輸出音頻中的連續(xù)性、以及不連續(xù)性的可聽度的一個(gè)或多個(gè)性能特性最小。
該方法的實(shí)施例還包括接收在t1的矩陣A(t1)的一個(gè)或多個(gè)分解參數(shù),并且在強(qiáng)制使得分解參數(shù)與在時(shí)間t1的分解參數(shù)相同的同時(shí)嘗試執(zhí)行在t2的相鄰矩陣A(t2)到本原矩陣和通道分配的分解,其中如果所產(chǎn)生的本原矩陣不滿足一個(gè)或多個(gè)標(biāo)準(zhǔn),則嘗試的分解被認(rèn)為是失敗的,否則嘗試的分解被認(rèn)為是成功的。定義分解失敗的標(biāo)準(zhǔn)包括以下中的一個(gè)或多個(gè):從分解得到的本原矩陣具有其值超過由結(jié)合所述方法的信號處理系統(tǒng)規(guī)定的限值的系數(shù);作為本原矩陣和通道分配的乘積獲得的所實(shí)現(xiàn)的矩陣與指定的矩陣A(t2)的差別超過定義的閾值,其中所述差別是由至少依賴于所實(shí)現(xiàn)的矩陣和指定的矩陣的誤差度量測量的;并且所述編碼方法包含將本原矩陣和通道分配中的一個(gè)或多個(gè)應(yīng)用于所述輸入音頻的時(shí)間段,并且作為結(jié)果的峰值音頻信號的測度在分解例程中被確定,并且所述測度超過可在執(zhí)行所述方法的信號處理系統(tǒng)中表示的最大音頻樣本值。該誤差度量是所實(shí)現(xiàn)的矩陣和指定的矩陣A(t2)的對應(yīng)元素之間的最大絕對差。
根據(jù)該方法,一些本原矩陣被標(biāo)記為輸入本原矩陣,并且輸入本原矩陣的積矩陣被計(jì)算,并且對于積矩陣的一個(gè)或多個(gè)行確定峰值信號的值,其中一個(gè)行的峰值信號的值是積矩陣的該行中的元素的絕對值的總和,并且作為結(jié)果的峰值音頻信號的測度被計(jì)算為這些值中的一個(gè)或多個(gè)的最大值。在分解失敗的情況下,分段邊界在時(shí)間t1或t2被插入。在A(t2)的分解是成功的情況下,并且其中,本原矩陣中的一些是輸入本原矩陣,通道分配是輸入通道分配,在t1和t2的輸入本原矩陣的本原矩陣通道序列以及在t1和t2的輸入通道分配是相同的,并且插值斜率參數(shù)被確定以用于在t1和t2之間對輸入本原矩陣進(jìn)行插值。
在該方法的實(shí)施例中,A(t1)和A(t2)是在時(shí)刻t1和t2定義的矩陣中的矩陣,并且該方法進(jìn)一步包括:將A(t1)和A(t2)兩者分解為本原矩陣和通道分配;將在t1與t2的本原矩陣中的至少一些標(biāo)識為輸出本原矩陣;在t1和t2之間插值本原矩陣中的一個(gè)或多個(gè);在所述編碼方法中通過由插值將本原矩陣應(yīng)用于輸入音頻來導(dǎo)出N個(gè)輸入通道的M通道下混;確定所導(dǎo)出的M通道下混是否剪裁;以及在t1和/或t2修改輸出本原矩陣,從而將修改的本原矩陣應(yīng)用于N個(gè)輸入通道得到了不剪裁的M通道下混。
在實(shí)施例中,本原矩陣和通道分配被編碼在高清晰度音頻格式的比特流中,該比特流在音頻處理系統(tǒng)的編碼器和解碼器之間發(fā)送,所述音頻處理系統(tǒng)用于將N個(gè)對象渲染到對應(yīng)于M個(gè)通道的揚(yáng)聲器饋送。該方法進(jìn)一步包括在解碼器中解碼所述比特流,以將所述本原矩陣和通道分配應(yīng)用于一組內(nèi)部通道以導(dǎo)出輸入音頻節(jié)目的無損表示和一個(gè)或多個(gè)下混表示,并且其中,所述內(nèi)部通道位于音頻處理系統(tǒng)中的編碼器和解碼器的內(nèi)部。該子段是可具有相同或不同的時(shí)間段的重啟間隔。
實(shí)施例進(jìn)一步針對執(zhí)行或者體現(xiàn)執(zhí)行或者實(shí)現(xiàn)上述方法行為的處理命令的系統(tǒng)和制品。
援引并入
在本說明書中提及的每個(gè)出版物、專利和/或?qū)@暾堃匀缤總€(gè)單獨(dú)的出版物和/或?qū)@暾埍痪唧w和單獨(dú)地表明通過引用并入那樣的程度通過引用整體并入這里。
附圖說明
在以下附圖中,同樣的附圖標(biāo)記被用來指代同樣的元件。雖然下面的附圖描繪了各種示例,但是一個(gè)或多個(gè)實(shí)現(xiàn)不限于在附圖中描述的示例。
圖1示出用于特定下混場景的高清晰度的音頻編碼器和解碼器中的矩陣運(yùn)算的示意圖。
圖2示出根據(jù)一些實(shí)施例的將自適應(yīng)音頻內(nèi)容的N個(gè)通道混合成TrueHD比特流的系統(tǒng)。
圖3是根據(jù)實(shí)施例的用于內(nèi)插矩陣化方案中的動態(tài)對象的示例。
圖4是示出根據(jù)實(shí)施例的用于時(shí)變對象的矩陣更新的示圖,其中,在時(shí)間t2有連續(xù)的內(nèi)部通道,并在時(shí)間t2有連續(xù)的輸出表示,而沒有可聽/可見的假象。
圖5是示出根據(jù)實(shí)施例的用于時(shí)變對象的矩陣更新的示圖,其中,由于輸入本原矩陣中的不連續(xù)性而在t2有不連續(xù)的內(nèi)部通道,并且在時(shí)間t2有連續(xù)的輸出表示,而沒有可聽/可見的假象,但是,輸入矩陣中的不連續(xù)性被輸出矩陣中的不連續(xù)性補(bǔ)償。
圖6示出了根據(jù)實(shí)施例的包括編碼器和解碼器的自適應(yīng)音頻TrueHD系統(tǒng)的概括。
圖7是示出了根據(jù)實(shí)施例的產(chǎn)生輸出比特流以用于音頻分段處理的編碼器處理的流程圖。
圖8是根據(jù)實(shí)施例的音頻數(shù)據(jù)處理系統(tǒng)的框圖,該音頻數(shù)據(jù)處理系統(tǒng)包括執(zhí)行音頻分段和編碼處理、并且通過輸送子系統(tǒng)耦合到解碼器的編碼器。
具體實(shí)施方式
描述了用于在考慮了下混矩陣軌跡的動態(tài)的同時(shí)將自適應(yīng)音頻內(nèi)容分割為具有可能變化的長度的重啟間隔的系統(tǒng)和方法。本文所描述的一個(gè)或多個(gè)實(shí)施例的方面可以在音頻或視聽(AV)系統(tǒng)中實(shí)現(xiàn),該系統(tǒng)在包括執(zhí)行軟件指令的一個(gè)或多個(gè)計(jì)算機(jī)或處理裝置的混合、渲染和回放系統(tǒng)中處理源音頻信息。任何所述實(shí)施例可以單獨(dú)使用,或以任意組合彼此一起使用。雖然各種實(shí)施例可能已經(jīng)被可在說明書中一個(gè)或多個(gè)位置處被討論或提及的現(xiàn)有技術(shù)的各種缺陷激發(fā),但是實(shí)施例并不一定解決任何這些缺陷。換句話說,不同的實(shí)施例可以解決可能在本說明書中討論的不同的缺陷。一些實(shí)施例可僅部分地解決可在本說明書中討論的一些缺陷或僅一個(gè)缺陷,并且一些實(shí)施例可能不解決這些缺陷。
實(shí)施例涉及通過使用含有下混矩陣和通道分配的高清晰度音頻(例如,TrueHD)格式發(fā)送自適應(yīng)音頻內(nèi)容的編碼器/解碼器系統(tǒng)中使用的音頻分段和編碼處理。圖1示出用于具有被封裝成兩個(gè)子流104和106的三個(gè)輸入通道的輸入音頻信號的下混系統(tǒng)的示例,其中,第一子流足以檢索本原三個(gè)通道的雙通道下混,并且這兩個(gè)子流一起使得能夠無損地檢索本原的三通道音頻。如圖1所示,編碼器101和解碼器側(cè)103對于輸入流102執(zhí)行矩陣化運(yùn)算,輸入流102包含分別產(chǎn)生無損或下混輸出104和106的被指示為子流1和子流0的兩個(gè)子流。子流1包括矩陣序列P0,P1,…,Pn和通道分配矩陣ChAssign1;和子流0包含矩陣序列Q0,Q1,…,Qn和通道分配矩陣ChAssign0。子流1再現(xiàn)本原輸入音頻的無損版本作為輸出106,以及子流0產(chǎn)生下混表示106。下混解碼器可以僅解碼子流0。
在編碼器101,三個(gè)輸入通道通過(輸入)矩陣化運(yùn)算的序列被轉(zhuǎn)換成三個(gè)內(nèi)部通道(索引0,1和2)。解碼器103通過應(yīng)用另外的(輸出)矩陣化運(yùn)算的序列將內(nèi)部通道轉(zhuǎn)換為所需要的下混106或無損104表示。簡單地說,音頻(例如,TrueHD)比特流中包含這三個(gè)內(nèi)部通道以及一組輸出矩陣的表示,各輸出矩陣對應(yīng)于各子流。例如,子流0包含輸出矩陣Q0,Q1的集合,輸出矩陣Q0,Q1中的每一個(gè)尺寸為2*2和乘以前兩個(gè)內(nèi)部通道(ch0和ch1)的音頻樣本的向量。這些與在這里由名為“ChAssign0”的框表示的相應(yīng)的通道置換(等同于乘以置換矩陣)組合,得到所需要的三個(gè)本原音頻通道中的兩個(gè)通道下混。在編碼器和解碼器處的矩陣化運(yùn)算的序列/乘積等同于將三個(gè)輸入音頻通道變換到下混的所需的下混矩陣規(guī)范。
子流1的輸出矩陣(P0,P1,…,Pn)連同相應(yīng)的通道置換(ChAssignl)一起導(dǎo)致將內(nèi)部通道轉(zhuǎn)換回輸入三通道音頻。為了使輸出的三通道音頻與輸入的三通道音頻完全相同(系統(tǒng)的無損特性),在編碼器處的矩陣化運(yùn)算應(yīng)當(dāng)正好(包括量化效應(yīng))為比特流中的無損子流的矩陣化運(yùn)算的逆。因此,對于系統(tǒng)100,在編碼器處的矩陣化運(yùn)算已經(jīng)描述為在相反的序列中的逆矩陣此外,請注意,編碼器通過在編碼器側(cè)的“InvChAssignl”(逆通道分配1)應(yīng)用在解碼器處的通道置換的逆。對于圖1的示例系統(tǒng)100,術(shù)語“子流”被用于包括對應(yīng)于給定表示(例如,下混或無損表示)的通道分配和矩陣。在實(shí)際應(yīng)用中,子流0可具有前兩個(gè)內(nèi)部通道(0:1)中的樣本的表示,而子流1將具有第三內(nèi)部通道(0:2)中的樣本的表示。從而,解碼對應(yīng)于子流1的表示(無損表示)的解碼器將必須將這兩個(gè)子流進(jìn)行解碼。然而,僅產(chǎn)生立體聲下混的解碼器可以單獨(dú)解碼子流0。在這種方式下,TrueHD格式可按所得到的表示的大小擴(kuò)展或分層。
給定下混矩陣規(guī)范(例如,在這種情況下,它可能是尺寸為2*3的靜態(tài)規(guī)范A),編碼器的目標(biāo)是設(shè)計(jì)輸出矩陣(因此輸入矩陣),并輸出通道分配(因此輸入通道分配),從而使所得到的內(nèi)部音頻是分層次的,即,前兩個(gè)內(nèi)部通道足以導(dǎo)出雙通道表示,等等;并且最頂部的子流的矩陣是完全可逆的,使得輸入音頻完全可恢復(fù)。然而,應(yīng)該指出的是,計(jì)算系統(tǒng)以有限的精度進(jìn)行計(jì)算以及對任意可逆矩陣進(jìn)行精確求逆經(jīng)常需要非常大的精度計(jì)算。因此,使用TrueHD編解碼器系統(tǒng)的下混操作一般需要大量的比特來表示矩陣系數(shù)。
如前所述,TrueHD(和其他可能的HD音頻格式)嘗試通過將任意可逆矩陣約束為本原矩陣以使得矩陣求逆的精度要求最小。尺寸為N*N的本原矩陣P具有下式2中所示的形式:
除了一個(gè)行(非平凡行)之外,此本原矩陣與尺寸為N*N的單位矩陣相同。當(dāng)本原矩陣(例如P)操作于或者乘以諸如x(t)的向量,則結(jié)果是乘積Px(t),除了1之外所有元素都與x(t)正好相同的另一N維向量。因此每個(gè)本原矩陣可以與唯一的通道相關(guān)聯(lián),操縱該通道或者對于該通道操作。本原矩陣僅改變音頻節(jié)目通道的樣本的集合(向量)中的一個(gè)通道,和單位本原矩陣也由于對角線上的單位值而無損可逆。
如果α2=1(導(dǎo)致P中的單位對角線),則可以看出P的逆正如下式3中所示:
如果圖1的解碼器中的本原矩陣P0,P1,…,Pn具有單位對角線,則編碼器側(cè)的矩陣化運(yùn)算和解碼器側(cè)的P0,P1,…,Pn的序列可以通過有限精度電路被實(shí)現(xiàn)。如果α2=-1,則可以看到,P的逆是本身,并且還在此情況下,該逆可以通過有限精度電路來實(shí)現(xiàn)。本描述將把非平凡行與對角線共用的元素為1或-1的本原矩陣稱為本原矩陣。因此,單位本原矩陣的對角線由全正1(+1)、或者全負(fù)1、(-1)、或者一些正1和一些負(fù)1構(gòu)成。盡管單位本原矩陣指的是其非平凡行具有對角元素+1的本原矩陣,但是文中(包括在權(quán)利要求中)對于單位本原矩陣的所有引用意圖覆蓋更一般的情況,其中單位本原矩陣可具有非平凡行,該非平凡行與對角線的共用元素為+1或-1。
通道分配或通道置換指的是通道的重新排序。N個(gè)通道的通道分配可以由N個(gè)索引的向量cN=[c0 c1 … cN-1],ci∈{0,1,...,N-1}以及ci≠cj if i≠j來表示。換句話說,通道分配向量含有依照一些特定的順序的元素0,1,2,...,N-1,沒有重復(fù)的元素。向量指示原始通道將會被重新映射到位置ci。很明顯,在時(shí)間t將通道分配cN應(yīng)用于一組N個(gè)通道可以由與N*N置換矩陣[1]CN的乘法,該置換矩陣的列i是具有N個(gè)元素的向量,其中除了在行ci中為1之外全部為0。
例如,被應(yīng)用于一對通道Ch0和Ch1的2元素的通道分配矢量[10]暗指在重新映射之后的第一通道Ch0'是原始Ch1,而在重新映射之后的第一通道Ch1'是原始Ch0。這可通過二維置換矩陣表示,該二維置換矩陣應(yīng)用于向量時(shí)得到向量在向量中,x0是Ch0的樣本而x1是Ch1的樣本,矢量中的元素是原始向量的置換版本。
應(yīng)注意,置換矩陣的逆存在,是獨(dú)特的,并且其本身是置換矩陣。事實(shí)上,置換矩陣的逆是其轉(zhuǎn)置。換句話說,通道分配cN的逆通道分配是唯一的通道分配d ... d0 d1 … dN-1],其中如果cj=i,則di=j(luò)使得dN在應(yīng)用于置換的通道時(shí)恢復(fù)了通道的原始順序。
作為示例,考慮圖1A的系統(tǒng)100,其中編碼器被賦予2*3下混規(guī)范:
使得
其中,dmx0和dmx1是解碼器的輸出通道,ch0,、ch1和ch2為輸入通道(例如,對象)。在這種情況下,編碼器可能會發(fā)現(xiàn)三個(gè)單位本原矩陣(如下所示)以及給定的輸入通道分配d3=[2 0 1],該給定的輸入通道分配限定了置換D3,從而序列的乘積如下:
如在上面的例子中可以看出,該乘積的前兩行正好是指定的下混矩陣A。換句話說,如果這些矩陣的序列被應(yīng)用于三個(gè)輸入音頻通道(ch0,、ch1和ch2),則該系統(tǒng)產(chǎn)生三個(gè)內(nèi)部通道(ch0’,、ch1’和ch2’),前兩個(gè)通道正好與所希望的2通道下混相同。在這種情況下,編碼器可以選擇下混子流的輸出本原矩陣Q0、Q1為單位矩陣,并且選擇該兩通道分配(圖1中的ChAssign0)為單位分配[0 1],即,解碼器將簡單將前兩個(gè)內(nèi)部通道表示為該雙通道下混。將應(yīng)用由P0,P1,P2給出的本原矩陣的逆應(yīng)用于(ch0’,、ch1’和ch2’),然后應(yīng)用由c3=[1 2 0]給出的通道分配d3的逆以獲得原始輸入音頻通道(ch0,、ch1和ch2)。此示例表示第一分解方法,被稱為“分解1”。
在被稱為“分解2”的不同的分解中,該系統(tǒng)可以使用兩個(gè)單位本原矩陣(如下所示)和定義了置換D3的輸入通道分配d3=[2 1 0],使得該序列的乘積如下:
在這種情況下,應(yīng)注意,所需的規(guī)范A可以通過上述序列的前兩行與被選擇為Q0、Q1的兩個(gè)通道子流的輸出本原矩陣相乘來實(shí)現(xiàn),如下:
不同于原始分解1中,編碼器通過設(shè)計(jì)輸入和輸出本原矩陣的組合來實(shí)現(xiàn)所需的下混規(guī)范。編碼器將輸入的本原矩陣(和通道分配d3)應(yīng)用于輸入音頻通道,以創(chuàng)建在比特流中發(fā)送的一組內(nèi)部通道。在解碼器處,內(nèi)部通道被重構(gòu),并且輸出矩陣Q0、Q1被應(yīng)用以獲得所需的下混音頻。如果需要無損原始音頻,由P0、P1給定的本原矩陣的逆被應(yīng)用于內(nèi)部通道,然后是由c3=[2 1 0]給定的通道分配d3的逆,以獲得原始輸入音頻通道。
在上述第一和第二分解兩者中,該系統(tǒng)還沒有采用對于下混子流使用輸出通道的靈活性,這是在所需的規(guī)范A的分解中可被利用的另一自由度。因此,不同分解策略可被使用以實(shí)現(xiàn)相同規(guī)范A。
上述本原矩陣技術(shù)的各方面可被用于混合(上混或下混)TrueHD內(nèi)容以便在不同的收聽環(huán)境中渲染。實(shí)施例針對如下的系統(tǒng)和方法,使得能夠通過子流結(jié)構(gòu)經(jīng)由TrueHD發(fā)送自適應(yīng)音頻內(nèi)容,該子流結(jié)構(gòu)支持由傳統(tǒng)設(shè)備解碼一些標(biāo)準(zhǔn)下混如2通道,5.1通道,7.1通道,而對于解碼無損自適應(yīng)音頻的支持可僅在新的解碼設(shè)備中實(shí)現(xiàn)。
應(yīng)當(dāng)指出的是,傳統(tǒng)的設(shè)備為任何如下這樣的設(shè)備,該設(shè)備解碼已經(jīng)嵌入TrueHD中的下混表示,而不是解碼無損對象并然后將他們重新渲染到所需的下混配置。該設(shè)備可以實(shí)際上是不能對無損對象進(jìn)行解碼的較舊的設(shè)備,或者它可以是有意選擇以對下混表示進(jìn)行解碼的設(shè)備。傳統(tǒng)設(shè)備可能已被典型地設(shè)計(jì)成接收為較舊的或傳統(tǒng)的音頻格式的內(nèi)容。在Dolby TrueHD中,傳統(tǒng)內(nèi)容的特征在于結(jié)構(gòu)良好的時(shí)不變下混矩陣,具有至多八個(gè)輸入通道,例如,標(biāo)準(zhǔn)的7.1通道到5.1通道降混矩陣。在這樣的情況下,矩陣分解是靜態(tài)的,并且需要由編碼器對整個(gè)音頻信號僅確定一次。另一方面,自適應(yīng)音頻內(nèi)容的特征往往在于連續(xù)變化的下混矩陣,該下混矩陣也可以非常任意,并輸入通道/對象的數(shù)目一般較大,例如,在杜比TrueHD的Atmos版本中多達(dá)16個(gè)。從而,下混合矩陣的靜態(tài)分解通常不足以在TrueHD格式中表示自適應(yīng)音頻。某些實(shí)施例覆蓋TrueHD格式所需的給定下混矩陣到本原矩陣的分解。
圖2示出根據(jù)一些實(shí)施例的將自適應(yīng)音頻內(nèi)容的N個(gè)通道混合成TrueHD比特流的系統(tǒng)。圖2示出含有四個(gè)子流的TrueHD流的編碼器側(cè)206和解碼器側(cè)210矩陣化,三個(gè)導(dǎo)致可由傳統(tǒng)的解碼器解碼的下混,一個(gè)用于再現(xiàn)被較新的解碼器解碼的無損原始。
在系統(tǒng)200中,N個(gè)輸入音頻對象202都經(jīng)受編碼器側(cè)矩陣化處理206,其包括輸入通道分配處理204(invchassign3,逆通道分配3)和輸入本原矩陣這產(chǎn)生了在比特流中編碼的內(nèi)部通道208。內(nèi)部通道208然后被輸入到解碼器側(cè)矩陣化處理210,其包括子流212和214,該子流包含輸出本原矩陣和輸出通道分配(chAssign0-3),以便以不同的下混(或上混)表示中的每一個(gè)產(chǎn)生輸出通道220-226。
如在系統(tǒng)200中所示的,用于自適應(yīng)音頻內(nèi)容的N個(gè)音頻對象202在編碼器中被矩陣化,以在四個(gè)子流中生成內(nèi)部通道208,可由其通過傳統(tǒng)設(shè)備來得出以下下混:(1)原始內(nèi)容的8通道(即,7.1通道)下混222,(b)(a)的6通道(即5.1通道)下混224,以及(c)(b)的雙通道下混226。對于圖2的例子,8通道、6通道和雙通道表示需要通過傳統(tǒng)設(shè)備被解碼,輸出矩陣S0,S1,R0,…,Rl以及Q0,...,Qk需要為可以通過傳統(tǒng)設(shè)備來解碼的格式。因此,用于這些表示的子流214根據(jù)傳統(tǒng)的語法被編碼。另一方面,產(chǎn)生輸入音頻的無損重建220所需的并且在編碼器中使用它們的逆的子流212的矩陣P0,...,Pn可能為可能僅由新TrueHD解碼器解碼的新格式。而且在內(nèi)部通道之間,可能需要由傳統(tǒng)設(shè)備使用的前八個(gè)通道遵從傳統(tǒng)設(shè)備的約束被編碼,而剩余的N-8個(gè)內(nèi)部通道可被以更大的靈活性來編碼,因?yàn)樗鼈儍H被新解碼器訪問。
如圖2所示,子流212可對于新的解碼器被以新的語法編碼,而子流214可對于對應(yīng)的傳統(tǒng)解碼器以傳統(tǒng)的語法被編碼。作為一個(gè)例子,對于傳統(tǒng)子流語法,本原矩陣可以被約束為具有最大系數(shù)2,逐步更新,即不能進(jìn)行插值、以及矩陣的參數(shù),諸如本原矩陣運(yùn)算其上的哪些通道可在每次矩陣系數(shù)更新時(shí)必須被發(fā)送。內(nèi)部通道的表示可以通過24位的數(shù)據(jù)通路。對于自適應(yīng)音頻子流的語法(新語法),本原矩陣可有較大范圍的矩陣系數(shù)(最大系數(shù)128)、更新之間的經(jīng)由插值斜率的規(guī)范的連續(xù)變化、以及對于矩陣參數(shù)的高效傳輸?shù)恼Z法重構(gòu)。內(nèi)部通道的表示可以通過32位的數(shù)據(jù)通路。依賴于系統(tǒng)的約束和要求,其他語法定義和參數(shù)也是可能。
如上所述,將一組自適應(yīng)音頻對象變換/下混到諸如7.1(或其他傳統(tǒng)的環(huán)繞聲格式)的固定揚(yáng)聲器布局的矩陣是動態(tài)矩陣,如隨時(shí)間連續(xù)變化的A(t)。然而,傳統(tǒng)TrueHD技術(shù)一般只允許以定期的時(shí)間間隔更新矩陣。在上面的示例中,輸出(解碼器側(cè))矩陣210 S0,S1,R0,…,Rl以及Q0,...,Qk可能只能被斷續(xù)地更新,而不能立即改變。另外,希望不過于頻繁地發(fā)送矩陣更新,因?yàn)榇溯o助信息招致顯著的附加數(shù)據(jù)。相反,優(yōu)選地是在矩陣更新之間進(jìn)行插值來近似連續(xù)路徑。一些傳統(tǒng)格式(例如,TrueHD)對于該插值沒有規(guī)定,然而,該插值可被容納在與新TrueHD解碼器相容的比特流語法中。因而,在圖2中,矩陣P0,…,PN以及在編碼器應(yīng)用的它們的逆可能被進(jìn)行時(shí)間插值。在編碼器處的被插值的輸入矩陣206的序列和在下混子流中的未被插值的輸出矩陣210然后將實(shí)現(xiàn)連續(xù)的時(shí)變下混規(guī)范A(t)或其近似。
圖3是根據(jù)實(shí)施例的在插值矩陣化方案中使用的動態(tài)對象的示例。圖3示出兩個(gè)對象的Obj V和的Obj U,以及渲染到立體聲(L,R)的床C。兩個(gè)對象是動態(tài)的,并且從在時(shí)間t1的各自的第一位置移動到在時(shí)間t2的各自的第二位置。
在一般情況下,基于對象的音頻的對象通道指示指示音頻對象的樣本的序列,并且節(jié)目通常包括指示各對象通道的軌跡或?qū)ο笪恢玫目臻g位置元數(shù)據(jù)值的序列。在本發(fā)明的典型實(shí)施例中,對應(yīng)于節(jié)目的對象通道的位置元數(shù)據(jù)值的序列被用于確定指示節(jié)目的時(shí)變增益規(guī)范的M×N矩陣A(t)。在時(shí)間t將N個(gè)對象渲染到M個(gè)揚(yáng)聲器可由長度為“N”的向量x(t)與M×N矩陣A(t)的乘法表示,該向量x(t)包含來自每個(gè)通道的在時(shí)間“t”的音頻樣本,該矩陣A(t)由在時(shí)間t的相關(guān)聯(lián)的位置元數(shù)據(jù)(以及可選的對應(yīng)于要被渲染的音頻內(nèi)容的其他元數(shù)據(jù),例如,對象增益)確定。所得到的在時(shí)間t的揚(yáng)聲器饋送的值(例如,增益或水平)可以表示為向量y(t)=A(t)*x(t)。
在時(shí)變對象處理的示例中,考慮圖1所示的系統(tǒng)具有三個(gè)自適應(yīng)音頻對象為三通道輸入音頻。在這種情況下,雙通道下混需要是傳統(tǒng)的兼容下混(即,立體聲2ch)。圖3的用于對象的下混/渲染矩陣可表示為:
在這個(gè)矩陣中,第一列可以對應(yīng)于被相等地饋送到L和R通道的床通道(例如,中央通道,C)的增益。第二和第三列則對應(yīng)于U和V對象通道。第一行對應(yīng)于2ch下混的L通道,第二行對應(yīng)于R通道,如圖3所示,所述對象正以某一速度相向地移動。在時(shí)間t1,自適應(yīng)音頻至2ch下混規(guī)范可以由下式給出:
對于本規(guī)范,通過如上所述地對于分解1方法選擇輸入本原矩陣,雙通道子流的輸出矩陣可以是單位矩陣。隨著對象從t1到t2來回移動(例如,15個(gè)存取單位之后或在15*T樣本之后,其中T是存取單位的長度),自適應(yīng)音頻至2ch規(guī)范演變成:
在這種情況下,輸入本原矩陣給定為:
因此,該序列的前兩行是所需的規(guī)范。因而,該系統(tǒng)甚至在時(shí)間t2仍可繼續(xù)使用雙通道子流中的單位輸出矩陣。此外注意,單位本原矩陣的對(P0,Pnew0)、(P1,Pnew1)和(P2,Pnew2)對于相同的通道進(jìn)行運(yùn)算,即它們具有相同的非平凡行。因此,可以計(jì)算這些本原矩陣之間的差別或者Δ為無損子流中的原始矩陣的每個(gè)訪問單元的變化率,如下:
音頻節(jié)目渲染系統(tǒng)(例如,實(shí)現(xiàn)這樣的系統(tǒng)的解碼器)可在節(jié)目期間僅斷續(xù)地接收確定渲染矩陣A(t)的元數(shù)據(jù)(或者它可以接收該矩陣本身),而不是在每一時(shí)刻t都接收。例如,這可能是由于多種原因中的任一原因,例如實(shí)際輸出元數(shù)據(jù)的系統(tǒng)的低時(shí)間分辨率或限制該節(jié)目的數(shù)據(jù)傳輸比特率的需求。因此,希望渲染系統(tǒng)在分別在時(shí)刻t1和t2的渲染矩陣A(t1)和A(t2)之間進(jìn)行插值,以獲得用于中間時(shí)刻t’的渲染矩陣A(t')。插值一般確保被渲染的揚(yáng)聲器饋送中的對象的感知位置隨時(shí)間平滑地變化,并且可以消除源自不連續(xù)(分段式)矩陣更新的偽像。插值可以是線性(或非線性),并且通常應(yīng)確保從A(t1)到A(t2)是連續(xù)路徑。
在實(shí)施例中,由編碼器在t1和t2之間的任何中間時(shí)刻應(yīng)用的本原矩陣是通過插值導(dǎo)出的。由于下混子流的輸出矩陣保持恒定,如同單位矩陣,在t1和t2之間的給定時(shí)間t實(shí)現(xiàn)的下混式可作為以下乘積的前兩行被導(dǎo)出:
因此,時(shí)變規(guī)范是如下這樣實(shí)現(xiàn)的:不是對雙通道子流的輸出矩陣進(jìn)行插值,而是僅對與自適應(yīng)音頻表示相對應(yīng)的無損子流的本原矩陣進(jìn)行插值。這是由于以下原因?qū)崿F(xiàn)的:規(guī)范A(t1)和A(I2)被分解成一組輸入本原矩陣,其在相乘時(shí)包含作為該行的子集的所需的規(guī)范,因此允許下混子流的輸出矩陣為恒定單位矩陣。
在實(shí)施例中,矩陣分解方法包括如下算法,該算法將M*N矩陣(如2*3規(guī)范A(t1)或A(t2))分解成通道分配(例如d3)和N*N本原矩陣的序列(諸如,上述示例中的3*3本原矩陣或),使得通道分配和本原矩陣的序列的乘積包含M行,該M行與指定的矩陣非常接近或完全相同。一般地,此分解算法允許輸出矩陣保持恒定。然而,即使情況并非如此,它仍形成有效分解策略。
在實(shí)施例中,矩陣分解方案涉及矩陣旋轉(zhuǎn)機(jī)制。作為示例,考慮將被稱為“旋轉(zhuǎn)”的2*2矩陣Z:
該系統(tǒng)通過將旋轉(zhuǎn)Z應(yīng)用于A(t1)和A(t2)來構(gòu)造兩個(gè)新的規(guī)范B(t1)和B(t2):
B(t1)的行的12范數(shù)(元素的平方根之和)為單位元素,而這兩行的點(diǎn)積為零。因此,如果設(shè)計(jì)輸入本原矩陣和通道分配來精確地實(shí)現(xiàn)規(guī)范B(t1),那么如此設(shè)計(jì)的本原矩陣和通道分配應(yīng)用于輸入音頻通道(ch0,ch1和ch2)將導(dǎo)致不太大的兩個(gè)內(nèi)部通道(ch0’和ch1’)即功率被限界。此外,如果輸入通道在開始時(shí)非常不相關(guān),則這兩個(gè)內(nèi)部通道(ch0’和ch1’)可能非常不相關(guān),這通常是對象音頻的情況。這導(dǎo)致改進(jìn)的內(nèi)部通道至比特流的壓縮。
類似地,
在這種情況下,行是相互正交的,但是各行不是單位范數(shù)。另外,輸入本原矩陣和通道分配可以使用上述的實(shí)施例被設(shè)計(jì),其中M*N矩陣分解為N*N本原矩陣的序列和通道分配,以生成正好是或者幾乎正好是指定的矩陣的含有M行的本原矩陣。
然而,希望的是所實(shí)現(xiàn)的下混在時(shí)間t1對應(yīng)于規(guī)范A(t1),并且在時(shí)間t2對應(yīng)于A(t2)。因此,從兩個(gè)內(nèi)部通道(ch0’和ch1’)導(dǎo)出雙通道下混需要乘以Z-1。這可以通過設(shè)計(jì)輸出矩陣如下來實(shí)現(xiàn):
由于相同的旋轉(zhuǎn)z在兩個(gè)時(shí)刻被應(yīng)用,因此相同的輸出矩陣Q0、Q1可以由解碼器在時(shí)間t1和t2被應(yīng)用于內(nèi)部通道,以分別獲得所需的規(guī)范A(t1)和A(t2)。這樣,輸出矩陣已被保持恒定(但是它們根本不是認(rèn)為單位矩陣),且與其它實(shí)施例相比,具有改進(jìn)的壓縮和內(nèi)部通道限制的附加的優(yōu)點(diǎn)。
作為另一示例,考慮在圖2的四個(gè)子流示例中所需的下混的序列。設(shè)7.1ch到5.1ch下混矩陣如下:
5.1ch到2ch下混矩陣是公知矩陣:
在這種情況下,被應(yīng)用于A(t)的旋轉(zhuǎn)Z、時(shí)變自適應(yīng)音頻到8ch下混矩陣,可被定義為:
Z的前兩行形成A2和A1的序列。接下來的四個(gè)行形成A1的后四排。最后兩行已被選為單位行,因?yàn)樗鼈兪筞滿秩且可逆。
可以示出,每當(dāng)Z*A(t)為滿秩[1](秩=8)時(shí),如果輸入原始矩陣和通道分配是使用本發(fā)明的第一方面設(shè)計(jì)成使得Z*A(t)被包含在分解的前8行中,則:
(a)前兩個(gè)內(nèi)部通道正好形成該雙通道表示,并且圖2中的子流0的輸出矩陣S0,S1簡單地是單位矩陣,因此在時(shí)間上是恒定的。
(b)進(jìn)一步地,六通道下混可以通過應(yīng)用恒定(但非單位)輸出矩陣R0,…,Rl來獲得。
(c)八通道下混可以通過應(yīng)用恒定(但非單位)輸出矩陣Q0,…,Qk來獲得。
因此,當(dāng)采用這樣的實(shí)施例來設(shè)計(jì)輸入本原矩陣時(shí),旋轉(zhuǎn)Z有助于實(shí)現(xiàn)TrueHD的層次結(jié)構(gòu)。在某些情況下,可能希望支持由下混矩陣(從上到下)尺寸為M1×M0的A1,…,尺寸為Mk×Mk-1的Ak,…k<K的序列規(guī)定的K個(gè)矩陣的序列。換句話說,該系統(tǒng)能夠支持在單個(gè)TrueHD比特流中的輸入音頻的線性變換的下列層次結(jié)構(gòu):A0,A1×A0,…,Ak×…M1×M0,k<K,其中,A0是尺寸為M0×N的最上面的下混。
在實(shí)施例中,矩陣分解方法包括設(shè)計(jì)L×M0旋轉(zhuǎn)矩陣Z的算法,該旋轉(zhuǎn)矩陣Z將被應(yīng)用于最上面的下混規(guī)范A0,使得(1)Mk通道下混(對于k{0,1,…,K-1})可以通過L×N旋轉(zhuǎn)規(guī)范Z*A0的Mk或L行中的較小者的線性組合而獲得,并且以下中的一個(gè)或多個(gè)可被另外實(shí)現(xiàn):旋轉(zhuǎn)規(guī)范的行具有低相關(guān)性;旋轉(zhuǎn)規(guī)范的行具有小的范數(shù)/限制內(nèi)部通道的功率;旋轉(zhuǎn)規(guī)范應(yīng)用于到本原矩陣的分解導(dǎo)致可在TrueHD比特流語法的約束內(nèi)表示的小系數(shù);旋轉(zhuǎn)規(guī)范使得能夠分解為輸入本原矩陣和輸出本原矩陣,從而所需的規(guī)范和所實(shí)現(xiàn)的規(guī)范(設(shè)計(jì)矩陣的序列)之間的總體誤差??;并且同樣的旋轉(zhuǎn)在被應(yīng)用于時(shí)間上連續(xù)的矩陣規(guī)范可能導(dǎo)致在不同時(shí)刻的本原矩陣之間的小差異。
矩陣分解方法的一個(gè)或多個(gè)實(shí)施例通過在基于處理器的計(jì)算機(jī)上執(zhí)行的一個(gè)或多個(gè)算法實(shí)現(xiàn)。第一算法或第一組算法可實(shí)現(xiàn)M*N矩陣分解為N*N本原矩陣的序列和通道分配,也被稱為矩陣分解方法的第一方面,并且第二算法或第二組算法可以實(shí)現(xiàn)設(shè)計(jì)將應(yīng)用于在由下混矩陣的序列規(guī)定的下混序列中的最上面的下混規(guī)范的旋轉(zhuǎn)矩陣Z,也被稱為矩陣分解方法的第二個(gè)方面。
對于下文描述的算法,提供了以下的前言和注釋。對于任何數(shù)x,定義了:
對于任何向量x=[xC ... xm],定義了:
abs(x)=[abs(x0) ... abs(xm)]
對于任何M×N矩陣X,X的行自上而下被標(biāo)記為0到M-1,并且列自左到右被標(biāo)記為0到N-1,并且X的i行、j列的元素為xij。
X的轉(zhuǎn)置被指示為XT。設(shè)u=[u0 u1 ... ul-1]是從0到M-1揀選的l個(gè)索引的向量,而v=[v0 … ·· vk-1]是從0到N-1揀選的k個(gè)索引的向量。X(u,v)指示其元素的l×k矩陣Y,即Y或X(u,v)是通過從X選擇索引為u的行且索引為v的列而形成的矩陣。
如果M=N,則X的行列式[1]可被計(jì)算并且被指示為det(X)。矩陣X的秩被指示為rank(X),并且小于或等于M和N中的較小者。給定N個(gè)元素的向量x以及通道索引c,操作通道c的本原矩陣P由用x替換N×N單位矩陣的行c的prim(x,c)構(gòu)造。
在實(shí)施例中,如下地提供第一方面的算法(算法1):設(shè)A是M×N矩陣,其中M<=N,并且設(shè)rank(A)=M,即A是滿秩的。算法確定尺寸為N×N的單位本原矩陣P0,P1,…,Pn以及通道分配dN,使得元素積..t:Pn×…×P1×P0×DN在其中包含匹配A的行的M個(gè)行,其中DN是對應(yīng)于dN的置換矩陣。
(A)初始化:f=[0 0 ...· 0]1×M,e={0,1,..,N-1},B=A,P={}
(B)確定單位本原矩陣:
在(sum(f)<M)時(shí){
(1)r=[],c=[],t=0;
(2)確定rowsToLoopOver
(3)確定行組r以及對應(yīng)的列/通道c:
(4)對于行組確定單位本原矩陣:
(5)添加新的單位本原矩陣到已有的集合:P={P′;P}
(6)導(dǎo)致本原矩陣:其中P是序列P={Pl;…;P0}
(7)如果t=0,c=[c1 …].
(8)從e去除c中的元件
(4)將e的元素附接到cN以便使得后者成為N個(gè)元素的向量。確定作為cN的逆的置換dN、以及對應(yīng)的置換矩陣DN.
(5)導(dǎo)致通道分配:
在實(shí)施例中,提供如下所示的算法(被指示為算法2)。該算法從算法1中的步驟B.4.b.ii之后繼續(xù)進(jìn)行。給定矩陣B,行選擇r和列選擇c:
(A)通過向c附接并不在其中的、但是在{0,1,…,N-1}中的元素,使得c完整成為N個(gè)元素的向量。
(B)設(shè)
(C)找到l+1個(gè)單位本原矩陣P0′,P1′,…,Pl′,其中l(wèi)是r的長度,并且Pi′的行i是本原矩陣的非平凡行,使得序列Pl′×…×P1′×P0′的行1到l匹配G的行1到l。這是對于以下示例矩陣被示出的構(gòu)造過程。
(D)構(gòu)造對應(yīng)于c的置換矩陣CN,并且設(shè)定
(E)P′={Pl′;…;P1′;P0′};
算法2中的步驟(c)的示例如下地給出:
設(shè)因此,l=2.希望將其分解為三個(gè)本原矩陣:
使得:
由于預(yù)先乘以P2僅影響第三行,
這要求p1,0=g1,0以及p0,1=(g1,1-1)/g1,0如上。p0,2還未被約束,它所取得的任何值都可通過改變p1,2=g1,2-p1,0p0,2.而被補(bǔ)償。
對于行2本原矩陣,起始點(diǎn)是需要
查看p2,0以及p2,1,具有聯(lián)立方程
現(xiàn)在可知曉這是可解的,因?yàn)?/p>
并且,現(xiàn)在p0,2由下式定義:
g2,2=p2,0p0,2+p2,1g1,2+1
它將一直存在,只要p2,0不消失。
關(guān)于算法1,在實(shí)際應(yīng)用中存在可在TrueHD比特流表示的最大系數(shù)值,并且需要確保系數(shù)的絕對值比此閾值小。在算法1的步驟B.3.a中找到最佳通道/列的主要目的是為了確保本原矩陣中的系數(shù)不大。在算法1的另一變型,不是將步驟B.3.b中的行列式與0比較,而是可以將它與個(gè)正的非零閾比較,以確保系數(shù)將根據(jù)比特流語法被明確地約束。一般來說,步驟B.3.b中的行列式越小,則最終的本原矩陣系數(shù)就越大,從而下面限制了行列式,上面限制了系數(shù)的絕對值。
在步驟B.2中,由rowsToLoopOver給定的步驟B.3的循環(huán)中處理的行的順序被確定。這可以簡單地是由按索引的升序排序的標(biāo)志向量f指示的尚未實(shí)現(xiàn)的行。在算法1的另一變型中,這可能是案已經(jīng)在步驟B.3的循環(huán)嘗試的總次數(shù)的升序排序的行,從而已經(jīng)嘗試最少的行將是優(yōu)選。
在算法1的步驟B.4.b.i中,附加的列clast將被選擇。這可被任意選擇,同時(shí)遵從約束clast∈e,作為替代,可以有意地選擇clast以便不用盡對于在后續(xù)迭代中的行分解最有利的列。這可以通過跟蹤使用如算法1的步驟B.3.a中計(jì)算的不同列的的費(fèi)用被進(jìn)行。
需要注意的是,算法1的步驟B.3確定對于一行的最佳列,并移動到下一行。在算法1的另一個(gè)變型中,可以用在尚未實(shí)現(xiàn)的行和仍然可用的列上運(yùn)行的嵌套循環(huán)對取代步驟B.2和B.3步驟,使得一個(gè)行和列的最佳(最小化本原矩陣系數(shù)的值)排序可以被同時(shí)確定。
盡管算法1已經(jīng)在其秩為M的滿秩矩陣的情況下進(jìn)行了說明,但是其可被修改以便作用于其秩為L<M的秩虧矩陣。由于單位本原矩陣的乘積永遠(yuǎn)是滿秩的,在這種情況下僅期望實(shí)現(xiàn)A的L行。在步驟B中的循環(huán)中將需要適當(dāng)?shù)耐顺鰲l件,以確保一旦A的L個(gè)線性獨(dú)立行被實(shí)現(xiàn),則算法退出。如果M>N,相同的變更將是適用的。
由算法1所接收的矩陣可以是已經(jīng)通過適當(dāng)設(shè)計(jì)的矩陣Z旋轉(zhuǎn)的下混規(guī)范。可能的是在算法1的執(zhí)行過程中可以在本原矩陣系數(shù)可增長得比TrueHD比特流中可表示的系數(shù)大的情況下結(jié)束,而在Z的設(shè)計(jì)中可能沒有預(yù)料到這一事實(shí)。在算法1的又一個(gè)變型中,旋轉(zhuǎn)Z可以在工作中進(jìn)行修改,以確保對于通過修改的Z被旋轉(zhuǎn)的原始下混規(guī)范確定的本原矩陣就本原矩陣系數(shù)的值而言表現(xiàn)更好。這可以通過查找在算法1中的步驟B.3.b計(jì)算出的行列式并將行r放大Z的適當(dāng)修改以使得行列式比合適下限較大來實(shí)現(xiàn)。
在算法的步驟C.4中,可以任意地選擇e中的元素以使cN完整為N個(gè)元素的向量。在算法1的變型中,可以仔細(xì)選擇這種順序,使得本原矩陣和通道分配的最終(步驟C.5后)序列具有朝矩陣的底部定位的、具有較大的范數(shù)和/或大系數(shù)的行。這使得更有可能的將序列應(yīng)用于輸入通道,較大的內(nèi)部通道被定位在較高的通道索引,從而被編碼成較高的子流。傳統(tǒng)TrueHD僅支持用于內(nèi)部通道的24位數(shù)據(jù)通路,而新TrueHD解碼器支持更大的32位數(shù)據(jù)通路。因此,將較大通道推動到只能通過新TrueHD解碼器解碼的較高子流是可取的。
關(guān)于算法1,在實(shí)際應(yīng)用中,假設(shè)應(yīng)用需要支持由以下下混矩陣的序列(自上到下)規(guī)定的K個(gè)下混的序列:其中A0具有尺寸M0×N和Ak,k>0具有尺寸Mk×Mk-1。例如,可以給出:(a)時(shí)變的8×N規(guī)范A0=A(t),其將N個(gè)自適應(yīng)音頻通道下混到7.1ch布局的8個(gè)揚(yáng)聲器位置,(b)規(guī)定7.1ch到5.1ch混合的進(jìn)一步下混的6×8靜態(tài)矩陣A1,或(c)規(guī)定5.1ch到立體聲混合的進(jìn)一步下混的2×6靜態(tài)矩陣A2。該方法描述了一種L×M0旋轉(zhuǎn)矩陣Z,其將在最上面的下混規(guī)范A0經(jīng)受算法1或其變型之前應(yīng)用于該下混規(guī)范A0。
在第一設(shè)計(jì)方案(表示設(shè)計(jì)1)中,如果下混規(guī)范Ak,k>0具有秩Mk,則可以選擇L=M0,并且Z可以根據(jù)下面的算法(表示為算法3)被構(gòu)造:
(A)初始化:L=0,Z=[],c=[0 1 … N-1]
(B)構(gòu)造:
這樣的設(shè)計(jì)將確保Mk通道下混(對于)可通過L×N旋轉(zhuǎn)規(guī)范Z*A0的Mk或L行中的較小者的線性組合而獲得。該算法被用來設(shè)計(jì)上述的例子的情況的旋轉(zhuǎn)。該算法返回如下的旋轉(zhuǎn),如果下混K的數(shù)目是1,則為單位矩陣。
可以使用第二設(shè)計(jì)(表示為設(shè)計(jì)2),該第二設(shè)計(jì)采用公知的奇異值分解(SVD)。任何M×N矩陣X可以通過SVD分解為X=U×S×V,其中U和V分別為維數(shù)為M×M和N×N的正交矩陣,而S是M×N對角矩陣。對角矩陣S因此被限定為:
在此矩陣,對角線上的元素的數(shù)量是M或N中的較小者。對角線上的值si是非負(fù)的,并且被稱為X的奇異值。它進(jìn)一步假設(shè)對角線上的元素已經(jīng)按量值減小的順序被排列,即不像在設(shè)計(jì)1中,下混規(guī)格在本設(shè)計(jì)中可為任意秩。矩陣Z可以根據(jù)下面的算法(表示為算法4)被構(gòu)造:
(A)初始化:L=0,Z=[],X=[],c=[0 1 … N-1]
(B)構(gòu)造:
對于(k=K-1到0)
{
(a)如果k>0,則從第一下混計(jì)算Mk通道下混的序列:
Hk=Ak×Ak-1×…×A1
(b)否則,設(shè)定Hk為尺寸Mk的單位矩陣
(c)從輸入計(jì)算Mk通道下混的序列:Tk=Hk×A0
(d)如果基礎(chǔ)集合X不是空的:
{
(i)計(jì)算投影系數(shù):Wk=Tk×XT
(ii)計(jì)算預(yù)測分解的矩陣:Tk=Tk-Wk×X
(iii)在旋轉(zhuǎn)中考慮預(yù)測:Hk=Hk-Wk×Z
}
(e)經(jīng)由SVD分解Tk=USV
(f)找到{0,1,...,min(Mk-1,N-1)}中的最大i,使得sii>θ,其中θ是用于限定矩陣的秩的小的正閾值(也就是說,1/1024).
(g)創(chuàng)建基礎(chǔ)集合:
(h)獲得Z的新的行:
(i)更新
}
(C)L=Z中的行數(shù)。
應(yīng)注意,最終旋轉(zhuǎn)規(guī)范Z*A0與算法4的步驟B.g中構(gòu)造的基礎(chǔ)集合X基本上相同的。由于X的行是標(biāo)準(zhǔn)正交矩陣的行,通過算法1處理的旋轉(zhuǎn)矩陣Z*A0將具有單位范數(shù)的行,因此通過如此得到的本原矩陣的應(yīng)用而產(chǎn)生的內(nèi)部通道的功率將被限界。
另外,在上述的例子中,算法4被用來在上面的例子中找到旋轉(zhuǎn)Z。在這種情況下,存在單個(gè)下混規(guī)范,即:
K=1,M0=2,N=3,以及M0×N規(guī)范為A(t1)。
對于第三設(shè)計(jì)方案(設(shè)計(jì)3),可以另外地通過將經(jīng)由上述設(shè)計(jì)1或2的設(shè)計(jì)獲得的Z乘以在對角線上包含非零增益的對角線矩陣W:
增益可被計(jì)算為使得Z”*A0在經(jīng)由算法1或者其變型被分解時(shí)得到本原矩陣具有可以在TrueHD語法中表示的、小的系數(shù)。例如,可以檢查A'=Z*A0的行,并設(shè)置:
這將確保旋轉(zhuǎn)矩陣Z’*A0中的每一行中的最大元素具有絕對值1,使得在算法1的步驟B.3.b中計(jì)算出的行列式不太可能是接近零。在另一變型中,收益wi被限上界,從而不允許非常大的收益(這在A'接近秩虧時(shí)可能發(fā)生)。
這種方法的另一個(gè)修改是從wi=1開始,并在算法1進(jìn)行時(shí)增加它(或者甚至減小它),以確保在算法1的步驟B.3.b中的行列式具有合理的值,這繼而當(dāng)在算法1的步驟B.4中確定本原矩陣時(shí)將導(dǎo)致更小的系數(shù)。
在一個(gè)實(shí)施方案中,該方法可實(shí)現(xiàn)旋轉(zhuǎn)設(shè)計(jì)以保持輸出矩陣恒定。在這種情況下,考慮圖2的例子,其中所述自適應(yīng)音頻到7.1聲道規(guī)范是隨時(shí)間變化的,而到下混的規(guī)范進(jìn)一步是靜態(tài)的。如上所討論的,這可能是有益的是以便能夠保持下混子流的輸出本原矩陣恒定,因?yàn)樗鼈兛赡芊蟼鹘y(tǒng)TrueHD語法。這繼而可通過保持旋轉(zhuǎn)Z恒定來實(shí)現(xiàn)。由于規(guī)范A1和A2都是靜態(tài)的,不論自適應(yīng)音頻到7.1聲道的規(guī)范A(t)是什么,以上的設(shè)計(jì)1/算法3將返回相同的旋轉(zhuǎn)態(tài)。然而,隨著算法1的Z*A(t)的分解的進(jìn)行,系統(tǒng)可能需要如上述設(shè)計(jì)3所描述的經(jīng)由W修改Z到Z’。對角線增益矩陣W可以是時(shí)變的(即,依賴于A(t))的,但是Z本身不是。因此,最終的旋轉(zhuǎn)Z”將是時(shí)變的,并且將不會導(dǎo)致恒定的輸出矩陣。在這種情況下,有可能查看若干時(shí)刻t1,t2,...,其中A(t)可以被指定,然后例如通過計(jì)算在每個(gè)時(shí)刻的對角增益矩陣來構(gòu)造整體對角增益矩陣W'。要引用的恒定旋轉(zhuǎn)然后由Z”=W'×Z給出。
作為替代,可使用算法3或算法4設(shè)計(jì)對于在t1和t2之間的中間時(shí)刻的旋轉(zhuǎn),并且在t1和t2之間的所有時(shí)刻使用同一旋轉(zhuǎn)。假設(shè)在規(guī)范中A(t)的變化是緩慢的,這樣的過程可能仍然導(dǎo)致對于不同子流的所需要的規(guī)范和所實(shí)現(xiàn)的規(guī)范(設(shè)計(jì)的輸入和輸出的本原矩陣的序列)之間的非常小的誤差,即使保持輸出本原矩陣保持不變。
音頻分段
如上所述,實(shí)施例是針對在考慮下混矩陣軌跡的同時(shí)音頻分段成具有潛在變化的長度的重啟間隔。上面的描述示出了在時(shí)間t1和t2的2*3下混矩陣A(t1)和A(t2)的分解,使得用于兩個(gè)通道子流的輸出矩陣在這兩個(gè)時(shí)刻都可以是單位矩陣。輸入本原矩陣可以在這兩個(gè)時(shí)刻被插值,因?yàn)閱挝槐驹仃噷?P0,Pnew0),(P1,Pnew1)以及(P2,Pnew2)對于同一通道進(jìn)行操作,即它們具有相同的行是非平凡的。這繼而定義了分別指示為Δ0,Δ1,Δ2的插值斜率。在稍后的時(shí)間t3,t3>t2,下混矩陣進(jìn)一步發(fā)展到A(t3)。
假定A(t3)可以被分解為使得:
(1)輸出矩陣再次是單位矩陣(還是輸出通道分配),
(2)在時(shí)間t1和t2之間的相同輸入通道分配也在t3工作
(3)新本原矩陣Pnewer0,Pnewer1,Pnewer2分別與(P0,Pnew0),(P1,Pnew1)以及(P2,Pnew2)對于相同通道進(jìn)行操作。
該系統(tǒng)可以基于對t2和t3之間的輸入本原矩陣進(jìn)行插值定義一組新的增量Δnew0,Δnew1,Δnew2。這在圖4中被概念化,其示出了根據(jù)實(shí)施例的對于時(shí)變對象沿時(shí)間軸402的矩陣更新。如圖4所示,在時(shí)間t2具有連續(xù)內(nèi)部送到和在時(shí)間t2具有連續(xù)輸出表示,而沒有聽覺/視覺偽像。相同的輸出矩陣408在t1,t2和t3工作。輸入本原矩陣406可被插值以實(shí)現(xiàn)導(dǎo)致在時(shí)間t1下混音頻中沒有中斷的連續(xù)變化矩陣404。在這種情況下,在時(shí)刻t2,不需要在比特流中重新傳輸以下信息:輸入通道分配、輸出通道分配、輸出本原矩陣,和無損子原始矩陣中的本原矩陣(因此輸入原始矩陣)將被應(yīng)用的順序。在時(shí)間t2更新的僅僅是“Δ”或差異信息,該信息定義了輸入本原矩陣從時(shí)間t2到t3必須采取新的軌跡。注意,該系統(tǒng)不需要發(fā)送Pnewer0,Pnewer1,Pnewer2插值段t2-t3的初始本原矩陣,因?yàn)樗鼈兓旧鲜遣逯刀蝨1至t2的結(jié)束本原矩陣。
所獲得的矩陣是如圖4所示的通道分配405和本原矩陣406的級聯(lián)。因?yàn)檩斎刖仃?06由于內(nèi)插而連續(xù)變化,并且輸出矩陣408是常數(shù),因此所實(shí)現(xiàn)的下混矩陣連續(xù)變化。在這種情況下,將輸入通道住轉(zhuǎn)換到內(nèi)部通道407的變換函數(shù)/矩陣在t2是連續(xù)的,因此所得到的內(nèi)部通道將不會處理在t2的不連續(xù)性。應(yīng)注意,這是希望的行為,因?yàn)閮?nèi)部通道最終將經(jīng)受線性預(yù)測編碼(由于跨越時(shí)間預(yù)測而重獲編碼增益),該線性預(yù)測編碼在要被編碼的信號是跨越時(shí)間連續(xù)的情況下是最高效的。此外,輸出下混通道410還不具有不連續(xù)性。
如前所述,A(t2)可被以第二方式分解(分解2),包括將旋轉(zhuǎn)Z應(yīng)用于所需的規(guī)范以獲得B(t2),并導(dǎo)致不是補(bǔ)償旋轉(zhuǎn)的單位矩陣的輸出矩陣Q0,Q1。B(t2)到輸入本原矩陣和輸入通道分配的分解如下:
在上面的等式中,符號S0,S1,S2用于區(qū)分在圖4中表征的在同一時(shí)間t2的另外一組輸入本原矩陣Pnew0,Pnew1,Pnew2。
應(yīng)注意,相同的輸入通道分配d3被使用。進(jìn)一步假設(shè),(不同于在前面的例子中的假定),它是不可能分解A(t3)以使得所述輸出矩陣是單位矩陣,但相反,它可以采用對于A(t3)應(yīng)用相同的旋轉(zhuǎn)z以使得其分解滿足以下條件:
(1)輸出矩陣是矩陣Q0,Q1
(2)在時(shí)間t1和t2的相同輸入通道分配d3也在t3工作
(3)新本原矩陣Snew0,Snew1,Snew2分別與S0,S1,S2對于相同通道進(jìn)行操作。
在這種情況下,輸入本原矩陣可以在時(shí)間t1和t2之間被插值,使得在這段時(shí)間期間下混子流的輸出矩陣是單位矩陣,并且在t2到t3之間,輸出矩陣為Q0,Q1。這種情況在圖5中被示出,其示出了根據(jù)實(shí)施例的沿著時(shí)間軸502的時(shí)變對象的矩陣更新,在該實(shí)施例中,由于輸入本原矩陣中的不連續(xù)性而在t2具有不連續(xù)的內(nèi)部通道,并在時(shí)間t2有連續(xù)輸出表示,其沒有可聽/可視的偽像。如圖5所示,在時(shí)刻t2的指定矩陣504可被以兩種不同的方式分解為輸入和輸出本原矩陣506,508??赡苡斜匾褂靡粋€(gè)分解以能夠從t1到t2進(jìn)行插值,另一個(gè)從t2到t3進(jìn)行插值。在這種情況下,在時(shí)間t2,我們將必須發(fā)送本原矩陣S0,S1,S2(t2到t3的插值段的開始點(diǎn))。它也將是必要更新輸出矩陣508至用于下混子流的Q0,Q1。從輸入通道505到內(nèi)部通道507的傳遞函數(shù)以及內(nèi)部通道本身將在時(shí)間t2具有不連續(xù)性:這是由于輸入本原矩陣在該點(diǎn)突然變化。然而,整體實(shí)現(xiàn)矩陣在t2仍然是連續(xù)的,并且在輸入原始矩陣506中的不連續(xù)性通過在輸出矩陣508中的不連續(xù)性被補(bǔ)償。內(nèi)部通道中的不連續(xù)性對于線性預(yù)測因子創(chuàng)建了更困難的問題(較小的壓縮效率),但在輸出下混510中仍然沒有不連續(xù)性。因此,在本質(zhì)上,優(yōu)選地能夠創(chuàng)建如下的音頻段,在該音頻段上有類似于圖4中的情況的情況,而不是圖5中的情況。
對于任意矩陣軌跡,可能有連續(xù)的時(shí)間實(shí)例t2和t3,具有相應(yīng)的矩陣A(t2)和Α(t3),在這兩個(gè)連續(xù)的矩陣的分解中可能無法采用相同的輸出矩陣;或者這兩個(gè)分解可能需要不同的輸出通道分配;或在這兩個(gè)時(shí)刻的輸入本原矩陣相對應(yīng)的兩個(gè)通道序列是不同的,使得增量/插值斜率不能被定義。在這樣的情況下,時(shí)間t2和t3之間的增量必須被設(shè)置為零,這將導(dǎo)致在時(shí)間t3在內(nèi)部通道和下混通道兩者中不連續(xù),即所獲得的矩陣軌跡在t2和t3之間是常數(shù)(未插值)。
實(shí)施例一般針對如下的系統(tǒng)和方法,其用于將音頻分割成在其上不可插值的輸出矩陣可以保持恒定的子段,同時(shí)通過輸入本原矩陣的插值實(shí)現(xiàn)連續(xù)變化的規(guī)范且能夠利用三角矩陣的更新來校正軌跡。分段被設(shè)計(jì)成使得在這些子段的邊界處指定的矩陣可被以兩種不同的方式分解為本原矩陣,一種方式是適合于一直內(nèi)插到邊界,另一種方式是適合于從邊界開始內(nèi)插。這個(gè)過程也標(biāo)記了需要回退為不內(nèi)插的分段。
該方法的一個(gè)方法涉及保持本原矩陣通道序列恒定。正如前文所述,每個(gè)本原矩陣與它操作或修改的通道相關(guān)聯(lián)。例如,考慮本原矩陣的順序S0,S1,S2(上文示出其的逆),這些矩陣分別對于Ch1、Ch0和Ch2操作。給定本原矩陣的序列,對應(yīng)的通道序列被稱為“本原矩陣通道序列”。本原矩陣通道序列分別對于單獨(dú)的子流被定義?!拜斎氡驹仃囃ǖ佬蛄小笔亲钌厦娴淖恿鞯谋驹仃囃ǖ佬蛄械哪?用于無損求逆)。在圖4的例子中,輸入本原矩陣通道序列是在時(shí)間t1,t2和t3是相同的,這是計(jì)算用于通過這些時(shí)刻來插值輸入本原矩陣的增量所必須的條件。在圖5的例子中還發(fā)現(xiàn)S0,S1,S2與Pnew0,Pnew1,Pnew2對于同一通道操作,甚至輸入本原矩陣通道序列是在時(shí)間t1,t2,t3相同。在用于非傳統(tǒng)子流的比特流語法中,可以在連續(xù)矩陣的更新之間共享本原矩陣通道序列,即將其僅發(fā)送一次并且重新使用多次。因而,可以期望實(shí)現(xiàn)音頻的分段,使得本原矩陣通道序列的不頻繁傳輸會受到影響。
已經(jīng)在很大程度上假定下混需要是向后兼容的,但更一般地是,下混不需要向后兼容或者下混的一個(gè)子集可以向后兼容。在非傳統(tǒng)下混的情況下,不需要維持輸出矩陣恒定,并且它們實(shí)際上可以被插值。然而,為了能夠插值,應(yīng)該可能在連續(xù)的時(shí)刻定義輸出矩陣,使得它們對應(yīng)于相同的本原矩陣通道序列(否則,插值路徑的斜率是未定義的)。
某些實(shí)施方案的一般理念是在指定的矩陣是動態(tài)的時(shí)影響音頻分割,因此,一個(gè)或多個(gè)編碼參數(shù)可以對于分段保持恒定,同時(shí)最小化在分段邊界處的編碼參數(shù)的變化對于壓縮效率、下混音頻中的不連續(xù)性(或不連續(xù)的可聽形)或一些其它度量的沖擊(如有的話)。
分割過程的實(shí)施例可以被實(shí)現(xiàn)為計(jì)算機(jī)可執(zhí)行的算法。對于該算法,從自適應(yīng)音頻/無損表示到最大下混的連續(xù)變化的矩陣軌跡通常以高速率采樣,例如,在每個(gè)存取單元(AU)的邊界被采樣。覆蓋大長度的音頻(例如,100000個(gè)AUs)的矩陣的有限序列Λ0={A(tj)}被創(chuàng)建,其中j是整數(shù)0≤j<J,以及t0<t1<t2<…。我們將通過Λ0(j)指示序列Λ0中的索引為j的元素。例如,Λ0包含描述如何從Atmos下混到7.1聲道揚(yáng)聲器布局的矩陣的序列。然后,序列Λ1是定義如何下混到下一個(gè)較低的下混的在相同時(shí)刻tj的J個(gè)矩陣的序列。例如,這些J個(gè)矩陣中的每個(gè)矩陣可以簡單地是靜態(tài)7.1至5.1ch矩陣??梢灶愃频貏?chuàng)建K個(gè)序列,對應(yīng)于級聯(lián)中的K個(gè)下混。音頻分段算法接收K個(gè)序列Λ0,…,ΛK-1,以及還接收相應(yīng)的時(shí)間戳Γ={tj},0≤j<J。該算法的輸出是對于時(shí)間[t0,tJ-1)的音頻的一組編碼決定。該算法的某些步驟如下:
1.執(zhí)行遍歷在時(shí)間上從t0前進(jìn)到tJ-1的矩陣序列。在通在每個(gè)時(shí)刻tj時(shí),算法試圖確定一組編碼決定Ej,該編碼決定可以用來實(shí)現(xiàn)由Λk(j),0≤k<K規(guī)定的下混。此處,Ej可以包括元素,諸如通道分配、本原矩陣通道序列、和用于在比特流中直接出現(xiàn)的K個(gè)子流的本原矩陣,或諸如幫助本原矩陣的設(shè)計(jì)、但本身不出現(xiàn)在比特流中的旋轉(zhuǎn)Z的其他元素。在這樣做時(shí),首先檢查決定Ej-1的子集是否可以被重用,其中所述子集對應(yīng)于希望盡可能少地改變的參數(shù)。這一檢查可以例如通過上文提及的算法1的變型來執(zhí)行。注意,在算法1中的步驟B.3中,處理試圖選擇最終確定輸入本原矩陣通道序列和輸入通道分配的一組行和列。算法1的這樣的步驟就可以被跳過(因?yàn)檫@些決定會從Ej-1復(fù)制),并直接轉(zhuǎn)入算法1的步驟B.4中的實(shí)際分解例程。為了該傳遞檢查可能需要滿足一個(gè)或多個(gè)條件:通過重用Ej-1設(shè)計(jì)的本原矩陣可能需要為使得它們的級聯(lián)與指定的在時(shí)間tj的下混矩陣的不同在閾值內(nèi),或者本原矩陣必須具有被限制在比特流語法設(shè)定的限值內(nèi)的系數(shù),或關(guān)于本原矩陣的應(yīng)用的內(nèi)部通道中的峰值偏移的估計(jì)可能需要被限制(以避免數(shù)據(jù)路徑過載)等。如果檢查未通過,或者如果沒有有效的Ej-1,則可以對于在時(shí)刻tj的矩陣規(guī)范獨(dú)立地確定決定Ej,例如通過按原樣運(yùn)行算法1。每當(dāng)決定Ej-1與時(shí)間tj的矩陣不相容,分割邊界被插入。這例如指示包含在時(shí)間tj-1至tj中包含的分段可能不具有被插值的矩陣軌跡,并且所實(shí)現(xiàn)的矩陣在tj突然改變。這當(dāng)然是不希望的,因?yàn)檫@將指示下混音頻中存在不連續(xù)性。還可能指示在tj開始的新的重啟間隔可能是必需的。編碼決定Ej,0≤j<J被保留。
2.接下來執(zhí)行遍歷在時(shí)間上從tJ-1返回到t0的矩陣序列。在這樣做的過程中,檢查決定Ej+1的子集是否適合于在時(shí)間tj的矩陣分解(即,通過在上述(1)相同的檢查)。如果是這樣,我們重新定義Ej作為新的編碼決定的集合,并在時(shí)間上移回當(dāng)前已在時(shí)刻tj被插入的任何分段邊界。這一步驟的影響可能是,即使在上述步驟(1)中時(shí)間間隔tj到tj+1可能已被標(biāo)記為不具有差值的本原矩陣,實(shí)際上仍可通過重用在時(shí)間tj的決定Ej+1的子集來使用插值矩陣。因此,可能已經(jīng)在步驟(1)中被預(yù)測為不連續(xù)點(diǎn)的tj+1將不再是這樣的。這一步驟也可能有助于更均勻地?cái)U(kuò)展重啟時(shí)間間隔,最小化編碼的峰值數(shù)據(jù)速率。這個(gè)步驟可進(jìn)一步幫助識別點(diǎn),如在圖5中的t2,其中指定矩陣可被以兩種不同的方式分解成本原矩陣,這有助于實(shí)現(xiàn)連續(xù)變化的矩陣軌跡,即使對于輸出本原矩陣進(jìn)行更新。例如,假設(shè)在以上步驟(1)中Ej-1適合于在時(shí)間tj的矩陣的分解。然而,所得到的Ej不適合在tj+1的矩陣的分解。然后,可能已經(jīng)在時(shí)間tj+1引入了分割邊界。在當(dāng)前步驟中,可能發(fā)現(xiàn)決定Ej+1也適合于在時(shí)間tj的矩陣分解。在這種情況下,在時(shí)刻tj的矩陣可被以兩種不同的方式分解,就像在圖5的時(shí)間t2,因而在tj而不是tj+1引入分割邊界,導(dǎo)致連續(xù)變化的實(shí)現(xiàn)的下混。最后,本步驟也可以幫助識別明確不適合于插值的或明確需要參數(shù)變化(由于它現(xiàn)在已經(jīng)嘗試保持編碼參數(shù)集合從任一時(shí)間方向上相同)的分段tj到tj+1。在另一些情況下,該方法可能具有邊界是否應(yīng)該被移動的選擇。例如,不僅在tj而且在tj-1可能持續(xù)為Ej+1。在這種情況下,如果在上述步驟(1)中在tj+1引入了分割邊界,它可以移回tj或進(jìn)一步移回tj-1。在這樣的情況下,其他的指標(biāo)可能確定邊界應(yīng)該移動多遠(yuǎn)。例如,我們可能需要維護(hù)可能會影響此決定的具有特定長度的重啟間隔(如>=8AUs和<=128AUs)?;蛘?,該決定可以基于哪些決定導(dǎo)致最佳的壓縮性能或者哪些決定導(dǎo)致在內(nèi)部通道中的最少峰值偏移的啟發(fā)。
3.這個(gè)過程現(xiàn)在可以計(jì)算作為連續(xù)音頻段(或在指定的序列中的連續(xù)矩陣組)的重啟間隔,在該連續(xù)音頻段上對于所有子流的通道分配已經(jīng)保持相同。所計(jì)算的重啟間隔可能會超過在TrueHD語法中指定的重啟間隔的最大長度。在這種情況下,大的間隔通過在已經(jīng)存在指定的矩陣的間隔中的點(diǎn)tj處適當(dāng)?shù)夭迦敕侄吸c(diǎn)而被分成較小的間隔。作為替代,已經(jīng)實(shí)現(xiàn)分割的點(diǎn)可能沒有任何矩陣,我們甚至可在新引入的分段點(diǎn)處適當(dāng)?shù)夭迦刖仃?通過重復(fù)或插值)。
4.在步驟3結(jié)束時(shí),還可能具有尚未與編碼決定相關(guān)聯(lián)的音頻/矩陣更新的某些塊(即,相應(yīng)于在時(shí)間戳Γ的部分序列)。例如,上述步驟(1)中描述的算法1及其變型可能都無法導(dǎo)致其所有系數(shù)對于部分序列被良好地限界的本原矩陣。在這樣的情況下,該部分序列中的矩陣更新被簡單地丟棄(如果序列小)。作為替代地,這樣的序列可通過以上步驟(1)、(2)、(3)被單獨(dú)處理,但使用了作為基礎(chǔ)的不同矩陣分解算法(不同于算法1)。結(jié)果可能不太理想,但有效。
對于上述算法,當(dāng)分別在上述步驟(1)或步驟(2)中在時(shí)間tj嘗試決定Ej-1或Ej+1時(shí),可能會遇到如下情況:由矩陣Λk(j)指定的下混中的一個(gè)或多個(gè)下混的秩從其相鄰矩陣Λk(j-1)orΛk(j+1)的秩減小。這可能導(dǎo)致,例如,與時(shí)間tj-1或tj+1相比,在時(shí)間tj指定的矩陣對于其分解需要較少數(shù)量的本原矩陣。盡管如此,通過在分解中輸入或輸出本原矩陣的序列中插入平凡本原矩陣以得到與在相鄰時(shí)刻相同的數(shù)量(和本原矩陣通道序列),仍可以在時(shí)間tj強(qiáng)行重新使用決定Ej-1或Ej+1(視情況而定)。
一旦分段已經(jīng)完成,則過程可以對于每個(gè)分段分別重新計(jì)算編碼決定,如果有益的話。例如,該分段可導(dǎo)致可能對于段的一端是最優(yōu)的而對于相對端不是最優(yōu)的編碼決定。然后,它可能嘗試一組新的編碼決定,該編碼決定可能對于在段的中心的矩陣是最優(yōu)的,這樣整體上可導(dǎo)致客觀度量(例如內(nèi)部通道的峰值偏移或壓縮效率)的改進(jìn)。
編碼器設(shè)計(jì)
在一個(gè)實(shí)施例中,上述的音頻分段過程是在自適應(yīng)音頻處理系統(tǒng)的編碼器級中執(zhí)行的,以用于通過插值矩陣化來渲染自適應(yīng)音頻TrueHD內(nèi)容。圖6示出根據(jù)實(shí)施例的包括編碼器601和解碼器611的自適應(yīng)音頻TrueHD處理系統(tǒng)的概述。如在圖600中所示,在自適應(yīng)音頻(例如,Atmos)內(nèi)容中的對象音頻元數(shù)據(jù)/床標(biāo)簽提供了構(gòu)建渲染矩陣602所需的信息,該渲染矩陣602適當(dāng)?shù)鼗旌献赃m應(yīng)音頻內(nèi)容為一組揚(yáng)聲器饋送。對象的連續(xù)運(yùn)動在渲染中由對象音頻渲染器(OAR)產(chǎn)生的不斷演變的矩陣軌跡捕獲。矩陣軌跡的連續(xù)性既可以是由于不斷演變的元數(shù)據(jù)導(dǎo)致的,也可能是由于元數(shù)據(jù)/矩陣樣本的插值導(dǎo)致的。在一個(gè)實(shí)施方案中,矩陣生成器生成如由矩陣軌跡602上的“×”標(biāo)記采樣點(diǎn)603示出的這種連續(xù)變化的矩陣軌跡的樣本。這些矩陣可能已被修改以使得它們被箝位(clip)保護(hù),即,當(dāng)被應(yīng)用于輸入音頻(在樣本之間具有假定的插值路徑)時(shí)將導(dǎo)致未被箝位的下混/渲染。
針對大的音頻段的大量連續(xù)矩陣樣本/或矩陣一起由執(zhí)行如下分段算法(例如上述算法)的音頻分段組件604處理,該分段算法將音頻段分成更小的子段,在該子段上,諸如通道分配、本原矩陣通道序列、本原矩陣是否要在該段上被插值等等的各種編碼決定保持不變。分割過程604還將段的組標(biāo)記為重啟間隔,如先前所描述的。由此,分段算法自然對于音頻段中的每個(gè)段做出顯著數(shù)量的編碼決定,以提供引導(dǎo)矩陣分解成本原矩陣的信息。
然后,來自該分段過程604的決定和信息被輸送到單獨(dú)的編碼器例程650,該例程650處理這樣的分段的一個(gè)或多個(gè)組606中的音頻(該組可以是例如重啟間隔,或者它可能只是一個(gè)分段)。此例程650的目標(biāo)是最終產(chǎn)生與分段組對應(yīng)的比特流。圖7是示出根據(jù)實(shí)施例的由編碼器例程650執(zhí)行的產(chǎn)生用于音頻分段處理的輸出比特流的編碼器處理的流程圖。如圖7所示,根據(jù)實(shí)施例,編碼器例程650可以每個(gè)重啟間隔運(yùn)行或者每個(gè)分段運(yùn)行,以產(chǎn)生用于重啟分段的比特流為重啟段。編碼例程接收包括指定的矩陣軌跡602的指定矩陣,來實(shí)現(xiàn)在音頻分段的開始(和結(jié)束)點(diǎn)處的矩陣規(guī)范,702。從分割過程604接收到的編碼決定可能已經(jīng)包括在分段邊界的本原矩陣。作為替代地,它可以包括引導(dǎo)信息,以通過矩陣分解(如前面所述)再次產(chǎn)生這些本原矩陣。編碼器例程650然后基于在分段的端部的本原矩陣計(jì)算代表插值斜率的增量矩陣,704。如果分段算法已經(jīng)表示在分段期間插值將被關(guān)斷,或者如果計(jì)算出的增量不可在語法的約束內(nèi)表示,則可能會重置該增量。
編碼器例程計(jì)算或估計(jì)一旦本原矩陣(具有內(nèi)插)被應(yīng)用于在它正處理的(一個(gè)或多個(gè))分段的輸入音頻就將導(dǎo)致的在內(nèi)部通道中的峰值樣本值。如果估計(jì)任何內(nèi)部通道可能超過數(shù)據(jù)通路/過載時(shí),則該例程適當(dāng)?shù)夭捎肔SB旁路機(jī)構(gòu),以減少內(nèi)部信道的振幅,并在該過程中可以修改并重新格式化已經(jīng)被計(jì)算的本原矩陣/增量,706。它隨后將被格式化的本原矩陣應(yīng)用于輸入的音頻并創(chuàng)建內(nèi)部通道,708。還可以做出新的編碼決定,如用于編碼音頻數(shù)據(jù)的線性預(yù)測濾波器或霍夫曼碼書的計(jì)算。本原矩陣應(yīng)用步驟708取得輸入的音頻以及被重新格式化的本原矩陣/增量,以產(chǎn)生要被過濾的/編碼的內(nèi)部通道。計(jì)算出的內(nèi)部通道然后被用于計(jì)算下混和箝位保護(hù)的輸出本原矩陣,710。格式化的本原矩陣/增量然后從編碼器例程650輸出,以便通過比特流608傳輸?shù)浇獯a器611。
對于圖6的實(shí)施例,解碼器611解碼下混子流的各個(gè)重啟間隔,并且可以從編碼的音頻數(shù)據(jù)再生內(nèi)部通道610的子集,并應(yīng)用比特流608中包含的一組輸出本原矩陣以生成下混表示。輸入或輸出本原矩陣可以被插值,并且所實(shí)現(xiàn)的矩陣規(guī)范是輸入和輸出本原矩陣的級聯(lián)。因此,所實(shí)現(xiàn)的矩陣軌跡612可以僅在某些采樣點(diǎn)(例如,603)匹配/密切匹配指定的矩陣軌跡602。通過以高的速率采樣指定的矩陣軌跡(在輸入到編碼器中的分段算法之前),可以確保所實(shí)現(xiàn)的矩陣軌跡不會與指定的矩陣軌跡背離大的量,其中,所定義的閾值可基于特定的應(yīng)用需求和系統(tǒng)約束來設(shè)定背離限值。
在某些情況下,由于所實(shí)現(xiàn)的矩陣軌跡與指定的矩陣軌跡不同,由矩陣生成器實(shí)現(xiàn)的箝位保護(hù)可能不足。編碼器可以計(jì)算本地下混并且修改輸出本原矩陣,以確保在應(yīng)用輸出本原矩陣之后由解碼器產(chǎn)生的表示不會箝位,如圖7中的步驟710所示。該第二輪箝位保護(hù)在必要的情況下可以是溫和的,因?yàn)榇罅康捏槲槐Wo(hù)可能已經(jīng)被吸收到已經(jīng)由矩陣生成器應(yīng)用的箝位保護(hù)。
在一些實(shí)施例中,整體編碼器例程650可以是并行的,使得音頻分段例程和比特流產(chǎn)生例程(圖7)可以被適當(dāng)流水線化,以便對于音頻的不同分段同時(shí)操作。此外,因?yàn)樵诓煌糠值姆侄沃g沒有依賴關(guān)系,因此非重疊的輸入音頻部分的音頻分段可以并行化。
根據(jù)實(shí)施例,編碼器601在其中包括設(shè)計(jì)用來處理下混矩陣編碼處理的軌跡的動力學(xué)的分段的音頻分割算法。音頻分割算法將輸入音頻劃分成連續(xù)片段,并對于每個(gè)片段產(chǎn)生編碼決定和子段的初始集合,然后處理所述音頻片段內(nèi)的各個(gè)子段或子段的群組,以產(chǎn)生最終的比特流。該編碼器包括無損和分層的音頻編碼器,其通過插值的本原矩陣實(shí)現(xiàn)連續(xù)變化的矩陣軌跡,并通過考慮該實(shí)現(xiàn)的軌跡來對下混進(jìn)行箝位保護(hù)。該系統(tǒng)可以具有兩輪箝位保護(hù),一輪箝位保護(hù)是在矩陣生成階段而另一輪箝位保護(hù)是在本原矩陣已被設(shè)計(jì)之后。
格式化本原矩陣/增量
參考圖7和如圖7的704中所示地格式化本原矩陣和增量的步驟,下面的算法可用于執(zhí)行此步驟。在TrueHD中的本原矩陣的系數(shù)可以被表示為尾數(shù)和指數(shù)。本原矩陣可以與本原矩陣中的所有系數(shù)共享的被稱為“cfShift”的指數(shù)相關(guān)聯(lián)。在本原矩陣A中的特定系數(shù)α可以被打包到比特流中作為尾數(shù)λ使得λ=α×2-cfShift。尾數(shù)應(yīng)滿足以下約束:-2≤λ<2,而指數(shù)-1<cfShift<7。因而,非常大的系數(shù)(絕對值>128)可能不能在TrueHD語法中表示的,并且編碼器的工作是確定不暗示具有大的系數(shù)的本原矩陣的編碼決定。尾數(shù)被進(jìn)一步表示為具有“fracBits”的二進(jìn)制分?jǐn)?shù),即,λ將在比特流中被以(fracBits+2)個(gè)比特表示。每個(gè)本原矩陣與“fracBits”的單個(gè)值相關(guān)聯(lián),該單個(gè)值可具有在0到14之間的整數(shù)值。
參考圖2,在時(shí)間t2,系統(tǒng)將必須要發(fā)送本原矩陣S0,S1,S2(內(nèi)插分段t2到t3的起始點(diǎn))。在插值段的開始的本原矩陣被稱為“種子本原矩陣”。這些是在比特流中被發(fā)送的本原矩陣。在插值段中的中間點(diǎn)處的本原矩陣?yán)迷隽烤仃?delta matrix)被生成。
每個(gè)種子本原矩陣與對應(yīng)的增量矩陣相關(guān)聯(lián)(如果本原矩陣沒有被插值,則增量可以被認(rèn)為是零),因此,在本原矩陣中的每個(gè)系數(shù)在增量矩陣中具有對應(yīng)的系數(shù)δ。δ的值在比特流中被如下表示:(a)歸一化值θ=δ×2-cfShift被計(jì)算,其中,cfShift是與相應(yīng)的種子本原矩陣相關(guān)聯(lián)的指數(shù)。需要對于增量矩陣中的所有系數(shù),-1≤θ<1。(b)歸一化值然后被打包到比特流中作為通過“deltaBits”+1個(gè)比特表示的整數(shù)g,從而θ=g×2-fracBits-deltaPrecision。該參數(shù)deltaPrecision表示比本原矩陣系數(shù)自身更精細(xì)地表示增量的額外的精度。這里deltaBits可以是0到15,而deltaPrecision具有0和3之間的值。
如上所述,該系統(tǒng)需要如下這樣的cfShift,其對于種子和相應(yīng)的增量矩陣中的所有系數(shù)確保-1≤θ<1和-2≤λ<2。如果沒有這樣的cfShift,其中-1≤cfShift<7,存在,則編碼器可以關(guān)閉對于分段的插值,使增量歸零,并且僅僅基于種子本原矩陣計(jì)算cfShift。該算法提供了在增量不可表示時(shí)提供關(guān)閉插值作為后備的優(yōu)勢。這可能是分段過程的一部分,或是在可能需要確定與種子和增量矩陣相關(guān)聯(lián)的量化參數(shù)的稍后編碼模塊中。
編碼器/解碼器電路
音頻分段過程的實(shí)施例可以在包括編碼器和解碼器級或電路的自適應(yīng)音頻處理系統(tǒng)中實(shí)現(xiàn)。圖8是根據(jù)實(shí)施例的包括編碼器802、輸送子系統(tǒng)810、和解碼器812的音頻數(shù)據(jù)處理系統(tǒng)的框圖。雖然子系統(tǒng)812在本文中作為“解碼器”,應(yīng)當(dāng)理解的是,其可實(shí)施為重放系統(tǒng),包括解碼子系統(tǒng)(配置為解析和解碼指示經(jīng)編碼的多通道音頻節(jié)目的比特流),以及被配置為執(zhí)行子系統(tǒng)的輸出的重放的至少一些步驟以及渲染的其它子系統(tǒng)。一些實(shí)施例可包括不被配置為執(zhí)行渲染和/或回放的解碼器(其通常用于單獨(dú)的渲染和/或重放系統(tǒng))。本發(fā)明的一些實(shí)施例是重放系統(tǒng)(例如,如下的重放系統(tǒng),包括解碼子系統(tǒng)和配置成實(shí)現(xiàn)解碼子系統(tǒng)的輸出的重放的至少一些步驟以及渲染的其它子系統(tǒng))。
在圖1的系統(tǒng)800中,編碼器802被配置為將多通道自適應(yīng)音頻節(jié)目(例如,環(huán)繞聲道加上對象)編碼為包括至少兩個(gè)子流的編碼的比特流,并且解碼器812被配置為對編碼的比特流進(jìn)行解碼以渲染原始多通道節(jié)目(無損)或原始節(jié)目的下混。編碼器802被耦合并配置以生成編碼的比特流,并斷言編碼的比特流到輸送系統(tǒng)810。輸送系統(tǒng)810被耦合和配置為輸送(例如,通過存儲和/或發(fā)送)編碼的比特流至解碼器812。在一些實(shí)施例中,系統(tǒng)800實(shí)現(xiàn)在廣播系統(tǒng)或網(wǎng)絡(luò)(例如,因特網(wǎng))上向解碼器812輸送(例如,發(fā)送)編碼的多通道音頻節(jié)目。在一些實(shí)施例中,系統(tǒng)800將編碼的多通道音頻節(jié)目存儲在存儲介質(zhì)(例如,非易失性存儲器)中,而解碼器812被配置為從所述存儲介質(zhì)讀取節(jié)目。
編碼器802包括矩陣生成器部件801,該矩陣生成器部件801被配置為生成指示渲染矩陣的系數(shù)的數(shù)據(jù),其中渲染矩陣被定期更新,使得系數(shù)被類似地定期更新。渲染矩陣最終轉(zhuǎn)換成本原矩陣,該本原矩陣被發(fā)送到打包子系統(tǒng)809和被編碼在比特流中,指示將包括在節(jié)目的通道的對應(yīng)混合中的各通道的相對或絕對增益。每個(gè)渲染矩陣的增益(對于節(jié)目期間的時(shí)刻)表示混合的每個(gè)通道將如何貢獻(xiàn)于由對于特定的播放系統(tǒng)揚(yáng)聲器的揚(yáng)聲器饋送指示的音頻內(nèi)容的混合(在渲染的混合的相應(yīng)時(shí)刻)。編碼的音頻通道、本原矩陣系數(shù)和驅(qū)動矩陣生成器801的元數(shù)據(jù),以及附加數(shù)據(jù)通常也被斷言至打包子系統(tǒng)809,該子系統(tǒng)809將它們組裝成編碼的比特流,該編碼的比特流然后被斷言到輸送系統(tǒng)810。因此,該編碼的比特流包括指示編碼的音頻通道的數(shù)據(jù)、時(shí)變矩陣的集合,并且通常還包括附加數(shù)據(jù)(例如,關(guān)于音頻內(nèi)容的元數(shù)據(jù))。
由矩陣生成器801產(chǎn)生的矩陣可以跟蹤指定的矩陣軌跡602,如圖6所示。用于圖8的實(shí)施例,通過矩陣生成器801所產(chǎn)生的矩陣在音頻分段部件803中被處理,該音頻分段部件803將音頻段分割為子段,在該子段上,諸如通道分配、本原矩陣通道序列、本原矩陣是否要在該段上被插值等等的各種編碼決定保持不變。該部件還將段的組標(biāo)記為重啟間隔,如先前所描述的。音頻分段部件803因此用于將矩陣軌跡602的矩陣分解為本原矩陣和通道分配的相應(yīng)集合。
決定和本原矩陣信息被提供給編碼器部件805,該編碼器部件805通過應(yīng)用由部件803作出的決定來處理中所定義的子段中的音頻。編碼器部件805的操作可以按照與圖7的處理流程來執(zhí)行。在一個(gè)實(shí)施例中,在系統(tǒng)800處理的數(shù)據(jù)可以被稱為“內(nèi)部”通道,因?yàn)榻獯a器(和/或渲染系統(tǒng))典型地解碼并渲染編碼的信號通道的內(nèi)容以恢復(fù)輸入音頻,從而所編碼的信號通道對于編碼/解碼系統(tǒng)是“內(nèi)部”的。編碼器805產(chǎn)生對應(yīng)于由音頻分段部件803定義的子段的組的比特流。編碼器部件805輸出更新的本原矩陣,并且還輸出任何適當(dāng)?shù)牟逯抵担允菇獯a器812能夠產(chǎn)生矩陣的插值版本。通過打包級809將插值值包括在從編碼器802輸出的編碼的比特流中。
參照圖8的解碼器812,解析子系統(tǒng)811被配置為接收來自輸送系統(tǒng)810的編碼的比特流,并解析編碼的比特流。解碼器812從編碼的音頻數(shù)據(jù)再次生成內(nèi)部通道,并應(yīng)用比特流中包含的一組輸出本原矩陣以生成下混表示。所實(shí)現(xiàn)的矩陣規(guī)范是輸入和輸出本原矩陣的級聯(lián)。在解碼器812中的解析器811中的插值級接收包括在比特流中的本原矩陣的種子并更新集合、以及還包括在比特流中的插值值,以生成每個(gè)種子矩陣的插值值。在比特流的每個(gè)種子基質(zhì)的產(chǎn)生內(nèi)插值。本原矩陣生成器815是矩陣乘法子系統(tǒng),該子系統(tǒng)被配置為將從插值級813輸出的本原矩陣的每個(gè)序列依次應(yīng)用于從編碼的比特流中提取的經(jīng)編碼的音頻內(nèi)容。解碼器部件817被配置成無損恢復(fù)由編碼器802編碼的多通道音頻節(jié)目至少一個(gè)段的通道。解碼器812的置換級(ChAssign)也可以被包括以輸出一個(gè)或多個(gè)下混表示。
實(shí)施例涉及用于使用TrueHD音頻編解碼器渲染自適應(yīng)音頻內(nèi)容的音頻分段和矩陣分解過程,并且可以與用于渲染自適應(yīng)音頻(混合音頻,杜比Atmos)內(nèi)容的元數(shù)據(jù)輸送和處理系統(tǒng)結(jié)合使用,但是應(yīng)用并不限于此。對于這些實(shí)施例,所輸入的音頻包括自適應(yīng)音頻,具有基于通道的音頻和基于對象的音頻,包括用于相對于收聽者在三維空間中再現(xiàn)相應(yīng)的聲音源的預(yù)期位置的空間線索。矩陣化操作的序列通常產(chǎn)生增益矩陣,該增益矩陣確定對于所述N個(gè)輸出通道中的每一個(gè)通道的通過相應(yīng)的揚(yáng)聲器被重放的輸入音頻的每個(gè)對象的量(例如,響度)。自適應(yīng)音頻元數(shù)據(jù)可以與指示包含音頻通道和音頻對象的輸入音頻信號的通過N個(gè)輸出通道的渲染的輸入音頻內(nèi)容結(jié)合,并且在編碼器和解碼器之間編碼在比特流中,該比特流還包括通過編碼器創(chuàng)建內(nèi)部信道分配。元數(shù)據(jù)可被選擇和配置成控制多個(gè)通道和對象特性,例如:位置,尺寸,增益調(diào)整,海拔加重,立體聲/全反復(fù),3D縮放因子,空間和音色的屬性,和內(nèi)容相關(guān)的設(shè)置。
雖然某些實(shí)施例已一般地相對于下混操作被描述,該下混操作與TrueHD編解碼器格式和具有各種已知的配置的對象和環(huán)繞聲道的自適應(yīng)音頻內(nèi)容一起使用,但應(yīng)當(dāng)注意的是,輸入音頻到解碼的輸出音頻的轉(zhuǎn)換可包括下混,作為輸入到相同數(shù)量的通道的渲染,甚至上混。如上所述,某些算法考慮其中M大于N(上混)和M等于N(直混)的情況。例如,雖然算法1在M<N的上下文中被描述,但是進(jìn)一步討論(例如,第四節(jié)D)還提及處理上混的擴(kuò)展。類似的,算法4關(guān)于轉(zhuǎn)換是一般性的,并且使用諸如“Mk或N中的較小者”的語言,從而明確地構(gòu)想上混以及下混。
本文所描述的一個(gè)或多個(gè)實(shí)施例的方面可以在音頻或視聽系統(tǒng)中實(shí)現(xiàn),該音頻或視聽系統(tǒng)在包括執(zhí)行軟件指令的一個(gè)或多個(gè)計(jì)算機(jī)或處理裝置的混合、渲染和重放系統(tǒng)中處理源音頻信息。任何所述實(shí)施例可以單獨(dú)使用,或以任意組合彼此一起使用。雖然各種實(shí)施例可能已經(jīng)被可在說明書中一個(gè)或多個(gè)位置處被討論或提及的現(xiàn)有技術(shù)的各種缺陷激發(fā),但是實(shí)施例并不一定解決任何這些缺陷。換句話說,不同的實(shí)施例可以解決可能在本說明書中討論的不同的缺陷。一些實(shí)施例可僅部分地解決可在本說明書中討論的一些缺陷或僅一個(gè)缺陷,并且一些實(shí)施例可能不解決這些缺陷。
文中所描述的方法和系統(tǒng)的方面可在用于處理數(shù)字或數(shù)字化的音頻文件的適當(dāng)?shù)幕谟?jì)算機(jī)的聲音處理網(wǎng)絡(luò)環(huán)境中實(shí)現(xiàn)。自適應(yīng)音頻系統(tǒng)的部分可以包括包含任何期望數(shù)量的單獨(dú)的機(jī)器的一個(gè)或多個(gè)網(wǎng)絡(luò),該機(jī)器包括用以緩沖和路由計(jì)算機(jī)之間傳輸?shù)臄?shù)據(jù)的一個(gè)或多個(gè)路由器(未示出)。這樣的網(wǎng)絡(luò)可以被建立在各種不同的網(wǎng)絡(luò)協(xié)議上,并且可以是因特網(wǎng),廣域網(wǎng)(WAN),局域網(wǎng)(LAN),或它們的任意組合。在其中網(wǎng)絡(luò)包括因特網(wǎng)的實(shí)施例中,一個(gè)或多個(gè)機(jī)器可配置為通過網(wǎng)絡(luò)瀏覽器程序訪問因特網(wǎng)。
一個(gè)或多個(gè)部件、塊、過程或其他功能部件可通過控制該系統(tǒng)的基于處理器的計(jì)算設(shè)備的執(zhí)行的計(jì)算機(jī)程序來實(shí)現(xiàn)。還應(yīng)當(dāng)指出的是,這里公開的各種功能可以使用任何數(shù)量的硬件、固件的組合來描述,和/或作為體現(xiàn)在各種機(jī)器可讀或計(jì)算機(jī)可讀的媒體中的數(shù)據(jù)和/或指令在它們的行為、寄存器傳送、邏輯部件,和/或其它特性的方面被描述。這樣的格式化的數(shù)據(jù)和/或指令可體現(xiàn)在其中計(jì)算機(jī)可讀介質(zhì)包括但不限于各種形式的物理(非臨時(shí)性)、非易失性存儲介質(zhì),諸如光,磁或半導(dǎo)體存儲介質(zhì)。
除非上下文明確要求,否則在下面的權(quán)利要求和本文的描述中,術(shù)語“包含”或“包括”等應(yīng)在包含性意義上被解釋,包含性意義與排他性或者窮盡性意義相反;也就是說,在“包含,但不限于”的意義上解釋。使用單數(shù)或復(fù)數(shù)的詞也分別包括復(fù)數(shù)或單數(shù)。此外,詞語“這里”,“下面”,“上面”,“下面”和具有類似含義的詞語指本申請整體,而不是本申請的任何特定部分。當(dāng)參照兩個(gè)或更多個(gè)項(xiàng)目的列表使用詞語“或”時(shí),該單詞覆蓋了單詞的以下解釋的全部:列表中的任何項(xiàng)目,列表中的全部項(xiàng)目和列表中的項(xiàng)目的任意組合。
貫穿本公開內(nèi)容,包括在權(quán)利要求中,“對于”信號或數(shù)據(jù)執(zhí)行操作(例如,過濾,縮放,變換,或施加增益到信號或數(shù)據(jù))的表述在廣義上使用,以指示直接對信號或數(shù)據(jù)執(zhí)行操作,或?qū)π盘柣驍?shù)據(jù)的已處理版本(例如,在對其執(zhí)行操作之前經(jīng)受了預(yù)先濾波或者預(yù)處理的信號的版本)執(zhí)行操作。表達(dá)“系統(tǒng)”在廣義上使用以指示設(shè)備,系統(tǒng)或子系統(tǒng)。例如,實(shí)現(xiàn)了解碼器的子系統(tǒng)可以被稱為解碼器系統(tǒng),和包括這樣的子系統(tǒng)的系統(tǒng)(例如,響應(yīng)于多個(gè)輸入產(chǎn)生Y個(gè)輸出信號的系統(tǒng),其中,子系統(tǒng)產(chǎn)生的輸入中的M個(gè)輸入,而其它的Y-M個(gè)輸入被從外部源接收到)也可以被稱為解碼器系統(tǒng)。術(shù)語“處理器”是在廣義上使用,以指示可編程或可配置(例如,通過軟件或固件)為對數(shù)據(jù)(例如,音頻,或視頻或其他圖像數(shù)據(jù))執(zhí)行操作的系統(tǒng)或設(shè)備。處理器的例子包括現(xiàn)場可編程門陣列(或其它可配置的集成電路芯片或芯片組),編程和/或以其他方式配置為對音頻或其它聲音數(shù)據(jù)執(zhí)行流水線處理的數(shù)字信號處理器,可編程通用處理器或計(jì)算機(jī),以及可編程微處理器芯片或芯片組。術(shù)語“元數(shù)據(jù)”是指與對應(yīng)的音頻數(shù)據(jù)(還包括元數(shù)據(jù)的比特流的音頻內(nèi)容)分離且不同的數(shù)據(jù)。元數(shù)據(jù)與音頻數(shù)據(jù)相關(guān)聯(lián),并且指示該音頻數(shù)據(jù)的至少一個(gè)特征或特性(例如,對于音頻數(shù)據(jù)或由音頻數(shù)據(jù)表示的對象的軌跡已執(zhí)行或者應(yīng)執(zhí)行哪個(gè)(哪些)類型的處理)。元數(shù)據(jù)與音頻數(shù)據(jù)的關(guān)聯(lián)是時(shí)間同步的。因此,當(dāng)前(最近接收的或更新的)元數(shù)據(jù)可指示對應(yīng)的音頻數(shù)據(jù)同時(shí)地具有所指示的特征,和/或包括所指示的類型的音頻數(shù)據(jù)處理的結(jié)果。貫穿本公開內(nèi)容,包括在權(quán)利要求中,“耦合”或“被耦合”用于表示直接或間接的連接。因此,如果第一設(shè)備耦合到第二設(shè)備,該連接可以是通過直接連接,或者通過經(jīng)由其它設(shè)備和連接的間接連接。
貫穿本公開內(nèi)容,包括在權(quán)利要求中,以下表述具有以下定義:揚(yáng)聲器和擴(kuò)音器被同義地使用以表示任何聲音發(fā)射換能器。這個(gè)定義包括實(shí)現(xiàn)為多換能器(例如,低音和高音)的揚(yáng)聲器;揚(yáng)聲器饋送;被直接施加到揚(yáng)聲器的音頻信號;或要依次被施加到串聯(lián)的放大器和揚(yáng)聲器的音頻信號;通道(或“音頻通道”):單聲道音頻信號。這種信號通常可以被渲染為等同于該信號直接應(yīng)用于在期望或標(biāo)稱位置的揚(yáng)聲器。所希望的位置可以是靜態(tài)的(物理揚(yáng)聲器的情況通常如此),或是動態(tài)的,音頻節(jié)目:一個(gè)或多個(gè)音頻通道(至少一個(gè)揚(yáng)聲器通道和/或至少一個(gè)對象通道)以及可選的相關(guān)聯(lián)的元數(shù)據(jù)(例如,描述了期望的空間音頻表示的元數(shù)據(jù))的集合;揚(yáng)聲器通道(或“揚(yáng)聲器饋送通道”):與指定揚(yáng)聲器(在期望或標(biāo)稱位置)或在所定義的揚(yáng)聲器配置中的指定揚(yáng)聲器區(qū)域相關(guān)聯(lián)的音頻通道。揚(yáng)聲器通道被渲染為等同于音頻信號直接應(yīng)用與指定的揚(yáng)聲器(在期望或標(biāo)稱位置)或在指定的揚(yáng)聲器區(qū)域中的揚(yáng)聲器;目標(biāo)通道:指示由音頻源發(fā)出的聲音的音頻通道(有時(shí)被稱為音頻“對象”)。通常情況下,目標(biāo)通道確定參數(shù)音頻源描述(例如,指示參數(shù)音頻源描述的元數(shù)據(jù)被包括在對象通道中或被提供對象通道)。源描述可確定由源發(fā)射的聲音(作為時(shí)間的函數(shù)),作為時(shí)間的函數(shù)的源的表觀位置(例如,3D空間坐標(biāo)),以及可選的表征該源的至少一個(gè)附加的參數(shù)(例如,表觀源尺寸或?qū)挾?;和基于對象的音頻節(jié)目:包括一個(gè)或多個(gè)對象通道的(和可選地還包括至少一個(gè)揚(yáng)聲器通道)以及可選的相關(guān)聯(lián)的元數(shù)據(jù)(例如,指示發(fā)射由對象通道指示的聲音的音頻對象的軌跡的元數(shù)據(jù),或者指示由對象通道指示的聲音的希望的空間音頻表示的元數(shù)據(jù),或指示作為由對象通道指示的聲音源的至少一個(gè)音頻對象的身份的元數(shù)據(jù))的音頻節(jié)目。
盡管已經(jīng)作為示例并且根據(jù)具體實(shí)施例描述了一個(gè)或多個(gè)實(shí)現(xiàn),但是應(yīng)理解,所述一個(gè)或多個(gè)實(shí)現(xiàn)并不局限于所公開的實(shí)施例。相反,其意圖涵蓋本領(lǐng)域技術(shù)人員將顯見的各種修改和類似布置。因此,所附權(quán)利要求的范圍應(yīng)被給予最寬泛的解釋以便涵蓋所有這些修改和類似的布置。