Skip to content

Improve performance of grayscale calculation steps#2

Open
developher-net wants to merge 2 commits intojosefrichter:masterfrom
developher-net:master
Open

Improve performance of grayscale calculation steps#2
developher-net wants to merge 2 commits intojosefrichter:masterfrom
developher-net:master

Conversation

@developher-net
Copy link

The grayscale calculation involving nested loops that check properties of the image on every loop are inefficient. On top of that, the extra calculation to determine the pixel position based on the interation of the nested loops adds more overhead

This can be collapsed into a single iterative loop, without an inner calculation. Considering this loop runs literally thousands of times on even a small image, simplification makes for a significant performance improvement.

Since the pixel rewrite loop will run literally thousands of times on just a single image, it makes sense to optimize it as much as possible.

Reducing to a single iterative loop instead of two nested loops.

Also reduce the math run inside of each loop to calculate the pixel position in the array.
The standard "Luma" formula is closer to how humans perceive colors and grayscale. While an average is technically correct, it doesn't match what the human eye perceives.

See http://www.tannerhelland.com/3643/grayscale-image-algorithm-vb6/ for more explanation.
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.

1 participant