Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'informatica: algoritmi, codifica e rappresentazione dei dati - Prof. Mazz, Appunti di Fondamenti di informatica

fondamenti di informatica appunti lezioni

Tipologia: Appunti

2022/2023

Caricato il 18/06/2023

Utente sconosciuto
Utente sconosciuto 🇮🇹

1 documento

1 / 9

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA - ORAL TEST
L’informatica è la scienza che studia l’elaborazione delle informazioni
L’informatica è la scienza degli algoritmi che descrivono e trasformano l’informazione: la
loro teoria, analisi, progetto, e scienza, realizzazione ed applicazione
L’elaborazione serve a risolvere velocemente i problemi di calcolo (acquisizione, elaborazione
e soluzione)
-algoritmo è un procedimento composto da un numero finito di istruzioni da eseguire in ordine
-programma è una lista di istruzioni che possono essere lette da una macchina
<Computer/calcolatore: macchina che esegue algoritmi, elabora e memorizza dati
(elabora=esegue un algoritmo a cui vengono forniti dei dati)
Architettura di Von Neumann (1940): modello di macchina di applicabilità generale, dispositivo
in grado di risolvere svariati problemi di calcolo, seppur opportunamente programmato
(programma memorizzato) >caricando un nuovo programma esegue un nuovo problema.
connessione
interfaccia - memoria - elaborazione
dati e istruzioni del programma console, frigo >programma cablato
World Wide Web >servizio su internet per accedere agli ipertesti >navigare è accedere a una
pagina con un programma/browser
CODIFICA DELL’INFORMAZIONE
-dati come sequenze finite di simboli
L’associazione tra un dato e una parola prende il nome di codiFICa. Si dice anche che la parola
rappresenta il dato (è la codifica del dato).
Valori Booleani
I valori Booleani, ovvero le costanti 1 e 0 sono normalmente identificati con i valori logici
“Vero” e “Falso” (anche denotati con T, F).
Tre operazioni fondamentali sono defnite sui valori Booleani:
congiunzione: AB, si legge A AND B (denotata anche con A ˄ B oppure A && B)
disgiunzione: A + B, si legge A OR B (denotata anche con A ˅ B oppure A || B)
negazione: ~A, si legge NOT A (denotata anche con ¬A oppure Ā oppure !A )
Ciascuna operazione è defnita da una tabella di verità (dove 0=F e 1=V):
AB è vera se e solo se sia A che B sono vere, mentre A + B è vera se almeno una fra A e B è
vera:
Rappresentazione di un testo
Un testo è una sequenza di caratteri: lettere dell’alfabeto maiuscole e minuscole, cifre
decimali, segni di punteggiatura, caratteri speciali come indicatori di !ne riga o pagina,
tabulatori, etc..
Si codi!ca ogni simbolo con un numero. Esistono diversi insiemi di simboli ASCII, UNICODE,
EBCDIC e relative codi!che, che associano ad ogni simbolo un codice numerico.
ASCII (American Standard Code for Information Interchange), usa 7 bit (inclusi in un byte con il
bit più signi!cativo a 0) per codi!care un
12
carattere preso da un alfabeto di 128 simboli.
I
pf3
pf4
pf5
pf8
pf9

Anteprima parziale del testo

Scarica Introduzione all'informatica: algoritmi, codifica e rappresentazione dei dati - Prof. Mazz e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

INFORMATICA - ORAL TEST

L’informatica è la scienza che studia l’elaborazione delle informazioni

  • L’informatica è la scienza degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, e scienza, realizzazione ed applicazione L’elaborazione serve a risolvere velocemente i problemi di calcolo (acquisizione, elaborazione e soluzione) -algoritmo è un procedimento composto da un numero finito di istruzioni da eseguire in ordine -programma è una lista di istruzioni che possono essere lette da una macchina <Computer/calcolatore: macchina che esegue algoritmi, elabora e memorizza dati (elabora=esegue un algoritmo a cui vengono forniti dei dati) Architettura di Von Neumann (1940): modello di macchina di applicabilità generale, dispositivo in grado di risolvere svariati problemi di calcolo, seppur opportunamente programmato (programma memorizzato) >caricando un nuovo programma esegue un nuovo problema. connessione interfaccia - memoria - elaborazione dati e istruzioni del programma console, frigo >programma cablato World Wide Web >servizio su internet per accedere agli ipertesti >navigare è accedere a una pagina con un programma/browser CODIFICA DELL’INFORMAZIONE -dati come sequenze finite di simboli L’associazione tra un dato e una parola prende il nome di codiFICa. Si dice anche che la parola rappresenta il dato (è la codifica del dato). Valori Booleani I valori Booleani, ovvero le costanti 1 e 0 sono normalmente identificati con i valori logici “Vero” e “Falso” (anche denotati con T, F). Tre operazioni fondamentali sono defnite sui valori Booleani: congiunzione: A⋅B, si legge A AND B (denotata anche con A ˄ B oppure A && B) disgiunzione: A + B, si legge A OR B (denotata anche con A ˅ B oppure A || B) negazione: ~A, si legge NOT A (denotata anche con ¬A oppure Ā oppure !A ) Ciascuna operazione è defnita da una tabella di verità (dove 0=F e 1=V): A⋅B è vera se e solo se sia A che B sono vere, mentre A + B è vera se almeno una fra A e B è vera: Rappresentazione di un testo Un testo è una sequenza di caratteri: lettere dell’alfabeto maiuscole e minuscole, cifre decimali, segni di punteggiatura, caratteri speciali come indicatori di !ne riga o pagina, tabulatori, etc.. Si codi!ca ogni simbolo con un numero. Esistono diversi insiemi di simboli ASCII, UNICODE, EBCDIC e relative codi!che, che associano ad ogni simbolo un codice numerico. ASCII (American Standard Code for Information Interchange), usa 7 bit (inclusi in un byte con il bit più signi!cativo a 0) per codi!care un 12 carattere preso da un alfabeto di 128 simboli.

I

Testi_ ascii: 7 bit per 128 caratteri / ascii esteso: 8 bit pr 256 caratteri ()

^lettere, numeri, cifre decimali, segni di punteggiatura, tabulatori, caratteri speciali

codifica delle informazioni: compressione dei dati usando sequenze più corte per i

simboli più ricorrenti

Rappresentazione dei dati multimediali >

digitalizzare>convertire in un formato numerico con una grandezza fisica che varia con

continuità

campionare: prendere misure del segnale a intervalli regolari

quantizzazione: rappresentare in forma numerica il campione

Immagini bitmap Tecnica di rappresentazione che denisce un’immagine come una griglia di quadrati detti pixel (picture element). Ogni pixel assume un valore medio del colore dell’area che occupa (secondo una qualche codica del colore). I pixel sono disposti in sequenza, ad esempio partendo dal basso verso l’alto e da sinistra verso destra. In realtà abbiamo una rappresentazione approssimata dell’immagine. La precisione dipende dal numero di pixel e dal numero dei colori che i pixel assumono (b/n, livelli di grigio, colore).

Immagini bitmap: immagine come griglia di pixel, più la griglia è grande più l’immagine è precisa la risoluzione di un'immagine raster è la densità di pixel, ovvero il numero di pixel per lunghezza unitaria e si misura in punti per centimetro o in punti per pollice RGB: 28 BIT per ogni colore, somma di colori primari fino al bianco (additivo) CMY: 28 BIT per ogni colore, somma di colori primari fino al nero (sottrattivo) GIF: Codifica GIF La codica GIF (Graphic Interchange Format) si basa su tre idee: LUT a 256 colori Run-length encoding Compressione LZW finale >è lossless Se partiamo da una immagine che ha già 256 colori possiamo considerarla lossless. Codifica JPEG La codica JPEG (Joint Photographic Experts Group) è di tipo lossy, tratta immagini a 16 milioni di colori e si basa su tre punti:

  • divisione dell'immagine in blocchi 8x8 e rimozione dettagli ni (alte frequenze)
  • assegna meno bit alla componente cromatica UV (usa rappresentazione colore YUV) - - -
  • compressione run-length + Huffman finale Il primo punto sfrutta il fatto che l'acutezza visiva umana è limitata, e quindi dettagli molto piccoli possono essere trascurati senza pregiudicare la qualità percepita. Il secondo punto sfrutta la proprietà del sistema visivo umano di essere molto più sensibile a variazioni di luminosità piuttosto che di colore. La qualità dell'immagine dipende dal grado di compressione (che si può scegliere). Fino ad un rapporto 20:1 non si ha un degrado percepibile.

Rappresentazione dei dati multimediali: i calcolatori moderni possono elaborare informazioni complesse come immagini, video e suoni. i dati multimediali non sono di natura astratta, sono casi speciali di fenomeni fisici ondulatori che richiedono una digitalizzazione preliminare per poter essere elaborati. -digitalizzare significa convertire in formato numerico una grandezza fisica, che tipicamente varia con continuità. -campionare prendere misure del segnale a intervalli regolari -quantizzazione: rappresentare in forma numerica il campione, assegnandogli un numero di bit Immagini bitmap Tecnica di rappresentazione che denisce un’immagine come una griglia di quadrati detti pixel (picture element). Ogni pixel assume un valore medio del colore dell’area che occupa (secondo una qualche codica del colore). I pixel sono disposti in sequenza, ad esempio partendo dal basso verso l’alto e da sinistra verso destra. In realtà abbiamo una rappresentazione approssimata dell’immagine. La precisione dipende dal numero di pixel e dal numero dei colori che i pixel assumono (b/n, livelli di grigio, colore). Sono anche dette immagini raster o a matrice di punti. Maggiore è il numero di pixel dell’immagine, migliore è l’approssimazione dell’immagine e maggiore è l’occupazione di memoria. Attenzione: il numero di pixel va considerato per una lunghezza di riferimento prestabilita. Quindi la risoluzione di un'immagine raster è la densità di pixel, ovvero il numero di pixel per lunghezza unitaria e si misura in punti per centimetro o in punti per pollice (dpi, dot per inch). Riassumendo: la risoluzione di un immagine è proporzionale alla frequenza di campionamento, mentre i valori dei campioni sono i colori disponibili. Livelli di grigio Per rappresentare diverse sfumature, codichiamo il colore di un pixel con più bit: con 4 bit si rappresentano 16 livelli di grigio con 8 bit si rappresentano 256 livelli di grigio (standard). Immagini a colori Ogni pixel ha un colore, che è rappresentato secondo un modello del colore: RGB (Red, Green, Blue - rosso, verde, blu) : usato nei monitor a colori. CMY(ciano, magenta, giallo) : usato nelle stampanti a colori. HSB (hue, saturation, brightness) : usato nei tool di scelta colore o per editing (comodo per l'utente, attributi percettivi). Hue rappresenta la tinta, la saturazione è la quantità di bianco del colore e la brightness è la luminosità del colore. YUV (luminanza Y, crominanza UV) : usato nella TV e nella codica di immagini (JPEG) e video (MPEG). La Y rappresenta l'immagine a scale di grigi, mentre U e V assieme codicano il colore o crominanza. Un colore è determinato dalle sue componenti. Nel modello RGB un colore è identicato dai valori delle componenti di rosso, verde, blu , codicate con 8 bit ciascuna. Ogni componente (o colore primario ) ha un valore tra 0 e 255. In totale si usano 24 bit per pixel e si rappresentano 2 24 colori (circa 16,8 milioni di colori). Il modello RGB è un modello di colore additivo , ovvero un colore si ottiene sommando i colori primari (in proporzioni variabili) no ad ottenere il bianco ( RGB=(255, 255, 255) ). Il modello sico è la sovrapposizione (somma) di luce emessa di colore R, G e B. Nel modello CMY un colore è identicato dai valori dei colori primari ciano, magenta e giallo , codicati con 8 bit ciascuno (il ciano è un azzurro- turchese). Il modello CMY è un modello di colore sottrattivo , ovvero un colore si ottiene aggiungendo i colori primari (in tonalità variabili) no ad ottenere il nero ( CMY=(255, 255, 255) ). Il modello sico è la miscelazione di pigmenti (inchiostri) colorati in C, M, e Y, i quali assorbono (sottraggono) colore dalla luce bianca che illumina il pigmento. Per esempio il ciano ltra (elimina) il rosso dalla luce bianca. Quindi, depositando il colore ciano su un foglio bianco, la

luce riFessa dal foglio sarà priva del colore rosso. In modo analogo, il magenta e il giallo ltrano rispettivamente il verde e il blu. Se (r, g, b) è una tripla di numeri che rappresenta un colore nel modello RGB allora la codica dello stesso colore nel modello CMY è (255 - r, 255 - g, 255 – b). Analogamente il colore (c, m, y) nel modello CMY ha codica RGB (255 - c, 255 - m, 255 – y). Anche se in teoria il nero si rappresenta in CMY con (255,255,255), in realtà si ottiene un marrone scuro. L’aggiunta del nero come quarto colore risolve il problema. Il modello CMYK è una variazione del modello CMY: poiché nei modelli RGB e CMY una sfumatura del colore grigio si rappresenta con lo stesso valore dei tre colori primari, un colore (c, m, y) rappresentato nel modello CMY si rappresenta nel modello CMYK con la quadrupla (c-k, m-k, y-k, k) dove k è il minimo di c, m, y. Si usa il colore nero per diminuire l'uso di ciano, magenta, e giallo: si riduce il 8 consumo degli inchiostri colorati, aumentando quello dell'inchiostro nero. Un’immagine RGB occupa un’area di memoria espressa in byte dalla seguente espressione: 3 ×(n.pixelAltezza)×(n.pixelLarghezza) Il numero 3 va sostituito con 4 quando si aggiunga per ogni pixel un byte indicante la trasparenza del pixel (il cosidetto canale alfa , specica 256 gradi di trasparenza). E.g. un’immagine da 1024×768 pixel occupa più di 2 MB di memoria. Questo causa forti rallentamenti quando si scarichi l’immagine da Internet! Nota sulla rappresentazione esadecimale dei colori RGB/CMY I colori RGB e CMY sono rappresentabili da triple di numeri in notazione decimale o da un numero in notazione esadecimale con 6 cifre. Ad esempio, il codice esadecimale #AF583B rappresenta il colore AF 16 (rosso), 58 16 (verde), 3B 16 (blu). Convertendo in base 10 i tre numeri esadecimali si ottiene rosso = AF = 10.16 +15 = 175 (in decimale) verde = 58 = 5.16+8=88 (in decimale) blu = 3B = 3.16+11=59 (in decimale) Se le due cifre dei tre colori sono uguali, si può indicare il numero con solo 3 cifre invece di 6. Ad esempio, il colore #FF0033 viene spesso indicato come #F03. I toni di grigio hanno uguali valori di rosso, verde e blu: 5B5B5B è una tonalità di grigio. Avremo perciò 256 tonalità di grigio. Look-up table Un modo per ridurre i bit necessari per ogni pixel sfrutta l'idea della color Look-Up Table (LUT) : ogni pixel è rappresentato da 8 bit, i.e. da un valore intero compreso tra 0 e 255 che indica una posizione della LUT (di 256 posizioni) contenente il colore del pixel in formato RGB. (L’occupazione di memoria si riduce di 1/3 o 1/4). Quindi invece di 16,8 milioni di colori ne abbiamo solo 256 a disposizione, scelti tra le palette standard di colori, come i web-safe colors, o in modo ottimizzato per una specica immagine. Tipicamente questo numero di colori è suOciente per disegni o icone ma non per le fotograe. Si può ovviare a questo difetto usando tecniche come il dithering o la retinatura (halftone). Compressione dei dati Per ridurre drasticamente il numero di bit necessari per codicare dei dati si devono usare tecniche di compressione dei dati. Tecniche senza perdita o reversibili (lossless). Sono delle tecniche che trasformano il formato dei dati in un formato più compatto, occupando così meno memoria. Permettono di eliminare la ridondanza dei dati, consentendo di ricostruire le informazioni originali. Sono algoritmi generici, si applicano a qualunque tipo di dato (anche testi, basi di dati, etc.) e producono le di formato .zip, .rar, .7zip, etc. I metodi di compressione lossless più noti sono: Hu%mann: codica con un minor numero di bit i simboli più frequenti LZW: identica sequenze ricorrenti e le codica in una tabella Run-length: sostituisce una serie di occorrenze consecutive dello stesso simbolo con la coppia <simbolo, num. occorrenze> Vediamo come funziona la Run-length encoding : compattiamo una sequenza di bit in una nuova sequenza composta, ad esempio, da sequenze di 5 bit: uno codica il valore di un bit, quattro codicano il numero di ripetizioni. La sequenza 000000000111111000011000000011111111111111111 è codicata da 0, 9, 1, 6, 0, 4, 1, 2, 0, 7, 1, 15, 1, 2 che in binario diventa 01001101100010010010001111111110010 in certi casi, quando valori alterni occorrono frequentemente, la sequenza prodotta è più lunga dell'originale.

Consideriamo il problema di memorizzare un’immagine digitale e di dover scegliere il formato adatto: Formati raw : prodotto da una fotocamera digitale di fascia medio- alta, è un formato raster che rappresenta l'immagine così come viene rilevata dall'obbiettivo, senza elaborazione o compressione alcuna. Purtroppo, ogni produttore adotta un formato proprietario ed occorre un software specico per l'elaborazione delle immagini. Formato TIFF : progettato per lo scambio tra diverse piattaforme (unix, Win, Mac), è supportato da molte applicazioni di elaborazione di immagini (e.g. Photoshop) ed è uno standard industriale. Si può scegliere di salvare i le con modello del colore RGB e CMYK. Applicando una compressione lossless (LZW) si risparmia da 1/3 a 2/3 di occupazione di memoria del le originale. Questo formato è utile per memorizzare copie master delle immagini. Formato JPEG : ogni salvataggio in formato JPEG degrada la qualità dell’immagine. Il grado di compressione è molto più elevato rispetto alla compressione lossless, e può essere regolato (molte applicazioni o%rono questa possibilità). Spesso, immagini JPEG a basso grado di compressione (e grande occupazione di memoria) sono, una volta stampate, paragonabili a immagini TIFF. Grafica vettoriale Un'immagine può essere descritta da un insieme di gure geometriche come rettangoli, ellissi, linee, punti. Queste gure si possono codicare usando poca memoria: ad esempio, basta fornire gli estremi di un segmento di retta, il centro e il raggio di un cerchio, i due vertici opposti di un rettangolo. In altre parole, le forme sono rappresentate da sequenze di numeri (dette vettori ) e non da pixel. La dimensione di un le vettoriale dipende dal suo contenuto. Per loro natura, le immagini vettoriali si prestano bene a rappresentare immagini in cui non sia richiesto il fotorealismo come poster e loghi. 12 Soprattutto, un'immagine in formato vettoriale può essere ingrandita arbitrariamente, senza sgranature, o rimpicciolita senza perdita di informazioni (in e%etti non è proprio così: ingrandendo troppo l'immagine questa può apparire sgranata perché si è superata la risoluzione del monitor che è una matrice di pixel). Un'immagine vettoriale può anche essere modicata selettivamente, poiché le entità grache che la compongono sono codicate separatamente (es. rimuovi quel cerchio o ricoloralo). I le in formato PICT, AI (Adobe Illustrator) PostScript, SVG sono vettoriali. Anche un le PDF può contenere dati in forma vettoriale. Esempio: il formato SVG SVG è l'abbreviazione di Scalable Vector Graphics. È un formato graco vettoriale per il web nel quale le forme geometriche sono specicate in XML (vedremo in seguito). Molti browser

interpretano SVG direttamente, quindi è possibile inserire immagini SVG nelle pagine web, come l'immagine qui riportata specicata dal seguente codice: Layer 1 Formati di immagini per il web Un browser moderno è in grado di visualizzare senza l'uso di plugin (programmi ausiliari che aggiungono funzionalità) le immagini in formato GIF, JPEG, PNG (Portable Network Graphics), WebP ed anche il formato vettoriale SVG. Nel web un parametro importantissimo è la dimensione delle 13 immagini: è bene che non siano superiori a qualche centinaio di KB per non rallentare troppo il caricamento di una pagina. I diversi formati usano strategie diverse per raggiungere questo obbiettivo. Per quanto riguarda i formati graci per il web si suggerisce di consultare gli appunti sulla graca per il web del corso "Fundamentals of website

FORMAT

O

PRO CONTRO

GIF

Ridotte dimensioni,

supporta animazioni e

trasparenza.

Bassa qualità, solo 256 colori,

JPEG

Ottimo rapporto qualità/

dimensioni. 16 Mln di

colori.

Non supporta la trasparenza, nè

animazioni.

PNG

16 Mln di colori. Supporta

la trasparenza.

Dimensioni maggiori di JPEG,

usa compressione lossless.

Esistono varianti poco note che

supportano le animazioni.

WebP

16 Mln di colori. Supporta

la trasparenza.

due versioni di compressione:

lossy e lossless, più eOcace di

JPEG e PNG rispettivamente.

SVG

Ridimensionamento senza

perdità di qualità nè modica

dell'immagine. Utile per siti

responsive.

Non fotorealismo. Possibili

incompatibilità con i browser.