Convolution

Hi there !

I tried to implement a 33 convolution filter in a opengl rendering process via the imaging subset. I’m working on a video flow of 720576 images with a 800 MHz biprocessor and a Quadro Fx 2000. Do you think it’s quite normal the graphic board need almost 1 second per frame to compute this conolution operation ? (I tried also with the accumulation buffer and the time is quite the same).
How to be sure this convolution hardware operation is really done on the graphic board and not emulated in soft ?

Thanks you all
Seb

Originally posted by Draco:
How to be sure this convolution hardware operation is really done on the graphic board and not emulated in soft ?

RTFD (read the fine documents) which are at Nvidia.

Probably no Nvidia card supports the imaging subset and the accum buff in hw.

It’s always a good idea to do a little research before you buy.

So good for me to just tested it, how do we call this usually ? hmmm… developpment research, is that it ?!

So good for me to just tested it, how do we call this usually ? hmmm… developpment research, is that it ?!

I don’t know if this helps any but the new Radeons (9700 and up) support the accum buffer in HW. Does ATI even make a professional board like Nvidia does with the Quadro? For some reason I can’t remember. Probably because I need to be in bed and not on this board.

-SirKnight

[This message has been edited by SirKnight (edited 07-04-2003).]

The simplest way to test for hardware acceleration is to implement your convolution function in software and compare frame rates against the OpenGL implementation. If you render a full screen 720x480 video frame at some low but consistent rate (say, 10 frames per second) then it should be completely obvious as to whether or not the convolution is being done in hardware. If it isn’t, you won’t see much of a difference between the two implementations, if any. If the convolution is hardware accelerated, it will be unmistakably faster.

I’m not sure if V-Man meant to phrase his post differently, but its obviously not the case that nvidia (and other brand) cards do not accelerate the imaging subset. Sure, certain portions may not be accelerated, like convolutions (not out of the question though) but pre-convolution scale and bias, color matrix and post-matrix scale and bias are most certainly hardware accelerated on nvidia cards. I an currently using the color matrix and post matrix bias to perform ycrcb to rgb color space conversion on two blended video channels (main + overlay). The speed increase over fixed point color space conversion in software is remarkable.

Thanks a lot Riff, the convolution of a 720576 picture with a 33 convolution filter seems to take almost 1s so it’s probably emulated.
The better solution I found is a fragment program doing the same stuff. It’s still slow but quite faster in comparaison.