I met several times the messages about DSP at this forum. And I've got an idea, that community already know how to retrieve the software code of DSP. Am I correct at this one?
From what I know about DSP, the software implementation of codecs for DSP are highly optimized. The optimization process is kinda hard, can take really long time(even half of year) and it is very costly in terms of money. So there is 0% possibility, that they created completely new DSP with optimized Video Encode library.
I don't know about DIGIC 5, but for example, DIGIC II cameras definitely have the DSP code probably unencrypted in the ROM. I've seen code in the firmware that allocates RAM, copies some of this code into RAM and then sets some DIGIC registers to the RAM address.
So far we've only been talking about hardware circuits. Is software not important for image processing?Ikeda What the DIGIC software handles is command control, with the main focus being on "directing traffic." The software has nothing to do with the actual image processing. If you used software for image processing, it would take too long.
Am I right in saying that Canon has always had a policy of developing its image processors in-house, right from when the first digital cameras started being developed? Given that, today, most other camera makers customize processors provided by specialist LSI chip suppliers, what is Canon's stance regarding in-house development now?Kawaguchi As a developer, the advantages of designing every single part of the LSI chip ourselves are invaluable. If we want to change something, we can change it; there are no restrictions. What's more, by listening to requests from the design teams and feedback from the users regarding each product, we can reflect all of this knowledge in the latest technology that we develop for the next version.
Ah. So no one actually saw DSP code.
DSP processors have one important characteristic. The manufacturers often write the library right into ROM without possibility to overwrite it.
So assumption that there is DSP code somewhere in firmware updater might be false.
Also DSP and ARM can communicate through IRQ interrupts. So I'm not sure what type of synchronization they use(IRQ or specific address in DDR2 memory).
1) ARM retrieve raw data2) ARM prepares buffer for encoded jpeg3) ARM passes addresses for raw data and jpeg buffer to DSP4) ARM signals somehow to DSP(either IRQ or "magic memory address")5) ARM receives signal of the completed operation through IRQ.
There is only question, that is still unclear to me. What happens when camera enters "Movie mode"? There are two possibilities, that I see:1) ARM continue to be in charge of receiving RAW data and passing it to DSP2) DSP enters the mode, when it can receive RAW data without the help of ARM, and it only pass encoded data back to ARM.
BLOBs, which we believe are DSP code, can be found in earlier cameras' firmware dumps. You can find strings like "jp56_firmware build#0100", "diagnosis() rev0.03", etc. along with build dates and names of the authors in them. I read it somewhere around here, that in newer firmwares, these BLOBs are encrypted or scrambled.
Quote from: srsa_4c on 21 / May / 2012, 14:29:53BLOBs, which we believe are DSP code, can be found in earlier cameras' firmware dumps. You can find strings like "jp56_firmware build#0100", "diagnosis() rev0.03", etc. along with build dates and names of the authors in them. I read it somewhere around here, that in newer firmwares, these BLOBs are encrypted or scrambled.On D10, I get the impression the blobs are quite similar to on a540, just without the strings. Of course, since I can't decode them it's hard to say if they are encrypted.