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.

EZSDK scaling problem

Other Parts Discussed in Thread: TVP7002

Hi all:
I use ezsdk 5.05 and try to create my usecase:
|-> Up scale to 1080P -> SDI out (SD)
Capture(DVI/HDMI,720P)--|
|-> Down scale to pal -> CVBS out(DVO2)
Now I can capture and up scale the video use v4l2 and framebuffer(fb&fb2), such as showed below:
720p -------> copy-------> up scale -----> 1080p
|--------> down scale -----> pal
Due to the framebuffer scaling are implemented through GPRX module, it can only handle the video within xres and yres defined size (720*576), lead to SD (NTSC or Pal) output is only a part of the source image.
Another method is to use the v4l2 capture complete the down scale(720p->720*576), then using the framebuffer complete the up scale(720*576->1920*1080), this method can display the SD and HD video, but HD video quality will be very low.
So, my question is:
1, Is there another way to complete down scale(720p->720*576)?
2, I'm trying to use the OMX VFPC to do scaling, but VFDC does not support SD output in the document description, I can't use that?

Could you help me with it issue?Thank you!

  • Hello,

    Feitao Li said:
    2, I'm trying to use the OMX VFPC to do scaling, but VFDC does not support SD output in the document description, I can't use that?

    You could try OMX decode_display demo. There we have a noise filter element to convert 420 to 422 for SD output.

    e2e.ti.com/.../793626

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/138405

    BR

    Margarita

  • Hi all:
    I use ezsdk 5.05 and try to create my usecase:
    |-> Up scale to 1080P -> SDI out (SD)
    Capture(DVI/HDMI,720P)--|
    |-> Down scale to pal -> CVBS out(DVO2)
    Now I can capture and up scale the video use v4l2 and framebuffer(fb&fb2), such as showed below:
    720p -------> copy-------> up scale -----> 1080p
    |--------> down scale -----> pal
    Due to the framebuffer scaling are implemented through GPRX module, it can only handle the video within xres and yres defined size (720*576), lead to SD (NTSC or Pal) output is only a part of the source image.
    Another method is to use the v4l2 capture complete the down scale(720p->720*576), then using the framebuffer complete the up scale(720*576->1920*1080), this method can display the SD and HD video, but HD video quality will be very low.
    So, my question is:
    1, Is there another way to complete down scale(720p->720*576)?
    2, I'm trying to use the OMX VFPC to do scaling, but VFDC does not support SD output in the document description, I can't use that?

    Could you help me with it issue?Thank you!
  • thank you , Is this case possible?
    Capture 1 channel HD video(DVI/HDMI,720P)---> Up scale to 1080P and Down scale to pal ---> SDI out the HD vide(DVO2) and CVBS out the SD video(SD)
  • Hello,

    I would recommend you to check this guides:

    processors.wiki.ti.com/.../TI81XX_PSP_VIDEO_CAPTURE_Driver_User_Guide
    processors.wiki.ti.com/.../TI81XX_PSP_VPSS_Video_Driver_User_Guide

    OMX used guide also.

    The capture through OMX VFCC is supported through component input (TVP7002).
    If you need to capture trough some other input you shall use v4l2 capture driver and to add the external decoder:
    processors.wiki.ti.com/.../DM81xx_AM38xx_Adding_External_Decoders_to_V4L2_Capture_Driver

    Check my previous post about the OMX decode_display demo.

    Also you could try processing components like: OMX/omx-gstreamer VFPC-DEI (omx_mdeiscaler), SC5(omx_scaler) and NF(omx_noisefilter).


    BR
    Margarita
  • Thanks.
    Now I use the external decoder ADV7611 and can capture the video via v4l2, but I can not scale the full size video to two size, such as 720P -> sd and 1080P,1080P -> sd and 720P. In order to implement it, I just can only down scale in capture, and then scale up to two size video use framebuffer. but this method will lower the quality of the source video.
    So my problem is : Is there any other method using ezsdk or OMX to implement this case?
  • Hello,

    Are you using gstreamer?

    Are you checked this demo:

    saLoopBackScale

    This application demonstrates the scaling and cropping feature of the V4L2 capture driver. Application takes the input through TVP7002 decoder on VPSS VIP port. Capture buffers are displayed using V4L2 display driver. Sample application uses user pointer buffer mechanism for both capture and display drivers. Capture driver crops the image to the same original input resolution. It then scales it to VGA(640X480) resolution and displays it through display driver.



    BR
    Margarita
  • Thanks.
    I don't use gstreamer.
    I have checked this demo and I can use this method to implement down scale in capture.
    In this case, I need to output two different resolution copy video, one sd and one SDI output, At the same time, Only one capture soure video have I.so I must finish two zooms in the same time,one up and one down. In order to keep the quality of the video, I use the framebuffer to implement down and up scale ,but the framebuffer don't support the full size down scale, it must crop the original video to the output resolution and then scale this part.
    By the way, How can I use the SC5 in ezsdk?
  • Hello,


    In gstreamer SC5 has name omx_scaler. You could use it in pipeline like:


    gst-launch -e v4l2src device=/dev/video0 always-copy=false queue-size=12 num-buffers=-1 ! 'video/x-raw-yuv-strided,format=(fourcc)NV12,width=800,height=480,framerate=(fraction)60/1' ! omxbufferalloc silent=false numBuffers=12 ! omx_scaler ! v4l2sink device=/dev/video1

    In OMX demos the decode_display is using SC5 component.
    The OMX capture_encode demo is using DEI - scaler component.

    BR
    Margarita