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:

  1. Ze-Nian Li, Mark S. Drew, and Jiangchuan Liu. Fundamentals of Multimedia. Pearson Prentice Hall, Upper Saddle River, NJ, 2004.

  2. 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