[Computer Vision] Objectives - JPEG Algorithm
๐ง๐ป๐ป์ฉ์ด ์ ๋ฆฌ
Computer vision
Edge
Segmentation
huffman coding
run-length encoding
์ด๋ฒ์๋ compression ์ค์์๋ lossy compression, ์ฆ ์์ค ์์ถ์ ๋ํด ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
JPEG Algorithm
์ด ๋ฐฉ๋ฒ์ data loss๋ฅผ ์ด๋์ ๋ ์์ฉํ๊ฒ ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ์์ถ๋ฅ ์ ์ทจํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์๋์ ๊ฐ์ ํน์ฑ์ ์ง๋๋๋ค.
- Some acceptable data loss
- Greater compression ratio
์ ์ฅ ๊ณต๊ฐ์ด ์ถฉ๋ถํ์ง ์์ ํ๊ฒฝ์์๋ ๋์ ์์ถ๋ฅ ์ด ๋งค์ฐ ์ค์ํด์ง๋๋ค.
์ด๊ฒ์ transform coding์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
๊ทธ ๋ง์ ์์ ๊ฐ์ด ์ฃผํ์ ๋๋ฉ์ธ์ ๋ฐ๊พธ๊ฒ ๋ค๋ ์๋ฏธ์ด์ฃ .
ํด๋น frequency domain์์ ์์ถ์ ์ํํ๊ณ , ํด๋น frequency์์ spatial domain์ผ๋ก ๋์์ค๋ ๋ณต์๋ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค.
์๋๋ JPEG Algorithm์ ํ๋ฆ๋์ ๋๋ค.
๊ทธ๋์, ์์ image๊ฐ ๋ค์ด์์ ๋, 0 ๋๋ 1๋ก ์์นํ ๋ Compressed image๋ฅผ ๋งํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ๋๋ถ๋ถ์ case, width์ height๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ M x N์ด๋ผ๊ณ ๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฒซ ๋จ๊ณ๋ฅผ ๋ณด๋ฉด, m x n์ subimage๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๊ฒ ์ต๋๋ค.
์์ ๊ฐ์ Image๊ฐ input์ผ๋ก ๋ค์ด์๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค.
์์ ๊ฐ์ block ํ๋๋ฅผ subimage๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ, ์ด block ํฌ๊ธฐ๋ฅผ ๋ช์ผ๋ก ํ๋์ ๋ฐ๋ผ ๋ฐ์ํ ์ ์๋ ๊ฐ์๊ฐ ๋ฌ๋ผ์ง๋๋ค.
๊ทธ๋ฆฌ๊ณ block์ ํฌ๊ธฐ๊ฐ ์ปค์ง ์๋ก subimage์ ์ซ์๋ ์ค์ด๋ญ๋๋ค.
์ด block์ ํฌ๊ธฐ๋ 4 x 4, 8 x 8, 16 x 16, ... ๊ฐ๋ฅํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ JPEG๋ ๊ธฐ๋ณธ์ ์ผ๋ก 8 x 8์ ์ฌ์ฉํฉ๋๋ค.
๊ฒฐ๊ตญ, ์ฒซ ๋จ๊ณ์์๋ ๋์ผํ ํฌ๊ธฐ์ ์ ์ฌ๊ฐํ์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋ง๋ญ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ก ๊ฒน์น์ง ์๊ฒ ์ชผ๊ฐ์ ๋ง๋๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด์ , ์ด ํ๋์ block์ ๋ํด์ ์ดํ ๊ณผ์ ์ ์ํํ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด compressed image์ธ ์ฝ๋ํ๋ ์ซ์๊ฐ ๋์ต๋๋ค.
๊ทธ๋ ๊ฒ block ๋จ์๋ก ๊ณ์ํด์ ์งํํฉ๋๋ค.
์ด์ block์ ์ด๋ป๊ฒ ์ฝ๋ํํ ์ง์ ๋ํด ์ด์ผ๊ธฐํด๋ณด๊ฒ ์ต๋๋ค.
์๋์ ๊ฐ์ 4 x 4์ block์ด ์๋ค๊ณ ํฉ์๋ค.
์ข์ธก์ image์์ ์ชผ๊ฐ์ ์จ ๊ฒ์ผ๋ก x์ y์ domain์ ๊ฐ์ง๋ฏ๋ก ์ด๊ฒ์ Spatial domain์ ๋๋ค.
์ฌ๊ธฐ์ Forward Transform์ ํฉ๋๋ค.
์ฆ, Spatial domain์ frequency domain์ผ๋ก ๋ฐ๊พธ๋ ์์ ์ด์ฃ .
์ฌ๊ธฐ์ ์ซ์๊ฐ ์์ฒด๊ฐ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ f(x,y)๊ฐ F(u,v)๋ก ๋ฐ๋๊ฒ ๋ฉ๋๋ค.
์ฌ๊ธฐ์ frequency domain์ผ๋ก ๋ฐ๊พธ๋ ์์ ์์ ์ฌ์ฉ๋๋ ๊ฒ์ด Fourier transform, FT์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์๋ Cosine Transform์ ์ฌ์ฉํฉ๋๋ค.
Discrete Cosine Transform
์์์ discreteํ case์ด๊ธฐ ๋๋ฌธ์ Discrete Cosine Transform์ ์ฌ์ฉํฉ๋๋ค.
์ด์งธํผ
Spatial domain์์ Frequncy domain์ผ๋ก ๋ฐ๊พธ๊ธฐ ์ํด์ ์ ํธ์ฒ๋ฆฌ ๊ธฐ์ ์ ์ฌ์ฉํด์ผํ๋๋ฐ,
์ด JPEG์์๋ ์ด๋ค ์์์ ์ฌ์ฉํ๋ ํ๋, DCT๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
์ ์์๊ณผ ๊ฐ์ด f(x,y) ๊ฐ๊ณผ cos ๊ณ์ฐ ๊ฐ์ ํตํด์ F(u,v)์ ๊ฐ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
์ผ๋จ,
์ด ์์์์ F(0, 0)์ ํ ๋ฒ ๊ณ์ฐํด๋ณด๊ฒ ์ต๋๋ค.
์ ์๊ทธ๋ง์ ๋ํ ์์์ f(x,y)์ ๋ํด์ pixel ๊ฐ์ ์ถ๋ ฅํด๋ด๋ ํจ์์ ๋๋ค.
์์ ๊ฐ์ด ๋์จ ์์ ๋ ์ ๊ฐํด๋ด ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์์ ๊ฐ์ด w = 0์ผ ๋์ ๊ฐ์ ๋ฐ๋ฅด๋ฉฐ ์ด ๊ฒฝ์ฐ n = 4์ด๋ฏ๋ก, ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ ๊ทธ๋ฆผ์์ n = 4์ด๋ฏ๋ก, ์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ์์ ๋ฐ๋ฅด๊ฒ ๋์ฃ .
๊ทธ๋์ ์ด ๊ฒ์ block์ ์ดํฉ์ ๋๊ฒ ๋๊ณ ,
์ด๊ฒ์ 1/4๋ฅผ ๊ณฑํด์ฃผ๋ ๊ฒ์ ํ๊ท ์ ๊ฐ๊น์ด ์ฐ์ฐ์ ์๋ฏธํฉ๋๋ค. (๊ฐ๊น๋ค๋ ๊ฒ์ 1/16์ผ๋ก ๋๋ ์ผ ํ๊ท ์ด ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ ๋ง์ ๋๋ค.)
๊ทธ๋์ ์ด block์ด ๋ฐ๋ค๊ณ ํ๋ค๋ฉด, ์ดํฉ์ด ํฌ๋ค๋ ์๋ฏธ๊ฐ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด block์ด ์ด๋ก๋ค๊ณ ํ๋ฉด, ์ดํฉ๋ ์๋ค๋ ์๋ฏธ๊ฐ ๋๊ฒ ์ฃ .
๊ฒฐ๊ตญ ์ด F(0, 0)์ด ์๋ฏธํ๋ ๊ฒ์ ์ด ์์ถํ๊ณ ์ ํ๋ ๊ฒ์ ๋ฐ๊ธฐ, ๋ช ๋๋ฅผ ์๋ฏธํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ ์ด DCT๋ผ๋ ์์ ๊ฐ์ ธ์จ ๊ฒ์ด Spatial domain์์ Frequency domain์ผ๋ก ๋ฐ๊พธ๊ธฐ ์ํจ์ธ๋ฐ,
์ด F(u,v)๋ฅผ ๊ตฌํ๋ ค๋ฉด, ์ง๊ธ 4 x 4๋ฅผ ๋ค ๊ณ์ฐํด์ผํ๋๋ฐ, F(0,0)๋ง ๊ตฌํ์ต๋๋ค.
๊ทธ๋์ ์ด F(0,0)์ ๊ฐ์ ๋ช ๋, ๋ฐ๊ธฐ๋ฅผ ๋ํ๋ด๊ณ , ์ด ๊ฐ์ ์ง๋ฅ ์ฑ๋ถ ํน์ DC์ฑ๋ถ์ด๋ผ๊ณ ํฉ๋๋ค.
๊ทธ๋์ ์ด ๋ฐ๊ธฐ ์ฑ๋ถ์ธ DC์ ๋ํด์ ๋๋จธ์ง 15๊ฐ ์ฑ๋ถ์ธ AC์ ๋ํด์ ์ผ๋ง๋ ๋ณํํ๋์ง๋ฅผ ๋ํ๋ด๋ ๊ฒ์ ๋ด ๋๋ค.
๋ค์ ์์ผ๋ก ๋์์์ F(1,0)์ ๊ตฌํด๋ด ์๋ค.
์์ ๊ฐ์ ๋ก์ง์ผ๋ก ํ์ดํ๋ฉด ์์ ๊ฐ์ด ๊ตฌํ ์ ์์ต๋๋ค.
๊ฒฐ๊ตญ ์ ์์์ submask์ filter mask ์ฌ์ด์ filtering์ ์๋ฏธํฉ๋๋ค.
filter mask๋ ์์ง ๊ตฌํ์ง ๋ชปํ ์์ ๋๋ค.
์๋ ์์, ์ฆ ์ cos ์์ ์ํด์ filter mask์ ๊ฐ์ด ์ฑ์์ง๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ cos ํจ์๋ฅผ ํ ๋ฒ ๋ด ์๋ค.
๊ทธ๋์ ์์ ๊ฐ์ด ์์์ ์์ ๊ด๊ณ๊ฐ ์์ต๋๋ค.
๊ทธ๋์ filter mask๊ฐ ๋ฌด์์ผ๋ก ์ฑ์์ ธ์๋์ง ์์ ๊ฐ์ ํตํด ์ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ์์ ์น ํ๋ฉด ์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ผ์ชฝ์ ์์์ ๊ฐ, ์ฐ์ธก์ ์์์ ๊ฐ์ ๊ฐ์ง๋๋ค.
์ filter mask๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด sobel filter์ ์์์ด ๋น์ทํฉ๋๋ค.
์ด sobel filter๊ฐ ์์ง์ ์์ ๋์ ๋ฐ์๊ฐ์ ๋์ค๊ฒ ํ๋ฉฐ, ์ข์ธก์ด ์์, ์ฐ์ธก์ด ์์์ด์ง๋ง ์ข์ธก์ด ์์, ์ฐ์ธก์ด ์์์ ๋๋ค.
๊ทธ๋์ ์ด filter mask๋ ์์ง์ ์ ํด๋นํ๋ ์์ญ์์ ๋์ ๋ฐ์๊ฐ์ด ๋์จ๋ค๋ ๊ฒ์ ๋๋ค.
F(0,0)์ ๋ํ ๊ฐ์ filter๊ฐ ๋ชจ๋ 1/4๊ฐ ๊ณฑํด์ ธ ์๋ ํํ์ ๋๋ค.
์ด๊ฒ์ ์ด block์ ๋ฐ๊ธฐ ์ฑ๋ถ์ ๋ด๊ณ ์๋ ๊ฒ๊ณผ ๋์ผํ ํํ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ, ์ด ๊ฐ๋ง์ผ๋ก๋ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์๋์ ๊ฐ์ผ๋ก ๋ณต์ํ๊ธฐ์๋ ํ๊ณ๊ฐ ์์ต๋๋ค.
์ฆ, ์ฃผ๋ณ pixel ๊ฐ ์ฌ์ด์ ์ฐจ์ด๋ ์ ์ฅ์ ํด์ค์ผํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋์ ๊ฐ์ด ๋๋จธ์ง ์์น์ ๋ํ filter mask๊ฐ ๋์์์ต๋๋ค.
๊ทธ๋์ F(0,1)๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ํ์ ์์ ๋์ ๋ฐ์๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๊ฒ ๋ค๋ฅธ ๊ฒ๋ค๋ ์ฃผ๋ณ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ณ์ฐํ ์ ์๋ ํํ๋ก ๊ณ์ฐ๋๋ค๋ ๊ฒ์ ๋๋ค.
DCT๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ์ ๋ฐ์ ์ธ ๋ฐ๊ธฐ๋ฅผ ํ๋ ์ ์ฅํ ๋ค, ๋๋จธ์ง๋ ์ฐจ์ด๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ ๋ค์ํ mask๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ด์ฃ .
๊ทธ๋์ ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ๋ฑ๋ฑ์ ์ฐจ์ด๋ฅผ ๋ณผ ์๊ฐ ์์ต๋๋ค.
์์ ๊ฐ์ด ํน์ง์ ๊ฐ์ง๋ block๋ค์ ์ถ์ถํ์ฌ DCT๋ก 16๊ฐ์ง ์ข ๋ฅ์ filter mask๋ฅผ ์ทจํ์ ๋, ์ด๋ค ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ๋์ง ๋ด ์๋ค.
2๋ฒ์งธ ์ค์ ๋ณด๋ฉด, ๊ฐ์ฅ ๋๊ฒ ์์์๋ ๋ถ๋ถ์ด F(0,0)์ ๋ถ๋ถ์ ๋๋ค.
์ด๊ฒ์ด ์ ๋ฐ์ ์ธ ๋ฐ๊ธฐ ๊ฐ์ ๋ํ๋ด๊ณ ๋๋จธ์ง๋ ๋ณํ๋์ ๋ํ๋ด๋ ๊ฒ์ ๋๋ค.
์ ๋ฐ์ ์ผ๋ก ๋ณํ๊ฐ ์๋ค๋ฉด ์ ๋ฐ์ ์ผ๋ก ๋ฎ์ ๊ฐ์ ๊ฐ์ง๋๋ค.
simple edge๋ ์ฝ๊ฐ์ ์์ง์ ์ ๊ฐ์ง๋ ๋ถ๋ถ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋๊ฒ ๋์ค๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ highly detailed ๋ถ๋ถ์ ๋ณด๋ฉด, ํด๋น ๊ฐ์ ์๋ก ์ฐจ์ด๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ๋ค๋ค ๋์ ๊ฐ์ด ๋์ต๋๋ค.
๊ทธ๋ฐ๋ฐ smooth block์ ๊ฒฝ์ฐ์๋,
์์์๋ ๋ฐฐ๊ฒฝ๊ณผ ๊ฐ์ ๋ถ๋ถ์๋ ์ด๋ ๊ฒ 8 x 8๋ก ์งค๋์ ๋,
๊ฐ์ ๋ถ๋ถ์ด ๋ง์ด ๋์ฌ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ , F(0,0)๊ณผ ๊ทธ ์ฃผ๋ณ ๊ฐ๋ก ์ธ๋ก ๋ถ๋ถ์ ์ ์ธํ๊ณ ๋๋จธ์ง ๋ถ๋ถ์ ๋ค ๋ ๋ ค๋, flatํ ์์ญ์ ํฐ ์ฐจ์ด ์์ด ๋ณต์์ด ๊ฐ๋ฅํฉ๋๋ค.
๊ฒฐ๊ตญ ์ด๊ฒ์ ๋ฌด๋ฆฌ๊ฐ ์์ต๋๋ค. ๊ทธ๋์ ์ค์ํ ๊ฐ์ DC๋ผ๋ ๊ณณ์ ์ ์ฅ๋์ด ์๊ณ ,
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ DC ์ฃผ๋ณ ๊ฐ๋ค๋ง ์ ์ฅํด๋ ๋ฌด๋ฆฌ๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๊ฒ ์ ์ฅ ํจ์จ์ ๊ทน๋ํ ์ํค๊ณ ๊ทธ๊ฒ์ ๋ณต์ํ์ ๋ ์๋นํ ์ข์ ํจ์จ์ ๋ผ ์ ์๋ค๋ ๊ฒ์ด์ฃ .
์ข์ธก์ ์กฐ๊ธ ๋ ๊ฐ์ํ๋ ํํ์ ๋๋ค.
์ ์ฌ์ง๊ณผ ๊ฐ์ด,
cosine์์ ๊ฐ์ฅ ์ข์ ํจ์จ์ ๋ด๋ฉฐ,
8 x 8 ์ผ ๋, ์๋๋ ๋น ๋ฅด๊ณ ๋ณต์๋ ๋ง์ด ๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์์ ๊ฐ์ด 8์ ๋์ ํ๋ฉด ์์ ๊ฐ์ด ๋๊ณ ,
f(x,y)์ ๋ํ convolution ์ฐ์ฐ๊ณผ filter mask ๋ฑ์ ์ฐ์ฐ๋ค์ ์๊ฐํ๋ฉฐ ๋ด ์๋ค.
'Artificial Intelligence > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Computer Vision] Image Restoration - Salt and Pepper noise (0) | 2023.05.18 |
---|---|
[Computer Vision] Objectives - JPEG Algorithm (2) (0) | 2023.05.16 |
[Computer Vision] Objectives - Huffman Coding, Run-length Encoding (0) | 2023.05.10 |
[Computer Vision] Segmentation (1) | 2023.05.07 |
[Computer Vision] Binary Image (2) | 2023.04.27 |