ITUB20155295A1 - Apparatuses and methods for encoding and decoding images - Google Patents

Apparatuses and methods for encoding and decoding images Download PDF

Info

Publication number
ITUB20155295A1
ITUB20155295A1 ITUB2015A005295A ITUB20155295A ITUB20155295A1 IT UB20155295 A1 ITUB20155295 A1 IT UB20155295A1 IT UB2015A005295 A ITUB2015A005295 A IT UB2015A005295A IT UB20155295 A ITUB20155295 A IT UB20155295A IT UB20155295 A1 ITUB20155295 A1 IT UB20155295A1
Authority
IT
Italy
Prior art keywords
image
rotation
transform
information
basis
Prior art date
Application number
ITUB2015A005295A
Other languages
English (en)
Inventor
Giulia Fracastoro
Enrico Magli
Original Assignee
Torino Politecnico
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Torino Politecnico filed Critical Torino Politecnico
Priority to ITUB2015A005295A priority Critical patent/ITUB20155295A1/it
Priority to PCT/IB2016/056138 priority patent/WO2017064645A1/en
Priority to CN201680060372.0A priority patent/CN108141612B/zh
Priority to EP16791692.3A priority patent/EP3363202B1/en
Priority to US15/768,450 priority patent/US11012692B2/en
Publication of ITUB20155295A1 publication Critical patent/ITUB20155295A1/it

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2135Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

"APPARATI E METODI PER CODIFICARE E DECODIFICARE IMMAGINI”
DESCRIZIONE
CAMPO DELL INVENZIONE
La presente invenzione riguarda un metodo e un apparato per codificare e/o decodificare immagini o flussi video digitali; in particolare, si descrivono un apparato e un metodo per comprimere e decomprimere immagini o flussi video digitali per mezzo della cosiddetta trasformata discreta del coseno orientabile (SDCT, Steerable Discrete Cosine Transform).
PROBLEMA AFFRONTATO DALL’INVENZIONE
La trasformata discreta del coseno 2D (DCT) è la trasformata maggiormente utilizzata per la compressione di immagini e video a blocchi; essendo essa alla base di popolari standard di codifica video come MPEG-2 (utilizzato, ad esempio, per la diffusione terrestre e satellitare di video a definizione standard e nel formato di memorizzazione su DVD), H.264/AVC (utilizzato per la diffusione di video ad alta definizione, streaming su reti IP e nei dischi Blu-Ray), e il recentemente standardizzato H.265/HEVC (che si prevede sostituirà H.264/AVC nei suddetti scenari). Qualsiasi trasformata DCT comprende una cosiddetta componente o funzione base DC (Direct Current), che contiene la funzione base a valore costante, e componenti AC (Alternate Current), che contengono le componenti spettrali ad alta frequenza dell'immagine, ossia i dettagli.
In un tipico scenario di codifica, 1'immagine viene suddivisa in blocchi di pixel (o campioni) di forma quadrata, e quindi viene applicata la DCT a ciascun blocco (eventualmente adattando le dimensioni del blocco alle caratteristiche dell'immagine), il quale nel più semplice del casi viene poi codificato e decodificato in modo indipendente (schemi di compressione più avanzati possono comprendere la predizione dei blocchi intrafotogramma e inter-fotogrammi per migliorare ulteriormente le prestazioni del codec).
In particolare, la DCT separa 1'immagine in parti (o sottobande spettrali) aventi diversa importanza per quanto concerne la qualità visiva dell'immagine.
Ogni trasformata discreta del coseno 2D che agisce su un blocco o matrice quadrata di N x N campioni di input di un segnale bidimensionale {ad esempio, pixel di un'immagine) utilizza un insieme di vettori base le cui componenti sono coseni. Ogni base di DCT contiene gli autovettori di una matrice di ''seconda differenza" simmetrica (si veda, ad esempio, G. Strang, SIAM review, voi. 41, no. 1, pp. 135-147, 1999).
Naturalmente 1'effettiva capacità della DCT di compattare 1'energia di un segnale dipende dalla semantica della particolare immagine o blocco di immagine da codificare.I valori risultanti dalla trasformata sono generalmente chiamati coefficienti.
La 2D-DCT si compone di due trasformate 1D (unidimensionali) separabili lungo le direzioni verticale e orizzontale, che sono quindi applicate a ogni riga e colonna del blocco considerato. Per questo motivo sono preferibili immagini dominate da motivi orizzontali e verticali, le quali possono essere rappresentate in modo efficiente da questa DCT convenzionale.
Tuttavia le immagini digitali, e specialmente le immagini naturali, presentano spesso delle discontinuità di forma arbitraria; in questi casi la trasformata discreta del coseno 2D risulta inefficiente perché i coefficienti significativi non sono vincolati a un'area della matrice di coefficienti di trasformazione, e ciò comporta un bit-rate più elevato o un numero maggiore di artefatti da ricostruzione presso il decodificatore. La Fig. 18-a dimostra visivamente queste affermazioni: intorno ai bordi del tetto spiovente rappresentato sono visibili evidenti artefatti da ricostruzione.
DESCRIZIONE DELL’ARTE NOTA
In passato sono state proposte varie soluzioni per modificare 1'implementazione della 2D-DCT separabile allo scopo di incorporare nella trasformata informazioni direzionali . La DCT direzionale (DDCT) ha rappresentato un primo tentativo in questo senso, in cui la prima 1D-DCT può scegliere di seguire una direzione diversa da quella orizzontale e quella verticale, e quindi i coefficienti prodotti da tutte le trasformate direzionali durante la prima fase vengono riposizionati in modo tale che la seconda trasformata possa essere applicata a quei coefficienti che sono meglio allineati tra loro {v. B. Zeng and J. Fu, "Directional discrete cosine transforms -a new framework for image coding, " Circuits and Systems for Video Technology, IEEE Transactions on, voi. 18, no.
3, pp. 305-313, 2008). Tuttavia questo metodo presenta alcuni problemi: occorrono 1D-DCT di varia lunghezza, alcune delle quali molto brevi, con lunghezze che non sono sempre una potenza di due. In aggiunta, la seconda DCT potrebbe non essere sempre applicata a coefficienti di frequenze AC simili.
Nel campo specifico della codifica video intrafotogramma è stata proposta una trasformata direzionale dipendente dalla modalità {MDDT, Mode-Dependent Directional Transform), derivata dalla trasformata di Karhunen-Loeve (KLT) e utilizzante residui predittivi di dati video di apprendimento (v. Y. Ye and M. Karczewicz, "Improved H .264 intra coding based on bidirectional intra prediction, direct ional trans foriti, and adaptive coefficient scanning, " in Image Processing (ICIP), 2008 15th IEEE International Conference on, 2008, pp . 2116-2119) . Sono state suggerite numerose varianti e perfezionamenti della MDDT, che sfruttano la simmetria per ridurre il numero di matrici di trasformazione necessarie {v. M . Budagavi and M . Zhou, "Orthogonal MDDT and mode dependent DCT," ITU-T Q, voi. 6, 2010; H. Yang, J. Zhou, and H. Yu, "Simplified MDDT (SMDDT) for intra prediction residuai," Doc. JCTVC-B039 , MPEG-H/ JCT-VC, 2010; A. Tanizawa, J. Yamaguchi, T. Shiodera, T. Chujoh, and T. Yamakage, "Improvement of intra coding by bidirect ional intra prediction and 1 dimensionai directional unified transform, " Doc. JCTVC-B042, MPEGH/ JCT-VC, 2010) . Il principale svantaggio di questi metodi risiede nel fatto che devono essere elaborati degli insiemi di apprendimento per ottenere le trasformate ottimali per una data modalità di codifica.
Recentemente si è studiato un approccio basato su grafi anche nel campo dell'elaborazione delle immagini, e si sono sviluppate tecniche di filtraggio e trasformazione {ad esempio, la trasformata di Fourier grafica) per superare le limitazioni del processo di codifica tradizionale .
Secondo questa idea, 1'immagine può essere rappresentata come una combinazione di nodi e bordi, in cui ogni pixel è un nodo e i bordi descrivono la regione di connettività tra i pixel (v . D. Shuman, S. Narang, P. Frossard, A. Ortega, and P. Vandergheynst, "The emerging field of signal processing on graphs : Extending highdimens ional data analysis to networks and other irregular domains, " Signal Processing Magazine, IEEE, voi. 30, no. 3, pp. 83-98, 2013). Questa rappresentazione grafica consente di realizzare in modo elegante ed efficiente una trasformata sensibile alle discontinuità.
Metodi basati su blocchi che utilizzano trasformate grafiche per la codifica delle mappe di profondità sono stati proposti da A. Ortega et al. in "Edge-adaptive transforms for efficient depth map coding" {Picture Coding Symposium (PCS), 2010. IEEE, 2010, pp. 2808-2811) e "Graph based transforms for depth video coding' (Acoustics, Speech and Signal Processing (ICASSP), 2012 IEEE International Conference on. IEEE, 2012, pp. 813-816). Sebbene i risultati appaiano incoraggianti nell'ambito della codifica delle mappe di profondità, essi sono del tutto insOddisfacenti in presenza di immagini naturali non uniformi a livello di singolo blocco. Inoltre uno dei principali svantaggi delle tecniche di compressione basate su grafi risiede nel costo richiesto per rappresentare e codificare il grafo, che può superare per importanza l'efficienza di codifica ottenuta con queste nuove trasformate.
BREVE DESCRIZIONE DELL INVENZIONE
Le trasformate separabili basate su blocchi tendono ad essere inefficienti allorquando i blocchi contengono discontinuità di forma arbitraria . Quali allettanti alternative si sono recentemente esplorate alcune trasformate che incorporano informazioni direzionali.
La presente invenzione intende risolvere questo problema mettendo a disposizione un metodo e un apparato per codificare e/o decodificare immagini o flussi video digitali, i quali sono basati su una nuova trasformata direzionale, la cosiddetta trasformata discreta del coseno orientabile (SDCT, Steerable Discrete Cosine Transform) . Basando la sua definizione sulla teoria della trasformata di grafo di un grafo a griglia, la SDCT si ottiene modificando 1'orientamento della base della 2D-DCT. In funzione della semantica dell'immagine da codificare, la SDCT permette una precisa corrispondenza di direzionalità in ogni blocco dell'immagine, in modo da ottimizzare le prestazioni di codifica dell'intero sistema di codifica e decodifica.
La catena di codifica proposta consente di ottenere un significativo miglioramento delle prestazioni rispetto alla DCT convenzionale. Inoltre la struttura matematica su cui si basa la DCT orientabile permette di generalizzare la trasformata a pattern di orientamento più complessi di una singola rotazione pura.
BREVE DESCRIZIONE DEI DISEGNI
La Figura 1 mostra uno schema a blocchi di un sistema di codifica-decodifica di immagini di riferimento secondo 1'arte nota.
La Figura 2 illustra una funzione base della DCT bidimensionale per un blocco di N X N campioni, con N = 8 in a) e N = 4 in b).
La Figura 3 mostra un grafo lineare (a), un grafo a griglia (b) e un grafo quadrato (c).
La Figura 4 mostra i vettori base della 2D-DCT di Fig. 2(a), dove sono evidenziati i due corrispondenti autovettori con autovalore di molteplicità 2.
La Figura 5 mostra i vettori base della 2D-DCT di Fig. 2(a), dove sono evidenziati gli N-l autovettori, ossia 7 nel presente esempio per N = 8, corrispondenti a λ - 4.
La Figura 6 mostra i vettori base della 2D-DCT di Fig. 2 (a), dove sono evidenziati gli N - 1 autovettori corrispondenti agli autovalori con molteplicità 1.
La Figura 7 illustra una trasformata discreta del coseno orientabile (SDCT) , in cui ogni componente della DCT convenzionale è stato ruotato di 45 ° (gradi sessagesimali) .
La Figura 8 mostra uno schema a blocchi di un apparato di codifica e decodifica di immagini di riferimento secondo la nuova trasformata discreta del coseno orientabile SDCT .
La Figura 9 mostra uno schema a blocchi dei passi di codifica associati alla trasformata discreta del coseno orientabile SDCT secondo la presente invenzione.
La Figura 10 mostra uno schema a blocchi che illustra a titolo esemplificativo uno dei possibili metodi per individuare 1'angolo ottimale Θ, dato un insieme di N angoli tra 0 e 90 gradi sessagesimali.
La Figura 11 mostra uno schema a blocchi dei passi di decodifica associati alla trasformata discreta del coseno orientabile inversa ISDCT secondo la presente invenzione.
La Figura 12 mostra un esempio di un possibile approccio alla lettura e alla suddivisione in sottobande di una SDCT. I passi prevedono di {a-b) leggere metà del blocco seguendo un ordine a zig-zag, (c) dividere i coefficienti ordinati in un determinato numero di sottobande (quattro nell'esempio in figura).
La Figura 13 rappresenta una delle immagini di prova utilizzate per gli esperimenti.
La Figura 14 mostra una prova comparativa tra DCT e SDCT con diverse quantizzazioni angolari (4, 16, 128) in funzione del PSNR e del numero di coefficienti conservati .
La Figura 15 mostra una prova comparativa, in funzione dei coefficienti conservati e del PSNR, effettuata tra DCT e SDCT variando le dimensioni dei blocchi alla base del processo di codifica/decodifica: a) dimensioni blocco 4x4, b) dimensioni blocco 8x8, e c) dimensioni blocco 16x16.
La Figura 16 mostra un tipico schema a blocchi di un processo di compressione video che utilizza la SDCT.
La Figura 17 mostra un tipico schema a blocchi di un processo di decodifica video che utilizza la ISDCT.
La Figura 18 mostra un particolare dell'immagine di prova di Fig. 13 ricostruita con la DCT (a) e con la SDCT (b) utilizzando blocchi 8x8.
La Figura 19 mostra una prova comparativa, in funzione dei coefficienti conservati e del PSNR, tra SDCT e SDCT a 4 sottobande.
La Figura 20 mostra un'immagine campione (a) e i valori di pixel corrispondenti (b).
La Figura 21 mostra i coefficienti DCT dell'immagine campione di Fig. 20 sia in forma grafica (a) e in forma numerica (b). I diversi valori numerici sono rappresentati con diversi livelli di grigio.
La Figura 22 mostra i coefficienti SDCT dell'immagine campione di Fig. 20 sia in forma grafica (a) sia in forma numerica (b). I diversi valori numerici sono rappresentati con diversi livelli di grigio.
La Figura 23 mostra le immagini ricostruite della corrispondente immagine campione di Fig . 20, rispettivamente con la trasformata SDCT {a) e con la trasformata DCT (b).
DESCRIZIONE DETTAGLIATA DELL INVENZIONE
Nella presente descrizione, qualsiasi riferimento a "ima forma di realizzazione" indica che una particolare configurazione, struttura o caratteristica descritta in merito all'implementazione dell'invenzione è compresa in almeno una forma di realizzazione. Quindi 1'espressione "in una forma di realizzazione " e altre espressioni simili, eventualmente presenti in parti diverse della presente descrizione, non riguarderanno necessariamente tutte la stessa forma di realizzazione. Inoltre qualsiasi particolare configurazione, struttura o caratteristica potrà essere combinata con altre in una o più forme di realizzazione nel modo ritenuto più appropriato. I riferimenti che seguono sono quindi utilizzati unicamente per semplicità descrittiva, senza limitare 1'ambito di protezione o l'estensione delle varie forme di realizzazione
Per semplicità, se non diversamente specificato, la descrizione che segue farà riferimento a un'immagine a scala di grigi; tuttavia, tutte le forme di realizzazione sono ugualmente applicabili alle componenti colore di immagini o video mediante elaborazioni ben note in letteratura, come ad esempio il sottocampionamento delle componenti colore, la variazione degli spazi colore, ecc.
La Fig . 1 mostra un tipico processo di codifica/decodifica di immagini digitali. Occorre notare che numerose altre operazioni possono avere luogo nel codificatore 100 e nel decodificatore 110, ma la presente descrizione mira unicamente a illustrare in modo esemplificativo le unità principali di un apparato codificatore di immagini.
Con riferimento alla Fig. 1, un apparato codificatore 100 per comprimere immagini digitali basato su codifica video ibrida comprende fondamentalmente un'unità di trasformazione 101, un quantizzatore 102 e un codificatore entropico 103.
1/unità di trasformazione 101 riceve in ingresso un'immagine o un blocco di immagine da codificare e la converte in un dominio di frequenza utilizzando una trasformata specifica. Nei più comuni standard come JPEG, la trasformata utilizzata dall'unità è la trasformata discreta del coseno. La trasformata discreta del coseno (DCT) rappresenta un'immagine come una somma di sinusoidi di varia ampiezza e frequenza. Essa mira a rappresentare in maniera più efficiente il campione originale di un segnale, ad es. un'immagine, concentrando le informazioni visivamente significative in pochi coefficienti, in modo tale che i parametri trasformati richiedano meno bit per essere codificati.
La DCT bidimensionale (2D-DCT o semplicemente DCT) può essere calcolata in due fasi eseguendo operazioni 1D in successione sulle righe e sulle colonne di un'immagine, sfruttando il principio della separabilità. Essa opera su un'immagine f, un blocco di N x N campioni, tipicamente campioni di immagine (o valori residui della predizione nel dominio spaziale e/o temporale). L'output di una DCT bidimensionale è un insieme di N x N coefficienti che rappresentano i dati del blocco di immagine nel dominio DCT , i quali possono essere considerati come "pesi" di un insieme di pattern di base standard {ossia pesi applicati a ciascun pattern di base), a cui spesso si fa riferimento come funzioni base della DCT.
La Fig. 2 mostra i pattern di base per un blocco Y con N=8 e 64 funzioni base (Fig. 2-a) e N=4 con 16 funzioni base (Fig. 2-b). Le frequenze orizzontali aumentano da sinistra verso destra e le frequenze verticali aumentano dall'alto verso il basso. La funzione base a valore costante in alto a sinistra è spesso denominata funzione base DC, e il coefficiente DCT corrispondente è spesso chiamato in letteratura coefficiente DC. Le altre funzioni base presentano un progressivo aumento in frequenza sia nella direzione verticale sia nella direzione orizzontale.
La presente invenzione sostituisce questa fase con la nuova trasformata discreta del coseno orientabile, come si descriverà più avanti con riferimento alla Fig. 8.
I coefficienti trasformati hanno alcune caratteristiche che consentono un'efficiente compressione nelle fasi che seguono.
II quantizzatore 102 riduce i valori dell'intervallo di input ad un insieme più piccolo. Nello schema di codifica principale dell'immagine, l'unità quantizzatrice sfrutta la bassa sensibilità del sistema visivo umano nei confronti delle alte frequenze. La quantità di informazioni nelle componenti ad alta frequenza viene quindi ridotto in questa fase, talvolta arrotondandolo a zero, a seconda della loro posizione nella matrice di quantizzazione .
Questa fase può avvenire con o senza perdite, a seconda del tipo di quantizzazione.
In seguito alla quantizzazione dei dati in un insieme finito di valori, i coefficienti quantizzati vengono trasferiti all'unità 103, per poi essere inviati al canale o all'unità di memorizzazione.
L'unità di codifica entropica 103 dispone i campioni in modo più efficiente (ad es. lettura con scansione a zig-zag), riducendo il numero di bit necessari per codificare un simbolo. Fra le tipiche tecniche di codifica entropica figurano, ad esempio, la codifica di Huffman e le codifiche aritmetiche CABAC e CAVLC.
Analogamente, con riferimento anche alla Fig. 1, un apparato decodificatore di immagini 110 basato su decodifica video ibrida comprende principalmente le unita seguenti: un decodificatore entropico 113, un dequantizzatore 112 e un'unità di trasformazione inversa 111.
Il decodificatore entropico 113 converte il flusso di bit in ingresso, che comprende i coefficienti dell'immagine codificata e quantizzata, in coefficienti quantizzati.
Il dequantizzatore 112 esegue il processo inverso a quello del quantizzatore 102, ricostruendo i valori dei coefficienti da trasferire allo stadio principale finale.
L'unità di trasformazione inversa 111 riceve in ingresso i coefficienti dequantizzati e ricostruisce 1'output del segnale di immagine {i cosiddetti campioni o valori di pixel) nel dominio spaziale.
L'unità di trasformazione inversa è comunemente rappresentata dall'inverso della DCT, ossia la trasformata discreta del coseno inversa {IDCT o DCT di tipo III).
Siccome è dimostrato che la DCT non è la trasformata ottimale per un dispositivo di codifica/decodifica di immagini o video, la presente invenzione descrive un apparato basato su una nuova trasformata direzionale, la trasformata discreta del coseno orientabile o SDCT, che si descriverà in dettaglio nel seguito. La SDCT migliora la DCT convenzionale tenendo in considerazione le informazioni direzionali di ogni blocco di immagine, in tal modo adattando la codifica alla semantica specifica del blocco di campioni corrente.
La Fig. 8 illustra a titolo esemplificativo una coppia codificatore-decodificatore di immagini di riferimento basata sulla trasformata discreta del coseno orientabile, in cui detto codificatore è alimentato con un'immagine f o un blocco di immagine contenente dati grezzi in un qualsiasi formato (ad esempio, RGB, YUV, ecc.).
Il dispositivo codificatore 11 comprende le parti seguenti:
- mezzi di input 1104 (ad esempio, un adattatore per gli standard di interfaccia Ethernet, USB, Firewire o SATA e/o un modem per gli standard di comunicazione GPRS/UMTS/LTE o simili) configurati per acquisire almeno una porzione di un'immagine f da una sorgente S (ad esempio, una videocamera, un flusso video memorizzato su un supporto di memorizzazione o simili);
- mezzi di output 1105 (ad esempio, un adattatore per gli standard di interfaccia Ethernet, USB, Firewire o SATA e/o un modem per gli standard di comunicazione GPRS/UMTS/LTE o simili) configurati per emettere in uscita almeno una porzione di un'immagine codificata verso una destinazione, come ad esempio un decodificatore in grado di decodificare un flusso video SDCT, un supporto di memorizzazione o simili; - mezzi di elaborazione 1100 (ad esempio, una o più CPU, GPU, DSP, CPLD, FPGA o simili) configurati per leggere almeno una porzione di detta immagine f avente preferibilmente una forma quadrata, codificare detta porzione dell'immagine f secondo la trasformata SDCT, preferibilmente eseguendo una serie di istruzioni che realizzano il processo di trasformazione SDCT, ed emettere in uscita, attraverso i mezzi di uscita 1105, coefficienti di trasformazione ί verso detta destinazione 1110, in cui detti coefficienti di trasformazione ί rappresentano 1'immagine f in un formato codificato SDCT.
I mezzi di elaborazione 1100 possono anche essere descritti in modo strutturale, ossia essi possono comprendere un'unità di trasformazione 1101, qui rappresentata dalla nuova unità di trasformazione SDCT, un quantizzatore 1102 e un codificatore entropico 1103. Ciò significa che gli elementi (virtuali) 1101-1103 possono essere fisicamente realizzati utilizzando un unico processore fisico in grado di eseguire una serie di istruzioni che realizzano le funzioni di almeno uno di detti elementi 1101-1103 oppure utilizzando componenti hardware dedicati e distinti per eseguire le funzioni di almeno uno di detti elementi 1101-1103, oppure una combinazione di entrambe le succitate soluzioni.
Per meglio comprendere 1'oggetto della presente invenzione, si fornirà ora una descrizione dettagliata dell'unità di trasformazione 1101.
Come precedentemente indicato, la trasformata discreta del coseno non è in grado di rappresentare in modo efficace le discontinuità dell'immagine che non seguono una certa direzione orizzontale o verticale. Questo problema può essere risolto applicando alla codifica di immagini o video convenzionale alcuni elementi appartenenti alla teoria dei grafi.
Una trasformata basata su grafo può essere vista come una generalizzazione della trasformata a blocchi precedentemente descritta (oppure, al contrario, la trasformata a blocchi può essere considerata uno speciale caso di trasformata basata su grafo). L'immagine {o un qualsiasi suo sottoinsieme) può essere rappresentata come un grafo G di nodi o vertici V collegati da bordi E: ogni nodo o vertice rappresenta un pixel dell'immagine, e ogni bordo tra due nodi descrive 1'adiacenza tra i pixel: un bordo che collega due pixel indica che essi sono adiacenti orizzontalmente o verticalmente.
Dalla teoria dei grafi (si veda a titolo di riferimento R. Merris, "Laplacian matrices of graphs: a survey, " Linear algebra and its applications, voi. 197, pp. 143-176, 1994) è noto che, dati due grafi G- e G-,in cui il primo grafo Gìè rappresentato da un insieme di vertici Vie un insieme di bordi E:e il secondo grafo G2è rappresentato da un insieme di vertici V2e un insieme di bordi E2, il prodotto di Gìe Gìè un nuovo grafo G = G x Gr il cui insieme di vertici V è il prodotto cartesiano V = V7 x VD.
Dalla teoria dei grafi è anche noto che (si veda a titolo di riferimento R. Merris, "Laplacian matrices of graphs: a survey, " Linear algebra and its applications, voi. 197, pp . 143-176, 1994 e "Laplacian graph eigenvectors, " Linear algebra and its applications, voi.
278, no. 1, pp. 221-236, 1998), dato un primo grafo Gìcon un numero ni di vertici e un secondo grafo G2con un numero n2 di vertici, per la laplaciana grafica L del grafo prodotto G = Gìx G2, i multi-insiemi di autovalori di L(G) sono tutti possibili somme di λί(Gì )+ Xj(GU , in cui ogni elemento Xi(G-) è l'i-esimo autovalore del primo grafo G- e 0 < i < ni — 1 e ogni elemento Xj(G-) è il j-esimo autovalore del secondo grafo G2e 0 < j < n2 - 1.
Inoltre, se vi è 1'autovettore di Gìche produce λί(Gì )e vj è 1’autovettore di G2che produce Xj[G2 ), allora il prodotto di Kronecker {denotato da &) vi ® vj è un autovettore di Gìx G2che produce Xi(Gì )+ Xj[G2).
Un grafo lineare Ρ, (v. Fig. 3-a) è un grafo particolarmente semplice con due o più vertici di grado uno o due (un grafo lineare non è cioè ramificato e contiene due vertici terminali di grado 1 e, a seconda della dimensione del grafo, tutti gli altri di grado 2). Da ''The discrete cosine transform" (G. Strang, SIAM review, voi. 41, no. 1, pp . 135-147, 1999) è noto che gli auto vettori della matrice laplaciana L(G) = D(G) - A (G) del percorso P,- del grafo di n vertici sono esattamente i vettori base 1D-DCT di tipo II
V'j — COS = 4 sin<2>(g
per valori k = Ο,...,η-l, in cui v<{:,J>= (ui<'>"<'>,tg ...,υ,,A'<'>) è 1’ autovettore di L corrispondente a λ1ν. Essendo la molteplicità degli autovalori nella seconda formula sempre 1, la base della 1D-DCT è 1'unica autobase della laplaciana di un percorso di grafo P:1, ossia la trasformata grafica per un segnale (ad esempio, un'immagine) rappresentato da un grafo lineare è equivalente alla trasformata 1D-DCT .
Un grafo a griglia bidimensionale Gn·, può essere visto come il prodotto cartesiano di due grafi lineari P, e PTrispettivamente su n ed m vertici (v. Fig. 3-b). Quando m=n, ossia quando i due grafi hanno lo stesso numero di vertici , il prodotto dei due grafi P-, è un grafo a griglia quadrato (v. Fig. 3-c).
Come si afferma anche in "Analyzing thè optimality of predictive trans form coding using graph-based models, " (C. Zhang and D. Fioreneio, Signal Processing Letters , IEEE, voi. 20, no. 1, pp . 106-109, 2013), si può dire che i vettori base della 2D-DCT formano un'autobase della matrice laplaciana di un grafo a griglia quadrato.
Partendo da queste considerazioni risulta immediato calcolare matematicamente gli auto valori λ,-,- e 1 corrispondenti auto vettori v<:/>"<“ 1>della laplaciana L del grafo a griglia guadrato generato come prodotto dei due grafi lineari PKe P- su n elementi come
Al·-|-A; Ί sin (2)
per 0 < k,1 < n - 1, in cui v'<y>è 1<r>autovettore del grafo lineare corrispondente a λ^, e v'<i;>è 1'autovettore del grafo lineare corrispondente a λ-. Ne consegue che un autovettore v'<k>'<i;>corrispondente a λ^,i è il prodotto di Kronecker v<:' 1>v'<i;>.
Dalla suddetta formula appare evidente che sono presenti alcuni autovalori ripetuti, da cui si possono trarre le seguenti considerazioni :
- λγ,]- λι,ν per ogni k≠l;
- la molteplicità di λ=4 è n-1;
- sono presenti n-1 auto valori con molteplicità 1 (ossia Χγ,γper k≠n/2, assumendo che n sia un numero intero pari maggiore di 0);
- tutti gli altri elementi hanno molteplicità 2, eccetto λ,-,,-; per 1 ≤ k < r - 1 .
Inoltre la dimensione degli autospazi per la coppia di autovalori λ,,_ e λ_,,_è maggiore di 1. Questo significa che la 2D-DCT non è 1'unica autobase della laplaciana di un grafo a griglia quadrato.
Le Figure 4, 5 e 6 illustrano i concetti sopra citati evidenziando alcuni degli stessi autovettori base 2D-DCT rappresentati in forma matriciale, assumendo che n=8; 1'elemento in alto a sinistra (coordinate matriciali 0,0) è l<r>autovettore v"'"<1>, mentre 1'elemento in basso a destra (coordinate matriciali 7,7) è 1'autovettore v<1 ;>'<; ;>.
In particolare, in Fig. 4 i due auto vettori corrispondenti a un autovalore di molteplicità 2 sono evidenziati da un rettangolo che li racchiude : chiaramente, gli autovettori con coordinate (1,0) e {0,1) hanno la stessa "forma", se si eccettua una rotazione di 90 gradi (n/2 radianti) . In Figura 5 gli n - 1 auto vettori, ossia 7 nel presente esempio in cui n = 8, corrispondenti a λ = 4, sono evidenziati allo stesso modo ; in Fig. 6 gli n - 1 autovettori corrispondenti agli autovalori con molteplicità 1 sono contrassegnati da un rettangolo che li racchiude.
La presente invenzione rivela quindi un apparato e un metodo per codificare e decodificare immagini o flussi video a partire da una nuova trasformata, la cui definizione si basa sulle considerazioni teoriche sopra esposte .
L'unità di trasformazione 1101 riceve in ingresso un' immagine o un blocco di immagine. Per semplicità, si assuma che 1 'input sia un blocco di immagine f di 8x8 pixel, ossia N=8 e anche n=8. Il metodo per calcolare le fasi di codifica eseguite dall'unità 1101 è descritto in Fig. 9.
Essendo stato dimostrato che la 2D-DCT non è 1'unica autobase della laplaciana di un grafo a griglia quadrato, si possono individuare altre possibili autobasi di detta laplaciana .
In linea di principio si può ruotare ogni o qualsiasi auto spazio di una data matrice 2D-DCT di un angolo differente, ottenendo ogni volta una nuova trasformata 2D-DCT che chiameremo SDCT ( "Steerable Discrete Cosine Transform") . Ciò può essere fatto ruotando tutti i vettori base di un auto spazio della laplaciana corrispondente al grafo a griglia quadrato associato al blocco 8x8 , come sopra descritto. Occorre notare che il grafo a griglia quadrato dipende solo dalle proprietà geometriche dei pixel dell'immagine (adiacenze e dimensioni dei blocchi ), e non dai particolari valori dei pixel stessi.
Tra queste nuove autobasi e tutte le possibili matrici di trasformazione risultanti il sistema può utilizzare quella che meglio rappresenta le proprietà della specifica immagine o blocco di immagine da comprimere, ossia il sistema seleziona la funzione base che meglio descrive i campioni correnti con, ad esempio, discontinuità che altrimenti con la 2D-DCT convenzionale avrebbero una rappresentazione insoddisfacente in termini di artefatti ed efficienza di codifica.
Di conseguenza vengono calcolati tutti i possibili auto valori λ e autovettori v. Dato un auto valore λ^,i della laplaciana L il cui autospazio corrispondente ha dimensione due e i due vettori v<1 ;>e v<11>'<v>’ della matrice di trasformazione 2D-DCT n x n (di seguito indicata complessivamente con V), v<1 ;>e v<11>sono gli auto vettori di L corrispondente a λ^,χ. Ogni altra possibile base dell'auto spazio corrispondente a λ^,χ può essere definita come il risultato di una rotazione degli auto vetiori v"' ' e v ''' secondo la formula seguente:
ν(Τ2)' co s Ok.l sii ì 6k,l
V - sili Oh A COS ekj AlJ) per variabile nell' intervallo da 0 a n/2 radianti; in questo modo i nuovi vettori di auto vettore v' sono ottenuti dai vettori base v mediante una rotazione dell'angolo Θ. Conseguentemente si può definire una nuova matrice di trasformazione V' , la quale comprende i vettori v' così ottenuti in sostituzione dei vettori base v. Nel seguito di questa descrizione la matrice di trasformazione 2D-DCT V sarà anche denominata "informazioni di trasformata discreta del coseno ", mentre la nuova matrice di trasformazione V<T>sarà anche indicata con il termine "informazioni di trasformata".
Dati i suddetti presupposti, una possibile forma di realizzazione del calcolo SDCT è mostrata in Fig. 9; innanzitutto 1'unità di trasformazione SDCT 1101 acquisisce 1'immagine originale f o un blocco di immagine di dati grezzi (passo 200); successivamente, al passo 201, detta unità 1101 seleziona 1'angolo ottimale Θ per il blocco di immagine corrente. Un possibile metodo per la scelta di detto angolo di rotazione è indicato a titolo esemplificativo qui di seguito ed è rappresentato in Fig. 10.
Per scegliere il miglior angolo di rotazione, si assuma che R sia, ad esempio, un numero finito di angoli tra 0 e n/2 radianti da provare e che V sia la matrice base 2D-DCT originale. Questi R angoli possono essere, ad esempio, spaziati uniformemente tra 0 e n/2: in formula matematica θ_ = i*n/(2(R-l)) radianti, con 0 ≤ i ≤ R-l J rappresenta una funzione obiettivo che misura o stima l'efficienza di codifica associata al blocco corrente; in questo caso, si assuma che J sia una metrica che rappresenta (una misura della) la sparsita dei coefficienti di trasformazione e che sia il valore ottimale di detta funzione obiettivo.
11 metodo esaustivo qui proposto quindi prova iterativamente tutti gli R angoli dell'insieme; detto metodo comprende i passi seguenti:
- per ogni angolo θ±con 0 ≤ i ≤ R-l, si ruota ogni coppia di vettori in V dell'angolo corrente θι (passo 303);
- si calcola una nuova matrice di trasformazione V' con i vettori ruotati della 2D-DCT originale V {passo 304);
- si calcola la funzione obiettivo J(θ_) per la V<f>corrente {passo 305);
- si confronta il valore J(Qi) con il valore ottimale J,.p.(passo 306): se J{9±)> Jo;_.L, allora J(Q_) diventa la nuova J._.p_ (passo 307) e 9±viene mantenuto come angolo corrente ottimale;
- 1'indice di angolo i viene incrementato dopo il passo 306 o 307 e si esegue la rotazione del passo 303 sul nuovo angolo corrente θι.
Tutti i passi di calcolo mostrati in Fig. 10 vengono eseguiti per ciascun angolo Θ. In questo modo, tra un insieme finito di R possibili angoli tra 0 e n/2 radianti il metodo considerato individua quello {ossia 0o;_.L)che ottimizza la funzione obiettivo J.
Chiaramente questo non è 1'unico modo possibile per calcolare 1’angolo di rotazione ottimale. Per la scelta di detto angolo Θ si potrà impiegare qualsiasi altro metodo appropriato, ad esempio una ricerca gerarchica. Una volta selezionato 1'angolo ottimale Θ, esso può essere applicato ai vettori della matrice DCT originale V al passo 202, generando le informazioni di trasformata V .
La nuova matrice di trasformazione SDCT (Steerable Discrete Cosine Transform), indicata con V' nella precedente descrizione, può essere creata come segue. Per ogni autobase con molteplicità maggiore di 1 vengono ruotati a coppie gli autovettori corrispondenti. Gli elementi diagonali, che come si è dimostrato hanno molteplicità 1, restano invariati.
In sostanza la trasformata SDCT consiste nel selezionare almeno un autospazio definito dai suoi vettori base con dimensione maggiore di uno e ruotare tali vettori base. In tal modo si ottiene una particolare trasformata SDCT. L'invenzione propone di utilizzare la SDCT per trasformare un segnale bidimensionale per la sua compressione, adattando la trasformata alla semantica del segnale stesso.
Si noti che, in linea di principio, ogni autobase può essere ruotata di un diverso angolo di rotazione, ossia per ogni coppia di basi DCT il sistema può selezionare 1'angolo di rotazione che meglio rappresenta il blocco di campioni corrente. In questo modo, ogni componente della SDCT è orientato secondo 1'angolo che massimizza 1'efficienza di codifica per quel particolare blocco. Il risultato è un miglioramento delle prestazioni di codifica rispetto alla DCT convenzionale (2D) e un'immagine o un video ricostruito con meno artefatti visibili presso il decodificatore.
In una forma di realizzazione della presente invenzione, quindi, la SDCT è modificata in modo tale che ogni coppia DCT originale sia ruotata di un diverso angolo di rotazione in base alle prestazioni di codifica dell'immagine da rappresentare.
Un'altra forma di realizzazione della presente invenzione costituisce un caso speciale della precedente forma di realizzazione, in cui ogni autospazio presenta lo stesso angolo di rotazione, ossia ogni coppia di vettori base DCT originali è orientata secondo lo stesso angolo di rotazione, se i vettori base sono ruotati a coppie. Ruotando tutti gli autospazi dello stesso angolo, la SDCT rimane equivalente alla trasformata grafica di un grafo a griglia quadrato, come precedentemente descritto, ma il suo orientamento è diverso da quello della DCT originale. La Fig. 7 descrive questo caso speciale per un angolo di rotazione di n/4 radianti. Più in dettaglio, secondo una forma di realizzazione dell'invenzione la nuova matrice di trasformazione V' di Fig. 7 viene ottenuta come segue:
1) per ogni autovalore λρ - con molteplicità 2, si ruotano i corrispondenti autovettori ;
2) gli n - 1 autovettori corrispondenti a λ = 4 vengono ruotati a coppie v<lk,;i'k;>e v'<:i“k>'<k;>;
3) se n è un numero pari, 1'autovettore v<l'l//>'<l//;>non viene ruotato ;
4) gli elementi diagonali v<:'>'<'>' con molteplicità 1 non vengono ruotati, ossia tali vettori base DCT restano invariati .
Rispetto allo schema di codifica convenzionale precedentemente descritto in Fig. 1, in questo caso, ossia in una forma di realizzazione in cui ogni auto spazio presenta lo stesso angolo di rotazione, l'angolo di rotazione comune è l'unica informazione collaterale necessaria al decodificatore per recuperare/ decomprimere i campioni originali del blocco di immagine di un'immagine statica o di un flusso video, come evidenziato in Fig. 8.
Per ridurre il bit-rate necessario per memorizzare e/o trasmettere un'immagine sottoposta a codifica ibrida in accordo con 1'invenzione, 1'angolo o gli angoli di rotazione possono anche essere quantizzati ed eventualmente codificati entropicamente dall'apparato codificatore 11 con tecniche note prima di essere resi disponibili in uscita; essi possono anche essere multiplati in qualsiasi modo appropriato con i dati di immagine sottoposti a codifica ibrida f . In tal caso, l'apparato decodificatore 1110 secondo l'invenzione eseguirà nell' ordine inverso 1'operazione inversa a quella eseguita dal codificatore: inizialmente il valore o i valori angolari vengono demultiplati dal flusso digitale di input, dopodiché essi vengono sottoposti a decodifica entropica e infine dequantizzati prima di essere utilizzati per calcolate la ISDCT sui coefficienti dell'immagine .
Infine al passo 203 (v. Fig. 9) l'unità di trasformazione SDCT 1101 calcola i coefficienti SDCT ί<Λ>applicando la nuova matrice di trasformazione SDCT ottenuta al passo 202 ai campioni di immagine f, ossia 1'unità di trasformazione SDCT 1101 moltiplica la matrice di trasformazione V per il vettore di immagine f, preferibilmente utilizzando l'algoritmo della trasformata di Fourier veloce (Fast Fourier Transform).
I coefficienti SDCT vengono quindi trasferiti alle unità 1102 e 1103 per essere quantizzati e codificati entropicamente come precedentemente descritto con riferimento alla Fig. 1 per le unità 102 e 103.
In particolare, 1'unità di codifica entropica 103 può riordinare le componenti dell'immagine dalle componenti a bassa frequenza alle componenti ad alta frequenza (ad esempio, seguendo un ordine a "zig-zag") e conservare quelle più importanti. Naturalmente, aumentando il numero di coefficienti conservati si avrà una migliore ricostruzione delle componenti dell'immagine originale.
Se deve essere elaborata un'intera immagine (statica o facente parte di un flusso video) , la suddetta procedura di codifica ibrida viene ripetuta per ogni blocco di immagine in cui 1'immagine è stata suddivisa.
Riassumendo, 1'apparato codificatore 11 secondo 1'invenzione esegue un metodo per codificare immagini o flussi video digitali, in cui detto metodo comprende le fasi seguenti:
- una fase di ricezione, in cui viene ricevuta almeno una porzione dell'immagine f attraverso i mezzi di input 1104;
- una fase rotazionale, in cui attraverso i mezzi di elaborazione 1100 viene determinato 1'angolo di rotazione Θ sulla base di detta porzione di detta immagine f, e in cui attraverso i mezzi di elaborazione 1100 vengono calcolate le informazioni di trasformata di rotazione V sulla base di detto angolo di rotazione Θ e di almeno una informazione di trasformata discreta del coseno V;
- una fase di trasformazione, in cui vengono calcolati i coefficienti di trasformazione f<Λ>sulla base dei pixel contenuti in detta porzione dell'immagine f e di dette informazioni di trasformata di rotazione V ;
- una fase di output, in cui i coefficienti di trasformazione ί<Λ>vengono trasmessi alla destinazione 1110 attraverso i mezzi di output 1105.
La Fig. 8 descrive a titolo esemplificativo anche un decodificatore di immagini 1110 secondo 1'invenzione. Il dispositivo decodificatore 1110 comprende le parti seguenti:
- mezzi di input 1114 (ad esempio, un adattatore per gli standard di interfaccia Ethernet, USB, Firewire o SATA e/o un modem per gli standard di comunicazione GPRS/UMTS/LTE o simili) configurati per acquisire almeno una porzione codificata di un'immagine f da un canale di comunicazione o un supporto di memorizzazione C;
- mezzi video di output 1115 (ad esempio, un adattatore per gli standard di visualizzazione VGA, HOMI o S-Video e/o un adattatore per gli standard di interfaccia Ethernet, USB, Firewire o SATA o simili) configurati per produrre in uscita un'immagine ricostruita f<1>, preferibilmente per visualizzarla su uno schermo LCD o simili;
- mezzi di elaborazione 1200 {ad esempio, una o più CPU, GPU, DSP, CPLD, FPGA o simili) configurati per ricevere, attraverso i mezzi di input 1114, almeno i coefficienti di trasformazione ί<Λ>dell'immagine f, decodificare detta porzione dell'immagine f secondo la trasformata ISDCT, preferibilmente elaborando detti coefficienti di trasformazione ί<Λ>mediante l'esecuzione di una serie di istruzioni che implementano 1'algoritmo di decompressione ISDCT, e produrre in uscita 1'immagine ricostruita f' attraverso detti mezzi video di output 1115.
I mezzi di elaborazione 1200 possono anche essere descritti in modo strutturale, ossia essi possono comprendere un'unità di trasformazione SDCT inversa (ISDCT) 1111, un dequantizzatore 1112 e un decodificatore entropico 1113. Ciò significa che gli elementi (virtuali) 1111-1113 possono essere fisicamente realizzati utilizzando un unico processore fisico in grado di eseguire una serie di istruzioni per 1'implementazione delle funzioni di almeno uno di detti elementi 1111-1113 oppure utilizzando componenti hardware dedicati e distinti realizzanti le funzioni di almeno uno di detti elementi 1111-1113 o una combinazione di entrambe le succitate soluzioni.
L'unità di decodifica entropica 1111 riceve in ingresso i coefficienti codificati entropicamente e quantizzati e l'angolo Θ o gli angoli del blocco di immagine corrente, a seconda della forma di realizzazione dell'invenzione utilizzata presso il lato di decodifica. Più precisamente, presso il lato di decodifica il sistema può ricevere un valore angolare Θ, cosicché ogni coppia di corrispondenti vettori base dovrà essere ruotata dello stesso angolo Θ, oppure più valori angolari , i essendo un numero variabile in funzione del numero di coppie di basi che l'apparato codificatore ha deciso di ruotare in tale blocco di immagine.
Per semplicità, si assuma che Θ sia 1'unico angolo e che f<Λ>siano i coefficienti di un blocco di immagine. Per ogni blocco di immagine il decodificatore entropico 1113 e il successivo dequanti zzatore 1112 recuperano i coefficienti f<Λ>(in caso di trasmissione su canale ideale) e l'angolo Θ dalle rispettive forme codificate e quantizzate.
L'unità di trasformazione SDCT inversa 1111 ricostruisce quindi il blocco di immagine f nel dominio spaziale in base alla procedura descritta in Fig. 11. L'unità 1111 è qui rappresentata dalla trasformazione inversa della trasformata discreta del coseno orientabile sopra descritta, ossia la trasformata discreta del coseno orientabile inversa ISDCT o SDCT<-->.
In questa forma di realizzazione, 1'unità ISDCT 1111 acquisisce innanzitutto dal dequantizzatore 11121'angolo Θ e i coefficienti (decodificati e dequantizzati) f<A>del blocco di immagine. Successivamente ogni coppia di vettori base 2D-DCT v"'<r>' e v<11>'<v>’ viene ruotata dell'angolo Θ (passo 401) secondo la formula seguente:
cos 0k tsin 0k J
— sin 9kj cos Ok.iV(M0
per recuperare la matrice di trasformazione SDCT V' (passo 402) descritta a titolo esemplificativo in Fig. 7 per θ=45°.
1/ unità 403 traspone la matrice V', generando la matrice di trasformazione inversa V'<T>, ossia la ISDCT. Quindi 1'unità recupera il blocco di immagine originale f
attraverso la moltiplicazione matriciale f = Y'^-f .
Sebbene qui f sia il blocco di immagine originale, in una normale unità di codifica/ decodifica f potrebbe tuttavia essere una ricostruzione approssimata del campione originale a causa di alcuni passi di codifica con perdite o di errori di trasmissione/ricezione .
Si noti che ogni blocco di immagine (codificato entropicamente e dequantizzato) viene elaborato secondo i passi procedurali descritti in Fig . 11. Se deve essere elaborata un' intera immagine {statica o facente parte di un flusso video) , la suddetta procedura di decodifica ibrida viene ripetuta per ogni blocco di immagine in cui 1'immagine è stata suddivisa.
Lo scopo dell 'utilizzo di una matrice di trasformazione la cui base vettoriale ha un orientamento diverso dall 'orientamento orizzontale/ verticale consiste nell' ottenere una rappresentazione del segnale più compatta grazie allo sbilanciamento dei coefficienti di trasformazione del dominio . Per ogni coppia di autovettori ruotati , 1'energia totale dei corrispondenti coefficienti di trasformazione rimane invariata, ma è possibile sparsificare la rappresentazione del segnale in ogni autospazio . Nel caso ottimale la rotazione compatta tutta 1'energia della coppia in uno dei due coefficienti.
Riepilogando , 1'apparato decodificatore 1110 secondo 1'invenzione esegue un metodo per decodificare immagini o flussi video digitali , in cui detto metodo comprende le fasi seguenti:
- una fase di ricezione, in cui attraverso i mezzi di input 1114 vengono ricevuti i coefficienti di trasformazione ί di una porzione codificata dell'immagine f;
- una fase rotazionale, in cui attraverso i mezzi di elaborazione 1200 viene determinato 1'angolo di rotazione Θ sulla base di detta porzione codificata di detta immagine f, e in cui attraverso i mezzi di elaborazione 1200 vengono calcolate le informazioni di trasformata di rotazione V sulla base di detto angolo di rotazione Θ e di almeno una informazione di trasformata discreta del coseno V;
- una fase di trasformazione, in cui viene calcolata 1'immagine ricostruita f<1>sulla base dei coefficienti di trasformazione ί e delle informazioni di trasformata di rotazione V ;
- una fase di output, in cui 1'immagine ricostruita f viene emessa in uscita attraverso i mezzi video di output 1115.
TEST PRESTAZIONALI
Siccome le funzioni obiettivo relative ai passi di quantizzazione (eseguiti dalle unita 1112 e 112, rispettivamente in Fig. 8 e 1) e le fasi di codifica entropica (nelle unità 1113 e 113) non cambiano nelle configurazioni da confrontare, si è eseguita 1'approssimazione non lineare del termine M soltanto per valutare in un modo semplice e meno intensivo dal punto di vista computazionale le prestazioni della trasformata SDCT rispetto alla 2D-DCT convenzionale.
Dato che solo pochi dei coefficienti ottenuti dalle trasformate DCT e SDCT sono significativi un'approssimazione pratica consiste nel ridurre a zero le componenti piccole.
Con tale presupposto è possibile rappresentare 1'immagine ricostruita 1,^ presso il decodificatore come una somma lineare dei suoi M coefficienti di trasformazione Ci più grandi e delle corrispondenti funzioni base v_come indicato nella formula seguente:
M
∑ C.v;
i=l
in cui M è idealmente il numero di coefficienti di trasformazione diversi da zero inviati al ricevitore per la ricostruzione dell'immagine. Ne consegue che un numero ridotto di coefficienti comporta migliori prestazioni di compressione.
M viene scelto in modo da massimizzare 1'energia J negli M coefficienti più grandi:
i= 1 H
Sono stati eseguiti vari esperimenti con diverse immagini di prova allo scopo di valutare 1'impatto del numero di angoli di quantizzazione impiegati per costruire la trasformata SDCT e 1'influenza della dimensione del blocco sull'efficienza di codifica {la SDCT è stata applicata a blocchi di 4x4, 8x8, 16x16 pixel).
Per semplicità si riportano qui soltanto alcuni dei test effettuati (con 1 ' immagine di prova di Fig. 13). Come misura della qualità del segnale si è utilizzato il rapporto tra segnale di picco e rumore {PSNR, Peak Signal to Noise Ratio).
Con riferimento alla Fig. 14, i risultati dei test prestazionali della SDCT sono stati valutati in funzione del numero di coefficienti disponibili per blocchi 8x8. Più precisamente, la Fig. 14 mostra le prestazioni della SDCT per 4, 16 e 128 angoli in funzione dei coefficienti trasmessi (ossia M nella succitata formula) rispetto alla 2D-DCT convenzionale.
Chiaramente, aumentando il numero di angoli si migliorano le prestazioni della SDCT. I miglioramenti divengono trascurabili per un numero di angoli disponibili maggiore di 16. I test sotto riportati sono stati effettuati con una quantizzazione su 16 angoli.
Per analizzare 1'effetto della dimensione del blocco sull'efficienza di codifica, 1'immagine di prova è stata suddivisa in blocchi di dimensioni diverse; la Fig. 15 illustra un confronto fra DCT e SDCT per una divisione in blocchi 4x4 (Fig. 15-a), per una divisione in blocchi 8x8 (Fig. 15-b) e per una divisione in blocchi 16x16 (Fig. 15-c). Quando si utilizza un unico angolo di rotazione, l'efficacia della SDCT aumenta al diminuire delle dimensioni dei blocchi di immagine perché è molto probabile che in aree piccole sia presente una singola direzione predominante delle discontinuità.
Un dettaglio del significativo miglioramento ottenuto dalla DCT orientabile è esemplificato in Fig. 18, che rappresenta 1'immagine ricostruita Casa con un numero di coefficienti conservati pari a sei (M=6) e blocchi 8x8. La SDCT (Fig. 18-b) fornisce una qualità visiva di molto superiore a quella offerta dalla DCT (Fig. 18-a), riducendo al minimo gli artefatti lungo i bordi grazie all'allineamento della trasformata alla direzione dei bordi, dato dai nuovi coefficienti ruotati.
Considerando 1'immagine campione di Fig. 20-a (con i corrispondenti valori indicati in Fig. 20-b), le Figure 21 (a) e (b) mostrano i coefficienti DCT e le Figure 22 (a) e (b) mostrano i coefficienti SDCT. Come si può vedere in Fig. 22-a, la SDCT concentra 1'energia in pochi coefficienti in modo molto efficiente (ossia, nel caso ideale della nostra immagine campione, meta della matrice di trasformazione consiste in coefficienti diversi da zero). L'immagine ricostruita corrispondente presso il decodificatore in Fig. 23-a segue perfettamente la discontinuità diagonale che attraversa 1'immagine campione in Fig. 20.
Al contrario, la 2D-DCT convenzionale (Figg. 21 (a) e (b)) genera 1'immagine ricostruita di Fig. 23-b; essa presenta del rumore chiaramente visibile nelle aree piane dell'immagine .
ALTRE FORME DI REALIZZAZIONE E GENERALIZZAZIONI
Sebbene la forma di realizzazione preferita della presente invenzione faccia riferimento ad immagini a scala di grigi, un'altra forma di realizzazione prevede mezzi di codifica e decodifica per immagini a colori, in cui vengono elaborate le componenti cromatiche.
La presente descrizione riguarda una SDCT basata su blocchi, ma può essere applicata a blocchi guadrati di qualsiasi dimensione. La Fig. 15 mostra a titolo esemplificativo alcuni esperimenti condotti con blocchi di 16x16, 8x8, 4x4 pixel.
Per semplicità, nelle forme di realizzazione dell'invenzione illustrate nella presente descrizione la dimensione dei blocchi SDCT e ISDCT è la stessa per 1'intera immagine. Tuttavia è anche possibile utilizzare un processo di codifica e decodifica SDCT in cui la dimensione del blocco è adattata alla semantica dei dati video, in un modo simile a quello applicato, in alcuni degli attuali standard video, alla 2D-DCT tradizionale. Ciò permette di aumentare ulteriormente l'efficienza di codifica, evitando la trasmissione non necessaria di angoli ottimali per regioni dell'immagine che contengono lo stesso tipo di discontinuità orientate.
In un'altra forma di realizzazione, nella SDCT ogni autobase della 2D-DCT originale può essere ruotata di un diverso angolo di rotazione, ossia per ogni coppia di basi DCT il sistema può selezionare 1'angolo di rotazione che meglio rappresenta il campione corrente. In questo modo la SDCT viene orientata secondo 1'angolo o gli angoli che massimizzano l'efficienza di codifica per quel particolare blocco.
In un'altra forma di realizzazione della presente invenzione avviene la trasmissione di uno o più angoli Θ con 1'identificazione dell'autospazio da ruotare; la metrica di identificazione può essere un indice in una tabella di look-up contenente tutti i possibili autospazi, oppure la metrica di identificazione potrebbe essere implicita (ad esempio, il decodificatore potrebbe ricavare 1'autospazio corrispondente a Θ dall'ordine di ricezione degli angoli).
In un'altra forma di realizzazione, la metrica di selezione dell'angolo ottimale Θ non è una ricerca esaustiva, ma può essere qualsiasi altro metodo di ricerca, come una ricerca gerarchica eseguita mediante miglioramenti consecutivi dell'angolo ottimale Θ.
In un'altra forma di realizzazione, la funzione obiettivo J di Fig. 10 potrebbe seguire un diverso approccio per misurare l'efficienza di codifica. Ad esempio, si potrebbe applicare una metrica di ottimizzazione del rapporto velocità di trasmissione dati/distorsione (detta anche metrica di ottimizzazione tasso-distorsione) che calcoli il bit-rate di trasmissione minimo R per una data distorsione D, ad es. minimizzando una funzione di costo lagrangiana J = D λΚ, in cui λ è qui il cosiddetto moltiplicatore di Lagrange .
In un'altra forma di realizzazione, la funzione obiettivo J potrebbe seguire un diverso approccio per misurare l'efficienza di codifica. Ad esempio, si potrebbe applicare una metrica di ottimizzazione psicovisiva, come 1'ottimizzazione SSIM (Structural SIMilarity) .
In un'altra forma di realizzazione, la funzione obiettivo J potrebbe essere una metrica di ottimizzazione psicovisiva dipendente dalla regione di interesse (ROI, Region of Interest) dell'immagine corrente; ciò significa che, se il blocco corrente appartiene alla regione di interesse dell'immagine corrente, 1'apparato codificatore potrebbe applicare 1'ottimizzazione psicovisiva solamente a questa parte e utilizzare qualsiasi altro metodo per le altre parti dell'immagine (o intra-fotogramma).
In un'altra forma di realizzazione, gli apparati di codifica e decodifica potrebbero effettuare la scelta dell'angolo ottimale in modo diverso. L'apparato codificatore di Fig. 8 potrebbe comprendere mezzi di memoria {ad es. una memoria di sola lettura e/o una memoria ad accesso casuale e/o una memoria a stato solido e/o un disco rigido o simili) contenente almeno un insieme di trasformate coseno discrete orientabili predefinite; ogni SDCT ha la base ruotata di un numero predeterminato di angoli . In tal caso la scelta dell'angolo ottimale può essere sostituita con la scelta della SDCT ottimale tra quelle disponibili. L'informazione sulla trasformata SDCT selezionata (ad es.
1'indice della matrice selezionata) è trasmessa all'apparato decodificatore, che la acquisisce e opera la stessa scelta su una SDCT inversa corrispondente in un corrispondente insieme di ISDCT predefinite.
Il suddetto insieme di trasformate coseno discrete orientabili può essere costruito in una pluralità di modi. In un primo esempio che utilizza una quantizzazione con 16 angoli, il codificatore e il decodificatore potrebbero avere in memoria 16 SDCT in cui ogni coppia di autobasi è stata ruotata dello stesso angolo Θ. In un secondo esempio, ogni SDCT nel gruppo di trasformate potrebbe avere ogni coppia di vettori ruotata secondo un diverso angolo di rotazione.
In un'altra forma di realizzazione, 1'angolo Θ del blocco corrente può essere predetto dall'angolo Θ di uno o più blocchi codificati in precedenza. In questo caso è possibile trasmettere al decodificatore solo un flag di "salto" (se sono identici) oppure la differenza predetta. Presso il decodificatore, alla ricezione del flag di "salto" o della differenza predetta verrà ricavato opportunamente 1'angolo Θ.
In un'altra forma di realizzazione della presente invenzione, le trasformate DCT e SDCT possono essere applicate in maniera ibrida allo scopo di massimizzare le prestazioni di codifica in base alla specifica semantica di ogni blocco o immagine. In questo scenario, ad esempio, quando 1'angolo di rotazione Θ non viene trasmesso, il sistema potrà utilizzare la semplice 2D-DCT; al contrario, quando il decodificatore riceve 1'angolo Θ, esso saprà che è stata applicata la trasformata discreta del coseno orientabile e ricostruirà opportunamente i coefficienti trasformati; se non viene ricevuto un angolo per un dato blocco , 1'apparato decodificatore dedurrà che è stata utilizzata una 2D-DCT tradizionale e opererà di conseguenza utilizzando una normale 2D-DCT inversa.
In un'altra forma di realizzazione della presente invenzione, prima dell'applicazione della SDCT potrebbe essere applicata una codifica di sottobanda. La codifica di sottobanda decompone 1'output sorgente in componenti in base alla frequenza. Essendo la matrice di trasformazione simmetrica rispetto alla diagonale, è possibile considerare solamente una sottoparte dei coefficienti, ordinata in modo arbitrario. Un esempio dei coefficienti considerati e un esempio di un ordinamento proposto sono mostrati nelle Figg. 12-a e 12-b.
In questa forma di realizzazione, i coefficienti considerati dalla SDCT potrebbero essere suddivisi in un numero variabile di sottobande. La Fig. 12-c mostra una divisione esemplificativa in quattro sottobande di pari dimensioni. Ogni sottobanda è quindi assegnata a un diverso angolo di rotazione Θ che meglio rappresenta il blocco di campioni considerato. Alcuni risultati sono illustrati graficamente in Fig. 19: all'aumentare dei valori dei coefficienti conservati, la SDCT a 4 sottobande offre prestazioni superiori a quelle della SDCT.
In un'altra forma di realizzazione della presente invenzione si rendono noti un metodo e un relativo sistema per codificare e decodificare flussi video digitali per mezzo della trasformata discreta del coseno orientabile SDCT.
Un tipico schema a blocchi di una compressione video che sfrutta la nuova SDCT è descritto a titolo esemplificativo in Fig. 16. Di seguito si descriveranno soltanto le parti principali del sistema di codifica video di Fig. 16, le quali sono essenziali ai fini della comprensione dell'utilizzo della trasformata discreta del coseno orientabile in questo ambito.
Per ogni blocco di immagine, il sistema di codifica esegue una predizione intra-fotogramma o una stima e una compensazione del movimento per predire i campioni dell'immagine corrente.
In una struttura generica, 1'unità di predizione intra-fotogramma (unità di trasformazione, scalatura e quantizzazione 500 in Figura 16), aggiuntiva rispetto alla codifica di immagini a scala di grigi, effettua alcune elaborazioni delle componenti cromatiche (ad es. scalatura e filtraggio).
In un sistema di codifica e decodifica video ibrida convenzionale, come MPEG2 MPEG4/AVC o HEVC, l'operazione di trasformazione eseguita dall'unità 500 è una semplice trasformata 2D-DCT. Lo stesso vale per 1'operazione di trasformazione inversa eseguita dall'unità di scalatura e trasformazione inversa 510, che esegue una semplice trasformata 2D-SDCT inversa per ricostruire i campioni dell'immagine, calcola il costo tasso/distorsione e decide come eseguire il processo di codifica ibrida.
Secondo una forma di realizzazione dell'invenzione, invece, l'unità 500 prevede una codifica sugli intrafotogrammi simile a quella operata sulle immagini, come illustrato in Fig. 8, eccettuando la fase di codifica entropica 1103, che è assente; talvolta, a seconda della semantica dell'immagine, 1'unità di predizione può predire il blocco corrente dai blocchi spazialmente vicini.
L'unità di predizione inter-fotogrammi sfrutta 1'unità di stima del movimento per individuare il blocco più simile in un insieme di fotogrammi precedentemente codificati e, attraverso la cosiddetta ''compensazione del movimento", sfrutta il blocco selezionato per predire quello corrente .
Viene calcolata una differenza tra i pixel predetti e quelli originali sia per codifica predittiva intrafotogramma sia per codifica inter-fotogrammi . Questa differenza è spesso chiamata "immagine residua" o "errore residuo" o "valore residuo" . Secondo una forma di realizzazione dell' invenzione, questa immagine residua viene poi trasformata secondo il metodo di codifica descritto in Fig. 9, generando coefficienti SDCT (come precedentemente descritto) . Questi coefficienti vengono quantizzati e codificati entropicamente prima di essere inviati al canale o all'unita di memorizzazione. Quindi, in una forma di realizzazione della presente invenzione, la SDCT viene applicata ai blocchi di immagine residua.
In un'altra forma di realizzazione della presente invenzione, 1'angolo Θ è la direzione selezionata della modalità di codifica intra-fotogramma; in questo caso può non essere necessaria la trasmissione dell'informazione angolare, in quanto 1'apparato decodificatore riceve già le informazioni di predizione della modalità intrafotogramma (ad es. 1'indice) e può facilmente ricavare le informazioni sulla direzione di predizione .
Analogamente, la Fig . 17 mostra un apparato di decodifica video esemplificativo che fa uso della trasformata discreta del coseno orientabile . I campioni sottoposti a codifica ibrida di un flusso video vengono decodificati entropicamente e dequantizzati rispettivamente dal decodificatore entropico 602 e dal quantizzatore inverso 604 per recuperare i coefficienti SDCT .
I coefficienti SDCT sono inviati al decodificatore intra-fotogramma 606, il quale contiene 1'unità di trasformazione SDCT inversa (o ISDCT), che esegue i passi di decodifica presentati in Fig. 11.
L'output di questa fase di decodifica può essere un blocco residuo o un intra-blocco. Nel primo caso, ossia se i campioni decodificati appartengono a un blocco residuo, generalmente significa che il blocco corrente è stato predetto da un blocco vicino all'interno dello stesso fotogramma (predizione intra-fotogramma) o da un blocco contenuto in un fotogramma decodificato in precedenza nel buffer di riferimento (predizione interfotogrammi) . Nel primo caso {predizione intrafotogramma), questi valori residui vengono sommati ai valori del blocco di riferimento all'interno dell'immagine corrente; nel secondo caso {predizione inter-fotogramma), il predittore con compensazione del movimento 608 recupera le informazioni di movimento {ad es. vettori di movimento e indice di un blocco di riferimento in una o più immagini/fotogrammi precedentemente decodificate/i) e i valori residui vengono sommati ai valori del blocco corrispondente di uno o più fotogrammi precedentemente decodificati.
A questo punto, dopo alcune operazioni addizionali eventualmente eseguite dall'apparato di decodifica video, 1'immagine può essere inviata al dispositivo di visualizzazione .
Queste operazioni, come de-scaling, de-blocking, ecc. non sono qui illustrate o descritte in quanto trascurabili ai fini della presente invenzione.
In un'altra forma di realizzazione dell'invenzione, 1'immagine o il blocco di immagine viene dapprima analizzata relativamente alla presenza e all'orientamento di discontinuità come bordi e/o variazioni di colore; in funzione del risultato di tale analisi viene presa una decisione circa l'uso di una semplice trasformata 2D-DCT o di una trasformata SDCT; eventualmente viene anche selezionato 1'angolo ottimale in base all'orientamento delle discontinuità.
L'analisi può essere effettuata prima di iniziare la codifica video ibrida, individuando per l'intera immagine il tipo di trasformazione di dominio da applicare a ciascun blocco, ed eventualmente anche le dimensioni di blocco delle trasformate, se viene operato un dimensionamento adattavo dei blocchi. In una forma di realizzazione alternativa dell'invenzione, 1'analisi viene effettuata durante la codifica ibrida blocco per blocco e/o immagine per immagine in caso di dati video.
In un'altra forma di realizzazione anche le dimensioni della trasformata SDCT possono essere determinate in base all'analisi della semantica dell'immagine : ad esempio, se sono comprese due discontinuità aventi diversi orientamenti nello stesso blocco di trasformazione SDCT, ad es. 16x16, la dimensione del blocco di trasformazione può essere ridotta a 8x8 o 4x4 fino a che soltanto una delle due discontinuità sia presente o sia perlomeno prevalente in blocchi di trasformazione distinti.
La codifica video ibrida è il contesto in cui 1'invenzione è stata descritta; tuttavia quest'ultima è anche applicabile per la compressione e decompressione di qualsiasi segnale bidimensionale in cui una trasformata di dominio è utile per risolvere il problema tecnico affrontato dall'invenzione, ossia aumentare 1'efficienza di codifica adattando i coefficienti ottenuti dalla trasformata di dominio agli orientamenti delle discontinuità presenti nel segnale bidimensionale impiegando una trasformata direzionale.
I termini immagine e blocco di immagine utilizzati nella presente descrizione per indicare un segnale bidirezionale in ingresso devono essere interpretati nel loro significato più ampio. Essi possono comprendere valori di pixel direttamente derivati o estratti da un'immagine naturale, un'immagine artificiale, l'errore di predizione di un'immagine, una versione sottocampionata di un'immagine a maggiore risoluzione, qualsiasi porzione di detti tipi di immagini, o altro.
La presente descrizione ha affrontato alcune delle possibili varianti, ma apparirà chiaro al tecnico del ramo che sono possibili anche altre forme di realizzazione, in cui alcuni elementi possono essere sostituiti con altri elementi tecnicamente equivalenti. La presente invenzione non si limita quindi agli esempi esplicativi qui descritti, ma è passibile di varie modificazioni, perfezionamenti o sostituzioni di parti ed elementi equivalenti senza tuttavia allontanarsi dall'idea dell'invenzione, così come è meglio precisato nelle rivendicazioni seguenti.

Claims (1)

  1. RIVENDICAZIONI 1. Apparato (11) per codificare immagini digitali, comprendente - mezzi di input (1104) configurati per acquisire almeno una porzione di almeno un'immagine (f) da una sorgente (S), - mezzi di output (1105) configurati per emettere in uscita almeno una porzione di un'immagine codificata verso una destinazione (1110), caratterizzato dal fatto di comprendere - mezzi di elaborazione (1100) configurati per a)leggere almeno una porzione di detta immagine {f), b)determinare un angolo di rotazione (Θ) sulla base di detta porzione di detta immagine (f), c)determinare informazioni di trasformata di rotazione (V<T>) sulla base di detto angolo di rotazione (Θ) e di almeno una informazione di trasformata discreta del coseno (V), d)calcolare coefficienti di trasformazione (ί<Λ>) sulla base dei pixel contenuti in detta porzione dell'immagine (f) e di dette informazioni di trasformata di rotazione (V<T>), e)emettere in uscita, mediante i mezzi di uscita (1105), i coefficienti di trasformazione (ί<Λ>) verso detta destinazione (1110). 2,Apparato codificatore (11) secondo la rivendicazione 1, in cui le informazioni di trasformata discreta del coseno (V) comprendono almeno una matrice bidimensionale utilizzabile per eseguire la trasformata discreta del coseno di immagini bidimensionali, e le informazioni di trasformata di rotazione (V') comprendono una matrice calcolata ruotando i vettori base delle informazioni di trasformata discreta del coseno (V), formando un'autobase per la laplaciana del grafo a griglia quadrato associato a detta porzione. 3,Apparato codificatore (11) secondo la rivendicazione 2, in cui 1'apparato ruota i vettori base di autospazi diversi di un angolo differente. 4,Apparato codificatore (11) secondo una qualsiasi delle rivendicazioni da 1 a 3, in cui i mezzi di elaborazione (1100) sono configurati per determinare 1'angolo di rotazione (Θ) selezionando un angolo di rotazione che minimizza o massimizza una funzione obiettivo che stima l'efficienza di codifica associata a detta porzione dell'immagine (f). 5,Apparato codificatore (11) secondo la rivendicazione 4, in cui la funzione obiettivo determina una metrica di ottimizzazione tasso-distorsione basata su un'immagine ricostruita {f<T>) calcolata sulla base dei coefficienti di trasformazione (f<A>). 6,Apparato codificatore (11) secondo una qualsiasi delle rivendicazioni da 4 a 5, in cui la funzione obiettivo determina una metrica di ottimizzazione psicovisiva basata su un'immagine ricostruita (f') calcolata sulla base dei coefficienti di trasformazione (f<A>). 7,Apparato codificatore (11) secondo una qualsiasi delle rivendicazioni da 1 a 6, in cui i mezzi di elaborazione (1100) sono configurati per eseguire una codifica intrafotogramma generando informazioni di predizione intrafotogramma, e per determinare 1'angolo di rotazione (Θ) sulla base di dette informazioni di predizione intra-fotogramma. 8,Apparato codificatore (11) secondo una qualsiasi delle rivendicazioni da 1 a 7, comprendente mezzi di memoria contenenti almeno un insieme di informazioni di trasformata di rotazione (V ), in cui ogni informazione di trasformata di rotazione (V<T>) è associata al rispettivo angolo di rotazione utilizzato per calcolare detta informazione di trasformata ruotata (V ) a partire dalla rispettiva informazione di trasformata discreta del coseno (V), in cui i mezzi di elaborazione (1100) sono anche configurati per selezionare le informazioni di trasformata di rotazione (V ) contenute nei mezzi di memoria sulla base dell'angolo di rotazione (Θ) determinato. 9,Apparato codificatore (11) secondo una qualsiasi delle rivendicazioni da 1 a 8, in cui i mezzi di elaborazione (1100) sono configurati per determinare 1'angolo di rotazione (Θ) anche sulla base di una seconda porzione di detta immagine (f)-10. Apparato codificatore (11) secondo una qualsiasi delle rivendicazioni da 1 a 9, in cui i mezzi di elaborazione (1100) sono anche configurati per determinare il numero di discontinuità presenti in detta porzione dell'immagine (f) e per ridurre le dimensioni di detta porzione dell'immagine (f) se il numero di discontinuità è maggiore di uno. 11. Apparato codificatore (11) secondo una qualsiasi delle rivendicazioni da 1 a 10, in cui i mezzi di elaborazione (1100) sono configurati per codificare almeno un fotogramma calcolando almeno un'immagine residua, e in cui la porzione di detta immagine (f) è una porzione di detta immagine residua. 12. Apparato (1110) per decodificare immagini digitali, comprendente - mezzi di input (1114) configurati per acquisire almeno una porzione codificata di un'immagine (f) da un canale di comunicazione o da un supporto di memorizzazione (C), - mezzi video di output (1115) configurati per produrre in uscita un'immagine ricostruita {f<T>), caratterizzato dal fatto di comprendere - mezzi di elaborazione (1200) configurati per a) ricevere, mediante i mezzi di input (1114), coefficienti di trasformazione (ί<Λ>) di detta porzione codificata dell'immagine (f), b) determinare un angolo di rotazione (Θ) sulla base della porzione codificata ricevuta dell'immagine (f), c) determinare informazioni di trasformata di rotazione {V<T>) sulla base di detto angolo di rotazione (Θ) e di almeno una informazione di trasformata discreta del coseno (V), d) calcolare 1'immagine ricostruita (f<1>) sulla base dei coefficienti di trasformazione (ί<Λ>) e delle informazioni di trasformata di rotazione {V<T>), e) produrre in uscita 1'immagine ricostruita (f' ) mediante detti mezzi video di output (1115). 13. Apparato decodificatore (1110) secondo la rivendicazione 12, in cui le informazioni di trasformata discreta del coseno (V) comprendono almeno una matrice bidimensionale utilizzabile per eseguire la trasformata discreta del coseno di immagini bidimensionali, e le informazioni di trasformata di rotazione (V ) comprendono una matrice di trasformazione calcolata ruotando i vettori base delle informazioni di trasformata discreta del coseno (V), formando un'autobase per la 1apiaclana del grafo a griglia quadrato associato a detta porzione. 14. Apparato decodificatore (1110) secondo la rivendicazione 13, in cui 1'apparato ruota i vettori base di autospazi diversi di un angolo differente. 15. Apparato decodificatore (1110) secondo la rivendicazione 13 o 14, in cui le informazioni di trasformata di rotazione (V') formano almeno una matrice bidimensionale e i mezzi di elaborazione (1200) sono configurati per calcolare 1'immagine ricostruita (f') moltiplicando la matrice di trasformazione trasposta per i coefficienti di trasformazione (ί<Λ>). 16. Apparato decodificatore (1110) secondo una qualsiasi delle rivendicazioni da 13 a 15, in cui i mezzi di elaborazione (1200) sono configurati per eseguire una decodifica intra-fotogramma sulla base di informazioni di predizione intra-fotogramma ricevute attraverso i mezzi di input (1114), e per determinare 1'angolo di rotazione (Θ) sulla base di dette informazioni di predizione intrafotogramma . 17. Apparato decodificatore (1110) secondo una qualsiasi delle rivendicazioni da 13 a 16, comprendente mezzi di memoria contenenti almeno un insieme di informazioni di trasformata di rotazione (V ), in cui ogni informazione di trasformata di rotazione (V ) è associata al rispettivo angolo di rotazione utilizzato per calcolare detta informazione di trasformata di rotazione (V ) a partire dalla rispettiva informazione di trasformata discreta del coseno (V), in cui i mezzi di elaborazione (1200) sono anche configurati per selezionare le informazioni di trasformata di rotazione (V ) contenute nei mezzi di memoria sulla base dell'angolo di rotazione (Θ) determinato. 18. Apparato decodificatore (1110) secondo una qualsiasi delle rivendicazioni da 13 a 17, in cui i mezzi di elaborazione (1200) sono configurati per determinare l'angolo di rotazione (Θ) anche sulla base di una seconda porzione già decodificata di detta immagine (f). 19. Apparato decodificatore (1110) secondo una qualsiasi delle rivendicazioni da 13 a 18, in cui i mezzi di elaborazione (1200) sono configurati per decodificare almeno una porzione di fotogramma sulla base di almeno un blocco di immagine residua ricevuto mediante i mezzi di input (1114). 20. Metodo per codificare immagini o flussi video digitali, comprendente - una fase di ricezione, in cui viene ricevuta almeno una porzione di un'immagine (f) mediante mezzi di input (1104), caratterizzato dal fatto di comprendere ulteriormente - una fase rotazionale, in cui mediante mezzi di elaborazione (1100) viene determinato un angolo di rotazione (Θ) sulla base di detta pozione di detta immagine (f), e in cui mediante i mezzi di elaborazione (1100) vengono calcolate informazioni di trasformata di rotazione (V ) sulla base di detto angolo di rotazione (Θ) e di almeno una informazione di trasformata discreta del coseno (V), una fase di trasformazione, in cui vengono calcolati coefficienti di trasformazione (ί<Λ>) sulla base dei pixel contenuti in detta porzione dell'immagine (f) e di dette informazioni di trasformata di rotazione (V ), - una fase di output, in cui i coefficienti di trasformazione {f<Λ>) vengono trasmessi a una destinazione (1110) mediante mezzi di output (1105). 21. Metodo per decodificare immagini o flussi video digitali, comprendente - una fase di ricezione, in cui vengono ricevuti coefficienti di trasformazione (ί<Λ>) di una porzione codificata di un'immagine {f) mediante mezzi di input (1114), - una fase rotazionale, in cui mediante mezzi di elaborazione (1200) viene determinato un angolo di rotazione (Θ) sulla base di detta porzione codificata di detta immagine (f), e in cui mediante i mezzi di elaborazione (1200) vengono calcolate informazioni di trasformata di rotazione (V ) sulla base di detto angolo di rotazione (Θ) e di almeno una informazione di trasformata discreta del coseno (V), - una fase di trasformazione , in cui viene calcolata un'immagine ricostruita (f<1>) sulla base dei coefficienti di trasformazione (ί<Λ>) e di dette informazioni di trasformata di rotazione {V<T>), una fase di output, in cui l'immagine ricostruita {f<T>) viene emessa in uscita mediante mezzi video di output (1115).
ITUB2015A005295A 2015-10-16 2015-10-16 Apparatuses and methods for encoding and decoding images ITUB20155295A1 (it)

Priority Applications (5)

Application Number Priority Date Filing Date Title
ITUB2015A005295A ITUB20155295A1 (it) 2015-10-16 2015-10-16 Apparatuses and methods for encoding and decoding images
PCT/IB2016/056138 WO2017064645A1 (en) 2015-10-16 2016-10-13 Apparatuses and methods for encoding and decoding images
CN201680060372.0A CN108141612B (zh) 2015-10-16 2016-10-13 用于编码和解码图像的装置和方法
EP16791692.3A EP3363202B1 (en) 2015-10-16 2016-10-13 Apparatuses and methods for encoding and decoding images
US15/768,450 US11012692B2 (en) 2015-10-16 2016-10-13 Apparatuses and methods for encoding and decoding images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ITUB2015A005295A ITUB20155295A1 (it) 2015-10-16 2015-10-16 Apparatuses and methods for encoding and decoding images

Publications (1)

Publication Number Publication Date
ITUB20155295A1 true ITUB20155295A1 (it) 2017-04-16

Family

ID=55085843

Family Applications (1)

Application Number Title Priority Date Filing Date
ITUB2015A005295A ITUB20155295A1 (it) 2015-10-16 2015-10-16 Apparatuses and methods for encoding and decoding images

Country Status (5)

Country Link
US (1) US11012692B2 (it)
EP (1) EP3363202B1 (it)
CN (1) CN108141612B (it)
IT (1) ITUB20155295A1 (it)
WO (1) WO2017064645A1 (it)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017135661A1 (ko) * 2016-02-01 2017-08-10 엘지전자 주식회사 그래프 기반 분리 가능한 변환 (graph-based separable transform)을 이용하여 비디오 신호를 인코딩 / 디코딩하는 방법 및 장치
US10462203B2 (en) * 2017-06-13 2019-10-29 Wowza Media Systems, LLC Hardware encoder
WO2019101295A1 (en) * 2017-11-21 2019-05-31 Huawei Technologies Co., Ltd. Image and video processing apparatuses and methods
CN111758260B (zh) 2018-09-02 2022-07-08 Lg电子株式会社 用于处理图像信号的方法及设备
WO2020092137A1 (en) * 2018-11-01 2020-05-07 Interdigital Vc Holdings, Inc. Video encoding and decoding using multiple transform selection
JP2020088694A (ja) * 2018-11-28 2020-06-04 キヤノン株式会社 画像処理装置、画像処理方法
CN113785576B (zh) 2019-04-23 2023-05-16 北京字节跳动网络技术有限公司 编解码视频中的二次变换的使用
US11122297B2 (en) * 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
US11432014B2 (en) * 2019-10-25 2022-08-30 Qualcomm Incorporated Parametric graph-based separable transforms for video coding
CN112911289B (zh) * 2021-05-10 2021-08-17 杭州雄迈集成电路技术股份有限公司 一种dct/idct变换优化方法和***
KR102571811B1 (ko) 2021-08-30 2023-08-25 연세대학교 산학협력단 기저 벡터 회전을 이용한 이산코사인변환 방법 및 영상 처리 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110135212A1 (en) * 2009-12-09 2011-06-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using rotational transform
US20120008675A1 (en) * 2010-07-09 2012-01-12 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003299083A (ja) * 2002-03-29 2003-10-17 Minolta Co Ltd 符号化装置、データ変換装置、符号化プログラムおよびデータ変換プログラム
US7471850B2 (en) * 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression
CN101155302B (zh) * 2006-09-25 2012-03-07 张燕生 一种基于对图像块数据旋转及变换的视频编解码方法
KR101370288B1 (ko) * 2007-10-24 2014-03-05 삼성전자주식회사 이미지 신호의 압축 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110135212A1 (en) * 2009-12-09 2011-06-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image by using rotational transform
US20120008675A1 (en) * 2010-07-09 2012-01-12 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BING ZENG ET AL: "Directional Discrete Cosine Transforms-A New Framework for Image Coding", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 18, no. 3, 1 March 2008 (2008-03-01), pages 305 - 313, XP011204025, ISSN: 1051-8215 *
RUI GUERREIRO ET AL: "Maximizing compression efficiency through block rotation", 16 November 2014 (2014-11-16), XP055284160, Retrieved from the Internet <URL:http://arxiv.org/pdf/1411.4290v1.pdf> [retrieved on 20160628] *
SELESNICK IVAN W ET AL: "A diagonally-oriented DCT-like 2D block transform", WAVELETS AND SPARSITY XIV, SPIE, 1000 20TH ST. BELLINGHAM WA 98225-6705 USA, vol. 8138, no. 1, 8 September 2011 (2011-09-08), pages 1 - 14, XP060021248, DOI: 10.1117/12.891884 *

Also Published As

Publication number Publication date
EP3363202A1 (en) 2018-08-22
WO2017064645A1 (en) 2017-04-20
EP3363202B1 (en) 2022-11-16
US11012692B2 (en) 2021-05-18
US20180338143A1 (en) 2018-11-22
CN108141612A (zh) 2018-06-08
CN108141612B (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
ITUB20155295A1 (it) Apparatuses and methods for encoding and decoding images
JP7156762B2 (ja) 方法、デコード装置およびコンピュータプログラム
US11438618B2 (en) Method and apparatus for residual sign prediction in transform domain
US9866863B1 (en) Affine motion prediction in video coding
Peng et al. Overview of screen content video coding: Technologies, standards, and beyond
CN109547801B (zh) 视频流编解码方法和装置
TW201722156A (zh) 於視訊寫碼中用於非正方形轉換單元之轉換係數之修改
US9094681B1 (en) Adaptive segmentation
JP2017538381A (ja) ビデオ符号化における成分間予測
CN106464866A (zh) 用于对视频样本的块进行去块的方法、设备和***
BR112021003783A2 (pt) método, aparelho e sistema para codificar e decodificar uma árvore de blocos de amostras de vídeo
GB2550995A (en) Block size adapative directional intra prediction
CN114009048B (zh) 视频译码中的滤波装置和方法
US9185414B1 (en) Video encoding using variance
CN107231557B (zh) 用于在视频编码中的高级帧内预测的递归块分区中的智能重排的编、解码方法及装置
CN107667532B (zh) 用于非基带信号代码化的变换选择
US10506256B2 (en) Intra-prediction edge filtering
US10158869B2 (en) Parallel video decoding processing apparatus and operating method thereof
US11627321B2 (en) Adaptive coding of prediction modes using probability distributions
WO2014026097A1 (en) Two-step quantization and coding method and apparatus
US8849022B2 (en) Methods and apparatuses for encoding and decoding image based on segments
US9756346B2 (en) Edge-selective intra coding
US9628790B1 (en) Adaptive composite intra prediction for image and video compression
Wang et al. Video Coding Algorithm Based on High Efficiency Video Coding (HEVC) and Hybrid Transforms
KR102299573B1 (ko) 실시간으로 인-루프 필터링을 수행할 수 있는 애플리케이션 프로세서, 이의 작동 방법, 및 이를 포함하는 시스템