在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于面積的實現和基于速度的實現-兩種YUV分離的FPGA的實現方式

      基于面積的實現和基于速度的實現-兩種YUV分離的FPGA的實現方式

      作者: 時間:2017-06-05 來源:網絡 收藏

      0 引言

      隨著視頻采集、壓縮技術以及無線傳輸技術的飛速發(fā)展,基于FPGA的設計被廣泛應用到各個領域,尤其在嵌入式系統(tǒng)。傳統(tǒng)的視頻技術解決方案(如采用CPLD+CPU的結構進行的設計)已經不能滿足人們對于集成度與實時性的要求,而FPGA恰逢其時的出現,以其高度集成,并行處理和豐富的片上資源,同時隨著FPGA自身性能的不斷提高,各個FPGA廠商為視頻處理提供了越來越多的高性能解決方案,使得FPGA在視頻采集壓縮以及無線傳輸領域的應用越來越廣泛。

      本文的研究是基于FPGA的實時視頻無線傳輸系統(tǒng)的一部分。在進入視頻壓縮編碼器之前,需要完成視頻的采集,模/數轉換,預處理,讀/寫SDRAM等操作,本文針對預處理過程中數字視頻的分離存儲進行了研究.即YUV的分離存儲,并采用了兩種方法實現了YUV的分離存儲;一種是基于面積考慮的只用一片雙端口存儲器的實現;另外一種是基于速度考慮的用兩片雙端口處理器的實現。

      本文引用地址:http://www.biyoush.com/article/201706/349043.htm

      1 基于FPGA的實時視頻無線傳輸系統(tǒng)

      本文的系統(tǒng)主要由視頻采集、視頻壓縮、無線傳輸3大部分組成。系統(tǒng)結構如圖1所示。在視頻數據進入視頻壓縮編碼器之前,視頻需要經過CCD視頻采集、TVP5146視頻解碼、有效數據抽取、預處理、SDRAM存儲等操作。這些操作均屬于視頻采集前端系統(tǒng)。其中,CCD完成模擬視頻的采集,TVP5146完成對輸入模擬視頻到數字視頻的轉換,而這里需要對TVP5146進行內部寄存器設置,設置通過I2C總線來完成。有效數據抽取模塊完成對有效視頻數據的抽取,1幀視頻數據由625行分屬于奇偶場的視頻組成,而系統(tǒng)所需要的是1幀視頻的576行有效數據中的特定像素,而這個工作就是由有效視頻抽取模塊完成;預處理模塊則是完成數字視頻的串/并轉換,即8位到16位的轉換以及YUV的分離,這也是本文所做的工作,下面將做詳細介紹;然后將視頻存儲在SDRAM中,實現了為H.264編碼器提供穩(wěn)定的視頻流供壓縮;3G模塊將壓縮模塊送出的視頻流進行RTP封裝,然后發(fā)送到遠端接收系統(tǒng)。

      本文所做的研究是基于開展的,前面已經提過面積與速度是FPGA設計不變的主題。二者也是一對矛盾體,不可能同時兼顧,在系統(tǒng)設計中只能通過速度和面積的互換來使二者有機的統(tǒng)一起來。其中,基于面積的設計是利用一片雙端口RAM,利用FPGA與SDRAM之間的頻率差異來實現的,選定的FPGA的工作頻率為48 MHz,SDRAM的工作頻率為100 MHz,這樣就實現了再一行視頻數據的有效期完成對雙端口RAM的寫,然后利用一行視頻數據的行消隱期,完成對的讀出操作,進而實現了輸出;而另一種實現是基于速度的實現,利用兩片雙端口RAM進行乒乓操作,完成了數據的無縫緩存和處理。本文通過Verilog實現了兩種方法設計。通過對比仿真結果,均達到了預期結果。

      2 基于面積的實現

      面積通??梢酝ㄟ^一個工程運行所消耗的觸發(fā)器(FF)和查找表(LUT)數量已經等效門數量來衡量,即所消耗的資源來衡量。本文基于面積的設計,充分考慮到用戶對集成度和智能化的要求。對于集成度和智能化的提高,應該著眼于每一部分的優(yōu)化,才能獲得整個系統(tǒng)集成度和智能化的提高,因此,本文對這個模塊進行了研究優(yōu)化。

      該模塊基于面積的設計采用一片進行模塊結構圖如圖2所示。有效數據抽取模塊與控制器和的輸入時鐘應與FPGA工作時鐘保持一致。有效數據抽取為雙口RAM提供寫使能,每行提供的有效視頻數據為704個像素,等到該模塊檢測到有效視頻數據的時候,對雙口RAM發(fā)出讀使能,然后接下來利用704個CLK完成對雙口RAM的寫操作,等到寫完畢時向SDRAM發(fā)出滿信號,在SDRAM收到該信號后,產生讀使能,以便對雙口RAM構成的讀操作。該模塊的設計思想是基于FPGA與SDRAM頻率差異進行設計的。一幀視頻數據由625行視頻組成,分奇、偶兩場,每一幀都是由有效視頻數據和場消隱數據組成的。其中23~310和336~623為有效視頻數據,共576行。其余49行為場消隱數據,每一行同樣分為行有效數據和行消隱數據。如果FPGA的工作頻率與SDRAM的頻率滿足一定的差異(本文采用的FPGA頻率為48 MHz,而SDRAM采用100 MHz的時鐘頻率),那么在一行視頻數據的有效期完成對雙口RAM的寫入后,在該行視頻數據的行消隱期內,可以通過輸入100 MHz的時鐘來完成對雙口RAM的讀操作。該模塊完成對有效視頻數據的寫入需要1 408個CLK,而完成存儲數據的讀取需要704個CLK_R,所需時間為1 408×10-8+704×(1/48000000)。因為讀/寫是串行執(zhí)行的,故以后每一行有效視頻的寫入/讀出均需要相同的時間,一行數據讀出完畢的仿真如圖3所示。



      3 基于速度的實現

      前面提到了FPGA設計中面積與速度不斷變換的原則,基于面積的實現方式只用到了一片雙口RAM,在一定程度上達到了面積優(yōu)化的目標,但是也看到讀/寫是串行執(zhí)行的,在系統(tǒng)運行速度上確實有一定的缺陷,無法滿足系統(tǒng)對實時性的要求,同時系統(tǒng)需要兩個不同頻率的時鐘,容易引起亞穩(wěn)態(tài)。下面將介紹一種基于速度的實現方式。

      3.1 乒乓操作

      乒乓操作是一個用于數據流控制的處理技巧,本文利用了兩片雙口RAM來作為乒乓操作的數據緩沖區(qū),乒乓操作如圖4所示。外部視頻數據在輸入數據選擇控制模塊和輸出數據選擇控制模塊的控制下,完成緩沖區(qū)的選擇和視頻數據的輸入/輸出,并將經過緩沖的數據流不停頓地送到下一模塊進行運算或處理。它適合于對數據流進行流水線式處理,能高效地完成大量實時視頻數據的無縫緩沖和處理。在第一個緩存周期,也稱之為雙口RAM0的寫周期。視頻數據在雙口RAM控制器控制下選擇將視頻數據輸入到雙口RAM0;在下一個周期,輸入控制模塊將視頻數據輸入到雙口RAM1,同時輸出控制模塊輸出雙口RAM0的視頻數據到后續(xù)模塊進行處理;在第三個周期時,在輸入控制模塊的控制下,將輸入視頻數據輸入到雙口RAM0,同時在輸出控制模塊控制下,將雙口RAM1中存儲數據輸出到后續(xù)模塊,如此不斷循環(huán)。



      3.2 模塊設計與仿真

      該模塊利用了兩片雙口RAM在不同的緩沖周期內分別進行讀/寫。該模塊主要由有效數據抽取、雙口RAM控制器、兩片雙口RAM組成,模塊結構如圖5所示。該模塊在控制器控制下視頻數據經有效數據抽取模塊抽取后進入雙口RAM,控制器為雙口RAM提供讀/寫使能,通過寫使能控制數據寫入是否有效,data_valid是有效數據抽取模塊,用來標識有效視頻數據的信號,由它為模塊提供寫使能,等到寫操作完成后向SDR AM控制器發(fā)送滿信號,此時讀使能r_en由SDRAM控制器提供。通過控制器提供的讀/寫使能完成兩片雙口RAM的讀寫切換。該模塊利用了兩片雙口RAM之間的乒乓操作,流水地實現了YUV分離的并行處理。

      工作流程如下:首先對雙口RAM0進行寫操作,寫操作完成后經過316個CLK,開始對雙口RAM1進行寫操作。對雙口RAM0進行讀操作時,因為讀操作只用到704個CLK,而寫操作需要1 408個CLK,當對雙口RAM0讀完時,還需繼續(xù)對雙口RAM1進行寫操作,等到雙口RAM1輸出ramfull高電平時進入下一個緩沖周期,此時對雙口RAM0進行寫操作,對雙口RAM1進行讀操作,如此循環(huán),則實現了視頻處理的流水操作。完成第一行數據的YUV分離輸出所需要的1 408+316+704個CLK后,各行數據的輸出則只需要1 408+316個CLK。于此同時基于速度的實現方式從提高系統(tǒng)工作時所能達到的最高時鐘頻率為出發(fā)點,利用了流水線的設計,提供了系統(tǒng)的頻率,如果系統(tǒng)的工作頻率是100 MHz,那么實際輸出YUV分離視頻數據所需要的時間僅為(1 408+316)×10-8。模塊仿真如圖6所示。


      4 性能分析


      4.1 操作時間

      前面已經敘述過基于面積實現方式,完成一行視頻數據的YUV分離輸出需要1 408+704個CLK,而由于需要充分利用行消隱期來完成數據的分離輸出,因此FPGA與SDRAM之間的頻率必須滿足一定的差異,這就使得該方式不能獲得較高的系統(tǒng)最高工作頻率。假設FPGA的工作頻率為48 MHz,SDRAM的工作頻率為100 MHz,那么實際完成一行視頻數據的分離傳輸需要的時間為1 408×10-8+704×(1/48 000 000),而基于速度的實現方式,由于采用了兩片雙口RAM,因此可以在同一緩沖周期分別進行讀/寫操作,而下一緩沖周期兩片雙口RAM的操作方式切換,進而完成了數據的無縫緩存與處理,利用流水線的方式使YUV分離數據的輸出速度得到了很大的提高,并且使得該模塊的系統(tǒng)最高工作頻率得到了很大的提高。完成一行視頻數據的分離輸出需要的CLK個數為1 408+316+704個。假設該模塊的工作頻率為100 MHz,那么實際完成一行分離數據輸出所需的時間為(1 408+316+704)×10-8,通過對比可以發(fā)現,基于速度的實現使得系統(tǒng)可以在較高工作頻率下運行,利用流水操作,進而實現了速度上的提升。

      4.2 硬件資源

      由上述可知,基于面積的實現方式只用到了一片雙口RAM,而基于速度的實現方式用到了兩片雙口RAM,且用到了一個二選一多路選擇器,同時后者的控制信號明顯多于前者,不僅增加了寄存器開銷,同時也增加了輸入/輸出端口的數量。通過對比可以發(fā)現,前者在面積上比后者確實有了較大優(yōu)勢。表1為2種實現方式的資源消耗列表。


      5 結語


      本文提出了YUV分離的兩種FPGA實現方法,基于面積的實現利用了一片雙口RAM,而基于速度的實現方式利用了兩片雙口RAM。通過對比發(fā)現,前者在消耗資源上獲得了較大的改進,對整個系統(tǒng)的集成化有重大作用;而后者采用了兩片雙端口RAM的,實現了視頻數據的輸出,對提高整個系統(tǒng)的實時性意義重大。無論從面積還是速度為出發(fā)點,二種方案對整個系統(tǒng)性能的提高都意義重大。



      評論


      相關推薦

      技術專區(qū)

      關閉