Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 19794-8-2009 Автоматическая идентификация. Идентификация биометрическая. Форматы обмена биометрическими данными. Часть 8. Данные структуры остова отпечатка пальца

     6.2 Кодирование направления остова гребневой линии

6.2.1 Код направления

Каждая линия изображения остова кодируется ломаной линией. Каждый элемент ломаной линии взят из фиксированного набора линейных элементов направления (см. 6.2.4). Линия начинается в точке ответвления с начальным направлением и имеет соответствующие характеристики контрольной точки:

- тип контрольной точки (два бита: 00 - мнимое окончание, 01 - окончание гребня, 10 - бифуркация гребня, 11 - мнимое продолжение);

- направление контрольной точки (число битов на запись определено в заголовке записи, диапазон от 0° до 360° масштабируют согласно числу битов на запись);

- координата (число битов на запись определено в заголовке записи);

- координата (число битов на запись определено в заголовке записи);

- число следующих элементов направления (восемь битов).

Следующие элементы ломаной линии описывают изменением их направления относительно предыдущего элемента или для первого элемента - относительно направления контрольной точки, масштабируют и округляют до возможных значений кодов направления и разрешения (см. 6.2.4). Длина каждого элемента является функцией изменения направления (см. 6.2.4):

- изменение направления (число битов на запись направления и разрешения определены в заголовке записи; тип данных - целое число со знаком; (10...0) (отрицательное наименьшее число) не используют для определения изменения направления; например, если число битов, выделяемых на запись направления 180°, составляет 4 и 32 и указанный диапазон целого числа от минус 7 до плюс 7, то направление масштабируют в диапазон углов от минус 39,375° до плюс 39,375°);

- при высоком искривлении гребневой линии можно сохранить элементы направления в более высоком пространственном разрешении. Поэтому можно переключаться между двумя различными уровнями разрешения. При наименьшем отрицательном числе (10...0) значение разрешения переключается между стандартным (высоким). Кодирование линии всегда будет начинаться со стандартного разрешения. При первом появлении (10...0) в коде значение разрешения изменяется на высокое, используя половину длины шага; при втором появлении происходит обратное переключение к стандартному разрешению и полной длине шага и т.д. (таблица А.2);

- изменение направления повторяется до тех пор, пока не будет достигнут конец линии;

- тип контрольной точки конца линии (два бита: 00 - мнимое окончание, 01 - окончание гребня, 10 - бифуркация гребня, 11 - мнимое продолжение).

Если остов линии заканчивается мнимым окончанием (число 00), то относительное положение контрольной точки на линейном элементе является следующим:

- относительное положение контрольной точки масштабируют в диапазоне от 0 до 3, т.е. берут минимальное значение из двух: или 3, или целое значение от 4и сохраняют как целое число без знака два бита, где - расстояние между началом последнего элемента линии и контрольной точкой, a - длина шага последнего элемента линии (рисунок 2);

     
Рисунок 2 - Относительное расположение контрольной точки на линейном элементе ломаной линии - это отношение , где - длина линейного элемента, проходящего через контрольную точку ; - расстояние между начальной точкой линейного элемента и контрольной точкой ; - значение угла

- если остов линии заканчивается действительной контрольной точкой (число 01 или 10) или прерывается точкой типа мнимого продолжения (тип числа 11), то точка сохраняется в формате записи контрольных точек отпечатка пальца. Чтобы сохранить верхнее выравнивание в формате поступают следующим образом: если ранее сохраненный тип контрольной точки конца линии уже выровнен по стартовому байту, то данные контрольной точки дополняют добавлением ее направления и позиции. Если тип контрольной точки конца линии не выровнен, то запись повторяют с начала следующего байта, следующего за направлением и позицией.     

Таким образом, кодирование продолжают по следующей схеме:

- если ранее сохраненный тип контрольной точки конца линии не выровнен по стартовому байту, то запись повторяют с начала следующего байта. Любые неиспользованные биты, вызванные этим выравниванием, заполняют нулями;

- направление контрольной точки (в диапазоне от 0° до 360°, масштабируемое в соответствии с числом битов на запись направления, определенным в заголовке записи);

- координата (число битов на запись определено в заголовке записи);

- координата (число битов на запись определено в заголовке записи).

Если окончание контрольной точки имеет тип мнимое продолжение (число 11), описание линии продолжают с числа, описывающего следующий элемент направления (восемь битов) и его направления как описано выше.

Любые неиспользованные биты последнего байта для каждой закодированной линии заполняют нулями для достижения начала выровненного байта при следующем кодировании линии.

6.2.2 Общие правила кодирования остова линии

Для сохранения наименьшего кодирующего размера линия должна начинаться с действительной контрольной точки (тип 01 или 10), если это возможно.

Не существует ограничений на использование высокого разрешения или контрольных точек типа мнимого продолжения.

Примечание 1 - Высокое разрешение и контрольные точки типа мнимого продолжения являются вспомогательными данными для описания гребней. Одни методы используют для описания высокого искривления, а другие - для разметки линии, проходящей через бифуркацию, ядро или дельту или экстремумы в искривлении. Но так как вспомогательные данные увеличивают размер кодирования, то они должны использоваться только не взаимозаменяемым образом.