KR20030076614A - 비트 세이빙 뱅크 기능을 제공하여 스케일러블 데이터스트림을 생성하는 방법 및 장치와 스케일러블 데이터스트림을 디코딩하는 방법 및 장치 - Google Patents

비트 세이빙 뱅크 기능을 제공하여 스케일러블 데이터스트림을 생성하는 방법 및 장치와 스케일러블 데이터스트림을 디코딩하는 방법 및 장치 Download PDF

Info

Publication number
KR20030076614A
KR20030076614A KR10-2003-7009508A KR20037009508A KR20030076614A KR 20030076614 A KR20030076614 A KR 20030076614A KR 20037009508 A KR20037009508 A KR 20037009508A KR 20030076614 A KR20030076614 A KR 20030076614A
Authority
KR
South Korea
Prior art keywords
encoder
output data
input signal
data
block
Prior art date
Application number
KR10-2003-7009508A
Other languages
English (en)
Other versions
KR100516985B1 (ko
Inventor
랄프 스페르쉬나이터
보도 타이크만
만프레드 루츠키
베른하트 그릴
Original Assignee
프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우. filed Critical 프라운호퍼-게젤샤프트 츄어 푀르더룽 데어 안게반텐 포르슝에.파우.
Publication of KR20030076614A publication Critical patent/KR20030076614A/ko
Application granted granted Critical
Publication of KR100516985B1 publication Critical patent/KR100516985B1/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/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 생성하는 방법에 있어서, 입력 신호의 현재 섹션에 대한 결정 데이터 블록이 기입된다. 또한, 상기 입력 신호의 선행 섹션을 나타내는 상기 제 2 인코더의 출력 데이터가 상기 결정 데이터 블록의 다음에 인코더로부터 디코더로의 전송 방향으로 기입된다. 상기 제 2 인코더의 출력 데이터가 상기 입력 신호의 선행 섹션에 대하여 기입되는 경우에, 상기 입력 신호의 현재 섹션을 나타내는 상기 제 2 인코더의 출력 데이터가 기입된다. 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 어디에서 시작되는지 및 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터가 어디에서 시작되는지를 신호화하기 위하여, 버퍼 정보가 상기 스케일러블 데이터 스트림 내에 기입된다. 선행 섹션의 출력 데이터가 상기 현재 섹션에 대한 결정 데이터 블록을 뒤따른다는 사실에 의해, 비트 세이빙 뱅크(bit savings bank) 기능이 상기 스케일러블 인코더에 구현되고 상기 비트 스트림 내에 간단하게 신호화될 수 있다.

Description

비트 세이빙 뱅크 기능을 제공하여 스케일러블 데이터 스트림을 생성하는 방법 및 장치와 스케일러블 데이터 스트림을 디코딩하는 방법 및 장치{METHOD AND DEVICE FOR PRODUCING A SCALABLE DATA STREAM, AND METHOD AND DEVICE FOR DECODING A SCALABLE DATA STREAM WHILE TAKING A BIT BANK FUNCTION INTO ACCOUNT}
기술분야
본 발명은 스케일러블(scalable) 인코더 및 디코더에 관한 것으로, 특히 비트 세이빙 뱅크(bit savings bank)가 그를 통하여 신호화될 수 있는 스케일러블 데이터 스트림의 생성에 관한 것이다.
배경기술
EP 0 846 375 B1에 스케일러블 인코더가 개시되어 있다. 일반적으로, 스케일러빌리티(scalability)란 예컨대 오디오 신호나 비디오 신호와 같은 인코딩된 데이터 신호를 나타내는 비트 스트림의 부분을 유용한 신호로 디코딩하는 가능성으로서 이해되고 있다. 이 특성은 예컨대 데이터 전송 채널이 완전한 비트 스트림을 전송하는데 필요한 완전 대역폭을 제공하지 못하는 경우에 특히 바람직하다. 한편, 복잡성이 저감된 디코더에 대하여는 불완전 디코딩이 가능하다. 일반적으로 다른 이산 스케일러빌리티 층들(discrete scalability layers)이 실제로 정의된다.
MPEG-4 표준의 파트 3 서브파트 4(일반 오디오) (ISO/IEC 14496-3; 1999 서브파트 4)에 정의된 바와 같은 스케일러블 인코더의 일례가 도 1에 나타나 있다. 인코딩될 오디오 신호(s(t))가 입력 측의 스케일러블 인코더에 공급된다. 도 1에 나타낸 스케일러블 인코더는 MPEG CELP(Code Excited Linear Prediction) 인코더인 제 1 인코더(12)에 구비되어 있다. 제 2 인코더(14)는 고품질 오디오 인코딩을 제공하며 표준 MPEG-2 AAC(Advanced Audio Coding) (ISO/IEC 13818)에 정의되어 있는 AAC 인코더이다. CELP 인코더(12)는 출력 라인(16)을 통하여 제 1 스케일링 층을 비트 스트림 멀티플렉서(BitMux)(20)에 제공하는 한편, AAC 인코더(14)는 제 2 출력 라인(18)을 통하여 제 2 스케일링 층을 비트 스트림 멀티플렉서(BitMux)(20)에 제공한다. 출력 측에서는, 비트 스트림 멀티플렉서(BitMux)가 MPEG-4-LATM 비트 스트림(22)을 출력한다 (LATM = Low-overhead MPEG-4 Audio Transport Multiplex). LATM 포맷은 MPEG-4 표준의 첫 번째 부록의 파트 3 섹션 6.5에 기재되어 있다 (ISO/IEC 14496-3:1999/AMD:2000).
스케일러블 오디오 인코더는 일부 추가적인 성분을 더 포함하고 있다. 우선, AAC 브랜치에 지연 스테이지(24)가 존재하고 CELP 브랜치에 지연 스테이지(26)가 존재한다. 양측 지연 스테이지로, 각각의 브랜치에 대하여 선택적인 지연을 설정할 수 있다. 다운샘플링(downsampling) 스테이지(28)는 CELP 브랜치의 지연 스테이지(26)의 다운스트림으로서 입력 신호(s(t))의 샘플링 속도를 CELP 인코더에 의해 요구되는 샘플링 속도로 조정한다. 역 CELP 디코더(30)는 CELP 인코더(12)로의 다운스트림이며, 여기서 CELP 인코딩/디코딩된 신호가 업샘플링(upsampling) 스테이지(32)에 공급된다. 다음에 업샘플링된 신호가 추가적인 지연 스테이지(34)에공급되는데, 이 지연 스테이지(34)는 MPEG-4 표준에서 "코어 코더 지연(Core Coder Delay)"이라고 불린다.
스테이지 코어 코더 지연(34)은 다음과 같은 기능을 갖는다. 지연이 0으로 설정되면, 제 1 인코더(14) 및 제 2 인코더(12)는 오디오 입력 신호의 동일한 샘플들을 소위 수퍼프레임(superframe)으로 정확하게 처리한다. 수퍼프레임은 예컨대 오디오 신호의 어떤 수의 샘플 번호 x 및 y를 나타내는 세개의 AAC 프레임으로 이루어질 수 있다. 이 수퍼프레임은 예컨대 코어 코더 지연이 0인 경우에 동일한 수의 샘플 및 동일한 샘플 번호 x 및 y를 나타내는 8개의 CELP 블록을 더 포함한다.
그러나, 코어 코더 지연(D)이 0 이외의 시간 값으로서 설정되면, AAC 프레임의 세개의 블록들은 동일한 샘플 번호 x 및 y를 나타낸다. 반대로, CELP 프레임의 8개 블록은 샘플 번호 x-Fs D 내지 y-Fs D를 나타내는데, 여기서 Fs는 입력 신호의 샘플링 주파수이다.
따라서, AAC 블록과 CELP 블록용 수퍼프레임에서의 입력 신호의 현재 시간 섹션들은 코어 코더 지연(D)이 0인 경우에 서로 동일하거나, 또는 D가 0이 아닌 경우에 코어 코더 지연만큼 서로에 대하여 상대적으로 시프트된다. 그러나, 다음과 같은 구현 예에 대하여는, 단순성에 기초하고 일반성의 제한 없이 제 1 인코더에 대한 입력 신호의 현재 시간 섹션 및 제 2 인코더에 대한 입력 신호의 현재 시간 섹션이 동일하도록 코어 코더 지연이 0이라고 가정한다. 그러나, 일반적으로, 수퍼프레임에 대한 유일한 요구 사항은 수퍼프레임 내의 AAC 블록(들) 및 CELP 블록(들)이 동일한 수의 샘플을 나타낸다는 것이며, 여기서 샘플들 자신이 서로 동일할필요는 없지만 이들이 코어 코더 지연만큼 서로에 대하여 상대적으로 시프트될 수도 있다.
CELP 인코더는 그 구성에 따라 AAC 인코더(14)보다 더 빠르게 입력 신호(s(t))의 섹션을 처리할 수도 있다. AAC 블록에서는, 블록 결정 스테이지(25)는 입력 신호(s(t))를 윈도윙(windowing)하는데 짧은 윈도우가 사용되어야 하는지 긴 윈도우가 사용되어야 하는지 여부에 관계없이 다른 것들 중에서 설정하는 선택적인 지연 스테이지(24)로의 다운스트림이며, 여기서 매우 과도적인 신호에 대하여는 짧은 윈도우가 선택되어야 하는 한편, 페이로드(payload) 데이터의 양 및 페이지 정보 사이의 관계가 짧은 윈도우보다 좋기 때문에 덜 과도적인 신호에 대하여는 긴 윈도우가 바람직하다.
블록 결정 스테이지(25)에 의해, 예컨대 5/8배의 블록만큼 고정된 지연이 본 예에서 수행된다. 이것은 이 분야에서 미리보기(look-ahead) 기능이라고 불린다. 블록 결정 스테이지는 짧은 윈도우로 인코딩되어야 하는 과도적인 신호가 장래에 존재하는지 여부를 판단할 수 있도록 어느 시간만큼 미리 보아야 한다. 그 후에, AAC 브랜치의 신호뿐만 아니라 CELP 브랜치의 대응하는 신호가 시간 관련 일러스트레이션(illustration)을 스펙트럼 일러스트레이션으로 변환하는 수단에 공급되며, 상기 스펙트럼 일러스트레이션은 도 1에서 각각 MDCT 블록들(36, 38)로서 지정되어 있다 (MDCT = Modified Discrete Cosine Transform). MDCT 블록들(36, 38)의 출력 신호는 다음에 감산기(40)로 공급된다.
이 시점에서, 시간에 관련한 소속이 동일한 샘플들이 존재하여야 한다. 즉,지연이 양측 브랜치에서 동일하여야 한다.
다음의 블록(44)은 입력 신호 자체를 AAC 인코더(14)로 공급하는 것이 더 좋은지를 결정한다. 이것은 바이패스(bypass) 브랜치(42)를 통하여 가능해진다. 그러나, 감산기(40)의 출력 측의 차동 신호가 MDCT 블록(38)에 의해 출력된 신호보다 더 작은 관련 에너지를 갖는다고 결정되면, 원래 신호가 아니라 차동 신호가 취해져서 AAC 인코더(14)에 의해 인코딩되며 최종적으로 제 2 스케일링 층(18)을 형성한다. 이러한 비교는 대역마다 수행될 수 있으며, 주파수 선택 스위칭 수단(FSS: Frequency-Selective Switching)(44)에 의해 지시된다. 개별 성분들의 정확한 기능은 이 분야에서 공지되어 있으며, 예컨대 추가적인 MPEG 표준뿐만 아니라 MPEG-4 표준에도 기재되어 있다.
MPEG-4 표준 및 다른 인코더 표준에서의 한가지 중요한 특징은 압축된 데이터 신호의 전송이 채널을 통하여 일정한 비트 레이트로 수행될 수 있다는 것이다. 모든 고품질 오디오 코덱(codec)은 블록들에 기초하여 작동한다. 즉, 상기 오디오 코덱들은 오디오 데이터의 블록(480~1024개 정도의 샘플들)을 처리하여 프레임이라고도 불리는 압축된 비트 스트림의 조각들로 만든다. 여기서, 비트 스트림 포맷은 프레임이 시작되는 우선권 정보를 갖지 않는 디코더가 프레임의 개시를 인식하여 디코딩된 오디오 신호 데이터의 출력을 최저 가능 지연시켜서 개시할 수 있도록 설정되어야 한다. 따라서, 프레임의 각 헤더(header)나 결정 데이터 블록은 연속 비트 스트림에서 탐색될 수 있는 어떤 동기화 단어로 시작한다. 결정 데이터 블록으로부터 떨어져 있는 데이터 스트림내의 추가적인 공통 성분들은 실제로 압축된 오디오 데이터가 포함되어 있는 개별 층들의 주 데이터 또는 "페이로드(payload) 데이터"이다.
도 4는 고정 프레임 길이를 갖는 비트 스트림 포맷을 나타낸다. 이 비트 스트림 포맷에서, 헤더나 결정 데이터 블록들은 비트 스트림 내에 등간격으로 삽입되어 있다. 이 헤더에 연관된 부수 정보 및 주 데이터가 바로 뒤를 따른다. 주 데이터에 대한 길이, 즉 비트 수는 각 프레임에서 동일하다. 도 4에 나타낸 그러한 비트 스트림 포맷 자체가 예컨대 MPEG 층(2) 또는 MPEG-CELP에 이용된다.
도 5는 고정 프레임 길이와 백 포인터(backpointer)를 갖는 다른 비트 스트림 포맷을 나타낸다. 이 비트 스트림 포맷에서, 헤더 및 부수 정보는 도 4에 나타낸 포맷에서와 같이 등간격으로 배치되어 있다. 그러나, 연관된 주 데이터의 개시는 헤더 바로 다음에서 예외적으로 수행될 뿐이다. 대부분의 경우에, 개시는 선행 프레임들 중 하나에 있다. 비트 스트림 내에서 주 데이터의 개시가 시프트되는 비트 수는 페이지 정보 가변 백 포인터에 의해 전달된다. 이들 주 데이터의 종료는 현재 프레임 또는 선행 프레임 내에 있을 수 있다. 따라서, 주 데이터의 길이는 더 이상 일정하지 않다. 그러므로, 블록이 인코딩되는 비트 수는 신호의 특성에 따라 조절될 수도 있다. 한편, 동시에 일정한 비트 레이트가 달성될 수도 있다. 이 기술은 "비트 세이빙 뱅크(bit savings bank)"라고 불리며, 전송 체인 내에서의 이론적인 지연을 증가시킨다. 그러한 비트 스트림 포맷은 예컨대 MPEG 층(3)(MP3)에 이용된다. 비트 세이빙 뱅크 기술은 표준 MPEG 층(3)에 더 기재되어 있다.
일반적으로, 비트 세이빙 뱅크는 일정한 출력 데이터 속도에 의해 실제로 허용되는 바와 같이 시간 샘플 블록을 인코딩하는데 더 많은 비트를 제공하도록 이용될 수 있는 비트의 버퍼(buffer of bits)를 나타낸다. 비트 세이빙 뱅크 기술은, 오디오 샘플의 일부 블록들이 이들 블록을 통해서 비트 세이빙 뱅크가 채워지도록 일정한 전송 속도에 의해 미리 정해진 것보다 적은 비트로 인코딩될 수 있는 한편, 오디오 샘플의 다른 블록들이 이들 블록에 대하여 이용 가능한 비트가 저간섭(low-interference) 또는 무간섭(interference-free) 인코딩에 실제로 충분하지 않도록 그러한 고 압축을 허용하지 않는 심리 음향(psychoacoustic) 특성을 구비할 수 있음을 고려한다. 필요한 추가적인 비트가 비트 세이빙 뱅크로부터 취해져서 비트 세이빙 뱅크가 그러한 블록들만큼 비워진다.
그러나, 이러한 오디오 신호는 도 6에 나타낸 바와 같이 가변 프레임 길이를 갖는 포맷에 의해서도 전송될 수 있다. 도 6에 나타낸 바와 같이, 비트 스트림 포맷인 "가변 프레임 길이(variable frame length)"에서는, 비트 스트림 성분 헤더, 페이지 정보 및 주 데이터의 고정 시퀀스가 "고정 프레임 길이"로서 유지된다. 주 데이터의 길이가 일정하지 않으므로, 비트 세이빙 뱅크 기술도 여기에 이용될 수 있지만, 도 5에서와 같이 필요한 백 포인터는 없다. 도 6에 나타낸 바와 같이 비트 스트림 포맷의 일례는 표준 MPEG-2 AAC에 정의된 바와 같은 전송 포맷 ADTS(Audio Data Transport Stream)이다.
상술한 인코더들은 스케일러블 인코더는 아니지만 하나의 단일 오디오 인코더를 포함하고 있음에 주의해야 한다.
MPEG 4에서는, 스케일러블 인코더/디코더에 대한 다른 인코더/디코더의 조합이 제공된다. 따라서 추가적인 스케일링 층(들)에 대한 AAC 인코더와 제 1 인코더로서의 CELP 음성 인코더를 조합하고 그것을 하나의 비트 스트림으로 패킹(packing)하는 것이 가능하고 또 합리적이다. 이러한 조합의 목적은, 모드 스케일링 층들을 디코딩하여 최선의 가능한 오디오 품질에 도달하거나 또는 그들의 일부를 제1 스케일링 층만으로 하여 대응하여 제한된 오디오 품질로 하는 것에 가능성이 여전히 열려 있다. 최하 스케일링 층을 디코딩하는 이유는, 너무 작은 전송 채널의 대역폭으로 인하여 디코더가 비트 스트림의 제 1 스케일링 층만을 수신하기 때문일 수도 있다. 이 때문에, 비트 스트림내의 제 1 스케일링 층의 일부가 그 전송중인 제 1 및 추가적인 스케일링 층들에 대하여 선호되고, 이에 의해 제 1 스케일링 층의 전송이 전송 네트워크에서의 용량 병목(capacity bottleneck)으로 보장되는 한편, 제 2 스케일링 층은 완전히 또는 부분적으로 손실될 수 있다.
다른 이유는 디코더가 최하 가능한 코덱 지연을 달성하기를 원하고 따라서 제 1 스케일링 층만을 디코딩하기 때문일 수 있다. CELP 코드의 코덱 지연은 일반적으로 AAC 코드의 지연보다도 상당히 작다는 점에 주목해야 한다.
MPEG 4 버젼 2에서, 전송 포맷 LATM이 표준화되어 있는데, 이는 다른 것들 중에서 스케일러블 데이터 스트림을 전송하는 것이다.
이하에서, 도 2a를 참조하여 설명한다. 도 2a는 입력 신호(s(t))의 샘플들을 개략적으로 설명하고 있다. 상기 입력 신호는 다른 연속 섹션들(0, 1, 2, 3)로 분할될 수 있으며, 여기서 각 섹션은 일정한 고정된 수의 시간 샘플들을 포함한다. 통상적으로, AAC 인코더(14)(도 1 참조)는 그 섹션에 인코딩된 데이터 신호를 제공하기 위하여 전체 섹션(0, 1, 2, 3)을 처리한다. 그러나, CELP 인코더(12)(도 1 참조)는 통상 인코딩 스텝마다 보다 적은 양의 시간 샘플들을 처리한다. 따라서, 도 2b에 예로서 나타낸 바와 같이, CELP 인코더, 즉 일반적으로 말해서 제 1 인코더(1)는 제 2 인코더의 블록 길이의 1/4인 블록 길이를 갖고 있다. 이러한 분할은 완전히 랜덤하다(random)는 점에 주목해야 한다. 제 1 인코더의 블록 길이는 제 2 인코더의 블록 길이의 1/2일 수도 있지만, 제 2 인코더의 블록 길이의 1/11일 수도 있다. 따라서, 제 1 인코더는 제 1 인코더가 하나의 데이터 블록을 제공하는 입력 신호의 섹션으로부터 4개의 블록들(11, 12, 13, 14)을 생성한다. 도 2c에는 공통 LATM 비트 스트림 포맷이 나타나 있다.
하나의 수퍼프레임은 MPEG 4에 표 형식으로 나타나 있는 바와 같이 CELP 프레임 수에 대한 AAC 프레임 수의 몇 가지 비율을 포함할 수 있다. 따라서, 수퍼프레임은 예컨대 하나의 AAC 블록과 1 내지 12개의 CELP 블록, 3개의 AAC 블록과 8개의 CELP 블록을 포함할 수 있지만, 구성에 따라 CELP 블록보다 많은 AAC 블록을 포함할 수도 있다. LATM 결정 데이터 블록을 포함하는 LATM 프레임은 하나의 수퍼프레임 또는 수개의 수퍼프레임을 포함한다.
헤더(1)에 의해 열린 LATM 프레임의 생성을 예로서 설명한다. 우선, CELP 인코더(12)(도 1 참조)의 출력 데이터 블록들(11, 12, 13, 14)이 생성되어 버퍼링된다. 동시에 도 2c에서 "1"에 의해 지정된 AAC 인코더의 출력 데이터 블록이 생성된다. 그리고, AAC 인코더의 출력 데이터 블록이 생성되었을 때, 모드 결정 데이터 블록의 첫 번째(헤더 1)가 기입된다. 협약에 따라서, 처음 생성되고 도 2c에서 11로 표시된 제 1 인코더의 출력 데이터 블록이 기입될 수 있다. 즉, 헤더(1) 바로 다음에 전송될 수 있다. 통상적으로 (약간의 필수적인 신호화 정보를 고려하면) 제 1 인코더의 출력 데이터 블록의 등간격이 데이터 스트림의 추가적인 기입 및/또는 전송을 위해, 도 2c에 나타낸 바와 같이 선택된다. 이것은 기입 및/또는 전송 블록(11) 다음에 제 1 인코더의 제 2 출력 데이터 블록(12), 다음에 제 1 인코더의 제 3 출력 데이터 블록(13) 및 그 다음에 제 1 인코더의 제 4 출력 데이터 블록(14)이 등간격으로 기입 및/또는 전송된다는 것을 의미한다. 제 2 인코더의 출력 데이터 블록(1)이 전송 중에 나머지 간격(gap)에 채워진다. 다음에, LATM 프레임이 완전히 기입, 즉 완전히 전송된다.
도 4 내지 도 6에 나타낸 공지된 비트 스트림 포맷들의 한가지 결점은, 그들이 스케일러블 데이터 스트림에 적합하지는 않다는 점이다.
공지된 비트 스트림 포맷의 다른 결점은, 스케일러블 데이터 스트림에 대한 비트 스트림 포맷은 존재하지 않는다는 것이며, 따라서 다른 시간 기반을 갖는 인코더의 출력 데이터를 갖는 스케일러블 데이터 스트림에 대한 비트 세이빙 뱅크 기능이 스케일러블 인코딩 장치의 CELP 인코더 및 AAC 인코더의 조합에 이용될 수 없게 된다. 그러나, 일정한 전송 속도가 요구되지만 AAC 인코더는 인코딩된 신호의 특성에 따라서 다른 길이의 블록들을 출력하므로, AAC 인코더가 상기 전송 속도에 의해 미리 정해진 것보다 시간 신호의 섹션의 인코딩에 더 많은 비트를 요구하는 한편, 출력 데이터 속도에 의해 미리 정해진 것보다 다른 섹션에 대한 더 적은 비트를 요구하는 경우가 당연히 발생한다. 따라서, 스케일러블 인코딩 장치의 AAC인코더는 후자의 경우에 비트가 부족하게 되지만, 스케일러블 인코딩 장치의 AAC 인코더는 일정한 출력 데이터 속도를 유지하기 위하여 전자의 경우에 인코딩되고 다시 디코딩된 신호로 가청 간섭을 도입하는 것을 피할 수 없게 된다.
발명의 요약
본 발명의 목적은 스케일링 층에 대한 비트 세이빙 뱅크 기능의 이용에 적합한 스케일러블 데이터 스트림을 생성하는 방법 및 장치와, 스케일러블 데이터 스트림을 디코딩하는 방법 및 장치를 제공하는 것이다.
본 발명의 제 1 관점에 따르면, 이 목적은 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 생성하는 방법에 의해 달성되며, 여기에서, 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 함께 상기 제 1 인코더에 대한 입력 신호의 현재 섹션을 형성하는 상기 제 1 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 상기 제 2 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더에 대한 상기 샘플 수는 상기 제 2 인코더에 대한 입력 신호의 현재 섹션을 나타내고, 상기 제 1 인코더에 대한 상기 샘플 수 및 제 2 인코더에 대한 상기 샘플 수는 동일하며, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 소정 기간만큼 서로에 대하여 시프트되며, 상기 스케일러블 데이터 스트림의 생성 방법은, 상기 제 1 또는 제 2 인코더에 대한 상기 입력신호의 현재 섹션에 대한 결정 데이터 블록을 기입하는 단계; 상기 결정 데이터 블록의 다음에 인코더로부터 디코더로의 전송 방향으로, 상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션을 나타내는 상기 제 2 인코더의 출력 데이터를 기입하는 단계; 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 기입되면, 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 나타내는 상기 제 2 인코더의 출력 데이터를 기입하는 단계; 버퍼 정보를 상기 스케일러블 데이터 스트림 내에 기입하는 단계로서, 여기서 상기 버퍼 정보는 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 제 2 인코더에 대한 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타내는 단계; 및 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록을 상기 스케일러블 데이터 스트림내에 기입하는 단계를 포함한다.
본 발명의 제 2 관점에 따르면, 상기 목적은 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 생성하는 장치에 의해 달성되며, 여기서 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 함께 상기 제 1 인코더에 대한 입력 신호의 현재 섹션을 형성하는 상기 제 1 인코더에 대한 상기 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 상기 제 2 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더에 대한 상기 샘플 수는 상기 제 2 인코더에 대한 입력 신호의 현재 섹션을 형성하고, 상기 제 1 인코더에 대한 상기 샘플 수 및 제2 인코더에 대한 상기 샘플 수는 동일하며, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 소정 기간만큼 서로에 대하여 시프트되며, 상기 스케일러블 데이터 스트림의 생성 장치는, 상기 제 1 또는 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 결정 데이터 블록을 기입하는 수단; 상기 결정 데이터 블록의 다음에 인코더로부터 디코더로의 전송 방향으로, 상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션을 나타내는 상기 제 2 인코더의 출력 데이터를 기입하는 수단; 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 기입되면, 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 나타내는 상기 제 2 인코더의 출력 데이터를 기입하는 수단; 버퍼 정보를 상기 스케일러블 데이터 스트림 내에 기입하는 수단으로서, 상기 버퍼 정보는 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 제 2 인코더에 대한 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타내는 수단; 및 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록을 상기 스케일러블 데이터 스트림 내에 기입하는 수단을 포함한다.
본 발명의 제 3 관점에 따르면, 상기 목적은 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 디코딩하는 방법에 의해 달성되며, 여기서 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 함께 상기 제 1 인코더에 대한 입력 신호의 현재 섹션을 형성하는 상기 제 1 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 상기 제 2 인코더에 대한 상기 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더에 대한 상기 샘플 수는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 형성하고, 상기 제 1 인코더에 대한 상기 샘플 수 및 제 2 인코더에 대한 상기 샘플 수는 동일하고, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 소정 기간만큼 서로에 대하여 시프트되며, 상기 스케일러블 데이터 스트림은 상기 제 1 또는 제 2 인코더에 대한 상기 현재 섹션에 대한 결정 데이터 블록, 상기 결정 데이터 블록 다음에 전송 방향으로 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터, 및 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타내는 버퍼 정보를 포함하며, 상기 스케일러블 데이터 스트림의 디코딩 방법은, 상기 제 1 또는 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 상기 결정 데이터 블록을 판독하는 단계; 상기 제 1 인코더의 현재 섹션에 대한 상기 제 1 인코더의 출력 데이터를 판독하는 단계; 상기 버퍼 정보를 판독하는 단계; 상기 버퍼 정보에 의해 지시된 상기 스케일러블 데이터 스트림내의 한 위치로부터 시작되는 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터를 판독하는 단계; 및 상기 제 2 인코더의 출력 데이터와 상기 제 1 인코더의 출력 데이터를 디코딩하여 디코딩된 신호를 얻는 단계를 포함한다.
본 발명의 제 4 관점에 따르면, 상기 목적은 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 디코딩하는 장치에 의해 달성되며, 여기서 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 함께 상기 제 1 인코더에 대한 입력 신호의 현재 섹션을 형성하는 상기 제 1 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 상기 제 2 인코더에 대한 상기 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더에 대한 상기 샘플 수는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 형성하고, 상기 제 1 인코더에 대한 상기 샘플 수 및 제 2 인코더에 대한 상기 샘플 수는 동일하고, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 소정 기간만큼 서로에 대하여 시프트되며, 상기 스케일러블 데이터 스트림은 상기 제 1 또는 제 2 인코더에 대한 상기 현재 섹션에 대한 결정 데이터 블록, 상기 결정 데이터 블록 다음에 전송 방향으로 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터, 및 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타내는 버퍼 정보를 포함하며, 상기 스케일러블 데이터 스트림의 디코딩 장치는, 이하의 단계, 즉 상기 제 1 또는 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 상기 결정 데이터 블록을 판독하는 단계; 상기 제 1 인코더의 현재 섹션에 대한 상기 제 1 인코더의 출력 데이터를 판독하는 단계; 상기 버퍼 정보를 판독하는 단계; 및 상기 버퍼 정보에 의해 지시된 상기 스케일러블 데이터 스트림내의 한 위치로부터 시작되는 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터를 판독하는 단계를 수행할 수 있도록 적용되는 비트 스트림 디멀티플렉서(demultiplexer): 및 상기 제 2 인코더의 출력 데이터와 상기 제 1 인코더의 출력 데이터를 디코딩하여 디코딩된 신호를 얻는 수단을 포함한다.
본 발명은 도 2c에 나타낸 공지된 개념, 즉 상기 제 2 인코더의 출력 데이터 블록의 임의의 데이터가 2개의 연속하는 LATM 헤더들 사이에 배치된다는 개념을 포기할 필요가 있다는 발견에 기초하고 있다. 그 대신에, 입력 신호의 선행 시간 섹션을 나타내는 상기 제 2 인코더의 출력 데이터도 현재 시간 섹션에 대한 결정 데이터 블록 다음에 기입되는 것이 허용되며, 여기서 상기 결정 데이터 블록의 다음에 전송 방향으로 여전히 기입될 데이터의 수가 전송되는 특별한 버퍼 정보에 의해 디코더로 신호화된다.
디코더는 결정 데이터 블록에 기초하여 그리고 버퍼 정보를 이용하여 상기 제 2 인코더의 출력 데이터가 어디에서 시작되는지 및 상기 현재 시간 섹션에 대한 상기 제 2 인코더의 출력 데이터가 어디에서 시작되는지를 용이하게 결정할 수 있어서, 상기 디코더는 상기 제 1 인코더의 대응하는 출력 데이터 블록들을 제 2 인코더의 대응하는 출력 데이터 블록들과 연결시켜서 모든 층에서 신호를 디코딩할 수 있게 되며, 여기서 "대응하는"이라는 용어는 제 1 및 제 2 인코더의 각 데이터가 코어 코더 지연(CoreCoderDelay)이 0인 경우(도 1 참조)에 상기 입력 신호의 동일한 섹션 도는 코어 코더 지연만큼 시프트된 제 1 및 제 2 인코더에 대한 현재 섹션에 관계되어 있다는 사실에 관한 것이다.
제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림을 생성하는 독창적인 방법에 있어서, 결정 데이터 블록이 상기 입력 신호의 현재 섹션에 대하여기입된다. 또한, 상기 입력 신호의 선행 섹션을 나타내는 제 2 인코더의 출력 데이터가 상기 결정 데이터 블록의 다음에 인코더로부터 디코더로의 전송 방향으로 기입된다. 상기 입력 신호의 현재 섹션에 관한, 즉 상기 결정 데이터 블록에 실제로 속하는 상기 제 2 인코더의 출력 데이터는, 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 완전히 기입된 경우에 기입될 수 있다. 또한, 버퍼 정보가 상기 스케일러블 데이터 스트림 내에 기입되며, 여기서 이 버퍼 정보는 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 현재 섹션에 대한 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타낸다. 상기 제 1 인코더의 출력 데이터는 상기 스케일러블 데이터 스트림 내에 등간격으로 기입되거나 또는 전혀 기입되지 않을 수 있지만, 여기서 이들 데이터 블록을 등간격으로 및 지연 최적화된 방식으로 기입하기 위하여 제 1 스케일링 층만의, 즉 제 1 인코더의 출력 데이터 블록만의 저지연 디코딩을 용이하게 하는 것이 지연 이유 때문에 바람직하다.
통상적으로, 비트 세이빙 뱅크의 최대 크기에 의해 다른 것들 중에서 비트 세이빙 뱅크가 정의되며, 여기서 이 값은 도 3에서 "최대 버퍼 충만"이라고 표시되어 있다. 이 값은 고정 값으로 인코더에 알려진다. 또한, 비트 세이빙 뱅크를 차지하고 있는 현재 값이 데이터 스트림 내에 전송되면, "버퍼 충만"이라고 표시되어 있다. 가변 최대 버퍼 충만 및 버퍼 충만 사이의 차이는 본 발명이 MPEG-4 인코더에 이용되는 경우에 버퍼 정보를 제공하며, 이 경우에 이하에서 논의되는 바와 같이, LATM 결정 데이터 블록의 다음에 제 2 데이터 블록의 출력 데이터의 시작의 정확한 값을 찾아내기 위하여 AAC 블록에서 내부 확산되는 CELP 블록이나 다른 스케일링 층의 데이터는 고려되지 않을 수 있음이 고려되어야 한다.
그러나, 비트 세이빙 뱅크의 기능성과는 독립적으로, 독창적인 포맷은 제 2 인코더의 변하는 길이의 출력 데이터 블록을 결정 데이터 블록의 등간격 격자로 전송하는 것을 용이하게 한다. 따라서, 상기 결정 데이터 블록에 대한 격자 및 상기 제 1 인코더의 출력 데이터 블록에 대한 격자를 등간격으로 선택하는 것, 특히 결정 데이터 블록 다음에 항상 제 1 인코더의 출력 데이터 블록이 뒤따르도록 선택하는 것이 바람직하다. 다음에 제 2 인코더의 출력 데이터 블록이 나머지 갭에 기입되며, 여기서 결정 데이터 블록 다음의 제 2 인코더의 얼마나 많은 데이터가 상기 결정 데이터 블록이 참조하는 또는 상기 입력 신호의 선행 시간 섹션 중에서 여전히 카운트되는 시간 섹션에 속하는가 하는 버퍼 정보에 의해 신호화되어, 디코더는 상기 입력 신호의 시간 셕센에 대한 제 2 인코더의 출력 데이터 블록 및 제 1 인코더의 출력 데이터 블록간의 연관을 명확하고 확실하게 제공할 수 있다.
본 발명의 다른 이점은, 제 1 스케일링 층만의 저지연 디코딩을 용이하게 하기 위하여 결정 데이터 블록 다음의 출력 데이터 블록의 신호화가 현재 시간 섹션에 대한 결정 데이터 블록 앞의 제 1 인코더의 출력 데이터 블록의 신호화와 용이하게 결합될 수 있다는 점이다.
이러한 독창적인 스케일러블 데이터 스트림은 특히 실시간 응용품들에 유용하지만, 비실시간 응용품들에도 적용될 수 있다.
도면의 간단한 설명
이하에서, 본 발명의 바람직한 실시 예가 첨부 도면을 참조하여 보다 상세하게 기재된다.
도 1은 MPEG 4에 따른 스케일러블 인코더(scalable encoder)를 나타낸다.
도 2a는 연속하는 시간 섹션들로 분할된 입력 신호를 개략적으로 나타낸다.
도 2b는 연속하는 시간 섹션들로 분할된 입력 신호를 개략적으로 나타내고 있으며, 여기서 제 2 인코더의 블록 길이에 대한 제 1 인코더의 블록 길의 비가 도시되어 있다.
도 2c는 제 1 스케일링 층을 디코딩할 때 높은 지연을 갖는 스케일러블 데이터 스트림을 개략적으로 나타낸다.
도 2d는 제 1 스케일링 층을 디코딩할 때 저지연을 갖는 스케일러블 데이터 스트림을 개략적으로 나타낸다.
도 2e는 현재 섹션에 대한 결정 데이터 블록 다음에 선행 시간 섹션으로부터의 제 2 인코더의 출력 데이터만이 배치되어 있는, 본 발명에 따른 비트 스트림 포맷을 나타낸다.
도 3은 제 1 인코더로서의 CELP 인코더 및 비트 세이빙 뱅크 기능을 갖는 제 2 인코더로서의 AAC 인코더의 예에서 독창적인 스케일러블 데이터 스트림을 상세하게 나타낸다.
도 4는 고정 프레임 길이를 갖는 비트 스트림 포맷의 예를 나타낸다.
도 5는 고정 프레임 길이 및 백 포인터(backpointer)를 갖는 비트 스트림 포맷의 예를 나타낸다.
도 6은 가변 프레임 길이를 갖는 비트 스트림 포맷의 예를 나타낸다.
바람직한 실시예의 상세한 설명
이하에서는, 도 2c와 도 2d를 참조 및 비교하여 제 1 스케일링 층에 대한 저지연을 갖는 비트 스트림을 설명한다. 도 2c에 나타낸 바와 같이, 스케일러블 데이터 스트림은 헤더 1 및 헤더 2라고 불리는 연속하는 결정 데이터 블록들을 포함하고 있다. MPEG 4에에서, 결정 데이터 블록들은 LATM 헤더들이다. 도 2d에 화살표 202로 도시되어 있는 바와 같이, 인코더로부터 디코더로의 전송 방향으로 LATM 헤더(200)의 뒤에, 우상부로부터 좌하부로 빗금친 AAC 인코더의 출력 데이터 블록의 일부가 배치되어 있으며, 제 1 인코더의 출력 데이터 블록들 사이에 남아 있는 갭에 삽입되어 있다.
또, 도 2c와는 반대로, LATM 헤더(200)에 의해 시작된 프레임 내에 예컨대 출력 데이터 블록들(13, 14) 같이 이 프레임에 속하는 제 1 인코더의 출력 데이터 블록들이 발견될 뿐만 아니라, 입력 데이터의 후속 섹션의 출력 데이터 블록들(21 및 22)도 발견된다. 환언하면, 도 2d에 나타낸 예에서는, 11 및 12로 표시된 제 1 인코더의 2개의 출력 데이터 블록들이 비트 스트림 내에서 LATM 헤더(200)의 앞에 전송 방향(화살표 202)으로 존재한다. 도 2d에 나타낸 예에서, 오프셋 정보(204)는 2개의 출력 데이터 블록만큼의 제 1 인코더의 출력 데이터 블록들의 오프셋을 나타낸다. 도 2d를 도 2c와 비교하면, 디코더가 제 1 스케일링 층에 주목하는 경우 디코더가 도 2c의 경우보다도 이 오프셋에 대응하는 시간만큼 더 빨리 최저 스케일링 층을 디코딩할 수 있음에 유의해야 한다. 예컨대 "코어 프레임 오프셋(core frame offset)"의 형태로 신호화될 수 있는 오프셋 정보는 비트 스트림내의 제 1 출력 데이터 블록(11)의 위치를 결정하도록 작용한다.
코어 프레임 오프셋이 0인 경우에, 도 2c에 나타낸 비트 스트림이 발생한다. 그러나, 코어 프레임 오프셋이 0보다 크다면, 제 1 인코더(11)의 대응하는 출력 데이터 블록이 제 1 인코더의 출력 데이터 블록에서의 코어 프레임 오프셋의 수만큼 빨리 전송된다. 환언하면, LATM 헤더 다음의 제 1 인코더의 제 1 출력 데이터 블록과 제 1 AAC 프레임 사이의 지연이 코어 코더 지연(도 1) + 코어 프레임 오프셋×코어 블록 길이(도 2b의 인코더(1)의 블록 길이)로부터 생긴다. 도 2c와 도 2d의 비교로부터 분명해지는 바와 같이, 코어 프레임 오프셋이 0인 경우(도 2c), 제 1 인코더의 출력 데이터 블록들(11 및 12)이 LATM 헤더(200)의 다음에 전송된다. 코어 프레임 오프셋 = 2의 전송에 의해, 출력 데이터 블록들(13 및 14)이 LATM 헤더(200)를 뒤따를 수 있으며, 이에 의해 순수 CELP 디코딩, 즉 제 1 스케일링 층의 디코딩을 갖는 지연이 2개의 CELP 블록 길이만큼 감소된다. 세개 블록의 오프셋이 이 예에서는 최적이다. 하지만, 하나 또는 두개 블록의 오프셋은 이미 지연 이점을 야기시켰다.
이 비트 스트림 설정을 통하여 CELP 인코더가 인코더 직후에 생성된 CELP 블록을 전송하는 것이 가능하다. 이 경우에, 비트 스트림 멀티플렉서(20)에 의해 추가 지연이 CELP 인코더에 부가되지 않는다. 따라서, 이 경우에 스케일러블 조합에의해 CELP 지연에 추가적인 지연이 부가되지 않아서, 지연은 최소가 된다.
도 2d에 나타낸 경우는 단지 예시적인 것일 뿐이다. 이런 식으로 제 2 인코더의 블록 길이에 대한 제 1 인코더의 블록 길이의 다른 비율이 가능하며, 예컨대 1:2 로부터 1:12까지 변할 수 있지만 다른 비율을 취할 수도 있으며, 여기서 1보다 크거나 작은 비율이 생길 수도 있다.
극단적인 경우(MPEG 4 CELP/AAC에 대하여 1:12), 이것은 AAC 인코더가 하나의 출력 데이터 블록을 생성하는 입력 신호의 동일한 시간 섹션에 대하여 CELP 인코더가 12개의 출력 데이터 블록들을 생성한다는 것을 의미한다. 도 2c에 나타낸 데이터 스트림 대 도 2d에 나타낸 데이터 스트림에 의한 지연 이점은 이 경우에 1/4 로부터 1/2까지의 크기를 취할 수 있다는 것이다. 이러한 이점은 제 2 인코더의 블록 길이와 제 1 인코더의 블록 길이 사이의 비가 커질수록 증가하며, 제 2 인코더로서의 AAC 인코더의 경우에 인코딩되는 신호가 용이하게 할 때 유용한 정보와 부수 정보간의 선호되는 비율로 인하여 가능한 한 큰 블록 길이가 추구된다.
이하에서, 도 2e를 참조하여 설명한다. 오프셋 기능, 즉 제 1 인코더의 출력 데이터 블록들의 결정 데이터 블록에 대한 시프트가 도시되어 있는 도 2d와는 반대로, 도 2e에서는 제 2 인코더의 출력 데이터 블록들의 결정 데이터 블록에 의해 주어진 격자에 대한 독창적인 시프트가 도시되어 있다. 도 2e에서 11, 12, 13, 14, 21, 22, 23, 24, 31로 표시된 제 1 인코더의 출력 데이터 블록들의 배치는 도 2d에 대하여 변하지 않는다. 어떤 비트 세이빙 뱅크 기능도 도 2d에서는 가능하지 않지만, 즉 결정 데이터 블록들이 견고한 격자에 존재해야 하는 경우, 제 2 인코더에는 가변 길이의 출력 데이터 블록들이 이용될 수 없으며, 이는 본 발명에 따른 도 2e에서 가능하다.
이를 위하여, 스케일러블 인코더가 선행 섹션의 임의의 데이터를 비트 스트림으로의 기입을 완료할 때까지 도 2a 내지 도 2e에서 "0"으로 표시된 선행 섹션의 제 2 인코더의 출력 데이터 블록으로부터의 데이터가 LATM 헤더(200) 다음에 인코더로부터 디코더로의 전송 방향으로 기입된다. 이 때에만, 입력 신호의 현재 섹션에 대한 제 2 인코더의 출력 데이터를 비트 스트림 내에 기입하는 것이 전송 한계(220)에서 시작된다. 따라서, 전송 한계(220)는 CELP 데이터 블록의 한계에 일치하거나 일치하지 않을 수 있다. 이러한 신호화에 따라서, 결정 데이터 블록의 끝에서 상기 전송 한계(220)에 이르는 거리나 결정 데이터 블록의 시작에서 상기 전송 한계(220)에 이르는 거리나 또는 CELP 블록(13)의 후방 한계에서 상기 전송 한계(220)에 이르는 거리가 CELP 블록(13, 14)의 길이 및/또는 결정 데이터 블록의 길이와 함께 또는 그들 길이 없이 버퍼 정보로서 신호화될 수 있다. 후자의 변형을 도 3을 참조하여 보다 상세히 설명한다.
본 발명에 따르면, 스케일러블 정수에 대한 응용의 경우에 버퍼 정보를 신호화하기 위한 어떠한 본래의 부수 정보도 제공하지 않지만 이를 위하여 비트 스트림에서 이미 전송된 버퍼 충만 값을 이용하는 것이 바람직하며, 여기서 도 2e에서 "버퍼 충만"으로 표시되어 있으며 도 3에서 참조 번호 314로 표시되어 있는 포인터의 길이는, 결정 데이터 블록의 길이와 존재 가능한 CELP 블록 및 존재 가능한 다른 스케일링 층들의 길이가 고려되지 않는 경우에, 도 3을 참조하여 점선으로 그려진 화살표로 나타낸 바와 같이 최대 버퍼 충만 및 버퍼 충만간의 차이에 정확히 일치한다.
이하에서, 도 2와 유사하지만 MPEG 4의 예에서 특별한 구현예를 나타내는 도 3을 참조하여 설명한다. 첫번째 라인에서 현재 시간 섹션이 빗금으로 나타나 있다. 두번째 라인에서 AAC 인코더에 이용되는 윈도우(window)가 개략적으로 나타나 있다. 공지된 바와 같이, 50%의 중복-부가를 이용하여 윈도우는 통상적으로 도 3의 첫번째 라인에 빗금으로 나타낸 현재 시간 섹션보다 2배 긴 시간 샘플 길이를 갖는다. 도 3에서, 지연(tdip)이 더 도시되어 있으며, 이는 도 1의 블록(25)에 대응하며 선택된 예에서 블록 길이의 5/8 크기를 갖는다. 통상적으로, 960개 샘플의 현재 시간 섹션의 블록 길이를 이용하여 블록 길이의 5/8 지연(tdip)은 600개의 샘플에 이른다. 예컨대, AAC 인코더는 24kbit/s의 비트 스트림을 제공하는 한편, 아래에 개략적으로 나타낸 CELP 인코더는 8kbit/s의 속도를 갖는 비트 스트림을 제공한다. 전체 비트 레이트는 따라서 32kbit/s이다.
도 3으로부터 알 수 있는 바와 같이, CELP 인코더의 출력 데이터 블록 0 및 1은 제 1 인코더의 현재 시간 섹션에 대응한다. CELP 인코더의 번호 2를 갖는 출력 데이터 블록은 이미 다음 시간 섹션에 대응하고 있다. 번호 3을 갖는 CELP 블록에 대하여도 마찬가지이다. 도 3에서, 다운샘플링(downsampling) 스테이지(28) 및 CELP 인코더(12)의 지연은 참조번호 302에 의해 나타나 있는 화살표에 의해 더 설명되고 있다. 이로부터, 도 1의 감산 위치(40)에서 동일한 상태가 존재하도록 스테이지 34에 의해 설정되어야 하는 지연으로서, 코어 코더 지연에 의해 지정되고도 3에서 화살표 304에 의해 도시된 지연이 발생한다. 이 지연은 블록 26에 의해 대안적으로 생성될 수 있다. 예컨대,
코어 코더 지연 = tdip - CELP 인코더 지연 - 다운샘플링 지연
= 600 - 120 - 117 = 363 샘플
이 성립한다.
비트 세이빙 뱅크 기능이 없는 경우 및 가변 버퍼 충만 = 최대에 의해 표시되는 비트 세이빙 뱅크(bitmux 출력 버퍼)가 충만되어 있는 경우에, 도 2d에 표시된 경우가 발생한다. 제 1 인코더의 4개의 출력 데이터 블록이 제 2 인코더의 1개의 출력 데이터 블록에 대응하여 생성되는 도 2d와는 반대로, 도 3에서는 "0" 및 "1"로 표시된 CELP 인코더의 2개의 출력 데이터 블록이 도 3의 마지막 두개 라인에서 검게 그려진 제 2 인코더의 1개의 출력 데이터 블록에 대하여 생성된다. 그러나, 본 발명에 따르면, 제 1 LATM 헤더(306) 뒤에는, 번호 "0"을 갖는 CELP 인코더의 출력 데이터 블록이 더 이상 기입되지 않고, 번호 "0"을 갖는 출력 데이터 블록이 이미 디코더로 다시 전송되었으므로 번호 "1"을 갖는 CELP 인코더의 출력 데이터 블록이 기입된다. CELP 데이터 블록에 제공되는 등간격의 격자 간격에서, CELP 블록 1의 다음에 다음 시간 섹션에 대한 CELP 블록 2가 뒤따르며, 프레임의 종료를 위하여 다음 시간 섹션에 대한 다음 LATM 헤더(308)가 뒤따를 때까지 AAC 인코더의 출력 데이터 블록의 나머지 데이터가 데이터 스트림에 기입된다.
본 발명은 도 3의 마지막 라인에 도시된 바와 같이 비트 세이빙 뱅크 기능과 단순 결합될 수도 있다. 비트 세이빙 뱅크의 채움(filling)을 나타내는 가변 "버퍼 충만"이 최대 값보다 작은 경우에, 실제로 허용되는 것보다 많은 비트를 필요로 하는 바로 선행하는 시간 섹션에 대한 AAC 프레임을 의미한다. 이것은 또한, LATM 헤더(306)의 뒤에 CELP 프레임이 전과 같이 기입되지만, 현재의 시간 섹션에 대한 AAC 인코더의 출력 데이터 블록의 기입이 개시될 수 있기 전에 먼저 선행 시간 섹션들로부터의 AAC 인코더의 적어도 하나의 출력 데이터 블록이 비트 스트림 내에 기입되어야 함을 의미한다. "1" 및 "2"로 표시된 도 3의 마지막 두개 라인의 비교로부터, 비트 세이빙 뱅크 기능이 또한 AAC 프레임에 대한 인코더에서의 지연을 직접 초래할 수 있음을 알 수 있다. 그래서, 도 3에서 310으로 표시된 현재 시간 영역의 AAC 프레임에 대한 데이터가 "1"의 경우와 동일한 시점에서 존재하지만 바로 선행하는 시간 섹션에 대한 AAC 데이터(312)가 비트 스트림 내에 기입된 후에만 비트 스트림에 기입될 수 있다. 그러므로, AAC 인코더의 비트 세이빙 뱅크 레벨에 따라서 AAC 프레임의 초기 위치가 시프트된다.
비트 세이빙 뱅크 레벨은 성분(StreamMuxConfig)에서의 MPEG4 에 따른 가변 "버퍼 충만"에 의해 전송된다. 가변 버퍼 충만은 오디오 채널의 실제 존재하는 채널 수의 32배만큼 분할된 가변 비트 저장소로부터 산출된다.
그 길이가 최대 버퍼 충만 - 버퍼 충만이고 도 3에서 참조 번호 314에 의해 표시된 포인터는 소위 미래를 지시하는 포워드 포인터(forward-pointer)인 반면에, 도 1에 나타낸 포인터는 소위 과거를 지시하는 백워드 포인터(backward-pointer)이다. 그 이유는, 본 실시 예에 따르면, 선행 시간 섹션으로부터의 ACC 데이터는 비트 스트림에 기입될 가능성이 있지만, LATM 헤더는 항상 현재 시간 섹션이 AAC 인코더에 의해 처리된 후에 비트 스트림에 기입되기 때문이다.
포인터(314)는 CELP 블록 2의 길이 또는 CELP 블록 1의 길이를 고려하지 않을 뿐만 아니라 이 데이터는 물론 AAC 인코더의 비트 세이빙 뱅크와는 아무 관계가 없으므로, 이 포인터(314)는 CELP 블록 2 아래에 의도적으로 인터럽트(interrupt)된 것으로 그려져 있음에도 유의해야 한다. 또, 어떤 헤더 데이터 및 존재할 수 있는 다른 층들의 비트도 고려되지 않는다.
디코더에서는 우선 비트 스트림으로부터의 CELP 프레임의 추출이 수행되며 이는 쉽게 가능한데, 이는 상기 프레임들이 예컨대 등간격으로 배치되어 있고 고정 길이를 갖기 때문이다.
LATM 헤더에서는, 모든 CELP 블록의 길이 및 거리가 신호화될 수 있어 모든 경우에 직접적인 디코딩이 가능하다.
이에 의해, CELP 블록 2에 의해 소위 분리된 바로 선행하는 시간 섹션의 AAC 인코더의 출력 데이터의 부분들이 다시 연결될 수 있고 LATM 헤더(306)가 포인터(314)의 시작으로 이동하며, 따라서 포인터(314)의 길이를 아는 디코더는 바로 선행하는 시간 섹션의 데이터가 언제 끝나는지를 알게 되어 이들 데이터가 완전히 판독된 때 완전한 오디오 품질을 갖는 데이터에 대하여 존재하는 CELP 블록과 함께 바로 선행하는 시간 섹션을 디코딩할 수 있다.
LATM 헤더 다음에 제 2 인코더의 출력 데이터 블록뿐만 아니라 제 1 인코더의 출력 데이터 블록이 뒤따르는 도 2c에 나타낸 경우와는 반대로, 제 1 인코더의 출력 데이터 블록의 비트 스트림 내에서 앞쪽으로의 시프트는 가변 코어 프레임 오프셋에 의해 수행될 수 있는 한편, 화살표 314(최대 버퍼 충만 - 버퍼 충만)에 의해 제 2 인코더의 출력 데이터 블록의 스케일러블 데이터 스트림 내에서의 뒤쪽으로의 시프트가 달성될 수 있다. 이에 의해, 비트 세이빙 뱅크 기능이 스케일러블 데이터 스트림 내에서 쉽고도 안전하게 구현될 수 있는 한편, AAC 인코더가 시간 섹션을 인코딩했을 때 항상 기입되며 따라서 LATM 헤더에 의해 표시된 프레임 내의 데이터의 대부분이 도 3의 최종 라인에 나타낸 바와 같이 (CELP 프레임에 대해서는) 다음 시간 섹션으로부터 또는 (AAC 프레임에 대해서는) 선행 시간 섹션으로부터 생길 때에도 기준점으로서 작용할 수 있는, 연속하는 LATM 결정 데이터 블록에 의해 비트 스트림의 기본적인 격자가 유지된다. 여기서, 각각의 시프트는 비트 스트림 내에 추가적으로 전송되는 2개의 변수에 의해 디코더로 제공된다.

Claims (11)

  1. 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 생성하는 방법으로서, 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 함께 상기 제 1 인코더에 대한 입력 신호의 현재 섹션을 형성하는 상기 제 1 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 상기 제 2 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더에 대한 상기 샘플 수는 상기 제 2 인코더에 대한 입력 신호의 현재 섹션을 나타내고, 상기 제 1 인코더에 대한 상기 샘플 수 및 제 2 인코더에 대한 상기 샘플 수는 동일하며, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 소정 기간만큼 서로에 대하여 시프트되는, 스케일러블 데이터 스트림의 생성 방법에 있어서,
    상기 제 1 또는 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 결정 데이터 블록을 기입하는 단계;
    상기 결정 데이터 블록의 다음에 인코더로부터 디코더로의 전송 방향으로, 상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션을 나타내는 상기 제 2 인코더의 출력 데이터를 기입하는 단계;
    상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 기입되면, 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 나타내는 상기 제 2인코더의 출력 데이터를 기입하는 단계;
    버퍼 정보를 상기 스케일러블 데이터 스트림 내에 기입하는 단계로서, 여기서 상기 버퍼 정보는 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 제 2 인코더에 대한 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타내는 단계; 및
    상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록을 상기 스케일러블 데이터 스트림 내에 기입하는 단계를 포함하는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  2. 제 1 항에 있어서,
    상기 제 2 인코더의 출력 데이터의 블록 길이는 동일한 길이의 상기 입력 신호의 섹션들에 대하여 다르고, 출력 데이터의 상기 블록 길이는 상기 입력 신호의 신호 특성에 좌우되고;
    상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 동일한 길이의 상기 입력 신호의 섹션들에 대하여 동일한 길이를 가지며; 그리고
    상기 비트 스트림의 전송 속도는 일정한 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  3. 제 1 항에 있어서,
    상기 제 2 인코더는 비트 세이빙 뱅크(bit savings bank) 기능을 가지며, 상기 비트 세이빙 뱅크의 최대 크기는 최대 버퍼 크기 정보에 의해 주어지며, 상기 비트 세이빙 뱅크의 현재 레벨은 현재 버퍼 정보에 의해 주어지고;
    상기 버퍼 정보는 현재 버퍼 정보이며; 그리고
    상기 크기, 즉 상기 선행 시간 섹션에 대한 상기 제 2 인코더의 상기 출력 데이터가 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지는 상기 최대 버퍼 크기 정보 및 상기 현재 버퍼 정보사이의 차이로부터 유도될 수 있는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  4. 제 1 항에 있어서,
    상기 제 1 인코더의 출력 데이터의 상기 기입은 상기 제 1 인코더의 출력 데이터의 한 블록이 결정 데이터 블록의 바로 다음에 배치되도록 수행되며; 그리고
    상기 현재 버퍼 정보 및 상기 최대 버퍼 크기 정보를 이용하여 상기 제 2 인코더의 상기 출력 데이터가 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 결정할 때, 상기 결정 데이터 블록의 길이 및 상기 제 1 인코더의 존재한 출력 데이터 블록들과 추가적인 스케일링 층들의 존재 가능한 데이터의 길이는 무시되는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  5. 제 1 항에 있어서,
    상기 제 1 인코더의 출력 데이터 블록들을 등간격으로 상기 스케일러블 데이터 스트림 내에 기입하도록 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록을 기입하는 수단이 구성되는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  6. 제 1 항에 있어서,
    상기 제 1 인코더는 CELP 인코더이고;
    상기 제 2 인코더는 AAC 인코더이며; 그리고
    상기 결정 데이터 블록은 MPEG 4에 따른 LATM 헤더인 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  7. 제 1 항에 있어서,
    상기 제 2 인코더의 출력 데이터의 상기 적어도 하나의 블록과 상기 제 1 인코더의 출력 데이터의 상기 적어도 하나의 블록은 페이로드(payload) 데이터로부터 떨어져 있는 정확히 하나의 결정 데이터 블록을 갖는 수퍼 프레임(superframe)내의 페이로드 데이터인 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  8. 제 1 항에 있어서,
    상기 제 1 인코더의 출력 데이터 블록들을 기입하는 단계에서, 상기 입력 신호의 현재 섹션에 대한 상기 제 1 인코더의 출력 데이터의 상기 적어도 하나의 블록은 상기 현재 시간 섹션에 대한 상기 결정 데이터 블록 앞에 전송 방향으로 상기 제 1 인코더에 대하여 기입되는 것을 특징으로 하는 스케일러블 데이터 스트림의생성 방법.
  9. 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 생성하는 장치로서, 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 함께 상기 제 1 인코더에 대한 입력 신호의 현재 섹션을 형성하는 상기 제 1 인코더에 대한 상기 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 상기 제 2 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더에 대한 상기 샘플 수는 상기 제 2 인코더에 대한 입력 신호의 현재 섹션을 형성하고, 상기 제 1 인코더에 대한 상기 샘플 수 및 제 2 인코더에 대한 상기 샘플 수는 동일하며, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 소정 기간만큼 서로에 대하여 시프트되는, 스케일러블 데이터 스트림의 생성 장치에 있어서,
    상기 제 1 또는 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 결정 데이터 블록을 기입하는 수단;
    상기 결정 데이터 블록의 다음에 인코더로부터 디코더로의 전송 방향으로, 상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션을 나타내는 상기 제 2 인코더의 출력 데이터를 기입하는 수단;
    상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 기입되면, 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 나타내는 상기 제 2인코더의 출력 데이터를 기입하는 수단;
    버퍼 정보를 상기 스케일러블 데이터 스트림 내에 기입하는 수단으로서, 상기 버퍼 정보는 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 제 2 인코더에 대한 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타내는 수단; 및
    상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록을 상기 스케일러블 데이터 스트림 내에 기입하는 수단을 포함하는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 장치.
  10. 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 디코딩하는 방법으로서, 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 함께 상기 제 1 인코더에 대한 입력 신호의 현재 섹션을 형성하는 상기 제 1 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 상기 제 2 인코더에 대한 상기 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더에 대한 상기 샘플 수는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 형성하고, 상기 제 1 인코더에 대한 상기 샘플 수 및 제 2 인코더에 대한 상기 샘플 수는 동일하고, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 소정 기간만큼 서로에 대하여 시프트되며, 상기 스케일러블 데이터 스트림은 상기 제 1 또는 제 2 인코더에 대한상기 현재 섹션에 대한 결정 데이터 블록, 상기 결정 데이터 블록 다음에 전송 방향으로 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터, 및 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타내는 버퍼 정보를 포함하는 스케일러블 데이터 스트림의 디코딩 방법에 있어서,
    상기 제 1 또는 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 상기 결정 데이터 블록을 판독하는 단계;
    상기 제 1 인코더의 현재 섹션에 대한 상기 제 1 인코더의 출력 데이터를 판독하는 단계;
    상기 버퍼 정보를 판독하는 단계;
    상기 버퍼 정보에 의해 지시된 상기 스케일러블 데이터 스트림내의 한 위치로부터 시작되는 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터를 판독하는 단계; 및
    상기 제 2 인코더의 출력 데이터와 상기 제 1 인코더의 출력 데이터를 디코딩하여 디코딩된 신호를 얻는 단계를 포함하는 것을 특징으로 하는 스케일러블 데이터 스트림의 디코딩 방법.
  11. 제 1 인코더의 출력 데이터의 하나 또는 수개의 블록 및 제 2 인코더의 출력 데이터의 하나 또는 수개의 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 디코딩하는 장치로서, 상기 제 1 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 함께 상기 제 1 인코더에 대한 입력 신호의 현재 섹션을 형성하는 상기 제 1 인코더에 대한 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더의 출력 데이터의 상기 하나 또는 수개의 블록은 상기 제 2 인코더에 대한 상기 입력 신호의 샘플 수를 나타내고, 상기 제 2 인코더에 대한 상기 샘플 수는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 형성하고, 상기 제 1 인코더에 대한 상기 샘플 수 및 제 2 인코더에 대한 상기 샘플 수는 동일하고, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 소정 기간만큼 서로에 대하여 시프트되며, 상기 스케일러블 데이터 스트림은 상기 제 1 또는 제 2 인코더에 대한 상기 현재 섹션에 대한 결정 데이터 블록, 상기 결정 데이터 블록 다음에 전송 방향으로 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터, 및 상기 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 결정 데이터 블록을 넘어서 얼마나 멀리 연장하는지를 나타내는 버퍼 정보를 포함하는 스케일러블 데이터 스트림의 디코딩 장치에 있어서,
    이하의 단계, 즉
    상기 제 1 또는 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 상기 결정 데이터 블록을 판독하는 단계;
    상기 제 1 인코더의 현재 섹션에 대한 상기 제 1 인코더의 출력 데이터를 판독하는 단계;
    상기 버퍼 정보를 판독하는 단계; 및
    상기 버퍼 정보에 의해 지시된 상기 스케일러블 데이터 스트림내의 한위치로부터 시작되는 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터를 판독하는 단계를 수행할 수 있도록 적용되는 비트 스트림 디멀티플렉서(demultiplexer); 및
    상기 제 2 인코더의 출력 데이터와 상기 제 1 인코더의 출력 데이터를 디코딩하여 디코딩된 신호를 얻는 수단을 포함하는 것을 특징으로 하는 스케일러블 데이터 스트림의 디코딩 장치.
KR10-2003-7009508A 2001-01-18 2002-01-14 비트 세이빙 뱅크 기능을 제공하여 스케일러블 데이터스트림을 생성하는 방법 및 장치와 스케일러블 데이터스트림을 디코딩하는 방법 및 장치 KR100516985B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10102154.2 2001-01-18
DE10102154A DE10102154C2 (de) 2001-01-18 2001-01-18 Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion
PCT/EP2002/000295 WO2002058051A2 (de) 2001-01-18 2002-01-14 Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkassenfunktion

Publications (2)

Publication Number Publication Date
KR20030076614A true KR20030076614A (ko) 2003-09-26
KR100516985B1 KR100516985B1 (ko) 2005-09-26

Family

ID=7670983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7009508A KR100516985B1 (ko) 2001-01-18 2002-01-14 비트 세이빙 뱅크 기능을 제공하여 스케일러블 데이터스트림을 생성하는 방법 및 장치와 스케일러블 데이터스트림을 디코딩하는 방법 및 장치

Country Status (10)

Country Link
US (1) US7496517B2 (ko)
EP (1) EP1354314B1 (ko)
JP (1) JP3890298B2 (ko)
KR (1) KR100516985B1 (ko)
AT (1) ATE272884T1 (ko)
AU (1) AU2002242667B2 (ko)
CA (1) CA2434783C (ko)
DE (2) DE10102154C2 (ko)
HK (1) HK1056790A1 (ko)
WO (1) WO2002058051A2 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844727B2 (en) * 2003-04-24 2010-11-30 Nokia Corporation Method and device for proactive rate adaptation signaling
KR100647336B1 (ko) * 2005-11-08 2006-11-23 삼성전자주식회사 적응적 시간/주파수 기반 오디오 부호화/복호화 장치 및방법
EP1841072B1 (de) * 2006-03-30 2016-06-01 Unify GmbH & Co. KG Verfahren und Einrichtung zum Dekodieren von schichtkodierten Daten
FR2911228A1 (fr) * 2007-01-05 2008-07-11 France Telecom Codage par transformee, utilisant des fenetres de ponderation et a faible retard.

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3943879B4 (de) * 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
US5365552A (en) * 1992-11-16 1994-11-15 Intel Corporation Buffer fullness indicator
DE19549621B4 (de) * 1995-10-06 2004-07-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zum Codieren von Audiosignalen
US5758092A (en) * 1995-11-14 1998-05-26 Intel Corporation Interleaved bitrate control for heterogeneous data streams
US6092041A (en) * 1996-08-22 2000-07-18 Motorola, Inc. System and method of encoding and decoding a layered bitstream by re-applying psychoacoustic analysis in the decoder
KR100261253B1 (ko) * 1997-04-02 2000-07-01 윤종용 비트율 조절이 가능한 오디오 부호화/복호화 방법및 장치
KR100261254B1 (ko) * 1997-04-02 2000-07-01 윤종용 비트율 조절이 가능한 오디오 데이터 부호화/복호화방법 및 장치
KR100335609B1 (ko) 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
WO1999033274A1 (en) * 1997-12-19 1999-07-01 Kenneth Rose Scalable predictive coding method and apparatus
KR100354531B1 (ko) * 1998-05-06 2005-12-21 삼성전자 주식회사 실시간 복호화를 위한 무손실 부호화 및 복호화 시스템
US6182031B1 (en) * 1998-09-15 2001-01-30 Intel Corp. Scalable audio coding system
JP2000307661A (ja) * 1999-04-22 2000-11-02 Matsushita Electric Ind Co Ltd 符号化装置および復号化装置
US6904089B1 (en) * 1998-12-28 2005-06-07 Matsushita Electric Industrial Co., Ltd. Encoding device and decoding device
US6446037B1 (en) * 1999-08-09 2002-09-03 Dolby Laboratories Licensing Corporation Scalable coding method for high quality audio
DE60208426T2 (de) * 2001-11-02 2006-08-24 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur signalkodierung, signaldekodierung und system zum verteilen von audiodaten

Also Published As

Publication number Publication date
WO2002058051A2 (de) 2002-07-25
DE50200750D1 (de) 2004-09-09
CA2434783C (en) 2008-04-15
DE10102154C2 (de) 2003-02-13
DE10102154A1 (de) 2002-08-08
WO2002058051A3 (de) 2002-09-19
AU2002242667B2 (en) 2004-11-25
ATE272884T1 (de) 2004-08-15
EP1354314B1 (de) 2004-08-04
EP1354314A2 (de) 2003-10-22
JP2004520739A (ja) 2004-07-08
CA2434783A1 (en) 2002-07-25
KR100516985B1 (ko) 2005-09-26
HK1056790A1 (en) 2004-02-27
US7496517B2 (en) 2009-02-24
US20040107289A1 (en) 2004-06-03
JP3890298B2 (ja) 2007-03-07

Similar Documents

Publication Publication Date Title
KR100576034B1 (ko) 비트 세이빙 뱅크, 인코더 및 스케일러블 인코더를 제공하여 스케일러블 데이터 스트림을 생성 및/또는 디코딩하는 방법 및 장치
EP2229677B1 (en) A method and an apparatus for processing an audio signal
EP1713061B1 (en) Apparatus and method of encoding audio data and apparatus and method of decoding encoded audio data
EP1747556B1 (en) Supporting a switch between audio coder modes
KR101386270B1 (ko) 손실 인코딩된 신호와 함께 상기 신호에 대한 무손실 인코딩된 확장 데이터의 오디오 비트스트림 데이터 구조 배열
US8428936B2 (en) Decoder for audio signal including generic audio and speech frames
JP5171842B2 (ja) 時間領域データストリームを表している符号化および復号化のための符号器、復号器およびその方法
US8423355B2 (en) Encoder for audio signal including generic audio and speech frames
EP1988544B1 (en) Coding device and coding method
EP2022045B1 (en) Decoding of predictively coded data using buffer adaptation
JP6911080B2 (ja) 変換長切替えをサポートする周波数ドメインオーディオ符号化
MXPA05000285A (es) Metodo y dispositivo para la senalizacion de atenuacion y rafaga en banda eficiente y operacion maxima a semi-proporcion en codificacion de voz de banda ancha de velocidad de bits variable para sistemas inalambricos de cdma.
JP3890299B2 (ja) スケーラブルデータストリームを生成する方法と装置およびスケーラブルデータストリームを復号化する方法と装置
JP2010170142A (ja) ビットレートスケーラブルなオーディオデータストリームを生成する方法および装置
KR100516985B1 (ko) 비트 세이빙 뱅크 기능을 제공하여 스케일러블 데이터스트림을 생성하는 방법 및 장치와 스케일러블 데이터스트림을 디코딩하는 방법 및 장치
EP2187387B1 (en) Method for encoding and decoding an enhancement layer
US20050096765A1 (en) Reduction of memory requirements by de-interleaving audio samples with two buffers
JP2004520739A5 (ja) スケーラブルデータストリームを生成する方法と装置およびスケーラブルデータストリームを復号化する方法と装置
WO2024052499A1 (en) Decoder and decoding method for discontinuous transmission of parametrically coded independent streams with metadata
AU2015246158A1 (en) Advanced stereo coding based on a combination of adaptively selectable left/right or mid/side stereo coding and of parametric stereo coding.
KR20090043352A (ko) 상호 운용성을 지원하는 오디오/스피치 신호의부호화/복호화 방법 및 시스템

Legal Events

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

Payment date: 20120905

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130904

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140911

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150911

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160912

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170908

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180910

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190906

Year of fee payment: 15