Hi Rajat,
H/W : DM8127
S/W: ipnc_rdk_release version 3.00
I am trying to integrate 10-bit OV sensor to Dm8127 IPNC (s/w version 3.00). I am able to capture RAW data/ stream, YUV over RTSP successfully after below changes in the ISIF registers.
case1: IPIPE is configured to support 12 bit(default settings)
Register Value Meaning
ISIF_CGAMMAWD 0x08 supporting 12-bit data from sensor
ISIF_MODESET 0x0C No data shift.
Understanding:
Using above settings, we are trying to read 12 bit data from sensor.
Sensor BIT11 --> ISIF Data bus BIT15 DATA INVALID
Sensor BIT10 --> ISIF Data bus BIT14 DATA INVALID {Invalid because it is 10 bit sensor}
Sensor BIT9 --> ISIF Data bus BIT13 DATA9
Sensor BIT8 --> ISIF Data bus BIT12 DATA8
Sensor BIT7 --> ISIF Data bus BIT11 DATA7
Sensor BIT6 --> ISIF Data bus BIT10 DATA6
Sensor BIT5 --> ISIF Data bus BIT9 DATA5
Sensor BIT4 --> ISIF Data bus BIT8 DATA4
Sensor BIT3 --> ISIF Data bus BIT7 DATA3
Sensor BIT2 --> ISIF Data bus BIT6 DATA2
Sensor BIT1 --> ISIF Data bus BIT5 DATA1
Sensor BIT0 --> ISIF Data bus BIT4 DATA0
ISIF Data bus BIT3 0
ISIF Data bus BIT2 0
ISIF Data bus BIT1 0
ISIF Data bus BIT0 0
Now, If I pass this data to IPIPE, IPIPE read the data as 00DATA[9:0].
Result: Data streamed over RTSP is clear as expected.
-----------------------------------------------------------------------------------------------
Case2: IPIPE is configured to support 12 bit(default settings)
Register Value Meaning
ISIF_CGAMMAWD 0x08 supporting 12-bit data from sensor
ISIF_MODESET 0x20C 2-bit right shift.
Now, If I pass this data to IPIPE, IPIPE read the data as 0000DATA[9:2].
do we loose 2 bits @ LSB..??
Result: Data streamed over RTSP is clear as expected. I am not able to make out much about Quality difference between case1 & case2.
-----------------------------------------------------------------------------------------------
Case3: IPIPE is configured to support 12 bit(default settings)
Register Value Meaning
ISIF_CGAMMAWD 0x12 supporting 10-bit data from sensor
ISIF_MODESET 0x0C No shift
Now, If I pass this data to IPIPE, IPIPE read the data as DATA[9:0]00. i.e actual sensor data is multiplied by 4 which is incorrect.
Result: Data streamed over RTSP is Not as as expected. I see some saturation in the bright areas of the picture.
-----------------------------------------------------------------------------------------------
Case4: IPIPE is configured to support 10 bit
changes done w.r.t this are as below.
Register Value Meaning
ISIF_CGAMMAWD 0x12 supporting 10-bit data from sensor
ISIF_MODESET 0x20C/0x0C 2-bit right shift/No shift( tried both )
1. ISIF_CGAMMAWD register configured for 10th bit as MSB.
2. issdrv_captureApi.c eMsbPos set to BIT9.
3. iss_params_default.c ignored the macro #ifdef SENSOR_12BIT and forced everything to work with 10-bit data. (BIT9)
4. Using ISIF_SDRAM_PACK_16BITS (iss_drv_isif.c) for SDRAM write. (using isif register settings accordingly.) (RAW-dump)
Now the DATA[9:0] is expected to passed to ipipe since it is configured to work with 10 bits.
Result: Data streamed over RTSP is Not as as expected. I see some saturation in the bright areas of the picture.
-----------------------------------------------------------------------------------------------
Querries:
1. Refering to Case4, since I am shifting the data by 2-bits right, data fed to IPIPE must be DATA[11:2]. i.e. valid 10-bits. Still I am not getting the correct output. Why?
2. I assume MODESET register defines the input bits of IPIPE. is that right?
3. Since the case1 & case2 work fine, is there any other dependencies with those settings anywhere in the Application? or Can I use that as it is?
Looking forward for your precious reply.
Thanks in advance :)
(Continued from previous thread. refer the link below)
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/214355/764146.aspx#764146
Best Regards
Ravikiran