Каков минимальный объем памяти (в байтах) для сохранения пятисекундного видео в оттенках серого с частотой кадров 14 кадров в секунду, при котором размер каждого кадра составляет 480x320? Каждый пиксель в этом видео должен иметь возможность хранить как минимум 6 различных статусов.

Глядя на похожие вопросы на доске, я предположил, что расчет будет примерно таким:

480 * 320 * 8 бит * 14 кадров в секунду * 5 секунд = 8601600

8601600/8 = 10752000 байт

Правильный ответ: 4032000, но я не понимаю, как это было рассчитано, и что подразумевается под 6 статусами?

1 ответ1

0

Итак, давайте сделаем это шаг за шагом. Вы уже определили наиболее важную информацию, которая:

  • Разрешение 480х320
  • 14 кадров в секунду
  • Время записи 5 секунд
  • 6 разных статусов

Это просто простое умножение этих чисел. Единственный улов в том, что вы не можете просто использовать 6 для количества статуй, но вам нужно что-то с этим сделать. Текст говорит вам, что эта 6 отвечает на каждый пиксель в одном кадре для этой записи. Таким образом, это (скорее всего) глубина цвета. Глубина цвета изображения обычно задается как число битов, которое используется для "кодирования" цвета. Было бы довольно обременительно записывать названия цветов каждого пикселя (и занимало бы намного больше места).

Так что вам нужно преобразовать это десятичное число 6 в его двоичный эквивалент. Существуют различные подходы к тому, как это сделать, но конечным результатом всегда должно быть двоичное представление 110. Имея эту информацию, вы знаете, что минимальное количество бит для представления десятичного числа 6 в двоичном виде равно 3.

Если бы это был пример IRL, вам пришлось бы учитывать структуры данных и определения. Так, например, для растрового изображения это выглядит так, как будто вам нужно как минимум 4 бита. Поскольку в вашем упражнении не указана какая-либо дополнительная информация, человек, который придумал этот вопрос, вероятно, хочет, чтобы вы использовали 3 бита в качестве глубины цвета.

Теперь, когда у нас есть все детали, это просто:

color depth * resolution * frames per second * seconds
3 bit * (480 pixels * 320 pixels) * 14 * 5 = 32 256 000 bit
32 256 000 bit / 8 bit = 4 032 000 bytes

Это упражнение проверяет всякий раз, когда вы понимаете технические термины и способны преобразовать десятичные числа в двоичные.

Для развлечения вы можете предположить, что вам понадобится 105 различных видов серого. В этом случае вы получите 9187 килобайт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .