์ด ๊ณ์ฐ๊ธฐ๋ก ํ ์ ์๋ ์ผ
GIFยท๋์์ ํ๋ ์ ํ์ผ ์ฉ๋ ๊ณ์ฐ๊ธฐ๋ ํฝ์ ํฌ๊ธฐ, ์ ์ฌ๋, ํ๋ ์ ์, ์์ถ๋ฅ ์ ๋ฐํ์ผ๋ก ์ ๋๋ฉ์ด์ GIF๋ ์งง์ ๋์์ ํด๋ฆฝ์ ์ฉ๋์ด ๋๋ต ์ด๋ ์ ๋์ผ์ง ์์ธกํด ์ค๋๋ค. ๋์์ด๋๋ ์น ๊ฐ๋ฐ์๋ ๋ฌผ๋ก , ์ ๋ก๋ ์ ํ์ด๋ ํ์ด์ง ์ฉ๋ ์์ฐ ์์์ ๋ฏธ๋์ด ํ์ผ์ ๊ด๋ฆฌํ๊ณ ์ถ์ ๋๊ตฌ์๊ฒ๋ ์ ์ฉํฉ๋๋ค. ํ์ผ์ ๋ด๋ณด๋ด๊ธฐ(export) ํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ์ฉ๋์ ๊ฐ๋ ํด ๋ณผ ์ ์์ต๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
๊ฐ๋ก์ ์ธ๋ก ํฌ๊ธฐ๋ฅผ ํฝ์ ๋จ์๋ก ์ ๋ ฅํ๊ณ , ํฝ์ ๋น ๋นํธ ์(bpp)๋ฅผ ์ ํํ์ธ์(์ผ๋ฐ์ ์ธ 256์ GIF๋ 8, ํธ๋ฃจ์ปฌ๋ฌ๋ 24, ์ํ ์ฑ๋ ํฌํจ์ 32). ์ด์ด์ ์ ์ฒด ํ๋ ์ ์๋ฅผ ์ ๋ ฅํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์์ถ๋ฅ ์ 0์์ 1 ์ฌ์ด๋ก ์ค์ ํ์ธ์. ๊ฐ์ด 1์ด๋ฉด ์ ํ ์์ถํ์ง ์์ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ปํ๊ณ , 0.5๋ผ๋ฉด ์ธ์ฝ๋๊ฐ ์๋ณธ ๋๋น ์ฝ 50% ์์ค์ผ๋ก ์ค์ฌ ์ค๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค. ๊ฒฐ๊ณผ๋ก๋ ์์ ์ฉ๋์ด ๋ฉ๊ฐ๋ฐ์ดํธ, ํฌ๋ก๋ฐ์ดํธ, ๋ฐ์ดํธ, ๊ทธ๋ฆฌ๊ณ ํ๋ ์๋น ์ฉ๋์ผ๋ก ํ์๋ฉ๋๋ค.
๊ณ์ฐ ๊ณต์ ํ์ด
ํฝ์ ํ๋์๋ ํฝ์ ๋น ๋นํธ ์๋งํผ์ ๋นํธ๊ฐ ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ ์ฒด ํฝ์ ์(๊ฐ๋ก ร ์ธ๋ก)์ ํ๋ ์ ์๋ฅผ ๊ณฑํ๋ฉด ์ ์ฒด ๋นํธ ์๊ฐ ๋์ค๊ณ , ์ด๋ฅผ 8๋ก ๋๋๋ฉด ๋นํธ๊ฐ ๋ฐ์ดํธ๋ก ํ์ฐ๋ฉ๋๋ค. ์ค์ GIFยท๋์์ ํ์ผ์ ์์ถ์ ๊ฑฐ์น๋ฏ๋ก ์์ถ๋ฅ c๋ฅผ ๊ณฑํด ์ค๋๋ค.
$$\text{์ฉ๋(๋ฐ์ดํธ)} = \frac{\text{๊ฐ๋ก} \times \text{์ธ๋ก} \times \text{bpp} \times \text{ํ๋ ์ ์}}{8} \times c$$
๊ณ์ฐ ์์
320ร240 ํฌ๊ธฐ์ 8๋นํธ ์์, ํ๋ ์ 30๊ฐ, ์์ถ๋ฅ 0.5์ธ ์ ๋๋ฉ์ด์ ์ด๋ผ๋ฉด:
$$320 \times 240 \times 8 \times 30 \div 8 \times 0.5 = 1{,}152{,}000 \text{๋ฐ์ดํธ} \approx 1{,}125\,\text{KB} \approx 1.1\,\text{MB}$$
๊ฐ ๋ฉ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ค์ GIF ์ฉ๋์ด ์ ๋ ์๊ฒ ๋์ค๋์? GIF๋ LZW ์์ถ๊ณผ ํ๋ ์ ๊ฐ ์ฐจ์ด ๊ธฐ๋ฐ(frame differencing) ์์ถ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ๋ฐ์ํ๋ ค๋ฉด ์์ถ๋ฅ ์ ๋ ๋ฎ๊ฒ(์: 0.2~0.4) ์ค์ ํด ๋ณด์ธ์.
GIF์๋ ํฝ์ ๋น ๋นํธ ์๋ฅผ ์ผ๋ง๋ก ํด์ผ ํ๋์? ํ์ค GIF๋ ์ต๋ 256์๊น์ง๋ง ์ง์ํ๋ฏ๋ก 8๋นํธ(8 bpp)๊ฐ ๊ฐ์ฅ ์์ฐ์ค๋ฌ์ด ์ ํ์ ๋๋ค.
์ด ๊ฐ์ด ์ ํํ๊ฐ์? ์๋๋๋ค. ์ด๋๊น์ง๋ ์ถ์ ์น์ ๋๋ค. ์ค์ ์ฉ๋์ ์ฝ๋ฑ, ํ๋ ์ ๊ฐ ์ค๋ณต ์ ๋, ์ด๋ฏธ์ง ๋ด์ฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.