ITTO20120647A1 - Procedimenti e sistemi per il trattamento di immagini stereoscopiche, prodotti informatici e supporto relativi - Google Patents

Procedimenti e sistemi per il trattamento di immagini stereoscopiche, prodotti informatici e supporto relativi Download PDF

Info

Publication number
ITTO20120647A1
ITTO20120647A1 IT000647A ITTO20120647A ITTO20120647A1 IT TO20120647 A1 ITTO20120647 A1 IT TO20120647A1 IT 000647 A IT000647 A IT 000647A IT TO20120647 A ITTO20120647 A IT TO20120647A IT TO20120647 A1 ITTO20120647 A1 IT TO20120647A1
Authority
IT
Italy
Prior art keywords
single image
image
extracted
extracted single
block
Prior art date
Application number
IT000647A
Other languages
English (en)
Inventor
Sebastiano Battiato
Giuseppe Digiore
Alessandro Ortis
Francesco Rundo
Original Assignee
St Microelectronics Srl
Uni Degli Studi Di Catania Dipartimento Di
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 St Microelectronics Srl, Uni Degli Studi Di Catania Dipartimento Di filed Critical St Microelectronics Srl
Priority to IT000647A priority Critical patent/ITTO20120647A1/it
Priority to US13/949,387 priority patent/US9183644B2/en
Publication of ITTO20120647A1 publication Critical patent/ITTO20120647A1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/139Format conversion, e.g. of frame-rate or size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

DESCRIZIONE dell’invenzione industriale dal titolo:
“Procedimenti e sistemi per il trattamento di immagini stereoscopiche, prodotti informatici e supporto relativiâ€
TESTO DELLA DESCRIZIONE
Campo tecnico
La presente descrizione si riferisce al trattamento delle immagini stereoscopiche.
Varie forme di attuazione possono riferirsi al trattamento di immagini stereoscopiche in un contesto di formato MPO.
Varie forme di attuazione possono riferirsi al trattamento di immagini per applicazioni nel settore dell’intrattenimento (entertainment).
Sfondo tecnologico
La stereoscopia à ̈ una tecnica di rappresentazione e proiezione di immagini (ad es. di filmati), che simula la visione binoculare dell’apparato visivo umano per indurre nel cervello di chi osserva la percezione della tridimensionalità.
La visione binoculare, infatti, à ̈ ciò che permette ai nostri occhi di percepire la profondità delle immagini e quindi la realtà in tre dimensioni.
Gli occhi umani sono posizionati ad una distanza (detta distanza interpupillare) tra i 6 e i 7 cm; la visione binoculare si basa sul fatto che gli occhi vedono la stessa scena da due posizioni differenti, il cervello “fonde†queste due immagini e genera la profondità.
Confrontando le due immagini, il cervello à ̈ in grado di percepire la distanza degli oggetti: più un oggetto risulta scostato nelle due immagini, più esso viene percepito come vicino o lontano. Infatti, nella proiezione stereoscopica, la percezione di profondità deriva dalle differenti visioni che abbiamo tra l’occhio sinistro e l’occhio destro.
La visione umana utilizza spunti o segnali (cue) diversi per determinare le profondità relative in una scena osservata.
Alcuni di questi segnali sono:
- la stereopsi;
- l’adattamento del bulbo oculare (fuoco del bulbo oculare);
- l'occlusione di un oggetto da parte di un altro;
- l’angolo di visione sotteso da un oggetto di dimensioni note;
- la prospettiva lineare (convergenza dei bordi paralleli);
- la posizione verticale (gli oggetti più in alto nella scena in generale tendono ad essere percepiti come più lontani);
- nebulosità (haze), desaturazione e viraggio al blu (bluishness);
- variazione della dimensione di dettaglio di una configurazione strutturata (textured).
La stereoscopia sfrutta la valorizzazione dell'illusione della profondità in una fotografia, un filmato o altre immagini bidimensionali presentando un'immagine leggermente diversa per ciascun occhio aggiungendovi quindi il primo di questi segnali (stereopsi).
Vari sistemi di visualizzazione utilizzano per prospettare le immagini questo metodo inventato da Sir Charles Wheatstone nel 1838.
In varie soluzioni, le immagini stereoscopiche vengono realizzate effettuando due “scatti†, sinistro e destro (left and right) con un dispositivo dotato di due obiettivi distanziati della distanza interpupillare media o con due dispositivi distanziati.
Le due immagini vengono proiettate facendo in modo che l’immagine ripresa con l’obiettivo sinistro sia vista solo dall’occhio sinistro e quella ripresa con l’obiettivo destro solo dall’occhio destro. Nella configurazione più semplice si applicano due filtri polarizzati (occhiali polarizzati). Questi filtri modificano la polarizzazione della luce in modo che ogni occhio veda esclusivamente lo scatto catturato dal relativo dispositivo. Il cervello dello spettatore avrà quindi l’illusione che l’immagine sia posizionata nel punto di convergenza delle due immagini.
La stereoscopia trova applicazione in molti campi. La fotografia à ̈ la più antica applicazione della stereoscopia, dalla stampa fotografica fino alle immagini digitali. Più recentemente, la stereoscopia à ̈ stata applicata dall’industria multimediale nei videogiochi e nella telefonia mobile. Oltre al campo dell’intrattenimento, la stereoscopia ha trovato spazio anche nel campo scientifico. La stereoscopia à ̈ applicata nelle osservazioni astronomiche attraverso l’utilizzo di due telescopi a opportuna distanza puntati sul medesimo oggetto. Ad esempio, questo à ̈ stato fatto nelle esplorazioni spaziali senza equipaggio in cui questa tecnica può essere utilizzata per consentire una visione tridimensionale dei luoghi visitati. Secondo gli stessi principi, la stereoscopia à ̈ applicata anche all’osservazione microscopica ed in sistemi di riconoscimento degli ostacoli che equipaggiano alcuni autoveicoli.
Nel corso degli ultimi anni, le prestazioni e le potenzialità delle macchine fotografiche digitali sono notevolmente migliorate e questo offre la possibilità di rilevare e registrare non solo dati relativi ad immagini singole, ma anche dati relativi ad immagini multiple che vengono correlati per visualizzare ad es. su un monitor dati di immagine con numero di pixel specificato.
Questo possibile scenario di applicazione ha suscitato l’interesse della Camera & Imaging Products Association (CIPA), istituita il 1 luglio 2002 allo scopo di facilitare lo sviluppo, produzione e la vendita di fotocamere standard a pellicola, fotocamere digitali e relativi dispositivi, strumenti e software.
La CIPA ha quindi definito uno standard, denominato Multiple Picture format of JPEG Objects, o brevemente MPO (Multi-Picture Object).
Il formato MPO à ̈ costituito da più immagini JPEG; il file MPO comprende estensioni di immagini multiple (Multiple Images o MP) che consentono di incorporare più immagini singole in un unico file, con la singola immagine che ha la stessa struttura dei dati Exif JPEG, ossia:
- un file Baseline MP costituito da un’immagine primaria e un'ulteriore immagine duplicata, il tutto formattato per una visualizzazione ottimale su TV e altri dispositivi di visualizzazione. Il file Baseline MP utilizza estensioni Exif e specifica un formato di file comprendente estensioni MP che permettono di memorizzare l'immagine primaria ed una o più immagini addizionali;
- un file MP Extended che consiste in una raccolta di immagini corrispondenti ad uno dei tipi MP definiti in questa specifica; in particolare à ̈ definito un tipo di MP Multi-view che presenta tre sottotipi: Panorama, Disparity, e Multi Angle. Con questo formato di file à ̈ possibile registrare anche altre immagini.
Il formato denominato Exchangeable image file format (Exif) Ã ̈ uno standard che specifica i formati per le immagini, i suoni ed i tag accessori utilizzati da macchine fotografiche digitali (compresi gli smartphone), scanner e altri sistemi di manipolazione di file di immagini e suoni registrati da fotocamere digitali.
Quando si utilizza il formato Exif per i file JPEG, il dato Exif à ̈ memorizzato in uno degli utility Application Segments di JPEG, il segmento APP1 (segmento marcatore 0xFFE1), che contiene al suo interno un intero file TIFF.
I formati specificati nello standard Exif sono definiti come strutture di cartella (folder structure) che si basano su formati Exif-JPEG e formati di registrazione su memoria. Quando questi formati vengono utilizzati come file Exif/DCF insieme alla specifica DCF (per una migliore interoperabilità tra dispositivi di tipo diverso), il loro ambito di applicazione abbraccia i dispositivi, i supporti di registrazione ed il software applicativo che li gestisce.
In breve, i file MPO identificano un formato per memorizzare immagini multiple in un solo file. Tale formato implementa una catena di file JPEG in un unico file corredato di opportuni tag che permettono di individuare le singole immagini e di conoscere la loro collocazione nell’ambito dell’immagine multidimensionale.
In varie soluzioni, i file MPO possono essere utilizzati per rappresentare immagini tridimensionali come ad esempio le immagini stereoscopiche. I tag MPO, quindi, contengono non solo le informazioni delle singole immagini come file JPEG a se stanti, ma anche una serie di parametri utili ai decoder per generare l’immagine tridimensionale composta dalle singole immagini contenute nel file MPO.
Le immagini stereoscopiche sono ottenute combinando due immagini dello stesso oggetto visto da due punti posti ad una distanza proporzionale alla distanza interpupillare umana.
Tali immagini vengono memorizzate in un file MPO e corredate di opportuni tag.
Ogni file MPO stereoscopico, quindi, occupa uno spazio in memoria circa pari al doppio dello spazio occupato da una sola immagine JPEG.
Inoltre, le due immagini memorizzate riguardano lo stesso oggetto; risulta quindi evidente che il contenuto informativo di queste sarà molto simile, con la possibilità di individuare molte informazioni ridondanti.
La visione stereoscopica, considerata nel contesto generale appena richiamato, forma oggetto di un’ampia letteratura scientifica che affronta, ad esempio, temi quali:
- l’uso dell’algoritmo WTA (Winner Take All) di Kohonen per migliorare la qualità delle singole immagini in un'immagine/video stereoscopici;
- il miglioramento della qualità e della larghezza di banda del video stereoscopico;
- il miglioramento della ricostruzione di immagini video stereoscopiche per mezzo di una stima della disparità fra singole immagini;
- la codifica di immagini stereoscopiche con metodi basati su wavelet e la teoria dei frattali.
Si apprezzerà altresì che lo standard MPO non prevede di per sé alcun livello di compressione.
Fra gli articoli in argomento si possono citare:
A.A.V.V.: “Fast disparity estimation using geometric properties and selective sample decimation for stereoscopic image coding†IEEE Transactions on Consumer Electronics, Vol. 45, n. 1, pp. 203 – 209;
Coltekin, A.: “Space variant image coding for stereoscopic media†- Picture Coding Symposium, 2009, PCS 2009,pp. 1 – 4;
Strintzis, M.G.; Malassiotis, S.: “Object-based coding of stereoscopic and 3D image sequences†– IEEE Signal Processing Magazine, vol. 16, n. 3, pp. 14 – 28;
Zhu Zhongjie; Jiang Gangyi; Yu Mei; Wu Xunwei: “Fast disparity estimation algorithm for stereoscopic mage sequence coding†- TENCON '02. Proceedings. 2002 IEEE Region 10 Conference on Computers, Communications, Control and Power Engineering, vol. 1, pp. 285 – 288;
Bensalma, R.; Larabi, M.-C: “Optimizing the disparity map by the integration of HVS binocular properties for efficient coding of stereoscopic images†– 3DTV-Conference: The True Vision - Capture, Transmission and Display of 3D Video (3DTV-CON), 2010, pp. 1 – 4;
Mi-Hyun Kim; Kwang-Hoon Sohn: “Edge-preserving directional regularization technique for disparity estimation of stereoscopic images†- IEEE Transactions on Consumer Electronics, vol. 45, n. 3, pp. 804 – 811;
Boulgouris, N.V.; Strintzis, M.G.: “Embedded coding of stereo images†- Proceedings 2000 International Conference on Image Processing, 2000, vol. 3, pp. 640 – 643.
Scopo e sintesi
Sussiste quindi l'esigenza di trovare soluzioni in grado di portare ad ulteriori perfezionamenti delle soluzioni descritte in precedenza, ad esempio, ma non esclusivamente, in termini di efficienza di compressione ai fini della trasmissione e della memorizzazione, senza che ciò vada a scapito del livello qualitativo.
Varie forme di attuazione si prefiggono lo scopo di dare una risposta a tale esigenza.
Varie forme di attuazione permettono di conseguire tale scopo grazie alle caratteristiche richiamate in modo specifico nelle rivendicazioni che seguono.
Varie forme di attuazione possono riguardare:
- un procedimento per codificare un’immagine stereoscopica,
- un procedimento per decodificare un’immagine stereoscopica,
- un codificatore configurato per codificare un’immagine stereoscopica,
- un decodificatore configurato per decodificare un’immagine stereoscopica,
- un prodotto informatico caricabile nella memoria di almeno un elaboratore elettronico e comprendente porzioni di codice software per attuare i passi di un procedimento di codifica,
- un prodotto informatico caricabile nella memoria di almeno un elaboratore elettronico e comprendente porzioni di codice software per attuare i passi di un procedimento di decodifica, e
- un supporto, quale ad esempio un supporto di memoria o un vettore di trasmissione, che veicola un’immagine stereoscopica.
Il riferimento ad un prodotto informatico caricabile nella memoria di almeno un elaboratore e comprendente parti di codice software suscettibili di realizzare fasi di procedimento quando il prodotto à ̈ eseguito su almeno un elaboratore à ̈ qui inteso essere equivalente al riferimento ad un mezzo leggibile da elaboratore contenente istruzioni per il controllo del sistema di elaborazione per coordinare l’attuazione del procedimento secondo l'invenzione. Il riferimento ad "almeno ad un elaboratore" à ̈ inteso a mettere in luce la possibilità di realizzare varie forme di attuazione di tipo modulare e/o distribuito.
Le rivendicazioni formano parte integrante degli insegnamenti tecnici qui somministrati in relazione all'invenzione.
Varie forme di attuazione possono comportare soluzioni alternative per codificare e decodificare file MPO.
Varie forme di attuazione possono comportare la realizzazione di una libreria per gestire e manipolare i file MPO.
Varie forme di attuazione possono essere basate sull’abbassamento della qualità di una delle due immagini, il che comporta da subito un risparmio in termini di memoria.
In varie forme di attuazione, un’immagine a qualità “bassa†può essere migliorata mediante un algoritmo di decodifica basato sulle informazioni contenute sull’immagine ad alta qualità.
Varie forme di attuazione possono comportare lo svolgimento di una procedura per il miglioramento di una immagine che sfrutta le informazioni contenute in un’altra immagine fortemente correlata alla prima.
In varie forme di attuazione, una tale procedura può permettere di ottenere un risparmio in termini di memoria per l’archiviazione di file MPO costituiti da una catena di immagini correlate e che implementano immagini stereoscopiche.
Varie forme di attuazione possono basarsi sul riconoscimento del fatto che una coppia di immagini (fotogrammi) catturate da due obiettivi distanziati in modo da simulare la visione binoculare umana possono presentare molte parti comuni, per cui in essi sono presenti dati ridondanti. In varie forme di attuazione, una procedura di ricostruzione può sfruttare questa ridondanza per ricostruire una delle due immagini precedentemente degradata.
In varie forme di attuazione, una tale procedura di ricostruzione può permettere di ottenere un notevole risparmio in termini di spazio di memorizzazione senza indurre una perdita di qualità apprezzabile.
Breve descrizione delle figure
Varie forme di attuazione saranno ora descritte, a puro titolo di esempio non limitativo, con riferimento alle figure annesse, in cui:
- la figura 1 Ã ̈ uno schema a blocchi di massima di un dispositivo di codifica di immagini stereoscopiche,
- la figura 2 Ã ̈ uno schema a blocchi di massima di un dispositivo di codifica secondo forme di attuazione,
- la figura 3 Ã ̈ uno schema a blocchi di massima di un dispositivo di decodifica secondo forme di attuazione, e - le figure 4 a 8 sono schemi a blocchi funzionali relativi a forme di attuazione.
Descrizione particolareggiata
Nella seguente descrizione sono illustrati vari dettagli specifici finalizzati ad un’approfondita comprensione di varie forme di attuazione. Le forme di attuazione possono essere realizzate senza uno o più dei dettagli specifici, o con altri metodi, componenti, materiali, etc. In altri casi, strutture, materiali o operazioni noti non sono mostrati o descritti in dettaglio per evitare di rendere oscuri i vari aspetti delle forme di attuazione.
Il riferimento ad “una forma di attuazione†nell’ambito di questa descrizione sta ad indicare che una particolare configurazione, struttura o caratteristica descritta in relazione alla forma di attuazione à ̈ compresa in almeno una forma di attuazione. Quindi, frasi come “in una forma di attuazione†, eventualmente presenti in diversi luoghi di questa descrizione non sono necessariamente riferite alla stessa forma di attuazione. Inoltre, particolari conformazioni, strutture o caratteristiche possono essere combinate in ogni modo adeguato in una o più forme di attuazione.
I riferimenti qui utilizzati sono soltanto per comodità e non definiscono dunque l’ambito di tutela o la portata delle forme di attuazione.
La panoramica sulla stereoscopia e l’analisi del formato MPO condotte nella parte introduttiva di questa descrizione devono considerarsi a tutti gli effetti parte integrante della presente descrizione particolareggiata.
Così come già osservato in precedenza, le prestazioni e le potenzialità delle fotocamere digitali hanno conosciuto negli ultimi anni una rapida evoluzione. L’ambito della fotografia digitale si à ̈ esteso fino a includere prodotti come TV, dispositivi di telecomunicazione e altre applicazioni hardware e software. Questo fenomeno ha portato nuove applicazioni per la fotografia digitale, molte delle quali richiedono l’uso di immagini multiple correlate per rappresentare una particolare esperienza fotografica. Il formato Multi-Picture Object (MPO) à ̈ stato appunto sviluppato per soddisfare questa necessità, definendo un metodo per memorizzare immagini multiple e metadati associati in un singolo file.
Cosi come già almeno in parte detto, MPO specifica un formato dati, utilizzato dalle fotocamere digitali, che implementa una catena di immagini memorizzate in un singolo file aggiungendo dei tag che successivamente permetteranno a queste immagini di essere associate e usate opportunamente.
I metadati del formato MPO sono memorizzati nell’application segment APP2 di ogni immagine singola o individual image. In più, la prima immagine contiene un campo chiamato MP index IFD che descrive la struttura di tutto il file MPO, la correlazione tra le singole immagini e la loro posizione all’interno del file.
Ogni immagine singola ha la stessa struttura di un file ExifJPEG. Exif à ̈ una specifica per file di immagini che aggiunge ai formati esistenti (JPEG, TIFF e RIFF) specifiche etichette (tag) contenenti metadati.
Alcuni di questi metadati possono essere:
- informazioni di data ed ora;
- impostazioni della fotocamera;
- una miniatura per visualizzare un’anteprima ad esempio sul display LCD;
- informazioni geografiche;
- descrizioni ed informazioni di copyright.
Il formato Exif presenta un certo numero di svantaggi, legati soprattutto alla struttura dei dati Exif.
Ad esempio, nelle specifiche dello standard Exif, la profondità del colore à ̈ sempre 24 bit, mentre molte macchine fotografiche sono oggigiorno in grado di catturare molti più dati, ad es. 36 bit di colore per pixel.
La specifica Exif comprende anche una descrizione FPXR (FlashPix-Ready) che può essere registrata nell’APP2 di un’immagine JPEG. Questo aspetto può risultare in contraddizione con la definizione della struttura del formato MPO, che utilizza l’APP2 per memorizzare i suoi metadati. Quindi, i programmi che manipolano i file MPO e si trovano a gestire questa eventualità devono tenere in conto il fatto che lo standard di riferimento per i file MPO non specifica alcun Application Segment alternativo rispetto ad APP2 per memorizzare i suoi metadati.
Ogni MPO à ̈ costituito da almeno due immagini singole (individual image), ognuna delle quali à ̈ delimitata da due marker SOI (Start Of Image) e EOI (End Of Image). Tra questi due marker si trovano l'application segment APP1, contenente i dati Exif, l'application segment APP2, contenente i dati MPO, ed infine i campi relativi all'immagine vera e propria secondo la codifica JPEG. Inoltre, solo per la prima immagine singola, l'application segment APP2 include un campo chiamato MP Index IFD. Quest'ultimo contiene tutte le informazioni che descrivono la struttura sommaria delle immagini singole all'interno del file.
All’interno di APP2, oltre ad MP Index IFD, può trovarsi un ulteriore campo chiamato MP Attribute IFD. Il campo MP Attribute IFD, se presente, contiene una serie di metadati relativi alla immagine singola utili durante la fase di riproduzione dell’immagine stessa. Il livello di funzionalità (Tag Support Level) di questi tag dipende dal tipo di immagine singola utile. Il tipo di immagine singola (individaul image) à ̈ specificato da un sottoinsieme di bit del campo Individual image Attribute.
Per ogni immagine singola o individual image esiste un campo di 4 byte, chiamato Individual image Attribute, memorizzato all’interno del campo MP Entry.
Tale campo à ̈ costituito da 6 parti:
- Dependent Parent Image Flag: questo flag vale 1 se l’individual image à ̈ la parent image di un’altra individual image. Altrimenti questo flag vale 0.
- Dependent Child Image Flag: questo flag vale 1 se l’individual image à ̈ la child image di un’altra individual image. Altrimenti questo flag vale 0.
- Representative Image Flag: questo flag vale 1 se l’individual image à ̈ l’immagine rappresentativa (representative image) del file MPO. Altrimenti questo flag vale 0. Può esserci solo una individual image con questo flag pari a 1 nello stesso file MPO.
- Un campo riservato di 3 bit.
- Image Data Format: questo codice di 3 bit specifica il formato di dati dell’individual image, il formato JPEG corrisponde al valore 0.
- MP Type Code: questo codice specifica il tipo di individual image.
All’interno del campo MP Type Code sono presenti 4 parti:
- un campo riservato di 4 bit;
- un campo Type Info;
- un campo riservato di 12 bit; e
- un campo denominato Sub-Type.
Sula base di queste considerazioni à ̈ possibile individuare tre classi e cinque sottoclassi di individual image:
- Baseline MP Primary Image
- Large Thumbnail
- Class 1
- Class 2
- Multi-Frame Image
- Panorama
- Disparity
- Multi-Angle
Le immagini singole (individual image) che compongono un file MPO relativo ad una immagine stereoscopica hanno il campo MP Type uguale al valore esadecimale 020002, cioà ̈ sono di tipo Disparity Image. In questo caso, il tag MP Individual Image Number à ̈ obbligatorio, cioà ̈ il suo livello di funzionalità (Tag Support Level) à ̈ Conditionally Mandatory.
Il valore di questo tag rappresenta il numero del viewpoint che identifica la posizione e la sequenza dell’obiettivo (viewpoint) durante la ripresa. Il valore del tag MP Individual Image Number inizia con 1. I valori di questi tag nelle Disparity Images sono numerati a partire dal viewpoint più a sinistra, con valore 1, fino a quello più a destra. Per le immagini stereoscopiche si hanno quindi due immagini singole o individual image, la prima avrà il tag MP Individual Image Number pari ad 1, la seconda uguale a 2.
Un altro tag di MP Attribute IFD previsto per le Disparity Images à ̈ il tag Base Viewpoint Number. Questo tag può essere obbligatorio per le immagini di tipo Multi Frame, cioà ̈ per le individual image di tipo Disparity e Multi-Angle Image. Il significato di questo parametro dipende dal tipo di immagine. Per le immagini stereoscopiche (di tipo Disparity Image), il viewpoint number à ̈ il valore del MP Individual Image Number del viewpoint base. Il viewpoint base à ̈ il punto di riferimento dal quale vengono misurati gli angoli di convergenza, divergenza e gli altri parametri relativi alla posizione dei diversi viewpoint che compongono una immagine multidimensionale. Risulta quindi evidente la ragione per cui questo campo può essere obbligatorio: i parametri spaziali di ogni individual image sono delle misure che necessitano di un punto di riferimento unico e uguale per tutti.
Ad esempio, nel caso di Disparity Image con quattro viewpoints possono essere indicati corrispondenti valori di angolo di convergenza o Convergence Angle (ad es. -2°,2° e 4°) e di lunghezza di base o Baseline Length (ad es. 65, 65 e 130 mm). I valori di Convergence Angle possono essere misurati prendendo come riferimento l’asse che congiunge il viewpoint base ed il target, mentre i valori di Baseline Length corrispondono alla distanza, in millimetri, dal punto di visuale (viewpoint) base. In questo esempio, tutte le individual image possono avere come Base Viewpoint Number il valore 2, cioà ̈ il valore di MP Individual Image Number del viewpoint base.
Quanto sopra riportato corrisponde ad informazioni note, il che rende superfluo fornire in questa sede una descrizione di maggior dettaglio.
Gli Inventori hanno osservato che le due immagini comprese in un file MPO stereoscopico possono essere molto simili, per cui, calcolando la differenza tra i valori delle due immagini, si ottengono di solito numeri molto piccoli con molti valori vicini a zero.
Gli Inventori hanno altresì osservato che, implementando una codifica che rileva la differenza tra i valori delle due immagini, à ̈ possibile conseguire risultati molto soddisfacenti dal punto di vista del risparmio in memoria; tuttavia la perdita di qualità causata principalmente dalla codifica JPEG dei dati elaborati può -almeno in alcuni casi – risultare eccessiva.
Gli Inventori hanno notato che à ̈ possibile abbassare la qualità di una delle due immagini al fine di ottenere un immediato risparmio in memoria: successivamente l’immagine a qualità “bassa†può essere migliorata mediante una procedura di decodifica che sfrutta le informazioni contenute sull’immagine a qualità “alta†. Un metodo di ricostruzione di questo tipo può essere basato sul calcolo della media aritmetica tra i dati dell’immagine ad alta qualità e quelli dell’immagine compressa.
Questo modo di procedere può portare a risultati migliori rispetto alla codifica differenziale, ma l’immagine ricostruita a partire dai dati compressi può presentare difetti nelle regioni di maggiore differenza tra due immagini. Tali difetti possono essere eliminati utilizzando una media mobile esponenziale EWMA parametrizzata.
In varie forme di attuazione, à ̈ possibile utilizzare la ricostruzione di Kohonen (Kohonen Block Reconstruction o KBR) abbinata ad una ricerca del pattern mediante correlazione incrociata (cross correlation) normalizzata tra l’immagine compressa e quella correlata.
In varie forme di attuazione, quest’ultimo metodo ha portato a risultati migliori rispetto ai precedenti.
Varie forme di attuazione possono quindi sfruttare la ridondanza tra le coppie di immagini di un file MPO per ricostruire una delle due immagini precedentemente degradata.
A livello di dispositivi di ripresa si può implementare una pipeline e nella fase di codifica del file MPO à ̈ possibile impostare il valore di MP Format Identifier a 0x4D504643 facendo sì che la dimensione della seconda individual image sia quella dell’immagine compressa a bassa qualità.
In fase di visualizzazione, si può pensare di applicare un algoritmo di decodifica per ricostruire la seconda immagine ed ottenere quindi l’immagine stereoscopica. Su questo aspetto va osservato che le due immagini componenti un’immagine stereoscopica ottenute catturando due fotogrammi con due obiettivi distanziati differiscono per un certo angolo sull’asse z. Pur essendo diverse, esse presentano molte parti comuni.
Si può poi considerare di definire l’oggetto (o “target†) che interessa fotografare. In generale, gli obiettivi delle telecamere catturano, insieme al target, una serie di oggetti presenti nell’ambiente circostante. Il target sarà sempre contenuto nelle due immagini mentre gli altri elementi in secondo piano e sullo sfondo potranno apparire o no in ciascuna delle due immagini; oppure, così come spesso capita, nelle due immagini stereoscopiche compariranno parti diverse degli stessi oggetti.
Pur essendo diverse, le due immagini possono presentare parti comuni nelle zone centrali (target), mentre vicino ai bordi possono presentare differenze – anche rilevanti – dovute al fatto che uno dei due obiettivi di ripresa inquadra oggetti o parti di essi che non vengono inquadrati dall’altro. Le differenze più grandi, quindi, riguardano lo sfondo e gli oggetti in secondo piano: entrambi gli obiettivi sono centrati sul target e la variazione del solo asse z può causare una forte rotazione degli oggetti lontani dal centro.
Si supponga, per fare un esempio, che il target sia un vaso di fiori collocato su un tavolo.
Potrà quindi avvenire che, ad esempio:
- l’immagine destra contiene oggetti non inquadrati nell’immagine sinistra, ad es.: una finestra e un albero all’esterno, un lampadario, il bordo di un divanetto,
- nell’immagine sinistra siano presenti, ad esempio, parti di mobile non visibili nell’immagine destra mentre una parete di sfondo risulta essere meno illuminata che nell’immagine destra di prima.
Ancora, accanto a parti ad es. del target inquadrate in entrambe le immagini, vari oggetti, ad esempio una sedia, possono presenti in entrambe le immagini ma in posizioni leggermente diverse.
Riassumendo, le due immagini che compongono una immagine stereoscopica possono avere molte parti comuni concentrate nella zona centrale ed alcune parti molto diverse vicino ai bordi. Gli oggetti di una immagine che sono presenti anche nell’altra si trovano in una posizione leggermente diversa: l’entità di tale scostamento aumenta allontanandosi dal centro e, se lo scostamento à ̈ elevato, può capitare che certi oggetti presenti in una immagine non siano visualizzati nell’altra. Trattandosi di una trasfigurazione complessa, risultato della combinazione di più trasformazioni e non di una semplice traslazione, tali oggetti non saranno esattamente uguali ma molto simili.
In una catena di trattamento (ad es. pipeline) standard di creazione di un file MPO, il dispositivo cattura due immagini successivamente compresse secondo lo standard JPEG e assemblate dall’encoder che inserisce gli opportuni tag e genera il file MPO finale.
Una soluzione di questo tipo à ̈ schematicamente rappresentata nella figura 1, dove sono presenti due dispositivi di rilevazione delle immagini (ad esempio due fotocamere 1 e 2), che generano due rispettivi segnali di immagine (singola) 10A e 10B relativi ad un “target†indicato con T. Questi segnali (che si assumeranno essere in forma digitale, ad esempio espressi sotto forma di matrici di pixel) sono inviati a rispettivi moduli di codifica 20A, 20B (JPEG o equivalenti) ed i segnali codificati sono inviati ad un modulo di codifica MPO, indicato con 30, che produce il file MPO mettendo insieme le due immagini codificate.
In varie soluzioni, questo schema può essere realizzato sotto forma di una pipeline implementata direttamente nel dispositivo che esegue la compressione JPEG e la codifica del file MPO subito dopo aver catturato le due immagini o fotogrammi.
Gli Inventori hanno notato che uno svantaggio di questa pipeline riguarda lo spazio in memoria necessario per memorizzare un file MPO, che risulta circa il doppio rispetto una singola immagine JPEG.
Varie forme di attuazione possono pertanto prevedere di utilizzare una struttura di trattamento (ad es. pipeline) diversa, in cui la compressione JPEG della seconda immagine singola 10B viene effettuata con un livello di qualità più basso. Come risultato, il file MPO risultante, indicato in figura come MPO–C, occuperà meno spazio in memoria.
Una possibile forma di attuazione à ̈ schematicamente rappresentata nella figura 2, dove ancora una volta sono presenti due dispositivi di rilevazione delle immagini (ad esempio due fotocamere 1 e 2), che generano due rispettivi segnali di immagine (singola) 10A e 10B relativi ad un “target†indicato con T. In vista dell’invio al modulo di codifica 30, mentre una immagine (destra o, rispettivamente, sinistra) à ̈ inviata, così come nel caso della figura 1, al modulo di codifica 20A, l’altra immagine (sinistra o, rispettivamente, destra) à ̈ inviata ad un modulo di codifica 200B qualità più bassa operante secondo i criteri meglio descritti nel seguito.
Le espressioni “destra o, rispettivamente, sinistra†e “sinistra o, rispettivamente, destra†stanno ad indicare il fatto che, in varie forme di attuazione, quale immagine (destra o sinistra) sia sottoposta a quale trattamento (qualità normale o più bassa) può essere del tutto indifferente.
Il fatto che il file prodotto dal codificatore MPO sia qui indicato come MPO-C intende mettere in luce il fatto che, in varie forme di possibile attuazione dell’esempio considerato nella figura 2, il file MPO risultante potrà avere il tag MP Format Identifier settato al valore esadecimale 0x4D504643, che corrisponde alla stringa di 4 byte ASCII “MPFC†, mentre nell’esempio considerato nella figura 1 il file MPO ha di solito il MP Format Identifier pari a 0x4D504600 (“MPF†).
Il tag in questione identifica infatti il formato del file e l’aggiunta del carattere †̃C’ può indicare che si tratta di un file MPO compresso.
Il termine “bassa†, riferito alla qualità, à ̈ qui utilizzato in senso relativo per indicare che la codifica attuata nel blocco 200B presenta una qualità inferiore rispetto alle codifica attuata nel blocco 20A. Tale qualità inferiore à ̈ suscettibile di essere “ricuperata†in sede di decodifica secondo i criteri meglio esemplificati nel seguito.
Ad esempio, la tabella che segue mette a confronto diversi livelli di qualità conseguibili in una codifica JPEG partendo da un livello massimo (Q = 100) e passando via via a livelli più bassi sino ad arrivare ad un livello minimo (Q = 1).
<Dimensioni>Rapporto di Qualità
(bytes)compressione Highest
<83,261 2.6:1>quality (Q = 100)
High quality
15,138 15:1
(Q = 50)
Medium
9,553 23:1 quality (Q = 25)
Low quality
4,787 46:1
(Q = 10)
Lowest
1,523 144:1 quality (Q = 1)
In varie forme di attuazione, in fase di decodifica del file MPO-C Ã ̈ possibile operare secondo i criteri schematicamente rappresentati nella figura 3.
Dal file MPO-C in ingresso si ottengono - ad esempio con un parser MPO di tipo noto, indicato con 35 - le componenti relativa alla prima immagine singola A (destra o sinistra) ed alla seconda immagine singola B (sinistra o destra). La prima immagine à ̈ sottoposta a decodifica (ad es. JPEG o equivalenti) “normale†in un modulo di decodifica 40A. La seconda immagine à ̈ invece sottoposta a decodifica di qualità “più bassa†in un modulo di decodifica 400B.
In entrambi i casi, il risultato sarà una immagine 50A, 50B (che anche qui si assumerà essere in forma digitale, ad esempio sotto forma di matrici di pixel) che può essere vista come suddivisa in blocchi di dimensioni più piccole.
Così come già indicato, in varie forme di attuazione, in fase di decodifica si possono estrarre le due immagini singole 50A, 50B e l’immagine a qualità più bassa 50B può essere migliorata (con la funzione indicata nel complesso dal blocco 100 della figura 3) utilizzando le informazioni contenute nella immagine ad alta qualità 50A.
In varie forme di attuazione, le parti comuni possono essere ricostruite e migliorate, e per quelle non comuni si può utilizzare l’immagine a qualità più bassa.
Questo modo di operare può essere visto come una possibile causa di perdita di informazione legata al’impiego di forme di attuazione. Tuttavia, l’analisi sulle immagini stereoscopiche dimostra che, in varie forme di attuazione, la perdita di qualità può risultare trascurabile.
In varie forme di attuazione, l’approccio di codifica e decodifica dei file MPO può sfruttare la ridondanza contenuta nelle immagini stereoscopiche: considerando l’elevato contenuto informativo dell’immagine ad alta qualità (20A della figura 2), à ̈ possibile ridurre di molto la qualità della seconda immagine 200B (riducendo quindi, ad esempio, lo spazio che questa occuperà in memoria) per poi, in fase di decodifica, migliorarne la qualità sfruttando le informazioni comuni conservate nell’immagine ad alta qualità.
Passando ad esemplificare possibili specifiche modalità e forme di attuazione, nel seguito si farà riferimento all’immagine a qualità più alta come immagine A, riferendosi invece all’immagine a qualità più bassa come immagine B.
Ad esempio, in varie forme di attuazione, così come esemplificato nella figura 4, ogni immagine 50A, 50B può essere vista come suddivisa in blocchi di dimensioni più piccole, con ogni blocco costituito da tre matrici NxM, una per ogni canale (Y = luminanza, Cb e Cr = componenti di crominanza blue-difference e red-difference); gli elementi di queste matrici sono chiamati sample (ossia “campioni†).
La procedura di decodifica qui descritta a titolo di esempio ricostruisce un blocco per volta e, per ogni blocco preso in considerazione, vengono elaborate le matrici di tutti e tre i canali una dopo l’altra.
La descrizione che segue illustra in dettaglio la decodifica relativa ad un blocco NxM. In particolare, la figura 5 e successive fanno riferimento al trattamento di una matrice NxM relativa al canale della luminanza di un dato blocco dell’immagine 50B che si desidera decodificare ricostruendo le informazioni inizialmente perse a causa della compressione a bassa qualità.
Le stesse operazioni qui esemplificate per il blocco Y block relativo alla luminanza possono essere eseguite per la decodifica delle matrici degli altri canali dello stesso blocco (ossia Cb block e Cr block in figura 5) e tutta la procedura può essere viene ripetuta per ogni (sotto)blocco dell’immagine 50B.
Per ricostruire, nell’esempio qui considerato, il blocco Yblock si ricerca un blocco delle stesse dimensioni dell’immagine 50A ottenuto mediante una funzione di similarità Match Similar o MS.
La funzione MS ha il compito di ottenere una matrice quanto più simile possibile al blocco Yblock che si vuole ricostruire tentando di utilizzare le informazioni dell’immagine 50A relative al canale considerato, ossia, nell’esempio qui considerato, le informazioni della matrice della luminanza dell’immagine 50A rappresentate nella figura 5 dalla matrice CY.
In varie forme di attuazione, la funzione di similarità MS può considerare tipi di blocchi candidati diversi.
In varie forme di attuazione à ̈ possibile determinare non solo uno, ma più tipi di candidati ed il migliore tra i candidati viene restituito da MS alla funzione chiamante.
In pratica (vedere sempre la figura 5) la funzione MS può prendere in ingresso una matrice CY dell’immagine 50A, restituendo una matrice Y’ di dimensioni NxM.
In varie forme di attuazione, un (primo) tipo di candidato può essere ottenuto cercando all’interno dell’immagine 50A una matrice simile ad Yblock.
In varie forme di attuazione, questa ricerca può essere effettuata calcolando la correlazione incrociata (cross correlation) normalizzata tra il blocco da cercare e la matrice del canale considerato dell’immagine 50A.
La cross correlazione normalizzata à ̈ data dalla seguente equazione:
dove:
- f à ̈ la matrice dell’immagine 50A relativa al canale considerato (CY);
- t à ̈ il valore medio della matrice da cercare (blocco Yblock);
- Ã ̈ il valore medio di nella regione di Yblock.
Così come schematicamente rappresentato nella figura 6, nell’esempio qui considerato (che à ̈ tale) il primo candidato all’interno della funzione MS, indicato con Y1 nella figura 6, à ̈ ricercato calcolando la cross correlazione normalizzata XCORR tra Yblock (immagine 50B) il canale CY (immagine 50°).
La cross correlazione XCORR restituisce quindi quel sottoinsieme della matrice CY che meglio approssima Yblock.
Se la cross correlazione XCORR individua un blocco di dimensioni inferiori rispetto a quelle di Yblock, cioà ̈ individua solo una parte di questo, la procedura completa il blocco utilizzando per i valori mancanti quelli già disponibili per Yblock.
In varie forme di attuazione, un (secondo) tipo di candidato della funzione MS à ̈ ottenuto da quel blocco N x M dell’immagine 50A (ancora una volta questo esempio si riferisce alla componente di luminanza Y, ma in varie forme di attuazione lo stesso può valere anche per le componenti di croma Cb e Cr) che si trova nella stessa posizione del blocco dell’immagine 50B considerato (cioà ̈ del blocco di cui il blocco Yblock fa parte).
Quindi, così come rappresentato nella figura 7, in varie forme di attuazione si può determinare non solo uno, ma entrambi i due tipi di blocchi candidati Y1 ed Y2 e la funzione MS sceglie quello che tra i due minimizza una metrica stabilita (MET nella figura 7).
Ad esempio, in varie forme di attuazione, per stabilire quale dei due candidati Y1, Y2 utilizzare, la funzione MS può calcolare, per ogni blocco candidato, la media delle differenze dei suoi sample con quelli di Y block, cioà ̈ calcolare la media degli scarti tra il blocco candidato e il blocco che si sta cercando di ricostruire. Ad esempio, il blocco scelto Y’ può essere quello con la media inferiore.
In varie forme di attuazione, la funzione MS può ripetere le stesse operazioni per le matrici relative agli altri due canali del blocco che ha ricevuto in input (Cb block e Cr block) e restituire alla funzione chiamante un blocco NxM contenente le tre matrici trovate.
In varie forme di attuazione, la matrice della luminanza del blocco scelto dalla funzione MS può essere utilizzata per migliorare Yblock.
In varie forme di attuazione, il metodo utilizzato può essere la ricostruzione di Kohonen, così come descritta, ad esempio in
Kohonen T.: “The self-organizing map†, Proceedings of the IEEE, Vol. 78, Issue 9, 1990, pp. 1464 - 1480;
Kohonen, T.; Oja, E.; Simula, O.; Visa, A.; Kangas, J.: “Engineering applications of the self-organizing map†, Proceedings of the IEEE, Vol. 84, Issue 10, 1996, pp. 1358 - 1384;
Nasrabadi, N.M.; Feng, Y.: “Vector quantization of images based upon the Kohonen self-organizing feature maps†, IEEE Proceedings of International Conference on Neural Networks, 1988, vol. 1, pp. 101 - 108;
Ritter, H.; Schulten, K., “Kohonen's self-organizing maps: exploring their computational capabilities†, IEEE Proceedings of International Conference on Neural Networks, 1988, pp109-116.
In varie forme di attuazione, la ricostruzione di Kohonen (KBR) può utilizzare la seguente formula
Dove:
- Ã ̈ il sample (campione) ricostruito;
- à ̈ il sample del blocco candidato scelto dalla funzione MS (Y’);
- Ã ̈ il sample del blocco da migliorare (Y block); - ;
- limit = 0,043.
Questa funzione lavora sample per sample e, dopo aver elaborato tutti i sample della matrice Yblock da ricostruire utilizzando i valori della matrice Y’ restituisce una matrice risultante chiamata Y’’: vedere al riguardo la figura 8, che rappresenta in forma schematica un esempio in cui il risultato della procedura di decodifica à ̈ la matrice Y’’, ottenuta migliorando i samples di Y block mediante la ricostruzione di Kohonen KBR e la matrice Y’.
In varie forme di attuazione, la procedura descritta può essere ripetuta per le altre matrici del blocco in esame (cioà ̈ per i restanti due canali) e la ricostruzione termina dopo aver ricostruito tutti i blocchi dell’immagine 50B che comporranno l’immagine ricostruita.
In varie forme di attuazione, per rendere più veloce e meno impegnativa in termini di tempo di esecuzione il calcolo della cross correlazione normalizzata XCORR, il calcolo della cross correlazione normalizzata tra Y block e CY può essere fatto utilizzando un sottoinsieme di CY ottenuto considerando un intorno centrato sulla posizione del blocco di cui Y block fa parte. In varie forme di attuazione, questa scelta può ridurre notevolmente i tempi di esecuzione senza compromettere l’efficienza dei risultati.
In termini di valutazione della complessità computazionale, l’immagine da migliorare (immagine 50B) può essere vista come una schiera o array di n elementi, dove ogni elemento rappresenta un pixel. Per semplicità di illustrazione, si può supporre che i sottoblocchi siano quadrati NxN con N<<n e che l’immagine sia anch’essa quadrata.
Indicando con H e W rispettivamente l’altezza e la larghezza dell’immagine, si avrà:
In ogni riga ci saranno
blocchi, ed in ogni colonna ce ne saranno
La funzione utilizzata per calcolare la cross correlazione normalizzata XCORR, chiamata normxcorr, calcola n coefficienti visitando tutta la matrice per ogni coefficiente calcolato, quindi:
- il numero di computazioni à ̈ n, cioà ̈ calcola n coefficienti;
- per ogni computazione si visita tutta la matrice del canale considerato (n samples).
La complessità asintotica della sola funzione normxcorr à ̈
Applicando l’ottimizzazione precedentemente illustrata, la procedura, invece di visitare tutta la matrice (di dimensione n) visita un intorno del blocco. Nel caso peggiore tale intorno ha un raggio pari a 2N, per cui nel caso peggiore avrà dimensione pari a samples.
Poiché N à ̈ una costante arbitraria, si può scegliere N in modo tale che ) e la complessità di normxcorr risultante da tale ottimizzazione può essere determinata nei termini seguenti:
- il numero di computazioni à ̈ , cioà ̈ si calcolano coefficienti;
- per ogni computazione si visita un sottoinsieme della matrice del canale considerato di dimensioni massime
quindi
poiché
Aumentando N (dimensione del sottoblocco) aumenta il prodotto , cioà ̈ aumenta l’intorno di raggio 2N, ed aumenta anche la complessità.
Tuttavia, all’aumentare di N diminuiscono il numero di chiamate a normxcorr che, così come detto in precedenza, rappresenta la parte più onerosa della procedura. Inoltre il valore delle costanti moltiplicative à ̈ molto basso in quanto il caso peggiore si verifica solo per pochi blocchi centrali, cioà ̈ solo dove à ̈ possibile avere un raggio pari a 2N.
Gli Inventori hanno riscontrato che, in varie forme di attuazione, à ̈ possibile ridurre i tempi di esecuzione dell’intera decodifica in media del 54%, senza perdita di qualità.
In varie forme di attuazione, per calcolare la cross correlazione à ̈ anche possibile far ricorso al procedimento descritto in J. P. Lewis, “Fast Normalized Cross-Correlation†, Industrial Light & Magic, 1995.
Così come indicato in precedenza, varie forme di attuazione possono prevedere l’impiego della funzione di similarità MS e della ricostruzione di Kohonen KBR.
Negli esempi qui considerati, la funzione MS può prendere in ingresso un blocco NxN, costituito a sua volta da tre matrici NxN una per ogni canale, e l’immagine 50A. Dopo una fase di inizializzazione dei parametri, all’interno di una esecuzione della funzione MS viene calcolata la cross correlazione per ogni matrice (Y,Cb,Cr) del blocco passato come parametro. Quindi vengono effettuate tre chiamate alla funzione normxcorr.
La complessità asintotica della funzione MS à ̈ allora:
Negli esempi qui considerati, la funzione che implementa la ricostruzione di Kohonen può prendere in ingresso due blocchi NxN, il primo à ̈ il blocco da ricostruire mentre il secondo à ̈ il blocco ottenuto dalla funzione MS. Ognuno di questi blocchi può essere costituito da tre matrici NxN e, così come descritto in precedenza, tale funzione elabora un sample per volta. L’equazione utilizzata per la ricostruzione ha un costo costante, per cui si ha un numero di operazioni proporzionale a
In vari esempi di attuazione, l’intera procedura di decodifica può suddividere l’immagine 50B in sottoblocchi e, per ogni sottoblocco, invocare la funzione MS e la ricostruzione di Kohonen KBR.
Quindi il costo computazionale della decodifica à ̈ dato da
dove l’ultimo passaggio à ̈ stato ottenuto considerando
Quindi la complessità asintotica della procedura di decodifica (ottimizzata) à ̈
.
Gli Inventori hanno condotto varie verifiche tali da abbracciare 23 file MPO così come disponibili on-line alla data di deposito della presente domanda all’URL www.3dmedia.com/gallery.
Nelle verifiche effettuate, l’immagine con qualità superiore, dunque – in termini relativi – con qualità “alta†, à ̈ stata codificata con qualità di compressione non inferiore a JPEG 85. L’immagine con qualità inferiore, dunque - in termini relativi - con qualità “bassa†, à ̈ stata codificata sia con qualità 65, sia con qualità 70 (vedere la tabella riportata in precedenza) per confrontare le prestazioni della procedura nei due casi.
Dalle verifiche effettuate si à ̈ visto che utilizzare, per l’immagine di qualità più bassa, una qualità inferiore a 65 può in varie forme di attuazione comporta una perdita di informazione troppo marcata. Viceversa utilizzare una qualità superiore a 70 può in varie forme di attuazione comportare un risparmio in memoria troppo basso.
In varie forme di attuazione, abbassando la qualità di compressione, il vantaggio i termini di risparmio in memoria aumenta, ma in varie forme di attuazione questo può comportare un aumento della perdita media di qualità.
Tale perdita può essere valutata in termini quantitativi confrontando il PSNR (Peak Signal-to-Noise Ratio) dell’immagine ricostruita (rispetto all’originale) e la stessa immagine ottenuta semplicemente utilizzando la compressione JPEG a qualità 85.
Ad esempio, à ̈ possibile calcolare il PSNR considerando l’immagine iniziale che si trova nel file MPO non compresso di partenza, come fosse l’immagine-campione originale. Quest’ultima à ̈ infatti ottenuta decomprimendo l’immagine JPEG del file MPO non compresso di partenza. In varie forme di attuazione, la procedura qui descritta permette di lavorare su questa immagine, procedendo ad una ricompressione JPEG di qualità “bassa†con successiva decompressione e ricostruzione per mezzo dei procedimenti descritti. L’immagine cosi ottenuta dopo la decodifica e successiva ricostruzione per mezzo delle soluzioni proposte può essere confrontata con quella originale che si trova nel file MPO originale non compresso e dalla quale si à ̈ partiti partiti per applicare la soluzione qui descritta.
Il PSNR così calcolato permette di valutare la percentuale di perdita di qualità che si ha applicando la procedura qui descritta al file MPO originale non compresso, permettendo così da valutare le potenzialità della soluzione qui descritta integrata ad es. in una pipeline di acquisizione dell’immagine.
La formula per il calcolo del PSNR Ã ̈
dove
- bijà ̈ il valore del sample dell’immagine di cui si vuole calcolare il PSNR (nella matrice del canale considerato);
- aijà ̈ il valore del sample dell’immagine originale;
- sup à ̈ il valore massimo assumibile da un sample espresso con 1 byte, pari a 255.
La perdita media à ̈ data dalla media delle differenze tra i valori di PSNR dell’immagine ricostruita e quella codificata con qualità 85.
Valori medi del risparmio in memoria e della perdita di qualità in funzione della qualità di compressione sono mostrati dalla seguente tabella.
Low quality Risparmio medio Perdita (dB)
65 38,7% 2,39
70 32,8% 2,16
Anche se i valori medi calcolati su 23 immagini sono simili, le prestazioni possono variare per ogni immagine e la differenza tra i due casi risulta più evidente confrontando tale variabilità.
Comprimendo con qualità 65 si ottiene un risparmio in memoria dal 35% al 48,7% ed una perdita che varia tra 1,66 dB e 2,76 dB. Comprimendo con qualità 70 si ottiene un risparmio in memoria dal 30% al 42% ed una perdita che varia tra 1,32 dB e 2,76 dB.
In varie forme di attuazione à ̈ possibile ottenere un risparmio che supera il 41% con una perdita di qualità inferiore ai 2 dB; in situazioni particolarmente sfavorevoli si à ̈ ottenuto un risparmio pari a circa il 30% ed una perdita che non supera i 2,76 dB, ma anche in questi casi la procedura risulta efficiente.
Varie forme di attuazione si prestano all’impiego di una libreria C per la gestione e la manipolazione dei file MPO chiamata.
In un possibile esempio di attuazione, à ̈ possibile istanziare una variabile di tipo MPO_data, associando ad essa un file MPO tramite una funzione definita in mposource.h ed eseguire un parsing del file per popolare la struttura MPO_data; la funzione che effettua il parsing di un file MPO, definita in mpo-parse.h, può essere implementata in un sorgente MPO_parse_data.c.
In varie forme di attuazione, à ̈ possibile (ad esempio istanziando una struct di tipo jpeg_decompress_struct) leggere il contenuto di un file MPO come se fosse una immagine JPEG. Poiché la prima immagine singola si trova in testa al file, essa può essere considerata dal parser del JPEG (blocco 35 nella figura 3) come se fosse l’immagine da analizzare, ed il parser JPEG può vedere solo una immagine che inizia con SOI e finisce con EOI, con quanto segue ignorato poiché il parser si aspetta di ricevere un file JPEG quindi dopo aver incontrato il marker EOI semplicemente termina.
Varie forme di attuazione possono prestarsi ad essere utilizzate in sistemi embedded, ossia sistemi elettronici di elaborazione progettati per una determinata applicazione, spesso con una piattaforma hardware specializzata. Le risorse di un sistema embedded sono limitate e di solito non à ̈ possibile effettuare una normale compilazione in quanto su questi dispositivi non à ̈ possibile eseguire un compilatore o linker vero e proprio.
In varie forme di attuazione, per compilare applicazioni per sistemi embedded si può utilizzare la cross-compilazione, ossia una tecnica con cui si compila un codice sorgente ottenendo un file binario eseguibile su un'architettura diversa da quella della macchina su cui si à ̈ lanciato il cross-compilatore.
In varie forme di attuazione, à ̈ possibile utilizzare una piattaforma informatica costituita dalla distribuzione del sistema operativo Linux su un'architettura ST40 della Richiedente (STLinux). I sistemi ST40 sono basati su una struttura altamente modulare. Qualsiasi implementazione dell’architettura ST40, come ad esempio il chip ST40RA, à ̈ costituita da un certo numero di moduli che comunicano tra loro usando una o più connessioni. Questo sistema di interconnessione, chiamato superHyway, fornisce un meccanismo di scambio di pacchetti tra i moduli ed à ̈ organizzato in modo da massimizzare le prestazioni del sistema minimizzando i costi. L’elevata connettività dell’architettura rende i dispositivi ST40 molto versatili e ideali per applicazioni che richiedono alte prestazioni e l’elaborazione di molti dati.
In varie forme di attuazione la perdita di qualità à ̈ in ogni caso modesta e non risulta visibile nelle immagini riprodotte dai dispositivi video.
In varie forme à ̈ possibile mettere in atto misure di ottimizzazione elaborativa con un miglioramento significativo in termini di complessità asintotica, riscontrato anche la misura dei tempi di esecuzione.
Varie forme di attuazione si prestano alla creazione di una libreria C per la gestione e la manipolazione dei file MPO per una piattaforma informatica suscettibile di essere costituita dal sistema operativo STLinux su un’architettura ST40. Tale libreria permette di effettuare il parsing dei file MPO e fornisce una interfaccia (API) che comprende un completo set di funzioni per la loro manipolazione e per l’estrazione delle singole immagini.
Naturalmente, fermo restando il principio dell'invenzione, i particolari di realizzazione e le forme di attuazione potranno variare, anche in modo significativo, rispetto a quanto qui illustrato a puro titolo di esempio non limitativo, senza per questo uscire dall'ambito di protezione; tale ambito di protezione à ̈ definito dalle rivendicazioni annesse.

Claims (16)

  1. RIVENDICAZIONI 1. Procedimento per codificare un’immagine stereoscopica comprendente una prima immagine singola (10A) ed una seconda immagine singola (10B), il procedimento comprendendo: - codificare (20A, 200B) detta prima immagine singola (10A) e detta seconda immagine singola (10B) con rispettivi livelli di qualità di codifica, - unire (30) in un file di immagine multipla (MPO) detta prima immagine singola (10A) e detta seconda immagine singola (10B) codificate con detti rispettivi livelli di qualità di codifica, il procedimento comprendendo codificare detta prima immagine singola con un primo livello di qualità di codifica (20A) e detta seconda immagine singola (10B) con un secondo livello di qualità di codifica (200B), in cui detto secondo livello di qualità di codifica (200B) à ̈ inferiore a detto primo livello di qualità di codifica (20A).
  2. 2. Procedimento secondo la rivendicazione 1, in cui: - detta prima immagine singola (10A) e detta seconda immagine singola (10B) sono codificate con codifica JPEG; e/o - detto file di immagine multipla à ̈ un file MPO.
  3. 3. Procedimento secondo la rivendicazione 2, avente almeno una caratteristica scelta fra le seguenti: - detta prima immagine singola (10A) à ̈ codificata (20A) JPEG con qualità di codifica non inferiore ad 85; - detta seconda immagine singola (10B) à ̈ codificata (200B) JPEG con qualità di codifica non superiore a 70; e/o - detta seconda immagine singola (10B) à ̈ codificata (200B) JPEG con qualità di codifica non inferiore a 65.
  4. 4. Procedimento per decodificare un’immagine stereoscopica codificata con il procedimento secondo una qualsiasi delle rivendicazioni 1 a 3, il procedimento di decodifica comprendendo: - estrarre (35) da detto file di immagine multipla (MPO) detta prima immagine singola codificata con un primo livello di qualità di codifica, - estrarre (35) da detto file di immagine multipla (MPO) detta seconda immagine singola codificata con un secondo livello di qualità di codifica inferiore a detto primo livello di qualità di codifica, e - utilizzare (100) informazioni di detta prima immagine singola estratta (50A) per migliorare la seconda immagine singola estratta (50B).
  5. 5. Procedimento secondo la rivendicazione 4, in cui utilizzare informazioni di detta prima immagine singola estratta (50A) per migliorare la seconda immagine singola estratta (50B) comprende: - identificare parti comuni (Y’) di detta prima immagine singola estratta (50A) e di detta seconda immagine singola estratta (50B), e - ricostruire detta seconda immagine singola estratta (50B) a partire da detta prima immagine singola estratta (50A) in dette parti comuni (Y’) identificate.
  6. 6. Procedimento secondo la rivendicazione 5, in cui detto ricostruire comprende almeno uno fra: - calcolare una media aritmetica tra detta seconda immagine singola estratta (50B) e detta prima immagine singola estratta (50A), - calcolare una media mobile esponenziale tra detta seconda immagine singola estratta (50B) e detta prima immagine singola estratta (50A), - una ricostruzione di Kohonen (KBR).
  7. 7. Procedimento secondo la rivendicazione 5 o la rivendicazione 6, in cui detta seconda immagine singola estratta (50B) Ã ̈ ricostruita a partire da detta prima immagine singola estratta (50A) elaborando detta prima immagine estratta (50A) e detta seconda immagine estratta (50B) suddivise in blocchi, con ciascun blocco costituito da un insieme di matrici relative a luminanza (Yblock) e crominanza (Cb block, Cr block), ricostruendo un detto blocco per volta elaborando in sequenza le matrici di detto insieme per ciascun blocco.
  8. 8. Procedimento secondo una qualsiasi delle rivendicazioni 5 a 7, in cui detto identificare parti comuni (Y’) di detta prima immagine singola estratta (50A) e di detta seconda immagine singola estratta (50B) comprende ricercare in detta prima immagine singola estratta (50A) una parte comune (Y’) simile alla parte di detta seconda immagine singola estratta (50B) da ricostruire, detta parte comune (Y’) essendo identificata come almeno una fra: - una parte (Y1) di detta prima immagine singola estratta (50A) simile ad una parte di detta seconda immagine singola estratta (50B) identificata calcolando una correlazione incrociata (XCORR), di preferenza normalizzata, tra la parte di detta seconda immagine singola estratta (50B) da ricostruire (Y block) ed una parte omologa (CY) della prima immagine singola estratta (50A). - una parte (Y2) della prima immagine singola estratta (50A) che si trova nella stessa posizione della parte di detta seconda immagine singola estratta (50B) da ricostruire.
  9. 9. Procedimento secondo la rivendicazione 8, comprendente: - a) determinare come possibili candidati (Y1, Y2) di parte comune (Y’) simile alla parte di detta seconda immagine singola estratta (50B) da ricostruire entrambe: - i) detta parte (Y1) di detta prima immagine singola estratta (50A) simile ad una parte di detta seconda immagine singola estratta (50B) identificata calcolando una correlazione incrociata (XCORR) tra la parte di detta seconda immagine singola estratta (50B) da ricostruire (Y block) ed una parte omologa (CY) della prima immagine singola estratta (50A), - ii) detta parte (Y2) della prima immagine singola estratta (50A) che si trova nella stessa posizione della parte di detta seconda immagine singola estratta (50B) da ricostruire, - b) ricostruire la parte di detta seconda immagine singola estratta (50B) da ricostruire con uno fra detti candidati (Y1, Y2) scelto come il candidato che minimizza una metrica stabilita (MET).
  10. 10. Procedimento secondo la rivendicazione 9, comprendente ricostruire la parte di detta seconda immagine singola estratta (50B) da ricostruire con uno fra detti candidati (Y1, Y2) scelto come il candidato che minimizza la media degli scarti tra il candidato e la parte di detta seconda immagine singola estratta (50B) da ricostruire.
  11. 11. Procedimento secondo una qualsiasi delle rivendicazioni 8 a 10, comprendente calcolare detta correlazione incrociata (XCORR) utilizzando un sottoinsieme di detta prima immagine singola estratta (50A) centrato sulla posizione della parte di detta seconda immagine singola estratta (50B) da ricostruire (Y block).
  12. 12. Codificatore (10A, 10B, 20A, 20, 30) configurato per codificare un’immagine stereoscopica con il procedimento secondo una qualsiasi delle rivendicazioni 1 a 3.
  13. 13. Decodificatore (40A, 40B, 100, MS, MET, KBR) configurato per decodificare un’immagine stereoscopica con il procedimento secondo una qualsiasi delle rivendicazioni 4 a 11.
  14. 14. Prodotto informatico caricabile nella memoria di almeno un elaboratore elettronico e comprendente porzioni di codice software per attuare i passi del procedimento di codifica secondo una qualsiasi delle rivendicazioni 1 a 3.
  15. 15. Prodotto informatico caricabile nella memoria di almeno un elaboratore elettronico e comprendente porzioni di codice software per attuare i passi del procedimento di decodifica secondo una qualsiasi delle rivendicazioni 4 a 11.
  16. 16. Supporto che veicola un’immagine stereoscopica comprendente una prima immagine singola (10A) ed una seconda immagine singola (10B) codificata con il procedimento secondo una delle rivendicazioni 1 a 3.
IT000647A 2012-07-24 2012-07-24 Procedimenti e sistemi per il trattamento di immagini stereoscopiche, prodotti informatici e supporto relativi ITTO20120647A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT000647A ITTO20120647A1 (it) 2012-07-24 2012-07-24 Procedimenti e sistemi per il trattamento di immagini stereoscopiche, prodotti informatici e supporto relativi
US13/949,387 US9183644B2 (en) 2012-07-24 2013-07-24 Methods and systems for the treatment of stereoscopic images, corresponding computer program products, and storage carrier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000647A ITTO20120647A1 (it) 2012-07-24 2012-07-24 Procedimenti e sistemi per il trattamento di immagini stereoscopiche, prodotti informatici e supporto relativi

Publications (1)

Publication Number Publication Date
ITTO20120647A1 true ITTO20120647A1 (it) 2014-01-25

Family

ID=46800304

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000647A ITTO20120647A1 (it) 2012-07-24 2012-07-24 Procedimenti e sistemi per il trattamento di immagini stereoscopiche, prodotti informatici e supporto relativi

Country Status (2)

Country Link
US (1) US9183644B2 (it)
IT (1) ITTO20120647A1 (it)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11616963B2 (en) * 2018-05-10 2023-03-28 Samsung Electronics Co., Ltd. Method and apparatus for image encoding, and method and apparatus for image decoding
EP3618442B1 (en) * 2018-08-27 2020-09-30 Axis AB An image capturing device, a method and computer program product for forming an encoded image

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246545A1 (en) * 2010-03-30 2011-10-06 Sony Corporation Transmission device, transmission method and program
US20110279654A1 (en) * 2010-05-14 2011-11-17 Panasonic Corporation Camera body, imaging device, method for controlling camera body, program, and storage medium storing program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812071A (en) * 1996-08-13 1998-09-22 Northern Telecom Limited Apparatus and method for lossy compression using dynamic domain quantization
US6370192B1 (en) * 1997-11-20 2002-04-09 Hitachi America, Ltd. Methods and apparatus for decoding different portions of a video image at different resolutions
US6215825B1 (en) * 1998-07-09 2001-04-10 Canon Kabushiki Kaisha Stereographic image compression with image difference generation and lossy compression
NZ515527A (en) * 2001-11-15 2003-08-29 Auckland Uniservices Ltd Method, apparatus and software for lossy data compression and function estimation
ZA200805337B (en) * 2006-01-09 2009-11-25 Thomson Licensing Method and apparatus for providing reduced resolution update mode for multiview video coding
WO2011021240A1 (ja) * 2009-08-20 2011-02-24 トムソン ライセンシング ステレオ画像符号化方法、ステレオ画像符号化装置及びステレオ画像符号化プログラム
MX2014001917A (es) * 2011-08-26 2014-04-14 Panasonic Corp Sistema de procesamiento de imagenes, dispositivo de transmision, dispositivo de recepcion, metodo de transmision, metodo de recepcion y programa de computadora.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246545A1 (en) * 2010-03-30 2011-10-06 Sony Corporation Transmission device, transmission method and program
US20110279654A1 (en) * 2010-05-14 2011-11-17 Panasonic Corporation Camera body, imaging device, method for controlling camera body, program, and storage medium storing program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARKUS B SCHENKEL ET AL: "Joint decoding of stereo JPEG image Pairs", INTERNATIONAL CONF. ON IMAGE PROCESSING (ICIP 2010), USA, 26 September 2010 (2010-09-26), pages 2633 - 2636, XP031813978, ISBN: 978-1-4244-7992-4 *

Also Published As

Publication number Publication date
US20140029860A1 (en) 2014-01-30
US9183644B2 (en) 2015-11-10

Similar Documents

Publication Publication Date Title
EP3751857A1 (en) A method, an apparatus and a computer program product for volumetric video encoding and decoding
RU2503062C2 (ru) Способ и система для кодирования сигнала трехмерного видео, кодер для кодирования сигнала трехмерного видео, кодированный сигнал трехмерного видео, способ и система для декодирования сигнала трехмерного видео, декодер для декодирования сигнала трехмерного видео
US20100026712A1 (en) Method and system for video rendering, computer program product therefor
WO2015172227A1 (en) Method, system and apparatus for generation and playback of virtual reality multimedia
TW201644270A (zh) 用於全視差光場顯示系統之方法及裝置
CA2681342A1 (en) System and method for region classification of 2d images for 2d-to-3d conversion
JP7448660B2 (ja) ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法
US10037335B1 (en) Detection of 3-D videos
US11711535B2 (en) Video-based point cloud compression model to world signaling information
CN114868396A (zh) 用于多视点3DoF+内容的编码和解码的方法和装置
JP7344988B2 (ja) ボリュメトリック映像の符号化および復号化のための方法、装置、およびコンピュータプログラム製品
WO2021081568A2 (en) Advanced stereoscopic rendering
Jantet Layered depth images for multi-view coding
ITTO20120647A1 (it) Procedimenti e sistemi per il trattamento di immagini stereoscopiche, prodotti informatici e supporto relativi
JP7440546B2 (ja) ポイントクラウドデータ処理装置及び方法
JP2023506832A (ja) 補助パッチを有する容積ビデオ
WO2021205068A1 (en) A method, an apparatus and a computer program product for volumetric video coding
Bourge et al. MPEG-C part 3: Enabling the introduction of video plus depth contents
Han et al. Plenoptic image compression via simplified subaperture projection
KR101332386B1 (ko) 입체 영상 데이터 획득 장치 및 방법
EP3698332A1 (en) An apparatus, a method and a computer program for volumetric video
KR20220127258A (ko) 뷰-유도 스펙큘러리티를 갖는 볼류메트릭 비디오를 코딩 및 디코딩하기 위한 방법 및 장치
Duch et al. Depth map compression via 3D region-based representation
KR101609394B1 (ko) 입체 영상 인코딩 장치 및 방법
JP2022549431A (ja) 容積ビデオを符号化、送信、及び復号化するための方法及び装置