Lezione 4 - Server users.dimi.uniud.it
Transcript
Lezione 4 - Server users.dimi.uniud.it
Tecniche di Comunicazione Multimediale Compressione Audio e Video Outline Compressione Audio – PCM,DPCM,ADPCM,MPEG-4 Audio Coder,DOlby Audio Coders Compressione Video – Principi di compressione – H.261,H.263,MPEG Compressione Audio Per poter comprendere le tecniche di compressione audio è necessario analizzare le tecniche di digitalizzazione dei segnali stessi. Tale processo è noto con il nome di: Pulse Code Modulation PCM Pulse Code Modulation PCM Bandlimiting – rimuove alte frequenze S&H – campiona e mantieni valore Quntizer – converte ogni campione in valore binario Codeword – risultato della quantizzazione Pulse Code Modulation PCM Compressor- Expander Non si usa una quantizzazione lineare, ma intervalli minori vengono utilizzati per ampiezze minori e maggiori per quelle elevate. Eseguito mediante quello che viene definito companding Pulse Code Modulation PCM (3) Prima del campionamento eseguito dall’ADC il segnale viene compresso dal compressore che esegue una compressione in ampiezza Differential Pulse Code Modulation Deriva dallo standard PCM e utilizza le seguenti caratteristiche: L’intervallo delle differenze in ampiezza tra due campioni successivi del segnale audio è minore dell’ampiezza attuale del segnale Possiamo codificare la differenza in ampiezza tra un campione ed il successivo: minore range da quantizzare ->minore numero di bit da associare ad ogni campione Differential Pulse Code Modulation- Cod Tipicamente per segnali vocali il guadagno che si ottiene risulta essere di un solo bit portando quindi la banda utilizzata da 64kbps a 56kbps. Differential Pulse Code Modulation -Dec Errori di quantizzazione e di registrazione vengono propagati in modo adittivo sul segnale di uscita ->Gli errori si accumulano. Predictive DPCM Predizione del segnale precedente mediante combinazione lineare dei segnali antecedenti Predictive DPCM C1=0.5 C2=C3=0.25 R1->1 bit R2,R3->2 bit DPCM=PCM-(R1+R2+R3) Adaptive Differential PCM Ulteriore risparmio di banda o maggior qualità del segnale può essere ottenuta variando il numero di bit utilizzati per codificare la differenza in base all’ampiezza del segnale Adaptive Differential PCM Si basa sulla stessa idea del DPCM tranne che: Si usano 8 predictor Si variano i bit per codificare ogni variazione ITU-T G.721 Adaptive Differential PCM Subband coding Estensione della banda da 3.4KHz a 7KHz Utile per videoconferenza ITU-T G.722 Adaptive Differential PCM Adaptive Predicting Coding APC Ulteriore banda può essere risparmiata variando i coefficienti di predizione in modo adattivo. Adaptive Predicting Coding L’insieme dei coefficienti ottimale varia continuamente in quanto funzione delle caratteristiche dell’audio digitalizzato Frequenze che compongono il segnale attualmente digitalizzato Linear Predictive Coding La sorgente analizza la forma d’onda per determinare le caratteristiche in essa contenute. Queste vengono codificate e spedite al destinatario che le usa, assieme ad un sintetizzatore, per rigenerare l’audio originale. Come individuare le caratteristiche percettive? Linear Predictive Coding • Pitch: legato alla frequenza del segnale -> orecchio molto sensibile alle frequenze 2-5KHz • Periodo: durata del segnale • Potenza: quantità di energia nel segnale Inoltre l’origine del segnale è importante: Segnali Voiced:generati attraverso le corde vocali (m,v,l) Segnali Unvoiced:generati con le corde vocali aperte (f,s) Linear Predictive Coding Linear Predictive Coding Codifica Percettiva I codificatori percettivi sono stati sviluppati per comprimere fonti audio generiche. Essi utilizzano dei modelli che vengono definiti MODELLI PSICOACUSTICI utilizzano le limitazioni dell’orecchio umano per fornire la compressione. Solo ciò che l’orecchio umano percepisce viene codificato e trasmesso. Sensività Orecchio Umano Maschera in Frequenza: un segnale forte riduce il livello di sensività dell’orecchio relativamente ai segnali vicini in frequenza Maschera temporale: quando l’orecchio ascolta un suono forte prima di poter percepire un suono debole intercorre un periodo di tempo finito. Maschera in Frequenza La maggior ampiezza del segnale B causa una distorsione della sensibilità che impedisce di percepire A Variabile con la frequenza Frequenze maggiori -> maggiori ampiezze delle curve Maschera Temporale Da quando è terminata la trasmissione del segnale a quando l’orecchio può recuperare la sua sensibilità intercorre del tempo. Segnali che hanno ampiezza inferiore del decadimento non vengono percepiti. Codifica Audio MPEG Il Motion Picture Expert Group (MPEG) venne istituito dall’ISO per formulare un insieme di standard per le applicazioni multimediali che coinvolgono video ed audio. La parte di codifica audio di questi standard sono conosciuti come MPEG audio coder Codifica Audio MPEG Decodifica Audio MPEG ISO Recommendation 11172-3: Layer 1 Cassetta audio HI-FI 192kbps Layer 2 Audio digitale vicino a qualità CD 192kbps Layer 3 (MP3) CD-Audio 64kbps Bit Allocation Accuratezza di quantizzazione può variare quindi il numero di bit associati ad ogni sottobanda è diverso e quindi spedito assieme ai campioni. Modello psico-acustico solo nel codificatore Spreco di banda per inviare informazioni sul bit allocation Forward adaptive bit allocation Dolby Audio Coders -1 Stesso numero di bit utilizzati per ogni sottobanda: •Determinati dalla caratteristiche dell’orecchio umano •Non serve includere info nel frame Sviluppato per trasmettere programmi FM su canali satellitari e fornire audio ai programmi televisivi Dolby Audio Coders –2 Allocazione dinamica dei bit per ogni sottobanda. Per ridurre gli overhead si introduce il modello psicoacustico anche nel decodificatore. Necessita di una copia dei campioni delle sottobande: I coefficienti delle frequenze codificate vengono aggiunti ai campioni. Backward adaptative bit allocation mode Utilizzato dai PC per produrre HI-FI quality audio Difficile cambiare modello psicoacustico Dolby Audio Coders –3 Per ridurre gli errori di quantizzazione al modello psicoacustico di tipo backward è associato un modello psicoacustico di tipo forward che mediante l’allocazione dinamica codifica le differenze tra PMb e PMf. Utilizzato nell’audio MPEG per l’utilizzo nell’HDTV Compressione Video Principi di Compressione Video Primo approccio: sequenza di JPEG-> MJPEG Rapporto compressione 1:10/1:20 Ridondanza spaziale ->Ridondanza Temporale : tra frame consecutivi solo piccole porzioni sono coinvolte dal movimento Spedire informazioni di tali movimenti -> Risparmio di banda Motion Estimation Motion Compensation Tipi di Frame I-Frames: Intracoded frames, YCbCr, JPEG-> bassa compresisone. Uso limitato P-Frames: predictive frames, motion estimation/compensation, propagazione errore B-Frames: bidirectional frames ->interpolation frames N=dimensione del group of pictures GOP M= prediction span Tipi di Frame P frames possono essere utilizzati efficientemente solo se il movimento è minimo. Videotelefonia ->OK Movies->NO OK Oltre al P-Frame si utilizza il B-Frame il cui contenuto sono stimati utilizzando sia frame passati che futuri B-Frame coinvolgono I,P frame precedente, frame corrente, I,P frame successivi No propagazione errore Decodifica Frames Per decodificare un I-frame non servono ulteriori informazioni. Per decodificare un P-frame serve l’I-Frame precedente Per decodificare un B frame serve I/P frame precedente e quello successivo IBBPBBPBBI IPBBPBBIBB Tipi di Frame Non rappresenta un nuovo tipo di frame ma la codifica di due P e B frame come se fossero un frame unico. D- Frame : Frame ad alto livello di compressione •Ignorati da P e B frames •Utili per streaming Stima del Movimento- Struttura Stima del Movimento - Procedura Area di ricerca non definita ma solo come il risultato della ricerca deve essere codificato. Compensazione del Movimento Terminata la ricerca del macroblocco con il miglior match due parametri sono considerati: Motion Vector – Differenza di posizione tra i due blocchi Prediction Error – differenze tra il macroblocco del target frame e dei pixel appartenti al blocco che ha ritornato un match (Matrice delle differenze) Compensazione del Movimento Determinare le differenze intercorse tra due frame consecutivi e codificarle Procedura di codifica B-Frame Schema di Codifica La codifica degli I-frame è la stessa della codifica JPEG La codifica dei P-Frames dipende dal modulo di stima del movimento che dipende dal contenuto del macroblocco corrente e di quello che ha dato il match: •Sono uguali->solo l’indirizzo è codificato •Simili-> motion vector, matrice delle differenze •No match ->codifica del blocco mediante JPEG Schema di Codifica Schema di Codifica Formato Bitstream Per ogni macroblocco è necessario decidere il tipo di codifica da utilizzare. Ruolo svolto dal FORMATTER. Type: I,P,B Address: Indirizzo Macroblocco QV: soglia di quantizzazione utilizzata dalla DCT BP: quale macroblocco è presente Dimensione dell’output dell’encoder varia in base al tipo di video in input I 20:1 P 30:1 B50:1 H.261 Ideato dalla ITU-T per la e videoconferenza su ISDN Formati di digitalizzazione QCIF e CIF sono utilizzati per la videotelefonia e la videoconferenza rispettivamente. CIF: Y=352x288 QCIF: Y=176x144 Solo I e P frames Cb=Cr=176x144 Cb=Cr=88x72 H.261 Macroblock format Frame format Group of Objects Schema di codifica H.261 Bit rate variabile Bit rate costante H.263 Ideato dalla ITU-T per la e videoconferenza, videotelefonia, videosorveglianza su WI-FI e PSTN Formati di digitalizzazione QCIF e S-QCIF sono utilizzati per la videotelefonia e la videoconferenza rispettivamente. QCIF: Y=176x144 Cb=Cr=88x72 S-QCIF: Y=128x96 Cb=Cr=64x68 Si utilizzano I,P e B frame e P-B frames sono codificati come unica entità per ridurre overhead Recupero dall’errore PSTN,WI-FI->perdita di pacchetti Si può determinare il GOB contente MB contenenti errori, non è possibile individuare i singoli MB. Errori avvenuti in un GOB si propagano nei sucessivi Tre metodi vengono utilizzati: Error Tracking, independent segment decoding e reference picture selection Error Tracking Comunicazione a due vie viene utilizzata per informare il codificatore di un avvenuto errore: Motion vector fuori range Codewords non valide Coefficienti DCT non validi Troppi coefficiente in un macroblocco Independent Segment Decoding Cerca di prevenire la propagazione gli errori che intervengono all’interno del GOB Codifica indipendente dei GOB Limitazione del metodo di motion estimation/compensation Solo il GOB corrotto rimane affetto dall’errore Independent Segment Decoding Il metodo viene utilizzato in concomitanza con il tracking error. Forti limitazioni dell’efficienza del metodo di motion detection per quanto riguarda il movimento verticale dato che è limitato all’interno del GOB Reference Picture Selection Schema molto simile al tracking error Azioni vengono prese in conseguenza dei messaggi di acknolegment degli errori Si blocca la propagazione dell’errore ai GOB successivi Due Modalità: •NAK-Mode •ACK-Mode NACK-MODE Vengono segnalati GOB errati Il GOB errato viene ricodificato mediante l’ultimo I-frame che sicuramente il decoder ha disponibile ACK-MODE Tutti i frame ricevuti correttamente generano un Acknowledge verso il decoder. Solo i frame acknowledged vengono utilizzati per codificare Codifica MPEG Il Motion Pictures Expert Group (MPEG) venne creato dall’ISO per formulare un insieme di formati standard per le applicazioni multimediali che facessero uso di audio e video. Vennero definiti tre standard ognuno destinato ad un uso applicativo specifico. Mpeg-1 Mpeg-2 Mpeg-4 Codifica MPEG MPEG-1 : risoluzione video SIF (352x288). Utilizzato per la memorizzazione su CD-ROM di audio e video di qualità VHS. Bitrate <1.5MBps MPEG-2: quattro livelli di risoluzione – Bassa -> SIF con Bitrate <4Mbps – Principale -> 4:2:0 (720x576) audio di qualità CD, Bitrate <15Mbps – Alta 1440 ->4:2:0 (1440x1152) utilizzato per HDTV, Bitrate <60Mbps – Alta ->4:2:0 (1920x1152) utilizzato per HDTV WS, Bitrate <80Mbps MPEG-4 :Inizialmente studiato per gli stessi utilizzi del h.263 (4.8-64kbps) MPEG-7: Sviluppato per descrivere la struttura e le caratteristiche di contenuto delle informazioni multimediali e quindi utilizzato a scopi di annotazione semantica Video MPEG-1 Tecnica di compressione video simile a H.261 Suddivisione in macroblocchi 16x16 -> la risoluzione orizzontale portata da 360 a 352 pixel (16x22=352) Dato il sottocampionamento delle componenti cromatiche le risoluzioni spaziali sono: NTSC Y= 352x240 Cb=Cr=176x120 PAL Cb=Cr=176x144 Y=352x288 Video MPEG-1 Si possono utilizzare schemi che considerano le seguenti combinazioni: I-Frame I- e P-Frame I-,P- e B-Frame I D-Frame non sono supportati->I-Frame vengono utilizzati per effettuare la ricerca all’interno del flusso. Il tempo di latenza->massima separazione I-frame (Group of Pictures) Video MPEG-1 L’algoritmo di compressione è basato su H.261: •Macroblocchi 16x16 Y •Macroblocchi 8x8 CbCr Time-Stamps: consentono al decodificatore di sincronizzare il flusso in caso di perdita od errori nei macroblocchi. Slice – Numero di macroblocchi tra due time-stamps (tipicamente una linea) Area di ricerca: dato l’uso dei B-Frames tale area viene allargata. Rapporto di Compressione: •I-Frame 10:1 •P-Frame 20:1 •B-Frame 50:1 Video MPEG-1 Struttura gerarchica del bitstream Video MPEG-1 Formato bitstream: Slice-> simile al GOB del H.261 Video MPEG-2 Ai quattro livelli supportati si aggiungono cinque profili associabili ad ogni livello: – Semplice – Principale – Risoluzione Spaziale – Accuratezza di quantizzazione – Alta Data la compatibilità con MPEG-1 è sufficiente trattare il Main Profile at Main Level (MP@ML) MP@ML Sviluppato per il broadcast della televisione digitale. Schema di codifica simile a MPEG-1 con la differenza dell’utilizzo di una scansione interlacciata piuttosto che progressiva MP@ML –Filed Mode MP@ML – Frame Mode MPEG-4 Lo standard incorpora caratteristiche che consentono molto più che semplicemente accedere alla sequenza video (start, stop, pausa, ecc…). Consentono di accedere e manipolare individualmente gli elementi componenti ogni singola scena. Cartone animato può essere manipolato dall’utente. Utilizzabile in canali a basso bitrate (concorrente h.263) MPEG-4 La principale differenza tra MPEG-4 e gli standard presentati precedentemente è che: MPEG-4 ha funzionalità basate su contenuto Prima della compressione ogni scena viene definita nella forma: – Background (sfondo) – Foreground (insieme di Audio-Visual Objects AVOs) MPEG-4 AVOs Ogni AVO è definito mediante uno o più oggetti video e/o oggetti audio. Video Object Video Object Audio Object MPEG-4 Ogni oggetto possiede un descrittore che ne consente la sua manipolazione La composizione delle scena mediante AVO viene descritta mediante un descrittore di scena MPEG-4-Architettura MPEG-4 –VOP Encoder MPEG-4 Decoder MPEG-4 recupero da errori MPEG-4 possiede delle tecniche per il recupero da errori di trasmissione: – Pacchetti di lunghezza fissa invece dei GOBs – Schema di codifica a lunghezza variabile (VLC) MPEG-4 Codifica MPEG-4 RVLC