MCPcopy Create free account
hub / github.com/LASzip/LASzip / encodeSymbol

Method encodeSymbol

unused/rangeencoder.cpp:154–184  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

152}
153
154void RangeEncoder::encodeSymbol(EntropyModel* model, U32 sym)
155{
156 assert(model);
157 RangeModel* m = (RangeModel*)model;
158 assert(sym >= 0 && sym < (U32)(m->n));
159 U32 syfreq;
160 U32 ltfreq;
161 U32 r, tmp;
162 U32 lg_totf = m->lg_totf;
163
164 m->getfreq(sym,&syfreq,&ltfreq);
165
166 normalize();
167 r = range >> lg_totf;
168 tmp = r * ltfreq;
169 low += tmp;
170#ifdef EXTRAFAST
171 range = r * syfreq;
172#else
173 if ((ltfreq+syfreq) >> lg_totf)
174 {
175 range -= tmp;
176 }
177 else
178 {
179 range = r * syfreq;
180 }
181#endif
182
183 m->update(sym);
184}
185
186void RangeEncoder::writeBit(U32 sym)
187{

Callers

nothing calls this directly

Calls 2

getfreqMethod · 0.80
updateMethod · 0.45

Tested by

no test coverage detected