KR20100103580A - 5-포인트 dct-ⅱ, dct-ⅳ, 및 dst-ⅳ 및 아키텍쳐들의 계산을 위한 빠른 알고리즘들 - Google Patents

5-포인트 dct-ⅱ, dct-ⅳ, 및 dst-ⅳ 및 아키텍쳐들의 계산을 위한 빠른 알고리즘들 Download PDF

Info

Publication number
KR20100103580A
KR20100103580A KR1020107015493A KR20107015493A KR20100103580A KR 20100103580 A KR20100103580 A KR 20100103580A KR 1020107015493 A KR1020107015493 A KR 1020107015493A KR 20107015493 A KR20107015493 A KR 20107015493A KR 20100103580 A KR20100103580 A KR 20100103580A
Authority
KR
South Korea
Prior art keywords
transform
point
discrete cosine
dct
transforms
Prior art date
Application number
KR1020107015493A
Other languages
English (en)
Other versions
KR101226094B1 (ko
Inventor
유리이 레즈닉
라비 키란 치부쿨라
Original Assignee
콸콤 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR20100103580A publication Critical patent/KR20100103580A/ko
Application granted granted Critical
Publication of KR101226094B1 publication Critical patent/KR101226094B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete 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
    • 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/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

N-포인트 MDCT 변환이 작은 크기의 N/2-포인트 DCT-Ⅳ, DST-Ⅳ 및/또는 DCT-Ⅱ 변환들로 맵핑되는 더 효율적인 인코더/디코더가 제공된다. MDCT는 오디오 코덱들에서 다수의 현존하는 MDCT 설계들에 사용되는 DCT-Ⅳ 또는 FFT 코어들과 대조적으로 균일하게 스케일링된 5-포인트 DCT-Ⅱ 코어 함수를 이용함으로써 2의 팩터에 의하여 체계적으로 데시메이팅될 수 있다. 보다 효율적으로 변환을 구현하기 위하여 5-포인트 변환들의 다양한 변환 인수분해들이 구현될 수 있다.

Description

5-포인트 DCT-Ⅱ, DCT-Ⅳ, 및 DST-Ⅳ 및 아키텍쳐들의 계산을 위한 빠른 알고리즘들{FAST ALGORITHMS FOR COMPUTATION OF 5-POINT DCT-Ⅱ, DCT-Ⅳ, AND DST-Ⅳ, AND ARCHITECTURES}
본 발명은 2007년 12월 13일자로 출원된 "Fast Algorithms for Computation of 5-포인트 DCT-Ⅱ, DCT-Ⅳ, and DST-V, and Architecture for Design of Transforms of Size N=5*2"라는 제목의 미국 가출원 번호 제61/013,579호, 2007년 12월 21일자로 출원된 "Fast Algorithms for Computation of 5-포인트 DCT-Ⅱ, DCT-Ⅳ, and DST-Ⅳ, and Architecture for Design of Transforms of Sizes N=5*2k"라는 제목의 미국 가출원 번호 제61/016,106호, 및 2008년 3월 25일자로 출원된 "G.EV-VBR MDCT Module"라는 제목의 미국 가출원 번호 제61/039,194호에 대하여 우선권을 주장하며, 이들 모두는 본 발명의 양수인에게 양도되고, 본 명세서에 참조로서 통합된다.
하기의 설명은 일반적으로 인코더들 및 디코더들에 관련되며, 특히, 비디오 및 오디오 코덱들에 대한 효율적인 MDCT / IMDCT 구현과 관련된다.
오디오 코딩의 하나의 목적은 가능한 한 최초 사운드 품질만큼 유지시키면서 원하는 제한된 정보량으로 오디오 신호를 압축하는 것이다. 인코딩 프로세스에서, 시간 도메인의 오디오 신호는 주파수 도메인으로 변환되고, 대응 디코딩 프로세스는 그러한 동작을 반대로 한다.
그러한 인코딩 프로세스의 일부로서, 신호는 변형 이산 코사인 변환(MDCT)에 의하여 프로세싱될 수 있다. 변형 이산 코사인 변환(MDCT)은 한 블록의 끝이 다음 블록의 시작과 동시에 일어나도록 블록들이 중첩되는 추가적 특성을 갖는, 타입-Ⅳ 이산 코사인 변환(DCT-Ⅳ)에 기초하는 퓨리에-관련 변환이다. 이러한 중첩은 에일리어징 현상(aliasing artifacts)를 방지하는 것을 돕고, DCT의 에너지-압축 품질들 이외에, MDCT가 신호 압축 애플리케이션들에 특히 매력적이게 한다.
MDCT는 또한 스피치 압축에서 애플리케이션들을 발견하였다. ITU-T G.722.1 및 G.722.1C 보코더들은 입력 스피치 신호에 대하여 MDCT를 적용하는 한편, 보다 최근의 ITU-T G.729.1 및 G.718 알고리즘들은 CELP(Code Excited Linear Prediction) 인코더의 사용 이후에 남아있는 잔여 신호를 프로세싱하는데 그것을 사용한다. 상기 언급된 보코더들은 8 kHz 또는 16 kHz, 및 10 또는 20-밀리초 프레임들의 입력 샘플링 레이트들로 동작한다. 따라서, 그들의 MDCT 필터뱅크(finterbank)들은 160 또는 320-포인트 변환들이다.
그러나, 장래의 스피치 코더들이 블록-스위칭을 지원한다면, 데시메이팅된(decimated) 크기들(예를 들어, 160, 80, 40-포인트들)에 대한 기능 지원이 또한 필요할 수 있다. 그 결과, 작은 변환 크기들의 효율적인 구현들은 작은 크기 코어 변환을 사용하여 더 큰 변환을 구현하는 것이 바람직하다.
다음은 몇몇 실시예들에 대한 근본적인 이해를 제공하기 위하여 하나 이상의 실시예들의 간략화된 요약을 나타낸다. 이러한 요약은 본 섹션은 모든 가능한 실시예들에 대한 포괄적인 개요는 아니며, 모든 엘리먼트들 중 핵심 엘리먼트를 식별하거나, 임의의 또는 모든 실시예의 범위를 커버하고자 할 의도도 아니다. 그것의 유일한 목적은 후에 제시되는 상세한 설명에 대한 도입부로서 간략화된 형태로 하나 이상의 실시예들 중 몇몇의 개념을 제공하기 위함이다.
변환 값들을 계산하기 위한 인코딩 방법 및/또는 디바이스가 제공된다. 오디오 신호를 나타내는 시간-도메인 입력 값들이 수신된다. 입력 값들은 다수의 5-포인트 변환들로 반복하여 데시메이팅되는 변형 이산 코사인 변환(MDCT)을 사용하여 스펙트럼 계수들로 변환된다. 다수의 인수분해(factorization)들이 5-포인트 변환을 효율적으로 프로세싱하도록 구현될 수 있다.
일 실시예(도 5)에서, 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산(addition) 연산들, 8개의 곱셈(multiplication) 연산들, 및 최장 경로 길이의 3개의 연산들에 의하여 인수분해(factorize)되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(502)을 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(502)를 포함하며,
Figure pct00001
이도록,
Figure pct00002
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00003
이다.
다른 실시예(도 6)에서, 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 5개의 곱셈 연산들, 2개의 시프트(shift) 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(602)를 포함한다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(602)를 포함하며,
Figure pct00004
이도록,
Figure pct00005
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00006
이다.
다른 실시예(도 7)에서, 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 5개의 곱셈 연산들, 1개의 시프트 연산, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(702)를 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(702)를 포함하며,
Figure pct00007
이도록,
Figure pct00008
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00009
이다.
다른 실시예(도 8)에서, 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 4개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)를 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)를 포함하며,
Figure pct00010
이도록,
Figure pct00011
Figure pct00012
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00013
이다.
대안적으로, 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 5개의 곱셈 연산들, 1개의 시프트 연산, 및 최장 경로 길이의 4개의 연산들에 으히ㅏ여 인수분해되는 적어도 하나의 변환(802)을 포함할 수 있다.
다른 실시예(도 9)에서, 다수의 5-포인트 변환들 중 적어도 하나는 20개의 가산 연산들, 16개의 곱셈 연산들, 및 최장 경로 길이의 3개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(902)를 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(902)를 포함하며,
Figure pct00014
이도록,
Figure pct00015
Figure pct00016
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00017
이다.
다른 실시예(도 10)에서, 다수의 5-포인트 변환들 중 적어도 하나는 20개의 가산 연산들, 12개의 곱셈 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1002)를 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1002)를 포함하며,
Figure pct00018
이도록,
Figure pct00019
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00020
이다.
다른 실시예(도 14)에서, 다수의 5-포인트 변환들 중 적어도 하나는 16개의 가산 연산들, 9개의 곱셈 연산들, 및 최장 경로 길이의 5개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1402)를 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1402)를 포함하며,
Figure pct00021
이도록,
Figure pct00022
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00023
Figure pct00024
이다.
다른 실시예(도 15)에서, 다수의 5-포인트 변환들 중 적어도 하나는 15개의 가산 연산들, 10개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 5개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1502)를 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1502)를 포함하며,
Figure pct00025
이도록,
Figure pct00026
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00027
Figure pct00028
이다.
다른 실시예(도 16)에서, 다수의 5-포인트 변환들 중 적어도 하나는 15개의 가산 연산들, 11개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 5개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1602/1702)를 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1602)를 포함하며,
Figure pct00029
이도록,
Figure pct00030
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00031
Figure pct00032
이다.
다른 실시예(도 17)에서, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1702)를 포함할 수 있으며,
Figure pct00033
이도록,
Figure pct00034
Figure pct00035
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00036
Figure pct00037
이다.
다른 실시예(18)에서, 다수의 5-포인트 변환들 중 적어도 하나는 15개의 가산 연산들, 12개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 5개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1802)를 포함할 수 있다. 예를 들어, 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1602)를 포함하며,
Figure pct00038
Figure pct00039
이도록,
Figure pct00040
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00041
Figure pct00042
이다.
또한, 변환 방법 및/또는 디바이스는 변환을 수행하기 이전에 입력 값들에 대하여 윈도잉(windowing) 연산을 수행할 수 있으며, 여기서 윈도잉 연산은 비대칭 윈도우 함수를 구현한다.
몇몇 구현예들에서, MDCT는 5-포인트 이산 코사인 변환 타입 Ⅱ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현할 수 있다.
다른 구현예들에서, MDCT는 5-포인트 이산 코사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현할 수 있다.
또 다른 구현예들에서, MDCT는 5-포인트 이산 코사인 변환 타입 Ⅱ 및 5-포인트 이산 코사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현할 수 있다.
또 다른 구현예들에서, MDCT는 5-포인트 이산 사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현할 수 있다.
역변환 값들을 계산하기 위한 디코딩 방법 및/또는 디바이스가 제공된다. 오디오 신호를 나타내는 스펙트럼 계수 입력 값들을 수신된다. 그 후, 다수의 5-포인트 역변환들로 반복하여 데시메이팅되는 역 변형 이산 코사인 변환(IMDCT)을 사용하여 스펙트럼 계수 입력 값들이 시간-도메인 출력 값들로 변환된다.
일 실시예(도 32)에서, 다수의 5-포인트 역변환들 중 적어도 하나는 12개의 가산 연산들, 4개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 역 이산 코사인 변환 타입 변환Ⅱ(DCT-Ⅱ)(3202)을 포함할 수 있다. 예를 들어, 다수의 5-포인트 역변환들 중 적어도 하나는 출력 벡터 [x0, xl, x2, x3, x4]를 생성하기 위하여 입력 벡터 [XO, Xl, X2, X3, X4]를 취하는 적어도 하나의 역 이산 코사인 변환 타입 Ⅱ(IDCT-Ⅱ)(3202)를 포함하며,
Figure pct00043
이도록,
Figure pct00044
의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
Figure pct00045
이다.
또한, 디코딩 방법 및/또는 디바이스는 역변환을 수행한 이후에 상기 입력 값들에 대하여 윈도잉 연산을 수행할 수 있으며, 여기서 윈도잉 연산은 비대칭 윈도우 함수를 구현한다.
일 구현예에서, IMDCT는 5-포인트 역 이산 코사인 변환 타입 Ⅱ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현할 수 있다.
다른 구현예에서, IMDCT는 5-포인트 역 이산 코사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현할 수 있다.
또 다른 구현예에서, IMDCT는 5-포인트 역 이산 코사인 변환 타입 Ⅱ 및 5-포인트 역 이산 코사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현할 수 있다.
일 구현예에서, IMDCT는 5-포인트 역 이산 사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현할 수 있다.
다양한 특징들, 성질, 및 장점들은 도면들과 함께 취해질 때 하기에 진술되는 상세한 설명으로부터 명백해질 것이며, 여기서 동일한 참조 문자들은 명세서 전반을 통해 동일한 것을 지칭한다.
도 1은 MDCT 분석 필터뱅크를 포함할 수 있는 인코더의 일 실시예를 예증하는 블록도이다.
도 2는 변환이 더 작은 변환들에 의하여 구현될 수 있는 방법의 일 실시예를 예증하는 블록도이다.
도 3은 IMDCT 분석 필터뱅크를 포함하여 구현될 수 있는 디코더의 일 실시예를 예증하는 블록도이다.
도 4는 역변환이 더 작은 역변환들에 의하여 구현될 수 있는 방법의 일 실시예를 예증하는 블록도이다.
도 5는 5-포인트 DCT-Ⅱ 변환의 인수분해의 제1 실시예를 예증하는 흐름도이다.
도 6은 5-포인트 DCT-Ⅱ 변환의 인수분해의 제2 실시예를 예증하는 흐름도이다.
도 7은 5-포인트 DCT-Ⅱ 변환의 인수분해의 제3 실시예를 예증하는 흐름도이다.
도 8은 5-포인트 DCT-Ⅱ 변환의 인수분해의 대아적인 실시예를 예증하는 흐름도이다.
도 9는 5-포인트 DCT-Ⅳ 변환의 인수분해이 제1 실시예를 예증하는 흐름도이다.
도 10은 5-포인트 DCT-Ⅳ 변환이 구현될 수 있는 방법의 제2 실시예를 예증하는 흐름도이다.
도 11은 DCT-Ⅳ 변환이 입력 계수들을 출력 계수들로 변환하기 위하여 DCT-Ⅱ 변환으로 맵핑될 수 있는 방법을 예증하는 블록도이다.
도 12는 입력 계수들을 출력 계수들로 변환하기 위하여 5-포인트 DCT-Ⅱ 변환을 사용하여 구현될 수 있는 5-포인트 DCT-Ⅳ 변환을 예증하는 블록도이다.
도 13은 5-포인트 DCT-Ⅱ 변환을 사용하여 구현될 수 있는 도 12의 5-포인트 DCT-Ⅳ 변환의 인수분해의 일 실시예를 예증하는 블록도이다.
도 14는 도 13의 DCT-Ⅳ 변환 맵핑이 도 6의 DCT-Ⅱ 변환과 결합될 수 있는 방법을 예증하는 블록도이다.
도 15는 도 14의 DCT-Ⅳ 변환이 등가 변환으로 추가로 변형될 수 있는 방법을 예증하는 블록도이다.
도 16은 도 15의 DCT-Ⅳ 변환이 등가 변환으로 추가로 변형될 수 있는 방법을 예증하는 블록도이다.
도 17은 도 16의 DCT-Ⅳ 변환이 등가 변환으로 추가로 변형될 수 있는 방법을 예증하는 블록도이다.
도 18은 도 17의 DCT-Ⅳ 변환이 등가 변환으로 추가로 변형될 수 있는 방법을 예증하는 블록도이다.
도 19는 N-크기 변환이 그것이 다수의 5-포인트 변환들에 의하여 표현될 때까지 더 작은 N/2-크기 변환들로 반복적으로 분할될 수 있는 방법을 예증하는 블록도이다.
도 20은 10-포인트 DCT-Ⅳ 변환이 다수의 더 작은 5-포인트 DCT-Ⅱ 변환들로 반복적으로 분할되는 분할 및 변환 데시메이션(decimation)의 일 실시예를 예증하는 블록도이다.
도 21은 N-크기 역변환이 그것이 다수의 5-포인트 역변환들에 의하여 표현될 때까지 더 작은 N/2-크기 역변환들로 반복적으로 분할될 수 있는 방법을 예증하는 블록도이다.
도 22는 10-포인트 IDCT-Ⅳ 역변환이 다수의 더 작은 5-포인트 IDCT-Ⅱ 역변환들로 반복적으로 분할되는 분할 및 역변환 데시메이션의 일 실시예를 예증하는 블록도이다.
도 23은 동일한 개수의 주파수 계수들을 유지하면서 변환 스테이지와 연관되는 지연을 10ms로 감소시키는데 사용될 수 있는 비대칭 윈도우 형태를 예증한다.
도 24는 변환 값들을 계산하기 위한 디바이스를 예증하는 블록도이다.
도 25는 5-포인트 코어 변환에 기초하여 MDCT 변환을 사용해 신호를 인코딩하기 위한 방법의 일 실시예를 예증한다.
도 26은 변환 값들을 계산하기 위한 디바이스를 예증하는 블록도이다.
도 27은 코어 IDCT-Ⅱ 변환에 기초하여 IMDCT 변환을 사용해 신호를 디코딩하기 위한 방법의 일 실시예를 예증한다.
도 28은 10-포인트 DCT-Ⅳ 변환이 다수의 더 작은 5-포인트 DCT-Ⅱ 변환들로 반복적으로 분할되는 분할 및 변환 데시메이션의 대안적인 실시예를 예증한다.
도 29는 도 28의 변환의 역(inverse)인 10-포인트 IDCT-Ⅳ 변환을 예증한다.
도 30은 10-포인트 DCT-Ⅳ 역변환이 다수의 더 작은 5-포인트 DCT-Ⅱ 변환 및 5-포인트 DCT-Ⅳ로 반복적으로 분할되는 분할 및 변환 데시메이션의 일 실시예를 예증하는 블록도이다.
도 31은 도 30의 순변환(forward transform)에 대한 역변환의 일 실시예를 예증하는 블록도이다.
도 32는 도 8의 순변환에 대응하는 역변환을 예증한다.
다양한 실시예들이 이제 도면을 참조하여 설명되며, 여기서 동일한 참조 번호들은 명세서 전반을 통해 동일한 엘리먼트들을 지칭하는데 사용된다. 하기 설명에서, 예시를 목적으로, 하나 이상의 실시예들의 완전한 이해를 제공하기 위하여 다양한 특정 세부사항들이 제시된다. 그러나 이러한 실시예들은 이러한 특정 설명 없이도 실행될 수 있음이 명백하다. 다른 예들에서, 공지된 구조들 및 장치들은 하나 이상의 실시예들의 설명을 용이하게 하기 위해서 블록도 형태로 제시된다.
더 작은 크기의 N/2-포인트 DCT-Ⅳ, DST-Ⅳ, 및/또는 DCT-Ⅱ 변환들로 그것을 맵핑함으로써 N-포인트 MDCT 변환(여기서,
Figure pct00046
이며, 여기서 일부 정수 K>=1임)을 구현하는 하나의 특징을 제공된다. 일 실시예에서, MDCT는 2의 팩터에 의하여 체계적으로 데시메이팅되고, 마지막 스테이지에서 스케일링된 5-포인트 코어 함수를 이용할 수 있다. 하나의 특징은 크기 5의 DCT-Ⅱ, DCT-Ⅳ, 및 DST- Ⅳ 코어 변환들을 계산하기 위한 다수의 빠른 알고리즘들을 제공한다. 본 명세서에서 청구되는 전체 변환 아키텍쳐는 사이즈 N의 변환들을 N/2 크기의 2개 변환들로 반복적으로 분할하는 일반적 데시메이션 프로세스이고, 여기서,
Figure pct00047
이고, 본 명세서에 개시되는 빠른 기술들을 사용함으로써 최종(가장 작은) 5-포인트 변환들이 구현된다. 그러한 크기의 변환들은 근래의 및 최근에 만들어진 표준들 G.729.1, G.718, 및 EVRC-WB와 같은 스피치 및 오디오 코딩 애플리케이션들에 대한 MDCT 필터뱅크들의 설계에서 일어난다.
다른 특징은 동일한 개수의 주파수 계수들을 유지하면서 변환 스테이지와 연관되는 지연을 감소시키기 위하여 비대칭 윈도우와 MDCT를 계산하기 위한 상기 아키텍쳐를 결합하는 MDCT의 변형 윈도잉 스테이지의 사용을 제공한다.
코덱 구조
도 1은 MDCT 분석 필터뱅크를 포함할 수 있는 인코더의 일 실시예를 예증하는 블록도이다. 인코더(102)는 입력 외오 신호(104)를 수신할 수 있다. MDCT 분석 필터뱅크(106)(즉, 타입-Ⅳ 이산 코사인 변환에 기초하는 변형 이산 코사인 변환)는 시간-도메인 입력 오디오 신호(104)를 다수의 서브-대역 신호들로 분해하고 신호들을 주파수-도메인으로 변환하도록 동작하며, 각각의 서브-대역 신호는 블록당 서브-대역별로 변환 계수로 변환된다. 그 후, 결과 신호는 양자화기(108)에 의하여 양자화되고, 디지털화된 오디오 신호의 비트스트림(112)을 생성하기 위하여 엔트로피 인코더(110)에 의하여 인코딩된다. 일 실시예에 따라, MDCT 분석 필터뱅크(106)는 윈도잉 함수(114), 변환(116)(예를 들어, 시간-도메인 대 주파수 도메인), 및/또는 스케일링 함수(118)에 의하여 구현될 수 있다. 윈도잉 함수(114), 변환(116), 및/또는 스케일링 함수(116)를 포함하는 MDCT 분석 필터뱅크(106)는 하드웨어(예를 들어, 프로세서, 회로, 프로그램가능 로직 디바이스 등으로서), 소프트웨어(예를 들어, 프로세서에 의하여 실행되는 명령들), 및/또는 이 둘의 조합물에 구현될 수 있다.
도 2는 변환이 더 작은 변환들에 의하여 구현될 수 있는 일 실시예를 예증하는 블록도이다. 본 실시예에서, 도 1의 변환(116)은 다수의 입력들(202)을 수신하고, 다수의 출력들(204)을 생성할 수 있다. 이를 달성하기 위하여, 변환(116)은 동일하거나 더 작은 크기의 하나 이상의 변환들에 의하여 표현될 수 있다. 예를 들어, 변환(116)은 다수의 k-포인트 DCT-Ⅳ 변환들(206a 및 206b)에 의하여 구현될 수 있다. 결국, 각각의 k-포인트 DCT-Ⅳ 변환(206a 및 206b)은 하나 이상의 n-포인트 DCT-Ⅱ 변환들(208a, 208b, 또는 210a, 210b)에 의하여 구현될 수 있다. 몇몇 구현예들에서, 이산 사인 변환들(DST)-Ⅳ이 DCT-Ⅳ 변환들 대신에 사용될 수 있다는 것을 유념하라. 큰 변환(116)을 다수의 작은 변환들(208)로 반복적으로 분할함으로써, 이것은 큰 변환(116)의 구현을 간략화한다. 그러나, 작은 변환들의 효율적인 알고리즘 구현은 연산들을 최소화시키는 빠른 변환 성능을 달성하는 것이 바람직하다. 일 실시예에서, 변환(116)은 오디오 신호를 나타내는 시간-도메인 입력 값들 x(0) ... x(m)(202)을 수신하고, 그들을 주파수-도메인 스펙트럼 계수들 X(O) ... X(m)(204)로 변환할 수 있다. 이러한 작은 변환들에 대한 다양한 구현예들이 하기에 개시된다.
도 3은 IMDCT 합성 필터뱅크를 포함하여 구현될 수 있는 디코더의 일 실시예를 예증하는 블록도이다. 디코더(302)는 비트스트림(304)을 수신할 수 있다. 엔트로피 디코더(306)는 주파수-도메인 신호를 생성하기 위하여 그 후 역양자화기(308)에 의하여 역양자화되는 비트스트림(304)을 디코딩한다. IMDCT 합성 필터뱅크(310)(즉, 타입-Ⅳ 이산 코사인 변환에 기초하는 역 변형 이산 코사인 변환)는 주파수-도메인 신호(304)를 시간-도메인 오디오 신호(312)로 다시 변환하도록 동작한다. IMDCT 합성 필터뱅크(310)는 MDCT 분석 필터뱅크(106)의 동작들을 반전시킬 수 있다. 일 실시예에 따라, IMDCT 합성 필터뱅크(310)는 스케일링 함수(314), 역변환(316)(예를 들어, 주파수 도메인 대 시간-도메인), 및 윈도잉 더하기 중첩 및 가산 함수(318)에 의하여 구현될 수 있다. 스케일링 함수(314), 역변환(316), 및/또는 윈도잉 함수(318)를 포함하는 IMDCT 합성 필터뱅크(310)는 하드웨어(예를 들어, 프로세서, 회로, 프로그램가능 로직 디바이스 등으로서), 소프트웨어(예를 들어, 프로세서에 의하여 실행되는 명령들), 및/또는 이 둘의 조합물에 구현될 수 있다.
도 4는 역변환이 보다 작은 역변환들에 의하여 구현될 수 있는 일 실시예를 예증하는 블록도이다. 본 실시예에서, 도 3의 역변환(316)은 다수의 입력들(402)을 수신하고, 다수의 출력들(404)을 생성할 수 있다. 이를 달성하기 위하여, 역변환(316)은 동일하거나 더 작은 크기의 하나 이상의 변환들에 의하여 표현될 수 있다. 예를 들어, 다수의 k-포인트 IDCT-Ⅳ 역변환들(406a 및 406b)에 의하여 구현될 수 있다. 결국, 각각의 k-포인트 IDCT-Ⅳ 역변환(406a 및 406b)은 하나 이상의 n-포인트 IDCT-Ⅱ 변환들(408a, 408b, 또는 410a, 410b)에 의하여 구현될 수 있다. 몇몇 구현예들에서, 역 이산 사인 변환들(IDST)-Ⅳ은 IDCT-Ⅳ 변환들 대신에 사용될 수 있음을 유념하라. 일 실시예에서, 변환(316)은 오디오 신호를 나타내는 주파수-도메인 스펙트럼 계수들 X(O) ... X(m)(402)을 수신하고, 이들을 시간-도메인 재구성 출력 값들 x(0) ... x(m)(404)로 변환할 수 있다. 그러나, 작은 역변환들의 효율적인 알고리즘 구현은 동작들을 최소화하는 빠른 변환 성능을 달성하는 것이 바람직하다.
MDCT(102) 및 IMDCT(302) 변환들로의 입력들은 다수의 데이터 포인트들을 갖는 블록들 또는 프레임들로서 프로세싱될 수 있음을 유념하라. 그 결과, MDCT-기반 보코더(예를 들어, G.722.1 또는 G.722.1C와 같은)가 302보다 작은 프레임 길이들을 갖는 데이터 블록들을 지원하기 위하여, 데시메이팅된 크기들의 변환들이 필요하다. 160, 80, 40 등의 프레임 길이를 갖는 블록들에 대하여, 이러한 크기들이 모두 5의 배수들임이 관찰된다. 따라서, (데시메이션 기술들에 의한) 최종 비-감소가능 블록 크기는 크기 5의 변환을 사용할 수 있다. 계산적 복잡성의 관점에서, DCT-Ⅳ 또는 FFF 변환들 중 하나보다 5-포인트 DCT-Ⅱ 변환을 설계하는 것이 훨씬 더 효율적이다.
MDCT 변환들의 정의
매트릭스 표기법을 사용하여 MDCT 변환은 매트릭스 M에 의하여 표현될 수 있다:
Figure pct00048
그 결과,
Figure pct00049
Figure pct00050
이고, 여기서 x는 입력 샘플들의 매트릭스
Figure pct00051
를 나타내고, X는 결과 MDCT 계수들의 매트릭스
Figure pct00052
를 나타내며,
Figure pct00053
는 재구성된 출력들의 매트릭스
Figure pct00054
를 나타낸다.
MDCT 변환을 구현하기 위하여, 이것은 N/2-포인트 코어 변환 함수로 맵핑될 수 있다. 예를 들어, 도 1의 변환(116)은 하나 이상의 N/2 -포인트 DCT-Ⅳ 변환들로서 구현될 수 있다.
DCT-Ⅳ 변환은 다음과 같이 정의될 수 있다:
Figure pct00055
한편, IDCT-Ⅳ 변환은 다음과 같이 정의될 수 있다:
Figure pct00056
MDCT 변환은
Figure pct00057
로서 N/2-포인트 DCT-Ⅳ 변환으로 맵핑될 수 있으며; 그리고 IMDCT 변환은
Figure pct00058
로서 N/2 -포인트 IDCT-Ⅳ 변환으로 맵핑될 수 있고, 여기서,
Figure pct00059
이며,
Figure pct00060
는 N/4 x N/4 단위 매트릭스이고,
Figure pct00061
는 N/4 x N/4 순서 반전 매트릭스(order reversal matrix)이고, 매트릭스 S는 다음과 같이 정의된다.
Figure pct00062
그리고
Figure pct00063
는 다음과 같이 정의될 수 있는 N/2 x N/2 DCT-Ⅳ 매트릭스이다.
Figure pct00064
DCT-Ⅳ 매트릭스의 대칭성 및 인볼루토리(involutory) 특성들을 사용함으로써, 이것은 DCT-Ⅱ 변환으로 맵핑될 수 있다. DCT-Ⅱ 변환은 다음과 같이 정의될 수 있다:
Figure pct00065
유사하게, IDCT-Ⅱ 변환은 다음과 같이 정의될 수 있다:
Figure pct00066
(식 12)
여기서, k = 0인 경우,
Figure pct00067
이고, 그렇지 않으면 1이다.
DCT -Ⅳ, DST -Ⅳ, 및 DCT -Ⅱ 변환들 정의
특징에 따라, 변환(116)(도 1) 및 역변환(316)(도3)은 각각 하나 이상의 DCT-Ⅱ(및 IDCT-Ⅱ) 변환들로서 구현될 수 있는 하나 이상의 DCT-Ⅳ 또는 DST-Ⅳ(및 IDCT-Ⅳ 또는 DST-Ⅳ) 변환들에 의하여 데시메이팅되고 구현될 수 있다.
DCT-Ⅳ 및 IDCT-Ⅳ는 대응하여 다음과 같이 정의될 수 있다:
Figure pct00068
(식 1)
Figure pct00069
(식 2)
DST-Ⅳ 및 IDST-Ⅳ는 대응하여 다음과 같이 정의될 수 있다:
Figure pct00070
(식 3)
Figure pct00071
(식 4)
유사하게, DCT-Ⅱ 및 그것의 역변환들은 대응하여 다음과 같이 정의될 수 있다:
Figure pct00072
(식 5)
Figure pct00073
(식 6)
여기서, k = 0인 경우,
Figure pct00074
이고, 그렇지 않으면 1이다.
식들 1-6에서, n=0,l,...Ν-l에 대한 {x(n)}는 샘플들의 입력 시퀀스를 나타내고, N은 프레임 길이를 나타내고, X(k)는 결과 MDCT 계수들이다.
N = 5인 경우에, DCT-Ⅳ에 대한 매트릭스 C_Ⅳ, DST-Ⅳ에 대한 매트릭스 S_Ⅳ 및 DCT-Ⅱ 변환들에 대한 매트릭스 C_Ⅱ는 대응하여 다음과 같이 표현될 수 있다:
(매트릭스 A)
Figure pct00075
(매트릭스 B)
Figure pct00076
(매트릭스 C)
Figure pct00077
DCT-Ⅱ의 표현을 간략화하기 위하여, 팩터들
Figure pct00078
는 무시될 수 있고, 모든 계수들은
Figure pct00079
로 곱해질 수 있는 동시에, 다음과 같은 표기법을 사용하며:
Figure pct00080
이에 따라 다음을 생성한다:
Figure pct00081
(매트릭스 D)
여기서, a2 + b2 = 1.25이고, c2 + d2 = 0.75임을 유념하라. 또한, c-d = 0.5임을 유념하라. 이것은 수반되는 코사인 값들에 대한 대수적 표현들을 따른다:
Figure pct00082
유사하게, DCT-Ⅳ의 경우에, 모든 계수들은
Figure pct00083
로 곱해지고, 다음의 표기법을 사용하며:
Figure pct00084
다음을 생성한다:
Figure pct00085
(매트릭스 E)
f2 + i2 = 2 이고, 유사하게 g2 + h2 = 2라는 것을 유념하라. 또한,
Figure pct00086
이고,
Figure pct00087
라는 것을 유념하라. 이것은 수반되는 코사인값들에 대한 대수적 표현들을 따른다:
Figure pct00088
최종적으로, DST-Ⅳ의 경우에, 모든 계수들은
Figure pct00089
로 곱해질 수 있고,
Figure pct00090
의 표기법을 사용하여,
Figure pct00091
(매트릭스 F)
를 생성한다.
DCT-Ⅳ경우와 유사하게, f2 + i2 = 2 이고, 유사하게 g2 + h2 = 2라는 것을 유념하라.
5-포인트 DCT -Ⅱ를 계산하기 위한 빠른 알고리즘들의 유도
프로세싱 효율성을 달성하기 위하여, 큰 변환에 의하여 사용되는 가장 작은 크기의 변환들은 빠르고 효율적이어야 한다. 이것은 이러한 작은 크기 변환들에 의하여 수행되는 연산들(예를 들어, 곱셈들, 덧셈들, 및 시프트들)을 최소화시킴으로써 달성된다. 그 결과, 가장 작은 크기 변환들에 대한 다양한 인수분해들이 이를 달성하기 위하여 구현될 수 있다. 어느 변환 인수분해가 구현되는지의 선택은 사용되고 있는 프로세서의 능력을 포함하는 다양한 팩터들에 좌우될 수 있다.
효율적인 DCT-Ⅱ 변환이 다양한 방식들로 구현될 수 있다. 예를 들어,
Figure pct00092
이도록, 변환에 대한 입력이 입력 벡터 x에 의하여 제공되는 것으로 가정한다.
스케일링된 DCT-Ⅱ 매트릭스(매트릭스 D에서와 같이
Figure pct00093
만큼 스케일링된)와 벡터 x의 곱(product)은 DCT-Ⅱ 매트릭스 X를 생성한다:
Figure pct00094
여기서,
Figure pct00095
이다.
본 매트릭스 S의 홀수 계수들 Xl 및 X3의 계산은 다음과 같이 고려된다:
Figure pct00096
이것은 두개 계수들 Xl 및 X3 모두가 x0 - x4 및 xl - x3에 대한 심플한 나비꼴(simple butterfly)로서 계산될 수 있다. 이제 본 매트릭스 X의 짝수 계수들 X2 및 X4의 계산을 고려한다.
Figure pct00097
여기서, 다시 계산들은 xO + x4 및 xl + x3에 대한 심플한 나비꼴로서 구성될 수 있는 것으로 나타난다.
실제 변환 연산들은 가산들, 곱셈들, 및/또는 시프트들의 전체 개수를 감소시키기 위하여 내부 변환 연산들을 재정렬함으로써 효율적으로 구현될 수 있다. 그 결과, 상이한 중간 결과들이 변환의 상이한 인수분해들에 의하여 달성될 수 있으며, 그러한 중간 결과들은 각각의 대응 변환을 특징짓는다.
도 5는 5-포인트 DCT-Ⅱ 변환(502)의 인수분해의 제1 실시예를 예증하는 흐름도이다. 본 실시에서, 상기 언급된 매트릭스 X의 홀수 계수들 Xl 및 X3와 짝수 계수들 X2 및 X4 사이에 관계들은 5-포인트 DCT Ⅱ 변환(502)을 나타내는데 이용되어,
Figure pct00098
Figure pct00099
의 중간 결과들이 계산되어, 다음과 같은 출력들을 획득한다:
Figure pct00100
여기서, 입력 계수들(504)(xO, xl, x2, x3, x4)은 출력 계수들(506)(XO, Xl, X2, X3, and X4)로 변환된다. 도 5의 이러한 방식의 복잡성은 12개의 가산들 및 8개의 곱셈들이다. 특히, 제1 나비꼴(508)는 출력 계수들 Xl 및 X3을 획득하도록 구현되고, 제2 나비꼴(510)는 출력 계수들 X2 및 X4를 획득하도록 구현된다. 본 변환(502)의 가장 긴 경로는 단지 3개의 연산들이다(가산들 및/또는 곱셈들은 나비꼴이 각각의 경로에 대하여 단지 1개의 MAC을 필요로 하는 것으로 가정함). "나비꼴"로 수행되는 연산들은 종종 평면 회전 또는 주어진 회전으로 지칭된다.
도 6은 5-포인트 DCT-Ⅱ 변환(602)의 인수분해의 제2 실시예를 예증하는 흐름도이다. 이러한 변환(602)은 입력 계수들(504)을 출력 계수들(506)로 변환하기 위하여 도 5의 변환(502)으로부터 유도될 수 있다. 본 구현예에서, 제2 나비꼴(510)(도 5)로의 입력들은 값들 z4 = x0 + x4 and z2 = xl + x3로서 표현되고, XO를 향한 순방향 경로를 따라 가산될 수 있다.
그 결과, 중간 결과들은 다음과 같이 계산된다:
Figure pct00101
또한, c - d = 0.5라는 사실은 다음과 같이 출력들 XO, X2, 및 X4를 나타내는데 사용된다:
Figure pct00102
그 결과, 5-포인트 DCT Ⅱ 변환(602)은 다음에 의하여 특징지어진다.:
Figure pct00103
이러한 변환(602)의 복잡성은 12개의 가산들, 5개의 곱셈들 및 2개의 시프트들이다. 이러한 변환의 1/2 팩터들은 다이애딕 유리수(dyadic rational)이고, 따라서, 그러한 1/2에 의한 "곱셈"이 단지 이진 시프트 연산(즉, 시프트)임을 유념하라. 여기서 최장 경로 길이는 4개의 연산들이다.
도 7은 5-포인트 DCT-Ⅱ 변환(702)의 인수분해의 제3 실시예를 예증하는 흐름도이다. 이러한 변환(702)은 입력 계수들(504)을 출력 계수들(506)로 변환하기 위하여 도 6의 변환(602)으로부터 유도될 수 있다. 계수들 X2 및 X4에 대한 식들은 다음과 같이 표현될 수 있다:
Figure pct00104
여기서 값들 c' 및 d' 는 다음과 같이 선택된다:
Figure pct00105
(식 7)
식 7은 다음과 같이 재정렬될 수 있다:
Figure pct00106
그 결과 이것은 다음과 같이 도시될 수 있다:
c= c' + d' 및
c + 0.5 = c' - d'
이러한 식들 모두를 감산함으로써, 다음과 같이 나타낼 수 있다:
0.5 = -2d'; 또는
d' = -0.25, 및
c' = c-d' = c + 0.25
그 결과, 출력 계수들 X2 및 X4는 다음과 같이 나타낼 수 있다:
Figure pct00107
이는 도 7의 변환(702)을 초래한다.
그 결과, 중간 결과들은 다음과 같이 계산된다:
Figure pct00108
그 결과, 5-포인트 DCT-Ⅱ 변환(702)은 다음에 의하여 특징지어진다.:
Figure pct00109
본 변환(702)은 12개의 가산들, 5개의 곱셈들 및 1개의 시프트에 구현될 수 있다. 본 변환(702)의 1/4 팩터는 다이애딕 유리수이고, 따라서, 그러한 1/4에 의한 "곱셈"은 단지 이진 시프트 연산(즉, 시프트)임을 유념하라. 여기서 최장 경로 길이는 또한 4개의 연산들이다.
도 8은 5-포인트 DCT-Ⅱ 변환(802)의 인수분해의 대안적인 실시예를 예증하는 흐름도이다. 본 변환의 팩터는 다이애딕 유리수이고, 따라서, 그것에 의한 곱셈은 단지 이진 시프트 연산임을 유념하라. 이러한 5-포인트 변환은 평면적 회전 및 5개의 곱셈들을 사용하여, 또는 평면 회전의 인수분해에 의한 4개의 곱셈들을 사용하거나 또는 리프팅 단계들을 사용함으로써 구현될 수 있다. 5-포인트 방식에 대하여, 입력들 x(504)의 5-포인트 시퀀스에 대하여, 5-포인트 DCT-Ⅱ 변환(802)에 대한 출력들 X(506)는 4개 비-단순(non-trivial) 곱셈들, 12개의 가산들, 및 2개의 시프트 또는 5개의 곱셈들, 12개의 가산들, 및 1개의 시프트를 사용하여 생성될 수 있다.
본 실시예에서, 곱셈기들은 다음과 같다:
Figure pct00110
DCT-Ⅱ 변환(802)은 다음과 같도록 중간 결과들을 포함할 수 있다:
Figure pct00111
그 결과, DCT-Ⅱ 변환(802)에 대한 출력들 XO, Xl, X2, X3, 및 X4은 다음과 같이 표현될 수 있다:
Figure pct00112
도 5-9에 도시되는 변환을 위한 중간 결과들(및 본 명세서의 다른 변환들)은 변환의 흐름에서 상이한 지점이 선택된다면 변화할 수 있다는 것을 유념하라. 그 결과, 더 많거나 더 적은 중간 결과들 및/또는 상이한 중간 결과들(예를 들어, 흐름도의 상이한 지점들에서의)은 이러한 변환 흐름도들로부터 예상되고 이해된다.
역변환의 유도
도 4-20에 개시되는 변환들은 본 명세서에 개시되는 순변환들을 반전시키기 위하여 반전될 수 있다. 도 32는 도 8의 순변환에 대응하는 역변환(5-포인트 IDCT-Ⅱ 역변환)을 개시한다. 역변환(3202)은 입력들(3204)(스펙트럼 계수들)을 출력들(시간-도메인 값들)(3206)로 변환하고, 중간 결과들에 의하여 특징지어질 수 있다:
Figure pct00113
플로우-그래프와 비교하여 소프트웨어에 무효화된 팩터들을 사용하여,
Figure pct00114
여기서,
Figure pct00115
이다.
그 결과, IDCT-Ⅱ 변환(3202)에 대한 출력들 x0, xl, x2, x3, 및 x4(3206)는 다음과 같이 계산될 수 있다:
x0 = wl - w2;
xl = w4 + w3;
x2 = w0;
x3 = w4 - w3;
x4 = wl + w2
5-포인트 DCT -Ⅳ 및 DST -Ⅳ를 계산하기 위한 빠른 알고리즘들의 유도
효율적인 DCT-Ⅳ 변환 및/또는 DST-Ⅳ는 다양한 방식들로 구현될 수 있다. 예를 들어, 변환에 대한 입력은,
Figure pct00116
이도록, 벡터 x에 의하여 제공되는 것으로 가정한다.
스케일링된 DCT-Ⅳ 매트릭스(매트릭스 E에서와 같이
Figure pct00117
만큼 스케일링된)와 벡터 x의 곱은 DCT-Ⅳ 매트릭스 X를 생성한다:
Figure pct00118
도 9는 5-포인트 DCT-Ⅳ 변환(902)의 인수분해의 제1 실시예를 예증하는 흐름도이다. 변환(902)은 입력 계수들 x(904)을 출력 계수들 X(906)로 변환한다. 변환(902)은 다음의 항들의 간단한 재정렬에 의하여 획득된다:
Figure pct00119
여기서,
Figure pct00120
이다.
변환(902)은 중간 결과들을 사용하여 계산될 수 있음을 유념하라:
Figure pct00121
그 결과, 변환(902)은 다음과 같이 표현될 수 있다:
Figure pct00122
따라서, 출력 계수들(XO, Xl, X2, X3, 및 X4)은 도 9의 변환(902)에 도시되는 바와 같이 4개 버터프라이들(908a, 908b, 908c, 및 908d)을 사용함으로써 계산될 수 있다. 이러한 구현의 복잡성은 20개의 가산들 및 16개의 곱셈들이다. 본 구현예에서 최장 경로 길이는 단지 3개의 연산들이다.
도 20은 5-포인트 DCT- Ⅳ 변환(1002)이 구현될 수 있는 방법의 제2 실시예를 예증하는 흐름도이다. 도 9의 변환(902)의 각각의 나비꼴은 그것이 단지 실행할 3개의 곱셈들을 필요로 하도록 변형될 수 있다. 예를 들어, 출력 계수들 XO 및 X4 에 대한 컴포넌트 연산들은 다음과 같이 기록될 수 있다:
Figure pct00123
유사하게, 출력 계수들 Xl 및 X3에 대한 컴포넌트 연산들은 다음과 같이 기록될 수 있다:
Figure pct00124
Figure pct00125
그러한 분해들을 사용함으로써, 변환(1002)을 위한 출력 계수들은 다음과 같이 특징지어질 수 있다:
Figure pct00126
변환(1002)은 중간 결과들을 사용하여 계산될 수 있음을 유념하라:
Figure pct00127
그 결과, 변환(902)은 다음과 같이 표현될 수 있다:
Figure pct00128
이러한 변환(1002)의 복잡성은 이제 20개의 가산들 및 12개의 곱셈들이다. 여기서, 가장 긴 경로의 길이는 4개의 연산들이다.
대안적인 접근법에서, DCT-Ⅳ 변환들은 그것을 DCT-Ⅱ 변환으로 맵핑함으로써 유도될 수 있다.
예를 들어, 도 11은 DCT-Ⅳ 변환(1102)이 입력 계수들(1106)을 출력 계수들(1108)로 변환하기 위하여 DCT-Ⅱ 변환(1104)으로 맵핑될 수 있는 방법을 예증하는 블록도이다.
도 12는 입력 계수들(1206)을 출력 계수들(1208)로 변환하기 위하여 5-포인트 DCT-Ⅱ 변환을 사용하여 구현될 수 있는 5-포인트 DCT-Ⅳ 변환(1202)을 예증하는 블록도이다. 이것은 도 11에 개시되는 변호나 맵핑의 특정 경우이다. 본 실시예에서, 각도들에 대한 표기법은 다음과 같이 나타날 수 있다:
Figure pct00129
도 13은 5-포인트 DCT-Ⅱ 변환을 사용하여 구현될 수 있는 도 12의 5-포인트 DCT-Ⅳ 변환의 인수분해의 일 실시예를 예증하는 블록도이다. 본 실시예에서, 도 12의 5-포인트 DCT-Ⅳ 변환은 2로 곱셈되고,
Figure pct00130
팩터들이 움직인다. 이러한 맵핑은 도 12의 것과 동등하다.
도 14는 도 13에서 DCT-Ⅳ 변환(1202) 맵핑이 도 6의 DCT-Ⅱ 변환(602)과 결합될 수 있는 방법을 예증하는 블록도이다. 즉, DCT 변환(1402)은 도 6의 DCT-Ⅱ 변환(602)으로서 구현될 수 있는 도 13의 변환(1202)의 조합물일 수 있다. 그 결과, 변환(1402)에 대한 출력 계수들은 다음과 같이 특징지어질 수 있다:
Figure pct00131
여기서,
Figure pct00132
이다.
중간 결과들은 다음과 같이 계산될 수 있음을 유념하라:
Figure pct00133
Figure pct00134
그 결과, 출력들은 다음과 같이 표현될 수 있다:
Figure pct00135
이러한 DCT-Ⅳ 변환(1402)은 단지 16개의 가산들, 9개의 곱셈들 및 2개의 시프트들만을 사용한다. 이러한 변환에서 2개 팩터들이 다이애딕 유리수이고, 따라서 그러한 2의 "곱셈"은 단지 이진 시프트 연산(즉, 시프트)이라는 것을 유념하라.
도 15는 도 14의 DCT-Ⅳ 변환(1402)이 등가 변환(1502)으로 추가로 변형될 수 있는 방법을 예증하는 블록도이다. 본 실시예에서, 변환(1502)의 최종 캐스케이드 연산들은 추가적 간략화를 허용한다. 그 결과, 변환(1502)을 위한 출력 계수들은 다음과 같이 특징지어질 수 있다:
Figure pct00136
중간 결과들은 다음과 같이 계산될 수 있다:
Figure pct00137
그 결과, 출력들은 다음과 같이 표현될 수 있다:
Figure pct00138
그 결과, 이러한 DCT-Ⅳ 변환(1502)은 단지 15개의 가산들, 10개의 곱셈들 및 2개의 시프트들만을 사용한다. 본 변형에서 "2" 팩터들은 다이애딕 유리수이고, 따라서, 그러한 2의 "곱셈"은 단지 이진 시프트 연산(즉, 시프트)임을 유념하라. 본 구현예에서 최장 경로 길이는 단지 5개의 연산들이다.
도 16은 도 15의 DCT-Ⅳ 변환(1502)이 등가 변환(1602)으로 추가로 변형될 수 있는 방법을 예증하는 블록도이다. 변환(1602)에 대한 출력 계수는 다음에 의하여 특징지어질 수 있다:
Figure pct00139
중간 결과들은 다음과 같이 계산될 수 있다:
Figure pct00140
그 결과, 출력들은 다음과 같이 표현될 수 있다:
Figure pct00141
Figure pct00142
그 결과, 이러한 DCT-Ⅳ 변환 1602은 15개의 가산들, 11개의 곱셈들 및 2개의 시프트들만을 사용한다. 본 변환의 2 팩터들은 다이애딕 유리수이고, 따라서, 그러한 2의 "곱셈"은 단지 이진 시프트 연산(즉, 시프트)이라는 것을 유념하라. 본 구현예의 최장 경로 길이는 단지 5개의 연산들이다.
도 17은 도 16의 DCT-Ⅳ 변환(1602)이 등가 변환(1702)으로 추가로 변형될 수 있는 방법을 예증하는 블록도이다. 변환(1702)에 대한 출력 계수들은 다음과 같이 특징지어질 수 있다:
Figure pct00143
중간 결과들은 다음과 같이 계산될 수 있다:
Figure pct00144
그 결과, 출력들은 다음과 같이 표현될 수 있다:
Figure pct00145
그 결과, 이러한 DCT-Ⅳ 변환(1702)은 15개의 가산들, 11개의 곱셈들 및 2개의 시프트들만을 사용한다. 본 변환의 2 팩터들은 다이애딕 유리수이고, 따라서, 그러한 2의 "곱셈"은 단지 이진 시프트 연산(즉, 시프트)이라는 것을 유념하라. 본 구현예의 최장 경로 길이는 단지 5개의 연산들이다.
도 18은 도 17의 DCT-Ⅳ 변환(1702)이 등가 변환(1802)으로 추가로 변형될 수 있는 방법을 예증하는 블록도이다. 본 실시예에서, 더 짧은 경로 길이 및 개선된 수적 안정성이 최종 스테이지에서 반복적 가산들의 제거로 인하여 달성된다. 변환(1802)에 대한 출력 계수들은 다음과 같이 특징지어질 수 있다:
Figure pct00146
중간 결과들은 다음과 같이 계산될 수 있다:
Figure pct00147
그 결과, 출력들은 다음과 같이 표현될 수 있다:
Figure pct00148
이러한 DCT-Ⅳ 변환(1802)은 15개의 가산들, 12개의 곱셈들 및 2개의 시프트들만을 사용한다. 2의 "곱셈"은 시프트들로서 고려됨을 유념하라. 본 구현예의 최장 경로 길이는 단지 5개의 연산들이다.
도 5-18에 개시되는 본 명세서에서 DCT 및 DST 변환들은 DCT 및 DST 변환 연산들을 무효화하거나 반전시키기 위하여 IDCT 및 IDST로서 반전가능할 수 있다는 것을 유념하라.
크기들 N=5*2 K 의 변환들의 계산
일 구현예에 따라, N-크기 변환(여기서, N=5*2K)은 작은 N/2-크기 변환들의 체인으로 반복적으로 분할될 수 있으며, 이는 DCT-Ⅱ, DCT-Ⅳ, DST-Ⅳ 또는 유사한 커널들에 기초할 수 있고, 마지막 5-포인트 캐스케이드는 5-포인트 변환들을 계산하기 위한 개시된 빠른 알고리즘들 중 하나를 사용함으로써 구현된다.
도 19는 N-크기 변환이 그것이 다수의 5-포인트변환들로 표현될 때까지 작은 N/2-크기 변환들로 반복적으로 분할될 수 있는 방법을 예증하는 블록도이다. 예를 들어, N-크기(포인트) 변환(1902)은 N개 입력 계수들(1910)을 수신하고, 이들을 N 출력 계수들(1912)로 변환한다. N-크기 변환(1902)은 2개의 N/2-크기 변환들(1904a 및 1904b)로 데시메이팅될 수 있다. 유사하게, 각각의 N/2-크기 변환(1904a 및 1904b)은 가장 작은 변환들이 5-포인트 변환들(1906a, 1906b, 1908a, 및 1908b)일 때까지 다수의 작은 변환들로 추가로 데시메이팅될 수 있다. 다양한 구현예들에서, 5-포인트 변환들(1906a, 1906b, 1908a, 및 1908b)은 도 5-18에 개시되는 5-포인트 변환들 중 임의의 것에 의하여 구현될 수 있다.
도 20은 10-포인트 DCT-Ⅳ 변환이 다수의 작은 5-포인트 DCT-Ⅱ 변환들(2004a 및 2004b)로 반복적으로 분할되는 분할 및 변환 데시메이션의 일 실시예를 예증하는 블록도이다. 본 실시예에서, 10개의 입력 계수들(2006)은 10개의 출력 계수들(2008)을 생성하기 위하여 작은 5-포인트 변환들(2004a 및 2004b)의 쌍에 의하여 변환된다.
도 28은 10-포인트 DCT-Ⅳ 변환이 다수의 작은 5-포인트 DCT-Ⅱ 변환들(2804a 및 2804b)로 반복적으로 분할되는 분할 및 변환 데시메이션의 대안적 실시예를 개시한다. 본 실시예에서, 10개 입력 계수들(2806)은 10개 출력 계수들(2808)을 생성하기 위하여 작은 5-포인트 변환들(2804a 및 2804b)의 쌍에 의하여 변환된다. 도 20과 비교하여, DCT-Ⅳ에 대한 이러한 대안적 데시메이션 프로세스는 더 많은 연산들을 요구하나, 수와 관련하여 보다 견고하다. 즉, 도 20의 방식에서 변환(2004b) 이후의 감산들의 실행 시퀀스(running sequence)는 N/2만큼 중간 변수들의 크기를 잠재적으로 증가시킬 수 있으며, 여기서 N은 변환 크기이다. 도 28의 대안적 방식은 그러한 실행(run)들을 갖지 않으며, 그것은 단지 변환을 계산하기 위한 평면 회전(plane rotation)들(직교 연산들인)만을 사용한다. DCT-Ⅱ에 대한 분할 프로시져는 또한 그러한 특성들을 갖는다. 최종 알고리즘은 분할 프로세스에서 반복적으로 변환 타입들을 교대할 수 있다. 즉, 이것은 DCT-Ⅱ를 DCT-Ⅱ 및 DCT-Ⅳ 또는 절반 크기들로 분할할 수 있다; 그 후 그것은 DCT-Ⅳ를 2개 DCT-Ⅱ들로 분할할 것이며, DCT-Ⅱ들은 더 작은 DCT-Ⅱ 및 DCT-Ⅳ로 분할될 것이고; 나머지 또한 동일한 방식으로 분할된다.
도 29는 도 28의 변환의 역인 10-포인트 IDCT-Ⅳ 변환을 개시한다.
도 21은 N-크기 역변환이 그것이 다수의 5 -포인트 역변환들에 의하여 표현될 때까지 작은 N/2-크기 역변환들로 반복적으로 분할될 수 있는 방법을 예증하는 블록도이다. 예를 들어, N-크기(포인트) 역변환(2102)은 N개 입력 계수들(2110)을 수신하여, 이들을 N개 출력 계수들(2112)로 변환한다. N-크기 역변환(2102)은 2개의 N/2-크기 역변환들(2104a 및 2104b)로 데시메이팅될 수 있다. 유사하게, 각각의 N/2-크기 역변환(2104a 및 2104b)은 가장 작은 역변환들이 5-포인트 역변환들(2106a, 2106b, 2108a, 및 2108b)일 때까지 다수의 작은 역변환들로 추가로 데시메이팅될 수 있다. 다양한 구현예들에서, 5-포인트 역변환들(2106a, 2106b, 2108a, 및 2108b)은 도 5-18에 개시되는 변환들에 대응하는 임의의 5-포인트 역변환에 의하여 구현될 수 있다.
도 22는 10-포인트 IDCT-Ⅳ 역변환(2202)이 다수의 작은 5-포인트 IDCT-Ⅱ 역변환(2204a 및 2204b)로 반복적으로 분할되는 역분할 및 변환 데시메이션의 일 실시예를 예증하는 블록도이다. 본 실시예에서, 10개의 입력 계수들(2206)은 10개의 출력 계수들(2208)을 생성하기 위하여 작은 5-포인트 역변환들(2204a 및 2204b)의 쌍에 의하여 변환된다.
도 30은 10-포인트 DCT-Ⅳ 역변환이 다수의 작은 5-포인트 DCT-Ⅱ 변환 및 5-포인트 DCT-Ⅳ로 반복적으로 분할되는 분할 및 변환 데시메이션의 일 실시예를 예증하는 블록도이다.
도 30은 10-포인트 DCT-Ⅳ 역변환이 다수의 작은 5-포인트 DCT-Ⅱ 변환 및 5-포인트 DCT-Ⅳ로 반복적으로 분할되는 분할 및 변환 데시메이션의 일 실시예를 예증하는 블록도이다.
도 31은 도 30의 순변환에 대한 역변환의 일 실시예를 예증하는 블록도이다.
비대칭 윈도잉 스테이지를 이용한 MDCT 필터뱅크
다른 특징에 따라, 비대칭 윈도잉 스테이지는 MDCT 필터뱅크의 일부로서 구현될 수 있다. 몇몇 애플리케이션들에서, MDCT 필터뱅크는 다중 계층들을 갖는 스케일링가능 스피치 코덱에서 구현될 수 있으며, 그러한 몇몇 계층들은 이전 계층으로부터 에러 신호를 변환하기 위하여 MDCT를 사용할 수 있다. 40 밀리초 윈도잉 스테이지를 갖는 가중 에러 신호 werr_sp(k)는 다음과 같이 주어진다:
Figure pct00149
도 23은 동일한 개수의 주파수 계수들을 유지시키면서 변환 스테이지와 연관되는 지연을 10 ms로 감소시키는데 사용될 수 있는 비대칭 윈도우 형태를 개시한다. 지연 감소는 그러한 비대칭 윈도우 함수의 첫번째 80 팩터들이 0들로 변한다는 사실로 인하여 가능해진다. 따라서, 이러한 샘플들은 액세스될 필요가 없다.
종래의 MDCT 윈도우들에 대조적으로, 이러한 윈도우(2302)은 비대칭적이다; 마찬가지로 윈도우의 제2 절반부는 제1 절반부의 시간 반전 버전과 상이하다. 분석 비대칭 윈도우 형태는 다음의 식에 의하여 주어진다:
Figure pct00150
여기서,
Figure pct00151
이고,
D(n)은 다음과 같이 정의된다:
Figure pct00152
Figure pct00153
여기서 M = 320는 MDCT 주파수 컴포넌트들의 개수를 나타내고, Mz = M/4는 트레일링 제로(trailing zero)들의 양이다.
MDCT DCT -Ⅳ 맵핑의 매트릭스 설명
MDCT 계수들 werr _sp(k)의 계산은 먼저 입력 신호 werr(n)에 대하여 윈도우 및 표준화 팩터들
Figure pct00154
을 적용하고, 그 후
Figure pct00155
에 대하여 자신의 분해를 사용함으로써 다음과 같은 Mx 2M 매트릭스 T에 의하여 곱을 계산함으로써 수행된다:
Figure pct00156
여기서,
Figure pct00157
는 DCT-Ⅳ 변환의 MxM 매트릭스이다.
Figure pct00158
여기서 매트릭스 IN /2 및 JN /2는 N/2 x N/2 아이덴티티 및 순서 반전 매트릭스들을 나타낸다.
DCT -Ⅳ의 계산
크기들
Figure pct00159
의 DCT-Ⅳ의 계산은 두배로 작은 크기들의 DCT-Ⅱ 변환들로 그것을 분할함으로써 수행된다:
Figure pct00160
여기서, PM은 순열 매트릭스 생성 재정렬이다.
Figure pct00161
DM은 대각선 사인-변화 매트릭스이다.
Figure pct00162
RM은 주어진 회전 매트릭스이다.
Figure pct00163
그리고
Figure pct00164
는 나머지 DCT-Ⅱ 변환들의 매트릭스들을 나타낸다:
Figure pct00165
두배로 작은 (M= 5) DCT-Ⅱ 변환들로의 크기 M = 10의 DCT-Ⅳ 변환의 그러한 분할 프로세스의 예시적인 구현이 도 20에 개시된다.
크기들
Figure pct00166
의 DCT-Ⅱ 변환들의 계산은 작은 변환들로 그것을 분할함으로써 또한 수행될 수 있다:
Figure pct00167
작은 변환들(M = 5)로의 크기 M = 1O의 DCT-Ⅱ 변환의 그러한 분할 프로세스의 예시적인 구현이 도 30에 개시된다.
상기 프로세스는 단지 5-포인트 변환들이 남아있을 때까지 반복될 수 있다. 나머지 5-포인트 변환들은 다음에 의하여 효율적으로 수행될 수 있다.
5-포인트 DCT-Ⅳ의 계산은 다음과 같은 DCT-Ⅱ를 통해 수행된다:
Figure pct00168
최종적으로, 입력 벡터x = [x0, xl, x2, x3, x4]T 에 대한 5-포인트 DCT-Ⅱ의 계산
Figure pct00169
이 다음과 같이 수행된다:
DCT-Ⅱ 변환(802)은,
Figure pct00170
이도록 중간 결과들을 포함할 수 있으며, 여기서,
Figure pct00171
이다.
본 변환에 대한 플로우-그래프의 일 실시예는 도 8에 개시된다.
MDCT 변환을 사용하는 인코딩의 실시예
도 24는 변환 값들을 계산하기 위한 디바이스를 예증하는 블록도이다. 디바이스(2402)는 입력 모듈(2406), 윈도우 모듈(2410), 및/또는 변환 모듈(2414)을 포함할 수 있다. 입력 모듈(2406)은 오디오 신호(2404)를 수신하고, 오디오 신호를 나타내는 시간-도메인 입력 값들(2408)을 제공하도록 구성될 수 있다. 윈도우 모듈(2410)은 도 23에 개시되는 바와 같은 비대칭 윈도잉 함수를 생성할 수 있다.
변환 모듈(2414)은 예를 들어, 변형 이산 코사인 변환(MDCT)을 사용하여 윈도우화된 입력 값들(2412)을 스펙트럼 계수들(2416)로 변환할 수 있다. MDCT는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ), 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ) 중 적어도 하나, 또는 DCT-Ⅳ 및 DCT-Ⅱ 모두로 반복적으로 분할될 수 있으며, 그러한 변환들 각각은 MDCT보다 작은 디멘젼이다. 일 실시예에서, DCT-Ⅱ는 상이한 크기의 MDCT들을 구현하는 5-포인트 변환일 수 있다. MDCT는 동일한 코어 DCT-Ⅱ를 사용하는 320, 160, 80, 40-포인트 변환들 중 적어도 2개를 구현할 수 있다. 디바이스(2402)의 컴포넌트들은 하드웨어, 소프트웨어, 및/또는 이들의 조합물로서 구현될 수 있다. 예를 들어, 디바이스(2402)는 그것의 모듈들 또는 컴포넌트들의 함수를 구현하는 프로세서 및/또는 회로일 수 있다.
도 25는 5-포인트 코어 변환에 기초하여 MDCT 변환을 사용하는 신호를 인코딩하기 위한 방법의 일 실시예를 개시한다. 오디오 신호를 나타내는 시간-도메인 입력 값들이 수신될 수 있다(2502). 예를 들어, 아날로그 오디오 신호(예를 들어, 음성 신호, 음악, 비디오 등)는 입력 값들을 획득하기 위하여 샘플링될 수 있다. 일 실시예에서, 입력 값들(2504)로 비대칭 윈도우 함수를 적용하는 변형된 위도잉 함수가 생성될 수 있다. (윈도우화된) 입력 값들은 그 후 다수의 5-포인트 변환들로 반복적으로 분할되는 변형 이산 코사인 변환(MDCT)을 사용하여 스펙트럼 계수들로 변환될 수 있다. 예를 들어, 도 5-22에 개시되는 5-포인트 변화들 중 임의의 것이 사용될 수 있다.
IMDCT 변환을 사용하는 디코딩의 실시예
도 26은 변환 값들을 계산하기 위한 디바이스를 개시하는 블록도이다. 디바이스(2602)는 입력 모듈(2606), 역변환 모듈(2608), 및/또는 윈도우 모듈(2612)을 포함할 수 있다. 역변환 모듈(2608)은 출력 값들(2610)로 스펙트럼 계수들(2604)을 변환하도록 구성될 수 있다. 예를 들어, 역변환 모듈은 역 이산 코사인 변환 타입 Ⅳ(IDCT-Ⅳ), 역 이산 코사인 변환 타입 Ⅱ(IDCT-Ⅱ) 중 적어도 하나, 또는 DCT-Ⅳ 및 IDCT-Ⅱ 모두로 반복적으로 분할되는 역 변형 이산 코사인 변환(IMDCT)을 사용하여 스펙트럼 계수들을 시간-도메인 출력 값들(2610)로 변환할 수 있으며, 그러한 각각의 역변환은 IMDCT보다 작은 디멘젼이다.
윈도우 모듈(2612)은 윈도우화된 출력 값들(2614)을 생성하기 위하여 출력 값들(2610)에 대하여 비대칭 윈도우 함수를 구현하는 변형 윈도잉 함수를 생성할 수 있다. 디바이스(2602)의 컴포넌트들은 하드웨어, 소프트웨어, 및/또는 이들의 조합물로서 구현될 수 있다. 예를 들어, 디바이스(2602)는 자신의 컴포넌트들 또는 모듈들의 기능들을 구현하는 회로 및/또는 프로세서일 수 있다.
도 27은 코어 IDCT-Ⅱ 변환에 기초하는 IMDCT 변환을 사용하여 신호를 디코딩하기 위한 방법의 일실시예를 개시한다. 오디오 신호를 나타내는 스펙트럼 계수들이 수신되거나 획득된다(2702). 스펙트럼 계수들은 다수의 5-포인트 역변환들(2704)로 반복적으로 분할되는 역 변형 이산 코사인 변환(IMDCT)을 사용하여 시간-도메인 출력 값들로 변환될 수 있다. 다수의 5-포인트 역변환들 각각은 동일한 코어 변환을 사용하여 구현될 수 있다. IMDCT는 동일한 코어 변환을 사용하는 320, 160, 80, 40-포인트 역변환들 중 적어도 둘을 구현한다. 다양한 구현예들에서, 코어 변환은 도 5-22의 5-포인트 변환들 중 임의의 하나일 수 있다. 또한, 변환된 스펙트럼 계수들에 비대칭 윈도잉 함수를 적용하는 변형 윈도잉 함수가 생성될 수 있다(2706).
본 명세서에 제공되는 실시예들 이외에, 데시메이팅된 변환들을 구현하는 본 명세서에 설명되는 알고리즘들은 2의 배수인 임의의 다른 변환을 구현하는데 사용될 수 있다. 또한, 본 명세서에 설명되는 기술들이 다양한 타입의 신호들, 오디오, 음성, 비디오, 데이터 등에 적용될 수 있다는 것을 유념해야 한다.
본 명세서에 개시되는 변환들에 대한 중간 결과들은 변환의 흐름도에 상이한 지점이 선택된다면 변화할 수 있다는 것을 이해해야 한다. 그 결과, 본 명세서에 설명되고 청구되는 변환 흐름도들의 범위 내에서 더 많거나 더 적은 중간 결과들 및/또는 상이한 중간 결과들(예를 들어, 흐름도의 상이한 지점들에서의)이 고려된다.
정보 및 신호들은 다양한 상이한 기술들 및 테크닉들 중 임의의 것을 사용하여 표현될 수 있다. 예를 들어, 상기 설명을 통해 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들 등은 전압, 전류, 전자기장, 자기장 또는 입자들, 광학계들 또는 입자들, 또는 이들의 임의의 조합물로 표현될 수 있다.
본 명세서에 개시되는 다양한 예시적인 논리 블록들, 모듈들 및 회로들 및 알고리즘 단계들은 전자 하드웨어, 소프트웨어, 또는 이 둘의 조합물로서 구현되거나 수행될 수 있다. 하드웨어 및 소프트웨어의 상호교환가능성을 명백하게 개시하기 위하여, 다양한 예증적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 상기에서 일반적으로 그들의 기능의 관점에서 설명되었다. 그러한 기능이 하드웨어로서 또는 소프트웨어로서 구현되는지 여부는 전체 시스템상에 부과되는 특정 애플리케이션 및 설계 제약들에 좌우된다. 구성들은 플로우챠트, 흐름도, 구성도, 또는 블럭도로서 도시되는 프로세스로서 설명될 수 있음을 유념하라. 플로우챠트는 순차적 프로세스로서 연산들을 개시할 수 있으나, 다수의 연산들이 병렬로 또는 동시에 수행될 수 있다. 또한, 연산들의 순서는 재-정렬될 수 있다. 프로세스는 그것의 연산들이 완료될 때 종결된다. 프로세스는 방법, 함수, 프로시져, 서브루틴, 서브프로그램에 대응할 수 있다. 프로세스가 함수에 대응할 때, 그것의 종료는 메인 함수 또는 호출 함수로의 함수의 리턴에 대응한다.
하드웨어로 구현시, 다양한 실시예들은 본 명세서에서 설명하는 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA) 또는 다른 프로그래밍 가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합을 이용할 수 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로 프로세서는 임의의 종래 프로세서, 제어기, 마이크로컨트롤러 또는 상태 머신일 수도 있다. 프로세서는 또한 계산 디바이스들의 조합, 예를 들어 DSP와 마이크로프로세서의 조합, 다수의 마이크로프로세서들, DSP 코어와 결합한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 구성으로 구현될 수도 있다.
소프트웨어로 구현될 때, 다양한 실시예들은 펌웨어, 미들웨어, 또는 마이크로코드를 이용할 수 있다. 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체 또는 다른 스토리지(들)와 같은 컴퓨터-판독 가능 매체에 저장될 수 있다. 프로세서는 필요한 작업들을 수행할 수 있다. 코드 세그먼트는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령, 데이터 구조 또는 프로그램 명령문의 임의의 조합을 나타낼 수 있다. 코드 세그먼트는 정보, 데이터, 인수(argument), 파라미터 또는 메모리 콘텐츠를 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 연결될 수 있다. 정보, 인수, 파라미터, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신들을 포함하는 임의의 적당한 수단을 통해 전달, 발송 또는 전송될 수 있다.
본 출원에서 사용되는 바와 같이, "컴포넌트", "시스템" 등의 용어는 컴퓨터 관련 엔티티, 하드웨어, 소프트웨어, 실행중인 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 및/또는 이들의 임의의 결합물을 언급하기 위한 것이다. 예를 들어, 이에 한정되는 것은 아니지만 컴포넌트는 프로세서상에서 실행하는 프로세스, 프로세서, 객체, 실행가능 파일, 실행 스레드, 프로그램 및/또는 컴퓨터일 수도 있다. 예시로서, 컴퓨팅 디바이스상에서 실행하는 애플리케이션 및 컴퓨팅 디바이스는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들이 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며, 컴포넌트는 하나의 컴퓨터에 집중될 수도 있고 그리고/또는 2개 이상의 컴퓨터 사이에 분산될 수도 있다. 또한, 이들 컴포넌트들은 다양한 데이터 구조들을 저장한 다양한 컴퓨터 판독 가능 매체로부터 실행될 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷(예를 들어, 로컬 시스템, 분산 시스템의 다른 컴포넌트과 그리고/또는 신호에 의해 다른 시스템들과 인터넷과 같은 네트워크를 거쳐 상호 작용하는 하나의 컴포넌트로부터의 데이터)을 갖는 신호에 따르는 등 로컬 및/또는 원격 프로세스들에 의해 통신할 수 있다.
본 명세서의 하나 이상의 예시적인 실시예에서, 설명한 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어에 구현된다면, 함수들은 컴퓨터 판독 가능 매체 상에 하나 이상의 명령 또는 코드로서 저장될 수도 있고 또는 이를 통해 전송될 수 있다. 컴퓨터 판독 가능 매체는 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체를 모두 포함한다. 저장 매체는 컴퓨터에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 한정이 아닌 예시로, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM이나 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 소자, 또는 명령이나 데이터 구조의 형태로 원하는 프로그램 코드를 운반 또는 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스 가능한 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독 가능 매체로 적절히 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 꼬임쌍선, 디지털 가입자 회선(DSL), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유 케이블, 꼬임 쌍선, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술이 매체의 정의에 포함된다. 여기서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크(CD), 레이저 디스크, 광 디스크, 디지털 다목적 디스크(DVD), 플로피디스크 및 블루레이 디스크를 포함하며, 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 반면, 디스크(disc)들은 데이터를 레이저에 의해 광학적으로 재생한다. 상기의 조합들은 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다. 소프트웨어는 단일 지시, 또는 다수의 지시들을 포함할 수 있으며, 다수의 상이한 코드 세그먼트들을 통해, 상이한 프로그램들 사이에서, 그리고 다수의 스토리지 매체에 걸쳐 분포될 수 있다. 예시적인 스토리지 매체는 프로세서가 스토레제 매체로부터 정보를 판독할 수 있고, 스토리지 매체에 정보를 기록할 수 있도록 프로세서에 연결될 수 있다. 대안적으로, 스토리지 매체는 프로세서에 통합될 수 있다.
본 명세서에 개시되는 방법들은 개시된 방법을 달성하기 위한 하나 이상의 단계들 또는 동작들을 포함한다. 방법 단계들 및/또는 동작들은 청구항들의 범위를 벗어나지 않고 서로 상호교환될 수 있다. 다시 말해, 단계들 또는 동작들의 특정 순서가 설명되는 실시예의 적절한 동작에 대하여 요구되지 않는 한, 특정 단계들 및/또는 동작들의 사용 및/또는 순서는 청구항의 범위를 벗어나지 않고 변형될 수 있다.
도면들에 개시되는 컴포넌트들, 단계들 및/또는 기능들 중 하나 이상은 재정렬되고/재정렬되거나 단일 컴포넌트, 단계, 또는 함수에 결합되거나, 다수의 컴포넌트들, 단계들, 또는 함수들에 포함될 수 있다. 추가적 엘리먼트들, 컴포넌트들, 단계들 및/또는 기능들이 또한 부가될 수 있다. 몇몇 도면들에 개시되는 장치, 디바이스들, 및/또는 컴포넌트들은 다른 도면들에 설명되는 방법들, 특징들, 또는 단계들 중 하나 이상을 수행하도록 구성 또는 적응될 수 있다. 본 명세서에 설명되는 알고리즘들은 예를 들어, 소프트웨어로 효율적으로 구현되고/구현되거나 하드웨어에 내장될 수 있다.
전술한 구성들은 단지 실시예들로서, 청구항들을 제한하는 것으로 여겨져서는 안 된다. 구성들의 설명은 예증적인 것으로 간주되며, 청구항들의 범위를 제한하지 않는다. 마찬가지로, 본 발명의 교지는 본 기술분야의 당업자들에게 명백할 다른 타입의 장치들 및 다수의 대안들, 변형들, 및 변화들에 용이하게 적용될 수 있다.

Claims (52)

  1. 변환 값들을 계산하는 방법으로서,
    오디오 신호를 나타내는 시간-도메인 입력 값들을 수신하는 단계; 및
    다수의 5-포인트 변환들로 반복하여(recursive) 데시메이팅(decimate)되는 변형 이산 코사인 변환(MDCT)을 사용하여 상기 입력 값들을 스펙트럼 계수들로 변환하는 단계
    를 포함하는, 변환 값들을 계산하는 방법.
  2. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산(addition) 연산들, 8개의 곱셈(multiplication) 연산들, 및 최장 경로 길이의 3개의 연산들에 의하여 인수분해(factorize)되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(502)을 포함하는, 변환 값들을 계산하는 방법.
  3. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(502)를 포함하며,
    Figure pct00172
    이도록,
    Figure pct00173
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00174
    인, 변환 값들을 계산하는 방법.
  4. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 5개의 곱셈 연산들, 2개의 시프트(shift) 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(602)를 포함하는, 변환 값들을 계산하는 방법.
  5. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(602)를 포함하며,
    Figure pct00175
    이도록,
    Figure pct00176
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00177
    인, 변환 값들을 계산하는 방법.
  6. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 5개의 곱셈 연산들, 1개의 시프트 연산, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(702)를 포함하는, 변환 값들을 계산하는 방법.
  7. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(702)를 포함하며,
    Figure pct00178
    이도록,
    Figure pct00179
    의 적어도 다수의 중간 결과들을 갖는 것에 의하여 특징지어지고, 여기서,
    Figure pct00180
    인, 변환 값들을 계산하는 방법.
  8. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 4개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)를 포함하는, 변환 값들을 계산하는 방법.
  9. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)를 포함하며,
    Figure pct00181
    이도록,
    Figure pct00182

    Figure pct00183
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00184
    인, 변환 값들을 계산하는 방법.
  10. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 5개의 곱셈 연산들, 1개의 시프트 연산, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 변환(802)을 포함하는, 변환 값들을 계산하는 방법.
  11. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 20개의 가산 연산들, 16개의 곱셈 연산들, 및 최장 경로 길이의 3개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(902)를 포함하는, 변환 값들을 계산하는 방법.
  12. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(902)를 포함하며,
    Figure pct00185
    이도록,
    Figure pct00186

    Figure pct00187
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00188
    인, 변환 값들을 계산하는 방법.
  13. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 20개의 가산 연산들, 12개의 곱셈 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1002)를 포함하는, 변환 값들을 계산하는 방법.
  14. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1002)를 포함하며,
    Figure pct00189
    이도록,
    Figure pct00190
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00191
    인, 변환 값들을 계산하는 방법.
  15. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 16개의 가산 연산들, 9개의 곱셈 연산들, 및 최장 경로 길이의 5개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1402)를 포함하는, 변환 값들을 계산하는 방법.
  16. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1402)를 포함하며,
    Figure pct00192
    이도록,
    Figure pct00193
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00194

    Figure pct00195
    인, 변환 값들을 계산하는 방법.
  17. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 15개의 가산 연산들, 10개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 5개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1502)를 포함하는, 변환 값들을 계산하는 방법.
  18. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1502)를 포함하며,
    Figure pct00196
    이도록,
    Figure pct00197
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00198

    Figure pct00199
    인, 변환 값들을 계산하는 방법.
  19. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 15개의 가산 연산들, 11개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 5개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1602/1702)를 포함하는, 변환 값들을 계산하는 방법.
  20. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1602)를 포함하며,
    Figure pct00200
    이도록,
    Figure pct00201
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00202

    Figure pct00203
    인, 변환 값들을 계산하는 방법.
  21. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1702)를 포함하며,
    Figure pct00204
    이도록,
    Figure pct00205

    Figure pct00206
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00207

    Figure pct00208
    인, 변환 값들을 계산하는 방법.
  22. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 15개의 가산 연산들, 12개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 5개의 연산들에 의하여 인수분해되는 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1802)를 포함하는, 변환 값들을 계산하는 방법.
  23. 제1항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅳ(DCT-Ⅳ)(1802)를 포함하며,
    Figure pct00209

    Figure pct00210
    이도록,
    Figure pct00211
    의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00212

    Figure pct00213
    인, 변환 값들을 계산하는 방법.
  24. 제1항에 있어서,
    변환을 수행하기 이전에 상기 입력 값들에 대하여 윈도잉(windowing) 연산을 수행하는 단계를 더 포함하며,
    상기 윈도잉 연산은 비대칭 윈도우 함수를 구현하는, 변환 값들을 계산하는 방법.
  25. 제1항에 있어서,
    상기 MDCT는 5-포인트 이산 코사인 변환 타입 Ⅱ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현하는, 변환 값들을 계산하는 방법.
  26. 제1항에 있어서,
    상기 MDCT는 5-포인트 이산 코사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현하는, 변환 값들을 계산하는 방법.
  27. 제1항에 있어서,
    상기 MDCT는 5-포인트 이산 코사인 변환 타입 Ⅱ 및 5-포인트 이산 코사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현하는, 변환 값들을 계산하는 방법.
  28. 제1항에 있어서,
    상기 MDCT는 5-포인트 이산 사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현하는, 변환 값들을 계산하는 방법.
  29. 스케일링가능(scalable) 스피치 및 오디오 인코더 디바이스로서,
    오디오 신호를 나타내는 시간-도메인 입력 값들을 획득하며; 그리고
    다수의 5-포인트 변환들로 반복하여 데시메이팅되는 변형 이산 코사인 변환(MDCT)을 사용하여 상기 입력 값들을 스펙트럼 계수들로 변환하도록
    구성되는 이산 코사인 변환(DCT)-타입 변환 계층 모듈을 포함하는, 스케일링가능 스피치 및 오디오 인코더 디바이스.
  30. 제29항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 4개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)을 포함하는, 스케일링가능 스피치 및 오디오 인코더 디바이스.
  31. 제29항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)를 포함하며,
    Figure pct00214
    이도록,
    Figure pct00215
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00216
    인, 스케일링가능 스피치 및 오디오 인코더 디바이스.
  32. 제29항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 12개의 가산 연산들, 5개의 곱셈 연산들, 1개의 시프트 연산, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 변환(802)을 포함하는, 스케일링가능 스피치 및 오디오 인코더 디바이스.
  33. 스케일링가능 스피치 및 오디오 인코더 디바이스로서,
    오디오 신호를 나타내는 시간-도메인 입력 값들을 획득하기 위한 수단; 및
    다수의 5-포인트 변환들로 반복하여 데시메이팅되는 변형 이산 코사인 변환(MDCT)을 사용하여 상기 입력 값들을 스펙트럼 계수들로 변환하기 위한 수단
    을 포함하는, 스케일링가능 스피치 및 오디오 인코더 디바이스.
  34. 제33항에 있어서,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)를 포함하며,
    Figure pct00217
    이도록,
    Figure pct00218
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00219
    인, 스케일링가능 스피치 및 오디오 인코더 디바이스.
  35. 스케일링가능 스피치 및 오디오 인코딩 회로를 포함하는 프로세서로서,
    상기 스피치 및 오디오 인코딩 회로는,
    오디오 신호를 나타내는 시간-도메인 입력 값들을 획득하며; 그리고
    다수의 5-포인트 변환들로 반복하여 데시메이팅되는 변형 이산 코사인 변환(MDCT)을 사용하여 상기 입력 값들을 스펙트럼 계수들로 변환하도록 구성되며,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)를 포함하고,
    Figure pct00220
    이도록,
    Figure pct00221
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00222
    인, 프로세서.
  36. 스케일링가능 스피치 및 오디오 인코딩을 위해 동작하는 명령들을 포함하는 기계-판독가능 매체로서,
    상기 명령들은, 하나 이상의 프로세서에 의하여 실행될 때 상기 프로세서들로 하여금:
    오디오 신호를 나타내는 시간-도메인 입력 값들을 획득하며; 그리고
    다수의 5-포인트 변환들로 반복하여 데시메이팅되는 변형 이산 코사인 변환(MDCT)을 사용하여 상기 입력 값들을 스펙트럼 계수들로 변환하게 하며,
    상기 다수의 5-포인트 변환들 중 적어도 하나는 출력 벡터 [XO, Xl, X2, X3, X4]를 생성하기 위하여 입력 벡터 [x0, xl, x2, x3, x4]를 취하는 적어도 하나의 이산 코사인 변환 타입 Ⅱ(DCT-Ⅱ)(802)를 포함하고,
    Figure pct00223
    ,이도록,
    Figure pct00224
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00225
    인, 기계-판독가능 매체.
  37. 역변환 값들을 계산하는 방법으로서,
    오디오 신호를 나타내는 스펙트럼 계수 입력 값들을 수신하는 단계; 및
    다수의 5-포인트 역변환들로 반복하여 데시메이팅되는 역 변형 이산 코사인 변환(IMDCT)을 사용하여 상기 스펙트럼 계수 입력 값들을 시간-도메인 출력 값들로 변환하는 단계
    를 포함하는, 역변환 값들을 계산하는 방법.
  38. 제37항에 있어서,
    상기 다수의 5-포인트 역변환들 중 적어도 하나는 12개의 가산 연산들, 4개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 역 이산 코사인 변환 타입 변환Ⅱ(DCT-Ⅱ)(3202)을 포함하는, 역변환 값들을 계산하는 방법.
  39. 제37항에 있어서,
    상기 다수의 5-포인트 역변환들 중 적어도 하나는 출력 벡터 [x0, xl, x2, x3, x4]를 생성하기 위하여 입력 벡터 [XO, Xl, X2, X3, X4]를 취하는 적어도 하나의 역 이산 코사인 변환 타입 Ⅱ(IDCT-Ⅱ)(3202)를 포함하며,
    Figure pct00226
    이도록,
    Figure pct00227
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00228
    인, 역변환 값들을 계산하는 방법.
  40. 제37항에 있어서,
    상기 역변환을 수행한 이후에 상기 입력 값들에 대하여 윈도잉 연산을 수행하는 단계를 더 포함하며,
    상기 윈도잉 연산은 비대칭 윈도우 함수를 구현하는, 역변환 값들을 계산하는 방법.
  41. 제37항에 있어서,
    상기 IMDCT는 5-포인트 역 이산 코사인 변환 타입 Ⅱ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현하는, 역변환 값들을 계산하는 방법.
  42. 제37항에 있어서,
    상기 IMDCT는 5-포인트 역 이산 코사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현하는, 역변환 값들을 계산하는 방법.
  43. 제37항에 있어서,
    상기 IMDCT는 5-포인트 역 이산 코사인 변환 타입 Ⅱ 및 5-포인트 역 이산 코사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현하는, 역변환 값들을 계산하는 방법.
  44. 제37항에 있어서,
    상기 IMDCT는 5-포인트 역 이산 사인 변환 타입 Ⅳ를 사용하여 640, 320, 160, 80, 40-포인트 변환 중 적어도 하나를 구현하는, 역변환 값들을 계산하는 방법.
  45. 스케일링가능 스피치 및 오디오 디코더 디바이스로서,
    오디오 신호를 나타내는 스펙트럼 계수 입력 값들을 수신하며; 그리고
    다수의 5-포인트 역변환들로 반복하여 데시메이팅되는 역 변형 이산 코사인 변환(IMDCT)을 사용하여 상기 스펙트럼 계수 입력 값들을 시간-도메인 출력 값들로 변환하도록
    구성되는, 역 이산 코사인 변환(IDCT)-타입 변환 계층 모듈을 포함하는, 스케일링가능 스피치 및 오디오 디코더 디바이스.
  46. 제45항에 있어서,
    상기 다수의 5-포인트 역변환들 중 적어도 하나는 12개의 가산 연산들, 4개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 역 이산 코사인 변환 타입 Ⅱ(IDCT-Ⅱ)(3202)을 포함하는, 스케일링가능 스피치 및 오디오 디코더 디바이스.
  47. 제45항에 있어서,
    상기 다수의 5-포인트 역변환들 중 적어도 하나는 출력 벡터 [x0, xl, x2, x3, x4]를 생성하기 위하여 입력 벡터 [XO, Xl, X2, X3, X4]를 취하는 적어도 하나의 역 이산 코사인 변환 타입 Ⅱ(IDCT-Ⅱ)(3202)를 포함하며,
    Figure pct00229
    이도록,
    Figure pct00230
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00231
    인, 스케일링가능 스피치 및 오디오 디코더 디바이스.
  48. 스케일링가능 스피치 및 오디오 디코더 디바이스로서,
    오디오 신호를 나타내는 스펙트럼 계수 입력 값들을 수신하기 위한 수단; 및
    다수의 5-포인트 역변환들로 반복하여 데시메이팅되는 역 변형 이산 코사인 변환(IMDCT)을 사용하여 상기 스펙트럼 계수 입력 값들을 시간-도메인 출력 값들로 변환하기 위한 수단
    을 포함하는, 스케일링가능 스피치 및 오디오 디코더 디바이스.
  49. 제48항에 있어서,
    상기 다수의 5-포인트 역변환들 중 적어도 하나는 12개의 가산 연산들, 4개의 곱셈 연산들, 2개의 시프트 연산들, 및 최장 경로 길이의 4개의 연산들에 의하여 인수분해되는 적어도 하나의 역 이산 코사인 변환 타입 변환Ⅱ(IDCT-Ⅱ)(3202)을 포함하는, 스케일링가능 스피치 및 오디오 디코더 디바이스.
  50. 제48항에 있어서,
    상기 다수의 5-포인트 역변환들 중 적어도 하나는 출력 벡터 [x0, xl, x2, x3, x4]를 생성하기 위하여 입력 벡터 [XO, Xl, X2, X3, X4]를 취하는 적어도 하나의 역 이산 코사인 변환 타입 Ⅱ(IDCT-Ⅱ)(3202)를 포함하며,
    Figure pct00232
    이도록,
    Figure pct00233
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00234
    인, 스케일링가능 스피치 및 오디오 디코더 디바이스.
  51. 스케일링가능 스피치 및 오디오 디코딩 회로를 포함하는 프로세서로서,
    상기 스케일링가능 스피치 및 오디오 디코딩 회로는,
    오디오 신호를 나타내는 스펙트럼 계수 입력 값들을 수신하며; 그리고
    다수의 5-포인트 역변환들로 반복하여 데시메이팅되는 역 변형 이산 코사인 변환(IMDCT)을 사용하여 상기 스펙트럼 계수 입력 값들을 시간-도메인 출력 값들로 변환하도록 구성되고,
    상기 다수의 5-포인트 역변환들 중 적어도 하나는 출력 벡터 [x0, xl, x2, x3, x4]를 생성하기 위하여 입력 벡터 [XO, Xl, X2, X3, X4]를 취하는 적어도 하나의 역 이산 코사인 변환 타입 Ⅱ(IDCT-Ⅱ)(3202)를 포함하며,
    Figure pct00235
    이도록,
    Figure pct00236
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00237
    인, 프로세서.
  52. 스케일링가능 스피치 및 오디오 디코딩을 위해 동작하는 명령들을 포함하는 기계-판독가능 매체로서,
    상기 명령들은, 하나 이상의 프로세서에 의하여 실행될 때 상기 프로세서들로 하여금:
    오디오 신호를 나타내는 스펙트럼 계수 입력 값들을 수신하며; 그리고
    다수의 5-포인트 역변환들로 반복하여 데시메이팅되는 역 변형 이산 코사인 변환(IMDCT)을 사용하여 상기 스펙트럼 계수 입력 값들을 시간-도메인 출력 값들로 변환하게 하고,
    상기 다수의 5-포인트 역변환들 중 적어도 하나는 출력 벡터 [x0, xl, x2, x3, x4]를 생성하기 위하여 입력 벡터 [XO, Xl, X2, X3, X4]를 취하는 적어도 하나의 역 이산 코사인 변환 타입 Ⅱ(IDCT-Ⅱ)(3202)를 포함하며,
    Figure pct00238
    이도록,
    Figure pct00239

    Figure pct00240
    의 적어도 다수의 중간 결과들에 의하여 특징지어지고, 여기서,
    Figure pct00241
    인, 기계-판독가능 매체.
KR1020107015493A 2007-12-13 2008-12-13 5-포인트 dct-ⅱ, dct-ⅳ, 및 dst-ⅳ 및 아키텍쳐들의 계산을 위한 고속 알고리즘들 KR101226094B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US1357907P 2007-12-13 2007-12-13
US61/013,579 2007-12-13
US1610607P 2007-12-21 2007-12-21
US61/016,106 2007-12-21
US3919408P 2008-03-25 2008-03-25
US61/039,194 2008-03-25
US12/334,238 2008-12-12
US12/334,238 US8631060B2 (en) 2007-12-13 2008-12-12 Fast algorithms for computation of 5-point DCT-II, DCT-IV, and DST-IV, and architectures
PCT/US2008/086739 WO2009076666A1 (en) 2007-12-13 2008-12-13 Fast algorithms for computation of 5-point dct-ii, dct-iv, and dst-iv, and architectures

Publications (2)

Publication Number Publication Date
KR20100103580A true KR20100103580A (ko) 2010-09-27
KR101226094B1 KR101226094B1 (ko) 2013-01-24

Family

ID=40754681

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107015493A KR101226094B1 (ko) 2007-12-13 2008-12-13 5-포인트 dct-ⅱ, dct-ⅳ, 및 dst-ⅳ 및 아키텍쳐들의 계산을 위한 고속 알고리즘들

Country Status (12)

Country Link
US (1) US8631060B2 (ko)
EP (1) EP2225755A1 (ko)
JP (1) JP5269908B2 (ko)
KR (1) KR101226094B1 (ko)
CN (1) CN101896966B (ko)
AU (1) AU2008334935A1 (ko)
BR (1) BRPI0820703A2 (ko)
CA (1) CA2706283A1 (ko)
IL (1) IL205835A0 (ko)
MX (1) MX2010006471A (ko)
TW (1) TWI405185B (ko)
WO (1) WO2009076666A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100172409A1 (en) * 2009-01-06 2010-07-08 Qualcom Incorporated Low-complexity transforms for data compression and decompression
US9110849B2 (en) * 2009-04-15 2015-08-18 Qualcomm Incorporated Computing even-sized discrete cosine transforms
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
US9069713B2 (en) * 2009-06-05 2015-06-30 Qualcomm Incorporated 4X4 transform for media coding
US9075757B2 (en) * 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9118898B2 (en) 2009-06-24 2015-08-25 Qualcomm Incorporated 8-point transform for media data coding
US9081733B2 (en) * 2009-06-24 2015-07-14 Qualcomm Incorporated 16-point transform for media data coding
US8451904B2 (en) 2009-06-24 2013-05-28 Qualcomm Incorporated 8-point transform for media data coding
MX2012004572A (es) 2009-10-20 2012-06-08 Fraunhofer Ges Forschung Codificador de audio, decodificador de audio, metodo para codificar informacion de audio, metodo para decodificar informacion de audio y programa de computacion que usa una regla dependiente de la region para un mapeado mediante codificacion aritmetica.
CN102104776A (zh) * 2009-12-21 2011-06-22 康佳集团股份有限公司 一种网络电视平台mpeg音频多相合成滤波方法
BR112012017257A2 (pt) 2010-01-12 2017-10-03 Fraunhofer Ges Zur Foerderung Der Angewandten Ten Forschung E V "codificador de áudio, codificados de áudio, método de codificação de uma informação de audio método de codificação de uma informação de áudio de programa de computador que utiliza uma modificação de uma representção numérica de um valor de contexto prévio numérico"
CN101894557B (zh) * 2010-06-12 2011-12-07 北京航空航天大学 一种用于aac编码的窗型判别方法
US8417045B2 (en) 2010-07-29 2013-04-09 Infoprint Solutions Company Llc Mechanism for processing order-16 discrete cosine transforms
US9824066B2 (en) * 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
KR101362696B1 (ko) * 2011-10-19 2014-02-17 전북대학교산학협력단 하이브리드 아키텍쳐가 적용된 신호 변환 장치, 신호 변환 방법 및 기록매체
CN102568485B (zh) * 2011-12-30 2013-12-11 展讯通信(上海)有限公司 音频信号的频时转换方法及装置
TWI443527B (zh) * 2012-01-02 2014-07-01 Univ Nat Cheng Kung 遞迴式第四型離散餘弦之系統
CN103257953B (zh) * 2013-05-06 2016-04-13 福州瑞芯微电子股份有限公司 Imdct36运算模块及方法
WO2015172337A1 (en) * 2014-05-14 2015-11-19 Mediatek Singapore Pte. Ltd. Alternative transforms for data compression
CN107005695B (zh) 2014-11-28 2020-01-07 联发科技股份有限公司 用于视频编码的替代变换的方法及装置
EP4300968A1 (en) * 2016-05-13 2024-01-03 Sony Group Corporation Image processing device and method
US10536720B2 (en) * 2018-05-07 2020-01-14 Tencent America LLC Method, apparatus and medium for decoding or encoding

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL174314B1 (pl) 1993-06-30 1998-07-31 Sony Corp Sposób i urządzenie do dekodowania sygnałów cyfrowych
TW321810B (ko) * 1995-10-26 1997-12-01 Sony Co Ltd
US6496795B1 (en) 1999-05-05 2002-12-17 Microsoft Corporation Modulated complex lapped transform for integrated signal enhancement and coding
US6513004B1 (en) 1999-11-24 2003-01-28 Matsushita Electric Industrial Co., Ltd. Optimized local feature extraction for automatic speech recognition
TW507194B (en) 2000-05-24 2002-10-21 Nat Science Council Variable-rate residual-transform vocoders using auditory perception approximation
DE60132853D1 (de) 2000-07-07 2008-04-03 Nokia Siemens Networks Oy Verfahren und Vorrichtung für die perzeptuelle Tonkodierung von einem mehrkanal Tonsignal mit Verwendung der kaskadierten diskreten Cosinustransformation oder der modifizierten diskreten Cosinustransformation
US20020040299A1 (en) 2000-07-31 2002-04-04 Kenichi Makino Apparatus and method for performing orthogonal transform, apparatus and method for performing inverse orthogonal transform, apparatus and method for performing transform encoding, and apparatus and method for encoding data
US7216140B1 (en) * 2000-09-30 2007-05-08 Intel Corporation Efficient implementation of n-point DCT, n-point IDCT, SA-DCT and SA-IDCT algorithms
US6636830B1 (en) 2000-11-22 2003-10-21 Vialta Inc. System and method for noise reduction using bi-orthogonal modified discrete cosine transform
RU2216791C1 (ru) 2002-04-29 2003-11-20 Военный университет связи Способ сжатия и восстановления речевых сообщений
KR100462611B1 (ko) 2002-06-27 2004-12-20 삼성전자주식회사 하모닉 성분을 이용한 오디오 코딩방법 및 장치
CN100570597C (zh) 2003-09-29 2009-12-16 新加坡科技研究局 将数字信号从时间域变换到频率域及其反向变换的方法
EP1711938A1 (en) 2004-01-28 2006-10-18 Koninklijke Philips Electronics N.V. Audio signal decoding using complex-valued data
TWI321810B (en) 2005-01-07 2010-03-11 Hon Hai Prec Ind Co Ltd Plasma enhanced sputtering method and apparatus
US8233727B2 (en) * 2007-10-19 2012-07-31 Research In Motion Limited Arbitrary ratio image resizing in the DCT domain

Also Published As

Publication number Publication date
US8631060B2 (en) 2014-01-14
TWI405185B (zh) 2013-08-11
CN101896966B (zh) 2012-11-21
CN101896966A (zh) 2010-11-24
TW200947419A (en) 2009-11-16
EP2225755A1 (en) 2010-09-08
WO2009076666A1 (en) 2009-06-18
MX2010006471A (es) 2010-09-28
US20090157785A1 (en) 2009-06-18
IL205835A0 (en) 2010-11-30
JP2011507037A (ja) 2011-03-03
BRPI0820703A2 (pt) 2015-06-16
KR101226094B1 (ko) 2013-01-24
AU2008334935A1 (en) 2009-06-18
CA2706283A1 (en) 2009-06-18
JP5269908B2 (ja) 2013-08-21

Similar Documents

Publication Publication Date Title
KR101226094B1 (ko) 5-포인트 dct-ⅱ, dct-ⅳ, 및 dst-ⅳ 및 아키텍쳐들의 계산을 위한 고속 알고리즘들
KR101329514B1 (ko) 효율적인 방식으로 변환 값들을 계산하기 위한 방법 및 장치
KR101286329B1 (ko) 저 복잡도의 스펙트럼 대역 복제 (sbr) 필터뱅크
US8195730B2 (en) Apparatus and method for conversion into a transformed representation or for inverse conversion of the transformed representation
KR100778349B1 (ko) 이산값의 시퀀스를 갖는 신호 처리 장치 및 방법
JP3814611B2 (ja) 時間離散オーディオサンプル値を処理する方法と装置
BRPI0415152B1 (pt) dispositivo e método para o processamento de pelo menos dois valores de entrada
WO2005031597A1 (en) Process and device for determining a transforming element for a given transformation function, method and device for transforming a digital signal from the time domain into the frequency domain and vice versa and computer readable medium
RU2464540C2 (ru) Быстрые алгоритмы для вычисления 5-точечного dct-ii, dct-iv и dst-iv, и архитектуры
Krishnan Fast integer MDCT for MPEG/audio coding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 7