一種移動終端快速圖像插值方法
【技術領域】
[0001] 本發明涉及圖像插值技術和移動終端并行計算領域,尤其是指一種適用于移動終 端的利用NEON技術進行并行處理優化的快速圖像插值方法。
【背景技術】
[0002] 圖像插值是數字圖像處理中一種常用的圖像處理技術。圖像插值就是由原始的 低分辨率圖像,經過圖像數據的再生,產生出高分辨率的目標圖像的過程。在插值過程 中,由于只有原始低分辨率圖像中的采樣點上信號是已知的,而非采樣點上信號不是已知 的,因而不可避免的會出現偽像。如塊狀偽像(BlockingArtifacts)、環狀偽像(Ring Artifacts)、鋸齒偽像(Jaggies)等現象,尤其是在邊緣區域更為明顯。因為這些偽像的實 質是邊緣細節信息(高頻區域)的丟失。如何盡量減少插值過程中這類偽像的產生,是值 得研究的課題。
[0003]目前,如果按照插值方法來進行分類,圖像插值算法可以分為兩大類:線性插值和 非線性插值。線性插值算法是將高分辨率目標圖像中待插值像素坐標映射到低分辨率原始 圖像,根據待插值像素周圍離散的原始圖像已知像素值,通過插值函數(即線性插值核函 數)進行插值,從而計算出高分辨率目標圖像上插值點的像素值。線性插值算法,通常是對 已知的像素值進行加權平均,或者說是圖像上離散的采樣值和插值函數之間進行二維卷積 操作來得出插值點的像素值。
[0004] 本發明是針對一種適用于移動終端的圖像插值快速方法,因此插值算法的時間 復雜度對本發明來說是一個十分重要的指標。常用的傳統插值算法有:最近鄰插值算法 (NearestNeighbor)、雙線性插值算法(Bilinear)、雙三次插值算法(Bicubic)、理想Sine 函數插值算法(Sine)、B樣條插值算法(B-Spline)、Lanczos插值算法(Lanczos)。本發 明將對這些算法進行分析,并對比它們的算法復雜度。測試圖像包括Shapes(384X192)、 Lena(512X512)、Wheel(320X180),如附圖 1、2、3 所示。
[0005] 為了測試各種插值算法對高清圖像處理的時間消耗,我們對Shapes圖像進行插 值放大實驗,選取不同插值算法,分別對480X270的原始低分辨率圖像進行4倍插值放大, 得到1920X1080的插值圖像。記錄算法消耗的時間并制表進行比較。為了避免測算上的 誤差,我們分別對每種算法進行3組實驗,每組包含10000次連續的插值放大操作,統計每 組實驗消耗的時間,并計算平均消耗時間及平均處理速度。
[0006] 附圖4反映了各種不同的常規插值算法的運行時間對比情況。我們可以發現,隨 著插值算法的核函數越來越復雜,插值算法的時間復雜度也越來越高,插值過程所消耗的 時間也將增大。以Lanczos系列算法為例,隨著窗口大小的增大,Lanczos算法所消耗的時 間也急劇上升。
[0007] 在移動終端上,多媒體應用例如移動視頻監控、移動視頻點播等應用對于插值算 法的執行時間非常敏感。一方面,如果插值算法效率不高,插值消耗時間過長,即使畫面清 晰質量較好,也會由于過于卡頓給使用者帶來不好的用戶體驗。另一方面,低效率的插值算 法將給續航能力低的移動終端設備帶來更多的能源消耗,造成其續航能力降低,設備發熱 增加。因此,移動終端上的插值算法研究,除了要考慮其主客觀質量以外,還必須將其運行 時間放在重要位置進行考量。根據各算法處理Shapes圖像的數據,綜合考慮常規傳統圖像 插值算法的插值質量(以峰值信噪比(PSNR)值為例)以及時間消耗,將這兩個因素作為兩 個維度,繪制得到附圖5。
[0008] 從附圖5中可以看出,不同算法有著不同的插值客觀質量以及不同的消耗時間。 圖中消耗時間單位為秒每萬次。從圖中數據分析,總體上插值質量越好的算法消耗的時間 越多。最近鄰插值算法時間消耗非常低,但其客觀質量也很差。Sine插值算法時間消耗 很高,但質量并沒有明顯提升。綜合各種傳統的常規圖像插值算法來看,雙三次插值算法 (Bicubic)在性能與代價之間具有較好的平衡。更復雜的傳統插值算法(例如B樣條插值 算法)消耗了更多時間,但質量提升并不明顯。
[0009] 實驗表明,最近鄰插值算法、雙線性插值算法、雙三次插值算法這三種插值算法復 雜度較低,比較適合用于移動終端進行實時圖像放大操作。本發明提出的新方法試圖在提 高插值質量,尤其是人眼最敏感的邊緣區域插值質量的同時保持算法的高效性。
[0010] 目前大部分的移動終端都是采用傳統的插值算法進行圖像放大。但是傳統的圖像 插值算法,沒有充分利用圖像的先驗信息,對圖像所有部分都進行相同的插值核函數處理, 并且只使用了插值點周圍的像素進行計算,缺乏足夠的信息,導致插值后的圖像邊緣出現 模糊、鋸齒等現象。
[0011] 通過分析以上眾多的插值算法,可以發現有些算法計算復雜度低,但插值質量差; 有些算法的插值質量好,但是計算代價卻是移動終端無法承受的。適用于移動終端的插值 算法應該具備以下特點:
[0012] 第一,算法復雜度低。由于嵌入式設備計算能力相對較低,多媒體應用實時性要求 高,同時受限于電池續航能力,這就要求嵌入式移動終端上的插值算法應該具有盡可能低 的復雜度。
[0013] 第二,放大倍數高。目前來說,網絡帶寬是限制移動多媒體應用發展的一個重要 瓶頸因素。為了節省網絡帶寬,移動設備上的應用程序收發的通常是低分辨率圖像,如 QCIF(352*288)。而如今常見的手機屏幕分辨率已經達到WVGA(960*640)或更高。在顯示 圖像時,勢必要對低分辨率圖像進行插值放大以適應屏幕實際分辨率。這就導致移動設備 需要放大較高倍數的圖像,這必然導致放大后的目標圖像與源圖像相比較為模糊。這就對 放大算法的質量提出了更高的要求,如邊緣質量。
[0014] 第三,放大比例任意可變。與傳統游戲中固定比例放大不同,移動設備型號各異, 屏幕分辨率千差萬別。移動應用需要適配不同屏幕分辨率,就必須支持進行放大比例任意 可變的圖像放大。
[0015] 在保證較低的計算復雜度的情況下,盡可能地提升手機圖像插值質量,是本發明 的重點,迄今為止未見有在移動終端利用NEON技術對插值算法進行并行優化的文獻報導, 本發明具有其原創性。
【發明內容】
[0016] 本發明的目的在于克服現有技術的缺點與不足,提供一種移動終端快速圖像插值 方法,在保證較低的計算復雜度的情況下,盡可能地提升手機圖像插值質量,得到高分辨率 圖像。
[0017] 為實現上述目的,本發明所提供的技術方案為:一種移動終端快速圖像插值方法, 包括以下步驟:
[0018] 1)對低分辨率原始圖像進行邊緣檢測,得到邊緣信息;
[0019] 2)根據低分辨率圖像邊緣信息以及人類視覺系統計算出邊緣的強度,根據強度對 邊緣進行擴展;
[0020] 3)根據擴展后的邊緣將圖像分為邊緣區域和非邊緣區域,對邊緣區域采用B樣條 插值算法或SAI插值算法進行處理并保存邊緣信息,對非邊緣區域采用雙三次插值算法進 行處理;
[0021] 4)根據已有邊緣信息,對插值圖像的邊緣進行進一步銳化處理,降低邊緣部分模 糊程度,提示圖像的視覺質量;
[0022] 5)將插值算法與NEON并行技術結合,以得到并行優化處理的高分辨率圖像。
[0023] 在步驟2)中,首先根據低分辨率圖像進行邊緣強度分析,在邊緣強度信息中,除 了記錄邊緣在圖像中的位置以外,還根據人類視覺系統對邊緣強度進行了分析,根據邊緣 強度的強弱對其進行擴展操作。
[0024] 在步驟3)中,將目標圖像中的像素映射到原始圖像上,根據邊緣強度信息將圖像 劃分區域,對于非邊緣的平坦區域,采用雙三次插值算法進行插值處理,對于邊緣區域采用 B樣條插值算法或SAI插值算法以保護邊緣信息,合并各區域的插值結果,得到高分辨率插 值圖像后,再對其邊緣做進一步的邊緣增強處理,達到算法執行時間效率和算法插值質量 上的平衡。
[0025] 在步驟5)中,對計算復雜度高且算法可以并行化的模塊進行內聯匯編優化,對其 他模塊或函數采用自動向量化利用編譯器進行優化,采用內聯匯編將卷積運算、色融運算、 向量運算這些運算采用NEON匯編指令優化,從而使這一部分代碼可以通過S頂D架構得到 并行處理,提升算法執行效率。
[0026] 本發明與現有技術相比,具有如下優點與有益效果:
[0027] 本發明是一種在較低的時間復雜度下,結合NEON技術進行并行處理優化的手機 圖像插值技術,是一個由原始的低分辨率圖像,經過圖像數據的再生,產生出高分辨率的目 標圖像的過程,能夠盡可能地提升手機圖像插值質量,得到高分辨率圖像。經實踐證明,該 技術應用在移動視頻監控系統當中的結果表明它能夠使手機多媒體應用可以流暢地插值 出高分辨率圖像進行播放,具有算法復雜度低、放大倍數高、放大比例任意可變等特點。
【附圖說明】
[0028] 圖1為選用的測試圖像之一。
[0029] 圖2為選用的測試圖像之二。
[0030]圖3為選用的測試圖像之三。
[0031] 圖4為Shapes測試圖像用不同插值算法處理10000次所消耗的時間對比圖。
[0032] 圖5為插值客觀質量與消耗時間綜合比較圖。
[0033]圖6為本發明所述移動終端快速圖像插值方法的流程圖。
[0034] 圖7為基于LR圖像的邊緣保護算法處理流程圖。
[0035] 圖8為基于HR圖像的邊緣保護算法處理流程圖。
[0036] 圖9為手機上對Wheel插值10000次耗時比較圖。
[0037] 圖10為手機上對Wheel插值10000次綜合比較圖。
【具體實施方式】
[0038] 下面結合具體實施例對本發明作進一步說明。
[0039] 近年來提出了很多基于邊緣信息的圖像插值算法。這類邊緣保護算法主要分為兩 類:基于原始LR圖像邊緣的算法和基于插值后HR圖像邊緣的算法。
[0040] 基于原始低分辨率圖像(LR圖像)的邊緣保護算法首先檢測原始低分辨率圖像的 邊緣,根據邊緣信息將圖像分為邊緣