Изображение состоит из 5 строк и 4 столбцов, то есть всего 5 * 4 = 20 пикселей.
Каждый пиксель имеет один из двух цветов, что означает, что для его хранения требуется 1 бит (2^1 = 2).
Таким образом, для хранения изображения требуется 20 пикселей * 1 бит/пиксель = 20 бит.
Чтобы перевести биты в байты, нужно разделить на 8 (так как 1 байт = 8 бит): 20 бит / 8 = 2.5 байта.
Так как нельзя хранить часть байта, округляем до целого числа в большую сторону, то есть 3 байта.
Алгоритм RLE (Run-Length Encoding) кодирует последовательности одинаковых пикселей, заменяя их на пару: (количество повторений, цвет).
В данном изображении можно выделить следующие последовательности:
Применим RLE к каждой строке:
Всего: 4 + 3 + 4 + 2 + 2 = 15 пар.
Для каждой пары нужно хранить количество (сколько раз повторяется цвет) и цвет. Количество можно хранить в 1 байте, цвет - в 1 бите (синий или фиолетовый). Поскольку цвет всего 1 бит, можно объединить 8 цветов в 1 байт. Однако количество повторений точно должно быть в одном байте.
Допустим, мы храним количество в 1 байте, тогда 15 пар * 1 байт = 15 байт на количество. Плюс 15 бит на цвет. 15 бит / 8 = 1.875 байта. Округляем до 2 байтов.
Итого: 15 байт + 2 байта = 17 байт.
Ответ: Размер изображения при хранении цвета каждого пикселя: 3 байта. Размер изображения при сжатии алгоритмом RLE: 17 байт.