LZW
public
LZW

Classe che contiene le funzioni di codifica e decodifica dell'algoritmo Lempel-Ziv-Welch.

Functions
scrivi
private static void scrivi(
byte b
)

Funzione che prende in input un byte e lo scrive nel file di destinazione.

adattaEScrivi
private static void adattaEScrivi(
long a,
long length
)

Questa funzione prende in input un primo long a e un secondo long length e scrive una sequenza di bit, di lunghezza length e conservata in a, nel file di destinazione a gruppi di 8 bit alla volta. Se l'ultimo gruppo ha meno di 8 bit viene salvato e caricato nel file alla succesiva chiamata di questa funzione.

See also: scrivi

iBitInverse
private static byte iBitInverse(
long x,
int i,
long length
)

Questa funzione prende in input un long x, un int i e un long length e restituisce l' i -esimo bit (contando da sinistra verso destra) della sequenza di bit di lunghezza length e conservata in x.

preparazione
private static void preparazione() throws IOException

Prepara il programma all'esecuzione della codifica o della decodifica del file.

code
public static void code(
String source,
String destName
) throws IOException

Funzione di codifica del file che applica l'algoritmo LZW.

See also: decode

adattaELeggi
private static int adattaELeggi(
long length
) throws IOException

Questa funzione prende in input un long, che determina il numero di bit da leggere (partendo dal primo bit non letto) dell'array di byte buffer, e restituisce il valore decimale di tale sequenza di bit.  La posizione del primo bit non ancora letto viene salvata nelle variabili contaBit e cont.

output
private static void output(
String s
)

Questa funzione prende in input una stringa s, coverte i suoi caratteri in byte e li carica uno alla volta nel file di destinazione.

See also: scrivi

decode
public static void decode(
String source,
String destName
) throws IOException

Funzione di decodifica del file che applica l'algoritmo LZW.

See also: code