Information technology — Coding of audio-visual objects — Part 22: Open Font Format

This document specifies the Open Font Format (OFF) specification, including the TrueType and Compact Font Format (CFF) outline formats. Many references to both TrueType and PostScript exist throughout this document, as Open Font Format fonts combine the two technologies. The document defines data structures for variaous font tables, and provides the necessary details for developers to build a font rendering and taxt layout/shaping engines in compliance with this document.

Technologies de l'information — Codage des objets audiovisuels — Partie 22: Format de police de caractères ouvert

General Information

Status
Published
Publication Date
23-Jan-2019
Current Stage
6060 - International Standard published
Start Date
24-Jan-2019
Completion Date
24-Jan-2019
Ref Project

RELATIONS

Buy Standard

Standard
ISO/IEC 14496-22:2019 - Information technology -- Coding of audio-visual objects
English language
628 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

INTERNATIONAL ISO/IEC
STANDARD 14496-22
Fourth edition
2019-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:2019(E)
ISO/IEC 2019
---------------------- Page: 1 ----------------------
ISO/IEC 14496-22:2019(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2019

All rights reserved. Unless otherwise specified, or required in the context of its implementation, 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
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Fax: +41 22 749 09 47
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2019 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 14496-22:2019(E)
Contents Page

Foreword ........................................................................................................................................................... vii

Introduction ...................................................................................................................................................... viii

1  Scope ...................................................................................................................................................... 1

2  Normative references ............................................................................................................................ 1

3  Terms, definitions and abbreviated terms .......................................................................................... 1

3.1  Terms and definitions ........................................................................................................................... 1

3.2  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  Top-level OFF organization .................................................................................................................. 5

4.5.1  Offset table ............................................................................................................................................. 5

4.5.2  Table directory ....................................................................................................................................... 5

4.5.3  Calculating checksums ........................................................................................................................ 6

4.6  Font collections ..................................................................................................................................... 6

4.6.1  The Font Collection overview .............................................................................................................. 6

4.6.2  The Font Collection file structure ........................................................................................................ 7

4.6.3  TTC header ............................................................................................................................................. 7

5  Open font tables .................................................................................................................................... 8

5.1  General ................................................................................................................................................... 8

5.2  Required common tables ..................................................................................................................... 8

5.2.1  List of required tables ........................................................................................................................... 8

5.2.2  cmap – Character to glyph index mapping table ............................................................................... 9

5.2.3  head – Font header .............................................................................................................................. 21

5.2.4  hhea – Horizontal header .................................................................................................................... 23

5.2.5  hmtx – Horizontal metrics .................................................................................................................. 24

5.2.6  maxp – Maximum profile .................................................................................................................... 25

5.2.7  name – Naming table ........................................................................................................................... 26

5.2.8  OS/2 – Global font information table ................................................................................................. 45

5.2.9  Font class parameters ........................................................................................................................ 67

5.2.10  post – PostScript ................................................................................................................................. 67

5.3  Tables related to TrueType outlines .................................................................................................. 69

5.3.1  List of TrueType outlines tables ........................................................................................................ 69

5.3.2  cvt – Control value table ..................................................................................................................... 69

5.3.3  fpgm – Font program .......................................................................................................................... 69

5.3.4  glyf – Glyf data ..................................................................................................................................... 70

5.3.5  loca – Index to location ....................................................................................................................... 75

5.3.6  prep – Control value program ............................................................................................................ 75

5.3.7  gasp – Grid-fitting and scan-conversion procedure table .............................................................. 76

5.4  Tables related to CFF outlines ........................................................................................................... 78

5.4.1  List of CFF outline tables.................................................................................................................... 78

5.4.2  CFF – Compact Font Format (version 1) table ................................................................................. 78

5.4.3  CFF2 – Compact Font Format (version 2) table ............................................................................... 78

5.4.4  VORG – Vertical origin table .............................................................................................................. 88

5.5  Table for SVG glyph outlines ............................................................................................................. 89

5.5.1  SVG – The SVG (Scalable Vector Graphics) table ........................................................................... 89

5.5.2  Color Palettes ...................................................................................................................................... 90

5.5.3  Glyph Identifiers .................................................................................................................................. 91

5.5.4  Glyph Semantics and Metrics ............................................................................................................ 91

5.5.5  Glyph Rendering .................................................................................................................................. 91

5.5.6  SVG glyph examples ........................................................................................................................... 93

© ISO/IEC 2019 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 14496-22:2019(E)

5.6  Tables related to bitmap glyphs .........................................................................................................98

5.6.1  List of bitmap glyph tables .................................................................................................................98

5.6.2  EBDT – Embedded bitmap data table ................................................................................................98

5.6.3  EBLC – Embedded bitmap location table ...................................................................................... 101

5.6.4  EBSC – Embedded bitmap scaling table ........................................................................................ 108

5.6.5  CBDT – Color bitmap data table ...................................................................................................... 109

5.6.6  CBLC – Color bitmap location table ............................................................................................... 111

5.6.7  sbix – Standard bitmap graphics table ........................................................................................... 112

5.7  Optional tables .................................................................................................................................. 114

5.7.1  DSIG – Digital signature table ......................................................................................................... 115

5.7.2  hdmx – Horizontal device metrics ................................................................................................... 117

5.7.3  kern – Kerning ................................................................................................................................... 118

5.7.4  LTSH – Linear threshold .................................................................................................................. 120

5.7.5  MERG – Merge table ......................................................................................................................... 121

5.7.6  meta – Metadata table ...................................................................................................................... 125

5.7.7  PCLT – PCL 5 table ........................................................................................................................... 128

5.7.8  VDMX – Vertical device metrics ...................................................................................................... 135

5.7.9  vhea – Vertical header table ............................................................................................................ 137

5.7.10  vmtx – Vertical metric table ............................................................................................................. 141

5.7.11  COLR – Color Table .......................................................................................................................... 143

5.7.12  CPAL – Palette Table ........................................................................................................................ 144

6  Advanced Open Font layout tables ................................................................................................. 147

6.1  Advanced Open Font layout extensions ........................................................................................ 147

6.1.1  Overview of advanced typographic layout extensions ................................................................. 147

6.1.2  TrueType versus OFF layout ........................................................................................................... 149

6.1.3  OFF layout terminology ................................................................................................................... 149

6.1.4  Text processing with OFF layout .................................................................................................... 151

6.1.5  OFF layout and Font variations ....................................................................................................... 153

6.2  OFF layout common table formats ................................................................................................. 153

6.2.1  Overview ............................................................................................................................................ 153

6.2.2  OFF layout and Font variations ....................................................................................................... 154

6.2.3  Table organization ............................................................................................................................ 155

6.2.4  Scripts and languages ..................................................................................................................... 156

6.2.5  Features and lookups ....................................................................................................................... 159

6.2.6  Coverage table .................................................................................................................................. 162

6.2.7  Class definition table ........................................................................................................................ 164

6.2.8  Device and VariationIndex tables .................................................................................................... 165

6.2.9  Feature variations ............................................................................................................................. 167

6.2.10  Common table examples ................................................................................................................. 170

6.3  Advanced typographic tables .......................................................................................................... 178

6.3.1  BASE Baseline table ......................................................................................................................... 178

6.3.2  GDEF – The glyph definition table .................................................................................................. 199

6.3.3  GPOS – The glyph positioning table............................................................................................... 211

6.3.4  GSUB – The glyph substitution table ............................................................................................. 263

6.3.5  JSTF – The justification table .......................................................................................................... 296

6.3.6  MATH – The mathematical typesetting table ................................................................................. 306

6.4  Layout tag registry............................................................................................................................ 322

6.4.1  Scripts tags ....................................................................................................................................... 323

6.4.2  Language tags ................................................................................................................................... 327

6.4.3  Feature tags ....................................................................................................................................... 344

6.4.4  Baseline tags ..................................................................................................................................... 406

7  OFF font variations ........................................................................................................................... 410

7.1  Font variations overview .................................................................................................................. 410

7.1.1  General ............................................................................................................................................... 410

7.1.2  Terminology ...................................................................................................................................... 412

7.1.3  Variation space, default instances and adjustment deltas .......................................................... 414

7.1.4  Coordinate scales and normalization ............................................................................................. 417

7.1.5  Variation data .................................................................................................................................... 419

7.1.6  Variation data tables and miscellaneous requirements ............................................................... 428

7.1.7  Algorithm for interpolation of instance values .............................................................................. 429

iv © ISO/IEC 2019 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 14496-22:2019(E)

7.1.8  Interpolation example ....................................................................................................................... 432

7.1.9  Dynamic generation of static instance fonts .................................................................................. 437

7.2  Font variations common table formats ........................................................................................... 438

7.2.1  Overview ............................................................................................................................................. 438

7.2.2  Tuple variation store ......................................................................................................................... 439

7.2.3  Item variation stores ......................................................................................................................... 446

7.2.4  Design-variation axis tag registry .................................................................................................... 450

7.3  Font variations tables ....................................................................................................................... 455

7.3.1  avar – Axis variations table .............................................................................................................. 455

7.3.2  cvar – CVT variations table .............................................................................................................. 459

7.3.3  fvar – Font variations table ............................................................................................................... 461

7.3.4  gvar – Glyph variations table ........................................................................................................... 468

7.3.5  HVAR – Horizontal metrics variations table ................................................................................... 478

7.3.6  MVAR – Metrics variations table ...................................................................................................... 481

7.3.7  STAT – Style attributes table ............................................................................................................ 485

7.3.8  VVAR – Vertical metrics variations table ........................................................................................ 497

8  Recommendations for OFF fonts .................................................................................................... 499

8.1  Byte ordering ..................................................................................................................................... 499

8.2  'sfnt' version....................................................................................................................................... 499

8.3  Mixing outline formats ...................................................................................................................... 499

8.4  Filenames ........................................................................................................................................... 499

8.5  Table alignment and length .............................................................................................................. 500

8.6  Glyph 0: the .notdef glyph ................................................................................................................ 500

8.7  'BASE' table........................................................................................................................................ 500

8.8  'cmap' table ........................................................................................................................................ 500

8.9  'cvt' table ............................................................................................................................................ 501

8.10  'fpgm' table ......................................................................................................................................... 501

8.11  'glyf' table ........................................................................................................................................... 501

8.12  'hdmx' table ........................................................................................................................................ 501

8.13  'head' table ......................................................................................................................................... 501

8.14  'hhea' table ......................................................................................................................................... 501

8.15  'hmtx' table ......................................................................................................................................... 502

8.16  'kern' table .......................................................................................................................................... 502

8.17  'loca' table .......................................................................................................................................... 502

8.18  'LTSH' table ........................................................................................................................................ 502

8.19  'maxp' table ........................................................................................................................................ 502

8.20  'name' table ........................................................................................................................................ 502

8.21  'OS/2' table ......................................................................................................................................... 504

8.22  'post' table .......................................................................................................................................... 505

8.23  'prep' table .......................................................................................................................................... 505

8.24  'VDMX' table ....................................................................................................................................... 505

8.25  TrueType Collections ........................................................................................................................ 505

9  General recommendations ............................................................................................................... 506

9.1  Optimized table ordering .................................................................................................................. 506

9.2  Non-standard (Symbol) fonts ........................................................................................................... 506

9.3  Baseline to baseline distances ........................................................................................................ 506

9.4  Style bits ............................................................................................................................................. 507

9.5  Drop-out control ................................................................................................................................ 507

9.6  Embedded bitmaps ........................................................................................................................... 507

9.7  OFF CJK font guidelines................................................................................................................... 508

9.8  Stroke reduction in variable fonts ................................................................................................... 508

9.9  Families with optical size variants ................................................................................................... 508

Annex A (informative) Font Class and Font Subclass parameters .......................................................... 510

Annex B (informative) Earlier versions of OS/2 – OS/2 and Windows metrics ....................................... 521

Annex C (informative) OFF Mirroring Pairs List ......................................................................................... 596

Annex D (informative) The CFF2 CharString Format ................................................................................. 603

Annex E (informative) CFF2 DICT Encoding .............................................................................................. 622

© ISO/IEC 2019 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 14496-22:2019(E)

Annex F (informative) Registration of Media Type: application/font-sfnt .................................... 624

Bibliography ................................................................................................................................................... 627

vi © ISO/IEC 2019 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 14496-22:2019(E)
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.

The procedures used to develop this document and those intended for its further maintenance are described

in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the different types of

document should be noted. This document was drafted in accordance with the editorial rules of the

ISO/IEC Directives, Part 2 (see www.iso.org/directives).

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. Details of any

patent rights identified during the development of the document will be in the Introduction and/or on the ISO

list of patent declarations received (see www.iso.org/patents) or the IEC list of patent declarations received

(see http://patents.iec.ch).

Any trade name used in this document is information given for the convenience of users and does not

constitute an endorsement.

For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and expressions

related to conformity assessment, as well as information about ISO's adherence to the World Trade

Organization (WTO) principles in the Technical Barriers to Trade (TBT) see www.iso.org/iso/foreword.html.

This document was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,

Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information.

This fourth edition cancels and replaces the third edition (ISO/IEC 14496-22:2015), which has been

technically revised. It also incorporates
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.