FFmpeg
|
#include <stdint.h>
#include "libavutil/avassert.h"
#include "libavutil/macros.h"
#include "lzw.h"
#include "put_bits.h"
Go to the source code of this file.
Data Structures | |
struct | Code |
One code in hash table. More... | |
struct | LZWEncodeState |
LZW encode state. More... | |
Macros | |
#define | LZW_MAXBITS 12 |
#define | LZW_SIZTABLE (1<<LZW_MAXBITS) |
#define | LZW_HASH_SIZE 16411 |
#define | LZW_HASH_SHIFT 6 |
#define | LZW_PREFIX_EMPTY -1 |
#define | LZW_PREFIX_FREE -2 |
Functions | |
static int | hash (int head, const int add) |
Hash function adding character. More... | |
static int | hashNext (int head, const int offset) |
Hash function calculates next hash value. More... | |
static int | hashOffset (const int head) |
Hash function calculates hash offset. More... | |
static void | writeCode (LZWEncodeState *s, int c) |
Write one code to stream. More... | |
static int | findCode (LZWEncodeState *s, uint8_t c, int hash_prefix) |
Find LZW code for block. More... | |
static void | addCode (LZWEncodeState *s, uint8_t c, int hash_prefix, int hash_code) |
Add block to LZW code table. More... | |
static void | clearTable (LZWEncodeState *s) |
Clear LZW code table. More... | |
static int | writtenBytes (LZWEncodeState *s) |
Calculate number of bytes written. More... | |
void | ff_lzw_encode_init (LZWEncodeState *s, uint8_t *outbuf, int outsize, int maxbits, enum FF_LZW_MODES mode, int little_endian) |
Initialize LZW encoder. More... | |
int | ff_lzw_encode (LZWEncodeState *s, const uint8_t *inbuf, int insize) |
LZW main compress function. More... | |
int | ff_lzw_encode_flush (LZWEncodeState *s) |
Write end code and flush bitstream. More... | |
Variables | |
const int | ff_lzw_encode_state_size = sizeof(LZWEncodeState) |
LZW encoder
Definition in file lzwenc.c.
#define LZW_SIZTABLE (1<<LZW_MAXBITS) |
Hash function adding character.
head | LZW code for prefix |
add | Character to add |
Definition at line 76 of file lzwenc.c.
Referenced by clearTable(), ff_lzw_encode(), and findCode().
Hash function calculates next hash value.
head | Actual hash code |
offset | Offset calculated by hashOffset |
Definition at line 91 of file lzwenc.c.
Referenced by findCode().
Hash function calculates hash offset.
head | Actual hash code |
Definition at line 104 of file lzwenc.c.
Referenced by findCode().
|
inlinestatic |
Write one code to stream.
s | LZW state |
c | code to write |
Definition at line 114 of file lzwenc.c.
Referenced by clearTable(), ff_lzw_encode(), and ff_lzw_encode_flush().
|
inlinestatic |
Find LZW code for block.
s | LZW state |
c | Last character in block |
hash_prefix | LZW code for prefix |
Definition at line 131 of file lzwenc.c.
Referenced by ff_lzw_encode().
|
inlinestatic |
Add block to LZW code table.
s | LZW state |
c | Last character in block |
hash_prefix | LZW code for prefix |
hash_code | LZW code for bytes block |
Definition at line 153 of file lzwenc.c.
Referenced by ff_lzw_encode().
|
static |
Clear LZW code table.
s | LZW state |
Definition at line 169 of file lzwenc.c.
Referenced by ff_lzw_encode().
|
static |
Calculate number of bytes written.
s | LZW encode state |
Definition at line 192 of file lzwenc.c.
Referenced by ff_lzw_encode(), and ff_lzw_encode_flush().
void ff_lzw_encode_init | ( | LZWEncodeState * | s, |
uint8_t * | outbuf, | ||
int | outsize, | ||
int | maxbits, | ||
enum FF_LZW_MODES | mode, | ||
int | little_endian | ||
) |
Initialize LZW encoder.
Please set s->clear_code, s->end_code and s->maxbits before run.
s | LZW state |
outbuf | Output buffer |
outsize | Size of output buffer |
maxbits | Maximum length of code |
Definition at line 206 of file lzwenc.c.
Referenced by encode_frame().
int ff_lzw_encode | ( | LZWEncodeState * | s, |
const uint8_t * | inbuf, | ||
int | insize | ||
) |
LZW main compress function.
s | LZW state |
inbuf | Input buffer |
insize | Size of input buffer |
Definition at line 230 of file lzwenc.c.
Referenced by encode_strip().
int ff_lzw_encode_flush | ( | LZWEncodeState * | s | ) |
Write end code and flush bitstream.
s | LZW state |
Definition at line 263 of file lzwenc.c.
Referenced by encode_frame().
const int ff_lzw_encode_state_size = sizeof(LZWEncodeState) |
Definition at line 68 of file lzwenc.c.
Referenced by encode_frame(), and gif_encode_init().