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.

How to use De-interlacer module in DM814X

Hello,

We are working on 1080I capture with gstreamer and V4L2 driver. Our EZSDK version: 05 05 02 00.

Our aim is to capture 1080I video, encode and transmit to other terminal, then to decode and display the video.

Now we can  capture the 1080I video. It seems good but it has some problem.

In TI ezsdk, when the v4l2 driver captures the 1080i video, it performs field merge. So it converts 1080i video to 1080p in field merge process(We do not have any doc about this procedure. It looks like the driver adds two fields to one frame without any further processing. We may be wrong about this due to lack of doc.)

Our dataflow:

1080I->V4L2 capture(field merge)->1080P->encoder-> … >decoder->1080P->Display

This process generates the “combing” artifacts in interlace mode. Although DM814X has de-interlacer module,  it can not be used under current driver architecture. The reason is that  after the v4l2 capture driver, the video signal is already progressive.

Our question is:

How to use the de-interlacer module in DM814X with current V4L2 capture driver to remove the combing artifacts?

Or can this DEI module be used independently?  

So we can change the data flow as the following:

1080I->DEI module->1080P->V4L2 capture->encoder…

On the TRM 12.3 It clearly claims it can support. But how to realize it? (we use gstreamer+v4l2)

"The DEI is primarily used to convert interlaced video source material to progressive form, which is based on the motion-adaptive de-interlacing. It performs both temporal and spatial interpolation via edge directed interpolation. It also incorporates four fields of motion detection to produce high quality output. The DEI can perform de-interlacing on up to 1080i video input source, producing 1080p video output."

Thank you very much.

  • Hello,

    You could check OMX capture_encode demo in EZSDK for interlaced capture. It  uses DEI component.

    You could check here for more information regarding v4l2 capture driver:

    http://processors.wiki.ti.com/index.php/TI81XX_PSP_VIDEO_CAPTURE_Driver_User_Guide

    roderick fang1 said:
    How to use the de-interlacer module in DM814X

    In gstreamer we are using omx_mdeiscaler . The high quality deinterlacer and scaler is not available for DM814x processors. The omx_mdeiscaler is element with one input and 2 outputs ports. The input port supports format 420/422,interlaced/progressive, on the output DEI supports 422 and 420. The DEI is primarily used to convert interlaced to progressive. If the capture is in the progressive mode the DEI algorithm is turn off. DEI supports scaling upto 1920 maximum pixels in horizontal direction.

    Example pipeline via gstreamer:

    gst-launch v4l2src .... ! omx_mdeiscaler name d d.src_01 ! ... ! encoder ! filesink ...  d.src_00 ! .... ! omx_videosink

    d.src_00 - Outputs YUV 422 suitable for display

    d.src_01 - Outputs YUV 420 suitable for input to an encoder - for transcode use-cases.

    omx_mdeiscaler could be used after decoder also.

    Note: The both output should be connected. If you do not need for example output YUV 422 , you should connect it to fakesink. If you wish you could add property to the fakesink silent=true also.

    Best Regards,

    Margarita




  • Hello,

    Thank you for the reply.

    On TI website and EZSDK, it seems that there is no one example about interlaced video capture pipeline using omx_mdeiscaler. Can you give a link?

    We have two questions, please have a look. 

    Q1: DEI module has four modes, how to setup the modes?

    Q2:In V4L2 driver, it does field merge and generates the progressive output. That means if we want to use DEI module, we have to change the V4L2 driver to field capture?

    Best regards.