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