Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Introduzione alla multimedia File Cos’è un file Il termine file, in informatica, indica un contenitore, o, appunto, un fascicolo di dati in formato digitale, tipicamente presenti su un supporto digitale di memorizzazione opportunamente formattato in un determinato file system. I dati scritti al suo...

Introduzione alla multimedia File Cos’è un file Il termine file, in informatica, indica un contenitore, o, appunto, un fascicolo di dati in formato digitale, tipicamente presenti su un supporto digitale di memorizzazione opportunamente formattato in un determinato file system. I dati scritti al suo interno sono leggibili solo tramite uno specifico software in grado di codificarli e ottenere le informazioni codificate. Dentro al file abbiamo due tipi di informazioni: - i metadati. - il contenuto vero e proprio (un immagine, un software, un audio, ecc..) I metadati sono informazioni aggiuntive che forniscono contesto e descrizione su un determinato set di dati. In altre parole, i metadati sono "dati sui dati". Queste informazioni aggiuntive possono includere dettagli su come sono stati creati, modificati, formattati e utilizzati i dati (per esempio data e ora di creazione e modifica del file, dimensione del file, autore, permessi di accesso, descrizione, tags, ecc..). Un formato di file indica la tipologia che definisce com’è strutturato il contenuto del file, specificatamente indica la codifica che deve essere usata per leggere, scrivere e interpretare i contenuti di un file. Poiché i file non sono altro che insiemi ordinati di byte, cioè semplici numeri, per poter associare al loro contenuto cose diverse si usano convenzioni che legano i byte (il significante) ad un significato. Esempio Il formato txt indica che il file ha nel contenuto del testo (stringa alfanumerica) e quindi deve essere codificato come un insieme di caratteri. Il formato possiamo vederlo come una sorta di scatola che contiene: - tutte le informazioni utili a rappresentare l’informazione. - l'informazione stessa.. Ogni formato può essere decodificato da particolari algoritmi di decodifica che risiedono in programmi specifici. Infatti ogni formato può essere associato a uno o più programmi che a loro interno contengono algoritmi che riescono a decodificare il formato file. Esempio Il formato.psd indica che il file è un foglio di lavoro di photoshop e viene associato al programma photoshop. Quindi ogni volta che si aprirà il file, il programma di photoshop si aprirà anch’esso e decodificherà il file specifico. Il formato di un file è per convenzione è indicato attraverso l'estensione, che è una serie di lettere (in genere tre, per motivi storici) unita al nome del file attraverso un punto. Esempio Prova.txt è un file di testo di nome “Prova” che usa il formato txt visto che l’estensione.txt lo specifica. Prova.jpg è un file d’immagine di nome “Prova” che usa il formato jpeg visto che l’estensione.jpg lo specifica. Ricapitoliamo: - Il computer immagazzina diversi file: - I file sono nient’altro che un contenitore di stringhe binarie (0 e 1). - Diversi programmi interpretano/decodificano/leggono il file (le stringhe binarie) in maniera diversa. - Un file può contenere informazioni di diverso tipo, la tipologia delle informazioni viene indicata dal formato. - L’estensione è una stringa che indica il formato del file. Formati file I file, in base a cosa contengono si possono dividere in due grandi categorie: - file di esecuzione - file di dati I file di esecuzione I file di esecuzione sono file che contengono il programma stesso, in particolare sono file che contengono istruzioni o codice che un computer può eseguire direttamente: infatti quando avvii un file eseguibile, esso esegue un programma o una serie di comandi. Il codice all'interno di un file eseguibile è scritto in linguaggio macchina o viene convertito in tale formato tramite un compilatore (un programma che converte un linguaggio di programmazione in codice macchina). Questi tipi di file sono progettati per essere direttamente eseguiti dalla CPU del computer. Esempio -.exe (Windows): È il tipo di file eseguibile più comune su Windows. Lanciando un file.exe, viene avviato il programma associato. -.bat (Windows): Un file batch che contiene una sequenza di comandi da eseguire nel prompt dei comandi di Windows. -.app (macOS): Su macOS, i file con estensione.app sono eseguibili. Ogni file.app è in realtà una cartella che contiene tutte le risorse necessarie per eseguire l'applicazione. -.sh (Linux/UNIX): È uno script di shell che può essere eseguito all'interno di un terminale su sistemi UNIX/Linux. -.bin (Linux): File binario che può essere eseguito direttamente dal sistema operativo. I file di dati I file di dati sono file che contengono informazioni utilizzate da un programma o un sistema per eseguire operazioni specifiche. A differenza dei file eseguibili, i file di dati non contengono istruzioni o codice per essere eseguiti direttamente dal computer, ma piuttosto immagazzinano informazioni in formati strutturati o non strutturati. I file di dati possono contenere qualsiasi tipo di dati, come testo, numeri, immagini, audio, video o informazioni strutturate in tabelle o database. Da ora in poi ci concentreremo sui file di dati visto che questa tipologia di dati contiene le informazioni multimediali che dobbiamo analizzare. In particolare i file di dati si dividono in due macro categorie: I formati di distribuzione e di elaborazione si riferiscono a due categorie principali di formati file. La distinzione principale tra questi due tipi di formati riguarda il loro utilizzo e le loro caratteristiche ottimizzate per specifici scopi: elaborazione (editing) o distribuzione (condivisione). Formati di Elaborazione I formati di elaborazione sono progettati per facilitare la modifica e la creazione di contenuti. Tendono ad avere una struttura che consente un facile accesso e manipolazione delle singole componenti del file, come i frame di un video o le tracce di un file audio. Questi formati di solito mantengono un'elevata qualità dei dati, spesso non compressi o compressi con tecniche senza perdita di dati, per prevenire la degradazione della qualità durante il processo di editing. Inoltre questi file spesso sono specifici per alcuni software di editing (infatti al loro interno hanno tante metadati legati allo sviluppo di quel programma specifico, per esempio un file.psd ha al suo interno dati come i layer, i filtri applicati, ecc…) rendendoli inutilizzabili per altri programmi, Esempi:. - AI (il formato di un file di Illustrator) - PSD (il formato di un file di Photoshop) - PRPROJ (Il formato di un file di Premiere) Formati di Distribuzione I formati di distribuzione sono file ottimizzati per la condivisione e la trasmissione dei contenuti. Tendono ad utilizzare metodi di compressione con perdita di dati per ridurre le dimensioni dei file, facilitando così lo streaming e il download su internet. Anche se questa compressione può ridurre la qualità del contenuto, i formati di distribuzione sono progettati per mantenere una qualità accettabile a fronte di una riduzione significativa delle dimensioni del file. Questi formati sono ampiamente supportati da dispositivi e browser web. Esempi: - MP3 e AAC per l'audio: formati compressi che offrono un buon compromesso tra qualità del suono e dimensione del file, ideali per la musica digitale e lo streaming. - JPEG per le immagini: un formato molto diffuso per la condivisione di immagini su internet, che utilizza la compressione con perdita per ridurre le dimensioni del file mantenendo una qualità visiva accettabile. - MP4 per i video: un formato video che permette di ridurre notevolmente le dimensioni dei file video mantenendo una buona qualità dell'immagine, ideali per lo streaming video online. Esportazione / Importazione L’esportazione è uno specifico algoritmo che trasforma un file di dati di uno specifico formato ad un altro specifico formato. Lo scopo è rendere i dati disponibili per essere utilizzati in un altro programma. L'importazione è il processo inverso, in cui un file, un progetto o dei dati vengono portati dentro un programma o dispositivo da una sorgente esterna. Lo scopo è acquisire i dati creati altrove per modificarli o utilizzarli all'interno di un nuovo ambiente o software. Comunque sia l’importazione sia l’esportazione converte i formati del file per renderli più accessibile alla destinazione, in particolare: - Nel caso dell’esportazione la sorgente è il programma è la destinazione è l’ambiente esterno. - Nel caso dell’importazione la sorgente è l’ambiente esterno e la destinazione è il programma. Esistono questi tipi di conversione: - Elaborazione - Distribuzione - Distribuzione - Distribuzione - Elaborazione - elaborazione Elaborazione - Distribuzione I programmi che supportano i formati di elaborazione hanno spesso l’opzione di rendere il contenuto distribuibile, cioè di creare un file con un formato di distribuzione con all'interno il contenuto che si vuole distribuire ottenuto dal file del formato di elaborazione. Questa funzione è fondamentale per poter convertire i vostri progetti in un formato per distribuirlo al pubblico. Distribuzione - Distribuzione I diversi formati di distribuzione hanno diversi vantaggi e svantaggi come la compatibilità con più o meno diverse piattaforme. Per questo spesso è opportuno cambiare il formato di distribuzione, prendiamo come esempio che vogliamo cambiare il formato del nostro file immagine da.png a jpg: in questo caso il jpg peserà di meno del png ma perderà certe qualità come la trasparenza nello sfondo). Comunque nei contesti professionali è sempre meglio fare un conversione di tipo “elaborazione - distribuzione” per non perdere nessun elemento in ogni conversione di diversi formati. Elaborazione - Elaborazione Alcune volte si vuole cambiare il programma di editing, per questo si deve cambiare il file del progetto dal formato del programma da cui si parte al formato del programma di cui si vuole arrivare. Ovviamente questo tipo di esportazione può essere distruttiva visto che i metadati sono specializzati per quel specifico programma. Per esempio se vuoi cambiare programma da photoshop a un programma x e quel programma x non ha nelle sue funzioni i layer, difficilmente verrà salvato nell’esportazione questa informazione. Esempio Spesso per questo tipo di conversioni si usano formati di file generici che fanno da ponte tra i diversi programmi con i loro formati specifici. Un esempio è cambiare un progetto da Premiere a DaVinci (due programmi di editing video). In questo caso, Premiere può esportare un file.XML, un formato di elaborazione comune che consente di descrivere la struttura del progetto in modo generico. Il file XML esportato contiene informazioni come le clip, i tagli, le transizioni e i riferimenti ai file multimediali. Questo file XML può poi essere importato in DaVinci, che leggerà le informazioni contenute al suo interno e ricostruirà un progetto con la stessa struttura di quello originariamente creato in Premiere. File multimediale Un file multimediale è un file di dati che contiene informazioni multimediali. Questi tipi di file possono includere testo, grafica, audio, video e altro ancora. Sorgente I file multimediale hanno due tipi di sorgente: - sorgente interna - sorgente esterna La sorgente interna La sorgente interna indica che il contenuto multimediale è stato generato direttamente dal digitale tramite programmi multimediali (si pensi a un disegno creato da un programma di grafica). Normalmente questi programmi generano un file di elaborazione con tutte le informazioni utili per la lavorazione del contenuto multimediale (per esempio il psd è il formato di lavoro per photoshop). Al termine della lavorazione su questi formati di elaborazione, il progetto viene esportato in un formato ideale per la distribuzione.(per esempio da psd si esporta in jpg) che probabilmente comprimerà il file facendolo diventare molto più piccolo in termini di dimensione. La sorgente esterna La sorgente esterna indica che il contenuto multimediale è stato catturato dal mondo esterno (una foto, un video, ecc…). Questo in termini tecnici si intende: - Convertire un segnale esterno (la luce, le onde sonore, ecc..) in un segnale analogico. Un segnale analogico è un segnale riproducibile dove i suoi valori sono numeri reali, quindi posso assumere qualsiasi valore in un determinato intervallo. - Convertire il segnale analogico in in un segnale digitale. Un segnale digitale è un segnale riproducibile nei sistemi digitali dove i suoi valori sono numeri interi, specificatamente 0 o 1 (come nel sistema binario). La conversione tra analogico e digitale è eseguita tramite la modulazione a impulsi codificati (abbreviata PCM, acronimo del corrispettivo inglese pulse-code modulation) che è un metodo di rappresentazione digitale di un segnale analogico (esistono anche altri modi ma il PCM è quello più conosciuto). - Il risultato del PCM o di una sorgente interna sarà un contenuto chiamato RAW (“grezzo”). Un Raw è un contenuto multimediale non ancora compresso. Il Raw è in genere utilizzato per il post-processing, perché contengono più informazioni, offrono una maggiore flessibilità durante la modifica tramite i programmi di elaborazione. - Dopo il post-processing, il Raw viene trasformato in un formato ideale per la distribuzione (tipo JPG o MP4), il quale probabilmente comprime il file facendolo diventare molto più piccolo in termini di dimensione. Ma perchè sia con la sorgente esterna e sia con la sorgente interna è importante comprimere un file multimediale per la distribuzione? Un file multimediale può risultare estremamente grosso per la distribuzione, per esempio analizziamo questi valori in RAW: - La Bibbia in formato testo occupa 4,41 MB. - Una foto a colori di dimensione 1280x1024 a 24 bit/pixel occupa 3,75 MB. - Una canzone di 4 minuti in formato CD occupa 40,38 MB. - Un video di 1 minuto in formato PAL occupa 1,7 GB. Codec Il termine "codec" è una contrazione di "coder-decoder" o "compressor-decompressor". Un codec è un dispositivo hardware o software che comprime e decomprime i dati digitali, solitamente audio e video. La sua funzione principale è quella di comprimere i dati durante la trasmissione o la memorizzazione e quindi decomprimerli per la riproduzione o l'elaborazione successiva: - Coder (Compressore): Questa parte del codec si occupa della compressione dei dati. La compressione riduce le dimensioni del file o del flusso di dati, consentendo di risparmiare spazio di archiviazione o larghezza di banda durante la trasmissione su reti. Ci sono diversi algoritmi di compressione utilizzati dai codec. - Decoder (Decompressore): Questa parte del codec si occupa della decompressione dei dati. Una volta che i dati compressi sono stati ricevuti o recuperati, il decoder li riporta al loro stato originale in modo che possano essere compresi o riprodotti. Il decoder svolge la sua funzione ogni volta che il file compresso viene richiamato da un software per la visualizzazione. Esempio Ogni volta che riproduci un video in formato MP4, un decoder si attiva per decomprimere i dati video e renderli leggibili al lettore multimediale. I codec possono essere integrati anche in componenti hardware come fotocamere e videocamere, dove comprimono i dati audio e video RAW in ingresso per convertirli in formati digitali gestibili. Questo consente di registrare video in alta qualità mantenendo dimensioni ridotte. Esistono due tipi di codec (La prima permette compressioni maggiori, ma a scapito della qualità): - con perdita (Lossy): quando l’informazione contenuta nel file compresso è minore di quella contenuta nel file di origine; - senza perdita (Lossless): quando l’informazione contenuta nel file compresso è identica a quella contenuta nel file di origine. I codec sono ampiamente utilizzati in vari contesti, come la trasmissione audio e video su Internet, la compressione dei file multimediali, la videochiamata, la registrazione audio e video, la televisione digitale e molto altro. Alcuni esempi di codec comuni sono: - Codec Audio: MP3, AAC, FLAC, Vorbis. - Codec Video: H.264, H.265 (HEVC), VP9. Questi codec permettono di ottenere una buona qualità audio e video mantenendo una dimensione del file o un flusso di dati gestibili. Nell'immagine sottostante vediamo per esempio come funziona il codec: - L’a traccia audio e video (in questo caso è una sorgente esterna) vengono salvate e convertire in un segnale digitale, il RAW, tramite il PCM. - Le tracce digitali audio e video in RAW vengono compresse rispettivamente tramite l’audio codec e il video codec (in particolare tramite il coder). - L’insieme di queste informazioni compresse formano il contenuto multimediale del file del video. - Quando l’utente vorrà visualizzare il video esso verrà decompresso tramite il codec (in particolare tramite il decoder) video e audio. Qualunque compressore deve trovare il giusto compromesso tra i seguenti parametri: - Bitrate: si misura in bit/sec e rappresenta il numero di bit necessari per trasmettere un secondo d’informazione. Minore è questo valore rispetto al bitrate della corrispondente informazione non compressa, maggiore sarà il tasso di compressione (nel caso delle immagini, il bitrate può essere considerato come il numero di bit per pixel o bit per area, che descrive il grado di compressione utilizzato) - Processing delay: rappresenta la somma dei tempi impiegati da encoder e decoder per eseguire le rispettive operazioni di codifica (compressione) e decodifica (decompressione). - Signal quality: indica la bontà del risultato percepito rispetto all’originale dopo la decodifica di un segnale compresso. Encoder Encoder è il software o l'hardware che codifica (o comprime) i dati video in un formato specifico per la trasmissione o l'archiviazione. L'encoder utilizza un codec per trasformare il video non compresso in un formato più gestibile, come H.264, HEVC o VP9. Esistono encoder sia hardware che software. Quindi: - Il codec è l'algoritmo o il metodo che definisce come i dati vengono compressi o decompressi. - l'encoder è il programma o il dispositivo che applica quella algoritmo per codificare (comprimere) o decodificare (decomprimere) i dati video o audio. Gli encoder hardware sono generalmente molto più veloci degli encoder software perché sono progettati specificamente per eseguire compiti di compressione e decompressione utilizzando circuiti dedicati, riducendo così il carico sul processore principale (CPU). Vantaggi degli encoder hardware: - Velocità superiore: Poiché sono progettati specificamente per la codifica, possono elaborare i video molto più velocemente rispetto agli encoder software, specialmente con video in alta risoluzione o con grandi volumi di dati. - Efficienza energetica: Gli encoder hardware sono più efficienti dal punto di vista energetico, riducendo il consumo di risorse e minimizzando il riscaldamento, rispetto a un processo di codifica software eseguito su CPU o GPU. - Minore latenza: Fondamentale per applicazioni in tempo reale, come streaming live o videoconferenze, dove è importante minimizzare il ritardo. Svantaggi degli encoder hardware: - Costo più elevato: Gli encoder hardware sono spesso molto costosi rispetto alle soluzioni software, poiché richiedono componenti specializzati. - Flessibilità limitata: Gli encoder hardware tendono a essere meno flessibili rispetto agli encoder software in termini di aggiornamenti o supporto per nuovi codec o configurazioni particolari. Per aggiungere supporto a un nuovo formato, potrebbe essere necessario acquistare nuovi hardware. Invece gli encoder software sono: - Meno costosi (spesso gratuiti, come FFmpeg). - Più flessibili e aggiornabili, supportano una gamma più ampia di formati e opzioni di configurazione. - Più lenti, specialmente con file video complessi o in alta definizione, poiché dipendono dalla potenza di elaborazione della CPU o GPU. L'encoder hardware è quindi ideale per applicazioni professionali ad alte prestazioni o ambienti in cui la velocità e l'efficienza sono critiche, come le trasmissioni in diretta o la post-produzione video. Esempio Un esempio comune è il codec H.264: questo è l'algoritmo, mentre un programma come FFmpeg può essere l'encoder software che usa H.264 per codificare un video. Bitrate I file multimediali come l’audio e il video sono per loro natura connessi al tempo che scorre. A ogni secondo di questi file è associato un certo contenuto informativo, rappresentato da una sottosequenza di cifre binarie." Il numero di cifre binarie che compongono queste sottosequenze è detto bitrate. Il bitrate è il numero di cifre binarie impiegate per immagazzinare un secondo di informazione. Il bitrate può essere: - Costante per tutta la durata del file: bitrate costante. - Variare in base alla complessità del contenuto in un dato momento: bitrate variabile. Nei media con bitrate variabile, il flusso di dati viene ottimizzato: aree con informazioni più complesse usano un bitrate più alto, mentre le sezioni più semplici ne usano uno più basso. Conoscere il bitrate di un media digitale fornisce quindi un’indicazione sulla sua qualità e velocità necessaria per un suo corretto trasferimento. Più è alto è il bitrate più indica che il media digitale è accurato e pesante, invece più basso più indica che il media digitale è poco accurato e leggero. Esempio Un audio di qualità CD ha un bitrate di 1411200 b/s = 1411,2 kb/s = 1,411 Mb/s pertanto, per un trasferimento ottimale, la velocità di rete dovrebbe essere di almeno 2 Mb/s (quella di una linea ADSL base). Conoscere il bitrate di un media digitale equivale a calcolare anche le dimensioni del file associato: 𝐷𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑒 (𝑖𝑛 𝑏𝑖𝑡) = 𝑏𝑖𝑡𝑟𝑎𝑡𝑒 * 𝑑𝑢𝑟𝑎𝑡𝑎 La dimensione conviene calcolarla in Byte (1 Byte equivale a 8 bit), quindi: 𝐷𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑒 (𝑖𝑛 𝐵𝑦𝑡𝑒) = (𝑏𝑖𝑡𝑟𝑎𝑡𝑒 * 𝑑𝑢𝑟𝑎𝑡𝑎)/8 Esempio Quanto pesa 1 minuto di un audio digitale di qualità CD? Il bit rate di un audio di qualità CD è 1,411 Mb/s, quindi: 𝐷𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑒 = (1, 411 𝑀𝑏/𝑠 * 60 𝑠) / 8 = 84. 66 𝑀𝑏/8 = 10. 59 𝑀𝐵 P.S: Ovviamente queste formule funzionano solo se il bitrate è costante per tutto il flusso di informazioni. Struttura file multimediale un file, come abbiamo visto è composto da - Metadati - Formato. Il formato, in questo caso multimediale, a sua volta, contiene: - Istruzioni su come decodificarlo. Queste istruzioni si trovano in una sezione chiamata “header” - Il contenuto multimediale effettivo. Sotto si esaminano le diverse sezioni che compongono un file multimediale. Metadati Informazioni generali di qualunque tipo di file: Questi includono dettagli come il titolo del file, l'autore, la data di creazione, ecc. Header Questa sezione contiene informazioni cruciali sulla struttura del file. Per esempio, in un file audio, l'intestazione potrebbe indicare il tipo codec utilizzato (MP3, AAC, H.264, etc.) e altre informazioni necessarie per interpretare correttamente il contenuto. L'header è essenziale perché comunica al software o lettore multimediale quale codec e quali parametri utilizzare per decomprimere correttamente il contenuto. Alcuni file multimediali, come le immagini o i file audio, possono contenere metadati specifici del tipo di contenuto, come l'autore di una canzone o i dettagli della fotocamera utilizzata per scattare una foto. Tramite l’header il file multimediale “contiene” il codec corrispondente, precisamente contengono le informazioni per far si che il codec del lettore multimediale compatibile possa visualizzare le informazioni correttamente. Curiosità Il formato RAW non ha un header, perché è un file grezzo che contiene solo i dati non elaborati. Per poter essere utilizzato, il RAW viene racchiuso in un formato contenitore specifico, come il CR2 nelle fotocamere Canon, che permette di gestire e interpretare i dati grezzi. Contenuto Multimediale Questa è la parte principale del file che contiene il contenuto multimediale vero e proprio. Ad esempio, in un file audio, questa sezione conterrà i dati audio codificati. Lettore multimediale Un lettore multimediale è un tipo di software o dispositivo hardware progettato per riprodurre contenuti multimediali, come video, musica, immagini, podcast, e altro ancora. Le capacità di questi lettori possono variare notevolmente: dalla semplice riproduzione di file audio da un file locale (dentro il dispositivo) a sistemi complessi che gestiscono librerie di media estese, eseguono lo streaming di contenuti online, e supportano una vasta gamma di formati di file e codec. I lettori multimediali software funzionano leggendo i file multimediali da una sorgente, che può essere il disco rigido di un computer, un dispositivo di memoria esterno, o un flusso da Internet. I lettori multimediali sono associati a dei formati a cui sono compatibili. Per esempio se un lettore multimediale non è compatibile con il formato jpg, vuol dire che non potrà riprodurre un’immagine salvata in formato jpg. Per essere compatibili con determinati formati, i lettori multimediali devono includere i codec necessari per decodificare quei formati. Ecco i passaggi di base su come funzionano: - Apertura del File o Flusso: Il lettore multimediale inizia con l'aprire o accedere al file multimediale o al flusso che l'utente desidera riprodurre. - Decodifica: Una volta accesso al file o flusso, il lettore utilizza codec incorporati o esterni per decodificare i dati multimediali contenuti nel file o flusso. - Elaborazione: Dopo la decodifica, il lettore può elaborare ulteriormente il segnale per migliorare la qualità della riproduzione o per adattarlo alle specifiche dell'hardware di output, come il bilanciamento del suono per altoparlanti o cuffie, o il ridimensionamento dell'immagine per adattarsi alla risoluzione dello schermo. - Sincronizzazione: Il lettore assicura che i flussi multimediali siano sincronizzati correttamente durante la riproduzione (tipo la traccia audio e video in un filmato), oltre a gestire qualsiasi traccia accessorie come i sottotitoli o altre tracce di dati, come i metadati. - Output: Infine, il lettore invia i dati multimediali decodificati all'uscita del dispositivo di output più idoneo (per esempio l’audio lo invia agli altoparlanti o alle cuffie). Esempio Adobe Acrobat è un lettore multimediale, in particolare legge il formato pdf. Anche Netflix è un lettore multimediale (in particolare è una piattaforma di streaming che tra le sue funzioni è anche un lettore multimediale), specificatamente è un lettore che funziona via browser che visualizza un flusso video da internet. MPEG MPEG è l'acronimo di Moving Picture Experts Group, un gruppo di esperti che sviluppa standard per la compressione audio e video. L'obiettivo principale degli standard MPEG è quello di consentire una compressione efficiente dei dati audio e video per la trasmissione e la memorizzazione, riducendo al contempo la perdita di qualità al minimo. Questo gruppo pubblica degli standard che indicano come debba essere composti di elementi multimediali (codec, formati, ec…) derivati dalle direttive del MPEG in modo che ogni costruttore possa realizzare questi elementi multimediali come meglio crede pur attenendosi al formato del file definito dal consorzio MPEG per ottenere una compatibilità e una coerenza globali. Per spiegarlo meglio lo standard MPEG definisce un formato contenitore generale (come MP4), che può includere diversi tipi di dati multimediali, come video, audio, sottotitoli, ecc. All'interno di questo formato contenitore, si possono utilizzare diversi codec per la compressione e decompressione dei vari flussi di dati (come H.264 per il video o AAC per l'audio). Tuttavia, le implementazioni di questi codec devono seguire delle direttive comuni stabilite dallo standard MPEG per garantire la compatibilità e l'interoperabilità tra dispositivi. Esempio L'H.264, noto anche come AVC (Advanced Video Coding), è uno dei codec video più utilizzati al mondo per la compressione video. È stato sviluppato congiuntamente da MPEG. Le implementazioni effettive di H.264 sono molteplici e sono state integrate in una vasta gamma di software, hardware e piattaforme di streaming. Ecco alcune delle implementazioni più diffuse di H.264. x264 (Open Source) - Descrizione: x264 è probabilmente l'implementazione più nota e utilizzata di H.264. È un progetto open-source che fornisce una libreria per la codifica video in formato H.264. - Caratteristiche: x264 è altamente ottimizzato per fornire un eccellente bilanciamento tra qualità video e compressione, con supporto per diverse impostazioni di bitrate e risoluzione. Supporta anche profili avanzati di H.264 come il High Profile, utilizzato per contenuti HD. - Applicazioni: x264 è integrato in molti software e librerie di transcodifica e riproduzione video come FFmpeg, HandBrake, e VLC Media Player. FFmpeg - Descrizione: FFmpeg è una delle librerie multimediali open-source più versatili e potenti. Include x264 per la codifica H.264 e altre librerie per la decodifica e gestione di video. - Caratteristiche: Supporta una vasta gamma di formati video e codec, inclusa la possibilità di transcodificare tra H.264 e altri formati come HEVC, VP9, e MPEG-2. È spesso utilizzato per l'encoding, il decoding e la manipolazione di video in applicazioni professionali e consumer. - Applicazioni: Molto utilizzato in sistemi di streaming video, piattaforme di conversione video e software di editing come Adobe Premiere, OBS Studio, e per lo streaming su piattaforme come YouTube. Apple Video Toolbox - Descrizione: Apple Video Toolbox è una libreria di codifica e decodifica video che supporta H.264 su macOS e iOS. - Caratteristiche: Sfrutta l'accelerazione hardware sui dispositivi Apple, riducendo il carico sulla CPU e migliorando le prestazioni di codifica e decodifica. È ottimizzata per il sistema operativo Apple e gestisce sia la riproduzione che l'encoding H.264. - Applicazioni: Utilizzata in QuickTime, Final Cut Pro, e nelle applicazioni di editing video su dispositivi iPhone e iPad. Apple utilizza ampiamente H.264 per la registrazione video sui suoi dispositivi. Nvidia NVENC (Accelerazione Hardware) - Descrizione: NVENC è l'encoder hardware sviluppato da Nvidia per le sue GPU, che supporta la codifica di video H.264 (e altri codec come HEVC) sfruttando la potenza di calcolo delle GPU. - Caratteristiche: Utilizza l'hardware della GPU per accelerare notevolmente il processo di encoding video, riducendo il carico sulla CPU. Supporta anche la codifica in tempo reale, rendendolo ideale per applicazioni di streaming live e registrazione di gameplay. - Applicazioni: Utilizzato in software di streaming come OBS Studio, Twitch, YouTube Live, e in soluzioni di editing video come Adobe Premiere. Questo è fondamentale perché prima dell’MPEG non c’erano standard definiti e quindi i formati multimediali potevano essere letti solo dai dispositivi dell’azienda che ha creato quel formato specifico. Tramite l’MPEG si sono creati degli standard in modo tale che un formato multimediale potesse essere letto dalla maggior parte dei dispositivi (dispositivi che aderiscono a questi standard). Gli standard definiscono: - Le specifiche tecniche. - Le linee guida per la compressione, la decompressione, la trasmissione e la rappresentazione dei dati multimediali. Una volta che uno standard MPEG è stabilito, le aziende e gli sviluppatori privati possono utilizzarlo come base per creare implementazioni specifiche. Negli anni sono usciti diversi standard sempre più aggiornati e incline alle tecnologie del periodo. Ad esempio, MPEG-2 è uno standard ampiamente utilizzato per la compressione video, ma ciò non significa che tutte le implementazioni basate su questo standard siano identiche. Diverse aziende possono creare i propri codec e formati compatibili con lo standard MPEG-2, pur rispettando le specifiche stabilite dal gruppo. Esempio Una delle specifiche definite dallo standard MPEG-2 è il Transport Stream (TS), utilizzato principalmente per trasmettere video e audio compressi su reti digitali come la televisione via satellite o via cavo. MPEG-2 definisce come i dati multimediali compressi vengono suddivisi e trasmessi in pacchetti di lunghezza fissa, 188 byte, permettendo la trasmissione e la sincronizzazione dei flussi video/audio in tempo reale. Questo formato è essenziale per garantire la compatibilità tra dispositivi e sistemi che trasmettono e ricevono contenuti multimediali. Quindi ogni codec che implementa l’MPEG-2 deve suddividere il flusso audio/video in pacchetti a 188 byte. Un altro esempio è Il formato MP4 che prende il suo nome da MPEG-4 Part 14, una parte dello standard MPEG-4. Quindi l’MP4 è il formato generico che definisce la parte 14 dello standard MPEG-4 del MPEG. Quando guardi un video su YouTube, è probabile che venga utilizzato proprio un formato MP4 con un codec video H.264. Tale codec segue gli standard MPEG-4 part 14 per essere compatibile con il formato definito da quelle specifiche, in questo caso proprio MP4.. In sintesi, l'MPEG fornisce un una guida/una interfaccia, invece le implementazioni specifiche (tipo i codec) sono sviluppate da aziende per creare prodotti e servizi compatibili con gli standard MPEG. Questo approccio favorisce l'interoperabilità e la diffusione di tecnologie multimediali in tutto il mondo. Versioni principali L'MPEG ha sviluppato diversi standard multimediali nel corso degli anni, raggruppati in versioni o "generazioni" principali. Ecco una panoramica delle versioni principali rilasciate dall'MPEG: - MPEG-1 (1993) - Introdotto come standard per la compressione video e audio digitale, utilizzato principalmente per la codifica di video su CD. Ha dato origine al formato MP3 per l'audio. - Elementi principali: Video CD (VCD), MP3 (formato audio). - MPEG-2 (1995) - Un miglioramento dell MPEG-1, utilizzato per la televisione digitale, i DVD e le trasmissioni satellitari. - Elementi principali: DVD, DVB (Digital Video Broadcasting). - MPEG-4 (1998) - Un formato multimediale più avanzato che supporta video, audio, grafica e interattività. Utilizzato principalmente per streaming video su Internet, contenuti mobili e compressione video ad alta qualità. - Elementi principali: MP4 (formato video), AVC/H.264 (codec video). - MPEG-21 (2001) - Uno standard per la gestione dei diritti digitali e la distribuzione dei contenuti multimediali, progettato per facilitare lo scambio e l'accesso ai media digitali su diverse piattaforme. - MPEG-7 (2002) - Standard per la descrizione del contenuto multimediale. Più che per la compressione, è stato sviluppato per facilitare la catalogazione, la ricerca e l'indicizzazione di contenuti audiovisivi. - Focalizzato su interoperabilità e gestione dei diritti. - MPEG-DASH (2011) - Dynamic Adaptive Streaming over HTTP, uno standard per il video streaming adattivo su Internet. Permette di adattare la qualità del video in tempo reale in base alla larghezza di banda (in termini semplici la velocità di internet) disponibile, migliorando l'esperienza di streaming senza interruzioni. - Utilizzato da servizi di streaming come Netflix, YouTube e altri. - MPEG-H (2013) - Standard multimediale di ultima generazione, che comprende sia il video (HEVC o H.265) che l'audio immersivo (MPEG-H 3D Audio). Utilizzato per contenuti 4K, 8K e audio 3D. - Elementi principali: HEVC/ H.265 (codec video), MPEG-H 3D Audio (codec audio). Struttura Ogni standard MPEG è suddiviso in diverse parti, ciascuna delle quali si concentra su un aspetto specifico della codifica, compressione, o trasmissione di audio, video, e altri dati correlati. Queste parti dello standard MPEG sono segmenti distinti che trattano diversi aspetti della codifica e compressione dei dati multimediali. Esempio Ecco una panoramica delle principali parti nello standard MPEG: MPEG-1: - Parte 1 Sistema: Definisce l'incapsulamento dei dati audio e video in un unico flusso, creando un "contenitore" per il multimedia (es. video e audio insieme). - Parte 2 Video: Specifica la compressione dei dati video, utilizzata per video a bassa risoluzione, come i Video CD (VCD). - Parte 3 Audio: Contiene tre livelli di compressione audio, tra cui il più noto è Layer III, cioè l'MP3, che è stato il primo formato ampiamente utilizzato per comprimere l'audio digitale. - Parte 4 Conformità: Definisce test e linee guida per la conformità a MPEG-1 per i sistemi e le applicazioni. - Parte 5 Software di riferimento: Fornisce codici software di riferimento che dimostrano il funzionamento degli algoritmi MPEG-1. In base se la parte si concentra su audio o video, le parti si dividono a sua volta: - Video: profili e livelli. - Audio: layer. Video In ogni parte vengono definiti i "profili" che a sua volta sono suddivisi in "livelli" che sono utilizzati per definire specifiche capacità di codifica e requisiti di sistema per i codec audio e video. - Un profilo in un standard MPEG è un sottoinsieme di specifiche tecniche che definisce un certo gruppo di funzionalità. Ogni profilo è progettato per soddisfare un particolare insieme di requisiti e si rivolge a specifiche applicazioni o mercati. Ad esempio, un profilo potrebbe essere ottimizzato per la trasmissione a banda larga, mentre un altro potrebbe essere progettato per la codifica di alta qualità a basse bitrate. I profili determinano quali tecniche di compressione e quali funzionalità sono disponibili. - Un livello all'interno di un profilo specifica i limiti operativi o le prestazioni di quel profilo. I livelli definiscono parametri come la risoluzione massima, il bitrate massimo, e la complessità di elaborazione supportata. L'obiettivo dei livelli è garantire che un dispositivo o un software che supporta un certo livello sia in grado di decodificare tutti i contenuti codificati entro quei parametri. Utilizzando i concetti di profili e livelli, gli standard MPEG possono fornire una flessibilità notevole, permettendo una vasta gamma di applicazioni, dalla codifica per dispositivi a bassa potenza fino alla trasmissione di video ad alta definizione, garantendo allo stesso tempo che il contenuto sia compatibile con i dispositivi che supportano specifici profili e livelli. Esempio Nel codec H.264 (un codec molto usato nei video), esistono vari profili come Base, Main, High, e così via. - Il profilo Base è ottimizzato per applicazioni a bassa complessità, bassa potenza e bassa larghezza di banda, come la videoconferenza. - Il profilo High è progettato per applicazioni ad alta definizione come la trasmissione televisiva HDTV e i Blu-ray. All'interno di questi profili, ci sono diversi livelli che specificano parametri come la risoluzione massima e il bitrate massimo. Audio Invece le parti relative all’audio si dividono in in layer. Ogni layer rappresenta un diverso approccio nell'elaborazione e nella compressione del segnale audio. Questi layer sono particolarmente importanti nello standard MPEG-1 (e in una certa misura in MPEG-2). Esempio Il formato MP3 è anche conosciuto come MPEG-1 Audio Layer III. Perché si riferisce: - allo standard 1 dell mpeg. - della parte riferita all’audio, specificatamente la parte 3 (come abbiamo visto nell’esempio precedente). - del layer 3 (invece il layer 1 e 2 si riferiscono al MP1 e al MP2). Bibliografia Approfondimenti https://www.repubblica.it/tecnologia/blog/media-e-intelligenza/2021/11/25/news/il_primo_sta ndard_mpeg_compie_29_anni-327807256/

Use Quizgecko on...
Browser
Browser