Для записи рисунка c количеством различных цветов не более 256 в формате BMP может использоваться следующий способ сжатия информации. Информация хранится в кусочках по два байта. Если первый байт кусочка не равен 0, то в нем содержится количество последовательных пикселов, имеющих одинаковый цвет, а номер цвета пиксела в диапазоне от 0 до 255 указан в следующем байте. Таким образом кодируются последовательности из трех и более пикселов одного цвета и одиночные пикселы. Два последовательных пиксела одного цвета кодируются как последовательность пикселов разного цвета . Если необходимо закодировать последовательность из двух и более пикселов, имеющих разные цвета (такая последовательность не должна содержать подпоследовательности из трех или более пикселов, имеющих одинаковый цвет, так как они кодируются способом указанным выше), то в первом байте кусочка указывается значение 0, во втором – длина последовательности, затем номера цветов пикселов. Если длина последовательности из разноцветных пикселов нечетна, то к последовательности добавляется нулевой байт, чтобы выровнять на границу кусочка.
Каждая строка изображения кодируется отдельно, конец строки обозначается кусочком, содержащим два нулевых байта (см. пример).
Примеры:
Закодируйте изображение размером 16x16, показанное на рисунке и содержащее пикселы семи различных цветов. В ответе введите длину результата кодирования (в байтах) .