<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:Georgia;
        panose-1:2 4 5 2 5 4 5 2 3 3;}
@font-face
        {font-family:remialcxesans;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
p.attach, li.attach, div.attach
        {mso-style-name:attach;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:9.0pt;
        font-family:"Arial",sans-serif;}
p.bold, li.bold, div.bold
        {mso-style-name:bold;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:10.0pt;
        font-family:"Arial",sans-serif;
        font-weight:bold;}
p.green, li.green, div.green
        {mso-style-name:green;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#628C2A;}
p.replbq, li.replbq, div.replbq
        {mso-style-name:replbq;
        margin:3.0pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ad, li.ad, div.ad
        {mso-style-name:ad;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.underline, li.underline, div.underline
        {mso-style-name:underline;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.yshortcuts
        {mso-style-name:yshortcuts;}
p.ad1, li.ad1, div.ad1
        {mso-style-name:ad1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ad2, li.ad2, div.ad2
        {mso-style-name:ad2;
        mso-margin-top-alt:auto;
        margin-right:0in;
        margin-bottom:7.5pt;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.underline1, li.underline1, div.underline1
        {mso-style-name:underline1;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        text-decoration:underline;}
span.yshortcuts1
        {mso-style-name:yshortcuts1;
        font-family:"Verdana",sans-serif;
        font-weight:bold;}
span.yshortcuts2
        {mso-style-name:yshortcuts2;
        font-family:"Verdana",sans-serif;
        font-weight:normal;}
span.EmailStyle37
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle38
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
p.highlight, li.highlight, div.highlight
        {mso-style-name:highlight;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:251860394;
        mso-list-template-ids:-1181966852;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Apologies for slow response. I’ve given my take on some the comments you received — inserted inline below. I’ll respond with more shortly.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Peter<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> mpeg-OTspec@yahoogroups.com <mpeg-OTspec@yahoogroups.com>
<b>On Behalf Of </b>'Levantovsky, Vladimir' vladimir.levantovsky@monotype.com [mpeg-OTspec]<br>
<b>Sent:</b> Thursday, November 2, 2017 2:57 PM<br>
<b>To:</b> mpeg-OTspec@yahoogroups.com<br>
<b>Subject:</b> [mpeg-OTspec] Comments on ISO/IEC 14496-22 "Open Font Format"<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">  <o:p></o:p></p>
<div id="ygrp-mlmsg">
<div id="ygrp-msg">
<div id="ygrp-text">
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Dear AHG members,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I received an annotated copy of the 3<sup>rd</sup> edition OFF text with user comments. While few of those comments are irrelevant, and many comments have already been addressed
 in the 4<sup>th</sup> edition text, some of them do need to be considered for further discussion. Upon reviewing the comments and the text I also came up with few additional questions; among them:<o:p></o:p></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>Question about clarifying version numbers encoded in Fixed format, in particular about providing an example of how e.g. version 1.11 should be encoded;<o:p></o:p></p>
<p class="MsoListParagraph"><span style="color:red">[PC] I think an example is not needed. In the OT spec, I only kept some tables as using Fixed for version rather than uint16 major / uint16 minor because they had existing versions that were anomalous. For
 OT v.next, I’ll add some wording to clarify that Fixed is only used for legacy reasons, and that it will not be used for any new tables introduced in the future. Here’s my proposed text for the paragraph after the bulleted list:<o:p></o:p></span></p>
<p class="highlight" style="margin:0in;margin-bottom:.0001pt;background:#FFFF9F">
<span style="color:red">“</span><span style="font-size:10.0pt;font-family:"Georgia",serif;color:green">Only certain tables use a Fixed value for version, and only for reasons of backward compatibility. Fixed values will not be used in the future for any new
 tables that may be introduced. When a Fixed number is used as a version, the upper 16 bits comprise a major version number, and the lower 16 bits a minor version. The representation of a non-zero minor version, however, is not consistent with the normal treatment
 of Fixed values, in which the lower 16 bits represent a fractional value, <em><span style="font-family:"Georgia",serif">N * 2 ^ -16</span></em>. Rather, tables with non-zero minor version numbers always specify the literal value of the version number. For
 example, the version number of 'maxp' table version 0.5 is 0x00005000, and that of 'vhea' table version 1.1 is 0x00011000. When Fixed is indicated as the type for a version field, the possible values should be treated as an enumeration of specific values,
 rather than as a numeric value capable of representing many potential major and minor versions.
</span><span style="color:red">”</span><span style="font-size:10.0pt;font-family:"Georgia",serif;color:green"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:red"><o:p> </o:p></span></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>Question about the normative scope of uint16 version numbers, and whether the requirement to treat it as a minor version number (and consider all format changes as compatible extensions) should be considered as a mandate or as a recommendation (as it
 is now defined as “should”);<o:p></o:p></p>
<p class="MsoListParagraph"><span style="color:red">[PC] I can see that the current text could be seen as a bit unclear regarding single uint16 version fields. The same would also apply to single uint32 version fields. For OT v.next, my plan will be to replace
 the 4<sup>th</sup> paragraph after the bulleted list with the following two paragraphs:<o:p></o:p></span></p>
<p class="highlight" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:3.0pt;margin-left:0in;background:#FFFF9F">
<span style="color:red">“</span><span style="font-size:10.0pt;font-family:"Georgia",serif;color:green">Minor version number changes always imply format changes that are compatible extensions. If an implementation understands a major version number, then it
 can safely proceed reading the table. If the minor version is greater than the latest version recognized by the implementation, then the extension fields will be undetectable to the implementation.
<o:p></o:p></span></p>
<p class="highlight" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:3.0pt;margin-left:0in;background:#FFFF9F;Times New Roman"Times,serif;orphans: 2;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.0pt;font-family:"Georgia",serif;color:green">For purposes of compatibility, version numbers that are represented using a single uint16 or uint32 value are treated like a minor version number, and any format changes are compatible extensions.
</span><span style="color:red">”</span><span style="font-size:10.0pt;font-family:"Georgia",serif;color:green"><o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:red">.<o:p></o:p></span></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>In “Calculating checksums” section – [editorial] suggestion to replace “the hex value B1B0AFBA” with 0XB1B0AFBA;<o:p></o:p></p>
<p class="MsoListParagraph"><span style="color:red">[PC] I’ll use a slight modification, to be consistent with how other hex values are presented in the spec:<o:p></o:p></span></p>
<p class="MsoListParagraph">“<span style="font-size:10.0pt;font-family:"Georgia",serif;color:green;background:#FFFF9F">Subtract that value from value 0xB1B0AFBA.</span>”<o:p></o:p></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>Definition of lineGap in ‘hhea’ table – question on whether historical references to Win 3.1 and MacOS 6 and 7 still need to be preserved;<o:p></o:p></p>
<p class="MsoListParagraph"><span style="color:red">[PC] Is there particular benefit from removing those details? A partial accommodation would be to say, “Negative lineGap values are treated as zero in some legacy platform impelemenations.”<o:p></o:p></span></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>Definition of maxStackElements in ‘maxp’ table – question about using a footnote instead of simply including it as part of the description;<o:p></o:p></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>‘kern’ table, Format 0 – the description states that it is the only format (!) that will be properly interpreted by Windows and OS/2 – do we still need to state this?<o:p></o:p></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>LookupFlag Bit enumeration table – the first table column should probably have title “Value” instead of “Type”<o:p></o:p></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>GPOS table description – many table headers have “Value / Type / Description” columns, which is incorrect and should be revised to match other table definitions using “Type / Name / Description” format.<o:p></o:p></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>GPOS Example 5 – needs review as I suspect Class2Count field has redundant comments.<o:p></o:p></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>General comment: there are quite a few figures used in the OT/OFF text that show text rendered in low quality, low resolution bitmaps (e.g., see first three sections of
<a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.microsoft.com%2Ftypography%2Fotspec%2Fbase.htm&data=02%7C01%7Cpetercon%40microsoft.com%7Cb0ecad89143749431df808d5223cb66e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636452566520551378&sdata=7fGXGFajdaK6hDPjkJQ1cqJE8Iw0npoZnSc2cuZ%2FEw8%3D&reserved=0">
https://www.microsoft.com/typography/otspec/base.htm</a> and many other figures including illustrations for GSUB/GPOS/JSTF tables). Maybe it is the time to redo them – will need a lot of work but it’s a bit awkward when a document describing font format for
 high-quality text rendering uses low-res, low quality images as illustrations. <o:p>
</o:p></p>
<p class="MsoListParagraph">-<span style="font-size:7.0pt;font-family:"Times New Roman",serif">         
</span>Recommendations: It may be a good time reconsider parts of the “Recommendation” section as some of them seem to be requirements (e.g. Big Endian byte ordering, table alignment, etc.) and some of them (e.g. device resolutions) may be outdated and no longer
 relevant.<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Thank you,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Vladimir<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<p class="MsoNormal"><span style="font-family:"remialcxesans",serif"> </span> <o:p>
</o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="color:white"><o:p></o:p></span></p>
</div>
</div>
</body>
</html>