4. CAPÍTULO IV ANÁLISIS DE DATOS
4.4. DISCUSIÓN – ANÁLISIS DE LOS RESULTADOS
In this thesis, we have explored the implementations of the Harris corner detection algorithm in both hardware and software, specifically we have implemented the algorithm in C and Verilog HDL. The use of LIDE framework makes the prototyping of DSP in software and hardware faster, in my thesis work, LIDE-C and LIDE-V were used for prototyping the algorithm.
DICE, as a complementary environment for experimenting of dataflow modeling of DSP under Linux, makes management and development of DSP models in software and hardware easier. DICE was used throughout my thesis preparation. The handy utilities for switching between different directories, copying and pasting, improve the efficiency of carrying out tedious work under Linux.
LIDE is a highly regular framework. The problem with prototyping DSP systems in hardware is that a testbench is required when we create a Design Under Test (DUT). Creating a testbench is usually more time-consuming part as it requires thorough understanding of how a DUT works. In general, we need to create a testbench for each DUT. In this thesis work, by taking advantage of the framework’s regularity, we wrote a Python script which can generate all templates and testbenches. The code generation mechanism allows us to focus on DUT and swiftly prototype any sort of DSP. The overhead is that: to capitalize on the regularity we need to get to know the regularity, i.e., get to know how to prototype DSPs in LIDE. The design of an actor can be complicated, as we have seen in the design of inter-actor resource-sharing graph.
Digital image processing, as a separate branch from digital signal processing, is crit- ical in modern day DSP systems. The implementations of digital image processing systems can be challenging as we impose more and more constraints. Corner de- tection is an important task in digital image processing, and it is widely used in feature detection, pattern recognition, etc. The algorithm proposed by Harris and Stephens in 1988 is widely used for corner detection. In Verilog HDL implementa-
6. Conclusions and future work 43 tions of the algorithm, different orders of unfolding were applied for Gaussian actors and non-max suppression actor. Unfolding, also called loop unrolling in software engineering, is a technique for increasing performance of a DSP system. In the context of hardware design, unfolding basically means throwing more hardware for computation. The direct impact is that more operations can be done in parallel. In our case, unfolding means more multiplications and comparisons are carried out. It was found out that unfolding for non-max suppression actor not only increases the throughput (performance) of the actor, but also decreases resource usage on FPGA. Unfolding for Gaussian actors, by contrast, increases the use of DSPs on FPGA while decreases FFs to some extent.
All in all, this thesis work has explored different architectures of the Harris algorithm. We have demonstrated the great advantage of using LIDE, we have created 12 implementations of the algorithm in Verilog HDL. In the future, we can have different architectures for each actor in the dataflow graph. By piecing together actors of different architectures, we have different implementations of the algorithm.
44
BIBLIOGRAPHY
[1] S. K. Mitra, Digital signal processing: a computer based approach. New York: McGraw-Hill Higher Education, 3rd ed., 2006.
[2] H. Nyquist, “Certain topics in telegraph transmission theory,” Transactions of the American Institute of Electrical Engineers, vol. 47, pp. 617–644, April 1928. [3] C. E. Shannon, “A mathematical theory of communication,” ACM SIGMOBILE Mobile Computing and Communications Review, vol. 5, no. 1, pp. 3–55, 2001. [4] J. G. Proakis and D. G. Manolakis, Digital signal processing - principles, algo-
rithms and applications (2. ed.). Macmillan, 1992.
[5] R. C. González and R. E. Woods, Digital image processing, 3rd Edition. Pearson Education, 2008.
[6] D. Jacobs, “Image gradients,” Class Notes for CMSC, vol. 426, 2005.
[7] I. Sobel and G. Feldman, “A 3x3 isotropic gradient operator for image process- ing,” in Pattern classification and scene analysis, A Wiley-Interscience publi- cation, pp. 271–272, Wiley, 1968.
[8] J. Canny, “A computational approach to edge detection,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. PAMI-8, pp. 679–698, Nov 1986.
[9] R. Maini and D. H. Aggarwal, “Study and comparison of various image edge detection techniques,” International Journal of Image Processing, vol. 3, no. 1, pp. 1–11, 2009.
[10] C. Harris and M. Stephens, “A combined corner and edge detector,” in Proceed- ings of the Alvey Vision Conference, AVC 1988, Manchester, UK, September, 1988 (C. J. Taylor, ed.), pp. 1–6, Alvey Vision Club, 1988.
[11] K. K. Parhi, VLSI digital signal processing systems: design and implementation. New York (NY): Wiley, 1999.
[12] H. T. Kung, “Why systolic architectures?,” Computer, vol. 15, pp. 37–46, Jan 1982.
Bibliography 45 [13] C.-C. Shen, L.-H. Wang, I. Cho, S. Kim, S. Won, W. Plishker, and S. S. Bhat- tacharyya, “The dspcad lightweight dataflow environment: Introduction to lide version 0.1,” 2011.
[14] Y. Jiao, K. Sudusinghe, and S. S. Bhattacharyya, “Setting up the dspcad lightweight dataflow environment: Setup guide for lide version 0.2,” 2015. [15] S. S. Bhattacharyya, W. Plishker, C.-C. Shen, N. Sane, and G. Zaki, “The
dspcad integrative command line environment: Introduction to dice version 1.1,” tech. rep., DTIC Document, 2011.
[16] M. Pelcat, K. Desnos, L. Maggiani, Y. Liu, J. Heulot, J.-F. Nezan, and S. S. Bhattacharyya, Models of Architecture. PhD thesis, IETR/INSA Rennes; Scuola Superiore Sant Anna, Pisa; Institut Pascal, Clermont Ferrand; Univer- sity of Maryland, College Park; Tampere University of Technology, Tampere, 2015.
[17] A. Hernandez-Lopez, C. Torres-Huitzil, and J. J. Garcia-Hernandez, “Fpga- based flexible hardware architecture for image interest point detection,” Inter- national Journal of Advanced Robotic Systems, vol. 12, no. 7, p. 93, 2015. [18] K. K. Parhi, C. Y. Wang, and A. P. Brown, “Synthesis of control circuits
in folded pipelined dsp architectures,” IEEE Journal of Solid-State Circuits, vol. 27, pp. 29–43, Jan 1992.