首页 > 范文大全 > 正文

基于FPGA的网络图像采集处理系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于FPGA的网络图像采集处理系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:介绍一种基于fpga网络图像采集处理系统设计,该系统采用单片FPGA,实现了图像的采集、压缩和网络传输功能,具有体积小,集成度高,算法升级灵活方便的特点。详述了模块的图像采集逻辑、RAM控制逻辑、压缩算法逻辑和网络传输功能的实现方法。测试结果表明,系统运行稳定,性能满足要求。

关键词:FPGA;图像压缩;网络传输; JPEG

中图分类号:TN919-34 文献标识码:A

文章编号:1004-373X(2011)20-0029-04

Design of Network Image Acquisition and Processing System Based on FPGA

WANG Yong-xi1, TONG Li-fei2, TANG Yi-ling2

(1.Department of Automatic Test and Control, Harbin Institute of Technology, Harbin 150001, China; 2. Unit 92941 of PLA, Huludao 458000, China)

Abstract: A design of network image acquisition and processing system based on FPGA is introduced. The system uses a single FPGA to complete the functions of image acquisition, compression and network transmission.It is high integrated, flexible and convenient to upgrade, and even has a small size. The details the logics of image acquisition module, RAM control module and compression algorithm, furthermore the implementation method of network transmission. The results show that the system is stable and meets the requirements.

Keywords: FPGA; image compression; transmission by network; JPEG

0 引 言

随着网络技术的发展,网络化仪器以结构简单,机动灵活,吞吐率高和成本低等优点而越来越受到重视[1],并在军用自动测试装备中得到广泛的应用。随着武器装备图像制导技术的广泛应用,需要对图像质量等进行评价,因此研制基于网络的图像采集处理系统,对提高自动测试装备的综合能力具有重要意义。由于FPGA在流水线并行处理数据上具有强大优势,具有集成度高,体积小,可灵活配置等优点,在图像处理领域得到广泛应用[2-3]。本文介绍一种基于单片FPGA实现图像采集、处理和网络传输的设计方案。

1 总体设计

总体框图如图1所示,系统采用Altera公司推出的Stratix Ⅱ系列EP2S60F484型号FPGA作为图像采集处理和网络传输的核心,视频A/D采用ADV7181B芯片,支持PAL,NTSC和SECAM多种制式视频输入。图像采集处理在FPGA内部实现,主要有3部分,分别为图像采集模块、RAM控制模块和JPEG编码器。Nios Ⅱ处理器作为主处理器,主要是通过I2C模块对ADV7181B进行配置,控制JPEG编码器和实现图像的网络传输功能。

图1 图像采集处理系统结构图

2 主要功能模块设计

2.1 图像采集模块

图像采集模块主要实现图像信号检测和图像裁剪的功能。

CCD摄像头输出的视频信号经过ADV7181B芯片解码,输出符合ITU-R BT.601标准的数据流。┩2所示为ADV7181B输出的行同步信号参数和YCrCb信号时序图。当输出“FF 00 00 XY”时,表示有效图像数据的开始或者结束[4]。其中XY[4]=0表示图像数据开始信号(SAV信号);XY\=1表示图像数据结束信号(EAV信号);XY[6]=0表示奇场信号;XY[6]=1表示偶场信号。通过检测EAV和SAV信号,分奇偶场提取有效的图像数据。

根据输出图像大小的不同要求,需要对图像进行裁剪。构造一个裁剪检测电路,如图3所示。利用像素时钟和水平同步信号、垂直同步信号进行计数,根据图像输出大小要求,设定比较器数值,当行列有效计数的数值在比较器设定的范围之内,检测电路使RAM处于写使能状态,把图像数据存入RAM。系统默认的图像输出大小是720×576像素,如果图像输出大小为512×512像素,那么行有效计数中的比较器数值分别为52和308,提取奇场和偶场中的第53行到第308行数据。同理,列有效计数中比较器分别为16和272。

图2 ADV7181B输出信号和参数时序图

图3 图像裁剪检测电路

2.2 RAM控制模块

RAM控制模块通过乒乓操作对图像数据进行缓存和读取,系统只存取图像的亮度信号,即Y信号。乒乓操作的处理流程如下:在第1场时间,将图像数据缓存到SRAM1;在第2场时间,将图像数据缓存到SRAM2,同时将SRAM1的数据送到JPEG编码器进行图像压缩;在第3场时间,将图像数据缓存到SRAM1,同时将SRAM2的数据送到JPEG编码器进行图像压缩,依此循环[5-6]。将图像数据保存到SRAM时,由视频采集模块的行有效计数器和场有效计数器产生RAM写入地址。

由于图像数据是按照奇偶场先后传输的,为了得到一副完整的图像,需要将奇偶场数据合并。RAM控制模块先将奇场数据写入RAM奇数行中,即奇场第1行存在RAM的第1行,奇场第2行存在RAM的┑3行,依此类推直到奇场288行数据全部存完为止;再将偶场数据写入RAM的偶数行中,即偶场第1行存在RAM的第2行,奇场第2行存在RAM的第4行,依此类推直到偶场288行数据全部存完为止。

2.3 JPEG编码器

JPEG编码器是图像压缩算法实现的核心,JPEG编码器主要有5部分,分别是二维离散余弦变换(2D-DCT)、量化、Z型扫描、游程/预测编码、霍夫曼编码。如图4所示原理框图。输入是图像原始的亮度Y数据,最后经过霍夫曼编码器输出码流。

图4 JPEG编码器原理框图

2.3.1 2D-DCT实现

因此二维DCT变换可以转换为2个一维DCT变换。目前比较常用的变换方法有2种[8]:一种是直接法,通过将8×8图像数组进行多项式转换或者三角分解进行二维变换;或者另一种是间接法,将8×8图像数据先按行进行一维DCT变换,然后再对变换结果按列进行第2次一维DCT变换,进而可以得到二维DCT变换结果。前者需要的乘法器较多,而且实现步骤较繁琐,后者在这两方面上拥有很大的优势,能够形成快速DCT变换,更适合FPGA硬件的实现,因此采用后者方法实现。

目前比较成熟的一维DCT算法主要有Chen算法、Loeffler算法、Lee-Huang算法、ANN算法等,┟恐炙惴ㄋ需要的乘法次数和加法次数各不相同,表1所示为几种常用算法的比较\。根据算法的复杂度和硬件计算速度,本文采用Loeffler算法。