Just as Nicolai said, everything can be done with 3D hardware
function of graphics cards. And if I am correct, only ATI's graphic
chips can support both 3D and colorkey in the same time. Hence,
we can do some OSD by using the feature of colorkey if we use
ATI's card. However, ATI does not support 16 bit color mode in
their close source driver for linux. Besides, some uncompressed
video streams are in YUV space. (Just imagine 16 video streams in
a DVR system. 480 frames/sec <== such a high frame rate, gpu's
color space conversion enough??)

On a DVR system, software compression make system load very heavy. In
such a condition, the rest CPU power is very limited but still need to handle
real time monitoring. Of course, video decoders (video ADC chip) can directly
write data to the video ram of a graphic card through PCI bus. But image size is
at most 640x480 while in NTSC( A little bigger if in PAL). And such
video decoders (video ADC chip) can only scale down.


On the other hand, generally Graphics cards' Video Overlay function can be
used only on one video stream. That's the design of the hardware.
Hence, for more than one video streams, such a feature is not sufficient.
Besides the scaling problems for several video streams, the composition
of several video images on the screen would be painful if I want to
do these on the off-screen before showing the composition result using
Video Overlay.


And X window use share memory to store the original
unscaled raw image. This is another headache. While frame rate gets
higher, or there are more than one video streams when using nvidia's
Video Blitter function, the CPU usage of X gets higher. Why? Shared
memory is not physically continuous and this is definitely one of the reasons. I've
ever dreamed, some day there would be no X while using Video Overlay/Blitter.
(ps. nvidia's Video Blitter can blit more than 16 video streams at the same time.
But this blitter only affects traditional video ram==>RGB. Hence, there is no colorkey.
Most of all, Nvidia can't set us free.)


So as you can see there's no much choice. The only thing I can do on a
DVR system would be to patch some(huge) kernel code to let the monitoring
process (including X) to have cpu resource in exact timing if I want to show several
video streams in flawlessly real time.


At last just make some complain on ATI and Nvidia. Their closed source drivers
make screen hang but mouse pointor still be able to move. In Nvidia, this problem
lasts from Oct 2003 to today. This problem exists on many combination of
mother-boards/graphic cards/CPUs. This is very frustrating, no matter what
your kernel version is and no matter you use XFree86 or Xorg. Somebody
said there would be a new nvidia linux driver release on 2/30. :(


These reasons are why I want this open graphis card badly. I can offer little help
on kernel driver writing if Tim needs.


           Nagual





_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)

Reply via email to