KR20140018929A - 유연한 구성 기능을 갖는 오디오 인코더 및 디코더 - Google Patents

유연한 구성 기능을 갖는 오디오 인코더 및 디코더 Download PDF

Info

Publication number
KR20140018929A
KR20140018929A KR1020137027429A KR20137027429A KR20140018929A KR 20140018929 A KR20140018929 A KR 20140018929A KR 1020137027429 A KR1020137027429 A KR 1020137027429A KR 20137027429 A KR20137027429 A KR 20137027429A KR 20140018929 A KR20140018929 A KR 20140018929A
Authority
KR
South Korea
Prior art keywords
channel
decoder
configuration
data
channel element
Prior art date
Application number
KR1020137027429A
Other languages
English (en)
Other versions
KR101712470B1 (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 KR20140018929A publication Critical patent/KR20140018929A/ko
Application granted granted Critical
Publication of KR101712470B1 publication Critical patent/KR101712470B1/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/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
    • 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/09Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
    • 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/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Stereophonic System (AREA)
  • Communication Control (AREA)
  • Surface Acoustic Wave Elements And Circuit Networks Thereof (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

인코딩된 오디오 신호(10)를 디코딩하기 위한 오디오 디코더에 있어서, 인코딩된 오디오 신호(10)는 데이터 스트림의 페이로드 섹션(52)에서 제1채널 요소(52a) 및 제2채널 요소(52b) 그리고 상기 데이터 스트림의 구성 섹션(50)에서 상기 제1채널 요소(52a)에 대한 제1디코더 구성 데이터(50c) 및 제2채널 요소(52b)에 대한 제2디코더 구성 데이터(50d)를 포함하며, 구성 섹션에서 각 채널 요소에 대한 구성 데이터를 읽기 위한 그리고 페이로드 섹션에서 각 채널 요소에 대한 상기 페이로드 데이터를 읽기 위한 데이터 스트림 리더(12), 복수의 채널 요소들을 디코딩하기 위한 구성가능(configurable) 디코더(16) 및 구성가능 디코더(16)가 상기 제1채널 요소를 디코딩 할 때 상기 제1디코더 구성 데이터에 따라 상기 제2채널 요소를 디코딩할 때 상기 제2디코더 구성 데이터에 따라 구성되도록 상기 구성가능 디코더(16)을 구성하기 위한 구성 제어기(14)를 포함하는, 인코딩된 오디오 신호(10)를 디코딩하기 위한 오디오 디코더에 관한 것이다.

Description

유연한 구성 기능을 갖는 오디오 인코더 및 디코더{AUDIO ENCODER AND DECODER HAVING A FLEXIBLE CONFIGURATION FUNCTIONALITY}
본 발명은 오디오 코딩에 특히 높은 품질과 코딩 소위 USAC에서 알려진 같은 코딩 낮은 비트 레이트에 관한 것이다(USAC = Unified Speech and Audio Coding).
USAC 코더는 ISO / IEC CD 23003-3에 정의되어 있다. 이 표준은 "Information technology - MPEG audio technologies - Part 3: Unified speech and audio coding" 통합 음성 및 오디오 코딩을 호출하는 레퍼런스 모델의 기능 블록들을 설명한다.
도 10a와 10b는 인코더와 디코더 블록 다이어그램을 보여준다. USAC 인코더 및 디코더의 블록 다이어그램은 MPEG-D USAC 코딩의 구조를 반영한다. 일반적인 구조는 다음과 같이 설명 될 수 있다 : 먼저 스테레오 또는 멀티 채널 프로세싱을 처리하는 MPEG 서라운드 (MPEGS) 기능 유닛으로 구성되는 공통 전/후-처리 및 입력 신호에서 더 높은 오디오 주파수들의 파라미터(매개변수) 표현을 처리하는 향상된 SBR (eSBR) 유닛이 있다. 다음으로 두번째는, 하나는 선형 예측 코딩 (LP 또는 LPC 도메인(영역)) 기반의 경로로 구성된 수정 고급 오디오 코딩 (AAC) 도구 경로로 구성되고 다른 하나는 경로에 기반하여 선형 예측 코딩으로 구성되며(LP 또는 LPC 도메인), 이는 LPC 잔류물의 시간 영역 표현 또는 주파수 도메인 영역 표현 중 하나를 차례로 특징으로 한다. 모든 전송된 양쪽의 스펙트럼, AAC 및 LPC는 연산 코딩 및 양자화를 따르는 MDCT 영역에서 표현된다. 시간 영역 표현은 ACELP 여기 코딩 설계를 이용한다.
MPEG-D USAC 의 기본 구조는 도 10a 및 도 10b에서 보여진다. 이 다이어그램에서 데이터 플로우는 왼쪽에서 오른쪽으로, 위에서 아래로이다. 디코더의 기능은 비트스트림 페이로드에서 양자화된 오디오 스펙트럼 또는 시간 영역의 표현을 찾거나 양자화된 값들 및 다른 복원 정보를 디코딩하는 것이다.
전송된 스펙트럼 정보의 경우 디코더가 양자화된 스펙트럼을 복원하며, 입력 비트스트림 페이로드에 의해 설명되는 것처럼 실제 신호 스펙트럼에서 도달하기 위한 비트스트림 페이로드에서 어떤 도구들이 유효(활성, active)한지를 통해 복원 스펙트럼을 처리하며, 결국 주파수 영역 스펙트럼을 시간 영역으로 변환한다. 스펙트럼 복원의 초기 복원 및 스케일링에 따라, 더 효율적인 코딩을 제공하기 위한 하나 이상의 스펙트럼을 수정하는 선택적인 도구들이 있다.
전송된 시간 영역 신호 표현의 경우에, 디코더는 양자화된 시간 신호를 복원하며, 입력 비트스트림 페이로드에 의해 설명되는 것처럼 실제 시간 영역 신호에 도달하기 위한 비트스트림 페이로드에서 유효한 어떠한 도구들을 통해 복원된 시간 신호를 처리한다.
신호 데이터를 처리하는 선택적 도구들에 대하여, "통과하는(pass through)" 옵션이 유지되며, 처리가 생략되는 모든 경우에서, 스펙트럼 또는 시간 샘플들은 그것의 입력에서 수정 없이 도구(툴, tool)를 통해 직접 통과된다.
비트스트림이 LP 영역에서 non-LP 영역으로 또는 시간 영역에서 주파수 영역 표현으로 또는 그 반대로 그것의 신호 표현을 바꾸는 곳에서, 디코더는 적절한 전이 오버랩-애드 윈도윙(transition overlap-add windowing) 수단에 의해 하나의 영역에서 다른 것으로 전이를 가능하게 한다.
eSBR 및 MPEGS 처리는 전이 처리 후에 양쪽 코딩 경로들에 동일 방법으로 적용된다.
비트스트림 페이로드 디멀티플렉서(demultiplexer)에 대한 입력은 MPEG-D USAC 비트스트림 페이로드 이다. 디멀티플렉서는 각 툴에 대한 부분들로 비트스트림 페이로드를 분할하고, 그 툴들에 관련된 비트스트림 페이로드 정보를 각 툴에 제공한다.
비트스트림 페이로드 디멀티플렉서 툴로부터의 출력은 :
● 현재 프레임 중 하나에서 코어 코딩 타입에 의존 :
o 양자화된 그리고 노이즈없이 코딩된 스펙트럼 표현
o 스케일 팩터 정보
o 산술적으로 코딩된 스펙트럼 라인들
● 또는 : 어느 하나에 의해 표현되는 여기 신호를 함께 갖는 선형 예측 (LP) 파라미터(매개변수)
o 양자화된 그리고 산술적으로 코딩된 스펙트럼 라인들
o ACELP 코딩된 시간 영역 여기
● 스펙트럼 노이즈 파일링 (선택적)
● M/S 결정 정보 (선택적)
● 시간적 노이즈 형성 (TNS) 정보 (선택적)
● 필터뱅크 제어 정보
● 시간 업워핑 (TW) 제어 정보 (선택적)
● 향상된 스펙트럼 대역폭 복제 (eSBR) 제어 정보 (선택적)
● MPEG 써라운드 (MPEGS) 제어 정보
노이즈없이 툴을 디코딩하는 스케일 인수는 비트스트림 페이로드 디멀티플렉서로부터 정보를 취하고, 허프만(Huffman) 및 DPCM 코딩된 스케일 인수들을 디코딩한다.
노이즈없이 툴을 디코딩하는 스케일 인수에 대한 입력은 :
● 노이즈없이 스펙트럼들을 코딩하기 위한 스케일 인수 정보
노이즈없이 툴을 디코딩하는 스케일 인수의 출력은 :
● 스케일 인수들의 디코딩된 정수 표현 :
스펙트럼 노이즈없는 디코딩 은 비트스트림 페이로드 디멀티플렉서로부터 정보를 취하며, 그 정보를 분석하며, 산술적으로 코딩된 데이터를 디코딩하고, 양자화된 스펙트럼들을 복원한다. 이 노이즈없는 디코딩 툴에 대한 입력은 :
● 노이즈없는 코딩된 스펙트럼들
노이즈 없는 디코딩 툴의 출력은 :
● 스펙트럼들의 양자회된 값들
역 양자화 은 스펙트럼들에 대해 양자화된 값들을 취하고, 논-스케일링되고, 복원된 스펙트럼들로 정수 값들을 변환한다. 이 양자화기(quantizer)는 컴팬딩(companding) 양자화기이며, 이것의 컴팬딩 인수는 선택된 코어 코딩 모드에 의존한다.
역 양자화기 툴에 대한 입력은 :
● 스펙트럼들에 대해 양자화된 값들
역 양자화기 툴의 출력은 :
● 스케일링되지 않고, 역으로 양자화된 스펙트럼들
노이즈 필링 툴(noise filling tool)은 디코딩된 스펙트럼들에서 스펙트럼 갭들을 채우기 위해 이용되고 이는 예를 들어, 인코더에서 비트 수요상의 강한 제한 때문에 스펙트럼 값이 0으로 양자화될 때 일어난다.
노이즈 필링 툴에 대한 입력은 :
● 스케일링되지 않고, 역으로 양자화된 스펙트럼들
● 노이즈 필링 파라미터들
● 스케일 인수들의 디코딩된 정수 표현
노이즈 필링 툴의 출력들은 :
● 스케일링되지 않고, 이전에 0으로 양자화된 스펙트럼 라인들에 대해 역으로 양자화된 스펙트럼 값들
● 스케일 인수들의 수정된 정수 표현
리스케일링 툴(rescaling tool)은 실제 값들로 스케일 인수들의 정수 표현을 변환하고, 스케일링되지 않고 역으로 양자화된 스펙트럼들에 연관 스케일 인수들을 곱한다.
스케일 인수 툴(scale factors tool)에 대한 입력들 :
● 스케일 인수들의 디코딩된 정수 표현
● 스케일링되지 않고, 역으로 양자화된 스펙트럼들
스케일 인수 툴로부터의 출력 :
● 스케일링되고, 역으로 양자화된 스펙트럼들
M/S 툴 (M/S tool)에 대한 검토를 위해, ISO/IEC 14496-3:2009, 4.1.1.2를 참조하라.
시간적 노이즈 성형 툴 (temporal noise shaping ( TNS ) tool)에 대한 검토를 위해, ISO/IEC 14496-3:2009, 4.1.1.2를 검토하라.
필터뱅크/블록 스위칭 은 인코더에 의해 수행되는 주파수 맵핑의 역(inverse)을 적용한다. 역 수정 개별 코사인 변형(inverse modified discrete cosine transform (IMDCT))은 필터뱅크 툴을 위해 이용된다. IMDCT는 120, 128, 240, 256, 480, 512, 960 또는 1024 스펙트럼 계수들을 지원하도록 구성된다.
필터뱅크 툴에 대한 입력들은 :
● (역으로 양자화된) 스펙트럼들
● 필터뱅크 제어 정보
필터뱅크 툴로부터의 출력(들) :
● 시간 영역 복원된 오디오 신호(들)
시간 워핑 모드(time warping mode)가 가능할 때, 시간- 워프된 ( warped ) 필터뱅크 / 블록 스위칭 은 일반 필터뱅크/블록 스위칭 툴을 교체한다. 필터뱅크는 일반 필터뱅크와 같고 (IMDCT), 추가적으로 윈도우된 시간 영역 샘플들은 시간-다양화 리샘플링에 의해 워프된 시간 영역에서 선형 시간 영역으로 맵핑된다.
시간-워프된 필터뱅크 툴들에 대한 입력은 :
● 역으로 양자화된 스펙트럼들
● 필터뱅크 제어 정보
● 시간-워핑 제어 정보(The time-warping control information)
필터뱅크 툴로부터의 출력(들) :
● 선형 시간 영역 복원된 오디오 신호(들)
향상된 SBR ( eSBR ) 은 오디오 신호의 고대역(highband)를 발생시킨다. 그것은 고조파들의 시퀀스들의 복제에 기반하며, 인코딩 동안 절단된다. 그것은 발생된 고대역의 스펙트럼 포락선(envelope)을 조정하며 역 필터링을 적용하며, 원래 신호의 스펙트럼 특성들을 재생성하기 위해 사인곡선 구성요소들 및 노이즈를 더한다.
eSBR 툴에 대한 입력 :
● 양자화된 포락선 데이터
● 기타 제어 데이터
● 주파수 영역 코어 디코더 또는 ACELP/TCX 코어 디코더로부터의 시간 영역 신호
eSBR 툴의 출력은 다음 중 하나 :
● 시간 영역 신호 또는
● 예를 들어, MPEG 서라운드 툴에서 신호의 QMF-영역 표현이 이용됨.
MPEG 서라운드 (MPEGS) 툴은 적절한 공간 파라미터(매개변수)들에 의해 제어되는 입력 신호(들)에 복잡한 업믹스 절차를 적용하는 것에 의해 하나 이상의 입력 신호들로부터 다중 신호들을 생성한다. USAC 컨텍스트에서 MPEGS는, 전송된 다운믹스된 신호와 함께 파라미터(매개변수) 부가 정보를 전송하는 것에 의해, 멀티-채널 신호를 코딩하기 위해 이용된다.
MPEGS 툴에 대한 입력은 :
● 다운믹스된 시간 영역 신호 또는
● eSBR 툴로부터 다운믹스 신호의 QMF-영역 표현
MPEGS 툴의 출력은 :
● 멀티-채널 시간 영역 신호
신호 분류기 툴(Signal Classifier tool)은 원래 입력 신호를 분석하고 그것으로부터 상이한 코딩 모드들의 선택을 유발하는(trigger) 제어 정보를 발생시킨다. 입력 신호의 분석은 의존적 실행이며 주어진 입력 신호 프레임에 대해 최적의 코어 코딩 모드를 선택하려고 할 것이다. 신호 분류기의 출력은 또한 (선택적으로), 예를 들어 MPEG 서라운드, 향상된 SBR, 시간-워프된 필터뱅크 및 다른 것들처럼, 다른 툴들의 행동(behavior)에 영향을 미치도록 이용될 수 있다.
신호 분류기 툴에 대한 입력은 :
● 비수정된(unmodified) 원래 입력 신호
● 추가 실행 의존 파라미터(매개변수)들
신호 분류기 툴의 출력은 :
● 코어 코덱의 선택을 제어하기 위한 제어 신호 (non-LP 필터링된 주파수 영역 코딩, LP 필터링된 주파수 영역 또는 LP 필터링된 시간 영역 코딩)
ACELP 툴(ACELP tool)은 펄스-유사 시퀀스(혁신 코드워드)와 장기 예측(어댑티브 코드워드(adaptive codeword))를 결합시키는 것에 의해 시간 영역 여기 신호를 효율적으로 표현하는 법을 제공한다. 복원된 여기(excitation)는 시간 영역 신호를 형성하기 위해 LP 합성 필터를 통해 보내진다.
ACELP에 대한 입력은 :
● 적응(adaptive) 및 혁신 코드북(innovation codebook) 지수들
● 적응 및 혁신 코드 이득 값들
● 다른 제어 데이터
● 역 양자화된 그리고 보간된(interpolated) LPC 필터 계수들
ACELP 툴의 출력은 :
● 시간 영역 복원된 오디오 신호
MDCT 기반 TCX 디코딩 툴은 가중된(weighted) LP 잔류 표현을 MDCT-영역으로부터 시간 영역 신호로 되돌리는데 이용되며 가중된 LP 합성 필터링을 포함하는 시간 영역 신호를 출력한다. IMDCT 는 256, 512, 또는 1024 스펙트럼 계수들을 지원하도록 구성된다.
TCX 툴에 대한 출력은 :
● (역으로 양자화된) MDCT 스펙트럼
● 역으로 양자화된 그리고 보간된 LPC 필터 계수들
TCX 툴의 출력은 :
● 시간 영역 복원된 오디오 신호
ISO/IEC CD 23003-3 에서 공개된 기술은, 여기에 레퍼런스로 첨부된 채널 요소들의 정의를 가능케하는 것이며 이는, 예를 들어, LFE 채널에 대해 페이로드를 포함하는 LFE (Low-Frequency Enhancement) 채널 요소들 또는 두 채널들에 대한 페이로드를 포함하는 채널 쌍 요소들 또는 단일 채널에 대한 페이로드만을 포함하는 단일 채널 요소이다.
5-채널 멀티-채널 오디오 신호는, 예를 들어, 중앙 채널을 포함하는 단일 채널 요소, 왼쪽 채널 및 오른쪽 채널을 포함하는 제1채널 쌍 요소, 그리고 왼쪽 채널 (Ls) 및 오른쪽 채널 (Rs) 를 포함하는 제2채널 쌍에 의해 표현될 수 있다. 멀티-채널 오디오 신호를 함께 표현하는 이러한 상이한 채널 요소들은 디코더로 입력되고 동일한 디코더 구성을 이용하여 처리된다. 선행 기술에 따라, USAC 특정 구성 요소에 보내지는 디코더 구성은 모든 채널 요소들에 디코더에 의해 적용되며 그래서 모든 채널 요소들에 대해 유효한 구성의 요소들이 존재하는 상황은 최적 방법으로 개별 채널 요소에 대해 선택될 수 없고, 모든 채널 요소들에 동시에 설정되어야 한다. 그러나, 반면에, 간단한 5-채널 멀티-채널 신호를 설명하기 위한 채널 요소들은 각각 서로로부터 매우 상이하다는 것이 발견되었다. 단일 채널 요소는 좌/우 채널들 및 좌측 써라운드/우측 써라운드 채널들을 설명하는 채널 쌍 요소들과 상당히 다른 특성들을 갖고, 추가적으로 써라운드 채널들이 좌 우 채널들에 포함된 정보와 상당히 다른 정보를 포함한다는 사실 때문에 두개의 채널 쌍 요소들의 특성들 또한 상당히 다르다.
모든 채널 요소들에 대한 구성 데이터의 선택은, 절충(compromise)할 필요가 있으며 선택되어야 하는 구성은, 모든 채널 요소들에 대해서는 비-최적이지만, 모든 채널 요소들 사이에 절충을 표현하게 된다. 대안적으로, 상기 구성은 하나의 채널 요소들에 대해 최적으로 선택되었지만, 이는 불가피하게 다른 채널 요소들에 대해 비-최적인 상황을 야기한다. 이는, 그러나, 비-최적 구성을 갖는 채널 요소들에 대해 증가된 비트레이트를 도출하고 또는 대안적으로 또는 추가적으로 최적 구성 설정들을 갖지 않는 이러한 채널 요소들에 대해 감소된 오디오 품질을 도출한다.
그래서 본 발명의 목적은 향상된 오디오 코딩/디코딩 개념을 제공하는 것이다.
이 목적은 청구항 1에 따른 오디오 디코더에 의해, 제14항에 따른 오디오 디코딩의 방법, 제15항에 따른 오디오 인코더, 제16항에 따른 오디오 인코딩 방법, 제17항에 따른 컴퓨터 프로그램 및 제18항에 따른 인코딩된 오디오 신호에 의해 달성된다.
본 발명은 향상된 오디오 인코딩/디코딩 개념은 각 개별 채널 요소들에 대해 디코더 구성 데이터가 전송될 때 얻어진다는 발견에 기반한다. 본 발명에 따라, 인코딩된 오디오 신호는 그래서 데이터 스트림의 페이로드 섹션에서 제1채널 요소 및 제2채널 요소, 데이터 스트림의 구성 섹션에서 제2채널 요소에 대해 제2디코더 구성 데이터 및 제1채널 요소에 대해 제1디코더 구성 데이터를 포함한다. 이런 이유로, 채널 요소들에 대한 페이로드 데이터가 위치하는 곳에서 데이터 스트림의 페이로드 섹션은, 채널 요소들에 대한 구성 데이터가 위치되는 곳에서, 데이터 스트림에 대한 구성 데이터로부터 분리된다. 이 페이로드 섹션 또는 비트스트림의 인접 부분에 속하는 모든 비트들이 구성 데이터인 곳에서, 구성 섹션은 연속 비트스트림의 인접 부분인 것이 바람직하다. 바람직하게, 구성 데이터 섹션은 데이터 스트림의 페이로드 섹션이 따르며, 여기서 채널 요소들에 대한 페이로드가 위치된다. 발명의 오디오 디코더는 페이로드 섹션에서 각 채널 요소에 대해 페이로드 데이터를 읽기 위해 그리고 구성 섹션에서 각 채널 요소드에 대한 구성 데이터를 읽기 위해 데이터 스트림 리더(data stream reader)를 포함한다. 게다가, 오디오 디코더는 복수의 채널 요소들을 디코딩하기 위한 구성가능한 디코더 및 구성가능한 디코더를 구성하기 위한 구성 제어기를 포함하며 그래서 구성가능한 디코더는 제1채널 요소를 디코딩할 때 제1디코더 구성 데이터에 따라 그리고 제2채널 요소를 디코딩 할 때 제2디코더 구성 데이터에 따라 구성된다.
따라서, 각 채널 요소들에 대해 최적의 구성이 선택될 수 있다는 것이 확실해진다. 이는 상이한 채널 요소들의 상이한 특성들을 최적으로 설명하는 것을 가능하게 한다.
본 발명에 따른 오디오 인코더는, 예를 들어, 적어도 둘, 셋 또는 바람직하게는 세 채널들 이상을 갖는 멀티-채널 오디오 신호를 인코딩하기 위해 배치된다. 오디오 인코더는 제2채널 요소에 대한 제2구성 데이터 및 제1채널 요소에 대한 제1구성 데이터를 발생시키기 위한 구성 프로세서 그리고 제1 및 제2구성 데이터를 이용하여 제1채널 욧 및 제2채널 요소를 얻기 위해 멀티-채널 오디오 신호를 인코딩하기 위한 구성가능한 인코더를 포함한다. 게다가, 오디오 인코더는 인코딩된 오디오 신호를 표현하는 데이터 스트림을 발생시키기 위한 데이터 스트림 발생기(data stream generator)를 포함하며, 데이터 스트림은 제1채널 요소 및 제2채널 요소를 포함하는 페이로드 섹션 그리고 제1 및 제2 구성 데이터를 갖는 구성 섹션을 갖는다.
이제, 인코더뿐만 아니라 디코더도 각 채널 요소에 대해 개별적이고 바람직하게 최적인 구성 데이터를 결정하는 위치에 있게 된다.
이는 각 채널 요소에 대한 구성가능한 디코더가 각 채널 요소에 대해 오디오 품질과 관련하여 최적으로 구성된다는 것을 확실하게 하며 비트레이트가 얻어질 수 있고 절충들(compromises)은 더 이상 만들어질 필요가 없다.
결론적으로, 본 발명의 바람직한 실시예들은 첨부된 도면들과 관련하여 설명된다.
도 1은 디코더의 블록 다이어그램;
도 2는 인코더의 블록 다이어그램;
도 3a 및 3b는 상이한 스피커 설정들에 대한 채널 구성들을 요약하는 표를 나타내는 도면;
도 4a 및 4b는 상이한 스피커 설정들을 식별하고 그래픽적으로 나타내는 도면;
도 5a 내지 5d는 페이로드 섹션 및 구성 섹션을 갖는 인코딩된 오디오 신호의 상이한 관점들을 도시하는 도면;
도 6a는 UsacConfig 요소의 구문(syntax)을 나타내는 도면;
도 6b는 UsacChannelConfig 요소의 구문을 나타내는 도면;
도 6c는 UsacDecoderConfig의 구문을 나타내는 도면;
도 6d는 UsacSingleChannelElementConfig의 구문을 나타내는 도면;
도 6e는 UsacChannelPairElementConfig의 구문을 나타내는 도면;
도 6f는 UsacLfeElementConfig의 구문을 나타내는 도면;
도 6g는 UsacCoreConfig의 구문을 나타내는 도면;
도 6h는 SbrConfig의 구문을 나타내는 도면;
도 6i는 SbrDfltHeader의 구문을 나타내는 도면;
도 6j는 Mps212Config의 구문을 나타내는 도면;
도 6k는 UsacExtElementConfig의 구문을 나타내는 도면;
도 6l은 UsacConfigExtension의 구문을 나타내는 도면;
도 6m은 escapedValue의 구문을 나타내는 도면;
도 7은 채널 요소에 대한 상이한 인코더/디코더 툴들을 개별적으로 구성하고 식별하기 위한 상이한 대안들을 나타내는 도면;
도 8은 5.1 멀티-채널 오디오 신호를 발생시키기 위한 병렬로 작동하는 디코더 인스턴스들(instances)을 갖는 디코더 실행의 바람직한 실시예들을 도시하는 도면;
도 9는 도 1에서 플로우챠트 형태의 디코더의 바람직한 실시예를 도시하는 도면;
도 10a는 USAC 인코더의 블록 다이어그램을 도시하는 도면; 및
도 10b는 USAC 디코더의 블록 다이어그램을 도시하는 도면;
오디오 컨텐츠에 포함된, 샘플링 레이트, 정확한 채널 구성 같은, 높은 레벨 정보는 오디오 비트스트림에 존재한다. 이는 비트스트림을 더 독립적으로 만들며 이 정보를 명백히 전송할 수단을 갖지 않을 수 있는 전송 설계에 내장될 때 구성 및 페이로드의 전송을 쉽게 만든다.
구성 구조는 결합된 프레임 길이 및 SBR 샘플링 레이트 비율 지수(coreSbrFrameLengthIndex))를 포함한다. 이는 양쪽 값들의 효율적인 전송을 담보하고 프레임 길이 및 SBR 비율의 의미없는 조합들이 신호화될 수 없다는 것을 확실히 한다. 후자(latter)는 디코더의 실시를 단순화한다.
이러한 구성은 전용 구성 확장 메커니즘 수단에 의해 확장될 수 있다. 이는 MPEG-4 AudioSpecificConfig()으로부터 알려진 구성 확장들의 부피가 크고 비효율적인 전송을 방지할 것이다. 구성은 각각 전송된 오디오 채널과 관련된 확성기 위치들의 자유로운 시그널링(신호화)를 가능케 한다. 확성기 맵핑에 일반적으로 이용되는 채널의 시그널링은 channelConfigurationIndex 수단에 의해 효율적으로 시그널링 될 수 있다. 각 채널 요소에 대한 구성은 개별 구조에 함유되고 각 채널 요소는 독립적으로 구성될 수 있다.
SBR 구성 데이터("SBR header")는 SbrInfo() 및 SbrHeader()로 분할된다. SbrHeader()에 대해 디폴트 버젼(default version)이 정의되고(SbrDfltHeader()), 이는 비트스트림에서 효율적으로 참조될 수 있다. 이는 SBR 구성의 재전송이 요구되는 곳에서 비트 수요를 감소시킨다.
SBR에 더 일반적으로 적용되는 구성 변화들은 SbrInfo() 구문 요소의 도움으로 효율적으로 시그널링 될 수 있다.
파라미터(매개변수) 대역폭 확장(SBR) 및 파라미터(매개변수) 스테레오 코딩 툴들(MPS212, aka. MPEG Surround 2-1-2)에 대한 구성은 USAC 구성 구조에 단단히 통합된다. 이는 양 기술들이 기준에서 실제로 이용되는 방식으로 더 잘 표현한다.
구문은 코덱에 존재하는 그리고 미래 확장들의 전송들을 허용하는 확장 메커니즘을 특징으로 한다. 상기 확장들은 어떠한 순서로 채널 요소들에 맡겨질 수도 있다(즉, 끼워지는). 이는 확장이 적용될 특정 채널 요소 전 또는 후에 읽혀질 필요가 있는 확장들을 가능하게 한다.
디폴트 길이는 구문 확장에 대해 정의될 수 있고, 이는 일정한 길이 확장들의 전송을 매우 효율적으로 만들며, 이는 확장 페이로드의 길이가 언제나 전송될 필요는 없기 때문이다.
필요하다면 값들의 범위를 확장하기 위한 탈출 메커니즘의 도움으로 값을 시그널링하는(신호하는) 일반적인 케이스는(경우는) 비트 필드 확장들 및 모든 요구되는 탈출 값 무리들을 커버하기 충분하게 유연한 전용 진정(dedicated genuine) 구문 요소(escapedValue())에 모듈화된다.
비트스트림 구성(Bitstream Configuration )
UsacConfig () (도 6a)
UsacConfig() 은 디코더 설정(set-up)을 완성하기 위해 필요한 모든 것들 QNs만 아니라 함유된 오디오 컨텐츠에 대한 정보를 함유하도록 확장된다. 오디오(샘플링 레이트, 채널 구성, 출력 프레인 길이)에 대한 가장 높은 레벨 정보(top level information)는 더 높은 (응용) 레이어들로부터 용이한 엑세스를 위해 초기단계에서(at the beginning) 모아진다.
channelConfigurationIndex , UsacChannelConfig () (도 6b)
이러한 요소들은 확성기들로의 그들의 맵핑 및 함유된 비트스트림 구성요소들에 대한 정보를 준다. channelConfigurationIndex 은 실질적으로 관련이 있다고 생각되는 미리 설정된 모노, 스트레오 또는 멀티-채널 구성들의 범위로부터 하나를 시그널링하는(신호하는) 쉽고 편한 방법을 가능하게 한다.
channelConfigurationIndex 에 의해 커버되지 않는 더 정교한 구성들에 대해 UsacChannelConfig() 는 32 스피커 위치들의 리스트 밖의 확성기 위치에 대한 요소들의 자유로운 배치를 가능하게 하며, 이는 홈 또는 시네마 사운드 재생에 대해 모두 알려진 스피커 설정들에서 모든 현재 알려진 스피커 위치들을 커버한다.
스피커 위치들의 리스트는 MPEG 써라운드 기준(ISO/IEC 23003-1에서 도 1의 표1을 참조)에서 특징지어진 리스트의 확대집합(superset)이다. 네개의 추가 스피커 위치들은 최근 도입된 22.2 스피커 설정(도 3a, 3b, 4a 및 4b 참조)을 커버할 수 있도록 추가되었다.
UsacDecoderConfig () (도 6c)
이 요소는 디코더 구성의 중심에 있고 그것은 비트스트림을 해석하기 위해 디코더에 의해 요구되는 모든 추가 정보를 함유한다.
특히 비트스트림의 구조는 비트스트림에서 그들의 순서 및 요소들의 숫자를 명백히 언급하는 것에 의해 여기에서 정의된다.
모든 요소들에 대한 루프(loop)는 그 후 모든 타입들(단일, 쌍, lfe, 확장)의 모든 요소들의 구성을 가능케한다.
UsacConfigExtension () (도 6l)
장래의 확장들을 설명하기 위해, 상기 구성은 USAC에 대한 아직 비-존재하는(non-existent) 구성 확장들에 대한 구성을 확장하기 위한 강력한 메커니즘을 특징으로 한다.
UsacSingleChannelElementConfig () (도 6d)
이 요소 구성은 하나의 단일 채널을 디코딩하기 위한 디코더를 구성하기 위해 필요한 모든 정보를 함유한다. 이는 필수적으로 코어 코더 관련 정보이고 SBR이 SBR 관련 정보에서 이용되는 경우이다.
UsacChannelPairElementConfig () (도 6e)
위와 유사하게 이 요소 구성은 하나의 채널 쌍을 디코딩하기 위한 디코더를 구성하는데 필요한 모든 정보를 포함한다. 위에서 언급된 코어 구성 및 SBR 구성에 추가하여 이는 (MPS212, 잔류물 등등과 함께 또는 없이) 적용되는 스테레오 코딩의 정확한 종류 같은 스테레오-특정 구성들을 포함한다. 이 요소는 USAC에서 이용가능한 스테레오 코딩 옵션들의 모든 종류들을 커버한다는 것에 주목하라.
UsacLfeElementConfig () (도 6f)
LFE 요소 구성은 LFE 요소가 고정 구성을 갖기 때문에 구성 데이터를 함유하지 않는다.
UsacExtElementConfig () (도 6k)
이 요소 구성은 코덱에 현재의 또는 장래의 확장의 어느 종류든 구성하기 위해 이용될 수 있다. 각 확장 요소 타입은 그 자신의 전용 ID 값을 갖는다. 길이 필드(length field)는 디코더에 알려지지 않은 구성 확장들을 편리하게 생략하는 것을 가능하게 하기 위해 포함된다. 디폴트 페이로드 길이의 선택적 정의는 실제 비트스트림에 존재하는 확장 페이로드들의 코딩 효율을 더 증가시킨다.
USAC에 결합되기 위해 이미 가시화된(envisioned) 확장들은 : MPEG 써라운드(Surround), SAOC, 및 MPEG-4 AAC로부터 알려진 FIL 요소의 몇몇 종류를 포함한다.
UsacCoreConfig () (도 6g)
이 요소는 코어 코더 설정에 영향을 갖는 구성 데이터를 함유한다. 현재 이것들은 시간 워핑 툴(time warping tool) 및 노이즈 필링 툴(noise filling tool)에 대한 스위치들(switches)이다.
SbrConfig () (도 6h)
sbr_header()의 잦은 재-전송에 의해 생성되는 비트 오버헤드(overhead)를 감소시키기 위해, 일반적으로 일정하게 유지되는 sbr_header()의 요소에 대한 디폴트 값은 이제 구성 요소 SbrDfltHeader() 에서 운반된다. 게다가, 고정 SBR 구성 요소들은 SbrConfig()에서도 운반된다. 이러한 고정 비트들은, 고조파 전위(transposition) 또는 인터 TES(inter TES) 같은, 향상된 SBR의 특정 특징들을 가능- 또는 불가능하게 하는 플래그들(flags)을 포함한다.
SbrDfltHeader () (도 6i)
이는 일반적으로 일정하게 유지되는 sbr_header() 의 요소들을 운반한다. 진폭 해상도(amplitude resolution), 크로스오버 밴드(crossover band), 스펙트럼 프리플래트닝(spectrum preflattening) 같은 요소가 작용하는 것들은 그것들이 즉시 효율적으로 변화되는 것을 가능하게 하는 SbrInfo() 에서 이제 운반된다.
Mps212Config () (도 6j)
위의 SBR 구성과 유사하게, MPEG 써라운드 2-1-2 툴들에 대한 모든 설정 파라미터(매개변수)들은 이 구성에서 조립된다. 이 컨텍스트에서 관계없는 또는 여분인 SpatialSpecificConfig()로부터의 모든 요소들은 제거된다.
비트스트림 페이로드( Bitstream Payload )
UsacFrame ()
이는 USAC 비트스트림 주변에서 가장 외곽 래퍼(포장지, wrapper)이며 USAC 엑세스 유닛을 표현한다. 그것은 구성 파트에서 시그널링되는 것에 따라 모두 포함된 확장 요소들 및 채널 요소들에 대한 루프(loop)를 함유한다. 이는 그것이 함유할 수 있는 것이 무엇이냐는 관점에서 비트스트림 형식을 훨씬 더 유연하게 만들며 어떠한 장래 확장에 대한 장래 증거(future proof)이다.
UsacSingleChannelElement ()
이 요소는 모노 스트림을 디코딩하기 위한 모든 데이터를 함유한다. 상기 컨텐츠는 코어 코더 관련 부분 및 eSBR 관련 부분에서 분할된다. 후자(latter)는 이제 코어에 훨씬 더 가까이 연결되며, 이는 데이터가 디코더에 의해 필요한 곳에서 또한 훨씬 좋은 순서(order)를 반영한다.
UsacChannelPairElement ()
이 요소는 스테레오 쌍을 인코딩하기 위해 가능한 모든 방법들에 대한 데이터를 커버한다. 특히, 코딩 기반 레거시(legacy) M/S 부터 MPEG 써라운드 2-1-2의 도움을 갖는 완전 매개변수형 스테레오 코딩의 범위까지, 통합 스테레오 코딩의 모든 특징들이 커버된다. stereoConfigIndex 는 실제로 이용되는 특징들을 가리킨다. 적절한 eSBR 데이터 및 MPEG 써라운드 2-1-2 데이터는 이 요소에 보내진다.
UsacLfeElement ()
이전 lfe_channel_element() 는 일관된 명명(네이밍, naming) 설계에 따르기 위해서만 재명명된다(renamed).
UsacExtElement ()
확장 요소는 최대로 유연하게 그러나 동시에 작은 페이로드를 갖는 확장들에 대해서도 최대로 효율적일 수 있도록 신중히 설계된다. 확장 페이로드 길이는 그것을 생략하기 위한 모르는(nescient) 디코더들에 대해 시그널링된다. 유저-설정된 확장들은 확장 타입들의 예약된 범위의 수단에 의해 시그널링 될 수 있다. 확장들은 요소들의 순서로 자유롭게 위치될 수 있다. 확장 요소들의 범위는 필 바이트들(fill bytes)을 쓰기(write) 위한 메커니즘을 포함하여 이미 고려되었다.
UsacCoreCoderData ()
이 새로운 요소는 코어 코더들에 영향을 미치는 모든 정보를 요약하고 이런 이유로 또한 fd_channel_stream()'s 및 lpd_channel_stream()'s 를 함유한다.
StereoCoreToolInfo ()
구문의 가독성(readability)를 용이하게 하기 위해, 정보와 관련된 모든 스테레오는 이 요소에서 포획된다(captured). 그것은 스테레오 코딩 모드들에서 비트들의 수많은 의존도들을 다룬다.
UsacSbrData ()
스케일링가능한 오디오 코딩의 레거시(legacy) 설명 요소들 및 CRC 기능성은 sbr_extension_data() 요소에서 이용되는 것으로부터 제거된다. 헤더 데이터(header data) 및 SBR 정보의 잦은 재전송에 의해 야기되는 오버헤드를 감소시키기 위해, 이러한 것들의 존재는 명백히 시그널링될 수 있다.
SbrInfo ()
SBR 구성 데이터는 신속하게 자주 수정된다. 이는, 완전한 sbr_header()의 전송을 이전에 필요로 하는(6.3 in [N11660], "Efficiency" 참조), 진폭 해상도, 크로스오버 밴드, 스펙트럼 프리플래트닝(preflattening), 같은 것들을 제어하는 요소들을 포함한다.
SbrHeader ()
sbr_header() 에서 값들을 신속하게 sbr_header() 에서 값들을 변화시키기 위한 SBR의 능력을 유지하기 위해, SbrDfltHeader()에 보내지는 것들이 이용되어야 하는 것보다 다른 값들의 경우에 UsacSbrData() 안에서 SbrHeader()을 운반하는 것이 가능하다. bs_header_extra 메커니즘은 가장 공통적인 케이스들에 대해 가능한 가장 낮은 오버헤드를 유지하기 위해 이용된다.
sbr _ data ()
다시, SBR 스케일링 가능한 코딩의 USAC 컨텍스트에서 나머지들(remnants)는 제거되며 이는 그것들은 USAC 컨텍스트에서 적용가능하지 않기 때문이다. 채널들의 숫자에 의존하여 sbr_data()는 하나의 sbr_single_channel_element() 또는 하나의 sbr_channel_pair_element() 를 함유한다.
usacSamplingFrequencyIndex
이 표는 오디오 코덱의 샘플링 주파수를 시그널링하기 위해 MPEG-4에서 이용되는 표의 확대집합(superset)이다. 상기 표는 USAC 작업 모드들에서 현재 이용되는 샘플링 레이트들도 커버하기 위해 더 확장되었다. 샘플링 주파수들의 몇몇 배수들도 더해진다.
channelConfigurationIndex
이 표는 channelConfiguration(채널구성)을 시그널링하기 위해 MPEG-4에서 이용되는 표의 확대집합이다. 그것은 일반적으로 이용되고 가시화된 장래 확성기 설정들의 시그널링을 허용하도록 더 확장되었다. 이 표에 대한 지수는 장래 확장들을 허용하기 위해 5 비트들로 시그널링되었다.
usacElementType
오직 4 요소 타입들만 존재한다. 네개의 기본 비트스트림 요소들 각각에 대한 하나는 : UsacSingleChannelElement(), UsacChannelPairElement(), UsacLfeElement(), UsacExtElement() 이다. 이 요소들은 모두 유연성(flexibility)이 요구되는 유지(maintaining) 동안 필요한 최고 레벨 구조(top level structure)를 제공한다.
usacExtElementType
UsacExtElement()의 안에서, 이 요소는 확장들의 과잉(plethora)을 시그널링할 수 있게 한다. 장래 증거(프루프, proof)가 되기 위해 비트 필드는 모든 상상할 수 있는 확장들에 대해 가능하도록 충분히 크게 선택된다.
현재 알려진 확장들을 넘어 이미 몇몇들이 고려되도록 제안되었다 : 충전 요소(fill element), MPEG 써라운드, 및 SAOC.
usacConfigExtType
어떠한 포인트에서 구성을 확장하는 것이 필요하며 그 후 이는 각 새로운 구성에 타입을 할당하도록 허용하는 UsacConfigExtension() 수단에 의해 처리될 수 있다. 현재 시그널링 될 수 있는 유일한 타입은 상기 구성에 대한 충전 메커니즘이다.
coreSbrFrameLengthIndex
이 표는 디코더의 관점의 다중 구성을 시그널링 할 것이다. 특히 이것들은 출력 프레임 길이, SBR 비율 및 결과 코어 코더 프레임 길이(ccfl)들이다. 동시에 그것은 SBR에서 이용되는 QMF 분석 및 합성 대역들을 가리킨다.
stereoConfigIndex
이 표는 UsacChannelPairElement()의 내부 구조를 결정한다. 그것은 모노 또는 스테레오 코어의 이용, MPS212의 이용, 스테레오 SBR이 적용되는지 여부, 및 잔류 코딩이 MPS212에서 적용되는지 여부를 가리킨다.
디폴트 헤더 플래그 수단에 의해 참조될 수 있는 디폴트 헤더에 대한 eSBR 헤더 필드들의 큰 부분들을 움직이는 것에 의해, eSBR 제어 데이터를 전송하기 위한 비트 수요는 크게 감소된다. 현실 시스템에서 아마도 변화하는 것으로 고려되는 이전 sbr_header() 비트 필드들은 sbrInfo() 요소에 아웃소싱되고(outsourced) 이는 이제 8비트의 최대값을 커버하는 4 요소들로만 구성된다. sbr_header()에 비교하여, 이는 적어도 18비트들로 구성되고 이는 10비트를 절약한다.
전체 비트레이트상에서 이 변화의 영향(임팩트, impact)를 측정하는 것은 더 어렵고, 이는 그것이 sbrInfo()에서 eSBR 제어 데이터의 전송 레이트에 크게 의존하기 때문이다. 그러나, sbr 크로스오버가 비트스트림에서 변화된 곳에서의 이미 일반적인 이용에 대해 비트 절약(saving)은 완전히 전송된 sbr_header() 대신에 sbrInfo() 를 전송할 때 발생(occurrence) 당(per) 22비트만큼 높을 수 있다.
USAC 디코더의 출력은 MPEG 써라운드(MPS)(ISO/IEC 23003-1) 또는 SAOC (ISO/IEC 23003-2)에 의해 더 처리될 수 있다. 만약 USAC에서 SBR 툴이 유효상태라면(active), ISO/IEC 23003-1 4.4에서 HE-AAC 에 대해 설명된 것과 동일한 방식으로 QMF 영역에서 USAC 디코더는 그들을 묶는 것에 의해 이후 MPS/SAOC 디코더와 효율적으로 결합될 수 있다. QMF 영역에서 연결이 가능하지 않다면, 그것들은 시간 영역에서 연결된 필요가 있다.
MPS/SAOC 부가 정보(side information)은 usacExtElement 메커니즘 수단에 의해 (ID_EXT_ELE_MPEGS 또는 ID_EXT_ELE_SAOC USAC 인 usacExtElementType과 함께) 비트스트림에 내장되고, USAC 데이터 및 MPS/SAOC 데이터 사이의 시간-정렬은 USAC 디코더 및 MPS/SAOC 디코더 사이의 가장 효율적인 연결을 가정한다. USAC에서 SBR 툴이 유효한(active) 경우 만약 MPS/SAOC가 64 대역 QMF 영역 표현을 이용하는 경우 (ISO/IEC 23003-1 6.6.3 참조), 가장 효율적인 연결은 QMF 영역에서이다. 다른 경우에, 가장 효율적인 연결은 시간 영역에서이다. 이는 ISO/IEC 23003-1 4.4, 4.5, 및 7.2.1에서 정의되는 것처럼 HE-AAC 및 MPS 의 결합에 대한 시간-정렬에 대응한다.
USAC 디코딩 뒤에 MPS를 더하는 것에 의해 도입되는 추가 지연은 ISO/IEC 23003-1 4.5 에 의해 주어지며 HQ MPS 또는 LP MPS가 이용되는지 여부, 시간 영역에서 또는 QMF 영역에서 USAC 에 MPS가 연결되는지 여부에 의존한다.
ISO/IEC 23003-1 4.4 는 USAC 및 MPEG 시스템들 사이의 인터페이스를 명확히한다. 시스템 인터페이스로부터 오디오 디코더에 전달되는 모든 엑세스 유닛은 시스템 인터페이스로부터 전달되는 대응하는 구성 유닛, 즉 구성기(컴퍼지터, compositor),를 도출할 것이다. 이는 스타트-업 및 셧-다운(shut-down) 조건들, 즉, 엑세스 유닛들의 유한한 시퀀스에서 엑세스 유닛이 첫번째 또는 마지막일 때,를 포함한다.
오디오 구성 유닛에 대해, ISO/IEC 14496-1 7.1.3.5 구성 시간 스탬프(Composition Time Stamp , CTS)는 구성 유닛 내에서 구성 시간이 n-번째 오디오 샘플에 적용하는 것을 특정한다. USAC에 대해, n의 값은 언제나 1이다. 이는 USAC 디코더 그 자체의 출력에 적용된다는 것을 주의하라. USAC 디코더가, 예를 들어, USAC 디코더가 MPS 디코더와 결합되는 경우 MPS 디코더의 출력에서 전달되는 구성 유닛들을 감안하기 위해 필요하다.
Features of USAC bitstream payload syntax(USAC 비트스트림 페이로드 구문의 특징)
표 - UsacFrame ()의 구문( syntax )
Syntax(구문) No. of bits
(비트 숫자)
Mnemonic
(연상 기호)
UsacFrame()
{
usacIndependencyFlag ; 1 uimsbf
for (elemIdx=0; elemIdx<numElements; ++elemIdx) {
switch (usacElementType[elemIdx]) {
case: ID_USAC_SCE
UsacSingleChannelElement(usacIndependencyFlag);
break;
case: ID_USAC_CPE
UsacChannelPairElement(usacIndependencyFlag);
break;
case: ID_USAC_LFE
UsacLfeElement(usacIndependencyFlag);
break;
case: ID_USAC_EXT
UsacExtElement(usacIndependencyFlag);
break;
}
}
표 - UsacSingleChannelElement ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
UsacSingleChannelElement(indepFlag)
{
UsacCoreCoderData(1, indepFlag);
if (sbrRatioIndex > 0) {
UsacSbrData(1, indepFlag);
}
}
표 - UsacChannelPairElement ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
UsacChannelPairElement(indepFlag)
{
if (stereoConfigIndex == 1) {
nrCoreCoderChannels = 1;
} else {
nrCoreCoderChannels = 2;
}
UsacCoreCoderData(nrCoreCoderChannels, indepFlag);
if (sbrRatioIndex > 0) {
if (stereoConfigIndex == 0 || stereoConfigIndex == 3) {
nrSbrChannels = 2;
} else {
nrSbrChannels = 1;
}
UsacSbrData(nrSbrChannels, indepFlag);
}
if (stereoConfigIndex > 0) {
Mps212Data(indepFlag);
}
}
표 - UsacLfeElement ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
UsacLfeElement(indepFlag)
{
fd_channel_stream(0,0,0,0, indepFlag);
}
표 - UsacExtElement ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
UsacExtElement(indepFlag)
{
usacExtElementUseDefaultLength ; 1
if (usacExtElementUseDefaultLength) {
usacExtElementPayloadLength = usacExtElementDefaultLength;
} else {
usacExtElementPayloadLength = escapedValue(8,16,0);
}
if (usacExtElementPayloadLength>0) {
if (usacExtElementPayloadFrag) {
usacExtElementStart ; 1 uimsbf
usacExtElementStop ; 1 uimsbf
} else {
usacExtElementStart = 1;
usacExtElementStop = 1;
}
for (i=0; i<usacExtElementPayloadLength; i++) {
usacExtElementSegmentData[i]; 8 uimsbf
}
}
}
부수적 페이로드 요소들의 구문의 특징들( Features of the syntax of subsidiary payload elements )
표 - UsacCoreCoderData ()의 구문
Syntax(구문) No. of bits
(비트 숫자)
Mnemonic
(연상기호)
UsacCoreCoderData(nrChannels, indepFlag)
{
for (ch=0; ch < nrChannels; ch++) {
core _ mode[ch]; 1 uimsbf
}
if (nrChannels == 2) {
StereoCoreToolInfo(core_mode);
}
for (ch=0; ch<nrChannels; ch++) {
if (core_mode[ch] == 1) {
lpd_channel_stream(indepFlag);
}
else {
if ( (nrChannels == 1) || (core_mode[0] != core_mode[1]) ) {
tns _ data _ present[ch]; 1 uimsbf
}
fd_channel_stream(common_window, common_tw,
tns_data_present[ch], noiseFilling, indepFlag);
}
}
}
표 - StereoCoreToolInfo ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
StereoCoreToolInfo(core_mode)
{
if (core_mode[0] == 0 && core_mode[1] == 0) {
tns _ active ; 1 uimsbf
common _ window ; 1 uimsbf
if (common_window) {
ics_info();
common _ max _ sfb ; 1 uimsbf
if (common_max_sfb == 0) {
if (window_sequence == EIGHT_SHORT_SEQUENCE) {
max _ sfb1 ; 4 uimsbf
} else {
max _ sfb1 ; 6 uimsbf
}
} else {
max_sfb1 = max_sfb;
}
max_sfb_ste = max(max_sfb, max_sfb1);
ms _ mask _ present ; 2 uimsbf
if ( ms_mask_present == 1 ) {
for (g = 0; g < num_window_groups; g++) {
for (sfb = 0; sfb < max_sfb; sfb++) {
ms _ used[g][sfb]; 1 uimsbf
}
}
}
if (ms_mask_present == 3) {
cplx_pred_data();
} else {
alpha_q_re[g][sfb] = 0;
alpha_q_im[g][sfb] = 0;
}
}
if (tw_mdct) {
common _ tw ; 1 uimsbf
if ( common_tw ) {
tw_data();
}
}
if (tns_active) {
if (common_window) {
common _ tns ; 1 uimsbf
} else {
common_tns = 0;
}
tns _ on _ lr ; 1 uimsbf
if (common_tns) {
tns_data();
tns_data_present[0] = 0;
tns_data_present[1] = 0;
} else {
tns _ present _ both ; 1 uimsbf
if (tns_present_both) {
tns_data_present[0] = 1;
tns_data_present[1] = 1;
} else {
tns _ data _ present [1]; 1 uimsbf
tns_data_present[0] = 1 - tns_data_present[1];
}
}
} else {
common_tns = 0;
tns_data_present[0] = 0;
tns_data_present[1] = 0;
}
} else {
common_window = 0;
common_tw = 0;
}
}
표 - fd _ channel _ stream ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
fd_channel_stream(common_window, common_tw, tns_data_present, noiseFilling, indepFlag)
{
global _ gain ; 8 uimsbf
if (noiseFilling) {
noise _ level ; 3 uimsbf
noise _ offset ; 5 uimsbf
}
else {
noise_level = 0;
}
if (!common_window) {
ics_info();
}
if (tw_mdct) {
if ( ! common_tw ) {
tw_data();
}
}
scale_factor_data ();
if (tns_data_present) {
tns_data ();
}
ac_spectral_data( indepFlag);
fac _ data _ present ; 1 uimsbf
if (fac_data_present) {
fac_length = (window_sequence==EIGHT_SHORT_SEQUENCE) ? ccfl/16 : ccfl/8;
fac_data(1, fac_length);
}
}
표 - lpd _ channel _ stream ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
lpd_channel_stream(indepFlag)
{
acelp _ core _ mode ; 3 uimsbf
lpd _ mode ; 5 uimsbf ,
Note 1
bpf _ control _ info 1 uimsbf
core _ mode _ last ; 1 uimsbf
fac _ data _ present ; 1 uimsbf
first_lpd_flag = !core_mode_last;
first_tcx_flag=TRUE;
k = 0;
while (k < 4) {
if (k==0) {
if ( (core_mode_last==1) && (fac_data_present==1) ) {
fac_data(0, ccfl/8);
}
} else {
if ( (last_lpd_mode==0 && mod[k]>0) ||
(last_lpd_mode>0 && mod[k]==0) ) {
fac_data(0, ccfl/8);
}
}
if (mod[k] == 0) {
acelp_coding(acelp_core_mode);
last_lpd_mode=0;
k += 1;
}
else {
tcx_coding( lg(mod[k]) , first_tcx_flag, indepFlag); Note 3
last_lpd_mode=mod[k];
k += ( 1 << (mod[k]-1) );
first_tcx_flag=FALSE;
}
}
lpc_data(first_lpd_flag);
if (core_mode_last==0 && fac_data_present==1) {
short _ fac _ flag ; 1 uimsbf
fac_length = short_fac_flag ? ccfl/16 : ccfl/8;
fac_data(1, fac_length);
}
}
표 - fac _ data ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
fac_data(useGain, fac_length)
{
if (useGain) {
fac _ gain ; 7 uimsbf
}
for (i=0; i<fac_length/8; i++) {
code_book_indices (i, 1, 1);
}
}
Note 1: This value is encoded using a modified unary code, where qn=0 is represented by one "0" bit, and any value qn greater or equal to 2 is represented by qn-1 "1" bits followed by one "0" stop bit.
Note 1 : qn=0이 하나의 "0" 비트에 의해 표현되는 곳에서, 이 값은 수정된 1진법 코드를 이용하여 인코딩되고, 2보다 크거나 같은 어떠한 값 qn은 하나의 "0" 스탑 비트가 따르는 qn-1 "1" 비트에 의해 표현된다.

Note that qn=1 cannot be signaled, because the codebook Q 1 is not defined.
코드북 Q 1 이 정의되지 않기 때문에, qn-1은 시그널링 될 수 없다는 것을 주의하라.
향상된 SBR 페이로드 구문의 특징들( Features of enhanced SBR payload syntax )
표 - UsacSbrData ()
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
UsacSbrData(harmonicSBR, numberSbrChannels, indepFlag)
{
if (indepFlag) {
sbrInfoPresent = 1;
sbrHeaderPresent = 1;
} else {
sbrInfoPresent ; 1 uimsbf
if (sbrInfoPresent) {
sbrHeaderPresent ; 1 uimsbf
} else {
sbrHeaderPresent = 0;
}
}
if (sbrInfoPresent) {
SbrInfo();
}
if (sbrHeaderPresent) {
sbrUseDfltHeader ; 1 uimsbf
if (sbrUseDfltHeader) {
/* copy all SbrDfltHeader() elements
dlft_xxx_yyy to bs_xxx_yyy */
} else {
SbrHeader();
}
}
sbr_data(harmonicSBR, bs_amp_res, numberSbrChannels, indepFlag);
표 - SbrInfo 의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
SbrInfo()
{
bs _ amp _ res; 1
bs _ xover _ band; 4 Uimsbf
bs _ sbr _ preprocessing; 1 Uimsbf
if (bs_pvc) {
bs _ pvc _ mode; 2 uimsbf
}
}
표 - SbrHeader 의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
SbrHeader()
{
bs _ start _ freq; 4 uimsbf
bs _ stop _ freq; 4 uimsbf
bs _ header _ extra1 ; 1 uimsbf
bs _ header _ extra2 ; 1 uimsbf
if (bs_header_extra1 == 1) {
bs _ freq _ scale; 2 uimsbf
bs _ alter _ scale; 1 uimsbf
bs _ noise _ bands; 2 uimsbf
}
if (bs_header_extra2 == 1) {
bs _ limiter _ bands; 2 uimsbf
bs _ limiter _ gains; 2 uimsbf
bs _ interpol _ freq; 1 uimsbf
bs _ smoothing _ mode; 1 uimsbf
}
}
Note 1 : bs_start_freq 및 bs_stop_freq 는 ISO/IEC 14496-3:2009, 4.6.18.3.6 에서 정의된 제한들을 넘지 않는 주파수 대역들을 정의한다.
Note 3 : 만약 이 비트가 설정되지 않는 경우 요소들을 내포하는 데이터에 대한 디폴트 값들은 이용되고 무시된(disregarded) 어떠한 이전 값일 것이다.
표 - sbr _ data ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
sbr_data(harmonicSBR, bs_amp_res, numberSbrChannels, indepFlag)
{
switch (numberSbrChannels) {
case 1:
sbr_single_channel_element(harmonicSBR, bs_amp_res, indepFlag);
break;
case 2:
sbr_channel_pair_element(harmonicSBR, bs_amp_res, indepFlag);
break;
}
표 - sbr _ envelope ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
sbr_envelope(ch, bs_coupling, bs_amp_res)
{
if (bs_coupling) {
if (ch) {
if (bs_amp_res) {
t_huff = t_huffman_env_bal_3_0dB;
f_huff = f_huffman_env_bal_3_0dB;
} else {
t_huff = t_huffman_env_bal_1_5dB;
f_huff = f_huffman_env_bal_1_5dB;
}
} else {
if (bs_amp_res) {
t_huff = t_huffman_env_3_0dB;
f_huff = f_huffman_env_3_0dB;
} else {
t_huff = t_huffman_env_1_5dB;
f_huff = f_huffman_env_1_5dB;
}
}
} else {
if (bs_amp_res) {
t_huff = t_huffman_env_3_0dB;
f_huff = f_huffman_env_3_0dB;
} else {
t_huff = t_huffman_env_1_5dB;
f_huff = f_huffman_env_1_5dB;
}
}
for (env = 0; env < bs_num_env[ch]; env++) {
if (bs_df_env[ch][env] == 0) {
if (bs_coupling && ch) {
if (bs_amp_res)
bs_data_env[ch][env][0] = bs _ env _ start _ value _ balance; 5 uimsbf
else
bs_data_env[ch][env][0] = bs _ env _ start _ value _ balance; 6 uimsbf
} else {
if (bs_amp_res)
bs_data_env[ch][env][0] = bs _ env _ start _ value _ level; 6 uimsbf
else
bs_data_env[ch][env][0] = bs _ env _ start _ value _ level; 7 uimsbf
}
for (band = 1; band < num_env_bands[bs_freq_res[ch][env]]; band++) Note 1
bs_data_env[ch][env][band] = sbr_huff_dec(f_huff, bs _ codeword); 1..18 Note 2
} else {
for (band = 0; band < num_env_bands[bs_freq_res[ch][env]]; band++) Note 1
bs_data_env[ch][env][band] = sbr_huff_dec(t_huff, bs _ codeword); 1..18 Note 2
}
if (bs_interTes) {
bs _ temp _ shape [ ch ][ env ]; 1 uimsbf
if (bs_temp_shape[ch][env]) {
bs _ inter _ temp _ shape _ mode [ ch ][ env ]; 2 uimsbf
}
}
}
}
Note 1: num_env_bands[bs_freq_res[ch][env]]는 ISO/IEC 14496-3:2009, 4.6.18.3 에 따라 헤더로부터 유도되고 n 으로 명명된다.
Note 2: sbr_huff_dec() 는 ISO/IEC 14496-3:2009, 4.A.6.1에서 정의된다.
표 - FramingInfo ()의 구문
Syntax(구문) No. of bits
(비트숫자)
Mnemonic
(연상기호)
FramingInfo()
{
if (bsHighRateMode) {
bsFramingType; 1 uimsbf
bsNumParamSets; 3 uimsbf
} else {
bsFramingType = 0;
bsNumParamSets = 1;
}
numParamSets = bsNumParamSets + 1;
nBitsParamSlot = ceil(log2(numSlots));
if (bsFramingType) {
for (ps=0; ps<numParamSets; ps++) {
bsParamSlot[ps]; nBitsParamSlot uimsbf
}
}
}
데이터 요소들의 간략한 설명( Short Description of Data Elements )
UsacConfig () 이것은 함유된 오디오 컨텐츠 뿐만 아니라 완전한 디코더 설정을 위해 필요한 모든 정보를 함유한다.
UsacChannelConfig () 이 요소는 확성기들에 그들의 맵핑 및 함유된 비트스트림 요소들에 대한 정보를 준다.
UsacDecoderConfig () 이 요소는 비트스트림을 해석하기 위해 디코더에 의해 요구되는 모든 추가 정보를 포함한다. 특히 SBR 리샘플링 비율은 여기서 시그널링되며 비트스트림의 구조는 비트스트림에서 그들의 순서 및 요소들의 숫자를 명백히 언급하는 것에 의해 여기서 정의된다.
UsacConfigExtension () USAC 에 대한 추가 구성 확장을 위해 구성을 확장하기 위한 구성 확장 메커니즘
UsacSingleChannelElementConfig ()
UsacSingleChannelElementConfig()는 하나의 단일 채널을 디코딩하기 위한 디코더를 구성하기 위해 필요한 모든 정보를 포함한다. 이는 필수적으로 코어 코더 관련 정보이고 만약 SBR 이 이용되는 경우 SBR 관련 정보이다.
UsacChannelPairElementConfig () 위 요소 구성에 유사하게 하나의 채널 쌍을 디코딩하기 위한 디코더를 구성하는데 필요한 모든 정보를 포함한다. 위에서 언급된 코어 구성 및 sbr 구성에 더하여 이는 (MPS212, 잔류물 등등과 함께 또는 없이) 적용된 스테레오 코딩의 정확한 종류같이 이것은 스테레오 특정 구성을 포함한다. 이 요소는 USAC에서 현재 가능한 스테레오 코딩 옵션들의 모든 종류를 커버한다.
UsacChannelPairElementConfig () 위 내용에 유사하게 이 요소 구성은 한 채널 쌍을 디코딩하기 위한 디코더를 구성하기 위해 필요한 모든 정보를 함유한다.
UsacLfeElementConfig () LFE 요소 구성은 LFE 요소가 고정 구성을 갖기 때문에 구성 데이터를 함유하지 않는다.
UsacExtElementConfig () 이 요소 구성은 코덱에 어떠한 종류의 기존 또는 추가 확장들을 구성하기 위해 이용될 수 있다. 각 확장 요소 타입은 그것의 자체 전용 타입 값을 갖는다. 길이 필드는 디코더에 알려지지 않은 구성 확장들을 생략할 수 있도록 포함된다.
UsacCoreConfig () 이는 코어 코더 셋-업에서 임팩트를 갖는 구성 데이터를 포함한다.
SbrConfig () 는 일반적으로 일정한 eSBR 의 구성 요소들에 대한 디폴트 값들을 포함한다. 게다가, 고정 SBR 구성 요소들은 SbrConfig()에서도 운반된다. 이러한 고정 비트들은, 고조파 전위 또는 인터(inter) TES 같은, 향상된 SBR 의 특정 특징들을 가능 또는 불가능하게 하는 플래그들(flags)을 포함한다.
SbrDfltHeader () 이 요소는 이러한 요소들에 대해 다르지 않은 값들이 요구되는 경우와 관련될 수 있는 SbrHeader() 의 요소들의 디폴트 버젼(version)을 운반한다.
Mps212Config () MPEG 써라운드 2-1-2 툴들에 대한 모든 설정 파라미터들은 이 구성에서 조립된다.
escapedValue () 이 요소는 다양한 수의 비트들을 이용하는 정수 값을 전송하기 위한 일반적인 방법을 실행한다. 그것은 추가 비트들의 연속적인 전송에 의해 값들의 표현할 수 있는 범위를 확장하는 것을 가능하게 하는 2 레벨 탈출 메커니즘(two level escape mechanism)을 특징으로 한다.
usacSamplingFrequencyIndex 이 지수는 디코딩 후에 오디오 신호의 샘플링 주파수를 결정한다. usacSamplingFrequencyIndex 의 값 및 그들의 관련된 샘플링 주파수들은 표 C에서 설명된다.
표 C - usacSamplingFrequencyIndex 의 값 및 의미
usacSamplingFrequencyIndex sampling frequency
(샘플링 주파수)
0x00 96000
0x01 88200
0x02 64000
0x03 48000
0x04 44100
0x05 32000
0x06 24000
0x07 22050
0x08 16000
0x09 12000
0x0a 11025
0x0b 8000
0x0c 7350
0x0d reserved
0x0e reserved
0x0f 57600
0x10 51200
0x11 40000
0x12 38400
0x13 34150
0x14 28800
0x15 25600
0x16 20000
0x17 19200
0x18 17075
0x19 14400
0x1a 12800
0x1b 9600
0x1c reserved
0x1d reserved
0x1e reserved
0x1f escape value
NOTE : UsacSamplingFrequencyIndex 0x00 에서 0x0e 까지의 값들은 ISO/IEC 14496-3:2009 에서 특정된 AudioSpecificConfig()에 포함된 0x0 에서 0xe 까지의 samplingFrequencyIndex 의 것들과 동일하다.
usacSamplingFrequency usacSamplingFrequencyIndex 가 0인 경우 서명이 없는 정수 값에 따라 코딩된 디코더의 출력 샘플링 주파수.
channelConfigurationIndex 이 지수는 채널 구성을 결정한다. channelConfigurationIndex > 0 인 경우 상기 지수는 표 Y에 따라 맵핑하는 관련 확성기 및 채널 요소들, 채널들 숫자를 분명하게 정의한다. 확성기 위치들의 이름들, 이용된 축약들 및 이용가능한 확성기들의 일반적 위치는 도 3a, 3b, 도 4a 및 4b로부터 추측될 수 있다.
bsOutputChannelPos 이 지수는 도 4a 에 따라 주어진 채널에 관련된 확성기 위치들을 설명한다. 도 4b는 청취자의 3D 환경에서 확성기 위치를 가리킨다. 확성기 위치들의 이해를 돕기 위하여 도 4a는 관심있는 리더들(reader)에 대한 정보에 대해 여기에 나열된 IEC 100/1706/CDV에 따라 확성기 위치들을 포함한다.
표 - coreSbrFrameLengthIndex 에 의존하는 numSlots 및 coreCoderFrameLength, sbrRatio , outputFrameLength 의 값들
Index
(지수)
coreCoder - FrameLength sbrRatio
( sbrRatioIndex )
output - FrameLength Mps212 numSlots
0 768 no SBR (0) 768 N.A.
1 1024 no SBR (0) 1024 N.A.
2 768 8:3 (2) 2048 32
3 1024 2:1 (3) 2048 32
4 1024 4:1 (1) 4096 64
5-7 reserved
usacConfigExtensionPresent 는 구성에 확장들의 존재를 표시한다.
numOutChannels 는 channelConfigurationIndex 의 값이 미리-설정된 채널 구성들 중 아무것도 이용되지 않는다는 것을 가리키는 경우 그 후 이 요소는 특정 확정기 위치가 관련되는 것에 대해 오디오 채널들의 숫자를 결정한다.
numElements 이 필드는 UsacDecoderConfig() 에서 요소 타입들에 대한 루프(loop)에서 따를 요소들의 숫자를 포함한다.
usacElementType [elemIdx] 는 비트스트림에서 위치 elemIdx 에서의 요소들의 USAC 채널 요소 타입을 정의한다. 네개의 요소 타입들이 존재하며, 네개의 기초 비트스트림 요소들 각각에 대한 하나는 : UsacSingleChannelElement(), UsacChannelPairElement(), UsacLfeElement(),UsacExtElement()이다. 이 요소들은 모든 필요한 유연성(flexibility)을 유지(maintaining)하는 동안 필요한 최고 레벨 구조(top level structure)를 공급한다. usacElementType 의 의미는 표 A에서 정의된다.
표 A - usacElementType 의 값
usacElementType Value(값)
ID_USAC_SCE 0
ID_USAC_CPE 1
ID_USAC_LFE 2
ID_USAC_EXT 3
stereoConfigIndex 이 요소는 UsacChannelPairElement()의 내부 구조를 결정한다. 그것은 단일 또는 스테레오 코어의 이용, MPS212, 스테레오 SBR이 적용되는지 여부, 잔류 코딩이 표 ZZ에 따라 MPS212에서 적용되는지 여부를 가리킨다. 이 요소는 또한 보조 요소들(helper elements) bsStereoSbrbsResidualCoding 의 값들을 정의한다.
ZZ - stereoConfigIndex 의 값들 및 그 의미 그리고 bsStereoSbr 및 bsResidualCoding 의 내재된 배치
stereoConfigIndex meaning (의미) bsStereoSbr bsResidualCoding
0 regular CPE (no MPS212) N/A 0
1 single channel + MPS212 N/A 0
2 two channels + MPS212 0 1
3 two channels + MPS212 1 1
tw _ mdct 이 플래그는 이 스트림에서 시간-워프된 MDCT의 이용을 시그널링한다(신호한다)
noiseFilling 이 플래그는 FD 코어 코더에서 스펙트럼 홀들의 노이즈 필링의 이용을 시그널링한다.
harmonicSBR 이 플래그는 SBR 에 대한 고조파 패칭의 이용을 시그널링한다.
bs _ interTes 이 플래그는 SBR에서 inter-TES의 이용을 시그널링한다.
dflt _ start _ freq 이것은, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_start_freq 에 대한 디폴트 값이다.
dflt _ stop _ freq 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_stop_freq 에 대한 디폴트 값이다.
dflt _ header _ extra1 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_header_extra1 에 대한 디폴트 값이다.
dflt _ header _ extra2 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_header_extra2 에 대한 디폴트 값이다.
dflt _ freq _ scale 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_freq_scale 에 대한 디폴트 값이다.
dflt _ alter _ scale 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_alter_scale 에 대한 디폴트 값이다.
dflt _ noise _ bands 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_noise_bands 에 대한 디폴트 값이다.
dflt _ limiter _ bands 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_limiter_bands에 대한 디폴트 값이다.
dflt _ limiter _ gains 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_limiter_gains에 대한 디폴트 값이다.
dflt _ interpol _ freq 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_interpol_freq에 대한 디폴트 값이다.
dflt _ smoothing _ mode 이는, 플래그 sbrUseDfltHeader 가 SbrHeader() 요소들에 대한 디폴트 값들이 추정된다는 것을 가리키는 경우에 적용되는, 비트스트림 요소 bs_smoothing_mode에 대한 디폴트 값이다.
usacExtElementType 이 요소는 비트스트림 확장들 타입들을 신호할 수 있게 한다. usacExtElementType 의 의미는 표 B에서 정의된다.
표 B - usacExtElementType 의
usacExtElementType Value (값)
ID_EXT_ELE_FILL 0
ID_EXT_ELE_MPEGS 1
ID_EXT_ELE_SAOC 2
/* reserved for ISO use */ 3-127
/* reserved for use outside of ISO scope */ 128 및 그 이상(128 and higher)
NOTE : 응용-특정 usacExtElementType 값들은 ISO 범위 밖의 이용을 위해 예약된 공간에 있도록 권한이 주어진다. 구조의 최소값(minimum)이 이 확장들을 생략하기 위해 디코더에 의해 요구되기 때문에 이들은 디코더에 의해 생략된다.
usacExtElementConfigLength 는 바이트들(octets)에서 확장 구성의 길이를 시그널링한다.
usacExtElementDefaultLengthPresent 이 플래그는 usacExtElementDefaultLength 이 UsacExtElementConfig()에서 운송되는지 여부를 시그널링한다.
usacExtElementDefaultLength 는 바이트들(bytes)에서 확장 요소의 디폴트 길이를 시그널링한다. 주어진 엑세스 유닛에서 확장 요소만이 이 값으로부터 벗어나는 경우, 추가 길이는 비트스트림에서 전송될 필요가 있다. 이 요소는 명백히 전송되는 경우(usacExtElementDefaultLengthPresent==0) 그 후 usacExtElementDefaultLength 의 값은 0으로 설정될 것이다.
usacExtElementPayloadFrag 이 플래그는 이 확장 요소의 페이로드가 분열될 수 있는지 그리고 연속 USAC 프레임들에서 몇몇 세그먼트들에 따라 전송할 수 있는지 여부를 표시한다.
numConfigExtensions 만약 구성에 대한 확장들이 UsacConfig() 에서 존재하는 경우 이 값은 시그널링된 구성 확장들을 가리킨다.
confExtIdx confExtIdx 구성 확장들에 대한 지수
usacConfigExtType 이 요소는 구성 확장 타입들을 시그널링할 수 있게 한다. usacExtElementType 의 의미는 표 D에서 정의된다.
표 D - usacConfigExtType 의
usacConfigExtType Value (값)
ID_CONFIG_EXT_FILL 0
/* reserved for ISO use */ 1-127
/* reserved for use outside of ISO scope */ 128 and higher
usacConfigExtLength 은 바이트들(octets)에서 구성 확장의 길이를 시그널링한다.
bsPseudoLr 이 플래그는 역 중간/측면(mid/side) 회전(rotation)이 Mps212 프로세싱에 앞서 코어 신호에 적용되어야 한다는 것을 시그널링한다.
표 - bsPseudoLr
bsPseudoLr Meaning (의미)
0 코어 코더 출력은 DMX/RES
(Core decoder output is DMX/RES)
1 코어 코더 출력은 유사 L/R
(Core decoder output is Pseudo L/R)
bsStereoSbr 이 플래그는 MPEG 써라운드 디코딩과 결합하는 스테레오 SBR 의 이용을 시그널링한다.
표 - bsStereoSbr
bsStereoSbr Meaning(의미)
0 모노 SBR(Mono SBR)
1 스테레오 SBR(Stereo SBR)
bsResidualCoding 는 아래 표에 따라 잔류 코딩이 적용되는지 여부를 가리킨다. bsResidualCoding 의 값은 stereoConfigIndex (X를 참조) 에 의해 정의된다.
표 - bsResidualCoding
bsResidualCoding Meaning (의미)
0 비 잔류 코딩, 코어 코더는 모노
(no residual coding, core coder is mono)
1 잔류 코딩, 코어 코더는 스테레오
(residual coding, core coder is stereo)
sbrRatioIndex eSBR 프로세싱 후 샘플링 레이트 및 코어 샘플링 레이트 사이의 비율을 가리킨다. 동시에 밑의 표에 따라 SBR에서 이용되는 합성 대역들 및 QMF 분석의 숫자를 가리킨다.
표 - sbrRatioIndex 의 정의
sbrRatioIndex sbrRatio QMF 대역 비율(QMF band ratio)
분석:합성(analysis:synthesis)
0 no SBR -
1 4:1 16:64
2 8:3 24:64
3 2:1 32:64
elemIdx UsacFrame() 및 UsacDecoderConfig() 에서 존재하는 요소들에 대한 지수.
UsacConfig ()
UsacConfig() 는 채널 구성 및 출력 샘플링 주파수에 대한 정보를 포함한다. 이 정보는 예를 들어, MPEG-4 AudioSpecificConfig()에서 이 요소 바깥으로 시그널링되는 정보와 동일할 것이다.
Usac Output Sampling Frequency
만약 샘플링 레이트(rate)가 오른쪽 컬럼(column)에서 나열된 레이트들 중 하나가 아닌 경우, 표들(코드 표들, 스케일 인수 대역 표들 등등)에 의존하는 샘플링 주파수는 비트스트림 페이로드가 파싱되기(parsed) 위해 추론되어야만 한다. 주어진 샘플링 주파수가 오직 하나의 샘플링 주파수 표와 관련되었기 때문에, 그리고 최대 유연성(flexibility)가 가능한 샘플링 주파수들의 범위에서 요구되기 때문에, 다음 표는 요구되는 샘플링 주파수 의존 표들과 적용된 샘플링 주파수를 관련시키도록 이용될 것이다.
표 1 - 샘플링 주파수 맵핑
주파수 범위 (in Hz) 샘플링 주파수에 대한 이용 표들(in Hz)
(Use tables for sampling frequency)
f >= 92017 96000
92017 > f >= 75132 88200
75132 > f >= 55426 64000
55426 > f >= 46009 48000
46009 > f >= 37566 44100
37566 > f >= 27713 32000
27713 > f >= 23004 24000
23004 > f >= 18783 22050
18783 > f >= 13856 16000
13856 > f >= 11502 12000
11502 > f >= 9391 11025
9391 > f 8000
UsacChannelConfig ()
채널 구성 표는 가장 일반적인 확성기 위치들을 커버한다. 추가 유연성을 위해 채널들은 다양한 응용들에서 현대의 확성기 설정들에서 발견되는 32 확성기 위치들의 전체적인 선택에 맵핑(mapped) 될 수 있다(도 3a, 3b 참조).
비트스트림에 포함된 각 채널에 대해 UsacChannelConfig() 는 이 특정 채널이 맵핑되는 곳에 관련 확성기 위치를 특정한다. bsOutputChannelPos 에 의해 색인된(연동된, indexed) 확성기 위치들은 도 4a에 나열되어 있다. 다중 채널 요소들의 경우에 bsOutputChannelPos[i] 의 지수 i 는 비트스트림에서 채널이 나타나는 위치를 가리킨다. 도 Y 는 청취자와의 관계에서 확성기 위치에 대한 개요를 준다.
더 정확하게 채널들은 그것들이 0(zero)로 시작하는 비트스트림에서 나타나는 시퀀스로 순서가 매겨진다. UsacSingleChannelElement() 또는 UsacLfeElement() 의 사소한 경우에 채널 숫자는 채널 숫자는 그 채널에 할당되고 채널 카운트(count)는 하나가 증가한다. UsacChannelPairElement() 의 경우 (지수 ch==0을 갖는) 그 요소에서의 제1채널이 첫번째로 순서가 매겨지며, 반면 (지수 ch==1을 갖는) 그 동일 요소에서 제2채널은 다음으로 높은 숫자를 받으며 채널 카운트는 2가 높아진다.
numOutChannels 은 비트스트림에 포함된 모든 채널들의 누적된 합보다 작거나 또는 그와 같을 것이다. 모든 채널들의 누적된 합은 모든 UsacSingleChannelElement()s 의 숫자에 모든 UsacLfeElement()s 의 숫자를 더하고 모든 UsacChannelPairElement()s 의 두 배 숫자를 더한 것과 같다.
배치(array) bsOutputChannelPos 에서 모든 입력들(entries)은 비트스트림에서 확성기 위치들의 이중 배치를 피하기 위해 상호 구별될 것이다.
channelConfigurationIndex 이 0 이고 numOutChannels 이 비트스트림에 포함된 모든 채널들의 누적된 합보다 작은 특별한 경우, 비-할당 채널(non-assigned channels)의 처리는 이 명세서 범위 밖이다. 이에 대한 정보는, 예를 들어, 특별히 설계된 (전용) 확장 페이로드들에 의해 또는 더 높은 응용 레이어들에서 적절한 수단에 의해 전달될 수 있다.
UsacDecoderConfig ()
UsacDecoderConfig()은 비트스트림을 해석하기 위해 디코더에 의해 요구되는 모든 추가 정보를 포함한다. 먼저 sbrRatioIndex 의 값은 코어 코더 프레임 기리 (ccfl) 및 출력 프레임 길이 사이의 비율을 결정한다. 다음 sbrRatioIndex 은 본 비트스트림에서 모든 채널 요소들에 걸친 루프(loop)이다. 각 반복에 대해 요소의 타입은 usacElementType[]에서 시그널링되고, 그 대응하는 구성 구조가 즉시 뒤따른다. UsacDecoderConfig() 에서 다양한 요소들이 존재하는 순서는 UsacFrame() 에서 대응하는 페이로드의 순서와 동일할 것이다.
요소의 각 인스턴스(instance)는 독립적으로 구성될 수 있다.UsacFrame() 에서 각 채널 요소를 읽을 때, 각 요소에 대해, 즉 동일 elemIdx를 가지는, 그 인스턴스의 대응하는 구성이 이용될 것이다.
UsacSingleChannelElementConfig ()
UsacSingleChannelElementConfig() 는 하나의 단일 채널을 디코딩하기 위해 디코더를 구성하기 위한 필요한 모든 정보를 포함한다. SBR 구성 데이터는 오직 SBR이 실제로 이용될 때만 전송된다.
UsacChannelPairElementConfig ()
UsacChannelPairElementConfig()은 코어 코더 관련 구성 데이터 뿐만 아니라 SBR의 이용에 의존하는 SBR 구성 데이터도 포함한다. 스테레오 코딩 알고리즘의 정확한 타입은 stereoConfigIndex에 의해 표시된다. USAC에서 채널 쌍은 다양한 방법으로 인코딩 될 수 있다. 이들은 :
1. MDCT 영역에서 복잡한 예측의 가능성에 의해 확장되는, 종래의 결합 스테레오 코딩 기술을 이용하는 스테레오 코어 코더 쌍
2. 완전히 파라미터적인 스테레오 코딩에 대해 MPS212 기반 MPEG 써라운드와 결합하는 모노 코어 코더 채널. 모노 SBR 프로세싱은 코어 신호 상에 적용된다.
3. MPS212 기반 MPEG 써라운드와 결합하는 스테레오 코어 코더 쌍, 여기서 제1코어 코더 채널은 다운믹스 신호를 운반하고 제2채널은 잔류 신호를 운반한다. 잔류물은 부분 잔류 코딩을 실현하기 위해 제한된 대역일 수 있다. 모노 SBR 프로세싱은 MPS212 프로세싱 전에 다운믹스 신호 상에만 적용된다.
4. MPS212 기반 MPEG 써라운드와 결합하는 스테레오 코어 코더 쌍, 여기서 제1코어 코더 채널은 다운믹스 신호를 운반하고 제2채널은 잔류 신호를 운반한다. 잔류물은 부분 잔류 코딩을 실현하기 위해 제한된 대역일 수 있다. 스테레오 SBR은 MPS212 프로세싱 후에 복원된 스테레오 신호상에 적용된다.
옵션 3 및 4는 코어 코더 뒤에 유사(pseudo) LR 채널 회전과 추가로 결합될 수 있다.
UsacLfeElementConfig ()
시간 워프된 MDCT의 이용 및 노이즈 필링이 LFE 채널들에 허용되지 않기 때문에, 이러한 도구들에 대해 통상적인 코어 코더 플래그를 전송할 필요가 없다. 그것들은 대신에 0으로 설정될 것이다.
또한 SBR의 이용은 LEF 컨텍스트에서 허용되지도 않고 의미있지도 않다. 그래서, SBR 구성 데이터는 전송되지 않는다.
UsacCoreConfig ()
UsacCoreConfig() 은 오직 글로벌 비트스트림 레벨 상에 스펙트럼 노이즈 필링 및 시간 워프된 MDCT 의 이용을 가능- 또는 불가능하게 하는 플래그들을 포함한다. 만약 tw_mdct가 0으로 설정되는 경우, 시간 워핑은 적용되지 않을 것이다. 만약 노이즈필링이 0으로 설정되는 경우 스펙트럼 노이즈 필링은 적용되지 않을 것이다.
SbrConfig ()
SbrConfig() 비트스트림 요소는 정확한 eSBR 설정 파라미터들을 시그널링하기 위한 목적으로 기능한다. 한편 SbrConfig() 은 eSBR 툴들의 일반적 이용을 시그널링한다. 다른 한편, 그것은 SbrHeader(), 및 SbrDfltHeader()의 디폴트 버젼을 포함한다. 다르지 않은 SbrHeader()가 비트스트림에서 전송되는 경우 이 디폴트 헤더의 값들이 추정될 것이다. 이 메커니즘의 배경은, 하나의 비트스트림에 일반적으로 SbrHeader() 값들의 오직 한 세트가 적용된다는 것이다. SbrDfltHeader() 의 전송은 비트스트림에서 오직 하나의 비트를 이용하여 아주 효율적으로 값들의 이 디폴트 집합(세트, set)을 참조할 수 있도록 한다. 즉시 SbrHeader 의 값들을 다양화하는 가능성은 비트스트림 그 자체에서 새로운 SbrHeader 의 대역-내 전송을 허용하는 것에 의해 여전히 보유될 수 있다.
SbrDfltHeader ()
SbrDfltHeader() 는 기본 SbrHeader() 템플릿이라 불릴수 있고 대부분 이용된 eSBR 구성에 대한 값들을 포함해야 한다. 비트스트림에서 이 구성은 sbrUseDfltHeader 플래그를 설정하는 것에 의해 언급될 수 있다. SbrDfltHeader() 의 구조는 SbrHeader()의 그것과 동일하다. SbrDfltHeader() 및 SbrHeader()의 값들 사이를 구별할 수 있도록, SbrDfltHeader() 의 비트 필드들은 "bs_" 대신에 "dflt_" 로 접두사가 붙여진다(prefixed). SbrDfltHeader() 의 이용이 표시되는 경우, SbrHeader() 비트 필드들은 대응하는 SbrDfltHeader()의 값들을 추정하는데, 즉,
bs_start_freq = dflt_start_freq;
bs_stop_freq = dflt_stop_freq;
등등.
(bs_xxx_yyy = dflt_xxx_yyy; : 같은 SbrHeader()에서의 모든 요소들에 대해 계속함)
Mps212Config ()
Mps212Config()은 MPEG 써라운드의 SpatialSpecificConfig() 과 유사하고 그것으로부터 추론된 큰 부분들에 있었다. 그러나 그것은 USAC 컨텍스트에서 모노 to 스테레오 업믹싱에 관련된 정보만을 포함하도록 크기가 감소된다. 결론적으로 MPS212는 오직 하나의 OTT 박스만 구성한다.
UsacExtElementConfig ()
UsacExtElementConfig() 는 USAC에 대한 확장 요소들의 구성 데이터에 대한 일반적인 컨테이너이다. 각 USAC 확장은, 도 6k에서 정의되는, usacExtElementType, 고유 타입 식별기를 갖는다. 각 UsacExtElementConfig() 에 대해 포함된 확장 구성의 길이는 다양한 usacExtElementConfigLength 에서 전송되고 디코더들이 usacExtElementType 가 알려지지 않은 확장 요소들을 안전하게 생략하는 것을 가능하게 한다.
일반적으로 일정한 페이로드 길이를 갖는 USAC 확장들에 대해, UsacExtElementConfig() 는 usacExtElementDefaultLength의 전송을 허용한다. 구성에서 디폴트 페이로드 길이를 정의하는 것은 UsacExtElement() 내에서 usacExtElementPayloadLength 의 고 효율 시그널링을 가능케하고, 여기서 비트 소비는 낮게 유지될 필요가 있다.
데이터의 더 큰 양이 프레임 당(per frame) 기준으로가 아닌 매 두번째 프레임마다 또는 훨씬 더 드물게 누적되고 전송되는 곳에서의 USAC 확장들의 경우에, 이 데이터는 몇몇 USAC 프레임들에 걸친 분할들(fragments) 또는 부분들(segments)로 전송될 수 있다.
이는 더 균등화된 비트 저장을 유지하기 위해 유용할 수 있다. 이 메커니즘의 이용은 플래그 usacExtElementPayloadFrag 플래그에 의해 시그널링된다. 분할 메커니즘(fragmentation mechanism)은 6.2.X.에서 usacExtElement 의 서술로 더 설명된다.
UsacConfigExtension ()
UsacConfigExtension()는 UsacConfig의 확장들에 대한 일반 컨테이너(container)이다. 그것은 디코더 초기화 또는 설정시에 변경되는 정보를 수정 또는 확장하기 위한 편리한 방법을 제공한다. 구성(config) 확장들의 존재는 usacConfigExtensionPresent 에 의해 표시된다. 만약 구성 확장들이 존재한다면(usacConfigExtensionPresent==1), 이러한 확장들의 정확한 숫자는 비트 필드 numConfigExtensions를 따른다. 각 구성 확장은 고유 타입 식별기(unique type identifier), usacConfigExtType 를 갖는다. 각 UsacConfigExtension 에 대해 포함된 구성 확장의 길이는 다양한 usacConfigExtLength 에서 전송되고 구성 비트스트림 파서(parser)가 usacConfigExtType 이 알려지지 않은 구성 확장들을 안전하게 생략할 수 있도록 한다.
오디오 개체( 오브젝트 , object ) 타입 USAC 에 대한 최고 레벨 페이로드들( Top level payloads for the audio object type USAC )
용어들 및 정의들( Terms and definitions )
UsacFrame() 이 데이터의 블록은 하나의 USAC 프레임의 시간 길이에 대한 오디오 데이터, 관련 정보 및 다른 데이터를 포함한다. UsacDecoderConfig()에서 시그널링 될 때, UsacFrame() 은 numElements 요소들을 포함한다. 이러한 요소들은, 하나 또는 두 채널들에 대한 오디오 데이터, 저주파수 향상 또는 확장 페이로드에 대한 오디오 데이터를 포함할 수 있다.
UsacSingleChannelElement() 축약형 SCE. 단일 오디오 채널에 대해 코딩된 데이터를 포함하는 비트스트림의 구문(Syntactic) 요소. single_channel_element() 는 기본적으로, FD 또는 LPD 코어 코더 중 하나에 대한 데이터를 포함하는, UsacCoreCoderData()로 구성된다. SBR이 유효한 경우, UsacSingleChannelElement 는 또한 SBR 데이터를 포함한다.
UsacChannelPairElement() 축약형 CPE. 채널들 쌍에 대한 데이터를 포함하는 비트스트림 페이로드의 구문 요소. 채널 쌍은 두개의 개별 채널들을 전송하는 것에 의해 또는 한개의 개별 채널 및 관련 Mps212 페이로드에 의해 어느 하나로 달성될 수 있다. 이는 stereoConfigIndex 의 수단에 의해 시그널링된다. UsacChannelPairElement은 SBR이 유효한 경우 SBR 데이터를 더 포함한다.
UsacLfeElement() 축약형 LFE. 낮은 샘플링 주파수 향상 채널을 포함하는 구문요소. LFE들은 언제나 fd_channel_stream() 요소를 이용하여 인코딩된다.
UsacExtElement() 확장 페이로드를 포함하는 구문 요소. 확장 요소의 길이는 구성(USACExtElementConfig())에서 디폴트 길이에 따라 시그널링되거나 또는 UsacExtElement() 그 자체에서 시그널링된다. 만약 존재한다면, 구성에서 시그널링된 것에 따라, 확장 페이로드는 타입 usacExtElementType이다.
usacIndependencyFlag 는 현재 UsacFrame() 가 아래 표에 따라 이전 프레임들로부터 정보를 완전히 알지 못하고 디코딩 될 수 있는 경우를 가리킨다.
표 - usacIndependencyFlag 의 의미
usacIndependencyFlag 의
( value of usacIndependencyFlag )
의미( Meaning )
0 UsacFrame()에서 운반된 데이터의 디코딩은 이전 UsacFrame()에 대한 엑세스를 필요로 할 수도 있다.
1 UsacFrame()에서 운반된 데이터의 디코딩은 이전 UsacFrame()에 대한 엑세스 없이도 가능하다.
NOTE : usacIndependencyFlag 의 이용에 있어 추천들(recommendations)에 대한 X.Y 를 참조하라.
usacExtElementUseDefaultLength
usacExtElementUseDefaultLength 는 확장 요소의 길이가, UsacExtElementConfig()에서 정의되었던, usacExtElementDefaultLength에 대응하는지 여부를 가리킨다.
usacExtElementPayloadLength
usacExtElementPayloadLength 는 바이트들에서 확장 요소의 길이를 포함할 것이다. 현재 엑세스 유닛에서 확장 요소의 길이가 디폴트 값, usacExtElementDefaultLength으로부터 벗어나는 경우 이 값은 비트스트림에서 오직 명백히 전송되어야 한다.
usacExtElementStart
usacExtElementStart 는 현재 usacExtElementSegmentData 이 데이터 블록을 시작하는 경우를 가리킨다.
usacExtElementStop
usacExtElementStop 는 현재 usacExtElementSegmentData 가 데이터 블록을 끝내는 경우를 가리킨다.
usacExtElementSegmentData
usacExtElementStart==1 을 갖는 UsacExtElement() 으로부터 시작해서 usacExtElementStop==1 을 갖는 UsacExtElement() 까지 포함하는, 연속적인 USAC 프레임들의 UsacExtElement() 으로부터 모든 usacExtElementSegmentData 의 연속(concatenation)은 하나의 데이터 블록을 형성한다. 하나의 UsacExtElement()에 완전한 데이터 블록이 포함되는 경우, usacExtElementStart 및 usacExtElementStop 은 양쪽 모두 1로 설정될 것이다. 데이터 블록들은 다음 표에 따른 usacExtElementType 에 의존하는 바이트 정렬된 확장 페이로드로 해석된다.
표 - USAC 확장 페이로드 디코딩에 대한 데이터 블록들의 해석
usacExtElementType 연속된 usacExtElementSegmentData 표현들 :
ID_EXT_ELE_FIL Series of fill _ byte
ID_EXT_ELE_MPEGS SpatialFrame()
ID_EXT_ELE_SAOC SaocFrame()
unknown 알려지지 않은 데이터. 데이터 블록은 버려질 것이다.
fill_byte
정보를 운반하지 않는 비트들을 가지고 비트스트림을 덧대기(pad) 위해 이용될 수 있는 비트들의 옥텟(octet). fill_byte를 위해 이용되는 정확한 비트 패턴은 '10100101'이어야 한다.
보조 요소들( Helper Elements )
nrCoreCoderChannels
채널 쌍 요소의 컨텍스트에서 이 변수는 스테레오 코딩에 대한 기초를 형성하는 코어 코더 채널들의 숫자를 가리킨다. stereoConfigIndex 값에 의존하여 이 값은 1 또는 2가 될 것이다.
nrSbrChannels
채널 쌍 요소의 컨텍스트에서 이 변수는 SBR 프로세싱이 적용되는 채널들의 숫자를 가리킨다. stereoConfigIndex 의 값에 의존하여 이 값은 1 또는 2가 될 것이다.
USAC 에 대한 보조 페이로드들( Subsidiary payloads )
용어들 및 정의들(Terms and Definitions)
UsacCoreCoderData()
데이터의 이 블록은 코어-코더 오디오 데이터를 포함한다. 페이로드 요소는 하나 또는 두개의 코어-코더 채널들에 대한, FD 또는 LPD 모드 중 어느 하나에 대한, 데이터를 포함한다. 특정 모드는 상기 요소의 초기에 채널 당(per channel) 시그널링된다.
StereoCoreToolInfo()
모든 스테레오 관련 정보는 이 요소에서 캡쳐된다(captured). 이것은 스테레오 코딩 모드들에서 비트 필드들의 수많은 의존도들을 다룬다.
보조 요소들(Helper Elements)
commonCoreMode
CPE에서 이 플래그는 양쪽 인코딩된 코어 코더 채널들이 동일 모드를 이용하는지 여부를 가리킨다.
Mps212Data()
데이터의 이 블록은 Mps212 스테레오 모듈에 대한 페이로드를 포함한다. 이 데이터의 존재는 stereoConfigIndex 에 의존한다.
common_window
common_window는 CPE의 채널 0 및 채널 1이 동일(identical) 윈도우 파라미터들을 이용하는지 여부를 가리킨다.
common_tw
common_tw 는 CPE의 채널 0 및 채널 1 이 시간 워프된 MDCT에 대해 동일 파라미터들을 이용하는지 여부를 가리킨다.
UsacFrame () 의 디코딩
하나의 UsacFrame() 은 USAC 비트스트림의 하나의 엑세스 유닛을 형성한다. 각 UsacFrame은 표로부터 결정된 output-FrameLength(출력-프레임길이) 에 따라 768, 1024, 2048 또는 4096 출력 샘플들로 디코딩한다.
UsacFrame()에서 제1비트는 usacIndependencyFlag이고, 이는 주어진 프레임이 이전 프레임에 대한 어떠한 인지 없이 디코딩될 수 있는지 여부를 결정한다. usacIndependencyFlag 이 0으로 설정되는 경우, 이전 프레임에 대한 의존들(dependencies)은 현재 프레임의 페이로드에 존재할 수 있다.
UsacFrame() 은 UsacDecoderConfig()에서 그들의 대응하는 구성 요소들과 동일 순서로 비트스트림에서 나타날 하나 이상의 구문 요소들로 더 구성된다. 모든 요소들의 연속(시리즈, series)에서 각 요소의 위치는 elemIdx 으로 색인된다(indexed). 각 요소에 대해, UsacDecoderConfig()에서 전송되는 것에 따라, 그 인스턴스의, 즉 동일 elemIdx 를 갖는, 대응하는 구성이 이용될 것이다.
이러한 구문 요소들은 표에 나열된, 네개의 타입들 중 하나이다. 이러한 요소들 각각의 타입은 usacElementType 에 의해 결정된다. 동일 타입의 다중 요소들이 있을 수 있다. 상이한 프레임들내에서 동일 위치 elemIdx 에서 일어나는(발생하는) 요소들은 동일 스트림에 속할 것이다.
표 - 단순 가능 비트스트림 페이로드들의 예들
numElements elemIdx usacElementType[ elemIdx ]
모노 출력 신호
(mono output signal)
1 0 ID_USAC_SCE
스테레오 출력 신호
(stereo output signal)
1 0 ID_USAC_CPE
5.1 채널 출력 신호
(5.1 channel output signal)
4 0 ID_USAC_SCE
1 ID_USAC_CPE
2 ID_USAC_CPE
3 ID_USAC_LFE
이러한 비트스트림 페이로드들이 일정한 레이트 채널에 대해 전송된다면 그것들은 즉각적인 비트레이트를 조정하기 위해 ID_EXT_ELE_FILL 의 usacExtElementType 을 갖는 확장 페이로드를 포함할 수도 있다. 이 경우 코딩된 스테레오 신호의 예는 :
표 - 필 비트( fill ) 비트들을 쓰기( writing ) 위해 확장 페이로드를 갖는 단순 스테레오 비트스트림의 예들
numElements elemIdx usacElementType[ elemIdx ]
스테레오 출력 신호
(stereo output signal)
2 0 ID_USAC_CPE
1 ID_USAC_EXT
with
usacExtElementType== ID_EXT_ELE_FILL
UsacSingleChannelElement () 의 디코딩
UsacSingleChannelElement() 의 단순 구조는 1로 설정되는 nrCoreCoderChannels 를 갖는 UsacCoreCoderData() 요소의 하나의 인스턴스(instance)로 만들어진다. 이 요소의 sbrRatioIndex 에 의존하여 UsacSbrData() 요소는 1로 설정되는 nrSbrChannels 또한 따른다.
UsacExtElement ()의 디코딩
비트스트림에서의 UsacExtElement() 구조는 USAC 디코더에 의해 생략되거나 디코딩될 수 있다. 모든 확장은 UsacExtElement()의 관련 UsacExtElementConfig() 에서 전달되는, usacExtElementType 에 의해 식별된다. 각 usacExtElementType 에 대해 특정 디코더가 존재할 수 있다.
확장에 대한 디코더가 USAC 디코더에 이용가능한 경우 확장의 페이로드는 UsacExtElement() 가 USAC 디코더에 의해 파싱된(parsed) 후에 즉시 확장 디코더에 포워딩된다.
확장에 대한 디코더가 USAC 디코더에 이용가능하지 않은 경우, 구조의 최소값은 비트스트림 내에서 제공되며, 확장은 USAC 디코더에 의해 무시될 수 있다.
확장 요소의 길이는, UsacExtElement() 에서 기각될(무효될, overruled) 수 있고 대응 UsacExtElementConfig() 내에서 시그널링될 수 있는, 옥텟들(octets)에서 디폴트 길이에 의해, 또는 구문 요소 escapedValue() 를 이용하여, 하나 또는 세개의 옥텟 길이 중 하나인, UsacExtElement() 에서 명백히 제공된 길이 정보에 의해, 특정된다.
하나 이상의 UsacFrame()s 에 걸친 확장 페이로드들은 분할될 수 있고 그들의 페이로드들은 몇몇 UsacFrame()s 중에 분포될 수 있다. 이 경우 usacExtElementPayloadFrag 플래그는 1로 설정되고 디코더는 1로 설정되는 usacExtElementStart 를 갖는 UsacFrame()를 포함하고 1로 설정되는 usacExtElementStart 를 갖는 UsacFrame()로부터 모든 분할들(fragments)을 모아야 한다. usacExtElementStop 이 1로 설정될 때 상기 확장은 완성된 것으로 고려되고 상기 확장 디코더에 지나가게 된다.
분할된 확장 페이로드에 대한 완전성( integrity ) 보호는 이 명세서에서 제공되지 않으며 확장 페이로드들의 완전성을 담보하기 위해 다른 수단이 이용되어야 한다.
모든 확장 페이로드 데이터는 바이트-정렬( byte - aligned )로 추정된다.
각 UsacExtElement() 는 usacIndependencyFlag 의 이용으로부터 도출되는 요구사항들(requirements)을 준수할 것이다. 더 명백히하자면, 만약 usacIndependencyFlag 이 (==1) 로 설정되는 경우 UsacExtElement() 는 이전 프레임(그리고 그것에 포함될 수 있는 확장 페이로드)의 인지(knowledge) 없이 디코딩가능할 것이다.
디코딩 프로세스
UsacChannelPairElementConfig()에서 전송되는 stereoConfigIndex 는 주어진 CPE 에서 적용되는 스테레오 코딩의 정확한 타입을 결정한다. 스테레오 코딩의 이 타입에 의존하여 하나 또는 두개의 코어 코더 채널들 중 하나는 비트스트림에서 실제로 전송되며 변수 nrCoreCoderChannels 는 그에 맞춰 설정될 필요가 있다. 구문 요소 UsacCoreCoderData() 는 그 후 하나 또는 두개의 코어 코더 채널들에 대한 데이터를 제공한다.
유사하게 eSBR의 이용 및 스테레오 코딩 타입에 의존하여 (즉, sbrRatioIndex>0 라면) 하나 또는 두 채널들에 대해 이용가능한 데이터가 있을 수 있다. nrSbrChannels 의 값은 그에 맞춰 설정될 필요가 있고 요소 UsacSbrData() 는 하나 또는 두 채널들에 대한 eSBR 데이터를 제공한다. 결국 Mps212Data()가 stereoConfigIndex 의 값에 의존하여 전송된다.
저주파수 향상( Low frequency enhancement , LFE ) 채널 요소, UsacLfeElement()
일반( General )
디코더에서 일반적 구조를 유지하기 위해, UsacLfeElement() 는 기준 fd_channel_stream(0,0,0,0,x) 요소로 정의되며, 즉 그것은 주파수 영역 코더를 이용하는 UsacCoreCoderData() 와 같다. 이와 같이, 디코딩은 UsacCoreCoderData()-요소를 디코딩하기 위해 기준 절차를 이용하여 수행될 수 있다. 그러나, 더 많은 비트레이트 및 LFE 디코더의 하드웨어 효율적 실행을 수용하기 위해서는, 몇몇 제한들이 이 요소의 인코딩을 위해 이용되는 옵션들에 적용된다 :
·window_sequence 필드는 언제나 0으로 설정된다 (ONLY_LONG_SEQUENCE)
·어떤 LFE의 오직 가장 낮은 24 스펙트럼 계수들만이 0이 아닐 수 있다
·시간적 노이즈 성형(Temporal Noise Shaping)은 이용되지 않고, 즉 tns_data_present 은 0으로 설정된다
·시간 워핑(Time warping)은 유효하지 않다(not active)
·노이즈 필링(noise filling)은 적용되지 않는다
UsacCoreCoderData ()
UsacCoreCoderData() 는 한개 이상의 코어 코더 채널들을 디코딩하기 위한 모든 정보를 포함한다.
디코딩의 순서는 :
·각 채널에 대해 core_mode[] 를 얻는다
·두개의 코어 코딩된 채널들의 경우(nrChannels==2), StereoCoreToolInfo() 를 파싱(parse)하고 모든 스테레오 관련 파라미터들을 결정한다
·시그널링된 core_modes 에 의존하여 각 채널에 대한 fd_channel_stream() 또는 lpd_channel_stream() 를 전송한다
상기 리스트에서 보여질 수 있는 것처럼, 한 코어 코더 채널의 디코딩(nrChannels==1)은, core_mode 에 의존하여, lpd_channel_stream 또는 fd_channel_stream가 뒤따르는 core_mode 비트를 얻는 결과를 도출한다.
두 코어 코더 채널의 경우에서는, 특히 양 채널들의 core_mode 가 0이라면 채널들 사이의 몇몇 시그널링 여분들이 이용될 수 있다. 더 자세한 내용을 위해 6.2.X (StereoCoreToolInfo() 의 디코딩)을 참조하라.
StereoCoreToolInfo ()
StereoCoreToolInfo() 는 효율적으로 파라미터들을 코딩할 수 있고, 그 값들은 양 채널들이 FD 모드에서 코딩되는 경우(core_mode[0,1]==0)에 CPE의 코어 코드 채널들을 넘어 공유될 수 있다. 비트스트림에서 적절한 플래그가 1로 설정될 때, 특히 다음 데이터 요소들이 공유된다.
표 - 코어 코더 채널 쌍의 채널들을 넘어 공유되는 비트스트림 요소들
common _ xxx 플래그는 1로 설정
( common _ xxx flag is set to 1)
채널 0 및 1은 다음 요소들을 공유:
( channels 0 and 1 share the following elements :)
common_window ics_info()
common_window && common_max_sfb max_sfb
common_tw tw_data()
common_tns tns_data()
적절한 플래그가 설정되지 않는 경우 상기 데이터 요소들은 UsacCoreCoderData() 요소에서 StereoCoreToolInfo()를 따르는 fd_channel_stream() 에서 또는 StereoCoreToolInfo() (max_sfb, max_sfb1)에서 각 코어 코더 채널에 대해 개별적으로 전송된다.
common_window==1 의 경우 StereoCoreToolInfo() 는 또한 MDCT 영역에서 복합 예측 데이터(complex prediction data) alc M/S 스테레오 코딩에 대한 정보를 포함한다( 7.7.2 참조).
UsacSbrData()
데이터의 이 블록은 하나 이상의 채널들의 SBR 샌드위치 확장에 대한 페이로드를 포함한다. 이 데이터의 존재는 sbrRatioIndex 상에 의존한다.
SbrInfo()
이 요소는 변화시에 디코더 리셋(reset)을 필요로 하지 않는 SBR 제어 파라미터들을 포함한다.
SbrHeader()
이 요소는 비트스트림이 지속하는 동안 일반적으로 변하지 않는, SBR 구성 파라미터들을 갖는 SBR 헤더 데이터를 포함한다.
SBR payload for USAC
USAC에서 SBR 페이로드는 UsacSbrData()에서 전송되며, 이는 각 단일 채널 요소 또는 채널 쌍 요소의 정수 부분이다. UsacSbrData() 는 UsacCoreCoderData() 를 즉시 따른다. LFE 채널들에 대한 SBR 페이로드는 없다.
numSlots Mps212Data 프레임에서의 시간 슬롯들의 숫자
도 1은 입력(10)에서 제공되는 인코딩된 오디오 신호를 디코딩하기 위한 오디오 디코더를 도시한다. 입력 라인(10) 상에서, 예를 들어, 데이터 스트림, 더욱 더 예시적으로, 연속 데이터 스트림인 인코딩된 오디오 신호가 제공된다. 인코딩된 오디오 신호는 데이터 스트림의 페이로드 섹션에서 제1채널 요소 및 제2채널 요소 그리고 데이터스트림의 구성 섹션에서 제1채널 요소에 대한 제1디코더 구성 데이터 및 제2채널 요소에 대한 제2디코더 구성 데이터를 포함한다. 제1채널 요소도 제2채널요소와 일반적으로 다르게 되기 때문에, 일반적으로 제1디코더 구성 데이터는 제2디코더 구성 데이터와 다르다.
데이터 스트림 또는 인코딩된 오디오 신호는 연결(커넥션, connection) 라인(13)을 통해 구성 제어기(controller, 14)에 동일하게 포워딩되고 각 채널 요소에 대한 구성 데이터를 읽기 위해 데이터 스트림 리더(12)로 입력된다. 게다가, 데이터 스트림 리더는 페이로드 섹션에서 각 채널 요소에 대한 페이로드 데이터를 읽기 위해 배치되며 제1채널 요소 및 제2채널 요소를 포함하는 이 페이로드 데이터는 연결 라인(15)를 통해 구성가능 디코더(configurable decoder, 16)에 제공된다. 구성가능 디코더(configurable decoder, 16)는 출력 라인들(18a, 18b)에서 지정된 개별 채널 요소들에 대한 데이터를 출력하기 위해 복수의 채널 요소들을 디코딩하기 위해 배치된다. 특히, 구성가능 디코더(16)은 제1채널 요소를 디코딩할 때 제1디코더 구성 데이터에 따라 제2채널 요소를 디코딩 할 때 제2구성 데이터에 따라 구성된다. 이는 연결 라인들(17a, 17b)에서 표시되며, 여기서 연결 라인(17a)은 구성 제어기(14)로부터 구성가능 디코더로 상기 제1디코더 구성 데이터를 전송하며 연결 라인(17b)는 상기 구성 제어기에서 상기 구성가능 디코더로 상기 제2디코더 구성 데이터를 전송한다. 구성 제어기는 대응하는 라인(17a, 17b) 상에서 또는 대응하는 디코더 구성 데이터에서 시그널링되는 디코더 구성에 따라 작동하는 구성가능 디코더를 만들기 위해 어떠한 방식으로든 실행될 것이다. 이런 이유로, 구성 제어기(14)는 데이터 스트림으로부터 구성 데이터를 실제로 얻는 데이터 스트림 리더(12)와 실제로 읽은 구성 데이터에 의해 구성되는 구성가능 디코더(16) 사이의 인터페이스(interface)에 따라 실행된다.
도 2는 입력(20)에서 제공되는 멀티-채널 입력 오디오 신호를 인코딩하기 위한 대응하는 오디오 인코더를 도시한다. 입력(20)은 세개의 상이한 라인들(20a, 20b, 20c)를 포함하도록 도시되고, 여기서 라인(20a)는, 예를 들어, 중앙 채널 오디오 신호를 전송하고, 라인(20b)는 좌측 채널 오디오 신호를 전송하고 라인(20c)는 우측 채널 오디오 신호를 전송한다. 세 개 채널 신호들 모두는 구성 프로세서(22) 및 구성가능 인코더(24)로 입력된다. 구성 프로세서는 예를 들어 상기 제1채널 요소는 단일 채널 요소가 되도록 오직 중앙 채널만을 포함하는 제1채널 요소에 대해, 예를 들어 좌측 채널 및 우측 채널을 전송하는 채널 쌍 요소인 제2채널 요소에 대해, 라인(21a)상에 제1구성 데이터 및 라인(21b)상에 제2구성 데이터를 발생시키기 위해 적응된다. 구성가능 인코더(24)는 제1구성 데이터(21a) 및 제2구성 데이터(21b)를 이용하여 제1채널 요소(23a) 및 제2채널 요소(23b)를 얻기 위해 멀티-채널 오디오 신호(20)을 인코딩하도록 적응된다. 오디오 인코더는, 입력 라인들(25a 및 25b)에서, 제2구성 데이터 및 제2구성 데이터를 수신하는 그리고 추가적으로, 제1채널 요소(23a) 및 제2채널 요소(23b)를 수신하는, 데이터 스트림 발생기(data stream generator, 26)를 추가적으로 포함한다. 데이터 스트림 발생기(26)는 인코딩된 오디오 신호를 표현하는 데이터 스트림(27)을 발생시키기 위해 적응되며, 데이터 스트림은 제1 및 제2구성 데이터를 갖는 구성 섹션을 가지며 페이로드 섹션은 제1채널 요소 및 제2채널 요소를 포함한다.
이 구문에서, 제1구성 데이터 및 제2구성 데이터는 제1디코더 구성 데이터 또는 제2디코더 구성 데이터와 동일할 수 있고 또는 다를 수 있다는 것이 간단히 설명된다. 후자의 경우, 구성 데이터가 인코더-지향 데이터(encoder-directed data)일 때, 구성 제어기(14)는 데이터 스트림에서 구성 데이터를, 예를 들어, 고유 기능들 또는 색인 표(tables)들 정도에 적용되는 것에 의해 대응하는 디코더-지향 데이터(decoder-directed data)로, 변형하도록 구성된다. 그러나, 구성가능 인코더(24) 또는 구성 프로세서(22)는, 예를 들어, 고유 기능들 또는 색인 표들 또는 다른 사전 지식을 적용하는 것에 의해 계산된 인코더 구성 데이터로부터 다시 디코더 구성 데이터를 결정하거나 계산하기 위한 또는 계산된 디코더 구성 데이터로부터 인코더 구성 데이터를 유도하기 위한 기능을 갖도록, 데이터 스트림에 대해 쓰여진(written) 구성 데이터는 이미 디코더 구성 데이터인 것이 바람직하다.
도 5a는 도 2의 데이터 스트림 발생기에 의해 출력되는 또는 도 1의 데이터 스트림 리더(12)로 입력되는 인코딩된 오디오 신호의 일반적인 설명을 도시한다. 상기 데이터 스트림은 구성 섹션(50) 및 페이로드 섹션(52)를 포함한다. 도 5b는 도 5a에서 구성 섹션(50)의 더 자세한 실행을 도시한다. 일반적으로 다른 것들 다음에 하나의 비트(one bit)를 전송하는 연속 데이터 스트림인 도 5b에서 도시된 상기 데이터 스트림은, 그것의 제1부분(first portion, 50a)에서, MPEG-4 파일 포맷처럼 전송 구조의 더 높은 레이어들(고차 레이어들)에 관련된 일반적 구성 데이터를 포함한다. 대안적으로 또는 추가적으로, 거기에 있을 수도 있고 없을 수도 있는, 구성 데이터(50a)는 50b 에서 도시된 UsacChannelConfig 에서 포함된 추가적 일반 구성 데이터를 포함한다.
일반적으로, 구성 데이터(50a)는 또한 도 6a에서 도시된 UsacConfig 으로부터 데이터를 포함할 수 있고, 아이템(50b)는 도 6b의 UsacChannelConfig 에서 도시되고 실행된 요소들을 포함한다. 특히, 모든 채널 요소들에 대한 동일 구성은, 예를 들어, 도 3a, 3b 및 도 4a, 4b의 컨텍스트에서 도시되고 설명되는 출력 채널 표시를 포함할 수 있다.
그 후, 비트스트림의 구성 섹션(50)은, 이 예에서, 제1구성 데이터(50c), 제2구성 데이터(50d) 및 제3구성 데이터(50e)에 의해 형성되는 UsacDecoderConfig 요소가 뒤따른다. 제1구성 데이터(50c)는 제1채널 요소에 대한 것이며, 제2구성 데이터(50d)는 제2채널 요소에 대한 것이며, 제3구성 데이터(50e)는 제3채널 요소에 대한 것이다.
특히, 도 5b에서 요약된것처럼, 채널 요소에 대한 각 구성 데이터는, 도 6c에서 이용된, 그것의 구문에 관련된, 식별기 요소 타입 idx를 포함한다. 그 후, 두개의 비트를 갖는 요소 타입 지수 idx는 도 6c 에서 발견되는 채널 요소 구성 데이터를 설명하는 비트들이 뒤따르며, 단일 채널 요소에 대해 도 6d에서, 채널 쌍 요소에 대해 도 6e에서, LFE 요소에 대해 도 6f에서, 일반적으로 USAC 비트스트림에 포함될 수 있는 모든 채널 요소들인 확장 요소에 대해 도 6k에서, 더 설명된다.
도 5c는 도 5a에서 도시된 비트스트림의 페이로드 섹션(52)에 포함된 USAC 프레임을 도시한다. 도 5b에서 구성 tpruts이 도 5a의 구성 섹션(50)을 형성할 때, 즉, 페이로드 섹션이 세개의 채널 요소들을 포함할 때, 페이로드 섹션(52)은 도 5c에서 간략히 설명된것처럼 실행될 것이고, 즉 제1채널 요소에 대한 페이로드 데이터(52a)는 제3채널 요소에 대한 페이로드 데이터(52c)가 뒤따르는 52b 에 의해 표시되는 제2태널 요소에 대한 페이로드 데이터가 뒤따른다. 이런 이유로, 본 발명에 따라, 구성 데이터가 페이로드 섹션에서 채널 요소들에 관한 페이로드 데이터에 따라 채널 요소들에 대해 동일한 순서인 방식으로 구성 섹션 및 페이로드 섹션이 조직된다(organized). 이런 이유로, UsacDecoderConfig 요소에서 상기 순서가 제1채널 요소에 대해 구성 데이터, 제2채널 요소에 대한 구성 데이터, 제3채널 요소에 대한 구성 데이터일 때, 페이로드 섹션에서의 순서가 동일하며, 즉 제1채널 요소에 대한 페이로드 데이터가 존재하며, 연속 데이터 또는 비트스트림에서 그 후 제2채널 요소에 대한 페이로드 데이터가 따르고 그 후 제3채널 요소에 대한 페이로드 데이터가 따른다.
구성 섹션 및 페이로드 섹션에서 이 병렬 구조는 구성 데이터가 채널 요소에 속하는 것에 관련하여 극히 낮은 오버헤드 시그널링을 갖는 쉬운 구조를 허용한다는 사실 때문에 이점이 있다. 선행기술에서, 채널에 대한 개별 구성 데이터가 존재하지 않았기 때문에 어떠한 순서(ordering)든 요구되지 않았다. 그러나, 본 발명에 따라 개별 채널 요소들에 대한 개별 구성 데이터는 각 채널 요소에 대한 최적 구성 데이터가 최적으로 선택될 수 있다는 것을 확실히 하기 위해 도입된다.
일반적으로, 20 내지 40 밀리세컨드(milliseconds)정도의 시간 동안 데이터를 포함한다. 더 긴 데이터 스트림이 고려될 때, 도 5d에서 도시된 것처럼, 62a, 62b, 62c,...62e 프레임들 또는 페이로드 섹션들이 따르는 구성 섹션 (60a)가 있고, 구성 섹션(62d)는, 다시, 비트스트림에 포함된다. 구성 섹션에서 구성 데이터의 순서는, 도 5b 및 5c에 관해 논의된대로, 62a 내지 62e 프레임들 각각에서 채널 요소 페이로드 데이터의 순서와 동일하다. 그래서, 개별 채널 요소들에 대한 페이로드 데이터의 순서도 62a 에서 62e 까지의 각 프레임에서 정확히 동일한 것이다.
일반적으로, 인코딩된 신호가 하드 디스크 상에서 저장된 단일 파일(single file)일 때, 예를 들어, 단일 구성 섹션(50)은 10분 또는 20분 정도쯤 되는 트랙처럼 전체 오디오 트랙의 초기에서(beginning) 충분하다. 그 후, 단일 구성 섹션은 개별 프레임들의 높은 숫자가 뒤따르며 상기 구성은 각 프레임에 대해 유효하고 채널 요소 데이터(구성 또는 페이로드)의 순서는 구성 섹션에서 그리고 각 프레임에서도 또한 동일한 것이다.
그러나, 인코딩된 오디오 신호가 데이터의 스트림일 때, 엑세스 포인트들을 제공하기 위해 개별 프레임들 사이에 구성 섹션들을 도입하는 것이 필요하고, 이는 디코더가 실제 데이터 스트림을 수신하기 위해 아직 스위치되지 않았기 때문에 심지어 더 앞선(earlier) 구성 섹션이 이미 전송되었고 디코더에 의해 수신되지 않았을 때 디코더가 디코딩을 시작할 수 있도록 하기 위함이다. 상이한 구성 섹션들 사이의 프레임들의 숫자 n은, 그러나, 하나가(one) 각 초마다 엑세스 포인트를 달성하려 할 때 임의적으로 선택가능하고, 두 구성 섹션들 사이의 프레임들의 숫자는 25 및 50 사이가 될 것이다.
이후, 도 7은 5.1 멀티-채널 신호를 디코딩 및 인코딩하기 위한 직접적인 예를 도시한다.
바람직하게, 네개의 채널 요소들이 이용되고, 여기서 제1채널 요소는 중앙 채널을 포함하는 단일 채널이고, 제2채널 요소는 좌측 채널 및 우측 채널을 포함하는 채널 쌍 요소 CPE1이고 제3채널 요소는 좌측 써라운드 채널 및 우측 써라운드 채널을 포함하는 제2채널 쌍 요소 CPE2 이다. 최종적으로, 네번째 채널 요소는 LFE 채널 요소이다. 실시예에서, 예를 들어, 단일 채널 요소에 대한 구성 데이터는 노이즈 필링 툴(noise filling tool)이 on이고 반면 예를 들어, 써라운드 채널들을 포함하는 제2채널 쌍 요소에 대해, 노이즈 필링 툴이 off 이고 낮은 품질인 파라미터(매개변수) 스테레오 코딩 절차가 적용되고, 그러나 채널 쌍 요소가 써라운드 채널들을 갖는다는 사실 때문에 저 비트 스테레오 코딩 절차는 저 비트레이트를 도출하고 품질 손실은 문제가 되지 않을 수 있다.
다른 편으로, 좌측 및 우측 채널들은 정보의 충분한 양을 포함하고, 그래서 고품질 스테레오 코딩 절차는 MPS212 구성으로 시그널링된다. M/S 스테레오 코딩은 고품질을 제공한다는 점에서 이점이 있으나 꽤 높은 비트레이트에서 문제가 된다. 그래서, M/S 스테레오 코딩은 CPE1 에 대해 바람직하지만 CPE2 에 대해서는 바람직하지 않다. 게다가, 실행에 의존하여, 노이즈 필링 특성은 on 또는 off 스위칭될 수 있고 높은 엠퍼시스(강조, emphasis)가 노이즈 필링이 on 인 곳에서도 중앙 채널뿐만 아니라 좌측 및 우측 채널들의 좋은 고품질 표현을 갖도록 만들어 질 수 있다는 점 때문에 바람직하게 on으로 스위치된다.
그러나, 채널 요소 C의 코어 대역폭은, 예를 들어, 꽤 낮고 중앙 채널에서 0으로 양자화되는 연속 라인들의 숫자 또한 낮고, 그 때 오직 작은 품질 증가 또는 품질 증가가 없는 관점에서 노이즈 필링 툴에 대한 부가 정보를 전송하기 위해 필요한 비트들이 절약될 수 있고 노이즈 필링이 추가 품질 이득(게인, gains)을 제공하지 않는다는 사실 때문에 중앙 채널 단일 채널 요소에 대한 노이즈 필링을 off 스위칭하는 것 또한 유용할 수 있다.
일반적으로, 채널 요소에 대해 구성 섹션에서 시그널링 된 툴들은, 예를 들어, 도 6d, 6e, 6f, 6g, 6h, 6i, 6j에서 언급된 도구들이고 추가적으로 6k, 6l 및 6m 에서 확장 요소 구성에 대한 요소들을 포함할 수 있다. 도 6e에서 요약된 것처럼, MPS21 구성은 각 채널 요소에 대해 다를 수 있다.
MPEG 써라운드는 멀티-채널 신호의 비트-레이트 효율적 표현을 가능하게 하는 공간적 지각에 대한 사람의 청각 신호들의 간편한 파라미터(매개변수) 표현을 이용한다. CLD 및 ICC 파라미터들에 더하여, IPD 파라미터들이 전송될 수 있다. OPD 파라미터들은 위상 정보의 효율적인 표현에 대해 주어진 CLD 및 IPD 파라미터들과 함께 측정된다. IPD 및 OPD 파라미터들은 더 향상된 스테레오 이미지와 다른 위상을 합성하도록 이용된다.
파라미터 모드에 더하여, 잔류 코딩은 제한된 또는 최대 대역폭을 갖는 잔류물과 함께 이용될 수 있다. 이 절차에서, 두개의 출력 신호들은 CLS, ICC 및 IPD 파라미터들을 이용하여 잔류 신호 및 모노 입력 신호를 믹싱하는 것에 의해 발생된다. 이에 더하여, 도 6j에서 언급된 모든 파라미터들은 각 채널 요소에 대하여 개별적으로 선택될 수 있다. 개별 파라미터들은, 예를 들어, 레퍼런스에 의해 여기에 포함된 2010, 9월 24일자 ISO/IEC CD 23003-3 에서 자세히 설명된다.
추가적으로, 도 6f 및 6g 에서 요약된 것처럼, 시간 워핑(warping) 특징 및 노이즈 필링 특징 같은 코어 특징들은 각 채널 요소에 대해 개별적으로 on 또는 off 로 스위칭될 수 있다. 위 레퍼런스 문서에서 "시간 워프된 필터 뱅크 및 블록 스위칭" 용어 하에 설명된 시간 워핑 툴은 블록 스위칭 및 기준 필터 뱅크를 교체한다. IMDCT에 더하여, 상기 툴(tool)은 윈도우 형태들의 대응하는 조정(adaption) 및 일반 선형 공간 시간 그리드(grid)에 대한 임의적 공간 그리드로부터 시간-영역에서 시간-영역으로의 맵핑을 포함한다.
추가적으로, 도 7에서 요약된 것처럼, 노이즈 필링 툴은 각 채널 요소에 대해 on 또는 off 로 개별적으로 스위칭 될 수 있다. 낮은 비트레이트 코딩에서, 노이즈 필링은 두개의 목적들을 위해 이용될 수 있다. 많은 스펙트럼 라인들이 0으로 양자화되었을 수 있기 때문에, 낮은 비트레이트 오디오 코딩에서 스펙트럼 값들의 코스 양자화(course quantization)는 역 양자화(inverse quantization) 후에 매우 희박한 스펙트럼들을 도출할 수 있다. 드문 수를 갖는 스펙트럼들은 날카롭고 불안정한 디코딩된 신호 소리 (새소리들)을 도출할 것이다. 디코더에서 "작은" 값들을 갖는 제로(zero) 라인들을 교체하는 것에 의해 명백히 새로운 노이즈 아티팩트들(artifacts) 없이 이러한 매우 명백한 아티팩트들을 마스크(mask)하거나 감소시킬 수 있다.
원래 스펙트럼에서 신호 부분들 같은 노이즈가 있다면, 이러한 노이즈 신호 부분들의 개념적으로 균등한 표현이 노이즈 신호 부분의 에너지 같이 오직 적은 파라미터(매개변수) 정보에 기반하여 디코더에서 재생될 수 있다. 파라미터(매개변수) 정보는 코딩된 웨이브 폼을 전송하기 위해 필요한 비트들의 숫자와 비교하여 적은 비트들로 전송될 수 있다. 특히, 전송하는데 필요한 데이터 요소들은 0으로 양자화되는 모든 스펙트럼 라인들에 대해 추가될 양자화 노이즈를 표현하는 정수인 노이즈 레벨(noise-level) 및 0으로 양자화된 대역들의 스케일 인수(scale factor)를 수정하기 위한 추가 오프셋(offset)인 노이즈-오프셋 요소이다.
도 7 및 도 6f에서 에서 요약된 것처, 이 특징은 개별적으로 각 채널 요소에 대한 on 및 off상에서 스위칭 될 수 있다.
추가적으로, 각 채널 요소에 대해 현재 개별적으로 시그널링 될 수 있는 SBR 특징들이 있다.
도 6h에서 요약된 것처럼, 이러한 SBR 요소들은 SBR에서 상이한 툴들의 스위칭 on/off를 포함한다. 각 채널 요소에 대해 개별적으로 on 또는 off 스위칭 될 제1툴(first tool)은 고조파 SBR이다. 고조파 SBR이 스위칭 on 될 때, 고조파 SBR 피칭(pitching)이 수행되고 반면, 고조파 SBR 이 스위칭 off 될 때, MPEG-4(고 효율)로부터 알려진 연속 라인들을 갖는 피칭이 이용된다.
게다가, PVC 또는 "예측 벡터 코팅(Predictive vector coding)" 디코딩 프로세스(처리)가 적용될 수 있다. 예측 벡터 코딩은 eSBR 툴의 개별 품질을 향상시키기 위해, 특히 낮은 비트레이트에서 스피치(음성, speech) 컨텐츠에 대해서이다. (PVC 는 eSBR 툴에 더해진다.) 일반적으로, 음성 신호에 대해, 저주파수 대역들 및 고주파수 대역들의 스펙트럼 포락선들 사이에 상대적으로 높은 연관이 있다. PVC 설계에서 이는 저주파수 대역들에서 스펙트럼 포락선들로부터 고주파수 대역들에서 스펙트럼 포락선들의 예측에 의해 이용되고, 여기서 예측을 위한 계수 매트릭스들은 벡터 양자화의 수단에 의해 코딩된다. HF 포락선 조정기는 PVC 디코더에 의해 발생되는 포락선을 처리하도록 수정된다.
PVC 툴은 그래서, 예를 들어, 중앙 채널에서 음성이 있는 경우 단일 채널 요소에 대해 특히 유용할 수 있고, 반면 예를 들어 CPE2 의 써라운드 채널들 또는 CPE1의 좌측 및 우측 채널들에 대해 PCV 툴이 유용하지 않다.
게다가, 상호 시간 포락선 성형 특징(inter time envelope shaping feature, inter-Tes)은 각 채널 요소에 대해 개별적으로 on 또는 off 스위칭 될 수 있다. 상호-부대역-샘플 시간적 포락선 성형(inter-Tes)은 포락 조정기 이후 QMF 부대역 샘플들을 처리한다. 이 모듈은 고주파수 대역폭의 시간적 포락선을 포락 조정기의 것보다 더 좋은 시간적 입도로 성형한다. SBR 포락선에서 각 QMF 부대역 샘플에 대해 이득 인수(gain factor)를 적용하는 것에 의해, inter-Tes는 QMF 부대역 샘플들 사이에서 시간적 포락선을 성형한다(shape). Inter-Tes 는 세개의 모듈들, 즉 더 낮은(lower) 주파수 인터-부대역(inter-subband) 샘플 시간 포락선 계산기, 인터-부대역-샘플(inter-subband-sample) 시간 포락선 조정기 및 인터-부대역-샘플 시간 포락선 성형기(shaper), 로 구성된다. 이 툴들이 추가적인 비트들을 요구한다는 사실 때문에, 이 추가 비트 소비가 품질 이득의 관점에서 정당화되지 않는 그리고 이 추가 비트 소비가 품질 이득의 관점에서 정당화되는 채널 요소들이 있을 것이다. 그래서, 본 발명에 따라, 이 툴의 채널-요소 방향 활성화/비활성화(activation/deactivation )가 이용된다.
게다가, 도 6i는 SBR 디폴트 헤더들의 구문을 도시하며 도 6i에서 언급된 SBR 디폴트 헤더에서 모든 SBR 파라미터들은 각 채널 요소에 대해 다르게 선택될 수 있다. 이는, 예를 들어, 크로스-오버 주파수, 즉 신호의 복원이 모드에서 파라미터 모드로 변하는 곳에서의 주파수, 를 실제로 설정하는 저지 주파수(스탑 주파수, stop frequency) 또는 시작 주파수(start frequency)에 관련된다. 주파수 해상도 및 노이즈 대역 해상도 등등 같은 다른 특징들 또한 각 개별 채널 요소에 대해 선택적으로도 이용가능하다.
이런 이유로, 도 7에서 요약된 것처럼, 스테레오 특징들에 대해, SBR 특징들에 대해 그리고 코어 코더 특징들에 대해, 구성 데이터를 개별적으로 설정하는 것이 바람직하다. 요소들의 개별 설정은 도 6i에서 도시된 것처럼 SBR 디폴트 헤더에서 SBR 파라미터들에만 참조하는 것이 아니라, 도 6h에서 요약된 SbrConfig 에서의 모든 파라미터들에도 적용한다.
이후, 레퍼런스는 도 1의 디코더의 실행을 도시하기 위해 도 8로 제공된다.
특히, 데이터 스트림 리더(12) 및 구성 제어기(14)의 기능성들은 도 1의 컨텍스트에서 논의된 것과 유사하다. 그러나, 구성 디코더(16)은, 예를 들어 개별 디코더 인스턴스들에 대해 적용되지 않고, 여기서 각 디코더 인스턴스는 데이터 스트림 리더(12)로부터 대응하는 채널 요소들을 수신하는 데이터 D 에 대한 입력 및 구성 제어기(14)에 의해 제공되는 구성 데이터 C 에 대한 입력을 갖는다.
특히, 도 8의 기능성은, 각 개별 채널 요소에 대해, 개별 디코더 인스턴트가 제공된다. 이런 이유로, 제1디코더 인스턴스(instance)는, 예를 들어, 중앙 채널에 대해 단일 채널 요소처럼 제1구성 데이터에 의해 구성된다.
게다가, 제2디코더 인스턴스는 채널 쌍 요소의 좌측 및 우측 채널들에 대한 제2디코더 구성 데이터에 따라 구성된다. 게다가, 제3디코더 인스턴스(16c)는 좌측 써라운드 채널 및 우측 써라운드 채널을 포함하는 추가 채널 쌍 요소에 대해 구성된다. 최종적으로, 네번째 디코더 인스턴스는 LFE 채널에 대해 구성된다. 이런 이유로, 제1디코더 인스턴스는, 출력으로, 단일 채널 C 를 제공한다. 제2 및 제3디코더 인스턴스들 (16b, 16c)는, 그러나, 두개의 출력 채널들, 즉 한편에서 좌측 및 우측이고 다른 편에서 좌측 써라운드 및 우측 써라운드, 를 각각 제공한다. 최종적으로, 네번째 디코더 인스턴스(16d)는, 출력으로, LFE 채널을 제공한다. 멀티-채널 신호의 모든 이러한 여섯 채널들은 디코더 인스턴스들에 의한 출력 인터페이스(19)에 포워딩되고, 예를 들어, 저장소에, 또는 예를 들어, 5.1 확성기 설정에서 재생을 위해 최종적으로 보내진다. 디코더 인스턴스들의 상이한 숫자들 및 상이한 디코더 인스턴스들은 확성기 설정이 상이한 확성기 설정일 때 필요하다는 것이 명백하다.
도 9는 본 발명의 실시예에 따른 인코딩된 오디오 신호의 디코딩을 수행하는 방법의 바람직한 실시를 도시한다.
단계(90)에서, 데이터 스트림 리더(12)는 도 5a의 구성 섹션(50)을 읽기 시작한다. 그 후, 대응하는 구성 데이터 블록(50c)에서 채널 요소 식별에 기반하여, 채널 요소가 단계(29)에서 표시되는 것에 따라 식별된다. 단계(94)에서 이 식별된 채널 요소에 대한 구성 데이터는 디코더를 실제로 구성하기 위해 또는 채널 요소가 나중에 처리될 때 디코더를 구성하려고 이후에 사용되도록 저장하기 위해 읽혀지고 이용된다.
단계(96)에서, 다음 채널 요소는 도 5b의 부분(50d)에서 제2구성 데이터의 요소 타입 식별기를 이용하여 식별된다. 이는 도 9의 단계에서 표시된다. 그 후, 단계(98)에서, 이 채널 요소에 대한 페이로드가 디코딩될 때 시간에 대한 구성 데이터를 대안적으로 저장하기 위해 실제적으로 디코더 또는 디코더 인스턴스를 구성하거나 읽혀지도록 이용되고 구성 데이터가 읽혀진다.
그 후, 단계(100)에서 전체 구성 데이터에 대해 루프되는데, 즉 채널 요소의 식별 및 채널 요소에 대한 구성 데이터의 읽음(열람, reading)이 모든 구성 데이터가 읽혀질 때까지 계속된다.
그 후, 단계들(102, 104, 106)에서 각 채널 요소들에 대한 페이로드 데이터가 읽혀지고 최종적으로 단계(108)에서 D에 의해 페이로드 데이터가 표시되는 곳에서, 구성 데이터 C 를 이용하여 디코딩된다. 단계(108)의 결과는, 예를 들어, 블록들 16a 내지 16d에 의해, 데이터 출력이고 이는, 예를 들어, 대응하는 확성기들에 최종적으로 보내지도록 디지털/아날로그 변환되거나 더 처리되고, 증폭되고 동기화되거나 또는 확성기들로 직접 보내질 수 있다.
비록 몇몇 관점들은 장치들의 문맥에서 설명되지만, 이러한 관점들은 또한 대응하는 방법의 묘사도 나타낸다는 것이 명백하며, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 대응한다. 유사하게, 방법 단계의 문맥에서 설명된 관점들은 대응하는 장치의 대응하는 블록 또는 아이템 또는 특징의 설명 또한 나타낸다.
특정한 실행의 요구들에 의존하여, 이 발명의 실시예들은 하드웨어 또는 소프트웨어에서 실행될 수 있다. 실행들은 전자적으로 읽을 수 있는 컨트롤 신호들을 그곳에 저장하고 있는 디지털 저장매체, 예를 들어 플로피 디스크, DVD, CD, ROM, PROM, EPROM, EEPROM 또는 플래쉬 메모리,를 이용하여 수행될 수 있고 그것은, 각 방법이 수행되는, 프로그래밍 가능한 컴퓨터 시스템과 연동한다.(또는 연동 가능하다)
본 발명에 따른 몇몇 실시예들은 전자적 판독 가능한 컨트롤 신호들을 갖는 데이터 캐리어를 포함하며, 그것은 여기서 설명된 방법 중 하나가 수행되는 프로그래밍 가능한 컴퓨터 시스템과 연동 가능하다.
일반적으로 본 발명의 실시예들은 프로그램 코드로 컴퓨터 프로그램 결과물에서 실행될 수 있으며, 상기 프로그램 코드는 컴퓨터 프로그램 결과물이 컴퓨터에서 수행될 때 상기 방법 중 하나를 수행하도록 작동되는 것이다. 프로그램 코드는 예시적으로 기계 판독가능 캐리어에 저장될 수도 있다.
다른 실시예들은 여기에 설명되고, 기계 판독가능 캐리어에 저장된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
다른 말로, 발명의 방법의 실시예는, 컴퓨터 프로그램이 컴퓨터에서 운영될 때 여기서 설명된 방법 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
발명의 방법의 또다른 실시예는, 여기서 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 그 자체에 포함하는 데이터 캐리어이다.(또는 디지털 저장 매체, 또는 컴퓨터 판독가능 매체)
발명의 방법의 또다른 실시예는, 여기서 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 신호들의 순서 또는 데이타 스트림이다. 데이타 스트림 또는 신호들의 순서는, 예를 들어 인터넷같은 데이타 통신 연결을 통해 전송되기 위해 예시적으로 구성될 수 있다.
또다른 실시예는 여기서 설명된 방법 중 하나를 수행하기 위해 구성되거나 적응되기 위하여 프로세싱 수단, 예를 들어 컴퓨터 또는 프로그래밍 가능한 논리 장치를 포함한다.
또다른 실시예는 여기서 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램이 그 자체에 설치된 컴퓨터를 포함한다.
몇몇 실시예에서, 프로그래밍 가능한 논리 장치(예를 들어 필드 프로그래밍 가능한 게이트 어레이)는 여기서 설명된 방법 중 모든 기능 또는 몇몇을 수행하도록 사용될 수 있다. 몇몇 실시예에서, 필드 프로그래밍 가능한 게이트 어레이는 여기서 설명된 방법 중 하나를 수행하기 위해 마이크로 프로세서와 연동될 수 있다. 일반적으로, 상기 방법들은 바람직하게는 어떠한 하드웨어 장치에 의해서도 수행된다.
상기 설명된 실시예들은 단지 본 발명의 원리를 위해 예시적일 뿐이다. 본 상기 배열의 변형, 변화, 그리고 여기서 설명된 자세한 내용들을 기술분야의 다른 숙련자에게 명백하다고 이해되어야 한다. 그것의 의도는, 따라서, 여기의 실시예의 설명 또는 묘사의 방법에 의해 표현된 특정 세부사항들에 의해 제한되는 것이 아닌 오직 목전의 특허 청구항의 범위에 의해서만 제한된다는 것이다.

Claims (18)

  1. 인코딩된 오디오 신호(10)를 디코딩하기 위한 오디오 디코더에 있어서, 인코딩된 오디오 신호(10)는 데이터 스트림의 페이로드 섹션(52)에서 제1채널 요소(52a) 및 제2채널 요소(52b) 그리고 상기 데이터 스트림의 구성 섹션(50)에서 상기 제1채널 요소(52a)에 대한 제1디코더 구성 데이터(50c) 및 제2채널 요소(52b)에 대한 제2디코더 구성 데이터(50d)를 포함하며,
    구성 섹션에서 각 채널 요소에 대한 구성 데이터를 읽기 위한 그리고 페이로드 섹션에서 각 채널 요소에 대한 상기 페이로드 데이터를 읽기 위한 데이터 스트림 리더(12);
    복수의 채널 요소들을 디코딩하기 위한 구성가능(configurable) 디코더(16); 및
    구성가능 디코더(16)가 상기 제1채널 요소를 디코딩 할 때 상기 제1디코더 구성 데이터에 따라 상기 제2채널 요소를 디코딩할 때 상기 제2디코더 구성 데이터에 따라 구성되도록 상기 구성가능 디코더(16)을 구성하기 위한 구성 제어기(14);를 포함하는,
    인코딩된 오디오 신호(10)를 디코딩하기 위한 오디오 디코더.
  2. 제1항에 따른 오디오 디코더에 있어서,
    상기 제1채널 요소는 제1출력 채널에 대한 페이로드 데이터를 포함하는 단일 채널 요소이며,
    상기 제2채널 요소는 상기 제3출력 채널 및 제2출력 채널에 대한 페이로드 데이터를 포함하는 채널 쌍(pair) 요소이며,
    상기 구성가능 디코더(16)는, 상기 제1채널 요소를 디코딩할 때 단일 출력 채널을 발생시키도록, 상기 제2채널 요소를 디코딩할 때 두 개의 출력 채널들을 발생시키기 위해 배치되며,
    상기 오디오 디코더는 세개의 상이한 오디오 출력 채널들을 통한 동시 출력을 위해 상기 제1출력 채널, 상기 제2출력 채널 및 상기 제3출력 채널을 출력(19)하도록 구성되는 것을 특징으로 하는, 오디오 디코더.
  3. 제1항 또는 제2항의 오디오 디코더에 있어서,
    상기 제1채널은 중앙 채널이고 상기 제2채널 및 상기 제3채널은 좌측 채널 및 우측 채널 또는 좌측 써라운드 채널 및 우측 써라운드 채널인 것을 특징으로 하는, 오디오 디코더.
  4. 제1항에 따른 오디오 디코더에 있어서,
    상기 제1채널 요소는 제1 및 제2출력 채널에 대한 데이터를 포함하는 제1채널 쌍 요소이며 상기 제2채널 요소는 제3출력 채널 및 제4출력 채널에 대한 페이로드 데이터를 포함하는 제2채널 쌍 요소이며,
    상기 구성가능 디코더(16)는 상기 제1채널 요소를 디코딩 할 때 제1 및 제2출력 채널을 발생시키도록 그리고 상기 제2채널 요소를 디코딩 할 때 제3출력 채널 및 제4출력 채널을 발생시키도록 구성되며,
    상기 오디오 디코더는 상이한 오디오 출력 채널들에 대한 동시 출력 선(wire)을 위해 상기 제1출력 채널, 상기 제2출력 채널, 상기 제3출력 채널 및 상기 제4출력 채널을 출력(19)하도록 구성되는 것을 특징으로 하는 오디오 디코더.
  5. 제4항에 따른 오디오 디코더에 있어서,
    상기 제1채널은 좌측 채널이고, 상기 제2채널은 우측 채널이며, 상기 제3채널은 좌측 써라운드 채널이고 상기 제4채널은 우측 써라운드 채널인 것을 특징으로 하는, 오디오 디코더.
  6. 상기 선행 청구항들 중 하나에 따른 오디오 디코더에 있어서,
    상기 인코딩된 오디오 신호는 추가적으로, 데이터 스트림의 구성 섹션에서, 상기 제1채널 요소 및 상기 제2채널 요소에 대한 정보를 갖는 일반 구성 섹션(50a, 50b)를 포함하며, 여기서 상기 구성 제어기(14)는 상기 일반 구성 섹션(50a, 50b)으로부터의 구성 정보를 갖는 상기 제1 및 제2채널 요소에 대한 구성가능한 디코더(16)를 구성하도록 배치되는 것을 특징으로 하는, 오디오 디코더.
  7. 상기 선행 청구항들 중 어느 한 항에 따른 오디오 디코더에 있어서,
    상기 제1구성 섹션(50c)은 상기 제2구성 섹션(50d)과 상이하고,
    상기 구성 제어기는 상기 제1채널 요소를 디코딩할 때 이용되는 구성과 상이한 상기 제2채널 요소를 디코딩하기 위해 구성가능 디코더(16)를 구성하도록 배치되는 것을 특징으로 하는, 오디오 디코더.
  8. 상기 선행 청구항들 중 하나에 따른 오디오 디코더에 있어서,
    상기 제1디코더 구성 데이터(50c) 및 상기 제2디코더 구성 데이터(50d)는 스테레오 디코딩 툴, 코어 디코딩 툴 또는 SBR 디코딩 툴에 대한 정보를 포함하고,
    상기 구성가능 디코더(16)는 상기 SBR 디코딩 툴, 상기 코어 디코딩 툴 및 상기 스테레오 디코딩 툴을 포함하는 것을 특징으로 하는, 오디오 디코더.
  9. 상기 선행 청구항들 중 하나에 따른 오디오 디코더에 있어서,
    상기 페이로드 섹션(52)은 프레임들의 시퀀스를 포함하고, 각 프레임은 상기 제1채널 요소 및 상기 제2채널 요소를 포함하며
    상기 제1채널 요소에 대한 상기 제1디코더 구성 데이터 및 상기 제2채널 요소에 대한 상기 제2디코더 구성 데이터는 프레임들(62a 내지 62e)의 시퀀스와 연관되며,
    상기 구성 제어기(14)는 프레임들의 시퀀스의 프레임 각각에 대해 구성가능 디코더(16)를 구성하도록 구성되어 각 프레임에서 상기 제1채널 요소는 상기 제1디코더 구성 데이터를 이용하여 디코딩되고 각 프레임에서 상기 제2채널 요소는 상기 제2디코더 구성 데이터를 이용하여 디코딩되는 것을 특징으로 하는, 오디오 디코더.
  10. 상기 선행 청구항들 중 하나에 따른 오디오 디코더에 있어서,
    상기 데이터 스트림은 연속 데이터 스트림이고 상기 구성 섹션(50)은 순서대로 복수 채널 요소들에 대한 디코더 구성 데이터를 포함하며,
    상기 페이로드 섹션(52)는 동일한 순서대로 복수 채널 요소들에 대한 페이로드 데이터를 포함하는 것을 특징으로 하는, 오디오 디코더.
  11. 상기 선행 청구항들 중 어느 한 항에 따른 오디오 디코더에 있어서,
    상기 구성 섹션(50)은 상기 제1디코더 구성 데이터가 동반되는 제1채널 요소 식별 및 상기 제2디코더 구성 데이터가 동반되는 제2채널 요소 식별을 포함하며,
    상기 데이터 스트림 리더(data stream reader, 12)는 연속적으로 상기 제1채널 요소 식별(92)을 통과하는 것 그리고 연속적으로 상기 채널 요소에 대해 상기 제1디코더 구성 데이터(94)를 읽는 것 그리고 연속적으로 상기 제2채널 요소 식별(96)을 통과하는 것 그리고 연속적으로 상기 제2디코더 구성 데이터(98)을 읽는 것에 의해 모든 요소들(92, 94, 96, 98)에 대해 루프(loop)하도록 배치되는 것을 특징으로 하는, 오디오 디코더.
  12. 상기 선행 청구항들 중 어느 한 항에 따른 오디오 디코더에 있어서,
    구성가능한 디코더(16)는 복수의 병렬 디코더 인스턴스들(16a, 16b, 16c, 16d)을 포함하고,
    상기 구성 제어기(14)는 상기 제1디코더 구성 데이터를 이용하여 상기 제1디코더 인스턴스(16a)를 구성하도록, 그리고 상기 제2디코더 구성 데이터를 이용하여 상기 제2디코더 인스턴스(16b)를 구성하도록 배치되고,
    상기 데이터 스트림 리더(12)는 상기 제1디코더 인스턴스(16a)에 상기 제1채널 요소를 위한 페이로드 데이터를 포워딩(forwarding)하기 위해 그리고 상기 제2디코더 인스턴스(16b)에 상기 제2채널 요소를 위한 페이로드 데이터를 포워딩하기 위해 배치되는 것을 특징으로 하는, 오디오 디코더.
  13. 제12항에 따른 오디오 디코더에 있어서,
    페이로드 섹션은 페이로드 프레임들(62a 내지 62e)의 시퀀스를 포함하고,
    상기 데이터 스트림 리더(12)는 각 채널 요소에 대한 데이터를 현재 처리된 프레임으로부터 이 채널 요소에 대한 구성 데이터에 의해 구성되는 대응하는 디코더 인스턴스에만 포워딩하도록 구성되는 것을 특징으로 하는 오디오 디코더.
  14. 인코딩된 오디오 신호(10)를 디코딩하는 방법에 있어서,
    상기 인코딩된 오디오 신호(10)는 데이터 스트림의 페이로드 섹션(52)에서 제1채널 요소(52a) 및 제2채널 요소(52b) 그리고 데이터 스트림의 구성 섹션(50)에서 상기 제1채널 요소(52a)에 대한 제1디코더 구성 데이터(50c) 및 상기 제2채널 요소(52b)에 대한 제2디코더 구성 데이터(50d)를 포함하며,
    상기 페이로드 섹션에서 각 채널 요소에 대한 페이로드 데이터를 읽기 위해 그리고 상기 구성 섹션에서 각 채널 요소에 대한 상기 구성 데이터를 읽는 단계;
    구성가능 디코더(16)에 의해 복수의 채널 요소들을 디코딩하는 단계; 및
    상기 제1채널 요소를 디코딩할 때 상기 제1디코더 구성 데이터에 따라 상기 제2채널 요소를 디코딩할 때 상기 제2디코더 구성 데이터에 따라 상기 구성가능 디코더(16)가 구성되도록 구성가능 디코더(16)를 구성하는 단계;를 포함하는,
    인코딩된 오디오 신호(10)를 디코딩하는 방법.
  15. 멀티-채널 오디오 신호(20)를 인코딩하기 위한 오디오 인코더에 있어서,
    제1채널 요소(23a)에 대한 제1구성 데이터(25b) 그리고 제2채널 요소(23b)에 대한 제2구성 데이터(25a)를 발생시키기 위한 구성 프로세서(22);
    상기 제1구성 데이터(25b) 및 상기 제2구성 데이터(25a)를 이용하여 상기 제1채널 요소(23a) 및 상기 제2채널 요소(23b)를 얻기 위해 상기 멀티-채널 오디오 신호(20)를 인코딩하기 위한 구성가능 인코더(24); 및
    인코딩된 오디오 신호를 표현하는 데이터 스트림(27)을 발생시키기 위한 데이터 스트림 발생기(26);를 포함하며,
    상기 데이터 스트림(27)은 상기 제1구성 데이터(50c) 및 상기 제2구성 데이터(50d)를 갖는 구성 섹션(50)을 갖고 페이로드 섹션(52)은 상기 제1채널 요소(52a) 및 상기 제2채널 요소(52b)를 포함하는, 멀티-채널 오디오 신호(20)를 인코딩하기 위한 오디오 인코더.
  16. 멀티-채널 오디오 신호(20)를 인코딩하기 위한 방법에 있어서,
    제1채널 요소(23a)에 대한 제1구성 데이터(25b) 및 제2채널 요소(23b)에 대한 제2구성 데이터(25a)를 발생시키는 단계;
    상기 제1구성 데이터(25b) 및 상기 제2구성 데이터(25a)를 이용하여 상기 제1구성 채널 요소(23a) 및 상기 제2채널 요소(23b)를 얻기 위해 구성가능 인코더(24)에 의해 상기 멀티-채널 오디오 신호(20)를 인코딩하는 단계; 및
    인코딩된 오디오 신호(27)을 표현하는 데이터 스트림(27)을 발생시키는 단계;를 포함하며,
    상기 데이터 스트림(27)은 상기 제1구성 데이터(50c) 및 상기 제2구성 데이터(50d)를 갖는 구성 섹션(50)을 갖고 페이로드 섹션(52)은 상기 제1채널 요소(52a) 및 상기 제2채널 요소(52b)를 포함하는, 멀티-채널 오디오 신호(20)를 인코딩하기 위한 방법.
  17. 컴퓨터상에서 구동할 때, 제14항 또는 제16항의 방법을 수행하기 위한 컴퓨터 프로그램.
  18. 채널 요소는 멀티채널 오디오 신호의 단일 채널 또는 두 채널들의 인코딩된 표현이며, 제1채널 요소(52a)에 대한 제1디코더 구성 데이터(50c) 및 제2채널 요소(52b)에 대한 제2디코더 구성 데이터(50d)를 갖는 구성 섹션(50); 및
    상기 제1채널 요소(52a) 및 상기 제2채널 요소(52b)에 대한 페이로드 데이터를 포함하는 페이로드 섹션(52);을 포함하는, 인코딩된 오디오 신호(27).
KR1020137027429A 2011-03-18 2012-03-19 유연한 구성 기능을 갖는 오디오 인코더 및 디코더 KR101712470B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161454121P 2011-03-18 2011-03-18
US61/454,121 2011-03-18
PCT/EP2012/054749 WO2012126866A1 (en) 2011-03-18 2012-03-19 Audio encoder and decoder having a flexible configuration functionality

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020167012032A Division KR101854300B1 (ko) 2011-03-18 2012-03-19 유연한 구성 기능을 갖는 오디오 인코더 및 디코더

Publications (2)

Publication Number Publication Date
KR20140018929A true KR20140018929A (ko) 2014-02-13
KR101712470B1 KR101712470B1 (ko) 2017-03-22

Family

ID=45992196

Family Applications (7)

Application Number Title Priority Date Filing Date
KR1020137027430A KR101748760B1 (ko) 2011-03-18 2012-03-19 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치
KR1020167011886A KR101742136B1 (ko) 2011-03-18 2012-03-19 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치
KR1020137027429A KR101712470B1 (ko) 2011-03-18 2012-03-19 유연한 구성 기능을 갖는 오디오 인코더 및 디코더
KR1020137027431A KR101767175B1 (ko) 2011-03-18 2012-03-19 오디오 코딩에서의 프레임 요소 길이 전송
KR1020167012032A KR101854300B1 (ko) 2011-03-18 2012-03-19 유연한 구성 기능을 갖는 오디오 인코더 및 디코더
KR1020167011885A KR101742135B1 (ko) 2011-03-18 2012-03-19 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치
KR1020167011887A KR101748756B1 (ko) 2011-03-18 2012-03-19 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020137027430A KR101748760B1 (ko) 2011-03-18 2012-03-19 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치
KR1020167011886A KR101742136B1 (ko) 2011-03-18 2012-03-19 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치

Family Applications After (4)

Application Number Title Priority Date Filing Date
KR1020137027431A KR101767175B1 (ko) 2011-03-18 2012-03-19 오디오 코딩에서의 프레임 요소 길이 전송
KR1020167012032A KR101854300B1 (ko) 2011-03-18 2012-03-19 유연한 구성 기능을 갖는 오디오 인코더 및 디코더
KR1020167011885A KR101742135B1 (ko) 2011-03-18 2012-03-19 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치
KR1020167011887A KR101748756B1 (ko) 2011-03-18 2012-03-19 오디오 콘텐츠를 표현하는 비트스트림의 프레임들 내의 프레임 요소 배치

Country Status (16)

Country Link
US (5) US9524722B2 (ko)
EP (3) EP2686849A1 (ko)
JP (3) JP6007196B2 (ko)
KR (7) KR101748760B1 (ko)
CN (5) CN107342091B (ko)
AR (3) AR088777A1 (ko)
AU (5) AU2012230440C1 (ko)
BR (2) BR112013023949A2 (ko)
CA (3) CA2830439C (ko)
HK (1) HK1245491A1 (ko)
MX (3) MX2013010535A (ko)
MY (2) MY167957A (ko)
RU (2) RU2589399C2 (ko)
SG (2) SG193525A1 (ko)
TW (3) TWI480860B (ko)
WO (3) WO2012126891A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180009337A (ko) * 2015-06-17 2018-01-26 삼성전자주식회사 저연산 포맷 변환을 위한 인터널 채널 처리 방법 및 장치
KR20180009752A (ko) * 2015-06-17 2018-01-29 삼성전자주식회사 저연산 포맷 변환을 위한 인터널 채널 처리 방법 및 장치
KR20180009751A (ko) * 2015-06-17 2018-01-29 삼성전자주식회사 저연산 포맷 변환을 위한 인터널 채널 처리 방법 및 장치

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4372742A2 (en) * 2010-07-08 2024-05-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Coder using forward aliasing cancellation
JP6100164B2 (ja) * 2010-10-06 2017-03-22 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ オーディオ信号を処理し、音声音響統合符号化方式(usac)のためにより高い時間粒度を供給するための装置および方法
CN103918029B (zh) * 2011-11-11 2016-01-20 杜比国际公司 使用过采样谱带复制的上采样
CN108806706B (zh) * 2013-01-15 2022-11-15 韩国电子通信研究院 处理信道信号的编码/解码装置及方法
WO2014112793A1 (ko) * 2013-01-15 2014-07-24 한국전자통신연구원 채널 신호를 처리하는 부호화/복호화 장치 및 방법
WO2014126688A1 (en) 2013-02-14 2014-08-21 Dolby Laboratories Licensing Corporation Methods for audio signal transient detection and decorrelation control
IN2015MN01952A (ko) 2013-02-14 2015-08-28 Dolby Lab Licensing Corp
TWI618050B (zh) 2013-02-14 2018-03-11 杜比實驗室特許公司 用於音訊處理系統中之訊號去相關的方法及設備
TWI618051B (zh) 2013-02-14 2018-03-11 杜比實驗室特許公司 用於利用估計之空間參數的音頻訊號增強的音頻訊號處理方法及裝置
JP6250071B2 (ja) 2013-02-21 2017-12-20 ドルビー・インターナショナル・アーベー パラメトリック・マルチチャネル・エンコードのための方法
CN108806704B (zh) 2013-04-19 2023-06-06 韩国电子通信研究院 多信道音频信号处理装置及方法
CN103336747B (zh) * 2013-07-05 2015-09-09 哈尔滨工业大学 VxWorks操作系统下CPCI总线数字量输入与开关量输出可配置驱动器及驱动方法
EP2830058A1 (en) * 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Frequency-domain audio coding supporting transform length switching
EP2830053A1 (en) 2013-07-22 2015-01-28 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multi-channel audio decoder, multi-channel audio encoder, methods and computer program using a residual-signal-based adjustment of a contribution of a decorrelated signal
US9319819B2 (en) * 2013-07-25 2016-04-19 Etri Binaural rendering method and apparatus for decoding multi channel audio
TWI671734B (zh) 2013-09-12 2019-09-11 瑞典商杜比國際公司 在包含三個音訊聲道的多聲道音訊系統中之解碼方法、編碼方法、解碼裝置及編碼裝置、包含用於執行解碼方法及編碼方法的指令之非暫態電腦可讀取的媒體之電腦程式產品、包含解碼裝置及編碼裝置的音訊系統
KR102329309B1 (ko) 2013-09-12 2021-11-19 돌비 인터네셔널 에이비 Qmf 기반 처리 데이터의 시간 정렬
EP2928216A1 (en) 2014-03-26 2015-10-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for screen related audio object remapping
US9847804B2 (en) * 2014-04-30 2017-12-19 Skyworks Solutions, Inc. Bypass path loss reduction
EP3258467B1 (en) * 2015-02-10 2019-09-18 Sony Corporation Transmission and reception of audio streams
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
WO2016142380A1 (en) 2015-03-09 2016-09-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Fragment-aligned audio coding
TWI758146B (zh) * 2015-03-13 2022-03-11 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
TWI732403B (zh) * 2015-03-13 2021-07-01 瑞典商杜比國際公司 解碼具有增強頻譜帶複製元資料在至少一填充元素中的音訊位元流
CN107787584B (zh) * 2015-06-17 2020-07-24 三星电子株式会社 处理低复杂度格式转换的内部声道的方法和装置
US10008214B2 (en) * 2015-09-11 2018-06-26 Electronics And Telecommunications Research Institute USAC audio signal encoding/decoding apparatus and method for digital radio services
CA3127805C (en) * 2016-11-08 2023-12-19 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for encoding or decoding a multichannel signal using a side gain and a residual gain
CN116631416A (zh) 2017-01-10 2023-08-22 弗劳恩霍夫应用研究促进协会 音频解码器、提供解码的音频信号的方法、和计算机程序
US10224045B2 (en) 2017-05-11 2019-03-05 Qualcomm Incorporated Stereo parameters for stereo decoding
AU2018308668A1 (en) * 2017-07-28 2020-02-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for encoding or decoding an encoded multichannel signal using a filling signal generated by a broad band filter
EP3483879A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Analysis/synthesis windowing function for modulated lapped transformation
EP3483884A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Signal filtering
EP3483880A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Temporal noise shaping
EP3483886A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Selecting pitch lag
EP3483882A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Controlling bandwidth in encoders and/or decoders
EP3483878A1 (en) 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder supporting a set of different loss concealment tools
WO2019091576A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits
WO2019091573A1 (en) 2017-11-10 2019-05-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for encoding and decoding an audio signal using downsampling or interpolation of scale parameters
EP3483883A1 (en) * 2017-11-10 2019-05-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio coding and decoding with selective postfiltering
US11032580B2 (en) 2017-12-18 2021-06-08 Dish Network L.L.C. Systems and methods for facilitating a personalized viewing experience
BR112020012654A2 (pt) * 2017-12-19 2020-12-01 Dolby International Ab métodos, aparelhos e sistemas para aprimoramentos de decodificação e codificação de fala e áudio unificados com transpositor de harmônico com base em qmf
TWI812658B (zh) 2017-12-19 2023-08-21 瑞典商都比國際公司 用於統一語音及音訊之解碼及編碼去關聯濾波器之改良之方法、裝置及系統
TWI834582B (zh) * 2018-01-26 2024-03-01 瑞典商都比國際公司 用於執行一音訊信號之高頻重建之方法、音訊處理單元及非暫時性電腦可讀媒體
US10365885B1 (en) 2018-02-21 2019-07-30 Sling Media Pvt. Ltd. Systems and methods for composition of audio content from multi-object audio
CN110505425B (zh) * 2018-05-18 2021-12-24 杭州海康威视数字技术股份有限公司 一种解码方法、解码装置、电子设备和可读存储介质
CA3091150A1 (en) * 2018-07-02 2020-01-09 Dolby Laboratories Licensing Corporation Methods and devices for encoding and/or decoding immersive audio signals
US11081116B2 (en) * 2018-07-03 2021-08-03 Qualcomm Incorporated Embedding enhanced audio transports in backward compatible audio bitstreams
CN109448741B (zh) * 2018-11-22 2021-05-11 广州广晟数码技术有限公司 一种3d音频编码、解码方法及装置
EP3761654A1 (en) * 2019-07-04 2021-01-06 THEO Technologies Media streaming
KR102594160B1 (ko) * 2019-11-29 2023-10-26 한국전자통신연구원 필터뱅크를 이용한 오디오 신호 부호화/복호화 장치 및 방법
TWI772099B (zh) * 2020-09-23 2022-07-21 瑞鼎科技股份有限公司 應用於有機發光二極體顯示器之亮度補償方法
CN112422987B (zh) * 2020-10-26 2022-02-22 眸芯科技(上海)有限公司 适用于avc的熵解码硬件并行计算方法及应用
US11659330B2 (en) * 2021-04-13 2023-05-23 Spatialx Inc. Adaptive structured rendering of audio channels

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090004778A (ko) * 2007-07-05 2009-01-12 엘지전자 주식회사 오디오 신호 처리 방법 및 장치

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146596A (ja) * 1995-11-21 1997-06-06 Japan Radio Co Ltd 音声信号合成方法
US6256487B1 (en) 1998-09-01 2001-07-03 Telefonaktiebolaget Lm Ericsson (Publ) Multiple mode transmitter using multiple speech/channel coding modes wherein the coding mode is conveyed to the receiver with the transmitted signal
US7266501B2 (en) * 2000-03-02 2007-09-04 Akiba Electronics Institute Llc Method and apparatus for accommodating primary content audio and secondary content remaining audio capability in the digital audio production process
FI120125B (fi) * 2000-08-21 2009-06-30 Nokia Corp Kuvankoodaus
KR20040036948A (ko) * 2001-09-18 2004-05-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 비디오 부호화 및 복호 방법과, 대응하는 신호
US7054807B2 (en) * 2002-11-08 2006-05-30 Motorola, Inc. Optimizing encoder for efficiently determining analysis-by-synthesis codebook-related parameters
EP1427252A1 (en) * 2002-12-02 2004-06-09 Deutsche Thomson-Brandt Gmbh Method and apparatus for processing audio signals from a bitstream
WO2004059643A1 (en) 2002-12-28 2004-07-15 Samsung Electronics Co., Ltd. Method and apparatus for mixing audio stream and information storage medium
DE10345996A1 (de) 2003-10-02 2005-04-28 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Verarbeiten von wenigstens zwei Eingangswerten
US7447317B2 (en) * 2003-10-02 2008-11-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V Compatible multi-channel coding/decoding by weighting the downmix channel
US7684521B2 (en) * 2004-02-04 2010-03-23 Broadcom Corporation Apparatus and method for hybrid decoding
US7516064B2 (en) 2004-02-19 2009-04-07 Dolby Laboratories Licensing Corporation Adaptive hybrid transform for signal analysis and synthesis
US8131134B2 (en) * 2004-04-14 2012-03-06 Microsoft Corporation Digital media universal elementary stream
CA2566368A1 (en) * 2004-05-17 2005-11-24 Nokia Corporation Audio encoding with different coding frame lengths
US7930184B2 (en) * 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
DE102004043521A1 (de) * 2004-09-08 2006-03-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen eines Multikanalsignals oder eines Parameterdatensatzes
SE0402650D0 (sv) * 2004-11-02 2004-11-02 Coding Tech Ab Improved parametric stereo compatible coding of spatial audio
DE102005014477A1 (de) * 2005-03-30 2006-10-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und zum Erzeugen einer Multikanal-Darstellung
KR101271069B1 (ko) 2005-03-30 2013-06-04 돌비 인터네셔널 에이비 다중채널 오디오 인코더 및 디코더와, 인코딩 및 디코딩 방법
JP4988716B2 (ja) * 2005-05-26 2012-08-01 エルジー エレクトロニクス インコーポレイティド オーディオ信号のデコーディング方法及び装置
EP1905002B1 (en) 2005-05-26 2013-05-22 LG Electronics Inc. Method and apparatus for decoding audio signal
JP2008542816A (ja) * 2005-05-26 2008-11-27 エルジー エレクトロニクス インコーポレイティド オーディオ信号の符号化及び復号化方法
US8050915B2 (en) * 2005-07-11 2011-11-01 Lg Electronics Inc. Apparatus and method of encoding and decoding audio signals using hierarchical block switching and linear prediction coding
RU2380767C2 (ru) 2005-09-14 2010-01-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ и устройство для декодирования аудиосигнала
EP2555187B1 (en) * 2005-10-12 2016-12-07 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding audio data and extension data
BRPI0706488A2 (pt) 2006-02-23 2011-03-29 Lg Electronics Inc método e aparelho para processar sinal de áudio
KR100917843B1 (ko) 2006-09-29 2009-09-18 한국전자통신연구원 다양한 채널로 구성된 다객체 오디오 신호의 부호화 및복호화 장치 및 방법
WO2008046530A2 (en) 2006-10-16 2008-04-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for multi -channel parameter transformation
DE102006049154B4 (de) * 2006-10-18 2009-07-09 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodierung eines Informationssignals
CN101197703B (zh) 2006-12-08 2011-05-04 华为技术有限公司 对Zigbee网络进行管理的方法及系统及设备
DE102007007830A1 (de) * 2007-02-16 2008-08-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms
DE102007018484B4 (de) * 2007-03-20 2009-06-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Senden einer Folge von Datenpaketen und Decodierer und Vorrichtung zum Decodieren einer Folge von Datenpaketen
JP5686594B2 (ja) * 2007-04-12 2015-03-18 トムソン ライセンシングThomson Licensing スケーラブル・ビデオ符号化のためのビデオ・ユーザビリティ情報(vui)用の方法及び装置
US7778839B2 (en) * 2007-04-27 2010-08-17 Sony Ericsson Mobile Communications Ab Method and apparatus for processing encoded audio data
EP2242047B1 (en) * 2008-01-09 2017-03-15 LG Electronics Inc. Method and apparatus for identifying frame type
KR101461685B1 (ko) 2008-03-31 2014-11-19 한국전자통신연구원 다객체 오디오 신호의 부가정보 비트스트림 생성 방법 및 장치
EP2301019B1 (en) * 2008-07-11 2017-10-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder and audio decoder
PL2346030T3 (pl) 2008-07-11 2015-03-31 Fraunhofer Ges Forschung Koder audio, sposób kodowania sygnału audio oraz program komputerowy
MX2011000370A (es) * 2008-07-11 2011-03-15 Fraunhofer Ges Forschung Un aparato y un metodo para decodificar una señal de audio codificada.
MX2011000382A (es) 2008-07-11 2011-02-25 Fraunhofer Ges Forschung Codificador de audio, decodificador de audio, metodos para la codificacion y decodificacion de audio; transmision de audio y programa de computacion.
MY154452A (en) 2008-07-11 2015-06-15 Fraunhofer Ges Forschung An apparatus and a method for decoding an encoded audio signal
WO2010036059A2 (en) * 2008-09-25 2010-04-01 Lg Electronics Inc. A method and an apparatus for processing a signal
EP2169665B1 (en) * 2008-09-25 2018-05-02 LG Electronics Inc. A method and an apparatus for processing a signal
KR20100035121A (ko) * 2008-09-25 2010-04-02 엘지전자 주식회사 신호 처리 방법 및 이의 장치
WO2010053287A2 (en) * 2008-11-04 2010-05-14 Lg Electronics Inc. An apparatus for processing an audio signal and method thereof
KR101315617B1 (ko) 2008-11-26 2013-10-08 광운대학교 산학협력단 모드 스위칭에 기초하여 윈도우 시퀀스를 처리하는 통합 음성/오디오 부/복호화기
CN101751925B (zh) * 2008-12-10 2011-12-21 华为技术有限公司 一种语音解码方法及装置
KR101622950B1 (ko) * 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
CA2750795C (en) 2009-01-28 2015-05-26 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder, audio decoder, encoded audio information, methods for encoding and decoding an audio signal and computer program
KR20100089772A (ko) * 2009-02-03 2010-08-12 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
KR20100090962A (ko) * 2009-02-09 2010-08-18 주식회사 코아로직 멀티채널 오디오 디코더, 그 디코더를 포함한 송수신 장치 및 멀티채널 오디오 디코딩 방법
US8780999B2 (en) * 2009-06-12 2014-07-15 Qualcomm Incorporated Assembling multiview video coding sub-BITSTREAMS in MPEG-2 systems
US8411746B2 (en) * 2009-06-12 2013-04-02 Qualcomm Incorporated Multiview video coding over MPEG-2 systems
EP2446539B1 (en) 2009-06-23 2018-04-11 Voiceage Corporation Forward time-domain aliasing cancellation with application in weighted or original signal domain
WO2011010876A2 (ko) * 2009-07-24 2011-01-27 한국전자통신연구원 Mdct 프레임과 이종의 프레임 연결을 위한 윈도우 처리 방법 및 장치, 이를 이용한 부호화/복호화 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090004778A (ko) * 2007-07-05 2009-01-12 엘지전자 주식회사 오디오 신호 처리 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180009337A (ko) * 2015-06-17 2018-01-26 삼성전자주식회사 저연산 포맷 변환을 위한 인터널 채널 처리 방법 및 장치
KR20180009752A (ko) * 2015-06-17 2018-01-29 삼성전자주식회사 저연산 포맷 변환을 위한 인터널 채널 처리 방법 및 장치
KR20180009751A (ko) * 2015-06-17 2018-01-29 삼성전자주식회사 저연산 포맷 변환을 위한 인터널 채널 처리 방법 및 장치
US11810583B2 (en) 2015-06-17 2023-11-07 Samsung Electronics Co., Ltd. Method and device for processing internal channels for low complexity format conversion

Also Published As

Publication number Publication date
JP5805796B2 (ja) 2015-11-10
HK1245491A1 (zh) 2018-08-24
CA2830439C (en) 2016-10-04
TWI480860B (zh) 2015-04-11
JP2014509754A (ja) 2014-04-21
US9524722B2 (en) 2016-12-20
US20140016787A1 (en) 2014-01-16
AU2012230415B2 (en) 2015-10-29
US9779737B2 (en) 2017-10-03
BR112013023949A2 (pt) 2017-06-27
EP2686847A1 (en) 2014-01-22
CN103620679A (zh) 2014-03-05
CN103703511A (zh) 2014-04-02
TW201303853A (zh) 2013-01-16
CN103562994A (zh) 2014-02-05
SG193525A1 (en) 2013-10-30
JP5820487B2 (ja) 2015-11-24
US20140019146A1 (en) 2014-01-16
RU2013146526A (ru) 2015-04-27
CA2830633C (en) 2017-11-07
WO2012126891A1 (en) 2012-09-27
KR101748760B1 (ko) 2017-06-19
CA2830633A1 (en) 2012-09-27
US9773503B2 (en) 2017-09-26
US9972331B2 (en) 2018-05-15
KR20160058191A (ko) 2016-05-24
MX2013010535A (es) 2014-03-12
KR20160056328A (ko) 2016-05-19
KR20160056952A (ko) 2016-05-20
CA2830439A1 (en) 2012-09-27
AU2012230442A1 (en) 2013-10-31
KR101854300B1 (ko) 2018-05-03
KR20140000337A (ko) 2014-01-02
AU2016203419B2 (en) 2017-12-14
MX2013010537A (es) 2014-03-21
CN103562994B (zh) 2016-08-17
KR101712470B1 (ko) 2017-03-22
AU2012230440A1 (en) 2013-10-31
AU2016203416A1 (en) 2016-06-23
US10290306B2 (en) 2019-05-14
EP2686849A1 (en) 2014-01-22
KR101748756B1 (ko) 2017-06-19
CA2830631A1 (en) 2012-09-27
AU2016203416B2 (en) 2017-12-14
RU2013146530A (ru) 2015-04-27
TW201243827A (en) 2012-11-01
AR088777A1 (es) 2014-07-10
KR20140000336A (ko) 2014-01-02
AR085445A1 (es) 2013-10-02
MX2013010536A (es) 2014-03-21
KR101767175B1 (ko) 2017-08-10
US20140016785A1 (en) 2014-01-16
MY167957A (en) 2018-10-08
AU2016203417B2 (en) 2017-04-27
CN103620679B (zh) 2017-07-04
US20180233155A1 (en) 2018-08-16
AU2012230442B2 (en) 2016-02-25
RU2571388C2 (ru) 2015-12-20
RU2013146528A (ru) 2015-04-27
JP6007196B2 (ja) 2016-10-12
CN107342091A (zh) 2017-11-10
BR112013023945A2 (pt) 2022-05-24
AU2012230442A8 (en) 2013-11-21
AR085446A1 (es) 2013-10-02
WO2012126866A1 (en) 2012-09-27
CN107342091B (zh) 2021-06-15
SG194199A1 (en) 2013-12-30
WO2012126893A1 (en) 2012-09-27
CN107516532A (zh) 2017-12-26
JP2014510310A (ja) 2014-04-24
AU2012230415A1 (en) 2013-10-31
CN103703511B (zh) 2017-08-22
AU2016203417A1 (en) 2016-06-23
AU2012230440C1 (en) 2016-09-08
TW201246190A (en) 2012-11-16
MY163427A (en) 2017-09-15
CA2830631C (en) 2016-08-30
CN107516532B (zh) 2020-11-06
US20170270938A1 (en) 2017-09-21
TWI571863B (zh) 2017-02-21
KR20160056953A (ko) 2016-05-20
AU2016203419A1 (en) 2016-06-16
KR101742136B1 (ko) 2017-05-31
RU2589399C2 (ru) 2016-07-10
AU2012230440B2 (en) 2016-02-25
EP2686848A1 (en) 2014-01-22
KR101742135B1 (ko) 2017-05-31
JP2014512020A (ja) 2014-05-19
TWI488178B (zh) 2015-06-11

Similar Documents

Publication Publication Date Title
KR101712470B1 (ko) 유연한 구성 기능을 갖는 오디오 인코더 및 디코더
AU2012230415B9 (en) Audio encoder and decoder having a flexible configuration functionality
RU2575390C2 (ru) Кодер аудио и декодер, имеющий гибкие функциональные возможности конфигурации

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
A107 Divisional application of patent
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
FPAY Annual fee payment

Payment date: 20200130

Year of fee payment: 4