Ответ: максимум 32768 цветов в палитре.
Пошаговое решение
- Найдем максимально допустимый размер передаваемого файла после сжатия.
- Скорость передачи: 164000 бит/с.
- Время: 30 с.
- Доступно бит: 164000 × 30 = 4 920 000 бит для сжатого файла.
- Коэффициент сжатия: несжатый/сжатый = 4 ⇒ несжатый размер может быть в 4 раза больше сжатого.
- Значит максимально допустимый несжатый размер: 4 × 4 920 000 = 19 680 000 бит.
- Параметры изображения
- Разрешение изображения: 1280 × 960 = 1 228 800 пикселей.
- Изображение палитровано, палитра содержит N цветов.
- Стоит считать, что палитра хранится как 24 бита на цвет (8 бит на канал, RGB). Это обычное 24-битное цветовое представление.
- Переменная глубина кодирования цвета пикселя: b = ceil(log2 N) бит на пиксель (индекс цвета в палитре).
Тогда несжатый размер файла состоит из:
- данных пикселей: P × b бит, где P = 1 228 800 пикселей,
- данных палитры: 24 × N бит.
Итого: S_u = P × b + 24 × N, при b = ceil(log2 N).
Ограничение по размеру несжатого файла Мы должны выполнить S_u ≤ 19 680 000.
Разбиение по диапазонам b (поскольку b = ceil(log2 N) константен в диапазонах N)
- Пусть N ∈ (2^(k-1), 2^k], тогда b = k.
- Рассчитаем для k = 15 и k = 16, так как S_u растёт быстро при переходе к большему k.
a) Для k = 15 (N ∈ (16384, 32768])
- b = 15
- S_u = P × 15 + 24 × N = 1 228 800 × 15 + 24N = 18 432 000 + 24N
- Ограничение: 18 432 000 + 24N ≤ 19 680 000
- 24N ≤ 1 248 000 ⇒ N ≤ 52 000
- В этом диапазоне максимальное возможное N равно 32768, так что все N в этом диапазоне удовлетворяют условию. Пример: N = 32768 даёт S_u = 18 432 000 + 786 432 = 19 218 432.
b) Для k = 16 (N ∈ (32768, 65536])
- b = 16
- S_u = P × 16 + 24 × N = 1 228 800 × 16 + 24N = 19 660 800 + 24N
- Ограничение: 19 660 800 + 24N ≤ 19 680 000
- 24N ≤ 19 200 ⇒ N ≤ 800
- Но N обязан быть > 32768 в этом диапазоне, значит таких N нет. Следовательно, никаких допустимых N в этом диапазоне нет.
Вывод Максимальное N удовлетворяющее условию достигается на k = 15, в диапазоне N ≤ 32768, и его максимальное значение равно 32768.
Проверка времени передачи для N = 32768
- S_u при N = 32768: 18 432 000 + 24 × 32768 = 18 432 000 + 786 432 = 19 218 432 бит.
- Сжатый размер: S_c = S_u / 4 = 4 804 608 бит.
- Время передачи: 4 804 608 / 164 000 ≈ 29.30 секунд. Это укладывается в лимит в 30 секунд.
Итого: максимум цветов в палитре — 32768 цветов (при предположении 24-битной глубины палитры и что пиксель кодируется индексом палитры).