Thanks for the example code, everything helps. I was interested in
your comment,
"the Macbook is much faster than the Powerbook", can you be more
specific?
I'm looking for an excuse to buy a mactel, and went to a store
recently, but was
a little disappointed. The only video app which was easily
accessible was something
called "photobooth", it ran at 15 fps max, with stutters, and had a
video latency of
at least 1/4 second. Of course, that program may have extra
buffering, etc.
Hm. Well, regarding latency, you really won't be able to get very far
with current hardware because of the way imaging devices are attached
(USB, FireWire). Since part of the design goals of previous times
(synchronization to video clocks of incoming signals and/or outgoing
signals) are not applicable to current hardware. These days you have
TFT displays that refresh portions of the screen at intervals not
strictly related to the clock signal on a DVI or VGA cord and (even
more problematic) not controllable or even detectable from the
machine. On the input side, you oftentimes have camera CCDs that are
read by a microcontroller that moves the data over a digital bus at
later times and has to share the bus with other devices. This means
that there is a 1 frame delay until a USB or FireWire device even
starts communicating. There is no interrupt driven direct access to
the data in the buffers and sometimes (think core image) the data has
to be moved even one device further (GPU), back to the CPU and forth
to the GPU again. Depending on the processing pipeline.
So there is really only the option to use frame grabber cards and a
CRT display if you intend to go towards minimum latency.
What current hardware provides in sense of "much faster than the
Powerbook" is the amount of processing and throughput that you can
have. There is no substantial additional delay or reduced throughput
to the simple 'acquire -> present' variant if you go for modifying
your images. What you can do with Core Image is immense.
Further, current fast software video decoders use altivec to do the
required
byte swapping quickly and in parallel. It is my understanding that
any intel SSE replacement
is half the speed of altivec on a clock cycle basis, there are no
appropriate byte swapping
instructions, and it is harder to use. So in what sense can the
mactel machines be "faster"?.
Depending on what you do, your code will benefit from the faster
video chipsets in the MacBook Pro or iMac for example. Regarding
image processing, the current CPUs are not magnitudes faster,
compared with good hand crafted G4 or G5 assembler. The increased bus
bandwidth makes a difference if you process large amounts of data.
When developing, you will notice that tools like compilers, etc. are
really more snappy than on PPC. They can't make use of AltiVec and
are the domain that has always been faster on intel.
There seem to be a few
PCI express frame grabber cards available, but for many thousands
of dollars, in
contrast to the less than 100 dollars for which you can get a
standard PCI frame grabber
card for a linux box.
If you're in need of low latency, just by a cheap linux machine with
a PCI card. You won't be able to beat that with any other solution
(regarding latency). However, if you want to play with the video
material, I'd recommend to go for an intel mac. Did you ever use the
QuartzComposer? The possibilities with Core Image and Core Video are
amazing. In principle it would be possible to do the same with GLSL
on linux, but in practice I found that all the uninteresting parts of
that (interfacing to the GPU, moving image data, general house
keeping) are very tedious and error prone. Your time might be better
invested in playing with all those new toys that really work without
hassle on OS X than in fiddling with driver details, kernel
interfaces, etc.
Mark
--
Dipl.-Ing. Mark Asbach Tel +49 (0)241 80-27677
Institute of Communications Engineering Fax +49 (0)241 80-22196
RWTH Aachen University, Germany http://www.ient.rwth-aachen.de
_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quicktime-api/email@hidden