jpegqs(1)

πŸŽ€ NAME πŸŽ€

jpegqs β€” JPEG Quant Smooth β€” it's giving JPEG artifacts removal, and honestly? iconic πŸ’…βœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

jpegqs [options] input.jpg output.jpg

πŸ’– DESCRIPTION πŸ’–

okay so bestie, sit down, because this is actually so cool 🫢

This program tries to recover the lost precision of DCT coefficients based on a quantization table from a JPEG image. Like, it goes digging through the quant table and tries to put back what got squished out. 😭

The result is saved as a JPEG image with quantization set to 1 β€” which is the same energy as a JPEG saved at 100% quality. she's giving brand new, no cap πŸ‘‘


✨ OPTIONS ✨

  • -q, --quality n β€” the quality setting, ranges from 0 to 6, and the default is 3 🌸
lowkey a lil mystery here β€” the original page has this path chillin' right at the end of this entry: /home/rainbow/Desktop/pngtest/jpegrestore/jpegqs.1 β€” so I'm keeping it because the rule is every detail stays, fr fr πŸ™ˆ
  • -n, --niter n β€” number of iterations (default is 3) πŸ”
    • More iterations can make the result look like CG art, can make the photos look unnatural. so like… she's giving render, not reality 😭
  • -t, --threads n β€” set the number of CPU threads to use 🧡 (yes she multithreads, we love a girlboss)
  • -o, --optimize β€” option for libjpeg to produce smaller output file πŸ“¦ (smaller file, same slay)
  • -v, --verbose n β€” print libjpeg debug output πŸ”Š
  • -i, --info n β€” print quantsmooth debug output (default is 15) πŸ“Š

Use the sum of flags, so you literally add them up, it's math girlie hours:

  • 0 β€” silent 🀫
  • 1/2/4 β€” various information
  • 8 β€” processing time
  • 16 β€” SIMD type
⚠️ the processing time includes only the smoothing algorithm β€” jpeg reading and writing time is not included. don't get it twisted bestie πŸ’€
  • -p, --cpu n β€” use to lower the SIMD type if CPU detection fails πŸ–₯️
    • 0 β€” auto
    • 1 β€” scalar
    • 2 β€” SSE2
    • 3 β€” AVX2
    • 4 β€” AVX512
πŸ“Œ x86 build selects between modes 1-3, x86_64 from 2-4. iykyk 🧚

🌈 QUALITY 🌈

The quality setting sets a combination of flags for processing, like a lil preset bundle, so cute πŸŽ€

  1. default ⭐
  2. adds DIAGONALS flag
    • smoother diagonal edges, ~1.5 times slower. she's smoother but she's taking her time πŸ’…
  3. adds JOINT_YUV flag
    • chroma channels will depend from luminance, better color consistency. the color girlies are gonna love this one 🎨
  4. adds UPSAMPLE_UV flag
    • non-blurring chroma upsampling, unlike fancy upsampling from libjpeg. no blur, only clarity ✨

levels 0-2 is the same as 4-6, but with LOW_QUALITY flag ~10 times faster, but the quality is lower πŸƒβ€β™€οΈπŸ’¨ LOW_QUALITY implies DIAGONALS (always set) β€” like, she said you're getting diagonals whether you asked or not πŸ’€


πŸ”₯ PROJECT PAGE πŸ”₯

https://github.com/ilyakurdyukov/jpeg-quantsmooth

go give it a star, bestie, it's free 🫢⭐


Copyright (C) 2016-2021 Ilya Kurdyukov


and that's the whole page, bestie!! this was JPEG Quant Smooth, version 08 Apr 2021, manual page jpegqs(1) β€” thank you for coming to my ted talk, mwah πŸ’–πŸ¦‹πŸŒΈβœ¨