๐Ÿ“ฝ ๋™์˜์ƒ ์••์ถ•๊ณผ ์œ ์ฒด์ดํƒˆ

์ˆ˜ํ•™์— ๋„ˆ๋ฌด ์‹ฌ์ทจํ•œ ํ•œ์„์› ์„ ์ƒ๋‹˜... ๊ทธ๋งŒ ์ž์‹ ์„ ์ธ์ˆ˜๋ถ„ํ•ด ํ•˜๊ณ  ๋งˆ๋Š”๋ฐ...!

์ด ๊ธ€์—์„œ๋Š” ๋™์˜์ƒ ์••์ถ•์˜ ์›๋ฆฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ์œ„์™€ ๊ฐ™์€ ํ˜„์ƒ์ด ์™œ ์ผ์–ด๋‚˜๋Š”์ง€์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๋ ค ํ•œ๋‹ค.

๋™์˜์ƒ์€ ๋„ˆ๋ฌด ํฌ๋‹ค

๋™์˜์ƒ์€ ์‚ฌ์ง„๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์˜์ƒ์„ ์‹ค์ œ ์‚ฌ์ง„์˜ ์—ฐ์†์œผ๋กœ ์ œ์ž‘ํ•  ๊ฒฝ์šฐ ์šฉ๋Ÿ‰์ด ๋†€๋ž๋„๋ก ๋น„๋Œ€ํ•ด์ง„๋‹ค. ์šฐ๋ฆฌ๊ฐ€ YouTube์—์„œ ์ž์ฃผ ์‹œ์ฒญํ•˜๋Š” 1920 x 1080 60FPS ๋™์˜์ƒ์„ ์ „ํ˜€ ์••์ถ•ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ ํฌ๊ธฐ๊ฐ€ ๋ถ„๋‹น 7GB์— ์œก๋ฐ•ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ YouTube์—์„œ ๋˜‘๊ฐ™์€ ์‚ฌ์–‘์˜ ๋™์˜์ƒ์„ ์‹œ์ฒญํ•  ๊ฒฝ์šฐ ๋ถ„๋‹น ์ตœ๋Œ€ 40MB ๊ฐ€๋Ÿ‰ ์‚ฌ์šฉ๋œ๋‹ค. ๊ฑฐ์˜ 200๋ฐฐ ๊ฐ€๊นŒ์ด ์šฉ๋Ÿ‰์ด ์ค„์–ด๋“  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿผ์—๋„ ์šฐ๋ฆฌ๋Š” ํฐ ์ฐจ์ด๋ฅผ ๋А๋ผ์ง€ ๋ชปํ•œ๋‹ค. ๋Œ€์ฒด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚œ ๊ฒƒ์ผ๊นŒ?

๊ทธ๋ž˜์„œ ์ธ์ฝ”๋”ฉ์„ ํ•œ๋‹ค

๋™์˜์ƒ์˜ ๋น„๋Œ€ํ•œ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„์˜ ๋™์˜์ƒ์€ ์ผ์ • ์ˆ˜์ค€ ์••์ถ•์„ ํ•œ๋‹ค. ์ด๋ฅผ ๋™์˜์ƒ ์ธ์ฝ”๋”ฉ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ธ์ฝ”๋”ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ธ๊ณ„๋Š” ๋†€๋ž๋„๋ก ์ •๊ตํ•˜๊ณ  ์•„๋ฆ„๋‹ต๋‹ค.

๋™์˜์ƒ ์ธ์ฝ”๋”ฉ์€ ์šฉ๋Ÿ‰ ์ ˆ๊ฐ์˜ ํ•ต์‹ฌ์„ ์ค‘๋ณต์„ฑ์—์„œ ์ฐพ๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ๊ฐ€์ˆ˜๊ฐ€ ๊ฐ€๋งŒํžˆ ์„œ์„œ ๋…ธ๋ž˜๋ฅผ ๋ถ€๋ฅด๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ๊ฐ€์ˆ˜์˜ ์ž…๋งŒ ์›€์ง์ด๋ฉฐ ๋ฐฐ๊ฒฝ๊ณผ ๊ฐ€์ˆ˜์˜ ๋ชธ์€ ์ „ํ˜€ ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐฐ๊ฒฝ์˜ ๊ฒ€์ • ํ”ฝ์…€๊ณผ ๊ฐ€์ˆ˜์˜ ๋ชธ๋™์ž‘์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋งค๋ฒˆ ์ œ๊ณตํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ? ์•„๋‹ˆ๋‹ค. ๊ทธ ๋ถ€๋ถ„๋“ค์€ ์ค‘๋ณต๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋™์˜์ƒ์˜ ๋ฐ์ดํ„ฐ๋Š” ์‹œ๊ณต๊ฐ„ ์ƒ์œผ๋กœ ์ค‘๋ณต๋œ๋‹ค. ๊ณต๊ฐ„์ƒ์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ธํŠธ๋ผํ”„๋ ˆ์ž„ ์ฝ”๋”ฉ(Intra-frame coding, ํ”„๋ ˆ์ž„ ๋‚ด ์••์ถ•)์ด๋ผ๊ณ  ํ•˜๋ฉฐ ์‹œ๊ฐ„์ƒ์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ธํ„ฐํ”„๋ ˆ์ž„ ์ฝ”๋”ฉ(Inter-frame coding, ํ”„๋ ˆ์ž„ ๊ฐ„ ์••์ถ•)์ด๋ผ๊ณ  ํ•œ๋‹ค. ์„ธ๋ถ€์ ์ธ ๊ตฌํ˜„๋ฒ•์œผ๋กœ ์ธ์ ‘ํ•œ ํ”ฝ์…€ ๋ฐ์ดํ„ฐ์˜ ์ ˆ๊ฐ์„ ์œ„ํ•ด ํ™œ์šฉ๋˜๋Š” Discrete Cosine Transform, Motion Vector๋ฅผ ํ™œ์šฉํ•œ ์˜ˆ์ธก, ๊ทธ๋ฆฌ๊ณ  In-loop Filtering ๊ธฐ๋ฒ• ๋“ฑ์ด ์กด์žฌํ•œ๋‹ค.

Intra-frame coding

์‚ฌ์ง„ ์ž์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด์ž!

๋™์˜์ƒ์€ ์‚ฌ์ง„์˜ ์ง‘ํ•ฉ์ด๋‹ค. ์‚ฌ์ง„์€ ํ”ฝ์…€์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๊ฐ™์€ ์‚ฌ์ง„ ๋‚ด์— ์ค‘๋ณต๋œ ํ”ฝ์…€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ณต๊ฐ„์ƒ์˜ ์ค‘๋ณต์„ฑ(Spatial redundancy)์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ตฌํ˜„ ์ค‘ ํ•˜๋‚˜๋Š” ํ‰๊ท ์น˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ•œ ํ”ฝ์…€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„์›Œ๋‘๊ณ  ์ฃผ๋ณ€ ํ”ฝ์…€ ์ •๋ณด๋ฅผ ๋‚จ๊ฒจ๋‘๋ฉด ์ปดํ“จํ„ฐ๋Š” ๋™์˜์ƒ์„ ์žฌ์ƒํ•  ๋•Œ ์ธ์ ‘ํ•œ ํ”ฝ์…€๋“ค์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ๊ทธ ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ์„ ํ‘œํ˜„ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ์žฌ๋ฐŒ๋Š” ์ ์€ ์ธ์ ‘ํ•œ ํ”ฝ์…€์ด ์ƒํ•˜์ขŒ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ ์ด๋‹ค. ๋™์˜์ƒ ๋‚ด ํ”ฝ์…€ ๋ฐ์ดํ„ฐ๋Š” ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ, ๊ทธ๋ฆฌ๊ณ  ์œ„์—์„œ ์•„๋ž˜์˜ ์ˆœ์„œ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ๋งŒ์•ฝ ์ƒํ•˜์ขŒ์šฐ์˜ ํ”ฝ์…€์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ ํ‰๊ท ์„ ๊ตฌํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์šฐ์ธก๊ณผ ํ•˜๋‹จ์˜ ํ”ฝ์…€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฝํž ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„์— ๋‹ค์‹œ ๋˜๋Œ์•„์™€ ํ”ฝ์…€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋น ๋ฅด๊ฒŒ ๋™์˜์ƒ์„ ํ‘œํ˜„ํ•  ๋•Œ ํšจ์œจ์ ์ด์ง€ ๋ชปํ•˜๋ฏ€๋กœ Intra-frame coding์—์„œ๋Š” ์™ผ์ชฝ ์œ„, ์œ„, ์˜ค๋ฅธ์ชฝ ์œ„, ๊ทธ๋ฆฌ๊ณ  ์™ผ์ชฝ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ๊ณต๋ฐฑ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋‚˜๋ฉด ์ž„์‹œ ์ €์žฅ๋œ ๊ฐ’๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค.

Inter-frame coding

๊ณผ๊ฑฐ์— ์ด๋ฏธ ๋ณด๋‚ธ ์ •๋ณด๋Š” ๋‹ค์‹œ ๋ณด๋‚ด์ง€ ๋ง๊ณ  ์žฌํ™œ์šฉํ•˜์ž!

ํ•™๊ต ๋ฐฉํ•™์‹์—์„œ ์ƒ์„ ์ฃผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋Š”๊ฐ€? ๋งŒ์•ฝ ๋™์ผํ•œ ์ƒ์„ 30๋ช…์—๊ฒŒ ์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ๊ต์žฅ ์„ ์ƒ๋‹˜๊ป˜์„œ ์ผ์ผ์ด ๋ชจ๋“  ์ƒ์„ ๋‚ญ๋…ํ•˜์‹ ๋‹ค๋ฉด ๋ฐฉํ•™์‹์ด ์–ผ๋งˆ๋‚˜ ๊ธธ์–ด์งˆ๊นŒ? ์–ผ๋งˆ๋‚˜ ์ง€๋ฃจํ•˜๊ณ  ๊ดด๋กœ์šธ๊นŒ? ํ•˜์ง€๋งŒ ๊ต์žฅ ์„ ์ƒ๋‹˜๊ป˜์„œ๋Š” ๊ทธ๋Ÿฌ์‹œ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ์ € ์œ„์™€ ๋‚ด์šฉ์€ ๊ฐ™์Šต๋‹ˆ๋‹ค, ํ•˜๊ณ  ๋„˜์–ด๊ฐ€์‹ ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์•ž ์‚ฌ๋žŒ๊ณผ ๋™์ผํ•˜๋‹ค๋Š” ํ‘œํ˜„๋งŒ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์†Œ์ค‘ํ•œ ๋ฐฉํ•™์‹ ์˜คํ›„๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ๊ต์žฅ ์„ ์ƒ๋‹˜๊ป˜์„œ Inter-frame ์••์ถ•์„ ํ•˜์‹  ๊ฒƒ์ด๋‹ค.

๋™์˜์ƒ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๋งŽ์€ ๋™์˜์ƒ์€ ์•ž๋’ค ํ”„๋ ˆ์ž„์ด ๋น„์Šทํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์˜์ƒ๋„ ํ”„๋ ˆ์ž„ ์ „ํ›„์˜ ๊ด€๊ณ„๋กœ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ฑฐ๋‚˜ ์•„์˜ˆ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹œ๊ฐ„์ƒ์˜ ์ค‘๋ณต์„ฑ(Temporal Redundancy)์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

ํ•œ ๋ถ„๋งŒ ๊ณ ๋ฅด์„ธ์š”.

#1. ๊ธฐ์ค€์ด ๋˜๋Š” I-Frame

I-Frame(Intra-coded picture)์€ ์‚ฌ์ง„์ด๋ผ๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. I-Frame ๋‚ด์˜ ๋ชจ๋“  ์ •๋ณด๋Š” ์ƒˆ๋กœ์šด ์ •๋ณด์ด๋‹ค. I-Frame์€ ์•ž๋’ค ํ”„๋ ˆ์ž„์„ ํ‘œํ˜„ํ•˜๋Š” ๊ธฐ์ค€์ด ๋œ๋‹ค.

#2. ๋ณ€ํ™”๋Ÿ‰๋งŒ ํ‘œํ˜„ํ•˜๋Š” P-Frame

๊ฐ๊ฐ์˜ I-Frame ์‚ฌ์ด์—์„œ๋Š” P-Frame(Predicted Pictures)์„ ์‚ฝ์ž…ํ•œ๋‹ค. P-Frame์—๋Š” ์ด์ „ ํ™”๋ฉด๊ณผ์˜ ๋ณ€ํ™”๋Ÿ‰์ด ํ‘œํ˜„๋˜์–ด ์žˆ๋‹ค. ํ˜„์žฌ ํ”„๋ ˆ์ž„์ด ์•ž ํ”„๋ ˆ์ž„๊ณผ ๊ณตํ†ต์ ์ด ์žˆ์„ ๊ฒฝ์šฐ ์•ž ํ”„๋ ˆ์ž„์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์ข€ ํŽธํ•˜๋‹ค.

Copyright: Blender Foundation 2006. Netherlands Media Art Institute. www.elephantsdream.org

ํ™”์‚ดํ‘œ๋กœ ํ‘œํ˜„๋œ ๊ฒƒ์ด ๋ณ€ํ™”๋Ÿ‰์„ ๋‚˜ํƒ€๋‚ด๋Š” Motion Vector์ด๋‹ค. ์ด ์™ธ์—๋„ P-Frame์—๋Š” ์˜ˆ์ธก ๋ณด์ •์„ ์œ„ํ•œ ๋ณ€ํ™˜๊ฐ’๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. P-Frame์—๋„ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. P-Frame์€ I-Frame์˜ ์ ˆ๋ฐ˜ ์ •๋„์˜ ํฌ๊ธฐ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฌผ๋ก  ์‹ค์ œ ๋™์˜์ƒ ์ธ์ฝ”๋”ฉ์—์„œ๋Š” ๋ชจ๋“  ํ”ฝ์…€ ์ •๋ณด๋ฅผ ๋น„๊ตํ•˜๋Š” ๋Œ€์‹  ์—ฌ๋Ÿฌ ๋ธ”๋ก ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์„œ ๋น„๊ตํ•œ๋‹ค. ์ด๋ฅผ ๋งคํฌ๋กœ๋ธ”๋ก(Macroblock)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ตœ์‹  ์˜์ƒ ์ฝ”๋ฑ์ธ HEVC์—์„œ๋Š” ์ฝ”๋”ฉ ํŠธ๋ฆฌ ์œ ๋‹›(Coding Tree Unit)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

#3. ๋ฐ์ดํ„ฐ๋ฅผ ์•„๋ผ๋Š” B-Frame

I-Frame๊ณผ P-Frame ์‚ฌ์ด์—๋Š” B-Frame(Bidirectionally Predicted Pictures)์„ ์‚ฝ์ž…ํ•œ๋‹ค. B-Frame์€ ์•ž๋’ค์˜ I-Frame ๋˜๋Š” P-Frame์„ ์ด์šฉํ•ด ํ™”๋ฉด์„ ๊ณ„์‚ฐํ•œ๋‹ค. P-Frame์ด๋ž‘ ๋‹ค๋ฅผ ๊ฒƒ์ด ์—†์–ด ๋ณด์ด๋Š”๋ฐ ๊ตณ์ด B-Frame์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์šฉ๋Ÿ‰ ๋•Œ๋ฌธ์ด๋‹ค. B-Frame์€ ์•ž๋’ค ํ”„๋ ˆ์ž„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋งŒํผ ์ •๋ณด๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ B-Frame์€ P-Frame์˜ 25% ์ •๋„์˜ ํฌ๊ธฐ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

B-Frame๋„ P-Frame์ฒ˜๋Ÿผ Motion Vector์™€ ์˜ˆ์ธก ๋ณด์ •์„ ์œ„ํ•œ ๋ณ€ํ™˜๊ฐ’๋“ค์„ ์‚ฌ์šฉํ•œ๋‹ค. B-Frame์€ I-Frame๊ณผ P-Frame์„ ์ฐธ์กฐํ•˜์ง€๋งŒ HEVC ๋ฐ VVC ๋“ฑ์˜ ์ตœ์‹  ์˜์ƒ ์ฝ”๋ฑ์—์„œ๋Š” B-Frame๋„ ๋‹ค๋ฅธ B-Frame์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ํ˜•ํƒœ๋ฅผ ๋„๊ฒŒ ๋œ๋‹ค. Copyright: Cmglee, CC BY-SA 4.0.

์œ ์ฒด์ดํƒˆ์˜ ์›์ธ

๋ฌธ์ œ๋Š” I-Frame์„ ๋‹ด์€ ํ†ต์‹  ํŒจํ‚ท์ด ์†์‹ค๋  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค. ์ฃผ์œ„์˜ P-Frame, B-Frame์„ ๊ณ„์‚ฐํ•  ๊ธฐ์ค€๊ฐ’์ด ์‚ฌ๋ผ์ง„ ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  ์ข‹์€ ๋™์˜์ƒ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœ๊ทธ๋žจ์ผ ๊ฒฝ์šฐ ๋ฏธ๋ฆฌ ์—ฌ๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•ด ํ†ต์‹  ํŒจํ‚ท ์†์‹ค์„ ๋ฏธ๋ฆฌ ๊ฐ์ง€ํ•˜๊ณ  ํŒจํ‚ท์„ ๋‹ค์‹œ ์š”์ฒญํ•˜๊ฒ ์ง€๋งŒ ์„œ๋ฒ„๊ฐ€ ๋ถˆ์•ˆ์ •ํ•˜๊ฑฐ๋‚˜ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœ๊ทธ๋žจ์ด ๋ถ€์‹คํ•œ ๊ฒฝ์šฐ I-Frame์ด ์†์‹ค๋œ ๊ฒƒ์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

์ด๋•Œ I-Frame์ด ์œ ์‹ค๋˜๊ณ  ๊ทธ๋‹ค์Œ์˜ P-Frame, B-Frame๋งŒ ๋„์ฐฉํ•˜๋ฉด ์ž˜๋ชป๋œ I-Frame์— ๋ณ€ํ™”๊ฐ’์„ ์ ์šฉํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•œ์„์› ์„ ์ƒ๋‹˜์€ ์Šค์Šค๋กœ๋ฅผ ์ธ์ˆ˜๋ถ„ํ•ด ํ•ด๋ฒ„๋ฆฌ์‹  ๊ฒƒ์ด๋‹ค.

๋ฐฑ๋ฌธ์ด ๋ถˆ์—ฌ์ผ๊ฒฌ

์•„์ง๋„ ์ž˜ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ง์ ‘ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ด๋ณด์ž. FFmpeg ๋“ฑ์˜ ์ƒ์šฉ ๋น„๋””์˜ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์˜๋„์ ์œผ๋กœ ๋™์˜์ƒ ํŒŒ์ผ์˜ ํ”„๋ ˆ์ž„ ์ •๋ณด๋ฅผ ๋ณ€์งˆ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ํ˜•์‹์˜ ์˜ˆ์ˆ  ๋ถ„์•ผ๋ฅผ Datamoshing์ด๋ผ๊ณ  ํ•œ๋‹ค.

Python๊ณผ FFmpeg ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด ๋ฎค์ง๋น„๋””์˜ค ๋‚ด I-Frame์„ ์†์ƒ์‹œ์ผœ ์ธ์œ„์ ์œผ๋กœ ์œ ์ฒด์ดํƒˆ ํ˜„์ƒ์„ ๋ฐœ์ƒ์‹œ์ผฐ๋‹ค.

  • ์˜์ƒ ๋‚ด์˜ ๋ชจ๋“  I-Frame๋“ค์„ ๋ฐ”๋กœ ์ด์ „์˜ ํ”„๋ ˆ์ž„ (์•„๋งˆ๋„ P-Frame๊ณผ B-Frame) ๊ฐ’์œผ๋กœ ๋ฎ์–ด์”Œ์› ๋‹ค. ๋•Œ๋ฌธ์— I-Frame์œผ๋กœ ์ธํ•œ ์‹ ๊ทœ ์ •๋ณด๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ํ™”๋ฉด์€ ๋ณ€ํ•˜์ง€ ์•Š์ง€๋งŒ ์ธ๋ฌผ๋“ค์˜ ๋™์ž‘์ด ๋‚˜ํƒ€๋‚œ๋‹ค. ์ž˜๋ชป๋œ ๊ธฐ์ค€์ (I-Frame)์— ๋ณ€ํ™”๋Ÿ‰(P-Frame๊ณผ B-Frame)์ด ์ ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ์ค‘๊ฐ„ ์ค‘๊ฐ„ ํ™”๋ฉด์˜ ์ผ๋ถ€๊ฐ€ ์ˆœ๊ฐ„์ ์œผ๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋ณด์ผ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด๋Š” P-Frame๋„ ์‹ ๊ทœ ์ด๋ฏธ์ง€ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ชจ๋“  ๋ถ€๋ถ„์ด ์‹ ๊ทœ ์ •๋ณด์ธ I-Frame๋“ค์€ ์‚ญ์ œ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ผ์‹œ์ ์œผ๋กœ ํ™”๋ฉด์ด ๊น”๋”ํ•˜๊ฒŒ ๋ณด์ด๋”๋ผ๋„ ํ™”๋ฉด ์ „์ฒด๊ฐ€ ๊น”๋”ํ•˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๋‹ค.
  • ์˜์ƒ์ด ๊นจ์งˆ ๋•Œ ์ž‘์€ ๋ชจ๋ž˜์ฒ˜๋Ÿผ ํฉ์–ด์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ˆˆ์— ์ž˜ ๋ณด์ด๋Š” ์ปค๋‹ค๋ž€ ์ •์‚ฌ๊ฐํ˜• ๋‹จ์œ„๋กœ ๊นจ์ง€๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋Š” ์˜์ƒ ๋ฐ์ดํ„ฐ ์••์ถ•์ด ๊ฐ ํ”ฝ์…€๋งˆ๋‹ค ๊ณ„์‚ฐ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ํ”ฝ์…€์„ ๋ฌถ์€ ๋งคํฌ๋กœ๋ธ”๋ก (์ฝ”๋”ฉ ํŠธ๋ฆฌ ์œ ๋‹›) ๋‹จ์œ„๋กœ ๊ณ„์‚ฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋Ÿฐ ํ˜„์ƒ์ด ๋ฐฉ์†ก ๋„์ค‘ ์ผ์–ด๋‚˜๋ฉด ํ”ํžˆ "๊น๋‘๊ธฐ ํ˜„์ƒ"์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

I-Frame์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ์•ˆํ•˜๊ณ  ์˜์ƒ์„ ๋ณด๊ณ  ๋‚˜๋ฉด I-Frame, P-Frame, B-Frame ๊ฐ„์˜ ๊ด€๊ณ„๊ฐ€ ์กฐ๊ธˆ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ด๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. FFmpeg๋ฅผ ์ด์šฉํ•ด์„œ ๋™์˜์ƒ์„ ์†์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์€ ๋‚˜์ค‘์— ๊ธฐํšŒ๊ฐ€ ๋˜๋ฉด ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.


  • ๊ธ€์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด mail@chosunghyun.com์œผ๋กœ ์ œ๋ณด ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • "๋‹ค๋งŒ ์˜ค์ฐจ๊ฐ€ ์ ์  ์ปค์ง€์ง€ ์•Š๋„๋ก B-Frame์€ ๋‹ค๋ฅธ B-Frame์„ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค. I-Frame ๋˜๋Š” P-Frame๋งŒ ์ฐธ์กฐํ•œ๋‹ค"๋Š” ๋ฌธ์žฅ์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. HEVC ๋ฐ VVC ๋“ฑ์˜ ์˜์ƒ ์ฝ”๋ฑ์—์„œ B-Frame์€ ๋‹ค๋ฅธ B-Frame์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋ณด ์ •๋ง ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Credit: (์ต๋ช… ์š”์ฒญ)