Основные этапы процесса декодирования данных после считывания для каждой дорожки приведены в таблице 5. Конкретную реализацию процесса декодирования осуществляет пользователь.
Таблица 5 - Процесс декодирования
Этап | Процесс |
1 | Считывают данные дорожки с карты |
2 | Расширяют идентификатор группы до размера восемь битов |
3 | Формируют структуру данных, как показано на рисунке 11 |
4 | Проверяют CRC дорожки {результат на всем поле }, (результат 0 - нет ошибок) |
Если при проверке CRC дорожки обнаружена ошибка, приступают к исправлению ошибки | |
5 | Проверяют CRC каждой группы. Ошибки, обнаруженные в группах, указывают на наличие ошибки в любом столбце в данной позиции байта |
6 | Если число ошибок в группах превышает возможности декодера, сообщают об ошибке носителя и процесс декодирования завершают. В противном случае переходят к выполнению следующих этапов. |
7 | Группы в положениях, соответствующих обнаруженным ошибкам, заполняют байтами с шестнадцатеричными нулями (00) (стирание данных допускается) |
8 | Затем используют контрольное число столбца с учетом позиций с ошибками для восстановления значений байтов данных [применяют код Рида-Соломона RS(18, 14)]. Эти значения байтов вставляют в позиции столбцов, соответствующие обнаруженным ошибкам |
9 | Проверяют CRC дорожки {для отсутствия ошибок результатом на всем поле должны быть все байты со значением 0} |
10 | Обрабатывают исправленные данные для вывода |
11 | Обрабатывают все дорожки аналогичным способом |
Примечание - Простейший процесс декодирования предполагает "стирание данных", но возможны также другие расширенные процессы. Существуют многочисленные источники, описывающие конкретные реализации декодирования (см. приложение Е).