KR19980702804A - 영상 생성 및 조작을 위한 하드웨어 아키텍처 - Google Patents

영상 생성 및 조작을 위한 하드웨어 아키텍처 Download PDF

Info

Publication number
KR19980702804A
KR19980702804A KR1019970706211A KR19970706211A KR19980702804A KR 19980702804 A KR19980702804 A KR 19980702804A KR 1019970706211 A KR1019970706211 A KR 1019970706211A KR 19970706211 A KR19970706211 A KR 19970706211A KR 19980702804 A KR19980702804 A KR 19980702804A
Authority
KR
South Korea
Prior art keywords
processor
data
rendering processor
pixel
cpu
Prior art date
Application number
KR1019970706211A
Other languages
English (en)
Other versions
KR100421623B1 (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

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

영상 생성 및 조작을 위한 하드웨어 아키텍처
강력한 컴퓨터 장치의 광범위한 이용가능성은, 디지털 형태로 표현될 수 있는 영상상세(image detail) 및 공간 정보의 양을 급속히 증대시켜왔다. 이전의 시스템에서 영상은 바이레벨(bi-level) 값의 비트 맵(bit map) 래스터(raster) 방식으로 저장되는 반면, 최신의 영상 생성 및 조작 시스템은, 각 영상 픽셀(picture element, pixel)이 거대한 색채 팔레트(palettes) 및 광도(luminance) 등으로부터 엔트리를 특징지우는 하나 또는 그 이상의 바이트에 의해 표현되는 멀티레벨(multi-level)의 픽맵(pixmap)을 사용한다.
정교한 시스템에서 디지털 방식으로 표현되는 영상 - 또한, 선, 다각형 및 원과 같은 사용자 정의 그래피컬 구성요소를 포함할 수 있는 -은 광스캐너(주로 영상의 경우) 또는 사용자가 제공하는 기하학적 명세(specification)(그래픽 구성 요소의 경우)로부터 비롯된다. 시스템은 래스터 영상 프로세서 하드웨어 또는 소프트웨어를 사용하여, 입력 정보를 적당한 컬러 값을 가지면서 집합적으로 영상을 나타내는 픽셀의 영상형태의(imagewise) 어레이 또는 래스터로 스캔변환한다. 이차원 래스터 기하학은 영상의 디스플레이 가능한 폭과 높이에 상응하는 반면, 어레이 내의 각 픽셀과 관련된 비트 수는 깊이(depth)로 일컬어진다. 래스터는 출력 장치에 순간적으로 디스플레이되는 영상을 결정하는 내용을 담고 있는 프레임 버퍼(fram buffer)라 불리우는 컴퓨터 메모리 부분에 저장된다.
통상적으로, 사용자는, 사용자 커맨드에 응답하여 각 픽셀 값을 조작하는 하이레벨 응용 소프트웨어(디자인 프로그램과 같은)를 통해 프레임 버퍼의 억세스를 얻는다. 예를 들어, 비교적 간단한 컴퓨터 시스템에서도 이용가능한 영상 생성 및 조작 소프트웨어는 사용자가 래스터화된 영상을 변경, 회전 및 선형적으로 스케일링(scaling)할 수 있게 한다. 이러한 프로그램은 픽맵에 의해 정의된 직사각형 영역 내에 적합한 그래픽 및 영상 구성요소를 클립하여, 즉 그 영역 밖으로 떨어져 나간 부분(예를 들어, 사용자 조작의 결과로서)은 만들어지지 않는다(비록, 그들이 오버플로우 버퍼에 저장되어 있을지라도). 또한, 그것들은 다양한 필터링(filtering) 동작을 위해 제공될 수 있어, 필터링 동작은 원하는 결과(예를 들어, 스캔변환으로부터 생길 수 있는 스테어케이싱(staircasing) 효과를 완만하게 하는)를 얻기위해 수학적으로 픽셀 값을 처리한다.
영상-렌더링 작업이 소프트웨어 모듈(메인 CPU 또는 CPU에 의해 수행되어지는) 및 영상 렌더링에 독점적으로 전용되어지는 전문 하드웨어 요소들 사이에서 분배되는 방식은, 요구되는 성능의 정도에 달려있다. 컴퓨테이션적(computationally)으로 가장 요구되는 작업은 3차원적 관계를 반영하는 방식에서 영상 구성요소의 조작을 수반한다. 예를 들어, 디자인 프로그램이 사용자에게 3차원에서 구를 회전할 수 있게끔 한다면, 그 프로그램은 비록 그 구의 전체 표면 내용(content)의 한 부분만이 어느 한 순간에 가시적으로 존재할 지라도, 그 전체 내용의 컴퓨테이션적(computational)인 인식(awareness)을 유지해야만 한다. 원근의 문제 또한 야기되는데, 이는 3차원적 조작이 사용자에게 주어지는 절대적인 내용뿐만 아니라 그것의 렌더된 원근도 영향을 주기 때문이고, 이들은 큐브(cubes)와 같은 날카로운 그래픽 대상에 대해 상당히 가시적이다. 사용자의 보는 지점이 주어져 가시적인 영상 부분이 이해되도록, 내용의 조작은 그러한 대상의 각 픽셀에 대한 수학적 강도의 기하학적 변환의 어플리케이션(application)을 요구한다. 최대 성능을 요구하는 시스템에서, 메인 CPU의 처리부담을 덜고 시스템 버스에서의 소통량을 줄임으로써, 이러한 동작들은 직접적으로 프레임 버퍼를 조작하는 고속 전용 하드웨어 구성요소에 의해 수행되어지는데, 성능면에서 시간보다 비용 효과를 강조하는 저급 시스템에서, 컴퓨테이션은 적절한 소프트웨어 명령어에 따라 메인 CPU에 의해 수행되어지고, CPU는 프레임 버퍼의 내용을 조작한다.
가장 진보된 디자인 시스템은, 사용자 선택에 순응하도록 물체표면에 대응하는 픽셀의 값을 변경하면서 3차원 물체의 표면 출현(appearance) 상에서 사용자 제어를 제공한다. 예를 들어, 비추인 표면의 특성 뿐만 아니라 조도(illumination)의 방향과 질은 물체의 시각 출현을 결정하고, 이러한 파라미터은 획득될 수 있어, 조도 모델을 사용하여 렌더된 물체에 컴퓨테이션적으로 적용될 수 있다. 또한, 디자인 시스템은 또한 사용자로하여금 텍스처 매핑(texture mapping)으로 알려진 기술을 사용하여 다른 간단한 표면에 시각상세를 가산(또는 존재하는 표면 상세를 새로운 디자인이나 영상으로 대체)할 수 있게 한다. 이러한 내용에 있어서, 용어 텍스처는 간단한 표면 패턴 보다 오히려 영상과 같은 표면상세의 어떠한 형태라도 광범위하게 의미한다. 이 기술을 사용하여 사용자는, 픽맵으로서 표현되어져 텍스처 맵으로 알려진 디지털 방식의 샘플 픽쳐(picture) 또는 3차원적으로 렌더된 대상의 지정된 표면에 적용되어지는 텍스처를 구체화한다. 영상화 시스템은 연속되는 공간 변환을 이용하여 텍스처를 적용하는데, 먼저, 3차원적 공간에 나타낼 때, 텍스처를 대상의 수학적 표현에 적용하여, 출력 스크린을 나타내는 픽맵의 위에 대상의 가시적 표면을 투영한다. 다시 말해, 이러한 표면 조작 동작은 전용 하드웨어 구성요소, 또는 소프트웨어 명령어에 따른 메인 CPU에 의해 통상적으로 수행된다.
다양한 영상 생성 및 조작 함수의 실행을 위한 하드웨어와 소프트웨어 해결책 사이의 양분(dichotomy)은 극도로 빠른 응답 시간을 특징으로하는 값비싼 고급 시스템과 실질적으로 좀더 느리게 수행되는 값싼 저급 시스템 사이의 광범위한 차이에 기여한다.
본 발명은 디지털 영상 생성 및 조작에 관한 것으로서, 특히 디지털 방식으로 표현된 영상 및 그래픽스의 고속 조작 및 조합을 용이하게 하는 하드웨어 아키텍처에 관한 것이다.
도1은 본 발명을 위한 대표적인 컴퓨테이션적 환경을 도시한 개략도.
도2는 본 발명의 토폴로지의 구성요소 및 작용을 도시한 개략도.
도3은 본 발명의 렌더링 프로세서의 내부 구성요소를 도시한 개략도.
도4는 슬레이브 모드에서 삼각형의 반전 스캔되는 방식을 도시한 도면.
본 발명은, 영상 렌더링 함수가 하드웨어에 의해 주로 수행되어지고, 소프트웨어 구현에 주로 의지하는 시스템 사이의 차를 메어주는 하드웨어 아키텍처를 제공한다. 본 발명의 아키텍처 또는 시스템 토폴러지는, 상대적으로 저가에 제조될 수 있고, 메인(또는 호스트) CPU를 영상 생성 및 조작에 관련된 가장 번거로운 컴퓨테이션으로부터 구제해 주기 위해서 뿐만 아니라, 영상 관련 버스 트랜잭션(transaction)를 최소화하기 위해 서로 상호작용하는 구성요소들을 활용한다. 본질적으로, 본 발명은 주로 소프트웨어 모듈로서 구현된 시스템에 하드웨어 지원(support)을 제공한다. 또한, 본 발명은 부가적인 수용 능력이 첨가될 수 있는 확장가능한 하드웨어 플랫폼(platform)을 제공하여, 시스템 설계자에게 소프트웨어와 하드웨어 기능성의 최적 혼합을 선택할 수 있는 능력을 준다.
일 측면에서, 본 발명은 프레임 버퍼에서 픽셀 값의 조작을 관리하기 위해 독점적으로 전용된 집적 회로를 포함한다. 이 렌더링 프로세서는 원시요소(primitives)를 그리고,(즉, 그래픽 원시요소의 스캔 변환을 수행) 픽셀 동작을 수행하며, 그 시스템의 디스플레이 타이밍을 생성하고, 프레임 버퍼를 제어하는데 이 모두는 호스트 CPU에 의해 렌더링 프로세서로 운반되는 데이터 및 커맨드에 응답하여 이루어진다. 바람직하게, 렌더링 프로세서의 레퍼토리(repertoire)는 그래픽 원시요소의 스캔 변환을 포함하여, 이 작업으로부터 호스트 CPU를 구제하고, 버스 대역폭 필수요소를 상당히 감소시킨다. 본 발명의 이러한 측면에 따라 호스트 CPU(또는 다른 외부의 처리 엘리먼트(element))는 채광 및 텍스처 매핑에 관련된 기본적인 컴퓨테이션을 수행한다. 이러한 컴퓨테이션은 미가공(raw)된 픽셀 값을 야기하는데, 렌더링 프로세서가 프레임 버퍼에 그려지는 최종 값들로 그 픽셀 값을 리파인(refine)한다. 호스트 CPU와 같은 처리 구성요소는 단지 렌더링 프로세서를 통해서만 프레임 버퍼 억세스를 얻는다.
렌더링 프로세서(다른 하드웨어 또는 소프트웨어 구성요소가 아닌)에 의해 수행되는 픽셀 처리의 정도는 원하는 시스템의 수용능력에 따라 변할 수 있다. 최소한, 렌더링 프로세서는 호스트 CPU, 기하학적 프로세서 또는 다른 고성능 그래픽 프로세서로부터 수신된 커맨드에 응답하여 프레임 버퍼에 픽셀을 그릴 수 있는데, 이것은 X, Y 값 또는 CPU에 의해 제공되는 기하학적 명세로부터 프레임 버퍼에서 실제 픽셀 주소를 컴퓨팅하는 것을 수반한다. 또한, 바람직하게 렌더링 프로세서는 아울러 엔드포인트(end-point) 좌표 또는 그들과 등가의 것으로부터 개개의 픽셀 값을 결정하는 보간 동작을 수행한다. 또한 렌더링 프로세서는, 엔티어라이싱(antialiasing) 및 디더링(dithering), 알파 블렌딩(alpha blending), Z-버퍼링, 포그(fog) 컴퓨테이션(포그를 시뮬레이션하기 위해 픽셀 영상에 화이트(white)를 부가하여 깊이큐잉(depth cueing을 제공하는), 윈도우 또는 다른 경계에 대한 클리핑(clipping), 영상의 이중 버퍼링(즉, 이전에 생성되어 현재 디스플레이된 영상을 메모리에서 유지하는 동안 어떤 영상을 생성하는), 및 텍스처 맵 처리와 같은 수학적 동작 및 특정 처리 알고리즘을 수행하기 위한 능력이 제공될 수 있다. 다시말해, 렌더링 프로세서에 제공되어지는 기능성은 소프트웨어 또는 다른 하드웨어로부터 특정 기능을 철회한 상대적 이득(경제적,시간적 성능면에서)에 의존하고, 이상적 선택은 메인 시스템 버스를 통한 처리량을 최대화하고, 대기시간을 최소화할 것이다.
이 배열의 한가지 변화에 있어서, 그 시스템은 사용자 지정 채광 파라미터에 따라 디스플레이된 영상 또는 그래픽 대상에 음영을 주기 위한 하나 이상의 조도 모델을 구현하는 개별 프로세서를 포함한다. 이 라이터(lighter) 또는 기하학 프로세서는 렌더링 프로세서와 직접 통신하는데, 프레임 버퍼를 직접 억세스하지 않는다.
본 발명의 다른 측면에서, 렌더링 프로세서는 특정 커맨드와 각각 관련된 일련의 자체 동작 레지스터(self-actuating register)를 포함한다. 이러한 레지스터 중 어떠한 레지스터에 데이터를 주소지정하고 기록함으로써, 호스트는 그 특정 레지스터에 관련된 커맨드의 수행을 함축적으로 구체화한다. 특별히 바람직한 실시예에 있어서, 본 발명은 렌더링 프로세서 내의 상응하는 다수의 레지스터와 관련된 명령어의 한정된 집합들로 텍스처-매핑 동작을 분해한다.
본 발명의 또다른 측면에서, 바람직하게, 본 발명의 렌더링 프로세서는, 슬레이브(slave) 모드를 제공하여, 렌더링 프로세서의 드로잉(drawing) 하드웨어는 외부 프로세서(예를들어, 호스트 CPU 또는 라이터 프로세서)에 의해 동기적으로 제어되어지는 외부 하드웨어가 관련 컴퓨테이션(예를 들어, 텍스처 매핑을 위한)을 수행하는 동안 렌더링 프로세서는 스캔변환 과정을 통해 단일단계를 진행한다(single-steps). 이러한 방법으로 렌더링 프로세서 동작을 외부 프로세서에 동기시킴으로써, 렌더링 프로세서가 연속적이고, 파이프라인된 원리에 기반한 이러한 컴퓨테이션의 결과를 활용하고, 프레임 버퍼 데이터와 관련된 것과 같은 또다른 컴퓨테이션의 집합을 제공하는 동안 본 발명은 외부 프로세서가 복잡하고, 컴퓨테이션적인 강도 렌더링(예를 들면, 텍스처 매핑) 컴퓨테이션의 하나의 복소집합을 수행함에 의해 효과적으로 최적화된 배열을 제공한다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 살펴본다.
먼저, 도1을 참조하면, 그래픽 및 영상 렌더링 어플리케이션에 대한 일반화된 하드웨어 환경을 도시한 것으로서, 도시된 컴퓨터 시스템은 메인 시스템 메모리(17)와 그 구성요소 상에서 동작하고 서로 상호작용하는 호스트 CPU(15)를 포함한다. 일반적으로 시스템 메모리(17)는, 정보의 임시 저장을 휘발성 또는 랜덤 억세스 메모리(Random Access Memory, RAM)와, 기본 컴퓨터 운영체제(operating system) 및 그래피컬 사용자 인터페이스(GUI, 도면 부호 19에 함께 표시된) 부분을 포함한다. 또한, 시스템은 컴퓨터의 구성 및 기본 운영체제의 부가적인 부분을 영구적으로 저장하기 위한 읽기 전용 메모리(Read Only Memory, ROM)와, 적어도 하나의 하드 디스크 및 CD-ROM 드라이브와 같은 대용량 저장 장치(21)를 포함한다. 시스템의 모든 구성요소는 양방향성 시스템 버스(23)를 통해 통신한다.
통상적으로 사용자는, 적어도 일부분들이 시스템 메모리(17)내에 존재하는 하나 또는 그 이상의 어플리케이션 프로그램(27)을 실행할 때, 하나 또는 그 이상의 입력 장치(25)(예를 들어, 키보드, 마우스, 자료를 읽고 그 내용을 디지털화하는 광스캐너 등)에 의하여 시스템과 상호작용한다. 여기에 사용되는 것처럼, 용어응용 프로그램은 사용자에게 중요한 정보 처리를 하고, 그래픽 또는 영상 생성 또는 조작 동작에 관련된 방식에서 정보를 제공하기 위한 기능성의 일부로 광범위하게 언급되는데, 이러한 용어들은 논의의 간편함을 위해 서로 바꾸어 사용되어질 수 있다. 출력은 디스플레이(30)에 나타내어진다. 디스플레이(30)의 순간적으로 한 픽셀 씩 나타나는 출현은 메인 시스템 메모리(17)(메모리(17)로부터 따로 구현되어질 수 있음에도 불구하고)의 부분으로서 도시된 프레임 버퍼(32)의 내용에 의해 결정되어진다.
시스템은 그래픽 또는 영상-렌더링 동작에 전문적으로 사용되는 많은 구성요소를 포함한다. 운영체제(19)는 입력 영상(기하학적 대상으로서 정의되어진)을 영상 점, 선 및 다각형(그것들의 정점에 의해 정의되어지는)과 같은 그래픽 원시요소로 분해하고, 부호화된 그래픽스 명령어(예를 들어, PostScriptTM커맨드)의 해석과 같은 기본 프리-렌더링 기능을 수행하는 그래픽 부시스템(35)을 포함하는데, 이러한 기능성들은 역시 어플리케이션(27)과 공유되어질 수 있다. 또한, 전형적인 저급 시스템은 대표적으로 도면 부호 37에 표시된, 더욱 진보된 영상 생성 기능을 구현하는 소프트웨어 모듈을 포함한다. 통상적으로 소프트웨어(37)는 그래픽 시스템(35)에 의해 생성된 원시요소를 실제 픽셀 값 및 주소로 스캔 변환을 수행하는 래스터 영상 프로세서(RIP)와, 색상, 투명성(오버래핑 물체를 서로 잘 차단하기 위한) 및 물체 상호 통신능력과 같은 픽셀 속성을 할당하기 위한 모듈을 포함하고, 또한, 사용자가 물체의 방향을 변경할 때 렌더된 물체의 기하학적 변환을 수행하는 모듈, 프리필터링과 및/또는 포스트필터링을 위한 모듈, 및 채광 컴퓨테이션 및 텍스처 매핑을 위한 모듈들을 포함할 수 있다. 소프트웨어 모듈(17)은 불연속적이고, 독립적으로 수행가능한 소프트웨어 엔티티(entity) 또는 어플리케이션(27)과 관련된 기능성 또는 그것의 몇몇 결합을 표현할 수 있다. 통상적으로, 모듈(17)은 이중 버퍼링, 텍스처 매핑 등과 같은 기능을 구현하기 위해 일련의 메모리 버퍼(39)와 상호작용한다. 전술한 모든 처리 동작은 종래 기술에서 특징지워지며, 그들을 구현하는 소프트웨어는 이미 이용가능하다. 다소 한정된 픽셀 하드웨어(예를들어, Video Graphics Array,VGA)가 보통 현재 저급 시스템에서 채용되고 있다.
고급 시스템에서, 그래픽 시스템(35)에 의해 사실상 수행되어지지 않는 모든 그래픽스 및 영상 렌더링 동작에 대한 이행능력은 대표적으로 도면 부호 40에 도시된 전용 하드웨어에 맡겨져 있다. 여러개의 개별 집적 회로 프로세서로 이루어지는 이러한 디스플레이-제어 하드웨어는 프레임 버퍼(32)에 직접적으로 작용하게 연결되어진다. 따라서, 하드웨어(40)과 프레임 버퍼(32) 사이의 읽기 및 쓰기 동작은 버스(23)에 관계없이 발생한다. 또한, 하드웨어(40)는 다양한 버퍼(39)에 직접 억세스할 수 있다.
도2는 비용면에서 효과적인 2차원 및 3차원 그래픽 렌더링을 위하여, 소프트웨어 및 하드웨어 구성요소 사이에서의 영상화 및 그래픽 기능성 할당을 쉽게하기 위한 본 발명의 토폴러지를 도시한 도면이다. 이러한 아키텍처에서, 메인 시스템 버스(23)는 트랜잭션의 좀더 집중된 형태를 수반하는 한 쌍의 버스(110,112)로 대체되어진다. CPU(15)와 시스템 메모리(17)를 연결하는 CPU-메모리 버스(110)는 시스템 버스(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)가 생략된다면, 그들의 기능들은 메모리(17)에 저장된 명령어에 따라 렌더링 프로세서(115), CPU(15) 또는 그들의 몇몇 조합에 의해 수행되어진다. 아직까지 RAM으로 구현되어지기는 하지만, 프레임 버퍼(32)는 CPU(15)에 의해 주소지정 가능한 시스템 메모리(17)의 구성요소에서 취소되어지며, 그것의 내용은 렌더링 프로세서(115)에 의하거나 렌더링 프로세서(115)를 통해 단독으로 결정되어 조작되어진다. 다시 말해, 디스플레이(30)에 존재하는 식별가능한 특징은 프레임 버퍼(32)의 순간적인 내용을 반영한다.
텍스처 프로세서(119)의 동작 및 렌더링 프로세서(115)와 관련한 그 관계는 텍스처 매핑의 문맥(context)에서 잘 이해되어진다. 앞서 지적된 바와 같이, 이 동작은 경계가 되는 그래픽 표면적에 시각적 상세를 부가하는데 사용된다. 그 시각적 상세는, 텍스처 맵은 버퍼(39)(또는 프레임 버퍼(32))에 존재하는 전형적인 2차원 영상인 하나 이상의 사용자-선택 텍스처 맵이 근원이 되며, 영상 생성 및 조작 시스템은 통상 다수의 선택가능한 텍스처 맵을 제공하고, 사용자의 선택에 따라 대용량 저장 장치(21)에서 버퍼(39)로 다운로드되어질 수 있는 많은 것들을 부가하도록 허용한다.
선택적으로, 프로세서(117, 119)는 프로세서(115)와 직렬 연결로 결합될 수 있고, 또는 프로세서 (117,119)의 기능들이 결합되어 질 수 있다.
픽셀 또는 텍스처 맵의 텍셀(texels)은 u,v 좌표축에 의해 식별되는 각 텍셀로 v 어레이에 의해 u로서 정의되어진다. 텍셀을 3차원 물체(즉, 보는 사람의 시각 라인으로 평면 상태 위로 대상을 투영)를 표현하는 그래픽 표면에 적용하기 위해, 텍셀은 수학적으로 정의된 물체의 3차원 표면에 먼저 사상되어져, 이 표면은 x,y 좌표축에 의해 정의된 원시요소 또는 영상을 형성하기 위해 출력 스크린 위에 투영되어진다.
텍스처 맵이 적용된 출력 스크린(즉, 프레임 버퍼(32))위의 하나의 픽셀은 텍셀 사이에서 가중 및 가산이 필요한 다수개의 텍셀로부터 유도되어질 수 있다. 특정 픽셀에 상응하는 텍셀들의 수는 텍스처 맵과 3차원 물체 표면 사이의 기하학적 관계에 달려 있다. 텍스처가 비스듬히 뒤쪽으로 기울어진 접지면에 사상되어지는 것과 같은 극단적인 경우에 있어서, 극히 많은 수의 텍셀이 단일 접지-면 픽셀에 텍스처하기 위해 가중되어 가산되어져야만 할 때 상기 처리는 매우 비능률적일 수 있다. 그러한 문제들을 극복하기 위하여, 다양한 프리필터링 구조가 고안되어 지고 있다. 이러한 것들은, 전형적으로 다해상도(multi-resolution) 데이터 구조로서 텍스처 맵을 표현하는 것을 포함하는데, 감소하는 해상도에서 영상의 계층을 형성하기 위하여 원래의 텍스처 맵을 연속적으로 대역 제한하고 부샘플링함으로써 생성되어질 수 있다. 좀 더 조잡한 텍스처 맵은 그것이 프리필터되어지기 때문에 덜 사용되어지고 있다. 그리고, 텍스처 프로세서(119)는 그 텍스처 맵에 적절한 기하학적 고려에 기초하여 주어진 표면 점에 어떠한 텍셀을 적용할 지를 결정하는데, 전반적인 목표는 최종 영상의 해상도를 위해 최소의 희생으로 처리 효율성을 최대화하는 것이다. 대표적으로, 어플리케이션 프로그램은 이러한 경쟁적 파라미터들에 주어지는 관련 가중치들을 구체화한다.
그러한 프리필터링의 근접은 컬러 텍스처-맵 영상을 밉맵(mip map)이라 불리우는 피라미드 메모리 조직으로 분해되는 것과 관련된다. 밉(mip)이라는 용어는 좁은 곳에서 많은 것이라는 의미의 라틴 구절 multurn in parvo에서 유래된다. 이 구조에서, 다양한 피라미드 레벨은 원래의 소스 영상의 다양한 해상도에 대응하고, 레벨의 수는 레벨 사이의 3차 보간법(블렌딩)에 의해 확장되어질 수 있는데, 마지막 텍셀 값은 u,v 및 d 좌표축에 의해 정의되어진다. 여기서 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 = 다른 물체에 관련한 픽셀의 깊이 (차단 관계를 위해)
r,g,b = 빨강/파랑/녹색 컬러 공간에서의 픽셀 컬러 값
α = 투명성 또는 픽셀-커버리지(coverage) 값
F = 포그 값
T = 텍셀 값
전형적으로, z값은 렌더링되어질 각 원시요소에 부합하여 분리된 Z-버퍼에 저장되고,(즉, 버퍼(39) 중 하나) 렌더링 프로세서(115)는 원시요소가 얻어진 대상에 부합하는 값에 기초한 스캔 변환 과정에서 각 픽셀의 z값을 결정한다. 그리고 z값은 다른 물체와 관련한 그 깊이를 가리킨다. x,y 픽셀에 할당되는 최종 값들은 원시요소에서 해당 포인트의 r,g,b값과 그것의 z값 및 α와 F값과 관련된 것들에 의존한다. 텍스처 매핑의 경우에 각 원시요소는 일반적으로 대부분 하나의 연관된 텍스처 맵 또는 밉맵의 한 세트를 가진다. 텍스처링의 편의 도모를 위해, 각 픽셀 렌더링 프로세서(115)는 r,g,b값을 프레임 버퍼(32)로부터, z 값을 Z -버퍼로부터 읽어들이고, 그리고 텍스처 프로세서(119)에 의해 제공되어지는 하나 이상의 텍셀 값들을 읽어, 보간법과 블렌딩을 통해 이것을 합쳐 최종 픽셀값으로 만든다. 또한, 렌더링 프로세서(115)는 보간된 소스 r,g,b,z와 F 값을 사용한다.
프로세서(115)의 일실시예의 내부 구조가 도3에 도시되어 있다. 픽셀 입/출력유니트(Pixel input/output unit, 이하 PIOU라 함) 기능 블록(200)은 픽셀 데이터를 프레임 버퍼(32)로부터 읽고, 픽셀 데이터를 프레임 버퍼(32)에 쓰기 위해 CPU(15)가 데이터와 커맨드를 프로세서(115) 및 읽기 및 쓰기 레지스터로 보내도록 하는 프로세서 인터페이스를 제공한다. 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)는 상당히 파이프라인되어 있고, 동작되어지는 것과 관련된 데이터를 프리페치하고, 페치되어 만들어지거나 수정된 이후의 데이터를 버퍼링하며, 프레임 버퍼(32)로 쓰기를 하기 위해 데이터를 저장한다. APATH(210)는 일련의 커맨드 레지스터를 포함하는 다수개의 레지스터(212)를 포함하며, 이 커맨드 레지스터의 이름은 커맨드 기능과 연관되어 있어, 이러한 레지스터에 값을 쓰는 것은 그 연관된 기능의 순서화된 실행을 유발한다.
각 그려진 픽셀을 위하여, APATH(210)는 가공되지 않은(raw) 픽셀 데이터를 컬러 (r,g,b), α, F 및 z값을 보간하는 보간(IPOL) 블록(215)으로 보낸다. IPOL(215)은 보간된 값을 수정(PIXMOD) 블록(217)으로 패스하는데, 상기 수정(PIXMOD) 블록(217)은 IPOL(215)로부터 나온 커맨드에 응답하여, 논리적 동작, 알파 블렌딩, 텍스처 필터링과 블렌딩 및 플레인 매스킹과 같은 픽셀 수정 동작을 수행한다. PIXMOD(217)는 처리된 값을 APATH(210)으로 되돌린다. 프레임 버퍼(32)에서부터 또는 프레임 버퍼(32)로의 데이터 소통량은, 실제적인 프레임 버퍼 읽기/쓰기 동작을 수행하고 프레임버퍼 메모리를 리프레쉬하는 프레임 버퍼 인터페이스(220)에 의해 조절된다. 도면에서는 도시되지는 않았지만, 입/출력 시스템(예를 들어, BIOS) 롬 칩과 관련된 보드상의 디바이스, 시스템을 위한 스크린 타이밍(공백 및 싱크(sync))을 생성하기 위한 디스플레이 컨트롤러 및 비디오(예를 들면, NTSC 캡쳐) 기능성 연결로서 스테이플(staple) 인터페이스 구성요소가 있다.
SSC(204)는 이차원 및 삼차원 원시요소의 표준 세트를 인식하고 그와 연관된 다양한 실용 기능을 수행한다. 대표적인 일실시예에서, 실용 기능들은, CPU(15)로부터의 커맨드들에 의해 동작가능하고, FIFO(202), 버퍼 동작 및 모드 세팅을 경유해 레지스터 내용을 I/O 버스(112)의 패스를 포함한다. 원시적인 동작들은, 프레임 버퍼(32)의 하나 이상의 스크린-정렬 직사각형의 소스 영역으로부터 데이터를 그 프레임 버퍼의 스크린-정렬 목표 영역으로의 비트-블록 이동(BitBlts), 고정된 컬러 값을 가지는 스크린 정렬 다각형을 채우는 필(fill) 동작, SSC(204) 내에 있는 클리핑 경계 레지스터에 저장되어진 데이터를 사용하는 직사각형의 윈도우 클리핑, 고안된 일련의 픽셀에 의해 만들어진 패턴을 정의되고 경계지어진 영역으로 타일링(tiling)하는 것과 같은 패터닝 래스터 동작, 정의된 소스 픽셀 블록의 신장(stretching) 및 축소(shrinking), Bresenham 선의 드로잉; 및 점,선,스팬(spans) 및 채워진 영역을 포함하는 삼차원적인 원시요소을 드로잉을 포함한다.
렌더링 프로세서(115)는 CPU(15), 라이터 프로세서(117) 또는 텍스처 프로세서(119)와 같은 외부 프로세서에 의해 SSC(204), APATH(210), IPOL(215) 및 PIXMOD(217)의 동기화된 제어가 가능하도록 구성되어진다. 이러한 모드에서, 렌더링 프로세서(115)는 스캔-변환 과정을 통해 단일 스테핑하는 외부 프로세서 요소를 제어하는 타이밍에 종속적(slave)이다. 이 슬레이브-모드(slave-mode) 코-스캐닝(co-scanning) 수용능력은 스캔 변환은, 텍스처 프로세서(119)(또는 CPU(15))에 의해 요구된 텍스처-매핑 컴퓨테이션의 성능에 맞춰질 수 있다는 점에서, 텍스처 매핑 동작의 문맥(context)에서 특히 유용하다. 더욱이, 슬레이브-모드 동작은 자체 동작 커맨드 레지스터(self-actuating command register)로부터 특별한 잇점을 유도한다.
슬레이브-모드 동작은 렌더링 프로세서(115)에 고가의 텍스처-처리 하드웨어를 갖추거나, 또는 모든 렌더링 작업을 상대적으로 느리고 높은 부담의 소프트웨어에게 할당하는 대신에, 다른 프로세서 요소 사이에서 처리 부담의 최적 분할을 돕는다. 이러한 작업은 다양한 시스템 구성요소의 성능 특성을 인식하는 방식으로 분산되어진다. CPU(15)(또는 프로세서(117 또는 119))는 그려질 요소를 그리거나 그리지 않는 단계들로 분해함으로써 원시요소들을 생성하는데, CPU(15), 기하학 프로세서(117) 또는 텍스처 프로세서(119)는 얼마간의 스캔-변환 컴퓨테이션 뿐만 아니라 텍스처-매핑 컴퓨테이션을 수행하고, 제공되어진 동작(후술되는 것과같은) 중 하나의 수행을 야기하기 위해, 레지스터(212) 중 다양한 것들에 그 결과가 제공되어진다. 렌더링 프로세서(115)는 원시요소를 픽셀 위치로 번갈아 변형하고, 전술한 바와같이, 한 픽셀씩 스캔 변환을 수행하고, 그 픽셀에 어떤 고안된 텍스처 필터링 및 블렌딩 동작을 수행하며, 그 결과를 프레임 버퍼(32)에 쓴다. 이러한 동작은 구성요소 사이에서 동기적으로 일어나, 렌더링 프로세서는 그것이 유용해지자마자 외부적으로 수행되어진 컴퓨테이션 결과를 이용하고, 그 시간동안 외부 구성요소들은 잇따른 컴퓨테이션을 수행하기위해 자유롭게 남아 있다.
원시요소를 그리기 위하여, 외부 프로세서 요소는 요구된 파라미터와 고안된 원시요소를 나타내는 슬레이브-모드 커맨드를 로드한다. 외부 프로세서 요소는 그때 제일 처음 픽셀에 대해 일련의 텍스처 커맨드/데이터 쌍을 적절한 자체 동작 레지스터(212)에 로드하는데, 데이터의 한 워드가 이런 레지스터 주소들에 로드됨으로써 대응하는 프로세서 동작이 시작된다. 그 데이터는 텍스처 필터링을 위해 필요한 텍셀 주소나 배율 인자(scale factor)(즉, 밉맵 선형 보간을 위해 요구된 u,v 또는 d의 프랙션(fraction) 구성요소)를 나타낸다. 텍스처 커맨드가 첫 번째 픽셀에 대해 완전히 수행된 후, 슬래브스텝(SlaveStep) 커맨드가 들어오고, 프로세서(115)가 다음 픽셀에서 동작하기위해 준비한다.
렌더링 프로세서(115)는 다음 슬래브스텝 커맨드를 적절하게 수행한다.
SlaveStepPX: 오른쪽 이동 단계 이동하기
SlaveStepNX: 왼쪽 이동 단계
SlaveStepPY: 아래쪽 이동 단계
SlaveDrawStepPX: 현재 픽셀을 그리고, 오른쪽 이동 단계
SlaveDrawStepNX: 현재 픽셀을 그리고, 왼쪽 이동 단계
SlaveDrawStepPY: 현재 픽셀을 그리고, 아래쪽 이동
SlaveReturnStepPX: 저장된 픽셀 위치로 리턴하고, 오른쪽 이동
SlaveReturnStepNX: 저장된 픽셀 위치로 리턴하고, 왼쪽 이동
SlaveDrawReturnStepPX: 현재 픽셀을 그리고, 저장된 픽셀 위치로 리턴하며, 오른쪽 이동
SlaveDrawReturnStepNX: 현재 픽셀을 그리고, 저장된 픽셀 위치로 리턴하며, 왼쪽 이동
SlaveSaveStepPX: 현재 픽셀 위치를 저장하고, 오른쪽 이동
SlaveSaveStepNX: 현재 픽셀 위치를 저장하고, 왼쪽 이동
SlaveDrawSaveStepPX: 현재 픽셀 위치를 그리고, 현재 픽셀 위치를 저장하며, 오른쪽 이동
SlaveDrawSaveStepNX: 현재 픽셀 위치를 그리고, 현재 픽셀 위치를 저장하며, 왼쪽 이동
DrawLineMajorStep: 현재 라인 픽셀을 그리며, 주 단계를 취하기
DrawLineMinorStep: 현재 라인 픽셀을 그리며, 부 단계를 취하기
고유한 자체 동작 레지스터(212)와 관련된 각 인식된 텍셀 커맨드는 텍셀 주소의 식별, 밉맵 사이의 선형 보간 및 점 샘플링으로 향하게 되어진다. 선형 보간과 점 샘플링 동작은 밉맵(d 인자를 사용하는) 또는 가장 가까운 맵의 선택 사이의 보간, 및 맵(즉, 주어진 픽셀에 대해 컴퓨팅된 u,v 좌표를 둘러싼 최대 4개의 텍셀 사이에서) 또는 선택된 맵 내에서 가장 가까운 텍셀의 식별 사이의 보간을 포함한다. 특히, 본 발명에 의해 제공되어진 텍셀 커맨드는 바람직하게 6개 범주로 나뉘어지는데, 단일 맵에서 가장 가까운 텍셀을 식별하는 NEAREST 동작, 단일 맵의 가장 가까운 텍셀 사이를 보간하는 LINEAR 동작, 가장 가까운 밉맵(d 값을 사용하는)과 거기서 가장 가까운 텍셀을 식별하는 NEAREST_MIPMAP_NEAREST 점-샘플링 동작, 가장 가까운 밉맵 내부의 4개 픽셀 사이의 선형 보간을 수행하는 LINEAR_MIPMAP_NEAREST 동작, 2개의 주변 맵에서부터 가장 가까운 텍셀을 선택하고 그 사이를 선형적으로 보간하는 NEAREST_MIPMAP_LINEAR 동작, 및 밉맵과 텍셀 사이를 보간하는 LINEAR_MIPMAP_LINEAR 커맨드로 나누어진다.
각 가능한 커맨드를 단일 자체 동작 레지스터와 간단하게 연관시키는 것이 가능함에도 불구하고, 다소의 커맨드가 하위 레벨 커맨드의 조합을 나타내고, 데이터의 특징적 양을 요구하는 그 사실은 전반적인 레지스터 수의 감소를 가져온다. 바람직한 실시예에서, 아래 커맨드는 각각의 전용 레지스터에 관계되어진다.:
커맨드 기능
TexCommand0 Acc3 = Fetch_Texel(입력 데이터)
TexCommand1 TMP = Fetch_Texel(입력 데이터)
TexCommand2 Acc1 = TMP*(1-uf) +
Fetch_Texel(입력 데이터)*uf
TexCommand3 Acc2 = TMP*(1-uf) +
Fetch_Texel(입력 데이터)*uf
TexCommand4 Acc3 = Acc1*(1-vf) + Acc2*vf
TexCommand5 Acc3 = TMP*(1-df) +
Fetch_Texel(입력 데이터)*df
TexCommand6 Acc1 = Acc1*(1-vf) + Acc2*vf
TexCommand7 Acc3 = Acc1*(1-df) + Acc3*df
TexCommand8-13 (내부 사용)
TexCommand14 df를 로드
TexCommand15 uf를 로드
여기서, TMP, Acc1, Acc2 및 Acc3은 임시 레지스터; uf, vf 및 df는 TexCommands 2-7,14 및 15에서 u,v 및 d 값의 프랙션 값이 로드되어지는 레지스터; 및 Fetch_Texel(입력 데이터)는 페치된 텍셀과 관련된 컬러 데이터(예를 들면, r,g,b 및 α)를 언급함.
레지스터 또는 일련의 레지스터 각각 로딩하거나 그 동작에 대응하여 집단적으로 데이터를 로딩함으로써 동작이 수행되어진다. 그 동작과 그와 관련된 커맨드 레지스터들이 다음에 기술되어 있다.
NEAREST
TexCommand0 텍셀 주소 1
LINEAR
TexCommand1 텍셀 주소 1
TexCommand15 (u)프랙션(처음 밉맵)
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) 및/또는 프로세서(119)-는 다음의 단계을 수행한다:
1. 삼각형에 대한 최초 값을 SSC(204)에 로드한다.
2. 채워진 원시요소를 그리기 위한 커맨드를 레지스터(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. 수신된 정확한 순서에서 전술한 단계를 수행하고, 무질서하다면, 같은 결과를 생성하기 위해 요구되는 시퀀싱(sequencing)을 처리한다.
또한, 부가적인 영상 생성 및 조작 기능성은, 렌더링 프로세서(115)에 병합되어 진다. 예를 들어, 모듈들은, 앤티얼라이싱과 디더링, 알파 블렌딩 및 쓰레숄딩(thresholding)과 같은 알파 동작, Z-버퍼링, 포그 컴퓨테이션, 클리핑, 이중-버퍼링, 및 텍셀의 픽셀 포맷으로의 변환(예를 들어, 32비트 텍셀의 16비트 r,g,b 픽셀 포맷으로의 변환)과 같은 필터링 동작을 할 수 있다. 이러한 기능을 수행하기 위한 적절한 펌웨어(firmware), 논리 및 레지스터 구조는 디지털-렌더링 방법에 잘 특징지워져 있고, 프로세서(115)에 포함되기 위해 적당한 기능적 블록의 간단한 구성을 가능하게 한다. 슬레이브-모드 스캐닝이 다양한 블록을 통해 연속적으로 처리되어지는 픽셀 데이터의 동기화 규정을 낳기 위하여, 이런 블록들은 IPOL(215) 및 PIXMOD(217)을 가지고 파이프라인 방식으로 집적되어진다.
도4를 참조하면, 그리드(grid)(300)은 프레임 버퍼(32)의 일부를 나타낸다. 그 예로 나타난 삼각형은, 렌더링 프로세서(115)에 의해 일련의 턴-온으로 스캔-변환되어 프레임 버퍼(32)에서 적합 값을 가지는 픽셀들로 CPU(15)에 의해 인식되는 원시요소이다. CPU(15)는 렌더링 프로세서(115)를 초기화하고, 그 세그먼트의 좌표 위치 (X0, Y0),(X1, Y1); (X1, Y1); (X2, Y2); 및 (X2, Y2),(X0,Y0)를 프로세서(115)와 통신하면서 예로든 삼각형을 스캔한다. 또한, CPU(15)는 단계 커맨드와 텍셀 커맨드는 프로세서(115)에 준다. 프로세서(115)는 렌더링(즉, 픽셀 값을 프레임 버퍼(32)에 쓰는 것)을 수행하고, 그리드(300)에서, 전술한 단계 커맨드에 따라 원시요소 안에 떨어지거나 세그먼트에 의해 가로막히는 그 픽셀 위치를 통해 단계별로 수행한다. 예를 들어, 통상적으로, 이것은 피나다 스캐닝 알고리즘(Pinada scanning algorithm, ACM SIGGRAPH Proc. Comp. Graphics, vol.22,NO.4[1988.8] 페이지 17-20을 참조))에 따라서 + 또는 - 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)는 인터셉트된 픽셀이 원시요소를 정의하는 세그먼트 내에 놓여 지는 크기를 결정한다. 통상적으로, 픽셀은 원시요소 경계선 내에 대부분이 놓여져 있을때만 실제로 그려지는 반면, 앤티얼라이싱 또는 또다른 필터 동작이 적용되어진다면, 픽셀은 필터에 의해 명령받은 것처럼 그려질 수도 있다.(또는 부분적인 범위를 그릴 수도 있다.)
슬레이브-모드 커맨드의 다음 순서로 프로세서(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 (19)

  1. 픽 맵로써 저장된 영상 디스플레이 처리를, 용이하게 하기 위한 영상 생성 및 조작 장치에 있어서,
    a. 중앙처리장치(CPU),
    b. 상기 CPU를 동작시키기 위하여 저장된 명령어을 포함하는 시스템 메모리;
    c. 디스플레이가능한 픽셀 데이터를 포함하는 픽맵을 저장하기 위한 프레임 버퍼;
    d. 원시요소를 픽셀 데이터로 스캔-변환하고 상기 프레임 버퍼에 데이터를 저장하기 위하여 상기 프레임 버퍼에 동작적으로 연결되어 상기 CPU에 의해 야기된 커맨드에 응답하는 렌더링 프로세서;
    e. 상기 CPU와 상기 시스템 메모리, 적어도 하나의 대용량 기억장치, 및 적어도 하나의 주변 장치 사이의 데이터 교환을 용이하게 하기 위한 CPU-메모리 버스; 및
    f. 상기 CPU와 상기 렌더링 프로세서 사이의 데이터 교환을 용이하게 하기 위한 입/출력 버스를 포함하고,
    상기 CPU는 출력 원시요소와 텍셀 커맨드를 생성하고 상기 입/출력 버스를 통해 상기 원시요소와 상기 텍셀 커맨드를 상기 렌더링 프로세서로 보내기 위하여 상기 CPU-메모리 버스를 통해 상기 시스템 메모리로부터 페치된 명령어에 따라 동작하고, 상기 렌더링 프로세서는 픽셀 메모리 주소를 생성하고, 선형 보간에 의해 픽셀 데이터를 리파인하고, 상기 텍셀 커맨드를 수행하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  2. 제 1 항에 있어서,
    상기 렌더링 프로세서는,
    디스플레이 타이밍을 생성하기 위한 수단을 더 포함하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  3. 제 1 항에 있어서,
    상기 렌더링 프로세서는 상기 시스템 메모리로부터 분리되어지고, 상기 CPU는 상기 프레임 버퍼로부터 분리되는 것을 특징으로 하는 영상 생성 및 조작 장치.
  4. 제 3 항에 있어서,
    텍스처 매핑을 용이하게 하기 위한 수단을 더 포함하고,
    상기 수단은,
    a. 텍셀 데이터를 각각 포함하는 텍셀의 배열을 포함하는 텍스처 맵을 억세스하기 위한 수단;
    b. 상기 프레임 버퍼에 저장된 데이터에 대한 각 픽셀에 관하여, 그와 연관된 적어도 하나의 텍셀을 식별하기 위한 수단; 및
    c. 각 픽셀에 대하여, 상기 프레임 버퍼 속에 저장하기 위해 혼합된 데이터를 만들기 위하여, 픽셀 데이터와 적어도 하나의 관련된 텍셀로부터 텍셀 데이터를 조합하기 위한 수단을 포함하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  5. 제 4 항에 있어서,
    상기 렌더링 프로세서는,
    다수의 텍셀 맵 사이에서의 보간을 위하여 상기 CPU에 의해 생긴 커맨드에 응답하는 수단을 포함하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  6. 제 1 항에 있어서,
    상기 렌더링 프로세서는 상기 입/출력 버스를 통해 상기 CPU를 각각 억세스할 수 있는 다수의 레지스터 포함하고, 각 레지스터는 렌더링 코멘드와 상응하여 상기 레지스터로의 데이터 로딩이 상기 렌더링 프로세서가 상기 로드된 데이터 상의 상응하는 커맨드를 수행하도록 야기하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  7. 제 5 항에 있어서,
    상기 렌더링 프로세서는
    상기 입/출력 버스를 통해 상기 CPU를 각각 억세스할 수 있는 다수의 레지스터를 포함하고,
    각 레지스터는
    텍셀 - 처리 커맨드에 상응하여 상기 레지스터로 데이터를 로딩 상기 렌더링 프로세서가 상기 로드된 데이터 상에서 상응하는 커맨드를 수행하도록 하고,
    상기 텍셀-처리 커맨드는
    상기 로드된 데이터에 의해 식별되어지는 메모리 주소를 가진 텍셀의 페칭; 및 밉맵 사이의 선형 보간을 포함하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  8. 제 7 항에 있어서,
    상기 CPU와 상기 렌더링 프로세서 사이의 동기 파이프라인된 동작을 용이하게 하기 위하여, 상기 렌더링 프로세서에 연관된 수단을 더 포함하고,
    상기 CPU는 상기 렌더링 프로세서에 의한 상기 원시요소의 스캔 변환에 부합하는 저장된 명령어를 수행하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  9. 제 8 항에 있어서,
    상기 저장된 명령어는 ,
    상기 원시요소에 대한 강도 동작을 컴퓨테이션으로 정의하고,
    상기 렌더링 프로세서는,
    저장된 명령어의 상기 CPU에 의해 실행에 부합하는 픽셀 데이터를 리파인하기 위한 수단을 더 포함하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  10. 제 9 항에 있어서,
    상기 렌더링 프로세서는,
    선형 보간, 필터링, 클리핑, 알파 블렌딩 및 포그 값 컴퓨테이션을 포함하는 동작에 의해 픽셀 데이터를 리파인하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  11. 원시요소를 생성하는 강도 영상-생성 동작을 컴퓨테이션으로 수행하기 위하여 구성되어진 외부 프로세서를 가지는 시스템의 스크린 상에 영상 디스플레이를 용이하게 처리하기 위한 장치에 있어서,
    a. 스크린 상에 영상으로서 디스플레이가능한 픽셀 데이터를 포함하는 픽맵을 저장하기 위한 프레임 버퍼; 및
    b. 상기 스크린상의 디스플레이를 위해 상기 원시요소을 픽셀 데이터로 스캔-변환하기 위하여, 상기 외부 프로세서와 상기 프레임 버퍼 사이에 독점적으로 연결되고, 상기 외부 프로세서에 의해 생성된 원시요소에 응답하며, 상기 원시요소와 관련된 동작의 실행을 함축적으로 구체화하기 위한 수단을 구비하고, 함축적으로 구체화하는 수단으로의 원시요소 로딩에 응답하는 렌더링 포로세서를 포함하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  12. 제 11 항에 있어서,
    상기 원시요소를 상기 외부 프로세서에서 상기 렌더링 프로세서로 전달하기 위하여 시스템 버스를 더 포함하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  13. 제 11 항에 있어서,
    상기 함축적으로 구체화하는 수단은,
    그 각각이 텍스처 매핑 동작의 수행에 연관되는 다수의 자체 동작 레지스터를 포함하고,
    상기 자체 동작 레지스터는,
    상기 외부 프로세서에서 상기 렌더링 프로세서로 텍스처 매핑 커맨드의 이동을 제거하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  14. 제 11 항에 있어서,
    상기 외부 프로세서는,
    상기 자체 동작 레지스터와 관련된 각 텍스처-매핑 동작을 개별적으로 수행하는 상기 렌더링 프로세서를 동기적으로 제어함으로써 상기 시스템 버스의 처리량을 최적화하기 위한 수단을 포함하는 것을 특징으로 하는 영상 생성 및 조작 장치.
  15. 제 14 항에 있어서,
    상기 외부 프로세서는,
    기하학적 처리 요소 및 CPU 중 하나인 것을 특징으로 하는 영상 생성 및 조작 장치.
  16. 제1 프로세서 및 상기 제1 프로세서와 동작가능토록 연결되어 상기 제1 프로세서로 부터의 데이터를 처리하도록 구성되어진 제2 프로세서를 포함하는 다중 프로세서 컴퓨터 시스템에 있어서,
    상기 제2 프로세서에 연관된 커맨드 장치는,
    상기 제1 프로세서로부터 데이터를 수신하기 위한 인터페이스;
    상기 수신된 데이터상에서 동작을 선택가능하게 수행하기 위한 실행 수단; 및
    상기 인터페이스로부터 데이터를 수신하고, 그러한 수신에 따라 상기 실행 수단이 상기 데이터상에서 관련 동작을 수행하도록하기 위하여 상기 제1 프로세서에 의해 독립적으로 주소화되고 하나의 동작과 관련되어지는 다수의 자체 동작 데이터 레지스터를 포함하는 것을 특징으로 하는 장치.
  17. 제 16 항에 있어서,
    상기 제1 프로세서는 외부 프로세서이고, 상기 제2 프로세서는 렌더링 프로세서이며, 상기 시스템은 상기 렌더링 프로세서로부터 처리된 데이터를 수신하고, 스크린 디스플레이의 순간 출현을 결정하기 위하여, 상기 렌더링 프로세서에 작동가능토록 연결된 프레임 버퍼를 더 포함하고, 선택가능한 동작은 픽셀-처리 동작 및 디스플레이가능한 픽셀 값을 나타내는 상기 처리된 데이터를 포함하는 것을 특징으로 하는 장치.
  18. 제 17 항에 있어서,
    상기 시스템은,
    연관된 값을 가지는 각 텍셀의 배열을 포함하는 적어도 하나의 밉맵을 저장하기 위한 수단을 더 포함하고,
    상기 렌더링 프로세서는 상기 저장 수단을 억세스하고,
    상기 선택 가능한 동작은 저장된 밉맵의 식별 픽셀 값의 식별과 가장 가까운 값을 가진 식별된 밉 맵에서의 텍셀의 식별, 식별된 밉맵에서 텍셀 사이를 보간하는 포함하는 것을 특징으로 하는 장치.
  19. 제 18 항에 있어서,
    상기 장치는 다수의 밉맵을 저장하기 위한 수단을 포함하고, 상기 선택가능한 동작은 밉맵의 선택 및 밉맵 사이의 보간을 더 포함하는 것을 특징으로 하는 장치.
KR1019970706211A 1995-03-06 1996-03-01 영상처리및디스플레이를용이하게하기위한장치 KR100421623B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/413,983 US5649173A (en) 1995-03-06 1995-03-06 Hardware architecture for image generation and manipulation
US08/413983 1995-03-06
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 true KR19980702804A (ko) 1998-08-05
KR100421623B1 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100792591B1 (ko) * 2000-03-22 2008-01-09 톰슨 라이센싱 디스플레이 디바이스 상에 디스플레이하기 위한 비디오화상 데이터의 처리 방법 및 장치
WO2012026640A1 (ko) * 2010-08-27 2012-03-01 주식회사 실리콘아츠 밉맵 레벨 선택 방법 및 이를 이용한 텍스처 매핑 시스템
US11238771B2 (en) 2017-12-20 2022-02-01 Samsung Electronics Co., Ltd Display driver circuit for synchronizing output timing of images in low power state

Families Citing this family (77)

* 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
US5956047A (en) * 1997-04-30 1999-09-21 Hewlett-Packard Co. ROM-based control units in a geometry accelerator for a computer graphics system
US6184902B1 (en) 1997-04-30 2001-02-06 Hewlett-Packard Company Centralized branch intelligence system and method for a geometry accelerator
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
US6570579B1 (en) 1998-11-09 2003-05-27 Broadcom Corporation Graphics display system
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US7982740B2 (en) 1998-11-09 2011-07-19 Broadcom Corporation Low resolution graphics mode support using window descriptors
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
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 株式会社ナムコ ゲームシステム及び情報記憶媒体
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 한국전자통신연구원 다시점 콘텐츠 생성 장치 및 그 방법
US8736623B1 (en) 2004-11-15 2014-05-27 Nvidia Corporation Programmable DMA engine for implementing memory transfers and video processing for a video processor
US7657837B2 (en) * 2005-04-06 2010-02-02 Ericom Software Ltd. Seamless windows functionality to remote desktop sessions regarding z-order
US7515745B1 (en) * 2005-07-11 2009-04-07 Adobe Systems Incorporated Planar map to process a raster image
US7512265B1 (en) 2005-07-11 2009-03-31 Adobe Systems Incorporated Merge and removal in a planar map of 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
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
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 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像表示装置、画像処理方法、および画像ファイルのデータ構造
WO2016028293A1 (en) * 2014-08-20 2016-02-25 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

Family Cites Families (39)

* 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
US5155822A (en) * 1987-08-13 1992-10-13 Digital Equipment Corporation High performance graphics workstation
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
EP0430501B1 (en) * 1989-11-17 1999-02-03 Digital Equipment Corporation 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
US5224208A (en) * 1990-03-16 1993-06-29 Hewlett-Packard Company Gradient calculation for texture mapping
US5222205A (en) * 1990-03-16 1993-06-22 Hewlett-Packard Company Method for generating addresses to textured graphics primitives stored in rip maps
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
US5230039A (en) * 1991-02-19 1993-07-20 Silicon Graphics, Inc. Texture range controls for improved texture mapping
US5307450A (en) * 1991-02-19 1994-04-26 Silicon Graphics, Inc. Z-subdivision 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
AU3124493A (en) * 1992-11-02 1994-05-24 3Do Company, The Method for controlling a spryte rendering processor
US5649173A (en) * 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100792591B1 (ko) * 2000-03-22 2008-01-09 톰슨 라이센싱 디스플레이 디바이스 상에 디스플레이하기 위한 비디오화상 데이터의 처리 방법 및 장치
WO2012026640A1 (ko) * 2010-08-27 2012-03-01 주식회사 실리콘아츠 밉맵 레벨 선택 방법 및 이를 이용한 텍스처 매핑 시스템
KR101447552B1 (ko) * 2010-08-27 2014-10-08 주식회사 실리콘아츠 밉맵 레벨 선택 방법 및 이를 이용한 텍스처 매핑 시스템
US11238771B2 (en) 2017-12-20 2022-02-01 Samsung Electronics Co., Ltd Display driver circuit for synchronizing output timing of images in low power state

Also Published As

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

Similar Documents

Publication Publication Date Title
KR100421623B1 (ko) 영상처리및디스플레이를용이하게하기위한장치
US6816161B2 (en) Vertex assembly buffer and primitive launch buffer
JP2001357410A (ja) 別々に生成された3次元イメージを合成するグラフィックス・システム
US8395619B1 (en) System and method for transferring pre-computed Z-values between GPUs
WO2005101320A1 (ja) 画像生成装置および画像生成方法
US20050259104A1 (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
US7310103B2 (en) Pipelined 2D viewport clip circuit
US6859209B2 (en) Graphics data accumulation for improved multi-layer texture performance
US6784894B2 (en) Mapping time-sorted to direction-sorted triangle vertices
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
JPH1186028A (ja) テクスチャ・マッピング性能を向上させた3次元グラフィックス・アクセラレータを含むコンピュータ・システム
US7145570B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
JP2003504697A (ja) 副標本化テクスチャ端縁部のアンチエイリアシング
US6900803B2 (en) Method for rasterizing graphics for optimal tiling performance
US6885375B2 (en) Stalling pipelines in large designs
US6927775B2 (en) Parallel box filtering through reuse of existing circular filter
US6895458B2 (en) Opcode to turn around a bi-directional bus
US6847372B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
US20040174364A1 (en) Rendering patterned lines in a graphics system
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

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