日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】DE2_TV例程的几点说明

發布時間:2025/3/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】DE2_TV例程的几点说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://www.cnblogs.com/sunev/archive/2012/05/21/2512149.html

一、摘要

  對DE2_TV例程做了分析,并闡明了相關概念。

二、實驗平臺

  硬件平臺:DIY_DE2

  軟件平臺:Quartus II 9.0?

三、一些概念及說明

1、PAL和NTSC的區別

  常見的電視信號制式是PAL和NTSC,另外還有SECAM等。?NTSC即正交平衡調幅制,PAL為逐行倒像正交平衡調幅制。?
(1)PAL電視標準?
  PAL電視標準,每秒25幀,電視掃描線為625線,奇場在前,偶場在后,標準的數字化PAL電視標準分辨率為720*576, 24比特的色彩位深,畫面的寬高比為4:3,PAL電視標準用于中國、歐洲等國家和地區。?
(2)NTSC電視標準?
  NTSC電視標準,每秒29.97幀(簡化為30幀),電視掃描線為525線,偶場在前,奇場在后,標準的數字化NTSC電視標準分辨率為720*486,24比特的色彩位深,畫面的寬高比為4:3。NTSC電視標準用于美、日等國家和地區。

  下面重點說一下PAL制式。PAL一幀的數據行格式如圖1所示。

圖1 一幀圖像數據行格式

對于有效數據行的格式,如圖2所示

圖2 有效視頻行的數據格式

   ?如上圖所示,EAV和SAV為嵌入式控制字,分別表示有效視頻的終點和起點。EAV和SAV均為4個字節構成,前3個字節FF、00、00為固定頭,“XY”為控制字?!癤Y”的8個bit含義如下:

  • Bit7(Const),常數,總為1。
  • Bit6(F),場同步信號,表示該行數據處于奇場還是偶場。
  • Bit5(V),垂直同步信號,表示處于場消隱區間還是正程區間(有效數據行)。
  • Bit4(H),水平同步信號,表示是“SAV”還是“EAV”。
  • Bit3-0(P3P2P1P0),糾錯位。P3=V(XOR)H;P2=F(XOR)H;P1=F(XOR)V;P0=F(XOR)V(XOR)H。

EAV與SAV的詳細定義如表1所示。

?

表1

Bit7

Bit6

Bit5

Bit4

Bit3-0(P3P2P1P0)

Hex

Description

1

0

0

0

0000

0x80

Even,Active,SAV

1

0

0

1

1101

0x9d

Even, Active,EAV

1

0

1

0

1011

0xab

Even,Blank, SAV

1

0

1

1

0110

0xb6

Even, Blank, EAV

1

1

0

0

0111

0xc7

Odd, Active, SAV

1

1

0

1

1010

0xda

Odd, Active, EAV

1

1

1

0

1100

0xec

Odd, Blank, SAV

1

1

1

1

0001

0xf1

Odd, Blank, EAV

  Blanking為水平消隱區,通常由80H/10H來填充。

  對于圖2中的Valid data(有效數據)區,其數據排列順序如圖3所示。即Y : Cb : Cr=4 : 2 : 2。從圖像的像素點上來理解,就是每個像素點有一個單獨的Y值,而相鄰的兩個像素點的CbCr數據是一樣的。

?

圖3?數據排列順序

2、ITU-R BT.601和ITU-R BT.656的區別

  關于這兩種信號的區別:?
  ITU-R BT.601:?16位數據傳輸,21芯;Y、U、V信號并行傳輸,并有場頻和行頻傳輸線。最后更新的文檔代號為:ITU-R? BT.601-5。
  ITU-R BT.656:?8位數據傳輸,9芯;串行視頻傳輸,不需要同步信號;傳輸速率是601的2倍。最后更新的文檔代號為:ITU-R? BT.656-4。

  656輸出的是串行數據,行場同步信號嵌入在數據流中,601是并行數據,行場同步有單獨輸出。

656只是數據傳輸接口而已,可以說是作為601的一個傳輸方式。簡單的說ITU-R BT.601是"演播室數字電視編碼參數"標準,而ITU-R BT.656 則是ITU-R BT.601附件A中的數字接口標準,用于主要數字視頻設備(包括芯片)之間采用27Mhz/s并口或243Mb/s串行接口的數字傳輸接口標準。

3、關于DIY_DE2的視頻部分的說明

  DE2視頻解碼芯片是SAA7181,DIY_DE2采用的視頻解碼芯片是SAA7113,兩種芯片都支持ITU-R BT.656和ITU-R BT.601兩種信號接口。SAA7113采用的外部晶振為24.576MHz,經過內部鎖相環之后,像素時鐘為27MHz,亮度信號時鐘為13.5MHz,色差信號時鐘為6.75MHz。

  DE2_TV例程是針對NTSC制式的攝像頭,而我這里是用的PAL制式的攝像頭,視頻信號為隔行掃描,奇場在前,偶場在后。使用的視頻接口為ITU-R BT.656因此對例程做了些修改。

四、DE2_TV例程分析

1、IIC配置視頻解碼芯片

  具體配置方法上篇博文中已經說明,這里給出配置參數。

SET_VIDEO+0: LUT_DATA <= 16'h0108;SET_VIDEO+1: LUT_DATA <= 16'h02C3;//default C0SET_VIDEO+2: LUT_DATA <= 16'h0333;//default 33SET_VIDEO+3: LUT_DATA <= 16'h0400;//default 00SET_VIDEO+4: LUT_DATA <= 16'h0500;//default 00SET_VIDEO+5: LUT_DATA <= 16'h06e9;SET_VIDEO+6: LUT_DATA <= 16'h070d;SET_VIDEO+7: LUT_DATA <= 16'h0898;SET_VIDEO+8: LUT_DATA <= 16'h0901;SET_VIDEO+9: LUT_DATA <= 16'h0a80; SET_VIDEO+10: LUT_DATA <= 16'h0b47;SET_VIDEO+11: LUT_DATA <= 16'h0c40;SET_VIDEO+12: LUT_DATA <= 16'h0d00;SET_VIDEO+13: LUT_DATA <= 16'h0e01;SET_VIDEO+14: LUT_DATA <= 16'h0f2a;SET_VIDEO+15: LUT_DATA <= 16'h1000;SET_VIDEO+16: LUT_DATA <= 16'h110c;SET_VIDEO+17: LUT_DATA <= 16'h12b7;SET_VIDEO+18: LUT_DATA <= 16'h1300;SET_VIDEO+19: LUT_DATA <= 16'h1500; SET_VIDEO+20: LUT_DATA <= 16'h1600;SET_VIDEO+21: LUT_DATA <= 16'h1700;SET_VIDEO+22: LUT_DATA <= 16'h4002;SET_VIDEO+23: LUT_DATA <= 16'h41ff;SET_VIDEO+24: LUT_DATA <= 16'h42ff;SET_VIDEO+25: LUT_DATA <= 16'h43ff;SET_VIDEO+26: LUT_DATA <= 16'h44ff;SET_VIDEO+27: LUT_DATA <= 16'h45ff;SET_VIDEO+28: LUT_DATA <= 16'h46ff;SET_VIDEO+29: LUT_DATA <= 16'h47ff; SET_VIDEO+30: LUT_DATA <= 16'h48ff;SET_VIDEO+31: LUT_DATA <= 16'h49ff;SET_VIDEO+32: LUT_DATA <= 16'h4aff;SET_VIDEO+33: LUT_DATA <= 16'h4bff;SET_VIDEO+34: LUT_DATA <= 16'h4cff;SET_VIDEO+35: LUT_DATA <= 16'h4dff;SET_VIDEO+36: LUT_DATA <= 16'h4eff;SET_VIDEO+37: LUT_DATA <= 16'h4fff;SET_VIDEO+38: LUT_DATA <= 16'h50ff;SET_VIDEO+39: LUT_DATA <= 16'h51ff;SET_VIDEO+40: LUT_DATA <= 16'h52ff; SET_VIDEO+41: LUT_DATA <= 16'h53ff;SET_VIDEO+42: LUT_DATA <= 16'h54ff;SET_VIDEO+43: LUT_DATA <= 16'h55ff;SET_VIDEO+44: LUT_DATA <= 16'h56ff;SET_VIDEO+45: LUT_DATA <= 16'h57ff;SET_VIDEO+46: LUT_DATA <= 16'h5800;SET_VIDEO+47: LUT_DATA <= 16'h5954;SET_VIDEO+48: LUT_DATA <= 16'h5a07;SET_VIDEO+49: LUT_DATA <= 16'h5b83;SET_VIDEO+50: LUT_DATA <= 16'h5e00;

2、視頻采集、解碼及視頻裁剪部分

  由于采用PAL制式的攝像機,其視頻畫面的有效分辨率為720*576,即總共576行(分奇偶兩場,各占288行),每行720個像素點,由于是8位串行輸出,因此每行總共有1440個字節。

  視頻解碼文件完成的任務就是:通過判斷SAV信號,來判斷接下來的數據是否為有效視頻數據,如果是,則進一步分離出有效數據的同步信號oDVAL和有效數據Y、Cb、Cr。

  視頻的裁剪是通過一個除法器輔助完成的,主要是對每行視頻數據進行裁剪,從720個像素裁剪到640像素。除數為當前視頻行的當前字節數右移1位,被除數為9。也就是說,每9個像素中,有一個像素點被裁剪掉,即720-720/9=640。具體代碼如下。

if(iSwap_CbCr)begincase(Cont[1:0]) // Swap0: Cb <= iTD_DATA;1: YCbCr <= {iTD_DATA,Cr};2: Cr <= iTD_DATA;3: YCbCr <= {iTD_DATA,Cb};endcaseendelsebegincase(Cont[1:0]) // Normal0: Cb <= iTD_DATA;1: YCbCr <= {iTD_DATA,Cb};2: Cr <= iTD_DATA;3: YCbCr <= {iTD_DATA,Cr};endcaseend

上述代碼中,iSwap_CbCr除數除以被除數的商,Cont為當前視頻行的當前字節數,下面以例子示之。

?

Cont[1:0] ? ? ? ? 00 ?01 ?10 ?11 ?00 ?01 ?10 ?11 ?00 ?01 ?10 ?11 ?00 ?01 ?10 ?11 ?00 ?01 ?10 ?11??00 ?01 ?10 ?11

iSwap_CbCr ? ? ? 0 ? ?0 ? 0 ? ?0 ? ?0 ? ?0 ? ?0 ? ?0 ? ?0 ? ?0 ? ?0 ? ?0 ? ?0 ? 0 ? ?0 ? ?0 ? ?0 ? ?0 ? ?1 ? ?1?? ?1 ? ?1 ? ?1 ? ?1

iTD_DATA ? ? ? ? Cb1 Y1 Cr1 Y2 Cb2?Y3 Cr2 Y4 Cb3?Y5 Cr3 Y6 ?Cb4?Y7 Cr4 Y8 Cb5?Y9 Cr5 Y10?Cb6?Y11 Cr6 Y12

YCbCr ? ? ? ? ? ? ? ?Y1Cb1 ?Y2Cr1 ?Y3Cb2 ?Y4Cr2 ?Y5Cb3 ?Y6Cr3 ? Y7Cb4 ?Y8Cr4 ?Y9Cb5 ?Y10Cb5 ?Y11Cr5 ?Y12Cb6

?

  從上述例子可以看出,每4個時鐘周期輸出2個像素值,即輸出像素值的頻率減小了一半,這與分離出來的同步信號oDVAL的時鐘頻率一樣,同為13.5MHz。

  另外,裁剪部分,由于Y9Cb5與Y10Cb5有很大的相似性,這里應該是將Y9Cb5剔除,但是具體在什么位置剔除,卻不得而知。莫非是分析錯誤?求解。

3、視頻數據存取

?  存儲在SDRAM采用的是1入2出的模式,即一個端口寫入,2個端口讀出。存取數據的代碼如下:

?

// SDRAM frame buffer Sdram_Control_4Port u6 ( // HOST Side .REF_CLK(CLOCK_50),//.CLK_18(AUD_CTRL_CLK),.RESET_N(1'b1),// FIFO Write Side 1 .WR1_DATA(YCbCr),.WR1(TV_DVAL),.WR1_FULL(WR1_FULL),.WR1_ADDR(0),.WR1_MAX_ADDR(640*576), // 525-18.WR1_LENGTH(9'h80),.WR1_LOAD(!DLY0),.WR1_CLK(PPI_CLK),// FIFO Read Side 1 .RD1_DATA(m1YCbCr),.RD1(m1VGA_Read),.RD1_ADDR(640*12), // Read odd field and bypess blanking.RD1_MAX_ADDR(640*252),.RD1_LENGTH(9'h80),.RD1_LOAD(!DLY0),.RD1_CLK(PPI_CLK),// FIFO Read Side 2 .RD2_DATA(m2YCbCr),.RD2(m2VGA_Read),.RD2_ADDR(640*300), // Read even field and bypess blanking.RD2_MAX_ADDR(640*540),.RD2_LENGTH(9'h80),.RD2_LOAD(!DLY0),.RD2_CLK(PPI_CLK),// SDRAM Side .SA(DRAM0_A),.BA(DRAM0_BA),.CS_N(DRAM0_CS),.CKE(DRAM0_CKE),.RAS_N(DRAM0_RAS),.CAS_N(DRAM0_CAS),.WE_N(DRAM0_WE),.DQ(DRAM0_D),.DQM(DRAM0_DQM),.SDR_CLK(DRAM0_CLK) );

經過裁剪后的視頻分辨率為640*576。

  寫入SDRAM中時,是將640*576個像素全部寫入進去,由于是奇場數據在前,偶場數據在后,因此前640*288行數據為奇場數據,后?640*288行數據為偶場數據。

  讀取視頻數據時,采用乒乓操作,先后讀取奇偶場的數據,各240行,組成一幅完整的畫面,讀取方法如下:

1

……

11

讀取12到251行,共240行

252

……

288

以上為奇數場數據,以下為偶數場數據

289

……

299

讀取300到539行,共240行

540

……

576

  其中,1~288行為奇數場數據,289~576為偶數場數據。上述數據是從11~251,300~539讀取的,當然也可以從1~240,289~529讀取,只要滿足奇偶場的起始行為相鄰行,且保證奇數場的數據行在前即可。

  因此,最后得到的視頻分辨率為640*480.

4、色彩空間轉換

?  進行色彩空間轉換之前,對視頻行數據進行了簡單的算法處理,代碼如下:

// Line buffer, delay one line Line_Buffer u10 ( .clken(VGA_Read),.clock(PPI_CLK),.shiftin(mYCbCr_d),.shiftout(m3YCbCr));Line_Buffer u11 ( .clken(VGA_Read),.clock(PPI_CLK),.shiftin(m3YCbCr),.shiftout(m4YCbCr));wire [15:0] m4YCbCr; wire [15:0] m5YCbCr; wire [8:0] Tmp1,Tmp2; wire [7:0] Tmp3,Tmp4;assign Tmp1 = m4YCbCr[7:0]+mYCbCr_d[7:0]; assign Tmp2 = m4YCbCr[15:8]+mYCbCr_d[15:8]; assign Tmp3 = Tmp1[8:2]+m3YCbCr[7:1]; assign Tmp4 = Tmp2[8:2]+m3YCbCr[15:9]; assign m5YCbCr = {Tmp4,Tmp3};

對視頻行進行了加和及數乘運算。最后將YUV 4:2:2先轉換為YUV4:4:4的形式,之后再通過公式轉換成RGB色彩空間,最后通過VGA顯示在顯示器上。

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【转】DE2_TV例程的几点说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品国产亚洲a | 大尺度电影在线 | 国产内射老熟女aaaa∵ | 国产一二三精品 | 男女黄床上色视频免费的软件 | 免费一级欧美片在线播放 | 好吊操av| 美国黄色一级毛片 | 国产成人无码精品久久久性色 | 一区二区免费在线 | av资源吧首页 | 中文字幕一区二区三区精彩视频 | 拔插拔插影库 | 污版视频在线观看 | 99在线观看免费视频 | 中文字幕+乱码+中文字幕明步 | 欧美性高潮 | 日批网址 | 欧美揉bbbbb揉bbbbb | 涩色视频 | 香蕉大久久 | 午夜爱爱影院 | 国产精选久久 | 成人网在线免费观看 | 国产高清一区二区三区四区 | 国产中文在线播放 | 可以看污的网站 | 美女的诞生免费观看在线高清 | 天天噜夜夜噜 | 精品区在线观看 | 欧美成人国产精品高潮 | 亚洲九九热 | 嫩草影院懂你的影院 | 国产精品伦一区二区三区 | 毛片在线视频播放 | 一级黄色片片 | 亚洲天堂影院在线观看 | 欧美多人猛交狂配 | 亚洲色图图片 | 91全免费| 国产精品综合久久久 | 日本人三级 | 青青草精品视频 | 美女av免费| 日韩亚洲欧美在线观看 | 黄色av三级| 成人在线观看一区二区 | 手机av网站 | 日本亚洲一区 | 双性娇喘浑圆奶水h男男漫画 | jizz免费视频 | 手机福利视频 | 欧日韩在线视频 | 亚洲婷婷一区 | 午夜色大片 | 欧美性受xxx | 亚洲一区二区免费在线观看 | 18被视频免费观看视频 | 久久久久久久国产精品毛片 | 精品丝袜一区 | 羞羞色院91蜜桃 | 天天色婷婷 | 欧美一区二区三区久久 | 台湾佬美性中文娱乐网 | 最新在线中文字幕 | 欧美成在线观看 | 国产亚洲精 | 婷婷亚洲视频 | 国产wwwwwww | 国产乱淫视频 | 色婷婷香蕉在线一区二区 | 亚洲色图国产视频 | 日韩三级麻豆 | 欧美在线观看www | 日本在线有码 | 久久精品国产亚洲av麻豆 | 欧美日韩一区二区三区四区 | 奇米影视狠狠 | 欧美色999 | 欧美色啪 | 色在线免费视频 | 欧美视频第一页 | 五月依人网 | 亚洲视频网址 | 美日韩视频 | av在线天堂网 | 国产成人精品片 | 日本aⅴ视频 | 神马一区二区三区 | 欧美草草| 中出一区二区 | 99久久九九| 精品一区不卡 | 午夜国产福利视频 | 最近中文字幕免费mv视频7 | 国产精品va无码一区二区 | 拔擦8x成人一区二区三区 | 日本三区在线 | 国产一区二区综合 |