Opus 1.4 ์˜ค๋””์˜ค ์ฝ”๋ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋ฌด๋ฃŒ ๋น„๋””์˜ค ๋ฐ ์˜ค๋””์˜ค ์ฝ”๋ฑ ๊ฐœ๋ฐœ์ž์ธ Xiph.Org๋Š” ๋Œ€์—ญํญ์ด ์ œํ•œ๋œ VoIP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋†’์€ ๋น„ํŠธ๋ ˆ์ดํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ์˜ค๋””์˜ค ๋ฐ ์Œ์„ฑ ์••์ถ• ๋ชจ๋‘์— ๋Œ€ํ•ด ๊ณ ํ’ˆ์งˆ ์ฝ”๋”ฉ๊ณผ ์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•˜๋Š” Opus 1.4.0 ์˜ค๋””์˜ค ์ฝ”๋ฑ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฝ”๋” ๋ฐ ๋””์ฝ”๋” ์ฐธ์กฐ ๊ตฌํ˜„์€ BSD ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. Opus ํ˜•์‹์˜ ์ „์ฒด ์‚ฌ์–‘์€ ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ๋ฌด๋ฃŒ์ด๋ฉฐ ์ธํ„ฐ๋„ท ํ‘œ์ค€(RFC 6716)์œผ๋กœ ์Šน์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ฝ”๋ฑ์€ Xiph.org์˜ CELT ์ฝ”๋ฑ๊ณผ Skype์˜ ์˜คํ”ˆ ์†Œ์Šค SILK ์ฝ”๋ฑ์˜ ์ตœ๊ณ ์˜ ๊ธฐ์ˆ ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. Skype ๋ฐ Xiph.Org ์™ธ์—๋„ Mozilla, Octasic, Broadcom ๋ฐ Google๊ณผ ๊ฐ™์€ ํšŒ์‚ฌ๋„ Opus ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜คํ‘ธ์Šค์— ๊ด€๋ จ๋œ ํŠนํ—ˆ๋Š” ๋กœ์—ดํ‹ฐ ์ง€๋ถˆ ์—†์ด ๋ฌด์ œํ•œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•œ ํšŒ์‚ฌ์— ์˜ํ•ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. Opus์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ง€์  ์žฌ์‚ฐ๊ถŒ ๋ฐ ํŠนํ—ˆ ๋ผ์ด์„ ์Šค๋Š” ์ถ”๊ฐ€ ์Šน์ธ ์—†์ด Opus๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์ œํ’ˆ์— ์ž๋™์œผ๋กœ ์œ„์ž„๋ฉ๋‹ˆ๋‹ค. ๋Œ€์ฒด ํƒ€์‚ฌ ๊ตฌํ˜„์˜ ๋ฒ”์œ„ ๋ฐ ์ƒ์„ฑ์—๋Š” ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Opus ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด Opus ๊ธฐ์ˆ ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํŠนํ—ˆ ์ ˆ์ฐจ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๊ฒฝ์šฐ ๋ถ€์—ฌ๋œ ๋ชจ๋“  ๊ถŒ๋ฆฌ๊ฐ€ ์ทจ์†Œ๋ฉ๋‹ˆ๋‹ค.

Opus๋Š” ๋Œ€์—ญํญ์ด ์ œํ•œ๋œ VoIP ์ „ํ™” ํ†ต์‹  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ ๋†’์€ ๋น„ํŠธ ์ „์†ก๋ฅ  ์ŠคํŠธ๋ฆฌ๋ฐ ์˜ค๋””์˜ค ์••์ถ• ๋ฐ ์Œ์„ฑ ์••์ถ• ๋ชจ๋‘์— ๋Œ€ํ•ด ๋†’์€ ์ฝ”๋”ฉ ํ’ˆ์งˆ๊ณผ ์ตœ์†Œ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— Opus๋Š” 64Kbit์—์„œ ์ตœ๊ณ ์˜ ์ฝ”๋ฑ์œผ๋กœ ์„ ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Opus๋Š” Apple HE-AAC, Nero HE-AAC, Vorbis ๋ฐ AAC LC์™€ ๊ฐ™์€ ๊ฒฝ์Ÿ์‚ฌ๋ฅผ ๋Šฅ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค). ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Opus๋ฅผ ์ง€์›ํ•˜๋Š” ์ œํ’ˆ์—๋Š” Firefox ๋ธŒ๋ผ์šฐ์ €, GStreamer ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ FFmpeg ํŒจํ‚ค์ง€๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Opus์˜ ์ฃผ์š” ๊ธฐ๋Šฅ:

  • 5 ~ 510 Kbit/s์˜ ๋น„ํŠธ ์ „์†ก๋ฅ ;
  • 8์—์„œ 48KHz๊นŒ์ง€์˜ ์ƒ˜ํ”Œ๋ง ์ฃผํŒŒ์ˆ˜;
  • 2.5~120๋ฐ€๋ฆฌ์ดˆ์˜ ํ”„๋ ˆ์ž„ ์ง€์† ์‹œ๊ฐ„
  • ์ƒ์ˆ˜(CBR) ๋ฐ ๊ฐ€๋ณ€(VBR) ๋น„ํŠธ ์ „์†ก๋ฅ  ์ง€์›
  • ํ˜‘๋Œ€์—ญ ๋ฐ ๊ด‘๋Œ€์—ญ ์˜ค๋””์˜ค ์ง€์›
  • ์Œ์„ฑ ๋ฐ ์Œ์•… ์ง€์›
  • ์Šคํ…Œ๋ ˆ์˜ค ๋ฐ ๋ชจ๋…ธ ์ง€์›;
  • ๋น„ํŠธ ์ „์†ก๋ฅ , ๋Œ€์—ญํญ ๋ฐ ํ”„๋ ˆ์ž„ ํฌ๊ธฐ์˜ ๋™์  ์„ค์ • ์ง€์›
  • ํ”„๋ ˆ์ž„ ์†์‹ค ์‹œ ์˜ค๋””์˜ค ์ŠคํŠธ๋ฆผ์„ ๋ณต์›ํ•˜๋Š” ๊ธฐ๋Šฅ(PLC)
  • ์ตœ๋Œ€ 255๊ฐœ ์ฑ„๋„ ์ง€์›(๋ฉ€ํ‹ฐ ์ŠคํŠธ๋ฆผ ํ”„๋ ˆ์ž„)
  • ๋ถ€๋™ ๋ฐ ๊ณ ์ • ์†Œ์ˆ˜์  ์‚ฐ์ˆ ์„ ์‚ฌ์šฉํ•œ ๊ตฌํ˜„์˜ ๊ฐ€์šฉ์„ฑ.

Opus 1.4์˜ ์ฃผ์š” ํ˜์‹ :

  • FEC(Forward Error Correction)๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด 16~24kbs(LBRR, Low Bit-Rate Redundancy)์˜ ๋น„ํŠธ ์ „์†ก๋ฅ ์—์„œ ์†์ƒ๋˜๊ฑฐ๋‚˜ ์†์‹ค๋œ ํŒจํ‚ท์„ ๋ณต์›ํ•  ๋•Œ ์Œ์งˆ์˜ ์ฃผ๊ด€์ ์ธ ์ง€ํ‘œ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฝ”๋”ฉ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ตœ์ ํ™”๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • FEC ์˜ค๋ฅ˜ ์ˆ˜์ •์„ ํ™œ์„ฑํ™”ํ•˜์ง€๋งŒ SILK ๋ชจ๋“œ๋ฅผ ๊ฐ•์ œํ•˜์ง€ ์•Š๋Š” OPUS_SET_INBAND_FEC ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(FEC๋Š” CELT ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ).
  • ์†Œ๋ฆฌ๊ฐ€ ์—†์„ ๋•Œ ํŠธ๋ž˜ํ”ฝ ์ „์†ก์„ ์ค‘๋‹จํ•˜๋Š” DTX(Discontinuous Transmission) ๋ชจ๋“œ์˜ ๊ฐœ์„ ๋œ ๊ตฌํ˜„.
  • Meson ๋นŒ๋“œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ณ  CMake๋ฅผ ์‚ฌ์šฉํ•œ ๋นŒ๋“œ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹คํ—˜์  ๋ฉ”์ปค๋‹ˆ์ฆ˜ "์‹ค์‹œ๊ฐ„ ํŒจํ‚ท ์†์‹ค ์€ํ"๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๋จธ์‹  ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ท ์†์‹ค๋กœ ์ธํ•ด ์†์‹ค๋œ ์Œ์„ฑ ์กฐ๊ฐ์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํŒจํ‚ท ์†์‹ค ํ›„ ์˜ค๋””์˜ค ๋ณต๊ตฌ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๊ธฐ๊ณ„ ํ•™์Šต ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” "๊นŠ์€ ์ค‘๋ณต์„ฑ" ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์‹คํ—˜์  ๊ตฌํ˜„์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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