Linux multimedia/Introduzione: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nimrod (discussione | contributi)
m ritocchi
Ramac (discussione | contributi)
cambio avanzamento a 100%
Riga 1:
= Introduzione =
 
Scopo iniziale di questo testo era fornire almeno le conoscenze e le pratiche di base per acquisire, elaborare e convertire filmati di vario tipo e da vari sorgenti. L'utenza interessata è soprattutto quella casalinga, alle prese con i riversamenti su computer dei filmati [[w:digital_video|DV]] o con il problema della conversione delle vecchie videocassette in formati più moderni e pratici, o infine con la creazione di copie di backup dei propri DVD.
 
Line 37 ⟶ 35:
È anche molto importante, soprattutto all'inizio, annotare con un buon dettaglio gli esperimenti che si fanno: le opzioni sono tante, e dimenticare come si era riusciti ad ottenere un buon risultato capita facilmente, ed è tremendamente frustrante. A questo scopo, se si creano degli script, è importante ricordare di registrare in un file di log le informazioni più rilevanti circa le operazioni effettuate: data e ora, opzioni usate, qualche messaggio esplicativo e, cosa che si trascura facilmente, anche data e ora in cui lo script termina. In alternativa, si può registrare nel file di log la durata delle operazioni, ma l'idea è che bisogna imparare a stimare i tempi richiesti nelle diverse situazioni, perché su architetture di qualche anno fa alcune operazioni possono essere veramente lunghe, e quindi bisogna avere un'idea di quanto tempo ci vuole in media per una determinata operazione.
 
== Nozioni teoriche di base ==
 
Alcuni concetti sono trasversali: valgono sia per l'audio che per il video. Vale dunque la pena di raccoglierli insieme per non ripetere le stesse cose in seguito.
 
=== Bitrate ===
 
La riproduzione di contenuti multimediali è naturalmente un processo in cui il tempo è un fattore cruciale: nessuno vorrebbe vedere un DVD a velocità diversa da quella ''naturale'', o ascoltare la quinta sinfonia di Beethoven al rallentatore. Nella riproduzione o trasmissione del multimedia vanno quindi rispettati dei tempi ben precisi.
Line 53 ⟶ 51:
Infine, quando i contenuti multimediali non sono trasmessi, sono pur sempre memorizzati da qualche parte. A questo punto emerge il legame del bitrate con lo spazio: un bitrate elevato, moltiplicato per la durata del contenuto, si traduce ovviamente in una elevata quantità di spazio per la memorizzazione, che sia su disco rigido, su supporto ottico, su memoria flash o anche su nastro. Il problema dello spazio si pone però anche durante l'elaborazione o la trasmissione: il software deve disporre di memoria sufficiente a gestire informazione di alta qualità, e quindi ha bisogno di un hardware opportuno.
 
=== Formati e codec ===
 
I contenuti multimediali digitali devono essere memorizzati in qualche modo. Proprio come esistono un gran numero di formati per la memorizzazione di documenti di testo (come RTF, DOC, ODT e TXT), così esistono molti formati diversi per la memorizzazione e la trasmissione del multimedia.
Line 65 ⟶ 63:
Fra i codec audio più famosi vanno ricordati:
 
:; WAV e PCM: (non compressi, usati nei CD audio)
; MP3 (MPEG-1 Layer III): compresso e attualmente in assoluto il più diffuso e utilizzato
; (non compressi, usati nei CD audio)
; AAC3: Advanced Audio Coding, di alta qualità, usato nei DVD video commerciali
: MP3 (MPEG-1 Layer III)
; Vorbis: codec open source in diretta concorrenza con MP3. Molto valido, purtroppo è supportato solo da lettori hardware di fascia alta, del costo di un iPod
; compresso e attualmente in assoluto il più diffuso e utilizzato
: AAC3
; Advanced Audio Coding, di alta qualità, usato nei DVD video commerciali
: Vorbis
; codec open source in diretta concorrenza con MP3. Molto valido, purtroppo è supportato solo da lettori hardware di fascia alta, del costo di un iPod
 
Per il video, vanno invece ricordati:
 
; MPEG-2 e derivati: sono i codec certamente più usati, in particolare nella televisione digitale, sia satellitare che terrestre, anche in alta definizione (HDTV, ''High Definition TV'') e nei DVD video
: MPEG-2 e derivati
; MPEG-4 e derivati: più flessibili ed efficienti, questi codec stanno trovando ampia diffusione soprattutto nel mercato ''consumer'', ed è ormai pratica quotidiana usare codec di questo tipo per creare copie di backup di DVD video di buona qualità e piccoli abbastanza da stare in un CD-ROM da 700Mb. Sono però usati anche a livello professionale, ad esempio per la trasmissione su canali a banda limitata e senza pretese di elevata qualità (ad esempio nei videofonini), perché consentono di usare bitrate molto bassi con una perdita di qualità accettabile.
; sono i codec certamente più usati, in particolare nella televisione digitale, sia satellitare che terrestre, anche in alta definizione (HDTV, ''High Definition TV'') e nei DVD video
; Theora: uno dei pochi codec video open source, sviluppato dalla stessa comunità del Vorbis, è molto valido ma non è supportato praticamente da nessun lettore hardware.
: MPEG-4 e derivati
; più flessibili ed efficienti, questi codec stanno trovando ampia diffusione soprattutto nel mercato ''consumer'', ed è ormai pratica quotidiana usare codec di questo tipo per creare copie di backup di DVD video di buona qualità e piccoli abbastanza da stare in un CD-ROM da 700Mb. Sono però usati anche a livello professionale, ad esempio per la trasmissione su canali a banda limitata e senza pretese di elevata qualità (ad esempio nei videofonini), perché consentono di usare bitrate molto bassi con una perdita di qualità accettabile.
: Theora
; uno dei pochi codec video open source, sviluppato dalla stessa comunità del Vorbis, è molto valido ma non è supportato praticamente da nessun lettore hardware.
 
=== Contenitori multimediali ===
 
Al di là della codifica e decodifica dell'informazione video e audio, che sono processi sostanzialmente indipendenti, la riproduzione di contenuti sia audio che video pone il problema della sincronizzazione dei due flussi: il suono (colonna sonora, dialoghi, voci fuori campo e così via) deve procedere di pari passo al video. Questo rende necessari formati specifici il cui scopo è proprio contenere un flusso video e un flusso audio in modo da consentire la loro successiva riproduzione o trasmissione in perfetta sincronia. Questi formati si dicono appunto ''contenitori'' (in inglese ''container format'').
Line 97 ⟶ 88:
; MPEG : È il contenitore proposto dal gruppo MPEG. Meno usato semplicemente perché non è mai riuscito a scalzare il predominio di AVI. Dal punto di vista tecnico è invece più evoluto.
 
=== Compressione ===
 
Che si voglia elaborare, riprodurre o trasmettere informazione multimediale, bisogna fare i conti con i mezzi a disposizione, e cioè potenza di calcolo, memoria, ampiezza di banda etc. Se i mezzi non sono adeguati al bitrate scelto, si può tentare di ridurlo cercando di limitare al massimo la conseguente perdita di qualità. In questo consiste sostanzialmente la compressione.
Line 105 ⟶ 96:
I codec operano in una serie di passi successivi, di solito su piccoli blocchi di dati, in modi in fondo non così diversi come si potrebbe pensare. Correndo il rischio di semplificare anche troppo, tentiamo nelle prossime sezioni di illustrare come avviene tipicamente la compressione e la decompressione del multimedia.
 
==== Dal segnale alle frequenze ====
 
Quando si pizzica una corda di chitarra, il suono che si percepisce non è dato da una sola onda sonora, ma da infinite onde di frequenze diverse che si sovrappongono. Ognuna di queste onde, oltre ad una sua specifica frequenza, ha una particolare ampiezza. Quelle con ampiezza minore, indipendentemente dalle loro frequenze specifiche, contribuiscono alla percezione meno di quelle con ampiezza maggiore. Inoltre quelle al di fuori di un certo intervallo di frequenza non sono udibili dall'orecchio umano.
Line 119 ⟶ 110:
La trasformazione in frequenze sfrutta la trasformata di Fourier discreta ([[FFT]]) per l'audio, e la trasformata in coseni discreta ([[DCT]]) per il video. Si tratta di trasformazioni molto studiate e consolidate, e soprattutto sono implementate con algoritmi molto efficienti. Tipicamente, queste trasformazioni operano su valori interi e restituiscono valori interi: sono cioè puramente digitali.
 
==== Quantizzazione ====
 
Una volta che si dispone del dato nello spazio delle frequenze, e quindi delle ampiezze relative alle diverse frequenze, un tipico codec procede alla cosiddetta [[quantizzazione]], prima di una serie di compressioni vere e proprie. Oggetto della compressione sono i coefficienti delle frequenze, che siano audio o video: ciascun coefficiente di frequenza viene diviso per un fattore fisso, caratteristico di quella particolare frequenza, e che dipende dal codec o dal livello di compressione che si vuole ottenere; il risultato di questa divisione viene poi arrotondato all'intero più vicino. In questo modo i coefficienti non sono più quelli originali: i valori sono ridimensionati, alcuni più, altri meno. Ciascun codec opera in un modo particolare, e spesso è possibile configurare un codec perché utilizzi divisori scelti dall'utente (cosa che fanno solo i più esperti e gli sviluppatori).
Line 127 ⟶ 118:
Naturalmente, quando i contenuti devono essere riprodotti, saranno disponibili coefficienti quantizzati, quindi più poveri di quelli originali, e quindi non viene invertita l'operazione di quantizzazione (che, per inciso, è per sua natura non invertibile, dato che produce perdita di informazione).
 
==== Compressione dei coefficienti ====
 
Quantizzati i coefficienti in frequenza, essi vengono opportunamente organizzati per essere poi compressi con algoritmi senza perdita di informazione, sostanzialmente simili alla maniera di ZIP e simili. L'idea è di lavorare direttamente sui bit, sostitendo lunghe sequenze di zeri con la loro stessa lunghezza. Si parla di 'run-length encoding'' o ''variable length coding''
Line 135 ⟶ 126:
Questa forma di compressione, non provocando perdita di informazione, è invertibile, e la relativa decompressione viene eseguita dal decoder.
 
=== Percezione sensoriale ===
 
I sensi umani non hanno tutti la stessa sensibilità. L'udito è molto sensibile a variazioni rapide, e per questo la frequenza con cui viene campionato un segnale audio è notevolmente superiore a quella con cui è campionato un segnale video: nel primo caso si parla di migliaia di Hz, nel secondo, almeno nel sistema PAL in uso in Europa, di 50 Hz. Un orecchio allenato si accorge che sta ascoltando un segnale campionato a frequenza ridotta, mentre l'occhio non si accorgerebbe facilmente che un filmato è riprodotto a 100 fotogrammi al secondo invece di 50 (al massimo può percepire una maggiore stabilità delle immagini).
Line 143 ⟶ 134:
Analogamente, si possono sfruttare caratteristiche note della vista per ridurre le informazioni, e quindi il bitrate, senza incidere troppo sulla qualità. È noto ad esempio che l'occhio è più sensibile alle variazioni di intensità luminosa che alle variazioni di colore. Inoltre, i fotorecettori della retina sono di soli tre tipi, e ciascuno è specializzato su un piccolo intervallo di frequenze, grosso modo corrispondenti a rosso, verde e blue. Infine, i fotorecettori del verde sono notevolmente più sensibili di quelli dl rosso, a loro volta nettamente più sensibili di quelli per il blu.
 
Per questo motivo, già nella televisione tradizionale, le informazioni relative al colore non sono memorizzate in [[RGB]] (rosso, verde e blu, i tre colori fondamentali), ma in [[w:YUV|YUV]]: una informazione per la cosiddetta luminanza e due per la crominanza, calcolate a partire dall'RGB per sintesi sottrattiva. Esistono trasformazioni invertibili da RGB a YUV, ma la codifica YUV è più vantaggiosa rispetto alla RGB dal punto di vista della compressione, appunto perché mette in risalto parametri più significativi per la vista umana rispetto alla più ovvia codifica RGB.
 
Più in generale, sia per l'audio che per il video vengono sfruttate diverse caratteristiche dell'udito e della vista per ridurre il bitrate senza troppo incidere sulla qualità. Di solito i codec consentono di specificare quali di queste caratteristiche sfruttare in fase di codifica e come.
 
[[Categoria:Linux multimedia|Introduzione]]
{{Avanzamento|100%|24 marzo 2008}}