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.

dm8148 DVO2 VOUT0输出视频延时大怎么解决?



我现在的情况是同样的视频链路通过DVO2 BT1120 OUT0(延时400ms)输出到GV7600的延时比HDMI输出(延时240ms)的延时大100多毫秒,这是怎么回事?

  • 你这个延时是怎么测量得到的 ?
  • 通过秒表测试,通过拍照同一时刻的采集显示后图像和秒表,我现在的问题是HDMI输出延时应该是正常的,为什么通过DVO2 vout0显示出来的延迟要比HDMI显示大100多毫秒,理论上两者输出延迟应该是基本一致的

  • 你好,

    数据输出DVO2和HDMI前的处理流程是完全一样的么?

  • 对,是完全一样的
  • 我是同时输出HDMI和SDI的,可是SDI这路延迟明显大很多
  • 你好,

    HDMI和DVO2是tied在一起的么? 如果是,两者输出显示的YUV是一样的,数据流也是一样的,延时有区别应该是外围电路的差异导致的。
  • 没有tied一起,dvo2 是bt1120内嵌同步,难道是GV7600解码导致的
  • 你这个是接电视机测试的吗?是否有测试不同的电视机 或者是 显示器,最好是可以用显示器来测试,电视机会带来一定的延时,不同品牌不一样,这个可以参考一下

  • 显示器延时没问题,用别的信号测试过。
    我的板子是用的买的核心板,自己做的底板,核心板VOUT0接的LCD(VGA)作为linux系统的显示输出,我现在用VOUT0接sdi输出,这块会不会有影响呢?
  • gv7600 应当是没有问题的,挺稳定的,只有他出图像了,这部分应当不会有问题
  • 核心板VOUT0原本接的LCD(VGA)作为linux系统的显示输出,我还是在原有的系统下编程的,修改了ti_vdis.c的相关内容
    pContext->deviceParams[VDIS_DEV_DVO2].enable = TRUE;
    pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.vencNodeNum = VDIS_VENC_DVO2;
    pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.aFmt = VDIS_A_OUTPUT_COMPOSITE;
    pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoFidPolarity = VDIS_POLARITY_ACT_HIGH;
    pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoVsPolarity = VDIS_POLARITY_ACT_HIGH;
    pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoHsPolarity = VDIS_POLARITY_ACT_HIGH;
    pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoActVidPolarity = VDIS_POLARITY_ACT_HIGH;
    pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dvoFmt = VDIS_DVOFMT_DOUBLECHAN_DISCSYNC;;
    pContext->deviceParams[VDIS_DEV_DVO2].outputInfo.dataFormat = SYSTEM_DF_YUV422SP_UV;
    以及system_dcctrl.c的相关内容
    #if defined(TI_814X_BUILD)
    /* Display Controller Configuration */
    /* To tie DVO2 and HDCOMP together refer following Mesh */
    Vps_DcConfig gSystem_dctrlTriDisplayConfig = {
    VPS_DC_USERSETTINGS, /* Use Case */
    /* Edge information */
    /*
    {
    //{VPS_DC_BP0_INPUT_PATH, VPS_DC_VCOMP_MUX} ,
    //{VPS_DC_VCOMP_MUX, VPS_DC_VCOMP} ,
    //{VPS_DC_CIG_NON_CONSTRAINED_OUTPUT, VPS_DC_HDMI_BLEND} ,
    {VPS_DC_BP1_INPUT_PATH, VPS_DC_HDCOMP_MUX},
    {VPS_DC_HDCOMP_MUX, VPS_DC_CIG_PIP_INPUT},
    {VPS_DC_CIG_PIP_OUTPUT, VPS_DC_DVO2_BLEND},
    //{VPS_DC_SEC1_INPUT_PATH, VPS_DC_SDVENC_MUX} ,
    //{VPS_DC_SDVENC_MUX, VPS_DC_SDVENC_BLEND} ,
    //{VPS_DC_GRPX0_INPUT_PATH, VPS_DC_HDMI_BLEND} ,
    //{VPS_DC_GRPX2_INPUT_PATH, VPS_DC_SDVENC_BLEND},
    {VPS_DC_GRPX1_INPUT_PATH, VPS_DC_DVO2_BLEND},
    }
    ,
    4,
    */

    /* Edge information */
    {
    {VPS_DC_BP0_INPUT_PATH, VPS_DC_VCOMP_MUX} ,
    {VPS_DC_VCOMP_MUX, VPS_DC_VCOMP} ,
    {VPS_DC_CIG_NON_CONSTRAINED_OUTPUT, VPS_DC_HDMI_BLEND} ,
    {VPS_DC_BP1_INPUT_PATH, VPS_DC_HDCOMP_MUX} ,
    {VPS_DC_HDCOMP_MUX, VPS_DC_CIG_PIP_INPUT} ,
    {VPS_DC_CIG_PIP_OUTPUT, VPS_DC_DVO2_BLEND} ,
    {VPS_DC_SEC1_INPUT_PATH, VPS_DC_SDVENC_MUX} ,
    {VPS_DC_SDVENC_MUX, VPS_DC_SDVENC_BLEND} ,
    //{VPS_DC_GRPX0_INPUT_PATH, VPS_DC_HDMI_BLEND} ,
    {VPS_DC_GRPX0_INPUT_PATH, VPS_DC_DVO2_BLEND} ,
    {VPS_DC_GRPX2_INPUT_PATH, VPS_DC_SDVENC_BLEND},
    }
    ,
    10,
    /* VENC information */
    {
    /* Mode information */
    {
    {VPS_DC_VENC_HDMI, {FVID2_STD_1080P_60}
    }
    , /* 1080p30 is mode
    * is overwritten
    * later inside
    * System_displayCtrlInit
    */
    {VPS_DC_VENC_DVO2, {FVID2_STD_1080P_60}
    }
    , /* 1080p30 is mode
    * is overwritten
    * later inside
    * System_displayCtrlInit
    */
    {VPS_DC_VENC_SD, {FVID2_STD_NTSC}
    }
    }
    ,
    0,//(VPS_DC_VENC_HDMI | VPS_DC_VENC_DVO2), /* Tied VENC bit* mask */
    3u /* Number of VENCs
    */
    }
    };
    今天我又试了VOUT0外同步,输出图像都是正常的,就是延时和内嵌同步一样都是400多毫秒,这样可以确定gv7600是没有问题的。会不会是Linux显示输出的驱动和我配置的有冲突导致的呢,希望大家帮我看看,给我一些建议该如何做,谢了
  • 你是 capture + venc + dec + display 这样来测试的吧;

    可以 直接 capture + display 来测试一下;

  • capture + display 测试SDI的延时是200多毫秒(确实小很多),比HDMI大60多毫秒

  • 编码和解码的 缓存 buf 优化一下,减少一下帧缓存;

    另外一个是 编码模式  修改为 baseline , 或者是 high 但是不要包含 B 帧; 

  • 我没有用编码和解码,我的chailink是cap->dei->ipcframeout(->ipcframein->alg dsp)->dup->swms->display,我现在的问题是两路输出延时不一样,hdmi显示延时260ms,而DVO2这一路的延时是470ms(这明显不正常),而且用cap->dis测试,hdmi的延时是180ms,而dvo2的延时是270ms(这个也不正常),按照延时性能手册上的,cap->dis延时所有加起来按我的环境180ms是正常的,现在就是不知道为什么用DVO2输出的延时为什么会大那么多