mirror of
https://github.com/webmproject/libwebp.git
synced 2025-02-13 07:22:52 +01:00
reduce memory for VP8MB and remove bitfields use
~1% faster on ARMv7 Change-Id: I3e3524e0c25ebd31a04269aae0d304932f1a781a
This commit is contained in:
parent
7413394e7f
commit
91413be2f9
@ -526,7 +526,8 @@ static const PackedNz kUnpackTab[16] = {
|
|||||||
|
|
||||||
static int ParseResiduals(VP8Decoder* const dec,
|
static int ParseResiduals(VP8Decoder* const dec,
|
||||||
VP8MB* const mb, VP8BitReader* const token_br) {
|
VP8MB* const mb, VP8BitReader* const token_br) {
|
||||||
int out_t_nz, out_l_nz, first;
|
uint32_t out_t_nz, out_l_nz;
|
||||||
|
int first;
|
||||||
ProbaArray ac_prob;
|
ProbaArray ac_prob;
|
||||||
const VP8QuantMatrix* const q = &dec->dqm_[dec->segment_];
|
const VP8QuantMatrix* const q = &dec->dqm_[dec->segment_];
|
||||||
int16_t* dst = dec->coeffs_;
|
int16_t* dst = dec->coeffs_;
|
||||||
|
@ -157,10 +157,9 @@ typedef struct { // filter specs
|
|||||||
uint8_t pad_; // mostly needed for struct aligning on ARM
|
uint8_t pad_; // mostly needed for struct aligning on ARM
|
||||||
} VP8FInfo;
|
} VP8FInfo;
|
||||||
|
|
||||||
typedef struct { // used for syntax-parsing
|
typedef struct { // Top/Left Contexts used for syntax-parsing
|
||||||
unsigned int nz_:24; // non-zero AC/DC coeffs (24bit)
|
uint8_t nz_; // non-zero AC/DC coeffs (4bit for luma + 4bit for chroma)
|
||||||
unsigned int nz_dc_:1; // non-zero DC coeffs
|
uint8_t nz_dc_; // non-zero DC coeff (1bit)
|
||||||
unsigned int pad_:7;
|
|
||||||
} VP8MB;
|
} VP8MB;
|
||||||
|
|
||||||
// Dequantization matrices
|
// Dequantization matrices
|
||||||
|
Loading…
x
Reference in New Issue
Block a user