コード例 #1
0
            void Encode(TRangeEncoder rangeEncoder, int symbol)
            {
                int m, bitIndex, bit;

                m = 1;
                for (bitIndex = NumBitLevels - 1; bitIndex >= 0; bitIndex--)
                {
                    bit = (symbol >> bitIndex) & 1;
                    rangeEncoder.Encode(Models, m, bit);
                    m = (m << 1) | bit;
                }
            }
コード例 #2
0
            void ReverseEncode(TRangeEncoder rangeEncoder, int symbol)
            {
                int m, i, bit;

                m = 1;
                for (i = 0; i < NumBitLevels; i++)
                {
                    bit = symbol & 1;
                    rangeEncoder.Encode(Models, m, bit);
                    m      = (m << 1) | bit;
                    symbol = symbol >> 1;
                }
            }
コード例 #3
0
        public static void ReverseEncode(short[] Models, int startIndex, TRangeEncoder rangeEncoder, int NumBitLevels, int symbol)
        {
            int m, i, bit;

            m = 1;
            for (i = 0; i < NumBitLevels; i++)
            {
                bit = symbol & 1;
                rangeEncoder.Encode(Models, startIndex + m, bit);
                m      = (m << 1) | bit;
                symbol = symbol >> 1;
            }
        }
コード例 #4
0
 static URangeEncoder()
 {
     RangeEncoder = new TRangeEncoder();
 }