FINAL PROJECT: Abstract and Reader's Reponse > Optimizing Computer Vision Algorithms for DSPs
N -- when you submit to TI, you may want to put a hotlinked outline at the beginning, with links to the sections.
Good plan. Glad that this class supports you in this professional work.
Good plan. Glad that this class supports you in this professional work.
May 7, 2017 |
Marybeth Shea
Digital Signal Processors (DSPs) offer a low power approach to types of signal processing such as computer vision. In order to fully leverage the strengths of DSPs, it is important to have computer vision libraries that are optimized for DSP architectures. Since the industry standard computer vision library, OpenCV, is optimized for non-DSP architectures, the goal of this project was to mimic some of the functionality of OpenCV efficiently on the Texas Instruments C6000 DSP. To accomplish this task, the main methods used were the use of single-instruction multiple-data (SIMD) instructions and software pipelining. The SIMD assembly instructions were accessed through intrinsic C functions inlined by the Texas Instruments compiler. Additionally, many of the loops were designed to have low loop-carried dependencies in order to parallelize this implementation with software pipelining. The functions optimized in this project were an image thresholding function, a pixel intensity histogram calculation function, a bilateral filter, and two types of demosaicing filters. The histogram calculation function is mainly used for image post-analysis by users. The thresholding function and bilateral filter are designed for real-time image processing. The demosaicing filter is designed as an image pre-processing step for raw output from color filter array (CFA) cameras.
Reader Profile:
I am writing to software engineers at Texas Instruments who are also working on this project. Their job is to integrate the functionality I have added into the overall computer vision library. I imagine an audience that would much rather read this document than have to look through the code, since optimized code is generally more difficult to read than regular code.
Reader’s Response:
I would imagine that my audience will be very interested in how to test that my code works properly since it is going to be integrated into a library. In order to help my audience evaluate the correctness of my code, I am going to include testing instructions that compare my output with images output from the corresponding function in OpenCV.
Voice:
I am writing for a technical audience so I will be writing in 3rd person.
Citation:
I will include a formal citation page and in-text citations.