I am working on a dingbat font with a lot of details. With the recommended value of 1000 UPM I get really poor results. With a value of 2000 UPM the quality is at least acceptable. Both FontLab and FontQA give me errors because of the differing values.

So I wonder: What problems could I run into if I use an UPM value of 2000 in an CFF OpenType font?

Ralf

http://typophile.com/node/30727

Use 2048 but be sure your UPM value is consistant with the actual outline size.

ChrisL

No particular reason to choose 2048 over 2000, for OpenType CFF.

I'm not sure what Chris means by "the UPM value is consistent with the actual outline size." Perhaps he just means that the outlines should not be massively larger/smaller than the UPM, which is good advice.

Regards,

T

Yes, that is what I mean Thomas. Regarding 2048, I was told that 2048 is a factor of the square root of 2 and therefore can be expressed more quickly by a computer. I think it was Vincent Connair who said it while he was at Microsoft. There is a thread here someplace which goes into it more.

ChrisL

Thats good news. Thanks for all the answers.

Ralf

> Use 2048

This myth must die.

> a factor of the square root of 2 and therefore can be expressed more quickly by a computer

The whole thing with power of two is related to rasterizing & performance.

Yes, so why must it die? is there a problem with maximizing performance in rasterizing?

ChrisL

ChrisL: powers of two used to be important for early TrueType rasterizers, back when integer math was considerably faster than floating point. They have never been relevant for Type1 rasterizers. It might still be worth worrying about if you're designing TT outlines for handheld devices, but modern CPU's process floats just as fast, or faster, than integers.

Incidentally, it's possible to do fractions in Type1 (and OT CFF), so the units per em is not really a hard limit the way it is in TT. FontForge can do fractions (it's turned off by default), and I wouldn't be surprised if other tools could too. A font with 1000 and fractions will have fewer potential compatibility problems than one with a nonstandard em size. Fonts with nonstandard units are valid, but the problems come when you do glyph substitution and replacement across multiple fonts, and when buggy applications get confused by the metrics. But for this application, it doesn't sound like any of these problems are particularly worth worrying about. You need lots of units to represent your detail, so go for it.

Thanks Raph. Hopefully the Microsoft folks will chime in and give their 2 cents worth too.

ChrisL

> Yes, so why must it die?

since day one there was no problem to design TT with 16384 em-square or less. Why they still stick to 2048? Mabye the old habit. But there's no reason to do that anymore. Maybe Simon will shed some light.

Incidentally, it’s possible to do fractions in Type1 (and OT CFF), so the units per em is not really a hard limit the way it is in TT. FontForge can do fractions (it’s turned off by default), and I wouldn’t be surprised if other tools could too.

I've been using floating point in Type 1 in FontForge (which seems to be on by default), but when I convert to OT CFF, FontForge rounds to integer. How do I keep the coordinates floating point? Thanks!

TypoWiki ;-)

Yes Karsten, that is the thread I meant Thanks!

http://typophile.com/node/30913

ChrisL

As far as we were ever able to determine at Adobe, the "power of 2" thing stems from optimizing scaling operations for Motorola 68000-series CPUs, which could use binary bit-shifting for multiplication.

We attempted to test this, and were unable to discover any measurable performance differences in rasterization for slight differences in em-square values on Intel or PowerPC hardware, across a variety of sizes.

But it's still a Microsoft requirement today. It's possible that some tools or environments have dependencies on a 2048 em for TT outlines. It's also possible that some tools or environments have dependencies on a 1000-unit em for Type 1 or CFF outlines.

For example, InDesign CS1 and earlier assume a 1000-unit em (for Type 1 and CFF) when determining cursor and selection size, which can cause a cosmetic problem. One can imagine more serious problems, but I haven't seen any (yet).

Regards,

T