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

Женщина, слушающая музыку на мобильном телефоне

Музыкальные файлы обычно кодируются с помощью кодека MP3.

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

Кодирование - это процесс преобразования данных между двумя форматами в соответствии с набором правил или формулой. Например, вы можете кодировать «abc» в «ABC», используя правила перевода строчных букв в прописные. Декодирование - обратный процесс. Вы можете декодировать «ABC» в «abc», используя тот же набор правил. Существует множество различных приложений для кодирования и декодирования данных. Например, шифрование - это форма кодирования, в которой используется ключ. Без ключа закодированные данные не могут быть декодированы. Видеоданные кодируются, чтобы уменьшить их размер, чтобы потоки видео высокой четкости можно было просматривать через Интернет.

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

Видео дня

Декодирование использует тот же кодек для восстановления исходного файла из закодированного файла. Например, применение Codec # 1 к «ZDQZ» в обратном порядке заменяет «Z» на «ABC» для создания исходного файла «ABCDQABC». Кодек №1, который был на 50 процентов меньше, называется кодеком без потерь, потому что декодирование всегда воссоздает исходный код. файл. Кодек №2 декодирует "YX" с помощью "ABC ??" ABC ", а затем пытается угадать, какие символы отсутствуют. Кодек может угадать «DE», что приведет к «ABCDEABC». Кодек №2, который был на 75 процентов меньше, представляет собой кодек с потерями, потому что процесс декодирования может создать файл, близкий к оригиналу, но не идентичный.

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

Не всякое кодирование дает результат меньше, чем некодированные данные. Например, URL-адрес example.com/Secret of Life.html недействителен, поскольку содержит пробелы. Веб-программист кодирует URL-адрес, который заменяет все пробелы на "% 20" для создания "example.com/Secret%20of%20Life.html." В процессе декодирования выполняется обратная операция и заменяет "% 20" пробелом. Точно так же программа базы данных может кодировать все данные в Unicode, главном наборе символов для большинства языков. Когда пользователь извлекает данные, программа декодирует Unicode в соответствии с языком пользователя и настройками клавиатуры.

Кодирование, которое невозможно декодировать

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