KR19990063174A - 화상작성장치 및 화상작성방법 - Google Patents
화상작성장치 및 화상작성방법 Download PDFInfo
- Publication number
- KR19990063174A KR19990063174A KR1019980055934A KR19980055934A KR19990063174A KR 19990063174 A KR19990063174 A KR 19990063174A KR 1019980055934 A KR1019980055934 A KR 1019980055934A KR 19980055934 A KR19980055934 A KR 19980055934A KR 19990063174 A KR19990063174 A KR 19990063174A
- Authority
- KR
- South Korea
- Prior art keywords
- processing
- patch
- patches
- image
- pixel
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/80—Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
본 발명은 묘화입력처리를 빠른 속도로 하기 위하여 복수의 묘화 파이프 라인(20)을 형성하여, 각 묘화 파이프 라인을 대기행렬(21)과 농도발생수단(23), 곱셈수단(24), 어큐뮬레이터(25), 캐쉬(26)로 구성한다. 한 스트로크를 공간적으로, 예를 들어 4개로 분할하고 각 묘화 파이프 라인(20)에 할당하여, 각 묘화 파이프 라인(20)에서는 할당된 영역을 스캔 계수에 따라 한 픽셀씩 복수의 패치분으로 처리한 후에 다음 픽셀을 처리한다.
Description
본 발명은 화성작성장치에 관한 것으로서, 특히 묘화입력(브러쉬입력)의 고속화에 관한 것이다.
화상작성장치에서 묘화 데이터 입력처리의 고속화가 요구되고, 이것은 해상도의 향상과 함께 곤란해 지고 있는 문제점이다. 묘화 데이터의 처리에 필요한 처리량은 해상도(解像度)의 2승에 비례하므로, 저해상도의 화상 메모리와 고해상도의 묘화 메모리를 준비하여 묘화 데이터를 우선 저해상도로 처리하여 모니터에 표시하고 이것과 병렬로 고해상도에서도 처리하여, 처리종료후에 고해상도 해상을 표시하는 것이 이루어지고 있다. 이 처리에서는 저해상도에서의 처리로 리얼 타임성을 유지하고 고해상도에서의 처리로 화상질을 유지한다. 그리고 고해상도에서의 처리가 묘화입력으로부터 늦어도 무방하도록 저해상도에서의 처리를 사용한다.
그러나 화상질에 대한 요구는 더욱 늘어나 묘화입력에 대하여 고해상도 화상측에서 병렬처리를 해야 할 필요성이 생긴다. 발명자는 병렬처리의 예로서 도5∼도7에 나타내는 것을 검토하였다. 도5의 예에서는 디지타이저(digitizer) 등으로 모니터상의 화상에 대하여 묘화위치를 지정하고 이것을 시퀀서(2)에서 받아 대기행렬 등에서 정리하여 하나의 패치를, 예를 들어 4개로 분할하여 병렬처리를 한다. 각 묘화 파이프 라인에는 묘화에 사용되는 브러쉬의 농도분포 신호의 발생수단 4 - 1 ∼ 4 - 4와 곱셈수단 6 - 1 ∼ 6 - 4를 병렬로 배치하고, 배럴 시프터(barrel shifter)(8)에서 영역 RAM(10)에 고속으로 억세스하여 한 패치분을 처리한다.
한 패치분의 처리가 끝나면 다음 패치를 마찬가지로 4분할하여 처리하고 한 스트로크분(stroke分)의 처리가 끝난 후에 파일 메모리(14)에 기억시킨 고해상도 화상과 영역 RAM(10)에 기억시킨 입력화상을 선형 보간부(線形 補間部)(12)로 블렌드(blend)한다. 이와 같이 묘화의 원리는 복수의 패치열을 한 패치씩 순서대로 처리하는 것이다. 그리고 한 패치의 데이터 처리는 한 패치분의 픽셀 데이터를 영역 RAM(10)으로부터 순서대로 읽어내어 곱셈수단(6)으로 농도발생수단(4)의 신호와 곱셈하여 영역 RAM(10)에 다시 써넣는 것이다. 또한 복수의 패치는 포개어져 있으므로 영역 RAM(10)과 같은 픽셀에 대하여 재귀적(再歸的 ; recursive)인 처리가 이루어진다.
패치의 분할을 도6에 나타내면, 패치(P1∼P3)는 각 4분할되어 도6에서는 패치(P1)의 처리가 끝나고 패치(P2)의 처리가 이루어진다. 그리고 패치(P2)는 도면의 하부에 나타내는 영역(P2 - 1∼P2 - 4)으로 분할되어 각 영역에서 영역(16)까지 처리가 끝나고 영역(18)은 아직 처리되지 않는다.
도7에 패치(P1∼Pn)로 이루어지는 스트로크의 처리를 나타낸다. 묘화 파이프 라인을 4계통 형성함으로써 각 패치는 4분할되어 제1영역을 제1 파이프 라인으로 처리하고 제2영역을 제2파이프 라인으로 처리하고 제3, 제4영역을 각각 제3, 제4파이프 라인으로 처리한다. 각 파이프 라인은 패치단위를 처리하여, 영역 RAM에서의 데이터 읽기와 처리결과 써넣기(도면에서 억세스 사이클)와 입력 데이터와 영역 RAM 데이터의 혼합연산(곱셈 사이클)이 평행하게 이루어진다.
묘화 파이프 라인을 복수개 형성함으로써 묘화처리중의 혼합연산은 고속화된다. 그러나 영역 RAM(10)에서의 억세스 회수는 감소하지 않는다. 예를 들어 한 패치가 10k픽셀로 이루어지는 것으로서 10패치의 처리가 필요하다면 영역 RAM으로 역세스하는 회수는 읽기와 써넣기 각 1회로서 한 패치마다 각 픽셀에 2회 억세스하므로 합계 10k×10×2는 200k가 된다. 이와 같이 병렬화하면 연산측을 고속화할 수 있어도 메모리에 억세스하는 회수가 감소하지 않으므로 한계가 생긴다. 다시 말하면 묘화처리중 연산부분의 고속화뿐만이 아닌 메모리에 억세스함에 있어서도 빠른 속도가 필요하다.
본 발명의 과제는 메모리에 억세스하는 회수를 감소시켜 묘화입력처리의 고속화를 용이하게 하는 것이다.
도1은 실시예에 있어서 화상작성장치의 요부 블록도,
도2는 실시예에서의 패치열이 묘화 파이프 라인(描畵 pipeline)으로 할당되는 것을 나타내는 도면,
도3은 실시예에서 각 픽셀마다의 처리를 나타내는 도면,
도4는 실시예에서의 브러쉬(brush)처리의 알고리즘을 나타내는 플로우차트,
도5는 종래예의 화상작성장치의 요부 블록도,
도6은 종래예에서의 병렬처리를 나타내는 도면,
도7은 종래예에 있어서 묘화 파이프 라인에서의 패치(patch)처리와 영역 RAM으로 억세스(access)하는 것을 나타내는 도면이다.
* 도면의 주요부분에 대한 부호의 설명 *
2, 22 : 시퀀서(sequencer) 4, 23 : 농도발생수단
6, 24 : 곱셈수단 8 : 배럴 시프터(barrel shifter)
10 : 영역 RAM 12 : 선형 보간부
14 : 파일 메모리 20 : 묘화 파이프 라인
21 : 대기행렬 25 : 어큐뮬레이터(accumulator)
26 : 캐쉬(cache)
30 : 프론트 엔드 프로세서(front-end processor)
32 : 고해상도 메모리
34, 42 : 선형보간 처리부(線形補間 處理部)
36 : 축소 처리부 38 : 저해상도 메모리
40 : 농도발생수단 44 : 프레임 메모리
46 : 모니터 50∼53 : 분할영역
본 발명은 작성과정의 화상을 메모리에 기억시켜 모니터에 표시하고 이 표시화상상에서의 위치를 지정하여 복수의 픽셀로 이루어지는 패치의 단위로 묘화 데이터를 입력하도록 하는 화상작성장치에서, 복수의 패치로 이루어지는 묘화범위에서 적어도 한 픽셀로 이루어지는 처리범위를 결정하기 위한 수단과, 상기 처리범위에 대하여 상기 복수의 패치를 처리하기 위한 처리수단을 갖춘 묘화 파이프라인을 구비하는 것을 특징으로 한다. 즉 본 발명에서는 묘화범위를 패치마다 처리하여 패치내의 처리가 종료된 후에 다음 패치의 처리로 이동하는 것이 아니고 소수의 픽셀로 이루어지는 처리범위마다 복수의 패치를 처리하고 하나의 처리범위에 대하여 복수의 패치 처리를 끝낸 후에 다음 처리범위를 처리한다.
바람직하게는 상기 묘화 파이프라인을 여러 개 형성하고 각 묘화 파이프라인에 상기의 묘화범위를 공간적으로 분할하고 할당하여 각각 묘화 파이프 라인으로 병렬처리한다.
바람직하게는 상기 처리수단은 직렬로 배치되고 각 패치에서 각 픽셀의 묘화농도 데이터를 발생시키는 농도발생수단과, 곱셈수단과, 레지스터를 구비하고, 상기 곱셈수단은 레지스터의 기억 데이터를 상기 농도발생수단의 데이터와 곱셈을 상기 레지스터의 상기 데이터에 대하여 복수의 패치만큼 반복한다.
또한 바람직하게는 처리범위는 한 픽셀로 이루어짐과 아울러 레지스터를 어큐뮬레이터(accumulator)로 구성하여 같은 픽셀에 대하여 패치의 수만큼 처리를 반복하여 묘화 파이프라인의 구성을 간단히 한다.
또한 바람직하게는 상기 묘화 파이프 라인의 출력측에 캐쉬 메모리(cache memory)를 형성하여, 화상이 기억된 메모리와 묘화 파이프라인 사이의 버퍼(buffer)라 한다. 이 캐쉬 메모리는 소규모의 메모리라도 좋으며 할당된 분할영역 전체를 기억하는 것 만큼의 용량은 필요하지 않다.
본 발명에서는 작성과정의 화상을 메모리에 기억시켜 모니터에 표시하고, 이 표시화상에서의 위치를 지정하여 패치단위로 묘화 데이터를 입력하도록 하는 화상작성방법에서,
복수의 패치로 이루어지는 묘화범위를 각 복수의 픽셀로 이루어지는 복수의 그룹으로 분할하여 상기 복수의 그룹을 복수의 묘화 파이프 라인에 할당하고,
각 묘화 파이프라인에서는 할당된 범위에서 적어도 한 픽셀로 이루어지는 처리범위를 결정하고, 결정된 처리범위에 대하여 상기 복수의 패치를 처리하고, 처리범위의 결정과 결정된 처리범위의 처리를 반복하여 할당된 범위를 처리한다.
(실시예)
도1∼도4에 실시예를 나타낸다. 도1에 화상작성장치의 구조를 나타내면 20은 묘화 파이프 라인으로서 복수계통 형성하고, 실시예에서는 4계통 형성한다. 묘화 파이프 라인(20)은 선입선출(先入先出 ; First Input First Out)의 대기행렬(21)과 대기행렬(21)에 수용된 패치열을 적절한 개수, 예를 들어 한 스트로크분으로 일괄하여 처리하고 처리종료후에 대기행렬(21)에서 삭제하기 위한 시퀀서(22)와 묘화입력 데이터 중 입력농도의 보수(k)를 패치내의 각 픽셀에 대하여 출력시키기 위한 농도발생수단(23)과 곱셈수단(24)과 어큐뮬레이터(25)와 캐쉬(26)와의 파이프 라인으로 이루어진다. 그리고 어큐뮬레이터(25) 대신에 예를 들어 16 혹은 64픽셀분 아하의 레지스터(register)를 사용하여도 좋다.
농도발생수단(23)은 예를 들어 패치에서의 브러쉬 형상을 원형으로하고 원의 중심으로부터의 거리로 농도를 결정하도록 한 것(1차원의 농도 테이블을 사용) 혹은 적절한 2차원의 브러쉬 형상을 RAM에 기억시켜 RAM데이터를 농도라 한 것 또한 여기에 묘화입력수단으로서의 디지타이저 스타일러스(digitizer stylus)에 가해지는 압력 등을 가미한 것을 사용한다. 캐쉬(26)의 용량은 예를 들어 1K픽셀분 등으로 하고 4개의 캐쉬(26)의 합계에서 한 스트로크분 담당의 묘화 영역보다도 작은것으로 한다.
이들 중에서 2차원의 브러쉬 형상 자체는 화상작성장치에 있어서 종래부터 널리 사용되어 온 것이다. 그리고 브러쉬 형상을 2차원으로하면 브러쉬 중심 등의 적절한 브러쉬내 원점에 대한 처리대상 픽셀의 상대 어드레스를 구하는 것 만으로 브러쉬 데이터를 읽어낼 수 있다. 이 때문에 종래예에서는 브러쉬 데이터의 읽기는 어드레스 카운터(address counter)에서 상대 어드레스를 하나씩 변화시켜 데이터를 읽어내게 된다. 그리고 이 수법에서는 다수의 픽셀을 순서대로 처리하고 패치내의 모든 픽셀의 처리가 끝날 때 까지 다음 패치를 처리하지 않게 된다.
이에 반하여 실시예에서는 2차원의 브러쉬 형상을 사용하는 경우라도 패치단위가 아닌 픽셀단위로 처리하여, 한 스트로크내의 같은 픽셀을 연속하여 처리한다. 이로 인하여 패치마다 브러쉬내 원점에 대한 픽셀의 상대 어드레스를 매회 연산으로 구함으로써 어드레스 계산 자체는 복잡하게 된다. 그러나 어큐뮬레이터 등의 데이터에 대하여 반복적으로 곱셈함으로써 농도를 계산할 수 있으므로 묘화처리를 빠른 속도로 할수 있다. 즉 어큐뮬레이터나 레지스터 데이터에 같은 픽셀의 다음 패치에서의 농도 데이터를 곱셈하므로, 메모리에서의 읽어내기와 써넣기의 2개의 버스 사이클(bus cycle)이 불피요하고 곱셈수단(24)의 속도에 따라 농도를 계산할 수 있어, 메모리 억세스 등의 처리속도를 저하시키는 요인이 없다. 또한 1차원의 브러쉬 데이터를 사용할 경우, 종래법에서도 패치 중심으로부터 처리대상의 픽셀까지의 반경연산이 필요하며, 이것은 실시예에서도 마찬가지이다. 즉 1차원의 브러쉬 데이터를 사용하는 경우 패치내의 어드레스 계산에 필요로 하는 부담은 실시예에서도 종래예에서도 똑같다.
30은 프론트 엔드 프로세서(front-end processor)로서 디지타이저 스타일러스 등으로부터의 입력을 받아 스타일러스 등은 모니터(46)의 표시화상상의 위치를 커서 등을 통하여 지정함으로써, 모니터 좌표계에서의 입력위치를 지정한다. 또한 프론트 엔드 프로세서(30)는 메뉴 등을 관리한다. 프론트 엔드 프로세서(30)는 모니터 좌표계에서의 묘화위치를 기억화상좌표계의 묘화위치로 환산하고 동시에 메뉴의 관리를 통하여 브러쉬의 종류나 컬러신호를 출력한다. 브러쉬의 종류는 초오크, 크레용, 유화 등에 대응하여 브러쉬의 사이즈가 한 패치의 사이즈에 대응한다. 또한 패치는 1회의 묘화위치 지정에서의 묘화범위에서 패치내의 픽셀의 기억 데이터를 갱신(更新)함으로써 묘화한다. 그리고 복수의 패치로 한 스트로크를 구성하여 실시예에서는 스트로크 단위로 고해상도 화상에서 묘화를 한다. 패치 사이즈는 예를 들어 100픽셀×100픽셀는 10K픽셀 정도로서 브러쉬의 종류에 따라 변하고 또한 필압을 사용할 경우에는 필압으로 변하는 경우도 있다.
상기의 하드웨어를 보충하여 설명하면 대기행렬(21)은 선입선출(FIFO)로서 복수의 패치열을 지정하는 데이터를 기억하고, 여기에는 각 패치의 중심좌표, 브러쉬의 종류나 사이즈가 포함된다. 시퀀서(22)는 농도발생수단(23)에서 캐쉬(26)까지 제어하여 이 처리에서는, 예를 들어 한스트로크를 구성하는 복수의 패치로 이루어지는 열에 대하여 1개의 픽셀을 선출하고 여기에 대하여 패치열 전체의 처리를 끝낸 후에 다음 픽셀을 마찬가지로 처리한다. 처리해야 하는 픽셀의 좌표나 브러쉬의 중심좌표나 사이즈, 종류별 데이터는 시퀀서(22)에서 농도발생수단(23)에 공급되어 캐쉬(26)에 써넣기나(다음 픽셀의 처리를 개시하기 직전) 캐쉬(26)으로부터의 출력도 시퀀서(22)에서 지령한다.
농도발생수단(23)은 브러쉬의 농도분포에 관한 데이터를 발생시키기위한 수단과 브러쉬의 중심 등을 기준으로 한 브러쉬에 대한 처리중 픽셀의 상대적 위치에 관한 데이터, 예를 들어 브러쉬에 대한 처리 중픽셀의 상대 어드레스를 발생시키는 수단을 구비한다. 예를 들어 브레쉬의 농도분포에 관한 데이터로서 2차원 테이블이 주어진 것으로 하고 간단히 하기 위해 필압의 영향을 무시한다. 이와 같은 테이블은, 예를 들어 브러쉬의 종류마다 도시하지 않은 다른 메모리에 기억되어 있으며 브러쉬의 종류가 지정될 때 마다 농도발생수단(23)에 일시적으로 기억되는 것이다. 한 스트로크 동안 브러쉬의 종류는 일정하며 처리중의 픽셀의 좌표는 시퀀서(22)에서 지정되어 패치마다 브러쉬의 위치가 변하는데, 이것은 브러쉬에 대한 처리중 픽셀의 상대 어드레스의 변화이다. 여기서 패치마다 상대 어드레스를 구하여 브러쉬의 농도 데이터의 테이블로부터 처리중의 픽셀에의 농도 데이터를 읽어내어 곱셈수단(24)에 공급한다.
브러쉬의 농도분포에 관한 데이터가 예를 들어 1차원의 테이블일경우 브러쉬의 중심위치 등이 패치마다 시퀀서(22)로부터 농도발생수단(23)에 공급되어, 패치마다 브러쉬 중심 등으로부터 처리중인 픽셀까지의 거리 등을 연산하여 농도를 발생시킨다.
필압에 의하여 브러쉬의 사이즈가 변경될 경우, 패치마다 농도분포의 데이터를 바꾸어 농도발생수단(23)에 기억시키는 것은 부담이 크므로, 예를 들어 브러쉬 중심에 대한 처리중인 픽셀의 상대 어드레스에 필압을 곱셈 등으로 가미하여 브러쉬의 사이즈를 변경시킨다. 또한 필압에 의하여 브러쉬의 농도를 변경시킬 경우, 필압을 가미하지 않고 구해진 농도에 필압을 곱셈 등으로 가미하여 농도발생수단(23)의 출력농도를 얻는다. 또한 여러장의 테이블에 브러쉬의 농도분포를 기억시켜 이들 사이를 필압으로 보간할 경우, 복수의 테이블에 대하여 농도를 구하고 얻어진 농도를 보간한다.
스트로크를 4개의 영역으로 공간적으로 분할시키고 한 스트로크 묘화에서의 농도신호의 보수를 4개의 캐쉬(26)에 수용시켜, 농도신호는 묘화입력에서의 컬러신호(Q)의 기여를 나타내고 농도신호의 보수는 고해상도 메모리(32)에 기억된 묘화입력전의 원화상의 컬러신호(P)의 기여를 나타낸다. 그리고 프론트 엔드 프로세서(30)로부터의 컬러신호(Q)와 고해상도 메모리(32)의 컬러신호(P)를 캐쉬(26)의 농도신호의 보수를 사용하여 선형보간 처리부(34)에서 선형보간한다. 이 보간 자체는 널리 알려진 것이다. 고해상도 메모리(32)의 화상을 도시하지 않은 프린터나 외부 디스크 등에 출력하고 축소 처리부(36)에서 해상도를 축소하여 저해상도 메모리(38)에 입력한다.
프론트 엔드 프로세서(30)와 저해상도 메모리(38)의 사이에는 저해상도용 농도발생수단(40)과 선형보간 처리부(42)가 있어, 한 패치내의 픽셀수를 예를 들어 1/4×1/4의 1/16로 낮추어 패치단위로 저해상도 메모리(38)의 화상과 입력화상을 선형보간한다. 고해상도 메모리(32)에서의 묘화입력의 처리는 저해상도 메모리(38)에서의 묘화입력의 처리보다 늦어도 무방하며, 고해상도 메모리(32)에서 예를 들어 묘화입력의 처리가 끝난 후에 고해상도 메모리(32)의 화상을 축소 처리부(36)에서 축소하여 저해상도 메모리(38)에 덮어 쓴다(over write). 44는 프레임 메모리(frame memory), 46은 모니터로서 프레임 메모리(44)는 없어도 된다.
도2에 스트로크의 공간적 분할을 나타낸다. 예를 들어 하나의 스트로크가 패치(P1∼P9)인 9패치로 구성되어, 패치(P1)가 최초 패치이고 패치(P9)는 마지막 패치라 한다. 고해상도 메모리(32)에서의 묘화입력처리는 스트로크의 입력보다 늦어도 무방하며, 예를 들어 한 스트로크분의 패치(P1∼P9)를 지정한 후에 패치(P1∼P9)의 합계 묘화범위를 구하고 4등분하여 분할영역(50∼53)으로 하고 한 영역씩 4개의 묘화 파이프 라인(20)에 할당한다.
도3에 분할영역(50)에서의 처리를 나타내는데, 다른 분할영역에서도 처리는 마찬가지이다. 분할영역(50)에 대한 패치열의 각 패치를 특별히 지정하기 위한 데이터, 예를 들어 각 패치의 중심위치, 브러쉬의 종류, 패치 사이즈를 대기행렬(21)에 수용시키고, 시퀀서(22)는 예를 들어 한스트로크분의 패치를 일괄하여 처리하도록 패치열을 삭제한다. 그리고 시퀀서(22)는 분할영역(50)에서의 공간적 순서, 즉 스캔 계수(scan 階數)를 따라 한 픽셀씩 처리한다. 이 단계에서 패치(P1∼P9)의 입력순서에는 의미가 없으며 한 패치의 처리가 끝난 후에 다음 패치를 처리하는 것이 아니고 처리대상의 픽셀에 대하여 한 스트로크분의 패치를 순서대로 연속하여 처리하고 한 픽셀의 처리가 끝난 후에 다음 픽셀을 처리한다.
도3에서 영역(54)은 처리가 끝난 영역이며, 영역(55)은 아직 처리되지 않은 영역으로서, 스캔은 분할영역(50)을 예를 들어 좌상에서 하부로 변경시키고 계속해서 예를 들어 한 픽셀분 우측의 다음 열을 처리하는 것이다. 단 스캔 계수 자체는 임의적인 것이다. 농도발생수단(23)은 각 픽셀의 브러쉬상의 위치로부터 입력농도의 보수(ki)(i는 패치번호)를 구하고, kO는 예를 들어 1로서 어큐뮬레이터(25)에는 초기값으로서 kO=1을 기억시키고 이 값에 ki을 곱셈하여 어큐뮬레이터(25)에 다시 써넣는다. 이 처리를 패치의 개수만큼 반복시키면 한 픽셀분의 처리가 끝나고, 이 시점에서의 농도의 보수값은 k1·k2···kn으로서 이 값을 캐쉬(26)에 써넣고 다음 픽셀을 마찬가지로 처리한다.
상기의 처리는 4개의 분할영역으로 병렬로 처리되어, 예를 들어 처리가 끝난 픽셀 혹은 처리가 끝난 픽셀열로부터 선형보간 처리부(34)에서 고해상도 메모리(32)의 원화상의 컬러신호(P)와 묘화입력의 컬러신호(Q)를 선형보간한다. 그리고 캐쉬(26)는 소용량인 것으로서 캐쉬(26)에 보내져 온 데이터를 선형보간 처리부(34)로 처리하여 처리가 끝난 부분을 바로 다음 픽셀에 할당시킨다. 이와 같이 4개의 묘화 파이프라인 합계의 캐쉬 용량은 도5에서 영역 RAM(10)의 영역보다도 작으며 빠른 속도의 대규모 메모리를 필요로 하지 않으므로, 하드웨어의 원가가 절감된다.
도4에 실시예의 동작을 나타내면, 프론트 엔드 프로세서가 묘화입력을 받음으로써 묘화의 처리, 여기서는 브러쉬 서브루틴(b겨sh subroutine)이 개시된다. 묘화입력은 일반적으로 복수의 패치위치의 지정과 각 패치에 공통인 묘화입력의 컬러신호의 입력을 수반하고, 프론트 엔드 프로세서(30)는 묘화입력을, 예를 들어 저해상도에서 처리하는 것을 선형보간 처리부(42)에 지령하고 저해상도 메모리(38)의 화상을 갱신하여 모니터(46)에 표시한다. 이로 인하여 묘화입력에 대한 저해상도 화상에서의 리얼 타임적인 응답이 이루어진다. 그리고 저해상도 메모리(38)에서의 처리는 널리알려진 것이고 또한 저해상도 메모리(38)에 대하여 이것과 병렬로 묘화 파이프 라인에서 처리를 할 필요는 특별히 없다.
예를 들어 한 스트로크분의 패치가 입력된 것을 소정시간 동안 새로운 패치가 지정되지 않은 것으로부터 검출하고, 프론트 엔드 프로세서(30)는 한 스트로크의 영역을 예를 들어 공간적으로 4분할하여 도2의 분할영역(50∼53)으로서 묘화 파이프 라인에 할당한다. 그리고 대기행렬(21)은 각 패치의 데이터를 선입선출(FIFO)로 기억하고(스텝(60)), 한 스트로크분의 처리를 분할영역내에서의 스캔 계수에 따라 한 픽셀씩 처리(스텝(61))하여 한 픽셀의 처리가 끝난 후에 캐쉬(26)에 출력시킨다(스텝(62)). 스텝(60, 61, 62) 처리는 4개의 묘화 파이프 라인에서 병렬로 이루어지고 처리가 끝난 픽셀로부터 고해상도 메모리(32)의 대응픽셀의 컬러신호(P)와 묘화입력된 컬러신호(Q)의 선형보간을 선형보간 처리부(34)로 한다. 선형보간은,
Pnew = Pold × k1·k2···kn + Q × (1 - k1·k2···kn)
으로 나타낸다. 상기의 고해상도에서의 처리와 평행하게 예를 들어 종래방법에서의 저해상도에서의 처리가 이루어져 모니터(46)에 표시된다. 그리고 고해상도측에서, 예를 들어 한 스트로크의 처리가 끝난 후에 저해상도 메모리(38)에 고해상도 메모리(32) 화상의 축소화상을 덮어쓰기한다. 또한 시퀀서(22)는 처리가 끝난 패치열을 대기행렬(21)에서 삭제하여 다음 스트로크의 처리로 옮긴다.
묘화입력의 처리속도에 대하여 검토하면, 4개의 묘화 파이프라인(20)을 형성하였으므로 연산속도는 4배가 된다. 또한 어큐뮬레이터(25)의 데이터를 반복하여 사용하기 때문에 고속으로 연산할 수 있다. 즉 농도발생수단(23)으로부터 농도신호의 읽어내기와, 곱셈수단(24)에서의 곱셈 및 결과를 어큐뮬레이터(25)에 써넣기의 두 개의 처리를 병렬로 한다면, 하나의 피치(pitch)로 하나의 연산을 할 수 있어 곱셈수단(24)에는 낭비시간이 발생하지 않는다.
메모리의 억세스에 있어서 캐쉬(26)에 써넣기는 한 스트로크내의 각 픽셀에 대하여 1회이며 또한 고해상도 메모리(32)에서의 억세스는 한 스트로크의 묘화범위내의 각 픽셀에 대하여 읽어내기 1회와 써넣기 1회이다. 예를 들어 패치 사이즈가 10K픽셀로서 한 스트로크 동안 패치의 직경정도의 거리를 스타일러스가 이동하였다고 한다면, 한 스트로크에서의 묘화범위는 약 20K픽셀이 된다. 이로 인하여 각 캐쉬(26)에 5K회의 써넣기가 이루어지고 고해상도 메모리(32)에는 읽어내기 약 20K회와 써넣기가 약 20K회 이루어진다. 그리고 각 캐쉬(26)의 용량은 예를 들어 1K픽셀분 정도로 충분하며 작은 캐쉬(26)를 사용할 수 있다.
도5의 비교예에서의 곱셈속도를 검토하면 도7에서 제2 곱셈 파이프 라인에 대하여 나타낸 바와 같이, 픽셀(n)에 대한 곱셈과 다음 픽셀(n+ 1) 데이터의 영역 RAM(10)으로부터 읽어내기를 병렬로 하여(제1피치), 다음 피치에서 픽셀(n)의 곱셈결과를 영역 RAM(10)에 다시 써넣게 된다(제2피치). 이로 인하여 1회의 곱셈에 2피치가 필요하여 실시예에 비하여 곱셈속도는 1/2로 떨어진다.
또한 도5의 병렬처리에서는 영역 RAM(10)에 10K × 10인 100K회의 읽어내기와 써넣기가 이루어져 실시예와 비교하여 메모리에 억세스 하는 회수는 4배가 된다. 즉 실시예에서는 도5와 비교하여 4배 빠른 속도의 메모리와 버스를 사용하여 2배 빠른 속도의 곱셈수단을 사용하는 것과 같다. 이로 인하여 묘화 파이프 라인을 증강시킨다면 실질적으로 임의의 속도로 묘화입력처리를 고속화할 수 있다. 또한 도5의 병렬처리에서는 스트로크 사이즈 이상의 영역 RAM(10)이 필요하지만 실시예에서는 작은 캐쉬(26)를 4개 배치하는 것 만으로 좋다.
실시예에 대하여 보충설명하면 어큐뮬레이터(25) 대신에 용량이 16픽셀분 혹은 64픽셀분 등의 레지스터를 사용하여, 한 패치에 대하여 레지스터 용량분의 픽셀을 처리한 후에 다음 패치로 옮겨도 마찬가지이다. 단 레지스터나 어큐뮬레이터는 고가의 메모리로서 어큐뮬레이터(25)가 가장 간편하며 바람직하다.
광장히 긴 스트로크가 입력되면 시퀀서(22)는 처리할 수 있는 패치수(예를 들어 10패치)에 스트로크를 분할하여 처리하고 혹은 한 스트로크 처리중에 다음 스트로크가 입력되면 시퀀서(22)는 전 스트로크의 처리가 끝난 후에 새로운 스트로크를 처리한다. 또한 한 스트로크의 패치열을 예를 들어 2개로 분할하여 분할된 패치열을 한 스트로크로 간주하여 처리하여도 좋다.
실시예에서는 평면화상의 처리를 예시하였으나, 3D화상의 처리에 적용시켜도 좋으며 그 경우는 고해상도 메모리에 3D화상의 텍스쳐 화상등을 기억시켜 처리대상으로 한다. 또한 고해상도 메모리(32)를 다수 플레인분 준비하여 지정된 플레인 화상에 대하여 처리하여도 좋다.
본 발명에서는 복수의 패치로 이루어지는 묘화범위를 처리범위내의 픽셀에 대하여 복수패치의 처리를 끝낸 후에 다음 처리범위의 처리를 개시한다. 이로 인하여 메모리에 억세스하는 회수는 묘화범위에서의 각 픽셀에 대하여, 예를 들어 읽어내기 1회와 써넣기 1회가 되며, 패치수가 증가하여도 메모리에 억세스하는 회수는 별로 증가하지 않는다. 이 결과 본 발명에서는 메모리에 억세스하는 회수를 억제하여 억세스의 점에서 묘화입력을 고속화할 수 있다.
묘화처리에서의 연산을 빠른 속도로 하기 위하여 바람직하게는 묘화 파이프 라인을 여러개 형성하여 묘화범위를 공간적으로 분할하고 할당한다. 연산속도는 병렬처리에 의하여 향상되고 메모리에 억세스하는 회수는 패치단위가 아닌 처리범위 단위로 처리를 하므로 증가가 억제되어, 연산의 병렬화와 억세스 회수의 억제에 의하여 빠른 속도로 묘화를 처리할 수 있다.
특히 각 묘화 파이프 라인에 레지스터 혹은 어큐뮬레이터를 형성하여 소수 픽셀의 농도 데이터를 기억시키고 묘화농도 데이터와 어큐뮬레이터나 레지스터의 기억농도 데이터의 곱셈을 반복한다. 예를 들어 어큐뮬레이터를 사용하여 한 픽셀을 복수의 패치에 대하여 처리한 후에 다음 픽셀 처리로 옮겨가거나 레지스터분 픽셀에 대하여 복수의 패치를 처리한 후에 다음 픽셀처리로 옮겨간다. 이와 같이 하면 곱셈용 데이터의 준비와 곱셈을 병렬로 처리하고, 1피치(1단(段))마다 곱셈을 하여 고속으로 곱셈할 수 있다.
그리고 각 묘화 파이프 라인의 출력측에 캐쉬 메모리(캐쉬)를 형성하여 각 픽셀에 대하여, 예를 들어 한 스트로크분의 처리가 끝날때마다 캐쉬에 써넣는다. 캐쉬에 써넣기 회수의 합계는 스트로크에 포함되는 픽셀수 정도로서 패치수가 중가하여도 써넣기 회수가 증가하지 않으므로 처리가 간단해진다. 이 캐쉬는 소규모의 메모리라도 무방하며 한 스트로크 전체에 포함되는 픽셀분의 용량을 갖을 필요없이 화상작성장치의 하드웨어 원가가 감소된다. 또한 바람직하게는 고해상도 화상의 메모리와 저해상도 화상의 메모리를 형성하고, 복수의 묘화 파이프 라인을 사용하여 패치마다 처리하는 것이 아니라 묘화범위에서의 처리범위간의 순서에 의한 처리를 고해상도 화상측에서 하고 저해상도 화상측에서는 패치마다 처리를 한다. 이와 같이 한다면 저해상도측에서 리얼 타임적인 처리를 하고 고해상도측에서 고정밀의 처리를 할 수 있다.
Claims (6)
- 작성과정의 화상을 메모리에 기억시켜 모니터에 표시하고, 이 표시화상에서의 위치를 지정하여 복수의 픽셀로 이루어지는 패치(patch)단위로 묘화 데이터(描畵 data)를 입력하도록 하는 화상작성장치에서,복수의 패치로 이루어지는 묘화범위에서 적어도 한 픽셀로 이루어지는 처리범위를 결정하기 위한 수단과, 상기 처리범위에 대하여 상기복수의 패치를 처리하기 위한 처리수단을 갖춘 묘화 파이프라인을 구비하는 것을 특징으로 하는 화상작성장치.
- 제1항에 있어서,상기 묘화 파이프라인를 여러 개 형성하고 각 묘화 파이프 라인에 상기 묘화범위를 공간적으로 분할하고 할당하여 각 묘화 파이프 라인으로 병렬처리하는 것을 특징으로 하는 화상작성장치.
- 제1항에 있어서,상기 처리수단은 직렬로 배치되고 각 패치에서 각 픽셀의 묘화농도 데이터를 발생시키는 농도발생수단과, 곱셈수단과, 레지스터를 구비하고,상기 곱셈수단은 레지스터의 기억 데이터를 상기 농도발생수단의 데이터와 곱셈을 상기 레지스터의 기억 데이터에 대하여 복수의 패치만큼 반복하는 것을 특징으로 하는 화상작성장치.
- 제3항에 있어서,상기 처리범위는 한 픽셀로 이루어지고 또한 상기 레지스터는 어큐뮬레이터(accumulator)인 것을 특징으로 하는 화상작성장치.
- 제3항에 있어서,상기 묘화 파이프 라인의 출력측에 캐쉬 메모리(cache memory)를 형성하는 것을 특징으로 하는 화상작성장치.
- 작성과정의 화상을 메모리에 기억시켜 모니터에 표시하고, 이 표시화상에서의 위치를 지정하여 패치단위로 묘화 데이터를 입력하도록 하는 화상작성방법에서,복수의 패치로 이루어지는 묘화범위를 갹각 복수의 픽셀로 이루어지는 복수의 그룹으로 분할하여 상기 복수의 그룹을 복수의 묘화 파이프 라인에 할당하고,각 묘화 파이프 라인에서는 할당된 범위에서 적어도 한 픽셀로 이루어지는 처리범위를 결정하고 결정된 처리범위에 대하여 상기 복수의 패치를 처리하고, 처리범위의 결정과 결정된 처리범위의 처리를 반복하여 할당된 범위를 처리하는 것을 특징으로 하는 화상작성방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9-365796 | 1997-12-22 | ||
JP36579697 | 1997-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990063174A true KR19990063174A (ko) | 1999-07-26 |
Family
ID=18485139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980055934A KR19990063174A (ko) | 1997-12-22 | 1998-12-18 | 화상작성장치 및 화상작성방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6329995B1 (ko) |
EP (1) | EP0924643A3 (ko) |
KR (1) | KR19990063174A (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7511703B2 (en) * | 2004-06-28 | 2009-03-31 | Microsoft Corporation | Using size and shape of a physical object to manipulate output in an interactive display application |
US7646377B2 (en) * | 2005-05-06 | 2010-01-12 | 3M Innovative Properties Company | Position digitizing using an optical stylus to image a display |
US8885208B2 (en) * | 2006-07-21 | 2014-11-11 | Adobe Systems Incorporated | Progressive refinement of an edited image using secondary high resolution image processing |
TWI493399B (zh) * | 2012-10-30 | 2015-07-21 | Mstar Semiconductor Inc | 觸控座標邊緣效應校正的方法與相關系統 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8425531D0 (en) | 1984-10-10 | 1984-11-14 | Quantel Ltd | Video image creation |
EP0202014B1 (en) | 1985-04-13 | 1996-02-28 | Quantel Limited | Improvements in video image creation systems |
US5357265A (en) * | 1989-04-17 | 1994-10-18 | Quantel Limited | Electronic graphic system |
GB8908612D0 (en) * | 1989-04-17 | 1989-06-01 | Quantel Ltd | Video graphics system |
JPH08101922A (ja) | 1991-01-07 | 1996-04-16 | Shima Seiki Mfg Ltd | 画像編集作成装置および画像編集作成方法 |
GB2267203B (en) * | 1992-05-15 | 1997-03-19 | Fujitsu Ltd | Three-dimensional graphics drawing apparatus, and a memory apparatus to be used in texture mapping |
DE69332379T2 (de) * | 1993-11-23 | 2003-07-10 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Tintenwiedergabe |
US5592597A (en) * | 1994-02-14 | 1997-01-07 | Parametric Technology Corporation | Real-time image generation system for simulating physical paint, drawing media, and feature modeling with 3-D graphics |
US5701405A (en) * | 1995-06-21 | 1997-12-23 | Apple Computer, Inc. | Method and apparatus for directly evaluating a parameter interpolation function used in rendering images in a graphics system that uses screen partitioning |
US5912673A (en) * | 1995-11-27 | 1999-06-15 | Sun Microsystems, Inc. | Graphical image convolution using multiple pipelines |
GB2317089B (en) * | 1996-09-06 | 2001-05-16 | Quantel Ltd | An electronic graphic system |
-
1998
- 1998-12-18 KR KR1019980055934A patent/KR19990063174A/ko not_active Application Discontinuation
- 1998-12-21 US US09/216,848 patent/US6329995B1/en not_active Expired - Fee Related
- 1998-12-22 EP EP98310609A patent/EP0924643A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US6329995B1 (en) | 2001-12-11 |
EP0924643A2 (en) | 1999-06-23 |
EP0924643A3 (en) | 2001-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6941499B2 (ja) | ゼロ係数スキップ畳み込みニューラルネットワークエンジン | |
US8125480B2 (en) | Flat texture volume rendering | |
JP3608801B2 (ja) | 画像発生装置 | |
JP3968063B2 (ja) | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム | |
KR100448724B1 (ko) | 데이터처리장치및섀이딩장치 | |
CN105405103A (zh) | 通过在空间上和/或在时间上改变采样模式增强抗锯齿 | |
US20150091931A1 (en) | Procedurally Defined Texture Maps | |
EP2997539B1 (en) | Method and device for processing input image data | |
US20040227765A1 (en) | Method for improving texture cache access by removing redundant requests | |
JPH0628485A (ja) | テクスチャーアドレス生成器、テクスチャーパターン生成器、テクスチャー描画装置及びテクスチャーアドレス生成方法 | |
EP1406213A1 (en) | Information processor | |
US9483843B2 (en) | Method and system for expediting bilinear filtering | |
US6831658B2 (en) | Anti-aliasing interlaced video formats for large kernel convolution | |
JPH069377B2 (ja) | ビデオ信号処理装置 | |
EP1434172A2 (en) | Method and system for generating a display image using Gsprites. | |
US20040012610A1 (en) | Anti-aliasing interlaced video formats for large kernel convolution | |
KR19990063174A (ko) | 화상작성장치 및 화상작성방법 | |
US7360020B2 (en) | Method for improving cache-miss performance | |
JP3047009B2 (ja) | 画像作成装置及び画像作成方法 | |
US7042452B1 (en) | Triangle coverage estimation and edge-correct tessellation | |
US20040012609A1 (en) | Data management to enable video rate anti-aliasing convolution | |
US20030231180A1 (en) | Image processing apparatus and method of same | |
US7372466B2 (en) | Image processing apparatus and method of same | |
US20040183807A1 (en) | Multi-texturing by walking an appropriately-sized supertile over a primitive | |
CN106384377B (zh) | 医学数据的体绘制方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |