This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

FIR Filter on Mali 400

Hi everyone.

We are trying to use mali 400 GP2 for real time audio processing. Audio data is signed short(16 bit).

We implemented FIR filter, but it work very slow for real time processing.

We have some problems to raise productivity.

Data loading and writing(rendering) to textures.

     First problem is that, can't load data to textures as signed, forced to convert each input sample in fragment shader from additional code, if it less than zero, and convert it back when writing output sample.

     Second problem: Can't load each sample to each component, forced to lad data in one color as 8 bit in R and 8 bit in G, or 5 bit in R 6 in G, 5 in B, because of this doing additional calculations.

     Third problem, each component clumps to [0:1],

Can we somehow load signed data, or unsigned short for each of components, is there any way or any extensions to handling this?

We are using mali 400 on A20 under linux.

Thanks and Regards.

Parents
  • > Can we somehow load signed data, or unsigned short for each of components, is there any way or any extensions to handling this?


    Not directly on Mali-400, at least not via textures. OpenGL ES 2.0 really doesn't have anything like the texture workload you are trying to implement, and Mali-400 it doesn't support OpenGL ES 3.0 (which has native support for integer textures). Any of the Midgard family of Mali GPUs would be better suited to what you are trying to do if you want to keep this approach.


    If you want to try something different one other idea is to treat the input samples as per-vertex data, rather than texture samples. Render a grid of vertices on screen, and encode the audio data as per-vertex varying payload. On Mali-400 this would allow fp16 per channel inputs, and signed data.


    HTH,

    Pete

Reply
  • > Can we somehow load signed data, or unsigned short for each of components, is there any way or any extensions to handling this?


    Not directly on Mali-400, at least not via textures. OpenGL ES 2.0 really doesn't have anything like the texture workload you are trying to implement, and Mali-400 it doesn't support OpenGL ES 3.0 (which has native support for integer textures). Any of the Midgard family of Mali GPUs would be better suited to what you are trying to do if you want to keep this approach.


    If you want to try something different one other idea is to treat the input samples as per-vertex data, rather than texture samples. Render a grid of vertices on screen, and encode the audio data as per-vertex varying payload. On Mali-400 this would allow fp16 per channel inputs, and signed data.


    HTH,

    Pete

Children