Recently, we had some queries on how to program the OMAP 35x ISP in Windows CE for a sensor that doesn’t have the ISP inside it. As we know that when there is an ISP inside the camera, we should not use the OMAP 35x’s ISP features and just use the OMAP processor’s camera pipeline to transfer images to the memory.
For more information on OMAP 35x camera driver interface, please see Omap-35x-camera Blog. This blog is more about how to use some of the OMAP 35x ISP’s features to obtain the best performance. This is particularly useful for sensors like OV5630, OV2710 etc.
I will give the overview on the basic register configuration for capturing data from BAYER RAW sensor without using any of Image processing functionalities.
Following are the register you may need to configure for capturing Bayer RAW data from the sensor.
Camera ISP registers:
For programming interrupt for the End of Frame capture, SYNC and HSYNC detect, PREVIEW done interrupt, RESIZER done interrupt etc. Using ISP registers you would be able control the power state of whole camera ISP
- ISP_SYSCONFIG
- ISP_CTRL
- ISP_IRQ0ENABLE
CCDC:
This unit is responsible for capturing both RAW and YUV data from the sensor.
You may need to program the parameters like Polarity of the VSYNC and HSYNC signals, output format of the sensor (YUV or RAW), Number of Pixels per line, number of lines per frame, number of start line for valid frame, start of valid pixel in each line, number of data bits to sample from the sensor, Bits per pixel, whether output is written to memory or PREVIEW engine. There is also option to pass CCDC output to RESIZER module bypassing PREVIEW, but this configuration is only work for YUV sensors (RESIZER can only work with YUV data).
- CCDC_PCR
- CCDC_SYN_MODE
- CCDC_PIX_LINES
- CCDC_HORZ_INFO
- CCDC_VERT_START
- CCDC_VERT_LINES
- CCDC_CFG
- CCDC_FMTCFG
- CCDC_HSIZE_OFF
- CCDC_VP_OUT
PREVIEW:
This unit is responsible for doing Color space conversion (Bayer RAW–>YUV), Color Correction (color spectrum of the sensor can be adjusted to the human color spectrum), Gamma Correction, luminance enhancement etc.
You may need to program the parameters like input width and height of the frame to the PREVIEW engine,RGB to YUV conversion coefficients, output data to memory, output data to RESIZER module ,input is from memory or CCDC module, one shot or continuous,YUV data format on the memory, etc.,
- PRV_PCR
- PRV_HORZ_INFO
- PRV_VERT_INFO
- PRV_CSC0
- PRV_CSC1
- PRV_CSC2
- PRV_DSDR_ADDR
RESIZER:
This unit is straightforward Upsampling and downsampling unit. You may need to program the parameters like input frame width and height, input frame memory address if input is selected as one shot, output frame width and height, output frame memory address, resizing coefficients etc.
- RSZ_PCR
- RSZ_OUT_SIZE
- RSZ_IN_START
- RSZ_IN_SIZE
- RSZ_SDR_INADD
- RSZ_SDR_INOFF
- RSZ_SDR_OUTADD
- RSZ_SDR_OUTOFF
Both PREVIEW and RESIZER unit is capable of getting input from the CCDC as well as from memory.
Note:
OMAP35x Camera ISP has internal MMU. If it is enabled then you may need to use virtual address of the image buffer to output data from above units. If MMU is not enabled means then you need to use physical address of the image buffer for programming the output address in the above engines.
For the best quality of the image you may need to make use of all the image processing functionality.
Prabu is the Chief Technology Officer and Head of Camera Products at e-con Systems, and comes with a rich experience of more than 15 years in the embedded vision space. He brings to the table a deep knowledge in USB cameras, embedded vision cameras, vision algorithms and FPGAs. He has built 50+ camera solutions spanning various domains such as medical, industrial, agriculture, retail, biometrics, and more. He also comes with expertise in device driver development and BSP development. Currently, Prabu’s focus is to build smart camera solutions that power new age AI based applications.
4 comments
Can you provide more details for the camera driver design for wince for your OMAP camera modules
“Yes, we provide the video streaming application with source code along with this module. To be precise, once you switch on the overlay from the application, you can see the Video streaming on to the LCD. What is the application you are targeting?”
DM3730 looks like to have the same ISP module as that of omap3530, I want to know if the ISP module support connect 2 cameras simultaneously. What the highest resolution (X * Y) of the YUV data it supports when 2 cameras are available. We are targeting the handset devices.
DM3730 support dual cameras simultaneously. But only one of the camera output can be fed into PREVIEW engine or the Video Port and the other camera output will be transferred to the memory directly. In the PREVIEW engine it has got a Horizontal width limitation of 4096 pixels per line. PREVIEW engine is used only for converting RAW image into YUV422.If you are going to use YUV output sensor then there is no limitation on the resolution.
Comments are closed.