Pages: [1]   Go Down
Print
Author Topic: help codifica run-lenght  (Read 1956 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
turì
Apprendista Forumista
**
Offline Offline

Posts: 275



« 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 
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #1 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
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
turì
Apprendista Forumista
**
Offline Offline

Posts: 275



« Reply #2 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
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #3 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.
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
pippo
Apprendista Forumista
**
Offline Offline

Posts: 150



« Reply #4 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.
Logged
turì
Apprendista Forumista
**
Offline Offline

Posts: 275



« Reply #5 on: 10-02-2011, 14:11:37 »

si ma i blocchi di codice sono tutti scritti con 8 bit
Logged
pippo
Apprendista Forumista
**
Offline Offline

Posts: 150



« Reply #6 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
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #7 on: 10-02-2011, 15:20:16 »

Mi sa che pippo ha ragione.
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
turì
Apprendista Forumista
**
Offline Offline

Posts: 275



« Reply #8 on: 10-02-2011, 15:24:45 »

si allora sono sbagliati pure nel libro???

sono riportati cosi come li ho scritti
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #9 on: 10-02-2011, 15:27:03 »

si allora sono sbagliati pure nel libro???

sono riportati cosi come li ho scritti

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...
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
turì
Apprendista Forumista
**
Offline Offline

Posts: 275



« Reply #10 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
Logged
pippo
Apprendista Forumista
**
Offline Offline

Posts: 150



« Reply #11 on: 10-02-2011, 15:41:02 »

si allora sono sbagliati pure nel libro???

sono riportati cosi come li ho scritti

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...
Logged
Pages: [1]   Go Up
Print
Jump to: