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.

OMX VFPC Scaler limitations

Hello,

After finding out that the inline scaler in the VPSS cV4L2 capture path does not scale down data in the RGB24 format, we are thinking of alternatives.

The data is initially RGB24 and I think it can be correctly captured to RGB24, YUV422, NV12 by the V4L2 capture component 1:1 (without scaling it down). 

We are now thinking of using the OMX scaler component (VFPC) for resizing.

Could you please clarify on the limitations of the OMX scaler in terms of:

1) Which formats does the OMX VFPC scaler accept?

2) Can we do both down-scaling and up-scaling?

3) Can we scale an arbitrary dimension to an arbitrary dimension (the way up and down)?

4) If not, what are the max & min dimensions at the scaler's input and output?

5) Again, if answer to 3) is "no", what is the step? Do we need to be a multiplication of a certain number for width and height?

Thank you for your help,

Przemek Gajos

  • Answers to few of your questions

    1) Which formats does the OMX VFPC scaler accept?

    Depends on the path being used. normally it should be YUV422/YUV420 to YUV422

    2) Can we do both down-scaling and up-scaling?

    yes

    3) Can we scale an arbitrary dimension to an arbitrary dimension (the way up and down)?

    yes, as long as both width/height are even

    4) If not, what are the max & min dimensions at the scaler's input and output?

    Min size is 64x64 and max width is 2014

    5) Again, if answer to 3) is "no", what is the step? Do we need to be a multiplication of a certain number for width and height?

    Almost step size is 2 pixels and 2 lines.

    Regards,

    Brijesh

  • Hello,

    przemek_gajos said:
    1) Which formats does the OMX VFPC scaler accept?

    OMX VFPC SC5  there is no support of 4:2:2 YCbCr  on input port of VFPC scalar component, it will  return “OMX_ErrorBadParameter” for all input color formats except yuv420 semiplanar.

    You could check the OMX user guide regarding DEI, Noise Filter and SC5 components.

    BR
    Margarita

  • Hi Margarita,

    >>> You could check the OMX user guide regarding DEI, Noise Filter and SC5 components.
    Where can I find the user guide?
    I already searched for it and only found this:
    processors.wiki.ti.com/.../OpenMax_Development_Guide
    ...where the contents on the scaler (SC) component is very limited.

    Thanks,
    Przemek
  • Hello,

    EZSDK folder/component-resources/omx_xx_xx_xx/
    There you could find the OMX user guide.

    BR
    Margarita
  • Hello Margarita, Brijesh,

    Thank you for your help so far. 

    I have tested OMX VFPC SC component and I can specify NV12 (OMX_COLOR_FormatYUV420SemiPlanar) at its input.

    However, for its output port it will not accept NV12 and it has to be OMX_COLOR_FormatYCbYCr (which is in line with the manual really...:/). 

    Is there anything there that would scale down to NV12? We want to encode the data after it has been scaled down...

    Thanks,

    Przemek

  • update:
    I think I will try the deinterlacing component VFPC-DEI as a scaler.
    From the manual, it looks that VFPC-DEI will both accept NV12 on its input and it will output NV12. Then we could chain it with the encoder.
    What do you think?

    Kind regards,
    Przemek
  • Hi,

    From the hardware point of view, DEI path support for NV12 format. I am not sure about OMX.

    Regards,

    Brijesh

  • Hello,

    The OMX DEI-scaler component has 1 input and two outputs.

    On the input it accept 422/420(NV12), on the first output the format is 422, on second 420.

    Since the DEI OMX component integrated dual output driver, hence it is must to have two outputs. DEI component will work only when both o/p ports are connected. You can ignore the other output and whenever fillBufferDone call comes for that port, you can call FillThisBuffer without processing anything.
    This way DEI will be opertaing in dual o/p mode without one of the outputs. This is in case you are using omx demo.

    In case that you are using gstreamer you could connect fakesink element to the port that you will not use.

    BR
    Margarita