Removing the indirection of meta-huffman tables.

Now, the indexing refers directly to 5 huffman codes  that must be encoded separately.

Change-Id: I4deeb04de1997e6d20c376046d2053ec7ee918de
This commit is contained in:
Vikas Arora
2012-04-23 08:36:14 -07:00
committed by Pascal Massimino
parent 15ebcbaaf4
commit 231ec1fb6d
2 changed files with 52 additions and 82 deletions

View File

@ -17,6 +17,7 @@
#include "./webpi.h"
#include "../utils/bit_reader.h"
#include "../utils/color_cache.h"
#include "../utils/huffman.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@ -30,8 +31,6 @@ extern "C" {
#define LOSSLESS_MAGIC_BYTE 0x64
#define LOSSLESS_MAGIC_BYTE_RSVD 0x65
struct HuffmanTree;
typedef enum {
READ_DATA = 0,
READ_HDR = 1,
@ -54,18 +53,20 @@ struct VP8LTransform {
uint32_t *data_; // transform data.
};
typedef struct {
HuffmanTree htrees_[HUFFMAN_CODES_PER_META_CODE];
} HTreeGroup;
typedef struct {
int color_cache_size_;
VP8LColorCache *color_cache_;
int num_huffman_trees_;
int huffman_mask_;
int huffman_subsample_bits_;
int huffman_xsize_;
uint32_t *meta_codes_;
uint32_t *huffman_image_;
struct HuffmanTree *htrees_;
struct HuffmanTree *meta_htrees_[HUFFMAN_CODES_PER_META_CODE];
int num_htree_groups_;
HTreeGroup *htree_groups_;
} VP8LMetadata;
typedef struct {