View Single Post
Old 01-14-2015, 09:34 AM   #225
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,480
Karma: 26012494
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
@davidfor: There's a fair bit of whitespace killing noise in the patch, yes (blame that on my text editor settings). I'm wary of building a diff with bB to skip those because that might be critical for Python code, and end up generating a broken diff. I'll check, though .

minify_to: Yeah, that's basically the bounding box/canvas size. In this case, it pretty much always should match the exact size we're scaling to, *except* when doing letterboxing. Which is (hopefully) how the patch is using it.

Full size scaling w/ Keep AR: Yep, agreed, which is what's the patch also doing (granted, only if uploadgrayscale is enabled right now) .

EDIT: There, patch should be less noisy .

EDIT²: v3, which switches the scaling algorithm to Lanczos for eink covers. Slightly sharper, and the downside of slightly more ringing is usually alleviated by the dithering. Performance should be comparable.

EDIT³: v4, mostly nothing new. Just confirmed that we can't avoid the extra scaling pass made by nickel itself when it adds the deadzone covered by the bezel on the Aura & H2O.

EDIT⁴: v5, made the letterboxing optional. Still looks good on my H2O, and looks better with full screen sleep covers disabled on the Kobo.
cf. #247 for examples.

EDIT⁵: v6, 3 years later . Ported to the current Calibre codebase .
This no longer needs to patch C/C++ code, so it's pure Python.
Also a tiny patch to the Kobo Utilities plugin to make testing the letterboxing codepath easier.

EDIT⁶: v7, now with PNG support, because that just makes much more sense, and it happens to work flawlessly on my device .

EDIT⁷: v8, achieved pixel-perfect results w/ letterboxing on my H2O, despite its quirky top 11px .

EDIT⁸: v9, double-checked the other thumbnails size on my H2O, while I was there. One was off by 2px, the horror! .

EDIT⁹: v10, inconsequential tweak to a string.

EDIT¹⁰: v11, rebased against Calibre 3.36.0, fixed a few letterboxing issues, and reintroduced dithering as a dedicated option, following some tests on FW 4.12...

EDIT¹¹: v13, a few code cleanups, and made the new settings more robust to make nonsensical combinations impossible.

EDIT¹²: Refreshed KoboUtilities for v13 .

EDIT¹³: Resynced KoboUtilities w/ v2.7.0 .

EDIT¹⁴: Resynced KoboUtilities w/ v2.8.0 .

EDIT¹⁵: v16, revamped dimension computations, greatly enhanced dithering, better PNG encodes.

EDIT¹⁶: Tweaked the PNG encoding process to speed it up (twice as fast as the first v16 implementation).

EDIT¹⁷: Latest iteration in the Calibre PR .

EDIT¹⁸: Tweaked KoboUtilities checkbox layout to match latest driver changes.

EDIT¹⁹: This is now included in Calibre >= 3.44.0 .

EDIT²⁰: This is now included in Kobo Utilities >= 2.9.0 .

Last edited by NiLuJe; 10-13-2019 at 05:06 PM. Reason: Made it into Calibre >= 3.44.0 & Kobo Utilities >= 2.9.0 ;).
NiLuJe is offline   Reply With Quote