programs: Optimize GIFs (Pt 2) #238

Merged
ace-dent merged 5 commits from ace-dent/kolibrios-gitea:PR-OptimizeGIFs2 into main 2025-06-18 07:05:14 +02:00
Member

Lossless optimization of GIF image files.
Processed with gifsicle -O3(extreme) or gifsicle --no-loopcount --no-comments (when only minimal adjustment is permitted).
LZW stream optimized with flexigif -p -f -a=1. Methods selected to ensure optimal compression with final KPACK step, since better LZW may reduce LZMA used in bundling programs; evaluated with: xz --format=lzma --check=none --lzma1=mode=normal,dict=64KiB,nice=273,lc=3,lp=0,pb=2 -k -c in.gif > out.lzma
Tested with GIF Inspector and via code review.

📦 Program graphics (compiled or included with software):

  • Slimmed demos/free3d04 , saved 1489 bytes, ~4%.
  • Slimmed media/midamp/ 3 files, saving 131 bytes, average ~4%.
  • Slimmed testing/cpuid/trunk/cyrix.gif, saved 25 bytes, ~3%.

📖 Documentation only artwork (distributed outside a program):

  • Slimmed Beat/Beat.gif, saved 29 bytes, ~0.5%.

🥀 Old vestigial images, no longer used (pending deletion):

  • Slimmed demos/3detx60b/ 2 files, saving 762 bytes, average ~5%.
Lossless optimization of GIF image files. Processed with `gifsicle -O3`(extreme) or `gifsicle --no-loopcount --no-comments` (when only minimal adjustment is permitted). LZW stream optimized with `flexigif -p -f -a=1`. Methods selected to ensure optimal compression with final KPACK step, since better LZW may reduce LZMA used in bundling programs; evaluated with: `xz --format=lzma --check=none --lzma1=mode=normal,dict=64KiB,nice=273,lc=3,lp=0,pb=2 -k -c in.gif > out.lzma` Tested with [GIF Inspector](https://movableink.github.io/gif-inspector/) and via code review. 📦 Program graphics (compiled or included with software): - Slimmed `demos/free3d04 `, saved 1489 bytes, ~4%. - Slimmed `media/midamp/` 3 files, saving 131 bytes, average ~4%. - Slimmed `testing/cpuid/trunk/cyrix.gif`, saved 25 bytes, ~3%. 📖 Documentation only artwork (distributed outside a program): - Slimmed `Beat/Beat.gif`, saved 29 bytes, ~0.5%. 🥀 Old vestigial images, no longer used (pending deletion): - Slimmed `demos/3detx60b/` 2 files, saving 762 bytes, average ~5%.
ace-dent added the
Priority
Low
Category/Applications
Kind
Enhancement
labels 2025-05-15 23:51:37 +02:00
ace-dent added 2 commits 2025-05-15 23:51:41 +02:00
Lossless optimization of GIF image files. Selective use of `gifsicle -O3` and/or `flexigif -p -f -a=1`, ensuring optimal KPACK LZMA compression.

📦 Program graphics (compiled or included with software):
- Slimmed `cpuid/trunk/cyrix.gif`, saved 25 bytes (~3%).
programs/media: Optimize GIFs midamp
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 34s
Build system / Build (pull_request) Successful in 4m33s
09a05a9821
Lossless optimization of GIF image files. Selective use of `gifsicle -O3` and `flexigif -p -f -a=1`, while ensuring optimal KPACK LZMA compression.

📦 Program graphics (compiled or included with software):
- Slimmed `midamp/trunk/bottom.gif`, saved 87 bytes (~6%).
- Slimmed `midamp/trunk/buttons.gif`, saved 29 bytes (~4%).
- Slimmed `midamp/trunk/hdr.gif`, saved 15 bytes (~1%).
ace-dent added 1 commit 2025-05-16 14:50:33 +02:00
programs/media: Optimize GIFs Beat
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 24s
Build system / Build (pull_request) Successful in 4m18s
1fdd6ee03e
Lossless optimization of GIF image files, using `gifsicle -O3 --no-comments`.

📖 Documentation only artwork (distributed outside a program):
- Slimmed `Beat/Beat.gif` 5607 → 5578 bytes, saved 29 bytes (~0.5%)
ace-dent added 1 commit 2025-05-16 15:05:14 +02:00
programs/demos: Optimize GIFs free3d04
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 27s
Build system / Build (pull_request) Successful in 4m23s
95cbad6ce3
Lossless optimization of GIF image files. Used `gifsicle -O3` and `flexigif -p -f -a=1`, while ensuring optimal KPACK LZMA compression.

📦 Program graphics (compiled or included with software):
- Slimmed `demos/free3d04` 29787 → 28298 bytes, saved 1489 bytes, ~4%.
ace-dent added 1 commit 2025-05-17 10:58:18 +02:00
programs/demos: Optimize GIFs 3detx60b
All checks were successful
Build system / Check kernel codestyle (pull_request) Successful in 22s
Build system / Build (pull_request) Successful in 4m24s
af75b2fb54
Lossless optimization of GIF image files. Using `gifsicle -O3` and `flexigif -p -f -a=1`, while ensuring optimal KPACK LZMA compression.

📦 Program graphics (compiled or included with software):
- Slimmed `3detx60b/map.gif` 6026 → 5570 bytes, saved 456 bytes, ~7%.
- Slimmed `3detx60b/texpack.gif` 9439 → 9133 bytes, saved 306 bytes, ~3%.
ace-dent changed title from WIP: programs: Optimize GIFs (Pt 2) to programs: Optimize GIFs (Pt 2) 2025-05-17 11:04:39 +02:00
ace-dent added the
PR
Review required
label 2025-05-17 11:04:53 +02:00
Author
Member

Tested and looks fine. This PR saves ~1.3 KiB in final distributions.

Tested and looks fine. This PR saves ~1.3 KiB in final distributions.
ace-dent requested review from dunkaist 2025-05-18 19:43:27 +02:00
ace-dent requested review from Sweetbread 2025-05-18 19:43:47 +02:00
Owner

Why not merge with #235?

Why not merge with #235?
Sweetbread refused to review 2025-05-19 15:02:15 +02:00
Author
Member

Thanks @Sweetbread -

Why not merge with #235?

Does it matter? I prefer smaller atomic commits, than monolithic ones. Normally it makes review and merging easier.
It's also because I'm unsure about Gitea and Team KolibriOS approach to PR's. 😃

Thanks @Sweetbread - > Why not merge with #235? Does it matter? I prefer smaller atomic commits, than monolithic ones. Normally it makes review and merging easier. It's also because I'm unsure about Gitea and Team KolibriOS approach to PR's. 😃
Owner

I prefer smaller atomic commits

I'm talking about PRs, not commits

> I prefer smaller atomic commits I'm talking about PRs, not commits
Author
Member

@Sweetbread - same logic. Big PR's are difficult to review for quality...
Some projects are slow to review, accept and merge PR's, so it can also avoid conflicts if they are sat around for too long.

In future I can combine PR's where it makes sense.
Let's see how long it takes for these 2 trivial PR's to get merged... 😉

@Sweetbread - same logic. Big PR's are difficult to review for quality... Some projects are slow to review, accept and merge PR's, so it can also avoid conflicts if they are sat around for too long. In future I can combine PR's where it makes sense. Let's see how long it takes for these 2 trivial PR's to get merged... 😉
ace-dent requested review from Leency 2025-05-20 23:05:46 +02:00
Burer approved these changes 2025-05-24 16:50:25 +02:00
Burer left a comment
Owner

I tested free3d04, midamp and beat, all works okay for me.

Can't properly test cpuid, as I don't have Cyrix CPU.
And can't test 3detx60b, as I don't found this program in image.
But probably, this changes also shouldn't break anything.

I tested `free3d04`, `midamp` and `beat`, all works okay for me. Can't properly test `cpuid`, as I don't have Cyrix CPU. And can't test `3detx60b`, as I don't found this program in image. But probably, this changes also shouldn't break anything.
Author
Member

@Burer - thanks for your time and testing!

@Burer - thanks for your time and testing!
ace-dent added
PR
Ready to merge
and removed
PR
Review required
labels 2025-05-24 18:04:14 +02:00
ace-dent requested review from mxlgv 2025-05-27 10:12:03 +02:00
ace-dent added
PR
Review required
and removed
PR
Ready to merge
labels 2025-05-27 10:12:42 +02:00
dunkaist approved these changes 2025-06-16 22:34:34 +02:00
ace-dent removed review request for Leency 2025-06-18 00:05:28 +02:00
ace-dent removed review request for mxlgv 2025-06-18 00:05:39 +02:00
ace-dent force-pushed PR-OptimizeGIFs2 from af75b2fb54 to 281b386b65 2025-06-18 00:09:25 +02:00 Compare
ace-dent scheduled this pull request to auto merge when all checks succeed 2025-06-18 00:16:09 +02:00
ace-dent merged commit 03111f5e99 into main 2025-06-18 07:05:13 +02:00
Sign in to join this conversation.
No Reviewers
4 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KolibriOS/kolibrios#238
No description provided.