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("๋ฉ”์ธ" ํ”„๋กœํ•„), x5869("ํ•˜์ด" ํ”„๋กœํ•„) ๋ฐ libvpx-vp658 ์ธ์ฝ”๋”์— ๋น„ํ•ด 264, 264 ๋ฐ 9๋ฐฐ ๋” ๋งŽ์€ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒˆ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋กœ ์ „ํ™˜๋˜์—ˆ์œผ๋ฉฐ, ์ด์— ๋”ฐ๋ผ ๋ฒ„์ „์˜ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ API/ABI๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.
  • ๋นˆ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ๋งˆ์ง€๋ง‰ ํ”„๋ ˆ์ž„์—์„œ ์ŠคํŠธ๋ฆผ ๋ ํ‘œ์‹œ(EOS - End Of Stream)๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ API๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ์ถ”๊ฐ€ ํ”„๋ ˆ์ž„์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ง€์—ฐ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. API ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ด๋ฏธ FFmpeg ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๋ฐ˜์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • 3ํŒจ์Šค ๊ฐ€๋ณ€ ๋น„ํŠธ ์ „์†ก๋ฅ  ๋ชจ๋“œ(XNUMXํŒจ์Šค VBR)๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ ์ด์ œ ๋‹ค์ค‘ ํŒจ์Šค VBR ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. FFmpeg์™€์˜ ํ†ตํ•ฉ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด VBR ๋‹ค์ค‘ ํŒจ์Šค ๋ชจ๋“œ๊ฐ€ XNUMX๊ฐœ์˜ ํŒจ์Šค๋กœ ์ถ•์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ธ์ฝ”๋”์— ์ตœ์ ํ™”๊ฐ€ ์ถ”๊ฐ€๋˜์–ด M9-M13 ์‚ฌ์ „ ์„ค์ •์˜ ์••์ถ• ํšจ์œจ์„ฑ์ด 1~4% ์ฆ๊ฐ€ํ•˜๊ณ  M5 ์‚ฌ์ „ ์„ค์ •์˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๊ฐ€ LP 20 ๋ชจ๋“œ์—์„œ 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 ์‹œ์Šคํ…œ์—์„œ 6tap ํ•„ํ„ฐ ์ž‘๋™์„ ๊ฐ€์†ํ™”ํ•˜๊ณ  ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์ž‘์—…์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ  ARM64, ARM32 ๋ฐ RISC ์‹œ์Šคํ…œ V์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ. ๋งค์šฐ ํฐ ํ”„๋ ˆ์ž„ ํฌ๊ธฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ธํ•ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์“ฐ๊ธฐ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ทจ์•ฝ์  CVE-2024-1580์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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