Improvisation of Gabor Filter Design Using Verilog HDL
Improvisation of Gabor Filter Design Using Verilog HDL
Improvisation of Gabor Filter Design Using Verilog HDL
IMPROVISATION OF
GABOR FILTER DESIGN USING VERILOG HDL
Idros,M.F.M Mohamed,S.A Razak,A.H.A Zoolfakar,A.S Al-Junid,S.A.M
Faculty of Electrical Engineering, Universiti Teknologi Mara,Malaysia
I. INTRODUCTION
Fig 1: Design summary
F ingerprint enhancement using Gabor filter is one of highly
computational complexity in fingerprint verification
process. Gabor filter has a complex valued convolution kernel
Basically there were 3 major parts in the filter: CLU,
ALU and MEMORY [4]. The ‘convolution’ signal indicates
and a data format with complex values is used. So
the operation of the filter. If the signal is high then the
implementing Gabor filter is very significant in fingerprint
convolution process takes place. If it is low then the filter
verification process. Designing Gabor filter will help
receives image input and stores it to the memory based on the
enhancing the quality of fingerprint image. In fingerprint
input location. The data enters the filter pixel by pixel. The
recognition, Gabor filter optimally capture both local
‘PIXEL_X’ and ‘PIXEL_Y’ signal gave the address of the
orientation and frequency information from a fingerprint
memory location [1].
image. By tuning a Gabor filter to specific frequency and
direction, the local frequency and orientation information can
be obtained. Thus, it is suited for extracting texture
information from images [1].
The convolution matrix took place at the
multiplication-accumulation unit (MAC) of the digital filter
design. The MAC parallel design is for the speed of the
convolution process. Parallel design allows a group of series
data to be sent or transferred simultaneously [1]. By designing
a parallel MAC, the size of the filter was compromised. The
main objective is to replace the parallel design MAC to a
serial design MAC. The serial design allows a group of series Fig 2: Top level
data bits to transfer one series of data at a time[6]. Even B. Arithmetic Unit
though the design might compromise the speed, but the area
consumption was reduced. The speed of serial design can be This is the main part of the filter that is doing the convolution
overcome by operate at a higher frequency. process. This is where the Gabor coefficient is stored[4]. It
consists of 3 parts: ROM, DECODER and MAC. The ROM
1
READ DATA FROM
MEMORY
MAC read data from memory and coefficient from ROM. After
that it will perform the matrix convolution
0
COUNT FOR 9
TIMES
184
address. When the coefficient address was counted up until 9,
the memory address for Y- direction will count a plus one.
And the X-direction address must wait until Y-direction
counts until 16 then it counts a plus one.
This CLU will also read feedback from the
arithmetic unit which is the ‘SET’ and ‘RDY’ signals. These
feedbacks from the arithmetic unit are used to control the
operation ‘OP’ of the arithmetic unit. When the ‘OP’ signal
was high, the convolution process at the arithmetic unit starts.
When the ‘OP’ signal is low, the convolution process stops.
Fig 5: Toplevel
The ‘OP’ was designed this way to control accurate series
data sent to the arithmetic unit so there won’t be any
From figure 7 the output result for the filter is
mismatch of data. The memory decoder decodes the data and
0.006764772(3BDDAB06) but the expected result in figure 6
sends the correct memory address and coefficient address
was 0.006764705(3BDDAA75). The difference was
separately to the memory and the arithmetic unit. Figure 8
0.00000068. The error was only 0.001%. This new design
shows the schematic view of the controller and figure 9
verifies that even though the multiplication and accumulation
verifies the operation of the controller.
were design in serial, it can still give and maintain the same
result from previous parallel design. It took 222 cycles to
finish the convolution process in serial design. Since there is
no verification from the top level from previous design, the
estimated time for parallel design to finish the convolution is
127cycles.
Fig 8: Controller
C. Memory
Fig 7: Verification of top level filter The memory block is used to store the image pixel. The
decoder only decodes address for Y-direction only. The clock
was removed from the decoder so the decoded Y-direction
B. Controller (CLU)
can arrived at the same clock cycle with the X-direction. The
The control logic unit functions as controller for the data flow adress for X-direction is supplied directly from the CLU or
in the filter. It gives instruction to the other blocks to do their from the filter input. The image input is also connected
job. Basically, it gives the memory address to read data to the directly from the filter input. The writenable signal indicates
MEMORY and give address of coefficient to the ALU. whether the operation is a write data or read data.
This CLU will only generate the address location From the figure 10, first the ‘WRITENABLE’ signal is
when the ‘START’ signal is high. This signal indicats the high to indicate the writing process is taking place. Then the
convolution process that has taken place but if the signal is signal goes low to read the data in the memory. The memory
low, it indicates that the writing of image data into the will give the output on the same clock cycle as the address
memory takes place. location enters.
This CLU contains only 2 different blocks. One is
the counter for the coefficient and memory address, and the
other one is the counter decoder. The design of the counter
gives the relationship between the coefficient and memory
185
Fig 10: Verification memory unit Fig 13: MAC
186