코덱 2

Codec 2

코덱 2는 특허가 없는 [1]오픈소스인 저비트레이트 음성 오디오코덱(스피치 코딩)입니다.코덱 2는, 인간의 음성 전용의 방법인 사인파 부호화를 사용해 음성을 압축한다.3200~450비트/초의 비트환율이 정상적으로 작성되었습니다.코덱 2는 아마추어 무선 및 기타 고압축 음성 응용 프로그램에 사용하도록 설계되었습니다.

개요

코덱은 David Grant Rowe가 다른 연구원(예: Opus[2]Jean-Marc Valin)의 지원과 협력을 받아 개발했습니다.

코덱 2는 3200, 2400, 1600, 1400, 1300, 1200, 700 및 450비트/초 코덱모드로 구성됩니다.다른 대부분의 저비트레이트 음성 코덱을 능가합니다.예를 들어 Advanced Multi-Band Excitation 대역폭의 절반을 사용하여 유사한 품질의 [citation needed]음성을 인코딩합니다.음성 코덱은 16비트 PCM 샘플링된 음성을 사용하여 팩된 디지털바이트를 출력합니다.팩된 디지털바이트를 전송하면 PCM 샘플링된 오디오가 출력됩니다.오디오 샘플링 속도는 8kHz로 고정되어 있습니다.

참조 구현은 오픈 소스이며 GitHub [3]저장소에서 자유롭게 사용할 수 있습니다.소스 코드는 GNU Lesser General Public License(LGPL)[4] 버전 2.1의 조건에 따라 출시됩니다.C로 프로그래밍되며 현재 소스 코드에는 부동소수점 산술이 필요하지만 알고리즘 자체에는 이것이 필요하지 않습니다.레퍼런스 소프트웨어 패키지에는 주파수 분할 다중 디지털 음성 소프트웨어 모뎀과 WxWidgets 기반의 그래피컬 사용자 인터페이스도 포함되어 있습니다.이 소프트웨어는 Linux 에서 개발되며 Cygwin으로 작성된 Microsoft Windows용 포트가 Apple MacOS 버전 외에 제공됩니다.

이 코덱은 다양한 컨퍼런스에서 발표되어 2012 ARL Technical Innovation [5]Award와 Linux Australia Conference의 Best Presentation [6]Award를 수상했습니다.

테크놀로지

내부적으로 파라메트릭 오디오 코딩 알고리즘은 사람의 음성 모델을 사용하여 10 ms PCM 프레임에서 동작합니다.이러한 음성 세그먼트 각각은, 음성(음성) 또는 음성 없음(음성)으로 선언됩니다.

코덱 2는 사인파 부호화를 사용하여 음성을 모델화합니다.이것은 멀티밴드 들뜸 코덱과 밀접하게 관련되어 있습니다.사인파 부호화는 오버톤 주파수와 층 고조파 사인파 패턴의 규칙성(주기성)에 기초한다.음성 오디오는 화자의 음성의 결정된 기본 주파수(피치) 위에 라인 스펙트럼 페어(LSP)라고 불리는 독립된 진폭을 가진 조화적으로 관련된 사인파의 합으로 모델링함으로써 재생됩니다.고조파의 (양자화된) 피치와 진폭(에너지)이 부호화되어 LSP와 디지털 형식으로 채널을 통해 교환됩니다.LSP 계수는 주파수 영역의 LPC(Linear Predictive Coding) 모델을 나타내며, LPC [7]매개변수의 강력하고 효율적인 양자화에 도움이 됩니다.

디지털 바이트는 바이트 단위로 정리된 비트필드 형식입니다.이러한 비트 필드는 함께 그룹화되기 전에 선택적으로 회색으로 구분됩니다.raw 를 송신하는 경우는 그레이 코딩이 도움이 되는 경우가 있습니다만, 통상은 애플리케이션이 비트필드를 버스트 하는 것만으로 끝납니다.비트 필드는 저장 또는 교환되는 다양한 파라미터(피치, 에너지, 보이스 부란, LSP 등)를 구성합니다.

예를 들어 Mode 3200에서는 20밀리초의 음성이 64비트로 변환됩니다.따라서 최소 3200비트/초의 데이터 레이트로 64비트가 20ms(1초에 50회)마다 출력됩니다.이들 64비트는 응용 프로그램에8 바이트로 송신됩니다.응용 프로그램에서는 비트필드의 래핑을 해제하거나 데이터 채널을 통해 바이트를 송신해야 합니다.

또 다른 예로는 Mode 1300이 있습니다.모드 1300은 40밀리초의 음성을 송신하여 최소 1300비트/초의 레이트로 40밀리초마다(25회) 52비트를 출력합니다.이 52비트는 애플리케이션 또는 데이터 채널로7 바이트로 송신됩니다.

도입

코덱 2는 현재 여러 무선 및 소프트웨어 정의 무선 시스템에서 사용되고 있습니다.

또한 Codec2는 FreeSWITCH에 통합되어 있으며 Asterisk에서 지원하는 패치가 있습니다.

2017년 [13]국제우주정거장에서 발사돼 배치된 아마추어 라디오 큐브샛 릴락샛-1(호출 부호 ON02CN, QB50)의 지구궤도에는 FM-Codec2 디지털 음성 중계기가 있었다.

역사

저명한 자유 소프트웨어 옹호자이자 라디오 아마추어인 Bruce Perens는 5kBit/s 미만의 속도에서 작동하기 위한 자유 발언 코덱을 만들기 위해 로비를 벌였습니다.그는 자신의 배경이 없었기 때문에 2008년 Jean-Marc Valin에게 접근하여 Spex에서 Valin과 여러 차례 함께 일한 적이 있는 개발자 David Grant Rowe를 소개했습니다.Rowe 자신도 무선 아마추어(아마추어 무선 콜사인 VK5DGR)였으며 음성 신호용 음성 코덱 및 기타 신호 처리 알고리즘을 작성 및 사용한 경험이 있습니다.그는 1990년대에 음성 부호화 분야에서 박사 학위를 취득했으며 최초의 위성 전화 시스템 중 하나(모바일샛)의 개발에 참여했습니다.

그는 작업에 동의하고 2009년 8월 21일 포맷 작업에 대한 결정을 발표했습니다.그는 박사학위 [14][15]논문의 연구와 연구 결과를 토대로 삼았다.기초 정현파 모델링은 로버트 J. McAulay와 토마스 F.의 개발로 거슬러 올라간다.1980년대 중반의 콰티에리(MIT 링컨 연구소).

2010년 8월에 David Rowe는 버전 0.1 alpha를 [16]발표했습니다.버전 0.2는 2011년 말에 출시되었으며 1,400비트/초의 모드를 도입하여 양자화가 대폭 개선되었습니다.

2012년 1월, linux.conf.au에서 Jean-Marc Valin은 Rowe가 [17]잘 모르는 라인 스펙트럼 쌍의 양자화를 개선하는 데 도움을 주었다.2011/2012년 겨울과 봄에 사용 가능한 비트레이트 모드가 여러 번 변경된 후 2,400, 1,400 및 1,200 bit/s 모드를 그해 5월 이후에 사용할 수 있게 되었습니다.

비트 레이트 700비트/초의 새로운 모드인 코덱 2 700C는 2017년 [18]초에 완성되었습니다.

2018년 7월, 실험적인 450비트/초 모드가 에를랑겐 뉘른베르크 대학의 석사 논문의 일부로 개발되었습니다.벡터 양자화의 현명한 트레이닝을 통해 700C [19]모드의 원리에 따라 데이터 레이트를 더욱 낮출 수 있습니다.

레퍼런스

  1. ^ "DCC2011-Codec2-VK5DGR" (PDF).
  2. ^ "A Pitch-Energy Quantizer for Codec2". Archived from the original on 2015-06-19.
  3. ^ "Repository for Codec 2 Source". 14 October 2021.
  4. ^ "Codec2 – an Open Source, Low-Bandwidth Voice Codec". Slashdot.
  5. ^ 2012년 ARL 기술혁신상
  6. ^ "Linux Australia 2012 conference". Archived from the original on 2012-11-29. Retrieved 2012-08-02.
  7. ^ "Techniques for Harmonic Sinusoidal Coding" (PDF). Archived from the original (PDF) on 2013-05-15. Retrieved 2013-04-12.
  8. ^ "FreeDV".
  9. ^ "FreeDV, CODEC2 and the WaveformAPI". Archived from the original on 2015-04-02. Retrieved 2015-03-06.
  10. ^ "Introducing the SM1000 Smart Mic".
  11. ^ "Quisk Software defined radio".
  12. ^ "M17 protocol description".
  13. ^ "QB-50 Constellation Satellites Deployed from ISS". American Radio Relay League website. 2017-11-15. Retrieved 2019-03-31.
  14. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2013-05-15. Retrieved 2013-04-12.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  15. ^ "Open Source Low Rate Speech Codec Part 1 – Rowetel".
  16. ^ "Codec2 V0.1 Alpha Released – Rowetel".
  17. ^ "A Pitch-Energy Quantizer for Codec2".
  18. ^ "Open Source Codec Encodes Voice Into Only 700 Bits Per Second". Slashdot. Retrieved 2019-03-31.
  19. ^ "Codec2 HF digital voice at 450 bps". Southgate Amateur Radio News. 2018-07-08. Retrieved 2019-03-31.

외부 링크