셀트

CELT
셀트
개발자Xiph.Org 재단
포맷의 종류오디오
포함자오그
확장처오퍼스
표준.문서
libcelt
개발자Xiph.org 재단, Jean-Marc Valin
프리뷰 릴리즈
2011년 2월 15일, 11년(2011-02-15)
유형오디오 코덱, 레퍼런스 실장
면허증.2절 BSD
웹 사이트opus-codec.org

CELT(Constraint Energy Lapped Transform)는 오픈된 로열티 없는 손실 오디오 압축 형식이며, 낮은 레이텐시 오디오 통신에서 사용되는 알고리즘 지연이 특히 낮은 자유 소프트웨어 코덱입니다.이 알고리즘은 공개 문서화되어 있으며 소프트웨어 특허 제한 없이 사용할 수 있습니다.형식 개발은 Xiph에 의해 유지되었다.Org Foundation(Ogg 코덱패밀리의 일부) 및 이후 Internet Engineering Task Force(IETF; 인터넷 기술 특별 조사위원회)의 Opus 작업 그룹에 의해 조정됩니다.

CELT는 고품질 오디오와 낮은 지연이 [1]모두 요구되는 애플리케이션을 위해 Vorbis와 Spex 사이의 갭을 메우기 위한 것입니다.그것은 말과 음악 모두에 적합하다.CELP 알고리즘으로부터 아이디어를 차용하고 있습니다만, 주파수 영역내에서 [1]배타적으로 동작하는 것으로, 그 제한의 일부를 회피할 수 있습니다.

원래 독립 실행형 CELT는 Opus에 합병되었다.따라서 스탠드아론 포맷으로서의 CELT는 폐지되어 폐지되었습니다.SILK와 통합된 Opus 층으로서의 하이브리드 형태만을 개발 중입니다.이 기사에서는 역사적 독립형 형식에 대해 설명합니다. Opus로의 통합 이후 통합된 형태와 그 진화에 대해서는 Opus 관련 기사를 참조하십시오.

특성.

CELT의 주요 특징은 낮은 알고리즘 지연입니다.일반적으로 3~9밀리초의 지연을 허용하지만, 비슷한 오디오 [2]품질에 도달하기 위해 비트레이트를 늘려 2밀리초 미만으로 설정할 수 있습니다.CELT는 모노오디오와 스테레오오디오를 지원하며 음성과 음악 모두에 대응합니다.채널당 32kHz~48kHz 이상의 샘플링 레이트와 24kbit/s~128kbit/[2]s 이상의 적응 비트레이트를 사용할 수 있습니다.

CELT 알고리즘과 관련된 알려진 지적 재산 문제는 없으며, 이 기준 구현은 허용 오픈 소스 라이센스(2절 BSD)[1][3]에 따라 발행됩니다.

Vorbis와 마찬가지로 CELT는 풀밴드(전체 인간의 청각 범위) 범용 코덱으로, 특별한 유형의 오디오 신호에 특화되어 있지 않기 때문에 형제 프로젝트 Spex와 다릅니다.이 포맷을 사용하면 높은 비트레이트에서는 투과적인 결과를 얻을 수 있을 뿐만 아니라 낮은 비트레이트에서는 매우 적절한 품질을 얻을 수 있습니다.전체적으로 MP3보다 압축 능력이 월등히 우수하며, 텔레포니 등 실시간 어플리케이션의 또 다른 유용한 기능으로 밴드 [4][5]폴딩으로 인해 낮은 비트레이트에서의 CELT의 오디오 품질은 HE-AACv1과 동등하다.비교 이중 블라인드 듣기 테스트에서는 [6]약 64 kBit/s로 HE-AACv1보다 월등히 우수하다는 것이 입증되었습니다.

AAC(AAC-LD)의 저지연 변종과 유사한 비교적 낮은 계산 복잡도를 가지며 Vorbis의 [7]복잡도보다 훨씬 낮게 유지됩니다.

고정 비트레이트 및 가변 비트레이트를 유효하게 합니다.음성정지 등의 경우에 신호가 노이즈 플로어로 사라지면 디코더에 대한 컴포트 노이즈의 출력을 신호로 전송하도록 제한할 수 있다.자연스럽게 스트리밍이 가능한 포맷의 대부분의 설정은 전송을 중단하지 않고 즉시 변경할 수 있습니다.

이 형식은 전송 오류에 대해 강력합니다.패킷 전체의 손실이나 비트 에러는, 오디오 품질의 안정된 저하(패킷 손실 은폐, PLC)로 마스킹 할 수 있습니다.

테크놀로지

코덱 블록도

CELT는 Modified Discrete Cosine Transform(MDCT; 수정 이산 코사인 변환) 및 CELP(여진용 코드북이 있지만 주파수 도메인)의 개념에 기초한 트랜스폼코덱입니다.

초기 PCM 코드화된 신호는 MDCT(윈도우 기능)에 대해 비교적 작은 중복 블록으로 처리되며 주파수 계수로 변환됩니다.한편으로 특별히 짧은 블록사이즈를 선택하면 짧은 레이텐시가 가능하지만 보정해야 할 주파수 분해능이 저하됩니다.또한 알고리즘 지연을 오디오 품질의 경미한 희생으로 줄이기 위해 블록 양단에서 각각 [2]1개의 8시간 동안 신호를 소음함으로써 블록 간의 오버랩 50%를 실질적으로 절반으로 감소시킨다.

계수는 인간 청각 시스템의 임계 대역과 유사하도록 그룹화된다.예측치(델타 부호화)에만 차이를 전달함으로써 각 그룹의 에너지 전량을 분석하여 데이터 감소를 위해 정량화한 값을 예측에 의해 압축한다.

(비양자화) 대역 에너지 값은 원시 DCT 계수에서 제거된다(정규화).결과 잔차 신호 계수(이른바 "밴드 형상")는 피라미드 벡터 양자화(PVQ, 구형 벡터 양자화)[8]의해 부호화된다.이 인코딩은 고정(예측 가능) 길이의 코드 워드로 이어지며, 비트 오류에 대한 견고성을 실현하고 엔트로피 [5]인코딩을 수행할 필요가 없습니다.마지막으로 범위 [9]인코더에 의해 인코더의 모든 출력이 1비트스트림으로 부호화된다.PVQ와 관련하여, CELT는 밴드 폴딩(band folding)으로 알려진 기술을 사용한다. 이 기술은 높은 대역에 낮은 대역의 계수를 재사용하여 스펙트럼 대역 복제(SBR)와 유사한 효과를 제공하지만, 알고리즘 지연과 계산 복잡성에 대한 영향은 SBR보다 훨씬 적다.이는 적절한 주파수 대역에서 보다 풍부한 기능을 유지함으로써 "새" 아티팩트에 대해 작동합니다.

디코더는 범위 코딩된 비트스트림에서 개별 구성요소를 풀고 밴드 에너지를 밴드 형상 계수에 곱한 다음 iMDCT를 통해 다시 PCM 데이터로 변환합니다.개별 블록은 Weighted Overlap Add(WOLA)를 사용하여 다시 결합됩니다.많은 파라미터가 명시적으로 코딩되지 않고 인코더와 동일한 기능을 사용하여 재구성됩니다.

채널 커플링의 경우 CELT는 M/S 스테레오 또는 강도 스테레오를 사용할 수 있습니다.블록은 인접 프레임(Intra-frame)과는 독립적으로 기술할 수 있습니다.예를 들어 디코더가 실행 중인 스트림에 뛰어들 수 있도록 합니다.변환 코덱을 사용하면, 날카롭고 에너지가 많이 드는 사운드(과도)의 양자화 에러가 DCT 블록 전체에 퍼질 수 있어 과도 상태가 시간의 역방향뿐만 아니라 순방향에서도 마스킹 되지 않기 때문에, 이른바 프리 에코 아티팩트가 들리는 일이 있습니다.CELT를 사용하면 이러한 아티팩트를 방지하기 위해 각 블록을 추가로 분할할 수 있습니다.

역사

Vorbis 후계기의 계획과 초안은 2005년 Ghost 프로젝트의 일환으로 Xiph.org에서 처음 작성되었습니다(Vorbis II로 언급됨).Vorbis의 크리에이터 Christopher Montgomery와의 이 토론에 의해 Jean-Marc Valin은 특히 저지연 코덱에 관심을 갖게 되었습니다.Valin은 [5]2007년부터 CELT에서 일해 왔다.2007년 12월에 libcelt의 첫 번째 초안 버전이 버전 0.0.1로 공개되었으며, 처음에는 "Code-Excited Lapped Transform"[10][11]이라고 명명되었습니다.CELT는 2009년 7월에[3][12][13][14] IETF 테크놀로지로서 「ietfcodec」작업 그룹에 의해서 설립되었습니다.2009년 5월에 CELT 코덱의 RTP 페이로드 포맷 초안이 [15]공개되었습니다.

버전 0.9에서는 그때까지 사용된 주파수 영역에서 동작하는 피치 예측이 시간 영역에서 [16]사전 및 사후 필터 쌍을 가진 덜 복잡한 솔루션으로 대체되었습니다. 이 솔루션[5]Broadcom의 Raymond Chen에 의해 제공되었습니다.

2011년 2월 4일부터 CELT 0.11에서는 포맷이 일시적으로 동결("소프트 프리즈")되어 예기치 않게 마지막 변경이 필요할 가능성이 있습니다.

그 CELT/SILK 하이브리드 코덱 오푸스(이전에 하모니로 알려진)의 출현 직후, CELT 별도의 프로젝트 개발을 대신 Opus,[17]의 시간 영역에 선형 예측(SILK)과 MDC를 주파수 영역에서 더 높은 부분을 차지하는 분광 영역의 하단 부분 치료 목표로 하고 있는 기준에 살고 있는 중단되었다.t.Opus의 초안은 2010년 9월부터 IETF에 등록되었습니다.

소프트웨어

소프트웨어 라이브러리 libcelt는 CELT를 위한 레퍼런스 구현으로 기능하며, C로 작성되어 Xiph의 3개 조항 BSD-ish 라이선스에 따라 자유 소프트웨어로 발행됩니다.

포맷은 최종적으로 동결되지 않았지만, Ekiga[19]FreeSWITCH 등 많은 VoIP 어플리케이션에서 사용되고 있었습니다.Ekiga[18] FreeSWITCH는 2009년 1월에 소프트 프리즈에 들어가자마자 CELT로 전환되었으며, Mumble, Team Speak 및 기타 소프트웨어에도[20] 사용되고 있습니다.2011년 4월, CELT에 대한 지원이 FFmpeg[21][22]포함되었습니다.

CELT는 다음 [20]사용자도 지원 또는 사용합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c Xiph.Org CELT 초저지연 오디오 코덱 - 홈페이지 2018-08-31 Wayback Machine에서 보관, 2009-09-01 취득
  2. ^ a b c Timothy B에 의한 Wayback Machine에서의 코덱아카이브 2011-08-07 프레젠테이션Terriberry(최대 100MiB의 Ogg Theora+Vorbis 비디오 65분, PDF 형식의 Wayback Machine에서 아카이브된 2011-08-10 프레젠테이션 슬라이드 참조)
  3. ^ a b CELT IETF 드래프트
  4. ^ Fiona Glaser (2010-11-18). "Important: upcoming CELT bitstream freeze!". ffmpeg-devel.mplayerhq.hu - FFmpeg development discussions and patches mailing list. mplayerhq.hu. Retrieved 2012-06-11.
  5. ^ a b c d Christopher Montgomery (2010-12-23). "next generation audio: CELT update 20101223". Monty's demo pages. Xiph.Org. Archived from the original on 2013-08-23. Retrieved 2012-06-11.
  6. ^ Dirk Bösel (2011-04-18). "CELT beeindruckt beim 64 kb/s Multiformat Hörtest (2011)". MPeX.net (in German). MPeX.net GmbH. Retrieved 2011-04-25.
  7. ^ Valin, Jean-Marc; Terriberry, Timothy B.; Montgomery, Christopher; Maxwell, Gregory (17 April 2009), "A High-Quality Speech and Audio Codec With Less Than 10 ms Delay" (PDF), IEEE Transactions on Audio, Speech, and Language Processing, IEEE Signal Processing Society, vol. 18, no. 1, retrieved 2011-02-16
  8. ^ Fischer, Thomas R. (July 1986), "A pyramid vector quantizer", IEEE Transactions on Information Theory, vol. 32, no. 4, pp. 568–583, doi:10.1109/TIT.1986.1057198
  9. ^ 사양서 초안 제2판
  10. ^ Jean-Marc Valin (2007-12-09). "Experimental release of Ghost/CELT 0.0.1". Hydrogenaudio Forums. Retrieved 2012-06-11.
  11. ^ Xiph.Org(2007-12-08) CELT 출시– celt-0.0.1.tar.gz, Retrieved 2009-09-01
  12. ^ Monika Ermert (2009-11-13). "IETF kümmert sich um lizenzfreien Audiocodec". heise online. Retrieved 2011-02-12.
  13. ^ IETF에 제출된 사양서 초안
  14. ^ IETF - AVT 워킹 그룹 (2009-07-04) CELT 코덱, 2009-09-01 취득
  15. ^ IETF - CELT 코덱용 AVT 워킹그룹(2009-05-08) RTP 페이로드 포맷, 2009-09-01 취득
  16. ^ Jean-Marc Valin (2011-02-15). "CELT decoder complexity". CELT-dev. Xiph.Org. Archived from the original on 2012-04-02. Retrieved 2012-06-11.
  17. ^ Jean-Marc Valin, Koen Vos (October 2010). "Definition of the Opus Audio Codec". IETF Internet-Drafts. IETF Network Working Group. Retrieved 2012-06-11.
  18. ^ Ekiga 3.1.0 이용 가능
  19. ^ FreeSWITCH: 새해 출시
  20. ^ a b "Software that uses or supports CELT". CELT website. Xiph.Org. Retrieved 2012-06-12.
  21. ^ http://ffmpeg.org/pipermail/ffmpeg-devel/2011-April/110850.html
  22. ^ http://git.videolan.org/?p=fffmpeg.h=89451dd6e4da40ed73b8bee2d48d8d8be1d5b0c
  23. ^ "www.gablarski.org". Archived from the original on 2010-07-03. Retrieved 2010-10-17.
  24. ^ "Patch Notes - Dota2 Dev".
  25. ^ "Team Fortress 2".

외부 링크