可重構的並行圖像細節增強方法和裝置與流程
2023-05-22 02:37:56
本發明涉及視頻圖像處理領域,具體涉及一種可重構的並行圖像細節增強方法和裝置。
背景技術:
目前,視頻技術的主流發展方向之一為超高清(4K解析度)顯示技術。相對於高清(1920*1080)視頻,4K視頻的像素數從2M提升到8M,因此對圖像增強算法的畫質和效能提出了更高的要求。
傳統的視頻圖像細節增強解決方案主要有針對高清及以下標準的需求設計,在面對4K圖像處理需求時,很有可能處理能力不足的問題;同時4K超高清圖像可以帶來更精細的畫面效果,因此現有細節增強算法應用於4K解析度圖像時,過衝等負面效果可能會更加容易被觀看者察覺。
此外,由於傳統方案通常採用固化算法的專用集成電路晶片作為具體實施方案,在面臨算法升級需求時,成本壓力巨大。
因此,需要提出一種新的視頻圖像細節增強解決方案,對該方案的要求是,1能提升圖像銳利度,2對細節增強帶來的過衝、噪聲放大等負面效果有較好的抑制,3滿足實時超高清視頻流的處理需求,4成本可控前提下,具備算法升級潛力。
技術實現要素:
為了解決現有技術中的上述問題,本發明一方面提出了一種可重構的並行圖像細節增強方法,包括以下步驟:
步驟1,將待處理的圖像數據加載至緩衝器;所述待處理的圖像數據為R*Q的像素點陣,其中R或Q的值等於並行度N;所述像素點陣可拆分為多個包含N像素點的一維點陣;
步驟2,對所述一維點陣中各待增強像素點,分別並行進行水平與垂直方向的濾波,獲取兩個方向的細節信號;
步驟3,對兩個方向的細節信號核化濾波,過濾掉由圖像噪聲引入的微小細節信號;
步驟4,通過待增強像素點鄰域兩側的灰度對稱性以及該待增強像素點細節信號強度,對增強後的細節信號強度進行控制,進行過衝抑制,將完成過衝抑制的兩個細節信號相加,獲得這N個像素點的細節信號;
步驟5,進一步對步驟4中獲取的細節信號進行幅度抑制;
步驟6,依次對待處理的圖像數據中各一維點陣執行步驟2至步驟5進行處理,完成該待處理的圖像數據的細節增強。
優選地,所述緩衝器包括NM個大小為N個像素的緩衝單元;所述緩衝器配備有4個讀取埠和4個寫入埠。
優選地,所述水平與垂直方向的濾波,所採用的濾波器分別對應為水平NH階和垂直NV階的一維濾波器,分別計算像素點左右各(NH-1)/2個和上下各(NV-1)/2個像素的灰度,並結合該像素點的灰度值獲取該像素點兩個方向的細節信號。
優選地,所述的緩衝器為多粒度的離散存儲器結構。
優選地,所述水平與垂直方向的濾波,具體為將濾波模板與圖像數據進行空域卷積,其濾波結果表示為:
其中,(i,j)表示圖像數據中第i行第j列位置上的像素點,DEH(i,j)表示(i,j)處的水平濾波結果,DEV(i,j)表示(i,j)處的垂直濾波結果,P(i,j)表示圖像第i行第j列位置上的像素灰度,FH(k)表示水平模板第k個元素,FV(t)表示垂直模板第t個元素。
優選地,步驟4中所述過衝抑制,是對水平細節信號和垂直細節信號分別進行處理,然後將經過過衝抑制的兩個細節信號相加,獲得最終的細節信號,具體方法為:
步驟41,利用待處理像素點的灰度值以及該點左右各(NH-1)/2個和上下各(NV-1)/2個像素的灰度進行絕對差運算,即得到左右各(NH-1)/2個和上下各(NV-1)/2個共四組灰度絕對差;
步驟42,求取四組絕對差的均值:Mean_L,Mean_R,Mean_T,Mean_B,即該點左右上下四個灰度差均值;
步驟43,計算第一過衝抑制因子alpha和第二過衝抑制因子beta,公式為
alpha=ka*Y_abs_mean
其中,ka為設定係數,Y_abs_mean為灰度絕對差均值的絕對差,即|Mean_L-Mean_R|或|Mean_T-Mean_B|,de為細節信號強度,kb為設定的正係數。
步驟44,計算過衝抑制因子s=1-alpha×beta,進行過充抑制,並獲取經過過衝抑制的細節信號de_ss=de×s。
優選地,所述細節信號強度de=de_h+de_v,其中de_h為水平方向的細節信號強度,de_v為豎直方向的細節信號強度。
優選地,步驟5中所述幅度抑制,其方法為:
步驟51,將de_ss與細節增強係數gain相乘,得到增強後的細節信號de_gain;
步驟52,並按照如下公式進行幅度抑制,並得到最終的細節信號de_final;
其中,Th為設定閾值,Max_de為設定最大幅度。
優選地,步驟5中進行幅度抑制後的輸出值為Yout=Yin+de_final,其中Yout和Yin分別為輸出的像素灰度和輸入的像素灰度。
優選地,在步驟1之前還包括參數預加載步驟,參數預加載步驟包括:將預先設定的水平與垂直方向的濾波、核化濾波、過衝抑制和幅度抑制中的固化參數加載至通用緩衝器。
優選地,步驟1中所述待處理的圖像數據通過對圖像數據按照R*Q的像素點陣順次拆分獲取;步驟1中所述加載至緩衝器,其方法為:
按照所述圖像數據的拆分順序,順次選取待處理的圖像數據並通過步驟2~步驟6處理,直至所有待處理的圖像數據處理完畢。
本發明的另一方面,還提出了一種可重構的並行圖像細節增強裝置,其特徵在於,包括局部存儲器、訪存控制單元、通用緩衝器、並行算術邏輯單元ALU、狀態機、並行乘累加器MAC;
所述局部存儲器,用於保存輸入輸出圖像數據以及並行視頻圖像對比度增強算法所需參數,該存儲器支持並行訪問;
所述訪存控制單元,用於局部存儲器與通用緩衝器之間的數據交換;
所述通用緩衝器,用於緩衝一次完整的處理流程所需要的全部數據以及中間結果,該緩衝器可以通過地址直接索引;
所述並行算術邏輯單元,用於執行並行視頻圖像對比度增強算法中涉及的非乘法類算術與邏輯運算;其並行度為N;
所述狀態機,用於產生所有功能部件的控制信號;
所述並行乘累加器,用於對執行乘法相關運算,其並行度為N;
所述狀態機分別通過通信線路與並行算術邏輯單元、訪存控制單元、通用緩衝器、並行乘累加器相連接;所述局部存儲器通過通信線路連接訪存控制單元;所述通用緩衝器通過通信線路分別與訪存控制單元、並行算術邏輯單元、並行乘累加器相連接;所述並行算術邏輯單元通過通信線路與並行乘累加器相連接。
本發明具有以下有益效果:
1、增強了圖像細節信號,使紋理區域更加清晰;
2、對細節進行增強的同時,有效降低了噪聲和過衝;
3、易於對圖像處理算法進行後期優化升級;
4、提高了數據的使用效率,減少了運算部件與外圍存儲器之間的數據交互,降低了訪存帶寬壓力;
5、通過使用通用緩衝器和狀態機對功能部件進行控制,實現了硬體資源的重複利用。
附圖說明
圖1是本發明可重構的並行圖像細節增強裝置的結構示意圖;
圖2是本發明提供的並行圖像細節增強方法的流程圖;
圖3是依照本發明一實施例的通用緩衝器的緩衝區示意圖;
圖4是水平7階濾波和垂直5階濾波示例圖;
圖5是依照本發明實施例核化濾波降噪示例圖;
圖6(a)~(d)是過衝現象易發生場景的示例圖;
圖7是依照本發明實施例過衝抑制因子alpha計算曲線示例圖;
圖8是依照本發明實施例過衝抑制因子beta計算曲線的示例圖;
圖9是依照本發明實施例過衝抑制流程的示例圖;
圖10是依照本發明實施例沿邊緣插值的示例圖。
具體實施方式
下面參照附圖來描述本發明的優選實施方式。本領域技術人員應當理解的是,這些實施方式僅僅用於解釋本發明的技術原理,並非旨在限制本發明的保護範圍。
本發明的一種可重構的並行圖像細節增強裝置,如圖1所示,包括局部存儲器、訪存控制單元、通用緩衝器、並行算術邏輯單元(ALU)、狀態機、並行乘累加器(MAC);
所述局部存儲器,用於保存輸入輸出圖像數據以及並行視頻圖像對比度增強算法所需參數,該存儲器支持並行訪問;
所述訪存控制單元,用於局部存儲器與通用緩衝器之間的數據交換;本實施例中採用三個功能完全一致的訪存控制單元,突破了訪存資源瓶頸;
所述通用緩衝器,用於緩衝一次完整的處理流程所需要的全部數據以及中間結果,該緩衝器可以通過地址直接索引;
所述並行算術邏輯單元,用於執行並行視頻圖像對比度增強算法中涉及的非乘法類算術與邏輯運算;其並行度為N;
所述狀態機,用於產生所有功能部件的控制信號;
所述並行乘累加器,用於對執行乘法相關運算,其並行度為N;
所述狀態機分別通過通信線路與並行算術邏輯單元、訪存控制單元、通用緩衝器、並行乘累加器相連接;所述局部存儲器通過通信線路連接訪存控制單元;所述通用緩衝器通過通信線路分別與訪存控制單元、並行算術邏輯單元、並行乘累加器相連接;所述並行算術邏輯單元通過通信線路與並行乘累加器相連接。
當需要更改增強算法時,該裝置僅需要對狀態機進行重新編程,產生新的控制信號,同時更新局部存儲器中的算法參數,即可快速實現算法迭代,而不需要重新設計製造硬體電路。
本發明還提出了一種可重構的並行圖像細節增強方法,如圖2所示,包括以下步驟:
步驟1,數據緩衝:將待處理的圖像數據加載至緩衝器;所述待處理的圖像數據為R*Q的像素點陣,其中R或Q的值等於並行度N;所述像素點陣可拆分為多個包含N像素點的一維點陣;
步驟2,濾波:對所述一維點陣中各待增強像素點,分別並行進行水平與垂直方向的濾波,獲取兩個方向的細節信號;
步驟3,降噪:對兩個方向的細節信號核化濾波,過濾掉由圖像噪聲引入的微小細節信號;
步驟4,過衝抑制:通過待增強像素點鄰域兩側的灰度對稱性以及該待增強像素點細節信號強度,對增強後的細節信號強度進行控制,進行過衝抑制,將完成過衝抑制的兩個細節信號相加,獲得這N個像素點的細節信號;
步驟5,幅度抑制:進一步對步驟4中獲取的細節信號進行幅度抑制;
步驟6,緩存數據更新:通過更新緩衝器中數據,依次對待處理的圖像數據中各一維點陣執行步驟2至步驟5進行處理,完成該待處理的圖像數據的細節增強。
本實施例在步驟1之前還包括參數預加載步驟,參數預加載步驟包括:將預先設定的水平與垂直方向的濾波、核化濾波、過衝抑制和幅度抑制中的固化參數加載至通用緩衝器。
1、參數預加載
該驟屬於本發明所述裝置的初始化階段,水平與垂直方向的濾波器係數,核化濾波、過衝抑制和幅度抑制中所使用的閾值等固化參數會被預先加載到通用緩衝器中。
圖3為本發明一實施例的通用緩衝器。如圖3所示,所述通用緩衝器(用大寫字母M代表)共存在NM個大小為N個像素的緩衝單元,配備有4個讀取埠(r0、r1、r2、r3)和4個寫入埠(w0、w1、w2、w3),可以承載高速讀寫操作。通用緩衝器M支持直接使用序號對其NM個緩衝單元進行讀寫,便於對數據的重複使用。本發明所採用的通用緩衝器與運算部件同步運行,避免了高速運算部件等待低速存儲部件的問題。
2、數據緩衝
對圖像數據按照R*Q的像素點陣順次拆分獲取多個待處理的圖像數據,按照所述圖像數據的拆分順序,順次選取待處理的圖像數據加載至緩衝器,並通過步驟2~步驟6處理,直至所有待處理的圖像數據處理完畢;所述待處理的圖像數據為R*Q的像素點陣,其中R或Q的值等於並行度N;所述像素點陣可拆分為多個包含N像素點的一維點陣。
本發明提供的是一種並行度為N的處理方法,即等效於N個濾波器同時工作,因此需要在進行濾波前,在通用緩衝器內緩存NH列N個像素或NV行N個像素。同時,本發明所述的並行處理裝置與方法可以視為對N維向量數據進行處理的裝置與方法,因此在本文檔後續部分將從對N維向量的操作的角度來對本發明進行詳細說明。
本發明所述算法涉及到對一列像素的並行處理,即需要對存儲器進行按列訪問,傳統的存儲器不支持高效的按列訪問模式,因此本發明所述裝置採用了一種多粒度的離散存儲器結構,具體可參照「專利號為201110460585.1,名稱為多粒度並行存儲系統與存儲器」進行設計。
3、濾波
本發明的圖像細節增強方法首先需要通過濾波獲取水平和垂直方向的細節信號,具體採用了水平NH階和垂直NV階的一維濾波器,實現對細節信號的提取。一般的,濾波器階數越高,對細節信號的提取能力就越強,相應的,其過衝效應等負面影響也越明顯,綜合考慮以上兩點以及信號對稱性,通常採用水平5或7階,垂直3或5階的多個濾波器實施組合濾波,以獲得最好的效果,圖4是一個單像素水平7階垂直5階濾波示意圖。每獲取一個像素點的細節信號,需要待處理像素點的灰度值以及該點左右各(NH-1)/2個和上下各(NV-1)/2個像素的灰度。
本發明通過水平和垂直兩組一維濾波器,實現對細節信號的提取,具體操作為將濾波模板與圖像進行空域卷積,具體描述如下:
若水平濾波模板為FH,垂直濾波模板為FV,用FH(k)表示水平模板第k個元素,FV(t)表示垂直模板第t個元素,P(i,j)表示圖像第i行第j列位置上的像素灰度,則(i,j)像素點處的水平濾波結果DEH(i,j)與垂直濾波結果DEV(i,j)可表示為公式(1)、公式(2):
其中,FH(0)和FV(0)對應濾波模板中間位置元素。
本發明採用了並行處理,所以可將濾波模板的每個元素視為一個N維向量,而P可視為第i行或第j列的連續N個像素的灰度。此外本發明所述方法中涉及到的向量乘法不同於數學上的向量外積或內積,本方法中向量乘法是將兩個相同維度向量的對應位置元素相乘,其結果仍為一個N維向量。這裡以二維向量為例作以簡單說明,向量a=(a1,a2),b=(b1,b2),則向量乘法a*b=(a1b1,a2b2)。其中a1,a2,b1,b2均為實數,a1b1,a2b2表示實數乘積。
進行濾波工作時,本發明所述裝置先將通用緩衝器中緩衝區內的待處理的圖像數據和濾波器係數依次發送給MAC的寄存器,MAC擁有四個等價的寬度為N的寄存器,用以完成N維向量乘法與累加運算,乘累加運算的結果可以返回至通用緩衝器,以方便再次被調用或者直接傳遞給其他運算部件,參與後續處理。
4、降噪
本發明採用核化濾波對提取的細節信號所包含的噪聲進行抑制,核化濾波原理是:默認細節信號疊加了一個比較小的噪聲信號,因此將細節信號減去一個被稱為核化濾波閾值的較小數值,即認為是不含噪聲的細節信號。具體運算是,首先判斷細節信號的正負,並獲取符號標誌位,若信號為正值,則標誌位為1,否則為-1;然後對細節信號取絕對值,並將此絕對值減去核化濾波閾值,對非正結果,全部認為是0;最後將減法結果與符號位相乘,得到降噪結果。圖5是核化濾波的輸入輸出關係示意圖。
該步驟涉及到(與零)比較,求絕對值,減法,求最大值和乘法運算,除乘法運算外,其餘運算均由並行算術邏輯單元ALU執行。與MAC類似,ALU也具有4個完全等價的N維向量寄存器,可以同時對N個數據進行算術與邏輯運算。
5、過衝抑制
本發明依據細節信號的大小以及對應像素點鄰域的灰度對稱性對細節增強的幅度進行控制,從而實現過衝抑制。一般的,如圖6(a)、6(b)、6(c)、6(d)所示,過衝現象通常發生在灰度變化較大(即細節豐富)且灰度不對稱的區域。圖6(a)~(d)給出了水平方向亮度不對稱,易發生過衝現象的四種情況,垂直方向與此類似。
本發明對過衝抑制的策略是對水平細節信號和垂直細節信號分別進行處理,然後將經過過衝抑制的兩個細節信號相加,獲得最終的細節信號。具體方法如下:
步驟41,利用待處理像素點的灰度值以及該點左右各(NH-1)/2個和上下各(NV-1)/2個像素的灰度進行絕對差運算,即得到左右各(NH-1)/2個和上下各(NV-1)/2個共四組灰度絕對差;
步驟42,求取四組絕對差的均值:Mean_L,Mean_R,Mean_T,Mean_B,即該點左右上下四個灰度差均值;
步驟43,利用圖7所示曲線得到第一過衝抑制因子alpha,如公式(3)所示
alpha=ka*Y_abs_mean (3)
其中ka為設定係數,Y_abs_mean為灰度絕對差均值的絕對差,即|Mean_L-Mean_R|或|Mean_T-Mean_B|。
同時利用下式計算與細節信號強度相關的第二過衝抑制因子beta,如公式(4)所示;
其中,de為細節信號強度,kb為設定的正係數,圖8給出了beta計算公式的圖形化表示。
步驟44,本發明所述裝置進行過衝抑制時,可以直接從通用緩衝器獲取已加載的NH列或NV行像素的灰度值,並利用這些灰度數據計算出兩個抑制因子,並根據alpha和beta計算出過衝控制因子s=1-alpha×beta,從而實施過衝抑制,得到經過過衝抑制的細節信號de_ss=de×s。
由於本發明對兩個方向分別進行過衝抑制,因此最終的細節信號de_ss=de_ss_h+de_ss_v,de_ss_h、de_ss_v分別表示水平和垂直方向經過過衝抑制的細節信號強度。圖9中的de_ss_X的X代表h或v,即水平或垂直方向的細節信號。
結合本發明的可重構的並行圖像細節增強裝置,具體執行流程見圖9,包括:圖像數據加載至ALU;計算灰度絕對值差,結果輸出至MAC;絕對差累加,結果輸出至ALU;計算絕對差均值,並進一步計算絕對差均值的絕對差;Ka加載至MAC,計算alpha,結果保留在MAC寄存器中;經過降噪的細節信號de和kb加載至MAC,計算beta;計算alpha與beta的乘積,結果輸出至ALU;計算過衝控制因子s=1-alpha×beta,結果輸出至MAC;計算經過過衝抑制的細節信號de_ss_X=de_X×s,結果輸出至MAC。
6、幅度抑制
經過過衝抑制的細節信號仍有可能存在強度過大,導致圖像過增強,從而影響觀看質量,因此還需要對增強後的細節信號的幅度進行控制。該步驟分為兩個過程:
步驟51,對經過過衝抑制的細節信號de_ss進行放大,方法是在MAC中將de_ss與細節增強係數gain相乘,得到增強後的細節信號de_gain;
步驟52,將結果輸出至ALU,在ALU中根據圖10所示曲線進行幅度抑制,並得到最終的細節信號de_final,如公式(5)所示,
其中,Th為設定閾值,Max_de為設定最大幅度。
最終的輸出結果為Yout=Yin+de_final。其中Yout和Yin分別為輸出的像素灰度和輸入的像素灰度。Yout首先輸出至通用緩衝器,然後由訪存控制單元存儲至局部存儲器中。
7、緩存數據更新
在完成N個像素的細節增強之後,需要更新通用緩衝器中緩衝區的數據,讀取後面N個數據,替換緩衝區中NH或NV個N維向量中的第一個,從物理意義上可視為濾波窗口的滑動。
通過更新緩衝器中數據,依次對待處理的圖像數據中各一維點陣執行步驟2至步驟5進行處理,完成該待處理的圖像數據的細節增強。
上述過程對本發明的完整處理流程進行了解釋說明,本發明通過對狀態機的編程以及使用通用緩衝器設計,實現了硬體資源的重複利用,在運行複雜算法時,避免了傳統的專用電路方案設計流片周期長且版本迭代成本高的不足之處。
所屬技術領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置的具體工作過程及有關說明,可以參考前述方法實施例中的對應過程,在此不再贅述。
本領域技術人員應該能夠意識到,結合本文中所公開的實施例描述的各示例的單元及方法步驟,能夠以電子硬體、計算機軟體或者二者的結合來實現,為了清楚地說明電子硬體和軟體的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以電子硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。本領域技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
至此,已經結合附圖所示的優選實施方式描述了本發明的技術方案,但是,本領域技術人員容易理解的是,本發明的保護範圍顯然不局限於這些具體實施方式。在不偏離本發明的原理的前提下,本領域技術人員可以對相關技術特徵作出等同的更改或替換,這些更改或替換之後的技術方案都將落入本發明的保護範圍之內。