도 1 내지 도 19는 오디오 서브밴드 값을 생성하기 위한 장치 및 방법과 시간 영역 샘플을 생성하기 위한 장치 및 방법과 위 장치 및 방법 중 적어도 하나를 포함하는 시스템의 서로 다른 실시예들의 동작 특성과 기능을 나타내는 블록도와 추가적인 도면을 나타낸다.
그러나, 본 발명에 따른 제1 실시예를 좀 더 상세하게 설명하기 전에, 본 발명의 실시예들은 하드웨어 또는 소프트웨어로 구현될 수 있음을 주지해야 한다. 그래서, 각 실시예 중 하드웨어로 구현되는 블록도의 견지에서 기술되는 실시예들은 해당하는 방법의 실시예의 흐름도에서도 고려될 수 있다. 또한, 본 발명의 일 실시예를 기술하는 흐름도는 해당하는 하드웨어 구현예의 블록도로 고려될 수 있다.
이하, 필터뱅크의 실시예들을 설명하는데, 이는 분석 필터뱅크(analysis filterbank) 또는 합성 필터뱅크(synthesis filterbank)로 구현될 수 있다. 분석 필터뱅크는 선행 샘플부터 후행 샘플에 이르기까지의 시간 순서를 갖는 시간 영역 오디오 (입력) 샘플에 기초하여 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치이다. 다시 말하면, 분석 필터뱅크라는 용어는 오디오 서브밴드 값을 생성하기 위한 장치의 형태에서 본 발명의 일 실시예와 같은 의미로 사용될 수 있다. 따라서 합성 필터뱅크는 오디오 서브밴드 채널에서 오디오 서브밴드 값으로부터 시간 영역 오디오 샘플을 생성하기 위한 필터뱅크이다. 다시 말하면, 합성 필터뱅크라는 용어는 시간 영역 오디오 샘플을 생성하기 위한 장치의 형태에 서 본 발명에 따른 일 실시예와 같은 의미로 사용될 수 있다.
필터뱅크라고도 요약하여 말할 수 있는 분석 필터뱅크와 합성 필터뱅크 양자 모두, 예를 들면 변조된 필터뱅크로 구현될 수도 있다. 변조된 필터뱅크는, 이하에서 그 실시예에 대해 더 구체적으로 설명하겠지만, 주파수 영역에서 해당 서브밴드의 중심 주파수(center frequency)로부터 유추되거나 그로부터 기초한 주파수들을 갖는 진동에 기초한다. 여기서, "변조된"이라는 용어는 위에서 언급한 진동이 정황상 윈도우 함수 또는 프로토타입(prototype) 필터 함수와 같이 사용된다는 사실과 관련이 있다. 변조된 필터뱅크는 원칙적으로 조화 진동(사인-진동 또는 코사인-진동)과 같은 실수 진동 또는 복소수 진동(복소 지수적 진동)에 기초할 수 있다. 이에, 변조된 필터뱅크는 각각 실 변조된 필터뱅크 또는 복소 변조된 필터뱅크라고 말할 수 있다.
이하에서는, 복소 변조된 저지연의 필터뱅크, 실 변조된 저지연의 필터뱅크 및 해당 방법들과 소프트웨어 구현 형태의 본 발명의 실시예들을 좀 더 구체적으로 설명한다. 이처럼 변조된 저지연의 필터뱅크의 주요 애플리케이션 중 하나는 저지연의 스펙트럴 밴드 복사(SBR) 시스템으로 통합시키는 것으로서, 이 시스템은 현재 대칭 프로토타입 필터와 함께 복소 QMF 필터뱅크(QMF = Quadrature Mirror Filter)를 사용하는 것에 기초한다.
본 명세서의 구조를 통해 명백해지겠지만, 본 발명의 일 실시예에 따른 저지연 필터뱅크의 구현은 계산 복잡도, 주파수 응답, 일시적 노이즈 확산과 재구성 품질 사이에 개선된 절충안이라는 장점을 제공할 것이다. 더 나아가, 지연과 재구성 품질 사이에 개선된 절충안은 부가적인 지연없이 각각의 필터뱅크의 필터 임펄스 응답을 연장하는 소위 제로-지연(zero-delay) 기술을 이용하는 접근 방식에 기초하여 달성될 수 있다. 미리 정해진 품질 수준에서의 저지연, 미리 정해진 지연 수준에서의 더 나은 품질, 또는 지연과 품질의 동시적인 개선은 본 발명의 일 실시예에 따른 분석 필터뱅크 또는 합성 필터뱅크를 이용함으로써 달성될 수 있다.
본 발명의 실시예들은 제1 개수의 윈도우 계수보다 더 큰 제2 개수의 윈도우 계수를 가지는 윈도우 함수에 기초한 제1 개수의 윈도우 계수를 가지는 윈도우 함수를 획득하기 위한 보간 방식(interpolation shcheme)을 이용하는 것에 의해 위와 같은 개선이 달성될 수 있다는 것을 발견하는 것에 기초하고 있다. 보간 방식을 이용함으로써, 윈도우 함수의 윈도우 계수의 에너지 값의 배분이 개선된다. 이는 많은 경우에 있어서 에일리어싱 레벨(aliasing level)의 개선과 오디오 품질의 개선을 가져온다. 예를 들면, 더 큰 윈도우 함수가 짝수의 윈도우 계수를 포함할 때, 보간 방식이 유용할 수 있다.
계산 복잡도는 보간 방식을 이용함에 의해 약간만 증가하게 된다. 그러나, 이러한 약간의 증가는 품질의 개선뿐만 아니라, 각각 독립적으로 저장된 두 개의 다른 윈도우 함수의 상황을 비교해 볼 때 감소된 메모리의 사용에 관한 결과적인 장점보다 중요하지는 않다. 실제 구현예에서 보간은 프로세서의 클럭 신호(clock signal)의 한 주기 또는 몇 주기 내에서 이루어지면서 많은 경우에 사소한 지연과 증가된 계산 복잡도를 초래하지만, 부가적인 메모리 요구는 많은 애플리케이션에서 매우 중요할 수도 있다. 예를 들면, 모바일 애플리케이션의 경우에, 특히 상당한 수의 윈도우 계수를 가지는 롱 윈도우 함수(long window function)가 이용될 때에는 메모리 한계가 있을 수 있다.
게다가, 본 발명에 따른 실시예들은 위에서 언급한 두 필터뱅크 중 어느 하나에 대한 새로운 윈도우 함수와 관련하여 이용될 수 있으며, 이는 이미 언급한 절충안을 추가적으로 개선한다. 품질과 지연은 분석 필터뱅크의 경우에 연속된 윈도우 계수를 포함하는 분석 윈도우 함수를 이용함으로서 더 개선될 수 있는데, 연속된 윈도우 계수는 연속된 윈도우 계수 중 제1 연속 부분을 포함하는 제1 그룹과 연속된 윈도우 계수 중 제2 연속 부분을 포함하는 제2 그룹을 포함한다. 제1 부분과 제2 부분은 윈도우 함수의 전체 윈도우 계수들을 포함한다. 게다가, 제1 부분은 제2 부분보다 더 적은 윈도우 계수들을 포함하나, 제1 부분의 윈도우 계수들의 에너지 값은 제2 부분의 윈도우 계수들의 에너지 값보다 더 높다. 윈도우 계수들의 제1 그룹은 후행 시간 영역 샘플들을 윈도우잉하는 데 이용되고, 윈도우 계수들의 제2 그룹은 윈도우된 선행(earlier) 시간 영역 샘플들에 이용된다. 이러한 형태의 윈도우 함수는 더 빨리 더 높은 에너지 값을 가지는 윈도우 계수들을 가지고 시간 영역 샘플을 프로세싱하는 기회를 제공한다. 이는 이미 상술한 바와 같이 윈도우 계수를 두 부분으로 배분한 것과 그들의 애플리케이션을 연속된 시간 영역 오디오 샘플에 배분한 결과이다. 결과적으로, 그러한 윈도우 함수를 이용하는 것은 일정한 품질 레벨에서 필터뱅크에 의해 초래된 지연을 감소시키거나, 일정한 지연 레벨에 기초하여 품질 레벨을 개선시키는 것을 가능하게 한다.
이에, 본 발명에 따른 시간 영역 오디오 샘플을 생성하기 위한 장치와 이에 해당하는 방법의 일 실시예의 경우에, 합성 윈도우어는 합성 윈도우 함수를 이용할 수 있으며, 이는 제1 (연속) 부분과 제2 (연속) 부분으로 상응하게 배열된 일련의 윈도우 계수들을 포함한다. 또한, 합성 윈도우 함수의 경우에는, 제1 부분의 윈도우 계수의 에너지 값 또는 전체 에너지 값이 제2 부분의 윈도우 계수의 에너지 값 또는 전체 에너지 값보다 높으며, 제1 부분은 제2 부분보다 더 적은 윈도우 계수들을 포함한다. 위 두 부분 간의 윈도우 계수의 배분과, 합성 윈도우어는 후행 시간 영역 샘플을 윈도우잉하기 위한 윈도우 계수의 제1 부분을 사용하고 선행(earlier) 시간 영역 샘플들을 윈도우잉하기 위해 윈도우어 계수의 제2 부분을 사용한다는 사실 때문에, 이미 언급한 효과들과 장점들은 합성 필터뱅크 또는 해당하는 본 발명에 의한 방법에 따른 실시예에 적용된다.
본 발명의 몇몇 실시예의 구조에서 이용된 합성 윈도우 함수와 분석 윈도우 함수에 관한 상세한 설명은 이후에 좀 더 상세하게 설명될 것이다. 본 발명의 많은 실시예들에서, 합성 윈도우 함수 또는 분석 윈도우 함수의 윈도우 계수들의 시퀀스는 정확하게 윈도우 계수들의 제1 그룹과 제2 그룹을 포함한다. 게다가, 윈도우 계수들의 시퀀스에서 윈도우 계수들 각각은 정확하게 윈도우 계수들의 제1 그룹 또는 제2 그룹 중 어느 하나에 속한다.
두 그룹 각각은 윈도우 계수들의 시퀀스에서 연속된 방식으로 정확하게 어느 한 부분을 차지한다. 본 명세서에서는, 하나의 부분은 윈도우 계수들의 시퀀스에 따라 연속된 일련의 윈도우 계수를 포함한다. 본 발명에 따른 실시예들에서는 두 그룹 각각은 위에서 설명한 방식으로 윈도우 계수들의 시퀀스에서 정확하게 하나의 부분에 포함된다. 윈도우 계수의 각 그룹들은 각 그룹의 어느 한 부분에 정확하게 속하지 않는 윈도우 계수들을 포함하지 않는다. 다시 말하면, 본 발명의 많은 실시예들에서는, 윈도우 계수들의 제1 그룹과 제2 그룹 각각은 추가적인 윈도우 계수들없이 윈도우 계수들의 제1 부분과 제2 부분을 포함한다.
본 명세서의 구조에서는, 윈도우 계수들의 시퀀스 중 연속적인 부분은 윈도우 계수들이 수학적인 의미에서 연결된 하나의 세트로 이해될 수 있으며, 여기서 세트는 각 부분의 윈도우 계수들의 범위(예를 들어, 인덱스 범위)에 놓여지게 되는 윈도우 계수들의 시퀀스에 비교하여 윈도우 계수가 부족하지 않다. 결과적으로, 본 발명의 많은 실시예들에서, 윈도우 계수들의 시퀀스는 윈도우 계수들의 두 개의 연속된 부분으로 정확히 나뉘어지며, 이는 윈도우 계수들의 제1 그룹 또는 제 2 그룹의 각각을 형성한다. 이러한 경우에, 윈도우 계수들의 제1 그룹에 포함된 각 윈도우 계수는 윈도우 계수들의 전체적인 연속에 있어서 윈도우 계수들의 제2 그룹의 앞 또는 뒤에 배치된다.
다시 말하면, 본 발명의 많은 실시예들에서 윈도우 계수들의 시퀀스는 어떤 윈도우 계수도 남김 없이 두개의 그룹 또는 부분으로 정확하게 나뉘어진다. 윈도우 계수들의 시퀀스에 따르면, 이는 윈도우 계수들의 순서를 나타내는데, 두 그룹 또는 부분의 각각은 경계 윈도우 계수(border window coefficient)까지(이를 제외)의 모든 윈도우 계수들 또는 경계 윈도우 함수부터(이를 포함)의 모든 윈도우 계수들을 포함한다. 예를 들면, 640 개의 윈도우 계수들(인덱스 0-639)을 갖는 윈도우 함수의 경우에는 제1 부분 또는 제1 그룹은 인덱스 0부터 95와 인덱스 96부터 639 까지의 윈도우 계수들을 포함할수 있다. 여기서, 경계 윈도우 계수는 인덱스 96에 해당될 수 있다. 당연히 다른 예도 가능하다.(예를 들어, 0 - 543, 544-639)
이하에서 설명하는 분석 필터뱅크의 상세한 구현예는 단지 2 블록의 시스템 지연을 야기하는 동안 10 블록의 입력 샘플을 커버하는 필터 길이(filter length)를 제공하는데, 위 지연은 MDCT(modified discrete cosine transform) 또는 MDST(modified discrete sine transform)에 의해 생긴다. MDCT 또는 MDST의 경우에는 1 블록에서 9 블록으로 오버랩(overlap)이 증가하는데, 이러한 하나의 차이점은 MDCT 또는 MDST의 구현예에 비하여 10 블록의 입력 샘플을 커버하는 더 긴 필터 길이에 기인한다. 그러나, 추가적인 구현예에서는 다른 수의 입력 샘플을 커버하도록 구현될 수 있으며, 여기서 입력 샘플이란 오디오 입력 샘플이라고 할 수 있다. 아울러 다른 절충안들 역시 고려되어 구현될 수 있다.
도 1은 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치의 일 실시예로서의 분석 필터뱅크(100)의 블록도를 나타낸다. 분석 필터뱅크(100)는 시간 영역 오디오 입력 샘플의 프레임(120)을 윈도우잉하기 위한 분석 윈도우어 (110)를 포함한다. 프레임(120)은 시간 영역 오디오 샘플의 130-1, ... , 130-T 의 T 블록을 포함하며, T는 양의 정수이며 도 1에 도시된 실시예의 경우에는 10이다. 여하튼, 프레임(120)은 다른 개수의 블록(130)들을 포함할 수 있다.
프레임(120)과 각 블록(130) 양자는 도 1의 화살표(140)에 의해 지시되는 시간 라인(time line)에 따르면, 선행 샘플부터 후행 샘플에 이르기까지의 시간 순서 에 따른 시간 영역 오디오 입력 샘플을 포함한다. 즉, 도 1에 도시된 바에 따르면, 시간 영역 오디오 입력 샘플이 오른쪽으로 갈수록, 시간 영역 오디오 샘플들의 시퀀스에 관해서 해당 시간 영역 오디오 샘플이 더 늦다.
분석 윈도우어(110)는 시간 영역 오디오 샘플들의 시퀀스에 기초하여 생성되며, 시간 영역에서 윈도우된 샘플들은 윈도우된 샘플의 프레임(150)에 배치된다. 시간 영역 오디오 입력 샘플의 프레임(120)에 따르면, 윈도우된 샘플(150)의 프레임은 윈도우된 샘플 160-1, ..., 160-T의 T 블록을 포함한다. 본 발명의 바람직한 실시예에서, 윈도우된 샘플(160)의 각 블록들은 시간 영역 오디오 입력 샘플의 각 블록(130)들의 시간 영역 오디오 입력 샘플의 수와 같은 수의 윈도우된 샘플들을 포함한다. 그러므로, 블록(130) 각각이 N 시간 영역 입력 오디오 샘플을 포함할 때, 프레임(120)과 프레임(150)은 각각 TㆍN 샘플들을 포함한다. 이 경우에, N은 양의 정수로서, 예를 들면 32 또는 64의 값을 가질 수 있다. T = 10인 경우에는, 프레임(120,150)은 위 경우에 각각 320과 640을 포함한다.
분석 윈도우어(110)는 분석 윈도우어(110)에 의해 제공된 윈도우된 샘플에 기초하여 오디오 서브밴드 값을 계산하기 위한 계산기(170)와 연결된다. 오디오 서브밴드 값은 계산기(170)에 의해 오디오 서브밴드 값의 블록(180)으로서 제공되며, 오디오 서브밴드 값의 각각은 하나의 오디오 서브밴드 채널에 대응된다. 바람직한 실시예에서는, 오디오 서브밴드 값의 블록(180)은 N 서브밴드 값을 포함한다.
오디오 서브밴드 채널의 각각은 특성 중심 주파수(characteristic center frequency)에 대응된다. 서로 다른 오디오 서브밴드 채널의 중심 주파수들은 예를 들면, 분석 필터뱅크(100)에 제공되는 시간 영역 오디오 입력 샘플에 의해 설명되는 바와 같이, 오디오 신호의 주파수 대역폭에 대해 동등하게 배분되거나 동등하게 위치하게 될 수 있다.
분석 윈도우어(110)는 프레임(150)의 윈도우된 샘플들을 생성하기 위해, 제1 개수의 윈도우 계수들을 가지는 일련의 윈도우 계수들을 포함하는 분석 윈도우 함수에 기초한 프레임(120)의 시간 영역 오디오 입력 샘플을 윈도우잉하도록 구성된다. 분석 윈도우어(110)는 시간 영역 오디오 샘플들의 값을 분석 윈도우 함수의 윈도우 계수들과 곱하여 시간 영역 오디오 샘플(120)의 프레임의 윈도우잉을 수행하도록 구성된다. 즉, 윈도우잉은 시간 영역 오디오 샘플들과 해당하는 윈도우 계수들을 엘리먼트 연산(element-wise) 방식으로 곱하는 것을 포함한다. 시간 영역 오디오 샘플의 프레임(120)과 윈도우 계수들 모두 상응하는 순서를 포함하는 것과 같이, 윈도우 계수들과 시간 영역 오디오 샘플들을 엘리먼트 연산(element-wise) 방식으로 곱하는 것은, 각각의 순서에 따라 수행되는데 예를 들면, 하나의 샘플과 윈도우 계수 인덱스에 의해 지시되는 바에 따른다.
본 발명의 실시예들에서, 시간 영역 오디오 입력 샘플들의 프레임을 윈도우잉하기 위한 윈도우 함수는 더 큰 제2 개수의 윈도우 계수들을 포함하는 더 큰 윈도우 함수에 기초하여, 도 3과 도 4에서 도시된 바와 같은 예에 의한 보간 방식을 이용함에 의해 생성된다. 더 큰 윈도우 함수는 전형적으로 짝수의 윈도우 계수들을 포함하고, 예를 들면 윈도우 계수들의 시퀀스에 관하여는 비대칭이 될 수도 있다. 아울러 대칭 윈도우 함수들이 이용될 수도 있다.
시간 영역 입력 샘플들의 프레임(120)을 윈도우잉 하기 위한 윈도우 함수(190)는 분석 윈도우어(110) 또는 더 큰 윈도우 함수의 윈도우 계수들을 보간하는 필터뱅크(100)에 의해 얻어질 수 있다. 본 발명에 따른 실시예들에서 이는, 예를 들면 더 큰 윈도우 함수의 연속적인 윈도우 계수들을 보간함에 의해 수행될 수 있다. 여기서 선형(linear), 다항식(polynomial) 또는 스플라인 기반(spline-based)의 보간 방식이 이용될 수 있다.
예를 들어, 더 큰 윈도우 함수의 각 윈도우 계수가 윈도우 함수의 윈도우 계수를 생성하는 데 이용되고 제2 개수가 짝수일 때, 윈도우 함수(190)(제1 개수)의 윈도우 계수들의 수는 제2 개수의 반이 된다. 그러한 보간은 선형 보간에 기초할 수 있으며, 선형 보간의 예는 이후에 수학식 15의 해당 설명 부분에서 설명한다. 그러나, 설명된 바와 같이, 또한 다른 보간 방식이 이용될 수도 있다.
도 1에 도시된 바와 같은 분석 필터뱅크(100)의 형태의 본 발명의 실시예들에서는, 합성 필터뱅크의 경우에 합성 윈도우 함수뿐만 아니라 분석 윈도우 함수도 예를 들어 실수 윈도우 계수(real-valued windowed coefficients)만을 포함할 수도 있다. 즉, 윈도우 계수 인덱스에 귀착되는 각 윈도우 계수는 실수 값을 가진다.
윈도우 계수들은 모두 각자의 윈도우 함수를 형성하는데, 분석 윈도우 함수(190)로서 도 1에 그 예가 도시되어 있다. 이하에서는 윈도우 함수들이 고려되는데, 이는 앞서 언급한 필터뱅크의 해당 설명 부분에서 이용될 때 지연의 감소를 허용한다. 그러나, 본 발명의 실시예들은 그러한 저지연 윈도우 함수들에 한정되지는 않는다.
분석 윈도우 함수(190)를 형성하는 윈도우 계수들의 시퀀스는 윈도우 계수들의 제1 그룹(200)과 제2 그룹(210)을 포함한다. 제1 그룹(200)은 윈도우 계수들의 시퀀스에서 윈도우 계수의 연속적이고 연결된 제1 부분을 포함하며, 제2 그룹(210)은 윈도우 계수의 연속적이고 연결된 제2 부분을 포함한다. 이들은 제1 그룹(200)의 제1 부분과 함께, 분석 윈도우 함수(190)의 윈도우 계수들의 시퀀스 전체를 형성한다. 게다가, 윈도우 계수들의 시퀀스에서 각 윈도우 계수는 윈도우 계수들의 제1 부분 또는 제2 부분 중 어느 하나에 속하게 되고, 전체 분석 윈도우 함수(190)는 제1 부분과 제2 부분의 윈도우 계수를 포함한다. 도 1의 상응하는 화살표(200,210)에 표시된 바와 같이, 윈도우 계수의 제1 부분은 윈도우 계수의 제1 그룹(200)과 동일하고, 윈도우 계수의 제2 부분은 윈도우 계수들의 제2 그룹(210)과 동일하다.
윈도우 계수의 제1 부분의 제1 그룹(200)에 있는 윈도우 계수들의 수는 윈도우 계수들의 제2 부분의 제2 그룹에 있는 윈도우 계수들의 수보다 작다. 그러나, 제1 그룹(200)에 있는 윈도우 계수들의 에너지 값 또는 전체 에너지 값은 제2 그룹(210)에 있는 윈도우 계수들의 에너지 값 또는 전체 에너지 값보다 높다. 이후에 설명하겠지만, 한 셋트의 윈도우 계수들의 에너지 값은 해당하는 윈도우 계수들의 절대값들의 제곱들의 합에 기초한다.
본 발명의 실시예들에 따르면, 합성 윈도우 함수뿐만 아니라 분석 윈도우 함수(190)는 그런 이유로, 윈도우 계수들의 순서 또는 윈도우 계수의 인덱스에 관련하여 비대칭이 될 수도 있다. 분석 윈도우 함수(190)가 정의된 윈도우 계수 인덱 스의 정의 세트에 기초하여 윈도우 계수 (n0-n)과 (n0+n)이 정의 세트에 속할 때, 분석 윈도우 함수(190)는 윈도우 계수 인덱스 (n0-n)의 절대값이 윈도우 계수 인덱스 (n0+n)에 해당하는 윈도우 계수의 절대값과 동일하지 않도록 하는 모든 실수 n과 추가적인 실수 n0가 존재할 때, 비대칭이 된다.
게다가, 도 1에 또한 개략적으로 보여지듯이, 분석 윈도우 함수(190)는 2개의 연속적인 윈도우 계수들의 곱(product)이 음의 값이 되는 부호 변화들을 포함한다. 본 발명의 실시예들에 따른 가능한 윈도우 함수들의 세부 사항 및 추가적인 특징들은 도 11 내지 도 19의 해당 설명 부분에서 보다 자세히 설명한다.
이미 설명한 바와 같이, 윈도우된 샘플(150)의 프레임은, 개개의 시간 영역 입력 샘플의 프레임(120)으로서 개개의 블록들 160-1, ..., 160-T와 같은 유사한 블록 구조를 포함한다. 분석 윈도우어(110)가 시간 영역 오디오 입력 샘플들과 분석 윈도우 함수(190)의 윈도우 계수들을 곱함으로써 시간 영역 오디오 입력 샘플들을 윈도우잉하도록 적용됨에 따라, 윈도우된 프레임(150) 또한 시간 영역 상에 존재한다. 계산기(170)는 오디오 서브밴드 값을 계산하거나, 좀 더 정확하게는 윈도우된 샘플들의 프레임(150)을 이용하여 오디오 서브밴드 값의 블록(180)을 계산하고, 시간 영역으로부터 주파수 영역으로의 이동을 수행한다. 계산기(170)는 그런 이유로 시간/주파수 변환기(time/freq converter)로 고려될 수 있으며, 윈도우된 샘플들의 프레임(150)의 스펙트럴 표현(spectral representation)으로서 오디오 서브밴드 값의 블록(180)을 제공할 수 있다.
블록(180)의 각 오디오 서브밴드 값은 특성 주파수를 가지는 하나의 서브밴드에 상응한다. 블록(180)에 포함된 오디오 서브밴드 값의 수는 또한 때때로 밴드의 수로 언급되어 진다.
본 발명의 많은 실시예들에서는, 블록(180)의 오디오 서브밴드 값의 수는 프레임(120)의 블록(130) 각각의 시간 영역 오디오 입력 샘플의 수와 동일하다. 윈도우된 샘플의 프레임(150)이 프레임(120)과 동일한 블록 방식(block-wise)의 구조로 포함되어, 윈도우된 샘플의 블록(160) 각각이 또한 시간 영역 오디오 입력 샘플(130)의 블록과 동일한 수의 윈도우 샘플들을 포함하는 경우에, 오디오 서브밴드 값의 블록(180)이 또한 당연히 블록(160)과 같은 수를 포함한다.
프레임(120)은 시간 방향을 가리키는 화살표(140)의 방향과 반대 방향으로 한 블록씩 블록들 130-1, ..., 130-(T-1)을 시프트함에 의해 새로운 시간 영역 오디오 입력 샘플들(220)에 기초하여 선택적으로 생성될 수 있다. 그리하여, 시간 영역 오디오 입력 샘플의 프레임(120)은 시간 영역 오디오 샘플들의 바로 선행하는 프레임(120)의 (T-1)의 가장 나중(latest) 블록들을 선행(earlier) 시간 영역 오디오 샘플들의 방향으로 한 블록씩 시프트하고, 현재 프레임(120)의 가장 나중(latest) 시간 영역 오디오 샘플을 포함하는 새로운 블록(130-1)으로서 새로운 시간 영역 오디오 샘플들의 새로운 블록(220)을 부가함으로써 생성된다. 이는 도 1에서 일련의 점선으로 된 화살표(230)에 의해 표시되어 있는데, 이는 블록들 130-1, ..., 130-(T-1)을 화살표(140)의 반대 방향으로 시프트하는 것을 표시하고 있다.
화살표(140)에 의해 표시되듯이 시간의 반대 방향으로 블록들(130)을 시프트하는 것 때문에, 프로세싱될 현재 프레임(120)은, 새로운 블록 130-T로서, 직접적으로 선행하는 프레임(120)의 블록 130-(T-1)을 포함한다. 이에, 현재 프레임(120)의 프로세싱될 블록들 130-(T-1), ..., 130-2 이 바로 선행하는 프레임(120)의 블록들 130-(T-2), ..., 130-1과 일치한다. 직접적으로 선행하는 프레임(120)의 블록 130-T는 버려진다.
결과적으로, 새로운 블록(220)의 각 시간 영역 오디오 샘플은 시간 영역 오디오 입력 샘플들의 T 개의 연속적인 프레임(120)의 T 회 연속적인 프로세싱의 구조에서 T 회 프로세싱될 것이다. 그러므로, 새로운 블록(220)의 각 시간 영역 오디오 입력 샘플은 T 개의 다른 프레임(120)뿐만 아니라, 윈도우된 샘플의 T 다른 프레임(150)과 오디오 서브밴드 값의 T 개의 블록(180)에 기여한다. 이미 언급된 바와 같이, 본 발명에 따른 바람직한 실시예에서, 프레임(120)의 블록 T의 개수는 10이며, 분석 필터뱅크(100)에 제공되는 각 시간 영역 오디오 샘플은 오디오 서브밴드 값의 10개의 다른 블록(180)에 기여한다.
하나의 프레임(120)이 분석 필터뱅크(100)에 의해 프로세싱되기 전 처음에는, 프레임(120)이 하나의 작은 절대값(미리 정해진 임계치 이하), 예를 들면 0으로 초기화될 수 있다. 이하에서 더 상술하겠지만, 분석 윈도우 함수(190)의 형태는 중심 지점(center point) 또는 "질량 중심(center of mass)"을 포함하며, 이는 전형적으로 제1 그룹(200)의 두 개의 윈도우 계수 인덱스들 사이에 해당되거나 놓여진다.
결과적으로, 프레임(120)의 부분들을 에너지 값의 견지에서 볼 때, 프레임(120)이, 중요한 기여를 하는 윈도우 계수들에 해당하는 소멸하지 않는 값(non-vanishing values)(다시 말하면, 0이 아닌 값들)들로 최소한 어느 지점까지 채워지기 전에는, 프레임(120)에 삽입될 새로운 블록(220)의 개수는 작다. 전형적으로, "의미있는" 프로세싱이 시작될 수 있기 전에, 프레임(120)에 삽입될 블록들의 수는 분석 윈도우 함수(190)의 형태에 따라 2 내지 4 블록이 된다. 그리하여, 분석 필터뱅크(100)는 예를 들어 대칭 윈도우 함수를 이용하는 해당 필터뱅크보다 더 빨리 블록(180)을 제공할 수 있다. 전형적으로 새로운 블록(220)이 분석 필터뱅크(100)에 전체적으로 제공됨에 따라, 각 새로운 블록들은 기록(recording) 또는 샘플링(sampling) 시간에 대응되는데, 이러한 기록 시간 또는 샘플링 시간은 근본적으로 블록(220)의 길이(즉, 블록(220)에 포함되는 시간 영역 오디오 입력 샘플의 수)와 샘플링율 또는 샘플링 주파수에 의해 주어진다. 그러므로, 분석 윈도우 함수(190)는 본 발명의 일 실시예에 통합되는 바와 같이, 오디오 서브밴드 값의 제1 및 다음 블록(180)이 필터뱅크(100)에 의해 제공되거나 출력될 수 있기에 앞서 감소된 지연을 도출해낼 수 있다.
추가적인 선택 사항으로서, 장치(100)는 신호를 생성하거나, 프레임(180)을 생성하는 데 사용되는 분석 윈도우 함수(190) 또는 합성 필터뱅크의 구조에서 사용되는 합성 윈도우 함수에 관한 정보를 통합할 수 있다. 이에, 분석 필터 함수(190)는 예를 들어 합성 필터뱅크에 의해 사용되는 합성 윈도우 함수의 시간 ㅂ반전(time-reversed)된 버전 또는 인덱스-반전(index-reversed)된 버전이 될 수 있 다.
도 2a는 오디오 서브밴드 값의 블록에 기초한 시간 영역 오디오 샘플을 생성하기 위한 장치(300)의 일 실시예에 관한 블록도를 나타낸다. 이미 앞서 설명한 바와 같이, 시간 영역 오디오 샘플을 생성하기 위한 장치(300)의 형태를 가지는 본 발명에 따른 일 실시예는 합성 필터뱅크(300)로 불려진다. 이는, 상기 장치는 오디오 신호에 관한 스펙트럴 정보(spectral information)를 포함하는 오디오 서브밴드 값에 기초한 시간 영역 오디오 샘플들을 생성할 수 있기 때문이며, 시간 영역 오디오 샘플들은 원칙적으로 재생이 될 수 있다. 이에, 합성 필터뱅크(300)는 오디오 서브밴드 값에 기초하여 시간 영역 오디오 샘플들을 합성할 수 있으며, 오디오 서브밴드 값들은 예를 들면 해당하는 분석 필터뱅크(100)에 의해 생성될 수 있다.
도 2a는 계산기(310)를 포함하는 합성 필터뱅크(300)의 블록도를 나타내며, 계산기(310)에는 오디오 서브밴드 값(주파수 영역의 값)의 블록(320)이 제공된다. 계산기(310)는 블록(320)의 오디오 서브밴드 값로부터 일련의 중간 시간 영역 샘플들을 포함하는 프레임(330)을 계산할 수 있다. 중간 시간 영역 샘플들을 포함하는 프레임(330)은 본 발명에 따른 많은 실시예들에서, 예를 들어 도 1의 분석 필터뱅크(100)의 윈도우된 샘플의 프레임(150)과 유사한 블록 구조를 포함한다. 이러한 경우에, 프레임(330)은 중간 시간 영역 샘플들의 블록 340-1, ..., 340-T을 포함한다.
중간 시간 영역 샘플들의 각 블록(340)뿐만 아니라 프레임(330)의 중간 시간 영역 샘플들의 순서는 도 2a의 화살표(350)가 가리키는 시간에 따른 순서를 포함한다. 결과적으로, 프레임(330)은 블록 340-T의 선행 중간 시간 영역 샘플과 블록 340-1의 가장 나중(latest) 중간 시간 영역 샘플을 포함하며, 이들은 프레임(330)에 대한 처음(first)과 마지막(last) 중간 시간 영역 샘플을 각각 나타낸다. 또한, 블록(340)의 각각은 유사한 순서를 포함한다. 결과적으로, 합성 필터뱅크의 실시예들에서 "프레임" 및 "시퀀스"의 용어들은 같은 의미로 사용될 수 있다.
계산기(310)는 합성 윈도우어(360)와 연결되며, 합성 윈도우어(360)에 중간 시간 영역 샘플들의 프레임(330)이 제공된다. 합성 윈도우어는 도 2a에 도시된 합성 윈도우 함수(370)를 이용하여 중간 시간 영역 샘플들의 순서를 윈도우잉하도록 구성된다. 출력으로서, 합성 윈도우어(360)는 윈도우된 중간 시간 영역 샘플들의 프레임(380)을 제공하는데, 이러한 중간 시간 영역 샘플들은 또한 블록 390-1, ..., 390-T의 블록 방식(block-wise)의 구조를 포함한다.
프레임(330)과 프레임(380)은 각각 T 블록(340)과 T 블록(390)을 포함할 수 있는데, 여기서 T는 양의 정수이다. 본 발명에 따른 바람직한 실시예에서는, 블록 T의 수는 10이다. 그러나, 다른 실시예들에서는, 양 프레임 중 어느 하나의 프레임에 다른 수의 블록이 포함될 수도 있다. 좀 더 정확하게는, 원칙적으로 블록 T의 수는 3과 같거나 크거나, 또는 4와 같거나 클 수 있는데, 이는 구현 환경과 이미 설명한 바와 같이 분석 필터뱅크(100)와 합성 필터뱅크(300) 양자 모두를 위한 블록 방식 구조의 프레임을 포함하는 본 발명의 실시예들에 따른 절충안에 따라 달라진다.
분석 윈도우어(360)는 오버랩-가산기 출력 스테이지(400)와 연결되는데, 오버랩-가산기 출력 스테이지(400)는 윈도우된 중간 시간 영역 샘플들의 프레임(380)이 제공된다. 오버랩-가산기 출력 스테이지(400)는 시간 영역 샘플들의 블록(410)을 생성하기 위해 윈도우된 중간 시간 영역 샘플들을 프로세싱할 수 있다. 시간 영역 (출력) 샘플의 블록(410)에는 예를 들어 추가적인 프로세싱, 저장 또는 가청 오디오 신호로의 변환을 위해 추가적인 구성이 제공될 수 있다.
프레임(330)에 포함된 시간 영역 샘플들의 시퀀스를 계산하기 위한 계산기(310)는 주파수 영역으로부터 시간 영역으로 데이터를 변환할 수 있다. 그러므로, 계산기(310)는 오디오 서브밴드 값의 블록(320)에 포함된 스펙트럴 표현의 시간 영역 신호를 생성할 수 있는 주파수/시간 변환기(frequency/time converter)로 포함될 수 있다. 도 1에 도시된 분석 필터뱅크(100)의 계산기(170)의 해당 설명 부분에 설명된 바와 같이, 블록(320)의 오디오 서브밴드 값의 각각은 특성 중심 주파수를 가지는 오디오 서브밴드 채널에 대응된다.
이에 대비하여, 프레임(330)에 포함된 중간 시간 영역 샘플들은 원칙적으로 시간 영역 상의 정보를 나타낸다. 합성 윈도우어(360)는 도 2a에 도시된 바와 같이 합성 윈도우 함수(370)를 이용하여 프레임(330)에 포함된 중간 시간 영역 샘플들의 시퀀스를 윈도우잉을 할 수 있으며, 윈도우잉을 하도록 구성된다.
도 1의 해당 설명 부분에서 설명된 바와 같이, 합성 윈도우어(360)는 또한 합성 윈도우 함수(370)를 이용하는데, 합성 윈도우 함수(370)는 제2 개수의 윈도우 계수들을 포함하는 더 큰 윈도우 함수의 보간에 의해 얻어질 수 있다. 그래서, 제 2 개수는 프레임(330)의 중간 시간 영역 샘플들의 윈도우잉을 위해 이용되는 합성 윈도우 함수(370)의 제1 개수의 윈도우 계수들보다 크다.
합성 윈도우 함수(370)는 예를 들어, 합성 윈도우어(360) 또는 이미 설명한 보간 방식 중 어느 하나를 수행하는 필터뱅크(300)에 의해 얻어질 수 있다. 합성 윈도우 함수의 윈도우 계수는 예를 들면, 선형, 다항식 또는 스플라인 기반의 보간 방식에 의해 생성될 수 있다. 게다가, 본 발명에 따른 실시예들에서는 이러한 보간은 더 큰 윈도우 함수의 연속적인 윈도우 계수들을 이용하는 것에 기초할 수 있다. 더 큰 윈도우 함수의 각 윈도우 계수가 정확히 한 번 이용될 때, (더 작은) 제1 개수의 윈도우 계수들을 포함하는 윈도우 함수(370)는 예를 들어, 더 큰 윈도우 함수의 윈도우 계수들의 수의 정확히 절반을 포함할 수 있다. 이때, 제2 개수는 짝수이다. 다시 말하면, 이러한 경우에 제2 개수는 제1 개수의 두 배가 될 수 있다. 그러나, 다른 보간 시나리오 및 방식 역시 본 발명에 따른 실시예들의 구조에서 구현될 수 있다.
다음에서는, 소위 저지연 윈도우 함수의 경우를 좀 더 자세히 설명할 것이다. 이미 언급한 바와 같이, 본 발명의 실시예들은 단연코 이러한 윈도우 함수들에 한정되지 않는다. 또한 다른 윈도우 함수 예를 들어, 대칭 윈도우 함수들도 이용될 수 있다.
합성 윈도우 함수(370)는 일련의 윈도우 계수들을 포함하는데, 윈도우 계수들은 윈도우 계수의 제1 그룹(200)과 제2 그룹(210)을 가지는 윈도우 함수(190)의 해당 설명 부분에서 설명된 바와 같이, 윈도우 계수들의 제1 그룹(420)과 제2 그 룹(430)을 포함한다.
합성 윈도우 함수(370)의 윈도우 계수들의 제1 그룹(420)은 윈도우 계수들의 시퀀스에서 제1 연속 부분을 포함한다. 유사하게 윈도우 계수들의 제2 그룹(430)은 윈도우 계수들의 시퀀스에서 제2 연속 부분을 포함하는데 여기서, 제1 부분은 제2 부분보다 더 적은 윈도우 계수들을 포함하고, 제1 부분의 윈도우 계수들의 에너지 값 또는 전체 에너지 값은 제2 부분의 윈도우 계수들의 해당하는 에너지 값들 보다 높다. 합성 윈도우 함수(370)의 추가적인 특징들 및 특성들은 도 1에서 도시된 바와 같이 분석 윈도우 함수(190)의 해당 특징들에 유사할 수 있다. 결과적으로, 분석 윈도우 함수(190)의 구조에서 해당 설명 부분과 도 11 내지 도 19에 관련된 윈도우 함수의 추가적인 설명 부분이 여기에서 참조될 수 있으며, 제1 그룹(200)은 제1 그룹(420)에 대응되고, 제2 그룹(210)은 제2 그룹(430)에 대응된다.
예를 들어, 윈도우 계수들의 두 그룹(420,430)에 포함되는 부분들은 전형적으로 윈도우 함수(370)의 윈도우 계수들 중 모든 윈도우 계수들을 포함하는 각각 연속적이고 연결된 일련의 윈도우 계수들을 형성한다. 본 발명에 따른 많은 실시예들에서, 도 1에 도시된 분석 윈도우 함수(190)와 도 2a에 도시된 합성 윈도우 함수(370)는 서로에 기초하고 있다. 예를 들면, 분석 윈도우 함수(190)는 시간 반전된 또는 인덱스 반전된 버전의 합성 윈도우 함수(370)가 될 수 있다. 그러나, 또한 두 윈도우 함수들(190,370) 사이에 다른 관계가 있을 수도 있다. 합성 윈도우어(360)의 구조에서는 합성 윈도우 함수(370)를 이용하는 것이 더 좋을 수 있는데, 이는 분석 윈도우 함수(190)와 관련이 있으며 합성 필터뱅크(300)에 제공되는 오디 오 서브밴드의 블록(320)의 생성(선택적으로 추가적인 변형에 앞서) 과정에서 이용된 바 있다.
도 1의 해당 설명 부분에서 설명되었듯이, 도 2a의 합성 필터뱅크(300)는 입력되는 블록(320)이 윈도우 함수들에 관한 부가적인 신호들 또는 부가적인 정보들을 포함할 수 있도록 선택적으로 구성될 수 있다. 예를 들면, 블록(320)은 블록(320)을 생성하는 데 이용되는 분석 윈도우 함수(190) 또는 합성 윈도우어(360)에 의해 사용되는 합성 윈도우 함수(370)에 관한 정보들을 포함할 수 있다. 그러므로, 필터뱅크(300)는 각 정보를 분리시키고 합성 윈도우어(360)에 이것을 제공하도록 구성될 수 있다.
오버랩-가산기 출력 스테이지(400)는 프레임(380)에 포함되는 윈도우된 중간 시간 영역 샘플들을 프로세싱함에 의해 시간 영역 샘플의 블록(410)을 생성할 수 있다. 본 발명에 따른 다른 실시예들에서는, 오버랩-가산기 출력 스테이지(400)는 윈도우된 중간 시간 영역 샘플의 이미 수신된 프레임(380)을 일시적으로 저장하기 위한 메모리를 포함한다. 구현예의 상세 구성에 따라, 오버랩-가산기 출력 스테이지(400)는 예를 들어 윈도우된 중간 시간 영역 샘플들의 T 프레임 전체를 저장하기 위한 T개의 다른 저장 위치로 포함될 수 있다. 그러나, 다른 수의 저장 위치가 요구되는 바에 따라 오버랩-가산기 출력 스테이지(400)에 저장될 수도 있다. 더구나, 본 발명에 따른 다른 실시예들에서는, 오버랩-가산기 출력 스테이지(400)는 중간 시간 영역 샘플의 싱글 프레임(380) 하나에 기초하여 시간 영역 샘플의 블록(410)을 제공할 수도 있다. 다른 합성 필터뱅크(300)의 실시예들에 관해서는 이 후에 더 상세하게 설명한다.
도 2b는 합성 필터뱅크(300)의 형태를 가지는 본 발명의 일 실시예에 따른 동작 원리를 도시하고 있으며, 보간에 의한 윈도우 함수(370)의 생성은 구성의 단순성을 위해서만 초점이 맞추어져 있지는 않다.
오디오 서브밴드 값의 블록(320)은 계산기(310)에 의해 먼저 주파수 영역에서 시간 영역으로 변환되며, 이는 도 2b에 화살표(440)에 의해 도시되어 있다. 중간 시간 영역 샘플들의 블록 340-1, ..., 340-T를 포함하는 중간 시간 영역 샘플들의 결과적인 프레임(320)은, 윈도우된 중간 시간 영역 샘플들의 프레임(380)을 생성하기 위해, 프레임(320)의 중간 시간 영역 샘플들의 시퀀스와 합성 윈도우 함수(370)의 윈도우 계수들의 시퀀스를 곱함으로써 합성 윈도우어(360)에 의해 윈도우된다. 프레임(380)은 윈도우된 중간 시간 영역 샘플들의 블록 390-1, ..., 390-T를 다시 ㅍ포함하며, 이는 윈도우된 중간 시간 영역 샘플들의 프레임(380)을 형성한다.
본 발명에 따른 합성 필터뱅크(300)의 도 2b에 도시된 실시예에서, 오버랩-가산기 출력 스테이지(400)는 블록(410)의 시간 영역 오디오 샘플들의 각 인덱스 값에 대해 다른 프레임(380)들의 하나의 블록(390)의 윈도우된 중간 시간 영역 샘플들을 더함으로써, 시간 영역 출력 샘플의 블록(410)을 생성할 수 있다. 도 2b에 도시된 바와 같이, 블록(410)의 시간 영역 오디오 샘플들은 각각의 오디오 샘플 인덱스에 대해 이는 현재 라운드(round)에서 합성 윈도우어(360)에 의해 프로세싱된 프레임(380)의 블록(390-1)의 하나의 윈도우된 중간 시간 영역 샘플과, 이미 설명 한 바와 같이 오버랩-가산기 출력 스테이지(400)에서 저장 위치에 저장된 프레임(380) 전에 즉시 프로세싱된 프레임(380-1)의 두번째 블록(390-2)의 해당하는 중간 시간 영역 샘플을 더함으로써 생성될 수 있다. 도 2b에 도시된 바와 같이, 합성 필터뱅크(300)에 의해 이전에 프로세싱된 추가적인 블록들(390)(예를 들어, 프레임(380-2)의 블록(390-3), 프레임(380-3)의 블록(390-4), 프레임(380-4)의 블록(390-5))의 추가적인 해당 윈도우된 중간 시간 영역 샘플들이 이용될 수 있다. 프레임(380-2,380-3,380-4)들과 선택적으로 추가된 프레임(380)이 이전 라운드에서 합성 필터뱅크(300)에 의해 프로세싱되었다. 프레임(380-2)는 프레임(380-1) 이전에 바로 프로세싱되고, 따라서 프레임(380-3)은 프레임(380-2) 이전에 바로 생성되었으며, 다른 것들도 이와 같다.
본 발명의 실시예에서 이용되는 오버랩-가산기 출력 스테이지(400)는 시간 영역 (출력) 샘플들의 블록(410)의 각 인덱스에 대해 T 다른 프레임들(380, 380-1, ..., 380-(T-1))로부터 윈도우된 중간 시간 영역 샘플들의 T 다른 블록들(390-1, ... , 390-T)를 합산한다. 그리하여, 프로세싱된 첫번째 T 블록과는 별도로, 블록(410)의 시간 영역 (출력) 샘플들 각각은 오디오 서브밴드 값의 T 개의 다른 블록들(320)에 기초한다.
도 1에 도시된 본 발명인 분석 필터뱅크(100)의 실시예의 경우와 같이, 합성 윈도우 함수(370)의 형태 때문에, 합성 필터뱅크(300)는 시간 영역 (출력) 샘플들의 블록(410)을 빨리 제공할 수 있는 기회를 제공한다. 이는 또한 윈도우 함수(370)의 형태의 결과이다. 원도우 계수들의 제1 그룹(420)은 더 높은 에너지 값 에 대응되고 제2 그룹(430)보다 더 적은 윈도우 계수들을 포함하기 때문에, 합성 윈도우어(360)는, 중간 시간 영역 샘플의 프레임(330)이 채워져서 적어도 제1 그룹(420)의 윈도우 계수들이 프레임(380)에 기여하게 될 때, 윈도우된 샘플들의 "의미있는" 프레임(380)을 제공할 수 있다. 제2 그룹(430)의 윈도우 계수들은 그들의 더 작은 에너지 값 때문에 더 작은 기여를 나타낸다.
그러므로, 초기에 합성 필터뱅크(300)가 0으로 초기화될 때, 블록(410)의 제공은 원칙적으로 오디오 서브밴드의 단지 몇 블록(320)만이 합성 필터뱅크(300)에 의해 수신되었을 때 시작될 수 있다. 그래서, 또한 합성 필터뱅크(300)는 예를 들어, 대칭 합성 윈도우 함수를 가지는 합성 필터뱅크에 비교하여 상당한 지연 감소를 가능하게 한다.
이미 설명된 바와 같이, 도 1 및 도 2a에 도시된 실시예들의 계산기(170,310)는 블록(180,320) 각각의 실수 오디오 서브밴드 값을 생성하거나 프로세싱할 수 있는 실수 계산기(real valued-calculators)로서 구현될 수 있다. 이러한 경우, 계산기는 예를 들어 사인 함수 또는 코사인 함수와 같은 조화 진동 함수에 기초한 실수 계산기로서 구현될 수 있다. 그러나, 복소수 계산기(complex-valued calculators)도 계산기(170,310)로서 구현될 수 있다. 이러한 경우, 계산기들은 예를 들어, 복소 지수 함수(complex exponential-functions) 또는 다른 조화 복소수 함수(harmonic complex-valued functions)에 기초하여 구현될 수 있다. 실수 또는 복소수 진동의 주파수들은 대개 오디오 서브밴드 값의 인덱스에 의존하며, 이는 때때로 밴드 인덱스(band index) 또는 특정 서브밴드의 서브밴드 인덱 스(the subband index)로 불려지곤 한다. 더구나, 주파수는 해당 서브밴드의 중심 주파수와 동일하거나 이에 의존할 수 있다. 예를 들어, 진동의 주파수는 하나의 상수 인자(constant factor)에 의해 곱해지거나 해당 서브밴드의 중심 주파수에 관하여 시프트될 수 있으며, 위 두 변경의 조합에 의존할 수도 있다.
복소 계산기(170,310)는 실수 계산기에 기초하여 구성되거나 구현될 수 있다. 예를 들어, 복소 계산기에 대한 효율적인 구현은 원칙적으로, 복소 구성(complex-valued component)의 실수 부분과 허수 부분을 나타내는 필터뱅크의 코사인 변조와 사인 변조 부분 모두에 사용될 수 있다. 이는 예를 들어, 변경된 DCT-IV와 DST-IV 구조에 기초한 코사인 변조 부분과 사인 변조 부분을 모두 구현하는 것이 가능하다는 것을 의미한다. 더구나, 추가적인 구현예에서는 하나의 푸리에 변환을 이용하거나 또는 그 대신 각 변환을 위한 하나의 분리된 푸리에 변환 단계를 이용하여, 복소 변조 계산기의 실수 부분과 허수 부분 모두에 결합하여 선택적으로 구현되는 푸리에 변환을 이용하도록 채택될 수 있다.
수학적 설명
이하에서는 8 블록의 다중 오버랩(multiple overlaps)과 한 블록의 지연을 갖는 분석 필터뱅크와 합성 필터뱅크의 실시예들을 설명할 것인데, 8 블록의 다중 오버랩은, 이미 설명한 바와 같이, 추가적인 지연을 발생시키지 않고, 미래로의 한 블록은 MDCT/MDST 구조(MDCT = Modified Discrete Cosine Trasnform)에서와 동일한 지연을 발생시킨다. 즉, 다음의 예에서는 파라미터 T가 10이다.
먼저, 복소 변조된 저지연 분석 필터뱅크를 설명한다. 도 1에 도시된 바와 같이, 분석 필터뱅크(100)는 분석 윈도우어(110)에 의해 수행되는 분석 윈도우잉의 변환과, 계산기(170)에 의해 수행되는 분석 변조(analysis modulation)를 포함한다. 분석 윈도우잉은 다음 수학식에 기초한다.
여기서, zl ,n은 도 1에 나타난 프레임(150)의 블록 인덱스 i와 샘플 인덱스 n에 해당하는 (실수) 윈도우된 샘플이다. xi ,n 값은 동일한 블록 인덱스 i와 샘플 인덱스 n에 해당하는 (실수) 시간 입력 샘플이다. 분석 윈도우 함수(190)는 실수 윈도우 계수 w(n)에 의해 수학식 1과 같이 표현되며, 여기서 n은 수학식 1에 나타난 범위의 윈도우 계수이다. 이미 설명한 바와 같이 파라미터 N은 하나의 블록(220), 블록(130), 블록(160), 블록(180)에 있는 샘플의 수이다.
분석 윈도우 함수의 변수 w(10N-1-n)로부터, 분석 윈도우 함수는 합성 윈도우 함수의 반전된 버전(flipped version) 또는 시간 반전된 버전을 표현하는 것으로 보일 수 있는데, 이는 실제로 윈도우 계수 w(n)에 의해 표현된다.
도 1에 나타난 실시예에서 계산기(170)에 의해 수행되는 분석 변조는 다음 두 수학식에 기초하는데,
이때, 스펙트럴 계수 인덱스(spectral coefficient index) 또는 밴드 인덱스 k는 아래 수학식 4의 범위의 정수이다.
XReal ,i,k와 XImag ,k,k는 블록(180)의 블록 인덱스 i와 스펙트럴 계수 인덱스 k에 해당하는 복소수 오디오 서브밴드 값의 실수 부분과 허수 부분을 나타낸다. 파라미터 n0는 인덱스 옵션(index option)을 나타내는데, 이는 아래 수학식 5와 같다.
해당하는 복소 변조된 저지연 합성 필터뱅크는 다음에 설명할 합성 변조, 합성 윈도우잉 그리고 오버랩-가산의 변환 단계를 포함한다.
합성 변조(synthesis modulation)는 다음의 수학식에 기초한다.
여기서, x'i ,n은 샘플 인덱스 n과 블록 인덱스 i에 해당하는 프레임(330)의 중간 시간 영역 샘플이다. 다시 말하자면, 파라미터 N은 블록(320), 블록(340), 블록(390), 블록(410)의 길이를 나타내는 정수인데, 이는 또한 프레임들(330,380)의 변환 블록 길이(transform block length) 또는 블록 방식의 구조때문에 이전 블록에 대한 오프셋(offset)으로 불린다. 또한, 스펙트럴 계수 인덱스 k와 오프셋 n0와 같은 추가적인 변수와 파라미터가 위에서 도입되었다.
합성 윈도우잉은 도 2a에 나타난 실시예에서 합성 윈도우어(360)에 의해 수행되는데, 이는 다음의 수학식에 기초한다.
여기서, z'i ,n은 프레임(380)의 샘플 인덱스 n과 블록 인덱스 i에 해당하는 윈도우된 중간 시간 영역 샘플의 값이다.
오버랩-가산의 변환 스탬프(stamp)는 다음의 수학식에 기초한다.
여기서, outi ,n은 샘플 인덱스 n과 블록 인덱스 i에 해당하는 시간 영역 (출력) 샘플을 나타낸다. 따라서 수학식 8은 도 2b의 하단부에 도시된 바와 같이 오버랩-가산 동작을 수행된 오버랩-가산기 출력 스테이지(400)로 도시하고 있다.
하지만, 본 발명에 따른 실시예들은 이러한 필터뱅크들 중 어느 하나와 함께 오디오 신호 프로세싱을 허락하는 복소 변조 저지연 필터뱅크들에 한정되지 않는다. 좀 더 개선된 저지연 오디오 코딩을 위한 저지연 필터뱅크의 실수 구현 또한 구현될 수 있다. 대조적으로, 예를 들어, 수학식 2 와 수학식 6은 코사인 부분의 견지에서 나타나 있고, 분석 변조와 합성 변조의 코사인 기여분은 MDCT의 것을 고려할 때, 비교할 만한 구조를 보여준다. 디자인 방법은 원칙적으로 시간에 관한 양 방향에서 MDCT의 연장을 허용함에도 불구하고, 여기서는 단지 E(=T-2) 블록의 과거로의 연장이 적용되고, 여기서 T 블록의 각각은 N 샘플들을 포함한다. N-채널 내 밴드 k와 블록 i의 주파수 계수 Xi ,k 또는 N-밴드 분석 필터뱅크는 다음와 같이 정리될 수 있는데,
여기서, 스펙트럴 계수 인덱스 k는 수학식 4에서 정의된 바와 같다. 여기서, n은 샘플 인덱스이고 wa(n)는 분석 윈도우 함수이다.
좀 더 완벽하게는, 앞서 설명한 복수 저지연 분석 필터뱅크의 수학적 설명은 코사인 함수를 복소 지수 함수로 바꾸어 수학식 9와 같은 정리 형식으로 나타낼 수 있다. 좀 더 정확하게는, 앞서 주어진 정의와 변수들을 가지고, 수학식 1, 수학식 2, 수학식 3, 수학식 5는 다음 수학식에 따라 정리되어 확장될 수 있는데,
여기서, 수학식 2 및 수학식 3에 대조하여 8 블록의 과거로의 연장은 변수 E(=8)에 의해 대체된다.
수학식 6과 수학식 7의 복소 경우에 설명된 바와 같이, 합성 변조와 합성 윈도우잉의 단계들이 실수 합성 필터뱅크의 경우에 정리될 수 있다. 복조된 벡터로도 언급되는 윈도우된 중간 시간 영역 샘플들의 프레임(380)은 다음과 같이 주어지는데,
여기서, z'i ,n은 밴드 인덱스 i와 샘플 인덱스 n에 해당하는 윈도우된 중간 시간 영역 샘플이다. 샘플 인덱스 n은 다음 수학식의 범위를 갖는 정수이고
그리고 ws(n)는 합성 윈도우인데 이는 수학식 9의 분석 윈도우 wa(n)과 양립가능하다.
오버랩-가산의 변환 단계는 다음과 같이 주어지는데,
여기서, x'i ,n은 재구성된 신호이고 또는 더 정확히 말하면, 도 2a에 도시된 오버랩-가산 출력 스테이지(400)에 의해 제공되는 블록(410)의 시간 영역 샘플이다.
복소 합성 필터뱅크(300)에 대해서는 수학식 6 및 수학식 7은 다음 식에 따라서 경로로의 E(=8)의 연장에 관하여 정리되고 일반화될 수 있는데,
여기서, j=
는 허수 단위이다. 수학식 13은 수학식 8로부터 일반화된 형태를 나타내며 또한 복소수의 경우에 대해서도 유효하다.
수학식 14와 수학식 7의 직접적인 비교가 보여주듯이, 수학식 7의 윈도우 함수 w(n)은 수학식 14의 ws(n)과 같은 합성 윈도우 함수이다. 앞서 설명한 바와 같이, 분석 윈도우 함수 계수 wa(n)을 가지는 수학식 10과 수학식 1을 유사하게 비교하여 보면, 분석 윈도우 함수는 수학식 1의 경우의 합성 윈도우 함수의 시간 반전된 버전이라는 것을 보여준다.
도 1에 도시된 분석 필터뱅크(100)와 도 2a에 도시된 합성 필터뱅크(300) 모두, 한편으로는 지연과 다른 한편으로는 오디오 프로세싱의 품질이라는 견지에서 상당한 개선을 제공하므로, 필터뱅크(100,300)는 종종 저지연 필터뱅크라고 언급되기도 한다. 복소 값 버전은 그래서 복소 저지연(complex-low-delay) 필터뱅크라고 불리며, 이는 CLDFB로 축약된다. 어떤 환경 하에서는, CLDFB의 용어는 필터뱅크의 복소 버전뿐만 아니라 실수 버전에서도 사용된다.
수학적 배경에 관한 앞선 논의가 보여주듯이, 제안된 저지연 필터뱅크에 이용되는 구조는 MPEG-4 표준으로부터 알 수 있듯이 연장된 오버랩을 이용하는 MDCT 와 유사하거나 또는 IMDCT(IMDCT = Inverse MDCT)와 유사한 것을 이용한다. 부가적인 오버랩 영역은 MDCT와 유사한 코어(core)의 오른쪽뿐만 아니라 왼쪽으로도 블록 방식으로 부가될 수 있다. 여기서는, 오른쪽으로의 연장(합성 필터뱅크에 대해서)만이 이용되는데, 과거(past)의 샘플들에 대해서만 동작하므로 다른 추가적인 지연을 발생시키지는 않는다.
수학식 1, 2, 그리고 14의 정밀 검사(inspection)는 프로세싱이 MDCT 또는 IMDCT의 프로세싱과 매우 유사함을 보여준다. 변경된 분석 윈도우 함수와 합성 윈도우 함수 각각을 포함하는 사소한 변경들에 의해서만, MDCT 또는 IMDCT는 복수의 오버랩을 다룰 수 있고 그 지연에 관하여 매우 유동적인 변조된 필터뱅크로 확장된다. 예를 들어, 수학식 2, 3이 나타내는 바와 같이, 복소 버전은 원칙적으로 주어진 코사인-변조에 사인-변조된 부분을 단순히 부가함으로써 생성된다.
보간(Interpolation)
도 1 및 도 2a의 해당 설명 부분에서 설명하였듯이, 분석 윈도우어(110)와 합성 윈도우어(360) 모두 또는 각 필터뱅크(100,300)들은 각 시간 영역 오디오 샘플들의 각각과 개개의 윈도우 계수를 곱함에 의해 시간 영역 샘플들의 각 프레임을 윈도우잉하도록 구성된다. 시간 영역 샘플들의 각각은 예를 들어, 수학식 1, 7, 9, 10, 11, 14에서 보여주었듯이, 즉 (개개의) 윈도우 계수에 의해 곱해진다. 결과적으로, 각 윈도우 함수의 윈도우 계수들의 수는 전형적으로 각 시간 영역 오디 오 샘플들의 수와 일치한다.
그러나, 어떠한 구현 환경에서는, 더 작은 제1 개수의 계수를 가지는 실제 윈도우 함수와 비교하여 더 큰 제2 개수의 윈도우 계수를 가지는 윈도우 함수를 구현하는 것이 타당하며, 이는 각각의 프레임 또는 시간 영역 오디오 샘플들의 시퀀스를 윈도우잉하는 동안 실제로 이용된다. 이는 예를 들어, 계산 효율보다 특정 구현을 위한 메모리 요구 사항이 더 중요할 때는 타당할 수 있다. 소위 듀얼 레이트 방식의 경우에는 윈도우 계수들의 다운샘플링(downsampling)이 더 유용할 수 있다는 추가적인 시나리오가 가능하며, 이는 예를 들면 SBR 시스템(SBR = Spectral Band Replication)의 구조에서 이용된다. SBR의 개념은 도 5 및 도 6의 해당 설명 부분에서 좀 더 상세하게 설명한다.
이러한 경우에, 분석 윈도우어(110) 또는 합성 윈도우어(360)는, 각 윈도우어(110,360)에 제공되는 시간 영역 오디오 샘플들을 윈도우잉하기 위해 이용되는 각 윈도우 함수가 더 큰 제2 개수의 윈도우 계수를 가지는 더 큰 윈도우 함수의 윈도우 계수를 보간함으로써 얻어질 수 있도록 추가적으로 구성될 수 있다.
보간은 예를 들어, 선형, 다항식, 또는 스플라인 기반의 보간 방식에 의해 수행될 수 있다. 예를 들면, 선형 보간의 경우뿐만 아니라, 다항식 또는 스플라인 기반의 보간의 경우에는, 각 윈도우어(100,360)가 윈도우 함수의 하나의 윈도우 계수를 구하기 위해서, 더 큰 윈도우 함수의 윈도우 계수들의 시퀀스에 따라 더 큰 윈도우 함수의 두 연속적인 윈도우 계수들에 기초한 윈도우잉에 이용되는 윈도우 함수의 윈도우 계수들을 보간할 수 있을 것이다.
특히, 짝수의 시간 영역 오디오 샘플들과 윈도우 계수들의 경우에, 앞서 설명한 보간의 구현예는 오디오 품질의 상당한 개선을 가져온다. 예를 들면, 보간을 이용하지 않는 프레임(120,330) 중 어느 하나에 있는 시간 영역 오디오 샘플의 짝수 NㆍT의 경우에는, 예를 들어 선형 보간은 각각의 시간 영역 오디오 샘플들의 추가적인 프로세싱을 하는 동안 심각한 에일리어싱 효과(aliasing effects)를 가져온다.
도 3은 NㆍT/2 시간 영역 오디오 샘플들을 포함하는 프레임과 관련하여 채택된 윈도우 함수(분석 윈도우 함수 또는 합성 윈도우 함수)에 기초한 선형 보간의 예를 나타낸다. 메모리 제한이나 다른 구현 세부 사항 때문에, 윈도우 함수 자체의 윈도우 계수는 메모리에 저장되지 않으나, NㆍT 윈도우 계수를 포함하는 더 큰 윈도우 함수는 적절한 메모리 시간 동안 저장되거나 또는 다른 방법으로 이용될 수 있다. 도 3의 위쪽 그래프에서는 0 에서 NㆍT-1의 범위를 가지는 윈도우 계수 인덱스의 함수로서, 해당하는 윈도우 계수 c(n)를 나타낸다.
도 3의 위쪽에 있는 그래프에서 나타나듯이, 더 큰 수의 윈도우 계수들을 가지는 윈도우 함수의 두 개의 연속적인 윈도우 계수들의 선형 보간에 기초하여, 보간된 윈도우 함수가 다음 수학식에 기초하여 계산된다.
NㆍT/2의 시간 영역 오디오 샘플들을 가지는 프레임에 적용되는 윈도우 함수 의 보간된 윈도우 계수들 ci(n)의 수는 윈도우 계수의 개수의 절반을 포함한다.
이를 도식적으로 설명하기 위해, 도 3에는 윈도우 계수(450-0, ..., 450-7)가 윈도우 계수 c(0), ..., c(7)에 해당하는 도 3의 위쪽 그래프에 보여진다. 이러한 윈도우 계수들과 윈도우 함수의 추가적인 윈도우 계수들에 기초하여, 수학식 15의 애플리케이션은 도 3의 아래쪽 부분에서 도시된 보간된 윈도우 함수의 윈도우 계수 ci(n)를 발생시킨다. 예를 들면, 도 3의 화살표(470)에 의해 도시된 바와 같이, 윈도우 계수 450-2, 450-3에 기초하여 윈도우 계수 460-1이 수학식 15에 기초하여 생성된다. 따라서 보간된 윈도우 함수의 윈도우 계수 460-2는 도 3의 위쪽 부분에서 보여지듯이 윈도우 함수의 윈도우 계수 450-4, 450-5에 기초하여 계산된다. 도 3은 추가적인 윈도우 계수 ci(n)의 생성을 보여준다.
윈도우 함수의 보간된 다운샘플링에 의해 이루어지는 에일리어싱 제거 과정을 설명하기 위하여, 도 4는 예시적으로 MDCT에서 이용될 수 있는 사인 윈도우 함수의 경우에 윈도우 계수들의 보간을 도시하고 있다. 단순화를 위해, 윈도우 함수의 왼쪽 절반과 오른쪽 절반이 서로 걸쳐져 도시되어 있다. 도 4는 단순화된 사인 윈도우를 보여주는데, 이는 단지 2ㆍ4 윈도우 계수들 또는 8 샘플의 길이를 가지는 MDCT에 대한 포인트들을 포함한다.
도 4는 사인 윈도우의 제1 절반의 네개의 윈도우 계수들 480-1, 480-2, 480-3, 480-4와, 사인 윈도우의 제2 절반의 윈도우 계수들 490-1, 490-2, 490-3, 490-4를 나타낸다. 윈도우 계수 490-1, ..., 490-4는 윈도우 계수 인덱스 5, ..., 8에 해당한다. 윈도우 계수들 490-1, ... 490-4는 윈도우 함수의 길이의 제2 절반에 해당하는데, 실제 인덱스를 구하기 위해 주어진 N'=4가 인덱스에 부가된다.
앞서 설명한 바와 같이 에일리어싱 효과를 감소시키거나 제거하기 위해, 윈도우 계수는 다음 조건을 가능한 한 잘 이행해야 한다.
관계식 (16)이 더 잘 이행될수록, 에일리어스 억제 또는 에일리어스 제거가 더 잘 이루어진다.
윈도우 계수의 절반의 수를 가지는 새로운 윈도우 함수가 윈도우 함수의 왼쪽 절반에 대해 결정된다는 상황을 가정하면, 다음과 같은 문제점이 발생한다. 도 3에서 도시된 보간 방식을 채택하지 않는다면, 윈도우 함수가 짝수의 윈도우 계수들(짝수의 다운샘플링)을 포함한다는 사실 때문에, 윈도우 계수 480-1, 480-3 또는 480-2, 480-4는 원 윈도우 함수 또는 원 필터의 오직 하나의 에일리어싱 값(aliasing value)에 대응된다.
이는 스펙트럴 에너지(spectral energy)의 균형잡히지 않은 비율과 해당 윈도우 함수의 중심 지점(질량 중심)의 비대칭적인 재배분을 초래한다. 도 4의 윈도우 계수 w(n)에 대한 보간 수학식 15에 기초하여, 보간된 값 I1과 I2는 에일리어싱 관계식 (16)을 더 잘 수행하고, 이로서 프로세싱된 오디오 데이터의 품질에 관해 상당한 개선을 이끌어 내게 된다.
그러나, 좀 더 정교한 보간 방식을 이용함으로써, 예를 들어 스플라인 기반 또는 또 다른 유사한 보간 방식이 관계식 16을 좀 더 잘 이행할 수 있는 윈도우 계수들을 생기게 할 수도 있다. 선형 보간이면 대부분의 경우에 충분하며, 빠르고 효율적인 구현을 가능하게 해준다.
SBR-QMF 필터뱅크(QMF = Quadrature Mirror Filter)를 이용하는 전형적인 SBR 시스템의 경우에는, 선형 보간 또는 또 다른 보간 방식이 기수 프로토타입 필터 계수에 포함되는 SBR-QMF 프로토타입 필터로서 구현되도록 요구되지는 않는다. 이는 SBR-QMF 프로토타입 필터가 SBR-QMF 프로토타입 필터의 대칭성은 손상되지 않도록 다운샘플링이 구현되는 것에 관한 최대값을 포함한다는 것을 의미한다.
도 5 및 도 6에서, 본 발명에 따른 분석 필터뱅크와 합성 필터뱅크 양자의 실시예들에 대한 가능한 애플리케이션을 설명한다. 애플리케이션의 하나의 중요한 분야는 SBR 시스템 또는 SBR 툴(tool)이다. 그러나, 본 발명에 따른 실시예들의 추가적인 애플리케이션은 다른 분야로부터 기인할 수 있으며, 이러한 분야에서는 스펙트럴 변경(spectral modifications)(예를 들어, 이득 변경 또는 등화)에 대한 요구가 존재하며, 이에는 공간 오디오 객체 코딩(spatial audio object coding), 저지연 파라미터 스테레오 코딩(low-delay parametric stereo coding), 저지연 공간/서라운드 코딩(low-delayed spatial/surround coding), 프레임 손실 은폐(frame loss concealment), 에코 제거(echo cancellation) 또는 다른 상응하는 애플리케이션이 있다.
SBR 뒤의 기본적인 개념은 신호의 고주파수 또는 소위 하이밴드 신호 범위의 특징과 로우밴드 주파수, 로우밴드 또는 로우밴드 주파수 범위의 특징 간의 강한 상관관계(correlation)가 존재한다는 고찰이다. 이에, 원 입력 신호 하이밴드의 표현에 대한 양호한 근사화(approximation)는 로우밴드로부터 하이밴드로의 전위(transposition)에 의해 이루어질 수 있다.
전위에 부가하여, 하이밴드의 재구성은 스펙트럴 포락선(spectral envelope)의 형상을 통합시키는데, 이는 이득의 조정을 포함한다. 이러한 동작은 전형적으로 원 입력 신호의 하이밴드 스펙트럴 포락선의 전송에 의해 조정된다. 인코더로부터 전송된 추가적인 가이던스 정보(guidance information)는, 전위만으로는 충분하지 못할 때, 오디오 자료(audio material)를 다루기 위하여 인버스 필터링(inverse filtering), 노이즈 및 사인 부가(a noise and sine addition)와 같은 추가적인 합성 모듈(synthesis modules)을 제어한다. 해당하는 파라미터들은 노이즈의 부가를 위한 "노이즈 하이밴드(noise highband)" 파라미터와 사인의 부가를 위한 "음조 하이밴드(tonalities highband)" 파라미터들을 포함한다. 이러한 가이던스 정보(guidance information)는 대개 SBR 데이터로 불린다.
SBR 동작은 인코더 측의 프리-프로세스(pre-process)와 디코더 측의 포스트-프로세스(post-process)에 의하여, 다른 종래의 웨이브폼(waveform) 또는 코덱과 결합될 수 있다. SBR은 매우 적은 비용으로 오디오 신호의 고주파수 부분을 인코딩하는 반면, 오디오 코덱은 신호의 더 낮은 주파수 부분을 코딩하는 데 이용된다.
인코더 측에서는, 원 입력 신호가 분석되고, 로우밴드와 관련한 하이밴드 스펙트럴 포락선과 그 특징들이 인코딩되고 결과적인 SBR 데이터는 로우밴드를 위한 코덱으로부터 나오는 비트스트림(bitstream)과 함께 멀티플렉싱된다. 디코더 측에 서는, SBR 데이터가 제일 먼저 디멀티플렉싱된다. 디코딩 동작은 일반적으로 여러 단계로 조직된다. 먼저, 코어 디코더(core decoder)는 로우밴드를 생성하고, 두번째로, SBR 디코더는 스펙트럴 밴드 복제 과정(spectral band replication process)를 가이드하기 위한 디코딩된 SBR 데이터를 사용하여 포스트 프로세서(post-processor)로서 동작한다. 다음으로, 전체 대역폭 출력 신호(full bandwidth output signal)가 얻어진다.
가능한한 높은 코딩 효율을 생성하기 위해서, 그리고 계산 복잡도를 낮게 유지하기 위해서는, SBR 개선 코덱(SBR enhanced codec)이 소위 듀얼 레이트 시스템(dual rate system)으로서 종종 구현된다. 듀얼 레이트는 밴드 제한 코어 코덱(band limited core codec)이 외부 오디오 샘플링율의 절반의 오디오 샘플링율로 동작한다는 것을 의미한다. 대조적으로, SBR 파트는 전체 샘플링 주파수(full sampling frequency)로 처리된다.
도 5는 SBR 시스템(500)의 개괄적인 블록도를 나타낸다. SBR 시스템(500)은 예를 들어 프로세싱될 오디오 데이터들이 병렬적으로 제공되는 AAC-LD 인코더(AAC-LD = Advanced Audio Codec Low-delay)(510)과 SBR 인코더(520)를 포함한다. SBR 인코더(520)는 분석 필터뱅크(530)를 포함하며, 이는 도 5에 QMF 분석 필터뱅크로 나타나 있다. 분석 필터뱅크(530)는 SBR 시스템(500)에 제공되는 오디오 신호에 기초하는 서브밴드에 해당되는 서브밴드 오디오 값들을 제공할 수 있다. 이러한 서브밴드 오디오 값은 SBR 파라미터 추출 모듈(SBR parameter extraction module)(540)에 제공되는데, 이는 앞서 설명한 SBR 데이터를 생성하며, 예시적으로 는 하이밴드에 대한 스펙트럴 포락선, 하이밴드 노이즈 파라미터 그리고 하이밴드 음조 파라미터를 포함한다. 그리고 나서 이러한 SBR 데이터는 AAC-LD 인코더(510)에 제공된다.
AAC-LD 인코더(510)는 도 5에서 듀얼 레이트 인코더로 도시되어 있다. 즉, 인코더(510)는 인코더(510)에 제공되는 오디오 데이터의 샘플링 주파수에 비교하여 절반의 샘플링 주파수에서 동작한다. 이를 이용하기 위하여, AAC-LD 인코더(510)는 다운샘플링 단계(550)를 포함하는데, 이는 예를 들어 나이퀴스트-섀논(Nyquist-Shannon)의 위반에 의해 야기되는 왜곡을 피하기 위한 로우 패스 필터(low pass filter)를 선택적으로 포함할 수 있다. 다운샘플링된 오디오 데이터는 다운샘플링 단계(550)에 의한 출력으로서, 다음으로 MDCT 필터뱅크의 구조의 인코더(560)(분석 필터뱅크)에 제공된다. 인코더(560)에 의해 제공되는 신호들은 다음으로 양자화 및 코딩 단계(the quantization and coding stage)(570)에서 양자화되고 부호화된다. 게다가, SBR 데이터는 SBR 파리미터 추출 모듈(540)에 의해 제공되는 것으로서, 비트스트림을 생성하기 위해 인코딩되며, 이는 이후 ACC-LD 인코더(510)에 의해 출력된다. 양자화 및 코딩 단계(570)는 예를 들어 인간 청력 기관의 청력 특성에 따라 데이터를 양자화할 수 있다.
비트스트림은 다음으로 AAC-LD 디코더(580)로 제공되며, 이는 디코더 측의 한 부분으로서 비트스트림이 전송되는 부분이다. AAC-LD 디코더는 디코딩 및 역양자화 단계(590)를 포함하는데, 이는 로우밴드를 나타내는 주파수 영역에서 비트스트림과 역양자화 또는 재양자화된 오디오 데이터로부터 SBR 데이터를 추출한다. 로우밴드 데이터는 그리고 나서 합성 필터뱅크(600)(inverse MDCT finterbank)로 제공된다. 역 MDCT 단계(MDCT-1)(600)는 역 MDCE 단계로 제공된 신호들을 시간 신호를 제공하기 위해 주파수 영역에서 시간 영역으로 변환한다. 이 시간 영역 신호는 SBR 디코더(610)로 제공되는데, 이는 분석 필터뱅크(620)를 포함하며, 도 5에서는 QMF 분석 필터뱅크로 나타나 있다.
분석 필터뱅크(620)는 로우밴드를 나타내는 분석 필터뱅크(620)에 제공된 시간 신호의 스펙트럴 분석을 수행한다. 이러한 데이터는 고주파 생성기(high frequency generator)(630)로 제공되는데, 이는 종종 HF 생성기로 불린다. AAC-LD 디코더(580)와 그것의 디코딩 및 역양자화 단계(590)에 의해 제공되는 SBR 데이터에 기초하여, HF 생성기(630)는 분석 필터뱅크(620)에 의해 제공되는 로우밴드 신호들에 기초한 하이밴드를 생성한다. 로우밴드와 하이밴드 신호 양자 모두 다음으로 합성 필터뱅크(640)로 제공되는데, 이는 SBR 시스템(500)에 시간 영역 오디오 출력 신호를 제공하기 위해 로우밴드와 하이밴드 신호들을 주파수 영역으로부터 시간 영역으로 전환한다.
보다 완전하게는, 많은 경우에 SBR 시스템(500)은 도 5에 나타난 바와 같이 이런 방식으로 구현되지는 않는다는 것을 주의해야 한다. 보다 구체적으로는 AAC-LD 인코더(510)와 SBR 인코더(520)는 대개 인코더 측에서 구현되며, 이는 대개 AAC-LD 디코더(580)과 SBR 디코더(610)를 포함하는 디코더 측으로부터 분리되어 구현된다. 즉, 도 5에 나타난 SBR 시스템(500)은 근본적으로 두 시스템 즉, 앞서 설명한 인코더(510,520)를 포함하는 인코더와 앞서 설명한 디코더(580,610)들을 포함 하는 디코더 간의 연결을 나타낸다.
분석 필터뱅크(100)과 합성 필터뱅크(300) 형태의 본 발명에 따른 실시예들은 예를 들어, 도 5에 나타난 SBR 시스템(500)에서 분석 필터뱅크(530), 분석 필터뱅크(620) 그리고 합성 필터뱅크(640)를 대체하여 구현될 수 있다. 즉, SBR 시스템(500)의 SBR 구성들의 합성 필터뱅크 또는 분석 필터뱅크는 예를 들어, 본 발명에 따른 상응하는 실시예들로 대체될 수 있다. 게다가, MDCT(560)와 역 MDCT(600)는 또한 저지연 분석 필터뱅크와 합성 필터뱅크들에 의해 각각 대체될 수 있다. 이러한 경우, 설명된 모든 대체 구성들이 구현된다면, 소위 개선된 저지연 AAC 코덱(coder-decoder)이 구현될 수 있다.
개선된 저지연 AAC(AAC-ELD)는 SBR과 AAC-LD를 이용함으로써, AAC-LD(Advanced Audio Codec - Low-delay)의 저지연 특성과 HE-AAC(High Efficiency Advanced Audio Codec)의 높은 코딩 효율을 결합하는 것을 목표로 한다. SBR 디코더(610)는 이러한 시나리오에서 포스트 프로세서로 동작하며, 이는 완성된 분석 필터뱅크와 합성 필터뱅크(640)를 포함하는 코더 디코더(580) 이후에 제공된다. 그런 이유로, SBR 디코더(610)의 구성들은 도 5에서 빗금친 구성(620,630,540)으로 나타난 추가적인 디코딩 지연을 부가한다.
SBR 시스템(500)의 많은 구현예에서, 더 낮은 주파수 부분 또는 전형적으로 0 khz 에서 5-15 khz에 범위에 이르는 로우밴드는 코어 코덱이라고 불리는 웨이브폼 코더를 이용하여 코딩된다. 코어 코덱은 예를 들어, MPEG 오디오 코덱 패밀리의 하나가 될 수 있다. 부가적으로, 높은 주파수 부분 또는 하이밴드의 재구성은 로우밴드의 전이에 의해 이루어질 수 있다. SBR과 코어 코더의 조합은 많은 경우에 듀얼 레이트 시스템으로 구현될 수 있으며, 여기서 기초가 되는 AAC 인코더/디코더는 SBR 인코더/디코더의 샘플링율의 절반의 샘플링율에서 동작된다.
대다수의 제어 데이터는 스펙트럴 포락선 표현에서 사용되는데, 이는 가능한 한 적은 비트율 오버헤드로 SBR 동작을 가장 잘 제어할 수 있기 위해 변화하는 시간 및 주파수 해상도/분해능(frequency resolution)을 갖는다. 다른 제어 데이터는 주로 하이밴드의 톤(tone)과 노이즈의 비(tonal-to-noise ratio)를 제어하는 데 주력한다.
도 5에 나타난 바와 같이, 기초가 되는 AAC 디코더(580)로부터 나온 출력은 전형적으로 32-채널 QMF 필터뱅크(620)로 분석된다. 그리고 나서, HF-생성 모듈(HF-generator module)(630)은 존재하는 로우밴드로부터 하이밴드로 QMF 서브밴드를 패칭(patching)하여 하이밴드를 재생성한다. 더 나아가, 인버스 필터링은 서브밴드 기초 각각에 대하여 이루어지며, 비트스트림(SBR 데이터)로부터 얻어지는 제어 데이터에 기초한다. 포락선 조정기(enveloper adjuster)는 재생성된 하이밴드의 스펙트럴 포락선을 변경하고, 비트스트림에서 제어 데이터에 따라 부가되는 노이즈와 시누소이드(sinusoids)와 같은 부가적인 구성을 더한다. 모든 동작들이 주파수 영역(QMF 또는 서브밴드 영역으로 알려짐)에서 이루어지기 때문에, 디코더(610)의 마지막 단계는 시간 영역 신호를 보유하기 위한 QMF 합성(640)이 된다. 예를 들어, 인코더 측에서 QMF 분석이 1024 시간 영역 샘플을 위한 32 QMF 서브밴드 시스템에 대해서 이루어지는 경우, 높은 주파수 재구성은 640-QMF 서브밴드의 결과를 가져오는데, 이에 대해 2048 시간 영역 샘플을 생성하는 합성이 이루어지며 그래서 인자 2에 의한 업샘플링이 얻어진다.
부가적으로, 코어 코더(510)의 지연은 듀얼 레이트 모드에서 원 샘플링율의 절반에서 동작함으로써 두 배가 되는데, 듀얼 레이트 모드는 AAC-LD와 SBR의 조합에 의한 인코더 및 디코더 동작 모두에 있어서, 지연의 부가적인 원인을 증가시킨다. 이하에서는, 그러한 지연의 원인들을 살펴보고 연관된 지연을 최소화한다.
도 6은 도 5에 나타난 시스템(500)의 단순화된 블록도를 보여준다. 도 6은 SBR과 코딩을 위한 저지연 필터뱅크를 이용하는 인코더/디코더 동작에서 지연 원인에 대해 집중적으로 살펴본다. 도 6을 도 5와 비교하여 보면, MDCT(560)와 역 MDCT(600)는 지연 최적화 모듈들, 소위 저지연 MDCT(560')(LDㅡMDCT)와 저지연 역 MDCT(600')(LD IMDCT)에 의해 대체된다. 게다가, HF 생성기(630)도 또한 지연 최적화 모듈(630')에 의해 대체되었다.
저지연 MDCT(560')과 저지연 역 MDCT(600')와 별도로, 변경된 SBR 프레이밍(framing)과 변경된 HF 생성기(630')는 도 6에 나타난 시스템에서 이용된다. 코어 코더/디코더(560,600)와 각 SBR 모듈들의 서로 다른 프레이밍에 의한 지연을 피하기 위해, SBR 프레이밍은 AAC_LD의 480 또는 512 샘플의 프레이밍 길이를 맞추기 위해 적용된다. 더 나아가, 지연의 384개의 샘플을 내포하는 HF 생성기(630)의 가변적인 타임 그리드(time grid)는, 근접한 AC-LD 프레임들에 걸쳐 SBR 데이터의 확산에 관하여 제한된다. 그러므로, SBR 모듈에서 지연의 유일한 근거는 필터뱅크들(530,620,640)이 된다.
도 6에서 AAC-ELD 코덱의 부분적인 구현예를 표현한 것에 따르면, AAC-LD 코어에서 저지연 필터뱅크의 사용과 앞서 설명한 SBR 오버랩 제거를 포함하여 어느 정도의 지연 최적화가 이미 구현되어 있다. 추가적인 지연 개선을 위하여, 남은 모듈들도 살펴본다. 도 6은 여기서 SBR과 LD-MDCT와 LD-IMDCT로 불리는 저지연 필터뱅크를 이용하는 인코더/디코더에서의 지연 소스를 나타낸다. 도 5와 비교하여, 도 6의 모든 박스는 지연 소스를 나타내며, 여기서 지연 최적화 모듈들은 음영 표시로 도시되어 있다. 유사 모듈은 지금까지는 저지연에 대하여 최적화되어 있지 않다.
도 7a는 분석 필터뱅크 또는 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 해당 방법의 형태의 본 발명의 일 실시예를 설명하기 위해, C- 또는 C++- 의사 코드(pseudo code)를 포함하는 흐름도를 도시하고 있다. 좀 더 정확하게는, 도 7a는 32 밴드를 위한 복소 분석 필터뱅크의 흐름도를 나타내고 있다.
앞서 설명한 바와 같이, 분석 필터뱅크는 시간 영역 신호, 예를 들면 코어 코더로부터 나온 출력을 N=32 서브밴드 신호로 분리하기 위해 이용된다. 필터뱅크로부터의 출력 즉 서브밴드 샘플 또는 오디오 서브밴드 값은, 복소 분석 필터뱅크의 경우에는 복소수가 되고 그래서 실수 필터뱅크에 비교하여 인자 2에 의해 오버샘플된다. 필터링은 다음의 단계들과 관련되며 이들을 포함하는데, 여기서 배열(array) x(n)은 정확하게 320 시간 영역 샘플들을 포함한다. 샘플 n의 인덱스가 높아질수록, 샘플들은 더 오래된 것들이다.
단계 100에서 방법 실시예의 시작 이후에, 먼저 배열 x(n)에 있는 샘플들은 단계 S110에서 32 포지션(positon) 만큼 이동된다. 단계 S120에서, 가장 오래된 32개의 샘플들이 버려지고, 32개의 새로운 샘플들이 포지션 31에서 0까지에 저장된다. 도 7a에 나타난 바와 같이, 입력 시간 영역 오디오 샘플들은 31 에서 0까지의 범위에서 감소하는 인덱스에 해당하는 포지션들에 저장된다. 이는 해당하는 프레임 또는 벡터에 저장된 샘플들의 시간 반전의 결과로 나타나며, 윈도우 함수의 인덱스를 반전하는 것은 (똑같이 긴) 합성 윈도우 함수에 기초하여 분석 윈도우 함수를 생성하기 위해 이미 고려되었다.
단계 S130에서는, 윈도우 계수 ci(j)가 수학식 15에 기초한 계수 c(j)의 선형 보간에 의해 얻어진다. 이 보간은 N=64 값의 블록 크기(블록 길이 또는 서브밴드 값의 수)와, T=10 블록을 포함하는 프레임에 기초한다. 그래서, 보간된 윈도우 함수의 윈도우 계수들의 인덱스는, 수학식 15에 따르면 0 과 319의 범위 내에 있다. 윈도우 계수들 c(n)은 발명의 상세한 설명의 부록 1 내에 있는 표에서 주어진다. 그러나, 부록 1 및 부록 3 내의 표들에서 주어진 값들에 기초한 윈도우 계수들을 생성하기 위해서는, 구현상의 세부 사항에 따라, 인덱스 128 내지 255 그리고 인덱스 384 내지 511(인자 (-1)로 곱함)에 해당하는 윈도우 계수에 관하여 부가적인 부호 변화가 고려되어야 한다.
이러한 경우에 이용될 윈도우 계수 w(n) 또는 c(n)은 다음 수학식 16a에 따라 얻어질 수 있는데,
이때, 부호 스위칭 함수 s(n)은 아래와 같고,
여기서, n = 0 내지 639이며, 이때, wtable(n)은 부록의 표에 주어진 값들이다.
그러나, 윈도우 계수들은 예를 들면, 이미 설명한 지연의 감소를 생성하기 위해, 부록 1의 표에 따라 구현되도록 요구되지는 않는다. 프로세싱된 오디오 데이터의 품질 레벨을 유지하면서, 이러한 지연의 감소를 생성하기 위해서는, 또는 다른 절충안을 생성하기 위해서는, 0 내지 639의 범위 내의 윈도우 계수 인덱스 n에 대한 윈도우 계수 c(n)은 부록 2 내지 4 중 어느 하나에서 주어진 관계식들의 세트 중 하나를 수행할 수 있다. 게다가, 다른 윈도우 계수 c(n)이 본 발명에 따른 실시예들에서 이용될 수 있다는 것을 주의해야 한다. 부록 1 내지 부록 4의 표에서는 640 윈도우 계수들을 가지는 윈도우 함수들에만 단지 적용될 지라도, 당연히, 320 또는 640 보다도 다른 수의 윈도우 계수들을 포함하는 또 다른 윈도우 함수들도 구현될 수 있다.
단계 S130에 따른 선형 보간은 짝수의 윈도우 계수들을 포함하는 윈도우 함수의 경우에 상당한 질적 개선과 에일리어싱 효과를 감소하거나 제거하는 결과를 가져온다. 수학식 1, 수학식 2 그리고 수학식 16에서처럼 복소 단위는 j가 아니고 i=
로 표시됨을 또한 주의하여야 한다.
단계 S140에서는, 배열 x(n)의 샘플들은 다음으로 보간된 윈도우의 계수들 ci(n)과 엘리먼트 연산 방식으로 곱해진다.
단계 S150에서, 윈도우된 샘플들은 64-요소 배열 u(n)을 생성하기 위해 도 7a의 흐름도에 주어진 수학식에 따라 합산된다. 단계 S160에서, 32 개의 새로운 서브밴드 샘플들 또는 오디오 서브밴드 값 W(k,l)는, 행렬 연산 Mu에 따라 계산되는데, 여기서 행렬 M의 엘리먼트는 다음과 같이 주어진다.
여기서, exp()는 이미 언급한 바와 같이 복소 지수 함수를 나타내고, i는 허수 단위이다. 흐름도의 루프(loop)가 단계 S170에서 종료되기 전에, 각 서브밴드 값 W(k,l) (=W[k][l])은 인덱스 k를 가지는 서브밴드에서 서브밴드 샘플 l에 해당하는 출력이 될 수 있다. 다시 말하면, 도 7a에 도시된 흐름도에서 모든 루프는 32 복소수 서브밴드 값을 생성하며, 각 값은 하나의 필터뱅크 서브밴드로부터의 출력을 나타낸다.
도 7b는 프레임(150)의 두 블록의 각 5겹의 합에 의해, 윈도우된 시간 영역 오디오 샘플 z(n)의 10개 블록 160-1, ..., 160-10을 포함하는 윈도우된 시간 영역 오디오 샘플의 프레임(150)을 붕괴시켜 벡터 u(n)으로 만드는 단계 S150을 도시하고 있다. 붕괴 또는 축소는 엘리먼트 연산 방식 단위로 행해지며, 그래서 블록 160-1, 160-3, 160-5, 160-7, 160-9 각각의 내부의 동일한 샘플 인덱스에 해당하는 윈도우된 시간 영역 오디오 샘플들이 벡터 u(n)의 첫번째 블록 650-1에서 해당 값을 얻도록 더해진다. 마찬가지로, 블록 160-2, 160-4, 160-6, 160-8, 그리고 160-10에 각각 기초하여, 블록 160-2 내 벡터 u(n)의 해당 엘리먼트들이 단계 S150에서 생성된다.
분석 필터뱅크의 형태를 가지는 본 발명에 따른 추가적인 실시예는 64-밴드 복소 저지연 필터뱅크로서 구현될 수 있다. 이러한 복소 저지연 필터뱅크는 분석 필터뱅크의 일종으로서, 그 동작은 기본적으로 도 7a의 해당 설명부분에서 설명한 분석 필터뱅크와 유사하다. 그 유사성 그리고 기본적으로 도 7a의 해당 설명 부분에서 설명한 동일한 동작 때문에, 앞서 설명한 도 7a의 32 밴드를 위한 복소 분석 필터뱅크와 64 서브밴드를 위한 복소 분석 필터뱅크 간의 차이점을 여기서 설명한다.
도 7a에 도시된 분석 필터뱅크을 포함하는 32-서브밴드와 대조하여, 프레임 x(n)의 벡터는, 64-밴드 분석 필터뱅크의 경우에 인덱스 0-639를 가지는 640 엘리먼트를 포함한다. 그래서, 단계 S110은 배열 x(n)의 샘플들이 64 포지션만큼 시프트되도록 변경되고, 여기서 가장 오래된 64 개의 샘플들은 버려진다. 단계 S120에 서 32 개의 새로운 샘플들 대신에, 64 개의 새로운 샘플들이 포지션 63 내지 0에 저장된다. 도 7c에 도시된 바와 같이, 입력 시간 영역 오디오 샘플들은 63 내지 0의 범위에서 감소하는 인덱스에 해당하는 포지션에 저장된다. 이는 해당하는 프레임 또는 벡터에 샘플들의 시간 반전이 저장되는 결과를 낳고, 그래서 (똑같이 긴) 합성 윈도우 함수에 기초한 분석 윈도우 함수를 얻기 위한 윈도우 함수의 인덱스를 반전하는 것이 이미 고려되었다.
프레임 x(n)의 벡터의 엘리먼트(elements)를 윈도우잉하기 위해 이용되는 윈도우 c(n)이 전형적으로 640 엘리먼트를 포함하기 때문에, 윈도우 계수들을 선형적으로 보간하는 단계 S130은, 보간된 윈도우 ci(n)를 생성하기 위해 생략될 수 있다.
그리고 나서, 단계 S140에서, 배열 x(n)의 샘플들은 윈도우 계수 c(n)의 시퀀스의 이용에 의해 곱해지거나 윈도우되는데, 이러한 윈도우 계수 c(n)은 다시 한번 부록 1의 표에 있는 값들에 기초하게 된다. 윈도우 계수 c(n)가 합성 윈도우 함수의 윈도우 계수들인 경우에는, 배열 x(n)의 윈도우 c(n)에 의한 윈도우잉 또는 곱셈이 수학식에 따라 수행된다.
여기서, an = 0, ..., 639이다. 다시 한번, 윈도우 함수의 저지연 특성을 얻기 위해서는, 정확하게 윈도우 계수에 따라 부록 1의 표에 주어진 값에 기반하여 윈도우 함수를 구현하도록 요구되지는 않는다. 많은 애플리케이션에 있어서, 윈도우 계수들이 부록 2 내지 부록 4에 있는 표들에서 주어진 일련의 관계식들의 하나를 수행하는 하나의 실시예는 주어진 품질과 지연의 상당한 감소 간에 수용할 만한 절충안을 달성하기 위해서는 충분할 것이다. 그러나, 구현상의 세부사항에 따라, 부록 1 과 부록 3 내의 표에 주어진 값들에 기초한 윈도우 계수들을 구하기 위해서는, 인덱스 128 내지 255 그리고 384 내지 511(인자 (-1)로 곱함)에 해당하는 윈도우 계수들에 관하여 부가적인 부호 변화가 수학식 16a와 수학식 16b에 따라 고려되어야 한다.
다음으로, 도 7a에 나타난 흐름도에서 단계 S150는, 128-엘리먼트 배열 u(n)을 생성하기 위해 다음의 수학식에 따라 프레임 z(n)의 벡터의 샘플들을 합산함에 의해 대체된다.
도 7a의 단계 S160은 다음으로 64 새로운 서브밴드 샘플들이 행렬 연산 Mu에 따라 계산되는 단계에 의해 대체되는데, 여기서 행렬 M의 행렬 연산이 다음과 같이 주어진다.
여기서 exp()는 복소 지수 함수를 나타내고 i는 이미 설명한 대로 허수 단위이다.
도 7c는 32 서브밴드 채널에 대한 실수 분석 필터뱅크의 형태를 가지는 본 발명의 일 실시예에 따른 흐름도를 도시하고 있다. 도 7c에 도시된 실시예는 도 7a에 나타난 실시예와 많이 다르지는 않다. 두 실시예 간의 가장 큰 차이점은 새로운 32 복소수 서브밴드 오디오 값을 계산하는 단계 S160이 도 7c에 도시된 실시예의 단계 S162로 대체된다는 것인데, 이 단계에서는 32 실수 서브밴드 오디오 샘프들이 행렬 연산 결과에 따라 계산되며, 여기서 행렬 Mr의 요소들은 다음과 같이 주어진다.
결과적으로, 흐름도 상에서 모든 루프는 32 실수 서브밴드 샘플들을 생성하며, 여기서 W(k,l)은 서브밴드 k의 서브밴드 오디오 샘플 1에 대응한다.
실수 분석 필터뱅크는 예를 들어 도 5에 나타난 SBR 시스템의 저전력 모드의 구조에서 이용될 수 있다. SBR 툴의 저전력 모드는, 주로 실수 필터뱅크가 이용된다는 사실에 관하여 높은 품질의 SBR 툴과 다르다. 이는 계산 복잡도와 계산 노력을 인자 2에 의해 줄여주며, 그래서 시간 단위당 연산의 수는 인자 2에 의해 근본적으로 줄어드는데, 이는 허수부가 계산될 필요가 없기 때문이다.
본 발명에 따라 제안된 새로운 필터뱅크들은 SBR 시스템의 저전력 모드와 완 전하게 양립할 수 있다. 그래서, 본 발명에 따라 필터뱅크에 있어서, SBR 시스템은 복소 필터뱅크의 일반 모드 또는 고품질 모드와 실수 필터뱅크의 저전력 모드에서 모두 여전히 운용될 수 있다. 실수 필터뱅크는 예를 들어, 실수만을 이용하거나(코사인 변조된 기여분)과 허수 부분을 생략하는 것(사인 변조된 기여분)에 의해서 복소 필터뱅크로부터 도출될 수 있다.
도 8a는 64 서브밴드 채널에 대한 복소 합성 필터뱅크의 형태를 가지는 본 발명의 비교예에 따른 흐름도를 보여준다. 앞서 설명한 바와 같이, SBR 프로세싱된 서브밴드 신호의 합성 필터링은 64 서브밴드 합성 필터뱅크를 이용하여 이루어질 수 있다. 필터뱅크로부터 나온 출력은, 도 1의 해당 설명 부분에서 설명된 바와 같이, 실수 시간 영역 샘플의 한 블록이다. 그 동작은 도 8a의 흐름도에 의해서 도시되어 있는데, 이는 또한 시간 영역 오디오 샘플들을 생성하기 위한 방법의 형태로 한 비교예를 도시한다.
합성 필터링은 시작(단계 S200) 이후로 다음의 단계들을 포함하는데, 여기서 배열 v는 1280 샘플들을 포함한다. 단계 S210에서는 배열 v에 있는 샘플들은 128 포지션만큼 시프트되는데, 여기서 가장 오래된 128 샘플들이 버려진다. 단계 S220에서, 64 새로운 복소수 오디오 서브밴드 값들이 행렬 N에 의해 곱해지며, 여기서 행렬 엘리먼트 N(k,n)이 다음과 같이 주어진다.
여기서 exp()는 복소 지수 함수를 나타내고 i는 허수 단위이다. 이러한 동작으로부터의 출력값의 실수 부분은 도 8a에 도시된 바와 같이 배열 v의 위치 0-127에 저장된다.
단계 S230에서, 현재 시간 영역에 있는 샘플들이, 도 8a에서 주어진 수학식에 따라 640-엘리먼트 배열 g(n)을 생성하기 위해 배열 v로부터 추출된다. 단계 S240에서, 배열 g의 시간 영역에 있는 실수 샘플들은 배열 w를 생성하기 위해 윈도우 계수 c(n)에 의해 곱해지는데, 여기서 윈도우 계수들은 다시 한번 부록 1의 표에 주어진 값들에 기초한 윈도우 계수들이 된다.
그러나, 앞서 설명한 바와 같이, 윈도우 계수들은 부록 1의 표에 주어진 값들에 정확히 기초하도록 요구되지는 않는다. 이는 서로 다른 비교예에서는, 부록 2 내지 부록 4의 표에 주어진 관계식들의 세트 중 하나를 만족한다면, 합성 필터뱅크의 바람직한 저지연 특성을 이루기에 충분하다. 게다가, 분석 필터뱅크의 해당 부분에서 설명하였듯이, 다른 윈도우 계수들도 합성 필터뱅크의 구조에서 이용될 수 있다. 그러나, 구현상의 세부 사항에 따라, 부록 1 및 부록 3의 표에 주어진 값들에 기초한 윈도우 계수들을 생성하기 위해서는, 인덱스 128 내지 255와 384 내지 511(인자 (-1)을 곱함)에 해당하는 윈도우 계수들에 대하여 부가적인 부호 변화가 고려되어야 한다.
단계 S250에서, 64 새로운 출력 샘플들은, 도 8a의 흐름도에 주어진 마지막 단계와 공식에 따라 흐름도의 한 루프가 단계 S260에서 끝나기 전에, 배열 w(n)로부터 나온 샘플들의 합산에 의해 계산된다. 도 8a에 나타난 흐름도에서, X[k][l](=X(k,l))는 인덱스 k를 가지는 서브밴드에서 오디오 서브밴드 값 1에 해당한다. 도 8a에 도시된 모든 새로운 루프는 64 시간 영역, 실수 오디오 서브밴드를 출력으로서 생성한다.
도 8a에 도시된 64 밴드에 대한 복소수 분석 필터뱅크의 실시예는, 도 2b에 도시된 실시예의 해당 설명 부분에서 설명된 바와 같이, 여러 저장 포지션을 포함하는 오버랩-가산 버퍼(overlap-add buffer)를 요구하지 않는다. 여기서, 오버랩-가산 버퍼는 벡터 v와 벡터 g에서 "숨겨지며", 이는 벡터 v에 저장된 값들에 기초하여 계산된다. 오버랩-가산 버퍼는, 이러한 인덱스가 128보다 큰 벡터들의 구조에서 구현되고, 그래서 값들은 이전 또는 과거 블록들로부터의 값에 상응한다.
도 8b는 64 실수 오디오 서브밴드 채널에 대한 실수 합성 필터뱅크의 흐름도를 도시한다. 도 8b에 따른 실수 합성 필터뱅크는, 하나의 대응되는 SBR 필터뱅크로서 저전력 SBR 실시예의 경우에도 또한 구현될 수 있다.
도 8b의 흐름도는 도 8a의 흐름도와 다른데, 이는 주로 단계 S222에 관하여 도 8a의 단계 S220을 대체한다. 단계 S222에서, 64 새로운 실수 오디오 서브밴드 값은 행렬 Nr에 의해 곱해지며, 여기서 행렬 Nr(k,n)의 엘리먼트들은 다음과 같이 주어진다.
여기서, 이러한 동작에서 나오는 출력값이 배열 v의 위치 0-127에 다시 한번 저장된다.
이러한 변경은 별도로 하고, 저전력 SBR 모드를 위한 실수 합성 필터뱅크의 경우에 도 8b에 도시된 흐름도는, 높은 품질의 SBR 모드를 위한 복소수 합성 필터뱅크의 도 8a에 나타난 흐름도와 다르지 않다.
도 8c는 다운샘플링된 복소수 합성 필터뱅크와 적절한 방법의 형태를 가지는 본 발명의 일 실시예에 따른 흐름도를 도시하는데, 이는 예를 들어 높은 품질의 SBR 구현에 있어서 구현될 수 있다. 좀 더 정확하게는, 도 8c에 도시된 합성 필터뱅크는 32 서브밴드 채널을 위한 복소수 오디오 서브밴드 값을 프로세싱할 수 있는 복소수 합성 필터뱅크와 관련이 있다. SBR-동작 서브밴드 신호의 다운샘플링된 합성 필터링은, 도 8c에 도시된 바와 같이 32-채널 합성 필터뱅크를 이용하여 이룰 수 있다. 필터뱅크로부터 나온 출력은 실수 시간 영역 샘플의 한 블록이다. 이러한 동작은 도 8c의 흐름도에서 나타나 있다. 합성 필터링은 시작(단계 S300) 이후 다음의 단계들을 포함하며, 여기서 배열 v는 640 실수 시간 영역 샘플들을 포함한다.
단계 S310에서, 배열 v 내 샘플들은 64 포지션만큼 시프트되는데, 여기서 가장 오래된 64 샘플들이 버려진다. 그리고 나서, 단계 S320에서 32 새로운 복소수 서브밴드 샘플 또는 복소수 오디오 서브밴드 값들이 행렬 N에 의해 곱해지며, 이들의 엘리먼트들은 다음과 같이 주어진다.
여기서, exp()는 복소 지수 함수를 나타내고, i는 허수 단위이다. 이러한 동작에 의한 출력값의 실수 부분은 배열 v의 위치 0-63에 저장된다.
단계 S330에서, 320-엘리먼트 배열 g를 생성하기 위해, 도 8c의 흐름도에 주어진 수학식에 따라 샘플들이 벡터 v로부터 추출된다. 단계 S340에서, 보간된 윈도우 함수의 윈도우 계수 ci(n)는 수학식 15에 따라 계수 c(n)의 선형 보간에 의해 얻어지는데, 여기서 인덱스 n은 다시 한번 범위 0 내지 319 (수학시 (15)에 대해서는 N=64, T=10)이다. 이미 설명한 바와 같이, 윈도우 함수 c(n)의 계수들은 부록 1의 표에 주어진 값들에 기초한다. 게다가, 앞서 설명한 바와 같이 저지연 특성을 이루기 위해서는, 윈도우 계수 c(n)은 정확하게 부록 1의 표에 주어진 숫자들이 되기를 요구되지 않는다. 이는, 윈도우 계수 c(n)이 부록 2 내지 부록 4에 주어진 적어도 한 세트의 관계식을 이행한다면, 충분하다. 그러나, 구현상의 세부 사항에 따라, 부록 1과 부록 3의 표에 주어진 값들에 기초한 윈도우 계수들을 생성하기 위해서는, 인덱스 128 내지 255와 384 내지 511에 해당하는 윈도우 계수에 관하여 부가적인 부호 변화가, 수학식 16a 와 수학식 16b에 따라 고려되어져야만 한다. 게다가, 또한 다른 윈도우 계수 c(n)을 포함하는 다른 윈도우 함수들은 자연히 본 발명의 실시예들에서 구현될 수 있다.
단계 S350에서, 배열 g의 샘플들은, 윈도우된 시간 영역 샘플 w(n)을 생성하기 위해, 보간된 윈도우 함수의 보간된 윈도우 계수 ci(n)에 의해 곱해진다.
그리고 나서, 단계 S360에서 32 개의 새로운 출력 샘플들이, 도 8c의 흐름도에서 마지막 단계 S 370 전의 마지막 단계 S360에 따라 배열 w(n)으로부터 샘플들의 합산에 의해 계산된다.
이미 설명된 바와 같이, 도 8c의 흐름도에서, X([k][l])(=x(k,l))은 오디오 서브밴드 채널 k에서 오디오 서브밴드 값에 해당한다. 게다가, 도 8c에 설명된 바와 같이 흐름도의 모든 새로운 루프는 32 실수 시간 영역 샘플들을 결과물로서 생성한다.
도 8d는 다운샘플링된 실수 합성 필터뱅크의 형태를 갖는 본 발명에 따른 일 실시예의 흐름도를 나타내는데, 이는 예를 들어 저전력 SBR 필터뱅크의 경우에 이용될 수 있다. 이러한 실시예와 도 8d에 나타난 흐름도는, 다운샘플링된 복소수 합성 필터뱅크에 관한 도 8c에 나타난 흐름도와 오직 단계 S320에 관하여만 다른데, 이는 단계 S322에 의해 도 8d에 나타난 흐름도에서 대체된다.
단계 S322에서, 32 개의 새로운 실수 오디오 서브밴드 값 또는 서브밴드 샘플이 행렬 Nr에 의해 곱해지며, 여기서 행렬 Nr의 엘리먼트들은 다음에 의해 주어진다.
여기서, 이러한 동작에 의한 출력은 배열 v의 위치 0 내지 64에 저장된다.
도 9a는 64 서브밴드를 위한 복소수 분석 필터뱅크에 해당하는 방법 형태의 비교예의 구현예를 나타낸다. 도 9a는 MATLAB-구현으로서 실시예를 나타내는데, 이는 출력으로서 벡터 y와 벡터 "상태"를 제공한다. 도 9a의 스크립트에서 정의된 바와 같이, 이 함수는 LDFB80으로 불리며, 새로운 오디오 샘플와 벡터 "상태"를 포함하는 벡터 x가 입력으로서 LDFB80으로 제공된다. 함수 LDFB80의 이름은 과거와 0 블록으로부터 미래(future)로 연장되는 8 블록을 위한 저지연 필터뱅크의 약어이다.
MATLAB-프로그래밍 언어에서, 퍼센트 부호 (%)는 수행되지는 않지만 소스 코드를 주석을 달고 설명하는 목적을 제공한다. 이하에서는, 소스 코드(source code)의 다른 세그먼트가 그 기능에 관하여 설명될 것이다.
코드 시퀀스(code sequence) S400에서, 벡터 "상태"에 의해 표현되는 버퍼는, 인덱스 577 에서 640을 가지는 벡터 "상태"의 내용이 새로운 시간 영역 오디오 입력 샘플들을 포함하는 벡터 x의 내용에 의해 대체되는 방식으로 업데이트된다. 코드 시퀀스 S410에서, 변수 LDFB80_win에 저장되는 분석 윈도우 함수의 윈도우 계수들이 벡터 win_ana로 전송된다.
단계 S420에서는, 가장 나중(latest) 샘플들이 버퍼의 오른쪽으로 정렬된다고 가정하고, 실제 윈도우잉이 수행된다. 단계 S420에서, 벡터 상태의 내용이, 분석 윈도우 함수를 포함하는 벡터 win_ana의 엘리먼트들과 엘리먼트 연산 방식으로 곱해진다. 이러한 곱의 출력은 다음으로 벡터 x_win_orig로 저장된다.
단계 S430에서, 벡터 x_win_orig의 내용이 x_stack로 불리는 128ㆍ5 엘리먼트들의 크기를 가지는 행렬을 형성하기 위해 새 형태를 취하게 된다. 단계 S440에서, 스택 x_stack의 부호 변화는 행렬 x_stack의 두번째 및 네번째 컬럼(column)에 관하여 수행된다.
단계 S450에서, 스택 x_stack은 제2 인덱스에 관하여 x_stack의 엘리먼트들을 합산함으로써 그리고 동시에 엘리먼트들의 순서를 반전하고 결과를 다시 다양한 x_stack에 저장하기 전에 결과의 위치를 바꿈으로써 붕괴되거나 축소된다.
코드 세그먼트 S460에서, 시간 영역으로부터 주파수 영역으로의 변환은, 인수 (-iㆍπㆍn/128)이 제공된 복소 지수 함수와 0 내지 -127의 범위에 있는 인덱스 및 허수 단위 i와 곱해진 스택 x_stack의 엘리먼트 연산 방식으로 곱해진 내용을 복소 푸리에 변환 연산하여 수행된다.
코드 세그먼트 S470에서, 포스트 트위들(post twiddle)이, 변수 m=(64+1)/2를 정의함으로써 그리고 다음 수학식에 따른 벡터 y로서 오디오 서브밴드 값에 포함되는 블록을 계산함에 의해서 수행된다.
인덱스 k는, 도 9a에 도시된 실시예에서 1 내지 64의 정수의 범위를 커버한다. 벡터 y는, 벡터 또는 도 1의 오디오 서브밴드 값 180을 포함하는 블록 또는 벡터로서의 출력된다. 도 9a의 함수 conj() 인코드 세그먼트 S417뿐만 아니라 두 번째 인수분해(factoring) 수학식 26의 위에 있는 바(bar)는 각 복소수의 인수(argument)의 복소 공액(complex conjugate)을 의미한다.
마지막 코드 세그먼트 S480에서, 상태-벡터는 64 엘리먼트 만큼 시프트된다. 다음으로, 시프트된 형태의 상태-벡터는, 함수의 추가적인 루프에서 입력으로서 함수 LDFB80에 제공될 수도 있다.
도 9b는 32 서브밴드를 위한 복소 분석 필터뱅크에 따른 방법 형태를 갖는 본 발명의 일 실시예에 따라 MATLAB-구현을 나타낸다. 따라서, 정의된 함수는 과거로의 0 블록으로부터 미래로의 8 블록의 부가적인 오버랩에 기초한 32 서브밴드를 위한 저지연 필터뱅크를 나타내는 실시예를 지시하는 LDFB80_32로 불려진다.
도 9b의 실시예는, 이하에서 설명되겠지만 단지 몇 코드 시퀀스에 관하여만 도 9a의 실시예와 다르다. 코드 시퀀스 S400, S430, S460, S470과 S480은, 주로 서브밴드의 수 또는 함수 LDFB80_32에 의한 서브밴드 값 출력의 수가 인자 2에 의해 감소된다는 사실을 고려하는, 대응되는 코드 시퀀스 S400', S430', S460', S470'에 의해 대체된다. 따라서 단계 S400'은, 인덱스 289 내지 320에 해당되는 32 개의 마지막 엔트리와 도 1에 나타난 새로운 블록 220의 해당하는 32 개의 시간 영역 오디오 입력 샘플들과 관련하여 업데이트되는 벡터 상태와 관련이 있다.
그러나, 도 9a와 도 9b에 나타난 바와 같이, 실시예들 사이의 주요 차이는 도 9a의 코드 시퀀스 S410에 나타나는데, 이는 도 9b에 나타난 실시예에서 코드 시퀀스 S412에 의해 대체된다. 도 9b의 S412에 대한 코드 시퀀스는 벡터 LDFB80_win에 저장된 윈도우들을 포함하는 640 윈도우 계수들을 로컬 벡터(win_ana)로 복사하 는 것을 포함한다. 그리고 나서, 수학식 15에 따른 보간이 발생하는데, 이에는 벡터 win_ana의 벡터 엘리먼트들에 의해 표현되는 두개의 연속적인 윈도우 계수들이 더해지고 2에 의해 나뉘어지며, 그리고 나서 다시 벡터 win_ana에 저장된다.
다음 코드 시퀀스(S420)는 도 9a에 나타난 바와 같이 코드 시퀀스(S420)과 동일한데, 이는 벡터 상태의 값 또는 엘리먼트들의 윈도우잉과 보간된 윈도우 함수의 보간된 윈도우 계수들을 포함하는 벡터 win_ana의 엘리먼트들 간의 엘리먼트 연산 방식의 곱을 수행한다. 이 동작의 출력은 벡터 x_win_orig에 저장된다. 그러나, 도 9b의 코드 시퀀스 S420과 도 9a의 해당 코드 시퀀스 S420 사이의 차이는 도 9b의 경우에 640가 아닌 320 곱만이 윈도우잉의 구조에서 수행된다.
코드 시퀀스 S430을 대체하는 코드 시퀀스 S430'에서, 스택 x_stack은 벡터 x_win_orig의 새 형태를 취함에 의해 준비된다. 그러나, 벡터 X_win_orig가 단지 320 엘리먼트들을 포함하기 때문에, 640 엘리먼트들을 포함하는 도 9a의 해당 벡터들과 비교하며, 행렬 x_stack은 오직 64ㆍ5 엘리먼트들의 행렬이다.
부호 변화의 코드 시퀀스 S440과 스택을 붕괴하는 코드 시퀀스 S450은, 엘리먼트(640에 비교하여 320)의 감소된 수는 별도로 하고, 도 9a와 도 9b에 따른 양 실시예들에 있어서 동일하다.
코드 시퀀스 S460을 대체하는 코드 시퀀스 S460'에 있어서, 윈도우 데이터의 기수 복소 푸리에 변환(complex Fast Fourier Transform)이 수행되며, 이는 도 9a의 코드 시퀀스 S460의 변환과 꽤 유사하다. 그러나, 출력 오디오 서브밴드 값의 감소된 수 때문에, 다시 한번 벡터 temp에는 푸리에 변환의 결과물 즉, 스택 x_stack의 엘리먼트들과 인수(-iㆍπㆍn/64)의 복소 지수 함수의 엘리먼트 연산 방식의 곱이 제공되며, 여기서 인덱스 n은 0 내지 63의 범위에 있다.
이후에, 변경된 코드 시퀀스 S470'에서, 포스트 트위들링(post twiddling)이 변수 m=(32+1)/2를 정의함으로써 그리고 수학식 26에 따라 출력 벡터 y를 생성함에 의해 수행되며, 여기서 인덱스 k는 단지 1 부터 32의 범위를 커버하고 복소 지수 함수의 인수에 나타나는 수 128은 수 64에 의해 대체된다.
마지막 코드 시퀀스 S480'에서, 버퍼 상태는, 도 9b에 나타난 실시예의 경우에 32 엘리먼트 만큼 시프트되는데, 여기서 해당하는 코드 시퀀스 S480에서는 64 엘리먼트들 만큼 시프트된다.
도 10a는 64 서브밴드를 위한 복소수 합성 필터뱅크에 해당하는 방법 형태의 비교 예에 따라 구현예를 설명하는 MATLAB-스크립트(MATLAT-script)를 나타낸다. 도 10a에 나타난 스크립트는 함수 ILDFB80을 정의하며, 이에는 도 2a의 오디오 서브밴드 값의 블록 320을 나타내는 벡터 x와 상태 벡터 "상태"가 입력 파라미터로서 제공된다. ILDFB80의 이름은, 정의된 함수가 과거로부터 8 블록의 오디오 데이터 및 미래로부터의 0 블록에 해당하는 반전 저지연 필터뱅크라는 것을 나타낸다. 함수는 벡터 y와 새로운 또는 재정의된 상태-벡터 "상태"를 출력으로서 제공하는데 여기서 벡터 y는 도 2a로부터의 시간 영역 오디오 샘플의 블록 410에 해당된다.
코드 시퀀스 S500에서, 프리-트위들링(pre-twiddling)이 수행되며, 여기서 벡터 temp뿐만 아니라 변수 m=(64+1)/2가 정의된다. 벡터 temp의 엘리먼트 temp(n)은 다음 방정식에 따라 정의된다.
여기서, 벡터 x(n) 엘리먼트 위에 있는 바(bar)와 함수 conj()는 복소 공액을 나타내고, exp()는 복소 지수 함수를 나타내고, i는 허수 단위를 나타내고 n은 1 내지 64의 범위에 있는 인덱스를 나타낸다.
코드 시퀀스 S510에서, 벡터 temp는 첫번째 칼럼에서 벡터 temp의 엘리먼트들을 포함하고, 두번째 칼럼에서 벡터의 인덱스에 의해 정의된 엘리먼트들의 순서에 관하여 반전된 벡터 temp의 복소 공액을 포함하는 행렬에 달한다. 그래서, 코드 시퀀스 S510에서는 행렬 temp의 기수 대칭(odd-symmetry)이 벡터 temp에 기초하여 설정된다.
코드 시퀀스 S520에서는 기수 푸리에 변환이 행렬 temp에 기초하여 수행된다. 이 코드 시퀀스에서, 인수 (iㆍπ/128)을 포함하는 지수 함수를 갖는 행렬 temp의 역 푸리에 변환의 결과에 대한 엘리먼트 연산 방식의 곱의 실수부분이 수행되고 벡터 y_knl로 출력되며, 여기서 인덱스 n은 범위 0 에서 127의 범위에 있다.
코드 시퀀스 S530에서, 데이터의 연장과 교번하는 부호 반전이 형성된다. 이를 달성하기 위해, 벡트 y_knl의 엘리먼트들이 반전되고 동시에 부호 반전이 수행된다. 그러면, 벡터 y_knl의 첫번째, 세번째 그리고 다섯번째 칼럼을 포함하는 행렬 temp가 정의되며, 여기서 두번째 및 네번째 컬럼은 부호가 플립된 벡터 y_knl을 포함한다.
코드 시퀀스 S540에서, 벡터 LDFB80_win에 저장된 윈도우 계수들은 먼저 벡터 win_ana로 복사된다. 그리고 나서, 다음 수학식에 따른 분석 윈도우 함수의 시간 반전된 버전을 생성함에 의해 벡터 win_ana에 저장됨에 따라, 합성 윈도우 계수는 분석 윈도우 계수에 기초하여 결정된다.
여기서, NㆍT는 윈도우 계수의 전체 개수이고 n은 윈도우 계수의 인덱스이다.
코드 시퀀스 S550에서, 합성 윈도우는 합성 윈도우 함수를 가지는 벡터의 엘리먼트 연산 방식의 곱에 의해 벡터 tmp에 적용된다. 코드 시퀀스 S560에서, 버퍼는 인덱스 577 부터 640에 이르는 벡터 상태의 엘리먼트들을 0으로 설정함에 의해서 그리고 윈도우된 벡터 tmp의 내용을 상태-벡터 상태에 부가함에 의해서 업데이트된다.
코드 시퀀스 S570에서, 시간 영역 오디오 샘플들을 포함하는 출력 벡터 y는, 상태-벡터의 엘리먼트들을 추출함에 의해서 그리고 인덱스 1 내지 64를 가지는 상태-벡터의 엘리먼트들을 추출함에 의해서 상태-벡터로부터 추출된다.
도 10a에 나타난 함수의 마지막 코드 시퀀스인 S580에서, 상태-벡터 상태는 64 엘리먼트만큼 시프트되어, 인덱스 65 내지 640의 엘리먼트들이 벡터 상태의 처음 576 개의 엘리먼트들로 복사된다.
도 10b는 32 서브밴드 값에 대한 복소수 합성 필터뱅크의 형태를 갖는 본 발명의 일 실시예에 따른 MATLAB-스크립트를 보여준다. 도 10b에 나타난 스크립트에 의해 정의된 함수의 이름은, 이것이 ILDFB80_32로 불리는 정의된 함수인 경우, 정의된 함수가 과거로부터의 8 블록으로부터 미래로부터의 0 블록의 오버랩을 위한 역 저지연 필터뱅크임을 나타내는 함수임을 설명한다.
도 9a와 도 9b에 나타난 구현예의 비교에 관하여 논의된 바와 같이, 도 10b의 스크립트에 따른 구현은 또한 도 10a에 따른 64-서브밴드 합성 필터뱅크의 구현과 밀접히 관련되어 있다. 결과적으로, 동일한 벡터들이 이 함수에 제공되고 이 함수에 의해 출력되나, 이는 도 10a의 구현에 비교하여 엘리먼트들의 수의 절반만을 포함한다. 32 밴드를 위한 32-밴드 합성 필터뱅크를 위한 구현은 주로 두가지 면에서 도 10a에 도시된 64-서브밴드 버전과는 다르다. 코드 시퀀스 S500, S510, S520, S530, S560, S570 그리고 S580은, 엘리먼트의 수가 어드레스되고, 엘리먼트-관련 파라미터의 추가적인 수가 2로 나누어지는 코드 시퀀스들로 대체된다. 게다가, 합성 윈도우 함수를 생성하는 코드 시퀀스 S540은 코드 시퀀스 S542에 의해 대체되며, 수학식 15에 따른 선형 보간된 합성 윈도우 함수로서 합성 윈도우 함수가 생성된다.
코드 시퀀스 S500을 대체하는 코드 시퀀스 S500'에서, 변수 m은 m=(32+1)/2와 동일하도록 정의되고, 벡터 temp는 수학식 27에 따라 정의되는데, 여기서 인덱스 n은 단지 1 내지 32의 범위만을 커버하며 인자 1/128은 지수 함수의 인수에서 인자 1/64에 의해 대체된다.
따라서, 코드 시퀀스 S510을 대체하는 코드 시퀀스 S510'에서, 인덱스 범위는 벡터 temp를 포함하는 32-엘리먼트의 인덱스만을 커버한다. 즉, 인덱스는 1 내지 32의 값만을 커버한다. 따라서, 코드 시퀀스 S520을 대체하는 코드 시퀀스 S520'에 있어서, 지수 함수의 인수는 (iㆍπㆍn/64)에 의해서 대체되는데, 여기서 인덱스 n은 0 내지 63의 범위에 있다. 코드 시퀀스 S530'의 구조에서, 인덱스 범위는 또한 코드 시퀀스 S530에 비교하여 인자 2에 의해 또한 감소된다.
도 10a의 코드 시퀀스 S540을 대체하는 코드 시퀀스 S542는 또한 벡터 LDFB80_win에 저장된 윈도우 함수를 벡터 win_ana에 복사하고, 수학식 28에 따라 win_syn의 시간 반전된 버전을 생성한다. 그러나, 도 10b에 나타난 구현예에서 코드 시퀀스 S542는 수학식 15에 따른 보간 단계를 포함하는데, 이 단계에서는 합성 윈도우 함수의 윈도우 계수를 포함하는 재정의된 벡터 win_syn의 각 엘리먼트에 대해, 원래의 합성 윈도우 함수의 두 연속적인 윈도우 계수의 선형 보간이 이루어진다.
윈도우를 벡터 tmp에 적용하고, 엘리먼트 tmp를 윈도우된 버전으로 대체하는 코드 시퀀스 S550은, 도 10a 및 도 10b에서 각 코드 시퀀스들의 직접적인 비교예로서 코드의 견지에서 동일하다. 그러나, 도 10b의 구현예에서 벡터 tmp의 더 작은 크기 때문에, 구현 중에, 곱셈의 절반만이 수행된다.
코드 시퀀스 S560, S570, 그리고 S580 각각을 대체하는 코드 시퀀스 S560', S570' 그리고 S580'의 구조에서는 또한, 인덱스 640과 인덱스 64가 인덱스 320 및 32에 의해 대체된다. 그래서, 이들 세 마지막 코드 시퀀스들은, 벡터 상태 tmp와 y의 크기에 관하여 도 10a에 나타난 구현예의 코드 시퀀스와 다르다.
지금까지 설명된 실시예들이 예시하는 바와 같이, 합성 윈도우어뿐만 아니라 분석 윈도우어는, 이들을 엘리먼트 연산 방식으로 윈도우 함수의 윈도우 계수와 곱함에 의해서 각 프레임들에 포함된 시간 영역에서 각 샘플들을 윈도우잉하도록 적용된다.
예를 들어, 시간 반전된 버전에서 좀 더 구체적으로 합성 윈도우 함수와 분석 윈도우 함수로서 이용될 수 있는 윈도우 함수를 설명하기 전에, 본 발명에 따른 실시예들의 장점이 좀 더 상세하게 특히 도 5 및 도 6에 나타난 SBR 툴 또는 SBR 시스템의 구조의 실시예의 관점에서 설명될 것이다.
장점들 중에서, 본 발명에 따른 실시예들과 본 발명에 따른 하나의 실시예 그 이상으로 구성되는 시스템들이 제공할 수 있는 것은, 다른 필터뱅크들에 따른 지연의 상당한 감소이다. 그러나, 이러한 저지연 특성은 도 13 및 도 14의 해당 설명 부분에서 좀 더 구체적으로 설명될 것이다. 이 부분에서 하나의 중요한 면은 윈도우 함수의 길이, 즉 시간 영역 샘플의 한 프레임 또는 한 블록에 적용되는 윈도우 계수들의 수가 지연에 대해 독립적이라는 점을 주의해야 한다는 것이다.
본 발명에 따른 실시예들은 재구성된 오디오 데이터의 품질을 개선하는, 추가적인 장점을 제공한다. 본 발명에 따른 실시예들에서 이용되는 보간은, 윈도우 계수들의 수에 관하여 다른 감소 방식에 비교할 때 현저하게 감소된 에일리어싱을 제공한다.
게다가, 도 17 및 도 18의 해당 설명 부분에서 좀 더 상세하게 설명되겠지 만, 음향심리학의 관점에서, 본 발명에 따른 실시예들은, 종종 다른 많은 필터뱅크들보다 인간 청력 기관의 일시적인 마스킹 특성(temporal masking properties)을 더 잘 이용한다. 더구나, 도 15, 도 16 및 도 19의 해당 설명 부분에서 보다 자세히 설명되겠지만, 본 발명에 따른 실시예들은 뛰어난 주파수 응답을 제공한다.
또한, 본 발명의 일 실시예에 따른 많은 필터뱅크에서, 분석 필터뱅크와 합성 필터뱅크가 서로 연결된다면, 완벽한 재구성이 이루어질 수 있다. 다시 말하면, 본 발명에 따른 실시예들은, 그렇게 연결된 세트의 분석 필터뱅크와 합성 필터뱅크의 입력에 비교하여 청력적으로 구별할 수 없는 출력뿐만 아니라, (양자화 에러, 계산 라운딩 효과(computational rounding effects)와 필요한 discretization에 의한 추가적인 효과는 별도로 함) 입력에 비교하여 동일한 출력을 제공한다.
본 발명에 따른 필터뱅크의 SBR 모듈에서의 통합은 쉽게 이루어질 수 있다. 전형적으로 SBR 모듈은 듀얼-레이트 모드에서 동작하는 반면, 원 SBR-QMF 필터뱅크들이 거의 완벽한(near-perfect) 재구성만을 제공하는 동안에는, 본 발명의 실시예들에 따른 복소수 저지연 필터뱅크는 싱글-레이트 모드에서 완벽한 재구성을 제공할 수 있다. 듀얼-레이트 모드에서, 32-밴드 버전의 임펄스 응답은, 두 근접 탭(tap)의 다운샘플링 또는 64-밴드 임펄스 응답의 윈도우 계수 또는 도 3의 해당 설명 부분에서 설명되는 바와 같은 윈도우 함수로 불리는 선형 보간에 의해서 얻어진다.
필터뱅크의 복소수 구현의 경우에, 임계적으로 샘플링된 필터뱅크를 위해 상당히 감소된 분석(또는 합성) 지연이 이루어질 수 있으며, 여기서 샘플링 또는 동 작 주파수는 나이퀴스트-섀논(Nyquist_shannon) 이론에 따른 경계 주파수에 대응된다. 필터뱅크의 실수 구현의 경우에는, 효율적인 구현이, 예를 들면 도 9 및 도 10에 나타난 MATLAB-구현의 해당 설명 부분에서 설명된 것처럼, 최적화된 알고리즘을 이용함으로써 이루어질 수 있다. 이러한 구현은 예를 들면, 도 5 및 도 6의 해당 설명 부분에서 설명된 바와 같이, SBR 툴의 저전력 모드에 대해서 이용될 수 있다.
도 5 및 도 6의 해당 설명 부분에서 설명된 바와 같이, 본 발명의 일 실시예에 따른 복소 저지연 필터뱅크를 사용함에 의해, SBR 시스템의 경우의 지연에 관한 추가적인 감소를 달성하는 것이 가능하다. 앞서 설명된 바와 같이, 도 5에 나타난 SBR 디코더(610)에서, QMF 분석 필터뱅크(620)는 본 발명의 일 실시예에 따른 복소 저지연 필터뱅크(CLDFB)에 의해 대체된다. 이러한 대체는, 밴드(64)의 수, 임펄스 응답(640)의 길이를 유지하고, 복소 변조를 이용함에 의해, 계산 가능한 방식으로 이루어질 수 있다. 이러한 툴에 의해 달성되는 지연은, 달성가능한 품질 레벨을 희생시키지 않은채 양방향 통신을 위해 충분히 낮은 전체적인 지연을 달성할 정도로 최소화된다.
예를 들어, 복소 MDCT와 같은 시스템을 형성하기 위한 MDCT 또는 MDST가 포함되는 시스템과 비교하면, 본 발명에 따른 일 실시예는 훨씬 좋은 주파수 응답을 제공한다. 예를 들어, 오늘날 MPEG-4 SBR에 이용되는 QMF 필터뱅크와 비교할 때, 본 발명의 실시예들에 따른 하나 또는 그 이상의 필터뱅크가 포함되는 시스템은 상당히 낮아진 지연을 제공한다.
저지연 필터뱅크와 비교할 때도, 본 발명에 따른 실시예들은 더 낮아진 지연과 결합된 완벽한 재구성의 장점을 제공한다. QMF 필터뱅크의 거의 완벽한 재구성과 대조하여 완벽한 재구성 특성으로부터 생기는 장점들은 다음과 같다. 거의 완벽한 재구성에 대해서는, 높은 스톱밴드 감쇠가 상당히 낮은 수준으로 에일리어싱을 감소하기 위해 필요하다. 이는 필터 설계에서 매우 낮은 지연을 달성할 가능성을 제한한다. 대조적으로, 지금 본 발명에 따른 일 실시예를 이용하는 것은, 독립적으로 필터를 설계할 가능성을 가지게 되며, 상당히 낮은 수준으로 에일리어싱을 감소시키기 위해 높은 스톱밴드 감쇠가 필요하지 않다. 스톱밴드 감쇠는 바람직한 신호 프로세싱 애플리케이션에 충분한, 감소된 에일리어싱을 허용하기에 충분히 낮아야만 한다. 그래서, 저지연을 위한 더 나은 절충안이 필터 설계에서 이루어질 수 있다.
도 11은 예를 들어, 본 발명에 따른 일 실시예에서 이용될 수 있는 윈도우 함수(700)의 비교예를 사인-윈도우 함수(710)와 함께 나타낸다. 또한 "합성" CMLDFB-윈도우(CMLDFB = complex modulated low-delay filterbankd)로 불리는 윈도우 함수(700)는 부록 1의 표에 주어진 값에 기초한 640 윈도우 계수들을 포함한다. 윈도우 함수의 크기와 관련하여 윈도우된 신호의 크기를 조정하기 위한 일반 증폭 인자 또는 제동 인자는 다음에서 고려되지 않는다는 것을 주의해야 한다. 윈도우 함수들은, 예를 들면 도 13의 해당 설명 부분에서 설명된 바와 같이 지연의 중심에 대응되는 값에 관하여 또는 값 n=N, n=N-1 또는 n=N+1에 관하여 표준화될 수 있으며, 여기서 N은 블록 길이이고, n은 윈도우 계수의 인덱스를 나타낸다. 대조적으 로, 사인-윈도우 함수(710)는 128 샘플들에 대해서만 정의되며, 예를 들어 MDCT 또는 MDST 모듈의 경우에 이용된다.
그러나, 구현상 세부사항에 따라, 부록 1 및 부록 3의 표에 주어진 값들에 기초한 윈도우 함수들을 생성하기 위해서는, 인덱스 128 내지 255와 384 내지 511(인자 (-1)과 곱함)에 대응되는 윈도우 계수들에 관한 부가적인 부호 변화가 수학식 16a 및 수학식 16b에 따라 고려되어야만 한다.
두 윈도우 함수(700,710)의 차이점을 논의하기 전에, 두 윈도우 함수들은 모두 실수 윈도우 계수들만을 포함함을 주의하여야 한다. 게다가, 두 경우 모두, 인덱스 n=0에 대응되는 윈도우 계수의 절대값이 0.1보다 작다. CMLDFB-윈도우(700)의 경우에, 각 값은 0.02보다도 작다.
두 윈도우 함수(700,710)를 그들의 정의 세트에 관하여 고려하면, 몇 가지 중요한 차이점들이 명백해진다. 사인-윈도우 함수(710)이 대칭인 반면, 윈도우 함수(700)은 비대칭적인 양상을 나타낸다. 이를 좀 더 분명하게 정의하면, 윈도우 함수(710)가 모든 실수 값 n에 대하여 (n
0+n)과 (n
0-n) 동안에 정의되고, 다음 관계식-여기서, w(n)은 인덱스 n에 대응되는 윈도우 계수를 나타냄-이 바람직한 마진(
>0; 수학식 29의 양변에서 조건들의 차이의 절대치가
보다 작거나 같음)을 두고 수행되도록 하는 실수 값 n
0가 존재할 때, 윈도우 함수는 대칭이 된다.
사인-윈도우의 경우에 각 인덱스 n0는 정확하게 두 개의 가장 높은 윈도우 계수들의 중앙에 위치한다. 다시 말하면, 사인 윈도우 함수(710)에 대해서 인덱스는 n0=63.5이다. 사인-함수는 인덱스 n=0, ..., 127에 대해서 정의된다.
대조적으로, 윈도우 함수(700)은 인덱스 n=0, ..., 639의 세트에 대해 정의된다. 윈도우 함수(700)는, 모든 실수 n0에 대해 (n0+n)와 (n0-n)이 윈도우 함수의 정의 세트에 속하도록 하는 적어도 하나의 실수가 항상 존재한다는 의미에서는 분명히 비대칭이며, 이에 대한 다음 부등식은
(거의 고의적으로) 정의 가능한 마진(
>0; 수학식 29의 양변의 차이의 절대값이
보다 크거나 같음)을 고수하며, 여기서 w(n)은 인덱스 n에 해당하는 윈도우 계수이다.
N=64 샘플의 블록 크기와 관련되어 있는 두 윈도우 함수 간의 추가적인 차이점들은, 윈도우 함수(700)의 최대치가 1보다 크다는 것이고, 이는 합성 윈도우에 대한 다음 수학식 31의 범위의 인덱스에 대해 얻어진다는 것이다.
도 11에 나타난 윈도우 함수(700)의 경우에, 구해지는 최대값은 샘플 인덱스 n=77에서 구해지는 1.04보다 크다. 대조적으로, 사인-윈도우(710)의 최대값들은 1보다 작거나 같으며, 이는 n=63과 n=64에서 구해진다.
그러나, 윈도우 함수(700)는 샘플 인덱스 n=N의 근처에서 대략 1의 값을 얻는다. 좀 더 정확하게는, 인덱스 n=N-1에 대응되는 윈도우 계수 w(N-1)의 절대치 또는 값 그 자체는 1 보다 작으며, 반면에 인덱스 n=N에 대응되는 윈도우 계수 w(N)의 절대값 또는 값 그 자체는 1 보다 크다. 본 발명에 따른 몇몇 실시예들에서는, 이러한 두 윈도우 계수들이 다음의 관계식을 따르며,
이는 본 발명의 실시예들에 따른 필터뱅크의 오디오 품질을 최적화한 결과이다. 많은 경우에, 가능한한 작은 절대값을 포함하는 윈도우 계수 w(0)를 가지는 것이 바람직하다. 이러한 경우에, 윈도우 계수들의 결정자(determinant)
는 오디오 품질을 생성하기 위해 가능한 한 1에 근접해야 하며, 이는 가능한 파라미터들에 관하여 최적화된다. 수학식 33에 의해 주어진 바와 같이, 결정자의 부호는 그러나, 자유롭게 선택될 수 있다. 0 보다 적거나 근접한 윈도우 계수 w(0)의 결과, w(N-1)ㆍw(N)의 곱(product) 또는 그 절대값은 가능한한 +/- 1에 근접해야한다. 이러한 경우에, 윈도우 계수 w(2N-1)은 거의 자유롭게 선택될 수 있다. 수학식 33은 G.D.T. Schuller and M.J.T. Smith, IEEE Transactions on Signal Processing, Vol. 44, No.8 August 1996에 의한 "New Framework for Modulated Perfect Reconstruction Filter Banks" 에서 설명된 무지연 행렬(zero-delay matrices)의 기술을 이용한 결과이다.
더 나아가, 도 13의 해당 설명 부분에서 설명되겠지만, 인덱스 N-1과 N에 대응되는 윈도우 계수들은, 변조 코어의 중앙에 포함되고 그래서 대략 1.0의 값을 가지는 샘플에 대응되며, 이는 프로토타입 필터 함수 또는 윈도우 함수에 의해 정의된 바와 같이 필터뱅크의 지연에 일치한다.
도 11에 나타난 합성 윈도우 함수(700)는 추가적으로, 가장 나중(latest) 시간 영역 오디오 샘플을 윈도우잉하는 데 사용되는 인덱스(n=0)에 대응되는 윈도우 계수들의 시퀀스의 윈도우 계수로부터 합성 윈도우 함수(700)의 모든 윈도우 계수들의 가장 높은 절대값을 포함하는 윈도우 계수에 이르기까지, 엄격하게 단조 증가하는 윈도우 계수들로 진동하는 양상을 보이고 있다. 자연스럽게, 시간 반전된 분석 윈도우 함수의 경우에는, 진동하는 양상은, (시간 반전된) 해당하는 분석 윈도우 함수의 모든 윈도우 계수들의 가장 높은 절대값을 포함하는 윈도우 계수로부터 가장 나중(latest) 시간 영역 오디오 샘플을 윈도우잉 하기 위해 사용되는 인덱 스(n=639)에 해당하는 윈도우 계수들의 시퀀스의 윈도우 계수에 이르기까지의, 엄격하게 단조롭게 감소하는 윈도우 계수들을 포함한다.
진동하는 양상의 결과로서, 합성 윈도우 함수(700)의 발전은 인덱스 n=0에 해당하는 윈도우 계수로 시작하는데, 이는 0.02 보다 작은 절대값과 0.03 보다 더 낮은, 인덱스 n=1에 해당하는 윈도우 계수의 절대값을 가지며, 인덱스 n=N에서 약 1의 값을 획득하고, 수학식 31에 해당하는 인덱스에서 1.04 보다 더 큰 최대값을 획득하며, 인덱스 n=90과 n=91에서 약 1의 추가적인 값을 획득하며, n=162와 n=163의 인덱스 값에서 부호가 처음으로 변하고, 인덱스 약 n=3N에서 -0.1 또는 -0.12755 보다 작은 최소한의 값을 획득하며, 인덱스 값 n=284 와 n=285에서 추가적으로 부호가 변한다. 그러나, 합성 윈도우 함수(700)는 추가적인 인덱스 값 n에서의 추가적인 부호 변화를 포함한다. 윈도우 계수들을 부록 1 및 부록 3의 표에서 주어진 값을 비교하면, 인덱스 128 내지 255와 384 내지 511에 해당하는 윈도우 계수들에 관하여 부가적인 부호 변화들(인자 (-1)과의 곱)이 수학식 16a 및 수학식 16b에 따라 고려되어야만 한다.
합성 윈도우 함수(700)의 진동 양상은 강하게 제동된 진동의 진동 양상과 유사한데, 이는 약 1.04의 최대값과 약 -0.12의 최소값으로 설명된다. 결과적으로, 모든 윈도우 계수들의 50% 이상이 0.1 보다 작거나 같은 절대값들을 포함한다. 도 1 및 도 2a에 설명된 실시예들의 해당 설명 부분에 설명된 바와 같이, 윈도우 함수의 전개는 제1 그룹(420 또는 200)과 제2 그룹(430 또는 210)을 포함하는데, 여기서 제1 그룹(420)은 윈도우 계수들의 제1 연속 부분을 포함하고 제2 그룹(430)은 윈도우 계수들의 제2 연속 부분들을 포함한다. 이미 앞서 설명된 바와 같이, 윈도우 함수의 윈도우 계수들의 시퀀스는 윈도우 계수들의 제1 그룹(420)과 윈도우 함수들(430)의 제2 그룹을 포함하며, 여기서 윈도우 계수들의 제1 그룹(420)은 정확하게 윈도우 계수들의 제1 연속 시퀀스를 포함하며, 제2 그룹(430)은 윈도우 계수들의 제2 부분을 포함한다. 그러므로, 윈도우 계수들의 제2 그룹(430)과 제2 부분이라는 용어뿐만 아니라 윈도우 계수들의 제1 그룹(420) 및 제1 부분이라는 용어들은 동일한 의미로 사용될 수 있다.
0.1 보다 작거나 같은 절대값들을 가지는 모든 윈도우 계수들의 50% 이상은, 윈도우 함수(700)의 강하게 제동된 진동 양상의 결과로서, 윈도우 계수들의 제2 그룹 또는 제2 부분(430)에 포함된다. 게다가, 윈도우 계수들의 제2 그룹 또는 제2 부분(430)에 포함되는 모든 윈도우 계수들의 50% 이상은 0.01 보다 작거나 같은 절대값들을 포함한다.
윈도우 계수들의 제1 그룹(420)은 윈도우 계수들의 시퀀스의 모든 윈도우 계수들의 1/3 보다 작은 윈도우 계수들을 포함한다. 따라서, 윈도우 계수들의 제2 부분(430)은 윈도우 계수들의 2/3 이상을 포함한다. 네 블록 이상의 프레임(120,150,330,380) 중 어느 하나에서 프로세싱될 블록 T의 총 수의 경우에, 제1 부분은 전형적으로 3/2ㆍN 윈도우 계수들을 포함하며, 여기서 N은 한 블록의 시간 영역 샘플들의 수이다. 따라서 제2 부분은 윈도우 계수들의 나머지 또는, 좀 더 정확하게는, (T-3/2)ㆍN 윈도우 계수들을 포함한다. 도 11에 나타난 바와 같이 프레임 당 T=10 블록의 경우에는, 제1 부분은 3/2ㆍN 윈도우 계수들을 포함하며, 반 면에 제2 부분(210)은 8.5ㆍN 윈도우 계수들을 포함한다. 블록 당 N=64 시간 영역 오디오 샘플들의 블록 크기의 경우에, 제1 부분은 96 윈도우 계수들을 포함하고, 반면에 제2 부분은 544 윈도우 계수들을 포함한다. 도 11에 나타난 합성 윈도우 함수(700)는 제1 부분과 제2 부분의 경계에서 n=95 또는 96 근처의 인덱스에서 약 0.96의 값을 획득한다.
제1 부분(420)과 제2 부분(430)에서 포함되는 윈도우 계수들의 수에도 불구하고, 해당하는 윈도우 계수들의 에너지 값 또는 전체 에너지 값은 서로서로 상당히 다르다. 에너지 값은 다음과 같이 정의되며,
여기서 w(n)은 윈도우 계수이고, 수학식 34에서 합계가 산정된 인덱스 n은 각 에너지 값 E가 대응되는 각 부분(420,430)의 인덱스, 윈도우 계수의 전체 세트 또는 윈도우 계수의 다른 세트에 해당한다. 윈도우 계수들의 상당한 차이에도 불구하고, 제1 부분(420)의 에너지 값은 모든 윈도우 계수들의 전체적인 에너지 값의 2/3와 같거나 더 높다. 따라서, 제2 부분(430)의 에너지 값은 모든 윈도우 계수들의 전체적인 에너지 값의 1/3 보다 작거나 같다.
이를 설명하기 위해, 윈도우 함수(700)의 윈도우 계수들의 제1 부분(420)의 에너지 값은 대략 55.85이며, 반면에 제2 부분(430)의 윈도우 계수들의 에너지 값은 약 22.81이다. 윈도우 함수(700)의 모든 윈도우 계수들의 전체적인 에너지 값 은 대략 78.03이며, 그래서 제1 부분(420)의 에너지 값이 전체적인 에너지 값의 대략 71.6%이며, 반면에 제2 부분(430)의 에너지 값은 모든 윈도우 계수들의 전체적인 에너지 값의 약 28.4%이다.
물론, 수학식 34는 에너지 값 E를 표준화 인자(nomalization factor) E0로 나눔으로써 표준화 버전으로 시작될 수 있으며, 이는 원칙적으로 어떤 에너지 값도 될 수 있다. 표준화 인자 E0는 예를 들어, 수학식 34에 따라 계산된 윈도우 계수들의 시퀀스의 모든 윈도우 계수들의 전체적인 에너지 값이 될 수 있다.
윈도우 계수들의 절대값에 기초하여 또는 각 윈도우 계수들의 에너지 값에 기초하여, 윈도우 계수들의 중심 지점 또는 "질량 중심"이 결정될 수 있다. 질량 중심 또는 윈도우 계수들의 시퀀스의 중심 지점은 실수이고 전형적으로 윈도우 계수들의 제1 부분(420)의 인덱스의 범위에 놓여 있다. 시간 영역 오디오 샘플(T>4)의 네 블록 이상을 포함하는 각 프레임의 경우에는, 윈도우 계수들의 절대값에 기초한 질량 중심 nca 또는 윈도우 계수들의 에너지 값에 기초한 질량 중심 nce는 3/2ㆍN 보다 작다. 다시 말하면, 프레임 당 T=10 블록의 경우에, 질량 중심이 제1 부분(200)의 인덱스의 영역 내에 잘 놓이게 된다.
윈도우 계수 w(n)의 절대값에 기초한 질량 중심 nca는 다음에 따라 정의되고
질량 중심 nce는 윈도우 계수 w(n)의 에너지 값의 관점에서 다음에 따라 정의되며,
여기서 N과 T는 각각, 블록 당 시간 영역 오디오 샘플의 개수를 나타내는 양의 정수와 프레임 당 블록의 개수이다. 물론, 수학식 35 및 수학식 36에 따른 중심 지점 또한, 위의 합계의 한계를 대체함으로써, 제한된 일련의 윈도우 계수들에 관하여 계산될 수 있다.
도 1에 나타난 윈도우 함수(700)에 대하여, 윈도우 계수의 절대값에 기초한 질량 중심 n
ca는
의 값과 동일하고, 윈도우 계수 w(n)의 에너지 값에 관한 중심 지점 또는 중심 질량 n
ce는
이다. 윈도우 함수(700)의 윈도우 계수의 제1 부분(200)이 96(=3/2ㆍN; N=64) 윈도우 계수들을 포함하는 반면, 두 중심 지점들은 모두, 이미 설명한 바와 같이 윈도우 계수의 제1 부분(200) 내에 잘 놓이 게 된다.
윈도우 함수(700)의 윈도우 계수 w(n)은 부록 1의 표에 주어진 값들에 기초한다. 그러나, 예를 들어, 앞서 설명한 바와 같이 필터뱅크의 저지연 특성을 달성하기 위해서는, 부록 1의 표의 윈도우 계수에 의해 주어진 것만큼 정확하게 윈도우 함수를 구현할 필요는 없다. 많은 경우에, 이는, 640 윈도우 계수들을 포함하는 윈도우 함수의 윈도우 계수들은 부록 2 내지 부록 4의 표에 주어진 관계식 또는 수학식을 수행하기에 충분하고도 남는다. 부록 1의 표에 주어진 윈도우 계수 또는 필터 계수는 바람직한 값을 나타내는데, 이는 어떤 구현 예에서는 수학식 16a 또는 수학식 16b에 따라 적용될 수도 있다. 그러나, 설명된 바와 같이, 예를 들어 추가적인 부록에서 주어진 추가적인 표에 의해, 바람직한 값들이 소수점 이하 2번째, 3번째, 4번째, 5번째 숫자로부터 변화될 수 있으며, 이에 결과적인 필터 또는 윈도우 함수는 여전히 본 발명의 실시예들에 따른 장점을 보유하도록 한다. 그러나, 구현상의 세부사항에 따라, 부록 1 내지 부록 3의 표에 주어진 값들에 기초한 윈도우 계수들을 생성하기 위해서는, 인덱스 128 내지 255와 384 내지 511(인자 -1에 의한 곱)에 해당되는 윈도우 계수들에 관한 부가적인 부호 변화가 수학식 16a 및 수학식 16b에 따라 고려되어야만 한다.
당연히, 다른 수의 윈도우 계수들을 포함하는 추가적인 윈도우 함수들이, 쉽게 정의될 수 있고 본 발명에 따른 실시예들의 구조에서 사용될 수 있다. 이 설명 부분에서는, 과거 샘플들과 미래 샘플들에 관한 블록의 배분뿐만 아니라 블록 당 시간 영역 오디오 샘플의 수와 프레임 당 블록의 수 양자 모두, 넓은 범위의 파라 미터에 걸쳐 변화될 수 있다는 것을 유의해야 할 것이다.
도 12는 도 11에 나타난 복소 변조된 저지연 필터뱅크 윈도우(CMLDFB-window)의 비교예와, 예를 들어 MPEG 표준에 따라 SBR 툴에서 이용되는 원 SBR QMF프로토타입 필터(720)를 보여준다. 도 11에 나타난 바와 같이, CMLDFB 윈도우(700)는 본 발명의 일 실시예에 따라 다시 한번 합성 윈도우가 된다.
본 발명의 일 실시예에 따른 윈도우 함수(700)가, 수학식 30의 해당 설명 부분에서 정의된 바와 같이 분명히 비대칭임에 반해, 원 SBR QMF 프로토타입 필터(720)는 인덱스 n=319 및 320에 관하여 대칭이며, SBR QMF 프로토타입 필터(720)뿐만 아니라 윈도우 함수(700)는 서로 640 인덱스 각각에 관해 정의된다. 다시 말하면, 수학식 29에 관하여 대칭 중심의 인덱스를 나타내는 "인덱스 값" n0는 SBR QMF 프로토타입 필터(720)의 경우에 n0=319.5에 의해 주어진다.
게다가, SBR QMF 프로토타입 필터(720)의 대칭성 때문에, 수학식 35 및 수학식 36에 따른 중심 지점 nca와 nce는 각각, 대칭 중심 n0와 동일하다. SBR QMF 프로토타임 필터(720)의 에너지 값은, 프로토타입 필터가 직교 필터인 경우에 64.00이다. 대조적으로, 분명히 비대칭인 윈도우 함수(700)는 앞서 설명한 바와 같이 78.0327의 에너지 값을 포함한다.
본 명세서의 다음 설명 부분에서는, 도 5 및 도 6의 해당 설명 부분에서 설명한 바와 같이 SBR 시스템이 고려될 것인데, 이 시스템에서 SBR 디코더(610)는, 필터뱅크(620)와 합성 필터뱅크(640)을 위한 합성 필터뱅크 형태의 본 발명에 따른 일 실시예와 같이 분석 필터뱅크 형태의 본 발명에 따른 실시예들을 포함한다. 좀 더 상세하게 설명되겠지만, 도 11 및 도 12에 나타난 윈도우 함수(700)를 이용하는 본 발명에 따른 분석 필터뱅크의 전제적인 지연은, 127 샘플의 전체적인 지연을 포함하는 반면에, 원 SBR QMF 프로토타입 필터기반 SBR 툴은 640 샘플의 전체적인 지연의 결과를 낳는다.
SBR 모듈, 예를 들어 SBR 디코더(610)에서, 복소수 저지연 필터뱅크(CLDFB)에 의한 QMF 필터뱅크의 대체는, 오디오 품질 또는 부가적인 계산 복잡도를 낮추지 않은 채, 42 ms에서 31.3 ms에 이르는 지연 감소의 결과를 가져온다. 도 7 내지 도 10에 관한 본 발명에 따른 실시예들의 설명에서 보여주는 바와 같이, 실수 필터뱅크만을 이용하는 표준 SBR 모드(높은 품질 모드)와 저전력 모드 양자 모두 새로운 필터뱅크로 지원된다.
특히 원격 통신과 양방향 통신의 분야에서는, 저지연이 매우 중요하다. 개선된 저지연 AAC는 이미 42 ms의 통신 애플리케이션에 충분한 지연 감소를 달성할 수 있는 반면, 그 알고리즘적인 지연은 여전히 저지연 AAC 코어 코덱의 것보다 높으며, 이는 20 ms만큼 감소된 지연과 다른 원격 통신 코덱의 지연 감소를 달성할 수 있는 것이다. SBR 디코더(610)에서, QMF 분석 및 합성 단계는 여전히 12 ms의 재구성 지연을 야기한다. 그러한 지연을 감소하기 위한 유망한 접근은 본 발명의 일 실시예에 따른 저지연 필터뱅크 기술을 이용하는 것과 현재 QMF 필터뱅크를 본 발명의 실시예들에 따른 각각의 저지연 버전으로 대체하는 것이다. 다시 말하면, 추가적인 지연 감소는 단순히 SBR 모듈(610)에 이용되는 일반적인 필터뱅크를 본 발명의 실시예들에 따른 복소 저지연 필터뱅크로 대체함에 의해 달성 가능하다.
SBR 모듈(610)에서의 이용에 대하여, 본 발명의 실시예들에 따른 새로운 필터뱅크는 CLDFB로도 불리는데, 이는 가능한 한 원래 사용된 QMF 필터뱅크에 유사하게 설계된다. 이는 예를 들어 64 서브밴드 또는 밴드의 이용, 동일한 길이의 임펄스 응답과, 듀얼-레이트 모드와의 양립 가능성을, SBR 시스템에 이용되는 바와 같이 포함한다.
도 13은 본 발명의 일 실시예와 원 SBR QMF 프로토타입 필터(720)에 따라 CLDFB 윈도우 형태(window shape)(700)의 비교예를 나타낸다. 더 나아가, 이는 변조된 필터뱅크의 지연을 나타내는데, 이는 DCT-IV-기반 시스템의 경우에 N 샘플 길이를 가지는 변조 코어의 프레임 지연에 부가하여 프로토타입 필터 또는 윈도우 함수에 의하여 소개되는 오버랩 지연을 분석함으로써 결정될 수 있다. 도 13에 나타난 상황은 또 다시 합성 필터뱅크의 경우에 관한 것이다. 윈도우 함수(700)와 프로토타입 필터 함수(720)는 또한 관련된 두 필터뱅크의 합성 프로토타입 필터의 임펄스 응답을 나타낸다.
본 발명의 일 실시예에 따른 SBR QMF 필터뱅크와 제안된 CLDFB 양자에 대한 지연 분석에 관하여는, 분석과 합성에 있어서 단지 변조 코어의 오른쪽 면과 왼쪽 면에의 오버랩만이 각각 지연을 더한다.
양 필터뱅크에 대하여, 변조 코어는 64 샘플의 지연을 야기하는 DCT-IV에 기초하는데, 이는 도 13에서 지연(750)으로 표시된다. SBR QMF 프로토타입 필터(720)의 경우에는, 대칭성 때문에 변조 코어 지연(750)은 도 13에 도시된 바와 같이 각 프로토타입 필터 함수(720)의 질량 중심 또는 중심 지점에 관하여 대칭적으로 정렬된다. 이러한 양상에 대한 이유는 SBR QMF 필터뱅크의 버퍼가, 각 에너지 값의 프로토타입 필터 값의 견지에서 가장 상당한 기여를 하는 프로토타입 필터 함수(720)가 다음 프로세싱에서 고려될 정도까지, 채워져야 한다는 것이다. 프로토타입 필터 함수(720)의 형태 때문에, 이는 버퍼가 각 프로토타입 필터 함수의 적어도 중앙 지점 또는 질량 중심에서 채워져야 될 것을 요구한다.
이를 좀 더 설명하기 위해, 해당하는 SBR QMF 필터뱅크의 모든 초기화된 버퍼로부터 시작하여, 버퍼가 데이터의 프로세싱이 상당한 데이터의 프로세싱에 이를 때까지 정도까지 채워질 필요가 있는데, 상당한 데이터의 프로세싱은 각 윈도우 함수 또는 프로토타입 필터 함수가 상당한 기여를 하도록 요구한다. SBR QMF 프로토타입 필터 함수의 경우에, 프로토타입 필터(720)의 대칭 형태는 지연을 만들어내는데, 이는 프로토타입 필터 함수의 대략 질량 중심 또는 중심 지점이다.
그러나, 샘플들에 대해 N=64의 DCT-IV-기반 시스템의 변조 코어에 의해 야기되는 지연이 항상 존재하고, 시스템은 또한 한 블록의 지연을 포함하므로, SBR QMF에 대한 합성 프로토타입은 288 샘플의 오버랩 지연을 야기한다는 점을 주의해야 한다.
앞서 설명된 바와 같이, 도 13에 관련된 합성 필터뱅크의 경우에는, 이러한 부가적인 왼쪽 면 오버랩(770)이 지연을 야기하는 반면에 오른쪽 면 오버랩(760)은 과거 샘플들에 관련되고 그런 이유로 합성 필터뱅크의 경우에 부가적인 지연을 야기하지 않는다.
대조적으로, 본 발명의 일 실시예에 따른 CDLFB의 모든 초기화된 버퍼로부터 시작하여, 분석 필터뱅크 뿐만 아니라 합성 필터뱅크는, 윈도우 함수의 형태 때문에, "의미있는" 데이터를 SBR QMF 필터뱅크에 비교하여 좀 더 빨리 제공할 수 있다. 다시 말하면, 분석 또는 합성 윈도우 함수(700) 때문에, 상당한 기여를 나타내는 윈도우 함수들에 의해 프로세싱되는 샘플들이 더 빠르다. 결과적으로, CLDFB의 합성 프로토타입 또는 합성 윈도우 함수는, 변조 코어(750)에 의해 이미 야기된 지연을 고려한 32 샘플의 오버랩 지연만을 야기한다. 본 발명의 일 실시예에 따른 윈도우 함수(700)의 윈도우 계수의 제1 부분(420) 또는 제1 그룹(420)은, 본 발명에 따른 바람직한 실시예에서 변조 코어 지연(750)과 함께 왼쪽 면 오버랩(760)에 의해 야기되는 지연에 대응되는 96 윈도우 계수들을 포함한다.
동일한 지연이 분석 필터뱅크 또는 분석 프로토타입 함수에 의해 야기된다. 그 이유는 분석 필터뱅크가 시간 반전된 버전의 합성 윈도우 함수 또는 프로토타입 함수에 기반한다는 것이다. 그래서, 오버랩 지연은 합성 필터뱅크에 대한 것과 동일한 오버랩 크기를 포함하는 오른쪽 면에서 야기된다. 그래서, 원 QMF 프로토타입 필터뱅크의 경우에, 또한 288 샘플의 지연이 야기되는 반면, 본 발명의 일 실시예에 따른 분석 필터뱅크에 대해서는 오직 32 샘플만이 지연으로서 야기된다.
도 14a에 도시된 표는, 480 샘플의 프레임 길이와 48 kHz의 샘플링율을 가정할 때, 다른 변경 단계들에서의 지연의 개요를 제공한다. 표준 SBR 툴과 함께 AAC-LD 코덱을 포함하는 표준 구성에서, 듀얼-레이트 모드의 MDCT 및 IMDCT 필터뱅크는 40 ms의 지연을 야기한다. 게다가, QMF 툴 그 자체는 12 ms의 지연을 야기한 다. 게다가, SBR-오버랩 때문에, 8 ms의 추가적인 지연이 더 생성되며 그래서 이러한 코덱의 전체적인 지연이 60 ms의 범위에 있게 된다.
비교예에서는 저지연 버전의 MDT 및 IMDCT를 포함하는 AAC-ELD는 듀얼-레이트 접근 방식에서 약 30ms의 지연을 생성한다. SBR 툴의 원 QMF 필터뱅크와 비교하여, 본 발명의 일 실시예에 따른 복소수 저지연 필터뱅크를 이용하는 것은 원 QMF 툴의 12 ms와 비교하여 오직 1 ms의 지연만을 가져온다. SBR-오버랩을 피함으로써, AAL-LD와 SBR 툴의 직접적인 조합의 8 ms의 부가적인 오버랩이 완전히 회피될 수 있다. 그런 이유로, 개선된 저지연 AAC 코덱은, 이미 설명한 직접적인 조합을 위해서는 60 ms보다 31 ms의 전체적인 알고리즘적인 지연이 가능하다. 그래서, 이미 설명한 지연 감소 방법의 조합은 정말 29 ms의 전체 지연을 감소해주는 결과를 가져온다고 보여질 수 있다.
도 14b의 표는 도 5 및 도 6에 나타난 시스템에서 원래의 그리고 제안된 필터뱅크 버전들에 의해 야기되는 전체적인 코덱 지연의 추가적인 개요를 제공한다. 도 14b에서 주어진 데이터와 값들은 48 kHz의 샘플링율과 480 샘플의 코어 코더 프레임 크기에 기반한다. 도 5 및 도 6에서 도시되고 논의된 바와 같이 SBR 시스템의 듀얼-레이트 접근 방식 때문에, 코어 코더는 24 kHz의 샘플링율에서 효율적으로 동작한다. 변조 코어에 대한 64 샘플의 프레이밍 지연이 이미 코어 코더에 의해 야기되었기 때문에, 이는 도 13의 해당 설명 부분에서 설명된 바와 같이 두 필터뱅크의 독립된 지연 값로부터 차감될 수 있다.
도 14b의 표는 저지연 버전의 MDCT와 IMDCT(LD MDCT와 LD IMDCT)를 포함하는 개선된 저지연 AAC 코덱의 전체적인 지연을 감소하는 것이 가능하다는 것을 강조한다. 42 ms의 전체적인 알고리즘적인 지연은 원래의 QMF 필터뱅크뿐만 아니라 저지연 버전의 MDCT와 IMDCT를 이용함에 의해서 달성될 수 있는 반면, 종래의 QMF 필터뱅크 대신 본 발명의 실시예들에 따른 복소수 저지연 필터뱅크를 이용함에 의해서, 전체적인 알고리즘적 지연이 단지 31.3 ms까지 상당히 감소될 수 있다.
본 발명의 실시예들과 하나 또는 그 이상의 필터뱅크를 포함하는 시스템에 따른 필터뱅크의 품질을 평가하기 위해서는, 청취 테스트(listening test)가 수행되는데, 이로부터 본 발명에 따른 실시예들에 따른 필터뱅크가 AAC-ELD의 오디오 품질을 동일한 레벨로 유지하며, 복소 SBR 모드에 대해서 뿐만 아니라 실수 저전력 SBR 모드에 대해서도 다른 저하를 초래하지 않는다는 결론에 이를 수 있다. 그래서, 본 발명의 실시예들에 따른 지연-최적화된 필터뱅크들은 10 ms 이상의 지연을 감소할 수 있음에도 불구하고, 오디오 품질에 대해 어떠한 부담도 초래하지 않는다. 일시적인 사항에 대해서는 약간 사소한 그러나 만족스러울 정도로 상당하지는 않은 개선이 이루어질 수 있다는 것이 관찰될 수 있다. 위에서 설명한 개선들은 캐스터네츠(castagnettes)와 철금(glockenspiels)의 청취 테스트를 하는 동안에 관찰될 수 있다.
본 발명의 일 실시예에 따른 32-밴드 필터뱅크의 경우에 다운샘플링은 QMF 필터뱅크에 비교하여 본 발명에 따른 필터뱅크에 대해 동등하게 잘 동작한다는 것을 추가적으로 증명하기 위해서는, 다음의 평가가 수행되어야 한다. 먼저, 대수 사인 소인(logarithmic sine sweep)이 다운샘플링된 32-밴드 필터뱅크로 분석되었 는데, 여기서 0 으로 초기화된 32 상위 밴드가 부가되었다. 다음으로, 결과가 64-밴드 필터뱅크에 의해 합성되고, 다시 다운샘플링되고, 원래의 신호에 비교되었다. 종래의 SBR QMF 프로토타입 필터를 이용하는 것은 59.5 dB의 신호 대 잡음비를 가져온다. 그러나, 본 발명에 따른 필터뱅크는 78.5 dB의 신호대 잡음비를 달성할 수 있으며, 이 잡음비는 본 발명의 실시예들에 따른 필터뱅크들이 또한 원래의 QMF 필터뱅크뿐만 아니라 적어도 다운샘플링된 버전의 필터뱅크에서도 수행될 수 있음을 설명한다.
본 발명에 따른 실시예들에서 이용된 바와 같이 지연-최적화된, 비대칭 필터뱅크의 접근이 대칭 프로토타입의 고전적인 필터뱅크와 비교하여 부가적인 값을 제공한다는 것을 보여주기 위해서는, 비대칭 프로토타입이 동일한 지연을 가지는 대칭 프로토타입과 이하에서 비교될 수 있을 것이다.
도 15a는 128 탭(taps)(그래프 810)의 길이를 가지는 사인-윈도우를 이용하는 필터뱅크의 주파수 응답에 비교하여 저지연 윈도우(그래프 800)를 이용하는 본 발명에 따른 필터뱅크의 원방 영역(far-field)의 설명에서, 주파수 응답의 비교예를 보여준다. 도 15b는 이미 설명한 바와 같이 동일한 윈도우 함수를 이용하는 동일한 필터뱅크의 근방 영역(near-field)에서 주파수 응답의 클로즈업을 보여준다.
두 그래프 800, 810의 직접적인 비교예는, 본 발명의 일 실시예에 따른 저지연 필터뱅크를 이용한 필터뱅크의 주파수 응답이 동일한 지연을 갖는 128 탭의 사인-윈도우를 이용하는 필터뱅크의 해당 주파수 응답보다 훨씬 더 낫다는 것을 보여준다.
또한, 도 16a는 127 샘플의 전체적인 지연을 갖는 다른 윈도우 함수들의 비교예를 나타낸다. 64 밴드를 갖는 필터뱅크(CLDFB)는 프레이밍 지연과 오버랩 지연을 포함하는 127 샘플의 전체적인 지연을 포함한다. 대칭 프로토타입 및 동일한 지연을 갖는 변조된 필터뱅크는 도 15a 및 도 15b의 해당 설명 부분에서 이미 설명된 바와 같이, 128 길이의 프로토타입을 가질 수 있다. 50% 오버랩을 갖는 이러한 필터뱅크들, 예를 들어 MDCT, 사운 윈도우 또는 카이저-베셀-도출 윈도우(Kaiser-Bessel-derived windows)는 일반적으로 프로토타입을 위한 좋은 선택을 제공한다. 그래서, 도 16에서 본 발명의 일 실시예에 따른 프로토타입으로서 저지연 윈도우를 이용하는 필터뱅크의 주파수 응답의 개요는, 동일한 지연을 갖는 대안적인 대칭 프로토타입의 주파수 응답에 비교된다. 도 15a 및 도 15b에서 이미 나타난 바와 같이 본 발명(그래프 800)에 따른 필터뱅크의 주파수 응답과 사인-윈도우(그래프 810)를 이용하는 필터뱅크의 주파수 응답은 별도로 하고, 도 16a는 더 나아가 두 KBD 윈도우들은 파라미터들 α=4(그래프 820)과 α=6(그래프 830)에 기초한다는 것을 나타낸다. 도 16a와 도 16b에 나타난 도 16a의 클로즈업 모두, 비대칭 윈도우 함수 또는 동일한 지연을 갖는 프로토타입 필터 함수를 가지는 본 발명의 일 실시예에 따른 필터뱅크로 훨씬 좋은 주파수 응답이 얻어질 수 있다는 것을 나타낸다.
좀 더 일반적으로 이러한 장점을 설명하기 위해, 도 17에서는 이미 설명한 필터뱅크와 다른 지연 값을 갖는 두 필터뱅크 프로토타입이 비교된다. 도 15 및 도 16에서 이미 설명된 본 발명에 따른 필터뱅크는 과거와 9 블록으로 미래(CLDFB 80)로 이르는 8 블록의 오버랩에 해당하는 127 샘플의 전체적인 지연을 가지는 것 에 반해, 도 17은 383 샘플의 동일한 지연을 갖는 두 개의 다른 필터뱅크 프로토타입의 주파수 응답의 비교예를 나타낸다. 좀 더 정확하게는, 도 17은 본 발명의 일 실시예에 따라 비대칭 프로토타입 필터뱅크(그래프 840)의 주파수 응답을 나타내는데, 이는 과거와 두 블록의 시간 영역 샘플로 미래(CLDFB 62)로 이르는 시간 영역 샘플의 6 블록의 오버랩에 기초한다. 게다가, 도 17은 또한 383 샘플의 지연을 가지는 해당 대칭 프로토타입 필터 함수의 주파수 응답(그래프 850)을 나타낸다. 동일한 지연 값로 비대칭 프로토타입 또는 윈도우 함수가 대칭 윈도우 함수 또는 프로토타입 필터를 갖는 필터뱅크보다 더 좋은 주파수 응답을 얻을 수 있다는 것을 알 수 있다. 이는 앞서 설명한 바와 같이, 지연과 품질 간의 더 낮은 절충안의 가능성을 설명하는 것이다.
도 18은 인간 청력 기관의 일시적인 마스킹 효과(temporal masking effect)를 설명한다. 도 18의 선(860)에 의해 지시되는 시간의 어느 한 순간에서 소리(sound) 또는 톤(tone)이 나타날 때, 톤 또는 사운의 주파수와 주변 주파수(neighboring frequencies)에 관한 마스킹 효과는 실제 소리가 시작되기 약 20 ms 전에 발생한다. 이 효과는 프리 마스킹(pre-masking)이라고 불리며, 이는 인간 청력 기관의 음향심리적 특성의 한 면이다.
도 18에서 도시된 상황에서, 소리는 선(870)에 의해 도시된 시간의 어느 한 순간까지 약 200 ms 동안 가청 상태로 남는다. 이 시간 동안, 인간 청력 기관의 마스커는 활성 상태(masker-on)가 되고, 이는 동시 마스킹이라고도 불린다. 소리가 중단된 이후(선(870)에 의해 도시됨)에는, 톤의 주변 주파수에서 주파수의 마스 킹이 도 18에 나타난 약 150 ms의 시간 동안 서서히 쇠퇴한다. 이러한 음향심리적인 효과는 포스트-마스킹(post-masking)이라고도 불린다.
도 19는 종래의 HE-AAC 코딩된 신호와 본 발명의 일 실시예에 따른 저지연 필터뱅크(CMLDFB)를 이용하는 필터뱅크에 기초하는 HE-AAC 코딩된 신호의 프리-에코(pre-echo) 양상의 비교예를 나타낸다. 도 19a는 캐스터네츠의 원래 시간 신호를 나타내는데, 이는 HE-AAC 코덱(HE-AAC = high-efficiency advanced audio codec)을 포함하는 시스템으로 프로세싱된다. 종래의 HE-AAC에 기초한 시스템의 출력은 도 19b에 나타난다. 두 신호, 즉 원래의 시간 신호와 HE-AAC 코덱의 출력 신호의 직접적인 비교는, 화살표(880)에 의해 지시되는 영역에서 캐스터네츠의 소리의 시작 이전에, HE-AAC 코덱이 인지 가능한 프리-에코 효과를 포함한다는 것을 보여준다.
도 19c는 본 발명의 일 실시예에 따른 CMDDFB-윈도우를 포함하는 필터뱅크에 기반한 HE-AAC를 포함하는 시스템의 출력 신호를 나타낸다. 도 19a에서 지시되며 본 발명의 일 실시예에 따른 필터뱅크를 이용하여 프로세싱되는 동일한 원래의 시간 신호들은, 도 19c의 화살표에 의해 지시되는 바와 같이 캐스터네츠 신호의 시작 이전에 상당히 감소된 형태의 프리-에코 효과를 나타낸다. 도 18의 해당 설명 부분에서 설명된 바 있는 프리-마스킹 효과 때문에, 도 19c의 화살표(890)에 의해 지시되는 프로-에코 효과는 종래의 HE-AAC 코덱의 경우 화살표(880)에 의해 지시되는 프리-에코 효과보다 훨씬 더 잘 마스킹될 것이다. 그런 이유로, 본 발명에 따른 필터뱅크의 프리-에코 양상은, 이는 또한 종래의 필터뱅크에 비교하여 상당히 감소 된 지연의 결과이기도 한데, 인간 청력 기관의 일시적 마스킹 특성과 음향심리학적 특성에 훨씬 더 적합한 결과를 초래한다. 결과적으로, 청취 테스트를 설명할 때 이미 설명한 바와 같이, 본 발명의 일 실시예에 따른 필터뱅크를 이용하는 것은 감소된 지연에 의한 품질에 관해 개선을 가져올 수 있다.
본 발명에 따른 실시예들은 종래의 필터뱅크들과 비교하여 계산 복잡도를 증가시키지 않는다. 저지연 필터뱅크들은 예를 들어, SBR 시스템의 경우에 QMF 필터뱅크와 동일한 필터 길이와 동일한 모드의 변조를 이용하며, 그래서 계산 복잡도가 증가하지 않는다. 메모리 요구사항(memory requirements)의 견지에서는 프로토타입 필터의 비대칭 특성으로 인해, 합성 필터뱅크를 위한 ROM 메모리 요구사항이 블록 당 N=64 샘플, 프레임 당 T=10 블록에 기초한 필터뱅크의 경우에 대략 320 워드만큼 증가한다. 게다가, SBR-관련 시스템의 경우에, 분석 필터가 분리되어 저장된다면, 메모리 요구 사항은 또 다른 320 워드만큼 더 증가한다.
그러나, AAC-ELD 코어에 대한 현재 ROM 요구사항이 약 2.5k 워드이고, SBR 구현에 대해서는 또 다른 2.5k 워드인 경우, ROM 요구사항은 약 10% 정도 오직 완만하게 증가된다. 낮은 메모리 소비가 탁월하다면, 메모리와 복잡도 간의 가능한 절충안로서, 선형 보간이 도 3 및 수학식 15의 해당 설명 부분에서 설명된 바와 같이 합성 필터로부터 분석 필터를 생성하도록 이용될 수 있다. 보간 동작은 오직 약 3.6 % 만큼 필요한 지시의 수를 증가시킨다. 그런 이유로, 본 발명의 실시예들에 따른 저지연 필터뱅크에 의한 SBR 모듈의 구조에서 종래의 QMF 필터뱅크의 대체에서는, 어떤 실시예에서는 오디오 품질의 저하 또는 복잡도에서의 인지 가능한 증 가없이 10 ms 이상의 지연이 감소될 수 있다.
본 발명에 따른 실시예들은 그런 이유로 분석 또는 합성 윈도우 또는 윈도우잉을 위한 장치 또는 방법과 관련이 있다. 게다가, 윈도우를 이용하여 신호를 분석 또는 합성하기 위한 분석 또는 합성 필터뱅크 또는 방법이 설명된다. 당연히, 위 방법들 중 어느 하나를 구현하기 위한 컴퓨터 프로그램도 개시된다.
본 발명의 실시예들에 따른 구현은 하드웨어, 소프트웨어 또는 둘의 조합으로 이루어질 수 있다. 데이터, 벡터, 생성되거나 수신된거나 프로세싱되기 위해 저장된 변수들은 다른 종류의 메모리 예를 들어 RAM, 버퍼, ROM, 비휘발성 메모리(예를 들어, EEPROM, 플래시 메모리) 또는 자성 또는 광학 메모리와 같은 다른 메모리들에 저장될 수 있다. 저장 위치는, 예를 들어 변수, 파라미터, 벡터, 행렬, 윈도우 계수 또는 다른 종류의 정보나 데이터와 같은 각 데이터를 저장하기 위해 요구되는 하나 또는 그 이상의 메모리 단위가 될 수 있다.
소프트웨어 구현은 다른 컴퓨터, 컴퓨터와 같은 시스템, 프로세서, ASIC 또는 다른 집적회로에서 동작될 수 있다.
본 발명의 방법들의 실시예들의 어떠한 구현 요구사항에 따라서, 본 발명의 방법의 실시예가 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 이러한 구현은 디지털 저장 매체를 이용하여 수행될 수 있는데, 이러한 디지털 저장 매체에는 특히, 디스크 CD, DVD 또는 전기적으로 읽을 수 있는 제어 신호를 저장하는 또 다른 디스크가 있으며, 거기서는 프로그래밍 가능한 컴퓨터 시스템, 프로세서 또는 집적회로와 협력하여 본 발명의 방법의 구현예가 수행된다. 일반적으로, 본 발명의 일 실시예는 그런 이유로, 기계적으로 읽을수 있는 매체에 저장된 프로그램 코드를 가진 컴퓨터 프로그램 제품이며, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터, 프로세서 또는 집적회로 상에서 동작할 때 본 발명의 방법의 일 실시예를 수행하기 위해 동작되는 것이다. 즉, 본 발명의 방법의 실시예들은, 그런 이유로, 컴퓨터 프로그램이 컴퓨터, 프로세서 또는 집적 회로 상에서 동작할 때, 본 발명의 방법의 적어도 하나의 실시예에서 수행되기 위한 프로그램 코드를 가지고 있는 컴퓨터 프로그램이 된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치는 윈도우된 샘플을 얻기 위한 윈도우 계수들의 시퀀스를 포함하는 분석 윈도우 함수(190)-여기서, 상기 분석 윈도우 함수는 제1 개수의 윈도우 계수들을 포함하며 상기 제1 개수의 윈도우 계수들은 더 큰 제2 개수의 윈도우 계수들의 시퀀스를 포함하는 더 큰 윈도우 함수로부터 도출되고, 상기 분석 윈도우 함수의 윈도우 계수들은 상기 더 큰 윈도우 함수의 윈도우 계수들의 보간에 의해 도출되고, 상기 제2 개수는 짝수임-를 이용하여 선행 샘플부터 후행 샘플에 이르기까지의 시간 순서대로 시간 영역 오디오 입력 샘플들의 프레임(120)을 윈도우잉하는 분석 윈도우어(110); 및 상기 윈도우된 샘플들을 이용하여 오디오 서브밴드 값들을 계산하기 위한 계산기(170)를 포함하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 분석 윈도우 함수(190)가 윈도우 계수들의 시퀀스에 관하여 비대칭이 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 제1 부분의 윈도우 계수들의 에너지 값이 윈도우 계수들의 시퀀스의 모든 윈도우 계수들의 에너지 값의 2/3와 같거나 크게 되고, 윈도우 계수들의 제2 부분의 윈도우 계수들의 에너지 값이 윈도우 계수들의 시퀀스의 모든 윈도우 계수들의 에너지 값의 1/3보다 작거나 같게 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들의 제1 부분이 윈도우 계수들의 시퀀스의 윈도우 계수들의 총 수의 1/3 또는 1/3 보다 작은 수로 구성되고 제2 부분은 윈도우 계수들의 시퀀스의 윈도우 계수들의 총 수의 2/3 또는 2/3 보다 큰 수로 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 분석 윈도우 함수(190)의 윈도우 계수들의 중심 지점이 윈도우 계수들의 제1 부분의 인덱스 범위에서 실수에 해당되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는, 분석 윈도우 함수(190)가 분석 윈도우 함수(190)의 모든 윈도우 계수들의 가장 높은 절대값들로 구성되는 윈도우 계수들로부터 가장 나중(latest)의 시간 영역 오디오 샘플을 윈도우잉하기 위해 이용되는 윈도우 계수들의 시퀀스의 윈도우 계수들에 이르기까지 엄격하게 단조 감소 하는 부분을 포함한다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 분석 윈도우 함수(190)가 진동 양상으로 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 인덱스 n=(T-1)에 해당되는 윈도우 계수가 0.9 내지 1.1의 범위의 절대값으로 구성되며, 여기서 윈도우 계수들의 인덱스가 0 내지 NㆍT-1의 범위의 정수이고, 여기서 프레임(120)의 가장 나중(latest) 시간 영역 오디오 입력 샘플을 윈도우잉하기 위해 이용되는 윈도우 계수가 인덱스 B T-1에 해당되는 윈도우 계수이고, 여기서 분석 윈도우어(110)는 시간 영역 오디오 입력 샘플들의 프레임(120)이 프레임(120)의 가장 처음(earliest)부터 가장 나중(latest)의 오디오 입력 샘플에 이르는 시간 영역 오디오 입력 샘플들의 T 블록(130)의 시퀀스로 구성되도록 하되 각 블록은 N 시간 영역 오디오 입력 샘플로 구성되고, 여기서 T와 N은 양의 정수이고 T는 4보다 크도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들의 인덱스 n=NㆍT-1에 해당하는 윈도우 계수가 0.02보다 작은 절대값들로 구성되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우잉은 다음 수학식에 기반하여 윈도우된 프레임의 윈도우된 샘플들 z(n)을 얻기 위하여 프레임(120)의 시간 영역 입력 샘플 x(n)을 곱하는 것을 포함하며,
여기에서, n은 0 내지 TㆍN-1에 이르는 범위의 윈도우 계수들의 시퀀스의 인덱스를 나타내는 정수이고, 여기서 c(n)은 인덱스 n에 해당하는 분석 윈도우 함수의 윈도우 계수이고, 여기서 x(NㆍT-1)은 시간 영역 오디오 입력 샘플의 프레임(120)의 가장 나중(latest) 시간 영역 오디오 입력 샘플이고, 여기서 분석 윈도우어(110)는 시간 영역 오디오 입력 샘플의 프레임(120)이 프레임(120)의 가장 처음(earliest)부터 가장 나중(latest)에 이르는 시간 영역 오디오 입력 샘플의 T 블록(130) 시퀀스를 포함하도록 하며, 각 블록은 N 시간 영역 오디오 입력 샘플을 포함하고, T와 N은 양의 정수이고 T는 4보다 크다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들 c(n)이 부록 4의 표에 주어진 관계식들에 따르도록 맞춰진다
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 장치(100)는 오디오 서브밴드 값을 위해 이용되는 시간 반전 또는 인덱스 반전된 버전의 합성 윈도우 함수(370)인 분석 윈도우 함수(190)를 이용하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 분석 윈도우 함수의 제1 부분이 1 보다 큰 최대 절대값을 가지는 윈도우 계수를 포함한다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들의 시퀀스의 모든 윈도우 계수들이 실수 윈도우 계수가 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 시간 영역 오디오 입력 샘플의 프레임(120)이 프레임(120)의 가장 처음(earliest)부터 가장 나중(latest)의 시간 영역 오디오 입력 샘플에 이르는 시간 영역 오디오 입력 샘플의 T 블록(130)의 시퀀스를 포함하고, 각 블록은 N 시간 영역 오디오 입력 샘플을 포함하며, 여기서 T와 N은 양의 정수이고 T는 4보다 크도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우잉이 프레임(120)의 시간 영역 오디오 입력 샘플들을 윈도우 계수들의 시퀀스의 윈도우 계수들과 엘리먼트 연산 방식으로 곱하는 것을 포함하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 시간 영역 오디오 입력 샘플들과 윈도우 계수들의 시퀀스에 따라서 각 시간 영역 오디오 입력 샘플이 분석 윈도우 함수의 윈도우 계수와 엘리먼트 연산 방식으로 곱해지도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 시간 영역 오디오 입력 샘플들 의 프레임(120)의 각 시간 영역 오디오 입력 샘플에 대하여 정확하게 하나의 윈도우된 샘플이 생성되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들 n=(T-3)의 인덱스에 해당되는 윈도우 계수가 -0.1 보다 작은 값을 포함하고, 여기서 윈도우 계수들의 시퀀스의 인덱스가 0 내지 NㆍT-1의 범위의 정수이고, 여기서 가장 나중(latest) 시간 영역 오디오 입력 샘플을 윈도우잉하기 위해 이용되는 윈도우 계수는 인덱스 NㆍT-1에 해당되는 윈도우 계수로 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들의 제1 부분이 3/2ㆍN 윈도우 계수들을 포함하고, 윈도우 계수들의 제2 부분이 윈도우 계수들의 시퀀스의 (T-3/2)ㆍN 윈도우 계수들을 포함한다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들 c(n)이 부록 3의 표에 주어진 관계식들을 수행하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들 c(n)이 부록 2의 표에 주어진 관계식들을 수행하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 분석 윈도우어(110)는 윈도우 계수들 c(n)이 부록 1의 표에 주어진 값들을 포함하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 장치(100)는 프로세싱될 시간 영역 오디오 입력 샘플들의 현재 프레임(120)이 시간 영역 오디오 입력 샘플들의 직접 선행하는 프레임(120)의 (T-1) 후행 블록들을 선행 시간 영역 오디오 입력 샘플들 방향으로 한 블록만큼 시프트하고, 그리고 현재 프레임(1200의 가장 나중(latest) 시간 영역 오디오 입력 샘플들을 포함하는 블록으로서 새로운 시간 영역 오디오 샘플들의 한 블록(220)을 부가함으로써 생성되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 장치(100)는 프로세싱될 시간 영역 오디오 입력 샘플 x(n)의 현재 프레임(120)이 시간 또는 샘플 인덱스 n=32, ..., 319 동안의 수학식에 기초한 시간 영역 오디오 입력 샘플들의 직접 선행하는 프레임(120) 시간 영역 오디오 입력 샘플들 xprev(n)을 시프트하는 것에 기초하여 생성되도록 구성되는데,
이때, 시간 또는 샘플 인덱스 n=32, ..., 319이며, 여기서, 장치(100)는 인덱스 n=31의 시간 또는 샘플에서 시작하는 현재 프레임(120)의 시간 영역 오디오 입력 샘플들 x(n) 동안 감소하는 시간 또는 샘플 인덱스 n의 입력되는 시간 영역 오디오 입력 샘플들의 순서에 따라 32 다음 입력되는 시간 영역 입력 샘플들을 포함함으로써 시간 영역 오디오 입력 샘플들의 현재 프레임(120)의 시간 영역 오디오 입력 샘플들 x(n)을 생성하도록 추가적으로 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 계산기(170)는 윈도우된 샘플들의 한 프레임(150)에 기초한 모든 서브밴드 값들이 윈도우된 샘플들의 프레임(150)의 윈도우된 샘플들의 스펙트럴 표현을 표현하도록 하는 오디오 서브밴드 값을 생성하도록 적용된 시간/주파수 변환기를 포함한다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 시간/주파수 변환기는 복소수 또는 실수 오디오 서브밴드 값을 생성하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 계산기(170)는 한 블록(130)의 각 시간 영역 오디오 입력 샘플을 위한 한 오디오 서브밴드 값을 계산하도록 구성되는데, 여기서 각 오디오 서브밴드 값 또는 시간 영역 오디오 입력 샘플들의 한 블록(130)의 시간 영역 오디오 입력 샘플들의 각각은 윈도우된 프레임(150)의 윈도우된 샘플들에 기초한다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 계산기(170)는 윈도우된 샘플들(150)을 각 서브밴드 값에 대해 조화 진동 함수와 곱하는 것에 기초한 오디오 서브밴드 값을 계산하고 곱해진 윈도우된 샘플들을 합산하도록 구성되며, 여기서 조화 진동 함수의 주파수는 서브밴드 값들의 해당 서브밴드의 중심 주파수에 기반한다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 계산기(170)는 조화 진동 함수가 복소 지수 함수, 사인 함수 또는 코사인 함수가 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 계산기(170)는 다음 수학식에 기초한 오디오 서브밴드 값 wk1을 계산하도록 구성되고,
이때, n=0, ..., 63이고,
이때, k=0, ..., 31이고, 여기서 z(n)은 인덱스 n에 해당하는 윈도우된 샘플이고, 여기서 k는 서브밴드 인덱스이고, 여기서 l은 오디오 서브밴드 값의 한 블록(180)의 인덱스이고, 여기서 fosc(x)는 실수 변수 x에 기초하는 진동 함수가 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 계산기(170)는 진동 함수 fosc(x)가
또는
또는
이 되고, 여기서 i는 허수 단위가 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 장치(100)는 실수 시간 영역 오디오 입력 샘플의 프레임(120)을 프로세싱하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치에서, 장치(100)는 오디오 서브밴드 값과 함께 이용될 합성 윈도우 함수(370)를 나타내거나 오디오 서브밴드 값을 생성하기 위해 이용되는 분석 윈도우 함수(190)을 나타내는 신호를 제공하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치는 오디오 서브밴드 채널들에서 오디오 서브밴드 값들으로부터, 선행(earlier) 중간 시간 영역 샘플들과 후행(later) 시간 영역 샘플들을 포함하는 중간 시간 영역 샘플들의 시퀀스를 계산하기 위한 계산기(310); 윈도우된 중간 시간 영역 샘플들을 생성하기 위해, 윈도우 계수들의 시퀀스를 포함하는 합성 윈도우 함수(370)-여기서, 상기 합성 윈도우 함수는 더 큰 윈도우 함수로부터 도출된 제1 개수의 윈도우 계수들을 포함하며, 상기 더 큰 윈도우 함수는 더 큰 제2 개수의 윈도우 계수들의 시퀀스를 포함하고, 상기 윈도우 함수의 윈도우 계수들은 상기 더 큰 윈도우 함수의 윈도우 계수들을 보간함으로써 도출되고, 상기 제2 개수는 짝수임-를 이용하여 중간 시간 영역 샘플들의 시퀀스(330)를 윈도우잉하는 합성 윈도우어(360); 및 상기 시간 영역 샘플들을 생성하기 위해 상기 윈도우된 중간 시간 영역 샘플들을 프로세싱하기 위한 오버랩-가산기 출력 스테이지(overlap-adder output stage, 400)를 포함한다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 윈도우 계수들의 제1 부분의 윈도우 계수들의 에너지 값이 합성 윈도우 함수(370)의 모든 윈도우 계수들의 에너지 값의 2/3보다 크거나 같도록 하고, 윈도우 계수들의 제2 부분의 에너지 값이 합성 윈도우 함수의 모든 윈도우 계수들의 에너지 값의 1/3보다 작거나 같도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 윈도우 계수들의 제1 부분이 윈도우 계수들의 시퀀스의 모든 윈도우 계수들의 총 수의 1/3 또는 1/3보다 작은 수를 포함하도록 하고, 윈도우 계수들의 제2 부분이 윈도우 계수들의 시퀀스의 윈도우 계수들의 총 수의 2/3 또는 2/3 보다 많은 수를 포함하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 합성 윈도우 함수(370)의 윈도우 계수들의 중심 지점이 윈도우 계수들의 제1 부분의 인덱스 범위에서 실수에 대응되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에 서, 합성 윈도우어(360)는 합성 윈도우 함수가 가장 나중(latest) 중간 시간 영역 샘플을 윈도우잉하기 위해 이용되는 윈도우 계수들의 시퀀스의 윈도우 계수로부터 합성 윈도우 함수의 모든 윈도우 계수들의 가장 높은 절대값으로 구성되는 윈도우 계수에 이르기까지의 엄격하게 단조로운 증가 부분을 포함하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 합성 윈도우 함수(370)가 진동 양상을 포함하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 인덱스 n=N에 해당되는 윈도우 계수는 0.9와 1.1 사이의 범위에 있는 절대값을 포함하고, 여기서 윈도우 계수들의 시퀀스의 인덱스 n은 0 내지 TㆍN-1의 범위 내에 있는 정수이고, 여기서 가장 나중(latest) 중간 시간 영역 샘플을 윈도우잉하기 위해 이용되는 윈도우 계수는 인덱스 n=0에 해당되는 윈도우 계수이고, 여기서 T는 중간 시간 영역 샘플들의 프레임(330)에 포함되는 블록의 수를 나타내는, 4 보다 큰 정수이다. 여기서 장치(300)는 시간 영역 오디오 샘플들의 한 블록(410)을 생성하도록 구성되는데 시간 영역 오디오 샘플들의 블록(410)은 N 시간 영역 오디오 샘플들을 포함하고, 여기서 N은 양의 정수이다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 인덱스 n=0에 해당되는 윈도우 계수가 0.02 보다 작거나 같은 절대값을 포함하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에 서, 합성 윈도우어(360)는 인덱스 n=3N에 해당되는 윈도우 계수가 -0.1 보다 작도록 하고, 여기서 장치(300)는 시간 영역 오디오 샘플들의 블록(410)을 생성하도록 구성되는데, 시간 영역 오디오 샘플들의 블록(410)은 N 시간 영역 오디오 샘플들을 포함하고, 여기서 N은 양의 정수이다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 윈도우잉이 다음 수학식에 기초하여 윈도우된 프레임(380)의 윈도우된 샘플들 z(n)을 얻기 위하여 중간 시간 영역 샘플들의 시퀀스의 중간 시간 영역 샘플들 g(n)을 곱하는 것을 포함하도록 구성되는데,
이때, n=0, ..., TㆍN-1이다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 윈도우 계수 c(n)가 부록 4의 표에 주어진 관계식들을 수행하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 장치(300)는 오디오 서브밴드 값을 생성하기 위해 이용되는 시간 반전 또는 인덱스 반전된 버전의 분석 윈도우 함수(190)인 합성 윈도우 함수(370)를 이용하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 장치(300)는 시간 영역 오디오 샘플들의 블록(410)을 생성하도록 구성되는데, 시간 영역 오디오 샘플들의 블록(410)은 N 시간 영역 오디오 샘플들을 포함하고, 여기서 N은 양의 정수이다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 장치(300)는 N 오디오 서브밴드 값을 포함하는 오디오 서브밴드의 값의 블록(320)에 기초하여, 시간 영역 오디오 샘플들의 블록(410)을 생성하도록 구성되는데, 여기서 계산기(310)는 TㆍN 중간 시간 영역 오디오 샘플들을 포함하는 중간 시간 영역 오디오 샘플들의 시퀀스(330)을 계산하도록 구성되고, 여기서 T는 양의 정수이다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 합성 윈도우 함수가 윈도우 계수들의 시퀀스에 관하여 비대칭이 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 제1 부분이 1 보다 큰 절대값을 갖는 합성 윈도우 함수의 모든 윈도우 계수들의 최대값이 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 윈도우 계수들의 제1 부분이 3/2ㆍN 윈도우 계수들을 포함하고 윈도우 계수들의 제2 부분이 (T-3/2)ㆍN 윈도우 계수들을 포함하도록 적용되고, 여기서 T는 4 보다 크거나 같은 인덱스로서 중간 시간 영역 샘플들의 프레임(330)에 포함되는 블록(340)의 수를 나타낸다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에 서, 합성 윈도우어(360)는 중간 시간 영역 샘플들의 시퀀스를 윈도우잉하는 것이 중간 시간 영역 샘플들과 윈도우 계수를 엘리먼트 연산 방식으로 곱해지도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 각 중간 시간 영역 샘플이 중간 시간 영역 샘플들의 시퀀스와 윈도우 계수들의 시퀀스에 따라 엘리먼트 연산 방식으로 합성 윈도우 함수(370)의 윈도우 계수와 곱해지도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 합성 윈도우 함수(370)의 윈도우 계수들이 실수 값이 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 윈도우 계수 c(n)가 부록 3의 표에 주어진 관계식들을 수행하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합성 윈도우어(360)는 위도우 계수들 c(n)이 부록 2의 표에 주어진 관계식들을 수행하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 합서 윈도우어(360)는 윈도우 계수들 c(n)이 부록 1의 표에 주어진 값들을 포함하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에 서, 계산기(310)는 오디오 서브밴드 값과 조화 진동 함수를 곱하는 것에 기초하여 중간 시간 영역 샘플들의 시퀀스의 중간 시간 영역 샘플들을 계산하고, 곱해진 오디오 서브밴드 값을 합산하도록 구성되고, 여기서 조화 진동 함수의 주파수는 해당 서브밴드의 중심 주파수에 기초한다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 계산기(310)는 조화 진동 함수가 복소 지수 함수, 사인 함수 또는 코사인 함수가 되도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 계산기(310)는 복소수 또는 실수 오디오 서브밴드 값에 기초하여 실수 중간 시간 영역 샘플들을 계산하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 계산기(310)는 다음 수학식에 기초하여 실수 중간 시간 영역 샘플 z(i,n) 시퀀스를 계산하도록 구성되는데,
이때, 정수 n은 0 내지 NㆍT-1의 범위에 있고, 여기서 Re(x)는 복소수 x, π=3.14...의 실수부이고, π는 순환수(circular number)이고 fosc(x)는 조화 진동 함수이고, 여기서,
이때, 계산기에 제공된 오디오 서브밴드 값은 복소수이고, 여기서 I는 허수 단위이고, 여기서
이때, 계산기(310)에 제공된 오디오 서브밴드 값은 실수이다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 계산기(310)는 중간 시간 영역 샘플들의 시퀀스를 생성하도록 구성되는 주파수/시간 변환기를 포함하고, 계산기(310)에 제공되는 오디오 서브밴드 값은 중간 시간 영역 샘플들의 시퀀스의 스펙트럴 표현을 나타낸다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 주파수/시간 변환기는 복소수 또는 실수 오디오 서브밴드 값에 기초하여 중간 시간 영역 샘플들의 시퀀스를 생성하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 계산기(310)는 다음 수학식에 기초하여 오디오 서브밴드 값 X(k)로부터 중간 시간 영역 샘플들의 시퀀스 g(n)을 계산하도록 구성되고,
이때, 정수 n은 20N-1과 2N의 범위에 있고,
이때, 정수 n은 0과 2N-1의 범위에 있고,
이때, 정수 j는 0과 4의 범위에 있고, 정수 k는 0과 N-1의 범위에 있고, 여기서 N은 정수로서 오디오 서브밴드 값의 수와 시간 영역 오디오 샘플들의 수를 나타내는데, 여기서 v는 실수 벡터이고, vprev는 시간 영역 오디오 샘플들의 직접적으로 이전에 생성의 실수 벡터 v이며, 여기서 i는 허수 단위이고, π는 순환수이다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 계산기(310)는 중간 시간 영역 샘플들의 시퀀스 g(n)을 다음 수학식에 기초하여 오디오 서브밴드 값 X(k)로부터 계산하도록 구성되는데,
이때, 정수 n은 20N-1과 2N의 범위에 있고,
이때, 정수 n은 0과 2N-1의 범위에 있고,
이때, 정수 j는 0과 4의 범위에 있고, 정수 k는 0과 N-1의 범위에 있고, 여기서 N은 정수로서 시간 영역 오디오 샘플들을 나타내고, 여기서 v는 실수 벡터이고, 여기서 vprev는 시간 영역 오디오 샘플들의 직접적으로 이전에 생성된 실수 벡터 v이고, 여기서 π는 순환수이다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 오버랩-가산기 출력 스테이지(400)는 오버래핑 방식으로, 오디오 서브밴드 값의 T 연속적으로 제공된 블록들(320)에 기초하여 윈도우된 중간 시간 영역 샘플들을 프로세싱하도록 구성된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 오버랩-가산기 출력 스테이지(400)는 시간 영역 샘플들 out1(n)을 제공하도록 구성되는데, 여기서 n은 정수로서 다음 수학식에 기초한 샘플 인덱스를 나타내고,
여기서 zl ,n은 샘플 인덱스 n과 프레임 또는 0 내지 T-1의 범위에 있는 시퀀스 인덱스 l에 해당하는 윈도우된 중간 시간 영역 샘플이며, 여기서 l=0은 가장 나중(latest) 프레임 또는 시퀀스와 이미 생성된 프레임에 대응되고 l의 더 작은 값은 이미 생성된 프레임 또는 시퀀스에 대응된다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 오버랩-가산기 출력 스테이지(400)는 다음 수학식에 기초하여 시간 영역 샘플들 out(k)를 제공하도록 구성되는데,
여기서, w는 윈도우된 중간 시간 영역 샘플들을 포함하고, k는 정수로서 0과 N-1의 범위에 있는 인덱스를 나타낸다.
본 발명의 일 실시예에 따른 오디오 서브밴드 샘플을 생성하기 위한 장치에서, 장치(300)는 오디오 서브밴드 값을 생성하기 위해 이용되는 분석 윈도우 함수(190)를 나타내거나 시간 영역 오디오 샘플들을 생성하기 위해 이용되는 합성 윈도우 함수(370)을 나타내는 신호를 수신하도록 구성된다.
본 발명의 일 실시예에 따르면, 인코더(510)는 본 발명의 일 실시예에 따라 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치(560)를 포함한다.
본 발명의 일 실시예에 따르면, 인코더(510)는 오디오 서브밴드 값을 생성하기 위한 장치(560)에 양자화기 및 코더(quantizer and coder)(570)가 더 추가적으로 포함되는데, 장치(560)에 의해 오디오 서브밴드 값 출력을 양자화하고 코딩하고 양자화 및 코딩된 오디오 서브밴드 값을 출력하도록 구성된다.
본 발명의 일 실시예에 따르면, 디코더(580)는 본 발명의 일 실시예에 따라 시간 영역 오디오 샘플들을 생성하기 위한 장치(600)를 포함한다.
본 발명의 일 실시예에 따르면, 디코더(580)는 코딩되고 양자화된 오디오 서브밴드 값을 수신하도록 적용된 디코더 및 역양자화기(decoder and dequantizer)(590)가 추가적으로 포함되는데, 이는 시간 영역 오디오 샘플들을 생성하기 위한 장치(600)에 결합되어 포함되며, 디코딩되고 역양자화된 오디오 서브밴드 값을 오디오 서브밴드 값로서 장치(600)에 제공하도록 구성된다.
본 발명의 일 실시예에 따르면, SBR 인코더(520)는 SBR 인코더(520)에 제공되는 시간 영역 오디오 입력 샘플들의 구조에 기초하여 오디오 서브밴드 채널에서 오디오 서브밴드 값을 생성하기 위한 장치(530); 오디오 서브밴드 값을 생성하기 위한 장치(530)에 결합되고 오디오 서브밴드 값에 기초하여 SBR 파라미터를 추출하여 출력하도록 구성되는 SBR 파라미터 추출 모듈(540)을 포함한다.
본 발명의 일 실시예에 따르면, 시스템(610)은 시스템(610)에 제공된 시간 영역 오디오 입력 샘플들의 프레임으로부터 오디오 서브밴드 값을 생성하기 위한 장치(620); 오디오 서브밴드 값을 위한 장치(640)에 의해 생성된 오디오 서브밴드 값에 기초하여 시간 영역 오디오 샘플들을 생성하기 위한 장치(640)를 포함한다.
본 발명의 일 실시예에 따르면, 시스템(610)은 SBR 디코더이다.
본 발명의 일 실시예에 따르면, 시스템은 오디오 서브밴드 값을 생성하기 위한 장치(620)와 시간 영역 오디오 샘플들을 생성하기 위한 장치(640) 간에 상호 연결된 HF 생성기(630)를 포함하는데, 이는 SBR 데이터를 수신하도록 구성되고, SBR 데이터에 기초한 오디오 서브밴드 값과 오디오 서브밴드 값을 생성하기 위한 장치(620)로부터의 오디오 서브밴드 값을 변경하거나 부가하도록 구성된다.
본 발명의 일 실시예에 따른 모든 장치들과 방법들에 관하여, 구현상의 세부 사항에 따라, 부록 1 및 부록 3의 표에 주어진 값들에 기초하여 윈도우 계수들을 생성하기 위해서는, 인덱스 128 내지 255 및 384 내지 511(인자 -1에 의한 곱)에 해당하는 윈도우 계수들에 관한 부가적인 부호 변화들이 구현될 수 있다. 다시 말하면, 윈도우 함수의 윈도우 계수들은 부록 1의 표에 주어진 윈도우 계수들에 기초한다. 도면에 나타난 윈도우 함수의 윈도우 계수들을 생성하기 위해서는, 인덱스 0 내지 127, 256 내지 383에 해당하는 표의 윈도우 계수들이 (+1)(즉, 부호 변화 없음)에 의해 곱해져야만 하고, 인덱스 128 내지 255와 384 내지 511에 해당하는 윈도우 계수들은 (-1)(즉, 부호 변화 있음)에 의해 곱해져야만 한다. 따라서 부록 3의 표에 주어진 관계식들은 이처럼 다루어져야 한다.
본 출원의 구조에서는 부가적인 쇠퇴, 인자(factors), 부가적인 계수들의 도입과 또 다른 간단한 함수의 도입이 한 수학식이 다른 수학식에 기초하고 있다는 조건하에 이해되어져야 한다는 것에 주의해야 한다. 추가적으로, 간단한 상수들, 상수 가수(constant addends) 등은 생략될 수 있다. 게다가, 수학식의 결과를 전혀 바꾸지 않거나 크게 바꾸지 않는 대수적 변환(algebraic transformations), 등가 변환(equivalence transformations)과 근사화(approximations)(예를 들어, 테일러 근사화(Taylor approximations))가 또한 포함될 수 있다. 다시 말하면, 결과의 관점에서 근본적으로 동일한 결과를 초래하는 변환들뿐만 아니라 사소한 변경들도 수학식 또는 표현이 다른 수학식 또는 표현에 기초하는 경우에 포함된다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.