<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 全景圖像實(shí)時展開在FPGA上的實(shí)現(xiàn)

          全景圖像實(shí)時展開在FPGA上的實(shí)現(xiàn)

          作者: 時間:2011-02-27 來源: 收藏

            由于ADV7180產(chǎn)生的視頻數(shù)據(jù)流是隔行掃描數(shù)據(jù),分為奇數(shù)場和偶數(shù)場,所以SDRAM控制器除了對數(shù)據(jù)流進(jìn)行存儲,還要在讀取數(shù)據(jù)時進(jìn)行去交織操作。SDRAM控制器的雙讀口設(shè)計可以出色地完成去交織任務(wù)。在讀取數(shù)據(jù)時,利用VGA的行掃描信號控制這兩個讀口分別讀?。寒?dāng)VGA控制器掃描到奇數(shù)行時,由第一個讀口讀取相應(yīng)奇數(shù)行數(shù)據(jù);否則,由第二個讀口讀取相應(yīng)偶數(shù)行數(shù)據(jù)。之后,再合并這兩個讀口讀取的數(shù)據(jù)得到逐行掃描的、分辨率為640×480的視頻數(shù)據(jù)流。

          本文引用地址:http://www.ex-cimer.com/article/117270.htm

            YCbCr到RGB轉(zhuǎn)換模塊

            本系統(tǒng)的最終目的是將視頻流輸出到VGA顯示器進(jìn)行顯示,而從SDRAM讀取得到的數(shù)據(jù)是YCbCr422格式,不符合VGA顯示要求,所以需要將其轉(zhuǎn)換為RGB數(shù)據(jù)格式。

            首先將YCbCr422格式轉(zhuǎn)換為YCbCr444格式。在每一個時鐘上跳沿,判斷當(dāng)前VGA列掃描信號,若當(dāng)前列為奇數(shù),則將SDRAM讀口得到的16位YCbCr信號的前8位賦值給Y作為當(dāng)前像素的Y值,后8位賦值給Cr作為當(dāng)前像素的Cr值,Cb保持不變;若當(dāng)前列為偶數(shù),則YCbCr的前8位仍為當(dāng)前像素的Y值,后8位為當(dāng)前像素的Cb值,Cr保持不變。這樣就保證了輸出的Y、Cb、Cr三個信號是當(dāng)前像素的對應(yīng)描述信號。

            在確定了每個像素對應(yīng)的YCbCr值之后,就可以通過如下公式計算得到對應(yīng)的RGB值。

           

            DE2-70上的EP2C70 芯片內(nèi)嵌了150個乘法器塊,每一個乘法器塊可以配置為兩個9×9位的乘法器或者一個18×18位的乘法器。所以本系統(tǒng)使用QuartusⅡ中集成的MegaWizard Plug-In Manager配置乘加器模塊用于實(shí)現(xiàn)YCbCr顏色空間到RGB顏色空間的轉(zhuǎn)換。另外,上述轉(zhuǎn)換公式涉及浮點(diǎn)運(yùn)算,在Verilog中不易實(shí)現(xiàn),所以將公式中各浮點(diǎn)值左移9位變?yōu)檎麛?shù),從而公式調(diào)整為:

          ???????????−??????????展開算法模塊

            展開算法模塊為本系統(tǒng)的核心模塊,利用EP2C70內(nèi)嵌的M4K存儲器和正余弦生成器實(shí)現(xiàn)了極坐標(biāo)視圖到直接坐標(biāo)視圖的實(shí)時展開。

            人眼視角約為120°??紤]到人眼觀察的習(xí)慣,系統(tǒng)將圓形的極坐標(biāo)視圖分割成為第一、二、三、四象限四個部分,每部分90°,由使用者選取感興趣的部分進(jìn)行展開,這樣既符合人眼觀察的習(xí)慣,又節(jié)省了空間。

            視頻分塊

            全景極坐標(biāo)視圖在顯示器上顯示時類似于圖5,其中矩形代表整個顯示器顯示的內(nèi)容,分辨率為640×480,圓形代表全景圖像出現(xiàn)的位置,半徑大約為240個像素,所以可以按圖5中虛線部分將視頻每一幀分為4塊,每一塊分辨率為240×240。系統(tǒng)使用VGA控制器生成的行列掃描信號標(biāo)定當(dāng)前像素的位置,當(dāng)像素位置位于全景圖像區(qū)域內(nèi)時,則將像素值存入M4K存儲器,否則繼續(xù)搜索下一個滿足條件的像素。

            M4K存儲器設(shè)計

            M4K存儲器是內(nèi)嵌在EP2C70中的存儲器塊,其中每一塊容量達(dá)到4096bit,可配置為真雙口存儲器,在EP2C70芯片上共有250塊M4K存儲器塊。本系統(tǒng)使用了209塊M4K存儲器塊,借助其高尋址精度,實(shí)現(xiàn)圖像的實(shí)時展開。

            M4K存儲器寫地址

            將數(shù)據(jù)寫入M4K存儲器時,可以將數(shù)據(jù)流按照圖像顯示順序全部存入,這樣就需要生成0~360°的所有正余弦查找表;同時,由于存入了全部圖像信息,將會有1/4左右的無效像素點(diǎn),浪費(fèi)了寶貴的存儲器資源。系統(tǒng)利用M4K存儲器精確的尋址操作將第二、三、四象限的信息在存入時進(jìn)行翻轉(zhuǎn),使得存入M4K存儲器的圖像僅顯示為第一象限的特性,則只需要生成0~90°的正余弦表就可以完成對整幅圖像的展開計算。其次,固定攝像頭之后,圓形全景圖像在顯示器中的位置是固定的,所以可以確定每一行有效像素的坐標(biāo)范圍。當(dāng)行列掃描信號在此范圍之內(nèi),則將該像素值存入M4K存儲器中,否則,繼續(xù)尋找下一個符合條件的像素點(diǎn)。所以,對第i象限的第M行第N個像素,如果為有效像素,則存入M4K存儲器的地址按如下規(guī)則計算:

           

            這里的M和N取值范圍均為[0,239],Invalid_pixel(K)表示在第K行第一個有效像素之前所有無效像素點(diǎn)總數(shù)。

          fpga相關(guān)文章:fpga是什么


          色差儀相關(guān)文章:色差儀原理


          關(guān)鍵詞: FPGA 全景攝像機(jī)

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();