FFmpeg
|
#include <string.h>
#include <stdint.h>
#include <stdlib.h>
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/error.h"
#include "libavutil/qsort.h"
#include "mjpegenc_huffman.h"
Go to the source code of this file.
Functions | |
static int | compare_by_prob (const void *a, const void *b) |
Comparison function for two PTables by prob. More... | |
static int | compare_by_length (const void *a, const void *b) |
Comparison function for two HuffTables by length. 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... | |
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... | |
|
static |
Comparison function for two PTables by prob.
Definition at line 38 of file mjpegenc_huffman.c.
Referenced by ff_mjpegenc_huffman_compute_bits().
|
static |
Comparison function for two HuffTables by length.
Definition at line 52 of file mjpegenc_huffman.c.
Referenced by ff_mjpeg_encode_huffman_close().
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.
prob_table | input array of a PTable for each distinct input value |
distincts | output array of a HuffTable that will be populated by this function |
size | size of the prob_table array |
max_length | max length of an encoding |
Definition at line 80 of file mjpegenc_huffman.c.
Referenced by check_lengths(), ff_mjpeg_encode_huffman_close(), and main().
void ff_mjpeg_encode_huffman_init | ( | MJpegEncHuffmanContext * | s | ) |
Definition at line 148 of file mjpegenc_huffman.c.
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 |
Definition at line 161 of file mjpegenc_huffman.c.