Skip to content

Il seguente progetto ha come obiettivo quello di effettuare una valutazione comparativa tra differenti algoritmi di compressione video al fine di analizzare le loro prestazioni nella compressione di Light field

Notifications You must be signed in to change notification settings

mattdr5/LightFieldImageCompression

Repository files navigation

Compressione Video per Light Field - Compressione Dati 2023/24

Descrizione del Progetto

Questo progetto del corso di Compressione Dati 2023/24 della magistrale di Informatica presso l'Università degli Studi di Salerno, si propone di condurre una valutazione comparativa tra diversi algoritmi di compressione video. Particolare attenzione sarà dedicata alla valutazione della loro efficacia nella compressione di Light Field.

Obiettivo progetto

L'obiettivo principale è analizzare le prestazioni di tali algoritmi in termini di qualità della compressione, velocità di codifica/decodifica e efficienza complessiva nella gestione di dati di tipo Light Field.

Valutazione delle Prestazioni

I risultati ottenuti includono metriche di qualità della compressione, tempi di codifica/decodifica e altri parametri rilevanti.

Contributi e Feedback

Siete invitati a contribuire a questo progetto aprendo issue, inviando pull request o fornendo feedback sulla valutazione comparativa degli algoritmi di compressione video per Light Field. Le vostre contribuzioni sono preziose per migliorare la comprensione e l'efficacia di tali algoritmi.

Requisiti

  1. Assicurati di avere Python installato sul tuo sistema (Versione usata - 3.11.6).
  2. Assicurati di avere le librerie necessarie installate eseguendo il comando seguente:
pip install -r requirements.txt
  1. Installare ffmpeg (FFmpeg 6.0.1 release):
  • Per Windows: scaricare ffmpeg dal sito ufficiale e inserire la cartella ffmpeg contenente gli eseguibili nella root del progetto
  • Per macOS/Linux: scaricare il pacchetto e installarlo.

Avvio dell'Esperimento

Per avviare l'esperimento, segui i seguenti passaggi:

  1. Apri un terminale o prompt dei comandi nella directory del progetto.
  2. Esegui il comando python test_compression.py per avviare la prima fase dell'esperimento (la compressione). Lo script utilizzerà gli algoritmi di compressione specificati nella lista algorithms nel file utils.py. Assicurati che questa lista includa tutti gli algoritmi utilizzati durante la fase di compressione.
  3. Al termine (e unicamente al termine di questa fase) della fase di compressione, esegui il comando python test_decompression.py per avviare la seconda fase dell'esperimento (la decompressione). Durante questa fase, lo script decomprimerà i video compressi utilizzando gli stessi algoritmi e dataset utilizzati nella fase di compressione.
  4. I risultati della decompressione saranno registrati e comparati con i video originali per valutare la qualità della decompressione. Per eseguire la decompressione, lo script utilizzerà gli algoritmi di compressione specificati nella lista algorithms nel file utils.py. Assicurati che questa lista includa tutti gli algoritmi utilizzati durante la fase di compressione. Dopo aver eseguito lo script, troverai i risultati della decompressione nella directory specificata dal parametro decompression_dir. Ogni dataset avrà una directory separata all'interno della directory di decompressione, contenente i video decompressi utilizzando gli algoritmi specificati.

Espansione del Progetto

Se desideri espandere il progetto aggiungendo nuovi codec o dataset per la comparazione, segui questi passaggi:

Aggiunta di Nuovi Codec

Se vuoi aggiungere nuovi codec per la comparazione, segui questi passaggi:

  1. Apri il file utils.py all'interno del progetto.

  2. Trova la funzione get_valid_extension e aggiungi il nuovo codec insieme alla sua estensione valida. Ad esempio:

    valid_extensions = {
        ...
        "NUOVO_CODEC": ".formato",
        ...
    }
  3. Assicurati di specificare correttamente il formato dell'estensione del nuovo codec.

  4. Aggiungere il nuovo codec alla lista algorithms.

    algorithms = [..., ..., "NUOVO_CODEC"]
  5. Implementare la logica (vedi cartella codecs) con ffmpeg o altri strumenti.

  6. Modificare i file appositamente test_decompression.py, test_compression.py per adattarli al nuovo studio

Aggiunta di Nuovi Dataset

Se vuoi aggiungere nuovi dataset per la comparazione, segui questi passaggi:

  1. Sempre nel file utils.py, trova la definizione dei dataset e degli algoritmi.

  2. Aggiungi il nuovo dataset specificando il nome e il percorso delle immagini. Ad esempio:

datasets = {
    ...
    "NUOVO_DATASET": "./percorso/nome-dataset/nome-file%placeholder
    ...
}

Formato dei nomi dei file delle immagini nei Dataset

Il formato dei nomi dei file delle immagini nei dataset può variare leggermente da un dataset all'altro. Tuttavia, ci sono alcune linee guida generali da seguire:

  • Numerazione Sequenziale: Molti dataset utilizzano una numerazione sequenziale per le immagini. In questi casi, il nome del file dovrebbe includere un numero di sequenza univoco. Utilizza il placeholder %3d per formattare i numeri su tre cifre con zero padding se necessario. Ad esempio, Frame_%3d.png produrrà nomi file come Frame_001.png, Frame_002.png, ..., Frame_999.png, Frame_1000.png.

  • Formato Specifico: Alcuni dataset possono utilizzare un formato specifico per i nomi dei file delle immagini. Ad esempio, dice-%2d.png indica che il numero di sequenza è incluso nel nome del file preceduto da un prefisso (dice-) e seguito da un numero a due cifre. Assicurati di seguire il formato specifico indicato per ogni dataset.

Assicurati di controllare attentamente il formato dei nomi dei file delle immagini per ciascun dataset e seguire le indicazioni fornite per garantire una corretta elaborazione da parte del programma.

Licenza

Questo progetto è distribuito con licenza MIT, che consente un uso libero e aperto dei materiali inclusi.

About

Il seguente progetto ha come obiettivo quello di effettuare una valutazione comparativa tra differenti algoritmi di compressione video al fine di analizzare le loro prestazioni nella compressione di Light field

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •