KR100488537B1 - 듀얼모드오디오디코더의재현방법및필터 - Google Patents

듀얼모드오디오디코더의재현방법및필터 Download PDF

Info

Publication number
KR100488537B1
KR100488537B1 KR1019970061471A KR19970061471A KR100488537B1 KR 100488537 B1 KR100488537 B1 KR 100488537B1 KR 1019970061471 A KR1019970061471 A KR 1019970061471A KR 19970061471 A KR19970061471 A KR 19970061471A KR 100488537 B1 KR100488537 B1 KR 100488537B1
Authority
KR
South Korea
Prior art keywords
imdct
mpeg
fft
storing
array
Prior art date
Application number
KR1019970061471A
Other languages
English (en)
Other versions
KR19980042631A (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
Priority claimed from KR1019960055726A external-priority patent/KR100205223B1/ko
Priority claimed from KR1019960058349A external-priority patent/KR100205225B1/ko
Priority claimed from KR1019970019852A external-priority patent/KR19980084170A/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR19980042631A publication Critical patent/KR19980042631A/ko
Application granted granted Critical
Publication of KR100488537B1 publication Critical patent/KR100488537B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes

Landscapes

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

Abstract

본 발명은 듀얼 모드 오디오 디코더의 재현 방법 및 필터을 공개한다. 듀얼 모드 오디오 디코더의 IMDCT연산 회로는 MPEG의 IMDCT연산 방법을 수정하여 MPEG과 돌비 AC-3를 사용하여 인코딩한 신호를 하나의 겸용 FFT회로를 이용하여 IMDCT를 수행할 수 있도록 한다. 그래서, 하드웨어 구현시에 회로 구성이 간단해진다. 그리고, 듀얼 모드 오디오 디코더의 윈도우잉 방법은 MPEG의 IMDCT출력들의 특성을 이용하여 윈도우잉을 위하여 사용되는 IMDCT출력들의 수를 줄임으로써 IMDCT출력들을 저장하는 메모리의 크기를 줄일 수 있다.

Description

듀얼 모드 오디오 디코더의 재현 방법 및 필터
본 발명은 오디오 디코더에 관한 것으로, 특히 MPEG과 돌비 AC-3를 사용하여 인코딩한 신호를 하나의 겸용 FFT회로를 이용하여 IMDCT를 수행할 수 있으며, IMDCT출력들의 성질을 이용함에 의해서 윈도우잉을 위한 IMDCT 출력들을 줄여 메모리의 크기를 줄일 수 있는 듀얼 모드 오디오 디코더의 재현 방법 및 필터에 관한 것이다.
디지탈 오디오는 영상 및 멀티미디어 응용분야에 접목되어 있으며, 전체 신호 대역폭의 상당 부분을 점유하기 때문에 이의 효율적인 압축 알고리즘의 요구가 필수 불가결하게 되었다.
대표적인 압축 알고리즘으로 MPEG과 돌비 AC-3를 들 수 있다.
MPEG의 압축 알고리즘은 오디오 압축의 국제규격으로서는 가장 먼저 표준화 되었으며, 주파수 대역에 따라 달리 반응하는 인간의 음향 인식 특성을 이용하여 효과적인 압축을 구현하였다.
AC-3는 북미 HDTV 시스템의 오디오 표준으로 채택되었으며, 현재는 DVD(Digital Versatile Disk), DBS(Direct Broadcasting System), STB(Set Top Box), 디지털 케이블(Digital Cable) 등에 적용되고 있다, 이 역시 MPEG과 마찬가지로 인간의 음향 인식 특성을 압축에 사용하였다.
MPEG과 AC-3 모두 입력신호의 종류에 제한을 두지 않음으로써 음성 및 고품질 오디오 신호의 압축 등에 쓰일 수 있다.
최근의 경향은 AC-3와 MPEG 오디오 스트림 모두를 디코딩할 수 있는 듀얼 모드 오디오 디코더를 설계하는 것이다.
이를 위하여, 두 개의 오디오 표준(standards)의 동일한 하드웨어 블럭을 통합하는 것이 필요하다.
오디오 디코더는 크게 나누어 비트 할당 부분과 그 할당된 비트를 이용하여 시간 영역에서의 신호를 복원하는 재현 필터 부분으로 나누어진다.
실제 MPEG과 AC-3의 비트 할당 알고리즘은 많은 부분이 상이하다.
이로 인하여 디코더에서 동일한 기능의 블럭들을 비트 할당 부분에서 찾을 수 없다.
반면에, 이들의 재현 필터 부분은 역 변환(inverse transform), 윈도우(window), 및 오버랩 & 애드(overlap & add) 블럭들로 구성된다는 점에서 유사하다.
특히, 연산량의 상당부분을 차지하는 역 변환 블럭은 MPEG과 AC-3가 채택하고 있는 상이한 변환식을 적절히 수정함으로써 하나의 구조로 통합될 수 있다.
즉, MPEG 및 AC-3는 서브밴드(subband) 구조를 채택하고 있으며, 이는 인간의 음향 인식 특성을 주파수 대역으로 나누어 처리하는데 효율적이다(서브밴드 구조에 관한 문헌(P.P. Vaidyanathan, Multirate Systems and Filter Banks, Prentice Hall, 1993)을 참고하기 바란다).
각 서브밴드의 주파수 특성은 간단한 수식의 변환식으로 표현되며 이를 일컬어 역 수정 코사인 변환이라 칭한다(역 수정 코사인 변환에 관한 문헌(J.P. Prinven and A.B. Bradley, "analysis/synthesis filter bank design based on time domain aliasing cancallation," IEEE Trans. ASSP-34, No.5, Oct. 1986, pp.1153-1161)을 참고하기 바란다).
우선, AC-3는 세가지의 변환식을 지원하는데, 이는 입력신호의 특성에 따라 어느 변환식을 사용할 것인가를 인코딩(encoding) 단계에서 결정한다.
그리고, 연산량을 줄이기 위하여 이 변환식은 FFT구조를 사용하게끔 변환된다.
이에 반하여 MPEG은 한 개의 변환식을 사용하며, AC-3의 변환식과 비교하여 약간의 차이가 있다.
이와 같이 MPEG과 AC-3의 IMDCT는 서로 다르지만, FFT를 사용하는 경우에는 MPEG의 IMDCT는 AC-3의 부집합(subset)이 된다.
따라서, 듀얼모드 오디오 디코더를 구현할 때, FFT에 기초하여 두 디코더에 대한 IMDCT 회로를 설계하는 것이 보다 바람직하다.
그렇게 함으로써, 동일한 FFT 구조를 공유할 수 있으며, 다른 하드웨어 블록을 구현하는 데 필요한 부가적인 비용을 줄일 수 있다.
또한, 종래의 MPEG의 IMDCT출력 데이터의 윈도우잉 방법은 윈도우잉을 위하여 64개의 IMDCT 출력들을 모두 메모리에 저장해야 하므로 메모리의 크기가 커져야 하는 단점이 있었다.
본 발명의 목적은 MPEG의 역 수정 이산 코사인 변환(IMDCT) 방법을 수정하여 FFT를 이용하는 AC-3의 IMDCT방법의 FFT를 이용하여 IMDCT연산을 수행할 수 있는 듀얼 모드 오디오 디코더의 IMDCT 연산방법을 제공하는데 있다.
본 발명의 다른 목적은 AC-3의 FET회로를 이용하여 MPEG의 IMDCT를 구현할 수 있는 듀얼 모드 오디오 디코더의 IMDCT 연산회로를 제공하는데 있다.
본 발명의 또 다른 목적은 MPEG의 IMDCT의 출력들의 성질을 고려하여 출력들을 저장하기 위한 메모리의 크기를 줄일 수 있는 듀얼 모드 오디오 디코더의 윈도우잉(windowing) 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 듀얼 모드 오디오 디코더의 IMDCT연산방법은 AC-3 비트 스트림이 입력되면 주어진 변환값으로 부터 새로운 배열을 형성하는 단계, 상기 새로운 배열에 대한 프리-트위들링을 수행하는 프리-트위들링 단계, 상기 프리-트위들링 단계 후의 결과에 대한 FFT를 수행하는 FFT 단계, 상기 FFT 단계 후의 결과에 대한 포스트-트위들링을 수행하는 포스트-트위들링 단계, MPEG 비트 스트림이 입력되면 입력신호에 대한 새로운 배열을 생성하는 단계, 상기 MPEG비트 스트림의 새로운 배열에 대한 상기 FFT단계를 수행하는 단계, 상기 FFT단계 수행 후의 결과에 대한 트위들링을 수행하는 트위들링 단계 및, 상기 트위들링 된 출력을 재배열하는 단계를 구비하는 것을 특징으로 한다.
상기 다른 목적을 달성하기 위한 본 발명의 듀얼 모드 오디오 디코더의 IMDCT 연산회로는 AC-3 입력 샘플들을 저장하고 IMDCT수행 후, MPEG의 IMDCT출력들을 저장하는 제 1 저장수단, AC-3의 경우에 프리-트위들링, 포스트-트위들링, 및 IFFT를 수행하고, MPEG의 경우에는 포워드 FFT, 및 트위들링동작을 수행하는 버터플라이 모듈, 상기 트위들링과 FFT수행시에 필요한 계수들의 값들을 저장하는 롬, MPEG의 입력 비트 스트림을 입력하고 AC-3 또는 MPEG의 새로운 배열에 대한 실수부분의 배열을 저장하고 AC-3의 IMDCT 동작 수행시 상기 프리-트위들링 및 IFFT 동작 수행중에 발생하는 중간 결과값들을 저장하고, MPEG의 IMDCT동작 수행시 상기 FFT 및 트위들링 동작 수행중에 발생하는 중간 결과값들을 저장하는 제 2 저장수단, 상기 AC-3 또는 MPEG의 새로운 배열에 대한 허수부분의 배열을 저장하고 상기 AC-3의 IMDCT 동작 수행시 상기 프리-트위들링, 포스트-트위들링 및 IFFT 동작 수행중에 발생하는 중간 결과값들을 저장하고 MPEG의 IMDCT동작 수행시 상기 FFT 및 트위들링 동작 수행중에 발생하는 중간 결과값을 저장하는 제 3 저장수단, 상기 프리-트위들링, 트위들링 및 FFT수행시에 상기 제 1, 2, 3 저장수단의 해당 어드레스를 발생하고, 상기 배열을 수행하기 위하여 상기 제 2, 3 저장수단들의 어드레스를 발생하는 어드레스 발생수단 및 상기 각 수단들을 제어하기 위한 제어신호를 발생하는 스테이트 머신을 구비하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 듀얼 모드(dual mode) 오디오 디코더의 재현 방법 및 필터를 상세히 설명한다.
먼저, 돌비 AC-3의 IMDCT방법의 변형을 설명한 후 MPEG의 IMDCT방법의 변형을 설명하기로 한다.
1) 돌비 AC-3의 IMDCT방법
돌비 AC-3는 상술한 바와 같이 세 가지의 변환을 이용한다. 입력신호가 비교적 단위 시간 영역(512개의 입력 신호들이 차지하는 시간들을 표시하며 이는 표본 주파수에 따라 다르다)에서 급격한 진폭과 주파수 천이가 없으면 소위 "Long Transform"을 사용한다.
이와 달리 입력 신호의 천이가 발생하는 단위 구간에서는 두 개의 "Short Transform"을 사용하여 "Long Transform"의 사용할 때 발생하는 천이에서의 부정확도를 보상하여 준다.
다음의 수학식 1a는 AC-3의 MDCT식을 나타내는 것으로 AC-3에서 사용하는 세가지의 변환식을 나타낸다.
[수학식 1a]
Figure pat00001
여기서, 첨자 D는 블록 스위치 형태 또는 변형 형태를 나타내고, N은 "Long Transform"인 경우는 512이며, "Short Transform"인 경우는 256이다. 그리고, gm(r)은 입력신호에 분석계수(analysis window coefficients)들을 곱한 값이다.
k는 0≤k≤K/2-1이고, α는 "first short transform"인 경우dp는 -1이고, "Long Transform"인 경우dp는 0이며, "second short transform"인 경우는 1이다.
따라서, IMDCT는 아래의 수학식 1b와 같이 정의된다.
[수학식 1b]
Figure pat00002
수학식 1a에 주어진 변환의 코사인 항(cosine term)은 완전한 매트릭스(full ranked matrix)가 아니다.
그래서, 역 변환은 정 변환(forward transform)의 역을 구함에 의해서 직접적으로 구할 수 없다.
오히려, 역 변환은 완전한 재현 과정에서의 부산물로 정의된다.
먼저, "Long Transform"인 경우의 IMDCT의 변형 과정을 기술한다.
[수학식 1c]
Figure pat00003
수학식 1a의 -2/K는 편의상 무시된다. 몇단계의 변형 후에 Xk(m)의 홀수 배열(odd sequence)은 아래의 수학식 1d로 표현된다.
[수학식 1d]
Figure pat00004
이 때, zm(r)={(g1-g'2) +j (-g2-g'1)}의 관계식이 성립한다.
상기의 수학식 1d는 새로운 배열로 정의된
Figure pat00030
이 zm(r)의 DFT(Discrete Fourier Transform)의 형태로 주어짐을 표시한다.
따라서, zm(r)을 복원하는 것은 새로운 배열의 역 DFT와 일련의 스케일링 과정을 거침으로 가능하다는 것을 의미한다.
"Long Transform"의 경우에 IFFT를 이용하여 주파수 영역의 신호(Xk(m))으로부터 시간 영역의 신호(zm(r))를 복원하는 방법을 설명하면 다음과 같다.
AC-3의 IMDCT를 수행하는 전 과정을 요약하면 아래와 같다.
제1단계는 주파수 영역의 신호(Xk(m))로 부터 새로운 배열의 신호
Figure pat00031
를 형성한다. m=0, 1, ..., 255이고, K는 512이다.
제2단계는 새로운 배열의 신호
Figure pat00032
Figure pat00033
를 곱한다.
제3단계는 제2단계의 결과에 K/4-포인트 IFFT를 한다.
제4단계는 제3단계의 결과에
Figure pat00034
를 곱한다.
다음으로는 두 개의 "Short Transform"들이 어떤 식으로 수학식 1d와 같이 표현될 수 있는지에 대해 살펴본다.
첫 번째 블록(256샘플들)에 대한 "Short Transform"의 IMDCT 변형을 살펴본다.
"Short Transform"인 경우에 수학식 1a는 아래의 수학식 1e로 주어진다.
[수학식 1e]
Figure pat00005
"Long Transform"에 대한 변형과 마찬가지로 새로운 배열을 정의하기 위하여 Xk(m)의 홀수 배열과 짝수 배열을 유도한다.
새로운 배열이 아래의 수학식 1f와 같이 유도된다.
[수학식 1f]
Figure pat00006
역 변환을 계산하는 전 과정은 아래와 같이 요약된다.
제 1 단계는 주파수 영역의 신호(Xk(m))로 부터 새로운 배열의 신호
Figure pat00035
를 형성한다. K=0, 2, 4, ..., 126이고, K는 256이다.
제 2 단계는 새로운 배열의 신호
Figure pat00036
를 곱한다.
제 3 단계는 제2단계의 결과에 K/4-포인트 IFFT를 한다.
제 4 단계는 제3단계의 결과에
Figure pat00037
를 곱한다.
마지막으로, 두 번째 블록(256샘플들)에 대한 "Short Transform"의 IMDCT 변형을 살펴본다.
두 번째 블록의 "Short Transform"인 경우에 수학식 1a는 아래의 수학식 1g으로 주어진다.
[수학식 1g]
Figure pat00007
새로운 배열이 아래와 수학식 1h와 같이 유도된다.
[수학식 1h]
Figure pat00008
역 변환을 계산하는 전 과정은 아래와 같이 요약된다.
제 1 단계는 주파수 영역의 신호(Xk(m))로 부터 새로운 배열의 신호
Figure pat00038
를 형성한다. K=1, 3, 5, ..., 127이고, K는 256이다.
제 2 단계는 새로운 배열의 신호
Figure pat00039
를 곱한다.
제 3 단계는 제 2 단계의 결과에 K/4-포인트 IFFT를 한다.
제 4 단계는 제 3 단계의 결과에
Figure pat00040
를 곱한다.
결과적으로, "Long Transwform"과 두 개의 "Short Transform"이 모두 프리 트위들링 팩터(pre-twiddling factor)를 곱하고 128 또는 64-포인트 IFFT하고 포스트 트위들링 팩터(post-twiddling factor)를 곱하는 과정으로 구성된다.
다음으로, MPEG의 IMDCT식을 변형하여 돌비 AC-3의 IMDCT를 위하여 사용되는 128-포인트 FFT를 사용할 수 있음을 살펴보기로 한다.
2)MPEG의 IMDCT의 변형
MPEG에서 사용되는 IMDCT는 다음의 수학식으로 표현된다.
[수학식 2a]
Figure pat00009
여기서, 0≤γ≤63 이다.
그리고, 다음과 같은 새로운 배열을 정의하자.
[수학식 2b]
Figure pat00010
따라서, 원래의 변환식 수학식 2a를 새로 정의된 배열 수학식 2b를 사용하여 재정리하면 아래와 같이 표현될 수 있다.
[수학식 2c]
Figure pat00011
따라서, 다음의 관계식이 성립한다.
[수학식 2d]
Figure pat00012
수학식 2c로 부터 다음의 성질들이 유도될 수 있다.
[수학식 2e]
ν'm(32 + j) = ν'm(32 - j) 1≤j≤16
[수학식 2f]
ν'm(32 + j) = -ν'm(32 - j) 17≤j≤31
만약 새로운 배열을 아래의 수학식 2g과 같이 정의하면, 새로운 배열은 수학식 2h로 표현된다.
[수학식 2g]
Figure pat00013
[수학식 2h]
Figure pat00014
위 수학식은 32-포인트 DCT의 형태를 가지고 있으며, 이는 다음의 수학식 2i로 표현된다.
[수학식 2i]
Figure pat00015
여기에서, α(k)는 k=0인 경우에는
Figure pat00041
이고, k=1, 2, ..., N-1인 경우에는
Figure pat00042
이다.
그리고, 수학식 2i에 약간의 스케일 변형하여 벡터화된 표현으로 나타내면, 다음의 수학식 2j와 같다.
[수학식 2j]
V″ = CXk
여기서,
Figure pat00043
이다.
따라서, 수학식 2i의 벡터 표현은 DDCT=ACDN으로 주어지고, 매트릭스 A는 원소들(elements)이 α(k)인 대각선 매트릭스(diagonal matrix)이다.
따라서, 수학식 2j의 양변에 매트릭스 A를 곱한 후에 수학식 2i와 2j을 비교하면, 다음의 수학식 2k와 같은 관계식을 얻는다.
[수학식 2k]
AV″ = ACXk = dct(Xk)
∴ V″ = A-1dct(Xk)
수학식 2k의 결과는 식 2a에 주어진 MPEG의 원래의 역 변환에 변형을 가하여 DCT에 의해서 표현될 수 있다는 것을 나타낸다. 다음은 DCT를 사용하여 역 변환을 수행하기 위하여 요구되는 전 과정을 요약한 것이다.
제1단계는 입력 변환 계수에 대하여 32-포인트 DCT를 취한다.
제2단계는 수학식 2s에 주어진 바와 같이 A의 역 행렬을 제1단계의 결과에 곱한다.
제3단계는 수학식 2l, 2m을 이용하여 ν m'(γ)의 배열을 구한다.
제4단계는 제3단계의 32-포인트의 결과를 수학식 2e, 2f에 기초하여 64- 포인트로 확장한다.
제5단계는 수학식 2b에 주어진 관계식을 사용하여 원래의 배열 ν m(γ)을 구한다.
이제, DCT와 DFT의 상관 관계를 알아봄으로써 AC-3의 IMDCT를 위하여 사용되는 FFT가 MPEG의 IMDCT를 위하여 사용될 수 있음을 살펴보기로 한다.
3)DCT와 DFT의 관계
입력신호를 x(n)이라 가정하고 아래와 같이 y(n)을 정의하자. N-포인트 입력 배열을 x(n)이라 하고, 새로운 배열 y(n)을 다음과 같이 정의한다.
[수학식 3a]
Figure pat00016
즉, 새로운 배열 y(n)은 입력 배열 x(n)과 입력 배열 x(n)의 역순으로 배열된 배열을 붙여서 구성된다.
DCT와 DFT의 관계는 아래의 수학식 3b로 함축될 수 있다.
[수학식 3b]
Figure pat00017
수학식 3b로 부터, N-포인트 DCT가 2N-포인트 DFT 또는 FFT에 적절한 트위들링 팩터를 곱함으로써 구현될 수 있음을 알 수 있다.
따라서, N-포인트 DCT를 2N-포인트 FFT를 이용하여 수행하는 방법은 다음과 같이 요약될 수 있다.
제1단계는 수학식 3a에 나타낸 것과 같이, 입력 배열(x(n))으로 부터 새로운 배열(y(n))을 생성한다.
제2단계는 새로운 배열(y(n))에 대하여 FFT 연산을 수행한다.
제3단계는 제2단계의 결과에
Figure pat00044
을 곱한다.
제3단계까지의 연산을 수행하면 수학식 3b의 α(k)를 제외한 부분의 결과가 얻어진다. 그런데, 제3단계 수행 후에 α(k)를 곱하지 않는 이유는 이 α(k)값은 MPEG의 IMDCT과정의 제2단계에서 A-1와 곱해져서 제거되기 때문이다. 따라서, α(k)를 곱하는 과정과 MPEG의 IMDCT연산 방법의 제2단계를 수행하는 과정을 생략하여도 상관없다. 즉, 제3단계에서 트위들링 팩터(
Figure pat00045
)를 곱해주면 수학식 2s의 V″이 얻어지게 된다. 그래서, 제3단계까지를 수행한 후에 MPEG의 IMDCT연산 방법에 나타낸 제3단계에서 제5단계까지의 과정을 수행하면 원하는 출력을 발생할 수 있다.
결과적으로, 상술한 설명으로 부터 얻어질 수 있는 본 발명의 듀얼 모드 오디오 디코더의 FFT를 이용한 MPEG의 IMDCT연산 방법을 요약하면 다음과 같다.
제1단계는 수학식 3a에 나타낸 것과 같이, 입력 배열(x(n))으로 부터 새로운 배열(y(n))을 생성한다.
제2단계는 새로운 배열(y(n))에 대하여 FFT 연산을 수행한다.
제3단계는 제2단계의 결과에
Figure pat00046
을 곱하여 V″을 구한다.
제4단계는 수학식 2l, 2m을 이용하여 ν m'(γ)의 배열을 구한다.
제5단계는 제4단계의 32-포인트의 결과를 수학식 2e, 2f에 기초하여 64- 포인트로 확장한다.
제6단계는 수학식 2b에 주어진 관계식을 사용하여 원래의 배열 ν m(γ)을 구한다.
128-포인트 FFT에 기초한 AC-3의 IMDCT는 "Multi-Channel Digital Audio Compression System" (Dolby Laboratories Information, Feb 22, 1994)에 개시되어 있다. K가 512인 AC-3 IMDCT는 128-포인트 FFT를 이용하여 수행될 수 있으며 MPEG의 IMDCT는 64-포인트 FFT를 사용하여 구현될 수 있으며, 이는 128-포인트 FFT 구성만이 필요하다는 것을 의미한다.
상술한 본 발명의 듀얼 모드 오디오 디코더의 IMDCT방법 및 회로를 도면을 이용하여 설명하면 다음과 같다.
도 1은 본 발명의 듀얼 모드 IMDCT방법을 나타내는 흐름도로서, 먼저, 입력 비트 스트림이 AC-3 비트 스트림인지 혹은 MPEG 비트 스트림인지를 판단한다(S100).
만일, AC-3 비트 스트림으로 판단되면, 주어진 변환 계수들(Xk(m))으로 부터 새로운 배열을 생성한다(S110).
새로운 배열에 프리-트위들링 팩터를 곱한다(S120).
K/4-포인트 FFT를 이용하여 IFFT를 수행한다(S130).
마지막으로, 제130단계의 결과에 포스트-트위들링 팩터를 곱한다(S140).
이와같이 AC-3 비트 스트림에 대한 IMDCT를 수행한다.
다음으로, 제100단계의 판단결과 MPEG 비트 스트림으로 판단되면, 입력 신호에 대한 새로운 배열을 생성한다(S150). 즉, 입력신호에 입력신호의 배열을 역순으로 배열한 배열을 추가한 새로운 배열을 생성한다.
새로운 배열에 대한 K/8-포인트 FFT를 순행한다(S130).
단계(S130)의 결과에 트위들링 팩터(
Figure pat00047
)를 곱한다(S160).
단계(S160)의 결과를 이용하여 재배열을 한다(S170).
재배열 과정은 상술한 수학식들을 이용하여 ν"으로 부터 ν를 발생하는 과정이다.
이와같은 방법으로 MPEG비트 스트림에 대한 IMDCT를 수행한다.
도 1에 나타낸 흐름도는 상술한 IMDCT방법을 간단하게 나타낸 것으로서, 각 단계에 적용되는 수학식들은 상술한 IMDCT방법의 설명을 참고하기 바란다.
도 2는 본 발명의 듀얼 모드 오디오 디코더의 IMDCT회로의 블록도로서, 버터플라이(200), 스테이트 머신(210), 어드레스 발생기(220), 두 개의 128 × 24램들(230, 250), 롬 테이블(240), 512 × 24 IMDCT버퍼(260)로 구성되어 있다.
IMDCT회로의 입력들은 주파수 영역에서 재현된 비트 스트림들로서, 512 ×24 IMDCT버퍼(260)는 AC-3의 포스트-트위들된 출력을 저장하고, IMDCT를 수행한 후의 최종 16블록의 32개 MPEG샘플들을 저장하고 출력한다.
버터플라이 모듈(200)은 AC-3 데이터를 처리하는 경우에는 프리-트위들링(pre-twiddling), 포스트-트위들링(post-twiddling), 및 128-포인트 IFFT를 수행하고, MPEG데이타를 처리하는 경우에는 64-포인트 FFT, 및 트위들링(twiddling)동작을 수행한다.
롬 테이블(240)은 트위들링과 FFT수행시에 필요한 계수들의 값들을 저장한다.
어드레스 발생기(220)는 트위들링과 FFT수행시에 램들(230, 250)과 롬(240)의 해당 어드레스를 발생하고, MPEG 샘플들의 배열과 재배열을 하기 위한 램들(230, 250)의 어드레스를 발생한다.
128 ×24램(230)은 AC-3의 IMDCT 동작 수행시에는 IMDCT버퍼(260)에 저장된 256개 샘플들중 실수 배열에 해당하는 샘플들의 값을 저장하고 이들 샘플들에 대한 트위들링 및 IFFT 동작 수행중에 발생하는 중간 결과값들을 저장한다.
또한, MPEG의 IMDCT동작 수행시에는 새로운 배열의 실수부분의 샘플들을 저장하고 이들 샘플들에 대한 FFT 및 트위들링 동작 수행중에 발생하는 중간 결과값들을 저장하고 재배열의 결과를 저장한다.
즉, 128 ×24램(230)은 실수부분의 샘플들에 대한 배열, FFT, 트위들링 및 재배열의 수행중에 발생하는 중간 결과값들을 저장한다.
128 ×24램(250)은 AC-3의 IMDCT 동작 수행시에는 IMDCT버퍼(260)에 저장된 256개 샘플들중 허수 배열에 해당하는 샘플들의 값을 저장하고 이들 샘플들에 대한 트위들링 및 FFT 동작 수행중에 발생하는 중간 결과값들을 저장하고 재배열의 결과를 저장한다. 또한, MPEG의 IMDCT동작 수행중에는 새로운 배열의 허수부분의 샘플들을 저장하고 IMDCT동작 수행시에는 트위들링 및 FFT동작 수행중에 발생하는 중간 결과값들을 저장한다. 즉, 128 ×24램(250)은 허수부분의 샘플들에 대한 배열, FFT, 트위들링 및 재배열의 수행중에 발생하는 중간 결과값들을 저장한다. 그런데, MPEG의 IMDCT수행 후에 허수부분의 결과 값은 0이다. 스테이트 머신(210)은 데이터와 상기 각 블록들을 제어하기 위한 제어신호들을 발생한다.
도 3은 도 2에 나타낸 버터플라이 모듈의 실수 영역에서의 래딕스-2(radix-2) FFT의 버터플라이 구조를 나타내는 것으로, sinθ는 IFFT의 경우에 부호가 바뀐다.
128-포인트 FFT를 래딕스-2 구조로 구현하려면 실수 부분과 허수 부분에 대하여 각각 64개의 쌍이 필요하다.
그리고 도 3에 나타낸 구조가 7단이 요구되며 각 쌍은 2번의 승산과 2번의 가산을 요구한다.
이제, 듀얼 모드 오디오 디코더의 MPEG IMDCT출력 데이터의 윈도우잉(windowing)과 오버랩 및 애드(overlap and add)방법에 대하여 아래에 설명한다.
우선, 종래의 MPEG IMDCT출력 데이터의 윈도우잉과 오버랩 및 애드 방법을 설명하면 다음과 같다.
듀얼 모드 오디오 디코더가 오디오 데이터의 디코딩을 수행하기 위해서는 IMDCT를 수행한 이후에 윈도우잉을 하여야 한다.
완전한 재현을 위한 MPEG 오디오 데이터의 디코딩에 있어서, IMDCT출력의 값을 저장하는 V어레이는 1024샘플들을 저장해야 한다.
그래서, IMDCT출력들을 저장하는 메모리는 MPEG의 윈도우잉 동작을 위하여 1024샘플들을 저장할 만큼 커야 한다.
즉, 도2에 나타낸 IMDCT버퍼가 1024샘플들을 저장할 수 있어야 한다. 512의 크기를 가진 합성 윈도우는 표준(Standard)에 기술된 대로 V어레이와 곱해진다.
도 4a는 V어레이의 형태를 나타내고, 도 4b는 윈도우의 형태를 나타내는 것이다.
그리고, 도 4c는 32개의 완전하게 재현된 샘플들을 출력하기 위한 MPEG오디오 디코더의 재현을 나타내는 것이다.
V어레이의 원소들(elements)은 다음 오디오 블록의 새로운 64개의 IMDCT 출력이 들어올 때 오른쪽으로 64샘플들이 쉬프트된다.
V어레이의 가장 왼쪽에 위치한 샘플들이 가장 최근에 입력된 샘플들이고 도 4a에 0으로 표시한 블록이다.
가장 오른쪽에 위한 샘플들이 가장 먼저 입력된 샘플들로서 도4a에 15로 표시한 블록이다.
즉, 도 4a의 V어레이의 각각의 블록들에 매겨진 0에서 15까지의 번호는 데이터 입력 순서에 따라 기재한 것이다.
각각의 IMDCT 출력은 64샘플들로 구성되고, V어레이의 짝수번호가 매겨진(even-numbered) 블록들(0, 2, 4, 6, 8, 10, 12, 14)의 첫 번째 32 IMDCT출력들과 홀수번호가 매겨진(odd-numbered) 블록들(1, 3, 5, 7, 9, 11, 13, 15)의 두 번째 32 IMDCT출력들이 윈도우잉을 위하여 사용된다.
도 4b에 나타낸 것처럼, 합성 윈도우는 512 계수들(coefficients)로 구성되고 512계수들은 16개의 블록들로 나누어지고 각 블록들은 32 계수들로 구성된다.
윈도우의 블록들의 왼쪽에서 오른쪽으로 순서대로 0에서 15로 기재하였다.
도 4b의 짝수번호가 매겨진 윈도우 블록들(0, 2, 4, 6, 8, 10, 12, 14)의 윈도우 계수들과 V어레이의 짝수번호가 매겨진 블록들(0, 2, 4, 6, 8, 10, 12, 14)의 첫 번째 32 IMDCT 출력들이 각각 곱해지고, 홀수번호가 매겨진 윈도우 블록들(1, 3, 5, 7, 9, 11, 13, 15)의 윈도우 계수들과 V어레이의 홀수번호가 매겨진 블록들(1, 3, 5, 7, 9, 11, 13, 15)의 두 번째 32 IMDCT출력들이 각각 곱해진다.
이와같은 동작은 새로운 64 IMDCT 출력이 어레이 V에 저장될 때에 모든 원소들이 오른쪽으로 쉬프트된다 하더라도 그렇게 된다. 이와같이 해서 도4c에 나타낸 바와 같이 16개의 블록들의 윈도우잉 결과들이 얻어지고, 이들 16개의 결과들이 오버랩되고 애드되어 완전하게 재현된 32샘플들이 구해진다.
본 발명에서는 MPEG의 IMDCT 출력 데이터의 아래의 성질을 사용하여 윈도우잉을 수행한다.
다음의 수학식 4a - 4d에 의해 표현되는 성질들은 IMDCT 블럭의 64 샘플들에 적용된다.
[수학식 4a]
ν(i) = -ν(32-i) i=0,1,2,...,15
수학식 4a로부터, i=0,1,...,15에 대한 수열 v(i)는 i=17,18,...,32에 대한 수열 v(i)로부터 구성될 수 있음을 의미하며, 그 역도 역시 성립한다.
[수학식 4b]
ν(16) = 0
수학식 4b로부터, v(16)을 계산할 필요가 없거나 최소한 곱셈계산은 포함하지 않는다는 것을 알 수 있다.
[수학식 4c]
ν(i) = ν(96-i) i=33,34,...,47
수학식 4c로부터, i=49,50,...,63에 대한 수열 v(i)는 i=33,34,...,47에 대한 수열 v(i)로부터 구성될 수 있음을 의미하며, 그 역도 역시 성립한다.
[수학식 4d]
ν(48) = - sum of 32 encoded inputs
수학식 4d로부터, v(48)을 계산하는데 곱셈이 필요없다는 것을 알 수 있다.
도 5는 어레이(V)의 각 블록(VB)의 성질들을 설명하기 위한 것으로, 수학식 4a에 나타낸 성질은 i=15, 14, ..., 0에 대한 v(i)는 i=17, 18, ..., 32에 대한 v(i)의 네거티브 미러 이미지임을, i=63, 62, ..., 49에 대한 v(i)는 i=33, 34, ..., 47에 대한 v(i)의 포지티브 미러 이미지임을 나타내는 것이다. 이것은 위도우잉 동작을 위하여 64샘플들 모두를 저장할 필요가 없다는 것을 암시한다. 즉, i=17, 18, ..., 48에 대한 v(i)의 32개의 대표적인 샘플들만을 저장하거나, i=0, 1, 2, ..., 15, 48, 49, ..., 63에 대한 v(i)의 32개의 대표적인 샘플들만을 저장하여 윈도우잉 및 오버랩 & 애드 동작을 수행하면 된다는 것이다. 도5에서, 수학식 4a는 ①과 ②부분의 샘플들이 네거티브 미러 이미지임을, 수학식 4b는 ⑤로 표시한 열일곱번째 샘플이 0임을, 수학식 4c는 ③과 ④부분의 샘플들이 포지티브 미러 이미지임을, 수학식 4d는 ⑥부분의 샘플이 32 인코드된 입력들의 합의 네거티브를 취한 값임을 각각 나타내는 것이다.
여기서 주목해야 할 점은 수학식 2b와 2e, f, l로 부터 32 IMDCT출력 시퀀스
Figure pat00048
, For 17≤
Figure pat00049
≤48가 시퀀스( ν″(i), i=31, 30, ..., 0)의 네거티브 값과 대응하는 것을 알 수 있다.
따라서, 듀얼 모드 오디오 디코더의 MPEG의 IMDCT연산을 수행할 경우에 상술한 배열, FFT, 트위들링 과정만을 수행하면 되고 재배열 과정을 필요하지 않게 된다는 것이다.
결과적으로, 도 2의 IMDCT버퍼에 데이터를 저장할 때, 시퀀스( ν″(i), i=31, 30, ..., 0)의 네거티브 값을 저장하여 두고 이 값을 사용하여 윈도우잉 동작을 수행하면 된다는 것이다.
도 6a는 본 발명의 윈도우잉 방법에 사용되는 어레이(VP)를 나타내는 것으로, 도 4a에 나타낸 어레이(V)에서 각 블록(VB)의 17번째 IMDCT출력으로 부터 48번째 IMDCT출력까지를 저장한 형태이다.
즉, 어레이(VP)의 각 블록은 32 IMDCT출력들로 구성된다. 그래서, 도2에 나타낸 IMDCT버퍼의 크기가 도 4a에 나타낸 어레이(V)를 저장하기 위해서 1024의 크기를 가져야 하지만, 도 5a에 나타낸 어레이(VP)를 저장하기 위해서는 512의 크기를 가지면 된다.
도 6b는 도 4b에 나타낸 윈도우의 형태와 동일하다. 도 6a에서, 빗금친 짝수번호가 매겨진 어레이(VP) 블록들의 첫 번째 16 IMDCT출력들과 홀수번호가 매겨진 어레이(VP) 블록들의 두 번째 16 IMDCT출력들이 윈도우잉을 위하여 사용되는 샘플들이다. 즉, 어레이(VP)에 저장되는 값이 상술한 바와 같이 IMDCT연산의 최종 출력들( ν)이어도 상관없지만 시퀀스(( ν″(i), i=31, 30, ..., 0)의 네거티브 값이 저장되는 것이 바람직하다.
도 7a, 7b는 본 발명의 윈도우잉 방법을 보인 것으로, 도 7a는 도 6a에 나타낸 어레이(VP)의 짝수번호가 매겨진 블록들(VPE)(0, 2, 4, 6, 8, 10, 12, 14)의 첫번째 16샘플들과 도 6b에 나타낸 윈도우(W)의 짝수번호가 매겨진 블록들(WE)(0, 2, ..., 14)의 윈도우 계수들을 각각 윈도우잉하는 방법을 나타낸 것이고, 도 7b는 도 6a에 나타낸 어레이(VP)의 홀수번호가 매겨진 블록들(VPO)(1, 3, 5, 7, 9, 11, 13, 15)의 두 번째 16샘플들과 도 6b에 나타낸 윈도우(W)의 홀수번호가 매겨진 블록들(WO)1, 3, ..., 15)의 윈도우 계수들을 각각 윈도우잉하는 방법을 나타내는 것이다.
도 8은 본 발명의 윈도우잉/오버랩 및 애드 방법을 설명하기 위한 동작 흐름도로서, 도 7a, 7b와 관련하여 윈도우잉 방법을 설명하면 다음과 같다.
도 7a에 나타낸 것과 같이 짝수번호가 매겨진 어레이(VPE(l), l=32, 31, ..., 17), l은 IMDCT출력들의 대응하는 시간 영역 빈 번호들(time domain bin numbers)을 나타내는 것이다) IMDCT출력들과 윈도우(W)의 짝수번호가 매겨진 윈도우(WE(l), l=0, 1, ..., 15), l은 각 블록의 대응하는 빈 번호들을 나타내는 것이다)의 윈도우 계수들을 각각 곱하고 반전하여 짝수번호가 매겨진 레지스터(RE(l), l=0, 1, ..., 15)에 각각 저장한다(제800단계).
도 7a의 빗금친 부분은 이 부분의 윈도우 계수와 곱해진 결과값은 반전되어야 함을 나타내기 위함이다.
짝수번호가 매겨진 어레이(VPE(l), l=17, 18, ..., 31))의 IMDCT출력들과 윈도우(W)의 짝수번호가 매겨진 윈도우(WE(l), l=17, 18, ..., 31)의 윈도우 계수들을 각각 곱하여 짝수번호가 매겨진 레지스터(RE(l), l=17, 18, ..., 31)에 각각 저장한다(S810).
0을 짝수번호가 매겨진 레지스터(RE(l), l=16)에 저장한다(S820).
홀수번호가 매겨진 어레이(VPO(l), l=32, 33, ..., 48))의 IMDCT출력들과 윈도우(W)의 홀수번호가 매겨진 윈도우(WO(l), l=0, 1, ..., 16)의 윈도우 계수들을 각각 곱하여 홀수번호가 매겨진 레지스터(RO(l), l=0, 1, ..., 16)에 각각 저장한다(S830).
홀수번호가 매겨진 어레이(VPE(l), l=47, ..., 33))의 IMDCT출력들과 윈도우(W)의 홀수번호가 매겨진 윈도우(WO(l), l=17, ..., 31)의 윈도우 계수들을 각각 곱하여 홀수번호가 매겨진 레지스터(RO(l), l=17, ..., 31)에 각각 저장한다(S840).
단계(S840)를 수행하면, 어레이(VP)의 각 블록(VB)에 대한 윈도우잉 결과값들이 레지스터들(RE(l), RO(l))에 각각 저장된다. 즉, 16개의 레지스터들에 32샘플들의 윈도우잉 결과값이 저장된다.
레지스터들의 값들을 오버랩하고 애드하여 최종적인 결과값인 32 PCM출력값을 발생한다(S850).
그리고, 단계(S840)를 수행한 후에 어레이(VP)의 32샘플들을 오른쪽으로 쉬프트하고 새로운 32 IMDCT출력을 저장하여 상기 단계(S800)로 진행한다(S860).
즉, 새로운 32 IMDCT출력이 입력될 때마다 윈도우잉/오버랩 & 애드 동작을 수행하여 최종적인 32 PCM 출력을 발생하게 된다.
상술한 실시예는 짝수번호가 매겨진 어레이(VPE)의 블록들에 대한 윈도우잉 동작을 동시에 수행하고 윈도우잉 결과를 짝수번호가 매겨진 레지스터들에 저장하고, 다음 홀수번호가 매겨진 어레이(VPO)의 블록들에 대한 윈도우잉 동작을 동시에 수행하고 윈도우잉 결과를 홀수번호가 매겨진 레지스터들에 저장한 후, 이들 레지스터들의 결과값을 오버랩하고 애드하여 최종적인 결과를 발생하는 것이다.
그러나, 홀수번호가 매겨진 어레이의 블록들에 대한 윈도잉 동작을 먼저 수행하고 짝수번호가 매겨진 어레이의 블록들에 대한 윈도우잉 동작을 수행하여도 상관없다.
그리고, 실시예에서와 같이 수행할 경우에 각각에 어레이 블록들에 대한 계산 결과를 저장할 레지스터를 각각 구비하여야 하므로 레지스터의 크기가 커져야 한다는 단점이 있다.
그래서, 이를 해결하기 위한 다른 방법으로는 어레이 블록들의 윈도우잉 동작을 순차적으로 수행하여 그 결과를 레지스터에 저장하고 이 레지스터에 저장된 결과와 다음 윈도우잉 동작 수행시에 발생하는 결과값을 가산하여 그 중간 결과값을 저장하는 방법으로 하면 이와같은 문제는 손쉽게 해결될 수 있다.
본 발명의 듀얼 모드 오디오 디코더의 윈도우잉 방법은 MPEG의 V어레이의 각 블록의 64개의 IMDCT출력들의 성질들을 이용하여 각 블록의 32개의 IMDCT출력들만 윈도우잉을 위하여 저장하면 됨으로 메모리 크기를 줄일 수 있다.
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 기술적 사상내에서 당 분야의 통상의 지식을 가진 자에 의해서 가능함은 명백하다.
따라서, 본 발명의 듀얼 모드 오디오 디코더의 IMDCT방법 및 회로는 MPEG과 돌비 AC-3를 사용하여 인코딩한 신호를 하나의 겸용 FFT회로를 이용하여 IMDCT연산을 수행할 수 있도록 함으로써 하드웨어 구성을 감소할 수 있다.
또한, 본 발명의 듀얼 모드 오디오 디코더의 윈도우잉 방법은 MPEG의 IMDCT출력들의 성질들을 이용하여 윈도우잉을 위하여 저장되는 IMDCT출력들을 감소함으로써 메모리 크기를 줄일 수 있다.
도 1은 본 발명의 듀얼 모드 오디오 디코더의 IMDCT방법을 나타내는 흐름도이다.
도 2는 본 발명의 듀얼 모드 오디오 디코더의 IMDCT회로의 블록도이다.
도 3은 도 2에 사용된 버터플라이 모듈의 실수 영역에서의 래딕스-2(radix-2) FFT 버터플라이 구조를 나타내는 것이다.
도 4a, 4b, 4c는 종래의 윈도우잉을 위한 V어레이의 형태, 윈도우의 형태, 및 오버랩 & 애드 동작을 나타내는 것이다.
도 5는 어레이(V)의 블록(VB)의 성질들을 설명하기 위한 것이다.
도 6a, 6b는 본 발명의 윈도우잉 방법에 사용되는 어레이(VP) 및 윈도우의 형태를 나타내는 것이다.
도 7a, 7b은 본 발명의 듀얼 모드 오디오 디코더의 윈도우잉 방법을 설명하기 위한 것이다.
도 8은 본 발명의 듀얼 모드 오디오 디코더의 윈도우잉 방법을 나타내는 동작 흐름도이다.
*도면의 주요 부분에 대한 부호의 설명*
200 : 버터 플라이 모듈 210 : 스테이트 머신
220 : 어드레스 발생기 230, 250 : 128 × 24램
240 : 롬 테이블 260 : 512 × 24 IMDCT 버퍼

Claims (11)

  1. AC-3 비트 스트림이 입력되면 주어진 변환값으로 부터 새로운 배열을 형성하는 단계;
    상기 새로운 배열에 프리-트위들링 팩터를 곱하는 프리-트위들링 단계;
    상기 프리-트위들링 단계 후의 결과에 대하여 FFT를 이용하여 IFFT를 수행하는 FFT 단계;
    상기 FFT 단계 후의 결과에 포스트-트위들링 팩터를 곱하는 포스트-트위들링 단계;
    MPEG 비트 스트림이 입력되면 입력 배열에 대한 새로운 배열을 생성하는 단계;
    상기 새로운 배열에 대하여 상기 FFT를 이용하여 FFT를 수행하는 단계;
    상기 FFT단계 수행 후의 결과에 트위들링 팩터를 곱하는 트위들링 단계; 및
    상기 트위들링 단계 후의 결과를 재배열하는 재배열 단계를 구비하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT연산 방법.
  2. 제1항에 있어서, 상기 MPEG 비트 스트림에 대한 새로운 배열은 상기 입력 배열에 상기 입력 배열에 대한 미러 이미지를 추가함으로써 구해지는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT연산 방법.
  3. 제1항에 있어서, 상기 FFT단계는 AC-3의 경우는 128 또는 64-포인트 IFFT를 수행하고 MPEG의 경우는 68-포인트 FFT를 수행하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT 연산방법.
  4. AC-3 비트 스트림이 입력되면 주어진 변환값으로 부터 새로운 배열을 형성하는 단계;
    상기 새로운 배열에 대한 프리-트위들링을 수행하는 프리-트위들링 단계;
    상기 프리-트위들링 단계 후의 결과에 대한 FFT를 수행하는 FFT 단계;
    상기 FFT 단계 후의 결과에 대한 포스트-트위들링을 수행하는 포스트-트위들링 단계;
    MPEG 비트 스트림이 입력되면 입력신호에 대한 새로운 배열을 생성하는 단계;
    상기 MPEG비트 스트림의 새로운 배열에 대한 상기 FFT단계를 수행하는 단계; 및
    상기 FFT단계 수행 후의 결과에 대한 트위들링을 수행하는 트위들링 단계를 구비하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT 연산방법.
  5. 제4항에 있어서, 상기 MPEG 비트 스트림에 대한 새로운 배열은 상기 입력신호에 대한 미러 이미지를 추가함으로써 구해지는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT 연산방법.
  6. 제4항에 있어서, 상기 FFT단계는 AC-3의 경우는 128- 또는 64-포인트 IFFT를 수행하고 MPEG의 경우는 64-포인트 FFT를 수행하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT 연산방법.
  7. AC-3 입력 샘플들을 저장하고 IMDCT수행 후 AC-3의 IMDCT출력들을 저장하고, MPEG의 IMDCT출력들을 저장하는 제1저장수단;
    AC-3의 경우에 프리-트위들링, 포스트-트위들링, 및 IFFT를 수행하고, MPEG의 경우에는 FFT, 및 트위들링동작을 수행하는 버터플라이 모듈;
    상기 트위들링과 FFT수행시에 필요한 계수들의 값들을 저장하는 롬;
    MPEG의 입력 비트 스트림을 입력하고 AC-3 또는 MPEG의 새로운 배열에 대한 실수부분의 배열을 저장하고 AC-3의 IMDCT 동작 수행시 상기 프리-트위들링, 포스트-트위들링 및 IFFT 동작 수행중에 발생하는 중간 결과값들을 저장하고, MPEG의 IMDCT동작 수행시 상기 FFT 및 트위들링 동작 수행중에 발생하는 중간 결과값들을 저장하고 재배열의 결과를 저장하는 제2저장수단;
    상기 AC-3 또는 MPEG의 새로운 배열에 대한 허수부분의 배열을 저장하고 상기 AC-3의 IMDCT 동작 수행시 상기 프리-트위들링, 포스트-트위들링 및 IFFT 동작 수행중에 발생하는 중간 결과값들을 저장하고 MPEG의 IMDCT동작 수행시 상기 FFT 및 트위들링 동작 수행중에 발생하는 중간 결과값을 저장하고 재배열의 결과를 저장하는 제3저장수단;
    상기 프리-트위들링, 포스트-트위들링, 트위들링 및 FFT수행시에 상기 제1, 2, 3저장수단의 해당 어드레스를 발생하고, 상기 배열과 재배열을 수행하기 위하여 상기 제2, 3저장수단들의 어드레스를 발생하는 어드레스 발생수단; 및
    상기 각 수단들을 제어하기 위한 제어신호를 발생하는 스테이트 머신을 구비하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT 연산회로.
  8. 제7항에 있어서, 상기 버터플라이 모듈은 AC-3의 IMDCT연산 수행시에는 128- 또는 64-포인트 IFFT를 수행하고 MPEG의 IMDCT연산 수행시에는 64-포인트 FFT를 수행하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT 연산회로.
  9. AC-3 입력 샘플들을 저장하고 IMDCT수행 후 AC-3의 IMDCT출력들을 저장하고, MPEG의 IMDCT출력들을 저장하는 제1저장수단;
    AC-3의 경우에 프리-트위들링, 포스트-트위들링, 및 IFFT를 수행하고, MPEG의 경우에는 FFT, 및 트위들링동작을 수행하는 버터플라이 모듈;
    상기 트위들링과 FFT수행시에 필요한 계수들의 값들을 저장하는 롬;
    MPEG의 입력 비트 스트림을 입력하고 AC-3 또는 MPEG의 새로운 배열에 대한 실수부분의 배열을 저장하고 AC-3의 IMDCT 동작 수행시 상기 프리-트위들링, 포스트-트위들링 및 IFFT 동작 수행중에 발생하는 중간 결과값들을 저장하고, MPEG의 IMDCT동작 수행시 상기 FFT 및 트위들링 동작 수행중에 발생하는 중간 결과값들을 저장하는 제2저장수단;
    상기 AC-3 또는 MPEG의 새로운 배열에 대한 허수부분의 배열을 저장하고 상기 AC-3의 IMDCT 동작 수행시 상기 프리-트위들링, 포스트-트위들링 및 IFFT 동작 수행중에 발생하는 중간 결과값들을 저장하고 MPEG의 IMDCT동작 수행시 상기 FFT 및 트위들링 동작 수행중에 발생하는 중간 결과값을 저장하는 제3저장수단;
    상기 프리-트위들링, 포스트-트위들링, 트위들링 및 FFT수행시에 상기 제1, 2, 3저장수단의 해당 어드레스를 발생하고, 상기 배열을 수행하기 위하여 상기 제2, 3저장수단들의 어드레스를 발생하는 어드레스 발생수단; 및
    상기 각 수단들을 제어하기 위한 제어신호를 발생하는 스테이트 머신을 구비하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT 연산회로.
  10. 제9항에 있어서, 상기 버터플라이 모듈은 AC-3의 IMDCT연산 수행시에는 128- 또는 64-포인트 IFFT를 수행하고 MPEG의 IMDCT연산 수행시에는 64-포인트 FFT를 수행하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 IMDCT 연산회로.
  11. 15번째 블록(가장 나중에 입력되는 IMDCT출력들을 저장하는 블록)으로 부터 0번째 블록(가장 먼저 입력되는 IMDCT출력들을 저장하는 블록)까지의 16개의 블록들로 이루어지고 각각의 블록들이 MPEG의 64개의 IMDCT출력들중 17번째 빈부터 48번째 빈까지의 IMDCT출력들을 저장하는 어레이;
    0번째 블록으로 부터 15번째 블록까지의 16개의 블록들로 이루어지고 각각의 블록들이 0번째 부터 31번째 윈도우 계수들을 저장하는 윈도우; 및
    상기 어레이와 윈도우의 윈도우잉 결과를 저장하기 위하여 0번째 블록으로부터 15번째 블록까지의 16개의 블록들로 이루어지고 각각의 블록들이 0번째 부터 31번째의 결과를 저장하기 위한 저장수단을 구비한 듀얼 모드 오디오 디코더의 윈도우잉 방법에 있어서,
    상기 어레이의 홀수번호가 매겨진 블록들의 32번째 빈부터 17번째 빈까지의 IMDCT출력들과 상기 윈도우의 짝수번호가 매겨진 블록들의 0번째 부터 15번째 까지의 윈도우 계수들을 각각 곱하여 결과값을 상기 저장수단의 짝수번호가 매겨진 블록들의 0번째 부터 15번째 까지의 위치에 저장하는 단계;
    상기 어레이의 홀수번호가 매겨진 블록들의 17번째 빈부터 31번째 빈까지의 IMDCT출력들과 상기 윈도우의 짝수번호가 매겨진 블록들의 17번째 부터 31번째 까지의 윈도우 계수들을 각각 곱하여 결과값을 상기 저장수단의 짝수번호가 매겨진 블록들의 17번쩨 부터 31번째 까지의 위치에 저장하는 단계;
    상기 저장수단의 짝수번호가 매겨진 블록들의 16번째 위치에 0을 저장하는 단계;
    상기 어레이의 짝수번호가 매겨진 블록들의 34번째 빈부터 48번째 빈까지의 IMDCT출력들과 상기 윈도우의 홀수번호가 매겨진 블록들의 0번째 부터 14번재까지의 윈도우 계수들을 각각 곱하여 결과값을 상기 저장수단의 홀수번호가 매겨진 블록들의 0번째 부터 14번째까지의 위치에 저장하는 단계;
    상기 어레이의 짝수번호가 매겨진 블록들의 48번째 빈부터 33번째 빈까지의 IMDCT출력들과 상기 윈도우의 홀수번호가 매겨진 블록들의 16번째 부터 31번째 까지의 윈도우 계수들을 각각 곱하여 결과값을 상기 저장수단의 홀수번호가 매겨진 블록들의 16번째 부터 31번째까지의 위치에 저장하는 단계;
    상기 저장수단의 홀수번호가 매겨진 블록들의 15번째 위치에 인코드된 입력의 합의 네거티브 값을 저장하는 단계;
    상기 어레이를 오른쪽으로 1블록 쉬프트하고 새로운 1블록단위의 IMDCT출력들을 입력하는 단계; 및
    상기 저장수단에 저장된 결과값들이 오버랩되고 더해져서 최종적인 결과값을 발생하는 단계를 구비하는 것을 특징으로 하는 듀얼 모드 오디오 디코더의 윈도우잉 방법.
KR1019970061471A 1996-11-20 1997-11-20 듀얼모드오디오디코더의재현방법및필터 KR100488537B1 (ko)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
KR1019960055726A KR100205223B1 (en) 1996-11-20 1996-11-20 Method for windowing in audio decoder
KR96-55726 1996-11-20
KR19960055725 1996-11-20
KR96-55725 1996-11-20
KR1019960055725 1996-11-20
KR1019960055726 1996-11-20
KR96-58349 1996-11-27
KR1019960058349 1996-11-27
KR1019960058349A KR100205225B1 (en) 1996-11-27 1996-11-27 Idct method in mpeg audio decoder
KR1019970019852A KR19980084170A (ko) 1997-05-21 1997-05-21 Mpeg과 돌비 ac3 오디오 디코더를 위한 겸용 필터
KR1019970019852 1997-05-21
KR97-19852 1997-05-21

Publications (2)

Publication Number Publication Date
KR19980042631A KR19980042631A (ko) 1998-08-17
KR100488537B1 true KR100488537B1 (ko) 2005-09-30

Family

ID=27483168

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970061471A KR100488537B1 (ko) 1996-11-20 1997-11-20 듀얼모드오디오디코더의재현방법및필터

Country Status (2)

Country Link
US (2) US6304847B1 (ko)
KR (1) KR100488537B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1016231B1 (en) * 1997-08-29 2007-10-10 STMicroelectronics Asia Pacific Pte Ltd. Fast synthesis sub-band filtering method for digital signal decoding
KR100284402B1 (ko) * 1997-12-26 2001-03-02 김영환 에이씨-3 오디오 디코더의 산술 연산 장치
KR100300844B1 (ko) * 1997-12-26 2001-09-03 박종섭 에이씨-3디코더의아이엠디씨티회로
JP3524747B2 (ja) 1998-01-30 2004-05-10 三洋電機株式会社 離散コサイン変換回路
JP3547972B2 (ja) 1998-01-30 2004-07-28 三洋電機株式会社 離散コサイン変換回路
JP3547971B2 (ja) * 1998-01-30 2004-07-28 三洋電機株式会社 離散コサイン変換回路及びその動作方法
US6430529B1 (en) * 1999-02-26 2002-08-06 Sony Corporation System and method for efficient time-domain aliasing cancellation
JP2000323993A (ja) * 1999-05-11 2000-11-24 Mitsubishi Electric Corp Mpeg1オーディオレイヤiii復号処理装置およびコンピュータをmpeg1オーディオレイヤiii復号処理装置として機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体
US6721708B1 (en) * 1999-12-22 2004-04-13 Hitachi America, Ltd. Power saving apparatus and method for AC-3 codec by reducing operations
WO2001059603A1 (en) * 2000-02-09 2001-08-16 Cheng T C Fast method for the forward and inverse mdct in audio coding
US6748363B1 (en) * 2000-06-28 2004-06-08 Texas Instruments Incorporated TI window compression/expansion method
US6839727B2 (en) * 2001-05-01 2005-01-04 Sun Microsystems, Inc. System and method for computing a discrete transform
EP1397798B1 (en) * 2001-06-08 2006-04-12 STMicroelectronics Asia Pacific Pte Ltd. Unified filter bank for audio coding
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
US7240001B2 (en) 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
US7941037B1 (en) 2002-08-27 2011-05-10 Nvidia Corporation Audio/video timescale compression system and method
US7502743B2 (en) * 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
JP3766413B2 (ja) * 2003-09-10 2006-04-12 沖電気工業株式会社 データ並び替え方法
KR100597439B1 (ko) * 2004-11-03 2006-07-06 한국전자통신연구원 2n-포인트 및 n-포인트 fft/ifft 듀얼모드 장치
KR100760976B1 (ko) * 2005-08-01 2007-09-21 (주)펄서스 테크놀러지 프로그래머블 프로세서에서 mpeg-2 또는 mpeg-4aac 오디오 복호 알고리즘을 처리하기 위한 연산 회로및 연산 방법
KR100721263B1 (ko) * 2005-08-31 2007-05-23 한국전자통신연구원 Imdct 코프로세서 및 이를 포함한 오디오 복호기
US7831434B2 (en) 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
CN102200963B (zh) * 2010-12-28 2013-06-19 上海山景集成电路股份有限公司 一种用于音频解码的定点修正离散余弦反变换imdct的方法
WO2018200577A1 (en) * 2017-04-24 2018-11-01 Cohere Technologies Digital communication using lattice division multiplexing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05183442A (ja) * 1991-09-30 1993-07-23 Sony Corp 改良dctの順変換計算装置、逆変換計算装置及び改良dctの順変換計算方法
JPH0629859A (ja) * 1992-03-02 1994-02-04 American Teleph & Telegr Co <Att> デジタル入力信号符号化方法
KR950029923A (ko) * 1994-04-27 1995-11-24 김광호 디지탈 오디오 디코더에 있어서 데이터 연산처리 속도 개선회로
KR950035105A (ko) * 1994-05-31 1995-12-30 배순훈 고압축 오디오신호 부호화기

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093801A (en) * 1990-07-06 1992-03-03 Rockwell International Corporation Arrayable modular FFT processor
US5349549A (en) * 1991-09-30 1994-09-20 Sony Corporation Forward transform processing apparatus and inverse processing apparatus for modified discrete cosine transforms, and method of performing spectral and temporal analyses including simplified forward and inverse orthogonal transform processing
JPH06112909A (ja) * 1992-09-28 1994-04-22 Sony Corp 改良dctの信号変換装置
TW232116B (en) * 1993-04-14 1994-10-11 Sony Corp Method or device and recording media for signal conversion
JPH08223049A (ja) * 1995-02-14 1996-08-30 Sony Corp 信号符号化方法及び装置、信号復号化方法及び装置、情報記録媒体並びに情報伝送方法
KR100211830B1 (ko) * 1995-03-16 1999-08-02 윤종용 미니디스크의 적응변환 오디오 코딩회로
US5845249A (en) * 1996-05-03 1998-12-01 Lsi Logic Corporation Microarchitecture of audio core for an MPEG-2 and AC-3 decoder
US5970461A (en) * 1996-12-23 1999-10-19 Apple Computer, Inc. System, method and computer readable medium of efficiently decoding an AC-3 bitstream by precalculating computationally expensive values to be used in the decoding algorithm

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05183442A (ja) * 1991-09-30 1993-07-23 Sony Corp 改良dctの順変換計算装置、逆変換計算装置及び改良dctの順変換計算方法
JPH0629859A (ja) * 1992-03-02 1994-02-04 American Teleph & Telegr Co <Att> デジタル入力信号符号化方法
KR950029923A (ko) * 1994-04-27 1995-11-24 김광호 디지탈 오디오 디코더에 있어서 데이터 연산처리 속도 개선회로
KR950035105A (ko) * 1994-05-31 1995-12-30 배순훈 고압축 오디오신호 부호화기

Also Published As

Publication number Publication date
KR19980042631A (ko) 1998-08-17
US6304847B1 (en) 2001-10-16
US6209015B1 (en) 2001-03-27

Similar Documents

Publication Publication Date Title
KR100488537B1 (ko) 듀얼모드오디오디코더의재현방법및필터
US5867819A (en) Audio decoder
US6356639B1 (en) Audio decoding apparatus, signal processing device, sound image localization device, sound image control method, audio signal processing device, and audio signal high-rate reproduction method used for audio visual equipment
US6360240B2 (en) Digital filters
US8208641B2 (en) Method and apparatus for processing a media signal
US5890098A (en) Device and method for performing fast Fourier transform using a butterfly operation
CN101379552B (zh) 用于编码/解码信号的装置和方法
JPH03180965A (ja) 単一のマルチプライヤ/アキュムレータと単一のランダムアクセスメモリを用いてdct/idct演算を繰り返す集積回路装置
US7636660B2 (en) Subband synthesis filtering process and apparatus
US8200730B2 (en) Computing circuits and method for running an MPEG-2 AAC or MPEG-4 AAC audio decoding algorithm on programmable processors
US6199039B1 (en) Synthesis subband filter in MPEG-II audio decoding
JP3761639B2 (ja) オーディオ復号装置
CN113255898B (zh) 基于Winograd算法的卷积神经网络硬件加速器及计算方法
JP4213708B2 (ja) オーディオ復号装置
Nussbaumer New polynomial transform algorithms for multidimensional DFT's and convolutions
KR100518797B1 (ko) 처리속도가 향상된 고속 퓨리에 변환 장치 및 그의 처리방법
JPH09167154A (ja) Mpeg−2多チャンネルオーディオ復号化器の逆変換器
JP3982983B2 (ja) 音声信号伸長装置、及び、逆変形離散コサイン変換を実行する計算装置
CN100552669C (zh) 用于变换数字音频信号和逆变换已变换数字音频信号的方法及设备
KR19980084170A (ko) Mpeg과 돌비 ac3 오디오 디코더를 위한 겸용 필터
JP3904719B2 (ja) サブバンド合成装置
KR0182946B1 (ko) 영상압축부호화기술에서 오디오 서브밴드합성필터의 메모리할당방법
KR100303320B1 (ko) 퓨리에 변환기
JPH10240293A (ja) ディジタル信号の処理方法
Ling et al. Two polyphase filter architectures for MPEG audio

Legal Events

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

Payment date: 20130430

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160429

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee