Recent Posts | Submit an Article | Back to Basics | Reader Photos | Forum | Subscribe
Home Studio | Tutorials | Readers Projects
In my last post titled Everything You Wanted to Know About Camera Firmware I boldly stated that there is no such thing as camera firmware.
That statement raised quite a few eyebrows asking if indeed there was no such thing as Camera Firmware (as I boldly stated in the first sentence of the post).
After the dust cloud settled, I wasn't sure myself, so I went to my Nikon and turned the menu on. Under the settings menu it definitely said "firmware version" so I wanted to shed a bit more light on the subject of camera firmware. (And send my apologies to the little boy from matrix who boldly stated that there is no spoon). [image by julian-]
Does firmware exist? Of course. Is it different from any other software? As the anon guy clearly put it "The definition of firmware is software that is stored in non-volatile memory".
Is firmware different from any other piece of software? Basically no. In practice, the programmers have to make sure it fits in a small area of memory in the camera, so the firmware is tuned to take little space.
Doug pointed out that "Processing for noise reduction is carried out by the processor, but the
noise reduction algorithm is indeed firmware/software and can be
improved by updated firmware" and that "when the Nikon D80 first came out it had issues with noise reduction
for long exposures. The issues were significantly improved with the
v1.0.1 firmware a few months later".
Doug is right - however, I do not believe the core algorithm was changed. What I think is more likely is that some of the parameters of the algorithm were changed. However, this is just my extrapolation, there is no confirmation for this from Nikon.
So let me rephrase my original statement, Camera firmware is just like any other piece of software, it can be tweaked, expended and sadly it may also have bugs, this is why we have firmware upgrades.
Comments
Regardless...
Regardless of what it's called, the post was a good reminder to check our cameras and see if they needed an updated. When I did, I found out that I was two versions behind -- and my camera is only 3 months old!
but.... is there a spoon?
but.... is there a spoon?
Spoons
@Brian - Always nice to put things in good proportions :). Glad the post was useful to you.
@Mark - That depends, did you take the red pill or the blue pill?
You are still not quite right.
I'm an embedded electronics engineer, so I know a bit about designing the hardware and software of embedded systems.
Thinking about the functions of a digital camera, you can implement them in hardware, or software. For example, the algorithm for turning a bitmap (essentially, the raw image frame) into a jpeg can be implemented in software executed by a microprocessor, or in a dedicated hardware chip, where you, in effect pass the raw image in, and get a jpeg out. The chip can't do anything else. The hardware method is typically orders of magnitude faster, and consumes far less power than doing the same thing in a microprocessor, but it does mean that you then have to have hardware for all the functions that you might want to perform. Of course, you can choose to implement some common functions in hardware.
A few years ago, this choice was all you had, but nowadays, there is a third option that is programmable logic. Again, this has existed for some time, but it is now approaching the speed, power consumption and size of dedicated hardware.
As the name implies, programmable logic can be reprogrammed. Modern chips can be reprogrammed while running, using available resources to speed up whatever functions are required at the time.
I would guess that the expeed processor in the Nikon D300, for example, is actually a processor core, probably some sort of low power ARM, surrounded by programmable logic.
Thus the camera's firmware really is a software program that the processor core runs, and a set of programmable logic to accelerate processing. Thus both core algorithms and parameters can be tweaked, or rewritten completely.
You are quite right that there will be bugs though!
programmable logic
Hi Alex,
Thanks for this complete explenation. I was not aware of programmable logic being so commoditized. I appreciate the time you took to make things clearer. Lets see when the next update for the D300 comes...
- udi
programable logic
Very much so!
Xilinx and Altera are the major players. You can buy ready made modules to fit into FPGAs, such as PCI bus drivers, USB, Bluetooth etc. You can even buy CPU implementations in programmable logic, though as I said above, I suspect that, for speed, a CPU core embedded in an FPGA is used for cameras.
The driver for this is speed to market. Its far quicker to develop on a programmable chip than to do a design in simulation, get it taped up, made, debugged, repeat etc. For anything other than high volume, low cost (such as an iPod shuffle, for instance) its better to pay a higher upfront cost for the chip, than the development cost, both in time and money.
Hey! I've probably rabbited on enough about chips now!
Post new comment