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.

continuous mode capture yuv on dm365

hi all,

        i am working on dm365 + mt9d131, sensor is output ycbcr + 8bit + resolution(1280*720) format.my application working normal under one-shot mode,but not right in continuous mode.

my relation setting post blew(under continuous mode):

Operation mode = CONTINUOUS
Resizer chained
Serializer is disabled
Previewer is configured
Resizer is configured
IPIPE_SRC_EN = 0x0
IPIPE_SRC_MODE = 0x0
IPIPE_SRC_FMT = 0x0
IPIPE_SRC_COL = 0xe4
IPIPE_SRC_VPS = 0x0
IPIPE_SRC_VSZ = 0x0
IPIPE_SRC_HPS = 0x0
IPIPE_SRC_HSZ = 0x1
IPIPE_SEL_SBU = 0x0
IPIPE_DMA_STA = 0x0
IPIPE_GCK_MMR = 0x1
IPIPE_GCK_PIX = 0xe
Resizer Registers
**************************************************
RSZ_SRC_EN = 0x0
RSZ_SRC_MODE = 0x0
RSZ_SRC_FMT0 = 0x0
RSZ_SRC_FMT1 = 0x0
RSZ_SRC_VPS = 0x0
RSZ_SRC_VSZ = 0x0
RSZ_SRC_HPS = 0x0
RSZ_SRC_HSZ = 0x1
RSZ_DMA_RZA = 0x0
RSZ_DMA_RZB = 0x0
RSZ_DMA_STA = 0x0
RSZ_GCK_MMR = 0x1
RSZ_GCK_SDR = 0x1
RSZ_IRQ_RZA = 0x1fff
RSZ_IRQ_RZB = 0x1fff
RSZ_YUV_Y_MIN = 0x0
RSZ_YUV_Y_MAX = 0xff
RSZ_YUV_C_MIN = 0x0
RSZ_YUV_C_MAX = 0xff
RSZ_YUV_PHS = 0x0
RSZ_SEQ = 0x0
RSZ A EN = 0x0
RSZ A MODE = 0x0
RSZ A 420 = 0x0
RSZ A I_VPS = 0x0
RSZ A I_HPS = 0x0
RSZ A O_VSZ = 0x0
RSZ A O_HSZ = 0x1
RSZ A V_PHS_Y = 0x0
RSZ A V_PHS_C = 0x0
RSZ A V_DIF = 0x100
RSZ A V_TYP = 0x0
RSZ A V_LPF = 0x0
RSZ A H_PHS = 0x0
RSZ A H_PHS_ADJ = 0x0
RSZ A H_DIF = 0x100
RSZ A H_TYP = 0x0
RSZ A H_LPF = 0x0
RSZ A DWN_EN = 0x0
RSZ A DWN_AV = 0x0
RSZ A RGB_EN = 0x0
RSZ A RGB_TYP = 0x0
RSZ A RGB_BLD = 0x0
RSZ A SDR_Y_BAD_H = 0x0
RSZ A SDR_Y_BAD_L = 0x0
RSZ A SDR_Y_SAD_H = 0x0
RSZ A SDR_Y_SAD_L = 0x0
RSZ A SDR_Y_OFT = 0x0
RSZ A SDR_Y_Y_PTR_S = 0x0
RSZ A SDR_Y_PTR_E = 0x1fff
RSZ A SDR_C_BAD_H = 0x0
RSZ A SDR_C_BAD_L = 0x0
RSZ A SDR_C_SAD_H = 0x0
RSZ A SDR_C_SAD_L = 0x0
RSZ A SDR_C_OFT = 0x0
RSZ A SDR_C_PTR_S = 0x0
RSZ A SDR_C_PTR_E = 0x1fff
RSZ B EN = 0x0
RSZ B MODE = 0x0
RSZ B 420 = 0x0
RSZ B I_VPS = 0x0
RSZ B I_HPS = 0x0
RSZ B O_VSZ = 0x0
RSZ B O_HSZ = 0x1
RSZ B V_PHS_Y = 0x0
RSZ B V_PHS_C = 0x0
RSZ B V_DIF = 0x100
RSZ B V_TYP = 0x0
RSZ B V_LPF = 0x0
RSZ B H_PHS = 0x0
RSZ B H_PHS_ADJ = 0x0
RSZ B H_DIF = 0x100
RSZ B H_TYP = 0x0
RSZ B H_LPF = 0x0
RSZ B DWN_EN = 0x0
RSZ B DWN_AV = 0x0
RSZ B RGB_EN = 0x0
RSZ B RGB_TYP = 0x0
RSZ B RGB_BLD = 0x0
RSZ B SDR_Y_BAD_H = 0x0
RSZ B SDR_Y_BAD_L = 0x0
RSZ B SDR_Y_SAD_H = 0x0
RSZ B SDR_Y_SAD_L = 0x0
RSZ B SDR_Y_OFT = 0x0
RSZ B SDR_Y_Y_PTR_S = 0x0
RSZ B SDR_Y_PTR_E = 0x1fff
RSZ b SDR_C_BAD_H = 0x0
RSZ B SDR_C_BAD_L = 0x0
RSZ B SDR_C_SAD_H = 0x0
RSZ B SDR_C_SAD_L = 0x0
RSZ B SDR_C_OFT = 0x0
RSZ B SDR_C_PTR_S = 0x0
RSZ B SDR_C_PTR_E = 0x1fff

-------------------------------------ccdc register----------------------

MODESET: 0x2000,CCDCFG: 0x812,FMTCFG: 0x0

i cann't find out where the problem happen,any reply will be appreciated,thanks for your help.

 

  • aGuang,

    Need more info to help you regarding the question.

    1. Can you please elaborate on the behavior of your application in 'continuous' mode?

    2. Also, can you please list complete 'chain' in the continuous mode?

    3. What all components are working fine in single shot mode?

    -Nag

     

     

  • hi Nag:

    thank you for reply first!

    1. Can you please elaborate on the behavior of your application in 'continuous' mode?

    my application can not get any data from resize in continuous mode,but it can get normal image in one-shot mode.i can view this image on display.

    in one-shot

    pixformat: fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;  ( ioctl(capFd, VIDIOC_S_FMT, &fmt) )

    CCDC raw Init setting:

     cfg->pix_fmt    = CCDC_PIXFMT_YCBCR_8BIT;         cfg->frm_fmt     = CCDC_FRMFMT_INTERLACED;
     cfg->pix_order    = CCDC_PIXORDER_YCBYCR;     
    cfg->buf_type     = CCDC_BUFTYPE_FLD_INTERLEAVED;
     cfg->test_pat_gen    = 0;                                                   module_params.compress.alg =  CCDC_NO_COMPRESSION; //fmt;

     i can get right data from resize ,because image display normal on led.

    in continuous

    pixformat: fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;  ( ioctl(capFd, VIDIOC_S_FMT, &fmt) )

    ,and CCDC_raw_Init setting is the same as the one-shot raw setting as upon

    the kernel only support  pixelformat == V4L2_PIX_FMT_UYVY in continuous mode at the first ,and there is nothing at resize output ,then i modify the kernel to support pixelformat == V4L2_PIX_FMT_YUYV,resize still ouput nothing.

    new phenomenon happen recently,when setting bypass to IPIPE_BYPASS_ON,there is some data output from resize,but the image is very bad,i shaking hands above the sensor ,it can feel the scene change , bad image like below:

    thanks.

    aGuang