|
FFmpeg
|
Huffman table generation for MJPEG encoder. More...
#include <stdint.h>Go to the source code of this file.
Classes | |
| struct | MJpegEncHuffmanContext |
| struct | PTable |
| Used to assign a occurrence count or "probability" to an input value. More... | |
| struct | PackageMergerList |
| Used to store intermediate lists in the package merge algorithm. More... | |
| struct | HuffTable |
| Used to store optimal huffman encoding results. More... | |
Typedefs | |
| typedef struct MJpegEncHuffmanContext | MJpegEncHuffmanContext |
| typedef struct PTable | PTable |
| Used to assign a occurrence count or "probability" to an input value. | |
| typedef struct PackageMergerList | PackageMergerList |
| Used to store intermediate lists in the package merge algorithm. | |
| typedef struct HuffTable | HuffTable |
| Used to store optimal huffman encoding results. | |
Functions | |
| void | ff_mjpeg_encode_huffman_init (MJpegEncHuffmanContext *s) |
| void | ff_mjpeg_encode_huffman_close (MJpegEncHuffmanContext *s, uint8_t bits[17], uint8_t val[], int max_nval) |
| Produces a Huffman encoding with a given input. More... | |
| void | ff_mjpegenc_huffman_compute_bits (PTable *prob_table, HuffTable *distincts, int size, int max_length) |
| Computes the length of the Huffman encoding for each distinct input value. More... | |
Huffman table generation for MJPEG encoder.
| void ff_mjpeg_encode_huffman_close | ( | MJpegEncHuffmanContext * | s, |
| uint8_t | bits[17], | ||
| uint8_t | val[], | ||
| int | max_nval | ||
| ) |
Produces a Huffman encoding with a given input.
| s | input to encode |
| bits | output array where the ith character represents how many input values have i length encoding |
| val | output array of input values sorted by their encoded length |
| max_nval | maximum number of distinct input values |
| void ff_mjpegenc_huffman_compute_bits | ( | PTable * | prob_table, |
| HuffTable * | distincts, | ||
| int | size, | ||
| int | max_length | ||
| ) |
Computes the length of the Huffman encoding for each distinct input value.
Uses package merge algorithm as follows:
All probabilities should be positive integers. The output is sorted by code, not by length.
1.8.12