Sometimes we make so much of the word "system" in talking about SoCs that we forget what it was supposed to mean. I was set to thinking about that the other day when our son bought a digital camera.
An amazing amount goes on in a digital camera. Of course there's the sensor array and associated mixed-signal circuitry to capture an image and convert it to a bit stream. There is also a memory subsystem to store images, and often an LED display to preview the image and browse stored pictures.
These elements require a microcontroller and a good bit of software for sensor management, memory management, management of what amounts to a small database and user interface functions.
In addition there are most of the functions to which we have become accustomed in automatic 35 mm film cameras: automatic exposure measurement and control, automatic focus, motor-driven zoom-pretty much everything except the automatic film transport, for which there is obviously no need.
And there is a third category of functions for image processing. The sensor array is composed of photodiodes covered by color filter dots. Each diode produces a current based on the intensity of light passing through its filter dot. Image processing software has to compose a color image by combining data from adjacent dots of different colors.
Since the total number of pixels is relatively small, further image processing has to be done to extract edges from the data and insert them into the image, to perform anti-aliasing, surface smoothing and so on. It is also possible-as demonstrated by the Hubble Spacecraft ground team-to use image processing algorithms to reverse known aberrations in the optics or to correct for camera motion.
That brings us to the point about systems. The main chip that goes into a digital camera may be an ambitious mixed-signal SoC, but it's not the whole system. In fact there are rather complex interactions between the chip hardware, the software and the optical and mechanical components of the system.For instance, if you want to hit a low price point, you can buy mediocre optics-an area where savings can be considerable-and compensate with image correction software.
If you want the camera to be light and compact, you can compensate for camera motion during exposure with shorter exposures and more image processing. If you want low latency between when the user pushes the shutter button and when the picture is safely in memory and the camera ready again, you can use simpler image processing, maybe with a scrubbing pass later when the camera is in sleep mode.
The chip is not the system. It interacts with the system.
Even the distribution channel enters this interaction. Consumers being what they are, they tend to fasten on a few simple metrics. In the digital camera world, it's coming down to the number of pixels and the price. You can of course make an inexpensive camera with a several-megapixel sensor.
Trouble is, all those interactions get you in the end. Image quality comes from the interaction of sensor, optics, mechanical design and software. Low price works against all of those items. So it's quite possible to produce a camera with a high pixel count, a low price and mediocre image quality-a fact the proud owner doesn't discover until some time after the purchase. The SoC designers who slaved to make a fine camera possible may never find out what happened to cause their work to go into the discount bin.
Our son, by the way, returned the camera. Poor image quality.