馬滔,王軍棉
(延安大學(xué)體育學(xué)院,陜西延安716000)
傳統(tǒng)的視頻可分級編碼在具體的操作過程中未能考慮到運動矢量編碼的漸進(jìn)傳輸,當(dāng)編碼處于較低效率時,視頻大部分碼流主要由運動矢量占據(jù),為滿足復(fù)雜異構(gòu)環(huán)境變化的需要,可分級編碼概念在視頻編碼中得以應(yīng)用,其具有容錯性與可分級性特點[1],能夠適應(yīng)復(fù)雜網(wǎng)絡(luò)環(huán)境及用戶終端。通常,紋理信息在編碼后視頻流中占據(jù)大部分比特,而在低碼率狀態(tài)下運動矢量占據(jù)大部分碼流[2],因此,必須注重對運動矢量可分級編碼的應(yīng)用,其對于運動矢量編碼質(zhì)量提升有著重要的意義。
隨著現(xiàn)代計算機(jī)信息技術(shù)的不斷發(fā)展,視頻編碼在數(shù)字視頻處理中得到了廣泛地應(yīng)用,為通信服務(wù)發(fā)展提供了必要的技術(shù)支持。從時間維度上看,視頻序列相關(guān)性強(qiáng),在運動估計及補(bǔ)償技術(shù)的支持下,能夠?qū)崿F(xiàn)對視頻幀間冗余的去除[3],對編碼進(jìn)行壓縮。作為視頻處理系統(tǒng)極為重要的組成部分,運動估計在視頻壓縮標(biāo)準(zhǔn)中應(yīng)用較多,其主要采用常量位移實現(xiàn)簡單模擬運動,其位移便是運動矢量[4]。如圖1所示,其表示的是視頻序列foreman第1幀到第2幀的運動矢量。運動矢量計算完成后,可以實現(xiàn)對運動的估計與補(bǔ)償。以圖2為例,其表示的是原視頻序列第1、2幀直接差值效果圖,加入運動矢量后的視頻第1幀用圖3表示,比較圖2、圖3可以發(fā)現(xiàn)當(dāng)進(jìn)行第2幀預(yù)測后,可以進(jìn)一步實現(xiàn)對第2幀與原視頻序列第2幀差值效果的明確評估??梢园l(fā)現(xiàn)第1幀與第2幀在不加運動矢量狀態(tài)下,其差異能夠明顯顯現(xiàn)出來[5],當(dāng)加入運動矢量對下一幀進(jìn)行預(yù)測,其效果大大增強(qiáng),幀圖像與原序列幀無明顯差異,可以通過對匹配塊及精度的大小的調(diào)整對精度進(jìn)行預(yù)測[6]。
圖1 第1幀到第2幀的運動矢量
圖2 第1、2幀直接差值效果圖
圖3 加入運動矢量后的視頻第1幀
可分級技術(shù)主要指的是對一部分壓縮比特流物理進(jìn)行解碼,使其圖像與視頻信息能力得以恢復(fù)。當(dāng)對視頻圖像進(jìn)行編碼后,可以根據(jù)網(wǎng)絡(luò)變化情況對壓縮視頻流碼率進(jìn)行調(diào)節(jié),即便碼率降低,也能夠?qū)σ曨l流進(jìn)行解碼順利播放,進(jìn)而形成多種不同碼率視頻流[7]。通常,多會通過可分級編碼生成多種碼率確保視頻流播放,常見的方式有空間、時間可分級[8],一般情況下,第1層所提供的圖像視頻比特流,能夠在一定程度上提升其他層圖像視頻重建質(zhì)量,除第1層外,其余均為增強(qiáng)層。達(dá)到最佳效果[9]??臻g可分級是從改變單幀圖像分辨力的角度來對視頻進(jìn)行分級,形成不同分層,其基本思想是通過解碼第1層形成一個低分辨力的圖像版本,隨后解碼第2層,將第1層解碼的圖像內(nèi)插到第2層解碼圖像中,隨后以相同的方式解碼后面的增強(qiáng)層。目前的這些運動矢量編碼方法本質(zhì)上是對塊匹配后計算出的運動矢量比特流進(jìn)行熵編碼,并能夠?qū)幋a后的比特流進(jìn)行截取達(dá)到相應(yīng)的可分級性。然而這些運動矢量編碼方法并沒有對運動矢量本身進(jìn)行分析。筆者針對這種情況提出一種對運動矢量本身進(jìn)行處理的的思路。
運動矢量編碼具有可分級性的特點,然而其主要針對的是所有的運動矢量,其本身會出現(xiàn)大量冗余,當(dāng)前的視頻編碼主要是通過分塊匹配實現(xiàn)運動估計。如兩個相鄰幀塊之間不存在劇烈運動,其運動矢量一般較小甚至為零[10]。經(jīng)過試驗證實,運動矢量比特流中的運動估計及補(bǔ)償預(yù)測一般不會受到運動矢量的影響,或這種影響可以忽略不計,其運動名矢量比特流是一定的,基于這一理論,可以對其進(jìn)行截取,進(jìn)而實現(xiàn)編碼可分級。首先要對閾值進(jìn)行設(shè)定,然后才能實現(xiàn)對運動矢量的分析判斷[11],比較假設(shè)為T狀態(tài)下運動矢量模與閾值,保留運動矢量一般為模值較閾值大的情況,假設(shè)模值較閾值小,那么可去除運動矢量,可以依據(jù)如下公式進(jìn)行判斷:
由于兩幀間的運動矢量存在最大值,一般可假設(shè)T為最大值,運動矢量比特流為0,逐漸將T值減小,可得出部分運動矢量比特流。逐漸完全獲取運動矢量比特流,將截取的運動矢量比特流實施編碼。當(dāng)閾值為5時,其視頻序列foreman第1幀與第2幀截取完成后運動矢量如圖4所示,與圖1相比,運動矢量模值較低的被去除,僅保留了模值較大的運動矢量。
圖4 閾值為5時截取后第1幀到第2幀運動矢量表示圖
研究采用stefan及foreman視頻序列對運動矢量可分級視頻編碼進(jìn)行測試,采用GIF視頻格式,幀率設(shè)置為30 f/s,分塊大小為8,搜索范圍為4,半像素作為精度。分析視頻前2幀,將第1幀、第2幀分別作為參考幀與預(yù)測幀,當(dāng)運動矢量計算完成后,對閾值進(jìn)行截取[12],獲得運動矢量比特流,對其模值大小予以相應(yīng)的計算,運動矢量截取后加入到參考幀中,對下一幀進(jìn)行預(yù)測,得出預(yù)測幀圖像后,計算其與原序列第2幀圖像的差值,求出其峰值信噪比與方差。圖5、圖6分別為foreman視頻序列第1幀、第2幀;當(dāng)閾值假設(shè)為5時,將截取后的運動矢量比特流foreman視頻序列第1幀圖像進(jìn)行預(yù)測,得出幀圖像為圖7,當(dāng)閾值為5時所預(yù)測出的幀圖像與原序列第2幀圖像差值如圖8所示,在部分運動變化幅度很小的范圍,其差值卻體現(xiàn)的尤為明顯,比較圖8與加入全運動矢量比特流預(yù)測幀圖像,可以發(fā)現(xiàn)兩者差別并不大[13],這很大程度上是基于閾值判斷需求,運動矢量模值小的情況下會予以去除。
基于foreman視頻序列的要求,不同閾值下第1幀加入運動矢量預(yù)測的第2幀及原序列第2幀方差峰值信噪比如表1所示。當(dāng)閾值為0時,說明完全保留了運動矢量,在這種情況下,第二幀方差最小,峰值信噪比及比特數(shù)則為最大[14]。通常,兩個相鄰幀數(shù)運動矢量模值需要有一個最大值,當(dāng)閾值能夠達(dá)到最大值時,此時運動矢量會被完全清除。綜合來看,此時第1幀并未實現(xiàn)預(yù)測,只需將兩幀相減便能夠得到差值,此時的比特數(shù)為0,方差最大,峰值信噪比則處于最小范圍。
圖5 foreman視頻序列第1幀
圖6 foreman視頻序列第2幀
圖7 閾值為5時的幀圖像
圖8 閾值為5時的幀圖像差值
圖9為stefan視頻序列第1幀,圖10為stefan視頻序列第2幀,圖11為在設(shè)定閾值為5時,加入截取后運動矢量比特流的stefan視頻序列第1幀預(yù)測出的幀圖像,圖12為預(yù)測出的幀圖像與原序列第2幀圖像的差值圖像。
表1 foreman視頻序列在不同閾值下的方差、峰值信噪比及比特數(shù)
圖9 stefan視頻序列第1幀
圖10 stefan視頻序列第2幀
圖11 閾值為5時幀圖像
圖12 差值圖像
不同閾值下,stefan視頻序列第1幀加入運動矢量后,對第2幀與原序列第2幀方差及峰值信噪比進(jìn)行預(yù)測,并對未編碼的運動矢量比特數(shù)進(jìn)行預(yù)測,其結(jié)果如表2所示。通過對實驗結(jié)果的分析可以發(fā)現(xiàn),當(dāng)閾值增大時,運動矢量比特數(shù)會出現(xiàn)大幅度降低趨勢[15],在這種模式下,可以在任意點對運動矢量比特流進(jìn)行截取,并通過在參考幀中加入實現(xiàn)對下一幀的有效預(yù)測,該方式能夠在預(yù)測過程中先對部分運動矢量進(jìn)行傳輸,然后逐漸將剩余運動矢量比特流進(jìn)行傳輸,促進(jìn)視頻幀圖像質(zhì)量的提升,滿足質(zhì)量可分級的要求[16]。
表2 stefan視頻序列在不同閾值下的方差、峰值信噪比及比特數(shù)
研究采用運動矢量可分級視頻編碼方法實現(xiàn)了對運動矢量模的判斷,對比特流進(jìn)行截取,促進(jìn)質(zhì)量分級,經(jīng)過試驗驗證,其可行性得到證實。在實際應(yīng)用中,要進(jìn)一步解決其存在的問題,這也是未來運動矢量可分級視頻編碼研究的重要方向。