AV1 ๋น„๋””์˜ค ํ˜•์‹์šฉ SVT-AV2.0 1 ์ธ์ฝ”๋” ๋ฐ dav1.4d 1 ๋””์ฝ”๋” ์ถœ์‹œ

AV1 ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ํ˜•์‹์˜ ์ธ์ฝ”๋” ๋ฐ ๋””์ฝ”๋”๋ฅผ ๊ตฌํ˜„ํ•œ SVT-AV2.0 1(Scalable Video Technology AV1) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์˜จ๋”ํ”Œ๋ผ์ด ๋น„๋””์˜ค ํŠธ๋žœ์Šค์ฝ”๋”ฉ ๋ฐ VOD(๋น„๋””์˜ค ์˜จ๋””๋งจ๋“œ) ์„œ๋น„์Šค์— ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์ˆ˜์ค€์˜ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ธํ…”์ด Netflix์™€ ํ˜‘๋ ฅํ•˜์—ฌ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ AV1 ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ํ˜•์‹์˜ ๊ฐœ๋ฐœ์„ ๊ฐ๋…ํ•˜๋Š” Open Media Alliance(AOMedia)์˜ ํ›„์›์œผ๋กœ ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— ์ด ํ”„๋กœ์ ํŠธ๋Š” SVT-HEVC ๋ฐ SVT-VP9 ์ธ์ฝ”๋”๋„ ๊ฐœ๋ฐœํ•˜๋Š” OpenVisualCloud ํ”„๋กœ์ ํŠธ์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” BSD ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

SVT-AV1์€ C99 ํ‘œ์ค€์„ ์ง€์›ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, SIMD ๋ช…๋ น์–ด์— ๊ธฐ๋ฐ˜ํ•œ ์–ด์…ˆ๋ธ”๋Ÿฌ ์ตœ์ ํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” x86_64 ์‹œ์Šคํ…œ์—์„œ ์ตœ์ƒ์˜ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค(CPU์—์„œ AVX2๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜์ง€๋งŒ ์ตœ์†Œํ•œ SS2๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค). ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Ÿ‰์€ ์ธ์ฝ”๋”ฉ์— ๊ด€๋ จ๋œ ํ”„๋กœ์„ธ์„œ ์ฝ”์–ด ์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฉฐ, ์ด๋Š” "--lp" ์˜ต์…˜์œผ๋กœ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. AV1์— ์‚ฌ์šฉ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•ด ์ด ํฌ๋งท์„ ์ธ์ฝ”๋”ฉํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ํฌ๋งท๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ์ด๋กœ ์ธํ•ด ํ‘œ์ค€ AV1 ์ธ์ฝ”๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ํŠธ๋žœ์Šค์ฝ”๋”ฉ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, AV1 ํ”„๋กœ์ ํŠธ์˜ ํ‘œ์ค€ ์ธ์ฝ”๋”๋Š” x5721(ํ”„๋กœํŒŒ์ผ "main"), x5869(ํ”„๋กœํŒŒ์ผ "high"), libvpx-vp658 ์ธ์ฝ”๋”์— ๋น„ํ•ด 264๋ฐฐ, 264๋ฐฐ, 9๋ฐฐ ๋” ๋งŽ์€ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด SVT-AV1 ๋ฆด๋ฆฌ์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • ์ƒˆ๋กœ์šด ๋ฒ„์ „ ๋ฒˆํ˜ธ๋กœ ์ „ํ™˜๋˜์—ˆ์œผ๋ฉฐ, ์ด์— ๋”ฐ๋ผ API/ABI๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ฒ„์ „์˜ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€ ํ”„๋ ˆ์ž„์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐ ๋”ฐ๋ฅธ ์ง€์—ฐ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋นˆ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ๋งˆ์ง€๋ง‰ ํ”„๋ ˆ์ž„์—์„œ ์ŠคํŠธ๋ฆผ ๋(EOS) ํ‘œ์‹œ๋กœ์˜ ์ „ํ™˜๊ณผ ๊ด€๋ จ๋œ API๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. API ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ด๋ฏธ FFmpeg ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๋ฐ˜์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • 3ํŒจ์Šค ๊ฐ€๋ณ€ ๋น„ํŠธ๋ ˆ์ดํŠธ ๋ชจ๋“œ(XNUMXํŒจ์Šค VBR)๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ  ๋ฉ€ํ‹ฐํŒจ์Šค VBR ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํŒจ์Šค VBR ๋ชจ๋“œ๋Š” FFmpeg์™€์˜ ํ†ตํ•ฉ์„ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด XNUMXํŒจ์Šค๋กœ ์ถ•์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ธ์ฝ”๋”๋Š” ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๊ฐœ์„ ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํ”„๋ฆฌ์…‹ M9-M13์˜ ์••์ถ• ํšจ์œจ์„ฑ์ด 1-4% ์ฆ๊ฐ€ํ•˜๊ณ , LP 5 ๋ชจ๋“œ์—์„œ ํ”„๋ฆฌ์…‹ M20์˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Ÿ‰์ด 35-8% ๊ฐ์†Œํ•˜๊ณ , ๋‹ค๋ฅธ ๋ชจ๋“œ์—์„œ๋Š” 1-5% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์ „ ์„ค์ •์˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Ÿ‰์€ 1~5% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณ ํ’ˆ์งˆ ์ˆ˜์ค€์„ ์„ค์ •ํ•˜๋Š” ์‚ฌ์ „ ์„ค์ •์— ๋Œ€ํ•ด ํ’ˆ์งˆ/์†๋„ ๊ท ํ˜•์„ ์ตœ์ ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ ํ’ˆ์งˆ์„ ์ œ๊ณตํ•˜๋Š” MR ์‚ฌ์ „ ์„ค์ •์ด 100% ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ARM ์•„ํ‚คํ…์ฒ˜์— ํŠนํ™”๋œ ์ตœ์ ํ™”๊ฐ€ C ์ „์šฉ ํ•จ์ˆ˜์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, VideoLAN๊ณผ FFmpeg ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ AV1 ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ํ˜•์‹์„ ์œ„ํ•œ ๋Œ€์ฒด ๋ฌด๋ฃŒ ๋””์ฝ”๋” ๊ตฌํ˜„์„ ํฌํ•จํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด์—์„œ dav1.4.1d 1 ํ”„๋กœ์ ํŠธ๊ฐ€ ์ถœ์‹œ๋˜์—ˆ๋‹ค๋Š” ์ ๋„ ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. dav1d ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ณ ๊ธ‰ ํ•˜์œ„ ์ƒ˜ํ”Œ๋ง๊ณผ ์ง€์ •๋œ ๋ชจ๋“  ์ƒ‰์ƒ ์‹ฌ๋„ ์ œ์–ด ์˜ต์…˜(1, 8, 10๋น„ํŠธ)์„ ํฌํ•จํ•œ ๋ชจ๋“  AV12 ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. dav1d์˜ ์ฃผ์š” ํŠน์ง•์€ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๋†’์€ ๋””์ฝ”๋”ฉ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๊ณ  ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๋ชจ๋“œ์—์„œ ๊ณ ํ’ˆ์งˆ ์ž‘์—…์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” ์–ด์…ˆ๋ธ”๋Ÿฌ ์‚ฝ์ž…(NASM/GAS)์ด ํฌํ•จ๋œ C(C99)๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ BSD ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. x86, x86_64, ARMv7 ๋ฐ ARMv8 ์•„ํ‚คํ…์ฒ˜์™€ FreeBSD, Linux, Windows, macOS, Android ๋ฐ iOS ์šด์˜ ์ฒด์ œ์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

dav1d 1.4๋Š” ์ƒˆ๋กœ์šด Loongarch ๋ฐ RISC-V ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ง€์›, AVX-512 ๋ช…๋ น์–ด ๊ธฐ๋ฐ˜์˜ ์ถ”๊ฐ€ ์ตœ์ ํ™”, ARM ์‹œ์Šคํ…œ์—์„œ 6ํƒญ ํ•„ํ„ฐ ๊ฐ€์†ํ™”, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ ํšจ์œจ์„ฑ ์ฆ๊ฐ€, ARM64, ARM32 ๋ฐ RISC-V ์‹œ์Šคํ…œ์—์„œ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ๊ฐ์†Œ ๋“ฑ์˜ ํŠน์ง•์œผ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ํฐ ํ”„๋ ˆ์ž„์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ธํ•ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์“ฐ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ทจ์•ฝ์  CVE-2024-1580์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€