Новини високих технологій
» » Що таке кодування і декодування інформації? Алфавіт кодування

Що таке кодування і декодування інформації? Алфавіт кодування

31-10-2017, 19:44
2 569
Сучасний світ побудований на використанні і передачі інформації. Але голосом адже всім її не донесеш. Тому з давніх часів був важливий момент кодування даних, щоб вони могли був прочитані тими, для кого призначалася. Поступово також стало актуальним їх шифрування. Необхідно було помістити повідомлення інформацію, яка була зрозуміла своїм і не розкрила сенсу перед чужими. Про все це ми і поговоримо, з'ясовуючи, що таке кодування і декодування.

Розбираємося з термінологією

Без цього ніяк. Коли говорять про закодованому тексті, то це значить, що йому відповідав інший набір символів. Це може бути використано для збільшення надійності або ж з тієї простої причини, що канал може використовувати тільки обмежена кількість символом. Наприклад, двійковий код, на якому працюють сучасні комп'ютери, побудований на нулях і одиницях. Інформація може бути закодована в певні символи і для того, щоб її зберегти. В якості прикладу можна навести результати аналізів, де містяться показники організму людини. Але найбільш популярним питанням є такий: "Що таке кодування і декодування в інформатиці?" Шукати відповідь на нього ми і будемо.


Про значення

Раніше процес кодування і декодування інформації грав допоміжну роль і не розглядався як окремий напрям математики. Але з появою електронно-обчислювальних машин ситуація істотно змінилася. Зараз кодування є центральним питанням під час розв'язання широкого спектра практичних завдань в програмуванні і тому пронизує всі інформаційні технології. Так, з його допомогою: Захищається інформація від несанкціонованого доступу. Забезпечується завадостійкість при передачі по каналах зв'язку даних. Представляється інформація довільної природи (графіка, текст, числа) в пам'яті комп'ютера. Стискається вміст баз даних.

Про алфавіті

Говорячи про те, що таке кодування і декодування, складно обійти увагою основу всього цього. А саме, алфавіт. Виділяють два види – вихідний і кодовий. У першому є початкова інформація. Під кодовим маються на увазі змінені дані, які тим не менше можуть при наявності ключа передати нам зашифроване вміст. В інформатиці для цього використовується двійковий код, в основу якого покладено алфавіт, складається з нуля і одиниці. Давайте розглянемо невеликий приклад. Припустимо, у нас є два алфавіту (А і Б), що складаються з кінцевого числа символів. Припустимо, вони виглядають наступним чином: А = {А0 А1 А2А33}, B = {Б0 Б1 Б3Б34}. Елементи алфавіту – це букви. Тоді як їх упорядкований набір називається словом. У нього є певна довжина. Перша літера слова називається початком (префіксом), тоді як остання - закінченням (постфиксом). Можуть існувати різні правила побудови конструкцій. Наприклад, одні системи кодування інформації вимагають, щоб був пропуск між словами, другі обходяться без нього. В цілому алфавіт необхідний для побудови універсальної системи відображення інформації, її зберігання, обробки та передачі. При цьому передбачається певна відповідність між різними сигналами і елементами повідомлень, які в них зашифровано.

Робота з даними

Коли інформація перетворюється в первинний вигляд, те що відбувається при цьому процес називається декодирующим. Він повинен виконуватися по відношенню до будь-яких даних, що були зашифровані. При цьому використовується так зване зворотне відображення (биекция). Давайте розглянемо ситуацію з двійкової системою. У неї всі кодові слова володіють однаковою довжиною. Тому код називають рівномірним (блочних). При цьому кодує функцією виступає певна підстановка. Можна взяти в якості прикладу вищенаведену систему алфавіту. Для позначення певних послідовностей використовується безліч елементарних кодів. Припустимо, що у нас є А0 = {А, Б, В, Г} і Б0 = {1 0}. Яким чином це можна уявити комп'ютера? А використовуючи ось таку послідовність: А = 00 Б = 01 У = 10 Р = 11. Як бачите, кожен символ має певну кодування. У комп'ютерну техніку заноситься довідкова інформація про алфавіт кодування, і вона починає чекати сигналів, що надходять. Приходить нуль, за ним ще один – ага, значить, це буква А. Якщо проводити паралелі з набором слова в текстовому редакторі, то слід відзначити, що буде передана не тільки одна літера, але й запущена відповідна реакція на неї. Наприклад, загориться певна послідовність світлодіодів монітора, де відображаються всі введені символи.

Специфіка роботи

Говорячи про приклади кодування і декодування інформації, слід зазначити, що розглянута система не є взаємно-однозначним. Наприклад, буквою А може відповідати комбінація не тільки 00 але і 1110 або 01. Але при цьому слід враховувати, що може бути тільки щось одне. Тобто за комбінацією закріплюється виключно тільки певний символ. Якщо схема кодування передбачає поділ будь-якого слова на елементарні складові, то вона називається разделимой. У випадках, коли одна літера не виступає в якості початку іншого, це префіксний підхід. Це відноситься до питань програмно-апаратної складової. Певний вплив на кодування надає і архітектура, але з-за великої кількості варіантів реалізації розглядати її досить проблематично.

Побуквенное кодування

Це найбільш простий підхід. Якщо говорити про мови кодування інформації, то, мабуть, це найбільш популярний варіант. В обмеженому варіанті він був розглянутий вище. Давайте дізнаємося, як виглядає код без розділювачів. Припустимо, у нас є алфавіт (вихідний), в який поміщені всі російські букви. Для кодування використовуються десяткові цифри. Тут А = 1 а = 33. Таким чином, послідовність букв АЯЯА можна передати як 133331. Якщо є бажання зробити алфавіт рівномірним, то необхідно внести певні зміни. Так, для перших дев'яти букв доведеться додати по нулю. І розглянутий нами приклад АЯЯА перетворюється в 01333301.

Нерівномірне кодування

Розглянутий раніше варіант вважається зручним. Але в певних випадках більш розумно зробити ставку на нерівномірні коди. Це має сенс тоді, коли різні букви в вихідному тексті зустрічаються з різною частотою. Тому більш часті символи має сенс кодувати короткими позначками, а рідкісні – довгими. Давайте побудуємо бінарне дерево з літер російського алфавіту. А на додаток візьмемо спецсимволи. Найбільш часто використовуються букви, тому ми будемо починати з них: А – 0 Б – 1 В – 10 М – 11 і так далі. І тільки після них вже будуть використовуватися знаки питання, відсотків, двокрапки та інші. Хоча, мабуть, на перше місце слід поставити коми і крапки.

Про умови Фано

Теорема говорить, що будь-код (префіксний і рівномірний) допускає можливість однозначного кодування. Припустимо, що ми використовуємо розглянутий раніше приклад з 01333301. Починаємо рухатися вправо. 0 нічого нам не дає. А ось 01 дозволяє ідентифікувати букву А. Трохи змінимо початковий код і представимо його 01333301. Далі виділяємо першу Я, другу і ще одну А. В результаті ми маємо 013333 01. Хоча спочатку код був злитим, але зараз ми можемо з легкістю його декодувати, оскільки знаємо, що в ньому є. А саме – А Я Я А. При цьому зауважте, що він завжди розшифровується однозначно, і ніяких тлумачень у рамках прийнятої системи немає, завдяки чому можна забезпечити високу достовірність переданої інформації. Але як працюють комп'ютери?

Функціонування електронно-обчислювальних машин

Кодування і декодування сигналів комп'ютерної техніки базується на використанні так званих низьких і високих сигналів, яким в логічному вимірі відповідають нуль і одиниця. Що це означає? Припустимо, у нас є мікроконтролер. Якщо на його вхід надходить низька напруга 15 В, то вважається, що було передане значення логічного нуля. Але якщо буде передано 5 В, то у відповідну комірку пам'яті буде записана одиниця. При цьому необхідно домогтися узгодження джерела інформації з каналом зв'язку. Взагалі, при створенні електроніки необхідно враховувати велику кількість різних моментів. Це і енергетичні вимоги, і вид інформації, що передається (дискретна або безперервна), і багато іншого. При цьому дані повинні постійно перетворюватися таким чином, щоб вони могли передаватися по каналах зв'язку. Так, у випадку з двійкової технікою сигнали представлені у вигляді напруги, що подається на вхід транзисторів чи інших компонентів. Під час декодування дані переводять повідомлення в зрозумілу для одержувача вигляд.

Мінімальна надмірність

На практиці виявилося, що надзвичайно важливим є, щоб код повідомлення мав мінімальну довжину. Спочатку може здатися, яка різниця – шість, вісім або шістнадцять біт використовується для кодування? Але відмінності несуттєві, якщо використовується одне слово. А якщо мільярди? Благо, можна підлаштувати алфавітна кодування під всі висунуті вимоги. Але якщо про безліч нічого невідомо, то в такому випадку сформулювати задачу оптимізації досить важко. Але на практиці, як правило, все ж можна отримати додаткову інформацію. Розглянемо невеликий приклад. Припустимо, у нас є повідомлення, представлене на природній мові. Але воно закодовано, і ми не можемо прочитати його. Що нам допоможе в задачі розшифровки? Як один з можливих варіантів – листок паперу, на якому розподілена ймовірність появи літер. Завдяки цьому побудова оптимального коду в плані де/кодування стає можливим з використанням точної математичної формулювання і суворого рішення.

Розбираємо приклад

Припустимо, що у нас є певна разделимая схема алфавітного кодування. Тоді всі похідні, що представляють собою упорядкований набір, теж буде мати це властивість. При цьому якщо довжина елементарних кодів дорівнює, то їх перестановка не впливає на довжину всього повідомлення. Але якщо розмір переданої інформації безпосередньо залежить від того, яка послідовність літер, то, значить, були використані складові різної протяжності. При цьому, якщо є конкретне повідомлення і схема його кодування, то можна підібрати таке рішення завдання, коли його довжина буде мінімальною. Як цього досягти? Давайте розглянемо підхід з використанням алгоритму призначення елементарних кодів, що дозволяє результативно підійти до вирішення задачі ефективності: Слід відсортувати літери в порядку убування кількісного входження. Потрібно розмістити елементарні коди в порядку збільшення їх довжини. І як завершення, необхідно розмістити складові в оптимальному порядку, щоб найбільш часті символи займали найменше місця. В цілому система нескладна. Якщо працювати з невеликими об'ємами даних. Але з сучасними комп'ютерами таке реалізувати досить проблематично із-за значної кількості інформації.

Висновок

Ось ми і розглянули, що таке система кодування та декодування інформації, якою вона може бути, що зараз існує в інформатиці, а також безліч інших питань. Але все ж слід розуміти, що ця тема є надзвичайно об'ємною, однієї статті для цього недостатньо. Як продовження теми можна розглянути шифрування даних, криптографію, зміна відображення інформації в різних електроніці, рівні її обробки і безліч інших моментів. Але галузь комп'ютерних наук по праву вважається однією з найскладніших, тому вивчити все це швидко не вийде. До того ж теоретичні знання тут ой як не рівні практичних умінь. А саме останні і забезпечують якісний результат.
Цікаво по темі
Як в Excel поміняти кодування. Три способи
Як в Excel поміняти кодування. Три способи
Часто, працюючи з різними файлами у програмі "Ексель", користувач може зіткнутися з тим, що замість чітких літер з'явиться незрозумілий шрифт, який
Схема передачі інформації з різних технічних каналах
Схема передачі інформації з різних технічних каналах
Стаття про те, як відбувається передача інформації по технічним каналам. Схема передачі інформації К. Шеннона.
Кодування ASCII (American standard code for information interchange) - базова кодування тексту для латиниці
Кодування ASCII (American standard code for information interchange) - базова кодування тексту для латиниці
За даними Міжнародного Союзу електрозв'язку, в 2016 році Інтернетом з тією чи іншою регулярністю користувалося 35 мільярда людей. Більшість з них
Спосіб кодування інформації за допомогою чисел. Двійкове кодування
Спосіб кодування інформації за допомогою чисел. Двійкове кодування
У процесі розвитку людство прийшло до усвідомлення необхідності зберігати і передавати на відстані ту чи іншу інформацію. В останньому випадку