Lines Matching refs:nbBits
148 static void HUF_setNbBits(HUF_CElt* elt, size_t nbBits)
150 assert(nbBits <= HUF_TABLELOG_ABSOLUTEMAX);
151 *elt = nbBits;
156 size_t const nbBits = HUF_getNbBits(*elt);
157 if (nbBits > 0) {
158 assert((value >> nbBits) == 0);
159 *elt |= value << (sizeof(HUF_CElt) * 8 - nbBits);
244 /* fill nbBits */
282 BYTE nbBits;
289 * It sets all nodes with nbBits > maxNbBits to be maxNbBits. Then it adjusts
293 * where largestBits == huffNode[lastNonNull].nbBits.
307 const U32 largestBits = huffNode[lastNonNull].nbBits;
320 while (huffNode[n].nbBits > maxNbBits) {
321 totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits));
322 huffNode[n].nbBits = (BYTE)maxNbBits;
325 /* n stops at huffNode[n].nbBits <= maxNbBits */
326 assert(huffNode[n].nbBits <= maxNbBits);
328 while (huffNode[n].nbBits == maxNbBits) --n;
345 if (huffNode[pos].nbBits >= currentNbBits) continue;
346 currentNbBits = huffNode[pos].nbBits; /* < maxNbBits */
375 huffNode[rankLast[nBitsToDecrease]].nbBits++;
394 if (huffNode[rankLast[nBitsToDecrease]].nbBits != maxNbBits-nBitsToDecrease)
410 while (huffNode[n].nbBits == maxNbBits) n--;
411 huffNode[n+1].nbBits--;
417 huffNode[ rankLast[1] + 1 ].nbBits--;
634 huffNode[nodeRoot].nbBits = 0;
636 huffNode[n].nbBits = huffNode[ huffNode[n].parent ].nbBits + 1;
638 huffNode[n].nbBits = huffNode[ huffNode[n].parent ].nbBits + 1;
656 /* fill result into ctable (val, nbBits) */
662 nbPerRank[huffNode[n].nbBits]++;
671 HUF_setNbBits(ct + huffNode[n].byte, huffNode[n].nbBits); /* push nbBits per symbol, symbol order */
710 size_t nbBits = 0;
713 nbBits += HUF_getNbBits(ct[s]) * count[s];
715 return nbBits >> 3;
734 * the pair (nbBits, value) in the format:
736 * - Bits [0, 4) = nbBits
737 * - Bits [4, 64 - nbBits) = 0
738 * - Bits [64 - nbBits, 64) = value
777 * @param elt The element we're adding. This is a (nbBits, value) pair.
806 size_t const nbBits = HUF_getNbBits(elt);
807 size_t const dirtyBits = nbBits == 0 ? 0 : BIT_highbit32((U32)nbBits) + 1;
810 assert(((elt >> dirtyBits) << (dirtyBits + nbBits)) == 0);
847 size_t const nbBits = bitC->bitPos[0] & 0xFF;
848 size_t const nbBytes = nbBits >> 3;
849 /* The top nbBits bits of bitContainer are the ones we need. */
850 size_t const bitContainer = bitC->bitContainer[0] >> (HUF_BITS_IN_CONTAINER - nbBits);
853 assert(nbBits > 0);
854 assert(nbBits <= sizeof(bitC->bitContainer[0]) * 8);
885 size_t const nbBits = bitC->bitPos[0] & 0xFF;
887 return (bitC->ptr - bitC->startPtr) + (nbBits > 0);