Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(7102)

Issue 581960043: Thread skyline construction through stencil interpretation (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
3 years, 11 months ago by hanwenn
Modified:
3 years, 11 months ago
Reviewers:
dak, hahnjo
CC:
lilypond-devel_gnu.org
Visibility:
Public.

Description

Thread skyline construction through stencil interpretation Before, we'd convert stencils to a combination of boxes and buildings, and afterwards convert those to skylines. Avoid passing transforms through Scheme and back. The new approach has the following advantages: * We can convert stencils to line segments directly, allowing for more precise outlines. In particular, angled lines and angled boxes are converted to line segments, rather than sampled in boxes. * Fixes a small bug with quantization of rounded box corners * Obviates intermediate SCM storage for path components. This seems to be offset by increased memory usage due to more accurate path representation. * We can treat line thicknesses much more simply: we just extend line segments by 0.5 thicknesses on either side, and add them .5 thickness up and down. A next improvement is to thread Lazy_skyline_pair through to the glyph outline generation. This would let us cut back on memory use for path storage, and reduce the number of paths by 2x (the orientation of the outline segments tells us if they are for the up or down skyline.) Formatting impact: The regtest shows 114 differences. The improved skylines lead to slightly denser formatting, both horizontally and vertically. In particular, the bulb of the 'flat' symbol is represented more accurately, leading to tighter spacing of the fourth interval, if the flat is in a lower position, for example: <es' as'>4 and <es' a'!>4. Timing data 32bdd6a847 - Thread skyline construction through stencil interpretation baseline: eaf40071f5 Use vectors rather than lists for skylines. args: input/regression/mozart-hrn-3 memory: med diff -132 (stddevs 110 53, n=3) memory: med diff -0.0 % (32bdd6a847 is neutral) time: med diff -0.40 (stddevs 0.01 0.01, n=3) time: med diff -10.5 % (32bdd6a847 is faster) 32bdd6a847 - Thread skyline construction through stencil interpretation baseline: eaf40071f5 Use vectors rather than lists for skylines. args: -I carver MSDM memory: med diff 6900 (stddevs 142 76, n=3) memory: med diff 0.6 % (32bdd6a847 is fatter) time: med diff -0.21 (stddevs 0.08 0.10, n=3) time: med diff -0.4 % (32bdd6a847 is faster)

Patch Set 1 #

Patch Set 2 : separate header file, pass in transform. #

Patch Set 3 : split functions into scm arg and rest #

Patch Set 4 : tweaks; timings. #

Total comments: 15

Patch Set 5 : jonas, dak. #

Patch Set 6 : update commit msg; no functional changes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+316 lines, -427 lines) Patch
M flower/include/std-vector.hh View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
A lily/include/lazy-skyline-pair.hh View 1 2 3 4 1 chunk +92 lines, -0 lines 0 comments Download
M lily/include/lily-proto.hh View 1 1 chunk +1 line, -0 lines 0 comments Download
M lily/skyline.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M lily/stencil-integral.cc View 1 2 3 4 5 26 chunks +220 lines, -426 lines 0 comments Download

Messages

Total messages: 9
hanwenn
separate header file, pass in transform.
3 years, 11 months ago (2020-04-25 16:27:04 UTC) #1
hanwenn
split functions into scm arg and rest
3 years, 11 months ago (2020-04-26 08:10:07 UTC) #2
hanwenn
tweaks; timings.
3 years, 11 months ago (2020-04-26 10:21:21 UTC) #3
hahnjo
a few comments about the C++ code, though I don't really where the many differences ...
3 years, 11 months ago (2020-04-27 19:56:59 UTC) #4
dak
That's the kind of stuff that warrants compiling a few scores with -ddebug-skylines and looking ...
3 years, 11 months ago (2020-04-27 20:31:55 UTC) #5
hanwenn
jonas, dak.
3 years, 11 months ago (2020-04-27 21:14:09 UTC) #6
hanwenn
On 2020/04/27 20:31:55, dak wrote: > That's the kind of stuff that warrants compiling a ...
3 years, 11 months ago (2020-04-27 21:15:55 UTC) #7
hanwenn
https://codereview.appspot.com/581960043/diff/561710044/lily/include/lazy-skyline-pair.hh File lily/include/lazy-skyline-pair.hh (right): https://codereview.appspot.com/581960043/diff/561710044/lily/include/lazy-skyline-pair.hh#newcode23 lily/include/lazy-skyline-pair.hh:23: #include <vector> On 2020/04/27 19:56:59, hahnjo wrote: > last ...
3 years, 11 months ago (2020-04-27 21:16:02 UTC) #8
hanwenn
3 years, 11 months ago (2020-05-01 09:15:22 UTC) #9
update commit msg; no functional changes
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b