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.

TDA3MV: TDA3 Video Scale

Part Number: TDA3MV

I'm outputting camera data coming into the ISS port on the TDA3 to DSS via the DSP.

I want to upscale the data output to the DSP. Which one should I use?

dss_m2mwb? or iss_m2mresizer?

I need some advice.

  • Hi Kim,

    Both can support upscaling, so please check what's requirements are and see what suites your requirements based on limitations for these modules. 

    Regards,

    Brijesh

  • Hi Kim,

    I'm outputting camera data coming into the ISS port on the TDA3 to DSS via the DSP.

    What is the camera output data format (raw or YUV)?

  • Hi Gang

    data format : raw14bit

    If it's raw, I have to use isp, and if it's yuv, I can just use resize?

    Regards,

    Kim

  • Hi Kim,

    If it's raw, I have to use isp, and if it's yuv, I can just use resize?

    You need to check if the camera output is really raw or yuv first.

    Both ISS and DSS can resize YUV images.

  • Hi Gang

    Yes, our camera outputs RAW 14-bit.

    If, as you mentioned, it only supports YUV processing, can I connect an ISP to convert RAW to YUV format?

    Regards,

    Kim

  • Hi Kim,

    Yes, our camera outputs RAW 14-bit.

    If your camera output is in raw format rather than YUV, then the processing is probably much more complex than just upscaling.

    What is the format of your raw camera output and how do you need to convert from raw to YUV?

  • Hi

    It receives RAW14BIT(GRAY) input and displays it as YUV data in the DSP.

    Regards,

    Kim

  • Hi

    I would like to perform the following functions

    IssCapture(RAW14) -> IssM2mIsp -> IssM2mResizer -> Display_Video

    Void chains_iss_Canlab_Display_SetAppPrms(
        chains_iss_Canlab_DisplayObj *pUcObj, Void *appObj)
    {
        chains_iss_Canlab_DisplayAppObj *pObj
            = (chains_iss_Canlab_DisplayAppObj*)appObj;
    
        UInt32 rszOutWidth;
        UInt32 rszOutHeight;
    
        ChainsCommon_GetDisplayWidthHeight(
            pObj->chainsCfg->displayType,
            &pObj->displayWidth,
            &pObj->displayHeight
            );
    
        /* Create the sensor now */
        strncpy(pObj->appSensInfo.sensorName, pObj->chainsCfg->sensorName,
            ISS_SENSORS_MAX_NAME);
        pObj->appSensInfo.numCh       = 1U;
        pObj->appSensInfo.numCSI2Inst = 1U;
        pObj->appSensInfo.ispOpMode = ISSM2MISP_LINK_OPMODE_12BIT_LINEAR;
        appCreateISSSensor(&pObj->appSensInfo);
    
        appInitIssCaptParams(&pObj->appSensInfo, pUcObj->IssCaptureLinkID,
            &pUcObj->IssCapturePrm);
    
        appInitIssIspParams(&pObj->appSensInfo, pUcObj->IssM2mIspLinkID,
          &pUcObj->IssM2mIspPrm);
    
        pUcObj->IssCapturePrm.allocBufferForRawDump        = TRUE;
        pUcObj->IssCapturePrm.outParams[0U].numOutBuf      = 5U;
    
        pObj->captureOutWidth  = pUcObj->IssCapturePrm.outParams[0U].width;
        pObj->captureOutHeight = pUcObj->IssCapturePrm.outParams[0U].height;
    
        Vps_printf(" CHAINS: Capture out size = %ux%u\n",
                   pObj->captureOutWidth, pObj->captureOutHeight);
    
        rszOutWidth  = 1280U;
        rszOutHeight = 720U;
    
        setIssResizer(
                    &pUcObj->IssM2mResizerPrm,
                    pObj->appSensInfo.numCh,
                    rszOutWidth,
                    rszOutHeight);
    
        chains_iss_Canlab_Display_SetDisplayPrms(
            &pUcObj->Display_VideoPrm,
                pObj->chainsCfg->displayType,
                pObj->displayWidth,
                pObj->displayHeight,
                rszOutWidth,
                rszOutHeight);
    
        Vps_printf(" CHAINS: Display tar = %ux%u on %ux%u panel\n",
                   rszOutWidth, rszOutHeight,
                   pObj->displayWidth, pObj->displayHeight);
    
        ChainsCommon_StartDisplayCtrl(
            pObj->chainsCfg->displayType,
            pObj->displayWidth,
            pObj->displayHeight);
    }
    

    However, I'm getting an error like the one below.

    Is there anything I should check?

    [IPU1-0]      2.130909 s:  ISSCAPTURE: Create in progress !!!
    [IPU1-0]      2.179649 s:  UTILS: DMA: Allocated CH (TCC) = 48 (48)
    [IPU1-0]      2.179741 s:  UTILS: DMA: 0 of 1: Allocated PaRAM = 48 (0x63304800)
    [IPU1-0]      2.179954 s:  ISSCAPTURE: Create Done !!!
    [IPU1-0]      2.180229 s:  ISSM2MISP: Create in progress !!!
    [IPU1-0]      2.221191 s:  ISSM2MISP: ERROR: CH0: IOCTL_VPS_ISS_M2M_SET_ISP_PARAMS failed (Pass Id = 0)
    [IPU1-0]      2.221374 s:  Assertion @ Line: 432 in issM2mIspLink_drv_create_delete.c: (Bool)0U : failed !!!
    [IPU1-0]      2.221771 s:  Assertion @ Line: 432 in issM2mIspLink_drv_create_delete.c: (Bool)0U : failed !!!
    

    Regards,

    Kim

  • Hi Kim,

    It receives RAW14BIT(GRAY) input and displays it as YUV data in the DSP.

    I suppose you mean that your sensor output is in 14-bit monochrome format.
    In that case, YUV output is also monochrome.

    Unfortunately, IssM2mResizer and dss_m2mwb only support 8-bit YUV input (no support for 14-bit input).

    On the other side, TDA3 ISS only supports Bayer pattern raw input images natively.