KR101468458B1 - 멀티 포인트 환경에서의 스케일러블 오디오 - Google Patents

멀티 포인트 환경에서의 스케일러블 오디오 Download PDF

Info

Publication number
KR101468458B1
KR101468458B1 KR1020127021111A KR20127021111A KR101468458B1 KR 101468458 B1 KR101468458 B1 KR 101468458B1 KR 1020127021111 A KR1020127021111 A KR 1020127021111A KR 20127021111 A KR20127021111 A KR 20127021111A KR 101468458 B1 KR101468458 B1 KR 101468458B1
Authority
KR
South Korea
Prior art keywords
audio
endpoint
scalable
state
processing
Prior art date
Application number
KR1020127021111A
Other languages
English (en)
Other versions
KR20120109617A (ko
Inventor
진웨이 펭
피터 추
스티븐 보츠코
Original Assignee
폴리콤 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 폴리콤 인코포레이티드 filed Critical 폴리콤 인코포레이티드
Publication of KR20120109617A publication Critical patent/KR20120109617A/ko
Application granted granted Critical
Publication of KR101468458B1 publication Critical patent/KR101468458B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities
    • H04M3/568Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities audio processing specific to telephonic conferencing, e.g. spatial distribution, mixing of participants
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • H04M7/0072Speech codec negotiation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Telephonic Communication Services (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

멀티포인트 회의시 분산 믹싱 및/또는 송신기 비트 전송률 조정을 구현하기 위해 스케일러블 오디오 코덱을 이용하는 것이 개시된다. 스케일러블 오디오 코덱은 각각의 엔드포인트로부터의 오디오 신호로 하여금 하나 이상의 주파수 대역으로 그리고 사용가능한 오디오가 전체 신호의 서브셋으로부터 디코딩될 수 있게 하기 위해 우선순위가 매겨지도록 이런 대역내에서의 변환 계수에 대해 분할되도록 한다. 서브셋은 특정 주파수 대역을 생략하고 및/또는 주파수 대역내에서 특정 계수를 생략함으로써 생성될 수 있다. 회의에서의 각각의 엔드포인트에 대해 다양한 규칙을 제공함으로써, 엔드포인트는 회의에 대한 자신의 신호의 중요도를 판정하고 적절한 비트 전송률을 선택하여, 회의 전체에서 대역폭 및/또는 처리 파워를 보존할 수 있다.

Description

멀티 포인트 환경에서의 스케일러블 오디오{SCALABLE AUDIO IN A MULTI­POINT ENVIRONMENT}
본 발명의 스케일러블 오디오에 관한 것으로, 특히 멀티 포인트 환경에서의 스케일러블 오디오에 관한 것이다.
다수 유형의 시스템은 오디오 신호를 생성하거나 또는 이러한 신호로부터 음성을 재생하기 위해 오디오 신호 처리를 이용한다. 일반적으로, 신호 처리는 오디오 신호를 디지털 데이터로 변환하고 그 데이터를 네트워크를 통해 전송하도록 인코딩한다. 그런다음, 추가적인 신호 처리가 전송된 데이터를 디코딩하고 음향파로서 재생하기 위해 그것을 아날로그 신호로 다시 변환한다.
오디오 신호를 인코딩하거나 디코딩하기 위한 다양한 기술이 존재한다.(신호를 인코딩 및 디코딩하는 프로세서 또는 처리 모듈은 일반적으로 코덱이라고 한다) 오디오 코덱은 오디오를 표시하기 위해 근단(near-end)에서 원단(far-end)까지 전송되어야 하는 데이터의 크기를 감소시키도록 회의시(in conferencing) 사용된다. 예를 들면, 오디오 및 비디오 회의용 오디오 코덱은 전송을 위한 결과인 신호가 최상의 품질을 가지지만 최소한의 수의 비트를 요구하도록 고-충실도(high-fidelity) 오디오 입력을 압축시킨다. 이러한 방식으로, 오디오 코덱을 가진 회의 장비는 더 작은 저장 용량을 필요로하고, 오디오 신호를 전송하기 위해 장비에 의해 사용되는 통신 채널은 더 작은 대역폭을 필요로 한다.
오디오 코덱은 회의시 하나의 엔드포인트에서 또다른 엔드포인트로 전송을 위해 오디오를 인코딩 및 디코딩하도록 다양한 기술을 이용할 수 있다. 일부 공통으로 사용되는 오디오 코덱은 네트워크를 통해 전송되는 오디오 데이터를 인코딩 및 디코딩하기 위한 변환 코딩 기술을 이용한다. 하나의 유형의 오디오 코덱은 Polycom의 Siren 코덱이다. Polycom의 Siren 코덱의 하나의 버전은 ITU-T(International Telecommunication Union Telecommunication Standardization Sector) 권고 G.722.1(Plycom Siren 7)이다. Siren 7은 신호를 7kHz까지 코딩하는 광역 코덱이다. 또다른 버전은 ITU-T G.722.1 C(Polycom Siren 14)이다. Siren 14는 신호를 14kHz까지 코딩하는 초 광역 코덱이다.
Siren 코덱은 변조 중복 변환(MLT: Modulated Lapped Transform)-기반 오디오 코덱이다. 따라서, Siren 코덱은 시간 영역(time domain)으로부터의 오디오 신호를 MLT(Modulated Lapped Transform) 영역(domain)으로 변환한다. 공지된 바와 같이, MLT(Modulated Lapped Transform)는 다양한 유형의 신호의 변환 코딩에 사용되는 코사인 변조 필터 뱅크의 형태이다. 일반적으로, L> M이라는 조건 하에서, 중복 변환은 길이(L)의 오디오 블록을 취하여 그 블록을 M의 계수로 변환시킨다. 이를 위해, 동기화된 신호가 변환된 계수의 연속적인 블록을 이용하여 획득될 수 있도록 L-M의 샘플의 연속한 블록 사이에 오버랩이 있어야 한다.
도 1a-1b는 Siren 코덱과 같은 변환 코딩 코덱의 특징을 간략하게 도시한다. 특정한 오디오 코덱의 실제 상세는 구현 및 사용되는 코덱의 유형에 따른다. 예를 들면, Siren 14의 공지된 상세는 ITU-T 권고 G.722.1 첨부 C에서 볼수 있고, Siren 7에 대한 상세는 ITU-T 권고 G.722.1에서 볼수 있으며, 이는 참조에 의해 본문에 통합되어있다. 오디오 신호의 변환 코딩에 관한 추가적인 상세는 본문에 참조에 의해 통합된 미국 특허출원 번호 제 11/550,629 및 11/550,682에서 볼 수 있다.
변환 코딩 코덱(예를 들면 Siren 코덱)용 인코더(10)는 도 1a에 도시된다. 인코더(10)는 아날로그 오디오 신호로부터 변환된 디지털 신호(12)를 수신한다. 아날로그 오디오 신호의 진폭은 특정 주파수에서 샘플링되고, 진폭을 나타내는 수로 변환된다. 일반적인 샘플링 주파수는 약 8kHz(즉, 초당 8,000회의 샘플링), 16kHz 내지 196kHz, 또는 그 사이의 임의의 것이다. 하나의 예시에서, 이러한 디지털 신호(12)는 약 20-ms 블록 또는 프레임에서 48kHz 또는 기타 속도로 샘플링될 수 있다.
이산 코사인 변환(DCT: Discrete Cosine Transform)이 될 수 있는 변환(20)은 시간 영역으로부터 변환 계수를 가진 주파수 영역으로 디지털 신호(12)를 변환한다. 예를 들면, 변환(20)은 각각의 오디오 블록 또는 프레임에 대해 스펙트럼의 960의 변환 계수를 산출할 수 있다. 인코더(10)는 정규화 프로세스(22)에서 계수에 대해 평균 에너지 레벨(기준(norm))을 발견한다. 그런다음, 인코더(10)는 패킷화 및 전송용 출력 신호(14)를 인코딩하기 위해 고속 래티스 벡터 양자화(FLVQ: Fast Lattice Vector Quantization) 알고리즘 등으로 계수를 양자화시킨다.
변환 코딩 코덱(예를 들면, Siren 코덱)용 디코더(50)가 도 1b에 도시된다. 디코더(50)는 네트워크로부터 수신된 입력 신호(52)의 인입 비트 스트림을 취하고 그로부터 원래 신호의 최상의 추정치를 재생성한다. 이를 위해, 디코더(50)는 입력 신호(52)에 대한 래티스 디코딩(역 FLVQ)(60)을 수행하고, 역양자화(dequantization) 프로세스(62)를 이용하여 디코딩된 변환 계수를 역양자화한다. 추가로, 변화 계수의 에너지 레벨은 다양한 주파수 대역에서 수정될 수 있다. 마지막으로, 역변환(64)은 역 DCT로서 작동하여 출력 신호(54)로서 전송하기 위해 주파수 영역으로부터 다시 시간 영역으로 신호를 변환시킨다.
이러한 오디오 코덱이 효과적일 지라도, 오디오 회의 애플리케이션에서 필요성과 복잡성의 증가는 보다 용도가 많고 개선된 오디오 코딩 기술을 요구한다. 예를 들면, 오디오 코덱은 네트워크를 통해 동작해야만 하고, 다양한 조건(대역폭, 리시버의 상이한 연결 속도, 등)은 동적으로 변할 수 있다. 무선 네트워크는 시간에 따라 채널의 비트 전송률(bit rate)이 변하는 하나의 예시이다. 따라서, 무선 네트워크에서의 엔드포인트는 네트워크 조건을 수용하기 위해 상이한 비트 전송률로 비트스트림을 전송해야만 한다.
Polycom의 RMX 시리즈 및 MGC 시리즈 제품과 같은, MCU(Multi-way Control Unit)의 사용은 보다 용도가 많고 개선된 오디오 코딩 기술이 사용될 수 있는 또다른 예시이다. 예를 들면, 회의에서 MCU는 먼저 제 1 엔드포인트(A)로부터 비트 스트림을 수신하고 그런다음 상이한 길이의 비트 스트림을 다수의 다른 엔드포인트(B, C, D, E, F...)로 전송할 필요가 있다. 전송될 상이한 비트 스트림은 각각의 엔드포인트가 얼마나 많은 네트워크 대역폭을 가졌는지, 엔드포인트의 디코딩 능력, 또는 다른 팩터에 따를 수 있다. 예를 들면, 하나의 엔드 포인트(B)는 오디오에 대해 64 kbps(초당 비트)로 네트워크에 연결될 수 있는 반면, 또다른 엔드 포인트(C)는 단지 8 kbps로 연결될 수 있다.
따라서, MCU는 64kbps로 비트 스트림을 하나의 엔드 포인트(B)로 전송하고, 8kbps로 비트 스트림을 또다른 엔드 포인트(C)로 전송하고, 및 각각의 엔드 포인트에 대해 비트 스트림을 전송한다. 현재, MCU는 제 1 엔드포인트(A)로부터의 비트 스트림을 디코딩하고, 즉, 그것을 다시 시간 영역으로 변환시킨다. 그런다음, MCU는, 적절한 비트 스트림이 자신들에게 전송될 수 있도록 하기위해 모든 단일한 엔드 포인트(B, C, D, E, F...)에 대해 개별 스트림을 인코딩한다. 명백하게, 이러한 접근 방식은 다수의 연산 리소스를 필요로하고, 신호 지연을 도입하고, 수행된 트랜스 코딩에 기인한 신호 품질을 열화시킨다.
손실된 패킷 처리는 보다 용도가 많고 개선된 오디오 코딩 기술이 사용될 수 있는 또다른 분야이다. 예를 들면, 화상 회의 또는 VoIP 통화에서, 일반적으로 패킷당 20밀리초의 오디오를 가진 패킷으로 코딩된 오디오 정보가 전송된다. 패킷은 전송하는 동안 손실될 수 있고, 손실된 오디오 패킷은 수신된 오디오에서 갭을 가져올 수 있다. 네트워크에서 패킷 손실을 다루는 한가지 방식은 여러회, 즉 4회, 패킷(즉, 비트 스트림)을 전송하도록 하는 것이다. 이들 패킷 중 4개 모두를 손실할 가능성은 훨씬 더 작고, 따라서 갭을 가지는 확률이 작아진다.
그러나, 패킷을 복수회 전송하는 것은 네트워크 대역폭을 4배로 증가시키는 것을 필요로한다. 비용을 최소화하기 위해, 동일한 20ms 시간-영역 신호가 고 비트 전송률(정상 모드에서, 48kbps)로 인코딩되고 더 낮은 비트 전송률(8kbps)로 인코딩된다. 더 낮은(8kbps) 비트 스트림은 복수회 전송된 것이다. 이러한 방식으로, 오리지널이 복수회 전송되었다면, 48*4=192kbps대신에 총 요구되는 대역폭은 48+8*3=72kbps이다. 마스킹 효과에 의해, 48+8*3 안은 네트워크가 패킷 손실을 가질때 스피치 품질의 관점에서 48*4의 안을 거의 유사하게 수행한다. 그러나, 상이한 비트 전송률에서 독립적으로 동일한 20ms 시간 영역 데이터를 인코딩하는 이러한 전통적인 솔루션은 연산 리소스를 요구한다.
마지막으로, 일부 엔드 포인트는 완전한 디코딩을 수행하기에 충분한 연산 리소스를 가지지 못할 수 있다. 예를 들면, 엔드 포인트는 더 느린 신호 프로세서를 가지거나, 또는 신호 프로세서는 다른 태스크를 수행하며 비지가 될 수 있다. 이러한 경우, 엔드포인트가 수신하는 비트 스트림의 일부만을 디코딩하는 것은 유용한 오디오를 산출하지 못할 수 있다. 공지된 바와 같이, 오디오 품질은 일반적으로, 적어도 부분적으로, 디코더가 얼마나 많은 비트를 수신하고 디코딩하는 지에 달려있다.
이러한 이유로, 오디오 및 비디오 회의시 사용하기 위해 스케일러블한 오디오 코덱에 대한 요구가 존재한다.
배경기술에서 설명한 바와 같이, 오디오 회의 애플리케이션에서의 요구사항과 복잡도의 증가는 보다 용도가 많고 개선된 오디오 코딩 기술을 필요로한다. 특히, 오디오 및 비디오 회의시 사용하기 위해 스케일러블한 오디오 코덱에 대한 요구가 존재한다.
분산된 오디오 네트워크(예를 들면 멀티포인트 회의)에서 분산된 믹싱 및/또는 트랜스미터 비드 전송률 조정을 구현하기 위해 스케일러블 오디오 코덱을 이용하는 것이 개시된다. 스케일러블 오디오 코덱은 사용가능한 오디오가 전체 신호의 서브셋으로부터 디코딩될 수 있도록 우선순위가 매겨진 이러한 대역내에서 각각의 오디오 디바이스(예를 들면, 엔드포인트)로부터의 오디오 신호로하여금 하나 이상의 주파수 대역으로 그리고 변환 계수에 대해 분할되도록 한다. 서브셋은 특정 주파수 대역을 삭제하고 및/또는 주파수 대역 내의 특정 계수를 삭제함으로써 생성될 수 있다. 분산된 오디오 네트워크 또는 회의에서의 각각의 오디오 디바이스 또는 엔드포인트에 대해 다양한 규칙을 제공함으로써, 오디오 디바이스 또는 엔드포인트는 오디오 네트워크 또는 회의에 대한 자신의 신호의 중요도를 판정하고, 적절한 비트 전송률을 선택하여, 전체 오디오 네트워크 또는 회의의 대역폭 및/또는 처리 파워를 보존한다.
본 개시물에 따르면, 처리 디바이스용 스케일러블 오디오 코덱은 입력 오디오의 각각의 프레임에 대해 제 1 및 제 2 비트 할당을 판정한다. 제 1 비트는 제 1 주파수 대역에 대해 할당되고, 제 2 비트는 제 2 주파수 대역에 대해 할당된다. 할당은 2개의 대역 사이에서의 에너지 비율에 기초하여 프레임-바이-프레임 기반으로 이루어진다. 각각의 프레임에 대해, 코덱은 양 주파수 대역을 2개 세트의 변환 계수로 변환시키고, 이는 비트할당에 기초하여 양자화되고 그런다음 패킷화된다. 패킷은 그런다음 처리 디바이스를 가지고 전송된다. 추가로, 변환 계수의 주파수 영역은 파워 레벨 및 지각적인 모델링에 의해 판정된 중요도의 순서로 배치될 수 있다. 비트 스트립핑이 발행하면, 수신 디바이스에서의 디코더는 비트가 대역 사이에 할당되고 변환 계수의 영역이 중요도에 의해 순서가 정해지면 적절한 품질의 오디오를 산출할 수 있다.
스케일러블 오디오 코덱은 입력 오디오에 대한 프레임-바이-프레임 기준으로 동적 비트 할당을 수행한다. 프레임에 대한 총 가용한 비트는 저 주파수 대역과 고 주파수 대역 사이에 할당된다. 하나의 배치에서, 저 주파수 대역은 0~14kHz를 포함하는 반면, 고 주파수 대역은 14kHz~22kHz를 포함한다. 주어진 프레임에서의 2개 대역 사이의 에너지 레벨의 비율은 얼마나 많은 가용한 비트가 각각의 대역에 대해 할당되는지를 판정한다. 일반적으로, 저 주파수 대역은 더 많은 가용한 비트가 할당되는 경향을 가진다. 프레임-바이-프레임에 대한 이러한 동적 비트 할당은 오디오 코덱으로 하여금 스피치 음조의 일관된 인식을 위해 전송된 오디오의 인코딩 및 디코딩을 허용한다. 즉, 오디오는 처리하는 동안 발생할 수 있는 극도로 낮은 비트 전송률에서 조차 풀-대역 스피치로서 인식될 수 있다. 이는 적어도 14kHz의 대역폭이 항상 얻어지기 때문이다.
스케일러블 오디오 코덱은 주파수 대역폭을 풀 대역, 즉 22kHz까지 연장시킨다. 전반적으로, 오디오 코덱은 약 10kbps로부터 64kbps까지 스케일러블하다. 10kbps의 값은 상이하고 주어진 구현에 대해 수용할수 있는 코딩 품질을 위해 선택된다. 결과적으로, 개시된 오디오 코덱의 코딩 품질은 고정된 전송률, Siren 14로 알려진 오디오 코덱의 22kHz 버전과 거의 같게 될 수 있다. 28kbps 이상에서, 개시된 오디오 코덱은 22kHz 코덱과 유사하다. 그렇지 않으면, 28kHz 이하에서, 개시된 오디오 코덱은 임의의 전송률에서 적어도 14kHz 대역폭을 가지는 14kHz 코덱과 유사하다. 개시된 오디오 코덱은 스윕(sweep) 톤을 이용하여 선별하여 테스트를 통과하고, 화이트 노이즈는 실제 스피치 신호이다. 그러나, 개시된 오디오 코덱은 기존 Siren 14 오디오 코덱의 현재 요구되는 것의 약 1.5배인 컴퓨팅 리소스 및 메모리 요구사항을 요구한다.
비트 할당에 추가하여, 스케일러블 오디오 코덱은 각각의 주파수 대역에서 각각의 영역의 중요도에 기초하여 비트 재순차화(reordering)를 수행한다. 예를 들면, 저주파수 대역의 프레임은 복수의 영역에서 배치된 변환 계수를 가진다. 오디오 코덱은 이들 영역의 각각의 중요도를 판정하여 중요도의 순서로 대역에 대해 할당된 비트로 영역들을 패킷화한다. 영역들의 중요도를 판정하는 한가지 방식은 가장 높은 파워 레벨을 가진 것에서 가장 작은 것을 가진 것으로 중요도의 순서로 배치하면서, 영역의 파워레벨에 기초하는 것이다. 이러한 판정은 중요도를 판정하기 위해 주변 영역의 가중치를 이용하는 지각적인 모델에 기초하여 확장될 수 있다.
스케일러블 오디오 코덱으로 패킷을 디코딩하는 것은 중요도에 따라 비트 할당 및 재순차화된 주파수 영역을 이용한다. 어떠한 이유에서건 수신된 패킷의 비트 스트림 중 일부가 스트립핑된다면, 오디오 코덱은 먼저 비트 스트림에서 적어도 더 낮은 주파수 대역을 디코딩하고 잠재적으로 비트 스트립핑된 어느 정도 더 높은 주파수 대역으로 디코딩할 수 있다. 또한, 중요도에 대한 대역의 영역의 순서에 의해, 더 높은 파워레벨을 가진 보다 중요한 비트가 먼저 디코딩되고, 보다 덜 스트립핑되는 경향을 가진다.
상술한 바와 같이, 본 개시물의 스케일러블 오디오 코덱은 비트가 인코더에 의해 생성된 비트 스트림으로부터 스트립핑될 수 있도록 하용하는 반면, 디코더가 시간 영역에서 이해가능한 오디오를 생성할 수 있도록 한다. 이러한 이유로, 스케일러블 오디오 코덱은 그 일부가 하기에 기술된 다수의 애플리케이션에서 유용할 수 있다.
하나의 예시에서, 스케일러블 오디오 코덱은 엔드포인트가 네트워크 상태를 수용하기 위해 상이한 비트 전송률에서 비트 스트림을 전송해야하는 무선 네트워크에서 유용할 수 있다. MCU가 사용될 때, 스케일러블 오디오 코덱은 종래 기능에 의해서가 아니라 비트를 스트립핑함으로써 다양한 엔드포인트로 전송하기 위한 상이한 비트 전송률에서의 비트 스트림을 생성할 수 있다. 따라서, MCU는 유용한 오디오를 유지하면서 제 1 엔드포인트로부터의 64kbps 비트 스트림으로부터 비트를 스트립핑함으로써 제 2 엔드포인트에 대해 8kbps 비트 스트림을 얻도록 스케일러블 오디오 코덱을 이용할 수 있다.
대안으로, 인코딩된 오디오 신호의 비트 스트립핑은 송신 엔드포인트가 액티브 제 1 스피커인지와 같은 기타 다른 팩터에 기추하여 송신 엔드포인트에서 발생할 수 있다. 이는 현재 스피치 신호의 에너지 컨텐츠를 판정하는 것과 그것을 이력 값, 다른 엔드포인트로부터의 신호(들)의 현재 에너지, 또는 미리정해진 임계치 중 어느 하나와 비교하는 것에 의한 것을 포함하는 다양한 방식으로 판정될 수 있다. 이러한 기술은 배경 노이즈 등으로부터 스피치를 구별하기 위한 지각적인 모델에 의해 증가 또는 대체될 수 있다.
이러한 경우, 송신 엔드포인트는 모든 회의 참석자가 그 엔드포인트의 더 높은 정의 오디오를 들을수 있도록 하기 위해 풀 비트 스트림(그렇지 않으면 가능한)을 전송할 수 있다. 송신 엔드포인트가 현재 액티브 스피커가 아니라면, 엔드포인트는 그것이 더 낮은 주파수 대역만을 전송하도록 하기 위해 자신의 비트를 "자가-스트립(self-strip)" 할수 있다. 이는 대역폭을 보존하고 또한 MCU(이는 단순히 그것이 수신한 모든것들을 다른 엔드포인트로 중계할 수 있다) 또는 수신 엔드포인트(이는 그 순간에 제 1 초점이 아닌 것에 대한 보다 높은 충실도의 오디오를 디코딩하는 추가적인 리소스를 소비할 필요가 없다)에 대한 연산 요구사항을 감소 시킨다.
또다른 변형에서, 송신 엔드포인트는 단지 자신의 가장 높은 비트 스트림의 모든 비트를 전송할 수 있고, MCU는 회의 참석자 모두에게 전체 비트 스트림을 중계할 수 있다. 그러나, 각각의 개별 수신 엔드포인트는 자신의 필요에 맞도록 비트 스트립핑을 수행할 수 있다. 예를 들면, 연산 리소스를 감소시키기 위해, 수신 엔드포인트는 현재 액티브 스피커에 대해서만 더 높은 주파수 대역을 디코딩하도록 채택할 수 있다. (하기에 기술된 바와 같이 어느 신호가 현재 액티브한 스피커를 포함하고 있는지 다양한 방식으로 판정될 수 있다) 비활성 스피커에 대해, 적절한 품질을 제공하는 것이 회의동안 짧은 응답 또는 코멘트를 하면서 회의의 오디오 품질을 현저하게 열화시키지않기 때문에, 수신 엔드포인트는 더 높은 주파수 대역에 대응하는 비트를 폐기할 수 있다.
스케일러블 오디오 코덱의 사용은 또한 손실된 패킷을 처리할 때 연산 리소스를 절약하는 것을 도울 수 있다. 상술한 바와 같이, 손실된 패킷을 처리하기 위한 일반적인 솔루션은 높고 낮은 비트 전송률(예를 들면, 48kbps 및 8kbps)에서 독립적으로 동일한 20ms 시간 영역 데이터를 인코딩하여, 낮은 품질(8kbps) 비트 스트림이 복수회 전송될 수 있다. 그러나, 스케일러블 오디오 코덱이 사용될 때, 코덱은, 제 2(낮은 품질) 비트 스트림이 제 1(높은 품질) 비트 스트림으로부터 비트를 스트립핑함으로써 얻어지기 때문에, 유용한 오디오를 유지하면서 한 번만 인코딩할 필요가 있다.
마지막으로, 스케일러블 오디오 코덱은 엔드포인트가 풀 디코딩을 하기에 충분한 연산 리소스를 가지지 못했을 경우에 도움이 될 수 있다. 예를 들면, 엔도프인트는 더 느린 신호 프로세서를 구비하거나, 또는 신호 프로세서가 다른 태스크를 수행하는데에 바쁠 수 있다. 이러한 상황에서, 엔드포인트가 수신하는 비트 스트림의 일부를 디코딩하는데 스케일러블 오디오 코덱을 사용하면 여전히 유용한 오디오를 산출할 수 있다.
상기 써머리는 본 개시물의 각각의 가능한 실시예 또는 모든 측면들을 요약하기 위한 의도는 아니다.
도 1a는 변환 코딩 코덱의 인코더를 도시한다.
도 1b 변환 코딩 코덱의 디코더를 도시한다.
도 2a는 본 개시물에 따른 인코딩 및 디코딩 기술을 이용하기 위한, 회의 단말과 같은 오디오 처리 디바이스를 도시한다.
도 2b는 본 개시물에 따른 인코딩 및 디코딩 기술을 이용하기 위한, 트랜스미터 및 리시버를 가진 회의 장비를 도시한다.
도 3은 본 개시물에 따른 오디오 코딩 기술의 플로우 차트이다.
도 4a는 보다 상세한 인코딩 기술을 도시하는 플로우 차트이다.
도 4b는 다수의 프레임으로서 샘플링된 아날로그 오디오 신호를 도시한다.
도 4c는 시간 영역에서 샘플링된 프레임으로부터 변환된 주파수 영역에서의 일 세트의 변환 계수를 도시한다.
도 4d는 변환 계수를 2개의 주파수 대역으로 인코딩하는 가용한 비트를 할당하기 위한 8개의 모드를 도시한다.
도 5a-5c는 중요도에 따라 인코딩된 오디오에서의 영역을 순차화시키는 예를 도시한다.
도 6a는 인코딩된 오디오에서의 영역의 중요도를 판정하기 위한 파워 스펙트럼 기술을 도시하는 플로우 차트이다.
도 6b는 인코딩된 오디오에서의 영역의 중요도를 판정하는 지각적인 기술을 도시하는 플로우 차트이다.
도 7은 보다 상세한 디코딩 기술을 도시하는 플로우 차트이다.
도 8은 개시된 스케일러블 오디오 코덱을 이용하여 오디오 패킷 손실을 처리하는 기술을 도시한다.
도 9는 본 개시물의 개시된 스케일러블 오디오 기술이 분산된 오디오 믹싱 및 비트 전송률 조정(regualtion)을 돕는 멀티 포인트 환경을 도시한다.
도 10a는 멀티포인트 환경에서 엔드포인트가 스케일러블 오디오를 이용하는 프로세스를 도시한다.
도 10b는 멀티포인트 환경에서 MCU가 스케일러블 오디오를 이용하는 프로세스를 도시한다.
도 11a-11b는 주어진 엔드포인트가 자신의 소스 상태가 변해야하는 지를 판정할때에 대한 규칙을 도시한다.
도 11c-11d는 주어진 엔드포인트가 액티브 스피치 신호를 가지는 한 시간 인터벌을 리셋하는 것을 계속함으로써 증가된 규칙을 도시한다.
도 12a-12b는 엔드포인트가 자신의 소스 상태를 변화시킬것인지 여부를 판정할 수 있도록 자신의 토크 상태가 변화되었는지를 주어진 엔드포인트가 판정할 때에 대한 규칙을 도시한다.
본 개시물에 따른 오디오 코덱은 스케일러블하고 주파수 대역 사이에 가용한 비트를 할당한다. 추가로, 오디오 코덱은 중요도에 기초하여 이들 대역의 각각의 주파수 영역을 순차화시킨다(order). 비트 스트립핑이 발생하면, 보다 높은 중요도를 가진 주파수 영역이 비트 스트림에서 먼저 패킷화될 것이다. 이러한 방식으로, 보다 유용한 오디오가 비트 스트립핑이 발생하더라도 유지관리될 것이다. 오디오 코덱의 이러한 그리고 기타의 상세가 본문에 개시된다.
본 개시물의 다양한 실시예는 오디오 회의, 비디오 회의, 및 스트리밍 음악 또는 스피치를 포함하는 스트리밍 미디어와 같은 분야에서의 유용한 애플리케이션을 발견할 수 있다. 따라서, 본 개시물의 오디오 처리 디바이스는 오디오 회의 엔드포인트, 화상회의 엔드포인트, 오디오 재생 디바이스, 개인용 음악 플레이어, 컴퓨터, 서버, 텔레커뮤니케이션 디바이스, 휴대전화, PDA, VoIP 텔레포니 장비, 콜센터 장비, 음성 녹음 장비, 음성 메시징 장비 등을 포함할 수 있다. 예를 들면, 특수 목적 오디오 또는 화상회의 엔드포인트가 개시된 기술로부터 효익을 얻을 수 있다. 유사하게, 컴퓨터 또는 기타 디바이스가 데스크탑 회의 또는 디지털 오디오의 송수신에 사용될 수 있고, 이들 디바이스는 개시된 기술로부터 효익을 얻을 수 있다.
A. 회의 엔드포인트
상술한 바와 같이, 본 개시물의 오디오 처리 디바이스는 회의 엔드포인트 또는 단말을 포함할 수 있다. 도 2a는 엔드포인트 또는 단말(100)의 예를 개략적으로 도시한다. 도시된 바와 같이, 회의 단말(100)은 네트워크(125)를 통한 트랜스미터 및 리시버 모두가 될 수 있다. 또한 도시된 바와 같이, 회의 단말(100)은 오디오 기능뿐만 아니라 화상회의 기능을 가질 수 있다. 일반적으로, 단말(100)은 마이크로폰(102)과 스피커(108)을 가지고, 비디오 카메라(103), 디스플레이(109), 키보드, 마우스 등과 같은 다양한 기타 입/출력 디바이스를 구비할 수 있다. 추가로, 단말(100)은 프로세서(160), 메모리(162), 컨버터 전자기기(164), 및 특정 네트워크(125)에 적합한 네트워크 인터페이스(122/124)를 구비한다. 오디오 코덱(110)은 네트워크 단말에 대한 적절한 프로토콜에 따른 표준-기반 회의 참가(conferencing)를 제공한다. 이러한 표준은 전적으로 메모리(162)에 저장되고 프로세서(160) 상에서 실행하는 소프트웨어로, 그리고 전용 하드웨어 상에서 구현되거나, 또는 그의 조합으로 구현될 수 있다.
전송 경로에서, 마이크로폰(102)에 의해 픽업된 아날로그 입력 신호는 컨버터 전자기기(164)에 의해 디지털 신호로 변환되고, 단말의 프로세서(160) 상에서 동작하는 오디오 코덱(110)은 인터넷과 같은 네트워크(125)를 통해 트랜스미터 인터페이스(122)를 통해 전송하기 위한 디지털 오디오 신호를 인코딩하는 인코더를 가진다. 존재한다면, 비디오 인코더(170)를 가지는 비디오 코덱은 비디오 신호를 위해 유사한 기능을 수행할 수 있다.
수신 경로에서, 단말(100)은 오디오 코덱(110)에 결합된 네트워크 리시버 인터페이스(124)를 구비한다. 디코더(250)는 수신된 오디오 신호를 디코딩하고, 컨버터 전자기기(164)가 디지털 신호를 스피커(108)로의 출력을 위한 아날로그 신호로 변환시킨다. 존재한다면, 비디오 디코더(172)를 가진 비디오 코덱은 비디오 신호를 위해 유사한 기능을 수행할 수 있다.
B. 오디오 처리 배치
도 2b는 제 1 오디오 처리 디바이스(100A)(트랜스미터로서 기능함)가 압축된 오디오 신호를 제 2 오디오 처리 디바이스(100B)(본 문맥에서 리시버로서 기능)로 전송하는 배치를 도시한다. 트랜스미터(100A)와 리시버(100B)는 ITU G.722.1(Polycom Siren 7) 또는 ITU G.722.1.C(Polycom Siren 14)에서 사용되는 것과 유사한 변환 코딩을 수행하는 스케일러블 오디오 코덱(110)을 가진다. 본 논의에 대해, 트랜스미터 및 리시버(100A-B)는, 그것들이 다른 유형의 디바이스가 될수 있을지라도, 오디오 또는 화상 회의에서 엔드포인트 또는 단말이 될 수 있다.
동작동안, 트랜스미터(100A)에서 마이크로폰은 소스 오디오를 캡처하고, 전자기기는 그 오디오의 블록 또는 프레임을 샘플링한다. 일반적으로, 오디오 블록 또는 프레임은 입력 오디오의 20-밀리초까지의 범위이다. 이러한 점에서, 오디오 코덱(110)의 포워드 변환은 각각의 오디오 프레임을 일 세트의 주파수 영역 변환 계수로 변환시킨다. 공지된 기술을 이용하여, 이들 변환 계수는 그런다음 양자화기(quantizer)(115)로 양자화되고 인코딩된다.
인코딩되면, 트랜스미터(100A)는 네트워크(125)를 통해 리시버(100B)로 패킷으로 된 인코딩된 변환 계수를 전송하기 위해 자신의 네트워크 인터페이스(120)를 이용한다. IP(인터넷 프로토콜) 네트워크, PSTN(공중 교환 전화망), ISDN(종합 정보 통신망) 등을 포함하는(그러나 그에 한정되지 않음) 임의의 적절한 네트워크가 사용될 수 있다. 이러한 부분에 대해, 전송된 패킷은 임의의 적절한 프로토콜 또는 표준을 이용할 수 있다. 예를 들면, 패킷으로된 오디오 데이터는 컨텐츠 테이블을 따르고, 오디오 프레임을 구비한 모든 옥텟이 단위(unit)로서 페이로드로 첨부될 수 있다. 오디오 프레임과 패킷의 추가적인 상세는 본문에 통합된 ITU-T 권고 G.722.1 및 G.722.1C에 규정되어있다.
리시버(100B)에서, 네트워크 인터페이스(120)는 패킷을 수신한다. 후속하는 역 프로세스에서, 리시버(100B)는 역양자화기(de-quantizer)(115)와 코덱(110)의 역변환을 이용하여 인코딩된 변환 계수를 역양자화(de-quantize)하고 디코딩한다. 역변환은 리시버의 스피커(108)에 대해 출력 오디오를 산출하기 위해 계수를 다시 시간 영역으로 변환시킨다. 오디오 및 비디오 회의에 대해, 리시버(100B) 및 트랜스미터(108)는 회의동안 반복하는 규칙을 가진다.
C. 오디오 코덱 동작
상기 제시된 오디오 코덱(110) 및 오디오 처리 디바이스(100)를 이해하면, 본 발명에 따라 오디오 코덱(110)이 오디오를 어떻게 인코딩 및 디코딩하는지에 대한 논의를 시작하게 된다. 도 3에 도시된 바와 같이, 트랜스미터(110A)에서의 오디오 코덱(110)은 시간 영역에서의 오디오 데이터를 수신하고(블록 310) 오디오 데이터의 오디오 블록 또는 프레임을 취한다(블록 312).
포워드 변환을 이용하여, 오디오 코덱(110)은 오디오 프레임을 주파수 영역에서의 변환 계수로 변환시킨다(블록 314). 상술한 바와 같이, 오디오 코덱(110)은 이러한 변환을 수행하기 위해 Polycom Siren 기술을 이용할 수 있다. 그러나, 오디오 코덱은 MP3, MPEG AAC 등을 포함하는(그러나 그에 한정되지 않음) 임의의 변환 코덱이 될 수 있다.
오디오 프레임을 변환시킬때, 오디오 코덱(110)은 또한 프레임에 대한 스펙트럼 포락선(spectrum envelope)을 양자화 및 인코딩한다(블록 316). 이러한 포락선(envelope)은, 그것이 위상을 상세하게 제공하지는 않을지라도 인코딩되는 오디오의 진폭을 기술한다. 스펙트럼 포락선을 인코딩하는 것은 아주 많은 비트를 필요로 하지 않아서 그것이 용이하게 달성될 수 있다. 그러나, 하기에서 볼 수 있는 바와 같이, 스펙트럼 포락선은 비트가 전송으로부터 스트립핑된다면 오디오 디코딩동안 추후에 사용될 수 있다.
인터넷과 같은 네트워크를 통해 통신할 때, 대역폭이 변하고, 패킷이 손실되고, 및 연결 속도가 상이할 수 있다. 이러한 문제점을 설명하기 위해, 본 개시물의 오디오 코덱(110)은 스케일러블하다. 이러한 방식으로, 오디오 코덱(110)은 추후에 보다 상세히 기술되는 프로세스에서 적어도 2개 주파수 대역 사이에 가용한 비트를 할당한다(블록 318). 코덱의 인코더(200)는 할당된 주파수 대역 각각에서의 변환 계수를 양자화 및 인코딩하고(블록 320) 그런다음 영역의 중요도에 기초하여 각각의 주파수 영역에 대해 비트를 재순차화(reorder)한다(블록 322). 전반적으로, 전체 인코딩 프로세스는 약 20ms의 지연만을 가져올 수 있다.
하기에 보다 상세히 기술되는 비트 중요도 판정은 비트가 다수의 이유로 스트립핑되면 원단(far-end)에서 재생될 수 있는 오디오 품질을 개선시킬 수 있다. 비트를 재순차화한 후에, 원단으로 전송하기 위해 비트가 패킷화된다. 마지막으로, 패킷은 다음 프레임이 처리될 수 있도록 원단으로 전송된다(블록 324).
원단에서, 리시버(100B)는 패킷을 수신하고, 공지된 기술에 따라 패킷들을 핸들링한다. 코덱의 디코더(250)는 그런다음 스펙트럼 포락선을 디코딩하고 역양자화하고(블록 352), 주파수 대역 사이의 할당된 비트들을 판정한다(블록 354). 디코더(250)가 주파수 대역 사이의 비트 할당을 어떻게 판정하는지의 상세는 추후에 제공된다. 비트 할당이 알려지면, 디코더(250)는 변환 계수를 디코딩 및 역양자화하고(블록 356) 각각의 대역에서의 계수에 대한 역변환을 수행한다(블록 358). 궁극적으로, 디코더(250)는 리시버의 스피커에 대한 출력 오디오를 산출하기 위해 오디오를 다시 시간 영역으로 변환시킨다(블록 360).
D. 인코딩 기술
상술한 바와 같이, 개시된 오디오 코덱(110)은 스케일러블하고 적어도 2개의 주파수 대역에 대해 할당된 비트에서 오디오를 인코딩하기 위해 변환 코딩을 이용한다. 스케일러블한 오디오 코덱(100)에 의해 수행되는 인코딩 기술의 상세는 도 4의 플로우 차트에 도시된다. 먼저, 오디오 코덱(110)은 입력 오디오의 프레임을 획득하고(블록 402) 프레임을 변환 계수로 변환시키기 위해 종래기술에 공지된 MLT(Modulated Lapped Transform)를 이용한다. 공지된 바와 같이, 이들 변환 계수의 각각은 크기를 가지고 있고 포지티브 또는 네거티브가 될 수 있다. 오디오 코덱(110)은 또한 상술한 바와 같이 스펙트럼 포락선[0Hz 내지 22kHz)을 양자화하고 인코딩한다(블록 406).
이러한 점에서, 오디오 코덱(110)은 2개의 주파수 대역 사이의 프레임에 대해 비트를 할당한다(블록 408). 이러한 비트 할당은 오디오 코덱(110)이 수신된 오디오 데이터를 인코딩하면서 프레임-바이-프레임 기준에 대해 동적으로 판정된다. 2개 대역 사이에서의 주파수 분할은 가용한 비트 중 제 1 수가 분할 주파수 미만의 낮은 주파수 영역에 대해 할당되고 나머지 비트가 분할 주파수 초과의 더 높은 주파수 영역에 대해 할당되도록 선택된다.
대역에 대해 비트 할당을 판정한 후에, 오디오 코덱(110)은 자신의 각각의 할당된 비트를 가진 낮은 주파수 대역 및 높은 주파수 대역 모두에서 정규화된 계수를 인코딩한다(블록 410). 그런다음, 오디오 코덱(110)은 이들 주파수 대역 모두에서의 각각의 주파수 영역의 중요도를 판정하고(블록 412) 판정된 중요도에 기초하여 주파수 영역을 순차화시킨다(블록 414).
상술한 바와 같이, 오디오 코덱(110)은 Siren 코덱과 유사할 수 있고 시간 영역으로부터의 오디오 신호를 MLT 계수를 가진 주파수 영역으로 변환시킬 수 있다.(FFT(Fast Fourier Transfor) 및 DCT(Discrete Cosine Transform) 등과 같은 기타 유형의 변환이 사용될 수 있지만, 간략화를 위해, 본 개시물은 MLT 변환과 같은 것에 대한 변환 계수를 참조한다.)
샘플링 속도에서, MLT 변환은 약 960 MLT 계수(즉, 매 25Hz마다 하나의 계수)를 산출한다. 이러한 계수는 0, 1, 2, ...의 인덱스로 증가하는 순서에 따른 주파수 영역에 배치된다. 예를 들면, 제 1 영역(0)은 주파수 영역[0 내지 500Hz)를 커버하고, 다음 영역(1)은 [500 내지 1000Hz]를 커버하는 등이다. 일반적으로 수행될 때 증가하는 순서로 주파수 영역을 전송하는 것만이 아니라, 스케일러블 오디오 코덱(110)은 전체 오디오의 컨택스트에서 영역의 중요도를 판정하고, 그런다음 더 높은 중요도에 기초하여 더 낮은 중요도로 영역들을 재순차화한다. 중요도에 기초한 이러한 재배치는 주파수 대역 모두에서 수행된다.
각각의 주파수 영역의 중요도 판정은 다수의 방식으로 수행될 수 있다. 하나의 구현에서, 인코더(200)는 양자화된 신호 파워 스펙트럼에 기초하여 영역의 중요도를 판정한다. 이러한 경우, 더 높은 파워를 가진 영역은 더 높은 중요도를 가진다. 또다른 구현에서, 영역들의 중요도를 판정하기 위해 지각적인 모델이 사용될 수 있다. 지각적인 모델은 인간에 의해 인식되지 않은 이질적인(extraneous) 오디오, 노이즈 등을 없앤다(mask). 이들 기술의 각각은 추후에 보다 상세히 개시된다.
중요도에 기초하여 순차화한 후, 가장 중요한 영역이 먼저 패킷화되고, 다음으로 가장 중요한 영역이 후속되는 등이 수행된다(블록 416). 마지막으로, 순차화되고 패킷화된 영역들은 네트워크를 통해 원단으로 전송될 수 있다(블록 420). 패킷 전송시, 변환 계수에 대한 영역들의 순차화에 대한 인덱싱 정보는 전송될 필요가 없다. 대신에, 인덱싱 정보는 비트 스트림으로부터 디코딩된 스펙트럼 포락선에 기초하여 디코더에서 연산될 수 있다.
비트 스트립핑이 발생하면, 말단을 향해 패킷화된 이들 비트는 스트립핑 될 수 있다. 영역들이 순차화되었기 때문에, 보다 중요한 영역에서의 계수가 먼저 패킷화된다. 따라서, 마지막으로 패킷화되는 덜 중요한 영역은 이것이 발생하면 스트립핑될 가능성이 더 많다. 추가로 또는 대안으로, 계수는 또한 전송 엔드포인트. MCU 또는 수신 엔드포인트 중 하나 이상이 보다 선택가능하게 다른 주파수 대역으로부터 비트를 스트립핑하면서 자신의 전체에서 특정한 주파수 대역을 폐기할 수 있도록 주파수 대역에 의해 소팅될 수 있다.
원단에서, 디코더(250)는 트랜스미터(100A)에 의해 최초로 주어진 순차화된 중요도를 이미 반영한 수신된 데이터를 디코딩 및 변환시킨다. 이러한 방식으로, 리시버(100B)가 패킷을 디코딩하고 시간 영역에서 오디오를 산출할 때, 리시버의 오디오 코덱(110)이 실제로 입력 오디오에서의 보다 중요한 영역의 계수를 수신하고 처리할 가능성이 증가한다. 예측된 바와 같이, 대역폭에서의 변화, 연산 능력, 및 기타 리소스가 오디오가 손실되고, 코딩되지 않는등이 이루어지도록 회의동안 변화할 수 있다.
오디오를 대역 사이에서 비트로 할당하고 중요도에 대해 순차화하면, 오디오 코덱(110)은 보다 유용한 오디오가 원단에서 처리될 가능성을 증가시킬 수 있다. 이러한 모든 관점에서, 오디오 코덱(110)은, 어떠한 이유에서건 오디오 품질 저하가 발생하면, 비트가 비트 스트림(즉, 부분적인 비트 스트림)으로부터 스트립핑될 지라도 유용한 오디오 신호를 생성할 수 있다.
1. 비트 할당
상술한 바와 같이, 본 개시물의 스케일러블 오디오 코덱(110)은 주파수 대역 사이에 가용한 비트들을 할당한다. 도 4b에 도시된 바와 같이, 오디오 코덱(110)은 각각 약 20ms의 연속 프레임(F1, F2, F3 등)에서의 특정 샘플링 주파수(예를 들면, 48kHz)에서 오디오 신호(430)를 샘플링 및 디지털화한다. (실제에서, 프레임들은 오버랩될 수 있다.) 따라서, 각각의 프레임(F1, F2, F3 등)은 약 960 샘플(48kHz x 0.02s = 960)을 가진다. 오디오 코덱(110)은 그런다음 시간 영역으로부터 주파수 영역으로 각각의 프레임(F1, F2, F3 등)을 변환시킨다. 주어진 프레임에 대해, 예를 들면, 변환은 도 4c에 도시된 바와 같은 일 세트의 MLT 계수를 제공한다. 프레임에 대해 약 960 MLT 계수가 있다(즉, 매 25Hz 당 하나의 MLT 계수). 22kHz의 코딩 대역폭에 기인하여, 약 22kHz를 초과하는 주파수를 나타내는 MLT 변환 계수는 무시될 수 있다.
0 내지 22kHz의 주파수 영역에서의 변환 계수의 세트는 인코딩된 정보가 패킷화되고 네트워크를 통해 전송될 수 있도록 인코딩되어야 한다. 하나의 배치에서, 오디오 코덱(110)은 최대 전송률로 풀-대역 오디오 신호를 인코딩하도록 구성되고, 이는 64kbps가 될 수 있다. 그러나, 본문에 기술된 바와 같이, 오디오 코덱(110)은 2개 주파수 대역 사이에서 프레임을 인코딩하기 위해 가용한 비트들을 할당한다.
비트 할당을 위해, 오디오 코덱(110)은 제 1 대역 [예를 들면, 0 내지 12kHz]와 제 2 대역 [예를 들면, 12kHz 내지 22kHz] 사이에서 총 가용한 비트를 분할할 수 있다. 2개 대역 사이에서의 12kHz의 분할 주파수는 주로 스피치 음조 변화 및 대상 테스트에 기초하여 선택될 수 있다. 다른 분할 주파수가 주어진 구현에 대해 사용될 수 있다. 추가로, 보다 많은 대역이 제공될 수 있다.
총 가용 비트 분할은 2개 대역 사이의 에너지 비율에 기초한다. 하나의 예시에서, 2개 대역 사이에서 분할하기 위한 4개의 가능한 모드가 있을 수 있다. 예를 들면, 64kbps의 총 가용 비트가 하기와 같이 분할 될 수 있다:
4개 모드 비트 할당 예시
모드 12kHz 미만의 신호에
대한 할당
12kHz 초과의 신호에
대한 할당
총 가용 대역폭(kbps)
0 48 16 64
1 44 20 64
2 40 24 64
3 36 28 64
원단으로 전송된 정보에서의 이들 4개의 가능성을 나타내는 것은 인코더(200)가 전송 비트 스트림에서 2 비트를 사용하는 것을 요구한다. 원단 디코더(250)는 수신시 주어진 프레임에 대해 비트 할당을 판정하기 위해 이들 전송된 비트로부터의 정보를 이용할 수 있다. 비트 할당을 알면, 디코더(250)는 그런다음 이러한 판정된 비트 할당에 기초하여 신호를 디코딩할 수 있다.
도 4c에 도시된 또다른 배치에서, 오디오 코덱(110)은 제 1 대역(LoBand)(440)[0 내지 14kHz 및 제 2 대역(HiBand)(450)[14kHz 내지 22kHz] 사이에 총 가용 비트를 분할함으로써 비트를 할당하도록 구성된다. 다른 값들이 실시예에 따라 사용될 수 있지만, 14kHz의 분할 주파수가 스피치/음악, 노이즈/클린, 남성 음성/여성 음성 등의 관점에서 주관적 청취 품질에 기초하여 선호될 수 있다. 14kHz에서의 신호를 HiBand와 LoBand로 분할하는 것은 스케일러블 오디오 코덱(110)으로하여금 기존 Siren 14 오디오 코덱과 호환하도록 한다.
이러한 배치에서, 프레임은 여덟개(8)의 가능한 분할 모드로 프레임-바이-프레임 기준으로 분할될 수 있다. 8개의 모드(bit_split_mode)는 2개 대역(440/450) 사이의 에너지 비율에 기초한다. 여기서, 저주파수 대역(LoBand)에 대한 에너지 또는 파워값은 LoBandsPower로서 지정되는 반면, 고주파수 대역(HiBand)에 대한 에너지 또는 파워값은 HiBandsPower로서 지정된다. 주어진 프레임에 대한 특정 모드(bit _ split _ mode)는 하기와 같이 판정된다:
Figure 112012064188824-pct00001
Figure 112012064188824-pct00002
여기서 저주파수 대역에 대한 파워값(LoBandsPower)은
Figure 112012064188824-pct00003
으로서 연산되고, 여기서 영역 인덱스 i=0, 1, 2....25이다(각각의 영역의 대역폭은 500Hz이기 때문에, 대응하는 주파수 영역은 0Hz 내지 12,500Hz가 된다). 기존 Siren 코덱에 가용한 것으로 미리 정의된 표가 quantized_region_power[i]의 값을 얻기위해 각각의 영역의 파워를 양자화하는 데에 사용될 수 있다. 그의 일부에 대해, 고주파수 대역에 대한 파워값(HiBandsPower)은 유사하게 연산되지만, 13kHz 내지 22kHz 주파수 범위를 이용한다. 따라서, 신호 스펙트럼이 14kHz에서 분할될지라도, 본 비트 할당 기술에서의 분할 주파수는 실제로는 13 kHz이다. 이는 스윕 사인파 테스트(sweep sine wave test)를 통과하기 위해 수행된다.
2개 주파수 대역 440/450에 대한 비트 할당은 그런다음 상술한 바와 같은 대역 파워값의 에너지 비율로부터 판정되는 bit _ split _ mode에 기초하여 연산된다. 특히, HiBand 주파수 대역은 총 가용한 64kbps의 (16+4*bit _ split _ mode)kbps를 얻는 반면, LoBand 주파수 대역은 총 64kbps의 나머지 비트를 얻는다. 이는 8개 모드에 대해 하기의 할당으로 분할된다:
8개 모드의 비트 할당의 예
모드 14kHz 미만의 신호에
대한 할당
14kHz 초과의 신호에
대한 할당
총 가용 대역폭(kbps)
0 48 16 64
1 44 20 64
2 40 24 64
3 36 28 64
4 32 32 64
5 28 36 64
6 24 40 64
7 20 44 64
원단으로 전송되는 정보에 이러한 8개의 가능성을 나타내는 것은 전송 코덱(110)으로 하여금 비트 스트림에서 3비트를 사용하는 것을 요구한다. 원단 디코더(250)는 이들 3개 비트로부터 지시된 비트 할당을 이용하고, 이들 비트 할당에 기초하여 주어진 프레임을 디코딩할 수 있다.
도 4d는 8개의 가능한 모드(0-7)에 대한 비트 할당(460)을 그래프로 나타낸다. 프레임은 20밀리초의 오디오를 가지고 있기 때문에, 64kbps의 최대 비트 율은 프레임당 가용한 총 1280 비트에 대응한다(즉, 64,000 bps x 0.02 s). 다시, 사용된 모드는 2개 주파수 대역의 파워값(474, 475)의 에너지 비율에 따른다. 다양한 비율(470)은 또한 도 4d에 그래픽으로 도시된다.
따라서, HiBand의 파워값(475)이 LoBand의 파워값(474)의 4배보다 더 크다면, 결정된 bit _ split _ mode는 "7"이 될 것이다. 이는 LoBand에 대한 20kbps(또는 400비트)의 제 1 비트 할당(464)에 대응하고 가용한 64kbps(또는 1280비트)의 HiBand에 대한 44kbps(또는 880비트)의 제 2 비트 할당(465)에 대응한다. 또다른 예시로서, HiBand의 파워값(464)이 LoBand의 파워값(465)의 절반 보다 크지만 LoBand의 파워값(464)의 1 배보다 작다면, 결정된 bit _ split _ mode는 "3"이 될 것이다. 이는 LoBand에 대한 36kbps(또는 720비트)의 제 1 비트 할당(464)에 대응하고 가용한 64kbps(또는 1280비트)의 HiBand에 대한 28kbps(또는 560비트)의 제 2 비트 할당(465)에 대응한다.
비트 할당의 이러한 2개의 가능한 형태로부터 볼 수 있듯이, 2개 주파수 대역 사이에 비트를 어떻게 할당할지를 결정하는 것은 주어진 구현에 대한 다수의 상세한 사항에 달려있고, 이들 비트 할당 안은 예시라는 것을 의미한다. 2개 이상의 주파수 대역이 주어진 오디오 신호의 비트 할당을 보다 정교하게 하기위해 비트 할당에 포함될 수 있다는 것 또한 생각할 수 있다. 따라서, 본 개시물의 전체 비트 할당과 오디오 인코딩/디코딩은 2개 이상의 주파수 대역과 본 개시물의 교안에 주어진 다소간의 분할 모드를 커버하기 위해 확장될 수 있다.
2. 재순차화
상술한 바와 같이, 비트 할당에 추가하여, 개시된 오디오 코덱(110)은 보다 중요한 영역들이 먼저 패킷화되도록 보다 중요한 영역에서의 계수들을 재순차화한다. 이러한 방식으로, 보다 중요한 영역들은 통신 문제에 기인하여 비트들이 비트 스트림으로부터 스트립핑될 때 제거될 가능성이 보다 낮다. 예를 들면, 도 5a는 비트 스트림(500)으로의 영역들의 종래 패킷화 순서를 도시한다. 상술한 바와 같이, 각각의 영역은 대응하는 주파수 영역에 대한 변환 계수를 가진다. 도시된 바와 같이, 주파수 영역 [0 내지 500Hz)에 대한 제 1 영역 "0"은 이러한 종래 배치에서 먼저 패킷화된다. [500 내지 1000Hz]를 커버하는 다음 영역 "1"이 그 다음에 패킷화되고, 이러한 프로세스는 마지막 영역이 패킷화될 때까지 반복된다. 결과는 주파수 영역 0, 1, 2, ... N의 증가하는 순서로 배치된 영역을 가진 종래 비트 스트림(500)이다.
영역의 중요도를 판정하고 그런다음 보다 중요한 영역을 비트 스트림에서 먼저 패킷화함으로써, 본 개시물의 오디오 코덱(110)은 도 5b에 도시된 바와 같은 비트 스트림(510)을 산출한다. 여기서, 가장 중요한 영역(그의 주파수 범위에 관계없이)이 먼저 패킷화되고 제 2의 가장 중요한 영역이 그에 후속한다. 이러한 프로세스는 가장 덜 중요한 영역이 패킷화 될 때까지 반복된다.
도 5c에 도시된 바와 같이, 다수의 이유로 비트가 비트 스트림(510)으로부터 스트립핑될 수 있다. 예를 들면, 비트는 비트 스트림의 전송 또는 수신시 사라질 수 있다(dropped). 그러나, 나머지 비트 스트림은 여전히 유지된 이들 비트까지 디코딩 될 수 있다. 비트가 중요도에 기초하여 순차화되기 때문에, 가장 덜 중요한 영역에 대한 비트(520)는 발생할 경우 가장 잘 스트립핑되는 것이다. 마지막으로, 전체 오디오 품질은 비트 스트립핑이 도 5c에서 명시된 것처럼 재순차화된 비트 스트림(510) 상에 발생할 때조차 유지될 수 있다.
3. 중요도 판정을 위한 파워 스펙트럼 기술
상술한 바와 같이, 코딩된 오디오에서의 영역의 중요도를 판정하는 하나의 기술은 영역들을 순차화하기 위해 영역의 파워 신호를 이용한다. 도 6a에 도시된 바와 같이, 개시된 오디오 코덱(110)에 의해 사용되는 파워 스펙트럼 모델(600)이 각각의 영역(즉, 영역 0 [0 내지 500Hz], 영역 1 [500 내지 1000Hz] 등)에 대한 신호 파워를 연산한다(블록 602). 이를 수행하기 위한 한가지 방법은 오디오 코덱(110)에 대해 주어진 영역에서의 변환 계수 각각의 제곱의 합을 연산하고 이를 주어진 영역에 대한 신호 파워에 이용하는 것이다.
주어진 주파수 대역의 오디오를 변환 계수(예를 들면, 도 4의 블록(410)에서 수행된 바와 같이)로 변환한 후에, 오디오 코덱(110)은 각각의 영역에서의 계수의 제곱을 연산한다. 현재 변환에 대해, 각각의 영역은 500Hz를 커버하고 각각 25Hz를 커버하는 20개의 변환 계수를 가진다. 주어진 영역에서의 이들 20개의 변환 계수의 제곱의 합은 상기 영역에 대한 파워 스펙트럼을 산출한다. 이는 대상이 되는 대역에서의 각각의 영역에 대해 파워 스펙트럼 값을 연산하도록 해당 대역에서의 각각의 영역에 대해 수행된다.
영역에 대한 신호 파워가 연산되면(블록 602), 신호 파워들이 양자화된다(블록 603). 그런다음 모델(600)은 파워-감소 순서로 영역들을 소팅하고, 각각의 대역에서 가장 높은 파워 영역을 가지고 시작하고 가장 낮은 파워 영역을 가지고 종료한다(블록 604). 마지막으로, 오디오 코덱(110)은 정해진 순서로 계수에 대해 비트를 패킷화함으로써 모델(600)을 완성한다(블록 606).
마지막으로, 오디오 코덱(110)은 다른 영역에 비교한 영역의 신호 파워에 기초하여 영역의 중요도를 판정한다. 이러한 경우, 더 높은 파워를 가진 영역들은 더 높은 중요도를 가진다. 마지막으로 패킷화된 영역이 전송 프로세스에서 무슨 이유에서건 스트립핑되면, 더 큰 파워 신호를 가진 이러한 영역들이 먼저 패킷화되고 스트립핑되지 않을 유용한 오디오를 포함할 가능성이 더 많다.
4. 중요도 판정을 위한 지각적인 기술
상술한 바와 같이, 코딩된 신호에서의 영역의 중요도를 판정하는 또다른 기술은 지각적인 모델(650)을 이용하는 것이고, 이의 예시는 도 6b에 도시된다. 먼저, 지각적인 모델(650)은 2개 대역 각각에서의 각각의 영역에 대해 신호 파워를 연산하고, 이는 상술한 것과 매우 동일한 방식으로 수행될 수 있고(블록 652), 그런다음 상기 모델(650)은 신호 파워를 양자화한다(블록 653).
모델(650)은 그런다음 각 영역에 대한 변조된 영역 파워 값(즉, modified_region_power)을 정의한다(블록 654). 변조된 영역 파워값은 주어진 영역의 중요도를 고려할 때 주변 영역의 효과가 고려되는 가중 합(sum)에 기초한다. 따라서, 지각적인 모델(650)은 하나의 영역에서의 신호 파워가 또다른 영역에서의 양자화 노이즈를 마스킹 할 수 있고 이러한 마스킹 효과는 영역들이 스펙트럼에서 인접할 때 가장 크다는 사실을 이용한다. 따라서, 주어진 영역에 대한 변조된 영역 파워값(즉, modified_region_power(region_index))은 하기와 같이 정의될 수 있다:
SUM(weight[region_index, r]*quantized_region_power(r));
여기서 r=[0...43],
여기서 quantized_region_power(r)는 영역의 연산된 신호 파워이고; 및
여기서 weight[region_index, r]은 스펙트럼 거리|region_index-r|이 증가하면서 감소하는 고정된 함수이다.
따라서, 지각적인 모델(650)은 가중 함수가 하기와 같이 정의되면 도 6a의 것으로 감소한다:
여기서, r= region_index일 때, weight(region_index, r)=1
여기서, r!= region_index일 때, weight(region_index, r)=0.
상술한 바와 같이 변조된 영역 파워값을 연산한 후에, 지각적인 모델(650)은 감소하는 순서로 변조된 영역 파워값에 기초하여 영역들을 소팅한다(블록 656). 상술한 바와 같이, 가중치 부여를 수행함으로써, 특히 영역들이 서로 스펙트럼에서 인접할 때 하나의 영역에서의 신호 파워는 또다른 영역에서의 양자화 노이즈를 마스킹 할 수 있다. 오디오 코덱(110)은 그런다음 정해진 순서로 영역에 대해 비트를 패킷화함으로써 모델(650)을 완성한다(블록 658).
5. 패킷화
상술한 바와 같이, 개시된 오디오 코덱(110)은 낮은 주파수 대역 및 높은 주파수 대역에 사용된 특정한 비트 할당의 상세가 원단 디코더(250)로 전송될 수 있도록 비트를 인코딩하고 그것들을 패킷화 한다. 더구나, 스펙트럼 포락선은 패킷화된 2개 주파수 대역에서의 변환 계수에 대해 할당된 비트와 함께 패킷화된다. 하기의 표는 인접 단에서 원단으로 전송되는 주어진 프레임에 대한 비트 스트림에서 비트가 어떻게 패킷화되는지를(제 1 비트에서 마지막 비트까지) 도시한다.
패킷화 모델
분할 모드 LoBand 주파수 HiBand 주파수
split_mode에 대해 3비트
(총 8모드)
증가하는 영역 순서로된 포락선에 대한 비트 재순차화시
정규화된 계수에 할당된 비트
증가하는 영역 순서로된 포락선에 대한 비트 재순차화시
정규화된 계수에 할당된 비트
상기와 같이, 특정 비트 할당을 지시하는 3개의 비트(8개의 가능한 모드 중에서)가 프레임에 대해 먼저 패킷화된다. 다음으로, 낮은 주파수 대역(LoBand)이 본 대역의 스펙트럼 포락선에 대해 먼저 비트를 패킷화함으로써 패킷화된다. 일반적으로, 포락선은 그것이 진폭 정보를 포함하지만 위상을 포함하지 않기 때문에 인코딩되기 위해 다수의 비트를 필요로하지 않는다. 포락선에 대해 비트를 패킷화한 후에, 특정한 할당된 수의 비트가 낮은 주파수 대역(LoBand)의 정규화된 계수에 대해 패킷화된다. 스펙트럼 포락선에 대한 비트는 단지 자신의 일반적인 증가하는 순서에 기초하여 패킷화된다. 그러나, 저주파수 대역(LoBand)계수에 대해 할당된 비트는 그것들이 상술한 바와 같이 중요도에 따라 재순차화되면서 패킷화된다.
마지막으로, 상기에서 볼수 있는 바와 같이, 고주파수 대역(HiBand)은 먼저 이러한 대역의 스펙트럼 포락선에 대한 비트를 패킷화하고 그런다음 동일한 형태로 HiBand 주파수 대역의 정규화된 계수에 대해 특정한 할당된 수의 비트를 패킷화함으로써 패킷화된다.
E. 디코딩 기술
도 2a에서 설명한 바와 같이, 개시된 오디오 코덱(110)의 디코더(250)는 오디오 코덱(110)이 출력 오디오를 산출하기 위해 계수들을 다시 시간 영역으로 변환시킬 수 있도록 패킷이 수신될 때 비트를 디코딩한다. 이러한 프로세스는 도 7에 상세히 도시된다.
먼저, 리시버(도 2b의 100B)는 비트 스트림에서 패킷을 수신하여 공지된 기술을 이용하여 패킷을 핸들링한다(블록 702). 패킷 송신시, 예를 들면, 트랜스미터(100A)는 전송된 패킷에 포함된 시퀀스 번호를 생성한다. 공지된 바와 같이, 패킷은 트랜스미터(100A)로부터 리시버(100B)로 네트워크(125)를 통해 상이한 경로를 통과하고, 패킷은 가변 시간에 리시버(100B)에 도달할 수 있다. 따라서, 패킷이 도착하는 순서는 랜덤하게 될 수 있다. "지터"라고 하는 이러한 도착시 가변 시간을 핸들링하기 위해, 리시버(110B)는 리시버의 인터페이스(120)에 결합된 지터 버퍼(도시되지 않음)를 구비한다. 일반적으로, 지터 버퍼는 한번에 4개 이상의 패킷을 유지한다. 따라서, 리시버(100B)는 자신의 시퀀스 번호에 기초하여 지터 버퍼에서 패킷을 재순차화한다.
비트 스트림(예를 들면, 도 5b의 520)에서의 첫번째 3개 비트를 이용하여, 디코더(250)는 핸들링되는 주어진 프레임의 비트 할당에 대해 패킷을 디코딩한다(블록 704). 상술한 바와 같이, 구성에 따라, 하나의 구현에서 8개의 가능한 비트 할당이 있을 수 있다. 사용된 스플릿을 안다면(첫번째 3개 비트로 지시된 바와 같은), 디코더(250)는 그런다음 각각의 대역에 대해 할당된 비트의 수에 대해 디코딩할 수 있다.
낮은 주파수로 시작하면서, 디코더(250)는 프레임에 대한 낮은 주파수 대역(LoBand)에 대한 스펙트럼 포락선을 디코딩하고 역양자화한다. 그런다음, 디코더(250)는 비트가 수신되고 스트립핑되지 않는한 낮은 주파수 대역에 대한 계수를 디코딩하고 역양자화한다. 따라서, 디코더(250)는 반복적인 프로세스를 진행하고 더 많은 비트가 남았는지를 판정한다(결정 710). 비트가 가용한 한은, 디코더(250)는 낮은 주파수 대역에서의 영역에 대해 정규화된 계수를 디코딩하고(블록 712) 현재 계수값을 연산한다(블록 714). 연산을 위해, 디코더(250)는 coeff = envelop * normalized _ coeff와 같은 변환 계수를 연산하고, 여기서 스펙트럼 포락선의 값은 정규화된 계수값에 의해 곱해진다(블록 714). 이는 모든 비트가 디코딩되고 낮은 주파수 대역에 대해 스펙트럼 포락선 값에 의해 곱해질 때까지 계속한다.
비트가 주파수 영역의 중요도에 따라 순차화되었기 때문에, 비트 스트림이 비트를 스트립핑 했는지 아닌지 여부에 관계없이 디코더(250)는 먼저 비트 스트림에서 가장 중요한 영역을 디코딩하는 경향이 있다. 디코더(250)는 그런다음 2번째로 가장 중요한 영역을 디코딩하고 또 그다음을 디코딩한다. 디코더(250)는 모든 비트가 사용될 때까지 계속한다(결정 710).
모든 비트로 수행되었을 때(비트 스트립핑에 기인하여 원래의 모든 것들이 실제로 인코딩될 수는 없을것이다), 스트립핑된 가장 덜 중요한 영역이 이러한 낮은 주파수 대역에서 신호의 나머지 부분을 완료시키기 위해 노이즈로 채워진다.
비트 스트림이 비트를 스트립핑하면, 스트립핑된 비트에 대한 계수 정보는 손실된다. 그러나, 디코더(250)는 이미 낮은 주파수 대역에 대한 스펙트럼 포락선을 수신하고 디코딩하였다. 따라서, 디코더(250)는 적어도 신호의 진폭은 알지만 그의 위상은 모른다. 노이즈를 채우기 위해, 디코더(250)는 스트립핑된 비트에서 공지된 진폭에 대한 위상 정보를 채운다.
노이즈를 채우기 위해, 디코더(250)는 비트가 부족한 임의의 잔여 영역들에 대한 계수를 연산한다(블록 716). 이들 잔여 영역에 대한 계수는 스펙트럼 포락선의 값에 노이즈를 채운 값(noise fill value)을 곱한 것으로서 연산된다. 이러한 노이즈를 채운 값은 비트 스트립핑에 기인하여 손실된 결여된 영역에 대한 계수를 채우기 위해 사용된 랜덤 값이 될 수 있다. 노이즈로 채움으로써, 단부에서의 디코더(250)는 10kbps와 같은 극도로 낮은 비트 율에서 조차 풀-대역으로서 비트 스트림을 인식할 수 있다.
낮은 주파수 대역을 핸들링한 후에, 디코더(250)는 높은 주파수 대역(HiBand)에 대한 전체 프로세스를 반복한다(블록 720). 따라서, 디코더(250)는 HiBand의 스펙트럼 포락선을 디코딩하고 역양자화하며, 비트에 대한 정규화된 계수를 디코딩하고, 비트에 대한 현재 계수값을 연산하고, 및 비트가 부족한 나머지 영역에 대한 노이즈를 채운 값의 계수를 연산한다(스트립핑되면).
디코더(250)가 LoBand 및 HiBand 모두에서의 모든 영역에 대해 변환 계수를 판정하고 스펙트럼 포락선으로부터 유도된 영역의 순차화를 알면, 디코더(250)는 프레임을 시간 영역으로 변환시키기 위한 변환 계수에 대한 역변환을 수행한다(블록 722). 마지막으로, 오디오 코덱은 시간 영역에서의 오디오를 산출할 수 있다(블록 724).
F. 오디오 손실 패킷 복구
본문에 개시된 바와 같이, 스케일러블 오디오 코덱(110)은 비트 스트립핑이 발생했을 때 오디오를 핸들링하는데에 유용하다. 추가로, 스케일러블 오디오 코덱(110)은 또한 손실 패킷 복구를 돕는데에 사용될 수 있다. 패킷 손실을 해결하기 위해, 일반적인 접근 방식은 출력을 위해 이미 처리된 미리 수신된 오디오를 단순히 반복함으로써 손실 패킷으로부터의 갭을 채우는 것이다. 이러한 접근방식이 오디오의 손실 갭에 의해 야기된 변형을 감소시킬지라도, 그것은 변형을 제거하지는 못한다. 5%를 초과하는 패킷 손실률에 대해, 인공물이 반복함으로써 미리 전송된 오디오가 현저하게 되도록 한다.
본 개시물의 스케일러블 오디오 코덱(110)은 연속한 패킷에서 오디오 프레임의 고 품질 및 저 품질 버전을 인터레이싱(interlacing)함으로써 패킷 손실을 해결할 수 있다. 그것은 스케일러블 하기 때문에, 오디오 코덱(110)은, 상이한 품질에서 오디오 프레임을 2번 코딩할 필요가 없어서, 연산 비용을 감소시킬 수 있다. 대신에, 저 품질 버전은 단순히 스케일러블 오디오 코덱(110)에 의해 이미 산출된 고 품질 버전으로부터 비트를 스트립핑함으로써 획득된다.
도 8은 트랜스미터(100A)에서 개시된 오디오 코덱(110)이 오디오를 2번 코딩하지 않고서 어떻게 오디오 프레임의 고 품질 및 저 품질 버전을 인터레이싱할 수 있는지를 도시한다. 후속하는 논의에서, "프레임"이라는 용어를 참조하면, 이는 20-ms의 또는 본문에 기술된 바와 같은 오디오 블록을 의미할 수 있다. 그러나, 인터레이싱 프로세스는 송신 패킷, 변환 계수 영역, 비트의 수집 등에 적용할 수 있다. 추가로, 32kbps의 최소 고정 비트 전송률(constant bit rate) 및 8kbps의 더 낮은 품질의 속도에 대한 논의가 있을 지라도, 오디오 코덱(110)에 의해 사용되는 인터레이싱 기술은 다른 비트 전송률에 적용할 수 있다.
일반적으로, 개시된 오디오 코덱(110)은 열화없이 오디오 품질을 달성하기 위해 32kbps의 최소 고정 비트 전송률을 이용할 수 있다. 패킷은 각각 20-ms의 오디오를 가지기 때문에, 이러한 최소 비트 전송률은 패킷당 640비트에 대응한다. 그러나, 비트 전송률은 때때로 무시할 수 있을 정도의 주관적인 변형을 가지며 8kbps(또는 패킷당 160 비트)로 낮아질 수 있다. 이는, 640비트로 인코딩된 패킷이 160비트만으로 인코딩된 이러한 간헐적인 패킷으로부터의 코딩 변형을 마스킹하는 것으로 보이기 때문에 가능할 수 있다.
이러한 프로세스에서, 트랜스미터(100A)에서의 오디오 코덱(110)은 32kbps의 최소 비트 전송률로 주어진 각각의 20-ms 패킷에 대해 640비트를 이용하여 오디오의 현재 20-밀리초 프레임을 인코딩한다. 패킷의 잠재적인 손실을 처리하기 위해, 오디오 코덱(110)은 각각의 미래의 프레임에 대해 보다 낮은 품질의 160비트를 이용하여 오디오의 다수(N)의 미래의 프레임을 인코딩한다. 프레임을 2번 인코딩하는 것이 아니라, 오디오 코덱(110)은 대신에 더 높은 품질의 버전으로부터 비트를 스트립핑함으로써 더 낮은 품질의 미래의 프레임을 생성한다. 일부 전송 오디오 지연이 도입될 수 있기 때문에, 코딩될 수 있는 가능한 낮은 품질의 프레임 수는, 트랜스미터(100A)에 추가적인 오디오 지연을 부가할 필요없이, 예를 들면 N=4로 제한될 수 있다.
이러한 단계에서, 트랜스미터(100A)는 그런다음 고 품질 비트와 저 품질 비트를 단일 패킷으로 결합시키고 그것을 리시버(100B)로 전송한다. 도 8에 도시된 바와 같이, 예를 들면, 제 1 오디오 프레임(810a)은 32kbps의 최소 고정 비트 전송률에서 인코딩된다. 제 2 오디오 프레임(810b)은 또한 32kbps의 최소 고정 비트 전송률에서 인코딩되지만, 또한 160비트의 저품질에서 인코딩된다. 본문에 개시된 바와 같이, 이러한 더 낮은 품질의 버전(814b)은 실제로 이미 인코딩된 더 높은 품질의 버전(812b)으로부터 비트를 스트립핑함으로써 달성된다. 개시된 오디오 코덱(110)이 영역들의 중요도를 소팅한다면, 더 높은 품질의 버전(812b)을 더 낮은 품질의 버전(812a)으로 스트립핑한 비트는 실제로 이러한 더 낮은 품질의 버전(814b)에서 조차 일부 유용한 품질의 오디오를 유지할 수 있다.
제 1 인코딩된 패킷(820a)을 생성하기 위해, 제 1 오디오 프레임(810a)의 고품질 버전(812a)이 제 2 오디오 프레임(810b)의 더 낮은 품질의 버전(814b)과 결합된다. 이러한 인코딩된 패킷(820a)은 상술한 바와 같은 분할된 저 주파수 및 고 주파수 대역에 대한 비트 할당 및 재순차화 기술을 통합할 수 있고, 이들 기술은 더 높은 품질의 버전 및 저 품질 버전(812a/814b) 중 하나 또는 그 모두에 적용될 수 있다. 따라서, 예를 들면, 인코딩된 패킷(820a)은 비트 분할 할당의 표시, 프레임의 고 품질 버전(812a)의 저 주파수 대역에 대한 제 1 스펙트럼 포락선, 저 주파수 대역에 대한 순차화된 영역의 중요도에서의 제 1 변환 계수, 프레임의 고 품질 버전(812a)의 고 주파수 대역에 대한 제 2 스펙트럼 포락선, 고 주파수 대역에 대한 순차화된 영역의 중요도에서의 제 2 변환 계수를 포함할 수 있다. 이는 그런다음 비트 할당 등에 대해 고려하지 않고서 후속하는 프레임의 저 품질 버전(814b)에 의해서만 후속될 수 있다. 대안으로서, 후속하는 프레임의 저 품질 버전(814b)은 스펙트럼 포락선 및 2개 대역 주파수 계수를 포함할 수 있다.
더 높은 품질의 인코딩, 더 낮은 품질로의 비트 스트립핑, 및 인접한 프레임과의 결합은 인코딩 프로세스 전체에 걸쳐 반복된다. 따라서, 예를 들면, 제 3 오디오 프레임(810c)의 더 낮은 품질의 버전(814c)(즉, 비트 스트립핑된 버전)과 결합된 제 2 오디오 프레임(810b)의 더 높은 품질의 버전(810b)을 포함하는 제 2 인코딩된 패킷(820b)이 산출된다.
수신 단부에서, 리시버(100B)는 전송된 패킷(820)을 수신한다. 패킷이 양호하면(즉, 수신되면), 리시버의 오디오 코덱(110)은 오디오의 현재 20-밀리초를 나타내는 640비트를 디코딩하고 그것을 리시버의 스피커로 렌더링한다. 예를 들면, 리시버(110B)에서 수신된 제 1 인코딩된 패킷(820a)이 양호하여 리시버(110B)가 제 1 디코딩된 오디오 프레임(830a)을 산출하기 위해 패킷(820a)에서 제 1 프레임(810a)의 더 높은 품질의 버전(812a)을 디코딩하도록 한다. 수신된 제 2 인코딩된 패킷(820b) 또한 양호할 수 있다. 따라서, 리시버(110B)는 제 2 디코딩된 오디오 프레임(830b)을 산출하기 위해 이러한 패킷(820b)에서 제 2 프레임(810b)의 더 높은 품질의 버전(812b)을 디코딩한다.
패킷이 배드 또는 손실이라면, 리시버의 오디오 코덱(110)은 손실 오디오를 복구하기 위해 수신된 마지막 양호한 품질의 패킷에 포함된 현재 프레임의 더 낮은 품질의 버전(160비트의 인코딩된 데이터)을 이용한다. 도시된 바와 같이, 예를 들면, 제 3 인코딩된 패킷(820c)은 전송하는 동안 손실된다. 종래 수행되는 것과 같이 또다른 프레임의 오디오로 갭을 채우는 것이 아니라, 리시버(100B)에서의 오디오 코덱(110)은 양호했던 이전의 인코딩된 패킷(820b)으로부터 얻어진 손실 프레임(810c))에 대한 더 낮은 품질의 오디오 버전(814c)을 이용한다. 이러한 더 낮은 품질의 오디오는 그런다음 손실 제 3 인코딩된 오디오 프레임(830c)을 재구축하는 데에 사용될 수 있다. 이러한 방식으로, 더 낮은 품질일지라도 실제 손실 오디오가 손실 패킷(820c)의 프레임에 대해 사용될 수 있다. 그러나, 이러한 더 낮은 품질은 마스킹에 기인하여 많은 인지 가능한 변형을 일으키는 것으로 예측되지 않는다.
G. 멀티포인트 환경
상술한 특징에 추가하여, 본문에 기술된 바와 같은 스케일러블 코덱이 분산 오디오 믹싱 및 비트 전송률 조정을 돕기위해 멀티포인트 환경에서 사용될 수 있다. 예를 들면, 도 9에 도시된 예시적인 회의 환경을 고려해보라. 회의는 복수의 엔드포인트(900)(A, B, C, 등)를 구비하며, 이는 상술한 바와 같을 수 있다. 각각의 엔드포인트(900)는 인터넷으로 예시된 회의 네트워크(930)에 연결되지만, 이는 LAN 또는 WAN, PSTN, ISDN, ATM, ADSL, 또는 기타형태의 네트워크 등을 포함하는 공지된 네트워킹 설비 중 임의의 하나 또는 그의 조합을 포함할 수 있다. 또한 멀티포인트 제어 유닛(950)이 네트워크 상에 제공되며, 이는 다방향(multi-way) 호출로 엔드포인트(900)를 연결한다.
각각의 엔드포인트(900)는 스케일러블 오디오 코덱(910)(상술한 바와 유사한)을 구비하고, 스피치 액티비티 검출기(920)(하기에 기술된)를 구비한다. 네트워크(930) 상의 디바이스로서의 MCU(900)는 또한 스케일러블 오디오 코덱(910)과 스피치 액티비티 검출기(920)를 구비할 수 있다. 공지된 바와 같이, 엔드포인트(900)는 네트워크(930)를 통해 인코딩된 오디오 신호를 송수신하고, MCU(950)는 다방향 호출로 다중 엔드포인트(900)에 대한 인코딩된 오디오 신호를 핸들링한다.
상술한 바와 같이, MCU의 스케일러블 오디오 코덱(910)은 종래 실행에 의해서가 아니라 비트를 스트립핑함으로써 다양한 엔드포인트(900)로 송신하기 위해 상이한 비트 전송률의 비트 스트림을 생성할 수 있다. 따라서, MCU(950)는, 여전히 유용한 오디오를 유지하면서, 또다른 엔드포인트(900A)로부터의 더 높은 해상도의 비트 스트림에서 비트를 스트립핑함으로써 하나의 엔드포인트(900B)에 대해 더 낮은 해상도의 비트 스트림을 획득하도록 자신의 스케일러블 오디오 코덱(910)을 이용할 수 있다. 대안으로, 이러한 비트 스트립핑은 전송 엔드포인트(900A)가 액티브한, 제 1 스피커를 가지고 있는지 여부와 같은 일부 다른 팩터에 기초하여 전송 엔드포인트(예를 들면 900A)에서 발생할 수 있다. 이는 현재 스피치 신호의 에너지 컨텐츠를 판정하고 그것을 이력 값, 다른 엔드포인트(900B, 900C)로부터의 신호(들)의 현재 에너지, 또는 미리정해진 임계치에 비교하는 것을 포함하는 다양한 방식으로 판정될 수 있다. 이러한 기술은 스피치를 배경 노이즈 등으로부터 구별하고자하는 지각적인 모델에 의해 증가 또는 대체될 수 있다.
이러한 경우에, 전송 엔드포인트(예를 들면 900A)는 다른 엔드포인트(900B-C)에서의 모든 회의 참석자가 그 전송 엔드포인트(900A)의 더 높은 정의의 오디오를 들을 수 있도록 하기 위해 풀 비트 스트림(다른 것이 가능하다면)을 전송할 수 있다. 전송 엔드포인트(900A)가 현재 액티브한 스피커가 아니라면, 엔드포인트(900A)는 엔드포인트의 스케일러블 오디오 코덱(910)의 선택된 파라미터에 기초하여 오디오 신호를 처리할 수 있다. 예를 들면, 코덱의 파라미터는 다른 대역들에 대해 일부 대역들(즉, 더 낮은 주파수)을 강조하기 위해 오디오 신호를 인코딩할 때 사용되는 상이한 주파수 대역의 비트 할당을 변경하고, 다른 대역들에 대해 일부 대역들을 강조하기 위해 중요도에 기초하여 인코딩할 때 사용되는 주파수 영역의 순서를 변경하고, 및/또는 엔드포인트(900A)가 더 낮은 주파수 대역만 전송하도록 자신의 인코딩된 오디오 신호의 비트 스트림으로부터 비트를 "자가-스트립핑"하도록 설정될 수 있다. 이러한 처리는 대역을 보존하고 또한 MCU(950)(이는 단지 그것이 수신한 모든것을 다른 엔드포인트(900B-C)로 중개할 수 있다) 또는 수신 엔드포인트(900B, 900C)(이는 그 순간에 주된 초점이 아닌 것에 대해 더 높은 충실도(fidelity)의 오디오를 디코딩하는 추가적인 리소스를 소비할 필요가 없다) 중 어느 하나에 대한 연산 요구사항을 감소시킨다.
또다른 변형에서, 전송 엔드포인트(900A)는 단지 자신의 가장 높은 품질의 비트 스트림의 모든 비트를 전송할 수 있을 뿐이고, MCU(950)는 회의의 모든 다른 엔드포인트(900B-C)로 풀 비트 스트림을 중개할 수 있다. 그러나, 각각의 개별 엔드포인트(900B-C)는 자신의 필요를 충족시키기 위해 비트 스트립핑을 수행할 수 있다.
예를 들면, 전송 엔드포인트(900A)는 현재 액티브한 스피커를 가질 수 있다. 따라서, 전송 엔드포인트(900A)는 자신의 풀 비트 스트림을 전송할 수 있고, MCU(950)는 회의의 모든 다른 엔드포인트(900B-C)에 풀 비트 스트림을 중개할 수 있다. 연산 리소스를 감소시키기 위해, 수신 엔드포인트(예를 들면 900B)는 현재 액티브한 스피커를 가진 엔드포인트(예를 들면 900A)로부터 수신된 신호에 대해서만 더 높은 주파수 대역을 디코딩하는 경향이 있을 수 있다.(하기에 기술된 바와 같은 다양한 방식으로 어떤 신호가 현재 액티브 스피커를 포함하는지 결정될 수 있다) 비활성 스피커를 가진 엔드포인트(즉, 900C)로부터의 신호에 대해, 수신 엔드포인트(900B)는 더 높은 주파수 대역에 대응하는 비트를 폐기할 수 있는데, 이적은 적절한 품질이 제공되면 비활성 엔드포인트(900C)가 회의에 끼워넣어지면서(interject) 회의의 오디오 품질을 그다지 열화시키지 않을 것이기 때문이다.
상술한 스케일러블 오디오 코덱(910)의 속성 때문에, 오늘날 수행되는 것과 같이, 각각의 참석자 엔드포인트(900A-C)에 재전송하기 위해 다양한 엔드포인트(900A-C)로부터의 오디오 신호를 믹싱하는 것이 아니라, 전송 엔드포인트(900A)는 오디오 신호의 특정한 컴포넌트만을 또는 그 모두를 MCU(950)로 전송할 수 있고, MCU(950)는 오디오 신호의 특정한 컴포넌트만을 또는 그 모두를 각각의 수신 엔드포인트(900)로 포워딩 할 수 있고, 및/또는 각각의 수신 엔드포인트(900B-C)는 오디오 신호의 특정한 컴포넌트 만을 또는 그 모두를 디코딩할 수 있다. 이러한 다기능성(versatility)은 각각의 엔드포인트(900A-C)로 하여금 자신의 회의의 믹싱을 생성하도록 한다. 정확하게 이것이 어떻게 수행되는 지는 다양할 수 있다.
예를 들면, 각각의 엔드포인트(900A, 900B, 등)는 자신의 전체 오디오 신호를 전송할 수 있고, 여기서 MCU(950)는 그런다음 그것은 그대로, 어떻게 그것이 회의 믹싱에 포함되어야 하는지에 대한 지시를 가지고, 또는 지시 없이, 모든 다른 엔드포인트(900)로 포워딩할 수 있다. 대안으로, 각각의 엔드포인트(900A-C)는 자기 자신에 대해 그것이 특정한 상태에 있는지 여부를 판정할 수 있다. 그런다음 각각의 엔드포인트(900A-C)는 자신의 그리고 다른 엔드포인트의 상태에 기초하여 회의에 대해 자신의 오디오 신호를 처리 및 전송할 수 있고, 및/또는 자신의 그리고 다른 엔드포인트의 상태에 기초하여 회의에 대해 수신된 오디오 신호를 수신 및 처리할 수 있다. 예를 들면, 각각의 엔드포인트(900A-C)는 자기 자신에 대해 그것이 현재 활성 스피커(인코딩동안 비트 할당에 대해 상술한것과 유사한 기술을 이용하여)를 가지는지, 회의의 리얼리즘을 개선하기위해 일정 레벨의 배경 노이즈를 제공할 필요가 있는지, 또는 엔드포인트(900)가 회의의 품질에 영향을 주지않고 완전히 조용한 상태를 유지하는지 여부를 판정할 수 있다. 엔드포인트(900)가 자기 자신이 어떤 상태에 있어야 하는지에 따라, 엔드포인트(900)는 가장 높은 해상도에서의 자신의 오디오 신호를 전송하거나(즉, 어떠한 비트-스트립핑도 없이 모든 주파수 대역을 포함하는), 더 낮은 해상도에서의 자신의 오디오 신호를 전송하거나(즉, 일부 주파수 대역만을 포함하고 및/또는 이들 주파수 대역내에서 비트-스트립핑함으로써), 또는 어떠한 오디오도 전송하지 않을 수 있다. 엔드포인트가 네트워크(930)를 통해 회의를 위해 오디오를 수신하고 있을 때 유사한 이유가 적용될 수 있다.
이러한 실시예가 어떻게 작용하는지를 이해하기 위해, 회의에서의 모든 디바이스(즉, 900, 950)는 디바이스(900, 950) 사이에 전송된 오디오 RTP 패킷에서 상태, 스피치 레벨, 코드 등을 판정 및 전송하도록 하나의 공유 스피치 액티비티 검출기(920)(예를 들면, MCU(950)에 상주하는)를 이용할 수 있다. 대안으로, 각각의 수신 디바이스(즉, 900, 950)는 각각의 인입 오디오 스트림에 적용하는 자신의 스피치 액티비티 검출기(920)를 이용하도록 선택할 수 있어서, 각각의 디바이스(즉, 900, 950)는 각각의 수신된 스트림의 스피치 레벨을 모니터링할 수 있다. 더구나, 각각의 엔드포인트(900)는 또한 자신의 스피치 액티비티 검출기(920)를 이용하여 자신의 스피치 레벨을 모니터링할 수 있다.
이러한 스피치 액티비티 검출기(920)는 다양한 형태를 취할 수 있고, 오디오 신호의 총 에너지를 검사할 수 있고, 오디오 신호의 특정 대역 또는 특정 대역들에서의 에너지 레벨을 검사할 수 있고, 및/또는 스피치를 검출하기 위해 다양한 지각적인 모델을 이용할 수 있다. 그런다음 스피치 레벨과 엔드포인트(900)의 다양한 상태들을 비교함으로써, 가장 높은 해상도(즉, 어떠한 비트-스트립핑도 없이 모든 주파수 대역을 포함하는)에서, 더 낮은 해상도(즉, 일부 주파수 대역만을 포함하고 및/또는 이들 주파수 대역내에서 비트-스트립핑함으로써)에서, 또는 전혀 없는(즉, 어떠한 오디오도 전송하지 않음으로써) 상태에서 오디오 신호를 송수신 하는 것은 연산 리소스와 가용한 대역폭을 보존하는 방식으로 진행될 수 있다.
전체적으로, 도 9의 멀티포인트 환경에서의 회의 믹싱은, 추가적인 레벨의 계층이 제공될 수 있을지라도, 제 1 소스(풀 비트 전송률에서)로서 하나 이상의 엔드포인트(900)를 가지고 그리고 제 2 소스(더 낮은 비트 전송률에서)로서 하나 이상의 엔드포인트(900)를 가지는 것으로 모델링될 수 있다. 이러한 모델에 기초하여, 주어진 엔드포인트(900)는 제 1 소스(이 경우 자신의 오디오는 바람직하게는 풀 비트 전송률로 핸들링될 수 있다) 또는 제 2 소스(이 경우 자신의 오디오는 더 낮은 비트 전송률로 핸들링될 수 있다)로 지정될 수 있다.
모델에 따라, 각각의 엔드포인트(900A-C)는 따라서 2개 소스 상태, 즉, 제 1(P) 또는 제 2 (S) 중 하나를 가질 수 있다. "제 1" 엔드포인트(900)는 개선된 비트 전송률로 전송된 자신의 오디오 신호를 가지고, "제 2" 엔드포인트(900)는 더 낮은 비트 전송률로 전송된 자신의 오디오 신호를 가진다. 추가적인 차이로서, 각각의 엔드포인트(900A-C)는 자신의 소스 상태(P 또는 S)내에서 2개의 토크 상태-즉, 말하는(T) 및 말하지않는(N) 상태 중 하나를 가질 수 있다.
즉, "제 1"(P) 소스 상태를 가지는 엔드포인트(900)는 그 엔드포인트(900), MCU(950), 또는 기타 엔드포인트에 대해 스피치 액티비티 검출기(920)에 의해 분석된 오디오 신호에 따라 "말하는"(T) 또는 "말하지 않는"(N) 중 어느 하나의 토크 상태를 가질 수 있다. 유사하게, "제 2"(S) 소스 상태를 가지는 엔드포인트(900)는 또한 "말하는"(T) 또는 "말하지 않는"(N) 중 어느 하나의 토크 상태를 가질 수 있다. 하기에 상세히 기술된 바와 같이, 제 3 소스 상태 침묵(Q)이 또한 엔드포인트(900)가 오디오 신호를 전송하지 않고 있을 때 사용될 수 있다.
모델의 추가적인 특징으로서, 엔드포인트(900)의 소스 행선지는 시간 제한을 가질수 있고, 이는 엔드포인트의 소스 행선지가 변경되어야 하는지 여부의 결정시 사용될 수 있다. 엔드포인트(900)가 제 1 소스라고 지정될 때, 예를 들면, 엔드포인트(900)는 시간(T1)(제 1 체류시간(Dwell Time)이라고 하는)에 대한 그 결정을 한다. 엔드포인트(900)가 제 2 소스라고 지정될 때, 예를 들면, 엔드포인트(900)는 시간(T2)(제 2 체류시간이라고 하는)에 대한 결정을 한다. 이러한 시간(T1 및 T2)은 회의 제어 프로토콜에 의해 공통값으로 설정될 수 있거나, 또는 그것들은 각각의 엔드포인트(900)에 대해 독립적으로 적용될 수 있다(예를 들면, 다른 엔드포인트(900)들에 대한 지연경로를 고려하기 위해). 시간(T1 및 T2)이 만료되면, 엔드포인트(900)에 대한 소스 상태는 추후에 기술되는 바와 같은 환경에 따라 변화될 수 있다.
이러한 다양한 소스 상태, 토크 상태, 및 체류시간이 주어진다면, 특정 엔드포인트(900)에 대한 회의 믹싱은 다방향 호출동안의 회의 오디오의 역학관계(dynamics)에 따라 네트워크 대역폭과 엔드포인트(900) 및/또는 MCU(950)의 연산 리소스를 보존하기 위해 동적으로 핸들링될 수 있다. 변화하는 오디오 환경을 핸들링하기 위해, 엔드포인트(900) 및/또는 MCU(950)는 가용한 대역폭과 연산 리소스를 보존하기 위해 오디오 신호를 어떻게 처리하는지(즉, 인코딩, 디코딩, 비트 스트립핑 등)를 판정하기 위해 환경에서 하나 이상의 엔드포인트(900)의 상태들을 비교하기 위한 다양한 규칙들을 이용한다. 다양한 규칙들은 도 10a 내지 12b를 참조하여 하기에서 논의된다.
규칙을 검토하기 전에, 엔드포인트(예를 들면 900A)가 멀티포인트 환경에서 스케일러블 오디오를 어떻게 이용하는지를 도시하는 도 10a의 프로세스(1000)에 대해 먼저 논의를 해본다. 엔드포인트(900A)가 오디오의 비트 스트림을 송신 또는 수신하고 있을 때의 회의 동안, 엔드포인트(900A)는 자신의 현재 소스 상태, 토크 상태, 및 체류 시간을 획득한다(블록 1002). 엔드포인트(900A)에 대한 이들 값 중 일부는 메모리에 저장되어 주기적으로 업데이트될 수 있거나, 또는 스피치 액티비티 검출기(220)로 실시간으로 동적으로 판정될 수 있다. 엔드포인트(900A)는 또한 다방향 호출에서 다른 엔드포인트(예를 들면 900B 및 900C)의 소스 상태와 토크 상태를 판정한다(블록 1004). 이들 값은 또한 메모리에 저장되고 주기적으로 업데이트될 수 있다. 또한, 다른 엔드포인트(900B-C)의 상태들은 네트워크(230)를 통해 수신된 비트 스트림으로 통신될 수 있거나 또는 그것들은 엔드포인트(900A)의 검출기(220)에 의해 판정될 수 있다.
어느 쪽이건, 엔드포인트(900A)는 그런다음 다수의 규칙(하기에 기술된)에 기초하여 다양한 상태(자신의 상태와 다른 엔드포인트(900B-C)의 상태를 포함하는)와 자신의 체류 시간을 비교한다(블록 1006). 비교로부터, 엔드포인트(900A)는 자신의(소스 및 토크) 상태 중 하나 이상이 다방향 호출에서의 현재 배치에 따라 변경되는 것이 필요한지를 판정한다(결정 1008). 변경이 요구되면, 엔드포인트(900A)는 적용된 규칙에 따라 하나 이상의 상태를 변경시킨다(블록 1010).
상태가 변경되었는지 여부에 관계없이, 엔드포인트(900A)는 그런다음 오디오 신호를 처리(인코딩, 디코딩, 비트 스트립핑, 등)하기 위해 자신의 스케일러블 오디오 코덱(910)을 채용할 수 있다. 코덱의 파라미터는 엔드포인트의 소스 및 토크 상태에 의해 판정된다(블록 1012). 예를 들면, 오디오 신호 전송시, 엔드포인트(900A)는 그것이 제 1 또는 제 2 소스라면 풀 비트 전송률로 인코딩할 수 있고, 그것이 제 2 소스등이라면 풀 비트 전송률로 인코딩하여 비트 스트립핑할 수 있다. 오디오 신호 수신시, 예를 들면, 엔드포인트(900A)는 전송 엔드포인트가 제 1 소스라면 풀 비트 전송률로 디코딩할 수 있고, 송신 엔드포인트 또는 MCU에 의해 이미 비트 스트립핑된 오디오 신호를 디코딩 할수 있고, 전송 엔드포인트가 제 2 소스 등이라면 비트 스트립핑 및 디코딩할 수 있다. 결국, 엔드포인트(900A)는 네트워크를 통해 인코딩된 오디오 신호를 전송하거나(회의에서의 다른 엔드포인트로 전송하기 위해) 또는 엔드포인트에서 출력을 위해 디코딩된 오디오 신호를 출력한다(회의에서 다른 엔드포인트로부터 수신시)(블록 1014).
도 10b에 도시된 바와 같이, 멀티포인트 환경에서 스케일러블 오디오를 사용하기 위한 MCU(950)에 대한 프로세스(1020)는, MCU(950)가 자신의 상태 등을 판정할 필요가 없을 수 있다는 것을 제외하고는, 엔드포인트(900)와 크게 상이하지 않다. 회의 동안, MCU(950)는 다방향 호출에서의 다양한 엔드포인트(예를 들면 900A-C)의 현재 소스 상태 및 토크 상태를 획득한다. 상술한 바와 같이, 엔드포인트(900A-900C)의 상태는 MCU의 스피치 액티비티 검출기(200)에 의해 판정되거나 또는 네트워크(930)를 통해 수신된 비트 스트림에서 통신될 수 있다.
MCU(950)는 그런다음 다수의 규칙(하기에 기술된)에 기초하여 다양한 상태를 비교한다(블록 1024). 비교로부터, MCU(950)는 하나 이상의 엔드포인트의 (소스 및 토크) 상태가 다방향 호출에서 현재 배치에 따라 변경될 필요가 있는지를 판정한다(결정 1026). 변경이 요구되면, MCU(950)는 적용된 규칙에 따라 하나 이상의 상태를 변경시킨다(블록 1028). MCU(950)는 그런다음 그것이 회의를 위한 오디오의 크기조정(scaling)에 책임이 있는지를 판정할 수 있고(결정 1030), 이는 미리 판정되거나 환경에 기초하여 결정될 수 있다.
크기조정에 대해 책임이 있다면, MCU(950)는 엔드포인트의 소스 및 토크 상태에 의해 결정된 코덱의 파라미터로 오디오 신호를 크기조정하기 위해 자신의 스케일러블 오디오 코덱(910)을 채용한다(블록 1032). 예를 들면, MCU의 코덱(910)은, 바람직하지는 않을지라도, 더 높은 해상도의 신호를 디코딩하고 그것을 엔드포인트(900)로 전송하기 전에 더 낮은 해상도로 재인코딩(re-encode)할 수 있다. 대신에, MCU의 코덱(910)은 바람직하게는 MCU(950)가 그 엔드포인트의 오디오 신호를 크기조정하는 데에 책임이 있을 때 엔드포인트(900)로부터의 이미 인코딩된 비트 스트립으로부터 비트를 스트립핑한다. MCU(950)는 그런다음 회의를 위해 엔드포인트(900A-C)로 크기조정된 오디오 신호를 전송한다. 그러나, 코덱(910)을 채용하는 것이 아니라, 오디오를 크기조정할 의도가 없는 환경에서의 MCU(950)는 단지 현재 오디오 신호를 엔드포인트(900A-C)로 전송만 할 수 있고(즉, 기존 비트 스트림을 중개한다) 엔드포인트(900A-C)에게 오디오 신호 자체를 크기조정하도록 지시를 할수도 있고 지시하지 않을 수도 있다(블록 1034).
멀티포인트 환경에서 스케일러블 오디오가 어떻게 사용될 수 있는지를 이해하면서, 엔드포인트(900A-C)가 다양한 소스 및 토크 상태를 가질 때 회의 동안 적용될 수 있는 다양한 규칙 중 일부를 논의한다.
도 11a-11d는 엔드포인트가 멀티포인트 환경에서 자신의 소스 상태를 다른 엔드포인트의 소스 상태에 비교할 때를 위한 규칙을 도시한다. 규칙은 회의시의 엔드포인트(900) 또는 MCU(950)에 의해 적용될 수 있다.
도 11a의 하나의 규칙의 세트에서, 멀티포인트 회의에서의 주어진 엔드포인트(예를 들면 900A)의 소스 상태와 다른 엔드포인트(예를 들면 900B-C)의 소스 상태가 결정된다(블록 1042). 주어진 엔드포인트 자신의 소스 상태는 저장될 수 있다. 다른 엔드포인트의 소스 상태 또한 저장될 수 있고, 이들 저장된 상태는 회의 동안 비트 스트림의 일부로서 통신된 현재 상태와 비교될 수 있다.
이들 기타 엔드포인트(900B-C)중 하나는 변경된 상태를 가질 수 있고, 다른 엔드포인트 중 하나가 새로운 제 1 소스 상태(P)를 가지는지 여부가 판정된다(블록 1044). 또다른 엔드포인트(예를 들면 900B)가 이러한 새로운 제 1 상태(P)를 가지면, 주어진 엔드포인트(900A) 또한 제 1 상태(P)에 있는지가 판정되고(결정 1046), 주어진 엔드포인트의 제 1 체류시간(T1)이 만료되었는지가 판정된다(결정 1048). 모두가 참일때, 주어진 엔드포인트(900A)는 제 2 소스 상태(S)로 변경된다(블록 1050). 즉, 회의 오디오의 제 1 소스는 미리정해진 시간 후에 오디오의 제 2 소스로 복귀한다. 이러한 규칙은 주어진 엔드포인트(900A)가 여전히 액티브 스피치 신호를 가지고 있는 동안은 제 1 체류 시간(T1)을 리셋하는 것을 계속함으로써 증가될 수 있다. 도 11c를 참조하라.
주어진 엔드포인트의 현재 상태를 판정할 때, 대신에 자신의 상태가 제 2(S)라는 것이 판정될 수 있다(결정 1052). 주어진 엔드포인트의 제 2 체류시간(T2)이 만료되고(결정 1054) 보다 다수의 엔드포인트(900B, C 등)가 제 1(P) 또는 제 2(S) 상태에 있다면(결정 1056), 주어진 엔드포인트(900A)의 소스 상태는 침묵(Q) 상태로 변경된다(블록 1058). 이는 기본적으로 더이상 액티브가 아닌 엔드포인트의 동작을 억제하는 규칙의 변형이다.
도 11b의 또다른 규칙 세트(1060)에서, 멀티포인트 회의에서의 주어진 엔드포인트(예를 들면, 900A)의 소스 상태와 다른 엔드포인트(예를 들면 900B-C)의 소스 상태가 판정된다(블록 1062). 이들 기타 엔드포인트(900B-C) 중 하나는 변경된 상태를 가질 수 있다. 따라서, 다른 엔드포인트(예를 들면 900B)중 하나가 새로운 제 2 소스 상태(S)를 가지는 지에 대한 판정이 이루어진다(블록 1064). 그럴 경우, 대상인 엔드포인트(900A) 또한 제 2 소스 상태(S)에 있고(결정 1066) 그의 제 2 체류 시간(T2)이 만료되었는지를(결정 1068) 검사하기 위한 체크가 이루어진다. 모두가 참일 때, 주어진 엔드포인트(900A)의 소스 상태는 침묵 상태(S)로 변경되어 그것은 오디오를 전혀 전송하지 않게 된다(블록 1070).
도 11c-11d는 어떻게 이전의 규칙 세트(1040 및 1060)가, 주어진 엔드포인트(900A)가 여전히 액티브 스피치 신호를 가지고 있다면 체류 시간(T1 및 T2)을 리셋하는 것을 계속함으로써 증가될 수 있는지를 보여주는 규칙 세트(1080)를 도시한다. 도 11c-11d 모두에서, 스피치는 주어진 엔드포인트(900A)에 대해 검출되고(블록 1082), 그의 타이머가 리셋되고(블록 1084/1085), 및 활성 스피치의 도착이 대기된다(결정 1086). 결국, 체류시간(T1 및 T2)은 검출된 액티브 스피치 없이 만료된다(결정 1088/1089).
도 11c에 도시된 바와 같이, 주어진 엔드포인트의 제 1 체류시간(T1)이 만료되었을 때(결정 1088), 주어진 엔드포인트의 현재 상태는 제 1 상태(P)이고(결정 1090), 또다른 엔드포인트는 제 1 상태(P)이고(블록 1092), 그런다음 주어진 엔드포인트는 제 2 상태(S)로 들어간다(블록 1094). 즉, 미리정해진 시간 후에 제 1 화자가 제 2 화자로 복귀한다.
도 11d에 도시된 바와 같이, 주어진 엔드포인트의 제 2 체류시간(T2)이 만료되었을 때(결정 1089), 주어진 엔드포인트의 현재 상태는 제 2 상태(S)이고, 제 1 상태(P) 또는 제 2 상태(S)에 엔드포인트(900)의 수보다 더 많이 있고(결정 1093), 그런다음 주어진 엔드포인트(900)는 침묵 상태(Q)로 들어간다(블록 109). 즉, 제 2 엔드포인트(900A)가 일부 기간 동안 제 2 엔드포인트였었고 또한 전송하는 선택된 수의 엔드포인트(900B-C)가 있다면, 제 2 엔드포인트(900A)는 침묵 상태로 들어간다. 이는 특정한 크기의 배경만이 적절한 회의 환경을 제공하는데에 필요하기 때문이다. 오디오 믹스에서 제 2 엔드포인트를 가지지 않는것이 부자연스럽게 무익한(sterile) 회의 경험을 제공하지만, 너무 많은 것을 가지는 것은 경험을 증가시키지 못하며 실제로는 그를 감소시킨다.
도 12a-12b는 주어진 엔드포인트(예를 들면, 900A)가 자신의 토크 상태를 변경하여 엔드포인트(900A)의 소스 상태가 변해야 하는지 여부에 대한 판정이 이루어질 수 있을때에 대한 규칙 세트를 도시한다. 도 12a의 규칙 세트에서, 주어진 엔드포인트(예를 들면 900A)의 토크 상태가 판정된다(블록 1202). 이러한 예시에서, 규칙 세트(1200)는 주어진 엔드포인트(900A)가 말하지 않는 상태(N)에서 말하는 상태(T)로 들어갔다는 것을 판정한다(결정 1204). 그럴 경우, 주어진 엔드포인트의 현재 소스 상태가 제 1 상태(P)인지(결정 1206)에 대한 제 1 체크가 이루어져서 엔드포인트(900A)는 제 1 상태(P)로 진행할 수 있다. 즉, 제 1(P) 말하는(T) 엔드포인트는 화자가 말을 하고 있다면 제 1 말하는 엔드포인트를 유지한다.
제 1 상태(P)가 아니라면, 주어진 엔드포인트의 현재 소스 상태가 제 2 상태(S)인지(결정 1210), 현재 제 1 소스(들)은 말하지 않는 상태(N)인지(블록 1212)에 대한 또다른 체크가 이루어진다. 그럴 경우, 주어진 엔드포인트(900A)는 풀 비트 전송률을 이용하여 제 2 상태(S)로부터 제 1 상태(P)로 변경될 수 있다. 즉, 제 1 (주어진) 엔드포인트(900A)는 제 2 상태(S) 엔드포인트로서 작동하지만 제 2 엔드포인트(900B)가 말하는 것을 중지한 후에 말하는 것을 시작하고, 제 1 엔드포인트(900A)가 제 1 화자(P, T)가 된다.
제 1 또는 제 2 상태(P 또는 S)가 아니라면, 주어진 엔드포인트의 현재 소스 상태가 침묵(Q)인지에 대한 최종 체크가 이루어진다(결정 1216). 그럴 경우, 엔드포인트(900A)는 풀 비트 전송률을 이용하여 직접 제 1 상태(P)로 들어갈 수 있다. 따라서, 주어진 엔드포인트(900A)가 침묵이었지만 말하기 시작했다면, 그것은 제 1 말하는 엔드포인트가 된다.
도 12b의 규칙 세트(1220)에서, 주어진 엔드포인트(예를 들면 900A)의 토크 상태가 다시 판정된다(블록 1222). 본 예시에서, 규칙 세트(1220)는 주어진 엔드포인트(900A)가 말하는 상태(T)에서 말하지 않는 상태(N)로 들어갔는지 여부를 판정한다(결정 1224). 그럴 경우, 주어진 엔드포인트의 현재 소스 상태가 제 1 상태(P)인지(결정 1226) 그리고 그의 제 1 체류 시간(T1)이 만료되었는지(결정 1228)에 대한 제 1 체크가 이루어져서 주어진 엔드포인트(900A)는 제 2 소스 상태(S)로 진행할 수 있다(블록 1230). 즉, 주어진 엔드포인트(900A)가 말하는 것을 중단하고 미리정해진 시간이 지나면, 엔드포인트(900A)는 제 1 화자(P, T)로부터 제 2 화자(S, T)로 진행한다.
상술한 다양한 규칙 세트에 대한 변형에서, 침묵 소스 상태(Q)는 삭제될 수 있고, 따라서 모든 엔드포인트(900A-C)는 제 1 소스 상태(P) 또는 제 2 소스 상태(S) 중 어느 하나로 남을 것이다. 이러한 변형에서, 모든 소스(900A-C)가 전체 신호를 제공하기 위해 믹싱될 수 있거나, 또는 MCU(950)는 포워딩하고 엔드포인트(900A-C)에 의해 차후 믹싱하기 위한 특정한 신호만을 선택할 수 있다.
다수의 규칙 세트가 상술되었지만, 이러한 규칙 및 다른 규칙들이 본문에 개시된 스케일러블 오디오 기술에 기초하여 연산 리소스를 감소시키고 대역폭을 보존하기 위해 회의의 엔드포인트(900) 및 MCU(950)에 의해 적용될 수 있다.
본 개시물의 스케일러블 오디오 코덱은 회의 엔드포인트 또는 단말로 사용하도록 기술된다. 그러나, 개시된 스케일러블 오디오 코덱은 엔드포인트, 단말, 라우터, 회의 브릿지, 등과 같은 다양한 회의 컴포넌트에서 사용될 수 있다. 이들 각각에서, 개시된 스케일러블 오디오 코덱은 대역폭, 연산, 및 메모리 리소스를 절감할 수 있다. 유사하게, 개시된 오디오 코덱은 더 낮은 대기시간 및 더 적은 인공물을 고려하여 오디오 품질을 개선시킬 수 있다.
본 개시물의 기술은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 그의 조합으로 구현될 수 있다. 개시된 기술을 실행하는 장치는 프로그래머블 프로세서에 의해 실행하기 위한 기계-판독가능 스토리지 디바이스에서 실체로 구체화된 컴퓨터 프로그램 제품으로 구현될 수 있고; 개시된 기술의 방법의 단계들은 입력 데이터에 대해 연산하고 출력을 생성함으로써 개시된 기술의 기능을 수행하도록 프로그램의 명령어를 실행하는 프로그래머블 프로세서에 의해 수행될 수 있다. 예를 들면, 적절한 프로세서는 범용 및 전용 마이크로프로세서 모두를 포함한다. 일반적으로 프로세서는 판독전용 메모리 및/또는 랜덤 액세스 메모리로부터의 명령어 및 데이터를 수신한다. 일반적으로, 컴퓨터는 데이터 파일 저장을 위한 하나 이상의 대용량 스토리지 디바이스를 포함할 것이고; 이러한 디바이스는 내장 하드 디스크 및 착탈가능한 디스크와 같은 자기 디스크, 자기-광 디스크 및 광학 디스크를 포함한다. 컴퓨터 프로그램 명령어 및 데이터를 실제로 구현하기에 적절한 스토리지 디바이스는, 예를 들면 EPROM, EEPROM, 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스, 내장 하드 디스크 및 착탈가능한 디스크와 같은 자기 디스크, 자기-광 디스크, 및 CD-ROM 디스크를 포함하는, 모든 형태의 비휘발성 메모리를 포함한다. 상술한 것 중 임의의 것은 ASIC(application-specific integrated circuit)에 의해 추가되거나 그에 통합된다.
바람직한 실시예 및 기타 실시예의 상기 기술은 출원인에 의한 발명의 개념의 범위 또는 적용성을 한정 또는 제한하려는 의도를 가지지 않는다. 본문에 포함된 발명의 개념을 개시하는 대신에, 출원인은 첨부된 청구범위에 의해 가능한 모든 특허권을 요구한다. 따라서, 첨부된 청구범위는 하기의 청구범위 또는 그의 등가물의 범위 내에 있는 모든 정도로 모든 변형과 대안을 포함하는 것을 의도한다.

Claims (28)

  1. 회의를 위한 스케일러블 오디오 처리 방법으로서,
    상기 회의에서의 제 1 엔드포인트의 상태를 판정하는 단계로서, 상기 상태는 상기 제 1 엔드포인트가 회의 오디오의 제 1 소스 또는 제 2 소스인 것을 지시하는, 판정 단계;
    하나 이상의 규칙을 상기 상태에 적용함으로써 상기 상태를 평가(assess)하는 단계;
    스케일러블 오디오 코덱으로 상기 회의를 위한 오디오를 처리하는 단계로서, 상기 스케일러블 오디오 코덱의 적어도 하나의 파라미터는 상기 제 1 엔드포인트의 평가된 상태에 기초하여 선택되고, 상기 스케일러블 오디오 코덱으로 상기 오디오를 처리하는 것은 적어도 상기 오디오의 인코딩된 비트 스트림으로부터 비트를 스트립핑(stripping)하는 것을 포함하는, 처리 단계; 및
    상기 회의를 위한 처리된 오디오를 전송하는 단계;
    를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  2. 제 1 항에 있어서, 상기 처리 단계 및 전송 단계는 상기 회의에서의 오디오의 상기 인코딩된 비트 스트림을 수신하는 주어진 엔드포인트에 의해 구현되고, 상기 주어진 엔드포인트는 상기 회의에서의 제 1 엔드포인트 또는 제 2 엔드포인트를 포함하고,
    상기 처리 단계는 상기 인코딩된 비트 스트림을 출력 오디오로 디코딩하는 단계를 포함하고,
    상기 전송 단계는 상기 주어진 엔드포인트에서 출력을 위해 상기 출력 오디오를 전송하는 단계를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  3. 제 1 항에 있어서, 상기 처리 단계 및 전송 단계는 주어진 엔드포인트에서 입력 오디오를 획득하는 상기 회의에서의 상기 주어진 엔드포인트에 의해 구현되고, 상기 주어진 엔드포인트는 상기 회의에서의 제 1 엔드포인트 또는 제 2 엔드포인트를 포함하고,
    상기 처리 단계는 상기 입력 오디오를 상기 인코딩된 비트 스트림으로 인코딩하는 단계를 포함하고,
    상기 전송 단계는 네트워크를 통해 상기 인코딩된 비트 스트림을 전송하는 단계를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  4. 제 1 항에 있어서, 상기 오디오의 상기 처리 단계 및 전송 단계는 네트워크를 통해 상기 회의에서의 주어진 엔드포인트와 통신하는 멀티포인트 제어 유닛에 의해 구현되고, 상기 주어진 엔드포인트는 제 1 엔드포인트 또는 제 2 엔드포인트를 포함하고,
    상기 처리 단계는 상기 네트워크를 통해 상기 오디오의 상기 인코딩된 비트 스트림을 수신하는 단계를 포함하고,
    상기 전송 단계는 상기 네트워크를 통해 상기 인코딩된 비트 스트림을 상기 주어진 엔드포인트로 중계하는 단계를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  5. 제 1 항에 있어서, 상기 상태는 상기 엔드포인트가 침묵(quiet)인 소스인 것을 더 지시하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  6. 제 1 항에 있어서, 상기 스케일러블 오디오 코덱으로 상기 회의용 상기 오디오를 처리하는 단계는 상기 제 1 엔드포인트의 상태가 제 2 소스를 지시할 때 상기 스케일러블 오디오 코덱을 이용하여 상기 오디오의 상기 인코딩된 비트 스트림으로부터 비트를 스트립핑하는 단계를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  7. 제 1 항에 있어서, 상기 스케일러블 오디오 코덱으로 상기 회의용 상기 오디오를 처리하는 단계는 상기 스케일러블 오디오 코덱을 이용하여 상기 오디오의 상기 인코딩된 비트 스트림으로부터 비트를 스트립핑하는 단계를 포함하고, 상기 스케일러블 오디오 코덱의 적어도 하나의 파라미터는 상기 인코딩된 비트 스트림에서의 비트를 스트립핑할 지의 표시를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  8. 제 1 항에 있어서, 하나 이상의 규칙을 상기 상태에 적용시킴으로써 상기 상태를 평가하는 단계는:
    (ⅰ) 상기 상태에서의 상기 제 1 엔드포인트의 제 1 시간 간격이 경과하고 (ⅱ) 상기 회의에서의 제 2 엔드포인트가 제 1 소스의 상태를 가질 때, 제 1 소스로부터 제 2 소스로 상기 상태를 변화시키는 단계; 또는
    (ⅰ) 상기 상태에서의 상기 제 1 엔드포인트의 제 2 시간 간격이 경과하고 (ⅱ) 상기 회의에서의 제 2 엔드포인트가 제 2 소스의 상태를 가질 때, 제 2 소스로부터 침묵인 소스로 상기 상태를 변화시키는 단계;
    를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  9. 제 1 항에 있어서, 하나 이상의 규칙을 상기 상태에 적용시킴으로써 상기 상태를 평가하는 단계는:
    상기 제 1 엔드포인트가 스피치 오디오를 가지지 않은 것으로부터 스피치 오디오를 가지는 것으로 변화할 때 제 1 소스의 상기 상태를 유지하는 단계;
    (ⅰ) 상기 제 1 엔드포인트가 스피치 오디오를 가지지 않은 것으로부터 스피치 오디오를 가지는 것으로 변하고 (ⅱ) 상기 회의에서의 제 2 엔드포인트가 제 1 소스의 상태를 가지고 스피치 오디오를 가지지 않을 때, 제 2 소스로부터 제 1 소스로 상기 상태를 변화시키는 단계; 또는
    상기 제 1 엔드포인트가 스피치 오디오를 가지지 않은 것으로부터 스피치 오디오를 가지는 것으로 변화할 때 침묵인 소스로부터 제 1 소스로 상기 상태를 변화시키는 단계;
    를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  10. 제 1 항에 있어서, 하나 이상의 규칙을 상기 상태에 적용시킴으로써 상기 상태를 평가하는 단계는:
    (ⅰ) 상기 제 1 엔드포인트가 스피치 오디오를 가진 것으로부터 스피치 오디오를 가지지 않은 것으로 변하고 (ⅱ) 상기 상태에서의 상기 제 1 엔드포인트의 제 1 시간 간격이 경과했을 때, 제 1 소스로부터 제 2 소스로 상기 상태를 변화시키는 단계; 또는
    (ⅰ) 상기 제 1 엔드포인트가 스피치 오디오를 가진 것으로부터 스피치 오디오를 가지지 않은 것으로 변하고 (ⅱ) 상기 상태에서의 상기 제 1 엔드포인트의 제 2 시간 간격이 경과했을 때, 제 2 소스로부터 침묵인 소스로 상기 상태를 변화시키는 단계;
    를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  11. 제 1 항에 있어서, 상기 제 1 엔드포인트의 상태를 판정하는 단계는 상기 제 1 엔드포인트의 오디오에서의 스피치의 존재를 검출하는 단계를 포함하고, 상기 상태는 상기 제 1 엔드포인트가 스피치 오디오를 가지는지 또는 스피치 오디오를 가지지 않는지를 더 표시하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  12. 제 1 항에 있어서, 상기 상태를 판정한 후에, 상기 상태에 연관된 시간 간격이 경과했는지를 판정하는 단계를 더 포함하고, 상기 상태를 평가하는 단계는 적어도 상기 시간 간격이 경과한 후에 수행되는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  13. 제 12 항에 있어서, 상기 상태에 연관된 시간 간격은 제 1 소스의 상태 및 제 2 소스의 상태에 대한 개별 시간 간격을 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  14. 제 1 항에 있어서, 상기 스케일러블 오디오 코덱으로 상기 오디오를 처리하는 단계는:
    상기 오디오의 상이한 주파수 대역을 상이한 세트의 변환 계수로 변환 코딩하는 단계; 및
    상기 상이한 세트의 변환 계수를 패킷화하는 단계;
    를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  15. 제 14 항에 있어서, 상기 스케일러블 오디오 코덱의 적어도 하나의 파라미터는 상기 상이한 주파수 대역들에 할당된 복수의 비트 할당을 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  16. 제 15 항에 있어서, 패킷화 단계는 대응하는 비트 할당으로 상기 상이한 세트의 변환 계수를 패킷화하는 것을 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  17. 제 14 항에 있어서, 상기 제 1 소스에 대해 평가된 상태에 연관된 비트 할당은 제 1 주파수들을 갖는 제1 대역을 강조하고, 상기 제 1 주파수들은 제 2 대역의 제 2 주파수들보다 낮은 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  18. 제 14 항에 있어서, 상기 제 2 소스에 대해 평가된 상태에 연관된 비트 할당은 제 1 주파수들을 갖는 제 1 대역의 중요성을 감소시키고(deemphasize), 상기 제 1 주파수들은 제 2 대역의 제 2 주파수들보다 높은 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  19. 제 14 항에 있어서, 상기 스케일러블 오디오 코덱의 적어도 하나의 파라미터는 상기 변환 계수가 배치되는 주파수 영역들을 포함하고, 패킷화는 상기 주파수 영역들의 순차화된 중요도에 기초하여 상이한 세트의 변환 계수를 패킷화하는 것을 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  20. 제 19 항에 있어서, 상기 주파수 영역의 순차화된 중요도는 제 1 에너지 레벨 또는 제 1 주파수들을 가진 제 1 주파수 영역을 강조하고, 상기 제 1 에너지 레벨은 제 2 영역의 제 2 에너지 레벨보다 높고, 상기 제1 주파수들은 상기 제 2 영역의 제 2 주파수들보다 낮은 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  21. 프로그래밍 가능한 제어 디바이스로 하여금 제 1 항 내지 제 20 항 중의 어느 한 항에 따른 스케일러블 오디오 처리 방법을 수행하도록 하는 프로그램 명령어를 저장하는 것을 특징으로 하는 프로그래밍 가능한 저장 디바이스.
  22. 네트워크 인터페이스; 및
    상기 네트워크 인터페이스에 통신가능하게 결합되어 오디오 신호를 획득하고, 스케일러블 오디오 코덱을 구비하여 제 1 항 내지 제 20 항 중의 어느 한 항에 따른 스케일러블 오디오 처리를 수행하도록 구성되는 프로세서;
    를 포함하는 것을 특징으로 하는 처리 디바이스.
  23. 제 22 항에 있어서, 상기 처리 디바이스는: 상기 상태가 판정된 제 1 오디오 디바이스, 분산 오디오 네트워크에서의 멀티포인트 제어 유닛, 또는 분산 오디오 네트워크에서의 제 2 오디오 디바이스 중 하나를 포함하는 것을 특징으로 하는 처리 디바이스.
  24. 제 22 항에 있어서, 분산 오디오 네트워크는 멀티포인트 회의를 포함하고; 제 1 오디오 디바이스가 상기 멀티포인트 회의의 제 1 엔드포인트를 포함하는 것을 특징으로 하는 처리 디바이스.
  25. 스케일러블 오디오 처리 방법으로서,
    분산 오디오 네트워크에서의 제 1 오디오 디바이스의 상태를 판정하는 단계로서, 상기 상태는 상기 제 1 오디오 디바이스가 네트워크 오디오의 제 1 소스 또는 제 2 소스인 것을 표시하는, 판정 단계;
    하나 이상의 규칙을 상기 상태에 적용함으로써 상기 상태를 평가(assess)하는 단계;
    스케일러블 오디오 코덱으로 상기 분산 오디오 네트워크를 위한 오디오를 처리하는 단계로서, 상기 스케일러블 오디오 코덱의 적어도 하나의 파라미터는 상기 제 1 오디오 디바이스의 평가된 상태에 기초하여 선택되고, 상기 스케일러블 오디오 코덱으로 상기 오디오를 처리하는 것은 적어도 상기 오디오의 인코딩된 비트 스트림으로부터 비트를 스트립핑(stripping)하는 것을 포함하는, 상기 처리 단계; 및
    상기 분산 오디오 네트워크를 위한 처리된 오디오를 전송하는 단계;
    를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  26. 제 1 항에 있어서, 상기 처리 단계 및 전송 단계는 상기 회의에서의 오디오의 상기 인코딩된 비트 스트림을 수신하는 주어진 엔드포인트에 의해 구현되고, 상기 주어진 엔드포인트는 상기 회의에서의 제 1 엔드포인트 또는 제 2 엔드포인트를 포함하고,
    상기 처리 단계는 상기 인코딩된 비트 스트림으로부터 비트를 스트립핑(strip)하는 단계 및 상기 스트립핑된 비트 스트림을 출력 오디오로 디코딩하는 단계를 포함하고,
    상기 전송 단계는 상기 주어진 엔드포인트에서 출력을 위해 상기 출력 오디오를 전송하는 단계를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  27. 제 1 항에 있어서, 상기 처리 단계 및 전송 단계는 주어진 엔드포인트에서 입력 오디오를 획득하는 상기 회의에서의 상기 주어진 엔드포인트에 의해 구현되고, 상기 주어진 엔드포인트는 상기 회의에서의 제 1 엔드포인트 또는 제 2 엔드포인트를 포함하고,
    상기 처리 단계는 상기 입력 오디오를 상기 인코딩된 비트 스트림으로 인코딩하는 단계 및 상기 인코딩된 비트 스트림으로부터 비트를 스트립핑하는 단계를 포함하고,
    상기 전송 단계는 상기 스트립핑된 비트 스트림을 네트워크를 통해 전송하는 단계를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
  28. 제 1 항에 있어서, 상기 오디오의 상기 처리 단계 및 전송 단계는 네트워크를 통해 상기 회의에서의 주어진 엔드포인트와 통신하는 멀티포인트 제어 유닛에 의해 구현되고, 상기 주어진 엔드포인트는 제 1 엔드포인트 또는 제 2 엔드포인트를 포함하고,
    상기 처리 단계는 상기 네트워크를 통해 상기 오디오의 상기 인코딩된 비트 스트림을 수신하는 단계 및 상기 인코딩된 비트 스트림으로부터 비트를 스트립핑하는 단계를 포함하고,
    상기 전송 단계는 상기 네트워크를 통해 상기 스트립핑된 비트 스트림을 상기 주어진 엔드포인트로 전송하는 단계를 포함하는 것을 특징으로 하는 스케일러블 오디오 처리 방법.
KR1020127021111A 2010-11-12 2011-11-11 멀티 포인트 환경에서의 스케일러블 오디오 KR101468458B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US41321310P 2010-11-12 2010-11-12
US61/413,213 2010-11-12
PCT/US2011/060398 WO2012065081A1 (en) 2010-11-12 2011-11-11 Scalable audio in a multi-point environment

Publications (2)

Publication Number Publication Date
KR20120109617A KR20120109617A (ko) 2012-10-08
KR101468458B1 true KR101468458B1 (ko) 2014-12-03

Family

ID=46051321

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127021111A KR101468458B1 (ko) 2010-11-12 2011-11-11 멀티 포인트 환경에서의 스케일러블 오디오

Country Status (6)

Country Link
US (1) US8831932B2 (ko)
EP (1) EP2502155A4 (ko)
JP (1) JP2013528832A (ko)
KR (1) KR101468458B1 (ko)
CN (1) CN102741831B (ko)
WO (1) WO2012065081A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149167A1 (en) * 2011-03-31 2015-05-28 Google Inc. Dynamic selection among acoustic transforms
CN103544957B (zh) 2012-07-13 2017-04-12 华为技术有限公司 音频信号的比特分配的方法和装置
US9767815B2 (en) * 2012-12-13 2017-09-19 Panasonic Intellectual Property Corporation Of America Voice audio encoding device, voice audio decoding device, voice audio encoding method, and voice audio decoding method
NO341411B1 (no) * 2013-03-04 2017-10-30 Cisco Tech Inc Virtuelle endepunkter i videokonferanser
US9237238B2 (en) 2013-07-26 2016-01-12 Polycom, Inc. Speech-selective audio mixing for conference
US9210379B2 (en) 2014-02-27 2015-12-08 Google Inc. Displaying a presenter during a video conference
CN106409303B (zh) * 2014-04-29 2019-09-20 华为技术有限公司 处理信号的方法及设备
JP6318904B2 (ja) * 2014-06-23 2018-05-09 富士通株式会社 オーディオ符号化装置、オーディオ符号化方法、オーディオ符号化プログラム
EP3067886A1 (en) * 2015-03-09 2016-09-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder for encoding a multichannel signal and audio decoder for decoding an encoded audio signal
KR102386309B1 (ko) * 2015-06-04 2022-04-14 삼성전자주식회사 전자 장치 및 전자 장치에서의 입출력 제어 방법
US9578283B1 (en) * 2015-12-21 2017-02-21 Avaya Inc. Audio level based management of communication resources
WO2020206344A1 (en) * 2019-04-03 2020-10-08 Dolby Laboratories Licensing Corporation Scalable voice scene media server
US11662975B2 (en) * 2020-10-06 2023-05-30 Tencent America LLC Method and apparatus for teleconference
CN112687273B (zh) * 2020-12-26 2024-04-16 科大讯飞股份有限公司 一种语音转写方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884039A (en) * 1993-10-01 1999-03-16 Collaboration Properties, Inc. System for providing a directory of AV devices and capabilities and call processing such that each participant participates to the extent of capabilities available
US20050254440A1 (en) * 2004-05-05 2005-11-17 Sorrell John D Private multimedia network
US20070201549A1 (en) * 2006-01-11 2007-08-30 Nokia Corporation Backward-compatible aggregation of pictures in scalable video coding
US20070208557A1 (en) * 2006-03-03 2007-09-06 Microsoft Corporation Perceptual, scalable audio compression

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA921988B (en) 1991-03-29 1993-02-24 Sony Corp High efficiency digital data encoding and decoding apparatus
JPH04343591A (ja) * 1991-05-21 1992-11-30 Mitsubishi Electric Corp テレビ会議システム
US5654952A (en) 1994-10-28 1997-08-05 Sony Corporation Digital signal encoding method and apparatus and recording medium
KR100261253B1 (ko) * 1997-04-02 2000-07-01 윤종용 비트율 조절이 가능한 오디오 부호화/복호화 방법및 장치
DE19743662A1 (de) * 1997-10-02 1999-04-08 Bosch Gmbh Robert Verfahren und Vorrichtung zur Erzeugung eines bitratenskalierbaren Audio-Datenstroms
US6351730B2 (en) 1998-03-30 2002-02-26 Lucent Technologies Inc. Low-complexity, low-delay, scalable and embedded speech and audio coding with adaptive frame loss concealment
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
US6934756B2 (en) * 2000-11-01 2005-08-23 International Business Machines Corporation Conversational networking via transport, coding and control conversational protocols
US6952669B2 (en) 2001-01-12 2005-10-04 Telecompression Technologies, Inc. Variable rate speech data compression
JP2002215193A (ja) * 2001-01-18 2002-07-31 Mitsubishi Electric Corp 音声符号切換方法並びに音声符号切換手段及び音声通信端末
US6894715B2 (en) * 2001-06-16 2005-05-17 Eric Harold Henrikson Mixing video signals for an audio and video multimedia conference call
JP4296752B2 (ja) 2002-05-07 2009-07-15 ソニー株式会社 符号化方法及び装置、復号方法及び装置、並びにプログラム
US7283585B2 (en) * 2002-09-27 2007-10-16 Broadcom Corporation Multiple data rate communication system
KR100940531B1 (ko) * 2003-07-16 2010-02-10 삼성전자주식회사 광대역 음성 신호 압축 및 복원 장치와 그 방법
JP2005215502A (ja) * 2004-01-30 2005-08-11 Matsushita Electric Ind Co Ltd 符号化装置、復号化装置、およびこれらの方法
KR100695125B1 (ko) 2004-05-28 2007-03-14 삼성전자주식회사 디지털 신호 부호화/복호화 방법 및 장치
EP3276619B1 (en) * 2004-07-23 2021-05-05 III Holdings 12, LLC Audio encoding device and audio encoding method
JP4936688B2 (ja) * 2005-07-19 2012-05-23 パナソニック株式会社 中継装置、通信端末装置、信号復号化装置、信号処理方法、および信号処理プログラム
JP4396683B2 (ja) 2006-10-02 2010-01-13 カシオ計算機株式会社 音声符号化装置、音声符号化方法、及び、プログラム
US7953595B2 (en) 2006-10-18 2011-05-31 Polycom, Inc. Dual-transform coding of audio signals
US7966175B2 (en) 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
PL2945158T3 (pl) 2007-03-05 2020-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Sposób i układ do wygładzania stacjonarnego szumu tła
EP2019522B1 (en) 2007-07-23 2018-08-15 Polycom, Inc. Apparatus and method for lost packet recovery with congestion avoidance
PL2201566T3 (pl) * 2007-09-19 2016-04-29 Ericsson Telefon Ab L M Połączone, wielokanałowe kodowanie/dekodowanie audio
US8386271B2 (en) 2008-03-25 2013-02-26 Microsoft Corporation Lossless and near lossless scalable audio codec
WO2010070187A1 (en) * 2008-12-19 2010-06-24 Nokia Corporation An apparatus, a method and a computer program for coding
US8428959B2 (en) 2010-01-29 2013-04-23 Polycom, Inc. Audio packet loss concealment by transform interpolation
WO2011145987A1 (en) * 2010-05-18 2011-11-24 Telefonaktiebolaget Lm Ericsson (Publ) Encoder adaption in teleconferencing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884039A (en) * 1993-10-01 1999-03-16 Collaboration Properties, Inc. System for providing a directory of AV devices and capabilities and call processing such that each participant participates to the extent of capabilities available
US20050254440A1 (en) * 2004-05-05 2005-11-17 Sorrell John D Private multimedia network
US20070201549A1 (en) * 2006-01-11 2007-08-30 Nokia Corporation Backward-compatible aggregation of pictures in scalable video coding
US20070208557A1 (en) * 2006-03-03 2007-09-06 Microsoft Corporation Perceptual, scalable audio compression

Also Published As

Publication number Publication date
EP2502155A1 (en) 2012-09-26
JP2013528832A (ja) 2013-07-11
WO2012065081A1 (en) 2012-05-18
CN102741831A (zh) 2012-10-17
KR20120109617A (ko) 2012-10-08
CN102741831B (zh) 2015-10-07
US8831932B2 (en) 2014-09-09
US20120290305A1 (en) 2012-11-15
EP2502155A4 (en) 2013-12-04

Similar Documents

Publication Publication Date Title
KR101468458B1 (ko) 멀티 포인트 환경에서의 스케일러블 오디오
TWI446338B (zh) 可擴縮音訊處理方法及裝置
JP5357904B2 (ja) 変換補間によるオーディオパケット損失補償
KR100998450B1 (ko) 오디오 코딩을 위한 인코더-보조 프레임 손실 은폐 기술
TWI779104B (zh) 多串流音頻寫碼方法、裝置、設備及非暫時性電腦可讀媒體
US8457319B2 (en) Stereo encoding device, stereo decoding device, and stereo encoding method
KR20060131851A (ko) 통신 장치 및 신호 부호화/복호화 방법
WO1993005595A1 (en) Multi-speaker conferencing over narrowband channels
US9984698B2 (en) Optimized partial mixing of audio streams encoded by sub-band encoding
Hiwasaki et al. A G. 711 embedded wideband speech coding for VoIP conferences
Schuller et al. Low delay audio compression using predictive coding
US10242683B2 (en) Optimized mixing of audio streams encoded by sub-band encoding
US8509460B2 (en) Sound mixing apparatus and method and multipoint conference server
CN107113357B (zh) 与语音质量估计相关的改进方法和设备
Barton III et al. Maintaining high-quality IP audio services in lossy IP network environments

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191114

Year of fee payment: 6