Hi,
I want to display in a LCD from DDR.
My color space in ram is RGB565.
The LCD interface is configured to generate a RGB565.
I think that the color is converted from YUV to RGB by the digital RGB Matrix. This give me wrong color at the end.
How can I disable this unwanted conversion ?
If it's impossible, what is the right coeficient to remove the conversion ?
Thanks in advance
Guy
The VPBE uses a OSD peripheral to handle its input formatting, the VID0 and VID1 windows in this OSD will be expecting YUV422 by default therefore if you feed RGB565 data into them you will get the wrong colors on the output as you have found. These two video windows in the OSD can only handle YUV422 or RGB888 input data, therefore if you have RGB565 in your frame buffer than you will not be able to use VID0 or VID1. The solution for this would be to use the OSD0 or OSD1 windows which are more suited to RGB inputs in that they can support bitmap or RGB565 formats. These windows and what they support are discussed further in section 4.3 of SPRU952 available below.
http://focus.ti.com/lit/ug/spru952a/spru952a.pdf
If you are using the DM6437 video driver from the Peripheral Support Package (PSP) provided with the EVM than you should be able to support this display mode by using the FVID_RGB565_INTERLEAVED option in your PSP_VPBEOsdConfigParams, an example of this usage can be found within dvsdk_1_01_00_15\psp_1_00_02_00\pspdrivers\system\dm6437\bios\dm6437_evm\src\video\sample\rawcapture.
Ok thanks for the answer.
So I want use it at a resolution of 1024 x 768 at 60 Hz. If I work with the OSD, are we limited by the 25 MB / s of bandwidth ?
Assuming YUV422 or RGB888 data, can this be done (LCD output at 1024x768 @ 60Hz resolution) using the VPBE IOM driver ?
Looking at the psp_vpbe.h in the dvsdk_1_01_00_15, there only seems to be NTSC and PAL formats supported:
typedef enum _PSP_VPBETimings { PSP_VPBE_AUTO_MODE = 0, PSP_VPBE_DISPLAY_NTSC_INTERLACED_COMPOSITE = 1, PSP_VPBE_DISPLAY_NTSC_INTERLACED_S_VIDEO = 2, PSP_VPBE_DISPLAY_NTSC_INTERLACED_COMPONENT = 3, PSP_VPBE_DISPLAY_NTSC_PROGRESSIVE_COMPONENT = 4, PSP_VPBE_DISPLAY_PAL_INTERLACED_COMPOSITE = 5, PSP_VPBE_DISPLAY_PAL_INTERLACED_S_VIDEO = 6, PSP_VPBE_DISPLAY_PAL_INTERLACED_COMPONENT = 7, PSP_VPBE_DISPLAY_PAL_PROGRESSIVE_COMPONENT = 8 /* Add others as and when necessary */ /* HDTV etc*/ } PSP_VPBETimings;
Guy,
Yes, you are limited to a combined bandwidth of 25MB/s as discussed in section 4.3.1 of the VPBE User Guide ( http://focus.ti.com/lit/ug/spru952a/spru952a.pdf )
From a hardware perspective 1024x768 @ 60 Hz is possible using video Window 0 (see section 4.3.1 of VPBE UG for details on constraints); however, as you noted, the IOM driver does not support this resolution.
As you have found the driver out of the box handles only SD video formats, you would have to either modify the driver yourself or work with a third party, if you are looking at a third party you may want to consider D3 engineering as they appear to have a daughtercard for the EVM with a LCD interface, so it is likely they have already done some driver modifications to add LCD support.
I configure the dm6437 without the driver to take in ram RGB888 to vidwin0.
I cannot go to osdwin because the 25 MB /s is too small for the resolution that I have to support.
I configure also to go out in PRGB mode for LCD interface.
I draw vertical 1 pixel width line and the color change depend of on which column I display it.
I suppose it comes from a YUV422 conversion inside the VENC.
How can I pass over it and be able to display in full resolution the color that I want ?