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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BT601 BT656 BT709 BT1120 解析

發布時間:2023/12/10 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BT601 BT656 BT709 BT1120 解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從ITU-R BT1120文檔上可知,BT1120支持的是1080p:

文檔定義一幀為1 125?總行數和1 080?有效行;每行有效像素為1920
圖像頻率60、?50、?30、?25?和?24Hz包括逐行、隔行和幀分段傳輸;60、?3024 Hz系統中,也包括這些值除以1.001
的圖像頻率,?

文檔規定對于10位接口對應于數字量化級0(10)3(10)1 020(10)1 023(10)的數據字保留用于數據標識目的,不得
作為圖像數據出現。?

?

?

?

?下面是逐行掃描系統幀結構

?

?SAV和EAV稱為定時基準碼,定時基準碼由?4?個字的序列組成 ,前?3?個字為固定前綴,?第?4個字運載的信息定義出場識別F)、 場/幀消隱期V)?和行消隱期H)。? 使用SAV和EAV來指示視頻時序,可以減少視頻傳輸的引腳數量。
注1 —EAV和SAV中(F/V/H)的值反映F、V和H比特的狀態;該值以F、V、H組成的3比特字用二—十進制記數(BCD)表示(F對應MSB,H對應LSB)。例如,數值3代表的比特為F=0、V=1和H=1 ?

?

8bit

?

SAV/EAV?FVHP3P2P1P0??
01000000080?
1100111019D?
210101011AB?
310110110B6?
P3 = V xor H P2 = F xor H P1 = F xor V P0 = F xor V xor H ? ?輔助數據 EAV終端和SAV始端之間的水平消隱間隔可被應用于傳送輔助數據包。?在逐行系統中,在線路141(包括)和1 122?到?1 125(包括)期間;?

消隱數據

數字消隱期間不應用于定時基準碼SAV?和?EAV) 、行號或者不應用于輔助數據ANC)?的數據字根據復用數據流中的合適位置,?在這些位置上填充以對應于下列消隱電平的字

16(8)對于?Y、?R、?G、?B?信號
128(8)對于?CB/CR時分復用的色差信號)。

?64(10)?對于Y、?R、?G、?B信號;
512(10)?對于CB、?CR(時分復用的色差信號)。
接口行號數數據?
? 行號數數據由指明行號數的兩個字組成。?行號數數據的位置應緊接在EAV之后 ,行號數數據的比特分配如下:

?

?誤碼檢測碼
誤碼檢測碼為循環冗余校驗碼(CRC),用以檢測有效數字行、?EAV和行號數數據中的
誤碼,它由兩個字組成,決定于下列多項式發生器式子:
EDC(x)=x18+x5+x4+1
校驗碼的初始值置0,計算起始于數字有效行的第一個字,結束于行號數數據的末一個
字。計算兩個誤碼檢測碼,一個用于亮度數據(YCR),一個用于色差數據(CCR)。誤碼
檢測碼的比特分配如表9所示。誤碼檢測碼的位置應緊接在行號數數據之后。

?并行數據與并行數據復用

并行數據流中Y與CbCr分別用10位數據傳輸,在并行復用中Y與CbCr合并成10位傳輸。從下圖中可以看到SAV/EAV、行號和誤碼檢測碼的位置。


?

?視頻數據格式? BT656接口使用的是8位或者10位4:2:2 YCbCr數據,為了能夠處理HDTV數據傳輸,有些設計使用16位或者20位YCbCr的接口(本質上是兩個BT656數據流,一個為數據Y,一個為數據CbCr),或者使用時鐘的兩個邊沿傳輸數據。

BT1120與BT656的區別

???????? BT656主要是針對PAL/NTSC等標清視頻。時鐘頻率是27MHz。注意采樣頻率灰度為12.5MHz,色度為6.25MHz。隨著高清視頻的發展的需要,又推出了BT1120標準,它與BT656是類似的,只不過時鐘頻率更高了,以適合高清視頻的傳輸。

?601是SDTV的數據結構 656是SDTV的interface
709是HDTV的數據結構 1120是HDTV的interface


?

實際的同步信號現行同行信號的關系 ============================================================================ ============================================================================ //該程序通過內嵌同步碼產生行和場同步信號 1 module sav_eav_detec( 2 input clk, 3 input [15:0] din, 4 output[15:0] dout, 5 output h_sync_out, 6 output v_sync_out 7 8 ); 9 10 reg [15:0] v_data [6:0] ; 11 12 always @( posedge clk ) 13 begin 14 v_data[0] <= din; 15 end 16 genvar i ; 17 generate 18 19 for( i = 0;i <= 5;i = i+1 ) 20 begin :data_dly 21 always@( posedge clk )begin 22 v_data[i+1] <= v_data[i]; 23 end 24 assign dout = v_data[6]; 25 26 end 27 endgenerate 28 wire [6:0] time_ref_code; 29 reg [6:0] time_ref_code_r = 0; 30 assign time_ref_code [6] = (v_data[3][7:0] == 8'hff ) ? 1'b1 : 1'b0; 31 assign time_ref_code [5] = (v_data[2][7:0] == 8'h00 ) ? 1'b1 : 1'b0; 32 assign time_ref_code [4] = (v_data[1][7:0] == 8'h00 ) ? 1'b1 : 1'b0; 33 //assign time_ref_code [1:0] = (v_data[0][7:0] ==8'h80 )? 2'b00 : ((v_data[0][7:0] ==8'h9d) ? 2'b01:((v_data[0][7:0] ==8'hab )? 2'b10:((v_data[0][7:0] )==8'hab ? 2'b11:0))); 34 assign time_ref_code[0] = (v_data[0][7:0] ==8'h80) ?1'b1 : 1'b0; 35 assign time_ref_code[1] = (v_data[0][7:0] ==8'h9d) ?1'b1 : 1'b0; 36 assign time_ref_code[2] = (v_data[0][7:0] ==8'hab) ?1'b1 : 1'b0; 37 assign time_ref_code[3] = (v_data[0][7:0] ==8'hb6) ?1'b1 : 1'b0; 38 // always @( * ) 39 // begin 40 // case( v_data[0][7:0] ) 41 // 8'h80 :time_ref_code[1:0] = 2'b00; 42 // 8'h9d :time_ref_code[1:0] = 2'b01; 43 // 8'hab :time_ref_code[1:0] = 2'b10; 44 // 8'hb6 :time_ref_code[1:0] = 2'b11; 45 // default :; 46 // endcase 47 // end 48 49 always @( posedge clk ) 50 begin 51 time_ref_code_r <= time_ref_code; 52 end 53 54 // reg h_sync; 55 // reg v_sync; 56 reg h_sync_r = 0; 57 reg v_sync_r = 0; 58 always @( posedge clk ) 59 begin 60 case(time_ref_code_r ) 61 7'h71 :begin h_sync_r = 1'b0; v_sync_r = 1'b0; end 62 7'h72 :begin h_sync_r = 1'b1; v_sync_r = 1'b0; end 63 7'h74 :begin h_sync_r = 1'b0; v_sync_r = 1'b1; end 64 7'h78 :begin h_sync_r = 1'b1; v_sync_r = 1'b1; end 65 default : begin h_sync_r = h_sync_r; v_sync_r = v_sync_r; end 66 endcase 67 end 68 69 reg [3:0] h_sync_dly = 0; 70 reg [3:0] v_sync_dly = 0; 71 always @( posedge clk ) 72 begin 73 h_sync_dly[3:0] <= {h_sync_dly[2:0],h_sync_r}; 74 v_sync_dly[3:0] <= {v_sync_dly[2:0],v_sync_r}; 75 end 76 77 wire h_black ; 78 reg h_black_r = 0; 79 reg v_black_r = 0; 80 assign h_black = h_sync_r | h_sync_dly[3] ; 81 always @( posedge clk ) 82 begin 83 h_black_r <= h_black; 84 v_black_r <= v_sync_r; 85 end 86 87 88 89 90 assign h_sync_out = h_black_r; 91 assign v_sync_out = v_black_r; 92 endmodule

總結

以上是生活随笔為你收集整理的BT601 BT656 BT709 BT1120 解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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