ISO/IEC 14496-22:2015
(Main)Information technology — Coding of audio-visual objects — Part 22: Open Font Format
Information technology — Coding of audio-visual objects — Part 22: Open Font Format
ISO/IEC 14496-22:2015 specifies the Open Font Format (OFF) specification, the TrueType? and Compact Font Format (CFF) outline formats, and the TrueType hinting language. Many references to both TrueType and PostScript exist throughout this document, as Open Font Format fonts combine the two technologies.
Technologies de l'information — Codage des objets audiovisuels — Partie 22: Format de police de caractères ouvert
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 14496-22
Third edition
2015-10-01
Information technology — Coding of
audio-visual objects —
Part 22:
Open Font Format
Technologies de l’information — Codage des objets audiovisuels —
Partie 22: Format de police de caractères ouvert
Reference number
ISO/IEC 14496-22:2015(E)
©
ISO/IEC 2015
---------------------- Page: 1 ----------------------
ISO/IEC 14496-22:2015(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2015, Published in Switzerland
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form
or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior
written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of
the requester.
ISO copyright office
Ch. de Blandonnet 8 • CP 401
CH-1214 Vernier, Geneva, Switzerland
Tel. +41 22 749 01 11
Fax +41 22 749 09 47
copyright@iso.org
www.iso.org
ii © ISO/IEC 2015 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 14496-22:2015(E)
Contents Page
Foreword . viii
Introduction . x
1 Scope . 1
2 Normative references . 2
3 Abbreviated terms . 2
4 The Open font file format . 3
4.1 Description . 3
4.2 Filenames . 3
4.3 Data types . 3
4.4 Table version numbers . 4
4.5 Open font structure . 5
4.5.1 Table directory . 5
4.5.2 Calculating checksums. 6
4.6 Font collections . 6
4.6.1 The Font Colelction file structure . 7
4.6.2 TTC header . 7
5 Open font tables . 8
5.1 General . 8
5.2 Required common tables. 8
5.2.1 cmap – Character to glyph index mapping table . 9
5.2.2 head – Font header . 20
5.2.3 hhea – Horizontal header . 22
5.2.4 hmtx – Horizontal metrics . 23
5.2.5 maxp – Maximum profile. 23
5.2.6 name – Naming table . 24
5.2.7 OS/2 – Global font information table . 43
5.2.8 Font class parameters - see informative Annex B for details. 65
5.2.9 post – PostScript . 65
5.3 TrueType outline tables . 67
5.3.1 cvt – Control value table . 68
5.3.2 fpgm – Font program . 68
5.3.3 glyf – Glyf data . 68
5.3.4 loca – Index to location . 71
5.3.5 prep – Control value program . 72
5.3.6 gasp – Grid-fitting and scan conversion procedure . 72
5.4 PostScript outline tables . 74
5.4.1 CFF – PostScript font program (Compact Font Format) table . 74
5.4.2 VORG – Vertical origin table . 74
5.5 Table for SVG glyph outlines . 76
5.5.1 SVG – The SVG (Scalable Vector Graphics) table . 76
5.5.2 Color Palettes . 77
5.5.3 Glyph Identifiers . 77
5.5.4 Glyph Semantics and Metrics . 78
5.5.5 Glyph Rendering . 78
5.6 Bitmap glyph tables . 80
5.6.1 EBDT – Embedded bitmap data table . 80
5.6.2 EBLC – Embedded bitmap location table . 84
5.6.3 EBSC – Embedded bitmap scaling table . 91
5.6.4 CBDT – Color bitmap data table . 92
© ISO/IEC 2015 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 14496-22:2015(E)
5.6.5 CBLC – Color bitmap location table .94
5.7 Optional tables .95
5.7.1 DSIG – Digital signature table .96
5.7.2 hdmx – Horizontal device metrics .98
5.7.3 kern – Kerning .99
5.7.4 LTSH – Linear threshold . 102
5.7.5 PCLT – PCL 5 table . 103
5.7.6 VDMX – Vertical device metrics . 111
5.7.7 vhea – Vertical header table . 114
5.7.8 vmtx – Vertical metric table . 117
5.7.9 COLR – Color Table . 119
5.7.10 CPAL – Palette Table . 121
6 Advanced Open Font layout tables . 123
6.1 Advanced Open Font layout extensions . 123
6.1.1 Overview of advanced typographic layout extensions . 123
6.1.2 TrueType versus OFF layout . 125
6.1.3 OFF layout terminology . 125
6.1.4 Text processing with OFF layout . 128
6.2 OFF layout common table formats . 129
6.2.1 Overview . 129
6.2.2 Table organization . 131
6.2.3 Scripts and languages . 132
6.2.4 Features and lookups . 134
6.2.5 Common table examples . 143
6.3 Advanced typographic tables . 152
6.3.1 BASE Baseline table . 152
6.3.2 GDEF – The glyph definition table . 173
6.3.3 GPOS – The glyph positioning table. 186
6.3.4 GSUB – The glyph substitution table . 246
6.3.5 JSTF – The justification table . 286
6.3.6 MATH – The mathematical typesetting table . 298
6.4 Layout tag registry. 313
6.4.1 Scripts tags . 313
6.4.2 Language tags . 317
6.4.3 Feature tags . 338
6.4.4 Baseline tags . 402
7 Recommendations for OFF fonts . 407
7.1 Byte ordering . 407
7.2 'sfnt' version . 407
7.3 Mixing outline formats . 407
7.4 Filenames . 407
7.5 Table alignment and length . 407
7.6 First four glyphs in fonts . 408
7.7 Shape of .notdef glyph . 408
7.8 'BASE' table . 408
7.9 'cmap' table . 409
7.10 'cvt' table . 409
7.11 'fpgm' table . 409
7.12 'glyf' table . 409
7.13 'hdmx' table . 409
7.14 'head' table . 410
7.15 'hhea' table . 410
7.16 'hmtx' table . 410
7.17 'kern' table . 410
7.18 'loca' table . 411
7.19 'LTSH' table . 411
7.20 'maxp' table . 411
7.21 'name' table . 411
7.22 'OS/2' table . 413
iv © ISO/IEC 2015 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 14496-22:2015(E)
7.23 sTypoAscender, sTypoDescender and sTypoLineGap . 413
7.24 'post' table . 413
7.25 'prep' table . 414
7.26 'VDMX' table . 414
7.27 TrueType Collections . 414
8 General recommendations . 414
8.1 Optimized table ordering . 414
8.2 Non-standard (Symbol) fonts . 414
8.3 Device resolutions . 415
8.4 Baseline to baseline distances . 415
8.5 Style bits . 416
8.6 Drop-out control . 416
8.7 Embedded bitmaps . 416
8.8 OFF CJK font guidelines . 417
Annex A (informative) Patent Statements . 418
Annex B (informative) Font Class and Font Subclass parameters . 419
B.1 Introduction . 419
B.2 sFamilyClass . 419
B.3 Class ID=0 No Classification . 419
B.4 Class ID=1 Oldstyle Serifs . 419
B.4.1 Subclass ID = 0 : No Classification . 419
B.4.2 Subclass ID = 1 : IBM Rounded Legibility . 420
B.4.3 Subclass ID = 2 : Garalde . 420
B.4.4 Subclass ID = 3 : Venetian . 420
B.4.5 Subclass ID = 4 : Modified Venetian . 420
B.4.6 Subclass ID = 5 : Dutch Modern . 420
B.4.7 Subclass ID = 6 : Dutch Traditional . 420
B.4.8 Subclass ID = 7 : Contemporary . 420
B.4.9 Subclass ID = 8 : Calligraphic . 420
B.4.10 Subclass ID = 9-14 : (reserved for future use) . 420
B.4.11 Subclass ID = 15 : Miscellaneous . 421
B.5 Class ID=2 Transitional Serifs . 421
B.5.1 Subclass ID = 0 : No Classification . 421
B.5.2 Subclass ID = 1 : Direct Line . 421
B.5.3 Subclass ID = 2 : Script . 421
B.5.4 Subclass ID = 3-14 : (reserved for future use) . 421
B.5.5 Subclass ID = 15 : Miscellaneous . 421
B.6 Class ID=3 Modern Serifs . 421
B.6.1 Subclass ID = 0 : No Classification . 421
B.6.2 Subclass ID = 1 : Italian . 422
B.6.3 Subclass ID = 2 : Script . 422
B.6.4 Subclass ID = 3-14 : (reserved for future use) . 422
B.6.5 Subclass ID = 15 : Miscellaneous . 422
B.7 Class ID=4 Clarendon Serifs . 422
B.7.1 Subclass ID = 0 : No Classification . 422
B.7.2 Subclass ID = 1 : Clarendon . 422
B.7.3 Subclass ID = 2 : Modern . 422
B.7.4 Subclass ID = 3 : Traditional . 422
B.7.5 Subclass ID = 4 : Newspaper . 423
B.7.6 Subclass ID = 5 : Stub Serif . 423
B.7.7 Subclass ID = 6 : Monotone . 423
B.7.8 Subclass ID = 7 : Typewriter . 423
B.7.9 Subclass ID = 8-14: (reserved for future use) . 423
B.7.10 Subclass ID = 15 : Miscellaneous . 423
B.8 Class ID=5 Slab Serifs . 423
B.8.1 Subclass ID = 0 : No Classification . 423
B.8.2 Subclass ID = 1 : Monotone . 423
B.8.3 Subclass ID = 2 : Humanist . 424
© ISO/IEC 2015 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 14496-22:2015(E)
B.8.4 Subclass ID = 3 : Geometric . 424
B.8.5 Subclass ID = 4 : Swiss . 424
B.8.6 Subclass ID = 5 : Typewriter . 424
B.8.7 Subclass ID = 6-14 : (reserved for future use) . 424
B.8.8 Subclass ID = 15 : Miscellaneous . 424
B.9 Class ID=6 (reserved for future use) . 424
B.10 Class ID=7 Freeform Serifs . 424
B.10.1 Subclass ID = 0 : No Classification . 424
B.10.2 Subclass ID = 1 : Modern . 425
B.10.3 Subclass ID = 2-14 : (reserved for future use) . 425
B.10.4 Subclass ID = 15 : Miscellaneous . 425
B.11 Class ID=8 Sans Serifs . 425
B.11.1 Subclass ID = 0 : No Classification . 425
B.11.2 Subclass ID = 1 : IBM Neo-grotesque Gothic . 425
B.11.3 Subclass ID = 2 : Humanist . 425
B.11.4 Subclass ID = 3 : Low-x Round Geometric . 425
B.11.5 Subclass ID = 4 : High-x Round Geometric . 425
B.11.6 Subclass ID = 5 : Neo-grotesque Gothic . 426
B.11.7 Subclass ID = 6 : Modified Neo-grotesque Gothic . 426
B.11.8 Subclass ID = 7-8 : (reserved for future use) . 426
B.11.9 Subclass ID = 9 : Typewriter Gothic . 426
B.11.10 Subclass ID = 10 : Matrix . 426
B.11.11 Subclass ID = 11-14 : (reserved for future use) . 426
B.11.12 Subclass ID = 15 : Miscellaneous . 426
B.12 Class ID=9 Ornamentals .
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.