FFmpeg
|
LZW encoder. More...
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 |
Typedefs | |
typedef struct Code | Code |
One code in hash table. More... | |
typedef struct LZWEncodeState | LZWEncodeState |
LZW encode state. More... | |
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, void(*lzw_put_bits)(PutBitContext *, int, unsigned)) |
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, void(*lzw_flush_put_bits)(PutBitContext *)) |
Write end code and flush bitstream. More... | |
Variables | |
const int | ff_lzw_encode_state_size = sizeof(LZWEncodeState) |
Detailed Description
LZW encoder.
Definition in file lzwenc.c.
Macro Definition Documentation
#define LZW_HASH_SIZE 16411 |
Definition at line 34 of file lzwenc.c.
Referenced by clearTable(), hash(), hashNext(), and hashOffset().
#define LZW_MAXBITS 12 |
Definition at line 32 of file lzwenc.c.
Referenced by ff_lzw_encode_init().
#define LZW_PREFIX_EMPTY -1 |
Definition at line 37 of file lzwenc.c.
Referenced by clearTable(), ff_lzw_encode(), and ff_lzw_encode_init().
#define LZW_PREFIX_FREE -2 |
Definition at line 38 of file lzwenc.c.
Referenced by clearTable(), ff_lzw_encode(), and findCode().
#define LZW_SIZTABLE (1<<LZW_MAXBITS) |
Typedef Documentation
typedef struct LZWEncodeState LZWEncodeState |
LZW encode state.
Function Documentation
|
inlinestatic |
Add block to LZW code table.
- Parameters
-
s LZW state c Last character in block hash_prefix LZW code for prefix hash_code LZW code for bytes block
Definition at line 148 of file lzwenc.c.
Referenced by ff_lzw_encode().
|
static |
Clear LZW code table.
- Parameters
-
s LZW state
Definition at line 164 of file lzwenc.c.
Referenced by ff_lzw_encode().
int ff_lzw_encode | ( | LZWEncodeState * | s, |
const uint8_t * | inbuf, | ||
int | insize | ||
) |
LZW main compress function.
- Parameters
-
s LZW state inbuf Input buffer insize Size of input buffer
- Returns
- Number of bytes written or -1 on error
Definition at line 226 of file lzwenc.c.
Referenced by encode_strip(), and gif_image_write_image().
int ff_lzw_encode_flush | ( | LZWEncodeState * | s, |
void(*)(PutBitContext *) | lzw_flush_put_bits | ||
) |
void ff_lzw_encode_init | ( | LZWEncodeState * | s, |
uint8_t * | outbuf, | ||
int | outsize, | ||
int | maxbits, | ||
enum FF_LZW_MODES | mode, | ||
void(*)(PutBitContext *, int, unsigned) | lzw_put_bits | ||
) |
|
inlinestatic |
Find LZW code for block.
- Parameters
-
s LZW state c Last character in block hash_prefix LZW code for prefix
- Returns
- LZW code for block or -1 if not found in table
Definition at line 126 of file lzwenc.c.
Referenced by ff_lzw_encode().
|
inlinestatic |
Hash function adding character.
- Parameters
-
head LZW code for prefix add Character to add
- Returns
- New hash value
Definition at line 74 of file lzwenc.c.
Referenced by musixmatch.api.QueryString::__cmp__(), musixmatch.api.Request::__cmp__(), musixmatch.api.QueryString::__hash__(), musixmatch.api.Request::__hash__(), adpcm_compress_trellis(), bidir_refine(), clearTable(), do_adobe_auth(), do_llnw_auth(), ff_lzw_encode(), findCode(), make_digest_auth(), and tests.base.TestItem::test__hash__().
|
inlinestatic |
Hash function calculates next hash value.
- Parameters
-
head Actual hash code offset Offset calculated by hashOffset
- Returns
- New hash value
Definition at line 89 of file lzwenc.c.
Referenced by findCode().
|
inlinestatic |
Hash function calculates hash offset.
- Parameters
-
head Actual hash code
- Returns
- Hash offset
Definition at line 102 of file lzwenc.c.
Referenced by findCode().
|
inlinestatic |
Write one code to stream.
- Parameters
-
s LZW state c code to write
Definition at line 112 of file lzwenc.c.
Referenced by clearTable(), ff_lzw_encode(), and ff_lzw_encode_flush().
|
static |
Calculate number of bytes written.
- Parameters
-
s LZW encode state
- Returns
- Number of bytes written
Definition at line 187 of file lzwenc.c.
Referenced by ff_lzw_encode(), and ff_lzw_encode_flush().
Variable Documentation
const int ff_lzw_encode_state_size = sizeof(LZWEncodeState) |
Definition at line 66 of file lzwenc.c.
Referenced by encode_frame(), and gif_encode_init().
Generated on Mon Nov 18 2024 06:52:07 for FFmpeg by 1.8.11