about the jitter java api performance

Mar 19, 2011 at 12:56am

about the jitter java api performance

Hi,

field is a too both visual and code-based (python, clojure, javac among others):

http://openendedgroup.com/field

The communication between field and jitter is done with a mxj objects that behaves like a python box, in the sense that we design the mxj object in field using python. When a Jitter object arrives, the code is executed and the result sent to the outlet.

It is possible to recall Jitter objects via the Java api as shown in the tutorial:

http://www.cycling74.com/docs/max5/tutorials/jit-tut/jitterchapter51.html

But we are by now trying to operate numerically the jitter matrices with operators taken from diverse java libraries like ejml:

http://code.google.com/p/efficient-java-matrix-library/

In order to do that, we have to do the following (one time for each plane):
1. create a zeroed array
2. extract the row vector from JitterMatrix with copyVectorToArrayPlanar
3. use the constructor SimpleMatrix(rows, cols, rowMajor, double[]) to convert the array into a row SimpleMatrix
4. use .combine method to add all the rows in this fashion

Then we apply a transformation with the ejml java library.

And to recover the JitterMatrix from SimpleMatrix:
1. extractVector gets a 1-row matrix
2. extractVector().getMatrix().getData() gets an array from a 1-row SimpleMatrix
3. set the array as a row of JitterMatrix with copyVectorToArrayPlanar

The problem is the performance, we could not find a way to map the jitter matrices into a java matrix class (SimpleMatrix in our example) without using row or cell descomposition which makes for example the rendering of a 320×320 image last about 3 seconds, which is not suitable for real time.

My questions would be:
a. is possible to optimize the performance of the methods that translate a jitter matrix into another formats (for the moment only floats and arrays)?
b. the same for the methods that fill a jitter matrix with another formats like floats or arrays?
c. is it feasible to build a method that transforms a jitter matrix into a java matrix class and vice versa?

Here is the code that we are testing that makes a simple numerical transform of each plane of the Jitter matrix:

http://bodsiin.codepad.org/hz0uUWEs

I attach also an example of a filtered image with this technique.

best! bodsiin

[attachment=156863,1946]

Attachments:
  1. JitFieldplanes12.png
#55622

You must be logged in to reply to this topic.