Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Interazione e Multimedia, 9 CFU => Topic started by: turì on 10-02-2011, 12:30:00



Title: help codifica run-lenght
Post by: turì on 10-02-2011, 12:30:00
sul libro fondamenti di image processing c'è un esempio sulla codifica run-lenght che non ho capito bene

flusso di dati in input da comprimere

00001111   11111111   11110000   00000000   11111111   11111111

il codice di output è

00000100   00010000   00001100   00010000

mi spiegate come è il procedimento?

se il codice run-lenght è una coppia di valori del tipo (dato, numero occorrenze) in questo esempio come funziona?

thanks 


Title: Re:help codifica run-lenght
Post by: Daréios89 on 10-02-2011, 12:42:01
Certo.

Allora devi contare le sequenze di 0 e di 1, e scriverle, cioè la sequenza sarebbe:

4 16 12 16

Cioè quattro 0, sedici 1, dodici 0 e sedici 1, e poi converti questi valori in binario, e ottieni esattamente la codifica

00000100   00010000   00001100   00010000


Title: Re:help codifica run-lenght
Post by: turì on 10-02-2011, 13:02:53
quindi il primi blocco di output è il numero 4 scritto in binario con 8 bit, il secondo blocco è il numero 16 e cosi via...

ma in questo caso però come sai che i primi 4 sono 0 poi ci sono 16 bit di 1, non bisogna sempre considerare la coppia (dato, numero occorrenze)?

oppure basta sapere com inizia la sequenza, già già :[Emoticon] Asd:

mi sono dato la risposta da solo :[Emoticon] Asd: :[Emoticon] Asd:


Title: Re:help codifica run-lenght
Post by: Daréios89 on 10-02-2011, 13:07:00
Si nella codifica run lenght si suppone che la sequenza inizi da 0, proprio per evitare dato numero occorrenze.
Nella compressione jpeg se non erro si usa per i coefficienti DC la codifica differenziale e per gli AC una codifica run-lenght simile, chiamata skip value.


Title: Re:help codifica run-lenght
Post by: pippo on 10-02-2011, 13:36:46
quindi il primi blocco di output è il numero 4 scritto in binario con 8 bit, il secondo blocco è il numero 16 e cosi via...

ma in questo caso però come sai che i primi 4 sono 0 poi ci sono 16 bit di 1, non bisogna sempre considerare la coppia (dato, numero occorrenze)?

oppure basta sapere com inizia la sequenza, già già :[Emoticon] Asd:

mi sono dato la risposta da solo :[Emoticon] Asd: :[Emoticon] Asd:
Ma per quale motivo si devono scrivere 8 bit?
Allora si prende la max run( in questo caso 16), si converte il 16 in binario che si scrive con 5 bit, e si rappresentano tutte le sequenze con 5 bit ciascuna.


Title: Re:help codifica run-lenght
Post by: turì on 10-02-2011, 14:11:37
si ma i blocchi di codice sono tutti scritti con 8 bit


Title: Re:help codifica run-lenght
Post by: pippo on 10-02-2011, 14:20:28
E va scritto con 5 bit perche scritto a 8 bit vengono utilizzati inutilmente i bit piu significativi(gli zero) di ogni run


Title: Re:help codifica run-lenght
Post by: Daréios89 on 10-02-2011, 15:20:16
Mi sa che pippo ha ragione.


Title: Re:help codifica run-lenght
Post by: turì on 10-02-2011, 15:24:45
si allora sono sbagliati pure nel libro???

sono riportati cosi come li ho scritti .penso


Title: Re:help codifica run-lenght
Post by: Daréios89 on 10-02-2011, 15:27:03
si allora sono sbagliati pure nel libro???

sono riportati cosi come li ho scritti .penso

Mah c' è sempre un risparmio di bit, però il fatto è che se possiamo risparmiare di più perchè aggiungere roba inutile?
Diciamo che è per risparmiare di più, se guardi tra i precedenti appelli di IEM ce n' è uno con una domanda simile e i bit più significativi che non vengono usati vengono omessi...quindi...


Title: Re:help codifica run-lenght
Post by: turì on 10-02-2011, 15:31:22
ok

per carità il ragionamento di pippo è logico, di fatti non mi spiegavo il perchè degli 8 bit :[Emoticon] Asd:


Title: Re:help codifica run-lenght
Post by: pippo on 10-02-2011, 15:41:02
si allora sono sbagliati pure nel libro???

sono riportati cosi come li ho scritti .penso

Mah c' è sempre un risparmio di bit, però il fatto è che se possiamo risparmiare di più perchè aggiungere roba inutile?
Diciamo che è per risparmiare di più, se guardi tra i precedenti appelli di IEM ce n' è uno con una domanda simile e i bit più significativi che non vengono usati vengono omessi...quindi...
.quoto