Разлика между кодиране и декодиране

Жена слуша музика на мобилен телефон

Музикалните файлове обикновено се кодират с помощта на MP3 кодек.

Кредит на изображението: Purestock/Purestock/Getty Images

Кодирането е процесът на превод на данни между два формата според набор от правила или формула. Например, можете да кодирате "abc" в "ABC", като използвате правилата от малки до главни букви. Декодирането е обратен процес. Можете да декодирате "ABC" в "abc", като използвате същия набор от правила. Има много различни приложения за кодиране и декодиране на данни. Шифроването, например, е форма на кодиране, която използва ключ. Без ключа кодираните данни не могат да бъдат декодирани. Видео данните са кодирани, за да бъдат по-малки, така че потоци от видео с висока разделителна способност да могат да се гледат през Интернет.

Кодирането обикновено се използва за намаляване на размера на аудио и видео данни. Програма кодер-декодер, наречена кодек, прилага серия от математически алгоритми, които елиминират излишните данни. Например, да предположим, че файл съдържа данните "ABCDQABC." Алгоритъмът на кодек №1 може да бъде заменен „ABC“ с „Z“. Полученият файл ще бъде "ZDQZ", който е с 50 процента по-малък от оригинала файл. Алгоритъмът на кодек №2 може да замени "ABC?" с "Y" и "?ABC" с "X", където "?" обозначава всеки знак. Полученият файл ще бъде "YX", който е 75 процента по-малък от оригиналния файл.

Видео на деня

Декодирането използва същия кодек за реконструкция на оригиналния файл от кодиран файл. Например, прилагането на кодек №1 към „ZDQZ“ в обратна посока заменя „Z“ с „ABC“, за да създадете оригиналния файл „ABCDQABC“. Кодек №1, който беше с 50 процента по-малък, се нарича кодек без загуби, тъй като декодирането винаги пресъздава оригинала файл. Кодек #2 декодира "YX" с "ABC?? ABC“, и след това се опитва да отгатне кои са липсващите знаци. Кодекът може да познае „DE“, което води до „ABCDEABC“. Кодек № 2, който беше със 75 процента по-малък, е a кодек със загуби, тъй като процесът на декодиране може да създаде файл, който е близък до оригинала, но не идентични.

URL адреси и набори от символи

Не всяко кодиране дава резултат, който е по-малък от некодираните данни. Например URL адресът „example.com/Secret of Life.html“ е невалиден, защото съдържа интервали. Уеб програмист кодира URL адреса, който заменя всички интервали с "%20" за създаване "example.com/Secret%20of%20Life.html." Процесът на декодиране извършва обратната операция и заменя "%20" с интервал. По подобен начин една програма за база данни може да кодира всички данни в Unicode, основен набор от знаци на повечето езици. Когато потребител извлича данни, програмата декодира Unicode, за да съответства на езика и настройките на клавиатурата на потребителя.

Кодиране, което не може да бъде декодирано

Някои кодировки не са предназначени за декодиране. Хешът е дълъг низ от произволни знаци, използвани с алгоритъм за кодиране, за да се получи криптиран резултат, който не може да бъде декодиран, дори когато знаете хеша. Например паролата на потребителя може да бъде криптирана с хеш и съхранена в база данни. Ако хакер намери базата данни, той не може да декодира пароли. Когато потребител влезе, системата кодира паролата, която потребителят въвежда с хеша и сравнява резултата с този, съхранен в базата данни. Ако потребител забрави паролата си, той трябва да я промени, тъй като системата не знае оригиналната му парола, а само нейната криптирана стойност.