Meeting minutes
Speeding up incremental transfer patch generation
What is the current rough cost of patch generation using the current two methods relative to subset generation?
garret will answer in a bit
Different methods of speeding up patching
1) brotli quality parameter (computation vs size)
2) Custom brotli encoding possibilities
(brotli has meta-blocks, which are semi-independent chunks of data. meta-blocks can be produced via different methods)
Case 1: Supporting precompression of file sections that don't change between subsets (e.g. GPOS/GSUB with fixed GIDs)
Can embed chunks that are pre-compressed at higher quality
Case ?: Custom compression and diffing of font tables with a known format
Data summary: "Immutable" layout slower and larger for subsetting, but patches are correspondingly smaller.
Patch generation times are a bit more than double subset generation times for equivalent levels of compression.
Noto sans data: much larger font, correspondingly longer times, but mostly proportional to the times for a smaller font
Brotli level 5 is the minimum for patch generation (probably because of lack of back-tracking at lower levels)
Some preliminary work on generating back-track maps using table-specific knowledge.
Also investigating the possibility of pre-compressing frequently-transmitted-together glyph subsets
Opportunities to speed up HarfBuzz's mode for GID preserving subset generation
<Garret> Data I presented: https://
<Garret> https://
<Garret> https://
Good to get comparable stats on vcdiff and also just gzipping the patches
<Garret> Take aways: 1. precompression looks useful, provides meaningful speedups in some cases. Also may reduce overall transfer sizes by avoiding patching layout (or other tables0.
<Garret> 2. Brotli quality 5-8 looks like a sweet spot for dynamic use.
<Garret> 3. Lots of potential in the glyf diffing and custom brotli encoder approach, more work is needed to see the full benefits.
Relative to potential PRs: skef has the impression that everything discussed actually fits within the current spec -- ti's all below the level of what we've recorded so far