๋ค์ฑ๋ก์ด ์ด๋ฏธ์ง์ ์ค์ํฉ๋๋ค.
์์ค ์ด๋ฏธ์ง [174285 B]
upng ํ ์น ์ธํฐํ์ด์ค [69927 B]
pngquant์ ๊ฒฐ๊ณผ๊ฐ ๋ ์ข์ ๋ณด์
๋๋ค. [69932B]
๊ณผ๊ฑฐ์ Floyd-Steinberg ๋๋๋ง์ ๊ตฌํํ์ง๋ง ๊ทธ๋งํ ๊ฐ์น๊ฐ ์์์ต๋๋ค.
์์ถ ์นํ์ ์ธ ๋๋๋ง์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ฅผ ๋์ธ ์ ์๋ ์ฌ๋์ ์๊ณ ์์ต๋๊น?
pngquant๋ ๋ ๋์ ์์ ์ฒ๋ฆฌ๋ฅผ ์ํด ์์ ๋ Floyd-Steinberg๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋๋ ๋๋๋ง์ด ๋ฌด์์์ ์ธ ํน์ฑ ๋๋ฌธ์ ํญ์ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํฌ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ์ ์ผํ ๋ชฉ์ ์ ์ฐ๋ฆฌ์ ๋์ ์ฆ๊ฒ๊ฒ ํ๋ ๊ฒ์
๋๋ค.
๋๋๋ง์ Ps์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋๊ทธ ์๋์ ์จ๊ธธ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ํ ๊ฒ์
๋๋ค.
์์ถ ์นํ์ ์ธ ๋๋๋ง์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ฅผ ๋์ธ ์ ์๋ ์ฌ๋์ ์๊ณ ์์ต๋๊น?
@kornelski์๊ฒ ๋ฌผ์ด๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ธ ๊ฐ์ง ๋ฒ์ ์ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์์ต๋๋ค.
B๋ C๋งํผ ๋ฉ์ ธ ๋ณด์ด์ง๋ง ์ฝ๊ฐ ๋ ์ปธ๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ์์์ ํ์ฉํ๋ ๊ฒ์ด ๋๋๋ง๋ณด๋ค ๋ซ๋ค๊ณ ์๊ฐํ์ต๋๋ค(๋ ๋ค ํ์ผ ํฌ๊ธฐ ์ฆ๊ฐ).
๋ช ๊ฐ์ง ๋ฐ๋ณต์ ์ธ ํจํด์ผ๋ก ๊ตฌ์ฑ๋ ๋๋๋ง์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฆ, Deflate ์๊ณ ๋ฆฌ์ฆ์ "์น์ํด์ผ" ํฉ๋๋ค. B๊ฐ 20kB๋ง ๊ฐ๋๋ก ํฉ๋๋ค(๊ทธ๋์ ์ฌ์ ํ C๋งํผ ํ๋ฅญํ์ง๋ง ๋ ์์).
ใ ใ . ๋๋ ๋ํ pngquant๊ฐ ๋ ๋์ Deflate(UPNG.js๋ณด๋ค ์ฝ 100๋ฐฐ ๋ ๋ง์ ์๊ฐ์ด ์์๋จ: ์: 30ms ๋ 3000ms)๋ฅผ ์ํํ๋ฏ๋ก ๋ด๊ฐ ํ๋ ๊ฒ๊ณผ ๋์ผํ ๋๋๋ง์ ์ฌ์ฉํ๋ฉด์ B๊ฐ 20kB๋ง ๊ฐ๋๋ก ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๊ฒ ์ด์.
์ด ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๋๋๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
pngquant๋ mse ์ค๋ฅ๋ฅผ ๊ณ์ฐํ๊ณ ์ต์ ๋ฐ ์ต๋ ํ์ง ์ค์ ์ ๊ฐ์ง๋ฉฐ ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฌ๊ฑฐ๋ ํ์ง์ด ํฌ๊ฒ ์ ํ๋๋ ๊ฒฝ์ฐ ํ์ผ์ ์ฐ์ง ์์ต๋๋ค.
์ด ์ค๋ ๋๊ฐ ์ ์ฉํ๋ค๊ณ ์๊ฐํ ์๋ ์์ต๋๋ค.
https://encode.ru/threads/1757-Lossy-DEFLATE-lossy-PNG
๊ทธ๋ฆฌ๊ณ ์ด ํ๋ก์ ํธ๋ ํนํ
https://github.com/foobaz/lossypng
์, pngquant๋ ํ๊ท ์ ๊ณฑ ์ค์ฐจ๋ฅผ ๊ณ์ฐํ๊ณ ์ค๋ฅ๊ฐ ๋์ ์์ญ์๋ง ๋๋๋ง์ ์ ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋๋๋ง์ด ํ์ํ์ง ์์ ์์ญ์ ์ถ๊ฐ ๋ ธ์ด์ฆ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
pngquant๋ ๋ํ ์์ง ๊ฐ์ง(Prewitt ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ ์ฌ)๋ฅผ ์ํํ๊ณ ์์ง์์ ๋๋๋ง์ ๋นํ์ฑํํฉ๋๋ค. ์ด๊ฒ์ ์คํฐ ์จ๋ฆฌ์ด์ฑ์ด ๋ชจํผ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
pngquant์์ ์๊ฐ์ 90%๋ K-ํ๊ท ์ ์ถ๊ฐ ์คํ์ ์ฌ์ฉ๋ฉ๋๋ค. --speed 10
ํ๋ ๊ฒฝ์ฐ ์ ์ฒด ์ฌ์์ถ(i7 2.3Ghz์์)์ ~80ms ๋๋๋ง, 50ms ๋น๋๋๋ง์ด ๊ฑธ๋ฆฝ๋๋ค.
(BTW, TinyPNG์๋ ์์ฒด ์๊ณ ๋ฆฌ์ฆ์ด ์์ต๋๋ค. ๊ทธ๋ฅ pngquant์ฉ GUI์ผ ๋ฟ์ ๋๋ค.)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์, pngquant๋ ํ๊ท ์ ๊ณฑ ์ค์ฐจ๋ฅผ ๊ณ์ฐํ๊ณ ์ค๋ฅ๊ฐ ๋์ ์์ญ์๋ง ๋๋๋ง์ ์ ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋๋๋ง์ด ํ์ํ์ง ์์ ์์ญ์ ์ถ๊ฐ ๋ ธ์ด์ฆ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
pngquant๋ ๋ํ ์์ง ๊ฐ์ง(Prewitt ์๊ณ ๋ฆฌ์ฆ๊ณผ ์ ์ฌ)๋ฅผ ์ํํ๊ณ ์์ง์์ ๋๋๋ง์ ๋นํ์ฑํํฉ๋๋ค. ์ด๊ฒ์ ์คํฐ ์จ๋ฆฌ์ด์ฑ์ด ๋ชจํผ์ฒ๋ผ ๋ณด์ด๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
pngquant์์ ์๊ฐ์ 90%๋ K-ํ๊ท ์ ์ถ๊ฐ ์คํ์ ์ฌ์ฉ๋ฉ๋๋ค.
--speed 10
ํ๋ ๊ฒฝ์ฐ ์ ์ฒด ์ฌ์์ถ(i7 2.3Ghz์์)์ ~80ms ๋๋๋ง, 50ms ๋น๋๋๋ง์ด ๊ฑธ๋ฆฝ๋๋ค.(BTW, TinyPNG์๋ ์์ฒด ์๊ณ ๋ฆฌ์ฆ์ด ์์ต๋๋ค. ๊ทธ๋ฅ pngquant์ฉ GUI์ผ ๋ฟ์ ๋๋ค.)