๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Theory/Computer Vision

[CV] JPEG, MPEG : ๊ธฐ์ดˆ์ ์ธ ์˜์ƒ ์••์ถ• ๊ธฐ๋ฒ•

by ๋ญ…์ฆค 2022. 5. 14.
๋ฐ˜์‘ํ˜•

์˜์ƒ ์••์ถ• ๊ด€๋ จ ๋‚ด์šฉ์„ ๋‹ค์‹œ ๊ณต๋ถ€ํ•  ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒจ ๊นŒ๋จน๊ธฐ ์ „์— ์ •๋ฆฌํ•˜๋ ค ํ•œ๋‹ค.

 

๋ฏธ๋””์–ด ๋ฐ์ดํ„ฐ๋Š” ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋งŽ์•„์ง€๊ณ  ์ด๋ฅผ ์ €์žฅํ•  ๊ณต๊ฐ„์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜์ƒ ์••์ถ•์€ ์ค‘์š”ํ•œ ๊ธฐ์ˆ ์ด๋‹ค. ์ตœ๊ทผ ์—ฐ๊ตฌ์—์„œ๋Š” ๋”ฅ๋Ÿฌ๋‹์„ ์ด์šฉํ•œ ์••์ถ• ๋ฐฉ๋ฒ•๋“ค์ด ๋งŽ์ด ์†Œ๊ฐœ๋˜์—ˆ๋Š”๋ฐ ์˜์ƒ ์••์ถ• ๊ณผ์ • ์ „์ฒด๋ฅผ ๋”ฅ๋Ÿฌ๋‹ ๊ตฌ์กฐ(CNN ๊ตฌ์กฐ)๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์•„๋ž˜์—์„œ ์†Œ๊ฐœํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์••์ถ• ๊ณผ์ •์—์„œ ์ผ๋ถ€ ๊ณผ์ •์„ ๋”ฅ ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์••์ถ• ํšจ์œจ๊ณผ ํ€„๋ฆฌํ‹ฐ๋ฅผ ๋†’์ด๋Š” ๋ฐฉ์‹์ด๋‹ค. ์•„์ง ์ œ๋Œ€๋กœ ๋ณด์ง„ ์•Š์•˜์ง€๋งŒ ๋”ฅ๋Ÿฌ๋‹ ๋ฐฉ์‹์˜ ์••์ถ•์€ ์•„๋ฌด๋ž˜๋„ ํ•™์Šต ๋ฐ์ดํ„ฐ์— dependency๊ฐ€ ๋†’์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด์˜ ์ „ํ†ต์ ์ธ ๋ฐฉ๋ฒ•๋ณด๋‹ค ์„ฑ๋Šฅ์ด ์ข‹๋”๋ผ๋„ ์ž„์˜์˜ ์˜์ƒ(์†Œ๋น„์ž๊ฐ€ ์—…๋กœ๋“œ ํ•˜๋Š”)์„ ์••์ถ•ํ•˜๊ธฐ์—๋Š” ์–ด๋ ค์šด ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ ์˜์ƒ ์••์ถ•์€ Spatial redundancy์™€ Temporal redundancy๋ฅผ ์ด์šฉํ•˜๊ณ  ๋Œ€ํ‘œ์ ์ธ ์••์ถ•๋ฐฉ๋ฒ•์ธ JPEG, MPEG์„ ์•„์ฃผ ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœํ•œ๋‹ค.

 

JPEG ์••์ถ• (์ด๋ฏธ์ง€)

 

JPEG ์••์ถ•์€ ์ด๋ฏธ์ง€๋ฅผ frequency domain ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‚ฌ๋žŒ์ด ์ž˜ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” High-frequency ์„ฑ๋ถ„์„ ์ผ๋ถ€ ์ œ๊ฑฐํ•˜์—ฌ ์••์ถ•ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

1. ์ƒ‰๊ณต๊ฐ„๋ณ€๊ฒฝ(RGB to YCbCr)

  • Y ๋Š” ๋ฐ๊ธฐ, Cb, Cr ์€ ์ƒ‰์ฐจ ์„ฑ๋ถ„. 
  • RGB ์ƒ‰๊ณต๊ฐ„์„ YCbCr ์ƒ‰๊ณต๊ฐ„์œผ๋กœ ๋ฐ”๊พธ๋Š” ์ด์œ ๋Š” ์‚ฌ๋žŒ์˜ ๋ˆˆ์€ ์ƒ‰์ƒ ์ •๋ณด๋ณด๋‹ค ๋ฐ๊ธฐ ์ •๋ณด์— ๋” ๋ฏผ๊ฐํ•˜๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ด์šฉํ•˜์—ฌ Y ์„ฑ๋ถ„์€ ์œ ์ง€ํ•˜๊ณ , Cb, Cr ์„ฑ๋ถ„์€ Chroma Subsampling ํ•˜์—ฌ 1์ฐจ์ ์ธ ์••์ถ•์„ ํ•˜๊ธฐ ์œ„ํ•จ

 

2. Chroma Subsampling (Downsampling)

  • Cb, Cr ์„ฑ๋ถ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ธ์ ‘ํ•œ ํ”ฝ์…€๋“ค๋ผ๋ฆฌ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์–ด๋Š ํ”ฝ์…€๊ฐ’์„ ๋ฒ„๋ฆด์ง€ ์„ ์ •, ๋‚จ์€ ํ”ฝ์…€์ด ํ•ด๋‹น ๊ทธ๋ฃน์„ ๋Œ€ํ‘œํ•œ๋‹ค.
  • ์ƒ˜ํ”Œ๋ง ์ดํ›„ ๊ฐ ์ฑ„๋„์„ 8x8 ํฌ๊ธฐ์˜ block์œผ๋กœ ๋ถ„ํ• ํ•ด์„œ ์ดํ›„ ๋‹จ๊ณ„ ์ง„ํ–‰

 

3. DCT(Discrete Cosine Transformation)

Two-dimensional DCT frequencies from the  JPEG DCT

  • ์ด๋ฏธ์ง€์—์„œ ์ธ์ ‘ํ•œ ํ”ฝ์…€๊ฐ„์˜ intensity ์ฐจ์ด๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ low-frequency๋ฅผ ๊ฐ€์ง€๊ณ , ์ฐจ์ด๊ฐ€ ํฐ ๊ฒฝ์šฐ high-frequency๋ฅผ ๊ฐ€์ง„๋‹ค
  • ์‚ฌ๋žŒ์€ ์ €์ฃผํŒŒ ์„ฑ๋ถ„์ด ์†์‹ค๋˜๋ฉด ํฐ ๋ณ€ํ™”๋กœ ์ธ์‹ํ•˜๊ณ  ๊ณ ์ฃผํŒŒ ์„ฑ๋ถ„์€ ์ผ๋ถ€ ์†์‹ค๋˜๋”๋ผ๋„ ํฌ๊ฒŒ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•œ๋‹ค
  • ์ด๋Ÿฌํ•œ ์‚ฌ์‹ค์„ ์ด์šฉํ•˜์—ฌ ์ €์ฃผํŒŒ ์„ฑ๋ถ„์€ ์œ ์ง€ํ•˜๊ณ  ๊ณ ์ฃผํŒŒ ์„ฑ๋ถ„์„ ์ค„์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์••์ถ•์„ ์ง„ํ–‰

 

  • ์ด๋ฅผ ์œ„ํ•ด ์ด๋ฏธ์ง€๋ฅผ spatial domain ์—์„œ frequency domain ์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•˜๊ณ , ์ฃผ๋กœ DCT ๋ฅผ ์‚ฌ์šฉ
  • ๊ฐ 8x8 block์— DCT ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด frequency ํ–‰๋ ฌ (0,0) ์œ„์น˜์— ์ €์ฃผํŒŒ ์„ฑ๋ถ„(DC ๊ณ„์ˆ˜)์ด ๋ฐฐ์น˜๋˜๊ณ , ์šฐ์ธก ํ•˜๋‹จ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ๊ณ ์ฃผํŒŒ ์„ฑ๋ถ„(AC ๊ณ„์ˆ˜)์ด๋‹ค.
  • DC ๊ณ„์ˆ˜๋Š” ํ•ด๋‹น block ์ „์ฒด์˜ ๋ช…๋„๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํ‰๊ท  ์ƒ‰์ƒ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ ์ธ์ ‘ํ•œ ํ”ฝ์…€์€ ๊ฑฐ์˜ ๋น„์Šทํ•œ ์ƒ‰์ƒ์„ ๊ฐ€์ง€๋ฏ€๋กœ DC ์„ฑ๋ถ„์— ๊ฐ’์ด ์ง‘์ค‘๋ฉ๋‹ˆ๋‹ค.



4. Quantization(์–‘์žํ™”)

Quantization

  • Quantization์€ continuousํ•œ ์‹ ํ˜ธ๋ฅผ discrete ํ•˜๊ฒŒ ๋งคํ•‘์‹œํ‚ค๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰
  • JPEG ์••์ถ• ๊ณผ์ •์—์„œ quantization๋Š” ๊ณ ์ฃผํŒŒ ์„ฑ๋ถ„์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฃผํŒŒ์ˆ˜ ํ–‰๋ ฅ์˜ ๊ฐ ๊ณ„์ˆ˜์— ๋Œ€ํ•ด ๋ฏธ๋ฆฌ ์„ ์–ธ๋œ quantization matrix์˜ ์ƒ์ˆ˜๋กœ ๋‚˜๋ˆˆ ํ›„ ๋ฐ˜์˜ฌ๋ฆผ
  • ์•„๋ž˜ quantization matrix ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด ์ขŒ์ธก ์ƒ๋‹จ์—์„œ ์šฐํ•˜๋‹จ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ๊ฐ’์ด ์ปค์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” Low frequency(์ขŒ์ƒ๋‹จ) ์ผ์ˆ˜๋ก ์ž‘์€ ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ’์„ ์œ ์ง€ํ•˜๊ณ , High-frequency ์ผ์ˆ˜๋ก ํฐ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ„์–ด ์„ฑ๋ถ„์„ ์ž‘๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธ

 

Example of Quantization table

์••์ถ•๋ฅ ๊ณผ ์ด๋ฏธ์ง€ ํ’ˆ์งˆ์€ trade-off ๊ด€๊ณ„์ด๊ณ , ์–‘์žํ™” ํ–‰๋ ฌ์„ ์กฐ์ ˆํ•˜๋ฉด ์••์ถ•๋ฅ ์„ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค.



5. Zigzag Scanning

์–‘์žํ™”๋œ ํ–‰๋ ฌ์˜ ์šฐ์ธก ํ•˜๋‹จ์—๋Š” 0์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด, ํ–‰๋ ฌ ์ขŒ์ธก์ƒ๋‹จ์—์„œ ์šฐ์ธกํ•˜๋‹จ๊นŒ์ง€ ์ง€๊ทธ์žฌ๊ทธ๋กœ ํ•œ ๋ฒกํ„ฐ์— ์ €์žฅํ•œ๋‹ค.



6. Entropy Coding

  • ์Šค์บ๋‹์„ ํ†ตํ•ด ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๊ฐ€ ํ•˜๋‚˜์˜ ๋น„ํŠธ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ‘œํ˜„์ด ๋˜์—ˆ๋Š”๋ฐ, ์ด ๋น„ํŠธ์ŠคํŠธ๋ฆผ์˜ ๊ธธ์ด๋ฅผ ์ค„์ผ ์ˆ˜๋ก ๋” ๋งŽ์ด ์••์ถ•๋˜๋Š” ๊ฒƒ์ด๋‹ค
  • ์ด๋•Œ ๋งŽ์ด ๋“ฑ์žฅํ•˜๋Š” ๊ฐ’๊ณผ, ์ ๊ฒŒ ๋“ฑ์žฅํ•˜๋Š” ๊ฐ’์„ ํ‘œํ˜„ํ•˜๋Š” binary ๊ฐ’์— ์ฐจ์ด๋ฅผ ์ฃผ๋ฉด ์Šค์บ๋‹ํ•œ ๋น„ํŠธ์Šค๋ฆผ์„ ๋” ์ค„์ผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์•„๋ฌด๋ฆฌ ์ค„์ด๋”๋ผ๋„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” low bound๊ฐ€ ์กด์žฌ
  • ์ด low bound๋ฅผ entropy ๊ณ„์‚ฐ์„ ํ†ตํ•ด ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ  low bound์— ๊ฐ€๊น๊ฒŒ ์ฝ”๋”ฉํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์กด์žฌ
  • ์ฆ‰ Entropy coding์€ ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ํ™•๋ฅ ์— ๋”ฐ๋ผ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์••์ถ• ํšจ์œจ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•

 

 

MPEG ์••์ถ• (๋น„๋””์˜ค)

 

  • ํ”„๋ ˆ์ž„ ๋‹จ์œ„์˜ ์••์ถ•๊ณผ ๋”๋ถˆ์–ด ํ”„๋ ˆ์ž„๊ฐ„์˜ ์—ฐ๊ด€์„ฑ์„ ์ด์šฉํ•œ ๋น„๋””์˜ค ์••์ถ• ๋ฐฉ๋ฒ•
  • ๋น„๋””์˜ค ์‹œํ€€์Šค๊ฐ€ ๊ฐ€์ง€๋Š” ์‹œ๊ฐ„์ถ• ์ƒ์˜ ์ค‘๋ณต์„ ์—†์• ๊ธฐ ์œ„ํ•œ Motion Compression์„ ์ ์šฉ
  • ์ด๋Š” ์ด์ „ ํ”„๋ ˆ์ž„๊ณผ ํ˜„์žฌ ํ”„๋ ˆ์ž„์˜ ์ฐจ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด์˜ ์›€์ง์ž„์„ ์ถ”์ •ํ•˜๊ณ  ์ด๋ฅผ ๋ณด์ƒํ•˜๋Š” ๋ฐฉ๋ฒ•.
 Motion compression

Motion compression ๊ณผ์ •์—์„œ๋Š” ์—ฐ์†๋˜๋Š” ํ”„๋ ˆ์ž„์˜ ์ฐจ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๊ฐ€์ง€ ํ”„๋ ˆ์ž„ ์œ ํ˜•์„ ์‚ฌ์šฉ

 

 

 

I-Frame

  • Key frame ์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ๋‹จ์ผ ํ”„๋ ˆ์ž„ ๋‹จ์œ„๋กœ ์••์ถ•(JPEG)
  • I-Frame์œผ๋กœ ์ธํ•ด Random access๊ฐ€ ๊ฐ€๋Šฅ. (→ ์•„๋ž˜ GOP ์ฐธ์กฐ)

 

P-Frame

  • ์ด์ „ ํ”„๋ ˆ์ž„์ธ I-Frame ์œผ๋กœ๋ถ€ํ„ฐ ์›€์ง์ž„์„ ์˜ˆ์ธกํ•œ ํ›„ ๋‚˜๋จธ์ง€ ์ฐจ์ด ๋ถ€๋ถ„์„ DCT ๋ณ€ํ™˜ํ•˜์—ฌ ์••์ถ•
  • ์ด์ „ ํ”„๋ ˆ์ž„๊ณผ ํ˜„์žฌ ํ”„๋ ˆ์ž„์„ ๋น„๊ตํ•˜์—ฌ ๋ณ€ํ™”๋œ ๋ถ€๋ถ„๋งŒ ๊ธฐ๋กํ•˜์—ฌ ์••์ถ•
  • ๊ณผ๊ฑฐ ํ”„๋ ˆ์ž„์œผ๋กœ ๋ถ€ํ„ฐ ์˜ˆ์ธกํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ์˜์กด๋„๊ฐ€ ๋†’์Œ

 

B-Frame

  • ์ด์ „ ํ”„๋ ˆ์ž„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ดํ›„ ํ”„๋ ˆ์ž„์„ ์ฐธ๊ณ ํ•˜์—ฌ ์Œ๋ฐฉํ–ฅ ์˜ˆ์ธก
  • ์ด์ „ ํ”„๋ ˆ์ž„๊ณผ ์ดํ›„ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ์˜์กด๋„๊ฐ€ ๋†’์Œ

 

์ฆ‰, ๊ธฐ๋ณธ์ ์ธ ์••์ถ• ์›๋ฆฌ๋Š” ํ”„๋ ˆ์ž„์ด ๋ฐ”๋€” ๋•Œ ๋ณ€ํ™”๊ฐ€ ์žˆ๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ •๋ณด(์›€์ง์ž„)๋งŒ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

GOP (Group of Pictures)

  • ํ‚คํ”„๋ ˆ์ž„์ธ I-Frame์„ ์ฐพ๊ธฐ ํž˜๋“  ๊ฒฝ์šฐ ์—ญ๋ฐฉํ–ฅ ์žฌ์ƒ์‹œ ๊ธฐ์ค€์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์›์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , ๋™์˜์ƒ์˜ ์–ด๋Š ์ง€์ ์ด๋“  Random Access ๋ฐœ์ƒ ์‹œ ๋น ๋ฅด๊ฒŒ ํ•ด๋‹น ์‹œ์ ์˜ ํ”„๋ ˆ์ž„์„ ๋ณต์›ํ•ด์•ผ ํ•จ -> ์ด๋ฅผ ์œ„ํ•ด ์ถ”๊ฐ€๋œ ๊ตฌ์กฐ๊ฐ€ GOP
  • ํ•˜๋‚˜์˜ GOP๋Š” 10~15์žฅ์˜ ํ”„๋ ˆ์ž„์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  GOP ๋‚ด์—๋Š” ๋ฐ˜๋“œ์‹œ I-Frame์ด ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋ฉฐ, GOP ์•ž๋ถ€๋ถ„์— ์‹œํ€€์Šค ํ—ค๋”๋ฅผ ๋ถ™์—ฌ์„œ Random access ์‹œ ์‹œํ€€์Šค ํ—ค๋”์˜ ์œ„์น˜๋ฅผ ํ™•์ธํ•˜๊ณ  GOP  ๋‚ด์˜ I-Frame์„ ์ฐธ์กฐํ•˜์—ฌ ์˜์ƒ์„ ๋ณต์›

 

๋ฐ˜์‘ํ˜•