Skip to content

Commit 013e2a8

Browse files
committed
Clarify the scope of the segmentation algorithm.
1 parent c672b5c commit 013e2a8

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

docs/glyph_segmentation.md renamed to docs/closure_glyph_segmentation.md

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generating Glyph Keyed Segmentations during IFT Encoding using Subsetter Glyph Closure
1+
# Converting Unicode Code Point to Glyph Keyed Segmentations during IFT Encoding using Subsetter Glyph Closure
22

33
Author: Garret Rieger
44
Date: Jan 27, 2025
@@ -25,15 +25,19 @@ both an f and i character it will load both patches, however this makes it possi
2525
to be used. Thus we need to make the fi glyph available in this case. One way to do that is to
2626
form a third patch containing the ligature glyph and assign the activation condition (f and i).
2727

28-
The remainder of this document describes a potential procedure for analyzing a font to determine how
29-
to split glyphs across a set of patches and what activation conditions should be assigned to each of
30-
those patches.
28+
Because the IFT font will use unicode code points in the activation conditions, it will be typical to
29+
express a desired segmentation of the original font using unicode code points. The remainder of
30+
this document describes a procedure for converting a desired unicode code point segmentation into a
31+
set of glyph patches with load conditions described in terms of those provided unicode segments.
32+
33+
Notably, this document does not aim to describe a solution to producing the unicode code point segmentation
34+
which is of high importance to the production of performant overall glyph segmentations.
3135

3236
The code that implements the procedures in this document can be found in
33-
[glyph_segmentation.cc](../ift/encoder/glyph_segmentation.cc)
37+
[closure_glyph_segmenter.cc](../ift/encoder/closure_glyph_segmenter.cc)
3438

3539
There is also a command line utility to generate segmentations:
36-
[util/glyph_keyed_segmenter](../util/glyph_keyed_segmenter.cc)
40+
[util/closure_glyph_keyed_segmenter_util](../util/closure_glyph_keyed_segmenter_util.cc)
3741

3842
At the end of this document you can find a couple of [examples](#examples) which illustrate how the
3943
procedures work in practice.
@@ -42,13 +46,13 @@ procedures work in practice.
4246

4347
Development of a robust glyph segmentation process that produces performant, low over head
4448
segmentations is an area of active development in the ift encoder. The current prototype
45-
implementation in [glyph_segmentation.cc](../ift/encoder/glyph_segmentation.cc) can produce
49+
implementation in [closure_glyph_segmenter.cc](../ift/encoder/closure_glyph_segmenter.cc) can produce
4650
segmentations that satisfy the closure requirement, but does not yet necessarily produce ones that
4751
are performant.
4852

4953
The approach laid out in this document is just one possible approach to solving the problem. This
5054
document aims primarily to describe how the prototype implementation in
51-
[glyph_segmentation.cc](../ift/encoder/glyph_segmentation.cc) functions, and is not intended to
55+
[closure_glyph_segmenter.cc](../ift/encoder/closure_glyph_segmenter.cc) functions, and is not intended to
5256
present a the final (or only) solution to the problem. There are several unsolved problems and
5357
remaining areas for development in this particular approach:
5458

@@ -82,7 +86,7 @@ The segmentation procedure described in this document aims to achieve the follow
8286

8387
* Determine the activation conditions for each of those patches. An activation condition is a boolean
8488
expression using conjunction and disjunction with the presence of Unicode code points being the boolean
85-
values.
89+
values. The input unicode code point segmentations are used to form the conditions.
8690

8791
* Optimize for minimal data transfer by avoiding duplicating glyphs across patches where possible.
8892

0 commit comments

Comments
 (0)