File: huffman.h

package info (click to toggle)
liboil 0.3.1-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 4,276 kB
  • ctags: 2,005
  • sloc: ansic: 14,199; sh: 8,527; xml: 7,375; makefile: 429
file content (31 lines) | stat: -rw-r--r-- 764 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#ifndef _HUFFMAN_H_
#define _HUFFMAN_H_

#include <glib.h>
#include "bits.h"

typedef struct huffman_entry_struct HuffmanEntry;
typedef GArray HuffmanTable;

struct huffman_entry_struct {
	unsigned int symbol;
	unsigned int mask;
	int n_bits;
	unsigned char value;
};


void huffman_table_dump(HuffmanTable *table);
HuffmanTable *huffman_table_new(void);
void huffman_table_free(HuffmanTable *table);
void huffman_table_add(HuffmanTable *table, guint32 code, gint n_bits,
	gint value);
unsigned int huffman_table_decode_jpeg(HuffmanTable *tab, bits_t *bits);
int huffman_table_decode_macroblock(short *block, HuffmanTable *dc_tab,
	HuffmanTable *ac_tab, bits_t *bits);
int huffman_table_decode(HuffmanTable *dc_tab, HuffmanTable *ac_tab, bits_t *bits);


#endif