找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4871|回复: 0
打印 上一主题 下一主题
收起左侧

分享一段代码--BT.656视频流中恢复同步信号

[复制链接]
跳转到指定楼层
楼主
ID:51088 发表于 2014-8-20 03:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  好久没有写技术类的日志了,今天跟大家分享一段代码,用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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表