KR20080025404A - 디지털 미디어 스펙트럼 데이터의 효율적인 코딩을 위해사용되는 사전 내의 코드워드의 수정 - Google Patents

디지털 미디어 스펙트럼 데이터의 효율적인 코딩을 위해사용되는 사전 내의 코드워드의 수정 Download PDF

Info

Publication number
KR20080025404A
KR20080025404A KR1020087001019A KR20087001019A KR20080025404A KR 20080025404 A KR20080025404 A KR 20080025404A KR 1020087001019 A KR1020087001019 A KR 1020087001019A KR 20087001019 A KR20087001019 A KR 20087001019A KR 20080025404 A KR20080025404 A KR 20080025404A
Authority
KR
South Korea
Prior art keywords
codeword
codewords
coefficients
subband
subbands
Prior art date
Application number
KR1020087001019A
Other languages
English (en)
Other versions
KR101330362B1 (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 KR20080025404A publication Critical patent/KR20080025404A/ko
Application granted granted Critical
Publication of KR101330362B1 publication Critical patent/KR101330362B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

Abstract

코드 벡터(code-vector)의 스케일링된 버전으로서 스펙트럼 데이터의 어떤 일부분을 표현함으로써 스펙트럼 데이터의 코딩이 제공되며, 여기서 코드 벡터는 고정된 미리 정해진 코드북(codebook) 또는 기저대역으로부터 얻어진 코드북으로부터 선택된다. 코드 벡터가 모델링하고 있는 데이터를 더 잘 표현할 수 있게 해주는 어떤 규칙들에 따라 코드북 내의 코드 벡터들을 수정하는 다양한 선택적인 특징이 기술되어 있다. 코드 벡터 수정은 멱승(exponentiation), 부정(negation), 역전(reversing) 또는 복수의 코드 벡터로부터의 요소들의 합성(combining) 등에 의한 하나 이상의 코드 벡터의 선형 또는 비선형 변환을 포함한다.
코딩, 코드워드, 스펙트럼 계수, 코드 벡터, 인코딩, 디코딩

Description

디지털 미디어 스펙트럼 데이터의 효율적인 코딩을 위해 사용되는 사전 내의 코드워드의 수정{MODIFICATION OF CODEWORDS IN DICTIONARY USED FOR EFFICIENT CODING OF DIGITAL MEDIA SPECTRAL DATA}
이 기술은 일반적으로 스펙트럼 데이터의 어떤 부분을 다른 이전에 코딩된 부분들의 수정된 버전으로서 표현함으로써 스펙트럼 데이터를 코딩하는 것에 관한 것이다.
오디오의 코딩은 사람 청각의 다양한 지각 모델(perceptual model)을 이용하는 코딩 기술을 이용한다. 예를 들어, 많은 약한 톤(tone)은 강한 톤 근방에서 마스킹되며 따라서 코딩될 필요가 없다. 종래의 지각 오디오 코딩에서, 이것은 서로 다른 주파수 데이터의 적응적 양자화로서 이용된다. 지각적으로 중요한 주파수 데이터는 더 많은 비트, 따라서 더 미세한 양자화를 배정받으며, 그 역도 마찬가지이다.
그렇지만, 지각 코딩(perceptual coding)은 더 넓은 의미로 이해될 수 있다. 예를 들어, 스펙트럼의 어떤 부분은 적절히 쉐이핑된 노이즈(shaped noise)로 코딩될 수 있다. 이 방식을 택할 때, 코딩된 신호는 원본의 정확한 또는 거의 정확한 버전을 만드는 것을 목표로 하지 않을 수 있다. 오히려, 목표는 원본과 비교할 때 유사하고 기분좋게 들리게 하는 것이다.
이들 지각적 효과 전부는 오디오 신호의 코딩에 필요한 비트-레이트를 감소시키기 위해 사용될 수 있다. 이러한 이유는 어떤 주파수 성분이 원래의 신호에 존재하는 대로 정확하게 표현될 필요가 없고 코딩되지 않거나 원본에서와 동일한 지각적 효과를 주는 무언가로 대체될 수 있기 때문이다.
본 명세서에 기술된 오디오 인코딩/디코딩 기술은 어떤 주파수 성분이, 쉐이핑된 노이즈 또는 다른 주파수 성분의 쉐이핑된 버전 또는 이 둘의 조합을 사용하여, 지각적으로 잘 또는 부분적으로 표현될 수 있다는 사실을 이용한다. 보다 상세하게는, 어떤 주파수 대역이 이미 코딩되어 있는 다른 대역들의 쉐이핑된 버전으로서 지각적으로 잘 표현될 수 있다. 실제의 스펙트럼이 이 합성 버전과 다를 수 있지만, 이는 여전히 품질을 저하시키지 않고 오디오 신호 인코딩의 비트-레이트를 상당히 감소시키는 데 사용될 수 있는 지각적으로 양호한 표현이다.
코드 벡터가 서브대역 데이터를 더 잘 표현할 수 있게 해주는 어떤 규칙들에 따라 코드북 내의 코드 벡터(예를 들어, 코드워드)를 수정하는 다양한 선택적인 특징이 기술되어 있다. 이 수정은 선형 또는 비선형 변환으로 이루어져 있을 수 있거나 2개의 다른 코드 벡터의 합성으로서 코드 벡터를 표현하는 것일 수 있다. 합성의 경우에, 이 수정은 한 코드 벡터의 일부분을 택하고 이를 다른 코드 벡터의 일부분과 합성함으로써 제공될 수 있다.
코드워드는 기저대역(baseband), 고정된 코드북(fixed codebook), 및/또는 랜덤하게 발생된 코드워드로부터 온 것이다. 그에 부가하여, 코드워드는 또한 기저대역 코더(baseband coder) 또는 확장 대역 코더(extended band coder)에 의해 이전에 코딩된 대역으로부터 온 것일 수도 있다. 본 명세서에서 코드워드라고 하는 것은 이들 가능한 코드워드 소스 전부를 포함하지만, 임의의 특정의 실시예는 이들 코드워드 소스들의 부분집합만을 사용할 수 있다. 코딩 중인 벡터와 일치하는 최상의 형상을 식별하기 위한 더 큰 형상 세트 또는 더 다양한 형상 세트를 획득하기 위해 라이브러리 내의 하나 이상의 코드워드에 대해 다양한 선형 또는 비선형 변환이 수행된다. 한 예에서, 코드워드는 형상 일치(shape matching)를 위한 다른 코드워드를 획득하기 위해 계수 순서(coefficient order)가 역전된다. 다른 예에서, 1 보다 작은 지수로 계수를 멱승하는 것(exponentiation)을 사용하여 코드워드의 분산(variance)이 축소된다. 이와 유사하게, 1 보다 큰 지수를 사용하여 코드워드의 분산이 확대된다. 다른 예에서, 코드워드의 계수가 부정(negate)된다. 물론, 서브대역 또는 다른 벡터와 일치시키기 위한 더 큰 또는 더 다양한 전체집합(universe)을 제공하기 위해 하나 이상의 코드워드에 대해 많은 다른 선형 및 비선형 변환이 수행될 수 있다.
다른 예에서, 최상의 일치 코드워드(match codeword)를 찾아내기 위해 기저대역 및/또는 다른 코드북들을 따라 전수적인 검색(exhaustive search)이 수행된다. 예를 들어, 지수 변환(exponential transform)(p=0.5, 1.0, 2.0), 부호 변환(sign transform)(+/-), 및 방향 변환(direction transform)(전방향/역방향)을 비롯한 코드워드 라이브러리의 전수적인 검색을 포함하는 검색이 수행된다. 이와 유사하게, 노이즈 코드북 스펙트럼, 다른 코드북, 또는 랜덤 노이즈 벡터를 따라 이러한 전수적인 검색이 수행될 수 있다.
일반적으로, 코딩 중인 서브대역과 변환된 코드워드 간의 최저 분산(lowest variance)을 구함으로써 가까운 일치(close match)가 제공될 수 있다. 코드워드 및 변환의 식별자는, 스케일 인자 등의 기타 정보와 함께, 비트스트림에 코딩되어 디코더에 제공된다.
다른 예에서, 인코딩을 위한 모델을 제공하기 위해 2개 이상의 코드워드가 합성된다. 예를 들어, 코딩 중인 서브대역을 더 잘 기술하기 위해 2개의 코드워드 b 및 n(b = <b0, b1...bu>이고 n = <n0, n1...nu>임)이 제공된다. 벡터 b는 기저대역, 노이즈 코드북, 또는 라이브러리로부터 온 것일 수 있고, 벡터 n도 이와 유사하게 이러한 임의의 소스로부터 온 것일 수 있다. 디코더가 암시적으로 또는 명시적으로 코드워드 b 및 n으로부터 어느 계수를 취할지를 알도록 2개 이상의 코드워드 b 및 n 각각으로부터의 계수들을 인터리빙하는 규칙이 제공된다. 이 규칙은 비트스트림에 제공되어 있거나 디코더가 암시적으로 알 수 있다. 다른 대안으로서, "b"는 코드워드 대신에 파형 코딩을 사용하는 실제 코딩일 수 있다.
따라서, 인코더는 2개 이상의 코드워드 식별자를 전송할 수 있으며, 선택에 따라서는, 서브대역을 생성하기 위해 어느 계수를 택할지를 디코딩하는 규칙을 전송할 수 있다. 이 인코더는 또한 코드워드에 대한 스케일 인자 정보도 전송하며, 선택에 따라서는, 적절한 경우, 임의의 다른 코드워드 변환 정보를 전송한다.
본 발명의 부가적인 특징 및 이점은 첨부 도면을 참조하여 계속되는 실시예들에 대한 이하의 상세한 설명으로부터 명백하게 될 것이다.
도 1 및 도 2는 본 발명의 코딩 기법이 포함될 수 있는 오디오 인코더 및 디코더의 블록도.
도 3은 도 1의 일반적인 오디오 인코더에 포함될 수 있는 수정된 코드워드 및/또는 가변 주파수 세그먼트화(variable frequency segmentation)를 사용하여 효율적인 오디오 코딩을 구현하는 기저대역 코더 및 확장 대역 코더의 블록도.
도 4는 도 3의 확장 대역 코더를 사용하여 효율적인 오디오 코딩으로 대역을 인코딩하는 것의 흐름도.
도 5는 도 2의 일반적인 오디오 디코더에 포함될 수 있는 기저대역 디코더, 확장 대역 구성 디코더, 및 확장 대역 디코더의 블록도.
도 6은 도 5의 확장 대역 디코더를 사용하여 효율적인 오디오 코딩으로 대역을 디코딩하는 것의 흐름도.
도 7은 일련의 스펙트럼 계수들을 나타내는 그래프.
도 8은 코드워드 및 코드워드의 다양한 선형 및 비선형 변환의 그래프.
도 9는 피크를 구분하여 표현하지 않는 예시적인 벡터의 그래프.
도 10은 지수 변환에 의한 코드워드 수정을 통해 생성된 구분되는 피크를 갖는 도 9의 그래프.
도 11은 코드워드를 이 코드워드가 모델링하고 있는 서브대역과 비교하여 나 타낸 그래프.
도 12는 변환된 서브대역 코드워드를 이 코드워드가 모델링하고 있는 서브대역과 비교하여 나타낸 그래프.
도 13은 코드워드, 이 코드워드에 의해 코딩될 서브대역, 이 코드워드의 스케일링된 버전, 및 이 코드워드의 수정된 버전을 나타낸 그래프.
도 14는 예시적인 일련의 분할 및 병합 서브대역 크기 변환을 나타낸 도면.
도 15는 도 1 또는 도 2의 오디오 인코더/디코더를 구현하는 데 적당한 컴퓨팅 환경의 블록도.
이하의 상세한 설명은 코드워드의 수정 및/또는 기본 주파수 세그먼트화(default frequency segmentation)의 수정을 사용하는 오디오 스펙트럼 데이터의 오디오 인코딩/디코딩을 갖는 오디오 인코더/디코더 실시예에 대해 기술한다. 이 오디오 인코딩/디코딩은 쉐이핑된 노이즈 또는 다른 주파수 성분의 쉐이핑된 버전 또는 이 둘의 조합을 사용하여 어떤 주파수 성분을 표현한다. 보다 상세하게는, 어떤 주파수 대역이 다른 대역들의 쉐이핑된 버전 또는 변환으로서 표현된다. 이것은 종종 주어진 품질에서의 비트-레이트의 감소 또는 주어진 비트-레이트에서의 품질의 향상을 가능하게 해준다. 선택에 따라서는, 초기의 서브대역 주파수 구성이 오디오 데이터의 음조(tonality), 에너지 또는 형상에 기초하여 수정될 수 있다.
개요
발명의 명칭이 "광의의 지각 유사성을 사용하는 디지털 미디어 스펙트럼 데이터의 효율적인 코딩(Efficient coding of digital media spectral data using wide-sense perceptual similarity)"인 2004년 6월 29일자로 출원된 미국 특허 출원 제10/882,801호의 특허 출원에서, 스펙트럼 데이터의 어떤 일부분을 코드 벡터의 스케일링된 버전으로서 표현함으로써 스펙트럼 데이터의 코딩을 가능하게 해주는 알고리즘이 제공되며, 여기서 코드 벡터는 고정된 미리 정해진 코드북(예를 들어, 노이즈 코드북) 또는 기저대역으로부터 가져온 코드북(예를 들어, 기저대역 코드북)으로부터 선택된다. 코드북이 적응적으로 생성될 때, 그 코드북은 이전에 인코딩된 스펙트럼 데이터로 이루어져 있을 수 있다.
코드 벡터가 표현하고 있는 데이터를 코드 벡터가 더 잘 표현할 수 있게 해주는 어떤 규칙들에 따라 코드북 내의 코드 벡터를 수정하는 다양한 선택적인 특징들이 기술되어 있다. 이 수정은 선형 또는 비선형 변환으로 이루어져 있을 수 있거나, 2개 이상의 다른 원래의 또는 수정된 코드 벡터의 합성으로서 코드 벡터를 표현하는 것으로 이루어져 있을 수 있다. 합성의 경우에, 이 수정은 한 코드 벡터의 일부분을 택하고 이를 다른 코드 벡터의 일부분과 합성함으로써 제공될 수 있다.
코드 벡터 수정을 사용할 때, 디코더가 그 변환을 적용하여 새로운 코드 벡터를 형성할 수 있도록 비트들이 전송되어야만 한다. 부가적인 비트들에도 불구하고, 코드워드 수정은 여전히 그 일부분의 실제 파형 코딩보다 스펙트럼 데이터의 일부분을 표현하는 더 효율적인 코딩이다.
설명된 기술이 오디오 코딩의 품질을 향상시키는 것에 관한 것이며, 이미지, 비디오 및 음성 등의 멀티미디어의 다른 코딩에도 적용될 수 있다. 오디오를 코딩할 때, 특히 코드북을 형성하는 데 사용된 스펙트럼의 일부분(일반적으로 저대역(lowband))이 그 코드북을 사용하여 코딩 중인 일부분(일반적으로 고대역(highband))과 다른 특성을 갖는 경우에, 지각적 개선이 가능하다. 예를 들어, 저대역이 "피크를 갖고(peaky)" 따라서 평균으로부터 멀리 떨어진 값을 갖지만 고대역은 그렇지 않거나, 이와 반대의 경우에, 저대역을 코드북으로서 사용하여 고대역을 더 잘 코딩하기 위해 이 기법이 사용될 수 있다.
벡터는 스펙트럼 데이터의 서브대역이다. 주어진 구현에서 서브대역 크기가 가변적인 경우, 이것은 코딩 효율을 향상시키기 위해 서브대역를 크기에 따라 분류할 기회를 제공한다. 종종, 유사한 특성을 갖는 서브대역들이 품질에 거의 영향을 주지 않고 병합될 수 있는 반면, 아주 가변적인 데이터를 갖는 서브대역들은 서브대역이 분할되어 있는 경우 더 잘 표현될 수 있다. 서브대역의 음조, 에너지 또는 형상을 측정하는 다양한 방법들이 기술되어 있다. 서브대역을 언제 분할 또는 병합해야 하는지를 결정하는 것과 관련하여 이들 다양한 대책들에 대해 기술한다. 그렇지만, 더 작은(분할된) 서브대역이면 동일한 스펙트럼 데이터를 표현하기 위해 더 많은 서브대역이 필요하다. 따라서, 서브대역 크기가 작을수록 정보를 코딩하는 데 더 많은 비트를 필요로 한다. 가변적인 서브대역 크기가 이용되는 경우, 서브대역을 코딩하는 데 필요한 데이터 및 서브대역 구성을 디코더로 전송하는 데 필요한 데이터 둘다를 고려하면서 스펙트럼 데이터의 효율적인 코딩을 위한 서브대역 구성이 제공된다. 이하의 단락은 보다 일반화된 예를 거쳐 보다 구체적인 예로 진행한다.
일반화된 오디오 인코더 및 디코더
도 1 및 도 2는 일반화된 오디오 인코더(100) 및 일반화된 오디오 디코더(200)의 블록도이며, 여기에서 본 명세서에 기술된 오디오 스펙트럼 데이터의 오디오 인코딩/디코딩 기술은 코드워드의 수정 및/또는 초기 주파수 세그먼트화의 수정을 사용한다. 인코더와 디코더 내의 모듈들 간의 표시된 관계는 인코더와 디코더에서의 정보의 주된 흐름을 나타내며, 간략함을 위해 다른 관계들은 도시되어 있지 않다. 구현 및 원하는 압축 유형에 따라, 인코더 또는 디코더의 모듈이 추가, 생략, 다수의 모듈로 분할, 다른 모듈들과 결합, 및/또는 유사한 모듈로 대체될 수 있다. 대안의 실시예에서, 다른 모듈 및/또는 기타 구성의 모듈을 갖는 인코더 또는 디코더는 지각적 오디오 품질을 측정한다.
광의의 지각적 유사성 오디오 스펙트럼 데이터 인코딩/디코딩이 포함될 수 있는 오디오 인코더/디코더에 대한 추가적인 상세는 이하의 미국 특허 출원, 즉 2004년 6월 29일자로 출원된 미국 특허 출원 제10/882,801호, 2001년 12월 14일자로 출원된 미국 특허 출원 제10,020,708호, 2001년 12월 14일자로 출원된 미국 특허 출원 제10/016,918호, 2001년 12월 14일자로 출원된 미국 특허 출원 제10/017,702호, 2001년 12월 14일자로 출원된 미국 특허 출원 제10/017,861호, 및 2001년 12월 14일자로 출원된 미국 특허 출원 제10/017,694호에 기술되어 있다.
예시적인 일반화된 오디오 인코더
일반화된 오디오 인코더(100)는 주파수 변환기(frequency transformer)(110), 다중-채널 변환기(multi-channel transformer)(120), 지각 모델러(perception modeler)(130), 가중기(weighter)(140), 양자화기(quantizer)(150), 엔트로피 인코더(entropy encoder)(160), 레이트/품질 제어기(rate/quality controller)(170), 및 비트스트림 멀티플렉서(bitstream multiplexer)["MUX"](180)를 포함한다.
인코더(100)는 입력 오디오 샘플(105)의 시계열(time series)을 수신한다. 다수의 채널을 갖는 입력(예를 들어, 스테레오 모드)에 있어서, 인코더(100)는 채널을 독립적으로 처리하고, 다중-채널 변환기(120) 이후에 결합 코딩된(jointly coded) 채널들에 작용할 수 있다. 인코더(100)는 오디오 샘플(105)을 압축하고 인코더(100)의 여러가지 모듈에 의해 생성된 정보를 멀티플렉싱하여 "WMA"(Windows Media Audio) 또는 "ASF"(Advanced Streaming Format) 등의 형식으로 비트스트림(195)을 출력한다. 다른 대안으로서, 인코더(100)는 기타 입력 및/또는 출력 형식에 작용한다.
주파수 변환기(110)는 오디오 샘플(105)을 수신하고 이를 주파수 영역의 데이터로 변환한다. 주파수 변환기(110)는 오디오 샘플(105)을, 가변 시간 분해능(variable temporal resolution)을 가능하게 해주기 위해 가변 크기를 가질 수 있는 블록들로 분할한다. 작은 블록은 입력 오디오 샘플(105)에서 짧지만 활성인 천이 구간(short but active transition segment)에서 시간 상세(time detail)를 더 많이 보존하는 것을 고려한 것이지만, 어떤 주파수 분해능을 희생시킨다. 이와 반대로, 큰 블록은 더 나은 주파수 분해능 및 더 나쁜 시간 분해능을 가지며, 보통 더 길고 덜 활성인 구간에서 더 높은 압축 효율을 고려한 것이다. 블록은 그렇지 않을 경우 나중의 양자화에 의해 유입될 수 있는 블록들 간의 지각가능한 불연속을 감소시키기 위해 중첩할 수 있다. 주파수 변환기(110)는 주파수 계수 데이터의 블록을 다중-채널 변환기(120)로 출력하고 블록 크기 등의 부수 정보를 MUX(180)로 출력한다. 주파수 변환기(110)는 주파수 계수 데이터 및 부수 정보 둘다를 지각 모델러(130)로 출력한다.
주파수 변환기(110)는 한 프레임의 오디오 입력 샘플(105)을 시변 크기(time-varying size)를 갖는 중첩하는 서브-프레임 블록들로 분할하고 시변 MLT를 서브-프레임 블록들에 적용한다. 예시적인 서브-프레임 크기는 128개, 256개, 512개, 1024개, 2048개, 및 4096개 샘플을 포함한다. MLT는 시간 창 함수(time window function)에 의해 변조된 DCT처럼 동작하며, 여기서 창 함수는 시변이며 서브-프레임 크기의 시퀀스에 의존한다. MLT는 주어진 중첩하는 샘플 블록
Figure 112008002805007-PCT00001
을 주파수 계수 블록
Figure 112008002805007-PCT00002
으로 변환한다. 주파수 변환기(110)는 또한 장래의 프레임의 복잡도의 추정치를 레이트/품질 제어기(170)로 출력한다. 대안의 실시예는 다른 종류의 MLT를 사용한다. 또다른 대안의 실시예에서, 주파수 변환기(110)는 DCT, FFT 또는 다른 유형의 변조된(modulated) 또는 비변조된(non-modulated), 중첩된(overlapped) 또는 비중첩된(non-overlapped) 주파수 변환을 적용하거나 서브대역 또는 웨이블릿 코딩을 사용한다.
다중-채널 오디오 데이터의 경우, 주파수 변환기(110)에 의해 생성된 주파수 계수 데이터의 다중 채널이 종종 상관된다. 이 상관을 이용하기 위해, 다중-채널 변환기(120)는 다수의 원래의, 독립적으로 코딩된 채널들을 결합 코딩된 채널들로 변환할 수 있다. 예를 들어, 입력이 스테레오 모드인 경우, 다중-채널 변환기(120)는 좌채널 및 우채널을 합채널(sum channel) 및 차채널(difference channel)로 변환할 수 있다.
Figure 112008002805007-PCT00003
Figure 112008002805007-PCT00004
또는, 다중-채널 변환기(120)는 독립적으로 코딩된 채널로서 좌채널 및 우채널을 통과시킬 수 있다. 보다 일반적으로, 1개보다 많은 다수의 입력 채널의 경우, 다중-채널 변환기(120)는 원래의 독립적으로 코딩된 채널들을 그대로 통과시키거나 원래의 채널들을 결합 코딩된 채널들로 변환시킨다. 독립적으로 코딩된 채널 또는 결합 코딩된 채널을 사용하기로 하는 결정은 사전 결정될 수 있거나, 이 결정은 인코딩 동안에 블록별로 또는 다른 방식으로 적응적으로 행해질 수 있다. 다중-채널 변환기(120)는 사용되는 채널 변환 모드를 나타내는 부수 정보를 생성하여 MUX(180)에 제공한다.
지각 모델러(130)는 주어진 비트-레이트에 대해 재구성된 오디오 신호의 품질을 향상시키기 위해 사람 청각 시스템의 특성을 모델링한다. 지각 모델러(130)는 주파수 계수의 가변 크기 블록의 여기 패턴(excitation pattern)을 계산한다. 먼저, 지각 모델러(130)는 블록의 크기 및 진폭 스케일을 정규화한다. 이것은 차후의 시간 스미어링(temporal smearing)을 가능하게 해주고 품질 척도에 대한 일관된 스케일을 설정한다. 선택에 따라서는, 지각 모델러(130)는 외이(outer ear)/중이(middle ear) 전달 함수를 모델링하기 위해 어떤 주파수에서 계수를 감쇠시킨다. 지각 모델러(130)는 블록에서의 계수의 에너지를 계산하고 25개 임계 대역(critical band)에 의한 에너지를 누계한다. 다른 대안으로서, 지각 모델러(130)는 다른 수의 임계 대역(예를 들어, 55개 또는 109개)을 사용한다. 임계 대역에 대한 주파수 범위는 구현-의존적이며, 수많은 옵션이 공지되어 있다. 예를 들어, ITU-R BS 1387 또는 그 안에 언급된 참조 문헌을 참고하기 바란다. 지각 모델러(130)는 동시적 및 시간적 마스킹을 해명하기 위해 대역 에너지를 처리한다. 대안의 실시예에서, 지각 모델러(130)는 ITU-R BS 1387에 기술되거나 언급된 것 등의 다른 청각 모델에 따라 오디오 데이터를 처리한다.
가중기(140)는 지각 모델러(130)로부터 수신된 여기 패턴에 기초하여 가중 인자(weighting factor)(다른 대안으로서 양자화 행렬(quantization matrix)이라고 함)를 발생하고 이 가중 인자를 다중-채널 변환기(120)로부터 수신된 데이터에 적용한다. 가중 인자는 오디오 데이터 내의 다수의 양자화 대역(quantization band) 각각에 대한 가중치를 포함한다. 양자화 대역은 인코더(100)의 다른 곳에서 사용되는 임계 대역과 수 또는 위치가 동일하거나 다를 수 있다. 가중 인자는 노이즈가 양자화 대역에 걸쳐 확산되는 비율을 나타내며, 목표는 노이즈의 가청도가 낮을 경우 대역에 노이즈를 더 넣고 또 그 반대로 함으로써 노이즈의 가청도(audibility)를 최소화하는 것이다. 가중 인자는 블록마다 양자화 대역의 수 및 진폭이 다를 수 있다. 한 구현에서, 양자화 대역의 수는 블록 크기에 따라 다르며, 작은 블록이 큰 블록보다 더 적은 양자화 대역을 갖는다. 예를 들어, 128개 계수를 갖는 블록은 13개의 양자화 대역을 가지며, 256개 계수를 갖는 블록은 15개의 양자화 대역을 가지고, 이하 마찬가지로 하여, 2048개 계수를 갖는 블록은 25개의 양자화 대역을 갖는다. 이들 블록-대역 비율은 예시적인 것에 불과하다. 가중기(140)는 독립적으로 코딩된 채널 또는 결합 코딩된 채널 내의 다중-채널 오디오 데이터의 각각의 채널에 대해 한 세트의 가중 인자를 발생하거나 결합 코딩된 채널에 대해 단일 세트의 가중 인자를 발생한다. 대안의 실시예에서, 가중기(140)는 여기 패턴 이외의 정보 또는 그에 부가적인 정보로부터 가중 인자를 발생한다.
가중기(140)는 가중된 계수 데이터 블록을 양자화기(150)로 출력하고 일련의 가중 인자 등의 부수 정보를 MUX(180)로 출력한다. 가중기(140)는 또한 레이트/품질 제어기(170) 또는 인코더(100) 내의 기타 모듈로 가중 인자를 출력할 수 있다. 일련의 가중 인자는 더 효율적인 표현을 위해 압축될 수 있다. 가중 인자가 손실 압축되는 경우, 재구성된 가중 인자는 일반적으로 계수 데이터 블록을 가중하는 데 사용된다. 블록의 한 대역 내의 오디오 정보가 어떤 이유(예를 들어, 노이즈 대 체(noise substitution) 또는 대역 절단(band truncation))로 완전히 제거된 경우, 인코더(100)는 블록에 대한 양자화 행렬의 압축을 추가적으로 향상시킬 수 있다.
양자화기(150)는 가중기(140)의 출력을 양자화하고, 양자화된 계수 데이터를 생성하여 엔트로피 인코더(160)에 제공하고 양자화 스텝 크기를 비롯한 부수 정보를 생성하여 MUX(180)에 제공한다. 양자화는 비가역적 정보 손실(irreversible loss of information)을 가져오지만 또한 인코더(100)가 레이트/품질 제어기(170)와 함께 출력 비트스트림(195)의 비트-레이트를 조절할 수 있게 해준다. 도 1에서, 양자화기(150)는 적응적, 균일 스칼라 양자화기(adaptive, uniform scalar quantizer)이다. 양자화기(150)는 각각의 주파수 계수에 동일한 양자화 스텝 크기를 적용하지만, 이 양자화 스텝 크기 자체는 엔트로피 인코더(160) 출력의 비트-레이트에 영향을 주기 위해 각각의 반복마다 변할 수 있다. 대안의 실시예에서, 양자화기는 비균일(non-uniform) 양자화기, 벡터 양자화기, 및/또는 비적응적(non-adaptive) 양자화기이다.
엔트로피 인코더(160)는 양자화기(150)로부터 수신되는 양자화된 계수 데이터를 무손실 압축한다. 예를 들어, 엔트로피 인코더(160)는 다중-레벨 런 길이 코딩(multi-level run length coding), 가변장-가변장 코딩(variable-to-variable length coding), 런 길이 코딩(run length coding), 허프만 코딩(Huffman coding), 사전 코딩(dictionary coding), 산술 코딩(arithmetic coding), LZ 코딩, 상기한 것들의 조합, 또는 어떤 다른 엔트로피 인코딩 기법을 사용한다.
레이트/품질 제어기(170)는 인코더(100)의 출력의 비트-레이트 및 품질을 조 절하기 위해 양자화기(150)에 작용한다. 레이트/품질 제어기(170)는 인코더(100)의 다른 모듈들로부터 정보를 수신한다. 한 구현에서, 레이트/품질 제어기(170)는 주파수 변환기(110)로부터의 장래의 복잡도의 추정치, 샘플링 레이트, 블록 크기 정보, 지각 모델러(130)로부터의 원래의 오디오 데이터의 여기 패턴, 가중기(140)로부터의 가중 인자, 어떤 형태의(예를 들어, 양자화된, 재구성된, 또는 인코딩된) 양자화된 오디오 정보의 블록, 및 MUX(180)로부터의 버퍼 상태 정보를 수신한다. 레이트/품질 제어기(170)는 양자화된 형태로부터 오디오 데이터를 재구성하기 위해, 역양자화기(inverse quantizer), 역가중기(inverse weighter), 역다중-채널 변환기(inverse multi-channel transformer), 및 잠재적으로는, 엔트로피 디코더 및 기타 모듈을 포함할 수 있다.
레이트/품질 제어기(170)는 현재의 조건이 주어진 경우 원하는 양자화 스텝 크기를 결정하기 위해 정보를 처리하고 이 양자화 스텝 크기를 양자화기(150)로 출력한다. 레이트/품질 제어기(170)는 이어서, 이하에 기술하는 바와 같이, 양자화 스텝 크기로 양자화된, 재구성된 오디오 데이터 블록의 품질을 측정한다. 측정된 품질은 물론 비트-레이트 정보를 사용하여, 레이트/품질 제어기(170)는 비트-레이트 및 품질 제약(순간적인 것(instantaneous) 및 장기적인 것(long-term) 둘다)을 만족시킬 목적으로 양자화 스텝 크기를 조정한다. 대안의 실시예에서, 레이트/품질 제어기(170)는 다른 또는 부가적인 정보에 작용하거나 다른 기법을 적용하여 품질 및 비트-레이트를 조절한다.
레이트/품질 제어기(170)와 함께, 인코더(100)는 오디오 데이터 블록에 노이 즈 대체, 대역 절단, 및/또는 다중-채널 리매트릭싱(multi-channel rematrixing)을 적용할 수 있다. 저 비트-레이트(low-bit-rate) 및 중간 비트-레이트(mid-bit-rate)에서, 오디오 인코더(100)는 어떤 대역으로 정보를 전달하기 위해 노이즈 대체를 사용할 수 있다. 대역 절단에서, 블록에 대한 측정된 품질이 좋지 않은 품질을 나타내는 경우, 인코더(100)는 나머지 대역에서의 전체적인 품질을 향상시키기 위해 어떤(보통 고주파) 대역에서의 계수를 완전히 제거할 수 있다. 다중-채널 리매트릭싱에서, 결합 코딩된 채널에서의 저 비트-레이트, 다중-채널 오디오 데이터의 경우, 인코더(100)는 나머지 채널(들)(예를 들어, 합채널)의 품질을 향상시키기 위해 어떤 채널(예를 들어, 차채널)에서의 정보를 억압할 수 있다.
MUX(180)는 오디오 인코더(100)의 다른 모듈들로부터 수신되는 부수 정보를, 엔트로피 인코더(160)로부터 수신되는 엔트로피 인코딩된 데이터와 함께, 멀티플렉싱한다. MUX(180)는 오디오 디코더가 인식하는 WMA 또는 다른 형식으로 정보를 출력한다.
MUX(180)는 인코더(100)에 의해 출력될 비트스트림(195)을 저장하는 가상 버퍼를 포함한다. 이 가상 버퍼는 오디오에서의 복잡도 변화로 인한 비트-레이트의 단기 변동을 평탄화하기 위해 미리 정해진 기간의 오디오 정보(예를 들어, 오디오를 스트리밍하는 경우 5초)를 저장한다. 이어서, 가상 버퍼는 비교적 일정한 비트-레이트로 데이터를 출력한다. 품질 및 비트-레이트를 조절하기 위해 버퍼의 현재 충만도(current fullness), 버퍼의 충만도의 변동율, 및 버퍼의 기타 특성이 레이트/품질 제어기(170)에 의해 사용될 수 있다.
예시적인 일반화된 오디오 디코더
도 2를 참조하면, 일반화된 오디오 디코더(200)는 비트스트림 디멀티플렉서["DEMUX"](210), 엔트로피 디코더(220), 역양자화기(230), 노이즈 발생기(240), 역가중기(250), 역다중-채널 변환기(260), 및 역주파수 변환기(270)를 포함한다. 디코더(200)는 인코더(100)보다 간단한데, 그 이유는 디코더(200)가 레이트/품질 제어를 위한 모듈을 포함하지 않기 때문이다.
디코더(200)는 WMA 또는 다른 형식으로 압축된 오디오 데이터의 비트스트림(205)을 수신한다. 비트스트림(205)은 엔트로피 인코딩된 데이터는 물론 부수 정보(이들로부터 디코더(200)가 오디오 샘플(295)을 재구성함)도 포함한다. 다중 채널을 갖는 오디오 데이터의 경우, 디코더(200)는 각각의 채널을 독립적으로 처리하고, 역다중-채널 변환기(260) 이전에 결합 코딩된 채널에 작용할 수 있다.
DEMUX(210)는 비트스트림(205) 내의 정보를 파싱하고 정보를 디코더(200)의 모듈들로 전송한다. DEMUX(210)는 오디오의 복잡도의 변동, 네트워크 지터 및/또는 다른 인자로 인한 비트-레이트의 단기 변동(short-term variation)을 보상하기 위해 하나 이상의 버퍼를 포함한다.
엔트로피 디코더(220)는 DEMUX(210)로부터 수신된 엔트로피 코드를 무손실 압축 해제하여, 양자화된 주파수 계수 데이터를 생성한다. 엔트로피 디코더(220)는 일반적으로 인코더에서 사용된 엔트로피 인코딩 기법의 반대(inverse)를 적용한다.
역양자화기(230)는 DEMUX(210)로부터 양자화 스텝 크기를 수신하고, 엔트로 피 디코더(220)로부터 양자화된 주파수 계수 데이터를 수신한다. 역양자화기(230)는 양자화된 주파수 계수 데이터에 양자화 스텝 크기를 적용하여 주파수 계수 데이터를 부분적으로 재구성한다. 대안의 실시예에서, 역양자화기는 인코더에서 사용된 어떤 다른 양자화 기법의 반대를 적용한다.
노이즈 발생기(240)는 데이터 블록에서 어느 대역이 노이즈 대체되는지의 표시는 물론 노이즈의 형태에 대한 임의의 파라미터를 DEMUX(210)로부터 수신한다. 노이즈 발생기(240)는 표시된 대역에 대한 패턴을 발생하고 이 정보를 역가중기(250)로 전달한다.
역가중기(250)는 DEMUX(210)로부터 가중 인자를 수신하고, 노이즈 발생기(240)로부터 임의의 노이즈-대체된 대역에 대한 패턴을 수신하며, 역양자화기(230)로부터 부분적으로 재구성된 주파수 계수 데이터를 수신한다. 필요에 따라, 역가중기(250)는 가중 인자를 압축 해제한다. 역가중기(250)는 노이즈 대체되지 않은 대역에 대하여 부분적으로 재구성된 주파수 계수 데이터에 가중 인자를 적용한다. 역가중기(250)는 노이즈 발생기(240)로부터 수신된 노이즈 패턴을 부가한다.
역다중-채널 변환기(260)는 역가중기(250)로부터 재구성된 주파수 계수 데이터를 수신하고 DEMUX(210)로부터 채널 변환 모드 정보를 수신한다. 다중-채널 데이터가 독립적으로 코딩된 채널에 있는 경우, 역다중-채널 변환기(260)는 그 채널을 통과시킨다. 다중-채널 데이터가 결합 코딩된 채널에 있는 경우, 역다중-채널 변환기(260)는 그 데이터를 독립적으로 코딩된 채널로 변환한다. 원하는 경우, 디 코더(200)는 이 시점에서 재구성된 주파수 계수 데이터의 품질을 측정할 수 있다.
역주파수 변환기(270)는 다중-채널 변환기(260)에 의해 출력된 주파수 계수 데이터는 물론 DEMUX(210)로부터의 블록 크기 등의 부수 정보도 수신한다. 역주파수 변환기(270)는 인코더에서 사용된 주파수 변환의 역을 적용하고 재구성된 오디오 샘플(295)의 블록을 출력한다.
수정된 코드워드 및 광의의 지각 유사성에 의한 예시적인 인코딩/디코딩
도 3은 도 1 및 도 2의 일반화된 오디오 인코더(100) 및 디코더(200)의 전체적인 오디오 인코딩/디코딩 프로세스에 포함될 수 있는, 광의의 지각 유사성을 갖는 등의 적응적 서브대역 구성 및/또는 수정된 코드워드에 의한 인코딩을 사용하는 오디오 인코더(300)의 한 구현을 나타낸 것이다. 이 구현에서, 오디오 인코더(300)는, 서브대역 변환 또는 MDCT나 MLT 등의 중첩된 직교 변환을 사용하여, 변환(320)에서 스펙트럼 분해(spectral decomposition)를 수행하여 오디오 신호의 각각의 입력 블록에 대한 일련의 스펙트럼 계수를 생성한다. 종래에 공지된 바와 같이, 오디오 인코더는 이들 스펙트럼 계수를 코딩하여 출력 비트스트림으로 디코더로 전송한다. 이들 스펙트럼 계수의 값들의 코딩은 오디오 코덱에서 사용되는 비트-레이트의 대부분을 구성한다. 저 비트-레이트에서, 오디오 인코더(300)는, 기저대역 코더(340)를 사용하여, 스펙트럼의 하위 부분 또는 기저대역 부분 등의 더 적은 스펙트럼 계수(즉, 주파수 변환기(110)로부터 출력되는 스펙트럼 계수의 대역폭의 비율 내에서 인코딩될 수 있는 계수의 수)를 코딩하기로 선택한다. 기저대역 코더(340)는, 일반화된 오디오 인코더에 대해 상기한 바와 같이, 종래에 공지된 코 딩 구문(coding syntax)을 사용하여 이들 기저대역 스펙트럼 계수를 인코딩한다. 이 결과, 일반적으로 재구성된 오디오 사운딩(audio sounding)이 머플링(muffle)되거나 저역 통과 필터링된다.
오디오 인코더(300)는 광의의 지각적 유사성을 갖는 적응적 서브대역 구성 및/또는 수정된 코드워드를 사용하여 생략된 스펙트럼 계수도 코딩함으로써 머플링된/저역-통과 효과를 회피한다. 기저대역 코더(340)에서의 코딩으로부터 생략되었던 스펙트럼 계수(여기에서 "확장 대역 스펙트럼 계수"라고 함)가 쉐이핑된 노이즈, 다른 주파수 성분의 쉐이핑된 버전, 또는 이 둘의 2개 이상의 조합으로서 확장 대역 코더(350)에 의해 코딩된다. 보다 구체적으로는, 확장 대역 스펙트럼 계수는, 쉐이핑된 노이즈 또는 다른 주파수 성분의 쉐이핑된 버전으로서 코딩되는, 다양한 부분적으로 서로 다른 크기의(예를 들어, 일반적으로 16개, 32개, 64개, 128개, 256개,... 기타 등등의 스펙트럼 계수의) 다수의 서브대역으로 분할된다. 이것은 누락된 스펙트럼 계수의 지각적으로 즐거운 버전을 부가하여 완전히 더 풍부한 사운드를 제공한다. 실제 스펙트럼이 이 인코딩으로부터 얻어지는 합성 버전과 다를 수 있지만, 이 확장 대역 코딩은 원본에서와 유사한 지각적 효과를 제공한다.
어떤 구현에서, 기저대역의 폭(즉, 기저대역 코더(340)를 사용하여 코딩된 기저대역 스펙트럼 계수의 수)은 물론 확장 대역의 크기 또는 수가 기본 구성(default configuration) 또는 초기 구성(initial configuration)과 다를 수 있다. 이러한 경우에, 기저대역의 폭 및/또는 확장 대역 코더(350)를 사용하여 코딩되는 확장 대역의 수(또는 크기)는 코딩(360)되어 출력 스트림(195)에 들어갈 수 있다.
원하는 경우, 기저대역 코더의 코딩 구문에 기초하여 기존의 디코더와의 후방 호환성(backward compatibility)을 보장하기 위해, 이러한 기존의 디코더가 확장된 부분을 무시하면서 기저대역 코딩된 부분을 디코딩할 수 있도록, 오디오 인코더(300)에서 기저대역 스펙트럼 계수와 확장 대역 계수 간의 비트스트림의 분할(partitioning)이 행해진다. 그 결과, 보다 새로운 디코더가 확장 대역 코딩된 비트스트림에 의해 커버되는 전체 스펙트럼을 렌더링할 수 있는 반면, 이전의 디코더는 인코더가 기존의 구문으로 인코딩하기로 결정했던 부분을 렌더링할 수 있다. 주파수 경계(예를 들어, 기저대역과 확장 대역 간의 경계)가 유동적이고 시변적일 수 있다. 주파수 경계가 신호 특성에 기초하여 인코더에 의해 결정되어 명시적으로 디코더로 전송될 수 있거나 디코딩된 스펙트럼의 함수이어서 전송될 필요가 없을 수 있다. 기존의 디코더가 기존의(기저대역) 코덱을 사용하여 코딩되는 부분을 디코딩할 수 있을 뿐이기 때문에, 이것은 스펙트럼의 하위 부분(예를 들어, 기저대역)이 기존의 코덱으로 코딩되고 상위 부분이 광의의 지각적 유사성을 사용하는 수정된 코드워드를 갖는 확장 대역 코딩을 사용하여 코딩된다는 것을 의미한다.
이러한 후방 호환성이 필요하지 않은 다른 구현에서, 인코더는 주파수 경계 위치를 고려하지 않고 신호 특성 및 인코딩 비용에만 기초하여 종래의 기저대역 코딩과 확장 대역(수정된 코드워드 및 광의의 지각적 유사성 방식을 가짐) 중에서 선택할 자유도를 갖는다. 예를 들어, 자연 신호에서 그럴 가능성이 거의 없지만, 상위 주파수를 종래의 코덱으로 인코딩하고 하위 부분을 확장 코덱을 사용하여 코딩 하는 것이 더 나을 수 있다.
예시적인 인코딩 방법
도 4는 확장 대역 스펙트럼 계수를 인코딩하기 위해 도 3의 확장 대역 코더(350)에 의해 수행되는 오디오 인코딩 프로세스(400)를 나타낸 플로우차트이다. 이 오디오 인코딩 프로세스(400)에서, 확장 대역 코더(350)는 확장 대역 스펙트럼 계수를 다수의 서브대역으로 분할한다. 일반적인 구현에서, 이들 서브대역은 각각 일반적으로 64개 또는 128개의 스펙트럼 계수로 이루어진다. 다른 대안으로서, 다른 크기의 서브대역(예를 들어, 16개, 32개 또는 다른 수의 스펙트럼 계수)이 사용될 수 있다. 확장 대역 인코더가 서브대역의 크기를 수정할 가능성을 제공하는 경우, 확장 대역 구성 프로세스(360)는 서브대역을 수정하고 확장 대역 구성을 인코딩한다. 서브대역은 서로 소(disjoint)이거나 (윈도잉(windowing)을 사용하여) 중첩할 수 있다. 서브대역이 중첩하는 경우, 더 많은 대역이 코딩된다. 예를 들어, 128개의 스펙트럼 계수가 서브대역의 크기가 64인 확장 대역 코더를 사용하여 코딩되어야만 하는 경우, 이 방법은 2개의 서로 소인 대역을 사용하여 계수들을 코딩하는데, 즉 계수 0 내지 63을 한쪽 서브대역으로서 코딩하고 계수 64 내지 127을 다른쪽 서브대역으로서 코딩한다. 다른 대안으로서, 50% 중첩을 갖는 3개의 중첩하는 대역이 사용될 수 있는데, 즉 0 내지 63을 한 대역으로서 코딩하고, 32 내지 95를 다른 대역으로서 코딩하며, 64 내지 127을 제3 대역으로서 코딩할 수 있다. 서브대역의 주파수 분할을 위한 다양한 다른 동적 방법들이 본 명세서에서 나중에 설명된다.
이들 고정된 또는 동적으로 최적화된 서브대역 각각에 대해, 확장 대역 코더(350)는 2개의 파라미터를 사용하여 대역을 인코딩한다. 한 파라미터("스케일 파라미터")는 대역 내의 총 에너지를 나타내는 스케일 인자이다. 다른 파라미터("형상 파라미터", 일반적으로 움직임 벡터 형태로 되어 있음)는 대역 내의 스펙트럼의 형상을 나타내는 데 사용된다. 선택에 따라서는, 설명하게 되는 바와 같이, 형상 파라미터는 지수(exponent), 벡터 방향(예를 들어, 전방향/역방향), 및/또는 계수 부호 변환(coefficient sign transformation)을 나타내는 하나 이상의 형상 변환 비트(shape transform bit)를 필요로 한다.
도 4의 플로우차트에 나타낸 바와 같이, 확장 대역 코더(350)는 확장 대역의 각각의 서브대역에 대해 프로세스(400)를 수행한다. 먼저(단계 420에서), 확장 대역 코더(350)는 스케일 인자를 계산한다. 한 구현에서, 이 스케일 인자는 단순히 현재의 서브대역 내의 계수들의 rms(root-mean-square) 값이다. 이것은 모든 계수들의 제곱값의 평균의 제곱근을 취함으로써 구해진다. 제곱값의 평균은 서브대역 내의 모든 계수들의 제곱값의 합을 취하고 이를 계수들의 수로 나눔으로써 구해진다.
확장 대역 코더(350)는 이어서 형상 파라미터를 결정한다. 형상 파라미터는 통상 이미 코딩되어 있는 스펙트럼의 일부분(즉, 기저대역 코더로 코딩된 기저대역 스펙트럼 계수의 일부분)으로부터 스펙트럼의 정규화된 버전을 단지 복사하라는 것을 나타내는 움직임 벡터이다. 어떤 경우에, 형상 파라미터는 그 대신에 정규화된 랜덤 노이즈 벡터 또는 단순히 고정된 코드북으로부터의 스펙트럼 형상에 대한 벡 터를 지정할 수 있다. 스펙트럼의 다른 부분으로부터 형상을 복사하는 것이 오디오에서 유용한데, 그 이유는 일반적으로 많은 음조 신호에서, 스펙트럼 전체에 걸쳐 반복하는 고조파 성분이 있기 때문이다. 노이즈 또는 어떤 다른 고정된 코드북을 사용하는 것은 스펙트럼의 기저대역-코딩된 부분에 잘 표현되어 있지 않는 그 성분들의 저 비트-레이트 코딩을 고려한 것이다. 그에 따라, 프로세스(400)는 본질적으로 이들 대역의 이득-형상 벡터 양자화 코딩(gain-shape vector quantization coding)인 코딩 방법을 제공하며, 여기서 벡터는 스펙트럼 계수의 주파수 대역이고, 코드북은 이전에 코딩된 스펙트럼으로부터 얻어지고 다른 고정된 벡터 또는 랜덤 노이즈 벡터도 포함할 수 있다. 즉, 확장 대역 코더에 의해 코딩된 각각의 서브대역은 a*X로 표현되고, 여기서 'a'는 스케일 파라미터이고, 'X'는 형상 파라미터에 의해 표현되는 벡터이며, (임의의) 이전에 코딩된 스펙트럼 계수의 정규화된 버전, 고정된 코드북으로부터의 벡터, 또는 랜덤 노이즈 벡터일 수 있다. 또한, 스펙트럼의 이 복사된 부분이 그 동일 부분의 종래의 코딩에 부가되는 경우, 이 부가는 잔차 코딩(residual coding)이다. 이것은 신호의 종래의 코딩이 몇 비트로 코딩하기 쉬운 기본 표현(base representation)(예를 들어, 스펙트럼 플로어(spectral floor)의 코딩)을 제공하고 나머지가 새로운 알고리즘에 의해 코딩되는 경우에 유용할 수 있다.
보다 구체적으로는, 동작(430)에서, 확장 대역 코더(350)는 현재의 서브대역과 유사한 형상을 갖는 스펙트럼 계수의 기저대역에서 벡터에 대한 기저대역(또는 다른 이전에 코딩된) 스펙트럼 계수를 검색한다. 앞서 언급한 바와 같이, "기저대 역으로부터의 코드워드"는 또한 현재의 기저대역 외부의 소스도 포함한다. 확장 대역 코더는 기저대역의 각 부분의 정규화된 버전과의 최소 평균 제곱 비교(least-mean-square comparison)를 사용하여 기저대역(또는 다른 이전의 대역)의 어느 부분이 현재의 서브대역에 가장 유사한지를 판정한다. 선택에 따라서는, 일치하는지를 알아보기 위한 형상의 더 큰 전체집합을 생성하기 위해, 선형 또는 비선형 변환(431)이 기저대역(또는 다른 이전의 대역) 내의 스펙트럼의 하나 이상의 부분에 적용된다. 다시 말하면, 코드워드에 대한 소스를 이야기할 때, 기저대역은 라이브러리 및 다른 이전의 대역을 포함한다. 선택에 따라서는, 일치하는지를 알아보기 위한 이용가능한 형상의 더 큰 라이브러리를 제공하기 위해, 확장 대역 인코더는 기저대역 및/또는 고정된 코드북에 대해 하나 이상의 선형 또는 비선형 변환을 수행한다. 예를 들어, 입력 블록으로부터 256개의 스펙트럼 계수가 변환(320)에 의해 생성되고, 확장 대역 서브대역(이 예에서)이 각각 폭이 16개 스펙트럼 계수이며, 기저대역 코더가 처음 128개의 스펙트럼 계수(0 내지 127의 번호가 부기됨)를 기저대역으로서 인코딩하는 경우를 생각해보자. 이어서, 검색은 계수 위치 0 내지 111에서 시작하여(즉, 이 경우에 총 112개의 가능한 서로 다른 스펙트럼 형상이 기저대역 내에 코딩되어 있음) 각각의 확장 대역에서의 정규화된 16개 스펙트럼 계수들과 기저대역(또는 임의의 이전에 코딩된 대역)의 각각의 16개 스펙트럼 계수 부분의 정규화된 버전과의 최소 평균 제곱 비교를 수행한다. 가장 낮은 최소 평균 제곱 값을 갖는 기저대역 부분이 현재의 확장 대역에 가장 가까운(가장 유사한) 형상인 것으로 간주된다. 선택에 따라서는, 검색은 기저대역(또는 다른 대역)의 선 형 또는 비선형 변환(431)에 대해 최소 평균 제곱 비교를 수행한다. 동작(432)에서, 확장 대역 코더는 기저대역 스펙트럼 계수 중에서 이 가장 유사한 대역이 현재의 확장 대역에 충분히 가까운 형상인지(예를 들어, 최소 평균 제곱값이 미리 선택된 문턱값보다 낮은지)를 검사한다. '예'인 경우, 동작(434)에서 확장 대역 코더는 기저대역 스펙트럼 계수의 이 가장 가까운 일치 대역을 가리키는 움직임 벡터, 및, 선택에 따라서는, 최상의 일치 움직임 벡터에 대한 선형 또는 비선형 변환에 관한 정보를 구한다. 움직임 벡터는 기저대역에서의 시작 계수 위치(예를 들어, 이 예에서 0 내지 111)일 수 있다. 기저대역(또는 다른 대역) 스펙트럼 계수 중에서 가장 유사한 대역이 현재의 확장 대역에 충분히 가까운 형상인지를 알아보기 위해 다른 방법들(음조(tonality) 대 무음조(non-tonality)를 검사하는 것 등)도 사용될 수 있다.
기저대역의 충분히 유사한 부분이 발견되지 않는 경우, 확장 대역 코더는 현재의 서브대역을 표현하기 위해 스펙트럼 형상의 고정된 코드북(440)을 조사한다. 확장 대역 코더는 현재의 서브대역의 형상과 유사한 스펙트럼 형상이 있는지 이 고정된 코드북(440)을 검색한다. 선택에 따라서는, 검색은 고정된 코드북의 선형 또는 비선형 변환(431)에 최소 평균 제곱 비교를 수행한다. 발견되는 경우, 확장 대역 코더는 동작(444)에서 코드북에서의 그의 인덱스를 형상 파라미터로서 사용하고, 선택에 따라서는, 코드북에서의 최상의 일치 인덱스에 대한 선형 또는 비선형 변환에 관한 정보를 사용한다. 그렇지 않은 경우, 동작(450)에서, 확장 대역 코더는 현재의 서브대역의 형상을 정규화된 랜덤 노이즈 벡터로서 표현하기로 결정할 수 있다.
대안의 구현에서, 확장 대역 인코더는 기저대역에서 최상의 스펙트럼 형상을 검색하기 이전에도 노이즈를 사용하여 스펙트럼 계수가 표현될 수 있는지를 결정할 수 있다. 이와 같이, 기저대역에서 충분히 가까운 스펙트럼 형상이 발견되더라도, 확장 대역 코더는 여전히 랜덤 노이즈를 사용하여 그 부분을 코딩한다. 이 결과, 기저대역에서의 위치에 대응하는 움직임 벡터를 전송하는 것과 비교할 때 더 적은 비트가 얻어질 수 있다.
동작(460)에서, 확장 대역 코더는 예측 코딩, 양자화 및/또는 엔트로피 코딩을 사용하여 스케일 및 형상 파라미터(즉, 이 구현에서 스케일링 인자 및 움직임 벡터, 선택에 따라서는, 선형 또는 비선형 변환 정보)를 인코딩한다. 한 구현에서, 예를 들어, 스케일 파라미터는 직전의 확장 서브대역에 기초하여 예측 코딩된다. (확장 대역의 서브대역의 스케일링 인자는 일반적으로 값이 유사하며, 따라서 연속적인 서브대역은 일반적으로 값이 비슷한 스케일링 인자를 갖는다.) 환언하면, 확장 대역의 첫번째 서브대역에 대한 스케일링 인자의 전체 값이 인코딩된다. 차후의 서브대역은 그의 실제 값과 그의 이전의 값 간의 차이로서 코딩된다(즉, 예측된 값이 선행하는 서브대역의 스케일링 인자임). 다중-채널 오디오의 경우, 각 채널에서의 확장 대역의 첫번째 서브대역은 그의 전체 값으로서 인코딩되고, 차후의 서브대역의 스케일링 인자는 채널에서의 선행하는 서브대역의 스케일링 인자로부터 예측된다. 대안의 구현에서, 스케일 파라미터는, 다른 변동들 중에서도 특히, 채널들에 걸쳐, 2개 이상의 다른 서브대역으로부터, 기저대역 스펙트럼으로부 터, 또는 이전의 오디오 입력 블록들로부터도 예측될 수 있다.
확장 대역 코더는 또한 균일 또는 비균일 양자화를 사용하여 스케일 파라미터를 양자화한다. 한 구현에서, 스케일 파라미터의 비균일 양자화가 사용되며, 이 때 스케일링 인자의 로그가 128개 빈으로 균일하게 양자화된다. 그 결과 얻어진 양자화된 값은 이어서 허프만 코딩을 사용하여 엔트로피 코딩된다.
형상 파라미터의 경우, 확장 대역 코더는 또한 예측 코딩(스케일 파라미터에 대해서와 같이 선행하는 서브대역으로부터 예측될 수 있음), 64개 빈으로의 양자화, 및 엔트로피 코딩(예를 들어, 허프만 코딩에 의함)도 사용한다.
어떤 구현에서, 확장 대역 서브대역은 크기가 가변적일 수 있다. 이러한 경우에, 확장 대역 코더는 확장 대역의 구성도 인코딩한다.
보다 상세하게는, 한 예시적인 구현에서, 확장 대역 코더는 표 1의 의사-코드(pseudo-code) 리스트에 나타낸 바와 같이 스케일 및 형상 파라미터를 인코딩한다. 다중 코드워드 경우에 2개 이상의 스케일 또는 형상 파라미터가 전송될 수 있다.
오디오 스트림 내의 각각의 타일에 대해 { 코딩될 필요가 있을 수 있는 타일 내의 각각의 채널에 대해(예를 들어, 서브우퍼는 코딩될 필요가 없을 수 있음) { 채널이 코딩되는지 여부를 나타내는 1 비트 확장 대역의 시작 위치의 양자화된 버전을 지정하는 8 비트 대역 구성의 코딩을 지정하는 'n_config' 비트 확장 대역 코더를 사용하여 코딩될 각각의 서브대역에 대해 { 스케일 파라미터(대역 내의 에너지)를 지정하는 가변 길이 코드에 대한 'n_scale' 비트 형상 파라미터를 지정하는 가변 길이 코드에 대한 'n_shape' 비트 비선형/선형 변환 파라미터에 대한 'n_transformation' 비트 } } }
상기 코드 리스트에서, 대역 구성(즉, 대역의 수 및 그의 크기)을 지정하는 코딩은 확장 대역 코더를 사용하여 코딩될 스펙트럼 계수의 수에 의존한다. 확장 대역 코더를 사용하여 코딩되는 계수의 수는 확장 대역의 시작 위치 및 스펙트럼 계수의 총수(확장 대역 코더를 사용하여 코딩되는 스펙트럼 계수의 수 = 스펙트럼 계수의 총수 - 시작 위치)를 사용하여 구해질 수 있다. 한 예에서, 대역 구성은 허용된 모든 가능한 구성의 리스트에의 인덱스로서 코딩된다. 이 인덱스는 n_config = log2(구성의 수) 비트를 갖는 고정 길이 코드를 사용하여 코딩된다. 허용된 구성은 이 방법을 사용하여 코딩될 스펙트럼 계수의 수의 함수이다. 예를 들어, 128개의 계수가 코딩되는 경우, 기본 구성은 크기 64의 2개 대역이다. 다른 구성이 가능할 수 있으며, 예를 들어, 표 2는 128개 스펙트럼 계수에 대한 대역 구성의 리스트를 보여준다.
Figure 112008002805007-PCT00005
이와 같이, 이 예에서, 5개의 가능한 대역 구성이 있다. 이러한 구성에서, 계수들에 대한 기본 구성은 'n'개의 대역을 갖는 것으로 선택된다. 그 다음에, 각각의 대역이 (단지 1 레벨만) 분할 또는 병합가능하게 하면, 5(n/2)개의 가능한 구성이 있고, 이 경우에 (n/2)log2(5) 비트를 코딩해야만 한다. 다른 구현에서, 구성을 코딩하기 위해 가변 길이 코딩(variable length coding)이 사용될 수 있다. 특정의 확장 대역 구성 방법이 코드워드 수정으로부터 이득을 볼 필요는 없다. 그에 부가하여, 유익하도록 하기 위해 이러한 코드워드 수정 방법을 필요로 하지 않는 다양한 다른 확장 대역 구성 방법이 나중에 설명된다.
전술한 바와 같이, 스케일 인자는 예측 코딩을 사용하여 코딩되고, 여기서 예측은 동일한 채널 내의 이전의 대역들로부터의 이전에 코딩된 스케일 인자로부터, 동일한 타일 내의 이전의 채널들로부터, 또는 이전에 디코딩된 타일들로부터 행해질 수 있다. 주어진 구현에 있어서, 예측에 대한 선택은 어느 이전의 대역(동일한 확장 대역, 채널 또는 타일(입력 블록) 내에서)이 최고 상관을 제공했는지를 살펴봄으로써 행해질 수 있다. 한 구현예에서, 대역은 다음과 같이 예측 코딩된다.
타일 내의 스케일 인자를 x[i][j](단, i = 채널 인덱스, j = 대역 인덱스임)라고 하자.
i==0 && j==0(첫번째 채널, 첫번째 대역)인 경우, 예측 없음.
i!=0 && j==0(다른 채널, 첫번째 대역)인 경우, 예측은 x[0][0](첫번째 채널, 첫번째 대역)이다.
i!=0 && j!=0(다른 채널, 다른 대역)인 경우, 예측은 x[i][j-1](동일 채널, 이전의 대역)이다.
상기한 코드 표에서, "형상 파라미터"는 스펙트럼 계수의 이전의 코드워드의 위치를 지정하는 움직임 벡터 또는 고정된 코드북이나 노이즈로부터의 벡터이다. 이전의 스펙트럼 계수는 동일한 채널 내부로부터, 이전의 채널로부터, 또는 이전의 타일로부터 온 것일 수 있다. 형상 파라미터는 예측을 사용하여 코딩되며, 여기서 예측은 동일한 채널 또는 동일한 타일 내의 이전의 채널 내의 이전의 대역에 대한 이전의 위치로부터 또는 이전의 타일로부터 행해진다. 임의의 선형 또는 비선형 변환이 형상에 적용될 수 있다. "변환" 파라미터는 이러한 변환 정보, 변환 정보에의 인덱스, 기타 등등을 나타낸다.
예시적인 디코딩 방법
도 5는 오디오 인코더(300)에 의해 생성되는 비트스트림에 대한 오디오 디코더(500)를 나타낸 것이다. 이 디코더에서, 인코딩된 비트스트림(205)은 비트스트림 디멀티플렉서(210)에 의해 기저대역 코드 스트림 및 확장 대역 코드 스트림(이들은 기저대역 디코더(540) 및 확장 대역 디코더(550)에 의해 디코딩됨)으로 (예를 들어, 코딩된 기저대역 폭 및 확장 대역 구성에 기초하여) 디멀티플렉싱된다. 기저대역 디코더(540)는 기저대역 코덱의 종래의 디코딩을 사용하여 기저대역 스펙트럼 계수를 디코딩한다. 확장 대역 구성 디코더(545)는, 기본 대역 구성으로부터의 최적화가 이용되는 경우, 최적화된 대역 크기를 디코딩한다. 확장 대역 디코더(550)는, 형상 파라미터의 움직임 벡터가 가리키는 원래의 또는 변환된 기저대역 스펙트럼 계수(또는 임의의 이전의 대역 또는 코드북)의 하나 이상의 부분(및 움직임 벡터가 가리키는 계수의 선형 또는 비선형 변환에 관한 임의의 선택적인 정보)의 복사하고 스케일 파라미터의 스케일링 인자에 의해 스케일링하는 등에 의해, 확장 대역 코드 스트림을 디코딩한다. 기저대역 및 확장 대역 스펙트럼 계수는 단일의 스펙트럼으로 합성되고, 이 스펙트럼은 오디오 신호를 재구성하기 위해 역변환(580)에 의해 변환된다.
도 6은 도 5의 확장 대역 디코더(550)에서 사용되는 디코딩 프로세스(600)를 나타낸 것이다. 확장 대역 코드 스트림 내의 확장 대역의 코딩된 서브대역 각각에 대해(동작 610), 확장 대역 디코더는 스케일 인자를 디코딩하고(동작 620) 움직임 벡터를 임의의 변환 정보와 함께 디코딩한다(동작 630). 그 다음에, 확장 대역 디코더는 움직임 벡터(형상 파라미터)에 의해 식별된 기저대역 서브대역, 고정된 코드북 벡터, 또는 랜덤 노이즈 벡터를 복사(하고 임의의 식별된 변환을 수행)한다(동작 640). 확장 대역 디코더는 복사된 스펙트럼 대역 또는 벡터를 스케일링 인자로 스케일링하여 확장 대역의 현재 서브대역에 대한 스펙트럼 계수를 생성한다.
예시적인 스펙트럼 계수
도 7은 일련의 스펙트럼 계수를 나타낸 그래프이다. 예를 들어, 계수(700)는 오디오 신호의 각각의 입력 블록에 대한 일련의 스펙트럼 계수를 생성하는 MDCT 또는 MCT 등의 변환 또는 중첩된 직교 변환의 출력이다.
도 7에 도시한 바와 같이, 기저대역(702)이라고 하는 변환의 출력의 일부분이 기저대역 코더에 의해 인코딩된다. 그 다음에, 확장 대역(704)은 균질의 또는 다양한 크기(706)의 서브대역으로 분할된다. 기저대역에서의 형상(708)(예를 들어, 일련의 계수로 표현되는 형상)이 확장 대역에서의 형상(710)과 비교되고, 기저대역에서의 유사한 형상을 나타내는 오프셋(712)이 확장 대역에서의 형상(예를 들어, 서브대역)을 인코딩하는 데 사용되며 그에 따라 더 적은 비트가 인코딩되어 디코더로 전송되기만 하면 된다.
기저대역(702) 크기가 변할 수 있으며, 그 결과 얻어지는 확장 대역(704)은 기저대역에 기초하여 변할 수 있다. 확장 대역은 다양한 다중 크기의 서브대역 크기(706)로 분할될 수 있다.
이 예에서, (이 대역 또는 임의의 이전의 대역으로부터의) 기저대역 세그먼트는 확장 대역에서의 서브대역(710)을 시뮬레이션하기 위해 코드워드(708)를 식별하는 데 사용된다. 코드워드(708)는 코딩 중인 벡터(710)에 대한 모델을 더 비슷하게 제공할 수 있는 다른 형상들(예를 들어, 다른 일련의 계수들)을 생성하기 위해 선형 변환되거나 비선형 변환될 수 있다.
따라서, 기저대역 내의 복수의 세그먼트가 확장 대역 내의 데이터를 코딩하는 잠재적인 모델(예를 들어, 코드워드의 코드북, 라이브러리, 또는 사전)로서 사용된다. 확장 대역 내의 서브대역에서의 실제 계수(710)를 전송하지 않고, 확장 대역에 대한 데이터를 표현하기 위해 움직임 벡터 오프셋(712) 등의 식별자가 인코더로 전송된다. 그렇지만, 때때로 서브대역에서 모델링 중인 데이터에 대한 비슷한 일치가 기저대역에 없다. 이것은 제한된 크기의 기저대역을 가능하게 해주는 저 비트-레이트 제약조건으로 인한 것일 수 있다. 상기한 바와 같이, 확장 대역에 대한 기저대역 크기(702)는 시간, 출력 장치, 또는 대역폭 등의 컴퓨팅 자원에 기초하여 변할 수 있다.
다른 예에서, 다른 코드북(716)이 인코더/디코더에 제공되거나 그에 의해 이용가능하며, 최상의 일치 식별자가 코드북에서의 가장 가까운 일치 코드워드(718)에의 인덱스로서 제공된다. 그에 부가하여, 코드워드로서 랜덤 노이즈가 바람직한 경우에, 비트스트림(기저대역으로부터의 비트 등)의 일부분이 이와 유사하게 인코더 및 디코더 둘다에서 난수 발생기에 씨드를 제공하는 데 사용될 수 있다.
이들 다양한 방법이 형상과 일치하는지를 알아보기 위한, 서브대역(710) 또는 다른 벡터를 코딩하기 위한 코드워드의 더 큰 전체집합을 제공하기 위해 코드워드의 라이브러리 또는 사전을 생성하는 데 사용될 수 있으며, 그에 따라 계수들 자체가 개별적으로 양자화되지 않고 움직임 벡터(712)를 통해 모델링될 수 있다.
예시적인 코드워드 변환
도 8은 코드워드 및 코드워드의 다양한 선형 및 비선형 변환의 그래프이다. 예를 들어, 코드워드(802)는 기저대역, 고정된 코드북, 및/또는 랜덤하게 발생된 코드워드로부터 온 것이다. 코딩 중인 벡터와 일치하는지를 알아보기 위한 최상의 형상을 식별하기 위한 더 큰 또는 더 다양한 형상 세트를 얻기 위해 라이브러리 내의 하나 이상의 코드워드에 대해 다양한 선형 또는 비선형 변환이 수행된다. 한 예에서, 형상 일치를 위한 다른 코드워드를 획득하기 위해 코드워드가 계수 순서에서 역전된다(804). 계수값 <1, 1.5, 2.2, 3.2>를 포함하는 코드워드의 역전은 <3.2, 2.2, 1.5, 1>로 된다. 다른 예에서, 각각의 계수에 대해 1보다 작은 지수를 갖는 멱승(exponentiation)을 사용하여 코드워드의 동적 범위 또는 분산이 감소된다(806). 이와 유사하게, 코드워드의 분산이 1보다 큰 지수를 사용하여 확대된다(예를 들어, 분산의 증가)(도시 생략). 예를 들어, 계수 <1, 1, 2, 1, 4, 2, 1>를 포함하는 코드워드가 2 제곱되어 코드워드 <1, 1, 4, 1, 16, 4, 1>를 생성한다. 다른 예에서, 코드워드 <-1, 1, 2, 3>(802)의 계수가 부정되어 <1, -1, -2, -3>(808)으로 된다. 물론, 서브대역 또는 다른 벡터와 일치하는지 알아보기 위한 더 큰 또는 더 다양한 전체집합 또는 라이브러리를 제공하기 위해, 많은 다른 선형 및 비선형 변환(예를 들어, 806)이 하나 이상의 코드워드에 대해 수행될 수 있다. 그에 부가하여, 더욱 다양한 이용가능한 형상을 제공하기 위해 하나 이상의 변환이 함께 코드워드에 적용될 수도 있다.
한 예에서, 인코더는 먼저 인코딩 중인 서브대역에 가장 가까운 일치인 기저대역에서의 코드워드를 결정한다. 예를 들어, 최상의 일치를 구하기 위해 기저대역에서의 계수들의 최소 평균 제곱 비교가 사용될 수 있다. 예를 들어, 708을 710과 비교한 후에, 비교는 한번에 한 계수씩 스펙트럼 아래로 한 계수만큼 이동하여 710과 비교할 다른 코드워드를 얻는다. 이어서, 가장 가까운 일치가 발견될 때, 한 예에서, 일치가 개선될 수 있는지를 알아보기 위해 최상의 일치 코드워드의 형상이 비선형 변환에 의해 변화된다. 예를 들어, 최상의 일치 코드워드의 계수들에 대해 지수 변환을 사용하는 것은 일치에 대한 세분(refinement)을 제공할 수 있다. 최상의 코드워드 일치 및 지수를 찾는 2가지 방법이 있다. 첫번째 방법에서, 최상의 코드워드는 일반적으로 유클리드 거리(Euclidean distance)를 메트릭(metric)(MSE)으로서 사용하여 구해진다. 최상의 코드워드가 구해진 후에, 최상의 지수가 구해진다. 최상의 지수는 이하의 2가지 방법 중 하나를 사용하여 구해진다.
한가지 방법은 이용가능한 모든 지수를 시도해보고 어느 것이 최소 유클리드 거리를 제공하는지를 알아내는 것이고, 다른 방법은 지수들을 시도해보고 어느 지수가 최상의 히스토그램 또는 확률 질량 함수(probability mass function)(pmf) 일치를 제공하는지를 알아내는 것이다. pmf 일치는 원래의 벡터의 pmf에 대한 또 멱승된 벡터 각각에 대한 평균(분산)에 관한 제2 모멘트를 사용하여 계산될 수 있다. 가장 가까운 일치를 갖는 것이 최상의 지수로서 선택된다.
최상의 코드워드 및 지수 일치를 구하는 두번째 방법은 코드워드 및 지수의 많은 조합을 사용하여 전수적인 검색을 하는 것이다.
예를 들어, X0.5는 X1.0보다 더 나은 비교를 제공하는 경우, 서브대역은, 변환(선형 또는 비선형) xp와 함께, 기저대역 내의 그 코드워드에 대한 오프셋(712)을 사용하여 코딩되며, 여기서 p=0.5를 나타내는 하나 이상의 비트가 디코더로 전송되어 디코더에서 적용된다. 이 예에서, 검색은 계속하여 먼저 코드워드를 찾아내고, 이어서 변환에 따라 변하지만, 이러한 순서가 실제로 요구되는 것은 아니다.
다른 예에서, 최상의 일치를 찾아내기 위해 기저대역 및/또는 다른 코드북을 따라 전수적인 검색이 수행된다. 예를 들어, 지수 변환(p=0.5, 1.0, 2.0), 부호 변환(+/-), 방향(전방향/역방향)의 모든 조합의 기저대역을 따른 전수적인 검색을 포함하는 검색이 수행된다. 이와 유사하게, 이 전수적인 검색은 노이즈 코드북 스펙트럼 또는 코드워드를 따라 수행될 수 있다.
일반적으로, 코딩 중인 서브대역과 코드워드 간의 가장 낮은 분산 및 서브대역를 모델링하는 데 선택된 변환을 구함으로써 가까운 일치가 제공될 수 있다. 코드워드 및/또는 변환의 식별자 또는 코딩된 표시가, 스케일 인자 등의 다른 정보와 함께, 비트스트림에 코딩되어 인코더로 제공된다.
예시적인 다중 코드워드 코딩
한 예에서, 서브대역 인코딩을 제공하기 위해 2개의 서로 다른 코드워드가 이용된다. 예를 들어, 길이 u의 2개의 코드워드 b 및 n이 주어지면, 코딩 중인 서브대역을 보다 잘 기술하기 위해 b = <b0, b1,...bu> 및 n = <n0, n1,...nu>가 제공된다. 벡터 b는 기저대역, 임의의 이전의 대역, 노이즈 코드북, 또는 라이브러리로부터 온 것일 수 있고, 벡터 n도 이와 유사하게 임의의 이러한 소스로부터 온 것일 수 있다. 디코더가 코드워드 b 및 n으로부터 어느 계수를 취할지를 암시적으로 또는 명시적으로 알도록, 2개 이상의 코드워드 b 및 n 각각으로부터의 계수들을 인터리빙하는 규칙이 제공된다. 이 규칙은 비트스트림으로 제공될 수 있거나 디코더가 암시적으로 알 수 있다.
이 규칙 및 2개 이상의 벡터는 디코더에서 서브대역 s = <n0, b1, n2, n3, b4,...nu>를 생성하는 데 사용된다. 예를 들어, 전송되는 코드워드의 순서 및 비율값 "a"에 기초하여 규칙이 설정된다. 인코더는 정보를 (b, n, a) 순서로 전달한다. 디코더는 이 정보를, 첫번째 벡터 b로부터의 임의의 계수가 벡터 b 내의 최고 계수값 M에 'a'를 곱한 것보다 작은 경우 그 계수를 취하기 위한 요건으로 변환한다. 따라서, 계수 b1이 a*M보다 큰 경우, b1은 벡터 s에 있고, 그렇지 않은 경우 n1이 s에 있다. 다른 규칙은 b1이 벡터 s에 있기 위해서, b1이 a*M보다 작은 값을 갖는 T개의 인접한 계수들의 그룹의 일부이어야만 할 것을 요구할 수 있다. 'a'에 대한 기본값이 설정되어 있는 경우, 'a'는 디코더로 전송될 필요가 없는데, 그 이유는 'a'가 암시적이기 때문이다.
따라서, 디코더는 2개 이상의 코드워드 식별자, 및, 선택에 따라서는, 서브대역를 생성하는 데 어느 계수를 취할지를 디코딩하는 규칙을 전송할 수 있다. 인코더는 또한 코드워드에 대한 스케일 인자 정보, 및, 선택에 따라서는, 관련이 있는 경우, 임의의 다른 코드워드 변환 정보를 전송하는데, 그 이유는 b 및 n이 선형적으로 또는 비선형적으로 변환될 수 있기 때문이다.
상기한 2개 이상의 코드워드 b 및 n을 사용하여, 인코더는 코드워드의 식별자(예를 들어, 움직임 벡터, 코드북 인덱스, 기타 등등), 규칙(예를 들어, 규칙북(rulebook)에의 인덱스)(이 규칙은 인코더 및 디코더 둘다가 암시적으로 알게 됨), 임의의 부가적인 변환 정보(예를 들어, xp, p=0.5, b 또는 n이 또한 부가적인 변환을 필요로 하는 것으로 가정함), 및 스케일 인자(예를 들어, sb, sn, 기타 등등)에 관한 정보를 전송한다. 스케일 인자 정보는 또한 스케일 인자 및 비(ratio)(예를 들어, sb, sb/sn, 기타 등등)일 수 있다. 하나의 벡터 스케일 인자 및 비(ratio)에 의해, 디코더는 다른 스케일 인자를 계산하기에 충분한 정보를 가지게 된다.
예시적인 기저대역 개선
저 비트 레이트 응용 등의 어떤 조건 하에서, 기저대역 자체가 제대로 코딩되지 않을 수 있다(예를 들어, 몇개의 연속적인 또는 뒤섞인 0 계수). 한가지 이러한 예에서, 기저대역이 세기의 피크는 잘 표현하지만, 피크들 간의 낮은 세기를 표현하는 계수들에서의 미묘한 변동은 잘 표현하지 못한다. 이러한 경우에, 기저대역 자체로부터의 코드워드의 피크는 제1 벡터(예를 들어, b)로서 선택되고, 0 계수 또는 아주 낮은 상대 계수는 피크들 사이의 낮은 에너지와 아주 비슷한 제2 벡터(예를 들어, n)로 대체된다. 따라서, 기저대역 개선을 제공하기 위해, 2개의 코드워드 방법이 기저대역 또는 기저대역의 서브대역에 대해 사용될 수 있다. 이전과 같이, 제1 또는 제2 벡터로부터 선택하는 데 사용된 규칙은 명시적이고 디코더로 전송될 수 있거나, 암시적일 수 있다. 어떤 경우에, 제2 벡터는 노이즈 코드워드를 통해 가장 잘 제공될 수 있다.
예시적인 변환
기저대역, 이전의 대역 또는 다른 코드북은 연속적인 계수들의 라이브러리를 제공하며, 각각의 계수는 아마도 코드워드로서 역할할 수 있는 일련의 연속적인 계수들에서 첫번째 계수로서 역할한다. 라이브러리에서의 최상의 일치 코드워드가 식별되어, 스케일 인자와 함께, 디코더로 전송되고, 확장 서브대역에 서브대역을 생성하기 위해 디코더에 의해 사용된다.
선택에 따라서는, 라이브러리 내의 하나 이상의 코드워드가 변환되어, 코딩 중인 형상에 대한 최상의 일치를 찾기 위한 이용가능한 코드워드의 더 큰 전체집합을 제공한다. 수학적으로는, 형상, 벡터 및 행렬에 대해 선형 및 비선형 변환의 전체집합이 존재한다. 예를 들어, 벡터가 역전되고, 축을 경계로 부정(negate across an axis)되어 있을 수 있으며, 형상이 제곱근 함수, 지수, 기타 등등을 적용하는 등에 의한 선형 및 비선형 변환으로 다른 방식으로 변경될 수 있다. 코드워드에 대해 하나 이상의 선형 또는 비선형 변환을 적용하는 것을 비롯하여, 코드워드의 라이브러리에 대해 검색이 수행되고, 임의의 변환과 함께, 가장 가까운 일치 코드워드가 식별된다. 최상의 일치 식별자, 코드워드, 스케일 인자, 및 변환 식별자가 디코더로 전송된다. 디코더는 이 정보를 수신하고 확장 대역에 서브대역을 재구성한다.
선택에 따라서는, 인코더는 코딩 및/또는 개선 중인 서브대역을 가장 잘 표현하는 2개 이상의 코드워드를 선택한다. 코딩 중인 서브대역에서의 개개의 계수 위치를 선택 또는 인터리빙하는 데 규칙이 사용된다. 이 규칙은 암시적이거나 명시적이다. 코딩 중인 서브대역은 확장 대역에 있을 수 있거나 개선 중인 기저대역 내의 서브대역일 수 있다. 사용 중인 2개 이상의 코드워드는 기저대역 또는 임의의 다른 코드북으로부터 온 것일 수 있으며, 코드워드 중 하나 이상이 선형적으로 또는 비선형적으로 변환될 수 있다.
예시적인 엔벨로프 일치
"엔벨로프(envelope)"라고 하는 신호(예를 들어, Env(i))는 다음과 같이 입력 신호 x(i)(예를 들어, 오디오, 비디오, 기타)에 가중 평균을 실행함으로써 발생된다.
Figure 112008002805007-PCT00006
여기서, w(j)는 가중 함수(현재, 삼각형임)이고 L은 가중 분석(weighted analysis)에서 고려될 이웃 계수들의 수이다. 이전에, 코드워드의 입력 전체집합, 지수 변환(0.5, 1.0, 2.0), 계수 부정(부호 +/-) 및 코드워드 계수 방향(전방향, 역방향)을 사용하여 전수적인 검색의 일례에 대해 기술하였다. 그 대신에, 최상의 'Q'개의 코드워드가 먼저 선택되고, 코드워드, 지수, 부호 및/또는 방향의 조합이 코딩 중인 서브대역의 엔벨로프들 간의 유클리드 거리 및 코드워드를 사용하여 선택된다. 코드워드의 원래의 양자화되지 않은 버전이 엔벨로프 유클리드 거리를 측정하는 데 유용할 수 있다. 유클리드 거리에 기초하여 결정된 이들 Q개의 가장 가까운 후보 중에서, 최상의 일치가 선택된다. 선택에 따라서는, 엔벨로프가 고려된 후에, 방법(이전에 기술된 코드워드 비교 방법 등)은 Q개의 후보 중 어느 것이 가장 적합한지를 검사하기 위해 되돌아갈 수 있다.
예시적인 코드워드 수정
코드 벡터로 이루어진 코드북이 주어지면, 코드 벡터가 코딩 중인 벡터를 더 잘 표현하도록 코드북 내의 코드 벡터를 수정하는 것이 제안되어 있다. 코드북/코드워드 수정은 이하의 변환 중 하나 이상의 임의의 조합으로 이루어질 수 있다.
Figure 112008002805007-PCT00007
코드 벡터에 적용되는 선형 변환
Figure 112008002805007-PCT00008
코드 벡터에 적용되는 비선형 변환
Figure 112008002805007-PCT00009
새로운 코드 벡터를 획득하기 위해 2개 이상의 코드 벡터를 합성
(합성되는 벡터들은 동일한 코드북, 서로 다른 코드북으로부터 온 것이거나 랜덤한 것일 수 있음)
Figure 112008002805007-PCT00010
코드 벡터를 기저 코딩(base coding)과 결합
(있는 경우) 어느 변환이 사용되는지 및 변환에서 어느 코드 벡터가 사용되는지에 관한 정보가 디코더로 비트스트림으로 전송되거나 디코더가 이미 가지고 있는 정보(디코더가 이미 디코딩한 데이터)를 사용하여 디코더에서 계산된다. 벡터는 일반적으로 코딩되어야 하는 스펙트럼 계수의 어떤 대역이다.
특별히 코드워드 수정에 대한 3가지 예가 주어진다.
(1) 벡터의 각각의 성분에 적용되는 멱승(비선형 변환), (2) 2개의(또는 그 이상의) 벡터를 합성하여 새로운 벡터를 형성(단, 2개의 벡터 각각은 서로 다른 특성을 갖는 벡터의 부분들을 표현하는 데 사용됨), 및 (3) 코드 벡터를 기저 코딩과 합성. 이하의 설명에서,
Figure 112008002805007-PCT00011
는 코딩될 벡터를 표현하는 데 사용되고,
Figure 112008002805007-PCT00012
Figure 112008002805007-PCT00013
를 코딩하는 데 사용되는 코드 벡터 또는 코드워드이며,
Figure 112008002805007-PCT00014
는 수정된 코드 벡터이다. 벡터
Figure 112008002805007-PCT00015
는 근사값
Figure 112008002805007-PCT00016
을 사용하여 코딩되며, 여기서 S는 스케일 인자이다. 사용되는 스케일 인자는
Figure 112008002805007-PCT00017
Figure 112008002805007-PCT00018
간의 전력비(ratio of power)의 양자화된 버전이다.
Figure 112008002805007-PCT00019
여기서,
Figure 112008002805007-PCT00020
는 양자화이고,
Figure 112008002805007-PCT00021
는 벡터에서의 전력(power)인 노옴(norm)을 나타낸다. 원래의 벡터에서의 전력의 양자화된 버전이 전송된다. 디코더는 코드 벡터에서의 전력으로 나눔으로써 사용할 스케일 인자를 계산한다.
예시적인 비선형 변환
첫번째 예는 코드 벡터에서의 각각의 성분에 지수를 적용하는 것으로 이루어져 있다. 표 3은 코드워드 내의 일련의 계수들의 비선형 변형을 제공한다.
코드워드 1 2 3 2 1 1 2 3
변환 1 4 9 4 1 1 4 9
이 예에서, 코드워드(코드 벡터) 내의 각각의 계수는 제곱(x2)된다. 이러한 예에서, 변환된 코드워드의 형상이 코딩될 벡터에 가장 적합한 것인 경우, 인코더는 코드워드의 ID(identification) 및 최상의 일치를 가져오는 변환을 제공한다.
지수는 고정된 수의 비트를 사용하여 디코더로 전송될 수 있거나, 지수의 코드북으로부터 전송될 수 있거나, 이전에 알고 있던 데이터를 사용하여 디코더에서 암시적으로 계산될 수 있다. 예를 들어, L 차원 벡터의 경우, 코드북 내의 i번째 코드 벡터의 성분들이
Figure 112008002805007-PCT00022
이라고 하자. 이어서, 멱승(exponentiation)은 벡터를 수정하여 새로운 벡터
Figure 112008002805007-PCT00023
를 얻기 위해 지수 'p'를 적용한다.
Figure 112008002805007-PCT00024
(단,
Figure 112008002805007-PCT00025
임)
여기서, 'j'는 성분 인덱스(component index)이다. 이러한 비선형 변환은 피크를 갖는 코드 벡터가 1보다 작은 p의 값을 사용함으로써 코딩하지 않는 벡터를 코딩하는 데 사용될 수 있게 해준다. 이와 마찬가지로, 이는 피크를 갖지 않는(non-peaky) 코드 벡터가 p>1을 사용하여 피크를 갖는 코드 벡터를 표현하는 데 사용될 수 있게 해준다.
도 9는 피크를 서로 다르게 표현하지 않는 예시적인 벡터의 그래프이다.
도 10은 지수 변환에 의해 생성된 서로 다른 피크를 갖는 도 9의 그래프이다.
일례로서, 도 9 및 도 10을 참조하기 바란다. 도 9에서, 꽤 랜덤한 도시되어 있는 벡터는 뚜렷한 피크를 갖지 않는다. 지수 p=5가 적용될 때, 도 10은 원하는 피크를 더 잘 표현한다. 이와 유사하게, 원래의 코드 벡터가 도 10에 도시된 것인 경우, 지수 p=1/5=0.2가 도 9를 제공한다. 물론 스케일 인자가 재계산되는데, 그 이유는 코드 벡터에서의 노옴(또는 에너지)이
Figure 112008002805007-PCT00026
에서
Figure 112008002805007-PCT00027
로의 변환 동안에 변화되기 때문이다. 상세하게는,
Figure 112008002805007-PCT00028
는 이제 스케일 인자에 사용된다. 전송되는 실제 스케일 인자
Figure 112008002805007-PCT00029
는 지수에 따라 변하지 않지만, 디코더는 코드 벡터에서의 전력의 변화로 인해 다른 스케일 인자를 계산해야만 한다.
코드워드는 그에 적용되는 몇개의 지수를 가질 수 있으며, 각각이 서로 다른 결과를 제공한다. 최상의 지수를 계산하는 데 사용되는 방법은 코드 벡터에 걸친 값들의 히스토그램(또는 확률 질량 함수(pmf))이 실제 벡터의 히스토그램과 최상으로 일치하도록 하는 지수를 찾는 것이다. 이것을 하기 위해, 벡터 및 코드 벡터 둘다에 대한 심볼값의 분산이 멱승을 사용하여 계산된다. 예를 들어, 가능한 지수들의 세트가
Figure 112008002805007-PCT00030
(단, k는 가능한 지수의 세트를 인덱싱하는 데 사용되며,
Figure 112008002805007-PCT00031
임)라고 가정하자. 이어서, 가능한 지수들 각각으로부터 얻어지는 코드 벡터에 대한 평균에 관한 정규화된 제2 모멘트가 계산되고
Figure 112008002805007-PCT00032
, 실제 벡터
Figure 112008002805007-PCT00033
와 비교된다.
Figure 112008002805007-PCT00034
Figure 112008002805007-PCT00035
최상의 지수가
Figure 112008002805007-PCT00036
Figure 112008002805007-PCT00037
간의 차이를 최소화하도록 선택되고,
Figure 112008002805007-PCT00038
에 의해 주어지며, b는 다음과 같이 정의된다.
Figure 112008002805007-PCT00039
앞서 언급한 바와 같이, 최상의 일치 지수는 또한 전수적인 검색을 사용하여 구해질 수 있다.
합성을 통한 예시적인 코드워드 수정
다른 변환은 다수의 벡터를 합성하여 새로운 코드 벡터를 형성한다. 이것은 본질적으로 다단계 코딩(multistage coding)이며, 각각의 단계에서, 아직 코딩되지 않은 벡터의 가장 중요한 부분과 가장 잘 일치하는 일치가 구해진다. 2개의 벡터에 대한 예로서, 우리는 먼저 최상의 일치를 찾고 이어서 벡터의 어느 부분이 잘 코딩되는지를 알아낸다. 이러한 세그먼트화가 명시적으로 전송될 수 있지만, 이것은 너무 많은 비트를 필요로 할 수 있다. 따라서, 일례에서, 세그먼트화는 벡터의 어느 부분을 사용할지를 알려줌으로써 암시적으로 제공된다. 이어서, 나머지 부분이 랜덤한 코드 벡터 또는 나머지 성분들을 더 잘 표현하는 코드북으로부터의 다른 코드 벡터를 사용하여 표현된다.
Figure 112008002805007-PCT00040
를 제1 코드 벡터라고 하고,
Figure 112008002805007-PCT00041
를 제2 코드 벡터라고 하자. 집합 T가 제1 코드 벡터를 사용하여 코딩될 것으로 생각되는 벡터의 일부분을 지정하는 것으로 하자. 집합 T의 카디날리티(cardinality)는 0과 L 사이에 있는데, 즉 이는 이러한 제1 코드 벡터를 사용하여 코딩될 것으로 생각되는 벡터의 인덱스를 나타내는 0 내지 L개의 요소들을 갖는다. 어느 성분이 제1 벡터에 의해 잘 표현되는지를 계산하는 규칙이 제공되고, 이 규칙은, 잠재적인 계수가 제1 벡터에서의 최대 계수의 어떤 비율보다 큰지를 판정하는 것 등의 메트릭을 사용할 수 있다. 따라서, 제1 벡터에서의 가장 높은 계수의 어떤 비율 내에 있는 제1 벡터에서의 임의의 계수에 대해, 그 계수는 제1 벡터로부터 가져오고, 그렇지 않은 경우, 그 코드워드 계수는 제2 코드워드로부터 가져온다. M이 제1 코드 벡터
Figure 112008002805007-PCT00042
에서의 최대값이라고 하자. 그러면, 집합 T는 이하의 것을 사용하여 정의될 수 있다.
Figure 112008002805007-PCT00043
여기서, 'a'는 0과 1 사이의 어떤 상수이다. 예를 들어, a=0인 경우, 임의의 영이 아닌 값이 코딩된 벡터의 집합 T에 속하는 것으로 생각된다.
Figure 112008002805007-PCT00044
인 경우,
Figure 112008002805007-PCT00045
가 충분히 작게 취해지더라도, 단지 최대값 그 자체만이 코딩되는 것으로 생각된다. 이어서, 집합 T가 주어지면, 집합 N은 다음과 같이 벡터
Figure 112008002805007-PCT00046
로부터 취해지는 나머지 여집합(complimentary and remaining set)이다.
Figure 112008002805007-PCT00047
따라서, x[j]의 계수는 aM의 값에 따라 x 또는 w로부터 가져온다. 유의할 점은 N 또는 T가 다른 유사한 규칙을 사용하여 3개 이상의 벡터를 가져오기 위해 추가적으로 분할될 수 있다는 것이다. 제1 코드 벡터
Figure 112008002805007-PCT00048
및 제2 코드 벡터
Figure 112008002805007-PCT00049
를 사용하여 각각 코딩되는 인덱스의 집합으로서 T 및 N이 주어지면, 새로운 벡터
Figure 112008002805007-PCT00050
가 정의된다.
Figure 112008002805007-PCT00051
여기서, Sx 및 Sw는 각각 x 및 w에 대한 스케일 인자이다. 코딩 중인 전체 벡터에서의 전력의 양자화된 버전을 나타내는 전체 코드 벡터에 대한 스케일 인자가 일반적으로 전송되기 때문에, 이 경우에 2개의 스케일 인자의 비(Sw/Sx)가, 전체 코드 벡터에 대한 스케일 인자에 부가하여, 전송될 필요가 있다. 일반적으로, 'm'개의 코드 벡터를 사용하여 벡터가 생성되는 경우, 전체 벡터에 대한 스케일 인자를 비롯하여 'm'개의 스케일 인자가 전송되어야만 한다. 예를 들어, 2 벡터 경우에, 다음과 같다는 것에 유의한다.
Figure 112008002805007-PCT00052
Figure 112008002805007-PCT00053
Figure 112008002805007-PCT00054
이 2개의 벡터로서 정의되는 것으로 가정하면, 이들의 전력은 다음과 같이 정의될 수 있다.
Figure 112008002805007-PCT00055
Figure 112008002805007-PCT00056
여기서,
Figure 112008002805007-PCT00057
Figure 112008002805007-PCT00058
는 2개의 세트의 카디날리티(요소들의 수)이다.
Figure 112008002805007-PCT00059
(벡터에서의 총 전력) 및
Figure 112008002805007-PCT00060
(벡터의 제2 성분에서의 전력)에 대한 값이 주어지면, 디코더는 이하의 것을 계산할 수 있다.
Figure 112008002805007-PCT00061
따라서, 집합 N에서의 전력의 양자화된 버전
Figure 112008002805007-PCT00062
이 전송되고 총 전력
Figure 112008002805007-PCT00063
이 전송되는 경우, 이는 디코더에 충분한 정보이다.
각각의 벡터
Figure 112008002805007-PCT00064
Figure 112008002805007-PCT00065
로부터 선택된 계수가 규칙(예를 들어, x[j]≥aM)에 암시되어 있기 때문에, 코드 벡터
Figure 112008002805007-PCT00066
자체를 사용하여 세그먼트화를 수행함으로써, 인코더가 세그먼트화에 관련된 정보를 전송해야만 하는 것을 회피한다는 것에 유의하는 것이 중요하다.
Figure 112008002805007-PCT00067
에 대응하는 코드 벡터 인덱스 또는 움직임 벡터가 전송되지 않는 경우에도(그것이 랜덤한 코드 벡터인 경우에도), 집합 T 및 N의 세그먼트화가 랜덤한 벡터를 사용함으로써 인코더와 디코더 간에 일치될 수 있으며, 랜덤 벡터 발생기의 상태는 인코더 및 디코더 둘다가 갖는 정보에 기초하여 결정된다. 예를 들어, 랜덤 벡터는 데이터의 최하위 비트(LSB)의 어떤 조합을 사용함으로써 결정되어 디코더로 (예를 들어, 인코딩된 기저대역으로) 전송될 수 있고, 이를 사용하여 의사-난수 발생기에 씨드를 입력한다. 이와 같이, 실제 코드 벡터가 전송되지 않더라도, 세그먼트화가 암시적으로 제어될 수 있다.
2개의 벡터를 합성하는 것에 의한 이러한 변환은 코딩될 벡터의 더 나은 표현을 가능하게 해준다. 벡터
Figure 112008002805007-PCT00068
는 코드북으로부터 온 것일 수 있고, 그를 표현하기 위해 인덱스가 전송될 수 있거나, 또는 그 벡터가 랜덤할 수 있으며, 이 경우 부가적인 정보가 전송될 필요가 없다. 유의할 점은, 위에서 주어진 예에서, 벡터
Figure 112008002805007-PCT00069
를 사용하여 계수들에 관한 비교 규칙(예를 들어, x[j]≥aM)을 사용하여 비교가 행해지고 따라서 세그먼트화에 관한 어떤 정보도 전송될 필요가 없기 때문에, 세그먼트화는 암시적이라는 것이다. 이 변환은 코딩될 벡터가 2개의 서로 다른 분포를 가질 때 유용하다.
도 11은 코드워드를, 이 코드워드가 모델링하고 있는 서브대역과 비교하여 나타낸 그래프이다. 이 예(1100)에서, 코드 벡터는 벡터에서의 피크들과 가장 잘 일치하도록 선택되었다. 그렇지만, 피크들이 잘 일치하고 있지만, 벡터의 나머지가 유사한 전력을 갖지 않는다. 코드 벡터의 나머지 부분이 실제 벡터가 갖는 것보다 훨씬 더 적은 피크들에 대한 전력을 갖는다. 이 결과 눈에 띌 정도의 압축 아티팩트(compression artifact)가 발생한다. 그렇지만, 코드 벡터에 의해 잘 코딩되어 있는
Figure 112008002805007-PCT00070
의 일부분이 제1 벡터로부터 선택되고 이어서 제2 코드 벡터가 나머지 부분에 적용될 때, 훨씬 더 나은 결과가 얻어진다.
도 12는 변환된 코드워드를, 변환된 코드워드가 모델링하고 있는 서브대역과 비교하여 나타낸 그래프이다. 모델링된 서브대역은 2개의 코드워드로부터 생성된 코드워드에 의해 모델링된다.
도 13은 코드워드, 코드워드에 의해 코딩될 서브대역, 코드워드의 스케일링된 버전, 및 코드워드의 수정된 버전을 나타낸 그래프이다.
선택적인 동작을 통한 예시적인 코드워드 수정
다중 코드 벡터(예를 들어, 다중-코드워드)의 대안의 버전은 어떤 선택된 계수에 대해 제1 코드 벡터를 대체하기 보다는 제1 코드 벡터를 추가한다. 이것은 이하의 식을 적용하여 행해질 수 있다.
Figure 112008002805007-PCT00071
기저대역의 예시적인 개선
이 예에서, 코드 벡터는 기저 코딩(base coding)과 합성된다. 이것은, 제1 벡터
Figure 112008002805007-PCT00072
가 코딩 중인 벡터이고 또 그 자체를 인코딩할 2개의 벡터 중의 하나로서 그 자체가 사용된다는 점에서, 2 벡터(또는 다중 벡터) 접근방법과 유사하다. 예를 들어, 이전과 같이, 기저 코딩이 잘 동작하고 있고 더 나은 계수가 제2 벡터로부터 취해지는 경우, 기저 코딩이 그 계수들을 포함하도록 수정된다. 코딩되는 각각의 벡터(서브대역)에 대해, 기저 코딩이 이미 존재하는 경우, 이 기저 코딩은 다중-벡터 방식에서 제1 코드 벡터이고, 이 경우 이는 영역 T 및 N(또는 더 많은 영역)으로 세그먼트화된다. 다중 코드 벡터 접근방법에서와 같이, 세그먼트화(예를 들어, 계수 선택)는 동일한 기법을 사용하여 제공될 수 있다.
예를 들어, 각각의 기저 코딩에 대해, 0의 값을 갖는 임의의 계수가 있는 경우, 이들 전부가 집합 N에 들어가며, 이들은 이어서 개선 계층(예를 들어, 제2 벡터)에 의해 코딩된다. 이러한 방법은, 종종 아주 낮은 비트 레이트에서의 코딩으로부터 생기는 큰 스펙트럼 구멍을 채우는 데 사용될 수 있다. 수정은, 어떤 임계값보다 크지 않는 한, 구멍 또는 '0' 계수를 채우지 않는 것을 포함할 수 있으며, 이 임계값은 어떤 수의 Hz(헤르쯔) 또는 계수(다수의 0 계수)로 정의될 수 있다. 어떤 주파수 이하인 구멍들을 채우지 않는 것에 대한 제한도 있을 수 있다. 이들 제한은 이상에서 주어진 암시적인 세그먼트화 규칙(예를 들어, x[j]>aM, 기타)을 수정한다. 예를 들어, 스펙트럼 구멍의 최소 크기에 관한 임계값 'T'가 제공되는 경우, 이것은 본질적으로 집합 N의 정의를, 0,...,T-1 중의 어떤 K에 대해 다음과 같이 변경한다.
Figure 112008002805007-PCT00073
따라서, x[j]가 집합 N에 있도록 하기 위해, 이는 T개의 연속적인 계수들의 그룹의 일부이어야만 하며, 이들 계수 전부는 (aM)보다 작거나 같은 값을 갖는다. 이것은 2 단계로 계산될 수 있으며, 먼저 각각의 계수에 대해 그의 값이 임계값보다 작은지 여부를 계산하고, 이어서 이들이 '연속적인' 요건을 만족시키는지를 알아보기 위해 이들을 함께 그룹화한다. 크기 T의 실제 스펙트럼 구멍에 대해, a=0이다. 최소 주파수 제약조건 등의 다른 조건들이, 집합 N에 속하기 위해,
Figure 112008002805007-PCT00074
이도록 하는 부가적인 제약조건을 부가한다.
상기 규칙은, 이 규칙이 계수들을 제2 벡터로부터의 값들로 대체하는 것을 신호하기 이전에, 행에 있는 다수의 계수들(예를 들어, T개의 연속적인 계수들)이 조건 x[j]≤aM을 만족시킬 것을 요구하는 필터를 제공한다.
행해질 필요가 있을 수 있는 다른 수정은 채널 변환을 적용한 후에 기저 코딩이 채널도 코딩한다는 사실로 인한 것이다. 따라서, 채널 변환 이후에, 기저 코딩 및 개선 코딩은 서로 다른 채널 그룹을 가질 수 있다. 따라서, 개선이 적용되는 특정의 채널에 대한 기저 코딩만을 단지 살펴보는 것이 아니라, 세그먼트화는 기저 코딩 채널보다 더 많은 것을 살펴볼 수 있다. 이것은 다시 말하면 세그먼트화 제약조건을 수정한다. 예를 들어, 채널 0 및 1이 결합 코딩되어 있는 것으로 가정하자. 그러면, 개선을 적용하는 규칙이 다음과 같이 변경된다. 개선을 적용하기 위해, 스펙트럼 구멍이 기저대역 코딩된 채널 둘다에 존재해야만 하는데, 그 이유는 코딩된 채널 둘다가 실제 채널 둘다에 기여하기 때문이다.
서브대역 세그먼트화의 예시적인 최적화
양호한 주파수 세그먼트화는 스펙트럼 데이터를 인코딩하는 것의 품질에 중요하다. 세그먼트화는 스펙트럼 데이터를 서브대역 또는 벡터라고 하는 단위로 분해하는 것을 수반한다. 간단한 세그먼트화는 스펙트럼을 원하는 수의 균질 세그먼트 또는 서브대역으로 균일하게 분할하는 것이다. 균질 세그먼트화는 차선책일 수 있다. 더 큰 서브대역 크기로 표현될 수 있는 스펙트럼의 영역들이 있을 수 있으며, 다른 영역들은 더 작은 서브대역 크기로 더 잘 표현된다. 스펙트럼 데이터 세기 의존적인 세그먼트화(spectral data intensity dependent segmentation)를 제공하는 여러가지 특징들이 기술되어 있다. 더 큰 스펙트럼 변동의 영역들에 대해 더 미세한 세그먼트화가 제공되고, 더 균질한 영역들에 대해 더 조악한 세그먼트화가 제공된다. 예를 들어, 처음에는 기본(default) 또는 초기(initial) 세그먼트화가 제공되고, 최적화 또는 차후의 구성은 스펙트럼 데이터 변동의 세기에 기초하여 세그먼트화에 변화를 준다.
예시적인 기본 세그먼트화
스펙트럼 데이터는 처음에 서브대역으로 세그먼트화된다. 선택에 따라서는, 초기 세그먼트화가 최적의 또는 차후의 세그먼트화를 생성하기 위해 변화될 수 있다. 2가지 이러한 초기 또는 기본 세그먼트화는 균일 분할 세그먼트화(uniform split segmentation) 및 비균일 분할 세그먼트화(non-uniform split segmentation)라고 한다. 이들 또는 다른 서브대역 구성이 처음에 또는 기본값으로 제공될 수 있다. 선택에 따라서는, 초기 또는 기본 구성은 차후의 서브대역 구성을 제공하기 위해 재구성될 수 있다.
L개의 스펙트럼 계수의 스펙트럼 데이터가 주어지는 경우, 데이터의 M개의 서브대역의 균일 분할 세그먼트화는 이하의 방정식으로 확인된다.
Figure 112008002805007-PCT00075
예를 들어, L개의 스펙트럼 계수가 0, 1,..., L-1로서 점으로 표시되어 있는 경우, M개의 서브대역은 스펙트럼 데이터에서 s[j] 계수에서 시작한다. 따라서, j번째 서브대역은 s[j]부터 s[j+1]-1(단, j=0,1,...,M-1임)까지의 계수들을 가지며, 서브대역 크기는 s[j+1]-s[j]개 계수이다.
비균일 분할 세그먼트화는, 서브대역 승수(sub-band multiplier)가 제공되는 것을 제외하고는, 유사한 방식으로 행해진다. 서브대역 승수는 M개의 서브대역 a[j](단, j=0,1,...,M-1) 각각에 대해 정의된다. 게다가, 누적 서브대역 승수(cumulative sub-band multiplier)가 다음과 같이 주어진다.
Figure 112008002805007-PCT00076
비균일 분할 구성 경우에 서브대역에 대한 시작점은 다음과 같이 정의된다.
Figure 112008002805007-PCT00077
다시 말하면, 'j'번째 서브대역은 s[j]부터 s[j+1]-1까지의 계수를 포함하며, 여기서 j=0,1,...,M-1이고, 서브대역 크기는 s[j+1]-s[j]개 계수이다. 비균일 구성은 주파수에 따라 증가하는 서브대역 크기를 갖지만, 그 구성은 임의의 구성일 수 있다. 게다가, 바람직한 경우, 그 구성은 미리 정해질 수 있으며, 따라서 그를 기술하기 위해 어떤 부가적인 정보도 전송될 필요가 없다. 기본 비균일(default non-uniform) 경우에, 서브대역 승수의 일례가 다음과 같이 주어진다.
Figure 112008002805007-PCT00078
따라서, 기본 비균일 대역-크기 승수는 분할 구성이며, 여기서 대역 크기는 단조 비감소(monotonically non-decreasing)이다(처음 몇개의 서브대역이 더 작고, 더 높은 주파수 서브대역이 더 크다). 더 높은 주파수 서브대역은 종종 더 적은 변동으로 시작하고, 따라서 더 적은 수의 더 큰 서브대역이 대역의 스케일 및 형상을 포착할 수 있다. 그에 부가하여, 더 높은 주파수 서브대역은 전체적인 지각 왜곡에서 더 적은 중요성을 가지는데, 그 이유는 이들이 더 적은 에너지를 가지며 사람의 귀에 지각적으로 덜 중요하기 때문이다. 유의할 점은 균일 분할이 또한, 모든 j에 대해 a[j]=1인 것을 제외하고는, 서브대역 승수를 사용하여 설명될 수 있다는 것이다.
기본 또는 초기 세그먼트화가 종종 스펙트럼 데이터를 코딩하는 데 충분하고, 실제로 비균일 방식이 대부분의 경우를 처리할 수 있지만, 최적화된 세그먼트화로부터 이득을 보는 신호들이 있다. 이러한 신호의 경우, 대역 승수가 고정된 것이 아니라 임의적이라는 것을 제외하고는, 비균일 경우와 유사한 세그먼트화가 정의된다. 임의적인 대역 승수는 서브대역의 분할(split) 및 병합(merge)을 반영한다. 일례에서, 인코더는 세그먼트화가 고정되어 있는지(예를 들어, 기본값인지) 가변적인지(예를 들어, 최적화되는지 또는 변경되는지)를 나타내는 제1 비트로 디코더에게 신호한다. 초기 세그먼트화가 균일 분할(uniform split)인지 비균일 분할(non-uniform split)인지를 신호하기 위한 제2 비트가 제공된다.
예시적인 최적화된 세그먼트화
(균일 또는 비균일 세그먼트화 등의) 기본 세그먼트화부터 시작하여, 서브대역이 분할 또는 병합되어 최적화된 또는 차후의 세그먼트화를 달성한다. 서브대역을 2개의 서브대역으로 분할하거나 2개의 서브대역을 하나의 서브대역으로 병합하는 결정이 행해진다. 분할하거나 병합하는 결정은, 서브대역에 걸친 변동의 세기의 측정치 등의, 초기 서브대역 내의 스펙트럼 데이터의 다양한 특성에 기초할 수 있다. 한 예에서, 서브대역에서의 음조(tonality) 또는 스펙트럼 평탄성(spectral flatness) 등의 서브대역 스펙트럼 데이터 특성에 기초하여 분할하거나 병합하는 결정이 행해진다.
한가지 이러한 예에서, 2개의 서브대역 간의 에너지 비가 유사한 경우에 또한 대역들 중 적어도 하나가 무음조(non-tonal)인 경우에, 2개의 인접한 서브대역이 병합된다. 이러한 이유는 하나의 형상 벡터(예를 들어, 코드워드) 및 스케일 인자가 2개의 서브대역을 표현하기에 충분할 수 있기 때문이다. 이러한 에너지 비의 한 예가 다음과 같이 주어진다.
Figure 112008002805007-PCT00079
이 예에서,
Figure 112008002805007-PCT00080
는 서브대역 0에서의 에너지이고,
Figure 112008002805007-PCT00081
은 인접한 서브대역 1에서의 에너지이며,
Figure 112008002805007-PCT00082
는 상수 임계값(일반적으로,
Figure 112008002805007-PCT00083
Figure 112008002805007-PCT00084
임 )이고, T는 음조 비교 메트릭이다. 서브대역에서의 음조 측정치(예를 들어, Tonality0)는 스펙트럼을 분석하는 다양한 방법을 사용하여 획득될 수 있다.
이와 마찬가지로, 하나의 서브대역을 2개의 서브대역으로 분할하는 것이 서로 다른 에너지를 갖는 2개의 서브대역을 생성하는 경우, 분할이 행해진다. 또는, 서브대역을 분할하는 것이 서로 다른 형상 특성을 갖는 강한 음조(strongly tonal)인 2개의 서브대역을 생성하는 경우, 서브대역이 분할된다. 예를 들어, 이러한 조건은 다음과 같이 정의된다.
Figure 112008002805007-PCT00085
서로 다른 형상)
여기서 'b'는 0보다 큰 상수이다. 예를 들어, 서브대역이 분할될 때 형상 일치가 상당히 개선되는 경우, 2개의 서브대역이 서로 다른 형상을 갖는 것으로 정의될 수 있다. 한 예에서, 분할 이전의 일치와 비교하여, 분할 이후에 2개의 분할된 서브대역이 훨씬 더 낮은 평균-제곱 유클리드 차이(means-square Euclidean difference)(MSE) 일치를 갖는 경우, 형상 일치가 더 나은 것으로 간주된다. 예를 들어, 하나의 서브대역에 대한 최상의 일치 코드워드를 결정하기 위해, 서브대역이 복수의 코드워드와 비교된다. 이어서, 서브대역이 2개의 대역으로 분할되고, 각각의 분할된 서브대역에 대한 최상의 일치를 찾아내기 위해 각각의 서브대역이 (절반의) 코드워드와 비교된다. 2개의 서브대역 일치의 MSE가 하나의 서브대역 일치의 MSE와 비교되고, 상당히 개선된 일치는 분할을 인코딩하는 추가의 오버헤드 만큼의 가치가 있는 개선을 나타낸다. 예를 들어, MSE가 20% 이상 개선되는 경우, 분할이 효율적인 것으로 생각된다. 이 예에서, 꼭 그럴 필요는 없지만, 분할된 서브대역 둘다가 음조(tonal)인 경우 형상 일치가 적절하게 된다.
한 예에서, 현재의 반복에서 부가적인 서브대역이 분할되거나 병합되지 않을 때까지 알고리즘이 반복적으로 실행된다. 무한 루프의 가능성을 감소시키기 위해 서브대역에 분할(split), 병합(merge) 또는 원본(original)으로서 태깅하는 것이 유익할 수 있다. 예를 들어, 서브대역이 분할된 서브대역으로 표시되어 있는 경우, 그 서브대역은 그 서브대역이 분할되어 나온 서브대역과 다시 병합되지 않는다. 병합된 것으로 표시되어 있는 블록은 동일한 구성으로 다시 분할되지 않는다.
음조, 에너지, 또는 다른 형상을 계산하기 위해 다양한 메트릭이 이용된다. 확장 서브대역을 인코딩하기 위해 움직임 벡터 및 스케일 메트릭이 사용될 수 있다. 서브대역을 2개의 서브대역으로 분할하는 것이 스케일 인자(예를 들어, ≥(1+b)이고, 단, b는 0.2-0.5임)에 상당히 다른 에너지를 생성하는 경우, 서브대역이 분할될 수 있다. 한 예에서, 음조가 고속 푸리에 변환(fast fourier transform, FFT) 영역에서 계산된다. 예를 들어, 입력 신호가 256개 샘플의 고정된 블록들로 나누어지고, 3개의 인접한 FFT 블록에 대해 FFT가 실행된다. 현재 블록에 대한 시간 평균된 FFT 출력을 얻기 위해 3개의 인접한 FFT 출력에 대해 시간 평균이 수행된다. 기준선(baseline)을 얻기 위해 3개의 시간 평균된 FFT 출력에 걸쳐 메디안 필터(median filter)가 실행된다. 계수가 기준선을 넘는 어떤 임계값 이상인 경우, 그 계수는 음조로서 분류되고, 그 계수가 기준선을 넘는 비율이 음조의 척도이다. 그 계수가 임계값 이하인 경우, 그 계수는 음조가 아니며 음조의 척도가 0이다. 특정의 시간 주파수 타일에 대한 음조는 타일의 차원을 FFT 블록에 매핑하고 음조 척도를 그 블록에 거러쳐 누적함으로써 구해진다. 계수가 기준선 이상이어야만 하는 임계값은 절대 임계값, 기준선에 대한 비, 또는 기준선의 변동에 대한 비로서 정의될 수 있다. 예를 들어, 계수가 (메디안 필터링된, 시간 평균된) 기준선으로부터의 하나의 로컬 표준 편차(local standard deviation) 이상인 경우, 그 계수는 음조인 것으로 분류될 수 있다. 이러한 경우에, 음조 FFT 블록을 표현하는 MLT에서의 대응하는 이동된 서브대역(translated sub-band)은 음조로 표시되고, 분할될 수 있다. 이 설명은 위상과 반대로 FFT의 크기와 관계되어 있다. 서로 다른 형상에 대한 MSE 메트릭과 관련하여, 훨씬 더 낮은 MSE의 메트릭은 비트 레이트에 따라 상당히 변할 수 있다. 예를 들어, 더 높은 비트 레이트의 경우, MSE가 대략 20% 정도 내려가는 경우, 분할 결정이 의미가 있을 수 있다. 그렇지만, 더 낮은 비트 레이트에서는, 분할 결정이 50% 더 낮은 MSE에서 행해질 수 있다.
예시적인 가변 대역 승수 및 코딩
서브대역이 분할 및/또는 병합된 후에, 원래의 가장 작은 서브대역 크기와 새로운 가장 작은 서브대역 크기 간의 비가 계산된다. 비는 minRatioBandSize = max(1, 원래의 가장 작은 서브대역 크기/새로운 가장 작은 서브대역 크기)로서 정의된다. 이어서, 가장 작은 크기(예를 들어, 서브대역에서의 계수의 수)를 갖는 최적화된 서브대역이 1의 서브대역 승수를 할당받으며, 나머지 서브대역 크기들은 대역 승수가 round(이 서브대역 크기/가장 작은 서브대역 크기)로서 설정된다. 따라서, 서브대역 승수는 1보다 크거나 같은 정수이고, minRatioBandSize도 1보다 크거나 같은 정수이다. 서브대역 승수는 본질적으로, 테이블없는 가변 길이 코드(table-less variable length code)를 사용하여, 예상된 서브대역 승수와 최적화된 서브대역 승수 간의 차이를 코딩함으로써 코딩된다. 0의 차이는 1 비트로 코딩되고, 0을 제외한 15개의 가장 작은 차이들 중 하나인 차이는 5 비트로 코딩되며, 나머지 차이들은 테이블없는 코드(table-less code)를 사용하여 코딩된다.
예로서, 기본 비균일 경우에 대한 서브대역 크기가 표 4에 나타낸 바와 같이 주어지는 이하의 경우를 생각해보자.
대역 크기 4 4 8 8 16 16 16
대역 승수 1 1 2 2 4 4 4
또한, 분할/병합 이후에, 이하의 최적화된 서브대역 구성이 표 5에 나타낸 바와 같이 생성되는 것으로 가정하자.
대역 크기 2 4 10 24 8 8 16
도 14는 예시적인 일련의 서브대역 크기 변환을 나타낸 도면이다. 예를 들어, 표 5에서의 서브대역 크기는 도 14의 변환을 거쳐 표 4로부터 획득될 수 있다.
minRatioBandSize=max(1,4/2)에 대한 상기 식을 사용하여, 2의 최소 비 서브대역 크기(minimum ratio sub-band size)가 제공되고, 대역 크기 승수에 대한 값이 표 6에 나타낸 바와 같이 얻어질 수 있다.
대역 크기 2 4 10 24 8 8 16
대역 승수 1 2 5 12 4 4 8
minRatioBandSize 2
예상된 서브대역 승수를 계산하기 위해 한 방법이 사용된다. 먼저, 분할 또는 병합되지 않은 블록들이 기본 대역 크기 승수를 갖는 것으로 가정한다(예상된 대역 크기 승수 == 실제 대역 크기 승수). 이것은 비트를 절감하는데, 그 이유는 예상된 대역 크기 승수로부터의 변동만 인코딩되면 되기 때문이다. 게다가, 기본 대역 구성으로부터의 수정이 작을수록, 구성을 인코딩하는 데 더 적은 비트가 필요하다. 그렇지 않은 경우, 예상된 대역 승수가 이하의 논리를 사용하여 디코더에서 계산된다.
Figure 112008002805007-PCT00086
실제 대역의 시작점에 주목하고 기본 대역 구성에서의 대역들의 시작점 및 종료점과 비교함으로써 기본 구서에서의 어느 서브대역을 현재 디코딩하고 있는지를 알아본다.
Figure 112008002805007-PCT00087
기본 구성에서 대역 내에 남아 있는 계수의 수를 취하고 실제 구성에서의 가장 작은 블록(서브대역) 크기로 나눔으로써 예상된 대역 승수가 계산된다.
예를 들어,
Figure 112008002805007-PCT00088
가 기본 대역 구성에서의 'j'번째 대역의 시작 위치라고 하고,
Figure 112008002805007-PCT00089
가 실제 대역 구성에서의 'j'번째 대역의 시작 위치라고 하며,
Figure 112008002805007-PCT00090
가 기본 경우의 최소 대역 크기라고 하고,
Figure 112008002805007-PCT00091
가 실제 경우의 최소 대역 크기라고 하자. 이어서, 이하의 것을 계산한다.
Figure 112008002805007-PCT00092
여기서, 'r'는 minRatioBandSize이고, a[j]는 'j'번째 대역에 대한 대역 승수이다. 'j'번째 대역에 대한 예상된 승수를 계산하기 위해, 먼저 실제 대역의 시작 위치를 포함하는 기본 대역 구성의 인덱스인 'i'를 계산한다. 이어서, 'j'번째 대역의 예상된 승수인
Figure 112008002805007-PCT00093
를 계산한다. 이것은 다음과 같이 계산될 수 있다.
Figure 112008002805007-PCT00094
유의할 점은, 대역이 분할 또는 병합되지 않은 경우, 예상된 대역 승수가 실제 대역 승수와 같게 된다는 것이다. 또한,
Figure 112008002805007-PCT00095
Figure 112008002805007-PCT00096
과 같은 한, 예상된 대역 승수가 실제 대역 승수와 같게 된다.
계속하여 이 예에서, 기본 서브대역 구성이 표 7에 나타내어져 있다.
대역 크기 4 4 8 8 16 16 16
대역 인덱스 0 1 2 3 4 5 6
시작점 0 4 8 16 24 40 56
종료점 4 8 16 24 40 56 72
기본 대역 구성으로 매핑될 때의 실제 또는 최적화된 서브대역은 표 8에 나타내어져 있다.
대역 크기 2 4 10 24 8 8 16
대역 승수 1 2 5 12 4 4 8
시작점 0 2 6 16 40 48 56
기본 대역 인덱스 0 0 1 3 5 5 6
남은 계수 4 2 2 16 16 8 16
예상된 대역 승수 2 1 1 8 8 4 8
차이 -1 1 4 4 -4 0 0
기본 대역 인덱스(Default Band Index)는 주어진 j에 대한 'i'의 값이다. 남은 계수(Coefficient Left)는
Figure 112008002805007-PCT00097
이다. 예상된 대역 승수(Expected Band Multiplier)는
Figure 112008002805007-PCT00098
이고, 대역 승수(Band Multiplier)는 a[j]이다. 다시 말하지만, 유의할 점은 분할 또는 병합되지 않은 서브대역이라면 어느 것도 항상 0의 차이를 갖는다는 것이다. 이 코딩은 각각의 서브대역에 대한 "차이" 값 및 구성에 대한 minRatioBandSize('r')을, 각각에 대한 가변 길이 코드를 사용하여, 코딩한다. minRatioBandSize의 사용은 가장 작은 대역이 기본 구성에서의 대역들보다 더 작은 대역 구성을 코딩하는 것을 가능하게 해준다.
컴퓨팅 환경
도 15는 예시적인 실시예들이 구현될 수 있는 적당한 컴퓨팅 환경(1500)의 일반화된 일례를 나타낸 것이다. 컴퓨팅 환경(1500)은 본 발명의 용도 또는 기능성의 범위에 관한 어떤 제한을 암시하려는 것이 아닌데, 그 이유는 본 발명이 다양한 범용 또는 특수 목적의 컴퓨팅 환경에서 구현될 수 있기 때문이다.
도 15를 참조하면, 컴퓨팅 환경(1500)은 적어도 하나의 처리 장치(1510) 및 메모리(1520)를 포함한다. 도 15에서, 이러한 가장 기본적인 구성(1530)은 점선 내부에 포함되어 있다. 처리 장치(1510)는 컴퓨터 실행가능 명령어들을 실행하고 실제 프로세서(real processor) 또는 가상 프로세서(virtual processor)일 수 있다. 멀티-프로세싱 시스템에서는, 처리 능력을 향상시키기 위해 다수의 처리 장치가 컴퓨터 실행가능 명령어들을 실행한다. 메모리(1520)는 휘발성 메모리(예를 들어, 레지스터, 캐쉬, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래쉬 메모리, 기타), 또는 이 둘의 어떤 조합일 수 있다. 메모리(1520)는 오디오 인코더 및/또는 디코더를 구현하는 소프트웨어(1580)를 저장한다.
컴퓨팅 환경은 부가적인 특징들을 가질 수 있다. 예를 들어, 컴퓨팅 환경(1500)은 저장 장치(1540), 하나 이상의 입력 장치(1550), 하나 이상의 출력 장치(1560), 및 하나 이상의 통신 접속(1570)을 포함한다. 버스, 컨트롤러, 또는 네트워크 등의 상호접속 메카니즘(도시 생략)은 컴퓨팅 환경(1500)의 컴포넌트들을 상호접속시킨다. 일반적으로, 운영 체제 소프트웨어(도시 생략)는 컴퓨팅 환경(1500)에서 실행되는 기타 소프트웨어에 대한 운영 환경을 제공하고 컴퓨팅 환경(1500)의 컴포넌트들의 동작들을 조정한다.
저장 장치(1540)는 이동식 또는 비이동식일 수 있으며, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 컴퓨팅 환경(1500) 내에서 액세스될 수 있고 정보를 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함한다. 저장 장치(1540)는 오디오 인코더 및/또는 디코더를 구현하는 소프트웨어(1580)에 대한 명령어를 저장한다.
입력 장치(들)(1550)는 키보드, 마우스, 펜 또는 트랙볼 등의 터치 입력 장치, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(1500)에 입력을 제공하는 다른 장치일 수 있다. 오디오의 경우, 입력 장치(들)(1550)는 아날로그 또는 디지털 형태로 오디오 입력을 받는 사운드 카드 또는 이와 유사한 장치일 수 있다. 출력 장치(들)(1560)는 디스플레이, 프린터, 스피커, 또는 컴퓨팅 환경(1500)으로부터의 출력을 제공하는 다른 장치일 수 있다.
통신 접속(들)(1570)은 통신 매체를 통해 다른 컴퓨팅 개체로의 통신을 가능하게 해준다. 통신 매체는 컴퓨터 실행가능 명령어, 압축된 오디오 또는 비디오 정보, 또는 기타 데이터 등의 정보를 피변조 데이터 신호로 전달한다. 피변조 데이터 신호란 정보를 신호에 인코딩하도록 그 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호를 말한다. 제한이 아닌 예로서, 통신 매체는 전기, 광학, RF, 적외선, 음향 또는 기타 반송파로 구현되는 유선 또는 무선 기법을 포함한다.
본 발명은 일반적으로 컴퓨터 판독가능 매체와 관련하여 기술될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용가능한 매체이다. 제한이 아닌 예로서, 컴퓨팅 환경(1500)에서, 컴퓨터 판독가능 매체는 메모리(1520), 저장 장치(1540), 통신 매체, 및 상기한 것들 중 임의의 것의 조합을 포함한다.
본 발명은 일반적으로 컴퓨팅 환경에서 타겟 실제 또는 가상 프로세서 상에서 실행되는, 프로그램 모듈에 포함되어 있는 것 등의 컴퓨터 실행가능 명령어와 관련하여 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 객체, 클래스, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 프로그램 모듈의 기능은 다양한 실시예들에서 원하는 바에 따라 프로그램 모듈들 간에 결합 또는 분리될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행가능 명령어는 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
설명을 위해, 상세한 설명은 컴퓨팅 환경에서의 컴퓨터 동작을 기술하기 위해 "판정한다", "가져온다", "조정한다" 및 "적용한다"와 같은 용어를 사용한다. 이들 용어는 컴퓨터에 의해 수행되는 동작들에 대한 상위-레벨 추상화(high-level abstraction)이며, 사람에 의해 수행되는 동작들과 혼동해서는 안된다. 이들 용어에 대응하는 실제의 컴퓨터 동작은 구현에 따라 다르다.
본 발명의 원리들이 적용될 수 있는 많은 가능한 실시예들을 고려하여, 이하의 청구항 및 그의 등가물의 정신 및 범위 내에 속할 수 있는 모든 이러한 실시예를 우리의 발명으로 주장한다.

Claims (19)

  1. 오디오 인코딩 방법으로서,
    코드워드들의 라이브러리를 구성하는 코드워드들을 제공하는 단계,
    상기 라이브러리로부터의 적어도 하나의 코드워드를 변환하는 단계,
    서브대역을 상기 라이브러리로부터의 적어도 하나의 변환된 코드워드와 비교하는 단계, 및
    상기 라이브러리로부터의 하나 이상의 코드워드의 식별자 및 변환 식별자를 코딩하는 단계를 포함하는 상기 서브대역을 출력 스트림으로 코딩하는 단계를 포함하는 오디오 인코딩 방법.
  2. 제1항에 있어서, 입력 오디오 신호를 일련의 스펙트럼 계수로 변환하는 단계,
    상기 일련의 스펙트럼 계수의 기저대역 부분을 상기 출력 스트림으로 코딩하는 단계,
    상기 스펙트럼 계수의 확장 대역을 복수의 서브대역으로 나누는 단계,
    상기 확장 대역 내의 복수의 서브대역을 스케일링하는 단계, 및
    상기 서브대역을 변환되지 않은 상기 라이브러리로부터의 적어도 하나의 코드워드와 비교하는 단계를 더 포함하며,
    상기 라이브러리는 상기 기저대역 부분으로부터의 복수의 코드워드를 포함하 는 것인 오디오 인코딩 방법.
  3. 제1항에 있어서, 상기 라이브러리로부터의 적어도 하나의 코드워드를 변환하기 위해 이용가능한 변환은 이하의 변환들, 즉
    코드워드의 각각의 계수에 지수를 적용하는 것,
    코드워드의 각각의 계수를 부정하는 것, 또는
    코드워드 내의 계수들의 순서를 역전시키는 것
    중 하나 이상을 포함하는 것인 오디오 인코딩 방법.
  4. 제1항에 있어서, 상기 라이브러리로부터의 적어도 하나의 코드워드를 변환하는 단계는 2개 이상의 코드워드로부터의 계수들을 갖는 코드워드를 생성하는 단계를 포함하며,
    이 생성하는 단계는,
    최종 코드워드를 제외한 모든 코드워드로부터, 규칙을 만족시키는 계수들을 선택하는 단계, 및
    최종 코드워드로부터, 나머지 계수들을 제공하는 단계를 포함하는 것인 오디오 인코딩 방법.
  5. 제1항에 있어서, 상기 라이브러리는 노이즈 코드북으로부터의 코드워드 또는 결정 씨드가 제공되는 난수 발생기(determinatively seeded random number generator)를 사용하여 채워진 코드워드를 더 포함하는 것인 오디오 인코딩 방법.
  6. 제1항에 있어서, 상기 서브대역을 코딩하는 단계는 2개 이상의 코드워드의 식별자를 제공하는 단계를 포함하며,
    상기 변환 식별자는 지수 표시, 부호 표시, 방향 표시, 또는 상기 출력 비트스트림에서의 코드워드 식별자들의 순서 중 적어도 하나를 포함하며,
    상기 순서는 계수들의 암시적인 선택을 나타내는 것인 오디오 인코딩 방법.
  7. 제1항에 있어서, 상기 서브대역을 상기 출력 스트림으로 코딩하는 단계는 2개 이상의 코드워드의 식별자를 포함하며,
    상기 변환 식별자는 상기 2개 이상의 코드워드로부터 계수들을 선택하기 위한 명시적인 규칙의 식별자인 것인 오디오 인코딩 방법.
  8. 제1항에 있어서, 상기 비교된 상기 라이브러리로부터의 적어도 하나의 변환된 코드워드는 상기 라이브러리로부터의 가장 가깝게 일치하는 코드워드의 지수 변환을 사용하여 생성된 2개 이상의 코드워드인 것인 오디오 인코딩 방법.
  9. 제9항에 있어서, 상기 라이브러리로부터의 상기 가장 가깝게 일치하는 코드워드는 최소 평균 제곱(least-mean square) 비교를 사용하여 식별되고,
    상기 지수 변환으로부터 생성되는 상기 2개 이상의 코드워드는 확률 질량 함 수(probability mass function)를 사용하여 비교되는 것인 오디오 인코딩 방법.
  10. 제1항에 있어서, 상기 비교된 코드워드는 상기 라이브러리로부터의 복수의 코드워드를 포함하고,
    상기 서브대역을 상기 라이브러리로부터의 적어도 하나의 변환된 코드워드와 비교하는 단계는 상기 라이브러리의 코드워드들에 대한 전수적인 검색과, 부정(negation), 역방향(reverse direction), 및 2개 이상의 지수를 사용하는 지수 변환(exponential transformation)을 포함한 그의 변환을 포함하는 것인 오디오 인코딩 방법.
  11. 제2항에 있어서, 상기 기저대역 부분의 일부가 상기 입력 오디오 신호를 열악하게 표현하는지를 판정하는 단계,
    상기 기저대역 부분의 상기 부분을 개선하는 단계 - 상기 개선은 상기 열악하게 표현된 상기 기저대역 부분의 일부로부터, 상기 입력 오디오 신호를 잘 표현하는 계수들을 선택하는 것, 및 제2 코드워드로부터, 다른 계수들 전부를 선택하는 것을 포함함 -, 및
    상기 제2 코드워드의 식별자, 상기 열악하게 표현된 일부의 식별자, 및 계수들을 선택하는 규칙을 포함한 상기 개선을 코딩하는 단계를 더 포함하는 오디오 인코딩 방법.
  12. 제12항에 있어서, 상기 제2 코드워드는 노이즈 코드북 또는 난수 발생기로부터 획득되는 것인 오디오 인코딩 방법.
  13. 제1항에 있어서, 상기 라이브러리로부터의 적어도 하나의 코드워드를 변환하는 단계는 2개 이상의 코드워드로부터의 계수들을 갖는 코드워드를 생성하는 단계를 포함하며,
    상기 생성하는 단계는,
    제1 코드워드로부터, 규칙을 만족시키는 계수들을 선택하는 단계, 및
    상기 규칙을 만족시키지 않는 상기 제1 코드워드 내의 계수들에 대해, 수학적 연산을 수행하여 다른 계수들을 생성하는 단계를 포함하고,
    상기 수학적 연산은 연산자 및 복수의 피연산자를 포함하며,
    제1 피연산자는 상기 규칙을 만족시키지 않는 상기 제1 코드워드로부터의 계수이고,
    제2 피연산자는 제2 코드워드로부터 획득된 계수인 것인 오디오 인코딩 방법.
  14. 제1항에 있어서, 상기 서브대역을 코드워드들과 비교하는 단계 이전에 코드워드들을 사전-선택하는 단계를 더 포함하며,
    상기 사전-선택하는 단계는,
    오디오 신호에 대해 가중 평균 함수를 실행하는 단계를 포함한 엔벨로프를 생성하는 단계, 및
    상기 엔벨로프를 상기 서브대역과 비교함으로써 상기 사전-선택된 코드워드들을 판정하는 단계를 포함하는 것인 오디오 인코딩 방법.
  15. 제15항에 있어서, 상기 엔벨로프를 상기 서브대역과 비교하는 단계는 부정 변환, 역변환, 또는 지수 변환을 포함한 하나 이상의 변환을 사용하여 상기 엔벨로프를 변환하는 단계를 더 포함하며,
    상기 엔벨로프를 상기 서브대역과 비교하는 단계는 유클리드 거리를 구하는 단계를 포함하는 것인 오디오 인코딩 방법.
  16. 오디오 디코딩 방법으로서,
    비트스트림 내의 인코딩된 스펙트럼 계수들을 디코딩하는 단계, 및
    상기 비트스트림 내의 하나 이상의 인코딩된 서브대역을 디코딩하는 단계를 포함하며,
    상기 비트스트림 내의 하나 이상의 인코딩된 서브대역을 디코딩하는 단계는,
    각각의 서브대역에 대한 하나 이상의 코드워드 식별자를 판정하는 단계,
    각각의 서브대역에 대한 상기 하나 이상의 판정된 코드워드를 획득하는 단계,
    적어도 하나의 서브대역에 대해, 변환 규칙을 결정하는 단계, 및
    상기 적어도 하나의 서브대역에 대해, 상기 변환 규칙을 사용하여 상기 서브 대역에 대해 획득된 코드워드를 변환하는 단계를 포함하는 것인 오디오 디코딩 방법.
  17. 제17항에 있어서, 상기 결정된 변환 규칙은 이하의 변환들, 즉
    코드워드의 각각의 계수에 지수를 적용하는 것,
    코드워드의 각각의 계수를 부정하는 것, 또는
    코드워드 내의 계수들의 순서를 역전시키는 것
    중 하나 이상을 포함하는 것인 오디오 디코딩 방법.
  18. 제17항에 있어서, 상기 결정된 변환 규칙은 2개 이상의 코드워드로부터 코드워드를 생성하며,
    이 생성하는 단계는,
    최종 코드워드를 제외한 모든 코드워드로부터, 규칙을 만족시키는 계수들을 선택하는 단계, 및
    최종 코드워드로부터, 나머지 계수들을 제공하는 단계를 포함하는 것인 오디오 디코딩 방법.
  19. 오디오 인코더로서,
    입력 오디오 신호 블록을 스펙트럼 계수들로 변환하는 변환,
    스펙트럼 계수들의 기저대역 부분의 값들을 비트스트림으로 코딩하는 기저 코더(base coder),
    스펙트럼 계수들의 일부분을 서브대역으로 분할하는 분할기,
    서브대역을 스케일링하는 스케일러,
    서브대역을 코드워드들의 라이브러리로부터의 코드워드와 비교하는 비교기, 및
    서브대역들을 상기 비트스트림으로 코딩하는 확장 대역 코더를 포함하며,
    코딩된 서브대역은 코드워드의 식별자 및 상기 식별된 코드워드를 변환하는 지수를 포함하는 것인 오디오 인코더.
KR1020087001019A 2005-07-15 2006-07-14 오디오 인코딩 방법, 오디오 디코딩 방법 및 오디오 인코더 디바이스 KR101330362B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/183,084 US7562021B2 (en) 2005-07-15 2005-07-15 Modification of codewords in dictionary used for efficient coding of digital media spectral data
US11/183,084 2005-07-15
PCT/US2006/027238 WO2007011657A2 (en) 2005-07-15 2006-07-14 Modification of codewords in dictionary used for efficient coding of digital media spectral data

Publications (2)

Publication Number Publication Date
KR20080025404A true KR20080025404A (ko) 2008-03-20
KR101330362B1 KR101330362B1 (ko) 2013-11-15

Family

ID=37662735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087001019A KR101330362B1 (ko) 2005-07-15 2006-07-14 오디오 인코딩 방법, 오디오 디코딩 방법 및 오디오 인코더 디바이스

Country Status (11)

Country Link
US (1) US7562021B2 (ko)
EP (1) EP1905011B1 (ko)
JP (1) JP5456310B2 (ko)
KR (1) KR101330362B1 (ko)
CN (1) CN101223582B (ko)
AU (1) AU2006270263B2 (ko)
CA (1) CA2612474C (ko)
ES (1) ES2627212T3 (ko)
MX (1) MX2008000528A (ko)
NO (1) NO340485B1 (ko)
WO (1) WO2007011657A2 (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7240001B2 (en) 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
DK2282310T3 (da) 2002-09-04 2012-02-20 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde /niveau-moduser
US7460990B2 (en) 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
GB2427803A (en) * 2005-06-29 2007-01-03 Symbian Software Ltd E-mail/text message compression using differences from earlier messages or standard codebooks with specific message supplements
KR101171098B1 (ko) * 2005-07-22 2012-08-20 삼성전자주식회사 혼합 구조의 스케일러블 음성 부호화 방법 및 장치
WO2007027741A2 (en) * 2005-08-29 2007-03-08 Mrv Communications, Inc. Transmission of pathological data patterns
US20070271250A1 (en) * 2005-10-19 2007-11-22 Monro Donald M Basis selection for coding and decoding of data
US8126706B2 (en) * 2005-12-09 2012-02-28 Acoustic Technologies, Inc. Music detector for echo cancellation and noise reduction
US8332216B2 (en) * 2006-01-12 2012-12-11 Stmicroelectronics Asia Pacific Pte., Ltd. System and method for low power stereo perceptual audio coding using adaptive masking threshold
US8674855B2 (en) * 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US7783079B2 (en) * 2006-04-07 2010-08-24 Monro Donald M Motion assisted data enhancement
US7586424B2 (en) * 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US20070290899A1 (en) * 2006-06-19 2007-12-20 Donald Martin Monro Data coding
US7770091B2 (en) * 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US7845571B2 (en) * 2006-06-19 2010-12-07 Monro Donald M Data compression
US7689049B2 (en) * 2006-08-31 2010-03-30 Donald Martin Monro Matching pursuits coding of data
US7508325B2 (en) * 2006-09-06 2009-03-24 Intellectual Ventures Holding 35 Llc Matching pursuits subband coding of data
US7974488B2 (en) * 2006-10-05 2011-07-05 Intellectual Ventures Holding 35 Llc Matching pursuits basis selection
US20080084924A1 (en) * 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design
FR2912249A1 (fr) * 2007-02-02 2008-08-08 France Telecom Codage/decodage perfectionnes de signaux audionumeriques.
US7707214B2 (en) 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location with indirect addressing
US7707213B2 (en) * 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location
US20080205505A1 (en) * 2007-02-22 2008-08-28 Donald Martin Monro Video coding with motion vectors determined by decoder
US10194175B2 (en) 2007-02-23 2019-01-29 Xylon Llc Video coding with embedded motion
JP4871894B2 (ja) * 2007-03-02 2012-02-08 パナソニック株式会社 符号化装置、復号装置、符号化方法および復号方法
GB0704622D0 (en) * 2007-03-09 2007-04-18 Skype Ltd Speech coding system and method
US8046214B2 (en) * 2007-06-22 2011-10-25 Microsoft Corporation Low complexity decoder for complex transform coding of multi-channel sound
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
WO2009038421A1 (en) * 2007-09-20 2009-03-26 Lg Electronics Inc. A method and an apparatus for processing a signal
US8249883B2 (en) 2007-10-26 2012-08-21 Microsoft Corporation Channel extension coding for multi-channel source
GB2454190A (en) * 2007-10-30 2009-05-06 Cambridge Silicon Radio Ltd Minimising a cost function in encoding data using spectral partitioning
BRPI0722269A2 (pt) * 2007-11-06 2014-04-22 Nokia Corp Encodificador para encodificar um sinal de áudio, método para encodificar um sinal de áudio; decodificador para decodificar um sinal de áudio; método para decodificar um sinal de áudio; aparelho; dispositivo eletrônico; produto de programa de comoputador configurado para realizar um método para encodificar e para decodificar um sinal de áudio
EP2220646A1 (en) * 2007-11-06 2010-08-25 Nokia Corporation Audio coding apparatus and method thereof
WO2009059632A1 (en) * 2007-11-06 2009-05-14 Nokia Corporation An encoder
KR100926566B1 (ko) * 2007-12-06 2009-11-12 한국전자통신연구원 연판정값 산출 방법 및 송신 신호 검출 방법
KR101599875B1 (ko) * 2008-04-17 2016-03-14 삼성전자주식회사 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 부호화 방법 및 장치, 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 복호화 방법 및 장치
KR20090110242A (ko) * 2008-04-17 2009-10-21 삼성전자주식회사 오디오 신호를 처리하는 방법 및 장치
KR20090110244A (ko) * 2008-04-17 2009-10-21 삼성전자주식회사 오디오 시맨틱 정보를 이용한 오디오 신호의 부호화/복호화 방법 및 그 장치
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US7786907B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786903B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7791513B2 (en) 2008-10-06 2010-09-07 Donald Martin Monro Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
WO2011048820A1 (ja) * 2009-10-23 2011-04-28 パナソニック株式会社 符号化装置、復号装置およびこれらの方法
US9548057B2 (en) * 2011-04-15 2017-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive gain-shape rate sharing
AU2012256550B2 (en) 2011-05-13 2016-08-25 Samsung Electronics Co., Ltd. Bit allocating, audio encoding and decoding
EP2772912B1 (en) * 2011-10-28 2016-08-10 Panasonic Intellectual Property Corporation of America Audio encoding apparatus, audio decoding apparatus, audio encoding method, and audio decoding method
US9161035B2 (en) 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
CN103297182A (zh) * 2012-03-02 2013-09-11 中兴通讯股份有限公司 频谱感知测量数据的发送方法及装置
CN105009577B (zh) * 2012-10-01 2019-05-03 Ge视频压缩有限责任公司 一种可伸缩视频编解码方法、设备和计算机可读存储介质
CN103854653B (zh) 2012-12-06 2016-12-28 华为技术有限公司 信号解码的方法和设备
CN105745703B (zh) 2013-09-16 2019-12-10 三星电子株式会社 信号编码方法和装置以及信号解码方法和装置
EP3518237B1 (en) * 2014-03-14 2022-09-07 Telefonaktiebolaget LM Ericsson (publ) Audio coding method and apparatus
PL3174050T3 (pl) * 2014-07-25 2019-04-30 Fraunhofer Ges Forschung Urządzenie do kodowania sygnałów audio, urządzenie do dekodowania sygnałów audio i ich sposoby
CN111968655B (zh) 2014-07-28 2023-11-10 三星电子株式会社 信号编码方法和装置以及信号解码方法和装置
US9553611B2 (en) * 2014-11-27 2017-01-24 Apple Inc. Error correction coding with high-degree overlap among component codes
JP2016153933A (ja) * 2015-02-20 2016-08-25 株式会社リコー 画像処理装置、画像処理システム、画像処理方法、プログラム、及び記録媒体
DE102016104665A1 (de) 2016-03-14 2017-09-14 Ask Industries Gmbh Verfahren und Vorrichtung zur Aufbereitung eines verlustbehaftet komprimierten Audiosignals
US10236909B2 (en) * 2017-03-31 2019-03-19 Sandisk Technologies Llc Bit-order modification for different memory areas of a storage device
US10230395B2 (en) * 2017-03-31 2019-03-12 Sandisk Technologies Llc Determining codebooks for different memory areas of a storage device
US10355712B2 (en) * 2017-03-31 2019-07-16 Sandisk Technologies Llc Use of multiple codebooks for programming data in different memory areas of a storage device
EP3413308A1 (en) * 2017-06-07 2018-12-12 Nokia Technologies Oy Efficient storage of multiple structured codebooks
US10586546B2 (en) 2018-04-26 2020-03-10 Qualcomm Incorporated Inversely enumerated pyramid vector quantizers for efficient rate adaptation in audio coding
US10573331B2 (en) * 2018-05-01 2020-02-25 Qualcomm Incorporated Cooperative pyramid vector quantizers for scalable audio coding
US10666289B1 (en) 2019-01-16 2020-05-26 International Business Machines Corporation Data compression using dictionary encoding

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023910A (en) * 1988-04-08 1991-06-11 At&T Bell Laboratories Vector quantization in a harmonic speech coding arrangement
US5539829A (en) * 1989-06-02 1996-07-23 U.S. Philips Corporation Subband coded digital transmission system using some composite signals
US5040217A (en) * 1989-10-18 1991-08-13 At&T Bell Laboratories Perceptual coding of audio signals
JP2560873B2 (ja) * 1990-02-28 1996-12-04 日本ビクター株式会社 直交変換符号化復号化方法
US5388181A (en) * 1990-05-29 1995-02-07 Anderson; David J. Digital audio compression system
JP3033156B2 (ja) * 1990-08-24 2000-04-17 ソニー株式会社 ディジタル信号符号化装置
DK0520068T3 (da) * 1991-01-08 1996-07-15 Dolby Ray Milton Koder/dekoder for flerdimensionale lydfelter
WO1992021101A1 (en) * 1991-05-17 1992-11-26 The Analytic Sciences Corporation Continuous-tone image compression
KR100268623B1 (ko) * 1991-06-28 2000-10-16 이데이 노부유끼 압축 데이타 기록 재생 장치 및 신호 처리 방법
US5369724A (en) * 1992-01-17 1994-11-29 Massachusetts Institute Of Technology Method and apparatus for encoding, decoding and compression of audio-type data using reference coefficients located within a band of coefficients
EP0559348A3 (en) * 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
DE4209544A1 (de) * 1992-03-24 1993-09-30 Inst Rundfunktechnik Gmbh Verfahren zum Übertragen oder Speichern digitalisierter, mehrkanaliger Tonsignale
US5295203A (en) * 1992-03-26 1994-03-15 General Instrument Corporation Method and apparatus for vector coding of video transform coefficients
JP3186307B2 (ja) * 1993-03-09 2001-07-11 ソニー株式会社 圧縮データ記録装置及び方法
US5581653A (en) * 1993-08-31 1996-12-03 Dolby Laboratories Licensing Corporation Low bit-rate high-resolution spectral envelope coding for audio encoder and decoder
US5737720A (en) * 1993-10-26 1998-04-07 Sony Corporation Low bit rate multichannel audio coding methods and apparatus using non-linear adaptive bit allocation
KR960012475B1 (ko) 1994-01-18 1996-09-20 대우전자 주식회사 디지탈 오디오 부호화장치의 채널별 비트 할당 장치
JP2956473B2 (ja) * 1994-04-21 1999-10-04 日本電気株式会社 ベクトル量子化装置
DE69525836T2 (de) * 1994-11-04 2002-11-21 Koninkl Philips Electronics Nv Kodierung und dekodierung eines breitbandigen digitalen informationssignals
US5654702A (en) * 1994-12-16 1997-08-05 National Semiconductor Corp. Syntax-based arithmetic coding for low bit rate videophone
JPH08179800A (ja) * 1994-12-26 1996-07-12 Matsushita Electric Ind Co Ltd 音声符号化装置
GB9512284D0 (en) * 1995-06-16 1995-08-16 Nokia Mobile Phones Ltd Speech Synthesiser
DE19537338C2 (de) * 1995-10-06 2003-05-22 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Codieren von Audiosignalen
US5819215A (en) * 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5777678A (en) * 1995-10-26 1998-07-07 Sony Corporation Predictive sub-band video coding and decoding using motion compensation
US5956674A (en) * 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5686964A (en) * 1995-12-04 1997-11-11 Tabatabai; Ali Bit rate control mechanism for digital image and video data compression
EP0880235A1 (en) * 1996-02-08 1998-11-25 Matsushita Electric Industrial Co., Ltd. Wide band audio signal encoder, wide band audio signal decoder, wide band audio signal encoder/decoder and wide band audio signal recording medium
JP3353267B2 (ja) * 1996-02-22 2002-12-03 日本電信電話株式会社 音響信号変換符号化方法及び復号化方法
US5852806A (en) * 1996-03-19 1998-12-22 Lucent Technologies Inc. Switched filterbank for use in audio signal coding
SE506341C2 (sv) * 1996-04-10 1997-12-08 Ericsson Telefon Ab L M Metod och anordning för rekonstruktion av en mottagen talsignal
DE19628293C1 (de) * 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
DE19628292B4 (de) * 1996-07-12 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
US6697491B1 (en) * 1996-07-19 2004-02-24 Harman International Industries, Incorporated 5-2-5 matrix encoder and decoder system
US5870480A (en) * 1996-07-19 1999-02-09 Lexicon Multichannel active matrix encoder and decoder with maximum lateral separation
US5886276A (en) * 1997-01-16 1999-03-23 The Board Of Trustees Of The Leland Stanford Junior University System and method for multiresolution scalable audio signal encoding
US20010017941A1 (en) * 1997-03-14 2001-08-30 Navin Chaddha Method and apparatus for table-based compression with embedded coding
SE512719C2 (sv) * 1997-06-10 2000-05-02 Lars Gustaf Liljeryd En metod och anordning för reduktion av dataflöde baserad på harmonisk bandbreddsexpansion
US6073092A (en) * 1997-06-26 2000-06-06 Telogy Networks, Inc. Method for speech coding based on a code excited linear prediction (CELP) model
DE19730129C2 (de) * 1997-07-14 2002-03-07 Fraunhofer Ges Forschung Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
JPH11122120A (ja) * 1997-10-17 1999-04-30 Sony Corp 符号化方法及び装置、並びに復号化方法及び装置
US6959220B1 (en) * 1997-11-07 2005-10-25 Microsoft Corporation Digital audio signal filtering mechanism and method
JP3344962B2 (ja) * 1998-03-11 2002-11-18 松下電器産業株式会社 オーディオ信号符号化装置、及びオーディオ信号復号化装置
US6029126A (en) * 1998-06-30 2000-02-22 Microsoft Corporation Scalable audio coder and decoder
US6115689A (en) * 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
US7272556B1 (en) * 1998-09-23 2007-09-18 Lucent Technologies Inc. Scalable and embedded codec for speech and audio signals
SE519552C2 (sv) 1998-09-30 2003-03-11 Ericsson Telefon Ab L M Flerkanalig signalkodning och -avkodning
CA2252170A1 (en) * 1998-10-27 2000-04-27 Bruno Bessette A method and device for high quality coding of wideband speech and audio signals
US6498865B1 (en) * 1999-02-11 2002-12-24 Packetvideo Corp,. Method and device for control and compatible delivery of digitally compressed visual data in a heterogeneous communication network
US6778709B1 (en) * 1999-03-12 2004-08-17 Hewlett-Packard Development Company, L.P. Embedded block coding with optimized truncation
SG144695A1 (en) * 1999-04-07 2008-08-28 Dolby Lab Licensing Corp Matrix improvements to lossless encoding and decoding
US6226616B1 (en) * 1999-06-21 2001-05-01 Digital Theater Systems, Inc. Sound quality of established low bit-rate audio coding systems without loss of decoder compatibility
US6604070B1 (en) * 1999-09-22 2003-08-05 Conexant Systems, Inc. System of encoding and decoding speech signals
FI19992351A (fi) * 1999-10-29 2001-04-30 Nokia Mobile Phones Ltd Puheentunnistus
US6601032B1 (en) * 2000-06-14 2003-07-29 Intervideo, Inc. Fast code length search method for MPEG audio encoding
JP4508490B2 (ja) 2000-09-11 2010-07-21 パナソニック株式会社 符号化装置および復号化装置
US6760698B2 (en) * 2000-09-15 2004-07-06 Mindspeed Technologies Inc. System for coding speech information using an adaptive codebook with enhanced variable resolution scheme
JP3557164B2 (ja) 2000-09-18 2004-08-25 日本電信電話株式会社 オーディオ信号符号化方法及びその方法を実行するプログラム記憶媒体
US7003467B1 (en) * 2000-10-06 2006-02-21 Digital Theater Systems, Inc. Method of decoding two-channel matrix encoded audio to reconstruct multichannel audio
US6463408B1 (en) 2000-11-22 2002-10-08 Ericsson, Inc. Systems and methods for improving power spectral estimation of speech signals
KR100433516B1 (ko) * 2000-12-08 2004-05-31 삼성전자주식회사 트랜스코딩 방법
EP1275271A2 (en) * 2000-12-22 2003-01-15 Koninklijke Philips Electronics N.V. Multi-channel audio converter
US7062445B2 (en) * 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
EP1231793A1 (en) * 2001-02-09 2002-08-14 STMicroelectronics S.r.l. A process for changing the syntax, resolution and bitrate of MPEG bitstreams, a system and a computer program product therefor
GB0108080D0 (en) * 2001-03-30 2001-05-23 Univ Bath Audio compression
WO2002093560A1 (en) 2001-05-10 2002-11-21 Dolby Laboratories Licensing Corporation Improving transient performance of low bit rate audio coding systems by reducing pre-noise
JP4506039B2 (ja) 2001-06-15 2010-07-21 ソニー株式会社 符号化装置及び方法、復号装置及び方法、並びに符号化プログラム及び復号プログラム
JP3926726B2 (ja) * 2001-11-14 2007-06-06 松下電器産業株式会社 符号化装置および復号化装置
KR100935961B1 (ko) * 2001-11-14 2010-01-08 파나소닉 주식회사 부호화 장치 및 복호화 장치
US7240001B2 (en) * 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7460993B2 (en) * 2001-12-14 2008-12-02 Microsoft Corporation Adaptive window-size selection in transform coding
US7146313B2 (en) * 2001-12-14 2006-12-05 Microsoft Corporation Techniques for measurement of perceptual audio quality
US7027982B2 (en) * 2001-12-14 2006-04-11 Microsoft Corporation Quality and rate control strategy for digital audio
US6934677B2 (en) * 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
US7310598B1 (en) * 2002-04-12 2007-12-18 University Of Central Florida Research Foundation, Inc. Energy based split vector quantizer employing signal representation in multiple transform domains
US7158539B2 (en) * 2002-04-16 2007-01-02 Microsoft Corporation Error resilient windows media audio coding
US7447631B2 (en) * 2002-06-17 2008-11-04 Dolby Laboratories Licensing Corporation Audio coding system using spectral hole filling
US7072726B2 (en) * 2002-06-19 2006-07-04 Microsoft Corporation Converting M channels of digital audio data into N channels of digital audio data
US7043423B2 (en) * 2002-07-16 2006-05-09 Dolby Laboratories Licensing Corporation Low bit-rate audio coding systems and methods that use expanding quantizers with arithmetic coding
US7299190B2 (en) * 2002-09-04 2007-11-20 Microsoft Corporation Quantization and inverse quantization for audio
US20060106597A1 (en) * 2002-09-24 2006-05-18 Yaakov Stein System and method for low bit-rate compression of combined speech and music
US6965859B2 (en) * 2003-02-28 2005-11-15 Xvd Corporation Method and apparatus for audio compression
SG135920A1 (en) * 2003-03-07 2007-10-29 St Microelectronics Asia Device and process for use in encoding audio data
EP1671316B1 (en) * 2003-09-29 2007-08-01 Koninklijke Philips Electronics N.V. Encoding audio signals
US7447317B2 (en) * 2003-10-02 2008-11-04 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V Compatible multi-channel coding/decoding by weighting the downmix channel
DE602004027750D1 (de) * 2003-10-23 2010-07-29 Panasonic Corp Spektrum-codierungseinrichtung, spektrum-decodierungseinrichtung, übertragungseinrichtung für akustische signale, empfangseinrichtung für akustische signale und verfahren dafür
JP4009781B2 (ja) * 2003-10-27 2007-11-21 カシオ計算機株式会社 音声処理装置及び音声符号化方法
US7809579B2 (en) * 2003-12-19 2010-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Fidelity-optimized variable frame length encoding
US7460990B2 (en) * 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7805313B2 (en) * 2004-03-04 2010-09-28 Agere Systems Inc. Frequency-based coding of channels in parametric multi-channel coding systems
SE0400997D0 (sv) * 2004-04-16 2004-04-16 Cooding Technologies Sweden Ab Efficient coding of multi-channel audio
KR100634506B1 (ko) * 2004-06-25 2006-10-16 삼성전자주식회사 저비트율 부호화/복호화 방법 및 장치
US20060025991A1 (en) * 2004-07-23 2006-02-02 Lg Electronics Inc. Voice coding apparatus and method using PLP in mobile communications terminal
DE602005016571D1 (de) 2004-08-26 2009-10-22 Panasonic Corp Mehrkanalige signal-dekodierung
US7630902B2 (en) * 2004-09-17 2009-12-08 Digital Rise Technology Co., Ltd. Apparatus and methods for digital audio coding using codebook application ranges
CN101044552A (zh) * 2004-10-27 2007-09-26 松下电器产业株式会社 语音编码装置和语音编码方法
SE0402652D0 (sv) * 2004-11-02 2004-11-02 Coding Tech Ab Methods for improved performance of prediction based multi- channel reconstruction
US7548853B2 (en) * 2005-06-17 2009-06-16 Shmunk Dmitry V Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7539612B2 (en) * 2005-07-15 2009-05-26 Microsoft Corporation Coding and decoding scale factor information

Also Published As

Publication number Publication date
NO20076260L (no) 2008-02-06
EP1905011A2 (en) 2008-04-02
NO340485B1 (no) 2017-05-02
US7562021B2 (en) 2009-07-14
ES2627212T3 (es) 2017-07-27
JP2009501944A (ja) 2009-01-22
AU2006270263A1 (en) 2007-01-25
US20070016414A1 (en) 2007-01-18
JP5456310B2 (ja) 2014-03-26
ES2627212T8 (es) 2017-09-04
WO2007011657A3 (en) 2007-10-11
CN101223582B (zh) 2011-05-11
CN101223582A (zh) 2008-07-16
EP1905011B1 (en) 2017-03-01
WO2007011657A2 (en) 2007-01-25
KR101330362B1 (ko) 2013-11-15
AU2006270263B2 (en) 2011-01-06
CA2612474A1 (en) 2007-01-25
EP1905011A4 (en) 2012-05-30
MX2008000528A (es) 2008-03-06
CA2612474C (en) 2014-09-09

Similar Documents

Publication Publication Date Title
KR101330362B1 (ko) 오디오 인코딩 방법, 오디오 디코딩 방법 및 오디오 인코더 디바이스
KR101343267B1 (ko) 주파수 세그먼트화를 이용한 오디오 코딩 및 디코딩을 위한 방법 및 장치
KR101130355B1 (ko) 넓은-뜻의 지각적 유사성을 이용하는 디지털 미디어 스펙트럼 데이터의 효과적인 코딩

Legal Events

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

Payment date: 20161019

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191016

Year of fee payment: 7