《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于FPGA的HDMI多模式顯示模塊設計
基于FPGA的HDMI多模式顯示模塊設計
2017年電子技術應用第12期
向梓豪,陸安江
貴州大學 大數據與信息工程學院,貴州 貴陽550025
摘要: 通過SOPC進行視頻信號處理是目前研究的熱點。針對此類系統的顯示模塊,提出一種基于FPGA的HDMI多模式顯示模塊設計方案。首先對HDMI的驅動時序進行分析,設計驅動信號生成電路,然后根據配置參數,將多路視頻進行多級ALPHA混合,實現了通過HDMI輸出與顯示多路視頻,并且每路視頻的位置與透明度可設置。為保證視頻的實時性,對較為復雜的計算過程采用流水線設計方法提升速度。模塊以Verilog HDL的形式進行編寫,具有較強的通用性。
中圖分類號: TN79;TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.171683
中文引用格式: 向梓豪,陸安江. 基于FPGA的HDMI多模式顯示模塊設計[J].電子技術應用,2017,43(12):48-51.
英文引用格式: Xiang Zihao,Lu Anjiang. Design of HDMI multi mode display module based on FPGA[J].Application of Electronic Technique,2017,43(12):48-51.
Design of HDMI multi mode display module based on FPGA
Xiang Zihao,Lu Anjiang
College of Big Data and Information Engineering,Guizhou University,Guiyang 550025,China
Abstract: Using SOPC to process video signal is a hot research at present. As for the display module of the system, the paper puts forward a kind of design, which contains multi mode display module and is based on FPGA. First,it analyses the timing sequence of HDMI driver and designs driving signal to create circuits. Then, according to the configuration parameters, mixes the multi-channel video together in the form of multistage ALPHA mixing, to realize the output and display of the multi video by HDMI, meanwhile the position and transparency of every video can be set. To assure the real-time of the video, for the more complicated calculating process, it designs the assembly line way to promote the speed. The module is written in the form of Verilog HDL, which has strong versatility.
Key words : FPGA;multi mode display;HDMI;ALPHA mixing

0 引言

    隨著社會信息化程度的不斷提高,人們對視頻處理的要求越來越高,視頻處理系統處理的數據量也越來越大。在嵌入式視頻處理系統中,目前主流的方案主要有3種:基于ARM、基于DSP和基于FPGA。其中FPGA不同于其他兩種芯片,它是一種半定制電路,擁有大量邏輯單元,通過配置這些邏輯單元,可以構建相應的電路以實現所需的功能。正因為其具有基于硬件加速的特點,FPGA被廣泛應用于高速視頻處理系統。對于這類視頻處理系統,構建可編程片上系統(System-on-a-Programmable-Chip,SOPC)是目前的主流方案。SOPC是一種片上系統,即在一塊芯片上實現整個系統的邏輯功能[1],且具有設計便捷、配置靈活、可在線調試、系統可復用等特點。在視頻處理系統的接口中,HDMI是最新的高清晰度多媒體接口[2],具有高帶寬、小體積、高智能、內容保護等優點,被廣泛應用于高清顯示器、高清電視之中[3]。

    針對基于SOPC的視頻處理系統,本文提出一種基于FPGA的HDMI多模式顯示模塊設計方法,可為SOPC提供一種通用的HDMI多模式顯示組件,并可適用于多種HDMI發送器以及不同參數的視頻。通過該模塊,可以實現多路視頻的顯示,并可配置每路視頻的位置與透明度,為視頻處理系統實現多模式的顯示提供了解決方案。

1 總體方案設計

    為了驅動HDMI發送芯片,以及通過ALPHA混合實現多模式顯示,需要根據HDMI的工作時序設計相應的驅動電路,而且還需根據指定的坐標信息與透明度參數,對各通道視頻的數據進行多級ALPHA混合計算,最后將驅動信號以及視頻數據輸出。根據以上功能需求,將整個模塊分為兩個分模塊,即HDMI驅動模塊和ALPHA混合模塊。系統框圖如圖1所示。

qrs5-t1.gif

    在HDMI驅動模塊中,根據HDMI接口的工作時序,設計兩個計數器分別對時鐘信號與行進行計數,在相應的時鐘周期生成行同步信號、場同步信號和數據總線使能信號[4]。設計一個坐標指示電路,通過兩個計數器對當前輸出的有效視頻數據的行和列進行計數,并輸出計數值,此計數值用于在相應坐標讀取視頻數據與ALPHA混合計算。

    例化4個ALPHA混合模塊(數量可根據需求設定),最多可以使4路視頻進行多模式顯示。在ALPHA混合模塊中,根據坐標指示電路生成的計數值,在指定的坐標區域發出數據讀取信號對緩存的視頻數據進行讀取,并且在指定的區域生成相應alpha值(透明度)。設計一個ALPHA混合計算電路,其負責對前景視頻數據與后景視頻數據進行ALPHA混合。ALPHA混合計算電路采用流水線設計方法,將整個計算過程分為多級進行ALPHA混合計算,每一級在一個時鐘周期內的計算結果保存在寄存器中,提供給下一級在下個時鐘周期進行計算。ALPHA混合計算會導致數據輸出延遲,因此再次例化一個坐標指示電路,將同步信號、場同步信號和數據總線使能信號都延遲相應周期后輸入該電路,以產生新的同步的行和列的計數值供下一級的ALPHA混合模塊使用。本實例提供4通道分割顯示與PIP(雙通道的畫中畫)顯示兩種顯示模式用于驗證。當配置的顯示模式為4通道分割顯示時,第一通道視頻作為前景首先和預設的底色背景進行ALPHA混合,其中重疊部分背景的透明度為0(完全不顯示),前景的透明度為1(完全顯示),再將混合后的視頻數據作為背景與第二通道的視頻進行ALPHA混合,按此方案依次完成4個通道的ALPHA混合,每個通道的位置互不重疊。而進行PIP顯示時第一通道的視頻作為背景,第二通道的視頻作為前景顯示在顯示器中心位置,重疊部分背景的透明度為0,前景的透明度為1。

2 HDMI驅動模塊設計

    HDMI驅動模塊主要負責根據不同的配置信息輸出相應的驅動信號,使視頻數據能夠通過HDMI發送器正常輸出。

2.1 HDMI發送器工作方式

    視頻數據通過HDMI進行傳輸時,HDMI接收/發送芯片通過最小化傳輸差分信號(TMDS)的編碼技術將其編碼為數據包,雖然FPGA支持多種標準LVDS(低電壓差分信號),但其不能完全兼容TMDS(過渡調制差分信號),因此需要通過HDMI接收/發送芯片來實現HDMI接口功能。FPGA與此類HDMI芯片的傳輸通常通過一組并行總線實現, 包含了數據總線、IIC總線、驅動信號。其中數據總線用于傳輸視頻數據,IIC總線用于FPGA配置HDMI發送芯片,驅動信號中的HDMI_CLK為同步時鐘信號,DE_HDMI為數據總線使能信號,HSY_HDMI為行同步信號,VSY_HDMI為場同步信號。本模塊正常工作需要將HDMI芯片配置為RGB輸出。HDMI接口傳輸RGB信號的工作時序與VGA接口的工作時序類似,但無需將數字信號轉換為模擬信號。DE_HDMI、HSY_HDMI、VSY_HDMI以固定的時間關系輸出,HDMI_CLK則作為基準時鐘與這些信號同步。

    在一場的時間段,根據視頻刷新頻率以及分辨率的不同,處于同步段時行同步信號首先保持一定周期的高電平,之后置低電平并在間隔相應的周期后輸出視頻數據,這個間隙為顯示后沿。視頻數據輸出完成后間隔相應的周期后開始下一行的傳輸,這個間隙為顯示前沿。場同步信號的時序依然是首先保持一定周期的高電平,之后置低電平,間隔相應的行時間(傳輸一行數據所需的時鐘周期)后輸出一場中所有的行,所有行的視頻數據傳輸完成后間隔相應的行時間后開始下一行的傳輸。其時序分段如圖2所示。

qrs5-t2.gif

    其中VSY_HDMI的時序分段與HSY_HDMI相同。

2.2 Verilog HDL代碼設計

    在FPGA與HDMI發送器之間,傳輸視頻數據的方式為隨同步時鐘逐個傳送像素數據,對于每場數據,順序為從第一行開始從左至右傳送,傳送完畢后開始傳送第二行,依次傳送直至最后一行數據傳送完畢。因此在代碼中定義兩個計數值,分別為x軸計數值x_cnt與y軸計數值y_cnt,x_cnt在每個時鐘周期遞增1,計數完一行清零;y_cnt則是x_cnt每計數完一行遞增1,一場的所有行全部計數完清零。計數器Verilog HDL代碼如下:

always @(posedge clk or negedge rst_n)

    if(!rst_n) x_cnt<= 12′d0;

    else if(x_cnt >= HDMI_HTT) x_cnt<= 12′d0;

    else x_cnt <= xcnt+1′b1;

always @(posedge clk or negedge rst_n)

    if(!rst_n) y_cnt <= 12′d0;

    else if(x_cnt== HDMI_HTT) begin

        if(y_cnt >= HDMI_VTT) y_cnt<= 12′d0;

        else y_cnt <= y_cnt +1′b1;

其中HDMI_HTT為傳輸一行所需的時鐘周期的個數,HDMI_VTT為傳輸一場中所有行的數量。根據計數值,在相應的時間拉高行同步信號和場同步信號,其他時間置低電平,其Verilog HDL代碼如下:

always @(posedge clk or negedge rst_n)

    if(!rst_n) HSY_HDMI <= 1′b0;

    else if(xcnt < HDMI_HST ) HSY_HDMI <= 1′b1;

    else hdmi_hsy <= 1′b0;

always @(posedge clk or negedge rst_n)

    if(!rst_n) VSY_HDMI <= 1′b0;

    else if(ycnt < HDMI_VST) VSY_HDMI <= 1′b1;

    elseVSY_HDMI<= 1′b0;

其中HDMI_HST為行同步段占用的時鐘周期的個數,HDMI_VST為場同步段所有行的數量。在屬于數據段的計數區域,數據總線使能信號置高電平,此時間段傳送的是有效視頻數據,其Verilog HDL代碼如下:

always @(posedge clk or negedge rst_n)

    if(!rst_n) DE_HDMI <= 1′b0;

    else if((xcnt >= (HDMI_HST+ HDMI_HBP)) && (xcnt < (HDMI_HST+ HDMI_HBP+ HDMI_HVT))&& (ycnt >= (HDMI_VST+HDMI_VBP)) && (ycnt < (HDMI_VST+HDMI_VBP+ HDMI_VVT)))

    DE_HDMI <= 1′b1;

    else DE_HDMI <= 1′b0;

其中HDMI_HBP為每行數據段占用的時鐘周期的個數,HDMI_VBP為每行數據段所有行的數量。HDMI_HTT、HDMI_VTT、HDMI_HST、HDMI_VST、HDMI_HBP、HDMI_VBP等參數信號接入模塊的輸入端,可根據視頻參數以及HDMI發送器型號輸入相應的配置信息,具有較廣泛的適用性。

3 ALPHA混合模塊設計

    本模塊根據配置信息(輸入的視頻坐標信息、alpha值),使最多4路視頻數據在指定坐標范圍內顯示,并按照設定的透明度進行ALPHA混合。首先將HDMI驅動模塊生成的DE_HDMI、HSY_HDMI、VSY_HDMI等同步信號連接到坐標指示電路的輸入端,此電路中定義兩組計數器x_cnt與y_cnt,分別對輸出的有效視頻在顯示區域內的x坐標與y坐標進行計數,從每行起始位置,在輸出有效視頻數據的每個時鐘周期x_cnt遞增1,每行有效視頻數據計數完成后清零,y_cnt則從有效視頻的第一行開始,在每行有效視頻傳輸完成后遞增1,場同步后清零。利用坐標指示電路生成有效視頻的坐標信號,即可根據設定的視頻位置信息在相應的時刻發出讀請求信號,讀取有效視頻數據,同時在相應的時刻讀取alpha值。

    ALPHA混合計算電路負責將背景視頻數據與前景視頻數據根據當前的alpha值進行ALPHA混合。本模塊通過多級流水線設計ALPHA混合計算電路,實現了ALPHA混合計算的硬件加速,極大地提升了計算速度。

    對于RGB編碼的視頻數據,其進行ALPHA混合的公式如式1所示(該公式也適用于YUV編碼的視頻數據)。

    qrs5-gs1.gif

其中R1、G1、B1對應混合后的視頻數據的R、G、B分量,Rf、Gf、Bf對應前景數據的R、G、B分量,Rb、Gb、Bb對應背景數據的R、G、B分量。在流水線設計中,將組合邏輯分成三級,第一級對擴大后的數據通過乘法器進行乘法累加運算,第二級進行加法運算,第三級進行縮小運算,該模塊框圖如圖3所示。

qrs5-t3.gif

    由于FPGA設計屬于數字電路設計,電路層面上無法直接計算小數點。故采用將計算數據先擴大,計算完成后再縮小的方法。具體方法為先將公式左右兩端分別擴大256倍,計算完成后再縮小256倍,將擴大后的公式分為三步計算。

    第一步:進行乘法操作,如式(2)、式(3)所示。

    qrs5-gs2-3.gif

    第二步:進行加法操作,將第一級計算出的前景數據中間值R11、G11、B11與背景數據中間值R12、G12、B12分別相加,如式4所示。

    qrs5-gs4.gif

    第三步:進行縮小操作,分別對第二步得到的中間值右移8位,為保證數據的精確性,對得到的數據進行溢出處理。代碼如下:

assign o_data_R=data_R_tmp[8] ? 8′hff : data_R_tmp[7 : 0];

assign o_data_G=data_G_tmp[8] ? 8′hff : data_G_tmp[7 : 0];

assign o_data_B=data_B_tmp[8] ? 8′hff : data_B_tmp[7 : 0];

其中o_data_R、o_data_G、o_data_B為完成ALPHA混合和溢出處理后的視頻的R分量、G分量、B分量,data_R_tmp、data_G_tmp、data_B_tmp為完成ALPHA混合但未經溢出處理的視頻的R分量、G分量、B分量。溢出處理為判斷經過流水線輸出的9 bit視頻數據的最高位是否為0,不為0輸出8′hff,否則輸出前8 bit數據。

4 驗證結果

    將該模塊作為一個基于SOPC的四通道視頻處理系統的顯示模塊,編譯后配置到FPGA中并在開發板上運行,HDMI發送器為ADV7513,加載的配置信息為4通道分割顯示,并將輸出的視頻數據直接在顯示器上顯示,其實際效果如圖4所示。

qrs5-t4.gif

    由于實驗條件所限,只有一路信號源,因此將該信號源分別連接4個通道,可以看出每個通道的視頻都能完全顯示。將配置信息切換為PIP顯示,重疊部分背景透明度為0,窗口為1,其實際效果如圖5所示。

qrs5-t5.gif

    可以看出重疊部分窗口能完全顯示,背景完全不顯示。整個系統工作正常,模塊實現了相應功能。

5 結論

    本文設計了一個基于FPGA的HDMI多模式顯示模塊,該模塊能夠驅動HDMI輸出顯示多路視頻,并且可以配置每路視頻的顯示位置以及重疊部分的透明度。通過設置驅動信息,模塊可適用于多種型號HDMI的發送器以及不同參數的視頻。設計中通過流水線提升了處理速度,加強了顯示的即時性。因此在基于SOPC的視頻處理系統中,可以作為一種通用、高速、多功能的HDMI輸出顯示組件,具有較好的應用前景。

參考文獻

[1] 劉紫燕,馮亮,祁佳.一種基于FPGA的實時視頻跟蹤系統硬件平臺設計[J].傳感器與微系統,2014,33(7):98-102.

[2] 李煌.基于FPGA的HDMI顯示系統的設計與實現[D].上海:華東師范大學,2008.

[3] 梁義,濤唐垚,史衛亞,等.基于Cyclone IV的Camera Link-HDMI高清視頻轉換器設計[J].電子技術應用,2013,39(5):12-14.

[4] 陳志杰.高清混合視頻矩陣的研究及FPGA實現[D].泉州:華僑大學,2014.



作者信息:

向梓豪,陸安江

(貴州大學 大數據與信息工程學院,貴州 貴陽550025)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美午夜不卡视频| 国产日韩综合一区二区性色av| 亚洲无人区一区| 亚洲国产激情| 精品电影在线观看| 狠狠综合久久| 国户精品久久久久久久久久久不卡| 国产精品日韩二区| 国产精品成人在线| 欧美性大战久久久久久久蜜臀| 欧美人与性动交cc0o| 欧美高清在线观看| 你懂的一区二区| 毛片av中文字幕一区二区| 久久久最新网址| 久久久久综合网| 久久综合色影院| 欧美91视频| 欧美国产精品一区| 欧美精品综合| 欧美日韩一区二区在线播放| 欧美午夜欧美| 国产精品一区二区久久久久| 国产精品视频yy9099| 国产伦理一区| 国产一区白浆| 亚洲承认在线| 亚洲精品一区二区三区不| 99国产精品久久久久久久久久| 日韩视频免费| 亚洲一区二区三区四区五区午夜 | 亚洲精品久久嫩草网站秘色 | 99re6热只有精品免费观看| 99视频热这里只有精品免费| 宅男噜噜噜66一区二区| 亚洲欧美成人精品| 香蕉亚洲视频| 91久久中文| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲欧美影音先锋| 久久久久久香蕉网| 欧美精品色综合| 国产精品欧美在线| 国产伊人精品| 亚洲另类在线一区| 午夜国产精品视频| 亚洲国产一区二区a毛片| 一区二区三区产品免费精品久久75| 午夜一区二区三视频在线观看| 久久香蕉国产线看观看av| 欧美精品一区二区在线观看| 国产精品久久久久av免费| 韩国一区二区三区在线观看| 亚洲日本激情| 午夜精品久久久久久久白皮肤| 亚洲欧洲日韩综合二区| 亚洲欧美日韩成人| 鲁大师成人一区二区三区| 欧美日韩亚洲视频| 国内在线观看一区二区三区| 亚洲精品乱码久久久久久蜜桃91| 亚洲一区二区三区精品在线| 亚洲人成艺术| 欧美在线观看视频一区二区三区 | 91久久久亚洲精品| 午夜在线精品| 夜夜嗨av一区二区三区网站四季av | 国产亚洲欧美日韩美女| 亚洲九九九在线观看| 欧美在线免费观看亚洲| 99国产精品自拍| 久久久精彩视频| 欧美午夜寂寞影院| 亚洲第一区中文99精品| 亚洲女人小视频在线观看| 日韩一级裸体免费视频| 久久久久久69| 国产精品免费小视频| 亚洲国产欧美日韩另类综合| 性欧美videos另类喷潮| 亚洲一区二区少妇| 欧美大片第1页| 国产一区二区三区在线观看网站 | 亚洲精选视频在线| 久久久久久电影| 国产精品亚洲网站| 99国内精品久久| 亚洲久久在线| 久久综合给合久久狠狠色| 国产精品制服诱惑| 99在线热播精品免费| 亚洲精品国产无天堂网2021| 久久久免费观看视频| 国产美女精品免费电影| 在线性视频日韩欧美| 日韩亚洲精品在线| 欧美a级片一区| 一区二区三区自拍| 欧美在线一二三区| 欧美在线中文字幕| 国产精品欧美一区二区三区奶水| 亚洲精品乱码久久久久久按摩观| 亚洲高清影视| 久久人人爽人人爽| 国产一区二区三区视频在线观看 | 一区二区国产精品| 99精品国产在热久久下载| 免费成人av在线| 一区在线电影| 亚洲国产一区二区三区a毛片| 久久久久久久久一区二区| 国产日韩欧美成人| 亚洲免费一在线| 欧美一区二区三区男人的天堂| 国产精品乱码妇女bbbb| 中日韩视频在线观看| 亚洲视频中文字幕| 欧美日韩专区在线| 一本色道久久综合精品竹菊| 一区二区久久| 欧美日韩国产在线观看| 日韩视频久久| 亚洲影院免费| 国产麻豆精品在线观看| 午夜视频在线观看一区二区| 久久成人精品一区二区三区| 国产欧美日韩精品专区| 午夜精品一区二区三区在线播放 | 亚洲午夜一区二区三区| 欧美日韩一区三区四区| 一区二区三区精品在线 | 国产乱码精品1区2区3区| 亚洲综合精品自拍| 久久大逼视频| 精品电影一区| 99视频一区二区三区| 欧美破处大片在线视频| 日韩视频在线观看免费| 亚洲欧美韩国| 国产一区二区成人| 亚洲黄色毛片| 欧美日韩免费在线视频| 亚洲一区二区在线观看视频| 久久精品国产成人| 在线看一区二区| 一区二区三区久久久| 国产精品视频免费| 久久不见久久见免费视频1| 蜜臀久久99精品久久久久久9 | 亚洲一区视频| 久久人人爽爽爽人久久久| 亚洲国产精品成人综合| 亚洲一品av免费观看| 国产免费成人在线视频| 亚洲福利视频专区| 欧美日韩精品一区二区在线播放 | 久久久99爱| 亚洲人成在线免费观看| 午夜精品久久久久久久99水蜜桃 | 亚洲激情中文1区| 亚洲欧美日韩在线播放| 国内精品久久久久久久果冻传媒 | 一区二区三区欧美日韩| 国产模特精品视频久久久久| 91久久在线观看| 国产精品国产三级国产普通话蜜臀 | 日韩亚洲精品视频| 国产精品永久| 亚洲剧情一区二区| 国产精品视频yy9299一区| 亚洲国产精品女人久久久| 欧美日韩国产综合久久| 午夜视频一区在线观看| 欧美另类69精品久久久久9999| 亚洲综合色婷婷| 欧美激情四色 | 中文一区二区| 久久午夜电影| 这里只有精品视频在线| 久久香蕉国产线看观看网| 一本大道久久精品懂色aⅴ| 久久久久久尹人网香蕉| 一本高清dvd不卡在线观看| 久色婷婷小香蕉久久| 一区二区三区国产盗摄| 欧美va天堂va视频va在线| 亚洲男人的天堂在线aⅴ视频| 欧美激情精品久久久久久久变态| 亚洲女优在线| 欧美日本精品| 久久成人综合网| 国产精品久久久久aaaa九色| 亚洲精品美女| 国产主播精品在线| 亚洲欧美日韩另类精品一区二区三区| 尤物精品在线| 欧美专区在线观看| 中文av字幕一区| 欧美另类人妖| 亚洲国产精品久久久久婷婷884|