Кодирование для чайников, ч.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 бит, но мы, зная контекст, попробуем представить её в виде блоков меньшего размера. Для этого нам нужно собрать информацию о представленных символах и, на будущее, сразу подсчитаем частоту использования каждого символа:
Источник
§7. Кодирование информации — Ответы рабочая тетрадь Босов 5 класс
79. Заполните таблицу.
80. Запишите цифрами числа, встречающиеся в тексте.
Миллиард – очень большое число. За тридцать лет с первого января тысяча девятьсот семидесятого года по тридцать первое декабря тысяча девятьсот девяносто девятого года прошло десять тысяч девятьсот пятьдесят семь суток, что составляет двести шестьдесят две тысячи девятьсот шестьдесят восемь часов или девятьсот сорок шесть миллионов шестьсот восемьдесят четыре тысячи восемьсот секунд. Значит, за тридцать лет не пройдёт и миллиарда секунд.
1000000000, 30, 1, 1970, 31, 1999, 10957, 262968, 946684800, 30, 1000000000.
81. Представьте в виде арифмитических выражений следующие утверждения.
а) Если к трём прибавить четыре, потом умножить полученное число на четыре и разделить на разность восьми и шести, то в результате получится четырнадцать.
((4 + 3) * 4) / (8 — 6) = 14
б) Разность двадцати семи сотых и девяти сотых равна восемнадцати сотым.
82. Заполните таблицу, расположенную слева, и запишите содержащуюся в ней информацию в виде арифметичских выражений в таблице справа.
83. Дана кодовая таблица флажковой азбуки.
Старший помощник Лом сдает экзамен капитану Врунгелю. Помогите ему прочитать следующие слова и попытайтесь объяснить их значения.
84. Что прочитал Лом на флагах встречной шхуны?
85. Старший помощник Лом оказался старательным учеником. Чтобы порадовать капитана Врунгеля, он выучил морскую семафорную азбуку, в которой каждая буква кодируется определнным положением рук с флажками.
Расшифруйте подаваемые Ломом сигналы.
86. Дана кодовая таблица азбуки Морзе.
Расшифруйте следующие записи.
87. Зашифруйте с помощью азбуки Морзе.
88. Поставьте каждой букве в соответствие ее порядковый номер в алфавите (заполните пустые клетки).
Зная, что каждому числу соответствует буква алфавита с таким же порядковым номером, расшифруйте следующие сообщения.
а) 12-21-12-21-26-12-1 12-21-12-21-26-16-15-12-21 19-26-10-13-1 12-1-17-32-26-16-15.
Кукушка кукушонку сшила капюшон.
б) 20-12-7-20 20-12-1-25 20-12-1-15-10 15-1 17-13-1-20-12-10 20-1-15-6.
Ткёт ткач ткани на платки Тане.
89. Известно, что некто расположил все буквы алфавита по кругу и заменил каждую букву исходного сообщения на следующую после нее. Декодируйте полученные шифровки:
а) об оёу й тфеб оёу. — На нет и суда нет.
б) лпоёч — еёмф гёоёч. — Конец — делу венец.
90. Декодируйте текст.
21 * 12-16-4-16 * 19-10-13-30-15-29-6 * 14-29-26-24-29, 20-16-20 * 17-16-2-6-5-10-20 * 16-5-15-16-4-16. 12-20-16 * 19-10-13-7-15 * 9-15-1-15-10-33-14-10, 20-16-20 * 17-16-2-6-5-10-20 * 20-29-19-33-25-10.
Декодированный текст: У кого сильные мышцы, тот победит одного. Кто силен знаниями, тот победит тысячи.
Правило кодирования установите по ключу.
Ключ: 12-16-5 — расшифровывается как система условных знаков для представления информации. (Код)
91. Декодируйте текст.
21-19-22-6-16-17 * 4 * 22-26-7-16-11-11 — 14-7-5-13-17 * 4 * 3-17-33.
Ответ: Трудно в учении — легко в бою.
Правило кодирования установите по ключу.
Ключ: 11-16-21-7-19-16-7-21 — расшифровывается как самый современный информационный канал. (Интернет)
92. Чтобы узнать зашифрованное слово, возьмите только первые слоги из данных слов:
а) колос, мебель, таракан — Комета
б) молоко, нерест, таракан — Монета
в) кора, лото, боксер — Колобок
г) баран, рана, банщик — Барабан
д) монета, лошадь, корова — Молоко
93. Чтобы узнать зашифрованное слово, возьмите только вторые слоги из данных слов:
а) соловей, потолок — Лото
б) змея, рама — Яма
в) пуговица, молоток, лава — Голова
г) укор, бузина, тина — Корзина
д) поворот, пороша, канава — Ворона
94. Чтобы узнать зашифрованное слово, возьмите только последние слоги из данных слов:
а) мебель, ружьё — Бельё
б) соломка, пора, мель — Карамель
в) лиса, письмо, перелёт — Самолёт
г) пуловер, пальто, полёт — Вертолёт
д) молоко, реле, лассо — Колесо
95. Кодирование текста осуществляется перестановкой букв в каждом слове по одному и тому же правилу. Восстановите зашифрованную информацию и сформулируйте правило кодирования.
96. Известно, что некто для шифрования сообщений после каждой гласной буквы вставляет букву «А», а после согласной — букву «Т». Декодируйте зашифрованную информацию.
97. Придумайте собственным способ кодирования букв русского алфавита: графический (с помощью особых картинок или знаков), числовой (с помощью чисел) или символьный (с помощью тех же букв).
А-1 Б-8 В-15 Г-22 Д-28 Е-2 Ё-9 Ж-16 З-23 И-29 Й-3 К-10 Л-17 М-24 Н-30 О-4 П-11 Р-18 С-25 Т-31 У-5 Ф-12 Х-19 Ц-26 Ч-32 Ш-6 Щ-13 Ъ-20 Ы-27 Ь-33 Э-7 Ю-14 Я-21
С помощью собственного кода закодируйте слово «УСПЕХ».
98. Впишите подходящие по смыслу слова.
Чтобы рубить дрова, нужен топор (14 2 3 2 7)
а чтобы полить огород — лейка (10 4 5 1 6)
Рыбаки сделали во льду прорубь (3 7 2 7 8 9 11)
и стали ловить рыбу.
Самый колючий зверь в лесу — это ёж (12 13)
Разгадайте код и прочитайте с его помощью пословицу:
1, 2, 3, 4, 5, 1, 6 — Копейка
7, 8, 9, 10, 11 — рубль
9, 4, 7, 4, 13, 12, 14 — бережёт.
99. На координатной плоскости отметьте и пронумеруйте точки, координаты которых приведены ниже. Соедините точки в заданной последовательности. Помните, первое число — координата по оси ОХ, второе — по оси OY. После проверки правильности выполнения задания можно раскрасить полученную картинку цветными карандашами.
100. Разгадайте кроссворд «Кодирование информации».
По горизонтали. 3. Французский математик, в честь которого названа прямоугольная система координат. — Декарт 6. Способ кодирования информации с помощью чисел. — Числовой 8. Способ кодирования информации с помощью символов того же алфавита, что и исходный текст. — Символьный 9. Представление информации с помощью некоторого кода. — Кодирование 10. Игра, в которой фигуры перемещаются по клеткам с координатами. — Шахматы
По вертикали. 1. Один из удобных способов представления графической информации с помощью чисел. — Метод координат 2. Способ кодирования информации с помощью рисунков или значков. — Графический 4. Французский педагог, придумавший специальный способ представления информации для слепых. — Брайль 5. Система условных знаков для представления информации. — Код 7. Графическая форма представления информации (множественное число). — Схемы
101. Если «жало» — это «двор», а «хна» — это «зев», то чему равна «ель»? А также — «мель» и «щель»? (Для ответа на вопросы посмотрите внимательно на клавиатуру.)
Необходимо на клавиатуре сместить на 1 клавишу влево, чтобы получить необходимый результат.
Ель — кот
Мель — скот
Щель — шкот
Источник