Over the past year, while I was writing my masters’ thesis, I was able to spend great amounts of time on research and also to put a huge effort into solving an exciting problem on multiple platforms. I found that various topics covered by my MSc studies could be utilized during my project and I also had the opportunity to further my mostly theoretical knowledge by acquiring practical experience through architectural decisions and implementation.
My task included both examination and implementation of an algorithm capable of producing depth information of a scene using two input images taken with an IR camera. The algorithm was implemented, tested, and evaluated on different platforms (CPU, OpenCL, FPGA), then implementations were compared to each other.
The solutions developed for different platforms are suitable to demonstrate the main advantages and disadvantages of the given platforms and also to reveal new opportunities to further optimize them. In spite of the fact that the comparison of my solutions enables to draw conclusions only from the actual implementations, and there cannot be made an unequivocal statement about any of the devices/platforms being ultimately more desirable than the others.
The depth calculation algorithm, the devices and platforms used in my project, and the details of each implementation method including results and their comparison will be discussed on the following pages. Also a short summary of my experiences gained from completing the given task and a few further development ideas are listed at the end.