本發(fā)明涉及圖像通信領域中的視頻轉碼技術問題,尤其是涉及一種分布式視頻編碼(dvc)到傳統(tǒng)視頻編碼(hevc)標準之間的視頻轉碼技術。
背景技術:
隨著移動通信和信息技術的快速發(fā)展,新型的視頻通信技術的應用越來越廣泛,如移動視頻通話,遠程視頻共享,無人機視頻監(jiān)控等。在這些視頻通信設備中,隨著需求量不斷增加,人們也越來越關注視頻的質量和實時性,因此視頻壓縮編碼對設備計算能力提出了更高的要求,視頻的壓縮效率與設備功耗之間的矛盾越發(fā)突出。
由于視頻壓縮標準的多樣性,不同視頻格式之間轉換的需要促使了視頻轉碼研究的開展,而新標準的制定和應用又推動了新的轉碼技術的研究。近年來,最新的視頻編碼標準已經發(fā)展到hevc(highefficiencyvideocoding),它在提升視頻壓縮效率的同時也極大的增加了編碼復雜度,這對于一些要求低功耗低復雜度的移動設備或手持設備并不適用。而分布式視頻編碼(distributedvideocoding,dvc)以其編碼復雜度低、抗誤碼魯棒性高的特點,很好的適應了小型化終端設備的需求,成為當今的研究熱點。dvc視頻編碼標準雖然簡化了編碼端,但它的解碼端相對復雜。綜合dvc和hevc各自的優(yōu)勢,可以采用dvc編碼hevc解碼來實現移動終端設備的通信,因此一種基于dvc-hevc轉碼的視頻通信框架應運而生。此視頻通信框架可以同時實現視頻通信雙方的低復雜度編解碼,而將最復雜的視頻幀間相關性挖掘工作移到轉碼服務器。
最簡單的視頻轉碼結構為“全編全解”結構,即先對輸入流進行完全解碼,然后再按照新的視頻編碼標準進行編碼。但是全編全解轉碼結構計算復雜度很高,并不適用于長足發(fā)展。為了實現視頻壓縮標準之間的快速轉碼,國內外學者已經開展了大量的工作,并且取得了良好的進展。martinez等人提出將殘差信息通過機器學習來得到決策樹,即利用wyner-ziv編碼階段的特征進行快速宏塊編碼的模式選擇,降低了dvc到h.264/avc轉碼的計算復雜度。北京郵電大學的孫思陽研究了從dvc到h.264視頻轉碼框架中各個模塊的具體實現細節(jié),取得了較好的轉碼效果。丁彬等人提出利用紋理復雜度和編碼單元所含比特數之間的關系,對h.264中宏塊的運動矢量進行預處理,減少預測單元分割模式的候選數目,加快了h.264到hevc的轉碼過程。蔣煒等人提出利用h.264壓縮視頻流中包含的信息,優(yōu)化了hevc運動估計過程中預測單元的搜索起點和搜索范圍,進一步減少了轉碼過程的計算量。上述方法都是針對dvc到h.264轉碼或h.264到hevc轉碼優(yōu)化的研究成果,但是關于dvc至hevc轉碼的相關研究工作則非常少。
技術實現要素:
本發(fā)明的目的是加快dvc-hevc轉碼器中hevc的編碼單元(cu)劃分過程,本發(fā)明利用i幀的cu劃分模式與p幀的cu劃分模式之間的統(tǒng)計相關性,提出一種基于關鍵幀cu劃分模式的dvc-hevc視頻轉碼方法,相比以往的hevc視頻編碼標準,本發(fā)明的方法在轉碼失真很小的情況下,大大降低了視頻編碼的計算復雜度和轉碼時間,有效提高了轉碼效率。
由于視頻序列中相鄰幀圖像之間存在時域相關性。通過實驗數據發(fā)現,大部分情況下,在同一個gop內,相同位置的編碼樹單元(ctu)劃分深度一般是i幀的劃分深度大于p幀的劃分深度。因此,在進行wz幀深度劃分的時候,可以利用相鄰已解碼的k幀的深度劃分模式,在k幀劃分模式的基礎上,再進行進一步的處理。由于非關鍵幀的cu劃分深度一般小于關鍵幀的劃分深度,本發(fā)明首先在k幀劃分模式的基礎上進行一次融合操作,然后根據wz幀每個融合后cu單元相應的運動矢量判斷該cu是否需要進一步的劃分,最終得到wz幀的cu劃分模式。一般情況下,運動劇烈的區(qū)域,紋理比較復雜,需要進行進一步的劃分,確保圖像的質量。運動相對不明顯區(qū)域,則不需要進行cu劃分,可以提高編碼的效率。
在dvc-hevc轉碼器設計中,提高轉碼實時性的關鍵步驟是利用dvc解碼過程中產生的信息加速hevc編碼過程。在dvc的解碼過程中,本發(fā)明首先提取已解碼的關鍵幀k幀的cu劃分模式,根據相應融合算法對該cu劃分模式進行一次融合,按照融合后的cu劃分模式對wz幀進行劃分。本發(fā)明還將計算wz幀與上一已解碼幀的運動矢量信息,對wz幀的每個cu塊提取相應區(qū)域的運動矢量,根據運動矢量判斷此wz幀的cu是否需要進一步的分割。如果運動矢量的平均歐式距離和方差大于給定的閾值,說明這個cu區(qū)域存在著相對運動,則需要進一步分割此cu單元,否則停止cu的劃分,選擇當前cu分塊大小為最終分塊模式,然后繼續(xù)進行pu模式的選擇,并完成剩下的編碼流程。通過本發(fā)明的方法,可以跳過hevc編碼模塊中計算復雜度較高的逐層率失真優(yōu)化過程,從而達到降低hevc編碼復雜度的目的。
具體主要包括以下過程步驟:
(1)在dvc解碼端,對k幀進行幀內解碼,提取其cu劃分模式;
(2)按照基于統(tǒng)計規(guī)律的融合算法對k幀的cu劃分模式進行一次融合,得到融合后的cu劃分方式;
(3)對wz幀碼流進行解碼,得到wz幀,然后計算wz幀與上一已解碼幀之間的運動矢量;
(4)將步驟(2)得到的cu劃分方式作為wz幀的初始cu劃分方式,對wz幀進行cu劃分;
(5)對wz幀的每一塊cu區(qū)域,進行cu劃分模式再判斷。首先計算相應cu區(qū)域的運動矢量的平均歐式距離mvd和方差δmv,將得到的mvd和方差δmv與給定的閾值th進行比較,若小于或等于給定閾值,則進入步驟(7),否則,進入(6);
(6)判斷此cu單元的深度值depth是否為0,若為0,則將此cu單元繼續(xù)劃分為16×16的塊,否則,將cu單元的深度值加1,繼續(xù)分割,分割完成后進入步驟(7);
(7)確定此cu尺寸確定為最終cu分塊模式。判斷wz幀的所有cu是否遍歷完成,若沒有完成,則進入步驟(5),否則cu分塊模式完成并進入pu模式的選擇,完成編碼過程。
本發(fā)明改進的是整個dvc-hevc轉碼器中hevc視頻編碼中計算復雜度最高的地方。在整個hevc視頻編碼過程中,ctu的遞歸劃分占計算復雜度的90%以上,本發(fā)明最關鍵的是根據關鍵幀的cu劃分方式快速進行wz幀的cu劃分模式的選擇,因此,在計算復雜度方面,本發(fā)明方法著眼于hevc視頻編碼過程中計算復雜度最關鍵之處。
附圖說明
圖1為本發(fā)明基于關鍵幀編碼單元劃分模式的dvc-hevc視頻轉碼方法系統(tǒng)框圖;
圖2為本發(fā)明的基于關鍵幀編碼單元劃分模式的dvc-hevc視頻轉碼方法的流程圖;
圖3為本發(fā)明方法的基于統(tǒng)計規(guī)律的編碼單元融合算法圖,其中,圖3(a)為邊界融合方式示意圖;圖3(b)為非邊界融合方式示意圖;
圖4~7為本發(fā)明方法與級聯轉碼的率失真曲線圖,其中,圖4為basketballdrill的率失真曲線;圖5為bqmall的率失真曲線;圖6為fourpeople的率失真曲線;圖7為johnny的率失真曲線。
具體實施方式
下面結合附圖及實施例對本發(fā)明作進一步的詳細說明,有必要指出的是,以下的實施例只用于對本發(fā)明做進一步的說明,不能理解為對本發(fā)明保護范圍的限制,所屬領域技術熟悉人員根據上述發(fā)明內容,對本發(fā)明做出一些非本質的改進和調整進行具體實施,應仍屬于本發(fā)明的保護范圍。
圖2中,基于關鍵幀編碼單元劃分模式的dvc-hevc視頻轉碼方法,包括以下步驟:
(1)在dvc解碼端,對k幀進行幀內解碼,提取其cu劃分模式;
(2)按照基于統(tǒng)計規(guī)律的融合算法對k幀的cu劃分模式進行一次融合,得到融合后的cu劃分方式;
(3)對wz幀碼流進行解碼,得到wz幀,然后計算wz幀與上一已解碼幀之間的運動矢量;
(4)將步驟(2)得到的cu劃分方式作為wz幀的初始cu劃分方式,對wz幀進行cu劃分;
(5)對wz幀的每一塊cu區(qū)域,進行cu劃分模式再判斷。首先計算相應cu區(qū)域的運動矢量的平均歐式距離mvd和方差δmv,將得到的mvd和方差δmv與給定的閾值th進行比較,若小于或等于給定閾值,則進入步驟(7),否則,進入(6);
(6)判斷此cu單元的深度值depth是否為0,若為0,則將此cu單元繼續(xù)劃分為16×16的塊,即深度值depth為2,否則,將cu單元的深度值加1,繼續(xù)分割,分割完成后進入步驟(7);
(7)確定此cu尺寸確定為最終cu分塊模式。判斷wz幀的所有cu是否遍歷完成,若沒有完成,則進入步驟(5),否則cu分塊模式完成并進入pu模式的選擇,完成編碼過程。
具體地,所述步驟(1)中,采用的是基于多分辨率運動細化(mrmr)的小波域dvc框架。由于在dvc編碼時對k幀采用的是hevc編碼,因此,在轉碼時不需要再對k幀進行編碼,直接提取cu劃分模式即可。
步驟(2)中的基于統(tǒng)計規(guī)律的融合算法,其cu融合的尺寸為16×16和8×8,而尺寸為64×64和32×32的cu保持不變。cu融合方式分為邊界融合和非邊界融合,其中邊界融合表示對多個不同深度的cu融合為相同深度的cu,非邊界融合表示多個相同深度的cu融合為一個相同深度的cu。邊界融合:1個尺寸為32×32的塊中按16×16大小對cu深度按深度優(yōu)先和數量優(yōu)先原則進行統(tǒng)計,然后再進行融合,即1個16×16與3個8×8的塊,融合為4個16×16的cu,2個16×16與2個8×8的塊,融合為4個16×16的cu;1個8×8與3個16×16的塊融合為1個32×32的cu,如圖3(a)所示。非邊界融合:4個8×8的塊融合為1個16×16的cu,4個16×16融合為一個32×32的cu,而32×32與64×64保持不變。
步驟(3)中采用的是基于塊的運動估計方法,計算當前幀與前一幀已解碼幀的運動矢量。此運動矢量為圖像小波分解的第一層最低頻帶ll的相應運動矢量,大小為當前幀圖像的1/4,所以還需要對運動矢量進行1/4像素內插。
步驟(5)中對相應的運動矢量區(qū)域計算平均歐式距離mvd與方差δmv,平均歐式距離mvd的計算方法為:取cu單元相應區(qū)域的左上、右上、左下、右下、中間五個像素點的運動矢量,每個像素的運動矢量應該包含mvxi與mvyi兩個方向,分別計算其歐式距離mvi,然后求平均值mvd。
方差δmv的計算方法為:
如果平均歐式距離mvd大于給定的閾值1或者方差δmv大于閾值1.5,則說明此編碼單元區(qū)域存在相對運動,需要進行進一步的劃分。否則,不進行劃分。閾值的選取是根據實驗數據訓練得到的。
步驟(6)中,如果當前cu的深度為0,而又存在著劇烈運動,則直接將該區(qū)域的編碼單元劃分為16×16,即深度為2。
為了證明本發(fā)明的算法的有效性,我們對其進行了實驗驗證。圖4~7為本發(fā)明的基于關鍵幀編碼單元劃分方式的dvc-hevc視頻轉碼方法與級聯轉碼的率失真曲線對比結果,比較的具體過程如下:
(1)對視頻序列進行dvc編解碼,視頻序列選擇標準的hevc測試視頻,它們的名稱、分辨率和幀率分別為:basketballdrill(832×480,50幀/秒)、bqmall(832×480,60幀/秒)、fourpeople(1280×720,60幀/秒),johnny(1280×720,60幀/秒)。其中,k幀的量化步長(qp)值分別取14、18、22、26、30,wz幀的量化步長取15。將每個k幀量化步長對應下的dvc解碼幀分別存儲為yuv序列。
(2)同時打開兩個方法的程序并設置好相同的配置文件,參考軟件為級聯轉碼軟件,量化步長(qp)值分別取14、18、22、26、30。并對其三種視頻編碼性能:峰值信噪比(psnr)、比特率以及轉碼時間(其中psnr體現視頻的客觀視頻質量,視頻轉碼時間體現編碼的計算復雜度),進行比較分析,比較性能的差距用以下三個指標進行評價:
δprnr=psnrtrans-psnrhm(5)
其中,δpsnr表示本發(fā)明的方法與級聯轉碼標準方法峰值信噪比的差值,δbr表示本發(fā)明的方法與級聯轉碼標準方法比特率差值的百分率,δt表示本發(fā)明的方法與級聯轉碼標準方法時間差值的百分率。
(3)輸入2個相同的步驟1中得到的dvc重建視頻序列;
(4)分別對2個相同的視頻序列進行視頻編碼;
(5)利用級聯轉碼標準方法對視頻序列在hevc方式下進行視頻編碼;
(6)利用本發(fā)明方法對視頻序列在hevc方式下進行視頻編碼;
(7)兩個程序分別輸出視頻編碼后的視頻序列以及各自的比特率、psnr值以及總的視頻轉碼時間,上述3個指標的結果如表1-3所示,統(tǒng)計顯示本發(fā)明方法與hevc標準方法在比特率方面變化了0.1%~6.37%,比特率平均增加2.56%。在psnr方面降低了0.01db~0.18db,平均下降0.068db。在編碼時間方面降低了45%~60.62%。從總體來看,本發(fā)明方法與hevc視頻編碼標準方法相比,在視頻壓縮率(由比特率下降程度來體現)和視頻質量(由psnr值得下降程度來體現)損失很小的前提下,大大地降低了視頻編碼的計算復雜度(由編碼時間下降程度來體現,如表1~3所示)。
表1本發(fā)明算法與級聯轉碼算法比特率的比較
表2本發(fā)明算法與級聯轉碼算法之間psnr值的比較
表3本發(fā)明算法與級聯轉碼算法之間視頻轉碼時間的比較