sistemi per l`analisi della qualita` percepita in sequenze video

Transcript

sistemi per l`analisi della qualita` percepita in sequenze video
UNIVERSITA’ DEGLI STUDI DI FERRARA
FACOLTA’ DI INGEGNERIA
Corso di Laurea Specialistica in
Ingegneria Informatica e dell’Automazione
SISTEMI PER L’ANALISI
DELLA QUALITA’ PERCEPITA
IN SEQUENZE VIDEO
Tesi di Laurea di:
MATTEO ZAGATTI
Relatore:
Chiar.mo Prof. Ing.
GIANLUCA MAZZINI
ANNO ACCADEMICO 2006-2007
Indice
Capitolo 1: Introduzione alla compressione video. . pag. 1
1.1 Acquisizione e campionamento. . . . . . . . . . . . . . » 1
1.2Campionamento temporale. . . . . . . . . . . . . . . . . » 2
1.3Campionamento spaziale . . . . . . . . . . . . . . . . . . » 3
1.4Codifica dei colori. . . . . . . . . . . . . . . . . . . . . . . » 1.4.1 La tricromia RGB . . . . . . . . . . . . . . . . . . . . . » 1.4.2 Lo spazio YCbCr . . . . . . . . . . . . . . . . . . . . . . » 3
4
5
1.5Compressione video . . . . . . . . . . . . . . . . . . . . . . » 8
1.6Esempi dei codecs più diffusi. . . . . . . . . . . . . . . . » 1.6.1 H.261 ed MPEG-1 e 2. . . . . . . . . . . . . . . . . . . . . » 1.6.2 H.263. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . » 1.6.3 MPEG-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . » 9
9
9
10
Effetti di degrado riscontrabili nei flussi compressi » 1.7.1 Blockiness . . . . . . . . . . . . . . . . . . . . . . . . . » 1.7.2 Blurring. . . . . . . . . . . . . . . . . . . . . . . . . . . » 1.7.3 Color bleeding . . . . . . . . . . . . . . . . . . . . . . » 1.7.4 Flickering. . . . . . . . . . . . . . . . . . . . . . . . . . » 1.7.5 Strobing. . . . . . . . . . . . . . . . . . . . . . . . . . . » 10
10
11
11
11
12
1.8 Misurazione della qualità di un video compresso. » 12
1.7
Capitolo 2: Metriche di valutazione della qualità video pag. 13
2.1 Definizione del problema .
e classificazione delle metriche. . . . . . . . . . . . » 13
2.2 Metriche tradizionali o statistiche. . . . . . . . . . » 2.2.1 Mean Squared Error . . . . . . . . . . . . . . . . . . . » 2.2.2 Peak Signal to Noise Ratio . . . . . . . . . . . . . . . » 2.2.3 Metrica Minkowski . . . . . . . . . . . . . . . . . . . . » 15
15
16
16
2.3 Metriche HVS-based di tipo bottom-up. . . . . . . . . » 2.3.1 Contrasto isotropo. . . . . . . . . . . . . . . . . . . . » 2.3.2 Just Noticeable Distortion (JND). . . . . . . . . . . » 2.3.3 Perceptual Distortion Metric (PDM). . . . . . . . » 18
18
20
21
2.4 Metriche HVS-based di tipo top-down. . . . . . . . . . » 2.4.1 Visual Information Fidelity (VIF). . . . . . . . . . » 2.4.2 Structural Similarity Index Metric (SSIM). . . . » 25
25
26
Capitolo 3: Test a campione . . . . . . . . . . . . . . . . . . pag. 37
3.1 Modalità di somministrazione del test. . . . . . . . » 37
3.2 Prima fase di test: bikes.bmp . . . . . . . . . . . . . . . . » 39
3.3 Seconda fase di test: ocean.bmp . . . . . . . . . . . . . » 44
Capitolo 4: Applicazione al video. . . . . . . . . . . . . . pag. 49
4.1 Prima fase di test video: street.mpg. . . . . . . . . . . » 49
4.2 Seconda fase di test video: cars.mpg. . . . . . . . . . » 56
4.3 Aspetti critici delle prime fasi di test. . . . . . . . . » 62
Capitolo 5: Motion vectors video-SSIM. . . . . . . . . . pag. 63
5.1 Utilizzo dei motion vectors nella compressione video » 63
5.2 Analisi delle sequenze video con la metrica MVV-SSIM. » 67
5.3 Conclusioni. . . . . . . . . . . . . . . . . . . . . . . . . . . . » 71
Capitolo 6: Conclusioni . . . . . . . . . . . . . . . . . . . . . pag. 73
Appendice: Codice MATLAB delle metriche implementate pag. 75
A.1. “ssim_index_ycbcr_ok.m”. . . . . . . . . . . . . . . . . . » 75
A.2. “ssim_index_calc_ok.m”. . . . . . . . . . . . . . . . . . . » 76
A.3. “psnr_ycbcr.m” . . . . . . . . . . . . . . . . . . . . . . . . . » 77
A.4. “psnr.m”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . » 78
A.5. “psnr2mos2_ycbcr.m”. . . . . . . . . . . . . . . . . . . . . » 79
A.6. “motion_estimation_analysis.m”. . . . . . . . . . . . . » 80
A.7. “motionestARPS.m” . . . . . . . . . . . . . . . . . . . . . . . » 81
A.8. “motion_index.m”. . . . . . . . . . . . . . . . . . . . . . . . » 86
BIBLIOGRAFIA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .pag. 87
Ringraziamenti
Desidero ringraziare tutte le persone che hanno contribuito a questa realizzazione, in
particolare il Professor Gianluca Mazzini, per il continuo supporto e la disponibilità
mostrati durante i periodi di laboratorio e di stesura della tesi.
Un grazie di cuore anche ai miei genitori, Paola e Stefano, spero siano orgogliosi
di me almeno la metà di quanto io lo sono di loro e a tutti gli amici che mi hanno
sopportato in questi mesi.
Introduzione
Il progetto, realizzato a scopo di dissertazione di tesi di laurea, si propone
di definire ed implementare sistemi per l’analisi della qualità percepita in sequenze
video.
La dissertazione si articola in sezioni distinte, ma consequenziali fra loro, che
rispecchiano le fasi principali di evoluzione del progetto: raccolta di informazioni
sulle tecniche di digitalizzazione delle immagini e dei video, panoramica sulle
principali metriche di valutazione della qualità video, implementazione e test a
campione per la metrica scelta sulle immagini statiche, estensione della metrica per
la valutazione dei video.
La prima sezione, fondamentalmente didascalica, offre una visione
generale sul problema dell’acquisizione di video, sulla loro compressione e sulle
problematiche legate a questi processi.
La seconda parte, incentrata sullo stadio di ricerca del progetto, presenta
le più interessanti metriche di valutazione della qualità video, fra cui la Structural
Similarity Index Metric, scelta per le successive fasi.
Il terzo capitolo, descrive la tecnica ed i risultati dei due round di test a
campione realizzati per la verifica della metrica SSIM su immagini statiche.
La quarta sezione, descrive l’utilizzo della metrica v-SSIM per la valutazione
di sequenze video, partendo da due sequenze ad elevata qualità e comprimendole
con algoritmi di codifica diversi.
La quinta ed ultima parte, si riferisce all’utilizzo della tecnica MVV-SSIM,
che tiene in considerazione anche fenomeni di mascheramento temporale, nella
valutazione delle sequenze video; contiene inoltre le considerazioni finali sul
progetto nel suo insieme.
La dissertazione è corredata infine da un’appendice, che riporta il codice
implementato per realizzare la metrica, la bibliografia, l’indice tematico ed i
ringraziamenti dell’autore.
Capitolo 1: Introduzione alla
compressione video
Lo scopo di questo capitolo è di presentare le principali tecniche di compressione e
codifica dei flussi video e le problematiche di degrado ad esse correlate.
Nell’ultimo decennio, la qualità dei contenuti audio-video è cresciuta notevolmente,
con conseguente incremento delle dimensioni dei files; la banda delle connessioni
di rete e la capacità dei supporti di memorizzazione non hanno avuto evoluzione
altrettanto veloce; per rendere fruibili questi nuovi contenuti, si è reso pertanto
indispensabile ridurne le dimensioni, senza comprometterne la qualità.
Il segnale acquisito può essere compresso ed organizzato sulla base di numerosi
standard di codifica, in virtù dell’uso che poi ne verrà fatto, della qualità
richiesta, delle dimensioni che potrà occupare, dell’hardware imputato alla sua
riproduzione.
1.1Acquisizione e campionamento
Il primo passo dell’elaborazione video è il passaggio dal mondo naturale,
concettualmente considerato analogico, cioè continuo nei tempi e negli spazi, a
quello digitale, in cui è necessario poter esprimere tutto sotto forma di numeri, per
consentirne la memorizzazione.
La digitalizzazione dei segnali analogici comporta un doppio campionamento,
spaziale e temporale, oltre che una quantizzazione dei valori registrati. Il flusso
video si compone infatti di una sequenza finita di immagini, chiamate frame, le
quali, riprodotte in rapida successione, riprodurranno l’impressione della scena in
movimento.
Ogni frame poi, è il risultato di un campionamento nello spazio, per permettere di
poter essere elaborato: i punti che costituiscono l’immagine infatti sono una matrice
di valori, che per effetto della quantizzazione passano dal dominio continuo, a
quello discreto e limitato.
~
~
Matteo Zagatti
Per effetto di queste operazioni, il segnale “originale” che potremmo osservare
direttamente con i nostri occhi in natura, diviene un segnale discreto a valori discreti,
identificabile tramite tre coordinate, una temporale e due spaziali.
Il campionamento è un’operazione realizzata dalle componenti ottiche delle
moderne videocamere e fotocamere digitali, in cui l’immagine ripresa non viene più
impressa su una pellicola, ma tramite un sensore CCD (Charge Coupled Device)
ed un convertitore analogico-digitale, viene convertita in un flusso di dati digitali.
La quantizzazione è invece l’operazione che permette di limitare il numero di bit
necessari alla memorizzazione delle informazioni: dovendo infatti registrare valori
discreti infatti, le operazioni di troncamento o di arrotondamento, consentono di
suddividere i valori continui registrati in un numero finito di “livelli” prestabiliti.
1.2 Campionamento temporale
La prima scelta da operare riguarda il numero di immagini “catturate” in ogni
secondo, un frame rate (numero di frame al secondo) troppo basso darà l’impressione
di una scena poco fluida o a scatti: a meno di 10 frame al secondo (fps) i movimenti
di oggetti e persone risultano a scatti, fra i 10 ed i 20 fps risultano innaturali i
movimenti particolarmente veloci nella scena, tra i 25 ed i 30 fps la qualità del
movimento è molto buona (questo frame rate è infatti utilizzato nelle trasmissioni
televisive), tra 50 e 60 fps si ottiene la migliore qualità percepibile dall’occhio
umano, ma in genere si limita l’utilizzo di tale frame rate a causa delle necessità di
compressione o limiti stringenti alla banda di trasmissione del segnale.
È interessante notare che gli standard di trasmissione televisiva più diffusi al mondo,
PAL e NTSC, utilizzino rispettivamente 25 e 30 fotogrammi al secondo (29,97 Hz
per la precisione). Un problema molto diffuso è quello della conversione fra frame
rates diverse, che spesso introduce evidenti difetti alla fluidità dei movimenti nelle
immagini.
~
~
Introduzione alla compressione video
1.3 Campionamento spaziale
Riguardo al campionamento spaziale, la qualità dell’immagine ottenuta dipende
direttamente dalle dimensioni della matrice e quindi dal numero di campioni (pixel,
picture element) costituenti i vari frames. Riducendo le dimensioni dei frames si
ottengono immagini che necessitano di essere “stirate” dai riproduttori, per coprire
l’intero schermo, producendo immagini scalettate. La cosiddetta “risoluzione” dei
frames dipende non solo dalla qualità che si desidera ottenere, ma anche dal formato
utilizzato: dal formato fotografico tradizionale 2:3, al classico 4:3 televisivo, al più
moderno 16:9 cinematografico.
Per quanto riguarda le immagini digitali, si può parlare di “risoluzione”anche
in termini di “densità dell’informazione”, cioè di pixel per pollice: si tratta
di informazioni molto usate nella stampa digitale; infatti, se per visualizzare
un’immagine sullo schermo di un pc, sono sufficienti 72 pixel/pollice, per ottenere
un’adeguata qualità di stampa, in genere, si richiede una risoluzione di almeno 150
pixel/pollice.
Ecco per esempio, perché una fotocamera con sensore da 3 Megapixel, non risulta
sufficiente per la stampa di ingrandimenti oltre la dimensione 20x30 cm, perché
la risoluzione scenderebbe sotto i livelli di qualità richiesti, rendendo l’immagine
sgranata a causa dell’interpolazione richiesta.
1.4 Codifica dei colori
Mentre un’immagine in scala di grigi (comunemente chiamata in “bianco e nero”),
richiede la semplice misurazione dell’intensità luminosa dei pixel, le immagini
a colori utilizzano un minimo di tre informazioni per la rappresentazione di un
singolo pixel.
La scelta di un determinato “spazio colore” fornisce la rappresentazione da utilizzare
per la ricostruzione del segnale. È infatti possibile, ricreare la maggior parte dei colori
presenti in natura, sovrapponendo tre stimoli usati come base di una mescolanza
~
~
Matteo Zagatti
additiva: questo tipo di mescolanza, applicabile a segnali che si sovrappongono
sulla retina senza interferire fisicamente l’uno con l’altro, ma dandoci l’illusione di
percepire un terzo segnale, dato dalla risultante dei primi due.
Nell’immagine possiamo notare come la sovrapposizione dei tre colori primari
(anche se il termine è in genere usato in modo improprio, visto che si tratta solo di
una convenzione), restituisca luce bianca.
1.4.1
La tricromia RGB
L’uomo percepisce le informazioni cromatiche dal mondo che lo circonda tramite i
coni, piccoli recettori situati sulla retina: le curve di assorbimento di questi recettori
indicano dei picchi in prossimità di determinate lunghezze d’onda, associate ai
colori blu, verde e rosso.
Sulla base di questa osservazione fisiologica dell’occhio, possiamo immaginare
ogni colore come la composizione di tre componenti dei cosiddetti colori primari.
~
~
Introduzione alla compressione video
2
Lo standard RGB ha definito le lunghezze d’onda di queste componenti:
R=700 nm
G= 546,1 nm
B= 435,8 nm
Pur con la consapevolezza, che dalla combinazione dei tre colori primari, non sia
possibile rappresentare completamente lo spettro dei colori in natura, lo spazio
RGB è in grado di codificare tutti i colori percepibili dall’occhio umano: infatti,
due sorgenti a diversa lunghezza d’onda, ma con stessa proiezione sul sottospazio
RGB, verranno percepite allo stesso modo.
Lo spazio RGB è però poco performante dal punto di vista della compressione,
in quanto tutte le componenti rivestono la stessa importanza e dovranno pertanto
essere codificate con un numero di bit equivalente.
Ad esempio, un’immagine RGB non compressa di risoluzione 1024x768 pixel,
con profondità di 8 bit per canale, occuperà 1024x768x8x3 = 18874368 bit = 2,25
MB.
1.4.2Lo spazio YCbCr
Studi sulla fisiologia dell’occhio umano, hanno verificato la maggiore sensibilità
della vista all’intensità luminosa rispetto al colore, si è ritenuto pertanto necessario
separare le componenti di luminanza e crominanza, per poi risparmiare preziosi bits
nella compressione dei segnali crominanza.
~
~
Matteo Zagatti
Nello spazio colore YCbCr la luminanza (Y) e le crominanze sul blu (Cb) e sul
rosso (Cr) possono essere ricavate direttamente dal segnale RGB:
Y = 0.299R + 0.587G + 0.114 B
Cb = B – Y
Cr = R – Y
Come detto, la vista è più sensibile alla componente luminanza, alla quale verrà
pertanto riservata una quantizzazione più precisa. I formati di campionamento
vengono identificati da una sequenza di tre numeri, divisi da “:”, ad esempio 4:4:4
significa che le componenti di crominanza avranno stessa risoluzione orizzontale e
verticale della luminanza, come nell’RGB, mentre 4:2:2 sta ad indicare che Cb e Cr
avranno stessa risoluzione verticale della luminanza ma metà risoluzione orizzontale.
Il formato più utilizzato è il 4:2:0 la risoluzione delle crominanze è dimezzata sia
in orizzontale che in verticale, in pratica l’immagine creata da ciascuna crominanza
ha dimensione un quarto rispetto alla corrispondente luminanza, riducendo nel
complesso del 50% le dimensioni di ciascun frame.
Riprendendo l’esempio proposto per lo spazio RGB, la stessa immagine che avrebbe
occupato 2,25 MB, con un downsampling 4:2:0 occuperebbe [1024x768x8x1]
+ [(1024/2)x(768/2)x8x2] = 1024x768x8x(1,5) = 9437184 bit = 1,125 MB con
una riduzione netta del 50% delle dimensioni, e praticamente nessuna differenza
evidente.
Questa tecnica è fra i primi passaggi della compressione JPEG (il più noto algoritmo
di compressione per immagini statiche).
Nelle figure seguenti, mostriamo un confronto fra le informazioni nei due spazi
colore presentati: è immediato notare come nello standard RGB, ciascuno dei canali
mantenga informazioni fondamentali per il riconoscimento degli oggetti, mentre
nello spazio YCbCr le informazioni predominanti si trovino nel solo canale Y
(simile ad un’immagine in bianco e nero), lasciando agli altri canali il compito di
completare il quadro cromatico.
~
~
Introduzione alla compressione video
Scomposizione RGB dell’immagine Scomposizione YCbCr dell’immagine
~
~
Matteo Zagatti
1.5 Compressione video
Nonostante la banda gestibile dalle reti internet, anche domestiche, sia in continua
crescita, non è minimamente pensabile di poter trasferire filmati ad alta qualità senza
l’ausilio di un’adeguata compressione. Le strategie di compressione possono essere
suddivise in due macro categorie: con o senza perdita. Le tecniche lossless (senza
perdita), permettono di rimuovere i dati ridondanti nel segnale, pur consentendo di
ricostruire perfettamente il segnale originale, ma proprio per questa caratteristica,
ottengono riduzioni del peso dei file decisamente esigui.
Al contrario le tecniche lossy (con perdita), permettono livelli di compressione
decisamente interessanti, con la consapevolezza di una qualità finale inferiore
rispetto alla sequenza originale.
Il metodo più immediato e rudimentale per comprimere un flusso video, è dato dalla
compressione indipendente di tutti i suoi frame, ad esempio utilizzando lo standard
di compressione per immagini più noto, il JPEG. Un codec di questo genere tiene
però in considerazione solo le ridondanze spaziali del segnale, mentre sistemi più
complessi sono in grado di ridurre le dimensioni dei file video anche sulla base delle
dipendenze temporali, molto determinanti, essendo i video costituiti da immagini in
sequenza molto simili fra loro.
Per tener conto di queste dipendenze temporali i frame sono classificati secondo la
loro tipologia:
frame “I”: indipendenti, codificati separatamente dagli altri, nella maggior parte dei
casi per motivi di risincronizzazione del codec e per impedire la propagazione degli
errori; essendo codificati in semplice JPEG permettono un livello di compressione
del 10-20%;
frame “P”: predetti, codificati in modo differenziale rispetto al più recente frame I
o P; permettono un grado di compressione del 20-30%;
frame “B”: bidirezionali, codificati rispetto al più vicino I o P precedente e al successivo
I o P; necessitano pertanto la codifica del frame successivo per poter essere elaborati,
ma consentono una compressione che può arrivare anche al 30-50%;
frame “D”: a bassa risoluzione, utilizzati per la decodifica veloce ed il tracking.
~
~
Introduzione alla compressione video
1.6Esempi dei codecs video più diffusi
1.6.1
H.261 ed MPEG-1 e 2
Ha gettato le basi per i più noti MPEG ed è stato il primo codec a larga diffusione
nelle applicazioni (videoconferenza, videotelefono ecc.). I frame sono costituiti
da macroblocchi (MB) di 16x16 pixel, ognuno dei quali caratterizzato da un
identificatore (address), un tipo (type), una soglia di quantizzazione (quantization
value), un vettore di moto (motion vector), il numero di blocchi validi (good block
pattern) ed, ovviamente, dalle matrici di luminanza (Y) e crominanza (Cb e Cr).
I macroblocchi sono poi raggruppati in gruppi di macroblocchi (GOB) i quali
costituiscono i frame nella loro interezza.
I frame utilizzati sono di tipo I e P.
Lo standard noto come MPEG-1 utilizza una struttura molto simile, con la sola
aggiunta dei frame B: viene utilizzato un frame I ogni mezzo secondo e vengono
alternati due frame B ad uno di tipo P.
L’MPEG-2 aggiunge il supporto alla tecnica di interlacciamento, che permette di
effettuare la scansione solo fra righe dello stesso tipo (pari o dispari); i profili più usati
di questo codec, quelli ad alto bit-rate sono utilizzati nella codifica dei DVD-video.
1.6.2 H.263
Rispetto al suo predecessore, questo standard introduce l’utilizzo dei frame di tipo
B e di tipo PB (due frame, uno di tipo P e l’altro B, codificati in coppia).
Con l’aumentare del livello di compressione il rischio maggiore è di incorrere in
cosiddetti “burst” di errori: dal momento che la codifica e decodifica dei frame
avviene in modo dipendente dai frame vicini, l’errore presente nei frame precedenti
o successivi finisce con l’influenzare anche altre aree della sequenza. Per questo
motivo, oltre al miglioramento delle tecniche di codifica, il codec H.263 implementa
anche tecniche di recupero degli errori, principalmente utilizzando gli “start code”
dei GOB come segnali di risincronizzazione e con una tecnica di mascheramento
~
~
Matteo Zagatti
dell’errore detta “error concealment scheme”, che prevede il recupero del GOB dal
frame precedente in caso di errata decodifica del GOB dal frame attuale.
Questo standard vede largo impiego nei sistemi di videoconferenza.
1.6.3MPEG-4
Un grosso balzo tecnologico è stato rappresentato dall’introduzione dei primi codec
di tipo MPEG-4, dove per la prima volta, le sequenze video non sono interpretate
come una sequenza di immagini, ma tramite un’analisi semantica, come un insieme
di “oggetti” in movimento.
La compressione è perciò attuata cercando di riconoscere e separare questi oggetti:
ad esempio riconoscendo il cosiddetto “sfondo” della scena, che subirà variazioni
minime rispetto agli altri oggetti. Le possibilità di compressione sono notevolmente
incrementate da questo nuovo approccio, ma di contro, la complessità degli algoritmi
e la probabilità di errore aumentano a loro volta.
1.7Effetti di degrado riscontrabili nei flussi
compressi
Per effetto della compressione, in virtù dell’eliminazione di alcuni frammenti
dell’informazione, le sequenze possono presentare alcuni difetti, dovuti al tipo di
codifica ed al grado di compressione richiesto; il grado di imperfezione può variare
da un livello appena percettibile, fino ad un disturbo importante, in relazione
alla consistenza della compressione ed alla qualità dell’algoritmo di codifica.
Analizziamo in breve i più comuni artefatti dovuti alla codifica.
1.7.1 Blockiness
L’immagine presenta delle strutture a blocchi non presenti nell’originale, dando
l’impressione che l’immagine sia costituita da un insieme di aree rettangolari
adiacenti. La causa di questo “impairment” è nella codifica indipendente di
~
10 ~
Introduzione alla compressione video
blocchi adiacenti, specie nell’applicazione della trasformata DCT (discrete cosine
transform, fa parte del processo di compressione JPEG): infatti, la quantizzazione
dei coefficienti a bassa frequenza di tale trasformata, operata in modo indipendente
nei blocchi adiacenti, crea talvolta differenze di luminosità o cromatiche evidenti.
In genere risulta più evidente in aree che dovrebbero presentare tinta e luminosità
uniformi, come uno sfondo nero, o un oggetto di grosse dimensioni.
1.7.2 Blurring
Un diffuso effetto di sfocatura, che provoca quindi una pesante perdita di definizione
degli oggetti è dovuta alla soppressione delle alte frequenze durante il processo
di quantizzazione (tipico ad esempio della compressione JPEG). È noto infatti
che l’occhio umano sia meno sensibile alle alte frequenze spaziali, ma abusare di
questa caratteristica per ottenere maggiore compressione porta talvolta ad eliminare
informazioni preziose per la ricostruzione corretta del segnale. Per ovviare a questo
“artifact” è possibile filtrare il segnale con un filtro di sharpening (effetto inverso
del blurring).
1.7.3 Color bleeding
È caratterizzato dalla contaminazione di colori fra zone contigue ed è dovuto
in particolare al taglio delle alte frequenze dalle matrici che rappresentano le
crominanze.
Risulta più evidente qualora le matrici di crominanza abbiano dimensione inferiore
rispetto alle corrispondenti matrici di luminanza (ad esempio sfruttando la
sottocampionatura di tipo 4:2:0).
1.7.4Flickering
Noto in genere con il termine “sfarfallio”, è tipico di scene caratterizzate da fitte
texture ed è causato da un’eccessiva variabilità dei coefficienti di quantizzazione. Le
~
11 ~
Matteo Zagatti
texture infatti nel dominio delle frequenze, sono aree ad elevata frequenza spaziale,
pertanto vengono spesso soppresse durante le operazioni di compressione.
1.7.5Strobing
Qualora il frame rate, ovvero il numero di immagini per secondo, scendesse sotto
una certa soglia, la sequenza perderebbe la sua fluidità di movimento e si avrebbe
l’impressione di un avanzamento a scatti. L’effetto di staticità è dovuto proprio alla
scelta di frame rate inadeguati al tipo di scena.
1.8Misurazione
della qualità
di
un
video
compresso
Il bisogno di quantificare questi effetti di degrado, ha portato, parallelamente
all’evoluzione degli algoritmi di codifica, alla nascita di metriche specifiche per la
misurazione della qualità video.
Gli approcci tentati sono molteplici, tanto dal punto di vista della teoria, quanto dal
punto di vista dell’implementazione. Alcuni infatti prendono in esame caratteristiche
tipiche di questi artifacts, per identificarne la presenza nelle immagini, altri si basano
sul confronto dell’immagine originale e della sua versione compressa, altri ancora
si propongono di analizzare l’immagine come farebbe un osservatore in carne ed
ossa, per ottenerne una misura della qualità assoluta.
Nei prossimi capitoli analizzeremo le principali caratteristiche di queste metodologie
e cercheremo di dare la definizione di una nuova metrica per la valutazione della
qualità “percepita”.
~
12 ~
Capitolo 2: METRICHE DI VALUTAZIONE DELLA
QUALITÀ VIDEO
2.1Definizione del problema e classificazione
delle metriche
La ricerca di uno strumento automatico per la valutazione della qualità di un flusso
video compresso, è attualmente uno dei problemi più discussi in diversi campi della
scienza, in quanto, non coinvolge soltanto aspetti tecnologici, ma anche e soprattutto
problematiche legate alla fisiologia umana.
Quando ci si interroga sulla qualità di un contenuto audio-visivo infatti, non ci
si riferisce alla qualità assoluta, ma a quella relativa al destinatario del segnale
in questione. Attualmente, la quasi totalità del materiale audio-video prodotto, ha
come ricevente finale l’essere umano, perché è destinato ad essere “consumato” da
un pubblico.
Il panorama delle codifiche audio-visive è in continua evoluzione, sia per il naturale
evolversi delle tecnologie, ma anche perché lo studio del sistema visivo umano è ben
lontano dalla conclusione; ci sono in effetti teorie discordanti e processi che risultano
ancora oscuri per quanto riguarda i meccanismi di acquisizione e comprensione delle
immagini da parte del nostro cervello, di conseguenza, i modelli matematici che ne
derivano sono molteplici. Con questa consapevolezza, vengono progettati pertanto
gli algoritmi di codifica e compressione dei contenuti multimediali: lo studio di questi
strumenti parte proprio dalla fisiologia dei nostri sensi, per coglierne aspetti favorevoli
alla codifica; dove i nostri sensi presentano sensibilità minore o nulla, significa che ci
si può permettere di scartare quelle informazioni che comunque non coglieremmo,
con un elevato risparmio in termini di banda (o di spazio occupato) e senza una
perdita di qualità apprezzabile dall’utente. Mentre però le tecniche di codifica sono
un argomento ampiamente sviscerato e sviluppato, il problema diametralmente
opposto, cioè quello della loro valutazione, è rimasto a lungo inesplorato, in quanto
la prassi suggeriva di effettuare dei test a campione, utilizzando dei volontari in carne
~ 13 ~
Matteo Zagatti
ed ossa per valutare l’operato degli algoritmi. Lo scoglio maggiore, nella creazione
di uno strumento in grado di sostituire l’uomo, in un’operazione complessa, quale
la valutazione della qualità di un contenuto multimediale, è sicuramente quello di
comprendere quali siano gli aspetti e le caratteristiche più rilevanti sui quali un
osservatore pone la sua attenzione per definire la qualità, di modo da attribuirvi
maggior peso in fase di calcolo dei risultati finali.
In questo senso, un argomento relativamente nuovo, è quello della valutazione
della qualità visuale “percepita” dallo spettatore, quindi una misura della fedeltà
dell’immagine, compressa e poi ricostruita, all’originale non compresso.
Esattamente perseguendo questo obiettivo, negli ultimi anni sono state sviluppate
architetture di valutazione via-via più complesse e più “aderenti” agli studi psicovisuali, per abbandonare le metriche di qualità assoluta e predire sempre con
maggior precisione, quella che sarà la qualità colta dall’osservatore. Oltre che per
il tipo di approccio teorico, le metriche di valutazione possono essere suddivise in
categorie anche sulla base di altri aspetti.
Una classificazione “a monte” delle tecniche per esempio, può essere effettuata
in base agli input che queste richiedono: si parla infatti di full-reference se sono
necessari entrambi i segnali (di riferimento e di test) in forma completa, di reducedreference, se per quanto riguarda il segnale originale, ne basta una descrizione
minima, attraverso indici statistici calcolati in precedenza (caratteristica molto
utile se la valutazione viene fatta in ambiente distribuito, con elevato risparmio
di banda nel trasferimento di “pochi numeri” al posto dell’intera sequenza), fino
ad arrivare al no-reference, in cui la valutazione viene fatta basandosi solo sulla
qualità percepita del flusso codificato. Attualmente i metodi più usati sono quelli
full-reference, ci sono alcuni approcci di reduced-reference e ben pochi esempi di
no-reference, anche per la difficoltà di stabilire caratteristiche generali di qualità
dei segnali: mentre risulta piuttosto semplice, ad un essere umano, dare un giudizio
ad un’immagine o un video, senza necessità di confronto con l’originale, è ben più
complicato istruire un sistema automatico per fare lo stesso.
Vediamo ora in breve una panoramica delle metriche maggiormente diffuse.
~ 14 ~
Metriche di valutazione della qualità video
2.2Metriche tradizionali o statistiche
Si tratta di metodologie tradizionali, di tipo full-reference che confrontano i due
segnali campione su campione (in questo caso pixel-a-pixel) e creano una “misura”
della qualità o della “distanza” fra i due segnali, di tipo assoluto. Costituiscono
la base di partenza per la valutazione della bontà e della precisione delle altre
metriche, in quanto sono di semplice implementazione e di bassa complessità
di calcolo. Sono invece poco efficaci quando si richiede di misurare la qualità
“percepita” dall’utente, in quanto, lavorando direttamente sui segnali, non tengono
in considerazione le caratteristiche del tipo di informazioni in questione, quindi sono
misure completamente estranee alla semantica dei dati; inoltre non prevedono nessun
adattamento della misurazione al tipo di osservatore. Lavorano sostanzialmente per
confronto diretto dei segnali, senza dare “peso” diverso alle diverse tipologie di
distorsione che questi possano subire.
2.2.1
Mean Squared Error
La prima metrica in esame è il Mean Squared Error (MSE), che misura la differenza
dei segnali per ogni istante t, in posizione (x,y) e ne fa una media:
Nella formula, T è il numero di istanti temporali, X ed Y le dimensioni spaziali,
quindi t, x ed y individuano un preciso campione del segnale (nel caso di un video,
un preciso pixel all’interno di un frame). All’interno della sommatoria troviamo I a
rappresentare il segnale originale ed I segnato per quello in esame.
Il Root Mean Squared Error (RMSE), ovvero la radice quadrata dell’MSE, è anche
utilizzato.
~ 15 ~
Matteo Zagatti
2.2.2
Peak Signal to Noise Ratio
Un’altra tecnica molto diffusa nel campo della valutazione dei segnali è la cosiddetta
Peak Signal to Noise Ratio (PSNR), basata sul calcolo del MSE e così ottenuta:
dove m rappresenta il massimo valore assumibile da un campione, cioè il massimo
valore attribuibile ad un pixel, nel caso di video o immagini: in pratica dipende
dalla profondità dei bit delle immagini. Ad esempio, se l’immagine ha profondità
di colore pari ad 8 bit, questo valore può variare fra 0 e 255 (tutti i numeri interi
positivi esprimibili con 8 cifre in binario, ovvero 28-1), pertanto m varrà 255.
2.2.3Metrica Minkowski
Un ultimo ma interessante esempio è quello di una famiglia di metriche introdotte dallo
studioso tedesco Hermann Minkowski, che assume la seguente forma generale:
Dove il prodotto TXY è il numero totale di campioni confrontati (come nel calcolo
dell’MSE) e β il parametro che può variare da 1 a +∞. Come in precedenza, I
ed I segnato rappresentano i segnali da confrontare; in pratica è un’estensione del
RMSE ad un esponente qualunque, infatti la differenza dei segnali viene posta in
valore assoluto nell’eventualità di utilizzo di esponenti dispari.
Le misure ottenute prendono anche il nome di distanze Minkowski.
Caratteristica comune a tutte queste metriche è l’approccio statistico, l’incapacità
cioè di discernere fra differenze macroscopiche, percepibili all’occhio umano e
modifiche che non alterino in modo pesante la qualità dell’immagine in esame.
Un esempio classico di questo limite è la serie di immagini di pagina seguente, dove
~ 16 ~
Metriche di valutazione della qualità video
alla stessa immagine di partenza (a), sono stati applicati “difetti” di tipo diverso:
rispettivamente stiramento del contrasto (b), spostamento del valor medio (c),
compressione JPEG a bassa qualità (d), blurring o sfocatura (e), rumore impulsivo
sale-pepe (f).
Si noti come la qualità “percepita” sia profondamente variabile percorrendo la
sequenza con lo sguardo, mentre la misura del MSE sia praticamente identica per
tutte le immagini di test.
(a) Immagine originale: MSE=0; (b) Stiramento del contrasto: MSE=144; (c) Spostamento
del valor medio: MSE=144; (d) Compressione JPEG bassa qualità: MSE=142; (e) Blurring:
MSE=144; (f) Rumore salt&pepper: MSE=144.
Scopo delle successive metriche che presenteremo è di superare questo pesante
limite e di fornire una misura più coerente con la valutazione percettiva della qualità,
che ciascuno di noi può compiere in pochi istanti, attribuendo punteggi migliori alle
immagini (b) e (c) e relegando senz’altro agli ultimi posti le immagini (e) e (d).
Un notevole passo avanti, nella creazione di metriche per la valutazione della qualità,
è invece stato fatto nel momento in cui ci si è resi conto della diversa sensibilità
dell’occhio umano alle diverse tipologie di distorsione.
~ 17 ~
Matteo Zagatti
2.3Metriche HVS-based di tipo bottom-up
Il gruppo di metriche descritte in questo paragrafo, sono basate su modelli del
sistema visivo umano (Human Visual System, HVS), prendono cioè in esame le
principali caratteristiche e proprietà che determinano la nostra percezione visiva,
per crearne modelli matematici da applicare alla costruzione degli strumenti di
valutazione della qualità. La definizione di tipo bottom-up deriva proprio dal fatto
che queste metriche, partono da considerazioni di tipo psico-visuale, per ricavare
modelli e metriche che riproducano le caratteristiche dello HVS.
Quando ancora si riteneva plausibile una descrizione del processo visivo, basata
su un singolo canale di comunicazione, sono nati diversi studi sulle funzioni di
sensitività al contrasto (Contrast Sensitivity Functions), ad evidenziare che la nostra
percezione non è ugualmente sensibile in condizioni ambientali variabili.
Il sistema visivo è in grado di adattarsi infatti ad un enorme range di intensità
luminose. L’adattamento alla luce ci permette di discernere meglio le variazioni di
luminanza ad ogni livello di luce. La visione scotopica e fotopica insieme coprono
12 ordini di magnitudine in intensità, da pochi fotoni, alla piena luce solare. Ad
ogni modo, ad ogni dato livello di adattamento, possiamo solo discriminare entro
un range di intensità di 2-3 ordini di grandezza.
Tre meccanismi di adattamento alla luce possono essere distinti nello HVS: la
variazione meccanica dell’apertura pupillare, i processi chimici nei fotorecettori,
l’adattamento a livello neurale. I tempi e le capacità di adattamento di questi sistemi
sono molto variabili: si parla di pochi secondi per l’apertura della pupilla, mentre è
necessaria anche un’ora per l’adattamento alla piena oscurità dei fotorecettori.
2.3.1 Contrasto isotropo
Da tempo si ritiene che lo HVS sia particolarmente sensibile alle informazioni di
luminanza e meno focalizzato sugli aspetti di crominanza. La risposta del sistema
visivo dipende inoltre molto meno dalla luminanza assoluta che dalla relazione
delle sue variazioni locali alla luminanza che le attornia. Questa proprietà è nota
~ 18 ~
Metriche di valutazione della qualità video
come legge Weber-Fechner. Il contrasto è una misura di questa variazione relativa
di luminanza.
Lavorare sul contrasto anziché sulla luminanza può facilitare numerosi compiti
di processamento ed analisi delle immagini. Sfortunatamente, non esiste una
definizione comune di contrasto adatta a tutte le applicazioni. Vediamo in breve
alcune definizioni di contrasto per stimoli artificiali ed arriviamo ad una misura
isotropia di contrasto locale per immagini naturali.
Matematicamente la legge di Weber può essere formalizzata come:
Questa definizione è spesso usata per stimoli consistenti in ristrette aree con scarto
ΔL su uno sfondo uniforme di luminanza L. In caso di sinusoidi o altri pattern
periodici con variazioni simmetriche fra Lmin (valore minimo della luminanza) e Lmax
(valore massimo), che sono altrettanto comuni in esperimenti visivi, il contrasto di
Michelson è invece di maggiore aiuto:
Queste due definizioni non sono equivalenti e né hanno in comune il range di valori
che coprono: il contrasto di Michelson è limitato fra 0 e 1, mentre quello secondo
Weber può variare fra -1 e + ∞. Pur essendo dei buoni predittori del contrasto
percepito per uno stimolo semplice, falliscono quando gli stimoli diventano più
complessi e coprono un campo di frequenze più ampio.
È anche evidente che nessuna di queste definizioni globali è appropriata per misurare
il contrasto nelle immagini naturali. Questo perché pochi punti molto luminosi o
molto scuri determinerebbero il contrasto dell’immagine nella sua interezza, mentre
la percezione umana varia invece con la luminanza locale media.
~ 19 ~
Matteo Zagatti
Con l’evoluzione delle teorie sulla vista, verso un approccio multicanale, anche le
metriche si sono evolute in quella direzione, cercando di incorporare e di integrare
nei modelli i diversi aspetti legati alla percezione visiva; primo esempio di questa
filosofia è la JND (Just Noticeable Distortion).
2.3.2 Just Noticeable Distortion (JND)
Si tratta di una metrica che integra il modello di contrasto proposto da Weber, con
un sistema di riconoscimento dei bordi, che opera separatamente sui diversi piani
che compongono le immagini a colori (Y = luminanza, Cb = crominanza sul blu,
Cr = crominanza sul rosso).
Scopo della JND è di determinare, se in una determinata zona dell’immagine, la
differenza riscontrabile fra il campione di riferimento e quello di test, sia percettibile
o meno.
Il sistema JND è poi integrabile in un calcolo di PSNR, per realizzare un cosiddetto
Peak Signal to Perceptible Noise Ratio (PSPNR), andando a sopprimere quelle
differenze sotto la soglia imposta localmente dal calcolo della JND.
Riportiamo una schematizzazione del calcolo delle JND per immagini a colori:
~ 20 ~
Metriche di valutazione della qualità video
Gli input del sistema sono i piani che compongono l’immagine: Y, Cb, Cr. Al piano
della luminanza (Y) è applicato il calcolo per il contrasto secondo il modello di
Weber, mentre da tutti i piani vengono estratti i bordi degli oggetti, per applicare il
concetto del mascheramento spaziale. Gli effetti del contrasto e del riconoscimento
dei bordi vengono poi combinati secondo un modello non lineare detto NAMM, per
creare le mappe JND, da applicare poi al calcolo del PSPNR.
Recentemente sono state proposte diverse implementazioni della JND che integrino
anche il fenomeno del mascheramento temporale, per quanto riguarda il piano della
luminanza.
Si tratta, pur con numerosi accorgimenti HVS-aware, di uno strumento realizzato per
sopperire alle mancanze delle metriche statistiche. Ha il merito di tenere conto dei
molteplici aspetti del sistema visivo umano, di integrarli per giungere ad una misura
unica della qualità delle immagini analizzate, ma per raggiungere un maggior grado
di successo nella predizione della qualità percepita, si è reso necessario cambiare
completamente approccio. La tecnica che andremo ora ad analizzare è la cosiddetta
Perceptual Distortion Metric, di tipo full-reference e multicanale.
2.3.3
Perceptual Distortion Metric (PDM)
La metrica di distorsione percepita (PDM) è basata sul modello di controllo del
guadagno in contrasto del sistema visivo umano, che incorpora aspetti spaziali e
temporali della vista e della percezione del colore. Il modello è fondato su una
metrica sviluppata da Lindh e van der Branden Lambrecht ed è un’estensione di
un modello esistente per immagini statiche e si focalizza sui seguenti aspetti della
vista umana:
- percezione del colore, in particolare la teoria dei colori complementari;
- la rappresentazione multicanale dei meccanismi temporali e spaziali;
- sensitività spazio-temporale al contrasto e modelli di mascheramento;
- proprietà della risposta dei neuroni nella corteccia visuale primaria.
~ 21 ~
Matteo Zagatti
Le due sequenze in esame, vengono convertite ad uno spazio-colore che tenga
conto della percezione umana, basata sui colori complementari: un canale bianconero (W-B), un canale rosso-verde (R-G) ed un terzo blu-giallo (B-Y). I segnali
così ottenuti, vengono poi processati da un blocco di cosiddetta “scomposizione
percettiva”, ovvero filtrati opportunamente tramite maschere che simulano la
separazione multi-canale del processo visivo umano: vengono pertanto applicati
modelli di mascheramento temporale e spaziale oltre che di sensitività al contrasto.
Infine i risultati di questo filtraggio, vengono analizzati da un modello di controllo
del guadagno di contrasto.
Modellare il mascheramento è una delle operazioni più delicate in fatto di valutazione
della qualità video, poiché la visibilità delle distorsioni è altamente dipendente
dallo sfondo locale. Il mascheramento si ha quando uno stimolo che è visibile se
presentato indipendentemente non può essere rilevato a causa della presenza di un
altro. Il mascheramento spiega perché artefatti di codifica simili, creino disturbo
in certe regioni di un’immagine mentre siano difficilmente apprezzabili in altre.
Il mascheramento è più forte fra stimoli localizzati nello stesso canale percettivo
e molti modelli della vista sono limitati a questo mascheramento intra-canale. Ad
ogni modo, esperimenti psicofisici mostrano che il mascheramento si verifica anche
fra canali di diverso orientamento, fra canali di differente frequenza spaziale e fra
canali di crominanza e di luminanza.
Si ritiene che l’informazione rappresentata nei vari canali all’interno della corteccia
visiva primaria sia integrata nelle aree del cervello sottostanti. Questo processo
può essere approssimato raccogliendo i dati da questi canali in accordo a regole di
probabilità e somma vettoriale, realizzando il cosiddetto pooling.
Il modello contiene numerosi parametri che necessitano di essere ottimizzati per
poter rappresentare accuratamente lo HVS (vedi figura nella pagina seguente).
~ 22 ~
Metriche di valutazione della qualità video
Il costo di questa elevata capacità di adattamento risiede però nell’elevata, talvolta
eccessiva, specificità di una singola implementazione del sistema PDM.
Adattando infatti i parametri ad una certa tipologia di scena, si approssima con
estrema precisione il comportamento del sistema visivo umano, a scapito della
flessibilità di adattamento e precisione per altre scene, con caratteristiche diverse.
Ulteriori migliorie sono state apportate allo schema della PDM, introducendo
meccanismi specifici per il riconoscimento di artefatti dovuti alla codifica, ad
esempio blockiness, giungendo alla formulazione di uno schema di Perceptual
Blocking Distortion Metric (PBDM), oppure focalizzando l’attenzione sulla
segmentazione degli oggetti. Si tratta di una tematica di più alto livello rispetto a
quelle trattate in precedenza, in quanto coinvolge aspetti cognitivi e più strettamente
“semantici” delle immagini. La nuova metrica, detta segmentation-supported-PDM,
pone l’accento sul fatto che un osservatore, sarà portato a soffermare la propria
attenzione e di conseguenza a notare con maggiore probabilità, distorsioni in certe
aree delle immagini piuttosto che in altre. Un esempio per tutti, i volti delle persone
ritratte nelle immagini. La forte abitudine alla vista del volto umano e l’elevata
“esperienza” che ne consegue, incrementa la nostra sensibilità ad artefatti presenti
in queste aree. Sono stati sviluppati numerosi algoritmi di riconoscimento dei volti
nelle immagini, basati sul ristretto range di crominanze coperto dai colori della
pelle umana. I risultati di questo stadio di supporto alla segmentazione, vengono
poi integrati nel processo di pooling già descritto in precedenza, contribuendo così
alla creazione di una misura di distorsione unitaria. È inoltre possibile inserire nel
modello alcune considerazioni riguardo all’attrattiva delle immagini, la cosiddetta
“image appeal”.
~ 23 ~
Matteo Zagatti
Si tratta di un ulteriore accorgimento, utile in quanto un osservatore umano, sarà
portato a sopravvalutare, fra due immagini di pari qualità, quella con caratteristiche
di maggior nitidezza (sharpness) o di maggior impatto cromatico (colorfulness).
Questo livello di affinamento introduce lievi migliorie di prestazioni, al costo di un
sensibile incremento di complessità computazionale; a seconda dell’applicazione
della metrica pertanto è consigliabile una valutazione specifica dell’impatto effettivo
di queste considerazioni.
Abbiamo visto come gli approcci tradizionali alla valutazione della qualità delle
immagini, utilizzino un approccio bottom-up, partendo da modelli del sistema
visivo umano ed usandoli per derivare metriche di qualità. Gli approcci bottom-up
sono quelli che combinano modelli diversi, ognuno dei quali rispecchia diverse
proprietà dello HVS, per la definizione delle metriche. La risposta dello HVS alle
variazioni in luminanza è una funzione non lineare della luminanza media locale
ed è in genere chiamata mascheramento in luminanza. Il termine mascheramento è
dovuto al fatto che variazioni nel segnale distorto sono mascherate dalla luminanza
di base dell’immagine di riferimento. In secondo luogo, il sistema visivo ha una
caratteristica di passa-banda e la sua risposta in frequenza può essere caratterizzata
dalla funzione di sensitività al contrasto (CSF, contrast sensitivity function).
Questa funzione è stata ricavata da esperimenti condotti per determinare la
soglia di visibilità di onde sinusoidali a differenti frequenze. Il mascheramento in
contrasto è riferito al mascheramento subito dalle informazioni a certe frequenze
o con determinati orientamenti a causa della presenza di altre componenti con
frequenza od orientamento simili. Le metriche bottom-up usano diversi modelli
per tenere conto del mascheramento in luminanza o in contrasto e della sensibilità
al contrasto e normalizzano gli errori alle soglie corrispondenti. Il passo finale
richiede di combinare questi errori normalizzati per ottenere una mappa della qualità
dell’immagine oppure un numero, che rappresenti la qualità generale dell’immagine
nella sua interezza.
~ 24 ~
Metriche di valutazione della qualità video
2.4 Metriche HVS-based di tipo top-down
Un approccio di tipo diametralmente opposto alle tecniche viste sinora, è quello
delle metriche basate sul sistema visivo, ma che partono da considerazioni percettive
di alto livello. Da un elevato grado di astrazione si cerca poi di trarre conclusioni
sulle caratteristiche di risposta del sistema visivo da introdurre negli schemi di
misura. Questo approccio, si propone di modellare il problema della valutazione
della qualità, come un problema di fedeltà dell’informazione, anziché come un
problema di fedeltà ad un segnale. Abbiamo infatti mostrato che, a parità di “errore”,
l’informazione può subire pesanti perdite o rimanere praticamente intatta, a seconda
del tipo di errore. Se fosse possibile estrarre le informazioni dalle immagini, o
identificare le aree di maggior interesse per attribuirvi peso superiore, in fase di
valutazione, si otterrebbe senz’altro una misura più precisa della qualità percepita.
La difficoltà risiede nel fatto che il sistema visivo è ancora in larga parte un mistero
e di conseguenza è difficile enunciarne le proprietà e riprodurle fedelmente.
2.4.1Visual Information Fidelity (VIF)
Un primo esempio di questa strategia è rappresentato dalla metrica VIF. L’ambiente
naturale viene ritenuto fonte di entrambi i flussi da analizzare, solo che l’immagine
di test viene modificata da un canale (distorsione) prima di essere processata dallo
HVS e pertanto giunge al destinatario in una forma differente. Questo modello
richiede un accurata rappresentazione della fonte e del canale di comunicazione per
quantificare l’informazione condivisa fra la le due immagini. È inoltre richiesto,
come per le precedenti metriche viste un modello del sistema visivo, in grado di
estrarre dalle immagini quelle che saranno le informazioni più rilevanti.
~ 25 ~
Matteo Zagatti
Mentre lo schema e la struttura teoretica alla base di questa metrica sono definiti
in modo rigido, rimangono molto libere da vincoli e pertanto non standardizzate le
implementazioni e la scelta dei parametri.
Affrontiamo ora invece il caso di un modello di tipo full-reference e con approccio
top-down, che sta trovando larga applicazione per la sua generalità e per le
performances dimostrate.
2.4.2Structural Similarity Index Metric (SSIM)
Questo modello parte dall’osservazione che le immagini da analizzare, ritraggono
nella maggior parte dei casi, oggetti e forme con una struttura organizzata, mentre
è decisamente più raro, che si tratti di una sequenza casuale di pixel. Viene inoltre
enfatizzato il fatto che le distorsioni a cui vanno incontro le immagini, non hanno
tutte lo stesso effetto sulla qualità percepita dall’osservatore. Si richiede quindi che
il sistema di misura, sia in grado di cogliere i diversi piani su cui queste distorsioni
operano, per poter predire con sempre maggiore accuratezza la sensazione che
giungerà al sistema visivo. Il modello SSIM cerca di dividere pertanto distorsioni
sul piano della luminanza, del contrasto e della struttura. In particolare l’ultimo
concetto, che dà il nome alla metrica, è particolarmente innovativo e di “alto livello”
sensoriale.
Le immagini digitali sono tipicamente rappresentate come arrays bidimensionali
di campioni di segnali discreti. Se invece rimodelliamo i campioni del segnale in
un vettore, ogni immagine diviene un singolo punto in uno spazio delle immagini
ad elevato numero di dimensioni. È stato valutato che i segnali rappresentanti le
immagini naturali occuperebbero una porzione estremamente limitata di uno spazio
così definito.
È largamente diffusa la convinzione che le proprietà dell’ambiente naturale
giochino un ruolo fondamentale nell’evoluzione, nello sviluppo e nell’adattamento
del sistema visivo. Durante la sua lunga evoluzione ed i suoi processi di sviluppo,
il sistema visivo umano e stato esposto in modo estensivo alla vista dell’ambiente
~ 26 ~
Metriche di valutazione della qualità video
naturale ed una varietà di prove ha mostrato che lo HVS è fortemente adattato ad
estrarre informazioni utili dalle scene naturali. Una metrica di qualità dell’immagine,
con lo scopo di predire il comportamento di valutazione del HVS, dovrebbe allo
stesso modo essere “adattata” alle proprietà dei segnali contenenti informazioni
“naturali”.
Un aspetto caratterizzante le immagini naturali, che le rende profondamente differenti
da immagini prese a caso dallo spazio di tutte le possibili immagini random, è
che le prime sono estremamente strutturate: i campioni del segnale mostrano forti
dipendenze fra di loro e le dipendenze sono tanto più forti quanti più i campioni
sono prossimi spazialmente.
Queste dipendenze trasportano importanti informazioni riguardo le strutture degli
oggetti nella scena visuale. Una metrica che ignori queste dipendenze potrebbe
fallire nel tentativo di predire l’effettiva qualità delle immagini. Una metrica basata
su queste considerazioni è differente e complementari agli approcci bottom-up visti
in precedenza.
Nei metodi full-reference, la qualità dell’immagine di test è valutata confrontandola
con un’immagine di riferimento, che si assume avere qualità perfetta. L’obiettivo
della ricerca, in campo di valutazione di qualità delle immagini, è di progettare
metodi che quantifichino la forza della similarità (o differenza) strutturale
fra le immagini di test e di riferimento. La domanda giusta da porsi è perciò:
“Cosa costituisce informazione importante, che riflette la struttura degli oggetti
rappresentati nell’immagine?”. Questa è la questione chiave, che definirà la
specifica implementazione dell’algoritmo. Mentre è difficile definire in breve che
cosa sia struttura nell’immagine, è conveniente invece considerare il suo opposto:
quale informazione in un immagine non è importante per rappresentare la struttura
degli oggetti? Una risposta semplice ci viene dalla teoria della formazione delle
immagini. Sappiamo che la luminanza della superficie di un oggetto che osserviamo
è il prodotto della illuminazione e della riflessione, ma le strutture degli oggetti nella
scena sono indipendenti dall’illuminazione. Di conseguenza, desideriamo separare
l’influenza dell’illuminazione dalle informazioni che riteniamo più importanti
~ 27 ~
Matteo Zagatti
per rappresentare le strutture degli oggetti. Intuitivamente, il maggior impatto del
cambiamento di illuminazione, è la variazione della luminanza media del contrasto
in un’immagine. Poiché la luminanza ed il contrasto possono variare nella scena,
è preferibile misurarle localmente. Questo conduce a misurazioni localizzate della
similarità che separino (e possibilmente rimuovano) l’influenza della luminanza e
del contrasto dai rimanenti attributi della regione in esame.
Il diagramma del sistema SSIM è mostrato nella figura sottostante.
Supponendo che x e y siano due segnali non negativi, che siano stati allineati, il fine
del sistema è di fornire una misura della somiglianza fra loro. La misura può servire
come indicazione quantitativa della qualità di un segnale, se si considera l’altro
come “originale”. Il sistema separa il compito della misurazione in tre confronti:
luminanza, contrasto e struttura.
Vorremmo inoltre che la metrica soddisfi le seguenti condizioni:
1) Simmetria: S(x,y) = S(y,x). Poiché il nostro scopo è di quantificare
la similarità fra due segnali, un’inversione nell’ordine degli inputs,
non dovrebbe compromettere la misurazione.
2) Limitatezza: S(x,y) <= 1. La limitatezza è una proprietà utile per
una metrica di similarità, poiché un limite superiore fornisce una
chiara indicazione di quanto vicini siano i due segnali, all’essere
perfettamente identici. Questo è in contrasto con la maggior parte
delle misurazioni segnale-rumore, che sono tipicamente non
limitati.
~ 28 ~
Metriche di valutazione della qualità video
3) Unicità del massimo: S(x,y) = 1 se e solo se x = y (in senso discreto,
xi = yi per tutti gli i). In altre parole, la misura di similarità dovrebbe
quantificare qualunque variazione che possa esistere fra i segnali
di input. Il punteggio perfetto è raggiunto solo quando i segnali
confrontati sono esattamente identici.
Il primo passaggio prende in esame la luminanza dei segnali. Assumendo ovviamente
di lavorare con segnali discreti, l’intensità media è così definita:
Dove μx e μy rappresentano la luminanze medie delle immagini (valor medio), N è
il numero totale di campioni che compongono i segnali (ovviamente devono essere
uguali in entrambe le immagini), e
xi ed yi sono i singoli campioni (pixel delle
immagini).
L’operatore l(x,y) per il confronto in luminanza, in realtà dipende solo dai valori di
μx e μy appena calcolati secondo la relazione:
Dove la costante C1 è introdotta per evitare instabilità qualora la somma dei quadrati
di μx e μy sia molto vicina a zero: si tratta di un’eventualità altamente improbabile nel
caso delle immagini; potrebbe capitare soltanto con immagini quasi completamente
~ 29 ~
Matteo Zagatti
nere. In quel caso sia
μx che μy sarebbero molto prossimi a zero, quindi la misura
di l(x,y) tenderebbe a C1/C1 e quindi ad 1. In tutti gli altri casi, l’entità di C1 risulta
ininfluente rispetto alle quantità μx e μy. Per convenzione viene scelto:
dove L è il range dinamico dei valori dei pixel (vale 255 per immagini in scala di
grigio a 8 bit), e K1 « 1 è una costante molto piccola, convenzionalmente dell’ordine
di 10-2.
Ora che abbiamo ottenuto la misura del confronto delle immagini per il fattore
luminanza, possiamo “eliminare” questa informazione. Ci si propone in pratica di
proiettare l’immagine (intesa come punto di questo ipotetico spazio a N dimensioni)
nell’iperpiano in cui
μx è nullo.
Nella pagina seguente viene mostrata un’immagine di test, dalla quale viene poi
sottratta la componente di luminanza. Per semplicità viene mostrato l’effetto su un
~ 30 ~
Metriche di valutazione della qualità video
unico canale (Y) dell’immagine, ma durante le elaborazioni, lo stesso algoritmo
viene applicato a tutti e tre i canali delle immagini bitmap.
Immagine originale, canale Y.
Immagine privata della luminosità, pronta per la misurazione del contrasto.
~ 31 ~
Matteo Zagatti
Per confrontare le immagini sotto il profilo del contrasto, procediamo come per
la luminanza: calcoliamo separatamente la misura del contrasto delle immagini
(usiamo la deviazione standard come stima del segnale contrasto) ed infine definiamo
l’operatore c(x,y) come misura della fedeltà del contrasto della seconda immagine
rispetto alla prima. Una misura in forma discreta per il contrasto ci è fornita da:
Il confronto in contrasto, realizzato dall’operatore c(x,y) e qui di seguito definito,
sarà pertanto funzione delle variabili
σx e σy:
Dove C2 è una costante non negativa definita in modo simile e per le stesse
motivazioni di C1:
Come specificato in precedenza L è il range dinamico dei valori dei pixel, e K2 una
costante non negativa molto piccola, in genere dell’ordine di 10-2.
Una caratteristica importante di questa funzione è che una variazione di contrasto è
percepita maggiormente in regioni di basso contrasto, rispondendo al fenomeno di
mascheramento in contrasto del sistema visivo umano.
Per la terza fase, il segnale viene normalizzato (diviso) per la sua deviazione standard,
di modo che i due segnali confrontati abbiano deviazione unitaria. Mostriamo
~ 32 ~
Metriche di valutazione della qualità video
pertanto l’effetto della rimozione del contrasto dall’immagine già privata della
componente luminanza.
Immagine privata di luminosità e contrasto, pronta per il confronto strutturale.
Sono ancora distinguibili i soggetti attraverso i loro contorni, mentre le sfumature e
le differenze “cromatiche” sono state eliminate.
Il confronto di struttura è pertanto condotto dopo aver sottratto la luminanza e
normalizzato il contrasto delle immagini in esame. In particolare, associamo la
“direzione” dei due vettori (ora unitari) con le strutture delle due immagini. Lo
strumento più immediato per confrontare queste direzioni, che associamo al concetto
di struttura, è la misura della correlazione fra loro. Si noti che la correlazione fra (x μx)/ σx e (y - μy)/σy è equivalente al coefficiente di correlazione fra gli stessi x e y.
In forma discreta σxy viene stimata come:
~ 33 ~
Matteo Zagatti
Ora abbiamo tutti gli strumenti per definire l’operatore s(x,y) imputato a fornire la
misura della similarità strutturale fra le immagini:
Come per le misurazioni del contrasto e della luminanza, viene introdotta una
piccola costante C3.
Geometricamente, la correlazione corrisponde al coseno dell’angolo fra i vettori x
- μx e y - μy . Si noti inoltre che s(x,y) può assumere valori negativi.
Un punto importante è che queste tre componenti rimangono relativamente
indipendenti. Per esempio, il cambio di luminanza e/o contrasto ha un lieve impatto
sulla struttura delle immagini.
L’ultimo passaggio richiede di combinare le tre equazioni di confronto per ottenere
una singola misura che chiameremo Similarità Strutturale (SSIM) fra i segnali x ed
y:
dove α, β e γ, tutti maggiori di zero, sono parametri utilizzati per regolare il peso
relativo delle tre componenti. È semplice verificare che questa definizione soddisfa
le condizioni date. In particolare, settando tutti gli esponenti ad uno, attribuendo
cioè la stessa rilevanza alle componenti, e supponendo C3 = C2/2, otteniamo una
forma semplificata di indice SSIM:
L’utilizzo di questa formula ridotta però non sembra dare il giusto peso alla
“struttura” delle immagini, pertanto nell’implementazione scelta sono stati attribuiti
valori specifici agli esponenti.
~ 34 ~
Metriche di valutazione della qualità video
Volendo dare maggiore risalto possibile alla misura della compatibilità strutturale
sono stati posti rispettivamente α = 1/4, β = 1/4 e γ = 8.
Gli altri parametri necessari al corretto funzionamento dell’algoritmo sono L = 255,
come richiesto per immagini con 8 bit di profondità, K1 = 0.01 e K2 = 0.03. Si è
infine scelto di porre C3 = C2/2.
~ 35 ~
Capitolo 3: Test a Campione
Al fine di verificare il grado di precisione della metrica implementata, si è scelto di
sottoporre un test di qualità ad un campione di venti soggetti, per poi confrontare il loro
giudizio “soggettivo” con le misure di qualità espresse dal sistema automatico.
3.1Modalità di somministrazione del test
Il campione utilizzato è composto da 20 soggetti volontari di ambo i sessi, di età
compresa fra i 16 ed i 60 anni di età, alcuni dei quali privi di conoscenze specifiche
in campo informatico, altri con una buona familiarità all’uso del computer e della
fotografia digitale.
Le immagini scelte per il test sono 13 in totale, una utilizzata come originale, a
qualità massima e 12 affette da diverse tipologie di distorsione: blurring (sfocatura),
white noise (rumore bianco) e compressione JPEG. Alcuni impairments sono ad
un livello appena percettibile, altri sono in quantità tale da ledere irreparabilmente
la semantica dell’immagine, impedendo perfino il riconoscimento dei soggetti
inquadrati. Alcuni di questi artifacts sono stati applicati all’intera immagine,
altri solo ad una metà di essa, per verificare che il sistema non si comporti come
i tradizionali indici statistici, attribuendo all’intera immagine, la qualità “media”
delle due parti.
Il test è stato somministrato con l’ausilio di un computer portatile, provvisto di
uno schermo di 15”, con una risoluzione di 1280x1024 pixels ed una profondità di
colore di 32 bits. I soggetti sono stati posti ad una distanza di circa un metro dallo
schermo, in una stanza in condizione di media illuminazione, avendo cura di evitare
riflessi sullo schermo.
La modalità di somministrazione del test è stata un DSIS (Double Stimulus
Impairment Scale), pertanto, l’immagine di riferimento è sempre stata mostrata
~ 37 ~
Matteo Zagatti
prima della relativa immagine di test. Ai soggetti è richiesto di quantificare la
qualità dell’immagine di test su una scala discreta a cinque livelli: pessima (1),
scarsa (2), sufficiente (3), buona (4), eccellente (5); dove pessima sta a significare
la perdita totale dell’informazione e ottima indica che non è possibile distinguere
le due immagini. Per la raccolta dei dati sono state utilizzate schede di valutazione
come quella riportata in figura. Come si può notare, le immagini da valutare sono
solo quelle contraddistinte da numeri pari, mentre quelle dispari erano quelle di
riferimento.
IMMAGINE
Pessima
1
Scarsa
2
Sufficiente
3
Buona
4
Ottima
5
2
O
O
O
O
O
4
O
O
O
O
O
6
O
O
O
O
O
8
O
O
O
O
O
10
O
O
O
O
O
12
O
O
O
O
O
14
O
O
O
O
O
16
O
O
O
O
O
18
O
O
O
O
O
20
O
O
O
O
O
22
O
O
O
O
O
24
O
O
O
O
O
Qualora richiesto è stata data la possibilità ai soggetti di riesaminare l’immagine
originale dopo aver visualizzato quella distorta, per porre maggiore attenzione alle
piccole variazioni di qualità. Non è invece stato permesso di modificare il giudizio
su immagini già valutate, alla luce delle successive immagini distorte.
I giudizi raccolti creano un giudizio medio e normalizzato in una scala da 1 a 5,
per poter essere comparati con la misura di SSIM in output del sistema automatico
implementato.
~ 38 ~
Test a campione
La misura di qualità ottenuta dal MOS è stata dapprima confrontata con la metrica
statistica del PSNR (peak signal to noise ratio), presentata nel capitolo precedente.
Una prima stima dell’efficacia della Structural Similarity Index Metric, sarà pertanto
il confronto delle sue performances rispetto al tradizionale PSNR.
Poiché il PSNR esprime il grado di qualità relativa di due immagini in decibel
(dB) è stato necessario uniformare le due misure. La tabella seguente mostra i
valori più utilizzati per questa conversione, suggeriti, fra gli altri, da J-R. Ohm
(Bildsignalverarbeitung fuer Multimedia-Systeme).
PSNR (dB)
>37
31-37
25-31
20-25
<20
MOS
5 (eccellente)
4 (buono)
3 (sufficiente)
2 (scarso)
1 (pessimo)
3.2 Prima fase di test: bikes.bmp
Le immagini usate per i test, sono prelevate dal Database Release 2, gentilmente
concesso dal “LIVE” (Laboratory for Image and Video Processing) dell’Università
di Austin, Texas. Riportiamo alcuni esempi, partendo da quella di riferimento,
l’originale: si tratta di una bitmap, di dimensioni 768x512 pixel, con profondità
di colore di 8 bit, particolarmente interessante per la quantità di dettagli e di alte
frequenze, oltre che per la vasta gamma cromatica.
~ 39 ~
Matteo Zagatti
Immagine originale: bikes.bmp
A questa immagine è stato applicato un diffuso rumore bianco (white noise) di entità medio-bassa,
che ne abbassa senza dubbio la qualità, pur preservando gran parte del contenuto informativo, in
termine di colori, linee e strutture. Nelle tabelle è identificata dal numero 1.
~ 40 ~
Test a campione
Questa invece (numero 7) è stata compressa con algoritmo JPEG, ma gli effetti di questa perdita
di qualità sono stati applicati solo alla metà sinistra, lasciando l’altra metà in originale.
Nella tabella seguente sono riportati i valori del MOS, del PSNR (prima in dB poi
in scala MOS), dell’errore assoluto e percentuale del PSNR rispetto al MOS.
Immagine
numero
PSNR (dB)
PSNR
convertito
MOS
Errore
assoluto
Errore %
1
26,4427
3,0000
3,0000
0,0000
0,00%
2
39,8199
5,0000
4,8500
0,1500
3,75%
3
38,8532
5,0000
4,1000
0,9000
22,50%
4
39,1066
5,0000
4,8500
0,1500
3,75%
5
37,1979
5,0000
4,3500
0,6500
16,25%
6
34,0509
4,0000
4,7000
0,7000
17,50%
7
37,0908
5,0000
4,7000
0,3000
7,50%
8
42,1356
5,0000
4,8000
0,2000
5,00%
9
43,1785
5,0000
4,9000
0,1000
2,50%
10
29,5167
3,0000
3,4500
0,4500
11,25%
11
33,9946
4,0000
4,0000
0,0000
0,00%
12
11,2986
1,0000
1,0000
0,0000
0,00%
Medie
34,3905
4,1667
4,0583
0,3000
7,50%
~ 41 ~
Matteo Zagatti
Questi primi risultati rivelano una forte variabilità dell’accuratezza del PSNR, in
grado di identificare in alcune occasioni con precisione assoluta il giudizio del
MOS, ma talvolta produce un errore di oltre il 20% (pari quasi ad un punto di scarto
sulla scala MOS).
Di seguito sono presentate le tabelle di confronto fra la misura di similarità strutturale
basata soltanto sulla componente Y delle immagini ed i dati del campione MOS.
Oltre alle misure, come per il PSNR, vengono presentati gli errori assoluti e in
percentuale.
Immagine
numero
SSIM Y
MOS
Errore
assoluto
Errore %
1
3,7048
3,0000
0,7048
17,62%
2
4,8448
4,8500
0,0052
0,13%
3
4,7776
4,1000
0,6776
16,94%
4
4,812
4,8500
0,0380
0,95%
5
4,7204
4,3500
0,3704
9,26%
6
4,6132
4,7000
0,0868
2,17%
7
4,808
4,7000
0,1080
2,70%
8
4,9112
4,8000
0,1112
2,78%
9
4,9296
4,9000
0,0296
0,74%
10
4,3588
3,4500
0,9088
22,72%
11
4,3928
4,0000
0,3928
9,82%
12
1,1412
1,0000
0,1412
3,53%
Medie
4,3345
4,0583
0,2979
7,45%
L’errore massimo è equivalente in questo test a quello del PSNR e l’errore medio è
di pochissimo inferiore.
La tabella riportata di seguito invece, riporta i risultati del test con l’implementazione
completa della misura SSIM, che tiene in considerazione anche le matrici di
crominanza dell’immagine: sono rappresentati, oltre al MOS, la SSIM YCbCr,
l’errore assoluto e percentuale.
~ 42 ~
Test a campione
Immagine
numero
SSIM
YCbCr
MOS
Errore
assoluto
Errore %
1
3,2967
3,0000
0,2967
7,42%
2
4,8678
4,8500
0,0178
0,44%
3
4,8375
4,1000
0,7375
18,44%
4
4,8211
4,8500
0,0289
0,72%
5
4,7630
4,3500
0,4130
10,32%
6
4,4221
4,7000
0,2779
6,95%
7
4,7143
4,7000
0,0143
0,36%
8
4,9133
4,8000
0,1133
2,83%
9
4,9386
4,9000
0,0386
0,97%
10
4,1543
3,4500
0,7043
17,61%
11
4,4986
4,0000
0,4986
12,46%
12
1,1073
1,0000
0,1073
2,68%
Medie
4,2779
4,0583
0,2707
6,77%
Risulta immediato verificare che la misura che utilizza tutte le componenti
dell’immagine permetta una più accurata aderenza al giudizio del campione, con
un errore medio percentuale del 6,77% anziché del 7,45%.
In entrambe le tabelle sono mostrati gli errori assoluti e percentuali delle singole
immagini e vengono evidenziate in rosso le immagini che hanno prodotto l’errore
più evidente. Si noti come nella prima tabella l’errore massimo superi il 22% (che in
termini di valutazione significa uno scarto di quasi un voto sulla scala discreta: infatti
le valutazioni possibili erano cinque, distanziate pertanto di 0,25 l’una dall’altra).
Un soddisfacente miglioramento si apprezza nel massimo errore riscontrato con la
seconda metrica, con un 18% sul campione numero 3.
Da un’analisi accurata dei dati ricavati dal primo test, sono stati estrapolati tre dati
significativi:
1) la misura SSIM, non sembra fornire dati particolarmente più accurati rispetto
ad un tradizionale PSNR, almeno, non abbastanza da giustificare un calcolo
così complesso;
~ 43 ~
Matteo Zagatti
2) la misura SSIM YCbCr, seppure più accurata della sola versione con
componente Y, non incrementa le prestazioni del sistema in maniera
sufficiente da giustificare i tempi di esecuzione maggiori (il calcolo infatti,
viene eseguito 3 volte anziché una soltanto);
3) gli errori assoluti, presentati dalle misurazioni SSIM, sono sempre in eccesso,
sembra pertanto plausibile, poter tarare meglio il sistema per ottimizzare
questo scarto e ridurre l’errore medio.
Prima di procedere ad una seconda implementazione, si è ritenuto opportuno
condurre una seconda fase di test, impiegando un’immagine diversa, per evitare di
trarre conclusioni che derivassero dalla specificità della prima immagine di test e
per ovviare alla possibilità che alcune delle considerazioni emerse derivassero dal
“caso particolare”. Dalla letteratura infatti, era emerso un errore medio del PSNR
ben più elevato di quello riscontrato nei test.
3.3Seconda fase di test: ocean.bmp
La seconda immagine originale utilizzata, presenta al contrario della prima, una
certa uniformità cromatica, alternando zone ad alta frequenza (onde e nuvole) a
zone caratterizzate da tinte uniformi (bassa frequenza), come il cielo.
~ 44 ~
Test a campione
Si tratta ancora una volta di una bitmap, in formato RGB con 8 bit di profondità per canale,
con una risoluzione di 768 x 512 pixel.
All’immagine (numero 10) è stato applicato un filtro di blurring, pertanto gli oggetti
sono ancora ben riconoscibili, ma mancano i dettagli tipici delle alte frequenze.
~ 45 ~
Matteo Zagatti
L’immagine numero 12 è caratterizzata da una evidente distorsione JPEG, applicata alla metà di
destra, si possono notare effetti di blokiness e color bleeding.
Il campione interpellato, le modalità di somministrazione e l’elaborazione dei dati
ottenuti, sono rimasti i medesimi della prima fase di test. Di seguito riportiamo le
tabelle di risultati del PSNR, della SSIM Y (sola componente luminanza) e della
SSIM YCbCr (con componenti di crominanza).
Immagine
numero
PSNR (dB)
PSNR
convertito
MOS
Errore
assoluto
Errore %
1
2
3
4
5
6
7
8
9
10
11
12
38,6856
37,9696
40,7346
41,1403
11,5967
34,9734
41,1154
27,9111
40,4272
38,1971
24,9365
37,4561
5,0000
5,0000
5,0000
5,0000
1,0000
4,0000
5,0000
3,0000
5,0000
5,0000
2,0000
5,0000
3,2500
3,5000
3,7000
3,7000
1,0000
2,6000
3,8000
3,0500
4,2500
3,4000
1,8000
3,4500
1,7500
1,5000
1,3000
1,3000
0,0000
1,4000
1,2000
0,0500
0,7500
1,6000
0,2000
1,5500
43,75%
37,50%
32,50%
32,50%
0,00%
35,00%
30,00%
1,25%
18,75%
40,00%
5,00%
38,75%
Medie
34,5953
4,1667
3,1250
1,0500
26,25%
~ 46 ~
Test a campione
Questo secondo test, ha rivelato pesantissimi limiti del PSNR, come ci si aspettava:
l’errore medio supera il 25% (che corrisponde ad un voto intero su scala MOS) e,
nonostante permangano alcuni rari casi di corrispondenza completa del MOS con il
PSNR calcolato, emerge l’inefficacia di questo indice statistico nella previsione del
giudizio soggettivo del pubblico.
Il caso peggiore supera il 43% di errore, e sono molti i casi oltre il 30%, mitigati
appunto da sporadici elementi vicini allo 0%.
Immagine
numero
SSIM Y
MOS
Errore
assoluto
Errore %
1
4,2900
3,2500
1,0400
26,00%
2
4,4200
3,5000
0,9200
23,00%
3
4,4448
3,7000
0,7448
18,62%
4
4,5724
3,7000
0,8724
21,81%
5
1,0636
1,0000
0,0636
1,59%
6
4,1080
2,6000
1,5080
37,70%
7
4,6140
3,8000
0,8140
20,35%
8
3,7832
3,0500
0,7332
18,33%
9
4,6876
4,2500
0,4376
10,94%
10
3,9948
3,4000
0,5948
14,87%
11
2,4960
1,8000
0,6960
17,40%
12
4,5216
3,4500
1,0716
26,79%
Medie
3,9163
3,1250
0,7913
19,78%
Continua a comportarsi in modo più accurato, il sistema di misura SSIM Y, con un
andamento più regolare, anche se con un errore medio che si mantiene di poco al
di sotto del 20%.
Il caso peggiore tocca un picco di errore del 37%, mentre buona parte degli altri
valori sono prossimi alla media.
~ 47 ~
Matteo Zagatti
Immagine
numero
SSIM
YCbCr
Errore
assoluto
MOS
Errore %
Segno
dell’errore
1
3,3880
3,2500
0,1380
3,45%
+
2
3,3402
3,5000
0,1598
3,99%
-
3
4,2217
3,7000
0,5217
13,04%
+
4
4,1360
3,7000
0,4360
10,90%
+
5
1,0428
1,0000
0,0428
1,07%
+
6
3,0837
2,6000
0,4837
12,09%
+
7
4,1429
3,8000
0,3429
8,57%
+
8
3,1929
3,0500
0,1429
3,57%
-
9
4,1249
4,2500
0,1251
3,13%
-
10
3,5388
3,4000
0,1388
3,47%
+
11
1,4075
1,8000
0,3925
9,81%
-
12
3,9923
3,4500
0,5423
13,56%
+
3,3010
3,1250
0,2889
7,22%
Medie
La seconda fase di test ha fornito ottimi dati sul funzionamento della metrica SSIM
YCbCr, che mantiene un errore medio percentuale del 7%, come emerso dalla prima
sperimentazione, limita l’errore massimo al 13% e si dimostra, il più aderente al
giudizio del campione.
Al termine dei due rounds di test, possiamo fugare alcune delle preoccupazioni
emerse dalla prima analisi:
1) il PSNR si è rivelato uno strumento di base pratico e di facile implementazione,
che però non sempre è in grado di prevedere con precisione il valore di MOS
atteso;
2) l’utilizzo della SSIM Y, non consente di mantenere la miglior precisione
possibile nella previsione del MOS, anche se consente una maggiore velocità
di esecuzione;
3) nella tabella che riporta i valori della SSIM YCbCr sono stati riportati
anche i segni (eccesso o difetto) degli errori rispetto al MOS; come è
possibile notare sono equamente distribuiti, impedendo di fatto di realizzare
un’ottimizzazione dei parametri per ridurre ulteriormente l’errore medio.
~ 48 ~
Capitolo 4: Applicazione al video
Per applicare le tecniche testate nei capitoli precedenti, alla misurazione della qualità
percepita in campo video, si è reso necessario adattare l’algoritmo di calcolo della
similarità strutturale per la valutazione di una sequenza di immagini, anziché di un
singolo fotogramma; è stato inoltre necessario estrapolare dal flusso video l’intera
sequenza dei fotogrammi che lo compongono.
In pratica, il metodo più semplice ed intuitivo per estendere le considerazioni fin qui
effettuate nell’ambito delle immagini statiche, anche all’utilizzo per la valutazione
della qualità di filmati, è proprio quello di applicare ad ogni immagine (frame) dei
video, originale e “corrotto”, lo stesso algoritmo, di porre i risultati su un grafico e
di restituire il valore medio, come misura della similarità strutturale video, o videoSSIM.
4.1Prima fase di test video: street.mpg
I primi test sono stati effettuati da una sequenza video originale della durata di 20”,
ripresa con una fotocamera digitale in formato NTSC, con risoluzione 720*480
(4/3), a 30 frames al secondo, per un totale quindi di 600 frames. La fotocamera
comprime il filmato secondo lo standard MPEG2 a 9000 kbps (qualità DVD-video).
La scena riprende una strada di campagna, con automobili che passano in entrambe
le direzioni; in principio la ripresa è fissa, poi inizia ad inseguire il passaggio di
un’auto in passaggio: quindi c’è una prima parte che possiamo considerare “statica”
ed una seconda particolarmente “dinamica”. La sequenza originale, privata del
canale audio, occupa circa 23000 kB.
Le sequenze di test sono state ottenute comprimendo il filmato originale in formato
Xvid, Divx ed MPEG1, a diverse bitrates, per verificare l’efficacia degli algoritmi
e la risposta della metrica implementata. In ogni compressione, framerate e
risoluzione dei frames sono stati lasciati invariati, agendo soltanto sull’algoritmo di
~ 49 ~
Matteo Zagatti
compressione e sulla bitrate.
La prima sequenza di test è una compressione dell’originale in Xvid, realizzata
utilizzando il profilo high-quality proposto dallo standard, che prevede una bitrate
di 4200 kbps, quindi meno della metà rispetto all’originale: infatti il file risultante
è di circa 10700 kB. Riproducendo il file, si ha un’impressione di qualità molto
prossima a quella della sequenza originale, gli oggetti, sia statici che in movimento,
non danno impressione di blockiness o di jerkiness.
La seconda sequenza di test utilizza lo stesso codec (Xvid), ma un profilo di qualità
media, con una bitrate di 2550 kbps, fornendo quindi un filmato di dimensioni 6500
kB. La qualità percepita ad occhio nudo è leggermente inferiore rispetto a quella del
primo test, alcuni impairments cominciano a presentarsi nelle aree ad alta frequenza
e nelle zone in movimento, ciononostante la qualità media della sequenza rimane
elevata.
Per concludere le valutazioni sul codec Xvid, la terza sequenza è stata ottenuta
selezionando il profilo low-quality offerto dallo standard, con una bitrate di 1500
kbps ed una dimensione del file di circa 3950 kB. La qualità di questo terzo filmato è
inficiata dalla presenza di artifacts di varia natura, dalla blockiness al color bleeding,
pur mantenendo gran parte della “semantica” del filmato originale.
Verifichiamo ora la valutazione automatica del sistema, che confronterà una per
una, queste tre sequenze video con quella originale, assegnando ad ogni frame un
punteggio su scala MOS (da 1 a 5), realizzando un grafico che esprime l’andamento
della qualità nel corso della sequenza.
Nelle pagine seguenti mostriamo il grafico della qualità percepita, come calcolato
dall’algoritmo (linea continua) ed il valore medio (linea tratteggiata), utilizzato
come misura generale della qualità del video, rispettivamente per l’algoritmo Xvid
ad alta, media e bassa qualità.
~ 50 ~
Applicazione al video
~ 51 ~
Matteo Zagatti
Mostriamo infine un raffronto fra le misure della video-SSIM, fra le sequenze Xvid
ad alta qualità (linee di colore blu) e bassa qualità (linee di colore rosso).
~ 52 ~
Applicazione al video
Come si può notare l’andamento generale delle due curve è simile, in un qualche
modo risultano traslate l’una rispetto all’altra, proprio della stessa distanza a cui si
trovano le rispettive medie: la qualità media dell’Xvid di alto profilo risulta di 4.337
mentre per il profilo basso è di poco inferiore a 4 (3.998).
Passiamo ora ad analizzare le sequenze compresse con codec Divx: la prima, ha una
bitrate di circa 1400 kbps (di poco inferiore al profilo low-quality usato per l’Xvid),
pertanto, produce un file di 3500 kB. Confrontandolo con l’andamento del filmato Xvid di basso profilo, anche in virtù
della bitrate leggermente inferiore, il codec Divx risulta di maggior efficacia per
questa specifica sequenza, in quanto mantiene una media leggermente superiore
rispetto all’Xvid (4.043 anziché 3.998). Si tratta comunque di differenze quasi
impercettibili ad occhio nudo, anche tenendo conto che si tratta di algoritmi di
compressione molto simili fra loro.
~ 53 ~
Matteo Zagatti
La seconda sequenza ottenuta dal codec Divx è compressa usando solo 270 kbps,
producendo un filmato di soltanto 690 kB.
Nella figura sottostante notiamo subito come la curva sembri meno “frastagliata”,
pur mantenendo un andamento generale simile alle precedenti, non è soltanto
traslata fino alla qualità media di 3.573, ma la differenza sostanziale sta piuttosto
nella regolarità e nella mancanza di picchi, come se l’algoritmo non potesse più
rispondere in modo reattivo alla necessità di qualità imposte dalla variazione della
scena.
Vediamo invece nella pagina seguente il grafico ottenuto per la sequenza compressa
in MPEG1, con bitrate di 500 kbps, quasi il doppio rispetto al precedente Divx.
~ 54 ~
Applicazione al video
Andiamo infine a confrontare i grafici di Divx a 270 kbps (in blu) ed MPEG1 a
500kbps (in rosso).
~ 55 ~
Matteo Zagatti
Le due curve rimangono molto vicine fra loro, nonostante l’enorme differenza di
bitrates, proprio in virtù della maggiore efficacia della compressione Divx rispetto
all’MPEG1. Si noti inoltre la regolarità dei picchi nel grafico dell’MPEG1, a qualità
pressoché massima, in corrispondenza dei frames di risincronizzazione.
4.2Seconda fase di test video: cars.mpg
Il secondo filmato utilizzato per il test della metrica VSSIM, è uno frammento di
24” estratto dal DVD del film di animazione Disney Pixar “Cars”, in formato PAL,
con risoluzione 720*576 (16/9), a 25 frames al secondo, per un totale quindi di 600
frames, come nel primo caso analizzato.
Come per il primo file, l’originale è un MPEG2 a 9000 kbps; la scena ritrae sia
oggetti statici, che dettagli in veloce movimento.
Le sequenze di test analizzate sono, come per la prima fase di test, versioni
compresse in Xvid, Divx ed MPEG1, a diversi livelli di qualità, sempre mantenendo
fissa la risoluzione dei frames ed il numero di frames al secondo, agendo solo sulle
bitrates.
I primi files analizzati sono risultato della compressione Xvid rispettivamente ad
alta qualità (4200 kbps), media qualità (2550 kbps) e bassa qualità (1500 kbps),
nelle pagine seguenti vediamo i corrispondenti grafici della VSSIM.
Utilizzando il valore medio come indicazione di massima della qualità riscontrata,
notiamo che la qualità di queste sequenze è rispettivamente di 4.2, di 3.9 e di 3.7 su
scala MOS.
I grafici successivi mostrano i risultati dell’analisi delle sequenze compresse in
Dixv a bassa qualità (660 kbps), Windows Media Video di bassa qualità (WMV a
738 kbps) ed MPEG1 a bassa qualità (915 kbps), procederemo poi a confrontare e
commentare i risultati.
~ 56 ~
Applicazione al video
~ 57 ~
Matteo Zagatti
~ 58 ~
Applicazione al video
~ 59 ~
Matteo Zagatti
Possiamo notare che Divx e WMV ottengono risultati comparabili, con una media
intorno al 3.3, mentre l’MPEG1 si attesta su un valore medio di 3.5.
Tenendo conto della maggiore bitrate concessa all’MPEG1, siamo consapevoli
dell’inferiorità assoluta di questo algoritmo rispetto agli altri due, ma, unendo
questi risultati con quelli emersi dalla prima fase di test, possiamo trarre indicazioni
più generali: in questa seconda sequenza, l’MPEG1 ottiene risultati comparabili
agli altri algoritmi, senza necessità di una bitrate doppia, quindi probabilmente,
si adatta maggiormente alla compressione delle forme e colori artificiali tipici
dell’animazione, o alla particolare scena di questa sequenza, piuttosto che allo
scenario di immagini naturali scelto per la prima.
Per quanto riguarda l’inviluppo delle curve notiamo che l’andamento generale è
costante per ogni algoritmo, anche se, come per il caso precedente, il Divx ha una
struttura più regolare, mentre l’MPEG1 ha un’elevatissima variabilità. I picchi di
qualità massima, si presentano però con meno frequenza, inframezzati da picchi di
qualità intermedia (intorno al valore 4 della scala MOS).
~ 60 ~
Applicazione al video
Nel grafico sottostante visualizziamo il confronto fra WMV, rappresentato in blu
ed MPEG1 in rosso. Proponiamo inoltre un grafico riassuntivo per le due sequenze
analizzate, con una panoramica sulle qualità medie riscontrate nei vari algoritmi.
~ 61 ~
Matteo Zagatti
Possiamo notare la qualità decrescente registrata con la diminuzione delle bitrates,
con una risalita nel caso dell’MPEG1 solo in virtù della doppia bitrate utilizzata in
quel caso, rispetto al Divx o WMV di bassissima qualità.
Registriamo inoltre una qualità generale inferiore nella codifica della sequenza
“Cars.mpg”, dovuta probabilmente alla maggior quantità di dettagli e colori rispetto
a “Street.mpg”. Dal confronto diretto fra codec Xvid e Divx, a bitrate molto simili
(1500 e 1400 kbps rispettivamente), possiamo inoltre notare come questi algoritmi
si adattino in maniera diversa alle due sequenze, con una migliore prestazione
del Divx per la prima ed una notevole differenza a favore dell’Xvid invece per la
seconda (colonne 4 e 5 del grafico).
4.3Aspetti critici delle prime fasi di test
Questa prima fase di test, pur rispondendo alle aspettative, non ha fornito dati che
tenessero in considerazione aspetti legati al mascheramento temporale.
È noto infatti, che la qualità media percepita dall’occhio umano, durante la visione
di una sequenza video, non sia legata solamente alla qualità dei singoli frames
riprodotti, ma dipenda anche dalla velocità di cambiamento della scena.
Ad esempio, oggetti in veloce movimento, necessitano di una definizione minore di
oggetti in ripresa statica. Per affinare ulteriormente la previsione sulla qualità percepita,
si è reso pertanto necessario elaborare ad integrare nel sistema di misurazione videoSSIM, un algoritmo di estrazione e calcolo dei motion vectors, cioè di quei vettori che
indicano lo spostamento di blocchi di pixel fra un frame ed il successivo.
I motion vectors, sono usati dagli algoritmi di codifica e decodifica per esprimere
frames successivi in termini “differenziali” anziché inviare i frames nella loro
interezza. Sono pertanto un buon indicatore della quantità di moto presente
nella scena. Calcolando i motion vectors relativi alle due sequenze in esame e
confrontandoli, è pertanto possibile migliorare la risposta del sistema al fenomeno
del mascheramento temporale.
Nel capitolo successivo, analizzeremo nel dettaglio il metodo utilizzato per la
ricerca dei motion vectors ed il loro utilizzo nel sistema video-SSIM.
~ 62 ~
Capitolo 5: Motion vectors video-SSIM
5.1 Utilizzo dei motion vectors nella
compressione video
Nel primo capitolo abbiamo accennato all’utilizzo di frames di tipo differenziale P o
B come parte del meccanismo di compressione. Per la costruzione di questi frames,
lo strumento principale è l’utilizzo dei motion vectors: per ogni macroblocco di
un frame, in un suo intorno di dimensione prefissata, viene cercata la posizione
in cui il macroblocco si è spostato all’interno dei frames successivi o precedenti.
Come già accennato i frames di tipo P utilizzano la sola predizione in avanti, cioè
si basano sul più recente frame di tipo I, codificato in modo indipendente; in modo
differente i frames B sono costruiti con predizione bidirezionale, basandosi sui più
vicini frames I e P, precedenti o successivi ad essi.
Nell’immagine successiva diamo un esempio di codifica che utilizza frames I
(indipendenti), P (predetti) e B (bidirezionali).
~ 63 ~
Matteo Zagatti
Nella parte alta dell’immagine è evidenziato il meccanismo di predizione in avanti,
“forward prediction”, mentre nella parte sottostante, la tecnica di “bidirectional
prediction”, in entrambe le direzioni. Risulta evidente che per la codifica/decodifica
dei frames B è necessario attendere dati provenienti dall’elaborazione di frames
successivi, tramite meccanismi di bufferizzazione.
Nell’immagine successiva sono visualizzati i motion vectors calcolati per i
macroblocchi che compongono il frame, utilizzati per la predizione del successivo.
Possiamo notare come oggetti di grandi dimensioni, spostandosi in modo rigido,
creino aree di motion vectors paralleli.
La necessità di introdurre considerazioni riguardanti i motion vectors, nella metrica
video-SSIM, si è scontrata con il bassissimo grado di standardizzazione nel loro
utilizzo, dovuto alla flessibilità dei diversi algoritmi di compressione, oltre che con
l’elevata difficoltà di estrazione di queste informazioni dai filmati compressi, in
quanto come sappiamo, i diversi standard posizionano diversamente le informazioni
nello stream video.
~ 64 ~
Motion vectors video-SSIM
Per ovviare contemporaneamente ad entrambe le problematiche, si è preferito
ricavare i motion vectors direttamente dai frames già estratti per il calcolo della
video-SSIM: anziché estrapolare queste informazioni dai video compressi, cercare
di “allineare” i dati, per confrontare solo motion vectors destinati a frames dello
stesso tipo ed ottenere probabilmente risultati frammentari, si è preferito aggredire
il problema dal fronte diametralmente opposto, cioè dai frames, calcolando i motion
vectors come se si trattasse di un’intera sequenza di frames P.
Per fare questo si è scelto uno fra gli algoritmi di ricerca per motion estimation
attualmente più diffusi nella codifica video, l’ARPS (Adaptative Root Pattern
Search), molto efficace e performante, che prevede una prima fase di ricerca
del miglior punto di partenza, per dare poi il via alla seconda fase, chiamata di
affinamento, o ricerca locale.
Per ciascuna delle sequenze video analizzate nel capitolo precedente, i dati emersi
dalla ricerca dei motion vectors sono stati memorizzati per la fase successiva,
cioè quella di confronto con il calcolo degli stessi motion vectors, effettuato sulla
sequenza originale. Dal confronto dei motion vectors dei frames corrispondenti nel
video originale ed in quello da valutare, è stato ricavato un indice di fedeltà con
valori compresi fra zero ed uno. Il valore massimo, viene raggiunto qualora ogni
motion vector venga codificato esattamente allo stesso modo nelle due sequenze,
mentre il valore minimo viene assegnato nel caso in cui tutti i motion vectors,
analizzati nella sequenza di test, abbiano direzione e modulo opposti all’originale.
Mostriamo ad esempio, nella pagina seguente, l’andamento degli indici ricavati da
questa analisi per il video “Street” in formato Xvid ad alta qualità: notiamo come
l’indice di aderenza dei motion vectors non scenda mai sotto lo 0,9.
~ 65 ~
Matteo Zagatti
Vediamo ora invece il grafico corrispondente alla versione MPEG1 della stessa
sequenza video, gli indici relativi ad i motion vectors in questo caso raggiungono
minimi dello 0,82 oltre ad essere meno regolari dei precedenti.
~ 66 ~
Motion vectors video-SSIM
Applicando queste informazioni al calcolo della video-SSIM, usando gli indici di
movimento a prodotto con i valori ottenuti dall’analisi frame-a-frame otterremo
perciò misure più basse di quelle registrate in precedenza e tanto più distanti quanto
più bassi saranno i relativi motion indexes.
In pratica, qualora tutti i motion vectors analizzati corrispondano a quelli della
sequenza originale, la misura della video-SSIM e della MVV-SSIM (motion vector
video SSIM) forniranno il medesimo risultato, in tutti gli altri casi, i motion indexes
ridurranno i valori di qualità dei frames calcolati in precedenza.
Ovviamente, qualora i motion indexes siano prossimi all’unità, otterremo un
andamento generale simile a quello già mostrato, mentre, in caso di indici più bassi,
come ad esempio nell’MPEG1, la curva di qualità percepita verrà modificata e
rimodellata dagli specifici valori ricavati dai motion vectors.
Nelle porzioni di video caratterizzate da maggiore staticità ci aspettiamo migliore
aderenza dei motion vectors e valori più bassi in caso di elevata compressione,
nelle parti di sequenza ad elevata quantità di moto: i grafici relativi a “Street.mpg”
rispondono a questa previsione.
5.2 Analisi delle sequenze video con la metrica
MVV-SSIM
Nella pagina seguente sono riportati i grafici di qualità percepita secondo la nuova
metrica MVV-SSIM, evidenziando l’apporto fornito dal calcolo dei motion vectors
e la differenza rispetto ai risultati precedenti.
~ 67 ~
Matteo Zagatti
Relativamente alla sequenza “Cars.mpg” visualizziamo il confronto fra i motion
indexes di Xvid high quality ed MPEG1 low quality.
~ 68 ~
Motion vectors video-SSIM
Mostriamo inoltre come l’utilizzo della nuova metrica modifichi la qualità versione
in MPEG1 per entrambe le sequenze.
~ 69 ~
Matteo Zagatti
Il seguente grafico mostra l’applicazione della nuova metrica MVV-SSIM alle
sequenze analizzate nel capitolo precedente.
Notiamo come la qualità riscontrata sia nettamente inferiore rispetto a quanto
evidenziato dalla sola metrica v-SSIM e quanto, la diminuzione della valutazione
sia maggiore per i codecs a maggiore compressione (minore bitrate).
Come nel caso della v-SSIM, gli algoritmi di codifica producono risultati migliori
sul filmato “Street.mpg” piuttosto che su quello “Cars.mpg”, come in precedenza, i
filmati compressi a livelli decrescenti di bitrate in Xvid creano una scala di qualità
discendente piuttosto regolare, mentre si registrano pesanti cali delle prestazioni
per il codec Divx.
Ricordiamo che, per quanto riguarda il filmato “Street.mpg” ad una bitrate di circa
1400-1500 kbps, il filmato in Divx produceva una qualità migliore di quello in Xvid,
mentre ora, nelle colonne 4 e 5 dell’istogramma registriamo una lieve inversione
di tendenza. Ciò significa che la diminuzione della qualità media del filmato in
Divx a bassa qualità, sarà stata decisamente superiore di quella subita dall’Xvid, nel
passaggio dalla metrica v-SSIM a quella MVV-SSIM.
~ 70 ~
Motion vectors video-SSIM
Visualizziamo infine il confronto fra le due metriche presentate per poter meglio
apprezzare queste variazioni.
Le barre a colorazione piena rappresentano i risultati dell’analisi MVV-SSIM sulle
due sequenze codificate con i codec proposti, mentre le barre sovrapposte ad esse,
con colorazione in trasparenza maggiore, sono i precedenti valori, calcolati sugli
stessi stream video ad opera della v-SSIM, possiamo così verificare quali sono
i codec e le bitrates che soffrono maggiormente di distorsioni in fatto di motion
vectors.
5.3 Conclusioni
Dal quadro d’insieme possiamo estrapolare alcune informazioni importanti: nella
sequenza “Cars.mpg”, dove la quantità di movimento è ridotta, tutte le compressioni
subiscono distorsioni di motion indexes e di conseguenza riduzioni della qualità
medio-basse; situazione diversa ha creato la sequenza “Street.mpg”, specie per
l’algoritmo Divx a bassa qualità.
~ 71 ~
Matteo Zagatti
In generale appare evidente che il video “Cars.mpg” abbia messo a dura prova
i codecs sotto il profilo della compressione dei frames, producendo già valori di
qualità percepita relativamente bassi, prima ancora di introdurre la metrica che
si avvale dei motion vectors; al contrario, il video “Street.mpg”, produce frames
compressi di qualità medio-alta, ma stressa i codecs a bitrates minori sotto il profilo
della quantità di moto e quindi di aderenza dei motion vectors, a causa della velocità
degli oggetti in movimento in esso contenuti.
Le metriche presentate hanno risposto alle aspettative, in particolare la MVV-SSIM,
incorporando sia le considerazioni di carattere spazio-frequenziale, ricavate dalla
teoria della SSIM, che le proprietà di tipo temporale, estratte dall’analisi dei Motion
Vectors, rappresenta un ottimo traguardo nella costruzione di una metrica di qualità
percepita.
La metrica è ulteriormente affinabile, ad esempio possono essere introdotte
considerazioni legate alla Motion Compensation, per aumentare il grado di
aderenza della qualità misurata a quella percepita dall’osservatore, a carico però di
un notevole incremento della complessità computazionale.
~ 72 ~
Capitolo 6: Conclusioni
Il progetto di realizzazione di un sistema per l’analisi della qualità percepita in
sequenze video, è stimolante ed interessante sotto molteplici aspetti: è un problema
relativamente recente, ci sono molteplici punti di vista e quindi direzioni intraprese
per la sua soluzione, si propone di rispondere ad un’esigenza affatto banale e
coinvolge numerosi aspetti tecnici e non.
Lo stato dell’arte delle metriche già presenti sul mercato è in continua evoluzione,
ma si è ancora lontani da una standardizzazione, al punto che, gran parte degli articoli
sull’argomento, terminano con la lista di ciò che ci si prefigge di implementare,
nelle le successive versioni delle metriche di cui trattano.
Il sistema di misura realizzato, basato sulla Structural Similarity Index Metric, prima
per immagini statiche e poi esteso, con accorgimenti temporali, alla qualità video
percepita, è uno strumento efficace e versatile: bastano pochi minuti per modificare
i parametri richiesti ed i pesi attribuiti alle proprietà delle sequenze che si preferisce
evidenziare (luminosità, contrasto, struttura, movimento ecc. ).
La scelta di MATLAB, come ambiente di sviluppo, è nata principalmente dalla
forte integrazione del sistema con le risorse multimediali: facilità di importazione,
gestione e salvataggio di immagini e video e, non ultima, la produzione di grafici per
l’analisi riassuntiva di dati, altrimenti di difficile interpretazione. Resta beninteso
che gli stessi algoritmi implementati in questo linguaggio siano riproducibili in
altri, di maggiore efficienza, è nota la somiglianza per molti versi, del linguaggio
MATLAB con il C, ma si è preferito, in questa dissertazione, porre l’accento sul
“cosa” fare, piuttosto che sul “come”.
La parte implementativa è stata più che altro, un metodo di verifica delle assunzioni
teoriche fatte, per valutare se e in che misura, le scelte concettuali, avessero riscontro
nell’uso della metrica e fossero realizzabili.
~ 73 ~
Matteo Zagatti
Da quanto emerso dalla sperimentazione nell’utilizzo della metrica, c’è una forte
corrispondenza fra qualità percepita, intesa come misura espressa dalla MVV-SSIM
(Motion Vectors Video SSIM) e la bitrate utilizzata per la codifica, a parità di codec,
o quantomeno di “famiglia” di codec, mentre questa relazione viene a mancare,
qualora si confrontino algoritmi di compressione differenti.
Selezionando un buon bouquet di video originali, caratterizzato da scene a bassa
quantità di movimento, altre con maggiore dinamicità, sequenze contraddistinte
da un grande numero di dettagli e colori ed altre invece con grandi elementi
monocromatici, è pertanto possibile realizzare una misurazione della bontà di un
algoritmo di codifica specifico.
Fissando invece una bitrate, ed applicando codecs diversi alle stesse sequenze
di riferimento, è invece immediato confrontarne le capacità risultanti, dando una
misura delle rispettive qualità video percepite.
La necessità di non basare il giudizio, riguardante un determinato codec, soltanto su
una sequenza di esempio, deriva dal fatto che taluni algoritmi sono particolarmente
predisposti a codificare certi tipi di filmati e sono molto efficaci a ben determinate
bitrates: per poter creare una panoramica sulle peculiarità di questi codecs pertanto,
è necessario scegliere una buona base di sequenze video originali ed effettuare la
sperimentazione a diversi livelli di bitrates.
L’intento di questo progetto è proprio di fornire uno strumento per studi di questo
genere, prescindendo dalla specificità dell’algoritmo di compressione e tenendo in
considerazione soltanto aspetti percettivi legati alla qualità.
Il grosso limite tecnologico presentato da metriche di questo genere, è la necessità
di “confrontare” due segnali (full-reference) fornendone una misura della qualità
relativa, mentre l’occhio umano è capace di valutare la qualità assoluta di una
sequenza. Purtroppo, per poter definire metriche indipendenti dal segnale originale
sarebbe necessaria una conoscenza completa delle caratteristiche del sistema visivo,
oltre che la capacità di realizzarne un modello matematico ed implementativo
fedele.
~ 74 ~
Appendice: Codice MATLAB
delle metriche implementate
A.1. “ssim_index_ycbcr_ok.m”
function [mssim, ssim_map] = ssim_index_ycbcr_ok(imgA, imgB)
%controllo degli argomenti passati alla funzione
if (nargin ~= 2)
mssim = -Inf;
ssim_map = -Inf;
return;
end
%lettura delle immagini di imput
img1= imread(imgA);
img2= imread(imgB);
[M N] = size(img1);
if ((M < 11) || (N < 11))
mssim = -Inf;
ssim_map = -Inf;
return
end
%preparazione dei parametri
window = fspecial(‘gaussian’, 11, 1.5);
K(1) = 0.01;
K(2) = 0.03;
L = 255;
~ 75 ~
Matteo Zagatti
%conversione spazio colore
img1Y = .2989*img1(:,:,1)+.5870*img1(:,:,2)+.1140*img1(:,:,3);
img2Y = .2989*img2(:,:,1)+.5870*img2(:,:,2)+.1140*img2(:,:,3);
img1Cb = -.1687*img1(:,:,1)-.3310*img1(:,:,2)+.5000*img1(:,:,3);
img2Cb = -.1687*img2(:,:,1)-.3310*img2(:,:,2)+.5000*img2(:,:,3);
img1Cr = .5000*img1(:,:,1)-.4190*img1(:,:,2)-.0810*img1(:,:,3);
img2Cr = .5000*img2(:,:,1)-.4190*img2(:,:,2)-.0810*img2(:,:,3);
%invocazione della funzione di calcolo della SSIM
[mssimY, ssim_mapY] = ssim_index_calc_ok(img1Y, img2Y, K, window,
L);
[mssimCb, ssim_mapCb] = ssim_index_calc_ok(img1Cb, img2Cb, K,
window, L);
[mssimCr, ssim_mapCr] = ssim_index_calc_ok(img1Cr, img2Cr, K,
window, L);
%unificazione dei risultati con media pesata
mssim = mssimY*.50+mssimCb*.25+mssimCr*.25;
ssim_map = ssim_mapY*.50+ssim_mapCb*.25+ssim_mapCr*.25;
return
A.2. “ssim_index_calc_ok.m”
function [mssim, ssim_map] = ssim_index_calc_ok(img1, img2, K,
window, L)
%preparazione parametri
C1 = (K(1)*L)^2;
C2 = (K(2)*L)^2;
window = window/sum(sum(window));
img1 = double(img1);
img2 = double(img2);
~ 76 ~
Appendice
%calcolo degli indici statistici necessari
mu1
= filter2(window, img1, ‘valid’);
mu2
= filter2(window, img2, ‘valid’);
mu1_sq = mu1.*mu1;
mu2_sq = mu2.*mu2;
mu1_mu2 = mu1.*mu2;
sigma1_sq = filter2(window, img1.*img1, ’valid’) - mu1_sq;
sigma1 = sqrt(sigma1_sq);
sigma2_sq = filter2(window, img2.*img2, ’valid’) - mu2_sq;
sigma2 = sqrt(sigma2_sq);
sigma12 = filter2(window, img1.*img2, ’valid’) - mu1_mu2;
%calcolo di luminosità, contrasto e struttura
l= (((mu1.*mu2).*2)+ C1)./((mu1_sq + mu2_sq)+ C1);
c= (2.*sigma1.*sigma2 + C2)./(sigma1_sq + sigma2_sq + C2);
s= (sigma12 + C2/2)./(sigma1.*sigma2 + C2/2);
%settaggio dei pesi da attribuire alle varie proprietà
alpha = 0.25;
beta = 0.25;
gamma = 8.0;
%calcolo della ssim
ssim_map = (l.^alpha).*(c.^beta).*(s.^gamma);
mssim = real(mean2(ssim_map));
return
A.3. “psnr_ycbcr.m”
function I = psnr_ycbcr(imgA,imgB)
%lettura immagini di ingresso
img1= imread(imgA);
img2= imread(imgB);
~ 77 ~
Matteo Zagatti
%cambio del piano colore
img1Y = .2989*img1(:,:,1)+.5870*img1(:,:,2)+.1140*img1(:,:,3);
img2Y = .2989*img2(:,:,1)+.5870*img2(:,:,2)+.1140*img2(:,:,3);
img1Cb = -.1687*img1(:,:,1)-.3310*img1(:,:,2)+.5000*img1(:,:,3);
img2Cb = -.1687*img2(:,:,1)-.3310*img2(:,:,2)+.5000*img2(:,:,3);
img1Cr = .5000*img1(:,:,1)-.4190*img1(:,:,2)-.0810*img1(:,:,3);
img2Cr = .5000*img2(:,:,1)-.4190*img2(:,:,2)-.0810*img2(:,:,3);
%invocazione della funzione psnr
i_Y = psnr(img1Y,img2Y);
i_Cb = psnr(img1Cb, img2Cb);
i_Cr = psnr(img1Cr, img2Cr);
%unificazione dei risultati
I= (i_Y+i_Cb+i_Cr)/3;
return
A.4. “psnr.m”
function i = psnr (imgA,imgB)
%lettura dati di infresso
img1=double(imgA);
img2=double(imgB);
[M N] = size(img1);
%calcolo iterativo del mean square error
MSE=0.0;
for a=1:1:M
for b=1:1:N
MSE= MSE+(img1(a,b)-img2(a,b)).^2;
end
end
~ 78 ~
Appendice
%calcolo del psnr
MSE= MSE./(M*N);
arg=255^2/MSE;
i= 10*log10(arg);
return
A.5. “psnr2mos2_ycbcr.m”
function I = psnr2mos2_ycbcr(imgA,imgB)
%lettura dati di ingresso
img1= imread(imgA);
img2= imread(imgB);
%cambio del piano colore
img1Y = .2989*img1(:,:,1)+.5870*img1(:,:,2)+.1140*img1(:,:,3);
img2Y = .2989*img2(:,:,1)+.5870*img2(:,:,2)+.1140*img2(:,:,3);
img1Cb = -.1687*img1(:,:,1)-.3310*img1(:,:,2)+.5000*img1(:,:,3);
img2Cb = -.1687*img2(:,:,1)-.3310*img2(:,:,2)+.5000*img2(:,:,3);
img1Cr = .5000*img1(:,:,1)-.4190*img1(:,:,2)-.0810*img1(:,:,3);
img2Cr = .5000*img2(:,:,1)-.4190*img2(:,:,2)-.0810*img2(:,:,3);
%chiamata della funzione psnr.m
i_Y = psnr(img1Y,img2Y);
i_Cb = psnr(img1Cb, img2Cb);
i_Cr = psnr(img1Cr, img2Cr);
Idb= (i_Y+i_Cb+i_Cr)/3;
% conversione da psnr a scala mos
if Idb<20
I=1;
return
~ 79 ~
Matteo Zagatti
elseif (20<=Idb && Idb<25)
I=2;
return
elseif (25<=Idb && Idb<31)
I=3;
return
elseif (31<=Idb && Idb<37)
I=4;
return
else I=5;
end
return
A.6. “motion_estimation_analysis.m”
%settaggio dei parametri di ricerca
mbSize = 16;
p = 7;
%preparazione variabili di ritorno
...
motionVect1= zeros(2,1620,600);
...
%ricerca dei motion vector fra frames adiacenti
for i = 1:1:600
imgIFile = strcat(‘C:\video1-’,num2str(i),’.jpg’);
imgPFile = strcat(‘C:\video1-’,num2str(i+1),’.jpg’);
imgI = double(imread(imgIFile));
imgP = double(imread(imgPFile));
~ 80 ~
Appendice
%utilizzo del solo piano colore Y
imgIY = .2989*imgI(:,:,1)+.5870*imgI(:,:,2)+.1140*imgI(:,:,3);
imgPY = .2989*imgP(:,:,1)+.5870*imgP(:,:,2)+.1140*imgP(:,:,3);
%invocazione del metodo di ricerca ARPS
��������������������������������������������������������������
[motionVect1s(:,:,i), computations] = motionEstARPS(imgPY,imgI
Y,mbSize,p);
end
...
%ripetizione per tutte le sequenze da analizzare
A.7. “motionestARPS.m”
% Computes motion vectors using Adaptive Rood Pattern Search
method
% Based on the paper by Yao Nie, and Kai-Kuang Ma
% IEEE Trans. on Image Processing
% Volume 11 Number 12, December 2002 :
Pages 1442:1448
% Input
%
imgP : The image for which we want to find motion vectors
%
imgI : The reference image
%
mbSize : Size of the macroblock
%
p : Search parameter
(read literature to find what this means)
% Ouput
%
motionVect : the motion vectors for each integral macroblock
in imgP
%
ARPScomputations: The average number of points searched for a
macroblock
% Written by Aroh Barjatya
~ 81 ~
Matteo Zagatti
function [motionVect, ARPScomputations] = motionEstARPS(imgP,
imgI, mbSize, p)
[row col] = size(imgI);
vectors = zeros(2,row*col/mbSize^2);
costs = ones(1, 6) * 65537;
% The index points for Small Diamond search pattern
SDSP(1,:) = [ 0 -1];
SDSP(2,:) = [-1
0];
SDSP(3,:) = [ 0
0];
SDSP(4,:) = [ 1
0];
SDSP(5,:) = [ 0
1];
% We will be storing the positions of points where the checking
has been
% already done in a matrix that is initialised to zero. As one
point is
% checked, we set the corresponding element in the matrix to one.
checkMatrix = zeros(2*p+1,2*p+1);
computations = 0;
% we start off from the top left of the image
% we will walk in steps of mbSize
% mbCount will keep track of how many blocks we have evaluated
mbCount = 1;
for i = 1 : mbSize : row-mbSize+1
for j = 1 : mbSize : col-mbSize+1
% the Adapive Rood Pattern search starts
% we are scanning in raster order
x = j;
y = i;
costs(3) = costFuncMAD(imgP(i:i+mbSize-1,j:j+mbSize-1),
imgI(i:i+mbSize-1,j:j+mbSize-1),mbSize);
~ 82 ~
Appendice
checkMatrix(p+1,p+1) = 1;
computations =
computations + 1;
% if we are in the left most column then we have to make
sure that
% we just do the LDSP with stepSize = 2
if (j-1 < 1)
stepSize = 2;
maxIndex = 5;
else
stepSize = max(abs(vectors(1,mbCount-1)),
abs(vectors(2,mbCount-1)));
% now we have to make sure that if the point due to motion
% vector is one of the LDSP points then we dont calculate it
% again
if ( (abs(vectors(1,mbCount-1)) == stepSize &&
vectors(2,mbCount-1) == 0) || (abs(vectors(2,mbCount-1)) ==
stepSize && vectors(1,mbCount-1) == 0))
maxIndex = 5;
% we just have to check at the rood pattern 5 points
else
maxIndex = 6; % we have to check 6 points
LDSP(6,:) = [ vectors(2, mbCount-1)
vectors(1,
mbCount-1)];
end
end
% The index points for first and only Large Diamond search pattern
LDSP(1,:) = [ 0 -stepSize];
LDSP(2,:) = [-stepSize 0];
LDSP(3,:) = [ 0
0];
��������������������������
LDSP(4,:) = [stepSize 0];
LDSP(5,:) = [ 0
stepSize];
~ 83 ~
Matteo Zagatti
% do the LDSP
for k = 1:maxIndex
refBlkVer = y + LDSP(k,2);
% row/Vert co-ordinate for ref block
refBlkHor = x + LDSP(k,1);
% col/Horizontal co-ordinate
if ( refBlkVer < 1 || refBlkVer+mbSize-1 > row ||
refBlkHor < 1 || refBlkHor+mbSize-1 > col)
continue; % outside image boundary
end
if (k == 3 || stepSize == 0)
continue; % center point already calculated
end
costs(k) = costFuncMAD(imgP(i:i+mbSize-1,j:j+mbSize-1),
imgI(refBlkVer:refBlkVer+mbSize-1, refBlkHor:refBlkHor+mbSize-1),
mbSize);
computations =
computations + 1;
checkMatrix(LDSP(k,2) + p+1, LDSP(k,1) + p+1) = 1;
end
[cost, point] = min(costs);
% The doneFlag is set to 1 when the minimum
% is at the center of the diamond
x = x + LDSP(point, 1);
y = y + LDSP(point, 2);
costs = ones(1,5) * 65537;
costs(3) = cost;
doneFlag = 0;
while (doneFlag == 0)
for k = 1:5
refBlkVer = y + SDSP(k,2);
~ 84 ~
Appendice
% row/Vert co-ordinate for ref block
refBlkHor = x + SDSP(k,1);
% col/Horizontal co-ordinate
if ( refBlkVer < 1 || refBlkVer+mbSize-1 > row ||
refBlkHor < 1 || refBlkHor+mbSize-1 > col)
continue;
end
if (k == 3)
continue
elseif (refBlkHor < j-p || refBlkHor > j+p ||
refBlkVer < i-p || refBlkVer > i+p)
continue;
elseif (checkMatrix(y-i+SDSP(k,2)+p+1 ,
x-j+SDSP(k,1)+p+1) == 1)
continue
end
costs(k) = costFuncMAD(imgP(i:i+mbSize-1,j:
j+mbSize-1), imgI(refBlkVer:refBlkVer+mbSize-1, refBlkHor:
refBlkHor+mbSize-1), mbSize);
checkMatrix(y-i+SDSP(k,2)+p+1, x-j+SDSP(k,1)+p+1)
= 1;
computations =
computations + 1;
end
[cost, point] = min(costs);
if (point == 3)
doneFlag = 1;
else
x = x + SDSP(point, 1);
y = y + SDSP(point, 2);
costs = ones(1,5) * 65537;
~ 85 ~
Matteo Zagatti
costs(3) = cost;
end
end
% while loop ends here
vectors(1,mbCount) = y - i;
% row co-ordinate for the vector
vectors(2,mbCount) = x - j;
% col co-ordinate for the vector
mbCount = mbCount + 1;
costs = ones(1,6) * 65537;
checkMatrix = zeros(2*p+1,2*p+1);
end
end
motionVect = vectors;
ARPScomputations = computations/(mbCount-1) ;
A.8. “motion_index.m”
function v = motion_index (a,b)
size_a= size(a);
%calcolo delle differenze fra motion vector di due sequenze
for i=1:1:size_a(3)
diff1=0.0;
diff2=0.0;
for j=1:1:size_a(2)
diff1=diff1+abs(a(1,j,i)-b(1,j,i));
diff2=diff2+abs(a(2,j,i)-b(2,j,i));
end
v(i)= 1-((sqrt(diff1^2+diff2^2))/(size_a(2)*14*sqrt(2)));
end
~ 86 ~
Bibliografia
•
“Handbook of imag e & video processing”
di Jerry D. Gibson
ed. Al Bovik, 2000
• “Multimedia image and video processing”
di Ling Guan, Sun-Yuan Kung, Jan Larsen
ed. CRC Press, 2001
• “Handbook of image quality”
di Brian W. Keelan
ed. Marcel Dekker Inc., 2002
•
“Image quality assessment: from error visibility to structural similarity”
di Zhow Wang, Alan C. Bovik, Hamid R. Sheikh and Eero P. Simoncelli
ed. University of Texas at Austin, 2004
• “Digital video image quality and perceptual coding”
di Zhou Wang, Alan C. Bovik and Hamid R. Sheikh
ed. Marcel Dekker Inc., 2005
• “Video quality vision models and metrics”
di Stefan Winkler
ed. Wiley, 2005
• “A structural similarity metric for video based on motion models”
di K. Seshadrinathan and Alan C. Bovik
ed. University of Texas at Austin, 2006
~ 87 ~