Final Project
Final Project
Bachelor of Technology
in
Electronics and Communication Engineering
Submitted by
NAME
I hereby declare that the thesis entitled “Design and Implementation of Image
Processing Techniques on FPGA Using Verilog HDL” is a bona fide record of
work carried out by me under the guidance of Dr. , and that this
thesis has not been submitted previously, in part or in full, to any other university or
institution for the award of any degree or diploma.
Place:
Date:
NAME
Register Number:
CERTIFICATE
This is to certify that the thesis entitled “Design and Implementation of Im-
age Processing Techniques on FPGA Using Verilog HDL” submitted by Ashok
Chakravarthy (Register Number: ) to the Name of the Uni-
versity, in partial fulfillment of the requirements for the award of the degree of Master
of Technology in the Department of , is a bona fide record of
work carried out by him under my supervision and guidance during the academic year
2025–2026.
Supervisor
Dr.
Designation
Department of
Name of the Institution
Dr.
Designation
Department of
Name of the Institution
Place: Date:
ACKNOWLEDGEMENT
NAME
ABSTRACT
Image processing plays a crucial role in modern embedded and real-time systems,
with applications ranging from medical imaging and surveillance to industrial automa-
tion and multimedia systems. Conventional software-based image processing approaches
implemented on general-purpose processors often face limitations in terms of processing
speed, power consumption, and real-time performance.
This thesis presents the design and implementation of an FPGA-based image process-
ing system using Verilog Hardware Description Language (HDL). The proposed system
focuses on the offline processing of bitmap (.bmp) images by converting image data into
a hexadecimal format suitable for FPGA memory initialization. The image pixels are
processed using dedicated hardware modules implemented in Verilog, enabling efficient
parallel execution of image processing operations.
Basic image processing techniques such as image inversion, brightness adjustment, and
thresholding are implemented and verified through simulation. The system architecture
is designed to be modular and scalable, allowing easy integration of additional image
processing functions. Functional correctness is validated using simulation tools, and the
processed output images demonstrate the effectiveness of the hardware-based approach.
The results highlight the advantages of FPGA-based image processing in terms of
parallelism, deterministic performance, and resource efficiency. The proposed design
serves as a foundation for developing real-time image and video processing systems by
extending the architecture to support camera interfaces, display modules, and advanced
image processing algorithms.
1 Introduction 10
1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 FPGA in Image Processing . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Objectives of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6 Scope of the Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 Organization of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Literature Review 14
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 FPGA for Image Processing: Advantages and Trends . . . . . . . . . . . 14
2.3 Design Methodologies and Toolflows . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Memory and I/O considerations . . . . . . . . . . . . . . . . . . . 15
2.4 BMP / Hex-based FPGA Implementations (Practical Examples) . . . . . 15
2.5 Hardware IPs and Soft-Processor Approaches . . . . . . . . . . . . . . . 15
2.6 Theses and Academic Implementations . . . . . . . . . . . . . . . . . . . 15
2.7 Performance Metrics and Evaluation Practices . . . . . . . . . . . . . . . 16
2.8 Gap Analysis and Motivation for the Present Work . . . . . . . . . . . . 16
2.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 System Architecture 17
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Overall System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Input Image Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 Control and Address Generation Unit . . . . . . . . . . . . . . . . . . . . 18
3.5 Image Processing Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6 Output Image Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.7 Module-Level Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.8 Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4 Implementation 22
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3 Image Preprocessing and Data Conversion . . . . . . . . . . . . . . . . . 22
4.4 Image Loader Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4.1 Memory Initialization . . . . . . . . . . . . . . . . . . . . . . . . . 23
5
4.5 Control Unit and Address Generation . . . . . . . . . . . . . . . . . . . . 23
4.6 Image Processing Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6.1 Image Inversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6.2 Brightness Adjustment . . . . . . . . . . . . . . . . . . . . . . . . 23
4.6.3 Thresholding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.7 Output Image Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.8 Top-Level Module Integration . . . . . . . . . . . . . . . . . . . . . . . . 24
4.9 Simulation and Verification . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Introduction
1.1 Background
Digital image processing is a rapidly growing field that involves the manipulation and
analysis of digital images to improve their visual quality or to extract useful information.
A digital image is represented as a two-dimensional array of pixels, where each pixel
corresponds to an intensity or color value. Figure 1.1 illustrates the basic concept of
pixel-based image representation.
Image processing techniques are widely used in applications such as medical diagnos-
tics, satellite imaging, surveillance systems, industrial inspection, robotics, and multi-
media systems. These applications often require high-speed processing and low latency,
especially in real-time environments.
Traditional image processing systems are implemented using software platforms such
as CPUs and GPUs. Although these platforms offer flexibility, they are often limited by
sequential execution, high power consumption, and unpredictable timing behavior when
handling large volumes of image data.
10
Figure 1.2: General architecture of an FPGA
1.3 Motivation
The motivation for this thesis arises from the increasing demand for efficient, high-speed,
and low-power image processing systems. Software-based approaches often struggle to
meet real-time constraints due to limited parallelism and high computational overhead.
FPGA-based image processing provides a promising solution by exploiting fine-grained
parallelism at the hardware level. Figure 1.3 highlights the difference between serial
processing in CPUs and parallel processing in FPGAs.
By implementing image processing algorithms using Verilog HDL, designers gain full
control over hardware resources, enabling optimized performance and efficient utilization
of FPGA logic elements.
11
Figure 1.3: Comparison between CPU-based and FPGA-based image processing
12
Figure 1.4: Basic FPGA-based image processing flow
13
Chapter 2
Literature Review
2.1 Introduction
This chapter reviews prior work and relevant literature in the area of FPGA-based image
processing. It covers (a) general FPGA advantages for image processing, (b) common
design approaches and toolflows, (c) practical implementations that read and process
BMP images on FPGA using Verilog, (d) hardware IP/processor solutions for image
tasks, and (e) a gap analysis that motivates the present thesis.
14
2.3.1 Memory and I/O considerations
Image processing on FPGA typically requires careful memory planning: on-chip block
RAMs (BRAM) for line buffers, external DDR/SDRAM for large frames, and DMA/host
interfaces for streaming designs. Many educational and prototype projects use offline ap-
proaches where a BMP image is converted to a hex/text file and loaded into an FPGA
memory via ‘readmemh‘duringsimulationorROM initialization; thissimplif iestestingandverif ication
Educational resources and sample projects demonstrating this flow are widely avail-
able and are particularly useful when starting hardware implementations of basic image
operations [?].
• Shaonan Zhang’s thesis, “Real Time Image Processing on FPGAs,” explores SoC/FPGAs
and streaming real-time design trade-offs on low-cost devices and is useful for un-
derstanding practical real-time constraints and platform selection [?].
15
• Classic Verilog/HDL educational projects (e.g., Nelson’s work and many community
tutorials) document hands-on examples for implementing BMP read/process/write
flows and basic algorithm hardware implementations [?, ?].
• Real-time, camera-driven pipelines with robust memory interfaces and timing clo-
sure on low-cost boards are addressed in PhD-level work but remain challenging for
undergraduate or small MTech projects; an intermediate, well-documented HDL
implementation with clear verification flow adds educational and practical value
[?, ?].
2.9 Summary
This chapter surveyed prior work in FPGA-based image processing, practical BMP/hex
workflows for Verilog-based prototypes, IP/soft-processor approaches, and academic the-
ses addressing real-time FPGA pipelines. The literature confirms that FPGA implemen-
tations offer significant benefits for image-processing tasks and highlights where a focused
Verilog-based, resource-aware implementation (with clear verification and reproducible
results) can contribute to both educational and applied research contexts.
16
Chapter 3
System Architecture
3.1 Introduction
This chapter describes the overall architecture and design methodology of the proposed
FPGA-based image processing system. The system is designed using Verilog Hardware
Description Language (HDL) and focuses on offline processing of bitmap images. The
architecture is modular in nature, enabling scalability and ease of extension for additional
image processing operations.
17
system_overview.png
• Image inversion
18
processing_pipeline.png
• Brightness adjustment
• Thresholding
The operation mode is selected using control parameters defined in the Verilog de-
sign. Each pixel is processed independently, allowing parallelism and efficient hardware
utilization.
19
module_architecture.png
• Processing Module
• Controller Module
Each module is designed independently and interconnected at the top level, improving
readability and maintainability of the design.
20
• Modular and scalable architecture
3.9 Summary
This chapter presented the architecture of the FPGA-based image processing system. The
modular design enables efficient pixel-level processing and provides a strong foundation
for extending the system to real-time image and video processing applications. The next
chapter details the implementation of the proposed architecture using Verilog HDL.
21
Chapter 4
Implementation
4.1 Introduction
This chapter presents the implementation details of the proposed FPGA-based image pro-
cessing system. The system is implemented using Verilog Hardware Description Language
(HDL) following the modular architecture described in Chapter 3. The implementation
focuses on offline processing of bitmap images by loading pixel data into FPGA memory,
applying image processing operations, and generating the processed output.
22
4.4.1 Memory Initialization
The following Verilog code snippet illustrates the initialization of image memory:
reg [7:0] image_mem [0:IMAGE_SIZE-1];
initial begin
$readmemh("input_image.hex", image_mem);
end
This module provides pixel data to the processing core based on address signals gen-
erated by the control unit.
23
4.6.3 Thresholding
Thresholding converts a grayscale image into a binary image based on a predefined thresh-
old value.
The desired operation is selected using control parameters defined in the design.
During simulation, the contents of the output memory are written to a file and later
converted back to bitmap format for visualization.
image_loader u1 (...);
controller u2 (...);
image_core u3 (...);
image_writer u4 (...);
24
4.10 Summary
This chapter detailed the implementation of the FPGA-based image processing system
using Verilog HDL. The modular approach enables efficient pixel-level processing and sim-
plifies future extensions. The next chapter presents experimental results and performance
analysis of the implemented system.
25
Chapter 5
5.1 Introduction
This chapter presents the experimental results obtained from the FPGA-based image
processing system implemented using Verilog HDL. The correctness and effectiveness of
the proposed system are validated through simulation and visual analysis of the processed
output images. The results demonstrate the successful implementation of basic image
processing operations such as image inversion, brightness adjustment, and thresholding.
26
input_image.png
27
inversion_output.png
5.8 Discussion
The experimental results demonstrate that FPGA-based image processing using Verilog
HDL is effective for implementing basic image processing operations. The modular design
allows easy extension to more complex operations such as filtering, edge detection, and
real-time video processing.
Compared to software-based implementations, the proposed hardware approach offers
improved predictability and potential performance benefits.
5.9 Summary
This chapter presented the results obtained from the FPGA-based image processing sys-
tem. The output images validate the correctness of the implemented algorithms. The
results confirm that the proposed system provides a reliable and efficient foundation for
further development of real-time and advanced image processing applications.
28
brightness_output.png
threshold_output.png
29
Chapter 6
6.1 Conclusion
This thesis presented the design and implementation of an FPGA-based image processing
system using Verilog Hardware Description Language (HDL). The primary objective of
the work was to demonstrate the feasibility and effectiveness of implementing basic image
processing operations directly in hardware using an FPGA platform.
The proposed system successfully performs offline processing of bitmap images by con-
verting image data into hexadecimal format, loading it into FPGA memory, and applying
pixel-level operations such as image inversion, brightness adjustment, and thresholding.
The modular architecture and Verilog-based implementation enable efficient parallel pro-
cessing and deterministic operation, which are key advantages of FPGA-based systems.
Simulation results and output image analysis confirm the correctness of the imple-
mented image processing algorithms. The results demonstrate that hardware-based im-
age processing provides predictable performance and serves as a reliable alternative to
software-based approaches, particularly for embedded and real-time applications.
Overall, the work establishes a strong foundation for understanding FPGA-based
image processing and highlights the potential of Verilog HDL in developing efficient and
scalable hardware architectures for digital image processing applications.
• Optimization of the design for higher image resolutions using external memory
interfaces such as SDRAM or DDR.
30
• Performance and power analysis on actual FPGA hardware platforms.
The proposed architecture is scalable and adaptable, making it suitable for future
research and development in real-time vision systems, embedded imaging, and hardware-
accelerated computer vision applications.
31
Bibliography
[2] Y. An, K. Wang, and J. Tian, “Recent methodology advances in fluorescence molec-
ular tomography,” Visual Computing for Industry, Biomedicine, and Art, vol. 1, pp.
1–11, 2018.
[5] C. Cao et al., “First clinical investigation of near-infrared window IIa/IIb fluo-
rescence imaging for precise surgical resection of gliomas,” IEEE Transactions on
Biomedical Engineering, vol. 69, no. 8, pp. 2404–2413, 2022.
[6] H.-Y. Chang, Z. Wang, and Y.-Y. Chuang, “Domain-specific mappings for generative
adversarial style transfer,” in Proc. ECCV, pp. 573–589, 2020.
[7] H. Hao, J. Xue, P. Huang, L. Ren, and D. Li, “Qgformer: Queries-guided trans-
former for flexible medical image synthesis with domain missing,” Expert Systems
with Applications, vol. 247, p. 123318, 2024.
[8] M. Heusel et al., “GANs trained by a two time-scale update rule converge to a local
Nash equilibrium,” in Advances in Neural Information Processing Systems, vol. 30,
pp. 6629–6640, 2017.
[10] X. Huang and S. Belongie, “Arbitrary style transfer in real-time with adaptive in-
stance normalization,” in Proc. ICCV, pp. 1501–1510, 2017.
[11] P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros, “Image-to-image translation with
conditional adversarial networks,” in Proc. CVPR, pp. 1125–1134, 2017.
[12] Kenry, Y. Duan, and B. Liu, “Recent advances of optical imaging in the second
near-infrared window,” Advanced Materials, vol. 30, no. 47, p. 1802394, 2018.
32
[13] D. P. Kingma and J. Ba, “Adam: A method for stochastic optimization,” arXiv
preprint arXiv:1412.6980, 2014.
[15] Y. Ma et al., “Structure and illumination constrained GAN for medical image en-
hancement,” IEEE Transactions on Medical Imaging, vol. 40, no. 12, pp. 3955–3967,
2021.
[17] J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros, “Unpaired image-to-image translation
using cycle-consistent adversarial networks,” in Proc. ICCV, pp. 2223–2232, 2017.
33