This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RGB Scale Question on DM8148

I had tested the YUV422 format can be scaled(1920x1080 -> 512x512), but RGB888 get fail.
Then i follow some discussion and find the HDVPSS scalers are 4:2:2, so RGB format can't be scaled?

The question is my algorithm need rgb format and rescale to 512x512, now i use c code to implement, but it is too slow,
Is any solution can get better performance?


  • Yes, the HDVPSS scalers only work in YUV (4:2:0 or 4:2:2), so a different approach is needed for RGB.

    If you only want to output the RGB scaled video, then disregard the rest of this post and use the GRPX blocks to scale and output your video at the same time.  (How to do this is software dependent - the fb driver is probably easiest to use, but something on the VPSS M3 may perform better.)

    If you want the RGB data back in memory, it's somewhat harder.  Here are three possible answers, in increasing order of performance and difficulty of implementation:

    1) Use NEON SIMD on the A9.
    This can give you better performance than vanilla C, but only by a smallish constant factor (maybe 2 or 3 at best).

    2) Use the C674x DSP.
    This can go faster than anything on the A9, but the coding effort is nontrivial.  How to run it would depend on what software you're using (RPE, alg link, ?).

    3) Use a GRPX output scaler along with a video loopback path.
    While the RGB scalers in the GRPX modules don't support writing back to memory directly, there are paths from DVO2 blended output back to memory which can write the scaled output back again.  I don't know enough to suggest how you would go about using these, just that it's supposedly possible.

    Hope this helps,

    - Mark