In the obvious way that when A and B are similar enough (as font variations are) a delta between A and B is substantially smaller than bundling A AND B.
>A delta does not intrinsically require less information than an absolute value.
In the abstract, no, but in 99% of the cases where it's used in computing, e.g. it software updates, rsync, etc, it does, and that's exactly why it's used.
Why would font variations, which intuitively are more alike than different, would have diffs larger than the "absolute value"?
Are they similar? I would expect that between a bold glyph and a normal weight glyph, exactly zero points would be the same.
>In the abstract, no, but in 99% of the cases where it's used in computing, e.g. it software updates, rsync, etc, it does, and that's exactly why it's used.
You're comparing vector deltas (which are presumably floating point) to deltas between binaries, where you can take a line-by-line or byte-by-byte diff. This is apples and oranges.
I thought this was the definitive reason why git tracks full files, and not diffs. Turns out, that is just a better way to do things in most cases.
That description is already a (excellent) compression: A bitmap for the 1000px x 1000px "O" for your poster would be 1MB.
Whereas before fonts only had rules to change with size changes, this standard defines weight as another dimension.
It's quite similar to how jpeg, mpeg, and mp3 are better compression methods for their respective domains than WinZip could ever be by incorporating knowledge about data being encoded.
Additionally, since building the fonts from the source isn't time consuming anymore, you could just focus on compressing the representations that say "circle with center blah". (Which, again, takes this back into METAFONT territory. Not a bad place to be, just bemusing.)
In graphics, delta might be better, since the glyph is offset anyway on the canvas, so when drawing, the renderer can use the diff information as-is when the last point is known to reduce the number of operations to a simple addition with smaller length numbers as opposed to absolute positioning.
It might also keep the extracted memory footprint low since you might be able to get away with less bits per encoded change in a typed array data structure.
Still wonder if Mapbox ever did some size and speed benchmarking of general purpose compressed raw signed integers vs. their zig-zag and delta encoded vector tile geometries. https://github.com/mapbox/vector-tile-spec/issues/35#issue-1...