KR101107923B1 - 부호대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산 - Google Patents
부호대칭 라운딩 오차들을 갖는 다이애딕 분수들에 의한 곱들의 고속 계산 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance 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
본 발명은 일반적으로 프로세싱에 관한 것으로, 더욱 상세하게는 하드웨어 및 소프트웨어 프로세싱에서 이용되는 근사화 기술들에 관한 것이다.
부호가 있는 정수들(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는 예시적 디코딩 시스템의 블록도이다.
도 2는 곱을 결정하기 위해 부호-대칭 알고리즘을 결정하는 예시적 프로세스의 흐름도이다.
도 3은 고정-소수점 IDCT 알고리즘을 구현하는 예시적 아키텍처이다.
도 4는 예시적 인코딩 시스템의 블록도이다.
도 5는 예시적 디코딩 시스템의 블록도이다.
이산 코사인 변환들(DCT) 및 역이산 코사인 변환들(IDCT)은 무리 상수들(즉, 코사인들)을 이용한 곱셈 연산들을 수행한다. DCT/IDCT의 구현들의 설계에서, 이러한 무리 상수들의 계산 곱들(the computing products)의 근사화들은 고정-소수점 산술(fixed-point arithmetic)을 이용하여 수행될 수 있다. 부동-소수점(floating-point)을 고정-소수점 값들로 전환하기 위한 하나의 기술은 무리 인수들 의 다이애딕 분수들에 의한 근사화들에 기초한다:
여기서, >>는 비트-단위 우측 시프트 연산(the bit-wise right shift operation)을 나타낸다.
정밀도 비트들(precision bits)의 개수, 즉 k는 다이애딕 유리 근사화들의 복잡성에 영향을 끼칠 수 있다. 소프트웨어 구현들에서, 정밀도 파라미터 k는 레지스터들(예컨대, 16개 또는 32개)의 폭에 의해 제약될 수 있고, 이러한 설계 제약을 충족시키지 않는 결과는 변환을 위한 실행 시간이 연장되는 것일 수 있다. 하드웨어 설계들에서, 정밀도 파라미터 k는 합산기들 및 곱셈기들을 구현하는데 필요한 게이트들의 개수에 영향을 끼친다. 따라서, 고정 소수점 설계들에서의 목표는 비트들의 총 개수 k를 최소화시키면서 동시에 근사화들의 충분한 정확성을 유지하는 것이다.
가 되도록 취사선택될 수 있고, (1)에서 근사화들의 절대 오차는 2k에 역비례되어야 한다:
즉, 정밀도(precision)의 각각의 여분 비트(즉, 증가하는 k)는 오차를 절반으로 줄여야 한다.
일부 구현들에서, 오차 레이트(rate)는 근사화될 값들 , 이 일부 부가적인 파라미터 에 의해 스케일링될 수 있다면 향상될 수 있다. 이 n개의 무리수들(n≥2)이면, 그러면, 무한히 많은 개수의 n+2-튜플(tuple)들 이 존재하고, 여기서 및 이며, 그래서:
다시 말해, 알고리즘이 자신의 무리 인수들 전부가 일부 파라미터 에 의해 프리-스케일링(pre-scaling)될 수 있도록 변경될 수 있다면, 2-k(1+1/n)만큼 빠르게 감소하는 절대 오차를 갖는 근사화들이 있어야 한다. 예컨대, n=2일 경우, 비트들의 사용에 있어서 대략 50% 더 높은 유효성이 있을 수 있다. 그러나, 인수들 의 더 커다란 세트들의 경우, 이러한 이득은 더 작아질 수 있다.
위의 관계식들(1,2)에 나타난 다이애딕 근사화들은 무리 상수들에 의한 곱들을 정수들에 의한 곱셈들로 계산하는 문제점을 감소시킨다. 자신의 5-비트 다이애딕 근사화 23/32를 이용하여, 정수의 무리 인수 와의 곱셈은 무리 상수들을 근사화하는 프로세스를 묘사한다. 23=10111의 이진 비트 패턴을 찾아내고 각각의 "1"을 덧셈 연산으로 대체함으로써, 23으로 곱셈된 정수의 곱이 하기와 같이 결정될 수 있다:
이러한 근사화는 3번의 덧셈과 3번의 시프트 연산들을 요구한다. 최종 3개의 디짓들(digits)이 "1"들의 시리즈를 형성함을 더 언급함으로써, 하기가 사용될 수 있다:
상기는 복잡성을 단지 2번의 시프트 및 2번의 덧셈 연산들로 감소시킨다.
격리된 디짓들 "1"과 연관된 연산들 "+", 또는 런(run)들 "1...1"의 시작들 및 끝들과 연관된 연산들 "+" 및 "-"의 시퀀스들은 공통적으로 "CSD(Canonical Signed Digit" 분해로 지칭된다. CSD는 무-곱셈기 회로들(multiplier-less circuits)에서 잘 알려진 구현이다. 그러나, CSD 분해들은 최저 개수들의 연산들을 이용한 결과들을 항상 생성하지 않는다. 예컨대, 동일한 인수 의 8-비트 근사화 및 상기 인수의 CSD 분해를 고려하면:
상기는 4번의 덧셈과 4번의 시프트 연산들을 이용한다. 계산들을 재배열하고 중간 결과들을 재사용함으로써, 더욱 효율적인 알고리즘이 하기와 같이 구성될 수 있다:
구현에 따르면, 다이애딕 분수들에 의한 곱들의 계산은 기초 연산들(elementary operations)로서 우측 시프트들의 사용을 허용함으로써 도출될 수 있다. 예컨대, 인수 를 고려하고, 및 상기 인수의 CSD 분행 따라 우측 시프트 및 덧셈 연산들을 이용하여, 하기가 획득된다:
또는 1/2 + 1/4 = 1 - 1/4를 더 언급함으로써, 하기가 획득된다:
동일한 인수에 의한 곱 계산의 또 다른 방식은 하기와 같다:
도 1은 알고리즘(3, 4, 및 5)에 의해 생성된 값 대 정수 및 무리 분수 23/32의 곱셈에 의해 생성된 값의 플롯들을 도시한다. 각각의 알고리즘(3, 4, 및 5)은 무리 분수 23/32로 곱셈된 곱들을 근사화하는 값들을 계산한다; 그러나, 이러한 근사화들의 각각 내의 오차들이 상이하다. 예컨대, 알고리즘(4)은 모든 양의 오차들을 생성하고, 55/32의 최대 크기를 갖는다. 알고리즘(3)은 더욱 균형잡힌 오차들을 갖고, ±65/64 내 오실레이션(oscillation)들의 크기를 갖는다. 마지막으로, 알고리즘(5)은 ±7/8 내 오실레이션들을 갖는 완벽하게 부호-대칭적인 오차들을 생성한다. 따라서, 부호-대칭 알고리즘은 오차들을 최소화하는 균형잡힌 결과들을 생성할 것이다.
즉, 임의의 대칭 인터벌에서 제로-평균 오차를 암시한다.
이러한 특성은 신호 프로세싱 알고리즘의 설계에서 이용될 수 있는데, 그 이유는 상기 특성이 고정-소수점 근사화들에 의해 도입되는 라운딩 오차들이 축적될 확률을 최소화하기 때문이다. 하기에는 다이애딕 분수들에 의한 곱들 및 상기 다이애딕 분수들의 복잡성에 대한 상부한계들(upper bounds)을 계산하기 위한 우측-시프트-기반 부호-대칭 알고리즘에 대한 베이시스가 설명된다.
다음 단계들의 시퀀스로서:
여기서, x1:=x이고, 후속 값들 xk(k=2,...t)은 하기의 기초 연산들 중 하나를 이용함으로써 생성된다:
상기 알고리즘은 인덱스들 j1,...,jm≤t가 존재할 때 종료하며, 그래서 하기가 된다:
따라서, 일부 구현들은 하기의 메트릭들 중 하나 이상의 최소화하는 알고리즘을 검사한다:
평균 비대칭:
평균 오차:
오차의 분산:
오차의 크기:
도 2는 곱을 계산하기 위한 프로세스(100)의 단계들을 도시한다. 102에서, 정수 값이 수신되고, 104에서, 상기 정수로 곱셈될 무리 값을 대표하는 유리 다이애딕 상수들이 확인된다. 106에서, 중간 값들이 결정될 수 있다. 예컨대, 상기 정수 값 x 그리고 유리 다이애딕 상수들 의 세트가 주어질 경우, 중간 값들의 시리즈가 하기와 같이 결정될 수 있다:
여기서, ± 부호들은 양쪽 항들을 이용하여 수행될 필요가 있는 플러스 또는 마이너스 연산을 의미하고, >>는 변수 zj의 sk 비트들만큼의 우측 시프트를 가리킨다.
108에서, 곱들에 대응하는 상기 시리즈들 내의 점들이 결정된다. 즉, 상기 단계의 결과는 인덱스들 l1,...,lm≤t이며, 그래서 하기가 된다:
110에서, 결과 출력 값들 은 일정한 정밀도 메트릭들에 대하여 분석된다. 예컨대, 이러한 값들은 상기 값들이 평균, 비대칭, 분산, 크기 중 하나를 최소화시키는지의 여부를 결정하기 위해 분석될 수 있다.
일부 구현들에서, 프로세스(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개의 독립 인수들 을 갖는, C.Loeffler, A.Ligtenberg, 및 C.S.Moschytz의 잘 알려진 인수분해의 변형일 수 있다. LLM 인수분해 내에서 상수들 α, β, δ, ε, , 및 θ의 효율적인 유리 근사화들을 제공하기 위해, 두 개의 부동 인수들 및 이 하기와 같이 이러한 상수들의 두 개의 서브-그룹들에 사용되고 적용될 수 있다:
이러한 곱셈들은 스케일링단(122)에서 각각의 입력 DCT 계수를 및 의 각각의 역수(reciprocal)과 곱셈함으로써 및 에 의해 반전될 수 있다. 즉, 스케일 인수들의 벡터가 1D 변환들(예컨대, 단계들 126 및 128)의 캐스캐이드에서의 첫번째 이전에 앞서 스케일링단(122)에서의 사용을 위해 계산될 수 있다:
이러한 인수들은 하기와 같이 사전계산되는 스케일링 행렬에 후속하여 병합될 수 있다:
여기서, A-J는 이러한 곱 내에서 고유 값들을 지시한다:
그리고, S는 스케일링을 위해 할당된 고정-소수점 정밀도 비트들의 개수를 가리킨다.
이러한 파라미터 S는 상기 S가 각각의 입력 계수의 가수에 대하여 비트들 P의 개수 이상이 되도록 취사선택될 수 있다. 이는 하기와 같이 구현될 계수들 Fvu의 스케일링을 허용한다:
1D 변환들(단들 126 및 128)의 시리즈들에서 최종 변환 단계의 끝에서, P개의 고정-소수점 가수 비트들(더하기 상기 1D 단계들 각각의 실행들 동안에 축적되는 3개의 여분 비트들)은 하기와 같이 우측 시프트 연산들(130)에 의해 변환 출력들 밖으로 단순히 시프트된다:
상기 계산된 값의 적절한 라운딩을 보장하기 위해, DC 바이어스단(124)을 이용하는 시프트들에 앞서 2P+2의 바이어스가 상기 값들 f'yx에 덧셈될 수 있다. 이러한 라운딩 바이어스는 제1 1D 변환을 실행하기에 앞서 DC 계수를 교란(perturbing)함으로써 구현된다:
일부 구현들에서, 위에서 논의된 바와 같은 균형잡힌(즉, 부호-대칭) 알고리즘은 ISO/IEC 23002-2 IDCT 표준에서 사용될 수 있다. 이러한 표준은 하기의 상수들에 의한 곱들의 계산을 위한 프로세스를 정의한다:
그리고, 하기와 같이 달성된다:
도 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)
- 신호 프로세싱 알고리즘에서의 사용을 위한 곱들(products)을 계산하기 위한 방법으로서,
정수 값 x를 수신하는 단계;
주어진 상수 인수들(constant factors)을 근사화하는 다이애딕 분수들의 세트(a set of dyadic fractions) 를 결정하는 단계 ― ai, am 및 b는 정수이고, b는 정밀도 파라미터(precision parameter)임 ―;
x1을 입력 정수 값 x로 셋팅하고; 그리고 (a) x1,...xt-1 중 적어도 하나, 그리고 (b) 플러스 연산, 마이너스 연산, 또는 우측-시프트 연산 중 하나에 따라 x2...xt를 결정함으로써, 상기 곱들을 계산하기 위해, 중간 값들 x1...xt의 시퀀스를 결정하는 단계; 및
가 되도록, 출력 값들의 인덱스들 를 결정하는 단계
를 포함하는,
곱들을 계산하기 위한 방법. - 제 1 항에 있어서,
평균 비대칭 메트릭, 평균 오차 메트릭, 오차 메트릭의 분산, 및 오차 메트릭의 크기를 최소화하는 것에 따라 출력 값들을 생성하는 상기 시퀀스를 결정하는 단계
를 더 포함하는,
곱들을 계산하기 위한 방법. - 제 2 항에 있어서,
상기 평균 비대칭 메트릭, 상기 평균 오차 메트릭, 상기 오차 메트릭의 분산, 및 상기 오차 메트릭의 크기의 결과에 기초하여 출력 값들의 상기 시퀀스의 효율성을 평가하는 단계
를 더 포함하는,
곱들을 계산하기 위한 방법. - 제 1 항에 있어서,
최소 개수의 덧셈들(a least number of additions)을 갖는 중간 값들의 상기 시퀀스를 결정하는 단계
를 더 포함하는,
곱들을 계산하기 위한 방법. - 제 1 항에 있어서,
최소 개수의 우측 시프트들을 갖는 중간 값들의 상기 시퀀스를 결정하는 단계
를 더 포함하는,
곱들을 계산하기 위한 방법. - 제 1 항에 있어서,
최소 개수의 덧셈들 및 우측 시프트들을 갖는 중간 값들의 상기 시퀀스를 결정하는 단계
를 더 포함하는,
곱들을 계산하기 위한 방법. - 제 6 항에 있어서,
상기 최소 개수의 덧셈들 및 우측 시프트들을 갖는 중간 값들의 상기 시퀀스 중에서 최소 개수의 덧셈들을 갖는 중간 값들의 상기 시퀀스를 결정하는 단계
를 더 포함하는,
곱들을 계산하기 위한 방법. - 제 10 항에 있어서,
평균 비대칭 메트릭, 평균 오차 메트릭, 오차 메트릭의 분산, 및 오차 메트릭의 크기를 최소화하는 것에 따라 출력 값들을 생성하는 상기 시퀀스를 결정하기 위한 명령들
을 더 포함하는,
컴퓨터-판독가능 매체. - 제 11 항에 있어서,
x1을 입력 정수 값으로 셋팅하고; 및
(a) x1,...xt-1 중 적어도 하나, 그리고 (b) 플러스 연산, 마이너스 연산, 또는 우측-시프트 연산 중 하나에 따라 x2...xt를 결정하기 위한 명령들
을 더 포함하는,
컴퓨터-판독가능 매체. - 제 11 항에 있어서,
상기 평균 비대칭 메트릭, 상기 평균 오차 메트릭, 상기 오차 메트릭의 분산, 및 상기 오차 메트릭의 크기의 결과에 기초하여 출력 값들의 상기 시퀀스의 효율성을 평가하기 위한 명령들
을 더 포함하는,
컴퓨터-판독가능 매체. - 제 10 항에 있어서,
최소 개수의 덧셈들을 갖는 중간 값들의 상기 시퀀스를 결정하고; 및
최소 개수의 시프트들을 갖는 중간 값들의 상기 시퀀스를 결정하기 위한 명령들
을 더 포함하는,
컴퓨터-판독가능 매체. - 삭제
- 삭제
- 삭제
- 삭제
- 제 19 항에 있어서,
출력 값들의 시퀀스는 평균 비대칭 메트릭, 평균 오차 메트릭, 오차 메트릭의 분산, 및 오차 메트릭의 크기를 최소화하는 것에 따라 결정되는,
곱들을 계산하기 위한 장치. - 제 19 항에 있어서,
상기 시퀀스를 결정하기 위한 수단은,
x1을 입력 정수 값으로 셋팅하고, x1,...xt-1 중 하나, 그리고 플러스 연산, 마이너스 연산, 또는 우측-시프트 연산 중 하나 가운데 하나에 따라 x2...xt를 결정하는,
곱들을 계산하기 위한 장치. - 제 20 항에 있어서,
상기 평균 비대칭 메트릭, 상기 평균 오차 메트릭, 상기 오차 메트릭의 분산, 및 상기 오차 메트릭의 크기의 결과에 따라 효율성이 결정되는,
곱들을 계산하기 위한 장치. - 제 23 항에 있어서,
x1을 입력 정수 값으로 셋팅하는 단계; 및
x1,...xt-1 중 하나, 그리고 플러스 연산, 마이너스 연산, 또는 우측-시프트 연산 중 하나 가운데 하나에 따라 x2...xt를 결정하는 단계; 및
평균 비대칭 메트릭, 평균 오차 메트릭, 오차 메트릭의 분산, 및 오차 메트릭의 크기를 최소화하는 것에 따라 출력 값들을 생성하는 상기 시퀀스를 결정하는 단계
를 더 포함하는,
곱을 계산하기 위한 방법.
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)
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)
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)
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 |
-
2008
- 2008-06-16 US US12/139,957 patent/US8819095B2/en active Active
- 2008-08-28 CA CA2698269A patent/CA2698269C/en not_active Expired - Fee Related
- 2008-08-28 WO PCT/US2008/074607 patent/WO2009032740A2/en active Application Filing
- 2008-08-28 RU RU2010111763/08A patent/RU2468422C2/ru not_active IP Right Cessation
- 2008-08-28 CN CN201210490885.9A patent/CN102982007B/zh active Active
- 2008-08-28 EP EP08829843.5A patent/EP2195750B1/en active Active
- 2008-08-28 BR BRPI0815791-0A patent/BRPI0815791B1/pt active IP Right Grant
- 2008-08-28 TW TW97132919A patent/TWI474194B/zh active
- 2008-08-28 ES ES08829843T patent/ES2791420T3/es active Active
- 2008-08-28 CN CN200880104677.2A patent/CN102067108B/zh active Active
- 2008-08-28 KR KR1020107006666A patent/KR101107923B1/ko active IP Right Grant
- 2008-08-28 HU HUE08829843A patent/HUE048765T2/hu unknown
- 2008-08-28 JP JP2010523129A patent/JP4965711B2/ja active Active
-
2014
- 2014-07-15 US US14/332,028 patent/US9459831B2/en not_active Expired - Fee Related
Patent Citations (2)
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 |