FMUSER更轻松地传输视频和音频!

[电子邮件保护] WhatsApp的+ 8618078869184
语言

    基于FPGA的视频应用OSD设计

     

    近年来,数字视频监控系统广泛应用于银行、高速公路、楼宇等各个领域。 在数字视频监控系统中,OSD(On Screen Display)技术是不可或缺的一部分。 OSD 为用户提供了友好的人机界面,使用户能够获得更多的附加信息。

     

    一、系统组成


       本文介绍的系统是基于TI DSP TMS320DM6的完整视频监控系统? 3和FPGA。 支持1路视频输入和1路视频输出,并提供网络接口。

     
        视频输入由 TI 经济高效的视频解码器 TVP5150A 实现。 TVP5150A 可实现两路复合视频输入或一路S-video 视频信号的采集。 该寄存器通过I2C配置,输出数字视频信号遵循ITU656标准。

     
        TVP5150A解码后的数字视频信号通过DM1的视频口6传输到DSP? 3、由DSP进行必要的视频处理,然后通过网络接口输出到远程设备。 另一方面,在 DM6 之后? 3 处理从网络接收到的视频数据,由SAA7105 通过视频端口2 经FPGA 显示输出。 

     
        输出部分由SAA7105实现。 SAA7105是NXP公司的高性能视频编码器,可提供复合视频输出、VGA视频输出和HDTV高清视频信号输出。 SAA7105的控制也是通过I2C实现的,它接收复合ITU656标准的数字视频信号。

     
        视频处理部分采用TI的DSP TMS320DM6 3实现。 DM6?3主频可达600MHz,有两个20位视频端口。 视频端口支持BT.656、Y/C等数字视频接口。 DM6?3还集成了网络MAC实现网络接入。

     
       硬件性能的发展速度总是难以满足软件的需求。 在视频处理日益复杂的应用中,DSP负责复杂的视频处理任务,资源变得非常紧张。 因此,在本系统的设计中,采用FPGA来实现OSD的设计,可以减轻DSP的负担。


     
        OSD 实现部分使用 Xilinx 的 XC3S250E。 XC3S250E 是 Xilinx SPARTAN-3E 系列 FPGA,具有 250,000 个逻辑门。


    2. OSD 实现
     
        SAA7105 不能实现 OSD 功能,而是由 XC3S250E 实现。 主控芯片DM6? 3只需要通知FPGA要显示的内容和位置,具体工作由FPGA来完成。 OSD的逻辑框图如图2所示。
     基于FPGA的视频应用OSD设计

     

     OSD FPGA通过EMIFA接收来自DSP DM6 3的OSD数据和控制指令,通过DSP视频端口1接收视频数据,并将OSD信息叠加在视频数据上,输出到视频编码器SAA7105。 OSD 的功能模块描述如下。
     
       地址译码模块的数据端口与DSP DM32 6的EMIFA的低3位数据接口,接收DM6 3发送的数据和控制信息。这些数据和控制信息是由DM32 6发送的原始3位数据。 DM32 XNUMX、地址译码模块将接收到的OSD数据,如OSD的内容,以XNUMX位数据格式放入FPGA内部FIFO。 控制信息主要用于通过一组控制寄存器来控制OSD。

     
       还有一个视频接口模块直接连接到DSP。 视频接口模块连接到DSP的视频端口2,存储来自DSP视频端口的数据和控制信息。 这些控制信息直接传送到OSD多通道控制模块,控制信息也直接控制视频解码器SAA7105。

     
        OSD控制逻辑将从控制寄存器组得到的控制信息输出给OSD的各个功能模块,实现对OSD的控制。 寄存器组主要分为两部分:一是异步寄存器组,向OSD发送复位、OSD使能、选择数据宽度等控制信息; 另一个是同步寄存器组,主要控制OSD的位置信息。

     
        OSD解码模块根据控制逻辑的控制信息从FIFO中取出待显示的数据,与视频数据同步输出给OSD CLUT模块。 从FIFO中得到的数据是原始DSP 32位数据,而OSD CLUT模块需要的数据是8/16位,所以OSD解包模块需要根据频率对32位数据进行解包视频端口。 32 位数据以 8/16 的宽度传输到 OSD CLUT 模块。
     
        FIFO 模块的另一个功能是将 FIFO 状态信息传送到 DMA 事件发生器模块,例如 FIFO 已满或 FIFO 空。 DMA 事件生成器监视这些事件,如果发生,将它们发送到 DM6? 3 在中断模式下实现对FIFO的正确读写操作。
     
        OSD CLUT模块为从OSD解包模块接收到的每个像素的数据寻找YCbCr对应的值,并控制这些OSD CLUT数据的输出顺序。 这种转换关系由DSP通过24位数据口传输。 OSD CLUT模块的数据直接输出到OSD多通道控制器模块。
     
        OSD多路控制模块根据从OSD CLUT模块接收到的Alpha控制位确定输出视频数据。 如果当前OSD信息,即Alpha控制位有效,则输出OSD数据给数据转换模块。 否则,输出从视频接口模块接收到的原始视频数据,实现OSD功能。
     
        OSD多路控制器输出的数据不是直接送到视频解码器,而是通过数据转换模块,根据具体的应用情况,进行必要的数据格式转换。 从SAA7105的接口时序可以看出,SAA7105配置为复合视频输出时,需要的数据为单时钟沿数据。 此时数据转换模块不做任何工作,从OSD多通道控制模块接收到的数据原封不动地传输。 对于 SAA7105; 如果 SAA7105 配置为 VGA 或 HDTV 输出模式,则需要双时钟沿数据。 此时,数据转换模块将从OSD控制器接收到的单时钟沿数据转换为双时钟沿数据输出给视频解码器SAA7105。
     
        可以看出FPGA已经完成了OSD的所有工作。 如果要显示OSD内容,DM6? 3只需要通过EMFIA口向FPGA发送控制指令即可。 这些指令当然包括OSD的内容和位置信息。
     


    3. OSD 控制
     
        XC3S250E实现的OSD设计根据接收到的OSD位置和内容信息进行OSD显示,对OSD显示的内容没有任何限制,非常灵活方便。 下面以OSD汉字显示为例,说明OSD的控制操作。
     
        要正确显示汉字,必须将输入的汉字内码转换为相应的位置码。 对于这个函数,我们使用了函数Uint32 Code_Converse(unsigned char *CodeNPointer),它的输入是一个指针,指向要转换的汉字。 返回值为汉字对应的位置码。 OSD显示是通过函数OSDHZ?isplay实现的:


      void OSDHZ_ 显示{
    Uint8 *pFrame
    Uint32间距
    OSDUTIL_Point* 位置
    Uint32 代码Q
    OSDHZ?ont *字体
    Uint8 fg颜色
    Uint8 背景颜色
    }
        其中,Uint8 *pFrame为OSD输出的Buffer缓冲区; uint32间距是每行显示的像素值; OSDUTIL_Point *loc 是第一个字符的显示位置; uint32 CodeQ 是显示汉字的区号; OSDHZ?ont * font是用来显示汉字的字体; uint8 fgColor 显示汉字的前景色; Uint8 bgColor 显示汉字的背景色。


        因此,如果需要显示汉字,只需将汉字转换为所需的码制,然后将转换后的区号输出到OSD FPGA。 当然,要显示汉字,汉字库是必不可少的。

     

     

     

     

    列出所有问题

    昵称

    电邮

    有疑问吗?

    我们的其他产品:

    专业调频电台设备包

     



     

    酒店IPTV解决方案

     


      输入电子邮件以获取惊喜

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org ->荷兰语
      sq.fmuser.org ->阿尔巴尼亚人
      ar.fmuser.org ->阿拉伯语
      hy.fmuser.org - >亚美尼亚
      az.fmuser.org ->阿塞拜疆
      eu.fmuser.org ->巴斯克
      be.fmuser.org ->白俄罗斯语
      bg.fmuser.org - >保加利亚
      ca.fmuser.org ->加泰罗尼亚语
      zh-CN.fmuser.org ->中文(简体)
      zh-TW.fmuser.org - >中国(繁体)
      hr.fmuser.org ->克罗地亚语
      cs.fmuser.org ->捷克
      da.fmuser.org ->丹麦语
      nl.fmuser.org - >荷兰
      et.fmuser.org ->爱沙尼亚语
      tl.fmuser.org ->菲律宾
      fi.fmuser.org ->芬兰语
      fr.fmuser.org - >法国
      gl.fmuser.org ->加利西亚语
      ka.fmuser.org ->乔治亚
      de.fmuser.org ->德语
      el.fmuser.org - >希腊
      ht.fmuser.org ->海地克里奥尔语
      iw.fmuser.org ->希伯来语
      hi.fmuser.org ->印地语
      hu.fmuser.org - >匈牙利
      is.fmuser.org ->冰岛语
      id.fmuser.org ->印尼语
      ga.fmuser.org ->爱尔兰
      it.fmuser.org - >意大利
      ja.fmuser.org ->日语
      ko.fmuser.org ->韩文
      lv.fmuser.org ->拉脱维亚
      lt.fmuser.org - >立陶宛
      mk.fmuser.org ->马其顿语
      ms.fmuser.org ->马来语
      mt.fmuser.org ->马耳他语
      no.fmuser.org - >挪威
      fa.fmuser.org ->波斯语
      pl.fmuser.org ->波兰语
      pt.fmuser.org ->葡萄牙语
      ro.fmuser.org - >罗马尼亚
      ru.fmuser.org ->俄语
      sr.fmuser.org ->塞尔维亚语
      sk.fmuser.org ->斯洛伐克
      sl.fmuser.org - >斯洛文尼亚
      es.fmuser.org ->西班牙语
      sw.fmuser.org ->斯瓦希里语
      sv.fmuser.org ->瑞典语
      th.fmuser.org - >泰国
      tr.fmuser.org ->土耳其语
      uk.fmuser.org ->乌克兰语
      ur.fmuser.org ->乌尔都语
      vi.fmuser.org - >越南
      cy.fmuser.org ->威尔士语
      yi.fmuser.org - >意第绪语

       
  •  

    FMUSER更轻松地传输视频和音频!

  • 联系我们

    地址:
    305广州市环浦路273号汇兰大厦510620室

    电子邮箱:
    [电子邮件保护]

    电话/ WhatApps:
    +8618078869184

  • 分类目录

  • 订阅电子邮件

    名字或全名

    邮箱

  • 贝宝的解决方案  西联汇款中国银行
    电子邮箱:[电子邮件保护]   WhatsApp:+8618078869184 Skype:sky198710021 跟我聊天
    版权所有2006-2020技术支持 www.fmuser.org

    联系我们