張明, 司維
(1. 河南水利與環(huán)境職業(yè)學院 機電與信息工程系, 河南 鄭州 450000;2. 河南省外貿學校 信息服務辦公室, 河南 鄭州 450002)
視頻縮放是保證在不失真顯示全部視頻的內容前提下,對視頻的高寬比和分辨率進行調整[1-2]。近些年,隨著各種尺寸的平板電腦、顯示器,尤其是全面屏手機的不斷更新,對顯示器要求的比例逐漸多樣化,因此為了適配不同設備,對視頻進行縮放具有重要的意義[3]。但是傳統(tǒng)的視頻縮放方法通過裁剪或者均勻縮放的方式,往往會導致視頻不同程度的扭曲或失真[4],近些年出現(xiàn)的基于內容感知的視頻縮放方法[5-6],可以在保留原圖像不失真的前提下改變視頻的縱橫比和大小,可以滿足不同設備的觀影體驗[7]。目前,基于內容感知的視頻縮放方法分為基于接縫和基于網格兩種[8]。文獻[9]提出的基于網格的視頻縮放方法通過彎曲和裁剪獲得空間和時間上的一致性,但往往會因為裁剪的操作造成視覺信息的丟失。而基于接縫的視頻縮放方法首先保證原視頻的信息,但此方法往往較為費時。Grundmann[10]提出了可以較高地保持空間和時間一致性的方法,其采用的方法為不連續(xù)接縫。但Grundmann方法由于使用動態(tài)規(guī)劃,提高了計算的復雜程度,增加了視頻縮放的時間。針對此問題,本文提出了一種利用遺傳算法的縮放方法對Grundmann方法進行改進,文獻[11]研究表明次優(yōu)接縫可以保持空間和時間的連貫性。顯著性信息對視頻縮放非常有效,本文利用文獻[12]提出的顯著度的方法提升視頻的縮放效果。本文的主要成果為:提出了一種新的利用遺傳算法的視頻縮放方法,并考慮了計算復雜度和視覺信息,在實現(xiàn)較好縮放效果的基礎上,將消耗時間縮短為Grundmann方法的30%左右。
本文提出的視頻計算方法為利用移除接縫和迭代的方式對視頻的大小進行調整,本文利用Grundmann提出的能量函數(shù)來保證空間和時間的一致性,利用該技術得到的能量圖可以生成不連續(xù)的接縫從而跳過顯著性物體,而且可以利用其動態(tài)規(guī)劃的方法對接縫進行識別。本文的遺傳接縫跳過了足球運動員在的區(qū)域從而保證了顯著性物體的完整性,如圖1所示。
(a) t幀
計算時間一致性損失的過程,如圖2所示。
圖2 計算時間一致性的損失
選擇上一幀時間的接縫(圖中紅色)作為目前幀的引導,Rc表示最佳時間的一致性幀,把上一幀的接縫應用至當前幀F(xiàn)i。時間損失公式[13]Tc(x,y),如式(1)。
(1)
空間一致性的損失包含垂直一致性和水平一致性損失兩組[14]。損失公式,如式(2)。
Sc=Sh+Sv
(2)
對于垂直損失和水平損失的測量,本文選用梯度變化進行測量。Sh與像素有關,而Sv不僅與當前像素有關,還與上一行接縫所在的像素有關,如式(3)、式(4)。
Sc(E)=|D-E|+|E-F|-|D-F|
(3)
Sv(E,A)=||A-D|+|B-D||+
||B-E|-|B-D||
(4)
移除相鄰相位和酚酸接縫損失的計算,如圖3所示。
(a) 移除相鄰像素
傳統(tǒng)的接縫裁剪方法基于動態(tài)規(guī)劃在能量圖中識別能量最低的接縫。但研究表明由于最優(yōu)和次優(yōu)的接縫效果幾乎相同,因此沒有必要限制最低的能量[15]?;诖?,本文利用迭代完成視頻縮放,利用遺傳算法尋找次優(yōu)接縫。在遺傳模型中,每個個體只包含一個染色體,位于染色體中的基因組可以將其編碼成一條接縫。本文初始種群為通過初始化一批個體得到的,群體經過一定數(shù)量的代數(shù)演化后得到次優(yōu)解,從而得到次優(yōu)裂縫。
染色體的定義為,由n個基因組成的整體。n表示水平接縫幀寬和豎直接縫幀高。為了表示像素的實際位置,設計了樞紐基因ai=p。對于其它基因,其值介于-1和1之間用來表示相鄰3個像素的位置,如式(5)。
I={a1,a2,…,ai=p,…an}
(5)
為了選擇次優(yōu)接縫,本文定義了適當度函數(shù),如式(6)。
(6)
式中,h表示最高能量值;1表示最低能量值;x表示當前的能量值,適應值介于0和2之間。
本文選用了高寬比比例不同的視頻對視頻的縮放算法進行試驗,為了與其它縮放方法進行對比,本文將縮放時間和縮放結果與其它縮放方法進行了對比。另外還研究了遺傳算法的不同對縮放效果的影響。本文所有的縮放試驗均基于某筆記本,該筆記本采用的處理器為AMD瑞龍7,內存容量為8GB,硬盤容量為512G PCIe SSD。本文的計算結果與Grundmann和Rubinstein[16]的處理結果,如圖4所示。
圖4 不同視頻縮放方法對比
圖4中(a)、(b)、(c)、(d)分別為原始視頻、本文縮放結果、Grundmann方法縮放結果、Rubinstein方法縮放結果。
由圖4可知,本文提出的視頻縮放算法的縮放效果與Grundmann方法基本一致,未出現(xiàn)扭曲和失真等現(xiàn)象,而Rubinstein的方法在卡車邊緣出現(xiàn)了扭曲的現(xiàn)象。對于飛行在空中的飛機,Grundmann方法縮放完之后出現(xiàn)了多處幀邊緣部分為裁剪的現(xiàn)象,而Rubinstein方法使得圖中左側的飛機出現(xiàn)了扭曲,而本文提出的縮放方法保持了最好的一致性空間,消除了周圍邊緣的區(qū)域,縮放效果最好。對于沖浪畫面,Grundmann方法和本文提出的方法縮放效果較好,未出現(xiàn)扭曲和變形的情況,而Rubinstein方法出現(xiàn)了運動員頭發(fā)的扭曲變形。因此可知,對于視頻的縮放來說,次優(yōu)接縫完全可以滿足要求。
與Grundmann方法相比,本文提出的算法從兩方面降低了計算復雜度。首先,本文通過實驗方法研究多種分辨率視頻的條件下3類算法的性能,如表1所示。
表1 視頻不同分辨率情況下的耗時
對于340×280、480×260和640×256 3種不同的分辨率的視頻,Rubinstein方法耗時最多,而本文提出的方法耗時是最少的,基本上僅為Grundmann方法的30%左右。
本文通過實驗研究不同縮放比例條件下各個方法的性能,本實驗選用的視頻分辨率幀數(shù)為15;分辨率為480×260的視頻,如表2所示。
表2 視頻不同縮放因子情況下的耗時
由表2可知,本文提出的方法耗時最少,其次為Grundmann,而Rubinstein方法的耗時最多。
圖5不同初始群種個數(shù)所對應的縮放結果,如圖5所示。
圖5 不同初始群種個數(shù)所對應的縮放結果
其中,p為初始總群的數(shù)量,圖中的空色方框為對比不同縮放效果的顯示對象。
對于沖浪畫面來說,當p為30時,縮放效果最佳;對于空中的飛機來說,當p為10時,縮放效果最佳;對第三排的圖片來說,當p為10時,縮放效果最佳。
不同遺傳代數(shù)所對應的縮放結果,如圖6所示。
圖6 不同遺傳代數(shù)所對應的縮放結果
其中,n表示進化代數(shù),圖6中的紅色方框為對比不同縮放效果的顯示對象。
對于沖浪畫面來說,當n為5時,縮放效果最佳;對于空中的飛機來說,當n為7時,縮放效果最佳;對第三排的圖片來說,當n為9時,縮放效果最佳。
因此可知,對于不同類型的視頻來說,其最好的縮放效果所對應著不同的遺傳算法參數(shù)值。
綜上所述,證明了本文所提出的視頻縮放算法具有有效性和高效性。首先本文提出的視頻縮放方法得到的縮放結果與Grundmann方法基本相同,然后證明了使用遺傳算法可以大大降低計算的復雜程度,通過對比不同的視頻縮放比例和分辨率,本文提出的方法的耗時為Grundmann方法的30%左右。最后,本文證明了遺傳參數(shù)對于視頻的縮放效果有著重要影響。
本文提出了一種新的不連續(xù)接縫裁剪方法和基于遺傳算法的視頻縮放方法。本算法通過允許接縫跳過顯著性物體,從而生成不連續(xù)的接縫來保證時間的一致性;通過基于不連續(xù)的接縫對損失函數(shù)進行定義來保證空間的一致性。此外,本文基于遺傳算法得到次優(yōu)接縫,從而得到與Grundmann方法相同的縮放效果,并且通過時間對比可知,本文的耗時只有Grundmann方法的30%左右。