标题: 分享一段代码--BT.656视频流中恢复同步信号 [打印本页]

作者: jiege    时间: 2014-8-20 03:11
标题: 分享一段代码--BT.656视频流中恢复同步信号
  好久没有写技术类的日志了,今天跟大家分享一段代码,用FPGA做视频处理的也许会用到,主要功能是用FPGA从8位的ITU-R BT.656 YCrCb 4:2:2数据流中恢复出行场同步以及奇偶场标识。前段时间写的,经过实际验证的。全部采用同步逻辑,模块化后与其他模块间通过寄存器相连,可保障良好的时序。嘿嘿,在CYCLONE3上编译后仅占用9个LE。

  分享出来方便从事这方面工作的朋友,希望能为大家节省点时间。有对656视频格式感兴趣的朋友也可以拿去加深一下对这种视频格式的了解,学习FPGA编程刚入门的同志也可以做个参考~



// LOGIC:    ITU-R BT.656 sync-signals generation
// MODULE NAME:   sync_gen_656
// FILE NAME:   sync_gen_656.v
// COMPANY:   BLUESTAR
// DESIGNER:   zhangjindong
// REVISION HISTORY: 1.0
// Revision: 1.0  30/5/2010
// Description:   recover sync-signals from ITU-R BT.656


module sync_gen_656 (pixclk, vdata_in,
hsync, vsync, field_id);

input pixclk;
input [7:0] vdata_in;
output hsync, vsync, field_id;
reg hsync, vsync, field_id;
reg [1:0] state;

always@(posedge pixclk) //27MHz
begin
  if (vdata_in[7:0] == 'hFF)
   begin
    state <= 0;
   end
  else
   begin
    if (state != 3)
     begin
      state <= state + 1;
      if (state == 2)
       {field_id, vsync, hsync} <= vdata_in[6:4];
      else
       {field_id, vsync, hsync} <= {field_id, vsync, hsync};
     end
    else
     begin
      state <= 3;
      {field_id, vsync, hsync} <= {field_id, vsync, hsync};
     end     
   end
end
endmodule






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1