suHas,

Could what you are seeing be related to Advisory 2.1.2 in sprz241k, "Bus Priority Inversion Can Affect DDR2 Throughput"? I ran into this problem and saw OSD0 flickering occasionally. There was no noticeable effect to video playing on VID0 though. The flicker was fixed with a write of 0x10 to PBBPR as in the Advisory.

Regards,
-Vim



On Oct 15, 2008, at 12:10 PM, [EMAIL PROTECTED] wrote:

Thanks Vtain, for your promt reply.. Please find my comments below with
tag "suHas"


suhas wrote:

Hi Brain,

It seems that, you are successful in using ODS0 in 1024x768x16bpp.

I am working on DaVinci dm6446 EVM. I am posting this problem here as there was no reply to my post in other thread. It’s a similar problem,
so please help.

I am facing a problem of display flickering when cpu gets busy with
some other processing (may be for Ethernet data transfer or while
displaying video).

It seems that the problem is with CPU bandwidth.

I am using OSDWIN0 in RGB565 mode. I have selected standard resolution
of NTSC. I understand this means a 720p x 480p resolution.

As per the bandwidth requirement formula, required bandwidth is:

[(720 * 480) * 2 + 0 ] * 30 = ~20Mbps. Thus this satisfies the
condition for <25Mbps

Still, display flickers whenever there is any heavy processing done
over CPU. Kindly help me out of this.


I saw this problem when trying to use > 74.25Mhz external clock with
dm6446. If you have the Video1 window enabled, try disabling that. It
really depends what the 'flicker' is. Of the few effects I have run
into, one was what appeared to be a few single lines which would wrap, and the other was large vertical portions of the picture which would get wrapped. The latter happening when we tested using a out-of-spec clock
at a higher frequency.

suHas: I have only OSDWIN0 enabled. All other windows are disabled. With
flicker I do mean that, whenever there is some heavy processing over
ethernet the screen "shakes". Also if I try to view any video, it seems
that few frames are dropeed and the entire screen flickers. Complete
picture becomes shaky. This effect exceeds when I view the video in full
screen mode.

I am using Analog display and am currently working on DaVinci DM6446EVM.


I am using non-interlaced mode. Would this cause any problem? I don’t
think so, as I have also checked with interlaced mode.

Results were the same. But using non-interlaced mode, made the picture
more clear.

Is there any other way by which I can implement this ping-pong logic
for OSDWIN0?


I am not using any analog displays so I never became very familiar with what the ping-pong code actually did. I am fairly certain that it has no
use for the OSD window. I believe it toggled the source of the video
window between vid0_addr and the subpicture addr. I have no idea why
that fixed anything, or whether it was simply to offset one of the
'fields' a line.

Can you please help me out to get this issue resolved.

BTW what is “panning in the framebuffer driver”? Could this be used to
solve my issue?


I believe panning was initially implemented solely for having a larger virtual resolution than your display. Lots of times, however, it seems
to be used in framebuffer drivers for buffering.

Awaiting your reply…

Regards,

Suhas Jain

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Carl Renaud
Sent: Wednesday, October 15, 2008 9:16 AM
To: Brian Rhodes
Cc: davinci-linux-open-source@linux.davincidsp.com
Subject: Re: DM6446 1024x768 graphics with video overlay

Thanks for your response Brian!

You say you are able to use OSD0 in 1024x768x16bpp.

1) Can you also use OSD1 at the same time as an attribute windows to

let VID0 show through? E.g. have a D1 30fps video playing over a

1024x768 graphic background?

2) When you say "...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... ", what kind of limitation are we talking about? I

know about the rendering speed limitation of the 297MHz ARM, but other

than that?

3) I guess I don't understand the equation in section 4.3.1 of

sprue37c.pdf (Video Window Constraints). According to the equation,

using OSD0 in 1024x768 at 30 fps seems to exceed the specified limit

of 25 Mbytes/second.

[(1024 * 768) * 2bpp + (720 * 480) * 0.5bpp] * 30 = [1572864 + 172800]

* 30 = ~52 Mbytes/sec

What am I missing?

Thanks again!

On Tue, Oct 14, 2008 at 4:57 PM, Brian Rhodes <[EMAIL PROTECTED]> wrote:





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

Davinci-linux-open-source@linux.davincidsp.com

http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source



_______________________________________________

Davinci-linux-open-source mailing list

Davinci-linux-open-source@linux.davincidsp.com

http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source





_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source


_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to