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.

RTOS/TDA3XEVM: with OV10640, Change the target image resolution.

Part Number: TDA3XEVM

Tool/software: TI-RTOS

Hello all,

Usecase - ISS usecase; 1CH ISS capture + ISS ISP + ISS LDC+VTNF + Display

Camera sensor - OV10640

Current Resolution - 1280x720

We would like to reduce the resolution to 640x480 for the above usecase. Could you please give some code sample to achieve the same?

Thanks,

Abhishek

  • Abhishek,

    Where do you want to reduce? Just at the display? Do you have this smaller LCD? or you just want to position it on bigger display?
    You could use display inline scalar to reduce the size in display..

    Regards,
    Brijesh
  • Brijesh,

    Thanks for the reply. The YUV image is being saved which is converted to RGB for further processing. The resolution of the saved image needs to be 640x480.

    Thanks,
    Abhishek
  • Abhishek

    Who is converting into RGB?
    Well you could down scale the image into required resolution in ISP. But you require to bypass simcop/ldc, as it is tuned for this small resolution.
    May be you could just remove Simcop if not required from the usecease.

    Just set the ISP Resizer output to 640x480..

    Rgds,
    Brijesh
  • Brijesh,

    Thanks for the reply. We are converting the YUV into RGB as this is consumed by many sub-systems for further processing.
    We'll try your suggestion.

    Thanks,
    Abhishek
  • Brijesh,

    1) Could you please help us with the appropriate variable changes in code in order to achieve the image resize for the previously mentioned usecase?
    2) Also, is enabling ISS_ENABLE_DEBUG_TAPS=yes in the configuration file required to resize the target image?

    Thanks,
    Abhishek

  • Hi Abhishek,

    Please change the ISP output size in the API IssUtils_SetIspCreateParams, in the file VSDK_3_3\vision_sdk\apps\src\rtos\iss\src\common\iss_utils.c. widthRszA and heightRszA is output size for resizer A and widthRszB and heightRszB is output size for Resizer B.

    Rgds,
    Brijesh
  • Hi Brijesh,

    The below code snippet is the changes made as per your suggestion. Am I missing something else because the target image is still of default size [1280 * 720]?

    Code Snippet:

    static Void IssUtils_SetIspCreateParams(const IssSensor_Info *pSensorInfo,
    IssM2mIspLink_CreateParams *pPrm,
    IssM2mIspLink_OperatingMode ispOpMode)
    {
    UInt32 chId, ati_height, ati_width;
    ati_height = 480;
    ati_width = 640;

    for(chId = 0; chId < ISSM2MISP_LINK_MAX_CH; chId++)
    {
    pPrm->channelParams[chId].operatingMode = ispOpMode;
    pPrm->channelParams[chId].inBpp = pSensorInfo->bpp;

    pPrm->channelParams[chId].numBuffersPerCh = 2;

    pPrm->channelParams[chId].outParams.widthRszA = ati_width;
    pPrm->channelParams[chId].outParams.heightRszA = ati_height;

    /*
    ........
    rest of the code section
    */

    Thanks,
    Abhishek

  • Hi Brijesh,

    The code changes didn't resize the target image. Could you please help us with this?

    Thanks,
    Abhishek
  • Abhishek,

    Which usecase you are trying? Is it single channel iss usecase?
    Can you try changing output resizer size in appInitIssIspParams API in the file vision_sdk\apps\src\rtos\iss\src\common\app_util_iss.c ?
    It looks like single channel iss usecase uses this new API..

    Rgds,
    Brijesh
  • Brijesh,

    1) We are trying to use ISS single channel usecase.
    2) We modified appInitIssIspParams in vision_sdk/apps/src/rtos/iss/src/common/app_util_iss.c

    The modifications are as follows

    UInt32 ati_width, ati_height;
    ati_height = 480;
    ati_width = 640;

    pPrm->channelParams[chId].outParams.widthRszA = ati_width;
    pPrm->channelParams[chId].outParams.heightRszA = ati_height;

    3) The above modifications gave the following error

    [IPU1-0] 21.029250 s: Entered Chains_issIspSimcop_Display
    [IPU1-0] 21.029402 s: Assert status value: 0
    [IPU1-0] 21.029463 s: Assert status value: 0
    [IPU1-0] 21.278533 s: ISSCAPTURE: Create in progress !!!
    [IPU1-0] 21.279692 s: UTILS: DMA: Allocated CH (TCC) = 48 (48)
    [IPU1-0] 21.279814 s: UTILS: DMA: 0 of 1: Allocated PaRAM = 48 (0x63304800)
    [IPU1-0] 21.280028 s: ISSCAPTURE: Create Done !!!
    [IPU1-0] 21.280150 s: ISSM2MISP: Create in progress !!!
    [IPU1-0] 21.280394 s: SYSTEM: WARNING: Memory address out of bounds (0x86201740, 1843200 B). Memory region is [ 0x85eeb000, 4845216 B ] !!
    [IPU1-0] 21.281034 s: UTILS: DMA: Allocated CH (TCC) = 49 (49)
    [IPU1-0] 21.281126 s: UTILS: DMA: 0 of 1: Allocated PaRAM = 49 (0x63304820)
    [IPU1-0] 21.284847 s: ISSM2MISP: Insuffcient memory provided by user !!!
    [IPU1-0] 21.284938 s: ISSM2MISP: Memory requirement is 5080896 bytes.
    [IPU1-0] 21.284999 s: ISSM2MISP: Memory provided by user is 4845216 bytes.
    [IPU1-0] 21.285091 s: ISSM2MISP: Additional Memory required is 235680 bytes.
    [IPU1-0] 21.285182 s: ISSM2MISP: ERROR: Cannot continue execution !!!
    [IPU1-0] 21.285274 s: Assertion @ Line: 1779 in system_common.c: (Bool)0U : failed !!!

    There is some kind of memory requirement error. Could you please help us with this?

    Thanks,
    Abhishek

  • Abhishek,

    Can you please comment out call to this function chains_issIspSimcop_Display_SetMemAllocInfo and chains_issIspSimcop_Display_FreeMemory in the usecase file vision_sdk\apps\src\rtos\usecases\iss_capture_isp_simcop_display\chains_issIspSimcop_Display.c and try it out?

    Rgds,
    Brijesh
  • Brijesh,

    The above suggestion worked. Thank you very much. Now we are able to get the image of size [640 * 480].

    Thanks,
    Abhishek