LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Flickering Picture

For an experimental setup with humans where subjects have to track with
their eyes a moving object that is projected to the wall with a beamer, I
wrote a programme with LabView using the functions "Draw Multiple Lines.vi"
and "Picture Out". However the result is not satisfying - the moving picture
(two vertical squares) seems to be updated in several blocks, from bottom to
top, and flickers. This happens even with slow movement.

We've tried out different output devices (normal CRT screen, TFT display,
beamer), graphic cards, screen update rates, colour depths and update rates
within the LabView loop but all configurations look similar. I wonder if it
is a synchronisation problem between LabView and Windows.

Configuration: PentiumIII PC, Windows
2000, LabView 6.0

If someone has a hint - thanks very much for helping!
0 Kudos
Message 1 of 26
(4,224 Views)
Claudia,

I believe that this issue does in fact revolve around reliance upon the operating system by LabVIEW to perform graphical updates.

I suspect that a much different solution should be explored. I would believe that you would benefit from a seperate graphics driver that is perhaps raster based, driving a completely different video output. Windows tends to do things the way that it wants to.

Unfortunately, I cannot advise you as to a specific setup. I recommend finding an output device, such as a projector or monitor, that can be driven by an instrument, which you can program with LabVIEW. Instead of outputting to the front panel, you would move your output (objects) to the external instrument. This would solve your problem with the updat
ing.

I am sure that there is someone out there that knows what a good instrument/driver is.

If the objects are in fact simple rastor images, a simple laser scanner can function quite well, and are, as I believe, relatively inexpensive, although a bit difficult to find (they are woefully out of date).

Good luck, and please let us all know how you fare.
0 Kudos
Message 2 of 26
(4,224 Views)
My company developed some years ago a prototype gray-scale LED matrix output device. You could off-line send bitmaps to it.
Playing in sequence produced an animation.
It was to become the building-block of big LED-panels, but developments are now paused caused by lack of customer's interests.
It is extremely low-ress (16 x 16) and probably unuseful for your application. And yes expensive.
But it was outputting what you wanted at the exact moment.
And not surprisingly, I used LabVIEW to build the PC-part.

Patrick de Boevere (pdb@serenity.nl)
Serenity systems design
0 Kudos
Message 8 of 26
(4,224 Views)
Hi Claudia;

Try the following. Right-click the picture indicator and select "Data Operations -> Smooth Updates"
www.vartortech.com
Message 3 of 26
(4,224 Views)
On Wed, 9 Jan 2002 17:01:10 +0100, "Claudia Brand" wrote:

>For an experimental setup with humans where subjects have to track with
>their eyes a moving object that is projected to the wall with a beamer, I
>wrote a programme with LabView using the functions "Draw Multiple Lines.vi"
>and "Picture Out". However the result is not satisfying - the moving picture
>(two vertical squares) seems to be updated in several blocks, from bottom to
>top, and flickers. This happens even with slow movement.
>
>We've tried out different output devices (normal CRT screen, TFT display,
>beamer), graphic cards, screen update rates, colour depths and update rates
>within the LabView loop but all configurations look similar. I wonder if it
>is
a synchronisation problem between LabView and Windows.
>
>Configuration: PentiumIII PC, Windows2000, LabView 6.0
>
>If someone has a hint - thanks very much for helping!
>
>
>
When your program is running, right-click over the picture indicator
and select 'smooth updates'

Also ensure that there are no overlaping objects on the indicator

Regards,

Peter
Message 4 of 26
(4,224 Views)
This will help a bit but there will always be some perceptible artefacting
because PC display cards on the whole are not double buffered; there is no
timing relationship between the updating of display memory by the PC and the
reading of display memory by the display hardware.

I'm looking out for a reasonably cheap card myself that can do this (for
playing movies at home) but obviously not at very high priority.

--
Craig Graham
Physicist/Labview Programmer
Lancaster University, UK

> When your program is running, right-click over the picture indicator
> and select 'smooth updates'
>
> Also ensure that there are no overlaping objects on the indicator
0 Kudos
Message 5 of 26
(4,224 Views)
Hi Claudia,

Have you tried using the defer front panel updates property?
Set the property to true before writing to the picture.
As soon as you are done writing to the picture, set the property to false.

Also, are you using the driver recomended by the manufacturer of the "beamer"?

How is your CPU performance while this is happening? If it is busy you might be missing some delays in loops.

I hope this gives you some ideas.

Ben
Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 6 of 26
(4,224 Views)
Thank you all for your replies! I tried out what I could, but couldn't yet
fix the problem

Labviewguru:
Using an external device is a good suggestion but we'd have to search and
buy one, which is an option I will consider when everything else fails (it
sounds like a lot of time and money)

Enrique and Peter:
"Smooth Update" was checked by default (unchecking makes the whole thing
even worse)

Ben:
(1) Where can I set the "defer front panel updates property"?
(2) There's no recomendation for a specific driver for the beamer (beamer is
a "PLUS U2-1130"), but following your suggestion I tried to adjust its clock
frequency and clock phase manually instead of automatically, which didn't
help (flicker occurs also on normal CRT or TFT displays)
(3) CPU performance i
s at 50% (or lower on a different, faster PC which I
tried out) and memory usage is about 53MB

Greetings
C. Brand
0 Kudos
Message 7 of 26
(4,224 Views)
I have simple questions to help in understand your situation: For what I understand, you are projecting a LabVIEW VI, which (seems to) consist of only a big picture indicator.

Are you observing the flickering problem only in the picture indicator or the whole screen? Did the flickering occur only when you run the LV program? Is there no flickering at all in the computer monitor? If you project any other application, does it flickers too?

Is the picture you are projecting changin rapidly to "opposite colors" (like from all black to all white)? Have you try it using a different computer?

Also, an idea on how your vi generate the pictures can be of help too.

Sorry for the amount of questions. The idea is to attempt to isolate the problem. If your
applications looks similar to giving a presentation (like a PowerPoint presentation), then it is a little hard for me to think the problem is within LabVIEW.

Regards;
Enrique
www.vartortech.com
0 Kudos
Message 9 of 26
(4,224 Views)
Thanks, Enrique. The answers are below, but easiest would be if you took a
look at the VI. It is on our web server under the address
http://www.iha.bepr.ethz.ch/pages/leute/schnoz/balken5.vi

> I have simple questions to help in understand your situation: For what
> I understand, you are projecting a LabVIEW VI, which (seems to)
> consist of only a big picture indicator.
Right

> Are you observing the flickering problem only in the picture indicator
> or the whole screen?
Only in the picture indicator

> Did the flickering occur only when you run the LV program?
Yes

> Is there no flickering at all in the computer monitor? If you project any
other application, does it flickers too?
No flickering in other applications

> Is the picture you are
projecting changin rapidly to "opposite colors"
(like from all black to all white)?
No, the colour does not change

> Have you try it using a different computer?
Yes, on a fast laptop

> Also, an idea on how your vi generate the pictures can be of help too.
The picture moves from left to right and back to the left in a sinusoidal
way at different speeds. In a loop, I calculate the new co-ordinates of the
two rectangles and draw them with the "Draw multiple lines.vi". The loop
update rate is 1ms; I tried to reduce it to fit the graphic card update
rate, but this didn't help.
The application isn't yet finished; once the flickering problem is solved
(and when I know I will definitely stay with LabView for this experiment) I
will complete it with data logging (body/head movement and electromyography
over a National Instruments A/D card).

Regards, greetings, thanks!
Claudia Brand
0 Kudos
Message 15 of 26
(3,890 Views)