Last night both sailpix and morcheeba located decompression routines, sailpix in a patent application (we/I had failed to look for ungranted patents) and morcheeba in firmware.
This thread is for descriptions, suggestions, questions and links to a final set of applications to download, decompress, process and enhance raw photos. It now appears that these will be lossless and raw bayered images. I am placing a link to boodles raw2rgb. Please feel free to post your cleaned up applications here with all the necessary gnu gpl lpgl open source attachments. I believe the patent application filed in July will take another year from now before it is granted. Even once it is granted, we probably are licensed to use it on photos in our cameras - even if we run a converted version on raw images that have been downloaded from a "licensed" camera that we own. Anyone with legal thoughts and ideas should create a new thread "Legal - 1 2 many 4 all".
I am hoping for following applications:
1. Unlock - simple few click version of Drmn4ea's poker (give him a chance to post first version).
2. Download - including options to select individual files or just all pictures.
3. Decompressor - avoiding use of patent if possible (locate prior art) or Download may just call firmware routine(slower).
4. Enhancers - brighteners (for dark images until/if autobrite is found), and other image improvements.
5. Gadgets - firmware uploads to do whatever we want.
Here are reposts of the latest decompression discoveries!
I've got a new version of my disassembler. A minor fix to how disv8 handles variable names and banks, plus lots more comments!
earlier version: disassembly = 54k lines, 2.4MB, FIRMWARE.COMMENTS = 3102 lines, 122KB (from about november)
this version: disassembly = 55k lines, 2.5MB, FIRMWARE.COMMENTS = 4635 lines, 182KB
I found a routine (L81A3C) that has both the address of the compressed image and the uncompressed image, so I assume it does something. It also seems to have two nested for loops:
for v=0 to VERT_SIZE
for h=0 to HOR_SIZE/4
I had to stop looking at it because my head spun. There are some hardware registers accessed, but I can't tell how much work is being done in software vs. hardware. (those accesses could be just getting data from SDRAM).
I found where LANG-EN.DAT gets loaded (memory map updated), and then found where the two-finger-salute stuff gets printed -- (only 2 fingers are actually needed - shutter+display). It should be easy to find out where the other text gets printed, but I was lazy
I also found the registers that read the buttons (and mapped which is which), and successfully wrote to the FLASH memory.
Sorry about the last post - I didn't read back far enough to see that I was duplicating known info...
I did some digging in the USPTO database. The patent number on the splash screen is currently assigned to "SMaL Camera Technologies"
- is this clearly the Autobrite technology?
Anyways... these guys seem to like patenting stuff. I searched for all patents with inventor name of "Fife, Keith"
and found an application (i.e. not an issued patent, yet) for "In-stream lossless compression of digital image sensor
data". A bit of reading explains that this is an on-the-fly method for processing and compressing the data from a
digital camera image sensor data and storing it to FLASH memory. Hmmm... sounds like a perfect candidate for the
PureDigital RAW format. Timing is right too - application is dated July 2004, right after the PV2 gets released.
The description fits too - SMaL mentioned widely in press releases that their camera stores stuff in a lossless RAW
format. I suppose the idea is that they can make a camera which compresses the raw image data to a proprietary format,
then the "processing system" does the rest or the work. This lowers the horsepower needed in the camera since it
doesn't have to handle the complexities of image processing or JPEG compression.
Here's the link:
The algorithm is pretty rough reading because it has been reformatted into "patent-speak" text. Man, I wish they
allowed pseudocode in patents...
The next thing I would do is to try following the algorithm against all-black sensor data and see if it comes up with
the bit stream in the all-black RAW file.