图1 使用Altera VIP套件实现系统示意图FPGA构架与算法实现Cyclone II FPGA的构架非常适合于实时视频图像处理,其特点如下:* 全并行逻辑构架:实现逻辑和算术功能;* 丰富的硬件乘法器:实现高速实时计算;* 丰富的内嵌RAM资源:用于存取部分(或几行)帧信号;* 高速外部RAM接口:用于存取整帧信号;* 高速收发通道,支持LVDS,Mini-LVDS,RSDS电平:实现高速视频传送;* 内嵌锁相环:作灵活时钟管理,产生各种频率和相位的时钟信号;此外,用逻辑单元或内嵌RAM块也可以灵活实现移位寄存器和乘法功能。而且,在Cyclone II FPGA内部,2N7002可以实现一个或多个软处理器Nios II,用户可以根据自己的需求灵活定制Nios II及其外设。Nios II可以辅助高速视频通道作一些复杂的管理工作。这样,FPGA就兼有了硬件和软件(Nios II)的现场可编程能力。前面已经提到过,在FPGA内部,同一种算法可以由不同的资源来实现。当然,不同的实现方法具有不同的性能,用户可以根据FPGA的实际资源和性能要求灵活选择。色彩空间转换是视频处理中的常用功能,这里将举例说明如何使用FPGA的内部资源来实现这一算法。如何使用FPGA的内部资源来实现这一算法。 TV解码芯片将模拟电视信号转换成数字的Y?CrCb信号,74HC04其中Y?表示亮度,Cr和Cb两个信号表示色彩。在计算机系统中,常用R?G?B?来表示视频,R?G?B?是经过Gamma校正的RGB信号,取值范围是0~255。Y?CrCb信号不能直接用在计算机系统中,因此,需要将视频信号由Y?CrCb空间转换到R?G?B?空间。将ITU-R BT.601标准的Y?CrCb信号转换为R?G?B?信号的常用公式如下:R?= 1.164(Y?-16) + 1.596(Cr -128) G? = 1.164(Y?-16) -0.813(Cr -128)- 0.391(Cb -128) B?= 1.164(Y? -16) + 2.018(Cb -128)这里的R?G?B?和Y?CrCb都为8比特信号。要实现上式中的乘法运算,有3种方法,如表2所示。由此可见,FPGA是一个资源平台,用户可以根据自己的性能需求、器件资源分布情况,灵活决定实现方法。参考设计、IP核与解决方案Altera在提供可编程 器件的同时,TL431也为用户构建自己的系统提供了丰富的IP模块。这样,用户不用去再花时间从头开发那些成熟模块,而可以将主要精力放在有自己特色的技术创新上,以及保证整个系统可以正确的协同工作。在视频和图像处理领域,Altera开发了一组IP核,称之为VIP (VIDEO Image Proce ssing)套件。该IP套件包括常用的9个IP核,如表3所示。用户可以使用这些IP构建出类似如图1所示的系统。Avalon控制接口是一种片内系统全交叉总线结构。Nios II处理器可以作为一个智能管理单元,93C46对Gamma校正和画中画图像混合模块进行动态参数配置。图1中只表示了一路视频处理功能,用户也可以根据自己的需要放置多路,共享Nios II和外部存储器。关于视频数据的传送,Altera为用户开发了ASI/SDI、IP承载视频的IP核与参考设计。在图像视频压缩与解压缩领域,Altera与多家方案提供商合作,推出了H.264、MPEG-4和JEPG2000的完整解决方案。另外,Cyclone II FPGA的高速LVDS接口,可以非常方便地应用于显示控制和驱动上,支持高速7:1的串/并变换功能。
图2 典型的视频处理系统设计工具与设计流程一个典型的包含视频处理模块的硬件系统框图如图2所示。在这个系统中,包括Nios II,一个硬件视频协处理器、片内RAM、DMA和其它外设。与通信类应用不同的是,在设计视频图像处理功能模块时,用户将面临两大难题:第一是设计效率问题;第二是验证效率问题。通常,首先需要进行算法验证,然后将算法尽快转换为HDL的RTL级描述,接着实现在FPGA硅片上,做原型验证。实际上,从算法到硅片实现有很大的鸿沟,如何提高系统开发效率,使产品尽快上市,ULN2003A是系统设计商所面临的一个巨大挑战。另外,视频图像处理的性能需要人眼去检查,传统的RTL级仿真可视性不强,很难去检查实现效果。为了应对这些挑战,Altera公司与MathWorks联合推出了Matlab/SimuLink + DSP Builder的设计工具和流程。SimuLink是MathWorks公司开发的基于模块的设计仿真工具。DSP Builder是Altera公司开发的一个在SimuLink和Quartus II FPGA实现工具之间的桥梁,它可以通过SimuLink中验证过的设计产生出VHDL代码,从后台调用Quartus II工具完成FPGA的实现,同时集成了硬件在环(HARDWARE In Loop)和Signal Tap调试工具。DSP Builder是以SimuLink中的一组库的形式存在的。在视频图像设计中,基于SimuLink/DSP Builder的模块化设计环境,可以迅速构建系统,同时进行高效验证。当算法在SimuLink中实现并验证完成以后,LM324N就可以把该设计模块集成到FPGA系统中去。这时,可以使用Altera公司的系统集成工具SOPC Builder。在SOPC Builder中完成系统集成之后,就可以在Quartus II中按照传统的FPGA设计流程完成后续的综合、布局与布线等工作。LM339与此同时,如果系统中有Nios II处理器,用户可以使用Altera的Nios II IDE(集成开发环境)来开发嵌入式软件。最后,将Quartus II的实现结果(FPGA比特文件)与IDE中开发的软件可执行文件(*.elf)结合在一起进行系统原型验证。开发工具和流程如图3所示。
图3 视频图像
处理系统开发工具和流程以图2中的系统为例,其中的视频处理模块(协处理器)可以用SimuLink/DSP Builder来设计和验证,OP07CP设计输入可以是IP核、HDL或C语言。然后可以使用SOPC Builder来集成系统中的所有硬件单元,包括Nios II处理器和SimuLink/DSP Builder中产生出来的视频处理模块。 结语本文力图对低成本FPGA在视频图像处理领域的应用作一个全面、清晰的介绍。用户可以充分利用FPGA的构架优势、丰富的设计资源,以及先进的设计方法学,以最快的上市时间,设计出高性能、低成本的系统,同时保留系统的可升级性。
电子工程专辑论坛有奖活动开幕,展示你的智慧,赢得心怡大奖。
查看详情 排行榜
工程师是吃年轻饭的吗?
干一行爱一行还是爱一行干一行?
外企是不是比国企更适合职业发展?
热点话题
全新推出管理资源库,汇聚丰富管理知识
成功的人就是会“勉强”别人的人
案例:被老板出卖的尴尬事
每周一问
鱼与熊掌不可兼得,什么是布里丹选择?
博客文章
王石和万科错在哪里
(来源:世界经理人)