BT601 BT656 BT709 BT1120 解析
文檔定義一幀為1 125?總行數和1 080?有效行;每行有效像素為1920
圖像頻率60、?50、?30、?25?和?24Hz包括逐行、隔行和幀分段傳輸;在60、?30和24 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 | ? | F | V | H | P3 | P2 | P1 | P0 | ? | ? |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 80 | ? |
| 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 9D | ? |
| 2 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | AB | ? |
| 3 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | B6 | ? |
消隱數據
數字消隱期間不應用于定時基準碼(SAV?和?EAV) 、行號或者不應用于輔助數據(ANC)?的數據字根據復用數據流中的合適位置,?在這些位置上填充以對應于下列消隱電平的字:
16(8)對于?Y、?R、?G、?B?信號;
128(8)對于?CB/CR(時分復用的色差信號)。
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 解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机硬件选型报价,组装电脑硬件该怎么选
- 下一篇: 高级会计师计算机考试中级,会计师需要计算