KR102572557B1 - 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램 - Google Patents

오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102572557B1
KR102572557B1 KR1020217033386A KR20217033386A KR102572557B1 KR 102572557 B1 KR102572557 B1 KR 102572557B1 KR 1020217033386 A KR1020217033386 A KR 1020217033386A KR 20217033386 A KR20217033386 A KR 20217033386A KR 102572557 B1 KR102572557 B1 KR 102572557B1
Authority
KR
South Korea
Prior art keywords
audio
stream
configuration
information
frames
Prior art date
Application number
KR1020217033386A
Other languages
English (en)
Other versions
KR20210129255A (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 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베.
Priority to KR1020237028751A priority Critical patent/KR20230129569A/ko
Publication of KR20210129255A publication Critical patent/KR20210129255A/ko
Application granted granted Critical
Publication of KR102572557B1 publication Critical patent/KR102572557B1/ko

Links

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/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/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/173Transcoding, i.e. converting between two coded representations avoiding cascaded coding-decoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/22Mode decision, i.e. based on audio signal content versus external parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Stereophonic System (AREA)

Abstract

인코딩된 오디오 신호 표현에 기초하여, 디코딩된 오디오 신호 표현을 제공하기 위한 오디오 디코더는 구성 정보에 따라 디코딩 파라미터들을 조정하도록 구성되며, 또한 현재 구성 정보를 사용하여 하나 이상의 오디오 프레임들을 디코딩하도록 구성된다. 오디오 디코더는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보와 비교하도록, 그리고 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 관련 부분이 현재 구성 정보와 다르다면, 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성 정보로서 사용하여 디코딩을 수행하기 위한 전환을 하도록 구성된다. 오디오 디코더는 오디오 디코더에 의해 이전에 획득된 스트림 식별자와 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 전환을 하게 하도록, 구성 정보를 비교할 때 구성 구조에 포함된 스트림 식별자 정보를 고려하도록 구성된다.

Description

오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램 {AUDIO DECODER, AUDIO ENCODER, METHOD FOR PROVIDING A DECODED AUDIO SIGNAL, METHOD FOR PROVIDING AN ENCODED AUDIO SIGNAL, AUDIO STREAM, AUDIO STREAM PROVIDER AND COMPUTER PROGRAM USING A STREAM IDENTIFIER}
본 발명에 따른 실시예들은 인코딩된 오디오 신호 표현을 기초로, 디코딩된 오디오 신호 표현을 제공하기 위한 오디오 인코더에 관한 것이다.
본 발명에 따른 추가 실시예들은 인코딩된 오디오 신호 표현을 제공하기 위한 오디오 인코더에 관한 것이다.
본 발명에 따른 추가 실시예들은 디코딩된 오디오 신호 표현을 제공하기 위한 방법에 관한 것이다.
본 발명에 따른 추가 실시예들은 인코딩된 오디오 신호 표현을 제공하기 위한 방법에 관한 것이다.
본 발명에 따른 추가 실시예들은 오디오 스트림에 관한 것이다.
본 발명에 따른 추가 실시예들은 오디오 스트림 제공기에 관한 것이다.
본 발명에 따른 추가 실시예들은 이 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램에 관한 것이다.
다음에는, 본 발명의 양상들의 기반이 되는 문제들 및 본 발명에 따른 실시예들에 대한 가능한 사용 시나리오들이 설명될 것이다.
서로 다른 오디오 스트림들 간에 또는 인코딩된 오디오 프레임들의 서로 다른 시퀀스들 간에 전환들이 있는 상황들이 있다. 예를 들어, 오디오 프레임들의 서로 다른 시퀀스들은 서로 다른 오디오 콘텐츠를 포함할 수 있는데, 이들 사이에서 전환이 이루어져야 한다.
예를 들어, 적응형 스트리밍 사용 사례에서 MPEG-D USAC(ISO/IEC 23003-3 + Amd.1 + Amd.2 + Amd.3)가 사용되는 경우, 소위 (예를 들어, 사용자가 스위칭할 수 있는 2개 이상의 스트림들을 그룹화할 수 있는) 적응 세트 내의 2개의 스트림들이, 이들의 비트 레이트들이 서로 다르더라도 정확히 동일한 구성 구조들을 갖는 상황이 발생할 수 있다. 예를 들어, 인코더가 단순히 두 비트 레이트들 모두에 대해 정확히 동일한 인코딩 툴 세트를 사용하여 인코더를 작동시키기로 선택한다면, 이러한 상황이 발생할 수 있다.
예를 들어, 오디오 인코더는 (오디오 디코더에 또한 시그널링되는) 동일한 기본 인코딩 설정들을 사용할 수 있지만, 여전히 오디오 값들의 서로 다른 표현들을 제공할 수 있다. 예를 들어, 오디오 인코더는 스펙트럼 값들의 보다 개략적인 양자화를 사용할 수 있는데, 이는 기본 인코더 설정 또는 디코더 설정들이 계속 변경되지 않더라도, 더 낮은 비트 레이트를 얻는 것이 바람직할 때 더 작은 비트 요구를 야기한다.
그러나 이것(예를 들어, 적응 세트 내의 2개의 스트림이 이들의 비트 레이트들이 서로 다르더라도 정확히 동일한 구성 구조를 갖는 상황의 발생)은 그와 같이 문제가 되지는 않는다.
그러나 적응형 스트리밍 사용 사례에서, 디코더는 후속하여 수신된 액세스 유닛들(또는 "프레임들")이 동일한 스트림으로부터 시작되는지 여부 또는 스트림 변경이 발생했는지 여부를 알아야 한다고 밝혀졌다.
스트림들의 변화가 검출되었다면, 오디오 디코더는 어떤 경우들에는 다음을 보장하는 지정된 시퀀스의 동작 단계들 거칠 것이라고 밝혀졌다.
하나의 디코더 인스턴스가 적절하게 셧다운되고 일시적으로 내부적으로 저장된 디코딩된 신호 부분들이 디코더 출력으로 공급된다 ― "플러싱(flushing)"으로 불리는 프로세스.
디코더는 변경된 스트림과 연관된 구성 정보를 사용하여 자체적으로 다시 인스턴스화하고 재구성할 것이다.
디코더는 즉시 재생 프레임(IPF: immediate playout frame)에서 피기백(piggy-back)되는 임베디드 액세스 유닛들을 "프리롤(pre-roll)"할 것이다. 이러한 액세스 유닛들의 프리롤은 디코더를 완전히 초기화된 상태로 놓아, 첫 번째 프레임의 디코딩으로부터의 출력이 완전히 부응하는 디코딩된 오디오 신호가 된다.
선택적으로, 예를 들어, 대응하는 비트 스트림 시그널링 엘리먼트에 의존하여, 디코더 플러싱 프로세스로부터의 오디오 출력 및 재구성된 디코더의 제1 액세스 유닛의 디코딩으로부터의 출력은 매우 짧은 기간의 시간 동안 크로스 페이드(crossfade)된다.
*위의 모든 단계들은 예를 들어, 한 스트림의 디코딩된 오디오에서 다른 스트림의 디코딩된 오디오로의 "끊김 없는" 전환을 얻는 유일한 목표를 달성하기 위해 실행될 수 있다. "끊김 없는"은 스트림 전환들 자체로부터의 가청 인공물들도 글리치(glitch)들도 없음을 의미한다. ― 예를 들어 ― 전반적인 코딩 품질 또는 오디오 대역폭 또는 음색의 변화 때문에 스트림 전환이 사실상 지각적으로 눈에 띌 수 있게 될 수 있다. 그러나 전환의 실제 지점(시점)은 저절로 청각적 인상을 야기하지는 않는다. 즉, 전환점에서는 "클릭들" 또는 "잡음 버스트들" 또는 유사한 방해 소리들이 없다.
스트림 변경이 발생했는지 여부의 정보는 즉시 재생 프레임에 임베드된 구성 구조를 분석하고 이를 현재 디코딩된 스트림의 구성과 비교하는 것으로부터 얻어질 수 있다고 밝혀졌다. 예를 들어, 오디오 디코더는 수신된 구성이 현재 구성과 다른 경우에 그리고 그러한 경우에만 스트림의 변경을 가정할 수 있다.
예를 들어, 디코더가 변화하는 비트 레이트를 가진 스트림의 즉시 재생 프레임(IPF)을 수신한다면, 디코더는 오디오 프리롤 확장 페이로드의 존재를 검출하고, 구성 구조를 추출하며, 이 새로운 구성과 현재의 구성 간의 비교를 수행할 것이다. 추가 세부사항들에 대해서는, ISO/IEC 23003-3:2012/Amd.3, 하위 절 "비트 레이트 적응"을 또한 참조한다.
그러나 현재 및 새로운 구성 구조들 둘 다 동일하다면, 디코더는 자신이 이전과는 다른 스트림으로부터 액세스 유닛들을 수신하고 있으며, 이에 따라 디코더를 재구성하지도 않을 것이고 디코더가 IPF의 확장 페이로드에 있는 오디오 프리롤을 디코딩하지도 않을 것이라고 밝혀졌다.
대신, 디코더는 마치 이전 활성 스트림으로부터 계속된 액세스 유닛들을 수신한 것처럼 계속 디코딩을 시도할 것이다. 이것은 (예를 들어, streamID가 사용되거나 평가되지 않는 종래의 경우) 마지막으로 디코딩된 프레임과 새로운 스트림의 새로운 프레임의 윈도우 경계들 및 코딩 모드들이 대응하지 않을 가능성이 높은 상황으로 이어질 것이며, 이는 결국 클릭들 또는 잡음 버스트들과 같은 가청 인공물들로 이어진다. 이는 IPF들의 주요 목적 그리고 스트림들 간의 끊김 없는 전환들의 개념에 기반한 적응형 오디오 스트리밍 아이디어를 실패하게 할 것이다.
다음에, 종래의 일부 접근 방식들이 설명될 것이다.
통합 음성 및 오디오 코딩(USAC: unified-speech-and-audio-coding)에 대해서는 알려진 솔루션이 없다는 점이 주목되어야 한다.
MPEG-H 3D 오디오(ISO/IEC 23008-3 + 모든 개정안들)에서, 오디오 데이터가 MPEG-H 오디오 스트림(MPEG-H Audio Stream)("MHAS") 패킷화된 스트림 포맷에 의해 송신된다면 문제가 해결될 수 있다. MHAS 패키지들은 스트림들 간에 서로 다를 수 있는 패킷 라벨을 포함하며, 따라서 구성들 간의 차별화 목적을 수행할 수 있다. 그러나 MHAS 포맷은 MPEG-D USAC에 명시되어 있지 않다.
MPEG-4 HE-AAC(ISO/IEC 14496-3 + 모든 개정안들)에서는, 인코더가 잠재적인 전환점들(소위 스트림 액세스 포인트(SAP: stream access point)들)에서 모든 스트림들이 동일한 윈도우 형상들 및 윈도우 시퀀스들을 갖는 것을 보장할 것을 요구하는 차선책 그리고 채용된 신호 처리 툴에 대한 추가 제약들이 있다. 이는 결과적인 오디오 품질에 해로운 영향들을 가질 수 있다. 위에서 언급한 IPF는 이러한 모든 제약들의 새로운 코덱을 해제하도록 정확히 설계되었다.
결론적으로, 서로 다른 오디오 스트림들 간의 스위칭을 허용하고 오버헤드의 양과 구현의 편의성 사이의 개선된 절충안을 제공하는 개념에 대한 요구가 있다.
본 발명에 따른 일 실시예는 인코딩된 오디오 신호 표현을 기초로, 디코딩된 오디오 신호 표현을 제공하기 위한 오디오 인코더를 생성한다. 오디오 디코더는 구성 정보에 따라 디코딩 파라미터들을 조정하도록 구성된다. 오디오 디코더는 현재 구성을 사용하여(예컨대, 현재 활성 구성 정보를 사용하여) 하나 이상의 오디오 프레임들을 디코딩하도록 구성된다. 더욱이, 오디오 디코더는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보와 비교하도록, 그리고 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 (예를 들어, 스트림 식별자까지의 그리고 스트림 식별자를 포함하는) 관련 부분이 현재 구성 정보와 다르다면, 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성 정보로서 사용하여 디코딩을 수행하기 위한 전환을 하도록 구성된다. 오디오 디코더는 오디오 디코더에 의해 이전에 획득된 스트림 식별자와 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 전환을 하게 하도록, 구성 정보를 비교할 때 구성 구조에 포함된 스트림 식별자 정보를 고려하도록 구성된다.
본 발명에 따른 이 실시예는, 구성 구조에 포함된 스트림 식별자 정보의 존재 및 평가가 오디오 디코더 측에서 서로 다른 스트림들의 구별을 가능하게 하고, 결과적으로 (예를 들어, 구성 구조의 구성 정보의 나머지에 의해 기술될 수 있는) 실제 디코딩 구성이 두 스트림들 모두에 대해 동일한 경우에도 전환의 실행을 허용하는 아이디어에 기반한다. 이에 따라, 스트림 식별자는 전환이 이루어질 수 있는 서로 다른 스트림들 간에 구별하기 위한 기준으로 사용될 수 있다. 스트림 식별자 정보는 (예를 들어, 오디오 디코더의 디코딩 파라미터들을 조정하는 다른 구성 정보와 함께) 구성 구조에 포함되기 때문에, 전환이 이루어져야 하는지 여부를 결정할 때 다른 프로토콜 계층으로부터의 어떠한 정보도 평가할 필요가 없다. 예를 들어, 스트림 식별자 정보는 디코딩 파라미터들("구성 구조")을 정의하는 데이터 구조의 하위 데이터 구조에 포함되어, 패킷 레벨로부터의 어떠한 정보도 실제 오디오 디코더로 전달할 필요가 없다. 오디오 디코더가 제1 스트림에서 제2 스트림으로의 전환을 인식할 수 있게 하지만, 단일 스트림의 연속 부분을 디코딩할 때 디코딩 파라미터들에 어떠한 영향을 미치지 않는 스트림 식별자 정보를 구성 구조에 포함시킴으로써, 서로 다른 스트림들에서 동일한 디코딩 파라미터들이 사용되는 상황에서도 다른 프로토콜 레벨로부터의 정보에 액세스하지 않고 오디오 디코더 측에서 서로 다른 스트림들 간의 스위칭을 인식하는 것이 가능하다. 또한, 서로 다른 스트림들 간의 스위칭이 허용 가능한 위치들에서 서로 다른 스트림들에 동일한 디코딩 파라미터들을 사용할 필요는 없다.
결론적으로, 독립 청구항 1에 의해 정의된 개념은 (예를 들어, 다른 프로토콜 레벨로부터 전용 시그널링 정보를 추출하여 이를 오디오 디코더로 전달하지 않고) 적당한 구현 복잡성을 갖는 서로 다른 스트림들 간의 스위칭의 인식을 허용하면서 전환점들에서 특정 코딩/디코딩 설정들(이를테면, 윈도우들의 선택 등)을 시행할 필요성을 피한다. 따라서 과도한 오버헤드 및 오디오 품질의 저하가 또한 회피될 수 있다.
바람직한 실시예에서, 오디오 디코더는 구성 구조가 스트림 식별자 정보를 포함하는지 여부를 체크하도록, 그리고 스트림 식별자 정보가 구성 구조에 포함된다면 비교에서 스트림 식별자 정보를 선택적으로 고려하도록 구성된다. 이에 따라, 각각의 구성 구조에 스트림 식별자 정보를 포함시킬 필요가 없다. 그보다는, 서로 다른 스트림들 간의 스위칭에 대한 가능성이 요구되지 않는 오디오 프레임들의 구성 구조들에서 스트림 식별자를 생략하는 것이 가능하다. 이에 따라, 일부 비트들이 절약될 수 있고, 서로 다른 스트림들 간의 스위칭이 허용 가능하지 않은 지점들에서 스트림 식별자 정보의 평가가 회피될 수 있다.
바람직한 실시예에서, 오디오 디코더는 구성 구조가 구성 확장 구조를 포함하는지 여부를 체크하도록 그리고 구성 확장 구조가 스트림 식별자를 포함하는지 여부를 체크하도록 구성된다. 오디오 디코더는 스트림 식별자 정보가 구성 확장 구조에 포함된다면 비교에서 스트림 식별자 정보를 선택적으로 고려하도록 구성될 수 있다.
이에 따라, 스트림 식별자는 구성 확장 구조에 배치될 수 있는데, 그 존재는 선택적이며, 여기서 구성 확장 구조가 존재하더라도 스트림 식별자 정보의 존재는 심지어 선택적인 것으로 간주될 수 있다. 이에 따라, 오디오 디코더는 스트림 식별자 정보가 존재하는지 여부를 탄력적으로 인식할 수 있는데, 이는 오디오 인코더에 불필요한 정보의 포함을 피할 가능성을 준다. (예를 들어, 구성 구조의 고정된(항상 존재하는) 부분의 플래그에 의해) 활성화 및 비활성화될 수 있는 데이터 구조에 스트림 식별자를 배치하면, 스트림 식별자 정보가 필요한 곳에 정확히 배치될 수 있는 한편, 스트림 식별자 정보가 필요하지 않다면 비트들을 절약할 수 있다. 이것은, 스트림들 간의 스위칭이 통상적으로 지정된 시간들에만 가능하므로, 구성 구조가 존재하는 각각의 프레임이 스트림 식별자 정보를 또한 포함할 필요가 없기 때문에 유리하다.
바람직한 실시예에서, 오디오 디코더는 구성 확장 구조에서 구성 정보 항목들의 가변 순서를 받아들이도록 구성된다. 예를 들어, 오디오 디코더는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보와 비교할 때, (예를 들어, 스트림 식별자 정보뿐만 아니라) 구성 확장 구조에서 스트림 식별자 정보 앞에(예를 들어, "streamID"라는 명칭의 항목 앞에) 배열된 구성 정보 항목들(예를 들어, 구성 확장들)을 고려하도록 구성된다. 더욱이, 오디오 디코더는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보와 비교할 때, 구성 확장 구조(예를 들면, "UsacConfigExtension()")에서 스트림 식별 정보 뒤에 배열된 구성 정보 항목들(예를 들면, 구성 확장들)을 고려되지 않게 하도록 구성될 수 있다.
이러한 개념을 사용함으로써, 서로 다른 스트림들 간의 전환들의 검출이 매우 탄력적인 방식으로 이루어질 수 있다. 예를 들어, 오디오 스트림의 "중요한" 변경을 나타내는 이러한 모든 구성 정보 항목들은 구성 확장 구조에서 스트림 식별자 정보 앞에 배치될 수 있어, 이러한 파라미터들의 변경이 한 스트림에서 다른 스트림으로의 전환을 트리거한다. 다른 한편으로는, 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 정보를 현재 구성 정보와 비교할 때 일부 구성 정보 항목들을 고려되지 않게 함으로써, 재초기화로 연결될 수 있는 "전환", 즉 하나의 스트림에서 다른 스트림으로의 스위칭을 트리거하지 않고 오디오 디코더에 대한 "종속" 구성 파라미터들을 변경하는 것이 가능하다. 달리 말하면, 비교시에, 구성 확장 구조에서 스트림 식별자 정보 앞에 배열된 구성 정보 항목들 및 스트림 식별자 정보 자체만을 평가함으로써, "종속" 디코딩 파라미터의 임의의 변경이 "전환"을 트리거하는 것이 회피될 수 있다. 그보다, 오디오 인코더가 구성 확장 구조에서 스트림 식별자 정보 뒤에 (종속 디코딩 파라미터들과 관련된) 이러한 "종속" 구성 정보 항목들을 배치하는 것이 가능하다. 그런 다음, 오디오 인코더는 변경들 각각에 의한 "전환"(또는 재초기화)을 트리거하지 않고 스트림 내의 이러한 "종속" 구성 정보 항목들을 변경할 수 있다. 다른 한편으로, 스트림 중에는 변경되지 않고 그대로인 그러한 구성 정보 항목들이 구성 확장 구조에서 스트림 식별자 정보 앞에 배치될 수 있고, (예를 들어, 오디오 스트림의 "중요한" 변경을 나타낼 수 있는) 그러한 "관련성이 높은" 구성 정보 항목의 변경은 "전환"(그리고 통상적으로는 오디오 디코더의 재초기화)을 야기할 것이다. 오디오 디코더는 또한 구성 확장 구조에서 구성 정보 항목들의 가변 순서를 받아들일 수 있기 때문에, 오디오 인코더는 신호 특성들에 따라 또는 다른 기준들에 따라, 어떤 구성 정보 항목들이 오디오 디코더의 "전환" 또는 재초기화를 트리거해야 하는지의 변경 및 오디오 디코더의 "전환" 또는 재초기화를 트리거하지 않으면서 어느 구성 정보 항목들이 스트림 내에서 가능해야 하는지의 변경을 결정할 수 있다.
바람직한 실시예에서, 오디오 디코더는 각각의 구성 정보 항목들에 선행하는 하나 이상의 구성 확장 타입 식별자들을 기초로 구성 확장 구조에서 하나 이상의 구성 정보 항목들을 식별하도록 구성된다. 이러한 구성 확장 타입 식별자들을 사용함으로써, 구성 정보 항목들의 가변 순서를 구현하는 것이 가능하다.
바람직한 실시예에서, 구성 확장 구조는 구성 구조의 하위 데이터 구조이고, 구성 확장 구조의 존재는 오디오 디코더에 의해 평가되는 구성 구조의 비트에 의해 표시된다. 스트림 식별자 정보는 상기 구성 확장 구조의 하위 데이터 항목이며, 스트림 식별자 정보의 존재는 오디오 디코더에 의해 평가되는 스트림 식별자 정보와 연관된 구성 확장 타입 식별자에 의해 표시된다. 이에 따라, 언제 스트림 식별자 정보가 오디오 스트림에 추가되어야 하는지를 탄력적으로 결정하는 것이 가능하고, 오디오 디코더는 그러한 스트림 식별자 정보가 언제 이용 가능한지를 용이하게 결정할 수 있다. 그 결과, 서로 다른 스트림들 사이의 스위칭이 있을 수 있는 지점들에서 오디오 스트림의 (다수의 비트들을 필요로 하는) 스트림 식별자 정보를 포함하는 것으로 충분하다. 서로 다른 스트림들 사이에 스위칭할 가능성이 없는 위치에 있는 인접한 오디오 스트림 내의 즉시 재생 프레임(IPF)들은 비트 레이트를 저장하는 스트림 식별자 정보를 전달할 필요가 없다.
바람직한 실시예에서, 오디오 디코더는 랜덤 액세스 정보(예를 들어, "AudioPreRoll()"로도 또한 지정된 "오디오 프리롤 확장 페이로드")를 포함하는 오디오 프레임 표현(예를 들어, 즉시 재생 프레임(IPF))을 획득하여 처리하도록 구성된다. 랜덤 액세스 정보는 오디오 디코더의 처리 체인의 상태를 원하는 상태가 되게 하기 위한 (예를 들면, "AccessUnit()"으로 지정된) 정보 및 (예를 들면, "Config()"로 지정된) 구성 구조를 포함한다. 오디오 디코더는 랜덤 액세스 정보(예를 들어, 즉시 재생 프레임(IPF))를 포함하는 오디오 프레임 표현에 도달하기 전에 처리된(디코딩된) 오디오 프레임에 의해 표현된 오디오 정보와, 랜덤 액세스 정보의 구성 구조를 이용한 오디오 디코더의 초기화 이후 그리고 오디오 디코더가 구성 구조의 구성 정보 및 랜덤 액세스 정보의 구성 정보(예를 들어, "Config()") 또는 랜덤 액세스 정보의 구성 구조의 구성 정보의 관련 부분이 현재 구성 정보와 다르다는 점을 확인한다면 처리 체인에 대한 상태를 원하는 상태가 되게 하기 위한 정보를 사용하여 오디오 디코더의 상태를 조정한 후에 랜덤 액세스 정보를 포함하는 오디오 프레임 표현에 기초하여 도출된 오디오 정보 사이를 크로스 페이드하도록 구성된다. 예를 들어, "numPreRollFrames" 값이 0이라면, 프리롤 프레임들의 디코딩은 생략될 수 있다.
즉, 오디오 디코더는 구성 구조의 구성 정보 또는 (예를 들어, 스트림 식별자 정보까지의 그리고 이를 포함하는) 그 구성 정보의 관련 부분을 평가함으로써, 서로 다른 스트림들 사이의 전환이 존재하는지 여부를 인식할 수 있고, 서로 다른 스트림들 사이의 전환의 경우에, 오디오 디코더는 랜덤 액세스 정보를 이용할 수 있다. 랜덤 액세스 정보는 오디오 디코더의 처리 체인을 (정상적으로는 전환이 없을 때 하나 이상의 이전 프레임들에 의해 영향을 받지 않을) 적절한 상태가 되게 하는 데 도움이 될 수 있어, 이로써 전환시 인공물들을 피할 수 있다. 결론적으로, 이러한 개념은 서로 다른 스트림들 간의 인공물 없는 스위칭을 허용하며, 오디오 디코더는 프레임 표현들의 시퀀스를 제외하고는 다른 프로토콜 레벨로부터의 어떠한 정보도 필요로 하지 않는다.
바람직한 실시예에서, 오디오 디코더는 오디오 디코더가 랜덤 액세스 정보(예를 들어, 즉시 재생 프레임)를 포함하는 오디오 프레임 표현에 의해 표현된 오디오 프레임 바로 앞에 있는 오디오 프레임을 디코딩했다면, 그리고 오디오 디코더가 랜덤 액세스 정보의 구성 구조의 구성 정보의 관련 부분이 현재 구성 정보와 동일함을 확인한다면, 오디오 디코더의 초기화를 수행하지 않고 그리고 오디오 디코더의 처리 체인의 상태를 원하는 상태가 되게 하기 위한 정보(예를 들어, 프리롤 확장 페이로드)를 사용하지 않고 디코딩을 계속하도록 구성된다. 이에 따라, 오디오 디코더가 구성 구조의 구성 정보의 관련 부분을 현재 구성 정보와 비교함으로써, 서로 다른 스트림들 사이의 전환이 아니라 동일한 스트림의 연속한 재생이 있다고 인식한다면, 오디오 디코더의 초기화의 수행에 의해 야기되는 오버헤드(예를 들어, 처리 오버헤드 또는 연산 오버헤드)가 회피된다. 따라서 높은 수준의 효율이 달성되고, 오디오 디코더의 초기화는 이것이 필요할 때만 수행된다.
바람직한 실시예에서, 오디오 디코더는 랜덤 액세스 정보의 구성 구조를 사용하여 오디오 디코더의 초기화를 수행하도록 그리고 오디오 디코더가 랜덤 액세스 정보를 포함하는 오디오 프레임 표현에 의해 표현된 오디오 프레임 바로 앞에 있는 오디오 프레임을 디코딩하지 않았다면, 처리 체인의 상태를 원하는 상태가 되게 하기 위한 정보를 사용하여 오디오 디코더의 상태를 조정하도록 구성된다. 즉, 실제 "랜덤 액세스"가 존재한다면(오디오 디코더가 선행 오디오 프레임이 디코딩되지 않았다는 것을 안다), 초기화가 또한 수행된다. 따라서 랜덤 액세스 정보는 실제 "랜덤 액세스"의 경우에(즉, 특정 프레임으로 점프할 때) 그리고 서로 다른 스트림들 사이에서 스위칭할 때("실제" 랜덤 액세스가 오디오 디코더에 시그널링될 수 있고, 서로 다른 스트림들 간의 스위칭은 스트림 식별자 정보의 평가에 의해 오디오 디코더에 의해서만 인식 가능할 수 있음) 사용된다.
여기서 논의되는 오디오 디코더는 개별적으로 또는 조합하여, 본 명세서에서 설명되는 특징들, 기능들 및 세부사항들 중 임의의 것으로 선택적으로 보완될 수 있다는 점이 주목되어야 한다.
본 발명에 따른 일 실시예는 인코딩된 오디오 신호 표현을 제공하기 위한 오디오 인코더를 생성한다. 오디오 인코더는 인코딩된 오디오 신호 표현을 획득하기 위해 인코딩 파라미터들을 사용하여 오디오 신호의 중첩 또는 비중첩 프레임들을 인코딩하도록 구성된다. 오디오 인코더는 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 기술하는 구성 구조를 제공하도록 구성된다. 구성 구조는 또한 스트림 식별자를 포함한다.
이에 따라, 오디오 인코더는 앞서 언급한 오디오 디코더에 의해 잘 사용될 수 있는 오디오 신호 표현을 제공한다. 예를 들어, 오디오 인코더는 서로 다른 스트림들의 구성 구조들에서 서로 다른 스트림 식별자들을 포함할 수 있다. 이에 따라, 스트림 식별자는 오디오 디코더에 의해 사용될 디코더 구성(또는 디코딩 파라미터)을 기술하는 것이 아니라 그보다는 스트림을 식별하는 정보일 수 있다. 이에 따라, 인코딩된 오디오 신호 표현은 스트림 식별자를 포함하고, 서로 다른 스트림들의 식별은 다른 프로토콜 레벨로부터의 어떠한 정보도 요구하지 않고, 인코딩된 오디오 신호 정보 자체에 기초하여 가능하다. 예를 들어, 스트림 식별자 정보는 오디오 신호 표현의 또는 오디오 신호 표현 내에 포함된 구성 구조의 필수적인 부분이기 때문에, 패킷 레벨에서 제공되는 정보의 사용은 필요하지 않다. 결과적으로, 본 명세서에서 논의되는 바와 같은 오디오 디코더들은, 디코더의 실제 구성 파라미터들이 변경되지 않고 그대로라 하더라도 서로 다른 스트림들 간의 스위칭을 인식할 수 있다.
바람직한 실시예에서, 오디오 인코더는 구성 구조의 구성 확장 구조에 스트림 식별자를 포함하도록 구성되며, 스트림 식별자를 포함하는 구성 확장 구조는 오디오 인코더에 의해 인에이블 및 디세이블될 수 있다. 이에 따라, 오디오 인코더 측에서, 스트림 식별자 정보가 포함되어야 하는지 여부를 탄력적으로 결정하는 것이 가능하다. 예를 들어, 스트림 식별자 정보의 포함은 오디오 인코더가 스트림 스위칭이 없을 것임을 알고 있는 오디오 프레임들에 대해서는 선택적으로 생략될 수 있다.
바람직한 실시예에서, 오디오 인코더는 구성 확장 구조 내의 스트림 식별자의 존재를 시그널링하기 위해 구성 확장 구조에 스트림 식별자를 지정하는 구성 확장 타입 식별자를 포함하도록 구성된다. 이에 따라, 다른 구성 확장 정보가 구성 확장 구조에 존재한다면, 심지어 스트림 식별자 정보를 생략하는 것이 가능하다. 즉, 모든 구성 확장 구조가 반드시 스트림 식별자를 포함할 필요는 없으며, 이는 비트들을 절약하는 데 도움이 된다.
바람직한 실시예에서, 오디오 인코더는 스트림 식별자를 포함하는 적어도 하나의 구성 구조 및 스트림 식별자를 포함하지 않는 적어도 하나의 구성 구조를 제공하도록 구성된다. 이에 따라, 오디오 인코더가 이것이 필요하다는 것을 인식하는 경우에만 스트림 식별자가 구성 구조에 포함된다. 예를 들어, 오디오 인코더는 스트림들 간의 스위칭이 가능한 프레임들의 구성 구조들에 스트림 식별자를 포함하는 것만이 필요하다. 그렇게 함으로써, 비트 레이트가 적정하게 작게 유지될 수 있다.
바람직한 실시예에서, 오디오 인코더는 제1 시퀀스의 오디오 프레임들에 의해 표현되는 제1 인코딩된 오디오 정보의 제공과 제2 시퀀스의 프레임들에 의해 표현되는 제2 인코딩된 오디오 정보의 제공 사이에서 스위칭하도록 구성되며, 제1 시퀀스의 오디오 프레임들 중 마지막 프레임의 렌더링 이후 제2 시퀀스의 오디오 프레임들 중 제1 오디오 프레임의 적절한 렌더링은 오디오 디코더의 재초기화를 요구한다. 이 경우, 오디오 인코더는 제2 시퀀스의 오디오 프레임들 중 첫 번째 프레임을 나타내는 오디오 프레임 표현에 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자를 포함하는 구성 구조를 포함하도록 구성된다. 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자는 제1 시퀀스의 프레임들과 연관된 스트림 식별자와 다르게 선택된다. 이에 따라, 오디오 인코더는 오디오 디코더가 서로 다른 스트림들 간에 구별하게 하고 ("전환"으로도 또한 지정된) 재초기화가 언제 수행되어야 하는지를 인식하게 하는 시그널링을 구성 구조 내에서 제공할 수 있다.
바람직한 실시예에서, 오디오 인코더는 스트림 식별자를 제외하고 제1 시퀀스의 오디오 프레임들로부터 제2 시퀀스의 오디오 프레임으로의 스위칭을 나타내는 어떠한 다른 시그널링 정보도 제공하지 않는다. 이에 따라, 비트 레이트가 적정하게 작게 유지될 수 있다. 특히, 인코딩된 오디오 정보 이외에 시그널링이 다른 프로토콜 레벨들에 포함되는 것이 회피될 수 있다. 더욱이, 오디오 인코더는 제1 시퀀스의 오디오 프레임들로부터 제2 시퀀스의 오디오 프레임들로의 스위칭이 실제로 언제 일어나는지를 사전에 알지 못한다. 예를 들어, 오디오 디코더는 먼저 제1 시퀀스의 오디오 프레임들로부터의 오디오 프레임들을 요청할 수 있으며, 오디오 디코더가 어떤 필요성을 인식할 때(예를 들어, 이용 가능한 비트 레이트의 증가 또는 감소가 있을 때), 오디오 디코더(또는 오디오 프레임들의 제공을 제어하는 임의의 다른 제어 디바이스)는 제2 스트림으로부터의 오디오 프레임들이 이제 오디오 디코더에 의해 처리되어야 한다고 결정할 수 있다. 그러나 어떤 경우들에는, 오디오 디코더는 제1 시퀀스로부터의 오디오 프레임들의 제공과 제2 시퀀스로부터의 오디오 프레임들의 제공 사이의 스위칭이 언제(또는 정확히 언제) 존재하는지를 저절로 알 수 없고, 구성 구조에 포함된 스트림 식별자를 평가함으로써 현재 수신된 오디오 프레임들이 어떤 시퀀스의 오디오 프레임들로부터 발생하는지만을 인식할 수 있을 것이다.
바람직한 실시예에서, 오디오 인코더는 서로 다른 비트 레이트들을 사용하여 제1 시퀀스의 오디오 프레임들(예를 들어, 제1 스트림) 및 제2 시퀀스의 오디오 프레임들(예를 들어, 제2 스트림)을 제공하도록 구성된다(여기서 제1 스트림과 제2 스트림은 동일한 오디오 콘텐츠를 나타낼 수 있다). 더욱이, 오디오 인코더는 서로 다른 비트 스트림 식별자들을 제외하고는 제1 시퀀스의 오디오 프레임들의 디코딩을 위해 그리고 제2 시퀀스의 오디오 프레임들의 디코딩을 위해 오디오 디코더에 동일한 디코더 구성 정보를 시그널링하도록 구성될 수 있다. 즉, 오디오 인코더는 동일한 디코더 파라미터들을 사용하도록 오디오 디코더에 시그널링할 수 있지만, 제1 스트림과 제2 스트림은 여전히 서로 다른 비트 레이트들을 포함할 수 있다. 이것은 예를 들어, 제1 오디오 스트림 및 제2 오디오 스트림을 제공할 때 서로 다른 양자화 분해능 또는 서로 다른 심리 음향 모델들을 사용함으로써 야기될 수 있다. 그러나 이러한 서로 다른 양자화 분해능 또는 서로 다른 심리 음향 모델들은 오디오 디코더에 의해 사용될 디코딩 파라미터들에 영향을 주는 것이 아니라 실제 비트 레이트에만 영향을 준다. 따라서 서로 다른 비트 스트림 식별자들은 오디오 디코더가 디코딩될 오디오 프레임이 제1 스트림으로부터의 프레임인지 아니면 제2 스트림으로부터의 프레임인지를 구별할 유일한 가능성일 수 있으며, 비트 스트림 식별자의 평가는 또한 오디오 디코더가 전환(또는 재초기화)이 언제 이루어져야 하는지를 인식할 수 있게 한다.
이에 따라, 오디오 인코더는 이용 가능한 비트 레이트의 변화들이 발생할 수 있는 환경들에서 유용할 수 있고, 시그널링 오버헤드는 적정하게 작게 유지될 수 있다.
더욱이, 여기서 논의되는 오디오 인코더는 본 명세서에서 설명되는 특징들과 기능들 및 세부사항들 중 임의의 것으로 선택적으로 보완될 수 있다는 점이 주목되어야 한다.
본 발명에 따른 다른 실시예는 인코딩된 오디오 신호 표현을 기초로, 디코딩된 오디오 신호 표현을 제공하기 위한 방법에 관한 것이다. 이 방법은 구성 정보에 따라 디코딩 파라미터들을 조정하는 단계를 포함하고, 이 방법은 현재 구성 정보(예컨대, 현재 활성 구성 정보)를 사용하여) 하나 이상의 오디오 프레임들을 디코딩하는 단계를 포함한다. 이 방법은 또한 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보와 비교하는 단계를 포함하고, 이 방법은 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 (예를 들어, 스트림 식별자까지의 그리고 스트림 식별자를 포함하는) 관련 부분이 현재 구성 정보와 다르다면, 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성으로서 사용하여 디코딩을 수행하기 위한 (예를 들어, 디코딩의 재초기화를 포함하는) 전환을 하는 단계를 포함한다. 이 방법은 또한, 오디오 디코딩에서 이전에 획득된 스트림 식별자와 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 전환을 하게 하도록, 구성 정보를 비교할 때 구성 구조에 포함된 스트림 식별자 정보를 고려하는 단계를 포함한다. 이 방법은 앞서 언급한 오디오 디코더와 동일한 고려 사항들에 기초한다.
이 방법은 개별적으로 또는 조합하여, 본 명세서에서 설명되는 특징들과 기능들 및 세부사항들 중 임의의 것으로 보완될 수 있다.
본 발명에 따른 다른 실시예는 인코딩된 오디오 신호 표현을 제공하기 위한 방법을 생성한다. 이 방법은 인코딩된 오디오 신호 표현을 획득하기 위해 인코딩 파라미터들을 사용하여 오디오 신호의 중첩 또는 비중첩 프레임들을 인코딩하는 단계를 포함한다. 이 방법은 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 기술하는 구성 구조를 제공하는 단계를 포함하며, 구성 구조는 스트림 식별자를 포함한다. 이 방법은 앞서 언급한 오디오 인코더와 동일한 고려 사항들에 기초한다.
게다가, 여기서 설명되는 방법들은 대응하는 오디오 디코더 및 오디오 인코더에 관해 앞서 설명한 특징들 및 기능들 중 임의의 것으로 보완될 수 있다는 점이 주목되어야 한다. 더욱이, 이 방법들은 개별적으로 또는 조합하여, 본 명세서에서 설명되는 특징들, 기능들 및 세부사항들 중 임의의 것으로 보완될 수 있다.
본 발명에 따른 실시예들은 오디오 스트림을 생성한다. 오디오 스트림은 오디오 신호의 중첩 또는 비중첩 프레임들의 인코딩된 표현을 포함한다. 오디오 스트림은 또한 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 기술하는 구성 구조를 포함한다. 구성 구조는 스트림 식별자를 (예를 들어, 정수 값의 형태로) 나타내는 스트림 식별자 정보를 포함한다.
오디오 스트림은 앞서 언급한 고려 사항들을 기초로 한다. 특히, 오디오 스트림의 구성 구조에 포함되며, 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 기술하는 스트림 식별자는, 동일한 인코딩 파라미터들(또는 디코딩 파라미터들)이 사용되더라도, 오디오 디코더가 서로 다른 스트림들 간에 구별할 수 있게 한다.
바람직한 실시예에서, 스트림 식별자 정보는 구성 확장 구조에 포함된다. 이 경우, 구성 확장 구조는 바람직하게는 구성 구조의 하위 데이터 구조이고, 구성 확장 구조의 존재는 구성 구조의 비트에 의해 표시된다. 더욱이, 스트림 식별자 정보는 상기 구성 확장 구조의 하위 데이터 항목이며, 스트림 식별자 정보의 존재는 스트림 식별자 정보와 연관된 구성 확장 타입 식별자에 의해 표시된다. 이러한 오디오 스트림의 사용은 필요할 때마다 스트림 식별자 정보의 탄력적인 포함을 허용하지만, 스트림 식별자 정보의 포함은 그것이 필요하지 않은 경우에는(예를 들어, 다수의 스트림들 사이의 스위칭이 허용되지 않는 프레임들에 대해서는) 생략될 수 있다. 따라서 비트 레이트가 절약될 수 있다.
바람직한 실시예에서, 스트림 식별자는 오디오 프레임의 표현의 하위 데이터 구조에 임베드된다(그리고 그러한 하위 데이터 구조로부터 오디오 디코더에 의해 추출될 수 있다). 스트림 식별자를 오디오 프레임의 표현의 하위 데이터 구조에 임베드함으로써, 오디오 디코더가 더 상위 프로토콜 레벨로부터의 정보를 사용해야 한다는 것이 회피될 수 있다. 그보다는, 오디오 프레임을 디코딩하기 위해, 오디오 디코더는 오디오 프레임의 표현만을 필요로 하며, 서로 다른 스트림들 사이에서 스위칭이 있었는지 여부를 결정할 수 있다.
바람직한 실시예에서, 스트림 식별자는 오디오 프레임의 표현의 하위 데이터 구조에만 임베드된다(그리고 구성 구조를 포함하는 오디오 프레임의 표현의 하위 데이터 구조로부터 오디오 디코더에 의해 추출될 수 있다). 이 아이디어는 (눈에 띄는 인공물들 없이) 스트림들 간의 전환이 구성 구조를 포함하는 프레임들에서만 수행될 수 있다는 결론에 기반한다. 이에 따라, 구성 구조를 포함하지 않는 오디오 프레임의 표현에 포함된 스트림 식별자가 존재하지 않는 한편,
구성 구조를 포함하는 오디오 프레임의 표현의 하위 데이터 구조에 스트림 식별자를 임베드하는 것으로 충분하다는 것이 밝혀졌다.
본 명세서에서 설명되는 오디오 스트림들은 개별적으로 또는 조합하여, 본 명세서에서 논의되는 임의의 특징들, 기능들 및 세부사항들로 보완될 수 있다. 특히, 오디오 인코더들, 오디오 디코더들 및 스트림 제공기들과 관련하여 설명된 이러한 특징들은 또한 오디오 스트림에도 적용될 수 있다.
본 발명에 따른 실시예들은 인코딩된 오디오 신호 표현을 제공하기 위한 오디오 스트림 제공기를 생성한다. 오디오 스트림 제공기는 인코딩된 오디오 신호 표현의 일부로서, 인코딩 파라미터들을 사용하여 인코딩된, 오디오 신호의 시간상 중첩 또는 비중첩 프레임들의 인코딩된 버전들을 제공하도록 구성된다. 오디오 스트림 제공기는 인코딩된 오디오 신호 표현의 일부로서 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 기술하는 구성 구조를 제공하도록 구성되며, 구성 구조는 스트림 식별자를 포함한다. 이 오디오 스트림 제공기는 앞서 설명한 오디오 인코더와 그리고 또한 앞서 설명한 오디오 디코더와 동일한 고려 사항들에 기초한다.
바람직한 실시예에서, 오디오 스트림 제공기는 스트림 식별자가 구성 구조의 구성 확장 구조에 포함되게, 인코딩된 오디오 신호 표현을 제공하도록 구성되며, 스트림 식별자를 포함하는 구성 확장 구조는 구성 구조의 하나 이상의 비트들에 의해 인에이블 및 디세이블될 수 있다. 이 실시예는 오디오 인코더에 관해 그리고 또한 오디오 디코더에 관해 앞서 논의한 바와 동일한 아이디어에 기초한다. 다시 말해서, (오디오 스트림 제공기가 예를 들어, 병렬로 동작하는 다수의 오디오 인코더들에 의해 제공되는 또는 저장 매체로부터 제공되는 서로 다른 스트림들의 제공 사이에 스위칭하도록 구성될 수 있다 하더라도) 오디오 스트림 제공기는 오디오 인코더에 의해 제공된 오디오 스트림에 대응하는 오디오 스트림을 제공한다.
바람직한 실시예에서, 오디오 스트림 제공기는 구성 확장 구조가 구성 확장 구조 내의 스트림 식별자의 존재를 시그널링하기 위해 스트림 식별자를 지정하는 구성 확장 타입 식별자를 포함하게, 인코딩된 오디오 신호 표현을 제공하도록 구성된다. 이 실시예는 오디오 인코더에 관해 그리고 오디오 스트림에 관해 앞서 언급한 것과 동일한 고려 사항들에 기초한다.
바람직한 실시예에서, 오디오 스트림 제공기는 인코딩된 오디오 신호 표현이 스트림 식별자를 포함하는 적어도 하나의 구성 구조 및 스트림 식별자를 포함하지 않는 적어도 하나의 구성 구조를 포함하게, 인코딩된 오디오 신호 표현을 제공하도록 구성된다. 앞서 언급한 바와 같이, 스트림 식별자가 각각의 구성 구조에 포함될 필요는 없다. 그보다는, 어떤 구성 구조들에 스트림 식별자가 포함되어야 하는지의 탄력적인 조정이 있을 수 있다. 통상적으로, 스트림 식별자는 스트림들 간의 스위칭이 있는(또는 스트림들 간의 스위칭이 예상 또는 허용되는) 그러한 오디오 프레임들의 구성 구조들에 포함될 것이다. 달리 말하면, 서로 다른 스트림 식별자들을 제외하고 동일한 구성 구조들을 포함하는 서로 다른 스트림들 사이의 스위칭은 스트림 식별자가 존재하는 프레임들에서만 스트림 제공기에 의해 수행될 것이다. 따라서 (오디오 스트림 제공기로부터 인코딩된 오디오 표현을 수신하는) 오디오 디코더는 (구성 구조에 의해 시그널링되는) 디코딩 파라미터들이 실질적으로 동일하거나 심지어 완전히 동일하더라도, 서로 다른 스트림들 간의 스위칭을 인식할 가능성을 갖는다.
바람직한 실시예에서, 오디오 스트림 제공기는 제1 시퀀스의 오디오 프레임들에 의해 표현되는 인코딩된 오디오 정보의 제1 부분의 제공과 제2 시퀀스의 오디오 프레임들에 의해 표현되는 인코딩된 오디오 정보의 제2 부분의 제공 사이에서 스위칭하도록 구성되며, 제1 시퀀스의 오디오 프레임들 중 마지막 프레임의 렌더링 이후 제2 시퀀스의 오디오 프레임들 중 제1 오디오 프레임의 적절한 렌더링은 오디오 디코더의 재초기화를 요구한다. 오디오 스트림 제공기는 제2 시퀀스의 오디오 프레임들 중 첫 번째 프레임을 나타내는 오디오 프레임 표현이 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자를 포함하는 구성 구조를 포함하게, 인코딩된 오디오 신호 표현을 제공하도록 구성되며, 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자는 제1 시퀀스의 오디오 프레임들과 연관된 스트림 식별자와는 다르다. 즉, 오디오 스트림 제공기는 연관된 서로 다른 스트림 식별자들을 갖는 2개의 오디오 스트림들(오디오 프레임들의 시퀀스들) 사이를 스위칭한다. 이에 따라, 오디오 디코더는 통상적으로 (예를 들어, 제1 시퀀스의 오디오 프레임들과 연관된 구성 구조를 평가함으로써) 제1 시퀀스의 오디오 프레임들과 연관된 스트림 식별자를 알게 될 것이며, 오디오 디코더가 제2 시퀀스의 오디오 프레임들 중 첫 번째 프레임을 수신하면, 오디오 디코더는 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자를 포함하는 구성 구조를 평가할 수 있을 것이고, (서로 다른 스트림들에 대해 서로 다른) 스트림 식별자들의 비교에 의해 제1 스트림으로부터 제2 스트림으로의 스위칭을 인식할 수 있을 것이다. 따라서 오디오 스트림 제공기는 제1 스트림으로부터의 오디오 프레임들을 제공한 다음, 제2 스트림으로부터의 오디오 프레임들의 제공으로 스위칭하고, 적절한 시그널링 정보, 즉 스트림 식별자를 스위칭 이후 제공되는 제2 오디오 스트림의 첫 번째 프레임의 구성 구조 내에 제공한다. 이에 따라, 서로 다른 오디오 스트림들 간의 스위칭을 시그널링하기 위한 여분의 시그널링이 필요하지 않다.
바람직한 실시예에서, 오디오 스트림 제공기는 인코딩된 오디오 신호 표현이 스트림 식별자를 제외하고 제1 시퀀스의 오디오 프레임들로부터 제2 시퀀스의 오디오 프레임들로의 스위칭을 나타내는 어떠한 다른 시그널링 정보도 제공하지 않게, 인코딩된 오디오 신호 표현을 제공하도록 구성된다. 이에 따라, 비트 스트림의 상당한 절감이 이루어질 수 있다. 또한, 프로토콜 복잡도가 작게 유지되는데, 이는 서로 다른 프로토콜 레벨들에서 어떠한 정보도 포함할 필요가 없으며, 오디오 디코더 측에서 다른 프로토콜 레벨들로부터 그러한 정보를 추출할 필요가 없기 때문이다.
바람직한 실시예에서, 오디오 스트림 제공기는 제1 시퀀스의 오디오 프레임들(예를 들어, 제1 스트림) 및 제2 시퀀스의 오디오 프레임들(예를 들어, 제2 스트림)이 서로 다른 비트 레이트들을 사용하여 인코딩되게, 인코딩된 오디오 신호 표현을 제공하도록 구성된다. 더욱이, 오디오 스트림 제공기는 인코딩된 오디오 신호 표현이 서로 다른 비트 스트림 식별자들을 제외하고는 제1 시퀀스의 오디오 프레임들의 디코딩을 위해 그리고 제2 시퀀스의 오디오 프레임들의 디코딩을 위해 오디오 디코더에 동일한 디코더 구성 정보(또는 디코더 파라미터들 또는 디코딩 파라미터들)를 시그널링하게, 인코딩된 오디오 신호 표현을 제공하도록 구성된다. 따라서 오디오 스트림 제공기는 예를 들어, 비트 스트림 식별자들만이 서로 다를 수 있는 서로 다른 스트림들(제1 스트림 및 제2 스트림)에 대해 매우 유사한 구성 정보를 제공한다. 이 시나리오에서, 비트 스트림 식별자들을 사용하는 것이 특히 도움이 되는데, 이는 이들이 최소 시그널링 오버헤드로 서로 다른 비트 스트림들 간에 신뢰성 있게 구별할 수 있게 하기 때문이다.
바람직한 실시예에서, 오디오 스트림 제공기는 오디오 디코더로의 제1 시퀀스의 오디오 프레임들(예를 들어, 제1 스트림)의 제공과 제2 시퀀스의 오디오 프레임들(예를 들어, 제2 스트림)의 제공 간에 스위칭하도록 구성되며, 제1 시퀀스의 오디오 프레임들 및 제2 시퀀스의 오디오 프레임들은 서로 다른 비트 레이트들을 사용하여 인코딩된다. 오디오 스트림 제공기는 랜덤 액세스 정보를 포함하지 않는 오디오 프레임들에서의 시퀀스들 간의 스위칭을 피하면서, 오디오 프레임 표현(예를 들어, 즉시 재생 프레임(IPF))이 랜덤 액세스 정보(예를 들어, 오디오 프리롤 확장 페이로드 "AudioPreRoll()")를 포함하는 오디오 프레임에서 제1 시퀀스의 오디오 프레임들의 제공과 제2 시퀀스의 오디오 프레임들의 제공 사이에서 선택적으로 스위칭하도록 구성된다. 오디오 스트림 제공기는 제1 시퀀스의 오디오 프레임들로부터 제2 시퀀스의 오디오 프레임들로 스위칭할 때 제공되는 오디오 프레임의 구성 구조에 스트림 식별자가 포함되게, 인코딩된 오디오 신호 표현을 제공하도록 구성된다. 예를 들어, 제2 시퀀스의 오디오 프레임들 중 첫 번째 프레임이 스트림 식별자 그리고 또한 랜덤 액세스 정보를 갖는 구성 구조를 포함할 때 제1 시퀀스의 오디오 프레임들로부터의 프레임들의 제공과 제2 시퀀스의 오디오 프레임들 중 프레임들의 제공 사이의 스위칭만이 존재함이 오디오 스트림 제공기의 그러한 구성에 의해 보장된다. 결과적으로, 오디오 디코더는 서로 다른 오디오 스트림들 간의 스위칭을 검출할 수 있고, 따라서 (서로 다른 오디오 스트림들 사이에서 스위칭이 없을 때 그리고 오디오 디코더가 단일 스트림의 오디오 프레임들의 인접 시퀀스가 렌더링된다고 가정할 때는 통상적으로 랜덤 액세스 정보가 평가되지 않지만) 랜덤 액세스 정보가 평가되어야 한다는 것을 인식할 수 있다.
따라서 이러한 개념에 의해 서로 다른 오디오 스트림들 간에 스위칭할 때 인공물들이 없는 양호한 오디오 품질이 얻어질 수 있다.
추가 실시예에서, 오디오 스트림 제공기는 서로 다른 비트 레이트들을 사용하여 인코딩된 오디오 프레임들의 복수의 병렬 시퀀스들을 획득하도록 구성되고, 오디오 스트림 제공기는 오디오 디코더로의 서로 다른 병렬 시퀀스들로부터의 프레임들의 제공 간에 스위칭하도록 구성되며, 오디오 스트림 제공기는 스위칭 후에 제공되는 제1 오디오 프레임 표현의 구성 구조에 포함된 스트림 식별자를 사용하여 시퀀스들 중 어떤 시퀀스의 하나 이상의 프레임들이 연관되는지를 오디오 디코더에 시그널링하도록 구성된다. 이에 따라, 오디오 디코더는 다른 프로토콜 계층들로부터의 정보를 사용하지 않고 작은 오버헤드로 서로 다른 스트림들 간의 전환을 인식할 수 있다.
본 명세서에서 논의되는 오디오 스트림 제공기는 개별적으로 또는 조합하여, 본 명세서에서 설명되는 특징들, 기능들 및 세부사항들 중 임의의 것으로 선택적으로 보완될 수 있다는 점이 주목되어야 한다.
*본 발명에 따른 다른 실시예는 인코딩된 오디오 신호 표현을 제공하기 위한 방법을 생성한다. 이 방법은 인코딩된 오디오 신호 표현의 일부로서, 인코딩 파라미터들을 사용하여 인코딩된, 오디오 신호의 시간상 중첩 또는 비중첩 프레임들의 인코딩된 버전들을 제공하는 단계를 포함한다. 이 방법은 인코딩된 오디오 신호 표현의 일부로서 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 기술하는 구성 구조를 제공하는 단계를 포함하며, 구성 구조는 스트림 식별자를 포함한다.
이 방법은 앞서 논의한 스트림 제공기와 동일한 고려 사항들에 기초한다. 이 방법은 예를 들어, 스트림 제공기에 관해, 그러나 또한 오디오 인코더, 오디오 디코더 또는 오디오 스트림에 관해 본 명세서에서 설명되는 특징들, 기능들 및 세부사항들 중 임의의 다른 것에 의해 보완될 수 있다.
본 발명에 따른 다른 실시예는 본 명세서에서 설명되는 방법들을 수행하기 위한 컴퓨터 프로그램을 생성한다.
다음에, 본 발명에 따른 실시예들이 첨부된 도면들을 참조하여 설명될 것이다.
도 1은 본 발명의 (단순한) 실시예에 따른 오디오 디코더의 블록 개략도를 도시한다.
도 2는 본 발명의 일 실시예에 따른 오디오 디코더의 블록 개략도를 도시한다.
도 3은 본 발명의 (단순한) 실시예에 따른 오디오 인코더의 블록 개략도를 도시한다.
도 4는 본 발명의 (단순한) 실시예에 따른 오디오 스트림 제공기의 블록 개략도를 도시한다.
도 5는 본 발명의 일 실시예에 따른 오디오 스트림 제공기의 블록 개략도를 도시한다.
도 6은 본 발명의 일 실시예에 따라, 랜덤 액세스를 허용하며 구성 확장 부분에 스트림 식별자를 갖는 구성 부분을 포함하는 오디오 프레임의 표현을 도시한다.
도 7은 본 발명의 일 실시예에 따른 예시적인 오디오 스트림의 표현을 도시한다.
도 8은 본 발명의 일 실시예에 따른 예시적인 오디오 스트림의 표현을 도시한다.
도 9는 본 명세서에서 설명되는 바와 같은 오디오 디코더의 가능한 디코더 기능의 개략적인 표현을 도시한다.
도 10a는 본 명세서에서 설명되는 오디오 인코더들 및 오디오 디코더들에 의한 사용을 위한 예시적인 구성 구조의 표현을 도시한다.
도 10b는 본 명세서에서 설명되는 오디오 인코더들 및 오디오 디코더들에 의한 사용을 위한 예시적인 구성 확장 구조의 표현을 도시한다.
도 10c는 예시적인 스트림 식별자 비트 스트림 엘리먼트의 표현을 도시한다.
도 10d는 USAC 표준의 표(74)를 선택적으로 대체할 수 있는 "usacConfigExtType"의 값의 일례를 도시한다.
도 11a는 본 발명의 일 실시예에 따른, 인코딩된 오디오 신호 표현을 기초로, 디코딩된 오디오 신호 표현을 제공하기 위한 방법의 흐름도를 도시한다.
도 11b는 본 발명의 일 실시예에 따른, 인코딩된 오디오 신호 표현을 제공하기 위한 방법의 흐름도를 도시한다.
도 11c는 본 발명의 일 실시예에 따른, 인코딩된 오디오 신호 표현을 제공하기 위한 방법의 흐름도를 도시한다.
1. 도 1에 따른 오디오 디코더
도 1은 본 발명의 (단순한) 실시예에 따른 오디오 디코더의 블록 개략도를 도시한다.
오디오 디코더(100)는 인코딩된 오디오 신호 표현(110)을 수신하고 이를 기초로, 디코딩된 오디오 신호 표현(112)을 제공한다. 예를 들어, 인코딩된 오디오 신호 표현(110)은 통합 음성 및 오디오 코딩(USAC) 프레임들의 시퀀스를 포함하는 오디오 스트림일 수 있다. 그러나 인코딩된 오디오 신호 표현은 다른 형태를 취할 수 있고, 예를 들어 공지된 오디오 코딩 표준들 중 임의의 표준의 비트 스트림 신택스에 의해 정의된 오디오 표현일 수 있다. 예를 들어, 인코딩된 오디오 신호 표현은 예를 들어, 구성 구조에 포함될 수 있고 예를 들어, 스트림 식별자를 포함할 수 있는 구성 정보(110)를 포함할 수 있다. 스트림 식별자는 예를 들어, 구성 정보에 또는 구성 구조에 포함될 수 있다. 구성 정보 또는 구성 구조는 예를 들어, 디코딩될 하나 이상의 프레임들과 연관될 수 있으며 예를 들어, 오디오 디코더에 의해 사용될 디코딩 파라미터들을 기술할 수 있다.
여기서, 디코더(100)는 예를 들어, 현재 구성 정보(현재 구성 정보는 예를 들어, 디코딩 파라미터들을 정의할 수 있음)를 사용하여 하나 이상의 오디오 프레임들을 디코딩하도록 구성될 수 있는 디코더 코어(130)를 포함할 수 있다. 오디오 디코더는 또한 구성 정보(110a)에 따라 디코딩 파라미터들을 조정하도록 구성된다.
예를 들어, 오디오 디코더는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보(예를 들어, 하나 이상의 이전에 디코딩된 프레임들의 디코딩에 사용된 구성 정보)와 비교하도록 구성된다. 더욱이, 오디오 디코더는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 관련 부분이 현재 구성 정보와 다르다면, 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성 정보로서 사용하여 디코딩을 수행하기 위한 전환을 하도록 구성될 수 있다. "전환"을 할 때, 오디오 디코더는 예를 들어, "전환" 이후에 오디오 프레임(또는 제1 오디오 프레임)을 적절하게 디코딩하기 위해 사용되어야 하는 디코더 코어의 상태를 기술하도록 의도되는 랜덤 액세스 정보를 사용하여 디코더 코어(130)를 재초기화할 수 있다.
특히, 오디오 디코더는 오디오 디코더에 의해 이전에 획득된 스트림 식별자와 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 전환을 하게 하도록, 구성 정보를 비교할 때(즉, 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보와 비교할 때) 구성 구조에 포함된(즉, 구성 정보 내의) 스트림 식별자를 고려하도록 구성된다.
즉, 오디오 디코더는 예를 들어, 140으로 표기될 수 있는 현재 구성을 위한(또는 현재 구성 정보를 위한) 메모리를 포함할 수 있다. 오디오 디코더(100)는 또한 스트림 식별자를 포함하는 현재 구성 정보의 적어도 관련 부분을, 스트림 식별자를 포함하는 디코딩될 다음(오디오) 프레임과 연관된 구성 정보의 대응하는 부분과 비교할 수 있는 비교기(또는 비교를 수행하기 위한 임의의 다른 수단)(150)를 포함할 수 있다. 관련 부분은 예를 들어, 스트림 식별자까지 그리고 스트림 식별자를 포함하는 부분일 수 있으며, 구성 정보를 나타내는 비트 스트림에서 스트림 식별자 이후인 구성 정보는 일부 실시예들에서 무시될 수 있다.
비교기(150)에 의해 수행될 수 있는 이러한 비교가 현재 구성 정보(또는 그 관련 부분)와 디코딩될 다음(오디오) 프레임과 연관된 구성 정보(또는 그 관련 부분) 간의 차이를 나타낸다면, "전환"이 이루어져야 한다는 것이 인식될 수 있다.
전환을 하는 것은 예를 들어, 디코딩될 다음(오디오) 프레임과 연관된 구성 정보에 의해 기술된 디코딩 파라미터들이 현재 구성 정보에 의해 기술된 디코더 구성(디코딩 파라미터들)과 동일하더라도, 디코더 코어를 재초기화하는 것을 포함할 수 있다 (디코딩될 다음 오디오 프레임과 연관된 구성 정보는 단지 스트림 식별자가 서로 다르다는 점에서 현재 구성 정보와 다르다). 다른 한편으로, 디코딩될 다음 오디오 프레임과 연관된 구성 정보가 예를 들어, 서로 다른 디코딩 파라미터들을 정의함으로써 현재 구성 정보와 훨씬 더 다르다면, 오디오 디코더(100)는 또한 자연스럽게 "전환"을 할 것이며, 이는 통상적으로 디코더 코어(130)를 재초기화하고 디코딩 파라미터들을 변경하는 것을 의미한다.
결론적으로, 도 1에 따른 오디오 디코더(100)는 오디오 프레임의 구성 구조에 포함된 스트림 식별자를 평가함으로써, 디코더 코어(130)에 의해 사용될 디코딩 파라미터들이 변경되지 않고 그대로이더라도, 서로 다른 오디오 스트림들의 프레임들 사이의 전환을 인식할 수 있는데, 이는 오디오 스트림들 간의 전환의 그리고/또는 디코더 코어를 재초기화하기 위한 조건의 전용 시그널링에 대한 필요성을 없앤다. 따라서 디코더(100)는 하나의 스트림으로부터 다른 스트림으로의 전환이 있더라도 오디오 프레임들을 적절히 디코딩할 수 있는데, 이는 오디오 디코더가 그러한 전환을 인식하고 그것을 적절하게, 예를 들어 오디오 디코더를 재초기화하고 (필요하다면) 오디오 디코더를 새로운 구성 파라미터들로 재구성함으로써 처리할 수 있기 때문이다.
도 1에 따른 오디오 디코더(100)는 개별적으로 또는 조합하여, 본 명세서에서 설명되는 특징들과 기능들 및 세부사항들 중 임의의 것으로 선택적으로 보완될 수 있다는 점이 주목되어야 한다.
2. 도 2에 따른 오디오 디코더
도 2는 본 발명의 일 실시예에 따른 오디오 디코더(200)의 블록 개략도를 도시한다.
오디오 디코더(200)는 인코딩된 오디오 신호 표현(210)을 수신하고 이를 기초로, 디코딩된 오디오 신호 표현(212)을 제공하도록 구성된다. 인코딩된 오디오 신호 표현(210)은 예를 들어, 통합 음성 및 오디오 코딩(USAC) 프레임들의 시퀀스를 포함하는 오디오 스트림일 수 있다. 그러나 다른 오디오 코딩 개념을 사용하여 인코딩된 오디오 프레임들의 시퀀스가 오디오 디코더(200)에 또한 입력될 수도 있다. 예를 들어, 오디오 디코더는 제1 스트림의 오디오 프레임(220)을 수신할 수 있고, 이어서 (다음 오디오 프레임으로서) 제2 스트림의 오디오 프레임(222)을 수신할 수 있다. 오디오 프레임들(220, 222)은 예를 들어, 오디오 스트림 제공기에 의해 제공될 수 있다. 오디오 프레임(220)은 예를 들어, 오디오 신호의 인코딩된 표현(220a)을 예를 들어, 인코딩된 스펙트럼 값들 및 인코딩된 스케일 팩터들의 형태로 그리고/또는 인코딩된 스펙트럼 값들 및 인코딩된 선형 예측 코딩 계수들(TXC)의 형태로 그리고/또는 인코딩된 여기 및 인코딩된 선형 예측 코딩 계수들의 형태로 포함할 수 있다. 오디오 프레임(222)은 예를 들어, 프레임(220)에 포함된 오디오 신호의 인코딩된 표현(220a)과 동일한 형태일 수 있는 오디오 신호의 인코딩된 표현(222a)을 또한 포함할 수 있다. 그러나 추가로, 프레임(222)은 랜덤 액세스 정보(222b)를 또한 포함할 수 있으며, 이는 결국, 구성 구조(222c) 및 처리 체인의(예를 들어, 디코더 코어의) 상태를 원하는 상태가 되게 하기 위한 정보(222d)를 포함할 수 있다. 이 정보(222d)는 예를 들어, "AudioPreRoll"로서 표기될 수 있다.
오디오 디코더(200)는 예를 들어, 구성 정보로서 또한 고려될 수 있는 구성 구조(222c)를 인코딩된 오디오 신호 표현(210)으로부터 추출할 수 있다. 구성 구조(222c)는 예를 들어, 구성 확장 구조(226)가 구성 구조의 일부로서 존재하는지 여부를 나타내는 정보 또는 플래그(또는 비트)를 포함할 수 있다. 이 정보 또는 플래그 또는 비트는 224a로 표기된다.
구성 확장 구조(226)는 예를 들어, 스트림 식별자가 존재하는지 여부를 나타내는 정보 또는 플래그 또는 비트 또는 식별자를 포함할 수 있다. 후자의 정보, 플래그, 비트 또는 식별자는 228로 표기된다. 정보 또는 플래그 또는 비트 또는 식별자(228)가 스트림 식별자의 존재를 나타낸다면, 통상적으로 구성 확장 구조(226)의 일부일 수 있는 스트림 식별자(230)가 또한 존재한다.
더욱이, 구성 확장 구조는 적절한 비트 또는 플래그 또는 식별자와 같은 다른 정보가 있는지 여부의 정보를 포함할 수 있고, (적용 가능하다면) 다른 정보를 또한 포함할 수 있다.
오디오 디코더(200)는 예를 들어, 현재 구성 정보(예를 들어, 이전 프레임의 디코딩에 사용되며 이전 프레임의 또는 선행 프레임의 구성 구조로부터 추출된 구성 정보)를 저장할 수 있는 메모리(240)를 포함할 수 있다. 오디오 디코더(200)는 또한, 디코딩될 오디오 프레임과 연관된 구성 정보를 메모리(240)에 저장되는 현재 구성 정보와 비교하도록 구성되는 비교기 또는 비교(250)를 포함한다. 예를 들어, 비교기 또는 비교(250)는 디코딩될 오디오 프레임의 구성 구조(222c)의 구성 정보를 스트림 식별자까지의 그리고 스트림 식별자를 포함하는, 메모리에 저장된 현재 구성 정보와 비교하도록 구성될 수 있다. 다시 말해서, 스트림 식별자까지의 그리고 스트림 식별자를 포함하는 구성 구조(222c)의 임의의 정보 항목들은 메모리(240)로부터의 현재 구성 정보와 비교되어, 프레임(222) 내의 (스트림 식별자까지의 그리고 스트림 식별자를 포함하는) 구성 정보가 선행 오디오 프레임들 중 하나로부터 추출된 현재 구성 정보와 동일한지 여부를 결정한다. 이 비교에서는, 구성 구조(222c)가 실제로 구성 확장 구조(226) 및 스트림 식별자(230)를 포함하는지 여부가 자연스럽게 체크될 것이다. 구성 확장 구조(226)가 존재하지 않는다면, 이것은 비교에서 당연히 고려될 수 없다. 또한, (예를 들어, 플래그(228)가 프레임(222)에 스트림 식별자가 포함되지 않음을 나타내기 때문에) 스트림 식별자(230)가 존재하지 않는다면, 이는 당연히 비교에서 평가되지 않을 것이다. 또한, 구성 구조(222c)에서 스트림 식별자(230) 뒤에 있는 임의의 구성 정보는, 그러한 구성 정보가 중요도가 낮고, 구성 구조(222c)에서 스트림 식별자(230) 뒤에 있는 그러한 구성 정보의 변경이 서로 다른 스트림들 간의 스위칭을 시그널링하는 것이 아니라 심지어 단일 스트림 내에서 발생할 수 있다고 가정되기 때문에 통상적으로 무시될 것이다.
결론적으로, 비교(250)는 통상적으로, 디코딩될 오디오 프레임의 스트림 식별자까지의 그리고 스트림 식별자를 포함하는(그러나 바람직하게는, 구성 확장 구조에서 스트림 식별자 뒤에 배열되는 구성을 생략하는) 구성 정보를 (이전에 디코딩된 오디오 프레임으로부터 얻어진) 현재 구성 정보와 비교한다. 이에 따라, 비교(250)는 비교시 확인된 구성 정보에 차이가 있다면 새로운 스트림(또는 서브스트림)을 검출한다. 이에 따라, 비교는 제1 스트림(또는 서브스트림)으로부터 제2 스트림(또는 서브스트림)으로의 전환을 제어하는 데 사용된다.
예를 들어, 그러한 전환을 수행하는 것은 제1 스트림의 마지막 프레임의 디코딩을 플러시(flush)하는 것, 재구성, 처리 체인의 상태를 원하는 상태로 초기화하는 것, 그리고 예를 들어, 제1 스트림의 마지막 프레임과 제2 스트림의 첫 번째 프레임의 시간 도메인 표현 사이의 크로스 페이딩의 실행을 포함할 수 있다.
오디오 디코더(200)는 또한 (현재 구성 정보에 의해 기술될 수 있는) 제1 구성을 사용하여 제1 스트림의(또는 제1 시퀀스의 프레임들 중) 프레임들을 디코딩하도록 구성될 수 있는 디코더 코어(216)를 포함한다. 더욱이, 디코더 코어(216)는 제2 구성을 사용하여(예를 들어, 디코딩될 오디오 프레임의 구성 정보(222c)에 의해 기술되는 새로운 구성을 사용하여) 제2 스트림 또는 제2 시퀀스의 프레임들을 디코딩하도록 구성될 수 있다. 예를 들어, 디코더 코어의 재초기화는 비교(250)가 디코딩될 오디오 프레임(222)의 구성 정보(222c)의 중요한 부분과 메모리(240) 내의 현재 구성 정보 사이의 차이를 확인할 때 트리거될 수 있다.
예를 들어, 디코더의 재초기화는 제1 스트림의 마지막 프레임과 제2 스트림의 첫 번째 프레임의 디코딩 사이에 사용될 수 있다. 대안으로, 예를 들어 디코더가 (적어도 부분적으로) 소프트웨어로 구현된다면, 디코더의 "새로운 인스턴스"가 사용될 수 있다. 더욱이, 제1 스트림의 디코딩에서 제2 스트림의 디코딩으로 스위칭("전환")할 때, 디코더 코어의 처리 체인의 상태는 어떤 부가 정보를 사용하여 원하는 상태가 될 수 있다. 예를 들어, 산술 디코딩의 콘텍스트 상태가 원하는 상태가 될 수 있거나 시간 이산 필터의 내용이 원하는 상태가 될 수 있다. 이는 "오디오 프리롤"(APR: audio pre-roll)로도 또한 표기되는 전용 정보를 사용하여 이루어질 수 있다. 오디오 디코더에 의해 처리된(디코딩된) 제2 스트림의 첫 번째 프레임은 제2 오디오 스트림의 실제 첫 번째 프레임이 아닐 수 있기 때문에, 처리 체인의 상태를 원하는 상태가 되게 하는 것이 중요하다. 그보다는, 오디오 디코더에 의해 처리된 제2 오디오 스트림의 첫 번째 프레임은, 오디오 스트림 제공기가 제1 오디오 스트림으로부터의 프레임들의 제공에서 제2 오디오 스트림으로부터의 프레임들의 제공으로 스위칭할 때 제2 오디오 스트림 동안의 어떤 프레임일 수 있다. 따라서 오디오 디코더에 의해 처리되는 "제2 오디오 스트림의 첫 번째 프레임"은 (전환 이후에 오디오 디코더에 의해 처리되는 제2 오디오 스트림의 제1 오디오 프레임인 디코딩될 오디오 프레임에 선행하는) 제2 오디오 스트림의 선행 프레임들의 디코딩에 의해 정상적으로 야기될 디코딩 체인의 상태들의 특정 설정에 의존할 수 있다. 따라서 제1 오디오 스트림의 오디오 프레임들의 디코딩에서 제2 오디오 스트림의 오디오 프레임들의 디코딩으로 스위칭할 때, 오디오 디코딩의 상태들의 적절한 설정을 정의하는 "오디오 프리롤" 정보를 사용함으로써 제1 오디오 스트림의 선행 프레임들의 디코딩에 의해 정상적으로 야기될 오디오 디코더의 상태들의 누락된 설정이 이제 이루어진다.
참조 번호(270)에서 확인될 수 있는 바와 같이, 제1 오디오 스트림의 마지막 프레임의 디코딩은 ("유효 부분"으로도 또한 표기된) 디코딩된 부분(272)을 제공한다. 선택적으로, 제1 오디오 스트림의 마지막 프레임의 디코딩은 훨씬 더 긴 디코딩된 부분을 제공할 수 있는데, 이는 부분적으로 폐기된다. 더욱이, 제2 오디오 스트림의 첫 번째 프레임을 디코딩할 때, "프리롤 부분"(274)의 제공이 있으며, 이 동안 제2 오디오 스트림의 첫 번째 프레임의 적절한 디코딩을 위해 디코더 상태들이 초기화된다. 더욱이, 디코더 코어(260)는 디코더(200)에 의해 처리되는 제2 오디오 스트림의 첫 번째 프레임의 유효 부분(276)을 또한 제공하며, 제2 오디오 스트림의 첫 번째 프레임의 유효 부분(276)은 제1 스트림의 마지막 프레임의 유효 부분(272)과 시간적으로 중첩한다. 이에 따라, 제1 스트림의 마지막 프레임의 유효 부분(272)의 끝과 제2 스트림의 첫 번째 프레임의 유효 부분의 시작 사이에서 크로스 페이딩이 선택적으로 수행될 수 있다. 이에 따라, 디코딩된 출력 신호(212)가 도출될 수 있으며, (오디오 디코더(200)에 의해 처리된) 제1 스트림의 마지막 프레임과 (오디오 디코더(200)에 의해 처리된) 제2 스트림의 첫 번째 프레임 사이의 인공물 없는 전환이 제공된다.
요약하면, 오디오 디코더(200)는 오디오 인코더 또는 오디오 스트림 제공기가 제1 스트림의 오디오 프레임의 제공으로부터 제2 스트림의 오디오 프레임들의 제공으로 언제 전환할지를 인식할 수 있다. 이를 위해, 오디오 디코더는 (구성 구조로도 또한 표기된) 구성 정보(222c)를 평가하고, 메모리(240)에 저장된 현재 구성 정보와의 비교를 수행한다. 이전에 디코딩된 오디오 프레임들과 비교할 때, 디코딩될 오디오 프레임이 다른 오디오 스트림에 속한다는 것을 인식하면, 디코더 코어의 재초기화가 수행되며, 이는 통상적으로, 일부 "오디오 프리롤" 정보를 평가함으로써 디코더 코어의 처리 체인의 상태를 원하는 상태가 되게 하는 것을 포함한다. 이에 따라, 오디오 디코더는 오디오 인코더 또는 오디오 스트림 제공기가 (스트림 식별자(230)를 포함하는 구성 구조(222c)의 제공을 제외하면) 추가 통지 없이 새로운 스트림(제2 오디오 스트림)으로부터 오디오 프레임을 제공하는 상황들을 적절하게 처리할 수 있다.
여기서 설명되는 오디오 디코더(200)는 개별적으로 또는 조합하여, 본 명세서에서 설명되는 특징들과 기능들 및 세부사항들 중 임의의 것으로 보완될 수 있다는 점이 주목되어야 한다.
3. 도 3에 따른 오디오 인코더
도 3은 본 발명의 일 실시예에 따른 오디오 인코더의 블록 개략도를 도시한다.
오디오 디코더(300)는 입력 오디오 신호(110)를 (예를 들어, 시간 도메인 표현의 형태로) 수신하고 이를 기초로, 인코딩된 오디오 신호 표현(312)을 제공한다. 오디오 인코더(300)는 인코더 코어(320)를 포함하며, 이는 인코딩된 오디오 신호 표현을 획득하기 위해 인코딩 파라미터들을 사용하여 입력 오디오 신호(310)의 중첩 또는 비중첩 프레임들을 인코딩하도록 구성된다. 오디오 인코더(320)는 예를 들어, 시간 도메인-스펙트럼 도메인 변환 및 스펙트럼 도메인 표현의 인코딩을 포함할 수 있다. 이 처리는 예를 들어, 프레임 단위 방식으로 수행될 수 있다.
더욱이, 오디오 인코더는 예를 들어, 구성 구조 제공(330)을 포함할 수 있는데, 이는 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 기술하는 구성 구조(332)를 제공하도록 구성된다. 구성 구조(332)는 예를 들어, 구성 구조(222c)에 대응할 수 있다. 특히, 구성 구조(332)는 인코딩된 오디오 신호 표현(312)을 디코딩할 때 디코더(또는 디코더 코어)에 의해 사용될 설정을 기술하는 (예를 들어, 인코딩된 형태의) 인코딩 파라미터들 또는 동등하게, (예를 들어, 인코딩된 형태의) 디코딩 파라미터들을 포함할 수 있다. 구성 구조(332)의 일례가 아래에서 설명될 것이다. 더욱이, 구성 구조(332)는 스트림 식별자를 포함하며, 이는 스트림 식별자(230)에 대응할 수 있다. 예를 들어, 스트림 식별자는 오디오 스트림(예를 들어, 특정 인코더 설정을 사용하여 연속적인 방식으로 인코딩되는 오디오 콘텐츠의 인접한 부분)을 지정할 수 있다. 예를 들어, 구성 구조 제공(330)에 의해 제공되는 스트림 식별자는 인공물들 없이 그리고 스위칭에 대해 오디오 디코더에 명시적으로 알리지 않고 그 사이에서 스위칭할 가능성이 있어야 하는 모든 그러한 오디오 스트림들이 서로 다른 스트림 식별자들을 전달해야 하도록 선택될 수 있다. 그러나 어떤 경우들에는, 연관된 동일한 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 갖는 그러한 스트림들이 서로 다른 스트림 식별자들을 포함한다면 충분할 수 있다. 즉, 서로 다른 스트림 식별자들은 다른 인코딩 파라미터들 또는 디코딩 파라미터들이 동일한 그러한 스트림들에 대해서만 요구될 수 있다.
이에 따라, 인코더 제어(340)는 예를 들어, 인코더 코어(320)와 구성 구조 제공(330) 모두를 제어할 수 있다. 인코더 제어(340)는 예를 들어, (예를 들어, 오디오 디코더에 의해 사용될 디코딩 파라미터들과 적어도 부분적으로 부합할 수 있는) 인코더 코어(320)에 의해 사용될 인코딩 파라미터들에 관해 결정할 수 있고, 또한 구성 구조(332)에 포함될 인코딩 파라미터들/디코딩 파라미터들에 대한 구성 구조 제공(330)을 알릴 수 있다. 이에 따라, 인코딩된 오디오 표현(312)은 인코딩된 오디오 콘텐츠 그리고 또한 구성 구조(332)를 포함한다. 이에 따라, 오디오 디코더(예를 들어, 오디오 디코더(100) 또는 오디오 디코더(200))는 (모든 인코딩 파라미터들이 구성 구조에 포함된 디코딩 파라미터들에 의해 반영되는 것은 아니더라도) 서로 다른 인코딩 파라미터들을 사용하여 인코딩된 상이한 오디오 스트림이 언제 제공되는지를 즉시 인식할 수 있다.
이러한 문제와 관련하여, 통상적으로 모든 인코딩 파라미터들을 오디오 디코더에 시그널링할 필요는 없다는 점이 주목되어야 한다. 예를 들어, 디코딩 알고리즘에 영향을 주는 그러한 인코딩 파라미터들을 오디오 디코더에 시그널링하는 것만이 필요하다. 오디오 디코더의 설정을 결정하기 위해 오디오 디코더에 전송되는 인코딩 파라미터들은 또한 디코딩 파라미터들로서 표기된다. 다른 한편으로, 일부 중요한 인코딩 파라미터들은 통상적으로 오디오 디코더에 시그널링되는 것이 아니라, 그보다는 인코딩된 오디오 신호 표현에 암시적으로 반영된다. 예를 들어, 원하는 비트 레이트는 중요한 인코딩 파라미터일 수 있으며, 오디오 인코더가 스펙트럼 값들을 얼마나 개략적으로 양자화하는지 그리고/또는 오디오가 얼마나 많은 스펙트럼 값들을 작은 값으로 또는 심지어 0 값으로 양자화하는지를 결정할 수 있다. 그러나 오디오 디코더의 경우, 인코딩 결과를 확인하는 것으로 충분하지만, 비트 레이트를 어떻게 적정하게 낮게 유지할지에 대해 인코더의 특정 전략을 알 필요는 없을 것이다. 또한, 오디오 콘텐츠의 타입에 따라 그리고 또한 실제 원하는 비트 레이트에 따라 충분히 작은 비트 레이트를 달성하기 위해 인코더 측에서 다른 접근 방식들이 있을 수 있다. 이러한 파라미터들은 "인코딩 파라미터들"로 간주될 수 있지만, 이들은 한 세트의 "디코딩 파라미터들"에는 반영되지 않을 것이며(그리고 오디오 프레임들의 인코딩된 표현에 포함되지 않을 것이고), 디코딩 파라미터들(및 인코딩된 오디오 표현으로 통합되는 그러한 인코딩 파라미터들)은 통상적으로 디코더가 어떤 설정을 사용해야 하는지, 즉 인코더에 의해 제공되는 인코딩된 정보를 어떻게 처리해야 하는지만을 기술한다.
이에 따라, 인코더 코어가 (예를 들어, 목표 비트 레이트의 관점에서, 또는 양자화 분해능 또는 수반되는 심리 음향 모델과 같이, 목표 비트 레이트에 영향을 미치는 파라미터들의 관점에서) 서로 다른 인코딩 파라미터들을 사용하더라도, 구성 구조(332)에 포함될 수 있는 디코딩 파라미터들이 동일할 수 있는 경우가 실제로 있을 수도 있다.
즉, 오디오 인코더는 예를 들어, (오디오 콘텐츠의 인코딩된 표현을 처리하고 디코딩하기 위해) 디코더에 의해 사용될 디코딩 파라미터들이 동일할 수 있더라도, 주어진 오디오 콘텐츠를 서로 다른 인코딩 파라미터들을 사용하여 인코딩하는 것이 가능할 수 있다.
이러한 경우들에, 오디오 인코더는 오디오 디코더가 여전히 오디오 콘텐츠의 이러한 서로 다른 인코딩된 표현들을 구별할 수 있도록, 구성 구조(332) 내에 서로 다른 스트림 식별자들을 제공할 수 있다.
게다가, 도 3에 따른 오디오 인코더(300)는 본 명세서에서 설명되는 특징들, 기능들 및 세부사항들 중 임의의 것으로 선택적으로 보완될 수 있다는 점이 주목되어야 한다.
4. 도 4에 따른 오디오 스트림 제공기
도 4는 본 발명의 일 실시예에 따른 오디오 스트림 제공기의 블록 개략도를 도시한다.
오디오 스트림 제공기(400)는 인코딩된 오디오 신호 표현(412)을 제공하도록 구성된다. 오디오 스트림 제공기는 인코딩된 오디오 신호 표현(412)의 일부로서, 인코딩 파라미터들을 사용하여 인코딩된, 오디오 신호의 (시간상) 중첩 또는 비중첩 프레임들의 인코딩된 버전들(422)을 제공하도록 구성된다.
더욱이, 오디오 스트림 제공기는 인코딩된 오디오 신호 표현의 일부로서 인코딩 파라미터들(또는 대등하게, 오디오 디코더에 의해 사용될 디코딩 파라미터들)을 기술하는 구성 구조(424)를 제공하도록 구성되며, 구성 구조(424)는 스트림 식별자를 포함한다.
예를 들어, 오디오 스트림 제공기는 오디오 신호의 중첩 또는 비중첩 프레임들의 인코딩된 버전들의 제공(또는 제공기)을 포함할 수 있다. 더욱이, 오디오 스트림 제공기는 또한 구성 구조(424)를 제공하기 위한 구성 구조 제공 또는 구성 구조 제공기(423)를 포함할 수 있다.
이에 따라, 오디오 스트림 제공기는 오디오 스트림 제공기가 예를 들어, 메모리에 저장하거나 오디오 인코더로부터 수신할 수 있는 서로 다른 오디오 스트림들의 부분들을 인코딩된 오디오 신호 표현(412)의 일부로서 제공할 수 있다. 제1 오디오 스트림의 일부를 제공하고 그 다음에 제2 오디오 스트림의 일부의 제공으로 스위칭할 때, 구성 구조(424)는 제1 오디오 스트림에서 제2 오디오 스트림으로의 스위칭 이후에 제공되는 제2 오디오 스트림의 제1 오디오 프레임과 연관될 수 있다. 구성 구조(424)는 예를 들어, 오디오 인코더로부터 오디오 스트림 제공기에 의해 수신되는 또는 오디오 스트림 제공기의 메모리에 저장되는 각각의 오디오 스트림들의 일부일 수 있다. 따라서 오디오 스트림 제공기는 예를 들어, 제1 오디오 스트림의 오디오 프레임들의 인접 시퀀스를 저장할 수 있고, 또한 제2 오디오 스트림의 오디오 프레임들의 연속 시퀀스를 저장할 수 있다. 제1 오디오 스트림의 프레임들 중 적어도 일부 그리고 제2 오디오 스트림의 프레임들 중 일부는 오디오 디코더에 의해 사용될 디코딩 파라미터들을 기술하는 연관된 각각의 구성 구조들을 가질 수 있다. 구성 구조들은 또한 각각의 스트림 식별자들, 예를 들어 오디오 스트림을 식별하는 정수들을 포함할 수 있다. 예를 들어, 오디오 스트림 제공기는 제1 오디오 프레임에 대한 프레임들(1 내지 n-1)(여기서 1 내지 n-1은 시간 인덱스들일 수 있음)을 그리고 인코딩된 오디오 신호 표현(412)의 일부로서 제2 오디오 스트림의 프레임들(n 내지 n+x)(여기서 n 내지 n+x는 시간 인덱스들일 수 있음)을 제공하도록 구성될 수 있으며, 제2 오디오 스트림의 프레임들(1 내지 n-1)은 특정 오디오 디코더에 또는 특정 그룹의 오디오 디코더들에 전달되는 인코딩된 오디오 신호 표현(4142)의 일부로서 제공되지 않을 수 있다. 제1 오디오 스트림 및 제2 오디오 스트림은 예를 들어, 서로 다른 비트 레이트로 인코딩된 동일한 콘텐츠를 나타낼 수 있다. 이에 따라, 오디오 콘텐츠의 프레임들(1 내지 n-1)은 제1 비트 레이트로 인코딩된 제1 오디오 스트림에 의해, 특정 디바이스 또는 그룹의 디바이스들로 전달되는 인코딩된 오디오 신호 표현(412)으로 표현되고, 오디오 콘텐츠의 프레임들(n 내지 n+x)은 제1 비트 레이트와는 다른 제2 비트 레이트로 인코딩된 제2 오디오 스트림의 프레임들(n 내지 n+x)로 표현된다.
예를 들어, 오디오 스트림 제공기(400) 또는 일부 외부 제어는 인코딩된 오디오 신호 표현(412)에 포함된 제2 오디오 스트림의 첫 번째 프레임(n)이 구성 구조를 포함함을 보장할 수 있다. 즉, 예를 들어, 제1 오디오 스트림으로부터의 오디오 프레임들의 제공과 제2 오디오 스트림으로부터의 오디오 프레임들의 제공 사이의 스위칭이 구성 구조를 포함하는 그리고 바람직하게는 오디오 디코더를 초기화하기 위한 (예를 들어, 오디오 프리롤과 같은) 어떤 정보를 또한 포함하는 "적절한" 프레임에서만 발생한다는 것이 보장될 수 있다.
따라서 예를 들어, 오디오 스트림 제공기는 (예를 들어, 제1 오디오 스트림의 프레임들(1 내지 n-1)을 제공함으로써) 제1 비트 레이트로 인코딩된 오디오 콘텐츠의 어떤 부분들 및 제2 비트 레이트를 사용하여(예를 들어, 제2 오디오 스트림의 오디오 프레임들(n 내지 n+x)을 제공함으로써) 인코딩된 오디오 스트림의 다른 부분들을 제공할 수 있다. 가능하게는, 제1 오디오 스트림의 그리고 제2 오디오 스트림의 구성 구조들은 스트림 식별자가 서로 다르다는 사실을 제외하고는 동일할 것이다. 이것은 구성 구조(424)에 반영된 디코딩 파라미터들이 반드시 제1 오디오 스트림의 인코딩에 그리고 제2 오디오 스트림의 인코딩에 사용된 서로 다른 인코딩 파라미터들(또는 모든 인코딩 파라미터들)을 반영할 필요가 없다는 사실에 기인하여, 이는 실제로 (예를 들어, 디코더 코어를 재초기화함으로써) 오디오 디코더가 "전환"이 이루어져야 하는지 여부를 결정할 수 있게 하는, 구성 구조에 또한 포함되는 (단지) 스트림 식별자가 된다.
일부 실시예들에서, 제1 오디오 스트림으로부터 오디오 프레임들을 제공할지 또는 제2 오디오 스트림으로부터 오디오 프레임들을 제공할지의 결정은 (예를 들어, 이루어진 네트워크 조건들에 대한 지식, 예를 들어 오디오 스트림 제공기와 오디오 디코더 사이의 네트워크의 이용 가능한 네트워크 비트 레이트 또는 네트워크 로드에 기초하여) 오디오 스트림 제공기에 의해 이루어질 수 있다. 그러나 대안으로, 오디오 디코더 또는 중간 디바이스(예를 들어, 네트워크 관리 디바이스)는 어느 오디오 스트림이 사용되어야 하는지를 결정할 수 있다.
그러나 오디오 디코더 또는 적어도 오디오 디코더 코어는 오디오 스트림 제공기에 의해 그리고/또는 스트림의 변경이 발생한 중간 네트워크에 의해 명시적으로 통지되지 않을 수 있다는 점이 주목되어야 한다. 즉, 오디오 디코더는 구성 구조(424)를 제외하고, 프레임들(n 내지 n+x)이 제2 오디오 스트림으로부터의 프레임들인 한편, 프레임들(1 내지 n-1)은 제1 오디오 스트림으로부터의 프레임들임을 오디오 디코더에 시그널링하는 어더한 추가 정보도 수신하지 않는다.
결론적으로, 오디오 스트림 제공기는 오디오 콘텐츠의 인코딩된 표현을 인코딩된 오디오 신호 표현의 형태로 오디오 디코더에 탄력적으로 제공할 수 있다. 오디오 스트림 제공기는 예를 들어, 제1 오디오 스트림으로부터의 인코딩된 프레임들의 제공과 제2 오디오 스트림으로부터의 코딩된 프레임들의 제공 사이에서 탄력적으로 스위칭할 수 있으며, 오디오 스트림들 사이의 스위칭은 인코딩된 오디오 신호 표현(412)의 일부인 구성 구조(424)에 포함된 스트림 식별자의 변경에 의해 시그널링된다.
여기서 오디오 스트림 제공기(400)는 본 명세서에서 설명되는 특징들, 기능들 및 세부사항들 중 임의의 것으로 선택적으로 보완될 수 있다는 점이 주목되어야 한다.
다음에는, 본 발명의 실시예에 따른 오디오 스트림 제공기의 블록 개략도를 도시하는 도 5를 참조하여, 오디오 스트림 제공기(400)의 기능의 일례가 설명될 것이다.
도 5에 도시된 오디오 스트림 제공기는 500으로 표기되며, 도 4에 따른 오디오 스트림 제공기(400)에 대응할 수 있다. 오디오 스트림 제공기(500)는 인코딩된 오디오 신호 표현(412)에 대응할 수 있는 인코딩된 오디오 신호 표현(512)을 제공하도록 구성된다.
특히, 오디오 스트림 제공기는 제1 오디오 스트림으로부터의 프레임들의 제공과 제2 오디오 스트림으로부터의 프레임들의 제공 간에 스위칭하도록 구성될 수 있다. 예를 들어, 오디오 스트림 제공기(500)는 소위 ("IPF(independent-playout-frame)들"로도 또한 표기되는) "독립 재생 프레임들"에서만 제1 오디오 스트림으로부터의 프레임들의 제공과 제2 오디오 스트림으로부터의 프레임들의 제공 간에 스위칭하도록 구성될 수 있다.
오디오 스트림 제공기(500)는 제1 오디오 스트림(520) 및 제2 오디오 스트림(530)을 메모리에 저장했을 수 있거나, 오디오 인코더로부터 수신할 수 있다. 제1 오디오 스트림은 예를 들어, 제1 비트 레이트로 인코딩될 수 있고, (예를 들어, 즉시 재생 프레임들의) 구성 구조들에 제1 스트림 식별자를 포함할 수 있다. 제2 오디오 스트림(530)은 제2 비트 레이트로 인코딩될 수 있고, (예를 들어, 즉시 재생 프레임들의) 구성 구조들에 제2 스트림 식별자를 포함할 수 있다. 그러나 제1 오디오 스트림 및 제2 오디오 스트림은 예를 들어, 동일한 오디오 콘텐츠를 나타낼 수 있다. 그러나 제1 오디오 스트림 및 제2 오디오 스트림은 또한 서로 다른 오디오 콘텐츠를 나타낼 수 있다.
예를 들어, 제1 오디오 스트림(520)은 n1, n2, n3 및 n4로 표시된 프레임들에서 독립 재생 프레임들을 포함할 수 있다. 예를 들어, 독립 재생 프레임들이 아닌 하나 이상의 "정상" 오디오 프레임들은 2개의 인접한 독립 재생 프레임들 사이에 배열될 수 있다. 그러나 일부 상황들에서는 독립 재생 프레임들이 또한 인접할 수 있다.
마찬가지로, 제2 오디오 스트림(530)은 또한 프레임 위치들(n1, n2, n3, n4)에서 독립 재생 프레임들을 포함한다.
2개의 스트림들(520, 530) 내의 독립 재생 프레임들의 위치들은 선택적으로 동일할 수 있지만, 또한 서로 다를 수 있다는 점이 주목되어야 한다. 단순화를 위해, 여기서 독립 재생 프레임들의 프레임 위치들은 두 스트림들에서 모두 동일하다고 가정된다.
그러나 원칙적으로는, 스위칭 후의 첫 번째 프레임이 독립 재생 프레임인 것만이 중요하다. 예를 들어, 제1 오디오 스트림의 오디오 프레임들의 제공으로부터 제2 오디오 스트림으로부터의 오디오 프레임들의 제공으로 스위칭할 때, 제2 오디오 스트림으로부터 제공된 프레임들의 일부의 첫 번째 프레임은 독립 재생 프레임인 것이 오디오 스트림 제공기(500)에 의해 보장되어야 한다.
참조 번호(550)에 도시된 인코딩된 오디오 신호 표현을 참조하여 일례가 설명될 것이다. 확인될 수 있는 바와 같이, 인코딩된 오디오 신호 표현(512)은 그 시작에, 제1 오디오 스트림의 하나 이상의 프레임들을 포함하는 부분(552)을 포함한다. 그러나 오디오 스트림 제공기(500)는 제1 오디오 스트림의 인덱스(n1-1)를 갖는 오디오 프레임의 제공 후에, (내부 결정에 기초하여 또는 외부적으로 수신된 어떤 제어 정보에 기초하여) 제2 오디오 스트림으로 스위칭하기로 결정할 수 있다. 이에 따라, 제2 오디오 스트림의 오디오 프레임들의 부분(554)은 인코딩된 오디오 신호 표현(512) 내에 제공된다. 예를 들어, 제2 오디오 스트림의 n1 내지 n2-1의 프레임 인덱스들을 갖는 프레임들이 인코딩된 오디오 신호 표현(512) 내의 부분(554)에 제공된다. 부분(554)의 첫 번째 프레임은 제2 오디오 스트림(530) 내에서 프레임 인덱스(n1)에 있는 독립 재생 프레임이라는 점이 주목되어야 한다. 프레임 인덱스(n2-1)를 갖는 프레임이 인코딩된 오디오 신호 표현(512) 내에 제공된 경우, 오디오 스트림 제공기는 다시 제1 오디오 스트림(520)으로부터의 오디오 프레임들의 제공으로 돌아가기로 결정할 수 있다. 이에 따라, (제2 오디오 스트림(530)에 기초하는) 프레임 인덱스(n2-1)를 갖는 오디오 프레임 뒤에(또는 바로 뒤에), 제1 오디오 스트림(520)으로부터 얻은 프레임 인덱스(n2)를 가진 프레임이 인코딩된 오디오 신호 표현 내에 제공될 수 있다. 인덱스(n2)를 가진 프레임이 또한 독립 재생 프레임이라는 점이 주목되어야 한다. 이에 따라, 인덱스(n2)를 갖는 프레임에서 시작하여 프레임 인덱스(n4-1)에서 끝나는 제1 오디오 스트림으로부터의 부분이 얻어진다.
결론적으로, 인코딩된 오디오 신호 표현(512)은 하나 이상의 프레임들의 부분들의 연결이며, 프레임들의 어떤 부분들은 제1 오디오 스트림(520)으로부터 얻어지고, 프레임들의 어떤 부분들은 제2 오디오 스트림(530)으로부터 얻어진다. 각각의 부분의 첫 번째 프레임은 바람직하게는, 오디오 스트림 제공기의 동작에 의해 바람직하게 보장되는 독립 재생 프레임이다.
이러한 독립 재생 프레임은 바람직하게는 스트림 식별자를 갖는 구성 구조를 포함하며, 여기서 스트림 식별자는 예를 들어 구성 확장 구조에 포함될 수 있다. 예를 들어, 제1 스트림 및 제2 스트림의 구성 정보는 스트림 식별자를 제외하고는(그리고 가능하게는 구성 확장 구조 내에서 스트림 식별자 다음에 포함되는 구성 정보를 제외하고는) 동일할 수 있다.
예를 들어, 독립 재생 프레임들은 오디오 디코더(200)에 관해 앞서 설명한 프레임(220)에 대응할 수 있다.
또 결론적으로, 오디오 스트림 제공기(500)는 복수의 오디오 스트림들(예를 들어, 제1 오디오 스트림(520) 및 제2 오디오 스트림(530), 그리고 선택적으로 추가 오디오 스트림들)에 액세스하는 것이 가능할 수 있고, (예를 들어, 통신 네트워크를 통해) 오디오 디코더로 전달되는 인코딩된 오디오 신호 표현(512)에 포함시키기 위해 이러한 2개 이상의 오디오 스트림들로부터 프레임들의 부분들을 선택할 수 있다. 인코딩된 오디오 신호 표현(512)에 포함될 프레임들의 부분들을 선택할 때, 오디오 스트림 제공기는 각각의 부분의 첫 번째 프레임이 상기 오디오 스트림의 어떠한 이전 프레임들도 디코딩하지 않고 (인공물 없는) 렌더링을 위한 충분한 정보를 포함하는 독립 재생 프레임임을 보장할 수 있다. 더욱이, 오디오 스트림 제공기는 서로 다른 스트림들로부터의 오디오 프레임들의 부분들 사이의 스위칭이 구성 구조의 관련 부분 내의 차이로부터 인코딩된 오디오 신호 표현(512)을 수신하는 오디오 디코더에 대해 인식 가능한 방식으로, 인코딩된 오디오 신호 표현을 제공한다. 일부 전환들의 경우, 구성 구조들은 디코더 구성 파라미터들에 대해서는 서로 다를 수 있지만, 하나 이상의 다른 전환들에 대해서는, 구성 구조들이 스트림 식별자만 서로 다를 수 있는 한편, 다른 디코딩 구성 파라미터들은 동일할 수 있다.
결과적으로, 오디오 디코더들은 서로 다른 오디오 스트림들 간의 스위칭을 인식하고 재초기화("전환")을 이것이 적절할 때마다 수행할 수 있다.
5. 도 6에 따른 오디오 프레임
도 6은 랜덤 액세스를 허용하며 구성 확장 부분에 스트림 식별자를 갖는 구성 부분을 포함하는 오디오 프레임의 표현을 도시한다.
예를 들어, 도 6은 도 2를 참조하여 설명한 오디오 프레임(222)의 역할을 인계할 수 있는 오디오 프레임의 일례를 도시한다. 예를 들어, 오디오 프레임은 "USAC 프레임"일 수 있다. 도 6의 오디오 프레임은 "스트림 액세스 포인트" 또는 "중간 재생 프레임"으로 간주될 수 있다.
프레임은 예를 들어, 이용 가능한 개정안들을 포함하여 통합 음성 및 오디오 코딩 표준의 신택스 관례들 따를 수 있지만, 다른 또는 더 새로운 오디오 표준들의 비트 스트림 신택스에도 또한 적용될 수 있다.
예를 들어, USAC 프레임(600)은 USAC 독립 플래그(610)를 포함할 수 있다. 또한, USAC 프레임은 "USAC ExtElement"로 표기된 확장 엘리먼트를 포함할 수 있다. 확장 엘리먼트(620)는 구성 정보 및 프리롤 데이터를 갖는 확장 엘리먼트일 수 있다.
선택적으로, 추가 데이터의 존재를 나타내는 "USAC ExtElementPresent" 플래그가 있을 수 있다. 예를 들어, 이 플래그는 IPF(예컨대, 스트림 액세스 포인트)의 경우에 1이다. 그러나 이 플래그는 선택적인 것으로 간주될 수 있다.
더욱이, 선택적으로는, 확장 엘리먼트의 디폴트 길이가 사용되어야 하는지 여부 또는 확장 엘리먼트의 길이가 인코딩되는지 여부를 인코딩하는 데 사용될 수 있는 플래그 "USAC ExtElementUseDefaultLength"가 있을 수 있다. 예를 들어, IPF의 경우에는 이 플래그가 0 값을 갖는 것이 바람직하다(그러나 필수는 아님).
더욱이, "USACExtElementSegmentData"로도 또한 표기되는 확장 엘리먼트 세그먼트 데이터가 있다. 이러한 확장 엘리먼트 세그먼트 데이터는 USAC 표준의 개정안에서 "AudioPreRoll()"로도 또한 표기된 오디오 프리롤 정보를 포함한다. 오디오 프리롤은 선택적으로 구성 길이 정보 "configLen" 및 구성 정보 "Config()"를 포함하며, 구성 정보는 "UsacConfig()"로도 또한 표기되는 "USAC 구성 정보"와 동일할 수 있다. 바람직하게는, 그러나 필수적이지는 않게, "configLen"은 구성 정보가 존재한다면 0보다 더 큰 값을 취해야 한다. 예를 들어, 0 값의 "config Len"은 구성 정보가 존재하지 않음을 나타낼 수 있다. 구성 정보는 샘플링 주파수에 관한 정보 및 SBR 프레임 길이에 관한 정보 그리고 채널 구성 및 다른(선택적인) 디코더 구성 항목들의 수와 같은 어떤 기본 구성 정보를 포함할 수 있다. 다른 디코더 구성 항목들은 예를 들어, USAC 표준에서 "UsacDecoderConfig()" 신택스 엘리먼트의 정의에 기술된 구성 항목들 중 하나 이상 또는 심지어 전부를 포함할 수 있다.
더욱이, 구성 정보는 하위 데이터 구조로서 구성 확장 구조를 포함한다. 구성 확장 구조는 예를 들어, 신택스 엘리먼트 "UsacConfigExtension()"의 신택스를 따를 수 있다. 예를 들어, 구성 확장 구조는 구성 확장들의 수 "numConfigExtensions"에 관한 정보를 포함할 수 있다. 통상적으로 본 발명에 따른 실시예들의 경우인 타입 ID_Config_Ext_Stream_ID의 구성 확장이 있다면, 스트림 식별자는 비트 스트림 신택스 엘리먼트 "streamID()"에 의해 표현되고, 이는 예를 들어, 16 비트 값으로 표현될 수 있다.
결론적으로, 확장 엘리먼트 내의 USAC 프레임에 포함된 구성 구조는 디코더 파라미터들을 설정하기 위한 어떤 구성 정보를 포함하고, 예를 들어 16 비트의 정수로 표현될 수 있는 스트림 식별자를 구성 확장으로서 추가로 포함한다.
오디오 프리롤 정보는 크로스 페이드를 적용할지 여부를 나타내는 플래그 "applyCrossfade"(예를 들어, 0 값은 크로스 페이드를 적용하지 않는 것을 나타낼 수 있음)와 같은 추가 정보, 프리롤 프레임들의 수에 관한 정보 및 "auLen" 및 "AccessUnit()"으로 표기될 수 있는 프리롤 프레임들에 관련된 정보를 선택적으로 포함한다.
USAC 프레임은 추가 확장 엘리먼트들을 선택적으로 더 포함하며, 통상적으로 단일 채널 엘리먼트, 채널 쌍 엘리먼트 또는 저주파 효과 엘리먼트 중 하나 이상을 포함한다.
결론적으로, USAC 프레임(예를 들어, USAC 프레임(222) 또는 즉석 재생 프레임(IPF)들 중 하나의 IPF)은 예를 들어, 확장 신택스 엘리먼트를 포함할 수 있으며, 상기 확장 신택스 엘리먼트는 구성 구조(예를 들어, 222c), 및 예를 들어 처리 체인의 상태를 원하는 상태가 되게 하는 데 사용될 수 있고, 예를 들어 정보(222d)에 대응할 수 있는 하나 이상의 프리롤 프레임들에 관한 정보를 포함한다. 더욱이, USAC 프레임은 또한 단일 채널 엘리먼트, 채널 쌍 엘리먼트 또는 저주파 효과 엘리먼트와 같은 인코딩된 오디오 정보를 포함한다. 따라서 오디오 디코더가 스트림 식별자 "streamId()"에 기초하여 오디오 스트림의 변화를 인식하는 것이 가능하다. 또한, 디코딩 파라미터들은 구성 구조에 포함된 구성 정보를 기초로 설정될 수 있으므로, 그리고 오디오 디코딩의 적절한 상태는 프리롤 프레임 정보에 기초하여 설정될 수 있으므로, 오디오 디코더가 USAC 프레임(600)의 인공물 없는 디코딩을 수행하는 것이 가능하다. 따라서 기술된 USAC 프레임은 서로 다른 오디오 스트림으로부터의 프레임들의 디코딩 사이에서 스위칭하는 것을 허용하고, 또한 추가 제어 정보 없이 오디오 디코더에 의한 스위칭의 검출을 허용한다.
본 명세서에서 설명되는 USAC 프레임(600)은 오디오 프레임(222)에 대응할 수 있거나 인코딩된 오디오 신호 표현(312)에 포함된 제2 오디오 스트림의 첫 번째 프레임에 대응할 수 있거나 인코딩된 신호 표현(412)에 포함된 제2 오디오 스트림의 첫 번째 프레임에 대응할 수 있거나 도 5에 도시된 바와 같은 즉시 재생 프레임(IPF)에 대응할 수 있다.
6. 도 7에 따른 예시적인 오디오 스트림
도 7은 본 명세서에서 설명되는 오디오 인코더들 중 하나에 의해 제공될 수 있는 그리고 본 명세서에서 설명되는 오디오 디코더들 중 하나에 의해 디코딩될 수 있는 예시적인 오디오 스트림의 표현을 도시한다. 도 7의 오디오 스트림은 또한, 본 명세서에서 설명되는 오디오 스트림 제공기에 의해 제공될 수 있다.
오디오 스트림(700)은 예를 들어, 제1 정보 블록으로서 디코더 구성 정보를 포함한다. 디코더 구성 정보는 예를 들어, USAC 표준에 정의된 비트 스트림 엘리먼트 "UsacConfig()"를 포함할 수 있다. 디코더 구성 정보는 예를 들어, 1의 스트림 식별자를 나타낼 수 있고, 스트림의 시작에 놓이는 스트림 액세스 포인트로 간주될 수 있다.
오디오 스트림은 또한 예를 들어, 어떠한 프리롤 데이터도 포함하지 않을 수 있고 어떠한 스트림 식별자 정보도 포함하지 않을 수 있는 오디오 프레임 데이터 정보 유닛(720)을 포함한다. 예를 들어, 정보 유닛(720)은 USAC 프레임일 수 있으며, 예를 들어 USAC 표준에 정의된 비트 스트림 신택스 엘리먼트 "UsacFrame()"에 대응할 수 있다.
정보 유닛들(710, 720)은 예를 들어, 둘 다 제1 오디오 스트림에 속할 수 있다.
오디오 스트림(700)은 또한 정보 유닛(730)을 포함할 수 있으며, 이는 예를 들어, 오디오 스트림(700)에 포함되는 제2 스트림의 첫 번째 프레임을 나타낼 수 있다. 정보 유닛(730)은 예를 들어, 오디오 프레임 데이터, 프리롤 데이터 및 스트림 식별자 정보를 포함할 수 있다. 스트림 식별자 정보는 예를 들어, 2개의 스트림 식별자들 중 정보 유닛(710)에 포함된 스트림 식별자와는 다른 스트림 식별자를 나타낼 수 있다.
정보 유닛(730)은 예를 들어, 스트림 액세스 포인트로 간주될 수 있다.
예를 들어, 정보 유닛(730)은 USAC 표준에 정의된 비트 스트림 엘리먼트 "UsacFrame()"의 신택스에 따를 수 있다. 그러나 정보 유닛(730)은 "id_ext_ele_audiopreroll" 타입의 확장 엘리먼트를 포함할 수 있다. 이 확장 엘리먼트는 예를 들어, 비트 스트림 신택스 "UsacConfigExtension"에 따른 구성 확장 구조를 갖는, 예를 들어 비트 스트림 신택스 "UsacConfig"에 따른 구성 구조를 포함할 수 있다. 구성 확장 구조는 예를 들어, 스트림 식별자를 인코딩하는 "ID_CONFIG_EXT-_STREAM_ID" 타입의 확장 엘리먼트를 포함할 수 있다. 따라서 정보 항목 또는 정보 유닛(730)은 예를 들어, 앞서 설명한 USAC 프레임(600)의 정보를 포함할 수 있다.
따라서 정보 유닛(730)은 제2 스트림의 오디오 프레임을 나타낼 수 있고, 오디오 프레임을 적절히 디코딩하도록 오디오 디코더를 구성하기 위한 완전한 구성 정보를 제공할 수 있다. 특히, 구성 정보는 또한 오디오 디코더의 상태들을 설정하기 위한 오디오 프리롤 정보를 포함하고, 구성 정보는 정보 유닛(710, 720)과 비교할 때 정보 유닛(730)이 다른 오디오 스트림과 연관되는지 여부를 오디오 디코더가 인식할 수 있게 하는 스트림 식별자를 포함한다.
오디오 스트림(700)은 또한 정보 유닛(730)에 뒤따르는 정보 유닛(740)을 포함한다. 정보 유닛(740)은 예를 들어, 프리롤 데이터 없이, 구성 데이터 없이 그리고 스트림 식별자 없이 오디오 프레임 데이터만을 포함하는 "정상" 오디오 프레임일 수 있다. 예를 들어, 정보 유닛(740)은 임의의 확장 엘리먼트들을 사용하지 않고 비트 스트림 신택스 "UsacFrame()"을 따를 수 있다.
오디오 스트림(700)은 또한, 예를 들어, 오디오 프레임 데이터 및 프리롤 데이터를 포함할 수 있지만 스트림 식별자는 포함하지 않을 수 있는 정보 유닛(750)을 포함할 수 있다. 따라서 정보 유닛(750)은 스트림 액세스 포인트로서 사용 가능할 수 있지만, 서로 다른 스트림들 간의 스위칭의 검출을 허용하지 않을 수 있다.
예를 들어, 정보 유닛(750)은 확장 엘리먼트 ID_ext_ele_audiopreroll"을 갖는 비트 스트림 신택스 "UsacFrame()"에 따를 수 있다. 그러나 정보 유닛(750)에서, 오디오 프리롤 확장 엘리먼트의 일부인 구성 정보는 스트림 식별자를 포함하지 않는다. 따라서 정보 유닛(750)은 서로 다른 오디오 스트림들 사이의 스위칭 후에 제1 정보 유닛으로서 신뢰성 있게 사용될 수 없다. 다른 한편으로, 정보 유닛(730)은 서로 다른 오디오 스트림들 사이의 스위칭 이후에 제1 정보 유닛으로서 신뢰성 있게 사용될 수 있는데, 이는 그 안에 포함된 스트림 식별자가 서로 다른 스트림들 사이의 스위칭의 검출을 가능하게 하기 때문이고, 정보 유닛이 또한 구성 정보 및 프리롤 정보를 포함하여 디코딩을 위한 전체 정보를 포함하기 때문이다.
결론적으로, 오디오 스트림(700)은 서로 다른 정보 콘텐츠를 갖는 인코딩된 오디오 프레임들 또는 "정보 유닛들"을 포함할 수 있다. 구성 데이터 없이 그리고 프리롤 데이터 없이, 인코딩된 오디오 데이터만을 포함하는 "매우 간단한" 오디오 프레임이 있을 수 있다. 또한, 인코딩된 오디오 정보뿐만 아니라, 스트림 식별자를 포함하는 구성 정보 및 프리롤 정보를 포함하는 오디오 프레임들이 있을 수 있다. 그러한 프레임들은 서로 다른 오디오 스트림들 간의 스위칭의 식별 및 완전히 독립적인 디코딩을 가능하게 한다.
더욱이, 선택적으로는, 부분 정보만을 갖지만, 예를 들어 스트림 식별자 정보가 없기 때문에 서로 다른 스트림들 간의 스위칭의 신뢰성 있는 식별을 허용하지 않는 프레임들이 또한 있을 수 있다.
도 1 및 도 2에 따른 오디오 디코더들은 통상적으로 오디오 스트림(700)을 이용할 수 있고, 도 3 및 도 4에 따른 오디오 인코더들 및 오디오 스트림 제공기들은 통상적으로 도 7에 도시된 바와 같은 오디오 스트림(700)을 (예를 들어, 인코딩된 오디오 신호 표현(312, 314)으로서) 제공할 수 있다.
7. 도 8에 따른 오디오 스트림
도 8은 본 발명의 다른 실시예에 따른 예시적인 오디오 스트림의 표현을 도시한다.
도 8에 따른 오디오 스트림은 그 전체가 800으로 표기된다.
정보 유닛들(810a 내지 810e)은 제1 오디오 스트림에 속한다는 점이 주목되어야 한다. 예를 들어, 정보 유닛(810a)은 디코더 구성을 포함할 수 있으며, 예를 들어 USAC 표준에 정의된 비트 스트림 신택스 "UsacConfig()"를 따를 수 있다. 디코더 구성은 예를 들어, 구성 구조(222c)와 유사할 수 있는 구성 구조를 포함할 수 있다. 예를 들어, 정보 유닛(810)은 스트림 식별자 확장을 포함할 수 있으며, 여기서 스트림 식별자는 예를 들어, 구성 구조의 구성 확장 구조에 포함될 수 있다.
정보 유닛(810b)은 예를 들어, 프리롤 데이터 없이 그리고 스트림 식별자 없이 (예를 들어, 인코딩된 스펙트럼 값들 및 인코딩된 스케일 팩터 정보와 같은) 오디오 프레임 데이터를 포함할 수 있다. 정보 유닛(810d)은 정보 유닛(810b)과 구조가 유사하거나 동일할 수 있고, 또한 프리롤 데이터 없이 그리고 스트림 식별자 없이 오디오 프레임 데이터를 나타낼 수 있다.
더욱이, 오디오 스트림은 부분(810)에 뒤따르며 제1 오디오 스트림과는 다른 제2 오디오 스트림과 연관된 부분(820)을 포함할 수 있다. 부분(820)은 프리롤 데이터를 갖는 오디오 프레임 데이터를 포함하는 정보 유닛(820a)을 포함하며, 프리롤 데이터는 (예를 들어, 구성 구조 내에) 스트림 식별자 확장을 포함한다. 따라서 정보 유닛(820a)은 오디오 프레임을 나타낸다. 오디오 디코더가 스트림 식별자 확장에 기초하여, 이전에 디코딩된 오디오 프레임이 다른 오디오 스트림으로부터 나온 것이라는 것을 확인한다면, 프리롤 데이터는 정보 유닛(820a) 내의 오디오 프레임 데이터를 디코딩하기 전에 오디오 디코더를 적절한 상태로 설정하도록 오디오 디코더에 의해 사용될 수 있다. 따라서 정보 유닛(820a)은 서로 다른 오디오 스트림들 사이의 스위칭 후에 제1 정보 유닛으로 잘 맞는다.
블록(820)은 또한 오디오 프레임 데이터를 포함하지만 프리롤 데이터를 포함하지 않으며 또한 스트림 식별자를 포함하지 않는 하나, 둘 또는 그 이상의 정보 유닛들(820b, 820d)을 포함한다.
데이터 스트림(800)은 또한 제3 오디오 스트림과 연관된 부분(830)을 포함한다. 부분(830)은 프리롤 데이터를 갖는 오디오 프레임 데이터를 포함하고 스트림 식별자 확장을 포함하는 정보 유닛(830a)을 포함한다. 부분(830)은 프리롤 데이터가 없고 스트림 식별자가 없는 오디오 프레임 데이터를 포함하는 정보 유닛(830b)을 더 포함한다. 제3 부분(830)은 또한 프리롤 데이터를 갖지만 스트림 식별자는 없는 오디오 프레임 데이터를 포함하는 정보 유닛(830d)을 포함한다.
따라서 오디오 스트림(800)은 서로 다른 오디오 스트림들로부터 발생하는 후속 부분들을 포함하며, 하나의 스트림으로부터 다른 스트림으로의 각각의 전환시에, 프리롤 데이터를 갖고 스트림 식별자를 갖는 오디오 프레임 데이터를 포함하는 정보 유닛(예를 들어, 인코딩된 오디오 프레임)이 있다. 이에 따라, 인코딩된 오디오 프레임 내에서 오디오 스트림으로부터 다른 오디오 스트림으로의 스위칭마다 이용 가능한 스트림 식별자 정보가 있기 때문에, 오디오 디코더는 스트림 식별자를 (예를 들어, 이전에 획득된 저장된 스트림 식별자와의 비교에 관해) 평가함으로써 상기 전환을 쉽게 인식할 수 있다.
오디오 스트림은 본 명세서에 설명되는 비트 스트림 제공기에 의해 또는 오디오 인코더에 의해 제공될 수 있고, 오디오 스트림(800)은 본 명세서에 설명되는 오디오 디코더에 의해 평가될 수 있다는 점이 주목되어야 한다.
8. 도 9에 따른 디코더 기능
도 9는 본 명세서에서 설명되는 바와 같은 오디오 디코더의 가능한 디코더 기능의 개략적인 표현을 도시한다.
예를 들어, 도 9를 참조하여 설명되는 기능은 도 1에 따른 오디오 인코더(100)에 또는 도 2에 따른 오디오 디코더(200)에 구현될 수 있다. 예를 들어, 도 5에서 설명된 기능은 디코딩을 어떻게 계속할지를 결정하는 데 사용될 수 있다.
그러나 도 9를 참조하여 설명되는 기능은 단지 일례일 뿐이며, 예를 들어 결정의 순서는 전체 기능이 동일하게 유지되는 한 변경될 수 있다는 점이 주목되어야 한다. 또한, 전체 기능이 수정되지 않는다면 결정들을 조합하는 것이 가능하다.
도 9에서 설명된 기능은 이전에 디코딩된 프레임들에 관한 정보에 대한 지식을 가지며 본 명세서에서 설명되는 신택스를 따를 수 있는 새로운 오디오 프레임을 평가하는 것으로 가정된다.
예를 들어, 제1 체크(910)에서, 오디오 디코더는 "랜덤 액세스", 즉 스트림 액세스 포인트에 대한 점프 동작이 있는지 여부를 체크할 수 있다. 프레임들의 "정상" 순서가 의도적으로 변경되는 스트림 액세스 포인트로의 점프가 있다고 인식된다면, 디코더 기능은 디코더를 초기화하기 위해 스트림 액세스 포인트의 구성 데이터를 평가하는 단계(920)로 진행한다. 갑작스러운 스위칭을 피하기 위해 크로스 페이드가 선택적으로 수행될 수 있다. 랜덤 액세스는 제1 프레임으로부터 제2 프레임으로의 "점프"를 의미하며, 여기서 제2 프레임은 이전에 디코딩된 프레임의 프레임 인덱스 바로 뒤에 있지 않은 프레임 인덱스를 갖는다는 점이 주목되어야 한다. 다시 말해서, 랜덤 액세스는 프레임 인덱스(n)를 갖는 프레임으로부터 프레임 인덱스(o)를 갖는 프레임으로의 점프이며, 여기서 o는 n+1과 다르다.
단계(920)에서, 점프가 수행되는데, 여기서 점프 대상은 즉시 재생 프레임이며 디코더를 재초기화하기 위한 충분한 정보를 포함하는 프레임이다.
그러나 체크(910)에서 "랜덤 액세스"가 아니라 그보다는 "연속 재생"이 있다는 것이 확인된다면, 추가 체크(930)가 수행될 수 있다. 다시 말해서, 프레임 인덱스(n)를 갖는 프레임에서부터 프레임 인덱스(n+1)를 갖는 프레임으로 디코딩이 진행된다면 체크(930)가 수행된다.
체크(930)에서는, (예를 들어, 스트림 식별자까지의, 그러나 스트림 식별자를 포함하지 않는) 스트림 식별자를 고려하지 않고 스트림 액세스 포인트(또는 중간 재생 프레임)의 구성 구조에 정의된 (관련) 구성이 현재 구성과 다른지 여부가 체크된다. 스트림 액세스 포인트의 구성 구조에 기술된 (관련) 구성이 현재 구성("예" 경로)과 다르다면, 디코딩은 단계(940)에서 진행될 수 있다. 그러나 단계(930)는 다음 프레임이 구성 구조를 포함하는 스트림 액세스 포인트인 경우에만 자연적으로 실행될 수 있다는 점이 주목되어야 한다. 다음 프레임이 구성 구조를 포함하지 않는다면, 단계(930)는 당연히 실행될 수 없으며 현재 구성과의 차이는 확인될 수 없다.
그러나 단계(930)에서, (스트림 식별자를 고려하지 않고) 다음 프레임의 구성 구조의 구성이 현재 구성과 동일한 것으로 확인된다면, 블록(950)에 도시된 다음 체크가 이루어진다. 단계(950)에서는, 스트림 액세스 포인트가 (예를 들어, 구성 구조 내에) 스트림 식별자를 포함하는지 여부가 결정된다. 예를 들어, 스트림 식별자가 구성 구조에 반드시 포함될 필요는 없지만, 구성 확장 구조가 있다면 그리고 이 구성 확장 구조가 실제로 스트림 식별자인 데이터 구조 엘리먼트를 포함한다면 단지 구성 구조에 포함된다. 비교(950)에서, 스트림 액세스 포인트가 스트림 식별자를 포함한다고 확인된다면(분기 "예"), 다음 프레임(디코딩될 프레임)의 스트림 액세스 포인트에 포함된 스트림 식별자가 현재 (저장된) 스트림 식별자와 비교된다. 다음 프레임(디코딩될 프레임)에 포함된 스트림 식별자가 현재 스트림 식별자와 다르다는 점이 확인된다면(결정(960)의 분기 "예"), 블록(940)으로 점프가 이루어진다. 한편, 다음 프레임의 스트림 식별자가 저장된 스트림 식별자와 동일하다고 확인된다면, 구성 확장 구조에서 스트림 식별자 이후 뒤따르는 추가 구성 정보(예를 들어, 구성 확장들)는 "전환" 또는 초기 초기화를 수행할지 여부의 결정에 고려되지 않는다(단계(960)의 분기 "아니오").
그러나 체크(950)에서, 스트림 액세스 포인트(디코딩될 다음 프레임)가 스트림 식별자를 포함하지 않는다고 확인된다면, 또는 디코딩될 다음 프레임의 스트림 식별자가 저장된 스트림 식별자와 동일하다고 확인된다면, 프로시저는 단계(970)에서 계속된다.
게다가, 단계(940)는 이전 구성을 사용하는 오디오 프레임과 새로운 구성을 사용하여 오디오 프레임 간에 페이딩하는 단계를 포함한다는 점이 주목되어야 한다. 새로운 구성을 사용하는 오디오 프레임의 디코딩을 위해, (새로운 디코더 인스턴스를 초기화하는 것을 포함할 수 있는) 오디오 디코더의 재초기화가 있다. 또한, 이전 디코더 인스턴스는 "플러시"되고, 크로스 페이드가 수행된다.
다른 한편으로, 단계(970)는 디코더를 재초기화하지 않고 다음 프레임을 디코딩하는 단계를 포함하는데, 다음 프레임에 포함될 수 있는 프리롤 정보는 폐기된다(고려되지 않는다).
결론적으로 오디오 디코더가 "스트림 액세스 포인트"로 또한 간주될 수 있는 "중간 재생 프레임"에 도달할 때마다 실행될 수 있는 다양한 가능성들이 있다. 또한, "중간 재생 프레임" 또는 "스트림 액세스 포인트들"이 아닌 프레임들에서는 통상적으로 특정한 처리가 이루어지지 않는데, 이는 그러한 오디오 프레임들에서 이용 가능한 프리롤 정보가 없고 구성 정보가 없으므로 이러한 프레임들이 오디오 디코더의 재초기화를 허용하지 않기 때문이라는 점이 주목되어야 한다.
디코더가 "점프", 즉 정상 프레임 순서와의 편차가 있음을 알고 있을 때, 통상적으로 프리롤 정보 그리고 또한 새로운 구성 구조를 사용하는 오디오 디코더의 재초기화가 (동일한 스트림 내에서 점프하는 경우에도) 당연히 있다.
그러한 "점프"가 없다면, 다른 경우들이 있다:
오디오 디코더가, 구성 식별자까지의 그리고 구성 식별자를 포함하는 디코딩될 다음 스트림의 구성 정보가 저장된 정보와 다르다는 것을 확인한다면, 오디오 디코더의 재초기화가 또한 있을 것이다. 다른 한편으로는, 오디오 디코더가 (존재한다면) 스트림 식별자까지의 그리고 스트림 식별자를 포함하는 디코딩될 다음 프레임의 구성 정보가 이전에 디코딩된 프레임으로부터 획득된 저장된 정보와 동일하다는 것을 확인한다면, 재초기화가 수행되지 않을 것이다. 어떤 경우든, 재초기화를 수행할지 여부를 결정할 때, 구성 구조에서 스트림 식별자 뒤에 배치되는 구성 정보는 오디오 디코더에 의해 무시될 것이다. 또한, 오디오 디코더가 구성 구조 내에 스트림 식별자가 없다는 것을 확인한다면, 저장된 정보와의 비교에서 스트림 식별자를 당연히 고려하지 않을 것이다.
그러나 계산상 효율적인 방식으로 평가를 수행하기 위해, 디코더는 저장된 구성 정보를 갖는 스트림 식별자에 선행하는 구성 정보를 먼저 체크할 수 있고, 그 다음에 구성 구조에 포함된 스트림 식별자가 있는지 여부를 체크한 다음, (구성 구조에 존재한다면) 스트림 식별자와 저장된 스트림 식별자의 비교로 진행할 수 있다. 오디오 디코더가 차이를 확인하자마자, 재초기화를 결정할 수 있다. 다른 한편으로는, 오디오 디코더가 스트림 식별자까지의 그리고 스트림 식별자를 포함하는 구성 정보 간의 불일치를 확인하지 못한다면, 재초기화를 생략하기로 결정할 수 있다.
이에 따라, 재초기화를 야기하지 않아야 하는 사소한 구성 변경들은 오디오 인코더에 의해 구성 확장 구조에서 스트림 식별자 다음에 시그널링될 수 있으며, 오디오 디코더는 이 경우에, (재초기화를 필요로 하지 않는) 약간 변경된 구성만으로 디코딩하는 것으로 진행할 수 있다.
결론적으로, 도 9를 참조하여 설명되는 디코더 기능은 본 명세서에서 설명되는 오디오 디코더들 중 임의의 오디오 디코더에 사용될 수 있지만, 선택적인 것으로 간주되어야 한다.
9. 도 10a, 도 10b, 도 10c 및 도 10d에 따른 비트 스트림 신택스
다음에, 비트 스트림 신택스가 설명될 것이다. 특히, 구성 구조의 신택스가 설명될 것이다. 일례로, 구성 구조(222c) 또는 구성 구조(332) 또는 구성 구조(424) 또는 도 6에 도시된 구성 구조 "Config()" 또는 도 7에 도시된 구성 구조 "UsacConfig()" 또는 도 8에 도시된 구성 구조 "Config"를 대신할 수 있는 구성 구조 "UsacConfig()"의 신택스가 설명될 것이다.
도 10은 구성 구조 "UsacConfig()"의 표현을 도시한다. 확인될 수 있는 바와 같이, 상기 구성 구조는 예를 들어, 샘플링 주파수 인덱스 정보(1020a) 및 선택적으로 샘플링 주파수 정보(1020b)를 포함할 수 있다. (가능하게는 샘플링 주파수 정보(1020b)와 조합하여) 샘플링 주파수 인덱스 정보(1020a)는 예를 들어, 인코더에 의해 사용되는 샘플링 주파수를 기술하고, 따라서 오디오 디코더에 의해 사용될 샘플링 주파수를 또한 기술한다.
더욱이, 구성 구조는 또한 스펙트럼 대역 복제(SBR: spectral band replication)에 대한 프레임 길이 인덱스 정보를 포함할 수 있다. 예를 들어, 인덱스는 예를 들어, USAC 표준에 정의된 바와 같이, 스펙트럼 대역폭 복제를 위한 다수의 파라미터들을 결정할 수 있다.
더욱이, 구성 구조는 또한, 예를 들어 채널 구성을 결정할 수 있는 채널 구성 인덱스(1024a)를 포함할 수 있다. 채널 구성 인덱스 정보는 예를 들어, 다수의 채널들 및 연관된 라우드스피커 매핑을 정의할 수 있다. 예를 들어, 채널 구성 인덱스 정보는 USAC 표준에 정의된 바와 같은 의미를 가질 수 있다. 예를 들어, 채널 구성 인덱스 정보가 0과 같다면, 채널 구성에 관한 세부사항들이 "UsacChannelConfig()" 데이터 구조(1024b)에 포함될 수 있다.
더욱이, 구성 구조는 예를 들어, 오디오 프레임 데이터 구조에 존재하는 정보 엘리먼트들을 기술(또는 열거)할 수 있는 디코더 구성 정보(1026a)를 포함할 수 있다. 예를 들어, 디코더 구성 정보는 USAC 표준에 기술된 엘리먼트들 중 하나 이상을 포함할 수 있다.
더욱이, 구성 구조(1010)는 또한, 구성 확장 구조(예를 들어, 구성 확장 구조(226))의 존재를 나타내는 (예를 들어, "UsacConfigExtensionPresent"로 명명된) 플래그를 포함한다. 구성 구조(1010)는 또한 예를 들어, "UsacConfigExtension()"(1028a)으로 표기되는 구성 확장 구조를 포함한다. 구성 확장 구조는 바람직하게는 구성 구조(1010)의 일부이고, 예를 들어 구성 구조(1010)의 다른 구성 항목들을 나타내는 비트들 바로 뒤에 오는 비트 시퀀스로 표현될 수 있다. 구성 확장 구조는 예를 들어, 아래에서 설명되는 바와 같이, 스트림 식별자 정보를 전달할 수 있다.
다음으로, 구성 확장 구조의 가능한 신택스가 도 10b를 참조하여 설명될 것이며, 여기서 구성 확장 구조는 전체적으로 1030으로 표기되고 구성 확장 구조(1028a)에 대응한다.
("UsacConfigExtension()"로도 또한 표기된) 구성 확장 구조는 예를 들어, 신택스 엘리먼트(1040a)에서 다수의 구성 확장들을 인코딩할 수 있다. 각각의 구성 확장 항목에 대한 구성 확장 타입 정보(1042a) 및 구성 확장 길이 정보(1044a)가 있기 때문에, 서로 다른 구성 확장 정보 항목들의 순서가 임의로 선택될 수 있다는 점이 주목되어야 한다. 이에 따라, 구성 확장 구조(1030)는 가변 순서로 복수의 구성 확장 항목들(또는 구성 확장 정보 항목들)을 전달할 수 있으며, 여기서 오디오 인코더는 어떤 구성 확장 항목이 먼저 인코딩되는지 그리고 어떤 구성 확장 항목이 나중에 인코딩되는지를 결정할 수 있다. 예를 들어, 각각의 구성 정보 항목에 대해, 먼저 구성 확장 타입 식별자(1042a), 그 다음에 구성 확장 길이 정보(1044)가 있을 수 있으며, 그 다음에 각각의 구성 확장 정보 항목의 "페이로드"가 있을 수 있다. 각각의 구성 확장 정보 항목의 페이로드의 인코딩은 예를 들면, 구성 확장 타입 정보에 의해 표시되는 구성 확장 정보 항목의 타입에 따라 달라질 수 있으며, 각각의 구성 확장 정보 항목의 페이로드의 길이는 각각의 구성 확장 길이 정보(1044a)의 값에 의해 결정될 수 있다. 예를 들어, 구성 확장 정보 항목이 채움(fill) 정보인 경우, 하나 이상의 채움 바이트가 존재할 수 있다. 다른 한편으로, 구성 확장 정보 항목이 구성 확장 음량 정보라면, (예를 들어, "loudnessInfoSet()"로 표기된) 음량에 관한 정보를 포함하는 데이터 구조가 있을 수 있다.
게다가, 구성 확장 정보 항목이 스트림 식별자라면, "streamID()"로 표기되는 스트림 식별자의 번호 표현이 있을 수 있다. 서로 다른 타입들의 구성 확장 정보 항목들에 대한 신택스 예들이 참조 번호들(1046a, 1048a, 1050a)로 도시된다.
결론적으로, 구성 확장 구조의 신택스는 서로 다른 구성 정보 항목들의 순서가 변경될 수 있게 한다. 예를 들어, 스트림 식별자 구성 확장 정보 항목은 오디오 인코더에 의해 다른 구성 확장 정보 항목들 전에 또는 뒤에 배치될 수 있다. 이에 따라, 오디오 인코더는 구성 확장 구조 내의 스트림 식별자 구성 확장 정보 항목의 배치에 의해, 현재 구성 구조에 의해 표시된 구성과 오디오 디코더에 의해 이전에 획득된 구성 정보 간의 비교에서 구성 확장 구조의 어떤 다른 정보 항목들이 고려되어야 하는지를 제어할 수 있다. 통상적으로, 구성 확장 구조에 선행하는 구성 정보 항목들 및 스트림 식별자 정보까지의 그리고 스트림 식별자 정보를 포함하는 임의의 구성 확장 정보 항목들은 이러한 비교에서 고려될 것이지만, 스트림 식별자 구성 확장 정보 항목 뒤에 비트 스트림으로 인코딩되는 임의의 구성 확장 정보 항목들은 비교시 무시될 것이다.
따라서 도 10a 및 도 10b와 관련하여 설명된 구성 구조는 본 발명에 따른 개념에 매우 적합하다.
도 10은 "StreamId()"로(또는 "streamId()"로) 또한 표기되는 스트림 식별자 (구성 확장) 정보 항목의 신택스를 도시한다. 확인될 수 있는 바와 같이, 스트림 식별자는 16 비트 이진수 표현으로 표현될 수 있다. 이에 따라, 65000개가 넘는 서로 다른 값들이 스트림 식별자로서 인코딩될 수 있는데, 이는 통상적으로 서로 다른 오디오 스트림들 간의 임의의 전환들을 인식하기에 충분하다.
도 10d는 서로 다른 구성 확장 정보 항목들에 대한 타입 식별자들의 할당의 일례를 도시한다. 예를 들어, "스트림 식별자" 타입의 구성 확장 정보 항목은 구성 확장 타입 정보(1042a)의 7 값으로 표현될 수 있다. 다른 타입들의 구성 확장 정보 항목들은 예를 들어, 구성 확장 타입 식별자(1042a)의 다른 값들로 표현될 수 있다.
결론적으로, 도 10a 내지 도 10d는 스트림 식별자 정보를 추출하기 위해 오디오 디코더에 의해 사용될 수 있는 스트림 식별자 정보를 인코딩하기 위해 오디오 인코더에 의해 사용될 수 있는 구성 구조의 가능한 신택스(또는 신택스 확장)를 기술한다.
그러나 여기서 설명되는 구성 구조는 단지 일례로 간주되어야 하며 넓은 범위에 걸쳐 수정될 수 있다는 점이 주목되어야 한다. 예를 들어, 샘플링 주파수 인덱스 정보 및/또는 샘플링 주파수 정보 및/또는 스펙트럼 대역폭 복제 프레임 길이 인덱스 정보 및/또는 채널 구성 인덱스 정보는 상이한 방식으로 인코딩될 수 있다. 또한, 선택적으로, 위에서 언급한 정보 항목들 중 하나 이상이 누락될 수 있다. 더욱이, UsacDecoderConfig 정보 항목이 또한 생략될 수 있다.
더욱이, 구성 확장들의 수, 구성 확장 타입들 및 구성 확장 길이의 인코딩이 수정될 수 있다. 또한, 다른 구성 확장 정보 항목들은 또한 선택적인 것으로 간주되어야 하며, 가능하게는 또한 다른 방식으로 인코딩될 수 있다.
게다가, 스트림 식별자는 또한 더 많은 또는 더 적은 비트들로 인코딩될 수 있으며, 서로 다른 타입들의 번호 표현이 사용될 수 있다. 게다가, 서로 다른 구성 확장 타입들에 대한 식별자 번호들의 할당은 바람직한 예로 간주되어야 하지만, 본질적인 특징으로 간주되지 않아야 한다.
9. 결론들
다음에, 개별적으로 또는 본 명세서에서 설명되는 실시예들과 조합하여 취해질 때 사용될 수 있는 본 발명에 따른 일부 양상들이 설명될 것이다.
특히, 본 발명에 따른 솔루션이 본 명세서에서 설명될 것이다.
본 발명에 따른 실시예들의 양상들은 첨부된 청구항들에 의해 기술된다는 점이 주목되어야 한다.
그러나 청구항들에 의해 정의된 실시예들은 개별적으로 또는 조합하여, 본 명세서에서 설명되는 특징들 중 임의의 특징으로 선택적으로 보완될 수 있다. 또한, "()" 또는 "[]" 괄호들의 임의의 정의들은 특히, 청구항들에서 사용될 때 선택적인 것으로 간주되어야 한다는 점이 주목되어야 한다.
그럼에도, 이하에서 설명되는 본 발명의 특징들은 청구항들의 특징들과 별도로 또한 사용될 수 있다는 점이 주목되어야 한다.
게다가, 청구항들에서 설명되고 다음에 설명되는 특징들 및 기능들은 본 발명의 양상들의 기반이 되는 문제들, 실시예들에 대한 가능한 사용 시나리오들 및 종래의 접근 방식들을 기술하는 섹션에서 설명되는 특징들 및 기능들과 선택적으로 조합될 수 있다. 특히, 본 명세서에서 설명되는 특징들 및 기능들은 (예를 들어, 본 출원의 우선권 출원의 출원일에 표준화된 또는 본 발명의 출원일에 표준화된, 그러나 또한 추가 향후의 수정들을 ― 선택적으로 ― 포함하는) 개정안 3, 하위 절 "비트 레이트 적응"을 포함하는 ISO/IEC 23003-3: 2012에 따른 USAC 오디오 디코더에서 사용될 수 있다.
본 발명의 일 양상에 따르면, 간단한 범용 16 비트 식별자 비트 필드를 포함하는 연관된 비트 스트림 구조와 함께 usacConfigExtType==ID_CONFIG_EXT_STREAM_ID를 갖는 USAC에 대한 새로운 구성 확장을 (예를 들어, USAC 비트 스트림 신택스에) 도입하는 것이 제안된다. 이 식별자는 한 세트의 스트림들 내에서 이들 간의 끊김 없는 스위칭이 의도된 모든 스트림들에 대한 임의의 2개의 구성 구조들 간에 서로 다를 것이다(예를 들어, 오디오 인코더에 의해 또는 오디오 스트림 제공기에 의해 다르게 선택될 수 있다). 이러한 한 세트의 스트림들에 대한 일례는 MPEG-DASH 전달 사용 사례에서는 소위 "적응 세트"이다.
제안된 고유 스트림 ID 구성 확장은 예를 들어, 현재(또는 현재 구성)를 (예를 들어, 오디오 인코더 측의 또는 오디오 디코더 측의) 새로운 구성 구조와 비교하는 시점에, 새로운 구성(그리고 이에 따라 새로운 스트림)이 정확히 식별되고 디코더가 예상 및 의도한 대로 작동할 것을, 예를 들어 디코더가 적절한 디코더 플러시, 액세스 유닛들의 프리롤 및 (적용 가능하다면) 크로스 페이드의 수행을 이행할 것을 보장할 것이다.
다음은 (본 출원의 출원일에 표준화된 또는 우선권 출원의 출원일에 표준화된, 그리고 선택적으로, 임의의 향후 수정들을 포함하는 MPEG-D USAC(ISO/IEC 23003-3+AMD.1+AMD-2+AMD.3)의) 제안된 명세서 텍스트(수정)이다.
다음에 언급되는 구절들은 개별적으로 또는 USAC 오디오 디코더와 조합하여 또는 다른 프레임 기반 오디오 디코더 내에서 사용될 수 있는 본 발명의 양상들을 설명하였다.
다음의 표 15에 도시된 바와 같은 구성 확장은 오디오 비트 스트림을 제공하기 위해 오디오 인코더에 의해 사용될 수 있고, 오디오 비트 스트림으로부터 정보를 추출하기 위해 오디오 디코더에 의해 사용될 수 있다.
위에서 언급한 USAC 표준에 따라 오디오 인코딩 및 디코딩을 사용하는 경우, 섹션 5.2의 표 15는 표 15의 다음 업데이트된 버전으로 대체되어야 한다:
표 15 ― UsacConfigExtension()의 신택스
또한, USAC 표준에 따른 오디오 인코딩 또는 오디오 디코딩을 고려할 때, USAC 표준의 섹션 5.2의 말미에, 다음과 같은 새로운 표 AMD.01이 추가되어야 한다(인코딩 세부사항들, 비트 수는 선택적임):
표 AMD.01 ― StreamId()의 신택스
그러나 상기 표들에서, 인코딩 세부사항들 및 예를 들어, 비트 수는 선택적인 것으로 간주되어야 한다.
더욱이, USAC 표준에 따른 인코딩 또는 디코딩을 고려할 때, 다음 하위 절 6.1.15가 "6.1.14 UsacConfigExtension()" 뒤에 추가되어야 한다.
"6.1.15 고유 스트림 식별자(스트림 ID)
6.1.15.1 용어들, 정의들 및 의미들
*streamIdentifier 한 세트의 연관된 스트림들 내에서 이들 간에 끊김 없는 스위칭이 의도된 스트림의 구성을 고유하게 식별할 2 바이트의 부호 없는 정수 스트림 식별자(스트림 ID). streamIdentifier는 0에서부터 65535까지의 값들을 취할 수 있다. (인코딩 세부사항들은 선택적임)
ISO/IEC 23009에 정의된 MPEG-DASH 적응 세트의 일부일 때, DASH 적응 세트가 쌍별로 구분될 스트림들의 모든 스트림 ID들.
6.1.15.2 스트림 식별자 설명
ID_CONFIG_EXT_STREAM_ID 타입의 구성 확장들이 스트림 식별자(짧게: "스트림 ID")를 시그널링하기 위한 컨테이너를 제공한다. 스트림 ID 구성 확장은, 구성 구조의 나머지가 (비트가) 동일하더라도 두 스트림들의 오디오 비트 스트림 구성들이 구별될 수 있도록 고유한 정수를 구성 구조에 첨부하는 것을 가능하게 한다.
ID_CONFIG_EXT_STREAM_ID 타입의 구성 확장의 usacConfigExtLength는 2 값을 가질 것이다. (선택적, 역시 다를 수도 있음)
임의의 주어진 오디오 비트 스트림은 ID_CONFIG_EXT_STREAM_ID 타입의 하나보다 많은 구성 확장을 갖지 않을 것이다. (선택적)
예를 들어, ID_EXT_ELE_AUDIOPREROLL 확장 페이로드의 Config()를 통해 규칙적으로 작동하는 디코더 인스턴스가 새로운 구성 구조를 수신한다면, 이는 이 새로운 구성 구조를 현재 활성 구성과 비교할 것이다(예를 들어, 7.18.3.3 참조). 이러한 비교는 예를 들어, 대응하는 구성 구조들의 비트별 비교를 통해 수행될 수 있다.
구성 구조들이 구성 확장들을 포함한다면, 예를 들어 ID_CONFIG_EXT_STREAM_ID 타입의 구성 확장까지의 그리고 그러한 구성 확장을 포함하는 모든 구성 확장들이 비교에 포함될 것이다. ID_CONFIG_EXT_STREAM_ID 타입의 구성 확장에 뒤따르는 모든 구성 확장들은 예를 들어, 비교 중에 고려되지 않을 것이다. (선택적)
주 위의 규칙은 특정 구성 확장들의 변경들이 디코더 재구성을 야기할 것인지 여부를 인코더가 제어할 수 있게 한다."
표준에 추가될 이 구절로부터의 정의들 및 세부사항들은 개별적으로 그리고 조합하여 둘 다, 어느 것이든 상관없이, 본 발명에 따른 실시예들에서 선택적으로 사용될 수 있다는 점이 주목되어야 한다.
USAC 인코딩 또는 디코딩을 고려할 때, 절 6의 표 74는 도 10d에 도시된 바와 같은 표로 대체되어야 한다.
*결과적으로, USAC 표준에 도입될 수 있는 일부 가능한 변화들이 설명되었다. 그러나 여기서 설명한 개념은 또한 다른 오디오 코딩 표준들과 관련하여 사용될 수 있다. 즉, 임의의 다른 오디오 코딩 표준의 어떤 구성 구조에 여기서 설명한 바와 같이, 스트림 식별자 정보를 도입하는 것도 또한 가능할 것이다.
스트림 식별자 정보와 관련하여 여기에서 설명된 특징들은 또한 다른 코딩 표준들과 함께 취해질 때 적용될 수 있다. 이 경우에, 용어는 각각의 오디오 코딩 표준의 용어에 적응되어야 한다.
다음에, 본 발명에 따른 어떤 선택적인 효과들 및 이점들 또는 특징들이 설명될 것이다.
제시된 구성 확장은 다르게는 비트가 동일한 구성 구조들 간에 구별하기 위해 쉽게 구현 가능한 솔루션을 제공한다. 구성들 간의 얻어진 구별 가능성은 예를 들어, 스트림들 간의 끊김 없는 전환들로 동적 적응형 스트리밍의 정확하고 원래 의도된 기능을 가능하게 한다.
다음에, 일부 대안적인 솔루션들이 설명될 것이다.
예를 들어, 인코더가 한 세트의 스트림들 내의 모든 스트림들이 서로 다른 구성들을 갖는 것을, 즉 이들이 서로 다른 인코딩 툴들을 사용하거나 서로 다른 파라미터화들을 사용하는 것을 보장한다면, 위에서 언급된 문제가 회피될 수 있다. 개별 스트림들의 비트 레이트의 차이가 충분히 크다면, 이는 대개 쌍으로 구분되는 구성들이 된다. 흔히 있는 경우인 비트 레이트들의 미세한 그리드가 요구된다면, (종래의) 솔루션이 어떤 경우들에는 작동하지 않을 것이다.
이에 반해, 서로 다른 스트림들을 구별하기 위해 (구성 구조로도 또한 표기된) 구성 부분에 포함되는 스트림 식별자를 사용함으로써, (비트 레이트들이 비슷하다면 종종 있는 경우인) 구성 구조의 나머지가 동일하다면 스트림들이 또한 구별될 수 있다.
대안으로(예를 들어, 스트림 식별자의 사용에 대한 대안으로서), 각각의 스트림에 대해 가변적이지만 다소 상이하게 구조화된 적절한, 지정되지 않은 구성 확장을 생성할 수 있다. 효과는 동일할 것이다. 그러나 위에서 설명한 시나리오에서 구성들이 비교될 때 모든 디코더 구현들이 이 지정되지 않은 구성 확장을 평가하는 것이 보장될 수 없기 때문에, 올바른 기능이 보장될 수 없다.
이에 반해, 본 발명에 따른 실시예들은 스트림 식별자가 구성 구조에서 명확하게 지정되고 서로 다른 스트림들의 잘 정의된 구별을 허용하는 개념을 생성한다.
본 발명의 개념의 구현은 USAC 스트림들의 구성 구조의 분석에 의해 인식될 수 있다는 점이 주목되어야 한다. 더욱이, 본 발명의 개념의 구현들은 앞서 설명한 바와 같은 구성 확장들의 존재에 대해 테스트함으로써 인식될 수 있다.
다음에, 본 발명에 따른 양상들에 대한 어떤 가능한 적용 분야들이 설명될 것이다.
본 발명에 따른 실시예들은 다른 동일한 데이터 구조들의 구별 가능성을 제공한다.
본 발명에 따른 추가 실시예들은 다른 동일한 오디오 코덱 구성 구조들의 구별 가능성을 제공한다.
본 발명에 따른 실시예들은 임의의 송신 네트워크를 통한 오디오의 끊김 없는 동적 적응형 스트리밍을 가능하게 한다.
다음에, 일부 추가 양상들이 설명될 것이며, 이들은 선택적인 것으로 간주되어야 한다.
예를 들면, 오디오 인코더/오디오 스트림 제공기 동작이 다음에 설명될 것이다. 다음에, (오디오 스트림 제공기의 형태를 또한 취할 수 있는) 오디오 인코더에 관한 일부 추가 세부사항들이 설명될 것이다.
오디오 인코더는 대개 그 구성을 갑자기 변경하는 하나의(단일) 스트림을 생성하는 것이 아니라, 다수의 인코더 인스턴스들을 포함하는 인코더 또는 인코더 프레임워크는 스트림들 내의 동기화된 위치들(시점들)에 IPF들("즉시 재생 프레임들")을 각각 포함하는 다수의 스트림들을 병렬로 생성한다.
그 후, 디코더 프레임워크는 예를 들어, 인터넷 접속의 품질과 같은 특정 그리고/또는 미리 결정된 기준들에 따라, 병렬로 생성된 스트림들 중 하나를 선택하여 인코더 측 서버에 그 스트림을 정확히 전송할 것을 "요구"(또는 요청)하고, 그 다음에 스트림을 디코더에 전달한다. 모든 추가 인코딩된 스트림들은 간단히 무시된다. 그 다음에, 스트림들 간의 변경은 IPF들에서만 허용된다.
오디오 디코더는 초기에 그러한 변경을 인식하지 못하고 그리고/또는 예를 들어, 디코더 프레임워크에 의해 그러한 변경에 대해 통지받지 못한다. 그보다는, 오디오 디코더는 임베드된 구성 구조들("Config-structures")의 비교에 의해 스트림 변경을 검출할 필요가 있다. 디코더의 관점에서, 이는 인코더가 마치 변경 구성("Config")을 갖는 스트림만을 생성한 것처럼 나타난다. 실제로, 이는 흔한 경우가 아니다. 그보다, (서로 다른 비트 레이트들을 포함하는) 다수의 변형들은 항상 (연속적으로) 인코더에 의해 병렬로 생성되는데; 디코더 프레임워크 및 인코더 측 서버(또는 스트림 제공기)만이 스트림들을 분할하고 스트림들의 부분들(또는 스트림들)을 재배열(재연결)한다.
추가 선택적인 세부사항들이 도면들에서 도시된다.
더욱이, 도면들에 도시된 장치들은 개별적으로 또는 조합하여, 본 명세서에서 설명되는 특징들 및 기능들 중 임의의 것으로 보완될 수 있다는 점이 주목되어야 한다.
결론적으로, 오디오 인코더 또는 오디오 스트림 제공기는 특정 오디오 디코더(또는 오디오 디코딩 디바이스)로의 서로 다른 스트림들의 제공 사이에서 스위칭할 수 있으며, 스위칭은 예를 들어, 오디오 디코더 또는 오디오 디코딩 디바이스의 요청시 또는 임의의 다른 네트워크 관리 디바이스의 요청시, 또는 심지어 오디오 인코더 또는 오디오 스트림 제공기의 결정에 의해 수행될 수 있다. 서로 다른 오디오 스트림들로부터의 프레임들의 제공 사이의 스위칭은 실제 비트 레이트를 이용 가능한 비트 레이트에 적응시키는 데 사용될 수 있다. 오디오 인코더(또는 오디오 스트림 제공기)로부터 오디오 디코더로 시그널링되는 디코더 구성은 서로 다른 스트림들 간에 동일할 수 있지만, 스트림 식별자는 서로 다른 스트림들 간에 서로 달라야 한다. 이에 따라, 오디오 디코더는 즉시 재생 프레임에 포함된 추가 정보(예를 들어, 구성 정보 및 프리롤 정보)를 사용하여 언제 오디오 디코더의 재초기화가 이루어져야 하는지를 스트림 식별자를 사용하여 인식할 수 있다.
추가 결론적으로, 본 명세서에서 설명된 바와 같이, 스트림 식별자("streamID")를 사용하는 것은 본 발명의 양상들의 기반이 되는 문제들 및 실시예들에 대한 가능한 사용 시나리오들을 기술하는 섹션에서 언급된 문제들을 극복할 수 있다.
10. 방법들
도 11a 내지 도 11c는 본 발명에 따른 실시예들에 따른 방법들의 흐름도들을 도시한다.
도 11a 내지 도 11c에 도시된 방법들은 본 명세서에서 설명되는 특징들 및 기능들 중 임의의 것으로 보완될 수 있다.
11. 구현 대안들
일부 양상들은 장치와 관련하여 설명되었지만, 이러한 양상들은 또한 대응하기 위한 방법의 설명을 나타내며, 여기서 블록 또는 디바이스는 방법 단계 또는 방법 단계의 특징에 대응한다는 점이 명백하다. 비슷하게, 방법 단계와 관련하여 설명한 양상들은 또한 대응하는 장치의 대응하는 블록 또는 항목 또는 특징의 설명을 나타낸다. 방법 단계들의 일부 또는 전부가 예를 들어, 마이크로프로세서, 프로그래밍 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 사용하여) 실행될 수 있다. 일부 실시예들에서, 가장 중요한 방법 단계들 중 하나 또는 그보다 많은 단계가 이러한 장치에 의해 실행될 수 있다.
본 발명의 인코딩된 오디오 신호는 디지털 저장 매체 상에 저장될 수 있고 또는 송신 매체, 예컨대 무선 송신 매체 또는 유선 송신 매체, 예컨대 인터넷을 통해 송신될 수 있다.
특정 구현 요건들에 따라, 본 발명의 실시예들은 하드웨어로 또는 소프트웨어로 구현될 수 있다. 구현은 각각의 방법이 수행되도록 프로그래밍 가능 컴퓨터 시스템과 협력하는(또는 협력할 수 있는) 전자적으로 판독 가능 제어 신호들이 저장된 디지털 저장 매체, 예를 들어 플로피 디스크, DVD, 블루레이, CD, ROM, PROM, EPROM, EEPROM 또는 플래시 메모리를 사용하여 수행될 수 있다. 따라서 디지털 저장 매체는 컴퓨터 판독 가능할 수 있다.
본 발명에 따른 일부 실시예들은 본 명세서에서 설명한 방법들 중 하나가 수행되도록, 프로그래밍 가능 컴퓨터 시스템과 협력할 수 있는 전자적으로 판독 가능 제어 신호들을 갖는 데이터 반송파를 포함한다.
일반적으로, 본 발명의 실시예들은 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 방법들 중 하나를 수행하기 위해 작동하는 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 프로그램 코드는 예를 들어, 기계 판독 가능 반송파 상에 저장될 수 있다.
다른 실시예들은 기계 판독 가능 반송파 상에 저장된, 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
즉, 본 발명의 방법의 한 실시예는 이에 따라, 컴퓨터 상에서 컴퓨터 프로그램이 실행될 때 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서 본 발명의 방법들의 추가 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함하여 그 위에 기록된 데이터 반송파(또는 디지털 저장 매체, 또는 컴퓨터 판독 가능 매체)이다. 데이터 반송파, 디지털 저장 매체 또는 레코딩된 매체는 통상적으로 유형적이고 그리고/또는 비-일시적이다.
따라서 본 발명의 방법의 추가 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 신호들의 데이터 스트림 또는 시퀀스이다. 신호들의 데이터 스트림 또는 시퀀스는 예를 들어, 데이터 통신 접속을 통해, 예를 들어 인터넷을 통해 전송되도록 구성될 수 있다.
추가 실시예는 처리 수단, 예를 들어 본 명세서에서 설명한 방법들 중 하나를 수행하도록 구성 또는 적응된 컴퓨터 또는 프로그래밍 가능 로직 디바이스를 포함한다.
추가 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
추가적인 실시예에서,
인코딩된 오디오 신호 표현(110; 210; 312; 412; 550; 600; 700; 800)을 기초로한, 디코딩된 오디오 신호 표현(112; 212)을 제공하기 위한 오디오 디코더(100; 200)는 상기 오디오 디코더는 구성 정보(110a; 222c; 332; 424; 1010, 1030)에 따라 디코딩 파라미터들을 조정하도록 구성되며, 상기 오디오 디코더는 현재 구성 정보(140; 240)를 사용하여 하나 이상의 오디오 프레임들을 디코딩하도록 구성된다. 또한, 상기 오디오 디코더는 디코딩될 하나 이상의 프레임들(222)과 연관된 구성 구조의 구성 정보(110a; 222c; 332; 424; 1010, 1030)를 상기 현재 구성 정보(140; 240)와 비교하도록, 그리고 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 구성 정보의 관련 부분(1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a)이 상기 현재 구성 정보와 다르다면, 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성 정보로서 사용하여 디코딩을 수행하기 위한 전환을 하도록 구성된다.
해당 실시예에서, 오디오 디코더는 상기 오디오 디코더에 의해 이전에 획득된 스트림 식별자와 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 상기 전환을 하게 하도록, 상기 구성 정보를 비교할 때 상기 구성 구조에 포함된 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)를 고려하도록 구성된다. 상기 오디오 디코더는 상기 구성 구조가 구성 확장 구조(226; 1030)를 포함하는지 여부를 체크하도록 그리고 상기 구성 확장 구조가 상기 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)를 포함하는지 여부를 체크하고, 상기 오디오 디코더는 상기 스트림 식별자 정보가 상기 구성 확장 구조에 포함된다면 상기 비교에서 상기 스트림 식별자 정보를 선택적으로 고려하도록 구성된다.
상기 오디오 디코더는 상기 구성 확장 구조(226; 1030; UsacConfigExtension())에서 구성 정보 항목들(1046a, 1048a, 1050a)의 가변 순서를 받아들이도록 구성되며, 상기 오디오 디코더는 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 상기 현재 구성 정보(140; 240)와 비교할 때, 상기 구성 확장 구조에서 상기 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier) 앞에 배열된 구성 정보 항목들을 고려하고, 상기 오디오 디코더는 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 상기 현재 구성 정보와 비교할 때, 상기 구성 확장 구조에서 상기 스트림 식별 정보 뒤에 배열된 구성 정보 항목들을 고려되지 않게 하도록 구성된다.
본 발명에 따른 추가 실시예는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기에(예를 들어, 전자적으로 또는 광학적으로) 전송하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예를 들어, 컴퓨터, 모바일 디바이스, 메모리 디바이스 등일 수 있다. 장치 또는 시스템은 예를 들어, 컴퓨터 프로그램을 수신기에 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시예들에서, 프로그래밍 가능 로직 디바이스(예를 들어, 필드 프로그래밍 가능 게이트 어레이)는 본 명세서에서 설명한 방법들의 기능들 중 일부 또는 전부를 수행하는 데 사용될 수 있다. 일부 실시예들에서, 필드 프로그래밍 가능 게이트 어레이는 본 명세서에서 설명한 방법들 중 하나를 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법들은 바람직하게 임의의 하드웨어 장치에 의해 수행된다.
오디오 디코더(100; 200)는, 구성 정보(110a; 222c; 332; 424; 1010, 1030)에 따라 디코딩 파라미터들을 조정하고, 현재 구성 정보(140; 240)를 사용하여 하나 이상의 오디오 프레임들을 디코딩하고, 디코딩될 하나 이상의 프레임들(222)과 연관된 구성 구조의 구성 정보(110a; 222c; 332; 424; 1010, 1030)를 상기 현재 구성 정보(140; 240)와 비교하도록, 그리고 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 구성 정보의 관련 부분(1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a)이 상기 현재 구성 정보와 다르다면, 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성 정보로서 사용하여 디코딩을 수행하기 위한 전환을 하도록 구성될 수 있다.
또한 오디오 디코더는 상기 오디오 디코더에 의해 이전에 획득된 스트림 식별자와 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 상기 전환을 하게 하도록, 상기 구성 정보를 비교할 때 상기 구성 구조에 포함된 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)를 고려하도록 구성될 수 있다.
이 때, 오디오 디코더는 구성 구조가 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)를 포함하는지 여부를 체크하도록, 그리고 스트림 식별자 정보가 구성 구조(222c; 1010, 1030)에 포함된다면 비교에서 스트림 식별자 정보를 선택적으로 고려하도록 구성될 수 있다.
또는, 오디오 디코더는 구성 구조가 구성 확장 구조(226; 1030)를 포함하는지 여부를 체크하도록 그리고 구성 확장 구조가 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)를 포함하는지 여부를 체크하고, 스트림 식별자 정보가 구성 확장 구조에 포함된다면 비교에서 스트림 식별자 정보를 선택적으로 고려하도록 구성될 수 있다.
일 실시예에서, 오디오 디코더는 구성 확장 구조(226; 1030; UsacConfigExtension())에서 구성 정보 항목들(1046a, 1048a, 1050a)의 가변 순서를 받아들이고, 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보(140; 240)와 비교할 때, 구성 확장 구조에서 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier) 앞에 배열된 구성 정보 항목들을 고려하도록 구성될 수 있다. 또한, 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 현재 구성 정보와 비교할 때, 구성 확장 구조에서 스트림 식별 정보 뒤에 배열된 구성 정보 항목들을 고려되지 않게 하도록 구성될 수 있다.
오디오 디코더는 각각의 구성 정보 항목들에 선행하는 하나 이상의 구성 확장 타입 식별자들(1042)을 기초로 구성 확장 구조에서 하나 이상의 정보 항목들(1046a, 1048a, 1050a)을 식별하도록 구성될 수 있다.
구성 확장 구조(226; 1030)는 구성 구조(222c; 1010, 1030)의 하위 데이터 구조이고, 구성 확장 구조의 존재는 오디오 디코더에 의해 평가되는 구성 구조(222c; 1010, 1030)의 비트(UsacConfigExtensionPresent)에 의해 표시된다. 또한, 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)는 구성 확장 구조의 하위 데이터 항목이며, 스트림 식별자 정보의 존재는 오디오 디코더에 의해 평가되는 스트림 식별자 정보와 연관된 구성 확장 타입 식별자(1042)에 의해 표시된다. 또한, 구성 구조는 오디오 프레임의 확장 엘리먼트 내에 포함될 수 있다.
오디오 디코더는 랜덤 액세스 정보(222b)를 포함하는 오디오 프레임 표현을 획득하고 처리하도록 구성되며, 랜덤 액세스 정보는 상기 오디오 디코더의 처리 체인의 상태를 원하는 상태가 되게 하기 위한 정보(222d; AccessUnit()) 및 구성 구조(222c; 1010, 1030)를 포함한다.
오디오 디코더는 상기 랜덤 액세스 정보를 포함하는 오디오 프레임 표현에 도달하기 전에 처리된 오디오 프레임(220)에 의해 표현된 오디오 정보(272)와, 랜덤 액세스 정보의 구성 구조(222c)를 이용한 오디오 디코더의 초기화 이후 그리고 오디오 디코더가 상기 랜덤 액세스 정보의 구성 구조(222c)의 구성 정보 또는 상기 랜덤 액세스 정보의 구성 구조의 구성 정보의 관련 부분이 상기 현재 구성 정보(240)와 다르다는 점을 확인한다면 상기 처리 체인의 상태를 원하는 상태가 되게 하기 위한 정보(222d)를 사용하여 상기 오디오 디코더의 상태를 조정한 후에 상기 랜덤 액세스 정보를 포함하는 상기 오디오 프레임 표현(222)에 기초하여 도출된 오디오 정보(276) 사이를 크로스 페이드(cross-fade)하도록 구성될 수 있다.
오디오 디코더는 랜덤 액세스 정보를 포함하는 오디오 프레임 표현에 의해 표현된 오디오 프레임 바로 앞에 있는 오디오 프레임을 디코딩하였고, 랜덤 액세스 정보의 구성 구조의 구성 정보(222c) 관련 부분이 현재 구성 정보(240)와 동일함을 확인한다면, 초기화를 수행하지 않고 처리 체인의 상태를 원하는 상태가 되게 하기 위한 정보(222d)를 사용하지 않고 디코딩을 계속하도록 구성되될 수 있다.
오디오 디코더는 랜덤 액세스 정보의 구성 구조(222c)를 사용하여 오디오 디코더의 초기화를 수행하고, 랜덤 액세스 정보를 포함하는 오디오 프레임 표현에 의해 표현된 오디오 프레임 바로 앞에 있는 오디오 프레임을 디코딩하지 않았다면, 처리 체인의 상태를 원하는 상태가 되게 하기 위한 정보(222d)를 사용하여 오디오 디코더의 상태를 조정하도록 구성될 수 있다.
타 실시예에서, 오디오 인코더는 상기 인코딩된 오디오 신호 표현을 획득하기 위해 인코딩 파라미터들을 사용하여 오디오 신호(310)의 중첩 또는 비중첩 프레임들을 인코딩하고, 인코딩 파라미터들 또는 오디오 디코더에 의해 사용될 디코딩 파라미터들을 기술하는 구성 구조(110a; 222c; 332; 424; 1010, 1030)를 제공하도록 구성될 수 있다. 이때, 구성 구조는 스트림 식별자(230; streamID, 1050a, streamIdentifier)를 포함한다.
오디오 인코더는 구성 구조(222c; 1010)의 확장 구조(226; 1030; UsacConfigExtension())에 상기 스트림 식별자(230; streamID, 1050a, streamIdentifier)를 포함하고, 이때 스트림 식별자를 포함하는 구성 확장 구조는 오디오 인코더에 의해 인에이블 및 디세이블될 수 있다.
오디오 인코더는 구성 확장 구조 내의 스트림 식별자(230; streamID, 1050a, streamIdentifier)의 존재를 시그널링하기 위해 구성 확장 구조(226; 1030; UsacConfigExtension())에 스트림 식별자를 지정하는 구성 확장 타입 식별자(1042)를 포함할 수 있다.
오디오 인코더는 상기 스트림 식별자를 포함하는 적어도 하나의 구성 구조(222c; 1010, 1030) 및 상기 스트림 식별자를 포함하지 않는 적어도 하나의 구성 구조를 제공하도록 구성될 수 있다.
이 때, 오디오 인코더는 제1 시퀀스의 오디오 프레임들에 의해 표현되는 제1 인코딩된 오디오 정보(552; 710, 720; 810)을 제공하거나, 제2 시퀀스의 오디오 프레임들에 의해 표현되는 제2 인코딩된 오디오 정보(554; 730, 740, 750; 820)를 제공하는 것 사이에서 스위칭하도록 구성될 수 있다. 또한, 제1 시퀀스의 오디오 프레임들 중 마지막 프레임(720; 810e)의 렌더링 이후 제2 시퀀스의 오디오 프레임들 중 제1 오디오 프레임(730; 820a)의 적절한 렌더링을 위해서는 오디오 디코더의 재초기화(re-initialization)를 필요로 한다. 오디오 인코더는 제2 시퀀스의 오디오 프레임들 중 제1 프레임을 나타내는 오디오 프레임 표현에 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자(230; streamID, 1050a, streamIdentifier)를 포함하는 구성 구조(222c; 1010, 1030)를 포함하도록 구성될 수 있으며, 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자는 제1 시퀀스의 오디오 프레임들과 연관된 스트림 식별자와는 서로 다르다.
오디오 인코더는 스트림 식별자를 제외하고 제1 시퀀스의 오디오 프레임들의 정보(552; 710, 720; 810)로부터 제2 시퀀스의 오디오 프레임들(554; 730, 740, 750; 820)로의 스위칭을 나타내는 어떠한 다른 시그널링 정보도 제공하지 않도록 구성될 수 있다.
오디오 인코더는 제1 시퀀스의 오디오 프레임들(552; 710, 720; 810) 및 제2 시퀀스의 오디오 프레임들(554; 730, 740, 750; 820)을 서로 다른 비트 레이트들을 사용하여 제공하도록 구성될 수 있다. 또한 서로 다른 비트 스트림 식별자들(230; streamID, 1050a, streamIdentifier)을 제외하고는, 제1 시퀀스의 오디오 프레임들의 디코딩 그리고 제2 시퀀스의 오디오 프레임들의 디코딩을 위해 오디오 디코더에 동일한 디코더 구성 정보(222c; 1010, 1030)를 시그널링하도록 구성될 수 있다.
일 실시예에서, 인코딩된 오디오 신호 표현을 기초로, 디코딩된 오디오 신호 표현을 제공하기 위한 방법은 성 정보(110a; 222c; 332; 424; 1010, 1030)에 따라 디코딩 파라미터들을 조정하는 단계, 구성 정보(140; 240)를 사용하여 하나 이상의 오디오 프레임들을 디코딩하는 단계를 포함한다. 이 때, 위의 방법은 디코딩될 하나 이상의 프레임들(222)과 연관된 구성 구조의 구성 정보(110a; 222c; 332; 424; 1010, 1030)를 상기 현재 구성 정보(140; 240)와 비교하는 단계를 포함한다. 또하느 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 관련 부분(1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a)이 현재 구성 정보와 다르다면, 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성 정보로서 사용하여 디코딩을 수행하기 위한 전환을 하고, 오디오 디코딩에서 이전에 획득된 스트림 식별자와 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 전환 하게 하도록, 구성 정보를 비교할 때 상기 구성 구조에 포함된 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)를 고려하는 단계를 포함한다.
타 실시예에서, 인코딩된 오디오 신호 표현(110; 210; 312; 412; 550; 600; 700; 800)을 제공하기 위한 방법은 인코딩된 오디오 신호 표현을 획득하기 위해 인코딩 파라미터들을 사용하여 오디오 신호(310)의 중첩 또는 비중첩 프레임들을 인코딩하는 단계를 포함하고, 인코딩 파라미터들 또는 오디오 디코더에 의해 사용될 디코딩 파라미터들을 기술하는 구성 구조(110a; 222c; 332; 424; 1010, 1030)를 제공하는 단계를 포함한다. 이때, 위의 구성 구조는 스트림 식별자(230; streamID, 1050a, streamIdentifier)를 포함한다.
인코딩된 오디오 신호 표현(110; 210; 312; 412; 550; 600; 700; 800)을 제공하기 위한 오디오 스트림 제공기(400)는, 인코딩된 오디오 신호 표현의 일부로서, 인코딩 파라미터들을 사용하여 인코딩된, 오디오 신호의 중첩 또는 비중첩 프레임들의 인코딩된 버전들(220, 222; 710, 720, 730, 740, 750; 810a-810e, 820a-820d, 830a-830d)을 제공하도록 구성된다. 또한, 인코딩된 오디오 신호 표현의 일부로서 인코딩 파라미터들 또는 오디오 디코더에 의해 사용될 디코딩 파라미터들을 기술하는 구성 구조(220; 1010, 1030)를 제공하도록 구성되고, 위의 구성 구조는 스트림 식별자(230; streamID, 1050a, streamIdentifier)를 포함한다.
상기 오디오 스트림 제공기는, 스트림 식별자(230; streamID, 1050a, streamIdentifier)가 상기 구성 구조의 구성 확장 구조(222c, 1030)에 포함되도록 인코딩된 오디오 신호 표현을 제공하도록 구성된다. 스트림 식별자를 포함하는 구성 확장 구조는 구성 구조의 하나 이상의 비트들(UsacConfigExtensionPresent)에 의해 인에이블 및 디세이블될 수 있다.
이 때, 오디오 스트림 제공기는 상기 구성 확장 구조가 상기 구성 확장 구조 내의 상기 스트림 식별자(230; streamID, 1050a, streamIdentifier)의 존재를 시그널링하기 위해 상기 스트림 식별자를 지정하는 구성 확장 타입 식별자(1042)를 포함하게, 상기 인코딩된 오디오 신호 표현을 제공하도록 구성될 수 있다.
오디오 스트림 제공기는 인코딩된 오디오 신호 표현이 상기 스트림 식별자를 포함하는 적어도 하나의 구성 구조(222c; 1010, 1030) 및 스트림 식별자를 포함하지 않는 적어도 하나의 구성 구조를 포함하도록, 인코딩된 오디오 신호 표현을 제공하도록 구성될 수 있다.
오디오 스트림 제공기는 제1 시퀀스의 오디오 프레임들에 의해 표현되는 인코딩된 오디오 정보의 제1 부분 정보(552; 710, 720; 810)의 제공과 제2 시퀀스의 오디오 프레임들에 의해 표현되는 인코딩된 오디오 정보의 제2 부분(554; 730, 740, 750; 820)의 제공 사이에서 스위칭하도록 구성될 수 있다. 이 때, 제1 시퀀스의 오디오 프레임들 중 마지막 프레임(720; 810e)의 렌더링 이후의 제2 시퀀스의 오디오 프레임들 중 제1 오디오 프레임(730; 820a)의 적절한 렌더링은 오디오 디코더의 재초기화를 필요로 한다. 제2 시퀀스의 오디오 프레임들 중 첫 번째 프레임을 나타내는 오디오 프레임 표현이 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자(230; streamID, 1050a, streamIdentifier)를 포함하는 구성 구조(222c; 1010)를 포함하게, 인코딩된 오디오 신호 표현을 제공하도록 구성될 수 있다. 이 때, 제2 시퀀스의 오디오 프레임들과 연관된 스트림 식별자는 제1 시퀀스의 오디오 프레임들과 연관된 스트림 식별자와는 다르다.
일 실시예에서, 오디오 스트림 제공기는 상기 인코딩된 오디오 신호 표현이 스트림 식별자를 제외하고 제1 시퀀스의 오디오 프레임들로부터 제2 시퀀스의 오디오 프레임들로의 스위칭을 나타내는 어떠한 다른 시그널링 정보도 제공하지 않도록, 인코딩된 오디오 신호 표현을 제공하도록 구성될 수 있다.
오디오 스트림 제공기는 제1 시퀀스의 오디오 프레임들(552; 710, 720; 810) 및 제2 시퀀스의 오디오 프레임들(554; 730, 740, 750; 820)이 서로 다른 비트 레이트들을 사용하여 인코딩되게, 상기 인코딩된 오디오 신호 표현을 제공하도록 구성될 수 있다. 또한,코딩된 오디오 신호 표현이 서로 다른 비트 스트림 식별자들을 제외하고는 제1 시퀀스의 오디오 프레임들의 디코딩을 위해, 제2 시퀀스의 오디오 프레임들의 디코딩을 위해 오디오 디코더에 동일한 디코더 구성 정보를 시그널링하는 방식으로 인코딩된 오디오 신호 표현을 제공하도록 구성될 수 있다.
타 실시예에서, 오디오 스트림 제공기가 오디오 디코더로의 제1 시퀀스의 오디오 프레임들(552, 710, 720; 810)의 제공과 제2 시퀀스의 오디오 프레임들(554; 730, 740, 750; 820)의 제공 간에 스위칭하도록 구성되고, 제1 시퀀스의 오디오 프레임들 및 제2 시퀀스의 오디오 프레임들이 서로 다른 비트 레이트들을 사용하여 인코딩되고, 상기 오디오 스트림 제공기는 랜덤 액세스 정보를 포함하지 않는 오디오 프레임들에서의 시퀀스들 간의 스위칭을 피하면서, 오디오 프레임 표현이 랜덤 액세스 정보(222b; AudioPreRoll())를 포함하는 오디오 프레임에서 제1 시퀀스의 오디오 프레임들의 제공과 제2 시퀀스의 오디오 프레임들의 제공 사이에서 선택적으로 스위칭하도록 구성될 수 있다.
오디오 스트림 제공기는 제1 시퀀스의 오디오 프레임들로부터 제2 시퀀스의 오디오 프레임들로 스위칭할 때 제공되는 오디오 프레임의 구성 구조(222c; 1010, 1030)에 스트림 식별자가 포함되도록, 인코딩된 오디오 신호 표현을 제공하도록 구성될 수 있다.
또한, 오디오 스트림 제공기는 서로 다른 비트 레이트들을 사용하여 인코딩된 오디오 프레임들의 복수의 병렬 시퀀스들(520, 530)을 획득하고, 오디오 디코더로의 서로 다른 시퀀스들로부터의 프레임들의 제공 간에 스위칭하도록 구성될 수 있다. 이 때, 오디오 스트림 제공기는 스위칭 후에 제공되는 제1 오디오 프레임 표현의 구성 구조에 포함된 스트림 식별자를 사용하여 시퀀스들 중 어떤 시퀀스의 하나 이상의 프레임들이 연관되는지를 오디오 디코더에 시그널링하도록 구성된다.
인코딩된 오디오 신호 표현을 제공하기 위한 방법은 인코딩된 오디오 신호 표현의 일부로서, 인코딩 파라미터들을 사용하여 인코딩된, 오디오 신호의 시간상 중첩 또는 비중첩 프레임들의 인코딩된 버전들을 제공하는 단계 및 인코딩된 오디오 신호 표현의 일부로서 인코딩 파라미터들 또는 오디오 디코더에 의해 사용될 디코딩 파라미터들을 기술하는 구성 구조를 제공하는 단계를 포함할 수 있다. 이 때, 구성 구조는 스트림 식별자를 포함한다.
본 명세서에서 설명한 장치는 하드웨어 장치를 사용하여, 또는 컴퓨터를 사용하여, 또는 하드웨어 장치와 컴퓨터의 결합을 사용하여 구현될 수 있다.
삭제
본 명세서에서 설명된 장치 또는 본 명세서에서 설명된 장치의 임의의 컴포넌트들은 적어도 부분적으로는 하드웨어로 그리고/또는 소프트웨어로 구현될 수 있다.
본 명세서에서 설명한 방법들은 하드웨어 장치를 사용하여, 또는 컴퓨터를 사용하여, 또는 하드웨어 장치와 컴퓨터의 결합을 사용하여 수행될 수 있다.
본 명세서에서 설명한 방법들 또는 본 명세서에서 설명한 장치의 임의의 컴포넌트들은 적어도 부분적으로는 하드웨어에 의해 그리고/또는 소프트웨어에 의해 수행될 수 있다.
앞서 설명한 실시예들은 단지 본 발명의 원리들에 대한 예시일 뿐이다. 본 명세서에서 설명한 배열들 및 세부사항들의 수정들 및 변형들이 다른 당업자들에게 명백할 것이라고 이해된다. 따라서 이는 본 명세서의 실시예들의 묘사 및 설명에 의해 제시된 특정 세부사항들로가 아닌, 첨부된 특허청구범위로만 한정되는 것을 취지로 한다.

Claims (33)

  1. 인코딩된 오디오 신호 표현(110; 210; 312; 412; 550; 600; 700; 800)을 기초로 하여, 디코딩된 오디오 신호 표현(112; 212)을 제공하기 위한 오디오 디코더(100; 200)로서,
    상기 오디오 디코더는 구성 정보(110a; 222c; 332; 424; 1010, 1030)에 따라 디코딩 파라미터들을 조정하도록 구성되며,
    상기 오디오 디코더는 현재 구성 정보(140; 240)를 사용하여 하나 이상의 오디오 프레임들을 디코딩하도록 구성되고,
    상기 오디오 디코더는 디코딩될 하나 이상의 프레임들(222)과 연관된 구성 구조의 구성 정보(110a; 222c; 332; 424; 1010, 1030)를 상기 현재 구성 정보(140; 240)와 비교하도록, 그리고 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 구성 정보의 관련 부분(1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a)이 상기 현재 구성 정보와 다르다면, 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성 정보로서 사용하여 디코딩을 수행하기 위한 전환을 하도록 구성되며,
    상기 오디오 디코더는 상기 오디오 디코더에 의해 이전에 획득된 스트림 식별자와 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 상기 전환을 하게 하도록, 상기 구성 정보를 비교할 때 상기 구성 구조에 포함된 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)를 고려하도록 구성되며,
    상기 구성 구조는 오디오 프레임의 확장 엘리먼트 내에 포함되고,
    상기 스트림 식별자는 16 비트 값에 의해 표현되는 비트 스트림 신택스 엘리먼트에 의해서 표현되는,
    오디오 디코더.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 인코딩된 오디오 신호 표현을 기초로, 디코딩된 오디오 신호 표현을 제공하기 위한 방법으로서,
    상기 방법은 구성 정보(110a; 222c; 332; 424; 1010, 1030)에 따라 디코딩 파라미터들을 조정하는 단계를 포함하고,
    상기 방법은 현재 구성 정보(140; 240)를 사용하여 하나 이상의 오디오 프레임들을 디코딩하는 단계를 포함하고,
    상기 방법은 디코딩될 하나 이상의 프레임들(222)과 연관된 구성 구조의 구성 정보(110a; 222c; 332; 424; 1010, 1030)를 상기 현재 구성 정보(140; 240)와 비교하는 단계를 포함하며, 그리고 상기 방법은 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보 또는 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보의 구성 정보의 관련 부분(1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a)이 상기 현재 구성 정보와 다르다면, 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조의 구성 정보를 새로운 구성 정보로서 사용하여 디코딩을 수행하기 위한 전환을 하는 단계를 포함하고,
    상기 방법은 상기 하나 이상의 오디오 프레임들을 디코딩하는 단계에서 이전에 획득된 스트림 식별자와 상기 디코딩될 하나 이상의 프레임들과 연관된 구성 구조 내의 스트림 식별자 정보에 의해 표현된 스트림 식별자 간의 차이가 상기 전환을 하게 하도록, 상기 구성 정보를 비교할 때 상기 구성 구조에 포함된 스트림 식별자 정보(230; streamID, 1050a, streamIdentifier)를 고려하는 단계를 포함하고,
    상기 구성 구조는 오디오 프레임의 확장 엘리먼트 내에 포함되고,
    상기 스트림 식별자는 16 비트 값에 의해 표현되는 비트 스트림 신택스 엘리먼트에 의해서 표현되는,
    인코딩된 오디오 신호 표현을 기초로, 디코딩된 오디오 신호 표현을 제공하기 위한 방법.
  11. 컴퓨터 판독 가능 비-일시적 저장 매체로서,
    컴퓨터 상에서 실행될 때 제10 항에 따른 방법을 수행하기 위한 컴퓨터 프로그램이 저장되는,
    컴퓨터 판독 가능 비-일시적 저장 매체.

  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
KR1020217033386A 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램 KR102572557B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237028751A KR20230129569A (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
EP17150915 2017-01-10
EP17150915.1 2017-01-10
EP17151083 2017-01-11
EP17151083.7 2017-01-11
KR1020197023563A KR102315774B1 (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램
PCT/EP2018/050575 WO2018130577A1 (en) 2017-01-10 2018-01-10 Audio decoder, audio encoder, method for providing a decoded audio signal, method for providing an encoded audio signal, audio stream, audio stream provider and computer program using a stream identifier

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197023563A Division KR102315774B1 (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237028751A Division KR20230129569A (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20210129255A KR20210129255A (ko) 2021-10-27
KR102572557B1 true KR102572557B1 (ko) 2023-08-30

Family

ID=60943036

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020217033386A KR102572557B1 (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램
KR1020237028751A KR20230129569A (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램
KR1020197023563A KR102315774B1 (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020237028751A KR20230129569A (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램
KR1020197023563A KR102315774B1 (ko) 2017-01-10 2018-01-10 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램

Country Status (15)

Country Link
US (3) US11217260B2 (ko)
EP (3) EP3822969B1 (ko)
JP (3) JP6955029B2 (ko)
KR (3) KR102572557B1 (ko)
CN (10) CN116631416A (ko)
AU (6) AU2018208522B2 (ko)
BR (1) BR112019014283A2 (ko)
CA (2) CA3049729C (ko)
ES (2) ES2953832T3 (ko)
MX (6) MX2019008250A (ko)
PL (2) PL3822969T3 (ko)
SG (2) SG11201906367PA (ko)
TW (1) TWI673708B (ko)
WO (1) WO2018130577A1 (ko)
ZA (1) ZA201905161B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112021003104A2 (pt) * 2018-08-21 2021-05-11 Dolby International Ab métodos, aparelho e sistemas para geração, transporte e processamento de quadros de reprodução imediata (ipfs)
JP2023526627A (ja) * 2020-05-20 2023-06-22 ドルビー・インターナショナル・アーベー 音声音響統合復号の向上のための方法及び機器
CN113473170B (zh) * 2021-07-16 2023-08-25 广州繁星互娱信息科技有限公司 直播音频处理方法、装置、计算机设备及介质
EP4388530A1 (en) * 2021-08-19 2024-06-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, method for providing an encoded representation of an audio information, computer program and encoded audio representation using immediate playout frames
US20230117444A1 (en) * 2021-10-19 2023-04-20 Microsoft Technology Licensing, Llc Ultra-low latency streaming of real-time media

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140016785A1 (en) 2011-03-18 2014-01-16 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder and decoder having a flexible configuration functionality

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3765622B2 (ja) 1996-07-09 2006-04-12 ユナイテッド・モジュール・コーポレーション オーディオ符号化復号化システム
US6904089B1 (en) * 1998-12-28 2005-06-07 Matsushita Electric Industrial Co., Ltd. Encoding device and decoding device
EP1427252A1 (en) * 2002-12-02 2004-06-09 Deutsche Thomson-Brandt Gmbh Method and apparatus for processing audio signals from a bitstream
KR100546758B1 (ko) * 2003-06-30 2006-01-26 한국전자통신연구원 음성의 상호부호화시 전송률 결정 장치 및 방법
GB0326263D0 (en) * 2003-11-11 2003-12-17 Nokia Corp Speech codecs
CN100534155C (zh) * 2004-08-25 2009-08-26 汤姆逊许可公司 减少数字视频输入的频道变换时间的设备和方法
JP4575129B2 (ja) * 2004-12-02 2010-11-04 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体
KR101215615B1 (ko) * 2006-01-10 2012-12-26 삼성전자주식회사 동일 채널 내에서 서로 다른 코덱을 이용하여 부호화된 비디오 및 오디오 데이터 스트림의 재생을 위한 코덱 변경 방법 및 장치
US7697537B2 (en) * 2006-03-21 2010-04-13 Broadcom Corporation System and method for using generic comparators with firmware interface to assist video/audio decoders in achieving frame sync
WO2008022181A2 (en) * 2006-08-15 2008-02-21 Broadcom Corporation Updating of decoder states after packet loss concealment
WO2009063467A2 (en) * 2007-11-14 2009-05-22 Ubstream Ltd. System and method for adaptive rate shifting of video/audio streaming
WO2010005234A2 (en) * 2008-07-08 2010-01-14 Lg Electronics Inc. Transmitting/receiving system and method of processing data in the transmitting/receiving system
US8117039B2 (en) * 2008-12-15 2012-02-14 Ericsson Television, Inc. Multi-staging recursive audio frame-based resampling and time mapping
KR101616054B1 (ko) * 2009-04-17 2016-04-28 삼성전자주식회사 음성 검출 장치 및 방법
US8948241B2 (en) 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
TWI501580B (zh) * 2009-08-07 2015-09-21 Dolby Int Ab 資料串流的鑑別
PT2491553T (pt) 2009-10-20 2017-01-20 Fraunhofer Ges Forschung Codificador de áudio, descodificador de áudio, método para codificar uma informação de áudio, método para descodificar uma informação de áudio e programa de computador que utiliza uma redução iterativa de tamanho de intervalo
EP2510515B1 (en) * 2009-12-07 2014-03-19 Dolby Laboratories Licensing Corporation Decoding of multichannel audio encoded bit streams using adaptive hybrid transformation
TWI443646B (zh) 2010-02-18 2014-07-01 Dolby Lab Licensing Corp 音訊解碼器及使用有效降混之解碼方法
US8428936B2 (en) * 2010-03-05 2013-04-23 Motorola Mobility Llc Decoder for audio signal including generic audio and speech frames
WO2012026092A1 (ja) * 2010-08-23 2012-03-01 パナソニック株式会社 音声信号処理装置及び音声信号処理方法
US8711736B2 (en) * 2010-09-16 2014-04-29 Apple Inc. Audio processing in a multi-participant conference
US8613038B2 (en) * 2010-10-22 2013-12-17 Stmicroelectronics International N.V. Methods and apparatus for decoding multiple independent audio streams using a single audio decoder
JP5969513B2 (ja) * 2011-02-14 2016-08-17 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 不活性相の間のノイズ合成を用いるオーディオコーデック
US8982942B2 (en) * 2011-06-17 2015-03-17 Microsoft Technology Licensing, Llc Adaptive codec selection
US8838262B2 (en) 2011-07-01 2014-09-16 Dolby Laboratories Licensing Corporation Synchronization and switch over methods and systems for an adaptive audio system
EP2770504B1 (en) * 2011-10-20 2016-11-30 LG Electronics Inc. Method of managing a jitter buffer, and jitter buffer using same
US9183842B2 (en) * 2011-11-08 2015-11-10 Vixs Systems Inc. Transcoder with dynamic audio channel changing
CN103548080B (zh) * 2012-05-11 2017-03-08 松下电器产业株式会社 声音信号混合编码器、声音信号混合解码器、声音信号编码方法以及声音信号解码方法
WO2013175736A1 (ja) * 2012-05-25 2013-11-28 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号方法、動画像復号装置、および、動画像符号化復号装置
US10171540B2 (en) * 2012-09-07 2019-01-01 High Sec Labs Ltd Method and apparatus for streaming video security
EP2720222A1 (en) * 2012-10-10 2014-04-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for efficient synthesis of sinusoids and sweeps by employing spectral patterns
TR201802631T4 (tr) 2013-01-21 2018-03-21 Dolby Laboratories Licensing Corp Program Ses Şiddeti ve Sınır Meta Verilere Sahip Sesli Enkoder ve Dekoder
TWM487509U (zh) 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
EP2863386A1 (en) * 2013-10-18 2015-04-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio decoder, apparatus for generating encoded audio output data and methods permitting initializing a decoder
GB2526128A (en) * 2014-05-15 2015-11-18 Nokia Technologies Oy Audio codec mode selector
PL3800898T3 (pl) 2014-05-28 2023-12-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Procesor danych i transport danych kontrolnych użytkownika do dekoderów audio i modułów renderowania
US10477204B2 (en) * 2014-06-20 2019-11-12 Sharp Kabushiki Kaisha Harmonized palette coding
US10049684B2 (en) * 2015-04-05 2018-08-14 Qualcomm Incorporated Audio bandwidth selection
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140016785A1 (en) 2011-03-18 2014-01-16 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio encoder and decoder having a flexible configuration functionality

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ATSC Standard: Digital Audio Compression (AC-3). Advanced Television Systems Committee. Doc.A/52:2012. 2012.12.17.*
ISO/IEC FDIS 23003-3:2011(E), Information technology - MPEG audio technologies - Part 3: Unified speech and audio coding. ISO/IEC JTC 1/SC 29/WG 11. 2011.09.20.

Also Published As

Publication number Publication date
AU2024201519A1 (en) 2024-03-28
ZA201905161B (en) 2020-03-25
CN116631417A (zh) 2023-08-22
KR20230129569A (ko) 2023-09-08
KR20190103364A (ko) 2019-09-04
MX2019008250A (es) 2019-09-13
KR102315774B1 (ko) 2021-10-22
EP4235662A2 (en) 2023-08-30
SG11201906367PA (en) 2019-08-27
AU2024201507A1 (en) 2024-03-28
TWI673708B (zh) 2019-10-01
CN116631416A (zh) 2023-08-22
MX2022015787A (es) 2023-02-27
CN116631414A (zh) 2023-08-22
CN117037807A (zh) 2023-11-10
PL3568853T3 (pl) 2021-06-14
JP2022008681A (ja) 2022-01-13
MX2022015786A (es) 2023-02-27
SG10202100336WA (en) 2021-02-25
EP3822969A1 (en) 2021-05-19
CN117037805A (zh) 2023-11-10
CA3049729A1 (en) 2018-07-19
AU2022201458B2 (en) 2023-12-07
MX2022015783A (es) 2023-02-27
US20190371351A1 (en) 2019-12-05
CA3049729C (en) 2023-09-05
JP6955029B2 (ja) 2021-10-27
EP3822969C0 (en) 2023-07-26
ES2953832T3 (es) 2023-11-16
RU2019125257A3 (ko) 2021-06-11
RU2019125257A (ru) 2021-02-12
MX2022015785A (es) 2023-02-27
TW201832225A (zh) 2018-09-01
AU2022201458A1 (en) 2022-03-24
US11837247B2 (en) 2023-12-05
KR20210129255A (ko) 2021-10-27
AU2018208522A1 (en) 2019-07-25
MX2022015782A (es) 2023-02-27
CA3206050A1 (en) 2018-07-19
CN116631415A (zh) 2023-08-22
AU2020244609B2 (en) 2022-04-07
CN116631413A (zh) 2023-08-22
CN110476207A (zh) 2019-11-19
CN117037804A (zh) 2023-11-10
CN117037806A (zh) 2023-11-10
JP2020507131A (ja) 2020-03-05
ES2853936T3 (es) 2021-09-20
EP4235662A3 (en) 2023-10-11
AU2018208522B2 (en) 2020-07-02
JP2023126775A (ja) 2023-09-12
AU2024201516A1 (en) 2024-03-28
AU2020244609A1 (en) 2020-10-29
CN110476207B (zh) 2023-09-01
US11217260B2 (en) 2022-01-04
WO2018130577A1 (en) 2018-07-19
EP3822969B1 (en) 2023-07-26
EP3568853A1 (en) 2019-11-20
US20220262379A1 (en) 2022-08-18
BR112019014283A2 (pt) 2020-02-11
PL3822969T3 (pl) 2024-01-08
US20240062768A1 (en) 2024-02-22
JP7295190B2 (ja) 2023-06-20
EP3568853B1 (en) 2020-12-16

Similar Documents

Publication Publication Date Title
KR102572557B1 (ko) 오디오 디코더, 오디오 인코더, 디코딩된 오디오 신호를 제공하기 위한 방법, 인코딩된 오디오 신호를 제공하기 위한 방법, 오디오 스트림, 오디오 스트림 제공기, 및 스트림 식별자를 사용하는 컴퓨터 프로그램
CN105745704B (zh) 用于编码和解码音频数据的装置以及方法
RU2783228C2 (ru) Декодер звукового сигнала, кодер звукового сигнала, способ выдачи декодированного звукового сигнала, способ выдачи кодированного звукового сигнала, звуковой поток, поставщик звукового потока и компьютерная программа, использующие идентификатор потока

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)