СообЧа > База Знаний > Программирование

Вопрос

Вот все говорят что вся инфа в двоичном коде, я понимаю что например в картинке или звуке куча едениц и нулей, а вот как это все преобразуется в картинку или звук?

Ответ

Очень просто — посмотрите на картинку

0000000 если присмотреться -

0111110 то можно увидеть 11111

0110000 букву 'Е' 11

0111110 11111

0110000 11

0111110 11111

0000000

Наши органы чувств (зрение и слух) обладают двумя важными качествами. Во-первых, если что-то состоит из очень маленьких кусочков — то это что-то нам кажется целым. Например, мы сами состоит из атомов, однако сами же этого и не замечаем. Во-вторых, мы умеем автоматически соединять фрагменты в единое целое. Например, даже плохо пропечатанный или полустертый текст мы можем прочесть. И хотя внешний наш мир — непрерывен, мы можем сохранять последовательность маленьких кусочков. И восстанавливая звук/изображение из этих маленких кусочков — мы либо не замечаем промежутка между ними, либо наш мозг услужливо заполняет паузы предыдущим кусочком. Если картинка черно-белая, то ее легко превратить в двоичный вид.

Рисуем сетку, и если в клеточки боле половины черного, то ставим в клеточку 1, а в остальные 0. И получаем двоичный вид картинки. Если картинка цветная, то нам нужно как-то сохранить цвет. Мы можем каждому цвету приписать число. Цвета можно нумеровать по-разному. (RGB — по вкладу каждого из 3 основных цветов). И тогда в каждую клеточку мы место 0/1 запишем число. А любое число в последовательность 0 и 1

записывается очень легко:

1= 0001 5= 0101 9= 1001 13= 1101

2= 0010 6= 0110 10= 1010 14= 1110

3= 0011 7= 0111 11= 1011 15= 1111

4= 0100 8= 1000 12= 1100 и т.д.

Даже текст, который Вы сейчас читаете — записан с помощью 0 и 1. Каждой букве соответствует фиксированное число. Это называют кодировкой. Возьмем слово «звук».

В кодировке Win-1251 — это последовательность чисел 231, 226, 243, 234

KOI8-R 218, 215, 213, 203

При чем в этих двух кодировках под букву выделено 8 позиций (бит). С помощью последовательности из 8 ноликов и единичек мы можем считать только до 2 в 8-ой степени (=256). А значит использовать сразу не больше 256 букв. И такие кодировки (т.е таблицы соотношения между символом и его порядковым номером) называются 8-битными. Существуют кодировки использующие 16-бит и больше (Одна из них — UNICODE — может быть слышали.)

Однако в таких кодировках текст занимает места в 2 и более раз больше. Аналогичная ситуация с цветом — посмотрите «Свойства экрана» — Правая кнопка мыши на пустом рабочем окне — Вкладыш «Параметры» — там Вы можете указать 16-, 24-, 32- разряда, а над ними 256 цветов (это 8-разрядов) для паллитры. Это то же самое, что и кодировка, но для цветов — сколько различных цветов Вы можете видеть и использовать на своем экране.

Со звуком примерно то же самое. Мы сначала его превращаем в последовательность чисел, а числа уже пишем с помощью ноликов и единиц. Причем — если у нас нотная музыка — то мы нумеруем ноты, октавы и инструменты — а при воспроизведении наша звуковая карта используем закодированные в ней инструменты, наиболее близкие к записанному. Шумы или, если хотите, «живой» звук имеет две чисто физические характеристики — амплитуду и частоту. Вот последовательность этих величин фактически и хранятся в wav формате. Поэтому он такой «жирный». Проигрыватель читает файл с данными и выдает на колонки через звуковую карту сигнал с этой амплитудой и частотой.

С картинкой то же самой — я когда программирую — говорю видеокарте — точку (пиксель) в такой-то позиции (10-ая сверху, 5- слева) в такой-то цвет окрасит. И видеокарта посылает сигнал с соответствующими характеристиками монитору.

Надеюсь, Вам стало чуточку понятнее :-)

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация