0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用FPGA的Block RAM性能實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-07-10 08:10 ? 次閱讀

引言

隨著HDTV 的普及,以LCD-TV 為主的高清數(shù)字電視逐漸進入蓬勃發(fā)展時期。與傳統(tǒng)CRT 電視不同的是,這些高清數(shù)字電視需要較復雜的視頻處理電路來驅(qū)動,比如:模數(shù)轉(zhuǎn)換(A/D Converter)、去隔行(De-interlacer)、視頻縮放(Scaler)和視頻圖像增強(Video Enhancement)等等。由于HDTV 的帶寬較高,720p 信號(1280×720?Hz)的像素速率達到74MHz,因此針對HDTV 的視頻處理算法需要更高性能的器件。采用大規(guī)模高工藝的ASIC 芯片是目前這個問題的主要解決方案,Pixelworks、Genesis 等公司均推出了基于大規(guī)模ASIC 的解決方案。但是,隨著FPGA 工藝的不斷改善,其性價比與日俱增,尤其是Xilinx、Altera廠商紛紛采用90nm 工藝量產(chǎn)后,其價格不斷降低,Xilinx 最新推出的Spartan-3E系列FPGA 120 萬門的售價只有 9 美元,已經(jīng)在小量產(chǎn)品的IC 設計中開始替代結(jié)構(gòu)化ASIC,在數(shù)字高清電視這類價格敏感型消費類電子產(chǎn)品中也開始大量采用。

本文介紹了如何在FPGA 中利用Block RAM 的特殊結(jié)構(gòu)實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計。

灰度直方圖統(tǒng)計

灰度直方圖統(tǒng)計是圖像處理過程中很常用的一個步驟,簡單來講,就是對一幅圖像各個灰度的像素進行計數(shù),得到一張灰度分布表。例如,8 位量化的灰度圖像統(tǒng)計結(jié)果就是256個值,分別代表0-255 每個灰度像素的數(shù)量,如圖1 所示為Lena 圖像的灰度直方圖統(tǒng)計結(jié)果。直方圖是分析一幅圖像亮度分布特性有力的工具,根據(jù)它的結(jié)果可以進行諸如灰度拉伸、自動對比度、動態(tài)伽馬調(diào)整等操作。

圖1 Lena 圖像的灰度直方圖統(tǒng)計

FPGA算法統(tǒng)計

在計算機或者DSP 上實現(xiàn)直方圖統(tǒng)計時,我們通常會使用數(shù)組結(jié)構(gòu),即在內(nèi)存中開辟一個整數(shù)數(shù)組來進行計數(shù),但是在FPGA 中定義數(shù)組是非常消耗資源的,尤其是當數(shù)組成員的位寬很大時。例如用觸發(fā)器來統(tǒng)計256 灰度的720p 圖像的直方圖,將消耗4000 個邏輯單元(每個邏輯單元是一個四輸入查找表),這幾乎消耗了一個Spartan-3E 25 萬門器件(XC3S250E)80%的邏輯資源。

幸運的是,F(xiàn)PGA 器件提供了一個很好的結(jié)構(gòu)可以處理這類問題,這就是Block RAM。在Altera 和Xilinx 的各型號FPGA 器件上都集成了一種稱為Block RAM 的片上內(nèi)存,它們以若干Kbits 為一塊,不同型號集成不同數(shù)量的塊,例如在Spartan-3E 系列中以18Kbits 為一塊,在規(guī)模最小的型號XC3S100E 上集成了4 塊這樣的內(nèi)存,如圖2 所示:

如何用FPGA的Block RAM性能實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計

這種內(nèi)存很容易實現(xiàn)數(shù)組類型的結(jié)構(gòu),而且這種內(nèi)存被設計成雙端口方式,即可以用兩組獨立的地址數(shù)據(jù)總線來讀寫,因此可以用不到一塊的Block RAM 就實現(xiàn)256×24 這樣的高位寬計數(shù)器陣列來進行HDTV 視頻圖像的直方圖統(tǒng)計,如圖3 所示:

如何用FPGA的Block RAM性能實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計

以Block RAM 的結(jié)構(gòu)為核心,按照以下幾點來設計直方圖統(tǒng)計算法:

1. Block RAM 使用雙端口方式,端口A 用來將內(nèi)存單元計數(shù)值讀出,端口B 將計數(shù)值加一后寫回該內(nèi)存單元。

2. 內(nèi)存的地址在像素有效時由像素灰度值選擇,在行同步期間不計數(shù),在場同步期間使用一個遞增計數(shù)器在前256 個時鐘將統(tǒng)計結(jié)果輸出,在之后的256 個時鐘將RAM 塊清零。

3. 雙端口讀寫時鐘相位相差180 度,以避免雙端口讀寫沖突。

4. 數(shù)據(jù)的讀出、加一和寫入采用了流水線結(jié)構(gòu)以提高性能,所以在地址控制上要進行適當暫存以保證數(shù)據(jù)同步。 圖4 為256 級灰度720p 視頻圖像直方圖統(tǒng)計的算法實現(xiàn)功能框圖:

如何用FPGA的Block RAM性能實現(xiàn)HDTV視頻增強算法中灰度直方圖統(tǒng)計

結(jié)語

該算法借助FPGA 片上的高性能Block RAM(讀寫速度可以到200 兆以上),可以實現(xiàn)SMPTE 定義的從720p 到1080p 的各種HDTV 視頻圖像的實時直方圖統(tǒng)計,僅占用FPGA不到一百個邏輯單元和一塊Block RAM,是一種性價比較高的FPGA 實現(xiàn)直方圖統(tǒng)計的算法,而且該算法具有很好的通用性,可以應用到各種需要大量高位寬計數(shù)器的高速FPGA設計中。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601239
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9027

    瀏覽量

    366484
  • 數(shù)字電視
    +關(guān)注

    關(guān)注

    3

    文章

    321

    瀏覽量

    45210
收藏 人收藏

    評論

    相關(guān)推薦

    基于直方圖算法進行FPGA架構(gòu)設計

    引言 直方圖統(tǒng)計在圖像增強和目標檢測領(lǐng)域有重要應用,比如直方圖均衡,梯度直方圖直方圖的不同種類
    的頭像 發(fā)表于 12-10 16:37 ?2734次閱讀

    嵌入式操作教程:在LCD上顯示灰度圖像的直方圖統(tǒng)計結(jié)果

    學習直方圖統(tǒng)計的原理,掌握圖像的讀取方法,并實現(xiàn)在LCD上顯示灰度圖像的直方圖統(tǒng)計結(jié)果。
    的頭像 發(fā)表于 11-30 16:10 ?1128次閱讀
    嵌入式操作教程:在LCD上顯示<b class='flag-5'>灰度</b>圖像的<b class='flag-5'>直方圖</b><b class='flag-5'>統(tǒng)計</b>結(jié)果

    一文帶你了解FPGA直方圖操作

    后面慢慢介紹,先重點介紹直方圖均衡。公眾號:OpenFPGA 直方圖統(tǒng)計FPGA實現(xiàn) 從數(shù)學上
    發(fā)表于 01-10 15:07

    DSP教學實驗箱操作教程_數(shù)字圖像處理:5-5 灰度圖像直方圖

    一、實驗目的 學習直方圖統(tǒng)計的原理,掌握圖像的讀取方法,并實現(xiàn)灰度圖像的直方圖統(tǒng)計結(jié)果。 二、實
    發(fā)表于 06-25 15:10

    圖像自適應分段線性拉伸算法FPGA設計

    FPGA實現(xiàn)2.1 設計思路根據(jù)以上算法分析,FPGA設計思路如下:在每幀圖像幀正程,用雙端口RAM進行
    發(fā)表于 04-27 14:37

    基于FPGAHDTV視頻圖像灰度直方圖統(tǒng)計算法設計

    本文介紹了如何在FPGA 利用Block RAM 的特殊結(jié)構(gòu)實現(xiàn)HDTV
    發(fā)表于 05-14 12:37

    FPGA圖像處理 直方圖統(tǒng)計灰度拉伸 然后VGA顯示的問題

    本人目前用FPGA做一個圖像處理并VGA顯示的東西,中間用到直方圖統(tǒng)計灰度拉伸,使圖像對比度提高。現(xiàn)在遇到一個問題,取統(tǒng)計的5%和95%的
    發(fā)表于 06-28 09:35

    基于FPGA的圖像直方圖均衡處理

    灰度值為模擬量的情況下討論直方圖均衡的算法原理。1)基本思想把原始圖的直方圖變換為均勻分布的形式,增加像素灰度值的動態(tài)范圍以
    發(fā)表于 07-14 17:26

    【干貨】基于FPGA的圖像處理(圖像增強)之直方圖均衡

    什么呢?是增強圖像的對比度。先來看下在Matlab實現(xiàn)直方圖均衡的效果吧。圖片比較隨意,直接對電腦桌面截了一張圖,大家應該能有一個直觀的感受,知道
    發(fā)表于 12-08 09:40

    如何實現(xiàn)HDTV視頻增強算法灰度直方圖統(tǒng)計

    本文介紹了如何在FPGA利用Block RAM的特殊結(jié)構(gòu)實現(xiàn)HDTV
    發(fā)表于 04-30 07:34

    基于FPGA視頻圖像灰度信號直方圖均衡算法實現(xiàn)設計

    FPGA實現(xiàn)可以很好地解決實時處理的難題,而且目前的FPGA資源容量已經(jīng)很豐富,片內(nèi)的SRAM/PLL/邏輯資源已經(jīng)足以應對一般圖像處理算法的需要,同時隨著價格的不斷下降,客觀上使得
    發(fā)表于 07-20 18:06 ?2660次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>視頻</b>圖像<b class='flag-5'>灰度</b>信號<b class='flag-5'>直方圖</b>均衡<b class='flag-5'>算法</b><b class='flag-5'>實現(xiàn)</b>設計

    MATLAB如何實現(xiàn)圖像增強灰度變換直方圖均衡匹配

    在MATLAB數(shù)字圖像處理領(lǐng)域,如何實現(xiàn)空間域圖像增強灰度變換,以及圖像直方圖的均衡和匹配(配準)?本文通過大量的圖片增強案例,從圖像的顯
    發(fā)表于 01-13 21:56 ?1.1w次閱讀
    MATLAB如何<b class='flag-5'>實現(xiàn)</b>圖像<b class='flag-5'>增強</b><b class='flag-5'>灰度</b>變換<b class='flag-5'>直方圖</b>均衡匹配

    基于直方圖算法FPGA設計架構(gòu)

    直方圖統(tǒng)計在圖像增強和目標檢測領(lǐng)域有重要應用,比如直方圖均衡,梯度直方圖直方圖的不同種類和
    發(fā)表于 04-20 10:47 ?1166次閱讀
    基于<b class='flag-5'>直方圖</b><b class='flag-5'>算法</b>的<b class='flag-5'>FPGA</b>設計架構(gòu)

    如何使用FPGA實現(xiàn)實時圖像增強算法

    FPGA,通過并行處理結(jié)構(gòu)及流水線技術(shù),可實時處理每秒50幀780×582×12bits的可見光圖像。在處理視頻的過程,由前一幀圖像的直方圖信息,來
    發(fā)表于 02-03 15:21 ?10次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>實時圖像<b class='flag-5'>增強</b><b class='flag-5'>算法</b>

    剖析FPGA灰度直方圖線性拉伸

    ,保留了直方圖基本的輪廓,同時將直方圖范圍拉伸至0~255。 算法也比較容易理解,f(x,y)為輸入圖像,得到輸出圖像g(x,y) 其中A和B可以分別定義為圖像的最小灰度值與最大
    的頭像 發(fā)表于 07-02 10:37 ?3055次閱讀
    剖析<b class='flag-5'>FPGA</b><b class='flag-5'>灰度</b><b class='flag-5'>直方圖</b>線性拉伸