View Single Post
Old 06-07-2007, 13:55   #2
Chelidon
Bannato
 
L'Avatar di Chelidon
 
Iscritto dal: Aug 2006
Città: Parma
Messaggi: 2579
Semplice Guida al CHDK (Canon Hacking Development Kit)

FAQ (informazioni più dettagliate, ma in lingua inglese, le puoi trovare sulla pagina ufficiale delle FAQ) {NOTA: sono già abbastanza definitive, forse si potrebbe aggiungere qualcos'altro???}

Che cos'é questo diavolo di CHDK?

Il CHDK (Canon Hacking Development Kit) è ciò che permette di estendere le funzionalità di alcuni modelli di fotocamere Canon (vedi più avanti).
All'inizio della vecchia discussione l'avevamo definito come firmware, ma in realtà non lo è affatto in quanto non sovrascrive per nulla il firmware di fabbrica presente nella ROM della fotocamera! (Qualcuno ha anzi avanzato la proposta di chiamarlo sideware! Qua c'è la posizione ufficiale riguardo alla garanzia)
Piuttosto si comporta come un software che per farsi eseguire dalla fotocamera sfrutta il trucco di spacciarsi per un aggiornamento del firmware, poi una volta caricatosi lavora sulle funzionalità di basso livello della macchina che presenta poi tramite un'interfaccia grafica ben integrata con le opzioni di fabbrica e completamente personalizzabile.
È proprio questa la chiave della sua forza e al contempo dei suoi limiti, infatti a causa degli 'appena citati motivi non potrà mai aggiungere funzionalità che vadano al di là di quanto l'hardware della fotocamera è programmato per fare. Qualche esempio: che ne so, fare un filmato a risoluzione superiore a quella standard non lo potrà mai fare, ma invece magari scattare con valori di ISO non standard sì, perché si tratta di impostare una variabile un po' diversa sui condensatori (entro certi limiti ovviamente ).

Da dove lo scarico e quale delle molteplici versioni diverse devo scaricare?

La pagina per scaricare il CHDK (la versione di GrAnd, era quella che agli albori veniva aggiornata più spesso e su cui è nato il wiki; attualmente comunque si sono ormai sviluppate molti fork e non è più detto che la versione che ho citato finora continuerà ad essere quella di riferimento in futuro) si trova qui, solitamente sono presenti molte versioni diverse del CHDK (qui ci sono i log per conoscere i cambiamenti fra le versioni sviluppate da GrAnd) poiché è in continuo miglioramento (è una cosa strabiliante ogni pochi giorni viene rilasciata una versione aggiornata e vi assicuro che finora i miglioramenti di versione in versione sono apprezzabili: speriamo continui su questa strada!). L'importante è scaricare l'ultima versione (lo si capisce dal numero più alto) adatta al proprio modello di fotocamera (non venite a dire che non funziona, se caricate quello sbagliato! ), la prima cosa scritta nel nome degli archivi compressi è proprio il modello per cui è fatto!

Ultimamente (agosto 2008) a un anno dalle ultime build di GrAnd (148) considerate come la base stabile del CHDK e dopo l'introduzione delle innumerevoli funzioni dell'Allbest (che sono state integrate anche nelle versioni considerate di prova della GrAnd), l'arrivo di molti altri sviluppatori, sta dando vita ad una nuova versione che vede il contributo collaborativo degli autori delle precendenti versioni e dei nuovi arrivati. Probabilmente sarà questa versione la prossima di riferimento nel progetto del CHDK e viste le aspettative e gli obiettivi che si prefigge è stata denominata MoreBest.

Quali modelli di fotocamera sono attualmente supportati e come capisco se ho la versione giusta?

I modelli inizialmente supportati (aumenteranno in futuro ) sono questi:
  • Modello: A610, Versione Firmware Originale: 1.00D (con la versione del CHDK per la 1.00E), 1.00E , 1.00F
  • Modello: A620, Versione Firmware Originale: 1.00F
    ATTENZIONE: la più vecchia versione 1.00E non è compatibile. Devi prima aggiornare alla 1.00F per poterlo usare. La 1.00F è la versione più recente caricata sulle ultime A620 prodotte, ma sul sito della Canon non si trova, però l'aggiornamento è reperibile qui. Attenzione: fare questo aggiornamento, a differenza di quello del CHDK, COMPORTA UNA REALE SOVRASCRITTURA DEL FIRMWARE PRESENTE NELLA ROM DELLA FOTOCAMERA! Quindi bisogna operare con molta attenzione per evitare un deleterio spegnimento della fotocamera durante la procedura: per prima cosa ci si deve assicurare di avere batterie completamente cariche, poi estratto dall'archivio .rar appena indicato il file PSA620.FIR, lo si copia sulla SD (come viene spiegato più avanti). A questo punto il resto della procedura è identico a ciò che si fa per caricare il CHDK: inserita la scheda nella fotocamera la si accende in modalità "visualizzazione", si premere il tasto "menù" e si scorre fino a “Firm Update...” confermando. Qui inizia la fase cruciale durante la quale NON BISOGNA ASSOLUTAMENTE SPEGNERE la fotocamera: si attende circa 2 minuti durante i quali lampeggiano varie spie. Dopodiché la fotocamera si spegne da sola e si può procedere a caricare il CHDK funzionante.
  • Modello: A630, Versione Firmware Originale: 1.00C
  • Modello: A640, Versione Firmware Originale: 1.00B
  • Modello: A710 IS, Versione Firmware Originale: 1.00A
  • Modello: S2 IS, Versione Firmware Originale: 1.00E, 1.00F, 1.00G, 1.00I (con la versione del CHDK per la 1.00G)
  • Modello: S3 IS, Versione Firmware Originale: 1.00A

A circa un anno dalla nascita del progetto del CHDK e dopo i primi rilasci per poche fotocamere basate sul DIGIC2 (inizio del 2007), si è assistito al reverse anche delle prime fotocamere basate sul DIGIC3. A seguito di ciò vi è stata una vera e propria esplosione del numero di fotocamere supportate, e alla nascita di altre versioni alternative a quella di GrAnd che era stata di riferimento fino ad allora. Inoltre lo sviluppo non si è arrestato nemmeno davanti all'introduzione del nuovo "sistema operativo" presente negli ultimi modelli, il DryOs, che ha richiesto un riadattamento del codice e nuove procedure di caricamento. Di solito, in un primo momento i modelli recenti sono supportati in una versione sperimentale degli autori che ci stanno lavorando sopra e poi man mano si estende il supporto ad altre versioni con il progredire dello sviluppo; per conoscere la situazione si guardi la pagina delle versioni supportate da ogni modello.

Attualmente sono supportati (considerando quanto detto per le più recenti) anche i seguenti modelli di cui fanno parte oltre ad altri modelli delle serie A ed S iniziali anche alcune delle serie G e SD (le ultime sono le Ixus):
  • Modello: G7, Versione Firmware Originale: 1.00I, 1.00G, 1.00J
    La prima Powershot dotata del DIGIC3 su cui è stato adattato il CHDK
  • Modello: A450, Versione Firmware Originale: 1.00D Novità!
  • Modello: A460, Versione Firmware Originale: 1.00D, 1.00G, 1.00J
  • Modello: A530, Versione Firmware Originale: 1.00A
  • Modello: A540, Versione Firmware Originale: 1.00B
  • Modello: A550, Versione Firmware Originale: 1.00C
  • Modello: A560, Versione Firmware Originale: 1.00A

  • Modello: A570 IS, Versione Firmware Originale: 1.00A, 1.00E
  • Modello: S5 IS, Versione Firmware Originale: 1.01A,1.01B
  • Modello: A650 IS, Versione Firmware Originale: 1.00D
  • Modello: A700, Versione Firmware Originale: 1.00B
  • Modello: A720 IS, Versione Firmware Originale: 1.00C
  • Modello: Ixus50 (SD400), Versione Firmware Originale: 1.01A, 1.00B Novità!
  • Modello: Ixus55 (SD450), Versione Firmware Originale: 1.00B, 1.00C, 1.00D
  • Modello: Ixus60 (SD600), Versione Firmware Originale: 1.01A, 1.00D Novità!
  • Modello: Ixus65 (SD630), Versione Firmware Originale: 1.01A
  • Modello: Ixus70 (SD1000), Versione Firmware Originale: 1.02A, 1.01A, 1.01B
  • Modello: Ixus75 (SD750), Versione Firmware Originale: 1.01A, 1.01B Novità!
  • Modello: Ixus700 (SD500), Versione Firmware Originale: 1.01A, 1.01B
  • Modello: Ixus750 (SD550), Versione Firmware Originale: 1.00F, 1.00G Novità!
  • Modello: Ixus800 (SD700), Versione Firmware Originale: 1.01B, 1.01A, 1.00B
  • Modello: Ixus850 (SD800), Versione Firmware Originale: 1.00E,1.00D
  • Modello: Ixus860 (SD870), Versione Firmware Originale: 1.00C
  • Modello: Ixus950 (SD850), Versione Firmware Originale: 1.00C
  • Modello: SX100, Versione Firmware Originale: 1.00C Novità!
  • Modello: TX-1, Versione Firmware Originale: 1.00G, 1.01B Novità!

Tutto fa ben sperare che il supporto al CHDK si allargherà a sempre più modelli di fotocamere Canon, come riferimento sempre aggiornato si consideri la pagina ufficiale del progetto.

Come capisco se ho la versione giusta del firmware originale per cui esista una versione funzionante del CHDK?

Può accadere che non vengano sin da subito supportate tutte le versioni di firmware per un dato modello, in tal caso tenete d'occhio la situazione e pazientate che in poco tempo si fanno molti passi avanti. Se non si conosce la versione del proprio firmware originale un modo per scoprirlo consiste nell'eseguire la seguente procedura:
  • Si crea un file denominato ver.req (non importa se vuoto, l'importante è il nome) e lo si carica sulla SD (se non hai un lettore di memorie viene spiegato più avanti come guarda l'uploader!)
  • Si accende la fotocamera in modalità "visualizzazione" (è importante che si accenda subito in questa modalità e non avvenga che si accenda in modalità "scatto" e poi si passi a "visualizzazione"!)
  • Tenendo premuto il pulsante centrale SET FUNC si preme anche il pulsante DISPLAY, a questo punto dovrebbe comparire una stringa di teso del tipo: "Firmware Ver GM1.00X", 1.00X è la tua versione di firmware originale installato nella fotocamera


Come si carica sulla fotocamera?

É molto semplice: bisogna solamente copiare i due file DISKBOOT.BIN e PS.FIR presenti nell'archivio compresso sulla tua scheda di memoria SD (non c'è bisogno di metterli in alcuna cartella fanno tutto loro al primo avvio! ). Infatti il primo si preoccupa di far fare il boot al secondo che è il firmware vero e proprio (anche se sarebbe più opportuno chiamarlo sideware visto che si affianca al sistema originale estendendolo). ATTENZIONE:
se per il proprio modello non si è nella situazione appena indicata con quei due file, si legga più avanti la parte che riguarda il DryOS.

Per fare ciò i modi sono due o hai un lettore di schede di memorie... oppure usi niente di meno che la fotocamera stessa come lettore/scrittore di SD, infatti anche se normalmente non è possibile caricare file che non siano immagini sulla fotocamera, tuttavia tramite questo programmino detto Uploader (scaricalo qui!) puoi caricare qualsiasi file sulla tua SD (purché ci stia! ).
Per usare l'Uploader, dopo aver scaricato l'archivio al collegamento sopra citato, estrai la cartella del tuo modello di fotocamera (ma se non c'è il tuo, di solito funziona anche con uno qualsiasi!), dentro vi troverai un file di testo chiamato FirmInfo.txt che serve a dire all'eseguibile come caricare un file, ed è fatto così:

----------------------------
[Firmware File Name]
DISKBOOT.BIN

[Camera Model Name(s)]
Canon PowerShot A710 IS

[Firmware Version]
1.0.1.0

[CF Capacity (KB)]
2048
----------------------------

Nei vari campi devi inserire le informazioni: nel primo campo bisogna mettere (esattamente!!!) il nome del file da caricare, nel secondo il tuo modello di fotocamera, nel terzo è meglio lasciare stare così com'è, nel quarto la capacità della scheda di memoria in KB (comunque questo è un parametro che serve solo per evitare di caricare file più grandi della SD, quindi in pratica funziona quasi con qualsiasi dimensione!). Dopo aver fatto ciò metti nella stessa cartellina dell'uploader il file che vuoi caricare e poi avvi l'eseguibile, che ti dirà cosa fare: in pratica connettere con l'usb la fotocamera e accenderla. In men che non si dica avrai i tuoi file nella memoria SD della fotocamera pronti all'uso!
La cosa interessante è che con questo metodo puoi caricare tutti i file che vuoi (non solo il firmware, basta solo mettere il nome giusto!), benché sei costretto a farlo per uno alla volta e non è possibile metterli in cartelle specifiche sulla SD, ma in realtà si può ovviare a quest'ultimo inconveniente utilizzando il "navigatore file" del CHDK con cui è possibile spostare il file caricato nella giusta cartella con il copia e incolla!

Una volta caricato i due file del CHDK, per eseguirlo basta accendere la fotocamera in modalità "visualizzazione", premere il tasto "menù" e scorrere fino a trovare l'unica opzione disponibile (che prima non c'era!) “Firm Update...” e confermare con OK. Dopo poco la fotocamera si riavvierà facendo brillare per un attimo la luce blu del tasto “direct print”: ciò ti conferma che è stato avviato il CHDK.

Ma se dopo averlo caricato spengo e riaccendo il CHDK c'è ancora?

No, il CHDK va riavviato ogni volta con la precedente procedura in quanto si carica nella memoria volatile.
Tuttavia (se lo si usa spesso, o non si riesce più a farne a meno! ) si può evitare la noia di riavviarlo ogni volta, rendendo la scheda SD bootabile in pratica andando nel "Menù Debug" del CHDK e selezionando "Rendi card avviabile" e poi semplicemente bloccando la SD, cioè spostando il ponticello su “lock”. Pensereste che così facendo non si riesca più a scrivere sulla scheda di memoria, e invece vi sbagliate , perché quando si avvia il CHDK dalla scheda il blocco serve solo a rendere la vostra SD avviabile (sì proprio come se fosse un floppy o un CD di boot ). Ultima nota riguardo all'avvio automatico: esso funziona solo sulle schede formattate in FAT16 (quindi se non vi funziona è molto probabile che abbiate formattato la SD in FAT32!), tuttavia le SD di solito conviene formattarle con la fotocamera che spesso non supporta quelle superiori a 2GB (proprio perché formatta in FAT16) quindi il problema non dovrebbe presentarsi in condizioni normali.

E se avessi una fotocamera con il DryOs installato?

Se la procedura appena vista non funziona perché nell'archivio compresso non si trovano solo i due file citati prima e si ha una fotocamera recente (quelle col DIGIC3 presentate dopo la fine del 2007), allora molto probabilmente si ha come “sistema operativo della fotocamera” il DryOs. In questo caso la procedura è leggermente più complessa:
  • Dalla pagina relativa sul sito del CHDK scarica il programmino Cardtricks.
  • ASSICURATI DI NON AVERE FOTO NELLA SD CARD per evitare perdite di dati. Inserisci nel tuo lettore di schede di memoria la SD con la linguetta su NON protetta.
  • Avviato Cardtricks, seleziona il percorso corrispondente alla tua memoria SD, seleziona "format as FAT" e poi "make bootable".
  • A questo punto procurati l'archivio compresso della versione del CHDK per il tuo modello di fotocamera e firmware. Poi estrai i file contenuti in esso sulla scheda SD.
  • Ora la scheda è pronta per essere utilizzata per avviare il CHDK, ultima cosa spostare il ponticello "lock" per bloccare la scheda in modo che sia autoavviabile.

È davvero pericoloso fare l'“Aggiornamento firmware” con le batteria quasi scariche.. e se la fotocamera dovesse spegnersi durante la procedura?!

Qui si ricade nel dubbio che il CHDK sia un firmware, tratti in inganno dal nome della procedura che in realtà è solo un trucco per caricare il CHDK (la fotocamera interpreta un .BIN bootable come ciò che avvia l'aggiornamento del firmware ma si sbaglia, semplicemente perché dal suo punto di vista sono solo i tecnici Canon che devono aggiornare il firmware usano .BIN avviabili per caricare .FIR), tuttavia ripetiamolo la ROM della fotocamera, in ogni caso, non viene mai toccata!
Come si può esserne così sicuri, be' semplicemente perché se bloccate la vostra SD per avviare il CHDK ad ogni accensione (e vi assicuro dopo la prima volta farete così anche voi! ) non capita mai che la fotocamera con le pile scariche s'impalli, semplicemente fa quello che faceva prima con le pile scariche! (lo ricordate quel messaggino che diventava il vostro incubo e non vi faceva più scattare niente senza alcun preavviso! )

E adesso come accedo alle funzionalità del CHDK?


Le funzionalità del CHDK si controllano tramite un menù aggiuntivo a cui si accede entrando in modalità <ALT>, per fare ciò (questi genii di russi ) hanno pensato bene di usare l'inutilizzatissimo tasto "direct print" (quello che lampeggia in blu quando caricate il CHDK ma anche quando scatterete in RAW). Quindi cliccando il tasto "direct print" si abilita l'<ALT> e vedrete infatti una piccola scritta in basso che ve lo conferma, dopodiché potete accedere al menù del CHDK cliccando (ovviamente) il tasto "menù".

Non so (o non mi piace) l'inglese posso localizzare il CHDK nel mio linguaggio?

Dalle ultime versioni GrAnd (successive alla 109; tuttavia bisognerà stare attenti in futuro che con il continuo aggiornamento delle versioni alcune voci potrebbero non risultare sempre aggiornate) è stata aggiunta la possibilità di localizzare il CHDK tramite un file di testo con estensione .lng che conviene (ma non è d'obbligo, si riesce a caricarlo da qualunque percorso ) mettere nel percorso /CHDK/language/. Lo si carica, poi dal menù del CHDK alla voce "visualizzazione", selezionando "lingua" e scegliendo col navigatore il file di testo (che si sarà precedentemente caricato sulla SD con i metodi già descritti) rinominato italian.lng in cui si sarà ricopiato esattamente ciò che si vede nella casella di che si raggiunge dalla voce relativa alla propria lingua in questa pagina del wiki.


Non voglio perdere la mie impostazioni aggiornando all'ultima versione il CHDK?

Basta fare il backup del file di configurazione che si trova sotto /CHDK/CHDK.CFG e ripristinarlo dopo aver aggiornato i file DISKBOOT.BIN e PS.FIR

Potrei farmi il mio CHDK su misura?

Certo... compilandoti come più ti aggrada (..che so: non ti piacciono i giochini, allora levali!) i sorgenti rilasciati, inoltre potresti darti da fare con il uBASIC (la versione semplificata del linguaggio BASIC che permette di programmare queste fotocamere) anche nello sviluppo di nuovi script!
Tutto ciò è possibile grazie al fatto che i DIGIC presenti nelle fotocamere Canon sono processori x86 (niente meno!! ) che fanno girare un sistema di fabbrica DOS-derivato (proprio così! ).
Quindi in teoria sarebbe anche possibile in futuro (con un altro po' di reverse-engineering ) adattare il CHDK ad altri modelli Canon tipo quelli della serie A5xx (che hanno lo stesso processore DIGICII) o addirittura a fotocamere con DIGICIII; in pratica ciò è molto difficile a meno che qualche programmatore, veramente interessato, molto bravo e con molta pazienza si metta a fare ciò che stanno facendo coloro che hanno sviluppato questo CHDK.
Se vuoi saperne di più su come sta procedendo il lavoro sui DIGIC guarda qui, o se sei interessato su come stanno le cose per le appartenenti alle altre canon quali ad esmpio le serie A5xx, SDxxx (Ixus) e GX c'è finalmente una pagina di riferimento per gli sviluppatori
Aggiornamenti:
Da un po' di tempo è stata fatta una pagina in cui si spiega come effettuare il porting (cioè la migrazione) del CHDK su altri modelli di fotocamere (ovviamente e come è giusto che sia, chi per primo ha sviluppato questo firmware hack non si prende la briga di comprare venti modelli diversi di fotocamere solo per fare qualche porting!) quindi se avete le palle e le conoscenze per mettervi sotto (o siete solo curiosi) qua c'è il link alla procedura.

__________________________________________________________________________________________________________________
WORK IN PROGRESS

{NOTA: direi che a grandi linee si potrebbe usare la disposizione del menù per spiegare le funzionalità è abbastanza ordinata a differenza delle FAQ qua c'è ancora mooolto da lavorare, cercherò di darmi da fare quando avrò un po' più di tempo!}

Ecco cosa fa attualmente il CHDK (in genere si parla delle funzioni delle versioni più comuni o di riferimento):

Qui si può consultare l'indice delle funzioni presenti nel menù del CHDK curato dall'utente bidddo (°J°)

1) Scatto in RAW
{NOTA:ampliare e spiegare per bene con qualche cenno al trattamento e sviluppo del raw (DNG4PS, exiftool, cambiare da ISOAUTO a ISO giusto, ecc.) e l'utilità (bilanciamento bianco e sovra sotto exp): c'è già abbastanza roba in giro nella discussione su cui lavorare per ora}

1.1 Qualche precisazione sul formato RAW più opportuno:

Il formato CRW che si ottiene con il CHDK è difficilmente leggibile con la maggior parte di programmi, perché ogni fotocamera ha un suo profilo di decodifica della matrice che dipende dal CCD e di solito ci vuole del tempo prima che i programmi di elaborazione supportino le nuove fotocamere. Va anche detto che molti programmi basano la decodifica delle informazioni del RAW su dcraw quindi in genere basta aspettare il poco tempo che il profilo venga implementato in quell'incredibile progetto e poi dipende solo dagli sviluppatori dei vari programmi aggiornare il motore di decodifica (ciò vale per RT e PS in particolare ma anche altri, comunque in merito a questo si dia uno sguardo più avanti al paragrafo sui programmi di sviluppo del RAW).

Un metodo per renderlo più compatibile è convertirlo in DNG (standard proposto da Adobe) usando DNG4PowerShot-2 (sviluppato sulla base del primo visto che sono entrambi Open Source, ma di diversi autori), usando questo programma in congiunzione con EXIFTool, è inoltre possibile inserire anche metadati quali gli EXIF, a patto che sia presente anche la versione JPEG del RAW, da cui verranno copiati i metadati e introdotti nel nuovo file DNG.

Aggiungendo i metadati EXIF, inoltre, quando si lavora con un programma per la gestione dei RAW, ci si avvantaggerà dei bilanciamenti preimpostati dalla fotocamera, che permetteranno al programma di elaborazione del RAW di ottenere un'anteprima già preimpostata basata sui dati di scatto che in genere è già un buon punto di partenza per affinamenti successivi.

Ormai è fortemente consigliabile convertire in DNG anche perché il lato negativo della conversione a DNG: cioé la maggiore dimensione dei DNG rispetto ai RAW originali era un problema del primo DNG4PowerShot mentre la nuova e più attuale versione DNG4PowerShot-2 permette la compressione senza perdita del DNG, che alla fine arriva ad occupare molto meno del CRW originale (quasi quanti i JPEG stessi)!

Inoltre questo programma adesso supporta la decodifica di quasi tutte le matrici dei RAW delle ultime fotocamere supportate dal CHDK e grazie all'interfaccia di calibrazione è possibile implementare abbastanza facilmente i profili delle nuove fotocamere, quindi è per questo che non si cita più il predecessore il cui sviluppo era stato abbandonato e trova in questa nuova versione la sua naturale prosecuzione.

1.2 Funzioni di gestione del RAW fornite dal CHDK:

Nell'interfaccia del CHDK, oltre al menù che regola i parametri relativi al RAW permette di regolare le varie impostazioni, sono possibili alcune funzioni minime di manipolazione dei RAW stessi generati dalla fotocamera. Nel menù principale si può scegliere ovviamente se abilitare il salvataggio dello scatto in RAW in aggiunta al JPEG (che viene comunque sempre salvato, anche perché è la fonte degli exif che non sono presenti nel RAW). Si può scegliere quale estensione e prefisso dare ai file RAW e se metterli in una loro cartella oppure insieme ai corrispettivi JPEG. Vi è un'opzione che indica pure se si vuole salvare in RAW anche nella modalità di "scatto continuo": visto che il tempo di salvataggio del RAW è in linea di massima inversamente proporzionale alla sua pesantezza (più Mpixel e peggio è..). Ciò rallenterebbe molto la raffica di scatti, per questo motivo l'opzione limita il salvataggio in RAW solo al primo degli scatti e non ai successivi.
Infine una funzione abbastanza importante è quella di sottrazione degli pixel difettosi o che possono comparire nelle esposizioni lunghe. Ciò avviene tramite la sottrazione di un fotogramma detto oscuro perché la fotocamera è automatizzata per farlo subito dopo il primo scatto, a diaframma chiuso, in modo da evidenziare solo i pixel difettosi, che verranno poi sottratti allo scatto iniziale. Tuttavia considerando che devono essere fatti due scatti anziché uno, sulle lunghe esposizioni ciò può essere una gran perdita di tempo. Sulle brevi esposizioni invece la perdita di tempo è impercettibile e si potrebbe scegliere di abilitare sempre questa funzione, se si hanno dei bad pixel sul CCD. Anche se queste fotocamere sono impostate automaticamente di fabbrica per usare questa funzione proprio sugli scatti lungi dove serve di più (esposizioni più lunghe di 1 secondo), si può scegliere di disattivare completamente questa funzione: si guadagnerà la possibilità di fare gli scatti più rapidamente, anche se così non verranno rimossi gli hot pixel. Una soluzione introdotta nelle versioni più recenti al problema dei bad pixel è l'opzione di mappatura tramite l'utilizzo di un file contenente le coordinate di questi che così verranno sempre rimossi senza bisogno della precedente operazione.
Questa possibilità viene migliorata nella MoreBest (qui c'è la spiegazione di come usarla), introducendo la possibilità di controllare anche gli hot pixel: infatti è ora possibile fare diverse mappature per ogni tempo di esposizione possibile, così da avere la massima flessibilità.

Fra le operazioni di manipolazione dei RAW prodotti direttamente dalla fotocamera stessa, introdotte dalle più recenti versioni, si annovera la possibilità di far sviluppare direttamente in camera il RAW. Ciò si ottiene usando l'operazione di sviluppo RAW che permette di selezionare dal navigatore il file che si vuole sviluppare e poi per elaborarlo chiede di fare uno scatto (non importa a cosa tanto viene processato il RAW) modificando i parametri che non siano fisici (ovviamente cambiare le coppie tempo-diaframma non avrà alcuna influenza sull'immagine finale). Così facendo si possono ad esempio applicare le combinazioni di colore, il sepia e il bianco e nero, ma anche aumentare o ridurre il filtro di riduzione del rumore. Si è infatti scoperto che modificando il valore ISO si può applicare un filtro NR più o meno pesante a seconda che li si alzino o abbassino rispetto alla scatto originale. L'unico difetto di queste manipolazioni è che nel JPEG sviluppato gli exif potrebberò risultare non più veritieri ma si può sopperire successivamente con un editor di exif ripristinando le informazioni errate.
Altre due operazioni di base sono possibili coi RAW e si accedono dal menù contestuale (freccia sinistra) del navigatore perché si applicano direttamente a più file: selezionandoli e processandoli insieme si genera un RAW (ma con estensione .WAW per evitare sovrascritture accidentali), che può essere sviluppato per vederne il risultato direttamente in fotocamera. Le operazioni disponibili sono la somma e la media di più RAW (sono mere operazioni aritmetiche applicate direttamente ai pixel dei RAW) e in genere sono comode se si possono fare più scatti con la stessa inquadratura. Infatti la somma di RAW permette di sommare più scatti per ottenerne uno avente la somma delle esposizioni: ad esempio se si sommano cinque scatti buii da 2 secondi ciascuno è come averne uno luminoso da 10 secondi a parità di impostazioni (ma con meno hot pixel). Invece con la media si può migliorare il rapporto segnale/rumore: infatti mediando più scatti uguali un soggetto costante tende a prevalere sulle fluttuazioni casuali del rumore. Ovviamente gli utilizzi possono essere anche più creativi come fotomontaggi con sovrapposizioni di scatti differenti e cose del genere.

1.3 Programmi per elaborare il RAW (gratuiti e non):
  • Canon Utilities RAW Image Task, fa parte del pacchetto proprietario di programmi fornito da Canon con la fotocamera (non so se vi siete accorti della sua esistenza!):
    se pensavate di utilizzarlo perché già ce l'avete, devo deludervi in quanto non riconosce i file CRW generati dal CHDK (si spera che almeno riconosca quelli ufficiali!) e nemmeno supporta i DNG quindi è praticamente inutile (potete anche disinstallare questo modulo!).
  • UFRaw, interfaccia grafica basata sul famoso e ottimo decodificatore a linea di comando DCRaw di Dave Coffin (entrambi sono progetti open-source):
    è piuttosto ricco di funzioni e da modo di esprimere al meglio molti affinamenti; esiste anche come plug-in per GIMP (comodissimo!), riesce anche ad aprire i CRW originari compatibilmente a quanto è aggiornato il motore di dcraw.
  • RawStudio (open-source, provato su sistema GNU/linux non so se esista anche in ambiente win):
    è abbastanza basilare nelle sue funzioni ma riesce a leggere anche i file CRW generati dalle nostre PowerShot con questo hack.
  • Raw Therapee, (progetto open-source, forse il migliore! Ve lo consiglio caldamente!):
    è in italiano e ha una gran quantità di funzioni di controllo dell'immagine (e permette di migliorare i problemi che danno le lenti limitate come quelle di una compatta), supporta anche gli spazi colori più ampi di sRGB e permette di salvare profili ICC preimpostati e fare alcune correzioni avanzate (praticamente all'altezza di Photoshop!). È in grado di aprire perfettamente i CRW generati dalle nostre PS, così come i DNG.
  • Adobe Camera RAW, integrato nei programmi Photoshop CS/2/3 o in alternativa Elements o ancora LightRoom (il primo closed-source a pagamento; è piuttosto caruccio per quello che offre, secondo me! Comunque, per chi fosse interessato la versione student si trova(va) ad un prezzo molto scontato, benché sempre piuttosto alto! Attualmente conviene di più il fratello minore Elements, oppure il dedicato allo sviluppo LightRoom):
    ha moltissime funzioni (forse anche troppe! Alcune le trovo un po' rindondanti..) e permette e correggere molto finemente il risultato che si vuole ottenere, inoltre integra anche alcuni strumenti di correzione (tipo distorsioni, rumore, aberrazioni e così) che qualcuno può trovare comodi ma per quelli che preferiscono pensare ad un'operazione alla volta per ottenere il massimo da ogni scatto, le riterranno inutili. Anche questo non è in grado di aprire i CRW generati dalle nostre PS quindi bisognerà prima convertirli in DNG (in realtà è il solito discorso relativo a quanto è aggiornato Adobe Camera Raw, anche se alla adobe sono un po' lenti in questo).


1.4 Qual è l'utilità pratica della manipolazione del formato RAW, considerato come il "negativo digitale"?


Innanzitutto va detto che il formato RAW si ottiene dalla raccolta dei dati grezzi (come dice il termine stesso) così come sono riportati dal sensore e che non subiscono alcuna elaborazione da parte del processore della fotocamera.
Questo particolare va tenuto bene a mente quando si ha a che fare con il formato RAW, poiché implica alcune caratteristiche particolari che a una prima impressione ci potrebbero far considerare l'immagine RAW caricata dal programma apposito come qualitativamente peggiore o venuta male in confronto all'equivalente JPEG.

Formato RAW:
Infatti poiché il RAW non subisce alcun processamento da parte del DIGIC a prima vista apparirà sicuramente più rumorosa del JPEG equivalente. Beninteso, ciò non è detto che sia necessariamente uno svantaggio, (anzi...) poiché nell'ottenimento il JPEG viene applicato sempre un filtro di riduzione del rumore. Ovviamente se uno volesse controllare più finemente la riduzione del rumore per preservare maggiormente certi dettagli e ottenere immagini meno pastose deve per forza lavorare su RAW che è il formato intatto, inoltre spesso usando programmi dedicati a questa operazione si riescono a ottenere risultati anche migliori di quanto non possa fare il processore della fotocamera che è soggetto a certi limiti e approssimazioni che un'elaborazione fatta con un calcolatore più potente non ha.

Demosaicizzazione (interpolazione dei pixel):
Un'altra operazione soggetta ai limiti del processore della fotocamera, è la cosiddetta demosaicizzazione: l'operazione che permette di ottenere dai dati grezzi RGB disposti secondo il filtro di Bayer, i pixel interpolati che assommano le tre coordinate RGB. Ovviamente lavorando sul RAW, l'interpolazione viene eseguita più accuratamente dal momento che si usa un elaboratore che oltre ad essere più potente può permettersi anche di perdere un po' più tempo nell'esecuzione di calcoli più complessi, di quanto non potrebbe fare invece una fotocamera che deve creare un'immagine pronta in meno di un secondo!

Bilanciamento del bianco:
Un altro fatto molto importante che differenzia dal JPEG l'immagine RAW, è il fatto che essa sia libera da qualsiasi bilanciamento del bianco, che invece si ottiene a posteriori coi programmi appositi agendo sulla temperatura di colore e sulla tinta del verde. Ciò è molto utile nel caso si sia impostato un bilanciamento errato con dominanti di colore sul JPEG o non si riesca ad ottenere un risultato realistico in condizioni un po' particolari, quindi da questo punto di vista il RAW offre il grande vantaggio di poter meglio calibrare l'immagine per ottenere risultati molto affinati e naturali.

Profondità di colore:
Infine il file RAW ha generalmente una profondità di colore maggiore (nel caso delle nostre fotocamere con il CHDK 10 bit per colore) di quella del formato JPEG che è di 8 bit per colore (infatti si considerano i JPEG come aventi profondità 3x8 = 24 bit , infatti ci sono i tre colori RGB). Ciò permette in molti casi di foto sovraesposte (più difficilmente) o sottoesposte (più facilmente), di recuperare entro certi limiti (che in genere si assestano su di un intervallo compreso fra -1 e +1 stop) le parti poco definite e rendere visibili i particolari che sembrerebbero persi. Ciò ovviamente, è impossibile da ottenere col JPEG, pena lo sbiancamento o l'ingrigimento della foto e la perdita di gran parte delle gradazioni cromatiche.


Un semplice esempio di ciò che si può fare manipolando il RAW (vi consiglio di osservare bene i particolari nel confronto delle immagini: imparerete molto di più che dalla mia spiegazione!): a destra l'immagine scattata in JPEG dalla fotocamera visibilmente sovraesposta (è stata scattata in una situazione volutamente difficile da gestire: c'è un forte scarto di luminosità fra primo piano e sfondo!), a sinistra quanto è stato possibile ottenere lavorando sul RAW (ed esportandolo infine in JPEG) agendo sull'esposizione, il bilanciamento del bianco, la curva dei livelli di luminosità e la saturazione dei colori, considerando in più anche la passata del filtro di riduzione del rumore e la correzione delle aberrazioni cromatiche (la prima va fatta perché il RAW è più sporco dal momento che non subisce nessuna manipolazione da parte del DIGIC2, la seconda è alquanto utile per eliminare i fastidi che generano le lenti di una compattina!) con un programma di gestione del RAW (in questo caso è stata usata la beta in prova di Photoshop CS3 per curiosità, ma non vale la pena usare PS per fare solo lo sviluppo del RAW dato che ci sono dei buoni freeware che fanno la stessa cosa se non meglio!). Come si può osservare dalle immagini nel primo caso si è riusciti a recuperare gran parte delle zone sovraesposte, anche se non tutte (parte del cartellone pubblicitario, riflessi sulle macchine, ecc.), ricordate che il nostro RAW ha solo 10 bit di profondità, non può fare i miracoli, ma vi è un certo margine sugli 8 bit del JPEG. Inoltre agendo con una certa precisione si riescono a ottenere immagini migliori e più contrastate: nell'immagine manipolata i colori sono molto più naturali dell'altra, ve lo assicuro!

2) Opzioni Fotografiche Aggiuntive

3) Opzioni Video

4) Indicatori e Strumenti Utili

4.1 Indicatore di carica della batteria
Uno degli indicatori più utili (per il quale, a mio parere, già da solo vale la pena di usare il CHDK) che davvero inspiegabilmente non è mai stato implementato dal produttore, è quello che mostra l'autonomia delle batterie.
Davvero un gran passo avanti rispetto all'avviso di batteria scarica che compare quando se va bene puoi riuscire a fare uno o due scatti.. Invece adesso con questo indicatore graduale si sa esattamente a cosa si va incontro quando si accende la macchina!
Ovviamente l'indicatore va tarato e questa è la cosa più importante, le impostazioni predefinite infatti sono generiche e funzionano in linea di massima, ma il bello è proprio tarare l'indicatore secondo le proprie esigenze. Per fare questo bisogna visualizzare la tensione della batteria (basta abilitare l'indicatore in Volt nel menù stesso delle batterie che presenta il CHDK): in paricolare serve la tensione massima che raggiungono le batterie quando sono appena state caricate e la tensione minima un attimo prima che la fotocamera si spenga quando si sono scaricate.
Infatti è in base a questi parametri che si può avere una cognizione più o meno approssimativa di quanti scatti si riescano ancora a fare: ovviamente non è che l'abbassamento della tensione sia perfettamente lineare e preciso come un orologio svizzero, con tutto ciò che ne consegue, però in ogni caso indicatori del genere sono strumenti di guardia che funzionano piuttosto bene. Inoltre la possibilità di regolazione che ci offre il CHDK è qualcosa di estremamente flessibile: infatti anche se con l'usura i valori cambiassero oppure si usassero tipologie di batterie diverse si può sempre ritarare l'indicatore e avere tutto sotto controllo. Tanto per avere un'idea per chi inserisca i valori la prima volta in genere le tensioni minime con cui la fotocamera è al limite per delle batterie NiMH sono intorno a 4400-4800 mV e quelle massime arrivano intorno a 5100-5700 mV; l'intervallo dovrebbe essere appena più ampio per le batterie alcaline.
In ogni caso queste sono indicazioni di massima, nulla toglie che si possa scegliere un valore minimo un po' più alto per avere un migliore preavviso o un valore massimo un po' più basso per non vedere subito l'indicatore scendere.

4.2 Indicatore di spazio rimanente in memoria

4.3 Orologio e Calendario

4.4 Torcia

4.5 Istogramma
{NOTA: ampliare e spiegarne l'utilità pratica}
4.6 Indicazioni di sovra\sotto esposizione
{NOTA: ampliare e idem come sopra}
4.7 Calcolatore-ProfonditàMessaFuoco e indicatori vari (zoom exp e così via)
{NOTA: spiegarne bene le potenzialità e magari anche su cosa si basa il calcolo}
4.8 Navigatore e Lettore testi
4.9 Passatempi


5) Griglie

6) Esecuzione di script
{NOTA: raccoglierne il più possibile e fare qualche esempio di come si usano e cosa permettono di fare e soprattutto farne intravedere le potenzialità}

Una delle funzionalità del CHDK che apre un gran numero di potenzialità è la possibilità di eseguire i cosiddetti script , questi non sono altro che piccoli file di programmazione (con estensione .bas ma in pratica file di testo modificabili con un qualsiasi editor che contengono linee di codice uBASIC) che permettono di automatizzare una sequenza di operazioni che altrimenti andrebbero eseguite manualmente pigiando i tasti della fotocamera.

In realtà le possibilità di applicazione degli script è quasi illimitata, non solo molti di essi possono replicare e automatizzare una sequenza di comandi azionabili normalmente coi tasti della fotocamera, ma anche operare con alcune funzionalità di basso livello non accessibili dall'interfaccia normale. Due esempi di questo comportamento limite sono lo script che consente di variare completamente a piacimento la sensibilità ISO (anche con valori non standard, tipo 254 o 327) e quello che forzando lo zoom e la messa a fuoco permette di ampliare la messa a fuoco del teleobbiettivo fino a pochi centimetri. Tuttavia, va fatto notare che solitamente questi script sono considerati potenzialmente pericolosi e da usare con estrema cautela, in quanto poiché vanno ad operare su impostazioni mai verificate prima e non garantite dal costruttore non si può mai essere perfettamente sicuri del loro comportamento.

6.1 Che utilità hanno gli script ovvero in quali casi può essere vantaggioso farne uso:

Gli script hanno una grandissima utilità pratica, nonché la possibilità di semplificare notevolmente alcuni modi di operare che si usano per alcune tecniche di ripresa fotografica. In pratica possono assolvere per esempio alla funzionalità di ripresa a forcella (in inglese denominata "bracketing") presenti ad esempio su macchine fotografiche di fascia professionale (reflex generalmente). La ripresa a forcella (bracketing) è una modalità automatizzata di scatto in ripetizione, che come fa intendere il nome si utilizza solitamente con la fotocamera posizionata su di un cavalletto (questo più che altro per le finalità che ci si propone come sto per spiegare). Tuttavia ciò che la differenzia dallo scatto in serie è la possibilità che vengano eseguiti scatti con impostazioni diverse in modo da rappresentare uno stesso soggetto in condizioni di scatto diverse. La ripresa a forcella diviene ad esempio molto utile, se non indispensabile, ad esempio quando si applicano le tecniche di combinazione di scatti come ad esempio l'HDR (ampliamento della gamma dinamica) o la creazione di panorami dalla combinazione di più foto, o ancora l'estensione del piano focale.
Infatti, si può automatizzare una rapida successione di scatti che varino di poco l'esposizione o la messa a fuoco, minimizzando il rischio che il soggetto si trovi in posizioni diverse nella serie di scatti (cosa che produrrebbe delle immagini fantasma quando si combinano gli scatti), tutto ciò invece diventerebbe insostenibile se si dovesse fare tutto manualmente perché l'impostazione delle varie impostazioni sarebbe molto più lenta e macchinosa e il soggetto potrebbe sfuggire oppure si potrebbe spostare inavvertitamente la fotocamera.
Inoltre, come se tutto ciò non fosse già abbastanza ci sono altri infiniti modi creativi di automatizzare la fotocamera mediante script: ad esempio si possono effettuare scatti ad intervalli regolari di tempo, per creare sequenze fotografiche o filmati di fenomeni molto lenti, come possono essere quelli del mondo vegetale; oppure cercare di congelare eventi troppo rapidi da fotografare direttamente, come i fulmini o i fuochi d'artificio; oppure più semplicemente per scattare più foto di una stessa situazione con parametri diversi per essere sicuri di non sbagliare, un esempio lampante è se si scatta in interni con poca luce nell'usare uno script che faccia magari una foto ad alti ISO e subito dopo col flash così da poter scegliere successivamente quella venuta meglio (funzione che se non mi sbaglio è stata anche implementata e abbastanza pubblicizzata da una nota casa produttrice sugli ultimi modelli, tanto per far vedere come si può andare ben oltre i limiti che il mercato impone ai costruttori!). Altre possibilità permesse dagli script sono funzioni particolari come il controllo remoto mediante cavo USB o l'autoscatto sensibile al movimento del soggetto.
Concludendo quindi, si può dire che gli script in generale sono praticamente indispensabili per tutte quelle tecniche fotografiche creative che sarebbero molto difficili o quasi impossibili da fare senza la possibilità di automatizzare gli scatti della fotocamera, l'unico limite alle potenzialità degli script è la fantasia dei loro creatori!

6.2 Come si usano gli script:

6.3 Dove reperire gli script finora programmati:

La maggior parte degli script possono essere rintracciati sulla pagina ufficiale del progetto, ove tra l'altro vi è il forum dove vengono discusse le funzionalità degli script: ciò è molto utile perché non è cosa facile capire cosa fa uno script, a meno che non si comprenda bene il linguaggio di programmazione in cui è scritto (che è una versione semplificata del BASIC) il uBASIC (si legge micro-Basic)



Altro: {NOTA: queste cose almeno per ora non sono troppo prioritarie}

Navigatore
Lettore testi e caratteri (font)
SplashScreen
Torcia
LevaZOOM per MF
Benchmark
Calendario
Giochi

__________________________________________________________________________________________________________________

RINGRAZIAMENTI a tutti coloro che hanno contribuito indirettamente all'ampliamento di questa piccola guida:

dave4mame:
che per primo (ormai nella notte dei tempi) sollevò la nostra attenzione su questo formidabile gingillo!
19logan86:
per aver ricordato la procedura d'interrogazione per conoscere il numero di versione del firmware originale preinstallato sulla fotocamera e aver trovato l'introvabile link all'aggiornamento del firmware originale canon per la A620 alla versione F.
Vathek:
per tutto ciò che ha sviluppato (e svilupperà!) riguardo alla programmazione di script e per le belle opere che ci mostra: che sono la più chiara riprova delle potenzialità degli script.
ggcal:
per aver spiegato nei minimi dettagli la sua esperienza con il vero aggiornamento del firmware a versione F della sua A620.
Stevenb, HSH e pols65:
Per aver provato e documentato la procedura di utilizzo del CHDK con il DRYOS.
bidddo (°J°):
Per il contributo nella stesura dell'indice tradotto delle funzioni presenti nel menù del CHDK (collaborative maggio'09)
Tutti coloro che potrei (quasi sicuramente) aver dimenticato... e che hanno inconsciamente contribuito alla formazione delle mie conoscenze sul CHDK, grazie alla loro presenza nelle discussioni (presenti e passate) e al dibattito con cui hanno sempre mantenuto viva la nostra curiosità. GRAZIE RAGAZZI!

Ultima modifica di Chelidon : 27-05-2009 alle 13:39. Motivo: aggiornato migliorata impaginazione, paragrafi batterie e funzioni RAW
Chelidon è offline   Rispondi citando il messaggio o parte di esso