Как написать кодировщик данных Хэмминга? 👉 Разбираем алгоритм в теории.

Поделиться
HTML-код
  • Опубликовано: 21 окт 2024

Комментарии • 5

  • @АлексейМаксимушкин-я7ш
    @АлексейМаксимушкин-я7ш 11 месяцев назад +2

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

    • @CODOFILL
      @CODOFILL  11 месяцев назад +1

      Хочу постримить кодинг этого алгоритма. Думаю выделить для этого отдельный канал, но все таки на RUclips. Благодарю за отзыв!

  • @CODOFILL
    @CODOFILL  Год назад +2

    ⏱ Timecodes:
    00:00 - Вводная часть
    00:33 - Базовые понятия
    15:28 - Разбор алгоритма Хэмминга на диаграмме Венна
    20:36 - Алгоритм Хэмминга для данных произвольной длинны
    23:33 - 1. Выбираем размер данных для кодирования
    27:08 - 2. Определяем список и позиции контрольных бит
    29:13 - 3. Определяем списки контролируемых бит
    35:23 - 4. Определяем значения контрольных бит (вычисляем четность)
    37:23 - 5. Как работает проверка и исправление ошибок

  • @eruslan4ik
    @eruslan4ik 9 месяцев назад +1

    Расскажи пожалуйста как реализовать код если ошибочных бит несколько

    • @CODOFILL
      @CODOFILL  7 месяцев назад

      Обычно кодируемое слово с исправлением 1 бита умещают в слово которым оперирует процессор (чаще 16, реже 32 и еще реже 64 бит). Практически все железки на аппаратном уровне умеют это делать. Самый распространенный это слово умещающееся в 16 бит. В таком случае вычислять на лету не нужно, все варианты предопределены в виде хэштаблицы и зашиты в памяти, проверка заключается просто в мапинге по слову с минимальними вычислениями. Получается что если у тебя прилетает 1 Мб данных, то можно допустить до 8 млн ошибочных бит. Но это не ввсе. Есть еще алгоритм Рида Соломона, который дополнительно проверяет контрольную сумму бОльших фрагментов (порядка 1 Кб). Это двухуровневая проверка. Похожим образом работает память ECC. Буду стримить Хэмминга. Нужно размяться.