La compressione dei dati nei principali formati di file – parte I

In un modo o nell'altro, ci siamo tutti scontrati con i limiti di memoria dei nostri dispositivi. Per aggirare tali limiti si usano tecniche di compressione, che consentono di ridurre le dimensioni dei nostri file. La compressione però viene applicata in quasi tutti i formati con cui abbiamo a che fare: dai pdf, ai file di tipo jpeg o gif. Inoltre, nelle trasmissioni numeriche è indispensabile ridurre il numero di bits da trasmettere per aumentare la velocità delle comunicazioni. Tutte queste tecniche prendono il nome di codifica di sorgente, e saranno l'oggetto di questo articolo. Dopo una breve introduzione alla teoria dell'informazione, affronteremo la codifica di sorgente analizzando due fondamentali algoritmi di compressione: la codifica di Huffman e quella di Lempel-Ziv. Queste due codifiche,  grazie anche alle loro innumerevoli varianti, trovano applicazione in molti dei formati di file con cui abbiamo quotidianamente a che fare.  

Introduzione

Nella figura 1 viene riportato lo schema a blocchi generale di un sistema di comunicazione.

sistema di comunicazione

Figura 1: schema a blocchi di un sistema di comunicazione digitale.

Andiamo ad analizzare i singoli blocchi:

  1. I blocchi S e D, rappresentano rispettivamente la sorgente di informazione e la destinazione.
  2. Codificatore e decodificatore di sorgente si occupano di applicare la codifica di sorgente in trasmissione e di recuperare il segnale in ricezione.
  3. Allo stesso modo il codificatore e il decodificatore di canale effettuano le medesime operazioni con la codifica di canale.
  4. Modulatore e demodulatore permettono al segnale di viaggiare sul canale.

In particolare i blocchi dei punti 2 e 3 sono deputati all'attuazione della cosiddetta teoria dei codici. Essa si occupa dello studio dei codici e delle loro applicazioni specifiche. Principalmente si identificano 3 tipologie di codifiche:

  1. Codifica di sorgente o compressione dati, il cui compito è quello di rimuovere la ridondanza nell'informazione da trasmettere.
  2. Codifica di canale o correzione di errori, il cui compito è quello di aggiungere ridondanza algebrica nell'informazione da trasmettere.
  3. Infine la crittografia, il cui compito è quello di celare il messaggio da trasmettere a tutti quelli che non sono il destinatario.

In questo articolo affronteremo soltanto la codifica di sorgente, visto che le altre due sono state già affrontate in precedenti articoli.

La codifica di sorgente è conosciuta nell'accezione comune come tecniche di compressione. Lo scopo della compressione è quello di ridurre la mole di dati operando sulle parti ridondanti dell'oggetto che si [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2302 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

2 Commenti

  1. Maurizio Di Paolo Emilio Maurizio 25 agosto 2016
    • Andrea Garrapa Andrea Garrapa 26 agosto 2016

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!