private void HandleReferedToSegmentNumbers(SegmentHeader segmentHeader)
        {
            int referredToSegmentCount = segmentHeader.GetReferredToSegmentCount();

            int[] referredToSegments = new int[referredToSegmentCount];

            int segmentNumber = segmentHeader.GetSegmentNumber();

            if (segmentNumber <= 256)
            {
                for (int i = 0; i < referredToSegmentCount; i++)
                {
                    referredToSegments[i] = reader.Readbyte();
                }
            }
            else if (segmentNumber <= 65536)
            {
                short[] buf = new short[2];
                for (int i = 0; i < referredToSegmentCount; i++)
                {
                    reader.Readbyte(buf);
                    referredToSegments[i] = BinaryOperation.GetInt16(buf);
                }
            }
            else
            {
                short[] buf = new short[4];
                for (int i = 0; i < referredToSegmentCount; i++)
                {
                    reader.Readbyte(buf);
                    referredToSegments[i] = BinaryOperation.GetInt32(buf);
                }
            }

            segmentHeader.SetReferredToSegments(referredToSegments);

            if (JBIG2StreamDecoder.debug)
            {
                Console.WriteLine("referredToSegments = ");
                for (int i = 0; i < referredToSegments.Length; i++)
                {
                    Console.WriteLine(referredToSegments[i] + " ");
                }
                Console.WriteLine("");
            }
        }