KR20160069801A - 렌더링 방법 및 장치 - Google Patents

렌더링 방법 및 장치 Download PDF

Info

Publication number
KR20160069801A
KR20160069801A KR1020140175872A KR20140175872A KR20160069801A KR 20160069801 A KR20160069801 A KR 20160069801A KR 1020140175872 A KR1020140175872 A KR 1020140175872A KR 20140175872 A KR20140175872 A KR 20140175872A KR 20160069801 A KR20160069801 A KR 20160069801A
Authority
KR
South Korea
Prior art keywords
tile
rendered
identification code
previous
rendering
Prior art date
Application number
KR1020140175872A
Other languages
English (en)
Other versions
KR102276909B1 (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 삼성전자주식회사
Priority to KR1020140175872A priority Critical patent/KR102276909B1/ko
Priority to JP2015239657A priority patent/JP6778485B2/ja
Priority to US14/962,648 priority patent/US9959659B2/en
Priority to EP15198677.5A priority patent/EP3032499B1/en
Priority to CN201510902852.4A priority patent/CN105701852B/zh
Publication of KR20160069801A publication Critical patent/KR20160069801A/ko
Application granted granted Critical
Publication of KR102276909B1 publication Critical patent/KR102276909B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Generation (AREA)

Abstract

일 실시 예에 따른 렌더링 방법은 타일 기반 렌더링 방법에 있어서, 현재 프레임에 대한 비닝(bining)을 수행하는 단계; 상기 현재 프레임에서 렌더링할 타일의 비닝 정보 또는 상기 렌더링할 타일의 속성 정보에 대한 식별 코드를 생성하는 단계; 상기 렌더링할 타일의 식별 코드와 이전 프레임에서 상기 렌더링할 타일과 동일한 위치의 이전 타일의 식별 코드를 비교하는 단계; 및 상기 비교 결과에 기초하여, 프레임 버퍼에 저장된 이미지를 재사용하거나 상기 렌더링할 타일에 대한 픽셀 처리를 수행하여 상기 현재 프레임을 렌더링하는 단계를 포함한다.

Description

렌더링 방법 및 장치{Apparatus and Method for rendering}
3차원 데이터를 렌더링하는 방법 및 장치에 관한 것이다.
3D 그래픽스 API(Application Program Interface) 표준들로는 OpenGL, OpenGL ES 또는 Direct 3 등이 있다. API 표준들은 각 프레임에 대한 렌더링(rendering)을 수행하고, 영상을 표시하는 방법을 포함한다. 각 프레임에 대한 렌더링을 수행할 때, 많은 연산이 수행되며, 많은 전력이 소모된다. 따라서, 렌더링을 수행할 때, 연산량을 줄이고, 메모리에 접속(access)하는 횟수를 줄일 필요가 있다.
동일한 타일에 대해서는 픽셀 처리를 생략하여, 연산량을 줄이기 위한 렌더링 장치 및 방법을 제공하는 데 있다.
또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다. 본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 실시 예에 따른 렌더링 방법은 타일 기반 렌더링 방법에 있어서, 현재 프레임에 대한 비닝(bining)을 수행하는 단계; 상기 현재 프레임에서 렌더링할 타일의 비닝 정보 또는 속성 정보에 대한 식별 코드를 생성하는 단계; 상기 렌더링할 타일의 식별 코드와 이전 프레임에서 상기 렌더링할 타일과 동일한 위치의 이전 타일의 식별 코드를 비교하는 단계; 및 상기 비교 결과에 기초하여, 프레임 버퍼에 저장된 이미지를 재사용하거나 상기 렌더링할 타일에 대한 픽셀 처리를 수행하여 상기 현재 프레임을 렌더링하는 단계를 포함한다.
도 1은 장치들의 연결관계를 설명하기 위한 도면이다.
도 2는 일 실시 예에 따른 렌더링 장치의 동작을 설명하기 위한 도면이다.
도 3은 프레임 단위로 입력되는 드로우콜을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 렌더링 장치를 설명하기 위한 구성도이다.
도 5는 도 4의 동일성 판단부의 동작을 설명하기 위한 도면이다.
도 6은 일 실시 예에 따른 렌더링 방법을 설명하기 위한 도면이다.
도 7은 일 실시 예에 따른 렌더링 방법을 설명하기 위한 도면이다.
도 8은 일 실시 예에 따른 렌더링 방법을 설명하기 위한 도면이다.
도 9는 일 실시 예에 따른 렌더링 방법을 설명하기 위한 순서도이다.
도 10은 일 실시 예에 따른 렌더링 방법을 설명하기 위한 순서도이다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 장치들의 연결관계를 설명하기 위한 도면이다.
어플리케이션(100)은 특정한 기능을 수행하도록 설계된 프로그램이다.
어플리케이션(100)은 이지미 처리와 관련된 커맨드들을 디바이스 드라이버(200)로 전송한다. 어플리케이션(100)은 다양한 형태의 커맨드들을 디바이스 드라이버(200)로 전송할 수 있다.
디바이스 드라이버(200)는 어플리케이션(100)으로부터 수신된 커맨드에 따라 그래픽 렌더링 작업(graphic rendering job)을 렌더링 장치(300)로 출력한다.
렌더링 장치(300)는 그래픽 처리를 수행하는 장치이다. 예를 들어, 렌더링 장치(300)는 GPU(graphic processing unit)일 수 있다.
렌더링 장치(300)는 디바이스 드라이버(200)로부터 수신된 그래픽 렌더링 작업에 따라, 이미지를 생성하고 생성된 이미지를 어플리케이션(100)으로 출력한다.
렌더링 장치(300)는 타일 단위로 렌더링할 수 있다. 타일 기반 렌더링 방법(tile-based rendering method)은 프레임을 복수의 타일들로 분할하고, 타일 단위로 이미지를 생성하는 방법이다.
프레임 버퍼(240)는 프레임에 대한 이미지를 저장한다. 프레임 버퍼(240)는 일종의 메모리이다. 프레임 버퍼(240)는 렌더링 장치(300)로부터 수신되는 이미지를 저장한다.
일 실시 예에 따른 렌더링 장치(300)는 서로 다른 프레임의 동일한 타일에 대해서는 픽셀 처리를 생략함으로써 연산량을 줄일 수 있다. 또한, 일 실시 예에 따른 렌더링 장치(300)는 프레임 버퍼(400)에 데이터를 기록하는 과정을 생략함으로써 렌더링 장치(300)와 프레임 버퍼(400) 사이에 발생하는 트래픽을 줄일 수 있다.
도 2는 렌더링 장치의 동작을 설명하기 위한 도면이다. 도 2를 참조하면, 렌더링 장치(300)는 N번째 프레임을 참조하여 N+1번째 프레임을 렌더링할 수 있다. 다시 말해서, 렌더링 장치(300)는 N+1번째 프레임의 타일들 중에서 N번째 프레임의 타일과 동일한 타일이 있는 경우, N번째 프레임의 렌더링 결과를 재사용하여 N+1번째 프레임을 렌더링할 수 있다.
도 2를 통해 구체적으로 설명하면, 도 2는 N번째 프레임과 N+1번째 프레임을 나타내며, N번째 프레임은 N+1번째 프레임 이전에 이미 렌더링이 완료된 프레임이다. N번째 프레임과 N+1번째 프레임은 총 20개의 타일들로 구분된다. N번째 프레임은 이전 프레임일 수 있고, N+1번째 프레임은 현재 프레임일 수 있다. 동일한 순번의 타일은 동일한 위치의 타일을 나타낸다. 예를 들어, N번째 프레임의 Tile7과 N+1번째 프레임의 Tile7은 동일한 위치의 타일을 나타낸다.
N번째 프레임을 참조하면, 삼각형은 타일 1, 타일 5, 타일 6 및 타일 7에 표시되고, 동그라미는 타일 12, 타일 13, 타일 17 및 타일 18에 표시된다. N+1번째 프레임을 참조하면, 삼각형은 타일 1, 타일 5, 타일 6 및 타일 7에 표시되고, 동그라미는 타일 13, 타일 14, 타일 18 및 타일 19에 표시된다. N번째 프레임과 N+1번째 프레임의 20개의 타일들 중에서, 타일 0 내지 타일 11, 타일 15, 타일 16은 동일한 이미지를 나타낸다. 하지만, N번째 프레임과 N+1번째 프레임의 타일 12 내지 타일 14, 타일 17 내지 타일 19는 서로 상이하다.
렌더링 장치(300)는 N+1번째 프레임의 타일들 중에서 N번째 프레임의 타일과 동일한 이미지를 나타내는 타일은 N번째 프레임의 타일을 렌더링하여 생성된 이미지를 재사용한다. 따라서, 렌더링 장치(300)는 N+1번째 프레임의 타일들 중에서, 타일 0 내지 타일 11, 타일 15, 타일 16은 N번째 프레임의 타일을 렌더링한 이미지를 재사용하여 렌더링하고, 나머지 타일들에 대해서만 픽셀 처리하여 렌더링한다.
도 3은 프레임 단위로 입력되는 드로우콜을 설명하기 위한 도면이다. 도 3을 참조하면, 렌더링 장치(300)는 도 3과 같은 형태의 명령을 수신하여 렌더링을 수행한다.
프레임 넘버는 프레임을 순서를 나타내고, 드로우콜은 프레임에 무슨 이미지를 렌더링할 것인지를 나타내는 명령이다. Gstate는 드로우콜마다 부여된다. Operation은 각각의 드로우콜의 내용을 나타낸다.
렌더링 장치(300)는 N번째 프레임에 대해 3개의 드로우콜을 수신하고, 드로우콜에 포함된 동작을 수행한다. 렌더링 장치(300)는 0번째 드로우콜을 수신하면, clear 동작을 수행하고, 1번째 드로우콜을 수신하면 삼각형을 그리고, 2번째 드로우콜을 수신하면 원을 그린다. 각각의 드로우콜에는 Gstate가 포함되며, Gstate는 렌더링 장치(300)가 드로우콜에 따른 동작을 수행할 때 적용되는 그래픽 효과를 나타낸다. 렌더링 장치(300)는 N+1번째 프레임에 대해서도 N번째 프레임과 동일하게 동작한다.
도 3의 경우에는 N+1번째 프레임에 대해 수신된 명령과 N번째 프레임에 대해 수신된 명령이 동일한 경우를 나타내고 있다. 따라서, 렌더링 장치(300)는 N+1번째 프레임을 렌더링할 때, N번째 프레임의 렌더링 결과를 재사용할 수 있다.
도 4는 일 실시 예에 따른 렌더링 장치를 설명하기 위한 구성도이다. 도 4를 참조하면, 렌더링 장치(300)는 기하 처리부(310), 동일성 판단부(320) 및 픽셀 처리부(330)를 포함한다.
기하 처리부(310)는 현재 프레임에 대한 비닝을 수행한다. 기하 처리부(310)는 현재 프레임을 적어도 하나의 타일로 분할하고 타일에 대한 비닝을 수행할 수 있다. 타일은 프레임의 일부를 나타내고, 렌더링 장치(300)는 타일 단위로 이미지를 생성한다. 기하 처리부(310)가 타일에 대한 비닝을 수행하는 것은 타일마다 처리할 프리미티브(primitive) 리스트를 확인하는 과정을 나타낸다. 예를 들어, 기하 처리부(310)는 타일에 포함되는 프리미티브들을 구별하기 위해 프리미티브들에 번호 또는 ID를 부여할 수 있다.
동일성 판단부(320)는 렌더링할 타일의 비닝 정보 또는 속성 정보에 대한 식별 코드를 생성한다. 식별 코드는 다른 타일과 구분 가능한 고유의 데이터이다.
동일성 판단부(320)는 렌더링할 타일의 비닝 정보에 대한 제1 식별 코드 또는 렌더링할 타일의 속성 정보에 대한 제2 식별 코드를 생성한다. 동일성 판단부(320)는 렌더링할 타일의 비닝 정보 또는 속성 정보를 이용하여, 다른 타일과 구분 가능한 고유의 제1 또는 제2 식별 코드를 생성한다. 예를 들어, 제1 식별 코드는 비닝 정보에 대한 대표값이고, 제2 식별 코드는 속성 정보에 대한 대표값일 수 있다. 제1 및 제2 식별 코드는 비닝 정보 또는 속성 정보에 대한 에러 검출 코드(CRC)를 생성하는 방법 등을 사용하여 생성될 수 있다.
동일성 판단부(320)는 렌더링할 타일의 프리미티브 리스트를 나타내는 비닝 정보를 이용하여 제1 식별 코드를 생성한다. 타일이 달라지면 비닝 정보가 달라지므로, 제1 식별 코드도 달라진다.
동일성 판단부(320)는 렌더링할 타일의 attribute, Gstate 및 uniform 정보를 나타내는 속성 정보를 이용하여 렌더링할 타일의 제2 식별 코드를 생성한다. Attribute는 정점의 위치, 방향, 텍스쳐(texture)의 좌표, 연결 정보 등을 나타낸다. Gstate는 그래픽 스테이트를 나타내며, uniform은 타일에 동일하게 적용되는 효과를 나타내는 정보이다. 예를 들어, uniform은 반사, 투과, 흐리게 등과 같은 효과일 수 있다.
동일성 판단부(320)는 렌더링할 타일과 이전 타일의 식별 코드를 비교한다. 렌더링할 타일은 현재 프레임에 포함된 타일이고, 이전 타일은 렌더링된 이전 프레임에 포함된 타일이다. 다시 말해서, 이전 타일은 현재 프레임을 렌더링하기 이전에 가장 최근에 렌더링이 완료된 프레임에 포함된 타일이다. 동일성 판단부(320)는 현재 프레임과 이전 프레임에서 동일한 위치의 타일들의 식별 코드를 비교한다. 동일성 판단부(320)는 현재 프레임에서 렌더링할 타일과 동일한 위치의 이전 타일의 제1 식별 코드를 비교한다. 제1 식별 코드가 동일하면, 동일성 판단부(320)는 렌더링할 타일의 제2 식별 코드와 이전 타일의 제2 식별 코드를 비교한다. 제1 식별 코드가 동일하지 않으면, 동일성 판단부(320)는 제2 식별 코드에 대한 비교를 생략한다.
픽셀 처리부(330)는 동일성 판단부(320)의 비교 결과에 기초하여, 프레임 버퍼에 저장된 이미지를 재사용하거나 렌더링할 타일에 대한 픽셀 처리를 수행하여 현재 프레임을 렌더링한다. 픽셀 처리부(330)는 렌더링할 타일의 제1 및 제2 식별 코드와 이전 타일의 제1 및 제2 식별 코드가 모두 동일하면, 이전 타일의 이미지를 재사용한다. 다시 말해서, 픽셀 처리부(330)는 제1 식별 코드 및 제2 식별 코드가 동일한 이전 타일이 있는 경우, 렌더링할 타일에 대한 픽셀 처리를 생략하고, 프레임 버퍼(400)에 저장된 이전 타일의 이미지를 재사용한다. 픽셀 처리부(330)는 렌더링할 타일의 제1 또는 제2 식별 코드와 상기 이전 타일의 제1 또는 제2 식별 코드 중 어느 하나의 식별 코드라도 동일하지 않으면, 렌더링할 타일에 대한 픽셀 처리를 수행한다.
프레임 버퍼(400)는 렌더링된 이미지를 저장한다. 프레임 버퍼(400)는 프레임 단위로 또는 타일 단위로 이미지를 저장하고, 이미지를 어플리케이션(100)의 명령에 의해 출력할 수 있다.
도 5는 도 4의 동일성 판단부의 동작을 설명하기 위한 도면이다. 도 5를 참조하면, 동일성 판단부(320)는 제1 식별 코드 및 제2 식별 코드를 이용하여 타일의 동일성을 판단한다.
동일성 판단부(320)는 렌더링된 타일들 중에서, 렌더링할 타일과 동일한 위치의 이전 타일의 제1 또는 제2 식별 코드가 동일한지 비교한다. 동일성 판단부(320)는 렌더링할 타일의 제1 식별 코드와 이전 프레임에서 렌더링할 타일과 동일한 위치의 이전 타일의 제1 식별 코드를 비교하고, 제1 식별 코드가 동일한 경우, 렌더링할 타일의 제2 식별 코드와 이전 타일의 제2 식별 코드를 비교한다. 다시 말해서, 동일성 판단부(320)는 제1 식별 코드가 동일하지 않은 경우, 제2 식별 코드에 대한 비교를 생략한다.
도 6은 일 실시 예에 따른 렌더링 방법을 설명하기 위한 도면이다. 도 6을 참조하면, 렌더링 장치(300)는 attribute 정보를 이용하여 타일의 동일성을 우선적으로 판단할 수 있다. 렌더링 장치(300)는 속성 정보 중에서 attribute ID를 이용하여 타일의 동일성을 우선적으로 판단한다. attribute ID는 디바이스 드라이버(200)에 의해 부여될 수 있다. 렌더링 장치(300)는 렌더링할 타일과 이전 타일의 제1 식별 코드가 동일하면, 이전 타일의 attribute ID를 비교한다. 렌더링 장치(300)는 attribute ID의 동일성을 제2 식별 코드의 동일성 보다 우선하여 판단할 수 있다. 렌더링 장치(300)는 이전 타일과 렌더링할 타일의 attribute ID가 동일하면, 이전 타일과 렌더링할 타일의 제2 식별 코드를 비교한다. 렌더링 장치(300)는 이전 타일과 렌더링할 타일의 제1 식별 코드, attribute ID 및 제2 식별 코드가 모두 동일하면, 프레임 버퍼에 저장된 N번째 프레임의 이미지를 재사용하고, 그렇지 않으면 렌더링할 타일에 대해 픽셀 처리를 수행한다. 다만, 이전 타일과 렌더링할 타일의 attribute ID는 동일하나 제2 식별 코드가 다른 경우, 렌더링 장치(300)는 attribute가 동일한 특성을 이용하여 타일을 렌더링한다. 따라서, 동일성 판단부(320)는 이전 타일의 attribute와 렌더링할 타일의 attribute가 동일하다는 정보를 픽셀 처리부(330)로 전송할 수 있다. 픽셀 처리부(330)는 이전 타일의 렌더링 결과를 통해 attribute가 동일할 때 적용 가능한 특성을 이용하여 렌더링할 타일에 대한 픽셀 처리를 수행할 수 있다.
커맨드 프로세서(311), 입력 어셈블러(312), 버텍스 쉐이더(313), CCV(314) 및 Tiler(315)는 기하 처리부(310)에 포함되는 유닛들이다. Rasterizer(331), 픽셀 쉐이더(332), C/Z ROP(333)는 픽셀 처리부(330)에 포함되는 유닛들이다.
도 7은 일 실시 예에 따른 렌더링 방법을 설명하기 위한 도면이다. 도 7을 참조하면, 렌더링 장치(300)는 Gstate 정보를 이용하여 타일의 동일성을 우선적으로 판단할 수 있다. 렌더링 장치(300)는 속성 정보 중에서 Gstate ID를 이용하여 타일의 동일성을 우선적으로 판단한다. 렌더링 장치(300)는 렌더링할 타일의 제1 식별 코드와 이전 타일의 제1 식별 코드가 동일한지 비교하고, 제1 식별 코드가 동일하면 렌더링할 타일의 Gstate ID과 이전 타일의 Gstate ID를 비교한다. Gstate ID는 디바이스 드라이버(200)에 의해 부여될 수 있다. 렌더링 장치(300)는 Gstate ID의 동일성을 제2 식별 코드의 동일성 보다 우선하여 판단한다. 렌더링 장치(300)는 이전 타일과 렌더링할 타일의 Gstate ID가 동일하면, 이전 타일과 렌더링할 타일의 제2 식별 코드를 비교한다. 렌더링 장치(300)는 이전 타일과 렌더링할 타일의 제1 식별 코드, Gstate ID 및 제2 식별 코드가 모두 동일하면, 프레임 버퍼에 저장된 N번째 프레임의 이미지를 재사용하고, 그렇지 않으면 렌더링할 타일에 대해 픽셀 처리를 수행한다. 다만, 이전 타일과 렌더링할 타일의 Gstate ID는 동일하나 제2 식별 코드가 다른 경우, 렌더링 장치(300)는 Gstate가 동일한 특성을 이용하여 타일을 렌더링한다. 따라서, 동일성 판단부(320)는 이전 타일의 Gstate와 렌더링할 타일의 Gstate가 동일하다는 정보를 픽셀 처리부(330)로 전송할 수 있다. 픽셀 처리부(330)는 이전 타일의 렌더링 결과를 통해 Gstate가 동일할 때 적용 가능한 특성을 이용하여 렌더링할 타일에 대한 픽셀 처리를 수행할 수 있다.
도 8은 일 실시 예에 따른 렌더링 방법을 설명하기 위한 도면이다. 도 8을 참조하면, 렌더링 장치(300)는 uniform 정보를 이용하여 타일의 동일성을 우선적으로 판단할 수 있다. 렌더링 장치(300)는 속성 정보 중에서 uniform ID를 이용하여 타일의 동일성을 우선적으로 판단한다. 렌더링 장치(300)는 렌더링할 타일과 이전 타일의 제1 식별 코드가 동일한지 비교하고, 제1 식별 코드가 동일하면 렌더링할 타일과 이전 타일의 uniform ID를 비교한다. uniform ID는 디바이스 드라이버(200)에 의해 부여될 수 있다. 렌더링 장치(300)는 uniform ID를 제2 식별 코드 보다 우선하여 비교한다. 렌더링 장치(300)는 이전 타일과 렌더링할 타일의 uniform ID가 동일하면, 이전 타일과 렌더링할 타일의 제2 식별 코드를 비교한다. 렌더링 장치(300)는 이전 타일과 렌더링할 타일의 제1 식별 코드, uniform ID 및 제2 식별 코드가 모두 동일하면, 프레임 버퍼에 저장된 N번째 프레임의 이전 타일의 이미지를 재사용하고, 그렇지 않으면 렌더링할 타일에 대해 픽셀 처리를 수행한다. 다만, 이전 타일과 렌더링할 타일의 uniform ID는 동일하나 제2 식별 코드가 다른 경우, 렌더링 장치(300)는 uniform이 동일한 특성을 이용하여 타일을 렌더링한다. 따라서, 동일성 판단부(320)는 이전 타일의 uniform과 렌더링할 타일의 uniform이 동일하다는 정보를 픽셀 처리부(330)로 전송할 수 있다. 픽셀 처리부(330)는 이전 타일의 렌더링 결과를 통해 uniform이 동일할 때 적용 가능한 특성을 이용하여 렌더링할 타일에 대한 픽셀 처리를 수행할 수 있다.
도 9는 일 실시 예에 따른 렌더링 방법을 설명하기 위한 순서도이다. 도 9를 참조하면, 렌더링 장치(300)는 이전 프레임의 렌더링 결과를 이용하여 현재 프레임을 렌더링할 수 있다.
단계 910에서, 렌더링 장치(300)는 현재 프레임에 대한 비닝을 수행한다. 현재 프레임은 렌더링 장치(300)가 렌더링을 수행하고 있는 프레임을 나타낸다. 렌더링 장치(300)는 타일들 각각에 대해 비닝을 수행하여, 타일들에 포함되는 프리미티브 리스트를 생성한다.
단계 920에서, 렌더링 장치(300)는 현재 프레임에서 렌더링할 타일의 비닝 정보 또는 속성 정보에 대한 식별 코드를 생성한다. 렌더링 장치(300)는 비닝 정보에 대한 제1 식별 코드와 속성 정보 대한 제2 식별 코드 중 어느 하나만 생성하거나, 제1 및 제2 식별 코드 모두를 생성할 수 있다. 또한, 렌더링 장치(300)는 비닝 정보 및 속성 정보에 대한 식별 코드를 생성할 수도 있다.
단계 930에서, 렌더링 장치(300)는 렌더링할 타일의 식별 코드와 이전 프레임에서 렌더링할 타일과 동일한 위치의 이전 타일의 식별 코드를 비교한다. 예를 들어, 렌더링 장치(300)는 렌더링할 타일의 비닝 정보 또는 속성 정보를 이용하여 생성한 식별 코드와 이전 타일의 비닝 정보 또는 속성 정보를 이용하여 생성된 식별 코드를 비교할 수 있다. 또는, 렌더링 장치(300)는 렌더링할 타일의 비닝 정보에 대한 제1 식별 코드와 이전 타일의 비닝 정보에 대한 제1 식별 코드를 비교하고, 제1 식별 코드가 동일한 경우, 렌더링할 타일의 속성 정보에 대한 제2 식별 코드와 이전 타일의 속성 정보에 대한 제2 식별 코드를 비교한다.
단계 940에서, 렌더링 장치(300)는 비교 결과에 기초하여, 프레임 버퍼에 저장된 이미지를 재사용하거나 렌더링할 타일에 대한 픽셀 처리를 수행하여 현재 프레임을 렌더링한다. 렌더링 장치(300)는 식별 코드가 동일하면, 이전 타일의 렌더링 결과를 재사용하고, 그렇지 않으면, 렌더링 장치(300)는 타일에 대한 픽셀 처리를 수행한다. 또한, 렌더링할 타일의 제1 및 제2 식별 코드와 상기 이전 타일의 제1 및 제2 식별 코드가 모두 동일하면, 렌더링 장치(300)는 이전 타일의 렌더링 결과를 재사용하고, 렌더링할 타일의 제1 또는 제2 식별 코드와 상기 이전 타일의 제1 또는 제2 식별 코드 중 어느 하나의 식별 코드라도 동일하지 않으면, 렌더링 장치(300)는 타일에 대한 픽셀 처리를 수행한다.
도 10은 일 실시 예에 따른 렌더링 방법을 설명하기 위한 순서도이다. 도 10을 참조하면, 렌더링 장치(300)는 타일에 대한 식별 정보를 이용하여 타일의 동일성을 판단할 수 있다.
단계 1010에서, 렌더링 장치(300)는 현재 프레임에 대한 비닝을 수행한다. 단계 1020에서, 렌더링 장치(300)는 비닝 정보에 대한 제1 식별 코드를 생성한다.
단계 1030에서, 렌더링 장치(300)는 렌더링할 타일의 제1 식별 코드와 이전 프레임에서 렌더링할 타일과 동일한 위치의 이전 타일의 제1 식별 코드를 비교한다. 렌더링 장치(300)는 렌더링할 타일의 제1 식별 코드와 이전 타일의 제1 식별 코드가 동일하면, 단계 1040으로 진행하고, 그렇지 않은 경우, 단계 1070으로 진행한다.
단계 1040에서, 렌더링 장치(300)는 속성 정보에 대한 제2 식별 코드를 생성한다. 렌더링 장치(300)는 렌더링할 타일과 이전 타일의 제1 식별 코드가 동일한 경우, 제2 식별 코드를 생성할 수 있다.
단계 1050에서, 렌더링 장치(300)는 렌더링할 타일의 제2 식별 코드와 이전 타일의 제2 식별 코드가 동일한지를 비교한다. 만약 동일하면, 렌더링 장치(300)는 단계 1060으로 진행하고, 그렇지 않으면 단계 1070으로 진행한다.
단계 1060에서, 렌더링 장치(300)는 프레임 버퍼에 저장된 이미지를 재사용한다. 렌더링할 타일과 이전 타일이 동일하므로, 렌더링 장치(300)는 이전 프레임에서 렌더링된 타일의 결과 이미지를 재사용하여, 픽셀 처리 과정을 생략할 수 있다.
단계 1070에서, 제1 식별 코드가 동일하지 않으므로, 렌더링 장치(300)는 타일에 대한 픽셀 처리를 수행한다.
일 실시 예에 따른 렌더링 장치(300)는 렌더링할 타일과 동일한 이전 타일의 픽셀 처리 결과를 이용함으로써, 렌더링할 타일 대한 연산량을 줄일 수 있다.
일 실시 예에 따른 렌더링 장치(300)는 타일의 비닝 정보를 이용하여 현재 타일과 이전 타일의 동일성을 결정할 수 있다.
일 실시 예에 따른 렌더링 장치(300)는 프레임 버퍼에 저장된 이미지를 재사용함으로써 렌더링 장치와 프레임 버퍼 사이의 트래픽을 줄일 수 있다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 램, USB, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)를 포함한다.
300: 렌더링 장치
310: 기하 처리부
320: 동일성 판단부
330: 픽셀 처리부

Claims (19)

  1. 타일 기반 렌더링 방법에 있어서,
    현재 프레임에 대한 비닝(bining)을 수행하는 단계;
    상기 현재 프레임에서 렌더링할 타일의 비닝 정보 또는 속성 정보에 대한 식별 코드를 생성하는 단계;
    상기 렌더링할 타일의 식별 코드와 이전 프레임에서 상기 렌더링할 타일과 동일한 위치의 이전 타일의 식별 코드를 비교하는 단계; 및
    상기 비교 결과에 기초하여, 프레임 버퍼에 저장된 이미지를 재사용하거나 상기 렌더링할 타일에 대한 픽셀 처리를 수행하여 상기 현재 프레임을 렌더링하는 단계를 포함하는 렌더링 방법.
  2. 제 1 항에 있어서,
    상기 식별 코드는 상기 비닝 정보에 대한 제1 식별 코드인 것을 특징으로 하는 렌더링 방법.
  3. 제 1 항에 있어서,
    상기 식별 코드를 생성하는 단계는 상기 비닝 정보에 대한 제1 식별 코드 및 상기 속성 정보에 대한 제2 식별 코드를 생성하고,
    상기 비교하는 단계는 상기 렌더링할 타일의 제1 및 제2 식별 코드와 상기 이전 타일의 제1 및 제2 식별 코드를 비교하는 것을 특징으로 하는 렌더링 방법.
  4. 제 3 항에 있어서, 상기 타일을 비교하는 단계는,
    상기 렌더링할 타일의 제1 식별 코드와 상기 이전 타일의 제1 식별 코드가 동일하지 않은 경우, 제2 식별 코드에 대한 비교를 생략하는 것을 특징으로 하는 렌더링 방법.
  5. 제 3 항에 있어서, 상기 렌더링하는 단계는,
    상기 렌더링할 타일의 제1 및 제2 식별 코드와 상기 이전 타일의 제1 및 제2 식별 코드가 모두 동일하면, 상기 검색된 타일의 이미지를 재사용하고,
    상기 렌더링할 타일의 제1 또는 제2 식별 코드와 상기 이전 타일의 제1 또는 제2 식별 코드 중 어느 하나의 식별 코드라도 동일하지 않으면, 상기 렌더링할 타일에 대한 픽셀 처리를 수행하는 것을 특징으로 하는 렌더링 방법.
  6. 제 3 항에 있어서, 상기 식별 코드를 생성하는 단계는,
    상기 렌더링할 타일에서 렌더링할 프리미티브 리스트를 나타내는 비닝 정보 중 일부를 이용하여 상기 렌더링할 타일의 제1 식별 코드를 생성하는 것을 특징으로 하는 렌더링 방법.
  7. 제 3 항에 있어서, 상기 식별 코드를 생성하는 단계는,
    상기 렌더링할 타일의 attribute, Gstate 및 uniform 정보를 나타내는 속성 정보 중 일부를 이용하여 상기 렌더링할 타일의 제2 식별 코드를 생성하는 것을 특징으로 하는 렌더링 방법.
  8. 제 3 항에 있어서, 상기 렌더링하는 단계는,
    상기 렌더링할 타일의 제1 및 제2 식별 코드와 상기 이전 타일의 제1 및 제2 식별 코드가 모두 동일하면, 상기 렌더링할 타일에 대한 픽셀 처리를 생략하는 것을 특징으로 하는 렌더링 방법.
  9. 제 1 항에 있어서, 상기 식별 코드를 생성하는 단계는,
    상기 렌더링할 타일의 비닝 정보 또는 속성 정보를 이용하여, 다른 타일과 구분 가능한 고유의 식별 코드를 생성하는 것을 특징으로 하는 렌더링 방법.
  10. 제1항 내지 제9항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  11. 현재 프레임에 대한 비닝(bining)을 수행하는 기하 처리부;
    상기 현재 프레임에서 렌더링할 타일의 비닝 정보 또는 속성 정보에 대한 식별 코드를 생성하고, 상기 렌더링할 타일의 식별 코드와 이전 프레임에서 상기 렌더링할 타일과 동일한 위치의 이전 타일의 식별 코드를 비교하는 동일성 판단부; 및
    상기 비교 결과에 기초하여, 프레임 버퍼에 저장된 이미지를 재사용하거나 상기 렌더링할 타일에 대한 픽셀 처리를 수행하여 상기 현재 프레임을 렌더링하는 픽셀 처리부를 포함하는 렌더링 장치.
  12. 제 11 항에 있어서,
    상기 식별 코드는 상기 비닝 정보에 대한 제1 식별 코드인 것을 특징으로 하는 렌더링 장치.
  13. 제 11 항에 있어서,
    상기 동일성 판단부는 상기 비닝 정보에 대한 제1 식별 코드 및 상기 속성 정보에 대한 제2 식별 코드를 생성하고, 상기 렌더링할 타일의 제1 및 제2 식별 코드와 상기 이전 타일의 제1 및 제2 식별 코드를 비교하는 것을 특징으로 하는 렌더링 장치.
  14. 제 13 항에 있어서, 상기 동일성 판단부는,
    상기 렌더링할 타일의 제1 식별 코드와 상기 이전 타일의 제1 식별 코드가 동일하지 않은 경우, 제2 식별 코드에 대한 비교를 생략하는 것을 특징으로 하는 렌더링 장치.
  15. 제 13 항에 있어서, 상기 픽셀 처리부는,
    상기 렌더링할 타일의 제1 및 제2 식별 코드와 상기 이전 타일의 제1 및 제2 식별 코드가 모두 동일하면, 상기 검색된 타일의 이미지를 재사용하고,
    상기 렌더링할 타일의 제1 또는 제2 식별 코드와 상기 이전 타일의 제1 또는 제2 식별 코드 중 어느 하나의 식별 코드라도 동일하지 않으면, 상기 렌더링할 타일에 대한 픽셀 처리를 수행하는 것을 특징으로 하는 렌더링 장치.
  16. 제 13 항에 있어서, 상기 동일성 판단부는,
    상기 렌더링할 타일에서 렌더링할 프리미티브 리스트를 나타내는 비닝 정보 중 일부를 이용하여 상기 렌더링할 타일의 제1 식별 코드를 생성하는 것을 특징으로 하는 렌더링 장치.
  17. 제 13 항에 있어서, 상기 동일성 판단부는,
    상기 렌더링할 타일의 attribute, Gstate 및 uniform 정보를 나타내는 속성 정보 중 일부를 이용하여 상기 렌더링할 타일의 제2 식별 코드를 생성하는 것을 특징으로 하는 렌더링 장치.
  18. 제 13 항에 있어서, 상기 픽셀 처리부는,
    상기 렌더링할 타일의 제1 및 제2 식별 코드와 상기 이전 타일의 제1 및 제2 식별 코드가 모두 동일하면, 상기 렌더링할 타일에 대한 픽셀 처리를 생략하는 것을 특징으로 하는 렌더링 장치.
  19. 제 11 항에 있어서, 상기 동일성 판단부는,
    상기 렌더링할 타일의 비닝 정보 또는 속성 정보를 이용하여, 다른 타일과 구분 가능한 고유의 제1 또는 제2 식별 코드를 생성하는 것을 특징으로 하는 렌더링 장치.
KR1020140175872A 2014-12-09 2014-12-09 렌더링 방법 및 장치 KR102276909B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020140175872A KR102276909B1 (ko) 2014-12-09 2014-12-09 렌더링 방법 및 장치
JP2015239657A JP6778485B2 (ja) 2014-12-09 2015-12-08 レンダリング方法及びその装置
US14/962,648 US9959659B2 (en) 2014-12-09 2015-12-08 Tile-based rendering apparatus and method for rendering 3D graphics using binning information and property information
EP15198677.5A EP3032499B1 (en) 2014-12-09 2015-12-09 Apparatus and method for rendering
CN201510902852.4A CN105701852B (zh) 2014-12-09 2015-12-09 用于渲染的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140175872A KR102276909B1 (ko) 2014-12-09 2014-12-09 렌더링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160069801A true KR20160069801A (ko) 2016-06-17
KR102276909B1 KR102276909B1 (ko) 2021-07-13

Family

ID=55070662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140175872A KR102276909B1 (ko) 2014-12-09 2014-12-09 렌더링 방법 및 장치

Country Status (5)

Country Link
US (1) US9959659B2 (ko)
EP (1) EP3032499B1 (ko)
JP (1) JP6778485B2 (ko)
KR (1) KR102276909B1 (ko)
CN (1) CN105701852B (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9928610B2 (en) 2014-06-27 2018-03-27 Samsung Electronics Co., Ltd. Motion based adaptive rendering
US11049269B2 (en) 2014-06-27 2021-06-29 Samsung Electronics Co., Ltd. Motion based adaptive rendering
US10388059B2 (en) 2016-10-03 2019-08-20 Nvidia Corporation Stable ray tracing
US10649524B2 (en) * 2017-04-07 2020-05-12 Intel Corporation Apparatus and method for foveated rendering, bin comparison and TBIMR memory-backed storage for virtual reality implementations
WO2019071600A1 (zh) * 2017-10-13 2019-04-18 华为技术有限公司 一种图像处理方法及装置
KR102554419B1 (ko) * 2017-12-26 2023-07-11 삼성전자주식회사 프리페칭된 그래픽스 데이터를 이용하여 타일 기반 렌더링을 수행하는 방법 및 장치
US10713756B2 (en) * 2018-05-01 2020-07-14 Nvidia Corporation HW-assisted upscaling and multi-sampling using a high resolution depth buffer
US11012694B2 (en) 2018-05-01 2021-05-18 Nvidia Corporation Dynamically shifting video rendering tasks between a server and a client
US10650568B2 (en) * 2018-09-13 2020-05-12 Qualcomm Incorporated In-flight adaptive foveated rendering
CN111508055B (zh) * 2019-01-30 2023-04-11 华为技术有限公司 渲染方法及装置
CN109978981B (zh) * 2019-03-15 2023-04-25 广联达科技股份有限公司 一种提高建筑模型显示效率的批次渲染方法
US11368477B2 (en) * 2019-05-13 2022-06-21 Securitymetrics, Inc. Webpage integrity monitoring
GB2579114B (en) 2019-05-31 2021-04-21 Imagination Tech Ltd Controlling rendering operations
CN112583522B (zh) 2019-09-27 2022-09-23 华为技术有限公司 一种极化码分段编码的方法及通信设备
CN112686981B (zh) * 2019-10-17 2024-04-12 华为终端有限公司 画面渲染方法、装置、电子设备及存储介质
CN111260767B (zh) * 2020-02-19 2023-10-20 网易(杭州)网络有限公司 游戏中的渲染方法、渲染装置、电子设备及可读存储介质
KR20220003376A (ko) 2020-07-01 2022-01-10 삼성전자주식회사 이미지 처리 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120176386A1 (en) * 2011-01-10 2012-07-12 Hutchins Edward A Reducing recurrent computation cost in a data processing pipeline

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4009808B2 (ja) * 2000-03-01 2007-11-21 富士ゼロックス株式会社 画像処理装置
US6747658B2 (en) 2001-12-31 2004-06-08 Intel Corporation Automatic memory management for zone rendering
US7450120B1 (en) 2003-12-19 2008-11-11 Nvidia Corporation Apparatus, system, and method for Z-culling
US9406155B2 (en) 2009-09-25 2016-08-02 Arm Limited Graphics processing systems
US8988443B2 (en) * 2009-09-25 2015-03-24 Arm Limited Methods of and apparatus for controlling the reading of arrays of data from memory
US9058685B2 (en) * 2010-03-11 2015-06-16 Broadcom Corporation Method and system for controlling a 3D processor using a control list in memory
US8854384B2 (en) * 2010-04-06 2014-10-07 Broadcom Corporation Method and system for processing pixels utilizing scoreboarding
US9449359B2 (en) 2012-09-13 2016-09-20 Ati Technologies Ulc Rendering settings in a multi-graphics processing unit system
GB2511817A (en) * 2013-03-14 2014-09-17 Imagination Tech Ltd Rendering in computer graphics systems
US10204391B2 (en) * 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
KR102122454B1 (ko) 2013-10-02 2020-06-12 삼성전자주식회사 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
GB2521170A (en) * 2013-12-11 2015-06-17 Advanced Risc Mach Ltd Method of and apparatus for displaying an output surface in data processing systems
US9305326B2 (en) 2013-12-26 2016-04-05 Industrial Technology Research Institute Apparatus and method for tile elimination
KR102327144B1 (ko) * 2014-11-26 2021-11-16 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120176386A1 (en) * 2011-01-10 2012-07-12 Hutchins Edward A Reducing recurrent computation cost in a data processing pipeline

Also Published As

Publication number Publication date
US9959659B2 (en) 2018-05-01
JP2016110655A (ja) 2016-06-20
EP3032499B1 (en) 2020-10-07
CN105701852B (zh) 2020-06-09
JP6778485B2 (ja) 2020-11-04
KR102276909B1 (ko) 2021-07-13
CN105701852A (zh) 2016-06-22
EP3032499A1 (en) 2016-06-15
US20160163087A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
KR102276909B1 (ko) 렌더링 방법 및 장치
KR102122454B1 (ko) 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
KR102341267B1 (ko) 양안 시차 영상에 대한 렌더링 방법 및 장치
KR102651126B1 (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
US20200226828A1 (en) Method and System for Multisample Antialiasing
US10229524B2 (en) Apparatus, method and non-transitory computer-readable medium for image processing based on transparency information of a previous frame
JP5634104B2 (ja) タイルベースのレンダリング装置および方法
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
US10169839B2 (en) Method and apparatus for executing graphics pipeline
US20130127858A1 (en) Interception of Graphics API Calls for Optimization of Rendering
KR20180055446A (ko) 타일 기반 렌더링 방법 및 장치
US20220092801A1 (en) Depth buffer pre-pass
KR20140009634A (ko) 베이지어 커브에 대한 타일 비닝을 수행하는 그래픽 처리 장치 및 방법
KR20150060026A (ko) 이전 커맨드 정보를 이용하여 현재 커맨드를 처리하는 방법 및 장치.
US10062138B2 (en) Rendering apparatus and method
KR102116976B1 (ko) 렌더링 방법 및 장치
KR102147357B1 (ko) 커맨드들을 관리하는 장치 및 방법
US10297067B2 (en) Apparatus and method of rendering frame by adjusting processing sequence of draw commands
KR20180015564A (ko) 타일-기반 렌더링을 수행하는 방법 및 장치
JP2006113909A (ja) 画像処理装置、画像処理方法及び画像処理プログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant