Salta al contenuto
Note per Studenti Esercizio - Domande a risposta aperta (domande ed esercizi del corso)

Esercizio - Domande a risposta aperta (domande ed esercizi del corso)

In questa pagina 3

Teoria: tutte le note del modulo multimedia, in particolare Digitalizzazione dei segnali multimediali - campionamento, quantizzazione e binarizzazioneLa conversione analogico-digitale (ADC) ha tre passi: campionamento $s_c(n)=s(nT_c)$, quantizzazione su $L=2^m$ livelli, binarizzazione dell'indice in $m$ bit; il bit-rate vale $R=F_c\log_2L$. Per il teorema di Shannon un segnale a banda limitata $f_M$ si ricostruisce senza errore se $F_c\ge2f_M$ (criterio di Nyquist), altrimenti c'è aliasing; per questo prima del campionatore c'è un filtro passa-basso. La quantizzazione uniforme di passo $\Delta=\frac{2A}{L}$ è irreversibile, con errore massimo $\frac\Delta2$ e $\mathrm{MSE}=\frac{\Delta^2}{12}$; la qualità si misura con MSE e $\mathrm{PSNR}=10\log_{10}\frac{(2^b-1)^2}{\mathrm{MSE}}$. In ricezione il bit mapper ricostruisce i valori e l'interpolazione con un nucleo $h$ (sample and hold, lineare, cubica, sinc troncato) riporta il segnale al tempo continuo.Digitalizzazione dei segnali multimediali - campionamento, quantizzazione e binarizzazione →, 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 →, Codifica della voceIl parlato è localmente stazionario su circa 20 ms e comprende suoni vocali (pseudo-periodici, con pitch) e non vocali (simili a rumore). Si codifica in tre modi: a forma d'onda (PCM, G.711: 64 kbit/s, qualità alta), con vocoder (modellano la produzione della voce, 2,4 kbit/s o meno, voce innaturale) e ibridi (parametri del modello più codifica del residuo: G.729 a 8 kbit/s, GSM a 13, AMR-WB 6,6-23,85, Opus 6-510 kbit/s). Nel vocoder LPC10 ogni 20 ms (160 campioni) si trasmettono 10 coefficienti del filtro di predizione (36 bit), un bit voiced/unvoiced, potenza (6 bit) e, se vocale, il pitch (7 bit): 2500 o 2150 bit/s. Contano anche latenza, resilienza agli errori (FEC) e soppressione del silenzio (VAD).Codifica della voce →, 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 → e 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 →. Fonte: domande a risposta aperta del corso di Reti di Calcolatori, Ing. Informatica UniPD 2025-26 (le prime cinque, con i testi del PDF); le altre sono costruite nello stesso stile. Le domande aperte valgono fino a 5 punti: si valuta che siano presenti i concetti chiave, il perché e (dove serve) la formula. Sotto ogni domanda: lo schema di risposta con i punti che fanno punteggio.

Le cinque domande del PDF

1. Spiegare in base a quale principio si determina la frequenza di campionamento di un segnale, qual è lo scopo del metodo utilizzato e come sia possibile assicurarsi in pratica il rispetto del principio identificato.

Schema. (i) Principio: si individua l'occupazione di banda del segnale e si sceglie FcF_c almeno doppia della frequenza massima, Fc≥2fMF_c\ge2f_M (criterio di Nyquist, teorema di Shannon). (ii) Scopo: poter ricostruire il segnale dai suoi campioni senza errore, evitando l'aliasing (con Fc<2fMF_c<2f_M le repliche dello spettro si sovrappongono e le frequenze alte si confondono con le basse, in modo irreversibile). (iii) In pratica: nessun segnale è a banda rigorosamente limitata, quindi si applica un filtro passa-basso anti-aliasing prima del campionatore, con frequenza di taglio Fc/2F_c/2 (e si prende FcF_c leggermente sopra 2fmax⁡2f_{\max}, per esempio 44,1 kHz per la musica con banda a 20 kHz, 8 kHz per il parlato con banda 3,4 kHz).

2. Qual è lo scopo della trasformazione da RGB a YCbCr?

Schema. Ottenere una rappresentazione sparsa del segnale (percettivamente): la luminanza YY è importante, le crominanze CbC_b e CrC_r lo sono molto meno perché l'occhio è meno sensibile al colore che alla luminosità. Questo consente la decimazione (sottocampionamento 4:2:0: si scartano 3 campioni su 4 di crominanza) e quindi la riduzione dei bit (da 3HW3HW a 1,5HW1{,}5HW campioni, dimezzamento) con un impatto non eccessivo sulla qualità percepita. In ricezione si interpola (ordine zero) e si torna a RGB. In RGB invece i tre canali sono correlati e ugualmente importanti: non si può scartarne nessuno.

3. Qual è l'intuizione che consente di ridurre il bit-rate per la trasmissione del segnale vocale in sistemi basati su vocoder?

Schema. Non si rappresenta la forma d'onda ma si modella come il suono è prodotto dall'uomo. In codifica si definisce un filtro invertibile (predizione lineare, LPC) che predice il segnale vocale; l'errore di predizione (residuo) è quasi rumore e se ne trasmettono solo i parametri (bianco o con pitch, potenza, pitch). In decodifica questi parametri generano un segnale di eccitazione (rumore bianco o treno di impulsi) che, filtrato con l'inverso del filtro di predizione, sintetizza il parlato. Si trasmettono quindi solo i coefficienti del filtro e i parametri dell'eccitazione (esempio LPC10: 2,4 kbit/s contro 64 del PCM).

4. Qual è il concetto dietro l'idea della codifica a blocchi?

Schema. L'overhead dei codici a prefisso (L<H+1\mathcal L<H+1, fino a 1 bit di spreco per simbolo) viene ripartito su tutti gli elementi del blocco di KK simboli: per simbolo diventa 1K\frac1K e la lunghezza per simbolo si avvicina all'entropia. In più, quando i simboli non sono indipendenti (per esempio le luminanze di pixel vicini) il blocco sfrutta la correlazione e l'entropia per simbolo H(XK)K\frac{H(X^K)}K scende, tendendo al tasso entropico H(X)≤H(X)\mathcal H(X)\le H(X): ulteriore riduzione della lunghezza ottima. Costo: l'alfabeto cresce come MKM^K (Huffman diventa impraticabile): per questo la codifica aritmetica.

5. Perché nella codifica JPEG le matrici di quantizzazione hanno tipicamente valori più piccoli nel quadrante in alto a sinistra e via via crescenti verso il quadrante in basso a destra?

Schema. La maggior parte dell'informazione di un'immagine sta alle basse e medie frequenze (energia concentrata dalla DCT in alto a sinistra) e l'occhio è più sensibile a quelle frequenze. Quindi si usa una quantizzazione più fine (passo piccolo) per i coefficienti DCT di bassa e media frequenza (alto a sinistra) e più grossolana (passo grande, molti indici nulli) per le alte frequenze (basso a destra), dove un errore si vede poco e i coefficienti sono già piccoli. Le tabelle sono derivate da test soggettivi di qualità percepita e vengono scalate con un fattore di qualità.

Altre domande nello stile del corso (costruite)

6. Che differenza c'è tra bit-rate, throughput e goodput? Quali relazioni valgono tra loro? Schema. Tutte velocità di trasferimento, cambia il livello: bit-rate R0R_0 = velocità nominale del link fisico; throughput SS = velocità effettiva osservata a un livello (2-4), in bit/s o pacchetti/s; goodput = throughput di lungo termine a livello applicazione (dati utili). Bit-rate ≥\ge throughput ≥\ge goodput perché gli header occupano capacità (efficienza η=∣SDU∣∣PDU∣\eta=\frac{|\mathrm{SDU}|}{|\mathrm{PDU}|}), il link può essere condiviso o congestionato, i protocolli impongono attese. Esempio: PDU APP 1200 B, PHY 1260 B, SPHY=1,008S_{\text{PHY}}=1{,}008 Mbit/s ⇒\Rightarrow goodput 960960 kbit/s.

7. Che cos'è il playout buffer e come varia nel tempo? Schema. B(t)B(t) = secondi di video ricevuti e non riprodotti (non bit); assorbe jitter e variazioni di throughput. Con SS costante in un intervallo: in stallo o buffering iniziale B′=SRCB'=\frac S{R_C}; in riproduzione B′=SRC−1B'=\frac S{R_C}-1. Si riempie se S>RCS>R_C, si svuota se S<RCS<R_C; a B=0B=0 c'è stallo (rebuffering) e la riproduzione riparte dopo MM segmenti; all'avvio si attendono L≥ML\ge M segmenti. Modello lineare a tratti.

8. Perché il video on demand su Internet usa HTTP (DASH o HLS) e non protocolli come RTP/RTSP? Schema. Non è interattivo, quindi conta la continuità, non la latenza minima; HTTP è stateless e pull (il client sceglie qualità e ritmo), attraversa NAT e firewall (porte 80/443), tratta i segmenti come file normali che le cache e le CDN distribuiscono con scalabilità e costi bassi; il livello è scelto dal client in base a throughput e buffer (adattamento ABR). RTSP/RTMP sono stateful e push, su porte non standard o UDP spesso bloccati, difficili da scalare.

9. Spiegare il block-matching e perché si aggiunge il termine di regolarizzazione. Schema. Per ogni blocco dell'immagine corrente si cerca nell'immagine di riferimento, in una finestra, il blocco più simile (misura SAD o SSD): lo spostamento è il vettore di movimento; la compensazione costruisce la predizione e si codifica l'errore (sparso). Il costo d+λR(v)d+\lambda R(\mathbf v) include il costo di codifica del vettore: vettori regolari costano meno, la qualità della predizione peggiora di poco (nelle demo −0,06-0{,}06 dB e −19%-19\% dei bit per i vettori).

10. Descrivere come JPEG codifica un blocco 8×88\times8 dopo la quantizzazione. Schema. Zig-zag (porta le basse frequenze all'inizio e lascia in coda gli zeri); il DC (primo coefficiente) è codificato in differenza rispetto al DC del blocco precedente, con categoria (codice a prefisso) e ampiezza su kk bit (complemento se negativo); gli AC sono codificati come coppie (run di zeri, categoria) con codice di Huffman più l'ampiezza; ZRL per run di 16 zeri; EOB quando restano solo zeri; le tabelle di Huffman stanno nel file.

11. Differenza tra QoS e QoE e come si misura la QoE. Schema. QoS: caratteristiche tecniche del servizio misurabili in rete (throughput, ritardo, jitter, perdite, disponibilità); QoE: gradimento o fastidio dell'utente, dipende da applicazione, risorse, contesto e utente (ARCU); QoS adeguata è necessaria, non sufficiente. Misura soggettiva: MOS (media dei voti, scala ACR 1-5; DCR; confronto a coppie) con intervallo di confidenza ±1,96sN\pm1{,}96\frac s{\sqrt N}; oggettiva: MSE, PSNR, SSIM, VMAF; per lo streaming conta anche la dinamica (stalli, variazioni di qualità, buffering iniziale) con J=∑nλ1kn−λ2∣kn−kn−1∣−ϕ(Δn)−λ3TSTJ=\sum_n\lambda_1k_n-\lambda_2|k_n-k_{n-1}|-\phi(\Delta_n)-\lambda_3T_{ST}.

Errori tipici

  • Elencare termini senza il perché (per esempio "serve il filtro" senza dire che evita l'aliasing).
  • Dimenticare la formula o la condizione quantitativa (Fc≥2fMF_c\ge2f_M, B′=SRC−1B'=\frac S{R_C}-1, L<H+1\mathcal L<H+1).
  • Rispondere a un'altra domanda (descrivere il video quando si chiede il JPEG).
  • Non distinguere ciò che si fa in codifica da ciò che si fa in decodifica.

Versione ripasso

Come si risponde. Punti chiave + perché + formula (fino a 5 punti).

  1. Campionamento: Fc≥2fMF_c\ge2f_M (Nyquist, Shannon) per ricostruire senza errore ed evitare l'aliasing (repliche dello spettro sovrapposte); in pratica filtro passa-basso anti-aliasing con taglio Fc/2F_c/2 prima del campionatore (FcF_c poco sopra 2fmax⁡2f_{\max}: 44,1 kHz musica, 8 kHz parlato).
  2. RGB →\to YCbCr: rappresentazione sparsa percettivamente (YY importante, CbC_b e CrC_r meno); si decimano le crominanze (4:2:0: da 3HW3HW a 1,5HW1{,}5HW) con poco impatto sulla qualità; in ricezione interpolazione e ritorno a RGB.
  3. Vocoder: si modella la produzione della voce, non la forma d'onda; filtro di predizione invertibile (LPC), residuo quasi rumore, si trasmettono coefficienti e parametri dell'eccitazione (rumore bianco o treno di impulsi); il decoder sintetizza (LPC10: 2,4 kbit/s contro 64).
  4. Codifica a blocchi: l'overhead (<1<1 bit per simbolo) si ripartisce sul blocco (1K\frac1K) e si sfrutta la correlazione (H(XK)K↓H(X)≤H(X)\frac{H(X^K)}K\downarrow\mathcal H(X)\le H(X)); costo MKM^K, quindi aritmetica.
  5. Quantizzazione JPEG: informazione e sensibilità alle basse e medie frequenze ⇒\Rightarrow passi piccoli in alto a sinistra, grandi in basso a destra (errori poco visibili, coefficienti piccoli).

Altre (costruite). 6. Bit-rate (PHY, nominale) ≥\ge throughput (livello 2-4) ≥\ge goodput (APP, lungo termine) per header (η\eta), condivisione, attese. 7. Playout buffer: secondi di video; B′=SRCB'=\frac S{R_C} in stallo, SRC−1\frac S{R_C}-1 in riproduzione; stallo a B=0B=0, ripresa con MM segmenti, avvio con L≥ML\ge M. 8. VoD su HTTP: continuità, stateless e pull, NAT e firewall, cache e CDN, scelta del livello dal client (ABR); RTSP/RTMP stateful, push, difficili da scalare. 9. Block-matching: blocco più simile in una finestra (SAD o SSD), vettore, compensazione, errore sparso; d+λR(v)d+\lambda R(\mathbf v): vettori regolari più economici, qualità quasi invariata (−0,06-0{,}06 dB, −19%-19\% bit). 10. JPEG dopo QQ: zig-zag; DC in differenza (categoria e ampiezza); AC (R,k)(R,k) + ampiezza, ZRL, EOB; tabelle di Huffman nel file. 11. QoS (parametri di rete) contro QoE (gradimento, ARCU); MOS e intervallo di confidenza, MSE, PSNR, SSIM, VMAF; per lo streaming JJ con stalli, variazioni e avvio.

Errori tipici: niente "perché"; niente formula; rispondere a un'altra domanda; confondere codifica e decodifica.

Teoria: Servizi multimediali e loro requisitiUn servizio multimediale trasporta uno o più media (testo, suono, immagini, video) come segnali digitali. Si classifica in streaming (si consuma mentre arriva, serve un playout buffer) e bulk transfer (si usa solo a file completo); poi in stored, live e real-time (ritardo sotto 150 ms) e in interattivo o no. I requisiti si esprimono con bit-rate, latenza, jitter, tasso d'errore, complessità e fedeltà: ogni servizio pesa questi parametri in modo diverso (il video in streaming vuole poco jitter e tollera errori, un file vuole zero errori e tollera latenza). Aumentare solo il bit-rate non basta.Servizi multimediali e loro requisiti →, Streaming adattativo e DASHPer non stallare serve $R_C\le S$ (tasso di codifica non superiore al throughput), ma $R_C$ si controlla e $S$ no. Se $S<R_C$ la latenza cresce, i buffer dei router si riempiono e si perdono pacchetti; né il drop brutale né il transcoding in rete sono praticabili, la scalabilità (SVC) è parziale. La soluzione dominante è lo streaming adattativo (ABR) tirato dal client su HTTP: il video è diviso in $N$ segmenti da $T_S$ secondi, ciascuno in $K$ livelli di bit-rate $R_C(k)$ descritti nell'MPD; il client sceglie il livello $q(n)$ di ogni segmento con $T_D=\frac{T_SR_C(q)}{S_n}$. Il playout buffer $B(t)$ (in secondi di video) segue $B'=\frac S{R_C}$ durante lo stallo e $B'=\frac S{R_C}-1$ durante la riproduzione; si parte dopo $L$ segmenti e dopo uno stallo si riprende con $M$ nuovi segmenti. La QoE si modella con $J=\sum_n\lambda_1k_n-\lambda_2\lvert k_n-k_{n-1}\rvert-\phi(\Delta_n)-\lambda_3T_{ST}$. Gli algoritmi ABR sono basati su throughput, buffer o ibridi; MPEG-DASH standardizza MPD e segmenti, non il client.Streaming adattativo e DASH →.

Teoria collegata