类 LZWCompressor
- java.lang.Object
-
- com.github.myibu.algorithm.compress.LZWCompressor
-
- 所有已实现的接口:
Compressor,Debugable
public class LZWCompressor extends java.lang.Object implements Compressor
LZW compress algorithm
-
-
构造器概要
构造器 构造器 说明 LZWCompressor()
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 intcompress(byte[] in_data, int in_len, byte[] out_data)s = empty string; while (there is still data to be read) { ch = read a character; if (dictionary contains s+ch) { s = s+ch; } else { encode s to output file; add s+ch to dictionary; s = ch; } } encode s to output file;intdecompress(byte[] in_data, int in_len, byte[] out_data)prevcode = read in a code; decode/output prevcode; while (there is still data to read) { currcode = read in a code; entry = translation of currcode from dictionary; output entry; ch = first char of entry; add ((translation of prevcode)+ch) to dictionary; prevcode = currcode; }voidsetDebug(boolean isDebug)enable Debug or not, default should be not enabled
-
-
-
方法详细资料
-
compress
public int compress(byte[] in_data, int in_len, byte[] out_data)s = empty string; while (there is still data to be read) { ch = read a character; if (dictionary contains s+ch) { s = s+ch; } else { encode s to output file; add s+ch to dictionary; s = ch; } } encode s to output file;- 指定者:
compress在接口中Compressor- 参数:
in_data- inputin_len- length of inputout_data- output- 返回:
- offset in output
-
decompress
public int decompress(byte[] in_data, int in_len, byte[] out_data)prevcode = read in a code; decode/output prevcode; while (there is still data to read) { currcode = read in a code; entry = translation of currcode from dictionary; output entry; ch = first char of entry; add ((translation of prevcode)+ch) to dictionary; prevcode = currcode; }- 指定者:
decompress在接口中Compressor- 参数:
in_data- inputin_len- length of inputout_data- output- 返回:
- offset in output
-
-