Carl Renaud wrote:
Hi,
I am seeking advice on the DM6446...
Our product requirements
==================
Display a 1024x768 graphic background with a video overlay.
Using the DM6446, there is no problem doing this is in D1 resolution,
using VID0 for video, OSD0 for graphics and OSD1 for transparency.
For resolutions higher than D1, there seems to be a few limitations...
Methods
======
1) The first method would be to use VID0 for video, OSD0 for
graphics(RGB565) and OSD1 for transparency.
I read in the VPBE document (section 4.3.1 of sprue37) that the
combined bandwith of the OSDs cannot be more than 25MB/sec. This is
exactly a D1 resolution OSD at 30 fps. So... this method would not
work... Correct?
I am not having trouble drawing 1024x768x16bpp graphics to OSD0. To
prevent tearing, use the memory you would have for Video 1 window and
implement panning in the framebuffer driver. Your 'product requirement'
has a full screen graphic background, and for that OSD0 will suffice.
If you need to do some form of animation on the OSD window, you'll have
to do some work to understand the limitations, especially if you are
using OSD1 as an attribute window for per-pixel alpha blending.
2) The second method would be to use VID0 for graphics(RGB888) and
VID1 for video (as a picture in picture).
In the VPBE document (again section 4.3.1 of sprue37), it is stated
that when doing HD, VID0 should be used and VID1 disabled. Also,
reading through the mailing list, it seems that there is a silicon
problem on the DM6446 that prevents using VID0 and VID1 at the same
time. So... this method would not work... Correct?
You are correct. You cannot use Video 1 when the resolution of Video 0
is > 720x576. The bug in the silicon causes a flicker when both Video 1
and Video 0 are used at lower resolutions.
3) The third method would be to use VID0 for graphics(RGB888), OSD0
for video(RGB565) and OSD1 for transparency.
My understanding is that this should be possible if we limit the video
to be a D1 frame within the 1024x768 graphics of VID0. This would
respect the OSD bandwidth limitation. However, since OSD0 only takes
RGB565 (and bitmap), I would need to convert the YUV 4:2:2 video to
RGB565 on the ARM(or DSP). Correct?
This would not be possible. You would not be able to do this colorspace
conversion quick enough. Codec implementations which do conversions
between 4:2:2 and 4:2:0 are simply reassembling the stream of data,
throwing some away in one direction, and duplicating some in the other.
the conversion from yuv -> rgb is considerably more work.
Is my understanding correct? Is there any other option on the DM6446
to meet our requirements?
Thank you!
------------------------------------------------------------------------
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source