RE: Agenda for telcon Oct. 7

Hello WG,

The new version of the spec (http://dev.w3.org/webfonts/WOFF2/spec/) has been uploaded with changes detailed below. One new UA conformance requirement "conform-mustAcceptAllTransforms" and one FF requirement regarding conform-mustIncludeTransformLength field have been added and need test plan descriptions. Please see my comments on JK suggestions inline.

As a follow up on the last telcon discussion about allowing null transform for any and all tables (including glyf/loca) and considering the changes that have just been implemented w.r.t. transformLength field (clarifying that it is never optional) - one solution that may not be pretty but functional - treat the presence of the transformLength field in table directory as a global transform flag, and the flag bits purely as a transform number. By doing so we can introduce the null transform option for glyf/loca tables without breaking anything that has already been deployed.

Comments?

Thanks, and looking forward to our F2F next week.
Vlad


On Wednesday, October 07, 2015 3:30 PM Jonathan Kew wrote:
>Following up on the discussion of the 'hmtx' transform versions, a couple of weeks ago, here's what I suggest:
>
>-------------------
>
>First, I propose that we drop this paragraph from the draft:
># The encoder MUST check that leftSideBearing values match the Xmin 
># values of the glyph bounding box for every glyph in a font file and, 
># if the conditions are met for each of the proportional or monospaced 
># glyph runs the encoder MUST set hmtx transform version number to "1", 
># MUST eliminate the corresponding array from the hmtx table and MUST 
># set the appropriate Flags bits.

I disagree that the paragraph should be dropped, even if the hmtx transform is optional this paragraph specifies the actions that must happen when and if the transform is applied. What I did instead is I added the language (both in the first paragraph of section 5.4 and in the informative note) that clearly states that the 'hmtx' transform is optional. In case when it's applied, the stated requirements also apply.

>Instead, we can have a note such as:
>| [INFORMATIVE NOTE: An encoder can use this transformation format only 
>| when the font is TrueType-flavored (i.e. has a 'glyf' table), and 
>| after checking that the leftSideBearing values for each glyph in the 
>| proportional and/or monospaced glyph runs in the 'hmtx' table exactly 
>| match the corresponding xMin values in the 'glyf' table.]

Accepted, with additional clarification that this is an optional transform.

>-------------------
>
>Then, in the section on Table Directory Format, we modify the text about flag bits, something like this:
...
> (Typo: s/transofrmed/transformed/)

Fixed, thank you
...
>
>INSERT:
>| Where more than one transformation version is defined for a given 
>| table tag (which is currently the case only for 'hmtx', but others may 
>| be added in future revisions of the specification), an encoder may use 
>| any of the defined transformations that is applicable to the input 
>| data; a decoder MUST be prepared to accept any of the defined 
>| transformations.
>

Accepted, with some edits. I wouldn't consider a null transform to be a "defined transform", so in order to keep the spec language as generic as possible I redacted the hmtx reference.

>| [INFORMATIVE NOTE: Where multiple transformation versions are defined 
>| for a table, an encoder should normally choose the transformation 
>| version that results in the smallest transformed table length, unless 
>| the reduction is so slight as to be insignificant.]
>
>before continuing with the existing text:
># If a decoder encounters a table entry that specifies an unknown 
># transformation version number the entire font MUST be rejected as it 
># cannot be correctly decoded.

Accepted, thank you.

>--------------------
>
>We also need to update the later sentence:
>
># Optionally, for 'glyf' and 'loca' tables that are subjected to 
># additional transformations, the transformLength specifies the length 
># of the transformed version of the table.
>
>to mention 'hmtx' with transformation version 1, in addition to 'glyf' and 'loca'.
>

Done.

>Also, I think the word "Optionally" should be dropped here. This field is never 
>optional; in any given table directory entry, it is either required or prohibited. 
>Something like this:
>
>| The transformLength field is present in the table directory entry if, 
>| and only if, the table has been processed by a non-null transform 
>| prior to Brotli compression. This is the case for the 'glyf' and 
>| 'loca' tables with transformation version 0, and for 'hmtx' when it 
>| uses transformation version 1. For tables that are not transformed, no 
>| transformLength field is present in the directory entry.

Accepted with some editorial changes. I removed "optional from both the field description and the spec proper, and updated certain paragraph clarifying this and adding a new conformance requirement on font format.

Thank you,
Vlad

Received on Friday, 9 October 2015 18:32:10 UTC