【技術(shù)領(lǐng)域】
本發(fā)明提出了一種圖像直方圖信息獲取方法,屬于圖像信息提取范疇,具體涉及一種基于fpga的圖像直方圖信息快速獲取方法。
背景技術(shù):
圖像直方圖是圖像的一個基本信息,是進(jìn)行圖像處理的一個重要依據(jù)。如圖像直方圖均衡、自動閾值分割、圖像增強(qiáng)、圖像去霧、圖像動態(tài)范圍展寬等處理基本都要用到圖像直方圖信息?;趂pga的視頻圖像處理方式具有處理速度快、可移植性好、修改靈活等特點,在視頻圖像處理中被廣泛應(yīng)用,基于fpga的直方圖信息統(tǒng)計是很多圖像處理方式的基礎(chǔ)。
現(xiàn)有的基于fpga的圖像直方圖統(tǒng)計主要兩種:一種是使用fpga外部存儲器進(jìn)行統(tǒng)計、另外一種是使用fpga內(nèi)部存儲模塊進(jìn)行直方圖統(tǒng)計。使用外部存儲器需要單獨的存儲器件,統(tǒng)計速度與外部存儲器讀寫速度有關(guān);使用fpga內(nèi)部存儲模塊進(jìn)行統(tǒng)計時,fpga內(nèi)部使用流水線的方式對圖像進(jìn)行處理,現(xiàn)有方式不能在一個像素時鐘周期內(nèi)完成對直方圖信息的讀出和寫入,無法做到每個像素時鐘統(tǒng)計一個像素的直方圖信息,一般采用降采樣的方式進(jìn)行統(tǒng)計,如每四個像素時鐘統(tǒng)計一個像素的直方圖信息,統(tǒng)計出的直方圖信息是基于圖像的四分之一像素進(jìn)行計算的、與真實值存在偏差,影響后續(xù)的圖像處理。
因此,一種快速精確的直方圖信息統(tǒng)計方式對提高基于直方圖信息的圖像處理的速度和精度有重要意義。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的問題是提出一種基于fpga的圖像直方圖信息統(tǒng)計方法,可以實現(xiàn)每個像素時鐘統(tǒng)計一個像素的直方圖信息,統(tǒng)計結(jié)果存儲在fpga內(nèi)部雙端口ram中,提高了直方圖信息統(tǒng)計的速度和精度。
一種基于fpga的圖像直方圖信息獲取方法,使用fpga存儲模塊進(jìn)行統(tǒng)計,同時,fpga使用流水線的方式對圖像進(jìn)行處理,該方法在一個像素時鐘周期內(nèi)完成對直方圖信息的讀出和寫入,實現(xiàn)每個像素時鐘統(tǒng)計一個像素的直方圖信息,最終的結(jié)果存儲在fpga雙端口ram中。
在一個像素時鐘周期內(nèi)完成對直方圖信息的讀出和寫入的具體方法為:
(1)在第一個時鐘周期,對輸入圖像的幀同步信號、行同步信號進(jìn)行延時,對圖像數(shù)據(jù)進(jìn)行延時,確保圖像數(shù)據(jù)在行間隔期間保持不變;
(2)在第二個時鐘周期,對幀同步信號、行同步信號和圖像數(shù)據(jù)進(jìn)行延時,同時,產(chǎn)生前后兩個圖像數(shù)據(jù)是否一致的標(biāo)識,并把該標(biāo)識進(jìn)行延時;
(3)在第三個時鐘周期,把步驟(2)中延時后的圖像數(shù)據(jù)賦值賦給雙端口ram端口a的讀出地址,把圖像數(shù)據(jù)是否一致標(biāo)識取反,賦值賦給雙端口ram端口b的寫入使能并延時;
(4)在第四個時鐘周期,把行同步信號進(jìn)行延時,把圖像數(shù)據(jù)賦值賦給雙端口ram端口b的寫入地址,圖像數(shù)據(jù)是否一致標(biāo)識進(jìn)行延時;第三個時鐘周期內(nèi)幅值賦給雙端口ram端口a的讀出地址有效;
(5)第五個時鐘周期,雙端口ram端口b的寫入地址有效,雙端口ram端口a的讀出數(shù)據(jù)有效,同時,判斷圖像數(shù)據(jù)是否一致標(biāo)識是否為1,如果等于1,使用寄存器把該圖像數(shù)據(jù)對應(yīng)的直方圖信息存儲供下個時鐘周期使用,如果不等于1,端口b的寫入使能有效,把使用寄存器記錄的圖像數(shù)據(jù)對應(yīng)的直方圖信息更新后從端口b寫入ram。
在步驟(1)中,圖像數(shù)據(jù)在輸入行有效信號為高電平時賦值延時,輸入行同步信號為低時保持不變。
步驟(2)中的前后兩個圖像數(shù)據(jù)是否一致的標(biāo)識是通過把當(dāng)前輸入的圖像數(shù)據(jù)與上一個時鐘周期的圖像數(shù)據(jù)進(jìn)行比較后,得到相鄰兩個圖像數(shù)據(jù)是否一致的標(biāo)識。
步驟(3)進(jìn)一步包括:在步驟(2)的基礎(chǔ)上把行同步信號和圖像數(shù)據(jù)進(jìn)行延時。
采用非阻塞賦值進(jìn)行延時。
為保證每一幀最后一個直方圖信息的正確寫入,需要行計數(shù)器和列計數(shù)器,在圖像輸入結(jié)束時單獨給出一個端口b的寫入使能,圖像數(shù)據(jù)輸入完成后即可完成圖像直方圖信息的獲取。
圖像輸入的幀同步信號和行同步信號均為高電平有效。
在圖像輸入的幀間隔期間對ram進(jìn)行清零。
雙端口ram包括fpga內(nèi)部雙端口ram和fpga片外雙端口ram。
與現(xiàn)有技術(shù)相比,本發(fā)明至少具有以下有益效果:本發(fā)明提供了一種基于fpga的圖像直方圖信息獲取方法,使用fpga存儲模塊進(jìn)行統(tǒng)計,同時,fpga使用流水線的方式對圖像進(jìn)行處理,該方法在一個像素時鐘周期內(nèi)完成對直方圖信息的讀出和寫入,實現(xiàn)每個像素時鐘統(tǒng)計一個像素的直方圖信息,最終的結(jié)果存儲在fpga雙端口ram中。
【附圖說明】
圖1為圖像輸入格式;
圖2為直方圖信息統(tǒng)計流程圖。
【具體實施方式】
本發(fā)明采用以下技術(shù)方案:
一種基于fpga雙端口ram的直方圖信息統(tǒng)計方式采用流水線方式,使用多個時鐘周期逐級流水的方式實現(xiàn),圖像輸入完成后即可得到圖像的直方圖信息。在圖像輸入的幀間隔期間對ram進(jìn)行清零。圖像輸入使用探測器常用的圖像輸出格式,圖像輸入包含幀同步信號(vsync)、圖像行同步信號(hsync)、圖像數(shù)據(jù)(data)和像素同步時鐘(clk)作為圖像輸入信號;使用fpga內(nèi)部雙端口ram端口a讀出原有的直方圖信息,使用端口b寫入新的直方圖信息;統(tǒng)計完成的直方圖信息存儲在雙端口ram中。
具體按照如下的步驟實施:
調(diào)用雙端口ram,每一個端口都可以進(jìn)行讀寫操作,若輸入圖像為8bit,ram深度為256,ram寬度依據(jù)圖像分辨率確定。若圖像為10bit或12bit,ram深度為1024或4096,在圖像輸入的幀間隔期間對ram進(jìn)行清零操作。
圖像輸入幀同步信號為vsync,圖像輸入行同步信號為hsync,輸入并行圖像數(shù)據(jù)為data。圖像輸入的幀同步信號和行同步信號均為高電平有效,幀同步信號、行同步信號、像素同步時鐘和并行圖像數(shù)據(jù)的關(guān)系如附圖1所示。
(1)第一個時鐘周期:采用非阻塞賦值對輸入圖像的幀同步信號、行同步信號進(jìn)行延時;圖像數(shù)據(jù)在輸入行同步信號為高電平時使用非阻塞賦值延時,輸入行同步信號為低電平時保持不變,確保圖像數(shù)據(jù)在行間隔期間保持不變。
(2)第二個時鐘周期:第一個時鐘周期的基礎(chǔ)上采用非阻塞賦值對輸入圖像的幀同步信號、行同步信號和圖像數(shù)據(jù)進(jìn)行延時;把當(dāng)前輸入的圖像數(shù)據(jù)與上一個時鐘周期的圖像數(shù)據(jù)進(jìn)行比較,得到相鄰兩個圖像數(shù)據(jù)是否一致的標(biāo)識,并把標(biāo)識采用非阻塞賦值進(jìn)行延時。
(3)第三個時鐘周期:把第二個時鐘周期內(nèi)經(jīng)過延時的圖像數(shù)據(jù)使用非阻塞賦值賦給雙端口ram端口a的讀出地址;采用非阻塞賦值在二個時鐘周期操作的基礎(chǔ)上把行同步信號和圖像數(shù)據(jù)采用非阻塞賦值進(jìn)行延時;把圖像數(shù)據(jù)是否一致標(biāo)識取反,使用非阻塞賦值賦給雙端口ram端口b的寫入使能并使用非阻塞賦值延時;
(4)第四個時鐘周期:采用非阻塞賦值在第三個時鐘周期操作的基礎(chǔ)上把行同步信號進(jìn)行非阻塞賦值延時,把圖像數(shù)據(jù)采用非阻塞賦值賦給雙端口ram端口b的寫入地址,圖像數(shù)據(jù)是否一致標(biāo)識采用非阻塞賦值進(jìn)行延時;第三個時鐘周期內(nèi)采用非阻塞賦值賦給雙端口ram端口a的讀出地址有效;
(5)第五個時鐘周期:雙端口ram端口b的寫入地址有效,雙端口ram端口a的讀出數(shù)據(jù)有效;判斷圖像數(shù)據(jù)一致標(biāo)識是否為1,若等于1,表示相鄰的兩個圖像數(shù)據(jù)相等,不需要把第一個圖像數(shù)據(jù)對應(yīng)的直方圖信息寫入,使用寄存器把該圖像數(shù)據(jù)對應(yīng)的直方圖信息存儲供下個時鐘周期使用;若判斷圖像數(shù)據(jù)一致標(biāo)識不等于1,端口b的寫入使能有效,把使用寄存器記錄的圖像數(shù)據(jù)對應(yīng)的直方圖信息更新后從端口b寫入ram。
以上操作采用流水線方式進(jìn)行,為保證每一幀最后一個直方圖信息的正確寫入,需要行計數(shù)器和列計數(shù)器,在圖像輸入結(jié)束時單獨給出一個端口b的寫入使能,圖像數(shù)據(jù)輸入完成后即可完成圖像直方圖信息的統(tǒng)計。
本發(fā)明專利實施例使用fpga內(nèi)部雙端口ram,按照上述設(shè)計流程使用fpga片外雙端口ram統(tǒng)計圖像直方圖也屬于本發(fā)明的權(quán)利要求范圍之內(nèi)。