KR100421623B1 - 영상처리및디스플레이를용이하게하기위한장치 - Google Patents

영상처리및디스플레이를용이하게하기위한장치 Download PDF

Info

Publication number
KR100421623B1
KR100421623B1 KR1019970706211A KR19970706211A KR100421623B1 KR 100421623 B1 KR100421623 B1 KR 100421623B1 KR 1019970706211 A KR1019970706211 A KR 1019970706211A KR 19970706211 A KR19970706211 A KR 19970706211A KR 100421623 B1 KR100421623 B1 KR 100421623B1
Authority
KR
South Korea
Prior art keywords
processor
rendering processor
data
pixel
rendering
Prior art date
Application number
KR1019970706211A
Other languages
English (en)
Other versions
KR19980702804A (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 KR19980702804A publication Critical patent/KR19980702804A/ko
Application granted granted Critical
Publication of KR100421623B1 publication Critical patent/KR100421623B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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
    • G06T15/003D [Three Dimensional] image rendering

Landscapes

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

Abstract

본 발명에 따른 영상 생성 및 조작 시스템은 프레임 버퍼 내의 픽셀 값의 직접 조작에 배타적으로 전용되는 집적회로를 포함한다. 이 "렌더링 프로세서"는 호스트 CPU에 의해 렌더링 프로세서로 전달되는 데이터 및 커맨드에 응답하여, 원시요소를 드로잉하고, 픽셀 동작을 수행하고, 시스템 디스플레이 타이밍을 생성하고, 프레임 버퍼를 제어한다. 렌더링 프로세서(및 다른 하드웨어 또는 소프트웨어 구성요소는 아님)에 의해 수행되는 픽셀 처리의 정도는 원하는 시스템 능력에 따라 변할 수 있다. 최소한, 렌더링 프로세서는 호스트 CPU, 조명 프로세서 또는 다른 하이레벨 그래픽 프로세서로부터 수신되는 커맨드에 응답하여 픽셀을 프레임 버퍼내로 드로잉할 수 있다. 바람직하게, 렌더링 프로세서는 미가공 픽셀 값을 디스플레이 하드웨어에 의미 있는 값으로 리파인하기 위해 보간 동작을 수행한다. 또한, 렌더링 프로세서는 앤티에일리어싱 및 디더링(dithering)과 같은 필터링 동작, 알파 블렌딩, Z-버퍼링, 윈도우 또는 다른 경계에 대한 클리핑(clipping), 영상의 이중 버퍼링, 및 텍스처 맵 처리를 수행하기 위한 능력을 갖출 수 있다. 렌더링 프로세서는 특정 커맨드와 각각 관련된 일련의 자체 동작 레지스터(self-actuating register)를 포함할 수 있다. 이러한 레지스터를 주소지정 하고 이들 레지스터 중 하나로 데이터를 기록함으로써, 호스트는 그 특정 레지스터에 관련된 커맨드의 실행을 함축적으로 명시한다. 또한, 렌더링 프로세서는 슬레이브(slave) 모드를 제공하며, 이 모드에서 렌더링 프로세서의 드로잉(drawing) 하드웨어는 외부 프로세서에 의해 동기적으로 제어되며, 따라서 외부 하드웨어가 관련 컴퓨테이션을 수행하는 동안 렌더링 프로세서는 스캔변환 프로세스를 통해 단일-스테핑한다(single-steps).

Description

영상 처리 및 디스플레이를 용이하게 하기 위한 장치{HARDWARE ARCHITECTURE FOR IMAGE GENERATION AND MANIPULATION}
강력한 컴퓨터 장치의 광범위한 이용가능성은 디지털 형태로 표현될 수 있는 영상 상세(image detail) 및 공간 정보의 양을 급속히 증대시켜왔다. 이전의 시스템에서 영상은 바이레벨(bi-level) 값의 비트 맵 래스터(bit map raster)로서 저장된 반면에, 최신의 영상 생성 및 조작 시스템은 각 영상 픽셀(picture element, pixel)이 거대한 칼라 팔레트(palettes), 휘도(luminance) 등으로부터 엔트리를 명시할 수 있는 하나 또는 그 이상의 바이트에 의해 표현되는 멀티레벨 픽스맵(multi-level pixmap)을 수용한다.
복잡하고 정교한 시스템에서, 디지털 방식으로 표현되는 영상(또한, 선, 다각형 및 원과 같은 사용자 정의 그래픽 성분을 포함할 수 있음)은 광스캐너(주로영상의 경우) 또는 사용자가 제공하는 기하학적 명세(specification)(그래픽 성분의 경우)로부터 비롯될 수 있다. 시스템은 "래스터 영상 프로세서" 하드웨어 또는 소프트웨어를 사용하여, 인입 정보를 적당한 컬러 값을 가지면서 집합적으로 영상을 나타내는 픽셀의 영상형태의(imagewise) 어레이 또는 래스터로 "스캔변환"(scan-converts)한다. 이차원 래스터 기하학은 영상의 디스플레이 가능한 폭과 높이에 상응하며, 어레이 내의 각 픽셀과 관련된 비트의 수는 깊이(depth)로 불린다. 래스터는 "프레임 버퍼(frame buffer)"라 불리는 컴퓨터 메모리 부분에 저장되며, 이 프레임 버퍼의 내용은 출력 장치에 순간적으로 디스플레이되는 영상을 결정한다.
통상적으로, 사용자는 사용자 커맨드에 응답하여 개개의 픽셀 값을 조작하는 하이레벨 응용 소프트웨어(예, 디자인 프로그램)를 통해 프레임 버퍼에 억세스한다. 예를 들어, 비교적 간단한 컴퓨터 시스템에서도 이용가능한 영상 생성 및 조작 소프트웨어는 사용자가 래스터화된 영상을 변환, 회전 및 선형적으로 스케일링(scaling)할 수 있도록 한다. 이러한 프로그램은 픽스맵에 의해 정의된 직사각형 영역 내에 적합하게 되도록 그래픽 및 영상 성분을 "클리핑"하며, 그 영역 밖으로 떨어져나간 부분(예를 들어, 사용자 조작의 결과로서)은 (비록 이들 부분이 오버플로우 버퍼에 저장될 수 있을지라도) 렌더링되지(rendered) 않는다. 또한, 이들은 다양한 필터링(filtering) 동작을 위해 제공될 수 있으며, 이 필터링 동작은 원하는 결과(예를 들어, 스캔변환으로부터 생길 수 있는 "스테어케이싱(staircasing)" 효과를 완만하게 하기 위해)를 얻기 위해 픽셀 값을수학적으로 처리한다.
영상-렌더링 작업(tasks)이 (메인 CPU 또는 CPU에 의해 실행되는) 소프트웨어 모듈과 영상 렌더링에 독점적으로 전용되어지는 특수 하드웨어 구성요소들 사이에서 분담되는 방식은 요구되는 성능의 정도에 의존한다. 컴퓨테이션적으로(computationally) 가장 많이 요구되는 작업은 3차원적 관계를 반영하는 방식으로의 영상 성분의 조작을 포함한다. 예를 들어, 만일 디자인 프로그램이 사용자에게 3차원으로 구체(sphere)를 회전할 수 있도록 하는 경우에, 그 프로그램은 비록 그 구체의 전체 표면 내용(content)의 한 부분만이 어느 한 순간에 시각적으로 제시된다 할지지라도, 그 전체 표면 내용의 컴퓨테이션적인(computational) "인식(awareness)"을 유지해야만 한다. 원근법(perspective) 문제 또한 야기되는데, 그 이유는 3차원적 조작이 사용자에게 제시되는 절대적인 내용뿐만 아니라 그것의 렌더링된 원근법에도 영향을 주기 때문이며, 이들은 큐브(cubes)와 같은 에지형(edged)의 그래픽 객체(objects)에 대해 상당히 가시적이다. 사용자의 뷰포인트(viewpoint) 주어지면 가시적인 영상 부분이 인식되도록 내용을 조작하는 것은 그러한 객체의 각 픽셀로의 수학 집약적인(mathematically intensive) 기하학적 변환을 적용할 것을 필요로 한다. 최대 성능을 요구하는 시스템에서, 이러한 연산은 직접적으로 프레임 버퍼를 조작하는 고속 전용 하드웨어 구성요소에 의해 수행되며, 이것에 의해 메인 CPU의 처리 부담을 경감시키고 시스템 버스에서의 트래픽을 감소시키게 되며, 시간 성취도보다 비용 효과를 강조하는 저급(lower-end) 시스템에서, 컴퓨테이션은 적절한 소프트웨어 명령어에 따라 메인 CPU에 의해 수행되고, CPU는 프레임 버퍼의 내용을 조작한다.
가장 진보된 디자인 시스템은 사용자 선택에 합치되도록 객체 표면에 대응하는 픽셀의 값을 변경하는 3차원 객체의 표면 출현(appearance)에 대한 사용자 제어를 제공한다. 예를 들어, 조명된 표면의 특성뿐만 아니라 조명(illumination)의 방향과 품질이 객체의 시각적 출현을 결정하고, 이들 파라미터는 획득되어, 조명 모델을 사용하여 렌더링된 객체에 컴퓨테이션적으로 적용될 수 있다. 또한, 디자인 시스템은 사용자로 하여금 "텍스처 매핑(texture mapping)"으로 알려진 기술을 사용하여 다른 간단한 표면에 시각적 상세(detail)를 부가(또는, 기존의 표면 상세를 새로운 디자인이나 영상으로 대체)할 수 있도록 한다. 이와 관련하여, 용어 "텍스처"는 간단한 표면 패턴이 아니라 오히려 영상과 같은 표면 상세의 어떠한 형태라도 광범위하게 의미한다. 이러한 기술을 사용하여 사용자는 3차원적으로 렌더링된 객체의 지정된 표면에 적용될, 픽스맵으로서 표현되고 "텍스처 맵" 또는 "텍스처"로서 알려진 디지털 방식으로 샘플링된 "픽처(picture)"를 명시한다(specify). 이미징 시스템은 연속되는 공간 변환을 이용하여 텍스처에 적용하는데, 먼저, 3차원적 공간으로 나타나게 될 때 텍스처를 객체의 수학적 표현에 적용하고, 객체의 가시 표면을 출력 스크린을 표현하는 픽스맵으로 투영한다. 다시 말해, 이러한 표면-조작 연산은 통상적으로 전용 하드웨어 구성요소에 의해 수행되거나 또는 소프트웨어 명령어에 따라 메인 CPU에 의해 수행된다.
다양한 영상 생성 및 조작 기능(functions)의 실행을 위한 하드웨어 및 소프트웨어 솔루션(solutions) 사이의 양분(dichotomy)은 극도로 빠른 응답 시간을 특징으로 하는 값비싼 고급 시스템과 상당히 느리게 수행되는 값싼 저급 시스템 사이의 광범위한 한계에 기여한다.
본 발명은 디지털 영상 생성 및 조작에 관한 것으로서, 특히 디지털 방식으로 표현된 영상 및 그래픽의 고속 조작 및 조합을 용이하게 하는 하드웨어 아키텍처에 관한 것이다.
전술한 설명은 첨부도면과 함께 다음의 본 발명의 상세한 설명으로부터 보다 쉽게 이해될 것이다.
도1은 본 발명을 위한 대표적인 컴퓨테이션 환경을 도시한 개략도.
도2는 본 발명의 토폴로지의 구성요소 및 동작을 도시한 개략도.
도3은 본 발명의 렌더링 프로세서의 내부 구성요소를 도시한 개략도.
도4는 대표적인 삼각형이 슬레이브 모드에서 스캔-변환될 수 있는 방식을 도시한 도면.
발명의 요약
본 발명은 영상 렌더링 기능이 하드웨어에 의해 주로 수행되는 시스템과 주로 소프트웨어 구현에 의지하는 시스템 사이의 격차를 극복하는 하드웨어 아키텍처를 제공한다. 본 발명의 아키텍처 또는 시스템 토폴로지는 상대적으로 저가에 제조될 수 있고 메인(또는 호스트) CPU의 영상 생성 및 조작에 관련된 가장 번거로운 컴퓨테이션을 경감시킬 뿐만 아니라, 영상 관련 버스 트랜잭션(transaction)을 최소화하기 위해 서로 상호 작용하는 구성요소들을 활용한다. 본질적으로, 본 발명은 주로 소프트웨어 모듈로서 구현된 시스템에 대한 하드웨어 지원(support)을 제공한다. 또한, 본 발명은 부가적인 기능이 추가될 수 있는 확장가능한 하드웨어 플랫폼(platform)을 제공하며, 그에 따라 시스템 설계자에게 소프트웨어와 하드웨어 기능성의 최적 혼합을 선택할 수 있는 능력을 부여한다.
한 관점에서, 본 발명은 프레임 버퍼에서의 픽셀 값의 조작을 관리하기 위해 독점적으로 전용되는 집적회로를 포함한다. 이 "렌더링 프로세서"는 원시요소(primitives)를 드로잉(draw)하고(즉, 그래픽 원시요소의 스캔 변환을 수행하고), 픽셀 연산을 수행하고, 시스템의 디스플레이 타이밍을 생성하고, 프레임버퍼를 제어하며, 이들은 모두 호스트 CPU에 의해 렌더링 프로세서로 전달되는 데이터 및 커맨드에 응답하여 이루어진다. 바람직하게, 렌더링 프로세서의 레퍼토리(repertoire)는 그래픽 원시요소의 스캔 변환을 포함하며, 이것에 의해 이 작업으로부터 호스트 CPU를 구제하고, 버스 대역폭 요건을 상당히 감소시킨다. 본 발명의 이러한 관점에 따르면, 호스트 CPU(또는 다른 외부의 처리 구성요소)는 조명 및 텍스처 매핑에 관련된 기본적인 컴퓨테이션을 수행한다. 이러한 컴퓨테이션은 미가공(raw) 픽셀 값을 초래하며, 렌더링 프로세서가 이들 값을 프레임 버퍼로 드로잉되는 최종 값들로 리파인(refine)한다. 호스트 CPU와 같은 처리 구성요소는 단지 렌더링 프로세서를 통해서만 프레임 버퍼에 대한 억세스를 얻는다.
렌더링 프로세서(다른 하드웨어 또는 소프트웨어 구성요소가 아닌)에 의해 수행되는 픽셀 처리의 정도는 원하는 시스템 성능(capability)에 따라 변할 수 있다. 최소한, 렌더링 프로세서는 호스트 CPU, 기하학(geometry) 프로세서 또는 다른 하이레벨 그래픽 프로세서로부터 수신되는 커맨드에 응답하여 프레임 버퍼로 픽셀을 드로잉할 수 있으며, 이것은 X 및 Y 값 또는 CPU에 의해 제공되는 기하학적 명세(specification)로부터 프레임 버퍼에서 실제 픽셀 주소(address)를 컴퓨팅하는 것을 수반한다. 또한, 바람직하게 렌더링 프로세서는 엔드포인트(end-point) 좌표 또는 그들과 등가의 것으로부터 개개의 픽셀 값을 결정하기 위해 보간 동작을 수행한다. 또한, 렌더링 프로세서는 앤티에일리어싱(antialiasing) 및 디더링(dithering), 알파 블렌딩(alpha blending), Z-버퍼링, 포그(fog) 컴퓨테이션(포그를 시뮬레이션하기 위해 픽셀 영상에 화이트(white)를 부가하여 깊이큐잉(depth cueing)을 제공함), 윈도우 또는 다른 경계에 대한 클리핑(clipping), 영상의 이중 버퍼링(즉, 이전에 생성되어 현재 디스플레이된 영상을 메모리에서 유지하면서 영상을 생성함), 및 텍스처 맵 처리와 같은 특수 처리 알고리즘 및 수학적 연산을 수행하기 위한 능력을 갖출 수 있다. 다시 말해, 렌더링 프로세서에 제공되는 기능성은 소프트웨어 또는 다른 하드웨어로부터 특정 기능을 철회한 상대적 이득(경제적, 시간적 성능면에서)에 의존하고, 이상적 선택은 메인 시스템 버스를 통한 처리량을 최대화하고, 대기시간을 최소화할 것이다.
이러한 구성의 한가지 변형예에 있어서, 시스템은 사용자-지정 조명 파라미터에 따라 디스플레이된 영상 또는 그래픽 객체에 음영을 주기 위한 하나 또는 그 이상의 조명 모델을 구현하는 별도의 프로세서를 포함한다. 이 "라이터(lighter)" 또는 "기하학" 프로세서는 렌더링 프로세서와 직접 통신하며, 프레임 버퍼에는 직접 억세스하지 않는다.
본 발명의 다른 관점에서, 렌더링 프로세서는 특정 커맨드와 각각 관련된 일련의 자체-동작 레지스터(self-actuating register)를 포함한다. 이러한 레지스터 중 어떠한 레지스터에 데이터를 주소지정하고 기록함으로써, 호스트는 그 특정 레지스터에 관련된 커맨드의 실행을 함축적으로 명시한다(implicitly specifies). 특별히 바람직한 실시예에 있어서, 본 발명은 렌더링 프로세서에 위치된 상응하는 다수의 레지스터와 관련된 명령어의 한정된 집합들로 텍스처-매핑 동작을 분해한다.
본 발명의 또 다른 관점에서, 본 발명의 렌더링 프로세서는 바람직하게도, 렌더링 프로세서의 드로잉(drawing) 하드웨어가 외부 프로세서(예를 들어, 호스트CPU 또는 라이터 프로세서)에 의해 동기식으로 제어되는 슬레이브(slave) 모드를 제공하며, 따라서 외부 하드웨어가 (예를 들어, 텍스처 매핑을 위한) 관련 컴퓨테이션을 수행하는 동안 렌더링 프로세서는 스캔-변환 프로세스를 통해 단일-단계를 진행한다(single-steps). 이러한 방법으로 렌더링 프로세서의 동작을 외부 프로세서에 동기시킴으로써, 본 발명은 효율이 최적화된 구성을 제공하며, 이것에 의해 외부 프로세서는 복잡하고, 컴퓨테이션적으로 집약적인 렌더링(예를 들면, 텍스처 매핑) 컴퓨테이션 집합을 수행하며, 렌더링 프로세서는 연속적이고, 파이프라인 방식에 기반하여 이러한 컴퓨테이션의 결과를 활용하고, 프레임 버퍼 데이터와 관련된 것과 같은 다른 컴퓨테이션 집합을 제공한다.
먼저 도1을 참조하면, 그래픽 및 영상-렌더링 어플리케이션에 대한 일반화된 하드웨어 환경을 도시한 것으로서, 도시된 컴퓨터 시스템은 메인 시스템 메모리(17)와 그 구성요소에 대한 연산을 수행하고 서로 상호 작용하는 호스트 CPU(15)를 포함한다. 일반적으로 시스템 메모리(17)는 컴퓨터의 기본 운영체제(operating system) 및 그래픽 사용자 인터페이스(GUI, 도면 부호 19에 함께 표시됨) 부분을 포함하여, 정보의 임시 저장을 위해 휘발성 또는 랜덤 억세스 메모리(Random Access Memory, RAM)를 포함한다. 또한, 시스템은 통상적으로 컴퓨터의 구성정보 부분 및 기본 운영체제의 부가적인 부분을 영구적으로 저장하기 위한 리드-온리 메모리(Read Only Memory, ROM)와 하드디스크 및/또는 CD-ROM 드라이브와 같은 적어도 하나의 대용량 저장 장치(21)를 포함한다. 시스템의 모든 구성요소는 양방향 시스템 버스(23)를 통해 통신한다.
사용자는 통상적으로 적어도 일부분들이 시스템 메모리(17)내에 존재하는 하나 또는 그 이상의 어플리케이션 프로그램(27)을 실행할 때, 하나 또는 그 이상의 입력 장치(25)(예를 들어, 키보드, 마우스, 문서를 판독하고 그 내용을 디지털화하는 광스캐너 등)를 이용하여 시스템과 대화한다. 여기에 사용되는 것처럼, 용어 "어플리케이션 프로그램"은 넓은 범위로 사용자와 관련된 정보 처리를 하고, 그 정보를 그래픽이나 영상 생성 또는 조작 연산을 수반하는 방식으로 제시하기 위한 기능성의 주요부분을 말하며, 이러한 용어들은 논의의 간편함을 위해 서로 바꾸어 사용되어질 수 있다. 출력은 디스플레이(30) 상에 제시된다(presented).디스플레이(30)의 순간적으로 한 픽셀 씩 나타나는 출현은 메인 시스템 메모리(17)의 일부분으로서 도시된 프레임 버퍼(32)(메모리(17)로부터 분리되어 구현될 수도 있음)의 내용에 의해 결정된다.
시스템은 그래픽 또는 영상-렌더링 동작에 전용되는 많은 구성요소를 포함한다. 운영체제(19)는 입력 영상(기하학적 객체로서 정의됨)을 영상 점, 선 및 다각형(그것들의 꼭지점(vertices)에 의해 정의됨)과 같은 그래픽 원시요소로 분해하는 것과 인코딩된 그래픽 명령어(예를 들어, PostScriptTM커맨드)를 해석하는 것과 같은 기본적인 프리-렌더링 기능을 실행하는 그래픽 부시스템(subsystem)(35)을 포함하며, 이러한 기능성도 역시 어플리케이션(27)과 공유될 수 있다. 또한, 전형적인 저급 시스템은 대표적으로 도면 부호 37에 표시된, 더욱 진보된 영상 생성 기능을 구현하는 소프트웨어 모듈을 포함한다. 통상적으로 소프트웨어(37)는 그래픽 시스템(35)에 의해 생성된 원시요소를 실제 픽셀 값 및 주소로 스캔 변환을 수행하는 래스터 영상 프로세서(RIP)와, 칼라, 투명성(transparency)(오버래핑 객체들이 서로 적절하게 맞물리도록 하기 위한) 및 객체 연결성(connectivity)과 같은 픽셀 속성을 할당하기 위한 모듈을 포함하고, 또한, 사용자가 객체의 방향을 변경할 때 렌더링된 객체의 기하학적 변환을 수행하는 모듈, 프리필터링 및/또는 포스트필터링을 위한 모듈, 및 조명 컴퓨테이션 및 텍스처 매핑을 위한 모듈들을 포함할 수 있다. 소프트웨어 모듈(17)은 분리되고 독립적으로 실행가능한 소프트웨어 엔티티(entity)나 어플리케이션(27)과 관련된 기능성 또는 그들의 몇몇 조합을 표현할 수 있다. 통상적으로, 모듈(17)은 이중 버퍼링, 텍스처 매핑 등과 같은 기능을 구현하기 위해 일련의 메모리 버퍼(39)와 상호 작용한다. 전술한 모든 처리 동작은 종래 기술에서 잘 특징지워져 있으며, 그들을 구현하는 소프트웨어는 쉽게 입수할 수 있다. 현재 저급 시스템에서는 통상적으로 일부의 제한된 픽셀 하드웨어(예를 들어, Video Graphics Array, VGA)가 채용되고 있다.
고급 시스템에서, 그래픽 시스템(35)에 의해 수행되지 않는 사실상의 모든 그래픽 및 영상 렌더링 동작에 대한 책임은 대표적으로 도면 부호 40에 도시된 전용 하드웨어에 맡겨져 있다. 여러 개의 분리된 집적회로 프로세서로 이루어질 수 있는 이러한 디스플레이-제어 하드웨어는 프레임 버퍼(32)에 직접 동작 가능하게 연결된다. 따라서, 하드웨어(40)와 프레임 버퍼(32) 사이의 판독 및 기록 동작은 버스(23)에 관계없이 발생한다. 또한, 하드웨어(40)는 다양한 버퍼(39)에 직접 억세스할 수 있다.
도2는 비용면에서 효과적인 2차원 및 3차원 그래픽 렌더링을 위하여 소프트웨어 및 하드웨어 구성요소 사이에서의 이미징 및 그래픽 기능성의 최적의 할당을 용이하게 하기 위한 본 발명의 토폴로지를 도시한 도면이다. 이러한 아키텍처에서, 메인 시스템 버스(23)는 보다 집중된(focused) 형태의 트랜잭션을 전달하는 한 쌍의 버스(110,112)로 대체된다. CPU-메모리 버스(110)는 CPU(15)를 시스템 메모리(17)에 연결하는 시스템 버스(23)의 많은 기능을 보유하고 있다. I/O 버스(112)는 CPU(15)를 그 기능이 아래에 상세히 기술된 전용 렌더링 프로세서, 대용량 저장 장치(21) 및 입력장치(25)에 연결한다. 또한, I/O 버스(112)는 CPU(15)및 렌더링 프로세서(115)를 기하학적 변환, 조명 및 원하는 경우 클리핑과 관련된 수학적 연산을 수행하는 최적의 라이터/기하학 프로세서(117)에 연결하며, 프로세서(117)의 기능을 구현하는 집적회로는 종래 기술에서 잘 특징지워져 있으며, 통상적으로 부동 소수점 연산을 위해 구성된 디지털 신호 처리기("DSP") 칩 또는 고도의 파이프라인 방식의 VLIW(Very Long Instruction Word) 칩이다(대안으로, 이러한 기능은 적절한 소프트웨어 모듈(37)에 따라 CPU(15)에 의해 제공되어 질 수 있으나, 전반적인 처리 효율이 희생된다). 마지막으로, I/O 버스(112)는 CPU(15) 및 렌더링 프로세서(115)를 텍스처 동작을 수행하는 텍스처 프로세서(119)에 연결한다. 만일 프로세서(117 및/또는 119)가 생략된다면, 그들의 기능은 렌더링 프로세서(115)에 의해 수행되거나 메모리(17)에 저장된 명령어에 따라 CPU(15)에 의해 수행되거나 또는 그들의 몇몇 조합에 의해 수행된다. 아직까지 RAM으로 구현되기는 하지만, 프레임 버퍼(32)는 CPU(15)에 의해 주소지정 가능한 시스템 메모리(17)의 구성요소로부터 철회되었으며, 그것의 내용은 렌더링 프로세서(115)에 의해 또는 렌더링 프로세서(115)를 통해 단독으로 결정되어 조작된다. 다시 말해, 디스플레이(30)에 제시되는 인식 가능한(discernible) 특징은 프레임 버퍼(32)의 순간적인 내용을 반영한다.
텍스처 프로세서(119)의 동작 및 렌더링 프로세서(115)와의 그 관계는 텍스처 매핑과 관련하여 잘 이해될 수 있다. 앞서 지적된 바와 같이, 이 동작은 경계가 되는 그래픽 표면 영역에 시각적 상세를 부가하기 위해 사용된다. 그 시각적 상세는 버퍼(39)(또는 프레임 버퍼(32))에 존재하는 전형적으로 평면적인 영상인 하나또는 그 이상의 사용자-선택 "텍스처 맵"에서 비롯되며, 영상 생성 및 조작 시스템은 통상적으로 다수의 선택가능한 텍스처 맵을 제공하고, 사용자의 선택에 따라 대용량 저장 장치(21)로부터 버퍼(39)로 다운로드될 수 있는 것들을 사용자가 부가할 수 있도록 허용한다.
대안으로, 프로세서(117, 119)는 프로세서(115)와 직렬 연결로 결합될 수 있으며, 또는 프로세서 (117,119)의 기능들이 조합될 수 있다.
픽셀 또는 텍스처 맵의 "텍셀(texels)"은 일반적으로uxv어레이로서 정의되며, 각각의 텍셀은u,v좌표에 의해 식별된다. 3차원 객체를 표현하는 그래픽 표면에 텍셀을 적용하기 위해(즉, 뷰어(viewer)의 시선에 수직이 되는 평면으로 객체를 투영), 텍셀은 수학적으로 정의된 바와 같이 객체의 3차원 표면에 먼저 매핑되고, 다음에 이 표면은 x,y 좌표에 의해 정의된 원시요소 또는 영상을 형성하기 위해 출력 스크린 위에 투영된다.
텍스처 맵이 적용되는 출력 스크린 상의 (즉, 프레임 버퍼(32) 내의) 하나의 픽셀이 다수의 텍셀로부터 유도될 수 있으며, 이것은 텍셀들 사이에서 가중 및 가산을 필요로 한다. 특정 픽셀에 상응하는 텍셀들의 수는 텍스처 맵과 3차원 객체 표면 사이의 기하학적 관계에 달려 있다. 텍스처가 비스듬히 뒤쪽으로 기울어진 접지면(oblique receding ground plane)에 매핑되는 것과 같은 극단적인 경우에 있어서는, 프로세스가 극히 비효율적으로 될 수 있는데, 그 이유는 극히 많은 수의 텍셀이 단일의 원거리 접지면 픽셀을 텍스처하기 위해 가중되어 가산되어야하기 때문이다. 그러한 문제들을 극복하기 위하여, 다양한 프리필터링 방식이 고안되었다.이들은 전형적으로 다중-해상도(multi-resolution) 데이터 구조로서 텍스처 맵을 표현하는 것을 수반하며, 감소하는 해상도에서 영상의 하이어라키를 형성하기 위하여 원래의 텍스처 맵을 연속적으로 대역제한하고(bandlimiting) 부샘플링함으로써(subsampling) 생성될 수 있다. 보다 조잡한(coarser) 텍스처 맵은 그것이 프리필터링되기 때문에 사용에 있어 컴퓨테이션적인 요구가 적으며, 텍스처 프로세서(119)는 그 텍스처 맵에 적절한 기하학적 고찰(considerations)에 기초하여 주어진 표면 지점에 어떠한 텍셀을 적용할 지를 결정하며, 전반적인 목표는 최종 영상의 해상도를 위해 최소의 희생으로 처리 효율성을 최대화하는 것이다. 통상적으로, 어플리케이션 프로그램은 이러한 경쟁적 파라미터들에 일치되는 관련 가중치들을 명시한다.
그러한 한가지 프리필터링 방법은 칼라 텍스처-맵 영상을 "밉맵(mip map)"이라 불리는 피라미드 메모리 조직으로 분해하는 것을 수반하며, 여기서 밉(mip)이라는 용어는 "작으나 내용이 풍부하다"라는 의미의 라틴어 구절 "multum in parvo"에서 유래된 것이다. 이 방식에서, 다양한 피라미드 레벨은 원래의 소스 영상의 다양한 해상도에 대응하고, 레벨의 수는 레벨들 사이의 트리리니어(trilinear) 보간법(블렌딩)에 의해 확장될 수 있으며, 마지막 텍셀 값은u,vd좌표에 의해 정의되고, 여기서d는 보간된 피라미드 계층(layer)의 깊이에 대응한다. 변환, 투영 및 보간 루틴과 관련된 수학적 연산동은 선택적인 기하학 프로세서(117) 또는 텍스처 프로세서(119)에 의해 구현될 수 있다. 렌더링 프로세서(115)는 최종 필터링된 텍셀 값을 컴퓨팅하고, 다른 필터링 동작을 적절하게 적용함으로써 프레임 버퍼(32)의 적절한x,y위치에 픽셀을 드로잉한다.
그러므로, 묘사된 토폴로지에서 렌더링 프로세서(115)는 프레임 버퍼(32)에 배타적으로 억세스한다. 프리-렌더링 동작(클리핑, 조명, 많은 텍스처-매핑 계산 및 다른 기하학적 변환)은 프로세서(117,119)에 의해 수행되거나, 또는 원하는 경우에 CPU(15)에 할당될 수 있는데, 설명의 편리함을 위해, 계속되는 논의에서는 프로세서(117,119)가 이용 가능한 것으로 가정한다.
렌더링 프로세서에 의해 수행되는 주요한 작업은 각 픽셀과 관련된 파라미터(x, y, z, r, g, b, α, F, T)를 사용하여 원시요소를 스캔 변환하는 것이다. 여기서:
x,y = 프레임 버퍼에서 픽셀의 좌표 위치.
z = (교합(occlusion) 관계를 위한) 다른 객체에 대한 픽셀의 "깊이".
r,g,b = 적색/청색/녹색 칼라 공간에서의 픽셀 칼라 값.
α= 투명성 또는 픽셀-커버리지(coverage) 값.
F = 포그 값
T = 텍셀 값
전형적으로, z값은 렌더링될 각 원시요소와 관련된 분리된 "Z-버퍼"(즉, 버퍼(39) 중 하나)에 저장되고, 렌더링 프로세서(115)는 다른 객체에 대한 그 깊이를 나타내는, 원시요소가 유도된 객체로부터와 관련된 값에 기초하여 스캔 변환 과정에서 개개의 픽셀의 z값을 결정한다. x,y 픽셀에 할당되는 최종 값들은 원시요소에서 해당 지점의 r,g,b 값과 그것의 z값 및 소정의 관련된 α와 F 값에 의존한다.텍스처 매핑의 경우에, 각 원시요소는 일반적으로 많아야 하나의 관련 텍스처 맵을 갖게 되거나 또는 한 세트의 밉맵을 갖게 된다. 텍스처링을 수용하기 위해, 각 픽셀에 대해 렌더링 프로세서(115)는 r,g,b 값을 프레임 버퍼(32)로부터 판독하고, z 값을 Z-버퍼로부터 판독하고, 그리고 텍스처 프로세서(119)에 의해 제공되는 하나 또는 그 이상의 텍셀 값 T를 판독하고, 다음에, 이들 값을 보간 및 블렌딩을 통해 최종 픽셀 값으로 조합한다. 또한, 렌더링 프로세서(115)는 통상적으로 보간된 "소스" r,g,b,z 및 F 값을 사용한다.
프로세서(115)의 일실시예의 내부 구조가 도3에 도시되어 있다. 픽셀 입/출력 유니트(Pixel input/output unit, 이하 PIOU라 함) 기능 블록(200)은 프로세서 인터페이스를 제공하여, CPU(15)가 데이터 및 커맨드를 프로세서(115)로 전달하고, 레지스터를 판독 및 기록하고, 프레임 버퍼(32)로부터 픽셀 데이터를 판독하고, 픽셀 데이터를 프레임 버퍼(32)에 기록할 수 있도록 한다. PIOU(200)는 후술되는 바와 같이, 슬레이브-모드(slave-mode) 코스캐닝(co-scanning)을 용이하게 하는 복수의 선입선출(First-In First-Out, FIFO) 모듈(도면 부호 202로 집합적으로 표시됨)을 포함한다.
PIOU(200)는 그래픽 원시요소의 원시적인 스캔 변환을 수행하는 스캐닝 엔진(이하, SSC라 함) 블록(204)과 통신한다. SSC(204)는 원시요소와 그 원시요소에 대해 수행될 기능에 대응하는 커맨드를 수신하기 위한 데이터 레지스터(206)를 포함한다. PIOU(200)와 SSC(204)는 프레임 버퍼 데이터의 페칭(fetching), 버퍼링(buffering) 및 저장(storing)을 제어하는 제어 블록(APATH)(210)과 통신한다. 바람직하게, APATH(210)는 상당히(heavily) 파이프라인되어 있으며, 동작이 이루어질 것에 관한 데이터를 프리페치하고, 페치되어 만들어지거나 수정된 이후의 데이터를 버퍼링하며, 프레임 버퍼(32)로 기록하기 위한 데이터를 저장한다. APATH(210)는 일련의 커맨드 레지스터를 포함하는 다수의 레지스터(212)를 포함하며, 이 커맨드 레지스터의 식별자는 커맨드 기능과 연관되어 있어, 이들 레지스터에 값을 기록하는 것은 그 연관된 기능의 순서화된 실행을 유발한다.
APATH(210)는 각각의 드로잉된 픽셀에 대해 칼라(r,g,b), α, F 및 z 값을 보간하는 보간(IPOL) 블록(215)으로 미가공(raw) 픽셀 데이터를 보낸다. IPOL(215)은 보간된 값을 수정(PIXMOD) 블록(217)으로 전잘하고, 상기 수정(PIXMOD) 블록(217)은 IPOL(215)로부터 발생된 커맨드에 응답하여, 논리적 연산, 알파 블렌딩, 텍스처 필터링 및 블렌딩과 플레인 마스킹(plane masking)과 같은 픽셀 수정 동작을 수행한다. PIXMOD(217)는 처리된 값을 APATH(210)으로 반송한다. 프레임 버퍼(32)로부터 또는 프레임 버퍼(32)로의 데이터 트레픽은 실제적인 프레임 버퍼 판독 및 기록 동작을 수행하고 프레임버퍼 메모리를 리프레쉬하는 프레임 버퍼 인터페이스(220)에 의해 처리된다. 도면에 도시되지는 않았지만, 입/출력 시스템(예를 들어, BIOS) ROM 칩과 관련 온-보드 디바이스(on-board devices), 시스템을 위한 스크린 타이밍(blank 및 sync)을 생성하기 위한 디스플레이 제어기 및 비디오(예를 들면, NTSC 캡쳐) 기능성에 대한 접속과 같은 주요 인터페이스 구성요소가 있다.
SSC(204)는 2차원 및 3차원 원시요소의 표준 세트를 인식하고 그와 연관된 다양한 유틸리티(utility) 기능을 수행한다. 대표적인 일실시예에서, 유틸리티 기능들은 CPU(15)에 의해 발생되는 커맨드들에 의해 동작가능하고, FIFO(202)를 통해 레지스터 내용을 I/O 버스(112)로 전달하는 것과 버퍼 동작 및 모드 세팅을 포함한다. 원시적인 동작들은 프레임 버퍼(32)의 하나 또는 그 이상의 스크린-정렬 직사각형의 소스 영역으로부터의 데이터를 그 프레임 버퍼의 스크린-정렬 목적지 영역에 결합하는 비트-블록 이동(transfer)("BitBlts"); 고정된 칼라 값으로 스크린 정렬 다각형을 채우는 필(fill) 동작; SSC(204) 내에 있는 클리핑 경계 레지스터에 저장된 데이터를 이용한 직사각형 윈도우 클리핑; 지정된 일련의 픽셀에 의해 만들어진 패턴을 정의되고 경계지어진 영역으로 타일링(tiling)하는 것과 같은 패터닝 래스터 동작; 정의된 소스 픽셀 블록의 "신장(stretching)" 및 "축소(shrinking)"; Bresenham 라인의 드로잉; 및 점, 선, 스팬(spans) 및 채워진 영역을 포함하는 3차원 원시요소의 드로잉을 포함한다.
렌더링 프로세서(115)는 CPU(15), 라이터 프로세서(117) 또는 텍스처 프로세서(119)와 같은 외부 프로세서에 의해 SSC(204), APATH(210), IPOL(215) 및 PIXMOD(217)의 동기 제어가 가능하도록 구성된다. 이러한 모드에서, 렌더링 프로세서(115)는 제어하는 외부 프로세서 요소의 타이밍에 "종속적(slave)"이며, 스캔-변환 프로세스를 통해 단일 스테핑한다(single-stepping). 이 "슬레이브-모드 코스캐닝(slave-mode co-scanning)" 능력은 텍스처 매핑 동작과 관련하여 특히 유용하며, 그 이유는 스캔 변환이 요구되는 텍스처-매핑 컴퓨테이션의 텍스처 프로세서(119)(또는 CPU(15))에 의한 수행에 맞춰질 수 있기 때문이다. 또한, 슬레이브-모드 동작은 자체 동작 커맨드 레지스터(self-actuating command register)로부터 특별한 이점을 유도한다. 슬레이브-모드 동작은 렌더링 프로세서(115)에 고가의 텍스처-처리 하드웨어를 갖추거나, 또는 모든 렌더링 작업을 상대적으로 느리고 높은 오버헤드의 소프트웨어에게 할당하는 대신에, 상이한 프로세서 요소들 사이에서 처리 부담의 최적 분할을 용이하게 하며, 이러한 작업은 다양한 시스템 구성요소의 성능 특성을 인식하는 방식으로 분산되어진다. CPU(15)(또는 프로세서(117 또는 119))는 드로잉될 요소들을 드로잉 또는 비-드로잉 단계들로 분해함으로써 원시요소들을 생성하고, CPU(15), 기하학 프로세서(117) 또는 텍스처 프로세서(119)는 스캔-변환 컴퓨테이션의 일부뿐만 아니라 텍스처-매핑 컴퓨테이션을 수행하고, 그 결과는 지원되는 동작(후술됨) 중 하나의 실행을 야기하기 위해 레지스터(212) 중 다양한 레지스터로 제공된다. 다음에, 렌더링 프로세서(115)는 원시요소를 픽셀 위치로 변환하고, 전술한 바와 같이, 한 픽셀씩 스캔 변환을 수행하고, 그 픽셀에 대해 소정의 지정된 텍스처 필터링 및 블렌딩 동작을 수행하며, 그 결과를 프레임 버퍼(32)에 기록한다. 이러한 동작은 구성요소 사이에서 동시에 발생하며, 따라서 렌더링 프로세서는 외부적으로 수행된 컴퓨테이션 결과를 그것이 이용 가능하게 되자마자 이용하고, 그 시간동안 외부 구성요소들은 후속 컴퓨테이션을 수행하기 위해 자유롭게 남아 있다.
원시요소를 드로잉하기 위하여, 외부 프로세서 요소는 필요한 파라미터와 지정된 원시요소를 나타내는 슬레이브-모드 커맨드를 로드한다. 다음에, 외부 프로세서 요소는 첫 번째 픽셀에 대해 일련의 텍스처 커맨드/데이터 쌍을 적절한 자체 동작 레지스터(212)에 로드하며, 데이터의 한 워드를 이들 레지스터 주소로 로드함으로써 대응하는 프로세서 동작이 시작된다. 그 데이터는 텍스처 필터링을 위해 필요한 텍셀 주소나 기준화 인수(scale factor)(즉, 밉맵 선형 보간을 위해 요구되는u,v또는d의 분수 성분(fractional components)을 나타낸다. 텍스처 커맨드가 첫 번째 픽셀에 대해 완료된 이후에, 슬레이브 스텝(Slave Step) 커맨드가 입력되어, 프로세서(115)가 다음 픽셀에 대해 동작할 준비를 하게 된다.
렌더링 프로세서(115)는 바람직하게 다음의 슬레이브 스텝 커맨드를 실행한다.
SlaveStepPX: 오른쪽 이동
SlaveStepNX: 왼쪽 이동
SlaveStepPY: 아래쪽 이동
SlaveDrawStepPX: 현재 픽셀을 드로잉하고, 오른쪽 이동
SlaveDrawStepNX: 현재 픽셀을 드로잉하고, 왼쪽 이동
SlaveDrawStepPY: 현재 픽셀을 드로잉하고, 아래쪽 이동
SlaveReturnStepPX: 저장된 픽셀 위치로 리턴하고, 오른쪽 이동
SlaveReturnStepNX: 저장된 픽셀 위치로 리턴하고, 왼쪽 이동
SlaveDrawReturnStepPX: 현재 픽셀을 드로잉하고, 저장된 픽셀 위치로 리턴하며, 오른쪽 이동
SlaveDrawReturnStepNX: 현재 픽셀을 드로잉하고, 저장된 픽셀 위치로 리턴하며, 왼쪽 이동
SlaveSaveStepPX: 현재 픽셀 위치를 저장하고, 오른쪽 이동
SlaveSaveStepNX: 현재 픽셀 위치를 저장하고, 왼쪽 이동
SlaveDrawSaveStepPX: 현재 픽셀 위치를 드로잉하고, 현재 픽셀 위치를 저장하며, 오른쪽 이동
SlaveDrawSaveStepNX: 현재 픽셀 위치를 드로잉하고, 현재 픽셀 위치를 저장하며, 왼쪽 이동
DrawLineMajorStep: 현재 라인 픽셀을 드로잉하고, 주 단계(major step)를 취하기
DrawLineMinorStep: 현재 라인 픽셀을 그리며, 부 단계(minor step)를 취하기
고유의 자체 동작 레지스터(212)와 각각 관련된 인식된 텍셀 커맨드는 텍셀 주소의 식별, 밉맵 사이 및 밉맵 내의 선형 보간 및 포인트 샘플링으로 향하게 된다. 선형 보간과 포인트 샘플링 동작은 밉맵(d인수를 사용함) 사이의 보간 또는 가장 가까운 맵의 선택, 및 맵(즉, 주어진 픽셀에 대해 컴퓨팅된u,v좌표를 둘러싼 최대 4개의 텍셀 사이에서) 내의 보간 또는 선택된 맵 내에서의 가장 가까운 텍셀의 식별을 포함한다. 특히, 본 발명에 의해 지원되는 텍셀 커맨드는 바람직하게 6개 범주, 즉, 단일 맵에서 가장 가까운 텍셀을 식별하는 NEAREST 동작; 단일 맵의 가장 가까운 텍셀들 사이를 보간하는 LINEAR 동작; 가장 가까운 밉맵(d값을 사용함)과 거기서 가장 가까운 텍셀을 식별하는 NEAREST_MIPMAP_NEAREST 포인트-샘플링 동작; 가장 가까운 밉맵 내의 4개 픽셀 사이의 선형 보간을 수행하는 LINEAR_MIPMAP_NEAREST 동작; 2개의 주변 맵으로부터 가장 가까운 텍셀을 선택하고그 사이를 선형 보간하는 NEAREST_MIPMAP_LINEAR 동작; 및 밉맵과 텍셀 사이를 보간하는 LINEAR_MIPMAP_LINEAR 커맨드로 나누어진다.
비록 각각의 가능한 커맨드를 단일 자체 동작 레지스터와 간단하게 연관시키는 것이 가능함에도 불구하고, 일부의 커맨드가 하위 레벨 커맨드의 조합을 나타내고, 데이터의 특징적 양을 필요로 한다는 사실은 전반적인 레지스터 수의 감소를 용이하게 한다. 바람직한 실시예에서, 다음의 커맨드는 개개의 전용 레지스터에 관련되어 있다:
커맨드 기능
TexCommand0Acc3 = Fetch_Texel(Input Data)
TexCommand1TMP = Fetch_Texel(Input Data)
TexCommand2Acc1 = TMP*(1-uf) +
Fetch_Texel(Input Data)*uf
TexCommand3Acc2 = TMP*(1-uf) +
Fetch_Texel(Input Data)*uf
TexCommand4Acc3 = Acc1*(1-vf) + Acc2*vf
TexCommand5Acc3 = TMP*(1-df) +
Fetch_Texel(Input Data)*df
TexCommand6Acc1 = Acc1*(1-vf) + Acc2*vf
TexCommand7Acc3 = Acc1*(1-df) + Acc3*df
TexCommand8-13(내부 사용)
TexCommand14df를 로드
TexCommand15uf를 로드
여기서, TMP, Acc1, Acc2 및 Acc3은 임시 레지스터이고; uf, vf 및 df는 TexCommands 2-7,14 및 15에서u,vd값의 분수 값이 로드되는 레지스터이고; 및 Fetch_Texel(Input Data)는 페치된 텍셀과 관련된 칼라 데이터(예를 들면, r,g,b 및 α)를 말한다.
어떤 연산은 그 연산에 개별적으로 또는 집합적으로 대응하는 레지스터 또는 일련의 레지스터로 데이터를 로딩함으로써 수행된다. 이들 그 연산 및 그와 관련된 커맨드 레지스터들은 다음과 같다.
NEAREST
TexCommand0텍셀 주소 1
LINEAR
TexCommand1텍셀 주소 1
TexCommand15(u)프랙션(fraction)(첫번째 밉맵)
TexCommand2텍셀 주소 2
TexCommand1텍셀 주소 3
TexCommand3텍셀 주소 4
TexCommand4(v)프랙션(첫번째 밉맵)
NEAREST MIPMAP NEAREST
TexCommand0텍셀 주소 1
LINEAR MIPMAP NEAREST
TexCommand1텍셀 주소 1
TexCommand15(u)프랙션(첫번째 밉맵)
TexCommand2텍셀 주소 2
TexCommand1텍셀 주소 3
TexCommand3텍셀 주소 4
TexCommand4(v)프랙션(첫번째 밉맵)
NEAREST MIPMAP LINEAR
TexCommand1텍셀 주소 1
TexCommand14(d)프랙션(밉맵 사이)
TexCommand5텍셀 주소 2
LINEAR MIPMAP LINEAR
TexCommand1텍셀 주소 1
TexCommand15(u)프랙션(첫번째 밉맵)
TexCommand2텍셀 주소 2
TexCommand1텍셀 주소 3
TexCommand3텍셀 주소 4
TexCommand4(v)프랙션(첫번째 밉맵)
TexCommand1텍셀 주소 5
TexCommand15(u)프랙션(두번째 밉맵)
TexCommand2텍셀 주소 6
TexCommand1텍셀 주소 7
TexCommand3텍셀 주소 8
TexCommand6(v)프랙션(두번째 밉맵)
TexCommand7(d)프랙션(밉맵 사이)
발명의 이러한 관점에서의 동작은 특정 예에 관련하여 가장 쉽게 이해될 수 있다. 도4는 렌더링 프로세서(115)가 슬레이브 모드에서 3차원의 텍스처된 삼각형을 스캔-변환하는 방식을 도시하고 있다. 외부 프로세서 요소 - 즉,CPU(117), 프로세서(117) 및/또는 프로세서(119) - 는 다음의 단계를 수행한다:
1. 삼각형에 대한 초기화 값을 SSC(204)에 로드한다.
2. 필(fill) 원시요소를 드로잉하기 위한 커맨드를 레지스터(206)에 로드한다.
3. 첫 번째 픽셀 및 그와 관련된 텍셀 커맨드에 대응하는 텍셀(들)의 주소들을 컴퓨팅하고 로드한다.
4. 스캔을 위해 그 다음 픽셀을 컴퓨팅한다.
5. 적절한 슬레이브-모드 단계 커맨드를 SSC(204)에 로드한다.
6. 원시요소 내의 각 픽셀에 대해 단계 3-5를 반복한다.
7. 스캔이 완료되었을 때 종료한다.
렌더링 프로세서(115)에 의해 실행되는 연산의 전반적인 순서는 다음과 같다:
1. 필-원시요소 커맨드가 수신되었을 때 소정의 필요한 내부 초기화를 수행한다.
2. 텍셀 커맨드에 응답하여 요구된 텍셀 페칭 및 텍셀 컴퓨테이션을 수행한다.
3. 픽셀 주소를 컴퓨팅하고, 목적지 픽셀(하나가 이미 존재하고, 컴퓨팅될 픽셀과 소정의 방식으로 조합되어야 하는 경우) 및 z(Z-버퍼링이 사용되는 경우)를 페치하고, 목적지 픽셀(및 z)과 단계2로부터의 결과된 필터링된 텍셀(및 보간된 z)을 조합하고, 수정된 목적지 픽셀을 프레임 버퍼(32)(또는 다른 목적지 픽스맵)에 기록한다.
4. 단계를 진행할 때 z, r, g, b, α, F 값을 보간한다.
5. 수신된 정확한 순서대로 전술한 단계를 수행하고, 만일 비순서적인(out-of-order) 경우에는, 동일한 결과를 생성하기 위해 요구되는 시퀀싱(sequencing)을 처리한다.
또한, 부가적인 영상 생성 및 조작 기능성은 렌더링 프로세서(115)에 병합될 수 있다. 예를 들어, 앤티에일리어싱(antialiasing) 및 디더링(dithering)과 같은 필터링 동작, 알파 블렌딩 및 쓰레스홀딩(thresholding)과 같은 알파 동작, Z-버퍼링, 포그 컴퓨테이션, 클리핑, 이중-버퍼링, 및 텍셀-픽셀 포맷 변환(예를 들어, 32비트 텍셀을 16비트 r,g,b 픽셀 포맷으로 변환)과 같은 동작을 할 수 있는 모듈들이 있다. 이러한 기능을 수행하기 위한 적절한 펌웨어(firmware), 로직 및 레지스터 구성은 디지털-렌더링 기술분야에 잘 특징지워져 있으며, 프로세서(115)에 포함되기 위해 적절한 기능 블록의 간단한 구성을 가능하게 한다. 이들 블록은 슬레이브-모드 스캐닝이 다양한 기능 블록을 통해 순차적으로 처리되는 픽셀 데이터의 동시 제공을 초래하도록 IPOL(215) 및 PIXMOD(217)와 파이프라인 방식으로 집적된다.
도4를 참조하면, 그리드(grid)(300)는 프레임 버퍼(32)의 일부를 나타낸다. 예시된 삼각형은 CPU(15)에 의해 인식되는 원시요소이며, 이것은 렌더링 프로세서(115)에 의해 프레임 버퍼(32) 내의 일련의 턴-온되어 적절한 값을 가지는 픽셀들로 스캔-변환되어야 한다. CPU(15)는 렌더링 프로세서(115)를 초기화하고, 예시된 삼각형을 스캔하여, 그 세그먼트의 좌표 위치(X0,Y0),(X1,Y1); (X1,Y1),(X2,Y2); 및 (X2,Y2),(X0,Y0)를 프로세서(115)로 통신한다. 또한, CPU(15)는 단계 커맨드와 텍셀 커맨드는 프로세서(115)에 제공한다. 프로세서(115)는 렌더링(즉, 픽셀 값을 프레임 버퍼(32)에 기록하는 것)을 수행하며, 그리드(300)에서, 전술한 단계 커맨드에 따라 원시요소 내에 속하거나 또는 그 세그먼트에 의해 인터셉트되는(intercepted) 픽셀 위치를 통해 단계별로 수행한다. 통상적으로, 이것은 예를 들어, 피나다 스캐닝 알고리즘(Pinada scanning algorithm)(ACM SIGGRAPH Proc. Comp. Graphics, vo1.22, No.4[1988.8] 페이지 17-20을 참조))에 따라 +X 또는 -X 방향 또는 +Y방향으로 단계별로 진행함으로써 달성된다. 주사선(scan-line)-기반 접근방법과 같은 다른 스캐닝 알고리즘도 역시 사용될 수 있다.
피나다 접근방법을 사용하고, 아래쪽으로 이동한 후 오른쪽으로 이동하는 관례를 이용하여, 삼각형은 도4에 도시된 바와 같이 스캔-변환되어 채워지는데, 관련된 픽셀 위치는 문자 P 뒤에 있는 숫자로 표시되어 있다. 맨 꼭대기 좌표(P0)를 가진 픽셀이 스캐닝된 첫 번째 픽셀이고, 그 다음 픽셀은 P0의 오른쪽에 있는 픽셀이다. 스캐닝이 삼각형의 오른쪽 모서리 너머로 지나갈 때, 프로세스는 P0의 왼쪽에 있는 픽셀로 거꾸로 점프하고, 그 삼각형의 가장 왼쪽의 모서리가 스캔되어질 때까지 계속된다. 이 시점에서, 스캐닝 프로세스는 아래쪽으로 이동하여 다음 주사선으로 진행된다. 스캐닝이 계속됨에 따라, 레지스터의 현재 상태는 리턴을 위해 순차적으로 저장된다. 예를 들어, 스캐닝 프로세스가 아래쪽으로 이동할 때, 새로운 주사선에서 스캔되는 첫 번째 픽셀에서의 값은 그 라인에 대해 오른쪽으로의 스캐닝이 완료된 후 첫 번째 픽셀의 왼쪽 픽셀로 리턴이 가능하도록 저장된다.
렌더링 프로세서(115)는 단어 "Draw"를 포함하는 슬레이브 커맨드에만 응답하여 픽셀을 드로잉하고, 단어 "Save"를 포함하는 슬레이브 커맨드에만 응답하여 그것의 상태를 저장하고, 커맨드가 단어 "Return"을 포함하는 경우에만 리턴한다. 프로세서(115)는 "Step PX"를 포함하는 커맨드에 응답하여 +X 방향(즉, 도4에서 오른쪽으로)으로 이동하고, "Step NX"를 포함하는 커맨드에 응답하여 -X 방향으로 이동하고, "Step PY"를 포함하는 커맨드에 응답하여 +Y 방향으로 이동한다. 스캔-변환 프로세스에서, 렌더링 프로세서(115)는 인터셉트된 픽셀이 원시요소를 정의하는 세그먼트 내에 놓이게 되는 크기(extent)를 결정한다. 통상적으로, 하나의 픽셀은 원시요소 경계선 내에 대부분이 놓여져 있을 때에만 실제로 드로잉되며, 반면에 앤티에일리어싱 또는 다른 필터 동작이 적용되는 경우에, 픽셀은 필터에 의해 규정되는 바와 같이 드로잉될 수 있다(또는 부분적인 커버리지를 갖고 드로잉될 수있다).
슬레이브-모드 커맨드의 다음의 시퀀스는 프로세서(115)가 도4에 도시된 삼각형을 렌더링하도록 한다. 이 예의 목적을 위해, 픽셀의 중앙점이 그 삼각형 경계선 안에 있지 않으면 픽셀은 드로잉되지 않는 것으로 가정한다. 또한, 텍셀 커맨드에 대해서는 설명되지 않으며, 그 이유는 CPU(15) 또는 다른 외부 처리 요소가 그러한 적절한 커맨드의 집합을 첫 번째 다음에 오는 각 슬레이브 단계 이전에 그 SlaveEnd 단계 이전에 렌더링 프로세서(115)로 보내는 것을 알고 있기 때문이며, 렌더링 프로세서(115)는 드로잉된 픽셀에 대응하는 각각의 메모리 위치에 저장된 필터링된 텍셀 값을 생성하기 위해 텍셀 커맨드를 이용한다.
1.Slave3DFill(렌더링 프로세서(115)를 초기화함)
2.SlaveDrawSaveStepPX(P0을 드로잉하고, +X 방향으로 1 픽셀 이동함)
3.SlaveReturnStepNX(P1이 삼각형 외부에 있기 때문에 P1을 드로잉하고 않고; P2로 리턴함)
4.SlaveStepPY(삼각형 외부에 있기 때문에 P2를 드로잉하지 않음)
5.SlaveDrawSaveStepPX(P3을 드로잉하고, 상태를 저장하고, +X 방향으로 이동함)
6.SlaveDrawStepPX(P4를 드로잉하고, +X 방향으로 이동함)
7.SlaveReturnStepNX(P5를 드로잉하지 않고, P6으로 이동함)
8.SlaveStepPY
9.SlaveDrawSaveStepPX(P7을 드로잉함)
10.SlaveDrawStepPX(P8을 드로잉함)
11.SlaveDrawStepPX(P9를 드로잉함)
12.SlaveReturnStepNX
13.SlaveStepPY
14.SlaveDrawSaveStepPX(P12를 드로잉함)
15.SlaveDrawStepPX(P13을 드로잉함)
16.SlaveDrawStepPX(P14를 드로잉함)
17.SlaveDrawstepPX(P15를 드로잉함)
18.SlaveDrawReturnStepNX(P16을 드로잉함)
19.SlaveStepPY
20.SlaveDrawSaveStepPX(P18을 드로잉함)
21.SlaveDrawStepPX(P19를 드로잉함)
22.SlaveDrawStepPX(P20을 드로잉함)
23.SlaveDrawStepPX(P21을 드로잉함)
24.SlaveDrawStepPX(P22를 드로잉함)
25.SlaveDrawReturnStepNX(P23을 드로잉함)
26.SlaveStepPY
27.SlaveDrawSaveStepPX(P25를 드로잉함)
28.SlaveDrawStepPX(P26을 드로잉함)
29.SlaveDrawStepPX(P27을 드로잉함)
30.SlaveDrawStepPX(P28을 드로잉함)
31.SlaveReturnStepNX(픽셀 중앙이 삼각형 외부에 있으므로 P29를 드로잉하지 않음)
32. SlaveEnd (P32는 외부에 있고, 아래쪽으로 이동은 삼각형의 하부 모서리로 안내함)
따라서, 전술한 것은 비용 및 효율을 최적화하기 위한 블렌딩 하드웨어 및 소프트웨어 픽셀-기록 기능에 대한 매우 유익한 접근방법을 나타낸 것이다. 여기에서 사용된 용어 및 표현은 제한적인 의미가 아니라 설명을 위한 용어로서 사용되었으며, 그러한 용어 및 표현의 사용에 있어서 도시 및 설명된 특징 또는 그 일부의 등가물을 배제하고자 의도된 것이 아니며, 본 발명의 범위 내에서 여러 가지 변형이 가능하다는 것을 인식할 것이다.

Claims (18)

  1. 픽스맵(pixmaps)으로서 저장된 영상을 처리하고 그 디스플레이를 용이하게 하기 위한 장치에 있어서,
    a. 중앙처리장치(CPU)(15);
    b. 상기 CPU를 동작시키기 위한 저장된 명령어를 포함하는 시스템 메모리(17);
    c. 디스플레이 가능한 픽셀 데이터를 포함하는 픽스맵을 저장하기 위한 프레임버퍼(32);
    d. 상기 프레임 버퍼에 동작 가능하게 연결되어 상기 CPU에 의해 발생되는 커맨드에 응답하여, 원시요소(primitives)를 픽셀 데이터로 스캔-변환하고 상기 데이터를 프레임 버퍼에 저장하기 위한 렌더링 프로세서(115);
    e. 상기 CPU와 (i) 상기 시스템 메모리 및 (ii) 적어도 하나의 대용량 저장장치(21) 사이의 데이터 교환을 용이하게 하기 위한 CPU-메모리 버스(110); 및
    f. 상기 CPU와 상기 렌더링 프로세서 사이의 데이터 교환을 용이하게 하기 위한 입/출력 버스(112)
    를 포함하고,
    상기 CPU는 출력 원시요소와 텍셀(texel) 커맨드를 생성하고 상기 입/출력 버스를 통해 상기 원시요소와 상기 텍셀 커맨드를 상기 렌더링 프로세서로 전송하기 위해 상기 CPU-메모리 버스(110)를 통해 상기 시스템 메모리로부터 페치된 명령어에 따라 동작하고, 상기 렌더링 프로세서(115)는 픽셀 메모리 주소를 생성하고, 선형 보간에 의해 픽셀 데이터를 리파인(refine)하고, 상기 텍셀 커맨드를 실행하도록 구성되고;
    상기 렌더링 프로세서(115)는, 그 수단으로의 상기 원시요소 로딩에 응답하여 상기 원시요소와 관련된 동작의 실행을 함축적으로 명시하기 위한 수단(204,210,215,217)을 포함하고, 상기 함축적 명시화 수단은, 입/출력 버스로부터 데이터를 수신하여 그 수신에 따라 상기 렌더링 프로세서가 데이터에 대해 관련 동작을 수행하도록 하기 위해 그 각각이 상기 CPU에 의해 독립적으로 주소지정 가능하고 하나의 동작과 관련된 다수의 자체 동작 레지스터(212)를 포함하는
    장치.
  2. 제1항에 있어서,
    상기 렌더링 프로세서는 디스플레이 타이밍을 생성하기 위한 수단을 더 포함하는
    장치.
  3. 제1항에 있어서,
    상기 렌더링 프로세서는 상기 시스템 메모리로부터 분리되고, 상기 CPU(15)는 상기 프레임 버퍼로부터 분리된
    장치.
  4. 제3항에 있어서,
    텍스처 매핑을 용이하게 하기 위한 수단을 더 포함하고,
    상기 수단은,
    a. 텍셀 데이터를 각각 포함하는 텍셀의 어레이를 포함하는 텍스처 맵에 억세스하기 위한 수단;
    b. 상기 프레임 버퍼에 그 데이터가 저장된 각 픽셀에 관하여, 그와 연관된 적어도 하나의 텍셀을 식별하기 위한 수단; 및
    c. 각 픽셀에 대하여, 상기 프레임 버퍼에 저장하기 위해 블렌딩된(blended) 데이터를 생성하기 위해 픽셀 데이터와 적어도 하나의 관련된 텍셀로부터의 텍셀 데이터를 조합하기 위한 수단을 포함하는
    장치.
  5. 제4항에 있어서,
    상기 렌더링 프로세서는, 상기 CPU(15)에 의해 발생된 커맨드에 응답하여 다수의 텍셀 맵 사이에서 보간하기 위한 수단(215)을 포함하는
    장치.
  6. 제5항에 있어서,
    상기 텍셀-처리 커맨드는, 로드된 데이터에 의해 식별되는 메모리 주소를 가진 텍셀의 페칭 및 밉맵(mip maps) 사이의 선형 보간을 포함하는
    장치.
  7. 제6항에 있어서.
    상기 렌더링 프로세서와 결합되어, 상기 CPU(15)와 상기 렌더링 프로세서(115) 사이의 동기 파이프라인 방식의 동작을 용이하게 하기 위한 수단
    을 더 포함하고,
    상기 CPU는, 상기 렌더링 프로세서에 의한 상기 원시요소의 스캔 변환에 부합하여 저장된 명령어를 실행하는
    장치.
  8. 제7항에 있어서,
    상기 저장된 명령어는 상기 원시요소에 대한 컴퓨테이션 집약적인 연산을 정의하고,
    상기 렌더링 프로세서는 저장된 명령어의 상기 CPU에 의해 실행에 부합하여 픽셀 데이터를 리파인하기 위한 수단을 더 포함하는
    장치.
  9. 제8항에 있어서,
    상기 렌더링 프로세서(115)는, 선형 보간, 필터링, 클리핑, 알파 블렌딩 및 포그 값(fog value)의 컴퓨테이션을 포함하는 동작에 의해 픽셀 데이터를 리파인하는
    장치.
  10. 원시요소의 생성을 초래하는 컴퓨테이션 집약적 영상-생성 동작을 수행하도록 구성된 외부 프로세서(15)를 구비한 시스템의 스크린 상에서의 영상을 처리하고 영상의 디스플레이를 용이하게 하기 위한 장치에 있어서,
    a. 상기 스크린 상에 영상으로서 디스플레이 가능한 픽셀 데이터를 포함하는 픽스맵을 저장하기 위한 프레임 버퍼(32); 및
    b. 상기 외부 프로세서와 상기 프레임 버퍼 사이에 배타적으로 연결되고 상기 외부 프로세서에 의해 생성되는 원시요소에 응답하여, 상기 스크린상의 디스플레이를 위해 상기 원시요소를 픽셀 데이터로 스캔-변환하기 위한 렌더링 프로세서(115) - 여기서, 상기 렌더링 프로세서(115)는, 그 수단으로의 상기 원시요소의 로딩에 응답하여 상기 원시요소와 관련된 동작의 실행을 함축적으로 명시하기 위한 수단을 포함함 -
    를 포함하고,
    상기 함축적 명시화 수단(204,210)은, 상기 외부 프로세서로부터 데이터를 수신하여 그 수신에 따라 상기 렌더링 프로세서가 데이터에 대해 관련 동작을 수행하도록 하기 위해 그 각각이 상기 CPU에 의해 독립적으로 주소지정 가능하고 하나의 동작과 관련된 다수의 자체 동작 레지스터(212)를 포함하는
    장치.
  11. 제10항에 있어서,
    상기 원시요소를 상기 외부 프로세서로부터 상기 렌더링 프로세서로 전송하기 위한 시스템 버스(23)
    를 더 포함하는 장치.
  12. 상기 자체 동작 레지스터(212)는 상기 외부 프로세서(15)로부터 상기 렌더링 프로세서(115)로의 텍스처-매핑 커맨드의 전송을 제거하는(obviate)
    장치.
  13. 제10항에 있어서,
    상기 외부 프로세서(15)는, 상기 시스템 버스의 처리량을 최적화하기 위해, 상기 자체 동작 레지스터(212)와 관련된 각 텍스처-매핑 동작을 분리하여 수행하도록 상기 렌더링 프로세서를 동기적으로 제어하기 위한 수단을 포함하는
    장치.
  14. 제13항에 있어서,
    상기 외부 프로세서(15)는 기하학 처리 구성요소와 CPU 중 하나인
    장치.
  15. 제1 프로세서(15) 및 상기 제1 프로세서와 동작 가능하게 연결되어 상기 제1 프로세서(15)로부터의 데이터를 처리하도록 구성된 제2 프로세서(115)를 포함하는 다중 프로세서 컴퓨터 시스템에서, 상기 제2 프로세서와 결합된 커맨드 장치에 있어서,
    a. 상기 제1 프로세서로부터 데이터를 수신하기 위한 인터페이스(200);
    b. 상기 수신된 데이터에 대해 동작을 선택 가능하게 수행하기 위한 실행 수단(210,204,215,217); 및
    c. 상기 인터페이스로부터 데이터를 수신하고, 그러한 수신에 따라 상기 실행 수단이 상기 데이터에 대해 관련 동작을 수행하도록 하기 위해, 그 각각이 상기 제1 프로세서에 의해 독립적으로 주소지정 가능하고 하나의 동작과 관련된 다수의 자체 동작 데이터 레지스터(212)
    를 포함하는 장치.
  16. 제15항에 있어서,
    상기 제1 프로세서는 외부 프로세서(15)이고, 상기 제2 프로세서는 렌더링 프로세서(115)이며, 상기 시스템은, 상기 렌더링 프로세서에 동작 가능하게 연결되어 상기 렌더링 프로세서로부터 처리된 데이터를 수신하고 스크린 디스플레이의 순간 출현을 결정하기 위한 프레임 버퍼를 더 포함하고, 상기 선택 가능한 동작은 픽셀-처리 동작을 포함하고, 상기 처리된 데이터는 디스플레이 가능한 픽셀 값을 나타내는
    장치.
  17. 제16항에 있어서,
    상기 시스템은, 각각 연관된 값을 갖는 텍셀들의 어레이를 포함하는 적어도 하나의 밉맵을 저장하기 위한 수단을 더 포함하고,
    상기 렌더링 프로세서는 상기 저장 수단에 억세스하고,
    상기 선택 가능한 동작은, 저장된 밉맵의 식별, 픽셀 값과 가장 가까운 값을 가진 식별된 밉맵에서의 텍셀의 식별, 및 식별된 밉맵에서의 텍셀 사이의 보간을 포함하는
    장치.
  18. 제17항에 있어서,
    상기 장치는 다수의 밉맵을 저장하기 위한 수단을 포함하고, 상기 선택 가능한 동작은 밉맵의 선택 및 밉맵 사이의 보간을 더 포함하는
    장치.
KR1019970706211A 1995-03-06 1996-03-01 영상처리및디스플레이를용이하게하기위한장치 KR100421623B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/413983 1995-03-06
US08/413,983 US5649173A (en) 1995-03-06 1995-03-06 Hardware architecture for image generation and manipulation
PCT/US1996/002830 WO1996027857A1 (en) 1995-03-06 1996-03-01 Hardware architecture for image generation and manipulation

Publications (2)

Publication Number Publication Date
KR19980702804A KR19980702804A (ko) 1998-08-05
KR100421623B1 true KR100421623B1 (ko) 2004-07-16

Family

ID=23639466

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970706211A KR100421623B1 (ko) 1995-03-06 1996-03-01 영상처리및디스플레이를용이하게하기위한장치

Country Status (6)

Country Link
US (2) US5649173A (ko)
EP (1) EP0813721B1 (ko)
JP (1) JPH11505644A (ko)
KR (1) KR100421623B1 (ko)
DE (1) DE69602728T2 (ko)
WO (1) WO1996027857A1 (ko)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07281652A (ja) * 1994-04-07 1995-10-27 Sony Corp 画像処理装置
US5649173A (en) * 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation
US5903281A (en) * 1996-03-07 1999-05-11 Powertv, Inc. List controlled video operations
US5831638A (en) * 1996-03-08 1998-11-03 International Business Machines Corporation Graphics display system and method for providing internally timed time-varying properties of display attributes
US6285373B1 (en) * 1996-03-29 2001-09-04 3Dlabs Inc. Ltd. Method and apparatus for texture transmission and storage
US5793386A (en) * 1996-06-28 1998-08-11 S3 Incorporated Register set reordering for a graphics processor based upon the type of primitive to be rendered
US5828382A (en) * 1996-08-02 1998-10-27 Cirrus Logic, Inc. Apparatus for dynamic XY tiled texture caching
US6088062A (en) * 1996-10-29 2000-07-11 Sony Corporation Picture signal processing apparatus
US5889994A (en) * 1997-03-27 1999-03-30 Hewlett-Packard, Co. Method for cataloging graphics primitives by rendering state
US6184902B1 (en) 1997-04-30 2001-02-06 Hewlett-Packard Company Centralized branch intelligence system and method for a geometry accelerator
US5956047A (en) * 1997-04-30 1999-09-21 Hewlett-Packard Co. ROM-based control units in a geometry accelerator for a computer graphics system
US5995121A (en) * 1997-10-16 1999-11-30 Hewlett-Packard Company Multiple graphics pipeline integration with a windowing system through the use of a high speed interconnect to the frame buffer
US6333743B1 (en) * 1997-10-23 2001-12-25 Silicon Graphics, Inc. Method and apparatus for providing image and graphics processing using a graphics rendering engine
US6088701A (en) * 1997-11-14 2000-07-11 3Dfx Interactive, Incorporated Command data transport to a graphics processing device from a CPU performing write reordering operations
US6191793B1 (en) 1998-04-01 2001-02-20 Real 3D, Inc. Method and apparatus for texture level of detail dithering
US6163320A (en) 1998-05-29 2000-12-19 Silicon Graphics, Inc. Method and apparatus for radiometrically accurate texture-based lightpoint rendering technique
US6201546B1 (en) 1998-05-29 2001-03-13 Point Cloud, Inc. Systems and methods for generating three dimensional, textured models
US6230177B1 (en) 1998-06-12 2001-05-08 Silicon Graphics, Inc. Method and apparatus for performing fast fourier transforms
DE19835215C2 (de) * 1998-08-05 2000-07-27 Mannesmann Vdo Ag Kombinationsinstrument
US6573905B1 (en) 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
WO2000028518A2 (en) * 1998-11-09 2000-05-18 Broadcom Corporation Graphics display system
US7982740B2 (en) 1998-11-09 2011-07-19 Broadcom Corporation Low resolution graphics mode support using window descriptors
US6977649B1 (en) 1998-11-23 2005-12-20 3Dlabs, Inc. Ltd 3D graphics rendering with selective read suspend
US6222550B1 (en) 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US6373482B1 (en) 1998-12-23 2002-04-16 Microsoft Corporation Method, system, and computer program product for modified blending between clip-map tiles
DE19915308A1 (de) * 1999-04-03 2000-10-12 Daimler Chrysler Ag Verfahren zur zweidimensionalen Bildpunkt-Darstellung von Objekten auf einer Anzeigevorrichtung
US7721948B1 (en) * 1999-05-25 2010-05-25 Silverbrook Research Pty Ltd Method and system for online payments
US6747681B1 (en) * 1999-08-05 2004-06-08 International Business Machines Corporation Computer controlled interactive display with dual cursor image storage for a smooth transition during cursor image change
US6621918B1 (en) 1999-11-05 2003-09-16 H Innovation, Inc. Teleradiology systems for rendering and visualizing remotely-located volume data sets
US6549201B1 (en) * 1999-11-23 2003-04-15 Center For Advanced Science And Technology Incubation, Ltd. Method for constructing a 3D polygonal surface from a 2D silhouette by using computer, apparatus thereof and storage medium
JP3350655B2 (ja) * 2000-01-25 2002-11-25 株式会社ナムコ ゲームシステム及び情報記憶媒体
EP1136974A1 (en) * 2000-03-22 2001-09-26 Deutsche Thomson-Brandt Gmbh Method for processing video data for a display device
JP2002102532A (ja) * 2000-06-06 2002-04-09 Sony Computer Entertainment Inc 情報処理システム、方法、コンピュータプログラム、記録媒体、半導体デバイス
US7184059B1 (en) * 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US6763150B1 (en) * 2000-08-29 2004-07-13 Freescale Semiconductor, Inc. Image processing system with multiple processing units
US7079133B2 (en) * 2000-11-16 2006-07-18 S3 Graphics Co., Ltd. Superscalar 3D graphics engine
JP3548521B2 (ja) 2000-12-05 2004-07-28 Necマイクロシステム株式会社 半透明画像処理装置及び方法
US7039723B2 (en) * 2001-08-31 2006-05-02 Hinnovation, Inc. On-line image processing and communication system
US20030086595A1 (en) * 2001-11-07 2003-05-08 Hui Hu Display parameter-dependent pre-transmission processing of image data
US7849301B2 (en) * 2001-12-12 2010-12-07 Intel Corporation Providing a user input interface prior to initiation of an operating system
US7199793B2 (en) 2002-05-21 2007-04-03 Mok3, Inc. Image-based modeling and photo editing
US20040196282A1 (en) * 2003-02-14 2004-10-07 Oh Byong Mok Modeling and editing image panoramas
JP4056918B2 (ja) * 2003-04-03 2008-03-05 ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー 画像生成プログラム生成方法、画像生成プログラム提供装置、および画像生成プログラム提供システム
US7327374B2 (en) * 2003-04-30 2008-02-05 Byong Mok Oh Structure-preserving clone brush
US7075539B1 (en) * 2003-05-30 2006-07-11 Nvidia Corporation Apparatus and method for processing dual format floating-point data in a graphics processing system
US8063916B2 (en) 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US20060012602A1 (en) * 2004-07-15 2006-01-19 George Lyons System and method for efficiently performing automatic partial transfers of image data
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
KR100603601B1 (ko) * 2004-11-08 2006-07-24 한국전자통신연구원 다시점 콘텐츠 생성 장치 및 그 방법
US8416251B2 (en) * 2004-11-15 2013-04-09 Nvidia Corporation Stream processing in a video processor
US7657837B2 (en) * 2005-04-06 2010-02-02 Ericom Software Ltd. Seamless windows functionality to remote desktop sessions regarding z-order
US7512265B1 (en) 2005-07-11 2009-03-31 Adobe Systems Incorporated Merge and removal in a planar map of a raster image
US7515745B1 (en) * 2005-07-11 2009-04-07 Adobe Systems Incorporated Planar map to process a raster image
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
JP2007286082A (ja) * 2006-04-12 2007-11-01 Sony Computer Entertainment Inc 描画処理装置
DE102006025096B4 (de) * 2006-05-23 2012-03-29 Seereal Technologies S.A. Verfahren und Einrichtung zum Rendern und Generieren computer-generierter Videohologramme
US8683126B2 (en) * 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8884981B2 (en) * 2007-09-04 2014-11-11 Apple Inc. Dynamically reconfigurable graphics layer system and method
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9336752B1 (en) 2007-12-21 2016-05-10 Oracle America, Inc. Microprocessor including a display interface in the microprocessor
US8890876B1 (en) 2007-12-21 2014-11-18 Oracle America, Inc. Microprocessor including a display interface in the microprocessor
US8681861B2 (en) * 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) * 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) * 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
JP4776705B2 (ja) * 2009-03-06 2011-09-21 株式会社東芝 画像処理装置および方法
JP5419822B2 (ja) * 2010-07-23 2014-02-19 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像表示装置、画像処理方法、および画像ファイルのデータ構造
CN103080981B (zh) * 2010-08-27 2016-03-02 矽锂铬艺术有限公司 选择纹理映射水平的方法及利用该方法的材质贴图系统
CA2955444C (en) 2014-08-20 2019-05-28 Landmark Graphics Corporation Optimizing computer hardware resource utilization when processing variable precision data
US10282806B2 (en) * 2016-04-20 2019-05-07 Mediatek, Inc. Graphics Accelerator
US10628907B2 (en) * 2017-04-01 2020-04-21 Intel Corporation Multi-resolution smoothing
KR102549503B1 (ko) 2017-12-20 2023-06-30 삼성전자주식회사 저전력 상태에서 이미지들의 출력 타이밍을 동기화하기 위한 디스플레이 구동 회로

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155822A (en) * 1987-08-13 1992-10-13 Digital Equipment Corporation High performance graphics workstation

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1141468A (en) * 1979-06-15 1983-02-15 Martin J.P. Bolton Visual display apparatus
JPS58139241A (ja) * 1982-02-10 1983-08-18 Toshiba Corp 画像メモリアクセス方式
IL72685A (en) * 1983-08-30 1988-08-31 Gen Electric Advanced video object generator
US4586038A (en) * 1983-12-12 1986-04-29 General Electric Company True-perspective texture/shading processor
US4729098A (en) * 1985-06-05 1988-03-01 General Electric Company System and method employing nonlinear interpolation for the display of surface structures contained within the interior region of a solid body
US4888713B1 (en) * 1986-09-05 1993-10-12 Cdi Technologies, Inc. Surface detail mapping system
US4879668A (en) * 1986-12-19 1989-11-07 General Electric Company Method of displaying internal surfaces of three-dimensional medical images
US4905164A (en) * 1986-12-19 1990-02-27 General Electric Company Method for modulating color for effecting color cell texture
US5191642A (en) * 1987-04-09 1993-03-02 General Electric Company Method for efficiently allocating computer resource for real time image generation
US5361386A (en) * 1987-12-04 1994-11-01 Evans & Sutherland Computer Corp. System for polygon interpolation using instantaneous values in a variable
US5097427A (en) * 1988-07-06 1992-03-17 Hewlett-Packard Company Texture mapping for computer graphics display controller system
US5175806A (en) * 1989-03-28 1992-12-29 Computer Design, Inc. Method and apparatus for fast surface detail application to an image
US5367615A (en) * 1989-07-10 1994-11-22 General Electric Company Spatial augmentation of vertices and continuous level of detail transition for smoothly varying terrain polygon density
JP3024145B2 (ja) * 1989-07-12 2000-03-21 株式会社日立製作所 テクスチャマッピング方法
JPH0371277A (ja) * 1989-08-10 1991-03-27 Daikin Ind Ltd サーフェス・モデル描画方法およびその装置
US5369744A (en) * 1989-10-16 1994-11-29 Hitachi, Ltd. Address-translatable graphic processor, data processor and drawing method with employment of the same
CA2030022A1 (en) * 1989-11-17 1991-05-18 Brian M. Kelleher System and method for drawing antialiased polygons
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
US5222204A (en) * 1990-03-14 1993-06-22 Hewlett-Packard Company Pixel interpolation in perspective space
US5222205A (en) * 1990-03-16 1993-06-22 Hewlett-Packard Company Method for generating addresses to textured graphics primitives stored in rip maps
US5224208A (en) * 1990-03-16 1993-06-29 Hewlett-Packard Company Gradient calculation for texture mapping
US5012163A (en) * 1990-03-16 1991-04-30 Hewlett-Packard Co. Method and apparatus for gamma correcting pixel value data in a computer graphics system
US5179638A (en) * 1990-04-26 1993-01-12 Honeywell Inc. Method and apparatus for generating a texture mapped perspective view
US5146557A (en) * 1990-07-27 1992-09-08 General Electric Company User interface for a golf green and a golf putt modelling system
US5293480A (en) * 1990-08-06 1994-03-08 At&T Bell Laboratories High resolution graphics system architecture
US5333245A (en) * 1990-09-07 1994-07-26 Modacad, Inc. Method and apparatus for mapping surface texture
US5307450A (en) * 1991-02-19 1994-04-26 Silicon Graphics, Inc. Z-subdivision for improved texture mapping
US5230039A (en) * 1991-02-19 1993-07-20 Silicon Graphics, Inc. Texture range controls for improved texture mapping
US5278949A (en) * 1991-03-12 1994-01-11 Hewlett-Packard Company Polygon renderer which determines the coordinates of polygon edges to sub-pixel resolution in the X,Y and Z coordinates directions
US5187754A (en) * 1991-04-30 1993-02-16 General Electric Company Forming, with the aid of an overview image, a composite image from a mosaic of images
JP2959249B2 (ja) * 1991-11-15 1999-10-06 ソニー株式会社 映像効果装置
US5345541A (en) * 1991-12-20 1994-09-06 Apple Computer, Inc. Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device
US5274760A (en) * 1991-12-24 1993-12-28 International Business Machines Corporation Extendable multiple image-buffer for graphics systems
US5299309A (en) * 1992-01-02 1994-03-29 Industrial Technology Research Institute Fast graphics control system capable of simultaneously storing and executing graphics commands
US5377320A (en) * 1992-09-30 1994-12-27 Sun Microsystems, Inc. Method and apparatus for the rendering of trimmed nurb surfaces
TW317954U (en) * 1992-10-01 1997-10-11 Hudson Soft Co Ltd Image processing system including a processor side memory and a display side memory
BR9207171A (pt) * 1992-11-02 1995-12-12 3Do Co Processo para interpretar imagem gráfica em memória temporária de destino e em memória temporária de vídeo e meio que se pode ler por computador
US5649173A (en) * 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155822A (en) * 1987-08-13 1992-10-13 Digital Equipment Corporation High performance graphics workstation

Also Published As

Publication number Publication date
US5790134A (en) 1998-08-04
DE69602728T2 (de) 1999-09-30
EP0813721A1 (en) 1997-12-29
DE69602728D1 (de) 1999-07-08
US5649173A (en) 1997-07-15
JPH11505644A (ja) 1999-05-21
EP0813721B1 (en) 1999-06-02
WO1996027857A1 (en) 1996-09-12
KR19980702804A (ko) 1998-08-05

Similar Documents

Publication Publication Date Title
KR100421623B1 (ko) 영상처리및디스플레이를용이하게하기위한장치
US6816161B2 (en) Vertex assembly buffer and primitive launch buffer
US8395619B1 (en) System and method for transferring pre-computed Z-values between GPUs
US7405735B2 (en) Texture unit, image rendering apparatus and texel transfer method for transferring texels in a batch
US6975317B2 (en) Method for reduction of possible renderable graphics primitive shapes for rasterization
US6859209B2 (en) Graphics data accumulation for improved multi-layer texture performance
US6151029A (en) Texture mapping with improved technique for selecting an appropriate level in filtered representations of the texture
US20030160793A1 (en) Synchronizing data streams in a graphics processor
US6867778B2 (en) End point value correction when traversing an edge using a quantized slope value
US6943791B2 (en) Z-slope test to optimize sample throughput
US6963342B2 (en) Arbitration scheme for efficient parallel processing
EP0890925A2 (en) Computer system including a three-dimensional graphics accelerator which includes improved texture mapping capabilities
US7145570B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
US6900803B2 (en) Method for rasterizing graphics for optimal tiling performance
US6819320B2 (en) Reading or writing a non-super sampled image into a super sampled buffer
US6927775B2 (en) Parallel box filtering through reuse of existing circular filter
US20030169261A1 (en) Stalling pipelines in large designs
US6895458B2 (en) Opcode to turn around a bi-directional bus
US6847372B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
US6847368B2 (en) Graphics system with a buddy / quad mode for faster writes
US6831645B2 (en) System and method for performing font operations when background color is transparent
US20030169255A1 (en) Two-sided lighting in a single pass
US7825935B1 (en) System, method and computer program product for using textures as instructions for graphics processing
EP1306811A1 (en) Triangle identification buffer

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20130131

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 12

EXPY Expiration of term