Hi!
I am making a software using video_loopback as basis 10-bit raw RGB with the CMOS sensor OV2715 (using 1080P(1920x1080) configuration).
I am using CCS 3.3, XDS510 Emulator, DVSDK_1_11_00_00, and PSPDriver_1_10_00_00 on DM6437.
The OV2715 is Specification fallowing:
active array size: 1920x1080
output interfaces: 10-bit parallel / one-lane MIPI
output formats: RAW RGB (10-bit)
input clock frequency: 6 ~ 27 MHz
scan mode: progressive
maximum image transfer rate: (1080p: 30 fps, cropped 720p: 60 fps, VGA: 120 fps, QVGA: 240 fps)
frame rate : Input format (1080p) ,resulution(1920x1080), frame rate(30fps), pixel clock(raw:80MHz)
The OV2715 sensor has an image array of 1952 columns by 1092 rows(2,131,584 pixels. The color filters are arranged in a Bayer pattern. The primary color BG/GR array is arranged in line-alternating fashing. Of the 2,131,574 pixels, 2,073,600(1920x1080) are active pixels and can be output.
#define FRAME_WIDTH 1920 // 1280 //720
#define FRAME_HEIGHT 1080 // 720 //480
#define CAP_FRAME_WIDTH (FRAME_WIDTH +16) /* Capture frame width to be set */
#define CAP_FRAME_HEIGHT (FRAME_HEIGHT + 6) /* Capture frame height to be set */
CcdcParams->inpmod = FVID_CCDC_RAW_FORMAT; /* dataFlow */
CcdcParams->ffMode = FVID_FRAME_MODE; /* ffMode */
CcdcParams->height = CAP_FRAME_HEIGHT; /* height */
CcdcParams->width = CAP_FRAME_WIDTH; /* width */
CcdcParams->pitch = (CAP_FRAME_WIDTH * 2); /* pitch */
CcdcParams->horzStartPix = 0; /* horzStartPix */
CcdcParams->vertStartPix = 0; /* vertStartPix */
CcdcParams->appCallback = NULL; /* appCallback */
CcdcParams->segId = 0; /*segId */
CcdcParams->rawParams.dataSize = PSP_VPFE_BITS10; /* dataSize */
CcdcParams->rawParams.pack8 = PSP_VPFE_PACK8_16BITS_PIXEL; /* pack8 */
CcdcParams->rawParams.dataPol = PSP_VPFE_DataPol_Normal; /* dataPol */
CcdcParams->rawParams.VDSyncPol = PSP_VPFE_SyncPol_Positive; /* VDSyncPol */
CcdcParams->rawParams.HDSyncPol = PSP_VPFE_SyncPol_Positive; /* HDSyncPol */
CcdcParams->rawParams.HDVDMaster = PSP_VPFE_SyncDir_Input; /* HDVDMaster */
CcdcParams->rawParams.HDSyncWidth = 16; /* HDSyncWidth */
CcdcParams->rawParams.VDSyncWidth = 6; /* VDSyncWidth */
CcdcParams->rawParams.numPxlPerLine = CAP_FRAME_WIDTH; /* numPxlPerLine */
CcdcParams->rawParams.numLinPerFld = CAP_FRAME_HEIGHT; /* numLinPerFld */
CcdcParams->rawParams.ALawEnable = PSP_VPFE_ALaw_Disable; /* ALawEnable */
CcdcParams->rawParams.ALaw_Width = PSP_VPFE_ALaw_bits15_6; /* ALaw_Width */
memset (&CcdcParams->extVDFxn, 0, sizeof (PSP_VPSS_ExtVideoDecoderFxns)); /* extVD Fxn */
Here is my setup on Previewer.
Uint32 uIndex = 0;
// PrevParams->downSampleRate = PSP_PREVIEWER_DOWN_SAMPLE_RATE1;
PrevParams->downSampleRate = PSP_PREVIEWER_DOWN_SAMPLE_RATE2;
PrevParams->features = PSP_PREVIEWER_CFA | PSP_PREVIEWER_LUMA_ENHANCE;
for(uIndex = 0; uIndex < PSP_PREVIEWER_CFA_COEFF_TABLE_SIZE; uIndex++)
PrevParams->cfaCoeffsParam.coeffs[uIndex] = cfa_coef[uIndex];
PrevParams->cfaCoeffsParam.vThreshold = 0x28;
PrevParams->cfaCoeffsParam.hThreshold = 0x28;
PrevParams->sizeParam.sph = 2;
PrevParams->sizeParam.eph = (FRAME_WIDTH +1);
PrevParams->sizeParam.slv = 0;
PrevParams->sizeParam.elv = (FRAME_HEIGHT +4);
PrevParams->sizeParam.pixelSize = PSP_PREVIEWER_INWIDTH_10BIT;
PrevParams->sizeParam.inPitch = ((CAP_FRAME_WIDTH) * 2u);
PrevParams->sizeParam.outPitch = ((FRAME_WIDTH / 2) * 2u);
PrevParams->whiteBalanceParam.wbDgain = 0x100;
PrevParams->whiteBalanceParam.wbGain[0] = 0x40;
PrevParams->whiteBalanceParam.wbGain[1] = 0x40;
PrevParams->whiteBalanceParam.wbGain[2] = 0x40;
PrevParams->whiteBalanceParam.wbGain[3] = 0x40;
PrevParams->whiteBalanceParam.position[0][0] = 0;
PrevParams->whiteBalanceParam.position[0][1] = 1;
PrevParams->whiteBalanceParam.position[0][2] = 0;
PrevParams->whiteBalanceParam.position[0][3] = 1;
PrevParams->whiteBalanceParam.position[1][0] = 2;
PrevParams->whiteBalanceParam.position[1][1] = 3;
PrevParams->whiteBalanceParam.position[1][2] = 2;
PrevParams->whiteBalanceParam.position[1][3] = 3;
PrevParams->whiteBalanceParam.position[2][0] = 0;
PrevParams->whiteBalanceParam.position[2][1] = 1;
PrevParams->whiteBalanceParam.position[2][2] = 0;
PrevParams->whiteBalanceParam.position[2][3] = 1;
PrevParams->whiteBalanceParam.position[3][0] = 2;
PrevParams->whiteBalanceParam.position[3][1] = 3;
PrevParams->whiteBalanceParam.position[3][2] = 2;
PrevParams->whiteBalanceParam.position[3][3] = 3;
PrevParams->rgbBlendingParam.blending[0][0] = 0x1a1;
PrevParams->rgbBlendingParam.blending[0][1] = 0xf8a;
PrevParams->rgbBlendingParam.blending[0][2] = 0xfd5;
PrevParams->rgbBlendingParam.blending[1][0] = 0xfa1;
PrevParams->rgbBlendingParam.blending[1][1] = 0x1c4;
PrevParams->rgbBlendingParam.blending[1][2] = 0xf9b;
PrevParams->rgbBlendingParam.blending[2][0] = 0xfbd;
PrevParams->rgbBlendingParam.blending[2][1] = 0xfb1;
PrevParams->rgbBlendingParam.blending[2][2] = 0x192;
PrevParams->rgbBlendingParam.offset[0] = 0;
PrevParams->rgbBlendingParam.offset[1] = 0;
PrevParams->rgbBlendingParam.offset[2] = 0;
PrevParams->rgb2ycbcrParam.coeff[0][0] = 0x4C;
PrevParams->rgb2ycbcrParam.coeff[0][1] = 0x96;
PrevParams->rgb2ycbcrParam.coeff[0][2] = 0x1D;
PrevParams->rgb2ycbcrParam.coeff[1][0] = 0x3d4;
PrevParams->rgb2ycbcrParam.coeff[1][1] = 0x3ac;
PrevParams->rgb2ycbcrParam.coeff[1][2] = 0x82;
PrevParams->rgb2ycbcrParam.coeff[2][0] = 0x82;
PrevParams->rgb2ycbcrParam.coeff[2][1] = 0x395;
PrevParams->rgb2ycbcrParam.coeff[2][2] = 0x3eb;
PrevParams->rgb2ycbcrParam.yOffset = 0;
PrevParams->rgb2ycbcrParam.cbOffset = 0;
PrevParams->rgb2ycbcrParam.crOffset = 0;
PrevParams->blackAdjParam.blueAdj = 40;
PrevParams->blackAdjParam.redAdj = 40;
PrevParams->blackAdjParam.greenAdj = 0;
PrevParams->brightness = 0x00u;
PrevParams->contrast = 0x20u;
PrevParams->outPixelOrderParam = PSP_PREVIEWER_PIXELORDER_YCRYCB;
Someone have an idea what I’ m doing wrong?
Thanks!
Cyberkjs (Hitron Systems).