kwalsh Offline Image Upload: Off
|
p.6 #1 · Canon autofocus information | |
Wow, awesome information, can't believe the original thread got "lost". This should be a sticky.
I'll do my tiny bit to try and add info to it and some half-baked theories 
My first reaction (which some others had) was, how does it do this open loop? Won't it need to know the absolute focus position? Well, I got out the optics book and a pad and pencil, and guess what it needs to know?
Absolutely squat!!! Doesn't need focal length or aperature or absolute focus postion!!!
First off, you might read Doug Kerr's most excellent little primer on split prism and phase comparison focus (http://doug.kerr.home.att.net/pumpkin/Split_Prism.pdf).
So basically if you make an generic ray trace diagram and do a little geometry and trig you will see that the physical distance the lens must be moved from/towards the film plane to achive focus given an arbitrary subject distance and starting position for the lens is:
E = P / (2*tan(A))
Where E is the distance to move the lens from/towards the film plane (i.e. the current focus Error), P is the offset of the image patterns on the Phase comparator arrays and A is the "look Angle" of the comparator array prisms from the optical axis (this is a constant determined by the shape of the prisms). This equation is *not* a function of: focal length, aperature, subject distance, or absolute positon of the lens from the film/imager plane. It basically says that for any lens the distance to move the lens is linearly proportional to the distance between the image patterns at the comparator. The phase measurements and focus commands can all be relative and the camera really needs to know nothing about the lens. The lens had just better move the amount the camera tells it and that's about it.
There is one place there is a little error in the above equation - it assumes the film plane is what moves. Unless you' ve got a really wierd camera its probably the lens that moves . This changes the lens to subject distance very slightly. This would introduce a small error if you made a big change in focus for a very very close subject (magnifications greater than 1:1). I don't think it's really possible for the camera to even get a phase measurement in this case, it would rack the focus until it got close enough to make a phase measurement and once it was this close the error would still be well within tolerance.
OK, so that was physics and pretty solid (though please jump in if I screwed up).
On to speculation...
Why does it want to know the focal length? Well, the exposure system certainly cares for calculating 1/f hand holding speed. And the flash needs to know how tightly in can focus its light cone. And well it looks nice in the EXIF. But I don't think the autofocus strictly cares. The depth of field exposure mode probably does though!
Why does it want to know the maximum aperature? Probably to tell whether it should auto-focus at all - for most systems if the aperature is smaller than f/5.6 the prisms on the phase comparators will just see black. For the snazy "high precision" models I'm guessing at 2.8 and faster it uses a different set of comparators with prims that have a steeper look angle (and thus can make a more accurate measure of phase, again see Doug's neat article). If the lens is slower than 2.8 the precision comparators will just see black so it won't want to use them. And of course the exposure system really needs to know this. But as far as the autofocus goes, besides deciding what mode and whether to try and focus at all it is probably not strictly necessary either.
And even more speculation...
So why do many third parties stink at focus? I suppose the servos could be garbage, but I wonder if it isn't more to do a little with the optics. In order for the above system to work when you move the focus it should do so in a well behaved linear fashion. For an "ideal" lens this is easy. But some of these really compact long zoom ratio things do some weird stuff. For example, the Sigma 18-125 while apparently parafocal (i.e. if you move the zoom ring the focus distance doesn't change) it does do a neato thing at least at the long end - when you change the *focus* the *focal length* changes - at infinity it is around 121mm and at 50ft it is more like 118mm (again, thanks to Doug Kerr post on dpreview). So something exciting is going on in there and the focus may not behave well in this "open loop" system. In fact, if in the above case the nodal points don't also magically move just right to compensate this would introduce overshoot into Canon's open loop system (e.g. if auto focus started from inifnity to a middle ground subject the command would over shoot and front focus). For reference, Sigma's SLR's apparently use a contrast detection method that is closed loop (and slow) - so it probably does a good job on their lenses even if the optics are wierd. So I wonder if Canon lenses are optimized for very well behaved focus so this really fast open loop system is accurate and the third parties sometimes don't? Just a guess!
The other (perhaps more likely explanation) is that the third party lens don't handle the second servo command correctly to fine tune the servo position - that'd also introduce error.
I wonder if everyone elses phase comparison autofocus systems are open loop?
All right, I've blabbed enough. Hopefully some one finds that useful or entertaining... or at least a cure for insomnia.
Again, thanks for the awesome info.
Ken
|