KR20190080274A - 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법 - Google Patents

샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법 Download PDF

Info

Publication number
KR20190080274A
KR20190080274A KR1020170182640A KR20170182640A KR20190080274A KR 20190080274 A KR20190080274 A KR 20190080274A KR 1020170182640 A KR1020170182640 A KR 1020170182640A KR 20170182640 A KR20170182640 A KR 20170182640A KR 20190080274 A KR20190080274 A KR 20190080274A
Authority
KR
South Korea
Prior art keywords
frame
candidate map
sample candidate
fragments
shading
Prior art date
Application number
KR1020170182640A
Other languages
English (en)
Other versions
KR102545172B1 (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 KR1020170182640A priority Critical patent/KR102545172B1/ko
Priority to US16/048,905 priority patent/US10762696B2/en
Priority to DE102018125472.5A priority patent/DE102018125472B4/de
Priority to TW107139258A priority patent/TWI789452B/zh
Priority to CN201811345135.6A priority patent/CN109978750B/zh
Priority to JP2018239344A priority patent/JP7221679B2/ja
Publication of KR20190080274A publication Critical patent/KR20190080274A/ko
Application granted granted Critical
Publication of KR102545172B1 publication Critical patent/KR102545172B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • 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
    • G06T11/002D [Two Dimensional] image generation
    • 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/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 그래픽 프로세서의 동작방법은, 제1 패턴을 갖는 제1 샘플 후보 맵을 이용하여 제1 프레임의 일부의 프래그먼트들을 쉐이딩 처리함으로써 중간 렌더링을 수행하는 단계와, 제2 패턴을 갖는 제1 샘플 후보 맵을 이용하여 제2 프레임의 일부의 프래그먼트들을 쉐이딩 처리함으로써 중간 렌더링을 수행하는 단계와, 상기 제1 프레임의 쉐이딩 처리 결과와 상기 제2 프레임의 쉐이딩 처리 결과를 이용하여, 상기 제2 프레임의 다른 일부의 프래그먼트들을 추가로 샘플링하는 단계 및 상기 추가로 샘플링된 프래그먼트들을 쉐이딩 처리함으로써 최종 렌더링을 수행하는 단계를 구비하는 것을 특징으로 한다.

Description

샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법{Graphic processor performing sampling-based rendering and Operating method thereof}
본 개시의 기술적 사상은 그래픽 프로세서에 관한 것으로서, 상세하게는 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법에 관한 것이다.
렌더링 시스템은, 그래픽 연산을 수행하는 장치로서 그래픽 프로세싱 유닛(Graphic Processing Unit, GPU) 등의 그래픽 프로세서를 포함할 수 있다. GPU는 그래픽 연산의 일 동작으로서 프래그먼트 값을 산출하기 위한 프래그먼트 쉐이딩(Fragment Shading) 처리를 수행할 수 있다. 이 때, 프래그먼트 쉐이딩 처리는 그 복잡도가 크기 때문에 전체 그래픽 연산량에서 많은 부분을 차지하고 있다.
프래그먼트 쉐이딩 처리의 연산량을 감소하기 위한 방안으로써, 프래그먼트들의 일부만을 샘플링(Sampling)함으로써 최종 결과보다 적은 수의 프래그먼트들을 쉐이딩 처리하고, 샘플링되지 않은 프래그먼트의 값을 보간 동작을 통해 산출하는 방안이 제안되고 있으나, 샘플링 비율이 너무 낮거나 또는 너무 높은 경우에는 GPU의 자원을 효율적으로 이용할 수 없는 문제가 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 샘플링에 기반하여 프래그먼트 쉐이딩 처리의 연산량을 감소함과 함께, 쉐이딩 처리의 정확도를 향상할 수 있는 그래픽 프로세서 및 그 동작방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 그래픽 프로세서의 동작방법은, 제1 패턴을 갖는 제1 샘플 후보 맵을 이용하여 제1 프레임의 일부의 프래그먼트들을 쉐이딩 처리함으로써 중간 렌더링을 수행하는 단계와, 제2 패턴을 갖는 제1 샘플 후보 맵을 이용하여 제2 프레임의 일부의 프래그먼트들을 쉐이딩 처리함으로써 중간 렌더링을 수행하는 단계와, 상기 제1 프레임의 쉐이딩 처리 결과와 상기 제2 프레임의 쉐이딩 처리 결과를 이용하여, 상기 제2 프레임의 다른 일부의 프래그먼트들을 추가로 샘플링하는 단계 및 상기 추가로 샘플링된 프래그먼트들을 쉐이딩 처리함으로써 최종 렌더링을 수행하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 그래픽 프로세서는, 샘플 후보 맵의 샘플링 정보에 따라 현재 프레임의 다수의 프래그먼트들 중 일부의 프래그먼트들에 대한 쉐이딩 처리를 수행하는 중간 렌더링 처리기와, 이전 프레임에서의 쉐이딩 처리 결과와 상기 현재 프레임의 쉐이딩 처리 결과를 이용하여 상기 제1 샘플 후보 맵의 샘플링 정보를 변경함으로써 변경된 샘플 후보 맵을 생성하는 샘플 후보 맵 변형 장치 및 상기 중간 렌더링 처리기에 의해 쉐이딩 처리되지 않은 프래그먼트들 중 상기 변경된 샘플 후보 맵에 의해 추가로 샘플링되는 일부의 프래그먼트들에 대한 쉐이딩 처리를 수행하는 최종 렌더링 처리기를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상의 그래픽 프로세서 및 그 동작방법에 따르면, 프래그먼트 쉐이딩 처리를 위한 샘플링 비율을 낮춤으로써 렌더링 연산량을 감소할 수 있으며, 렌더링 정확도를 향상함으로써 3차원 그래픽스 렌더링의 성능을 향상할 수 있는 효과가 있다.
도 1은 본 발명의 예시적인 실시예에 따른 렌더링(rendering) 시스템을 나타내는 블록도이다.
도 2는 도 1의 실시예에 따른 샘플 후보 맵 변형 동작의 개념을 나타내는 도면이다.
도 3은 그래픽 프로세서에서 3차원 그래픽스를 처리하는 과정을 나타내는 도면이다.
도 4는 본 발명의 예시적인 실시예에 따른 그래픽 프로세서의 일 구현 예를 나타내는 블록도이다.
도 5a,b,c는 프리미티브 내의 프래그먼트들에 대한 쉐이딩 처리의 일 예를 나타내는 도면이다.
도 6은 도 5a,b,c의 실시예에 샘플 후보 맵 변형 동작이 적용된 예를 나타내는 도면이다.
도 7a,b 및 도 8은 적어도 두 개의 프레임의 데이터를 이용하여 샘플 후보 맵 변형을 수행하는 예를 나타내는 도면이다.
도 9 및 도 10은 본 발명의 예시적인 실시예들에 따른 그래픽 프로세서의 동작방법을 나타내는 플로우차트이다.
도 11은 본 발명의 예시적인 실시예들에 따른 그래픽 프로세서의 일 구현 예를 나타내는 블록도이다.
도 12는 본 발명의 실시예가 적용된 그래픽 프로세서의 전반적인 동작 절차를 나타내는 도면이다.
도 13 내지 도 17a,b는 본 발명의 변형 가능한 실시예에 따른 렌더링 시스템을 나타내는 블록도이다.
도 18은 본 발명의 예시적인 실시예에 따른 메모리 장치를 포함하는 모바일 장치의 일 구현 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예들에 대해 상세히 설명한다.
도 1은 본 발명의 예시적인 실시예에 따른 렌더링(rendering) 시스템을 나타내는 블록도이다. 렌더링 시스템(10)은 그래픽 프로세서(100) 및 메모리(101)를 포함할 수 있으며, 그래픽 프로세서(100)로서 그래픽 프로세싱 유닛(Graphic Processing Unit, GPU)이 예시된다. 설명의 편의상, 이하의 실시예들에서 GPU는 그래픽 프로세서로 지칭될 것이나, 본 발명의 그래픽 프로세서는 다른 다양한 종류의 프로세서로 구현될 수도 있을 것이다.
그래픽 프로세서(100)는 렌더링 시스템(10) 내에서 그래픽 연산을 수행하고 이를 통해 렌더링을 처리할 수 있다. 일 예로서, 그래픽 프로세서(100)는 3 차원의 오브젝트(object)를 수신하고, 이에 대한 랜더링 처리 결과로서 2 차원의 렌더링 이미지를 출력할 수 있다.
그래픽 프로세서(100)는 타일 기반 렌더링(tile-based rendering)을 수행하도록 구성될 수 있으며, 이를 위해 그래픽스 파이프라인(graphics pipeline)들을 포함할 수 있으며, 그래픽스 파이프라인들에 의해 그래픽 데이터들이 병렬 처리될 수 있다. 각각의 그래픽스 파이프라인은 그래픽 연산을 위한 다양한 종류의 구성들을 포함할 수 있으며, 일 예로 그래픽스 파이프라인은 하드웨어로 구성되거나 또는 소프트웨어로 구성될 수 있다. 또는, 그래픽스 파이프라인은 하드웨어 및 소프트웨어의 조합에 의해 구성될 수 있다.
도 1에는 도시되지 않았으나, 렌더링 시스템(10)은 시스템 전반의 동작을 제어하는 CPU(Central Processing Unit)와, 구성 요소들 사이의 통신을 위해 PCI bus, PCI Express bus 등 다양한 종류의 버스(BUS)를 더 포함할 수 있다. 또한, 렌더링 시스템(10)은 데스크탑 컴퓨터, 노트북 컴퓨터, 스마트폰, PDA (personal digital assistants), 휴대형 미디어 플레이어, 비디오 게임용 콘솔, 텔레비젼 셋탑 박스, 태블릿 디바이스, 이북 리더, 웨어러블 디바이스 등을 예로 들 수 있지만, 이에 제한될 필요가 없이 다양한 종류의 전자 시스템에 해당할 수 있다.
그래픽 프로세서(100)는 OpenGL(Open Graphic(s) Library), DirectX, CUDA(Compute Unified Device Architecture) 등의 다양한 종류의 API(Application Program Interface) 표준에 기반하는 렌더링 관련 정보들을 수신할 수 있으며, 그래픽 연산들로서 쉐이딩(shading) 처리, 텍스쳐링(texturing) 처리 등의 다양한 연산들을 수행할 수 있다. 또한, 메모리(101)는 그래픽 프로세서(100)와 동일한 반도체 칩에 집적되거나 또는 서로 다른 반도체 칩으로 구현될 수 있으며, DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory)에 해당되거나, 또는 ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리(flash memory) 등과 같은 메모리 장치에 해당될 수 있다. 메모리(101)는 그래픽 프로세서(100)에 의해 처리될 그래픽 데이터를 저장하거나, 또는 그래픽 프로세서(100)에 의해 처리된 그래픽 데이터(예컨대, 프레임 데이터)를 저장할 수 있다.
일 동작 예로서, 그래픽 프로세서(100)는 버텍스(vertex)를 입력받고, 입력받은 버텍스에 대한 연산 처리를 통해 프리미티브(primitive)를 생성할 수 있다. 또한, 그래픽 프로세서(100)는 프리미티브를 이용하여 프래그먼트(fragment)의 집합(set)을 생성할 수 있다. 프래그먼트는 프리미티브의 내부를 구성하는 3 차원의 점(dot)들을 나타낼 수 있다. 또한, 그래픽 프로세서(100)는 프래그먼트들의 값을 산출하기 위한 프래그먼트 쉐이딩 처리를 수행할 수 있다.
프래그먼트 쉐이딩 처리는 그 복잡도가 높음에 따라 전체 그래픽 연산량의 많은 부분을 차지할 수 있다. 프래그먼트 쉐이딩의 복잡도를 감소하기 위해, 다수의 프래그먼트들 중 일부만을 샘플링하여 쉐이딩 처리를 수행하고, 나머지 프래그먼트들에 대해서는 유추 또는 보간 동작을 통해 값(예컨대, 프래그먼트 값)을 산출하는 방식이 적용될 수 있다. 이 때, 샘플링 비율(Sampling rate)이 작은 경우에는 실제 쉐이딩 처리가 필요로 되는 프래그먼트의 값이 보간을 통해 결정될 수 있으며, 이 경우 보간 처리에 의해 산출된 프래그먼트 값이 실제의 값과 차이가 큼에 따라 화질의 저하가 발생될 수 있다.
한편, 프리미티브를 구성하는 프래그먼트는 그래픽 연산 처리의 기본 단위에 해당하며, 일 실시예에서 상기 프래그먼트는 픽셀(pixel)에 해당할 수 있다. 본 발명의 실시예들에 있어서, 프래그먼트와 픽셀이란 용어는 혼용되어 사용될 수 있다. 예컨대, 프래그먼트 쉐이딩은 픽셀 쉐이딩으로 지칭될 수 있으며, 프래그먼트에 대한 샘플링은 픽셀 샘플링으로 지칭될 수도 있을 것이다.
본 발명의 예시적인 실시예에 따라, 그래픽 프로세서(100)는 샘플 후보 맵(Sample Candidate Map, SCM) 변형 장치(110) 및 프래그먼트 처리기(120)를 포함할 수 있다. 예컨대, 하나의 프리미티브 단위를 예로 들면, 프리미티브 내에는 다수의 프래그먼트들이 포함되고, 그래픽 프로세서(100)는 상기 다수의 프래그먼트들 중 일부의 프래그먼트만을 샘플링하여 이에 대해 선택적으로 쉐이딩 처리를 수행할 수 있다. 일 예로, 그래픽 프로세서(100) 내에서 일부의 프래그먼트들을 샘플링하기 위한 샘플 후보 맵(예컨대, 제1 샘플 후보 맵(SCM_1))이 생성될 수 있으며, 제1 샘플 후보 맵(SCM_1)을 이용한 쉐이딩 처리를 통해 상기 일부의 프래그먼트들의 쉐이딩 처리 결과(예컨대, 프래그먼트 값)가 산출될 수 있다.
SCM 변형 장치(110)는 제1 샘플 후보 맵(SCM_1)을 수신하고, 상기 제1 샘플 후보 맵(SCM_1)의 샘플링 정보를 변형(revise)함에 의해 제2 샘플 후보 맵(SCM_2)을 생성할 수 있다. 일 구현 예로서, 제1 샘플 후보 맵(SCM_1)은 프리미티브 내의 다수의 프래그먼트들 중 쉐이딩 처리가 수행될 프래그먼트(예컨대, 제1 프래그먼트들)의 위치를 나타내는 샘플링 정보를 포함할 수 있다. 또한, 제2 샘플 후보 맵(SCM_2)은 상기 제1 프래그먼트들을 제외한 나머지 프래그먼트들 중에서, 추가로 쉐이딩 처리가 수행될 프래그먼트(예컨대, 제2 프래그먼트들)의 위치를 나타내는 샘플링 정보를 포함할 수 있다. 일 예로서, 제2 샘플 후보 맵(SCM_2)은 프리미티브 내의 다수의 프래그먼트들 중 제1 프래그먼트들 및 제2 프래그먼트들의 위치를 나타내는 정보를 포함할 수 있다. 변형 가능한 예로서, 제2 샘플 후보 맵(SCM_2)은 프리미티브 내의 다수의 프래그먼트들 중 제2 프래그먼트들의 위치만을 나타내는 정보를 포함하는 형태로 구현될 수도 있을 것이다.
그래픽 프로세서(100)는 쉐이딩 처리를 포함하는 렌더링을 수행할 수 있으며, 본 발명의 실시예에서 다수의 프래그먼트들에 대해 2 회 이상의 쉐이딩 처리가 순차적으로 수행되므로, 상기 제1 샘플 후보 맵(SCM_1)을 이용한 쉐이딩 처리는 중간(intermediate) 렌더링 처리로 지칭될 수 있으며, 상기 제2 샘플 후보 맵(SCM_2)을 이용한 쉐이딩 처리는 최종(final) 렌더링 처리로 지칭될 수 있다. 이하의 실시예들에서는, 쉐이딩 처리와 렌더링 처리의 용어가 혼용될 수도 있을 것이며, 일 예로 중간 렌더링 처리는 중간 쉐이딩 처리로 지칭되고, 최종 렌더링 처리는 최종 쉐이딩 처리로 지칭되어도 무방할 것이다. 한편, 그래픽 프로세서(100)는 제1 샘플 후보 맵(SCM_1)을 생성하는 제1 SCM 생성 장치(미도시)를 포함할 수 있으며, 상기 SCM 변형 장치(110)는 제2 샘플 후보 맵(SCM_2)을 생성하는 측면에서 제2 SCM 생성 장치로 지칭되어도 무방할 것이다.
일 실시예에 따라, SCM 변형 장치(110)는 다양한 종류의 정보에 기반하여 변형 동작을 수행할 수 있다. 예컨대, SCM 변형 장치(110)는 현재 프레임에서 쉐이딩 처리를 통해 산출된 프래그먼트 값(Frag_C)과 이전 프레임에서 쉐이딩 처리를 통해 산출된 프래그먼트 값(Frag_P)을 수신하고, 이를 이용한 연산을 통해 변형 동작을 수행할 수 있다.
일 실시예에 따라, 제1 샘플 후보 맵(SCM_1)의 샘플링 정보는 다양한 종류의 패턴들을 가질 수 있다. 예컨대, 현재 프레임에서의 중간 렌더링 처리에 이용된 제1 샘플 후보 맵(SCM_1)의 패턴(제1 패턴)과 이전 프레임에서의 중간 렌더링 처리에 이용된 제1 샘플 후보 맵(SCM_1)의 패턴(제2 패턴)은 상이할 수 있다. 변형 동작에 이용되는 프래그먼트 값들(Frag_C, Frag_P)은 중간 렌더링 처리에 의해 산출된 값들일 수 있으며, 이에 따라 변형 동작에 이용되는 현재 프레임에서의 프래그먼트의 위치와, 이전 프레임에서의 프래그먼트의 위치는 상이할 수 있다.
제1 샘플 후보 맵(SCM_1)의 샘플링 비율이 낮음에 따라 개략적인(coarse) 패턴을 갖는 경우, 중간 렌더링 처리를 통해 그 값이 산출되는 프래그먼트들의 간격이 클 수 있다. 이 때, 중간 렌더링 처리가 수행되지 않는 프래그먼트들에 대한 보간 처리가 수행되기 전에, 최종 렌더링 처리가 필요로 되는 프래그먼트를 더 선택하기 위해 전술한 샘플 후보 맵 변형 동작이 수행될 수 있으며, 본 발명의 실시예에 따르면 최종 렌더링 처리가 필요로 되는 프래그먼트의 선택 정확도를 향상하기 위해 적어도 두 개의 프레임들의 프래그먼트 값이 이용될 수 있다.
즉, 어느 하나의 프레임에서 제1 샘플 후보 맵(SCM_1)이 개략적인(coarse) 패턴을 갖더라도, 본 발명의 예시적인 실시예에 따르면 현재 프레임의 프래그먼트 값과 이전 프레임에서의 프래그먼트 값을 이용하여 샘플 후보 맵 변형 동작이 수행될 수 있으며, 이에 따라 상대적으로 짧은 간격을 갖는 위치들의 프래그먼트 값에 기반하여 변형 동작이 수행될 수 있다. 즉, 실질적으로 세밀한(fine) 패턴에 따른 프래그먼트 값을 이용하여 샘플 후보 맵 변형 동작이 수행될 수 있으므로, 에지 등과 같은 실제 쉐이딩 처리가 필요로되는 프래그먼트의 선택 정확도가 향상될 수 있다.
상기와 같은 동작에 따라 제2 샘플 후보 맵(SCM_2)이 생성되면, 처리 대상의 그래픽 데이터(Data)와 제2 샘플 후보 맵(SCM_2)이 프래그먼트 처리기(120)로 제공될 수 있다. 프래그먼트 처리기(120)는 제2 샘플 후보 맵(SCM_2)을 통해 샘플링되는 프래그먼트에 대한 쉐이딩 처리를 수행하고, 이에 따른 프래그먼트 값을 산출할 수 있다. 상기와 같은 과정을 통해 현재 프레임에 대한 프레임 데이터(Data_Frame)가 생성되고, 프레임 데이터(Data_Frame)는 메모리(101)에 저장될 수 있다.
도 2는 도 1의 실시예에 따른 샘플 후보 맵 변형 동작의 개념을 나타내는 도면이다.
도 2를 참조하면, 제1 샘플 후보 맵(SCM_1)은 소정의 패턴을 갖는 샘플링 정보를 포함할 수 있다. 예컨대, 도 2에서는 다수의 프래그먼트들에 대해 수평 방향으로 4 개의 프래그먼트들마다 하나의 프래그먼트가 샘플링되고, 또한 수직 방향으로는 2 개의 행(row)마다 하나의 행에 대해 샘플링이 적용되며, 어느 하나의 행에서의 샘플링 위치와 다음의 행에서의 샘플링 위치는 서로 이격되는 형태를 갖는 예가 도시된다. 또한, 도 2의 제1 샘플 후보 맵(SCM_1)은 4*4 사이즈마다 두 개의 프래그먼트들을 샘플링하는 패턴을 갖는 것으로 설명될 수 있다.
SCM 변형 장치(110)는 제1 샘플 후보 맵(SCM_1)의 샘플링 정보를 변형함으로써 제2 샘플 후보 맵(SCM_2)을 생성할 수 있다. 또한, 전술한 예에 따라, SCM 변형 장치(110)는 현재 프레임에서 쉐이딩 처리를 통해 산출된 프래그먼트의 값(Frag_C)과 이전 프레임에서 쉐이딩 처리를 통해 산출된 프래그먼트의 값(Frag_P)을 수신할 수 있다.
SCM 변형 장치(110)는 프래그먼트의 값들(Frag_C, Frag_P)을 이용한 연산을 수행하고, 이에 기반하여 나머지 프래그먼트들에 대한 쉐이딩 처리 필요성을 판단할 수 있다. 일 예로, 수평 방향으로 제1 위치(P0)의 프래그먼트, 제2 위치(P1)의 프래그먼트 및 제3 위치(P2)의 프래그먼트를 참조하여 설명하면 다음과 같다.
현재 프레임에 대해 제1 샘플 후보 맵(SCM_1)을 이용한 프래그먼트 쉐이딩 처리를 통해 제1 위치(P0) 및 제2 위치(P1)의 프래그먼트들의 프래그먼트 값(Frag_C)이 산출되어 SCM 변형 장치(110)로 제공될 수 있다. 또한, 이전의 프레임에서는 다른 위치의 프래그먼트들에 대해 쉐이딩 처리가 수행될 수 있으며, 일 예로서 이전 프레임의 제3 위치(P2)의 프래그먼트 값(Frag_P)이 샘플 후보 맵 변형 장치(110)로 제공될 수 있다. 일 실시예에 따라, 제1 샘플 후보 맵(SCM_1)을 통해 샘플링되는 프래그먼트들의 위치는 프레임마다 변동될 수 있으며, 이에 따라 이전 프레임에서 중간 렌더링 처리된 프래그먼트들의 위치와 현재 프레임에서 중간 렌더링 처리된 프래그먼트들의 위치는 상이할 수 있다.
SCM 변형 장치(110)는 제1 내지 제3 위치(P0 ~ P2)의 프래그먼트들의 값을 이용하여 샘플 후보 맵 변형 동작을 수행할 수 있다. 예컨대, 제1 위치(P1)의 프래그먼트 값(Frag_C)과 제3 위치(P2)의 프래그먼트 값(Frag_P)을 연산할 수 있으며, 또한 제2 위치(P1)의 프래그먼트 값(Frag_C)과 제3 위치(P3)의 프래그먼트 값(Frag_P)을 연산할 수 있다. 또한, 연산 결과에 따라 제1 위치(P0)와 제2 위치(P1) 사이의 프래그먼트들이 샘플링되도록 샘플 후보 맵이 변형될 수 있다.
일 예로서, 제1 위치(P0)의 프래그먼트 값(Frag_C)과 제3 위치(P2)의 프래그먼트 값(Frag_P)을 비교한 결과 및/또는 제2 위치(P1)의 프래그먼트 값(Frag_C)과 제3 위치(P2)의 프래그먼트 값(Frag_P)을 비교한 결과에 기반하여 샘플 후보 맵이 변형될 수 있다. 만약, 프래그먼트 값들(Frag_C, Frag_P)의 차이가 큰 경우(또는, 기 설정된 값을 초과하는 경우)는 영상의 변화가 큰 경우를 나타내며(또는, 에지가 존재하는 경우를 나타내며), 이 경우 제1 위치(P0)와 제2 위치(P1) 사이에 해당하는 영역(Reg_1) 내의 프래그먼트들이 샘플링되도록 샘플 후보 맵이 변형될 수 있다. 반면에, 프래그먼트 값들(Frag_C, Frag_P)의 차이가 기 설정된 값 이내에 해당하는 경우에는 영상의 변화가 작은 경우를 나타내며, 상기 영역(Reg_1) 내의 프래그먼트들은 샘플링되지 않을 수 있다. 즉, 현재 프레임 및 이전 프레임의 프래그먼트 값들(Frag_C, Frag_P)에 기반하여, 영역(Reg_1) 내의 프래그먼트들이 쉐이딩 처리에 의해 그 값이 산출되거나 또는 보간 처리에 의해 그 값이 산출될 수 있다.
한편, 도 2에서 현재 프레임의 제4 위치(P3)와 제5 위치(P4)의 프래그먼트 값(Frag_C)과 이전 프레임의 제6 위치(P5)의 프래그먼트 값(Frag_P)을 이용하여 영역(Reg_2) 내의 그래그먼트들을 추가로 샘플링할지 여부가 판단될 수 있다. 이와 유사한 방식에 따라, 도 2의 전체 프래그먼트들에 대한 추가 샘플링 여부가 판단될 수 있다.
전술한 실시예에서 추가로 샘플링될 프래그먼트는 다양한 기준에 의해 선택될 수 있다. 일 예로서, 프래그먼트 값들(Frag_C, Frag_P)을 이용한 에지 검출 알고리즘이 수행되고, 에지 검출 결과에 따라 샘플 후보 맵이 변형될 수 있을 것이다.
한편, 도 2에 도시된 예에서는 제1 위치(P0)와 제2 위치(P1) 사이의 프래그먼트들의 샘플링 정보가 함께 변형되는 경우가 예시되었으나 본 발명의 실시예는 이에 국한될 필요가 없다. 예컨대, 프래그먼트 값들(Frag_C, Frag_P)에 기반하여, 제1 위치(P0)와 제3 위치(P2) 사이의 프래그먼트의 샘플링 정보와, 제2 위치(P1)와 제3 위치(P2) 사이의 프래그먼트의 샘플링 정보가 별개로 변경되어도 무방할 것이다.
도 3은 그래픽 프로세서에서 3차원 그래픽스를 처리하는 과정을 나타내는 도면이다.
도 3을 참조하면, 3차원 그래픽스를 처리하는 과정은 크게 기하변환 처리 과정, 래스터화 과정 및 픽셀 쉐이딩 처리 과정을 포함할 수 있다.
시스템 내에서 응용프로그램은 렌더링 할 데이터와 함께, 렌더링 방법을 기술한 일련의 명령을 디바이스 드라이버를 통해 그래픽 프로세서로 제공할 수 있다. 그래픽 프로세서는 명령을 수신하고 해석하며, 고정된 하드웨어 또는 프로그래머블 하드웨어를 통해 실제 렌더링을 수행할 수 있다. 렌더링 과정은 다양한 처리 단계들을 포함할 수 있다.
먼저, 단계 S11은 버텍스들(vertices)을 생성하는 단계를 나타낸다. 버텍스들은 3차원 그래픽스에 포함된 오브젝트(object)들을 나타내기 위해 생성될 수 있다. 또한, 단계 S12는 생성된 버텍스들을 쉐이딩(shading)하는 단계를 나타내며, 앞선 단계 S11에서 생성된 버텍스들의 위치를 지정함으로써 버텍스들에 대한 쉐이딩이 수행될 수 있다. 또한, 단계 S13은 프리미티브들을 생성하는 단계를 나타내며, 프리미티브는 적어도 하나의 버텍스를 이용하여 형성되는 점, 선, 다각형(polygon)등을 의미한다. 일 예로서, 프리미티브는 버텍스들을 연결하여 형성된 삼각형으로 나타낼 수 있다.
한편, 단계 S14는 앞서 생성된 프리미티브에 대한 래스터화(rasterization)를 수행하는 단계를 나타내며, 프리미티브를 래스터화하는 것은 프리미티브를 프래그먼트들(fragments)로 분할하는 것을 의미한다. 프래그먼트는 프리미티브에 대해 그래픽 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터화 단계에서 버텍스와 버텍스 사이의 프레그먼트들을 생성함으로써, 3차원 그래픽스에 대한 그래픽 처리를 수행할 수 있도록 한다.
한편, 단계 S15는 프래그먼트를 쉐이딩하는 단계를 나타낸다. 프리미티브를 구성하는 프래그먼트들은 타일을 구성하는 픽셀들에 해당할 수 있다. 당해 분야에서, 프래그먼트와 픽셀이란 용어는 경우에 따라 혼용될 수 있으며, 이에 따라 프래그먼트 쉐이딩은 픽셀 쉐이딩으로 지칭될 수 있다. 일 예로서, 프리미티브를 구성하는 그래픽 처리의 기본 단위를 프래그먼트로 정의하고, 이후, 픽셀 쉐이딩부터의 그래픽 처리의 기본 단위를 픽셀로 정의할 수 있다. 픽셀 쉐이딩에서는 픽셀의 색을 결정할 수 있다.
한편, 단계 S16은 픽셀의 색을 결정하기 위한 텍스쳐링(texturing) 단계를 나타낸다. 텍스쳐링은 미리 준비된 이미지인 텍스쳐를 이용하여 픽셀의 색을 결정하는 과정이다. 실세계의 다양한 색상과 패턴의 모습을 표현하기 위해서 각각의 픽셀의 색상을 계산하여 결정하는 것은 그래픽 처리에 필요한 데이터 연산량과 그래픽 처리 시간을 증가시키므로, 미리 준비된 텍스쳐를 이용하여 픽셀의 색상을 결정할 수 있다. 예를 들어, 오브젝트의 표면 색상을 텍스쳐라는 별도의 2차원 영상으로 저장하고, 오브젝트의 화면상의 위치 및 크기 등에 따라 저장된 텍스쳐를 확대 및 축소하거나, 다양한 해상도를 갖는 텍스쳐들을 이용하여 텍셀 값들을 혼합함으로써, 픽셀의 색상을 결정할 수 있다.
한편, 단계 S17은 테스트 및 믹싱(testing and mixing) 단계를 나타낸다. 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 픽셀 값들을 결정할 수 있다. 이와 같은 과정을 거쳐 생성된 복수 개의 타일들을 믹싱하여, 하나의 프레임에 해당하는 3차원 그래픽스를 생성할 수 있다. 단계 S18은 단계 S11 내지 단계 S17을 통해 생성된 프레임을 프레임 버퍼에 저장하고, 프레임 버퍼에 저장된 프레임을 디스플레이 장치를 통해 표시하는 단계를 나타낸다.
본 발명의 실시예들에 따른 샘플 후보 맵 변형 동작은 도 3의 그래픽스 처리 과정 내에서 수행될 수 있다. 일 실시예에 따라, 래스터화 단계(S14)에서 쉐이딩 처리가 수행될 프래그먼트를 선택하기 위해 샘플 후보 맵 생성 및 변형 동작을 수행할 수 있다. 예컨대, 래스터화 단계(S14)에서, 프레임마다 가변되는 패턴에 따라 제1 샘플 후보 맵(SCM_1)이 생성되고, 전술한 실시예들에 따라 현재 프레임의 프래그먼트 값과 이전 프레임의 프래그먼트 값을 이용하여 샘플 후보 맵 변형 동작이 수행될 수 있으며, 제2 샘플 후보 맵(SCM_2)에 의해 샘플링되는 프래그먼트가 쉐이딩 처리를 수행하는 장치(하드웨어 또는 프로세싱 코어)로 제공될 수 있다.
도 4는 본 발명의 예시적인 실시예에 따른 그래픽 프로세서의 일 구현 예를 나타내는 블록도이다. 일 예로서, 도 4의 그래픽 프로세서(200)는 GPU에 해당할 수 있다.
도 4를 참조하면, 그래픽 프로세서(200)는 래스터라이저(rasterizor, 210), 쉐이더 코어(shader core, 220), 텍스쳐 처리 장치(texture processing unit, 230), 픽셀 처리 장치(pixel processing unit, 240) 및 타일 버퍼(tile buffer, 250)를 포함할 수 있다. 그래픽 프로세서(200)는 버스(BUS)를 통하여 외부의 메모리(201)와 데이터를 송수신할 수 있다. 이외에도, 그래픽 프로세서(200)는 3차원 그래픽스를 처리하기 위한 다른 다양한 구성요소들을 더 포함할 수 있으나, 도 4에서는 이에 관련된 구체적인 도시는 생략된다.
일 예로서, 그래픽 프로세서(200)는 타일에 기초한 렌더링(tile based rendering, TBR) 방식을 사용할 수 있다. 그래픽 프로세서(200)는 하나의 프레임에 해당하는 3차원 그래픽스를 생성하기 위해서, 일정한 크기로 분할된 복수 개의 타일들을 래스터라이저(210), 쉐이더 코어(220), 픽셀 처리 장치(240)를 거치도록 하여, 처리 결과를 타일 버퍼(250)에 저장할 수 있다. 그래픽 프로세서(200)는 프레임을 구성하는 모든 타일들에 대해서, 래스터라이저(210), 쉐이더 코어(220), 및 픽셀 처리 장치(240)로 구성되는 파이프 라인을 복수 개 이용하여, 병렬 처리할 수 있다. 그래픽 프로세서(200)는 하나의 프레임에 해당하는 복수 개의 타일들이 처리되면, 타일 버퍼(250)에 저장된 처리 결과를 메모리(201)의 프레임 버퍼(미도시)로 전송할 수 있다.
래스터라이저(210)는 전술한 기하 변환 과정을 통해 생성된 프리미티브에 대해 래스터화(rasterization)를 수행할 수 있다. 또한, 쉐이더 코어(220)는 래스터라이저(210)로부터 래스터화된 프리미티브를 전달받아, 타일을 구성하는 픽셀들(또는, 프래그먼트들)에 대해 전술한 픽셀 쉐이딩(또는, 프래그먼트 쉐이딩) 처리를 수행할 수 있다. 또한, 쉐이더 코어(220)는 픽셀 쉐이딩 과정에서 입체적이고 현실감있는 3차원 그래픽스를 생성하기 위해 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다.
한편, 쉐이더 코어(220)는 상기와 같은 픽셀 쉐이딩 처리와 함께, 버텍스 쉐이딩 처리를 더 수행할 수 있다. 일 예로서, 쉐이더 코어(220)가 버텍스 쉐이딩 처리를 수행하는 경우, 오브젝트를 나타내는 프리미티브(primitive)를 생성하여 래스터라이저(210)에 전달할 수 있다.
또한, 쉐이더 코어(220)는 픽셀에 대응되는 픽셀 값을 전달해 줄 것을 텍스쳐 처리 장치(230)에 요청할 수 있으며, 텍스터 처리 장치(230)는 미리 준비된 텍스쳐를 처리하여 생성된 픽셀 값을 전달해 줄 수 있다. 텍스쳐는 텍스쳐 처리 장치(230) 내부 또는 외부의 소정의 공간 또는 그래픽 프로세서(200) 외부의 메모리(201)에 저장되어 있을 수 있다. 텍스쳐 처리 장치(230)는 쉐이더 코어(220)에서 요청한 픽셀 값을 생성하는데 이용되는 텍스쳐가 텍스쳐 처리 장치(230) 내부의 소정의 공간에 없는 경우, 텍스쳐 처리 장치(230) 외부의 공간 또는 메모리(201)로부터 텍스쳐를 가져와 사용할 수 있다.
픽셀 처리 장치(240)는 하나의 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 모든 픽셀 값들을 결정할 수 있다. 타일 버퍼(250)는 픽셀 처리 장치(240)로부터 전달된 하나의 타일에 해당하는 모든 픽셀 값들을 저장할 수 있다. 하나의 프레임을 구성하는 모든 타일들에 대한 그래픽 처리 과정이 완료되면, 타일 버퍼(250)에 저장된 처리 결과가 메모리(201)의 프레임 버퍼로 전달될 수 있다.
전술한 실시예에서의 SCM 변형 장치(211)는 래스터라이저(210)에 포함되는 구성일 수 있다. 일 예로서, 래스터라이저(210)는 소정의 패턴 정보를 수신하여 제1 샘플 후보 맵을 생성하고, 또한 전술한 실시예에 따른 변형 동작을 통해 제2 샘플 후보 맵을 생성할 수 있다. 또한, 래스터라이저(210)는 메모리(201)에 저장된 이전 프레임의 프래그먼트 값(Frag_P)을 수신하고, 이에 기반하여 변형 동작을 수행할 수 있다. 래스터라이저(210)는 다수의 프래그먼트들 중 샘플링된 프래그먼트를 선택적으로 쉐이더 코어(220)로 제공할 수 있다. 일 실시예에 따라, 래스터라이저(210)는 다수의 하드웨어들(예컨대, 프로세싱 코어들)을 포함할 수 있으며, 제1 샘플 후보 맵 및 제2 샘플 후보 맵의 생성 동작은 동일한 하드웨어에 의해 수행될 수도 있으며, 또는 서로 다른 하드웨어에 의해 수행될 수도 있을 것이다.
한편, 쉐이더 코어(220)는 전술한 실시예에서의 중간 렌더링 처리 및 최종 렌더링 처리를 수행할 수 있다. 일 실시예에 따라, 쉐이더 코어(220)는 다수의 하드웨어들(예컨대, 프로세싱 코어들)을 포함할 수 있으며, 중간 렌더링 처리 및 최종 렌더링 처리는 동일한 하드웨어에 의해 수행될 수도 있으며, 또는 서로 다른 하드웨어에 의해 수행될 수도 있을 것이다.
이하에서는, 본 발명의 실시예들에 따른 샘플링 및 쉐이딩 처리의 구체적인 예가 설명된다.
도 5a,b,c는 프리미티브 내의 프래그먼트들에 대한 쉐이딩 처리의 일 예를 나타내는 도면이다. 도 5a,b,c에서는 후보 맵 변형 동작이 수행되지 않는 예가 도시된다.
도 5a는 어느 하나의 프리미티브의 일부의 프래그먼트들로서 4*4 사이즈의 프래그먼트들이 예시되며, 프리미티브의 프래그먼트들에 대해 소정의 샘플링 비율에 따라 샘플링이 수행될 수 있다. 일 예로서, 도 5a는 상대적으로 세밀한(fine) 패턴에 따라 샘플링이 수행되는 예를 나타내며, 수평 및 수직 방향으로 두 개의 프래그먼트들마다 하나의 프래그먼트가 샘플링되는 예가 도시된다. 세밀한 패턴을 갖는 제1 샘플링 후보 맵에 따라 P0 내지 P3 위치의 프래그먼트들이 샘플링되고, 샘플링된 프래그먼트들에 대한 쉐이딩 처리가 수행될 수 있다. 도 5b는 도 5a에 도시된 샘플링에 기반하여 쉐이딩 처리가 수행될 때, 8*8 사이즈의 프래그먼트들 중 쉐이딩 처리가 수행된 프래그먼트들의 위치를 나타낸다.
도 5c를 참조하면, 쉐이딩 처리가 수행되지 않은 프래그먼트들에 대해서는 보간 동작을 통해 그 값이 산출될 수 있다. 예컨대, 하나의 위치에서의 프래그먼트는 이에 인접한 하나 이상의 프래그먼트들의 값을 이용한 보간 동작을 통해 그 값이 산출될 수 있다. 즉, 쉐이딩 처리가 수행되지 않은 프래그먼트는 이에 인접한 프래그먼트 값을 참조하여 유사한 값으로 그 값이 채워지게 되며, 상기와 같은 보간 처리는 홀 필링(Hole Filling)으로 지칭될 수 있다.
도 6은 도 5a,b,c의 실시예에 샘플 후보 맵 변형 동작이 적용된 예를 나타내는 도면이다. 도 6에서는 이전 프레임의 렌더링 결과를 이용함이 없이 현재 프레임의 데이터만을 이용하여 샘플 후보 맵을 변형하는 예를 나타낸다.
도 6을 참조하면, 제1 샘플링 후보 맵에 따라 소정의 비율로서 프래그먼트들을 샘플링할 수 있으며, 샘플링된 프래그먼트들에 대해 중간 쉐이딩 처리를 통해 그 값이 산출될 수 있다. 또한, 샘플링되지 않은 나머지 프래그먼트들에 대해, 샘플링 후보 맵 변형 동작을 통해 추가로 샘플링이 수행될 프래그먼트들이 선택될 수 있다.
현재 프레임의 중간 렌더링 처리를 통해 산출된 프래그먼트들의 값을 이용하여 샘플링 후보 맵 변형 동작이 수행될 수 있으며, 일 예로서 제1 위치(P0)의 프래그먼트 값과 제2 위치(P1)의 프래그먼트 값의 차이를 기반으로 하여 제5 위치(P4)의 프래그먼트를 추가로 샘플링할지 여부가 판단될 수 있다. 이와 유사하게, 제3 위치(P2)의 프래그먼트 값과 제4 위치(P3)의 프래그먼트 값의 차이를 기반으로 하여 제6 위치(P5)의 프래그먼트를 추가로 샘플링할지 여부가 판단될 수 있다. 도 6에서는 상기와 같은 방식에 따라 4*4 사이즈의 프래그먼트들에서 두 번째 행 및 네 번째 행의 프래그먼트들이 모두 샘플링되는 경우가 예시되며, 쉐이딩 처리되지 않은 나머지 프래그먼트들은 홀 필링 처리를 통해 그 값이 산출될 수 있다.
도 5a,b,c에 도시된 실시예에 따르면, 프래그먼트들의 값의 변화가 없거나 점진적인 경우에는 보간 처리에 의해 산출된 값이 실제 값과 동일 또는 유사할 수 있다. 반면에, 프래그먼트들의 값의 변화가 큰 경우에는 보간 처리를 통해 얻어진 결과의 유효성이 보장되기 어려울 수 있다. 반면에, 도 6에 도시된 실시예에서는 중간 렌더링 처리 후 바로 홀 필링을 수행하는 것이 아니라, 샘플링되지 않은 프래그먼트들이 보간 처리가 수행되기에 적절한 지를 샘플 후보 맵 변형 과정을 통해 한번 더 판단할 수 있으므로, 도 5a,b,c에 비해 렌더링 처리의 품질이 더 향상될 수 있다.
한편, 도 7a,b은 적어도 두 개의 프레임의 데이터를 이용하여 샘플 후보 맵 변형을 수행하는 예는 나타낸다. 도 7a,b는 두 개의 프레임들의 데이터가 이용됨에 따라 프레임들이 오드 프레임(Frame_Odd)과 이븐 프레임(Frame_Even)으로 분류되고, 각각의 프레임에서의 제1 샘플 후보 맵(SCM_1)의 패턴이 도시된다. 그러나, 본 발명의 실시예들은 이에 국한될 필요가 없으며, 3 개 또는 그 이상의 프레임들의 데이터가 후보 맵 변형에 이용되는 경우에는, 세 개 이상의 프레임들의 제1 샘플 후보 맵(SCM_1)의 패턴이 상이할 수도 있을 것이다.
도 7a를 참조하면, 전술한 도 6의 실시예에 비해 제1 후보 맵(SCM_1)의 샘플링 비율이 더 작을 수 있다. 일 예로, 도 7a의 예에서는 4*4 사이즈의 프래그먼트들마다 두 개의 프래그먼트만이 샘플링될 수 있다. 오드 프레임(Frame_ODD)의 렌더링 처리시, 제1 후보 맵(SCM_1)의 샘플링 정보가 제1 패턴을 가짐에 따라 4*4 사이즈의 프래그먼트들 중에서 제2행 및 제3열에 위치하는 프래그먼트와 제4행 및 제1 열에 위치하는 프래그먼트가 샘플링될 수 있다. 반면에, 이븐 프레임(Frame_Even)의 렌더링 처리시, 제1 후보 맵(SCM_1)의 샘플링 정보가 제2 패턴을 가짐에 따라 4*4 사이즈의 프래그먼트들 중에서 제2행 및 제1열에 위치하는 프래그먼트와 제4행 및 제3 열에 위치하는 프래그먼트가 샘플링될 수 있다. 그러나, 이는 하나의 실시예에 불과한 것으로서, 상기 오드 프레임(Frame_ODD) 및 이븐 프레임(Frame_Even)의 제1 샘플 후보 맵(SCM_1)은 다른 다양한 방식에 따라 그 패턴이 설정될 수도 있을 것이다. 즉, 도 7a에서와 같이 오드 프레임(Frame_ODD) 및 이븐 프레임(Frame_Even)의 상호 보완이 가능하도록 오드 프레임(Frame_ODD)에서의 제1 샘플 후보 맵(SCM_1)과 이븐 프레임(Frame_Even)에서의 제1 샘플 후보 맵(SCM_1)이 설정될 수 있을 것이다.
현재 프레임이 이븐 프레임(Frame_Even)에 해당하는 경우를 가정하여 본 발명의 동작 예를 설명하면 다음과 같다. 먼저, 이븐 프레임(Frame_Even)의 처리시, 제2 패턴을 갖는 제1 샘플 후보 맵(SCM_1)에 따라 중간 렌더링 처리가 수행되고, 이에 따라 제2 패턴에 대응하는 위치의 프래그먼트들의 값이 산출될 수 있다. 또한, 기 산출된 프래그먼트들의 값을 이용하여 제1 샘플 후보 맵(SCM_1)을 변형함에 있어서, 이전의 오드 프레임(Frame_ODD)에서의 제1 패턴에 대응하는 위치의 프래그먼트들의 값과, 현재의 이븐 프레임(Frame_Even)의 중간 렌더링 처리를 통해 산출된 제2 패턴에 대응하는 위치의 프래그먼트들의 값이 이용될 수 있다.
샘플 후보 맵 변형에 이용되는 오드 프레임(Frame_ODD)의 프래그먼트 값(Pv)과 이븐 프레임(Frame_Even)의 프래그먼트 값(Pv)을 결합한 예는 도 7b에 도시된 바와 같다. 즉, 하나의 프레임에 대해서는 그 샘플링 비율이 낮음에 따라 프래그먼트 값(Pv) 사이의 간격이 상대적으로 길더라도, 본 발명의 예시적인 실시예에 따라 두 개의 프레임들의 프래그먼트 값(Pv)이 이용되는 경우에는 프래그먼트 값(Pv) 사이의 간격이 짧은 효과를 나타낼 수 있다. 이에 따라, 실제 쉐이딩 처리가 필요한 프래그먼트들이 더 정확히 판단되고, 추가로 샘플링되는 프래그먼트들에 대해 최종 렌더링 처리가 수행될 수 있다.
도 8은 본 발명의 예시적인 실시예에 따른 제1 샘플 후보 맵(SCM_1) 및 이를 변형한 제2 샘플 후보 맵(SCM_2)을 나타내는 도면이다. 도 8에서는 도 7a,b의 실시예에 따라 이븐 프레임(Frame_Even)에서의 샘플 후보 맵의 변형 예가 도시된다.
도 8을 참조하면, 그래픽 프로세서는 프래그먼트들에 대한 중간 렌더링 처리를 위해 제1 패턴을 갖는 제1 샘플 후보 맵(SCM_1)을 생성할 수 있으며, 일 예로서 샘플링이 수행될 프래그먼트들에 대응하는 패턴은 "1"의 값을 가지고, 샘플링이 수행되지 않는 프래그먼트들에 대응하는 패턴은 "0"의 값을 가질 수 있다.
이후, 제1 샘플 후보 맵(SCM_1)을 재평가함에 의해 제2 샘플 후보 맵(SCM_2)이 생성될 수 있다. 일 예로서, 현재 프레임에서 제1 위치(P0) 및 제2 위치(P1)의 프래그먼트 값과 그 사이의 적어도 하나의 이전 프레임에서의 프래그먼트 값을 이용하여 제1 위치(P0)와 제2 위치(P1) 사이의 영역(Reg_1)의 프래그먼트들의 샘플링 필요성 여부가 판단될 수 있다. 도 8에서는 제1 위치(P0)와 제2 위치(P1) 사이의 영역(Reg_1)의 프래그먼트들에 대응하는 패턴이 변경되어 추가로 샘플링되는 예가 도시된다. 또한, 도 8에서는 제3 위치(P2)와 제4 위치(P3) 사이의 영역(Reg_2)의 프래그먼트들은 샘플링되지 않는 반면에, 제4 위치(P3)와 제5 위치(P4) 사이의 영역(Reg_3)의 프래그먼트들은 추가로 샘플링되는 예가 도시된다.
도 7a,b 및 도 8에 도시된 실시예에 따르면, 전술한 도 6의 예에서에 비해 샘플링 비율이 작더라도, 적어도 두 개의 프레임들의 프래그먼트 값을 이용하여 샘플 후보 맵이 변형되므로, 실제 쉐이딩 처리가 필요로되는 프래그먼트의 판단 정확도가 낮아지는 것을 방지할 수 있다. 즉, 도 7a,b 및 도 8에 도시된 실시예에 따르면, 중간 렌더링 처리가 수행되는 프래그먼트 수를 감소함으로써 처리 속도를 향상할 수 있으며, 또한 렌더링 품질이 저하되는 것을 최소화할 수 있다.
또한, 본 발명의 실시예들에 따르면, 전술한 도 5a,b,c 내지 도 8의 실시예들에 따른 동작이 선택적으로 수행될 수 있다. 일 예로서, 그래픽 프로세서는 호스트로부터의 제어 또는 자체적인 제어를 통해 제1 샘플 후보 맵의 샘플링 비율을 조절할 수 있으며, 이를 통해 쉐이딩 처리될 프래그먼트의 양을 조절할 수 있다. 예컨대, 렌더링 처리되는 다수의 프레임들 중 일부는 도 5a,b,c 의 예에 따라 처리되고, 다른 일부는 도 6의 예에 따라 처리되며, 다른 일부는 도 7a,b 및 도 8의 예에 따라 처리될 수 있다. 예컨대, 샘플링 모드에서, 제1 샘플 후보 맵의 샘플링 비율이 소정의 기준값보다 클 때에는 상기 도 6의 실시예가 적용되고, 소정의 기준값보다 작을 때에는 상기 도 7a,b 및 도 8의 실시예가 적용될 수 있을 것이다.
또는, 그래픽 프로세서는 호스트로부터의 제어 또는 자체적인 제어를 통해 샘플링 모드의 온/오프를 설정할 수 있으며, 샘플링 모드가 오프되는 경우에는 프레임(또는, 프리미티브) 내의 모든 프래그먼트들이 쉐이딩 처리될 수 있다.
도 9 및 도 10은 본 발명의 예시적인 실시예들에 따른 그래픽 프로세서의 동작방법을 나타내는 플로우차트이다.
도 9를 참조하면, 제1 샘플 후보 맵(SCM)에 따라 어느 하나의 프레임의 다수의 프래그먼트들 중 일부를 쉐이딩함으로써 중간 렌더링 처리가 수행될 수 있다(S21). 이후, 추가로 쉐이딩이 수행될 프래그먼트를 선택하기 위해 이전 프레임의 렌더링 결과(예컨대, 중간 렌더링 결과)와 현재 프레임의 렌더링 결과를 연산할 수 있다(S22). 또한, 연산 결과에 따라 하나 이상의 프래그먼트들을 포함하는 영역 별로 추가 샘플링이 필요한 지가 판단될 수 있다(S23).
판단 결과, 제1 샘플 후보 맵(SCM)에서 추가 샘플링이 필요한 프래그먼트에 대응하는 패턴은 그 값이 변경될 수 있다(S24). 반면에, 제1 샘플 후보 맵(SCM)에서 추가 샘플링이 필요하지 않은 프래그먼트에 대응하는 패턴은 그 값이 유지될 수 있다(S25). 또한, 상기와 같은 과정을 통해 생성된 제2 샘플 후보 맵(SCM)에 따라 추가의 프래그먼트들이 쉐이딩됨으로써 최종 렌더링 처리가 수행될 수 있다(S26).
한편, 도 10을 참조하면, 그래픽 프로세서로 입력되는 프레임에 따라 서로 다른 패턴을 갖는 제1 샘플 후보 맵(SCM)이 생성될 수 있으며, 제1 프레임이 수신됨에 따라 제1 패턴을 갖는 제1 샘플 후보 맵(SCM)이 생성될 수 있다(S31). 또한, 제1 패턴을 갖는 제1 샘플 후보 맵(SCM)을 이용하여 일부의 프래그먼트들에 대해 중간 렌더링 처리가 수행될 수 있으며(S32), 최종 쉐이딩 및 보간 동작을 통해 상기 제1 프레임에 대해 최종 렌더링 처리가 수행될 수 있다(S33).
또한, 제2 프레임이 수신됨에 따라 제2 패턴을 갖는 제1 샘플 후보 맵(SCM)이 생성될 수 있다(S34). 또한, 제2 프레임에 대해 제2 패턴을 갖는 제1 샘플 후보 맵(SCM)을 이용하여 일부의 프래그먼트들에 대해 중간 렌더링 처리가 수행될 수 있으며(S35), 제1 프레임의 중간 렌더링 결과와 제2 프레임의 중간 렌더링 결과가 비교될 수 있다(S36). 또한, 비교 결과에 기반하여 제1 샘플 후보 맵(SCM)의 샘플링 정보를 변경함으로써 제2 샘플 후보 맵(SCM)이 생성될 수 있으며(S37), 제2 프레임에 대해 제2 샘플 후보 맵(SCM)을 이용한 최종 렌더링 처리가 수행될 수 있다(S38).
도 11은 본 발명의 예시적인 실시예들에 따른 그래픽 프로세서의 일 구현 예를 나타내는 블록도이다. 도 11에는 설명의 편의상 샘플 후보 맵 생성 및 변경을 수행하는 구성과 렌더링을 처리하는 구성만이 도시되나, 그래픽 프로세싱을 위한 다른 다양한 구성들이 그래픽 프로세서에 더 구비될 수 있을 것이다.
도 11을 참조하면, 그래픽 프로세서(300)는 샘플 후보 맵 생성기(310), 중간 렌더링 처리기(320), 샘플 후보 맵 변형 장치(330) 및 최종 렌더링 처리기(340)를 포함할 수 있다. 일 실시예에 따라, 도 11에 도시된 구성 요소들은 프로세싱 코어 등의 하드웨어를 포함할 수 있으며, 도 11에는 중간 렌더링 처리기(320)와 최종 렌더링 처리기(340)가 별개의 하드웨어인 것으로 도시되었으나, 중간 렌더링 처리와 최종 렌더링 처리는 동일한 하드웨어에 의해 수행되도록 구현될 수도 있을 것이다.
SCM 생성기(310)는 패턴 정보(Info_pat)를 수신하고, 이를 이용하여 제1 샘플 후보 맵(SCM_1)을 생성할 수 있다. 패턴 정보(Info_pat)는 다수의 프래그먼트들 중 중간 렌더링 처리가 수행될 프래그먼트들의 위치를 나타내는 정보를 포함할 수 있다. 패턴 정보(Info_pat)는 호스트로부터 그래픽 프로세서(300)로 제공될 수 있다. 또는, 그래픽 프로세서(300)는 다수의 패턴 정보들을 그 내부에 저장할 수 있으며, 호스트로부터의 명령에 따라 그래픽 프로세서(300) 내부에서 패턴 정보(Info_pat)가 생성될 수 있다. 또는, 변형 가능한 실시예로서, 그래픽 프로세서(300)는 현재 렌더링이 수행될 프레임의 순서를 판단하고, 프레임에 따라 서로 다른 패턴을 갖는 패턴 정보(Info_pat)를 생성할 수도 있을 것이다.
중간 렌더링 처리기(320)는 다수의 프래그먼트들의 데이터(Data)와 제1 샘플 후보 맵(SCM_1)을 수신하고, 제1 샘플 후보 맵(SCM_1)의 제1 패턴에 대응하는 프래그먼트들에 대해 선택적으로 쉐이딩 처리를 수행할 수 있다. 중간 렌더링 처리기(320)의 쉐이딩 처리 결과(Data_I)는 SCM 변형 장치(330)로 제공될 수 있으며, 중간 렌더링 처리기(320)로부터의 쉐이딩 처리 결과(Data_I)는 제1 패턴에 대응하는 위치의 프래그먼트 값들을 포함할 수 있다.
SCM 변형 장치(330)는 이전 프레임의 프래그먼트 값(Frag_P)을 더 수신할 수 있으며, 상기 프래그먼트 값(Frag_P)은 이전 프레임에서의 제2 패턴을 갖는 제1 샘플 후보 맵(SCM_1)을 이용한 중간 렌더링 처리 결과를 포함할 수 있다. SCM 변형 장치(330)는 중간 렌더링 처리기(320)로부터의 처리 결과와 이전 프레임의 프래그먼트 값(Frag_P)을 이용한 연산을 통해 제1 샘플 후보 맵(SCM_1)을 변경함으로써 제2 샘플 후보 맵(SCM_2)을 생성할 수 있다. 최종 렌더링 처리기(340)는 중간 렌더링 처리기(320)의 쉐이딩 처리 결과(Data_I)와 제2 샘플 후보 맵(SCM_2)을 수신하고, 중간 렌더링 처리가 수행되지 않은 프래그먼트들 중 일부를 쉐이딩 처리함으로써 최종 렌더링 결과(Data_F)를 생성할 수 있다.
전술한 래스터라이저가 쉐이딩 처리가 수행될 프래그먼트들을 선택적으로 샘플링하는 경우, 도 11에 도시된 실시예에서 SCM 생성기(310) 및 SCM 변형 장치(330)는 래스터라이저에 포함되는 구성일 수 있다. 또는, 중간 렌더링 처리기(320) 및 최종 렌더링 처리기(340) 각각은 그 내부에 래스터라이징 기능을 수행하는 구성을 포함하는 것으로 정의될 수도 있을 것이다.
도 12는 본 발명의 실시예가 적용된 그래픽 프로세서의 전반적인 동작 절차를 나타내는 도면이다.
도 12를 참조하면, 그래픽 프로세서는 응용프로그램을 통해 호스트로부터 렌더링 데이터(또는, 그래픽 데이터(Data))와 명령(Command)을 수신할 수 있으며, 렌더링 데이터(Data)는 프리미티브 정보, 텍스쳐 정보 등을 포함할 수 있다. 그래픽 프로세서는 프리-렌더링 과정(S41)을 통해 상기 데이터(Data)와 명령(Command)을 렌더링이 가능한 형태로 가공할 수 있다. 그래픽 프로세서에 따라 상기 프리-렌더링 과정을 생략이 가능하며, 타일(Tile) 기반의 렌더링이 수행되는 경우에는 타일링 처리가 프리-렌더링 과정에서 수행될 수도 있다.
이후, 프리-렌더링 과정에서의 결과를 기반으로 뎁스(Depth)를 계산하는 과정(S42)이 수행되며, 계산 결과에 따라 뎁스 데이터(Depth Data)가 생성될 수 있다. 상기 뎁스 계산 과정 또한 응용프로그램이나 그래픽 프로세서에 따라 생략이 가능하며, 일 실시예에 따라 뎁스 데이터(Depth Data)는 전술한 실시예들에서의 제1 샘플 후보 맵을 생성하는 데 이용될 수 있다.
소정의 패턴을 갖는 샘플링 정보가 그래픽 프로세서 내부에서 생성되거나 또는 호스트로부터 전송되어 SCM 생성기로 제공될 수 있다. 일 구현 예로서, 샘플 패턴 생성기(SPG)가 그래픽 프로세서 내에 구비되고, 샘플 패턴 생성기(SPG)는 다수의 패턴 정보들을 포함할 수 있다. 이전 실시예에서 설명된 예를 참조하면, 샘플 패턴 생성기(SPG)는 프레임의 순서에 따라 제1 패턴을 갖는 패턴 정보 및 제2 패턴을 갖는 패턴 정보를 번갈아 SCM 생성기로 제공할 수 있다. 또한, 샘플 패턴 생성기(SPG)는 프레임의 순서에 따라 제1 패턴 및 제2 패턴을 갖는 패턴 정보들 중 어느 하나를 SCM 생성기로 제공하고, 다른 하나를 픽셀 추출기(PE)로 제공할 수 있다.
또한, SCM 생성기는 수신된 샘플 패턴에 따라 프래그먼트들이 샘플링되도록 제1 샘플 후보 맵을 생성할 수 있으며(S43), 생성된 제1 샘플 후보 맵을 중간 렌더링 처리기로 제공할 수 있다. 일 실시예에 따라, SCM 생성기는 뎁스 데이터(Depth Data)를 더 이용하여 제1 샘플 후보 맵을 생성할 수 있다. 예컨대, 뎁스 차이가 큰 프래그먼트들은 최종 렌더링 과정에서 그 값이 서로 다르거나 또는 그 값의 차이가 클 확률이 높기 때문에, SCM 생성기는 뎁스 데이터(Depth Data)를 기반으로 하여 샘플링 정보를 조절할 수 있다. 예컨대, 어느 하나의 프리미티브에 포함되는 다수의 프래그먼트들의 뎁스의 차이가 큰 경우에는 상기 다수의 프래그먼트이 모두 쉐이딩 처리되도록 제1 샘플 후보 맵이 생성될 수 있다. 또는, 어느 하나의 프리미티브에 포함되는 다수의 프래그먼트들이 다수의 영역들로 분류되고, 각각의 영역 내에서의 뎁스 차이에 기반하여 해당 영역에 포함되는 프래그먼트이 모두 쉐이딩 처리되도록 제1 샘플 후보 맵이 생성될 수도 있을 것이다.
상기와 같은 과정을 통해 생성된 프리-렌더링 결과, 뎁스 데이터(Depth Data) 및 제1 샘플 후보 맵을 이용하여 중간 렌더링 처리가 수행될 수 있다(S44). 제1 샘플 후보 맵에 따라, 다수의 프래그먼트들은 쉐이딩 처리에 의해 그 값이 산출되는 반면에, 나머지 프래그먼트들은 쉐이딩 처리가 수행되지 않은 홀(Hole)에 해당한다.
한편, 본 발명의 실시예에 따라, 제1 샘플 후보 맵을 변형함으로써 제2 샘플 후보 맵이 생성될 수 있으며(S45), 일 예로서 SCM 변형 장치는 현재 프레임의 중간 렌더링 처리 결과를 수신함과 함께, 이전 프레임으로부터 추출된 프래그먼트 값을 더 수신할 수 있다. 도 12에 도시된 픽셀 추출기(PE)는 이전 프레임의 프래그먼트 값들과 패턴 정보를 수신하고, 패턴 정보에 대응하는 프레그먼트의 값들을 추출하며, 이를 SCM 변형 장치로 제공할 수 있다. SCM 변형 장치는 전술한 실시예들에 따라 이전 프레임 및 현재 프레임의 프래그먼트 값을 이용한 연산을 통해 제2 샘플 후보 맵을 생성할 수 있다.
최종 렌더링 처리기는 중간 렌더링 데이터, 뎁스 데이터 및 제2 샘플 후보 맵을 이용하여 최종 렌더링 처리를 수행할 수 있다(S46). 최종 렌더링 처리를 통해 프래그먼트들에 대한 추가 쉐이딩 처리를 수행할 수 있다. 최종 렌더링 처리에 따라 생성된 데이터는 여전히 홀(Hole)을 포함하고 있으며, 홀 필링 처리를 거쳐 최종 이미지가 생성될 수 있다(S47).
일 실시예에 따라, 이전 프레임으로부터 추출된 프래그먼트 값은 상기 샘플 후보 맵 변형 과정에서 이용될 수 있으며, 상기 홀 필링 처리를 위한 보간 동작은 현재 프레임에서 쉐이딩 처리된 프래그먼트 값을 이용하여 수행될 수 있다. 또한, 상기와 같은 절차에 따라 생성된 현재 프레임의 최종 이미지 데이터는 다음의 프레임의 렌더링 처리 과정에서 샘플 후보 맵 변형 과정에 이용될 수 있다.
도 13은 본 발명의 변형 가능한 실시예에 따른 렌더링 시스템을 나타내는 블록도이다.
도 13을 참조하면, 렌더링 시스템(400)은 호스트(410) 및 그래픽 프로세서(420)를 포함할 수 있다. 호스트(410)는 어플리케이션(411) 및 디바이스 드라이버(412)를 포함할 수 있다. 또한, 그래픽 프로세서(420)는 샘플 후보 맵(SCM) 변형 장치(421), 프래그먼트 처리기(422) 및 보간 정확도 판단 장치(423)를 포함할 수 있다.
응용프로그램으로서 어플리케이션(411)은 명령(CMD) 및 그래픽 데이터(DATA)를 디바이스 드라이버(412)를 통해 그래픽 프로세서(420)로 제공할 수 있다. 또한, 어플리케이션(411) 또는 디바이스 드라이버(412)는 그래픽 프로세서(420)에서의 렌더링 처리에 관련된 샘플링 모드를 제어할 수 있으며, 일 예로서 샘플링 제어신호(Ctrl_C/F)를 그래픽 프로세서(420)로 제공할 수 있다. 또한, 그래픽 프로세서(420)의 보간 정확도 판단 장치(423)는 보간 처리에 의해 생성된 프래그먼트 값의 정확도를 판단하고, 판단 정보(Info_A)를 호스트(410)로 제공할 수 있다.
샘플링 제어신호(Ctrl_C/F)가 샘플링 오프 모드를 나타내는 경우, 그래픽 프로세서(420)는 전술한 실시예에서의 샘플링 동작을 수행함이 없이 전체 프래그먼트들에 대한 쉐이딩 처리를 수행할 수 있다. 반면에, 샘플링 제어신호(Ctrl_C/F)가 샘플링 온 모드를 나타내는 경우 그래픽 프로세서(420)는 전술한 실시예들에 따라 소정의 패턴을 갖는 샘플 후보 맵을 생성하고, 샘플 후보 맵을 변형하며, 중간 렌더링 처리 및 최종 렌더링 처리를 수행할 수 있다.
보간 정확도 판단 장치(423)는 소정의 주기에 따라 보간 정확도를 판단할 수 있다. 일 예로서, 각각의 프레임 별 또는 다수의 프레임마다 보간 정확도를 판단할 수 있다. 보간 정확도는 다양한 방식에 의해 판단될 수 있으며, 일 예로서 동일한 위치의 프래그먼트에 대해, 보간에 의해 생성된 프래그먼트 값(Frag_I)과 실제 쉐이딩 처리에 의해 생성된 프래그먼트 값(Frag_R)을 비교함에 의해 판단될 수 있다. 만약, 보간에 의한 프래그먼트 값(Frag_I)과 쉐이딩 처리에 의한 프래그먼트 값(Frag_R)의 차이가 큰 경우에는, 쉐이딩 처리가 수행될 필요가 있는 프래그먼트가 보간에 의해 그 값이 산출된 경우를 나타내며, 이는 렌더링 처리 특성이 낮음을 나타낼 수 있다.
판단 정보(Info_A)는 다양한 정보를 포함할 수 있다. 일 예로서, 보간 정확도 판단 장치(423)가 프래그먼트 값들(Frag_R, Frag_I)을 이용한 비교 처리를 수행하고, 이에 기반하여 보간 정확도를 계산하여 판단 정보(Info_A)를 생성할 수 있다. 또는, 변형 가능한 실시예로서, 판단 정보(Info_A)는 프래그먼트 값들(Frag_R, Frag_I)을 이용한 연산 결과만을 포함할 수 있으며, 호스트(410)가 판단 정보(Info_A)를 이용하여 보간 정확도를 판단할 수도 있을 것이다. 호스트(410)는 판단 정보(Info_A)에 기반하여 샘플링 제어신호(Ctrl_C/F)를 생성할 수 있다.
도 14는 본 발명의 변형 가능한 실시예에 따른 그래픽 프로세서를 나타내는 블록도이다. 도 14에서는 그래픽 프로세서(500) 내부적으로 보간 정확도를 판단하고 이에 기반하여 제1 샘플 후보 맵의 샘플링 비율을 조절하는 예가 도시된다.
도 14를 참조하면, 그래픽 프로세서(500)는 샘플 패턴 생성기(510), 샘플 후보 맵(SCM) 생성기(520), 샘플 후보 맵(SCM) 변형 장치(530), 프래그먼트 처리기(540) 및 보간 정확도 판단 장치(550)를 포함할 수 있다. 샘플 패턴 생성기(510)는 소정의 패턴을 갖는 패턴 정보를 생성하고 이를 SCM 생성기(520)로 제공하고, SCM 생성기(520)는 이에 기반하여 제1 샘플 후보 맵을 생성할 수 있다. 또한, 그래픽 프로세서(500)는 호스트로부터 명령(CMD) 및 그래픽 데이터(DATA)와 함께, 샘플링 모드의 온/오프를 제어하기 위한 샘플링 제어신호(Ctrl_C/F)를 수신할 수 있다.
샘플 패턴 생성기(510)는 프레임 별로 서로 다른 패턴을 갖는 패턴 정보를생성할 수 있으며, 일 실시예에 따라 보간 정확도 판단 장치(550)로부터의 판단 정보(Info_A)에 기반하여 샘플링 비율이 조절된 패턴 정보를 생성할 수 있다. 예컨대, 보간 정확도가 상대적으로 높은 경우(또는, 기 설정값보다 큰 경우) 프레임별로 유사도가 높은 것으로 판단되고, 이에 따라 샘플 패턴 생성기(510)는 샘플링 비율이 감소된 패턴 정보를 생성할 수 있다. 반면에, 보간 정확도가 상대적으로 낮은 경우에는 샘플 패턴 생성기(510)는 샘플링 비율이 증가된 패턴 정보를 생성할 수 있다.
일 실시예에 따라, 샘플링 비율이 낮은 경우에는 샘플 후보 맵 변형 동작이 다수의 프레임들의 프래그먼트 값을 이용하여 수행될 수 있다. 반면에, 샘플링 비율이 높은 경우에는 샘플 후보 맵 변형 동작이 수행됨이 없이 보간을 통해 홀 필링 처리가 수행되거나, 또는 현재 프레임의 프래그먼트 값을 이용한 샘플 후보 맵 변형 동작을 통해 최종 렌더링 처리가 수행될 수 있다.
도 15는 본 발명의 다른 변형 가능한 실시예에 따른 렌더링 시스템을 나타내는 블록도이다.
도 15를 참조하면, 렌더링 시스템(600)은 호스트(610) 및 그래픽 프로세서(620)를 포함하고, 호스트(610)는 어플리케이션(611), 디바이스 드라이버(612), 유사도 판단기(613) 및 주파수 특성 판단기(614)를 포함할 수 있다. 또한, 그래픽 프로세서(620)는 샘플 후보 맵(SCM) 변형 장치(621) 및 프래그먼트 처리기(622)를 포함할 수 있다.
일 실시예에 따라, 호스트(610)는 출력될 프레임들의 특성을 자체적으로 판단하고, 이에 기반하여 그래픽 프로세서(620)의 샘플링 동작을 제어할 수 있다. 일 예로서, 유사도 판단기(613)는 그래픽 처리될 다수의 프레임들에 대해 그 유사도를 판단할 수 있으며, 호스트(610)는 유사도 판단에 기반하여 샘플링 제어신호(Ctrl_C/F)를 그래픽 프로세서(620)로 제공할 수 있다. 샘플링 제어신호(Ctrl_C/F)는 샘플링 모드의 온 또는 오프를 제어할 수 있으며, 일 실시예에 따라 샘플링 제어신호(Ctrl_C/F)는 샘플링 비율을 조절하기 위한 정보를 더 포함할 수도 있을 것이다. 일 예로서, 다수의 프레임들에 대해 그 유사도 정도는 기 설정되어 호스트(610) 내부에 저장될 수 있으며, 유사도 판단기(613)는 기 설정된 정보를 기반으로 하여 현재 렌더링 처리될 프레임이 이전 프레임들과 유사도가 높은 지를 판단할 수 있다.
한편, 주파수 특성 판단기(614)는 프레임의 특성을 판단할 수 있다. 일 예로서, 주파수 특성 판단기(614)는 렌더링 처리된 프레임에 대해 자체적으로 그 특성(예컨대, 에지가 분포하는 정도)을 판단할 수 있다. 만약, 렌더링 진행되는 프레임들에 에지가 많이 존재하는 경우에는 이후에도 에지가 많이 존재할 확률이 높으며, 이 경우 호스트(610)는 샘플링 제어신호(Ctrl_C/F)를 그래픽 프로세서(620)로 제공함으로써 샘플링 모드를 오프시키거나, 또는 샘플링 비율을 증가시킬 수 있다.
도 16은 샘플링 모드의 가변 동작의 일 예를 나타내는 도면이다.
도 16을 참조하면 그래픽 프로세서는 다양한 샘플링 모드들에서 동작할 수 있으며, 다수의 프레임들에 대한 렌더링 처리를 수행함에 있어서 샘플링 모드가 가변될 수 있다. 전술한 실시예에서와 같이, 샘플링 모드의 변경은 호스트에 의해 제어되거나 또는 그래픽 프로세서 자체적으로 수행될 수 있다. 또는, 변형 가능한 예로서, 샘플링 모드의 온/오프는 호스트에 의해 제어되는 반면에, 샘플링 모드에서 샘플링 비율은 그래픽 프로세서 자체적으로 조절되는 방식이 적용될 수도 있을 것이다.
프레임의 내용이 크게 변동되거나 프레임 내에 다수의 에지들이 존재하는 경우, 또는 보간 처리된 프래그먼트 값과 실제 쉐이딩 처리된 프래그먼트 값이 차이가 큰 경우에는, 그래픽 프로세서가 샘플링 오프 모드(또는, 풀-샘플링 모드)에서 동작할 수 있다. 이 때, 전체 프래그먼트들에 대한 쉐이딩 처리가 수행될 수 있다.
이후, 프레임들의 유사도가 증가하는 등 다양한 기준에 따라 샘플링 모드가 온 될 수 있으며, 그래픽 프로세서는 먼저 세밀한(fine) 샘플링 모드에서 동작할 수 있다. 일 실시예에 따라, 샘플링 비율이 큰 제1 샘플 후보 맵을 통해 일부의 프래그먼트들을 중간 쉐이딩 처리하고, 나머지 프래그먼트들에 대해 전술한 실시예에 따른 샘플 후보 맵 변형 동작이 수행될 수 있다. 또한, 세밀한 샘플링 모드에서는 샘플 후보 맵 변형 동작이 현재 렌더링 처리되는 프레임의 프래그먼트 값을 이용하여 수행될 수 있다.
또한, 샘플링 모드가 개략적인(coarse) 샘플링 모드로 변경될 수 있으며, 이 때 샘플링 비율이 작은 제1 샘플 후보 맵을 통해 일부의 프래그먼트들을 중간 쉐이딩 처리하고, 나머지 프래그먼트들에 대해 전술한 실시예에 따른 샘플 후보 맵 변형 동작이 수행될 수 있다. 또한, 전술한 실시예에 따라, 개략적인 샘플링 모드에서는 샘플 후보 맵 변형 동작이 현재 프레임 및 이전 프레임의 쉐이딩 처리에 따른 프래그먼트 값을 이용하여 수행될 수 있다.
도 17a,b는 샘플 후보 맵 변형 동작이 3 개 이상의 프레임들의 데이터를 이용하여 수행되는 예를 나타내는 도면이다. 도 17a,b에서는 4 개의 프레임들의 데이터가 이용되는 예가 도시되었으나, 본 발명의 실시예들은 다른 다양한 개수의 프레임들이 이용되어도 무방할 것이다.
도 17a를 참조하면, 4*4 사이즈의 프래그먼트들마다 1 개의 프래그먼트가 샘플링되어 쉐이딩 처리될 수 있다. 또한, 4 개의 연속되는 프레임들에 대한 제1 샘플 후보 맵은 그 패턴이 서로 다를 수 있다. 일 예로서, 제1 내지 제4 프레임들(Frame 1 ~ Frame 4)의 제1 샘플 후보 맵(SCM_1)은 그 패턴이 서로 겹치지 않도록 설정될 수 있다.
한편, 도 17b를 참조하면, 샘플 후보 맵 변형 장치는 현재 프레임으로서 제4 프레임(Frame 4)의 제1 샘플 후보 맵(SCM_1)을 수신하고, 제4 프레임(Frame 4)의 중간 렌더링 처리된 프래그먼트 값(Frag_F4)을 수신할 수 있다. 또한, 샘플 후보 맵 변형 장치는 이전의 프레임들로서 제1 내지 제3 프레임들(Frame 1 ~ Frame 3)의 프래그먼트 값들(Frag_F1 ~ Frag_F4)을 이용할 수 있다. 일 실시예에 따라, 제1 내지 제3 프레임들(Frame 1 ~ Frame 3)의 프래그먼트 값들(Frag_F1 ~ Frag_F4)은 그래픽 프로세서 외부의 메모리에 저장될 수 있으며, 프래그먼트 값들(Frag_F1 ~ Frag_F4)은 외부의 메모리로부터 독출되어 샘플 후보 맵 변형 장치로 제공될 수 있다.
도 18은 본 발명의 예시적인 실시예에 따른 메모리 장치를 포함하는 모바일 장치의 일 구현 예를 나타내는 블록도이다.
모바일 장치(700)은 렌더링 시스템에 해당하고, 어플리케이션 프로세서(Application Processor, 710)와 메모리 장치(720)를 포함할 수 있다. 어플리케이션 프로세서(710)는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 온 칩(SoC)은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스(미도시)를 포함할 수 있으며, 상기 시스템 버스에 연결되는 각종 IP(Intellectual Property) 장치들을 포함할 수 있다. IP 장치들의 일 예로서, 도 18에는 어플리케이션 프로세서(710)가 중앙 처리 장치(CPU, 711), 그래픽 프로세서(GPU, 712), 모뎀 프로세서(713) 및 메모리 컨트롤 유닛(714)을 포함하는 예가 도시된다. 또한, 어플리케이션 프로세서(710)가 모뎀 통신 기능을 수행함에 따라, 어플리케이션 프로세서(710)는 ModAP으로 지칭될 수도 있다.
시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다.
그래픽 프로세서(712)는 전술한 실시예들에서 설명된 렌더링 처리를 수행할 수 있다. 이에 따라, 그래픽 프로세서(612)는 샘플 후보 맵 변형 장치를 포함할 수 있다. 하나 이상의 프레임 데이터(Data_Frame)는 메모리 컨트롤 유닛(714)을 통해 메모리 장치(720)에 저장될 수 있다. 또한, 샘플 후보 맵 변형 장치는 현재 프레임의 데이터와 메모리 장치(720)로부터 독출된 이전 프레임의 데이터를 이용하여 전술한 실시예들에서의 변형 동작을 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 제1 패턴을 갖는 제1 샘플 후보 맵을 이용하여 제1 프레임의 일부의 프래그먼트들을 쉐이딩 처리함으로써 중간 렌더링을 수행하는 단계;
    제2 패턴을 갖는 제1 샘플 후보 맵을 이용하여 제2 프레임의 일부의 프래그먼트들을 쉐이딩 처리함으로써 중간 렌더링을 수행하는 단계;
    상기 제1 프레임의 쉐이딩 처리 결과와 상기 제2 프레임의 쉐이딩 처리 결과를 이용하여, 상기 제2 프레임의 다른 일부의 프래그먼트들을 추가로 샘플링하는 단계; 및
    상기 추가로 샘플링된 프래그먼트들을 쉐이딩 처리함으로써 최종 렌더링을 수행하는 단계를 구비하는 그래픽 프로세서의 동작방법.
  2. 제1항에 있어서,
    상기 샘플링하는 단계는, 상기 제1 샘플 후보 맵의 샘플링 정보를 변경함으로써 제2 샘플 후보 맵을 생성하는 단계를 포함하고,
    상기 최종 렌더링을 수행하는 단계는, 상기 제2 샘플 후보 맵을 이용하여 샘플링된 프래그먼트들을 쉐이딩 처리하는 것을 특징으로 하는 그래픽 프로세서의 동작방법.
  3. 제1항에 있어서,
    상기 제2 프레임에 대한 중간 렌더링 및 최종 렌더링 단계에서 쉐이딩 처리되지 않은 나머지 프래그먼트들에 대한 보간 처리를 수행하는 단계를 더 구비하는 것을 특징으로 하는 그래픽 프로세서의 동작방법.
  4. 제1항에 있어서,
    상기 제1 프레임에 대한 중간 렌더링 수행 후, 상기 제1 프레임의 다른 일부의 프래그먼트들을 쉐이딩 처리함으로써 최종 렌더링을 수행하는 단계; 및
    상기 제1 프레임에 대한 중간 렌더링 및 최종 렌더링 단계에서 쉐이딩 처리되지 않은 나머지 프래그먼트들에 대한 보간 처리를 수행하는 단계를 더 구비하는 것을 특징으로 하는 그래픽 프로세서의 동작방법.
  5. 제1항에 있어서,
    상기 제1 프레임에서 상기 제1 패턴을 갖는 제1 샘플 후보 맵에 의해 샘플링되는 프래그먼트와 상기 제2 프레임에서 상기 제2 패턴을 갖는 제1 샘플 후보 맵에 의해 샘플링되는 프래그먼트의 위치는 상이한 것을 특징으로 하는 그래픽 프로세서의 동작방법.
  6. 제1항에 있어서,
    샘플링 오프 모드, 세밀한(fine) 샘플링 모드 및 개략적인(coarse) 샘플링 모드 중 어느 하나의 모드를 선택하는 단계를 더 구비하고,
    상기 개략적인 샘플링 모드가 선택될 때, 상기 제1 프레임 및 제2 프레임의 쉐이딩 처리 결과를 이용하여 상기 제2 프레임의 다른 일부의 프래그먼트들을 추가로 샘플링하는 것을 특징으로 하는 그래픽 프로세서의 동작방법.
  7. 제6항에 있어서,
    상기 샘플링 오프 모드로 동작 모드를 변경하는 단계;
    제3 프레임을 수신하는 단계; 및
    상기 제3 프레임의 전체의 프래그먼트들을 쉐이딩 처리함으로써 렌더링을 수행하는 단계를 더 구비하는 것을 특징으로 하는 그래픽 프로세서의 동작방법.
  8. 제6항에 있어서,
    상기 세밀한 샘플링 모드로 동작 모드를 변경하는 단계;
    제3 프레임을 수신하는 단계;
    제3 패턴을 갖는 제1 샘플 후보 맵을 이용하여 상기 제3 프레임의 일부의 프래그먼트들을 쉐이딩 처리함으로써 중간 렌더링을 수행하는 단계; 및
    상기 제3 프레임의 쉐이딩 처리 결과를 이용하여, 상기 제3 프레임의 다른 일부의 프래그먼트들을 추가로 샘플링하여 쉐이딩 처리함으로써 최종 렌더링을 수행하는 단계를 더 구비하고,
    상기 제3 패턴은 상기 제2 패턴에 비해 샘플링 비율이 더 큰 것을 특징으로 하는 그래픽 프로세서의 동작방법.
  9. 샘플 후보 맵의 샘플링 정보에 따라 현재 프레임의 다수의 프래그먼트들 중 일부의 프래그먼트들에 대한 쉐이딩 처리를 수행하는 중간 렌더링 처리기;
    이전 프레임에서의 쉐이딩 처리 결과와 상기 현재 프레임의 쉐이딩 처리 결과를 이용하여 상기 제1 샘플 후보 맵의 샘플링 정보를 변경함으로써 변경된 샘플 후보 맵을 생성하는 샘플 후보 맵 변형 장치; 및
    상기 중간 렌더링 처리기에 의해 쉐이딩 처리되지 않은 프래그먼트들 중 상기 변경된 샘플 후보 맵에 의해 추가로 샘플링되는 일부의 프래그먼트들에 대한 쉐이딩 처리를 수행하는 최종 렌더링 처리기를 구비하는 그래픽 프로세서.
  10. 제9항에 있어서,
    상기 중간 렌더링 처리기 및 상기 최종 렌더링 처리기에 의해 쉐이딩 처리되지 않은 프래그먼트에 대한 홀 필링(Hole Filling)을 수행하는 보간 처리기를 더 구비하는 것을 특징으로 하는 그래픽 프로세서.
  11. 제9항에 있어서,
    수신되는 패턴 정보에 따라 상기 샘플 후보 맵을 생성하는 샘플 후보 맵 생성기를 더 구비하는 것을 특징으로 하는 그래픽 프로세서.
  12. 제11항에 있어서,
    상기 샘플 후보 맵은, 오드(ODD) 프레임에 대한 렌더링 처리시 제1 패턴을 가지고, 이븐(EVEN) 프레임에 대한 렌더링 처리시 상기 제1 패턴과는 상이한 제2 패턴을 가지며,
    상기 이전 프레임은 상기 오드 프레임에 해당하고, 상기 현재 프레임은 상기 이븐 프레임에 해당하는 것을 특징으로 하는 그래픽 프로세서.
  13. 제12항에 있어서,
    프레임 순서에 따라 상기 제1 패턴 또는 상기 제2 패턴을 갖는 패턴 정보를 상기 샘플 후보 맵 생성기로 제공하는 샘플 패턴 생성기를 더 구비하는 것을 특징으로 하는 그래픽 프로세서.
  14. 제13항에 있어서,
    상기 이전 프레임에서의 쉐이딩 처리 결과에 따른 프래그먼트 값들을 수신하고, 상기 제2 패턴을 갖는 패턴 정보가 상기 샘플 후보 맵 생성기로 제공될 때 상기 샘플 패턴 생성기로부터 상기 제1 패턴을 갖는 패턴 정보를 수신하며, 상기 이전 프레임의 상기 제1 패턴에 대응하는 프래그먼트의 값을 상기 샘플 후보 맵 변형 장치로 제공하는 픽셀 추출기를 더 구비하는 것을 특징으로 하는 그래픽 프로세서.
  15. 각각의 프레임에 대해, 다수의 프래그먼트들 중 일부의 프래그먼트를 선택하기 위한 제1 샘플 후보 맵을 수신하고, 적어도 두 개의 프레임의 쉐이딩 처리 결과를 이용하여 상기 제1 샘플 후보 맵의 샘플링 정보를 변경함에 의해 제2 샘플 후보 맵을 생성하는 샘플 후보 맵 변형 장치; 및
    상기 제1 샘플 후보 맵에 의해 샘플링된 프래그먼트들에 대한 쉐이딩 처리를 통해 중간 렌더링 처리를 수행하고, 상기 제2 샘플 후보 맵에 의해 추가로 샘플링된 프래그먼트들에 대한 쉐이딩 처리를 통해 최종 렌더링 처리를 수행하는 프래그먼트 처리기를 구비하는 것을 특징으로 하는 그래픽 프로세서.
  16. 제15항에 있어서,
    패턴 정보를 수신하고, 상기 패턴 정보에 따라 상기 제1 샘플 후보 맵을 생성하는 샘플 후보 맵 생성기를 더 구비하고,
    상기 샘플 후보 맵 변형 장치는,
    상기 제1 샘플 후보 맵의 샘플링 비율이 기준값보다 작을 때, 이전 프레임에서의 쉐이딩 처리 결과와 현재 프레임의 쉐이딩 처리 결과를 이용하여 상기 제1 샘플 후보 맵을 변형하고,
    상기 제1 샘플 후보 맵의 샘플링 비율이 기준값보다 클 때, 상기 현재 프레임의 쉐이딩 처리 결과를 이용하여 상기 제1 샘플 후보 맵을 변형하는 것을 특징으로 하는 그래픽 프로세서.
  17. 제16항에 있어서,
    상기 샘플 후보 맵 생성기는, 외부의 호스트로부터의 명령에 응답하여 상기 제1 샘플 후보 맵의 샘플링 비율을 조절하는 것을 특징으로 하는 그래픽 프로세서.
  18. 제16항에 있어서,
    상기 현재 프레임의 동일 프래그먼트에 대해 쉐이딩 처리에 의해 산출된 값과 보간 처리에 의해 산출된 값을 비교함으로써 보간 정확도 판단을 수행하는 보간 정확도 판단 장치를 더 구비하고,
    상기 샘플 후보 맵 생성기는, 상기 판단 결과에 따라 상기 제1 샘플 후보 맵의 샘플링 비율을 조절하는 것을 특징으로 하는 그래픽 프로세서.
  19. 제15항에 있어서,
    상기 그래픽 프로세서는 외부의 호스트로부터 샘플링 모드의 온/오프를 나타내는 샘플링 제어신호를 수신하고,
    상기 샘플링 모드가 오프에 해당하는 경우, 상기 제1 샘플 후보 맵은 전체 프래그먼트들을 샘플링하기 위한 샘플링 정보를 갖는 것을 특징으로 하는 그래픽 프로세서.
  20. 제15항에 있어서,
    상기 프래그먼트 처리기는 다수의 프로세싱 코어들을 포함하고,
    상기 중간 렌더링 처리는 상기 다수의 프로세싱 코어들 중 일부에 의해 수행되고, 상기 최종 렌더링 처리는 상기 다수의 프로세싱 코어들 중 다른 일부에 의해 수행되는 것을 특징으로 하는 그래픽 프로세서.
KR1020170182640A 2017-12-28 2017-12-28 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법 KR102545172B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020170182640A KR102545172B1 (ko) 2017-12-28 2017-12-28 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법
US16/048,905 US10762696B2 (en) 2017-12-28 2018-07-30 Graphic processor performing sampling-based rendering and method of operating the same
DE102018125472.5A DE102018125472B4 (de) 2017-12-28 2018-10-15 Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben
TW107139258A TWI789452B (zh) 2017-12-28 2018-11-06 執行基於採樣繪圖的圖形處理器及其操作方法
CN201811345135.6A CN109978750B (zh) 2017-12-28 2018-11-13 执行基于采样的渲染的图形处理器和操作其的方法
JP2018239344A JP7221679B2 (ja) 2017-12-28 2018-12-21 グラフィックプロセッサ、及びその動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170182640A KR102545172B1 (ko) 2017-12-28 2017-12-28 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20190080274A true KR20190080274A (ko) 2019-07-08
KR102545172B1 KR102545172B1 (ko) 2023-06-19

Family

ID=66816973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170182640A KR102545172B1 (ko) 2017-12-28 2017-12-28 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법

Country Status (6)

Country Link
US (1) US10762696B2 (ko)
JP (1) JP7221679B2 (ko)
KR (1) KR102545172B1 (ko)
CN (1) CN109978750B (ko)
DE (1) DE102018125472B4 (ko)
TW (1) TWI789452B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102589969B1 (ko) 2018-11-05 2023-10-16 삼성전자주식회사 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법
US11089320B2 (en) * 2019-03-27 2021-08-10 Nvidia Corp. Adaptive pixel sampling order for temporally dense rendering
CN112419147B (zh) * 2020-04-14 2023-07-04 上海哔哩哔哩科技有限公司 图像渲染方法及装置
US11899588B2 (en) 2020-09-14 2024-02-13 Samsung Electronics Co., Ltd. Systems, methods, and devices for discarding inactive intermediate render targets
US11922556B2 (en) * 2021-04-12 2024-03-05 Nvidia Corporation Ray-traced light resampling using screen space visibility
US20220383573A1 (en) * 2021-05-19 2022-12-01 Disney Enterprises, Inc. Frame interpolation for rendered content

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8044956B1 (en) * 2007-08-03 2011-10-25 Nvidia Corporation Coverage adaptive multisampling
KR20150119803A (ko) * 2014-04-16 2015-10-26 에이알엠 리미티드 그래픽 처리 시스템

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020140706A1 (en) 2001-03-30 2002-10-03 Peterson James R. Multi-sample method and system for rendering antialiased images
GB0426170D0 (en) 2004-11-29 2004-12-29 Falanx Microsystems As Processing of computer graphics
US8203558B2 (en) * 2008-01-28 2012-06-19 Apple Inc. Dynamic shader generation
GB2469526B (en) * 2009-04-17 2015-06-24 Advanced Risc Mach Ltd Generating and resolving pixel values within a graphics processing pipeline
KR20100132605A (ko) * 2009-06-10 2010-12-20 삼성전자주식회사 하이브리드 렌더링 장치 및 방법
GB2497302B (en) * 2011-12-05 2017-04-12 Advanced Risc Mach Ltd Methods of and apparatus for processing computer graphics
US9607356B2 (en) 2013-05-02 2017-03-28 Arm Limited Graphics processing systems
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
KR102122454B1 (ko) 2013-10-02 2020-06-12 삼성전자주식회사 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US9830714B2 (en) 2014-06-27 2017-11-28 Samsung Electronics Co., Ltd. Graphics processing with advection to reconstruct missing sample data points
KR102370617B1 (ko) 2015-04-23 2022-03-04 삼성전자주식회사 적응적 샘플링을 수행하여 영상을 처리하는 방법 및 장치.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8044956B1 (en) * 2007-08-03 2011-10-25 Nvidia Corporation Coverage adaptive multisampling
KR20150119803A (ko) * 2014-04-16 2015-10-26 에이알엠 리미티드 그래픽 처리 시스템

Also Published As

Publication number Publication date
US10762696B2 (en) 2020-09-01
TW201931300A (zh) 2019-08-01
KR102545172B1 (ko) 2023-06-19
US20190206121A1 (en) 2019-07-04
CN109978750A (zh) 2019-07-05
DE102018125472A1 (de) 2019-07-04
DE102018125472B4 (de) 2023-12-07
CN109978750B (zh) 2024-05-31
JP2019121381A (ja) 2019-07-22
JP7221679B2 (ja) 2023-02-14
TWI789452B (zh) 2023-01-11

Similar Documents

Publication Publication Date Title
KR102545172B1 (ko) 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법
US10102663B2 (en) Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US20200302574A1 (en) Varying effective resolution by screen location by altering rasterization parameters
CN110488967B (zh) 图形处理
US8044955B1 (en) Dynamic tessellation spreading for resolution-independent GPU anti-aliasing and rendering
US11348308B2 (en) Hybrid frustum traced shadows systems and methods
US9710933B2 (en) Method and apparatus for processing texture
US10332290B2 (en) Fast, coverage-optimized, resolution-independent and anti-aliased graphics processing
KR20170014350A (ko) 텍스쳐 처리 방법 및 장치
US10192348B2 (en) Method and apparatus for processing texture
KR20170025099A (ko) 렌더링 방법 및 장치
CN115841433B (zh) 基于图块的光栅化方法和设备、图像渲染方法和设备
US9390551B2 (en) Method for estimation of information representative of a pixel of a virtual object
US11989807B2 (en) Rendering scalable raster content
US11776179B2 (en) Rendering scalable multicolored vector content

Legal Events

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