com.brownsoft.codec
Class HuffmanEncoder

java.lang.Object
  extended bycom.brownsoft.codec.HuffmanEncoder

public class HuffmanEncoder
extends java.lang.Object

Esta clase es en conjunto con HuffmanOutputStream quien codifica un stream mediante Huffman

Title: Proyecto Codificacion de Imagenes y Video

Description:

Copyright: Copyright (c) 2003

Company:

Version:
1.0
Author:
Gustavo Brown (alegus@adinet.com.uy)

Field Summary
private  int cantSymbols
           
protected static int MAX_SYMBOL_SIZE
           
private  java.util.Hashtable nodes
           
(package private)  HuffmanNode[] symbols
           
 
Constructor Summary
HuffmanEncoder(int[] sourceDictionary)
          Crea una instancia de huffman con un diccionario dado El constructor recibe un array de int con el cual se determinan los simbolos de la fuente y la distribucion de probabilidades
 
Method Summary
 HuffmanNode encode(int symbol)
          Obtiene el HuffmanNode asociado a un simbolo
 int getCantBitsMaxCodeword()
           
 int getCantSymbols()
          Obtiene la cantidad de simbolos del diccionario
 double getSourceEntropy()
          Calcula la entropía de la fuente
 HuffmanNode[] getSymbols()
          Retorna un array de HuffmanNode con el codeword del sìmbolo
 void HuffmanEncoder()
          Crea una instancia de huffman
 boolean isValid()
           
 void printDictionary()
          Esta clase imprime el diccionario
 void setSourceDictionary(int[] sourceDictionary)
          Crea el diccionario que va a utilizar el codificador
private  void sort(HuffmanNode[] nodes, int size)
          Ordena de mayor a menor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cantSymbols

private int cantSymbols

MAX_SYMBOL_SIZE

protected static final int MAX_SYMBOL_SIZE
See Also:
Constant Field Values

nodes

private java.util.Hashtable nodes

symbols

HuffmanNode[] symbols
Constructor Detail

HuffmanEncoder

public HuffmanEncoder(int[] sourceDictionary)
Crea una instancia de huffman con un diccionario dado El constructor recibe un array de int con el cual se determinan los simbolos de la fuente y la distribucion de probabilidades

Parameters:
sourceDictionary - diccionario a utilizar
Method Detail

encode

public HuffmanNode encode(int symbol)
                   throws java.lang.IllegalArgumentException
Obtiene el HuffmanNode asociado a un simbolo

Parameters:
symbol - simbolo
Throws:
java.lang.IllegalArgumentException

getCantBitsMaxCodeword

public int getCantBitsMaxCodeword()

getCantSymbols

public int getCantSymbols()
Obtiene la cantidad de simbolos del diccionario

Returns:
Cantidad de simbolos del diccionario

getSourceEntropy

public double getSourceEntropy()
Calcula la entropía de la fuente

Returns:
la entropía de la fuente

getSymbols

public HuffmanNode[] getSymbols()
Retorna un array de HuffmanNode con el codeword del sìmbolo


HuffmanEncoder

public void HuffmanEncoder()
Crea una instancia de huffman


isValid

public boolean isValid()

printDictionary

public void printDictionary()
Esta clase imprime el diccionario


setSourceDictionary

public void setSourceDictionary(int[] sourceDictionary)
Crea el diccionario que va a utilizar el codificador

Parameters:
sourceDictionary - array de int de donde sacar la distribucion de probabilidades

sort

private void sort(HuffmanNode[] nodes,
                  int size)
Ordena de mayor a menor