KR20170014350A - 텍스쳐 처리 방법 및 장치 - Google Patents
텍스쳐 처리 방법 및 장치 Download PDFInfo
- Publication number
- KR20170014350A KR20170014350A KR1020150107516A KR20150107516A KR20170014350A KR 20170014350 A KR20170014350 A KR 20170014350A KR 1020150107516 A KR1020150107516 A KR 1020150107516A KR 20150107516 A KR20150107516 A KR 20150107516A KR 20170014350 A KR20170014350 A KR 20170014350A
- Authority
- KR
- South Korea
- Prior art keywords
- texture
- format
- filtering
- processing apparatus
- graphics processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Manufacturing Of Magnetic Record Carriers (AREA)
- Threshing Machine Elements (AREA)
- Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
Abstract
그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 텍스쳐의 포맷을 변환하여 텍스쳐를 처리하는 텍스쳐 처리 방법 및 장치를 개시한다.
Description
텍스쳐 처리 방법 및 장치에 관한 것이다.
3차원 그래픽스 렌더링 과정 중 픽셀 쉐이딩 과정에서의 연산 량을 줄이고 렌더링 속도를 가속하기 위해, 그래픽 처리 장치(Graphic Processing Unit, GPU)는 텍스쳐 처리 장치(texture processing unit)를 포함하고 있다.
텍스쳐 처리 장치는 텍스쳐링(texturing)에 필요한 텍스쳐를 생성하는 작업을 수행한다. 텍스쳐링은 3차원 공간에 형성된 오브젝트(object)에 미리 준비된 이미지를 입히는 작업으로, 연산 량을 줄이기 위한 3차원 그래픽스 렌더링의 동작 중 하나이다. 이때, 미리 준비된 이미지를 텍스쳐(texture)라고 부르며, 텍스쳐는 텍스쳐 처리 장치 외부의 메모리에 압축된 형태로 미리 준비되어 있을 수 있다.
텍스쳐 처리 장치는 텍스쳐를 구성하는 텍셀들이 소정의 블록 단위로 압축된 압축 텍셀 블록을 외부의 메모리로부터 수신하여 처리함으로써, 쉐이더 코어로부터 요청된 텍스쳐를 전송한다.
그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도(precision)에 기초하여, 텍스쳐의 포맷을 변환하여 텍스쳐를 처리하는 텍스쳐 처리 방법 및 장치를 제공하는 것이다.
제 1 측면에 따른, 텍스쳐 처리 장치는, 텍스쳐를 저장하는 텍스쳐 캐쉬; 요청된 텍스쳐에 대응되는 텍스쳐 어드레스를 결정하고, 상기 텍스쳐 어드레스에 대응되는 텍스쳐를 상기 텍스쳐 캐쉬로부터 독출하는 제어부; 그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 상기 독출된 텍스쳐의 포맷을 변환하는 포맷 변환부; 및 상기 포맷이 변환된 텍스쳐를 이용하여, 텍스쳐 필터링을 수행하는 텍스쳐 필터;를 포함한다.
또한, 상기 포맷 변환부는, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도에 기초하여, 상기 텍스쳐의 포맷을 결정하고, 상기 독출된 텍스쳐를 상기 결정된 텍스쳐의 포맷으로 출력할 수 있다.
또한, 상기 포맷 변환부는,
상기 텍스쳐 필터링의 모드 및 상기 그래픽 처리 장치에서 이용되는 API의 종류 중 적어도 하나에 기초하여, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도를 판단하고, 상기 판단 결과에 따라, 상기 텍스쳐의 포맷의 변환 여부를 결정수 있다.
또한, 상기 포맷 변환부는, 상기 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, 상기 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않는 경우, 상기 텍스쳐의 포맷을 변환할 수 있다.
또한, 상기 포맷 변환부는, 상기 그래픽 처리 장치에 요청되는 렌더링 수준을 더 고려하여, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도를 판단할 수 있다.
또한, 상기 포맷 변환부는, 상기 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, 상기 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않으며, 상기 요청된 렌더링 수준이 소정의 기준 이하인 경우, 상기 텍스쳐의 포맷을 변환할 수 있다.
또한, 상기 그래픽 처리 장치에 요청되는 렌더링 수준은 상기 그래픽 처리 장치에 연결된 애플리케이션을 통해 사용자로부터 결정되거나, 상기 그래픽 처리 장치의 하드웨어 리소스에 기초하여 그래픽 처리 장치에서 결정될 수 있다.
또한, 상기 텍스쳐 필터는, 상기 변환된 포맷에 대응되는 필터링 유닛을 구동하여, 상기 텍스쳐 필터링을 수행할 수 있다.
또한, 상기 독출된 텍스쳐를 압축 해제하는 디컴프레서;를 더 포함하고, 상기 포맷 변환부는, 상기 그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 상기 압축 해제된 텍스쳐의 포맷을 변환할 수 있다.
또한, 상기 포맷이 변환된 텍스쳐를 압축 해제하는 디컴프레서;를 더 포함하고, 상기 텍스쳐 필터는, 상기 압축 해제된 텍스쳐를 이용하여, 상기 텍스쳐 필터링을 수행할 수 있다.
제 2 측면에 따른, 텍스쳐 처리 방법은, 요청된 텍스쳐에 대응되는 텍스쳐 어드레스를 결정하는 단계; 상기 텍스쳐 어드레스에 대응되는 텍스쳐를 텍스쳐 캐쉬로부터 독출하는 단계; 그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 상기 독출된 텍스쳐의 포맷을 변환하는 단계; 및 상기 포맷이 변환된 텍스쳐를 이용하여, 텍스쳐 필터링을 수행하는 단계;를 포함한다.
또한, 상기 포맷을 변환하는 단계는, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도에 기초하여, 상기 텍스쳐의 포맷을 결정하는 단계; 및 상기 독출된 텍스쳐를 상기 결정된 텍스쳐의 포맷으로 출력하는 단계;를 포함할 수 있다.
또한, 상기 텍스쳐의 포맷을 결정하는 단계는, 상기 텍스쳐 필터링의 모드 및 상기 그래픽 처리 장치에서 이용되는 API의 종류 중 적어도 하나에 기초하여, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 텍스쳐의 포맷의 변환 여부를 결정하는 단계;를 포함할 수 있다.
또한, 상기 텍스쳐의 포맷의 변화 여부를 결정하는 단계는, 상기 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, 상기 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않는 경우, 상기 텍스쳐의 포맷을 변환할 수 있다.
또한, 상기 정밀도를 판단하는 단계는, 상기 그래픽 처리 장치에 요청되는 렌더링 수준을 더 고려하여, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도를 판단할 수 있다.
또한, 상기 텍스쳐의 포맷의 변화 여부를 결정하는 단계는, 상기 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, 상기 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않으며, 상기 요청된 렌더링 수준이 소정의 기준 이하인 경우, 상기 텍스쳐의 포맷을 변환할 수 있다.
또한, 상기 텍스쳐 필터링을 수행하는 단계는, 상기 변환된 포맷에 대응되는 필터링 유닛을 구동하여, 상기 텍스쳐 필터링을 수행할 수 있다.
또한, 상기 독출된 텍스쳐를 압축 해제하는 단계;를 더 포함하고, 상기 포맷을 변환하는 단계는, 상기 그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 상기 압축 해제된 텍스쳐의 포맷을 변환할 수 있다.
또한, 상기 포맷이 변환된 텍스쳐를 압축 해제하는 단계;를 더 포함하고, 상기 텍스쳐 필터링을 수행하는 단계는, 상기 압축 해제된 텍스쳐를 이용하여, 상기 텍스쳐 필터링을 수행할 수 있다.
제 3 측면에 따른, 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체는 상기 텍스쳐 처리 방법을 컴퓨터에서 실행시키기 위한 프로그램으로 기록한다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타낸 도면이다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
도 3은 일 실시예에 따른 텍스쳐 처리 장치의 구성과 동작을 설명하기 위한 도면이다.
도 4는 텍스쳐의 포맷을 설명하기 위한 도면이다.
도 5는 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
도 6은 텍스쳐의 포맷 변환에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
도 7은 다른 실시예에 따른 텍스쳐 처리 장치의 구성을 나타낸 블록도이다.
도 8은 또 다른 실시예에 따른 텍스쳐 처리 장치의 구성을 나타낸 블록도이다.
도 9는 일 실시예에 따른 텍스쳐 처리 방법을 설명하기 위한 흐름도이다.
도 10은 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다.
도 11은 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계 중 텍스쳐의 포맷을 결정하는 단계의 일 실시예에 대한 상세 흐름도이다.
도 12는 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계 중 텍스쳐의 포맷을 결정하는 단계의 다른 실시예에 대한 상세 흐름도이다.
도 13은 다른 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다.
도 14는 또 다른 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
도 3은 일 실시예에 따른 텍스쳐 처리 장치의 구성과 동작을 설명하기 위한 도면이다.
도 4는 텍스쳐의 포맷을 설명하기 위한 도면이다.
도 5는 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
도 6은 텍스쳐의 포맷 변환에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
도 7은 다른 실시예에 따른 텍스쳐 처리 장치의 구성을 나타낸 블록도이다.
도 8은 또 다른 실시예에 따른 텍스쳐 처리 장치의 구성을 나타낸 블록도이다.
도 9는 일 실시예에 따른 텍스쳐 처리 방법을 설명하기 위한 흐름도이다.
도 10은 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다.
도 11은 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계 중 텍스쳐의 포맷을 결정하는 단계의 일 실시예에 대한 상세 흐름도이다.
도 12는 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계 중 텍스쳐의 포맷을 결정하는 단계의 다른 실시예에 대한 상세 흐름도이다.
도 13은 다른 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다.
도 14는 또 다른 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예를 상세히 설명하기로 한다. 하기 실시예는 기술적 내용을 구체화하기 위한 것일 뿐 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 해당 기술분야의 전문가가 용이하게 유추할 수 있는 것은 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 실시예들은 텍스쳐 처리 방법 및 장치에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타낸 도면이다. 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 관련 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1을 참조하면, 그래픽 처리 장치(100)는 래스터라이저(rasterizor)(110), 쉐이더 코어(shader core)(120), 텍스쳐 처리 장치(texture processing unit)(130), 픽셀 처리 장치(pixel processing unit)(140), 타일 버퍼(tile buffer)(150) 등을 포함할 수 있다. 그래픽 처리 장치(100)는 버스(BUS)(300)를 통하여 외부의 메모리(200)와 데이터를 송수신할 수 있다.
도 1에 도시된 그래픽 처리 장치(100)는 3차원 그래픽스를 처리하는 장치로서, 타일에 기초한 렌더링(tile based rendering, TBR) 방식을 사용할 수 있다. 다시 말해서, 그래픽 처리 장치(100)는 하나의 프레임에 해당하는 3차원 그래픽스를 생성하기 위해서, 일정한 크기로 분할된 복수 개의 타일들을 래스터라이저(110), 쉐이더 코어(120), 픽셀 처리 장치(140)를 거치도록 하여, 처리 결과를 타일 버퍼(150)에 저장할 수 있다. 그래픽 처리 장치(100)는 프레임을 구성하는 모든 타일들에 대해서, 래스터라이저(110), 쉐이더 코어(120), 및 픽셀 처리 장치(140)로 구성되는 채널을 복수 개 이용하여, 병렬 처리할 수 있다. 그래픽 처리 장치(100)는 하나의 프레임에 해당하는 복수 개의 타일들이 처리되면, 타일 버퍼(150)에 저장된 처리 결과를 메모리(200)의 프레임 버퍼(미도시)로 전송할 수 있다.
래스터라이저(110)는 기하 변환 과정을 거쳐 버텍스 쉐이더로부터 생성된 프리미티브에 대해 래스터화(rasterization)를 수행할 수 있다.
쉐이더 코어(120)는 래스터라이저(110)로부터 래스터화된 프리미티브를 전달받아, 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 래스터화를 거쳐 생성된 프리미티브의 프레그먼트들을 포함하는 타일들에 대하여, 타일을 구성하는 모든 픽셀들의 색상을 결정하는 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 픽셀 쉐이딩 과정에서 입체적이고 현실감있는 3차원 그래픽스를 생성하기 위해 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다.
쉐이더 코어(120)는 픽셀 쉐이더(pixel shader)를 포함할 수 있다. 또한 쉐이더 코어(120)는 버텍스 쉐이더(vertex shader)를 더 포함한 형태이거나, 버텍스 쉐이더와 픽셀 쉐이더가 통합된 형태의 통합 쉐이더일 수도 있다. 쉐이더 코어(120)가 버텍스 쉐이더의 기능을 수행할 수 있는 경우, 오브젝트를 나타내는 프리미티브(primitive)를 생성하여 래스터라이저(110)에 전달할 수 있다.
쉐이더 코어(120)가 원하는 픽셀에 대응되는 픽셀 값을 전달해 줄 것을 텍스쳐 처리 장치(130)에 요청하면, 텍스쳐 처리 장치(130)는 미리 준비된 텍스쳐를 처리하여 생성된 픽셀 값을 전달해 줄 수 있다. 텍스쳐는 텍스쳐 처리 장치(130) 내부 또는 외부의 소정의 공간 또는 그래픽 처리 장치(100) 외부의 메모리(200)에 저장되어 있을 수 있다. 텍스쳐 처리 장치(130)는 쉐이더 코어(120)에서 요청한 픽셀 값을 생성하는데 이용되는 텍스쳐가 텍스쳐 처리 장치(130) 내부의 소정의 공간에 없는 경우, 텍스쳐 처리 장치(130) 외부의 공간 또는 메모리(200)로부터 텍스쳐를 가져와 사용할 수 있다.
픽셀 처리 장치(140)는 하나의 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 모든 픽셀 값들을 결정할 수 있다.
타일 버퍼(150)는 픽셀 처리 장치(140)로부터 전달된 하나의 타일에 해당하는 모든 픽셀 값들을 저장할 수 있다. 하나의 프레임을 구성하는 모든 타일들에 대한 그래픽 처리 과정이 완료되면, 타일 버퍼(150)에 저장된 처리 결과가 메모리(200)의 프레임 버퍼로 전달될 수 있다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
3차원 그래픽스를 처리하는 과정은 크게 기하변환, 래스터화, 픽셀 쉐이딩의 3단계로 나눌 수 있으며, 이하 도 2를 참조하여, 보다 세부적인 과정에 대해 설명한다. 도 2를 참조하면, 단계 11 내지 단계 18을 통해 3차원 그래픽스를 처리하는 과정을 나타낸다.
단계 11은 버텍스들(vertices)을 생성하는 단계이다. 버텍스들은 3차원 그래픽스에 포함된 오브젝트(object)들을 나타내기 위해 생성된다.
단계 12는 생성된 버텍스들을 쉐이딩(shading)하는 단계이다. 버텍스 쉐이더는 단계 11에서 생성된 버텍스들의 위치를 지정함으로써, 버텍스들에 대한 쉐이딩을 수행할 수 있다.
단계 13은 프리미티브들을 생성하는 단계이다. 프리미티브는 적어도 하나의 버텍스를 이용하여 형성되는 점, 선, 다각형(polygon)등을 의미한다. 일 예로서, 프리미티는 버텍스들을 연결하여 형성된 삼각형으로 나타낼 수 있다.
단계 14는 프리미티브를 래스터화(rasterization)하는 단계이다. 프리미티브를 래스터화하는 것은 프리미티브를 프레그먼트들(fragments)로 분할하는 것을 의미한다. 프레그먼트는 프리미티브에 대해 그래픽 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터화 단계에서 버텍스와 버텍스 사이의 프레그먼트들을 생성함으로써, 3차원 그래픽스에 대한 그래픽 처리를 수행할 수 있도록 한다.
단계 15는 픽셀을 쉐이딩하는 단계를 나타낸다. 래스터화에 의해 생성된, 프리미티브를 구성하는 프레그먼트들은 타일을 구성하는 픽셀들이 될 수 있다. 당해 분야에서, 프레그먼트와 픽셀이란 용어는 경우에 따라 혼용해서 사용되기도 한다. 예를 들어, 픽셀 쉐이더는 프레그먼트 쉐이더라고 부를 수 있다. 일반적으로, 프리미티브를 구성하는 그래픽 처리의 기본 단위를 프레그먼트라고 부르고, 이후, 픽셀 쉐이딩부터의 그래픽 처리의 기본 단위를 픽셀이라 부를 수 있다. 픽셀 쉐이딩에서는 픽셀의 색을 결정할 수 있다.
단계 16은 픽셀의 색을 결정하기 위한 텍스쳐링(texturing) 단계를 나타낸다. 텍스쳐링은 미리 준비된 이미지인 텍스쳐를 이용하여 픽셀의 색을 결정하는 과정이다. 실세계의 다양한 색상과 패턴의 모습을 표현하기 위해서 각각의 픽셀의 색상을 계산하여 결정하는 것은 그래픽 처리에 필요한 데이터 연산량과 그래픽 처리 시간을 증가시키므로, 미리 준비된 텍스쳐를 이용하여 픽셀의 색상을 결정하는 것이다. 예를 들어, 오브젝트의 표면 색상을 텍스쳐라는 별도의 2차원 영상으로 저장하고, 오브젝트의 화면상의 위치 및 크기 등에 따라 저장된 텍스쳐를 확대 및 축소하거나, 다양한 해상도를 갖는 텍스쳐들을 이용하여 텍셀 값들을 혼합함으로써, 픽셀의 색상을 결정할 수 있다.
보다 구체적으로, 픽셀 쉐이딩 과정에서 더욱 빠른 3차원 그래픽스 처리를 위해, 미리 준비된 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다. 이때, 오브젝트의 크기에 적응적으로 대응할 수 있도록, 서로 다른 해상도를 가지는 복수 개의 텍스쳐들을 미리 준비해놓고, 이들을 조합하여 픽셀 값을 생성할 수도 있다. 이때, 서로 다른 해상도를 가지는, 미리 준비된 텍스쳐를 밉맵(mipmap)이라고 한다. 예를 들어, 미리 준비된 두 개의 밉맵들의 중간 해상도를 가지는 오브젝트의 픽셀 값들을 생성하기 위해서, 두 개의 밉맵들로부터 오브젝트에 대응되는 위치의 텍셀(texel) 값들을 추출하여 이들을 필터링함으로써, 오브젝트를 구성하는 픽셀 값들을 생성할 수 있다.
단계 17은 테스트 및 믹싱(testing and mixing) 단계를 나타낸다. 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 픽셀 값들을 결정할 수 있다. 이와 같은 과정을 거쳐 생성된 복수 개의 타일들을 믹싱하여, 하나의 프레임에 해당하는 3차원 그래픽스를 생성할 수 있다.
단계 18은 11 내지 단계 17을 통해 생성된 프레임을 프레임 버퍼에 저장하고, 프레임 버퍼에 저장된 프레임을 디스플레이 장치를 통해 표시하는 단계를 나타낸다.
도 3은 일 실시예에 따른 텍스쳐 처리 장치의 구성과 동작을 설명하기 위한 도면이다.
도 3을 참고하면, 텍스쳐 처리 장치(130)는 제어부(131), 텍스쳐 캐쉬(133), 포맷 변환부(135), 텍스쳐 필터(137)를 포함할 수 있다. 텍스쳐 처리 장치(130)는 쉐이더 코어(120)와 메모리(200) 사이에서 쉐이더 코어(120)로 부터 요청된 텍스쳐를 처리하여 쉐이더 코어(120)로 전송할 수 있다. 텍스쳐 처리 장치(130)는 쉐이더 코어(120)가 처리하고자하는 픽셀에 대응되는 텍스쳐 좌표를 수신함으로써, 텍스쳐 요청을 수신할 수 있다. 텍스쳐 처리 장치(130)는 텍스쳐 캐쉬(133)에 저장되지 않은 텍스쳐를 메모리(200)로부터 가져올 수 있다.
제어부(131)는 텍스쳐 처리 장치(130)를 제어하기 위해 필요한 연산을 수행할 수 있다. 제어부(131)는 텍스쳐 캐쉬(133), 포맷 변환부(135), 텍스쳐 필터(137)를 제어하여, 텍스쳐 처리 장치(130)의 전반적인 제어를 담당할 수 있다.
제어부(131)는 텍스쳐 처리 장치(130)에 요청된 텍스쳐에 대응되는 텍스쳐 어드레스를 결정할 수 있다. 다시 말해서, 제어부(131)는 쉐이더 코어(120)로부터 수신한 텍스쳐 좌표를 이에 대응되는 텍스쳐가 저장된 텍스쳐 캐쉬(133)의 어드레스로 바꿀 수 있다. 제어부(131)는 텍스쳐 어드레스에 대응되는 텍스쳐를 텍스쳐 캐쉬(133)로부터 독출할 수 있다.
텍스쳐 캐쉬(133)는 텍스쳐를 저장할 수 있다. 텍스쳐 캐쉬(133)는 텍스쳐 처리 장치(130)와 메모리(200) 간 데이터 전송에 따른 그래픽 처리 지연 시간을 최소화하기 위해, 메모리(200)로부터 수신한 일부 텍스쳐를 저장할 수 있다.
텍스쳐 캐쉬(133)는 텍스쳐 처리 장치(130)와 별도의 모듈로도 존재할 수도 있다. 예를 들어, 텍스쳐 캐쉬를 별도의 모듈로 구현하여, 텍스쳐 처리 장치(130)와 메모리(200) 사이에 위치하게 할 수도 있다.
포맷 변환부(135)는 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도에 기초하여, 텍스쳐 캐쉬(133)로부터 독출된 텍스쳐의 포맷을 변환할 수 있다. 이하, 도 4를 참고하여, 텍스쳐의 포맷을 먼저 설명한다.
도 4는 텍스쳐의 포맷을 설명하기 위한 도면이다.
텍스쳐는 다양한 종류의 포맷을 사용할 수 있다. 예를 들어, 텍스쳐는 Integer RGBA 8 bit, Integer RGBA 16 bit, Integer RGBA 32 bit, Floating RGBA 16 bit, Floating RGBA 32 bit와 같은 포맷을 기본으로 사용하거나, 이들의 다양한 조합을 사용할 수 있다.
도 4에 도시된 바와 같이, 텍스쳐 캐쉬(133)에 저장된 텍스쳐는 다양한 종류의 포맷을 가질 수 있다. 예를들어, Integer RGBA 8 bit의 포맷은 R, G, B, A 각 채널(channel)이 8bit의 integer 값을 가질 수 있다. Floating RGBA 32 bit의 포맷은 R, G, B, A 각 채널(channel)이 32bit의 Floating 값을 가질 수 있다. Floating RGBA 32 bit의 포맷이 Integer RGBA 8 bit의 포맷 보다 높은 정밀도를 갖는 그래픽 처리가 가능하나, 전력 소모가 많고, 그래픽 처리에 많은 시간이 소요될 수 있다. 따라서, 텍스쳐 포맷의 종류는 그래픽 처리 장치(100)의 렌더링 퀄리티 또는 렌더링 속도와 같은 성능에 영향을 줄 수 있다. 텍스쳐 포맷은 텍스쳐 처리 장치(130)의 텍스쳐 필터(137)의 동작과 밀접한 관련이 있는데, 이에 대해서 텍스쳐 필터(137)에 관한 설명에서 후술한다.
다시 도 3을 참고하면, 포맷 변환부(135)는 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도에 기초하여, 텍스쳐의 포맷을 결정할 수 있다.
포맷 변환부(135)는 텍스쳐 필터링의 모드 및 그래픽 처리 장치(100)에서 이용되는 API(Application Programming Interface)의 종류에 기초하여, 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도를 판단할 수 있다. 또한, 포맷 변환부(135)는 텍스쳐 필터링의 모드, 그래픽 처리 장치(100)에서 이용되는 API의 종류, 그래픽 처리 장치(100)에 요청되는 렌더링 수준 중 적어도 하나 또는 둘 이상의 조합에 기초하여, 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도를 판단할 수 있다. 텍스쳐 필터링의 모드, 그래픽 처리 장치(100)에서 이용되는 API의 종류, 그래픽 처리 장치(100)에 요청되는 렌더링 수준과 같은 정보는 쉐이더 코어(120)로부터 수신된 텍스쳐 요청 커맨드 또는 텍스쳐 처리 장치(130) 내의 G-state(Graphic state) 메모리(미도시)로부터 추출된 Graphic state 정보로부터 획득할 수 있다. 포맷 변환부(135)는 판단 결과에 따라, 텍스쳐의 포맷의 변환 여부를 결정할 수 있다.
예를 들어, 포맷 변환부(135)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않는 경우, 텍스쳐의 포맷을 변환할 것을 결정할 수 있다. 포맷 변환부(135)가 그래픽 처리 장치(100)에 요청되는 렌더링 수준을 더 고려하는 경우, 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않으며, 그래픽 처리 장치(100)에 요청된 렌더링 수준이 소정의 기준 이하인 경우, 텍스쳐의 포맷을 변환할 것을 결정할 수 있다.
이때, 포맷 유지가 요구되는 텍스쳐 필터링의 모드로 포인트 필터링 모드가 미리 설정되어 있을 수 있다. 높은 정밀도가 요구되는 API의 종류로 Open GL/CL 또는 HSA(Heterogeneous System Architecture) 등이 미리 설정되어 있을 수 있다.
한편, 그래픽 처리 장치(100)에 요청되는 렌더링 수준은 그래픽 처리 장치(100)에 연결된 애플리케이션을 통해 사용자로부터 결정될 수 있다. 예를 들어, 사용자가 그래픽 처리 장치(100)가 포함된 단말기(미도시)를 사용할 때, 단말기에 설치된 애플리케이션을 통해 렌더링 수준을 조정할 수 있다. 사용자는 자신의 기호에 따라, 특정한 퀄리티의 렌더링 수준을 설정하거나, 이용하는 애플리케이션 종류에 따라 렌더링 수준을 달리 설정하여, 사용자가 설정한 렌더링 수준을 그래픽 처리 장치(100)에 요구할 수 있다. 또한, 그래픽 처리 장치(100)에 요청되는 렌더링 수준은 그래픽 처리 장치(100)의 하드웨어 리소스에 기초하여, 그래픽 처리 장치(100) 자신이 결정할 수도 있다. 예를 들어, 동시에 수많은 스레드를 처리해야 하는 상황인데 이를 처리하기 위한 하드웨어 리소스가 부족하거나, 잔여 배터리 량이 부족한 경우, 그래픽 처리 장치(100)는 그래픽 처리 장치(100) 자신에 요청되는 렌더링 수준을 소정의 기준 이하로 낮출 수 있다.
반대로, 포맷 변환부(135)는 필터링 모드가 포인트 필터링과 같은 포맷 유지가 요구되는 모드인 경우, 텍스쳐의 포맷을 유지할 것을 결정할 수 있다. 또한, 포맷 변환부(135)는 그래픽 처리 장치(100)에서 이용되는 API가 Open GL/CL 또는 HSA와 같은 높은 정밀도를 요구하는 API 종류에 해당하는 경우, 텍스쳐의 포맷을 유지할 것을 결정할 수 있다. 포맷 변환부(135)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않는 경우라 하더라도, 그래픽 처리 장치(100)에 요청되는 렌더링 수준이 소정의 기준을 초과하는 경우, 텍스쳐의 포맷을 유지할 것을 결정할 수 있다.
포맷 변환부(135)는 텍스쳐 캐쉬(133)로부터 독출된 텍스쳐를 포맷 변환부(135)에서 결정한 텍스쳐의 포맷으로 출력할 수 있다.
텍스쳐 필터(137)는 텍스쳐에 포함된 텍셀 값들을 이용하여, 텍스쳐 필터링을 수행할 수 있다. 텍셀 값들을 필터링(filtering)한다는 것은 텍셀 값들을 혼합(blending)하여 픽셀에 대응되는 컬러 값을 구하는 것을 의미한다. 예를 들어, 텍스쳐 처리 장치(130)에 수신된 텍스쳐 좌표가 포함되는 텍스쳐 공간상의 일부 영역에 포함된 텍셀 값들의 평균을 구함으로써, 요청된 텍스쳐를 구할 수 있다. 텍스쳐 필터(137)에서 텍스쳐 필터링이 수행된 결과 값은 쉐이더 코어(120)로 전송될 수 있다. 텍스쳐 필터(137)에서 수행하는 텍스쳐 필터링의 모드는 포인트 필터링(point filtering), 바이리니어(bilinear) 필터링, 트라이리니어(tri-linear) 필터링 등 다양한 모드 중 어느 것일 수 있다.
포인트 필터링은 렌더링 될 오브젝트에 입혀칠 텍스쳐를 결정할 때, 텍스쳐 좌표를 기준으로 주변 4개의 텍셀을 획득하여, 가장 가까운 위치의 텍셀을 출력하는 모드이다. 바이리니어 필터링은 렌더링 될 오브젝트에 입혀칠 텍스쳐를 결정할 때, 텍스쳐 좌표를 기준으로 주변 4개의 텍셀을 획득하여, 각각 2개의 텍셀을 인터폴레이션하고, 각각의 인터폴레이션 결과를 다시 인터폴레이션하여 그 결과를 출력하는 모드이다. 트라이리니어 필터링은 텍스쳐 좌표를 기준으로 2개의 밉맵 레벨에서 각각 4개의 텍셀을 가지고, 각 밉맵에서 바이리니어 필터링을 수행하고, 2개의 밉맵에서의 결과 값끼리 다시 바이리너어 필터링을 수행하여, 그 결과를 출력하는 모드이다.
텍스쳐 필터(137)는 포맷 변환부(135)에서 출력된 텍스쳐의 포맷에 따라, 텍스쳐 필터링을 수행할 수 있다. 포맷 변환부(135)에서 텍스쳐의 포맷이 변환된 경우, 텍스쳐 필터(137)는 포맷이 변환된 텍스쳐를 이용하여, 텍스쳐 필터링을 수행할 수 있다. 이때, 텍스쳐 필터(137)는 변환된 포맷에 대응되는 필터링 유닛을 구동하여, 텍스쳐 필터링을 수행할 수 있다. 이와 관련하여, 도 5와 도 6을 참고하여 이하 상술한다.
도 5는 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
앞서, 도 4에서 텍스쳐는 Integer RGBA 8 bit, Integer RGBA 16 bit, Integer RGBA 32 bit, Floating RGBA 16 bit, Floating RGBA 32 bit와 같은 포맷을 기본으로 사용하거나, 이들의 다양한 조합을 사용할 수 있음을 설명하였다.
텍스쳐 필터(137)는 이와 같은 다양한 포맷의 텍스쳐에 대해 텍스쳐 필터링을 수행하기 위해서, 각 포맷에 대응되는 필터링 유닛이 각 컴포넌트 별로 존재할 수 있다.
도 5를 참고하면, 텍스쳐 필터링의 모드가 바이리니어 필터링이고, 텍스쳐의 포맷 각각에 대응되는 필터링 유닛이 각 컴포넌트 별로 존재함을 알 수 있다. 예를 들어, Integer RGBA 8 bit의 포맷의 경우, 8 bit integer의 바이리니어 필터링 유닛이 4개가 있음을 알 수 있다. Floating RGBA 16 bit의 포맷의 경우, 16 bit floating의 바이리니어 필터링 유닛이 4개가 있음을 알 수 있다. 또한, 바이리니어 필터링의 경우, 각 컴포넌트에 대응되는 필터링 유닛이 3개의 인터폴레이터로 구성되어 있음을 알 수 있다.
도 6은 텍스쳐의 포맷 변환에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
텍스쳐 필터(137)는 포맷 변환부(135)에서 출력된 텍스쳐의 포맷에 대응되는 필터링 유닛을 구동하여, 텍스쳐 필터링을 수행할 수 있다. 포맷 변환부(135)에서 텍스쳐의 포맷이 변환된 경우, 텍스쳐 필터(137)는 변환된 포맷에 대응되는 필터링 유닛을 구동하여, 텍스쳐 필터링을 수행할 수 있다.
높은 정밀도를 갖는 텍스쳐 포맷이 그 보다 낮은 정밀도를 갖는 텍스쳐 포맷으로 변환된 경우, 텍스쳐 필터(137)는 낮은 정밀도를 갖는 텍스쳐 포맷에 대응되는 필터링 유닛을 구동하여, 텍스쳐 필터링을 수행할 수 있다.
예를 들어, 텍스쳐의 포맷이 Integer RGBA 32 bit에서 Integer RGBA 16 bit로 변환된 경우, 텍스쳐 필터(137)는 Integer RGBA 16 bit에 대응되는 필터링 유닛을 구동하여 텍스쳐 필터링을 수행할 수 있다. 마찬가지로, 텍스쳐의 포맷이 Floating RGBA 32 bit에서 Floating RGBA 16 bit로 변환된 경우, 텍스쳐 필터(137)는 Floating RGBA 16 bit에 대응되는 필터링 유닛을 구동하여 텍스쳐 필터링을 수행할 수 있다.
그 결과, 텍스쳐 필터(137)는 텍스쳐의 포맷 변환없이, 텍스쳐 필터링을 수행했을 때보다, 낮은 전력소모와 적은 하드웨어 리소스를 사용하여 텍스쳐 필터링을 수행할 수 있다.
한편, 포맷 변환부(135)가 텍스쳐의 포맷이 Integer RGBA 32 bit와 Floating RGBA 32 bit인 경우, 항상 Integer RGBA 16 bit와 Floating RGBA 16 bit로 변환하도록 하는 경우, 텍스쳐 필터(137)에 Integer RGBA 32 bit와 Floating RGBA 32 bit에 대응되는 필터링 유닛들을 제거함으로써, 텍스쳐 필터(137)가 텍스쳐 처리 장치(130)에서 차지하는 면적을 줄일 수도 있다.
도 7은 다른 실시예에 따른 텍스쳐 처리 장치의 구성을 나타낸 블록도이다.
도 7을 참고하면, 텍스쳐 처리 장치(130)는 제어부(131), 텍스쳐 캐쉬(133), 디컴프레서(134), 포맷 변환부(135), 텍스쳐 필터(137)를 포함할 수 있다. 도 3의 일 실시예에 따른 텍스쳐 처리 장치(130)의 구성과 비교하면, 텍스쳐 캐쉬(133)의 출력을 디컴프레서(134)의 입력으로 하고, 디컴프레서(134)의 출력을 포맷 변환부(135)의 입력으로 한다는 점이다. 도 3에서 설명한 내용과 동일한 내용에 대해서는 설명을 생략한다.
텍스쳐는 하드웨어 리소스의 요구 및 통신 환경의 요구를 만족시키기 위해, 3차원 그래픽스 처리 과정에서 압축된 형태로 저장 및 전송될 수 있다. 일반적인 압축 방식은 텍스쳐를 구성하는 텍셀들에 대해, 텍셀 블록이라고 하는 소정의 블록 단위의 텍셀들에 대하여 이루어진다. 다수의 텍스쳐 압축 표준들은 압축하고자 하는 텍셀 블록에 대해서, 대푯값(representative value)을 정하고, 각 텍셀 값을 표현할 수 있는 태푯값에 적용할 가중치(weight)를 구하여, 이들을 저장하는 방식을 사용한다.
디컴프레서(134)는 텍스쳐 캐쉬(133)로부터 독출된, 압축된 형태의 텍스쳐를 수신하는 경우, 압축 해제를 수행할 수 있다. 텍스쳐는 텍스쳐를 구성하는 텍셀들이 소정의 블록 단위로 압축될 수 있으므로, 디컴프레서(133)는 압축 텍셀 블록을 수신할 수 있다. 디컴프레서(134)는 압축 텍셀 블록으로부터 압축 과정에 이용된 압축 파라미터들을 추출하고, 텍셀 값을 생성하기 위해 압축 파라미터들에 기초한 인터폴레이션(interpolation)을 수행할 수 있다. 이와 같은 과정에 따라, 압축 해제된 텍스쳐가 생성될 수 있다.디컴프레서(134)는 압축 해제된 텍스쳐를 포맷 변환부(135)로 전송할 수 있다.
포맷 변환부(135)는 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도에 기초하여, 압축 해제된 텍스쳐의 포맷을 변환할 수 있다.
도 8은 또 다른 실시예에 따른 텍스쳐 처리 장치의 구성을 나타낸 블록도이다.
도 8을 참고하면, 텍스쳐 처리 장치(130)는 제어부(131), 텍스쳐 캐쉬(133), 포맷 변환부(135), 디컴프레서(136), 텍스쳐 필터(137)를 포함할 수 있다. 도 3 또는 도 7의 텍스쳐 처리 장치(130)의 구성과 비교하면, 텍스쳐 캐쉬(133)의 출력을 포맷 변환부(135)의 입력으로 하고, 포맷 변환부(135)의 출력을 디컴프레서(136)의 입력으로 하며, 디컴프레서(136)의 출력을 텍스쳐 필터(137)의 입력으로 한다는 점이다. 도 3 또는 도 7에서 설명한 내용과 동일한 내용에 대해서는 설명을 생략한다.
디컴프레서(136)는 포맷 변환부(135)로부터 출력된 텍스쳐를 수신하는 경우, 압축 해제를 수행할 수 있다. 포맷 변환부(135)에서 텍스쳐의 포맷이 변환된 경우, 디컴프레서(136)는 포맷이 변환된 텍스쳐의 압축 텍셀 블록을 수신할 수 있다. 디컴프레서(136)는 포맷이 변환된 텍스쳐를 압축 해제할 수 있다. 디컴프레서(136)는 압축 해제된 텍스쳐를 텍스쳐 필터(137)로 전송할 수 있다.
텍스쳐 필터(137)는 압축 해제된 텍스쳐를 이용하여, 텍스쳐 필터링을 수행할 수 있다.
포맷 변환부(135)가 텍스쳐 캐쉬(133)의 출력단에 위치하고, 텍스쳐의 포맷을 변환해야하는 상황인 경우, 제어부(131)의 텍스쳐 요청에 대한 응답으로, 텍스쳐 캐쉬(133)로부터 포맷이 변환된 텍스쳐가 출력되는 것과 같은 결과를 기대할 수 있게 된다.
한편, 텍스쳐 캐쉬(133)는 텍스쳐 처리 장치(130)와 공간적으로 분리된, 독립적인 별도의 모듈로 구현할 수 있다. 특히, 포맷 변환부(135)를 텍스쳐 캐쉬(133)의 출력단에 두고, 텍스쳐 처리 장치(130)와 메모리(200) 사이에 텍스쳐 캐쉬(133)와 포맷 변환부(135)를 위치시키는 경우, 포맷 변환부(135)의 텍스쳐 포맷 변환에 따라, 텍스쳐 처리 장치(130)와 텍스쳐 캐쉬(133) 간의 트래픽을 줄일 수 있다.
예를 들어, 제어부(131)가 텍스쳐 캐쉬(133)에 Integer RGBA 32 bit의 포맷을 가지는 텍스쳐를 요청한 경우, 텍스쳐 캐쉬(133)의 출력단에 있는 포맷 변환부(135)가 Integer RGBA 16 bit의 포맷으로 변환하여 출력하므로, 텍스쳐 처리 장치(130) 내의 다른 구성들과 텍스쳐 캐쉬(133) 간의 트래픽을 줄일 수 있다.
도 9는 일 실시예에 따른 텍스쳐 처리 방법을 설명하기 위한 흐름도이다.
910 단계에서, 텍스쳐 처리 장치(130)는 요청된 텍스쳐에 대응되는 텍스쳐 어드레스를 결정할 수 있다.
920 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 어드레스에 대응되는 텍스쳐를 텍스쳐 캐쉬(133)로부터 독출할 수 있다.
930 단계에서, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도에 기초하여, 독출된 텍스쳐의 포맷을 변환할 수 있다. 이하, 도 10을 참고하여, 상술한다.
도 10은 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다.
1010 단계에서, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도에 기초하여, 텍스쳐의 포맷을 결정할 수 있다. 이하, 도 11 및 도 12를 참고하여, 텍스쳐의 포맷을 결정하는 단계를 상술한다.
도 11은 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계 중 텍스쳐의 포맷을 결정하는 단계의 일 실시예에 대한 상세 흐름도이다.
1110 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드와 그래픽 처리 장치(100)에서 이용되는 API 종류를 수신할 수 있다. 텍스쳐 필터링의 모드, 그래픽 처리 장치(100)에서 이용되는 API의 종류와 같은 정보는 텍스쳐 요청 커맨드 또는 텍스쳐 처리 장치(130) 내의 G-state(Graphic state) 메모리(미도시)로부터 추출된 Graphic state 정보로부터 획득할 수 있다.
1120 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드인지 확인할 수 있다. 이때, 포맷 유지가 요구되는 텍스쳐 필터링의 모드로 포인트 필터링 모드가 미리 설정되어 있을 수 있다. 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않는 경우, 1130 단계로 진행할 수 있다. 반면, 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하는 경우, 1140 단계로 진행할 수 있다.
1130 단계에서, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 이용되는 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하는지 확인할 수 있다. 이때, 높은 정밀도가 요구되는 API의 종류로 Open GL/CL 또는 HSA 등이 미리 설정되어 있을 수 있다. 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 이용되는 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하면, 1140 단계로 진행할 수 있다. 반면, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 이용되는 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않는 경우, 1150 단계로 진행할 수 있다.
1140 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 필터링 모드가 포맷 유지가 요구되는 기설정된 모드이거나, 그래픽 처리 장치(100)에서 이용되는 API의 종류가 높은 정밀도가 요구되는 API의 종류에 해당하므로, 텍스쳐의 포맷을 유지할 것을 결정할 수 있다.
1150 단계에서, 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않으므로, 텍스쳐의 포맷을 변환할 것을 결정할 수 있다.
도 12는 일 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계 중 텍스쳐의 포맷을 결정하는 단계의 다른 실시예에 대한 상세 흐름도이다.
1210 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드와 그래픽 처리 장치(100)에서 이용되는 API 종류, 그리고 그래픽 처리 장치(100)에 요청되는 렌더링 수준을 수신할 수 있다. 텍스쳐 필터링의 모드, 그래픽 처리 장치(100)에서 이용되는 API의 종류, 그래픽 처리 장치(100)에 요청되는 렌더링 수준과 같은 정보는 텍스쳐 요청 커맨드 또는 텍스쳐 처리 장치(130) 내의 G-state(Graphic state) 메모리(미도시)로부터 추출된 Graphic state 정보로부터 획득할 수 있다.
1220 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드인지 확인할 수 있다. 이때, 포맷 유지가 요구되는 텍스쳐 필터링의 모드로 포인트 필터링 모드가 미리 설정되어 있을 수 있다. 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않는 경우, 1230 단계로 진행할 수 있다. 반면, 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하는 경우, 1250 단계로 진행할 수 있다.
1230 단계에서, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 이용되는 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하는지 확인할 수 있다. 이때, 높은 정밀도가 요구되는 API의 종류로 Open GL/CL 또는 HSA 등이 미리 설정되어 있을 수 있다. 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 이용되는 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하면, 1250 단계로 진행할 수 있다. 반면, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 이용되는 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않는 경우, 1240 단계로 진행할 수 있다.
1240 단계에서, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에 요청되는 렌더링 수준이 소정의 기준 이하인지 확인할 수 있다. 이때, 그래픽 처리 장치(100)에 요청되는 렌더링 수준은 그래픽 처리 장치(100)에 연결된 애플리케이션을 통해 사용자로부터 결정되거나, 그래픽 처리 장치(100)의 하드웨어 리소스에 기초하여 그래픽 처리 장치(100)에서 결정될 수 있다.
1250 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 필터링 모드가 포맷 유지가 요구되는 기설정된 모드이거나, 그래픽 처리 장치(100)에서 이용되는 API의 종류가 높은 정밀도가 요구되는 API의 종류에 해당하므로, 텍스쳐의 포맷을 유지할 것을 결정할 수 있다. 한편, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에 요청된 렌더링 수준이 소정의 기준을 초과하는 경우, 텍스쳐의 포맷을 유지할 것을 결정할 수 있다.
1260 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않으며, 그래픽 처리 장치(100)에 요청된 렌더링 수준이 소정의 기준 이하이므로, 텍스쳐의 포맷을 변환할 것을 결정할 수 있다.
다시 도 10을 참고하면, 1020 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 캐쉬(133)로부터 독출된 텍스쳐를 1010 단계에서 결정된 텍스쳐의 포맷으로 출력할 수 있다.
한편, 텍스쳐 처리 장치(130)에서 포맷 변환부(135)의 위치가 텍스쳐 필터(137)의 입력단인지, 텍스쳐 캐쉬(133)의 출력단인지에 따라, 텍스쳐의 포맷을 변환하는 단계를 도 13과 도 14의 상세 흐름도로 나누어 설명할 수 있다.
도 13은 다른 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다. 도 13은 텍스쳐 캐쉬(133)의 출력단에 위치한 디컴프레서(134)와 텍스쳐 필터(137)의 입력단 사이에 포맷 변환부(135)를 위치시키는 경우에, 텍스쳐의 포맷을 변환하는 과정을 나타낸 것이다.
1310 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 캐쉬(133)로부터 독출된, 압축된 형태의 텍스쳐를 압축 해제할 수 있다.
1320 단계에서, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도에 기초하여, 압축 해제된 텍스쳐의 포맷을 결정할 수 있다.
1330 단계에서, 텍스쳐 처리 장치(130)는 결정된 텍스쳐의 포맷으로 압축 해제된 텍스쳐를 출력할 수 있다.
도 14는 또 다른 실시예에 따른 텍스쳐 처리 방법에서, 텍스쳐의 포맷을 변환하는 단계에 대한 상세 흐름도이다. 도 14는 포맷 변환부(135)를 텍스쳐 캐쉬(133)의 출력단에 두고, 텍스쳐 처리 장치(130)와 메모리(200) 사이에 텍스쳐 캐쉬(133)와 포맷 변환부(135)를 위치시키는 경우에, 텍스쳐의 포맷을 변환하는 과정을 나타낸 것이다.
1410 단계에서, 텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)에서 요구되는 텍스쳐의 정밀도에 기초하여, 텍스쳐의 포맷을 결정할 수 있다.
1420 단계에서, 텍스쳐 처리 장치(130)는 결정된 텍스쳐의 포맷으로 텍스쳐를 출력할 수 있다. 텍스쳐 포맷 변환에 따라, 텍스쳐 처리 장치(130)와 텍스쳐 캐쉬(133) 간의 트래픽을 줄일 수 있다.
1430 단계에서, 텍스쳐 처리 장치(130)는 결정된 텍스쳐의 포맷으로 출력된, 압축된 형태의 텍스쳐를 압축 해제할 수 있다.
다시 도 9를 참고하면, 940 단계에서, 텍스쳐 처리 장치(130)는 포맷이 변환된 텍스쳐를 이용하여, 텍스쳐 필터링을 수행할 수 있다. 한편, 텍스쳐의 포맷이 변환되지 않았다면, 포맷이 유지된 텍스쳐를 이용하여, 텍스쳐 필터링을 수행할 수도 있다.
한편, 상술한 텍스쳐 처리 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 이와 같은 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 이와 같은 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 실시예들을 중심으로 살펴보았다. 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 발명의 범위는 전술한 실시예들의 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 발명의 범위에 포함된 것으로 해석되어야 할 것이다.
100 ... 그래픽 처리 장치
110 ... 래스터라이저
120 ... 쉐이더 코어
130 ... 텍스쳐 처리 장치
131 ... 제어부
133 ... 텍스쳐 캐쉬
135 ... 포맷 변환부
137 ... 텍스쳐 필터
140 ... 픽셀 처리 장치
150 ... 타일 버퍼
200 ... 메모리
110 ... 래스터라이저
120 ... 쉐이더 코어
130 ... 텍스쳐 처리 장치
131 ... 제어부
133 ... 텍스쳐 캐쉬
135 ... 포맷 변환부
137 ... 텍스쳐 필터
140 ... 픽셀 처리 장치
150 ... 타일 버퍼
200 ... 메모리
Claims (20)
- 텍스쳐(texture) 처리 장치에 있어서,
텍스쳐를 저장하는 텍스쳐 캐쉬;
요청된 텍스쳐에 대응되는 텍스쳐 어드레스를 결정하고, 상기 텍스쳐 어드레스에 대응되는 텍스쳐를 상기 텍스쳐 캐쉬로부터 독출하는 제어부;
그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 상기 독출된 텍스쳐의 포맷을 변환하는 포맷 변환부; 및
상기 포맷이 변환된 텍스쳐를 이용하여, 텍스쳐 필터링을 수행하는 텍스쳐 필터;
를 포함하는 텍스쳐 처리 장치. - 제 1 항에 있어서,
상기 포맷 변환부는,
상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도에 기초하여, 상기 텍스쳐의 포맷을 결정하고, 상기 독출된 텍스쳐를 상기 결정된 텍스쳐의 포맷으로 출력하는, 텍스쳐 처리 장치. - 제 2 항에 있어서,
상기 포맷 변환부는,
상기 텍스쳐 필터링의 모드 및 상기 그래픽 처리 장치에서 이용되는 API의 종류 중 적어도 하나에 기초하여, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도를 판단하고, 상기 판단 결과에 따라, 상기 텍스쳐의 포맷의 변환 여부를 결정하는, 텍스쳐 처리 장치. - 제 3 항에 있어서,
상기 포맷 변환부는,
상기 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, 상기 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않는 경우, 상기 텍스쳐의 포맷을 변환하는, 텍스쳐 처리 장치. - 제 3 항에 있어서,
상기 포맷 변환부는,
상기 그래픽 처리 장치에 요청되는 렌더링 수준을 더 고려하여, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도를 판단하는, 텍스쳐 처리 장치. - 제 5 항에 있어서,
상기 포맷 변환부는,
상기 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, 상기 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않으며, 상기 요청된 렌더링 수준이 소정의 기준 이하인 경우, 상기 텍스쳐의 포맷을 변환하는, 텍스쳐 처리 장치. - 제 5 항에 있어서,
상기 그래픽 처리 장치에 요청되는 렌더링 수준은 상기 그래픽 처리 장치에 연결된 애플리케이션을 통해 사용자로부터 결정되거나, 상기 그래픽 처리 장치의 하드웨어 리소스에 기초하여 그래픽 처리 장치에서 결정되는, 텍스쳐 처리 장치. - 제 1 항에 있어서,
상기 텍스쳐 필터는,
상기 변환된 포맷에 대응되는 필터링 유닛을 구동하여, 상기 텍스쳐 필터링을 수행하는, 텍스쳐 처리 장치. - 제 1 항에 있어서,
상기 독출된 텍스쳐를 압축 해제하는 디컴프레서;를 더 포함하고,
상기 포맷 변환부는,
상기 그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 상기 압축 해제된 텍스쳐의 포맷을 변환하는, 텍스쳐 처리 장치. - 제 1 항에 있어서,
상기 포맷이 변환된 텍스쳐를 압축 해제하는 디컴프레서;를 더 포함하고,
상기 텍스쳐 필터는,
상기 압축 해제된 텍스쳐를 이용하여, 상기 텍스쳐 필터링을 수행하는, 텍스쳐 처리 장치. - 텍스쳐 처리 방법에 있어서,
요청된 텍스쳐에 대응되는 텍스쳐 어드레스를 결정하는 단계;
상기 텍스쳐 어드레스에 대응되는 텍스쳐를 텍스쳐 캐쉬로부터 독출하는 단계;
그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 상기 독출된 텍스쳐의 포맷을 변환하는 단계; 및
상기 포맷이 변환된 텍스쳐를 이용하여, 텍스쳐 필터링을 수행하는 단계;
를 포함하는 텍스쳐 처리 방법. - 제 11 항에 있어서,
상기 포맷을 변환하는 단계는,
상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도에 기초하여, 상기 텍스쳐의 포맷을 결정하는 단계; 및
상기 독출된 텍스쳐를 상기 결정된 텍스쳐의 포맷으로 출력하는 단계;
를 포함하는, 텍스쳐 처리 방법. - 제 12 항에 있어서,
상기 텍스쳐의 포맷을 결정하는 단계는,
상기 텍스쳐 필터링의 모드 및 상기 그래픽 처리 장치에서 이용되는 API의 종류 중 적어도 하나에 기초하여, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도를 판단하는 단계; 및
상기 판단 결과에 따라, 상기 텍스쳐의 포맷의 변환 여부를 결정하는 단계;
를 포함하는, 텍스쳐 처리 방법. - 제 13 항에 있어서,
상기 텍스쳐의 포맷의 변화 여부를 결정하는 단계는,
상기 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, 상기 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않는 경우, 상기 텍스쳐의 포맷을 변환하는, 텍스쳐 처리 방법. - 제 13 항에 있어서,
상기 정밀도를 판단하는 단계는,
상기 그래픽 처리 장치에 요청되는 렌더링 수준을 더 고려하여, 상기 그래픽 처리 장치에서 요구되는 상기 텍스쳐의 정밀도를 판단하는, 텍스쳐 처리 방법. - 제 15 항에 있어서,
상기 텍스쳐의 포맷의 변화 여부를 결정하는 단계는,
상기 텍스쳐 필터링의 모드가 포맷 유지가 요구되는 기설정된 모드에 해당하지 않고, 상기 API의 종류가 높은 정밀도가 요구되는 기설정된 종류에 해당하지 않으며, 상기 요청된 렌더링 수준이 소정의 기준 이하인 경우, 상기 텍스쳐의 포맷을 변환하는, 텍스쳐 처리 방법. - 제 11 항에 있어서,
상기 텍스쳐 필터링을 수행하는 단계는,
상기 변환된 포맷에 대응되는 필터링 유닛을 구동하여, 상기 텍스쳐 필터링을 수행하는, 텍스쳐 처리 방법. - 제 11 항에 있어서,
상기 독출된 텍스쳐를 압축 해제하는 단계;를 더 포함하고,
상기 포맷을 변환하는 단계는,
상기 그래픽 처리 장치에서 요구되는 텍스쳐의 정밀도에 기초하여, 상기 압축 해제된 텍스쳐의 포맷을 변환하는, 텍스쳐 처리 방법. - 제 11 항에 있어서,
상기 포맷이 변환된 텍스쳐를 압축 해제하는 단계;를 더 포함하고,
상기 텍스쳐 필터링을 수행하는 단계는,
상기 압축 해제된 텍스쳐를 이용하여, 상기 텍스쳐 필터링을 수행하는, 텍스쳐 처리 방법. - 제 11 항 내지 제 19 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150107516A KR102444240B1 (ko) | 2015-07-29 | 2015-07-29 | 텍스쳐 처리 방법 및 장치 |
US15/098,786 US10388033B2 (en) | 2015-07-29 | 2016-04-14 | Texture processing apparatus and method |
EP16172387.9A EP3125199B1 (en) | 2015-07-29 | 2016-06-01 | Texture processing apparatus and method |
JP2016148847A JP2017033565A (ja) | 2015-07-29 | 2016-07-28 | テクスチャ処理装置及びその方法 |
CN201610617830.8A CN106408634B (zh) | 2015-07-29 | 2016-07-29 | 纹理处理设备和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150107516A KR102444240B1 (ko) | 2015-07-29 | 2015-07-29 | 텍스쳐 처리 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170014350A true KR20170014350A (ko) | 2017-02-08 |
KR102444240B1 KR102444240B1 (ko) | 2022-09-16 |
Family
ID=56101312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150107516A KR102444240B1 (ko) | 2015-07-29 | 2015-07-29 | 텍스쳐 처리 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10388033B2 (ko) |
EP (1) | EP3125199B1 (ko) |
JP (1) | JP2017033565A (ko) |
KR (1) | KR102444240B1 (ko) |
CN (1) | CN106408634B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD944826S1 (en) | 2018-01-04 | 2022-03-01 | Samsung Electronics Co., Ltd. | Dashboard with graphical user interface |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US10198789B2 (en) * | 2016-12-13 | 2019-02-05 | Advanced Micro Devices, Inc. | Out-of-order cache returns |
US10255655B1 (en) | 2017-06-16 | 2019-04-09 | Apple Inc. | Serial pixel processing with storage for overlapping texel data |
CN108022269B (zh) * | 2017-11-24 | 2021-09-14 | 中国航空工业集团公司西安航空计算技术研究所 | 一种GPU压缩纹理存储Cache的建模系统 |
US10546393B2 (en) | 2017-12-30 | 2020-01-28 | Intel Corporation | Compression in machine learning and deep learning processing |
CN110349243B (zh) * | 2019-07-15 | 2023-10-20 | Oppo广东移动通信有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN110992240A (zh) * | 2019-11-18 | 2020-04-10 | 中国航空工业集团公司西安航空计算技术研究所 | 一种可编程纹理处理器系统 |
GB2604194B (en) * | 2021-08-06 | 2024-01-10 | Imagination Tech Ltd | Texture address generation |
GB2604193B (en) | 2021-08-06 | 2023-03-08 | Imagination Tech Ltd | Texture address generation |
CN114501141B (zh) * | 2022-01-04 | 2024-02-02 | 杭州网易智企科技有限公司 | 视频数据处理方法、装置、设备和介质 |
CN116721196B (zh) * | 2023-06-26 | 2023-11-07 | 北京麟卓信息科技有限公司 | 一种压缩纹理的动态转换方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090295819A1 (en) * | 2008-05-30 | 2009-12-03 | Advanced Micro Devices, Inc. | Floating Point Texture Filtering Using Unsigned Linear Interpolators and Block Normalizations |
US20100060629A1 (en) * | 2008-09-09 | 2010-03-11 | Jim Rasmusson | Graphics-Processing Architecture Based on Approximate Rendering |
US20150054845A1 (en) * | 2013-08-23 | 2015-02-26 | Nvidia Corporation | Bit-count texture format |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5874969A (en) * | 1996-07-01 | 1999-02-23 | Sun Microsystems, Inc. | Three-dimensional graphics accelerator which implements multiple logical buses using common data lines for improved bus communication |
US7274373B1 (en) * | 1999-12-06 | 2007-09-25 | Nvidia Corporation | System, method and computer program product for providing arbitrary texture filtering |
US7330864B2 (en) * | 2001-03-01 | 2008-02-12 | Microsoft Corporation | System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations |
US7034849B1 (en) * | 2001-12-31 | 2006-04-25 | Apple Computer, Inc. | Method and apparatus for image blending |
US7418606B2 (en) | 2003-09-18 | 2008-08-26 | Nvidia Corporation | High quality and high performance three-dimensional graphics architecture for portable handheld devices |
US8411105B1 (en) | 2004-05-14 | 2013-04-02 | Nvidia Corporation | Method and system for computing pixel parameters |
US8154554B1 (en) * | 2006-07-28 | 2012-04-10 | Nvidia Corporation | Unified assembly instruction set for graphics processing |
US8421794B2 (en) | 2007-03-23 | 2013-04-16 | Qualcomm Incorporated | Processor with adaptive multi-shader |
US9665951B2 (en) * | 2007-12-20 | 2017-05-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Unified compression/decompression graphics architecture |
US8633936B2 (en) | 2008-04-21 | 2014-01-21 | Qualcomm Incorporated | Programmable streaming processor with mixed precision instruction execution |
KR20100132605A (ko) | 2009-06-10 | 2010-12-20 | 삼성전자주식회사 | 하이브리드 렌더링 장치 및 방법 |
US8570336B2 (en) | 2009-12-08 | 2013-10-29 | Intel Corporation | Texture unit for general purpose computing |
US9135742B2 (en) * | 2012-12-28 | 2015-09-15 | Microsoft Technology Licensing, Llc | View direction determination |
KR102109130B1 (ko) * | 2013-08-12 | 2020-05-08 | 삼성전자주식회사 | 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들 |
CN103440660B (zh) * | 2013-09-03 | 2016-03-30 | 四川大学 | 一种基于gpu的集成成像微图像阵列快速生成方法 |
US20150358810A1 (en) * | 2014-06-10 | 2015-12-10 | Qualcomm Incorporated | Software Configurations for Mobile Devices in a Collaborative Environment |
US9508121B2 (en) * | 2015-01-14 | 2016-11-29 | Lucidlogix Technologies Ltd. | Method and apparatus for controlling spatial resolution in a computer system by rendering virtual pixel into physical pixel |
-
2015
- 2015-07-29 KR KR1020150107516A patent/KR102444240B1/ko active IP Right Grant
-
2016
- 2016-04-14 US US15/098,786 patent/US10388033B2/en active Active
- 2016-06-01 EP EP16172387.9A patent/EP3125199B1/en active Active
- 2016-07-28 JP JP2016148847A patent/JP2017033565A/ja active Pending
- 2016-07-29 CN CN201610617830.8A patent/CN106408634B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090295819A1 (en) * | 2008-05-30 | 2009-12-03 | Advanced Micro Devices, Inc. | Floating Point Texture Filtering Using Unsigned Linear Interpolators and Block Normalizations |
US20100060629A1 (en) * | 2008-09-09 | 2010-03-11 | Jim Rasmusson | Graphics-Processing Architecture Based on Approximate Rendering |
US20150054845A1 (en) * | 2013-08-23 | 2015-02-26 | Nvidia Corporation | Bit-count texture format |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD944826S1 (en) | 2018-01-04 | 2022-03-01 | Samsung Electronics Co., Ltd. | Dashboard with graphical user interface |
USD999786S1 (en) | 2018-01-04 | 2023-09-26 | Samsung Electronics Co., Ltd. | Dashboard with graphical user interface |
Also Published As
Publication number | Publication date |
---|---|
CN106408634B (zh) | 2020-12-29 |
US20170032543A1 (en) | 2017-02-02 |
US10388033B2 (en) | 2019-08-20 |
CN106408634A (zh) | 2017-02-15 |
EP3125199B1 (en) | 2019-11-13 |
KR102444240B1 (ko) | 2022-09-16 |
JP2017033565A (ja) | 2017-02-09 |
EP3125199A1 (en) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102444240B1 (ko) | 텍스쳐 처리 방법 및 장치 | |
US10134175B2 (en) | Gradient adjustment for texture mapping to non-orthonormal grid | |
US12026798B2 (en) | Variable resolution graphics processing | |
US20200184712A1 (en) | Rendering an image from computer graphics using two rendering computing devices | |
US8681168B2 (en) | Methods of and apparatus for processing graphics | |
KR102258100B1 (ko) | 텍스쳐 처리 방법 및 장치 | |
CN106548498B (zh) | 用于处理压缩纹理的方法和设备 | |
US10453274B2 (en) | Texture compressing method and apparatus and texture decompressing method and apparatus | |
US11238639B2 (en) | Gradient adjustment for texture mapping to non-orthonormal grid | |
KR20160032597A (ko) | 텍스쳐를 처리하는 방법 및 장치 | |
KR102512521B1 (ko) | 텍스쳐 처리 방법 및 장치 | |
KR20180048081A (ko) | 텍스쳐 처리 방법 및 장치 | |
KR20180037838A (ko) | 텍스쳐를 처리하는 방법 및 장치 |
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 |