Gianluca Costante & Alessio Scannapieco

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

Puntatori Linguaggio C.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F1 Primi programmi.
Informatica Generale Marzia Buscemi
Problema dellordinamento Input: Sequenza di n numeri Output: Permutazione π = tale che: a 1 a 2 …… a n Subroutine in molti problemi E possibile effettuare.
Tecnologia delle basi di dati: Strutture fisiche di accesso
Java Stream e File.
Classe III A A.s – 2010 Programma di Informatica
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
Classe III A A.s – 2011 Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti –Prof. Alberto Ferrari –Prof. Alberto Paganuzzi.
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Elaborazione del Book Informatico. 2 Marco M. Vernillo – a.a. 2002/2003 – Elaborazione del Book Informatico Elaborazione del Book Informatico 1. Tecnologie.
Tecniche di compressione dei dati
Algoritmi e Programmazione
1 Directory Il formato delle directory varia nei vari FS utilizzati in ambito Unix Quando una directory viene aperta viene restituito un puntatore a un.
Mappare file in memoria
SC che operano su file (1)
Realizzazione del file system
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Realizzazione del file system
PROGETTINI DI FINE CORSO
INFORMATICA I file.
Significato, vantaggi e svantaggi Marchesin Sara Soligo Alessandra
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Algoritmi e strutture dati
Introduzione agli stream e alle classi
1 Informazioni generali r Stefano Leonardi m Tel.: m URL: / r Ricevimento:
INFORMATICA I file. © Piero Demichelis 2 File Per rendere più uniforme possibile il comportamento dei programmi in relazione alla grande varietà dei dispositivi.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
nome: sequenza di caratteri usata per denotare un oggetto
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
I File.
Lezione VIII Laboratorio di Programmazione. Streams formattati In C è sfruttata linformazione riguardo al tipo di un certo dato per impostare la formattazione.
GESTIONE DEI FILE Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persi-stenza dei dati) è necessario poterli archi-viare.
INFORMATICA MATTEO CRISTANI.
15 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ora da stabilire.
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione X Ingresso/Uscita di Interi Programmazione di Calcolatori: Ingresso/Uscita 1.
Elementi di programmazione ad oggetti a. a. 2009/2010
Codifica dell’informazione
LdL - LP1 - lez 11 - ver 6 - aa Linguaggi di programmazione I Stringhe (II) Prof. Luigi Di Lascio Lezione 11.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Puntatori e Stringhe.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Codifica dell’informazione
File binari Accesso a file con record di lunghezza costante Struct Persona { Int id; Char nome[50];// nome e cognome Double stipendio; }; Persona dipendente;
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
Ordinamento in tempo lineare Il limite inferiore Ω(n log n) vale per tutti gli algoritmi di ordinamento generali, ossia per algoritmi che non fanno alcuna.
1 Chiamate di sistema Introduzione Errori : perror() Chiamate che lavorano su file.
Rappresentazione della Informazione
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Informatica e Informatica di Base
Copyright © Istituto Italiano Edizioni Atlas
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 5: 18 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
SOMMARIO La Digitalizzazione La Compressione LA DIGITALIZZAZIONE La digitalizzazione consiste nella trasformazione di un oggetto in una sequenza di numeri,
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Lezione 14 Tecniche di I/O Avanzate Obiettivi di apprendimento: A.Come lavorare con stream binari B.Lavorare con I datalog files C.Vantaggi e svantaggi.
Files in C++ Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera)
Università degli Studi di Roma “La Sapienza” Techniche di Compressione “Elaborazioni delle Immagini” “Elaborazioni delle Immagini”
Steganografia in un file di testo Corso di Sicurezza dei sistemi informatici Prof. Giuseppe Mastronardi Anno Accademico 2006/07.
Transcript della presentazione:

Gianluca Costante & Alessio Scannapieco LZSS + SHANNON FANO Gianluca Costante & Alessio Scannapieco

Introduzione Analisi iniziale Comprensione algoritmi Implementazione Suddivisione compiti Comprensione algoritmi Implementazione LZSS Shannon Fano Analisi finale Esecuzione test Ottimizzazione

Analisi Iniziale Suddivisione dei compiti LZSS: Gianluca Costante Shannon Fano: Alessio Scannapieco L’ouput di LZSS sarà utilizzato da Shannon Fano come input, in modo da sfruttare la ripetizione delle terne

LZSS – Intro Lempel-Ziv-Storer-Szymanski PCZip, ARJ, LHArc, ZOO Miglioramento LZ77 no-match: 0 CHAR match: 1 (length, offset)

LZSS –Codifica Imposta la posizione di codifica all’inizio dello stream di input Leggi una quantità MAX_MATCH di caratteri Trova il match più lungo nella finestra con il lookahead buffer: P := puntatore al match L := lunghezza del match È L >= LUNGHEZZA_MINIMA SI: ritorna P e muovi la posizione di codifica L caratteri avanti NO: ritorna il primo carattere del lookahead buffer e muovi la posizione di codifica di un carattere avanti Se ci sono ancora caratteri nello stream di input, torna al passo 2

LZSS - Esempio POS 1 2 3 4 5 6 7 8 9 10 11 CAR A B C PASSO POS MATCH OUTPUT 1 - - A 2 3 B 4 5 C 6 B B (3. 2) 7 8 A A B (7, 3) 11 LUNGHEZZA_MINIMA = 2

Implementazione - LZSS Scelte compiute Lettura a byte Match massimo: 15 (4 bit => length) Sliding-window: 4096 simboli (12 bit => offset)

Implementazione - LZSS Problemi riscontrati Compressione Ricerca del match massimo nella sliding-window Scrittura bits Posizione flags Decompressione Lettura bits Bits spuri alla fine del file compresso

Implementazione - LZSS Problemi risolti Compressione Ricerca del match massimo => Bruteforce Scrittura bits => Maschere Decompressione Lettura bits => Maschere

Implementazione - LZSS Problemi aperti Compressione Posizione flags => (8 flags e 8 terne/caratteri) Decompressione Bits spuri alla fine del file compresso => (Sequenza finale)

Implementazione - LZSS Strutture dati Scelte: Buffer di caratteri per la lettura di file Struct per gestione terne Array per sliding-window e lookahead buffer

Implementazione - LZSS Sviluppi futuri Compressione Ricerca del match massimo => Liste? Hash? Scrittura bits => Libreria bitfile Decompressione Lettura bits => Libreria bitfile

Implementazione – Shannon Fano Problemi riscontrati Compressione Generazione albero ricorrenze Bits spuri a fine file

Implementazione – Shannon Fano Problemi risolti Compressione Generazione albero ricorrenze => Liste Bits spuri a fine file => Informazioni nell’header

Implementazione – Shannon Fano Strutture dati Scelte: Puntatori per Alberi e Liste Array per conteggio simboli Array per ordinamento in base alla frequenza Array algoritmo generazione Albero

Implementazione – Shannon Fano Sviluppi futuri Decompressione

Gianluca Costante & Alessio Scannapieco LZSS + SHANNON FANO Gianluca Costante & Alessio Scannapieco

Beta - LZSS Scelte finali Sliding-window => variabile Match massimo => variabile Compressione Ricerca match => bruteforce Scrittura bits => Libreria bitfile Posizione flags => pacchetto da 1 byte Decompressione Lettura bits => Libreria bitfile Bits spuri => Sequenza finale

Analisi finale - LZSS OFFSET_BITS = 8 LENGTH_BITS = 4 File Dim. Tempo % Compressione JPG 129 KB 0.163 s -11.987 % TEXT 3.7 MB 0.480 s 32.347 % BMP 778 KB 0.241 s 35.265 % EXCEL 50 KB 0.297 s 5.409 % PDF 5.4 MB 6.592 s -6.784 % MEMORIA = 28 + 24 = 272 bytes

Analisi finale - LZSS OFFSET_BITS = 8 LENGTH_BITS = 8 File Dim. Tempo % Compressione JPG 129 KB 0.182 s -12.340 % TEXT 3.7 MB 0.550 s 16.950 % BMP 778 KB 0.524 s 32.359 % EXCEL 50 KB 0.352 s 6.017 % PDF 5.4 MB 6.549 s -7.225 % MEMORIA = 28 + 28 = 512 bytes

Analisi finale - LZSS OFFSET_BITS = 12 LENGTH_BITS = 4 File Dim. Tempo % Compressione JPG 129 KB 2.376 s -11.406 % TEXT 3.7 MB 1.254 s 65.660 % BMP 778 KB 3.471 s 54.839 % EXCEL 50 KB 1.742 s 5.571 % PDF 5.4 MB 91.124 s -3.510 % MEMORIA = 212 + 24 = 4112 bytes

Analisi finale - LZSS OFFSET_BITS = 12 LENGTH_BITS = 8 File Dim. Tempo % Compressione JPG 129 KB 2.323 s -15.169 % TEXT 3.7 MB 1.249 s 57.954 % BMP 778 KB 3.192 s 55.943 % EXCEL 50 KB 1.508 s 7.612 % PDF 5.4 MB 90.276 s -6.904 % MEMORIA = 212 + 28 = 4352 bytes

Analisi finale - LZSS OFFSET_BITS = 12 LENGTH_BITS = 12 File Dim. Tempo % Compressione JPG 129 KB 2.552 s -18.936 % TEXT 3.7 MB 1.169 s 50.040 % BMP 778 KB 3.564 s 49.634 % EXCEL 50 KB 2.497 s 3.012 % PDF 5.4 MB 99.218 s -10.218 % MEMORIA = 212 + 212 = 8192 bytes

Analisi finale - LZSS Fattori importanti Scelta della dimensione di offset e length Dipende molto dalla tipologia di file Algoritmo di ricerca in finestra Bruteforce non efficiente, caso peggiore: 2bit_offset

Ottimizzazione - LZSS Utilizzo dell’algoritmo Knuth-Morris-Pratt OFFSET_BITS = 12 LENGTH_BITS = 4 File Dim. Tempo % Compressione JPG 129 KB 1.708 s -11.406 % TEXT 3.7 MB 0.873 s 65.660 % BMP 778 KB 2.547 s 54.839 % EXCEL 50 KB 0.438 s 5.116 % PDF 5.4 MB 66.938 s -3.510 % MEMORIA = 212 + 24 = 4112 bytes

Closed Beta - ShannonFanoC Shannon Fano Canonico Facilita la decodifica Informazioni dell’header Lunghezza codici (0 a 255) Bit da leggere dall’ultimo byte (256esimo)

Closed Beta – ShannonFanoC Header di esempio

Closed Beta - ShannonFanoC Problematiche newline Differenze sostanziali in quantità di peso per certi tipi di file .bmp, certi si, certi no Altri tipi di file

Closed Beta - ShannonFanoC Problematiche newline File .txt Differenze sostanziali in quantità di peso per certi tipi di file Fase di debug .bmp, certi si, certi no Dovuto ad un errore di codifica o decodifica Altri tipi di file Analizzare l’output

Closed Beta – ShannonFanoC DEMO File di testo (text11.txt) BMP funzionante (ImmagineTest.bmp)

Closed Beta – ShannonFanoC Prossima fase Risolvere le problematiche Ottimizzare il programma Documentare il codice

Grazie per l’attenzione