В задачах из КЕГЭ мы кодируем: изображение, текст или звук.
В некоторых заданиях так и пишут: в файл последовательно пишутся коды пикселей… Да, в этом случае мы говорим об изображении как о наборе пикселей. Расположены они в плоскости. У этой плоскости есть размер. К примеру 1440х900 — все мы его видели! тоесть тут у нас 1440*900=1296000 пикселей. А каждый пиксель — это какой-то цвет.
Никакой магии. Просто очень много точек разного цвета. Но причём тут биты? А притом, что цветов много — а пиксель один. Этот пиксель — это код цвета. Код — последовательность бит. Как физически сопоставляется этот код цвету — это в вузе расскажут. Мы об этом можем мыслить как о какой-то таблице, где просто записаны пары «код» — «цвет».
Основная задача — это понять, сколько бит надо, чтобы закодировать N цветов. Ни о какой частоте или вероятности речи не идёт — значит, формула Шеннона спокойно спит в сторонке. Используем log2(N), округляем вверх.
Допустим, сколько потребуется памяти под одну картинку 1440*900 при использовании 256 цветов?
Log2(256) = 8 бит — это один пиксель (эта величина, кстати, ещё называется глубиной кодирования).
1440*900*8 = 10368000 — количество бит.
10368000/8 = 1296000 — количество байт.
129600/2^10 = 126.5625 — количество Кбайт и так далее…
В реальной жизни всё немножечко иначе 🙂 А в ЕГЭ вообще своя атмосфера~
Сегодня займёмся звуком. Как обычно, сделаю оговорку, что в реальной жизни всё несколько иначе, НО: Звук распространяется в виде волны.
Волна эта колеблется как-то и в принципе, все мы видели какой-то такой двухмерный график (см. картинку).
Как это можно оцифровать? Есть такая штука — дискретизация.
Дискретный — это отдельный, антоним слову «непрерывный». Волна распространяется во времени. На точки надо делить, значит, тоже по времени. Я могу брать 1 точку в секунду, но это скорее всего, бред — мы ведь ничего не услышим.
Мы эту «Волну» разобьём на огромную кучу точек. Например, на 32000 точки в секунду
Оп-па «В секунду» — это что, скорость, что — ли? Почти! Это частота. Частота, с которой мы будем делать измерения уровня звука. 32 КГц = 32000 раз в секунду (32000 точек на единицу времени).
То есть, закодированный аудиофайл — это последовательность таких точек. Эти точки на физическом уровне — ни что иное, как двоичные коды. Каждый код обозначает какой-то уровень звука. Чем больше бит мы тратим на код — тем точнее значение звука, тем он «чище».
Количество бит в каждой такой точке тоже называется «глубиной» кодирования
Типичное задание выглядит так:
Есть стерео запись (двух-канальная) с частотой дискретизации 32КГц и глубиной кодирования 32 бит. Сколько Мбайт занимает эта запись, если её продолжительность 2 минуты?
Каналы какие-то… Да, иногда для записи использую запись нескольких отдельных аудиопотоков. Как-будто левый и правый наушник, но 2 канала — это не предел. В общем, надо просто домножить на 2
В итоге формула выглядит так: I = F*R*K*T
F — частота;
R — глубина;
K —кол-во каналов;
T — время;
Для нашей задачи: I = 32*10^3*32*2*120 = 245,760,000 бит (никогда так не считай), чтобы дать ответ в Мбайтах надо было разделить это дело на 2^23
I = 32*10^3*32*2*120 /2^23=29.2969 — в целом 30-ти хватит 🙂
Авторизуйтесь, чтобы оставить комментарий.