KR100834596B1 - 묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체 - Google Patents

묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체 Download PDF

Info

Publication number
KR100834596B1
KR100834596B1 KR1020060102858A KR20060102858A KR100834596B1 KR 100834596 B1 KR100834596 B1 KR 100834596B1 KR 1020060102858 A KR1020060102858 A KR 1020060102858A KR 20060102858 A KR20060102858 A KR 20060102858A KR 100834596 B1 KR100834596 B1 KR 100834596B1
Authority
KR
South Korea
Prior art keywords
data
stencil
raster
triangle
vector
Prior art date
Application number
KR1020060102858A
Other languages
English (en)
Other versions
KR20070092586A (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 KR20070092586A publication Critical patent/KR20070092586A/ko
Application granted granted Critical
Publication of KR100834596B1 publication Critical patent/KR100834596B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • G09G5/246Generation of individual character patterns of ideographic or arabic-like characters
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S345/00Computer graphics processing and selective visual display systems
    • Y10S345/947Font character edge processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)

Abstract

묘화장치는, 벡터 형식의 도형 데이터에 대해 직선 윤곽과 곡선 윤곽의 해석을 수행하여 직선 윤곽 및 곡선 윤곽을 삼각형화해서 삼각형 데이터를 생성하는 제1데이터 생성부와, 상기 삼각형 데이터로부터 스텐실 데이터를 생성하는 제2데이터 생성부 및, 상기 스텐실 데이터를 참조해서 래스터 형식의 도형 데이터를 생성하는 제3데이터 생성부를 갖는다.

Description

묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체{IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, AND COMPUTER READABLE RECORDING MEDIUM HAVING IMAGE PROCESSING PROGRAM}
도 1은 본 발명의 제1실시예에 따른 묘화장치의 개략 구성을 나타낸 블록도,
도 2는 벡터 형식 도형의 일례를 나타낸 도면,
도 3은 참고문헌에 기재된 래스터화(rasterizing) 수법의 처리 흐름을 나타낸 플로우차트,
도 4는 벡터 데이터의 일례를 나타낸 도면,
도 5a 및 도 5b는 직선 윤곽과 곡선 윤곽의 예를 나타낸 도면,
도 6a 및 도 6b는 볼록(凸)곡선 윤곽과 오목(凹)곡선 윤곽의 예를 나타낸 도면,
도 7a 및 도 7b는 미세 분할된 곡선 윤곽과, 그에 따라 갱신된 직선 윤곽의 예를 나타낸 도면,
도 8은 삼각형 분할된 직선 윤곽의 예를 나타낸 도면,
도 9a 및 도 9b는 래스터화된 직선 윤곽과 곡선 윤곽의 예를 나타낸 도면,
도 10은 생성된 래스터 데이터의 예를 나타낸 도면,
도 11은 제1실시예에 있어서 삼각형 데이터 생성부(2)의 처리 수순을 나타낸 플로우차트,
도 12는 제1실시예에 있어서 직선 윤곽의 예를 나타낸 도면,
도 13은 제1실시예에 있어서 직선 윤곽으로부터 생성된 삼각형 데이터의 예를 나타낸 도면,
도 14는 제1실시예에 있어서 직선 윤곽으로부터 생성된 삼각형의 점(point) 번호의 예를 나타낸 도이다.
도 15는 제1실시예에 있어서 직선 윤곽으로부터 생성된 삼각형의 스텐실(stencil) 데이터를 생성하는 예를 나타낸 도면,
도 16a 및 도 16b는 제1실시예에 있어서 곡선 윤곽을 나타낸 삼각형의 스텐실 데이터를 생성하는 예를 나타낸 도면,
도 17a 및 도 17b는 제1실시예에 있어서 래스터 데이터를 생성하는 예를 나타낸 도면,
도 18은 제1실시예에 있어서의 처리 수순을 나타낸 플로우차트,
도 19는 제2실시예에 있어서 직선 윤곽으로부터 생성된 삼각형 데이터의 예를 나타낸 도면,
도 20은 제2실시예에 있어서 직선 윤곽으로부터 생성된 삼각형의 스텐실 데이터를 생성하는 예를 나타낸 도면,
도 21a 및 도 21b는 제2실시예에 있어서 곡선 윤곽을 나타낸 삼각형의 스텐실 데이터를 생성하는 예를 나타낸 도면,
도 22는 제3실시예에 따른 묘화장치의 개략 구성을 나타낸 블록도,
도 23은 제4실시예를 설명하기 위한 벡터 형식의 도형의 일례를 나타낸 도 면,
도 24는 제4실시예에 있어서 직선 윤곽과 곡선 윤곽의 예를 나타낸 도면,
도 25a 및 도 25b는 제4실시예에 있어서 볼록(凸)곡선 윤곽과 오목(凹)곡선 윤곽의 예를 나타낸 도면,
도 26a 및 도 26b는 3차의 베지어(Bezier) 곡선에 있어서의 곡선 윤곽의 예를 나타낸 도면,
도 27은 제1실시예에 있어서 직선 윤곽으로부터 생성된 삼각형 데이터의 예를 나타낸 도면,
도 28은 제4실시예에 있어서 직선 윤곽으로부터 생성된 삼각형의 스텐실 데이터를 생성하는 예를 나타낸 도면,
도 29a 및 도 29b는 제4실시예에 있어서 직선 윤곽으로부터 생성된 삼각형의 스텐실 데이터를 생성하는 예를 나타낸 도면,
도 30은 제4실시예에 있어서 래스터 데이터를 생성하는 예를 나타낸 도면이다.
본 발명은, 벡터 형식의 도형 데이터로부터 래스터 형식의 도형 데이터를 생성하기 위한 묘화 기술에 관한 것이다.
점이나 직선, 곡선, 사각형, 타원 등의 기하학적인 도형 요소를 조합시키는 것에 의해 구성되는 화상은 벡터 그래픽스(vector graphics)로 불리워지고 있다. 이에 대해 점(픽셀 또는 도트)의 배열에 의해 구성되는 화상은 래스터 그래픽스(raster graphics)로 불리워지고 있다.
일반적으로, 디스플레이에 표시되는 화상이나 프린터로 인쇄되는 화상은 래스터 그래픽스이다. 이 때문에, 이들 기기로 벡터 그래픽스를 취급하는 경우에는 래스터 그래픽스로 변환하는 처리[즉, 래스터화(rasterizing)]가 필요로 된다. 래스터화의 처리 비용은 고가이고, 복잡한 벡터 그래픽스를 래스터화 하기 위해서는 고성능 계산기가 필요로 된다.
한편, 벡터 그래픽스는 표시를 할 때 마다, 적절한 해상도의 래스터 그래픽스를 생성할 수 있으므로, 화상의 확대나 축소, 변형에 의해 윤곽선 등의 화질이 손상되는 것이 없다. 그 때문에, 일러스트나 도면 등의 윤곽선이 뚜렷한 인공적인 화상은 벡터 그래픽스로서 다루어지는 것이 많다. 사진 등의 자연 화상은 래스터 그래픽스로서 다루어지는 것이 많다.
벡터 그래픽스의 가장 친숙한 이용예로서 폰트(fonts)가 알려져 있다. 초기의 퍼스널 컴퓨터(이하, PC로 칭함)에서는 CPU 성능의 제약으로 인해 래스터 형식의 폰트(비트 맵 폰트)가 사용되고 있었다. 그러나, 비트 맵 폰트에서는 해상도 마다 폰트 데이터를 저장해야만 하기 때문에 많은 기억용량을 필요로 한다.
그 후 CPU 성능의 향상에 수반해서 현재의 PC에서는 해상도에 의존하지 않는 벡터 형식의 폰트(아웃 라인 폰트) 데이터를 저장해 두고서, 디스플레이나 프린터 에 알맞은 적절한 해상도의 폰트를 그때마다 생성하는 것에 의해 적은 기억용량으로 고품질인 폰트를 표시할 수 있도록 되었다.
그러나, 휴대전화나 카내비게이션 시스템 등에 내장되는 CPU는 처리 능력이 비교적 낮다. 그 때문에, 벡터 그래픽스의 래스터화에 필요로 되는 연산 비용을 저감시키는 것이 과제로 되어 있다.
최근, 이 과제를 해결하기 위해 GPU(graphic processing units)가 활용되고 있다. 이 GPU를 이용한 래스터화 수법에서는 복수의 삼각형을 이용해서 곡선을 근사하고 있다. 이 때문에, 래스터 그래픽스를 확대했을 때, 래스터 그래픽스가 거칠게 보여 버린다. 벡터 그래픽스를 보다 매끄럽게 래스터화하기 위해서는 다수의 삼각형을 이용해서 곡선의 근사 정밀도를 높일 필요가 있기 때문에, 기억용량과 처리 비용의 증대를 피할 수 없다. 여기서, 예컨대 GPU를 이용해서 벡터 그래픽스를 래스터화하기 위한 수법이 제안되고 있다(참고문헌 : C. Loop and J.Blinn, Resolution Independent Curve Rendering using Programmab1e Graphics Hardware, SIGGRAPH 2005 참조). 참고문헌의 래스터화 수법의 처리는 CPU에 의한 전처리와 GPU에 의한 주처리의 2단계의 처리를 포함한다.
이 참고문헌의 래스터화 수법에서는 벡터 그래픽스를 삼각형 단위가 아니고, 곡선 근방의 픽셀 단위로 처리하기 때문에, 해상도에 의존하지 않고 항상 매끄럽게 곡선을 래스터화 할 수가 있다. 더욱이, 기억용량과 처리 비용도 해상도에 의존하지 않기 때문에, 기억용량과 처리 비용의 증대의 필요가 없어진다.
그러나, 상기 참고문헌의 래스터화 수법에는 이하의 2가지의 문제가 있다.
(1) 전처리 비용이 고가이다. 전처리 비용은 도형의 기하 형상이 시간적으로 변화하지 않는 경우이면 큰 문제로는 되지 않는다. 한 번 전처리를 하여 버리면, 이후는 다시 전처리를 수행할 필요가 없기 때문이다. 그러나, 동적으로 도형의 기하 형상이 변화하는 경우는 그 때 마다 전처리를 다시 하지 않으면 안되기 때문에, 이 전처리가 래스터화 처리 전체의 병목(bottleneck)으로 되는 것이 많다.
(2) 안티-에일리어징(anti-aliasing)을 위해 알파 브랜드(alpha blending)를 이용하고 있다. 「안티-에일리어징」이라는 것은 래스터화된 도형의 윤곽선에 나타나는 톱니(jaggy)(계단상의 톱니모양)를 제거하는 처리이다. 「알파 브랜드」라는 것은 알파값(alpha value)으로 불리워지는 계수를 이용해서 2가지의 픽셀값을 반투명 합성하는 처리이다.
널리 알려져 있는 바와 같이, 알파 브렌드를 이용하기 위해서는 모든 도형을 깊이값(depth value)으로 깊이-소트(depth-sorted)하고, 내측에 위치하는 도형으로부터 차례로 래스터화해야만 한다. 깊이값 소트는 매우 비용이 고가인 처리이고, 래스터화 처리 전체의 병목으로 되는 것이 많다.
본 발명은 상기한 점을 감안하여 발명된 것으로, 벡터 형식의 도형 데이터로부터 래스터 형식의 도형 데이터를 생성하기 위한 묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체를 제공함에 그 목적이 있다.
본 발명에 따른 묘화장치는, 벡터 형식의 도형 데이터에 대해 직선 윤곽과 곡선 윤곽의 해석을 수행하여 직선 윤곽 및 곡선 윤곽을 삼각형화해서 삼각형 데이터를 생성하는 제1데이터 생성부와, 상기 삼각형 데이터로부터 스텐실 데이터를 생성하는 제2데이터 생성부 및, 상기 스텐실 데이터를 참조해서 래스터 형식의 도형 데이터를 생성하는 제3데이터 생성부를 구비하여 구성된 것을 특징으로 한다.
또한 본 발명은, 상기와 같은 장치의 발명에 한정하지 않고, 방법 또는 프로그램의 발명으로서도 성립한다.
(실시예)
이하, 예시도면을 참조해서 본 발명의 실시예를 설명한다.
제1실시예에서는 전처리(preprocessing)를 불필요하게 하는 래스터화에 있어서의 볼록(凸)곡선만의 처리에 대해 설명한다. 도 1에 나타낸 바와 같이, 본 제1실시예에 따른 묘화장치는 벡터 데이터 기억부(1)와, 삼각형 데이터 생성부(2), 삼각형 데이터 기억부(3), 스텐실 데이터 생성부(4), 스텐실 데이터 기억부(5), 래스터 데이터 생성부(6), 래스터 데이터 기억부(7) 및, 제시부(8)를 갖추고 있다. 도 1에는 각 블록에 대한 데이터의 흐름에 대해서도 나타나 있다.
상기 구성에 있어서, 벡터 데이터 기억부(1)는 벡터 형식의 도형 데이터를 기억한다.
삼각형 데이터 생성부(2)는 상기 벡터 데이터 기억부(1)에 기억되어 있는 벡터 형식의 도형 데이터를 읽어들여, 자세한 것은 후술하는 바와 같이, 삼각형 데이 터를 생성한다.
삼각형 데이터 기억부(3)는 상기 삼각형 데이터 생성부(2)에 의해 생성된 삼각형 데이터를 기억한다.
스텐실 데이터 생성부(4)는 상기 삼각형 데이터 기억부(3)에 기억되어 있는 삼각형 데이터를 읽어들여, 스텐실 데이터를 생성한다.
스텐실 데이터 기억부(5)는 상기 스텐실 데이터 생성부(4)에 의해 생성된 스텐실 데이터를 기억한다.
래스터 데이터 생성부(6)는 상기 스텐실 데이터 기억부(5)에 저장되어 있는 스텐실 데이터를 참조해서 래스터 형식의 데이터(이하, 「래스터 데이터」라고도 칭함)를 생성한다.
래스터 데이터 기억부(7)는 상기 래스터 데이터 생성부(6)에 의해 생성된 래스터 데이터를 기억한다.
제시부(8)는 상기 래스터 데이터 기억부(7)에 저장되어 있는 래스터 데이터를 제시한다.
도 1에서는 벡터 데이터 기억부(1), 삼각형 데이터 기억부(3), 스텐실 데이터 기억부(5), 래스터 데이터 기억부(7)를 다른 블록으로서 표기하고 있다. 이들 기억부는 단일의 메모리 상에 통합해서 구성해도 되고, 다른 복수의 메모리 상에 분할해서 구성해도 된다.
도 2에 나타낸 바와 같은 벡터 그래픽스를 래스터 그래픽스로 래스터화 하는 경우에 대해 설명한다. 이 경우에 있어서, 본 실시예의 래스터화 수법을 설명하 는데 있어, 이해를 용이하게 하기 위해, 먼저 상기 참고문헌에 기재된 래스터화 수법에 대해 그 요점을 설명한다.
도 3으로부터 알 수 있는 바와 같이, 참고문헌에 기재된 처리는 CPU에 의한 전처리와 GPU에 의한 주처리의 크게 2단계의 처리로 이루어진다. 즉, 최초로, CPU에 의해 벡터 형식의 도형이 삼각형의 집합으로 분해된다. 그 후, GPU에 의해 각 삼각형이 래스터화 된다. 이 이유는 GPU의 처리 단위는 삼각형으로, 도 2와 같은 직선과 곡선으로 구성되는 도형을 직접 취급할 수가 없기 때문이다.
구체적으로는, 먼저 HDD나 RAM 등의 기억 매체로부터 벡터 형식의 데이터(이하, 「벡터 데이터」라고도 칭함)를 읽어들여, 그 윤곽선을 해석하는 처리를 수행한다(단계 S101). 예컨대, 도 2의 도형을 나타내는 벡터 형식의 데이터는 도 4에 나타낸 바와 같은 점과 직선으로부터 구성되어 있다. 도 4에서는 도형의 직선 또는 파라미터 곡선의 단점(end-points)을 흑색 동그라미로 나타내고, 파라미터 곡선의 제어점을 백색 동그라미로 나타내고 있다. 단계(S101)에서는 이와 같은 벡터 형식의 데이터를 해석해서 도 5a 및 도 5b에 나타낸 바와 같은 2종류의 윤곽선 데이터를 생성한다. 또한, 본 명세서에서는 도 5a의 윤곽 선데이터를 「직선 윤곽」, 도 5b의 윤곽선 데이터를 「곡선 윤곽」으로 칭한다.
먼저, 도 5b의 곡선 윤곽에 대해 설명한다. 도 2, 도 4 및 도 5b로부터, 곡선 윤곽은 파라미터 곡선의 시점과 종점 및 제어점의 3점을 연결하는 삼각형의 집합인 것을 알 수 있다. 여기서, 각 삼각형은 파라미터 곡선에 외접 하고 있고, 곡선은 반드시 삼각형의 내부에 존재한다. 여기서, 곡선 윤곽은 도 6a 및 도 6b 에 나타낸 것과 같은 2종류의 곡선 윤곽으로 분류된다. 도 6a는 곡선의 오목(凹)영역이 도형의 내측에 있는 것(이하, 「오목(凹)곡선 윤곽」이라고 칭함)이고, 도 6b는 곡선의 볼록(凸)영역이 도형의 내측에 있는 것(이하, 「볼록(凸)곡선 윤곽」으로 칭함)이다.
도 5a의 직선 윤곽에 대해 설명한다. 도 2, 도 4 및 도 5a로부터 직선 윤곽은 직선의 시점과 종점, 볼록(凸)곡선 윤곽의 시점과 종점, 오목(凹)곡선 윤곽의 시점과 제어점 및 종점을, 선분으로 연결하는 것에 의해 얻을 수 있는 다각형인 것을 알 수 있다. 볼록(凸)곡선 윤곽에서는 시점과 종점의 2점이 연결되는 것에 대해, 오목(凹)곡선 윤곽에서는 시점과 제어점 및 종점의 3점이 차례로 연결된다. 또한, 도 5a로부터 알 수 있는 바와 같이, 직선 윤곽을 구성하는 다각형은 1개라고는 할 수 없다(본 예에서는 3개의 다각형으로 구성된다). 또, 각 다각형은 자기 교차(self-intersections)나 구멍(holes)을 포함하는 것이 있다.
다음에, 단계(S101)에 있어서 벡터 형식의 데이터의 윤곽선의 해석이 종료되면, 생성된 곡선 윤곽에 겹침이 있는가를 조사한다(단계 S102). 그 결과, 겹침이 발견되었을 경우는 단계(S103)로 진행해서, 겹침이 있는 2개의 삼각형 중 면적이 큰 쪽을 미세 분할하는 처리가 수행된다(단계 S103). 이 미세 분할 처리의 영향으로 직선 윤곽에도 변경이 생기기 때문에, 직선 윤곽을 갱신한다(단계 S104). 그 후, 단계(S102)로 되돌아가서 다시 겹침이 있는가를 조사해서, 겹침이 없으면 단계(S105)로 진행한다. 또한, 곡선 윤곽의 겹침이 없어질 때까지, 단계(S102∼S104)의 처리가 반복된다.
구체적으로는, 예컨대 도 5b의 곡선 윤곽의 경우에는, 삼각형 a와 b 및, 삼각형 c와 d가 겹치고 있으므로, 삼각형 a 및 c가, 각각 도 7b에 나타낸 바와 같은 2개의 삼각형 a0와 a1 및, c0와 c1으로 미세 분할된다. 그리고, 도 7a에 나타낸 바와 같이 직선 윤곽이 갱신된다.
다음에, 직선 윤곽을 구성하는 각 다각형이 각각 복수의 삼각형으로 분할된다. 예컨대 도 7a의 3개의 다각형은 도 8에 나타낸 바와 같은 삼각형의 집합으로 분할된다.
상기 단계(S1O1∼S105)의 처리는 모두 CPU에 의한 전처리로서 실행된다.
그리고, 직선 윤곽을 구성하는 삼각형(도 8) 및 곡선 윤곽을 구성하는 삼각형(도 7b)이 GPU에 의해 래스터화 된다(단계 S106). 이 때, 도 9a에 나타낸 바와 같이, 직선 윤곽을 구성하는 삼각형의 내측에 있는 모든 픽셀이 래스터화 된다. 이에 대해, 도 9b에 나타낸 바와 같이, 곡선 윤곽을 구성하는 삼각형의 내측에 있는 픽셀 중, 오목(凹)곡선 윤곽의 오목(凹) 영역만, 또는 볼록(凸)곡선 윤곽의 볼록(凸) 영역만이 래스터화 된다.
상기와 같이 해서 얻어진 직선 윤곽과 곡선 윤곽의 래스터화 결과는 GPU 내부의 프레임 버퍼(frame buffer)에 함께 기억된다. 예컨대, 도 9a와 도 9b 에 나타낸 데이터는 각각 도 10에 나타낸 바와 같은 래스터 데이터로서 프레임 버퍼에 기억된다.
본 실시예에서는 CPU에 의한 전처리를 저감한 것을 특징으로 하고 있다. 이하, 제1실시예에 따른 묘화장치의 각 블록의 상세한 동작(처리) 및 블록 사이를 흐르는 데이터의 구조에 대해, 도면을 참조해서 설명한다.
벡터 데이터 기억부(1)는 래스터화하는 도형의 벡터 데이터를 기억하고 있다. 벡터 데이터는 도 4에 설명한 바와 같이, 도형 요소의 종류, 도형 요소를 구성하는 각 점의 좌표 및, 각 점의 접속 관계 등으로 구성된다.
예컨대, 도 2의 도형 벡터 데이터는 상기 설명과 마찬가지로, 도 4에 나타낸 바와 같이 표시된다. 도 4에서는 직선 또는 파라미터 곡선의 단점(end-points)을 흑색 동그라미로 나타내고, 파라미터 곡선의 제어점을 백색 동그라미로 나타내고 있다.
제1실시예에서는 도 4에 나타낸 바와 같은 벡터 데이터가 미리 벡터 데이터 기억부(1)에 기억되어 있는 것으로 한다. 벡터 데이터는 상기 형식으로 한정되는 것은 아니고, 그래픽스의 분야에 있어서 일반적으로 이용되는 다른 데이터를 포함해도 된다.
벡터 데이터 기억부(1)에 저장되어 있는 벡터 데이터(도 4)는 삼각형 데이터 생성부(2)에서 읽어 들인다. 삼각형 데이터 생성부(2)는 읽어들인 벡터 데이터의 윤곽선을 해석하는 것에 의해 도 11에 나타낸 바와 같은 흐름에 따라 삼각형 데이터를 생성한다.
먼저, 벡터 데이터의 직선 윤곽이 해석된다. 도 5a에 나타낸 수법에서는 벡터 데이터에 포함되는 직선의 시점과 종점, 볼록(凸)곡선 윤곽의 시점과 종점 및, 오목(凹)곡선 윤곽의 시점과 제어점 및 종점을, 선분으로 연결하는 것에 의해 얻어지는 다각형을 직선 윤곽으로 하고 있다.
이에 대해, 제1실시예에 있어서의 삼각형 데이터 생성부(2)에서는 제어점은 무시하고, 벡터 데이터에 포함되는 직선 및 곡선의 시점과 종점만을 선분으로 연결하는 것에 의해 얻어지는 적어도 1개의 다각형을 직선 윤곽으로 한다. 예컨대, 도 4의 벡터 데이터로부터 해석된 직선 윤곽으로서 도 12에 나타낸 바와 같은 3개의 다각형 P0, P1, P2가 얻어진다(이하, 복수의 다각형이 얻어진 것으로서 설명한다).
다음에, 직선 윤곽의 삼각형화를 수행한다(단계 S202). 구체적으로는, 먼저 단계(S201)에서 얻어진 직선 윤곽을 구성하는 각 다각형의 복수의 정점 중 임의의 1개의 정점을 선택한다(본 명세서에서는, 이 점을 「피봇(pivot)」이라 칭함). 그리고, 각각의 다각형에 대해 피봇과 그 피봇을 포함하는 다각형에 있어서의 다른 모든 정점을 직선으로 연결하고, 연결하는 2개의 정점이 1개의 삼각형의 변으로 되도록, 피봇을 1개의 정점으로 하는 복수의 삼각형을 생성한다. 여기서 연결하는 2개의 정점이라는 것은 다각형의 변에 의해 연결되어 있는 2개의 정점을 의미한다.
예컨대, 도 12에 있어서 3개의 다각형 P0, P1, P2에 대해 각각 점 0, 23, 28을 피봇으로 선택한 것으로 하면, 도 13에 나타낸 바와 같은 복수의 삼각형이 생성된다. 도 13에서는 복수의 삼각형이 서로 겹쳐 있어, 이 도면만으로는 삼각형의 형상을 파악하는 것이 어렵기 때문에, 편의상 도 14에 3개의 다각형 P0, P1, P2로부터 생성된 복수의 삼각형을 구성하는 3개의 정점의 번호를 나타낸다.
그러나, 도 14는 어디까지나 설명을 알기 쉽게 하기 위한 보충이고, 삼각형 데이터 그 자체를 나타내고 있는 것은 아니다. 실제의 삼각형 데이터는 각 삼각 형을 구성하는 3점의 위치 좌표, 텍스처(texture) 좌표 및, 접속 관계 등으로 구성된다.
그리고, 벡터 데이터의 곡선 윤곽이 해석된다(단계 S203). 이 처리는 도 5b에 나타낸 처리와 마찬가지로, 벡터 데이터에 포함되는 파라미터 곡선의 시점과 종점 및 제어점의 3점을 연결하는 삼각형의 집합을 곡선 윤곽으로 한다.
이상과 같은 처리 수순으로 생성된 직선 윤곽의 삼각형 데이터(도 13)와 곡선 윤곽의 삼각형 데이터(도 5b)가 삼각형 데이터 생성부(2)로부터 출력되어 삼각형 데이터 기억부(3)에 기억된다.
또한, 상기 단계 S201과 S202의 처리를 병렬로 진행하도록 구성해서, 직선 윤곽을 해석함과 동시에 삼각형을 생성해도 상관없다.
상기한 바와 같이 삼각형 데이터는 각 삼각형을 구성하는 3점의 위치 좌표, 텍스처 좌표 및, 접속 관계 등으로 구성된다. 단, 삼각형 데이터의 구성은 이 형식으로 한정되는 것은 아니고, 그래픽스의 분야에 있어서 일반적으로 이용되는 다른 데이터를 포함해도 된다.
스텐실 데이터 생성부(4)는 삼각형 데이터 기억부(3)에 저장되어 있는 삼각형 데이터를 읽어들여, 삼각형 내부의 픽셀을 래스터화 하는 것에 의해 스텐실 데이터를 생성한다.
이 스텐실 데이터는 최종적으로 제시부(8)에서 제시하는 해상도와 같은 해상도를 갖는 화상 데이터이다. 또한, 스텐실 데이터는 스텐실 데이터 기억부(5)에 저장된다. 또, 스텐실 데이터의 각 픽셀에는 수 비트 정도의 수치가 할당되어 있 고, 매 프레임, 모든 묘화에 앞서 0으로 초기화된다.
그리고, 스텐실 데이터 생성부(4)는 삼각형 데이터 기억부(3)로부터 직선 윤곽의 삼각형 데이터(도 13) 및 곡선 윤곽의 삼각형 데이터(도 5b)를 읽어들여 래스터화 한다. 이 때, 직선 윤곽의 삼각형의 내측에 있는 모든 픽셀이 래스터화 된다. 여기서, 래스터화는 도 13에 나타낸 모든 삼각형에 대해 그 삼각형의 내부에 위치하는 스텐실 데이터의 픽셀값이 각 삼각형에 대해 비트 반전되는 것에 의해 수행된다.
예컨대, 도 13의 모든 삼각형에 대해 비트 반전 묘화한 경우에는 도 15에 나타낸 바와 같은 스텐실 데이터가 얻어진다. 도 15에서는 모든 삼각형에 대해 비트 반전 처리가 수행된 픽셀 중 픽셀값이 0 이외인 장소를 흑색으로, 픽셀값이 0인 장소를 회색으로 칠하고 있다. 도 15로부터 알 수 있는 바와 같이, 직선 윤곽의 내측에 있는 픽셀값은 0 이외, 외측에 있는 픽셀값은 0으로 되어 있다.
곡선 윤곽의 삼각형에 대해서는 그 삼각형의 내측에 있는 픽셀 중 곡선의 볼록(凸)영역에 속하는 픽셀만이 래스터화 되고, 이러한 픽셀 위치에 대응하는 스텐실 데이터의 픽셀값이 비트 반전된다.
예컨대, 직선 윤곽의 삼각형에 대해 도 15에 나타낸 바와 같은 스텐실 데이터에, 도 16a에 나타낸 바와 같은 래스터화된 스텐실 데이터가 적용되어, 곡선의 볼록(凸)영역에 속하는 픽셀값이 비트 반전 묘화 되면, 도 16b에 나타낸 바와 같이 스텐실 데이터가 갱신된다. 도 16b로부터 알 수 있는 바와 같이, 최초로 주어진 도 1의 도형의 내측에 있는 픽셀값은 0 이외, 외측에 있는 픽셀값은 0으로 되어 있 다.
삼각형 데이터를 비트 반전 묘화하는 처리에는 순서 의존성은 없다. 도 15, 도 16a 및 도 16b에서는 최초로 직선 윤곽의 삼각형 데이터를 통합해서 묘화하고, 그 후 곡선 윤곽의 삼각형 데이터를 통합해서 묘화했지만, 모든 삼각형을 임의의 순서로 묘화해도 상관없다.
스텐실 데이터 기억부(5)는 스텐실 데이터 생성부(4)에 의해 생성된 스텐실 데이터(도 16b)를 기억한다.
상기한 바와 같이, 스텐실 데이터는 최종적으로 제시부(8)에 제시되는 해상도와 같은 해상도를 갖는 화상 데이터이다. 단, 스텐실 데이터의 구성은 이 형식으로 한정되는 것은 아니고, 그래픽스의 분야에 있어서 일반적으로 이용되는 다른 데이터를 포함해도 된다.
래스터 데이터 생성부(6)는 스텐실 데이터 기억부(5)에 저장되어 있는 스텐실 데이터를 참조해서, 그 픽셀값이 0 이외인 장소(도 16b에서 흑색으로 칠해져 있는 장소)만을 래스터화 하는 것에 의해 래스터 데이터를 생성한다.
이 래스터 데이터는 최종적으로 제시부(8)에 제시하는 해상도와 같은 해상도를 갖는 화상 데이터이고, 래스터 데이터 기억부(7)에 저장된다. 래스터 데이터의 각 픽셀에는 복수의 색성분(예컨대, RGBA) 마다 수 비트 정도의 수치가 할당되어 있다.
도 17a에 나타낸 바와 같이, 래스터 데이터 생성부(6)는 도형 전체를 덮는 2매의 삼각형의 내측에 있는 모든 픽셀을 래스터화한다. 단, 이들 픽셀 중 실제로 래스터 데이터 기억부(7)에 기록되는 것은 대응하는 스텐실 데이터의 픽셀값이 0 이외인 장소(도 17a에 있어서 흑색으로 칠해져 있는 장소)로 한정된다. 이 결과, 래스터 데이터 기억부(7)에는 도 17b에 나타낸 바와 같은 래스터 데이터가 기록된다.
상기한 바와 같이, 래스터 데이터는 최종적으로 제시부(8)에 제시되는 해상도와 같은 해상도를 갖는 화상 데이터이다. 단, 래스터 데이터의 구성은 이 형식으로 한정되는 것은 아니고, 그래픽스의 분야에 있어서 일반적으로 이용되는 다른 데이터를 포함해도 된다.
제시부(8)는 래스터 데이터 기억부(7)에 저장되어 있는 래스터 데이터를 유저에게 제시하기 위한 디스플레이나 프린터 등으로 구성된다.
도 18의 래스터화 수법의 처리 수순을 나타낸 플로우차트를 도 3에 나타낸 플로우차트와 비교한다. 제1실시예에 따른 묘화장치에 의하면, 도 3에 나타낸 바와 같은 CPU에 의한 전처리 비용은 윤곽선의 해석(단계 S301) 뿐이다. 그리고, 스텐실 데이터의 생성(단계 S302)과 래스터 데이터의 생성(단계 S303)의 처리는 GPU로 수행한다. 이 때문에, CPU에 의한 전처리 비용을 큰폭으로 삭감할 수가 있다. 따라서, 동적으로 도형의 기하 형상이 변화하는 경우라도 고속으로 래스터화 하는 것이 가능하게 된다.
제2실시예에 대해 설명한다.
제2실시예에 따른 묘화장치의 구성은 도 1의 제1실시예에 있어서의 구성과 동일하므로, 도시 및 상세한 설명은 생략한다. 제2실시예가 제1실시예와 다른 점 은 삼각형 데이터 생성부(2) 및 스텐실 데이터 생성부(4)의 처리 내용이 다른 것이다.
도 12에 나타낸 바와 같이, 제1실시예에서는 삼각형 데이터 생성부(2)는 벡터 데이터에 포함되는 직선 및 곡선의 시점과 종점을 단순하게 선분으로 연결하는 것에 의해 얻어지는 다각형을 직선 윤곽으로 하고 있다.
이에 대해 제2실시예에서는 삼각형 데이터 생성부(2)는 도 5a에 나타낸 수법과 마찬가지로, 벡터 데이터에 포함되는 직선의 시점과 종점, 볼록(凸)곡선 윤곽의 시점과 종점 및, 오목(凹)곡선 윤곽의 시점과 제어점 및 종점을, 선분으로 연결하는 것에 의해 얻어지는 다각형을 직선 윤곽으로 한다.
삼각형 데이터 생성부(2)는 이 직선 윤곽의 해석에 의한 다각형에 대해, 제1실시예와 마찬가지로 피봇을 1개의 정점으로 하는 복수의 삼각형 데이터를 생성한다. 생성된 삼각형 데이터의 예를 도 19에 나타낸다.
곡선 윤곽의 구성 방법 및, 곡선 윤곽으로부터 삼각형 데이터를 생성하는 방법은 제1실시예와 마찬가지이다.
스텐실 데이터 생성부(4)는 제1실시예와 마찬가지로 삼각형 데이터 기억부(3)로부터 직선 윤곽의 삼각형 데이터(도 19) 및 곡선 윤곽의 삼각형 데이터(도 5b)를 읽어들여 래스터화 한다. 이 때, 직선 윤곽의 삼각형에 대해서는 각 삼각형의 내측에 있는 모든 픽셀이 래스터화 되고, 이러한 픽셀 위치에 대응하는 스텐실 데이터의 픽셀값이 비트 반전된다.
도 19의 모든 삼각형을 비트 반전 묘화 하면, 도 20에 나타낸 바와 같은 스 텐실 데이터를 얻을 수 있다. 도 20에서는 1회 이상 비트 반전된 픽셀 중 픽셀값이 0 이외인 장소를 흑색으로, 픽셀값이 0인 장소를 회색으로 칠하고 있다.
도 16a에 나타낸 바와 같이, 제1실시예에서는 스텐실 데이터 생성부(4)는 곡선 윤곽의 삼각형의 내측에 있는 픽셀 중 곡선의 볼록(凸)영역에 속하는 픽셀만이 래스터화 하고 있다.
이에 대해, 제2실시예에서는 스텐실 데이터 생성부(4)는 도 21a에 나타낸 바와 같이 곡선 윤곽의 삼각형의 내측에 있는 픽셀 중 오목(凹)곡선 윤곽의 오목(凹) 영역만, 또는 볼록(凸)곡선 윤곽의 볼록(凸) 영역만을 래스터화하고, 이러한 픽셀 위치에 대응하는 스텐실 데이터의 픽셀값을 비트 반전한다.
예컨대, 이미 직선 윤곽의 삼각형 데이터가 비트 반전 묘화되고, 스텐실 데이터가 도 20과 같은 상태로 되어 있는 곳에서, 도 21a에 나타낸 바와 같은 곡선의 오목(凹) 영역 또는 볼록(凸) 영역에 속하는 픽셀값이 비트 반전 묘화된 경우, 도 21b에 나타낸 바와 같이 스텐실 데이터가 갱신된다. 도 21b로부터 알 수 있는 바와 같이, 최초로 부여된 도 2의 도형의 내측에 있는 픽셀값은 0 이외, 외측에 있는 픽셀값은 0으로 되어 있다.
또한, 삼각형 데이터를 비트 반전 묘화하는 처리에는 순서 의존성은 없다. 도 20 및 도 21a 및 도 21b에서는 최초로 직선 윤곽의 삼각형 데이터를 통합해서 묘화하고, 그 후 곡선 윤곽의 삼각형 데이터를 통합해서 묘화했지만, 모든 삼각형을 임의의 순서로 묘화해도 상관없다.
제2실시예에 따른 묘화장치에 의한 래스터화 수법의 처리 수순은 거의 도 18 에 나타낸 제1실시예의 플로우차트와 같다.
따라서, 제2실시예에 따른 묘화장치에 의하면, 제1실시예와 마찬가지로 전처리 비용을 큰 폭으로 삭감할 수 있기 때문에, 동적으로 도형의 기하 형상이 변화하는 경우에도 고속으로 래스터화 하는 것이 가능하게 된다.
또, 제2실시예는 제1실시예와 직선 윤곽의 해석 수법이 다른 바, 도 5a 및 도 5b에 나타내는 수법과 같은 해석을 수행하고 있지만, 도 3에 나타낸 플로우차트에 있어서 곡선 윤곽의 미세 분할(단계 S103)과 직선 윤곽의 갱신(단계 S104)이 불필요하게 되어 있는 것은 명백하고, 이 점에서도 전처리 비용을 큰 폭으로 삭감할 수가 있다.
제3실시예에 대해 설명한다.
도 22에 나타낸 바와 같이, 제3실시예에 따른 묘화장치는 제1실시예 및 제2실시예에 따른 묘화장치에 대해 커버리지(coverage) 데이터 기억부(9) 및 래스터 데이터 합성부(10)를 추가하고 있다.
커버리지 데이터 기억부(9)는 스텐실 데이터 생성부(4)로부터 출력된 커버리지 데이터를 기억한다.
커버리지 데이터는 최종적으로 제시부(8)에 제시하는 해상도와 같은 해상도를 갖는 화상 데이터이다. 커버리지 데이터의 각 픽셀에는 수 비트 정도의 수치가 할당되어 있고, 매 프레임, 모든 묘화에 앞서서 1로 초기화된다.
스텐실 데이터 생성부(4)는 스텐실 데이터를 비트 반전 묘화하여 스텐실 데이터 기억부(5)로 출력한다. 그 때, 스텐실 데이터 생성부(4)는 커버리지 데이터 기억부(9)에 저장되어 있는 커버리지 데이터의 대응하는 픽셀 위치에 대해서 알파값을 묘화한다.
스텐실 데이터 생성부(4)는 래스터화된 픽셀 중 도형의 엣지 근방에 위치하는 픽셀의 알파값에 대해 1 보다 작은 값을 할당하고, 그 알파값을 커버리지 데이터로서 커버리지 데이터 기억부(9)로 출력한다
래스터 데이터 생성부(6)는 커버리지 데이터 기억부(9)에 저장되어 있는 커버리지 데이터를 참조해서 서브 픽셀 정밀도의 래스터 데이터를 생성하여 래스터 데이터 기억부(7)로 출력한다.
그리고, 래스터 데이터 생성부(6)는 커버리지 데이터가 1인 픽셀을 래스터화 하는 경우, 그 픽셀에 포함되는 모든 서브 픽셀에 대해, 이번에 래스터화 된 픽셀의 칼라값을 할당한다.
한편, 커버리지 데이터가 1 보다 작은 픽셀, 즉 도형의 엣지 근방의 픽셀을 래스터화 하는 경우, 그 픽셀에 포함되는 서브 픽셀 중 일부에 대해, 이번에 래스터화된 픽셀의 칼라값을 할당하고, 나머지 서브 픽셀에 대해서는 이미 할당되어 있는 칼라값을 그대로 보존해 두도록 한다. 또한, 칼라값을 할당하는 서브 픽셀은 커버리지의 크기에 기초해서 선택된다.
래스터 데이터 기억부(7)는 래스터 데이터 생성부(6)에 의해 생성된 서브 픽셀 정밀도의 래스터 데이터 및, 래스터 데이터 합성부(10)에 의해 합성된 픽셀 정밀도의 래스터 데이터를 기억한다.
래스터 데이터 합성부(10)는 래스터 데이터 기억부(7)에 저장되어 있는 서브 픽셀 정밀도의 래스터 데이터를 합성하고, 최종적으로 제시부(8)에 제시되는 해상도와 같은 해상도(픽셀 정밀도)의 래스터 데이터로 변환한다.
이와 같이, 서브 픽셀 정밀도의 래스터 데이터가 합성되는 것에 의해, 톱니형상(jaggies)이 제거된 매끄러운 래스터화 결과가 얻어진다.
상기한 바와 같이, 참고문헌의 수법에서는 안티-에일리어징를 위해 알파 브랜드를 이용하고 있었다. 그 때문에, 모든 도형을 깊이-소트(depth-sorted)하고, 안쪽에 위치하는 도형으로부터 차례로 래스터화 해야만 하였다.
그러나, 제3실시예에 따른 묘화장치에 의하면, 처리 비용이 고가인 알파 브랜드를 이용하지 않기 때문에, 고속으로 안티-에일리어징 하는 것이 가능하게 된다.
제4실시예를 설명한다.
상기의 각 실시예에서는 기본적으로 파라미터 곡선(예컨대, 2차 베지어 곡선)을 포함하는 도형에 대해, 래스터화를 수행하는 예를 나타내고 있다. 제4실시예에서는 3차 베지어 곡선을 포함하는 도형이어도, 상기와 같은 파라미터 곡선(예컨대, 2차 베지어 곡선)을 포함하는 도형과 같게 취급하는 것을 나타낸다. 또한, 처리의 수순은 제1실시예와 마찬가지이므로, 도시는 생략 한다. 또, 제1실시예와 중복되는 설명에 대해서도 생략한다.
도 23은 3차 베지어 곡선을 포함하는 도형의 예를 나타낸 도면이다. 도 23의 도형은 도 24에 나타낸 바와 같은 벡터 데이터로서 벡터 데이터 기억부(1)에 기억되어 있는 것으로 한다.
삼각형 데이터 생성부(2)는 제1실시예와 마찬가지로 도 24에 나타낸 벡터 데이터를 해석하고, 도 25a에 나타낸 직선 윤곽과 도 25b에 나타낸 곡선 윤곽을 생성한다. 여기서, 도형의 직선 또는 파라미터 곡선의 단점을 흑색 동그라미로 나타내고, 파라미터 곡선의 제어점을 백색 동그라미로 나타내고 있다. 제4실시예에서는 파라미터 곡선의 단점에 대해 파라미터 곡선의 제어점이 2점으로 되어 있고, 한 쪽의 제어점으로부터 대각방향에 위치하는 단점을 연결하여 삼각형이 형성된다. 또한 곡선 윤곽에 대한 래스터 데이터는 도 26a에 나타낸 바와 같은 곡선에 의해 결정되지만, 도 26b에 나타낸 바와 같은 변곡점을 갖는 것과 같은 곡선으로 정의되는 것과 같은 것이어도 된다.
그리고, 삼각형 데이터 생성부(2)는 직선 윤곽에 대해서는 제1실시예와 마찬가지로 도 27에 나타낸 바와 같이 피봇(도 27에 있어서의 0점)과, 그 피봇를 포함하는 다각형에 있어서의 다른 모든 정점을 직선으로 연결하고, 연결하는 2개의 정점이 1개의 삼각형의 변으로 되도록 피봇을 1개의 정점으로 하는 복수의 삼각형을 생성한다.
스텐실 데이터 생성부(4)는 삼각형 데이터 생성부(2)로 작성한 삼각형 데이터를 제1실시예와 마찬가지로 래스터화 한다. 이에 의해, 도 28에 의한 래스터화된 스텐실 데이터가 얻어진다. 최종적으로, 스텐실 데이터 생성부(4)는 제1실시예와 마찬가지로 직선 윤곽에 의한 삼각형 데이터로부터 얻어진 스텐실 데이터(도 28)와, 곡선 윤곽에 의한 삼각형 데이터로부터 얻어진 스텐실 데이터(도 29a)에 의해, 도 29b에 나타낸 바와 같은 스텐실 데이터를 생성한다. 그리고, 최종적으로 도 30a에 나타낸 바와 같은 도형 전체를 덮는 2매의 삼각형의 내측에 있는 모든 픽셀을 래스터화 한다. 단, 이들 픽셀 중 실제로 래스터 데이터 기억부(7)에 기록되는 것은 대응하는 스텐실 데이터의 픽셀값이 0 이외인 장소(도 30a에 있어서 흑색으로 칠해져 있는 장소)로 한정된다. 이 결과, 래스터 데이터 기억부(7)에는 도 30b에 나타낸 바와 같은 래스터 데이터가 기록된다. 또한, 이 경우의 상세한 처리는 제1실시예와 마찬가지이므로 설명을 생략한다.
상기한 바와 같이 본 실시예에 의하면, 전처리 비용을 대폭 삭감한 새로운 래스터화 수법을 제공하고 있다. 이 결과, 동적으로 도형의 기하 형상이 변화하는 경우이어도 고속으로 래스터화 하는 것이 가능하게 된다.
더욱이 본 실시예에 의하면, 알파 브랜드가 불필요한 새로운 안티-에일리어징 수법을 제공하고 있다. 이 결과, 처리 비용이 고가인 깊이-소트가 불필요하게 되어, 고속으로 안티-에일리어징 하는 것이 가능하게 된다.
예컨대, 상기의 실시예에서는 문자에 대해 벡터 형식의 도형 데이터로부터 래스터 형식의 도형 데이터를 생성하는 경우를 설명했지만, 다른 도형, 예컨대 지도 데이터가 벡터 형식으로 주어지고 있는 경우에, 해당 지도 데이터로부터 래스터 형식의 도형 데이터를 생성하는 경우에도 물론 적용 가능하다.
본 발명에 의하면, 동적으로 도형의 기하 형상이 변화하는 경우이어도 고속으로 래스터화 하는 것이 가능하게 된다. 또한, 처리 비용이 고가인 알파 브랜드 를 이용하는 것 없이 고속으로 안티-에일리어징 하는 것이 가능하게 된다.

Claims (11)

  1. 벡터 형식의 도형 데이터에 대해 직선 윤곽과 곡선 윤곽의 해석을 수행하여 직선 윤곽 및 곡선 윤곽을 삼각형화해서 삼각형 데이터를 생성하는 제1데이터 생성부와,
    상기 삼각형 데이터로부터 스텐실 데이터를 생성하는 제2데이터 생성부 및,
    상기 스텐실 데이터를 참조해서 래스터 형식의 도형 데이터를 생성하는 제3데이터 생성부를 구비하여 구성된 것을 특징으로 하는 묘화장치.
  2. 제1항에 있어서, 상기 벡터 형식의 도형 데이터를 기억하기 위한 제1기억부와,
    상기 제1데이터 생성부에 의해 생성된 삼각형 데이터를 기억하기 위한 제2기억부,
    상기 제2데이터 생성부에 의해 생성된 스텐실 데이터를 기억하기 위한 제3기억부 및,
    상기 제3데이터 생성부에 의해 생성된 래스터 형식의 도형 데이터를 기억하기 위한 제4기억부를 더 구비하여 구성된 것을 특징으로 하는 묘화장치.
  3. 제2항에 있어서, 상기 래스터 형식의 도형 데이터를 제시하기 위한 제시부를 더 구비하여 구성된 것을 특징으로 하는 묘화장치.
  4. 제1항에 있어서, 상기 제1데이터 생성부가, 상기 벡터 형식의 도형 데이터의 직선 윤곽의 해석에 의해 적어도 1개의 다각형을 생성하고, 각 다각형에 있어서 다각형의 1개의 정점을 삼각형의 공통의 정점으로 하며, 이 공통의 정점과 다른 모든 정점을 직선으로 연결하고, 연결하는 2개의 정점이 1개의 삼각형의 변으로 되도록 복수의 삼각형을 생성하는 것을 특징으로 하는 묘화장치.
  5. 제4항에 있어서, 상기 제2데이터 생성부가, 상기 복수의 삼각형 내부의 제3기억부에 기억된 픽셀을 비트 반전시키고, 상기 곡선 윤곽을 기초로 생성된 곡선의 볼록(凸) 또는 오목(凹) 영역이 속하는 제3기억부에 기억된 픽셀을 비트 반전시키는 것에 의해 스텐실 데이터를 생성하도록 된 것을 특징으로 하는 묘화장치.
  6. 제1항에 있어서, 상기 곡선 윤곽으로 정의되는 곡선이 파라미터 곡선인 것을 특징으로 하는 묘화장치.
  7. 제1항에 있어서, 상기 제2데이터 생성부가, 래스터화된 픽셀 중 도형의 엣지 근방에 위치하는 픽셀의 알파값에 대해 1 보다 작은 값을 할당하는 것을 특징으로 하는 묘화장치.
  8. 제7항에 있어서, 상기 제2데이터 생성부로부터 출력된 픽셀의 알파값을 커버리지 데이터로서 기억하기 위한 제5기억부를 더 구비하여 구성된 것을 특징으로 하는 묘화장치.
  9. 제8항에 있어서, 상기 제5기억부에 기억된 커버리지 데이터를 기초로 상기 래스터 데이터를 합성하는 래스터 데이터 합성수단을 더 구비하여 구성된 것을 특징으로 하는 묘화장치.
  10. 벡터 형식의 도형 데이터에 대해 직선 윤곽과 곡선 윤곽의 해석을 수행하여 직선 윤곽 및 곡선 윤곽을 삼각형화 해서 삼각형 데이터를 생성하고,
    상기 삼각형 데이터로부터 스텐실 데이터를 생성하며,
    상기 스텐실 데이터를 참조해서 래스터 형식의 도형 데이터를 생성하도록 된 것을 특징으로 하는 묘화방법.
  11. 벡터 형식의 도형 데이터에 대해 직선 윤곽과 곡선 윤곽의 해석을 수행하여 직선 윤곽 및 곡선 윤곽을 삼각형화 해서 삼각형 데이터를 생성하는 코드 수단과,
    상기 삼각형 데이터로부터 스텐실 데이터를 생성하는 코드 수단 및,
    상기 스텐실 데이터를 참조해서 래스터 형식의 도형 데이터를 생성하는 코드 수단을 갖춘 프로그램을 구비하여 구성된 것을 특징으로 하는 컴퓨터 판독가능 기록매체.
KR1020060102858A 2006-03-10 2006-10-23 묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체 KR100834596B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006066274A JP4693660B2 (ja) 2006-03-10 2006-03-10 描画装置、描画方法及び描画プログラム
JPJP-P-2006-00066274 2006-03-10

Publications (2)

Publication Number Publication Date
KR20070092586A KR20070092586A (ko) 2007-09-13
KR100834596B1 true KR100834596B1 (ko) 2008-06-02

Family

ID=38137358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060102858A KR100834596B1 (ko) 2006-03-10 2006-10-23 묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체

Country Status (5)

Country Link
US (1) US7817152B2 (ko)
EP (1) EP1833024B1 (ko)
JP (1) JP4693660B2 (ko)
KR (1) KR100834596B1 (ko)
CN (1) CN101114380A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101493621B1 (ko) 2013-03-01 2015-02-13 가부시키가이샤 스크린 홀딩스 데이터 변환 방법, 묘화 시스템 및 기록 매체

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7831098B2 (en) * 2006-11-07 2010-11-09 Recognition Robotics System and method for visual searching of objects using lines
CN101211416B (zh) * 2006-12-26 2010-08-11 北京北大方正电子有限公司 矢量图形光栅化过程中的边界生成方法及系统、制造方法
KR101383716B1 (ko) * 2007-08-17 2014-04-10 삼성디스플레이 주식회사 전기 영동 표시 장치의 구동 장치 및 구동 방법
US7982749B2 (en) * 2008-01-31 2011-07-19 Microsoft Corporation Server-based rasterization of vector graphics
JP2009301284A (ja) * 2008-06-12 2009-12-24 Toshiba Corp 描画装置および方法
CN101661741B (zh) * 2008-08-29 2012-02-22 富士通株式会社 图形光栅扫描中的三角形遍历方法和装置
JP2010066157A (ja) * 2008-09-11 2010-03-25 Shimadzu Corp コーンビームx線ct装置
GB0818277D0 (en) * 2008-10-06 2008-11-12 Advanced Risc Mach Ltd Graphics processing system
GB0818278D0 (en) * 2008-10-06 2008-11-12 Advanced Risc Mach Ltd Graphics processing systems
GB0818280D0 (en) * 2008-10-06 2008-11-12 Advanced Risc Mach Ltd Graphics processing systems
GB0818279D0 (en) * 2008-10-06 2008-11-12 Advanced Risc Mach Ltd Graphics processing systems
DE102008057512A1 (de) * 2008-11-15 2010-07-01 Diehl Aerospace Gmbh Verfahren zur Darstellung von Linienzügen
CN101753767B (zh) * 2008-12-15 2013-02-27 富士通株式会社 用在图形光栅扫描中的凸多边形遍历方法和系统
JP2010256985A (ja) * 2009-04-21 2010-11-11 Toshiba Corp 描画装置および方法
JP2010256986A (ja) * 2009-04-21 2010-11-11 Toshiba Corp 描画装置および方法
JP5443482B2 (ja) * 2009-05-21 2014-03-19 パナソニック株式会社 グラフィクス描画装置、グラフィクス描画方法、グラフィクス描画プログラム、グラフィクス描画プログラムを記録した記録媒体、グラフィクス描画用集積回路
CN101901590B (zh) * 2009-05-25 2013-01-16 富士通株式会社 用于抗锯齿的多边形栅格化的方法和系统
JP5458771B2 (ja) * 2009-09-24 2014-04-02 株式会社島津製作所 放射線断層像撮影装置
US20110285718A1 (en) 2010-05-21 2011-11-24 Kilgard Mark J Point containment for quadratic bèzier strokes
US8457348B2 (en) * 2010-06-28 2013-06-04 The Chinese University Of Hong Kong Producing structure-based ASCII pictures
JP2012027543A (ja) * 2010-07-20 2012-02-09 Toshiba Corp 描画装置、描画方法、及び描画プログラム
JP5653277B2 (ja) * 2011-03-31 2015-01-14 株式会社東芝 描画装置、描画方法、及び描画プログラム
CN102722902B (zh) * 2011-05-06 2016-05-04 新奥特(北京)视频技术有限公司 一种图形渲染流水线中光栅化阶段反走样的改进方法
CN102737401A (zh) * 2011-05-06 2012-10-17 新奥特(北京)视频技术有限公司 一种图形渲染中光栅化阶段的三角片填充方法
CN102736947A (zh) * 2011-05-06 2012-10-17 新奥特(北京)视频技术有限公司 一种图形渲染中光栅化阶段的多线程实现方法
US9224218B2 (en) 2012-06-05 2015-12-29 Apple Inc. System and method for loading and rendering curved features in a map
US9619853B2 (en) 2012-08-09 2017-04-11 Qualcomm Incorporated GPU-accelerated path rendering
US9299181B2 (en) 2013-08-28 2016-03-29 Qualcomm Incorporated Target independent stenciling in graphics processing
KR102238651B1 (ko) 2014-04-23 2021-04-09 삼성전자주식회사 경로 렌더링을 수행하는 방법 및 장치.
KR102443697B1 (ko) 2015-09-11 2022-09-15 삼성전자주식회사 경로 스트로크를 수행하는 방법 및 장치
US10049289B2 (en) 2016-02-12 2018-08-14 Wacom Co., Ltd. Method and system for generating and selectively outputting two types of ink vector data
US9792517B2 (en) * 2016-02-12 2017-10-17 Wacom Co., Ltd. Method and system for generating and selectively outputting two types of ink vector data
CN108805957B (zh) * 2018-06-07 2022-06-24 青岛九维华盾科技研究院有限公司 一种基于位图图像自适应分割的矢量图生成方法及系统
JP2022053208A (ja) * 2020-09-24 2022-04-05 株式会社ニューフレアテクノロジー データ生成方法、荷電粒子ビーム照射装置及びプログラム
JP2023025503A (ja) * 2021-08-10 2023-02-22 株式会社ニューフレアテクノロジー データ生成方法、荷電粒子ビーム照射装置及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100432288B1 (ko) 2000-05-26 2004-05-22 샤프 가부시키가이샤 그래픽 표시 장치, 문자 표시 장치, 표시 방법, 및 기록 매체
KR20050030595A (ko) * 2003-09-25 2005-03-30 소니 가부시끼 가이샤 화상 처리 장치 및 그 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901251A (en) * 1986-04-03 1990-02-13 Advanced Micro Devices, Inc. Apparatus and methodology for automated filling of complex polygons
JP2001109454A (ja) * 1999-10-12 2001-04-20 Fuji Xerox Co Ltd 文字処理装置
WO2002047033A1 (en) * 2000-12-05 2002-06-13 Matsushita Electric Industrial Co., Ltd. 3-d character data generating device and a 3-d graphics data generating device
JP4028979B2 (ja) * 2000-12-05 2008-01-09 松下電器産業株式会社 3次元図形データ生成装置
JP2003091737A (ja) * 2001-07-13 2003-03-28 Sony Computer Entertainment Inc 描画処理装置、描画処理プログラムを記録した記録媒体、描画処理プログラム、描画処理方法
US7239319B2 (en) * 2004-08-27 2007-07-03 Microsoft Corporation Rendering outline fonts
US7432937B2 (en) * 2005-06-30 2008-10-07 Intel Corporation System and method for concave polygon rasterization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100432288B1 (ko) 2000-05-26 2004-05-22 샤프 가부시키가이샤 그래픽 표시 장치, 문자 표시 장치, 표시 방법, 및 기록 매체
KR20050030595A (ko) * 2003-09-25 2005-03-30 소니 가부시끼 가이샤 화상 처리 장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101493621B1 (ko) 2013-03-01 2015-02-13 가부시키가이샤 스크린 홀딩스 데이터 변환 방법, 묘화 시스템 및 기록 매체
TWI505043B (zh) * 2013-03-01 2015-10-21 Screen Holdings Co Ltd 資料轉換方法、繪圖系統及記錄媒體

Also Published As

Publication number Publication date
CN101114380A (zh) 2008-01-30
US7817152B2 (en) 2010-10-19
JP2007241878A (ja) 2007-09-20
EP1833024A2 (en) 2007-09-12
EP1833024B1 (en) 2017-08-09
EP1833024A3 (en) 2012-11-07
JP4693660B2 (ja) 2011-06-01
KR20070092586A (ko) 2007-09-13
US20070211061A1 (en) 2007-09-13

Similar Documents

Publication Publication Date Title
KR100834596B1 (ko) 묘화장치와 묘화방법 및 묘화 프로그램을 구비한 컴퓨터 독출가능 기록매체
JP4157569B2 (ja) 描画装置、描画方法及び描画プログラム
US8773439B2 (en) Approximation of stroked higher-order curved segments by quadratic bèzier curve segments
EP3039652B1 (en) Prefixed summed length in graphics processing
JP5232358B2 (ja) アウトラインフォントのレンダリング
US8044955B1 (en) Dynamic tessellation spreading for resolution-independent GPU anti-aliasing and rendering
JP4937359B2 (ja) 図形描画装置及び図形描画方法
US8928668B2 (en) Method and apparatus for rendering a stroked curve for display in a graphics processing system
US10140736B2 (en) Graphics processing systems
JP2006521629A (ja) オブジェクトを表現する2次元距離フィールドの領域をアンチエイリアスする方法及び装置
JP4869920B2 (ja) オブジェクトを表現する2次元距離フィールドからピクセルのコンポーネントのアンチエイリアス強度を求める方法及び装置
US10332290B2 (en) Fast, coverage-optimized, resolution-independent and anti-aliased graphics processing
JP2009301284A (ja) 描画装置および方法
JP2006521628A (ja) 2次元オブジェクトの隅に関連するセル内に2次元距離フィールドを生成する方法
JP2006521626A (ja) ペンストロークから2次元距離フィールドを生成する方法
JP2006521624A (ja) 2次元オブジェクトを2次元距離フィールドに変換する方法
JP2006521627A (ja) 動画スクリプトに従ってフレームシーケンスとしてオブジェクトを動画化する方法
JP2008299642A (ja) 図形描画装置
KR102666054B1 (ko) 그래픽 처리 시스템
JP2010256986A (ja) 描画装置および方法
JP2010256985A (ja) 描画装置および方法

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: 20130502

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140421

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160421

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 12