⏱ Timecodes: 00:00 - Вводная часть 00:33 - Базовые понятия 15:28 - Разбор алгоритма Хэмминга на диаграмме Венна 20:36 - Алгоритм Хэмминга для данных произвольной длинны 23:33 - 1. Выбираем размер данных для кодирования 27:08 - 2. Определяем список и позиции контрольных бит 29:13 - 3. Определяем списки контролируемых бит 35:23 - 4. Определяем значения контрольных бит (вычисляем четность) 37:23 - 5. Как работает проверка и исправление ошибок
Обычно кодируемое слово с исправлением 1 бита умещают в слово которым оперирует процессор (чаще 16, реже 32 и еще реже 64 бит). Практически все железки на аппаратном уровне умеют это делать. Самый распространенный это слово умещающееся в 16 бит. В таком случае вычислять на лету не нужно, все варианты предопределены в виде хэштаблицы и зашиты в памяти, проверка заключается просто в мапинге по слову с минимальними вычислениями. Получается что если у тебя прилетает 1 Мб данных, то можно допустить до 8 млн ошибочных бит. Но это не ввсе. Есть еще алгоритм Рида Соломона, который дополнительно проверяет контрольную сумму бОльших фрагментов (порядка 1 Кб). Это двухуровневая проверка. Похожим образом работает память ECC. Буду стримить Хэмминга. Нужно размяться.
Тоже читаю Таненбаума. Твое видео нашел, когда дошел до этой темы. Очень понятно рассказываешь. Спасибо!
Хочу постримить кодинг этого алгоритма. Думаю выделить для этого отдельный канал, но все таки на RUclips. Благодарю за отзыв!
⏱ Timecodes:
00:00 - Вводная часть
00:33 - Базовые понятия
15:28 - Разбор алгоритма Хэмминга на диаграмме Венна
20:36 - Алгоритм Хэмминга для данных произвольной длинны
23:33 - 1. Выбираем размер данных для кодирования
27:08 - 2. Определяем список и позиции контрольных бит
29:13 - 3. Определяем списки контролируемых бит
35:23 - 4. Определяем значения контрольных бит (вычисляем четность)
37:23 - 5. Как работает проверка и исправление ошибок
Расскажи пожалуйста как реализовать код если ошибочных бит несколько
Обычно кодируемое слово с исправлением 1 бита умещают в слово которым оперирует процессор (чаще 16, реже 32 и еще реже 64 бит). Практически все железки на аппаратном уровне умеют это делать. Самый распространенный это слово умещающееся в 16 бит. В таком случае вычислять на лету не нужно, все варианты предопределены в виде хэштаблицы и зашиты в памяти, проверка заключается просто в мапинге по слову с минимальними вычислениями. Получается что если у тебя прилетает 1 Мб данных, то можно допустить до 8 млн ошибочных бит. Но это не ввсе. Есть еще алгоритм Рида Соломона, который дополнительно проверяет контрольную сумму бОльших фрагментов (порядка 1 Кб). Это двухуровневая проверка. Похожим образом работает память ECC. Буду стримить Хэмминга. Нужно размяться.