ISO/IEC JTC 1/SC 37 N470 2004-03-01 Secretariat, ISO/IEC JTC 1/SC 37, American National Standards Institute, 25 West 43rd Street, New York, NY 10036; Telephone: 1 212 642 4932; Facsimile: 1 212 840 2298; Email: lrajchel@ansi.org Replaces: ISO/IEC JTC 1/SC 37 Biometrics Document Type: Text for CD ballot or comment Document Title: Text of ISO/IEC CD 19794-3, Biometric Data Interchange Formats — Part 3: Finger Pattern Spectral Data Document Source: Project Editor Project Number: Document Status: As per WG 3 Sydney recommendation 3.4, this document is circulated to SC 37 National Bodies for a three month CD letter ballot. In preparation for review of the ballot results at the June 2004 meeting, the Project Editor is instructed to prepare a summary of comments document, including a proposed Editor’s disposition of each comment. This Editor’s document will serve as the basis for discussion at the June 2004 WG 3 meeting. Special Note: Recipients of this document are invited to submit notification of any relevant patent rights of which they are aware and to provide supporting documentation. This information should also be submitted to the SC 37 Secretariat by June 1, 2004. Action ID: LB Due Date: 2004-06-01 Distribution: Medium: Disk Serial No: No. of Pages: 39 © ISO/IEC -2004 – All rights reserved Reference number of working document: ISO/IEC JTC 1/SC 37 N Date: 2004-03-01 Reference number of document: ISO/IEC CD 19794-3 Committee identification: ISO/IEC JTC 1/SC 37 Secretariat: ANSI Biometric Data Interchange Formats — Part 3: Finger Pattern Spectral Data Élément introductif — Élément principal — Partie n: Titre de la partie Warning This document is not an ISO International Standard. It is distributed for review and comment. It is subject to change without notice and may not be referred to as an International Standard. Recipients of this draft are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation. Document type: International standard Document subtype: if applicable Document stage: Document language: E ISO/IEC CD 19794-3 Copyright notice This ISO document is a working draft or committee draft and is copyright-protected by ISO. While the reproduction of working drafts or committee drafts in any form for use by participants in the ISO standards development process is permitted without prior permission from ISO, neither this document nor any extract from it may be reproduced, stored or transmitted in any form for any other purpose without prior written permission from ISO. Requests for permission to reproduce this document for the purpose of selling it should be addressed as shown below or to ISO’s member body in the country of the requester: ISO copyright officeCase postale 56 CH-1211 Geneva 20Tel: +41 22 749 01 11 Fax: +41 22 749 09 47E-mail copyright@iso.orgWeb www.iso.orgas appropriate, of the Copyright Manager of the ISO member body responsible for the secretariat of the TC or SC within the framework of which the draft has been prepared] Reproduction for sales purposes may be subject to royalty payments or a licensing agreement. Violators may be prosecuted. ISO/IEC CD 19794-3 Table of Contents 1 Scope ............................................................................................................................7 2 Conformance................................................................................................................7 3 Normative references ...................................................................................................7 4 Terms and definitions...................................................................................................7 4.1 Biometric measure............................................................................................... 7 4.2 Biometric Matching Algorithm............................................................................ 7 4.3 Biometric Data..................................................................................................... 8 4.4 Biometric Sample................................................................................................. 8 4.5 Biometric System................................................................................................. 8 4.6 Bit-Depth............................................................................................................. 8 4.7 Capture................................................................................................................ 8 4.8 Cell...................................................................................................................... 8 4.9 Cell Structure ...................................................................................................... 8 4.10 Cell Quality Group.............................................................................................. 8 4.11 Comparison......................................................................................................... 8 4.12 Crop .................................................................................................................... 9 4.13 Dimension............................................................................................................ 9 4.14 Down-sample....................................................................................................... 9 4.15 Encryption........................................................................................................... 9 4.16 Enrollment........................................................................................................... 9 4.17 Reduced resolution finger image.......................................................................... 9 4.18 Finger Pattern Spectral Data Interchange Data................................................... 9 4.19 Minimal Spatial Wavelength................................................................................ 9 4.20 Packed Data Format............................................................................................ 9 4.21 Pad..................................................................................................................... 10 4.22 Raw Fingerprint Image...................................................................................... 10 4.23 Reference Template ........................................................................................... 10 4.24 Resolution.......................................................................................................... 10 4.25 Template Size..................................................................................................... 10 5 Finger Pattern Spectral Interchange Data ..................................................................10 5.1 Overview............................................................................................................ 10 5.2 Step 1) Reduction in resolution.......................................................................... 10 ISO/IEC CD 19794-3 5.3 Step 2) Cellular Representation......................................................................... 11 5.3.1 Cell Structure .......................................................................................................................................12 5.4 Quality............................................................................................................... 14 6 Finger Pattern Spectral Data Record..........................................................................15 6.1 Introduction....................................................................................................... 15 6.2 Record Header................................................................................................... 16 6.2.1 Format Identifier..................................................................................................................................16 6.2.2 Version Number ..................................................................................................................................16 6.2.3 Length of Record .................................................................................................................................16 6.2.4 Capture Device ID..............................................................................................................................17 6.2.5 Number of Finger Patterns in Record..............................................................................................17 6.2.6 Resolution of Finger Pattern in x-direction....................................................................................17 6.2.7 Resolution of Finger Pattern in y-direction....................................................................................17 6.2.8 Number of Cells in x-direction.........................................................................................................17 6.2.9 Number of Cells in y-direction.........................................................................................................17 6.2.10 Number of Pixels in Cells in x-direction...................................................................................17 6.2.11 Number of Pixels in Cells in y-direction...................................................................................17 6.2.12 Cellular x-offset .............................................................................................................................17 6.2.13 Cellular y-offset .............................................................................................................................17 6.2.14 Number of Pixels between Cell Centers in x-direction ...........................................................18 6.2.15 Number of Pixels between Cell Centers in y-direction ...........................................................18 6.2.16 Number of Components Extracted from each cell...................................................................18 6.2.17 Type of window.............................................................................................................................18 6.2.18 Wavelength and angle generating mechanism for each filter ................................................18 6.2.19 Method for selecting retained components................................................................................18 6.2.20 Naming and ordering of retained components..........................................................................18 6.2.21 Bit-depth of Cell Structure Angle ...............................................................................................18 6.2.22 Bit-depth of Cell Structure Wavelength.....................................................................................19 6.2.23 Bit-depth of Cell Structure Phase Offset ...................................................................................19 6.2.24 Bit-depth of Cell Structure Quality.............................................................................................19 6.2.25 Cell Quality Granularity ...............................................................................................................19 6.2.26 Reserved Bytes...............................................................................................................................19 6.3 Single Finger Pattern Spectral Record Format.................................................. 19 6.3.1 Finger Pattern Record Header...........................................................................................................19 6.3.2 Finger Pattern Spectral Data .............................................................................................................21 6.3.3 Extended Data......................................................................................................................................21 7 Annex A (informative) - Finger Pattern Spectral Data Record Example 1...............29 8 Annex B (informative) - Finger Pattern Spectral Data Record Example 2...............34 9 Annex C (informative) - Finger Pattern Spectral Data Record Example 3...............37 ISO/IEC CD 19794-3 Foreword ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National Bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2. The main task of the joint technical committee is to prepare International Standards. Draft International Standards adopted by the joint technical committee are circulated to the member bodies for voting. Publication as an International Standard requires approval by at least 75 % of the member bodies casting a vote. Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. ISO/IEC19794-3 was prepared by Joint Technical Committee ISO/IEC JTC 1, Subcommittee SC 37, Biometrics. ISO/IEC19794 consists of the following parts, under the general title Biometric Data Interchange Formats:  Part 1: Framework  Part 2: Finger Minutiae Data  Part 3: Finger Pattern Spectral Data  Part 4: Finger Image Data  Part 5: Face Image Data  Part 6: Iris Image Data  Part 7: Signature/Sign Data  Part 8: Finger Pattern Skeletal Data ISO/IEC CD 19794-3 FINGER PATTERN SPECTRAL DATA FORMAT Introduction In the interest of implementing interoperable personal biometric recognition systems, this ISO/IEC Standard establishes a data interchange format for fingerprint spectral data exchange. Goal of the standard: to allow the exchange of local or global spectral data derived from a fingerprint image without the exchange of the entire image. This will allow more compact data representations. Further, we wish the standard to be useful to many aspects of the fingerprint recognition process, possibly including flow field extraction, level 1 characterization, “core” location, quality assessment, comparison methods, and (possibly) “privacy” assurance. This standard would allow for representation of both Discrete Fourier Transform and (single-scale) Gabor Filter components extracted from global or stationary (not image dependent and not varying over the image) local overlapping or non-overlapping uniform-sized regions of the original intensity (non-color) image. Some or all of the extracted spectral components will be stored in the data format, depending upon the implementation. Previous versions of this proposed standard will be seen as a particular example of this standard using non-overlapping local areas and retaining the phase, wavelength and offset of the highest energy spectral components from each local “cell”. This standard does not accommodate multi-scale (wavelet) decompositions. There are fingerprint recognition algorithms that use spectral data directly for pattern matching. Spectral data-based recognition algorithms process “globally" sections (cells) of biometric images, in contrast to morphological-based algorithms, which extract singularities in the morphological features. At the current time, there is no established mechanism for the interchange of finger pattern spectral information for use with spectral-based fingerprint matching algorithms. By establishing a standard for spectral-based representation of fingerprints, we: •Allow interoperability among fingerprint recognition vendors based on a small data record. •Support the proliferation of low-cost commercial fingerprint sensors with limited coverage, dynamic range, or resolution. •Define a data record format that can be used with portable devices and media, such as smart cards. •Encourage the adoption of biometrics in applications where interoperability is required. Note that it is recommended that biometric data protectiontechniques in ANSI/X9 X9.84 or ISO/IEC 15408:1999 are used to safeguard the biometric data defined herein for confidentiality, integrity and availability. ISO/IEC CD 19794-3 1 Scope This standard specifies the interchange format for the exchange of spectral-based fingerprint characterization data. 2 Conformance A biometric system or algorithm conforms to this standard if it satisfies the mandatory requirements for the generation of the finger pattern spectral cell information as defined in section 5 and the generation of the data record as described in section 6. 3 Normative references The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies. ANSI/INCITS 358-2002 - Information technology - BioAPI Specification ANSI/NIST-ITL 1-2000, Standard Data Format for the Interchange of Fingerprint, Facial, & Scar mark & Tattoo (SMT) Information ISO/IEC CD3 19785-1.3 - Common Biometric Exchange Formats Framework (CBEFF) ISO/IEC 15408:1999 - Evaluation criteria for IT security 4 Terms and definitions For the purposes of this -International Standard, the following terms and definitions apply. 4.1 Biometric measure A measurable, physical characteristic or personal behavioural trait used to recognize individuals. 4.2 Biometric Matching Algorithm A sequence of instructions used by a biometric system to process biometric information. A biometric matching algorithm is used by the biometric system to compute whether a biometric sample and a reference template/model originate from the same source (the same human body). ISO/IEC CD 19794-3 4.3 Biometric Data Information extracted from a biometric sample and used either to build a reference template (template data), reference model, or to compare against a previously created reference template (comparison data) or model. 4.4 Biometric Sample Raw data representing a biometric characteristic of an end-user as captured by a biometric system (for example, the image of a fingerprint). 4.5 Biometric System An automated system capable of: capturing a biometric sample from an end user; extracting biometric data from that sample; comparing the biometric data with that contained in one or more reference templates or models; deciding how well they match; and indicating whether or not a recognition has been made. 4.6 Bit-Depth The number of bits used to represent a data record parameter. 4.7 Capture The method of taking a biometric sample from the end user. 4.8 Cell Overlapping or non-overlapping regions of a fingerprint image (see 4.17) of single size across the entire image. Multi-scale cells are not accommodated in this standard. 4.9 Cell Structure Structure used to represent the information contents of cell. 4.10 Cell Quality Group The Group of Cells to which the Finger Quality parameter refers. 4.11 Comparison The process of measuring the similarity or difference between a biometric sample and a previously stored reference template or pattern generated by a model. ISO/IEC CD 19794-3 4.12 Crop Remove the outer regions of an image to reduce the size. 4.13 Dimension Number of pixels in an acquired biometric sample image either x- or y-direction. 4.14 Down-sample Reduce the resolution of an image by re-sampling the image with a reduced number of pixels. Proper filtering is implied to prevent aliasing. 4.15 Encryption The act of converting plain text into cipher-text through a reversible mathematical process. 4.16 Enrollment The process of collecting biometric samples from an individual and the subsequent preparation and storage of biometric reference templates or models. 4.17 Reduced resolution finger image Sub-portion and/or down-sampled version of a raw fingerprint image (see 4.22). 4.18 Finger Pattern Spectral Data Interchange Data Spectral data derived from the Finger Pattern. 4.19 Minimal Spatial Wavelength The minimal spatial wavelength is the (spatial) wavelength (measured in pixels) at which exactly two samples of an image span a complete period of a (co)sinusoidal pattern. This is therefore the maximal spatial frequency that can be supported by a sampling resolution, and is known as the Nyquist frequency. The minimal spatial wavelength is the inverse of the Nyquist frequency. 4.20 Packed Data Format Data are stored in a compacted bit form with no record separators or field tags - fields are separated by bit count only. ISO/IEC CD 19794-3 4.21 Pad Embed an image in a larger array (usually filled with zeroes) to produce a resulting image of greater dimension. 4.22 Raw Fingerprint Image Biometric sample as captured by a fingerprint sensor. This raw image will usually retain the full resolution and spatial extent permitted by the sensor. 4.23 Reference Template Processed Biometric Data stored as representative of the user’s biometric sample. 4.24 Resolution The number of picture elements (pixels) per unit length in a sampled fingerprint image. Pixels per cm (ppcm) will be used in this standard as the units of resolution. Note that 1 pixel per cm (ppcm) = 2.54 pixels per inch (ppi). 4.25 Template Size The amount of computer (or storage medium) memory taken up by the biometric reference template. 5 Finger Pattern Spectral Interchange Data 5.1 Overview This ISO/IEC standard for finger pattern spectral interchange data is based on: 1) conversion of the raw fingerprint image to a cropped and down-sampled finger pattern, followed by; 2) cellular representation of the finger pattern image to create the finger pattern spectral interchange data. 5.2 Step 1) Reduction in resolution Spectral pattern-based fingerprint processing may require less image resolution than is traditionally provided by sensors. Therefore, the first step in data reduction typically involves a re-sampling of the data to a lower resolution. ISO/IEC CD 19794-3 5.3 Step 2) Cellular Representation Finger Pattern Sample Cell Figure 1. Diagram to illustrate Cellular Representation of Finger Pattern. Cellular representation of the finger pattern data comprises dividing the central, or other, portion of the finger pattern into a grid of overlapping or non-overlapping cells. At each cell, the finger pattern will be represented by one of a number of different cell structures, as described below. ISO/IEC CD 19794-3 5.3.1 Cell Structure Each of the cells can be decomposed into a two-dimensional spectral representation. In the case of square cells of side N, a two-dimensional Discrete Fourier Transform (DFT) will result in N/2 complex spectral components in one dimension and N complex components in the other. Each component will be characterized by a wavelength in the x and y directions (which combined indicate propagation direction), an amplitude, and a phase. For each spectral component, the spatial frequency,f, is given by SQRT(f2 x + f2 y). The wavelength, λ, is given by the inverse of the spatial frequency. The propagation angle, θ, for each component is given by ARCTAN (fy, fx). In the case of the cell dimension being the same as that of the entire image, the DFT spectral representation becomes a globa l decomposition. An NxM image will have N/2 by M/2 discrete frequencies in spectral decomposition. If all N*M/4 frequency magnitude/phase or complex components are stored, the image can be exactly reconstructed by these N*M/2 components. Storage and reconstruction from fewer components will result in information loss, meaning that the exact image will not be reconstructable from the reduced number of components. Depending upon the number and selection method, minutiae patterns may be reconstructable fromsome reduced sets of components. A two-dimensional spectral decomposition of an entire image using a 2-d Discrete Fourier Transform (DFT) should show most of the spectral energy within an annulus of the frequency plane. For most people, this annulus will be at about the 14 -18 pixel wavelength when the original sampling is at 500dpi. Of course other image resolutions will have different spatial wavelengths. In the case of cell dimensions on the order of a ridge wavelength, the DFT spectral decomposition of the finger pattern may be dominated by a single component of high amplitude and a spatial wavelength on the order of the finger pattern ridge wavelength. Such a case is shown in Figure 2. ISO/IEC CD 19794-3 Sample Cell θ λ δ (0,0) x y Figure 2. Cellular Representation of Finger Pattern. The range of each of these parameters is given below: θ: 0 to 180 degrees • Note that 0 degrees is defined as parallel to the x, or horizontal, axis, and θ increases in a counter-clockwise rotation. λ, minimal spatial wavelength to ∞ (but limited in practice to twice the number of pixels across the longest diagonal in the image) f: 0 to Maximal Spatial Frequency δ: 0 to 360 degrees • Note that δ is defined between the origin of the cell (at the bottom-left corner) and the location of the first crest of the co-sinusoidal function in a positive direction in either x or y (or both) directions. ISO/IEC CD 19794-3 Figure 3 below demonstrates an example of the primary spectral component of a finger pattern cell of size on the order of a ridge wavelength. Both of the images in this figure were enhanced for illustrative purposes. a) b) Figure 3. a) Example of the local finger pattern information in a cell, and b) the resulting cell structure chosen for representation. In this manner, each of the finger pattern cells is represented by one of the possible permutations of cell structure. In the case of cells of size on the order of a ridge wavelength, the resulting data will comprise the majority of the public portion of the Finger Pattern Spectral Data Record. Note that in the case of a cell containing a bifurcation, a ridge ending, or both, the cell permutation shall be chosen purely on the basis of finding the closest matching candidate cell structure with the information contained within the cell. To prevent aliasing in the two-dimensional DFT, it could be desirable to window the image prior to spectral decomposition. One useful window is the two dimensional Gaussian. Closely related to the Gaussian windowed DFT is the application of Gabor filters of predetermined wavelength and direction to the image. This standard accommodates the reporting of Gabor amplitudes for each of the selected filters on each cell. 5.4 Quality For each group of cells defined above, a quality parameter provides an indication of the quality of the information in that group of cells, with higher numbers indicating better quality. A quality granularity parameter will specify the number of cells in a Cell Quality Group: for example a value of 1 indicates a group comprises 1x1 cells; and a value of 2 indicates that a group comprises 2x2 cells. Some factors that contribute to the quality of the finger pattern cell information are gray scale resolution, gray scale linearity, spatial distortions, and location of the finger core within the raw fingerprint image. ISO/IEC CD 19794-3 6 Finger Pattern Spectral Data Record 6.1 Introduction The finger pattern spectral data record format is used to provide interoperability between fingerprint recognition systems using spectral data in some way. The record format contains both public and extended (proprietary) finger pattern spectral interchange data. With the exception of the Format Identifier and the Version number for the standard, which are null-terminated ASCII character strings, all data is represented in binary format. There are no record separators or field tags; fields are parsed by byte count. The biometric data record specified in this standard shall be embedded in a CBEFF-compliant structure in the CBEFF Biometric Data Block (BDB). The BDB_PID shall be defined by CBEFF. The CBEFF BDB_biometric_organization shall be assigned by the International Biometric Industry Association (IBIA) to JTC 1 SC 37 shall be used. This is the sixteen bit value 0x0101 (hexadecimal 101 or decimal 257). There are two different CBEFF BDB_format codes codes assigned to this standard: one for a record without an extended data portion, and one for a format with the extended data portion. If the record has no extended data, the associated CBEFF BDB_format shall be the sixteen-bit value 0x0301; if the record has an extended area, the associated CBEFF BDB_format shall be the sixteen-bit value 0x0302. The organization of the record is as follows: A fixed-length (49 bytes) Record Header containing information about the overall record, including the number of fingers represented and the overall record length in bytes; A single Finger Pattern Spectral Data Record for each finger, consisting of: Fixed length header (8 bytes) containing information about the data for a single finger Finger pattern spectral interchange data block (the block of cell data is followed by a block of quality data). Extended data block - containing vendor-specific data. ISO/IEC CD 19794-3 Record Header Finger Pattern Interchange Data Extended Data Finger Pattern Data Record Finger Pattern Record Header Finger Pattern Record Header Finger Pattern Interchange Data Finger Pattern 1 All multi-byte quantities are represented in Big-Endian format; that is, the more significant bytes of any multibyte quantity are stored at lower addresses in memory than (and are transmitted before) less significant bytes. All numeric values are fixed-length integer quantities, and are unsigned quantities. 6.2 Record Header There shall be one and only one record header for the finger pattern spectral record, to hold information describing the identity and characteristics of device that generated the data. 6.2.1 Format Identifier For this standard, the Format Identifier shall consist of three characters "FPR" followed by the null character (0x0). 6.2.2 Version Number The version number for the version of this standard used in constructing the pattern spectral record shall be placed in four bytes. This version number shall consist of three ASCII numerals followed by a zero byte as a NULL string terminator. The first and second character will represent the major revision number and the third character will represent the minor revision number. Upon approval of this specification, the version number shall be " 10" (an ASCII space followed by an ASCII '1' and an ASCII '0'). 6.2.3 Length of Record The length of the entire record shall be recorded in four bytes. ISO/IEC CD 19794-3 6.2.4 Capture Device ID The Capture Device ID shall be recorded in two bytes. A value of all zeros will be acceptable and will indicate that the Capture Device ID is unreported. 6.2.5 Number of Finger Patterns in Record The total number of finger patterns in the record shall be contained in 1 byte. 6.2.6 Resolution of Finger Pattern in x-direction The resolution (in ppcm) of the finger image(s) in the x-direction shall be record in 2 bytes. The stored valued shall be ROUND(ppcm). 6.2.7 Resolution of Finger Pattern in y-direction The resolution (in ppcm) of the finger images(s) in the y-direction shall be record in 2 bytes. The stored valued shall be ROUND(ppcm). 6.2.8 Number of Cells in x-direction The number of finger pattern cells in the x-direction shall be recorded in 1 byte. 6.2.9 Number of Cells in y-direction The number of finger pattern cells in the y-direction shall be recorded in 1 byte. 6.2.10 Number of Pixels in Cells in x-direction The number of pixels in the x-direction of each cell shall be recorded in 2 bytes. 6.2.11 Number of Pixels in Cells in y-direction The number of pixels in the y-direction of each cell shall be recorded in 2 bytes. 6.2.12 Cellular x-offset The number of pixels in the x-direction of the finger image before the first cell shall be recorded in 1 byte. 6.2.13 Cellular y-offset The number of pixels in the y-direction of the finger image before the first cell shall be recorded in 1 byte. ISO/IEC CD 19794-3 6.2.14 Number of Pixels between Cell Centers in x-direction The number of pixels in the x-direction of the finger image between centers of adjacent or overlapping cells. This will require 1 byte. 6.2.15 Number of Pixels between Cell Centers in y-direction The number of pixels in the y-direction of the finger image between centers of adjacent or overlapping cells. This will require 1 byte. 6.2.16 Number of Components Extracted from each cell Number of DFT components or filters applied to each cell. Not all of these components are necessarily stored in the record. This will require 2 bytes. 6.2.17 Type of window This field will specify any window used on the cells prior to spectral decomposition and the window parameters. In the case of Gabor filtering, this field will specify Gaussian window and give the value of the single Gaussian parameter, σ, in units of pixels. Multiscale windowing parameters will not be accommodated. This will require 2 bytes. 6.2.18 Wavelength and angle generating mechanism for each filter This field is used for specifying the wavelength parameters of the Gabor filters used on the cells. Values for all of the filter outputs might not be saved, however, in the record. Multi-scale Gabor filtering will not be accommodated. In the case of two-dimensional DFT, this field can simply indicate DFT. This will require 1 byte. 6.2.19 Method for selecting retained components This field will specify retention of all components, the K highest energy components or components above a threshold energy. This will require 1 byte. 6.2.20 Naming and ordering of retained components In the case where only some of the spectral components are retained, it will be necessary to specify the meaning of each of the stored components. Example of data in the field – (Spatial wavelength, magnitude, propagation angle, magnitude, phase angle, magnitude) or (x wavelength, complex magnitude, y wavelength, complex magnitude). This will require 1 byte. 6.2.21 Bit-depth of Cell Structure Angle The bit-depth used to represent the Cell Structure Angle shall be recorded in 1 byte. ISO/IEC CD 19794-3 6.2.22 Bit-depth of Cell Structure Wavelength The bit-depth used to represent the Cell Structure Wavelength shall be recorded in 1 byte. 6.2.23 Bit-depth of Cell Structure Phase Offset The bit-depth used to represent the Cell Structure Phase Offset shall be recorded in 1 byte. 6.2.24 Bit-depth of Cell Structure Quality The bit-depth used to represent the Cell Structure Quality shall be recorded in 1 byte. 6.2.25 Cell Quality Granularity The granularity of the cell quality shall be recorded in 1 byte. The granularity is calculated as SQRT(Number of Cells in Cell Quality Group). 6.2.26 Reserved Bytes Two bytes are reserved for future revision of this specification. For Version 1.0 of this standard, these byte values must be set to 0. 6.3 Single Finger Pattern Spectral Record Format 6.3.1 Finger Pattern Record Header A finger header shall start each section of finger data providing information for that finger. There shall be one finger header for each finger contained in the finger pattern spectral record. The finger header will occupy a total of eight bytes as described below. 6.3.1.1 Finger Location The finger location shall be recorded in one byte. The codes for this byte shall be as defined in Table 5 of ANSI/NIST-ITL 1-2000, "Data Format for the Interchange of Fingerprint Information". This table is reproduced here in Table 1 for convenience. Only codes 0 through 10 shall be used; the "plain" codes are not relevant for this standard. Table 1 - Finger Location Codes Finger location Code Unknown finger 0 Right thumb 1 Right index finger 2 Right middle finger 3 Right ring finger 4 Right little finger 5 Left thumb 6 ISO/IEC CD 19794-3 Left index finger 7 Left middle finger 8 Left ring finger 9 Left little finger 10 Plain right thumb 11 Plain left thumb 12 Plain right four 13 Plain left four fingers 14 6.3.1.2 Impression type The impression type of the finger image(s) shall be recorded in this one byte field. Nonlive entries refer to images scanned from cards or other media. These codes are compatible with Table 4 of ANSI/NIST-ITL 1-200, "Data Format for the Interchange of fingerprint Information", with the addition of the "swipe" type. The swipe type identifies templates derived from the image streams generated by sliding the finger linearly across a small sensor surface. Only codes 0 through 3 and 8 shall be used; the "latent" codes are not relevant for this standard. Table 2 - Finger impression type Description Code Live-scan plain 0 Live-scan rolled 1 Nonlive-scan plain 2 Nonlive-scan rolled 3 Latent impression 4 Latent tracing 5 Latent photo 6 Latent lift 7 Swipe 8 Reserved 9 6.3.1.3 Number of Views in Finger Pattern Some systems may have more than one finger record for the same finger. Each of these records represents a different view of the finger. The total number of views within each Finger Pattern Record shall be recorded in 1 byte. 6.3.1.4 Finger Pattern Quality The quality of the overall finger pattern shall be between 0 and 100 and recorded in one byte. This quality number is an overall expression of the quality of the finger pattern. A value of 0 shall represent the lowest possible quality and the value 100 shall represent the highest possible quality. The numeric values in this field will be set in accordance with ISO/IEC CD 19794-3 the general guidelines contained in Section 2.1.42 of ANSI/INCITS 358-2002, "BioAPI H-Level Specification Version 1.1". Further, a quality value of 101 indicates that the raw image from which the finger pattern was derived complied with Appendix F of the Electronic Fingerprint Transmission Specification (http://www.fbi.gov/hq/cjisd/iafis/efts_70.pdf). 6.3.1.5 Length of Data Block The total length of the finger data block (including the extended data) shall be contained in 2 bytes. 6.3.2 Finger Pattern Spectral Data 6.3.2.1 Finger Pattern Spectral Interchange Data 6.3.2.1.1 View Number Preceding the Finger Pattern Cell Data is the View Number, which is a number starting from 0 that sequentially identifies each of the views of a finger contained in this finger pattern record. The view number shall be recorded in 1 byte. 6.3.2.1.2 Finger Pattern Spectral Data The Finger Pattern Spectral Data shall be stored in a packed format with the data corresponding to the upper left cell stored first, followed by the cell on right of this first cell, and so on until the first row and then subsequent rows are stored. 6.3.2.1.3 Cell Quality Data The Cell Quality Data shall follow the Finger Pattern Spectral Data and shall be stored in an identical manner, starting with the upper left value. 6.3.3 Extended Data The extended data section of the finger pattern spectral record is open to placing additional data that may be used by the matching equipment. The size of this section shall be kept as small as possible, augmenting the data stored in the standard finger pattern section. The extended data for each finger view shall immediately follow the standard finger pattern spectral data for that finger view and shall begin with the Extended Data Block Length field. More than one extended data area may be present for each finger and the extended data block length field will be the summation of the lengths of each extended data segment. The data block length is used as a signal for the existence of the extended data while the individual extended data length fields are used as indices to parse the extended data. Note that the extended data area cannot be used alone, without the standard portion of the finger pattern spectral record. ISO/IEC CD 19794-3 6.3.3.1 Extended Data Fields 6.3.3.1.1 Extended Data Block Length All finger pattern spectral interchange data records shall contain the extended data block length. This field will signify the existence of extended data. A value of all zeros (0x0000 hexadecimal) will indicate that there is no extended data and that the file will end or continue with the next finger view. A nonzero value will indicate the length of all extended data starting with the next byte. The block length (6.3.3.1.1) will then be followed by the type identification code (6.3.3.1.2), length of data field (6.3.3.1.3) and the data area (6.3.3.1.4). This will require two bytes. 6.3.3.1.2 Extended Data Area Type Code The type identification code shall be recorded in two bytes, and shall distinguish the format of the extended data area (as defined by the Vendor specified by the PID code in the CBEFF header). A value of zero in both bytes is a reserved value and shall not be used. A value of zero in the first byte, followed by a non-zero value in the second byte, shall indicate that the extended data section has a format defined in this standard. A nonzero value in the first byte shall indicate a vendor specified format, with a code maintained by the vendor. Refer to Table 3 for a summary of the type identification codes. If the Extended Data Block Length (6.3.3.1.1) for the finger view is zero, indicating no extended data, this field shall not be present. Table 3 - Extended Data Area Type Codes First byte Second byte Identification 0x00 0x00 Reserved 0x00 0x01 reserved 0x00 0x02 core and delta data (Section 6.3.3.3) 0x00 0x03 Reserved 0x00 0x04-0xFF Reserved 0x01-0xFF 0x00 Reserved 0x01-0xFF 0x01-0xFF vendor-defined extended data 6.3.3.1.3 Extended Data Area Length The length of the extended data section, including the vendor identification and length of data fields, shall be recorded in two bytes. This value is used to skip to the next extended data if the matcher cannot decode and use this data. If the Extended Data Block Length (6.3.3.1.1) for the finger view is zero, indicating no extended data, this field shall not be present. ISO/IEC CD 19794-3 6.3.3.1.4 Data Section The data field of the extended data is defined by the equipment that is generating the finger pattern spectral record, or by the core and delta extended data format contained in this standard. If the Extended Data Block Length (6.3.3.1.1) for the finger view is zero, indicating no extended data, this field shall not be present. 6.3.3.2 Core and Delta Data Format If the extended data area type code is 0x0002, the extended data area contains core and delta information. This format is provided to contain optional information about the placement and characteristics of the cores and deltas on the original fingerprint image. Core and delta points are determined by the overall pattern of ridges in the fingerprint. There may be one or more core points and zero or more delta points for any fingerprint. Core and delta points may or may not include angular information. The core and delta information shall be represented as follows. The first byte shall contain the core information type and the number of core points included; legal values are 0 or greater. This length byte shall be followed by the position and angular information for the cores. The next byte shall contain the delta information type and the number of delta points included; legal values are 0 or greater. This length byte shall be followed by the position and angular information for the deltas. 6.3.3.2.1 Core Information Type The core information type shall be recorded in the first two bits of the upper byte of the number of cores. The bits “01” will indicate that the core has angular information while “00” will indicate that no angular information is relevant for the core type. If this field is “00”, then the angle fields shall not be present for the cores. 6.3.3.2.2 Number of Cores The number of core points represented shall be recorded in the least significant four bits of this byte. Valid values are from 0 to 15. 6.3.3.2.3 Core Position The x coordinate of the core shall be recorded in the lower fourteen bits of the first two bytes (fourteen bits). The y coordinate shall be placed in the lower fourteen bits of the following two bytes. The coordinates shall be expressed in pixels at the resolution indicated in the record header. 6.3.3.2.4 Core Angle The angle of the core shall be recorded in one byte in units of 1.40625 (360/256) degrees. The value shall be a non-negative value between 0 and 255, inclusive. For example, an angle value of 16 represents 22.5 degrees. If the core information type is zero (see Section 6.3.3.2.1), then this field shall not be present. ISO/IEC CD 19794-3 6.3.3.2.5 Delta Information Type The delta information type shall be recorded in the first two bits of the upper byte of the number of deltas. The bits “01” will indicate that the delta has angular information while “00” will indicate that no angular information is relevant for the delta type. If this field is “00”, then the angle fields shall not be present for the deltas. 6.3.3.2.6 Number of Deltas The number of delta points represented shall be recorded in the least significant four bits of this byte. Valid values are from 0 to 15. 6.3.3.2.7 Delta Position The X coordinate of the delta shall be recorded in the lower fourteen bits of the first two bytes (fourteen bits). The Y coordinate shall be placed in the lower fourteen bits of the following two bytes. The coordinates shall be expressed in pixels at the resolution indicated in the record header. 6.3.3.2.8 Delta Angles The three angle attributes of the delta shall each be recorded in one byte in units of 1.40625 (360/256) degrees. The value shall be a non-negative value between 0 and 255, inclusive. For example, an angle value of 16 represents 22.5 degrees. If the delta information type is zero (see Section 6.3.3.2.5), then this field shall not be present. ISO/IEC CD 19794-3 6.3.3.2.9 Core and Delta Format Summary The core and delta format shall be as follows: 6.3.3.2.1 6.3.3.2.2 6.3.3.2.3 6.3.3.2.3 6.3.3.2.4 Core info type # of cores Reserved X location Reserved Y location Core Angle … … … type # cores reserved x coordinate reserved y coordinate angle … … … 2 bits 6 bits 2 bits 14 bits 2bits 14 bits 1 byte 5 bytes 1 byte 2 bytes 2bytes only present if core info type not zero zero or more additional cores 6.3.3.2.5 6.3.3.2.6 6.3.3.2.7 6.3.3.2.7 6.3.3.2.8 Delta info type # of deltas Reserved X location Reserved Y location Delta Angles … … … Type # deltas reserved x coordinate reserved y coordinate ang1 ang2 ang3 … … … 2 bits 6bits 2 bits 14 bits 2 bits 14 bits 3 bytes 5 bytes 1 byte 2 bytes 2 bytes only present if delta info type not zero zero or more additional deltas ISO/IEC CD 19794-3 Table 4. Summary of Finger Pattern Spectral Data Record Record Header Field Size Valid values Reference Format Identifier 4 bytes 0x46505200 ('F 'P 'R 0x0) 6.2.1 Version Number 4 bytes 6.2.2 Length of Record 4 bytes 6.2.3 Capture Device ID 2 bytes 6.2.4 Number of Finger Patterns in Record 1 byte 1-255 6.2.5 Resolution of finger pattern in x-direction ROUND(ppcm) 2 bytes 1-788 6.2.6 Resolution of finger pattern in y-direction ROUND(ppcm) 2 bytes 1-788 6.2.7 Number of Cells in x-direction 2 bytes 1-(size of finger pattern in x- direction) 6.2.8 Number of Cells in y-direction 2 bytes 1-(size of finger pattern in y- direction) 6.2.9 Number of Pixels in Cells in x-direction 2 bytes 1-(size of finger pattern in x- direction) 6.2.10 Number of Pixels in Cells in y-direction 2 bytes 1-(size of finger pattern in y- direction) 6.2.11 Cellular x-offset 2 bytes 0- (size of finger pattern in x- direction) 6.2.12 Cellular y-offset 2 bytes 0- (size of finger pattern in y- direction) 6.2.13 Number of Pixels between Cell Centers in x- direction 2 bytes 0– (size of finger pattern in x- direction) 6.2.14 Number of Pixels between Cell Centers in y- direction 2 bytes 0– (size of finger pattern in x- direction) 6.2.15 ISO/IEC CD 19794-3 Number of components extracted from each cell 2 bytes 1– (total number of pixels in the cell) 6.2.16 Type of window and parameter 2 bytes Name of window and controlling parameters 6.2.17 Wavelength and angle generating mechanism for filters 1 byte Starting spatial wavelength and delta wavelength, or listing of wavelengths; starting angle and delta angle, or listing of angles 6.2.18 Method of selecting retained components 1 byte All, top k energy, components above an energy thr eshold 6.2.19 Naming and ordering of retained components 1 byte Naming of component descriptors and component values 6.2.20 Bit-depth of Cell Structure Angle 1 byte 1-8 6.2.21 Bit-depth of Cell Structure Wavelength 1 byte 1-8 6.2.22 Bit-depth of Cell Structure Phase Offset 1 byte 1-8 6.2.23 Bit-depth of Cell Structure Quality 1 byte 1-8 6.2.24 Cell Quality Granularity 1 byte 1-8 6.2.25 Reserved Bytes 2 bytes 6.2.26 Finger Pattern Spectral Record Header Field Size Values Reference Finger Location 1 byte 0-11 Table 1 Impression Type 1 byte 0-5 Table 2 Number of Views in Finger Pattern Record 1 byte 0-255 6.3.1.3 Fingerprint Pattern Quality 1 byte 0-100 6.3.1.4 ISO/IEC CD 19794-3 Length of data block (in bytes) including extended data 2 bytes 6.3.1.5 Extended Data Block Length 2 bytes 6.3.3.1.1 Finger Pattern Spectral Data Field Size Content Reference View Number 1 byte 6.3.2.1.1 Finger pattern spectral Cell Data 6.3.2.1.2 Cell Quality Data 6.3.2.1.3 Finger pattern spectral Extended Data 6.3.3 ISO/IEC CD 19794-3 7 Annex A (informative) - Finger Pattern Spectral Data Record Example 1 This informative annex provides an example of finger pattern spectral interchange data. A.1 Reduction in Resolution An example of a re-sampled image is shown below in figure 5, where an original 128x128 image, sampled at 98.5 ppcm (250 ppi), is first cropped to 120x120 pixels and then re-sampled to 78.8 ppcm (200 ppi), to produce an image of dimensions 96x96 pixels. ISO/IEC CD 19794-3 A.2 Cellular Representation In this example, the cellular representation of the finger pattern spectral data comprises dividing the central portion (at an offset of 13 pixels in the x-direction and 8 pixels in the y-direction) of the finger pattern into a grid of cells of dimension 5x5 pixels. Therefore, the cellular representation grid contains 14x16 cells, which represents an image area of 70x80 pixels, or 8.9x10.1 mm. At each cell the finger pattern will be represented by one of 1024 different cell structures, as described below. A.3 Cell Structure Each of the candidate cell structures for representing the local finger pattern spectral data at each cell is defined by a two dimensional cosinusoidal pattern (see figures 7) ISO/IEC CD 19794-3 The range and resolution of each of these parameters for this example is given below: θ: 0 to 180 degrees (16 equal increments - i.e. 4 bits of information). λ: 0 to 7/8 of the wavelength of the Maximal Spatial Frequency (8 increments - i.e. 3 bits of information). Therefore, for this 78.8 ppcm (200 ppi) example, a spatial frequency of 0 to 3.4 line pairs per mm is represented). δ: 0 to 315 degrees (8 equal increments - i.e. 3 bits of information). In this example, each of the finger pattern cells is represented by the most similar of the 1024 (16x8x8) permutations of cell structure. Therefore, each cell structure requires 10 bits of data storage (reduced from 5x5x8 bits = 200 bits per cell). In this manner, each of the finger pattern cells is represented by one of the 1024 permutations of cell structure. The resulting data will comprise the majority of the public portion of the Finger Pattern Spectral Data Record. In this example, the finger pattern is represented by 14x16x10 bits (14 cells by 16 cells by 10 bits), which requires 280 bytes of storage. A.4 Quality A value of 2 indicates that a group comprises 2x2 cells. For the example stated here with 14x16 cells, and a quality granularity of 2 (2x2 cells), 56 quality parameter values will be required, at a bit-depth of 4, thus adding 28 bytes to the interchange data. ISO/IEC CD 19794-3 A.5 Data Record For the example stated here, the data record comprises the following values and occupies a total of 365 bytes: Table 5. Finger Pattern Spectral Data Record Record Header Field Size Value Format Identifier 4 bytes 0x46505200 ('F 'P 'R 0x0) Version Number 4 bytes Length of Record 4 bytes 365 Capture Device ID 2 bytes Number of Finger Patterns in Record 1 byte 1 Image Resolution of finger pattern in x- direction ROUND(ppcm) 2 bytes 79 Image Resolution of finger pattern in y- direction ROUND(ppmm) 2 bytes 79 Number of Cells in x-direction 2 bytes 14 Number of Cells in y-direction 2 bytes 16 Number of Pixels in Cells in x-direction 2 bytes 5 Number of Pixels in Cells in y-direction 2 bytes 5 Cellular x-offset 2 bytes 13 Cellular y-offset 2 bytes 8 Number of Pixels between Cell Centers in x- direction 2 bytes 5 Number of Pixels between Cell Centers in y- direction 2 bytes 5 Number of components extracted from each cell 2 bytes 16 ISO/IEC CD 19794-3 Type of window and parameter 2 bytes G,3 Wavelength and angle generating mechanism for filters 1 bytes 14 (only spatial wavelength), 0 (Starting angle), 11.3 degrees (delta angle) Method of selecting retained components 1 byte top 1 energy Naming and ordering of components 1 byte Angle, wavelength, phase Bit-depth of Cell Structure Angle 1 byte 4 Bit-depth of Cell Structure Wavelength 1 byte 3 Bit-depth of Cell Structure Phase Offset 1 byte 3 Bit-depth of Cell Structure Quality 1 byte 4 Cell Quality Granularity 1 byte 2 Reserved Bytes 2 byte Field Size Value Finger Location 1 byte 2 Finger Impression 1 byte 0 View Number 1 byte 0 Fingerprint Pattern Quality 1 byte 80 Length of data block (in bytes) including private data 2 bytes 308 Extended Data Block Length 2 bytes 0 Finger Pattern Cell Data 308 bytes Finger pattern spectral Extended Data 0 bytes ISO/IEC CD 19794-3 8 Annex B (informative) - Finger Pattern Spectral Data Record Example 2 This informative annex provides an example of finger pattern spectral interchange data for a global DFT on a 400x600 pixel image with retention of all components to allow lossless invertibility. B.1 Cell structure In this example, there is one cell for each finger view. The 400 x 600 pixel images are padded with zeros equally on left and right sides and equally top and bottom to create a 512x1024 image. A global DFT is performed with retention of all components 512x512 complex components to allow lossless invertibility. There will be no windowing. The Nyquist number of components will be generated (in this case 512). Selection criteria will be all Nyquist frequencies, N. All 524,288 components will be retained as complex (C) coefficients (requiring TBD bytes of storage each). Table 6. Finger Pattern Spectral Data Record Record Header Field Size Value Format Identifier 4 bytes 0x46505200 ('F 'P 'R 0x0) Version Number 4 bytes Length of Record 4 bytes TBD Capture Device ID 2 bytes Number of Finger Patterns in Record 1 byte 1 Image Resolution of finger pattern in x- direction ROUND(ppcm) 2 bytes 79 Image Resolution of finger pattern in y- direction ROUND(ppmm) 2 bytes 79 Number of Cells in x-direction 2 bytes 1 Number of Cells in y-direction 2 bytes 1 Number of Pixels in Cells in x-direction 2 bytes 512 Number of Pixels in Cells in y-direction 2 bytes 1024 Cellular x-offset 2 bytes 0 Cellular y-offset 2 bytes 0 ISO/IEC CD 19794-3 Number of Pixels between Cell Centers in x- direction 2 bytes 0 Number of Pixels between Cell Centers in y- direction 2 bytes 0 Number of components extracted from each cell 2 bytes 524,288 Type of window and parameter 2 bytes 0 Wavelength and angle generating mechanism for filters 1 byte Nyquist Method of selecting retained components 1 byte All Naming and ordering of components 1 byte x-wavelength, complex amplitude, y-wavelength, complex amplitude Bit-depth of Cell Structure Angle 1 byte 4 Bit-depth of Cell Structure Wavelength 1 byte 3 Bit-depth of Cell Structure Phase Offset 1 byte 3 Bit-depth of Cell Structure Quality 1 byte 4 Cell Quality Granularity 1 byte 2 Reserved Bytes 2 byte Field Size Value Finger Location 1 byte 2 Finger Impression 1 byte 0 Number of Views 1 byte 1 View Number 1 byte 0 Fingerprint Pattern Quality 1 byte 80 ISO/IEC CD 19794-3 Length of data block (in bytes) including private data 2 bytes TBD Extended Data Block Length 2 bytes 0 ISO/IEC CD 19794-3 9 Annex C (informative) - Finger Pattern Spectral Data Record Example 3 This informative annex provides an example of finger pattern spectral interchange data for a ridge flow field extracted on a 400x600 pixel image using Gabor filters on 15x15 regions with 7 pixel overlap. C.1 Cell structure In this example, there are 53 cells in the x-direction and 80 cells in the y-direction for one finger view. 18 Gabor filters are used with wavelength of 14 pixels and Gaussian parameter of 3 pixels. Angle of rotation of successive filters is 10 degrees, starting from 0 degrees, as shown in Figure 7. Only the angle of rotation of the filter with highest energy will be retained, but 90 degrees will be added to this angle so that the ridge flow, not the filter orientation, will be indicated. Table 7. Finger Pattern Spectral Data Record Record Header Field Size Value Format Identifier 4 bytes 0x46505200 ('F 'P 'R 0x0) Version Number 4 bytes Length of Record 4 bytes 2177 Capture Device ID 2 bytes Number of Finger Patterns in Record 1 byte 1 Image Resolution of finger pattern in x- direction ROUND(ppcm) 2 bytes 79 Image Resolution of finger pattern in y- direction ROUND(ppmm) 2 bytes 79 Number of Cells in x-direction 2 bytes 53 Number of Cells in y-direction 2 bytes 80 Number of Pixels in Cells in x-direction 2 bytes 15 Number of Pixels in Cells in y-direction 2 bytes 15 Cellular x-offset 2 bytes 0 Cellular y-offset 2 bytes 0 Number of Pixels between Cell Centers in x- direction 2 bytes 7 ISO/IEC CD 19794-3 Number of Pixels between Cell Centers in y- direction 2 bytes 7 Number of components extracted from each cell 2 bytes 18 Type of window and parameter 3 byte G, 3 Wavelength and angle generating mechanism for filters 2 bytes 14 Method of selecting retained components 1 byte Top energy Naming and ordering of components 1 Angle + 90 degrees Bit-depth of Cell Structure Angle 1 byte 4 Bit-depth of Cell Structure Wavelength 1 byte 0 Bit-depth of Cell Structure Phase Offset 1 byte 0 Bit-depth of Cell Structure Quality 1 byte 0 Cell Quality Granularity 1 byte 0 Reserved Bytes 2 byte Field Size Value Finger Location 1 byte 2 Finger Impression 1 byte 0 Number of Views 1 byte 1 View Number 1 byte 0 Fingerprint Pattern Quality 1 byte 0 Length of data block (in bytes) including private data 2 bytes 2120 Extended Data Block Length 2 bytes 0