KR101692460B1 - 압축된 슈퍼타일 이미지들의 디스플레이 - Google Patents

압축된 슈퍼타일 이미지들의 디스플레이 Download PDF

Info

Publication number
KR101692460B1
KR101692460B1 KR1020137004198A KR20137004198A KR101692460B1 KR 101692460 B1 KR101692460 B1 KR 101692460B1 KR 1020137004198 A KR1020137004198 A KR 1020137004198A KR 20137004198 A KR20137004198 A KR 20137004198A KR 101692460 B1 KR101692460 B1 KR 101692460B1
Authority
KR
South Korea
Prior art keywords
frame
super tile
frames
compressed
super
Prior art date
Application number
KR1020137004198A
Other languages
English (en)
Other versions
KR20130132752A (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 KR20130132752A publication Critical patent/KR20130132752A/ko
Application granted granted Critical
Publication of KR101692460B1 publication Critical patent/KR101692460B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • 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
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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
    • G06T9/00Image coding
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

압축된 슈퍼타일 이미지들의 디스플레이를 위한 방법이 개시된다. 일 실시예에서, 복수의 압축 슈퍼타일 프레임들로부터 이미지 프레임을 디스플레이하는 방법이 제공되는바, 이 방법은, 압축 슈퍼타일 프레임들을 판독하는 단계와; 압축 슈퍼타일 프레임들을 확장시키는 단계와; 그리고 확장된 슈퍼타일 프레임들을 결합시켜 이미지 프레임을 발생시키는 단계를 포함한다. 상기 확장시키는 단계는, 압축 슈퍼타일 프레임들 각각에 대응하는 확장 슈퍼타일 프레임을 발생시키는 것을 포함하고, 여기서 확장 슈퍼타일 프레임을 발생시키는 것은 대응하는 압축 슈퍼타일 프레임에 없는 타일들에 대한 블랭크 픽셀들을 확장 슈퍼타일 프레임 내에 삽입함으로써 행해진다. 대응하는 시스템 및 컴퓨터 프로그램물들이 또한 개시된다.

Description

압축된 슈퍼타일 이미지들의 디스플레이{DISPLAYING COMPRESSED SUPERTILE IMAGES}
본 발명의 실시예들은 이미지들을 디스플레이할 때 메모리 소비를 감소시키는 것에 관한 것이다.
일부 그래픽 프로세싱 시스템들은, 그래픽 태스크(graphics task)들의 병렬 프로세싱을 통한 성능 이득을 얻기 위해, 그래픽 프로세싱 유닛(Graphics Processing Unit, GPU)들과 같은 복수의 프로세싱 유닛들을 포함한다. 예를 들어, 그래픽-집약적 게임은, 복수의 GPU들을 사용함으로써 추가적인 프로세싱 파워의 제공을 요구하며 실행될 수 있거나 혹은 이로부터 혜택을 받을 수 있다.
시스템 내에서 이용가능한 복수의 GPU들은, 예를 들어, 렌더링되는 얼터네이트 프레임(alternate frame)들을 프로세싱하기 위해(즉, 얼터네이트 프레임 렌더링(Alternate Frame Rendering, AFR)을 위해) 혹은 동일한 프레임의 일부분들을 프로세싱하기 위해, 다양한 방식으로 사용된다. 예를 들어, 프레임이, 동일한 프레임을 동시에 프로세싱하는 2 GPU 시스템의 양쪽 GPU들에 의해 효율적으로 핸들링될 수 있는 복합 프로세싱을 요구하는 경우, CPU는 동일한 프레임을 양쪽 GPU들에 배분할 수 있다.
멀티샘플링(multisampling)이 활성화될 때와 같은, 일부 그래픽 프로세싱 모드들에서, 각각의 GPU에서 프레임을 프로세싱하기 위해 필요한 메모리 사용량(memory footprint)은 크게 증가된다. 예를 들어, 멀티샘플링 혹은 슈퍼샘플링(super sampling)이 사용될 때, 프레임의 각각의 픽셀은 복수의 샘플들을 포함할 수 있고, 이에 따라 GPU 메모리에 저장되는 프레임 데이터의 크기가 크게 증가하게 된다. 필요한 메모리 사용량에서의 증가는, 확장성(scalability)의 한계, 대역폭(bandwidth)의 한계, 및 프레임 렌더링시의 지연(delays)으로 인해, 성능 저하를 일으킬 수 있다.
이에 따라, 필요한 것은, 프레임을 프로세싱하기 위해 각각의 프로세서에서 요구되는 메모리 사용량을 감소시키는 방법 및 시스템이다.
본 발명의 실시예들은, 압축된 슈퍼타일 이미지들의 디스플레이를 가능하게 한다. 일 실시예에서, 복수의 압축 슈퍼타일 프레임(compressed supertile frame)들로부터 이미지 프레임(image frame)을 디스플레이하는 방법이 제공되는바, 이 방법은, 압축 슈퍼타일 프레임들을 판독하는 단계와; 압축 슈퍼타일 프레임들을 확장시키는 단계와; 그리고 확장된 슈퍼타일 프레임들을 결합시켜 이미지 프레임을 발생시키는 단계를 포함한다. 상기 확장시키는 단계는, 압축 슈퍼타일 프레임들 각각에 대응하는 확장 슈퍼타일 프레임(expanded supertile frame)을 발생시키는 것을 포함하고, 여기서 확장 슈퍼타일 프레임을 발생시키는 것은 대응하는 압축 슈퍼타일 프레임에 없는 타일(tile)들에 대한 블랭크 픽셀(blank pixel)들을 확장 슈퍼타일 프레임 내에 삽입함으로써 행해진다.
또 다른 실시예는, 이미지 프레임의 복수의 압축 슈퍼타일 프레임들로부터 이미지 프레임을 디스플레이하는 시스템을 제공한다. 이 시스템은, 제어 프로세서(control processor), 제어 프로세서에 결합된 복수의 그래픽 프로세싱 유닛(graphics processing unit)들, 그리고 슈퍼타일 프레임 결합기(supertile frame combiner)를 포함한다. 각각의 그래픽 프로세싱 유닛은 슈퍼타일 압축 프레임들 중 하나 이상을 프로세싱하도록 구성된다. 슈퍼타일 프레임 결합기는, 압축 슈퍼타일 프레임들을 판독하고, 압축 슈퍼타일 프레임들을 확장시키고, 그리고 확장된 프레임들을 결합하여 이미지 프레임을 발생시키도록 구성된다.
또 다른 실시예는, 명령들을 저장하는 컴퓨터 판독가능 매체이며, 여기서 상기 명령들은, 실행될 때, 복수의 압축 슈퍼타일 프레임들로부터 이미지 프레임을 디스플레이하도록 되어 있으며, 이 경우 이미지 프레임을 디스플레이하는 것은, 압축 슈퍼타일 프레임들을 판독하는 단계; 압축 슈퍼타일 프레임들을 확장시키는 단계; 그리고 확장된 슈퍼타일 프레임들을 결합시켜 이미지 프레임을 발생시키는 단계를 포함하는 방법을 수행함으로써 행해진다.
첨부되는 도면을 참조하여 본 발명의 추가 실시예, 특징 및 장점뿐만 아니라 본 발명의 다양한 실시예의 구조 및 동작이 아래에서 상세히 설명된다.
첨부되는 도면(본 명세서에 통합되어 본 명세서의 일부를 형성함)은 상세한 설명과 함께 본 발명의 실시예들을 예시하고, 또한 본 발명의 원리를 설명하는 역할을 하며, 관련 기술분야에서 숙련된 자가 본 발명의 실시예를 구현 및 사용할 수 있도록 하는 역할을 한다.
도 1은 본 발명의 실시예에 따른, 그래픽 컴퓨팅 환경의 블록도를 나타낸다.
도 2는 본 발명의 실시예에 따른, 이미지 프레임의 예시적 타일링, 그리고 슈퍼타일 프레임들의 프로세서들로의 예시적 할당을 나타낸다.
도 3은 본 발명의 실시예에 따른, 각각의 프로세서에 할당된 압축된 프레임들의 예시적 확장을 나타낸다.
도 4는 본 발명의 실시예에 따른, 멀티 GPU 시스템에서의 이미지 프레임의 프로세싱을 나타낸 흐름도이다.
도 5는 본 발명의 실시예에 따른, 압축된 슈퍼타일 프레임들을 결합시키는 것을 나타낸 흐름도이다.
본 발명은 첨부되는 도면을 참조하여 설명될 것이다. 일반적으로, 도면에서 구성요소가 처음 나타나는 경우 해당 도면은 대응하는 참조 번호의 가장좌측의 숫자(들)에 의해 전형적으로 표시된다.
본 명세서의 개요 및 요약 부분이 아닌 상세한 설명 부분이 본 출원의 특허청구범위의 해석을 위해 사용되도록 의도되었음을 이해해야 한다. 본 명세서의 개요 및 요약 부분은 본 발명자(들)에 의해 고려되는 바와 같은 본 발명의 하나 이상의 실시예(모든 실시예는 아님)를 제시할 수 있고, 따라서 본 발명 및 첨부되는 특허청구범위를 어떤 경우에서건 한정하도록 의도되지 않았다.
복수의 그래픽 프로세싱 유닛(GPU)들과 같은 복수의 그래픽 프로세서들을 구비한 그래픽 시스템들은, 일부 그래픽 작업들이 병렬로 실행될 수 있도록 함으로써, 단일 GPU를 구비한 시스템들보다 성능을 더 증진시킬 수 있다. 복수의 그래픽 프로세서는, GPU, 범용 GPU(General Purpose GPU, GPGPU), CPU 혹은 이들의 조합이나 본 명세서에서 설명되는 바와 같이 이미지 데이터를 프로세싱할 수 있는 임의의 다른 프로세서를 포함할 수 있다. 도 1은 본 발명의 실시예에 따른, 멀티-GPU 컴퓨팅 환경(multi-GPU computing environment)을 제시한다. 예를 들어, 컴퓨팅 환경(100)은 GPU들(104 및 106)에 결합된 중앙 처리 장치(Central Processing Unit, CPU)(102)를 포함한다. 관련 기술 분야에서 숙련된 자들이 본 명세서에서의 설명을 기반으로 하여 알 수 있는 바와 같이, 비록 도 1에서 2개의 GPU 실시예가 제시되었지만, 본 발명의 실시예들은 임의 개수의 GPU들을 포함할 수 있다. GPU(104)와 GPU(106) 각각은 메모리, 디스플레이, 등과 같은 추가적인 컴포넌트들에 결합될 수 있다. GPU들(104 및 GPU)은 그래픽 프로세싱(예를 들어, 렌더링) 혹은 디스플레이 태스크들과 같은 그래픽 관련 태스크들을 CPU(102)로부터 수신한다. 본 발명의 기술 분야에서 숙련된 자들이 이해하는 바와 같이, GPU들(104 및 106)은, 예시된 바와 같이, 분리된 컴포넌트들(즉, 별개의 디바이스들)일 수 있거나, 혹은 통합된 컴포넌트들(예를 들어, 단일 집적 회로(IC)와 같은 단일 디바이스, 복수의 IC들을 하우징하는 단일 패키지에 통합된 컴포넌트들, 다른 IC들(예컨대, CPU 혹은 노스브리지(Northbridge)에 통합된 컴포넌트들)일 수 있으며, 이와는 다른 것일 수 있다(예컨대, 어떤 상이한 능력(예를 들어, 성능)을 가진 것일 수 있음).
GPU(104)는 커맨드 프로세서(command processor)(112), 메모리 제어기(114), 및 로컬 그래픽 메모리(local graphics memory)(116)를 포함한다. 커맨드 프로세서(112)는 GPU(104)에서의 커맨드 실행을 제어한다. 예를 들어, 커맨드 프로세서(112)는 GPU(104)에서 프로세싱될 커맨드들 및 데이터를 CPU(102)로부터 수신하는 것을 제어 및/또는 조정할 수 있다. 커맨드 프로세서(112)는 또한, 예를 들어, 메모리 제어기(114)를 통해, 그래픽 메모리(116) 내에서의 메모리 할당을 제어 및/또는 조정할 수 있다. 메모리 제어기(114)는 데이터의 판독 및 기입을 위해 그래픽 메모리(116)에 대한 액세스를 제어할 수 있다.
GPU(104)와 유사한 방식으로, GPU(106)는 커맨드 프로세서(118), 메모리 제어기(120), 및 그래픽 메모리(122)를 포함할 수 있다. 커맨드 프로세서(118), 메모리 제어기(120), 및 그래픽 메모리(122)의 기능은 앞서 설명된 GPU(104)에서의 대응하는 디바이스들(112, 114, 및 116)의 기능과 유사하다.
컴퓨팅 환경(100)은 또한 시스템 메모리(108)를 포함한다. 시스템 메모리(108)는 GPU들(104 및 106)과 CPU(102) 간에 전달되는 커맨드들 및 데이터를 보유하는데 사용될 수 있다. 그래픽 작업을 이용하여 데이터가 프로세싱된 이후, 프로세싱된 데이터는 GPU(104 및 106)로부터 시스템 메모리(108)에 다시 기입될 수 있다. 예를 들어, 일부 실시예들에서, 그래픽 메모리(116)로부터의 프로세싱된 데이터는, 후속 프로세싱을 위해 사용되기 전에 혹은 스크린(110)과 같은 스크린 상의 디스플레이를 위해 사용되기 전에 시스템 메모리(108)에 기입될 수 있다. 일부 실시예들에서, GPU(104 및/또는 106)에서 프로세싱된 프레임 데이터는 디스플레이 엔진(display engine)(123)을 통해 스크린(110)에 기입된다. 디스플레이 엔진(123)은 하드웨어 및/또는 소프트웨어 혹은 이들의 조합으로 구현될 수 있고, 스크린(110)의 특정 특성들에 대해 데이터의 디스플레이를 최적화하기 위한 기능을 포함할 수 있다. 또 다른 실시예에서, 디스플레이 엔진(123)은 프로세싱된 디스플레이 데이터를 GPU 메모리(116) 및/또는 GPU 메모리(122)로부터 직접 수신할 수 있다.
컴퓨팅 시스템(100)의 다양한 디바이스들이 통신 기반구조(communication infrastructure)(106)에 의해 결합된다. 예를 들어, 통신 기반구조(106)는 주변 장치 상호연결 익스프레스(Peripheral Component Interconnect Express, PCI-E) 버스를 포함하는 하나 이상의 통신 버스들, 이더넷(Ethernet), 파이어와이어(Firewire), 및/또는 다른 상호연결 디바이스를 포함할 수 있다. 일 실시예에서, 통신 기반구조(106)는, 둘 이상의 GPU들을 서로 결합시키는 상호연결 디바이스를 포함할 수 있다.
본 발명의 실시예들에서, 이미지 프레임으로부터의 타일들의 세트들을 복수의 프로세서들에 할당하는 것은 슈퍼타일링(supertiling)으로 지칭된다. 프로세서에 할당된 본래의 이미지 프레임으로부터의 타일들의 세트는 슈퍼타일 프레임(supertile frame)으로 지칭된다. 각각의 GPU는 또한, 자신에게 할당된 슈퍼타일 프레임에서 프로세싱될 타일들에 근거하여 자신의 로컬 메모리 내에서 행해질 메모리 할당을 결정하는 로직을 포함할 수 있다. 예를 들어, GPU(104)는 타일 콤팩션 로직 블록(tile compaction logic block)(128)을 포함하고, GPU(106)는 타일 콤팩션 로직 블록(130)을 포함한다. 각각의 타일 콤팩션 로직 블록은, 본 발명의 가르침에 따라 각각의 로컬 메모리들에 타일들을 저장하는 것을 조정하기 위해, 그리고 본 발명의 실시예에 따라 각각의 그래픽 메모리들 내에서의 타일들의 로직 레이아웃(logical layout)을 결정하기 위해, 각각의 GPU에 할당된 타일들에 대해 그 요구된 메모리 할당을 결정하는 기능을 포함할 수 있다.
일 실시예에서, GPU들(104 또는 106) 중 하나 이상의 GPU는 또한, 슈퍼타일 프레임 결합 로직 블록(132)을 포함할 수 있다. 슈퍼타일 프레임 결합 로직 블록(132)은, 복수의 GPU들 내에서 개별적으로 프로세싱되는 타일들을, 스크린 상에 디스플레이될 수 있거나 혹은 시스템 메모리에 전달될 수 있는 단일 프레임으로 결합시키는 로직을 포함한다. 일부 실시예들에서, 슈퍼타일 프레임 결합 블록(132)은 자기 자신의 GPU(104)의 로컬 메모리(116)에 액세스할 수 있을 뿐만 아니라 GPU(106)의 로컬 메모리(122)에도 액세스하여 각각의 GPU에서 프로세싱되는 타일들을 개별적으로 검색할 수 있다. 일 실시예에 따르면, 슈퍼타일 프레임 결합 로직 블록(132)은, 각각의 GPU에 할당되지 않은 타일들의 위치들에 비사용 픽셀들(unused pixels)(이것은 또한 "블랭크 픽셀들(blank pixels)"로서 지칭되기도 함)을 삽입함으로써, 하나 이상의 압축된 프레임들(이것은 또한 압축 슈퍼타일 프레임들로서 지칭되기도 함)을 풀 해상도 프레임(full resolution frame)으로 확장시키는 기능을 포함한다. 슈퍼타일 프레임 결합 블록(132)은, 또 다른 실시예들에서, GPU들의 각각의 로컬 메모리들로부터 압축 프레임들을 검색 및 익스포트(export)할 수 있고, 이에 따라 먼저 전체 프레임을 인접 메모리에 재구성해야만 함이 없이 프레임이 디스플레이될 수 있게 된다. 슈퍼타일 프레임 결합 로직 블록(132) 및/또는 그 기능은 GPU들(104 혹은 106) 중 적어도 하나의 GPU 내에서 구현될 수 있거나, 혹은 양쪽 GPU들 외부에서 구현될 수 있음에 유의해야 한다. 예를 들어, 일 실시예에서, 슈퍼타일 프레임 결합 로직 블록(132)은 디스플레이 엔진(123) 내에서 구현될 수 있다. 또 다른 실시예에서, 슈퍼타일 프레임 결합 로직 블록(132)은, GPU의 래스터라이저 연산(Rasterizer Operations, ROP) 로직 내에서 구현될 수 있다.
앞서의 설명에서, GPU들(104 및 106)은 선별된 컴포넌트들 및 기능들을 포함하는 것으로 예시된다. 그러나, 본 발명의 기술분야에서 숙련된 자는, GPU들(104 및 106) 중 하나 혹은 양쪽 모두가, 쉐이더 엔진(shader engines)과 같은(그러나 이러한 것에만 한정되는 것은 아님) 다른 컴포넌트들을 포함할 수 있음을 알 것이다.
도 2는, 이미지 프레임의 타일들을 2개의 GPU들에 할당하는 예, 그리고 각각의 GPU 로컬 메모리의 로컬 메모리 내에서의 대응하는 타일들의 레이아웃의 예를 나타낸다. 예를 들어, 프레임(202)은 GPU들(104 및 106)에 의해 스크린(110) 상으로 렌더링될 이미지를 포함할 수 있다. 프레임(202) 내의 각각의 작은 사각형은 타일을 나타낸다. 타일은 임의 치수를 갖는 사각형일 수 있지만, 일반적으로 사용되는 타일 크기는 16x16 픽셀들과 32x32 픽셀들이다. 프레임(202)과 같은, 여러 개의 타일들로 분할된 프레임은, 타일링된 프레임으로서 지칭된다. 제시된 실시예에서, CPU(102)는, 체커보드 패턴(checkerboard pattern)으로 프레임(202)의 타일들을 할당하는바, 여기서 각각의 얼터네이트 타일(alternate tile)은 GPU(104)의 그래픽 메모리(116)에 할당되고, 나머지 타일들은 GPU(106)의 그래픽 메모리(122)에 할당된다. 앞서 설명된 바와 같이, 각각의 GPU에는, 이미지 프레임(202)으로부터의 프로세싱될 복수의 타일들을 포함하는 슈퍼타일 프레임이 할당된다.
타일 할당의 패턴은 디스플레이 모드를 포함하는 다양한 인자들에 근거할 수 있다. 예를 들어, 만약 좌측에서 우측으로 그리고 위에서 아래로의 패턴으로 타일들을 프로그레시브(progressive)하게 디스플레이함으로써 스크린(110) 상에서의 얼티메이트 디스플레이(ultimate display)가 실행된다면, 할당된 타일들의 개수 측면에서뿐만 아니라 할당된 타일들의 공간 분포 측면에서 GPU들 간의 작업 부하가 균형이 맞도록, 얼터네이트 타일들을 각각의 GPU에 할당하는 것이 이로울 수 있다.
도 2는 또한, 각각의 GPU에 할당된 프레임의 타일들이 GPU들(104 및 106)의 그래픽 메모리들(116 및 122) 내에서 어떤 로직 정렬을 각각 가질 수 있는지의 예를 나타낸다. 시스템 메모리(108) 내의 타일링된 이미지 프레임(202)은 16개의 타일들을 갖는 것으로 제시되었다. 다른 크기의 타일들 및/또는 다른 개수의 타일들을 갖는 프레임들이 가능하다. 예시적 할당 패턴을 용이하게 알 수 있도록 01 내지 16의 번호를 갖는 타일들이 예시된다. 제시된 예에서, 타일들은 2개의 GPU들에 체커보드 패턴으로 할당된다. 타일들을 각각의 GPU들에 할당하는 다른 패턴들이 가능하다. GPU(104) 내의 그래픽 메모리(116)에서의 메모리 영역(204)은, 도시된 방식으로 정렬되는, GPU(104)에 할당된 타일들을 가질 수 있다(메모리 영역들(202, 204 및 206) 내에 제시된 01 내지 16 범위에 있는 대응하는 타일 번호들은 동일한 타일의 카피(copy)들을 나타냄). 도시된 바와 같이, GPU(104)에 할당된 타일들에 있어서, 타일들은 프레임(202)에서의 각각의 타일의 출현 순서에 대응하는 좌-우 상-하 방식으로 사각형 그리드 내에 정렬될 수 있다. 마찬가지로, GPU(106) 내의 그래픽 메모리(116)에서의 메모리 영역(204)은, 도시된 방식으로 정렬되는, GPU(106)에 할당된 타일들을 가질 수 있다. 각각의 GPU에 할당된 타일들은, 예를 들어, 할당된 타일들의 저장을 위해서만 메모리 공간을 할당하고 할당되지 않은 타일들에 대해서는 공간 할당을 하지 않음으로써 메모리 사용량이 최소화되도록, 압축된 프레임 형태로, 대응하는 GPU 메모리에 저장된다. 도시된 예에서는, 각각의 그래픽 메모리 내에서 해당 GPU에 할당된 타일들만을 저장함으로써, 각각의 그래픽 메모리에서 프레임을 위해 필요한 메모리 사용량은 전체 프레임을 저장하기 위해 필요한 사용량의 대략 반정도 감소한다. 더욱이, 할당된 타일들을 해당 그래픽 메모리에만 저장함으로써, 각각의 GPU는 할당되지 않은 타일들의 프로세싱을 피할 수 있다.
도 3은 본 발명의 실시예에 따른, 풀 해상도 프레임을 발생시키기 위해 압축 프레임들을 블렌딩(blending)하는 프로세스의 실시형태들을 도식적으로 나타낸다. 도 2에 도시된 바와 같이, 타일링된 프레임(202)으로부터의 타일들이 개별 GPU들에 할당되고, 그리고 압축 프레임들(204 및 206)로서 각각의 GPU 메모리들 내에 저장된다. 도 2에서 최초 예시된 압축 프레임들(204 및 206)이 도 3에 다시 도시된다. 압축 프레임들(204 및 206)은 비압축 프레임들(302 및 304)로 각각 확장되는바, 여기서 비압축 프레임들(302 및 304)(이것은 또한 아래에서 "확장 프레임들" 혹은 "확장 슈퍼타일 프레임들"로서 지칭됨) 각각은 대응하는 GPU에 할당된 타일들을 포함한다. 확장 프레임들(302 및 304)에서 번호를 갖도록 제시된 각각의 타일은 각각의 압축 프레임으로부터의 대응하는 타일을 나타낸다. 프레임들(302 및 304)에서 "X"로 표시된 각각의 타일은, 본 발명의 실시예에 따른, 삽입된 블랭크 픽셀들을 나타낸다. 삽입된 블랭크 픽셀들을 갖는 확장 프레임들(302 및 304)은 결합(이것은 또한 "블렌딩(blending)"으로서 지칭됨)되어, 결합된 최종 풀 해상도 프레임(306)이 발생되는바, 결합된 최종 풀 해상도 프레임(306)은 각각의 GPU들에서 프로세싱된 타일링된 프레임들(202)의 모든 타일들을 포함한다. 결합된 풀 해상도 프레임(306)은 후속적으로 스크린 상에 디스플레이될 수 있다.
도 4는 본 발명의 실시예에 따른, 프레임이 복수의 GPU들에 의해 프로세싱되게 할 수 있는 프로세스의 흐름도이다. 동작(402)에서, 렌더링될 이미지에 대응하는 타일링된 프레임이 생성된다. 일 실시예에 따르면, 타일링된 프레임은, 전체 프레임(혹은 디스플레이 영역)이 타일들에 의해 덮이도록 복수의 타일들로 분할되는 프레임이다. 타일들의 크기는 일반적으로 16x16, 32x32 혹은 64x64 픽셀들이다. 프레임의 후속 프로세싱, 메모리 액세스 등은 개개의 타일들에 기반을 둘 수 있다. 일 실시예에 따르면, 타일은 자신의 상부 좌측 픽셀의 위치에 의해 프레임 내에서 식별될 수 있다.
일 실시예에 따르면, 타일링되는 프레임은, 대응하는 이미지가 렌더링될 디스플레이 상의 모든 픽셀 위치에 대해 하나 이상의 프래그먼트(fragment)들을 갖는 래스터라이즈된 데이터(rasterized data)를 포함한다. 래스터라이즈된 프레임의 픽셀들 및/또는 픽셀 프래그먼트들은, 버텍스 쉐이더(vertex shaders), 지오메트릭 쉐이더(geometric shaders) 및/또는 픽셀 쉐이더(pixel shaders)와 같은 하나 이상의 쉐이더 프로그램들의 출력일 수 있다. 쉐이더 프로그램들은 전형적으로, 픽셀들의 쿼드(quad)들, 즉 2x2 블록들을 프로세싱한다. 쉐이더들의 출력은, 블록들이 출력 버퍼에 기입되기 전에, 컬러 결합(color combining) 및 안티앨리어싱(antialiasing)과 같은 기능들을 수행하는 ROP에 의해 프로세싱될 수 있다. ROP는 타일링된 프레임을 정의하기 위해 출력 버퍼에 작용할 수 있다.
단계(404)에서, 타일들의 세트들이 복수의 프로세서들에 할당된다. 예를 들어, 상부 좌측 타일에서 시작하는, 타일링된 프레임의 모든 얼터네이트 타일이 GPU-1(104)에 할당될 수 있고, 나머지 타일들은 GPU-2(106)에 할당될 수 있다. 슈퍼타일 프레임들의 GPU-1 및 GPU-2로의 이러한 할당이 도 2에 도시되어 있다. 도 2에 도시된 바와 같이, 각각의 프로세서는, 자신에게 할당된 슈퍼타일 프레임을, 자신의 메모리에 저장하기 전에, 자신에게 할당된 타일들만을 저장함으로써, 압축한다. 각각의 GPU에 저장된 프레임이 압축 슈퍼타일 프레임이다. 일 실시예에서, 압축은, 각각의 프로세서들에 할당된 타일들을 정의하는 리스트 혹은 소정의 패턴 식별부를 유지시키고, 각각의 프로세서에서의 인접 메모리 내에 그 할당된 타일들을 저장함으로써, 달성된다.
단계(406)에서, 각각의 프로세서는 자신에게 할당된 타일들에 임의의 필요한 프로세싱을 수행한다. 이러한 프로세싱은, 예를 들어, 하나 이상의 쉐이더 프로그램들에 의한 프로세싱을 포함할 수 있다. 일 실시예에서, 각각의 프로세서가 자신에게 할당된 타일들의 프로세싱을 완료한 경우, 임의의 신호가 각각의 프로세서들로부터 (프레임을 형성하기 위해, 개별적으로 할당된 타일들의 재조립(reassembling)을 조정하는) 임의의 컴포넌트에 전송될 수 있다. 예를 들어, 메시지 패킷(message packet)이 전송될 수 있고, 레지스터 값이 설정될 수 있으며, 그리고/또는 하드웨어 신호가 어써트(assert)될 수 있다.
단계(408)에서, 각각의 프로세서에서의 압축 슈퍼타일 프레임이 판독된다. 일 실시예에서, 그래픽 드라이버 혹은 다른 로직이, 각각의 프로세서로부터, 그 할당된 타일들의 프로세싱이 완료되었다는 신호를 수신한다. 그 다음에, 그래픽 드라이버 혹은 다른 로직은, 각각의 프로세서의 메모리로부터 압축 프레임의 검색을 진행할 수 있다. 일 실시예에서, 압축 프레임들을 수신 및 결합시키는 로직이 슈퍼타일 프레임 결합 로직 블록(132) 내에 구현된다.
단계(410)에서, 각각의 프로세서들로부터 검색된 압축 프레임들은 대응하는 확장 프레임을 생성하기 위해 압축해제된다. 압축 프레임들을 판독 및 결합시키는 로직은, 그래픽 프로세서 메모리로부터 압축 프레임을 판독하고 확장시켜 버퍼, 예를 들어, 시스템 메모리 혹은 그래픽 메모리에 기입할 수 있다. 일 실시예에 따르면, 압축 프레임의 판독은 타일별로 수행될 수 있다. 또 다른 예에서는, 압축 프레임 전체가 요청될 수 있다.
일 실시예에서, 확장 프레임(이것은 또한 "확장 슈퍼타일 프레임"으로서 지칭됨)은, 해당 프로세서에 할당되지 않은 각각의 타일에 대해 블랭크 타일들을 재삽입함으로써, 각각의 압축 프레임으로부터 구성된다. 블랭크 타일(즉, 유효 데이터를 포함하지 않는 것으로서 표시된 타일)은 유효 콘텐츠를 갖지 않는 픽셀들("블랭크 픽셀들")로서 정의된 픽셀들로 구성될 수 있다. 일 실시예에서, 블랭크 픽셀들은 0의 값을 갖는 픽셀들이다. 0의 값을 갖는 블랭크 픽셀들은 또한, "블랙 픽셀들(black pixels)"로서 지칭된다. 또 다른 실시예에서, 블랭크 픽셀들 및/또는 블랭크 타일들은, 각각의 압축 프레임들에 대응하는 확장 프레임들의 용이한 결합을 가능하게 하는 방식으로 표시될 수 있다.
단계(412)에서, 프로세싱된 타일들을 갖는 확장 프레임들은 결합되어 결합된 풀 해상도 프레임을 형성하게 된다. 일 실시예에 따르면, 결합 혹은 블렌딩은 각각의 확장 프레임들에 덧셈 연산을 실행함으로써 달성된다. 각각의 타일 위치에 대해, 단지 하나의 확장 프레임만이 비-블랭크 타일 값(non-blank tile value)을 갖기 때문에, 프레임들을 결합시키는 덧셈 연산의 결과는, 결합된 풀 해상도 프레임(여기서, 각각의 타일들은 프로세싱된 타일임)이다. 일 실시예에서, 결합된 풀 해상도 프레임은, 덧셈 연산을 수행하기 전에 각각의 블랭크 픽셀을 블랙 픽셀(즉, 0의 값을 갖는 픽셀)로 대체함으로써, 획득되는바, 여기서 풀 해상도 프레임의 각각의 픽셀의 값은 프로세싱된 값이다.
단계(414)에서는, 단계(412)에서 구성된 결합된 풀 해상도 프레임이 디스플레이될 수 있거나, 혹은 다른 목적을 위해서, 예를 들어, 디지털 방식으로 저장되기 위해서 사용될 수 있다.
도 5는 일 실시예에 따른, 복수의 압축 프레임들로부터, 결합된 풀 해상도 프레임을 구성하기 위한 방법(500)을 예시한다. 단계(502)에서는, 결합된 풀 해상도 프레임을 보유하기 위해 메모리 버퍼가 초기화된다. 메모리 버퍼는 프레임 버퍼, 그래픽 메모리 내의 메모리 영역, 혹은 시스템 메모리 영역 내의 메모리일 수 있다.
단계(503)에서, 압축 프레임을 기반으로 하여 구성될 확장 프레임을 보유하기 위한 메모리 영역이 초기화된다. 확장 프레임 메모리 영역은 확장될 각각의 압축 프레임을 위해 다시-초기화되어 다시-사용될 수 있다. 확장 프레임 메모리 영역은, 시스템 메모리, 그래픽 메모리, 혹은 다른 메모리 내에 있을 수 있다.
단계(504)에서, 압축 프레임이 메모리로부터 판독된다. 상기 단계(404)와 연계하여 설명된 바와 같이, 압축 프레임이 각각의 프로세서에 대응하는 그래픽 메모리에 저장될 수 있다. 대응하는 그래픽 메모리로부터 압축 프레임을 판독하는 것은, 타일들을 개별적으로 판독하는 것, 혹은 단일 판독 명령으로 프레임 전체를 판독하는 것, 혹은 중간 크기의 메모리를 판독하는 것에 기반을 둘 수 있다. 판독시, 압축 프레임 및/또는 그 일부분이 시스템 메모리 혹은 그래픽 메모리에 기입될 수 있다.
단계(506)에서, 최근 판독된 압축 프레임의 타일이 판독된다. 최근 판독된 압축 프레임을 프로세싱함에 있어서 단계(506)의 각각의 호출의 경우, 최근 판독된 압축 프레임으로부터의 타일들은 압축 프레임의 상부 좌측 코너에서 시작하여 좌-우 상-하 패턴으로 진행하는 순으로 판독될 수 있다.
단계(508)에서, 확장 프레임 내에서의 타일의 위치가 결정된다. 일 실시예에 따르면, 확장 프레임 내에서의 타일의 위치는 각각의 프로세서들에 대한 타일 할당의 패턴에 근거하여 결정될 수 있다. 또 다른 실시예에서, 각각의 타일은 그 안에 확장 프레임 내에서의 자신의 위치가 인코딩되게 할 수 있다. 예를 들어, 타일은, 각각의 프로세서들에서의 프로세싱 이전에, 본래의 타일링된 프레임 내에서의 자신의 위치가 인코딩되게 할 수 있다. 결정된 위치에 근거하여, 타일은 확장 프레임 내에 삽입될 수 있다.
단계(510)에서, 최근 삽입된 타일의 위치에 근거하여, 블랭크 픽셀들이 최근 삽입된 타일에 인접하여 삽입된다. 단계(410)와 연계되어 앞서 설명된 바와 같이, 블랭크 픽셀들은, 확장 프레임 내에서 해당 픽셀이 유효 데이터를 갖지 않음을 표시하기 위해 구현에 따라 특정된 방식으로 정의될 수 있다. 일 실시예에 따르면, 각각의 압축 프레임이 본래의 타일링된 프레임으로부터의 타일들을 포함하는 경우(이 타일들은 체커보드 패턴으로 2개의 프로세서들에 할당됨), 블랭크 픽셀들은 최근 할당된 타일의 인접 타일들(즉, 좌측, 우측, 상부, 및 하부 타일들)에 할당될 수 있다.
단계(512)에서, 최근 삽입된 타일이 현재 프레임에서의 마지막 셀인지 여부가 결정된다. 만약 마지막 셀이 아니라면, 현재 프레임 내의 모든 타일들이 프로세싱될 때까지 단계들(506-512)이 반복된다. 현재 프레임의 마지막 타일이 확장 프레임 내에 삽입되고 그 대응하는 블랭크 픽셀들이 삽입된 이후, 프로세싱은 단계(514)로 진행한다.
단계(514)에서, 현재 확장 프레임은 현재 결합된 풀 해상도 프레임과 결합된다. 일 실시예에 따르면, 이러한 결합은, 현재 확장 프레임을 현재 결합된 풀 해상도 프레임에 더함으로써 달성된다. 본 발명의 실시예들에서는, 단지 하나의 확장 프레임만이 그 결합된 풀 해상도 프레임 내에서의 특정 타일 위치에 대해 유효 픽셀 데이터를 가지기 때문에, 덧셈 연산에 의한 결합이 이용가능하다.
단계(516)에서, 마지막 압축 프레임이 프로세싱되었는지 여부가 결정된다. 앞서 설명된 바와 같이, 현재 프로세싱되는 본래의 타일링된 프레임은 복수의 프로세서들 간에 할당될 수 있어 각각의 프로세서가 압축 프레임을 프로세싱하게 된다. 만약 마지막 압축 프레임이 프로세싱되지 않았다면, 프로세싱은 단계(504)로 되돌아 가서, 마지막 압축 프레임이 확장되어 풀 해상도 프레임에 결합될 때까지 단계들(504-516)이 반복된다. 마지막 압축 프레임이 풀 해상도 프레임에 결합되는 경우, 본래의 타일링된 프레임의 프로세싱은 완료되고, 각각의 프로세서들에서 개별적으로 프로세싱된 압축 프레임들을 결합시킴으로써, 결합된 풀 해상도 프레임이 구성되게 된다.
본 발명의 실시형태들을 수행하기 위해 로직(logic)에 의해 실행되는 명령들은, 다양한 프로그래밍 언어(예를 들어, C, C++, 어셈블리, 및/또는 하드웨어 기술 언어(Hardware Description Language, HDL))로 코딩될 수 있고, 아울러 로직 혹은 다른 디바이스에 의해 실행될 수 있는 오브젝트 코드(object code)로 컴파일링될 수 있다.
앞서 설명된 실시예들은, 베리로그(Verilog), RTL, 넷리스트(netlists) 등과 같은 하드웨어 기술 언어로 기술될 수 있고, 그리고 이러한 기술(description)들은, 본 명세서에서 설명되는 바와 같은 본 발명의 실시형태들을 구현하는 하나 이상의 하드웨어 디바이스들을 발생시키기 위해, 마스크워크(maskworks)/포토마스크(photomasks)의 생성을 통해 제조 공정을 궁극적으로 구성하는데 사용될 수 있다.
본 발명의 실시형태들은 컴퓨터 판독가능 매체에 전체적으로 혹은 부분적으로 저장될 수 있다. 컴퓨터 판독가능 매체에 저장된 명령들은 프로세서로 하여금 본 발명의 실시예들을 전체적으로 혹은 부분적으로 수행하도록 할 수 있다.
본 발명은 특정 기능들 및 이들의 관계의 구현을 나타내는 기능적 빌딩 블록들의 도움을 받아 앞서 설명되었다. 이러한 기능적 빌딩 블록들의 범위는 설명의 편의를 위해 본 명세서에서 임의적으로 정의되었다. 특정 기능들 및 이들의 관계가 적절하게 수행되는 한 다른 범위가 정의될 수 있다.
본 발명의 다양한 실시예들이 앞서 설명되었지만, 이들은 비한정적 의미로 단지 예시적으로 제공되었음을 이해해야 한다. 본 발명의 사상 및 범위를 벗어남이 없이 그 형태 및 세부적 사항에서 다양한 변경이 행해질 수 있음은 관련 기술분야에서 숙련된 자들에게는 명백할 것이다. 따라서, 본 발명의 범위 및 영역은 앞서 설명된 예시적 실시예들 중 어느 하나에 의해 한정돼서는 안 되며, 단지 다음의 특허청구범위 및 그 등가물에 따라서만 정의돼야 한다.
특정 실시예들의 앞서의 설명은, 본 발명의 일반적 성질을 매우 충분히 개시하고 있어, 다른 사람들은, 본 발명의 기술분야에서 숙련된 자의 지식 범위 내에 있는 지식을 적용함으로써, 과도한 실험 없이, 본 발명의 전체적 개념으로부터 벗어남이 없이, 다양한 애플리케이션에 대해 이러한 특정 실시예들을 쉽게 수정 및/또는 조정할 수 있다. 따라서, 이러한 조정 및 수정은, 본 명세서에서 제공되는 가르침 및 지침에 근거하여, 본 명세서에서 개시되는 실시예들의 등가물의 의미 및 범위 내에 있게 된다. 본 명세서에서의 어구 혹은 용어는 한정의 목적이 아닌 설명의 목적으로 사용되었고, 이에 따라 본 명세서에서의 용어 혹은 어구는 본 명세서의 가르침 및 지침을 고려하여 숙련된 당업자에 의해 해석돼야 하는 그러한 것임을 이해해야 한다.

Claims (20)

  1. 복수의 압축 슈퍼타일 프레임(compressed supertile frame)들로부터 이미지 프레임(image frame)을 디스플레이하기 위한 시스템에서의 사용을 위한 방법으로서,
    제어 프로세서(control processor)를 사용하여, 시스템 메모리(system memory)로부터 판독된 복수의 타일(tile)들로부터 하나 이상의 압축 슈퍼타일 프레임들을 생성하는 단계와, 여기서 상기 압축 슈퍼타일 프레임들은 발생될 이미지에 대응하고;
    복수의 그래픽 프로세싱 유닛(graphics processing unit)들을 사용하여, 상기 하나 이상의 압축 슈퍼타일 프레임들을 프로세싱하는 단계와, 여기서 각각의 그래픽 프로세싱 유닛은 상기 그래픽 프로세싱 유닛에 할당된 상기 하나 이상의 압축 슈퍼타일 프레임들을 프로세싱하고;
    슈퍼타일 프레임 결합기(supertile frame combiner)를 사용하여, 상기 압축 슈퍼타일 프레임들을 판독하고, 그리고 확장 슈퍼타일 프레임(expanded supertile frame)을 발생시키기 위해 상기 압축 슈퍼타일 프레임들 각각을 확장시키는 단계와, 여기서 상기 확장 슈퍼타일 프레임은 각각의 그래픽 프로세싱 유닛에서 발생되고, 상기 확장 슈퍼타일 프레임은 각각의 압축 슈퍼타일 프레임에 대해 생성되며, 상기 확장 슈퍼타일 프레임은 상기 그래픽 프로세싱 유닛에 할당되지 않은 각각의 타일에 대해서 하나 이상의 타일들에 대한 블랭크 타일(blank tile)들을 포함하고;
    상기 슈퍼타일 프레임 결합기를 사용하여, 이미지 프레임을 발생시키기 위해 상기 확장 슈퍼타일 프레임들을 결합시키는 단계와; 그리고
    상기 발생된 이미지 프레임을 디스플레이 상에 디스플레이하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 제어 프로세서를 사용하여, 상기 복수의 타일들로부터 복수의 슈퍼타일 프레임들을 결정하는 단계와;
    상기 제어 프로세서를 사용하여, 상기 슈퍼타일 프레임들 중 하나 이상을 각각의 그래픽 프로세싱 유닛에 할당하는 단계와; 그리고
    상기 제어 프로세서를 사용하여, 상기 슈퍼타일 프레임들의 각각의 슈퍼타일 프레임들을 압축하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 슈퍼타일 프레임들 각각은 상기 이미지 프레임의 비인접 타일들(non-adjacent tiles)을 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 각각의 슈퍼타일 프레임들을 개개의 그래픽 프로세싱 유닛들에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제2항에 있어서,
    상기 압축하는 단계는, 상기 슈퍼타일 프레임들의 각각의 슈퍼타일 프레임들에 대해, 대응하는 프로세서에 할당된 타일들의 세트를 저장하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 확장시키는 단계는 상기 결합시키는 단계와 함께 수행되는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 결합시키는 단계는, 덧셈 연산(add operation)을 사용하여 상기 확장 슈퍼타일 프레임들을 결합시키는 것을 포함하는 것을 특징으로 하는 방법.
  8. 이미지 프레임의 복수의 압축 슈퍼타일 프레임들로부터 상기 이미지 프레임을 디스플레이하기 위한 시스템으로서,
    제어 프로세서와;
    복수의 그래픽 프로세싱 유닛들과;
    시스템 메모리와;
    슈퍼타일 프레임 결합기와; 그리고
    디스플레이를 포함하여 구성되며,
    상기 제어 프로세서는, 상기 시스템 메모리로부터 판독된 복수의 타일들로부터 하나 이상의 압축 슈퍼타일 프레임들을 생성하도록 되어 있고, 여기서 상기 압축 슈퍼타일 프레임들은 발생될 이미지에 대응하며;
    상기 복수의 그래픽 프로세싱 유닛들은 상기 제어 프로세서에 결합되고, 각각의 그래픽 프로세싱 유닛은, 상기 하나 이상의 압축 슈퍼타일 프레임들을 프로세싱하도록 되어 있으며, 여기서 각각의 그래픽 프로세싱 유닛은 상기 그래픽 프로세싱 유닛에 할당된 상기 하나 이상의 압축 슈퍼타일 프레임들을 프로세싱하고;
    상기 시스템 메모리는 상기 제어 프로세서 및 상기 복수의 그래픽 프로세싱 유닛들에 결합되고;
    상기 슈퍼타일 프레임 결합기는,
    상기 압축 슈퍼타일 프레임들을 판독하도록 되어 있고,
    확장 슈퍼타일 프레임을 발생시키기 위해 상기 압축 슈퍼타일 프레임들 각각을 확장시키도록 되어 있고, 여기서 상기 확장 슈퍼타일 프레임은 각각의 그래픽 프로세싱 유닛에서 발생되고, 상기 확장 슈퍼타일 프레임은 각각의 압축 슈퍼타일 프레임에 대해 생성되고, 상기 확장 슈퍼타일 프레임은 상기 그래픽 프로세싱 유닛에 할당되지 않은 각각의 타일에 대해서 하나 이상의 타일들에 대한 블랭크 타일들을 포함하고, 그리고
    이미지 프레임을 발생시키기 위해 상기 확장 슈퍼타일 프레임들을 결합시키도록 되어 있고;
    상기 디스플레이는 상기 발생된 이미지 프레임을 디스플레이하도록 되어 있는 것을 특징으로 하는 시스템.
  9. 제8항에 있어서,
    상기 제어 프로세서는 또한,
    상기 복수의 타일들로부터 복수의 슈퍼타일 프레임들을 결정하도록 되어 있고;
    상기 슈퍼타일 프레임들 중 하나 이상을 각각의 그래픽 프로세싱 유닛에 할당하도록 되어 있고; 그리고
    상기 슈퍼타일 프레임들의 각각의 슈퍼타일 프레임들을 압축하도록 되어 있는 것을 특징으로 하는 시스템.
  10. 제9항에 있어서,
    상기 압축하는 것은, 상기 슈퍼타일 프레임들의 각각의 슈퍼타일 프레임들에 대해, 대응하는 그래픽 프로세싱 유닛에 할당된 타일들의 세트를 저장하는 것을 포함하는 것을 특징으로 하는 시스템.
  11. 제8항에 있어서,
    상기 슈퍼타일 프레임들 각각은 상기 이미지 프레임의 비인접 타일들을 포함하는 것을 특징으로 하는 시스템.
  12. 제8항에 있어서,
    상기 확장시키는 것은 상기 결합시키는 것과 함께 수행되는 것을 특징으로 하는 시스템.
  13. 명령들을 저장하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령들이 실행될 때, 상기 명령들은 복수의 압축 슈퍼타일 프레임들로부터 이미지 프레임을 디스플레이하도록 되어 있고, 상기 복수의 압축 슈퍼타일 프레임들로부터 상기 이미지 프레임을 디스플레이하는 것은,
    시스템 메모리로부터 판독된 복수의 타일들로부터 하나 이상의 압축 슈퍼타일 프레임들을 생성하는 단계와, 여기서 상기 압축 슈퍼타일 프레임들은 발생될 이미지에 대응하고;
    상기 하나 이상의 압축 슈퍼타일 프레임들을 프로세싱하는 단계와, 여기서 각각의 그래픽 프로세싱 유닛은 상기 그래픽 프로세싱 유닛에 할당된 상기 하나 이상의 압축 슈퍼타일 프레임들을 프로세싱하고;
    상기 압축 슈퍼타일 프레임들을 판독하고, 그리고 확장 슈퍼타일 프레임을 발생시키기 위해 상기 압축 슈퍼타일 프레임들 각각을 확장시키는 단계와, 여기서 상기 확장 슈퍼타일 프레임은 각각의 그래픽 프로세싱 유닛에서 발생되고, 상기 확장 슈퍼타일 프레임은 각각의 압축 슈퍼타일 프레임에 대해 생성되며, 상기 확장 슈퍼타일 프레임은 상기 그래픽 프로세싱 유닛에 할당되지 않은 각각의 타일에 대해서 하나 이상의 타일들에 대한 블랭크 타일들을 포함하고;
    이미지 프레임을 발생시키기 위해 상기 확장 슈퍼타일 프레임들을 결합시키는 단계와; 그리고
    상기 발생된 이미지 프레임을 디스플레이 상에 디스플레이하는 단계를
    포함하는 방법을 수행함으로써 행해지는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  14. 제13항에 있어서,
    상기 방법은 또한, 상기 압축 슈퍼타일 프레임들 중 하나 이상을 복수의 프로세서들 각각에서 프로세싱하는 단계를 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  15. 제13항에 있어서,
    상기 방법은 또한,
    상기 복수의 타일들로부터 복수의 슈퍼타일 프레임들을 결정하는 단계와;
    상기 슈퍼타일 프레임들 중 하나 이상을 각각의 그래픽 프로세싱 유닛에 할당하는 단계와; 그리고
    상기 슈퍼타일 프레임들의 각각의 슈퍼타일 프레임들을 압축하는 단계를 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  16. 제13항에 있어서,
    상기 슈퍼타일 프레임들 각각은 상기 이미지 프레임의 비인접 타일들을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 매체.
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020137004198A 2010-07-19 2011-07-19 압축된 슈퍼타일 이미지들의 디스플레이 KR101692460B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US36570610P 2010-07-19 2010-07-19
US61/365,706 2010-07-19
PCT/IB2011/002209 WO2012010968A1 (en) 2010-07-19 2011-07-19 Displaying compressed supertile images

Publications (2)

Publication Number Publication Date
KR20130132752A KR20130132752A (ko) 2013-12-05
KR101692460B1 true KR101692460B1 (ko) 2017-01-03

Family

ID=45496573

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137004198A KR101692460B1 (ko) 2010-07-19 2011-07-19 압축된 슈퍼타일 이미지들의 디스플레이

Country Status (6)

Country Link
US (1) US9064468B2 (ko)
EP (1) EP2596491B1 (ko)
JP (1) JP5823515B2 (ko)
KR (1) KR101692460B1 (ko)
CN (1) CN103026402B (ko)
WO (1) WO2012010968A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2494903B (en) * 2011-09-22 2017-12-27 Advanced Risc Mach Ltd Graphics processing systems
GR20140100528A (el) * 2014-10-20 2016-06-01 Arm Limited Ενας βασισμενος σε πλακιδια επεξεργαστης γραφικων και μια μεθοδος επεξεργασιας γραφικων σε ενα βασισμενο σε πλακιδια επεξεργαστη
US10163180B2 (en) * 2015-04-29 2018-12-25 Qualcomm Incorporated Adaptive memory address scanning based on surface format for graphics processing
US11150943B2 (en) * 2017-04-10 2021-10-19 Intel Corporation Enabling a single context hardware system to operate as a multi-context system
US10950305B1 (en) * 2018-11-02 2021-03-16 Facebook Technologies, Llc Selective pixel output
CN115210748B (zh) 2020-02-03 2023-11-24 索尼互动娱乐股份有限公司 渲染时通过区域测试进行几何图形高效多gpu渲染的系统和方法
US11080814B1 (en) 2020-02-03 2021-08-03 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using prior frame information
US11263718B2 (en) 2020-02-03 2022-03-01 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by pretesting against in interleaved screen regions before rendering
US11170461B2 (en) 2020-02-03 2021-11-09 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering
US11321800B2 (en) 2020-02-03 2022-05-03 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by region testing while rendering
US11508110B2 (en) 2020-02-03 2022-11-22 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by performing geometry analysis before rendering
US11120522B2 (en) 2020-02-03 2021-09-14 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by subdividing geometry
EP4100922A1 (en) 2020-02-03 2022-12-14 Sony Interactive Entertainment Inc. System and method for efficient multi-gpu rendering of geometry by pretesting against interleaved screen regions before rendering
US11514549B2 (en) 2020-02-03 2022-11-29 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by generating information in one rendering phase for use in another rendering phase
WO2021158468A1 (en) * 2020-02-03 2021-08-12 Sony Interactive Entertainment Inc. System and method for efficient multi-gpu rendering of geometry by geometry analysis while rendering

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143599A (ja) 2001-10-30 2003-05-16 Mitsubishi Electric Corp 画像伝送装置および画像伝送方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245865A (ja) * 1991-01-31 1992-09-02 Toshiba Corp 画像処理装置
JP3238584B2 (ja) * 1993-12-16 2001-12-17 松下電器産業株式会社 マルチウィンドウ装置
US6630933B1 (en) * 2000-09-01 2003-10-07 Ati Technologies Inc. Method and apparatus for compression and decompression of Z data
US8933945B2 (en) * 2002-11-27 2015-01-13 Ati Technologies Ulc Dividing work among multiple graphics pipelines using a super-tiling technique
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8111928B2 (en) * 2003-02-13 2012-02-07 Ati Technologies Ulc Method and apparatus for compression of multi-sampled anti-aliasing color data
CN1472704A (zh) * 2003-06-27 2004-02-04 上海龙贝信息科技有限公司 二维条形码数字图像信息的增强方法
US7075541B2 (en) 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US7383412B1 (en) * 2005-02-28 2008-06-03 Nvidia Corporation On-demand memory synchronization for peripheral systems with multiple parallel processors
US7613346B2 (en) * 2005-05-27 2009-11-03 Ati Technologies, Inc. Compositing in multiple video processing unit (VPU) systems
US7649537B2 (en) * 2005-05-27 2010-01-19 Ati Technologies, Inc. Dynamic load balancing in multiple video processing unit (VPU) systems
US7612783B2 (en) * 2006-05-08 2009-11-03 Ati Technologies Inc. Advanced anti-aliasing with multiple graphics processing units
EP1889732A1 (en) * 2006-08-18 2008-02-20 Setec Oy Method of superimposing an image onto another, method of personalizing a data carrier using the the method
US8154556B1 (en) * 2007-11-06 2012-04-10 Nvidia Corporation Multiple simultaneous unique outputs from a single display pipeline
CN101452690A (zh) * 2007-11-29 2009-06-10 华邦电子股份有限公司 图像处理方法及系统
US8547382B2 (en) * 2008-05-30 2013-10-01 Advanced Micro Devices, Inc. Video graphics system and method of pixel data compression
US20100066900A1 (en) * 2008-09-12 2010-03-18 Himax Technologies Limited Image processing method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143599A (ja) 2001-10-30 2003-05-16 Mitsubishi Electric Corp 画像伝送装置および画像伝送方法

Also Published As

Publication number Publication date
CN103026402B (zh) 2017-03-29
CN103026402A (zh) 2013-04-03
JP5823515B2 (ja) 2015-11-25
WO2012010968A1 (en) 2012-01-26
EP2596491A4 (en) 2015-03-04
JP2013541746A (ja) 2013-11-14
KR20130132752A (ko) 2013-12-05
US9064468B2 (en) 2015-06-23
EP2596491B1 (en) 2017-08-30
EP2596491A1 (en) 2013-05-29
US20120162250A1 (en) 2012-06-28

Similar Documents

Publication Publication Date Title
KR101692460B1 (ko) 압축된 슈퍼타일 이미지들의 디스플레이
CN106897143B (zh) 图形处理系统和在图形处理系统中处理基元片段的方法
US8963931B2 (en) Tiling compaction in multi-processor systems
US10885607B2 (en) Storage for foveated rendering
JP5595739B2 (ja) グラフィックスを処理する方法およびそのための装置
JP6185211B1 (ja) 適応的シェーディングによるテクスチャルックアップを使用した帯域幅低減
JP5336067B2 (ja) グラフィックスを処理する方法および装置
CN105023233B (zh) 图形处理系统及其操作方法、计算机存储介质
US9934551B2 (en) Split storage of anti-aliased samples
TW201516953A (zh) 圖形處理系統
KR20190100194A (ko) 타일식 아키텍처들에서의 포비티드 렌더링
US8395619B1 (en) System and method for transferring pre-computed Z-values between GPUs
US9070200B2 (en) Graphics processing systems
CN104134183A (zh) 图形处理系统
WO2016093990A1 (en) Processing unaligned block transfer operations
US9916675B2 (en) Graphics processing systems
US11321803B2 (en) Graphics processing primitive patch testing
US20240193718A1 (en) Graphics processor
US20230196624A1 (en) Data processing systems
US20240104685A1 (en) Device and method of implementing subpass interleaving of tiled image rendering
US20230186523A1 (en) Method and system for integrating compression
CN116508051A (zh) 数据处理系统

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20191127

Year of fee payment: 4