reti per la comunicazione...
TRANSCRIPT
Reti per la 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
DPCM=PCM-(C1*R1+C2*R2+C3*R3)
Predictive DPCM
C1=0.5 C2=C3=0.25R1->1 bitR2,R3->2 bit
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
ITU-T G.722
Subband codingEstensione della banda da 3.4KHz a 7KHzUtile per videoconferenza
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 frequenzaMaschera 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 192kbpsLayer 2 Audio digitale vicino a qualità CD 192kbpsLayer 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 codificatoreSpreco 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.
Utilizzato dai PC per produrre HI-FI quality audioDifficile cambiare modello psicoacustico
Backward adaptative bit allocation mode
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-> MJPEGRapporto 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 GOPM= prediction span
Tipi di FrameP 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 successiviNo 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
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,BAddress: Indirizzo MacrobloccoQV: soglia di quantizzazione utilizzata dalla DCTBP: 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 Cb=Cr=176x144
QCIF: Y=176x144 Cb=Cr=88x72
Solo I e P frames
H.261Macroblock 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 TrackingComunicazione a due vie viene utilizzata per informare il codificatore di un avvenuto errore:
Motion vector fuori rangeCodewords non valideCoefficienti DCT non validiTroppi coefficiente in un macroblocco
Independent Segment Decoding
Cerca di prevenire la propagazione gli errori che intervengono all’interno del GOB
Codifica indipendente dei GOBLimitazione 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-MODETutti 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 MPEGMPEG-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 lecaratteristiche di contenuto delle informazioni multimediali equindi 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 Y=352x288 Cb=Cr=176x144
Video MPEG-1
Si possono utilizzare schemi che considerano le seguenti combinazioni:I-FrameI- e P-FrameI-,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-1Formato 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-4Lo 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 AVOsOgni AVO è definito mediante uno o più oggetti video e/o oggetti audio.
Video ObjectVideo Object Audio Object
MPEG-4
Ogni oggetto possiede un descrittore che ne consente la sua manipolazione
La composizione dellescena mediante AVO vienedescritta mediante undescrittore 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