ГОСТ Р ИСО/МЭК 19794-8—2015
Мнимые контрольные точки (идентификатор типа 00 и 11) отсутствуют в формате записи
контрольных точек отпечатка пальца.
Контрольная точка типа «другая» (идентификатор типа 00) отсутствует в формате записи остова
отпечатка пальца.
Контрольная точка с 4 и более ответвлениями (трифуркация и т. д.) не используется в формате
записи контрольных точек отпечатка пальца и может быть пропущена или закодирована как
контрольная точка типа «другая». В формате записи остова отпечатка пальца эти точки относятся к
типу «бифуркация гребня».
6.2 Кодирование гробновой линии остова с использованием кода направления
6.2.1 Код направления
Каждая линия на изображении остова кодируется ломаной линией. Каждый элемент ломаной
линии является фиксированным набором линейных элементов (см. 6.2.4). Линия начинается в точке со
смещенной координатой с начальным направлением и следующими характеристиками
контрольной точки:
- тип контрольной точки (2 бита: 00 — мнимое окончание гребня. 01 — действительное
окончание гребня. 10 — действительная бифуркация гребня. 11 — мнимое продолжение гребня);
- угол направления контрольной точки (число битов на запись определено в блоке «Общий
заголовок», диапазон 0° — 360° масштабируется согласно числу битов на запись);
- координата X (число битов на запись определено в блоке «Общий заголовок»); -
координата У (число битов на запись определено в блоке «Общий заголовок»); -
число следующих элементов направления (8 битов).
Последовательные элементы ломаной линии определяются изменением направления
относительно предыдущего элемента или, для первого элемента, относительно направления
контрольной точки, масштабируются и округляются до возможных значений кода направления и
углового разрешения (см. 6.2.4). Длина каждого элемента является функцией изменения направления
(см. 6.2.4):
- изменение направления (число битов направления и угловое разрешение определены в блоке
записи «Общий заголовок»; тип данных — целое число со знаком; наименьшее отрицательное число
(10...0) не используется для определения изменения направления; например, для числа битов
направления, равного 4. и для числа направлений от 0° до 180°. равного 32. диапазон целых чисел от
минус 7 до плюс 7 масштабируется в диапазон углов от минус 39,375° до плюс 39.375°);
- или в случае сильного изгиба гребневой линии может возникнуть необходимость сохранять
элементы направления при более высоком разрешении. Поэтому предусмотрена возможность
переключения между двумя различными уровнями разрешения. При появлении наименьшего
отрицательного числа (10...0) в коде, значение разрешения переключается между стандартным и
высоким. Кодирование линии всегда будет начинаться со стандартного разрешения. При первом
появлении (10...0) в коде значение разрешения изменяется на высокое и используется половина
длины шага; при втором появлении происходит обратное переключение к стандартному разрешению и
полной длине шага и т. д. (приложение С. таблица С.2);
- изменение направления повторяется до тех пор. пока не будет достигнут конец линии;
- тип контрольной точки конца линии (2 бита: 00 — мнимое окончание гребня, 01 —
действительное окончание гребня. 10 — действительная бифуркация гребня. 11 — мнимое
продолжение гребня).
Если линия остова заканчивается точкой мнимого окончания гребня (идентификатор типа 00), то
относительное расположение контрольной точки на линейном элементе является следующим:
- относительное расположение контрольной точки l/Sr масштабируется в диапазоне от 0 до 3,
то есть берется минимальное значение из двух: или 3, или целое значение от 4l/Sn. и сохраняется как
целое 2-битовое число без знака, где / — расстояние между началом последнего элемента линии и
контрольной точкой, a Sn— длина шага последнего элемента линии (рисунок 2);
- если линия остова заканчивается действительной контрольной точкой (идентификатор типа 01
или 10) или прерывается точкой мнимого продолжения гребня (идентификатор типа 11). то следуют
данные контрольной точки с выравниванием по байтам. Чтобы затраты на выравнивание
были небольшими, поступают следующим образом: если ранее сохраненный тип контрольной точки
конца линии уже выровнен по стартовому байту, то данные контрольной точки дополняются
путем добавления ее направления и расположения. Если тип контрольной точки конца линии не
выровнен по стартовому байту, то запись повторяется в начале следующего байта и
дополняется направлением и расположением.
В итоге, кодирование продолжается следующим образом:
5