Курс№7. Кодирование картинок и звука0%
Теория · номер 7 из 27

Кодирование картинок и звука

Считаем, сколько места занимает картинка или звук, и наоборот, что влезет в заданный объём. Кода здесь нет. Всё решается руками через степени двойки, и большие числа сокращаются почти сами.

6 разделов~35 минут1 первичный балл
  1. 1Что проверяет номер
  2. 2Формулы и единицы
  3. 3Раскладываем на степени двойки
  4. 4Восемь типов задач
  5. 5Ловушки перед экзаменом
  6. 6Домашка
Раздел 1 из 6

Что проверяет номер

Дан файл, картинка или звук, и его параметры. Вопрос бывает трёх видов:

Посчитать объём

Сколько Кбайт займёт голосовое сообщение или пакет фотографий.

Найти параметр

Сколько цветов можно взять, сколько секунд влезет, сколько картинок поместится.

Сравнить

Во сколько раз изменится размер файла, если поменять параметры записи.

Калькулятор на экзамене не нужен. Числа в условиях подобраны так, что почти всё сокращается, если разложить их на степени двойки.

Раздел 2 из 6

Формулы и единицы

Формул всего три. Картинка и звук дают результат в битах, а третья связывает биты на пиксель с числом цветов.

Что считаемФормулаЧто значат буквы
КартинкаI = x · y · ix, y это размеры в пикселях, i это бит на пиксель
ЗвукI = k · ν · i · tk это каналы (моно 1, стерео 2, квадро 4), ν это частота в Гц, i это глубина в битах, t это время в секундах
ЦветаN = 2ii это наименьшее целое, при котором 2i ≥ N

Единицы переводим так:

ЕдиницаСколько этоВ степенях
1 байт8 бит2³ бит
1 Кбайт1024 байта2¹⁰ байт, 2¹³ бит
1 Мбайт1024 Кбайт2²⁰ байт, 2²³ бит
1 кГц1000 Гцне степень двойки
Не перепутай

В Кбайте 1024 байта, а в кГц 1000 Гц. Приставка похожа, а множитель разный.

Раздел 3 из 6

Раскладываем на степени двойки

Вот шпаргалка, которую стоит знать наизусть:

СтепеньЧислоСтепеньЧисло
2³82⁸256
2⁴162⁹512
2⁵322¹⁰1024
2⁶642¹¹2048
2⁷1282¹²4096

Способ всегда один:

  1. Каждое число записываем как степень двойки и остаток: 24 = 2³ · 3, 60 = 2² · 15.
  2. Перемножаем степени, складывая показатели: 2¹¹ · 2⁹ = 2²⁰.
  3. В самом конце переводим единицы. Из бит в байты делим на 2³, из байт в Кбайт на 2¹⁰, из Кбайт в Мбайт ещё на 2¹⁰.

Приём с числом 125

Частота обычно дана в тысячах, а 1000 = 2³ · 125. Поэтому 8000 = 2⁶ · 125, 16 000 = 2⁷ · 125, 32 000 = 2⁸ · 125. Двойки сокращаются с единицами, а 125 остаётся.

Пример из настоящей задачи: стерео, 64 000 Гц, 8 бит, 2 минуты 18 секунд, это 138 секунд. Сколько Кбайт?

I = 2 · 64 000 · 8 · 138 бит. Делим на 8 и получаем байты: 2 · 64 000 · 138 = 128 000 · 138. Теперь делим на 1024: 128 000 / 1024 = 125. Ответ 125 · 138 = 17 250 Кбайт. Столбик понадобился только один раз.

Раздел 4 из 6

Восемь типов задач

1. Найти размер картинки

Изображение 2048 × 512 пикселей, 16 цветов. Сколько Кбайт?

16 цветов это i = 4, потому что 2⁴ = 16. Получаем I = 2¹¹ · 2⁹ · 2² = 2²² бит = 2¹⁹ байт = 2⁹ Кбайт = 512 Кбайт.

Попробуй самучебная задача

Изображение 1024 × 512 пикселей, 64 цвета. Сколько Кбайт оно занимает?

2. Сколько бит на пиксель

300 цветов: 2⁸ = 256 мало, 2⁹ = 512 хватает, значит i = 9. Округляем только вверх: на 8 битах все 300 цветов не закодировать.

Палитра может быть задана степенью прямо в условии. 16 384 = 2¹⁴, значит 14 бит. 2³⁰ цветов это 30 бит.

3. Наибольшее число цветов под лимит

Картинка 1024 × 1024 должна занимать не более 640 Кбайт. Наибольшее число цветов?

Пикселей 2²⁰, лимит 640 · 2¹³ бит. На один пиксель приходится 640 · 2¹³ / 2²⁰ = 640 / 128 = 5 бит. Цветов 2⁵ = 32.

4. Сколько секунд звука влезет

Моно, 8 кГц, 16 бит, памяти 2 Мбайт. Сколько целых секунд?

Память 2 · 2²³ = 2²⁴ бит. За секунду расходуется 8000 · 16 = 2⁶ · 125 · 2⁴ = 2¹⁰ · 125 бит. Значит, t = 2²⁴ / (2¹⁰ · 125) = 16 384 / 125 = 131,072. Округляем вниз: 131 с, больше не влезет.

Попробуй самучебная задача

Моно, 16 кГц, 16 бит, памяти 1 Мбайт. Сколько целых секунд звука поместится?

5. Время передачи

Файл 3 Мбайт, канал 2¹⁹ бит/с. Сколько секунд?

I = 3 · 2²³ бит, t = 3 · 2²³ / 2¹⁹ = 3 · 2⁴ = 48 с.

6. Как изменился размер

Звук был моно, 16 бит. Стал стерео, 12 бит, а частоту увеличили в 2 раза. Во сколько раз изменился размер?

Берём только множители: каналы × 2, частота × 2, глубина × 12/16 = 3/4. Итого 2 · 2 · 3/4 = 3. Всё, что не менялось, сокращается, поэтому чисел в условии может и не быть.

Попробуй самучебная задача

Звук был записан в стерео с глубиной 8 бит. Его перезаписали в квадро с глубиной 16 бит, а частоту уменьшили в 2 раза. Во сколько раз вырос размер файла?

7. Звук с «некрасивыми» числами

Стерео, 16 кГц, 24 бита, 1 минута. Сколько это?

I = 2 · 16 000 · 24 · 60 = 46 080 000 бит = 5 760 000 байт = 5625 Кбайт ≈ 5,49 Мбайт. Минуту сразу перевели в секунды. Если просят целое число Мбайт, смотри в условие, в какую сторону округлять.

8. Сколько картинок влезет

Одна картинка 640 × 480, 256 цветов: 640 · 480 · 8 бит = 300 Кбайт. В 5 Мбайт, это 5120 Кбайт, влезет 5120 / 300 = 17,07. Округляем вниз: 17 картинок.

Как это выглядит в настоящих задачах

Чаще всего встречается звук. Главное там прочитать, что просят сделать с дробью:

В условииЧто делаемПример
«наименьшее количество Кбайт, чтобы сохранить»Вверх, иначе файл не поместится7656,25 → 7657
«укажите целую часть»Вниз, просто отбрасываем дробь9,84 → 9
«максимально возможный», лимитВниз, иначе лимит превысим861,42 → 861

Ещё два вида собираются из того же:

Экономия трафика. Считаем размер одного снимка до и после сжатия, берём разность и умножаем на число снимков. Пример: снимок 1024 × 1024, 24 бита, сжимают до 512 × 512, 16 бит, всего 100 снимков. На одном снимке экономия 2²⁰ · 24 − 2¹⁸ · 16 = 2¹⁸ · 80 бит. На всех 2¹⁸ · 8000 бит, это 2¹⁸ · 1000 байт, то есть 250 Мбайт.

Заголовки. В файле есть не только звук, но и заголовок. Считаем данные, вычитаем их из лимита, остаток делим на число заголовков. Пример: 10 треков общей длительностью 20 минут, стерео, 16 000 Гц, 16 бит, лимит 74 Мбайт. Данные: 2 · 16 000 · 16 · 1200 бит = 75 000 Кбайт. Лимит 75 776 Кбайт. Остаётся 776 Кбайт на 10 заголовков, то есть 77,6 на один. Округляем вниз: 77 Кбайт.

Раздел 5 из 6

Ловушки перед экзаменом

Всё, на чём теряют балл в №7, одним списком.

ЛовушкаКак не попасться
Округление не в ту сторонуБит на пиксель и «чтобы сохранить» вверх. Секунды, картинки, лимит и «целая часть» вниз
Округлили посреди счётаДроби держим до конца, единицы переводим и округляем в самом конце
1000 и 1024кГц это 1000, Кбайт это 1024
Кбит и КбайтФормулы дают биты. Не забудь разделить на 8
Забыли каналыСтерео × 2, квадро × 4
Минуты и часыСразу в секунды: 2 минуты 18 секунд это 138 с
СжатиеЕсли файл сжат на 25%, размер умножаем на 0,75
Раздел 6 из 6

Домашка

Семь задач с настоящих экзаменов. Решай на листочке, через степени двойки, и вписывай ответ.

Перед счётом ответь себе на два вопроса:

Где теряют балл в этих задачах

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

Ещё задачи этого вида лежат в разделе «Задания», №7.

Примеры и задачи «Попробуй сам» учебные, в домашке задачи с настоящих экзаменов.