Разное

Примеры кодирования: Кодирование информации — Физика, Информатика и ИКТ

Содержание

Примеры кодирования | Практическая информатика

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

Кодирование чисел

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

Множество целых чисел, представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера области памяти, используемой для размещения чисел. В k-разрядной ячейке может храниться 2k различных значений целых чисел.

Чтобы получить внутреннее представление целого положительного числа N, хранящегося в k-разрядном машинном слове, необходимо:

1)  перевести число N в двоичную систему счисления;
2)  полученный результат дополнить слева незначащими нулями до k разрядов.


Пример

Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке.

Переведем число в двоичную систему: 160710 = 110010001112. Внутреннее представление этого числа в ячейке будет следующим: 0000 0110 0100 0111.

Для записи внутреннего представления целого отрицательного числа (-N) необходимо:

1)  получить внутреннее представление положительного числа N;
2)  обратный код этого числа заменой 0 на 1 и 1 на 0;
3)  полученному числу прибавить 1.


Пример

Получим внутреннее представление целого отрицательного числа -1607. Воспользуемся результатом предыдущего примера и запишем внутреннее представление положительного числа 1607: 0000 0110 0100 0111. Инвертированием получим обратный код: 1111 1001 1011 1000. Добавим единицу: 1111 1001 1011 1001 — это и есть внутреннее двоичное представление числа -1607.

Формат с плавающей точкой использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления n в некоторой целой степени p, которую называют порядком: R = m * n p.

Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства:

12.345 = 0.0012345 x 104 = 1234.5 x 10-2 = 0.12345 x 102

Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию: 0.1p <= m < 1p. Иначе говоря, мантисса меньше 1 и первая значащая цифра — не ноль (p — основание системы счисления).

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

Кодирование текста

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

Для представления текстовой информации в компьютере чаще всего используется алфавит мощностью 256 символов. Один символ из такого алфавита несет 8 бит информации, т. к. 28 = 256. Но 8 бит составляют один байт, следовательно, двоичный код каждого символа занимает 1 байт памяти ЭВМ.

Все символы такого алфавита пронумерованы от 0 до 255, а каждому номеру соответствует 8-разрядный двоичный код от 00000000 до 11111111. Этот код является порядковым номером символа в двоичной системе счисления.

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

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

Стандартными в этой таблице являются только первые 128 символов, т. е. символы с номерами от нуля (двоичный код 00000000) до 127 (01111111). Сюда входят буквы латинского алфавита, цифры, знаки препинания, скобки и некоторые другие символы. Остальные 128 кодов, начиная со 128 (двоичный код 10000000) и кончая 255 (11111111), используются для кодировки букв национальных алфавитов, символов псевдографики и научных символов. О кодировании символов русского алфавита рассказывается в главе «Обработка документов».

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

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

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

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

Пиксел на цветном дисплее может иметь различную окраску, поэтому одного бита на пиксел недостаточно. Для кодирования 4-цветного изображения требуются два бита на пиксел, поскольку два бита могут принимать 4 различных состояния. Может использоваться, например, такой вариант кодировки цветов: 00 — черный, 10 — зеленый, 01 — красный, 11 — коричневый.

На RGB-мониторах все разнообразие цветов получается сочетанием базовых цветов — красного (Red), зеленого (Green), синего (Blue), из которых можно получить 8 основных комбинаций:

RGBцвет
0  0  0  черный
0  0  1  синий
0  1  0  зеленый
0  1  1  голубой
RGBцвет
1  0  0  красный
1  0  1  розовый
1  1  0  коричневый
1  1  1  белый

Разумеется, если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, порождающих разнообразные оттенки, увеличивается. Количество различных цветов — К и количество битов для их кодировки — N связаны между собой простой формулой: 2N = К.

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

Объекты векторного изображения, в отличии от растровой графики, могут изменять свои размеры без потери качества (при увеличении растрового изображения увеличивается зернистость). Подробнее о графических форматах рассказывается в разделе «Графика на компьютере».

Кодирование звука

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

Поступим следующим образом. Будем измерять напряжение через равные промежутки времени и записывать полученные значения в память компьютера. Этот процесс называется дискретизацией (или оцифровкой), а устройство, выполняющее его — аналого-цифровым преобразователем (АЦП).

Для того чтобы воспроизвести закодированный таким образом звук, нужно выполнить обратное преобразование (для него служит цифро-аналоговый преобразователь — ЦАП), а затем сгладить получившийся ступенчатый сигнал.

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

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

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

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

Заметим, что существуют и другие, чисто компьютерные, форматы записи музыки. Среди них следует отметить формат MP3, позволяющий с очень большим качеством и степенью сжатия кодировать музыку. При этом вместо 18—20 музыкальных композиций на стандартный компакт-диск (CDROM) помещается около 200. Одна песня занимает примерно 3,5 Mb, что позволяет пользователям сети Интернет легко обмениваться музыкальными композициями.

Кодирование информации

Общие понятия

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

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

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

Кодом называют правило отображения одного набора знаков в другом.

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

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

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

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

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

Бит — это одна двоичная цифра $0$ или $1$. Одним битом можно закодировать два значения: $1$ или $0$. Двумя битами можно закодировать уже четыре значения: $00$, $01$, $10$, $11$. Тремя битами кодируются $8$ разных значений. Добавление одного бита удваивает количество значений, которое можно закодировать.

Рисунок 1.

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

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

Готовые работы на аналогичную тему

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

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

Текстовая информация, как и любая другая, хранится в памяти компьютера в двоичном виде. Для этого каждому ставится в соответствии некоторое неотрицательное число, называемое кодом символа, и это число записывается в память ЭВМ в двоичном виде. Конкретное соотношение между символами и их кодами называется системой кодировки. В персональных компьютерах обычно используется система кодировки ASCII (American Standard Code for Informational Interchange – Американский стандартный код для информационного обмена).

Замечание 1

Разработчики программного обеспечения создали собственные $8$-битные стандарты кодировки текста. За счет дополнительного бита диапазон кодирования в них был расширен до $256$ символов. Чтобы не было путаницы, первые $128$ символов в таких кодировках, как правило, соответствуют стандарту ASCII. Оставшиеся $128$ — реализуют региональные языковые особенности.

Замечание 2

Восьмибитными кодировками, распространенными в нашей стране, являются KOI8, UTF8, Windows-1251 и некоторые другие.

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

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

Пример 1

Если говорят, что размер изображения составляет, например, $512 х 512$ точек, это значит, что оно представляет собой матрицу, сформированную из $262144$ пикселей (количество пикселей по вертикали, умноженное на количество пикселей по горизонтали).

Пример 2

Прибором, «разбивающим» изображения на пиксели, является любая современная фотокамера (в том числе веб-камера, камера телефона) или сканер. И если в характеристиках камеры значится, например, «$10$ Mega Pixels», значит количество пикселей, на которые эта камера разбивает изображение для записи в двоичном коде, — 10 миллионов. Чем на большее количество пикселей разделено изображение, тем реалистичнее выглядит фотография в декодированном виде (на мониторе или после распечатывания).

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

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

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

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

Цветовое разнообразие пикселей, из которых состоит изображение, называется глубиной цвета.

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

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

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

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

Пример 3

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

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

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

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

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

Замечание 3

Целые числа кодируются просто переводом чисел из одной системы счисления в другую. Для кодирования действительных чисел используют $80$-разрядное кодирование. При этом число преобразуют в стандартный вид.

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

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

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

Пример 4

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

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

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

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

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

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

Видеозапись состоит из двух компонентов: звукового и графического.

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

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

Что такое кодирование и декодирование? Примеры. Способы кодирования и декодирования информации числовой, текстовой и графической

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

Что такое кодирование информации?

Кодирование данных – это обязательный этап в процессе сбора и обработки информации.

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

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

Что такое декодирование информации?

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

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

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

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

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

Однако мало знать, что такое кодирование и декодирование, необходимо еще понимать, как располагаются данные в компьютере. К примеру, для хранения одного символа двоичного кода электронно-вычислительная машина выделяет 1 байт, то есть 8 бит. Эта ячейка может принимать только два значения: 0 и 1. Получается, что один байт позволяет зашифровать 256 разных символов, ведь именно такое количество комбинаций можно составить. Эти сочетания и являются ключевой частью таблицы ASCII. К примеру, буква S кодируется как 01010011. Когда вы нажимаете ее на клавиатуре, происходит кодирование и декодирование данных, и мы получаем ожидаемый результат на экране.

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

Кодирование чисел

В двоичной системе счисления, которую активно используют компьютеры, встречаются лишь две цифры – 0 и 1.

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

Примеры кодирования и декодирования чисел

Предлагаем рассмотреть 2 способа кодировки числа 45. Если эта цифра встречается в пределах текстового фрагмента, то каждая ее составляющая будет закодирована, согласно таблице стандартов ASCII, 8 битами. Четверка превратится в 01000011, а пятерка – в 01010011.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Преимущества двоичного кодирования

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

Недостатки двоичного кодирования

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

Заключение

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

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

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

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

Ключевые слова:

• код

• кодирование

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

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

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

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

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

Множество кодов очень прочно вошло в нашу жизнь. Так, для общения в нашей стране используется код — русский язык. Код используется для оценки знаний в школе (число 5 — код отличных знаний, 4 — код хороших знаний, 3 — удовлетворительных, 2 — плохих).

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

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

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

Свой код из шести цифр (почтовый индекс) имеет каждый населённый пункт Российской Федерации. Его следует писать на конверте в специально отведённом для этого месте (рис. 16). По коду можно узнать, куда отправлять письмо. Например, код города Москвы и коды всех населённых пунктов Московской области начинаются с цифры 1.

В середине XIX века французский педагог Луи Брайль придумал специальный способ представления информации для слепых. «Буквы» этого кода выдавливаются на листе плотной бумаги. Одна буква занимает два столбика, в каждом из которых может быть выдавлено от одной до трёх точек (рис. 17). Проводя пальцами по выступам, незрячие люди различают буквы и могут читать.

В памяти компьютера информация представлена в двоичном коде в виде цепочек нулей и единиц. Каждому символу, вводимому с клавиатуры, соответствует уникальная цепочка из восьми 0 и 1. Например, буква «Q» имеет двоичный код 01010001, а цифра «7» — 00110111.

Пример 1. Составим простейшую кодовую таблицу, поставив в соответствие каждой букве её порядковый номер в алфавите. Тогда скороговорка



ОТ ТОПОТА КОПЫТ
ПЫЛЬ ПО ПОЛЮ ЛЕТИТ

в закодированном виде будет выглядеть так:



16 20 20 16 17 16 20 1 12 16 17 29 20
17 29 13 30 17 16 17 16 13 32 13 6 20 10 20

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




АЛ ЦВЕТ МИЛ НА ВЕСЬ СВЕТ
примет вид:
БМ ЧГЁУ НКМ ОБ ГЁТЭ ТГЁУ

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

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

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

Люди выработали множество форм представления информации. К ним относятся: разговорные языки (русский, английский, немецкий — всего более 2000 языков), язык мимики и жестов, язык рисунков и чертежей, научные языки (например, язык математики), языки искусства (музыка, живопись, скульптура), специальные языки (азбука Брайля, азбука Морзе, флажковая азбука).

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

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

1) графический — с помощью рисунков или значков;

2) числовой — с помощью чисел;

3) символьный — с помощью символов того же алфавита, что и исходный текст.

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

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

САМОЕ ГЛАВНОЕ

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

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

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

Выбор способа кодирования зависит от цели, ради которой оно осуществляется.

Чтобы декодировать закодированное сообщение, необходимо знать код.

Вопросы и задания

1. Что вы понимаете под кодированием информации?

2. С какой целью люди кодируют информацию?

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

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

4. Какие знаки используются для представления информации при:

а) записи арифметических выражений;

б) записи мелодий;

в) записи звуков речи;

г) оформлении календаря погоды;

д) управлении движением транспорта?

5. Зависит ли форма представления информации от носителя информации (бумага, камень, электронный носитель информации)?

6. Выразите словами смысл следующего арифметического выражения:




1+2+3+4+5= 5
—————-
10-7    

7. Мальчик заменил каждую букву своего имени её номером в алфавите. Получилось 18 21 19 13 1 15. Как зовут мальчика?

8. Зная, что каждая буква исходного текста заменяется третьей после неё буквой в алфавите русского языка, который считается записанным по кругу (после «Я» идёт «А»), декодируйте следующие сообщения:

а) жуцёг льл, г ргмжиыя — дзузёл;

б) фхгуюм жуцё оцъыз рсеюш жецш.

9. Каждой букве алфавита поставлена в соответствие пара чисел: первое число — номер столбца, а второе — номер строки следующей кодовой таблицы:





123456789101112
1клмноьъыэюя<пробел>
2прстуфхчцшщ,
3абвгдеёжзий.

Пользуясь данной таблицей, расшифруйте головоломку: (1,1), (2.2), (1,3), (3,2), (10,3), (3,3), (12,1), (4,2), (5,1), (4,2), (12,2), (12,1), (1,1), (4,2), (5,1), (12,1), (1,1), (2,2), (1,3), (3,2), (10,3), (3.3) , (5,1), (12,1), (1,2), (5,1), (3,2), (4,2), (5,2), (1,2), (1,3), (6.3), (4,2), (12,3).

Электронное приложение к уроку


Презентации, плакаты, текстовые файлыВернуться к материалам урокаРесурсы ЕК ЦОР

Cкачать материалы урока

Кодирование и шифрование — в чём разница?

👉 Эта ста­тья — для рас­ши­ре­ния кру­го­зо­ра. Если нуж­на прак­ти­ка, захо­ди­те в раз­дел «Это баг», там вагон прак­ти­ки.

«Дан­ные зако­ди­ро­ва­ны» и «дан­ные зашиф­ро­ва­ны» — это не одно и то же. После этой ста­тьи вы тоже смо­же­те раз­ли­чать эти два под­хо­да к дан­ным.

Кодирование 

Коди­ро­ва­ние — это пред­став­ле­ние дан­ных в каком-то виде, с кото­рым удоб­но рабо­тать чело­ве­ку или ком­пью­те­ру. 

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

Напри­мер, древ­ний чело­век видит вол­ка, это для него дан­ные. Ему нуж­но пере­дать дан­ные сво­е­му пле­ме­ни. Он про­из­но­сит какой-то звук, кото­рый у дру­гих его сопле­мен­ни­ков вызы­ва­ет ассо­ци­а­ции с поня­ти­ем «волк» или «опас­ность». Все моби­ли­зу­ют­ся. В нашем слу­чае звук — это был спо­соб коди­ро­ва­ния.

Сло­во «волк» и сопут­ству­ю­щий ему звук — это вид коди­ро­ва­ния. Сам волк может не исполь­зо­вать такую коди­ров­ку

Для сле­ду­ю­ще­го при­ме­ра возь­мём бук­ву «а». Её мож­но про­из­не­сти как звук — это зна­чит, что мы зако­ди­ро­ва­ли эту бук­ву в виде зву­ко­вой вол­ны. Так­же эту бук­ву мож­но напи­сать про­пи­сью или в печат­ном виде. Всё это при­ме­ры коди­ро­ва­ния бук­вы «а», удоб­ные для чело­ве­ка. 

В ком­пью­те­ре бук­ва «а» коди­ру­ет­ся по-разному, в зави­си­мо­сти от выбран­ной коди­ров­ки внут­ри опе­ра­ци­он­ной систе­мы:

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

Сломанная кодировка

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

Похо­жая ситу­а­ция в ком­пью­те­ре. Допу­стим, вы уви­де­ли такой текст: 

рТЙ­ЧЕФ, ЬФП ЦХТОБМ лПД!

Здесь напи­са­но «При­вет, это жур­нал Код!», толь­ко в коди­ров­ке КОИ-8, кото­рую интер­пре­ти­ро­ва­ли через коди­ров­ку CP-1251. Ком­пью­тер не знал, какая здесь долж­на быть коди­ров­ка, поэто­му взял стан­дарт­ную для него CP-1251, посмот­рел сим­во­лы по таб­ли­це и выдал то, что полу­чи­лось. Если бы ком­пью­тер знал, что для этой коди­ров­ки нуж­на дру­гая таб­ли­ца, мы бы всё про­чи­та­ли пра­виль­но с пер­во­го раза.

Ещё кодирование

Коди­ро­ва­ни­ем поль­зу­ет­ся весь мир на про­тя­же­нии всей сво­ей исто­рии:

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

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

Шифрование 

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

Зада­ча шиф­ро­ва­ния — пре­вра­тить дан­ные, кото­рые могут про­чи­тать все, в дан­ные, кото­рые может про­чи­тать толь­ко тот, у кого есть спе­ци­аль­ное зна­ние (ключ без­опас­но­сти, сер­ти­фи­кат, пароль или рас­шиф­ро­воч­ная мат­ри­ца). Если паро­ля нет, то дан­ные внешне пред­став­ля­ют из себя пол­ную бес­смыс­ли­цу, напри­мер:

d73(5n-24^gj2*3=sdn%4^e

Здесь зашиф­ро­ва­на та же самая фра­за — «При­вет, это жур­нал Код!». Но не зная клю­ча для рас­шиф­ров­ки и прин­ци­па шиф­ро­ва­ния, вы не смо­же­те её про­чи­тать. 

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

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

Шиф­ро­ва­ние быва­ет ана­ло­го­вое и ком­пью­тер­ное, про­стое и слож­ное, взла­мы­ва­е­мое и нет. Обо всём этом ещё рас­ска­жем, под­пи­сы­вай­тесь.

Приложение 1. Примеры кодирования информации — МегаЛекции


Кодирование информации

 

Цель: Изучение информационной модели канала связи и эффективного кодирования информации.

 

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

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

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

Упрощенная схема передачи информации по дискретному каналу связи представлена на рисунке 1.

Рис.1. Схема дискретного канала передачи информации

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

Кодер преобразует алфавит с объемом n символов в алфавит {a} объема m, удобный для передачи по каналу (чаще всего {a} — двоичный алфавит, включающий символы «1» и «0»). Символы, представляющие закодированное сообщение, образуют вторичный алфавит.

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

Основание кода (модуль) m определяется числом различимых символов в алфавите.

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


Все другие коды имеют алфавит, состоящий из двух («0» и «1») и более символов. Коды с основанием m = 2 называются двоичными или бинарным, с основанием m = 3 – троичными и т. д. При использовании в процессе кодирования электрических сигналов значение m определяет число различных градаций их амплитуды, фазы, частоты или других информативных параметров. Примеры кодов даны в Приложении 1.

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

 

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

Длина кодовой комбинации – n – это разрядность кода или количество символов вторичного алфавита, необходимых для кодирования одного символа первичного алфавита. Код называется равномерным, если все кодовые комбинации одинаковы по длине (n = const), и неравномерным, если величина n в коде непостоянна (n = var).

Число кодовых комбинаций – N — в коде, каждая из которых может передавать свое отдельное сообщение. Значение N для кода с основанием m и числом элементов n определяется выражением

(1.4)

Если известны N и m, то длину кодовой комбинации можно вычислить по формуле

где -операция округления в сторону большего целого значения x

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

Например, для передачи русских букв от «А» до «Я» нужно передавать числа от 1 до 32. Поэтому число кодовых комбинаций . Если используется бинарное кодирование, то m=2. Тогда длина кодовой комбинации

Двоичные коды будут иметь вид

Символ первичного алфавита Число Двоичный код
А
Б
Я

Традиционно для кодирования одного символа используется количество информации равное 1 байту (1 байт = 8 битов). Для кодирования одного символа требуется один байт информации.

Так как каждый бит принимает значение 1 или 0, получаем, что с помощью 1 байта можно закодировать 256 различных символов. (28=256)

Кодирование заключается в том, что каждому символу ставиться в соответствие уникальный двоичный код от 00000000 до 11111111 (или десятичный код от 0 до 255).

Основные задачи кодирования:

· Снижение объема сообщения (эффективное кодирование)

· Обнаружение и исправление ошибок (помехоустойчивое кодирование)

· Защита информации от несанкционированного доступа (шифрование информации)

Для решения этих задач разработано большое количество самых разнообразных кодов.

 

Коды Шеннона — Фано.

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

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

Учет статистики сообщений на основании теоремы Шеннона позволяет строить эффективный код, в котором часто встречающимся сообщением присваиваются более короткие кодовые комбинации, а редко встречающимся – более длинные.

Методы построения таких кодов впервые предложили одновременно в 1948-49 годах Р. Фано и К. Шеннон, поэтому код назвали кодом Шеннона-Фано.

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

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

Порядок построения оптимального кода Шеннона-Фано:

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

2. Выбирается основание кода K. (При двоичном кодировании K=2)

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

4. Всем символам первой группы в качестве первого символа вторичного алфавита присваивается «0», символам второй группы – символ «1», а символам K-ой группы – символ (K1). Этим обеспечивается примерно равная вероятность появления всех символов 0, 1,…, K-1 на первой позиции в кодовых словах.

5. Затем каждая подгруппа аналогичным образом разбивается на подгруппы по возможности с одинаковыми вероятностями. Всем символам первых подгрупп в качестве второго символа присваивается 0, всем сообщениям вторых подгрупп – 1, а сообщениям K-ой группы – символ (K1).

6. Процесс продолжается до тех пор, пока в каждой подгруппе не окажется по одному символу первичного алфавита.

В качестве примера рассмотрим алфавит сообщений из 6 символов

Выполним анализ экономичности полученного кода.

Среднее количество символов вторичного алфавита на один символ первичного алфавита сообщений составляет:

Для рассмотренного примера

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

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

Энтропия данного кода устанавливает минимально возможную длину кодовой последовательности

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

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

где — максимальная энтропия кода, достигаемая при равновероятном появлении символов; m – кол-во символов.

Для рассматриваемого примера

 

Задание

Найти эффективный код для кодирования сообщений, первичный алфавит которых образован символами собственной Фамилий Имени и Отчества. Для определения вероятностей появления символов использовать таблицу Приложения 2.

Контрольные вопросы

Чем вызвана необходимость кодирования информации?

В чем состоит кодирование?

Что такое первичный алфавит?

Что такое вторичный алфавит?

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

Что такое код?

Какую задачу решает кодер?

Какая величина называется основанием кода?

Какой код называется неравномерным?

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

Сколько различных символов можно закодировать в 1 байте?

Каковы основные задачи кодирования?

Что утверждает первая теорема кодирования Шеннона?

Какую задачу кодирования решает код Шеннона-Фано?

Объясните алгоритм построения кода Шеннона-Фано.

В чем заключается анализ кода?

Приложение 1. Примеры кодирования информации

1. Азбука Морзе в русском варианте (алфавиту, составленному из алфавита русских заглавных букв и алфавита арабских цифр ставится в соответствие алфавит Морзе):

2. Код Трисиме (знакам латинского алфавита ставятся в соответствие комбинации из трех знаков: 1,2,3):



Рекомендуемые страницы:

Воспользуйтесь поиском по сайту:

13.8. Примеры кодирования источника. 13. Кодирование источника. Теоретические основы цифровой связи

13.8.1. Аудиосжатие

13.8.2. Сжатие изображения

13.8.2.1. JPEG

13.8.2.1.1. Варианты декодирования с помощью JPEG

13.8.2.2. MPEG

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

13.8.1. Аудиосжатие

Аудиосжатие широко применяется в потребительских и профессиональных цифровых аудиопродуктах, таких как компакт-диски (compact disc — CD), цифровая аудиолента (digital audio type— DAT), мини-диск (mini-disk— MD), цифровая компакт-кассета (digital compact cassette — DCC), универсальный цифровой диск (digital versatile disc — DVD), цифровое аудиовешание (digital audio broadcasting — DAB) и аудиопродукция в формате МРЗ от экспертной группы по вопросам движущегося изображения (Motion Picture Experts Group — (MPEG). К тому же сжатие речи в телефонии, в частности сотовой телефонии, требуемое для экономии полосы частот и сбережения времени жизни батареи, дало начало процессу разработки множества стандартов сжатия речи. Различные алгоритмы применимы к речевым и потребительским сигналам более широкой полосы частот. Аудио- и речевые схемы сжатия можно для удобства разделить согласно приложениям, что отражает некоторую меру приемлемого качества. Рассмотрим параметры, описывающие это деление [24, 25].

Типичные значения параметров для трех классов аудиосигналов

13.8.2. Сжатие изображения

Мы часто слышали старое высказывание: Картина стоит тысячи слов. Верно ли оно? 1 000 слов содержит 6 000 знаков, которые, будучи закодированы как 7-битовые символы ASCII, требуют в общей сложности 42 000 бит. Какого размера образ (или картина) может быть описан с помощью 42 000 бит? Если используется монохромный (т.е. черный и белый) образ со стандартной 8-битовой шкалой оттенков серого, образ будет ограничен 5 250 пикселями (или элементами изображения). Этот образ может иметь размерность 7075 пикселей, и если предположить, что образ среднего качества (разрешение 300 пикселей на дюйм), в результате получаем, что наш образ составляет примерно дюйма на дюйма.

Определенно, требуется какое-то кодирование изображения.

Подойдем к проблеме с другой стороны. Насколько большим является изображение? Выбирая лист бумаги размером 8,511,0 дюймов, содержащий изображение с разрешением 300 пикселей на дюйм, получаем образ, содержащий 8,530011,0300 или 8,4106 элементов изображения. Если это полноцветная картина с тремя цветами на элемент, каждый из которых описывается с помощью 8-битовых слов, находим, что образ содержит 2108 бит, что эквивалентно 4,8106 6-знаковых слов ASCII. Возможно, старое высказывание стоит обновить в соответствии с современным положением дел, сказав, что: Картина стоит порядка пяти миллионов слов. Для сравнения с другими форматами изображения отметим, что отдельный кадр телевизионного изображения высокой четкости содержит примерно 1,8106 пикселей, стандартное телевизионное изображение — это примерно 0,33106 пикселей, а мониторы компьютера высшего класса содержат от 1,2 до 3,1106 элементов изображения. Технология дала нам принтеры низкой стоимости с высокой разрешающей способностью, сканеры, камеры и мониторы, позволяющие схватывать и представлять изображения с коммерческой и развлекательной целью. Хранение и передача этих образов существенно зависит от кодирования источника, призванного снизить требования к полосе частот и памяти. Существует множество стандартов, которые были разработаны для сжатия изображений. В следующем разделе будут изучены элементы двух основных схем сжатия [26, 27].

13.8.2.1. JPEG

JPEG (Joint Photography Experts Group — объединенная группа экспертов в области фотографии) — это общее название, которое дано стандарту ISO/JPEG 10918-1 и стандарту ITU-T Recommendation T.81 «Цифровое сжатие постоянных изображений непрерывного тона». JPEG, в основном, известен как основанная на преобразовании схема сжатия с потерями. Сжатие с потерями допускает ошибки в построении сигнала. Уровни ошибок должны быть ниже порога восприимчивости человеческого глаза. JPEG поддерживает три режима работы, связанных с дискретным косинус-преобразованием (discrete cosine transform — DCT, ДКП): последовательное ДКП, прогрессивное ДКП и иерархическое, а также режим без потерь с использованием дифференциального предсказания и энтропии кодирования ошибки предсказания. ДКП — это численное преобразование, связанное с дискретным преобразованием Фурье (discrete Fourier transform — DFT, ДПФ) и предназначенное для получения спектрального разложения четно-симметричных последовательностей. Если входная последовательность является четно-симметричной, нет необходимости в синусоидальных компонентах преобразования. Следовательно, ДКП может заменить ДПФ.

Начнем с введения двухмерного преобразования ДКП 88. Сначала прокомментируем использование ДКП для образования спектрального описания блока 88 пикселей. Двухмерное ДКП — это сепарабельное преобразование, которое может быть записано в виде двойной суммы по двум размерностям. Сепарабельное ДКП производит восемь 8-точечных ДКП в каждом направлении. Следовательно, основной компоновочный блок представляет собой единичное 8-точечное ДКП. Возникает вопрос, почему используется ДКП, а не какое-либо другое преобразование, например ДПФ. Ответ связан с теоремой о дискретном представлении и преобразованием Фурье. Преобразование в одной области приводит к периодичности в другой. Если преобразуется временной ряд, его спектр становится периодичным. С другой стороны, если преобразуется спектр временного ряда, временной ряд периодически продолжается. Этот процесс известен как периодическое расширение и обозначается результирующей периодограммой. Периодическое расширение исходных данных (рис. 13.40) демонстрирует разрыв на границах, который ограничивает степень спектрального затухания в спектре величиной 1/f Можно образовать четное расширение данных, отображая данные относительно одной из границ. Если данные являются периодически расширенными, как показано на рис. 13.40, разрывность уже свойственна не амплитуде данных, а ее первой производной, так что степень спектрального затухания увеличивается до 1/f2. Более быстрая скорость спектрального затухания приводит к меньшему числу значимых спектральных членов. Еще одним преимуществом ДКП есть то, что поскольку данные четно-симметричные, их преобразование также является действительным и симметричным; следовательно, отсутствует необходимость в нечетно-симметричных базисных членах — функциях синуса.

Поскольку амплитуда образа имеет сильную корреляцию на небольших пространственных интервалах, значение ДКП блока 88 пикселей определяется, в основном, окрестностью постоянной составляющей и относительно небольшим числом иных значимых членов. Типичное множество амплитуд и их преобразование ДКП представлено на рис. 13.41. Отметим, что спектральные члены убывают, по крайней мере, как 1/f2 и большинство членов высокой частоты, в основном, нулевые. Спектр посылается на устройство квантования, которое использует стандартные таблицы квантования для присвоения бит спектральным членам согласно их относительным амплитудам и их психовизуальному значению. Для компонентов яркости и цветности используются различные таблицы квантования.

Рис. 13.41. Пиксели и амплитуды ДКП, описывающие один и тот же блок 88 пикселей

Чтобы использовать преимущество большого числа нулевых позиций в квантованном ДКП, спектральные адреса ДКП сканируются зигзагообразным образом, как изображено на рис. 13.42. Зигзагообразная модель обеспечивает длинную последовательность нулей. Это улучшает эффективность кодирования группового кода Хаффмана, описывающего спектральные выборки. На рис. 13.43 представлена блочная диаграмма кодера JPEG. Сигнал, доставленный на кодер, обычным образом представлен в виде растровой развертки с дискретными основными аддитивными цветами: красным, зеленым и синим (RGB). Цветная плоскость преобразуется в сигнал яркости (Y) и цветности 0,564(В — Y) (обозначено как СB) и 0,713(RY) (обозначено как СR), используя преобразование цветового контраста, разработанное для цветного ТВ. Это отображение описывается следующим образом.

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

Рис. 13.42. Зигзагообразное сканирование спектральных составляющих ДКП

Рис. 13.43. Блочная диаграмма кодера JPEG

Глаз человека имеет разную чувствительность к цветным компонентам и компонентам яркости (черное и белое). Эта разница в способности к разрешению является следствием распределения рецепторов цвета (палочек) и рецепторов яркости (колбочек) на сетчатке. Человеческий глаз может различать 1-дюймовые чередующиеся черные и белые полоски со 180 футов (1/40 градуса). Для сравнения, 1-дюймовые сине-красные или сине-зеленые цветные полоски невозможно различить с расстояний, больших 40 футов (1/8 градуса). Следовательно, трехцветные образы требуют примерно на 1/25 (1/5 в каждом направлении) больше данных, чем нужно для получения черно-белого изображения. В далеком прошлом фотографы знали, что глаз требует очень малого числа цветных деталей. Чтобы придать образу цвет, существовала живая индустрия, в которой от руки раскрашивали черно-белые фотографии и почтовые открытки. Большинство аналоговых и цифровых цветных ТВ используют преимущество этой разницы в остроте восприятия для доставки дополнительных цветных компонентов через значительно сокращенную полосу частот. Стандарт NTSС определяет доставку всех трех цветов через полосу частот в 0,5 МГц, а>не 4,2 МГц, действительно требуемую яркостным компонентом. Аналогично JPEG использует преимущество разницы в восприятии и выбирает компоненты цветового контраста с половинной частотой в направлении сканирования (x), но не в направлении поперек линий развертки (у).

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

13.8.2.1.1. Варианты декодирования с помощью JPEG

Во время реконструкции образа декодер может работать последовательно, начиная с верхнего левого угла изображения и образуя блоки 88 пикселей по мере их поступления. Это последовательный режим JPEG. В прогрессивном режиме кодирования образ сначала объединяется в блоки 88, образованные только компонентом постоянной составляющей в каждом блоке. Это очень быстрый процесс, который представляет крупноблочный, но распознаваемый в результате предварительного просмотра образ, — процесс, часто демонстрируемый в Internet при загрузке файлов GIF (Graphic Interchange Format), которые в начале передачи данных доставляют только компоненты постоянной составляющей. Затем изображение обновляется в каждом блоке 88, образованном из компонентов постоянной составляющей и первых двух соседних компонентов, представляющих следующее множество данных, доставленных на декодер. И наконец, образ обновляется при полном разрешении посредством полного множества коэффициентов, связанных с каждым блоком 88.

При иерархическом кодировании образ кодируется и декодируется как перекрывающиеся кадры. Изображение с низким разрешением, выбранное с пониженной частотой (4:1 в каждом направлении), кодируется с использованием ДКП и квантованного коэффициента, образуя первый кадр. Изображение, полученное с помощью этого кадра, выбирается с более высокой частотой и сравнивается с версией исходного изображения большего разрешения (2:1 в каждом направлении), и разность, представляющая ошибку в формировании образа, снова кодируется как изображение MPEG. Два кадра, образованные двумя уровнями кодирования, используются для создания составного образа, который увеличивается и сравнивается с исходным образом. Разность между исходным образом и двумя уровнями реконструкций с более низкой разрешающей способностью формируется с наивысшей доступной разрешающей способностью, и снова применяется кодирование JPEG. Этот процесс полезен при доставке образов с последовательно высоким качеством реконструкции, подобно прогрессивному кодированию. Разница заключается в том, что имеется дополнительная разрешающая способность, но она не может быть послана до тех пор, пока не будет востребована. Пример: сканирование пользователем библиотеки изображений и требование окончательного качества после просмотра множества изображений. Еще одним примером может быть доставка одного уровня качества на дисплей персонального компьютера и более высокого уровня на дисплей рабочей станции с высокой разрешающей способностью.

В заключение отметим, что JPEG-2000 — это предложенный стандарт для определения новой системы кодирования изображения, предназначенной для Internet-приложений и мобильных приложений. В этой системе предлагается узкая полоса частот, множественная разрешающая способность, устойчивость к ошибкам, защищенность изображения и низкая сложность. Она базируется на алгоритмах волнового сжатия, и по отношению к JPEG в ней предлагается улучшенная эффективность сжатия со многими возможностями разрешения [28].

13.8.2.2. MPEG

MPEG (Motion Picture Experts Group — экспертная группа по вопросам движущегося изображения) представляет собой стандарты, созданные для поддержания кодирования движущихся изображений и ассоциированного аудио для среды цифрового запоминания со скоростями до 1,5 Мбит/с. MPEG-1, стандарт ISO 11172, был принят в ноябре 1992 года для разрешения записи полномасштабного видео на CD-плейерах, первоначально созданных для стерео-аудиовоспроизведения. MPEG-2, стандарт ISO 13818 или рекомендация ITU-T H.262, Универсальное кодирование движущихся изображений и ассоциированного аудио, принятый в ноябре 1994 года, дает большую гибкость форматов входа/выхода, большую скорость передачи данных и уделяет больше внимания таким системным требованиям, как передача и синхронизация, темам, не рассмотренным в MPEG-1. MPEG-2 поддерживает разновидности цифрового ТВ, охватывающие оцифрованное видео, которое отображает существующий аналоговый формат с определенным качеством посредством DVD (цифровой видеодиск) и HDTV (телевидение высокой четкости) с различными форматами изображения, частоты развертки, скорости сканирования пикселей, опций обратного сканирования и различными опциями выборки на повышенной частоте для компонентов цветового контраста. Ниже описывается основная теория работы простейшей версии MPEG-2.

MPEG-2. MPEG сжимает последовательность движущихся образов, используя преимущество высокой корреляции между последовательными движущимися изображениями. MPEG создает три типа изображений: интра-изображения (I-изображения), предсказанные (Р-изображения) и изображения двунаправленного предсказания (В-изображения). В MPEG каждое M-е изображение в последовательности может быть полностью сжато с использованием стандартного алгоритма JPEG; это I-изображения. Затем процесс сравнивает последовательные I-изображения и идентифицирует часть образа, которая была перемещена. Части образа, которые не были перемещены, переносятся в промежуточное изображение с помощью памяти декодера. После этого процесс отбирает подмножество промежуточных изображений, а затем предсказывает (посредством линейной интерполяции между I-изображениями) и корректирует расположение частей образа, которые были перемещены. Эти предсказанные и скорректированные образы являются Р-изображениями. Между I — и P-изображениями находятся B-изображения, которые включают стационарные части образа, не охваченные движущимися частями. Относительное расположение этих изображений показано на рис. 13.44. Отметим, что Р- и B-изображения допускаются, но не требуются, и их количество является переменным. Последовательность может быть образована без каких бы то ни было Р- или B-изображений, но последовательность, содержащая только Р-или Bизображения, не может существовать.

Рис. 13.44. Последовательность изображений при сжатии MPEG

I-изображения сжимаются так, как если бы они были изображениями JPEG. Это сжатие применяется к четырем непрерывным блокам 88, называемым макроблоками. Макроблоки могут быть выбраны с пониженной частотой для последовательного сжатия цветных компонентов. Макроблоки и их опции выборки с пониженной частотой изображены на рис. 13.45. Сжатие I-кадра производится независимо от ранних или поздних изображений в последовательности кадров. Расстояние в последовательности, рассчитанное между I-изображениями, является регулируемым, и оно может быть сделано малым порядка 1 либо настолько большим, насколько позволяет память. Редактирование сечений в последовательности изображений и локальная программная вставка могут производиться только с I-изображениями. Поскольку одна вторая секунды — это приемлемая временная точность для производства такого дополнения, расстояние между I-изображениями обычно ограничено примерно 15 изображениями для стандарта NTSC (30 изображений в секунду) или 12 изображениями для Британского стандарта PAL (25 изображений в секунду).

Рис. 13.45. Обработка макроблока для выборки цветности с пониженной частотой

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

Следующий этап обработки в MPEG состоит в образовании Р-кадра между I-изображениями. Сначала предположим, что сдвинутые макроблоки перемещались линейно во времени между двумя положениями, определенными на первом этапе обработки. Каждый макроблок помещается на свое предсказанное положение в Р-кадре. Вычисляется взаимная корреляция в окрестности этого блока для определения истинного расположения макроблока в Р-кадре. Разность между предсказанным и истинным положениями макроблока является ошибкой предсказания, и эта ошибка сжимается с помощью ДКП и используется для коррекции Р-кадра. Та же информация передается на декодер, так что он может корректировать свои предсказания. На рис. 13.46 представлен сдвиг макроблока между I-изображениями и промежуточное Р-изображение.

Рис. 13.46. Движение макроблока между Iи Р-изображениями

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

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

Порядок изображений на входе кодер



1

2

3

4

5

6

7

8

9

10

11

12

13

I0

В1

В2

Р1

В3

В4

Р2

В5

В6

In+1

В1

В2

Р1

Порядок закодированных изображений на выходе кодера и входе декодера



1

2

3

4

5

6

7

8

9

10

11

12

13

I0

Р1

В1

В2

Р2

В3

В4

In+1

В5

В6

Р1

В1

В2

Порядок изображений на выходе декодера



1

2

3

4

5

6

7

8

9

10

11

12

13

I0

В1

В2

Р1

В3

В4

Р2

В5

В6

In+1

В1

В2

Р1

На рис. 13.47 представлена блочная диаграмма кодера MPEG. Отметим, что его структура представляет собой стандартную модель предсказания-коррекции. Отметим интересное соотношение между воспринимаемой глазом мерой качества изображения и мерой его активности. С одной стороны, когда образ содержит значительное движение, глаз воспринимает образы более низкого качества. С другой стороны, когда образ содержит мало движения, глаз чувствителен к помехам изображения. В кодере отсутствие движения влияет на активность кодирования и приводит к тому, что данные доставляются на выход буфера с более низкой скоростью. Буфер считает это индикатором стационарности образов и контролирует образ, допуская квантование ДКП более высокого качества. Скорость на выходе буфера фиксируется согласно требованиям линий связи. Для отображения средней входной скорости в фиксированную выходную применяется текущий контроль. Текущий контроль регистрирует низкую активность кодера, замечая, что его буфер опустошается быстрее, чем наполняется. Простой индикатор разности между входной и выходной скоростями — это расположение выходного адресного указателя. Если указатель движется по направлению к началу памяти буфера, указателю опустошения памяти, система увеличивает входную скорость, выбирая таблицу квантования, которая дает большее число бит на ДКП. Аналогично, если указатель движется по направлению к концу памяти буфера, указателю переполнения, система увеличивает выходную скорость, выбирая таблицу квантования, которая дает меньшее число бит на ДКП. Этот процесс согласовывает качество изображения с порогом качества, воспринимаемым глазом, сохраняя при этом среднюю выходную скорость канала.

Примеры кода — Руководство по стилю Microsoft

  • 2 минуты на чтение

В этой статье

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

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

Разработчики используют примеры кода для:

  • Оцените технологию через ее API во время планирования.
  • Изучите или исследуйте язык или технологию.
  • Написать и отладить код.

Многие разработчики копируют примеры кода из документации в свой собственный код или адаптируют примеры кода под свои нужды.

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

Рекомендации по планированию примеров кодов

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

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

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

  • Создавайте примеры кода, которые легко просканировать и понять. Зарезервируйте сложные примеры для руководств и пошаговых руководств, где вы можете дать пошаговое объяснение того, как работает пример.

  • Добавьте введение, чтобы описать сценарий и объяснить все, что может быть неясно из кода. Перечислите требования и зависимости для использования или запуска примера.

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

  • Используйте соответствующие ключевые слова, стратегии связывания и другие методы поисковой оптимизации (SEO), чтобы улучшить видимость и удобство использования примеров кода. Например, добавьте ссылки на соответствующие страницы с примерами кода и страницы с контентом, чтобы улучшить SEO для вашего контента.См. Поиск и письмо.

Рекомендации по написанию примеров кода

  • Конструктивный код для повторного использования. Помогите разработчикам определить, что нужно изменить. Добавляйте комментарии, чтобы объяснить детали, но не переусердствуйте. Не заявляйте очевидного.

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

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

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

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

  • Всегда компилируйте и тестируйте свой код.

.

Примеры кода

Примеры кода

Продукты

Приложения

Инструменты и программное обеспечение

Поддержка и обучение

Заказать сейчас

Около

  • Все
  • Продукты
  • Документы
  • Примечания к применению

MyMicrochip

Панель приборов
Мой профиль
Зарегистрированные инструменты разработки
Мои предпочтения
Изменить адрес электронной почты
Изменить пароль
Отказаться от учетной записи MyMicrochip
Выход

×

  • Главная страница MPLAB® IDE
  • MPLAB® X IDE
    • Возможности (расширенные)
    • Загрузки
    • Документация
    • Архив загрузок
    • Справка разработчика
    • Начиная
    • Форум
  • Компиляторы MPLAB® XC

    • Характеристики

.

примеров языка программирования C ++ | Счастливые коды

Код C Распечатать все четные числа от 1 до N Программа на языке C
распечатать все четные числа от 1 до n, используя цикл for. Итак, сначала давайте поговорим о самом простом способе печати четных чисел. Если я попрошу вас перечислить все четные числа от 1 до

C Код языка для поиска первой и последней цифры
C Программный код языка C для поиска первой и последней цифры. Введите число от пользователя и сохраните его в некоторой переменной, например, num. Найдите последнюю цифру, используя деление по модулю на 10 lastDigit = num% 10.

Реализация C ++ для двоичной кучи
Емкость — это емкость «двоичной кучи». Дубликаты разрешены. «Бросить переполнение», если контейнер полон. Найдите наименьший элемент в «очереди приоритетов». Верните самый маленький предмет или

Универсальное скоординированное время на языке C
Программный код на языке C возвращает время в формате всемирного координированного времени (UTC) (по сути, среднее время по Гринвичу). Печать местного времени и даты. Совместная печать универсального времени и даты

Кодирование на языке C для нахождения суммы двух матриц 3×3
Программа на языке C для чтения элементов в двух матрицах и сложения элементов обеих матриц.Код C для сложения двух матриц. Программа сложения матриц в C. Logic для добавления двух матриц в C.

C ++ Найти минимальный элемент Линейный поиск
Сначала «Сравните элемент» в начале последовательно с другим элементом массива. И поменять местами значения, если элемент в начале больше, чем другой элемент. Это значение будет

Язык C Чтение Запись двоичных файлов
Файловый ввод-вывод для двоичных файлов в C. Указатели для обоих двоичных файлов. Откройте файл binary2.exe в режиме rb. Логика тестирования для успешного открытия.Откройте файл binary2.exe в режиме «wb» для записи и

Выполнить целочисленное разделение для конкретного случая
Программный код C ++ генерирует все возможные «разделы», которые могут быть сгенерированы путем разбиения заданного значения. Этот алгоритм принимает на вход «натуральное число» и выводит все возможные

.

Примеры кода

A. Примеры для библиотеки VirtuinoCM

Используйте Arduino Library Manager для установки последней версии библиотеки VirtuinoCM

или скачать библиотеку : VirtuinoCM

Установите библиотеку перед запуском примеров ниже

================================================= =========

Arduino + экран Ethernet

Примеры серверного кода, включенные в VirtuinoCM library

Ethernet Shield example_1: Начало работы

Ethernet Shield example_2: Виртуальные контакты

Ethernet Shield example_3: Отправка — получение текста

Ethernet Shield example_4: Виртуальные контакты с использованием vMemoryRead и vMemoryWrite

================================================= ========

Ардуино + ESP8266_01

Примеры серверного кода, которые включены в VirtuinoCM library

Arduino UNO + ESP-01 example1: Начало работы (UNO, NANO, MINI и т. Д.)

Arduino UNO + ESP-01 example2: виртуальные контакты

Arduino UNO + ESP-01 example3: Режим доступа к Pont

Arduino MEGA + ESP-01 example1: Начало работы (Mega-Due)

================================================= ========

+

Arduino + Bluetooth-модуль HC-05 или HC-06

Примеры последовательного подключения программного обеспечения к HC-05 или HC-06, которые включены в VirtuinoCM library

Модуль Arduino UNO + Bluettoth, пример 1: Начало работы

Модуль Arduino UNO + Bluettoth, пример 2: виртуальные контакты

Примеры аппаратного последовательного соединения с HC-05 или HC-06

Пример модуля Arduino MEGA / DUE + Bluettoth 3: Начало работы

Пример модуля Arduino MEGA / DUE + Bluettoth: считывание температуры и влажности DHT

================================================= =========

ESP8266 автономная (Wemos, NodeMCU и т. Д.)

Примеры серверного кода, которые включены в VirtuinoCM library

Wemos — NodeMCU ESP8266 example1: Начало работы

Wemos — NodeMCU ESP8266 example2: виртуальные контакты

Wemos — NodeMCU ESP8266 example3: Обзор

Wemos — NodeMCU ESP8266 example4: чтение-запись операций ввода-вывода

Wemos — NodeMCU ESP8266 example5: Режим точки доступа

Дополнительные примеры:

Wemos — NodeMCU ESP8266 Пример датчика DHT: Датчик DHT температуры и влажности

Код клиента ESP8266 для библиотеки VirtuinoCM Датчик температуры и влажности

ESP8266 + ESP32 Инструменты

WiFi Manager для ESP8266 — пример ESP32: как изменить SSID WiFi, пароль и другие настройки с помощью веб-страницы

================================================= =========

ESP32

Примеры кода сервера

ESP32 example1: Начало работы

ESP32 example2: Обзор

================================================= ========

Ардуино Нано 33 Iot

Примеры подключения WiFi с использованием библиотеки VirtuinoCM

Arduino 33 IoT WiFi Пример: начало работы

================================================= =========

+

Карта Ethernet ARDUINO + ENC28J60

Примеры кода сервера

Arduino + ENC28J60 ethernet example1: Начало работы


Б.Примеры, для которых не нужны библиотеки

Весь необходимый код включен в один скетч. Эти примеры могут быть легко изменены разработчиками

Bluetooth HC-05 и HC-06 и любой другой модуль без BLE

Virtuino — Arduino UNO, NANO и т. Д. С программным обеспечением последовательного подключения

Virtuino — Arduino UNO, NANO и т. Д. С аппаратным обеспечением Последовательное соединение

Virtuino — Arduino MEGA, DUE и т. Д. С аппаратным обеспечением Последовательное соединение

Virtuino — Arduino MEGA, DUE и т. Д.с оборудованием Последовательное соединение — в этом коде поддерживается только V-память


C. Примеры для старых библиотек Virtuino и VirtuinoESP библиотеки

Примеры, требующие установки библиотеки Virtuino (рекомендуется для любителей)

Библиотека : Библиотека Virtuino версии 1.69 или выше

Используйте диспетчер библиотек Arduino для установки последней версии библиотеки

Virtuino — пример мира Hello Virtuino 01

Virtuino — чтение — запись в цифровые IO, пример 02

Virtuino — чтение — запись на виртуальные контакты, пример 03

Virtuino — чтение — запись на виртуальные контакты, пример 04

Virtuino — считывание температуры и влажности с датчика DHT, пример 05

Virtuino — считывание температуры с датчика ds18b20, пример 06

Virtuino — Пример серводвигателя

Virtuino — Arduino Mega, DUE (последовательный аппаратный код), пример

Virtuino — Пример отправки и получения текстовых команд

ESP8266 — NodeMCU — WeMos

Для следующих примеров необходима установка библиотеки VirtuinoESP

Пример веб-сервера Virtuino NodeMCU

Пример веб-сервера Virtuino WeMos

Virtuino ESP8266: отправка или чтение текста

Виртуальное считывание температуры и влажности с датчика DHT

Virtuino Считывание температуры с датчика DS18B20

Virtuino — ESP8266 Пример точки доступа

Библиотека : Библиотека VirtuinoESP вер. 1.71 или выше

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

Пример Virtuino ESP8266 без библиотеки

Пример Virtuino ESP8266 без библиотеки. Этот скетч поддерживает ТЕКСТОВЫЕ команды

ESP32

Для следующих примеров необходима установка библиотеки VirtuinoESP

Базовый пример Virtuino ESP32

Пример Virtuino ESP32: считывание температуры и влажности DHT11

Библиотека : Библиотека VirtuinoESP вер. 1.71 или выше

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

Пример Virtuino ESP32 без библиотеки

Пример Virtuino ESP32 без библиотеки. Этот скетч поддерживает ТЕКСТОВЫЕ команды

Код клиента Virtuino

Этот код очень полезен:

1.Для разработчиков, которые хотят общаться с библиотекой Virtuino без приложения Virtuino

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

Код клиента для плат ESP8266 (NodeMCU, Wemos и т. Д.)

Клиентский код для Arduino или аналогичных плат и модуля Wi-Fi ESP-01

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *