Как составить код по информатике

Время на прочтение
8 мин

Количество просмотров 30K

Не являясь специалистом в обозначенной области я, тем не менее, прочитал много специализированной литературы для знакомства с предметом и прорываясь через тернии к звёздам набил, на начальных этапах, немало шишек. При всём изобилии информации мне не удалось найти простые статьи о кодировании как таковом, вне рамок специальной литературы (так сказать без формул и с картинками).

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

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 бит, но мы, зная контекст, попробуем представить её в виде блоков меньшего размера. Для этого нам нужно собрать информацию о представленных символах и, на будущее, сразу подсчитаем частоту использования каждого символа:

Символ

Количество

ПРОБЕЛ

18

Р

12

К

11

Е

11

У

9

А

8

Г

4

В

3

Ч

2

Л

2

И

2

З

2

Д

1

Х

1

С

1

Т

1

Ц

1

Н

1

П

1

Всего нами использовано 19 символов (включая пробел). Для хранения в памяти ПК будет затрачено 18+12+11+11+9+8+4+3+2+2+2+2+1+1+1+1+1+1+1=91 байт (91*8=728 бит).

Эти значения мы берём как константы и пробуем изменить подход к хранению блоков. Для этого мы замечаем, что из 256 кодов для символов мы используем только 19. Чтобы узнать — сколько нужно бит для хранения 19 значений мы должны посчитать LOG2(19)=4.25, так как дробное значение бита мы использовать не можем, то мы должны округлить до 5, что нам даёт максимально 32 разных значения (если бы мы захотели использовать 4 бита, то это дало бы лишь 16 значений и мы не смогли бы закодировать всю строку).

Нетрудно посчитать, что у нас получится 91*5=455 бит, то есть зная контекст и изменив способ хранения мы смогли уменьшить использование памяти ПК на 37.5%.

К сожалению такое представление информации не позволит его однозначно декодировать без хранения информации о символах и новых кодах, а добавление нового словаря увеличит размер данных. Поэтому подобные способы кодирования проявляют себя на бОльших объемах данных.

Кроме того, для хранения 19 значений мы использовали количество бит как для 32 значений, это снижает эффективность кодирования.

2.2 Коды переменной длины

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

Символ

Количество

Переменный код, бит

ПРОБЕЛ

18

0

Р

12

1

К

11

00

Е

11

01

У

9

10

А

8

11

Г

4

000

В

3

001

Ч

2

010

Л

2

011

И

2

100

З

2

101

Д

1

110

Х

1

111

С

1

0000

Т

1

0001

Ц

1

0010

Н

1

0011

П

1

0100

Для подсчёта длины закодированного сообщения мы должны сложить все произведения количества символов на длины кодов в битах и тогда получим 179 бит.

Но такой способ, хоть и позволил прилично сэкономить память, но не будет работать, потому что невозможно его раскодировать. Мы не сможем в такой ситуации определить, что означает код «111», это может быть «РРР», «РА», «АР» или «Х».

2.3 Префиксные блочные коды

Для решения проблемы предыдущего примера нам нужно использовать префиксные коды — это такой код, который при чтении можно однозначно раскодировать в нужный символ, так как он есть только у него. Помните ранее мы говорили про азбуку Морзе и там префиксом была пауза. Вот и сейчас нам нужно ввести в обращение какой-то код, который будет определять начало и/или конец конкретного значения кода.

Составим третью таблицу всё для той же строки:

Символ

Количество

Префиксный код с переменными блоками, бит

ПРОБЕЛ

18

0000

Р

12

0001

К

11

0010

Е

11

0011

У

9

0100

А

8

0101

Г

4

0110

В

3

0111

Ч

2

10001

Л

2

10010

И

2

10011

З

2

10100

Д

1

10101

Х

1

10110

С

1

10111

Т

1

11000

Ц

1

11001

Н

1

11010

П

1

11011

Особенность новых кодов в том, что первый бит мы используем для указания размера следующего за ним блока, где 0 — блок в три бита, 1 — блок в четыре бита. Нетрудно посчитать, что такой подход закодирует нашу строку в 379 бит. Ранее при блочном кодировании у нас получился результат в 455 бит.

Можно развить этот подход и префикс увеличить до 2 бит, что позволит нам создать 4 группы блоков:

Символ

Количество

Префиксный код с переменными блоками, бит

ПРОБЕЛ

18

000

Р

12

001

К

11

0100

Е

11

0101

У

9

0110

А

8

0111

Г

4

10000

В

3

10001

Ч

2

10010

Л

2

10011

И

2

10100

З

2

10101

Д

1

10110

Х

1

10111

С

1

11000

Т

1

11001

Ц

1

11010

Н

1

11011

П

1

11100

Где 00 — блок в 1 бит, 01 — в 2 бита, 10 и 11 — в 3 бита. Подсчитываем размер строки — 356 бит.

В итоге, за три модификации одного способа, мы регулярно уменьшаем размер строки, от 455 до 379, а затем до 356 бит.

2.4 Код Хаффмана

Один из популярнейших способов построения префиксных кодов. При соблюдении определенных условий позволяет получить оптимальный код для любых данных, хотя и допускает вольные модификации методов создания кодов.

Такой код гарантирует, что для каждого символа есть только одна уникальная последовательность значений битов. При этом частым символам будут назначены короткие коды.

Символ

Количество

Код

ПРОБЕЛ

18

00

Р

12

101

К

11

100

Е

11

011

У

9

010

А

8

1111

Г

4

11011

В

3

11001

Ч

2

111011

Л

2

111010

И

2

111001

З

2

111000

Д

1

1101011

Х

1

1101010

С

1

1101001

Т

1

1101000

Ц

1

1100011

Н

1

1100010

П

1

110000

Считаем результат — 328 бит.

Заметьте, хоть мы и стали использовать коды в 6 и 7 бит, но их слишком мало, чтобы повлиять на исход.

2.5.1 Строки и подстроки

До сих пор мы кодировали данные, рассматривая их как совокупность отдельных символов. Сейчас мы попробуем кодировать целыми словами.

Напомню нашу строку: «ЕХАЛ ГРЕКА ЧЕРЕЗ РЕКУ ВИДИТ ГРЕКА В РЕЧКЕ РАК СУНУЛ ГРЕКА РУКУ В РЕКУ РАК ЗА РУКУ ГРЕКУ ЦАП».

Составим таблицу повторов слов:

Слово

Количество

ПРОБЕЛ

18

ГРЕКА

3

В

2

РАК

2

РЕКУ

2

РУКУ

2

ВИДИТ

1

ГРЕКУ

1

ЕХАЛ

1

ЗА

1

РЕЧКЕ

1

СУНУЛ

1

ЦАП

1

ЧЕРЕЗ

1

Для кодирования нам нужно придумать концепцию, например — мы создаём словарь и каждому слову присваиваем индекс, пробелы игнорируем и не кодируем, но считаем, что каждое слово разделяется именно символом пробела.

Сначала формируем словарь:

Слово

Количество

Индекс

ГРЕКА

3

0

В

2

1

РАК

2

2

РЕКУ

2

3

РУКУ

2

4

ВИДИТ

1

5

ГРЕКУ

1

6

ЕХАЛ

1

7

ЗА

1

8

РЕЧКЕ

1

9

СУНУЛ

1

10

ЦАП

1

11

ЧЕРЕЗ

1

12

Таким образом наша строка кодируется в последовательность:

7, 0, 12, 3, 5, 0, 1, 9, 2, 10, 0, 4, 1, 3, 2, 8, 4, 6, 11

Это подготовительный этап, а вот то, как именно нам кодировать словарь и данные уже после подготовительного кодирования — процесс творческий. Мы пока останемся в рамках уже известных нам способов и начнём с блочного кодирования.

Индексы записываем в виде блоков по 4 бита (так можно представить индексы от 0 до 15), таких цепочек у нас будет две, одна для закодированного сообщения, а вторая для соответствия индексу и слову. Сами слова будем кодировать кодами Хаффмана, только нам еще придется задать разделитель записей в словаре, можно, например, указывать длину слова блоком, самое длинное слово у нас в 5 символов, для этого хватит 3 бита, но так же мы можем использовать код пробела, который состоит из двух бит — так и поступим. В итоге мы получаем схему хранения словаря:

Индекс / биты

Слово / биты

Конец слова / биты

0 / 4

ГРЕКА / 18

ПРОБЕЛ / 2

1 / 4

В / 5

ПРОБЕЛ / 2

2 / 4

РАК / 10

ПРОБЕЛ / 2

3 / 4

РЕКУ / 12

ПРОБЕЛ / 2

4 / 4

РУКУ / 12

ПРОБЕЛ / 2

5 / 4

ВИДИТ / 31

ПРОБЕЛ / 2

6 / 4

ГРЕКУ / 17

ПРОБЕЛ / 2

7 / 4

ЕХАЛ / 20

ПРОБЕЛ / 2

8 / 4

ЗА / 10

ПРОБЕЛ / 2

9 / 4

РЕЧКЕ / 18

ПРОБЕЛ / 2

10 / 4

СУНУЛ / 26

ПРОБЕЛ / 2

11 / 4

ЦАП / 17

ПРОБЕЛ / 2

12 / 4

ЧЕРЕЗ / 21

ПРОБЕЛ / 2

и само сообщение по 4 бита на код.

Считаем всё вместе и получаем 371 бит. При этом само сообщение у нас было закодировано в 19*4=76 бит. Но нам всё еще требуется сохранять соответствие кода Хаффмана и символа, как и во всех предыдущих случаях.

Послесловие

Надеюсь статья позволит составить общее впечатление о кодировании и покажет, что это не только военный-шифровальщик или сложный алгоритм для математических гениев.

Периодически сталкиваюсь с тем, как студенты пытаются решить задачи кодирования и просто не могут абстрагироваться, подойти творчески к этому процессу. А ведь кодирование, это как причёска или модные штаны, которые таким образом показывают наш социальный код.

UPD:

Так как редактор Хабра уничтожил написанную вторую часть, а администрация не отреагировала на моё обращение, то продолжение (написанное еще в январе) скорее всего никогда не увидит свет (две недели непрерывной работы). Писать снова, считать таблицы, писать софт для проверки и скриншотов стимулов у меня нет, как нет желания писать что-то на ресурсе, на котором несогласные с «линией партии» получают отрицательную карму.

План урока:

Способы кодировки

Двоичный код

Обработка графических изображений

Метод координат

Перевод чисел в бинарный код

Преобразование звука

Обработка текста

Примеры кодирования информации:

  • трансляция письменных сообщений с использованием русских букв (АБВГД…ЭЮЯ);
  • запись чисел цифрами (0123456789);
  • использование языка жестов при общении глухонемых людей

1img

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

Информация проходит кодирование в целях:

  • упрощения сбора исходных данных;
  • сокращения объема занимаемой памяти информационными сообщениями;
  • удобства хранения материалов;
  • эффективной обработки и обмена информацией;
  • сокрытия необходимых сведений.

История кодирования информации насчитывает сотни веков. Издавна люди использовали криптограммы (зашифрованные сообщения).

2rtr

В 19 веке с изобретением телеграфа С. Морзе был придуман и принципиально новый способ шифрования. Телеграфное сообщение передавалось по проводам последовательностью коротких и долгих сигналов (точка и тире).

3dfgdf

Вслед за ним Ж. Бодо создал основополагающий в истории современной информатики метод бинарного кодирования информации, который заключается в применении всего двух различающихся электрических сигналов. Кодирование информации в компьютере также подразумевает использование двух чисел.

Разработанная в 1948г. К. Шенноном «Теория информации и кодирования» стала основополагающей в современном кодировании данных.

4hdh

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

Способы кодировки

Проанализируем разнообразные виды информации и особенности ее кодирования.

По принципу представления все информационные сведения можно классифицировать на следующие группы:

  • графическая;
  • аудиоинформация (звуковая);
  • символьная (текстовая);
  • числовая;
  • видеоинформация.

5image

Способы кодирования информации обусловлены поставленными целями, а также имеющимися возможностями,методами ее дальнейшей обработки и сохранения. Одинаковые сообщения могут отображаться в виде картинок и условных знаков (графический способ), чисел (числовой способ) или символов (символьный способ).

6
Способы кодировки.

Соответственно происходит и классификация информации по способу кодирования:

  • символьные сообщения включают знаки дорожного движения, сигналы светофора и т.д.;
  • текстовые данные – это книги, нотные записи, различные документы;
  • всевозможные изображения (фотографии, схемы, рисунки) представляют все многообразие графической информации.

Чтобы расшифровать сообщение, отображаемое в выбранной системе кодирования информации, необходимо осуществить декодирование – процесс восстановления до исходного материала. Для успешного осуществления расшифровки необходимо знать вид кода и методы шифрования.

Самыми распространенными видами кодировок информации являются следующие:

  • преобразование текста;
  • графическая кодировка;
  • кодирование числовых данных;
  • перевод звука в бинарную последовательность чисел;
  • видеокодирование.

Различают такие методы кодирования информации как:

  • метод замены (подстановки) – знаки первоначального сообщения заменяются на соответствующие символы выбранного кодового алгоритма;
  • метод перестановки – символы оригинального текста меняются местами по определенной схеме;
  • метод гаммирования – к исходным обозначениям добавляется случайная последовательность других знаков.

Двоичный код

Самый широко используемый метод кодирования информации – двоичное кодирование. Кодирование данных двоичным кодом применяется во всех современных технологиях.

7fhf

Двоичный (бинарный) код — последовательность нолей и единиц. Это универсальный способ отображения любых информационных сведений (текстовых сообщений, картинок, звуковых и видеоматериалов). Сведения, закодированные в бинарном коде, очень удобно хранить, обрабатывать и передавать с одного электронного устройства на другое, в чем и заключается преимущества использования двоичного кодирования информации.  

Двоичное кодирование информации применяется для различных данных:

  • двоичное кодирование текстовой информации заключается в присвоении буквенным, цифровым и другим обозначениям определенного кода. Он записывается в компьютерной памяти цепочкой из нулей и единиц. Порядок кодирования алфавита в двоичный код с помощью стандарта ASCII является наглядным примером;
  • вид используемой графики влияет на то, каким образом производится двоичное кодирование графической информации;
  • двоичное кодирование звуковой информации происходит после дискретизации звуковой волны и присвоения каждому компоненту соответствующего бинарной цепочки чисел;
  • кодирование двоичным кодом видеоматериалов сочетает принципы работы со звуком и растровыми изображениями.

Обработка графических изображений

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

8fgd
Источник

         Рисунки, иллюстрации в книгах, схемы, чертежи и т.п. – примеры графических сообщений. Современные люди для работы с графическими данными все чаще применяют компьютерные технологии.

9dgdsf869922

Суть кодирования графической и звуковой информации заключается в преобразовании ее из аналогового вида в цифровой.

Кодирование графической информации – это процедура присвоения каждому компоненту изображения определенного кодового значения.

Способы кодирования графической информации подчиняются методам представления изображений (растрового или векторного):

  1. Принцип кодирования графической информации растровым способом заключается в присвоении бинарного шифра пикселям (точкам), формирующим изображение. Код содержит сведения о цветовых оттенках каждой точки. Примером служат снимки, сделанные на цифровом фотоаппарате.

10

  1. Векторная кодировка осуществляется благодаря использованию математических функций. Компонентам векторных изображений (точкам, прямым и другим геометрическим фигурам) присваивается двоичная последовательность, определяющая разнообразные параметры. Такая графика зачастую применяется в типографии.

11vmi2
Источник

Многим станет интересно: «В чем суть кодирования графической информации, представленной в виде 3D-изображений?» Дело в том, что работа с трехмерными данными сочетает способы растровой и векторной кодировки.

Кодирование и обработка графической информации различного формата имеет как свои преимущества, так и недостатки.

Метод координат

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

Метод координат на плоскости основан на изучении свойств точки в системе координат с горизонтальной осью Ox и вертикальной осью Oy. Точка будет иметь 2 координаты.

12koordinatnayaploskost1

Если через начало координат проходит 3 взаимно перпендикулярные оси X, Y и Z, то используется метод координат в пространстве. Положение точки в таком случае определяется тремя координатами.

13
Система координат в пространстве

Перевод чисел в бинарный код

Числовой способ кодирования информации, т.е. переход информационных данных в бинарную последовательность чисел широко распространен в современной компьютерной технике. Любая числовую, символьную, графическую, аудио- и видеоинформацию можно закодировать двоичными числами. Рассмотрим подробнее кодирование числовой информации.

Привычная человеку система счисления (основанная на цифрах от 0 до 9), которой мы активно пользуемся, появилась несколько сотен тысяч лет назад. Работа всей вычислительной техники организована на бинарной системе счисления. Алфавитом у нее минимальный – 0 и 1. Кодировка чисел совершается путем перехода из десятичной в двоичную систему счисления и выполнении вычислений непосредственно с бинарными числами.

14digits

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

15inf95

Принципы кодирования числовой информации, представленной в виде целых или дробных чисел (положительных, отрицательных или равных 0) отличаются по своей сути. Самый простой способ перевести целое число из десятичной в двоичную систему счисления заключается в следующем:

  1. число нужно разделить на 2;
  2. если частное больше 1, то необходимо продолжить деление до того момента, пока результат будет равен 0 или 1;
  3. записать результат последней операции и остатки от деления в обратной последовательности;
  4. полученное число и будет являться искомым кодовым значением.

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

17werИсточник

Рассмотрим подробнее самые распространенные стандарты ASCII и Unicode – то, что применяется для кодирования символьной информации во всем мире.

19img B
Фрагмент таблицы ASCII

Первоначально было установлено, что для любого знака отводится в памяти компьютера 8 бит (1 бит – это либо «0», либо «1») бинарной последовательности. Первая таблица кодировки ASCII (переводится как «американский кодовый стандарт обмена сообщениями») содержала 256 символов. Ограниченная численность закодированных знаков, затрудняющая межнациональный обмен данными, привела к необходимости создания стандарта Unicode, основанного на ASCII. Эта международная система кодировки содержит 65536 символов. Закодировать огромное количество всевозможных обозначений стало возможным благодаря использованию 16-битного символьного кодирования.

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

Выбирать способ кодирования информации – графический, числовой или символьный необходимо отталкиваясь от цели кодировки. Например, число «21» можно ввести в компьютерную память цифрами или буквами «двадцать один», слово «ЗИМА» можно передать русскими буквами «зима» или латинскими «ZIMA», штрих-код товара передается изображением и цифрами.

Преобразование звука

Компьютерные технологии успешно внедряются в различные сферы деятельности, включая кодирование и обработку звуковой информации. С физической точки зрения, звук – это аналоговый сплошной сигнал. Процесс его перевода в ряд электрических импульсов называется кодированием звуковой информации.

Задачи, которые необходимо решить для успешной оцифровки сигнала:

  1. дискретизировать (разделить аудиоданные на элементарные участки путем измерения колебаний воздуха через одинаковые интервалы времени);
  2. оцифровать (присвоить каждому элементу числовой код).

19pof
 Преобразование звука: а) аналоговый сигнал; б)дискретный сигнал.

Различают следующие методы кодирования звуковой информации:

  • Метод FM. Суть его сводится к разделению звука аналого-цифровыми преобразователями (АЦП) на одинаковые простейшие элементы, которые в дальнейшем кодируются бинарным кодом. Несовершенство метода FM проявляется в низком качестве звукозаписи из-за потери некоторого объема исходного звукового сообщения.
  • Метод Wave-Table (таблично-волновой) позволяет получить высококачественный продукт, поскольку разработанные таблицы сэмплов (образцов «живых» звуков) позволяют выразить бинарными числами разнообразные параметры поступающего сигнала.

20a mv2

Обработка текста

Текст – осмысленный порядок знаков. С использованием компьютера кодирование и обработка текстовой информации (набор, редактирование, обмен и сохранение письменного текста) значительно упростилось.

Кодирование текстовой информации – присвоение любому символу текста кода из кодировочной системы. Различают следующие стандарты кодировки:

  1. ASCII – первая международная система кодировки, содержащая коды на 256 знаков.
  2. Unicode – расширенный стандарт ASCII, превышающий ее размером в 256 раз.
  3. КОИ-8, СР1251, СР866, ISO – русские таблицы кодировки букв. При этом следует понимать, что документ, закодированный одним стандартом, не будет читаться в другом.

В задачах на кодирование текстовой информации часто встречаются следующие понятия:

  • мощность алфавита;
  • единицы измерения памяти (биты и байты).

Например, мощность алфавита ASCII составляет 256 символов. При этом один знак занимает 8 бит (или 1 байт) памяти, а Unicode – 35536 символов и 16 бит (или 2 байта) соответственно.

Важно знать язык программирования, но также важно понимать, как пишутся программы. То есть, понимать принцип их написания, а не зубрить одно решение и воспроизводить его с разными данными. В этой статье даём алгоритм, который поможет писать программы для ЕГЭ по информатике, и тогда нетипичные задания экзамена не загонят вас в безвыходное положение.

Разница между решением задачи и написанием кода

Код — это инструмент. Он решает вопросы, которые вы задаёте, а именно: забирает данные, их обрабатывает и выдаёт число. 

Основная задача на ЕГЭ по информатике — «научить» код делать то, что нужно вам.


ЕГЭ по информатике — единственный экзамен, который сдают на компьютерах. Как проходит КЕГЭ и на что стоит обратить внимание во время подготовки, рассказали в
этой статье.

Как превратить решение задачи в код?

Совет 1: напишите последовательные шаги

Необходимо подумать о задаче как о какой-то математической абстракции.

Рассмотрим 17 задачу в ЕГЭ по информатике.

Алгоритм решения этого задания:

  • создаём список;
  • проходимся по списку;
  • сравниваем соседние элементы.

То есть сначала вы должны понять, что требуется для решения задачи, а затем перевести всё в алгоритм — последовательность действий.


Дополнить подготовку к ЕГЭ по информатике можно не только учебниками, но и онлайн-ресурсами. В
нашей подборке собрали полезные мобильные приложения, сайты и Youtube-каналы.

Совет 2: схематично изобразите решение

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

Советуем этот метод для решения ЕГЭ по информатике: сначала изобразите абстракции, а потом преобразите их в последовательность шагов.

Полное решение можно не получать сразу. На ЕГЭ спрашивают только число, которое является ответом к задаче. А значит, код может не выдавать моментально правильный ответ. Вы можете попробовать разные способы, сделать выводы и, в итоге, прийти к верному решению.

В этой статье Коля Касперский поделился советами, как составить грамотный план подготовки к ЕГЭ по информатике.

Совет 3: протестируйте решение

После того как был написан скелет программы, и вы стали понимать, что делают отдельные её части, необходимо протестировать код. Предлагаем воспользоваться трассировкой.

Трассировка — процесс пошагового выполнения программы. Он позволяет быстрее находить ошибки.


Прежде чем начинать решать задачи на программирование, необходимо ознакомиться с актуальной демоверсией ЕГЭ. В
этой статье Коля Касперский разобрал новые задания и рассказал о изменениях в структуре экзамена.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter. Мы обязательно поправим!

Информация, которую мы получаем из окружающего мира, поступает к нам в виде условных знаков или сигналов самой разной физической природы.

Это свет, звук, запах, касания; это слова, значки, символы, жесты и движения.

Для того чтобы произошла передача информации, мы должны не только принять сигнал от кого-то, но и расшифровать его.

Так, услышав звонок будильника, человек понимает, что пришло время просыпаться;

телефонный звонок — кому-то нужно с нами поговорить;

школьный звонок сообщает учащимся о долгожданной перемене.

Для правильного понятия разных сигналов требуется разработка кода или кодирование.

Код — это система условных знаков для представления информации.

Кодирование — это перевод информации в удобную для передачи, обработки или хранения
форму с помощью некоторого кода.

Обратное преобразование называется декодированием.

Декодирование — это процесс восстановления содержания закодированной информации.

Существует три основных способа кодирования информации:

  • Числовой способ — с помощью чисел.
  • Символьный способ — информация кодируется с помощью символов того же
    алфавита, что и исходящий текст.
  • Графический способ — информация кодируется с помощью рисунков или
    значков.

Множество кодов очень прочно вошло в нашу жизнь. Так,

  • числовая информация кодируется арабскими, римскими цифрами и др.

slide_13 - Copy.jpg

  • для общения и письма мы используем код — русский язык, в Китае — китайский и т.д.

slide_13.jpg

  • с помощью нотных знаков кодируется любое музыкальное произведение, а на экране проигрывателя вы можете
    увидеть громкий или тихий звук, закодированный с помощью графика.

1353840707_61983221_33493521_music2.jpg

  • часто бывает так, что информацию надо сжать и представить в краткой, но понятной форме. Тогда
    применяют пиктограммы, например, на двери магазина, на столбах в парке, на дороге. 

1_clip_image010.jpg

 Для передачи информации, людьми были придуманы специальные коды, к ним относятся:

  • азбука Брайля,
  • азбука Морзе,
  • семафорная азбука и др.

Методами шифрования занимается специальная наука — криптография.

Источники:

Босова Л.Л., Босова А.Ю. Информатика. Учебник для 5 класса. — М.: БИНОМ. Лаборатория знаний, 2013 — 46 с.

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

Определение 1

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

Системы кодирования информации

Определения 2 — 5

Существуют разные системы кодирования информации — это комплекс правил и закономерностей, обозначения данных в виде определенного кода.

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

Двоичный код — это вариант передачи, хранения, представления информации с применением 2 вариантов знаков — 0 и 1, который применяется в вычислительной технике.

Двоичное кодирование информации возможно с помощью кода различной длины, при этом число знаков в коде зависит от представленной закодированной информации.

Информация в двоичной системе кодируется с помощью бита.

Бит — это символ кодирования информации, цифра в двоичной системе: 0 или 1.

Один бит может закодировать только два варианта значений: 0 или 1.

Два бита могут быть кодом уже для четырех вариантов: 01, 10, 00, 11.

Три бита могут кодировать 8 значений: 001, 010, 100, 101, 111, 110, 011.

И так далее. Увеличение количества битов соответственно увеличивает количество вариантов значений, которые можно закодировать.

Виды и способы кодирования информации

Современная компьютерная техника может обрабатывать графическую, числовую, текстовую, звуковую информацию, видеоматериалы. Компьютер может хранить и обрабатывать только один вариант представления данных — числовой. Техническому устройству легче распознавать только 2 варианта сигнала, поэтому вся информация, которая вносится в компьютер должна переводиться в цифровой вид.

Выделяют следующие средства и способы кодирования информации:

  • числовой — это кодирование данных при помощи чисел
  • графический способ — это запись информации на устройстве при помощи значков, рисунков, линий
  • символьный — данные кодируются при помощи символов, которые использованы для написания исходного текста.

К основным видам кодирования данных относят:

  1. Кодирование цвета.
  2. Кодировка текстовой информации.
  3. Кодировка числовых данных.
  4. Кодировка графики.
  5. Кодирование видеозаписи.
  6. Кодирование звуковой информации.

Кодирование цвета

Процесс кодирования информации в цветном изображении с использованием двоичной системы происходит следующим образом. Изначально фото разделяется на огромное число мелких цветных точек — пикселей. Затем цвет каждого пикселя при помощи бинарного кода записывается на устройстве.

Например, если размер фото 325×325, то оно представится в виде матрицы в 105625 байт, которое получим путем умножения числа точек по вертикали на число точек по горизонтали.

Раскладка изображения на точки возможна при помощи любого современного фото- или видео- прибора. Например, если в описании камеры указано, что она на 12 Mega Pixels, то это означает, что камера раскладывает полученное изображение на 12 миллионов пикселей для записи в двоичной системе кодирования информации. Чем больше количество пикселей, на которое прибор делит фото для передачи данных, тем более реалистичное, яркое, четкое изображение получится после раскодировки, при воспроизведении на экране или после печати фото.

При этом следует отметить, что качество кодирования изображения с помощью бинарного кода определяется количеством точек, на которое оно бьется, а также цветовым разнообразием пикселей при кодировке. Способов записи цвета при двоичном кодировании несколько, самый популярный вариант — это система RGB (по первым буквам цветов на английском языке: Red — красный, Green — зеленый, Blue — синий). При смешивании этих 3 цветов в разных соотношениях образуются различные цвета и оттенки при кодировке изображений. Алгоритм записи RGB состоит в том, что каждый пиксель фиксируется в двоичном коде с указанием количества красного, зеленого и синего цвета в его составе.

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

Полученное изображение называется растровым, что значит изображение, полученное с помощью сетки, мозаики пикселей на экране, бумаге, другом устройстве. Эта техника формирования изображения самая распространенная.

Кодирование текстовой информации

Любой вариант текстовой информации представлен с помощью последовательности определенных символов: цифр, букв, схем, диаграмм, таблиц, знаков математических действий и т.п.

В компьютерной технике текстовое кодирование информации и ее хранение осуществляется с использованием двоичного кода. Для этого каждому символу присваивается определенное неотрицательное число, или код символа, которое записывается в память вычислительной аппаратуры с помощью двоичного кода. При этом соотношение между символами и знаками их кодировки называется системой кодировки. В компьютерной технике применяется система кодировки ASCII. В данной системе применяется для кодирования одного символа 7 бит, с помощью которых можно закодировать 128 символов, но этого было недостаточно.

При разработке программного обеспечения ПК был создан 8-битный стандарт кодировки текстов, что дало возможность увеличить диапазон кодирования информации до 256 символов. При этом первые 128 символов соответствуют стандартам ASCII, а остальная половина имеет свои специфику, связанную с языковыми региональными особенностями.

Но и 256 символов не хватило, поэтому разрабатывали новые стандарты, так появился стандарт UNICODE, при кодировке в этой системе каждому символу соответствует 2 байтами, в итоге получается 62536 разных кодировок.

Кодировка числовых данных

Для кодирования чисел имеет значение цель, с которой проводится кодирование: арифметические вычисления или для ввода данных. Все числовые данные кодируются при помощи бинарного кода, состоящего из 0 и 1, эти символы имеют название — биты.

Этот метод кодирования самый популярный, он легко может быть реализован, прост в технологическом плане: если сигнал есть — значит 1, отсутствие сигнала — это 0.

Единственный недостаток бинарной системы кодирования — это длинный код, но с технической точки зрения, это удобнее, так как длинный код из простых однотипных компонентов легче передать, чем короткий из сложных и запутанных символов.

Целые числа кодируются при помощи перевода их в другую систему счисления, с использованием 80-разрядного кодирования.

Кодирование графической информации

Для кодировки изображения, кроме растровой техники, широко применяется векторная техника передачи изображения.

Изображения, полученные с помощью векторной графики, представляют собой не точки, а формируются их графических элементов: линий, окружностей, фигур и т.п.

Определение 6

Векторная техника передачи изображения — это графика с применением чертежных элементов, она создается при помощи компьютерной техники, активно применяется в создании дизайн-проектов, графическом оформлении и создании макетов, схем, рекламных изображений, плакатов и т. п.

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

Например, для кодирования с применением двоичного кода круга с помощью векторной техники, ПК достаточно закодировать вариант объекта (круг), центр объекта, радиус, толщину, цвет линий, вариант заливки. А для кодирования этого круга при помощи растровой графики необходимо было бы шифровать в двоичной системе каждый пиксель изображения, для чего необходимо значительно больше места в памяти устройства.

Следует отметить, что векторная графика не дает возможность записывать в двоичном коде фото близкие к реальному изображению, поэтому вся фото- видео аппаратура работает только при помощи растровой графической системы.

Нет времени решать самому?

Наши эксперты помогут!

Кодирование звуковой информации

Любой звуковой сигнал, который слышит человек, это колебание воздуха. Оно имеет 2 основных показателя: амплитуда колебаний и частота колебаний.

Определения 7 — 8

Амплитуда колебаний — это величина, которая показывает отклонение состояния воздуха от начальной формы при каждом колебании. Этот показатель мы называем громкость звука.

Частота колебаний — это количество отклонений воздуха от исходного состояния, которое происходит за определенный период времени. Эта величина для человека как высота, тональность звукового сигнала.

Например, гром — это низкочастотный звук, амплитуда колебания при этом имеет большую величину. А жужжание мухи — это высокочастотный звуковой сигнал, с небольшой амплитудой звука.

Компьютерная техника работает со звуковым сигналом по определенному алгоритму. Микрофон преобразует колебания воздуха в соответствующие электрические колебания. В ПК имеется звуковая карта, именно она преобразовывает электрические колебания при помощи двоичной системы в код, который фиксируется на записывающем устройстве. То есть программное обеспечение компьютерной техники превращает звук в последовательность 0 и 1. При воспроизведении получившегося кода, происходит обратный процесс: код считывается с устройства, превращается в электрические колебания, а они поступают к динамикам или в наушники. Акустическая система динамиков и наушником воспроизводят колебания воздуха, мы слышим звуковой сигнал, по своим функциям это полная противоположность микрофону.

В основе двоичной кодировки звукового сигнала лежит разделение звуковой волны на небольшие участки. Звуковая карта ПК или смартфона делит звуковой сигнал на мелкие участки, кодирует каждый из них в двоичный код — это процесс называется дискретизация. Чем более мелкое деление звуковой волны на части, чем больше частота дискретизации, тем более точно воспроизводится звуковой сигнал, звукозапись имеет более высокий уровень качества.

Определения 9 — 10

Глубина кодирования звука — это число битов, которые применяются для кодирования каждого отрезка звуковой волны при дискретизации. Современные звуковые карты имеют 16-битную глубину кодировки. Качество звукозаписи имеет зависимость от величины битов, используемых компьютерной техникой для кодировки каждого участка звука, который получился после дискретизации.

Частота дискретизации — это количество изменений уровня звука в определенный промежуток времени.

Кодирование видеозаписи

Каждая видеозапись состоит из 2 элементов: звукового и графического. Кодирование с помощью двоичного кода звукового сигнала происходит аналогично шифровке звуковой информации. Алгоритм кодирования видеоизображения схож с процессом обработки с применением растровой графики.

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

Определение 11

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

Понравилась статья? Поделить с друзьями:
  • Как найти триплет ирнк
  • Как в ворде найти текст курсивом
  • Как найти панель инструментов в windows 10
  • Как найти паспортные данные по инн физического
  • Как найти какой приговор вынесен