Sonsivri
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
November 25, 2024, 04:22:56 16:22


Login with username, password and session length


Pages: [1]
Print
Author Topic: Recoding openCV C++ project in pure verilog  (Read 3687 times)
0 Members and 1 Guest are viewing this topic.
promach
Junior Member
**
Offline Offline

Posts: 44

Thank You
-Given: 14
-Receive: 0


« on: May 13, 2016, 06:30:51 18:30 »

I have a 3 month project to work with by hand-recoding openCV C++ project into pure RTL for FPGA usage.

I have a Xilinx Zynq FPGA and I have Vivado.

The code I am using are at https://github.com/Itseez/opencv/blob/master/modules/features2d/src/orb.cpp , https://github.com/Itseez/opencv/blob/master/modules/features2d/src/feature2d.cpp , and http://pastebin.com/N69WE89j  The full eclipse C++ project can be found in the attachment as well.

Anyone can advise on how to start working on this ? I have been told to scrutinise the code for any maths operations which I am doing now and I need to use the AXI interface and logicore IP for this, right ?

Thanks !
Logged
promach
Junior Member
**
Offline Offline

Posts: 44

Thank You
-Given: 14
-Receive: 0


« Reply #1 on: May 14, 2016, 11:53:01 11:53 »

So, the focus here is to implement floating-point maths operation in FPGA ? Anyone can recommend good references for this ?

I searched online and found that equation (1) can be transformed into (2). But how ?

Pixel_ C = (int)(Pixel_A * alpha + Pixel_B * ( 1-alpha ));                ---> (1)
Pixel_ C = (Pixel_A * alpha + Pixel_B * ( 32-alpha ) + 16)>>5;     ---> (2)
Logged
hate
Hero Member
*****
Offline Offline

Posts: 555

Thank You
-Given: 156
-Receive: 355


« Reply #2 on: May 28, 2016, 01:41:18 01:41 »

I believe translating OpenCV code into RTL directly won't be any efficient. You need to implement your algorithms suitable to and taking advantage of an FPGA architecture. But maybe you need to do this for study purposes?

I searched online and found that equation (1) can be transformed into (2). But how ?

Pixel_ C = (int)(Pixel_A * alpha + Pixel_B * ( 1-alpha ));                ---> (1)
Pixel_ C = (Pixel_A * alpha + Pixel_B * ( 32-alpha ) + 16)>>5;     ---> (2)
This may be related to how OpenCV stores alpha data.
Logged

Regards...
Pages: [1]
Print
Jump to:  


DISCLAIMER
WE DONT HOST ANY ILLEGAL FILES ON THE SERVER
USE CONTACT US TO REPORT ILLEGAL FILES
ADMINISTRATORS CANNOT BE HELD RESPONSIBLE FOR USERS POSTS AND LINKS

... Copyright © 2003-2999 Sonsivri.to ...
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines LLC | HarzeM Dilber MC