Объём изображения, звукозаписи и передаваемых данных
Почему объём зависит от числа элементов и длины их кодов, как работают проценты сжатия и откуда берётся целочисленное округление.
Цифровое изображение и звукозапись хранятся как последовательности кодов. Объём зависит от того, сколько элементов закодировано и сколько бит выделено каждому. Передача файла добавляет ещё одну величину: сколько бит канал успевает передать за секунду.
Бит, код и число возможных значений
Бит принимает одно из двух значений: 0 или 1. Два бита дают четыре цепочки: 00,01,10,11. При добавлении ещё одного бита каждая цепочка получает два продолжения, поэтому число вариантов удваивается. Из b бит получается 2^b различных кодов.
Для C возможных значений при одинаковой длине кодов нужна наименьшая целая глубина b, для которой 2^b\geq C. Например, пяти цветам двух бит не хватает: кодов всего четыре. Трёх бит достаточно, хотя три из восьми возможных кодов останутся неиспользованными. Объём всё равно рассчитывается по трём битам на пиксель.
Байт содержит 8 бит. В рассматриваемых учебных задачах Кбайт содержит 1024 байта, а Мбайт — 1024 Кбайт. Единицы частоты устроены иначе: 1\ \text{кГц}=1000\ \text{Гц}. Перевод приставки нельзя механически переносить с объёма памяти на частоту.
Почему объём изображения равен произведению
Растр — прямоугольная сетка пикселей. При ширине W и высоте H она содержит WH точек. Если код цвета каждой точки занимает b бит, суммарный объём кодов равен V=WHb бит.
Собственный учебный пример: сетка 4\times3 из пяти допустимых цветов требует 4\cdot3\cdot3=36 бит. Если весь результат хранится в целом числе байтов, нужны 5 байт: четыре байта вмещают только 32 бита. При плотной записи кодов округляется общий объём; выделять целый байт каждому трёхбитному пикселю оснований нет.
Формула описывает именно массив кодов пикселей. Заголовок и таблица палитры, если они учитываются условием, добавляются отдельно. Сжатый файл также нельзя без оговорок считать равным исходному массиву.
Почему в формуле звука четыре множителя
При дискретизации звук заменяется последовательностью измерений сигнала через равные интервалы времени. Частота f показывает число измерений за секунду в одном канале. За t секунд получается ft измерений.
Каждое значение записывается кодом из b бит. Поэтому один канал занимает ftb бит, а c каналов — V=fbtc бит. Моно содержит один канал, стерео — два, квадро — четыре. Формула предполагает отсутствие сжатия и не включает служебную часть файла.
Частота и глубина кодирования отвечают за разные стороны записи: первая задаёт число измерений во времени, вторая — число доступных кодов одного измерения. Удвоение любой из них удваивает объём при остальных неизменных параметрах. В задачах слово «разрешение» звукозаписи может обозначать именно глубину кодирования.
Сжатие и повторное кодирование
Сжатие уменьшает объём представления данных. Из одних размеров растра или частоты звука степень сжатия не определяется: в задаче должна быть дана дополнительная связь. При уменьшении исходного объёма V_0 на p процентов остаётся:
V_s=V_0\left(1-\frac p{100}\right).
Фраза «оригинал на p процентов больше сжатого файла» имеет другую базу: V_0=V_s(1+p/100). Например, 100 Кбайт после уменьшения на 20% превращаются в 80 Кбайт. Разница 20 Кбайт составляет уже 25% от 80 Кбайт: исходный файл больше сжатого на 25%, а не на 20%.
При изменении размеров изображения или параметров звукозаписи заново меняется число кодируемых элементов либо длина их кодов. Для одного и того же звукового фрагмента длительность одинакова, поэтому её множитель сокращается в отношении объёмов:
\frac{V_2}{V_1}=\frac{f_2}{f_1}\cdot\frac{b_2}{b_1}\cdot\frac{c_2}{c_1}.
Индексы 1 и 2 обозначают первую и вторую записи. Неизменные множители сокращаются; если длительности различаются, необходимо дополнительно учесть t_2/t_1. Служебные данные и сжатие могут нарушить простую пропорцию и требуют отдельного учёта.
Передача и целые ответы
Скорость v в бит/с показывает количество бит за секунду. За T секунд передаётся V=vT бит, откуда T=V/v. Здесь T — время передачи, а t в формуле звука — время звучания. Их равенство не предполагается.
Для целочисленного ответа сначала записывается ограничение. Если q одинаковых файлов объёма V должны поместиться в лимит L, то qV\leq L. Отсюда берётся наибольшее целое, не превышающее L/V. Если же требуется выделить достаточно целых единиц памяти, выбирается наименьшее целое, не меньшее точного объёма. Запрос «целая часть» или «ближайшее целое» — самостоятельное указание о форме ответа.
Почему допустимая глубина цвета округляется вниз, а память для записи — вверх? Как одновременно учесть изменение параметров звука и скорости канала? Эти вопросы применяются к условиям банка в статье «Объём изображений и звука, хранение и передача».