專利名稱:一種視頻流解碼計(jì)算復(fù)雜度估計(jì)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于多媒體計(jì)算領(lǐng)域,涉及壓縮視頻流解碼計(jì)算復(fù)雜度的動態(tài)預(yù)測,是一 種能夠用于節(jié)省視頻流解碼所需能耗的關(guān)鍵技術(shù),特別適用于嵌入式移動計(jì)算應(yīng)用環(huán)境。
背景技術(shù):
近年來,隨著計(jì)算機(jī)網(wǎng)絡(luò)、大規(guī)模集成電路的發(fā)展和多媒體技術(shù)的日益成熟,各種 多媒體應(yīng)用不斷出現(xiàn)和普及,有力地促進(jìn)了工作效率的提高,極大地豐富了人們的日常生 活,同時(shí)也需要消耗大量的能量。對于計(jì)算量大,計(jì)算過程中需要進(jìn)行密集數(shù)據(jù)訪問的多媒 體解碼應(yīng)用,消耗的能量更高,使得節(jié)能技術(shù)的研究變得越來越重要。特別是對于目前方興 未艾的無線多媒體應(yīng)用,由于其硬件平臺多采用電池供電,能量有限,使得通過采用節(jié)能技 術(shù)來提高續(xù)航能力逐漸成為衡量眾多移動設(shè)備性能的重要指標(biāo)。針對上述問題,人們提出 了包括硬件、軟件以及硬軟件協(xié)同優(yōu)化設(shè)計(jì)在內(nèi)的各種資源優(yōu)化和節(jié)能方法。其中尤以計(jì) 算量整形技術(shù)和動態(tài)電壓調(diào)節(jié)技術(shù)(DVS)應(yīng)用得最為廣泛。計(jì)算量整形技術(shù)是以解碼設(shè)備的處理能力和功耗需求為上限,在服務(wù)器端通過調(diào) 整多媒體內(nèi)容的碼率、幀率、幅面等格式信息以及運(yùn)動估計(jì)精度、可用模式等編碼工具集, 對壓縮碼流進(jìn)行轉(zhuǎn)碼,從而生成適合解碼器解碼的壓縮碼流。動態(tài)電壓調(diào)節(jié)技術(shù)是根據(jù)多 媒體任務(wù)所需要的計(jì)算量動態(tài)調(diào)節(jié)處理器電壓/頻率。當(dāng)負(fù)載較低時(shí),降低處理器電壓/ 頻率;而當(dāng)負(fù)載增大時(shí),提升處理器電壓/頻率。實(shí)現(xiàn)上述兩類技術(shù)的基礎(chǔ)是對當(dāng)前多媒體 內(nèi)容所需要的解碼計(jì)算量進(jìn)行快速準(zhǔn)確的預(yù)估。但是現(xiàn)有的編碼標(biāo)準(zhǔn)(如MPEG-4,H.264) 為了獲得更好的壓縮性能,往往采用了多種復(fù)雜度各異的編碼工具進(jìn)行編碼,這使得精確 的解碼復(fù)雜度估計(jì)變得非常困難。目前常用的復(fù)雜度估計(jì)方法包含兩類基于統(tǒng)計(jì)分析的方法和基于預(yù)測的方法。 前者將解碼過程分成幾個(gè)相對獨(dú)立的模塊(如變長解碼、運(yùn)動補(bǔ)償?shù)?,然后對每個(gè)模塊進(jìn) 行分析并確定各模塊所需計(jì)算量與各種編碼參數(shù)之間的依賴關(guān)系,總的解碼計(jì)算量由各個(gè) 獨(dú)立模塊計(jì)算量之和構(gòu)成。這類方法能夠?qū)獯a計(jì)算量進(jìn)行非常精確的分析,非常適合應(yīng) 用于計(jì)算量整形技術(shù)中,因?yàn)樵诰幋a過程中可以直接獲取多種編碼信息從而進(jìn)行調(diào)節(jié),無 需多余的開銷。而對于動態(tài)電壓調(diào)節(jié)技術(shù),這種基于分析的方法一般是在解碼端插入大量 的分析語句,或者在傳輸過程中加入很多指示復(fù)雜度的信息。這樣不僅增加了大量的數(shù)據(jù), 還使得解碼系統(tǒng)需要做很多修改,不利于模塊化的系統(tǒng)設(shè)計(jì)?;陬A(yù)測的方法是根據(jù)相鄰視頻幀之間的相關(guān)性,利用前面幀的計(jì)算量來估計(jì)后 面幀所需的計(jì)算量。這類方法的重點(diǎn)是需要挖掘出相鄰幀計(jì)算量之間的相關(guān)性。因?yàn)橹灰?建起了這種相關(guān)性,就可以通過簡單的預(yù)測獲取每一幀的計(jì)算量。其運(yùn)行時(shí)開銷小,適合于 處理能力較弱的多媒體計(jì)算平臺。只有獲得準(zhǔn)確的相關(guān)性關(guān)系才能保證預(yù)測結(jié)果的精確 性,但是如何挖掘出相鄰幀之間的相關(guān)性是一個(gè)較為困難的問題。因此,迫切需要發(fā)展快速而有效的視頻解碼復(fù)雜度估計(jì)方法,以求能夠以較小的 運(yùn)行開銷獲得準(zhǔn)確的估計(jì)結(jié)果。
發(fā)明內(nèi)容
本發(fā)明提出一種融合離線統(tǒng)計(jì)分析和在線動態(tài)預(yù)測的視頻解碼復(fù)雜度估計(jì)方法, 實(shí)現(xiàn)以較小的運(yùn)行開銷獲得準(zhǔn)確的估計(jì)結(jié)果。一種視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,首先離線擬合確定基于視頻幀幀長的視頻 流解碼計(jì)算復(fù)雜度估計(jì)模型,再利用該模型對視頻幀的解碼計(jì)算復(fù)雜度進(jìn)行估計(jì)。所述復(fù)雜度估計(jì)模型C(L) = KXL+B,系數(shù)(K,B)通過離線擬合確定,L為視頻幀 幀長。所述視頻幀為P幀,該方法還包括利用對視頻幀的解碼計(jì)算復(fù)雜度估計(jì)誤差在線 更新所述系數(shù)(K,B)的步驟。所述系數(shù)更新方法為當(dāng)復(fù)雜度估計(jì)誤差表征視頻運(yùn)動程度小,則保持系數(shù)K不 變,改變系數(shù)B ;當(dāng)復(fù)雜度估計(jì)誤差表征視頻運(yùn)動程度復(fù)雜,則保持系數(shù)B不變,改變系數(shù)K。所述系數(shù)更新步驟具體為當(dāng)復(fù)雜度估計(jì)誤差Δ在閾值范圍內(nèi),則所述系數(shù)(K,
A-B
B)更新為(Κ,Β = Β+Δ),否則(K,B)更新為(K = +K,B)。所述閾值范圍為[Δ π Δ 2],Δ i = Bmin-B, Δ 2 = Bmax-B, Bmax和Bmin分別為對不同紋 理不同運(yùn)動程度的標(biāo)準(zhǔn)測試序列壓縮后的P幀進(jìn)行擬合獲取的多組系數(shù)中B的最大值和最小值。所述視頻幀為I幀,系數(shù)(Κ,Β)的離線擬合確定方式具體為獲取以全I(xiàn)幀壓縮后 的標(biāo)準(zhǔn)測試序列中各幀的解碼復(fù)雜度及壓縮幀幀長,以模型C(L) = KXL+B進(jìn)行線性擬合 得到I幀模型系數(shù)(K,B)。所述視頻幀為P幀,系數(shù)(K,B)的離線擬合確定方式具體為將標(biāo)準(zhǔn)測試序列壓 縮得到的每個(gè)I幀后連續(xù)的P幀劃分為一個(gè)集合,利用模型C(L) = KXL+B對劃分得到的 集合分別進(jìn)行擬合,在擬合得到的系數(shù)中選取使復(fù)雜度估計(jì)誤差最小的系數(shù)作為所述系數(shù) (K,B)。根據(jù)視頻幀幅面調(diào)整所述離線擬和確定的系數(shù)(K,B) = (K, rXB),r = VS1, S2 為當(dāng)前視頻幀幅面,S1為離線擬合采用的標(biāo)準(zhǔn)測試序列的幅面。本發(fā)明的技術(shù)效果體現(xiàn)在本發(fā)明利用離線分析得到解碼復(fù)雜度相對于視頻編碼參數(shù)的統(tǒng)計(jì)模型,并挖掘出 模型系數(shù)隨著視頻內(nèi)容變化而變化的規(guī)律。解碼器在線運(yùn)行過程中,利用上述模型對視頻 解碼器復(fù)雜度進(jìn)行估計(jì);同時(shí)結(jié)合模型系數(shù)隨視頻內(nèi)容的變化規(guī)律,并將其映射為相鄰視 頻幀之間的相關(guān)性,從而利用前面幀的模型系數(shù)動態(tài)調(diào)整后續(xù)幀的模型系數(shù),最終實(shí)現(xiàn)快 速高效地獲得能適應(yīng)視頻內(nèi)容變化的解碼復(fù)雜度估計(jì)結(jié)果。本發(fā)明采用線性模型對解碼計(jì)算復(fù)雜度進(jìn)行估計(jì),該模型僅包含視頻幀長一個(gè)參 數(shù),且該參數(shù)可根據(jù)所傳輸?shù)拇a流直接得到,無須在解碼器中添加復(fù)雜的分析語句或改變 現(xiàn)有的碼流語法結(jié)構(gòu),解碼器設(shè)計(jì)流程簡單、碼流兼容性好。模型系數(shù)采用離線擬合的方式 獲得,并結(jié)合視頻內(nèi)容的變化對P幀系數(shù)進(jìn)行在線更新。每次更新只需利用上一次更新結(jié) 果作簡單運(yùn)算,視頻幀解碼計(jì)算復(fù)雜度則由模型系數(shù)直接估算得到,系統(tǒng)運(yùn)行時(shí)開銷??;而 且在線運(yùn)行過程中對P幀模型系數(shù)更新可及時(shí)反映被解碼視頻內(nèi)容的變化,從而使得估算得到的解碼計(jì)算復(fù)雜度較為準(zhǔn)確。本發(fā)明所設(shè)計(jì)的模型對不同幅面的視頻其模型系數(shù)滿足 比例關(guān)系,在線運(yùn)行時(shí)可根據(jù)視頻幅面動態(tài)調(diào)節(jié)模型系數(shù),系統(tǒng)自適應(yīng)性好。對于不同的硬 件平臺及軟件實(shí)現(xiàn)只需重新進(jìn)行離線分析獲得模型系數(shù),通用性較好。
圖1 視頻幀解碼復(fù)雜度估計(jì)誤差、視頻運(yùn)動復(fù)雜程度以及解碼計(jì)算復(fù)雜度模型 系數(shù)三者之間的映射關(guān)系示意圖;圖2 本發(fā)明的離線估計(jì)與在線運(yùn)行模塊交互框圖;圖3 本發(fā)明離線分析視頻解碼計(jì)算復(fù)雜度模型流程圖;圖4 本發(fā)明在線預(yù)測視頻解碼計(jì)算復(fù)雜度流程圖。
具體實(shí)施例方式本發(fā)明包含三項(xiàng)關(guān)鍵技術(shù),即統(tǒng)計(jì)模型的確立方法、模型系數(shù)隨視頻內(nèi)容變化規(guī) 律的挖掘技術(shù)以及獲得相鄰幀模型系數(shù)之間關(guān)系的方法。統(tǒng)計(jì)模型的確立采用的是基于分析的方法。與傳統(tǒng)的基于分析的方法將解碼過程 劃分為多個(gè)相對獨(dú)立模塊并對各個(gè)模塊的計(jì)算復(fù)雜度單獨(dú)建模不同,本方法是依據(jù)各個(gè)模 塊計(jì)算復(fù)雜度與視頻幀長之間的關(guān)系對解碼計(jì)算復(fù)雜度進(jìn)行建模。本方法將視頻解碼中的 計(jì)算模塊劃分為兩類,即i.計(jì)算復(fù)雜度與視頻幀長密切相關(guān)的模塊。ii.計(jì)算復(fù)雜度與視頻幀長基本無關(guān)的模塊。系統(tǒng)解碼復(fù)雜度則相應(yīng)的由兩部分構(gòu)成一部分與幀長密切相關(guān),另一部分則與 幀長基本無關(guān),可用公式表示為C 一 Cdependent+Cindependent 一 K X L+Cindependent為簡化表述,在下文中將上式表示為C = KXL+B(1)其中C為解碼計(jì)算復(fù)雜度;L為視頻幀長,在解碼過程中可直接得到;K和B為模型 系數(shù),將通過統(tǒng)計(jì)的方法獲得。具體方法為在離線情況下,將標(biāo)準(zhǔn)測試序列壓縮并得到壓 縮碼流,輸入到解碼系統(tǒng),獲得每一幀的計(jì)算量和幀長,再通過最小二乘法擬合得到統(tǒng)計(jì)模 型系數(shù)。在線運(yùn)行時(shí),便可以通過已得到的模型系數(shù)直接對解碼計(jì)算復(fù)雜度進(jìn)行估計(jì)。模型系數(shù)可能會隨著視頻內(nèi)容的變化而發(fā)生變化。本發(fā)明重點(diǎn)考察壓縮視頻流中 最重要的兩類幀,即幀內(nèi)編碼幀(I幀)和幀間編碼幀(P幀)。其中I幀只包含幀內(nèi)預(yù)測, 而不同的幀內(nèi)預(yù)測模式計(jì)算復(fù)雜度變化較小,因此I幀的模型系數(shù)隨視頻內(nèi)容變化較小, 可以采用同一模型對不同內(nèi)容的I幀計(jì)算復(fù)雜度進(jìn)行建模。對于P幀,其不僅包含幀內(nèi)預(yù) 測,還包含幀間預(yù)測,兩類預(yù)測復(fù)雜度變化較大,而且隨著視頻內(nèi)容變化,P幀預(yù)測模式和運(yùn) 動矢量精度會劇烈變化,因此P幀的模型系數(shù)會相應(yīng)的隨著視頻內(nèi)容的變化而發(fā)生巨大改 變。由此產(chǎn)生了本發(fā)明的第二項(xiàng)關(guān)鍵技術(shù)挖掘模型系數(shù)隨視頻內(nèi)容變化而變化的規(guī)律。 更進(jìn)一步來說,是針對ι、ρ幀壓縮的不同特點(diǎn),采用同一模型對不同內(nèi)容的I幀的解碼計(jì)算 量進(jìn)行估計(jì),同時(shí)挖掘P幀模型系數(shù)隨視頻內(nèi)容變化的規(guī)律。本發(fā)明通過改變式(1)中的模型系數(shù)值(K,B)的大小來反映視頻內(nèi)容的變化。其中K的取值主要反映了視頻運(yùn)動的復(fù)雜程度,而B的取值則反映了碼流中實(shí)際被編碼的殘 差的多少。具體來說,分為以下兩種情況i)對于運(yùn)動較小的視頻序列,其相鄰兩視頻幀的運(yùn)動復(fù)雜程度相同,即K值相同; 解碼計(jì)算復(fù)雜度的變化由小幅度位移產(chǎn)生的被編碼殘差之間的差異導(dǎo)致,即B值發(fā)生變 化。ii)對于運(yùn)動量劇烈的視頻,解碼計(jì)算復(fù)雜度的變化則主要是由于相鄰視頻幀運(yùn) 動復(fù)雜度發(fā)生劇烈變化而導(dǎo)致的,即K值不同,而B值保持基本不變。上述關(guān)鍵技術(shù)通過對視頻運(yùn)動復(fù)雜程度進(jìn)行分級,將模型系數(shù)的變化定義成受視 頻內(nèi)容變化約束的分段函數(shù),從而挖掘出模型系數(shù)隨視頻內(nèi)容變化而變化的規(guī)律。在系統(tǒng) 實(shí)現(xiàn)中,分段函數(shù)約束條件——即視頻運(yùn)動復(fù)雜程度必須是能夠被量化的。由此引出本發(fā) 明第三項(xiàng)關(guān)鍵技術(shù)采用視頻幀的解碼復(fù)雜度估計(jì)誤差作為視頻運(yùn)動復(fù)雜度的度量方法, 并結(jié)合關(guān)鍵技術(shù)二中模型系數(shù)變化的分段函數(shù),建立相鄰幀模型系數(shù)之間的關(guān)系,參見圖 1。設(shè)前一幀(第i_l幀)的模型系數(shù)為(Kp1,Bh),通過該模型系數(shù)預(yù)測得到當(dāng)前幀 (第i幀)的解碼計(jì)算量Ci,經(jīng)過解碼后得到當(dāng)前幀的真實(shí)計(jì)算量為CK(i)。則當(dāng)前幀的解碼 復(fù)雜度估計(jì)誤差為Q^-Ci,且有
C1 =K1^X L1+B^1 Cm=KiXL^Bi當(dāng)視頻運(yùn)動較小時(shí),相鄰幀模型系數(shù)應(yīng)基本相同,則當(dāng)前幀的解碼復(fù)雜度估計(jì)誤 差應(yīng)較?。欢?dāng)視頻運(yùn)動復(fù)雜時(shí),相鄰幀模型系數(shù)差別較大,當(dāng)前幀的解碼復(fù)雜度估計(jì)誤差 應(yīng)較大。因此可用當(dāng)前幀的解碼復(fù)雜度估計(jì)誤差來表征視頻運(yùn)動復(fù)雜程度,進(jìn)而將其作為 選擇模型系數(shù)變化函數(shù)的約束條件,從而獲得相鄰幀模型系數(shù)之間的關(guān)系。在關(guān)鍵技術(shù)二中,將視頻運(yùn)動復(fù)雜度分為兩級,并給出兩種情況下模型系數(shù)的變 化規(guī)律。相應(yīng)地,當(dāng)前幀的解碼復(fù)雜度估計(jì)誤差被劃分為兩級i)當(dāng)估計(jì)誤差在區(qū)間[A1, Δ2]時(shí),認(rèn)為該變化主要是由實(shí)際被編碼殘差發(fā)生小 幅變化所導(dǎo)致,則兩視頻幀K值相同,B值發(fā)生變化ii)當(dāng)估計(jì)誤差不屬于上述區(qū)間[ApA2]時(shí),認(rèn)為該變化是由于相鄰幀之間運(yùn)動 復(fù)雜度發(fā)生較大變化而導(dǎo)致,則兩視頻幀K值不同,B值保持基本不變。依據(jù)上述準(zhǔn)則,相鄰幀模型系數(shù)關(guān)系可由式(2),(3)獲得。條件一當(dāng)前幀的解碼復(fù)雜度估計(jì)誤差在一定范圍內(nèi),S卩AiSQ^-CiS Δ2,貝IJ: ‘K1 = K1 ,<{(2)
、Bi = CR^ - Ci + B^1條件二 當(dāng)前幀的解碼復(fù)雜度估計(jì)誤差超過一定范圍,艮口 。κα)-(^ δι| |cK⑴-Ci 彡 δ2,則
C -C K=m '+K1 1 L1卜1(3)
B1 = B1-I
6
獲得當(dāng)前幀(第i幀)的模型系數(shù)后,便可估計(jì)下一幀(第i + Ι幀)的解碼計(jì)算 量Ci+1。也就是說通過式(2)、(3),在解碼器運(yùn)行過程中可以得到任何一個(gè)P幀的模型系數(shù), 進(jìn)而預(yù)測下一幀的解碼復(fù)雜度,如式(4)所示(KnBi) ^ (K1^,B1^ ^ ...... ^ (K1^B1) ^ (K0,B0) (A)迭代初值(Ktl, B0)是用來預(yù)測第一個(gè)P幀的解碼計(jì)算復(fù)雜度??梢酝ㄟ^離線統(tǒng)計(jì) 分析的方法獲得。另一方面,用以判斷當(dāng)前幀的解碼復(fù)雜度估計(jì)誤差的閾值[Δ ” Δ2]也需 要在離線分析的基礎(chǔ)上獲得。根據(jù)上述關(guān)鍵技術(shù),本發(fā)明主要包含以下兩個(gè)步驟,即1)離線統(tǒng)計(jì)分析本步驟主要目的是獲得I幀模型系數(shù)以及P幀動態(tài)建模所需要 的模型系數(shù)迭代初值和迭代控制閾值。2)在線動態(tài)預(yù)測本步驟是根據(jù)步驟1)中所生成的I幀模型系數(shù)、P幀模型系數(shù) 迭代初值以及迭代控制閾值,在解碼過程中對視頻幀解碼所需的計(jì)算量進(jìn)行動態(tài)預(yù)測。步驟1)包括如下幾個(gè)子步驟11)通過統(tǒng)計(jì)方法得到I幀的模型系數(shù)111)選擇與解碼器所采用的壓縮標(biāo)準(zhǔn)一致的編碼器,采用此編碼器將某種幅面大 小(記為S1)的標(biāo)準(zhǔn)測試碼流以全I(xiàn)幀形式在不同碼率下進(jìn)行編碼。將壓縮碼流進(jìn)行解碼, 并獲取解碼每一幀的計(jì)算復(fù)雜度及壓縮幀幀長,記為(Cn,Ln)。設(shè)共對M個(gè)標(biāo)準(zhǔn)測試序列, 分別在N種碼率條件下進(jìn)行編碼,每個(gè)測試序列包含T幀視頻,則η e [Ι,ΜΧΝΧΤ]。112)以幀長為自變量,解碼計(jì)算復(fù)雜度為因變量對111)中生成的MXNXT組(Cn, Ln)利用最小二乘法進(jìn)行線性擬合,獲得I幀幀長與計(jì)算復(fù)雜度之間的模型參數(shù),記為(K1, B》。12)通過統(tǒng)計(jì)的方法得到P幀動態(tài)建模所需要的模型系數(shù)迭代初值和迭代控制閾 值121)將S1幅面大小的標(biāo)準(zhǔn)測試碼流按照最大I幀間隔為250進(jìn)行編碼。將上述 碼流進(jìn)行解碼,并獲取解碼每一個(gè)P幀解碼計(jì)算復(fù)雜度以及其幀長,記為(Cn,Ln)。設(shè)共對M 個(gè)標(biāo)準(zhǔn)測試序列,分別在N種碼率條件下進(jìn)行編碼,每個(gè)測試序列包含T幀視頻。將同一個(gè) 視頻序列在某一碼率下的P幀的數(shù)據(jù)劃分至一個(gè)集合,則上述數(shù)據(jù)共劃分為MXN個(gè)集合, 記每個(gè)集合為Ai,即Ai= Kcn⑴,Ln⑴)In e [1, Τ] Π Z+},且第 η 幀為 P 幀122)對121)中生成的MXN個(gè)集合分別利用最小二乘法進(jìn)行線性擬合,獲得MXN 組模型參數(shù)=P1 = {(Κρω,Βρ⑴)|i e [Ι,ΜΧΝ] η Ζ+},并求得Bp⑴的最大值和最小值,記為 Bmax,Bmin,將其作為迭代控制閾值。解碼復(fù)雜度估計(jì)誤差的閾值[Δ1; Δ2]將根據(jù)迭代控制 閾值,在在線運(yùn)行的過程中計(jì)算得到。123)找出121)中產(chǎn)生的壓縮碼流中的I幀,并將每個(gè)I幀后連續(xù)的多個(gè)P幀劃分 為一個(gè)集合(本發(fā)明選取25個(gè)P幀作為一個(gè)集合,不足25幀以實(shí)際幀數(shù)為準(zhǔn),少于5幀則 不予計(jì)算此I幀)。設(shè)共有W個(gè)集合,對每個(gè)集合的幀長與計(jì)算復(fù)雜度之間的關(guān)系分別利用 最小二乘法進(jìn)行線性擬合,獲得W組模型系數(shù),即=P2 = {(KP(J),BP(J)) I j e [l,ff] η Ζ+}124)設(shè)迭代初始模型系數(shù)為(ΚΡ,ΒΡ),令其分別等于P2中的各組系數(shù)。利用 式(1)估計(jì)121)中所生成的每個(gè)集合Ai的第一個(gè)P幀的解碼計(jì)算量,并計(jì)算估計(jì)值與真實(shí)值之間的誤差百分比e”則對P2中的每組參數(shù)(ΚΡ ),Βρω),其總估計(jì)誤差為
MxN
Ej = Y^eij (7+e[l,W]nZ+),選取估計(jì)誤差Ej最小的(KP(j),BP(j))作為P幀的迭代初始 i=\
模型系數(shù)(Kp, Bp)。在獲得各模型系數(shù)后,便可在線對解碼計(jì)算復(fù)雜度進(jìn)行動態(tài)預(yù)測。步驟2包括如 下幾個(gè)子步驟21)初始化各模型系數(shù),包括(ΚΙ(。),Βιω) = (KijBi), (Κρ(ο),Βρ(ο)) = (ΚΡ, ΒΡ), Bmax (ο)
—DD— P
Dmax,Dmin(o) ^min022)計(jì)算接收視頻的幅面S2與步驟1)中所使用的視頻幅面S1之比,即r = S2/Si。 根據(jù) r 對模型參數(shù)進(jìn)行比例縮放,即(KpB1) = (KI(0),r XB1 (0)),(KP,Bp) = (KP(。),rXBP(。)), (Bmin = r X Bmin(0),Bmax = r XBmax(o))。23)計(jì)算接收視頻幅面是否發(fā)生改變。如改變,則跳至22)更新模型系數(shù),否則繼續(xù)。24)讀取當(dāng)前幀幀長L并判斷其幀類型如果是I幀,則直接利用公式C = K1XI^B1 估算其所需解碼計(jì)算復(fù)雜度;如果是P幀,則利用公式C = KPXL+BP進(jìn)行估算。25)對當(dāng)前幀進(jìn)行解碼,解碼后得到真實(shí)計(jì)算量CK。如果Ck < Bmin,則令Bmin = Cro26)計(jì)算當(dāng)前幀的解碼復(fù)雜度估計(jì)誤差的閾值[A1, Δ2]。A1 = Bmin-Bp, A2 = Bmax_Bp27)如果當(dāng)前幀為P幀,計(jì)算當(dāng)前幀的解碼計(jì)算復(fù)雜度估計(jì)誤差Δ = Ce-C0如果 A1^ Δ ^ Δ2,則按式⑵更新Bp為ΒΡ = ΒΡ+Δ ;否則按式(3)更新Kp為fp=| + fp。
將更新后的(KP,BP)作為下一個(gè)P幀的預(yù)測模型系數(shù)。28)如果還有視頻幀需要解碼,則跳至23)重復(fù)進(jìn)行?,F(xiàn)以MPEG-4視頻流的解碼為例對本方法作進(jìn)一步說明。本實(shí)例所采用的硬件平臺是基于TI公司TMS320DM642嵌入式視頻解碼器,解碼軟 件為與MPEG-4視頻編碼標(biāo)準(zhǔn)兼容的DIVX解碼器。實(shí)驗(yàn)中采用CIF (352 X 288)格式的標(biāo)準(zhǔn) 測試序列(包括Akiyo,Hall, Coastguard, Foreman, Crew, Mobile等六個(gè)測試序列,每個(gè) 序列包含300幀圖像)通過XVID-0. 9. 2版編碼器編碼后(XVID編碼器遵循MPEG-4編碼標(biāo) 準(zhǔn)),輸入到上述解碼器中進(jìn)行解碼,編碼器參數(shù)設(shè)置采用XVID編碼器原始配置參數(shù)。本實(shí)例總體流程圖如圖2所示,首先通過離線分析得到解碼器計(jì)算復(fù)雜度估計(jì)的 統(tǒng)計(jì)模型系數(shù)(Dl)、解碼器在線運(yùn)行時(shí)利用上述模型系數(shù)對視頻解碼計(jì)算復(fù)雜度進(jìn)行動態(tài) 預(yù)估(D2)。具體步驟如下1)離線統(tǒng)計(jì)分析,圖3為這一步驟的詳細(xì)過程11)通過統(tǒng)計(jì)的方法,得到I幀的模型系數(shù)111)在碼率為 8OOkbps, 1000kbps, 1500kbps, 1800kbps, 2000kbps, 2500kbps 條件 下,將六個(gè)測試序列利用XVID編碼器編碼為全I(xiàn)幀序列,共生成36個(gè)壓縮序列。將生成的 壓縮序列分別輸入到解碼器,并記錄每一幀的解碼計(jì)算復(fù)雜度和幀長為(Cn,Ln), η e [1, 300X36]。采用每次解碼所需要的Cycle數(shù)作為解碼計(jì)算復(fù)雜度度量,視頻幀長以字節(jié)為 單位。
112)以幀長為自變量,解碼計(jì)算量為因變量,對上述300X36組(Cn,Ln)利用 最小二乘法進(jìn)行線性擬合,獲得I幀幀長與計(jì)算量之間的模型系數(shù)(K1, B1) = (215.51, 6. 4108 X IO6)。12)通過統(tǒng)計(jì)的方法得到P幀動態(tài)建模所需要的模型系數(shù)迭代初值和迭代控制閾值。121)在碼率分別為 200kbps、400kbps、500kbps、600kbps、800kbps 條件下,將六個(gè) 測試序列利用XVID編碼器按照I幀間隔為250進(jìn)行編碼,共生成30個(gè)壓縮序列。將生成 的壓縮序列分別輸入到解碼器,并將每個(gè)序列中P幀的(Cn,Ln)劃分至一個(gè)獨(dú)立的集合,則 共生成30個(gè)數(shù)據(jù)集合,每個(gè)集合中最多含298個(gè)P幀(300幀中至少有兩個(gè)I幀)。122)對121)中生成的30個(gè)集合分別利用最小二乘法進(jìn)行線性擬合,得到30組模 型參數(shù),P1 = {(Kpa),Bp⑴)|i e [1,30] Π Ζ+},并求得Βρω的最大值和最小值為(Bmin,Bmax) =(1.7Χ106,2.4Χ106)。將其作為迭代控制閾值,在線運(yùn)行時(shí)可利用此迭代控制閾值計(jì)算 得到解碼復(fù)雜度估計(jì)誤差的閾值Δ2]。123)找出121)中產(chǎn)生的壓縮碼流中的I幀,并將每個(gè)I幀后的連續(xù)25個(gè)P幀的 劃分為一個(gè)集合,不足25幀以實(shí)際視頻幀數(shù)為準(zhǔn),少于5幀則不予計(jì)算此I幀。共產(chǎn)生79 個(gè)集合,每個(gè)集合包含25組數(shù)據(jù)。對每個(gè)集合分別利用最小二乘法進(jìn)行線性擬合,獲得79 組模型系數(shù),即P2 = {(KP(J),BP(J)) |j e [1,79] η Ζ+}124)設(shè)初始模型參數(shù)為(ΚΡ,ΒΡ),令其分別等于P2中的各組系數(shù)。禾Ij用式⑴估計(jì) 121)中30個(gè)集合各自第一個(gè)P幀的解碼計(jì)算量,并計(jì)算估計(jì)值與真實(shí)值之間的誤差百分比
30
ei0則對P2中的每組系數(shù)(KP(j),BP(j)),其總估計(jì)誤差為巧=Σ O e [1,79] η Z+) ο
i=\
選取估計(jì)誤差Ej最小的(KP(j),BP(J))作為P幀的初始模型系數(shù),即(KP,Bp) = (325. 58, 2. 3171 X IO6)。2)在線動態(tài)估計(jì),圖4為這一步驟的詳細(xì)描述。21)初始化模型系數(shù)和迭代控制閾值,包括(Κιω,Βιω) = (KijBi), (Κρ(ο) , Βρ(ο))= (Kp,Bp),Bmax(O) — BmasJ Bmin(O) — Bmin。22)接收要解碼的視頻,并獲取其幅面。根據(jù)接收視頻與111)中視頻幅面的比值 對模型系數(shù)初值和迭代控制閾值進(jìn)行縮放i.設(shè)接收視頻與 111)中視頻同為 CIF 格式,則r = 1,(K1, B1) = (KI(o), ΒΙ(ο)), (Kp, Bp) = (ΚΡ(ο), ΒΡ(0)),(Bmin = Bmin(0),Bmax = Bmax(0))。 .設(shè)接收視頻為 Dl 格式,則r= (704 X 576)/(352 X 288) = 4,(KijBi) = (KI(o), 4ΧΒΙ(0)), (Kp, Bp) = (Κρ(ο),4ΧΒρ(ο)), (Bmax = 4XBmax(o), = 4XBmin(o))。23)判斷接受視頻的幅面是否發(fā)生改變,如發(fā)生變化則跳至22),否則繼續(xù)24)。24)讀取當(dāng)前視頻幀幀長L,并判斷其幀類型。如果是I幀,則直接利用公式C = KIXL+BI估計(jì)其所需解碼計(jì)算復(fù)雜度;如果是P幀,則利用公式C = KPXL+BP進(jìn)行估計(jì)。25)對當(dāng)前幀進(jìn)行解碼,解碼后得到真實(shí)計(jì)算復(fù)雜度CK。如果當(dāng)前幀為P幀且Ck < Bmin,則令 Bmin = CK。26)計(jì)算當(dāng)前幀的解碼復(fù)雜度估計(jì)誤差的閾值[Δ” Δ2]。A1 = Bmin-Bp, A2 =
^max-Bp °
27)如果當(dāng)前幀為P幀,計(jì)算當(dāng)前幀的解碼計(jì)算復(fù)雜度估計(jì)誤差Δ =CK_C,并 根據(jù)誤差所屬范圍,采用式⑵或式⑶對(KP,Bp)進(jìn)行更新。設(shè)(KP,Bp) = (325.58, 2. 3171 X IO6), A1 =-6. 171 X 105,Δ2 = 82900,Ce = 6. 0330X IO6,當(dāng)前視頻幀長 L 為 7168
字節(jié)i.若Δ =-4. 7352XlO5JlJ A1^ Δ彡Δ2,采用式⑵更新P幀模型系數(shù)Kp = 325. 58,Bp = (2. 3171-0. 47352) X IO6 = 1. 8436 X IO6ii.若 Δ = 1.3822XlO6JlJ Δ > Δ2,采用式(3)更新 P 幀模型
1 3822x106Kp=--+ 325.58=518.40,Sp = 2.3171xIO6
ρ 7168Ρ將更新后的(KP,Bp)作為下一個(gè)P幀的預(yù)測模型系數(shù)。28)如還有視頻幀需要解碼,則跳至23)重復(fù)進(jìn)行。
權(quán)利要求
一種視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,首先離線擬合確定基于視頻幀幀長的視頻流解碼計(jì)算復(fù)雜度估計(jì)模型,再利用該模型對視頻幀的解碼計(jì)算復(fù)雜度進(jìn)行估計(jì)。
2.根據(jù)權(quán)利要求1所述的視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,其特征在于,所述復(fù)雜度 估計(jì)模型C(L) = KXL+B,系數(shù)(K,B)通過離線擬合確定,L為視頻幀幀長。
3.根據(jù)權(quán)利要求2所述的視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,其特征在于,所述視頻幀 為P幀,該方法還包括利用對視頻幀的解碼計(jì)算復(fù)雜度估計(jì)誤差在線更新所述系數(shù)(K,B) 的步驟。
4.根據(jù)權(quán)利要求3所述的視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,其特征在于,所述系數(shù)更 新方法為當(dāng)復(fù)雜度估計(jì)誤差表征視頻運(yùn)動程度小,則保持系數(shù)K不變,改變系數(shù)B ;當(dāng)復(fù)雜 度估計(jì)誤差表征視頻運(yùn)動程度復(fù)雜,則保持系數(shù)B不變,改變系數(shù)K。
5.根據(jù)權(quán)利要求4所述的視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,其特征在于,所述系數(shù)更 新步驟具體為當(dāng)復(fù)雜度估計(jì)誤差Δ在閾值范圍內(nèi),則所述系數(shù)(K,B)更新為(K,B = Β+Δ),否則(K,B)更新為(K =△-B/L+ Κ,Β)。
6.根據(jù)權(quán)利要求5所述的視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,其特征在于,所述閾值范 圍為[Δ ρ Δ 2],Δ i = Bfflin-B, Δ 2 = Bfflax-B, Bfflax和Bfflin分別為對不同紋理不同運(yùn)動程度的標(biāo) 準(zhǔn)測試序列壓縮后的P幀進(jìn)行擬合獲取的多組系數(shù)中B的最大值和最小值。
7.根據(jù)權(quán)利要求2或3或4或5或6所述的視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,其特征 在于,所述視頻幀為I幀,系數(shù)(K,B)的離線擬合確定方式具體為獲取以全I(xiàn)幀壓縮后的 標(biāo)準(zhǔn)測試序列中各幀的解碼復(fù)雜度及壓縮幀幀長,以模型C(L) = KXL+B進(jìn)行線性擬合得 到I幀模型系數(shù)(K,B)。
8.根據(jù)權(quán)利要求2或3或4或5或6所述的視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,其特征 在于,所述視頻幀為P幀,系數(shù)(K,B)的離線擬合確定方式具體為將標(biāo)準(zhǔn)測試序列壓縮得 到的每個(gè)I幀后連續(xù)的P幀劃分為一個(gè)集合,利用模型C(L) = KXL+B對劃分得到的集合 分別進(jìn)行擬合,在擬合得到的系數(shù)中選取使復(fù)雜度估計(jì)誤差最小的系數(shù)作為所述系數(shù)(K, B)。
9.根據(jù)權(quán)利要求2所述的視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,其特征在于,根據(jù)視頻幀 幅面調(diào)整所述離線擬和確定的系數(shù)(K,B) = (K, rXB),r = S2ZS1, S2為當(dāng)前視頻幀幅面, S1為離線擬合采用的標(biāo)準(zhǔn)測試序列的幅面。
全文摘要
本發(fā)明公開了一種視頻流解碼計(jì)算復(fù)雜度估計(jì)方法,首先利用離線分析得到解碼復(fù)雜度相對于視頻幀長的統(tǒng)計(jì)模型,在線運(yùn)行過程中,對于I幀直接利用上述模型對視頻解碼復(fù)雜度進(jìn)行估計(jì),對于P幀則根據(jù)相鄰幀間的相關(guān)性,挖掘出模型系數(shù)隨著視頻內(nèi)容變化而變化的規(guī)律,并以預(yù)測誤差為反饋來動態(tài)調(diào)整后續(xù)P幀的模型系數(shù),最終實(shí)現(xiàn)快速高效地獲得解碼復(fù)雜度估計(jì)結(jié)果。本發(fā)明采用簡單的線性模型進(jìn)行估計(jì)且模型參數(shù)可由壓縮碼流直接獲得,解碼器設(shè)計(jì)流程簡單、碼流兼容性好;對模型系數(shù)進(jìn)行動態(tài)更新從而及時(shí)反映視頻內(nèi)容的變化,估計(jì)結(jié)果精確度高;在線更新僅需利用上一次更新結(jié)果作簡單運(yùn)算,系統(tǒng)運(yùn)行時(shí)開銷小,特別適合于資源受限的嵌入式系統(tǒng)應(yīng)用。
文檔編號H04N7/32GK101959068SQ201010502968
公開日2011年1月26日 申請日期2010年10月12日 優(yōu)先權(quán)日2010年10月12日
發(fā)明者余勝生, 張愛華, 王恒偉, 王潔, 田婷, 郭紅星 申請人:華中科技大學(xué)