KR20210137114A - 회전들의 보간 및 양자화를 통한 공간화된 오디오 코딩 - Google Patents

회전들의 보간 및 양자화를 통한 공간화된 오디오 코딩 Download PDF

Info

Publication number
KR20210137114A
KR20210137114A KR1020217031995A KR20217031995A KR20210137114A KR 20210137114 A KR20210137114 A KR 20210137114A KR 1020217031995 A KR1020217031995 A KR 1020217031995A KR 20217031995 A KR20217031995 A KR 20217031995A KR 20210137114 A KR20210137114 A KR 20210137114A
Authority
KR
South Korea
Prior art keywords
matrix
channels
eigenvectors
current frame
frame
Prior art date
Application number
KR1020217031995A
Other languages
English (en)
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 KR20210137114A publication Critical patent/KR20210137114A/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/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/032Quantisation or dequantisation of spectral components
    • 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
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • 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/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Mathematical Physics (AREA)
  • Stereophonic System (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 0보다 높은 차수의 앰비소닉 표현의 N 채널들 각각에서 연속적인 샘플 프레임들을 시간에 걸쳐 형성하는 오디오 신호들의 압축을 위한 인코딩에 관한 것이며, 이 방법은,
채널들에 기초하여 그리고 현재 프레임에 대해, 채널간 공분산의 행렬을 형성하고 고유벡터들의 행렬을 획득하기 위해 공분산 행렬의 고유벡터들을 검색하는 단계(S3),
고유벡터들의 행렬을 테스트하여 N-차원 공간에서의 회전을 표현한다는 것을 검증(S5)하고, 만약 아니라면, 현재 프레임에 대해 회전 행렬이 획득될 때까지 고유벡터들의 행렬을 수정하는 단계(S6), 및
신호들의 별개의 채널 인코딩 이전에 N 채널들의 신호들에 회전 행렬을 적용하는 단계(S7)를 포함한다.

Description

회전들의 보간 및 양자화를 통한 공간화된 오디오 코딩
본 발명은 특히, 앰비포닉(ambiophonic) 맥락에서(이하 "앰비소닉(ambisonic)"으로서 또한 지칭됨)에서 공간화된 오디오 데이터의 인코딩/디코딩에 관한 것이다.
모바일 전화에서 현재 사용되는 인코더들/디코더들(이하 "코덱들"이라고 함)은 모노(단일 라우드스피커 상의 재생을 위한 단일 신호 채널)이다. ("향상된 음성 서비스"를 위한) 3GPP EVS 코덱은, 48kHz로 샘플링된 신호들에 대해 FB(full-band) 또는 32 또는 48kHz로 샘플링된 신호들에 대해 SWB(super-wideband) 오디오 대역을 갖는 "Super-HD" 품질("고화질+" 음성 또는 HD+라고도 함)을 제공하는 것을 가능하게 하고; 오디오 대역폭은 SWB 모드(9.6 내지 128kbps)에서 14.4 내지 16kHz이고 FB 모드(16.4 내지 128kbps)에서 20kHz이다.
오퍼레이터들에 의해 제공되는 대화 서비스들의 품질의 다음 진화는 예컨대, 공간화된 오디오 회의 또는 텔레프레즌스 유형 화상 회의를 위한 여러 마이크로폰들 또는 디바이스들이 장착된 스마트폰들과 같은 단말들 또는 심지어 단순한 2D 스테레오 재생보다 훨씬 더 몰입감 있는 공간화된 3D 오디오 렌더링과 함께 "라이브" 콘텐츠를 공유하기 위한 도구들을 이용하여 몰입형 서비스들로 구성되어야 한다. 오디오 헤드셋을 사용하여 모바일 폰을 콘텐츠를 청취하는 관행이 점차 확산되고 진보된 오디오 장비(악세사리들 이를테면, 3D 마이크로폰, 음향 안테나들을 갖는 음성 보조기기, 가상 현실 헤드셋들) 및 (예컨대, 360° 비디오 콘텐츠의 생산을 위한) 특정 도구들의 출현에 따라, 공간화된 사운드 장면의 캡처 및 렌더링은 이제 몰입형 커뮤니케이션 경험을 제공하기에 충분히 일반적이다.
이를 위해, 미래의 3GPP 표준 "IVAS"("Immersive Voice And Audio Services")는 코덱에 대한 입력 포맷들로서, 아래 나열된 공간화된 오디오 포맷들(및 이들의 조합) 즉:
스테레오 유형 다채널 포맷("채널 기반"), 5.1 ― 여기서 각각의 채널은 스피커(예컨대, 스테레오의 L 및 R 또는 5.1의 L, R, Ls, Rs 및 C)를 피딩함 ― ,
오디오 오브젝트들이 이 오브젝트의 속성들(공간에서의 포지션, 소스의 공간 폭 등)을 설명하는 메타데이터와 연관된 오디오 신호(일반적으로 모노)로 설명되는 오브젝트 기반 포맷, 및
일반적으로 구형 마이크에 의해 캡처되거나 구형 고조파들의 도메인에서 합성되는, 주어진 포인트에서 음장을 설명하는 앰비소닉 포맷("장면-기반")을 적어도 수락함으로써, 몰입형을 포함하도록 EVS 코덱의 확장을 제안한다.
이하, 우리는 예시적인 실시예로서 앰비소닉 포맷의 사운드의 코딩에 통상적으로 관심이 있다(아래에서 본 발명과 관련하여 제시된 적어도 일부 양상들은 앰비소닉 이외의 포맷들에 또한 적용될 수 있음).
앰비소닉은 공간화된 사운드를 레코딩(음향적 의미에서 "인코딩")하는 방법 및 재생 시스템(음향적 의미에서 "디코딩")이다. 앰비소닉 마이크로폰(1-차)은 구형 격자, 예컨대, 정사면체의 꼭짓점들 상에 배열된 (통상적으로 카디오이드 또는 서브-카디오이드(sub-cardioid) 유형의) 적어도 4개의 캡슐들로 구성된다. 이러한 캡슐들과 연관된 오디오 채널들은 "A-포맷"이라고 불린다. 이 포맷은 음장이 4개의 일치하는 가상 마이크로폰들에 대응하는 W, X, Y, Z로 표시된 4개의 컴포넌트들(구면 고조파들)로 분할되는 "B-포맷"으로 변환된다. W 컴포넌트는 음장의 무지향성 캡처에 대응하는 반면, 보다 지향성인 X, Y 및 Z 컴포넌트들은 3개의 공간 차원들로 배향되는 압력 구배들에 필적한다. 앰비소닉 시스템은 레코딩 및 재생이 별개이고 디커플링된다는 점에서 유연한 시스템이다. 이는 임의의 스피커 구성(예컨대, 바이노럴(binaural), 유형 5.1 서라운드-사운드 또는 유형 7.1.4 페러퍼닉(periphonic)(높이를 가짐))에서 디코딩(음향적 의미에서)을 허용한다. 물론, 앰비소닉 접근법은 B-포맷의 4개 초과의 채널들로 일반화될 수 있으며 이 일반화된 표현을 "HOA"("Higher-Order Ambisonics")라고 불린다. 사운드가 더 많은 구형 고조파들로 분해된다는 사실은 라우드스피커들에서 렌더링할 때 재생의 공간적 정확도를 개선한다.
N-차 앰비소닉 신호는 (N+1)2개의 컴포넌트들을 포함하며, 1-차(N=1인 경우)에서, 우리는 일반적으로 FOA(First-Order Ambisonics)라 불리는 오리지널 앰비소닉의 4개의 컴포넌트들을 찾는다. 정의된 사운드를 일반적으로 수평면인 평면으로 분해하는 앰비소닉의 "평면형" 변형이라고 불리는 것이 또한 존재한다. 이 경우에, 채널들의 수는 2N+1 채널들이다. 1-차 앰비소닉(4개 채널들: W, X, Y, Z) 및 1-차 평면 앰비소닉(3 채널들: W, X, Y)은 이하, 판독을 용이하게 하기 위해 "앰비소닉"으로서 분별 없이 지칭되며, 제시되는 프로세싱은 유형이 평면인지 여부와 독립적으로 적용 가능하다. 그러나 특정 텍스트에서 구별할 필요가 있는 경우, "1-차 앰비소닉" 및 "1-차 평면 앰비소닉"이라는 용어들이 사용된다. 블럼라인 교차 쌍(Blumlein Crossed Pair)(X+Y 및 X-Y) 또는 미드-사이드(Mid-Side)(미드를 위해 W 및 X 결합하고 사이드로서 Y를 취함) 유형들의 일치하는 스테레오 캡처에 대응하는 스테레오 신호(2 채널들)를 1-차 B-포맷으로부터 유도하는 것이 가능하다는 것에 주의한다.
이하, 미리 결정된 차수의 B-포맷의 신호가 "앰비소닉 사운드(ambisonic sound)"라 불린다. 일부 변형들에서 앰비소닉 사운드는 아래에서 볼 수 있는 바와 같이 다른 포맷 이를테면, A-포맷 또는 고정 행렬화(fixed matrixing)(채널들의 수를 유지하거나 3개 또는 2개 채널들의 경우로 감소시킴)에 의해 미리 결합된 채널들에서 정의될 수 있다.
인코더/디코더에 의해 프로세싱될 신호들은 아래에서 "프레임들" 또는 "서브프레임들"이라 불리는 사운드 샘플들의 연속적인 블록들로서 제시된다.
또한, 이하에서 수학적 표기법들은 이 관례를 따른다:
- 벡터: u(소문자, 굵게)
- 행렬: A(대문자, 굵게)
스테레오 또는 앰비소닉 신호를 인코딩하는 가장 간단한 방법은 모노 인코더를 사용하고 이를, 어쩌면 채널들에 의존하여 상이한 비트 할당을 갖는 모든 채널들에 병렬로 적용하는 것이다. 여기에서 이 접근법은 "다중 모노"라 불린다(그러나 실제로는 우리는 다중 스테레오 또는 동일한 코어 코덱의 여러 병렬 인스턴스들의 사용에 대한 접근법을 일반화할 수 있음).
그러한 실시예가 도 1에 도시된다. 입력 신호는 블록(100)에서 (모노) 채널들로 분할된다. 이들 채널들은 미리 결정된 할당에 따라 블록들(120 내지 122)에서 개별적으로 인코딩된다. 그들의 비트 스트림은 멀티플렉싱되고(블록 130), 송신 및/또는 저장 후에, 그것은 디멀티플렉싱되어(블록 140) 채널들 각각에 디코딩을 적용(블록 150 내지 152)하며, 이는 재결합(블록 160)된다.
연관된 품질은 사용되는 모노 코딩에 따라 변동되고 이는 일반적으로 매우 높은 비트레이트(예컨대, EVS 코딩의 경우 모노 채널당 적어도 48kbps의 비트레이트)에서만 만족스럽다. 따라서 1-차의 경우, 4 × 48 = 192kbps의 최소 비트레이트가 획득된다.
특히 앰비소닉 공간화를 위해 보다 정교한 코덱들에 대해 현재 제안된 솔루션들은 특히, 복잡성, 지연 및 비트레이트의 효율적인 사용의 관점에서 앰비소닉 채널들 간의 효과적인 역상관(decorrelation)을 보장하는데 불만족스럽다.
예컨대, 앰비소닉 사운드들에 대한 MPEG-H 코덱은 지연 및 복잡성을 추가하는 오버랩-추가 동작(overlap-add operation)뿐만 아니라 방향 벡터들에 대한 선형 보간(이는 최적이 아님)을 사용하고 결함들을 도입한다. 이 코덱이 갖는 기본적인 문제는, 지배적인 컴포넌트들이 주변 환경(ambience)으로부터 지각적으로 구별되기 때문에 그것이 지배적인 컴포넌트 및 주변 환경으로의 분해를 구현하지만 이 분해가 완전히 정의되진 않는다는 것이다. MPEG-H 인코더는 하나의 프레임으로부터 다른 프레임으로 메인 컴포넌트의 방향들 간의 비-대응의 문제를 겪으며; 컴포넌트들(신호들)의 순서는 연관된 방향들과 마찬가지로 교환될 수 있다. 이는 MPEG-H 코덱이 이 문제를 해결하기 위해 매칭 및 오버랩-추가의 기술을 사용하는 이유이다.
또한 MPEG-H 코덱에서와 같이 시간적 코딩보다 (FFT 또는 MDCT 도메인에서) 주파수 코딩 접근법들을 사용하는 것이 가능하지만, 주파수 도메인(서브-대역들)에서 신호 프로세싱은 데이터를 서브-대역별로 디코더에 송신할 것을 요구하고, 이에 따라 이 송신에 필요한 비트레이트를 증가시킨다.
본 발명은 이러한 상황을 개선한다.
이를 위해, 0보다 높은 차수의 앰비소닉 표현의 N 채널들 각각에서 연속적인 샘플 프레임들을 시간에 걸쳐 형성하는 오디오 신호들의 압축을 위한 인코딩 방법이 제안되며, 이 방법은,
채널들에 기초하여 그리고 현재 프레임에 대해, 채널간 공분산의 행렬을 형성하고 고유벡터들의 행렬을 획득하기 위해 상기 공분산 행렬의 고유벡터들을 검색하는 단계,
고유벡터들의 행렬을 테스트하여 N-차원 공간에서의 회전을 표현한다는 것을 검증하고, 만약 아니라면, 현재 프레임에 대해 회전 행렬이 획득될 때까지 고유벡터들의 행렬을 수정하는 단계, 및
상기 신호들의 별개의 채널 인코딩 이전에 N 채널들의 신호들에 상기 회전 행렬을 적용하는 단계를 포함한다.
따라서, 본 발명은 후속적으로, 별개로 인코딩되는 N 채널들 사이의 역상관을 개선하는 것을 가능하게 한다. 이 별개의 인코딩은 또한, 이하 "다중 모노 인코딩"으로서 지칭된다.
일 실시예에서, 방법은,
네트워크를 통한 송신을 위해 회전 행렬로부터 취해진 파라미터들을 인코딩하는 단계를 더 포함할 수 있다.
이러한 파라미터들은 통상적으로 아래에서 볼 수 있는 바와 같이 쿼터니언 및/또는 회전 각도 및/또는 오일러 각도 값들, 또는 그 밖에 단순히 예컨대, 이 행렬의 엘리먼트들일 수 있다.
일 실시예에서, 방법은,
현재 프레임에 대해 획득된 고유벡터들의 행렬을 현재 프레임에 선행하는 프레임에 대해 획득된 회전 행렬과 비교하는 단계, 및
이전 프레임의 회전 행렬과의 일관성을 보장하기 위해 현재 프레임의 고유벡터들의 행렬의 열들을 치환(permuting)하는 단계를 더 포함할 수 있다.
이러한 실시예는 전체 균질성을 유지하는 것, 특히 오디오 재생 동안 하나의 프레임으로부터 다른 프레임으로의 가청 클릭들을 방지하는 것을 가능하게 한다.
그러나 공분산 행렬로부터 고유벡터들을 획득하도록 구현된 특정 변환들(이를테면, 아래에 표시된 "PCA/KLT")은 특정 고유벡터들의 방향을 리버싱할 가능성이 높고, 그것은 그 후, 동시에 현재 프레임의 행렬의 각각의 고유벡터에 대해 축 일관성을 검증하고 그 후 이 축 상의 방향 일관성을 검증하는 것이 바람직하다. 이를 위해, 일 실시예에서, 열들의 위에서 언급된 치환은 이미 벡터들의 축들의 일관성을 보장하는 것을 가능하게 하고, 이 방법은,
현재 프레임의 각각의 고유벡터에 대해, 이전 프레임의 회전 행렬에서 대응하는 포지션의 열 벡터와의 방향 일관성을 검증하는 단계, 및
비일관성의 경우에, 현재 프레임의 고유벡터들의 행렬에서 이 고유벡터의 엘리먼트들의 부호를 반전시키는 단계를 더 포함한다.
통상적으로, 회전 행렬의 행렬식 및 고유벡터들의 행렬의 행렬식의 부호를 반전시키기 위한 고유벡터들의 행렬의 열들 사이의 치환은 1과 동일하며,
우리는 고유벡터들의 행렬의 행렬식을 추정할 수 있고, 그것이 -1과 동일한 경우, 우리는 이어서, 고유벡터들의 행렬의 선택된 열의 엘리먼트들의 부호들이 반전시켜, 행렬식이 1과 동일하게 하고 이에 따라 회전 행렬이 형성할 수 있다.
일 실시예에서, 방법은,
현재 프레임에 대해 획득된 회전 행렬과 현재 프레임에 선행하는 프레임에 대해 획득된 회전 행렬 간의 차이를 추정하는 단계,
추정된 차이에 기초하여, 현재 프레임의 회전 행렬과 이전 프레임의 회전 행렬 사이에서 적어도 하나의 보간이 수행될지를 결정하는 단계를 더 포함할 수 있다.
그 후, 이러한 보간은 이전 프레임 및 현재 프레임에 각각 적용된 회전 행렬들을 평활화("점진적으로 평균화")하고 이에 따라 플레이백 동안 하나의 프레임으로부터 다른 프레임으로 가청 클릭 효과를 감쇠시키는 것을 가능하게 한다.
이러한 구현에서:
추정된 차이에 기초하여, 현재 프레임의 회전 행렬과 이전 프레임의 회전 행렬 사이에서 수행될 보간들의 수가 결정되고,
현재 프레임은 수행될 보간들의 수에 대응하는 수의 서브프레임들로 분할되고,
적어도 보간들의 이러한 수는 위에서 언급된 네트워크를 통한 송신을 위해 인코딩될 수 있다.
일 실시예에서, 앰비소닉 표현은 1-차이고 채널들의 수 N은 4이고, 현재 프레임의 회전 행렬은 2개의 쿼터니언들에 의해 표현된다.
이 실시예에서 그리고 보간의 경우에, 현재 서브프레임에 대한 각각의 보간은 "SLERP"(또는 구형 선형 보간(spherical linear interpolation))이며, 현재 서브프레임에 선행하는 서브프레임의 보간의 함수로서 수행되고 선행 서브프레임의 쿼터니언들에 기초한다.
예컨대, 구형 선형 보간은 다음과 같이 현재 서브프레임의 쿼터니언들을 획득하기 위해 수행될 수 있고;
Figure pct00001
Figure pct00002
여기서:
Figure pct00003
는 이전 서브프레임 t-1의 쿼터니언들 중 하나이고,
Figure pct00004
는 이전 서브프레임 t-1의 다른 쿼터니언이고,
Figure pct00005
는 현재 서브프레임 t의 쿼터니언들 중 하나이고,
Figure pct00006
는 현재 서브프레임 t의 다른 쿼터니언이고,
Figure pct00007
;
Figure pct00008
이고,
α는 보간 팩터에 대응한다.
일 실시예에서, 고유벡터들에 대한 검색은 시간 도메인에서 "PCA"(또는 principal component analysis) 또는 "KLT"(또는 Karhunen-Lo
Figure pct00009
ve transform)에 의해 수행된다.
물론, 다른 실시예들(특이값 분해 등)이 고려될 수 있다.
일 실시예에서, 방법은 앰비소닉 채널당 비트 할당 예산을 예측하는 이전 단계를 포함하고, 이 단계는,
각각의 앰비소닉 채널에 대해, 채널에서 현재 음향 에너지를 추정하는 단계,
메모리에서, 이 앰비소닉 채널 및 네트워크에서의 현재 비트레이트에 기초하여, 미리 결정된 품질 점수를 선택하는 단계,
선택된 점수를 추정된 에너지로 곱함으로써 이 채널에 대한 비트 할당을 위해 적용될 가중치를 추정하는 단계를 포함한다.
그 후, 이 실시예는 코딩될 각각의 채널에 대해 할당될 비트들의 최적 할당을 관리하는 것을 가능하게 한다. 이는 그 자체로 유리하며 아마도 별개의 보호의 대상일 수 있다.
본 발명은 또한 0보다 높은 차수의 앰비소닉 표현의 N 채널들 각각에서 연속적인 샘플 프레임들을 시간에 걸쳐 형성하는 오디오 신호들을 디코딩하기 위한 방법에 관한 것이며, 이 방법은,
현재 프레임에 대해, 이 현재 프레임의 N 채널들의 신호들에 추가하여, 회전 행렬의 파라미터들을 수신하는 단계,
상기 파라미터들로부터 역회전 행렬을 구성하는 단계,
상기 신호들의 별개의 채널 디코딩 이전에, 수신된 N 채널들로부터의 신호들에 상기 역회전 행렬을 적용하는 단계를 포함한다.
이러한 실시예는 또한 디코딩에서 N 채널들 간의 역상관을 개선하는 것을 가능하게 한다.
본 발명은 또한 위에 제시된 인코딩 방법을 구현하기 위한 프로세싱 회로를 포함하는 인코딩 디바이스에 관한 것이다.
본 발명은 또한, 위의 디코딩 방법을 구현하기 위한 프로세싱 회로를 포함하는 디코딩 디바이스에 관한 것이다.
본 발명은 또한 컴퓨터 프로그램 관한 것이며, 이 컴퓨터 프로그램은 위의 방법을 구현하기 위한 명령들이 프로세싱 회로의 프로세서에 의해 실행될 때, 이 명령들을 포함한다.
본 발명은 또한 그러한 컴퓨터 프로그램의 명령들을 저장하는 비일시적 메모리 매체에 관한 것이다.
본 발명의 다른 특징들 및 이점들은 아래의 상세한 설명에 제시된 예시적인 실시예들을 읽고 첨부 도면들을 검토함으로써 명백해질 것이다.
도 1은 다중 모노 코딩(종래 기술)을 예시한다.
도 2는 본 발명의 의미에서 예시적인 방법의 연속적인 메인 단계들을 예시한다.
도 3은 본 발명에 따른 인코더의 예의 일반적인 구조를 도시한다.
도 4는 도 3의 인코더의 블록(310)에 의해 수행된 PCA/KLT 분석 및 변환의 세부사항들을 도시한다.
도 5는 본 발명에 따른 디코더의 예를 도시한다.
도 6은 디코딩에서 도 4의 리버스인 디코딩 및 PCA/KLT 합성을 도시한다.
도 7은 본 발명의 의미 내에서 인코더 및 디코더의 구조적 예시적인 실시예들을 예시한다.
본 발명은 다음에 의해 최적화된 인코딩을 가능하게 하는 것을 목표로 한다:
- 적응형 시간 행렬화(adaptive temporal matrixing)(특히 PCA/KLT("PCA"는 principal component analysis을 나타내고 "KLT"는 Karhunen-Lo
Figure pct00010
ve transform을 나타냄)에 의해 획득된 적응형 변환을 사용함),
- 바람직하게는 다중 모노 인코딩이 뒤따름.
적응형 행렬화는 고정 행렬화보다 채널들로의 보다 효율적인 분해를 허용한다. 본 발명에 따른 행렬화는 유리하게는, 다중-모노 인코딩 전에 채널들을 역상관시키는 것을 가능하게 하여서, 채널들 각각을 인코딩함으로써 도입된 코딩 노이즈는 디코딩에서 앰비소닉 신호를 재구성하기 위해 채널들이 재결합될 때 전반적으로 가능한 한 적게 공간 이미지를 왜곡시키게 한다.
또한, 본 발명은 프레임의 에지에서 "클릭" 유형의 아티팩트들 또는 공간 이미지에서 지나치게 급속한 변동들, 또는 심지어 매트릭스에 기인한 다양한 개별 채널들에서 지나치게 강한 변동들(예컨대, 채널들 간의 오디오 소스들의 시기 적절하지 않은 치환에 링크됨)로 인한 코딩 아티팩트들 ― 이들은 그 후 모노 코덱의 상이한 인스턴스들에 의해 인코딩됨 ― 을 회피하기 위해 매트릭스 파라미터들의 부드러운 적응을 보장하는 것을 가능하게 한다. 다중 모노 인코딩은 바람직하게는 (적응형 행렬화 이후) 채널들 사이에 가변 비트 할당과 관련하여 아래에 제시되지만, 일부 변형들에서, 스테레오 코어 코덱 등의 다수의 인스턴스들이 사용될 수 있다.
본 발명의 이해를 용이하게 하기 위해, N-차원 회전들 및 PCA/KLT 또는 SVD 유형 분해들("SVD"는 singular value decomposition를 나타냄)에 관한 특정 설명 개념들이 아래에 다시 요약된다.
회전들 및 " 쿼터니언들"
신호들은 오디오 샘플들의 연속 블록들에 의해 표현되며 이러한 블록들은 아래에서 "서브프레임들"이라 불린다.
본 발명은 프레임당 양자화 및 특히 서브프레임에 의한 효율적인 보간에 적합한 파라미터들을 갖는 n-차원 회전들의 표현을 사용한다. 2, 3, 4 차원들에서 사용되는 회전들의 표현들은 아래에 정의된다.
(원점 주위의) 회전은 하나의 벡터를 다른 벡터로 변경하는 n-차원 공간의 변환이어서:
- 벡터의 진폭이 보존되고
- 회전 전 직교 좌표계를 정의하는 벡터의 외적은 회전 후에도 보존된다(어떠한 반사도 없음).
크기 n × n의 행렬 MMT.M=I n 인 경우 및 그 경우에만 회전 행렬이며, 여기서 I n 은 크기 n × n의 단위 행렬(identity matrix)(즉, M은 일차 행렬이고, M T M의 전치 행렬을 나타냄)을 나타내고 그의 행렬식(determinant)은 +1이다.
회전 행렬에 의한 표현과 등가의 여러 표현들이 본 발명에서 사용된다:
2 차원에서(2D 평면에서)(n=2): 우리는 다음과 같이 표현으로서 회전의 각도를 사용한다.
회전의 각도 θ가 주어지면, 우리는 회전 행렬을 추론한다:
Figure pct00011
회전 행렬이 주어지면, 우리는 행렬의 트레이스가 2cosθ임을 관찰함으로써 각도 θ를 계산할 수 있다. 아래에 제시된 PCA(principal component decomposition) 및 EVD(eigenvalue decomposition)를 적용하기 전에 공분산 행렬로부터 직접적으로 θ를 추정하는 것이 또한 가능하다는 것에 주의한다.
개개의 각도들 θ1 및 θ2의 두 회전들 사이의 보간은 이들 두 각도들 사이의 단위 원에 대한 최단 경로 제약을 고려하여 θ1 과 θ2 사이의 선형 보간에 의해 행해질 수 있다.
3차원(3D) 공간(n=3): 오일러 각도들 및 쿼터니언들이 표현으로서 사용된다. 일부 변형들에서, 여기에서 언급되지 않은 축-각도 표현이 또한 사용될 수 있다.
3x3 크기의 회전 행렬은 x, y 또는 z 축들을 따라 각도 θ의 3개의 기본 회전들의 곱(product)으로 분해될 수 있다.
Figure pct00012
Figure pct00013
Figure pct00014
축 조합들에 의존하여, 각도들은 오일러 각도 또는 카르단 각도라 여겨진다.
그러나 3D 회전들의 다른 표현이 쿼터니언들에 의해 주어진다. 쿼터니언들은 숫자
Figure pct00015
(여기서
Figure pct00016
임)의 형태로 4개의 컴포넌트들을 갖는 복소수들에 의한 표현들의 일반화이다.
실수 부분 a는 스칼라로 불리고 3개의 허수 부분들(b, c, d)이 3D 벡터를 형성한다. 쿼터니언의 노름(norm)은
Figure pct00017
이다. (노름 1의) 단위 쿼터니언들은 회전들을 표현하고 ― 그러나 이 표현은 고유하지 않고; 따라서 q가 회전을 표현하는 경우, -q는 동일한 회전을 표현한다.
단위 쿼터니언
Figure pct00018
(여기서
Figure pct00019
임)을 고려하면, 연관된 회전 행렬은 다음과 같다:
Figure pct00020
오일러 각도들은 3D 회전들을 올바르게 보간하는 것을 허용하지 않고; 올바르게 보간하기 위해, 우리는 쿼터니언들 또는 축-각도 표현을 대신 사용한다. SLERP("spherical linear interpolation") 보간 방법은 다음 공식들에 따른 보간으로 구성되고:
Figure pct00021
여기서
Figure pct00022
은 q1로부터 q2로 이동하기 위한 보간 팩터이고 Ω은 2개의 쿼터니언들 사이의 각도이며:
Figure pct00023
여기서
Figure pct00024
는 2개의 쿼터니언들 간의 내적(2개의 4 차원 벡터들 간의 내적과 동일함)을 나타낸다.
이는 α의 함수로 일정한 각속도를 갖는 4D 구 상에서 큰 원을 따름으로써 보간에 이른다.
Figure pct00025
일 때, 쿼터니언들 중 하나의 부호를 변경함으로써 보간을 위해 최단 경로가 사용되는 것이 보장되어야 한다. 쿼터니언 보간을 위한 다른 방법들(nlerp(또는 정규화된 선형 보간), 스플라인 등)이 사용될 수 있다는 것에 주의한다.
축-각도 표현을 통해 3D 회전들을 보간하는 것이 또한 가능하다는 것에 주의하고; 이 경우에, 각도는 2D 경우에서와 같이 보간되며, 축은 3D 단위 구 상에서 최단 경로가 취해지고 축 r 및 각도 θ에 의해 주어진 표현이 반대 방향 축 -r 및 각도
Figure pct00026
에 의해 주어진 것과 등가라는 사실을 고려하면서, 예컨대, (3D의) SLERP 방법에 의해 보간될 수 있다.
4 차원(n=4)에서, 회전은 6개의 각도들(n(n-1)/2)로 파라미터화될 수 있으며, 우리는 쿼터니언
Figure pct00027
Figure pct00028
와 연관되는 안티쿼터니언(
Figure pct00029
) 및 쿼터니언(Q 1 )이라 불리는 크기 4 × 4의 2개의 행렬들의 곱셈이 크기 4 × 4의 회전 행렬을 제공한다는 것을 보여준다.
다음과 같이 되도록 연관된 쿼터니언 쌍(
Figure pct00030
) 및 연관된 쿼터니언 및 안티쿼터니언 행렬들을 찾는 것이 가능하고:
Figure pct00031
Figure pct00032
그의 곱은 4 × 4 크기 행렬:
Figure pct00033
을 제공하고,
이 행렬이 회전 행렬(일차 행렬 및 1과 동일한 행렬식)의 속성들을 충족한다는 것을 검증하는 것이 가능하다.
대조적으로, 4 × 4 회전 행렬을 고려하면, 이 행렬은 예컨대, "케일리의 인수 분해"로서 알려진 방법으로
Figure pct00034
의 형태의 행렬들의 곱으로 인수분해될 수 있다. 이는 "정사각 변환(tetragonal transform)"(또는 연관된 행렬)이라 불리는 중간 행렬을 계산하고, 이것으로부터 쿼터니언들을 추론하며, 2개의 쿼터니언들의 부호에 대한 약간의 불확정성(이는 아래에서 추가로 언급되는 부가적인 "최단 경로" 제약에 의해 제거될 수 있음)을 동반한다.
" SVD"( 또는 singular value decomposition)
SVD(singular value decomposition)는 다음의 형태로 크기 m × n의 실수 행렬 A를 인수분해하는 것으로 구성되고:
Figure pct00035
여기서 U는 크기 m × m의 일차 행렬(
Figure pct00036
)이고, Σ는 실수 및 양의 계수들
Figure pct00037
(
Figure pct00038
여기서
Figure pct00039
임)을 갖는 크기 m × n의 직사각형 대각 행렬이고, V는 크기 n × n의 일차 행렬(
Figure pct00040
)이고
Figure pct00041
는 V의 전치 행렬이다. Σ의 대각에 있는 σi 계수들은 행렬 A의 특이 값들이다. 관례 상, 이들은 일반적으로 내림차순으로 나열되고, 이 경우에, A와 연관된 대각 행렬 Σ는 고유하다.
A의 랭크 r은 비-제로 계수 σi의 수에 의해 주어진다. 따라서 우리는 다음과 같이 특이값 분해를 재작성할 수 있고:
Figure pct00042
여기서
Figure pct00043
A의 좌측 상의 특이 벡터들(또는 출력 벡터들)이고,
Figure pct00044
이고,
Figure pct00045
A의 우측 상의 특이 벡터들(또는 입력 벡터들)이다. 이 행렬 공식은 또한 다음과 같이 재작성될 수 있다:
Figure pct00046
합계가 인덱스 i < r로 제한되는 경우, 우리는 "지배적인" 정보만을 표현하는 "필터링된" 행렬을 획득한다.
우리는 또한 다음:
Figure pct00047
을 작성할 수 있으며,
이는 행렬 A
Figure pct00048
Figure pct00049
로 변환한다는 것을 보여준다.
A의 SVD는 다음과 같은 이유로
Figure pct00050
Figure pct00051
의 고유 값 분해와 관계가 있고:
Figure pct00052
Figure pct00053
Figure pct00054
Figure pct00055
의 고유 값들은
Figure pct00056
이다. U의 열들은
Figure pct00057
의 고유벡터인 반면 V의 열들은
Figure pct00058
의 고유벡터들이다.
SVD는 기하학적으로 해석될 수 있는데: 행렬 A에 의한 차원 n에서 구의 이미지는 차원 m에 있어서, 방향들
Figure pct00059
에서 메인 축들을 갖고
Figure pct00060
의 길이의 하이퍼-타원(hyper-ellipse)이다.
" KLT"( 또는 Karhunen -Lo
Figure pct00061
ve Transform)
0을 중심으로 하는 랜덤 벡터 "x" 및 공분산 행렬
Figure pct00062
의 KLT(Karhunen-Lo
Figure pct00063
ve Transform)는 다음에 의해 정의되고:
Figure pct00064
여기서 V는 고유값들로의
Figure pct00065
의 분해에 의해 획득되는 고유벡터들의 행렬(고유벡터들이 열 벡터들이라는 관례를 따름)이고:
Figure pct00066
여기서
Figure pct00067
는 계수들이 고유값들이 대각 행렬이다. 행렬
Figure pct00068
Figure pct00069
의 고유벡터들(열들)를 포함하여서,
Figure pct00070
이 된다.
Figure pct00071
은 고유벡터들에 의해 주어진 기저(basis)에서 벡터 "x"를 표현하기 때문에 기저의 변화로서 KLT를 인식할 수 있다.
리버스 변환은 다음에 의해 주어진다:
Figure pct00072
KLT는, "x"의 컴포넌트들을 역상관시키는 것을 가능하게 하며, 변환된 벡터 "y"의 분산들은
Figure pct00073
의 고유값들이다.
" PCA"( 또는 principal component analysis)
PCA(principal component analysis)은 직교 변수들을 생성하고 투영 후 변수들의 분산을 최대화(또는 재구성 오류를 동등하게 최소화)하는 차원-감소 기술이다.
KLT 같이 고유값들로의 분해에 또한 기초하지만, 아래에서 제시되는 PCA는 추정된 공분산 행렬
Figure pct00074
가 다음과 같이, 차원 n의 N개의 관찰된 백터들
Figure pct00075
(i=1…N)로부터 계산되도록 이루어지고:
Figure pct00076
이러한 벡터들이 중심에 있다고 가정함:
Figure pct00077
형태
Figure pct00078
에서
Figure pct00079
의 고유 값들로의 분해는 주요 컴포넌트들:
Figure pct00080
을 계산하는 것을 허용한다.
PCA는 투영 후 변수들의 분산을 최대화하기 위해 데이터를 새로운 기저로 투영하는 행렬
Figure pct00081
에 의한 변환이다.
PCA는 또한 크기 n × N의 행렬 X의 형태로 입력된 신호
Figure pct00082
의 SVD로부터 획득될 수 있다는 것에 주의한다. 이 경우에, 우리는 다음과 같이 작성할 수 있다:
Figure pct00083
우리는
Figure pct00084
라는 것을 검증하며, 이는
Figure pct00085
의 대각화(diagonalization)에 대응한다. 따라서 PCA의 투영 벡터들은 U의 열 벡터들에 대응하고 투영은 결과로서
Figure pct00086
를 제공한다.
또한 PCA는 일반적으로 고차원의 데이터의 세트를 소수의 주성분들을 포함하는 세트로 "압축"하기 위한 차원 축소 기술로서 간주된다는 것이 주의될 것이다. 본 발명에서, PCA는 유리하게는, 다차원 입력 신호를 역상관시키는 것을 가능하게 하지만, 아티팩트들의 도입을 회피하기 위해 채널들의 제거(따라서 채널들의 수의 감소)는 회피된다. 이는, (예컨대, 합성적으로 공간화된 단일 소스로 인위적으로 생성된 앰비소닉 사운드를 더 잘 인코딩하기 위해) 고유값들이 너무 낮아 0 레이트가 허용될 수 있는 특정 변형들을 제외하면, 공간 이미지를 "잘라내는(truncating)" 것을 회피하기 위해 최소 인코딩 비트레이트를 강제한다.
이제 우리는 현재 프레임 t에 대해 본 발명의 의미 내에서 방법에서 구현되는 단계들의 일반 원리들을 설명하기 위해 도 2를 참조한다.
단계 S1은 각각의 프레임 t에 대한 ACN(Ambisonics Channel Number) 채널 순서화 관례를 사용하여 앰비소닉 채널들(여기서 설명된 예에서 4 채널들 W, Y, Z, X)의 개개의 신호들을 획득하는 것으로 구성된다. 이러한 신호는 n × L 행렬(n개의 앰비소닉 채널들(여기서 4) 및 프레임 당 L개의 샘플들)의 형태로 입력될 수 있다.
다음 단계 S2에서, 이들 채널들의 신호들은 선택적으로, 예컨대, 도 3을 참조하여 아래에서 설명되는 바와 같이 고역 통과 필터에 의해 사전프로세싱될 수 있다.
다음 단계 S3에서, PCA(principal component analysis) 또는 등가의 방식으로 KLT(Karhunen-Lo
Figure pct00087
ve transform)가 이러한 신호들에 적용되어, n 채널들의 공분산 행렬로부터 고유값들 및 고유벡터들의 행렬을 획득한다. 본 발명의 변형들에서, SVD가 사용될 수 있다.
단계 S4에서, 현재 프레임 t에 대해 획득된 고유벡터들의 이러한 행렬은 이전 프레임 t-1과 동일한 성질의 행렬과 가능한 한 정렬되도록 부호 있는 치환들(signed permutation)을 거친다. 원칙적으로 고유벡터들의 행렬에서 열 벡터들의 축이 이전 프레임의 행렬에서 동일한 장소에 있는 열 벡터들의 축과 가능한 많이 대응하고 그렇지 않은 경우, 대응하지 않는 현재 프레임 t의 행렬의 고유벡터들의 포지션들이 치환되는 것이 보장된다. 그 후, 하나의 행렬로부터 다른 행렬로의 고유벡터들의 방향들이 또한 일치한다는 것이 또한 보장된다. 즉, 초기에, 우리는 고유벡터(방향 없이 배향만)를 포함하는 직선들에선 관심이 있고, 각각의 선에 대해, 우리는 이전 프레임 t-1의 행렬에서 가장 가까운 선을 찾는다. 이를 위해, 현재 프레임의 행렬에서 벡터들이 치환된다. 그 후 제2 단계에서, 우리는 벡터들(방향성)의 배향을 매칭시키고자 한다. 이를 위해, 우리는 정확한 배향을 갖지 않는 고유벡터들의 부호를 리버싱한다.
그러한 실시예는 2개의 행렬들 사이의 최대 일관성을 보장하고 이에 따라 사운드 플레이백 동안 2개의 프레임들 사이의 가청 클릭을 회피하는 것을 가능하게 한다.
단계 S5에서, 우리는 또한 부호 있는 치환들에 의해 이렇게 보정된 현재 프레임 t의 고유벡터들의 행렬은 실제로 회전의(n = 2 채널들에 대한 각도의, 3개의 오일러 각도들의, 축 및 각도의, 또는 1-차 평면 앰비소닉 표현(W, Y, Z)에 대응하는 n=3에 대한 쿼터니언의, 그리고 유형 W, Y, Z, X의 1-차 앰비소닉 표현에서 n=4에 대한 2개의 쿼터니언들의) 적용을 표현한다.
이는 실제로 회전임을 보장하기 위해, 치환들에 의해 보정된 현재 프레임 t의 고유벡터들의 행렬의 행렬식은 단계 S6에서 양수이고 +1과 동일해야(또는 실제로는 이에 가까워야) 한다. 그것이 -1과 동일한 경우(또는 그에 가까운 경우):
- (예컨대, 저-에너지 채널들과 연관되고 이에 따라 그다지 대표적이지 않은) 2개의 고유벡터들이 재차 치환되거나, 또는
- 바람직하게는 단계 S6에서 (예컨대, 저-에너지 채널과 연관된) 열의 모든 엘리먼트들의 부호가 반전되어야 한다.
우리는 그 후 단계 S7에서, 회전에 유효하게 대응하는 현재 프레임 t에 대한 고유벡터들의 행렬을 획득한다.
(예컨대, 각도 값, 축 및 각도, 또는 이 행렬의 쿼터니언(들)의 값과 같은) 이 행렬의 파라미터들은 그 후 단계 S8에서 이러한 목적을 위해 할당된 비트들의 수로 인코딩될 수 있다. 다른 선택적이지만 유리한 실시예에서, 현재 프레임 t에 대해 추정된 회전 행렬과 이전 프레임 t-1의 회전 행렬 사이에 (예컨대, 임계치보다 큰) 상당한 차이가 단계 S9에서 관찰되는 경우, 가변 수의 보간 서브프레임들이 결정될 수 있고; 그렇지 않으면, 이러한 수 서브프레임들이 미리 결정된 값으로 고정된다. 단계 S10은:
- 현재 프레임을 서브프레임들로 분할하는 것, 그리고
- 시간에 걸쳐, 2개의 행렬들 간의 차이를 평활화하기 위해 이전 프레임 t-1의 행렬로부터 현재 프레임 t의 행렬까지 연속적인 서브프레임들에 적용될 행렬들을 보간하는 것으로 구성된다.
단계 S11에서, 보간된 회전 행렬은 단계 S14의 다중 모노 인코딩 이전에 이러한 신호들을 가능한 많이 역상관시키기 위해, 단계 S1(또는 선택적으로 S2)의 앰비소닉 채널들의 신호들의 K개의 서브프레임들 각각을 표현하는 행렬 n X (L/K)에 적용된다. 우리는 일반적인 접근법에 따라 이러한 다중 모노 변환 전에 이러한 신호들을 가능한 한 많이 역상관시키기를 원한다는 사실을 기억할 것이다. 별개의 채널들에 대한 비트 할당은 단계 S12에서 행해지고 단계 S13에서 인코딩된다.
단계 S14에서, 단계 S15의 멀티플렉싱을 수행하고 이에 따라 압축 인코딩을 위한 방법을 종료하기 전에, 네트워크(RES)(도 7) 상에서 이용 가능한 비트레이트 및 이 채널의 대표성의 함수로서 채널 당 할당될 비트들의 수를 결정하는 것이 가능하다. 일 실시예에서, 각각의 채널의 에너지는 현재 프레임에 대해 추정되고 이 에너지는 이 채널에 대해 그리고 주어진 비트레이트에 대해 미리 정의된 점수들로 곱해진다(이 점수는 예컨대, 도 3을 참조하여 아래에서 설명되는 MOS 점수임). 따라서 각각의 채널에 할당되는 비트들의 수가 가중화된다. 이러한 실시예는 있는 그대로 유리하고 어쩌면, 앰비소닉 맥락에서 별개의 보호의 대상일 수 있다.
본 발명의 의미 내에서 인코딩 디바이스(DCOD) 및 디코딩 디바이스(DDEC)가 도 7에 예시되며, 이들 디바이스들은 서로에 대해 이중이고("가역적"을 의미함) 통신 네트워크(RES)에 의해 서로 연결된다.
인코딩 디바이스(DCOD)는 프로세싱 회로를 포함하며, 이는 통상적으로,
- 본 발명의 의미 내에서 컴퓨터 프로그램의 명령 데이터를 저장하기 위한 메모리(MEM1)(이러한 명령들은 인코더(DCOD)와 디코더(DDEC) 사이에 분산될 수 있음);
- 본 발명의 의미 내에서 그의 압축 인코딩을 위해 상이한 채널들(예컨대, 4개의 1-차 채널들 W, Y, Z, X)에 분산된 앰비소닉 신호들을 수신하기 위한 인터페이스(INT1);
- 이러한 신호들을 수신하고 그의 인코딩을 위해 메모리(MEM1)에 저장된 컴퓨터 프로그램 명령들을 실행함으로써 이러한 신호들을 프로세싱하기 위한 프로세서(PROC1); 및
- 네트워크를 통해 인코딩된 신호들을 송신하기 위한 통신 인터페이스(COM1)를 포함한다.
디코딩 디바이스(DDEC)는 자체 프로세싱 회로를 포함하며, 이는 통상적으로,
- 본 발명의 의미 내에서 컴퓨터 프로그램의 명령 데이터를 저장하기 위한 메모리(MEM2)(이러한 명령들은 위에서 표시된 바와 같은 인코더(DCOD)와 디코더(DDEC) 사이에 분산될 수 있음);
- 본 발명의 의미 내에서 압축으로부터 그의 디코딩을 위해 RES 네트워크로부터 인코딩된 신호들을 수신하기 위한 인터페이스(COM2);
- 그의 디코딩을 위해 메모리(MEM2)에 저장된 컴퓨터 프로그램 명령들을 실행함으로써 이러한 신호들을 프로세싱하기 위한 프로세서(PROC2); 및
- 예컨대, 그의 플레이백을 위해 앰비소닉 채널들 W', Y', Z', X'의 형태로 디코딩된 신호들을 전달하기 위한 출력 인터페이스(INT2)를 포함한다.
물론, 이 도 7은 본 발명의 의미 내에서 코덱(인코더 또는 디코더)의 구조적 실시예의 일 예를 예시한다. 아래에 언급되는 도 3 내지 도 6은 훨씬 더 기능적인 이러한 코덱들의 상세한 실시예들이다.
이제 본 발명의 의미 내에서 인코더 디바이스를 설명하기 위해 도 3에 대한 참조가 이루어진다.
인코더의 전략은 앰비소닉 신호의 채널들을 가능한 한 역상관시키고 이들을 코어 코덱으로 인코딩하는 것이다. 이 전략은 디코딩된 앰비소닉 신호에서 아티팩트들을 제한하는 것을 가능하게 한다. 보다 구체적으로, 여기서 우리는 다중 모노 인코딩 전에 입력 채널들의 최적화된 역상관을 적용하고자 한다. 또한 특정 도메인(2D에서는 각도, 3D에서는 쿼터니언, 4D에서는 쿼터니언 쌍)에서 수행되기 때문에 인코더 및 디코더에 대한 컴퓨테이션 비용이 제한적인 보간은, 프레임 당 여러 번 고유값들 및 고유 벡터들로의 분해를 반복하기 보다는, PCA/KLT 분석을 위해 계산된 공분산 행렬들을 보간하는 것을 가능하게 한다.
그러나, 본 발명의 의미 내에서 수행되는 코어 인코딩을 논의하기 전에, 특히 아래에서 보여지는 지각 기준들의 함수로서 인코딩을 위해 할당된 비트 예산의 최적화와 같은 유리한 인코더의 일부 특징들이 여기에 제시된다.
여기에 설명된 인코더의 실시예에서, 후자는 통상적으로 표준화된 3GPP EVS("Enhanced Voiced Services") 인코더의 확장일 수 있다. 유리하게는, EVS 인코딩 비트레이트들은 EVS 비트 스트림의 구조를 수정하지 않고 사용될 수 있다. 따라서, 다중 모노 인코딩(아래에서 설명되는 도 3의 블록(340))은 여기에서 초광대역 오디오 대역에서의 인코딩을 위해 다음 비트레이트들: 9.6; 13.2; 16.4; 24.4; 32; 48; 64; 96 및 128kbps로 제한되는 각각의 변환된 채널에 대한 가능한 할당으로 기능한다.
물론 EVS 코덱을 수정함으로써 (할당에서 보다 상세한 세분성(granularity)을 갖기 위해) 부가적인 비트레이트들을 추가하는 것이 가능하다. EVS 이외의 코덱(예컨대, OPUS® 코덱)을 사용하는 것이 또한 가능하다.
일반적으로 인코딩의 세분성이 미세할수록, 비트레이트들의 가능한 조합들을 표현하기 위해 더 많은 비트들이 보존되어야 한다는 것을 염두에 둔다. 할당에서의 미세성과 비트 할당을 설명하는 부가적인 정보 사이의 타협이 이루어져야 한다. 이 할당은 아래에서 설명되는 도 3의 블록(320)에 의해 여기서 최적화된다. 이는 그 자체로 그리고 본 발명의 의미 내에서 회전 행렬을 설정하기 위해 고유벡터들로의 분해와 독립적으로 유리한 특징이다. 따라서 블록(320)에 의해 수행된 비트 할당은 별개의 보호의 대상일 수 있다.
도 3을 참조하면, 블록(300)은 인덱스 t의 현재 프레임에서 입력 신호(Y)를 수신한다. 라벨들을 복잡하게 하지 않기 위해 인덱스가 여기서 도시되지 않는다. 이는 크기 n × L의 행렬이다. 1-차 앰비소닉 맥락에 적응된 실시예에서, 우리는 SN3D 관례에 따라 정규화될 수 있는 n=4의 채널들 W, Y, Z, X(따라서 ACN 순서에 따라 정의됨)를 갖는다. 변형에서, 채널들의 순서는 대안적으로 예컨대, W, X, Y, Z(FuMa 관례에 따름)일 수 있고 정규화는 상이할 수 있다(N3D 또는 FuMa). 따라서 채널들 W, Y, Z, X은 연속적인 행들:
Figure pct00088
,
Figure pct00089
,
Figure pct00090
,
Figure pct00091
에 대응하며, 이는 1-차원 신호들
Figure pct00092
의 형태로 표시될 수 있을 것이다. 따라서 이는 프레임 t를 점유하는 1로부터 L까지의 연속적인 샘플들이다.
(각각의 채널의) 신호는 일반성을 잃지 않고 48kHz로 샘플링된다는 것이 가정된다. 프레임 길이는 일반성을 잃지 않고 20ms로 고정되는데 즉, L = 960개의 연속 샘플들이다. 대안적으로, 예컨대, 32kHz에서의 샘플링을 위해 L = 640개의 샘플들의 프레임 길이를 사용하는 것이 가능하다.
아래에서 설명되는 PCA/KLT 분석 및 PCA/KLT 변환은 시간 도메인에서 수행된다. 따라서, 서브대역 변환 또는 보다 일반적으로 주파수 변환을 반드시 수행해야 할 필요 없이 여기에서 시간 도메인에서 유지된다는 것이 이해된다.
각각의 프레임에서, 인코더의 블록(300)은 Y로 표시된 사전프로세싱된 입력 신호를 획득하기 위해 사전프로세싱(선택적)을 적용한다. 이는 입력 신호 채널들의 각각의 새로운 20ms 프레임의 고역 통과 필터링(통상적으로 20Hz의 차단 주파수를 가짐)일 수 있다. 이 동작은 블록(300)으로부터 출력된 신호가 제로 평균을 갖는 것으로 간주될 수 있도록 공분산 행렬의 추정을 바이어싱할 가능성이 있는 연속적인 컴포넌트를 제거하는 것을 허용한다. 전달 함수는
Figure pct00093
로 표시되어서, 각각의 채널에 대해:
Figure pct00094
를 갖는다. 블록(300)이 적용되지 않는 경우,
Figure pct00095
가 된다. 블록(340)의 저역 통과 필터는 또한 다중 모노 인코딩을 수행하기 위해 적용될 수 있지만, 블록(300)이 적용될 때, 블록(340)에서 사용될 수 있는 모노 인코딩의 사전프로세싱 동안 고역 통과 필터링은 바람직하게는 디스에이블되어, 동일한 사전프로세싱의 반복을 회피하고 이에 따라 전체 복잡성을 감소시킨다.
위의
Figure pct00096
로 표시된 전달 함수는 입력 신호의 n 채널들 각각에 이 필터를 적용함으로써 다음의 유형일 수 있고:
Figure pct00097
이 경우, 계수들은 아래의 표에서 도시된 바와 같을 수 있다.
8 kHz 16 kHz 32 kHz 48 kHz
Figure pct00098
0.988954248067140 0.994461788958.195 0.997227049904470 0.998150511190452
Figure pct00099
-1.977908496134280 -1.988923577916390 -1.994454099808940 -1.996301022380904
Figure pct00100
0.988954248067140 0.994461788958195 0.997227049904470 0.998150511190452
Figure pct00101
1.977786483776764 1.988892905899653 1.994446410541927 1.996297601769122
Figure pct00102
-0.978030508491796 -0.988954249933127 -0.994461789075954 -0.996304442992686
대안적으로, 다른 유형의 필터 예컨대, 50Hz의 주파수를 갖는 6차 버터워스(Butterworth) 필터가 사용될 수 있다.
일부 변형들에서, 사전프로세싱은 동일한 수의 채널들을 유지하거나 채널들의 수를 감소시킬 수 있는 고정된 행렬화 단계를 포함할 수 있다. B-포맷의 앰비소닉 신호의 4개 채널들에 적용된 행렬화의 예는 아래에서 주어진다:
Figure pct00103
이 경우에, 이 사전프로세싱은 오리지널 포맷의 채널들을 찾기 위해
Figure pct00104
를 통해 디코딩된 신호의 행렬화를 적용함으로써 디코딩 시에 리버싱되어야 할 필요가 있을 것이란 점에 주의한다.
다음 블록(310)은 각각의 프레임 t에서, PCA/KLT에 의해 고유벡터들을 결정하고 이러한 고유벡터들에 의해 형성된 변환 행렬이 실제로 회전을 특성화한다는 것을 검증함으로써 획득된 변환 행렬을 추정한다. 블록(310)의 동작의 세부사항들은 도 4를 참조하여 아래에서 추가로 주어진다. 이 변환 행렬은 채널들을 역상관시키도록 채널들의 행렬화를 수행하여, 블록(340)에 의한 독립적인 다중 모노 유형의 인코딩을 적용하는 것을 가능하게 한다. 아래에서 상세히 설명되는 바와 같이, 블록(310)은 변환 행렬을 표현하는 양자화 인덱스들 및 선택적으로, 아래에서 또한 설명되는 바와 같이 현재 프레임 t의 서브프레임 당 변환 행렬의 보간들의 수를 인코딩하는 정보를 멀티플렉서에 전송한다.
블록(320)은 B 비트들의 주어진 예산에 기초하여 (PCA/KLT 변환 후) 각각의 채널에 대한 최적의 비트레이트 할당을 결정한다. 이 블록은 비트레이트들의 각각의 가능한 조합에 대한 점수를 계산함으로써 채널들 간의 비트레이트의 분포를 찾고; 이 점수를 최대화하는 조합을 찾음으로써 최적의 할당이 발견된다.
각각의 조합에 대한 점수를 정의하기 위해 여러 기준들이 사용될 수 있다.
예컨대, 채널의 모노 인코딩에 대한 가능한 비트레이트들의 수는 초광대역 오디오 대역을 갖는 EVS 코덱의 9개의 개별 비트레이트들: 9.6; 13.2; 16.4; 24.4; 32; 48; 64; 96 및 128kbps로 제한될 수 있다. 그러나, 본 발명에 따른 코덱이 인덱스 t의 현재 프레임에서 B 비트들의 예산과 연관된 주어진 비트레이트로 동작하는 경우, 일반적으로 이러한 나열된 비트레이트들의 서브세트만이 사용될 수 있다. 예컨대, 코덱 비트레이트가 4 채널들을 표현하기 위해 4x13.2 = 52.8kbps로 고정되는 경우 그리고 각각의 채널이 채널들 각각에 대해 초광대역을 보장하기 위해 9.6kbps의 최소 예산을 수신하는 경우, 별개의 채널들을 인코딩하기 위한 비트레이트들의 가능한 조합들은 사용된 비트레이트가 다음에 대응하는 사용 가능한 비트레이트보다 낮게 유지된다는 제약들을 준수해야 하며:
Figure pct00105
여기서
Figure pct00106
는 아래에 설명된 바와 같이 프레임 당 인코딩된 부가적인 정보(비트 할당 + 회전 데이터)에 대한 비트 예산이다. 예컨대,
Figure pct00107
는 4-채널 앰비소닉 인코딩의 경우
Figure pct00108
= 20 ms 프레임 당 55 비트(즉, 2.75kbps) 정도일 수 있고; 이는 회전 행렬을 인코딩하기 위한 51 비트들 및 (아래에서 설명되는 바와 같이) 별개의 채널들의 인코딩을 위한 비트 할당을 인코딩하기 위한 4 비트들을 포함한다. 4x13.2 = 52.8kbps의 전체 비트레이트에 대해, 이는 이에 따라
Figure pct00109
= 50.05kbps의 예산을 남긴다.
채널 당 비트레이트들의 관점에서, 이는 채널 당 비트레이트들의 다음 치환들을 제공한다:
- 싱글톤(9.6, 9.6, 9.6, 9.6) - 합계 = 38.4
- (13.2, 9.6, 9.6, 9.6)의 치환들 - 합계 = 42 kbps
- (13.2, 13.2, 9.6, 9.6)의 치환들 - 합계 = 45.6 kbps
- (13.2, 13.2, 13.2, 9.6)의 치환들 - 합계 = 49.2 kbps
- (16.4, 9.6, 9.6, 9.6)의 치환들 - 합계 = 45.2 kbps
- (16.4, 13.2, 9.6, 9.6)의 치환들 - 합계 = 48.8 kbps
최대 예산 제한과 관련된 일부 조합들은 다른 것들보다 훨씬 낮은 비트레이트를 가지며 마지막으로 2개의 관련 조합들이 유지될 수 있다는 것을 알 수 있다:
- (13.2, 13.2, 13.2, 9.6)의 치환들 - 4개의 경우들 및 50.5 ― 49.2 = 1.3 kbps의 미사용 비트레이트
- 그리고 (16.4, 13.2, 9.6, 9.6)의 치환들 - 12개의 경우들 및 50.5 ― 48.8 = 1.7kbps의 미사용 비트레이트.
이는 16개 조합들이 특히 관심이 있고 4비트들(16개 값들)로 인코딩될 수 있다는 것을 예시하는 것을 가능하게 한다. 또한, 선택된 할당에 의존하여 특정 수의 비트들이 잠재적으로 미사용인 채로 유지된다.
PCA/KLT 프로세싱에 기초하고 유연한 비트 할당을 허용하는 적응형 행렬화의 인코딩은 미사용 비트들 및 일부 채널들에 대해, 채널들 각각 사이에서 균등하게 분포된 비트레이트(예컨대, 채널 당 13.2kbps)보다 낮은 비트레이트(예컨대, 9.6kbps)를 초래할 수 있다는 것을 알 수 있다.
이러한 상황을 개선하기 위해, 블록(320)은 그 후 PCA/KLT 변환(블록(310)으로부터의 출력)에 기인한 4 채널들에 대한 비트레이트들의 모든 가능한(적절한) 조합들을 평가하고 이들에 점수를 할당할 수 있다. 이 점수는,
- 각각의 채널의 에너지, 및
- 미리 저장될 수 있고 주관적 또는 객관적인 테스트들로부터의 결과인 평균 점수에 기초하여 계산되고; MOS(테스터들의 패널에 대한 평균 점수인 "Mean Opinion Score")로 표시된 이 점수는 할당된 비트레이트와 연관된다.
이 점수는 그 후 다음 방정식에 의해 정의될 수 있으며:
Figure pct00110
여기서
Figure pct00111
는 채널 I에 대해 신호
Figure pct00112
의 (인덱스 t의) 현재 프레임의 에너지이며, 여기서
Figure pct00113
이다.
최적의 할당은 다음과 같도록 이루어질 수 있다:
Figure pct00114
.
대안적으로, 팩터 Ei는 가능한 부호 있는 치환 후에 그리고 블록(310)에 입력되는 신호의 고유값들로의 분해에 기인하는 채널 i와 연관된 고유값에 의해 취해진 값으로 고정될 수 있다.
MOS 점수
Figure pct00115
는 바람직하게는 비트레이트
Figure pct00116
(비트/초)에 대응하는 20 ms 프레임 당 예산
Figure pct00117
(비트들의 수)에 대해 블록(340)에서 다중 모노 인코딩을 위해 사용되는 코덱의 주관적 품질 점수이다. 우선, 우리는 다음에 의해 주어진 EVS 표준화된 인코더의 (평균) 주관적 MOS 점수들을 사용할 수 있다:
Figure pct00118
0 1 2 3 4 5 6 7 8
Figure pct00119
192 264 328 488 640 960 1280 1920 2560
Figure pct00120
9600 13200 16400 24400 32000 48000 64000 96000 128000
Figure pct00121
3.62 3.79 4.25 4.60 4.53 4.82 4.83 4.85 4.87
대안적으로, 나열된 비트레이트들 각각에 대한 다른 MOS 점수 값들은 코덱의 품질을 예측하는 다른 테스트들(주관적 또는 객관적)로부터 유도될 수 있다. 신호의 유형(예컨대, 배경 노이즈가 없는 스피치 신호, 주변 노이즈를 갖는 스피치, 또는 음악 또는 혼합된 콘텐츠)의 분류에 따라, EVS 코덱에 의해 구현된 분류 방법들을 재사용함으로써 그리고 비트 할당을 수행하기 전에 앰비소닉 입력 신호의 W 채널에 이들을 적용함으로써 현재 프레임에서 사용되는 MOS 점수들을 적응시키는 것이 또한 가능하다. 또한, MOS 점수는 다양한 유형들의 방법론들 및 레이팅 스케일들: 1로부터 5까지의 MOS(절대), DMOS(1로부터 5까지), MUSHRA(0으로부터 100까지)에 기인한 평균 점수에 대응할 수 있다.
EVS 인코더가 다른 코덱에 의해 대체되는 변형에서, 비트레이트들
Figure pct00122
및 점수들
Figure pct00123
의 리스트는 이 다른 코덱에 기초하여 대체될 수 있다. EVS 인코더에 부가적인 인코딩 비트레이트들을 추가하고 이에 따라 비트레이트들 및 MOS 점수들의 리스트를 보완하거나 심지어 EVS 인코더 및 잠재적으로 연관된 MOS 점수들을 수정하는 것이 또한 가능하다.
다른 대안에서, 채널들 간의 할당은 전력 α만큼 에너지를 가중함으로써 정제되며, 여기서 α는 0 내지 1의 값을 취한다. α 값을 변동시킴으로써, 우리는 이에 따라 할당에서 에너지의 영향을 제어할 수 있고: α가 1에 가까울수록, 점수에 에너지가 더 중요하고, 이에 따라 채널들 간의 할당이 더 불균일하다. 반대로, α가 0에 가까울수록, 에너지가 덜 중요하고 채널들 간에 할당이 더 균일하게 분포된다. 따라서 점수는 다음의 형태로 표현된다:
Figure pct00124
다른 대안에서, 할당을 보다 안정적으로 만들기 위해, 제2 가중치가 점수 함수에 추가되어 프레임간 비트레이트 변경들에 페널티를 가할 수 있다. 비트레이트 조합이 프레임 t-1에서와 프레임 t에서 동일하지 않은 경우, 점수에 패널티가 추가된다. 그 후, 점수는 다음의 형태로 표현된다:
Figure pct00125
여기서
Figure pct00126
Figure pct00127
=
Figure pct00128
일 때 그의 값으로서 미리 정해진 상수(예컨대, 0.1)를 갖고,
Figure pct00129
일 때
Figure pct00130
이다.
이 부가적인 가중치는, 채널들 간 비트레이트에서 지나치게 빈번한 변동들을 제한하는 것을 가능하게 한다. 이 가중치를 통해, 에너지에서 상당한 변경들만이 비트레이트의 변경을 초래한다. 또한 상수 값은 할당의 안정성을 조정하기 위해 변동될 수 있다.
다시 도 3을 참조하면, 비트레이트가 각각의 프레임에 대해 계산되면, 이 비트레이트는 예컨대, 모든 비트레이트 조합들에 대해 철저하게 블록(330)에 의해 인코딩된다. 9개의 비트레이트들 및 4 채널들의 경우에, 요구되는 비트레이트는
Figure pct00131
이며, 여기서
Figure pct00132
는 다음 정수로 반올림하는 것에 대응한다. 4개의 비트레이트들의 조합은 인덱스:
Figure pct00133
의 형태로 인코딩될 수 있다. 그러나 주어진 비트 예산과 관련된 비트레이트들의 상이한 조합들을 열거하고(초기에, 오프라인) 이러한 조합들을 표현하기 위해 최소 비트레이트를 사용하는 것을 선호될 수 있다. 인덱스는 그 후 "치환 코드" + "조합 오프셋" 유형의 인코딩에 의해 표현될 수 있으며; 예컨대, (13.2, 13.2, 13.2, 9.6)의 4개의 치환들 및 (16.4, 13.2, 9.6, 9.6)의 12개의 치환들을 포함하는 16개의 비트레이트 조합들을 인코딩하기 위해 4비트 인덱스를 사용하는 예에서, 처음 4개의 가능한 치환들(0의 오프셋 및 0 내지 3 범위의 코드를 가짐)을 인코딩하기 위해 인덱스 0-3가 사용되고 다른 12개의 가능한 치환들(4의 오프셋 및 0 내지 11의 코드를 가짐)을 인코딩하기 위해 인덱스들 4-15가 사용될 수 있다.
다시 도 3을 참조하면, 멀티플렉싱 블록(350)은 블록(310)에서 오는 n개의 행렬화된 채널들 및 블록(320)에서 오는 각각의 채널에 할당된 비트레이트들을 입력으로 취하여, 예컨대, EVS 코덱에 대응하는 코어 코덱으로 상이한 채널들을 별개로 인코딩한다. 사용된 코어 코덱이 스테레오 또는 다중 채널 인코딩을 허용하는 경우, 다중 모노 접근법은 다중 스테레오 또는 다중 채널 인코딩에 의해 대체될 수 있다. 채널들이 인코딩되면, 연관된 비트 스트림이 멀티플렉서에 전송된다(블록 350).
전체 예산의 일부가 완전히 사용되지 않은 프레임들에서, 멀티플렉서(블록 350)는 현재 프레임에 할당된 비트 예산 즉
Figure pct00134
비트에 도달하기 위해 0비트 스터핑(stuffing)을 적용할 수 있다. 대안적으로, 사용 가능한 전체 예산을 사용하기 위해 변환된 채널들을 인코딩하기 위해 나머지 비트 예산이 재분배될 수 있으며, 다중 모노 인코딩이 EVS 유형 기술에 기초하는 경우, 특정된 3GPP EVS 인코딩 알고리즘은 부가적인 비트레이트를 도입하기 위해 수정될 수 있다. 이 경우에,
Figure pct00135
Figure pct00136
간의 대응성을 정의하는 표에 이러한 부가적인 비트레이트들을 통합하는 것이 또한 가능하다.
비트는 또한 2개의 인코딩 모드들:
- 회전 행렬의 인코딩을 갖는 본 발명에 따른 인코딩, 및
- (예컨대, 앰비소닉 신호가 매우 확산된 사운드 소스들 또는 특정 선호 방향들 주위에서 공간적으로 확산되는 다중 소스들 ― 이 경우에, 앰비소닉 채널들은 더 격리된 포인트 소스들을 혼합하는 사운드들의 경우보다 덜 상관됨 ― 을 포함할 때) 이전 프레임의 회전 행렬이 또한 단위 행렬인 경우 직접 다중 모노 인코딩에 이르는 단위 행렬로 제한된 회전 행렬(이에 따라 송신되지 않음)을 갖는 본 발명에 따른 인코딩 사이에서 스위칭할 수 있도록 예약될 수 있다.
이 두 모드들 사이의 선택은 현재 프레임이 회전 파라미터들의 송신 없이 단위 행렬로 제한된 회전 행렬을 사용하는지(비트 = 0) 또는 회전 행렬이 인코딩되는지(비트 = 1)를 표시하기 위해 스트림에서 비트를 사용하는 것을 암시한다. 비트 = 0일 때, 일부 변형들에서, 별개의 채널들에 고정된 비트들의 할당을 사용하고 비트 할당을 송신하지 않는 것이 가능하다.
이제 PCA/KLT 분석 및 변환을 적용하는 블록(310)을 상세히 설명하기 위해 도 4에 대한 참조가 이루어진다. 이 블록에서, 인코더는 블록(400)의 앰비소닉(사전프로세싱된) 채널들로부터 공분산 행렬을 계산한다:
Figure pct00137
대안적으로, 이 행렬은 상관 행렬로 대체될 수 있으며, 여기서 채널들은 그 개개의 표준 편차에 의해 사전 정규화되거나 일반적으로 상대적 중요도를 반영하는 가중치가 채널들 각각에 적용될 수 있지만; 정규화 항
Figure pct00138
이 생략되거나 다른 값(예컨대, 1/L)으로 대체될 수 있다. 값들
Figure pct00139
는 xi와 xj 사이의 분산에 대응한다.
인코더는 그 후 블록(410)에서, 행렬 C의 고유값들 및 고유벡터들을 계산함으로써 고유값들로의 분해(EVD("Eigenvalue Decomposition"))를 수행한다. 인덱스 t-1의 이전 프레임에서 획득된 고유벡터들
Figure pct00140
이 바람직하게는 저장되고 후속적으로 사용되기 때문에, 고유벡터들은 프레임 t의 인덱스를 표시하기 위해 여기에서
Figure pct00141
로 표시된다. 고유값들은
Figure pct00142
,
Figure pct00143
, ...,
Figure pct00144
로 표시된다.
대안적으로, 사전프로세싱된 채널들 X의 SVD(singular value decomposition)가 사용될 수 있다. 따라서 우리는 특이 벡터들(좌측 상 U와 우측 상 V) 및 특이 값들
Figure pct00145
를 획득한다. 이 경우에, 고유값들
Figure pct00146
Figure pct00147
이고 고유벡터들
Figure pct00148
는 좌측 U의 n개의 특이 벡터들(열)에 의해 주어진다는 것이 고려될 수 있다.
그 후, 인코더는 이전 프레임 t-1의 변환 행렬과 너무 많은 불일치 ― 이는 이전 프레임과의 경계에서의 클릭들과 관련하여 문제들을 야기할 수 있음 ― 를 회피하기 위해 블록(420)에서 프레임 t에 대한 변환 행렬의 열들의 제1 부호 있는 치환을 적용한다(여기서 열들이 고유벡터들임).
따라서, 프레임 t에 대해 변환 행렬의 대략적인 초안이 획득되면, 블록(430)은 인덱스 t의 현재 프레임으로부터 n개의 추정된 고유벡터들
Figure pct00149
및 인덱스 t-1의 이전 프레임으로부터 저장된 n개의 고유벡터들
Figure pct00150
을 취하고, 추정된 벡터들
Figure pct00151
상에 부호 있는 치환을 적용하여, 이들이 가능한 한
Figure pct00152
에 가깝게 한다. 따라서 프레임 t의 고유벡터들은 연관된 기저가 프레임 t-1의 기저에 가능한 한 가깝도록 치환된다. 이는 (변환 행렬이 채널들에 적용된 후) 변환된 신호들의 프레임들의 연속성을 개선하는 효과를 갖는다.
다른 제약은 변환 행렬이 회전과 대응해야 한다는 것이다. 이러한 제약은, 인코더가 변환 행렬을 일반화된 오일러 각도들로 변환(블록 430)하여 위에서 본 바와 같이 미리 결정된 비트 예산으로 이들을 양자화(블록 440)할 수 있도록 보장한다. 이를 위해, 이 행렬의 행렬식은 양수여야 한다(통상적으로 +1과 동일함).
바람직하게는, 최적의 부호 있는 치환은 2개의 단계들에서 획득된다:
- 제1 단계(위에 제시된 도 2의 S4)는 축의 방향(배향)이 아니라 축에만 관심을 기울여, 2개의 프레임들 사이에서 가장 가까운 벡터들을 매칭시킨다. 이 문제는 비용을 최소화하는 구성을 찾는 것이 목표인 작업 할당의 조합 문제로서 공식화될 수 있다. 여기서 비용은 프레임들 t 및 t-1의 고유벡터 행렬들 간의 상호 상관의 절대 값의 트레이스로서 정의될 수 있다.
Figure pct00153
여기서 tr(.)은 행렬의 트레이스를 나타내고, abs(.)는 행렬의 모든 계수들에 절대 값 연산을 적용하는 것에 이르고, corr(V1, V2)는 벡터들 V1 및 V2 사이의 상관 행렬을 제공한다.
일 실시예에서, "헝가리식(Hungarian)" 방법(또는 "헝가리식 알고리즘")은 프레임 t의 고유벡터들의 치환을 제공하는 최적 할당을 결정하는 데 사용된다.
- 제2 단계(도 2의 S6)는 각각의 치환된 고유벡터의 방향/배향을 결정하는 것으로 구성된다. 블록(420)은 프레임 t의 치환된 고유벡터들
Figure pct00154
와 프레임 t-1의 고유벡터 사이의 상호 상관을 계산한다.
Figure pct00155
상호 상관 행렬
Figure pct00156
의 대각선 상의 값이 음수인 경우, 이는 고유벡터들의 방향들 간의 부호의 변화를 나타낸다. 그 후,
Figure pct00157
의 대응하는 고유벡터 상에서 부호 반전이 수행된다.
2개의 단계들의 말미에, 프레임 t의 변환 행렬은 다음 프레임에서, 저장된 행렬이
Figure pct00158
이 되도록
Figure pct00159
에 의해 지정된다.
대안적으로, 최적의 부호 있는 치환에 대한 검색은 3D 또는 4D로 변환되는 기저 행렬
Figure pct00160
또는
Figure pct00161
의 변화를 계산하고 기저 행렬의 이러한 변화를 단위 쿼터니언 또는 2개의 단위 쿼터니언들로 각각 변환함으로써 행해질 수 있다. 그 후 검색은 가능한 부호 있는 치환들의 세트를 표현하는 사전을 사용한 최근접 이웃 검색(nearest neighbor search)이 된다. 예컨대, 4D의 경우에, 4개 값들의 (총 24개 치환들 중) 12개의 가능한 짝수 치환들은 4D 벡터들로서 작성된 단위 쿼터니언들의 다음의 쌍들과 연관된다:
· (1, 0, 0, 0) 및 (1, 0, 0, 0)
· (0, 0, 0, 1) 및 (0, 0, -1, 0)
· (0, 1, 0, 0) 및 (0, 0, 0, -1)
· (0, 0, 1, 0) 및 (0, -1, 0, 0)]
· (0.5, -0.5, -0.5, -0.5) 및 (0.5, 0.5, 0.5, 0.5)
· (0.5, 0.5, 0.5, 0.5) 및 (0.5, -0.5, -0.5, -0.5)
· (0.5, -0.5, 0.5, -0.5) 및 (0.5, -0.5, 0.5, 0.5)
· (0.5, -0.5, 0.5, 0.5) 및 (0.5, -0.5, -0.5, 0.5)
· (0.5, 0.5, -0.5, 0.5) 및 (0.5, 0.5, -0.5, -0.5)
· (0.5, -0.5, -0.5, 0.5) 및 (0.5, 0.5, -0.5, 0.5)
· (0.5, 0.5, -0.5, -0.5) 및 (0.5, 0.5, 0.5, -0.5)
· (0.5, 0.5, 0.5, -0.5) 및 (0.5, -0.5, 0.5, -0.5)
(짝수) 최적 치환에 대한 검색은 미리 정의된 쿼터니언 쌍들의 사전으로서 위의 리스트를 사용하고 기저 행렬의 변화와 연관된 쿼터니언 쌍에 대해 최근접 이웃 검색을 수행함으로써 행해질 수 있다. 이 방법의 이점은 쿼터니언 및 쿼터니언-쌍 유형의 회전 파라미터들의 재사용이다.
다음 블록(460)에서 구현되는 연산은 부호 있는 치환들 이후의 변환 행렬이 실제로 회전 행렬이라고 가정하고; 변환 행렬은 반드시 일차이지만, 그의 행렬식은 또한 1과 동일해야 한다.
Figure pct00162
그러나 블록들(410 및 420)(EVD 및 부호 있는 치환들 이후)에 기인한 변환 행렬은 -1 또는 1의 행렬식을 가질 수 있는 직교(단일) 행렬이며, 이는 반사 또는 회전 행렬을 의미한다.
변환 행렬이 반사 행렬인 경우(그의 결정식이 -1과 동일한 경우), 이는 고유벡터(예컨대, 가장 낮은 값과 연관된 고유벡터)를 반전시키거나 2개의 열들(고유벡터들)을 반전시킴으로써 회전 행렬로 수정될 수 있다.
고유벡터 분해(예컨대, 기븐스(Givens) 회전) 또는 특이값 분해의 특정 방법들은 본질적으로 회전 행렬들(+1의 행렬식을 가짐)인 변환 행렬들로 이어질 수 있으며; 이 경우에, 행렬식이 +1임을 검증하는 단계는 선택적일 것이다.
블록(430)은 회전 행렬을 파라미터들로 변환한다. 바람직한 실시예에서, 각도 표현이 양자화를 위해 사용된다(4D 경우에 대해 6개의 일반화된 오일러 각도들, 3D 경우에 대해 3개의 오일러 각도들, 및 2D에서 하나의 각도). 앰비소닉 경우(4개 채널들)에 대해, David K. Hoffman, Richard C. Raffenetti, 및 Klaus Ruedenberg에 의한 "Generalization of Euler Angles to N-Dimensional Orthogonal Matrices"(the Journal of Mathematical Physics 13, 528 (1972)에서 공개됨) 기사에서 설명된 방법에 따라 6개의 일반화된 오일러 각도들이 획득되고; 평면 앰비소닉들(3개 채널들)의 경우에 대해, 3개의 오일러 각들이 획득되고, 스테레오 경우에 대해, 최신 기술에 잘 알려진 방법에 따라 회전 각도가 획득된다. 각도들의 값들은 블록(440)에서 미리 결정된 비트 예산으로 양자화된다. 바람직한 실시예에서, 스칼라 양자화가 사용되며 양자화 단계 크기는 예컨대, 각각의 각도에 대해 동일하다. 예컨대, 4개 채널들의 경우에 3x(8+9)=51 비트들로 6개의 일반화된 오일러 각도들이 인코딩된다([-π/2, π/2] 간격으로 정의된 3개의 각도들은 π/256의 단계 크기로 8비트로 인코딩되고 [-π, π] 간격으로 정의된 남은 3개의 각도들은 π/256의 단계 크기로 9비트로 인코딩됨). 변환 행렬의 양자화 인덱스들은 멀티플렉서에 전송된다(블록 350). 또한, 양자화를 위해 이용되는 파라미터들이 보간을 위해 사용되는 파라미터들과 매칭하지 않는 경우, 블록(440)은 양자화된 회전 행렬
Figure pct00163
로 양자화된 파라미터들을 변환할 수 있다.
대안적으로, 블록들(430, 440)은 다음과 같이 대체될 수 있다:
- 블록(430)은 회전 행렬들을, 한 쌍의 단위 쿼터니언(4 채널들의 경우), 단위 쿼터니언(3 채널들의 경우) 및 각도(2 채널들의 경우)로 변환할 수 있다.
4D 경우에 대한 한 쌍의 쿼터니언들로의 이러한 변환은 다음 의사 코드에 의해 계수들이 R[i,j], i,j=0…3으로 표시되는 회전 행렬에 대해 수행될 수 있다:
다음의 경우의 연관된 행렬 A[i, j]의 계산:
A[0,0] = R[0,0] + R[1,1] + R[2,2] + R[3,3]
A[1,0] = R[1,0] ― R[0,1] + R[3,2] ― R[2,3]
A[2,0] = R[2,0] ― R[3,1] ― R[0,2] + R[1,3]
A[3,0] = R[3,0] + R[2,1] ― R[1,2] ― R[0,3]
A[0,1] = R[1,0] ― R[0,1] ― R[3,2] + R[2,3]
A[1,1] = -R[0,0] ― R[1,1] + R[2,2] + R[3,3]
A[2,1] = -R[3,0] ― R[2,1] ― R[1,2] ― R[0,3]
A[3,1] = R[2,0] ― R[3,1] + R[0,2] ― R[1,3]
A[0,2] = R[2,0] + R[3,1] ― R[0,2] ― R[1,3]
A[1,2] = R[3,0] ― R[2,1] ― R[1,2] + R[0,3]
A[2,2] = -R[0,0] + R[1,1] ― R[2,2] + R[3,3]
A[3,2] = -R[1,0] ― R[0,1] ― R[3,2] ― R[2,3]
A[0,3] = R[3,0] ― R[2,1] + R[1,2] ― R[0,3]
A[1,3] = -R[2,0] ― R[3,1] ― R[0,2] ― R[1,3]
A[2,3] = R[1,0] + R[0,1] ― R[3,2] ― R[2,3]
A[3,3] = -R[0,0] + R[1,1] + R[2,2] ― R[3,3]
A=A/4
연관된 행렬로부터의 2개의 쿼터니언들의 계산
A2 = square (A) # square of coefficients
q1 = sqrt (A2.sum (axis = 1)) # sum the rows
q2 = sqrt (A2.sum (axis = 0)) # sum the columns
부호들의 결정
For k=0..3 : If sign(A[i,k])<0, Then q2[k] = -q2[k]
For k=0..3 : If sign(A[k,j])!=sign(q1[k]*q2[j]), Then q1[k] = -q1[k]
3D 경우에 대한 쿼터니언으로의 변환은 행렬에 대해 다음과 같이 수행될 수 있다:
크기 3x3의 R[i,j] i,j=0…2:
단순화된 관련 행렬의 계산:
q[0]=(R[0,0]+R[1,1]+R[2,2]+1)^2 + (R[2,1]-R[1,2])^2 + (R[0,2]-R[2,0])^2 + (R[1,0]-R[0,1])^2
q[1]=(R[2,1]-R[1,2])^2 + (R[0,0]-R[1,1]-R[2,2]+1)^2 + (R[1,0]+R[0,1])^2 + (R[2,0]+R[0,2])^2
q[2]=(R[0,2]-R[2,0])^2 + (R[1,0]+R[0,1])^2 + (R[1,1]-R[0,0]-R[2,2]+1)^2 + (R[2,1]+R[1,2])^2
q[3]=(R[1,0]-R[0,1])^2 + (R[2,0]+R[0,2])^2 + (R[2,1]+R[1,2])^2 + (R[2,2]-R[0,0]-R[1,1]+1)^2
For i=0..3 : q[i] = sqrt(q[i])/4
쿼터니언 q의 계산
If (R[2,1]-R[1,2])<0, q[1]=-q[1]
If (R[0,2]-R[2,0])<0, q[2]=-q[2]
If (R[1,0]-R[0,1])<0, q[3]=-q[3]
2x2 행렬의 경우에 대해, 각도는 이미 알려진 최신 기술의 방법에 따라 계산된다.
일부 변형들에서, 단위 쿼터니언들 q1, q2(4D 경우) 및 q(3D 경우)는 최신 기술에서 알려진 축 각도 표현들로 변환될 수 있다.
- 블록(440)은 표시된 도메인에서 양자화를 수행할 수 있다:
* 4 채널들의 경우: 단위 쿼터니언들의 쌍 q1 및 q2는 차원 4의 구형 양자화 사전에 의해 양자화되고; 관례 상, (q1 및 -q1은 동일한 3D 회전에 대응하기 때문에) q1은 반구형 사전으로 양자화되고, q2는 구형 사전으로 양자화된다. 사전들의 예들은 4 차원들의 다면체를 기초하여 미리 정의된 포인트들에 의해 주어질 수 있고; 일부 변형들에서, 쿼터니언 쌍과 등가일 이중 연관된 축 각도 표현을 양자화하는 것이 가능하다.
* 3 채널들의 경우: 단위 쿼터니언은 4 차원들의 구형 양자화 사전에 의해 양자화되고 ― 사전들의 예들은 4 차원들의 다면체에 기초하여 미리 정의된 포인트들에 의해 주어질 수 있다.
* 2 채널들의 경우: 각도는 균일 스칼라 양자화에 의해 양자화된다.
이제 우리는 2개의 연속적인 프레임들 사이의 회전 행렬의 보간을 위한 블록(460)을 설명한다. 이는 이들 행렬들의 적용 이후 채널들의 불연속성들을 평활화한다. 통상적으로, 2개의 세트들의 각도들 또는 쿼터니언들이 이전 프레임 t-1으로부터 다음 프레임 t까지 너무 상이한 경우, 이들 2개의 프레임들 사이에서, 이들 2개의 프레임들 사이의 서브프레임들에서 평활화된 트랜지션이 적용되지 않은 경우 가청 클릭들이 문제가 된다. 그 후, 프레임 t1에 대해 계산된 회전 행렬과 프레임 t에 대해 계산된 회전 행렬 사이에서 트랜지션 보간이 수행된다. 인코더는 블록(460)에서 변환 후 다양한 채널들의 과도하게 급속한 변동들을 회피하기 위해 현재 프레임과 이전 프레임 사이의 회전의 (양자화된) 표현을 보간한다. 보간들의 수는 고정되거나(미리 결정된 값과 동일함)하거나 적응될 수 있다. 각각의 프레임은 그 후 블록(450)에서 결정된 보간들의 수의 함수로서 서브프레임들로 분할된다. 따라서, 적응형 보간이 사용되는 경우, 블록(450)은 수행될 보간들의 수, 및 이에 따라 이 수가 적응적으로 결정되는 경우에 제공될 서브프레임들의 수를 선택된 비트들의 수로 인코딩할 수 있고; 고정된 보간의 경우에, 어떠한 정보도 인코딩되지 않아야 한다.
다음으로, 블록(460)은 회전 행렬을 회전 행렬을 표현하는 특정 도메인으로 변환한다. 프레임은 서브프레임들로 분할되고 선택된 도메인에서, 각각의 서브프레임에 대해 보간이 수행된다.
1-차 앰비소닉 입력 신호(4개 채널들 W, X, Y, Z을 가짐)의 경우, 블록(460)에서, 인코더는 6개의 양자화된 오일러 각도들로부터 양자화된 4D 회전 행렬을 재구성하고 이는 그 후 보간 목적들을 위해 2개의 단위 쿼터니언들로 변환된다. 인코더에 대한 입력이 평면 앰비소닉 신호(3 채널들 W, X, Y)인 변형에서, 블록(460)에서, 인코더는 3개의 양자화된 오일러 각도들로부터 양자화된 3D 회전 행렬을 재구성하고 이는 그 후 보간 목적들을 위해 단위 쿼터니언으로 변환된다. 인코더 입력이 스테레오 신호인 변형에서, 인코더는 블록(460)에서 회전 각도로 양자화된 2D 회전의 표현을 사용한다.
4 채널들을 갖는 실시예에서, 프레임 t와 프레임 t-1 사이의 회전 행렬의 보간을 위해, 프레임 t에 대해 계산된 회전 행렬은 Cayley의 인수분해를 통해 2개의 쿼터니언들(쿼터니언 쌍)로 인수분해되며, 우리는 이전 프레임 t-1에 대해 저장되고 (
Figure pct00164
,
Figure pct00165
)로 표시된 쿼터니언 쌍을 사용한다.
각각의 서브프레임에 대해, 쿼터니언들은 각각의 서브프레임에서 2씩 보간된다.
좌측 쿼터니언(
Figure pct00166
)에 대해, 블록은 2개의 가능한 (
Figure pct00167
또는
Figure pct00168
) 사이의 최단 경로를 결정한다. 경우에 의존하여, 현재 프레임의 쿼터니언의 부호가 반전된다. 그 후, SLERP(spherical linear interpolation)을 사용하여 좌측 쿼터니언에 대한 보간을 계산된다.
Figure pct00169
여기서, α는 보간 팩터(
Figure pct00170
=1/K, 2/K, ... 1)에 대응하고,
Figure pct00171
이다.
우측 쿼터니언(
Figure pct00172
)에 대해, 좌측 쿼터니언에 대한 반전이 존재한 경우, 우리는 패리티를 유지하고 우측 쿼터니언의 부호를 강제해야 한다. 이 부호 제약은 이하 "조인트 최단 경로 제약(joint shortest-path constraint)"으로서 지칭된다. 그 후 보간은 좌측 쿼터니언과 유사하게 계산된다:
Figure pct00173
여기서, α는 보간 팩터 (α = 1/K, 2/K, ... 1)에 대응하고
Figure pct00174
이다.
2개의 쿼터니언들에 대해 보간이 계산되면, 차원 4 × 4의 회전 행렬이 계산된다(각각, 평면 앰비소닉에 대해 3x3, 스테레오 경우에 대해 2x2).
회전 행렬로의 이 변환은 다음 의사 코드에 따라 수행될 수 있다:
4D 경우: 쿼터니언 쌍에 대해
- 이전에 설명된 바와 같이, 쿼터니언 및 안티-쿼터니언 행렬들이 계산되고 행렬 곱이 계산된다.
3D 경우: 쿼터니언 q = (w, x, y, z)에 대해, 우리는 크기 3x3의 행렬 M[i,j](i,j=0…2)를 획득한다.
xy=2*x*y
xz=2*x*z
yz=2*y*z
wx=2*w*x
wy=2*w*y
wz=2*w*z
xx=2*x*x
yy=2*y*y
zz=2*z*z
M[0][0] = 1-(yy+zz)
M[0][1] = (xy-wz)
M[0][2] = (xz+wy)
M[1][0] = (xy+wz)
M[1][1] = 1-(xx+zz)
M[1][2] = (yz-wx)
M[2][0] = (xz-wy)
M[2][1] = (yz+wx)
M[2][2] = 1-(xx+yy);
마지막으로, 보간 블록(460)에서 서브프레임당 컴퓨팅된 행렬
Figure pct00175
(또는 이들의 전치 행렬들)은 그 후 이렇게 발견된 회전 행렬들을 블록(300)에 의해 사전프로세싱된 앰비소닉 채널들에 적용함으로써 변환된 n 채널들을 생성하는 변환 블록(470)에서 사용된다.
아래에서, 우리는 블록(450)에서 결정될 서브프레임들의 수 K로 리턴하며, 여기서 이 수는 적응형이다. 현재 프레임과 이전 프레임 간의 최종 차이는 회전 행렬을 설명하는 파라미터들의 각도 차이로부터 직접 결정되거나 측정된다. 후자의 경우에, 우리는 연속적인 서브프레임들 사이의 각도 변동들이 감지 불가능하다는 것을 보장하기를 원한다. 적응형 수의 서브프레임들의 구현은 코덱의 평균 복잡도를 감소시키는 데 특히 유리하지만, 복잡도의 감소가 선택되는 경우, 고정된 수의 서브프레임들을 갖는 보간을 사용하는 것이 바람직할 수 있다.
프레임 t의 보정된 회전 행렬과 프레임 t-1의 회전 행렬 사이의 최종 차이는 2개의 프레임들 간의 채널 행렬화의 차이의 크기의 척도를 제공한다. 이 차이가 클수록, 블록(460)에서 행해지는 보간에 대한 서브프레임들의 수가 더 많아진다. 이 차이를 측정하기 위해 우리는 다음과 같이 이전 프레임과 현재 프레임의 변환 행렬 간의 상호 상관 행렬의 절대 값의 합계를 사용한다.
Figure pct00176
여기서 I n 은 단위 행렬이고,
Figure pct00177
는 인덱스 t 프레임의 고유벡터들이며,
Figure pct00178
은 여기에서 모든 계수들의 절대 값들의 합계에 대응하는 행렬 M의 노름이다. 다른 행렬 노름들(예컨대, 프레베니우스(Frobenius) 노름)이 사용될 수 있다.
2개의 행렬들이 동일한 경우, 이 차이는 0과 동일하다. 행렬들이 유사하지 않을수록, 차이 δ_t의 값이 커진다. 미리 결정된 임계치들이 δ_t에 적용될 수 있으며, 각각의 임계치는 예컨대, 다음 판단 로직에 따라 미리 정의된 수의 보간들과 연관된다:
임계치들: {4.0, 5.0, 6.0, 7.0}
보간을 위한 서브프레임들의 수 K: {10, 48, 96, 192}
따라서 세분들(서브프레임들)의 수를 제공하는 4개의 가능한 값들을 인코딩하는 데 단 2비트만으로 충분할 수 있다.
블록(450)에 의해 결정된 보간들의 수 K는 그 후 보간 모듈(460)로 전송되고, 적응형 경우에, 서브프레임들의 수는 멀티플렉서로 전송되는 이진 인덱스의 형태로 인코딩된다(블록 350).
보간의 구현은 궁극적으로 다중 모노 인코딩 이전에 입력 채널들의 역상관의 최적화를 적용하는 것을 가능하게 한다. 실제로, 이전 프레임 t-1 및 현재 프레임 t에 대해 각각 계산된 회전 행렬들은 역상관에 대한 이러한 검색으로 인해 매우 상이할 수 있지만, 그럼에도, 보간은 이러한 차이를 평활화하는 것을 가능하게 한다.
사용되는 보간은 그것이 특정 도메인(2D에서 각도, 3D에서 쿼터니언, 4D에서 쿼터니언 쌍)에서 수행되기 때문에 인코더 및 디코더에 대해 제한된 컴퓨팅 비용만을 요구한다. 이 접근법은 PCA/KLT 분석에 대해 계산된 공분산 행렬들을 보간하고 EVD 유형의 고유값 분해를 프레임당 여러 번 반복하는 것보다 더 유리하다.
블록(470)은 그 후 블록(460)에서 계산된 변환 행렬을 사용하여 서브프레임 당 앰비소닉 채널들의 행렬화를 수행한다. 이 행렬화 는 서브프레임당
Figure pct00179
를 계산하는 것과 같으며, 여기서 X(α)는
Figure pct00180
=1/K, 2/K, ... 1에 대한 크기 n × (L/K)의 서브 블록들에 대응한다. 그 후, 이들 채널들에 포함된 신호는 다중 모노 인코딩을 위해 블록(340)에 전송된다.
이제 본 발명의 예시적인 실시예에서 디코더를 설명하기 위해 도 5에 대한 참조가 이루어진다.
블록(500)에 의해 현재 프레임 t에 대한 비트 스트림의 디멀티플렉싱 이후, 할당 정보가 디코딩되며(블록 510), 이는 n개의 변환된 채널들 각각에 대해 수신된 비트 스트림(들)을 디멀티플렉싱 및 디코딩(블록 520)하는 것을 가능하게 한다.
블록(520)은 별개로 실행되는 코어 디코딩의 다수의 인스턴스들을 호출한다. 코어 디코딩은 선택적으로 그의 성능을 향상시키기 위해 수정된 EVS 유형일 수 있다. 다중 모노 접근법을 사용하여, 각각의 채널이 별개로 디코딩된다. 이전에 사용된 인코딩이 스테레오 또는 다중 채널 인코딩인 경우, 다중 모노 접근법은 디코딩을 위해 다중 스테레오 또는 다중 채널로 대체될 수 있다. 이렇게 디코딩된 채널들은 현재 프레임에 대한 회전 행렬 및 선택적으로, (보간이 적응형인 경우) 보간을 위해 사용될 서브프레임들의 수 K를 디코딩하는 블록(530)으로 전송된다. 각각의 행렬에 대해, 보간 블록(460)은 수 K가 블록(610)(도 6)에 의해 인코딩된 스트림에서 판독될 수 있는 서브프레임들로 프레임을 분할하고, 회전 행렬들을 보간하며, 목표는 송신 오류들이 없는 경우, 블록(470)에서 이전에 행해진 변환을 리버싱할 수 있도록 인코더의 블록(460)에서와 동일한 행렬들을 찾는 것이다.
블록(530)은 도 6을 참조하여 아래에서 설명되는 바와 같이 디코딩된 신호를 재구성하기 위해 블록(470)의 것을 리버싱하는 행렬화를 수행한다. 이 행렬화는 서브프레임당
Figure pct00181
를 계산하는 것과 같으며, 여기서
Figure pct00182
Figure pct00183
=1/K, 2/K, ... 1에 대한 크기 n × (L/K)의 연속 서브 블록들에 대응한다.
블록(530)은 일반적으로 도 3의 블록(310)에 의해 수행된 것에 대한 디코딩 및 리버스 PCA/KLT 합성을 수행한다. 현재 프레임에서 회전 양자화 파라미터들의 양자화 인덱스들은 블록(600)에서 디코딩된다. 스칼라 양자화가 사용될 수 있으며 양자화 단계 크기는 각각의 각도에 대해 동일하다. 적응형 경우에, 세트 {10, 48, 96, 192} 중에서 서브프레임들의 수 K를 찾기 위해 보간 서브프레임들의 수가 디코딩되고(블록 610); 프레임 길이 L이 상이한 일부 변형들에서, 값들의 이 세트가 적용될 수 있다. 디코더의 보간은 인코더에서 수행된 것과 동일하다(블록 460).
블록(620)은 블록(460)에서 계산된 변환 행렬들의 역(실제로는 전치 행렬들)을 사용하여 서브프레임 당 앰비소닉 채널들의 역 행렬화를 수행한다.
따라서, 본 발명은 특히 방향 일관성을 보장하는 매핑(부호에 의한 방향을 고려하는 것을 포함함)으로 변환 행렬들의 보간을 가능하게 하도록, 시간 도메인에서 하나의 프레임으로부터 다른 프레임으로의 회전 행렬들에 대해 제한되는 변환 행렬들의 특정 표현에 기초하는 오버랩-추가를 사용하는 MPEG-H 코덱과는 완전히 상이한 접근법을 사용한다.
본 발명의 일반적인 접근법은 PCA에 의해 특히 품질을 개선하기 위해 (특히 쿼터니언들/쿼터니언들의 쌍들의 도메인에서) 최적화된 방식으로 회전 행렬들이 되도록 강제되고 서브프레임들에 의해 보간되는 PCA 변환 행렬들을 통한 시간 도메인에서의 앰비소닉 사운드들의 인코딩이다. 보간 단계 크기는 상호 상관 행렬과 참조 행렬(단위 행렬) 간의 또는 보간될 행렬들 간의 차이의 기준에 의존하여 고정되거나 적응형이다. 회전 행렬들의 양자화는 일반화된 오일러 각도들의 도메인에서 구현될 수 있다. 그러나 바람직하게는, 이는 (각각) 쿼터니언들 및 쿼터니언 쌍들의 도메인에서 차원 3 및 4의 행렬들을 정량화하도록 선택될 수 있으며, 이는 양자화 및 보간을 위해 동일한 도메인에 유지되는 것을 가능하게 한다.
또한 하나의 프레임에서 다른 프레임으로의 클릭들 및 채널 반전의 문제들을 회피하기 위해 고유벡터들의 정렬이 사용된다.
물론, 본 발명은 예들로서 위에서 설명된 실시예들로 제한되지 않고, 다른 변형들로 확장된다.
따라서 위의 설명은 4 채널들의 경우들을 논의했다.
그러나 일부 변형들에서, 4보다 큰 수의 채널들을 인코딩하는 것이 또한 가능하다. 구현은 (기능 블록들의 관점에서) n = 4의 경우와 동일하지만, 쿼터니언 쌍에 의한 보간은 아래의 일반적인 방법으로 대체된다.
프레임들 t-1 및 t의 변형 행렬들은
Figure pct00184
Figure pct00185
.로 표시된다. 보간은
Figure pct00186
Figure pct00187
사이의 팩터 α로 수행될 수 있어서,
Figure pct00188
가 된다.
Figure pct00189
Figure pct00190
의 고유값 분해에 의해 직접 계산될 수 있다. 실제로
Figure pct00191
인 경우,
Figure pct00192
가 된다.
또한 위에서 설명된 실시예는 이러한 2, 3 또는 4 채널들의 경우들에 대해 보다 효율적인 반면, 이 변형은 또한 단위 쿼터니언의 쌍(4D 경우), 단위 쿼터니언(3D 경우) 또는 각도로 보간을 대체할 수 있지만, 이는 부가적인 대각화 단계 및 전력 계산들을 요구하기 때문에 덜 유리할 것이란 점에 주의한다.

Claims (15)

  1. 0보다 높은 차수의 앰비소닉 표현(ambisonic representation)의 N 채널들 각각에서 연속적인 샘플 프레임들(t-1, t)을 시간에 걸쳐 형성하는 오디오 신호들의 압축을 위한 인코딩 방법으로서,
    채널들에 기초하여 그리고 현재 프레임(t)에 대해, 채널간 공분산의 행렬을 형성하고 고유벡터(eigenvector)들의 행렬을 획득하기 위해 상기 공분산 행렬의 고유벡터들을 검색하는 단계,
    상기 고유벡터들의 행렬을 테스트하여 상기 고유벡터들의 행렬이 N-차원 공간에서의 회전을 표현한다는 것을 검증하고, 만약 아니라면, 상기 현재 프레임(t)에 대해 회전 행렬이 획득될 때까지 상기 고유벡터들의 행렬을 수정하는 단계, 및
    상기 신호들의 별개의 채널 인코딩 이전에 상기 N 채널들의 신호들에 상기 회전 행렬을 적용하는 단계를 포함하는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  2. 제1 항에 있어서,
    상기 현재 프레임(t)에 대해 획득된 고유벡터들의 행렬을 상기 현재 프레임(t)에 선행하는 프레임(t-1)에 대해 획득된 회전 행렬과 비교하는 단계, 및
    상기 이전 프레임(t-1)의 회전 행렬과의 일관성을 보장하기 위해 상기 현재 프레임(t)의 고유벡터들의 행렬의 열들을 치환(permuting)하는 단계를 더 포함하는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  3. 제2 항에 있어서,
    상기 열들의 치환은 상기 벡터들의 축들의 일관성을 보장하는 것을 가능하게 하고, 상기 방법은,
    상기 현재 프레임(t)의 각각의 고유벡터에 대해, 상기 이전 프레임(t-1)의 회전 행렬에서 대응하는 포지션의 열 벡터와의 방향 일관성을 검증하는 단계, 및
    비일관성의 경우에, 상기 현재 프레임(t)의 고유벡터들의 행렬에서 이 고유벡터의 엘리먼트들의 부호를 반전시키는 단계를 더 포함하는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  4. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 현재 프레임(t)에 대해 획득된 회전 행렬과 상기 현재 프레임(t-1)에 선행하는 프레임에 대해 획득된 회전 행렬 간의 차이를 추정하는 단계,
    상기 추정된 차이에 기초하여, 상기 현재 프레임(t)의 회전 행렬과 상기 이전 프레임(t-1)의 회전 행렬 사이에서 적어도 하나의 보간이 수행될지를 결정하는 단계를 더 포함하는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  5. 제4 항에 있어서,
    상기 추정된 차이에 기초하여, 상기 현재 프레임(t)의 회전 행렬과 상기 이전 프레임(t-1)의 회전 행렬 사이에서 수행될 보간들의 수가 결정되고,
    상기 현재 프레임은 상기 수행될 보간들의 수에 대응하는 수의 서브프레임들로 분할되고,
    적어도 보간들의 이러한 수는 네트워크를 통한 송신을 위해 인코딩되는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 회전 행렬의 행렬식 및 상기 고유벡터들의 행렬의 행렬식과 부호를 반전시키기 위한 상기 고유벡터들의 행렬의 열들 사이의 치환은 1과 동일하며,
    상기 고유벡터들의 행렬의 행렬식이 -1과 동일한 경우, 상기 고유벡터들의 행렬의 선택된 열의 엘리먼트들의 부호들이 반전되어서, 상기 행렬식이 1과 동일하게 되고 이에 따라 회전 행렬이 형성되는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 앰비소닉 표현은 1-차이고 상기 채널들의 수 N은 4이고, 상기 현재 프레임의 회전 행렬은 2개의 쿼터니언들에 의해 표현되는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  8. 제7 항에 있어서, 제6 항과 조합하여,
    현재 서브프레임에 대한 각각의 보간은 SLERP(spherical linear interpolation)이며, 상기 현재 서브프레임에 선행하는 서브프레임의 보간의 함수로서 수행되고 상기 이전 서브프레임의 쿼터니언들에 기초하는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  9. 제8 항에 있어서,
    상기 현재 서브프레임의 구형 선형 보간은 다음과 같이 상기 현재 서브프레임의 쿼터니언들을 획득하기 위해 수행되고:
    Figure pct00193

    Figure pct00194

    여기서:
    Figure pct00195
    는 상기 이전 서브프레임 t-1의 쿼터니언들 중 하나이고,
    Figure pct00196
    는 상기 이전 서브프레임 t-1의 다른 쿼터니언이고,
    Figure pct00197
    는 상기 현재 서브프레임 t의 쿼터니언들 중 하나이고,
    Figure pct00198
    는 상기 현재 서브프레임 t의 다른 쿼터니언이고,
    Figure pct00199
    ;
    Figure pct00200
    이고,
    α는 보간 팩터에 대응하는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 고유벡터들에 대한 검색은 시간 도메인에서 PCA(principal component analysis) 또는 KLT(Karhunen-Lo
    Figure pct00201
    ve transform)에 의해 수행되는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  11. 제1 항 내지 제10 항 중 어느 한 항에 있어서,
    상기 앰비소닉 채널당 비트 할당 예산을 예측하는 이전 단계가 구현되고,
    각각의 앰비소닉 채널에 대해, 상기 채널에서 현재 음향 에너지를 추정하는 단계,
    메모리에서, 이 앰비소닉 채널 및 상기 네트워크에서의 현재 비트레이트에 기초하여, 미리 결정된 품질 점수(MOS)를 선택하는 단계,
    상기 선택된 점수를 상기 추정된 에너지로 곱함으로써 이 채널에 대한 비트 할당을 위해 적용될 가중치를 추정하는 단계를 포함하는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  12. 0보다 높은 차수의 앰비소닉 표현의 N 채널들 각각에서 연속적인 샘플 프레임들(t 1, t)을 시간에 걸쳐 형성하는 오디오 신호들을 디코딩하기 위한 방법으로서,
    현재 프레임(t)에 대해, 이 현재 프레임의 N 채널들의 신호들에 추가하여, 회전 행렬의 파라미터들을 수신하는 단계,
    상기 파라미터들로부터 역회전 행렬을 구성하는 단계,
    상기 신호들의 별개의 채널 디코딩 이전에, 상기 수신된 N 채널들로부터의 신호들에 상기 역회전 행렬을 적용하는 단계를 포함하는,
    오디오 신호들의 압축을 위한 인코딩 방법.
  13. 제1 항 내지 제11 항 중 어느 한 항에 따른 방법을 구현하기 위한 프로세싱 회로를 포함하는 인코딩 디바이스.
  14. 제12 항에 따른 방법을 구현하기 위한 프로세싱 회로를 포함하는 디코딩 디바이스.
  15. 컴퓨터 프로그램으로서,
    제1 항 내지 제12 항 중 어느 한 항에 따른 방법을 구현하기 위한 명령들이 프로세싱 회로의 프로세서에 의해 실행될 때, 상기 명령들을 포함하는,
    컴퓨터 프로그램.
KR1020217031995A 2019-03-05 2020-02-10 회전들의 보간 및 양자화를 통한 공간화된 오디오 코딩 KR20210137114A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19305254.5 2019-03-05
EP19305254.5A EP3706119A1 (fr) 2019-03-05 2019-03-05 Codage audio spatialisé avec interpolation et quantification de rotations
PCT/EP2020/053264 WO2020177981A1 (fr) 2019-03-05 2020-02-10 Codage audio spatialisé avec interpolation et quantification de rotations

Publications (1)

Publication Number Publication Date
KR20210137114A true KR20210137114A (ko) 2021-11-17

Family

ID=65991736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217031995A KR20210137114A (ko) 2019-03-05 2020-02-10 회전들의 보간 및 양자화를 통한 공간화된 오디오 코딩

Country Status (8)

Country Link
US (1) US11922959B2 (ko)
EP (2) EP3706119A1 (ko)
JP (2) JP7419388B2 (ko)
KR (1) KR20210137114A (ko)
CN (1) CN113728382A (ko)
BR (1) BR112021017511A2 (ko)
WO (1) WO2020177981A1 (ko)
ZA (1) ZA202106465B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022120011A1 (en) * 2020-12-02 2022-06-09 Dolby Laboratories Licensing Corporation Rotation of sound components for orientation-dependent coding schemes
FR3118266A1 (fr) * 2020-12-22 2022-06-24 Orange Codage optimisé de matrices de rotations pour le codage d’un signal audio multicanal
CN115497485A (zh) * 2021-06-18 2022-12-20 华为技术有限公司 三维音频信号编码方法、装置、编码器和系统
EP4120255A1 (fr) 2021-07-15 2023-01-18 Orange Quantification vectorielle spherique optimisee
FR3136099A1 (fr) 2022-05-30 2023-12-01 Orange Codage audio spatialisé avec adaptation d’un traitement de décorrélation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101802907B (zh) * 2007-09-19 2013-11-13 爱立信电话股份有限公司 多信道音频的联合增强
KR101646650B1 (ko) * 2009-10-15 2016-08-08 오렌지 최적의 저-스루풋 파라메트릭 코딩/디코딩
US9769586B2 (en) * 2013-05-29 2017-09-19 Qualcomm Incorporated Performing order reduction with respect to higher order ambisonic coefficients
EP3017446B1 (en) * 2013-07-05 2021-08-25 Dolby International AB Enhanced soundfield coding using parametric component generation
CN104282309A (zh) * 2013-07-05 2015-01-14 杜比实验室特许公司 丢包掩蔽装置和方法以及音频处理系统

Also Published As

Publication number Publication date
JP2022523414A (ja) 2022-04-22
JP2024024095A (ja) 2024-02-21
WO2020177981A1 (fr) 2020-09-10
ZA202106465B (en) 2022-07-27
JP7419388B2 (ja) 2024-01-22
EP3706119A1 (fr) 2020-09-09
US20220148607A1 (en) 2022-05-12
CN113728382A (zh) 2021-11-30
EP3935629A1 (fr) 2022-01-12
BR112021017511A2 (pt) 2021-11-16
US11922959B2 (en) 2024-03-05

Similar Documents

Publication Publication Date Title
KR20210137114A (ko) 회전들의 보간 및 양자화를 통한 공간화된 오디오 코딩
EP3017446B1 (en) Enhanced soundfield coding using parametric component generation
US7953604B2 (en) Shape and scale parameters for extended-band frequency coding
AU2007208482B2 (en) Complex-transform channel coding with extended-band frequency coding
US8817991B2 (en) Advanced encoding of multi-channel digital audio signals
US20090112606A1 (en) Channel extension coding for multi-channel source
US20070172071A1 (en) Complex transforms for multi-channel audio
CN110085239B (zh) 对音频场景进行解码的方法、解码器及计算机可读介质
CN114270437A (zh) 参数编码与解码
EP3061088B1 (en) Decorrelator structure for parametric reconstruction of audio signals
Mahé et al. First-order ambisonic coding with quaternion-based interpolation of PCA rotation matrices
CA3142638A1 (en) Packet loss concealment for dirac based spatial audio coding
ES2965084T3 (es) Determinación de correcciones a aplicar a una señal de audio multicanal, codificación y decodificación asociadas
US20230260522A1 (en) Optimised coding of an item of information representative of a spatial image of a multichannel audio signal
EP3424048A1 (en) Audio signal encoder, audio signal decoder, method for encoding and method for decoding
CN116670759A (zh) 用于对多声道音频信号进行编码的旋转矩阵的优化编码