KR101107923B1 - 부호­대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산 - Google Patents

부호­대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산 Download PDF

Info

Publication number
KR101107923B1
KR101107923B1 KR1020107006666A KR20107006666A KR101107923B1 KR 101107923 B1 KR101107923 B1 KR 101107923B1 KR 1020107006666 A KR1020107006666 A KR 1020107006666A KR 20107006666 A KR20107006666 A KR 20107006666A KR 101107923 B1 KR101107923 B1 KR 101107923B1
Authority
KR
South Korea
Prior art keywords
determining
sequence
calculating
products
error metric
Prior art date
Application number
KR1020107006666A
Other languages
English (en)
Other versions
KR20100066521A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=40409178&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101107923(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR20100066521A publication Critical patent/KR20100066521A/ko
Application granted granted Critical
Publication of KR101107923B1 publication Critical patent/KR101107923B1/ko

Links

Images

Classifications

    • 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
    • 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

정수 값 및 무리 값의 곱이 부호-대칭 알고리즘에 의해 결정될 수 있다. 프로세스는 평균 비대칭, 평균 오차, 오차의 분산, 및 오차의 크기와 같은 메트릭들을 최소화하는 가능한 알고리즘을 결정할 수 있다. 정수 변수 x 및 무리 분수를 근사화하는 유리 다이애딕 상수들이 주어질 경우, 부호-대칭인 중간 값들의 시리즈들이 생성될 수 있다. 중간 값들은, 함께 합산될 때 상기 정수 및 무리 값의 곱을 근사화하는, 덧셈, 뺄셈 및 우측 시프트 연산들의 시퀀스를 포함할 수 있다. 0들의 덧셈들 또는 뺄셈들 또는 0 비트들에 의한 시프트들과 같은 다른 연산들이 제거될 수 있다.

Description

부호­대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산{FAST COMPUTATION OF PRODUCTS BY DYADIC FRACTIONS WITH SIGN­SYMMETRIC ROUNDING ERRORS}
본 발명은 일반적으로 프로세싱에 관한 것으로, 더욱 상세하게는 하드웨어 및 소프트웨어 프로세싱에서 이용되는 근사화 기술들에 관한 것이다.
부호가 있는 정수들(signed integers)을 2의 제곱들(powers of two)로 곱셈하거나 나누는데 산술 시프트들이 이용될 수 있다. 부호가 있거나 부호가 없는 이진수에 대하여 n-비트들만큼 좌측으로 시프트하는 것은 상기 이진수를 2n으로 곱셈하는 효과를 갖는다. 2의 보수의 부호가 있는 이진수에 대하여 n-비트들만큼 우측으로 시프트하는 것은 상기 이진수를 2n으로 나누는 효과를 갖지만, 상기 이진수는 항상 라운딩 다운된다(즉, 음의 무한대를 향해). 우측 시프트들이 선형 연산들이 아니므로, 산술 우측 시프트들은 라운딩 오차들을 부가할 수 있고, 상기 우측 시프트에 의해 뒤이어지는 곱셈 결과와 동일하지 않을 수 있는 결과들을 생성할 수 있다.
일부 구현들에서, 부호-대칭 알고리즘은 IDCT 변환 아키텍처 또는 다른 디지털 필터에서 이용될 수 있다.
산술 시프트들의 이용의 일 예는 FFT, DCT, MLT, MDCT 등과 같은 일부 신호-프로세싱 알고리즘의 고정 소수점 구현들(fixed point implementations)에 있다. 이러한 신호-프로세싱 알고리즘은 통상적으로 다이애딕 유리 분수들(dyadic rational fractions)을 이용하는 이러한 알고리즘의 수학적 정의들에서 무리(irrational)(대수의 또는 선험적) 인수들을 근사화한다. 이는 이러한 무리 분수들에 의한 곱셈들이 더욱 복잡한 연산들에 의해서가 아니라 정수 덧셈들 및 시프트들을 이용하여 수행될 수 있도록 한다.
정수 값 및 무리 값의 곱이 부호-대칭 알고리즘에 의해 결정될 수 있다. 프로세스가 평균 비대칭, 평균 오차, 오차의 분산, 및 오차의 크기(magnitude)와 같은 메트릭들을 최소화하는 가능한 알고리즘을 결정할 수 있다. 정수 변수 x 및 무리 분수를 근사화하는 유리 다이애딕 상수들(rational dyadic constants)이 주어질 경우, 부호-대칭적인 중간 값들의 시리즈가 생성될 수 있다. 덧셈, 뺄셈 및 우측 시프트 연산들의 시퀀스가 주어질 경우, 부호-대칭 알고리즘은 정수 및 무리 값의 곱을 근사화할 수 있다. 0들의 덧셈들 또는 뺄셈들 또는 0 비트들에 의한 시프트들과 같은 다른 연산들은 프로세싱을 단순화하기 위해 제거될 수 있다.
이러한 요약은 아래에 상세한 설명에서 더 설명되는 단순화된 형태로 개념들의 선택을 도입하기 위해 제공된다. 이러한 요약은 청구내용의 핵심 특징들 또는 필수적인 특징들을 식별하는 것으로 의도되지 않으며, 청구내용의 범위를 제한하기 위해 사용되는 것으로 의도되지도 않는다.
도 1은 다양한 계산 알고리즘의 결과들의 플롯(plot)이다.
도 2는 곱을 결정하기 위해 부호-대칭 알고리즘을 결정하는 예시적 프로세스의 흐름도이다.
도 3은 고정-소수점 IDCT 알고리즘을 구현하는 예시적 아키텍처이다.
도 4는 예시적 인코딩 시스템의 블록도이다.
도 5는 예시적 디코딩 시스템의 블록도이다.
이산 코사인 변환들(DCT) 및 역이산 코사인 변환들(IDCT)은 무리 상수들(즉, 코사인들)을 이용한 곱셈 연산들을 수행한다. DCT/IDCT의 구현들의 설계에서, 이러한 무리 상수들의 계산 곱들(the computing products)의 근사화들은 고정-소수점 산술(fixed-point arithmetic)을 이용하여 수행될 수 있다. 부동-소수점(floating-point)을 고정-소수점 값들로 전환하기 위한 하나의 기술은 무리 인수들
Figure 112010019338032-pct00001
의 다이애딕 분수들에 의한 근사화들에 기초한다:
Figure 112010019338032-pct00002
(1)
여기서, ai 및 k 모두 정수들이다. x의
Figure 112010019338032-pct00003
와의 곱셈은 하기와 같이 정수 산술로 근사화의 구현을 제공한다:
Figure 112010019338032-pct00004
(2)
여기서, >>는 비트-단위 우측 시프트 연산(the bit-wise right shift operation)을 나타낸다.
정밀도 비트들(precision bits)의 개수, 즉 k는 다이애딕 유리 근사화들의 복잡성에 영향을 끼칠 수 있다. 소프트웨어 구현들에서, 정밀도 파라미터 k는 레지스터들(예컨대, 16개 또는 32개)의 폭에 의해 제약될 수 있고, 이러한 설계 제약을 충족시키지 않는 결과는 변환을 위한 실행 시간이 연장되는 것일 수 있다. 하드웨어 설계들에서, 정밀도 파라미터 k는 합산기들 및 곱셈기들을 구현하는데 필요한 게이트들의 개수에 영향을 끼친다. 따라서, 고정 소수점 설계들에서의 목표는 비트들의 총 개수 k를 최소화시키면서 동시에 근사화들의 충분한 정확성을 유지하는 것이다.
Figure 112010019338032-pct00005
에 대한 값들 상에서의 임의의 특정 제약들 없이, 그리고 임의의 주어진 k에 대하여 임의의 특정 제약들이 없음을 가정하면, 분자들 ai의 대응하는 값들은
Figure 112010019338032-pct00006
가 되도록 취사선택될 수 있고, (1)에서 근사화들의 절대 오차는 2k에 역비례되어야 한다:
Figure 112010019338032-pct00007
즉, 정밀도(precision)의 각각의 여분 비트(즉, 증가하는 k)는 오차를 절반으로 줄여야 한다.
일부 구현들에서, 오차 레이트(rate)는 근사화될 값들
Figure 112010019338032-pct00008
,
Figure 112010019338032-pct00009
이 일부 부가적인 파라미터
Figure 112010019338032-pct00010
에 의해 스케일링될 수 있다면 향상될 수 있다.
Figure 112010019338032-pct00011
이 n개의 무리수들(n≥2)이면, 그러면, 무한히 많은 개수의 n+2-튜플(tuple)들
Figure 112010019338032-pct00012
이 존재하고, 여기서
Figure 112010019338032-pct00013
Figure 112010019338032-pct00014
이며, 그래서:
Figure 112010019338032-pct00015
이다.
다시 말해, 알고리즘이 자신의 무리 인수들
Figure 112010019338032-pct00016
전부가 일부 파라미터
Figure 112010019338032-pct00017
에 의해 프리-스케일링(pre-scaling)될 수 있도록 변경될 수 있다면, 2-k(1+1/n)만큼 빠르게 감소하는 절대 오차를 갖는 근사화들이 있어야 한다. 예컨대, n=2일 경우, 비트들의 사용에 있어서 대략 50% 더 높은 유효성이 있을 수 있다. 그러나, 인수들
Figure 112010019338032-pct00018
의 더 커다란 세트들의 경우, 이러한 이득은 더 작아질 수 있다.
위의 관계식들(1,2)에 나타난 다이애딕 근사화들은 무리 상수들에 의한 곱들을 정수들에 의한 곱셈들로 계산하는 문제점을 감소시킨다. 자신의 5-비트 다이애딕 근사화 23/32를 이용하여, 정수의 무리 인수
Figure 112010019338032-pct00019
와의 곱셈은 무리 상수들을 근사화하는 프로세스를 묘사한다. 23=10111의 이진 비트 패턴을 찾아내고 각각의 "1"을 덧셈 연산으로 대체함으로써, 23으로 곱셈된 정수의 곱이 하기와 같이 결정될 수 있다:
Figure 112010019338032-pct00020
이러한 근사화는 3번의 덧셈과 3번의 시프트 연산들을 요구한다. 최종 3개의 디짓들(digits)이 "1"들의 시리즈를 형성함을 더 언급함으로써, 하기가 사용될 수 있다:
Figure 112010019338032-pct00021
상기는 복잡성을 단지 2번의 시프트 및 2번의 덧셈 연산들로 감소시킨다.
격리된 디짓들 "1"과 연관된 연산들 "+", 또는 런(run)들 "1...1"의 시작들 및 끝들과 연관된 연산들 "+" 및 "-"의 시퀀스들은 공통적으로 "CSD(Canonical Signed Digit" 분해로 지칭된다. CSD는 무-곱셈기 회로들(multiplier-less circuits)에서 잘 알려진 구현이다. 그러나, CSD 분해들은 최저 개수들의 연산들을 이용한 결과들을 항상 생성하지 않는다. 예컨대, 동일한 인수
Figure 112010019338032-pct00022
의 8-비트 근사화 및 상기 인수의 CSD 분해를 고려하면:
Figure 112010019338032-pct00023
이고,
상기는 4번의 덧셈과 4번의 시프트 연산들을 이용한다. 계산들을 재배열하고 중간 결과들을 재사용함으로써, 더욱 효율적인 알고리즘이 하기와 같이 구성될 수 있다:
Figure 112010019338032-pct00024
구현에 따르면, 다이애딕 분수들에 의한 곱들의 계산은 기초 연산들(elementary operations)로서 우측 시프트들의 사용을 허용함으로써 도출될 수 있다. 예컨대, 인수
Figure 112010019338032-pct00025
를 고려하고, 및 상기 인수의 CSD 분행 따라 우측 시프트 및 덧셈 연산들을 이용하여, 하기가 획득된다:
Figure 112010019338032-pct00026
(3)
또는 1/2 + 1/4 = 1 - 1/4를 더 언급함으로써, 하기가 획득된다:
Figure 112010019338032-pct00027
(4)
동일한 인수에 의한 곱 계산의 또 다른 방식은 하기와 같다:
Figure 112010019338032-pct00028
(5)
도 1은 알고리즘(3, 4, 및 5)에 의해 생성된 값 대 정수 및 무리 분수 23/32의 곱셈에 의해 생성된 값의 플롯들을 도시한다. 각각의 알고리즘(3, 4, 및 5)은 무리 분수 23/32로 곱셈된 곱들을 근사화하는 값들을 계산한다; 그러나, 이러한 근사화들의 각각 내의 오차들이 상이하다. 예컨대, 알고리즘(4)은 모든 양의 오차들을 생성하고, 55/32의 최대 크기를 갖는다. 알고리즘(3)은 더욱 균형잡힌 오차들을 갖고, ±65/64 내 오실레이션(oscillation)들의 크기를 갖는다. 마지막으로, 알고리즘(5)은 ±7/8 내 오실레이션들을 갖는 완벽하게 부호-대칭적인 오차들을 생성한다. 따라서, 부호-대칭 알고리즘은 오차들을 최소화하는 균형잡힌 결과들을 생성할 것이다.
알고리즘의 부호-대칭 특성
Figure 112010019338032-pct00029
은 임의의
Figure 112010019338032-pct00030
의 경우에 하기를 의미한다:
Figure 112010019338032-pct00031
그리고, 또한 임의의 N의 경우에 및
Figure 112010019338032-pct00032
을 가정하면 하기를 암시한다:
Figure 112010019338032-pct00033
즉, 임의의 대칭 인터벌에서 제로-평균 오차를 암시한다.
이러한 특성은 신호 프로세싱 알고리즘의 설계에서 이용될 수 있는데, 그 이유는 상기 특성이 고정-소수점 근사화들에 의해 도입되는 라운딩 오차들이 축적될 확률을 최소화하기 때문이다. 하기에는 다이애딕 분수들에 의한 곱들 및 상기 다이애딕 분수들의 복잡성에 대한 상부한계들(upper bounds)을 계산하기 위한 우측-시프트-기반 부호-대칭 알고리즘에 대한 베이시스가 설명된다.
다이애딕 분수들
Figure 112010019338032-pct00034
의 세트가 주어질 경우, 알고리즘은 하기와 같이 정의될 수 있다:
Figure 112010019338032-pct00035
다음 단계들의 시퀀스로서:
Figure 112010019338032-pct00036
여기서, x1:=x이고, 후속 값들 xk(k=2,...t)은 하기의 기초 연산들 중 하나를 이용함으로써 생성된다:
Figure 112010019338032-pct00037
상기 알고리즘은 인덱스들 j1,...,jm≤t가 존재할 때 종료하며, 그래서 하기가 된다:
Figure 112010019338032-pct00038
따라서, 일부 구현들은 하기의 메트릭들 중 하나 이상의 최소화하는 알고리즘을 검사한다:
평균 비대칭:
Figure 112010019338032-pct00039
평균 오차:
Figure 112010019338032-pct00040
오차의 분산:
Figure 112010019338032-pct00041
오차의 크기:
Figure 112010019338032-pct00042
다수의 상수들
Figure 112010019338032-pct00043
에 의한 곱들을 계산할 때, 위의 메트릭들의 최악의 경우의 값들(상수들
Figure 112010019338032-pct00044
의 각각에 대하여 계산됨)은 상기 알고리즘의 효율성을 평가하는데 사용될 수 있다.
도 2는 곱을 계산하기 위한 프로세스(100)의 단계들을 도시한다. 102에서, 정수 값이 수신되고, 104에서, 상기 정수로 곱셈될 무리 값을 대표하는 유리 다이애딕 상수들이 확인된다. 106에서, 중간 값들이 결정될 수 있다. 예컨대, 상기 정수 값 x 그리고 유리 다이애딕 상수들
Figure 112010019338032-pct00045
의 세트가 주어질 경우, 중간 값들의 시리즈가 하기와 같이 결정될 수 있다:
Figure 112010019338032-pct00046
여기서:
Figure 112010019338032-pct00047
이고, 모든 k≥2에 대하여 값들
Figure 112010019338032-pct00048
이 하기와 같이 획득된다:
Figure 112010019338032-pct00049
여기서, ± 부호들은 양쪽 항들을 이용하여 수행될 필요가 있는 플러스 또는 마이너스 연산을 의미하고, >>는 변수 zj의 sk 비트들만큼의 우측 시프트를 가리킨다.
108에서, 곱들에 대응하는 상기 시리즈들 내의 점들이 결정된다. 즉, 상기 단계의 결과는 인덱스들 l1,...,lm≤t이며, 그래서 하기가 된다:
Figure 112010019338032-pct00050
110에서, 결과 출력 값들
Figure 112010019338032-pct00051
은 일정한 정밀도 메트릭들에 대하여 분석된다. 예컨대, 이러한 값들은 상기 값들이 평균, 비대칭, 분산, 크기 중 하나를 최소화시키는지의 여부를 결정하기 위해 분석될 수 있다.
일부 구현들에서, 프로세스(100)는 0들의 덧셈들 또는 뺄셈들, 또는 0 비트들에 의한 시프트들을 제거할 수 있다. 일부 구현들에서, 중간 값들의 상기 시퀀스는 이러한 전체 연산의 총 계산(또는 구현) 비용이 최소치가 되도록 취사선택될 수 있다.
따라서, 메트릭들의 세트가 주어질 경우, 덧셈들의 총 개수, 시프트들의 총 개수 등으로 특징지어질 수 있는 복잡성을 갖는 알고리즘이 존재할 수 있다. 이와 같이, 최소 개수의 덧셈들 및 시프트들을 달성하는 알고리즘 중에서 최소 개수의 덧셈들, 최소 개수의 시프트들, 최소 개수의 덧셈들 및 시프트들, 그리고 최소 개수의 덧셈들을 갖는 알고리즘 등이 존재한다.
도 3은 예시적 고정-소수점 8×8 IDCT 아키텍처(120)를 도시한다. 상기 아키텍처는 x의 부호-대칭 값들인 알고리즘을 구현할 수 있다. 많은 구현들에서, 이러한 알고리즘은 인수들의 주어진 세트에 대하여 가장 덜 복잡할 수 있다. 위에서 언급된 바와 같이, 상기 IDCT들의 설계는 대칭일 수 있거나 잘-균형잡힌 라운딩 오차들을 일으킬 수 있다. 일부 구현들에서, 상기 알고리즘에 의해 생성되는 오차들의 평균, 분산 및 크기(최대 값들)와 같은 메트릭들의 추정치들이 분석될 수 있다. 상기 알고리즘의 복잡성을 평가할 때, 계산들에 필요한 연산들의 개수들, 그리고 최장 실행 경로, 및 중간 레지스터들의 최대 개수가 고려될 수 있다.
일부 구현들에서, 상기 제안된 고정-소수점 IDCT 아키텍처(120)의 설계에서 사용된 아키텍처는 분리될 수 있고 스케일링될 수 있는 특징들을 갖도록 특징지어질 수 있다. 스케일링단(122)은 행 변환을 위한 1D 스케일 인수들로 열 변환을 위한 1D 스케일 인수들을 인수분해(factoring)함으로써 사전계산되는 단일 8×8 행렬을 포함할 수 있다. 스케일링단(122)은 또한 정밀도의 P 비트들을 입력 DCT 계수들의 각각에 사전할당하기 위해서도 사용될 수 있으며, 그럼으로써 상기 변환의 나머지에 걸친 사용을 위해 고정-소수점 "가수(mantissa)"가 제공된다.
구현에서, 스케일링된 1D 변환 설계에 대한 베이시스는 3번의 평면 회전들(planar rotations)과 2개의 독립 인수들
Figure 112010019338032-pct00052
을 갖는, C.Loeffler, A.Ligtenberg, 및 C.S.Moschytz의 잘 알려진 인수분해의 변형일 수 있다. LLM 인수분해 내에서 상수들 α, β, δ, ε,
Figure 112010019338032-pct00053
, 및 θ의 효율적인 유리 근사화들을 제공하기 위해, 두 개의 부동 인수들
Figure 112010019338032-pct00054
Figure 112010019338032-pct00055
이 하기와 같이 이러한 상수들의 두 개의 서브-그룹들에 사용되고 적용될 수 있다:
Figure 112010019338032-pct00056
이러한 곱셈들은 스케일링단(122)에서 각각의 입력 DCT 계수를
Figure 112010019338032-pct00057
Figure 112010019338032-pct00058
의 각각의 역수(reciprocal)과 곱셈함으로써
Figure 112010019338032-pct00059
Figure 112010019338032-pct00060
에 의해 반전될 수 있다. 즉, 스케일 인수들의 벡터가 1D 변환들(예컨대, 단계들 126 및 128)의 캐스캐이드에서의 첫번째 이전에 앞서 스케일링단(122)에서의 사용을 위해 계산될 수 있다:
Figure 112010019338032-pct00061
이러한 인수들은 하기와 같이 사전계산되는 스케일링 행렬에 후속하여 병합될 수 있다:
Figure 112010019338032-pct00062
여기서, A-J는 이러한 곱 내에서 고유 값들을 지시한다:
Figure 112010019338032-pct00063
그리고, S는 스케일링을 위해 할당된 고정-소수점 정밀도 비트들의 개수를 가리킨다.
이러한 파라미터 S는 상기 S가 각각의 입력 계수의 가수에 대하여 비트들 P의 개수 이상이 되도록 취사선택될 수 있다. 이는 하기와 같이 구현될 계수들 Fvu의 스케일링을 허용한다:
Figure 112010019338032-pct00064
여기서,
Figure 112010019338032-pct00065
은 스케일 인수들의 행렬에서 값들의 정수 근사화들을 지시한다.
1D 변환들(단들 126 및 128)의 시리즈들에서 최종 변환 단계의 끝에서, P개의 고정-소수점 가수 비트들(더하기 상기 1D 단계들
Figure 112010019338032-pct00066
각각의 실행들 동안에 축적되는 3개의 여분 비트들)은 하기와 같이 우측 시프트 연산들(130)에 의해 변환 출력들 밖으로 단순히 시프트된다:
Figure 112010019338032-pct00067
상기 계산된 값의 적절한 라운딩을 보장하기 위해, DC 바이어스단(124)을 이용하는 시프트들에 앞서 2P+2의 바이어스가 상기 값들 f'yx에 덧셈될 수 있다. 이러한 라운딩 바이어스는 제1 1D 변환을 실행하기에 앞서 DC 계수를 교란(perturbing)함으로써 구현된다:
Figure 112010019338032-pct00068
일부 구현들에서, 위에서 논의된 바와 같은 균형잡힌(즉, 부호-대칭) 알고리즘은 ISO/IEC 23002-2 IDCT 표준에서 사용될 수 있다. 이러한 표준은 하기의 상수들에 의한 곱들의 계산을 위한 프로세스를 정의한다:
Figure 112010019338032-pct00069
그리고, 하기와 같이 달성된다:
Figure 112010019338032-pct00070
도 4는 인코딩 시스템(400)의 블록도를 나타내고, 상기 인코딩 시스템(400)은 위에서 설명된 바와 같이 부호-대칭 라운딩 오차들을 갖는 다이애딕 분수들을 구현하기 위한 변환들을 포함한다. 캡쳐 디바이스/메모리(410)는 소스 신호를 수신할 수 있고, 디지털 포맷으로의 변환을 수행할 수 있고, 입력/원시 데이터를 제공한다. 캡쳐 디바이스(410)는 비디오 카메라, 디지털화기, 또는 어떤 다른 디바이스일 수 있다. 프로세서(420)는 원시 데이터를 프로세싱하고, 압축된 데이터를 생성한다. 프로세서(420) 내에서, 원시 데이터는 DCT 유닛(422)에 의해 변환되고, 지그-재그 스캔 유닛(424)에 의해 스캐닝되고, 양자화기(426)에 의해 양자화되고, 엔트로피 인코더(428)에 의해 인코딩되고, 및 패킷화기(430)에 의해 패킷화될 수 있다. DCT 유닛(422)은 이곳에 설명된 기술들에 따라 원시 데이터에 대하여 2D DCT들을 수행할 수 있고, 전체 및 스케일링된 인터페이스들 모두를 지원할 수 있다. 유닛들(422 내지 430)의 각각은 하드웨어, 펌웨어 및/또는 소프트웨어로 구현될 수 있다. 예컨대, DCT 유닛(422)은 전용 하드웨어, 산술 논리 유닛(ALU)을 위한 명령들의 세트 등에 의해 구현될 수 있다.
저장 유닛(440)은 프로세서(420)로부터의 압축된 데이터를 저장할 수 있다. 전송기(442)는 압축된 데이터를 전송할 수 있다. 제어기/프로세서(450)는 인코딩 시스템(400) 내의 다양한 유닛들의 동작을 제어한다. 메모리(452)는 인코딩 시스템(400)을 위한 데이터 및 프로그램 코드들을 저장한다. 하나 이상의 버스들(460)은 인코딩 시스템(400) 내의 다양한 유닛들을 상호연결시킨다.
도 5는 디코딩 시스템(500)의 블록도를 나타내고, 상기 디코딩 시스템(500)은 위에서 설명된 바와 같이 부호-대칭 라운딩 오차들을 갖는 다이애딕 분수들을 구현하는 변환들을 포함할 수 있다. 수신기(510)는 인코딩 시스템으로부터의 압축된 데이터를 수신할 수 있고, 저장 유닛(512)은 상기 수신된 압축된 데이터를 저장할 수 있다. 프로세서(520)는 압축된 데이터를 프로세싱하고, 출력 데이터를 생성한다. 프로세서(520) 내에서, 압축된 데이터는 역-패킷화기(522)에 의해 역-패킷화되고, 엔트로피 디코더(524)에 의해 디코딩되고, 역 양자화기(526)에 의해 역 양자화되고, 역 지그-재그 스캔 유닛(528)에 의해 적절한 순서로 놓여지고, IDCT 유닛(530)에 의해 변환될 수 있다. IDCT 유닛(530)은 이곳에 설명된 기술들에 따라 전체 또는 스케일링된 변환 계수들에 대하여 2D IDCT들을 수행할 수 있고, 전체 및 스케일링된 인터페이스들 모두를 지원할 수 있다. 유닛들(522 내지 530)의 각각은 하드웨어, 펌웨어 및/또는 소프트웨어로 구현될 수 있다. 예컨대, IDCT 유닛(530)은 전용 하드웨어, ALU를 위한 명령들의 세트 등에 의해 구현될 수 있다.
디스플레이 유닛(540)은 프로세서(520)로부터의 재구성된 이미지들 및 비디오를 디스플레이한다. 제어기/프로세서(550)는 디코딩 시스템(500) 내의 다양한 유닛들의 동작을 제어한다. 메모리(552)는 디코딩 시스템(500)을 위한 데이터 및 프로그램 코드들을 저장한다. 하나 이상의 버스들(560)이 디코딩 시스템(500) 내의 다양한 유닛들을 상호연결시킨다.
프로세서들(420 및 520)은 하나 이상의 주문형반도체(ASICs), 디지털 신호 프로세서들(DSP들), 및/또는 어떤 다른 타입의 프로세서들에 의해 각각 구현될 수 있다. 대안적으로, 프로세서들(420 및 520)은 하나 이상의 랜덤 액세스 메모리들(RAMs), 읽기 전용 메모리(ROMs), 전기 프로그램가능 ROM들(EPROMs), 전기 삭제가능 프로그램가능 ROM들(EEPROMs), 자기 디스크들, 광 디스크들, 및/또는 종래에 알려진 다른 타입들의 휘발성 및 비휘발성 메모리들로 각각 대체될 수 있다.
이곳에 설명된 실시예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 또는 그들의 임의의 조합에 의해 구현될 수 있다. 시스템들 및/또는 방법들이 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드, 프로그램 코드 또는 코드 세그먼트들 내에 구현될 때, 상기 시스템들 및/또는 방법들은 저장 컴포넌트와 같은 기계-판독 가능 매체 내에 저장될 수 있다. 코드 세그먼트는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램문들의 임의의 조합을 나타낼 수 있다. 코드 세그먼트는 정보, 데이터, 인자들, 파라미터들, 또는 메모리 콘텐츠를 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 결합될 수 있다. 정보, 인자들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 전송 등을 포함하는 임의의 적당한 수단을 이용하여 전달되거나, 포워딩되거나, 또는 전송될 수 있다.
소프트웨어 구현의 경우, 이곳에 설명된 기술들은 이곳에 설명된 기능들을 수행하는 모듈들(예컨대, 프로시저들, 함수들 등등)에 의해 구현될 수 있다. 소프트웨어 코드들은 메모리 유닛들 내에 저장되고 프로세서들에 의해 실행될 수 있다. 메모리 유닛은 프로세서 내에 또는 프로세스 외부에 구현될 수 있고, 후자의 경우 메모리 유닛은 종래에 알려진 바와 같은 다양한 수단을 통해 프로세서에 통신 가능하게 결합될 수 있다.
이곳에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어 내에, 프로세서에 의해 실행되는 소프트웨어 모듈 내에, 또는 둘의 조합 내에 바로 실시될 수 있다. 소프트웨어 모듈은 랜덤 액세스 메모리("RAM"), 플래시 메모리, 읽기-전용 메모리("ROM"), 삭제가능 프로그램가능 읽기-전용 메모리("EPROM"), 전기-삭제가능 프로그램가능 읽기-전용 메모리("EEPROM"), 레지스터들, 하드디스크, 탈착가능 디스크, CD-ROM, 또는 종래에 알려진 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적 저장 매체는 프로세서에 결합되어, 상기 프로세서가 저장 매체로부터 정보를 판독하고 정보를 저장 매체에 기록할 수 있게 한다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 주문형반도체("ASIC") 내에 상주할 수 있다. ASIC은 사용자 단말 내에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말 내에서 이산 컴포넌트들로서 상주할 수 있다.
이곳에 설명된 방법들은 종래에 당업자에 의해 알려진 다양한 하드웨어, 프로세서들 및 시스템들 상에 구현될 수 있다. 예컨대, 구현에서 사용되는 기계는 콘텐트 및 정보를 디스플레이하기 위한 디스플레이, 클라이언트의 동작을 제어하기 위한 프로세서 그리고 기계의 동작에 관련된 프로그램들 및 데이터를 저장하기 위한 메모리를 가질 수 있다. 일부 구현들에서, 기계는 휴대폰이다. 일부 구현들에서, 기계는 핸드헬드 컴퓨터 또는 통신 능력들을 갖춘 핸드세트이다. 다른 구현에서, 기계는 통신 능력들을 갖춘 퍼스널 컴퓨터이다.
이곳에 설명된 구현들과 관련하여 설명된 다양한 예시적 논리들, 논리적 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, 현장 프로그램가능 게이트 어레이(FPGA) 또는 다른 프로그램가능 논리 디바이스, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 컴포넌트들, 또는 이곳에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있으나, 대안적으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 기계일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예컨대 DSP 및 마이크로프로세서의 조합, 다수의 마이크로프로세서들, DSP 코어와 관련된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
비록 주요 내용이 구조적 특징들 및/또는 방법적 동작들에 특정한 언어로 설명되었더라도, 청구범위에 정의된 주요 내용이 위에서 설명된 특정한 특징들 또는 동작들로 제한되는 것이 아님이 이해될 것이다. 그보다는, 위에서 설명된 특정한 특징들 및 동작들은 청구항들을 구현하는 예시적 형태들로서 개시된다.

Claims (24)

  1. 신호 프로세싱 알고리즘에서의 사용을 위한 곱들(products)을 계산하기 위한 방법으로서,
    정수 값 x를 수신하는 단계;
    주어진 상수 인수들(constant factors)을 근사화하는 다이애딕 분수들의 세트(a set of dyadic fractions)
    Figure 112011064929275-pct00071
    를 결정하는 단계 ― ai, am 및 b는 정수이고, b는 정밀도 파라미터(precision parameter)임 ―;
    x1을 입력 정수 값 x로 셋팅하고; 그리고 (a) x1,...xt-1 중 적어도 하나, 그리고 (b) 플러스 연산, 마이너스 연산, 또는 우측-시프트 연산 중 하나에 따라 x2...xt를 결정함으로써, 상기 곱들을 계산하기 위해, 중간 값들 x1...xt의 시퀀스를 결정하는 단계; 및
    Figure 112011064929275-pct00091
    가 되도록, 출력 값들의 인덱스들
    Figure 112011064929275-pct00073
    를 결정하는 단계
    를 포함하는,
    곱들을 계산하기 위한 방법.
  2. 제 1 항에 있어서,
    평균 비대칭 메트릭, 평균 오차 메트릭, 오차 메트릭의 분산, 및 오차 메트릭의 크기를 최소화하는 것에 따라 출력 값들을 생성하는 상기 시퀀스를 결정하는 단계
    를 더 포함하는,
    곱들을 계산하기 위한 방법.
  3. 제 2 항에 있어서,
    상기 평균 비대칭 메트릭, 상기 평균 오차 메트릭, 상기 오차 메트릭의 분산, 및 상기 오차 메트릭의 크기의 결과에 기초하여 출력 값들의 상기 시퀀스의 효율성을 평가하는 단계
    를 더 포함하는,
    곱들을 계산하기 위한 방법.
  4. 제 1 항에 있어서,
    최소 개수의 덧셈들(a least number of additions)을 갖는 중간 값들의 상기 시퀀스를 결정하는 단계
    를 더 포함하는,
    곱들을 계산하기 위한 방법.
  5. 제 1 항에 있어서,
    최소 개수의 우측 시프트들을 갖는 중간 값들의 상기 시퀀스를 결정하는 단계
    를 더 포함하는,
    곱들을 계산하기 위한 방법.
  6. 제 1 항에 있어서,
    최소 개수의 덧셈들 및 우측 시프트들을 갖는 중간 값들의 상기 시퀀스를 결정하는 단계
    를 더 포함하는,
    곱들을 계산하기 위한 방법.
  7. 제 6 항에 있어서,
    상기 최소 개수의 덧셈들 및 우측 시프트들을 갖는 중간 값들의 상기 시퀀스 중에서 최소 개수의 덧셈들을 갖는 중간 값들의 상기 시퀀스를 결정하는 단계
    를 더 포함하는,
    곱들을 계산하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 x2...xt를 결정하는 것은,
    값들
    Figure 112011064929275-pct00074
    Figure 112011064929275-pct00075
    중 하나를 갖는 것으로서 상기 중간 값들의 멤버 xk를 정의하는 단계
    를 더 포함하고,
    여기서, sk는 xi를 우측 시프트하는 비트들의 수이고, i는 k 미만이고, j는 k 미만인,
    곱들을 계산하기 위한 방법.
  9. 제 1 항에 있어서,
    관계식
    Figure 112010019338032-pct00076
    을 최소화하는 것으로서 부호-대칭 시퀀스(sign-symmetric sequence)를 결정하는 단계
    를 더 포함하는,
    곱들을 계산하기 위한 방법.
  10. 컴퓨터-판독가능 매체로서,
    신호 프로세싱 알고리즘에서의 사용을 위한 곱들을 계산하기 위한 방법을 수행하기 위한 실행 가능한 명령들을 포함하고,
    상기 명령들은,
    정수 값 x를 수신하고;
    주어진 상수 인수들을 근사화하는 다이애딕 분수들의 세트
    Figure 112011064929275-pct00077
    를 결정하고 ― aj, am 및 b는 정수이고, b는 정밀도 파라미터(precision parameter)임 ―;
    중간 값들 x1...xt의 시퀀스를 결정하고; 및
    Figure 112011064929275-pct00092
    가 되도록, 출력 값들의 인덱스들
    Figure 112011064929275-pct00079
    를 결정하기 위한 것인,
    컴퓨터-판독가능 매체.
  11. 제 10 항에 있어서,
    평균 비대칭 메트릭, 평균 오차 메트릭, 오차 메트릭의 분산, 및 오차 메트릭의 크기를 최소화하는 것에 따라 출력 값들을 생성하는 상기 시퀀스를 결정하기 위한 명령들
    을 더 포함하는,
    컴퓨터-판독가능 매체.
  12. 제 11 항에 있어서,
    x1을 입력 정수 값으로 셋팅하고; 및
    (a) x1,...xt-1 중 적어도 하나, 그리고 (b) 플러스 연산, 마이너스 연산, 또는 우측-시프트 연산 중 하나에 따라 x2...xt를 결정하기 위한 명령들
    을 더 포함하는,
    컴퓨터-판독가능 매체.
  13. 제 11 항에 있어서,
    상기 평균 비대칭 메트릭, 상기 평균 오차 메트릭, 상기 오차 메트릭의 분산, 및 상기 오차 메트릭의 크기의 결과에 기초하여 출력 값들의 상기 시퀀스의 효율성을 평가하기 위한 명령들
    을 더 포함하는,
    컴퓨터-판독가능 매체.
  14. 제 10 항에 있어서,
    최소 개수의 덧셈들을 갖는 중간 값들의 상기 시퀀스를 결정하고; 및
    최소 개수의 시프트들을 갖는 중간 값들의 상기 시퀀스를 결정하기 위한 명령들
    을 더 포함하는,
    컴퓨터-판독가능 매체.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 신호 프로세싱 알고리즘에서의 사용을 위한 곱들을 계산하기 위한 장치로서,
    정수 값 x를 수신하기 위한 수단;
    주어진 상수 인수들을 근사화하는 다이애딕 분수들의 세트
    Figure 112011064929275-pct00080
    를 결정하기 위한 수단 ― ai, am 및 b는 정수이고, b는 정밀도 파라미터(precision parameter)임 ―;
    중간 값들 x1...xt의 시퀀스를 결정하기 위한 수단; 및
    Figure 112011064929275-pct00093
    가 되도록, 출력 값들의 인덱스들
    Figure 112011064929275-pct00082
    를 결정하기 위한 수단
    을 포함하는,
    곱들을 계산하기 위한 장치.
  20. 제 19 항에 있어서,
    출력 값들의 시퀀스는 평균 비대칭 메트릭, 평균 오차 메트릭, 오차 메트릭의 분산, 및 오차 메트릭의 크기를 최소화하는 것에 따라 결정되는,
    곱들을 계산하기 위한 장치.
  21. 제 19 항에 있어서,
    상기 시퀀스를 결정하기 위한 수단은,
    x1을 입력 정수 값으로 셋팅하고, x1,...xt-1 중 하나, 그리고 플러스 연산, 마이너스 연산, 또는 우측-시프트 연산 중 하나 가운데 하나에 따라 x2...xt를 결정하는,
    곱들을 계산하기 위한 장치.
  22. 제 20 항에 있어서,
    상기 평균 비대칭 메트릭, 상기 평균 오차 메트릭, 상기 오차 메트릭의 분산, 및 상기 오차 메트릭의 크기의 결과에 따라 효율성이 결정되는,
    곱들을 계산하기 위한 장치.
  23. 신호 프로세싱 알고리즘에서의 사용을 위한 곱을 계산하기 위한 방법으로서,
    정수 값 x를 수신하는 단계;
    주어진 상수 인수들을 근사화하는 다이애딕 분수들의 세트
    Figure 112011064929275-pct00083
    를 결정하는 단계 ― ai, am 및 b는 정수이고, b는 정밀도 파라미터(precision parameter)임 ―;
    중간 값들 x1...xt의 시퀀스를 결정하는 단계; 및
    Figure 112011064929275-pct00094
    가 되도록, 출력 값들의 인덱스들
    Figure 112011064929275-pct00085
    를 결정하는 단계
    를 포함하는,
    곱을 계산하기 위한 방법.
  24. 제 23 항에 있어서,
    x1을 입력 정수 값으로 셋팅하는 단계; 및
    x1,...xt-1 중 하나, 그리고 플러스 연산, 마이너스 연산, 또는 우측-시프트 연산 중 하나 가운데 하나에 따라 x2...xt를 결정하는 단계; 및
    평균 비대칭 메트릭, 평균 오차 메트릭, 오차 메트릭의 분산, 및 오차 메트릭의 크기를 최소화하는 것에 따라 출력 값들을 생성하는 상기 시퀀스를 결정하는 단계
    를 더 포함하는,
    곱을 계산하기 위한 방법.
KR1020107006666A 2007-08-28 2008-08-28 부호­대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산 KR101107923B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US96838107P 2007-08-28 2007-08-28
US60/968,381 2007-08-28
US12/139,957 2008-06-16
US12/139,957 US8819095B2 (en) 2007-08-28 2008-06-16 Fast computation of products by dyadic fractions with sign-symmetric rounding errors
PCT/US2008/074607 WO2009032740A2 (en) 2007-08-28 2008-08-28 Fast computation of products by dyadic fractions with sign-symmetric rounding errors

Publications (2)

Publication Number Publication Date
KR20100066521A KR20100066521A (ko) 2010-06-17
KR101107923B1 true KR101107923B1 (ko) 2012-01-25

Family

ID=40409178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107006666A KR101107923B1 (ko) 2007-08-28 2008-08-28 부호­대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산

Country Status (12)

Country Link
US (2) US8819095B2 (ko)
EP (1) EP2195750B1 (ko)
JP (1) JP4965711B2 (ko)
KR (1) KR101107923B1 (ko)
CN (2) CN102982007B (ko)
BR (1) BRPI0815791B1 (ko)
CA (1) CA2698269C (ko)
ES (1) ES2791420T3 (ko)
HU (1) HUE048765T2 (ko)
RU (1) RU2468422C2 (ko)
TW (1) TWI474194B (ko)
WO (1) WO2009032740A2 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI343021B (en) * 2006-10-24 2011-06-01 Princeton Technology Corp Data transformation method and data transformation circuit capable of saving numeral operations
US8819095B2 (en) * 2007-08-28 2014-08-26 Qualcomm Incorporated Fast computation of products by dyadic fractions with sign-symmetric rounding errors
PT3367687T (pt) 2011-06-24 2021-04-26 Ntt Docomo Inc Método e aparelho para a previsão da compensação de movimento
US9111059B2 (en) 2012-11-01 2015-08-18 Stc.Unm System and methods for dynamic management of hardware resources

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0613914A (ja) * 1991-11-22 1994-01-21 Intel Corp 乗算不要の離散的コサイン変換方式および装置
WO2007047478A2 (en) * 2005-10-12 2007-04-26 Qualcomm Incorporated Efficient multiplication-free computation for signal and data processing

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561424A (en) * 1993-04-30 1996-10-01 Lucent Technologies Inc. Data converter with minimum phase fir filter and method for calculating filter coefficients
US6507898B1 (en) 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
JP3975629B2 (ja) 1999-12-16 2007-09-12 ソニー株式会社 画像復号装置及び画像復号方法
KR100422443B1 (ko) * 2001-02-13 2004-03-11 삼성전자주식회사 버츄얼 공통패턴을 사용한 저전력 csd 선형위상 fir필터 구조 및 그에 따른 필터구현방법
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
KR100422449B1 (ko) * 2001-11-12 2004-03-11 삼성전자주식회사 수직 공통패턴을 사용한 저전력 csd 선형위상 디지털필터 구조 및 그에 따른 필터구현방법
US6963613B2 (en) 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
JP2004334212A (ja) * 2003-05-09 2004-11-25 Samsung Electronics Co Ltd モンゴメリ掛け算器及び掛け算方法
US7689641B2 (en) 2003-06-30 2010-03-30 Intel Corporation SIMD integer multiply high with round and shift
US8335811B2 (en) 2004-03-04 2012-12-18 Broadcom Corporation Method and system for high fidelity IDCT and DCT algorithms
US7587093B2 (en) 2004-07-07 2009-09-08 Mediatek Inc. Method and apparatus for implementing DCT/IDCT based video/image processing
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
KR100667595B1 (ko) * 2005-12-29 2007-01-11 삼성전자주식회사 가변 길이 디코더
US20070180010A1 (en) * 2006-01-13 2007-08-02 Fujitsu Limited System and method for iteratively eliminating common subexpressions in an arithmetic system
US8849884B2 (en) * 2006-03-29 2014-09-30 Qualcom Incorporate Transform design with scaled and non-scaled interfaces
US8385424B2 (en) 2006-06-26 2013-02-26 Qualcomm Incorporated Reduction of errors during computation of inverse discrete cosine transform
DE102006038629A1 (de) 2006-08-17 2008-02-21 Dr. Suwelack Skin & Health Care Ag Stabilisierte Wirkstoffzusammensetzung
TWI343021B (en) 2006-10-24 2011-06-01 Princeton Technology Corp Data transformation method and data transformation circuit capable of saving numeral operations
US8819095B2 (en) * 2007-08-28 2014-08-26 Qualcomm Incorporated Fast computation of products by dyadic fractions with sign-symmetric rounding errors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0613914A (ja) * 1991-11-22 1994-01-21 Intel Corp 乗算不要の離散的コサイン変換方式および装置
WO2007047478A2 (en) * 2005-10-12 2007-04-26 Qualcomm Incorporated Efficient multiplication-free computation for signal and data processing

Also Published As

Publication number Publication date
JP2011507313A (ja) 2011-03-03
BRPI0815791A2 (pt) 2015-02-24
WO2009032740A3 (en) 2011-02-10
CN102067108A (zh) 2011-05-18
RU2010111763A (ru) 2011-10-10
CN102982007A (zh) 2013-03-20
WO2009032740A2 (en) 2009-03-12
JP4965711B2 (ja) 2012-07-04
EP2195750B1 (en) 2020-03-11
US20090063599A1 (en) 2009-03-05
CN102982007B (zh) 2016-04-06
US9459831B2 (en) 2016-10-04
EP2195750A2 (en) 2010-06-16
KR20100066521A (ko) 2010-06-17
US8819095B2 (en) 2014-08-26
ES2791420T3 (es) 2020-11-04
BRPI0815791B1 (pt) 2020-02-11
RU2468422C2 (ru) 2012-11-27
TW200925897A (en) 2009-06-16
CA2698269C (en) 2016-05-17
CN102067108B (zh) 2016-03-09
TWI474194B (zh) 2015-02-21
US20140330878A1 (en) 2014-11-06
CA2698269A1 (en) 2009-03-12
HUE048765T2 (hu) 2020-08-28

Similar Documents

Publication Publication Date Title
KR101131757B1 (ko) 스케일링 인터페이스 및 넌-스케일링 인터페이스를 갖는 변환 디자인
JP5113067B2 (ja) 信号およびデータ処理のための効率的な無乗算計算
RU2429531C2 (ru) Преобразования с общими множителями
CA2467670C (en) System and methods for efficient quantization
KR101107923B1 (ko) 부호­대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산
WO1997023822A1 (en) A system for providing the absolute difference of unsigned values
He et al. Post-training quantization for cross-platform learned image compression
Goyal et al. Computation-distortion characteristics of block transform coding
KR101084581B1 (ko) 고정 소수점 지수함수 연산 방법, 장치 및 기록매체
Yun et al. On the fixed-point error analysis of several fast IDCT algorithms
He et al. Post-training quantization is all you need to perform cross-platform learned image compression
US7869504B2 (en) Coefficient scaling operational units
JP2008158855A (ja) 相関演算器及び相関演算方法
Arnold Avoiding oddification to simplify MPEG-1 decoding with LNS
Lee An estimation of mismatch error in IDCT decoders implemented with hybrid-LNS arithmetic

Legal Events

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

Payment date: 20141230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 8