www.pudn.com > sfalic-03-src.rar.rar > cfamily.h


#ifndef __CFAMILY_H 
#define __CFAMILY_H 
 
#include  
#include "cdftypes.h" 
 
/* rodzina kodow */ 
/* modul podrzedny dla cdfstat */ 
 
/* bitowe i/o (juz tylko i) */ 
 
struct bitinstatus 
{ 
	unsigned bits;	// bufor zawsze zawierajacy 32 bity z wejscia 
	unsigned thebyte;	// aktualny bajt 
	unsigned inthebyte;	// ile bitow z aktualnego bajta jeszcze nie w buforze bits 
	BYTE * readptr;		// wskaznik na nastepny bajt do odczytu 
}; 
 
/* inicjalizacja odczytu bitowego */ 
void bitinstatusinit(struct bitinstatus * bs); 
 
 
/* rodzina kodow */ 
 
/* inicjalizacja rodziny kodow wylicza progi dla wszystkich kodów */ 
/* inicjalizuje i wypelnia tablice kodow */ 
void familyinit(int bpp, int limit); 
 
/* zwolnienie struktur rodziny kodow*/ 
void familyfree(); 
 
/* argumenty wartosc do zakodowania:n, numer kodu:l, adres, gdzie nalezy zapisac slowo kodowe */ 
void GolombCoding(const unsigned int n, const unsigned int l,  
				  unsigned int * const codeword, unsigned int * const codewordlen); 
 
/* dlugosc slowa kodowego, argumenty jak wyzej */ 
unsigned int GolombCodeLen(const unsigned int n, const unsigned int l); 
 
/* dekodowanie, z odczytem z pliku inarnego */ 
/* argumenty: numer kodu:l, zmienna stanu bitowego wejscia:bs */ 
unsigned int GolombDecoding(const unsigned int l, struct bitinstatus * bs); 
 
#endif