Transmisión de Datos 2011/12 Ejercicio 3 – Resolución Detallada: Pseudo-código Codificación Huffman binaria Escribir el pseudo-código de: el algoritmo de codificación Huffman (para crear el código), un codificador Huffman (con código –tabla- único por secuencia), y un decodificador Huffman (con código –tabla- único por secuencia). ALGORITMO DE CODIFICACIÓN HUFFMAN funcion [codigo]= Huffman ( P ) P = vector de probabilidades como entrada codigo = tabla vacia inicialmente Si (longitud de P < 2) OR (Sum(P)!= 1) error y sale fin P_ordenada = ordena de mayor a menor(P) Si la longitud es 2 asigna 0 y 1 según criterio codigo = almacena probabilidad y codigo asignado en columnas adecuadas en caso contrario P_ordenada = sustituye las dos 2 probabilidades menores por la suma de estas codigo = almacena probabilidad y codigo asignado para cada probabilidad de las sumadas, en sus respectivas columnas Huffman(P_ordenada) comienza de nuevo con el nuevo vector ordenado fin CODIFICADOR HUFFMAN funcion [secuencia]= HuffmanCodificador ( informacion ) P = calcula vector de probabilidades de informacion Sum= suma de las probabilidades es cero inicialmente para i=1 hasta fin del vector de P sum=sum+P(i) si sum>1 error y sale fin fin si sum es < 1 error y sale fin código dado por: huffman de P código (tabla) = codigo + columa de simbolos asociados a cada probabilidad secuencia = vacia para i=1 hasta fin del vector de informacion simbolo = busca en código el simbolo correspondiente a informacion (i) secuencia = [secuencia simbolo] fin DECODIFICADOR HUFFMAN funcion [informacion]= HuffmanRecursivo ( secuencia, codigo ) almacenado = vacio inicialmente, para almacenar bits recibidos informacion = vacia inicialmente para j=1 hasta fin de secuencia almacenado = [almacenado secuencia(j)] para i=1 hasta fin de la columna de codigos de codigo si almacenado = codigo(columna de codigos,i) informacion = [informacion codigo(columna de simbolos,i)] fin fin fin