劉云龍,趙 樹(shù)
(海軍工程大學(xué),湖北 武漢430033)
隨著多媒體技術(shù)的發(fā)展,視頻信息量與日俱增,造成視頻信息的存儲(chǔ)和傳輸困難,嚴(yán)重阻礙了對(duì)有效信息的獲取和使用。對(duì)此,針對(duì)視頻的無(wú)損轉(zhuǎn)碼壓縮研究成為亟待解決的問(wèn)題[1,2]。計(jì)算機(jī)的大力普及導(dǎo)致多媒體視頻逐漸被學(xué)校、企業(yè)、社區(qū)等機(jī)構(gòu)普遍采用,多媒體視頻的出現(xiàn)避免了時(shí)空的局限,拓展了信息知識(shí)的傳播范圍,促進(jìn)了視頻內(nèi)容的傳播速度[3,4]。在圖像技術(shù)異常發(fā)達(dá)的今天,尤其是隨著移動(dòng)端設(shè)備中視頻分辨率的提高,基于多媒體視頻的傳輸速度和存貯空間的限制,需要更高技術(shù)的多媒體視頻壓縮技術(shù)[5,6]。
蔡于涵等人[7]研究的視頻壓縮算法是通過(guò)將HEVC與運(yùn)動(dòng)矢量幀率的變換相結(jié)合的形式,針對(duì)原始視頻進(jìn)行抽幀處理,將抽取的幀頻幀率降低后HEVC編碼,結(jié)合從碼流中提取的運(yùn)動(dòng)矢量,然后采用細(xì)化和幀率的變化實(shí)現(xiàn)視頻的有效壓縮;杜秀麗等人[8]研究的視頻壓縮算法是利用加權(quán)非局部相似性實(shí)現(xiàn)的,其原理是通過(guò)對(duì)變化較大的紋理塊尋找與其相鄰的自相似塊,產(chǎn)生輔助重構(gòu)信息塊的方法而達(dá)到視頻壓縮的目的;沈婷等人[9]研究的算法是同量化處理雙編碼參數(shù)模型的方法,根據(jù)相同量化參數(shù)對(duì)原始視頻進(jìn)行多次壓縮,從壓縮的視頻中將IPMBM和DCT系數(shù)從I幀中提取出來(lái),以壓縮變量為分類(lèi)特征實(shí)現(xiàn)視頻的壓縮目的。雖然上述方式都能有效地對(duì)多媒體視頻進(jìn)行壓縮處理,但是在壓縮過(guò)程中對(duì)視頻的清晰度和壓縮比尚待提高。
基于此,本文研究了基于關(guān)鍵幀的多媒體視頻無(wú)損轉(zhuǎn)碼壓縮算法,通過(guò)提取多媒體視頻中鏡頭的關(guān)鍵幀,優(yōu)化視頻索引過(guò)程和視頻分類(lèi)效率,利用SPIHT編碼和自適應(yīng)碼率的控制方式,實(shí)現(xiàn)多媒體視頻的無(wú)損轉(zhuǎn)碼壓縮,為視頻壓縮提供有力的參考價(jià)值和實(shí)際應(yīng)用依據(jù)。
2.1.1 算法依據(jù)
視頻關(guān)鍵幀提取的依據(jù)為:在視頻序列中包含的兩個(gè)距離最近的圖像幀之間存在著高度的連續(xù)性和相似性。關(guān)于視頻的國(guó)際標(biāo)準(zhǔn)顯示,n個(gè)圖像組(GOP)組成視頻序列,相互間隔的I幀、P幀和B幀組成單個(gè)GOP,其中這三個(gè)幀之間存在著相互預(yù)測(cè)并能夠互相生成的關(guān)系,每個(gè)GOP當(dāng)中,I幀為第一幀,該幀使用的是圖像自帶的編碼信息,而P幀和B幀的編碼信息則需要通過(guò)預(yù)測(cè)才能夠獲取,因此每個(gè)GOP中必帶I幀,且每13幀中存在一個(gè)I幀。有價(jià)值和意義的鏡頭需通過(guò)連續(xù)的畫(huà)面構(gòu)成,中間不可中斷或打斷,單位以秒計(jì)算。因此,由關(guān)鍵幀生成的視頻序列文件可以篩選掉P幀和B幀,僅保留一個(gè)I幀。根據(jù)視頻國(guó)際標(biāo)準(zhǔn)的規(guī)定,基于逆變換(DCT)方式進(jìn)行全解壓變換,變換基本單元為8與8相乘的子塊,通過(guò)對(duì)I幀的解碼提取直流系數(shù)(DC),將視頻序列文件生成DC縮圖,將DC縮圖之間產(chǎn)生的差值視作兩幅圖像幀的相似度,利用模板匹配法提取相應(yīng)的關(guān)鍵幀。
2.1.2 算法實(shí)現(xiàn)過(guò)程
不同鏡頭中的兩個(gè)相鄰的圖像幀之間存在極高的相似度,對(duì)于不同鏡頭的兩個(gè)圖像幀之間的相似度則小許多?;谝曨l序列實(shí)行子塊劃分的解決策略,圖像幀中最中間的子塊則是場(chǎng)景視覺(jué)信息核心部分,該位置的信息重要性遠(yuǎn)高于周邊子塊所蘊(yùn)含的信息,因?yàn)獒槍?duì)兩個(gè)圖像幀之間的差別的依據(jù)來(lái)說(shuō),最中間位置的子塊差值的重要性同樣高于周邊子塊,將權(quán)重差異(DC)引入關(guān)鍵幀提取算法中[11]。子塊和DC系數(shù)一一對(duì)應(yīng),越靠近中心位置的子塊信息越重要,對(duì)應(yīng)的DC系數(shù)權(quán)重值也相對(duì)越大,在度量相似度過(guò)程中應(yīng)將信息重要性與權(quán)重值成正比的分配,根據(jù)權(quán)重值進(jìn)行縮圖之間差值的計(jì)算,將計(jì)算結(jié)果視為鄰近兩幀之間的相似度,計(jì)算差值公式為
(1)
其中,Ii表示第i個(gè)I幀,Fi表示第i個(gè)的I幀縮圖直方圖信息。當(dāng)T(Ii,Ii+1)為最大值時(shí),表示兩個(gè)I幀不屬于同一個(gè)鏡頭,則提取的關(guān)鍵幀為鏡頭中的第一幀。關(guān)鍵幀[10]的提取過(guò)程如圖1所示。
圖1 提取關(guān)鍵幀改進(jìn)算法流程
基于YUV顏色空間的視頻關(guān)鍵幀提取,可從視頻流匯總直接獲取YUV數(shù)據(jù),不用另轉(zhuǎn)換坐標(biāo)。根據(jù)人眼對(duì)亮度信號(hào)產(chǎn)生的敏感性,關(guān)鍵幀的提取可以Y分量的變化為依據(jù),結(jié)合一般圖像的特性,在同場(chǎng)景條件下,色度始終保持單一且具一致性,Y分量能夠有效優(yōu)化視頻序列檢測(cè)運(yùn)算過(guò)程,減小運(yùn)算量,提升運(yùn)算速度。
在提取的關(guān)鍵幀基礎(chǔ)上,將SPIHT算法與運(yùn)動(dòng)補(bǔ)償相結(jié)合,可無(wú)損轉(zhuǎn)碼壓縮多媒體視頻圖像,壓縮的視頻能夠應(yīng)用于傳輸、各種網(wǎng)絡(luò)和解壓縮操作,壓縮示意圖如圖2所示。
圖2 壓縮步驟示意圖
2.2.1 編碼器
針對(duì)提取到的關(guān)鍵幀采取自適應(yīng)運(yùn)動(dòng)補(bǔ)償方式獲取各幀的預(yù)測(cè)殘差圖和運(yùn)動(dòng)向量,利用小波變換離散處理預(yù)測(cè)殘差圖,對(duì)離散處理后的結(jié)果在SPIHT算法基礎(chǔ)上展開(kāi)量化小波系數(shù)及進(jìn)一步分層并編碼處理,以此獲取漸進(jìn)碼率,利用自適應(yīng)算術(shù)對(duì)碼率進(jìn)行編碼,直至碼流順利輸出;單獨(dú)對(duì)運(yùn)動(dòng)向量完成無(wú)損編碼,然后將編碼輸出。在輸出過(guò)程中,解碼器將上述信息反饋至重構(gòu)幀,用于后續(xù)解碼操作的參考幀。
通常對(duì)于靜態(tài)紋理圖像采用的是普通小波編碼算法(U Chort),為了對(duì)轉(zhuǎn)換效果進(jìn)行優(yōu)化,離散小波變換的輸入一般引入無(wú)符號(hào)字符型圖像數(shù)據(jù),該圖像數(shù)據(jù)也應(yīng)用于解碼過(guò)程。由于普通圖像數(shù)據(jù)區(qū)間為[0,255],但是本文算法過(guò)程中會(huì)產(chǎn)生殘差數(shù),而這些殘差數(shù)值可能為復(fù)數(shù),即區(qū)間為[-255,255],雖然殘差數(shù)據(jù)通過(guò)運(yùn)動(dòng)補(bǔ)償后會(huì)有所修正,但是依然存在較小的負(fù)值,若直接將圖像數(shù)據(jù)限制在[0,255]內(nèi),則重構(gòu)圖像數(shù)據(jù)必定有失真現(xiàn)象發(fā)生,失真累計(jì)過(guò)多易導(dǎo)致整個(gè)視頻質(zhì)量下降。
為解決圖像失真問(wèn)題,采用改進(jìn)離散小波變換(U Short),該算法具備兩個(gè)字節(jié)的變量,能夠有效地對(duì)區(qū)間[-255,255]內(nèi)的圖像數(shù)據(jù)進(jìn)行處理,且結(jié)構(gòu)簡(jiǎn)單,自身內(nèi)存較小。
通過(guò)SPIHT編碼從最上層依次每層對(duì)小波系數(shù)位平面進(jìn)行比特和定位信息的輸出,原始圖像和小波之間存在較高的相似度,為確保負(fù)值轉(zhuǎn)換后不出現(xiàn)偽大系數(shù)產(chǎn)生干擾的情況,應(yīng)針對(duì)所有像素殘差在進(jìn)行殘差圖數(shù)據(jù)輸入之前都增加255,保證輸入值不出現(xiàn)負(fù)值,從而消除偽大系數(shù)。當(dāng)解碼完成之后,將獲取的殘差再減少原增加的數(shù)值。
2.2.2 解碼器
采用反算術(shù)對(duì)獲取的漸進(jìn)碼流進(jìn)行編碼后再解碼,解碼包含兩種子帶方式,分別為直流和交流。直流子帶反量化,交流子帶SPIHT解碼,如果獲取的小波系數(shù)為I幀,可直接進(jìn)行轉(zhuǎn)換獲取重構(gòu)圖像,若是P幀,需要對(duì)運(yùn)動(dòng)向量和殘?jiān)姹忍亓鬟M(jìn)行提取,參考前一步重構(gòu)幀進(jìn)行運(yùn)動(dòng)補(bǔ)償,以此獲取當(dāng)下預(yù)測(cè)幀,將預(yù)測(cè)幀與重構(gòu)殘差相加,作為后續(xù)解碼步驟的參考幀。
2.2.3 自適應(yīng)碼率控制
為提高編碼精度和效率,穩(wěn)定解碼連續(xù)性,通過(guò)自適應(yīng)碼率控制輸出比特?cái)?shù),方法步驟如下:
1)初始化
自適應(yīng)碼率不控制I幀,即第一幀,編碼I幀完畢,編碼器可用寬帶設(shè)置為Rs,輸出緩沖區(qū):容量為Cs、水平為CB,則Rs=2Cs=4CB。幀頭信息和運(yùn)動(dòng)向量:前一幀為Hp,當(dāng)前幀為HB,Hp和HB占用比特?cái)?shù)均為500。
當(dāng)前段視頻編碼使用比特?cái)?shù)計(jì)算公式為
Rr=UsRs-Rf
(2)
其中,Rf表示I幀編碼使用比特?cái)?shù),Us表示播放當(dāng)前視頻所需時(shí)間。
每幀平均輸出比特?cái)?shù)為
(3)
其中,Mr表示視頻序列幀與I幀之間的差值。
2)分配可用比特?cái)?shù)
由第二幀開(kāi)始,SPIHT編碼計(jì)算當(dāng)前幀最大比特?cái)?shù)公式為
(4)
3)更新參數(shù)
各幀編碼均需要對(duì)控制碼率參數(shù)進(jìn)行更新,從編碼器角度分析,每幀可支配的比特?cái)?shù)通過(guò)自適應(yīng)碼率進(jìn)行合理的控制分配,壓縮算法根據(jù)分配的比特?cái)?shù)將對(duì)應(yīng)的比特流輸出,編碼器通過(guò)對(duì)現(xiàn)成的帶寬資源進(jìn)行充分利用,防止緩沖區(qū)“溢出”,以獲取一致的參考幀為目的,編碼器和解碼器解碼的前提條件均為開(kāi)始設(shè)置的最低帶寬,則編碼器的碼率控制分為即當(dāng)前和最低兩種帶寬,進(jìn)而獲取較粗糙和較精細(xì)的兩種比特流,分別用于重建參考幀和編碼器輸出;解碼器同樣在當(dāng)前和最低兩種帶寬條件下進(jìn)行解碼,獲取比特流為粗糙型和精細(xì)型,分別用于重建參考幀和輸出圖像重建。
實(shí)驗(yàn)參數(shù)配置如表1所示。
表1 實(shí)驗(yàn)參數(shù)配置
采用本文算法分別與文獻(xiàn)[7]基于運(yùn)動(dòng)矢量細(xì)化的幀率上變換與HEVC結(jié)合的視頻壓縮算法、文獻(xiàn)[8]基于加權(quán)非局部相似性的視頻壓縮感知多假設(shè)重構(gòu)算法及文獻(xiàn)[9]基于雙編碼參數(shù)模型的同量化參數(shù)雙壓縮檢測(cè)算法展開(kāi)對(duì)比實(shí)驗(yàn),針對(duì)關(guān)鍵幀提取的查全率和準(zhǔn)確率進(jìn)行對(duì)比,分別選取多段動(dòng)畫(huà)片段、影視片段和廣告宣傳片段為測(cè)試視頻,其中動(dòng)畫(huà)片段具有變化較快的場(chǎng)景和較多的物體運(yùn)動(dòng),影視片段的區(qū)別是沒(méi)有偏快的場(chǎng)景變化,而廣告宣傳片段和動(dòng)畫(huà)片段一樣,場(chǎng)景變化很快,同時(shí)切變更多。測(cè)試結(jié)果如表2所示。
表2 視頻片段測(cè)試結(jié)果
由表2可知,本文算法與三種對(duì)比算法相比,提取關(guān)鍵幀中有效圖像數(shù)量較多,且查全率、查準(zhǔn)率及提取時(shí)間均占有較大優(yōu)勢(shì),這是因?yàn)楸疚乃惴☉?yīng)用后提高了圖像中心位置運(yùn)動(dòng)的敏感度,使得關(guān)鍵幀提取效果優(yōu)勢(shì)顯著。
針對(duì)壓縮視頻YUV顏色空間中的Y、U和V三個(gè)分量的信噪比(PSNR)值進(jìn)行對(duì)比實(shí)驗(yàn),PSNR是對(duì)壓縮視頻畫(huà)質(zhì)進(jìn)行衡量的重要參數(shù)之一,利用視頻序列在不同帶寬條件下分別進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 視頻序列測(cè)試結(jié)果
由圖3可知,在不同帶寬條件下,本文算法中三個(gè)分量的PSNR值均為最大值,Y分量中比文獻(xiàn)[7]算法、文獻(xiàn)[8]算法和文獻(xiàn)[9]算法分別高6.04、4.17和2.81;U分量中分別高6.24、2.97和3.06;V分量中分別高7.31、4.5和3.12。表明本文算法具有較好的編碼和解碼計(jì)算能力。
在PSNR值為40的情況下,將不同分辨率的廣告宣傳片段應(yīng)用到不同場(chǎng)景中,對(duì)比三種算法壓縮后的壓縮比,實(shí)驗(yàn)結(jié)果如表3所示。
表3 壓縮比對(duì)比結(jié)果
由表3可知,采用本文算法的廣告宣傳片段壓縮比遠(yuǎn)超另外三種對(duì)比算法,表明本文算法能夠有效提高圖像幀的壓縮比,視頻分辨率越高,壓縮比相對(duì)越大。這主要是因?yàn)楸疚牟捎玫氖腔陉P(guān)鍵幀的無(wú)損轉(zhuǎn)碼壓縮,最大程度確保了關(guān)鍵信息的清晰度。以上實(shí)驗(yàn)結(jié)果驗(yàn)證了本文算法能夠有效保證多媒體視頻的無(wú)損轉(zhuǎn)碼壓縮,提升壓縮后的視頻清晰度。
基于關(guān)鍵幀進(jìn)行的無(wú)損轉(zhuǎn)碼壓縮多媒體視頻能夠有效保證壓縮后的視頻具有足夠的清晰度,本文將I幀包含的分量信息與圖像幀中子塊之間差值相結(jié)合,將較大的權(quán)重值分配給中間位置的DC系數(shù),放大圖像幀中相對(duì)重要性更大的子塊差值,有效提取視頻中的關(guān)鍵幀,以此為基礎(chǔ),結(jié)合SPIHT編碼和運(yùn)動(dòng)補(bǔ)償?shù)姆绞?實(shí)現(xiàn)多媒體視頻的無(wú)損轉(zhuǎn)碼壓縮。在后續(xù)研究中,將進(jìn)一步加強(qiáng)針對(duì)較大運(yùn)動(dòng)范圍時(shí)能夠盡可能獲取最小預(yù)測(cè)殘差幀,促使基于關(guān)鍵幀的多媒體視頻無(wú)損轉(zhuǎn)碼壓縮算法具備更好的實(shí)際應(yīng)用價(jià)值。