[Teoria] Codifica immagini e bitrate

floppyes
Ciao a tutti!

Sto studiando in informatica la codifica delle immagini ed il bitrate, però non mi è chiara una cosa.

Testo esercizio:
Supponiamo di scattare una fotografia con una macchina fotografica digitale da 3 Mega Pixel (MP). L’immagine risultante ha quindi una risoluzione pari a n = 2048 pixel per m = 1536 pixel. Determinare la quantità di memoria necessaria per salvare questa immagine nei casi in cui sia scattata in modalità bianco/nero, scala di grigi, true color, e con una palette da 256 colori. Ipotizzando di voler trasmettere le immagini cos`ı salvate, determinare il bitrate minimo necessario per trasferire queste immagini rispettivamente in 1, 4, 2 e 3 secondi.

Mia soluzione:
L'immagine è formata da {tex}n=2048{/tex} per {tex]m=1536{/tex} pixel.
In bianco e nero occuperà {tex}n*m=2048*1536=3Mbit{/tex}
In scala di grigi occuperà {tex}n*m=2048*1536=3Mbyte{/tex}
In true color occuperà {tex}n*m*3=2048*1536*3=9Mbyte{/tex}
Questi sono giusti?

Ora non riesco a capire una cosa, il libro dice che per trovare al grandezza occupata nel caso di paletta a k colori bisogna fare: {tex}k*3+m*n{/tex} mentre le slide del prof indicano: {tex}k*3*8+m*n*log_2(k){/tex}

Come mai questa differenza nella formula? qual è quella corretta da adottare?

Inoltre non capisco come fanno a calcolare il bitrate minimo, perché sul libro moltiplicano la grandezza in mega della foto per 8 (perché proprio per 8?) e lo dividono per i secondi, mentre sulle slide divino e basta la grandezza delle foto per i secondi! :roll: :roll:

Qualcuno riesce a schiarirmi le idee :mrgreen: :mrgreen:

Grazie in anticipo!
Ciaoo :-)
PS: il libro e le slide sono state scritte dallo stesso professore

Risposte
apatriarca
I primi che hai scritto mi sembrano giusti. Per quanto riguarda la paletta, il libro sembra supporre che ogni colore sia memorizzato in un byte e che quindi \(k\) sia minore di \(256\) e che non vengano compattati i bit in modo più stretto. Il tuo professore sembra invece parlare di bit e suppone che venga usato il minimo quantitativo di memoria sufficiente per memorizzare l'immagine. Per indicizzare un colore tra \(k\) sono infatti necessari e sufficienti \(\log_2(k)\) bits per indice e ogni colore nella paletta è di 3 byte e quindi \( 3 \times 8 \) bits. Io direi che quella corretta è quella del tuo professore. Ma in questo caso forniscono entrambe lo stesso risultato, con la differente unità di misuta..

floppyes
Ciao!

Grazie mille per la risposta! Quindi la prima formula del libro esprime il risultato in byte, mentre quella del mio professore:
\(\displaystyle k*3*8+m*n*log_2(k) \)
esprime il risultato in bit!

Per quanto riguarda il bitrate invece va bene moltiplicare la grandezza per 8 e poi dividere per i secondi? Quello che non ho capito è perchè moltiplicano sempre per 8!

Grazie mille
Ciaoo :)

Howard_Wolowitz
Mi scuso in anticipo per il seguente OT.
[ot]Purtroppo non ho avuto ad oggi modo di frequentare nessun corso relativo all'elaborazione/codifica di immagini anche se mi piacerebbe per questo vi chiedo è difficile? Esistono libri che potete consigliare per partire da autodidatta?[/ot]
Per il bitrate, ad intuito, pur non avendo mai toccato foto o altri contenuti multimediali a livello di codifica suppongo che il moltiplicare per 8 sia fatto per ottenere il numero di bit(se la dimensione delle immagini è espressa in byte) e con la divisione per i secondi si ottenga il bitrate necessario alla trasmissione(da ritenersi comunque fittizio perchè privo di qualsiasi overload)...
Ringrazio e mi scuso ancora per l'OT!!

floppyes
Ciao!

Si esattamente è proprio quella la risposta.
Moltiplichi per 8 perché non calcoli il byte-rate ma il bit-rate. Se lavori in bytes moltiplichi per otto, se usi la mia formula che lavora direttamente in bits non ha senso fare la conversione :)

Purtroppo non posso esserti d'aiuto per quanto riguarda un corso di elaborazione o codifica. Io la sto studiando in un esame generale di fondamenti di informatica, in cui si studia dal codice binario fino alla programmazione in c, passando per le varie definizioni di sistema operativo, memoria centrale ecc

L'argomento sulle conversioni video o immagine è trattato in un capitoletto senza dilungarsi troppo.

Ciaoo!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.