Кодировщик — преобразователь данных в код¶
Кодировщик — устройство, программа или алгоритм, выполняющий преобразование исходных данных (сигналов, изображений, звука, текста) в заданный формат кодирования. Термин применяется в нескольких областях: в информатике — программа или модуль, переводящий данные в конкретный формат или кодировку; в электронике — устройство, формирующее кодовые сигналы; в телекоммуникации — оборудование, преобразующее аналоговый сигнал в цифровой и обратно (кодек).
¶Кодировщики в информатике
В программировании кодировщик (encoder) — модуль, преобразующий данные в определённое представление. К ним относятся:
- Кодировщики символьных кодировок — программы, перекодирующие текст из одной кодировки в другую (например, из Windows-1251 в UTF-8). В Linux для этого служит утилита
iconv, в Windows — соответствующие API-функции. - Кодировщики сжатия — алгоритмы, уменьшающие объём данных (LZ77, Huffman, DEFLATE, Zstandard). Их противоположность — декодировщик (декомпрессор).
- Кодировщики мультимедиа — модули, преобразующие несжатые аудио- и видеоданные в сжатый формат (H.264/AVC, H.265/HEVC, VP9, AV1, AAC, Opus). Парная программа, восстанавливающая исходные данные, называется декодировщиком.
- Кодировщики данных — модули, переводящие данные в формат для передачи или хранения (Base64, JSON-сериализация, кодирование Хэмминга, свёрточные коды).
Типичный пример — кодировщик текста в формате UTF-8: он преобразует символы Unicode в последовательности байтов, обратимо и без потерь. Кодировщики сжатия, напротив, могут быть необратимыми (сжатие с потерями, как JPEG или MP3).
¶Кодировщики в электронике
В цифровой электронике кодировщик — это логическое устройство, преобразующее входной сигнал в код. Наиболее распространён аналого-цифровой преобразователь (АЦП), который дискретизует аналоговый сигнал и представляет его в виде двоичного кода. Обратное устройство — цифро-аналоговый преобразователь (ЦАП).
Также к кодировщикам относятся:
- Позиционные кодировщики — устройства, определяющие положение объекта (например, инкрементальные энкодеры в робототехнике и ЧПУ-станках).
- Кодировщики клавиатуры — матричные схемы, преобразующие нажатие клавиш в коды (используются в ПЛИС и микроконтроллерах).
- Кодировщики Шмидта — устройства, формирующие кодовые последовательности с заданными свойствами для передачи по каналам связи.
¶Кодировщики в телекоммуникации
В телекоммуникации кодировщик (encoder) — часть тракта передачи, преобразующая информационный сигнал в форму, пригодную для передачи по каналу. В цифровых системах связи это обычно:
- Источниковое кодирование — сжатие информации (например, кодирование Хаффмана в MP3).
- Канальное кодирование — добавление избыточности для защиты от ошибок (коды Рида — Соломона, LDPC, полярные коды, используемые в 5G).
- Модуляция — преобразование цифрового сигнала в аналоговый для передачи по физическому каналу.
Парный декодировщик на приёмной стороне выполняет обратные преобразования. Кодировщики и декодировщики образуют пару «кодек» (codec) — сокращение от «кодировщик-декодировщик».
¶Кодировщики в видео- и аудиотехнике
В мультимедиа термин «кодировщик» часто используется как синоним «энкодера» — программы или устройства, преобразующих несжатый видеопоток в сжатый формат. Примеры программных кодировщиков — x264, x265, FFmpeg, HandBrake. Аппаратные кодировщики встроены в видеокарты (NVIDIA NVENC, AMD VCE, Intel Quick Sync) и видеорегистраторы.
Кодировщики делятся на:
| Тип | Пример | Особенности |
|---|---|---|
| Сжатие без потерь | FLAC, PNG, ZIP | Полное восстановление исходных данных |
| Сжатие с потерями | MP3, JPEG, H.264 | Уменьшение объёма за счёт необратимых изменений |
| Стриминговые | RTMP, HLS | Оптимизированы для передачи по сети |
¶Применение
Кодировщики используются повсеместно: в системах видеонаблюдения, радиовещании, мобильной связи, хранении данных, передаче файлов по сети, встраиваемых системах. Без кодировщиков невозможно цифровое телевидение, сжатие фотографий, звуковые сообщения в мессенджерах и потоковая передача видео.
¶Интересные факты
- Стандарт JPEG был принят в 1992 году, MP3 — в 1993 году; оба формата до сих пор широко используются.
- Кодировщик H.265/HEVC сжимает видео примерно вдвое эффективнее H.264 при том же качестве, но лицензирование формата остаётся сложным.
- В 2015 году был представлен открытый видеокодек AV1, разработанный консорциумом Alliance for Open Media при участии Google, Mozilla, Microsoft и других компаний.
Источники:
- Райс Р. Цифровая обработка сигналов. — СПб.: Питер, 2007.
- Саймон Хейкин. Цифровая обработка сигналов. — М.: Вильямс, 2007.
- RFC 3550 — RTP: A Transport Protocol for Real-Time Applications.
- Стандарты ITU-T H.264 и H.265.
- Документация FFmpeg (ffmpeg.org).