DESIGN AND DEVELOPMENT OF CAMERA INTERFACE CONTROLLER WITH VIDEO PRE- PROCESSING MODULES ON FPGA FOR MAVS

Similar documents
Journal of Engineering Science and Technology Review 9 (5) (2016) Research Article. L. Pyrgas, A. Kalantzopoulos* and E. Zigouris.

Open Source Digital Camera on Field Programmable Gate Arrays

Digital Systems Design

Terasic TRDB_D5M Digital Camera Package TRDB_D5M. 5 Mega Pixel Digital Camera Development Kit

Open Source Digital Camera on Field Programmable Gate Arrays

FPGA Based Formation Control of Multiple Ubiquitous Indoor Robots

Course Outcome of M.Tech (VLSI Design)

TRDB_DC2 TRDB_DC2. 1.3Mega Pixel Digital Camera Development Kit

FPGA-based Digital Signal Processing Trainer

Colour Recognizing Robot Arm Equipped with a CMOS Camera and an FPGA

Design and Characterization of ECC IP core using Improved Hamming Code

Cyclone II Filtering Lab

Imaging serial interface ROM

Digital Systems Design

Mixed Signal Virtual Components COLINE, a case study

FPGA based Real-time Automatic Number Plate Recognition System for Modern License Plates in Sri Lanka

Stratix Filtering Reference Design

CMOS MT9D111Camera Module 1/3.2-Inch 2-Megapixel Module Datasheet

VGA CMOS Image Sensor BF3905CS

CMOS MT9V034 Camera Module 1/3-Inch 0.36MP Monochrome Module Datasheet

CHAPTER III THE FPGA IMPLEMENTATION OF PULSE WIDTH MODULATION

Design of Multiplier Less 32 Tap FIR Filter using VHDL

FPGA Implementation of Digital Modulation Techniques BPSK and QPSK using HDL Verilog

Wave Pipelined Circuit with Self Tuning for Clock Skew and Clock Period Using BIST Approach

VGA CMOS Image Sensor

EC 1354-Principles of VLSI Design

Stratix II Filtering Lab

Lecture 3, Handouts Page 1. Introduction. EECE 353: Digital Systems Design Lecture 3: Digital Design Flows, Simulation Techniques.

Australian Journal of Basic and Applied Sciences

FPGA Based Intruder Detection System Using CMOS Sensor

VLSI Implementation of Image Processing Algorithms on FPGA

PE713 FPGA Based System Design

Part Number SuperPix TM image sensor is one of SuperPix TM 2 Mega Digital image sensor series products. These series sensors have the same maximum ima

LINCE5M 5.2 MEGAPIXELS, 1 INCH, 250FPS, GLOBAL SHUTTER CMOS IMAGE SENSOR. anafocus.com

Design and Implementation of Universal Serial Bus Transceiver with Verilog

ICM532A CIF CMOS image sensor with USB output. Data Sheet

Aerial Photographic System Using an Unmanned Aerial Vehicle

Signal Processing and Display of LFMCW Radar on a Chip

CHAPTER 4 GALS ARCHITECTURE

ISSN: ISO 9001:2008 Certified International Journal of Engineering and Innovative Technology (IJEIT) Volume 4, Issue 11, May 2015

Implementation of a Streaming Camera using an FPGA and CMOS Image Sensor. Daniel Crispell Brown University

A new Photon Counting Detector: Intensified CMOS- APS

Doc: page 1 of 6

UG0640 User Guide Bayer Interpolation

A new Photon Counting Detector: Intensified CMOS- APS

Final Report. Project Title: E-Scope Team Name: Awesome

Intel MAX 10 Analog to Digital Converter User Guide

VLSI IMPLEMENTATION OF MODIFIED DISTRIBUTED ARITHMETIC BASED LOW POWER AND HIGH PERFORMANCE DIGITAL FIR FILTER Dr. S.Satheeskumaran 1 K.

VGA CMOS Image Sensor BF3005CS

ISSN: [Pandey * et al., 6(9): September, 2017] Impact Factor: 4.116

A FPGA Implementation of Power Efficient Encoding Schemes for NoC with Error Detection

A 3 Mpixel ROIC with 10 m Pixel Pitch and 120 Hz Frame Rate Digital Output

The Architecture of the BTeV Pixel Readout Chip

Mehmet SÖNMEZ and Ayhan AKBAL* Electrical-Electronic Engineering, Firat University, Elazig, Turkey. Accepted 17 August, 2012

CMOS MT9D112 Camera Module 1/4-Inch 3-Megapixel Module Datasheet

International Journal of Advanced Research in Computer Science and Software Engineering

Data Sheet SMX-160 Series USB2.0 Cameras

Design and Implementation of FPGA Based Digital Base Band Processor for RFID Reader

Fully Integrated FPGA-based configurable Motor Control

A 1.3 Megapixel CMOS Imager Designed for Digital Still Cameras

High Performance Imaging Using Large Camera Arrays

LLRF4 Evaluation Board

ECE 241 Digital Systems. Basic Information

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering

Undefined Obstacle Avoidance and Path Planning

FPGA-Based Autonomous Obstacle Avoidance Robot.

Intel MAX 10 Analog to Digital Converter User Guide

MM5452/MM5453 Liquid Crystal Display Drivers

Synthesis of Blind Adaptive Beamformer using NCMA for Smart Antenna

Game Console Design. Final Presentation. Daniel Laws Comp 499 Capstone Project Dec. 11, 2009

NTSC/PAL CMOS Image Sensor. BF3009CL Datasheet

Panasonic Image Sensor Bridge

WHAT ARE FIELD PROGRAMMABLE. Audible plays called at the line of scrimmage? Signaling for a squeeze bunt in the ninth inning?

LOW-POWER SOFTWARE-DEFINED RADIO DESIGN USING FPGAS

INTRODUCTION. In the industrial applications, many three-phase loads require a. supply of Variable Voltage Variable Frequency (VVVF) using fast and

Single Chip FPGA Based Realization of Arbitrary Waveform Generator using Rademacher and Walsh Functions

Page 1/10 Digilent Analog Discovery (DAD) Tutorial 6-Aug-15. Figure 2: DAD pin configuration

International Journal of Applied Sciences, Engineering and Management ISSN , Vol. 06, No. 02, March 2017, pp

UXGA CMOS Image Sensor

Agilent HDCS-1020, HDCS-2020 CMOS Image Sensors Data Sheet

Design of Adaptive RFID Reader based on DDS and RC522 Li Yang, Dong Zhi-Hong, Cong Dong-Sheng

UNIT-II LOW POWER VLSI DESIGN APPROACHES

Design of Xilinx Based Telemetry System Using Verilog

Unit level 4 Credit value 15. Introduction. Learning Outcomes

Field Programmable Gate Array Implementation and Testing of a Minimum-phase Finite Impulse Response Filter

MM5452 MM5453 Liquid Crystal Display Drivers

Design and Implementation of AT Mega 328 microcontroller based firing control for a tri-phase thyristor control rectifier

I hope you have completed Part 2 of the Experiment and is ready for Part 3.

Modernised GNSS Receiver and Design Methodology

A HIGH PERFORMANCE HARDWARE ARCHITECTURE FOR HALF-PIXEL ACCURATE H.264 MOTION ESTIMATION

Implementing Logic with the Embedded Array

Figures from Embedded System Design: A Unified Hardware/Software Introduction, Frank Vahid and Tony Givargis, New York, John Wiley, 2002

VLSI Implementation of Impulse Noise Suppression in Images

International Journal of Advance Engineering and Research Development

Firmware development and testing of the ATLAS IBL Read-Out Driver card

EE19D Digital Electronics. Lecture 1: General Introduction

FPGA Based System Design

FPGA Implementation of Wallace Tree Multiplier using CSLA / CLA

MAR2100 MARADIN MEMS DRIVE AND CONTROL

EE307. Frogger. Project #2. Zach Miller & John Tooker. Lab Work: 11/11/ /23/2008 Report: 11/25/2008

Transcription:

DESIGN AND DEVELOPMENT OF CAMERA INTERFACE CONTROLLER WITH VIDEO PRE- PROCESSING MODULES ON FPGA FOR MAVS O. Ranganathan 1, *Abdul Imran Rasheed 2 1- M.Sc [Engg.] student, 2-Assistant Professor Department of Electronics and Electrical Engineering M. S. Ramaiah School of Advanced Studies, Bangalore-58. *imran@msrsas.org Abstract Over the past few years the idea of micro sized aerial vehicles shortly known as Micro Air Vehicles (MAVs) has gained mounting interest. These MAVs while flying acquire terrain images through their on board cameras and transmit the images for interpretation to base station. The onboard cameras acquire images and these images are processed and results are used for locating the next position and also the velocity with which the MAV should reach to its next position. The flying direction and speed of the MAV depends on the speed with which the images are acquired and processed. The time taken to acquire image is limited by camera frame speed, the processor speed and capability, which is observed to be greater than 30 ms from the literature. Hence the acquisition of real-time images in MAVs plays a major role in its overall functionality and performance which necessitates the dedicated camera interface module with high processing speed. The current paper deals with the design of a new camera interface controller that has high processing speed. The first focus of the design is on developing the input interface controller module for interfacing CMOS sensor with FPGA module for converting the raw data into RGB pixel information and the output interface controller. The second focus is to synchronize all the modules of the design for proper streaming of video. A 5 MP CMOS sensor having a resolution of 2592 column by 1944 row with the frame rate of 15 fps is chosen. The captured information from the sensor is then converted into RGB pattern and processed for streaming in VGA display. The controller is synthesized using Altera Quartus II v 12.0 and implemented on Cyclone IV E FPGA board from Altera. The synthesis of the design reports, the total number of logic elements utilized by the design as 1739 with 1062 logic registers, total number of pins configured with I/Os of the design as 455 with 44752 memory bits and one PLL circuitry utilization. The power analysis reports the total power dissipation of the design as 328.29 mw. The total acquisition time of the image from the sensor to the display is 28 ms which is less than 30 ms that makes this controller suitable for MAV applications. Further low power ASIC synthesis and implementation of the controller can be opted as a consideration for high power consumption and payload implications on MAVs Key Words: CMOS sensor interface, Camera interface controller, MAV, Camera interface with FPGA 9

Nomenclature fps Frames Per Second Hz Hertz mw Milli Watt ms Milli Second Abbreviations ADC - Analog to Digital Converter ASIC - Application Specific Integrated Circuit CMOS - Complementary Metal Oxide Semiconductor FPGA - Field Programmable Gate Array HDL - Hardware Description Language HSMC - High Speed Mezzanine Card LCD - Liquid Crystal Display MAV - Micro-Air Vehicle PLL - Phase Locked Loop RAM - Random Access Memory RAW - Raw Image Data RGB - Red, Green and Blue RTL - Register Transfer Logic TFT - Thin Film Transistor 1. INTRODUCTION Over the past few years the idea of micro sized aerial vehicles shortly known as Micro Air Vehicles (MAVs) has gained mounting interest. The primary loads of these MAVs (~15 centimeters or 6 inches wingspan) are miniature image sensors [1]. These MAVs are used in acquiring real-time visual information with its image sensor for wide range of applications like reconnaissance and surveillance, targeting, tagging and bio-chemical sensing. The MAVs while flying acquire terrain images through their on board cameras and transmit the images for interpretation to base station. Most of the MAVs have vision based navigation system. The onboard cameras acquire images and these images are processed as per a particular algorithm and results are used for locating the next position and also the velocity with which the MAV should reach to its next position. The flying direction and speed of the MAV depends on the speed with which the images are acquired and processed. Hence the acquisition of real-time images in MAVs plays a major role in its overall functionality and performance. The time taken to acquire image is limited by camera frame speed and the processing of images depend on processor capability and operating speed. At present the processors which are being used for such application take more than a second to acquire and process the data thus limiting the flying speed of MAV. Normally MAVs fly at 10-12m/s and for stable flying of MAVs at such a speed, the images are required to be acquired in less than 30ms. Hence it is necessary to develop fast processors, if not algorithms have to be parallelized and executed. Any development in FPGA technology or ASIC technology has its own merits and demerits which impose great challenges to design engineers. Prototyping of the controller is made in the FPGA board. Fig. 1 Basic flow of camera interface with FPGA The camera has to be interfaced with the FPGA board for which the camera interface module has to be developed as shown in Figure 1. With the help of camera interface module the camera is interfaced with the FPGA board for data capturing and streaming it in the display unit. Three major functions of the camera interface controller are capturing of information from the camera, storing the pixel information in the RAM of FPGA and streaming them to the output. Most of the application that requires camera interface needs additional circuitry to interface the camera with FPGA [3]. Video pre-processing blocks like colour space conversion, scaling and smoothing provides high pixel processing rate, high performance in low cost FPGA and high throughput. Synchronization issues in streaming the video limits the frame rate of video [2]. Any camera interface controller designed for the particular application is based on the speed of the camera. For example interface controllers, which are designed for 2 Mbps speed camera, do not function with 4 Mbps camera [3]. Hence a separate interface controller has to be developed matching the device and camera speed. This necessitates the need of generalized controller for the camera interface with the hardware. Further there are no video pre-processing is made during the streaming of video that obviously helps in high pixel processing rate, high performance in low cost FPGA and high throughput [4]. This paper deals mainly with the design of a new camera interface controller which can able to acquire the real-time images and stream the video to the display. 2. PROBLEM DEFINITION Existing controllers have higher video acquisition time and are not generic. In this paper, a controller has been designed with faster data acquisition speed which is generic to the cameras but specific to the FPGA board and the interface port. 3. METHODOLOGY Identification of suitable pre-processing blocks for FPGA implementation is done based on the literature survey. The complete blocks that makeup the controller functionality and meeting the requirements have been designed. RTL codes are developed using Verilog HDL for the blocks of camera interface controller module along with preprocessing modules. The functionality of the developed RTL is verified using Verilog based testbenches. The design is synthesized using Altera Quartus II tool to check for compatibility with hardware, simulated and synthesized RTL code is implemented on Cyclone IV E FPGA. 4. DESIGN AND IMPLEMENTATION Development of camera interface module with the FPGA board is done using the HSMC port [5] available in the FPGA board. The display unit is also interfaced to the FPGA to display the real-time video captured using the camera that is interfaced with the FPGA board. 10

Fig. 2 Blocks of camera interface controller Figure 2 shows the proposed block diagram for the camera interface with the FPGA. The design has two interface controllers. First is the input interface controller where the camera is interfaced with the HSMC port of the FPGA and the second is the output interface controller where the LCD screen is interfaced with the FPGA. 4.1 HDL Modeling of Input Interface Controller The input interface controller is the main block which interacts with the camera module. The input interface controller module with all its input and output signals communicating with other modules of the design is shown in Figure 3. It communicates with the camera module from which it captures the real-time video using TRDB_D5M CMOS sensor [6] [7] and other modules as in Figure 3. Signals PIXLCLK of 96 MHz and Reset are from the synchronization circuit. with the corresponding the X and Y coordinates of the pixel. All the signals data_valid, X, Y and the 12 bit data from the input interface controller are sent to RAW to RGB converter. 4.2 HDL Modeling of RAW to RGB Converter Verilog HDL modeling of RAW to RGB conversion [8] [9] involves two steps. First the input data coming from the input interface controller is passed on to a line buffer which performs the operation of shifting. The input data is buffered and shifted out along with one more signal of required format called Tap_signal. Signals are tapped in required format for conversion which produces two tap signals each of which is 12 bit and together a 24 bit tap signal. These tap signals are named wdata0 and wdata1. These signals are used in converting the RAW to RGB format in the second step. The conversion taking place depends on the X and Y values coming from the input interface controller as in Figure 4. Fig. 4 RAW to RGB converter After conversion this module produces three output signals called Red, Blue and Green each of which is 12 bit which is again given to the shift registers. They are then shifted to a control unit where 12 bit of RGB gets encoded into two data signals each of 16 bit before sending it to the display module. 4.3 HDL Modeling of Seven Segment Display In seven segment display, appropriate combination of segments is used to represent decimal numerals. For a decimal numeral to be displayed its corresponding segments gets asserted and it gets displayed. Fig. 3 Input interface controller The camera module outputs frame_valid and line_valid are used to represent the valid data coming out of the camera module. The input interface controller reads the 12 bit data from the camera module only when both frame_valid and line_valid are high. A counter is designed as the part of the input interface controller and counts the number of frames read per PIXCLK and outputs as 32 bit hexadecimal signal named Frame_Count to the 7 segment display module. The counter designed for counting the frame rate uses the Start and End signals coming from the control logic designed. In correspondence with the frame_valid and line_valid signals from the camera module, the input interface controller produces data_valid signal as the output Fig. 5 Seven segment display module For displaying the decimal numeral 1, segments b and c are made high and the corresponding signal will be of 7 bit 0000110 (gfedcba). This logic is used for modelling the seven segment display module. 11

4.4 HDL Modeling of Output Interface Controller The output of the RAW to RGB conversion is taken to the control logic block where the 12 bit data of R, G and B values are encoded into two datas of 16 bit, Data1 and Data2. This is done so in order to synchronize the data between the modules. 5. SIMULATION RESULTS 5.1 Simulation of Input Interface Controller Fig. 6 Output interface controller for TFT LCD display The display works at 40 MHz frequency and hence 40 MHz clock from the PLL module is given as the clock input to the output interface controller. The Data1 and Data2 are the inputs to the output interface controller module which then synchronize the data producing 8 bits of R, G and B values which is given to the display. The RGB values are configured to the FPGA according to the corresponding pin descriptions of the HSMC port for LCD display. Fig. 8 Input data read-out by input interface controller The camera module outputs frame_valid and line_valid are used to represent the valid data coming out of the camera module which are the input signals of the input interface controller. The input interface controller reads the 12 bit data from the camera module only when both frame_valid and line_valid are high as shown in Figure 8. At 200ps considering some junk data is present. The signals frame_valid and line_valid indicates whether the available data is valid or not. So the data available at this time period is not being read by the input interface controller. At the period of 500 ps both frame_valid and line_valid are high and hence the data is read at the output signal odata. Again when the line_valid goes low at 700 ps the data is invalid and so the odata reaches its initial state. This explains the input data readout conditions. 5.2 Simulation of RAW to RGB Converter Fig. 7 LCD timing and line timing parameters [11] Figure 7 shows the frame timing and line timing parameters required for modelling LCD interface controller. Horizontal back porch is the number of pixel clock cycles to be inserted at beginning of each line/row of pixels. Horizontal front porch is the number of pixel clock cycles to be inserted at end of each line/row of pixels. Vertical back porch is the number of pixel clock cycles to be inserted at beginning of each frame/column of pixels. Vertical front porch is the number of pixel clock cycles to be inserted at end of each frame/column of pixels. The front porch, back porch and LCD rows and columns are parameterized according to the LCD specification in the HDL model in designing the LCD controller. According to the frame and line timing the controller produces the valid display at the LCD. Fig. 9 Generated RGB values from input data Figure 9 shows the simulation result of RAW to RGB conversion module. As shown in Figure 9, 12 bit RGB datas are generated from the input pixel information. 5.3 Simulation of Seven Segment Display Fig. 10 Output of seven segment display 12

The design of seven segment display outputs the data in active low format. When the signal is low the segment of the display glows. In Figure 10 first input is 0000000C which has its corresponding output as 1000110 in the first segment. Remaining segment displays the value 0. 5.4 Simulation of LCD Display Module Fig. 11 Simulation result of LCD module Figure 11 shows that for the input data of READ_DATA1, READ_DATA2 and the synchronizing clock signal the corresponding R, G and B component that need to be displayed on the LCD are generated. 6. RESULTS AND DISCUSSIONS 6.1 Synthesis Report The synthesis of the design is made using Quartus II v 12.0 and the reports are given in Table 1. Table 1. Synthesis summary Resources Usage Estimated Total Logic Elements 1739 Total Combinational Functions 1356 Logic elements usage by number of LUT inputs 4 input functions 3 input functions <= 2 input functions Logic elements by mode Normal mode Arithmetic mode Total Registers Dedicated logic registers I/O registers 591 285 480 1010 346 1062 0 I/O Pins 455 Total Memory Bits 44752 Total PLLs 1 Maximum Fan-out 681 Total Fan-out 10003 Average Fan-out 2.85 6.2 Power Analysis Report Table 2. Power play power analyzer results Total Thermal Power Dissipation Core Dynamic Thermal Power Dissipation Core Static Thermal Power Dissipation I/O Thermal Power Dissipation 328.29 mw 43.30 mw 102.39 mw 182.60 W As per the power analysis report shown in Table 2 the total thermal power dissipation is 328.29 mw which constitutes 43.3 mw of dynamic thermal power dissipation, 102.39 mw of static thermal power dissipation and 182.6 mw of I/O thermal power dissipation. 6.3 FPGA Implementation The bit file is generated and configured to the target device. Once the board is configured the sensor starts capturing the real time video and displays it the LCD module interfaced with the FPGA board. Fig. 12 LCD display output of camera interface controller USB Blaster is used to program the FPGA board with the generated bit file. Once the board is configured, the sensor captures the real-time video and displays it in the LCD module. Fig. 13 Seven segment display output Figure 13 shows the frame count values in the seven segment display of the Cyclone IV E FPGA board. 13

Fig. 14 VGA display output The video streaming is made in VGA display also. The controller generates the HSYNCH, VSYNCH and corresponding RGB signals required for the VGA display. Table 3 indicates the time taken by individual module for processing the data. Input interface module takes around 6.8 ms for capturing the data from the camera according to frame_valid and line_valid signals and to process the information of X count and Y count. The data from the input interface controller is then converted into RGB format which takes around 12.6 ms and the output interface controller takes 6.2 ms for processing of data suitable for display. Other resources all together constitutes to a period of around 2.4 ms. Table 3. Processing period by modules Modules Time Taken to Process the Data (ms) Input Interface Controller 6.8 Colour Space Conversion 12.6 Output Interface Controller 6.2 Other Resources 2.4 Total time taken for capturing the image from the sensor to the display is 28ms. 7. CONCLUSIONS A 5 MP CMOS sensor having a resolution of 2592 column by 1944 row is chosen providing 12 bit pixel output. The obtained 12 bit pixel data is read by the input interface controller; the raw data is then converted to RGB format and given to LCD and VGA displays with proper synchronization. Synthesis of the designed controller reports, the total number of logic elements utilized by the design as 1739 with 1062 logic registers, total number of pins configured with I/Os of the design as 455 with 44752 memory bits and one PLL circuitry utilization. The power analysis shows that, I/Os contribute mostly to the total power dissipation of the design by contributing 147.48 mw in 328.29 mw. The designed controller acquires the image with the speed of less than 30 ms (28 ms) with the frame rate of 10 fps which overcome the limitation of lower acquiring speeds (>=30 ms) reported in the literature. 8. REFERENCES [1] Spoerry T. and Wong K. C. (2006), Design And Development Of A Micro Air Vehicle (Μav) Concept: Project Bidule, School of Aerospace, Mechanical and Mechatronic Engineering, University of Sydney [2] Daniel Crispell (2009), Implementation of a Streaming Camera Using an FPGA and CMOS Image Sensor, Brown University [3] Sanjay Singh et. Al. (2012), Real-Time Video Acquisition and PTZ Camera Movement Control for FPGA based Automated Video Surveillance System, International Journal of Research and Reviews in Computer Science (IJRRCS), Vol. 3, No. 2, ISSN: 2079-2557 [4] Sheng Peng (2005) Camera Interface Discussion LCLS Control Group [5] Altera (2009) High Speed Mezzanine Card, Retrieved December 30, 2012 from <www.altera.com> [6] Terasic (2010) TRDB_D5M 5 Mega Pixel Digital Camera Development Kit, Terasic Help Centre [7] Terasic (n.d.) Terasic D5M Hardware Specification, Terasic Help Centre [8] Adrian Ford and Alan Roberts (1998) Colour Space Conversion Retrieved December 1, 2012 from < www.poynton.com/> [9] Guillermo Luijk (2008) Zero Noise Virtual RAW Retrieved December 30, 2012 from http://www.guillermoluijk.com/article/virtualraw/inde x_en.htm [10] Enciris Technologies (2008), PP-01 Video Pre- Processing IP [Online] available from < www.enciris.com> [Accessed December 16, 2012] [11] Ampere Ltd. (2009) Specifications for LCD Module, Retrieved December 30, 2012 from < http://www.ampire.com.tw/en/index.asp> [12] Addison (2004) Video Hardware, Part 2, Retrieved March 01, 2013 from < http://www.devhardware.com/c/a/video-cards/video- Hardware-Part-2/9/> 14