王鐘斐,王 彪
寶雞文理學院 數學與信息科學學院,陜西 寶雞 721013
隨著人們對視頻和顯示質量需求的逐漸增加,作為視頻質量的重要特性,視頻的圖像分辨率已經逐漸過渡到目前主流市場的4K水平[1-2]。為了滿足越來越高的圖像分辨率,終端顯示設備的分辨率也逐漸加大。但是由于陳舊視頻源的分辨率較低,且低分辨率(low resolution,LR)視頻源在高分辨率(high resolution,HR)顯示設備上不能得到較好的顯示效果,因此視頻源從LR向HR轉化的超分辨率[3-4](super resolution,SR)技術的研究被廣泛關注。
基于當前市場需求,SR應用主要分為兩類:一類為視頻源從LR直接轉化為HR后,通過網絡傳輸且顯示[5-7];另一類為LR視頻源通過網絡傳輸后,在顯示端轉化為HR后顯示。可以看出,后者在提高視頻分辨率的同時可以節約大量的網絡帶寬。因此顯示端的實時SR技術成為研究的重中之重[8-10]。
目前SR技術主要從現實應用角度分為兩種,分別為實時系統中SR和非實時系統中SR,非實時系統中SR代表算法為基于深度學習的方法[11-12],實時系統中SR代表算法為基于方向插值的方法[13-16]。在基于學習的方法中,典型算法為稀疏矩陣的字典算法,該方法認為LR和HR存在映射關系,通過大量LR和HR數據的訓練學習,找到最優的映射矩陣。圖像由LR到HR的轉化過程中,通過查找對應類型的映射矩陣,實現圖像的SR重建。該方法為了獲取最優的圖像質量,需要存儲海量的映射矩陣和邊信息,并且運算復雜度極高。由于該方法的海量存儲導致實現成本增加,且運算復雜度過大不能達到實時的要求,因此該方法目前不適于工業量產。在基于插值的方法中,典型算法為方向插值算法,該方法首先判斷紋理方向,然后根據紋理方向進行插值,得到SR重建圖像。該方法通過運算復雜度和圖像質量的均衡,在控制成本的前提下,追求圖像質量更優。
由于目前片源和顯示設備的分辨率倍數差異不會過大,并且考慮到成本,大多實時顯示系統的SR分為2~3倍的低倍率和4~5倍的中倍率。
2018年,Kim等提出了基于線性映射的邊緣定位超分辨率算法(super resolution using edge orientation based on linear mapping,SREO)[17]。目前該算法為實時中低倍率SR系統的最優算法。該算法首先在LR圖像中根據紋理邊緣的計算得到大量的紋理方向,然后利用這些紋理方向和HR圖像進行映射,訓練得到對應的映射矩陣,最終通過映射矩陣查表的方式進行SR的圖像重建。雖然SREO在圖像質量和成本復雜度之間進行平衡,以達到實時性和實現量產的目的,但是該方法仍存在以下缺點:
(1)較經典的稀疏矩陣的字典算法,由于SREO的映射矩陣數量過少,導致圖像質量下滑嚴重。
(2)較方向插值算法,SREO的映射矩陣需要大量的存儲空間,且浮點型矩陣映射運算的復雜度極高,因此實現成本大幅度增加。
基于以上問題,針對實時顯示系統,本文提出了一種紋理字典和全方向插值的中低倍率快速超分辨率算法(directional dictionary and fitting interpolation,DDFI)。該算法通過金字塔紋理字典和方向矯正,為每個待插值像素(interpolated pixel,IP)的位置計算插值方向,并通過單邊擬合的方向插值得到IP的像素值,最終在進一步提高圖像質量的同時,減少運算復雜度。
以2倍的低倍率SR為例,實際工作之前,SREO在先驗的原始HR圖像和LR圖像之間,計算得到625組映射矩陣模型。實際工作之后,SREO首先對LR圖像的每個像素,在625組映射矩陣模型中查找對應的模型;然后采用該模型,對該LR像素進行映射得到對應的HR像素;依次循環,最終得到SR重建圖像。具體步驟如下:
步驟1將先驗的HR圖像,以固定倍率進行下采樣得到LR圖像。
研究表明,草33薄層稠油油藏在水平井井網條件下具備蒸汽驅可行性。但為了穩妥起見,建議實施井組礦場試驗,在取得經驗的基礎上大規模推廣,同時在試驗過程中需要加大監測資料的錄取和分析,及時配套工藝技術解決現場的開發問題。
步驟2如圖1所示,通過HR圖像中IP位置反推,得到LR圖像中基準像素位置。將基準像素和其周圍共9個像素抽取,形成1個3×3的大塊后,分割為4個2×2的子塊。

Fig.1 Direction calculation diagram using 3×3 pixels in SREO圖1 SREO中3×3像素方向計算示意圖
步驟3根據式(1)對每個子塊進行水平梯度gh和垂直梯度gv的計算。與圖1對應,式中表示第i個子塊中第x列第y行的像素。

將計算結果帶入式(2),計算邊緣方向。式中,mi和di分別是第i個子塊的梯度權重和梯度斜率。

根據計算結果和預定義閾值,在表1中查詢得到每個子塊的紋理方向和索引。

Table 1 SREO subpatch direction map table表1 SREO子塊方向映射表
步驟4將4個子塊的索引組成2×2矩陣X。設HR圖像的2×2矩陣為Y,映射矩陣為M。為了最小化M和Y之間的誤差,考慮Y的多樣化,采用多變量回歸模型,通過式(3)計算一個最優的M,其中λ為歸一化參數,I為正則矩陣。

由于每個子塊的方向可能性為5種,因此對于2倍率SR,4個子塊的方向組合為54種,即可得到625種映射矩陣模型。
在所有映射矩陣模型得到后,SREO實際工作時,首先對于HR圖像中IP,計算LR圖像中對應的待插值像素映射(interpolated pixel map,IPM)位置;然后采用式(2)計算基準像素的mi和di,形成索引矩陣后,查表選取對應的映射模型進行映射;最終得到SR后的HR像素。以此類推,若為4倍SR,則映射矩陣數量為516。
根據以上算法介紹,可以看出SREO有如下問題:
(1)圖像質量角度。SREO僅采用5種紋理方向,遠不能夠滿足自然界的紋理復雜情況,2倍率SR下SREO的625組映射矩陣,較經典的稀疏矩陣的字典算法,也不能使映射矩陣達到最優。因此SREO的圖像質量較稀疏矩陣的字典算法有較大差距。
(2)實現成本角度。2倍率SR下,SREO的625組映射矩陣需要大量的存儲空間,且每個像素浮點型矩陣映射的運算復雜度偏高。因此較插值算法,SREO實現的成本大幅度增加。
(3)規格角度。SREO針對2倍的低倍率SR進行設計,對于中倍率情況,不僅較少的紋理方向會引起重建HR圖像質量的下降,而且成指數級增長映射矩陣的數量也會使SREO的實現成本不可接受。
針對以上問題,本文提出了DDFI算法。
如圖2所示,根據在HR圖像中的IP確定其在LR圖像中的IPM,并以由IPM確定的Pix22、Pix23、Pix32和Pix33構成的2×2區域為插值區域。將該2×2區域分別拓展為4×4和6×6區域,形成3層金字塔模型。先根據式(4)計算得到3層的4個方向的梯度權重,式中i和j分別為像素點的行列坐標,k為層數。再根據式(5)計算得到4組梯度比。

Fig.2 Pyramid model圖2 金字塔模型

根據層數約束后,0層、1層和2層的4組梯度比分別有16、81和256種組合,3層共有331 776種組合。
HR圖像中的IP紋理方向dirt計算公式如式(6),dirt為某一方向的梯度權值,IPi為當前IP,IPi-n和IPi+n為當前IP按該方向的前后兩個IP,m和n為參數。最終dir對應的角度為該IP的紋理角度。

為了確定LR圖像中IPM的331 776種組合和HR圖像中IP的360個角度的對應關系,在固定SR倍率下,首先仿真約100萬幅HR圖像和之對應的LR圖像,得到IPM每個組合對應的所有IP角度;然后對于1種IPM組合,在其對應的所有IP角度中,選取出現概率最大的角度,作為該IPM組合的對應角度;以此類推,得到所有IPM組合的對應角度。最終,在實際工作之前形成一個331 776組合和360°的方向映射表。
實際工作中,首先確定IP的插值方向,具體如下:
步驟1插值區域主方向的確定
由于自然圖像中大部分區域為平坦區域,為了降低運算復雜度,在IPM的插值區域中,當均小于預設閾值時,確定該區域無方向;否則根據式(5)計算4組梯度比,通過方向映射表得到當前插值區域的主紋理方向。
對于無主紋理方向的插值區域,采用雙線性插值的方法得到IP,否則進入步驟2。
步驟2IP方向矯正
對于存在紋理主方向區域,由于插值區域中所有IPM并非嚴格同一方向,而是基于一個方向的方向簇,因此對于任1個IPM,需要考慮其相鄰插值區域的主紋理方向。如圖3所示,插值區域分為8個子區域,每個子區域需參考1個直相鄰和1個斜相鄰區域的主紋理方向。設插值區域為正方形,且每個邊長為100,可得對角長度為141。設t為IPM到當前插值區域斜對角線的垂直距離,a為IPM到當前插值區域中線垂直距離。根據式(7)計算得到IPM的具體方向。


Fig.3 Direction correction圖3 方向糾偏
式(7)中,條件為相鄰區域主紋理方向為無方向或相鄰區域與當前插值區域主紋理方向差異超過45°。dcur、dadj和ddia分別是當前、直相鄰和斜相鄰的區域的主紋理方向。
對于高次運算插值算法,如雙立方插值(bicubic interpolation,BC),雖然圖像質量更優,但是復雜度過高;當中低倍率SR時,相對高次運算插值算法、低次運算插值算法效果相近且復雜度更低。對于存在紋理主方向區域,考慮到算法的實時性和低復雜度,為了擬合曲線,本文采用單邊擬合插值的方法。如圖4所示,先利用水平或垂直單邊擬合插值計算得到IPM方向上4個子像素點,再利用這4個子像素點,進行第二次單邊擬合插值,最終得到IPM對應的IP。單邊擬合插值公式如式(8):


Fig.4 Interpolation schematic diagram圖4 插值示意圖
根據以上算法原理描述,可以看出本文算法較傳統插值算法,引入金字塔方向字典映射,在SR實際工作之前,獲得更準確的方向查詢模型,在SR實際工作中可得到更準確的紋理方向判定。較SREO,不但具有更多的紋理主方向,而且插值區域內形成了多方向的方向簇,更符合自然圖像形成規律,而且運算復雜度較低。
以2倍SR為例,SREO對于每個IPM,索引矩陣的形成需要28個加法器,4個乘法器,1個求根處理和1個查表運算;查表之后的矩陣映射運算需要8個乘法器和4個加法器。平均求根和查表處理運算后,SREO共需要約50個乘法和32個加法。本文算法對于每個IPM,當具有紋理方向時,運算復雜度最高,方向判定階段最高需要約120個加法器,15個乘法器和1個查表運算;插值階段需要10個乘法器和5個加法器。平均查表處理運算后,本文共需要約50個乘法和32個加法,共需要40個乘法器和125個加法器。可以看出,本文算法的最大計算量與SREO基本持平,但是本文算法對于所有計算,均限制最大8比特精度,遠小于SREO的16比特精度,因此本文算法的計算復雜度較SREO更低。
本文根據圖像質量和運算復雜度對算法進行測試,其中圖像質量包括主客觀圖像質量,客觀圖像質量分為PSNR和SSIM;運算復雜度以運行時間(run time,UT)進行衡量。對比算法選取典型插值算法BC(bilinear interpolation)、典型深度學習算法RAISR(rapid and accurate image super resolution)[18]和SREO。SR倍數分別設置為2倍和4倍,運行平臺為Intel I5-6400 CPU@2.7 GHz-8 GB內存-Win 7 64位系統。選取的測試序列為經典測試序列和如圖5所示的實際采集到的測試序列。
實驗結果如表2所示。較BC,由于有了紋理的方向判定,圖像質量更有大幅度提高,平均PSNR和SSIM分別提高1.4 dB和0.047;運算復雜度方面,本文算法雖然對紋理區域的方向判定消耗了大量的運算,但是平坦區域不需要方向判定且插值方法簡單,而且擬合插值算法較BC的3次運算也節省了大量的運算量,因此平均運算復雜度為BC的58.3%。
較RAISR,本文算法雖然PSNR和SSIM提高較小,但是算法運算量僅約為RAISR的2%。即無論在硬件系統還是軟件工程,RAISR目前是無法做到實時計算顯示的。且由于RAISR需要海量數據的存儲,也是不可工業化實現的。

Fig.5 Captured images sequence圖5 采集到的圖像序列

Table 2 Performance comparison among BC,RAISR,SREO and the proposal表2 BC、RAISR、SREO和本文算法的性能比較結果
較SREO,由于本文算法采用更高準確率的紋理方向判定與擬合插值算法,因此平均PSNR和SSIM分別提高0.73 dB和0.042;由于SREO的4倍SR較2倍SR矩陣浮點乘運算呈指數級增加,因此4倍SR時,本文算法運算量僅約為SREO的56.8%。
主觀圖像質量對比如圖6所示,較BC和SREO,可以看出本文算法在紋理細節區域處理得更好,對于圖中頭發區域,本文算法的細節紋理更加豐富銳利。
針對SREO的問題,為了進一步提高重建圖像質量,并且降低運算復雜度,提出了DDFI算法。DDFI首先采用金字塔紋理字典得到插值區域紋理主方向,然后根據IPM的位置矯正得到IP的紋理方向,最后采用單邊擬合的方向插值算法計算IP值。實驗結果顯示,與SREO相比,本文算法的PSNR和SSIM平均分別提高了0.73 dB和0.04,同時大幅度降低了運算復雜度。

Fig.6 Subjective image quality comparison among BC,RAISR,SREO and the proposal圖6 BC、RAISR、SREO和本文算法的主觀圖像質量對比