๋ค์ ํ๋ฒ ์๋
ํ์ธ์! 2019๋
XNUMX์์ ์์ฑ๋ ๊ธ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ด๊ฒ์ WAVE ๋ฐ JPEG์ ๊ดํ ์ผ๋ จ์ ๊ธฐ์ฌ์ ์ฐ์์
๋๋ค.
์ญ์ฌ์ ๊ผฌ์ง์
Wikipedia ๊ธฐ์ฌ์ ํ ์คํผ:
JPEG(Joint Photographic Experts Group)๋ ์ฌ์ง ๋ฐ ์ ์ฌํ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋์คํฐ ๊ทธ๋ํฝ ํ์ ์ค ํ๋์ ๋๋ค.
์ด ํ์ค์ ํจ์จ์ ์ธ ์ด๋ฏธ์ง ์์ถ์ ์ํด 1991๋ ์ Joint Photographic Experts Group์์ ๊ฐ๋ฐ๋์์ต๋๋ค.
์ด๋ฏธ์ง๋ ์ด๋ป๊ฒ RAW์์ JPEG๋ก ์ด๋ํ๋์?
์ด๋ค ์ฌ๋๋ค์ JPEG ์ด๋ฏธ์ง๊ฐ ํํ๋ง ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์์ถ๋ ์์ ๋ฐ์ดํฐ๋ผ๊ณ ์๊ฐํ์ง๋ง ์ด๋ ์ฌ์ค์ด ์๋๋๋ค. ์ ์ด ์์ถ ์ ์ ๋ฐ์ดํฐ๋ ๋จผ ๊ธธ์ ์ด๋ํฉ๋๋ค.
๋จผ์ ์์ ๋ชจ๋ธ์ด RGB์์ YCbCr๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๋ฅผ ์ํ ํน๋ณํ ์๊ณ ๋ฆฌ์ฆ๋ ์์ต๋๋ค.
์ด๋ฏธ์ง์์ ๊ฐ์ฅ ๋จผ์ ํ ์ผ์ "์์์ง๋ค" (์๋ธ ์ํ๋ง). ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค. 2x2 ํฝ์
๋ฐฐ์ด์ ๊ฐ์ ธ์จ ๋ค์ Cb ๋ฐ Cr์ ๊ฐ์ ธ์ต๋๋ค. ์ด 4๊ฐ ํฝ์
์ ๊ฐ YCbCr ๊ตฌ์ฑ ์์์ ํ๊ท ๊ฐ์
๋๋ค. ๊ทธ๋์, ์ฐ๋ฆฌ๋ 6๋ฐ์ดํธ๋ฅผ ์ป์์ต๋๋ค, 4 Y, 4 Cb, 4 Cr ๋์ 4 Y์ ๋์ผํ Cb ๋ฐ Cr์ ์ป์์ต๋๋ค (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6). 2x2 ์ค์ผ์ผ์์๋ 2:1 ์์ถ ๋น์จ์ ์์ค ์์ถ์ ๊ฒฌ๊ณ ํ ์ฌ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ ์ ์ฒด ์ด๋ฏธ์ง์ ์ ์ฉ๋ฉ๋๋ค. ๊ทธ๋์ ๊ทธ๋ค์ ํฌ๊ธฐ๊ฐ ์ ๋ฐ์ผ๋ก ์ค์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์์ ์ธ์ ๋๋ถ์ ์ด ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ ํฝ์
๋ธ๋ก์ ๋ํ ํ๊ท ์ ๊ณ์ฐํ๋ฉด ์ฌ๋์ ๋ฐ๊ธฐ์ ์ฐจ์ด๋ฅผ ์ฝ๊ฒ ์ ์ ์์ง๋ง ์์์ ์ฐจ์ด๋ ์ ์ ์์ต๋๋ค. ์ธ์ ํ๋ ๊ฐ๋ก ๋ฐ ์ธ๋ก๋ก 4ํฝ์
์ฉ ํ ์ค๋ก ์ํํ ์๋ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ต์
์ด ๋ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฏธ์ง ํ์ง์ด ์ค์ํ ๊ฒฝ์ฐ์๋ ๋ฐ์๋ฉ์ด์
์ด ์ ํ ์ํ๋์ง ์์ต๋๋ค.
์์์ง์ ๋ํ ์๊ฐ์ ์ค๋ช
(Habr์์๋ GIF ์ฝ์
์ ํ์ฉํ์ง ์์์ต๋๋ค.) -
์ค๋น์ ์ฃผ์ ๋ถ๋ถ
์์ต
์ด์ ๊ฐ์ฅ ์ด๋ ต๊ณ ๊ฐ์ฅ ํ์ํ ๋ถ๋ถ์ด ๋ค๊ฐ์ต๋๋ค. ์ ์ฒด ์ด๋ฏธ์ง๋ 8x8 ๋ธ๋ก์ผ๋ก ๋๋ฉ๋๋ค(ํด์๋๊ฐ ๋ธ๋ก ์ธก๋ฉด์ ๋ฐฐ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ฑ์ฐ๊ธฐ๊ฐ ์ฌ์ฉ๋จ).
์ด์ ๊ฐ ๋ธ๋ก์ ์ ์ฉํด๋ณด์ธ์ DCT(์ด์ฐ ์ฝ์ฌ์ธ ๋ณํ). ์ด ๋ถ๋ถ์์๋ ๋ถํ์ํ ๋ชจ๋ ๊ฒ์ ๊ทธ๋ฆผ์์ ์ ๊ฑฐํฉ๋๋ค. DCT๋ฅผ ์ฌ์ฉํ๋ฉด ์ฃผ์ด์ง ๋ธ๋ก(8ร8)์ด ์ด๋ฏธ์ง์ ๋จ์กฐ๋ก์ด ๋ถ๋ถ(์: ํ๋, ๋ฒฝ)์ ์ค๋ช ํ๋์ง ์ดํดํด์ผ ํฉ๋๋ค. ๋๋ ๋ณต์กํ ๊ตฌ์กฐ(๋จธ๋ฆฌ์นด๋ฝ, ๊ธฐํธ ๋ฑ)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋น์ทํ ์์์ 64ํฝ์ ์ 1๊ฐ๋ก ์ค๋ช ํ ์ ์๋ค๋ ๊ฒ์ ๋ ผ๋ฆฌ์ ์ ๋๋ค. ๋ธ๋ก ํฌ๊ธฐ๋ ์ด๋ฏธ ์๋ ค์ ธ ์์ต๋๋ค. ์์ถ์ 64 ๋ 1์ ๋๋ค.
DCT๋ ๋ธ๋ก์ ์คํํธ๋ผ์ผ๋ก ๋ณํํ๊ณ ํ๋ ๊ฐ์ด ๊ธ๊ฒฉํ๊ฒ ๋ณํ๋ ๊ฒฝ์ฐ ๊ณ์๊ฐ ์์๊ฐ ๋๊ณ , ๋ณ์ด๊ฐ ๊ธ๊ฒฉํ ์๋ก ์ถ๋ ฅ์ด ๋์์ง๋๋ค. ๊ณ์๊ฐ ๋์์๋ก ๊ทธ๋ฆผ์ ์์๊ณผ ๋ฐ๊ธฐ์ ๋ช ํํ ์ ํ์ ๋ณด์ฌ ์ฃผ๋ฉฐ, ๊ณ์๊ฐ ๋ฎ์ ๊ฒฝ์ฐ ๋ธ๋ก์ YCbCr ๊ตฌ์ฑ ์์ ๊ฐ์ ์ฝํ(๋ถ๋๋ฌ์ด) ๋ณํ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์์ํ
์ฌ๊ธฐ์๋ ์์ถ ์ค์ ์ด ์ด๋ฏธ ์ ์ฉ๋์ด ์์ต๋๋ค. ๊ฐ 8x8 ํ๋ ฌ์ ๊ฐ ๊ณ์๋ ํน์ ์ซ์๋ก ๋๋ฉ๋๋ค. ๋ชจ๋ ์์ ํ์๋ ์ด๋ฏธ์ง ํ์ง์ ์ ํ์ํค์ง ์์ผ๋ ค๋ฉด ์ ์๋ 1์ด์ด์ผ ํฉ๋๋ค. ์ด ์ฌ์ง์ด ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ ์ค์ํ๋ค๋ฉด ์ ์๋ XNUMX๋ณด๋ค ํฌ๊ณ ๋ชซ์ ๋ฐ์ฌ๋ฆผ๋ฉ๋๋ค. ๋ฐ์ฌ๋ฆผ ํ์๋ ์ข ์ข XNUMX์ด ๋ง์ด ๋์ค๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๋ ํฐ ์์ถ ๊ฐ๋ฅ์ฑ์ ๋ง๋ค๊ธฐ ์ํด ์์ํ๊ฐ ์ํ๋ฉ๋๋ค. ๊ทธ๋ํ y = sin(x)๋ฅผ ์์ํํ๋ ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ถ
๋จผ์ ์ง๊ทธ์ฌ๊ทธ ํจํด์ผ๋ก ํ๋ ฌ์ ์ดํด๋ด ๋๋ค.
์ฐ๋ฆฌ๋ ์ซ์๊ฐ ํฌํจ๋ 1์ฐจ์ ๋ฐฐ์ด์ ์ป์ต๋๋ค. ๊ทธ ์์ 1์ด ๋ง์ด ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ๋ง์ 3์ ์ํ์ค ๋์ XNUMX XNUMX์ ์ ๋ ฅํ๊ณ ๊ทธ ๋ค์ ์ํ์ค์ ์ซ์๋ฅผ ๋ํ๋ด๋ ์ซ์๋ฅผ ์ ๋ ฅํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ ์ฒด ๋ฐฐ์ด ํฌ๊ธฐ์ XNUMX/XNUMX๋ก ์ฌ์ค์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ํํ๋ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ด ๋ฐฐ์ด์ ์์ถํ๊ณ ํ์ผ ์์ฒด์ ์๋๋ค.
์ฌ์ฉ ๋ ๊ณณ
์ด๋์๋. PNG์ ๋ง์ฐฌ๊ฐ์ง๋ก JPEG๋ ์นด๋ฉ๋ผ, OS(ํ์ฌ ๋ก๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์์ด์ฝ, ์ธ๋ค์ผ ๋ฑ) ๋ฐ ์ด๋ฏธ์ง๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํด์ผ ํ๋ ๋ชจ๋ ๊ฐ๋ฅํ ์์ญ์์ ์ฌ์ฉ๋ฉ๋๋ค.
์ถ๋ ฅ
ํ์ฌ JPEG์ ๋ํ ์ง์์ ๊ต์ก ๋ชฉ์ ์ผ๋ก๋ง ๊ฐ์น๊ฐ ์์ต๋๋ค. ์๋ํ๋ฉด ์ด๋ฏธ ๋ชจ๋ ๊ณณ์ ๋ด์ฅ๋์ด ์๊ณ ๋ง์ ์ฌ๋๋ค์ด ์ต์ ํํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ณผํ์ ํ๊ฐ์์ ์ฌ์ ํ โโ๋ง์์ต๋๋ค.
์์ค
์ถ์ฒ : habr.com