FPGACam - Real Time Video Processing
FPGACam - Real Time Video Processing
FPGACam - Real Time Video Processing
DOI: 10.1049/cds2.12074
- -Revised: 17 March 2021
O R I G I N A L R E S E A R C H PA P E R
Accepted: 19 March 2021
-
FPGACam: A FPGA based efficient camera interfacing
architecture for real time video processing
Abstract
1
Department of Electronics and Communication
Engineering, Vijaya Vittala Institute of Technology,
Bangalore, Karnataka, India
In most of the real time video processing applications, cameras are used to capture live
2
video with embedded systems/Field Programmable Gate Arrays (FPGAs) to process and
Department of Electronics and Communication
Engineering, Shri Dharmasthala Manjunatheshwara convert it into the suitable format supported by display devices. In such cases, the
College of Engineering and Technology, Dharwad, interface between the camera and display device plays a vital role with respect to the
Karnataka, India quality of the captured and displayed video, respectively. In this paper, we propose an
3
Department of Electronics and Communication efficient FPGA‐based low cost Complementary Metal Oxide Semiconductor (CMOS)
Engineering, University Visvesvaraya College of
camera interfacing architecture for live video streaming and processing applications. The
Engineering, Bangalore, Karnataka, India
novelty of our work is the design of optimised architectures for Controllers, Converters,
Correspondence and several interfacing blocks to extract and process the video frames in real time effi-
Sayantam Sarkar, Department of Electronics and ciently. The flexibility of parallelism has been exploited in the design for Image Capture
Communication Engineering, Vijaya Vittala Institute and Video Graphics Array (VGA) Generator blocks. The Display Data Channel
of Technology, Bangalore, Karnataka‐560077, India.
Conversion block required for VGA to High Definition Multimedia Interface Con-
Email: sayantam.61@gmail.com
version has been modified to suit our objective by using optimised Finite State Machine
and Transition Minimiszed Differential Signalling Encoder through the use of simple
logic architectures, respectively. The hardware utilization of the entire architecture is
compared with the existing one which shows that the proposed architecture requires
nearly 44% less hardware resources than the existing one.
1 | INTRODUCTION (iv). Display: This block accepts the processed data and converts
it into the required format supported by the display device.
Vision is one of the most prominent senses present in the In this paper, we propose a new Very Large Scale Integrated
humans [1] due to which real time vision based system or a part Circuit architecture to interface low cost Complementary Metal
of the system are commonly used in various real‐time applica- Oxide Semiconductor (CMOS) camera and display device with
tions. In general, any real time video/image processing tech- processing elements to FPGA board efficiently and also to
nique can be split into four main processing blocks, namely display the video directly using a display device, such as monitor
Sensor, Memory, Processing Unit, and Display [1, 2]. (i). Sensor: or TV. The entire architecture is optimised to get lower hardware
It is used to capture video sequences from the external envi- utilizations without affecting the architectural accuracy which is
ronment and transform it into corresponding electrical signals implemented using Vivado 2018.3 tool where the coding is
suitable for further processing. (ii). Memory: It is internal RAM performed by using the standard Very High‐Speed Integrated
where the captured video sequences are stored temporarily for Circuit Hardware Description Language (VHDL) language [3].
further processing. This block also helps to synchronize data This architecture is synthesized and tested in real time using
between the sensor and processing unit where both the blocks Digilent NexysVideo (xc7a200t-1sbg484c) FPGA board [4] and
are operated at different frequencies. (iii). Processing Unit: In Zybo Z7-10 (xc7z010-1clg400c) FPGA Board [5] separately
this section, the required processing algorithm/architecture where NexysVideo is of a medium level FPGA and Zybo Z7‐10
is implemented. This block accepts data from Memory. is of a low level FPGA. The level of FPGA is generally defined
This is an open access article under the terms of the Creative Commons Attribution License, which permits use, distribution and reproduction in any medium, provided the original work is
properly cited.
© 2021 The Authors. IET Circuits, Devices & Systems published by John Wiley & Sons Ltd on behalf of The Institution of Engineering and Technology.
- 1
2 SARKAR ET AL.
-
by both the cost and hardware complexity, such as logic den- processing. The disadvantage of this architecture is the less
sities, internal memory, and DSP blocks etc. overall frame rate. It is necessary to understand sensor design
to interface a camera properly with any of the processing el-
ements. Zhao et al. [11] present a 64 x 64 array image sensor
1.1 | Contributions architecture which is designed using the UMC 0.18 μm tech-
nology which has different user defined operating modes
The novel concepts of this paper are listed as follows: depending upon applications. The circuit used to read the
sensor captures the rows present in the array sequentially and
(i). The Camera Controller block is optimised by the generates an analog voltage which is then digitized by an on‐
Modified Serial Camera Control Bus (SCCB) Conver- chip Analog to Digital Converter. This architecture is able to
sion block at the architectural level. produce images of 64 � 64 resolution at 100 fps.
(ii). The Image Capture and Video Graphics Array (VGA)
Generator blocks are optimised using parallel
architecture. 3 | PROPOSED ARCHITECTURE
(iii). The design complexity of different Colour Plane Con-
version blocks are minimized at the architectural level The Digilent NexysVideo [4] and Zybo Z7-10 [5] FPGA Board
using adders and shifters. is used separately to interface the OmniVision OV7670 [12]
(iv). TheVGA to High Definition Multimedia Interface and OV9655 [13] cameras which further use the two wire SCCB
(HDMI) Conversion block is optimised using modified interface [14] for initializing their internal resistors to generate
Display Data Channel (DDC) Conversion and TMDS specific user defined video formats. The proposed architecture
Encoder blocks, respectively, where the optimised Finite used to interface camera with FPGA is shown in Figure 1. In the
State Machine (FSM) is used to modify the DDC Con- proposed architecture, different blocks need different clock
version and the Transition Minimiszed Differential frequencies (i.e. clk1, clk2, and clk3, respectively) to generate
Signalling (TMDS) Encoder is optimised using Compar- proper output video sequences for capture and display. So, using
ator and Addition blocks. the Phase Locked Loop/MMCE IP core [15] present in a Xilinx
Vivado [16] tool as a clock generator, the architecture generates
different clock frequencies accurately for proper operations.
2 | RELATED WORKS Initially the camera is configured by the Optimised
Controller block to generate a video sequence of 640 � 480
Normally, embedded systems with hardware/software co‐ resolution at 30 fps using the two wired SCCB interfacing [14]
simulation techniques are widely used to implement video protocol. The generated video is of the RGB565 [17] format,
processing systems due to the ease of implement. Said et al. [6] and for the proper synchronization between the camera and
proposed a video interface technique where the Xilinx EDK designed blocks, FPGA should start accepting pixel values
tool is used to interface a Micro‐Blaze embedded processor from the camera serially through the PMOD Ports [18] after
and the architecture is implemented using the embedded C‐ the completion of the camera configuration through register
language onto the processor. This system uses a Micron setting. The Optimised Image Capture block converts the
MT9V022 VGA camera to capture videos at the rate of 60 camera output into the proper serial format using corre-
frames per seconds (fps) which is then displayed using standard sponding synchronization signals (VSYNC and HSYNC) of
DVI interfaces. This architecture requires a large amount of the camera which is then converted to the RGB444 [17] format
hardware resources and the overall operating speed of the ar- by Optimised RGB565 to RGB444 Conversion block. This
chitecture is low. A similar technique for capturing a video is converted pixel values are then temporarily stored into
presented by Abdaoui et al. [7] which is implemented on a Memory [19] block which helps in synchronizing pixel the
Virtex‐5 FPGA with a co‐procesor to control the overall values between different blocks operating at different fre-
operation. This approach increases the area requirements as quencies [20]. After writing one row into the Memory, the
well as decreases overall frequencies. Biren and Berry [8] Optimised VGA Signal Generator block reads the stored pixel
presented a new camera interfacing architecture which is data through Optimised RGB444 to RGB565 Conversion
implemented on an Altera Cyclone‐III FPGA using different block and then converts this data into the corresponding VGA
IP cores provided by an FPGA manufacturer. The use of IP signal with proper synchronization signals (i.e. vsync and
cores increases the total hardware utilization of the architec- hsync), respectively. Now, depending upon the Mode switch
ture. Along with camera interfaces, many processing algo- value, color or gray pixel format is selected by both the
rithms are implemented for real time video processing. Stereo Optimised Color to Gray Conversion and MUX blocks which
vision based video rectification is presented by Maldeniya et al. are then used to generate the corresponding HDMI format by
[9], where a dual camera is used to capture stereo images and the Optimised VGA to HDMI Conversion block. The VGA
are interfaced with a Spartan‐3E FPGA through the100Base‐T and HDMI signals are connected to the input of the Port
protocol using the embedded processor present in Xilinx EDK Selection block which selects one particular display formatted
tool. Similarly real time motion tracking is presented by Mos- signal from the input depending upon the port_select value
queron et al. [10] where motion is detected from the real time which is connected to the display device such as monitor/TV
video captured by a camera through FPGA using embedded for the purpose of display.
SARKAR ET AL. 3
-
F I G U R E 1 Proposed architecture to interface camera with FPGA and display the video on display device. HDMI, High Definition Multimedia Interface;
VGA, Video Graphics Array
format is not suitable for producing good quality color pixels hardware requirements [24]. To overcome this problem, mul-
and not suitable for many applications. So, it is necessary to tipliers and dividers are replaced by the corresponding shifter
convert the stored RGB444 format into the corresponding and adder blocks [20] which are given in Equation (2) as
RGB565 format. follows:
15
2 3 where, LSn → Left Shift by Position n.
� xR 7 The architecture used to implement this conversion is
3 6 6 31 shown in Figure 4 where Q-format [25] is used to preserve
XR
2 7
15
6 7
4 X G 5 ¼ 6 � xG 7
6
ð1Þ the data accuracy by considering a fractional part for the
6 63
7
XB
7 intermediate stage, but the input and output signals are in
4 15
6 7
� xB
5 normal binary format, respectively. The Concatenation
31 blocks present in the input side separate the different color
components (red, green and blue) from the pixel value and
where, xR → Red Pixel values in RGB565 format. xG → then the required number of 0s are padded to the MSB side
Green Pixel values in RGB565 format. xB → Blue Pixel values to make all three color planes 16‐bit signals. Now using
in RGB565 format. XR → Red Pixel values in RGB444 shifters and adders, the intermediate values are generated
format. XG → Green Pixel values in RGB444 format. XB → which are then concatenated to generate the individual color
Blue Pixel values in RGB444 format. planes in the RGB444 format. These planes are then merged
From Equation (1), it can be seen that multipliers and di- by the Merger block to generate the corresponding RGB444
viders are required for implementation which increases formatted pixel value.
6 SARKAR ET AL.
-
3.3.2 | Optimised RGB444 to RGB565 hStartSync ¼ hRez þ Horizontal Front Porch: ð8Þ
conversion
The equation used to convert the stored RGB444 format into hEndSync ¼ hStartSync þ Horizontal Synchronization:
corresponding RGB565 format [1] is given in Equation (3). ð9Þ
where, IGray → Intensity value of Grey Pixel. R → Red Pixel Extended Display Identification Data (EDID) ROM units.
values of the image. G → Green Pixel values of the image. B The EDID [32] is used to store the supporting display related
→ Blue Pixel values of the image. information defined by the HDMI 1.4 standard [31], which is
Equation (13) is modified into Equation (14) to generate then converted into the DDC [33] format by the Modified
efficient hardware architectures [20]. DDC Format Generations block. Further, the pixel values are
encoded through the Modified TMDS Encoder to encode with
I Gray ≈ fðLS2 þ LS4 þ LS6 Þ � ðR þ G þ BÞg: ð14Þ the help of HSYNC and VSYNC signals and then converted
into a serial format by the Serializer block [34].
The hardware architecture of the Optimised Color to Gray
Conversion block is designed from Equation (14) similar to
the way RGB format Conversion blocks are designed from 3.6.1 | EDID ROM
their respective modified equations.
In any HDMI protocol, the operational characteristics of the
video, such as resolution, frame rate and version etc., must be
3.6 | Optimised VGA to HDMI conversion exchanged between source and sink at the beginning for proper
synchronization. These values are normally constant for a spe-
Most commonly VGA, HDMI, DVI etc., interfacing standards cific resolution [32]. The EDID values corresponding to
are used by display devices, such as TV, monitor, etc. Among 640 � 480 resolution are stored into the EDID ROM block in
these standards, HDMI standard is the most commonly used the proper order for further use. The standard file structure for
in newly manufactured display devices due to its support of EDID is considered for this implementation. The EDID ver-
uncompressed high quality audio and video interfaces through sions of 1.3 and above uses a total 256 bytes to define the cor-
a single cable [29]. responding EDID structure. In such cases the Extension Flag is
The generalized architecture of the VGA to HDMI Con- defined by a total of 128 bytes. For our implementation, CEA-
version block [30] is used to build the Optimised VGA to 861 Standards [33] are used to define the Extension Flag field.
HDMI Conversion block by optimizing some of its internal
block at the architectural level where the HDMI 1.4 standard
[31] is considered suitable for transmitting videos of 640 � 480 3.6.2 | Modified DDC Format Conversion
resolution over channel (wire). The proposed Optimised VGA
to HDMI Conversion block consists of Modified TMDS The HDMI standard exchanges EDID ROM data between its
Encoder, Modified DDC Format Generations, Serialise,r and Source and Sink using the DDC Protocol [33] which is normally
8 SARKAR ET AL.
-
FIGURE 5 Proposed architecture of optimised VGA signal generator. VGA, Video Graphics Array
a standard serial signaling protocol. This is almost similar to the bit_counter = 0. When bit_counter = 0, the machine reaches
Philips I2C [21] protocol which consists of three wires, such as the Slave ACK1 state where it waits for the acknowledgment
Serial Data (SDA), Serial Clock (SCL), and high logic value from the slave device. If acknowledgement is received, then it
(+5 V). The DDC format [33] uses Inter-Integrated (I2C) [21] performs similar operation using data from EDID ROM or else
specifications to transfer the TMDS encoded data. To design the starts sending address values once again. Once Slave ACK2 is
proposed DDC Protocol, NXP UM10204 I2C bus specifica- received by the sender, the address value is incremented by ‘1’
tions [35] for single master buses are considered. Those and goes back to the Start state again. This way when Slave
specifications mainly give the details of Start, Stop, and ACK2 is received for the address_max value then the machine
Acknowledgement signals for proper communication. To enters the Stop state and stays in that state until the process is
implement this, the FSM model is used, which is given in restarted when Restart = 1 which forces the machine to go to
Figure 6. The proposed state machine uses 8‐bit data and the Ready state and perform the entire operation once again.
addressing bits. Upon start‐up, the state machine immediately
enters into the Ready state and stays in the same state until
Send = 1 and Restart = 0 which makes the machine go to the 3.6.3 | Modified TMDS encoder
Start state which generates proper start conditions for data
transfer. Now the machine goes to the Address state which Transition Minimized Differential Signaling is abbreviated as
fetches 8‐bit address from the EDID ROM and serialize it using TMDS and is used to encode data at a very high speed for
the PISO architecture [36] which is then tracked by the various video interfaces. It uses a form of 8b/10b encoding
bit_counter variable. The machine stays in this state until [37] technique which reduces electromagnetic interferences to
SARKAR ET AL. 9
-
provide faster signal transmission with reduced noise [38]. The 0)}; bias = {bias + word
TMDS encoder encode the input data and send it serially at a (8) − disparity};
high speed which minimizes transitions by retaining high fre- else
quency transitions for clock recovery. This process keeps the bias = {bias − word(8) + disparity};
minimum number of 1s and 0s in the line nearly equal to improve encoded = (0, word);
the noise margin. The algorithm is used to implement Modi- end if;
fied TMDS Encoding is given in Algorithm-2. The Modified end if;
TMDS encoder unit is designed using basic gates and flip‐flops end if;
with simpler interconnections between them to produce
optimised hardware architecture than the existing [39].
4 | FPGA IMPLEMENTATION
Algorithm 2 Modified TMDS Encoder
The proposed architecture is coded using the standard VHDL
Inputs: data, clk, c, blank; language [3], synthesized and implemented on Digilent Nex-
Variables: ones, word, word_inv, ysVideo (xc7a200t-1sbg484c) [4] and Zybo Z7-10 (xc7z010-
disparity, bias, xored, xnored; 1clg400c) [5] FPGA board separately through the bit-file
Output: encoded; generated by the Xilinx Vivado 2018.3 tool by assigning the
ports in a .xdc file. The generated schematic diagram of the
xored(0) = xnored(0) = data(0); xored proposed architecture after post-implementation step is shown
(8) = 1; xnored(8) = 0; disparity = in Figure 7 for the NexysVideo FPGA board.
(12 + ones); The hardware utilizations of the proposed interfacing ar-
ones = Total number of 10 s present in input chitecture after post-implementation stage including most of the
data; internal blocks are given in Table 1. The hardware utilizations and
for (i = 1; i ≤ 7; i + +) do power requirements of the entire camera interfacing architecture
xored(i) = {data(i) ⨁ xored(i − 1)}; is lesser than the sum of all the individual components present
xnored(i) = {data(i) � xnored(i − 1)}; internally in the architecture for both the cases, respectively,
end for; which is mainly due to the use of the Balanced Synthesis and
if {(ones > 4) j (ones = 4 & data(0) = 0)} Optimizations [16] operation present in the Xilinx Vivado tool.
then
word = xnored; word_inv = not(xnored);
else 5 | REAL TIME IMPLEMENTATION
word = xored; word_inv = not(xored);
end if; The image of the experimental product setup using the pro-
if {(clk)rising_edge} then posed camera interfacing architecture is shown in the Figure 8
if (blank = 0) then where the OV7670 camera is mounted on a stand for better
if (c = 0) then focusing and is connected to a Digilent NexysVideo FPGA
encoded = 852; board through PMOD ports using general purpose jumper
else if (c = 1) then wires. The architecture programs the camera to the correct
encoded = 171; mode and accepts video sequences which are processed and
else if (c = 2) then sent to the available HDMI/VGA port to display through the
encoded = 340; connected display device.
else It is also possible to convert this architecture into a real time
encoded = 683; product which requires replacing the general purpose jumper
end if; wires used in Figure 8 with a custom designed Printed Circuit
else Board (PCB). The architecture of the custom designed PCB is
if {(bias = 0) j (disparity = 0)} then shown in Figure 9 which is a simple two layered PCB used to
if {word(8) = 0} then provide proper connection between the camera and FPGA
encoded = {1, word(7 : 0)}; module.
bias = {bias + disparity};
else
encoded = {2, word(7 : 0)}; 6 | PERFORMANCE EVALUATION
bias = {bias − disparity};
end if; The performance of the proposed architecture is compared with
else if {[bias(3) � disparity(3)] = 1} various existing architectures or techniques with respect to data
then accuracy, board comparability, cost, and hardware utilizations
encoded = {1, word(8), word_inv(7 : to check the superiority of the proposed architecture.
10 SARKAR ET AL.
-
FIGURE 6 Proposed finite state machine model for modified Display Data Channel format conversion
SARKAR ET AL. 11
-
SCCB Camera Image RGB565 to VGA RGB444 to RGB to DDC TMDS Total
Parameters interface controller capture RGB444 generator RGB565 grey interface encoder module
FPGA Artix‐7 (xc7a200t‐1sbg484c)
Flip‐flops 73 76 60 32 55 39 26 25 14 376
Slices 22 30 38 28 21 30 16 10 11 221
BRAMs 0 0 0 0 0 0 0 0 0 60
FPGA Zynq‐7(xc7z010‐1clg400c)
Flipflops 79 83 66 36 61 43 31 27 22 484
Slices 25 37 49 30 28 39 20 16 19 283
BRAMs 0 0 0 0 0 0 0 0 0 60
Abbreviations: DDC, Display Data Channel; SCCB, Serial Camera Control Bus; TMDS, Transition Minimiszed Differential Signalling; VGA, Video Graphics Array.
a
For worst case scenario.
12 SARKAR ET AL.
-
The |Error| is calculated for both of the conversion
processes (i.e., RGB565 to RGB444 and RGB444 to RGB565
respectively) with the corresponding full range of RGB values
of different color planes where only integer values are
considered. The |Error| occurred in both of the conversion
processes is always lesser than ‘1’ due to the use of Qformat
for intermediate calculations. As a result, when both conver-
sion blocks are cascaded to get double conversion, due to
design issues the |Error| introduced at the final result must
also be equal to or less than ‘1’. These small errors are intro-
duced due to truncation errors [3, 24] that occurred in binary
arithmetic calculations.
jErrorj ¼ jA − Bj ð15Þ
6.3 | Hardware resources
where, jErrorj→ is the error occurred in proposed
architecture. The utilised hardware resources of most of the subblocks and
total module is compared with the corresponding existing
A → Actual values calculated form conversion equation. technique's hardware resources utilizations to prove that the
B → Output values form proposed architecture. proposed architecture is better in terms of hardware resource
SARKAR ET AL. 13
-
utilizations as well. To get valid hardware resource comparison, 6.3.2 | VGA signal generator
it is essential to use the utilization values of a particular block
for the same or similar kind of FPGA board. The comparison of hardware utilizations of the proposed
VGA Signal Generator with the existing VGA Signal
Generator is compared and given in Table 4. The VGA
6.3.1 | Camera controller Generator architecture presented by Xiaokun et al. [46] is
implemented on Artex‐7 FPGA. The unoptimised way of
The comparison of hardware utilizations of the proposed using logical components to generate the VGA signal leads to
camera controller with the existing controller presented by large hardware utilizations than that of the proposed. Simi-
Xiaokun et al. [46] is compared and given in Table 3. From the larly Arun Babu [47] presented a Graphic Controller which
table, it can be seen that the proposed camera controller ar- was implemented on Virtex 5 FPGA. The use of generalized
chitecture requires less hardware resources than the existing for IP Cores inside the architecture in the unoptimised way re-
the same FPGA board (Artix 7). This is because, the proposed quires large hardware resources than that of the proposed.
camera controller architecture is optimised with the specifica- On the other hand, the proposed VGA Generator architec-
tions of the OmniVision camera series. ture is optimised with respect to the camera architectural
design using basic gates in a very optimised way without
using any IP Cores.
T A B L E 2 Comparisons between existing and proposed module
FPGA board supports
6.3.3 | TMDS encoder
Techniques Supported FPGA boards Cost ($)
TDNext [42] ZedBoard 70 The hardware utilizations of the presented TMDS Encoder is
compared with the existing TMDS encoder presented by
Python 1300C [43] Zedboard and MicroZed 500
Roshan and Patil [48] which is shown in Table 5. The
Pcam 5C [44] Zybo and ZedBoard 45 TMDS encoder proposed by Roshan and Patil [48] was
D8M [45] DE2‐115, DE1‐SoC and C5G 80 implemented on Spartan 6 FPGA. The proposed architecture
a
requires very less hardware for the same (Spartan 6) FPGA.
Proposed Any FPGA board 20b
This is mainly due to the use of TMDS algorithm which is
30c optimised by using basic gates, comparators, adders, and
a
With required peripherals. subtractors.
b
For OV7670 Camera.
c
For OV9655 Camera.
T A B L E 4 Comparisons between
Parameters Xiaokun et al. [46] Arun Babu [47] Proposed architecture
existing and proposed VGA signal generator
FPGA — Virtex‐5 Virtex‐5
Flipflops — 109 97
Parameters Xiaokun et al. [46] Bhowmik et al. [49] Zhou et al. [50] Xilinx IP Core [51] Honegger et al. [52] Proposed architecture
FPGA Artix‐7 — — — Artix‐7 Artix‐7
BRAMs 106 — — — — 60
6.3.4 | Total module be used for real time video capturing and processing. To
generate efficient interfacing hardware architecture, each
The hardware resources comparison of the proposed camera subblock (i.e., Controller, Image Capture, Color Plane
interfacing architecture with similar existing architecture is Conversion, VGA Signal Generator, and VGA to HDMI
given in Table 6. An effective CMOS camera interface archi- Conversion) are optimised using different optimizing tech-
tecture is presented by Xiaokun et al. [46] which is imple- niques. Parallel architecture is used to optimise the Image
mented on the Artix 7 FPGA board and verilog HDL is used Capture and VGA Signal Generator blocks. Similarly, the
for coding. The main reason behind the large hardware utili- use of shifters and adders reduces the hardware utilization
zation than that of the proposed is the use of subblocks in the of different Color Plane Conversion blocks, respectively.
overall architecture without any optimization. A CPU and Modified DDC Conversion and TMDS Encoder blocks are
FPGA base camera interfacing architecture is presented by used to optimize the VGA to HDMI Conversion where
Bhowmik et al. [49] which is implemented on the Xilinx Zynq the DDC Conversion block is optimised using the FSM
7000 SoC FPGA board with Vivado tool. The main reason for and TMDS Encoder block is modified at the architectural
large hardware requirements by this architecture than existing level.
those of the proposed is the use of generalized IP Cores to However, at the time of optimization of these architec-
implement total architecture without proper optimizations. A tures, data accuracy was also taken care of by considering
smart camera architecture is presented by Zhou et al. [50] sufficient intermediate bit sizes. As a result, the proposed
which is implemented on the Zynq 7020 FPGA board using method has less hardware complexity, low cost, and is more
the Sum of Absolute Differences (SAD) based Mosaic Algo- accurate compared to existing techniques. In future, an inter-
rithm. The use of SAD based Mosaic Algorithm in an unop- face of higher resolution camera (HD, 4K etc.) with more
timised way increases the hardware requirements. The Xilinx frame rates and more sophisticated processing algorithm to
provides IP Cores [51] to interface a specific camera with the generate better quality images will be implemented.
Zynq 7000 SoC FPGA board using the ARM CortexA9 pre-
sent in that board through embedded programing techniques.
This increases hardware requirements drastically. A new video 8 | ABBREVIATIONS AND APPENDICES
processing system is presented by Honegger et al. [52] which
uses the FPGA for image acquisition and a mobile CPU for The abbreviations used in this paper are as follows
processing. This architecture uses an MT9V034 CMOS camera DDC ← Display Data Channel; EDID ← Extended
and an Artix 7 FPGA to acquire video frames. The interfacing Display Identification Data; HDMI ← High Definition
architecture is implemented using the embedded technique Multimedia Interface; I2C ← InterIntegrated Circuit; SCCB ←
which increases hardware utilizations. On the other hand, each Serial Camera Control Bus; TMDS ← Transition Minimised
subblock is designed in an optimised way to get optimised Differential Signalling; VGA ← Video Graphics Array.
hardware utilizations for the entire architecture. This is ach- Similarly, the symbols are used in alright the Algorithms
ieved by replacing complex logical architectures with the cor- and Figures present in this paper are as follows
responding logical architectures with basic gates. �← XNOR Operation. ⨁← XOR Operation; & ← AND
Operation; j ← OR Operation; (,)/{ , }/[ , ] ← Concatenation
Operation; (x : y) ← Data of Length (x−y+1); (N) ← Bit
7 | CONCLUSION Present in Nth Position of a Binary Digit.