CPU and Storage all the way down
By pmonday on Sep 04, 2007
This weekend I had the privelege of finding the last campsite in all of Colorado. I went to Stillwater Campsite in the Arapahoe National Forest area, just down the road from Rocky Mountain National Park. Everything was spectacular about the entire trip, and I had my Canon Elph along for the ride (I bought a Canon Rebel right before we left but...forgot the battery!!!!!!).
The panoramas in the Rocky Mountain National Park area are fantastic.
If you haven't dug into your latest digital camera + editing software, you may not have noticed a little feature that is called something like a "photo stitcher". It basically allows you to take a series of photos and stitch them together into one large picture, like the one here:
The original source is much larger than what I show above (9448x1823 to be exact) and is stitched together from a whopping 5 pictures taken in a line across the horizon. If you like the above picture, it is a scene off the roadside in Rocky Mountain National Park. Long's Peak (a 14er) is on the right side of the shot. Is it a good picture? I don't know, you can decide. Fortunately for you, if you are in Rocky Mountain National Park, you actually have to try if you want to capture a bad picture.
What is particularly interesting to me is the number of processors and the amount of intelligence that is inserted between the original captured content and the final printed result. What we are witnessing is the increasing encroachment of system and application intelligence in the path of the data content. This is occurring everywhere, from the smallest of devices up to the largest of storage systems. Further, companies that can insert applications along the datapath can do a great service to the consumers of the content along the way. My stitched together photo is a perfect example.
Start with me standing on a ridge in Rocky Mountain National Park. I would LOVE to have the entire panorama I'm seeing in a single picture, but my lense simply won't allow it. Enter the "Stitch Assistant". Instead of my camera being a light capture and store device, it is a light capture, process, store and assist device. Using the stitch assistant (that my friend found for me), I was able to take the first picture, and my camera would show the edge of that picture so I could line up the next picture with some intelligence. Not only that, it would keep the photos organized so that they are easily found and accessed on the SD card.
Next, I upload the pictures to my laptop, where there is more storage and CPU processing. The Canon software takes the images that were grouped on the camera and stitches them back together into one large panorama, crops it, and stores it as new content. Now comes a FATAL flaw in the Canon Software, there is no built in uploader to online content repositories.
So, I bring up Kodak Easyshare or the SmugMug uploader and grab my panorama (SmugMug is actually proving to be easier). SmugMug then processes the image AGAIN on the way into their content repository and transforms it to thumbnails and metadata. Finally, I choose to print my panoramic view (here all of the storage services fall down, they give the traditional sizes for printing (4x6, 5x7, etc...) and don't tailor their services to us budding panoramites (I would love to choose a picture and have them create a custom size for me that best fits the picture).
Think about this, every storage operation was preceded by application intelligence that made meaningful transformations of my content. With better programmers and more time, the storage operations could become far more intelligent as well. For example, there is absolutely NO reason that my pictures that I used "Stitch Assistant" on shouldn't have been weaved together into a single panorama when my pictures were transferred from my camera to my laptop. The storage operation itself should be able to apply meaningful application logic to the process.
Where these transformations take place will be dependent on the particular application. For example, the Canon Camera uploader is a natural place for the stitch assisted photos to be re-stitched because of the lack of CPU on my camera and the lack of standards for metadata in images. Had my camera more CPU, the camera itself could do the stitching. If images had standard metadata about what picture in the series was what, you could push the stitching into the storage device itself (you would store 5 pictures and get 6 back in your folder!). Even the Operating System could add the functionality.
Each step of the way has distinct advantages and disadvantages. More and more we are going to see application logic being placed in between the capture and raw bits of our digital life. It just makes sense that our storage devices should be able to do some work on our behalf. Further, these abilities are going to creep into our lives almost unnoticed...except by those companies that are enabling these leaps in customer functionality, like Sun Microsystems