<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:"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:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@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.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Balloon Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma",sans-serif;}
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;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-style-priority:99;
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.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-priority:99;
mso-style-link:"Balloon Text";
font-family:"Tahoma",sans-serif;}
p.attach, li.attach, div.attach
{mso-style-name:attach;
mso-style-priority:99;
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-style-priority:99;
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-style-priority:99;
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;
mso-style-priority:99;
margin:3.0pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
p.ad, li.ad, div.ad
{mso-style-name:ad;
mso-style-priority:99;
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-style-priority:99;
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.ad1, li.ad1, div.ad1
{mso-style-name:ad1;
mso-style-priority:99;
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-style-priority:99;
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-style-priority:99;
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;}
p.highlight, li.highlight, div.highlight
{mso-style-name:highlight;
mso-style-priority:99;
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;}
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.EmailStyle39
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle40
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle41
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle43
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.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;}
--></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"><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> Levantovsky, Vladimir <Vladimir.Levantovsky@monotype.com>
<br>
<b>Sent:</b> Thursday, February 15, 2018 10:45 AM<br>
<b>To:</b> Peter Constable <petercon@microsoft.com>; mpeg-OTspec@yahoogroups.com<br>
<b>Subject:</b> RE: 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"><span style="color:#1F497D">Thank you Peter!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Please see my comments inline.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-family:"remialcxesans",serif"> </span><o:p></o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif"> Peter Constable [<a href="mailto:petercon@microsoft.com">mailto:petercon@microsoft.com</a>]
<br>
<b>Sent:</b> Wednesday, February 14, 2018 9:16 PM<br>
<b>To:</b> Levantovsky, Vladimir; <a href="mailto:mpeg-OTspec@yahoogroups.com">mpeg-OTspec@yahoogroups.com</a><br>
<b>Subject:</b> RE: Comments on ISO/IEC 14496-22 "Open Font Format"<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"><snip/><o:p></o:p></span></p>
<div id="ygrp-mlmsg">
<div id="ygrp-msg">
<div id="ygrp-text">
<div>
<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 implementations.”<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:#1F497D">[VL] I suspect that for folks who graduated from college in 200x or later the references to Win 3.1 and MacOS 6 & 7 do not make much sense, I do like the alternative wording you proposed.<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:#C00000">[PC] Fine, I’ll use the revised text above in OT v.next. (Note the spelling change “lineGap”, not “LineGap”.)<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:#1F497D">I’d also appreciate your thoughts on the remaining comments below.<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="color:#C00000">[PC] Sure. I propose removal of the footnote after the tame, and this description for maxStackElements:<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:#C00000">“</span><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:green;background:#FFFF9F">Maximum stack depth across Font Program ('fpgm' table), CVT Program ('prep' table) and all glyph instructions
(in the 'glyf' table).</span><span style="color:#C00000">”<o:p></o:p></span></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="color:#C00000">[PC] The reference to OS/2 is certainly anachronistic, but the statement still applies to Windows. For OT v.next, I’ll revise the sentence as follows:<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:#C00000">“</span><span style="font-size:10.0pt;font-family:"Georgia",serif;color:green;background:#FFFF9F">This is the only subtable format supported by Windows.</span><span style="color:#C00000">”<o:p></o:p></span></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="color:#C00000">[PC] I assume this is referring to the OTL Common Table Formats. For tables describing flag bits, the column heading should be “Mask”, not “Value” (and, of course, not “Type”). For OT v.next, I’ll make
this change in the OTL CTF chapter. <o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:#C00000">Also, in the OS/2 chapter (v0 – v4), “Bit Mask” is used in the heading for the table in the fsType section; for better editorial consistency, I’ll change these to “Mask”.<o:p></o:p></span></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="color:#C00000">[PC] (Ugh!) Yes, of course. There were a few tables that were already correct, so a total of 39 table headings to be corrected.<o:p></o:p></span></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="color:#C00000">[PC] For OT v.next, I’ll revise rows 9, 10 and 11 in the table for Example 5 as follows:<o:p></o:p></span></p>
<table class="MsoNormalTable" border="0" cellspacing="3" cellpadding="0" width="744" style="width:557.85pt;margin-left:3.0pt;background:#F0F0F0">
<tbody>
<tr>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:transparent;padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">0002<o:p></o:p></span></p>
</td>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:transparent;padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">2<o:p></o:p></span></p>
</td>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:#FFFF9F;padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:green">Class2Count<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:transparent;padding:.75pt .75pt .75pt .75pt">
</td>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:transparent;padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">class1Records[0]<o:p></o:p></span></p>
</td>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:#FFFF9F;padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:green">First Class1Record, for contexts beginning with class 0<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:transparent;padding:.75pt .75pt .75pt .75pt">
</td>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:transparent;padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:black">class2Records[0]<o:p></o:p></span></p>
</td>
<td valign="top" style="border:none;border-bottom:solid #E0E0E0 1.0pt;background:#FFFF9F;padding:.75pt .75pt .75pt .75pt">
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Verdana",sans-serif;color:green">First Class2Record for class1Records[0]; valueFormat2 is zero, so no valueRecord2.<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<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%2Furldefense.proofpoint.com%2Fv2%2Furl%3Fu%3Dhttps-3A__na01.safelinks.protection.outlook.com_-3Furl-3Dhttps-253A-252F-252Fwww.microsoft.com-252Ftypography-252Fotspec-252Fbase.htm-26amp-3Bdata-3D02-257C01-257Cpetercon-2540microsoft.com-257Cb0ecad89143749431df808d5223cb66e-257C72f988bf86f141af91ab2d7cd011db47-257C1-257C0-257C636452566520551378-26amp-3Bsdata-3D7fGXGFajdaK6hDPjkJQ1cqJE8Iw0npoZnSc2cuZ-252FEw8-253D-26amp-3Breserved-3D0%26d%3DDwMGaQ%26c%3DeuGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM%26r%3Djb2T9D8Np5j0t1X2JtGDVMxJyD5fvLoEPxzRs46vOK4UfGfOrlVsyuleed6YRZk5%26m%3DyTYsqm8JCi6GkE0Eo0NXPBpp_jkUcz-IsGl2OGwermc%26s%3DQoDrOlGCUZxzuNF-FXayyl4DQKp-HY781CPh1kJjIaw%26e%3D&data=04%7C01%7Cpetercon%40microsoft.com%7C77ee8ed66011403f4ebd08d574a44e64%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636543171408471372%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=LEhvGpEFOXuLuISr8Bz4iRrnDtog0TcgpKenScRVvwg%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="color:#C00000">[PC] There’s enough in progress; I would leave this for future consideration.<o:p></o:p></span></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="MsoListParagraph"><span style="color:#C00000">[PC] There’s enough in progress; I would leave this for future consideration.<o:p></o:p></span></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>
<p> <o:p></o:p></p>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">
<hr size="2" width="100%" align="center">
</span></div>
<p>This email has been scanned for spam and viruses. Click <a href="https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fus-spambrella.cloud-protect.net%2Findex01.php%3Fmod_id%3D11%26mod_option%3Dlogitem%26mail_id%3D1518660955-ZqGtE8nJxPu0%26r_address%3Dvladimir.levantovsky%2540monotype.com%26report%3D1&data=04%7C01%7Cpetercon%40microsoft.com%7C77ee8ed66011403f4ebd08d574a44e64%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636543171408491381%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwifQ%3D%3D%7C-1&sdata=%2FeWejrovWI44qIKmn8ph1JjxB6gTO5h7ZTXBWSVQSwg%3D&reserved=0">
here</a> to report this email as spam.<o:p></o:p></p>
</div>
</body>
</html>