KR20050100620A - 수정된 이산 코사인 변환 계산 - Google Patents
수정된 이산 코사인 변환 계산 Download PDFInfo
- Publication number
- KR20050100620A KR20050100620A KR1020057013178A KR20057013178A KR20050100620A KR 20050100620 A KR20050100620 A KR 20050100620A KR 1020057013178 A KR1020057013178 A KR 1020057013178A KR 20057013178 A KR20057013178 A KR 20057013178A KR 20050100620 A KR20050100620 A KR 20050100620A
- Authority
- KR
- South Korea
- Prior art keywords
- cosine
- signal
- input signal
- mdct
- length
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 길이 N의 디지털 입력 신호의 MDCT 수행과 관련되며, 길이 N/2의 특정 중간 신호를 생성하는 것은 중간 신호의 데이터 값을 코사인 값과 N2/4 번만큼 승산함으로써 수행될 수 있다.
Description
본 발명은 디지털 신호 처리에 관한 것으로서, 보다 상세하게는 MDCT의 계산에 관한 것이다.
MPEG 1/2층 III, ATRAC, AAC 등과 같은 많은 오디오 및 비디오 코덱은 MDCT(Modified Discrete Cosine Transform)를 이용한다. MDCT를 수행하는 것은 필요로 하는 저장 공간뿐만 아니라 필요로 하는 계산력이라는 점에서 상당한 비용이 든다. 이것은 필요로 하는 MDCT를 계산하는 데 비교적 값비싼 중앙 처리 유닛(CPU) 및 큰 메모리가 필요하기 때문에 소비자 장치에 있어서 특히 불리하다.
종래 기술에서 MDCT의 계산 복잡성을 저감하고자 다양한 시도를 행하였다. 이러한 방법들은, 예를 들어, V. Britanak, K.R. Rao의 "A new fast algorithm for the unified forward and inverse MDCT/MDST computation"이라는 명칭의 Signal Processing 82 (2002), 433-459, 및 WO-A-01/59603에 개시되어 있다.
본 발명의 예시적인 실시예를 첨부 도면을 참조하여 설명한다.
도 1은 흐름도이다.
도 2는 본 발명에 따른 전자 회로의 바람직한 구현예의 블록도이다.
MDCT는 더블 루프에서 직접 계산되거나 FFT를 이용하여 계산될 수 있다. 후자는 원래 길이(N)의 배인 신호 길이의 변환, 및 일부 데이터 복사를 포함하고, 전자는 사용되는 프로세서에 의존하며 짧은 MDCT 블록 길이에 대하여 빠르다. 특히, MPEG 1/2층 III의 MDCT는 '18'의 길이를 갖고, 이것은 '18'이 '2'의 거듭제곱이 아니기 때문에 FFT로 쉽게 계산될 수 없다.
본 발명이 해결하고자 하는 과제는 계산력 및 메모리의 감소된 양을 요구하는 MDCT를 수행하는 것이다. 이 과제는 청구항 제1항에 기재된 방법에 의해 해결된다. 이러한 방법을 구현하는 대응하는 컴퓨터 프로그램 제품이 청구항 제5항에 기재되어 있다. 이 방법을 활용하는 전자 회로가 청구항 제6항에 기재되어 있으며, 대응하는 코덱이 청구항 제10항에 기재되어 있다.
본 발명의 이점은, N/2번의 추가 가산을 행함으로써 '2'의 인수만큼 MDCT의 직접 계산 루프에서 가산 및 승산 횟수를 용이하게 저감한다는 것이며, 여기서 N은 입력 신호의 샘플 값을 위한 변환 블록 또는 처리의 길이다. N은 2의 거듭제곱이 아닌 수일 수 있으며, 예를 들어 N = 18이다.
본 발명에 따라, 길이 N의 디지털 입력 신호를 변환하는데 단지 N2/4번의 승산을 수행함으로써 MDCT를 계산할 수 있다. 이것은 우선 입력 신호에 기초하여 중간 신호를 생성함으로써 달성된다. 중간 신호를 생성하기 위해, 가산 및 감산만이 필요하며, 이것은 승산에 비교할 때 계산 비용이 훨씬 덜 소모되는 것이다.
본 발명의 또다른 실시예에 따라, MDCT 계산에 코사인 테이블을 이용한다. 코사인 테이블은, 비교적 작은 메모리를 이용하여 본 발명을 구현할 수 있도록 N2/2 개수의 코사인 값을 필요로 한다. 본 발명은 MPEG 1/2층 III, ATRAC, AAC 등을 비롯한 오디오 및/또는 비디오 코덱에서 특히 이점을 갖는다. 본 발명에 따라, 감소된 처리 능력 및 메모리 요구 사항으로도 MPEG 플레이어 또는 DVD 플레이어와 같은 오디오 및/또는 비디오 소비자 장치를 구축할 수 있다.
원칙적으로, 본 발명의 방법은 길이 N의 디지털 입력 신호의 수정된 이산 코사인 변환을 수행하는데 적합하며, 이 방법은, 상기 입력 신호에 기초하여 길이 N/2의 중간 신호를 생성하는 단계와, 상기 중간 신호의 데이터 값과 코사인 값의 승산을 N2/4 번만큼 수행하여 변환된 출력 신호를 생성하는 단계를 포함한다.
원칙적으로, 본 발명의 전자회로는 길이 N의 디지털 입력 신호의 수정된 이산 코사인 변환을 수행하며, 이 전자 회로는, N2/4 개수의 코사인 값을 갖는 코사인 테이블과, 상기 입력 신호에 기초하여 길이 N/2의 중간 신호를 생성하고, 수정된 이산 코사인 변환 출력 신호를 생성하도록 상기 중간 신호의 데이터 값을 승산하는 수단을 포함한다.
본 발명의 또다른 이점을 갖는 실시예는 각 종속항에 기재되어 있다.
도 1의 흐름도에 따라, 단계 100에서 디지털 입력 신호를 제공한다. 디지털 입력 신호는 N의 블록 길이를 갖는다. 즉, 디지털 입력 신호는 N개의 데이터 값을 매번 갖는다. 단계 100에서 제공되는 디지털 입력 신호 상에 MDCT를 수행하기 위해, 단계 102에서 중간 신호를 먼저 계산한다. 중간 신호는 N/2의 길이를 갖는다. 이 중간 신호를 N/2개의 가산/감산에 의해 계산하는 한 방법을 상세히 후술한다. 단계 104에서, 단계 102에서 결정된 중간 신호에 기초하여 MDCT를 계산한다. 중간 신호가 N/2의 길이를 가질 때, 중간 신호에 기초하여 MDCT를 계산하려면 N2/4 번의 승산이 필요하다. 단계 106에서, MDCT 변환된 신호는 추후 처리용으로 출력된다.
MDCT의 직접 계산은 다음과 같이 실행된다.
for m = 0 to (N/2-1)
s = 0;
for k = 0 to (N-1)
s = s + x(k)*cos(π/2/N * (2*k+1+N/2) * (2*m+1));
end
y(m) = s;
end
여기서, x는 길이 N의 디지털 입력 신호이고, y는 변환된 신호이며, m은 러닝 인덱스(running index)이다.
본 발명에 따른 단계 102에서의 중간 신호의 계산은 다음과 같다.
for m = 0 to (N/4-1)
xx(m) = x(N/4+m) - x(N/4-m-1);
xx(m+N/4) = x(N/2+m) + x(N-m-1);
end
여기서, x은 길이 N의 디지털 입력 신호이고, xx는 중간 신호이며, m은 러닝 인덱스이다.
중간 신호의 계산은 승산을 필요로 하지 않고 이에 따라 매우 빠르다는 점에 주목하길 바란다.
이 중간 신호(xx)에 기초하여, MDCT를 다음과 같이 계산할 수 있다.
for m = 0 to (N/2-1)
s = 0;
for k = 0 to (N/2-1)
s = s + xx(k) * cos(π/2/N * (2*k+1+N) * (2*m+1));
end
y(m) = s;
end
여기서 y는 변환된 신호이다.
MDCT의 계산에는 코사인 값과의 승산이 단지 N2/4번 만큼만 필요하다는 점에서 특히 이점을 갖는다.
도 2는 입력 신호(x)를 수신하는 전자 회로의 간략화된 블록도이다. 이 회로는 단일 칩 상에서 구현된다. 이것은 처리 유닛(202), 프로그램 메모리(204), 및 코사인 테이블(208)을 저장하는 메모리(206)를 구비한다.
중간 신호의 계산을 수행하고 (도 1의 단계 102 참조) 및 MDCT를 계산하는 (도 1의 단계 104 참조) 프로그램 코드가 프로그램 메모리(204)에 저장된다.
코사인 테이블(208)은, 코사인 값으로 필요로 하는 승산을 수행하여 MDCT 변환된 출력 신호(δ)를 얻고자 프로그램 메모리의 프로그램 코드(208)가 실행될 때, 처리 유닛(202)에 의해 사용되는 N2/2개의 코사인 값 엔트리를 구비한다.
Claims (10)
- 길이 N의 디지털 입력 신호(100, x)의 수정된 이산 코사인 변환(MDCT)을 수행하는 방법으로서,상기 입력 신호에 기초하여 길이 N/2의 중간 신호(xx)를 생성하는 단계(102)와,상기 중간 신호의 데이터 값과 코사인 값(Cos)의 승산을 N2/4 번만큼 수행하여 변환된 출력 신호(106, y)를 생성하는 단계(104)를 포함하는 방법.
- 제1항에 있어서,'xx'로 표시되는 상기 중간 신호는,for m = 0 to (N/4-1)xx(m) = x(N/4+m) - x(N/4-m-1);xx(m+N/4) = x(N/2+m) + x(N-m-1);end와 같은 'x'로 표시되는 상기 입력 신호에 기초하여 계산되는 방법.
- 제1항 또는 제2항에 있어서,상기 중간 신호 'xx'의 데이터 값과 상기 코사인 값을 승산하여 변환된 신호를 얻는 것은,for m = 0 to (N/2-1)s = 0;for k = 0 to (N/2-1)s = s + xx(k) * cos(π/2/N * (2*k+1+N) * (2*m+1));endy(m) = s;end와 같이 수행되는 방법.
- 제1항 내지 제3항중 어느 한 항에 있어서,N2/4 개수의 코사인 값을 갖는 코사인 테이블(Cos)을 이용하여 상기 승산용 코사인 값을 제공하는 방법.
- 제1항 내지 제4항중 어느 한 항에 따른 방법을 수행하는 프로그램 수단을 구비하는 디지털 저장 매체를 비롯한 컴퓨터 프로그램 제품.
- 길이 N의 디지털 입력 신호(x)의 수정된 이산 코사인 변환(MDCT)을 수행하는 전자 회로로서,N2/4 개수의 코사인 값을 갖는 코사인 테이블(208)과,상기 입력 신호(x)에 기초하여 길이 N/2의 중간 신호(xx)를 생성하고, 상기 중간 신호(xx)의 데이터 값을 승산하여 수정된 이산 코사인 변환 출력 신호(y)를 생성하는 수단을 포함하는 전자 회로.
- 제6항에 있어서,'x'로 표시되는 상기 입력 신호에 기초하여 'xx'로 표시되는 상기 중간 신호를 생성하는 수단은,for m = 0 to (N/4-1)xx(m) = x(N/4+m) - x(N/4-m-1);xx(m+N/4) = x(N/2+m) + x(N-m-1);end의 단계를 수행하는데 적합한 전자 회로.
- 제6항 또는 제7항에 있어서,상기 코사인 테이블의 코사인 값과의 N2/4 번의 승산을 수행하는 승산기 수단(202)을 더 포함하는 전자 회로.
- 제8항에 있어서,가산기 수단(202)을 더 포함하고,상기 승산 및 가산기는for m = 0 to (N/2-1)s = 0;for k = 0 to (N/2-1)s = s + xx(k) * cos(π/2/N * (2*k+1+N) * (2*m+1));endy(m) = s;end단계를 수행하는데 적합하고,'y'는 변환된 출력 신호인 전자 회로.
- 제6항 내지 제9항중 어느 한 항에 따른 전자 회로를 이용하여 입력 신호의 수정된 이산 코사인 변환을 수행하는 MPEG 1/2층 III, ATRAC 또는 AAC 코덱을 비롯한 코덱.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03090016A EP1445706A1 (en) | 2003-01-18 | 2003-01-18 | Method, apparatus, and computer program for performing a modified discrete cosine transform |
EP03090016.1 | 2003-01-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050100620A true KR20050100620A (ko) | 2005-10-19 |
Family
ID=32605379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057013178A KR20050100620A (ko) | 2003-01-18 | 2003-12-29 | 수정된 이산 코사인 변환 계산 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20060036666A1 (ko) |
EP (2) | EP1445706A1 (ko) |
JP (1) | JP2006513496A (ko) |
KR (1) | KR20050100620A (ko) |
CN (1) | CN100429645C (ko) |
AU (1) | AU2003303770A1 (ko) |
BR (1) | BR0317988A (ko) |
WO (1) | WO2004066162A2 (ko) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8601183A (nl) * | 1986-05-12 | 1987-12-01 | Philips Nv | Discrete cosinus transformatie-inrichting. |
JPH06112909A (ja) * | 1992-09-28 | 1994-04-22 | Sony Corp | 改良dctの信号変換装置 |
JP3349421B2 (ja) * | 1998-01-30 | 2002-11-25 | 三洋電機株式会社 | 音声データの圧縮/伸長装置及びデジタルフィルタ |
US6721708B1 (en) * | 1999-12-22 | 2004-04-13 | Hitachi America, Ltd. | Power saving apparatus and method for AC-3 codec by reducing operations |
AU2001234971A1 (en) * | 2000-02-09 | 2001-08-20 | T. C. Cheng | Fast method for the forward and inverse mdct in audio coding |
US7035332B2 (en) * | 2001-07-31 | 2006-04-25 | Wis Technologies, Inc. | DCT/IDCT with minimum multiplication |
-
2003
- 2003-01-18 EP EP03090016A patent/EP1445706A1/en not_active Withdrawn
- 2003-12-29 EP EP03808289A patent/EP1584046A2/en not_active Withdrawn
- 2003-12-29 CN CNB200380108939XA patent/CN100429645C/zh not_active Expired - Fee Related
- 2003-12-29 US US10/542,481 patent/US20060036666A1/en not_active Abandoned
- 2003-12-29 JP JP2004566818A patent/JP2006513496A/ja active Pending
- 2003-12-29 AU AU2003303770A patent/AU2003303770A1/en not_active Abandoned
- 2003-12-29 KR KR1020057013178A patent/KR20050100620A/ko not_active Application Discontinuation
- 2003-12-29 WO PCT/EP2003/014930 patent/WO2004066162A2/en active Application Filing
- 2003-12-29 BR BR0317988-5A patent/BR0317988A/pt not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1445706A1 (en) | 2004-08-11 |
JP2006513496A (ja) | 2006-04-20 |
WO2004066162A3 (en) | 2005-01-13 |
BR0317988A (pt) | 2005-12-06 |
AU2003303770A8 (en) | 2004-08-13 |
EP1584046A2 (en) | 2005-10-12 |
AU2003303770A1 (en) | 2004-08-13 |
CN1739104A (zh) | 2006-02-22 |
US20060036666A1 (en) | 2006-02-16 |
WO2004066162A2 (en) | 2004-08-05 |
CN100429645C (zh) | 2008-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ansari et al. | A hardware-efficient logarithmic multiplier with improved accuracy | |
JP4398979B2 (ja) | 変換表現に転換するか、または変換表現を逆変換するための装置および方法 | |
JP4953978B2 (ja) | 平方値に線形従属する計算結果の表示を生成する方法 | |
Lei et al. | Low complexity and fast computation for recursive MDCT and IMDCT algorithms | |
JP2001331474A (ja) | 単一命令複数データ指示を備えた逆離散コサイン変換の実行方法、圧縮データの伸張方法、圧縮データ信号の伸張装置、並びに、コンピュータ・プログラム製品 | |
CN101556795A (zh) | 计算语音基音频率的方法及设备 | |
KR102503498B1 (ko) | 수학적 함수를 연산하는 시스템 및 방법 | |
KR20050100620A (ko) | 수정된 이산 코사인 변환 계산 | |
Hua et al. | A novel unified method for the fast computation of discrete image moments on grayscale images | |
Babu et al. | Improved Radix-4 Fast Fourier Transform Algorithm Used for Wireless Communication | |
CN112835073A (zh) | 一种用于卫星信号捕获的fft处理器 | |
US7317958B1 (en) | Apparatus and method of additive synthesis of digital audio signals using a recursive digital oscillator | |
Loukrakpam et al. | Error-aware design procedure to implement hardware-efficient antilogarithmic converters | |
Hwang et al. | A novel MDCT/IMDCT computing kernel design | |
US20090319589A1 (en) | Using fractional exponents to reduce the computational complexity of numerical operations | |
JP2013513866A (ja) | 共用フローグラフに基づく離散コサイン変換のための回路 | |
Jamieson et al. | Analyzing a Low-bit rate Audio Codec-Codec2-on an FPGA | |
Soares et al. | Design of area and energy-efficient digital CMOS FIR filters with approximate adder circuits | |
Low et al. | A new RNS scaler for {2 n− 1, 2 n, 2 n+ 1} | |
US7007057B2 (en) | 0.75-power computing apparatus and method and program for use therewith | |
Deshpande et al. | Simulating the DFT Algorithm for Audio Processing | |
You et al. | Implementation of IMDCT for MPEG2/4 AAC on 16-bit fixed-point digital signal processors | |
Pohane et al. | VLSI Designing of High Speed Parallel Multiplier Accumulator Based on Radix 4 Booths Multiplier | |
Tsai et al. | A hardware/software co-design of high efficiency AAC audio decoder | |
Hodes et al. | A fixed-point recursive digital oscillator for additive synthesis of audio |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |