KR20090007279A - 공통 인수를 갖는 변환 - Google Patents

공통 인수를 갖는 변환 Download PDF

Info

Publication number
KR20090007279A
KR20090007279A KR1020087019586A KR20087019586A KR20090007279A KR 20090007279 A KR20090007279 A KR 20090007279A KR 1020087019586 A KR1020087019586 A KR 1020087019586A KR 20087019586 A KR20087019586 A KR 20087019586A KR 20090007279 A KR20090007279 A KR 20090007279A
Authority
KR
South Korea
Prior art keywords
constant
group
multiplication
binomial
data value
Prior art date
Application number
KR1020087019586A
Other languages
English (en)
Other versions
KR101028676B1 (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 KR20090007279A publication Critical patent/KR20090007279A/ko
Application granted granted Critical
Publication of KR101028676B1 publication Critical patent/KR101028676B1/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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/4836Computations with rational numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

데이터에 대한 변환들을 효율적으로 수행하기 위한 기술들이 설명된다. 하나의 설계에서, 장치는 제 1 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 1 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 1 그룹과 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행한다. 그 장치는 또한 제 2 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 2 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 2 그룹과 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행한다. 각각의 유리 이항 상수는 이항 분모를 갖는 유리수이다. 적어도 하나의 데이터 값의 제 1 그룹 및 제 2 그룹은 상이한 사이즈를 갖는다. 제 1 및 공통 인수는 승산을 위한 논리 및 산술 연산의 수, 결과의 정밀도 등에 기초하여 선택될 수도 있다.
Figure P1020087019586
공통 인수, 근사화, 유리 이항 상수, 승산, 무리 상수, 논리 및 산술 연산, 정밀도

Description

공통 인수를 갖는 변환{TRANSFORMS WITH COMMON FACTORS}
I. 35 U.S.C. §119 하의 우선권 주장
본 출원은 2006년 1월 11일자로 출원되고, 본 양수인에게 양도되고 여기에 참조로 포함된, 그 명칭이 "Efficient Multiplication-Free Implementations of Scaled Discrete Cosine Transform (DCT) and Inverse Discrete Cosine Transform (IDCT)" 인 미국 가출원 번호 제 60/758,464 호에 대한 우선권을 주장한다.
배경
II . 분야
본 개시는 일반적으로 프로세싱에 관한 것으로서, 특히 데이터에 대한 변환들을 수행하는 기술에 관한 것이다.
III . 배경
변환들은 통상 데이터를 하나의 도메인에서 또 다른 도메인으로 변환하는데 사용된다. 예를 들어, 이산 코사인 변환 (discrete cosine transform: DCT) 은 통상 데이터를 공간 도메인에서 주파수 도메인으로 변환하는데 사용되고, 역이산 코사인 변환 (IDCT) 은 통상 데이터를 주파수 도메인에서 공간 도메인으로 변환하는데 사용된다. DCT 는 화소 (픽셀) 의 블록들을 공간적으로 역상관시키기 위해 이미지/비디오 압축에 널리 사용된다. 결과로서 생성된 변환 계수들은 통상 서로에 훨씬 덜 종속적이며, 이것은 이들 계수들을 양자화 및 인코딩에 더욱 적합하게 만든다. DCT 는 또한 에너지 압축 특성을 나타내며, 이것은 일 블록의 픽셀들의 대부분의 에너지를 단지 소수의 (통상 하위 차수) 변환 계수들로 맵핑하는 능력이다. 이러한 에너지 압축 특성은 인코딩 알고리즘의 설계를 단순화할 수 있다.
DCT 및 IDCT 등의 변환은 다량의 데이터에 대해 수행될 수도 있다. 따라서, 가능한 한 효율적으로 변환을 수행하는 것이 바람직하다. 또한, 비용과 복잡도를 줄이기 위해 단순한 하드웨어를 사용하여 변환을 위한 계산을 수행하는 것이 바람직하다.
따라서, 데이터에 대한 변환을 효율적으로 수행하기 위한 기술들이 본 기술분야에서 필요하다.
요약
데이터에 대한 변환을 효율적으로 수행하는 기술들이 이하에 기술된다. 일 양태에 따르면, 장치는 제 1 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수 (irrational constant) 의 제 1 그룹을 근사화하는 적어도 하나의 유리 이항 상수 (rational dyadic constant) 의 제 1 그룹과 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행한다. 그 장치는 또한 제 2 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 2 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 2 그룹과 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행한다. 각각의 유리 이항 상수는 이항 분모를 갖는 유리수이다. 적어도 하나의 데이터 값의 제 1 및 제 2 그룹은 상이한 사이즈를 갖는다. 예를 들어, 제 1 그룹은 2 개의 데이터 값을 포함할 수도 있고, 제 2 그룹은 4 개의 데이터 값을 포함할 수도 있다.
또 다른 양태에 따르면, 장치는 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수를 근사화하는 적어도 하나의 유리 이항 상수와 적어도 하나의 데이터 값의 승산을 수행한다. 공통 인수는 적어도 하나의 유리 이항 상수와의 적어도 하나의 데이터 값의 승산을 위한 논리 및 산술 연산의 수에 기초하여 선택된다. 논리 및 산술 연산은 시프트, 감산, 및 가산 연산들로 이루어질 수도 있다. 공통 인수는 또한 결과의 정밀도에 기초하여 선택될 수도 있다.
본 개시의 다양한 양태 및 특징이 이하에 더욱 상세히 설명된다.
도면의 간단한 설명
도 1은 8-포인트 IDCT 의 흐름도를 나타낸다.
도 2는 8-포인트 DCT 의 흐름도를 나타낸다.
도 3은 공통 인수를 갖는 8-포인트 IDCT 의 흐름도를 나타낸다.
도 4는 공통 인수를 갖는 8-포인트 DCT 의 흐름도를 나타낸다.
도 5는 상이한 유리 이항 상수 값들과의 승산을 위한 연산의 수를 저장하는 룩업 테이블을 나타낸다.
도 6은 2-차원 (2D) IDCT 의 블록도를 나타낸다.
도 7은 이미지/비디오 인코딩 및 디코딩 시스템의 블록도를 나타낸다.
도 8은 인코딩 시스템의 블록도를 나타낸다.
도 9는 디코딩 시스템의 블록도를 나타낸다.
상세한 설명
여기에 설명된 기술들은 DCT, IDCT, 이산 푸리에 변환 (DFT), 역 DFT (IDFT), 변조 랩핑 변환 (MLT), 역 MLT, 변조 복소 랩핑 변환 (MCLT), 역 MCLT 등과 같은 다양한 형태의 변환에 사용될 수도 있다. 그 기술들은 또한 이미지, 비디오 및 오디오 프로세싱, 통신, 계산, 데이터 네트워킹, 데이터 저장, 그래픽 등과 같은 다양한 애플리케이션에 사용될 수도 있다. 일반적으로, 그 기술은 변환을 사용하는 임의의 애플리케이션에 대해 사용될 수도 있다. 명확성을 위해, 그 기술은 이미지 및 비디오 프로세싱에 통상 사용되는 DCT 및 IDCT 에 대해 이하에 설명된다.
타입 II 의 1 차원 (1D) N-포인트 DCT 및 1D N-포인트 IDCT 가 다음과 같이 정의될 수도 있다:
Figure 112008057159212-PCT00001
여기서,
Figure 112008057159212-PCT00002
x[n] 은 1D 공간 도메인 함수, 및
X[k] 는 1D 주파수 도메인 함수.
식 (1) 의 1D DCT 는 N 개의 공간 도메인 값 x[0] 내지 x[N-1] 에 작용하여 N 개의 변환 계수 X[0] 내지 X[N-1] 을 생성한다. 식 (2) 의 1D IDCT 는 N 개의 변환 계수들에 작용하여 N 개의 공간 도메인 값들을 생성한다. 타입 II DCT 는 하나의 타입의 변환이고 통상 이미지/비디오 압축을 위한 제안된 수 개의 에너지 압축 변환 중 가장 효율적인 변환 중 하나인 것으로 생각된다.
1D DCT 는 이하에 기술된 바와 같이 2D DCT 에 사용될 수도 있다. 유사하게 1D IDCT 는 2D IDCT 에 사용될 수도 있다. 2D DCT/IDCT 를 1D DCT들/IDCT들의 캐스케이드로 분해함으로써, 2D DCT/IDCT 의 효율은 1D DCT/IDCT 의 효율에 종속한다. 일반적으로, 1D DCT 및 1D IDCT 는 임의의 벡터 사이즈로 수행될 수도 있고, 2D DCT 및 2D IDCT 는 임의의 블록 사이즈로 수행될 수도 있다. 그러나, 8×8 DCT 및 8×8 IDCT 가 이미지 및 비디오 프로세싱에 통상 사용되고, 여기서 N 은 8 이다. 예를 들어, 8×8 DCT 및 8×8 IDCT 는 JPEG, MPEG-1, MPEG-2, MPEG-4(P.2), H.261, H.263 등과 같은 다양한 이미지 및 비디오 코딩 표준에서의 표준 빌딩 블록으로서 사용된다.
1D DCT 및 1D IDCT 는 각각 식 (1) 및 (2) 에서 나타낸 그들의 원래의 형태로 구현될 수도 있다. 그러나, 계산상의 복잡도의 실질적인 감소는 가능한 한 소수의 승산 및 가산을 초래하는 인수분해를 발견함으로써 실현될 수도 있다. 변환을 위한 인수분해는 그 변환을 위해 수행될 특정의 연산을 나타내는 흐름도에 의해 표현될 수도 있다.
도 1은 8-포인트 IDCT 의 예시적인 인수분해의 흐름도 (100) 를 나타낸다. 흐름도 (100) 에서, 각각의 가산은 기호 "
Figure 112008057159212-PCT00003
" 로 표현되고, 각각의 승산은 박스로서 표현된다. 각각의 가산은 2개의 입력값들을 합산 또는 감산하여 출력값을 제공한다. 각각의 승산은 입력값을 박스 내에 나타낸 변환 상수로 곱하여 출력값을 제공한다. 도 1의 인수분해는 다음의 상수 인수들을 갖는 6 개의 승산을 갖는다:
Figure 112008057159212-PCT00004
흐름도 (100) 는 8 개의 스케일링된 변환 계수들 A0·X[0] 내지 A7·X[7] 을 수신하고, 이들 계수에 대해 8-포인트 IDCT 를 수행하고, 8 개의 출력 샘플들 x[0] 내지 x[7] 을 생성한다. A0 내지 A7 은 스케일 인수들이고 아래에 주어진다:
Figure 112008057159212-PCT00005
흐름도 (100) 는 다수의 버터플라이 연산을 포함한다. 버터플라이 연산은 2 개의 입력값들을 수신하고 2 개의 출력값들을 생성하며, 여기서 하나의 출력 값은 2 개의 입력값들의 합이고, 다른 출력값은 2 개의 입력값들의 차이다. 예를 들어, 입력값들 A0·X[0] 및 A4·X[4] 에 대한 버터플라이 연산은 상부 브랜치에 대해 출력값 A0·X[0] + A4·X[4] 를 생성하고, 하부 브랜치에 대해 출력값 A0·X[0] - A4·X[4] 를 발생시킨다.
도 2는 8-포인트 DCT 의 예시적인 인수분해의 흐름도 (200) 를 나타낸다. 흐름도 (200) 는 8 개의 입력 샘플들 x[0] 내지 x[7] 을 수신하고, 이들 입력 샘플들에 대해 8-포인트 DCT 를 수행하고, 8 개의 스케일링된 변환 계수들 8A0·X[0] 내지 8A7·X[7] 을 생성한다. 스케일 인수들 A0 내지 A7 은 위에 주어져 있다. 도 2의 인수분해는 상수 인수들 1/Cπ/4, 2C3 π/8, 및 2S3 π/8 을 갖는 6 개의 승산을 갖는다.
도 1 및 도 2 의 IDCT 및 DCT 에 대한 흐름도들은 유사하고 (1/2 에서 차이를 갖는) 본질적으로 동일한 상수 인수들에 의한 승산을 포함한다. 그러한 유사성은 집적회로상의 DCT 및 IDCT 의 구현을 위해 바람직할 수도 있다. 특히, 그 유사성은 순방향 및 역방향 변환들 모두에 사용되는 버터플라이 및 변환 상수에 의한 승산을 구현하는 실리콘 또는 다이 영역의 절약을 가능하게 할 수도 있다.
도 1에 도시된 인수분해는 식 (2) 의 직접 계산에 요구되는 승산 및 가산의 수보다 실질적으로 더 적은 총 6 개의 승산과 28 개의 가산을 초래한다. 도 2 에 도시된 인수분해는 또한 식 (1) 의 직접 계산에 요구되는 승산 및 가산의 수보 다 실질적으로 더 적은 총 6 개의 승산과 28 개의 가산을 초래한다. 도 1 의 인수분해는 C3 π/8 및 S3 π/8 을 사용하여 2 개의 중간 변수들상에 평면 회전을 수행한다. 도 2 의 인수분해는 2C3 π/8 및 2S3 π/8 을 사용하여 2 개의 중간 변수들상에 평면 회전을 수행한다. 평면 회전은 중간 변수에 사인 및 코사인 양자, 예를 들어 도 1에서는 cos(3π/8) 및 sin(3π/8) 을 곱함으로써 달성된다. 평면 회전을 위한 승산들은 이하에 기술된 계산 기술들을 사용하여 효율적으로 수행될 수도 있다.
도 1 및 도 2는 각각 8-포인트 IDCT 및 8-포인트 DCT 의 예시적인 인수분해를 도시한다. 이들 인수분해는 스케일링된 IDCT 및 스케일링된 DCT 를 위한 것이고, 여기서 "스케일링된" 은 각각 공지된 스케일 인수 A0 내지 A7 을 사용한 변환 계수 X[0] 내지 X[7] 의 스케일링을 지칭한다. 다른 인수분해는 또한 쿨리-터키 DFT 알고리즘 등의 공지된 패스트 알고리즘으로의 맵핑을 사용함으로써 또는 시간에 있어서의 데시메이션 또는 주파수에 있어서의 데시메이션 등의 조직적 인수분해 절차를 적용함으로써 도출되었다. 일반적으로, 인수분해는 승산들의 수를 감소시키지만 그들을 제거하지는 않는다.
도 1 및 도 2 의 승산들은 8-포인트 DCT 및 IDCT 에 대해 π/8 의 배수들인 상이한 각도의 사인 및 코사인을 나타내는 무리 상수들을 갖는다. 무리 상수는 2 개의 정수들의 비가 아닌 상수이다. 무리 상수를 구비한 승산들은 각각의 무리 상수가 유리 이항 상수에 의해 근사화되는 경우 고정점 정수 산술로 효과적으로 수행될 수도 있다. 유리 이항 상수는 이항 분모를 갖는 유리 상수이며 c/2b 의 형태를 갖고, 여기서 b 및 c 는 정수이고 b > 0 이다. 유리 이항 상수를 갖는 정수 변수의 곱셈은 이하에 기술된 논리 및 산술 연산들을 사용하여 달성될 수도 있다. 논리 및 산술 연산의 수는 유리 이항 상수의 값 뿐아니라 계산이 수행되는 방식에 종속한다.
일 양태에서, 공통 인수들은 변환을 위한 연산의 총수를 감소시키고 및/또는 변환 결과의 정밀도를 개선하기 위해 사용된다. 공통 인수는 변환에서 하나 이상의 중간 변수들에 적용되는 상수이다. 중간 변수는 또한 데이터 값 등으로서 지칭될 수도 있다. 공통 인수는 하나 이상의 변환 상수들과 함께 흡수될 수도 있고 또한 하나 이상의 스케일 인수를 변경함으로써 설명될 수도 있다. 공통 인수는 하나 이상의 유리 이항 상수들에 의한 하나 이상의 (무리) 변환 상수들의 근사화를 개선할 수도 있고, 이것은 그 후 더욱 적은 총 연산수 및/또는 개선된 정밀도를 초래할 수도 있다.
일반적으로, 임의의 수의 공통 인수들이 변환을 위해 사용될 수도 있고, 각각의 공통 인수는 변환에서의 임의의 수의 중간 변수들에 적용될 수도 있다. 하나의 설계에서, 다수의 공통 인수들이 변환을 위해 사용되고 상이한 사이즈의 중간 변수들의 다수의 그룹들에 적용된다. 또 다른 설계에서, 다수의 공통 인수들은 동일한 사이즈의 중간 변수들의 다수의 그룹들에 적용된다.
도 3은 공통 인수들을 구비한 8-포인트 IDCT 의 흐름도 (300) 을 도시한다. 흐름도 (300) 는 도 1 의 흐름도 (100) 와 동일한 인수분해를 사용한다. 그 러나, 흐름도 (300) 는 중간 변수들의 2 개의 그룹들을 위해 2 개의 공통 인수들을 사용한다.
제 1 공통 인수 F1 는 2 개의 중간 변수들 X1 및 X2 의 제 1 그룹에 적용되고, 이것은 변환 계수들 X[2] 및 X[6] 에 기초하여 발생된다. 제 1 공통 인수 F1 는 X1 이 승산되고, 변환 상수 Cπ/4 와 함께 흡수되고, 스케일 인수들 A2 및 A6 를 변경함으로써 설명된다. 제 2 공통 인수 F2 는 4 개의 중간 변수들 X3 내지 X6 의 제 2 그룹에 적용되고, 이것은 변환 계수들 X[1], X[3], X[5] 및 X[7] 에 기초하여 발생된다. 제 2 공통 인수 F2 는 X4 이 승산되고, 변환 상수 Cπ/4, C3 π/8, 및 S3 π/8 과 함께 흡수되고, 스케일 인수들 A1, A3, A5 및 A7 를 변경함으로써 설명된다.
제 1 공통 인수 F1 는 유리 이항 상수 α1 으로 근사화될 수도 있고, 이것은 곱 X1·F1 의 근사화을 획득하기 위해 X1 으로 승산될 수도 있다. 스케일링된 변환 인수 F1·Cπ/4 는 유리 이항 상수 β1 으로 근사화될 수도 있고, 이것은 곱 X2·F1·Cπ/ 4 의 근사화를 획득하기 위해 X2 로 승산될 수도 있다. 변경된 스케일 인수 A2/F1 는 변환 계수 X[2] 에 적용될 수도 있다. 변경된 스케일 인수 A6/F1 는 변환 계수 X[6] 에 적용될 수도 있다.
제 2 공통 인수 F2 는 유리 이항 상수 α2 으로 근사화될 수도 있고, 이것은 곱 X4·F2 의 근사화을 획득하기 위해 X4 로 승산될 수도 있다. 스케일링된 변환 인수 F2·Cπ/4 는 유리 이항 상수 β2 로 근사화될 수도 있고, 이것은 곱 X3·F2·Cπ/ 4 의 근사화를 획득하기 위해 X3 로 승산될 수도 있다. 스케일링된 변환 인수 F2·C3 π/8 는 유리 이항 상수 γ2 로 근사화될 수도 있고, 스케일링된 변환 인수 F2·S3 π/8 는 유리 이항 상수 δ2 로 근사화될 수도 있다. 유리 이항 상수 γ2 는 곱 X5·F2·C3 π/ 8 의 근사화를 획득하기 위해 X5 로 승산될 수도 있고, 또한 곱 X6·F2·C3 π/ 8 의 근사화를 획득하기 위해 X6 로 승산될 수도 있다. 유리 이항 상수 δ2 는 곱 X5·F2·S3 π/ 8 의 근사화를 획득하기 위해 X5 로 승산될 수도 있고, 또한 곱 X6·F2·S3 π/ 8 의 근사화를 획득하기 위해 X6 로 승산될 수도 있다. 변경된 스케일 인수들 A1/F2, A3/F2, A5/F2, 및 A7/F2 는 각각 변환 계수들 X[1], X[3], X[5] 및 X[7] 에 적용될 수도 있다.
6 개의 유리 이항 상수들 α1, β1, α2, β2, γ2 및 δ2 는 다음과 같이 6 개의 상수들로 정의될 수도 있다:
Figure 112008057159212-PCT00006
도 4 는 공통 인수들을 구비한 8-포인트 DCT 의 흐름도 (400) 를 도시한다. 흐름도 (400) 는 도 2 의 흐름도 (200) 과 동일한 인수분해를 사용한다. 그 러나, 흐름도 (400) 는 중간 변수들의 2 개의 그룹들에 대한 2 개의 공통 인수들을 사용한다.
제 1 공통 인수 Fa 는 2 개의 중간 변수들 Xa 및 Xb 의 제 1 그룹에 적용되고, 이것은 변환 계수들 X[2] 및 X[6] 을 발생시키기 위해 사용된다. 제 1 공통 인수 Fa 는 Xa 이 승산되고, 변환 상수 1/Cπ/4 와 함께 흡수되고, 스케일 인수들 A2 및 A6 를 변경함으로써 설명된다. 제 2 공통 인수 Fb 는 4 개의 중간 변수들 X3 내지 X6 의 제 2 그룹에 적용되고, 이것은 변환 계수들 X[1], X[3], X[5] 및 X[7] 을 발생시키기 위해 사용된다. 제 2 공통 인수 Fb 는 Xd 이 승산되고, 변환 상수 1/Cπ/4, 2C3 π/8, 및 2S3 π/8 과 함께 흡수되고, 스케일 인수들 A1, A3, A5 및 A7 를 변경함으로써 설명된다.
제 1 공통 인수 Fa 는 유리 이항 상수 αa 로 근사화될 수도 있고, 이것은 곱 Xa·Fa 의 근사화을 획득하기 위해 Xa 로 승산될 수도 있다. 스케일링된 변환 인수 Fa/Cπ/4 는 유리 이항 상수 βa 로 근사화될 수도 있고, 이것은 곱 Xb·Fa/Cπ/ 4 의 근사화를 획득하기 위해 Xb 로 승산될 수도 있다. 변경된 스케일 인수 A2/Fa 및 A6/Fa 는 각각 변환 계수 X[2] 및 X[6] 에 적용될 수도 있다.
제 2 공통 인수 Fb 는 유리 이항 상수 αb 로 근사화될 수도 있고, 이것은 곱 Xd·Fb 의 근사화을 획득하기 위해 Xd 로 승산될 수도 있다. 스케일링된 변환 인수 Fb·Cπ/4 는 유리 이항 상수 βb 로 근사화될 수도 있고, 이것은 곱 Xc·Fb/Cπ/ 4 의 근사화를 획득하기 위해 Xc 로 승산될 수도 있다. 스케일링된 변환 인수 2Fb·C3 π/8 는 유리 이항 상수 γb 로 근사화될 수도 있고, 스케일링된 변환 인수 2Fb·S3 π/8 는 유리 이항 상수 δb 로 근사화될 수도 있다. 유리 이항 상수 γb 는 곱 2Xe·Fb·C3 π/ 8 의 근사화를 획득하기 위해 Xe 로 승산될 수도 있고, 또한 곱 2Xf·Fb·C3 π/ 8 의 근사화를 획득하기 위해 Xf 로 승산될 수도 있다. 유리 이항 상수 δb 는 곱 2Xe·Fb·S3 π/ 8 의 근사화를 획득하기 위해 Xe 로 승산될 수도 있고, 또한 곱 2Xf·Fb·S3 π/ 8 의 근사화를 획득하기 위해 Xf 로 승산될 수도 있다. 변경된 스케일 인수들 A1/Fb, A3/Fb, A5/Fb, 및 A7/Fb 는 각각 변환 계수들 X[1], X[3], X[5] 및 X[7] 에 적용될 수도 있다.
6 개의 유리 이항 상수들 αa, βa, αb, βb, γb 및 δb 는 다음과 같이 6 개의 상수들로 정의될 수도 있다:
Figure 112008057159212-PCT00007
도 3 및 도 4 는 각각 8-포인트 IDCT 및 8-포인트 DCT 의 특정의 인수분해에대한 공통 인수들의 예시적인 사용을 도시한다. 공통 인수들은 DCT 및 IDCT 의 다른 인수분해들 및 다른 타입의 변환들에 대해 사용될 수도 있다. 일반적으로, 공통 인수는 변환에서 적어도 하나의 중간 변수의 그룹에 적용될 수도 있다. 이러한 중간 변수(들) 의 그룹은 (예를 들어, 도 3 에 도신된 바와 같이) 입력값들의 그룹으로부터 발생될 수도 있고, (예를 들어, 도 4 에 도시된 바와 같이) 출력값들의 그룹을 발생시키는 데 사용될 수도 있다. 공통 인수는 입력값들 또는 출력값들에 적용된 스케일 인수들에 의해 설명될 수도 있다.
다수의 공통 인수들은 중간 변수들의 다수의 그룹들에 적용될 수도 있고, 각각의 그룹은 임의의 수의 중간 변수들을 포함할 수도 있다. 그룹들의 선택은 변환의 인수분해 등의 다양한 인수들에 종속할 수도 있고, 여기서 변환 상수들은 그 변환 내에 위치되는 등이다. 다수의 공통 인수들은 (도 3 및 도 4 에 도시되지 않은) 동일한 사이즈 또는 (도 3 및 도 4 에 도시된 바와 같은) 상이한 사이즈의 중간 변수들의 다수의 그룹들에 적용될 수도 있다. 예를 들어, 3 개의 공통 인수들이 도 3 에 도시된 인수분해에 사용될 수도 있으며, 제 1 공통 인수는 중간 변수들 X1 및 X2 에 적용되고, 제 2 공통 인수는 중간 변수들 X3, X4, X5 및 X6 에 적용되고, 제 3 공통 인수는 X[0] 및 X[4] 로부터 발생된 2 개의 중간 변수들에 적용된다.
유리 이항 상수 u 에 의한 중간 변수 x 의 승산은 고정점 정수 산술의 다양한 방식으로 수행될 수도 있다. 그 승산은 논리 연산들 (예를 들어, 좌측 시프트, 우측 시프트, 비트-인버젼 등), 산술 연산들 (예를 들어, 가산, 감산, 부호-인버젼 등), 및/또는 다른 연산들을 사용하여 수행될 수도 있다. u 에 의한 x 의 승산을 위해 필요한 논리 및 산술 연산들의 수는 계산이 수행되는 방식 및 유리 이항 상수 u 의 값에 종속한다. 상이한 계산 기술들은 u 에 의한 x 의 동일한 승산을 위해 상이한 수의 논리 및 산술 연산들을 요구할 수도 있다. 주어진 계산 기술은 u 의 상이한 값들에 의한 x 의 승산을 위한 상이한 수의 논리 및 산술 연산들을 필요로 할 수도 있다.
공통 인수는,
Figure 112008057159212-PCT00008
승산을 수행하기 위한 논리 및 산술 연산들의 수, 및
Figure 112008057159212-PCT00009
결과의 정밀도
등의 기준에 기초하여 중간 변수들의 그룹에 대해 선택될 수도 있다.
일반적으로, 유리 이항 상수에 의한 중간 변수의 승산을 위한 논리 및 산술 연산들의 수를 최소화하는 것이 바람직하다. 몇몇 하드웨어 플랫폼상에서, 산술 연산 (예를 들어, 가산) 은 논리 연산 보다 더 복잡할 수도 있으므로 산술 연산의 수를 감소시키는 것이 더욱 중요할 수도 있다. 극단적으로, 계산상의 복잡도는 논리 연산을 고려하지 않고 산술 연산의 수만에 기초하여 정량화될 수도 있다. 몇몇 다른 하드웨어 플랫폼상에서, 논리 연산 (예를 들어, 시프트) 은 더욱 고가이고, 논리 연산의 수를 감소시키는 것 (예를 들어, 시프트 연산의 수 및/또는 시프트된 비트의 총수를 감소시키는 것) 은 더욱 중요할 수도 있다. 일반적으로, 논리 및 산술 연산의 가중된 평균 수가 사용될 수도 있고, 여기서 가중치는 논리 및 산술 연산들의 상대적인 복잡도를 나타낼 수도 있다.
결과의 정밀도는 아래의 표 6 에 주어진 것들과 같은 다양한 메트릭에 기초 하여 정량화될 수도 있다. 일반적으로, 주어진 정밀도를 위해 논리 및 산술 연산의 수 (또는 계산상의 복잡도) 를 감소시키는 것이 바람직하다. 또한, 예를 들어 몇몇 추가적인 연산을 희생하여 더욱 높은 정밀도를 달성하기 위해, 정밀도를 위해 복잡도를 트레이드 오프하는 것이 바람직하다.
도 3 및 도 4 에 도시된 바와 같이, 각각의 공통 인수에 대해, 승산은 그 공통 인수에 의해 스케일링된 (적어도 하나의 변환 인수를 위해) 적어도 하나의 무리 상수의 그룹을 근사화하는 유리 이항 상수의 그룹에 의해 중간 변수들의 그룹에 대해 수행될 수도 있다. 고정점 정수 산술에서의 승산은 다양한 방식으로 수행될 수도 있다. 명확성을 위해, 시프트 및 가산 연산을 구비하고 중간 결과들을 사용하는 승산을 수행하는 계산 기술들이 이하에 기술된다. 이들 계산 기술들은 DCT 및 IDCT 를 위한 시프트 및 가산 연산들의 총수를 감소시킬 수도 있다.
고정점 정수 산술에서 무리 상수 μ 에 의한 정수 변수 x 의 승산은 다음과 같이 유리 이항 상수로 무리 상수를 근사화함으로써 달성될 수도 있다:
μ
Figure 112008057159212-PCT00010
c/2b 식(5)
여기서, μ 는 근사화될 무리 상수이고, c/2b 는 유리 이항 상수이고, b 및 c 는 정수이고, b > 0 이다.
정수값 x 및 유리 이항 상수 u = c/2b 가 주어질 때, 정수값 곱
y = (x·c)/2b 식(6)
은 중간 값들
y0, y1, y2,..., yt 식(7)
의 급수를 사용하여 근사화될 수도 있으며, 여기서 y0 = 0, y1 = x 및 모든 2≤i≤t 값에 대해, yi 는 다음과 같이 획득된다:
yi = ±yj±yk·2si, j,k < i 식(8)
여기서, yk·2si 는 |si| 개의 비트들만큼 중간값 yk 의 좌측 또는 우측 시프트 중 어느 하나 (상수 si 의 부호에 의존함) 를 암시한다.
식 (8) 에서, yi 는 yj+yk·2si, yj-yk·2si, 또는 -yj+yk·2si와 동일할 수도 있다. 그 급수 내의 각각의 중간값 yi 는 그 급수의 2 개의 이전의 중간값들 yj 및 yk 에 기초하여 유도될 수도 있고, 여기서, yj 또는 yk 중 어느 하나는 제로일 수도 있다. 각각의 중간값 yi 는 하나의 시프트 및/또는 하나의 가산을 사용하여 획득될 수도 있다. 만일 si 가 제로라면, 시프트는 필요하지 않다. 만일 yj = y0 = 0 이라면, 가산은 필요하지 않다. 승산을 위한 가산 및 시프트의 총수는 각각의 중간값에 사용된 표현 뿐아니라, t 인, 급수의 중간값들의 수에 의해 결정된다. 유리 이항 상수 u 에 의한 승산은 본질적으로 일련의 시프트 및 가산 연산으로 전개된다. 그 급수는 그 급수의 최종값이 원하는 정수값 곱, 또는
yt
Figure 112008057159212-PCT00011
y 식(9)
가 되도록 정의된다.
식 (5) 내지 식 (9) 에서 나타난 바와 같이, 무리 상수 μ 에 의한 정수 변수 x 의 승산은 시프트 및 가산 연산에 의해 그리고 중간 결과들 (또는 이전에 발생된 중간값들) 을 사용하여 발생되는 중간값들의 급수로 근사화되어 연산의 총수를 감소시킬 수도 있다.
고정점 정수 산술에서의 2 개의 무리 상수들 μ 및 η에 의한 정수 변수 x 의 승산은 다음과 같이 유리 이항 상수를 사용하여 무리 상수들을 근사화함으로써 달성될 수도 있다:
μ
Figure 112008057159212-PCT00012
c/2b 및 η
Figure 112008057159212-PCT00013
e/2d 식(10)
여기서 c/2b 및 e/2d 는 2 개의 유리 이항 상수이고, b, c, d 및 e 는 정수이고, b > 0 이며, d > 0 이다.
정수 변수 x 및 유리 이항 상수들 u = c/2b 및 ν = e/2d 가 주어질 때, 2 개의 정수값 곱들
y = (x·c)/2b 및 z = (x·e)/2d 식(11)
은 중간 값들
w0, w1, w2,..., wt 식(12)
의 급수를 사용하여 근사화될 수도 있으며, 여기서 w0 = 0, w1 = x 이고, 모든 2≤i≤t 값에 대해, wi 는 다음과 같이 획득된다:
wi = ±wj±wk·2si, j,k < i 식(13)
여기서, wk·2si 는 |si| 개의 비트들만큼 wk 의 좌측 또는 우측 시프트 중 어느 하나를 암시한다. 그 급수는 원하는 정수값 곱이 다음과 같이 스텝 m 및 n 에서 획득되도록 정의된다:
wm
Figure 112008057159212-PCT00014
y 및 wn
Figure 112008057159212-PCT00015
z 식(14)
여기서, m, n ≤ t 이고 m 또는 n 중 어느 하나는 t 이다.
식 (10) 내지 식 (14) 에 나타낸 바와 같이, 무리 상수 μ 및 η에 의한 정수 변수 x 의 승산은 시프트 및 가산 연산에 의해 그리고 중간 결과를 사용하여 발생되는 중간 값들의 공통 급수로 근사화되어 연산의 총수를 감소시킬 수도 있다.
상술된 계산에서, 제로의 가산 및 감산 및 제로 비트만큼의 시프트 등의 사소한 연산은 생략될 수도 있다. 다음의 단순화가 행해질 수도 있다:
yi = ±y0±yk·2si ⇒ yi = ±yk·2si 식(15)
yi = ±yj±yk·20 ⇒ yi = ±yj±yk 식(16)
식 (15) 에서, "⇒" 의 좌측에 대한 식은 (y0 에 의해 표시된) 제로의 가산 또는 감산을 포함하고 "⇒" 의 우측에 대한 식에 의해 나타낸 바와 같이 하나의 시프트를 사용하여 수행될 수도 있다. 식 (16) 에서, "⇒" 의 좌측에 대한 식은 (20 에 의해 표시된) 제로 비트만큼의 시프트를 포함하고 "⇒" 의 우측에 대한 식에 의해 나타낸 바와 같이 하나의 가산을 사용하여 수행될 수도 있다. 식 (15) 및 식 (16) 은 wi 의 계산에서 식 (13) 에 뿐만 아니라 yi 의 계산에서 식 (8) 에 적용될 수도 있다.
도 1 내지 도 4 에서의 승산은 상술된 계산 기술들을 사용하여 효율적으로 수행될 수도 있다. 도 1 에서, 고정점 정수 산술에서의 변환 상수 Cπ/4 에 의한 정수 변수 x 의 승산은 다음과 같이 유리 이항 상수로 상수 Cπ/ 4 를 근사화함으로써 달성될 수도 있다:
Figure 112008057159212-PCT00016
여기서, C8 π/4 는 Cπ/ 4 의 8-비트 근사화인 유리 이항 상수이다.
상수 C8 π/4 에 의한 정수 변수 x 의 승산은
y = (x·181)/256 식(18)
식 (18) 의 승산은 다음의 일련의 연산들을 사용하여 달성될 수도 있다:
Figure 112008057159212-PCT00017
"//" 의 우측의 이진값은 변수 x 로 승산된 중간 상수이다.
원하는 곱은 y4 또는 y4 = y 와 같다. 식 (18) 의 승산은 3 개의 중간 값들 y2, y3 및 y4 를 발생시키기 위해 3 개의 가산 및 3 개의 시프트를 사용하여 수행될 수도 있다.
도 1 에서, 고정점 정수 산술에서의 변환 상수들 C3 π/8 및 S3 π/8 에 의한 정수 변수 x 의 승산은 다음과 같이 유리 이항 상수들로 상수 C3 π/8 및 S3 π/ 8 를 근사화함으로써 달성될 수도 있다:
Figure 112008057159212-PCT00018
여기서, C7 3 π/8 은 C3 π/ 8 의 7-비트 근사화인 유리 이항 상수이고, S9 3 π/8 은 S3 π/ 8 의 9-비트 근사화인 유리 이항 상수이다.
상수 C7 3 π/8 및 S9 3 π/8 에 의한 정수 변수 x 의 승산은,
Figure 112008057159212-PCT00019
로서 표현될 수도 있다.
식 (22) 의 승산들은 다음의 일련의 연산들로써 달성될 수도 있다.
Figure 112008057159212-PCT00020
원하는 곱은 w6 및 w8 과 동일하고, 또는 w6 = y 및 w8 = z 이다. 식 (22) 의 2 개의 승산은 7 개의 중간 값들 w2 내지 w8 을 발생시키기 위해 5 개의 가산 및 5 개의 시프트로써 결합하여 수행될 수도 있다. w3 및 w6 의 발생에서 제로의 가산은 생략된다. w4 및 w5 의 발생에서 제로만큼의 시프트는 생략된다.
도 1 에 도시된 8-포인트 IDCT 의 경우, 상수들 C8 π/4, C7 3 π/8 및 S9 3 π/8 에 의한 승산을 위해 상술된 계산 기술들을 사용하면, 8-비트 정밀도를 위한 총 복잡도는 28 + 3·2 + 5·2 = 44 개의 가산 및 3·2 + 5·2 = 16 개의 시프트로서 주어질 수도 있다. 일반적으로, 임의의 원하는 정밀도는 각각의 변환 상수의 근사화에 대한 충분한 수의 비트들을 사용함으로써 달성될 수도 있다.
도 2 에 도시된 8-포인트 DCT 의 경우, 무리 상수들 1/Cπ/4, C3 π/8 및 S3 π/8 는 유리 이항 상수들로 근사화될 수도 있다. 유리 이항 상수들에 의한 승산은 상술된 계산 기술들을 사용하여 달성될 수도 있다.
도 3 에 도시된 IDCT 의 경우, 공통 인수 F1 및 F2 의 상이한 값들은 IDCT 에 대한 상이한 총수의 논리 및 산술 연산들 및 출력 샘플들 x[0] 내지 x[7] 에 대한 상이한 레벨의 정밀도를 초래할 수도 있다. F1 및 F2 에 대한 값들의 상이한 조합이 평가될 수도 있다. 값들의 각각의 조합에 대해, IDCT 를 위한 논리 및 산술 연산의 총수 및 출력 샘플들의 정밀도가 결정될 수도 있다.
F1 의 주어진 값에 대해, 유리 이항 상수들 α1 및 β1 은 각각 F1 및 F1·Cπ/ 4 로 획득될 수도 있다. 그 후, 논리 및 산술 연산의 수들이 α1 에 의한 X1 의 승산 및 β1 에 의한 X2 의 승산에 대해 결정될 수도 있다. F2 의 주어진 값에 대해, 유리 이항 상수들 α2, β2, γ2 및δ2 는 각각 F2, F2·Cπ/4, F2·C3 π/8, 및 F2·S3 π/ 8 로 획득될 수도 있다. 그 후, 논리 및 산술 연산의 수들이 α2 에 의한 X4 의 승산, β2 에 의한 X3 의 승산, 및 γ2 및δ2 양자 모두에 의한 X5 의 승산에 대해 결정될 수도 있다. γ2 및δ2 에 의한 X6 의 승산을 위한 연산의 수는 γ2 및δ2 에 의한 X5 의 승산을 위한 연산의 수와 같다.
공통 인수들의 평가 및 선택을 용이하게 하기 위해, 논리 및 산술 연산의 수는 유리 이항 상수들의 상이한 가능한 값들에 의한 승산을 위해 미리 계산될 수도 있다. 미리 계산된 논리 및 산술 연산의 수들은 룩업 테이블 또는 몇몇 다른 데이터 구조에 저장될 수도 있다.
도 5 는 상이한 유리 이항 상수 값들에 의한 승산을 위한 논리 및 산술 연산의 수들을 저장하는 룩업 테이블 (500) 을 나타낸다. 룩업 테이블 (500) 은 수평축 상의 제 1 유리 이항 상수 C1 의 상이한 가능한 값들 및 수직축 상의 제 2 유리 이항 상수 C2 의 상이한 가능한 값들을 갖는 2 차원 테이블이다. 각각의 유리 이항 상수에 대한 가능한 값들의 수는 그 상수에 사용된 비트들의 수에 종속한다. 예를 들어, 만일 C1 이 13 비트로써 표현된다면, C1 에 대한 8192 개의 가능한 값들이 존재한다. 각각의 유리 이항 상수에 대한 가능한 값들은 c0, c1, c2,..., cM 으로 표시되고, 여기서 c = 0 이고, c1 은 최소의 비-제로 값이고, cM 은 최대값 (예를 들어, 13 비트의 경우 cM = 8191) 이다.
룩업 테이블 (500) 의 i 번째 열 및 j 번째 행의 엔트리는 제 1 유리 이항 상수 C1 으로 c1 및 제 2 유리 이항 상수 C2 로 cj 양자 모드에 의한 중간 변수 x 의 조인트 승산을 위한 논리 및 산술 연산의 수를 포함한다. 룩업 테이블 (500) 내의 각각의 엔트리에 대한 값은 그 엔트리에 대한 ci 및 cj 에 의한 조인트 승산을 위한 중간값들의 상이한 가능한 급수를 평가하고 최선 급수, 예를 들어 가장 적은 수의 연산들을 갖는 급수를 선택함으로써 결정될 수도 있다. (제 2 유리 이항 상수 C2 로 c0 = 0 을 갖는) 룩업 테이블 (500) 의 제 1 행의 엔트리들은 제 1 유리 이항 상수 C1 으로 단지 c1 만에 의한 중간 변수 x 의 승산을 위한 연산의 수들을 포함한다. 룩업 테이블은 대칭이기 때문에, 테이블의 반 (예를 들어, 주대각선의 위 또는 아래 중 어느 하나) 만의 엔트리들이 채워진다. 또한, 채울 엔트리들의 수는 유리 이항 상수 C1 및 C2 로 근사화되는 무리 상수들을 고려함으로써 감소될 수도 있다.
F1 의 주어진 값에 대해, 유리 이항 상수들 α1 및 β1 이 결정될 수도 있다. α1 에 의한 X1 의 승산 및 β1 에 의한 X2 의 승산을 위한 논리 및 산술 연산의 수들이 룩업 테이블 (500) 의 제 1 행의 엔트리들로부터 용이하게 결정될 수도 있으며, 여기서 α1 및 β1 은 C1 에 대응한다. 유사하게, F2 의 주어진 값에 대해, 유리 이항 상수들 α2, β2, γ2 및δ2 가 결정될 수도 있다. α2 에 의한 X4 의 승산 및 β2 에 의한 X3 의 승산을 위한 논리 및 산술 연산의 수들이 룩업 테이블 (500) 의 제 1 행의 엔트리들로부터 용이하게 결정될 수도 있으며, 여기서 α2 및 β2 은 C1 에 대응한다. γ2 및δ2 에 의한 X5 의 조인트 승산을 위한 논리 및 산술 연산의 수가 룩업 테이블 (500) 의 적절한 엔트리로부터 결정될 수도 있으 며, 여기서 γ2 는 C1 에 대응하고 δ2 는 C2 에 대응할 수도 있으며, 그 역도 성립한다.
F1 및 F2 에 대한 값들의 각각의 가능한 조합에 대해, 표 6 의 정밀도 메트릭은 상이한 랜덤 입력 데이터를 사용하여 충분한 수의 반복동안 결정될 수도 있다. 열악한 정밀도 (예를 들면, 메트릭의 실패) 를 초래하는 F1 및 F2 의 값들은 폐기될 수도 있고, 양호한 정밀도 (예를 들어, 메트릭의 통과) 를 초래하는 F1 및 F2 의 값들은 보유될 수도 있다.
표 1 내지 표 5 는 알고리즘들 A, B, C, D 및 E 로서 표시된, 도 3 의 IDCT 를 위한 5 개의 고정점 근사화를 나타낸다. 이들 근사화들은 인수들의 2 개의그룹들에 대한 것이며, 하나의 그룹은 α1 및 β1 을 포함하고, 또 다른 그룹은 α2, β2, γ2 및δ2 를 포함한다. 표 1 내지 표 5 의 각각의 경우, 각각의 그룹의 공통 인수는 제 1 열에서 주어진다. 공통 인수들은 유리 이항 상수 근사화의 정밀도를 개선하고 IDCT 를 위한 흐름도 내의 적절한 스케일 인수들과 병합될 수도 있다. (1 또는 무리 상수들일 수도 있는) 원래의 값들은 제 3 열에서 주어진다. 그것의 공통 인수에 의해 스케일링된 각각의 원래의 값에 대한 유리 이항 상수는 제 4 열에서 주어진다. 하나 또는 두 개의 유리 이항 상수들에 의한 중간 변수 x 의 승산을 위한 중간 값들의 급수는 제 5 열에서 주어진다. 각각의 승산을 위한 가산 및 시프트 연산들의 수들은 각각 제 6 및 제 7 열에서 주어진다. IDCT 를 위한 가산 연산들의 총수는 제 6 열의 모든 가산 연산들 플러스 (γ2 및δ2 양자에 의한 X5 및 X6 각각의 승산을 설명하는) 또 한 번의 마지막 엔트리 플러스 흐름도 내의 모든 버터플라이 연산을 위한 28 개의 가산 연산들의 총합과 같다. IDCT 를 위한 시프트 연산들의 총수는 마지막 열의 모든 시프트 연산들 플러스 또 한 번의 마지막 엔트리의 총합과 같다.
표 1 은 2 개의 그룹들의 각각에 대한 1/1.0000442471 의 공통 인수를 사용하는 알고리즘 A 의 상세를 제공한다.
표 1-근사화 A (42 개의 가산, 16 개의 시프트)
그룹의 공통 인수 C 원래의 값 유리 다이 애딕 상수 하나 또는 두개의 유리 이항 상수에 의한 x 의 승산 가산의 수 시프트의 수
1/F1= 1.0000442471 α1 1 1 y=x 0 0
β1 cos(π/4) 181/256 y2=x+(x>>2); //101 y3=x-(y2>>2); //01011 y=y3+(y2>>6); //010110101 3 3
1/F2= 1.0000442471 α2 1 1 y=x 0 0
β2 cos(π/4) 181/256 y2=x+(x>>2); //101 y3=x-(y2>>2); //01011 y=y3+(y2>>6); //010110101 3 3
γ2 cos(3π/8) 3135/8192 w2=x-(x>>4); //01111 w3=w2+(x>>10); //01111000001 y=(x-(w3>>2))>>1;//00110000111111 z=w3-(w2>>6); //0111011001 4 5
δ2 sin(3π/8) 473/512
표 2는 제 1 그룹에 대해 1/1.0000442471 의 공통 인수 및 제 2 그룹에 대해 1/1.02053722659 의 공통 인수를 사용하는 알고리즘 B 의 상세를 제공한다.
표 2-근사화 B (43 개의 가산, 17 개의 시프트)
그룹의 공통 인수 C 원래의 값 유리 다이 애딕 상수 하나 또는 두개의 유리 이항 상수에 의한 x 의 승산 가산의 수 시프트의 수
1/F1= 1.0000442471 α1 1 1 y=x 0 0
β1 cos(π/4) 181/256 y2=x+(x>>2); //101 y3=x-(y2>>2); //01011 y=y3+(y2>>6); //010110101 3 3
1/F2= 1.02053722659 α2 1 8027/8192 y2=y+(y>>5); //100001 y3=y2+(y2>>2); //10100101 y=x-(y3>>6); //01111101011011 3 3
β2 cos(π/4) 1419/2048 y2=x+(x>>7); //10000001 y3=y2>>1; //010000001 y4=y2+y3; //110000011 y=y3+(y4>>3); //010110001011 3 3
γ2 cos(3π/8) 3/8 w2=x+(x>>1); //11 w3=w2+(x>>6); //1100001 y=x-(w3>>4); //01110011111 z=w3>>2; //0011 3 4
δ2 sin(3π/8) 927/1024
표 3 은 제 1 그룹에 대해 1/0.87734890555 의 공통 인수 및 제 2 그룹에 대해 1/1.02053722659 의 공통 인수를 사용하는 알고리즘 B 의 상세를 제공한다.
표 3-근사화 C (44 개의 가산, 18 개의 시프트)
그룹의 공통 인수 C 원래의 값 유리 다이 애딕 상수 하나 또는 두개의 유리 이항 상수에 의한 x 의 승산 가산의 수 시프트의 수
1/F1= 0.87734890555 α1 1 577/512 y2=x+(x>>6); //1000001 y=x+(y2>>3); //1001000001 2 2
β1 cos(π/4) 51/64 y2=x-(x>>2); //011 y=y2+(y2>>4); //0110011 2 2
1/F2= 1.02053722659 α2 1 8027/8192 y2=x+(x>>5); //100001 y3=y2+(y2>>2); //10100101 y=x-(y3>>6); //01111101011011 3 3
β2 cos(π/4) 1419/2048 y2=x+(x>>7); //10000001 y3=y2>>1; //010000001 y4=y2+y3; //110000011 y=y3+(y4>>3); //010110001011 3 3
γ2 cos(3π/8) 3/8 w2=x+(x>>1); //11 w3=w2+(x>>6); //1100001 y=x-(w3>>4); //01110011111 z=w3>>2; //0011 3 4
δ2 sin(3π/8) 927/1024
표 4 는 제 1 그룹에 대해 1/0.87734890555 의 공통 인수 및 제 2 그룹에 대해 1/0.89062054308 의 공통 인수를 사용하는 알고리즘 D 의 상세를 제공한다.
표 4-근사화 D (45 개의 가산, 17 개의 시프트)
그룹의 공통 인수 C 원래의 값 유리 다이 애딕 상수 하나 또는 두개의 유리 이항 상수에 의한 x 의 승산 가산의 수 시프트의 수
1/F1= 0.87734890555 α1 1 577/512 y2=x+(x>>6); //1000001 y=x+(y2>>3); //1001000001 2 2
β1 cos(π/4) 51/64 y2=x-(x>>2); //011 y=y2+(y2>>4); //0110011 2 2
1/F2= 0.89062054308 α2 1 4599/4096 y2=x-(x>>9); //0111111111 y=y2+(y2>>3); //1000111110111 2 2
β2 cos(π/4) 813/1024 y2=x-(x>>4); //01111 y3=x+(y2>>4); //100001111 y=y3-(y3>>2); //01100101101 3 3
γ2 cos(3π/8) 55/128 w2=x+(x>>3); //1001 w3=w2>>4; //00001001 w4=w2+w3; //10011001 y=x+(w4>>5); //1000010011001 z=(x>>1)-w3; //00110111 4 4
δ2 sin(3π/8) 4249/4096
표 5 는 제 1 그룹에 대해 1/0.87734890555 의 공통 인수 및 제 2 그룹에 대해 1/1.22387468002 의 공통 인수를 사용하는 알고리즘 E 의 상세를 제공한다.
표 5-근사화 E (48 개의 가산, 20 개의 시프트)
그룹의 공통 인수 C 원래의 값 유리 다이 애딕 상수 하나 또는 두개의 유리 이항 상수에 의한 x 의 승산 가산의 수 시프트의 수
1/F1= 0.87734890555 α1 1 577/512 y2=x+(x>>6); //1000001 y=x+(y2>>3); //1001000001 2 2
β1 cos(π/4) 51/64 y2=x-(x>>2); //011 y=y2+(y2>>4); //0110011 2 2
1/F2= 1.22387468002 α2 1 13387/214 y2=x-(x>>4); //01111 y3=x>>1; //01 y4=y3+(y2>>7); //010000001111 y5=y4+(y4>>2); //01010001001011 y=y3+(y5>>1); //011010001001011 4 5
β2 cos(π/4) 4733/8192 y2=x>>1; //01 y3=x+y2; //11 y4=x+y3; //101 y5=y2+(y4>>5); //0100101 y=y5-(y3>>12); //01001001111101 4 3
γ2 cos(3π/8) 5123/214 w2=x>>2; //001 w3=x-w2; //011 w4=w2+(x>>4); //00101 y=w3+(w4>>6); //01100000101 z=w4+(w3>>12); //001010000000011 4 4
δ2 sin(3π/8) 773/1024
근사 IDCT 로부터의 출력 샘플들의 정밀도는 IEEE 표준 1180-1190 에서 정의된 메트릭 및 그것의 계류중인 대체안에 기초하여 정량화될 수도 있다. 이러한 표준은 난수 발생기로부터의 데이터를 사용하는 근사 IDCT 가 후속하는 기준 64-비트 부동점 DCT 를 테스팅하는 것을 특정한다. 기준 DCT 는 입력 픽셀들의 블록에 대한 랜덤 데이터를 수신하고 변환 계수들을 발생시킨다. 근사 IDCT 는 (대략 반올림된) 변환 계수들을 수신하고 재구성된 픽셀들의 블록을 생성한다. 재구성된 픽셀들은 표 6 에서 주어진 5 개의 메트릭을 사용하여 입력 픽셀들과 비교된다. 또한, 근사 IDCT 는 제로 변환 계수들이 공급되는 경우 모든 제로들을 생성할 것과 근접-DC 인버전 행동을 나타낼 것이 요구된다. 위에서 주어진 모든 5 개의 알고리즘들 A 내지 E 는 표 6 의 메트릭들 모두를 통과시킨다.
표 6
메트릭 설명 요건
p 재구성된 픽셀들 간의 최대 절대 차이 p≤1
d[x,y] 픽셀들간의 평균 차이 모든 [x,y] 에 대해 |d[x,y]|≤0.015
m 모든 픽셀 단위 차이들의 평균 |m|≤0.0015
e[x,y] 픽셀들 간의 평균 제곱 차이 모든 [x,y] 에 대해 |e[x,y]|≤0.06
n 모든 픽셀 단위 제곱 차이들의 평균 |n|≤0.02
도 3 에 도시된 1D IDCT 는 2D IDCT 에 사용될 수도 있다. 유사하게, 도 4 에 도시된 1D DCT 는 2D DCT 에 사용될 수도 있다.
도 6 은 스케일링되고 분리가능한 방식으로 구현된 2D IDCT (600) 의 설계를 나타낸다. 2D IDCT (600) 는 입력 스케일링 스테이지 (612) 를 포함하며, 열들 (또는 행들) 을 위한 제 1 스케일링된 1D IDCT 스테이지 (614) 가 후속되고, 행들 (또는 열들) 을 위한 제 2 스케일링된 1D IDCT 스테이지 (616) 이 더욱 후속되며, 출력 스케일링 스테이지 (618) 로 끝난다. 입력 스케일링 스테이지 (612) 는 변환 계수들의 8×8 블록을 수신하고 각각의 변환 계수를 상수 C = 2P 로 미리 승산하거나 각각의 변환 계수를 P 비트 만큼 좌측으로 시프트할 수도 있으며, 여기서 P 는 예약된 "가수 (mantissa)" 비트의 수를 나타낸다. 스케일링 후, 2P- 1 의 양이 DC 변환 계수에 가산되어 출력 샘플들에서의 적절한 반올림을 달성할 수도 있다. 스케일링의 정밀도를 개선하기 위해, S = P + R 개의 비트들이 스케일 인 수들을 정수로 변환하는데 사용될 수도 있고, R 비트만큼의 우측 시프트들이 승산들 후에 수행될 수도 있다. S 는 하드웨어 플랫폼들 상에서의 구현을 용이하게 할 수 있는 임의의 적합한 값일 수도 있으며, 예를 들어 S 는 부호있는/부호없는 16-비트 승수 (multiplier) 를 갖는 플랫폼들의 경우 15 또는 16 일 수도 있다.
제 1 1D IDCT 스테이지 (614) 는 스케일링된 변환 계수들의 블록의 각각의 열에 대해 8-포인트 IDCT 를 수행한다. 제 2 1D IDCT 스테이지 (616) 는 제 1 1D IDCT 스테이지 (614) 에 의해 생성된 중간 블록의 각각의 행에 대해 8-포인트 IDCT 를 수행한다. 제 1 및 제 2 스테이지에 대한 1D IDCT 들은 임의의 내부의 사전 또는 사후 스케일링을 행하지 않고 그들의 입력 데이터 상에 직접 작용할 수도 있다. 행들 및 열들 모두가 프로세싱된 후, 출력 스케일링 스테이지 (618) 는 제 2 1D IDCT 스테이지 (616) 로부터의 결과의 양들을 P 비트만큼 우측으로 시프트하여 2D IDCT 를 위한 출력 샘플들을 생성할 수도 있다. 스케일 인수들 및 정밀도 상수 P 는 전체 2D IDCT 가 원하는 폭의 레지스터들을 사용하여 구현될 수 있도록 선택될 수도 있다.
2D DCT 는 2D IDCT 와 유사한 방식으로 수행될 수도 있다. 2D DCT 는 (a) 공간 도메인 샘플들의 블록을 미리 승산하고, (b) 스케일링된 샘플들의 블록의 각각의 열 (또는 행) 에 대해 1D DCT 를 수행하여 중간 블록을 생성하고, (c) 그 중간 블록의 각각의 행 (또는 열) 에 대해 1D DCT 를 수행하고, (d) 제 2 1D DCT 스테이지의 출력을 스케일링하여 2D DCT 를 위한 변환 계수들의 블록을 생성함으로써 수행될 수도 있다.
명확성을 위해, 전술한 설명의 많은 부분은 8-포인트 스케일링된 IDCT 및 8-포인트 스케일링된 DCT 에 대한 것이다. 여기에 설명된 기술들은 DCT, IDCT, DFT, IDFT, MLT, 역MLT, MCLT, 역MCLT 등과 같은 임의의 형태의 변환에 사용될 수도 있다. 그 기술들은 또한 변환의 임의의 인수분해에 사용될 수도 있으며, 몇개의 예시적인 인수분해들이 도 1 내지 도 4 에 제공되어 있다. 공통 인수들의 그룹들은 상술된 바와 같이 인수분해에 기초하여 선택될 수도 있다. 그 기술들은 또한 임의의 사이즈의 변환에 사용될 수도 있으며, 예시적인 8-포인트 변환들이 도 1 내지 도 4 에 제공되어 있다. 그 기술들은 또한 논리 및 산술 연산의 총수, 산술 연산의 총수, 결과의 정밀도 등과 같은 임의의 공통 인수 선택 기준과 함께 사용될 수도 있다.
변환을 위한 연산의 수는 승산들이 수행되는 방식에 종속할 수도 있다. 상술된 계산 기술들은 승산들을 시프트 및 가산 연산의 급수로 전개하고, 중간 결과를 사용하여 연산의 수를 감소시키고, 공통 급수를 사용하는 다수의 상수들에 의한 조인트 승산을 수행한다. 승산은 또한 공통 인수들의 선택에 영향을 줄 수도 있는 다른 계산 기술들을 사용하여 수행될 수도 있다.
여기에 기술된 공통 인수들을 구비한 변환은 다음과 같은 소정의 이점을 제공할 수도 있다.
Figure 112008057159212-PCT00021
스케일링된 페이즈에서 병합된 승산에 기인한 승산 복잡도 저하,
Figure 112008057159212-PCT00022
JPEG, H.263, MPEG-1, MPEG-2, MPEG-4 (P.2), 및 다른 표준들의 구현에서의 양자화와 스케일링을 병합하는 능력에 기인한 복잡도에 있어서의 가능한 감소, 및
Figure 112008057159212-PCT00023
스케일 인수들에 의해 설명될 수 있는 공통 인수들을 도입함으로써 승산에서 사용되는 무리 상수를 위한 고정점 근사화의 에러를 최소화/분산시키는 능력에 기인한 개선된 정밀도.
공통 인수들을 구비한 변환들은 이미지 및 비디오 프로세싱, 통신, 계산, 데이터 네트워킹, 데이터 저장, 그래픽 등과 같은 다양한 애플리케이션들에 사용될 수도 있다. 비디오 프로세싱을 위한 변환의 예시적인 사용이 이하에 설명된다.
도 7 은 이미지/비디오 인코딩 및 디코딩 시스템 (700) 의 블록도를 도시한다. 인코딩 시스템 (710) 에서, DCT 유닛 (720) 은 입력 데이터 블록을 수신하고 변환 계수 블록을 생성한다. 입력 데이터 블록은 픽셀들의 N×N 블록, 픽셀 차이 값들 (또는 나머지) 의 N×N 블록, 또는 소스 신호, 예를 들어 비디오 신호로부터 발생된 몇몇 다른 형태의 데이터일 수도 있다. 픽셀 차이 값들은 픽셀들의 2 개의 블록들 간의 차이, 픽셀들의 블록과 예측된 픽셀들의 블록 간의 차이 등일 수도 있다. N 은 8 또는 몇몇 다른 값일 수도 있다. 인코더 (730) 는 DCT 유닛 (720) 으로부터 변환 계수 블록을 수신하고, 변환 계수들을 인코딩하고, 압축된 데이터를 생성한다. 압축된 데이터는 저장 유닛에 저장 및/또는 통신 채널을 경유하여 전송될 수도 있다 (구름모양 (740)).
디코딩 시스템 (750) 에서, 디코더 (760) 는 저장 유닛 또는 통신 채널 (740) 로부터 압축된 데이터를 수신하고 변환 계수들을 재구성한다. IDCT 유닛 (770) 은 재구성된 변환 계수들을 수신하고 출력 데이터 블록을 생성한다. 출 력 데이터 블록은 재구성된 픽셀들의 N×N 블록, 재구성된 픽셀 차이값들의 N×N 블록 등일 수도 있다. 출력 데이터 블록은 DCT 유닛 (720) 에 제공된 입력 데이터 블록의 추정일 수도 있고 소스 신호를 재구성하는데 사용될 수도 있다.
도 8 은 도 7 의 인코딩 시스템 (710) 에 사용될 수도 있는 인코딩 시스템 (800) 의 블록도를 나타낸다. 캡쳐 디바이스/메모리 (810) 는 소스 신호를 수신하고, 디지털 포맷으로의 변환을 수행하고, 입력/미가공 데이터를 제공할 수도 있다. 캡쳐 디바이스 (810) 는 비디오 카메라, 디지타이저, 또는 몇몇 다른 디바이스일 수도 있다. 프로세서 (820) 는 미가공 데이터를 프로세싱하고 압축된 데이터를 생성한다. 프로세서 (820) 내에서, 미가공 데이터는 DCT 유닛 (822) 에 의해 변환되고, 지그-재그 스캔 유닛 (824) 에 의해 스캐닝되고, 양자화기 (826) 에 의해 양자화되고, 엔트로피 인코더 (828) 에 의해 인코딩되고, 패킷화기 (830) 에 의해 패킷화된다. DCT 유닛 (822) 은 상술된 기술들에 따라 미가공 데이터에 대해 2D DCT 들을 수행할 수도 있다. 유닛 (822) 내지 유닛 (830) 의 각각은 하드웨어, 펌웨어 및/또는 소프트웨어로 구현될 수도 있다. 예를 들어, DCT 유닛 (822) 은 전용 하드웨어, 산술 논리 유닛 (ALU) 을 위한 명령들의 세트 등에 의해 구현될 수도 있다.
저장 유닛 (840) 은 프로세서 (820) 로부터의 압축된 데이터를 저장할 수도 있다. 송신기 (842) 는 그 압축된 데이터를 송신할 수도 있다. 제어기/프로세서 (850) 는 인코딩 시스템 (800) 내의 다양한 유닛들의 동작을 제어한다. 메모리 (852) 는 인코딩 시스템 (800) 을 위한 데이터 및 프로그램 코드들을 저장 한다. 하나 이상의 버스 (860) 는 인코딩 시스템 (800) 내의 다양한 유닛들을 상호 연결시킨다.
도 9는 도 7 의 디코딩 시스템 (750) 에 사용될 수도 있는 디코딩 시스템 (900) 의 블록도를 도시한다. 수신기 (910) 는 인코딩 시스템으로부터의 압축된 데이터를 수신할 수도 있고, 저장 유닛 (912) 는 그 수신된 압축된 데이터를 저장할 수도 있다. 프로세서 (920) 는 압축된 데이터를 프로세싱하여 출력 데이터를 생성한다. 프로세서 (920) 내에서, 압축된 데이터는 디패킷화기 (922) 에 의해 디패킷화되고, 엔트로피 디코더 (924) 에 의해 디코딩되고, 역양자화기 (926) 에 의해 역양자화되고, 역 지그-재그 스캔 유닛 (928) 에 의해 적당한 순서로 배치되고, IDCT 유닛 (930) 에 의해 변환될 수도 있다. IDCT 유닛 (930) 은 상술된 기술들에 따라 재구성된 변환 계수들에 대해 2D IDCT 들을 수행할 수도 있다. 유닛 (922) 내지 유닛 (930) 의 각각은 하드웨어, 펌웨어 및/또는 소프트웨어로써 구현될 수도 있다. 예를 들어, IDCT 유닛 (930) 은 전용 하드웨어, ALU 를 위한 명령들의 세트 등을 사용하여 구현될 수도 있다.
디스플레이 유닛 (940) 은 프로세서 (920) 로부터의 재구성된 이미지 및 비디오를 디스플레이한다. 제어기/프로세서 (950) 는 디코딩 시스템 (900) 내의 다양한 유닛들의 동작을 제어한다. 메모리 (952) 는 디코딩 시스템 (900) 을 위한 데이터 및 프로그램 코드들을 저장한다. 하나 이상의 버스 (960) 는 디코딩 시스템 (900) 내의 다양한 유닛들을 상호 연결한다.
프로세서 (820 및 920) 는 각각 하나 이상의 주문형 반도체 (ASIC), 디지털 신호 처리기 (DSP), 및/또는 몇몇 다른 형태의 프로세서들로써 구현될 수도 있다. 대안적으로, 프로세서 (820 및 920) 는 각각 하나 이상의 램덤 액세스 메모리 (RAM), 리드 온리 메모리 (ROM), 전기적 프로그램 가능 ROM (EPROM), 전기적 소거가능 프로그램가능 ROM (EEPROM), 자기 디스크, 광학 디스크 및/또는 본 기술분야에 공지된 다른 형태의 휘발성 및 비휘발성 메모리로 대체되 수도 있다.
여기에 설명된 기술들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수도 있다. 예를 들어, 상수 값에 의한 데이터 값의 승산을 위한 논리 (예를 들어, 시프트) 및 산술 (예를 들어, 가산) 연산들은 하나 이상의 로직으로 구현될 수도 있고, 이것은 또한 유닛, 모듈 등으로서 지칭될 수도 있다. 로직은 로직 게이트, 트랜지스터, 및/또는 본 분야에서 공지된 다른 회로들을 포함하는 하드웨어 로직일 수도 있다. 로직은 또한 머신-판독가능 코드들을 포함하는 펌웨어 및/또는 소프트웨어 로직일 수도 있다.
하나의 설계에서, 장치는 제 1 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 1 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 1 그룹에 의한 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하는 제 1 로직을 포함한다. 장치는 또한 제 2 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 2 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 2 그룹에 의한 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하는 제 2 로직을 포함한다. 적어도 하나의 데이터 값의 제 1 및 제 2 그룹은 상이한 사이즈들을 갖는다. 제 1 및 제 2 로직은 별개의 로직, 동일한 공통 로직, 또는 공유된 로직일 수도 있 다.
펌웨어 및/또는 소프트웨어 구현의 경우, 상수값에 의한 데이터 값의 승산은 원하는 논리 및 산술 연산들을 수행하는 머신-판독가능 코드들로써 달성될 수도 있다. 그 코드들은 하드와이어링되거나 메모리 (예를 들어, 도 8 의 메모리 (852) 또는 도 9 의 메모리 (952)) 에 저장되고 프로세서 (예를 들어, 프로세서 (850 또는 950)) 또는 몇몇 다른 하드웨어 유닛에 의해 실행된다.
여기에 설명된 기술들은 다양한 형태의 장치로 구현될 수도 있다. 예를 들어, 그 기술들은 상이한 형태의 프로세서, 상이한 형태의 집적회로, 상이한 형태의 전자 디바이스, 상이한 형태의 전자 회로 등으로 구현될 수도 있다.
당업자라면 정보 및 신호들은 다양한 상이한 기술 및 기능의 임의의 것을 사용하여 표현될 수도 있다는 것을 이해할 것이다. 예를 들어, 전술한 설명 전체에 걸쳐 참조될 수도 있는 데이터, 명령, 커맨드, 정보, 신호, 비트, 심볼 및 칩은 전압, 전류, 전자기파, 자기 장 또는 입자, 광학 필드 또는 입자, 또는 이들의 임의의 조합에 의해 표현될 수도 있다.
당업자라면 또한 개시와 연관하여 설명된 다양한 예시적인 로직 블록, 모듈, 회로 및 알고리즘 단계는 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합으로서 구현될 수도 있다는 것을 인정할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 교환가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트, 블록, 모듈, 회로, 및 단계들은 일반적으로 그들의 기능에 의해 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 소프트웨어로서 구현되는지는 특정의 애플 리케이션 및 전체 시스템에 부과되는 설계 제약들에 달려있다. 숙련된 기능공은 각각의 특정의 애플리케이션에 대한 당야한 방법으로 설명된 기능을 구현할 수도 있지만, 그러한 구현 결정은 본 개시의 범위로부터 이탈을 초래하는 것으로 해석되지 않아야 한다.
본 개시와 관련하여 설명된 다양한 예시적인 로직 블록, 모듈 및 회로는 범용 프로세서, DSP, ASIC, 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트, 또는 여기에 기술된 기능들을 수행하도록 설계된 이들의 임의의 조합을 사용하여 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 계산 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서, 또는 임의의 다른 그러한 구성의 조합으로서 구현될 수도 있다.
하나 이상의 예시적인 실시형태에서, 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 그 기능들은 컴퓨터-판독가능 매체상에 하나 이상의 명령 또는 코드로서 저장 또는 송신될 수도 있다. 컴퓨터-판독가능 매체는 한곳에서 다른 곳으로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체 및 통신 매체 양자를 포함한다. 저장 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 이용가능한 매체일 수도 있다. 제한이 아닌 예로서, 그러한 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, CD-ROM, 또는 다른 광학 디스크 기억장치, 자기 디스크 기억장치 또는 다른 자기 저장 디바이스, 또는 컴퓨터에 의해 액세스될 수 있고 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 운반 또는 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결 (connection) 은 컴퓨터-판독가능 매체로 적절히 칭해진다. 예를 들어, 만일 소프트웨어가 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 라인 (DSL), 또는 적외선, 라디오 및 마이크로파 등의 무선 기술을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신된다면, 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 라인 (DSL), 또는 적외선, 라디오 및 마이크로파 등의 무선 기술은 매체의 정의에 포함된다. 여기에 사용된 디스크 (disk) 또는 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, DVD (digital versatile disc), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서 디스크 (disk) 는 보통 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 는 데이터를 레이저를 사용하여 선택적으로 재생한다. 상기의 조합은 또한 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
본 개시의 전술한 설명은 당업자가 본 개시를 실시 또는 사용하는 것을 가능하게 하도록 제공된다. 본 개시에 대한 다양한 변경은 당업자에게는 매우 명백할 수도 있고, 여기에 정의된 일반 원리는 본 개시의 사상 또는 범위로부터 이탈하지 않고 다른 설계에 적용될 수도 있다. 따라서, 본 개시는 여기에 기술된 예 에 한정되도록 의도되는 것이 아니라 여기에 개시된 원리 및 신규한 특징과 일치하는 가장 넓은 범위와 조화를 이루어야 한다.

Claims (43)

  1. 제 1 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수 (irrational constant) 의 제 1 그룹을 근사화하는 적어도 하나의 유리 이항 상수 (rational dyadic constant) 의 제 1 그룹과 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하는 제 1 로직으로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수 (rational number) 인, 상기 제 1 로직; 및
    제 2 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 2 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 2 그룹과 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하는 제 2 로직으로서, 상기 적어도 하나의 데이터 값의 제 1 그룹 및 제 2 그룹은 상이한 사이즈를 갖는, 상기 제 2 로직을 포함하는, 장치.
  2. 제 1 항에 있어서,
    제 3 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 3 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 3 그룹과 적어도 하나의 데이터 값의 제 3 그룹의 승산을 수행하는 제 3 로직을 더 포함하는, 장치.
  3. 제 1 항에 있어서,
    상기 적어도 하나의 데이터 값의 제 2 그룹은 상기 적어도 하나의 데이터 값 의 제 1 그룹의 사이즈의 2 배인, 장치
  4. 제 1 항에 있어서,
    상기 적어도 하나의 데이터 값의 제 1 그룹은 2 개의 데이터 값들을 포함하고, 상기 적어도 하나의 데이터 값의 제 2 그룹은 4 개의 데이터 값들을 포함하는, 장치.
  5. 제 1 항에 있어서,
    상기 적어도 하나의 무리 상수의 제 1 그룹은 단일의 무리 상수를 포함하고, 상기 적어도 하나의 무리 상수의 제 2 그룹은 3 개의 무리 상수들을 포함하는, 장치.
  6. 제 1 항에 있어서,
    상기 제 1 그룹의 무리 상수들의 수는 상기 제 1 그룹의 유리 이항 상수들의 수보다 적은, 장치.
  7. 제 1 항에 있어서,
    상기 제 1 로직은 상기 제 1 공통 인수를 근사화하는 제 1 유리 이항 상수와 상기 제 1 그룹의 제 1 데이터 값의 승산을 수행하고, 상기 제 1 공통 인수에 의해 스케일링된 무리 상수를 근사화하는 제 2 유리 이항 상수와 상기 제 1 그룹의 제 2 데이터 값의 승산을 수행하는, 장치.
  8. 제 1 항에 있어서,
    상기 적어도 하나의 무리 상수의 제 2 그룹은 제 1 무리 상수 및 제 2 무리 상수를 포함하고,
    상기 적어도 하나의 유리 이항 상수의 제 2 그룹은 상기 제 2 공통 인수에 의해 스케일링된 상기 제 1 무리 상수를 근사화하는 제 1 유리 이항 상수 및 상기 제 2 공통 인수에 의해 스케일링된 상기 제 2 무리 상수를 근사화하는 제 2 유리 이항 상수을 포함하는, 장치.
  9. 제 8 항에 있어서,
    상기 제 2 로직은 상기 제 1 유리 이항 상수와 상기 제 2 그룹의 데이터 값의 승산을 수행하고, 상기 제 2 유리 이항 상수와 상기 데이터 값의 승산을 수행하는, 장치.
  10. 제 8 항에 있어서,
    상기 제 2 로직은 중간값들의 단일의 급수을 사용하여 상기 제 1 유리 이항 상수 및 상기 제 2 유리 이항 상수와 상기 제 2 그룹의 데이터 값의 승산을 수행하는, 장치.
  11. 제 1 항에 있어서,
    상기 제 1 공통 인수는 상기 적어도 하나의 유리 이항 상수의 제 1 그룹과 상기 적어도 하나의 데이터 값의 제 1 그룹의 승산을 위한 논리 및 산술 연산들의 수에 기초하여 선택되고,
    상기 제 2 공통 인수는 상기 적어도 하나의 유리 이항 상수의 제 2 그룹과 상기 적어도 하나의 데이터 값의 제 2 그룹의 승산을 위한 논리 및 산술 연산들의 수에 기초하여 선택되는, 장치.
  12. 제 11 항에 있어서,
    상기 논리 및 산술 연산들은 시프트 및 가산 연산들들 포함하는, 장치.
  13. 제 11 항에 있어서,
    상기 제 1 공통 인수 및 상기 제 2 공통 인수는 또한 상기 승산으로부터 생성된 결과들에 대한 적어도 하나의 정밀도 메트릭에 기초하여 선택되는, 장치.
  14. 제 1 항에 있어서,
    상기 제 1 공통 인수는, 상기 제 1 공통 인수의 서로 다른 가능한 값들을 사용하여 획득된 상기 적어도 하나의 유리 이항 상수의 제 1 그룹에 대한 서로 다른 가능한 값들과 상기 적어도 하나의 데이터 값의 제 1 그룹의 승산을 위한 논리 및 산술 연산들의 수를 결정함으로써 선택되는, 장치.
  15. 제 1 항에 있어서,
    상기 제 1 그룹의 유리 이항 상수와 상기 제 1 그룹의 데이터 값의 승산을 위해,
    상기 제 1 로직은
    상기 데이터 값에 기초하여 중간값들의 급수를 생성하되, 상기 급수 내의 적어도 하나의 중간값은 상기 급수 내의 적어도 하나의 다른 중간값에 기초하여 생성되며,
    상기 급수 내의 하나의 중간값을 상기 유리 이항 상수와 상기 데이터 값의 승산에 대한 출력 값으로서 제공하는, 장치.
  16. 제 1 항에 있어서,
    상기 제 1 로직 및 상기 제 2 로직은 선형 변형을 위한 승산을 수행하는, 장치.
  17. 제 16 항에 있어서,
    상기 선형 변환에 대한 결과들을 생성하기 위해 상기 제 1 로직 및 상기 제 2 로직의 출력들에 기초하여 적어도 하나의 버터플라이 연산을 수행하는 제 3 로직을 더 포함하는, 장치.
  18. 제 1 항에 있어서,
    상기 제 1 로직 및 상기 제 2 로직은 이산 코사인 변환 (discrete cosine transform: DCT) 을 위한 승산을 수행하는, 장치.
  19. 제 1 항에 있어서,
    상기 제 1 로직 및 상기 제 2 로직은 역 이산 코사인 변환 (inverse discrete cosine transform: IDCT) 을 위한 승산을 수행하는, 장치.
  20. 제 1 항에 있어서,
    상기 제 1 로직 및 상기 제 2 로직은 8-포인트 이산 코사인 변환 (DCT) 또는 8-포인트 역 이산 코사인 변환 (IDCT) 을 위한 승산을 수행하는, 장치.
  21. 제 1 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 1 그룹을 근사화하는 2 개의 유리 이항 상수들의 제 1 그룹과 2 개의 데이터 값들의 제 1 그룹의 승산을 수행하는 제 1 로직으로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수인, 상기 제 1 로직; 및
    제 2 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 2 그룹을 근사화하는 4 개의 유리 이항 상수들의 제 2 그룹과 4 개의 데이터 값들의 제 2 그룹의 승산을 수행하는 제 2 로직을 포함하는, 장치.
  22. 제 1 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 1 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 1 그룹과 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하는 단계로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수인, 상기 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하는 단계; 및
    제 2 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 2 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 2 그룹과 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하는 단계로서, 상기 적어도 하나의 데이터 값의 제 1 그룹 및 제 2 그룹은 상이한 사이즈를 갖는, 상기 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하는 단계를 포함하는, 방법
  23. 제 22 항에 있어서,
    제 3 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 3 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 3 그룹과 적어도 하나의 데이터 값의 제 3 그룹의 승산을 수행하는 단계를 더 포함하는, 방법.
  24. 제 22 항에 있어서,
    상기 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하는 단계는,
    상기 제 1 그룹의 유리 이항 상수와 상기 제 1 그룹의 데이터 값의 승산을 위해,
    상기 데이터 값에 기초하여 중간값들의 급수를 생성하는 단계로서, 상기 급수 내의 적어도 하나의 중간값은 상기 급수 내의 적어도 하나의 다른 중간값에 기초하여 생성되는, 상기 급수 생성 단계, 및
    상기 급수 내의 하나의 중간값을 상기 유리 이항 상수와 상기 데이터 값의 승산에 대한 출력 값으로서 제공하는 단계를 포함하는, 방법.
  25. 제 22 항에 있어서,
    상기 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하는 단계는,
    중간값들의 단일의 급수에 기초하여 상기 제 2 그룹의 제 1 유리 이항 상수 및 제 2 유리 이항 상수와 상기 제 2 그룹의 데이터 값의 승산을 수행하는 단계를 포함하는, 방법.
  26. 제 1 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 1 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 1 그룹과 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하는 수단으로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수인, 상기 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하는 수단; 및
    제 2 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 2 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 2 그룹과 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하는 수단으로서, 상기 적어도 하나의 데이터 값의 제 1 그룹 및 제 2 그룹은 상이한 사이즈를 갖는, 상기 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하는 수단을 포함하는, 장치.
  27. 제 26 항에 있어서,
    제 3 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 3 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 3 그룹과 적어도 하나의 데이터 값의 제 3 그룹의 승산을 수행하는 수단을 더 포함하는, 장치.
  28. 제 26 항에 있어서,
    상기 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하는 수단은,
    상기 제 1 그룹의 유리 이항 상수와 상기 제 1 그룹의 데이터 값의 승산을 위해,
    상기 데이터 값에 기초하여 중간값들의 급수를 생성하는 수단으로서, 상기 급수 내의 적어도 하나의 중간값은 상기 급수 내의 적어도 하나의 다른 중간값에 기초하여 생성되는, 상기 급수 생성 수단, 및
    상기 급수 내의 하나의 중간값을 상기 유리 이항 상수와 상기 데이터 값의 승산에 대한 출력 값으로서 제공하는 수단을 포함하는, 장치.
  29. 제 26 항에 있어서,
    상기 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하는 수단은,
    중간값들의 단일의 급수에 기초하여 상기 제 2 그룹의 제 1 유리 이항 상수 및 제 2 유리 이항 상수와 상기 제 2 그룹의 데이터 값의 승산을 수행하는 수단을 포함하는, 장치.
  30. 적어도 하나의 데이터 값을 수신하는 제 1 로직; 및
    공통 인수에 의해 스케일링된 적어도 하나의 무리 상수를 근사화하는 적어도 하나의 유리 이항 상수와 적어도 하나의 데이터 값의 승산을 수행하는 제 2 로직으로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수인, 상기 제 2 로직을 포함하고,
    상기 공통 인수는 상기 적어도 하나의 유리 이항 상수와 상기 적어도 하나의 데이터 값의 상기 승산을 위한 논리 및 산술 연산들의 수에 기초하여 선택되는, 장치.
  31. 제 30 항에 있어서,
    상기 논리 및 산술 연산들은 시프트 및 가산 연산들을 포함하는, 장치.
  32. 제 30 항에 있어서,
    상기 공통 인수는 또한 상기 적어도 하나의 유리 이항 상수와 상기 적어도 하나의 데이터 값의 상기 승산으로부터 생성된 결과들에 대한 적어도 하나의 정밀도 메트릭에 기초하여 선택되는, 장치.
  33. 제 30 항에 있어서,
    유리 이항 상수와 데이터 값의 승산을 위해,
    상기 제 2 로직은,
    상기 데이터 값에 기초하여 중간값들의 급수를 생성하되, 상기 급수 내의 적어도 하나의 중간값은 상기 급수 내의 적어도 하나의 다른 중간값에 기초하여 생성되며,
    상기 급수 내의 하나의 중간값을 상기 유리 이항 상수와 상기 데이터 값의 상기 승산에 대한 출력값으로서 제공하는, 장치.
  34. 제 30 항에 있어서,
    상기 논리 및 산술 연산들의 수는 상기 승산에 대한 적어도 하나의 출력값을 생성하도록 중간 결과들을 사용하여 상기 적어도 하나의 유리 이항 상수와 상기 적어도 하나의 데이터 값의 승산을 수행함으로써 결정되는, 장치.
  35. 적어도 하나의 데이터 값을 수신하는 단계; 및
    공통 인수에 의해 스케일링된 적어도 하나의 무리 상수를 근사화하는 적어도 하나의 유리 이항 상수와 적어도 하나의 데이터 값의 승산을 수행하는 단계로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수인, 상기 승산을 수행하는 단계를 포함하고,
    상기 공통 인수는 상기 적어도 하나의 유리 이항 상수와 상기 적어도 하나의 데이터 값의 상기 승산을 위한 논리 및 산술 연산들의 수에 기초하여 선택되는, 방법.
  36. 제 35 항에 있어서,
    상기 논리 및 산술 연산들은 시프트 및 가산 연산들을 포함하는, 방법.
  37. 제 35 항에 있어서,
    상기 승산을 수행하는 단계는,
    유리 이항 상수와 데이터 값의 승산을 위해,
    상기 데이터 값에 기초하여 중간값들의 급수를 생성하는 단계로서, 상기 급수 내의 적어도 하나의 중간값은 상기 급수 내의 적어도 하나의 다른 중간값에 기초하여 생성되는, 상기 급수 생성 단계; 및
    상기 급수 내의 하나의 중간값을 상기 유리 이항 상수와 상기 데이터 값의 상기 승산에 대한 출력값으로서 제공하는 단계를 포함하는, 방법.
  38. 적어도 하나의 데이터 값을 수신하는 수단; 및
    공통 인수에 의해 스케일링된 적어도 하나의 무리 상수를 근사화하는 적어도 하나의 유리 이항 상수와 적어도 하나의 데이터 값의 승산을 수행하는 수단으로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수인, 상기 승산을 수행하는 수단 을 포함하고,
    상기 공통 인수는 상기 적어도 하나의 유리 이항 상수와 상기 적어도 하나의 데이터 값의 상기 승산을 위한 논리 및 산술 연산들의 수에 기초하여 선택되는, 장치.
  39. 제 38 항에 있어서,
    상기 논리 및 산술 연산들은 시프트 및 가산 연산들을 포함하는, 장치.
  40. 제 38 항에 있어서,
    상기 승산을 수행하는 수단은,
    유리 이항 상수와 데이터 값의 승산을 위해,
    상기 데이터 값에 기초하여 중간값들의 급수를 생성하는 수단으로서, 상기 급수 내의 적어도 하나의 중간값은 상기 급수 내의 적어도 하나의 다른 중간값에 기초하여 생성되는, 상기 급수 생성 수단; 및
    상기 급수 내의 하나의 중간값을 상기 유리 이항 상수와 상기 데이터 값의 상기 승산에 대한 출력값으로서 제공하는 수단을 포함하는, 장치.
  41. 컴퓨터로 하여금 적어도 하나의 데이터 값을 수신하게 하는 코드; 및
    상기 컴퓨터로 하여금 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수를 근사화하는 적어도 하나의 유리 이항 상수와 상기 적어도 하나의 데이터 값의 승산을 수행하게 하는 코드로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수인, 상기 승산을 수행하게 하는 코드를 포함하고,
    상기 공통 인수는 상기 적어도 하나의 유리 이항 상수와 상기 적어도 하나의 데이터 값의 상기 승산을 위한 논리 및 산술 연산들의 수에 기초하여 선택되는, 컴퓨터-판독가능 매체를 포함하는, 컴퓨터 프로그램 제품.
  42. 컴퓨터로 하여금 제 1 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 1 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 1 그룹과 적어도 하나의 데이터 값의 제 1 그룹의 승산을 수행하게 하는 코드로서, 각각의 유리 이항 상수는 이항 분모를 갖는 유리수인, 상기 제 1 그룹의 승산을 수행하게 하는 코드; 및
    상기 컴퓨터로 하여금 제 2 공통 인수에 의해 스케일링된 적어도 하나의 무리 상수의 제 2 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 2 그룹과 적어도 하나의 데이터 값의 제 2 그룹의 승산을 수행하게 하는 코드로서, 상기 적어도 하나의 데이터 값의 제 1 그룹 및 제 2 그룹은 상이한 사이즈를 갖는, 상기 제 2 그룹의 승산을 수행하게 하는 코드를 포함하는, 컴퓨터-판독가능 매체를 포함하는, 컴퓨터 프로그램 제품.
  43. 제 22 항에 있어서,
    컴퓨터로 하여금 제 3 공통 인수에 의해 스케일링된 적어도 하나의 무리 상 수의 제 3 그룹을 근사화하는 적어도 하나의 유리 이항 상수의 제 3 그룹과 적어도 하나의 데이터 값의 제 3 그룹의 승산을 수행하게 하는 코드를 더 포함하는, 컴퓨터-판독가능 매체.
KR1020087019586A 2006-01-11 2007-01-11 공통 인수를 갖는 변환 KR101028676B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US75846406P 2006-01-11 2006-01-11
US60/758,464 2006-01-11
US11/621,945 US8595281B2 (en) 2006-01-11 2007-01-10 Transforms with common factors
US11/621,945 2007-01-10

Publications (2)

Publication Number Publication Date
KR20090007279A true KR20090007279A (ko) 2009-01-16
KR101028676B1 KR101028676B1 (ko) 2011-04-12

Family

ID=38257126

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087019586A KR101028676B1 (ko) 2006-01-11 2007-01-11 공통 인수를 갖는 변환

Country Status (15)

Country Link
US (1) US8595281B2 (ko)
EP (2) EP2477121A3 (ko)
JP (1) JP5086274B2 (ko)
KR (1) KR101028676B1 (ko)
CN (2) CN103096077B (ko)
AU (1) AU2007204645B2 (ko)
BR (1) BRPI0706474A2 (ko)
CA (1) CA2633897C (ko)
IL (1) IL192075A0 (ko)
MX (1) MX2008008987A (ko)
NO (1) NO20083465L (ko)
NZ (1) NZ568993A (ko)
RU (1) RU2429531C2 (ko)
TW (1) TWI359364B (ko)
WO (1) WO2007082272A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070200738A1 (en) * 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US20070271321A1 (en) * 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8595281B2 (en) 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US8849884B2 (en) * 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
US8654833B2 (en) * 2007-09-26 2014-02-18 Qualcomm Incorporated Efficient transformation techniques for video coding
US8248660B2 (en) * 2007-12-14 2012-08-21 Qualcomm Incorporated Efficient diffusion dithering using dyadic rationals
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
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
US9075757B2 (en) 2009-06-24 2015-07-07 Qualcomm Incorporated 16-point transform for media data coding
US9185422B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Variable localized bit-depth increase for fixed-point transforms in video coding
US9824066B2 (en) 2011-01-10 2017-11-21 Qualcomm Incorporated 32-point transform for media data coding
US11030777B2 (en) * 2018-09-14 2021-06-08 Sony Group Corporation Adaptive subband coding for lifting transform

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864529A (en) 1986-10-09 1989-09-05 North American Philips Corporation Fast multiplier architecture
JPH01175186A (ja) 1987-12-29 1989-07-11 Nitto Denko Corp 熱接着用プレス装置における熱加圧具
JP2711176B2 (ja) 1990-10-02 1998-02-10 アロカ株式会社 超音波画像処理装置
CA2060407C (en) 1991-03-22 1998-10-27 Jack M. Sacks Minimum difference processor
US5233551A (en) 1991-10-21 1993-08-03 Rockwell International Corporation Radix-12 DFT/FFT building block
US5285402A (en) 1991-11-22 1994-02-08 Intel Corporation Multiplyless discrete cosine transform
US5539836A (en) 1991-12-20 1996-07-23 Alaris Inc. Method and apparatus for the realization of two-dimensional discrete cosine transform for an 8*8 image fragment
TW284869B (ko) 1994-05-27 1996-09-01 Hitachi Ltd
US5712809A (en) 1994-10-31 1998-01-27 Vivo Software, Inc. Method and apparatus for performing fast reduced coefficient discrete cosine transforms
US5701263A (en) 1995-08-28 1997-12-23 Hyundai Electronics America Inverse discrete cosine transform processor for VLSI implementation
US5930160A (en) 1996-06-22 1999-07-27 Texas Instruments Incorporated Multiply accumulate unit for processing a signal and method of operation
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6058215A (en) 1997-04-30 2000-05-02 Ricoh Company, Ltd. Reversible DCT for lossless-lossy compression
JP3957829B2 (ja) 1997-08-29 2007-08-15 株式会社オフィスノア 動画像情報の圧縮方法およびそのシステム
KR100270799B1 (ko) 1998-01-30 2000-11-01 김영환 이산코사인변환/역이산코사인변환 프로세서
US6189021B1 (en) 1998-09-15 2001-02-13 Winbond Electronics Corp. Method for forming two-dimensional discrete cosine transform and its inverse involving a reduced number of multiplication operations
US6757326B1 (en) 1998-12-28 2004-06-29 Motorola, Inc. Method and apparatus for implementing wavelet filters in a digital system
US6473534B1 (en) 1999-01-06 2002-10-29 Hewlett-Packard Company Multiplier-free implementation of DCT used in image and video processing and compression
WO2000055757A1 (en) 1999-03-17 2000-09-21 The Johns Hopkins University A fast multiplierless transform
US6529634B1 (en) 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
US6760486B1 (en) 2000-03-28 2004-07-06 General Electric Company Flash artifact suppression in two-dimensional ultrasound imaging
WO2001095142A2 (en) 2000-06-09 2001-12-13 Pelton Walter E Methods for reducing the number of computations in a discrete fourier transform
US7007054B1 (en) 2000-10-23 2006-02-28 International Business Machines Corporation Faster discrete cosine transforms using scaled terms
JP4266512B2 (ja) 2000-12-27 2009-05-20 キヤノン株式会社 データ処理装置
US6766341B1 (en) * 2000-10-23 2004-07-20 International Business Machines Corporation Faster transforms using scaled terms
DE60222894D1 (de) 2001-06-12 2007-11-22 Silicon Optix Inc Verfahen und vorrichtung zur verarbeitung einer nichtlinearen zweidimensionalen räumlichen transformation
US6870963B2 (en) 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US20030074383A1 (en) * 2001-10-15 2003-04-17 Murphy Charles Douglas Shared multiplication in signal processing transforms
US6917955B1 (en) 2002-04-25 2005-07-12 Analog Devices, Inc. FFT processor suited for a DMT engine for multichannel CO ADSL application
US7395210B2 (en) * 2002-11-21 2008-07-01 Microsoft Corporation Progressive to lossless embedded audio coder (PLEAC) with multiple factorization reversible transform
US7792891B2 (en) 2002-12-11 2010-09-07 Nvidia Corporation Forward discrete cosine transform engine
TWI220716B (en) 2003-05-19 2004-09-01 Ind Tech Res Inst Method and apparatus of constructing a hardware architecture for transfer functions
RU2305377C2 (ru) 2003-05-20 2007-08-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ уменьшения искажения сжатого видеоизображения и устройство для его реализации
US7487193B2 (en) 2004-05-14 2009-02-03 Microsoft Corporation Fast video codec transform implementations
US7587093B2 (en) 2004-07-07 2009-09-08 Mediatek Inc. Method and apparatus for implementing DCT/IDCT based video/image processing
US7489826B2 (en) 2004-10-07 2009-02-10 Infoprint Solutions Company, Llc Compensating for errors in performance sensitive transformations
US7421139B2 (en) * 2004-10-07 2008-09-02 Infoprint Solutions Company, Llc Reducing errors in performance sensitive transformations
CN100388316C (zh) * 2005-04-19 2008-05-14 展讯通信(上海)有限公司 高精度的无乘法器的数字余弦变换电路及其变换方法
US20070200738A1 (en) 2005-10-12 2007-08-30 Yuriy Reznik Efficient multiplication-free computation for signal and data processing
US20070271321A1 (en) 2006-01-11 2007-11-22 Qualcomm, Inc. Transforms with reduce complexity and/or improve precision by means of common factors
US8595281B2 (en) 2006-01-11 2013-11-26 Qualcomm Incorporated Transforms with common factors
US8849884B2 (en) 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces

Also Published As

Publication number Publication date
AU2007204645B2 (en) 2010-08-12
CN103096077B (zh) 2016-03-16
WO2007082272A2 (en) 2007-07-19
TW200809537A (en) 2008-02-16
WO2007082272A3 (en) 2008-10-02
RU2008132827A (ru) 2010-02-20
US20070168410A1 (en) 2007-07-19
AU2007204645A1 (en) 2007-07-19
CN101375274B (zh) 2013-02-13
MX2008008987A (es) 2008-11-18
CA2633897A1 (en) 2007-07-19
KR101028676B1 (ko) 2011-04-12
EP2477121A2 (en) 2012-07-18
IL192075A0 (en) 2009-08-03
JP5086274B2 (ja) 2012-11-28
JP2009534721A (ja) 2009-09-24
RU2429531C2 (ru) 2011-09-20
NO20083465L (no) 2008-10-10
EP2477121A3 (en) 2015-01-21
NZ568993A (en) 2010-09-30
CN103096077A (zh) 2013-05-08
TWI359364B (en) 2012-03-01
CN101375274A (zh) 2009-02-25
CA2633897C (en) 2013-04-02
EP1999641A2 (en) 2008-12-10
US8595281B2 (en) 2013-11-26
BRPI0706474A2 (pt) 2011-03-29

Similar Documents

Publication Publication Date Title
KR101028676B1 (ko) 공통 인수를 갖는 변환
KR101131757B1 (ko) 스케일링 인터페이스 및 넌-스케일링 인터페이스를 갖는 변환 디자인
JP5113067B2 (ja) 信号およびデータ処理のための効率的な無乗算計算
JP4560033B2 (ja) ビデオまたはイメージのデータを復号化するための方法
CA2653692C (en) Reduction of errors during computation of inverse discrete cosine transform
US20070271321A1 (en) Transforms with reduce complexity and/or improve precision by means of common factors
He et al. Improved conversion from DCT blocks to integer cosine transform blocks in H. 264/AVC
TWI432029B (zh) 具有比例化及非比例化介面之變換設計
CN101729886A (zh) 一种视频解码方法、系统和设备
KR101252043B1 (ko) 통합 모듈을 구비한 복호화 장치 및 복호화 처리 방법
ArifWahid Error-Free Algorithms and Architectures of Discrete Cosine Transforms

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
FPAY Annual fee payment
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee