Skip to content

Performance: add optional downscaling before applying filter#1336

Merged
andi34 merged 5 commits intoPhotoboothProject:devfrom
reloxx13:feature/downscale-before-filter-for-performence
Dec 30, 2025
Merged

Performance: add optional downscaling before applying filter#1336
andi34 merged 5 commits intoPhotoboothProject:devfrom
reloxx13:feature/downscale-before-filter-for-performence

Conversation

@reloxx13
Copy link
Copy Markdown
Collaborator

…lters for improved performance

Prerequisites checklist

What is the purpose of this pull request? (put an "x" next to an item)

  • Documentation update
  • Bug fix
  • New feature
  • Other, please explain:

What changes did you make? (Give an overview)

Add optional downscaling before applying filters for improved performance on low-end devices

Is there anything you'd like reviewers to focus on?

@reloxx13 reloxx13 marked this pull request as draft December 18, 2025 17:33
@reloxx13
Copy link
Copy Markdown
Collaborator Author

Needs testing on live system

@reloxx13
Copy link
Copy Markdown
Collaborator Author

reloxx13 commented Dec 19, 2025

on a pi3b+
from 3-5s depending on filter and ogrinal 1920px width
to 1-3s with max width 800px
great time improvement and the slow pi and photoquality is still fine on tablet and printed.

Limited to 800px
Average: ≈ 1,546 ms (≈ 1.55 seconds)
Filters: 25
Total processing time: 38,661 ms
Notable outlier: selective-blur (5,806 ms), which significantly increases the average.
Original 1920px
Average: ≈ 4,265 ms (≈ 4.27 s)
Filters: 26
Total processing time: 110,892 ms
Biggest outlier: selective-blur = 28,729 ms (also blur = 12,474 ms)
Average without selective-blur: ≈ 3,286.52 ms (≈ 3.29 s)
800px results

``` ["Processing photo took 1341ms for filter `antique`"] ["Processing photo took 1226ms for filter `aqua`"] ["Processing photo took 1179ms for filter `blue`"] ["Processing photo took 2979ms for filter `blur`"] ["Processing photo took 1244ms for filter `color`"] ["Processing photo took 1545ms for filter `cool`"] ["Processing photo took 1486ms for filter `edge`"] ["Processing photo took 1490ms for filter `emboss`"] ["Processing photo took 1304ms for filter `everglow`"] ["Processing photo took 1182ms for filter `grayscale`"] ["Processing photo took 1198ms for filter `green`"] ["Processing photo took 1506ms for filter `mean`"] ["Processing photo took 1208ms for filter `negate`"] ["Processing photo took 1192ms for filter `pink`"] ["Processing photo took 1166ms for filter `pixelate`"] ["Processing photo took 1199ms for filter `red`"] ["Processing photo took 1247ms for filter `retro`"] ["Processing photo took 5806ms for filter `selective-blur`"] ["Processing photo took 1232ms for filter `sepia-light`"] ["Processing photo took 1278ms for filter `sepia-dark`"] ["Processing photo took 1486ms for filter `smooth`"] ["Processing photo took 1341ms for filter `summer`"] ["Processing photo took 1268ms for filter `vintage`"] ["Processing photo took 1367ms for filter `washed`"] ["Processing photo took 1191ms for filter `yellow`"] ```

Original 1920px results

``` ["Processing photo took 2113ms for filter `plain`"] ["Processing photo took 2864ms for filter `antique`"] ["Processing photo took 2470ms for filter `aqua`"] ["Processing photo took 2377ms for filter `blue`"] ["Processing photo took 12474ms for filter `blur`"] ["Processing photo took 2564ms for filter `color`"] ["Processing photo took 4409ms for filter `cool`"] ["Processing photo took 3970ms for filter `edge`"] ["Processing photo took 3989ms for filter `emboss`"] ["Processing photo took 3031ms for filter `everglow`"] ["Processing photo took 2305ms for filter `grayscale`"] ["Processing photo took 2388ms for filter `green`"] ["Processing photo took 4014ms for filter `mean`"] ["Processing photo took 2306ms for filter `negate`"] ["Processing photo took 2386ms for filter `pink`"] ["Processing photo took 2206ms for filter `pixelate`"] ["Processing photo took 2383ms for filter `red`"] ["Processing photo took 2628ms for filter `retro`"] ["Processing photo took 28729ms for filter `selective-blur`"] ["Processing photo took 2580ms for filter `sepia-light`"] ["Processing photo took 2881ms for filter `sepia-dark`"] ["Processing photo took 3872ms for filter `smooth`"] ["Processing photo took 3255ms for filter `summer`"] ["Processing photo took 2821ms for filter `vintage`"] ["Processing photo took 3476ms for filter `washed`"] ["Processing photo took 2401ms for filter `yellow`"] ```

@reloxx13 reloxx13 marked this pull request as ready for review December 19, 2025 15:08
@reloxx13
Copy link
Copy Markdown
Collaborator Author

reloxx13 commented Dec 19, 2025

Could add a function to reuse the downscaled image if the user tries different filters, but this should be fine for now. Will need the other delete PR merged before, because the resized image has to be deleted too.

@reloxx13 reloxx13 changed the title Enhance image processing: add optional downscaling before… Performance: add optional downscaling before applying filter Dec 19, 2025
@andi34 andi34 force-pushed the feature/downscale-before-filter-for-performence branch from 84b8fbb to 591f17e Compare December 22, 2025 18:48
@andi34
Copy link
Copy Markdown
Contributor

andi34 commented Dec 22, 2025

Rebase after latest config handling changes. Also squashed 2 commits for cleaner commit history.

@andi34 andi34 force-pushed the feature/downscale-before-filter-for-performence branch 2 times, most recently from 8d7c709 to 6caeafd Compare December 27, 2025 21:11
@reloxx13 reloxx13 force-pushed the feature/downscale-before-filter-for-performence branch from 6caeafd to 2dd2245 Compare December 30, 2025 11:34
@reloxx13
Copy link
Copy Markdown
Collaborator Author

rebased
are you fine with merging @andi34 ?

@andi34 andi34 merged commit 795564b into PhotoboothProject:dev Dec 30, 2025
9 checks passed
@reloxx13 reloxx13 deleted the feature/downscale-before-filter-for-performence branch January 7, 2026 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants