Lezione 3_4i Codifica Codifica Binaria Codifica binaria dei numeri Codifica binaria dei caratteri Codifica binaria delle immagini Codifica binaria dei segnali video Codifica binaria dei segnali elettrici Codifica I dati possono essere di tipoi: • analogico, in cui la grandezza è definita in modo continuo, o • digitale in cui la grandezza è definita in modo discreto. Le grandezze percepite dai nostri sensi sono tipicamente di natura analogica. Un segnale analogico è una grandezza che varia in modo continuo nel tempo o nello spazio o in entrambi i domini. Codifica • I dati possono essere “memorizzati su” o “trasmessi mediante” un supporto. • Il supporto non è il dato. • Ogni supporto ha caratteristiche fisiche proprie. • Alcuni supporti sono adatti a memorizzare i dati mentre altri sono particolarmente convenienti nel trasportarli. • I medesimi dati possono essere scritti su supporti differenti. Codifica • La codifica è l’operazione con cui i dati sono trascritti su un supporto. • La decodifica è l’operazione con cui i dati sono letti da un supporto. Codifica binaria Per trattare (creare, elaborare, immagazzinare , trasmettere ….) le informazioni (ad es. i segnali) con metodi e strumenti automatici (ad es. il calcolatore) si utilizzano sistemi digitali. Programmi e dati sono forniti ai sistemi digitali come sequenze binarie. In cui ogni elemento è rappresentato mediante i due simboli binari 0 e 1. I simboli 0 e 1 rappresentano due stati: • spento / acceso • basso / alto • buio / luce Programma 0101100110100101100110 Dati 1101000110101010001110 Risultati Hardware1101001101101000001010 Schema di un sistema di elaborazione Codifica binaria Processo che permette di rappresentare dei dati (numeri, testi, immagini, suoni. . . ) mediante sequenze binarie. Il processo inverso è la decodifica. Codifica Dati Rappresentazione Decodifica Codifica binaria Bit • L’elemento base della codifica binaria è il bit (binary digit, cifra binaria). • Con un bit possiamo rappresentare una informazione che può assumere 2 valori. • Esso costituisce l'unità di misura dell'informazione, definita come la quantità minima di informazione che serve a discernere tra due possibili stati equiprobabili. Esempio Stato di una lampadina 0 = spento, 1 = acceso Codifica binaria Per rappresentare più valori è necessario usare sequenze di bit 1 bit 2 valori: 0, 1 2 bit 4 valori: 00, 01, 10, 11 3 bit 8 valori: 000, 001, 010, 011, 100, 101, 110, 111 n bit rappresentano 2n diversi valori Il byte • Il byte è l’unità fondamentale del linguaggio dei computer • È composto da 8 bit • Rappresenta 256 possibili stati (28 = 256) Codifica binaria Altre unità di misura • • • • nibble = 4 bit = ½ byte word (WORD) = pari a 16, 32 o 64 bit a seconda del tipo di elaboratore double word (DWORD o LONGWORD) = 2 word quad word (QWORD) = 4 word Unità multiple di bit e byte Nome Simbolo Kilobyte KB Megabyte Gigabyte GB Terabyte TB Multiplo 103 MB 109 1012 N. di byte a cui corrisponde 1.024 106 1.048.576 1.073.741.824 1.099.511.627.776 Nel simbolo delle unità di misura la lettera b può essere maiuscola o minuscola: • La b minuscola indica che trattiamo multipli del bit o 1 Mb = 1 Megabit = 1.048.576 bit • La B maiuscola indica che trattiamo multipli del byte o 1 MB = 1 Megabyte = 1.048.576 byte = 8.388.608 bit Codifica binaria Esempio: quanta memoria occupa il file lezione3i.ppt. Considerando il sistema operativo windows, cliccando con il tasto destro del mouse su un file e selezionando la voce Proprietà si ottengono alcune informazioni sul file scelto, in particolare sono fornite e le dimensioni del file. Codifica binaria Esempio: capacità di memoria dell’ hard disk C:? Considerando il sistema operativo windows, cliccando con il tasto destro del mouse sull’hard disk C: e selezionando la voce Proprietà si ottengono alcune informazioni. Codifica binaria Esercizio 1 Quanti valori diversi si possono rappresentare con 5 bit? Con 5 bit si possono rappresentare 25 = 32 diversi valori. Esercizio 2 Quanti valori diversi si possono rappresentare con 2 byte? 2 byte = 16 bit, pertanto si possono rappresentare 216 = 65536 diversi valori. Esercizio 3 Quanti bit servono per rappresentare 1000 diversi valori? Si deve trovare il minimo numero n di bit che soddisfi 2n > 1000, Risulta 210 = 1024, quindi n = 10. Esercizio 4 Quanti bit occorrono per rappresentare 112 diversi valori? Occorrono 7 bit infatti 27 = 128. Codifica binaria Attraverso il processo di codifica si possono rappresentare vari tipi di dati: • • • • • • • Numeri naturali Numeri interi (numeri naturali + numeri interi negativi) Numeri reali (numeri razionali + numeri irrazionali) Caratteri Immagini Suoni (Segnali) Video Esistono diverse convenzioni (codifiche) per fornire a ciascun tipo di dato una rappresentazione binaria. Codifica binaria dei numeri (1) Sistema di numerazione decimale I numeri normalmente utilizzati sono espressi con la notazione posizionale in base decimale • base decimale perché sono utilizzate dieci cifre diverse (da 0 a 9) • notazione posizionale perché cifre uguali in posizioni diverse hanno significato diverso (hanno peso diverso, cioè pesano diversamente nella determinazione del valore del numero espresso) Il peso di una cifra è uguale: • alla base del sistema di numerazione (10 in questo caso) • elevata a potenza pari alla posizione della cifra nel numero posizione che si incrementa da destra a sinistra a partire da 0. Codifica binaria dei numeri (2) Sistema di numerazione decimale La parte frazionaria, a destra del simbolo separatore, si valuta con potenze negative I numeri negativi sono costruiti anteponendo un segno “−”. Codifica binaria dei numeri (3) Sistema di numerazione esadecimale Il sistema di numerazione esadecimale (base 16) utilizza una notazione posizionale basata su: • 16 cifre (da 0 a 9 più A,B,C,D,E,F) e • sulle potenze di 16 Dove A=10, B=11, C=12, D=13, E=14 e F=15 Ad esempio: C6FC (12) 163 + 6 162 + (15) 161 + (12) 160 = 50940 Nelle pagine Web i colori sono codificati mediante il sistema esadecimale. Codifica binaria dei numeri (2) I calcolatori usano invece numeri binari, cioè numeri rappresentati con notazione posizionale in base binaria • la base binaria usa solo due cifre diverse, 0 e 1 • la conversione da base binaria a decimale è semplice I numeri binari sono più facili da manipolare per i calcolatori, perché è meno complicato costruire dei circuiti che distinguono tra • “acceso” o “spento”, piuttosto che fra • dieci diversi livelli di voltaggio Codifica binaria dei numeri (3) La conversione di un numero da base decimale a base binaria è, invece, più complessa, la parte intera del numero va elaborata indipendentemente dalla eventuale parte frazionaria a) la parte intera del numero decimale viene convertita nella parte intera del numero binario b) la parte frazionaria del numero decimale viene convertita nella parte frazionaria del numero binario c) la posizione del punto separatore rimane invariata Per convertire la sola parte intera, si divide il numero per 2, eliminando l’eventuale resto e continuando a dividere per 2 il quoziente ottenuto fino a quando non si ottiene quoziente uguale a 0 Il numero binario si ottiene scrivendo la serie dei resti delle divisioni, iniziando dall’ultimo resto ottenuto Codifica binaria dei numeri (4) Per convertire la sola parte frazionaria, si moltiplica il numero per 2, sottraendo 1 dal prodotto se è maggiore di 1 e continuando a moltiplicare per 2 il risultato così ottenuto fino a quando non si ottiene un risultato uguale a 0 oppure un risultato già ottenuto in precedenza. • Il numero binario si ottiene scrivendo la serie delle parti intere dei prodotti ottenuti, iniziando dal primo. • Se si ottiene un risultato già ottenuto in precedenza, il numero sarà periodico, anche se non lo era in base decimale. Codifica binaria dei numeri (5) Numeri interi: rappresentazione in modulo e segno • Il bit più significativo (MSD) indica il segno: 1 = negativo, 0 = positivo • i restanti bit indicano il modulo • esempio: (1101)2 = (−5)10, (0111)2 = (+7)10 • notazione intuitiva ma scomoda per operazioni aritmetiche, lo zero ha due rappresentazioni! In questa codifica, con n bit si rappresentano i valori nell’intervallo: (−2n−1 + 1 2n−1 − 1) Codifica binaria dei numeri (6) Numeri interi: rappresentazione in complemento a 2 • Tale rappresentazione semplifica lo svolgimento delle operazioni: • Dati n bit, un numero positivo N è rappresentato in modo standard (come sono rappresentati i numeri naturali) • −N, invece si rappresenta come 2n− N • Metodo operativo per rappresentare −N: o rappresentare il modulo N in modo standard o complementare tutti i bit (1 ! 0, 0 ! 1) o sommare 1 In complemento a 2, con n bit, si possono rappresentare gli interi nell’intervallo: (−2n−1; 2n−1− 1) Esempio: con 3 bit si rappresentano i numeri in (−4; 3) Dec. −4 −3 −2 −1 bin. in C2 100 101 110 111 Dec. 0 +1 +2 +3 Bin. in C2 000 001 010 011 Codifica binaria dei numeri (7) Codifica dei numeri reali In tale codifica esiste il problema di rappresentare gli elementi di un insieme continuo con un numero finito di bit. In un intervallo dell’insieme continuo esistono infiniti elementi Si hanno due possibili rappresentazioni: • Virgola fissa, • Virgola mobile. Rappresentazione in virgola fissa: si stabilisce a priori la posizione del punto decimale e quindi le cifre si suddividono in due parti. Numero fissato di bit per la parte intera e per la parte frazionaria. Ad esempio: 6935.14084 oppure 5765430.192 Codifica binaria dei numeri (8) Rappresentazione in virgola mobile (floating point): numero variabile di bit per le due parti. • Mantissa : • Caratteristica: valore m tra -1 e 1 (frazionario) esponente n R = mxbn E’ possibile rappresentare: • numeri molto grandi con poche cifre oppure • numeri molto piccoli con precisione. Normalizzazione: .002673 x 104 .2673 x 102 Il problema dell'approssimazione dei numeri reali tuttavia rimane ed è viene studiato nel settore del calcolo numerico. Codifica binaria dei caratteri (1) Il carattere è una unità di informazione corrispondente a un grafema, o a un simbolo, della forma scritta di una lingua naturale Esempi di carattere sono: o lettere o numeri o segni di interpunzione o caratteri di controllo (es: carriage return, line feed) Codifica binaria dei caratteri (2) Gli elaboratori rappresentano i caratteri secondo un sistema di codifica che assegna ad ogni carattere un numero, rappresentato come serie di bit La rappresentazione binaria effettiva dipende dal particolare sistema di codifica adottato • ASCII • EBCDIC • UNICODE Codifica binaria dei caratteri (3) • ASCII (American Standard Code for Information Interchange) è un codice per la codifica dei caratteri • Lo standard è stato pubblicato da ANSI nel 1968 • Il sistema originario US-ASCII codificava i caratteri a 7 bit è ora standard ISO (ISO/IEC 646) Codifica binaria dei caratteri (4) • Nei PC si usa la versione extended ASCII che utilizza 8 bit per la codifica • L’utilizzo dell’ottavo bit di ogni byte per rappresentare altri 128 caratteri aggiuntivi ha prodotto notevoli problemi di compatibilità dovuti anche all’utilizzo di estensioni proprietarie • ISO ha rilasciato uno standard (ISO 8859) contenente un’estensione a 8 bit del set ASCII - ISO 8859-1 (Latin1): caratteri lingue Europa Occidentale - ISO 8859-2: caratteri linguaggi Europa Orientale - ISO 8859-5: caratteri cirillici Codifica binaria dei caratteri (5) Codifica binaria dei caratteri (6) EBCDIC (Extended Binary Coded Decimal Interchange Code) indica un sistema di codifica dell'informazione a 8 bit È usato in numerosi elaboratori sia di classe mainframe (ad es. z/OS, OS/390, VM e VSE) che minicomputer (ad es. OS/400 e i5/OS) Rappresenta bene i caratteri in lingua inglese ma necessita di apposite codepage per le altre lingue. È stato introdotto nel 1964 Codifica binaria dei caratteri (7) Unicode Con tale rappresentazione ad ogni carattere è associato un numero, in modo indipendente • dalla lingua • dalla piattaforma informatica • dal programma utilizzato In origine la codifica era ideata sulla base di 16 bit con cui era possibile identificare 65536 caratteri. Successivamente al fine di aumentare il numero di caratteri codificabili si è adottata la codifica a 21 bit (1 milione di caratteri). Codifica binaria delle immagini (1) L’immagine è suddivisa in pixel Pixel Codifica binaria delle immagini (2) L’immagine è suddivisa in pixel Pixel Ad ogni pixel si associa una rappresentazione binaria: bianco = 0 e nero = 1 Definendo un ordine di scansione si ottiene una stringa binaria: 0000000011110001100000100000 Codifica binaria delle immagini (3) • Assegnando un bit ad ogni pixel si possono rappresentare solo immagini in bianco e nero • Per rappresentare immagini con diversi livelli di grigio o a colori si associa una sequenza di bit per ogni pixel. Ad esempio: • con 8 bit per pixel si ottengono 28 = 256 livelli di grigio • con 24 bit per pixel si ottengono 224 = 16777216, 16.7 milioni di colori Codifica binaria delle immagini (4) Per rappresentare i colori esistono vari modelli HSB: Hue (tinta), Saturation (saturazione) e Brightness (luminosità). RGB: Red (rosso) Green (verde) e Blue (blu). Questo modello rappresenta il modo secondo il quale i calcolatori vedono i colori. Nei display LCD (liquid crystal display) a colori, ad esempio, i punti sono inizialmente scuri e quando sono attivati si illuminano. In particolare, ogni singolo pixel è diviso in tre sottopixel di colore rosso, verde e blu da filtro aggiuntivo. Ogni sotto pixel può essere controllato indipendentemente per produrre migliaia o milioni di colori possibili per ciascun pixel. CMYK :Cyan, Magenta, Yellow e blacK (ciano, magenta, giallo e nero). Questo modello è usato per la stampa. In altre parole questi sono i 4 inchiostri colorati usati all' interno delle stampanti. LAB: Luminance (luminosita') ed A e B (che sono le componenti cromatiche). In base a questo modello, il componente A si estende dal verde al rosso, mentre il componente B si estende dal blu al giallo. Questo modello venne sviluppato per essere indipendente dall' hardware. In altre parole tramite questo modello si possono gestire i colori indipendentemente dalle macchine usate (come monitor, stampanti, o computer) Codifica binaria delle immagini (5) Nei display dei calcolatori è utilizzato lo standard RGB dove ogni colore è ottenuto combinando tre diverse gradazioni di colori primari (rosso verde e blu). Per ogni pixel si devono specificare i livelli dei tre colori Considerando un byte per ogni colore primario risulta che un pixel è rappresentato da 24 bit (3 byte). La risoluzione è il numero di pixel presenti sullo schermo (800 1600 1200) 600, 1024 768, Codifica binaria delle immagini (6) Immagini bitmap • rappresentate pixel per pixel • tipicamente in file con estensione .bmp • hanno elevate dimensioni Immagini bitmap compresse Esistono due tipi di algoritmi di compressione dati: • Algoritmi lossless, tale compressione conserva i dati originali in modo da poter riottenere una copia esatta. Per esempio, se k pixel lungo la stessa riga hanno lo stesso colore, si memorizza il colore una volta sola e il numero k • Algoritmi lossy in cui è presente una riduzione dei dati originali. Tali tecniche sacrificando alcuni dettagli permettono una compressione maggiore - gif (Graphics Interchange Format). Ottenuti con tecniche di compressione lossless. - jpeg (Joint Photographic Experts Group). Realizzati con tecniche di compressione lossy. Codifica binaria delle immagini (7) Immagini vettoriali • Gli elementi costituenti sono delle forme geometriche (primitive) come punti, linee, curve e poligoni su una griglia algebrica. A tali forme sono assegnate varie caratteristiche spessore e colore dei bordi, tipo e colore dell’area interna dei poligoni ecc. • Differenza fondamentale tra immagini bitmap e vettoriali è che i pixel hanno tutti la stessa dimensione ed hanno una posizione chiaramente definita, mentre le primitive di una immagine vettoriale possono assumere dimensioni e posizioni differenti. • Quando si ingrandisce con lo zoom la primitiva di un'immagine vettoriale, non si riescono a distinguere i singoli punti di questo elemento. • SVG (Scalable Vector Graphics) indica uno tecnologia (uno standard, un linguaggio) in grado di visualizzare oggetti di grafica vettoriale cdr - tale estensione indica file CorelDraw ai - tale estensione indica file Adobe Illustrator Codifica binaria delle immagini (8) Immagini vettoriali vs immagini bitmap Vantaggi Possibilità di esprimere i dati in un formato che occupi meno spazio. • Possibilità di ingrandire l'immagine arbitrariamente, senza che si verifichi una perdita di risoluzione. Svantaggi • Realizzazione non intuitiva dell’ immagine • Molte risorse richieste per trattare l’ immagine Codifica binaria dei segnali video (1) Un segnale video è codificato come una sequenza di immagini, frame (fotogrammi), che si susseguono ad una velocità costante nel tempo. La velocità a cui si susseguono i frame (frame rate) è misurata in frame per secondo (fps) Per il fenomeno della "persistenza della visione" il cervello umano interpreta una sequenza di immagini che si succedono come un flusso continuo in movimento Il frame rate deve essere abbastanza alto affinché l’occhio umano non percepisca il passaggio da un fotogramma all’altro (almeno 23 fps) Codifica binaria dei segnali video (2) • Il segnale video digitale è costituito da una sequenza di frame, almeno 23 fps. • Nel caso della TV digitale con frame costituiti da 720 576 pixel, in cui i colori sono rappresentati da 8X3 bit e il frame rate è 25 fps o un secondo di video corrisponde a: 720 x 576 x 8 x 3 x 25 bit pari a circa 30MB o una ora di video corrisponde a 30MB x 3600 = 108 GB • Pertanto il segnale video non compresso richiede enormi quantità di dati da memorizzare o trasmettere. • E’ possibile ridurre la quantità di dati mediante la compressione o codifica video. Codifica binaria dei segnali video (3) • La compressione è la riduzione della quantità di dati per trasmettere la stessa informazione (testo, audio, video). • La compressione viene realizzata dal compressore o codificatore (coder) • Per ottenere l’informazione originaria occorre effettuare la decompressione • La decompressione è effettuata dal decompressore o decodificatore (decoder) • Spesso i due dispositivi (coder e decoder) sono realizzati mediante un unico dispositivo o software (codec) • Esistono decine di codec differenti e ognuno utilizza una diversa tecnologia di compressione, con o senza perdita di dati. • Il rapporto tra la quantità di bit da inviare senza e con compressione è denominato fattore di compressione Codifica binaria dei segnali video (4) Per comprimere il segnale video si utilizza la ridondanza presente in esso. Si usa distinguere: • • • • la ridondanza spaziale (la presenza nei singoli fotogrammi di aree omogenee) la ridondanza temporale (la somiglianza tra fotogrammi consecutivi), la ridondanza statistica (la dipendenza statistica dei pixel), la ridondanza psicofisica (legata al fatto che non tutta l’informazione presente nel video viene effettivamente percepita da un osservatore umano). Le tecniche di codifica video sfruttano questi tipi di ridondanza, considerando le prime due classi di ridondanze si parla di codifica: • Intra-frame (sfruttano le ridondanze all’interno di un fotogramma) • Inter-frame (sfruttano le ridondanze temporali) Codifica binaria dei segnali video (5) Intra-frame Forniscono un fattore di compressione inferiore, ma richiedono un minor numero di risorse per effettuare le operazioni di compressione e decompressione. Sono le più semplici: ogni fotogramma viene compresso come se fosse una singola immagine, ad esempio con JPEG o con JPEG2000. Questa operazione determina la versione “motion” dei vari standard: Motion-JPEG, Motion-JPEG2000. Queste tecniche sono concettualmente semplici e sono utilizzate per applicazioni come il cinema digitale o i programmi di video-chiamate su computer. Codifica binaria dei segnali video (6) Inter-frame Questo permette fattori di compressioni notevoli, anche se richiede un numero di risorse notevole. • Codifica differenziale • Conditional replenishment (CR) • Stima e compensazione del movimento Codifica binaria dei segnali video (7) Codifica differenziale Nel caso di codifica differenziale si sfrutta il fatto che fotogrammi consecutivi di una sequenza video sono molto simili tra loro. Invece di trasmettere il fotogramma originale si codifica la differenza tra quest’ultimo ed il precedente. Ad esempio, in un filmato si muovono in genere gli elementi in primo piano, mentre invece lo sfondo rimane costante. Codifica binaria dei segnali video (8) Conditional replenishment (CR) • La codifica differenziale può essere migliorata tramite il conditional replenishment. • L’immagine è divisa in blocchi e per ognuno di essi si verifica se ci sono stati cambiamenti significativi rispetto al fotogramma precedente. • Se è così, il blocco è ritrasmesso (modo new), altrimenti si dice che il CR ha avuto successo, e si può decidere di non trasmettere. Codifica binaria dei segnali video (9) Stima e compensazione del movimento Il modello su cui si basa il CR fallisce in alcune condizioni molto comuni. Si consideri ad esempio una scena fissa ripresa da una telecamera in movimento. Nonostante fotogrammi consecutivi siano molto ridondanti, il CR fallisce quasi sempre, perché blocchi simili tra loro non si trovano nella stessa posizione quando si passa da un’immagine alla successiva. Una soluzione consiste nell’integrare nel modello del segnale dei parametri che tengano conto del movimento della telecamera. Questo è ottenuto con le tecniche di stima e compensazione del movimento (ME, motion estimation e MC, motion compensation). • La stima del movimento si realizza valutando un insieme di parametri che descrivono il movimento relativo tra due fotogrammi. • La compensazione consiste nel produrre una stima accurata del fotogramma corrente utilizzando i parametri di movimento e il fotogramma di riferimento. Codifica binaria dei segnali video (10) Codec popolari sono: • MPEG • XviD / DivX • H.264 MPEG Esistono numerose varianti ed estensioni che lo rendono applicabile in moltissimi contesti. • Lo standard MPEG-1 è quello utilizzato dai Video CD e supporta un numero ristretto di dimensioni e di velocità di trasmissione. • Lo standard MPEG-2 è quello usato nei DVD e nelle trasmissioni digitali terrestri e satellitari. • MPEG-4 è uno standard invece destinato a fornire compressioni superiori e a lavorare a velocità di trasmissione ridotte. Codifica binaria dei segnali video (10) XviD / DivX Mentre il DivX è un codec commerciale, il codec XviD è open source, creato come alternativa gratuita (oggi anche il codec Divx , anche se commerciale, è gratuito). Entrambi i codec possono decodificare l'uscita dell'altro poiché entrambi sono basati sullo standard MPEG-4. H.264 è il codec più popolare per i video ad alta definizione. L'H.264 è fino a 2 volte più efficiente della compressione MPEG-4, quindi un file di uguale qualità occupa la metà dello spazio. L'H.264 è ora incluso nel codec MPEG-4 part 10 (o AVC) e comprende molteplici metodi di codifica in un singolo pacchetto. Codifica binaria dei segnali video (11) Container Diversi dai codec sono i container, ossia i formati di file che possono contenere al loro interno: • • • • • • audio, video, codec, menu, sottotitoli e informazioni varie. Codifica binaria dei segnali video (12) I formati video più comuni sono: AVI (Audio Video Interleave) Lo standard usato sui PC Windows e sviluppato da Microsoft è stato il primo che ha introdotto la possibilità di trattare dati di tipo video su PC. Il formato AVI si basa sul driver MCI (Media Control Interface) sviluppato dalla Microsoft per il controllo delle periferiche di output. Esso è l’interfaccia software che si inserisce tra l’applicazione specifica e la scheda grafica, consentendo una corretta interazione tra hardware e software. Sono supportati moltissimi codec di compressione (SuperMac, Cinepak, MS Video 1 e M-Jpeg) , garantendo una vasta generalità di utilizzo. Codifica binaria dei segnali video (13) MOV Si tratta del formato video proprietario della Apple, oltre che della principale estensione multimediale per sistemi di tipo Mac OS. Data la diffusione e la popolarità del sistema targato Apple, il formato MOV è ormai un'alternativa da tenere in considerazione per ogni tipo di calcolatore. Gli algoritmi di compressione presenti in QuickTime (principale software per la visualizzazione dei file in formato MOV) sono principalmente tre, distinti per tipo di dato: • ilJPEG (immagini), • il video compressor (video, l’algoritmo di compressione è della Apple), e • l’animation compressor (animazioni, computer graphic). Il formato MOV è ottimo per prodotti multimediali (ad esempio CD-ROM). Può essere utilizzato anche per piccoli progetti di Digital Video. Codifica binaria dei segnali video (14) FLM (ADOBE FILMSTRIP) Formato proprietario della Adobe. Tutti i fotogrammi della sequenza compilata sono raccolti in un unico file, a varie risoluzioni. La dimensione su disco di tale file è enorme, quindi la riproduzione risulta estremamente lenta. MPEG (Moving Picture Experts Group) Formato standard che si avvale dell'algoritmo di compressione MPEG. La qualità video è decisamente buona considerando il rapporto di compressione (fino a 200:1). D’altra parte, la compressione avviene in un tempo molto maggiore del tempo di riproduzione e inoltre per la sua struttura interna (ridondanza spaziale) non è possibile l'elaborazione frame-by-frame. Esistono diverse versioni con qualità standard diverse: MPEG1, MPEG2 e MPEG4. Codifica binaria dei segnali video (15) MKV (Matroska) E’ il formato più adattabile, progettato per supportare quasi tutti i formati audio o video, molto efficiente dal punto di vista della qualità, compatibile con il codec H.264 e ottimo per i film in HD. MP4 Tale formato consigliato per caricare video su internet in siti come vimeo o YouTube che lo considerano il formato preferito. Il contenitore MP4 utilizza la codifica MPEG-4 o H.264 per i video e l'AAC o AC3 per l'audio. E' un formato ampiamente supportato dalla maggior parte dei lettori multimediali commerciali ed è il container più comune utilizzato per i video online. VOB (DVD Video Object ) E’ il container dei DVD Codifica binaria dei segnali video (16) DV e HDV (DIGITAL VIDEO ) Si tratta di un formato per la videoripresa completamente digitale molto adatto a procedure di editing. La compressione interna è simile al Motion Jpeg (MJpeg). Il formato HDV ne costituisce l'evoluzione in alta definizione e nasce da un accordo circa le specifiche tecniche tra quattro colossi come Canon, JVC, Sharp e Sony. Il DV è un formato digitale nativo, cioè nasce digitale sin dal momento della ripresa e rimane tale sino al momento di riversare il videoclip. Col DV al momento della ripresa, sul nastro DV viene registrato il videoclip digitale, una sequenza di bit che si devono soltanto trasferire su computer senza nessuna ricompressione e al massimo con l'aggiunta di un header (intestazione) che permette di riconoscere il file come multimediale. Un file DV potrebbe presentarsi come un AVI (su PC), ma in realtà è sempre un DV. Codifica binaria dei segnali video (16) Xvid4PSP è un software gratuito per la conversione dei video da un formato ad un altro. Salvatore Aranzulla http://www.videohelp.com/software/XviD4PSP Codifica dei segnali elettrici (1) Il mondo che ci circonda è caratterizzato da una serie di proprietà fisiche, grandezze o quantità. es. temperatura, pressione, umidità, etc. Le grandezze fisiche possono essere continue o discrete. • Le grandezze continue variano uniformemente e possono assumere un numero infinito di valori. • Le grandezze discrete variano bruscamente da un valore all'altro. Esse si basano su eventi elementari che assumono valori distinti. Per esempio, è possibile avere 2 o 3 bambini in una famiglia. Analogamente quando si tira un dado ci si aspetta un valore da 1 a 6. Grandezze discrete possono essere prodotte dall’uomo. Spesso è conveniente rappresentare le grandezze fisiche mediante segnali elettrici, in cui una grandezza elettrica tensione o corrente descrive le variazioni della grandezza fisica. Anche i segnali elettrici possono essere continui o discreti. Codifica dei segnali elettrici (2) Segnali continui sono spesso indicati come segnali analogici. Esempi di segnali analogici sono: • le uscite dei generatori di segnale, • i segnali prodotti da strumenti di misura, • i segnali prodotti da un microfono, • I segnali elettrici per sistemi audio Tali segnali possono essere suddivisi in segnali periodici e non periodici. L’analisi dei circuiti che operano con tali segnali può essere ricondotta alle tecniche adottate nel caso di segnali sinusoidali, mediante lo sviluppo in serie e la trasformata di Fourier. Codifica dei segnali elettrici (3) • • I segnali discreti sono spesso indicati come segnali digitali Molti segnali digitali assumono solo due valori e sono indicati come segnali binari I segnali binari possono essere ottenuti: • da un processo di campionamento del segnale analogico e • da un processo di quantizzazione. Codifica dei segnali elettrici (4) Processo di campionamento In tale processo sono rilevati i valori del segnale analogico in determinati istanti. In altre parole il segnale è campionato (misurato), ad intervalli di tempo regolari: • Ampiezza misurata in un dato istante di tempo = campione • Il numero di misure effettuate in un secondo definisce la frequenza di campionamento (Hertz, Hz) Codifica dei segnali elettrici (4) Per ottenere dei campione utili a ricostruire il segnale analogico, deve essere soddisfatto il teorema di Nyquist. Teorema di campionamento di Nyquist la frequenza di campionamento deve essere maggiore di due volte la massima frequenza presente nel segnale da campionare (Frequenza di Nyquist) La frequenza di campionamento è determinato dalla massima frequenza presente nel segnale e non dalla più alta frequenza di interesse. Codifica dei segnali elettrici (5) Processo di quantizzazione • In tale processo i valori dei campioni sono approssimati ad un numero finito di possibili valori. Tale numero è 2n, dove n è il numero di bit usati per la codifica binaria di ogni campione. • In tale processo è introdotto l’errore di quantizzazione, funzione o del numero di bit utilizzati e o dall’intervallo di possibili valori del segnale elettrico (Vrange). • La risoluzione è data da 2n. • La risoluzione elettrica è la differenza tra due livelli adiacenti Vrange/(2n-1) . • L’errore di quantizzazione massimo è metà della risoluzione elettrica. Codifica dei segnali elettrici (6) Ad esempio, si consideri un segnale analogico (da 0 a 9V) da convertire in un segnale digitale a 4 bit. • Un numero binario 4 bit può rappresentare 24=16 valori diversi da 0 a 15. • La risoluzione della conversione è 9V/15 = 0.6V. • Se il valore analogico è uguale a nx0.6V (n = 0 15) la conversione è diretta. • Quando il valore della tensione è tra due livelli incrementali successivi, è scelto il livello più vicino ed è selezionato il codice relativo. Codice binario Ingresso analogico = 6.2V: - valore tra 6V e 6.6V, - più vicino a 6V, - è scelto il codice 1010 relativo a 6 V e - l’errore di quantizzazione è pari a 0.2V. 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000 6.2V 0.0 0.6 1.2 1.8 2.4 3.0 3.6 4.2 4.8 5.4 6.0 6.6 7.2 7.8 Ingresso analogico (V) 8.4 9 Codifica dei segnali elettrici (6) L’accuratezza della ricostruzione dipende o dalla frequenza di campionamento o dal numero di bit usati per rappresentare ogni campione Maggiore accuratezza significa maggior quantità di memoria occupata Codifica dei segnali elettrici audio Anche per i suoni si possono utilizzare tecniche di compressione per ridurre l’occupazione di memoria. Algoritmi lossy per suoni: sfruttano il fatto che per l’orecchio umano suoni a basso volume sovrapposti ad altri di volume maggiore sono poco udibili e possono essere eliminati. Tale fenomeno è utilizzato nello standard Mp3 (Moving Picture Expert Group-1/2 Audio Layer 3, noto anche come MPEG-1 Audio Layer III o MPEG-2 Audio Layer III). Il metodo di compressione Mp3 permette di ridurre le dimensioni dei file di un fattore 12 rendendo il download 12 volte più veloce. Codifiche standard • WAV (Windows). • AIFF (Audio Interchange File Format, Apple). • MIDI: Codifica le note e gli strumenti che devono eseguirle è efficiente, ma solo opera solo sulla musica e non sulla voce. • MP3: Grande diffusione, molto efficiente