Digitalizzazione dei segnali multimediali - campionamento, quantizzazione e binarizzazione
In questa pagina 8
Un microfono produce una tensione che varia in modo continuo nel tempo; un sensore fotografico misura la luce in ogni punto del piano. Per trasmettere questi segnali in una rete di calcolatori bisogna trasformarli in sequenze di bit. Questa nota spiega come si fa, che cosa si perde e che cosa no, e come si torna indietro. È la base di tutte le note successive: quanti bit al secondo produce un segnale (Audio, immagini e video digitali non compressi e spazi di coloreIl parlato (banda 200-3400 Hz) si digitalizza con $F_c=8$ kHz e 8 bit per campione: 64 kbit/s (PCM, pacchetti di 20 ms = 160 campioni = 160 byte). La musica (banda fino a 20 kHz) con $F_c=44{,}1$ kHz, 16 bit, 2 canali: 1,411 Mbit/s. Un'immagine a colori RGB ha 3 canali da 8 bit (24 bit per pixel); nello spazio YCbCr, ottenuto con una rotazione dello spazio colore, l'occhio è molto meno sensibile alla crominanza e si scartano 3 campioni su 4 di Cb e Cr (4:2:0), dimezzando i dati: $1{,}5\cdot H\cdot W$ campioni per immagine. Un video non compresso costa $H,W,1{,}5,b,f$ bit/s (1080p a 50 Hz: 1,244 Gbit/s, 4K: 5,3 Gbit/s): serve la compressione.Audio, immagini e video digitali non compressi e spazi di colore →) decide quanta compressione serve (Codifica lossless - entropia, Huffman e codifiche a dizionarioLa codifica lossless rappresenta i simboli di una sorgente con parole di codice a lunghezza variabile in modo invertibile; si usano codici a prefisso (istantanei). L'entropia $H(X)=\sum p_i\log_2\frac1{p_i}$ è il limite: $H(X)\le\mathcal L^*<H(X)+1$ (Shannon), con uguaglianza se le probabilità sono potenze di 1/2. Il codice di Huffman è ottimo ma lascia fino a 1 bit di overhead per simbolo; raggruppando $K$ simboli (codifica a blocchi) si tende al tasso entropico $\mathcal H(X)\le H(X)$, ma la complessità cresce come $M^K$; la codifica aritmetica ($\mathcal L<H+2$ per messaggio) ha complessità lineare. Altre tecniche: dizionario (LZ, DEFLATE di ZIP e PNG, ANS in Zstandard), Exp-Golomb e categoria/ampiezza (usati in JPEG e nei codec video) per interi con probabilità decrescente col modulo, codifica predittiva (si codifica l'errore di predizione, che ha entropia molto più bassa).Codifica lossless - entropia, Huffman e codifiche a dizionario →, Compressione di immagini - DCT e standard JPEGPer comprimere con perdita non basta quantizzare i pixel (non sono sparsi): si applica una trasformata lineare ortogonale che concentra l'energia in pochi coefficienti, si quantizzano i coefficienti e si codificano senza perdita. Le trasformate ortogonali conservano l'MSE ($\frac1N|\mathbf x-\tilde{\mathbf x}|^2=\frac1N|\mathbf y-\tilde{\mathbf y}|^2$). JPEG baseline: si sottrae 128, si divide in blocchi $8\times8$, DCT 2D ($Y=AXA^T$), quantizzazione uniforme con tabella (passi piccoli a bassa frequenza, scalata da un fattore di qualità $Q$), zig-zag scan, DC codificato in modo differenziale con categoria/ampiezza, AC con coppie (run, categoria) e simbolo EOB, codici di Huffman non standardizzati scritti nel file. Esempio completo: un blocco da 512 bit diventa 49 bit (0,766 bit/pixel).Compressione di immagini - DCT e standard JPEG →).
I richiami teorici sulla stessa catena (con il linguaggio dei corsi di segnali e comunicazioni) sono in Campionamento e ricostruzioneIl campionamento $s_c(nT)=s(nT)$ trasforma un segnale continuo in uno discreto e, in frequenza, ripete lo spettro con periodo $F_c=1/T$: $S_c(f)=\sum_kS(f-kF_c)$. Se le repliche si sovrappongono si ha aliasing e il segnale non è recuperabile. Un interpolatore $\mathbb Z(T)\to\mathbb R$ con risposta impulsiva $g$ produce $\tilde s(t)=\sum_nT g(t-nT)s(nT)$ e $\tilde S=G,S_c$. Teorema del campionamento: se $s$ ha banda $B$ e $F_c\ge2B$, l'interpolatore ideale $G=\operatorname{rect}(f/F_c)$ ricostruisce esattamente $s(t)=\sum s(nT)\operatorname{sinc}(F_c(t-nT))$. Se le ipotesi non valgono c'è un errore, in banda e fuori banda, riducibile con un prefiltro anti-aliasing.Campionamento e ricostruzione →, Interpolazione LTI e teorema del campionamentoIl campionatore R→Z(T) ripete lo spettro con periodo Fc = 1/T (Sc(f) = Σ S(f - kFc), senza fattore 1/T). Il filtro interpolatore Z(T)→R ha y(t) = Σ x(nT) g0(t-nT) con g0 = T g e in frequenza Y = G·X. Se S è nulla fuori da (-B,B) e Fc ≥ 2B, con g0(t) = sinc(Fc t) si ricostruisce esattamente s(t) dai campioni. Altrimenti c'è un errore (in banda per l'aliasing, fuori banda per la parte tagliata), ridotto da un prefiltro anti-aliasing.Interpolazione LTI e teorema del campionamento →, Campionamento e conversione analogico-digitalePer trasmettere un segnale analogico $a(t)$ con un sistema digitale lo si trasforma in bit: filtro anti-aliasing, campionatore ($T_s=\frac1{F_s}$, $F_s\ge2B$), quantizzatore su $L=2^b$ livelli, mappa livello $\to$ $b$ bit, serializzatore. Il bit-rate nominale è $R_b=bF_s$. Campionare è reversibile (con un filtro interpolatore, in pratica un holder) se $F_s\ge2B$; quantizzare invece perde informazione in modo irreversibile. Al ricevitore si ripercorre la catena al contrario (D/A).Campionamento e conversione analogico-digitale → e Quantizzazione e rumore di quantizzazioneIl quantizzatore mappa ogni campione reale su uno dei $L=2^b$ livelli. Il quantizzatore uniforme mid-riser ha passo $\Delta=\frac{2v_{sat}}{L}$, soglie multiple di $\Delta$ e livelli multipli dispari di $\frac\Delta2$. L'errore $e_q=a_q-a$ è granulare (in $[-\frac\Delta2,\frac\Delta2]$, circa uniforme, potenza $\frac{\Delta^2}{12}$) o di saturazione (fuori da $[-v_{sat},v_{sat}]$, trascurabile se $P_{sat}$ è piccola). L'SNR è $\Lambda_q=\frac{M_a}{M_{e_q}}$ e, con saturazione trascurabile, $[\Lambda_q]{dB}=6{,}02,b+4{,}77-20\log{10}\frac{v_{sat}}{\sigma_a}$: $+6$ dB per ogni bit.Quantizzazione e rumore di quantizzazione →; qui si seguono le slide del corso e si aggiungono i conti che servono ai quiz.
1. Tipi di segnale e catena di trasmissione
Si distinguono tre tipi di segnale, secondo che il dominio (il "quando") e il codominio (il "quanto") siano continui o discreti.
| Tipo | Dominio | Codominio | Modello |
|---|---|---|---|
| analogico | tempo continuo | ampiezza continua | |
| campionato | tempo discreto | ampiezza continua | |
| digitale (numerico) | tempo discreto | ampiezza discreta (alfabeto finito) |
Le definizioni si estendono a più variabili. Un'immagine analogica in scala di grigi è ; una digitale è ; a colori ogni pixel ha tre componenti, . Un video aggiunge l'indice di fotogramma.
I segnali digitali rappresentano valori di un insieme finito (un numero finito di livelli di pressione acustica, di grigio, di colore) e sono quindi scrivibili come stringhe di bit. La conversione analogico-digitale (ADC, analog-to-digital conversion) ha tre passi:
- campionamento: la variabile indipendente diventa discreta;
- quantizzazione: l'ampiezza diventa discreta;
- codifica (binarizzazione): l'ampiezza quantizzata è scritta con dei bit.
L'obiettivo è che la perdita di informazione sia trascurabile: dal segnale digitale deve essere possibile ricostruire un segnale analogico quanto più possibile fedele all'originale. La fedeltà si misura con una metrica di qualità (paragrafo 5).
La catena completa. .
- ADC: campionamento e quantizzazione; trasforma il segnale in una sequenza di valori discreti.
- COD (codificatore di sorgente): trasforma la sequenza in bit e può comprimere, anche introducendo distorsione.
- NET: la rete trasporta i bit alla destinazione (può introdurre errori e perdite).
- DEC: decodifica il flusso di bit nei campioni quantizzati.
- DAC (digital-to-analog conversion): ricostruisce un segnale utilizzabile da una persona.
La qualità può degradarsi in ogni blocco: filtro e campionamento (se mal scelti), quantizzazione, codifica con perdita, rete, DAC non ideale. Nel seguito si studia l'ADC e il DAC; COD e DEC occupano le note sulla compressione, NET quelle sulle prestazioni di rete.
2. Campionamento
Definizione (campionamento). Si preleva il valore del segnale a intervalli regolari di durata (periodo di campionamento): , . La frequenza di campionamento è .
Domanda naturale: campionando si perde informazione? Tra un campione e il successivo il segnale potrebbe fare qualunque cosa. La risposta del teorema di Shannon è sorprendente: no, se il segnale non varia troppo in fretta rispetto a . "Troppo in fretta" si precisa con il concetto di spettro.
2.1 Spettro e segnali a banda limitata
Di un segnale (con ipotesi molto larghe, per esempio durata e ampiezza finite) si calcola lo spettro , la sua trasformata di Fourier (Trasformata di FourierLa trasformata di Fourier $S(f)=\int s(t)e^{-i2\pi ft}dt$ associa a un segnale continuo (anche aperiodico) la sua rappresentazione in frequenza; l'antitrasformata $s(t)=\int S(f)e^{i2\pi ft}df$ lo ricostruisce, perché gli esponenziali $e^{i2\pi ft}$ sono ortogonali su tutto $\mathbb R$ ($\int e^{i2\pi ft}dt=\delta(f)$). Per un segnale reale $S(-f)=S^*(f)$. Si calcola per i segnali notevoli (rect $\leftrightarrow$ sinc, $e^{-\alpha t}\mathbf 1(t)\leftrightarrow\frac1{\alpha+i2\pi f}$, gaussiana, $\delta\leftrightarrow1$, $1\leftrightarrow\delta$, gradino) e per i segnali periodici, la cui trasformata è un treno di impulsi di area $S_n$ in $nF$.Trasformata di Fourier →): descrive quanta parte del segnale oscilla a ciascuna frequenza .
- Un tono puro ha lo spettro concentrato nella frequenza (un impulso, a rigore se la durata è infinita). Una nota di pianoforte è un tono alla frequenza fondamentale più le armoniche, toni a frequenze multiple.
- Un segnale è a banda limitata se il suo spettro è nullo oltre una frequenza massima . L'esempio standard è , il cui spettro è un rettangolo.
I segnali a banda limitata sono "tutti e soli" quelli che si possono ricostruire perfettamente dai loro campioni.
Teorema del campionamento di Shannon. Un segnale a banda limitata con frequenza massima può essere ricostruito con errore nullo dalla successione dei campioni se e soltanto se la frequenza di campionamento è almeno il doppio della frequenza massima: Quando vale, la formula di interpolazione ideale restituisce il segnale:
Si legge così: si mette un centrato in ogni istante di campionamento , allargato in orizzontale in modo che i suoi zeri cadano a distanza (ecco il fattore ), e scalato in altezza con il valore del campione. Nell'istante tutti i sinc sono zero tranne quello centrato in , che vale : la formula riproduce i campioni e riempie il resto con la curva "più liscia" compatibile con essi.
2.2 Perché serve : le repliche dello spettro
Campionare nel tempo equivale a replicare periodicamente lo spettro con periodo (stesso risultato di Campionamento e ricostruzioneIl campionamento $s_c(nT)=s(nT)$ trasforma un segnale continuo in uno discreto e, in frequenza, ripete lo spettro con periodo $F_c=1/T$: $S_c(f)=\sum_kS(f-kF_c)$. Se le repliche si sovrappongono si ha aliasing e il segnale non è recuperabile. Un interpolatore $\mathbb Z(T)\to\mathbb R$ con risposta impulsiva $g$ produce $\tilde s(t)=\sum_nT g(t-nT)s(nT)$ e $\tilde S=G,S_c$. Teorema del campionamento: se $s$ ha banda $B$ e $F_c\ge2B$, l'interpolatore ideale $G=\operatorname{rect}(f/F_c)$ ricostruisce esattamente $s(t)=\sum s(nT)\operatorname{sinc}(F_c(t-nT))$. Se le ipotesi non valgono c'è un errore, in banda e fuori banda, riducibile con un prefiltro anti-aliasing.Campionamento e ricostruzione →): se è lo spettro del segnale, lo spettro del segnale campionato è la somma delle copie , , centrate sui multipli di . Lo spettro originale occupa , la copia occupa . Le due non si sovrappongono se , cioè proprio . In quel caso un filtro passa-basso che seleziona la copia centrata in zero riporta lo spettro originale (l'interpolazione sinc è esattamente questo filtro). Se invece le copie si sovrappongono e non c'è modo di separarle.
Grafico interattivo: Spettro campionato con Fc = 10 (segnale con fM = 4): copie centrate su multipli di Fc, tutte separate, nessun aliasing
Grafico interattivo: Stesso segnale con Fc = 6 < 2fM = 8: le copie centrate in 0 e in ±6 si sovrappongono tra 2 e 4, e il contributo si somma: aliasing
2.3 Aliasing
Definizione (aliasing). L'aliasing è lo spostamento in frequenza di un segnale ricostruito da campioni presi con che non rispetta il criterio di Nyquist: componenti ad alta frequenza si presentano, dopo la ricostruzione, come componenti a frequenza più bassa.
Il caso del tono puro è il più semplice. Un tono a frequenza campionato a viene ricostruito come un tono alla frequenza cioè la distanza di dal multiplo di più vicino (la frequenza "si ripiega" attorno a ). L'intuizione: per vedere oscillare un segnale servono almeno due campioni per periodo; se ce ne sono meno, i campioni sono compatibili anche con un'oscillazione più lenta.
Esempio. kHz. Un tono a 3 kHz ( kHz) è ricostruito correttamente. Un tono a 5 kHz diventa kHz: si confonde con quello da 3 kHz. Un tono a 7 kHz diventa kHz. Un tono a 9 kHz diventa kHz.
Grafico interattivo: Frequenza apparente di un tono campionato a Fc = 8 kHz: sotto 4 kHz coincide con la vera, sopra si ripiega (5 kHz appare come 3 kHz, 7 kHz come 1 kHz)
2.4 Campionamento in pratica: il filtro anti-aliasing
Nessun segnale reale è rigorosamente a banda limitata: un segnale di durata finita ha, a rigore, banda illimitata. Ma tutti i segnali interessanti concentrano la maggior parte dell'informazione in una banda limitata, quindi si possono eliminare le frequenze alte con un filtro passa-basso senza distorsione significativa. Per questo in ogni convertitore A/D prima del campionatore c'è un filtro passa-basso (LPF, low pass filter) con frequenza di taglio : forza il criterio di Nyquist eliminando le frequenze sopra . Senza il filtro, le componenti alte creerebbero aliasing dentro la banda utile e non sarebbero più eliminabili: una volta campionato, un alias non si distingue da un segnale vero.
Nelle demo del corso si campiona un segnale vocale a 16 kHz e lo si sottocampiona di un fattore (si tiene un campione ogni , ): senza filtro si sentono frequenze spurie, filtrando prima con taglio il segnale sottocampionato e quello filtrato sono indistinguibili all'ascolto. Sul sottocampionamento (Elaborazione multirate - decimazione e interpolazioneL'elaborazione multirate cambia la frequenza di campionamento di un segnale. Interpolazione per $L$ (da $F_s$ a $LF_s$): l'espansore inserisce $L-1$ zeri fra i campioni, $W(\hat\omega)=X(L\hat\omega)$, lo spettro si ripete $L$ volte nell'asse più ampio; un passabasso con taglio $\pi/L$ e guadagno $L$ elimina le immagini, e con il sinc ideale $h[n]=\operatorname{sinc}(n/L)$ i campioni originali sono conservati ($y[nL]=x[n]$); in pratica FIR a finestre o interpolatore lineare (triangolo). Decimazione per $M$ (da $F_s$ a $F_s/M$): $y[n]=x[nM]$, $Y(\hat\omega)=\frac1M\sum_{k=0}^{M-1}X\big(\frac{\hat\omega-2\pi k}M\big)$, repliche sovrapposte (aliasing) se la banda supera $\pi/M$: si fa precedere da un passabasso con taglio $\pi/M$. Conversione razionale $F_s'=\frac LMF_s$ ($L,M$ coprimi): espansore $L$, un solo passabasso di taglio $\min(\frac\pi L,\frac\pi M)$ e guadagno $L$, decimatore $M$; $y[n]=\sum_kx[k],g[nM-kL]$ non è una convoluzione e il sistema è periodicamente tempo-invariante. Realizzare il tutto in più stadi (fattori piccoli prima per l'interpolazione, grandi prima per la decimazione) e con strutture polifase riduce molto il costo.Elaborazione multirate - decimazione e interpolazione →) vale la stessa regola: filtrare, poi decimare.
Relazione tra filtro e campionatore. Se il filtro anti-aliasing ha frequenza di taglio e il campionatore lavora a , si evita l'aliasing se , cioè . Con kHz: kHz.
La scelta pratica di parte dalla banda del segnale e prende un valore leggermente superiore a : 8 kHz per il parlato (banda 200-3400 Hz, filtrata a 4 kHz), 44,1 kHz per la musica (banda utile fino a 20 kHz). Il margine serve perché un filtro reale non ha un taglio verticale.
3. Quantizzazione
Dopo il campionamento i valori sono ancora numeri reali. La quantizzazione li mappa su un insieme discreto, il dizionario o insieme dei livelli di quantizzazione. Se i livelli sono , ogni campione si rappresenta con bit: più livelli significa più precisione ma più bit ("costo di codifica").
3.1 Quantizzatore uniforme
Il tipo più comune: l'intervallo dei valori possibili si divide in intervalli uguali di ampiezza Ogni valore è rappresentato dal multiplo di più vicino: Perché : sposta al multiplo di più vicino, quindi l'errore assoluto è al massimo (se sta dentro l'intervallo coperto).
Esistono due varianti:
- mid-tread ("gradino al centro"): ; lo zero è un livello (utile quando il segnale ha tanti valori vicini a zero);
- mid-rise ("salita al centro"): ; lo zero è una soglia tra due livelli, e i livelli sono i punti centrali degli intervalli.
Esiste anche il dead-zone UQ, in cui l'intervallo centrale è largo il doppio: molto utile con dati sparsi (la maggior parte dei valori vicino a zero va a zero), per questo compare nella compressione.
Grafico interattivo: Quantizzatore uniforme mid-rise con L = 8 livelli su (-1, 1): passo Delta = 0,25. La scala (azzurro) segue la retta y = x (tratteggiata) con errore al massimo Delta/2
Grafico interattivo: Errore di quantizzazione e = Q(x) - x: un dente di sega tra -Delta/2 e +Delta/2 (qui Delta = 0,25, quindi tra -0,125 e 0,125)
3.2 Rumore di quantizzazione: quanto vale l'errore
Per una quantizzazione fine, l'errore si comporta come una variabile uniforme su (il dente di sega del grafico: nell'intervallo, ogni errore è ugualmente probabile). La sua potenza (errore quadratico medio) è Passaggio per passaggio: la densità è sull'intervallo di lunghezza ; l'integrale di è calcolato tra e , che dà ; dividendo per resta . Lo spettro dell'errore è piatto (si parla di rumore bianco), presente a tutte le frequenze: nella demo sulla voce lo si vede come fruscio che cresce a ogni bit tolto.
Da qui il rapporto segnale-rumore di quantizzazione (SQNR). Per un segnale uniforme su la potenza è e, con ( bit), Ogni bit in più guadagna circa 6 dB (il passo si dimezza, la potenza del rumore si divide per 4). Per un sinusoide a fondo scala la formula diventa dB; per esempio con si hanno circa 98 dB. (Rimando a SNR di quantizzazione e progetto del quantizzatoreL'SNR di quantizzazione è $\Lambda_q=\frac{M_a}{M_e}$. Con errore granulare uniforme e saturazione trascurabile vale $\Lambda_q=\frac{\sigma^2}{\Delta^2/12}=3\frac{\sigma^2}{V_{sat}^2},2^{2b}$, cioè $[\Lambda_q]{dB}=6{,}02,b+4{,}77+20\log{10}\frac\sigma{V_{sat}}$: ogni bit in più dà $+6$ dB. Per progettare: $V_{sat}$ dalla probabilità di saturazione ($V_{sat}=\sigma,Q^{-1}\left(\frac{P_{sat}}2\right)$ per un gaussiano), poi $b$ dall'SNR richiesto, arrotondando per eccesso.SNR di quantizzazione e progetto del quantizzatore → per il caso generale con la potenza del segnale.)
| bit | (con ) | MSE | SQNR (segnale uniforme) |
|---|---|---|---|
| 2 | 0,5 | 0,0208 | 12,0 dB |
| 4 | 0,125 | 0,00130 | 24,1 dB |
| 8 | 0,0078 | 48,2 dB | |
| 16 | 96,3 dB |
(Valori verificati con una simulazione su campioni uniformi, che conferma sia sia i 6,02 dB per bit.)
3.3 La quantizzazione è irreversibile
A differenza del campionamento (che, sotto Nyquist, non perde nulla), la quantizzazione perde sempre informazione: , e dal valore quantizzato non si risale a quello originale (un intero intervallo di valori finisce nello stesso livello). Per questo la quantizzazione dell'ADC si fa molto fine: la perdita non deve essere percepibile. Valori tipici trovati sperimentalmente:
- audio musicale: 16 bit per campione ( livelli) per avere una percezione perfetta; per il parlato bastano 8 bit;
- immagini in scala di grigi: 8 bit (256 livelli di grigio);
- immagini a colori: 8 bit per ciascuno dei tre canali RGB, cioè 24 bit per pixel ( milioni di colori).
Togliere bit anche di poco peggiora molto la qualità (le demo audio a 16, 8, 4, 2 bit per campione e le immagini a 256, 16, 4 livelli lo mostrano), quindi nell'acquisizione si tiene un numero di bit sufficiente.
Due quantizzazioni in un sistema reale. (1) Quella dentro l'ADC, molto fine e con distorsione trascurabile (8 bit per canale di colore, 16 per l'audio). (2) Quella dentro il codificatore di sorgente, cioè dell'algoritmo di compressione: è questa che introduce la distorsione evidente. Andrebbe chiamata riquantizzazione, perché agisce su dati già quantizzati.
4. Binarizzazione e bit-rate
Dopo la quantizzazione ( livelli) il bit mapper inverso (inverse bit mapper, IBM) trasforma ogni livello nella corrispondente stringa di bit (di solito la scrittura binaria dell'indice dell'intervallo); un convertitore parallelo/seriale (P/S) serializza i bit in un unico flusso .
Esempio (3 bit, 5 livelli). Nella slide del corso i livelli hanno i codici . Il segnale quantizzato produce il flusso
Bit-rate. Un campione ogni secondi, bit per campione: un bit ogni secondi, cioè Con (Nyquist) si ha . Esempi: parlato kbit/s; musica stereo Mbit/s (altri calcoli in Audio, immagini e video digitali non compressi e spazi di coloreIl parlato (banda 200-3400 Hz) si digitalizza con $F_c=8$ kHz e 8 bit per campione: 64 kbit/s (PCM, pacchetti di 20 ms = 160 campioni = 160 byte). La musica (banda fino a 20 kHz) con $F_c=44{,}1$ kHz, 16 bit, 2 canali: 1,411 Mbit/s. Un'immagine a colori RGB ha 3 canali da 8 bit (24 bit per pixel); nello spazio YCbCr, ottenuto con una rotazione dello spazio colore, l'occhio è molto meno sensibile alla crominanza e si scartano 3 campioni su 4 di Cb e Cr (4:2:0), dimezzando i dati: $1{,}5\cdot H\cdot W$ campioni per immagine. Un video non compresso costa $H,W,1{,}5,b,f$ bit/s (1080p a 50 Hz: 1,244 Gbit/s, 4K: 5,3 Gbit/s): serve la compressione.Audio, immagini e video digitali non compressi e spazi di colore →). Questi valori sono spesso molto alti: da qui la necessità della compressione.
5. Misurare la qualità: MSE e PSNR
La quantizzazione trasforma in . Misurare la qualità di un segnale rispetto all'originale equivale a misurare la distorsione tra i due. Si definisce il segnale di errore e l'errore quadratico medio che coincide, a meno di , con la distanza euclidea al quadrato tra i vettori dei campioni. Questa lettura geometrica torna utile quando i segnali subiscono trasformazioni ortogonali (rotazioni): vedi la DCT.
Il PSNR (peak signal-to-noise ratio) esprime lo stesso numero in decibel: Il numeratore è la potenza di picco del segnale (il valore massimo possibile, per segnali a valori positivi su bit, al quadrato); il denominatore è la potenza del rumore, cioè l'MSE. Il PSNR e l'MSE si determinano a vicenda, ma l'MSE è una misura di distorsione (più è piccolo meglio è), il PSNR di qualità (più è grande meglio è). Per immagini in scala di grigi a 8 bit:
Regola empirica (soglie indicative, dipendono dal contenuto):
| PSNR | qualità |
|---|---|
| dB | eccellente, indistinguibile dall'originale |
| dB | molto buona, differenze appena visibili |
| dB | buona, differenze visibili |
| dB | sufficiente, differenze nette |
| dB | scadente |
Esempio (requantizzare un'immagine da 8 a 4 bit). Si passa da 256 a 16 livelli: il passo diventa livelli di grigio. L'errore di quantizzazione ha potenza . Allora dB: qualità "buona-sufficiente", con differenze visibili. A 2 bit (, MSE ) il PSNR scende a circa 22,8 dB.
Limite del PSNR: non sempre riflette la qualità percepita dall'osservatore umano (modello troppo semplice: ignora sensibilità al contrasto, percezione del colore, mascheramento). Resta molto usato per semplicità e facilità di interpretazione. Metriche migliori sono in Qualità del servizio (QoS) e qualità dell'esperienza (QoE)La QoS (ITU-T E.800) è l'insieme delle caratteristiche di un servizio di telecomunicazioni che ne determinano la capacità di soddisfare l'utente: si misura con throughput, ritardo, jitter, perdite, disponibilità e affidabilità. La QoE è la qualità percepita dall'utente ("grado di gradimento o fastidio"): dipende da applicazione (A), risorse (R), contesto (C), utente (U) e richiede una QoS adeguata. Si misura con metriche soggettive (test con osservatori: MOS medio da 1 a 5 secondo ACR, DCR, confronto a coppie; si stimano media, deviazione standard, errore standard $SE=\frac s{\sqrt N}$ e intervallo di confidenza $\pm1{,}96,SE$) e oggettive (full/reduced/no reference): MSE, PSNR (anche YCbCr con pesi $\frac34,\frac18,\frac18$), metriche di Bjontegaard (BD-PSNR, BD-rate) per confrontare codec, SSIM (similarità strutturale), VMAF (machine learning, Netflix). Nessuna cattura gli stalli e le variazioni di qualità dello streaming.Qualità del servizio (QoS) e qualità dell'esperienza (QoE) →.
6. Dal digitale all'analogico: bit mapper e interpolazione
In ricezione i blocchi corrispondono a quelli in trasmissione:
- S/P e bit mapping: la sequenza di bit, a blocchi di , è riportata ai valori quantizzati. Nota: non si trasmette il valore (3, per esempio), si trasmette l'indice binarizzato dell'intervallo; il bit mapper fa l'operazione inversa, associando all'indice il valore quantizzato. Nell'esempio sopra, i blocchi tornano ai valori .
- Interpolazione: la quantizzazione non è invertibile, ma per passare da un segnale a tempo discreto a uno a tempo continuo si può (e si deve) interpolare, cioè produrre i valori "intermedi" tra i campioni.
Il teorema di Shannon dice di usare i della formula di interpolazione ideale; ma il ha supporto infinito, non realizzabile fisicamente. Si usano quindi altri nuclei (kernel) e la formula pratica Il nucleo si scala (l'intervallo diventa , dividendo la variabile per ) e si trasla (, per centrarlo sull'istante ). Vincoli sul nucleo:
- supporto finito, per essere realizzabile;
- se e per gli altri interi : così , cioè l'interpolazione conserva i valori nei campioni.
| Nucleo | Espressione | Qualità | Costo | Uso tipico |
|---|---|---|---|---|
| ordine 0, sample and hold | : vale 1 su | più bassa; segnale a gradini, introduce alte frequenze spurie per le discontinuità | molto basso (hardware semplicissimo) | accettabile se è molto alta |
| ordine 1, lineare | (triangolo) | intermedia | basso | quando serve qualcosa meglio dello S&H |
| ordine 3, cubica (spline) | polinomi di grado 3, derivate continue fino al grado 2 | ottima per le immagini | medio-alto | ricampionamento d'immagini (cambio di risoluzione) |
| troncato | massima | massima | schede audio, vicino al limite di Nyquist |
Per i nuclei polinomiali di grado che garantiscono continuità fino alla derivata di ordine (spline cardinali), per il nucleo tende al . Per il troncato il parametro è un compromesso: più grande è , migliore è l'interpolazione ma crescono complessità e ritardo (pari al supporto di : servono tutti i termini non nulli della somma prima di calcolare ).
Grafico interattivo: Nuclei di interpolazione: rettangolare (sample and hold), triangolare (lineare) e sinc. Tutti valgono 1 in 0 e 0 negli altri interi, tranne il rettangolo che è definito su [0,1)
Come scegliere. Parametri di progetto sono e il nucleo . Se è sufficientemente elevata, gli interpolatori semplici (S&H, lineare) bastano. Se è vicina alla frequenza di Nyquist, serve il troncato. Nella demo del corso un segnale vocale a 16 kHz è sottocampionato di un fattore 4 (4 kHz) e poi interpolato con i diversi nuclei: il troncato (quello della scheda audio) è il migliore, S&H il peggiore. Tipicamente il in ricostruzione è lo stesso dell'acquisizione; usarne un multiplo intero equivale a scartare campioni.
7. Riepilogo dei parametri di progetto
- ADC: frequenza di campionamento (sufficientemente alta: Nyquist più filtro anti-aliasing) e numero di livelli (distorsione inevitabile ma resa impercettibile); bit-rate risultante , spesso molto alto, perciò serve COD.
- DAC: nucleo di interpolazione (e , di solito uguale a quello di acquisizione).
- Qualità: in prima istanza con MSE e PSNR.
Domande d'esame
1. In base a quale principio si sceglie la frequenza di campionamento di un segnale, a che cosa serve il metodo e come si garantisce in pratica il rispetto del principio? Traccia: si individua la banda del segnale e si sceglie almeno doppia della frequenza massima (criterio di Nyquist), così il segnale si ricostruisce dai campioni senza aliasing; in pratica si filtra con un passa-basso prima del campionamento (frequenza di taglio ), perché nessun segnale reale è a banda rigorosamente limitata.
2. Perché campionare (sotto Nyquist) non perde informazione e quantizzare sì? Quante quantizzazioni ci sono in una catena di trasmissione multimediale? Traccia: il campionamento replica lo spettro e, se le copie non si sovrappongono, il filtro sinc ricostruisce esattamente il segnale; la quantizzazione mappa un intero intervallo di valori su un solo livello, quindi è irreversibile. Ci sono due quantizzazioni: quella (molto fine) dell'ADC e la riquantizzazione del codificatore di sorgente, che introduce la distorsione evidente.
3. Un segnale con banda 20 kHz è campionato alla frequenza minima e quantizzato su 2048 livelli. Quale bit-rate produce? Traccia: kHz; bit per campione ; kbit/s (è il throughput minimo per trasmettere il segnale non compresso).
Versione ripasso
Catena. ADC COD bit NET DEC DAC . ADC = campionamento + quantizzazione (+ binarizzazione). COD può comprimere (anche con perdita), NET può introdurre errori e perdite, DAC non è ideale: la qualità si degrada in ogni blocco. Analogico = tempo e ampiezza continui; campionato = tempo discreto, ampiezza continua; digitale = entrambi discreti, scrivibile in bit. Immagine digitale: (a colori, tre componenti).
Campionamento. , .
- Teorema di Shannonun segnale a banda limitata con frequenza massima è ricostruibile senza errore dai campioni se e solo se (criterio di Nyquist); ricostruzione ideale : un sinc per campione, zeri a distanza , altezza = campione; in resta solo il sinc -esimo.
- Perché : campionare nel tempo = replicare lo spettro con periodo ; lo spettro occupa , la copia successiva ; non si toccano se . Allora un passa-basso seleziona la copia in banda base (il sinc è questo filtro).
- Aliasing: se le copie si sovrappongono. Un tono appare a : con kHz, 3 kHz resta 3, 5 kHz 3 kHz, 7 kHz 1 kHz, 9 kHz 1 kHz. Intuizione: servono almeno due campioni per periodo.
- Filtro anti-aliasing: nessun segnale reale è a banda limitata, ma l'informazione sta in una banda limitata; prima del campionatore si mette un passa-basso con taglio (se il filtro ha taglio : , es. kHz kHz). Una volta campionato, un alias non si distingue dal segnale vero. Stessa regola per sottocampionare: filtrare, poi decimare.
- Scelte pratiche: leggermente sopra : 8 kHz per il parlato (banda 200-3400 Hz), 44,1 kHz per la musica (fino a 20 kHz).
Quantizzazione uniforme. livelli, bit per campione. su . (mid-tread, lo zero è un livello) oppure (mid-rise, livelli al centro degli intervalli); dead-zone: intervallo centrale doppio, per dati sparsi. Errore massimo .
- Potenza dell'errore (uniforme in , densità ): . Rumore bianco.
- dB (segnale uniforme): 6 dB per bit; per un sinusoide a fondo scala dB (16 bit 98 dB). Tabella: 2 bit 12,0 dB; 4 bit 24,1; 8 bit 48,2; 16 bit 96,3.
- Irreversibile (un intervallo intero va su un livello): per questo la quantizzazione dell'ADC è fine (16 bit audio, 8 bit voce, 8 bit per canale RGB = 24 bit/pixel). Due quantizzazioni: ADC (trascurabile) e riquantizzazione nel codificatore (distorsione evidente).
Binarizzazione e bit-rate. Indice dell'intervallo bit (IBM), poi P/S. Esempio: livelli con codici ; il segnale diventa . In ricezione S/P e bit mapper restituiscono i valori. Si trasmette l'indice, non il valore. : parlato kbit/s.
Qualità. (distanza euclidea al quadrato). ; a 8 bit . MSE = distorsione, PSNR = qualità, si determinano a vicenda.
| PSNR | qualità |
|---|---|
| dB | eccellente |
| 40-45 dB | molto buona |
| 35-40 dB | buona |
| 30-35 dB | sufficiente |
| dB | scadente |
Esempio: immagine da 8 a 4 bit, , , dB; a 2 bit () dB. Limite: il PSNR non segue sempre la qualità percepita (ignora contrasto, colore, mascheramento).
DAC e interpolazione. : il nucleo si scala () e si trasla (). Vincoli: supporto finito; , per (così ).
| Nucleo | Qualità | Costo | Uso |
|---|---|---|---|
| , sample and hold | minima, alte frequenze spurie | minimo | molto alta |
| , lineare | intermedia | basso | uso generale |
| spline cubica (grado 3) | ottima per immagini | medio | ricampionamento di immagini |
| massima (più , meglio) | alto, ritardo = supporto | schede audio, vicino a Nyquist |
Con alta bastano S&H e lineare; vicino a Nyquist serve il sinc troncato. Per le spline tendono al sinc.
Errori tipici: scrivere (è ); dire che la quantizzazione è invertibile; usare per l'intervallo (è ); dimenticare il filtro prima di sottocampionare; confondere indice e valore quantizzato; leggere il PSNR come "percentuale" (è in dB).
Teoria collegata: Campionamento e ricostruzioneIl campionamento $s_c(nT)=s(nT)$ trasforma un segnale continuo in uno discreto e, in frequenza, ripete lo spettro con periodo $F_c=1/T$: $S_c(f)=\sum_kS(f-kF_c)$. Se le repliche si sovrappongono si ha aliasing e il segnale non è recuperabile. Un interpolatore $\mathbb Z(T)\to\mathbb R$ con risposta impulsiva $g$ produce $\tilde s(t)=\sum_nT g(t-nT)s(nT)$ e $\tilde S=G,S_c$. Teorema del campionamento: se $s$ ha banda $B$ e $F_c\ge2B$, l'interpolatore ideale $G=\operatorname{rect}(f/F_c)$ ricostruisce esattamente $s(t)=\sum s(nT)\operatorname{sinc}(F_c(t-nT))$. Se le ipotesi non valgono c'è un errore, in banda e fuori banda, riducibile con un prefiltro anti-aliasing.Campionamento e ricostruzione →, Interpolazione LTI e teorema del campionamentoIl campionatore R→Z(T) ripete lo spettro con periodo Fc = 1/T (Sc(f) = Σ S(f - kFc), senza fattore 1/T). Il filtro interpolatore Z(T)→R ha y(t) = Σ x(nT) g0(t-nT) con g0 = T g e in frequenza Y = G·X. Se S è nulla fuori da (-B,B) e Fc ≥ 2B, con g0(t) = sinc(Fc t) si ricostruisce esattamente s(t) dai campioni. Altrimenti c'è un errore (in banda per l'aliasing, fuori banda per la parte tagliata), ridotto da un prefiltro anti-aliasing.Interpolazione LTI e teorema del campionamento →, Quantizzazione e rumore di quantizzazioneIl quantizzatore mappa ogni campione reale su uno dei $L=2^b$ livelli. Il quantizzatore uniforme mid-riser ha passo $\Delta=\frac{2v_{sat}}{L}$, soglie multiple di $\Delta$ e livelli multipli dispari di $\frac\Delta2$. L'errore $e_q=a_q-a$ è granulare (in $[-\frac\Delta2,\frac\Delta2]$, circa uniforme, potenza $\frac{\Delta^2}{12}$) o di saturazione (fuori da $[-v_{sat},v_{sat}]$, trascurabile se $P_{sat}$ è piccola). L'SNR è $\Lambda_q=\frac{M_a}{M_{e_q}}$ e, con saturazione trascurabile, $[\Lambda_q]{dB}=6{,}02,b+4{,}77-20\log{10}\frac{v_{sat}}{\sigma_a}$: $+6$ dB per ogni bit.Quantizzazione e rumore di quantizzazione →, SNR di quantizzazione e progetto del quantizzatoreL'SNR di quantizzazione è $\Lambda_q=\frac{M_a}{M_e}$. Con errore granulare uniforme e saturazione trascurabile vale $\Lambda_q=\frac{\sigma^2}{\Delta^2/12}=3\frac{\sigma^2}{V_{sat}^2},2^{2b}$, cioè $[\Lambda_q]{dB}=6{,}02,b+4{,}77+20\log{10}\frac\sigma{V_{sat}}$: ogni bit in più dà $+6$ dB. Per progettare: $V_{sat}$ dalla probabilità di saturazione ($V_{sat}=\sigma,Q^{-1}\left(\frac{P_{sat}}2\right)$ per un gaussiano), poi $b$ dall'SNR richiesto, arrotondando per eccesso.SNR di quantizzazione e progetto del quantizzatore →. Seguono i conti sui segnali non compressi: Audio, immagini e video digitali non compressi e spazi di coloreIl parlato (banda 200-3400 Hz) si digitalizza con $F_c=8$ kHz e 8 bit per campione: 64 kbit/s (PCM, pacchetti di 20 ms = 160 campioni = 160 byte). La musica (banda fino a 20 kHz) con $F_c=44{,}1$ kHz, 16 bit, 2 canali: 1,411 Mbit/s. Un'immagine a colori RGB ha 3 canali da 8 bit (24 bit per pixel); nello spazio YCbCr, ottenuto con una rotazione dello spazio colore, l'occhio è molto meno sensibile alla crominanza e si scartano 3 campioni su 4 di Cb e Cr (4:2:0), dimezzando i dati: $1{,}5\cdot H\cdot W$ campioni per immagine. Un video non compresso costa $H,W,1{,}5,b,f$ bit/s (1080p a 50 Hz: 1,244 Gbit/s, 4K: 5,3 Gbit/s): serve la compressione.Audio, immagini e video digitali non compressi e spazi di colore →.
Tabella SQNR (segnale uniforme). : , , dB; : , dB; : , dB; : , dB (verificato con una simulazione).
Domande tipiche.
- Principio per scegliere : Nyquist, ; scopo: ricostruire senza aliasing; in pratica filtro passa-basso con taglio prima del campionatore.
- Perché il campionamento non perde e la quantizzazione sì: le repliche non si sovrappongono (filtro sinc) contro un intervallo di valori mappato su un solo livello. Due quantizzazioni: ADC (fine) e codificatore (distorsione evidente).
- Bit-rate di un segnale con banda 20 kHz a 2048 livelli: kHz, 11 bit, kbit/s.
- PSNR dopo requantizzazione 8 4 bit: , , dB.
Esercizi su questo argomento
- Esercizio - Bitrate e dimensione dei segnali non compressi (domande ed esercizi del corso)
- Esercizio - Campionamento, quantizzazione e PSNR (domande ed esercizi del corso)
- Esercizio - Domande a risposta aperta (domande ed esercizi del corso)
- Esercizio - Domande di teoria su digitalizzazione, colore e codifica (domande ed esercizi del corso)