[MPEG-OTSPEC] Interaction between delta-set indices and non-variable values
Skef Iterum
skef at skef.org
Sun Apr 7 17:02:43 CEST 2024
I've been looking through the spec and want to ask a question about
delta-set indices (7.2.3.1 in Vladimir's latest).
The whole point of delta-set indices is:
* They are arrays, indexed by some external field (generally a GID)
* They allow the outer, inner pairs to be packed into 3, 2, or (I
think) even 1 byte when that's possible.
OK, but these values map into an Item Variation Store, and that section
(7.2.3.2) says:
A complete delta-set index involves an outer-level index into the
ItemVariationData subtable array, plus an inner-level index to a
delta-set row within that subtable. A special meaning is assigned to
a delta-set index 0xFFFF/0xFFFF (that is, outer-level and
inner-level portions are both 0xFFFF): this is used to indicate that
there is no variation data for a given item. Functionally, this
would be equivalent to referencing delta-set data consisting of only
deltas of 0 for all regions.
So 0xFFFF,0xFFFF is used as the index pair for something that doesn't
vary. And you'll often need these (or some substitute) in a delta-set
index because all the elements (e.g. glyphs) are typically represented
in a delta-set index.
However, just on the face of it it seems like you'll need 16 bits of
representation for the outer and 16 for the inner in the delta-set index
just because those are both 0xFFFF.
Is that wrong, or did our ancestors not notice this interaction? (I'm
hoping it's wrong.)
Skef
(One can add a zero-delta row to some subtable in the IVS and just use
its inner and outer indices to work around this, but obviously that's
not ideal.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20240407/fa6e4caf/attachment.htm>
More information about the mpeg-otspec
mailing list