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.

Video loopback usecase.



Hi,

I am in process of evaluating DM8168 for a video application. The use case is as described below:

  1. Capture YUV data
  2. Do required processing (YUV to RGB conversion)
  3. Display RGB data on Graphics plan

Queries:

  1. How can I convert YUV data to RGB? Does VFPC support this? If not is there any alternate way to achieve this?

Regards,

Krunal

  • Krunal,

    Couple of ways possible here -

    • You can use DSP for software based color conversion.
    • You can do software based color conversion on ARM using Neon accelerated routines.
    • If your application allows I believe it should be possible to capture in RGB format (Somebody HDVPSS team can confirm this)

    Thanks

    Satish

  • Hi Satish,

    Thanks for the valuable inputs.

    Here are my concerns:

    1. We don't want to use DSP. We want to have simple data flow and less complexity in the system (this is the last option we would like to go for).
    2. Can you please send me some details on Neon accelerated routines? I heard this first time. Few examples and documents will help a lot.
    3. Yes, we can capture in RGB format. Here the issue is we may need encoding (H.264) support in future and I learn from e2e forum that encoders running on HDVICP does not support RGB input.

    Regards,

    Krunal 

  • Hi,

    Capture driver can give you RGB out using color converter inside VIP. This is applicable to only to single channel capture. 

    Regards,

    Hardik Shah

  • Krunal Patil said:
    • Yes, we can capture in RGB format. Here the issue is we may need encoding (H.264) support in future and I learn from e2e forum that encoders running on HDVICP does not support RGB input.

    OK - you didn't mention about encoding requirement earlier - if you can explain more of the flow, I can perhaps suggest better. In absence of that info, I am tempted to ask if there is a specific reason to display using graphics plane instead of video plane... 

  • Hi Satish,

    The complete usecase is for the video conferencing PIP functionality:

    Please note for 1080P to D1 scaling we would like to use framebuffer display driver's resizing capability.

    Regards,
    Krunal

  • Hi Krunal,

    Your usecase is possible in following way using OpenMax.

    1. Capture using VFCC component. Currently VFCC supports single channel in and single channel output. But you can modify VFCC to get dual outputs. Both outputs will be from same source, one output can be YUV1080P and other can be RGB1080P.

    2. YUV1080P can be directed to Encoder

    4. RGB1080P can be directed to FBEDEV.

    5. FBDEV can do downscaling

    6. Decoder output you need to convert to YUV420 --> YUV422 using VFCC

    7. Display VFCC output TV using VFDC.

    Regards,

    Hardik shah

  • I  just forgot to mentions fbdev supports scaling from 4X to 1/4x

    Regards,

    Hardik Shah

  • Hi Satish,

    Can you please confirm following things?

    1. Is there any way to achieve use case mentioned in above diagram using V4l2 and FBdev drivers only. (We don't want to go for tunnel mode using OpenMax).
    2. Can OMX VFPC component convert YUV to RGB or vice-versa?
    3. If 2nd point is not feasible at all, Does HDVICP support RGB input? (input -> RGB, output -> H.264)

    Regards,

    Krunal

  • Krunal Patil said:
    Can OMX VFPC component convert YUV to RGB or vice-versa?

    No.

    Krunal Patil said:
    If 2nd point is not feasible at all, Does HDVICP support RGB input? (input -> RGB, output -> H.264)

    No.

    I think the flow suggested by Hardik is the best from performance perspective.

    Do you need the PIP window to be blended on top of the video window, or you want it to be pasted.

    Thanks,

    Satish

  • Yes. I need the PIP window to be blended on top of the video window.

    Regards,

    Krunal

  • Hi,

    Blending is possible using FBDEV driver.

    Regards,

    Hardik Shah