Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32
Trattamento dei dati multimediali
| Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
| ING-INF/05 | 9 | -- Nessun gestore -- |
Obiettivi
L’insegnamento si propone di fornire agli studenti una comprensione specialistica su acquisizione, algoritmi e formati utilizzati nella gestione dei dati multimediali e competenze avanzate relative alle moderne soluzioni utilizzate nei calcolatori.
L’insegnamento contribuisce anche al potenziamento delle capacità trasversali Autonomia di giudizio, Abilità comunicative e Capacità di apprendimento degli studenti.
Risorse
Oltre alle dispense messe a disposizione dal docente, gli studenti potranno approfondire gli argomenti del corso sui seguenti testi:
-
Ze-Nian Li, Mark S. Drew, and Jiangchuan Liu. Fundamentals of Multimedia. Pearson Prentice Hall, Upper Saddle River, NJ, 2004.
-
R. C. Gonzalez and R. E. Woods, Digital Image Processing, 4th ed. Pearson, 2018
Descrizione
Modulo 1: Concetti Base (1 CFU)
Lezione 1: Introduzione al Trattamento di Dati Multimediali
Introduzione al concetto di multimedia
Database multimediali
Multimodal learning
Computer vision
La compressione dei dati multimediali
Compiti e Problematiche del Multimedia
Presentazione Multimediale
Produzione Multimediale
Condivisione e Distribuzione Multimediale
Lezione 2: Rappresentazione digitale delle immagini
Introduzione alle rappresentazioni delle immagini
Immagini a 1 bit
Immagini in scala di grigio a 8 bit
Immagini a colori
Lezione 3: Formati popolari per immagini
GIF
JPEG
PNG
TIFF
EXIF
PS e PDF
Lezione 4: Scienza dei colori
Luce e spettro
Human Vision
Sensibilità spettrale dell’occhio
Formazione dell’immagine
Gamma Correction
Color-Matching Functions
Lezione 5: Modelli di Colore nelle Immagini
Modello di Colore RGB per i Display
Camere Multi-sensore
Colore Dipendente dalla Camera: HSV e sRGB
Colore Sottrattivo: Modello CMY
Rimozione del Sottocolore: Sistema CMYK
Gamut delle Stampanti
Stampanti Multi-inchiostro
Modulo 2: Concetti Fondamentali nel Video (1 CFU)
Lezione 6: Concetti Fondamentali nel Video Analogico
Video Analogico
Luminanza
Crominanza
Raster scan
Lo standard NTSC
Lo standard PAL
Lezione 7: Concetti Fondamentali nel Video Digitale
Video Digitale
CCIR e standard ITU-R per il video digitale
Lezione 8: Video ad alta definizione
High Definition TV (HDTV)
Ultra-high-definition TV (UHDTV)
Interfacce Video
Lezione 9: Video 3D
Percezione tridimensionale
Modelli di telecamera 3D
Tecnologie di fruizione del 3D
The Vergence–Accommodation Conflict
Autostereoscopic (Glasses-Free) Display Devices
Lezione 10: Video 360° e Video Quality Assessment
Video 360°
Video Quality Assessment (VQA)
Modulo 3: Concetti Fondamentali nell’Audio (1.2 CFU)
Lezione 11: Digitalizzazione del suono
Cos’è il suono?
Digitalizzazione del suono
Teorema di Nyquist
Lezione 12: Rapporto Segnale Rumore e Quantizzazione lineare
Signal-to-Noise Ratio (SNR)
Signal-to-Quantization-Noise Ratio (SQNR)
Linear and Nonlinear Quantization
Lezione 13: Audio Filtering e Audio Quality
Audio Filtering
Audio Quality versus Data Rate
Synthetic Sounds
Lezione 14: MIDI
Panoramica sul MIDI
Aspetti Hardware del MIDI
Struttura dei Messaggi MIDI
Conversione da MIDI a WAV
General MIDI
MIDI
Lezione 15: Quantizzazione e trasmissione dell’audio
Codifica dell’audio
Pulse Code Modulation
Codifica differenziale dell’audio
Lossless Predictive Coding
Lezione 16: Codifica audio differenziali
DPCM
DM
ADPCM
Modulo 4: Algoritmi di compressione senza perdita (1 CFU)
Lezione 17: Algoritmi di compressione senza perdita
Richiami di Teoria dell’informazione
Run-Length Coding
Variable-Length Coding
Lezione 18: Algoritmi di compressione basati su dizionario
LZ77
LZ78
Lezione 19: L'algoritmo LZW
Lezione 20: Tecniche di compressione aritmetica
Lezione 21: Codifica lossless per immagini
Modulo 5: Algoritmi di compressione con perdita (0.8 CFU)
Lezione 22: Distorsione e Quantizzazione
Lezione 23: Codifica trasformata
Lezione 24: Codifica basata su wavelet
Lezione 25: Wavelet Packets
Modulo 6: Standard di codifica delle immagini (1 CFU)
Lezione 26: JPEG
Lezione 27: JPEG 2000
Lezione 28: JPEG-LS
Lezione 29: JBIG
Lezione 30: JBIG2
Modulo 7: Tecniche di base di compressione video (2 CFU)
Lezione 31: H.261
Lezione 32: H.263
Lezione 33: MPEG
Lezione 34: MPEG-1
Lezione 35: MPEG-2
Lezione 36: MPEG-4
Lezione 37: MPEG-7
Lezione 38: H.264
Lezione 39: H.265
Lezione 40: H.266
Modulo 8: Tecniche di base di compressione audio (1 CFU)
Lezione 41: ADPCM
Lezione 42: Vocoder
Lezione 43: Psicoacustica
Lezione 44: Audio MPEG
Lezione 45: Altri codec vocali
Altro
Le attività di didattica interattiva si svolgeranno mediante l’utilizzo di strumenti di videoconferenza sincrona secondo il calendario seguente:
Febbraio 2026
Lezione 1: Esercitazione su Dithering
Lezione 2: Esercitazione su Modelli di colore nelle immagini
Marzo 2026
Lezione 3: Esercitazione su Campionamento nel video digitale
Lezione 4: Esercitazione su Video Quality Assessment
Aprile 2026
Lezione 5: Esercitazione su Digitalizzazione del suono
Lezione 6: Esercitazione su Codifica differenziale dell’audio
Maggio 2026
Lezione 7: Esercitazione su Codifica a lunghezza variabile
Lezione 8: Esercitazione su Algoritmi di codifica basati su dizionario
Verifica
Aggiornato al 30/4/2026 - Valido fino a nuove indicazioni.
Al termine del corso e' previsto lo svolgimento di un esame di profitto composto da due parti:
1. Parte progettuale (le cui specifiche sono descritte di seguito)
2. Prova teorica
La valutazione finale e' calcolata come la somma tra il risultato della prova teorica e da 0 a 5 punti bonus per chi svogle la parte progettuale.
Lo svolgimento del progetto NON e' obbligatorio.
La votazione di 30 e lode vale come 31.
La prova teorica e' volta a dimostrare la conoscenza degli argomenti trattati durante le lezioni e, in particolare, le conoscenze teoriche introdotte dal corso.
DESCRIZIONE GENERALE DEL PROGETTO
-----------------------------------
Il progetto e' volto a dimostrare la capacita' dello studente di implementare
un sistema secondo le specifiche rilasciate dal docente. Consiste
nell'implementazione di un sistema di trattamento di dati multimediali per
la realizzazione di un caso d'uso a scelta dello studente.
APPROVAZIONE PREVENTIVA
------------------------
Prima di iniziare l'implementazione, lo studente deve richiedere la conferma
del docente sulla proposta di progetto. La proposta deve descrivere
sinteticamente il caso d'uso che si intende affrontare.
Esempio:
"Vorrei implementare uno script che data una directory contenente file di
immagini (e.g. fotografie) si occupa di rimuovere i file relativi ad
immagini duplicate."
Il docente potra' approvare la proposta, richiedere modifiche o suggerire
alternative piu' adatte agli obiettivi del corso.
Contatto: luigi.asprino@uniroma5.it
MODALITA' DI SVOLGIMENTO
-------------------------
1. Progetto Individuale - Implementazione
Modalita' standard. Lo studente realizza un sistema di trattamento di dati
multimediali che affronta un caso d'uso specifico.
2. Progetto di Gruppo (max 2 persone)
Possibile su richiesta al docente. Il carico di lavoro complessivo deve
essere concordato preventivamente e deve essere adeguatamente maggiore
rispetto al progetto individuale.
3. Progetto Individuale - Approfondimento (Ricerca Scientifica)
In alternativa all'implementazione, e' possibile proporre una rassegna
critica della letteratura su un tema specifico (es. rappresentazione di
dati multimediali in basi di conoscenza). Modalita' e perimetro vanno
concordati con il docente prima di iniziare.
Nota: tutte le modalita' richiedono l'approvazione preventiva del docente.
REQUISITI TECNICI (PROGETTO DI IMPLEMENTAZIONE)
-------------------------------------------------
- Implementazione: tecnologie a scelta dello studente (linguaggio di
programmazione, librerie, piattaforma).
- Collegamento con gli argomenti del corso: il sistema deve essere relativo
a uno o piu' argomenti del corso.
CONSEGNA
-----------------------------------
Scadenza
Al fine del conteggio come voto finale l’elaborato deve essere consegnato e discusso prima della prova teorica.
Modalita' di consegna
La modalita' preferita e' tramite repository GitHub (pubblico o condiviso con il docente). Una volta completato, lo studente invia una mail a luigi.asprino@uniroma5.it indicando il repository. In alternativa, e' possibile inviare un archivio compresso via email.
Materiale da consegnare:
- Codice sorgente del sistema realizzato, organizzato in modo chiaro e
modulare.
- README che spieghi come installare le dipendenze ed eseguire il software,
con eventuali esempi di utilizzo.
- Report (1-2 pagine in formato PDF) che descriva le principali scelte
progettuali.
DISCUSSIONE ORALE ONLINE
-------------------------
Gli studenti saranno convocati per una breve discussione orale online in cui
il docente porra' domande relative all'elaborato. Le domande potranno
riguardare la comprensione del codice scritto, ad esempio:
- "Cosa fa questa istruzione?"
- "Cosa succede se modifico questa istruzione in questo modo?"
- "Come faccio ad aggiungere questa funzionalita'?"
CRITERI DI VALUTAZIONE
-----------------------
1. Correttezza e funzionamento
Il sistema deve essere eseguibile e produrre risultati coerenti con il
caso d'uso scelto. Il codice non deve contenere errori bloccanti.
2. Qualita' e pertinenza rispetto agli argomenti del corso
Le tecniche implementate relative agli argomenti visti nel corso devono
essere pertinenti e realizzate correttamente.
3. Qualita' del report
Chiarezza, completezza e capacita' di sintesi. Il report deve descrivere
le scelte progettuali.
4. Qualita' del codice
Leggibilita', organizzazione modulare, presenza di commenti dove necessario,
chiarezza del README e riproducibilita' dell'esecuzione.
5. Discussione orale
Capacita' di spiegare e motivare le scelte fatte, rispondere a domande sul
codice e ragionare su possibili modifiche o estensioni del sistema.
USO DI STRUMENTI BASATI SU LLM
--------------------------------
L'uso di strumenti basati su LLM (es. GitHub Copilot, ChatGPT, Claude) e'
consentito a condizione che venga fatto in modo etico e responsabile.
- Lo studente e' pienamente responsabile di tutto il codice consegnato,
indipendentemente da come e' stato generato.
- Il codice generato automaticamente deve essere compreso, verificato e
integrato consapevolmente: copiare codice senza comprenderlo non e'
accettabile.
- L'uso di LLM non deve essere un modo per aggirare l'apprendimento.
- Nella discussione orale, il docente verifichera' la comprensione effettiva
del codice. Non saper rispondere a domande sul proprio codice e' considerato
un segnale di disonesta' accademica.
- E' buona pratica dichiarare nel report se e come sono stati utilizzati
strumenti basati su LLM.
CASI D'USO SUGGERITI
---------------------
Di seguito una selezione di casi d'uso organizzati per dominio. Casi d'uso
non contenuti nella lista possono essere proposti dagli studenti.
Rappresentazione e interrogazione di dati multimediali:
- Rappresentazione di dati multimediali e relativi metadati in basi di
conoscenza a grafo.
- Implementazione di funzioni per l'interrogazione di dati multimediali
(es. funzione per la similarita' di immagini, video, ecc.).
- Costruzione di un knowledge graph a partire da metadati di file
multimediali (es. una collezione di foto o brani musicali).
- Motore di ricerca multimediale basato su similarita'
(es. "trova immagini simili a questa").
- Indicizzazione e interrogazione di una collezione video tramite
trascrizione automatica.
Gestione e organizzazione di file multimediali:
- Deduplicazione di immagini (rimozione di duplicati o quasi-duplicati).
- Organizzazione automatica di foto in cartelle per data, luogo o soggetto.
- Rinomina batch di file multimediali basata su metadati
(es. data di scatto).
- Conversione batch di immagini tra formati (es. PNG a JPEG, HEIC a JPG).
- Ridimensionamento e compressione batch di immagini.
- Estrazione di metadati EXIF da foto e salvataggio in un file strutturato
(es. CSV).
Elaborazione di immagini:
- Classificazione di immagini (es. riconoscimento di oggetti, scene, cifre).
- Object detection (rilevamento e localizzazione di oggetti).
- Segmentazione semantica o per istanze.
- Riconoscimento facciale o di espressioni.
- Super-resolution e denoising di immagini.
- Generazione di immagini (es. con modelli generativi).
- Stima della profondita' da immagine singola (monocular depth estimation).
- Rilevamento e riconoscimento di testo in immagini (OCR).
- Colorizzazione automatica di immagini in scala di grigi.
- Rimozione di sfondo da immagini (background removal).
- Rilevamento di anomalie visive in immagini industriali
(es. difetti su superfici).
- Stima della posa umana (human pose estimation).
- Correzione automatica di luminosita', contrasto e colore di foto.
- Rilevamento e ritaglio automatico di volti in una raccolta di foto.
- Creazione automatica di miniature (thumbnail) per una collezione di
immagini.
- Filigrana (watermark) automatica su batch di immagini.
- Confronto visivo tra due immagini (diff visivo).
Elaborazione video:
- Classificazione di azioni in video (action recognition).
- Rilevamento di anomalie in sequenze video.
- Object tracking (tracciamento di oggetti nel tempo).
- Video captioning (descrizione automatica di video).
- Rilevamento e riconoscimento di eventi sportivi in video.
- Separazione foreground/background in sequenze video (video matting).
- Sintesi video da descrizione testuale (text-to-video, anche tramite API).
- Rilevamento di cambi di scena (scene detection).
- Estrazione automatica di fotogrammi chiave da un video.
- Generazione automatica di sottotitoli per un video.
- Creazione di un video riassuntivo (highlight reel) da una sequenza piu'
lunga.
- Rilevamento e ritaglio automatico di scene specifiche in un video.
Elaborazione audio:
- Riconoscimento automatico del parlato (ASR / Speech-to-Text).
- Classificazione di suoni o eventi acustici.
- Rilevamento di parole chiave (keyword spotting).
- Identificazione del parlante (speaker identification).
- Classificazione di generi musicali.
- Separazione di sorgenti audio (es. voce da musica di sottofondo).
- Sintesi vocale (Text-to-Speech).
- Rilevamento e classificazione di emozioni nel parlato.
- Trascrizione e allineamento forzato audio-testo.
- Trascrizione automatica di file audio o video
(es. registrazioni di riunioni o lezioni).
- Rimozione del rumore di fondo da registrazioni audio.
- Divisione automatica di un file audio lungo in segmenti per silenzi.
- Estrazione della traccia audio da file video.
Multimodale:
- Recupero di immagini tramite query testuale
(image-text retrieval, es. con CLIP).
- Generazione di didascalie per immagini (image captioning).
- Visual question answering (rispondere a domande su immagini).
- Allineamento audio-video (es. sincronizzazione labiale).
Il docente si riserva di approvare task diversi da quelli in lista, purche'
coerenti con i contenuti del corso
Lezioni
Trattamento dei Dati Multimediali