- Кодирование для чайников, ч.1
- 0. Начало
- 1.1 Речь, мимика, жесты
- 1.2 Чередующиеся сигналы
- 1.3 Контекст
- 2. Кодирование текста
- 2.1 Блочное кодирование
- Кодирование информации
- Кодирование различных видов информации
- Кодирование текстов
- Кодирования графических данных
- Кодирование звуков
- Кодирование видео
- Кодирование числовой информации
- Введение
- Общие понятие о числовой информации
- Свойства числовой информации
- Способы кодирования числовой информации
- Кодирование целых положительных чисел
Кодирование для чайников, ч.1
Не являясь специалистом в обозначенной области я, тем не менее, прочитал много специализированной литературы для знакомства с предметом и прорываясь через тернии к звёздам набил, на начальных этапах, немало шишек. При всём изобилии информации мне не удалось найти простые статьи о кодировании как таковом, вне рамок специальной литературы (так сказать без формул и с картинками).
Статья, в первой части, является ликбезом по кодированию как таковому с примерами манипуляций с битовыми кодами, а во второй я бы хотел затронуть простейшие способы кодирования изображений.
0. Начало
Поскольку я обращаюсь к новичкам в этом вопросе, то не посчитаю зазорным обратиться к Википедии. А там, для обозначения кодирования информации, у нас есть такое определение — процесс преобразования сигнала из формы, удобной для непосредственного использования информации, в форму, удобную для передачи, хранения или автоматической переработки.
Чего мне не хватало в 70-80-е, так это в школе, пусть не на информатике, а, например, на уроках математики — базовой информации по кодированию. Дело в том, что кодированием информации каждый из нас занимается ежесекундно, постоянно и в целом — не концентрируясь на самом кодировании. То есть в быту мы это делаем постоянно. Так как это происходит?
Мимика, жесты, речь, сигналы разного уровня — табличка с надписью, знак на дороге, светофоры, и для современного мира — штрих- и бар-коды, URL, хэш-тэги.
Давайте рассмотрим некоторые более подробно.
1.1 Речь, мимика, жесты
Удивительно, но всё это — коды. С помощью них мы передаём информацию о своих действиях, ощущениях, эмоциях. Самое важное, чтобы коды были понятны всем. Например, родившись в густых лесах у Амазонки и не видя современного городского человека, можно столкнуться с проблемой непонимания кода — улыбка, как демонстрация зубов, будет воспринята как угроза, а не как выражение радости.
Следуя определению, что же происходит когда мы говорим? Мысль — как форма, удобная для непосредственного использования, преобразуется в речь — форму удобную для передачи. И, смотрите, так как у звука есть ограничение как на скорость, так и на дальность передачи, то, например, жест, в какой-то ситуации, может быть выбран для передачи той же информации, но на большее расстояние.
Но мы всё еще будем ограничены дальностью остроты нашего зрения, и тогда — человек начинает придумывать другие способы передачи и преобразования информации, например огонь или дым.
1.2 Чередующиеся сигналы
В примитивном виде кодирование чередующимися сигналами используется человечеством очень давно. В предыдущем разделе мы сказали про дым и огонь. Если между наблюдателем и источником огня ставить и убирать препятствие, то наблюдателю будет казаться, что он видит чередующиеся сигналы «включено/выключено». Меняя частоту таких включений мы можем выработать последовательность кодов, которая будет однозначно трактоваться принимающей стороной.
Наряду с сигнальными флажками на морских и речных судах, при появлении радио начали использовать код Морзе. И при всей кажущейся бинарности (представление кода двумя значениями), так как используются сигналы точка и тире, на самом деле это тернаный код, так как для разделения отдельных кодов-символов требуется пауза в передаче кода. То есть код Морзе кроме «точка-тире», что нам даёт букву «A» может звучать и так — «точка-пауза-тире» и тогда это уже две буквы «ET».
1.3 Контекст
Когда мы пользуемся компьютером, мы понимаем, что информация бывает разной — звук, видео, текст. Но в чем основные различия? И до того, как начать информацию кодировать, чтобы, например, передавать её по каналам связи, нужно понять, что из себя представляет информация в каждом конкретном случае, то есть обратить внимание на содержание. Звук — череда дискретных значений о звуковом сигнале, видео — череда кадров изображений, текст — череда символов текста. Если мы не будем учитывать контекст, а, например, будем использовать азбуку Морзе для передачи всех трёх видов информации, то если для текста такой способ может оказаться приемлемым, то для звука и видео время, затраченное на передачу например 1 секунды информации, может оказаться слишком долгим — час или даже пара недель.
2. Кодирование текста
От общего описания кодирования перейдём к практической части. Из условностей мы за константу примем то, что будем кодировать данные для персонального компьютера, где за единицу информации приняты — бит и байт. Бит, как атом информации, а байт — как условный блок размером в 8 бит.
Текст в компьютере является частью 256 символов, для каждого отводится один байт и в качестве кода могут быть использованы значения от 0 до 255. Так как данные в ПК представлены в двоичной системе счисления, то один байт (в значении ноль) равен записи 00000000, а 255 как 11111111. Чтение такого представления числа происходит справа налево, то есть один будет записано как 00000001.
Итак, символов английского алфавита 26 для верхнего и 26 для нижнего регистра, 10 цифр. Так же есть знаки препинания и другие символы, но для экспериментов мы будем использовать только прописные буквы (верхний регистр) и пробел.
Тестовая фраза «ЕХАЛ ГРЕКА ЧЕРЕЗ РЕКУ ВИДИТ ГРЕКА В РЕЧКЕ РАК СУНУЛ ГРЕКА РУКУ В РЕКУ РАК ЗА РУКУ ГРЕКУ ЦАП».
2.1 Блочное кодирование
Информация в ПК уже представлена в виде блоков по 8 бит, но мы, зная контекст, попробуем представить её в виде блоков меньшего размера. Для этого нам нужно собрать информацию о представленных символах и, на будущее, сразу подсчитаем частоту использования каждого символа:
Источник
Кодирование информации
Информация бывает разного вида, например:
— запах, вкус, звук;
— символы и знаки.
В разных отраслях науки, культуры и техники разработаны специальные формы для записи информации.
Код — это группа обозначений, которую можно использовать для отображения информации.
Процесс преобразования сообщения в комбинацию символов в соответствии с кодом называется кодированием .
- Числовой способ — с помощью чисел.
- Символьный способ — информация кодируется с помощью символов того же алфавита, что и исходящий текст.
- Графический способ — информация кодируется с помощью рисунков или значков.
Примеры кодирования информации:
— для отображения звуков русского алфавита используют буквы (АБВГДЕЁЖ…ЭЮЯ);
— для отображения чисел используют цифры (0123456789);
— звуки записывают нотами и другими символами;
— слепые используют азбуку Брайля, где буква состоит из шести элементов: дырочек и бугорков.
Надо учитывать, что не зная принципы кодирования информации, один и тот же код, можно понять по-разному, например, число 300522005 можно посчитать за число, номер телефона или за количество населения.
В компьютере кодируют введённую информацию: текст, изображения и звуки. В закодированном виде компьютер обрабатывает, хранит и пересылает информацию. Чтобы вывести информацию из компьютера в понятной для человека форме, её надо декодировать .
Методами шифрования занимается специальная наука — криптография .
В компьютере для кодирования любой информации используются только два символа: 0 и 1 , так как компьютерной технике проще реализовывать два состояния:
0 — сигнала нет (нету напряжения или не течёт ток);
1 — сигнал есть (есть напряжение или течёт ток).
Создание кода.
Одним битов можно кодировать два состояния: 0 и 1 (да и нет, чёрный и белый). При увеличении количества битов на один получится в два раза больше кодов.
Пример:
Два бита создают 4 разных кода: 00, 01, 10 и 11;
три бита создают 8 разных кодов: 000, 001, 010, 011, 100, 101, 110, и 111.
Кодирование различных видов информации
Кодирование текстов
При кодировании текста каждому символу присваивается какое-то значение, например, порядковый номер.
Первый популярный компьютерный стандарт кодирования текста имеет название ASCII (American Standart Code for Information Interchange), в котором для кодирования каждого символа используются 7 бит.
7-ю битами можно закодировать 128 символов: большие и маленькие латинские буквы, цифры, знаки препинания, а так же специальные символы, например, «§».
Стандарту создавали разные варианты, дополняя код до 8 бит (256 символов), чтобы можно было кодировать национальные символы, например, латышскую букву ā.
Но 256 символов не хватило, чтобы кодировать все символы разных алфавитов, поэтому создали новые стандарты. Один из самых популярных в наше время, это UNICODE. В котором каждый символ кодируют 2-мя байтами, получается в итоге 62536 разных кодов.
Кодирования графических данных
Почти все созданные и обработанные изображения, хранящиеся в компьютере, можно поделить на две группы:
Любое изображение созданное в растровой графике состоит их цветных точек. Эти точки называют пикселями (pixel) .
Для кодирования не цветных изображений обычно используют 256 оттенков серого, начиная от белого, заканчивая чёрным. Для кодирования всех цветов надо 8 битов (1 байт).
Для кодирования цветных изображений обычно используют три цвета: красный, зелёный и синий. Цветной тон получается при смешивании этих трёх цветов.
Размер изображения можно посчитать, умножив его ширину на длину в пикселях. Например, изображение размером 200⋅100 пикселей, занимает 60000 байт.
Кодирование звуков
Звуки появляются из-за колебаний воздуха. У звука есть две величины:
— амплитуда колебания, которая указывает на громкость звука;
— частота колебания, которая указывает на тональность звука.
Звук можно переделать в электрический сигнал, например, микрофоном.
Звук кодируют, после точного интервала времени измеряя размер сигнала и присваивая ему бинарную величину. Чем чаще проводятся эти измерения, тем лучше качество звука.
Пример:
На одном компакт диске, с объемом 700 Мб, может вместиться 80 минут звука CD качества.
Кодирование видео
Фильм состоит из кадров, которые быстро меняются. Кодированный фильм содержит информацию о размере кадра, используемых цветах, и количество кадров в секунду (обычно 30), как и способ записи звука — каждому кадру отдельно или всему фильму сразу.
Источник
Кодирование числовой информации
Введение
Если у вас возникли какие-либо вопросы при изучении темы «Кодирование числовой информации», то звоните мне и записывайтесь на первый репетиторский урок по информатике и ИКТ. На моих индивидуальных уроках мы с вами закроем текущие пробелы в ваших знаниях и прорешаем колоссальное количество всевозможных тематических упражнений.
Общие понятие о числовой информации
Думаю, что превалирующее число школьников и студентов знает фразу: «Математика – царица всех наук!». А как известно, математика очень интенсивно оперирует числами, цифрами и действиями над числами.
Первый счет появился много тысячелетий назад, так как даже в очень древние времена люди столкнулись с потребностью в счете. Его возникновение связано с желанием человека проинформировать своих соплеменников о количестве обнаруженных им объектов, предметов. По началу люди просто делили предметы по принципу один-много. То есть не было обозначения для двух, трех, десяти и более различных предметов. Их просто обозначали в количественном отношении как много.
Постепенно люди научились подключать к арифметическому счету пальцы на своих руках. С их помощью можно было считать до пяти, а если использовать обе руки, то до десяти различных предметов. Именно десятичная система счисления получило свое развитие на основе использования при счете пальцев рук.
Вернемся в настоящий временной континуум. Для современного человека знания, позволяющие считать предметы и записывать числа, являются обязательными. Арифметика изучается в школе с первого класса. Цифры, используя которые мы записываем числа, называются арабскими. Алфавит арабских цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Всего десять различных цифр или состояний.
Числа можно классифицировать на две фундаментальные группы:
Дробные или действительные числа.
Каждое число из представленных групп может быть либо:
Примеры различных десятичных чисел:
-56 — целое отрицательное число;
12.78 — действительное положительное число;
0.0 — действительное число, равное нулю;
12000 — целое положительное число.
Наша цель – понять, каким образом производится кодирование числовой информации, выраженной целыми или дробными числами, которые являются положительными, отрицательными или равными нулю. Другими словами, мы должны понять, как персональный компьютер хранит, обрабатывает, копирует числа на «своем» уровне.
Свойства числовой информации
Конечность. Информация, выраженная числовым значением, должна быть конечной. Процессор персонального компьютера не сможет обработать число, которое не является конечным или завершенным. То есть прежде чем приступить к кодированию числовой информации, процессор должен быть уверен, что данное значение записано полностью и не будет изменено пользователем.
Понятность. Если мы говорим о кодировании числовой информации, которая представлена десятичным числом, то необходимо, чтобы само число состояло из элементов, которые будут понятны исполнителю при кодировании. Исполнителем является, в строгом приближении, процессор персонального компьютера. Например, число 129 состоит из трех цифр: 1, 2 и 9. Каждое из этих цифр входит в состав арабского алфавита. Если мы представим числовую информацию в виде значения 89J1’4, то подобное значение будет некорректно обработано процессором и он выдаст исключение, то есть сгенерирует ошибку. Почему? Потому что входное число 89J1’4 состоит из элементов: 8, 9, J, 1, ‘, 4, не каждое из которых входит в состав арабского алфавита. Например, элементы J и ‘ не являются арабскими цифрами.
Приведенные два свойства являются ключевыми в алгоритмах кодирования числовой информации. Пожалуй, еще стоит отметить неосновное свойство – размер числа. Но в современном мире мощности персональных компьютеров постоянно увеличиваются и самые эффективные процессоры способы обрабатывать огромные значения.
Способы кодирования числовой информации
Сразу необходимо твердо уяснить следующее: процессор персонального компьютера взаимодействует с любыми данными исключительно на уровне цепочек, состоящих из 0 и 1. Набор нулей и единиц называют двоичным или бинарным кодом. То есть любые текстовые, символьные или числовые значения, которые понятны простому человеку, процессор преобразует в двоичный код. Следовательно, наша задача – научиться переводить числовые значения в бинарное представление, состоящее из цепочек 0 и 1.
Для полного осознания алгоритма кодирования числовой информации необходимо очень хорошо уяснить понятие «Машинное слово». Возможно вы слышали, что иногда пользователи говорят, что на их компьютерах установлена 32-х разрядная или 64-х разрядная система Microsoft Windows. Именно значение разрядности (в приведенном примере это 32 или 64) и отвечает за то, сколько бит информации будет выделено для хранения какого-либо математического значения при кодировании числовой информации. То есть, если нам дано положительное целое число 25, то при преобразовании его в бинарный код, ему будет выделено 32 или 64 бита. Также напомню, что один байт информации состоит из 8 битов.
Далее по тексту я буду работать на уровне 16-и разрядной системы. То есть любое кодирование числовой информации будет представлено с использованием машинного слова в 16 бит.
Кодирование целых положительных чисел
Это наиболее простой способ кодирования данных, так как для его реализации необходимо уметь переводить числа из десятичной системы счисления в двоичную систему. Ниже я приведу таблицу, в которой покажу кодирование целых положительных чисел различной значности.
Исходное десятичное число
Закодированное десятичное число в двоичном коде
Источник