国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FPGA實現(xiàn)jpeg圖片解碼RGB 純verilog代碼編寫 提供基于zynq得工程源碼和技術支持

這篇具有很好參考價值的文章主要介紹了FPGA實現(xiàn)jpeg圖片解碼RGB 純verilog代碼編寫 提供基于zynq得工程源碼和技術支持。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、前言

jpg是一種壓縮的圖片格式,之所以壓縮是為了減小圖片所占空間,jpg壓縮原理這里不羅嗦,可以自行百度或者b站,大佬講的比我好,jpg解壓縮就是逆向過程,用opencv啥的解壓縮就是一句話的事兒,但對于fpga硬件來說就是大型工程了。

本設計使用zynq7100位平臺,將jpg圖片的c語言數組寫入PS側DDR3中緩存作為jpg解碼器的輸入,使用自研的AXI4控制器從DDR3中讀取出jpg圖片數據,并轉換為AXIS數據流送入jpg解碼器解碼為rgb數據輸出,至此,jpg解碼實際已經完成,但為了輸出顯示驗證解碼的效果,再加上基于FDMA的圖像緩存架構將jpg解碼后的rgb數據輸出顯示器顯示,可以直觀的查看顯示器的輸出與原始jpg圖片的差異,以驗證我們設計的正確性。。。。

本文詳細描述了zynq7100位平臺驗證jpg解碼器并將解碼后的rgb數據輸出顯示器顯示的設計方案,工程代碼編譯通過后上板調試驗證,文章末尾有演示視頻,可直接項目移植,適用于在校學生、研究生項目開發(fā),也適用于在職工程師做項目開發(fā),可應用于醫(yī)療、軍工等行業(yè)的數字成像和圖像傳輸領域;
提供完整的、跑通的工程源碼和技術支持;
工程源碼和技術支持的獲取方式放在了文章末尾,請耐心看到最后;

免責聲明

本工程及其源碼即有自己寫的一部分,也有網絡公開渠道獲取的一部分(包括CSDN、Xilinx官網、Altera官網等等),若大佬們覺得有所冒犯,請私信批評教育;基于此,本工程及其源碼僅限于讀者或粉絲個人學習和研究,禁止用于商業(yè)用途,若由于讀者或粉絲自身原因用于商業(yè)用途所導致的法律問題,與本博客及博主無關,請謹慎使用。。。

2、JPG解碼器詳解

JPG解碼器是本設計的核心,其他設計都是圍繞本模塊來設計,目的就是為了驗證本模塊的正確性;
本JPG解碼器具有以下特征:
1:純verilog代碼實現(xiàn),不含有任何IP核;
2:移植性天花板,由于采用純verilog代碼實現(xiàn),可在Xilinx、Altera和國產FPGA (比如紫光同創(chuàng)、安路)等之間任意移植;
3:32bit的AXI4-Stream數據流輸入接口,可處理大批量數據;
4:支持任意分辨率jpg圖片解碼;
5:支持YUV4:4:4、YUV4:2:0色度采樣輸入;
6:支持固定的標準的霍夫曼解碼(減少邏輯資源的使用和更快速解碼);
7:支持動態(tài)霍夫曼解碼(使用更多的邏輯資源和更慢速解碼);
8:動態(tài)DQT;
9:輸出24bit的RGB8:88格式,同時輸出解碼后的圖片寬和高數據;
10:消耗邏輯資源少,具體如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
jpg解碼器模塊設計框圖如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
解碼過程就是編碼過程的逆過程,原理可以百度一下或者csdn搜一下,本模塊就是把用c語言或者c++實現(xiàn)的軟件解碼方式用verilog的硬件解碼方式實現(xiàn)了,由于FPGA的并行性,所以解碼速度更快,達到加速的目的。。。

3、設計思路和架構

設計思路和架構如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
總體流程:
第一步:
下載一張jpg圖片,用Matlab等工具將jpg圖片轉為c語言數組,提供的vivado工程中已包含此文件;
第二步:
用SDK將jpg圖片c語言數組拷貝到PS側DDR3中緩存,作為jpg解碼器的輸入源;
第三步:
AXI4主機控制器和AXI4-Stream主機控制器負責從PS側DDR3中讀取jpg數據,輸出AXI4-Stream數據流給到jpg解碼器;
第四步:
jpg解碼器將AXI4-Stream格式的jpg數據解碼為24bit的RGB數據輸出,一同輸出圖片寬個高信息;至此,jpg解碼實際已經完成,但為了輸出顯示驗證解碼的效果,再加上基于FDMA的圖像緩存架構將jpg解碼后的rgb數據輸出顯示器顯示,可以直觀的查看顯示器的輸出與原始jpg圖片的差異,以驗證我們設計的正確性。。。。
第五步:
使用FDMA數據緩存架構將解碼后的RGB數據緩存至PS側DDR3后再讀出,這里做緩存的原因是做數據跨時鐘處理,jpg解碼后的rgb數據時鐘是100M,而HDMI輸出的像素時鐘是148.5M。。。關于FDMA數據緩存架構,可以參考我之前寫的文章直接點擊此處查看
第六步:
HDMI輸出分辨率使用1920x1080@60Hz,只要jpg圖片分辨率小于1920x1080均可在此背景下輸出,屏幕只會輸出有效的jpg圖片,其他區(qū)域為黑色,這也是我的一大原創(chuàng)。。。需要解碼顯示更大jpg圖片分辨率的朋友可以修改輸出VGA時序,比如改為4K分辨率,則可顯示1920x1080的圖片了。
HDMI發(fā)送沒有使用HPY芯片,而是使用純verilog實現(xiàn)的HDMI發(fā)送驅動,關于這一點,可以參考我之前寫的文章直接點擊此處查看

4、vivado工程詳解

開發(fā)板:Xilinx zynq7100開發(fā)板;
開發(fā)環(huán)境:vivado2019.1;
輸入:jpg圖片;
輸出:HDMI顯示;

工程Block Design如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
綜合后的工程代碼架構如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
jpg解碼器源碼如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
總工程師的資源消耗和功耗預估如下:
注意:這里是整個工程的資源消耗,并非jpg解碼器;
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
SDK源碼架構如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)

5、上板調試驗證

開發(fā)板如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)

程序調試方法

需要你的板子有個HDMI輸出接口
第一步:
編譯,打開SDK,并進行debug單步調試,如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
第二步:
選擇你要解碼輸出的jpg圖片分辨率,為了深度測試jpg解碼器的性能,我這里設置了7種不同分辨率的jpg圖片,分別如下:
jpg圖片分辨率:1920x1080;
jpg圖片分辨率:1280x720;
jpg圖片分辨率:800x800;
jpg圖片分辨率:800x600;
jpg圖片分辨率:606x530;
jpg圖片分辨率:474x458;
jpg圖片分辨率:361x458;
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
下面以1920x1080圖片解碼為例,首先取消上圖中//WR_pic_1920x1080();前面的//,如此就選擇了解碼輸出1920x1080圖片,隨后按照第一步開始單步debug,當dubug到while(1)死循環(huán)里面時,多點幾次,讓程序在while(1)里面多轉幾圈,屏幕就會出現(xiàn)RGB圖片輸出了,while(1)里面的代碼作用是產生觸發(fā)信號開啟jpg解碼器工作。。。

下面看輸出效果:
解碼jpg圖片分辨率1920x1080的輸出:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
解碼jpg圖片分辨率1280x720的輸出:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
解碼jpg圖片分辨率800x800的輸出:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
解碼jpg圖片分辨率800x600的輸出:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)

fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
解碼jpg圖片分辨率606x530的輸出:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
解碼jpg圖片分辨率606x530的輸出:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
解碼jpg圖片分辨率606x530的輸出:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
下面看視頻演示:

fpga-jpg

6、福利:工程代碼的獲取

福利:工程代碼的獲取
代碼太大,無法郵箱發(fā)送,以某度網盤鏈接方式發(fā)送,
資料獲取方式:文章末尾的V名片。
網盤資料如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
具體的文件構成如下:
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)
fpga實現(xiàn)jpeg壓縮,菜鳥FPGA圖像處理專題,FPGA視頻圖像編解碼,fpga開發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-725996.html

到了這里,關于FPGA實現(xiàn)jpeg圖片解碼RGB 純verilog代碼編寫 提供基于zynq得工程源碼和技術支持的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 《FPGA純Verilog設計實現(xiàn)CameraLink視頻編解碼驗證方案》

    《FPGA純Verilog設計實現(xiàn)CameraLink視頻編解碼驗證方案》

    FPGA純verilog編解碼CameraLink視頻 本文詳細描述了FPGA純verilog實現(xiàn)CameraLink視頻接收和發(fā)送的實現(xiàn)設計方案,目的在于驗證CameraLink解碼模塊和編碼模塊的正確性,思路是這樣的,由于項目之處沒有CameraLink相機,但又必須驗證關鍵的CameraLink解碼模塊和編碼模塊,所以做了這樣一個巧

    2024年04月22日
    瀏覽(19)
  • 基于FPGA的UART多字節(jié)環(huán)回實驗verilog代碼(含幀頭幀尾和解碼部分)

    基于FPGA的UART多字節(jié)環(huán)回實驗verilog代碼(含幀頭幀尾和解碼部分)

    采用VIVADO開發(fā)環(huán)境,頻率50MHz,波特率 256000,8位數據位,1位停止位。 串口接收程序源自正點原子的例程。 帶仿真工程,數據幀格式如下圖: 發(fā)送數據為:aa ff 03 00 0E 03 B1 86 10 00 40 01 11 00 00 00 00 00 00 00 11 00 00 00 00 00 11 11 55 CC 效果如圖: ?仿真效果圖: 參考以下文章和視頻:

    2024年02月08日
    瀏覽(78)
  • Verilog編寫實現(xiàn)FPGA打兩拍

    Verilog編寫實現(xiàn)FPGA打兩拍 本文將向您展示如何使用Verilog編寫并實現(xiàn)在FPGA上打兩拍的功能。打兩拍是一種音樂節(jié)奏,通常用于音樂中的序列節(jié)奏,可以通過FPGA來實現(xiàn)。使用Verilog作為硬件描述語言,我們可以簡單而有效地實現(xiàn)這一功能。 首先,我們需要定義一個時鐘信號和計

    2024年02月05日
    瀏覽(108)
  • CNN的硚口實現(xiàn): 由Verilog編寫并在FPGA上合成

    目錄 前言 一、環(huán)境設置 二、CNN的硬件設計思路 三、使用Verilog實現(xiàn)CNN

    2024年02月13日
    瀏覽(21)
  • FPGA實現(xiàn)Verilog 2分頻:從原理到代碼實現(xiàn)

    FPGA實現(xiàn)Verilog 2分頻:從原理到代碼實現(xiàn) 在數字電路設計中,2分頻是一種常見的電路實現(xiàn)方式,可以將輸入信號的頻率減半。在FPGA設計中,我們可以利用Verilog語言快速實現(xiàn)2分頻電路。本文將從原理出發(fā),結合代碼介紹FPGA實現(xiàn)2分頻電路的方法。 原理及實現(xiàn) 2分頻電路通常采

    2024年02月02日
    瀏覽(23)
  • 用Python編寫GUI程序實現(xiàn)WebP文件批量轉換為JPEG格式

    用Python編寫GUI程序實現(xiàn)WebP文件批量轉換為JPEG格式

    在Python編程中,經常會遇到需要處理圖片格式的情況。最近,我遇到了一個有趣的問題:如何通過編寫一個GUI程序來實現(xiàn)將WebP格式的圖片批量轉換為JPEG格式?在這篇博客中,我將分享我使用Python、wxPython模塊和Pillow庫實現(xiàn)這一功能的經驗。 C:pythoncodenewwebp2jpeg.py 準備工作

    2024年04月11日
    瀏覽(19)
  • BMP圖像處理(jpeg轉bmp,以及bmp圖片縮放,附代碼)

    目錄 背景 一、BMP圖片講解: 二、代碼: 背景 1、主要記錄下BMP圖片的功能,里面包括jpeg格式圖片轉bmp格式的圖片,還有bmp圖片的縮放,因為bmp格式的圖片一般都很大。 2、網上搜的代碼,好多的代碼都有依賴,有些是依賴libjpeg.dll,有些是boost,有些是opencv,后面廢了不少力

    2024年02月04日
    瀏覽(13)
  • FPGA實現(xiàn)的多波形信號發(fā)生器,支持正弦、方波、鋸齒波、三角波及調制,配備仿真和實物制作功能,使用Verilog HDL編寫

    FPGA實現(xiàn)的多波形信號發(fā)生器,支持正弦、方波、鋸齒波、三角波及調制,配備仿真和實物制作功能,使用Verilog HDL編寫

    基于FPGA的DDS多波形信號發(fā)生器,可以產生正弦波,方波,鋸齒波三角波,調制波形2psk.2askAM調制,可以仿真,可以制作實物,可以進行講解! 使用可以使用Quarter9.0自帶仿真軟件進行仿真波形。 也可以使用quarter13.1與modesim進行聯(lián)合仿真進行仿真波形! 使用verilog HDL語言進行編

    2024年04月12日
    瀏覽(24)
  • 【FPGA實現(xiàn)三態(tài)門(inout)Verilog代碼詳解】

    【FPGA實現(xiàn)三態(tài)門(inout)Verilog代碼詳解】 三態(tài)門(tristate gate)是在數字電路中使用頻率較高的一種邏輯門,其特點是輸出端具有三種可能的狀態(tài):高電平、低電平和高阻態(tài)。在實際應用中常常用于多個設備共享同一個總線的情況下,有效地防止輸出口相互影響、產生干擾等

    2024年02月10日
    瀏覽(20)
  • FPGA Artix7-100T實現(xiàn)手寫字硬件加速,純Verilog編寫的CNN神經網絡加速器,有效減輕誤識別問題

    FPGA Artix7-100T實現(xiàn)手寫字硬件加速,純Verilog編寫的CNN神經網絡加速器,有效減輕誤識別問題

    fpga實現(xiàn)cnn神經網絡加速 手寫字硬件加速 FPGA artix7-100t 純verilog編寫 神經網絡硬件加速 使用ov5640攝像頭dvp接口 verilog實現(xiàn)手寫字識別 包括卷積層、全連接層、池化層、softmax,有效減輕誤識別問題。 注意: 該項目并未使用到arm核,是使用傳統(tǒng)fpga的邏輯資源實現(xiàn)的。 ID:92299 7141

    2024年04月23日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包