王凱巡,劉 浩,2
(1.東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620; 2.上海交通大學(xué) 人工智能教育部重點(diǎn)實(shí)驗(yàn)室,上海 200240)
圖像通信按光柵掃描順序執(zhí)行分塊編解碼,在傳輸過程中存在塊丟失現(xiàn)象.信宿端的錯(cuò)誤隱藏不需要對信源端進(jìn)行任何改變,在恢復(fù)丟失像素的過程中完全不需要信源端的參與,屬于圖像通信的一類后處理技術(shù),由于不需要增加編碼冗余或改變碼流結(jié)構(gòu)而受到廣泛關(guān)注[1-2].大多數(shù)自然圖像具有較強(qiáng)的空域相關(guān)性,空域錯(cuò)誤隱藏算法需要通過可用信息來高效地預(yù)測丟失像素,提高可視質(zhì)量[3].
快速的空域錯(cuò)誤隱藏算法均采用了低復(fù)雜度的線性插值機(jī)制,基本原理是利用已正確接收的鄰域像素來進(jìn)行加權(quán)預(yù)測.作為圖像通信廣泛使用的空域錯(cuò)誤隱藏算法,高級視頻編碼(Advanced Video Coding,AVC)插值算法[4]利用受損塊的鄰近像素進(jìn)行雙線性插值,通過計(jì)算上、下、左、右4個(gè)鄰近像素的加權(quán)平均值來估計(jì)丟失像素,其權(quán)重與像素間的距離成反比.AVC算法難以恢復(fù)邊緣較多或紋理較豐富的圖像區(qū)域.內(nèi)容自適應(yīng)劃分(Content Adaptive Division,CAD)插值算法[5]利用邊緣檢測算子來評估受損塊的邊緣強(qiáng)度,根據(jù)強(qiáng)度大小將受損塊分成三種類型:平滑塊、紋理塊和邊緣塊,分別選取相應(yīng)的插值方式進(jìn)行恢復(fù),其計(jì)算復(fù)雜度較低.作為對象移除應(yīng)用的典型技術(shù),耗時(shí)的圖像補(bǔ)全機(jī)制主要關(guān)注視覺主觀效果,但在松散的時(shí)間約束下也有學(xué)者將其用于解決錯(cuò)誤隱藏問題,Chung等[6]提出了一種聯(lián)合圖像補(bǔ)全和線性插值(Hybird Inpainting Interpolation,HII)算法,并為兩種機(jī)制的切換提供了判決門限.由于邊緣結(jié)構(gòu)比單一紋理在視覺上更為重要,邊緣導(dǎo)向插值(Edge Guided Interpolation,EGI)算法[7]首先通過自適應(yīng)閾值Sobel算子估計(jì)顯著的邊緣信息,然后選擇邊緣效應(yīng)最強(qiáng)的候選邊緣進(jìn)行多方向插值.對于存在強(qiáng)邊緣的受損塊,EGI算法有助于增強(qiáng)其邊緣信息,然而要找到所有邊緣的準(zhǔn)確位置是非常困難的.多方向插值算法具有運(yùn)行速度快與通用性好的優(yōu)點(diǎn),但當(dāng)塊間內(nèi)容變化較大時(shí),候選像素與權(quán)重具有不穩(wěn)定性,影響恢復(fù)質(zhì)量.
大多數(shù)自然圖像具有低通特性,圖像塊可以被建模為基函數(shù)的線性組合.基于塊的雙邊濾波(Block-based Bilateral Filtering, BBF)算法[8]利用一對高斯函數(shù)來估計(jì)受損塊的邊緣信息:一個(gè)基函數(shù)用于測量受損塊和可用鄰域的相似度,另一個(gè)基函數(shù)用于測量兩者的空域差異性,BBF算法的復(fù)雜度較低.基于最小均方誤差估計(jì)器,Koloda等[9]提出了一種多模式基函數(shù)(Multi-Mode Kernel,MMK)算法,通過計(jì)算受損塊的概率密度函數(shù),利用鄰域信息來確定支撐模型階數(shù),通過耗時(shí)的迭代逼近機(jī)制來預(yù)測丟失像素.
近年來,信號稀疏表達(dá)廣泛用于圖像處理.稀疏線性預(yù)測(Sparse Linear Prediction,SLP)算法[10]根據(jù)當(dāng)前受損塊的鄰域情況調(diào)整掃描順序和候選像素集合的形狀,并用貝葉斯信息準(zhǔn)則來確定預(yù)測器的階數(shù),預(yù)測器階數(shù)的增加會導(dǎo)致復(fù)雜度呈指數(shù)級增長.隨著機(jī)器學(xué)習(xí)的興起,雙稀疏表達(dá)(Dual Sparsity Regularization,DSR)算法[11]通過主成分分析進(jìn)行字典構(gòu)建,解決了因圖像數(shù)據(jù)不足造成字典訓(xùn)練無法完成的難題.DSR算法利用歐式距離小于某一閾值來確定用于字典構(gòu)建的候選像素集合和模板像素集合,但固定閾值導(dǎo)致的候選塊選取不準(zhǔn)問題會降低預(yù)測模型的通用性.進(jìn)一步地,聯(lián)合稀疏學(xué)習(xí)(Joint Sparse Learning,JSL)算法[12]改進(jìn)了稀疏表達(dá)的字典構(gòu)建與系數(shù)求解,利用自適應(yīng)閾值來提高搜索候選像素集合和模板像素集合的準(zhǔn)確性.目前,基于稀疏表達(dá)的錯(cuò)誤隱藏算法均采用線下訓(xùn)練的字典構(gòu)建,在實(shí)際應(yīng)用中需要大量圖像作為訓(xùn)練數(shù)據(jù),難以適用于各種丟失模式.即使不考慮模型訓(xùn)練的耗時(shí)與泛化性問題,當(dāng)前稀疏模型類錯(cuò)誤隱藏算法的計(jì)算復(fù)雜度仍然過高.
在空域錯(cuò)誤隱藏應(yīng)用中,每個(gè)受損塊相對較小但序號明確,恢復(fù)目標(biāo)是在較低復(fù)雜度的約束下使重構(gòu)誤差達(dá)到可接受的程度.迭代類隱藏算法以高復(fù)雜度換取了恢復(fù)質(zhì)量的輕微提升;一些隱藏算法專門針對特定的丟失模式進(jìn)行模型訓(xùn)練或算法優(yōu)化,難以適用于各種各樣的丟失模式.因此,有必要提出一種新的空域錯(cuò)誤隱藏算法,以更好地平衡通用性、計(jì)算復(fù)雜度和恢復(fù)質(zhì)量等性能指標(biāo).
在圖像通信中,為了便于碼流傳輸,多個(gè)塊封裝成一個(gè)包,一幅圖像通常編碼成若干獨(dú)立的包,每個(gè)包可以單獨(dú)恢復(fù),當(dāng)一幅圖像出現(xiàn)了包丟失,信宿端根據(jù)受損塊的位置,利用鄰域的無錯(cuò)塊或已隱藏塊進(jìn)行恢復(fù).空域錯(cuò)誤隱藏不同于圖像去噪或?qū)ο笠瞥葢?yīng)用,圖像通信的信宿端能夠獲取受損塊在圖像中的具體位置.在光柵掃描順序下,一個(gè)丟失像素的重構(gòu)不僅依賴于正確接收的像素,也依賴于已經(jīng)隱藏處理過的像素.為了便于描述,“可用像素”表示正確接收的像素或者已經(jīng)隱藏過的像素;如果某種塊丟失情形在接收圖像中重復(fù)出現(xiàn),本文稱之為“規(guī)則”丟失.現(xiàn)有的錯(cuò)誤隱藏算法均能很好地應(yīng)對低丟失率的情形.根據(jù)受損塊在圖像中的整體分布情況,可歸為4種丟失模式:規(guī)則間隔丟失模式、規(guī)則連續(xù)丟失模式、隨機(jī)突發(fā)丟失模式、隨機(jī)行丟失模式.
對于圖像塊的丟失,圖1展示了4種具有代表性的丟失模式,圖中每個(gè)方塊代表一個(gè)8×8或16×16或其他像素大小的圖像塊,正確接收的塊用白色標(biāo)記,受損塊用黑色標(biāo)記.如圖1(a)所示,規(guī)則間隔丟失模式是一種廣為運(yùn)用的丟失模式,受損塊在圖像中的分布比較離散,其8個(gè)相鄰塊都已經(jīng)被正確接收,由于可用的鄰域信息比較充分,許多錯(cuò)誤隱藏算法都能對此種丟失模式進(jìn)行有效的恢復(fù).圖1(b)給出了規(guī)則連續(xù)丟失模式的塊分布情形,其中,當(dāng)前受損塊的4個(gè)相鄰塊被正確接收.圖1(c)給出了隨機(jī)突發(fā)丟失模式的示意圖.圖1(d)展示了隨機(jī)行丟失模式的一個(gè)示例,受損塊集中出現(xiàn)在圖像中的某些整行,由于受損塊水平方向的鄰域信息已經(jīng)損失,可資利用的相關(guān)信息較少,許多隱藏算法針對此丟失模式都達(dá)不到滿意的效果.
圖1 典型的丟失模式.正確接收的塊采用白色方塊標(biāo)記,受損塊采用黑色方塊標(biāo)記
空域錯(cuò)誤隱藏的主要應(yīng)用場合是圖像通信的實(shí)時(shí)后處理.對于現(xiàn)有的空域錯(cuò)誤隱藏機(jī)制,一方面,插值機(jī)制的計(jì)算復(fù)雜度較低,但圖像細(xì)節(jié)恢復(fù)的效果一般;而稀疏表達(dá)機(jī)制的計(jì)算復(fù)雜度較高,不太適合實(shí)時(shí)性要求嚴(yán)格的場合.另一方面,許多空域錯(cuò)誤隱藏算法只針對特定的丟失模式進(jìn)行優(yōu)化,難以適應(yīng)不同的丟失模式.因此,有必要在通用性、計(jì)算復(fù)雜度和恢復(fù)質(zhì)量之間尋求更具競爭力的算法.
延拓區(qū)域的像素相關(guān)性通常被建模為一個(gè)條件隨機(jī)過程,空域錯(cuò)誤隱藏可以采用最大后驗(yàn)準(zhǔn)則來估計(jì)當(dāng)前受損塊的像素[4,12].從統(tǒng)計(jì)學(xué)的觀點(diǎn)來看,錯(cuò)誤隱藏問題可以等價(jià)為在一個(gè)延拓區(qū)域內(nèi),通過一個(gè)可用像素子集{qm} (1≤m≤M)的信息來預(yù)測當(dāng)前丟失像素子集{pk} (1≤k≤K).K和M的大小關(guān)系取決于不同的隱藏策略.{pk}的最大后驗(yàn)估計(jì)能表示為最大化聯(lián)合條件概率ρ(p1,…,pK|q1,…,qM),但是K或M的取值范圍通常是比較大的,難以進(jìn)行準(zhǔn)確地建模,在實(shí)際應(yīng)用中獲得這一聯(lián)合條件概率幾乎是不可能的.由于一個(gè)延拓區(qū)域通常是一幅圖像的小塊區(qū)域,往往能夠近似成為一個(gè)準(zhǔn)平穩(wěn)過程,上述最大后驗(yàn)估計(jì)的簡化策略是基于線性加權(quán)的方式來預(yù)測每個(gè)丟失像素.
(1)
對于公式(1)中的加權(quán)系數(shù)αn和βm,自適應(yīng)系數(shù)相比于固定系數(shù)能更好地表達(dá)圖像的局部相關(guān)性.作為錯(cuò)誤隱藏問題的一個(gè)一般性假設(shè),空域錯(cuò)誤隱藏算法大都假設(shè)合成的邊緣在穿越受損塊時(shí)是準(zhǔn)直線的,因此可利用多方向插值來恢復(fù)受損邊緣.在光柵掃描順序下,多方向插值逐一地估計(jì)受損塊在不同方向上的像素相關(guān)性,然后對鄰域像素值與相關(guān)系數(shù)進(jìn)行加權(quán)疊加.每個(gè)當(dāng)前受損塊對應(yīng)著一個(gè)延拓區(qū)域.如圖2所示,一個(gè)延拓區(qū)域A含有3×3個(gè)塊:當(dāng)前受損塊C位于中心,其它8個(gè)塊分別屬于以下3種類型之一:正確接收的無錯(cuò)塊E、已經(jīng)執(zhí)行錯(cuò)誤隱藏的已隱藏塊R、還未進(jìn)行錯(cuò)誤隱藏的后續(xù)受損塊S.
圖2 一個(gè)延拓區(qū)域A的例子,該延拓區(qū)域包含當(dāng)前受損塊C、無錯(cuò)塊E、已隱藏塊R、后續(xù)受損塊S
本文提出了一種非迭代收縮多方向預(yù)測(Non-iterative Shrinkage Multi-directional,NSM)算法,所提算法吸收了現(xiàn)有多方向插值與稀疏模型學(xué)習(xí)的優(yōu)點(diǎn),通過引入自適應(yīng)的鄰域梯度特征學(xué)習(xí)機(jī)制,高效地獲取受損塊的鄰域信息,隨后通過精細(xì)設(shè)計(jì)的收縮填充次序進(jìn)行逐像素的多方向插值.
現(xiàn)有的空域錯(cuò)誤隱藏算法表明,根據(jù)梯度特征對受損塊進(jìn)行自適應(yīng)插值,可以較好地保持圖像的結(jié)構(gòu)和邊緣信息.所提NSM算法通過在當(dāng)前延拓區(qū)域的無錯(cuò)塊E和已隱藏塊R中執(zhí)行梯度特征統(tǒng)計(jì)過程,累計(jì)當(dāng)前延拓區(qū)域的梯度分布;基于無錯(cuò)塊E和已隱藏塊R,分別累計(jì)8個(gè)方向中各方向上的梯度幅值.pi,j表示位于坐標(biāo)(i,j)的像素,梯度檢測可以表示如下:
(2)
式中,gx(i,j)和gy(i,j)分別表示在x水平方向和y垂直方向的像素強(qiáng)度變化率.現(xiàn)有空域錯(cuò)誤隱藏算法的梯度檢測采用了各向異性的Sobel或Canny算子,以利于檢出較為準(zhǔn)確的邊緣信息.而本文算法僅需統(tǒng)計(jì)受損塊鄰域的總體梯度特征,各個(gè)方向的像素之間距離越遠(yuǎn)、相關(guān)性越小,掩模位置的加權(quán)系數(shù)應(yīng)與到中心像素的距離成反比,而與方向無關(guān),各向同性梯度檢測器更有利于實(shí)現(xiàn)這一目標(biāo).因此,本文采用的各向同性梯度檢測器含有兩個(gè)3×3像素的梯度掩模算子,中心像素pi,j的梯度分量gx(i,j)和gy(i,j)對其鄰域執(zhí)行如下兩個(gè)3×3像素的梯度掩模算子.
(3)
(4)
基于NSM算法,圖3所示的例子說明了如何利用各向同性梯度檢測器來計(jì)算像素pi,j的水平梯度gx(i,j)和垂直梯度gy(i,j),其中,各向同性的梯度掩模算子用于計(jì)算各個(gè)延拓區(qū)域的水平或垂直梯度分布.各個(gè)鄰域像素對中心像素的影響效應(yīng)并不相同,所以不同的掩模位置有著不同的加權(quán)系數(shù).
圖3 各向同性梯度檢測器
在獲取中心像素pi,j的梯度分量gx(i,j)和gy(i,j)之后,坐標(biāo)(i,j)處的梯度幅值可通過如下公式推導(dǎo):
(5)
θi,j=arctan[gy(i,j)/gx(i,j)].
(6)
研究表明,超過8個(gè)預(yù)測方向已難以提升錯(cuò)誤隱藏的恢復(fù)質(zhì)量[7].因此,每個(gè)梯度角度被歸入到8個(gè)方向中的某一角度,每個(gè)方向的角度范圍是成對的22.5°.在當(dāng)前延拓區(qū)域的無錯(cuò)塊E和已隱藏塊R中,每個(gè)像素對應(yīng)的梯度幅值和梯度角度分別通過式(5)和式(6)進(jìn)行計(jì)算,由此為8預(yù)測方向累計(jì)梯度幅值.在獲得延拓區(qū)域的梯度分布信息之后,非迭代收縮填充過程將對當(dāng)前受損塊的所有像素逐一執(zhí)行多方向預(yù)測.
對于當(dāng)前受損塊中的不同像素,它們的填充先后次序會影響最終的恢復(fù)質(zhì)量,因?yàn)橐呀?jīng)隱藏過的像素可能導(dǎo)致錯(cuò)誤擴(kuò)散.對于由外至內(nèi)的受損塊像素填充,現(xiàn)有的空域錯(cuò)誤隱藏算法預(yù)設(shè)了與受損塊無關(guān)的像素填充次序,并沒有考慮不同的丟失模式應(yīng)具有差異化的像素填充次序.因此,本文算法在像素級可用度的基礎(chǔ)上,新增了鄰域級可用度的定義,從而設(shè)計(jì)出模式自適應(yīng)的“收縮填充次序”.在大多數(shù)情況下,正確接收的像素和已經(jīng)完成錯(cuò)誤隱藏的像素有著相似的利用價(jià)值.對于任一像素pl,它的像素級可用度α(pl)被定義為
(7)
如果某個(gè)像素已經(jīng)被正確接收到,它的像素級可用度被設(shè)置為1.對于一個(gè)丟失像素,它的像素級可用度被初始化為0;在進(jìn)行錯(cuò)誤隱藏之后,它的像素級可用度被設(shè)置為1.一般而言,一個(gè)丟失像素的恢復(fù)質(zhì)量會隨著它的16鄰域像素中可用像素的數(shù)量增加而提高.對于一個(gè)丟失像素Xk,它的鄰域級可用度β(Lk)被定義為在它的16鄰域像素Lk中所有像素級可用度之和
(8)
有著更高鄰域級可用度的像素應(yīng)該被賦予更高的優(yōu)先權(quán).在當(dāng)前受損塊里,有著相等鄰域級可用度β(Lk)的所有像素形成一個(gè)像素組,不同的像素組按照一組接一組的順序進(jìn)行隱藏.根據(jù)當(dāng)前受損塊內(nèi)像素組的鄰域級可用度,非迭代收縮填充首先恢復(fù)第1個(gè)像素組,它的像素有著最高的鄰域級可用度.當(dāng)?shù)?個(gè)像素組內(nèi)的所有像素按照先驗(yàn)填充準(zhǔn)則進(jìn)行錯(cuò)誤隱藏之后,非迭代收縮填充將恢復(fù)第2個(gè)像素組,它的像素在受損塊的所有像素中有著第二高的鄰域級可用度,第2個(gè)像素組的所有像素同樣按照先驗(yàn)填充準(zhǔn)則進(jìn)行錯(cuò)誤隱藏,以此類推.光柵掃描順序可能導(dǎo)致圖像中的錯(cuò)誤大致地從左上塊向右下塊進(jìn)行擴(kuò)散.一個(gè)像素組內(nèi)的所有像素具有相等的鄰域級可用度,各像素的填充順序需要預(yù)先設(shè)定,圖4給出了本文所提的先驗(yàn)填充準(zhǔn)則示意圖,圖中每個(gè)方框內(nèi)的數(shù)字表示相應(yīng)像素的填充次序.
圖4 一個(gè)像素組內(nèi)所有像素的先驗(yàn)填充準(zhǔn)則.方框內(nèi)的數(shù)字越小,表示該像素越早進(jìn)行填充
在當(dāng)前受損塊內(nèi),位于外層的像素組由于有著較高的鄰域級可用度,通常具有更高的優(yōu)先級,因此收縮填充次序呈現(xiàn)出從外層像素組到內(nèi)層像素組的大致趨勢.圖5(a)給出了對尺寸為8×8像素的當(dāng)前受損塊進(jìn)行非迭代收縮填充的一個(gè)例子,當(dāng)前受損塊的相鄰塊都被正確接收,圖中顏色越深的像素越晚進(jìn)行錯(cuò)誤隱藏,各像素上對應(yīng)的數(shù)字表示該像素的填充次序.圖5(b)給出了當(dāng)前受損塊在非迭代重構(gòu)過程中的次序幅度圖,有著更高幅度的像素將越晚進(jìn)行錯(cuò)誤隱藏.一組接一組的像素組重構(gòu)將大致從受損塊的外層向內(nèi)層進(jìn)行,同時(shí),丟失像素按照先驗(yàn)填充準(zhǔn)則逐個(gè)進(jìn)行恢復(fù),這種像素級的恢復(fù)順序被稱為“收縮填充次序”.
圖5 非迭代收縮填充的一個(gè)例子,一個(gè)8×8塊遇到規(guī)則間隔丟失模式(一個(gè)小方塊代表一個(gè)像素)
(9)
下面分析NSM算法的計(jì)算復(fù)雜度.在當(dāng)前延拓區(qū)域A中,無錯(cuò)塊E和已隱藏塊R的可用像素被用于估計(jì)當(dāng)前受損塊C的梯度分布,計(jì)算開銷主要是在每個(gè)可用像素處進(jìn)行梯度檢測,各向同性梯度檢測器的計(jì)算復(fù)雜度取決于參與梯度掩模算子的像素?cái)?shù)量a.假設(shè)塊大小是s2個(gè)像素,E和R的塊數(shù)量是b,則一個(gè)延拓區(qū)域包含b×s2個(gè)可用像素.因此,梯度特征學(xué)習(xí)的計(jì)算復(fù)雜度為O(a×b×s2),各像素的梯度可供多個(gè)相鄰塊使用.為了恢復(fù)當(dāng)前受損塊C,每一丟失像素執(zhí)行多方向插值,相應(yīng)的計(jì)算復(fù)雜度取決于該像素的16鄰域像素Lk中可用像素的數(shù)量d.對于一個(gè)受損塊,非迭代收縮填充的計(jì)算復(fù)雜度為O(d×s2).令g=a×b+d,NSM算法的計(jì)算復(fù)雜度為O(g×s2).
類似的,非迭代類AVC、CAD、BBF或EGI算法的計(jì)算復(fù)雜度均可表示為O(q×s2),通常g或q都是較小的整數(shù)值.AVC算法的計(jì)算復(fù)雜度為O(s2),其實(shí)時(shí)性最好;BBF算法的q值與NSM算法的g值基本相當(dāng).CAD算法采用了三種不同的隱藏算法進(jìn)行錯(cuò)誤掩蓋,需要預(yù)判受損塊的類型,內(nèi)容自適應(yīng)的預(yù)判流程增加了實(shí)現(xiàn)難度.EGI算法需要執(zhí)行自適應(yīng)的邊緣提取,然而尋找所有邊緣的準(zhǔn)確位置是比較耗時(shí)的.因此,CAD與EGI算法的q值相對較高.當(dāng)前恢復(fù)質(zhì)量最好的空域錯(cuò)誤隱藏算法采用了迭代逼近機(jī)制,然而每個(gè)像素的迭代重構(gòu)過程是非常耗時(shí)的,迭代循環(huán)的次數(shù)往往超過100次[10-12],雖然迭代過程可以通過窮舉法搜索出最匹配的候選者,但這一過程往往導(dǎo)致大量無效的重復(fù)操作,計(jì)算復(fù)雜度由此至少增長了一個(gè)數(shù)量級.
為了評估NSM算法,本文在標(biāo)準(zhǔn)測試圖像上進(jìn)行了大量實(shí)驗(yàn),塊尺寸采用現(xiàn)有錯(cuò)誤隱藏算法常用的8×8和16×16像素,并采用圖1所示的4種典型丟失模式:規(guī)則間隔丟失模式(丟失率≈25%)、規(guī)則連續(xù)丟失模式(丟失率≈50%)、隨機(jī)突發(fā)丟失模式(丟失率≈20%)、隨機(jī)行丟失模式(丟失率≈15%),這些模式也為其他錯(cuò)誤隱藏算法所采用.隨機(jī)數(shù)生成器采用同一缺省種子,以便針對不同圖像產(chǎn)生重復(fù)的隨機(jī)突發(fā)或隨機(jī)行丟失.下列測試圖像均來自USC-SIPI圖像數(shù)據(jù)庫[13]:Aerial、Boat、Couple、Elaine、House、Lena、Mandrill、Peppers、Barbara、Lighthouse、Crowd、Bridge,包含人臉、動(dòng)物、植物、房屋等多種類型,格式被統(tǒng)一為8位深度的512×512灰度圖像.NSM算法與緒論所述的空域錯(cuò)誤隱藏算法進(jìn)行了比較,包括AVC[4]、CAD[5]、HII[6]、EGI[7]、BBF[8]、MMK[9]、SLP[10]、DSR[11]和JSL[12].為了比較不同算法的計(jì)算復(fù)雜度,本文在同一實(shí)驗(yàn)平臺上測試了每種算法的運(yùn)行時(shí)間,該平臺包括Intel i5-4210M CPU (2.60 GHz)、8 GB內(nèi)存、Windows10 的64位操作系統(tǒng)、MATLAB R2018b.由于這些錯(cuò)誤隱藏算法采用了相似的基本指令集,它們的MATLAB程序能夠?yàn)樗惴◤?fù)雜度的評估提供一定的參考.
兩種最常用的重構(gòu)誤差測度:峰值信噪比(PSNR)和多尺度結(jié)構(gòu)相似度(SSIM)用于評價(jià)受損圖像的恢復(fù)質(zhì)量[14].PSNR或SSIM的評分越高,則圖像的恢復(fù)質(zhì)量越好.通過在每種丟失模式下分別測試所有圖像的平均性能,表1和表2比較了不同算法的恢復(fù)質(zhì)量.從表中可以看出,NSM與最好質(zhì)量算法之間的平均值差距分別為0.85 dB的PSNR、0.022 1的SSIM.相比于較低復(fù)雜度的AVC、CAD、BBF和EGI算法,NSM算法分別取得了0.625 dB、3.461 dB、1.952 dB和0.506 dB的平均PSNR增益,同時(shí)取得了0.027 6、0.051、0.035 3和0.013 6的平均SSIM增益.
就計(jì)算復(fù)雜度而言,表3顯示了不同算法的運(yùn)行時(shí)間比較.對于每種丟失模式,各算法的運(yùn)行時(shí)間是恢復(fù)每一圖像后的平均值.從表中可以看出,AVC、CAD、BBF、EGI和NSM可以被歸為低復(fù)雜度的錯(cuò)誤隱藏算法,而其它迭代類算法的運(yùn)行時(shí)間至少增長了一個(gè)數(shù)量級.AVC算法的實(shí)時(shí)性最好,但其平均PSNR和平均SSIM僅高于CAD算法,恢復(fù)質(zhì)量相較于其他低復(fù)雜度算法處于劣勢.BBF算法比NSM算法稍快,但由于沒有引入局部自適應(yīng)的梯度特征學(xué)習(xí)機(jī)制,導(dǎo)致恢復(fù)質(zhì)量較差.除了AVC和BBF算法,所提NSM算法相比于其他錯(cuò)誤隱藏算法始終需要更少的運(yùn)行時(shí)間,計(jì)算復(fù)雜度比迭代類算法低了一個(gè)數(shù)量級以上.NSM算法無需實(shí)測數(shù)據(jù)進(jìn)行模型訓(xùn)練,對不同的丟失模式具有良好的通用性,其平均PSNR和平均SSIM在低復(fù)雜度算法中表現(xiàn)最好.
表1 在各種丟失模式下,各種錯(cuò)誤隱藏算法的平均PSNR比較
表2 在各種丟失模式下,各種錯(cuò)誤隱藏算法的平均SSIM比較
表3 在各種丟失模式下,各種錯(cuò)誤隱藏算法的平均運(yùn)行時(shí)間比較
在現(xiàn)有的空域錯(cuò)誤隱藏算法中,運(yùn)行快速的多方向插值算法在處理多種丟失模式時(shí)效果不甚理想,而恢復(fù)質(zhì)量高的迭代類算法又難以滿足實(shí)時(shí)性需求.為了改進(jìn)當(dāng)前空域錯(cuò)誤隱藏的綜合性能,本文提出了一種高效的非迭代收縮多方向預(yù)測算法,通過各向同性梯度檢測器學(xué)習(xí)每個(gè)受損塊鄰域的梯度特征,隨后根據(jù)精細(xì)的收縮填充次序逐一對丟失像素進(jìn)行非迭代重構(gòu).所提算法在各種丟失模式下均能夠獲得良好的綜合性能,在通用性、計(jì)算復(fù)雜度和恢復(fù)質(zhì)量之間取得了一種具有競爭力的性能折衷.