typedefstruct VPXRangeCoder { int high; int bits; /* stored negated (i.e. negative "bits" is a positive number of
bits left) in order to eliminate a negate in cache refilling */ const uint8_t *buffer; const uint8_t *end; unsignedint code_word; int end_reached;
} VPXRangeCoder;
externconst uint8_t ff_vpx_norm_shift[256]; int ff_vpx_init_range_decoder(VPXRangeCoder *c, const uint8_t *buf, int buf_size);
c->high = bit ? c->high - low : low;
c->code_word = bit ? code_word - low_shift : code_word;
return bit;
} #endif
#ifndef vpx_rac_get_prob_branchy // branchy variant, to be used where there's a branch based on the bit decoded static av_always_inline int vpx_rac_get_prob_branchy(VPXRangeCoder *c, int prob)
{ unsignedlong code_word = vpx_rac_renorm(c); unsigned low = 1 + (((c->high - 1) * prob) >> 8); unsigned low_shift = low << 16;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.