示例#1
0
		public static void ReverseEncode(BitEncoder[] Models, UInt32 startIndex,
		                                 Encoder rangeEncoder, int NumBitLevels, UInt32 symbol) {
			UInt32 m = 1;
			for (int i = 0; i < NumBitLevels; i++) {
				UInt32 bit = symbol & 1;
				Models[startIndex + m].Encode(rangeEncoder, bit);
				m = (m << 1) | bit;
				symbol >>= 1;
			}
		}
示例#2
0
		public static UInt32 ReverseGetPrice(BitEncoder[] Models, UInt32 startIndex,
		                                     int NumBitLevels, UInt32 symbol) {
			UInt32 price = 0;
			UInt32 m = 1;
			for (int i = NumBitLevels; i > 0; i--) {
				UInt32 bit = symbol & 1;
				symbol >>= 1;
				price += Models[startIndex + m].GetPrice(bit);
				m = (m << 1) | bit;
			}
			return price;
		}