Abilità Informatiche 2 Programma del corso Introduzione L’informazione digitale o Un minimo di basi teoriche o Cosa possiamo aspettarci da un computer, e cosa no Architettura degli elaboratori o Come è fatto un computer I sistemi operativi o Servizi che un computer offre all’utente, e come funzionano Principali applicativi o Alcuni compiti comuni che il computer ci aiuta a svolgere 3 Obiettivi Alla fine del corso, chi ha frequentato con successo: o sarà un utente informato o comprenderà i principi di base dell’informatica, dell’architettura degli elaboratori e dei sistemi operativi o avrà una visione d’insieme e aspettative realistiche sull’informatica o potrà usare più agilmente gli strumenti informatici nei corsi che lo richiederanno 4 Informatica e discipline economiche Elaborazione delle transazioni Contabilità e bilancio Sistemi di supporto alle decisioni Analisi statistica di serie storiche Modelli economico-finanziari … 5 Le parole di oggi Algoritmo Codifica Bit Multimedia Compressione 6 Algoritmi Algoritmo: sistema finito di regole e procedure di calcolo definite formalmente che portano alla soluzione di un problema con un numero finito di operazioni, quali che siano i dati di ingresso Esiste di un algoritmo per risolvere un problema la risoluzione del problema può essere automatizzata 7 Algoritmi Il nome deriva dal matematico persiano al-Khwārizmī, che operò nella Bagdad nel IX secolo d.C. o Il califfo dell’epoca era al-Maʾmūn, figlio di Hārūn al-Rashīd, reso famoso dalle «Mille e una notte» 8 Risoluzione di un problema tramite l’elaboratore 1. Formulazione precisa del problema 2. Ricerca dell’algoritmo per la soluzione 3. Formulazione testuale dell’algoritmo in un linguaggio accessibile all’elaboratore (linguaggio di programmazione), ottenendo un programma 4. Esecuzione del programma Raffinamento 9 Poniamoci alcune domande Esiste un solo algoritmo per risolvere un problema? Un algoritmo si può implementare in un solo linguaggio? Tutti i programmi che implementano un determinato algoritmo in un linguaggio precisato sono equivalenti? Confronto e scelta tra algoritmi Confronto e scelta tra linguaggi Caratteristiche dei programmi 10 Codifica Codice Catastale o F839 o H703 o A638 NAPOLI SALERNO BARCELLONA POZZO DI GOTTO CAP o Castellammare di Stabia 80053 o C.MARE DI STABIA 80053 Datemi due ragioni sul perché codificare 11 Codifica Assegnazione di un codice univoco a tutti gli oggetti compresi in un insieme predefinito 12 Codifica – elementi essenziali Alfabeto dei simboli utilizzabili o Esempio (CAP): cifre «0», «1», «2», …, «9» o Esempio: simbolo della valuta «€», cifre «0», «1», «2», …, «9», segni più «+» e meno «-», separatore decimale «,» e separatore delle migliaia «.» Q: Che stiamo codificando? 13 Codifica – elementi essenziali Regole di composizione (sintassi) che definiscono le sequenze di simboli (parole) ammissibili: o Esempio: un CAP ha esattamente 5 cifre o Esempio: 1.234,50€ è la rappresentazione di un importo, 1,2€3,4.50 non lo è. Significato (semantica) delle configurazioni ammissibili 14 Codifica binaria dell’informazione Il calcolatore utilizza un alfabeto binario: usa dispositivi elettronici digitali in grado di assumere due soli stati: acceso/spento, ON/OFF, 1/0, VERO/FALSO Q: Avere un alfabeto binario limita le funzionalità? Non sarebbe stato meglio lavorare in decimale? There are only 10 types of people in the world: those who understand binary, and those who don’t 15 bit Il simbolo o cifra binaria si indica con bit (da Binary digIT) o quantità d’informazione che si ottiene selezionando una configurazione da un insieme di due configurazioni equiprobabili 16 Bit Quanti valori distinti si possono ottenere con 1 bit? o0 o1 2 valori distinti 17 Codifica binaria dell’informazione Con 1 bit si possono codificare al più 2 informazioni. Valore del bit Codifica A Codifica B Codifica C Codifica D 0 Nero Non autorizzato 0 1 1 Bianco Autorizzato 1 2 18 bit Quanti valori distinti si possono ottenere con sequenze (parole) di 2 bit? o 00 o 01 o 10 o 11 4 valori distinti Si possono codificare al più 4 oggetti o p.es. contare da 0 a 3: {0, 1, 2, 3} oppure da 1 a 4; o magari da 1001 a 1004: il punto di partenza è arbitrario oppure da -2 a +1: {-2, -1, 0, +1} 19 bit Quanti valori distinti si possono ottenere con parole di 3 bit? o o o o o o o o 000 001 010 011 100 101 110 111 8 valori distinti Si possono codificare 8 oggetti 20 Codifica binaria dell’informazione Se passiamo da una parola binaria di k bit ad una parola di k+1 bit si raddoppia il numero di oggetti che si possono rappresentare o Si aggiunge il prefisso 0 (e poi il prefisso 1) a ciascuna delle disposizioni degli altri bit 21 Codifica binaria dell’informazione Quanti oggetti diversi posso codificare con parole binarie composte da k bit? o 1 bit: 21 = 2 valori (0, 1) 2 oggetti o 2 bit: 22 = 4 valori (00, 01, 10, 11) 4 oggetti o 3 bit: 23 = 8 valori (000, 001, 010, 011, 100, 101, 110, 111) 8 oggetti o… o k bit: 2k valori 2k oggetti 22 Definire un codice Identificare due insiemi: o Insieme delle configurazioni ammissibili o Insieme degli oggetti da rappresentare Associare gli elementi dei due insiemi Esempio: associare una codifica binaria ai giorni della settimana o 3 bit (che possono rappresentare 23 = 8 oggetti) sono sufficienti 23 Esempio 111 110 101 Insieme delle configurazioni ammissibili 010 011 001 100 000 LUN MAR MER VEN GIO SAB Insieme degli oggetti da codificare DOM 24 Esempio 111 110 101 010 011 001 100 Codice 000 LUN MAR MER VEN GIO SAB DOM 25 Byte Un gruppo di 8 bit (ottetto) prende il nome di byte Con 8 bit si possono codificare 28 = 256 informazioni Con un byte si possono ad esempio rappresentare i numeri interi negli intervalli: o o o o [0, 255] (da 0 a 255, estremi inclusi) [1, 256] (da 1 a 256, estremi inclusi) [-127, 126] (da -127 a 126, estremi inclusi) Q: perché solo fino a 126 e non 127? 26 Sistema metrico decimale Nel sistema metrico decimale, aggiungere un prefisso ad un’unità di misura indica una moltiplicazione o 1 km = 1.000 m o 2.5 GHz = 2.500 MHz (banda di frequenza usata dalle reti Wi-Fi … e non solo) 27 Sistema Metrico Decimale Prefisso Denominazione Moltiplicatore Significato k kilo 103 (1.000) 1.000 unità M mega 106 (1.000.000) 1.000 kilo G giga 109 (1.000.000.000) 1.000 mega T tera 1012 (1 seguito da 12 zeri) 1.000 giga P peta 1015 1.000 tera E exa 1018 1.000 peta Z zetta 1021 1.000 exa Y yotta 1024 1.000 zetta 28 Multipli del byte Nel sistema metrico il prefisso k (kilo) indica 1000 (103) In informatica, i calcoli sono basati non su potenze di 10 ma su potenze di 2 o Q: Secondo voi, perché? Per fortuna, 210 = 1024 ~ 1000 (103) 1 kbyte (kilobyte) dunque indica 210 = 1024 cioè circa 1000 byte 29 Multipli del byte Unità Denominazione Moltiplicatore Significato Kbyte kilobyte 210 (1.024) 1.024 unità Mbyte megabyte 220 (1.048.576) 1.024 kilo Gbyte gigabyte 230 (1.073.741.824) 1.024 mega Tbyte terabyte 240 (1.099.511.627.776) 1.024 giga Pbyte petabyte 250 (1.125.899.906.842.624) 1.024 tera Ebyte exabyte 260 (1.152.921.504.606.846.976) 1.024 peta 30 Multipli del byte Q: Esiste il megabit? A: Certo; però attenzione: vale 106 bit e non 220 31 Codifica dei caratteri Vogliamo codificare un testo o Supponiamo, per ora, che sia in lingua inglese Occorre innanzitutto codificare i caratteri o a-z 26 simboli Ma ci sono le maiuscole o A-Z altri 26 simboli E i segni di punteggiatura o Almeno i più comuni ,.;:?!’"()[] Eppure manca ancora un protagonista assoluto. Chi? 32 Codifica dei caratteri Lo spazio bianco! o Altrimentileggeremmosoloun’indefinitasequenzadi caratteri E se c’è qualche numero? o 0-9 10 simboli Le quattro operazioni o 4 simboli per + - / * Altri alfabeti: caratteri accentati o Aggiungiamo à è é ì ò ù (e anche À È É Ì Ò Ù) 33 Codifica dei caratteri E così via Insomma, i 256 valori distinti rappresentabili con un byte fanno comodo Ciascun carattere è rappresentato da un byte e corrisponde ad un valore numerico o Per un libro di 400 pagine con 30 righe, ognuna di 60 battute, quanti byte occorrono? Nell’ordine del kB? Del MB? Del GB? 34 Codifica ASCII (estesa: 8 bit) È una corrispondenza tra i numeri dell’intervallo 0-255 e i simboli Esempi: o 65 → A o 66 → B o 90 → Z o 58 → : o 232 → è 97 → a 98 → b 122 → z 59 → ; 233 → é 35 Codifica Unicode Lingue orientali o Ideogrammi o Scritture bustrofediche Standard Unicode o Codifiche UTF-8 o 1 byte per i caratteri ASCII o Da due a quattro byte per gli altri 36 Codifiche adattative Q: ma non sono troppi quattro byte? A: Sì; però i caratteri che necessitano di 4 byte sono estremamente rari, mentre quelli che ne richiedono uno sono frequenti o Esempio di codifica adattativa 37 Multimedia Digitalizzazione Conversione dal formato analogico ad uno numerico, gestibile dai computer o Rappresentazione digitale o Digitale deriva da digit, che in inglese significa cifra, e deriva a sua volta dal latino dĭgĭtus, cioè dito. o In definitiva digitale è ciò che è rappresentato con i numeri, che si contano appunto con le dita 38 Segnali audio – esempio nota LA La pressione dell’aria varia in modo sinusoidale con una frequenza di 440Hz 39 Digitalizzazione 40 Codifica di suoni Si fa un campionamento dell’onda sonora (misurazione del valore dell’onda a intervalli regolari di tempo) Si codificano in forma digitale i dati campionati (16 bit) 41 Campionamento Un campionamento più fitto (ovvero con una frequenza di campionamento maggiore) consente di rappresentare i segnali analogici con maggiore fedeltà Per segnali audio di tipo vocale (ad es. telefono), la frequenza di campionamento è tipicamente di 8 kHz (8000 campioni al secondo) Per segnali audio musicali (ad es. CD audio), la frequenza di campionamento è tipicamente di 44.1 kHz 42 Codifica dei suoni ADC: da analogico a digitale Convertitore analogico-digitale 01011010 11110000 10100000 10000010 DAC: da digitale ad analogico Convertitore digitale-analogico 43 Immagini Discretizzazione: scomposizione dell’immagine in un reticolo di punti (pixel, picture element) Quantizzazione: codifica di ogni pixel con un valore numerico all’interno di un ben peciso intervallo 44 Discretizzazione Si sovrappone una griglia all’immagine 45 Discretizzazione Ogni quadratino della griglia prende il nome di pixel (picture element) Può essere codificato in binario secondo la seguente convenzione: o È predominante il nero? Valore «0» o È predominante il bianco? Valore «1» 46 Discretizzazione 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 47 Discretizzazione La figura che si ottiene è un’approssimazione della figura originaria 48 Discretizzazione • L’approssimazione sarà tanto più fedele quanto più è elevato il numero di pixel • ossia quanto più piccole sono le dimensioni dei quadratini della griglia 49 Risoluzione La risoluzione dell’immagine è la dimensione della griglia utilizzata per discretizzare l’immagine o es. 640x480 o 1024x768 (4:3), 1920x1080 (16:9) 50 Effetti della riduzione di risoluzione 51 Codifica dei colori A ciascun pixel va associato un numero che ne codifica il colore: Pixel in bianco/nero (senza sfumature) o 1 bit Pixel in colore o 4 bit = 16 colori o 8 bit (1 byte) = 256 colori (scala di grigi) o 24 bit (3 byte) = circa 16.000.000 di colori 52 Immagini b/n: Un esempio Ogni pixel è rappresentato da un bit 000000000000000000000000 000000000011111111000000 000000000010000010000000 000000000010000100000000 000000000010001000000000 000000000010010000000000 000000000010100000000000 000000000011000000000000 000000000010000000000000 53 Immagini in scala di grigi Immagini in bianco e nero con sfumature o Rappresentazione in «toni di grigio»: un byte per pixel, con 256 gradazioni di grigio per ogni pixel, o più byte per pixel, per avere più gradazioni possibili 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 54 Codifica dei colori Il colore può essere generato attraverso la sintesi additiva di 3 colori fondamentali: red, green, blue (codifica RGB) o Quanto è intenso ciascun colore fondamentale? 55 Immagini in scala di grigi / colori Immagini a colori o Profondità di colore: numero di bit per ogni pixel (di norma 24, ovvero un byte per ogni colore) o Usando 8 bit per ogni colore si possono ottenere 256 gradazioni per il rosso, 256 per il blu e 256 per il verde o combinate insieme, danno origine a circa 16,7 milioni di colori diversi (precisamente 16777216 colori) RED GREEN BLUE 100 200 200 Codifica : 01000100 Codifica : 11001000 Codifica : 11001000 56 Effetti della quantizzazione 4 bpp 3 bpp 2 bpp 1 bpp 57 Dimensione di un’immagine In questo esempio, 160 pixel (20x8) 20 pixel in larghezza 8 pixel in lunghezza 2 colori = 1 bit per pixel L’immagine occupa dunque 160x1=160 bit In byte: 160 bit = 160/8 byte = 20 byte 58 Multimedia: dimensioni Risoluzione e profondità di colore determinano quindi il numero di byte necessari per l’immagine o Esempio: immagine 1024x768 a 256 toni di grigio 1024x768 pixel * 8 bit/pixel = 768 Kbyte o Esempio: immagine 1024x768 a 16M colori 1024x768 pixel * 24 bit/pixel = 2304 Kbyte 59 Multimedia: dimensioni Esempio: brano musicale su CD o Frequenza di campionamento 44100 Hz o 16 bit / campione o 2 canali (destro e sinistro) o 2 * 16 * 44100 = 1411200 bit / s 176 Kbyte / s o 1 canzone circa 5 minuti 176 Kbyte/s * 60 s/min * 5 min circa 52 Mbyte o 60 min di musica 176 * 60 * 70 circa 630 Mbyte 60 Multimedia: dimensioni In sintesi, gli oggetti multimediali richiedono molto spazio Possiamo fare di meglio? 61 Codifica e compressione La compressione riduce drasticamente lo spazio occupato La compressione lossless è una trasformazione matematica reversibile o Decompress(Compress(X)) = X La compressione lossy sfrutta anche caratteristiche della percezione umana o Decompress(Compress(X)) ≠ X ma è percettivamente equivalente a X o Tassi di compressione molto superiori 62 Compressione per file multimediali La compressione sfrutta: o Il fatto che punti vicini hanno lo stesso colore o La percezione umana non percepisce riduzioni di fedeltà (siamo davvero in grado di distinguere 65.535 ~ 16.000.000 colori?) 63 Formati compressi per immagini Non compresso o BMP (BitMaP) Compresso: o GIF (Graphics Interchange Format brevettato), PNG (Portable Network Graphics) o JPEG (Joint Photographic Experts Group), TIFF (Tagged Image File Format) 64 Immagini vettoriali Quelle viste finora sono dette raster Invece di «fotografare» una scena, ne descrive le componenti o Possibile solo per immagini semplici e ben strutturate o Es.: disegni di AutoCAD Ingrandimento senza perdita di qualità o o o 65 Formati di codifica di suoni WAV, non compresso MP3 OGG AAC 66 Esempio: fotocamera digitale La risoluzione delle immagini è espressa in MegaPixel (milioni di pixel) o I colori sono sempre 16 milioni (3 byte per pixel). 6.0 MegaPixel = 6 Milioni di pixel Le proporzioni di una foto sono di solito di 4:3 Quindi al massimo la foto potrà avere una risoluzione di... o 4A xo3A = 6000000 12A2 = 6000000 A2 = 500000 A 700 o risoluz. max. 2800 x 2100 dim.o 6000000 x 3 Byte = 18 MB o 67 Fattore di Compressione Esempio: o Fotocamera a 8 Mpixel circa 8.000.000 di pixel Occupazione immagine non compressa a colori o o o o o 8.000.000 pixel x 3 componenti / pixel x 1 byte / componente = ______________________ 24.000.000 byte circa 24 Mbyte L’immagine in formato JPEG occupa circa 2.4 Mbyte Fattore di compressione dimensione originale / dimensione compressa o 24 Mbyte / 2.4 Mbyte = 10:1 o Una canzone di circa 5 min in formato mp3 richiede circa 5 Mbyte fattore di compressione circa 10:1 68 Compressione e qualità Qualità 100% 147796 byte Qualità 50% 35970 byte Qualità 25% 16045 byte Qualità 10% 9100 byte Non compressa: 786432 byte. Immagine: 512x512, dettaglio: 64x64 69 Immagini in movimento Video: successione di immagini fisse (frame) trasmesse in sequenza Con un numero abbastanza alto di fotogrammi fissi (15-30 al secondo) la persistenza delle immagini sulla retina fa sì che l’occhio umano percepisce il movimento come continuo 70 Video interallaciato vs. progressivo Tradizionalmente, il segnale video di tipo televisivo utilizza un formato interallacciato Prima vengono generate le righe pari, poi quelle dispari Vengono generati 50 “semiquadri” al secondo Nel formato progressivo, ogni frame è costituito sia dalle righe pari che da quelle dispari 71 Un esempio – video interallacciato Interallacciato (ad. es TV) o 720 punti / linea o 576 linee (288 linee pari, 288 linee dispari) o 50 semiquadri al secondo o 3 byte / pixel (RGB) o 720 * 288 * 50 * 3 = 31.104.000 byte / sec circa 31 Mbyte/sec circa 250 Mbps o 2h di film occupano (se non compressi) 2*60*60*31 = 223.200 Mbyte circa 223 Gbyte o Un DVD ha una capacità di circa 4.5 Gb occorre un fattore di compressione pari a 223 / 4.5 = 50 72 Un esempio - video progressivo Progressivo (ad. es cellulare) o 320x240 pixel o 15 frame / secondo o 3 byte / pixel (RGB) o 320 * 240 * 15 * 3 = 3.456.000 byte / sec circa 3.5 Mbyte/sec circa 28 Mbyte / sec o 1 minuto di video registrato occupa (se non compresso) 60*3.5 = 210 Mbyte 73 Codifica video In linea di principio, si potrebbe codificare separatamente ogni fotogramma come immagine fissa Si è in grado di ottenere rapporti di compressione dell’ordine 10-20 senza eccessiva perdita di qualità o Per mettere un film su DVD abbiamo bisogno di un rapporto di circa 50... 74 Codifica video Per ottenere rapporti di compressione più alti è necessario sfruttare la ridondanza temporale Frame consecutivi in una sequenza di immagini sono quasi sempre simili l’uno all’altro Si codificano solo le differenze tra i frame successivi È possibile ottenere rapporti di compressione di 50:1 e anche fino a 100:1 senza degrado eccessivo della qualità 75 Fotogramma 1 76 Fotogramma 2 77 Differenza tra i fotogrammi 1 e 2 78 Standard di codifica video MPEG (Moving Picture Experts Group): o MPEG-1 Video CD o MPEG-2 TV digitale, DVD o MPEG-4 DivX ITU-T (International Telecommunication Union Telecommunications Standardization Sector) o H.264 HD-DVD, Blue-ray DVD AVI (Audio Video, Microsoft) o Formato «contenitore». Può contenere audio/video compressi con formati diversi