Uploaded by Gabriele Solimeo

docsity-fondamenti-di-informatica-133

advertisement
Fondamenti di informatica
Informatica
Università degli Studi di Parma
57 pag.
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
Rappresentazione dell’Informazione
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
1 / 54
Il Linguaggio degli Insiemi (I)
Notazione insiemistica
I = {a, b, c}
I è un insieme (finito) con tre elementi: a, b, c.
Nota: J = {a, a, b, b, b, c} è uguale all’insieme I.
• b ∈ I: Si legge “b appartiene a I”
• h∈
/ I: Si legge “h non appartiene a I”
I = {a, b, . . . , z}
I è l’insieme degli elementi: a, b, . . ., z.
Nota: A seconda del contesto, può contenere 21 o 26 elementi.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
2 / 54
Il Linguaggio degli Insiemi (II)
Insieme Vuoto
I=∅
I è un insieme vuoto, cioè con zero elementi.
Nota: Preso un qualsiasi elemento, ad esempio b, b ∈
/ I.
Sottoinsieme
S è sottoinsieme di I se tutti gli elementi di S appartengono
anche a I. Si scrive:
S⊆I
Esempio: Se I = {a, b, c} e S = {a, b}, allora: S ⊆ I
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
3 / 54
Alfabeto e Linguaggio (I)
Alfabeto
Un insieme non vuoto e finito di simboli è un alfabeto.
Esempi: A = {a, b, . . . , z}, A = {♠, ♣, ♥, , . . . , ⋆}, A = {0, 1}
Stringhe
Dato un alfabeto A, l’insieme delle sequenze finite generabili
con i simboli di A si denota con A∗ .
Le sequenze vengo dette stringhe.
Esempi: A∗ = {ε, a, b, . . . , z, aa, ab, . . . , aaa, aab, . . .},
A∗ = {ε, ♠, ♣, ♥..., ⋆, ♠♠, ♠♣, ♠♥, . . . , ♠♠♠, ♠♠♣, . . .},
A∗ = {ε, 0, 1, 00, 01, 10, 11, 000, 001, . . .}
• La stringa vuota si indica tipicamente con ε ∈ A∗
• Non poniamo limite alla lunghezza delle stringhe
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
4 / 54
Alfabeto e Linguaggio (II)
Alfabeto
Un linguaggio L su un alfabeto A è un sottoinsieme di A∗ .
Un linguaggio L può essere definito
• In modo estensionale, cioè per enumerazione dei suoi
elementi (se il linguaggio è finito)
Esempio: A = {0, 1}, L = {0, 00, 01, 10}.
• In modo intensionale, cioè mediante regole
d’appartenenza, che prendono il nome di grammatica
Esempio: A = {0, 1},
L = {S ∈ A∗ tale che S ha esattamente 3 simboli}.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
5 / 54
Alfabeto e Linguaggio (III)
Lunghezza di una stringa
Data una stringa S ∈ L, è possibile definire la lunghezza della
stringa |S|.
Esempi: |ε| = 0, |abc| = 3.
Concatenazione
La concatenazione di due stringhe S, T ∈ L è la stringa S ◦ T
che si ottiene facendo seguire la seconda alla prima.
• Se S, T ∈ L, allora non necessariamente S ◦ T ∈ L
• |S ◦ T | = |S| + |T |
• La concatenazione è un’operazione associativa, che
ammette la stringa vuota ε come elemento neutro
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
6 / 54
Codifica Binaria
• Dato un alfabeto finito A, ogni stringa di A∗ può essere
codificata in una stringa (tipicamente più lunga) di simboli
presi da un alfabeto B di due simboli
B = {0, 1}.
• In codifica binaria, i simboli vengono detti bit (binary digit).
Esempio
• A = {a, b, c, d}
• a → 00, b → 01, c → 10, d → 11
• S = abbccdd → S = 00010110101111
Domanda: come fare se A = {a, b, c, d, e}?
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
7 / 54
Codifiche Invertibili e Codifiche a Lunghezza Costante
Codifica Invertibile
Una codifica da A a B si dice invertibile se ogni stringa in A∗ può
essere codificata in maniera univoca come stringa in B ∗ e viceversa.
Codifica a Lunghezza Costante
Una codifica da A a B si dice a lunghezza costante se tutte le
stringhe in B ∗ che codificano i simboli di A hanno la stessa
lunghezza.
Esempi
• La codifica nella slide precedente è invertibile e a lunghezza
costante.
• La seguente codifica è non invertibile e a lunghezza costante.
- A = {a, b, c, d}, a → 00, b → 01, c → 00, d → 11
• La seguente codifica è non invertibile e a lunghezza variabile.
- A = {a, b, c, d, e}, a → 00, b → 01, c → 10, d → 11, e → 000
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
8 / 54
Codifica Binaria a Lunghezza Costante
• Da un alfabeto di 2 simboli è possibile generare 2n stringhe
diverse di lunghezza n
• Quando si parla di
lunghezza di stringhe
binarie si usano dei
prefissi
• Approssimazioni con
potenze di 2 di quelli
usati comunemente, ad
esempio, in fisica
• Spesso si parla in
termini di byte, blocchi
di 8 bit
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
9 / 54
Simboli e Informazione
• Trasmettitore (sorgente) di simboli:
rappresenta l’informazione che si vuole inviare nei termini
di una stringa di simboli da trasmettere
• Ricevitore (destinazione) di simboli:
interpreta l’informazione partendo dalla stringa di simboli
ricevuta
• Le stringhe rappresentano l’informazione
• Le stringhe possono essere codificate in forme diverse
• Esistono codifiche diverse per scopi diversi
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
10 / 54
Probabilità (I)
Evento
Un evento E è un qualsiasi avvenimento che possa essere
osservato.
Un evento può essere
• certo
Esempio: il risultato del lancio di un dado a 6 facce è un
numero positivo minore di 7
• impossibile
Esempio: il risultato del lancio di un dado a 6 facce è -1
• casuale
Esempio: il risultato del lancio di un dado a 6 facce è 1
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
11 / 54
Probabilità (II)
Definizione Classica
Indichiamo con Ω l’insieme dei possibili eventi. Ω ha n elementi
(n > 0). La probabilità di un evento E è il rapporto tra i numero nE dei
casi favorevoli all’evento e il numero dei casi possibili n
nE
P{E} =
(0 ≤ P{E} ≤ 1).
n
Esempio: lancio di un dado a 6 facce, Ω = {1, 2, 3, 4, 5, 6}
nE1
1
P{E1 } =
= .
E2 : risultato pari.
n
6
nE3
5
= .
E3 : risultato maggiore di 1. P{E3 } =
n
6
nE4
0
E4 : risultato 7. P{E4 } =
= = 0.
n
6
E1 : risultato 1.
P{E2 } =
nE2
n
=
3
.
6
• Due eventi E1 e E2 si dicono indipendenti se P{E1 } non dipende
da P{E2 } (e viceversa). In tal caso, la probabilità che accadano
entrambi è data da
P{E1 e E2 } = P{E1 }P{E2 }.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
12 / 54
Misura dell’Informazione (I)
Informazione
L’informazione I(a) portata da un simbolo a ∈ A è legata alla
probabilità di ricevere il simbolo a
P{x ′ = a}.
• P{x ′ = a} ≃ 1: I(a) è piccola
• P{x ′ = a} ≃ 0: I(a) è grande
Definizione di Shannon
Richiediamo che l’informazione associata ad un simbolo sia
una quantità positiva e additiva
I(a) = − log2 P{x ′ = a}.
Se A = {0, 1}, l’unità di misura è il bit.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
13 / 54
Misura dell’Informazione (I)
Informazione
L’informazione I(a) portata da un simbolo a ∈ A è legata alla
probabilità di ricevere il simbolo a
P{x ′ = a}.
• P{x ′ = a} ≃ 1: I(a) è piccola
• P{x ′ = a} ≃ 0: I(a) è grande
Definizione di Shannon
Richiediamo che l’informazione associata ad un simbolo sia
una quantità positiva e additiva
I(a) = − log2 P{x ′ = a}.
Se A = {0, 1}, l’unità di misura è il bit.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
13 / 54
Approfondimento
Simboli Indipendenti
• Due simboli a e b di un alfabeto A si dicono indipendenti se la probabilità di
ricevere b non dipende dalla probabilità di ricevere a (e viceversa).
• Se due simboli a e b sono indipendenti, allora la probabilità di ricevere ab è data
dalla probabilità di ricevere a per la probabilità di ricevere b. In formule∗ :
(1)
P{ab} = P{a}P{b}.
Informazione
• Poiché, per ogni simbolo a, la probabilità di ricevere a è compresa tra 0 e 1, si ha
che log2 P{a} < 0, quindi I(a) è una quantità positiva.
• Dall’uguaglianza (1), usando le proprietà dei logaritmi, si ottiene la seguente
catena di uguaglianze
I(ab) = − log2 P{ab} = − log2 (P{a}P{b}) = − log2 P{a} − log2 P{b} = I(a) + I(b)
Pertanto, si può concludere che l’informazione sia additiva.
• Se l’alfabeto è B = {0, 1} e se i simboli 0 e 1 sono equiprobabili, la scelta della
base due nel logaritmo comporta I(0) = 1 e I(1) = 1 e l’unità di misura è il bit.
∗
Qui si usa una notazione semplificata rispetto alla slide precedente, scrivendo P{a} al posto di P{x ′ = a}
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
14 / 54
Misura dell’Informazione (II)
Perché?
Misurare l’informazione consente di
• Misurare la ridondanza di un messaggio.
Come posso ridurre la lunghezza della stringa trasmessa?
• Misurare la perdita d’informazione nella trasmissione.
Quando veloce posso trasmettere accettando un certo
errore?
• Misurare la perdita di informazione nella codifica.
Quale parte della stringa trasmessa posso tralasciare
accettando un certo errore?
• Studiare codifiche migliori per scopi diversi
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
15 / 54
Rappresentazione dei Testi (I)
Testi
Un testo è una sequenza di caratteri
Un carattere può essere
• Una lettera
• Un numero
• Un simbolo speciale (punteggiatura, spazio, ...)
Codifiche
• Codifica per caratteri
• Si potrebbe usare anche una codifica per parole
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
16 / 54
Rappresentazione dei Testi (II)
Codifica ASCII
• American Standard Code for Information Interchange
• Introdotta per definire uno standard per l’input/output
da/verso terminali
• È una codifica binaria a lunghezza costante
• Identifica una corrispondenza biunivoca tra un carattere e
un numero
Comprende 127 caratteri
• 7 bit in codifica binaria
• L’ottavo bit è di verifica (parity bit)
• ASCII è stato esteso utilizzando l’ottavo bit per caratteri
non-USA
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
17 / 54
Rappresentazione dei Testi (III)
Codifica ASCII
Comprende
• Caratteri stampabili
• Caratteri di controllo,
ad esempio:
- a capo
- torna indietro
- spazio
Esempi
A sinistra è riportata una
tabella parziale con
alcuni esempi
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
18 / 54
Rappresentazione dei Testi (IV)
Codifica Unicode
• Estende ASCII
• Un unico formato per tutte le lingue
• Formati a lunghezza fissa o variabile (in base al valore
dell’ottavo e/o del sedicesimo bit)
• Vari UTF (Unicode Transformation Format) possibili
- UTF-8 lunghezza variabile fino a 32 bit (da 1 a 4 byte)
- UTF-16 lunghezza variabile di almeno 16 bit (2 o 4 byte)
• Sono codifiche
- binarie
- invertibili
- a lunghezza variabile
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
19 / 54
Rappresentazione dei Testi (V)
Codifica UTF-8
• 1 byte: 0XXXXXXX
- Il primo bit è 0
- Equivalente ad ASCII
• 2 byte: 110XXXXX 10XXXXXX
- Il primo byte inizia con 110
- Il secondo byte inizia con 10
• 3 byte: 1110XXXX 10XXXXXX 10XXXXXX
- Il primo byte inizia con 1110
- Il secondo e il terzo byte iniziano con 10
• 4 byte: 11110XXX 10XXXXXX 10XXXXXX 10XXXXXX
- Il primo byte inizia con 11110
- Il secondo, il terzo e il quarto byte iniziano con 10
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
20 / 54
Rappresentazione dei Suoni (I)
Suoni
Un suono è un fenomeno fisico continuo
• Pressione dell’aria sulla membrana del microfono
• Tensione elettrica a valle del microfono
Digitalizzazione di un suono
Per trattare un suono è spesso necessario digitalizzarlo
• Campionamento: il suono viene misurato solo in alcuni
istanti di tempo
• Quantizzazione: il valore di ogni campione viene
discretizzato e limitato in un intervallo
Campionamento e quantizzazione sono fonte di errori.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
21 / 54
Rappresentazione dei Suoni (II)
Qualità della
digitalizzazione
• fc frequenza di
campionamento
• ℓ numero di livelli
(di solito ℓ = 2k )
Esempio
Quantizzazione a 8
bit: 28 = 256 livelli
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
22 / 54
Rappresentazione dei Suoni (III)
Aumentando fc e/o ℓ
• Migliora la qualità del suono
• Aumenta la memoria necessaria
Diversi valori forniscono diverse qualità di digitalizzazione
• Telefono, fc = 8 kHz, ℓ = 28 (8 bit), mono
• CD, fc = 44.1 kHz, ℓ = 216 (16 bit), stereo
La qualità può essere sinteticamente misurata con la bit-rate
con ℓ =
2k
b = fc · k · n
e n numero di canali.
• Telefono, b = 8000 byte/s (circa 7.8 Kbyte/s)
• CD, b = 176400 byte/s (circa 172.2 Kbyte/s; 4 minuti su
CD: circa 41.3 Mbyte)
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
23 / 54
Codifica delle Immagini (I)
Immagini
• Le immagini vengono digitalizzate in pixel (picture element)
• Ogni pixel è rappresentato con 3 canali: R (red), G (green),
B (blue)
• Di solito i valori sono compresi tra 0 e 255
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
24 / 54
Codifica delle Immagini (II)
Immagini
• Campionamento in base alla risoluzione r
- Fotocamera economica:
r = 2272 × 1704 (∼ 4 Mpixel)
- Tipicamente in rapporto 4/3 o 16/9
• Quantizzazione su 24 bit
- 8 per ognuno dei 3 canali R (red), G (green) e B (blue)
Per una fotografia digitale servono circa 11 Mbyte
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
25 / 54
Codifica dei Video
VIdeo
• Campionamento nello spazio e nel tempo
- Ogni fotogramma è codificato come un’immagine
- 24 − 30 fotogrammi al secondo per il cinema
• La bit rate di un video di media qualità (e.g., 1280 × 720) a
24 fotogrammi al secondo è circa
b = 63.2 Mbyte/s
Moltiplicando per 3600, si può osservare che per memorizzare
un’ora di video servono circa 222.4 Gbyte
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
26 / 54
Codifiche Lossless e Codifiche Lossy
Codifiche Lossless
Sono codifiche invertibili.
• Aggiunta di ridondanza
- bit di parità
- codifica di Hamming
• Aumento dell’informazione portata dai singoli simboli
- codifica di Huffman
Codifiche Lossy
Sono codifiche non invertibili.
• Ammettono che la stringa ricostruita abbia qualche errore
• Usate quando il destinatario è una persona (audio,
immagini, video)
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
27 / 54
Codifica delle Immagini
Formati
• Esistono vari formati per le immagini
• I formati si differenziano in base al tipo di codifica
- Codifiche lossless
- Codifiche lossy
• Immagini raster: sono composte da una griglia di pixel, il
cui colore è codificato tramite una o più sequenze di bit
• Immagini vettoriali: sono composte dalla descrizione degli
elementi primitivi (rette, curve, poligoni, . . . )
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
28 / 54
Immagini Raster Lossless
Due tipologie
• True color (24 bit)
• Con palette: ogni pixel è associato a un numero piccolo di
bit (1, 4 o 8), che corrispondono, tramite la palette, a un
colore (24 bit)
I formati più comuni sono
• BMP (Bitmap): tipico di Microsoft Windows
• PNG (Portable Network Graphics): pensato per la
trasmissione su rete e può essere compresso
• GIF (Graphics Interchange Format): simile a PNG, ma più
datato
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
29 / 54
Immagini Vettoriali
Caratteristiche Principali
• Non contengono la descrizione dei singoli pixel, ma la
descrizione geometrica dell’immagine
• Sono indipendenti dalla risoluzione di visualizzazione o
stampa
• Possono essere convertite facilmente a immagini raster
(non vale il viceversa)
I formati più comuni sono
• PDF (Portable Document Format): il più usato oggi
• SVG (Scalable Vector Graphics): pensato per il Web
• PS (Postscript): usato principalmente per la stampa
• EPS (Encapsulated Postscript): variante del PS per LATEX
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
30 / 54
Esempio di PS
%!PS
newpath
20 20 moveto
20 220 lineto
220 220 lineto
220 20 lineto
closepath
2 setlinewidth
stroke
showpage
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
31 / 54
Immagini Raster Lossy
Codifica JPEG
• Joint Picture Expert Group
• Standard parametrico
• Si basa su una codifica lossy dell’immagine a blocchi di
8 × 8 pixel
• Ogni blocco è codificato separatamente dall’altro
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
32 / 54
Esempio JPEG
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
33 / 54
Codifica dei Video
Formati più comuni
• Tutti i formati consentono di descrivere sia audio che video
• La codifica del video (o dell’audio) viene specificata
all’inizio del file
- AVI (Audio Video Interchange), tipico di Microsoft Windows,
è pensato per contenere diversi tipi di codifica
- MPEG specifica anche quali sono le codifiche possibili
• La codifica viene specificata indicando lo specifico codec
(codificatore/decodificatore)
• Esisono molti formati, che si differenziano solo per la
codifica del file e portano le stesse informazioni
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
34 / 54
Codifica MPEG (I)
MPEG
• Motion Picture Expert Group
• Nato per codificare video e il relativo audio con qualità
VHS su supporto CD
Vari standard
• MPEG-1, comunemente usato per l’audio (il livello 3 viene
detto comunemente MP3)
• MPEG-2, comunemente usato nei DVD e nei canali della
televisione digitale terrestre
• MPEG-4, pensato per il Web e simile alla codifica usata da
Youtube
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
35 / 54
Codifica MPEG (II)
MPEG
MPEG identifica tre tipi di fotogrammi
• Intra Picture (I-Picture), codificati indipendentemente dagli
altri fotogrammi.
Sono i punti di ancoraggio per la navigazione del video.
• Predicted Picture (P-Picture), codificati per differenza
rispetto al più vicino I-Picture precedente.
Possono essere usati come punti di ancoraggio per la
navigazione del video.
• Bidirectional Picture
(B-Picture), codificati
per differenza rispetto
ai più vicini fotogrammi
precedenti e successivi.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
36 / 54
Codifiche Ridondanti (I)
Ridondanza
• Spesso, i linguaggi impongogno delle regole grammaticali
per cui i messaggi risultano ridondanti
• Un messaggio è ridondante se richiede più simboli del
necessario
Esempi
• Tipcamnte le parole lnghe contngno parcchi cartteri che
potrbbro essre elimnati
• Seocndo uno stiduo di una Univretisà Inlegse l’oridne dlele
letetre all’intreno di una praola non è improtatne, ciò che
improta è la pirma e l’utlima letetra
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
37 / 54
Codifiche Ridondanti (II)
Come sfruttare la ridondanza
In caso di linguaggi ridondanti, abbiamo due possibilità
• Codificare in un altro linguaggio togliendo la ridondanza
- Tipicamente, si ottengono messaggi più brevi
• Sfruttare la ridondanza per altri altri scopi
- Forward Error Detection, scoprire eventuali errori (di
trasmissione o di memorizzazione)
- Forward Error Correction, correggere eventuali errori (di
trasmissione o di memorizzazione)
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
38 / 54
Codifica di Hamming (I)
• Usato principalmente per individuare errori su singoli bit
• È anche possibile la correzione aumentando la ridondanza
• Codifica delle cifre da 0 a 9
utilizzando 5 bit (anziché 4)
• Si associa ad ogni cifra
una stringa binaria in cui
sono presenti sempre due
1 e tre 0 (o viceversa)
• In caso di errore, la stringa
potrebbe assumere una
delle altre 22
configurazioni
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
39 / 54
Codifica di Hamming (II)
• Tabella 1: Altra codifica
• Tabella 2: Codifica di Hamming
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Tabella 1
S. Monica
Tabella 2
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
40 / 54
Codifica di Huffman (I)
Caratteristiche
• Codifica binaria a lunghezza variabile
• Codifica invertibile
• Massimo rapporto di compressione
- lunghezza finale / lunghezza iniziale
• Deve considerare l’intera stringa da codificare (lenta)
- Per la costruzione del codice si parte dalle probabilità dei
singoli simboli (approssimata con la relativa frequenza)
• È alla base del formato ZIP
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
41 / 54
Codifica di Huffman (II)
Passo 1: si costruisce un nodo foglia per ogni lettera,
etichettandolo con la frequenza del simbolo
Passo 2: si rimuovono due nodi con frequenze minori
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
42 / 54
Codifica di Huffman (III)
Passo 3: Si collegano i nodi ad un nodo padre etichettato con
la somma delle frequenze
Passo 4: Si aggiunge il nuovo nodo alla lista
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
43 / 54
Codifica di Huffman (IV)
Passo 5: Si ripetono i passi dal 2 al 4 finché resta un solo nodo
nella lista
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
44 / 54
Codifica di Huffman (V)
Abbiamo ottenuto un albero binario
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
45 / 54
Codifica di Huffman (VI)
È la codifica più breve
• Simboli più
probabili:
sequenze più
corte
• Simboli meno
probabili:
sequenze più
lunghe
a=0
b = 101 c = 100
d = 111 e = 1101 f = 1100
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
46 / 54
Esercizi (I)
Esercizio: Sia A = {a, b, c, d, e, f } e sia
L = {stringhe in A∗ che abbiano un numero dispari di simboli d}.
Si considerino le seguenti stringhe: S = abc, T = gcd, U = ade, W = def .
Dire quali delle seguenti affermazioni sono vere (V) e quali false (F).
S ∈ A∗
S ◦ T ∈ A∗
S∈L
S◦T ∈L
|S| = 5
T ∈ A∗
S ◦ U ∈ A∗
T ∈L
S◦U ∈L
|T | = 3
U ∈ A∗
S ◦ W ∈ A∗
U∈L
S◦W ∈L
|U ◦ S| = 4
W ∈ A∗
W ◦ T ∈ A∗
W ∈L
W ◦U ∈L
|S ◦ U| = 6
Nota: Le concatenazioni che appaiono nell’esercizio precedente sono:
S ◦ T = abcgcd
W ◦ T = defgcd
S. Monica
S ◦ U = abcade
W ◦ U = defade
Fondamenti di Informatica
S ◦ W = abcdef
U ◦ S = adeabc
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
47 / 54
Esercizi (I)
Esercizio: Sia A = {a, b, c, d, e, f } e sia
L = {stringhe in A∗ che abbiano un numero dispari di simboli d}.
Si considerino le seguenti stringhe: S = abc, T = gcd, U = ade, W = def .
Dire quali delle seguenti affermazioni sono vere (V) e quali false (F).
S ∈ A∗
S ◦ T ∈ A∗
S∈L
S◦T ∈L
|S| = 5
T ∈ A∗
S ◦ U ∈ A∗
T ∈L
S◦U ∈L
|T | = 3
U ∈ A∗
S ◦ W ∈ A∗
U∈L
S◦W ∈L
|U ◦ S| = 4
W ∈ A∗
W ◦ T ∈ A∗
W ∈L
W ◦U ∈L
|S ◦ U| = 6
Nota: Le concatenazioni che appaiono nell’esercizio precedente sono:
S ◦ T = abcgcd
W ◦ T = defgcd
S. Monica
S ◦ U = abcade
W ◦ U = defade
Fondamenti di Informatica
S ◦ W = abcdef
U ◦ S = adeabc
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
47 / 54
Esercizi (I)
Esercizio: Sia A = {a, b, c, d, e, f } e sia
L = {stringhe in A∗ che abbiano un numero dispari di simboli d}.
Si considerino le seguenti stringhe: S = abc, T = gcd, U = ade, W = def .
Dire quali delle seguenti affermazioni sono vere (V) e quali false (F).
In rosso le affermazioni vere.
S ∈ A∗
S ◦ T ∈ A∗
S∈L
S◦T ∈L
|S| = 5
S. Monica
T ∈ A∗
S ◦ U ∈ A∗
T ∈L
S◦U ∈L
|T | = 3
U ∈ A∗
S ◦ W ∈ A∗
U∈L
S◦W ∈L
|U ◦ S| = 4
Fondamenti di Informatica
W ∈ A∗
W ◦ T ∈ A∗
W ∈L
W ◦U ∈L
|S ◦ U| = 6
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
48 / 54
Esercizi (II)
Esercizio: Si consideri l’alfabeto A = {a, b, c, d} e sia L il linguaggio definito
nel seguente modo:
L = {S ∈ A∗ tali che |S| = 2}.
Scrivere le stringhe del linguaggio L in modo estensionale.
Svolgimento:
aa ab ac ad
ba bb bc bd
ca cb cc cd
da db dc dd
Esercizio: Si consideri l’alfabeto A = {x, y , z} e sia L il linguaggio definito
nel seguente modo:
L = {ε, x, y , z, xx, xy , xz, yx, yy , yz, zx, zy , zz}.
Scrivere le stringhe del linguaggio L in modo intensionale.
Svolgimento:
L = {S ∈ A∗ tali che |S| ≤ 2}.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
49 / 54
Esercizi (II)
Esercizio: Si consideri l’alfabeto A = {a, b, c, d} e sia L il linguaggio definito
nel seguente modo:
L = {S ∈ A∗ tali che |S| = 2}.
Scrivere le stringhe del linguaggio L in modo estensionale.
Svolgimento:
aa ab ac ad
ba bb bc bd
ca cb cc cd
da db dc dd
Esercizio: Si consideri l’alfabeto A = {x, y , z} e sia L il linguaggio definito
nel seguente modo:
L = {ε, x, y , z, xx, xy , xz, yx, yy , yz, zx, zy , zz}.
Scrivere le stringhe del linguaggio L in modo intensionale.
Svolgimento:
L = {S ∈ A∗ tali che |S| ≤ 2}.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
49 / 54
Esercizi (IIIa)
Esercizio: Sia A = {x, y , z, w}. Sia L il linguaggio definito usando la
notazione intensionale nel seguente modo
L = {S ∈ A∗ tali che il primo simbolo di S sia x}.
Dire quale delle seguenti affermazioni è vera.
1 La concatenazione di due stringhe del linguaggio appartiene sempre al
linguaggio.
2 La concatenazione di due stringhe del linguaggio non appartiene mai al
linguaggio.
3 La concatenazione di due stringhe del linguaggio può appartenere al
linguaggio.
La risposta corretta è la (1). Comunque si scelgano S ∈ L, T ∈ L, il primo
simbolo di S ◦ T coincide con il primo simbolo di S, cioè con x.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
50 / 54
Esercizi (IIIb)
Esercizio: Sia A = {x, y , z, w}. Sia L il linguaggio definito usando la
notazione intensionale nel seguente modo
L = {S ∈ A∗ tali che |S| = 2}.
Dire quale delle seguenti affermazioni è vera.
1 La concatenazione di due stringhe del linguaggio appartiene sempre al
linguaggio.
2 La concatenazione di due stringhe del linguaggio non appartiene mai al
linguaggio.
3 La concatenazione di due stringhe del linguaggio può appartenere al
linguaggio.
La risposta corretta è la (2). Comunque si scelgano S ∈ L, T ∈ L,
|S ◦ T | = 4, quindi S ◦ T ∈
/ L.
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
51 / 54
Esercizi (IIIc)
Esercizio: Sia A = {x, y , z, w}. Sia L il linguaggio definito usando la
notazione intensionale nel seguente modo
L = {S ∈ A∗ tali che il numero di y nella stringa sia minore di 2}.
Dire quale delle seguenti affermazioni è vera.
1 La concatenazione di due stringhe del linguaggio appartiene sempre al
linguaggio.
2 La concatenazione di due stringhe del linguaggio non appartiene mai al
linguaggio.
3 La concatenazione di due stringhe del linguaggio può appartenere al
linguaggio.
La risposta corretta è la (3). Si considerino le seguenti stringhe appartenenti
al linguaggio: S = xy , T = zzw, U = ywz.
• S ◦ T = xyzzw ∈ L
• S ◦ U = xyywz ∈
/L
S. Monica
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
52 / 54
Esercizi (IV)
Esercizio: Sia A = {a, b, c, d, e, f }. Scrivere una codifica binaria, a
lunghezza costante e invertibile dei simboli di A, facendo in modo che tale
codifica non sia ridondante (cioè, usando il minor numero di bit).
Svolgimento: Per codificare i 6 simboli dell’alfabeto A con una codifica
binaria, a lunghezza costante e invertibile, abbiamo bisogno di almeno 3 bit.
• 2 bit non sono sufficienti, poiché esisono solo 22 = 4 stringhe binarie
diverse di lunghezza 2 e tali stringhe non consentono di costruire una
codifica invertibile dei 6 simboli di A.
• 3 bit sono sufficienti, poiché esisono 23 = 8 stringhe binarie diverse di
lunghezza 3 (possiamo usarne 6 diverse per codificare i 6 simboli di A).
• Usare un numero maggiore di bit aggiunge ridondanza.
Un esempio di codifica binaria, a lunghezza costante e invertibile, ottenuta
usando il minor numero di bit è:
S. Monica
a → 000
d → 100
b → 001
e → 110
c → 010
f → 111
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
53 / 54
Con riferimento alle slide 23, 25, 26:
• bit-rate telefono:
b = 8000 · 8 · 1 bit/s =
8000 · 8 · 1
8000 · 8 · 1
byte/s =
Kbyte/s ≃ 7.8 Kbyte/s.
8
8 · 210
• bit-rate CD:
b = 44100 · 16 · 2 bit/s =
=
44100 · 16 · 2
byte/s
8
44100 · 16 · 2
Kbyte/s ≃ 172.2 Kbyte/s.
8 · 210
• Immagine: 2272 · 1704 pixel.
2272 · 1704 · 24 bit = 2272 · 1704 · 3 byte =
2272 · 1704 · 3
Mbyte ≃ 11 Mbyte.
220
• Video: 1280 · 720 pixel per ogni fotogramma, cioè 1280 · 720 · 3 byte per
fotogramma. 24 fotogrammi al secondo.
1280 · 720 · 3 · 24 byte/s =
S. Monica
1280 · 720 · 3 · 24
Mbyte/s ≃ 63.2 Mbyte/s.
220
Fondamenti di Informatica
A.A. 2017/2018
Document shared on www.docsity.com
Downloaded by: gabriele-solimeo-1 (gabriele.solimeo@studenti.unipr.it)
54 / 54
Download