39.55 unary.c

/*  
 * unary.c  
 *  
 * Un codificador unario.  
 *  
 * Referencias:  
 *  
 * Khalid Sayood, Data Compression, 3rd ed, Morgan Kaufmann.  
 * K. R. Rao, Principles of Digital Video Coding.  
 */  
 
#include <stdio.h>  
#include "bitio.h"  
#include "vlc.h"  
 
/* Inicializa el codificador. */  
void init_encoder() {  
}  
 
/* Inicializa el descodificador. */  
void init_decoder() {  
}  
 
/* Codifica el índice "index" usando el espacio de recuentos  
   acumulados "cum_freq". */  
void encode_index(int index, unsigned short *cum_prob) {  
  int i, s;  
  s = index - 1;  
  for(i=0; i<s; i++) {  
    put_bit(1);  
  }  
  put_bit(0);  
}  
 
/* Descodifica el siguiente índice . */  
int decode_index(unsigned short *cum_prob) {  
  int s = 0;  
  while(get_bit()) {  
    s++;  
  }  
  return s+1;  
}  
 
/* Finaliza el codificador. */  
void finish_encoder() {  
  flush();  
}  
 
/* Finaliza el descodificador. */  
void finish_decoder() {  
}