基于NiosII的视频采集与DVI成像

发布者:会哭的蓝精灵最新更新时间:2011-07-21 关键字:图像采集  FPGA  NiosII软核  ITU-RBT.656  DVI 手机看文章 扫描二维码
随时随地手机看文章

    视频采集是进行图像及图形处理的第一步,目前视频采集系统一般由FPGA和DSP组成,FPGA作为视频采集控制芯片,DSP作为图像处理与成像控制芯片[1]。随着FPGA技术的发展,片内的逻辑单元越来越多,片内的DSP资源也越来越丰富,因此可直接在FPGA片内进行图像处理。目前Altera公司的FPGA支持NiosII[2]软核,通过Avalon设备总线挂接自定义模块,编写用户控制程序。本设计通过Avalon总线读取RGB像素值进行像素处理,通过I2C总线初始化视频解码芯片和DVI视频编码芯片。NiosII是一种可配置片内外设的软核CPU,采用RISC精简指令系统,流水线处理技术,用户可自定义Avalon总线外设构成SoC系统,支持32 bit存储宽度,支持DDR2、SSRAM存储器。结合项目,采用TVP5146[3]视频解码芯片,FPGA采集解码数据并进行隔行转逐行、像素裁剪处理、像素YCrCb转RGB、RGB转灰度等处理后,采用NiosII软核配置Avalon总线DVI接口从设备外设,把储存在SSRAM中的视频数据依次送入DVI编码芯片SiI178[4],带有DVI接口的监视器接收解码并显示采集的视频数据。
1 视频采集与DVI成像系统的组成
    视频采集与DVI成像硬件构成如图1所示。该系统由视频解码芯片、FPGA控制芯片、DVI接收编码芯片、SSRAM和Flash组成。硬件系统分为模拟视频信号解码、视频数据采集、图像处理和DVI编码显示3大部分。

    模拟视频信号解码由TVP5146芯片组成,该部分主要完成PAL-D制式模拟视频信号解码,输出符合ITU-RBT656[5]且内嵌同步字符4:2:2格式数据供FPGA采集。TVP5146支持NTSC、PAL、SCEAM、CVBS、S-video制式视频输入,具有RGB转换为YCbCr功能。

    视频数据采集部分由FPGA控制芯片、SSRAM、Flash、电源芯片、辅助外围电路组成。该部分以TVP5146输出像素时钟作为FPGA采集时钟采集解码后的数据,在系统时钟的控制下,交织乒乓存储于SSRAM芯片,并在帧信号控制下交换存储体。FPGA采用Altera公司CycloneII系列EP2C35F672[6]芯片,该芯片具有33 216个逻辑单元,内部RAM高达484 KB,支持NiosII嵌入式处理器,核心电压1.2 V,IO电压3.3 V,具有4个PLL输入,12个PLL输出。Altera的FPGA采用SRAM工艺,掉电就会丢失配置数据,所以外部需要挂接存储配置数据的部件。Altera公司FPGA一般都支持串行被动配置、串行主动配置、JTAG配置,通过跳线选择配置方式,JTAG配置在调试时很方便。串行主动配置一般需要Altera公司的专用配置芯片,在系统上电后主动配置芯片。FPGA配置完成后,NiosII从Flash中读取程序,完成相应的功能。TVP5146采用I2C口配置其工作方式,配置的数据亦存储在Flash芯片中。SSRAM采用CY7C1380D,32 bit数据位宽,2 MB存储空间,3.3 V供电,提供高性能3-1-1-1访问时钟周期速率,最高频率达250 MHz。
    图像处理在FPGA片内实现,进行YCbCr转RGB、RGB转灰度、线性插值等处理,DVI编码显示在DVI接收芯片Si178片内完成,在系统时钟的控制下,依照DVI显示时序,控制行、场同步信号,依次把RGB像素送入编码芯片,完成图像数据的编码和传输。Si178具有25~165 M点像素每秒,24 bit模式,I2C编程接口,支持热插拔,兼容DVI1.0标准,3.3 V供电。[page]

    视频采集是进行图像及图形处理的第一步,目前视频采集系统一般由FPGA和DSP组成,FPGA作为视频采集控制芯片,DSP作为图像处理与成像控制芯片[1]。随着FPGA技术的发展,片内的逻辑单元越来越多,片内的DSP资源也越来越丰富,因此可直接在FPGA片内进行图像处理。目前Altera公司的FPGA支持NiosII[2]软核,通过Avalon设备总线挂接自定义模块,编写用户控制程序。本设计通过Avalon总线读取RGB像素值进行像素处理,通过I2C总线初始化视频解码芯片和DVI视频编码芯片。NiosII是一种可配置片内外设的软核CPU,采用RISC精简指令系统,流水线处理技术,用户可自定义Avalon总线外设构成SoC系统,支持32 bit存储宽度,支持DDR2、SSRAM存储器。结合项目,采用TVP5146[3]视频解码芯片,FPGA采集解码数据并进行隔行转逐行、像素裁剪处理、像素YCrCb转RGB、RGB转灰度等处理后,采用NiosII软核配置Avalon总线DVI接口从设备外设,把储存在SSRAM中的视频数据依次送入DVI编码芯片SiI178[4],带有DVI接口的监视器接收解码并显示采集的视频数据。
1 视频采集与DVI成像系统的组成
    视频采集与DVI成像硬件构成如图1所示。该系统由视频解码芯片、FPGA控制芯片、DVI接收编码芯片、SSRAM和Flash组成。硬件系统分为模拟视频信号解码、视频数据采集、图像处理和DVI编码显示3大部分。

    模拟视频信号解码由TVP5146芯片组成,该部分主要完成PAL-D制式模拟视频信号解码,输出符合ITU-RBT656[5]且内嵌同步字符4:2:2格式数据供FPGA采集。TVP5146支持NTSC、PAL、SCEAM、CVBS、S-video制式视频输入,具有RGB转换为YCbCr功能。

    视频数据采集部分由FPGA控制芯片、SSRAM、Flash、电源芯片、辅助外围电路组成。该部分以TVP5146输出像素时钟作为FPGA采集时钟采集解码后的数据,在系统时钟的控制下,交织乒乓存储于SSRAM芯片,并在帧信号控制下交换存储体。FPGA采用Altera公司CycloneII系列EP2C35F672[6]芯片,该芯片具有33 216个逻辑单元,内部RAM高达484 KB,支持NiosII嵌入式处理器,核心电压1.2 V,IO电压3.3 V,具有4个PLL输入,12个PLL输出。Altera的FPGA采用SRAM工艺,掉电就会丢失配置数据,所以外部需要挂接存储配置数据的部件。Altera公司FPGA一般都支持串行被动配置、串行主动配置、JTAG配置,通过跳线选择配置方式,JTAG配置在调试时很方便。串行主动配置一般需要Altera公司的专用配置芯片,在系统上电后主动配置芯片。FPGA配置完成后,NiosII从Flash中读取程序,完成相应的功能。TVP5146采用I2C口配置其工作方式,配置的数据亦存储在Flash芯片中。SSRAM采用CY7C1380D,32 bit数据位宽,2 MB存储空间,3.3 V供电,提供高性能3-1-1-1访问时钟周期速率,最高频率达250 MHz。
    图像处理在FPGA片内实现,进行YCbCr转RGB、RGB转灰度、线性插值等处理,DVI编码显示在DVI接收芯片Si178片内完成,在系统时钟的控制下,依照DVI显示时序,控制行、场同步信号,依次把RGB像素送入编码芯片,完成图像数据的编码和传输。Si178具有25~165 M点像素每秒,24 bit模式,I2C编程接口,支持热插拔,兼容DVI1.0标准,3.3 V供电。[page]

    Error:错误状态,ITU-RBT656规定Y=[16 235] CBCR=[16 240]范围内,越此范围就为错误状态。如果capture=1,跳转到Wait state状态,否则停留在Error状态。该系统具有自动错误恢复能力。
3.2 图像剪裁处理
    PAL-D制式视频在ITU-RBT.656标准下,输出像素面为720×576大小,而本设计中要求输出大小为640×480像素面,所以必须使得行720像素变为640个,采用每9个像素丢弃1个像素,因为Y/Cb/Cr是交替输出的,即Cb-Y-Cr-Y传输,每个像素都有亮度数据Y,但是色度Cr和Cb是交替的。如果第1个像素是Cb和Y数据,则第8个像素即为Cr和Y数据,第9个像素为Cb和Y数据,现在丢弃第9个像素数据,先把第10个素的Cr数据和第11个像素的Cb交换,这样就保持了Cb和Cr的交替。视频中采取每6行可视像素丢弃1行,对于576行可视像素,实际丢弃96行,即变为实际可显示480行。
3.3 图像交织与存储处理
    视频信号采集控制处理后产生行、场、帧、视频有效标志及每场视频行数、每行像素点数。本设计利用这些信号组合作为存储地址控制字写入SSRAM,每2个DATACLK为1个像素数据,4个DATACLK为2个像素数据32 bit,FPGA控制每4个DATACLK写入一次32 bit数据。
    每场视频可视行为288行,占用2进制位9 bit,奇偶场标志1 bit,每行像素有640个,存入SSRAM时按照每2个像素写入一次,故每行像素为360个写入次,设计为9 bit,总共为19 bit,正好占用完19 bit地址线。
    奇偶场标志就是上述EAV/SAV状态字中的F,电视视频中,首先传输的是偶数场,此时A9=0;其次传输的是奇数场,此时A9=1。帧控制位frame定义为1 bit,当完成一帧的传输后就使frame<=frame+1,这样帧控制位就是0-1-0-1-0-1序列,完成一帧传输就翻转一次。帧控制位用来切换存储体,当帧控制位切换在第一片SSRAM上时,偶数场先存入到SSRAM中,然后奇数场数据嵌入到SSRAM中。
4 图像处理和DVI编码显示
    视频采集的图像已经交替存入SSRAM中,当一帧存储完毕,该存储体就可以进行处理上传。图像处理包括Y/Cb/Cr 4:2:2格式转化为Y/Cb/Cr 4:4:4,Y/Cb/Cr转化为RGB格式,可实时RGB像素处理,像素处理后按照行、场同步信号依次送入DVI芯片。
4.1 YCrCb转RGB处理
    首先处理的是Y/Cb/Cr 4:2:2格式转化为Y/Cb/Cr 4:4:4格式,就是对每个像素扩展其色度数据,使得每个像素为24 bit。其中8 bit为亮度数据,8 bit为Cr数据,8 bit为Cb数据。
    由YCrCb数据转换为RGB数据可按照下式:
  R=1.164×(Y-16)+1.596×(Cr-128)
  G=1.164×(Y-16)-0.813×(Cr-128)-0.392×(Cb-128)(1)
  B=1.164×(Y-16)+2.017×(Cb-128)
    实际上FPGA片内不能进行小数运算,因此把需要运算的数左移9 bit,且运用FPGA片内的乘法器宏单元完成。则式(1)变为式(2):
    R=596×Y+817×Cr-114 131
    G=596×Y-416×Cr-200×Cb+69 370(2)
    B=596×Y+1 033×Cb-141 787
    这样得到的RGB信号只需要右移9 bit就可以得到正确的8 bit数据位宽度的RGB信号,对RGB像素的处理受NiosII核控制,挂接在NiosII核上的Avalon从设备有3 bit控制信号,其值从0~7,分别对应灰度处理、像素水平线性放大插值处理、水平缩小处理、原三彩色输出和无定义。
    若进行灰度处理,则按照下式计算:
    Y=0.299×R+0.587×G+0.114×B(3)
    在计算时也需要先左移9 bit,采用3路乘法MULT_
ADD宏单元计算,计算结果右移9 bit。如果进行水平像素放大,则采取线性插值法,其他图像处理按照相应算法进行。
4.2 视频数据输出和DVI配置
    DVI输出刷新频率为75 Hz,输出屏幕像素为640×480,查VGA时序表得到在640×480@75 Hz时,水平像素总共为840,垂直像素总共为500,行频为37.5 kHz,点时钟频率为31.5 MHz,这个频率由FPGA片内PLL倍频得到。配置DVI芯片引脚,设置IDCK+为像素时钟31.5 MHz,IDCK-接地,DE表示有效像素数据使能,其值在有效行和有效列内为高电平,否则为低电平。行、场同步信号由在FPGA片内编写的DVI模块产生时序控制。通过I2C口配置SiI178芯片,设置其为正常工作方式,VSYNC、HSYNC为正常输入状态,输入总线为24 bit宽,IDCK+下降沿将数据打入DVI编码芯片。
    系统采用FPGA为主控芯片,通过一片FPGA完成视频解码数据的采集和图像处理,并在FPGA片内配置NiosII软核,作为初始化TVP5146和SiI178使用,在图像处理模块中挂接Avalon从设备,YCbCr转换为RGB后可以通过NiosII处理器编写C算法处理或者通过NiosII的标志信号进行处理,处理结果直接送DVI编码器。采用乒乓交织算法,保证了图像不闪烁和无锯齿现象。

 

 

 

 

关键字:图像采集  FPGA  NiosII软核  ITU-RBT.656  DVI 引用地址:基于NiosII的视频采集与DVI成像

上一篇:基于LVDS技术的实时图像测试装置的设计
下一篇:R&S公司中标陕西电视台30kW电视发射系统项目

推荐阅读最新更新时间:2024-03-30 22:16

基于ADSP-TS201S的多DSP并行系统设计
0 引言 在宽带雷达信号处理中,存在诸如回波采样率高、脉冲压缩(匹配滤波)运算量大、处理流程复杂、实时高分辨目标检测困难等一系列问题。针对这些问题,采用通用计算机平台难以应对运算量大和实时性等高要求,因此,需采用专用的数字信号处理器(DSP)来进行高速运算。尽管当前的数字信号处理器已达到较高水平,但单片DSP芯片的处理能力还是不能满足宽带雷达的性能要求,需要引入并行处理技术,在本设计中使用4片DSP芯片组成并行处理系统。另外,为充分发挥 DSP芯片在复杂算法处理上的优势及FPGA在大数据量的底层算法上的优势,设计了一种基于FPGA控制的多DSP并行处理系统。 1 系统设计 基于FPGA控制的多DSP并
[嵌入式]
一种用于FPGA的改进算法弱化了方波重影
DDS(Direct Digital Frequency Synthesis)频率合成器能够很方便地输出任意波形 ,方波作为最常用波形之一,具有其特殊性。但输出的方波存在明显的重影现象直接影响了方波的质量。 1 方波重影出现的原因 假设系统时钟频率为200 MHz,以输出3 MHz方波为例,从模拟示波器观察到的结果如图1所示。     图1中存在明显的双边沿现象,且两条上升沿的间距为5 ns,刚好等于系统时钟的周期。这种现象可称为方波重影。 根据DDS的工作原理可知,相位序列具有周期性 . 在相位序列的一个周期内,相位累加器会溢出若干次,并且每次溢出后的残留量都不一样。当残留量足够大时,再次发生溢出所需的累加次数会减少一次。累加
[电源管理]
一种用于<font color='red'>FPGA</font>的改进算法弱化了方波重影
基于FPGA的机械振动台自动定中系统的设计
   0 引言   在力学环境试验中,振动试验应用最为广泛,尤其是国防科技应用中的火药装填,即通过一定的振级和时间将火药填实,其工作过程为将火药罐体固定于机械振动台上,然后设定相应的振动频率及振动幅度,当到达设定的振动条件后,火药便通过导向槽向罐体内充填。此后,随着时间的增加,振动上火药加罐体的重量随之增加,而机械台台面安装于空气弹簧上,它随着台面上的重量的增加会下降,如果下降超过机械台所能要求的能力,就可能出现事故,因此要求有一套自动定中系统,在机械台静态和振动状态均能自动保持中间位置。    1 总体方案   要满足机械台台面静态和振动状态均能自动保持中间位置,用分立器件判断台面极限位置的方法往往难以适应。解决此问题的方
[嵌入式]
基于<font color='red'>FPGA</font>的机械振动台自动定中系统的设计
FPGA关于2.5D堆叠硅片技术的几个疑问
近日,有68亿个晶体管,200万逻辑单元—世界最大容量、性能最高之FPGA 赛灵思Virtex-7 2000T 开始发货, 这是采用2.5D堆叠互联技术的芯片,有朋友担心这个堆叠技术会影响FPGA的散热、时序和软件开发问题,这里谈谈我的看法: 问题1:这种3D封装技术对ASIC而言,是不错的方法,但对FPGA而言,其缺陷是与生俱来的。首先FPGA的功耗很大,这种封装散热困难; 我的看法: 3D堆叠是使用TSV技术将多颗主动元件垂直堆叠在一起, 即主动和主动堆叠,这样的实现方式存在几个挑战,第一是主动元件的散热问题;第二是在高温状态下, 硅通孔(TSV)所产生的应力影响到周边晶体管的性能 (即周边和其它晶体管
[嵌入式]
“一刀切”时代结束 芯片设计有“芯”思路
  半导体制程工艺这一话题,可以说是久说不腻,世界领先的半导体厂商在这方面的争夺也是前赴后继,这种你争我夺,你来创新我来颠覆的局面对于CPU,  FPGA 和ASIC 芯片 来说,就犹如“红牛”一般,是这些 芯片 历久弥新,狂奔向前的主要驱动力。下面就随嵌入式小编一起来了解一下相关内容吧。   然而世事无绝对,现在很多应用的发展程度和性能与工艺制程的关联度越来越低,已经很难称之为主要驱动力了。   应用对于 芯片 制程的需求化程度见证了硬件的发展历程,背后折射出的是硬件从通用硬件采用定制化软件,到以较少的硬件能耗加之专门化的差异化硬件实现的特有的功能和极致性能,这一曲折而又繁复的发展过程。   在过去的十年里,这十年几乎等同于智
[嵌入式]
基于AVR单片机与FPGA的低频数字式相位测量仪
摘要:提出了以AVR ATmega128单片机和Altera公司的Cyclone系列EP1C3T100为核心的系统设计方案。分析了数字式低频相位测量仪的测量原理和测量误差及其消除的方法。利用单片机强劲的运算、控制功能和FPGA运算速度快、资源丰富的特点。主要介绍了系统的软硬件设计。实践表明,此方案设计的相位仪对低频正弦波信号实现精确测频和测相位差,具有处理速度快、稳定可靠、精度高等优点。 关键词:数字相位仪;单片机;FPGA;误差;频率;相位差 在工业领域中经常要用到低频数字式相位仪来精确测量两信号之问的相位差,比如在电力系统、频率特性的研究、激光测距等领域均有广泛的应用,相位检测的精度直接决定系统的整体性能。这就要求测量仪
[嵌入式]
基于AVR单片机与<font color='red'>FPGA</font>的低频数字式相位测量仪
莱迪思新一代低功率FPGA,助力实现“永远在线”
近年来,FPGA以其成本低、开发周期短、灵活性强的优势崭露头角并逐渐占领了部分以往ASIC胜任的领域。FPGA在通信、汽车电子、工业控制领域的应用上都取得了不俗的成绩,然而随着移动便携时代的到来,FPGA能否在以便携产品为主体的消费电子领域占到一席之地呢?对于这个问题,莱迪思半导体公司给出了肯定的答案。 2013年10月22日 莱迪思半导体公司(NASDAQ: LSCC)宣布推出针对移动设备的新的超低密度iCE40™ FPGA,即子系列iCE40LM,用于提供完整的传感器管理解决方案,旨在实现“永远在线”和“环境感知”应用。它能否在多变的消费电子领域大显身手呢?现在就让小编来带您解读它吧。 发布会现场 小巧
[嵌入式]
基于FPGA的高速可变周期脉冲发生器的设计
  1 引 言   要求改变脉冲周期和输出脉冲个数的脉冲输出电路模块在许多工业领域都有运用。采用数字器件设计周期和输出个数可调节的脉冲发生模块是方便可行的。为了使之具有高速、灵活的优点,本文采用Atelra公司的可编程芯片FPGA设计了一款周期和输出个数可变的脉冲发生器。经过板级调试获得良好的运行效果。   2 总体设计思路   脉冲的周期由高电平持续时间与低电平持续时间共同构成,为了改变周期,采用两个计数器来分别控制高电平持续时间和低电平持续时间。计数器采用可并行加载初始值的N位减法计数器。设定:当要求的高电平时间以初始值加载到第一个减法器中后,减法器开始减计数,计数到零时自动停止,同时启动第二个记录低电平持续时
[测试测量]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved