[go: up one dir, main page]

KR20030076611A - 비트 세이빙 뱅크, 인코더 및 스케일러블 인코더를 제공하여 스케일러블 데이터 스트림을 생성 및/또는 디코딩하는 방법 및 장치 - Google Patents

비트 세이빙 뱅크, 인코더 및 스케일러블 인코더를 제공하여 스케일러블 데이터 스트림을 생성 및/또는 디코딩하는 방법 및 장치 Download PDF

Info

Publication number
KR20030076611A
KR20030076611A KR10-2003-7009445A KR20037009445A KR20030076611A KR 20030076611 A KR20030076611 A KR 20030076611A KR 20037009445 A KR20037009445 A KR 20037009445A KR 20030076611 A KR20030076611 A KR 20030076611A
Authority
KR
South Korea
Prior art keywords
encoder
output data
block
data
bit
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR10-2003-7009445A
Other languages
English (en)
Other versions
KR100576034B1 (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 KR20030076611A publication Critical patent/KR20030076611A/ko
Application granted granted Critical
Publication of KR100576034B1 publication Critical patent/KR100576034B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

스케일러블 데이터 스트림(scalable data stream)을 생성하는 방법에 있어서, 제 1 인코더의 출력 데이터 블록(11)이 존재하는 경우에, 이 출력 데이터 블록이 상기 스케일러블 데이터 스트림에 기입된다. 제 2 인코더의 출력 데이터(0)가 선행 기간에 대하여 존재하면, 상기 선행 섹션에 대한 이 출력 데이터가 상기 데이터 스트림으로의 상기 제 1 인코더의 출력 데이터 블록(11) 앞에 전송 방향으로 기입된다. 상기 현재 섹션에 대한 상기 스케일러블 인코더의 출력 데이터(1)가 존재하는 경우에, 상기 제 2 인코더의 출력 데이터가 상기 제 1 인코더의 출력 데이터에 이어지는 비트 스트림 내에 기입된다. 결정 데이터 블록(200)이 생성되어 상기 제 2 인코더의 비트 세이빙 뱅크(bit savings bank)의 크기에 대응하는 기간(250)만큼 지연된 비트 스트림 내에 기입된다. 최종적으로, 상기 결정 데이터 블록에 관한 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터가 어디에서 시작되는지를 나타내는 버퍼 정보(260)가 비트 스트림에 기입되는데, 여기서 상기 버퍼 정보(26)는 상기 비트 세이빙 뱅크 레벨에 대응한다. 따라서, 비트 세이빙 뱅크를 스케일러블 데이터 스트림 내에 간단히 신호화하는 것이 가능하다. 상기 비트 세이빙 뱅크의 최대 크기는, 의도된 디코더 지연에 따라서 더 조정될 수 있으며, 상기 디코더의 초기 지연을 줄이기 위하여 비트를 추가하는 노력 없이 상기 결정 데이터 블록을 상기 스케일러블 데이터 스트림 내에 위치 결정함으로써 상기 디코더로 통신될 수 있다.

Description

비트 세이빙 뱅크, 인코더 및 스케일러블 인코더를 제공하여 스케일러블 데이터 스트림을 생성 및/또는 디코딩하는 방법 및 장치{METHOD AND DEVICE FOR GENERATING AND/OR DECODING A SCALABLE DATA STREAM WITH PROVISION FOR A BIT SAVINGS BANK, ENCODER AND SCALABLE ENCODER}
본 발명은 스케일러블(scalable) 인코더 및 디코더에 관한 것으로, 특히 스케일러블 데이터 스트림의 생성에 관한 것이다.
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 블록에서는, 블록 결정 스테이지(26)는 입력 신호(s(t))를 윈도윙(windowing)하는데 짧은 윈도우가 사용되어야 하는지 긴 윈도우가 사용되어야 하는지 여부에 관계없이 다른 것들 중에서 설정하는 선택적인 지연 스테이지(24)로의 다운스트림이며, 여기서 매우 과도적인 신호에 대하여는 짧은 윈도우가 선택되어야 하는 한편, 페이로드(payload) 데이터의 양 및 페이지 정보 사이의 관계가 짧은 윈도우보다 좋기 때문에 덜 과도적인 신호에 대하여는 긴 윈도우가 바람직하다.
블록 결정 스테이지(26)에 의해, 예컨대 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에 나타낸 비트 스트림 포맷들의 한가지 결점은, 그들이 단순 인코더용으로 공지되어 있지만 스케일러블 인코더용은 아니며 특히 비트 세이빙 뱅크 기능을 갖는 스케일러블 인코더용은 아니라는 점이다.
공지된 바와 같이, 심리 음향 인코더가 원래 생성하는 가변 출력 데이터 속도가 일정한 출력 데이터 속도로 조절될 수 있도록 비트 세이빙 뱅크가 이용된다. 환언하면, 오디오 인코더가 필요로 하는 비트 수는 신호 특성에 좌우된다. 신호가 상대적으로 성긴(coarse) 방식으로 양자화될 수 있도록 구성되면, 이 신호를 인코딩하기 위해서는 상대적으로 작은 비트 량이 필요하다. 그러나, 신호가 가청 간섭(audible interference)을 도입하지 않도록 매우 조밀하게 양자화될 필요가 있도록 구성되면, 보다 많은 양이 이 신호를 인코딩하는데 필요하다.
일정한 출력 데이터 속도를 달성하기 위하여, 인코딩될 신호의 한 섹션에 대하여 중간량의 비트가 결정된다. 섹션을 인코딩하기 위하여 실제로 필요한 양의 비트가 정해진 비트량보다 더 작다면, 필요하지 않은 비트들이 비트 세이빙 뱅크로 이동될 수 있다. 따라서, 비트 세이빙 뱅크가 채워진다. 그러나, 가청 간섭을 신호에 도입하지 않도록 정해진 비트 수보다 많은 수가 인코딩에 필요하도록 인코딩될 신호의 섹션이 구성되면, 추가적으로 필요한 비트는 비트 세이빙 뱅크로부터 취해질 수 있다. 이런 식으로, 비트 세이빙 뱅크가 비워진다. 이에 의해, 일정한 출력 데이터 속도가 유지되는 동시에 어떠한 가청 간섭도 오디오 신호에 도입되지 않는 것이 보장될 수 있다. 이를 위한 전제 조건은 비트 세이빙 뱅크가 충분히 크게 선택된다는 것이다.
표준 MPEG AAC(13818-7: 1997)에서, 비트 세이빙 뱅크가 "비트 정소(bit reservoir)"라고 불린다. 일정한 데이터 속도를 갖는 채널의 비트 세이빙 뱅크의 최대 크기는 최대 디코더 입력 버퍼 크기로부터 블록당 비트의 평균량을 감산함으로써 계산될 수 있다. 그 값은 통상적으로, 48㎑의 샘플링 속도를 갖는 스테레오 신호에 대하여 96 kBit/s의 전송 속도를 갖는 표준 MPEG AAC에 따라 10,240 비트의 값으로 확고하게 프리세트된다. 비트 세이빙 뱅크의 최대 값, 즉 비트 세이빙 뱅크는, 악조건 하에서, 즉 신호가 정해진 비트 수로 인코딩될 수 없는 많은 섹션을 포함하고 있는 경우에, 일정한 출력 데이터 속도를 유지하기 위하여 가청 간섭이 오디오 신호로 도입될 필요가 있도록, 그 크기가 정해진다. 이것은 비트 세이빙 뱅크가 비어 있는 때가 없도록 충분히 큰 크기를 갖는 경우에만 가능하다.
디코더측에서는, 이는 다음과 같은 결과를 낳는다. 풀(full) 비트 세이빙 뱅크의 경우 및 비어 있는 비트 세이빙 뱅크의 경우 양측이 오디오 신호를 디코딩하는 동안에 발생하는 있음을 디코더가 고려해야만 하는 경우에, 디코딩을 개시하기 전에 디코더가 비트 세이빙 뱅크의 크기에 대응하는 비트 수를 버퍼링할 필요가있다. 이에 의해, 디코더가 오디오 신호를 디코딩하는 동안에 비트가 부족하지 않음이 보장된다. 디코더가 인코딩된 신호를 수신하였을 때 비트 세이빙 뱅크 기능으로 그 신호를 즉시 디코딩한다면, 우발적으로 디코딩될 제 1 블록이 정해진 인코딩용 수보다 더 작은 수를 필요로 할 때, 즉 비트 세이빙 뱅크가 제 1 블록으로 채워졌을 때 출력용 비트는 이미 부족 상태에 있게 된다. 환언하면, 비트 세이빙 뱅크 기능은 불가피하게 디코더 내에서 지연을 초래하게 되며, 여기서 이 지연은 비트 세이빙 뱅크의 크기에 대응하는 것이다.
선행 예에서, 비트 세이빙 뱅크의 크기는 10,240 비트이다. 이것은 약 0.1s의 비트 세이빙 뱅크로 인한 본래의 초기 지연을 초래한다. 지연이 커질수록, 비트 세이빙 뱅크의 최대 크기는 더 크게 선택되며 전송 속도는 더 작게 선택된다.
화자(speaker)의 연속적인 변화가 발생하는, 예컨대 전화 호의 실시간 전송을 고려하면, 비트 세이빙 뱅크로 인하여 상술한 크기의 지연이 화자의 각 변화마다 생긴다. 이러한 지연은 양측의 통신 당사자에 대하여 특이하게 불편을 끼쳐서, 통상적으로 한 화자가 상대방의 반응을 즉시 듣지 못하기 때문에 한 화자가 질문을 반복하여 다른 혼란에 기여한다는 사실을 초래한다. 따라서, 이런 식으로 정해진 제품은 실시간 응용품에는 적합하지 않으며 시장에서 약진의 기회를 갖지 못할 것이다.
본 발명의 목적은 보다 적은 전송 지연을 달성할 수 있는 비트 세이빙 뱅크 기능을 갖는 인코더를 제공하는 것이다.
이 목적은 청구항 5항에 따른 인코더 또는 청구항 6에 따른 스케일러블 인코더에 의해 달성된다.
본 발명의 다른 목적은 비트 세이빙 뱅크가 신호화될 수 있는 스케일러블 데이터 스트림을 생성하는 방법 및 장치를 제공하는 것이다.
이 목적은 청구항 1에 따른 방법 또는 청구항 7에 따른 장치에 의해 달성된다.
본 발명의 또 다른 목적은 비트 세이빙 뱅크 기능이 신호화되는 스케일러블 데이터 스트림을 디코딩하는 방법 및 장치를 제공하는 것이다.
이 목적은 청구항 8에 따른 방법 또는 청구항 9에 따른 장치에 의해 달성된다.
본 발명은 저감된 지연 디코딩을 달성하기 위하여 고정 설정된 비트 세이빙 뱅크 크기의 현재 개념을 포기한다는 발견에 기초하고 있다. 본 발명에 따르면, 이것은, 인코더의 비트 세이빙 뱅크의 최대 크기를 조정 가능하게 함으로써 달성되는데, 여기서 응용에 따라서 및 의도된 디코더 기능에 따라서 비트 세이빙 뱅크의 어떤 조정이 달성된다. 단방향 데이터 전송의 경우에, 가장 가능한 오디오 품질 요건을 충족시키기 위하여 큰 비트 세이빙 뱅크만이 선택될 수 있는 한편, 송신기 및 수신기의 주파수 변화 및 화자(speaker)의 주파수 변화가 각각 일어나는 양방향 통신의 경우에, 보다 작은 비트 세이빙 뱅크 크기가 어떤 식으로 디코더에 전송되어야 한다. 한편, 이것은 데이터 스트림내의 추가적인 정보의 전송에 의해 달성될 수 있지만, 스케일러블한 경우를 참조하여 설명되는 바와 같이 추가적인 부수 정보 및 신호화 정보의 전송 없이 함축적으로 수행될 수도 있다.
본 발명의 한가지 이점은 비트 세이빙 뱅크의 최대 크기의 조정을 통하여 디코더 지연에 대하여 직접적인 영향을 미칠 수 있는 점이다. 비트 세이빙 뱅크의 최대 크기가 보다 작게 선택되면, 디코더는 어느 경우에도 방지되어야 하는 디코딩중의 출력 데이터의 부족이라는 위험을 감수하지 않고서 디코딩을 시작하기 전에 보다 작은 지연을 삽입할 수 있다. 이것에 지불되어야 하는 "대가"는, 비트 세이빙 뱅크가 비어 있고 추가 비트를 더이상 이용할 수 없을 때 오디오 신호의 한쪽 또는 다른쪽 섹션이 100%의 오디오 품질로 인코딩되지 않는다는 것이다. 통상적으로, 이 경우에 양자화시에 심리 음향 마스킹(masking) 임계치를 위반하지 않도록 오디오 인코더가 반응하여, 이용 가능한 비트 수로 충분히 달성하기 위하여 실제 필요에 따라 보다 성긴(coarser) 양자화를 선택한다. 그러나, 디코더의 보다 작은 지연의 주된 이점이 보장된다. 따라서, 디코더측에서도 보다 작은 지연을 달성하기 위하여 비트 세이빙 뱅크의 크기의 감소가 보다 낮은 오디오 품질로 달성되며, 여기서 이 낮은 오디오 품질은 오디오 신호에서 가끔 일어날 뿐이며, 오디오 신호가 디코딩하기에 간단한 경우에는 전혀 일어나지 않는다. 결과적으로, 모든 가능한 경우를 높은 오디오 품질로 인코딩하기 위한 많은 응용들에 대해서 너무 크게 되는 종래 기술에 따른 비트 세이빙 뱅크에 관한 비유연성(inflexibility)이 극복되며 , 따라서 자주 변화하는 화자와의 양방향 통신에 대한 인코더의 이용이 가능해지는데, 이는 크게 고정적으로 조정된 비트 세이빙 뱅크로 인하여 지금까지는 생각할 수 없었다.
비트 세이빙 뱅크의 독창적인 가변성 및 이에 따라 디코더측에 수반되는 지연의 가변성은 특히 스케일러블 오디오 인코더의 경우에 유리하며, 여기에서와 같이 저감된 지연 디코딩이 가장 낮은 스케일링 층들에 대하여 달성될 수 있을 뿐만 아니라 예컨대 AAC 인코더에 의해 생성된 보다 높은 스케일링 층들의 저감된 지연 디코딩도 달성될 수 있다. 특히 스케일러블의 경우에, 하나의 스케일링 층만이 비트 세이빙 뱅크의 가변 조정에 의해 영향받는 한편, 다른 스케일링 층(들)은 영향없이 남아 있게 된다. 따라서 의도적으로 다른 스케일링 층들에서의 어떤 변화도 초래함이 없이 개별적인 스케일링 층들에 작용할 수 있다.
이미 논의된 바와 같이, 자유롭게 선택 가능한 비트 세이빙 뱅크 크기와 자유롭게 선택된 비트 세이빙 뱅크 크기를 각각 디코더에 통신할 필요가 있다. 고정된 비트 세이빙 뱅크 크기가 항상 합의되어 있어서 예컨대 확실하게 합의된 비트 세이빙 뱅크의 크기를 알고 잇는 그 입력 버퍼의 크기를 정함으로써 디코더가 대응하는 지연을 도입하였기 때문에, 이것은 종래 기술에서는 불필요하였다.
특히 스케일러블 인코더 및 스케일러블 데이터 스트림에 대하여는, 추가 부수 정보 없이 조정 가능한 비트 세이빙 뱅크 크기가 간단하게 스케일러블 데이터 스트림 내에서 결정 데이터 블록을 위치 결정함으로써 달성될 수 있다. 본 발명에 따르면, 디코더가 결정 데이터 블록을 수신할 때에 평균 블록 길이에 의해 정해진 만큼의 개별 층에 대한 비트를 수신할 필요가 있도록 결정 데이터 블록이 비트 스트림 내에 위치 결정된다.
프레임을 수신한 후에 디코더는 지연을 산출하거나 삽입하지 않고서 디코딩을 개시할 수 있다. 이것은 스케일러블 데이터 스트림 내에 이미 결정 데이터 블록이 제 1 및 제 2 스케일링 층에 관하여 지연된 방식, 즉 바람직하게는 비트 세이빙 뱅크의 조정에 대응하는 기간만큼 지연된 방식으로 기입된다는 사실 때문이다. 이에 의해, 인코더는 요건에 따라 임의의 비트 세이빙 뱅크 크기를 선택할 수 있고 선택된 비트 세이빙 뱅크 크기가 단순히 내재적으로 신호화되어 디코더에 보내져서 페이로드(payload) 데이터에 관하여 지연된 방식으로 비트 스트림에 결정 데이터 블록을 삽입할 수 있게 된다.
환언하면, 결과적으로 결정 데이터 블록은 종래 기술에서와 같이 더이상 시간상 가능한 첫번째 시점이 아니라, 즉 지연 최적화되어, AAC 블록을 지연시키지 않고서 최후의 가능한 시점에서 기입된다. 비트 세이빙 뱅크의 현재 레벨이 소위 백 포인터(backpointer)에 의해 신호화될 수 있으며, 여기서 선행 섹션의 데이터가 종료되고 현재 섹션의 데이터가 개시된다.
이것은 하나의 개별 인코더의 출력 데이터만이 비트 스트림 내에서 발생하는 스케일러블의 경우 및 적어도 두개의 다른 인코더의 데이터가 스케일러블 비트 스트림에서 발생하는 스케일러블의 경우 양측에 모두 적용된다. 수퍼 프레임, 즉 입력 신호의 동일한 샘플 수에 관련되어 있는 제 1 인코더의 출력 데이터 블록의 제 1 개수 및 제 2 인코더의 출력 데이터 블록의 제 2 개수를 포함하는 비트 스트림내의 한 섹션이 인코더의 복수의 블록을 구비한다면, 오프셋 정보가 비트 스트림과 함께 전달된다는 사실에 의해 단순히 결정 데이터 블록과 연관된 한 인코더의 블록 수가 신호화될 수 있다. 이 오프셋 정보는 또한, 현재 비트 스트림의 어느 데이터가 결정 데이터 블록에 속해 있으며 따라서 가변 코어 코더 지연을 고려할 필요가있다면 입력 신호의 시간 섹션에 대응하는지를 알기 위해서 백 포인터로서 디코더에 의해 해석될 수 있다.
이러한 구성의 한가지 주된 이점은, 디코더가 독창적인 데이터 스트림을 수신할 때에 지연을 산출 및 삽입하지 않고 그 지연이 인코더측에서 결정 데이터 블록만의 위치 결정에 의해 이미 고려된다는 것이다. 따라서 디코더는 수신 직후에 프레임을 출력한다. 이것은 또한 간단한 방식으로, 즉 추가 비트 없이 조정된 최대 비트 세이빙 뱅크 크기를 신호화할 가능성을 제공한다. 이 신호화는 간단하게 노력없이, 즉 결정 데이터 블록의 위치에 의해 수행될 수 있으므로, 원하는 대로 전송 지연을 조정할 수 있게 하기 위하여 비트 세이빙 뱅크 크기를 변화시키는 것이 특별히 디코더에 액세스하지 않고서 용이하게 가능하다.
이하에서, 본 발명의 바람직한 실시예가 첨부 도면을 참조하여 보다 상세하게 기재된다.
도 1a는 본 발명을 포함하는 MPEG 4에 따른 스케일러블 인코더(scalable encoder)를 나타낸다.
도 1b는 본 발명에 따른 디코더를 나타낸다.
도 2a는 연속하는 시간 섹션들로 분할된 입력 신호의 개략적으로 설명한다.
도 2b는 연속하는 시간 섹션들로 분할된 입력 신호를 개략적으로 설명하고 있으며, 여기서 제 2 인코더의 블록 길이에 대한 제 1 인코더의 블록 길의 비가 도시되어 있다.
도 2c는 제 1 스케일링 층을 디코딩할 때 높은 지연을 갖는 스케일러블 데이터 스트림을 개략적으로 나타낸다.
도 2d는 제 1 스케일링 층을 디코딩할 때 낮은 지연을 갖는 스케일러블 데이터 스트림을 개략적으로 나타낸다.
도 2e는 결정 데이터 블록이 페이로드(payload) 데이터를 참조하여 지연되어 있는 독창적인 스케일러블 데이터 스트림을 개략적으로 나타낸다.
도 3은 제 1 인코더로서의 CELP 인코더 및 비트 세이빙 뱅크 기능을 갖는 제 2 인코더로서의 AAC 인코더의 예에 관한 독창적인 스케일러블 데이터 스트림을 상세하게 나타낸다.
도 4는 고정 프레임 길이를 갖는 비트 스트림 포맷의 예를 나타낸다.
도 5는 고정 프레임 길이 및 백 포인터(backpointer)를 갖는 비트 스트림 포맷의 예를 나타낸다.
도 6은 가변 프레임 길이를 갖는 비트 스트림의 예를 나타낸다.
이하에서는, 도 2c와 도 2d를 참조하여 비교를 위해 제 1 스케일링 층의 작은 지연을 갖는 비트 스트림을 설명한다. 도 2c에 나타낸 바와 같이, 스케일러블 데이터 스트림은 헤더 1 및 헤더 2로서 불리는 연속 결정 데이터 블록들을 포함하고 있다. MPEG 4에 따라 구현되는 본 발명의 바람직한 실시예에서, 결정 데이터 블록은 LATM 헤더이다. 종래 기술에서와 같이, 도 2d에 화살표 202로 도시되어 있는 인코더로부터 디코더로의 전송 방향에서, LATM 헤더(200)의 뒤에, AAC 인코더의출력 데이터 블록의 우상부로부터 좌하부로 빗금친 부분들이 위치하고 있으며, 제 1 인코더의 출력 데이터 블록들 사이에 남아 있는 갭에 삽입되어 있다.
종래 기술과는 반대로, 예컨대 출력 데이터 블록들(13 및 14)과 같이, LATM 헤더(200)에 의해 시작된 프레임 내에 이 프레임에 속하는 제 1 인코더의 출력 데이터 블록들이 있을 뿐만 아니라, 입력 데이터의 후속 섹션의 출력 데이터 블록들(21 및 22)이 있다. 환언하면, 도 2d에 나타낸 예에서는, 11 및 12로 지정된 제 1 인코더의 2개의 출력 데이터 블록들이 LATM 헤더(200)의 앞에 전송 방향(화살표 202)으로 비트 스트림 내에 존재한다. 도 2d에 나타낸 예에서, 오프셋 정보(204)는 제 1 인코더의 출력 데이터 블록들중 2개의 출력 데이터 블록의 오프셋을 나타낸다. 도 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로 변할 수 있지만, 다른 비율을 취할 수도 있다.
극단적인 경우(MPEG 4AAC/CELP에 대하여 1:12), 이것은 AAC 인코더가 출력 데이터 블록을 생성하는 입력 신호의 동일한 시간 섹션에 대하여 CELP 인코더가 12개의 출력 데이터 블록들을 생성한다는 것을 의미한다. 도 2c에 나타낸 데이터 스트림과는 반대로 도 2d에 나타낸 데이터 스트림에 의한 지연 이점은 이 경우에 1/4 로부터 1/2까지의 크기를 쉽게 취할 수 있다는 것이다. 이러한 이점은 제 2 인코더의 블록 길이와 제 1 인코더의 블록 길이 사이의 비가 커질수록 증가하며, 제 2인코더로서의 AAC 인코더의 경우에 인코딩 신호가 허용한다면 페이로드 정보로부터 부수 정보까지 더 선호되는 비율로 인하여 가능한 한 큰 블록 길이가 목표로 된다.
도 2c에, LATM 포맷에 따른 스케일러블 데이터 스트림이 도시되어 있으며, 여기서 제 1 인코더의 데이터 블록들이 버퍼링, 즉 지연되어야 한다. 도 2의 포맷에서, 이는 논의된 바와 같이 헤더는 제 2 인코더의 출력 데이터 블록 내에 각각 길이 및 비트 수에 대한 정보를 포함하고 있으므로, 제 2 인코더의 출력 데이터가 존재할 때에만 헤더가 기입될 수 있을 뿐이라는 사실로부터 생긴다.
그러므로, 도 2d에서는 설명을 위하여, 디코더가 최저 스케일링 층을 디코딩하기를 원할 때 지연을 감소시키도록 제 1 인코더의 출력 데이터 블록이 비트 스트림 내에 미리 기입되어 있다는 사실에 관련된 향상이 이미 나타나 있다. 그러나, 결정 데이터 블록은 여전히 제 1 인코더의 출력 데이터 블록의 앞에 위치되어 있으며, 도 2d에서 "1"로 표시되어 있다.
도 2e에서는 도 2c에 비하여 독창적인 스케일러블 데이터 스트림이 도시되어 있으며, 여기서 결정 데이터 블록(헤더 1(200))은 이용 가능한 경우에 즉시, 즉 "11"로 표시된 제 1 인코더의 출력 데이터 블록에 앞서서 기입되지 않고, 이 결정 데이터 블록(200)은 도 2c의 경우에 관한 기간만큼 지연된 데이터 스트림 내에 기입된다. 이 기간은 본 발명의 바람직한 실시예에서 비트 세이빙 뱅크의 최대 크기(최대 버퍼 충만(250))와 같다. 따라서, 결정 데이터 블록(200)에 의해 지정된, 입력 신호의 현재 섹션에 대한 제 2 인코더의 출력 데이터 블록은 인코더로부터 디코더로의 전송 방향에서 결정 데이터 블록의 앞에 버퍼 충만(260)과 동일한비트 수를 개시하는 반면에, AAC 데이터는 결정 데이터 블록의 뒤에 개시됨을 도 2c로부터 알 수 있다.
디코더의 관점에서 포인터(260)는 백 포인터이다.
이 경우에, 제 1 인코더는 제 2 인코더보다 많은 수의 블록을 샘플 수에 제공하며, 도 2e에 나타낸 예에서는 코어 프레임 오프셋이 신호화되므로, 제 2 인코더의 출력 데이터의 한 블록에 대한 제 1 인코더의 출력 데이터의 4개 블록의 비는 결정 데이터 블록에 기초하여 동일한 샘플 수를 위한 예일 뿐이며, 이에 따라 디코더는 예컨대 제 1 인코더의 출력 데이터의 어느 블록들이 제 2 인코더의 출력 데이터의 블록에 속하는지 또는 코어 코더 지연을 통하여 서로 관련되어 있는지를 알게 된다.
도 2d를 도 2e와 비교하면, 도 2e에서도 오프셋(204)이 존재함을 알 수 있다. 도 2d에서의 2의 값을 갖는 도 2d의 오프셋(204)은, 도 2d에 비하여 도 2e에서의 결정 데이터 블록(200)이 제 1 인코더의 3개 출력 데이터 블록만큼 뒤로 시프트되어 있으므로, 도 2e의 경우에 대하여 5의 값까지 증가된다.
이하에서 도 1a를 다시 참조한다. 도입부에서 이미 설명한 스케일러블 인코더 외에도, 도 1a에 나타낸 독창적인 스케일러블 인코더는 AAC 인코더(14)로부터 비트 스트림 멀티플렉서(20)로의 블록 비트 세이빙 뱅크 제어(50) 및 제어선(52)을 포함하고 있으며, 이를 통하여 비트 세이빙 뱅크 제어 수단(50)에 의해 조절된 비트 세이빙 뱅크의 최대 크기가 비트 스트림 멀티플렉서로 통신되어 도 2e에서 요구된 비트 스트림 포맷팅을 수행할 수 있다.
도 1b에, 도 1a에서의 스케일러블 인코더에 상보적인 스케일러블 디코더의 개략적인 블록도가 나타나 있다. 라인(60)을 통하여 인코더로 공급되는 스케일러블 비트 스트림은 디코더의 입력 버퍼/비트 스트림 디멀티플렉서(62)로 공급된다. 여기서, 비트 스트림이 분할되어 CELP 디코더(64) 및 AAC 디코더(66)에 요구되는 블록들을 추출한다. 독창적인 디코더는 비트 세이빙 뱅크 크기에 대응하는 지연을 도입하는 작용을 하는 AAC 지연 스테이지(68)를 더 포함하여, AAC 디코더(66)는 제공할 데이터가 더이상 부족하지 않게 된다. 본 발명에 따르면, 이러한 AAC 지연 스테이지는 가변적으로 구성되며, 여기서 비트 스트림 디멀티플렉서(62)에 의해 비트 스트림으로부터 추출되어 비트 세이빙 뱅크 정보 라인(60)을 통하여 AAC 지연 스테이지(68)로 공급되는 비트 세이빙 뱅크 정보에 따라서 지연이 제어된다. 비트 세이빙 뱅크 레벨에 따라서 AAC 지연 스테이지(68)의 지연이 조정된다. 작은 비트 세이빙 뱅크가 도 1a의 비트 세이빙 뱅크 제어 수단(50)에 의해 조정되면, AAC 지연 스테이지(68)도 또한 작은 지연으로 조정되어, 제 2 스케일링 층의 저감된 지연 디코딩을 달성할 수 있다.
도 1b의 스케일러블 디코더는 CELP 디코더(64)의 시간 영역 출력 신호를 주파수 영역으로 변환하기 위한 MDCT 수단(72)과 거기에 이르는 업샘플링 스테이지를 더 포함한다. 2개 브랜치 사이에 존재하는 시간차를 보상하는 지연 스테이지(74)에 의해 스펙트럼이 지연되어, 가산기/FSS-1이라 불리는 수단(76)에 동일한 비율이 존재한다. 수단(66)은 기본적으로 도 1a에서의 감산기(40) 및 FSS(44)와 유사한 기능을 수행한다. 블록(76) 다음에서, 스펙트럼 값은 주파수 영역을 시간 영역으로 역변환하는 수단(78)에 의해 변환되어, 출력(80)에는 제 2 스케일링 층만이나 또는 제 1 및 제 2 스케일링 층이 시간 영역에 존재한다. 그러나, 출력(82)에는 CELP 디코더(64)에 의해 생성된 시간 영역에 제 1 스케일링 층이 존재한다.
이하에서, 도 2와 유사한 도 3을 참조하여 MPEG 4의 예에 따른 특별한 구현예를 설명한다. 제 1 행에 현재 시간 섹션이 빗금으로 나타나 있다. 제 2 행에 AAC 인코더에 이용되는 윈도우가 개략적으로 도시되어 있다. 도시된 바와 같이, 50%의 중복-부가를 이용하여 윈도우는 통상적으로 도 3의 첫번째 행에 빗금으로 나타낸 현재 시간 섹션보다 2개 긴 시간 샘플 길이를 갖는다. 도 3에서, 지연(tdip)이 더 도시되어 있으며, 이는 도 1의 블록(26)에 대응하며 선택된 예에서 블록 길이의 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에 의해 나타나 있는 화살표에 의해 더 설명되고 있다. 이로부터, 코어 코더 지연에 의해 지정되고 도 3에서 화살표 304에 의해 도시된 지연은 도 1의 감산 위치(40)에서 동일한 비율이 존재하도록 스테이지 34에 의해 조정될 필요가 있는 지연으로 된다. 이 지연은 블록 26에 의해 대안적으로 생성될 수 있다. 예컨대,
코어 코더 지연 = tdip - CELP 인코더 지연 - 다운샘플링 지연
= 600 - 120 - 117 = 363 샘플들이다.
비트 세이빙 뱅크 기능이 없는 경우 및 가변 버퍼 충만 = 최대에 의해 표시되는 비트 세이빙 뱅크(bitmux 출력 버퍼)가 충만되어 있는 경우에, 도 2d에 표시된 경우가 발생한다. 제 1 인코더의 4개의 출력 데이터 블록이 제 2 인코더의 1개의 출력 데이터 블록에 대응하여 생성되는 도 2d와는 반대로, 도 3에서는 "0" 및 "1"로 표시된 CELP 인코더의 2개의 출력 데이터 블록이 도 3의 마지막 두개 행에서 검게 그려진 제 2 인코더의 출력 데이터 블록에 대하여 생성된다. 그러나, 본 발명에 따르면, 제 1 LATM 헤더(306) 뒤에는 번호 "0"을 갖는 CELP 인코더의 출력 데이터 블록이 더이상 기입되지 않고, 번호 "0"을 갖는 출력 데이터 블록이 이미 디코더로 다시 전송되었으므로 번호 "1"을 갖는 CELP 인코더의 출력 데이터 블록이 기입된다. CELP 데이터 블록에 제공되는 등간격의 격자 간격에서, CELP 블록 1의 다음에 다음 시간 섹션에 대한 CELP 블록 2가 뒤따르며, 프레임의 종료를 위하여 다음 시간 섹션에 대한 다음 LATM 헤더(308)가 뒤따를 때까지 AAC 인코더의 출력 데이터 블록의 나머지 데이터가 데이터 스트림에 기입된다.
본 발명은 도 3의 마지막 행에 도시된 바와 같이 비트 세이빙 뱅크 기능과 단순 결합될 수도 있다. 비트 세이빙 뱅크의 채움을 나타내는 가변 "버퍼 충만"이최대 값보다 작은 경우에, 이것은 그보다 많은 비트를 필요로 하는 바로 선행하는 시간 섹션에 대한 AAC 프레임이 실제로 허용될 수 있음을 의미한다. 이것은 또한, LATM 헤더(306)의 뒤에 CELP 프레임이 전과 같이 기입되지만, 현재의 시간 섹션에 대한 AAC 인코더의 출력 데이터 블록의 기입이 개시될 수 있기 전에 먼저 AAC 인코더의 적어도 하나의 출력 데이터 블록이 비트 스트림내의 하나 또는 수개의 선행 시간 섹션들로부터 기입될 필요가 있음을 의미한다. "1" 및 "2"로 표시된 도 3의 마지막 두개 행의 비교로부터, 비트 세이빙 뱅크 기능이 또한 AAC 프레임에 대한 인코더에서의 지연을 직접 초래할 수 있음을 알 수 있다. 그래서, 도 3에서 310으로 표시된 현재 시간 영역의 AAC 프레임에 대한 데이터가 "1"의 경우와 동일한 시점에서 존재하지만 바로 선행하는 시간 섹션에 대한 AAC 데이터(312)가 비트 스트림 내에 기입된 후에만 비트 스트림에 기입될 수 있다. 그러므로, AAC 인코더의 비트 세이빙 뱅크 레벨에 따라서 AAC 프레임의 초기 위치가 시프트된다.
비트 세이빙 뱅크 레벨은 가변 "버퍼 충만"에 의해 LATM 성분(StreamMuxConfig)으로 전달되어야 한다. 가변 버퍼 충만은 오디오 채널의 실제 존재하는 채널 수의 32배만큼 분할된 가변 비트 저장소로부터 산출된다.
그 길이가 최대 버퍼 충만 - 버퍼 충만인, 도 3에서 참조 번호 314에 의해 표시된 포인터는 소위 미래를 지시하는 포워드 포인터(forward-pointer)인 반면에, 도 5에 나타낸 포인터는 소위 과거를 지시하는 백포인터이다. 그 이유는, 본 실시예에 따르면 ACC 데이터는 선행 시간 섹션으로부터 비트 스트림에 기입되어야 하지만 LATM 헤더는 항상 현재 시간 섹션이 AAC 인코더에 의해 처리된 후에 비트 스트림에 기입되기 때문이다.
포인터(314)는 CELP 블록 2의 길이도 고려하지 않고 CELP 블록 1의 길이도 고려하지 않을 뿐만 아니라 이 데이터는 물론 AAC 인코더의 비트 세이빙 뱅크와는 아무 관계가 없으므로 CELP 블록 2 아래에 의도적으로 인터럽트(interrupt)된 것으로 그려져 있음에도 유의해야 한다. 또, 어떤 헤더 데이터 및 존재할 수 있는 다른 층들의 비트도 고려되지 않는다.
디코더에서는 우선 비트 스트림으로부터 CELP 프레임의 추출이 수행되며 이는 쉽게 가능한데, 이는 상기 프레임들이 예컨대 등간격으로 배치되어 있고 공정 길이를 갖기 때문이다.
그러나, LATM 헤더에서는, 모든 CELP 블록의 길이 및 거리가 신호화되어 모든 경우에 직접적인 디코딩이 가능하다.
이에 의해, CELP 블록 2에 의해 소위 분리된 바로 선행하는 시간 섹션의 AAC 인코더의 출력 데이터의 부분들이 다시 연결되고 LATM 헤더(306)가 포인터(314)의 시작으로 이동하여, 포인터(314)의 길이를 아는 디코더는 바로 선행하는 시간 섹션의 데이터가 언제 끝나는지를 알게 되어 이들 데이터가 완전히 판독된 때 완전한 오디오 품질을 갖는 데이터에 대하여 존재하는 CELP 데이터 블록과 함께 바로 선행하는 시간 섹션을 디코딩한다.
LATM 헤더 다음에 제 2 인코더의 출력 데이터 블록뿐만 아니라 제 1 인코더의 출력 데이터 블록이 뒤따르는 도 2c에 나타낸 경우와는 반대로, 제 1 인코더의 출력 데이터 블록으로부터 비트 스트림 내에서 앞쪽으로의 시프트는 가변 코어 프레임 오프셋에 의해 수행될 수 있는 한편, 화살표 314(최대 버퍼 충만 - 버퍼 충만)에 의해 표시된 제 2 인코더의 출력 데이터 블록의 스케일러블 데이터 스트림의 뒤쪽으로의 시프트가 달성될 수 있다. 이에 의해, 비트 세이빙 뱅크 기능이 스케일러블 데이터 스트림 내에서 쉽고도 안전하게 구현될 수 있는 한편, AAC 인코더가 시간 섹션을 인코딩했을 때 항상 기입되며 따라서 LATM 헤더에 의해 표시된 프레임내의 데이터의 주요부가 도 3의 최종 행에 나타낸 바와 같이 다음 시간 섹션으로부터 또는 (AAC 프레임에 관한) 선행 시간 섹션으로부터 한쪽으로 생길 때에도 기준점으로서 작용할 수 있는 연속하는 LATM 결정 데이터 블록에 의해 비트 스트림의 기본적인 래스터(raster)가 유지된다. 그러나, 각각의 시프트는 비트 스트림 내에 추가적으로 전송되는 2개의 변수에 의해 디코더로 통신된다.
설명을 위하여 도 3의 최종 행은 논의된 바와 같이 LATM 헤더(306)가 생성된 직후에 비트 스트림 내에 기입되어 LATM 헤더(306) 다음에 선행 시간 섹션의 제 2 인코더(312)의 출력 데이터가 뒤따르는 경우를 설명하고 있다. 여기서, LATM 헤더(306)가 참조하는 현재 시간 섹션에 대한 제 2 인코더의 출력 데이터가 LATM 헤더 다음에 전송 방향으로 일정 거리만큼 뒤에 뒤따르며, 도 3에 도시된 바와 같이 최대 버퍼 충만 및 버퍼 충만간의 차이만큼의 거리가 주어진다.
이와는 반대로, 본 발명에 따르면, 도 2e를 참조하여 설명한 바와 같이, LATM 헤더(306)는 더이상 생성 시에 기입되지 않고 최대 버퍼 충만에 대응하는 기간만큼 지연되어 기입된다. 본 발명에 따르면, LATM 헤더(306)는 버퍼 충만의 값에 따라서 비트 스트림내의 위치(330) 뒤에 위치하며 포워드 포인터(314)는 백워드포인터(도 2e의 260)로 대체된다.
본 발명에 따르면, CELP 블록이 LATM 헤더를 바로 뒤따르는, 도 2c 및 도 2d와 도 3에서 선택된 구성이 포기된다.
그 대신에, 제 2 스케일링 층의 저감된 지연 디코딩뿐만 아니라 제 1 스케일링 층의 저감된 지연 디코딩을 달성하기 위하여 스케일러블 비트 스트림에 데이터를 기입할 때 다음의 우선 순위 분포가 바람직하다.
제 1 인코더의 출력 데이터 블록은 높은 우선 순위를 향유한다. 제 1 인코더의 출력 데이터 블록이 완전히 기입된 때에는 언제나 이 출력 데이터 블록이 비트 스트림 내에 기입된다. 이로부터 CELP 인코더를 이용하는 경우에는 동일 길이를 더 갖는, 제 1 인코더의 출력 데이터 블록의 등간격 래스터가 자동적으로 발생한다.
기입될 제 1 인코더의 출력 데이터가 현재 존재하지 않으면, 대응하는 데이터가 더이상 존재하지 않을 때까지 입력 신호의 선행 시간 섹션에 대한 AAC 인코더의 출력 데이터가 비트 스트림에 기입된다. 그때에만 현재 섹션에 대한 AAC 인코더의 출력 데이터의 기입이 시작된다. 이 출력 데이터의 비트 스트림으로의 기입은, 도 2e에서 알 수 있는 바와 같이, 제 1 인코더의 출력 데이터가 다시 이용 가능한 경우에는 항상 분명하게 인터럽트된다.
현재 시간 섹션에 대한 AAC 인코더의 출력 데이터의 기입도 또한 LATM 헤더가 완성되고 최대 버퍼 충만(350)(도 2e 참조)만큼 지연된 경우에 인터럽트된다. 버퍼 충만(260) 및 오프셋(270)에 대한 대응하는 값들이 개별적으로 또는 결정 데이터 블록을 통하여 비트 스트림 내에 들어간 경우에 스케일러블 비트 스트림이 완성된다.
이하에서, 이런 식으로 생성된 비트 스트림의 디코딩을 설명한다. 디코더가 제 1 스케일링 층, 즉 제 1 인코더(CELP 인코더)의 출력 데이터 블록에만 관심이 있는 경우에, 비트 스트림으로부터 다른 하나의 블록 후에 하나의 CELP 블록을 단지 취출하고 LATM 헤더나 AAC 데이터에 대한 고려 없이 그 CELP 블록을 디코딩한다. CELP 블록은 그 생성 직후에 비트 스트림 내에 기입되는 것이 바람직하므로, CELP 블록의 저감된 지연 디코딩이 보장된다.
디코더가 제 2 스케일링 층뿐만 아니라 제 1 스케일링 층의 디코딩도 원하는 경우, 즉 고품질을 갖는 오디오 신호를 성취하기를 원하는 경우에, 수퍼 프레임, 즉 일정한 샘플 수에 대한 수개의 AAC 블록(들) 및 CELP 블록들간의 연관을 달성할 필요가 있으며, 필요하다면 수퍼 프레임에 관한 AAC 인코더의 입력 신호의 현재 시간 섹션이 CELP 인코더의 현재 시간 섹션으로부터 시프트되는 경우에 코어 코더 지연(도 1a의 34)이 고려될 수 있다.
이것은 LATM 헤더, 예컨대 도 2e의 헤더(200)를 만날 때까지 비트 스트림을 버퍼링하는 디코더에 의해 수행된다. 오프셋(27)을 알고 있으므로, 디코더는 제 1 인코더의 어느 출력 데이터 블록이 LATM 헤더(200)에 속하는지를 결정할 수 있다. 가변 버퍼 충만을 고려하면, 디코더는 디코더 입력 버퍼에 저장된 데이터내의 어디에서 LATM 헤더가 참조하는 시간 섹션의 AAC 프레임이 시작되는지를 더 알게 된다. 버퍼 충만이 최대값과 동일한 경우, 전체 주목되는 AAC 프레임이 디코더 입력 버퍼에 포함된다. 버퍼 충만이 0인 경우에, 주목되는 AAC 프레임이 LATM 헤더의 바로 뒤에서 시작되어, 디코더는 이미 입력 버퍼에 저장된 데이터를 이용하여 또는 입력 버퍼에 저장된 데이터의 일부를 이용하여 그리고 전송 방향에서 LATM 헤더의 뒤에 위치하는 데이터의 직접 도착 부분을 이용하여 지연 없이 디코딩을 시작할 수 있다. 따라서 비트 세이빙 뱅크 크기는 어떤 부수 정보에 대한 요구도 없이 비트 스트림내의 페이로드 데이터를 참조하여 결정 데이터 블록의 위치에 의해 내재적으로만 신호화된다. 이 경우에도 디코더(도 1b의 블록 68) 내에서 가변 지연을 갖는 스테이지 및 도 1b의 라인(70)이 배치된다.

Claims (9)

  1. 제 1 인코더(12)의 출력 데이터의 적어도 한 블록 및 제 2 인코더(14)의 출력 데이터의 적어도 한 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 생성하는 방법으로서, 상기 제 2 인코더는 최대 크기 및 현재 레벨에 의해 정해지는 비트 세이빙 뱅크(bat savings bank)를 포함하며, 상기 제 1 인코더의 출력 데이터의 상기 적어도 한 블록은 상기 제 1 인코더로의 입력 신호의 샘플 수를 나타내고 상기 샘플 수는 상기 제 1 인코더에 대한 상기 입력 신호의 현재 섹션을 정의하며, 상기 제 2 인코더의 출력 데이터의 상기 적어도 한 블록은 상기 제 2 인코더로의 입력 신호의 샘플 수를 나타내고 상기 샘플 수는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 나타내며, 상기 제 1 인코더에 대한 상기 샘플 수 및 상기 제 2 인코더에 대한 상기 샘플 수는 동일하며, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 조정 가능한 기간(34)만큼 서로에 대하여 시프트되는, 스케일러블 데이터 스트림을 생성하는 방법에 있어서,
    상기 제 1 인코더(12)의 출력 데이터의 블록(11)이 존재하는 경우에, 상기 제 1 인코더의 출력 데이터의 상기 적어도 한 블록을 상기 스케일러블 데이터 스트림에 기입하는 단계;
    상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터(0)가 존재하면, 상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터를 상기 제 1 인코더의 출력 데이터의 블록(11) 뒤에 전송 방향으로 기입하는 단계;
    상기 제 2 인코더의 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터(1)가 존재하면, 상기 제 2 인코더의 출력 데이터를 상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터의 뒤에 상기 전송 방향으로 상기 비트 스트림내로 기입하는 단계;
    상기 제 2 인코더의 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터 블록이 준비된 경우에 결정 데이터 블록(200)을 생성하고, 상기 결정 데이터 블록의 생성에 대하여 어느 기간(250)만큼 지연된 상기 결정 데이터 블록(200)을 기입하는 단계로서, 여기서 상기 기간은 상기 제 2 인코더(14)의 상기 비트 세이빙 뱅크의 최대 크기에 대응하는 지연보다 작거나 같은 단계; 및
    상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터가 상기 결정 데이터 블록(200)에 대하여 어느 곳에서 시작되는 지를 나타내는 버퍼 정보(260)를 상기 비트 스트림에 기입하는 단계를 포함하는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  2. 제 1 항에 있어서,
    상기 기간(250)은 상기 비트 세이빙 뱅크의 최대 크기에 대응하는 지연과 동일하며, 그리고
    상기 버퍼 정보(260)는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션에 대한 상기 비트 세이빙 뱅크의 현재 레벨에 대응하는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 결정 데이터 블록(200)은 높은 우선 순위로 기입되고,
    상기 제 1 인코더의 출력 데이터 블록은 더 낮은 우선 순위로 기입되면, 그리고
    상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터의 상기 적어도 하나의 블록(0)이 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터의 상기 적어도 하나의 블록(1)보다 더 높은 우선 순위로 상기 비트 스트림에 기입되는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제 1 인코더는 샘플 수에 대한 적어도 2개의 블록을 제공하며,
    상기 방법은 오프셋 개수상기 비트 스트림 내에 기입하는 단계를 더 포함하며, 상기 오프셋 정보는 상기 결정 데이터 블록(200) 앞에 전송 방향으로 상기 제 1 인코더(12)의 출력 데이터의 얼마나 많은 블록이 상기 제 1 인코더(12)의 현재 섹션에 속하는지를 나타내는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 방법.
  5. 최대 크기를 갖는 비트 세이빙 뱅크(bit savings bank)를 구비하는인코더(14)로서,
    오디오 디코더에 제공된 지연에 따라서 상기 비트 세이빙 뱅크의 최대 크기를 조절하는 수단(50); 및
    상기 비트 세이빙 뱅크의 조절된 최대 크기를 출력측 데이터 스트림으로 전송하는 수단(52, 20)을 포함하는 것을 특징으로 하는 인코더.
  6. 제 1 인코더에 대한 출력 데이터의 블록을 생성하는 제 1 인코더;
    비트 세이빙 뱅크를 포함하는 제 2 인코더(14)로서, 상기 비트 세이빙 뱅크는 상기 제 2 인코더에 대한 출력 데이터의 블록을 생성하기 위한 최대 크기를 갖고, 상기 제 2 인코더는 오디어 디코더에 제공되는 초기 지연에 따라 상기 비트 세이빙 뱅크의 최대 크기를 조절하는 수단(50)을 더 포함하는 제 2 인코더;
    스케일러블 데이터 스트림(scalable data stream)을 생성하는 비트 스트림 멀티플렉서(20)로서,
    상기 제 1 인코더(12)에 대한 출력 데이터 블록을 스케일러블 데이터 스트림 내에 기입하고,
    상기 제 2 인코더(14)에 대한 상기 출력 데이터 블록을 상기 스케일러블 데이터 스트림 내에 기입하고,
    상기 제 2 인코더의 출력 데이터 블록이 상기 제 2 인코더에 의해 출력된 후에 결정 데이터 블록(200)을 생성하고,
    어느 기간만큼 지연된 상기 스케일러블 데이터 스트림 내에 상기 결정데이터 블록을 기입하며, 여기서 상기 기간은 상기 비트 세이빙 뱅크의 최대 크기에 대응하며,
    전송 방향에서의 상기 결정 데이터 블록(200)의 앞에 상기 제 2 인코더의 출력 데이터가 얼마나 멀리 떨어져서 시작되는지를 나타내는 버퍼 정보(26)를 상기 비트 스트림에 기입하도록 구성된 상기 비트 스트림 멀티플렉서(20)를 포함하는 것을 특징으로 하는 스케일러블 인코더.
  7. 제 1 인코더(12)의 출력 데이터의 적어도 한 블록 및 제 2 인코더(14)의 출력 데이터의 적어도 한 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 생성하는 장치로서, 상기 제 2 인코더는 최대 크기 및 현재 레벨에 의해 정해지는 비트 세이빙 뱅크(bat savings bank)를 포함하며, 상기 제 1 인코더의 출력 데이터의 상기 적어도 한 블록은 상기 제 1 인코더로의 입력 신호의 샘플 수를 나타내고 상기 샘플 수는 상기 제 1 인코더에 대한 상기 입력 신호의 현재 섹션을 정의하며, 상기 제 2 인코더의 출력 데이터의 상기 적어도 한 블록은 상기 제 2 인코더로의 입력 신호의 샘플 수를 나타내고 상기 샘플 수는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 나타내며, 상기 제 1 인코더에 대한 상기 샘플 수 및 상기 제 2 인코더에 대한 상기 샘플 수는 동일하며, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 조정 가능한 기간(34)만큼 서로에 대하여 시프트되는, 스케일러블 데이터 스트림을 생성하는 장치에 있어서,
    상기 제 1 인코더(12)의 출력 데이터의 블록(11)이 존재하는 경우에, 상기제 1 인코더의 출력 데이터의 한 블록을 상기 스케일러블 데이터 스트림 내에 기입하는 수단;
    상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터(0)가 상기 제 2 인코더에 대하여 존재하면, 상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터를 상기 제 1 인코더의 출력 데이터의 블록(11) 뒤에 전송 방향으로 기입하는 수단;
    상기 제 2 인코더의 출력 데이터(1)가 상기 제 2 인코더의 현재 섹션에 대하여 존재하면, 상기 제 2 인코더에 대한 시간 신호의 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터를 상기 제 2 인코더에 대한 상기 입력 신호의 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터의 뒤에 상기 전송 방향으로 상기 비트 스트림 내로 기입하는 수단;
    상기 제 2 인코더의 출력 데이터 블록이 상기 제 2 인코더의 현재 섹션에 대하여 존재하는 경우에 결정 데이터 블록(200)을 생성하고, 상기 결정 데이터 블록의 생성에 관하여 어느 기간(250)만큼 지연된 상기 결정 데이터 블록(200)을 기입하는 수단으로서, 여기서 상기 기간은 상기 제 2 인코더(14)의 상기 비트 세이빙 뱅크의 최대 크기에 대응하는 지연보다 작거나 같은 수단; 및
    상기 제 2 인코더의 출력 데이터가 상기 결정 데이터 블록(200)에 관하여 상기 제 2 인코더의 현재 섹션에 대하여 어느 곳에서 시작되는지를 나타내는 버퍼 정보(260)를 상기 비트 스트림에 기입하는 수단을 포함하는 것을 특징으로 하는 스케일러블 데이터 스트림의 생성 장치.
  8. 제 1 인코더(12)의 출력 데이터의 적어도 한 블록 및 제 2 인코더(14)의 출력 데이터의 적어도 한 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 디코딩하는 방법으로서, 상기 제 2 인코더는 최대 크기 및 현재 레벨에 의해 정해지는 비트 세이빙 뱅크(bat savings bank)를 포함하며, 상기 제 1 인코더의 출력 데이터의 상기 적어도 한 블록은 상기 제 1 인코더로의 입력 신호의 샘플 수를 나타내고 상기 샘플 수는 상기 제 1 인코더에 대한 상기 입력 신호의 현재 섹션을 정의하며, 상기 제 2 인코더의 출력 데이터의 상기 적어도 한 블록은 상기 제 2 인코더로의 입력 신호의 샘플 수를 나타내고 상기 샘플 수는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 나타내며, 상기 제 1 인코더에 대한 상기 샘플 수 및 상기 제 2 인코더에 대한 상기 샘플 수는 동일하며, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 조정 가능한 기간(34)만큼 서로에 대하여 시프트되며, 상기 스케일러블 데이터 스트림은 상기 제 1 인코더의 출력 데이터(11), 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터, 상기 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터, 결정 데이터 블록(200) 및 버퍼 정보(260)를 포함하는, 스케일러블 데이터 스트림을 디코딩하는 방법에 있어서,
    상기 스케일러블 데이터 스트림을 버퍼링(64)하는 단계;
    상기 제 1 인코더의 현재 섹션에 대한 상기 제 1 인코더의 출력 데이터의 블록을 판독하는 단계;
    상기 버퍼링된 데이터 스트림으로부터 상기 결정 데이터 블록(200) 및 상기버퍼 정보(260)를 판독하는 단계;
    상기 버퍼 정보(260)를 이용하여 상기 제 2 인코더의 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터 블록의 시작을 결정하는 단계; 및
    상기 제 1 인코더의 현재 섹션과 상기 제 2 인코더의 현재 섹션이 서로에 대하여 시간적으로 시프트되는 상기 조정 가능한 기간(34)을 고려할 필요가 있는 경우, 상기 제 1 인코더의 출력 데이터의 블록과 상기 제 2 인코더의 출력 데이터의 블록을 디코딩(64, 66)하는 단계를 포함하는 것을 특징으로 하는 스케일러블 데이터 스트림의 디코딩 방법.
  9. 제 1 인코더(12)의 출력 데이터의 적어도 한 블록 및 제 2 인코더(14)의 출력 데이터의 적어도 한 블록으로부터 스케일러블 데이터 스트림(scalable data stream)을 디코딩하는 장치로서, 상기 제 2 인코더는 최대 크기 및 현재 레벨에 의해 정해지는 비트 세이빙 뱅크(bit savings bank)를 포함하며, 상기 제 1 인코더의 출력 데이터의 상기 적어도 한 블록은 상기 제 1 인코더로의 입력 신호의 샘플 수를 나타내고 상기 샘플 수는 상기 제 1 인코더에 대한 상기 입력 신호의 현재 섹션을 정의하며, 상기 제 2 인코더의 출력 데이터의 상기 적어도 한 블록은 상기 제 2 인코더로의 입력 신호의 샘플 수를 나타내고 상기 샘플 수는 상기 제 2 인코더에 대한 상기 입력 신호의 현재 섹션을 나타내며, 상기 제 1 인코더에 대한 상기 샘플 수 및 상기 제 2 인코더에 대한 상기 샘플 수는 동일하며, 상기 제 1 및 제 2 인코더에 대한 상기 현재 섹션들은 동일하거나 조정 가능한 기간(34)만큼 서로에 대하여 시프트되며, 상기 스케일러블 데이터 스트림은 상기 제 1 인코더의 출력 데이터(11), 선행 섹션에 대한 상기 제 2 인코더의 출력 데이터, 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터, 결정 데이터 블록(200) 및 버퍼 정보(260)를 포함하는, 스케일러블 데이터 스트림의 디코딩 장치에 있어서,
    상기 스케일러블 데이터 스트림을 버퍼링(64)하는 수단;
    상기 제 1 인코더의 현재 섹션에 대한 상기 제 1 인코더의 출력 데이터 블록을 판독하는 수단;
    상기 버퍼링된 데이터 스트림으로부터 상기 결정 데이터 블록(200) 및 상기 버퍼 정보(260)를 판독하는 수단;
    상기 버퍼 정보(260)를 이용하여 상기 제 2 인코더의 현재 섹션에 대한 상기 제 2 인코더의 출력 데이터 블록의 시작을 결정하는 수단; 및
    상기 제 1 인코더의 현재 섹션과 상기 제 2 인코더의 현재 섹션이 서로에 대하여 시간적으로 시프트되는 상기 조정 가능한 기간(34)을 고려할 필요가 있는 경우, 상기 제 1 인코더의 출력 데이터의 블록과 상기 제 2 인코더의 출력 데이터의 블록을 디코딩(64, 66)하는 수단을 포함하는 것을 특징으로 하는 스케일러블 데이터 스트림의 디코딩 장치.
KR1020037009445A 2001-01-18 2002-01-14 비트 세이빙 뱅크, 인코더 및 스케일러블 인코더를 제공하여 스케일러블 데이터 스트림을 생성 및/또는 디코딩하는 방법 및 장치 Expired - Lifetime KR100576034B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10102159.3 2001-01-18
DE10102159A DE10102159C2 (de) 2001-01-18 2001-01-18 Verfahren und Vorrichtung zum Erzeugen bzw. Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkasse, Codierer und skalierbarer Codierer
PCT/EP2002/000294 WO2002063611A1 (de) 2001-01-18 2002-01-14 Verfahren und vorrichtung zum erzeugen bzw. decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkasse, codierer und skalierbarer codierer

Publications (2)

Publication Number Publication Date
KR20030076611A true KR20030076611A (ko) 2003-09-26
KR100576034B1 KR100576034B1 (ko) 2006-05-02

Family

ID=7670988

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037009445A Expired - Lifetime KR100576034B1 (ko) 2001-01-18 2002-01-14 비트 세이빙 뱅크, 인코더 및 스케일러블 인코더를 제공하여 스케일러블 데이터 스트림을 생성 및/또는 디코딩하는 방법 및 장치

Country Status (9)

Country Link
US (1) US7516230B2 (ko)
EP (1) EP1338004B8 (ko)
JP (1) JP3890300B2 (ko)
KR (1) KR100576034B1 (ko)
AT (1) ATE275751T1 (ko)
AU (1) AU2002249122B2 (ko)
CA (1) CA2434882C (ko)
DE (2) DE10102159C2 (ko)
WO (1) WO2002063611A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3881943B2 (ja) 2002-09-06 2007-02-14 松下電器産業株式会社 音響符号化装置及び音響符号化方法
DE10328777A1 (de) * 2003-06-25 2005-01-27 Coding Technologies Ab Vorrichtung und Verfahren zum Codieren eines Audiosignals und Vorrichtung und Verfahren zum Decodieren eines codierten Audiosignals
GB2403634B (en) * 2003-06-30 2006-11-29 Nokia Corp An audio encoder
DE10353793B4 (de) * 2003-11-13 2012-12-06 Deutsche Telekom Ag Verfahren zur Verbesserung der Wiedergabequalität bei paketorientierter Übertragung von Audio-/Video-Daten
US7756594B2 (en) * 2004-06-14 2010-07-13 Microsoft Corporation Systems and methods for parsing flexible audio codec topologies
US20060041895A1 (en) * 2004-08-04 2006-02-23 Microsoft Corporation Systems and methods for interfacing with codecs across an architecture optimized for audio
US7590065B2 (en) * 2004-08-04 2009-09-15 Microsoft Corporation Equal-opportunity bandwidth regulation
US7706901B2 (en) * 2004-10-01 2010-04-27 Microsoft Corporation Low latency real-time audio streaming
KR20070070174A (ko) * 2004-10-13 2007-07-03 마츠시타 덴끼 산교 가부시키가이샤 스케일러블 부호화 장치, 스케일러블 복호 장치 및스케일러블 부호화 방법
JP5046652B2 (ja) * 2004-12-27 2012-10-10 パナソニック株式会社 音声符号化装置および音声符号化方法
US8826093B2 (en) * 2005-01-19 2014-09-02 Qualcomm Incorporated Power saving method for coded transmission
US7809018B2 (en) * 2005-12-16 2010-10-05 Coding Technologies Ab Apparatus for generating and interpreting a data stream with segments having specified entry points
ATE429118T1 (de) * 2005-12-16 2009-05-15 Dolby Sweden Ab Vorrichtung zum erzeugen und interpretieren eines datenstroms mit einer reihe von segmenten unter verwendung von daten in nachfolgenden datenrahmen
US7590523B2 (en) * 2006-03-20 2009-09-15 Mindspeed Technologies, Inc. Speech post-processing using MDCT coefficients
EP1841072B1 (de) * 2006-03-30 2016-06-01 Unify GmbH & Co. KG Verfahren und Einrichtung zum Dekodieren von schichtkodierten Daten
US8190441B2 (en) * 2006-09-11 2012-05-29 Apple Inc. Playback of compressed media files without quantization gaps
JP4358215B2 (ja) * 2006-09-27 2009-11-04 株式会社東芝 動画像符号化装置及びその方法
EP3373297B1 (en) * 2008-09-18 2023-12-06 Electronics and Telecommunications Research Institute Decoding apparatus for transforming between modified discrete cosine transform-based coder and hetero coder
CN101771417B (zh) * 2008-12-30 2012-04-18 华为技术有限公司 信号编码、解码方法及装置、系统
MX2012011802A (es) * 2010-04-13 2013-02-26 Fraunhofer Ges Forschung Metodo y codificador y descodificador para la presentacion precisa de muestra de una señal de audio.
US8532804B2 (en) * 2010-06-18 2013-09-10 Microsoft Corporation Predictive resampler scheduler algorithm
WO2012031269A1 (en) * 2010-09-03 2012-03-08 Loglogic, Inc. Random access data compression
KR20120084234A (ko) 2011-01-19 2012-07-27 삼성전자주식회사 Mpeg media transport(mmt)에서 mmt au를 전송하는 방법
TWI476761B (zh) * 2011-04-08 2015-03-11 Dolby Lab Licensing Corp 用以產生可由實施不同解碼協定之解碼器所解碼的統一位元流之音頻編碼方法及系統
WO2013142650A1 (en) 2012-03-23 2013-09-26 Dolby International Ab Enabling sampling rate diversity in a voice communication system
TWI505262B (zh) 2012-05-15 2015-10-21 Dolby Int Ab 具多重子流之多通道音頻信號的有效編碼與解碼
US10199043B2 (en) * 2012-09-07 2019-02-05 Dts, Inc. Scalable code excited linear prediction bitstream repacked from a higher to a lower bitrate by discarding insignificant frame data
US9564136B2 (en) * 2014-03-06 2017-02-07 Dts, Inc. Post-encoding bitrate reduction of multiple object audio
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
US12301347B2 (en) 2021-09-15 2025-05-13 Samsung Display Co., Ltd. Systems and methods for transition encoding compatible PAM4 encoding
US12001680B2 (en) * 2022-08-24 2024-06-04 Micron Technology, Inc. Utilizing last successful read voltage level in memory access operations

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3943880B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
DE4218695A1 (de) * 1992-06-09 1993-12-16 Thomson Brandt Gmbh Verfahren, Coder und Decoder zur Datenübertragung und/oder -speicherung
US5365552A (en) * 1992-11-16 1994-11-15 Intel Corporation Buffer fullness indicator
US5835033A (en) * 1994-11-08 1998-11-10 Canon Kabushiki Kaisha Decoding apparatus and method for coded data
US5896099A (en) * 1995-06-30 1999-04-20 Sanyo Electric Co., Ltd. Audio decoder with buffer fullness control
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
US5768537A (en) * 1996-02-22 1998-06-16 International Business Machines Corporation Scalable MPEG2 compliant video encoder
JP3344944B2 (ja) * 1997-05-15 2002-11-18 松下電器産業株式会社 オーディオ信号符号化装置,オーディオ信号復号化装置,オーディオ信号符号化方法,及びオーディオ信号復号化方法
JP3246715B2 (ja) 1996-07-01 2002-01-15 松下電器産業株式会社 オーディオ信号圧縮方法,およびオーディオ信号圧縮装置
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 윤종용 비트율 조절이 가능한 오디오 부호화/복호화 방법및 장치
KR100335609B1 (ko) * 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
AU1928999A (en) * 1997-12-19 1999-07-12 Kenneth Rose Scalable predictive coding method and apparatus
WO2000008767A1 (en) * 1998-08-06 2000-02-17 Samsung Electronics Co., Ltd. Channel encoding/decoding in communication system
US6553086B1 (en) * 1998-10-02 2003-04-22 Lg Electronics, Inc. Method and apparatus for recording time information for digital data streams
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
FR2791167B1 (fr) * 1999-03-17 2003-01-10 Matra Nortel Communications Procedes de codage, de decodage et de transcodage audio
US6195989B1 (en) 1999-05-04 2001-03-06 Caterpillar Inc. Power control system for a machine
KR100349329B1 (ko) * 1999-06-23 2002-08-21 한국전자통신연구원 엠펙-2 고품질 오디오 처리 알고리즘의 병렬 처리 방법
DE19959156C2 (de) * 1999-12-08 2002-01-31 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Verarbeiten eines zu codierenden Stereoaudiosignals
US6369722B1 (en) * 2000-03-17 2002-04-09 Matra Nortel Communications Coding, decoding and transcoding methods
US6675148B2 (en) * 2001-01-05 2004-01-06 Digital Voice Systems, Inc. Lossless audio coder
US6926526B2 (en) * 2002-05-24 2005-08-09 Kenneth G. Hudak Endodontic adapter for a sonic scaler

Also Published As

Publication number Publication date
US20040162911A1 (en) 2004-08-19
KR100576034B1 (ko) 2006-05-02
DE10102159C2 (de) 2002-12-12
DE10102159A1 (de) 2002-08-08
AU2002249122B2 (en) 2005-06-23
EP1338004A1 (de) 2003-08-27
CA2434882A1 (en) 2002-08-15
JP2004523790A (ja) 2004-08-05
DE50200953D1 (de) 2004-10-14
EP1338004B8 (de) 2005-08-31
WO2002063611A1 (de) 2002-08-15
ATE275751T1 (de) 2004-09-15
HK1056641A1 (en) 2004-02-20
JP3890300B2 (ja) 2007-03-07
EP1338004B1 (de) 2004-09-08
US7516230B2 (en) 2009-04-07
CA2434882C (en) 2008-04-15

Similar Documents

Publication Publication Date Title
KR100576034B1 (ko) 비트 세이빙 뱅크, 인코더 및 스케일러블 인코더를 제공하여 스케일러블 데이터 스트림을 생성 및/또는 디코딩하는 방법 및 장치
JP5129888B2 (ja) トランスコード方法、トランスコーディングシステム及びセットトップボックス
EP2249336B1 (en) Method and receiver for high frequency reconstruction of a stereo audio signal
US5809472A (en) Digital audio data transmission system based on the information content of an audio signal
CN101529503B (zh) 信息信号的编码装置及方法
US5845251A (en) Method, system and product for modifying the bandwidth of subband encoded audio data
JP2001202097A (ja) 符号化二進オーディオ処理方法
CN101484937A (zh) 使用缓冲器调节对已预测编码的数据进行解码
US7454353B2 (en) Method and device for the generation of a scalable data stream and method and device for decoding a scalable data stream
KR100516985B1 (ko) 비트 세이빙 뱅크 기능을 제공하여 스케일러블 데이터스트림을 생성하는 방법 및 장치와 스케일러블 데이터스트림을 디코딩하는 방법 및 장치
HK1056641B (en) Method and device for the generation or decoding of a scalable data stream with provision for a bit-store, encoder and scalable encoder
HK1057123B (en) Method and device for the generation of a scalable data stream and method and device for decoding a scalable data stream
HK1056790B (en) 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
GB2624686A (en) Improvements to audio coding
JPH10333698A (ja) 音声符号化方法、音声復号化方法、音声符号化装置、及び記録媒体
JPH11502394A (ja) 広帯域デジタル情報信号を送信するための送信機とその方法、及び受信機

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20030715

Patent event code: PA01051R01D

Comment text: International Patent Application

A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20030716

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20050725

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20060417

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20060425

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20060425

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20090331

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20100416

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20110419

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20120416

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20130418

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20130418

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20140416

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20140416

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20150427

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20150427

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20170418

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20170418

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20180417

Start annual number: 13

End annual number: 13

FPAY Annual fee payment

Payment date: 20190416

Year of fee payment: 14

PR1001 Payment of annual fee

Payment date: 20190416

Start annual number: 14

End annual number: 14

PR1001 Payment of annual fee

Payment date: 20200421

Start annual number: 15

End annual number: 15

PC1801 Expiration of term

Termination date: 20220714

Termination category: Expiration of duration