KR20180048081A - 텍스쳐 처리 방법 및 장치 - Google Patents

텍스쳐 처리 방법 및 장치 Download PDF

Info

Publication number
KR20180048081A
KR20180048081A KR1020160145215A KR20160145215A KR20180048081A KR 20180048081 A KR20180048081 A KR 20180048081A KR 1020160145215 A KR1020160145215 A KR 1020160145215A KR 20160145215 A KR20160145215 A KR 20160145215A KR 20180048081 A KR20180048081 A KR 20180048081A
Authority
KR
South Korea
Prior art keywords
operator
mipmap
texture
precision
lod
Prior art date
Application number
KR1020160145215A
Other languages
English (en)
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 KR1020160145215A priority Critical patent/KR20180048081A/ko
Priority to US15/609,828 priority patent/US10176600B2/en
Priority to EP17178573.6A priority patent/EP3319046B1/en
Priority to JP2017154335A priority patent/JP6944304B2/ja
Priority to CN201710785751.2A priority patent/CN108022282B/zh
Publication of KR20180048081A publication Critical patent/KR20180048081A/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/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • 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
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

텍스쳐 처리 방법 및 장치는, 제 1 밉맵과 제 2 밉맵이 텍스쳐 필터링에 관여하는 정도에 따라, 제 1 밉맵에 관한 연산의 정밀도와 제 2 밉맵에 관한 연산의 정밀도를 달리하여 텍스쳐 필터링을 수행한다.

Description

텍스쳐 처리 방법 및 장치{Method and apparatus for processing texture}
본 개시는 텍스쳐 처리 방법 및 장치에 관한 것이다.
3차원 그래픽 시스템에서 보다 현실감 있는 영상을 얻기 위한 방법의 일환으로 텍스쳐링 또는 텍스쳐 맵핑(texture mapping) 기술이 활용되고 있다. 텍스쳐링 또는 텍스쳐 맵핑이란, 텍스쳐 처리 장치가 3차원 객체(object)의 표면에 질감을 주기 위해 2차원 이미지를 3차원 물체 표면에 입히는 것을 의미한다. 여기서, 텍스쳐(texture)는 객체에 입혀지는 이미지를 의미한다. 텍스쳐 맵핑 분야에서, 기본 텍스쳐와 이를 축소시킨 텍스쳐들로 이루어진 비트맵 이미지의 집합을 밉맵(mipmap)이라고 한다.
한편, 텍스쳐 처리 장치에 저장되는 밉맵의 수는 제한적이기 때문에, 텍스쳐 처리 장치는 밉맵을 이용한 보간(interpolation) 작업을 통해 객체의 표면을 더 정교하게 표현하는, 텍스쳐 필터링(texture filtering)을 수행할 수 있다.
이때, 텍스쳐 처리 장치는 복수의 밉맵들을 이용하여 텍스쳐 필터링을 수행할 수 있다. 이때 사용되는 밉맵의 수가 많아지면 객체의 표면을 더 정교하게 표현할 수 있지만, 다양한 밉맵들을 처리하기 위한 텍스쳐 처리 장치의 면적, 연산량 및 전력 소비량이 증가될 수 있다.
제 1 밉맵과 제 2 밉맵이 텍스쳐 필터링에 관여하는 정도에 따라, 제 1 밉맵에 관한 연산의 정밀도와 제 2 밉맵에 관한 연산의 정밀도를 달리하여 텍스쳐 필터링을 수행하는, 텍스쳐 처리 방법 및 장치를 제공하는 것이다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따르면, 텍스쳐 처리 장치는 그래픽의 LOD 값에 따라 결정되는 제 1 밉맵과 제 2 밉맵이 텍스쳐 필터링에 관여하는 정도를 나타내는 LOD 가중치에 기초하여, 상기 제 1 밉맵에 관한 연산을 수행하는 제 1 연산기와 상기 제 2 밉맵에 관한 연산을 수행하는 제 2 연산기를 결정하는, 제어부; 및 상기 제 1 연산기와 상기 제 2 연산기를 이용하여 텍스쳐 필터링을 수행하는, 텍스쳐 필터;를 포함하고, 이때 상기 제 1 연산기에 의해 수행되는 연산의 정밀도(precision)는 상기 제 2 연산기에 의해 수행되는 연산의 정밀도와 상이할 수 있다.
다른 측면에 따르면, 텍스쳐 처리 방법은 그래픽의 LOD 값에 따라 결정되는 제 1 밉맵과 제 2 밉맵이 텍스쳐 필터링에 관여하는 정도를 나타내는 LOD 가중치에 기초하여, 상기 제 1 밉맵에 관한 연산을 수행하는 제 1 연산기와 상기 제 2 밉맵에 관한 연산을 수행하는 제 2 연산기를 결정하는 단계; 및 상기 제 1 연산기와 상기 제 2 연산기를 이용하여 텍스쳐 필터링을 수행하는 단계;를 포함하고, 이때 상기 제 1 연산기에 의해 수행되는 연산의 정밀도(precision)는 상기 제 2 연산기에 의해 수행되는 연산의 정밀도와 상이할 수 있다.
또 다른 측면에 따르면, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기된 바에 따르면, 3차원 그래픽 품질을 유지하면서, 텍스쳐 처리 장치의 면적을 감소시킬 수 있고, 텍스쳐 처리 장치의 연산량 및 전력 소비량을 감소시킬 수 있다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타낸 도면이다.
도 2는 그래픽 처리 장치가 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
도 3은 텍스쳐 맵핑을 설명하기 위한 도면이다.
도 4는 밉맵을 설명하기 위한 도면이다.
도 5a는 일 실시예에 따른, 하나의 밉맵을 이용하는 텍스쳐 필터링 방식을 설명하기 위한 도면이다.
도 5b는 일 실시예에 따른, 두 밉맵들을 이용하는 텍스쳐 필터링 방식을 설명하기 위한 도면이다.
도 6은 텍스쳐 필터링 방식에 따라 필요한 연산량을 설명하기 위한 도면이다.
도 7은 일 실시예에 따라 LOD 가중치에 기초하여, 제 1 연산기 및 제 2 연산기를 결정하는 방법을 설명하기 위한 도면이다.
도 8은 다른 일 실시예에 따라 LOD 가중치에 기초하여, 제 1 연산기 및 제 2 연산기를 결정하는 방법을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른, 텍스쳐 처리 장치의 구성을 나타낸 블록도이다.
도 10은 일 실시예에 따른, 그래픽 처리 장치의 구성을 나타낸 블록도이다.
도 11은 또 다른 일 실시예에 따라, LOD 가중치에 기초하여, 제 1 연산기 및 제 2 연산기를 결정하는 방법을 설명하기 위한 도면이다.
도 12a 내지 12b는 일 실시예에 따라, LOD 가중치가 LOD 가중치의 최대치 또는 최소치가 포함된 구간에 속할 때, 제 1 연산기 및 제 2 연산기를 결정하는 방법을 설명하기 위한 도면이다.
도 13은 일 실시예에 따른, 텍스쳐 필터링의 연산량 변화를 설명하기 위한 도면이다.
도 14는 일 실시예에 따라, 텍스쳐 처리 방법을 도시한 흐름도이다.
도 15는 일 실시예에 따라, 텍스쳐 처리 방법을 도시한 상세 흐름도이다.
본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 기술분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 임의로 선정된 용어도 있으며, 이 경우 해당 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
실시예들에 대한 설명들에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 구성요소를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 실시예들에 기재된 "...부", "...모듈"의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 실시예들에서 사용되는 "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
하기 실시예들에 대한 설명은 권리범위를 제한하는 것으로 해석되지 말아야 하며, 해당 기술분야의 당업자가 용이하게 유추할 수 있는 것은 실시예들의 권리범위에 속하는 것으로 해석되어야 할 것이다. 이하 첨부된 도면들을 참고하면서 오로지 예시를 위한 실시예들을 상세히 설명하기로 한다.
도 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)하는 단계이다. 버텍스 쉐이더(vertex shader)는 단계 11에서 생성된 버텍스들의 위치를 지정함으로써, 버텍스들에 대한 쉐이딩을 수행할 수 있다.
단계 13은 프리미티브(primitive)들을 생성하는 단계이다. 프리미티브는 하나 이상의 버텍스들을 이용하여 형성되는 점, 선, 다각형(polygon)등을 의미한다. 예를 들어, 프리미티브는 3개의 버텍스들이 연결된 삼각형일 수 있다.
단계 14는 프리미티브를 래스터화(rasterization)하는 단계이다. 프리미티브를 래스터화하는 것은 프리미티브를 프레그먼트들(fragments)로 분할하는 것을 의미한다. 프레그먼트는 프리미티브에 대한 그래픽스 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터라이징을 통해 버텍스와 버텍스 사이의 프레그먼트들이 생성됨으로써, 3차원 그래픽스 처리가 수행될 수 있다.
단계 15는 픽셀들을 쉐이딩하는 단계이다. 래스터화에 의해 생성된, 프리미티브를 구성하는 프레그먼트들은 픽셀들이 될 수 있다. 당해 분야에서, 프레그먼트와 픽셀이란 용어는 경우에 따라 혼용되어 사용되기도 한다. 예를 들어, 픽셀 쉐이더는 프레그먼트 쉐이더라고 호칭될 수 있다. 일반적으로, 프리미티브를 구성하는 그래픽 처리의 기본 단위를 프레그먼트라고 부르고, 이후, 픽셀 쉐이딩부터 그래픽 처리의 기본 단위를 픽셀이라 지칭할 수 있다. 픽셀 쉐이딩에 의하여 픽셀들의 값들, 속성들 등(예를 들어 픽셀의 색)이 결정될 수 있다.
단계 16은 픽셀의 색을 결정하기 위한 텍스쳐링(texturing) 단계이다. 텍스쳐링은 미리 준비된 이미지인 텍스쳐를 이용하여 픽셀의 색을 결정하는 과정이다. 이때 다양한 색상과 패턴의 모습을 표현하기 위해서 각각의 픽셀의 색상을 계산하여 결정하는 것은 그래픽 처리에 필요한 데이터 연산량과 그래픽 처리 시간을 증가시키므로, 그래픽 처리 장치는 미리 준비된 텍스쳐를 이용하여 픽셀의 색상을 결정할 수 있다.
단계 17은 테스트 및 믹싱(testing and mixing) 단계이다. 깊이 테스트(depth test), 컬링(curling), 클리핑(clipping) 등을 통해 최종적으로 표시될 픽셀 값들이 결정된다.
단계 18은 11 내지 단계 17을 통해 생성된 프레임을 프레임 버퍼(frame buffer)에 저장하고, 프레임 버퍼에 저장된 프레임을 디스플레이 장치를 통해 표시하는 단계이다.
도 2에서 설명된 3차원 그래픽스를 처리하는 과정은 개괄적인 것으로서, 보다 세부적인 과정들에 대해서는 당해 기술분야의 통상의 기술자에게 자명하다.
도 3은 텍스쳐 맵핑을 설명하기 위한 도면이다.
도 3을 참고하면, 래스터라이징에 의하여 스크린 공간 상의 픽셀들(301)이 생성된 경우, 텍스쳐 처리 장치는 픽셀들(301)에 맵핑될 텍스쳐(302)를 결정할 수 있다. 이때 텍스쳐(302)는 3차원 객체 표면의 색상, 질감 및 패턴 등에 대한 정보를 갖는 이미지로 정의되며, 텍스쳐 공간 상의 텍셀(texel) 단위로 구성된다.
한편, 객체의 크기는 스크린 공간 상에서 연속적으로 변하기 때문에, 모든 픽셀들(301)에 대응되는 텍스쳐(302)들을 미리 준비하는 것은 어렵다. 따라서, 텍스쳐 처리 장치는 한 장의 텍스쳐 또는 복수의 텍스쳐들을 이용한 보간(interpolation) 작업을 통해, 픽셀들(301)의 값을 추정하는, 텍스쳐 필터링을 수행할 수 있다. 이하 도면에서는 텍스쳐 필터링을 수행할 때 이용되는 밉맵에 대해서 설명한다.
도 4는 밉맵을 설명하기 위한 도면이다.
텍스쳐 처리 장치는 스크린 공간 상에서 변화되는 객체의 크기에 적응적으로 대응할 수 있도록, 미리 준비된 텍스쳐를 이용할 수 있다. 이때, 기본 텍스쳐와 이를 축소시킨 텍스쳐들로 이루어진 비트맵 이미지의 집합을 밉맵(mipmap)이라고 한다.
이때, 다른 레벨의 밉맵은 해상도가 상이할 수 있다. 도 4를 참고하면, 레벨 0 밉맵(410)은 텍스쳐들 중에서 해상도가 제일 높은 텍스쳐로, 기본 텍스쳐를 의미할 수 있다. 레벨 0 밉맵(410)을 표현하기 위해, 8×8 텍셀들이 필요하다. 또한, 기본 텍스쳐의 크기보다 1/4 축소된 밉맵은 레벨 1 밉맵(411)이다. 레벨 1 밉맵(411)을 표현하기 위해, 4×4 텍셀들이 필요하다. 또한, 기본 텍스쳐의 크기보다 1/16 축소된 밉맵은 레벨 2 밉맵(412)일 수 있다. 레벨 2 밉맵(412)을 표현하기 위해, 2×2 텍셀들이 필요하다.
한편, 시점(view point)과 픽셀간 거리가 변함에 따라, 픽셀에 맵핑되는 텍스쳐가 달라질 수 있다. 예를 들어, 도로의 타일을 스크린 공간에 표시할 때 시점에서 가까운 타일에 대응하는 픽셀들에 맵핑되는 텍스쳐는 해상도가 높은 레벨 0 밉맵(410)일 수 있다. 또한, 시점에서 멀리 떨어진 도로의 타일에 대응하는 픽셀들에 맵핑될 텍스쳐는 해상도가 낮은 레벨 2 밉맵(412)일 수 있다. 즉, 복수의 밉맵을 이용할 경우, 먼 거리에 있는 객체는 낮은 해상도로 표현되기 때문에, 그래픽 처리 장치는 3차원 그래픽을 자연스럽게 표현할 수 있다. 더불어, 상이한 텍스쳐들이 맵핑된 픽셀들의 경계면에서 텍스쳐 필터링이 수행되면, 3차원 그래픽의 품질이 향상될 수 있다.
이때, 스크린 공간 상의 픽셀들에 맵핑시킬 텍스쳐들은, 그래픽의 LOD(level of detail)에 기초하여 결정될 수 있다. 여기서 LOD는 3차원 그래픽 이미지를 표현하는 정밀도를 단계화한 것을 의미한다. 텍스쳐 처리 장치는 픽셀 정보를 수신한 후 그래픽의 LOD 값을 결정하고, 결정된 LOD 값에 따라 텍스쳐 필터링을 수행할 때 필요한 밉맵들을 결정할 수 있다. 예를 들어, 텍스쳐 처리 장치는 2×2 픽셀들로 구성된 쿼드(quad) 단위로 그래픽의 LOD 값을 계산할 수 있으나, LOD 값을 계산할 때 필요한 픽셀의 수는 이에 제한되지 않는다.
한편, 텍스쳐 처리 장치는 한 장의 밉맵 또는 복수의 밉맵들을 이용하여 텍스쳐 필터링을 수행할 수 있다. 예를 들어, 텍스쳐 처리 장치는 포인트 필터링(point filtering), 이중 선형 필터링(bilinear filtering) 및 삼중 선형 필터링(trilinear filtering)을 수행할 수 있으나, 텍스쳐 처리 장치가 수행할 수 있는 텍스쳐 필터링 종류는 이에 제한되지 않는다. 구체적인 텍스쳐 필터링 방식에 대해서는 이하 도 5a 내지 도5b를 참고하여 설명하도록 한다.
도 5a는 일 실시예에 따른, 하나의 밉맵을 이용하는 텍스쳐 필터링 방식을 설명하기 위한 도면이다.
텍스쳐 처리 장치는 한 장의 밉맵을 이용하여 포인트 필터링 및 이중 선형 필터링을 수행할 수 있다. 이 중 포인트 필터링은 텍스쳐 좌표 상 픽셀과 가장 가까운 텍셀 값을 결과 값으로 출력할 수 있다. 즉, 포인트 필터링을 수행할 때 필요한 텍셀 값은 1개이다.
도 5a를 참고하면, 픽셀(P)의 주변에 위치한 제 1 텍셀(T1) 내지 제 4 텍셀(T4) 중 제 1 텍셀(T1)이 픽셀(P)과 가장 가깝기 때문에, 픽셀(P)의 포인트 필터링 결과는 제 1 텍셀(T1)이 된다.
한편, 이중 선형 필터링은 텍스쳐 좌표 상 픽셀과 가까운 4개의 텍셀 값들과 두 가중치들을 이용하여 픽셀 값을 계산하는 텍스쳐 필터링 방식이다. 즉, 이중 선형 필터링은 필요한 텍셀의 수가 4개이다.
도 5a를 참고하면, 가중치 u, 가중치 v, 제 1 텍셀(T1) 내지 제 4 텍셀(T4) 값을 이용하여 픽셀(P) 값을 계산할 수 있다. 이때, 이중 선형 필터링(BiLERP)은 수학식 1을 통해 계산될 수 있다.
Figure pat00001
수학식 1에서 Wu, Wv는 각각 가중치 u, 가중치 v이고, 각각 0과 1사이 값일 수 있다. T1 내지 T4는 각각 T1 값 내지 T4 값이다. 또한, 함수 LERP는 선형 보간(linear interpolation)으로, 수학식 2에 의해 정의될 수 있다.
Figure pat00002
수학식 2를 참고하면, 선형 보간은 두 좌표 값의 직선 거리에 따라, 두 좌표 값 사이의 임의의 좌표를 선형적으로 계산하는 방법이다. 즉, 이중 선형 필터링은 한 밉맵에 포함된 두 개의 텍셀 쌍에 대해 선형 보간을 수행하고, 선형 보간의 결과들에 기초하여 다시 선형 보간을 수행하는 텍스쳐 필터링 방식이다.
도 5b는 일 실시예에 따른, 두 밉맵들을 이용하는 텍스쳐 필터링 방식을 설명하기 위한 도면이다.
텍스쳐 처리 장치는 두 밉맵들을 이용하여, 삼중 선형 필터링을 수행할 수 있다. 삼중 선형 필터링 두 밉맵들에서 각각 이중 선형 필터링을 수행한 결과와 LOD 가중치를 이용하여 픽셀 값을 계산하는 텍스쳐 필터링 방식이다. 즉, 삼중 선형 필터링을 수행할 때 필요한 텍셀의 수는 8개이다. 여기서, LOD 가중치는 그래픽 LOD 값에 따라, 결정된 두 밉맵들이 텍스쳐 필터링에 관여하는 정도를 의미하는 값일 수 있다.
도 5b를 참고하면, 제 1 밉맵(510)과 제 2 밉맵(520) 사이에 픽셀(P)이 위치할 때, 텍스쳐 처리 장치는 수학식 3에 기초하여 삼중 선형 필터링(TriLERP)을 수행할 수 있다.
Figure pat00003
BiLERP1와 BiLERP2는 각각 제 1 밉맵(510)과 제 2 밉맵(520)에 대한 이중 선형 필터링 결과이고, WLOD는 LOD 가중치를 의미한다. 이때 LOD 가중치는 0에서 1 사이 값을 가질 수 있다.
도 5b를 참고하면, 제 1 밉맵(510)이 텍스쳐 필터링에 관여하는 정도가 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도보다 더 크면, 픽셀(P)는 0.5보다 큰 LOD 가중치를 가질 수 있다.
이하 도면에서는 설명의 편의를 위해, 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도가 증가하면 LOD 가중치는 점점 감소하고, 제 1 밉맵(510)이 텍스쳐 필터링에 관여하는 정도가 증가하면 LOD 가중치는 점점 증가하는 것으로 가정하였으나, 본 실시예는 이에 제한되지 않는다.
한편, 이하 도면에서는 설명의 편의를 위해 삼중 선형 필터링을 전제로 기술되었으나, 이에 제한되지 않는다.
도 6은 텍스쳐 필터링 방식에 따라 필요한 연산량을 설명하기 위한 도면이다.
도 6을 참고하면, 포인트 필터링의 경우 텍스쳐 좌표 상의 픽셀과 가장 가까운 하나의 텍셀 값을 출력하기 때문에 선형 보간을 수행하지 않는다.
한편, 이중 선형 필터링의 경우, 한 밉맵에 대한 이중 선형 보간을 수행한다. 이때 수학식 1을 참고하면, 이중 선형 보간은 3회 선형 보간을 포함한다. 따라서 텍스쳐 처리 장치는 선형 보간을 3회 수행하여, 이중 선형 필터링의 결과 값을 획득할 수 있다.
수학식 3을 참고하면 삼중 선형 필터링의 경우, 두 장의 밉맵들에 대한 이중 선형 보간을 포함하고, 이중 선형 보간 결과들에 기초한 선형 보간을 포함한다. 따라서, 텍스쳐 처리 장치는 선형 보간을 7회 수행하여, 삼중 선형 필터링의 결과 값을 획득할 수 있다.
즉, 텍스쳐 처리 장치의 삼중 선형 필터링의 연산량이 감소되면, 다른 텍스쳐 필터링의 연산량이 감소될 때보다 전체 필터링 연산량이 더 큰 폭으로 감소될 수 있다.
도 7은 일 실시예에 따라 LOD 가중치에 기초하여, 제 1 연산기 및 제 2 연산기를 결정하는 방법을 설명하기 위한 도면이다.
텍스쳐 처리 장치는 LOD 가중치에 기초하여, 제 1 밉맵(510)에 관한 연산을 수행하는 제 1 연산기와 제 2 밉맵(520)에 관한 연산을 수행하는 제 2 연산기를 결정하고, 제 1 연산기와 제 2 연산기를 이용하여 텍스쳐 필터링을 수행할 수 있다. 구체적으로 텍스쳐 처리 장치는 제 1 밉맵(510)과 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도에 따라, 연산의 정밀도가 상이한 연산기들 중에서 제 1 연산기 및 제 2 연산기를 결정함으로써 삼중 선형 필터링의 연산량을 감소시킬 수 있다.
여기서, 정밀도는 소정의 변수를 표현하기 위해 필요한 비트의 수로 나타낼 수 있다. 예를 들어, OpenGL에서 색상 값은 RGBA 형식으로 저장될 수 있고, 색상 값의 각 구성 요소(Red, Green, Blue, Alpha)는 각각 8 비트 정수형(integer type)으로 표현될 수 있다. 이러한 경우, 텍셀의 정밀도는 8 비트 일 수 있다.
한편, 제 1 연산기와 제 2 연산기는 복수의 선형 보간을 수행하기 위해 곱셈기를 포함할 수 있다. 수학식 1 및 수학식 2를 참고하면, 곱셈기는 텍셀 값과 가중치 u, v을 입력 받아, 곱셈 연산을 수행할 수 있다. 이때, 곱셈기의 입력 변수의 정밀도에 따라, 연산기의 면적과 연산기가 수행하는 연산량이 달라질 수 있다. 예를 들어, 입력 변수의 정밀도가 각각 8 비트인 곱셈기의 면적은, 입력 변수의 정밀도가 각각 4 비트인 곱셈기의 면적보다 4 배 크고, 수행하는 연산량이 4 배 많을 수 있다. 더불어, 연산기가 수행하는 연산량이 증가되면, 연산기의 전력 소비량도 증가될 수 있다.
한편, 연산기에 의해 수행되는 연산의 정밀도는, 연산에 이용되는 가중치의 비트 수로 나타낼 수 있다. 예를 들어, 밉맵에 관한 연산에 이용되는 가중치 u 및 가중치 v의 정밀도가 4 비트이면, 연산의 정밀도는 4 비트로 표현할 수 있다. 다시 말해서, 연산의 정밀도가 4 비트라는 것은, 연산기의 곱셈기에 입력되는 가중치의 정밀도가 4 비트인 것을 의미할 수 있다.
도 5a을 참고하면, 제 1 밉맵(510)이 텍스쳐 필터링에 관여하는 정도가 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도보다 크면, LOD 가중치가 0.5보다 크다. 이러한 경우, 도 7의 텍스쳐 처리 장치는 LOD 가중치가 증가하면, 제 2 연산기의 연산의 정밀도보다 더 높은 연산의 정밀도를 갖는 연산기를 제 1 연산기로 결정할 수 있다.
또한, 텍스쳐 처리 장치는 제 1 밉맵(510)이 텍스쳐 필터링에 관여하는 정도가 증가할수록, 연산의 정밀도가 높은 연산기를 제 1 연산기로 결정할 수 있다.
또한, 제 1 밉맵(510)과 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도의 차이가 증가할수록, 제 1 연산기의 연산의 정밀도와 제 2 연산기의 연산의 정밀도간 차이는 증가할 수 있다.
한편, 복수의 밉맵들을 이용하는 텍스쳐 필터링 방식에는 삼중 선형 필터링뿐 아니라, 비등방성 필터링(anisotropic filtering)도 포함될 수 있다. 이하 도면에서는 설명의 편의를 위해 삼중 선형 필터링을 전제로 기술되었으나, 삼중 선형 필터링 외에 복수의 밉맵들을 이용하여 텍스쳐 필터링을 수행하는 방법들에도 적용될 수 있음을 관련 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 8은 다른 일 실시예에 따라 LOD 가중치에 기초하여, 제 1 연산기 및 제 2 연산기를 결정하는 방법을 설명하기 위한 도면이다.
텍스쳐 처리 장치는 LOD 가중치의 범위를 복수의 구간으로 분할하고, LOD 가중치가 속하는 구간에 따라 제 1 연산기와 제 2 연산기를 결정할 수 있다. 또한, 텍스쳐 처리 장치는 연산의 정밀도가 상이한 연산기들을 포함할 수 있다.
도 8을 참고하면, 텍스쳐 처리 장치는 연산의 정밀도가 각각 8 비트와 4 비트인, 2개의 연산기들을 이용하여 텍스쳐 필터링을 수행할 수 있다. 구체적으로, 텍스쳐 처리 장치는 LOD 가중치가 0.5 보다 큰 경우, 연산의 정밀도가 8 비트인 연산기를 제 1 연산기로 결정하고, 연산의 정밀도가 4 비트인 연산기를 제 2 연산기로 결정할 수 있다. 다시 말해서, LOD 가중치가 0.5 보다 큰 경우, 제 1 밉맵(510)에 관한 연산에 이용되는 가중치 u 및 가중치 v의 정밀도는 8 비트이고, 제 2 밉맵(520) 에 관한 연산에 이용되는 가중치 u 및 가중치 v의 정밀도는 4 비트일 수 있다.
반대로, LOD 가중치가 0.5 보다 작은 경우, 텍스쳐 처리 장치는 연산의 정밀도가 8 비트인 연산기를 제 2 연산기로 결정하고, 연산의 정밀도가 4 비트인 연산기를 제 1 연산기로 결정할 수 있다.
도 9는 일 실시예에 따른, 텍스쳐 처리 장치의 구성을 나타낸 블록도이다.
도 9를 참고하면, 텍스쳐 처리 장치(900)는 제어부(910) 및 텍스쳐 필터(920)를 포함할 수 있다. 도 9에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 관련 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
제어부(910)는 외부로부터 텍스쳐들을 수신하고, 텍스쳐 처리 장치(900)를 제어하기 위해 필요한 연산을 수행할 수 있다. 제어부(910)는 텍스쳐 필터(920)를 제어하여, 텍스쳐 처리 장치(900)의 전반적인 제어를 담당할 수 있다.
또한, 제어부(910)는 그래픽의 LOD 값에 따라 결정되는 제 1 밉맵(510)과 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도를 나타내는 LOD 가중치에 기초하여, 제 1 밉맵(510)에 관한 연산을 수행하는 제 1 연산기와 제 2 밉맵(520)에 관한 연산을 수행하는 제 2 연산기를 결정할 수 있다. 이때, 제 1 연산기에 의해 수행되는 연산의 정밀도는 제 2 연산기에 의해 수행되는 연산의 정밀도와 상이할 수 있다.
또한, LOD 가중치에 따라, 제 1 밉맵(510)에 관한 연산에 이용되는 가중치와 제 2 밉맵(520)에 관한 연산에 이용되는 가중치가 변할 수 있다.
또한, 제어부(910)는 LOD 가중치의 범위를 복수의 구간으로 분할하고, LOD 가중치가 속하는 구간에 따라 제 1 연산기와 제 2 연산기를 결정할 수 있다.
또한, 제어부(910)는 텍스쳐 필터(920)에 포함되는 연산기들의 연산의 정밀도에 따른 조합 수에 기초하여, LOD 가중치의 범위를 분할할 수 있다.
또한, 제어부(910)는 제 1 밉맵(510)이 텍스쳐 필터링에 관여하는 정도가 증가할수록, 연산의 정밀도가 높은 연산기를 제 1 연산기로 결정할 수 있다.
또한, 제어부(910)는 제 1 밉맵(510)이 제 2 밉맵(520)보다 텍스쳐 필터링에 관여하는 정도가 증가하면, 제 2 연산기의 연산의 정밀도보다 더 높은 연산의 정밀도를 갖는 연산기를 제 1 연산기로 결정할 수 있다.
한편, 제 1 밉맵(510)과 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도의 차이가 증가할수록, 제 1 연산기의 연산의 정밀도와 제 2 연산기의 연산의 정밀도간 차이는 증가할 수 있다.
한편, 제 1 연산기과 제 2 연산기의 면적은 연산의 정밀도에 비례할 수 있다.
또한, 텍스쳐 필터(920)는 제 1 연산기 및 제 2 연산기를 이용하여 텍스쳐 필터링을 수행할 수 있다.
또한, LOD 가중치가 속하는 구간이 LOD 가중치의 최대치 또는 최소치를 포함하는 구간이면, 제 1 연산기와 제 2 연산기 중 어느 하나는 제 1 밉맵(510)과 제 2 밉맵(520) 중 텍스쳐 필터링에 관여하는 정도가 작은 밉맵에 포함된 텍셀 값을 출력할 수 있다.
또한, 제어부(910)는 LOD 가중치에 기초하여, 제 1 밉맵(510)에 관한 연산의 정밀도와 제 2 밉맵(520)에 관한 연산의 정밀도를 결정할 수 있고, 텍스쳐 필터(920)는 결정된 연산의 정밀도에 기초하여, 제 1 연산기의 연산의 정밀도와 제 2 연산기의 연산의 정밀도를 변경할 수 있다.
도 10은 일 실시예에 따른, 그래픽 처리 장치의 구성을 나타낸 블록도이다.
도 10을 참고하면, 텍스쳐 처리 장치(1010)는 제어부(1011), 텍스쳐 필터(1012) 및 텍스쳐 캐쉬(1013)를 포함할 수 있다. 텍스쳐 처리 장치(1010)는 쉐이더 코어(1020)로부터 요청된 텍스쳐를 처리하여 쉐이더 코어(1020)로 전송할 수 있다. 텍스쳐 처리 장치(1010)는 쉐이더 코어(1020)가 처리하고자 하는 픽셀에 대응되는 텍스쳐 좌표를 포함하는, 텍스쳐 요청을 수신할 수 있다. 예를 들어, 픽셀은 쿼드(quad) 단위로 텍스쳐 요청에 포함될 수 있다. 한편, 텍스쳐 처리 장치(1010)는 텍스쳐 캐쉬(1013)에 저장되지 않은 텍스쳐를 메모리(1030)로부터 가져올 수 있다.
제어부(1011) 및 텍스쳐 필터(1012)는 도 9의 제어부(910) 및 텍스쳐 필터(920)와 대응되므로 상세한 설명은 생략한다.
텍스쳐 캐쉬(1013)는 텍스쳐를 저장할 수 있다. 텍스쳐 캐쉬(1013)는 텍스쳐 처리 장치(1010)와 메모리(1030) 간 데이터 전송에 따른 그래픽 처리 지연 시간을 최소화하기 위해, 메모리(1030)로부터 수신한 일부 텍스쳐를 저장할 수 있다.
텍스쳐 캐쉬(1013)는 텍스쳐 처리 장치(1010)와 별도의 모듈로도 존재할 수도 있다. 예를 들어, 텍스쳐 캐쉬(1013)를 별도의 모듈로 구현하여, 텍스쳐 처리 장치(1010)와 메모리(1030) 사이에 위치하게 할 수도 있다.
도 11은 또 다른 일 실시예에 따라, LOD 가중치에 기초하여, 제 1 연산기 및 제 2 연산기를 결정하는 방법을 설명하기 위한 도면이다.
텍스쳐 처리 장치(900)에 포함된 연산기들의 수가 증가되면, 텍스쳐 처리 장치(900)는 LOD 가중치에 따라 제 1 연산기 및 제 2 연산기를 더 정교하게 선택할 수 있지만, 텍스쳐 처리 장치(900)의 면적이 증가될 수 있다.
도 11을 참고하면, 텍스쳐 처리 장치(900)는 연산의 정밀도가 각각 9 비트 내지 1 비트인, 9 개의 연산기들을 이용하여 텍스쳐 필터링을 수행할 수 있다. 예를 들어, LOD 가중치가 0.15인 경우, 텍스쳐 처리 장치(900)는 연산의 정밀도가 2 비트인 연산기를 제 1 연산기로 결정하고, 연산의 정밀도가 8 비트인 연산기를 제 2 연산기로 결정할 수 있다. 또한, LOD 가중치가 0.95인 경우, 텍스쳐 처리 장치(900)는 연산의 정밀도가 9 비트인 연산기를 제 1 연산기로 결정하고, 연산의 정밀도가 1 비트인 연산기를 제 2 연산기로 결정할 수 있다.
도 11을 따르는 텍스쳐 처리 장치(900)는 도 8을 따르는 텍스쳐 처리 장치(900)에 비하여 더 많은 연산기들을 포함하기 때문에, LOD 가중치에 따라 제 1 연산기 및 제 2 연산기를 더 정교하게 결정할 수 있다. 하지만, 도 8을 따르는 텍스쳐 처리 장치(900)에 비해, 텍스쳐 처리 장치(900)의 면적은 증가될 수 있다.
도 12a 내지 12b는 일 실시예에 따라, LOD 가중치가 LOD 가중치의 최대치 또는 최소치가 포함된 구간에 속할 때, 제 1 연산기 및 제 2 연산기를 결정하는 방법을 설명하기 위한 도면이다.
텍스쳐 처리 장치(900)는 LOD 가중치에 따라, 텍스쳐 필터링 방식을 변경할 수 있다. 구체적으로, LOD 가중치가 속하는 구간이 LOD 가중치의 최대치 또는 최소치를 포함하는 구간이면, 제 1 연산기와 제 2 연산기 중 어느 하나는 포인트 필터링을 수행할 수 있다. 다시 말해서, 제 1 연산기와 제 2 연산기 중 어느 하나는 제 1 밉맵(510)과 제 2 밉맵(520) 중 텍스쳐 필터링에 관여하는 정도가 작은 밉맵에 포함된 텍셀 값을 출력할 수 있다.
도 12a를 참고하면, 텍스쳐 처리 장치(900)는 연산의 정밀도가 각각 8 비트, 4 비트 및 0 비트인, 3개의 연산기들을 포함할 수 있다. 이때, LOD 가중치가 0.1 보다 작은 경우, 텍스쳐 처리 장치(900)는 연산의 정밀도가 0 비트인 연산기를 제 1 연산기로 결정할 수 있다. 연산의 정밀도가 0 비트인 것은, 이중 선형 필터링을 수행할 때 이용되는 가중치 u, v의 정밀도가 0 비트인 것을 의미한다. 다시 말해서, 연산의 정밀도가 0 비트인 연산기는 이중 선형 필터링 대신, 포인트 필터링을 수행하는 연산기를 의미한다.
따라서, 텍스쳐 처리 장치(900)는 LOD 가중치가 0.1 보다 작은 경우, 제 1 밉맵(510)에 대해서는 포인트 필터링을 수행하고, 제 2 밉맵(520)에 대해서는 연산의 정밀도가 8 비트인 제 2 연산기를 이용하여 이중 선형 필터링을 수행할 수 있다. 또한, LOD 가중치가 0.9 보다 큰 경우, 텍스쳐 처리 장치(900)는 제 2 밉맵(520)에 대해서는 포인트 필터링을 수행하고, 제 1 밉맵(510)에 대해서는 연산의 정밀도가 8 비트인 제 1 연산기를 이용하여 이중 선형 필터링을 수행할 수 있다.
한편, 텍스쳐 처리 장치(900)는 포인트 필터링을 수행하는 연산기를 별도로 추가하지 않고, 연산의 정밀도가 4 비트인 연산기를 이용하여 포인트 필터링을 수행할 수 있다.
도 12a를 따르는 텍스쳐 처리 장치(900)는 한 밉맵에 대해서 이중 선형 필터링 대신 포인트 필터링을 수행하기 때문에, 도 8을 따르는 텍스쳐 처리 장치(900)에 비하여 연산량이 감소될 수 있다. 또한, 텍스쳐 처리 장치(900)가 연산의 정밀도가 4 비트인 연산기를 이용하여 포인트 필터링을 수행한다면, 도 8을 따르는 텍스쳐 처리 장치(900)와 면적은 동일하면서, 연산량이 감소될 수 있다.
한편, 도 12b를 따르는 텍스쳐 처리 장치(900)는 도 12a를 따르는 텍스쳐 처리 장치(900)와 같이 LOD 가중치에 따라 밉맵에 대한 연산을 변경하면서, 제 1 연산기 및 제 2 연산기를 더 정교하게 선택할 수 있다.
도 12b을 참고하면, 텍스쳐 처리 장치(900)는 연산의 정밀도가 각각 8비트, 6 비트, 4 비트, 2 비트 및 0 비트인, 5 개의 연산기들을 이용하여 텍스쳐 필터링을 수행할 수 있다. 예를 들어, LOD 가중치가 0.25인 경우, 텍스쳐 처리 장치(900)는 연산의 정밀도가 4 비트인 연산기를 제 1 연산기로 결정하고, 연산의 정밀도가 8 비트인 연산기를 제 2 연산기로 결정할 수 있다. 또한, LOD 가중치가 0.95인 경우, 텍스쳐 처리 장치(900)는 연산의 정밀도가 8 비트인 연산기를 제 1 연산기로 결정하고, 연산의 정밀도가 0 비트인 연산기를 제 2 연산기로 결정할 수 있다. 이러한 경우, 텍스쳐 처리 장치(900)는 제 2 밉맵에 대해서 이중 선형 필터링 대신 포인트 필터링을 수행할 수 있다. 한편, 텍스쳐 처리 장치(900)는 포인트 필터링을 수행하는 연산기를 별도로 추가하지 않고, 다른 연산기들을 이용하여 포인트 필터링을 수행할 수 있다.
도 12b를 따르는 텍스쳐 처리 장치(900)는 도 12a를 따르는 텍스쳐 처리 장치(900)에 비하여 연산의 정밀도가 상이한 두 연산기들을 더 포함하기 때문에, LOD 가중치에 따라 제 1 연산기 및 제 2 연산기를 더 정교하게 선택할 수 있다. 하지만, 도 12a를 따르는 텍스쳐 처리 장치(900)에 비해, 텍스쳐 처리 장치(900)의 면적은 증가될 수 있다.
한편, 도 12a 내지 12b에서는 제 1 밉맵에 대해 포인트 필터링을 수행하는 것으로 결정하는 제 1 임계값을 0.1로 가정하고, 제 2 밉맵에 대해 포인트 필터링을 수행하는 것으로 결정하는 제 2 임계값을 0.9로 가정하였으나, 이는 설명의 편의를 위한 것일 뿐, 제 1 임계값 및 제 2 임계값은 이에 제한되지 않는다.
도 13은 일 실시예에 따른, 텍스쳐 필터링의 연산량 변화를 설명하기 위한 도면이다.
도 13은 연산의 정밀도가 8 비트인 두 연산기들을 이용한 삼중 선형 필터링의 최종 연산량이 100%일 때, 연산기 구성이 변함에 따라 최종 연산량이 감소하는 비율을 도시한 것이다. 한편, OpenGL의 RGBA 형식을 따르는 경우, 각 구성 요소(Red, Green, Blue, Alpha)는 각각 8 비트 정수형(integer type)으로 표현될 수 있다. 따라서, 연산량 비교를 위해, 텍스쳐 필터링에 이용되는 텍셀의 정밀도는 8 비트이고, 두 연산기 중 하나는 연산의 정밀도가 8 비트인 것이 전제된다.
도 13을 참고하면, 연산기 구성의 'a×b'에서, a와 b는 각각 텍셀의 정밀도와 연산의 정밀도를 의미한다. 또한, 'A+B'에서 A와 B는 각각 연산기 정밀도를 의미한다. 다시 말해서, 도 13은 두 연산기들을 이용하는 텍스쳐 처리 장치인 것이 전제되었으므로, 'a×b + c×d'로 표시될 수 있다. 예를 들어, 연산기 구성이 '8×8 + 8×6'인 경우, 각 연산기들의 연산의 정밀도는 각각 8 비트, 6 비트일 수 있다.
한편, 연산기 구성이 '8×8 및 8×4'이면, LOD 가중치에 따라 제 1 연산기 및 제 2 연산기를 달리하여 텍스쳐 필터링을 수행하는 최종 연산량이 78.5%일 수 있다. 따라서, 연산의 정밀도가 모두 8 비트인 두 연산기들을 이용할 때보다 21.5% 연산량이 감소될 수 있다.
또한, 연산기 구성이 '8×8 및 8×0'이면, LOD 가중치에 따라 제 1 연산기 및 제 2 연산기를 달리하여 텍스쳐 필터링을 수행하는 최종 연산량이 57.1%일 수 있다.
도 13을 참고하면, 텍스쳐 처리 장치(900)에 포함된 하나의 연산기에 의해 수행되는 연산의 정밀도가 감소되면, 최종 연산량이 감소될 수 있다. 또한, 최종 연산량이 감소되면, 전력 소비량도 감소될 수 있다. 더불어, 연산기 면적은 연산의 정밀도에 비례할 수 있으므로, 텍스쳐 처리 장치(900)는 연산의 정밀도에 따라 면적이 작은 연산기를 포함할 수 있다.
또한, 텍스쳐 처리 장치(900)는 연산의 정밀도가 동일한 두 연산기들에 일부 만을 사용하는 방식으로 기존 하드웨어를 이용하여 구현될 수 있다.
한편, 최종 연산량이 감소되면, 텍스쳐 필터링의 정확도가 감소될 수 있다. 즉, 연산기 구성에 포함되는 연산기의 연산의 정밀도가 감소하면, 오류 횟수가 증가한다. 도 13을 참고하면, 오류 최대치는 OpenGL ES 3.2 적합성 테스트를 수행했을 때, 변수의 최소치 또는 최대치를 벗어나는 오류 횟수를 의미한다. 한편, RGBA 형식의 각 구성요소가 8 비트인 경우, 오류 횟수가 8회 이하일 때 OpenGL ES 3.2 적합성 테스트를 통과할 수 있다.
따라서, 최종 연산량 비율과 오류 최대치를 고려하면, 연산의 정밀도가 4 비트인 연산기를 포함하는 연산기 구성(1310)이 OpenGL ES 3.2 적합성 테스트 기준을 만족하면서, 연산량이 제일 작은 연산기 구성으로 판단될 수 있다. 한편, 텍스쳐 처리 장치(900)의 연산기 구성은 요구되는 품질에 기초하여 결정될 수 있다. 예를 들어, 텍스쳐 처리 장치(900)에는 최종 연산량을 더 줄일 수 있는 연산기 구성이 적용될 수 있고, 오류 횟수를 더 줄일 수 있는 연산기 구성이 적용될 수 있다.
도 14는 일 실시예에 따라, 텍스쳐 처리 방법을 도시한 흐름도이다.
단계 1410에서, 제어부(910)는 그래픽의 LOD 값에 따라 결정되는 제 1 밉맵(510)과 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도를 나타내는 LOD 가중치에 기초하여, 제 1 밉맵(510)에 관한 연산을 수행하는 제 1 연산기와 제 2 밉맵(520)에 관한 연산을 수행하는 제 2 연산기를 결정할 수 있다. 이때, 제 1 연산기에 의해 수행되는 연산의 정밀도는 제 2 연산기에 의해 수행되는 연산의 정밀도와 상이할 수 있다.
또한, LOD 가중치에 따라, 제 1 밉맵(510)에 관한 연산에 이용되는 가중치와 제 2 밉맵(520)에 관한 연산에 이용되는 가중치가 변할 수 있다.
또한, 제어부(910)는 LOD 가중치의 범위를 복수의 구간으로 분할하고, LOD 가중치가 속하는 구간에 따라 제 1 연산기와 제 2 연산기를 결정할 수 있다.
또한, 제어부(910)는 텍스쳐 필터(920)에 포함되는 연산기들의 연산의 정밀도에 따른 조합 수에 기초하여, LOD 가중치의 범위를 분할할 수 있다.
또한, 제어부(910)는 제 1 밉맵(510)이 텍스쳐 필터링에 관여하는 정도가 증가할수록, 연산의 정밀도가 높은 연산기를 제 1 연산기로 결정할 수 있다.
또한, 제어부(910)는 제 1 밉맵(510)이 제 2 밉맵(520)보다 텍스쳐 필터링에 관여하는 정도가 증가하면, 제 2 연산기의 연산의 정밀도보다 더 높은 연산의 정밀도를 갖는 연산기를 제 1 연산기로 결정할 수 있다.
한편, 제 1 밉맵(510)과 제 2 밉맵(520)이 텍스쳐 필터링에 관여하는 정도의 차이가 증가할수록, 제 1 연산기의 연산의 정밀도와 제 2 연산기의 연산의 정밀도간 차이는 증가할 수 있다.
단계 1420에서, 텍스쳐 필터(920)는 제 1 연산기와 상기 제 2 연산기를 이용하여 텍스쳐 필터링을 수행할 수 있다.
또한, LOD 가중치가 속하는 구간이 LOD 가중치의 최대치 또는 최소치를 포함하는 구간이면, 제 1 연산기와 제 2 연산기 중 어느 하나는 제 1 밉맵(510)과 제 2 밉맵(520) 중 텍스쳐 필터링에 관여하는 정도가 작은 밉맵에 포함된 텍셀 값을 출력할 수 있다.
또한, 제어부(910)는 LOD 가중치에 기초하여, 제 1 밉맵(510)에 관한 연산의 정밀도와 제 2 밉맵(520)에 관한 연산의 정밀도를 결정할 수 있고, 텍스쳐 필터(920)는 결정된 연산의 정밀도에 기초하여, 제 1 연산기의 연산의 정밀도와 제 2 연산기의 연산의 정밀도를 변경할 수 있다.
도 15는 일 실시예에 따라, 텍스쳐 처리 방법을 도시한 상세 흐름도이다.
도 15는 도 12를 따르는 텍스쳐 처리 장치(900)가 텍스쳐를 처리하는 방법을 상세하게 설명하기 위한 도면으로, 텍스쳐 처리 장치(900)의 연산기 구성에 따라 텍스쳐 필터링을 수행하는 방법이 달라질 수 있음은 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
단계 1510에서, 제어부(910)는 쿼드 정보를 수신할 수 있다. 이때, 쿼드(quad)는 텍스쳐를 맵핑시킬 픽셀들의 단위이며, 2×2 픽셀들의 집합으로 나타낼 수 있다. 또한, 쿼드 정보는 텍스쳐 요청에 포함되어, 쉐이더 코어(1020)로부터 수신될 수 있다.
단계 1520에서, 제어부(910)는 쿼드 정보에 기초하여 LOD 가중치를 계산하고, 텍스쳐 필터링에 이용되는 제 1 밉맵(510) 및 제 2 밉맵(520)을 결정할 수 있다.
단계 1530에서, 제어부(910)는 LOD 가중치가 0.1 보다 작은지를 판단할 수 있다. 만약, LOD 가중치가 0.1보다 작으면 단계 1540이 수행될 수 있고, 그렇지 않으면 단계 1550이 수행될 수 있다.
단계 1540에서, 텍스쳐 처리 장치(900)는 연산의 정밀도가 8 비트인 연산기로 제 2 밉맵(520)에 대해 이중 선형 필터링을 수행하고, 제 1 밉맵(510)에 대해 포인트 필터링 수행할 수 있다. 즉, LOD 가중치가 0.1보다 작으면, 텍스쳐 처리 장치(900)는 연산량을 줄이기 위해, 텍스쳐 필터링에 관여하는 정도가 상대적으로 큰 제 2 밉맵(520)에 대해서만 이중 선형 필터링을 수행하고, 제 1 밉맵(510)에 대해서는 포인트 필터링을 수행할 수 있다.
단계 1550에서, 제어부(910)는 LOD 가중치가 0.9 보다 큰지를 판단할 수 있다. 만약, LOD 가중치가 0.9보다 크면 단계 1560이 수행될 수 있고, 그렇지 않으면 단계 1570이 수행될 수 있다.
단계 1560에서, 텍스쳐 처리 장치(900)는 연산의 정밀도가 8 비트인 연산기로 제 1 밉맵(510)에 대해 이중 선형 필터링을 수행하고, 제 2 밉맵(520)에 대해 포인트 필터링 수행할 수 있다. 즉, LOD 가중치가 0.9보다 크면, 텍스쳐 처리 장치(900)는 연산량을 줄이기 위해, 텍스쳐 필터링에 관여하는 정도가 상대적으로 큰 제 1 밉맵(510)에 대해서만 이중 선형 필터링을 수행하고, 제 2 밉맵(520)에 대해서는 포인트 필터링을 수행할 수 있다.
단계 1570에서, 제어부(910)는 LOD 가중치에 따라 제 1 연산기 및 제 2 연산기를 결정할 수 있다. 제 1 연산기는 제 1 밉맵(510)에 관한 연산을 수행하는 연산기를 의미하고, 제 2 연산기는 제 2 밉맵(520)에 관한 연산을 수행하는 연산기를 의미한다. 이때 제 1 연산기에 의해 수행되는 연산의 정밀도와 제 2 연산기에 의해 수행되는 연산의 정밀도는 상이할 수 있다. 또한, 제 1 밉맵(510)에 관한 연산에 이용되는 가중치의 정밀도와 제 2 밉맵(520)에 관한 연산에 이용되는 가중치의 정밀도가 상이할 수 있다. 각 가중치의 정밀도가 상이하면, 가중치를 표현하는 비트의 수가 달라지기 때문에, 가중치가 변할 수 있다.
예를 들어, LOD 가중치가 0.5 보다 큰 경우, 연산의 정밀도가 8 비트인 연산기가 제 1 연산기로 결정될 수 있고, 연산의 정밀도가 4 비트인 연산기가 제 2 연산기로 결정될 수 있다.
단계 1580에서, 텍스쳐 필터(920)는 제 1 연산기 및 제 2 연산기를 이용하여, 제 1 밉맵(510)과 제 2 밉맵(520)에 대한 이중 선형 필터링을 수행할 수 있다.
단계 1590에서, 텍스쳐 필터(920)는 제 1 밉맵(510)과 제 2 밉맵(520)에 대한 필터링 결과와 LOD 가중치를 이용하여 삼중 선형 필터링을 수행할 수 있다.
본 실시예들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 실시예의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 그래픽의 LOD(level of detail) 값에 따라 결정되는 제 1 밉맵(mipmap)과 제 2 밉맵이 텍스쳐 필터링에 관여하는 정도를 나타내는 LOD 가중치에 기초하여, 상기 제 1 밉맵에 관한 연산을 수행하는 제 1 연산기와 상기 제 2 밉맵에 관한 연산을 수행하는 제 2 연산기를 결정하는, 제어부; 및
    상기 제 1 연산기와 상기 제 2 연산기를 이용하여 텍스쳐 필터링을 수행하는, 텍스쳐 필터;
    를 포함하고,
    상기 제 1 연산기에 의해 수행되는 연산의 정밀도(precision)는 상기 제 2 연산기에 의해 수행되는 연산의 정밀도와 상이한, 텍스쳐 처리 장치.
  2. 제 1 항에 있어서,
    상기 LOD 가중치에 따라, 상기 제 1 밉맵에 관한 연산에 이용되는 가중치와 상기 제 2 밉맵에 관한 연산에 이용되는 가중치가 변하는, 텍스쳐 처리 장치.
  3. 제 1 항에 있어서,
    상기 제어부는,
    상기 LOD 가중치의 범위를 복수의 구간으로 분할하고, 상기 LOD 가중치가 속하는 구간에 따라 상기 제 1 연산기와 상기 제 2 연산기를 결정하는, 텍스쳐 처리 장치.
  4. 제 3 항에 있어서,
    상기 제어부는,
    상기 텍스쳐 필터에 포함되는 연산기들의 연산의 정밀도에 따른 조합 수에 기초하여, 상기 LOD 가중치의 범위를 분할하는, 텍스쳐 처리 장치.
  5. 제 3 항에 있어서,
    상기 LOD 가중치가 속하는 구간이 상기 LOD 가중치의 최대치 또는 최소치를 포함하는 구간이면, 상기 제 1 연산기와 상기 제 2 연산기 중 어느 하나는 상기 제 1 밉맵과 상기 제 2 밉맵 중 상기 텍스쳐 필터링에 관여하는 정도가 작은 밉맵에 포함된 텍셀 값을 출력하는, 텍스쳐 처리 장치.
  6. 제 1 항에 있어서,
    상기 제어부는,
    상기 제 1 밉맵이 상기 텍스쳐 필터링에 관여하는 정도가 증가할수록, 연산의 정밀도가 높은 연산기를 상기 제 1 연산기로 결정하는, 텍스쳐 처리 장치.
  7. 제 1 항에 있어서,
    상기 제어부는,
    상기 제 1 밉맵이 상기 제 2 밉맵보다 상기 텍스쳐 필터링에 관여하는 정도가 증가하면, 상기 제 2 연산기의 연산의 정밀도보다 더 높은 연산의 정밀도를 갖는 연산기를 상기 제 1 연산기로 결정하는, 텍스쳐 처리 장치.
  8. 제 1 항에 있어서,
    상기 제 1 밉맵과 상기 제 2 밉맵이 상기 텍스쳐 필터링에 관여하는 정도의 차이가 증가할수록, 상기 제 1 연산기의 연산의 정밀도와 상기 제 2 연산기의 연산의 정밀도간 차이가 증가하는, 텍스쳐 처리 장치.
  9. 제 1 항에 있어서,
    상기 제어부는 상기 LOD 가중치에 기초하여, 상기 제 1 밉맵에 관한 연산의 정밀도와 상기 제 2 밉맵에 관한 연산의 정밀도를 결정하고,
    상기 텍스쳐 필터는 상기 결정된 연산의 정밀도에 기초하여, 상기 제 1 연산기의 연산의 정밀도와 상기 제 2 연산기의 연산의 정밀도를 변경하는, 텍스쳐 처리 장치.
  10. 제 1 항에 있어서,
    상기 제 1 연산기과 상기 제 2 연산기의 면적은 연산의 정밀도에 비례하는, 텍스쳐 처리 장치.
  11. 그래픽의 LOD(level of detail) 값에 따라 결정되는 제 1 밉맵(mipmap)과 제 2 밉맵이 텍스쳐 필터링에 관여하는 정도를 나타내는 LOD 가중치에 기초하여, 상기 제 1 밉맵에 관한 연산을 수행하는 제 1 연산기와 상기 제 2 밉맵에 관한 연산을 수행하는 제 2 연산기를 결정하는 단계; 및
    상기 제 1 연산기와 상기 제 2 연산기를 이용하여 텍스쳐 필터링을 수행하는 단계;
    를 포함하고,
    상기 제 1 연산기에 의해 수행되는 연산의 정밀도(precision)는 상기 제 2 연산기에 의해 수행되는 연산의 정밀도와 상이한, 텍스쳐 처리 방법.
  12. 제 11 항에 있어서,
    상기 LOD 가중치에 따라, 상기 제 1 밉맵에 관한 연산에 이용되는 가중치와 상기 제 2 밉맵에 관한 연산에 이용되는 가중치가 변하는, 텍스쳐 처리 방법.
  13. 제 11 항에 있어서,
    상기 제 1 연산기와 상기 제 2 연산기를 결정하는 단계는,
    상기 LOD 가중치의 범위를 복수의 구간으로 분할하는 단계; 및
    상기 LOD 가중치가 속하는 구간에 따라 상기 제 1 연산기와 상기 제 2 연산기를 결정하는 단계;
    를 포함하는, 텍스쳐 처리 방법.
  14. 제 13 항에 있어서,
    상기 LOD 가중치의 범위를 복수의 구간으로 분할하는 단계는,
    텍스쳐 필터에 포함되는 연산기들의 연산의 정밀도에 따른 조합 수에 기초하여, 상기 LOD 가중치의 범위를 분할하는 단계인, 텍스쳐 처리 방법.
  15. 제 13 항에 있어서,
    상기 텍스쳐 필터링을 수행하는 단계는,
    상기 LOD 가중치가 속하는 구간이 상기 LOD 가중치의 최대치 또는 최소치를 포함하는 구간이면,
    상기 제 1 연산기와 상기 제 2 연산기 중 어느 하나에 의해, 상기 제 1 밉맵과 상기 제 2 밉맵 중 상기 텍스쳐 필터링에 관여하는 정도가 작은 밉맵에 포함된 텍셀 값을 출력하는 단계;
    를 포함하는, 텍스쳐 처리 방법.
  16. 제 11 항에 있어서,
    상기 제 1 연산기와 상기 제 2 연산기를 결정하는 단계는,
    상기 제 1 밉맵이 상기 텍스쳐 필터링에 관여하는 정도가 증가할수록, 연산의 정밀도가 높은 연산기를 상기 제 1 연산기로 결정하는 단계;
    를 포함하는, 텍스쳐 처리 방법.
  17. 제 11 항에 있어서,
    상기 제 1 연산기와 상기 제 2 연산기를 결정하는 단계는,
    상기 제 1 밉맵이 상기 제 2 밉맵보다 상기 텍스쳐 필터링에 관여하는 정도가 증가하면, 상기 제 2 연산기의 연산의 정밀도보다 더 높은 연산의 정밀도를 갖는 연산기를 상기 제 1 연산기로 결정하는 단계;
    를 포함하는, 텍스쳐 처리 방법.
  18. 제 11 항에 있어서,
    상기 제 1 밉맵과 상기 제 2 밉맵이 상기 텍스쳐 필터링에 관여하는 정도의 차이가 증가할수록, 상기 제 1 연산기의 연산의 정밀도와 상기 제 2 연산기의 연산의 정밀도간 차이는 증가하는, 텍스쳐 처리 방법.
  19. 제 11 항에 있어서,
    상기 제 1 연산기와 상기 제 2 연산기를 결정하는 단계는,
    상기 LOD 가중치에 기초하여, 상기 제 1 밉맵에 관한 연산의 정밀도와 상기 제 2 밉맵에 관한 연산의 정밀도를 결정하는 단계;
    를 포함하고,
    상기 텍스쳐 필터링을 수행하는 단계는,
    상기 결정된 연산의 정밀도에 기초하여, 상기 제 1 연산기의 연산의 정밀도와 상기 제 2 연산기의 연산의 정밀도를 변경하는 단계;
    를 포함하는, 텍스쳐 처리 방법.
  20. 제 11 항 내지 제 19항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020160145215A 2016-11-02 2016-11-02 텍스쳐 처리 방법 및 장치 KR20180048081A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020160145215A KR20180048081A (ko) 2016-11-02 2016-11-02 텍스쳐 처리 방법 및 장치
US15/609,828 US10176600B2 (en) 2016-11-02 2017-05-31 Texture processing method and unit
EP17178573.6A EP3319046B1 (en) 2016-11-02 2017-06-29 Texture processing method and unit
JP2017154335A JP6944304B2 (ja) 2016-11-02 2017-08-09 テクスチャ処理方法及びその装置
CN201710785751.2A CN108022282B (zh) 2016-11-02 2017-09-04 纹理处理方法和单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160145215A KR20180048081A (ko) 2016-11-02 2016-11-02 텍스쳐 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20180048081A true KR20180048081A (ko) 2018-05-10

Family

ID=59258038

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160145215A KR20180048081A (ko) 2016-11-02 2016-11-02 텍스쳐 처리 방법 및 장치

Country Status (5)

Country Link
US (1) US10176600B2 (ko)
EP (1) EP3319046B1 (ko)
JP (1) JP6944304B2 (ko)
KR (1) KR20180048081A (ko)
CN (1) CN108022282B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020036244A1 (ko) * 2018-08-13 2020-02-20 엘지전자 주식회사 모바일 디바이스 및 그 제어 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US12039660B1 (en) * 2021-03-31 2024-07-16 Apple Inc. Rendering three-dimensional content based on a viewport

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU717344B2 (en) * 1995-11-27 2000-03-23 Sun Microsystems, Inc. Texture mapping method and apparatus
US6304268B1 (en) 1997-06-26 2001-10-16 S3 Graphics Co., Ltd. Trilinear texture filtering of two levels of detail based on a single level of detail
US5922043A (en) * 1997-07-30 1999-07-13 Lsi Logic Corporation Reduced hardware linear interpolator
JP2001022948A (ja) * 1999-07-08 2001-01-26 Sega Corp 画像処理装置および画像処理方法、並びに記録媒体
US20030030646A1 (en) 2001-08-10 2003-02-13 Yeh Kwo-Woei Trilinear texture filtering method with proper texel selection
US6995767B1 (en) 2003-07-31 2006-02-07 Nvidia Corporation Trilinear optimization for texture filtering
US7079156B1 (en) 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
US7538773B1 (en) * 2004-05-14 2009-05-26 Nvidia Corporation Method and system for implementing parameter clamping to a valid range in a raster stage of a graphics pipeline
US7355603B2 (en) 2004-08-04 2008-04-08 Nvidia Corporation Filtering unit for floating-point texture data
JP2006244426A (ja) * 2005-03-07 2006-09-14 Sony Computer Entertainment Inc テクスチャ処理装置、描画処理装置、およびテクスチャ処理方法
US20070008333A1 (en) 2005-07-07 2007-01-11 Via Technologies, Inc. Texture filter using parallel processing to improve multiple mode filter performance in a computer graphics environment
US7436412B2 (en) * 2005-08-24 2008-10-14 Qualcomm Incorporated Graphics engine with efficient interpolation
US7948500B2 (en) * 2007-06-07 2011-05-24 Nvidia Corporation Extrapolation of nonresident mipmap data using resident mipmap data
KR101508388B1 (ko) * 2008-12-15 2015-04-06 엘지전자 주식회사 밉맵 생성 장치 및 방법
TWI528328B (zh) * 2012-04-20 2016-04-01 財團法人資訊工業策進會 依據貼圖影像內容決定選擇細節層次之三維貼圖處理方法、裝置以及儲存其之電腦可讀取記錄媒體
US9367948B2 (en) 2013-11-14 2016-06-14 Intel Corporation Flexible filter logic for multi-mode filtering of graphical texture data
KR102258100B1 (ko) * 2014-11-18 2021-05-28 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US9646359B2 (en) * 2014-12-23 2017-05-09 Qualcomm Incorporated Indefinite texture filter size for graphics processing
KR102477264B1 (ko) * 2015-09-22 2022-12-13 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치
KR102503210B1 (ko) * 2015-10-13 2023-02-23 삼성전자 주식회사 텍스처 필터링하는 방법 및 이를 위한 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020036244A1 (ko) * 2018-08-13 2020-02-20 엘지전자 주식회사 모바일 디바이스 및 그 제어 방법
KR20200019028A (ko) * 2018-08-13 2020-02-21 엘지전자 주식회사 모바일 디바이스 및 그 제어 방법
US11216989B2 (en) 2018-08-13 2022-01-04 Lg Electronics Inc. Mobile device and method for controlling same

Also Published As

Publication number Publication date
EP3319046A1 (en) 2018-05-09
EP3319046B1 (en) 2020-09-16
CN108022282A (zh) 2018-05-11
JP6944304B2 (ja) 2021-10-06
CN108022282B (zh) 2021-12-28
US20180122104A1 (en) 2018-05-03
US10176600B2 (en) 2019-01-08
JP2018073388A (ja) 2018-05-10

Similar Documents

Publication Publication Date Title
US10134175B2 (en) Gradient adjustment for texture mapping to non-orthonormal grid
EP3748584B1 (en) Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
JP7096661B2 (ja) キューブマップをテクスチャリングするためのlodを決定する方法、装置、コンピュータプログラム及び記録媒体
US10388033B2 (en) Texture processing apparatus and method
US10152765B2 (en) Texture processing method and unit
US9530241B2 (en) Clipping of graphics primitives
US11238639B2 (en) Gradient adjustment for texture mapping to non-orthonormal grid
CN113781289A (zh) 图形处理
JP6944304B2 (ja) テクスチャ処理方法及びその装置
KR20160032597A (ko) 텍스쳐를 처리하는 방법 및 장치
KR102512521B1 (ko) 텍스쳐 처리 방법 및 장치
KR20180037838A (ko) 텍스쳐를 처리하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination