[go: up one dir, main page]

KR100686357B1 - 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치 - Google Patents

로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치 Download PDF

Info

Publication number
KR100686357B1
KR100686357B1 KR1020050100298A KR20050100298A KR100686357B1 KR 100686357 B1 KR100686357 B1 KR 100686357B1 KR 1020050100298 A KR1020050100298 A KR 1020050100298A KR 20050100298 A KR20050100298 A KR 20050100298A KR 100686357 B1 KR100686357 B1 KR 100686357B1
Authority
KR
South Korea
Prior art keywords
value
exponent
input
result
input value
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020050100298A
Other languages
English (en)
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 엠텍비젼 주식회사
Priority to KR1020050100298A priority Critical patent/KR100686357B1/ko
Application granted granted Critical
Publication of KR100686357B1 publication Critical patent/KR100686357B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Graphics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리 장치가 개시된다. 본 발명의 바람직한 일 실시예에 따른 디지털 처리 장치에서의 로그 연산 방법은 입력값(x)이 부동소수점 형태로 표현된 제1 입력값(float x)이 속하는 2의 지수승 구간을 나타내는 지수값(s)을 결정하는 단계, 지수값을 우측으로 23비트 시프트시켜 제1 변환 지수값을 생성하는 단계, 입력값이 정수형으로 표현된 제2 입력값(int x)과 제1 변환 지수값이 정수형으로 표현된 제2 변환 지수값의 합 또는 차를 이용하여 제1 결과값을 산출하는 단계 및 제1 결과값이 부동소수점 형태로 표현된 제2 결과값과 지수값의 합에 1(one)을 차감함으로써 제1 입력값(x)에 상응하는 로그 연산값을 출력하는 단계를 포함한다. 본 발명에 의해, 신속하고 정확한 로그 연산이 가능하다.
3차원 그래픽스, 연산기, 로그 연산기

Description

로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리 장치{Log calculating method and 3D graphic processing apparatus performing the method}
도 1은 3차원 그래픽 처리를 위한 OpenGL 파이프라인의 블록 구성도이고, 도 2는 밉맵의 레벨을 나타낸 도면.
도 2는 밉맵의 레벨을 나타낸 도면.
도 3은 종래 기술에 따른 로그 연산 방법을 나타낸 순서도.
도 4는 본 발명의 바람직한 일 실시예에 따른 로그 연산 방법을 나타낸 순서도.
본 발명은 3차원 그래픽 처리에 관한 것으로, 3차원 그래픽 처리를 위해 밉맵(mipmap)의 레벨(level)을 구하기 위해 이용되는 로그 연산기에 관한 것이다.
3차원 그래픽 처리를 위해 수학은 가장 기본이 되며, 그 중요도 또한 매우 높다. 일반적으로 3차원 그래픽 처리를 위해 power, inverse, square root, inverse square root, log 등의 다양한 함수가 이용되고 있으며, 이 중 로그 함수(즉, log2x)는 밉맵(mipmap)의 레벨을 구하기 위해 이용된다. 밉맵이란 하나의 텍스처를 일정한 크기로 축소시켜 여러 장을 가지고 그려질 때 현재 크기(size)에 가장 적합한 이미지를 찾아 쓰는 것을 말한다.
일반적으로 종래 기술에 따른 3차원 그래픽 처리 방법에서는 곱셈 연산이 이용되는 로그 알고리즘이 적용되므로 밉맵을 수행함에 많은 시간이 소요된다.
3차원 그래픽 처리를 위한 연산 속도는 수학 함수의 연산 속도에 직결되므로 연산 속도가 빠른 수학 함수의 개발이 요구된다.
이하, 3차원 그래픽 처리를 위한 OpenGL 파이프라인(Pipeline)과 종래기술에 따른 로그 연산 방법을 간략히 설명한다. 당업자는 이하의 설명을 통해 3차원 그래픽 처리가 통상의 3차원 그래픽 처리 프로세서 또는 동종의 처리 장치에서 수행될 수 있음을 쉽게 이해할 수 있을 것이다.
도 1은 3차원 그래픽 처리를 위한 OpenGL 파이프라인의 블록 구성도이고, 도 2는 밉맵의 레벨을 나타낸 도면이다.
도 1을 참조하면, 그래픽 처리를 위한 OpenGL 파이프 라인은 디스플레이 리스트(Display List, 110), 평가기(Evaluator, 115), 정점 연산 및 프리미티브 조립부(Per-Vertex Operations & Primitive Assembly, 120), 픽셀 연산부(Pixel Operations, 125), 텍스처 메모리(Texture Memory, 130), 래스터화부(Rasterization, 135), 플래그먼트 연산부(Per-Fragment Operations, 140) 및 프레 임 버퍼(Frame Buffer, 145)를 포함한다.
도 1에 도시된 바와 같이, 모든 커맨드들(commands)이 즉시 파이프라인을 통해 즉시 처리되기보다는 나중의 처리를 위해 디스플레이 리스트(110) 내에 커맨드들 중 일부가 축적될 수 있다.
디스플레이 리스트(110)는 기하학적 정보, 픽셀 정보 등을 나타내는 커맨드들을 축적한다. 디스플레이 리스트(110)를 사용하지 않고, 입력된 커맨드들을 즉시 처리하는 방식을 직접 모드(immediate mode)라 한다. 디스플레이 리스트(110)를 실행시키면 저장된 커맨드들이 마치 직접 모드에서 동작되는 것처럼 전송된다.
평가기(115)는 입력값들의 다항식 커맨드들(polynomial commands)을 산출(evaluate)하기 위해 곡선이나 표면 형태(surface geometry)를 근사화한다. 모든 기하 프리미티브들(geometric primitives)은 정점으로 표현되며, 매개변수 곡선이나 곡면은 초기에는 기저 함수(basis function)라 불리는 다항 함수와 제어점들로 표현된다. 평가기(115)는 이러한 제어점들로부터 곡면을 표현하는데 사용되는 정점들을 구하는 방법들을 제공한다. 이때, 다항식 매핑(polynomial mapping)이 사용될 수 있고, 이를 통해 제어점들로부터 표면 법선, 텍스처 좌표, 컬러, 공간 좌표 등을 얻을 수 있다.
정점 연산 및 프리미티브 조립부(120)는 기하 프리미티브들(예를 들어, 점들(points), 선분들(line segments), 폴리곤들 등)을 처리한다. 정점들은 변환되어지고, 라이팅(lighting) 연산이 수행되며, 프리미티브들은 클리핑되어진다. 즉, 정점 데이터인 경우 평가기(115)를 거친 후 정점들을 프리미티브로 변환하는 정점 연산 (Per-Vertex Operations)이 수행된다. 공간 좌표와 같은 일부 정점 데이터들은 4x4 부동 소수점 행렬로 변환된다. 공간 좌표들은 3차원의 한 지점에서 스크린상의 한 지점으로 투영(projection)된다. 이어서, 클리핑을 위한 프리미티브 조립이 수행된다. 클리핑(clipping) 이란, 평면으로 정의된 일정한 공간 밖에 있는 부분을 제거하는 것을 말한다. 점 클리핑의 경우, 단순히 정점들을 통과시킬 것인지 여부만 결정하지만, 선 또는 폴리곤 클리핑의 경우에는 선이나 폴리곤을 잘라내는 방법에 따라 부가적인 정점들이 추가되기도 한다. 경우에 따라서 멀리 떨어진 기하 오브젝트를 가까이 있는 오브젝트보다 작게 만드는 투시 분할(perspective division) 도 함께 수행된다. 이후, 뷰포트(viewport) 및 깊이(depth, z-좌표) 연산이 수행된다. 이러한 단계들에 의해 컬러, 깊이, 텍스처 좌표, 래스터화 단계를 위한 가이드라인 등에 따라 변환되고 클리핑된 정점들로 구성된 완전한 형태의 기하 프리미티브가 생성된다
픽셀 연산부(125)는 입력된 데이터가 정점이 아닌 픽셀의 형태인 경우 동작되고, 결과물은 래스터화부(135)의 이용을 위해 텍스처 메모리(130)에 저장된다. 즉, 기하 데이터들은 OpenGL 렌더링 파이프라인에서 하나의 경로만을 따라서 처리되는 반면, 픽셀 데이터들은 여러 경로를 거치게 된다. 시스템 메모리상의 배열에 다양한 포맷으로 저장되어 있는 픽셀들을 먼저 푼 다음, 이를 적절한 수의 컴포넌트에 집어넣는다. 그리고 이러한 데이터들에 대해 스케일(scale), 편중(bias) 연산을 수행하고 픽셀 맵에 따라 처리한다. 이어서, 그 결과를 고정(clamp)시키고, 이를 텍스처 메모리(130)에 쓰거나 래스터화부(135)로 입력한다. 프레임 버퍼(145)로 부터 픽셀 데이터를 읽어오는 경우에는 스케일, 편중, 매핑(mapping), 클램핑(clamping) 등과 같은 픽셀 전송 연산(pixel-transfer operation)이 수행된다. 이후, 그 결과를 적절한 포맷에 맞게 작성하여 시스템 메모리상의 배열로 반환한다.
래스터화부(135)는 기하 데이터와 픽셀데이터를 모두 프레그먼트들(fragments)로 변환한다. 각 프레그먼트들은 사각형으로 되어 있으며, 프레임 버퍼의 한 픽셀에 대응된다. 정점들이 선으로 연결되어 있거나 속이 채워진 폴리곤(filled polygon)에 들어갈 내부 픽셀을 계산해야 할 경우에는 선과 폴리곤 스티플, 라인 폭, 점의 크기, 쉐이딩 모델, 안티앨리어싱을 지원하기 위한 적용범위(coverage) 계산 등도 함께 고려되어야 한다. 컬러나 깊이값은 각 프레그먼트마다 할당된다.
플래그먼트 연산부(140)는 프레임 버퍼(145) 내에 픽셀들로서 저장하기 전에, 일련의 연산을 수행하여 특정한 프레그먼트들을 변경하거나 제거한다. 이러한 연산들 중 일부는 생략될 수 있다. 가장 먼저 수행하게 되는 연산은 텍스처링(texturing)으로서 텍스처 메모리로부터 각각의 프레그먼트에 대한 텍셀(texel, texture element)을 생성하여 해당 프레그먼트에 적용한다. 이어서, 안개 효과 연산과 편집(scissor) 테스트, 알파 테스트, 스텐실 테스트, 깊이 버퍼 테스트 등을 차례대로 수행한다. 이러한 테스트들 중 어느 하나라도 실패하게 되면 해당 프레그먼트에 대한 연산은 종료된다. 이어서, 블렌딩, 디더링, 논리 연산, 비트 마스크를 이용한 마스크 연산 등을 수행한다. 마지막으로, 처리된 프레그먼트들을 적절한 버퍼에 그린 다음, 최종적으로 픽셀을 생성하게 된다.
상술한 바와 같이, OpenGL 파이프라인은 입력된 데이터를 이용하여 픽셀을 생성하여 프레임 버퍼(145)에 저장하기 위해 많은 연산을 수행한다.
이중 텍스처링(texturing) 연산이 래스터화부(135)에 의해 수행되며, 래스터화부(135)는 텍스처 메모리(130) 또는 픽셀 연산부(125)로부터 텍스처를 제공받는다. 텍스처는 도 2에 도시된 바와 같이 텍스처 메모리(130)에 저장될 때, 싱글 레벨(single level, 예를 들어 '레벨 0')만이 저장되거나 여러 레벨이 함께 저장될 수 있다. 여기서, 여러 레벨을 저장하여 텍스처링 연산을 할 때 밉맵을 이용한 텍스처링이라 할 수 있다.
도 2에서 좌측의 이미지를 텍스처라 하고, 우측의 사각형을 폴리곤이라 할 수 있다. 텍스처는 복수의 레벨로서 존재할 수 있다. 도 2에 도시된 바와 같이, 크기가 제일 큰 텍스처(size : 512 x 512)를 레벨 0인 텍스처라 가정할 때, 가로와 세로의 크기를 반씩 감소시켜 다른 레벨의 텍스처를 생성할 수 있다. 예를 들어, 크기가 256 x 256인 텍스처를 레벨 1이라 할 수 있고, 크기가 128 x 128인 텍스처를 레벨 2라 할 수 있고, 크기가 64 x 64인 텍스처를 레벨 3이라 할 수 있다.
일반적으로, 3D 그래픽에서는 폴리곤에 텍스처를 입힘(mapping)으로써 오브젝트(예를 들어, 사람, 사물, 도형 등)을 표현한다.
따라서, 우측의 폴리곤에 좌측의 텍스처 중 어느 하나를 입혀야 한다. 그러나, 폴리곤의 크기는 230 x 230인데 이와 일치하는 크기의 텍스처는 존재하지 않는다. 따라서, 이미지 왜곡을 최소화하기 위해서는 가장 유사한 크기의 텍스처를 입 혀야 한다. 이와 같은 이유에 의해, 밉맵을 위한 텍스처링 연산시 log2 함수가 필요한 것이다. 즉, 미리 지정된 log2 함수를 이용하여 레벨을 구하고 그 레벨에 해당하는 텍스처를 선택하여 폴리곤에 입히게 된다.
도 2의 경우, log2(512/230) = log2(2.226) = 1.xxx 1이므로, 레벨 1의 텍스처를 선택하여 폴리곤에 입히게 된다.
그러나, 종래의 log2 연산기는 덧셈(및 뺄셈) 연산기와 곱셈 연산기의 조합으로 구성되어 입력 데이터에 대한 연산을 수행함에 있어 많은 시간이 소요되는 문제점이 있었다. 또한, log2 연산에 많은 시간이 소요되므로 3차원 그래픽 연산이 신속하게 수행될 수 없는 문제점도 있었다.
또한, 종래의 log2 연산기는 복잡한 과정에 의해 입력 데이터에 대한 연산을 수행하도록 구성되어 log2 연산기의 배치 면적이 불필요하게 과다해지는 문제점도 있었다.
따라서, 상술한 문제점들을 해결하기 위한 본 발명의 목적은 3차원 그래픽 연산 속도를 가속화할 수 있는 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리 장치를 제공하는 것이다.
본 발명의 다른 목적은 덧셈과 시프트 연산만으로 신속하고 보다 정확한 log2 연산이 가능한 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 모든 프레임에 존재하는 각각의 오브젝트에 대해 밉맵이 요구된다는 점을 고려할 때 3차원 그래픽 처리시 처리 효율을 증진시킬 수 있는 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 덧셈과 시프트 연산만으로 log2 연산이 가능하므로 log2 연산기의 점유 면적을 최소화할 수 있는 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리 장치를 제공하는 것이다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
상기 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면 디지털 처리 장치에서 수행되는 로그 연산 방법 및/또는 그 방법을 실행하기 위한 프로그램이 기록된 기록매체가 제공된다.
본 발명의 바람직한 일 실시예에 따른 디지털 처리 장치에서의 로그 연산 방법은 입력값(x)이 부동소수점 형태로 표현된 제1 입력값(float x)이 속하는 2의 지수승 구간을 나타내는 지수값(s)을 결정하는 단계; 상기 지수값을 우측으로 23비트 시프트시켜 제1 변환 지수값을 생성하는 단계; 상기 입력값이 정수형으로 표현된 제2 입력값(int x)과 상기 제1 변환 지수값이 정수형으로 표현된 제2 변환 지수값의 합 또는 차를 이용하여 제1 결과값을 산출하는 단계; 및 상기 제1 결과값이 부동소수점 형태로 표현된 제2 결과값과 상기 지수값의 합에 1(one)을 차감하여 상기 제1 입력값(x)에 상응하는 로그 연산값을 출력하는 단계를 포함한다. 여기서, 상기 지수값은 2s < 제1 입력값 ≤ 2s+1을 만족하는 s값인 것을 특징으로 한다.
상기 입력값은 레벨 0인 텍스처의 가로 또는 세로 크기가 폴리곤의 가로 또는 세로 크기에 의해 나누어진 값인 것을 특징으로 한다.
상기 제1 결과값을 산출하는 단계에서, 상기 지수값이 음수인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 합이고, 상기 지수값이 0 이상인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 차인 것을 특징으로 한다.
본 발명의 바람직한 다른 실시예에 따르면, 로그 연산 방법을 수행하기 위하여 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서, 입력값(x)이 부동소수점 형태로 표현된 제1 입력값(float x)이 속하는 2의 지수승 구간을 나타내는 지수값(s)을 결정하는 단계; 상기 지수값을 우측으로 23비트 시프트시켜 제1 변환 지수값을 생성하는 단계; 상기 입력값이 정수형으로 표현된 제2 입력값(int x)과 상기 제1 변환 지수값이 정수형으로 표현된 제 2 변환 지수값의 합 또는 차를 이용하여 제1 결과값을 산출하는 단계; 및 상기 제1 결과값이 부동소수점 형태로 표현된 제2 결과값과 상기 지수값의 합에 1(one)을 차감하여 상기 제1 입력값(x)에 상응하는 로그 연산값을 출력하는 단계를 실행하되, 상기 지수값은 2s < 제1 입력값 ≤ 2s+1을 만족하는 s값인 것을 특징으로 하는 프로그램을 기록한 기록매체가 제공된다.
상기 목적들을 달성하기 위하여, 본 발명의 다른 측면에 따르면 로그 연산부를 포함하는 디지털 처리 장치가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 로그 연산을 위한 로그 연산부를 포함하는 디지털 처리 장치에 있어서, 상기 로그 연산부는 입력값이 부동소수점 형태로 표현된 제1 입력값(float x)이 속하는 2의 지수승 구간을 나타내는 지수값(s)을 결정하고, 상기 지수값을 우측으로 23비트 시프트시켜 제1 변환 지수값을 생성하며, 상기 입력값이 정수형으로 표현된 제2 입력값(int x)과 상기 제1 변환 지수값이 정수형으로 표현된 제2 변환 지수값의 합 또는 차를 이용하여 제1 결과값을 산출하고, 상기 제1 결과값이 부동소수점 형태로 표현된 제2 결과값과 상기 지수값의 합에 1(one)을 차감하여 상기 제1 입력값(x)에 상응하는 로그 연산값을 출력하되, 상기 지수값은 2s < 제1 입력값 ≤ 2s+1을 만족하는 s값인 것을 특징으로 하는 디지털 처리 장치가 제공된다.
상기 입력값은 레벨 0인 텍스처의 가로 또는 세로 크기가 폴리곤의 가로 또 는 세로 크기에 의해 나누어진 값인 것을 특징으로 한다.
상기 지수값이 음수인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 합이고, 상기 지수값이 0 이상인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 차인 것을 특징으로 한다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 동일 또는 유사한 개체를 순차적으로 구분하기 위한 식별 기호에 불과하다.
또한, 본 발명에 따른 로그 연산 방법은 3차원 그래픽 처리 장치뿐 아니라 log2 연산을 필요로하는 모든 데이터 처리 장치에 동일하게 적용할 수 있음은 물론이다. 또한, 하기의 설명을 통해 본 발명이 적용될 수 있는 log2 연산을 필요로하는 모든 데이터 처리 장치에 동일하게 적용할 수 있음을 쉽게 이해할 수 있을 것이다.
도 3은 종래 기술에 따른 로그 연산 방법을 나타낸 순서도이다.
도 3을 참조하면, 종래 기술에 따른 로그 연산기(이하, '종래의 로그 연산기'라 칭함)는 단계 310에서 레벨 0인 텍스처의 가로 크기와 폴리곤의 가로 크기의 비(x, x=(레벨 0인 텍스처의 가로 크기 / 폴리곤의 가로 크기)를 정수형(int형) 데이터로 간주하고 그 값을 부동 소수점형(float형) 함수에 입력한다. 예를 들어, x 가 2라고 가정하면, 단계 310에 의해 1.07374 x 109가 출력된다.
이어서, 단계 320에서 종래의 로그 연산기는 단계 310의 결과값을 미리 지정된 값(즉, 1.1921 x 10-7)과 곱한다. 단계 310의 출력값이 1.07374 x 109라 할 때, 단계 320에 의해 128.000545(= 1.07374 x 109 x 1.1921 x 10-7)가 출력된다.
단계 310과 단계 320은 하나의 사이클(cycle)에 의해 수행된다. 사이클이란 신호의 주기적 반복인 클럭(clock)을 의미한다.
종래의 로그 연산기는 단계 330에서 단계 320의 결과값에 미리 지정된 값(즉, -127)을 합산하고, 단계 340에서 단계 330의 결과값(이하, 'RA'라 칭함)에 플로어(Floor) 함수를 적용하여 소수점 부분을 제거한다. 단계 320의 출력값이 128.000545라 할 때, 단계 330에 의해 1.000545(=128.000545 - 127)가 출력되고, 단계 340에 의해 1(즉, 1.000545 -> 1)이 출력된다. 단계 330과 단계 340은 하나의 사이클(cycle)에 의해 수행된다.
종래의 로그 연산기는 단계 350에서 RA에서 단계 340의 결과값(이하, 'RB'라 칭함)을 차감한다. 단계 350에 의해 0.000545(즉, RA - RB = 1.000545 - 1)가 출력된다.
종래의 로그 연산기는 단계 360에서 단계 350의 결과값(이하, 'RC'라 칭함)을 2번 곱하고, 단계 370으로 진행하여, RC에서 단계 360의 결과값(이하, 'RD'라 칭 함)을 차감한다. 단계 350의 출력값 RC가 0.000545라 할 때, 단계 360에 의해 0.000000297025가 출력되고, 단계 370에 의해 0.000544702975가 출력된다.
이어서, 종래의 로그 연산기는 단계 380에서 단계 370의 결과값(이하, 'RE'라 칭함)과 RC를 곱한다. 상술한 예에서 RC가 0.000545이고 RE가 0.000544702975이므로 단계 380에 의해 0.000000296863이 출력된다.
이어서, 종래의 로그 연산기는 단계 390에서 단계 380의 결과값(이하, 'RF'라 칭함)과 RA를 합산하여 log2 x를 출력한다. 상술한 예에서, RF가 0.000000296863이고, RA가 1.000545이므로 단계 390에 의해 1.000545296863이 출력되며, 이는 1로 근사화될 수 있다. 따라서, 위의 예에서 x를 2라고 가정하였으므로 log2 2 = 1을 만족하는 것으로 볼 수 있다.
상술한 바와 같이, 종래의 로그 연산기는 입력된 데이터에 상응하는 log2 값을 산출하기 위해 복수의 덧셈(뺄셈) 및 복수의 곱셈 연산을 수행하여야 한다.
일반적으로 게이트(gate)의 수가 적을수록 적은 사이즈의 칩(Chip) 생산이 가능함을 고려할 때, 종래의 로그 연산기는 상대적으로 큰 사이즈의 칩으로 구현된다.
또한, 연산의 횟수가 많고(즉, 7 사이클 소요) 복잡하기 때문에 연산 속도가 신속하게 수행될 수 없음은 자명할 것이다.
도 4는 본 발명의 바람직한 일 실시예에 따른 로그 연산 방법을 나타낸 순서도이다.
도 4를 참조하면, 본 발명에 따른 로그 연산기(이하, '로그 연산기'라 칭함)는 단계 410에서 입력된 부동소수점 형태의 입력값(x)이 2의 지수승 구간 중 어느 구간에 속하는지 결정한다. 예를 들어, 입력값 x(즉, 레벨 0인 텍스처의 가로 크기 / 폴리곤의 가로 크기)가 2.0이라 가정할 때 20 < x ≤ 21 인 관계가 만족되므로, 로그 연산기는 s가 0임을 알 수 있다.
로그 연산기는 단계 420에서 단계 410에서 결정된 s값의 절대값을 오른쪽으로 23 비트만큼 시프트(shift)시킨다. s의 절대값을 23비트 시프트시키는 이유는 지수 연산을 수행하기 위한 것이며, 이는 하위 23비트가 가수부(mantissa 비트들)이기 때문이다. 상술한 예에 따르면, 단계 420에 의해 0(즉, s << 23 = 0 << 23 -> '00000000 00000000 00000000')이 출력된다. 부동 소수점의 시프트에 대한 일반적인 개념을 이해하는 당업자라면 단계 420의 의미를 쉽게 이해할 수 있을 것이다. 간략히 설명하면, 부동 소수점은 소수를 표현하기 위한 방법으로 IEEE754 등에 의해 표준으로 규정되어 있다. 모든 디지털 데이터는 비트로 표현되며, 일반적으로 C 언어에서는 32비트 부동 소수점이 사용된다. 정수형(int) 데이터 역시 32비트로 표현될 수 있다. 예를 들어, 32비트열은 '0111110 00000000 00000000 00000000'로 표현될 수 있고, 부동 소수점형은 '1.0'으로 표현될 수 있고, 정수형은 '2130706432'로 표현될 수 있다. 즉, 같은 비트일지라도 어떤 관점에서 값을 생성하는가에 따라 표시형태는 상이할 수 있다.
이어서, 로그 연산기는 단계 430에서 s의 값이 음수인지 아니면 0(zero) 이상인지에 따라 단계 420의 결과값(이하, 'RA'라 칭함)과 A(즉, 정수형(int)으로 표현된 x)를 이용하여 결과값 RB를 산출한다. 결과값 RB를 산출함에 있어, 단계 410을 통해 결정된 s값이 음수인 경우에는 RA와 A를 합산하고, s값이 0이상인 경우에는 A에서 RA를 차감한다. 단계 430은 이해의 편의를 위해 정수형 연산의 경우를 나타낸 경우로 부동 소수점형 연산의 경우에는 달리 표현될 수 있다. 이는 지수 부분에 1을 더하면 정수 관점에서 2를 곱하는 것을 의미하고, 2를 더하면 4를, 3을 더하면 8을 곱하는 결과와 같기 때문이다. 즉, 단계 430은 부동 소수점형으로 표현할 때 s가 0이상인 경우 'B(즉, 부동 소수점형으로 표현된 x) ㆇ 2|s|'와 동일한 의미가 된다. 마찬가지로, s가 음수인 경우에는 'B x 2|s|'와 동일한 의미가 된다. 상술한 예에서는 s값이 0이므로, RB를 부동 소수점형으로 표현(이하, 'RBF'라 칭함)하면, '2.0 ㆇ 20 = 2'가 된다. 즉, 단계 430은 부동 소수점형 연산일 수도 있고, 정수형 연산일 수도 있다. 다만, 곱셈(또는 나눗셈) 연산을 생략하기 위해서는 정수형 연산이 보다 바람직할 것이다.
마지막으로, 로그 연산기는 단계 440에서 부동 소수점형 데이터로 표현된 RBF와 미리 지정된 값(예를 들어, s - 1)을 합산하여 log2 x를 출력한다. 상술한 예 에서, RB가 2이고, s가 0이므로 log2 x는 RB + (s - 1) = 2 + (0 - 1) = 1이 된다.
상술한 바와 같이, 본 발명에 따른 로그 연산 방법을 이용할 때, 연산을 위한 사이클이 감소되고, 곱셈(또는 나눗셈) 연산을 생략할 수 있어 연산이 신속한 효과가 있다. 또한, 앞서 설명한 종래의 로그 연산 방법에 비해 오차가 매우 감소되거나 제거되어 정확한 연산이 가능한 효과도 있다.
상술한 로그 연산 과정을 입력된 값이 4.0인 경우와 8.0인 경우를 예로 들어 더 설명한다. 다만, 상술한 단계 430은 정수형 연산 단계인 것으로 가정한다.
먼저, 입력된 값이 4.0인 경우를 설명한다.
로그 연산기는 단계 410에서 21 < 4 ≤ 22 인 관계에 의해 s를 1로 결정한다.
이어서, 단계 420에서 s값의 절대값을 오른쪽으로 23 비트만큼 시프트(shift)시켜, '10000000 00000000 00000000' 형태로 비트 표현한다. 이는 정수형으로 표현할 때, 8388608(=223)으로 표현될 수 있다.
이어서, 로그 연산기는 단계 430에서 s의 값이 0(zero) 이상이므로, A에서 RA를 차감하여 결과값 RB를 산출한다. 입력된 값은 부동 소수점형 표현으로 4.0이므로 정수형 표현 A로 해석하면 '1082130432'가 된다. 따라서, RB는 1082130432 - 8388608=1073741824가 된다. 정수형 데이터인 RB를 부동 소수점형 데이터인 RBF로 표현하면 2가 된다. 이는 부동 소수점 관점에서 살펴본, 4.0 ÷ 21 = 2.0과 같다.
마지막으로, 로그 연산기는 단계 440에서 RBF와 (s - 1)을 합산하여 log2 x를 출력한다. 따라서, log2 4는 2 + (1 - 1) = 2가 된다.
다음으로, 입력된 값이 8.0인 경우를 설명한다.
로그 연산기는 단계 410에서 22 < 8 ≤ 23 인 관계에 의해 s를 2로 결정한다.
이어서, 단계 420에서 s값의 절대값을 오른쪽으로 23 비트만큼 시프트(shift)시켜, '1 00000000 00000000 00000000' 형태로 비트 표현한다. 이는 정수형으로 표현할 때, 16777216(=224)으로 표현될 수 있다.
이어서, 로그 연산기는 단계 430에서 s의 값이 0(zero) 이상이므로, A에서 RA를 차감하여 결과값 RB를 산출한다. 입력된 값은 부동 소수점형 표현으로 8.0이므로 정수형 표현 A로 해석하면 '1090519040'이 된다. 따라서, RB는 1090519040 - 16777216=1073741824가 된다. 정수형 데이터인 RB를 부동 소수점형 데이터인 RBF로 표현하면 2가 된다. 이는 부동 소수점 관점에서 살펴본, 8.0 ÷ 22 = 2.0과 같다.
마지막으로, 로그 연산기는 단계 440에서 RBF와 (s - 1)을 합산하여 log2 x를 출력한다. 따라서, log2 8은 2 + (2 - 1) = 3이 된다.
상술한 바와 같이, 본 발명에 따른 로그 연산기는 로그 연산을 수행함에 있어 2 사이클만으로 보다 정확한 연산을 완료할 수 있고, 덧셈(뺄셈) 연산기로 로그 연산을 완료할 수 있어, 신속한 처리가 가능해진다.
또한, 게이트(gate)의 수가 최소화되므로 적은 사이즈의 칩(Chip) 생산이 가능해진다. 일 예로서, 앞서 도 1을 참조하여 설명한 연산 방법에 의한 칩 사이즈에 비해 1/3로 감소시킬 수 있는 특징이 있다.
이제까지, 입력된 부동소수점 형태의 입력값이 2의 지수승 구간 중 어느 구간에 속하는지 결정함에 있어, 2S < x ≤ 2s+1 인 관계를 만족하는 s값을 이용하는 방법을 중심으로 설명하였다.
그러나, 해당 단계는 2n-1 < x ≤ 2n 인 관계를 만족하는 n값을 이용하는 방법으로도 변형 가능할 것이다. 다만, 이 경우, 도 4의 단계 420은 n-1에 대해서 23 비트 시프트시키도록 수정될 것이고, 단계 440은 RBF에서 n-2를 차감하도록 수정되어야 할 것이다.
상술한 바와 같이, 본 발명에 따른 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리 장치는 3차원 그래픽 연산 속도를 가속화할 수 있는 효과가 있다.
또한, 본 발명은 덧셈과 시프트 연산만으로 신속하고, 보다 정확한 log2 연산이 가능한 효과도 있다.
또한, 본 발명은 모든 프레임에 존재하는 각각의 오브젝트에 대해 밉맵이 요구된다는 점을 고려할 때 3차원 그래픽 처리시 처리 효율을 증진시킬 수 있는 효과도 있다.
또한, 본 발명은 덧셈과 시프트 연산만으로 log2 연산이 가능하므로 log2 연산기의 점유 면적을 최소화할 수 있는 효과도 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (9)

  1. 디지털 처리 장치에서의 로그 연산 방법에 있어서,
    입력값(x)이 부동소수점 형태로 표현된 제1 입력값(float x)이 속하는 2의 지수승 구간을 나타내는 지수값(s)을 결정하는 단계;
    상기 지수값을 우측으로 23비트 시프트시켜 제1 변환 지수값을 생성하는 단계;
    상기 입력값이 정수형으로 표현된 제2 입력값(int x)과 상기 제1 변환 지수값이 정수형으로 표현된 제2 변환 지수값의 합 또는 차를 이용하여 제1 결과값을 산출하는 단계; 및
    상기 제1 결과값이 부동소수점 형태로 표현된 제2 결과값과 상기 지수값의 합에 1(one)을 차감하여 상기 제1 입력값(x)에 상응하는 로그 연산값을 출력하는 단계를 포함하되,
    상기 지수값은 2s < 제1 입력값 ≤ 2s+1을 만족하는 s값인 것을 특징으로 하는 로그 연산 방법.
  2. 제1항에 있어서,
    상기 입력값은 레벨 0인 텍스처의 가로 또는 세로 크기가 폴리곤의 가로 또 는 세로 크기에 의해 나누어진 값인 것을 특징으로 하는 로그 연산 방법.
  3. 제1항에 있어서,
    상기 제1 결과값을 산출하는 단계에서,
    상기 지수값이 음수인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 합이고,
    상기 지수값이 0 이상인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 차인 것을 특징으로 하는 로그 연산 방법.
  4. 로그 연산을 위한 로그 연산부를 포함하는 디지털 처리 장치에 있어서,
    상기 로그 연산부는 입력값이 부동소수점 형태로 표현된 제1 입력값(float x)이 속하는 2의 지수승 구간을 나타내는 지수값(s)을 결정하고, 상기 지수값을 우측으로 23비트 시프트시켜 제1 변환 지수값을 생성하며, 상기 입력값이 정수형으로 표현된 제2 입력값(int x)과 상기 제1 변환 지수값이 정수형으로 표현된 제2 변환 지수값의 합 또는 차를 이용하여 제1 결과값을 산출하고, 상기 제1 결과값이 부동소수점 형태로 표현된 제2 결과값과 상기 지수값의 합에 1(one)을 차감하여 상기 제1 입력값(x)에 상응하는 로그 연산값을 출력하되,
    상기 지수값은 2s < 제1 입력값 ≤ 2s+1을 만족하는 s값인 것을 특징으로 하는 디지털 처리 장치
  5. 제4항에 있어서,
    상기 입력값은 레벨 0인 텍스처의 가로 또는 세로 크기가 폴리곤의 가로 또는 세로 크기에 의해 나누어진 값인 것을 특징으로 하는 디지털 처리 장치.
  6. 제4항에 있어서,
    상기 지수값이 음수인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 합이고, 상기 지수값이 0 이상인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 차인 것을 특징으로 하는 디지털 처리 장치.
  7. 로그 연산 방법을 수행하기 위하여 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
    입력값(x)이 부동소수점 형태로 표현된 제1 입력값(float x)이 속하는 2의 지수승 구간을 나타내는 지수값(s)을 결정하는 단계;
    상기 지수값을 우측으로 23비트 시프트시켜 제1 변환 지수값을 생성하는 단계;
    상기 입력값이 정수형으로 표현된 제2 입력값(int x)과 상기 제1 변환 지수값이 정수형으로 표현된 제2 변환 지수값의 합 또는 차를 이용하여 제1 결과값을 산출하는 단계; 및
    상기 제1 결과값이 부동소수점 형태로 표현된 제2 결과값과 상기 지수값의 합에 1(one)을 차감하여 상기 제1 입력값(x)에 상응하는 로그 연산값을 출력하는 단계를 실행하되,
    상기 지수값은 2s < 제1 입력값 ≤ 2s+1을 만족하는 s값인 것을 특징으로 하는 프로그램을 기록한 기록매체.
  8. 제7항에 있어서,
    상기 입력값은 레벨 0인 텍스처의 가로 또는 세로 크기가 폴리곤의 가로 또는 세로 크기에 의해 나누어진 값인 것을 특징으로 하는 프로그램을 기록한 기록매체.
  9. 제7항에 있어서,
    상기 제1 결과값을 산출하는 단계에서,
    상기 지수값이 음수인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 합이고,
    상기 지수값이 0 이상인 경우, 상기 제1 결과값은 상기 제2 입력값과 상기 제1 변환 지수값의 차인 것을 특징으로 하는 프로그램을 기록한 기록매체.
KR1020050100298A 2005-10-24 2005-10-24 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치 Expired - Fee Related KR100686357B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050100298A KR100686357B1 (ko) 2005-10-24 2005-10-24 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050100298A KR100686357B1 (ko) 2005-10-24 2005-10-24 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치

Publications (1)

Publication Number Publication Date
KR100686357B1 true KR100686357B1 (ko) 2007-02-22

Family

ID=38104475

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050100298A Expired - Fee Related KR100686357B1 (ko) 2005-10-24 2005-10-24 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치

Country Status (1)

Country Link
KR (1) KR100686357B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970071366A (ko) * 1996-04-16 1997-11-07 김광호 바이리니어 밉매핑에서의 상세도(lod)계산 방법 및 장치
KR19980068556A (ko) * 1997-02-20 1998-10-26 정장호 고정 전송율 mpeg 영상 송신기용 전송율 제어 방법 및 그 장치
JP2002304218A (ja) 2001-04-06 2002-10-18 Mitsutoyo Corp 三次元位置制御システム
KR20050031207A (ko) * 2003-09-29 2005-04-06 삼성전자주식회사 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970071366A (ko) * 1996-04-16 1997-11-07 김광호 바이리니어 밉매핑에서의 상세도(lod)계산 방법 및 장치
KR19980068556A (ko) * 1997-02-20 1998-10-26 정장호 고정 전송율 mpeg 영상 송신기용 전송율 제어 방법 및 그 장치
JP2002304218A (ja) 2001-04-06 2002-10-18 Mitsutoyo Corp 三次元位置制御システム
KR20050031207A (ko) * 2003-09-29 2005-04-06 삼성전자주식회사 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법

Similar Documents

Publication Publication Date Title
US6275235B1 (en) High precision texture wrapping method and device
JP5294313B2 (ja) ベジェ曲線描画装置、ベジェ曲線描画方法およびプログラム
JP5232358B2 (ja) アウトラインフォントのレンダリング
US5043922A (en) Graphics system shadow generation using a depth buffer
JP5518967B2 (ja) グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト
KR101251117B1 (ko) 프로그램가능 컬링 유닛을 위한 컴파일 방법, 장치 및 컴퓨터 판독가능 매체
US10140750B2 (en) Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program
JP7096661B2 (ja) キューブマップをテクスチャリングするためのlodを決定する方法、装置、コンピュータプログラム及び記録媒体
US9477477B2 (en) System, method, and computer program product for executing casting-arithmetic instructions
US9235392B2 (en) System, method, and computer program product for improved power efficiency during program code execution
KR19990072375A (ko) 고정소수점라이팅유닛의로컬눈벡터의고속계산
GB2463992A (en) Stroked curve rendering system
CN111724313B (zh) 一种阴影贴图生成方法与装置
TWI769138B (zh) 圖形處理之方法、流水線電路以及計算機程序
US20050062762A1 (en) Optimized fixed-point mathematical library and graphics functions for a software-implemented graphics rendering system and method using a normalized homogenous coordinate system
CN112509108A (zh) 基于gpu的顶点环境光遮蔽的生成方法以及图像渲染方法
US20140028677A1 (en) Graphics lighting engine including log and anti-log units
JP2018073388A (ja) テクスチャ処理方法及びその装置
US7015930B2 (en) Method and apparatus for interpolating pixel parameters based on a plurality of vertex values
KR100686357B1 (ko) 로그 연산 방법 및 그 방법을 수행하는 3차원 그래픽 처리장치
US9489344B2 (en) Methods of and apparatus for approximating a function
US8274513B1 (en) System, method, and computer program product for obtaining a boundary attribute value from a polygon mesh, during voxelization
US5900882A (en) Determining texture coordinates in computer graphics
US6460063B1 (en) Division circuit and graphic display processing apparatus
US6628284B1 (en) Method and apparatus for processing graphics perspective transformations

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20130221

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 11

FPAY Annual fee payment

Payment date: 20180129

Year of fee payment: 12

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 12

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 13

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20200216

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20200216