[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102477265B1 - 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법 - Google Patents

그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법 Download PDF

Info

Publication number
KR102477265B1
KR102477265B1 KR1020150135551A KR20150135551A KR102477265B1 KR 102477265 B1 KR102477265 B1 KR 102477265B1 KR 1020150135551 A KR1020150135551 A KR 1020150135551A KR 20150135551 A KR20150135551 A KR 20150135551A KR 102477265 B1 KR102477265 B1 KR 102477265B1
Authority
KR
South Korea
Prior art keywords
pixels
upper block
texture coordinates
quads
distance
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020150135551A
Other languages
English (en)
Other versions
KR20170036419A (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 KR1020150135551A priority Critical patent/KR102477265B1/ko
Priority to US15/073,731 priority patent/US9898838B2/en
Priority to EP16166069.1A priority patent/EP3147866B1/en
Priority to JP2016184079A priority patent/JP2017062789A/ja
Priority to CN201610836335.6A priority patent/CN107016716B/zh
Publication of KR20170036419A publication Critical patent/KR20170036419A/ko
Application granted granted Critical
Publication of KR102477265B1 publication Critical patent/KR102477265B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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)

Abstract

그래픽스 프로세싱 장치에서 텍스쳐링을 위한 LOD를 결정하는 방법은, 복수의 쿼드들 중 레퍼런스 쿼드를 결정하고, 레퍼런스 쿼드의 텍스쳐 좌표들을 이용하여 레퍼런스 쿼드와 레퍼런스 쿼드를 포함하는 블록 간의 유사성을 판단하고, 유사성 판단 결과에 기초하여 레퍼런스 쿼드에 대한 LOD를, 주변 쿼드들에 대한 LOD들로 결정한다.

Description

그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법{Graphics processing apparatus and method for determining LOD (level of detail) for texturing of graphics pipeline thereof}
그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD를 결정하는 방법에 관한다.
3차원 그래픽 시스템에서 보다 현실감 있는 영상을 얻기 위한 방법의 일환으로 텍스쳐링 또는 텍스쳐 맵핑(texture mapping) 기술이 활용되고 있다. 텍스쳐링 또는 텍스쳐 맵핑이란, 3차원 물체의 표면에 질감을 주기 위해 2차원 이미지를 3차원 물체 표면에 입히는 것을 의미한다. 여기서, 텍스쳐는 2차원 이미지를 의미하고, 텍스쳐 내의 각 점들은 텍셀(texel)로서 스크린 스페이스 상의 픽셀에 대응한다. 3차원 그래픽스 파이프라인이 수행되면서 2차원 스크린 스페이스의 각 픽셀에 대응되는 3차원 스페이스 상의 오브젝트 표면이 결정되면, 오브젝트 표면에 해당하는 텍스쳐 좌표를 갖는 텍셀들이 계산되고 이에 따라 픽셀과 텍셀 간의 텍스쳐 매핑이 수행될 수 있다.
그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD를 결정하는 방법을 제공하는데 있다. 본 실시예들이 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따르면, 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법은, 상위 블록에 포함된 픽셀들에 대한 텍스쳐 좌표 데이터를 획득하는 단계; 상기 상위 블록에 포함된 복수의 쿼드들 중 레퍼런스 쿼드를 결정하는 단계; 상기 결정된 레퍼런스 쿼드 및 상기 상위 블록에 대한 텍스쳐 좌표들을 이용하여 상기 결정된 레퍼런스 쿼드와 상기 상위 블록의 유사성을 판단하는 단계; 및 상기 결정된 레퍼런스 쿼드와 상기 상위 블록이 유사하다고 판단된 경우, 상기 결정된 레퍼런스 쿼드에 대한 LOD를, 상기 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들로 결정하는 단계를 포함한다.
또한, 상기 유사성을 판단하는 단계는 상기 결정된 레퍼런스 쿼드의 두 픽셀들에 대응되는 제 1 텍스쳐 좌표들간의 제 1 거리와, 상기 상위 블록의 두 모서리들에 위치한 두 픽셀들에 대응되는 제 2 텍스쳐 좌표들간의 제 2 거리를 이용하여 상기 유사성을 판단한다.
또한, 상기 제 1 텍스쳐 좌표들은 상기 결정된 레퍼런스 쿼드의 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리를 갖는 두 텍스쳐 좌표들이다.
또한, 상기 제 2 텍스쳐 좌표들은 상기 상위 블록의 네 모서리들에 위치한 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리를 갖는 두 텍스쳐 좌표들이다.
또한, 상기 유사성을 판단하는 단계는 상기 결정된 레퍼런스 쿼드의 상기 두 픽셀들과 상기 상위 블록의 상기 두 모서리들에 위치한 상기 두 픽셀들이 서로 대응되는 위치들의 픽셀들인 경우에, 상기 제 1 거리 및 상기 제 2 거리를 이용하여 상기 유사성을 판단한다.
또한, 상기 유사성을 판단하는 단계는 상기 결정된 레퍼런스 쿼드에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 1 텍스쳐 좌표들에 대응되는 두 픽셀들과, 상기 상위 블록의 네 모서리들에 위치한 픽셀들에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 2 텍스쳐 좌표들에 대응되는 두 픽셀들이, 서로 대응되는 위치들의 픽셀들인지 여부를 판단하는 단계; 및 상기 대응되는 위치들의 픽셀들로 판단된 경우, 상기 제 1 텍스쳐 좌표들간의 상기 최대 거리인 제 1 거리와 상기 제 2 텍스쳐 좌표들간의 상기 최대 거리인 제 2 거리를 이용하여 상기 유사성을 판단하는 단계를 포함한다.
또한, 상기 유사성을 판단하는 단계는 상기 제 1 거리에 N(N은 자연수)을 곱한 값과 상기 제 2 거리 간의 차이의 절대값이 임계값보다 작은 경우, 상기 결정된 레퍼런스 쿼드와 상기 상위 블록은 유사하다고 판단한다.
또한, 상기 N은 상기 상위 블록에서 상기 제 2 텍스쳐 좌표들에 대응되는 상기 두 픽셀들 사이에 존재하는 픽셀들의 개수에 기초한 값이다.
또한, 상기 상위 블록은 8개의 픽셀들의 1×2 쿼드들, 8개의 픽셀들의 2×1 쿼드들, 16개의 픽셀들의 2×2 쿼드들, 32개의 픽셀들의 4×2 쿼드들, 32개의 픽셀들의 2×4 쿼드들 및 64개의 픽셀들의 4×4 쿼드들 중 어느 하나를 포함하는 블록이다.
또한, 상기 결정된 레퍼런스 쿼드는 상기 상위 블록에 포함된 쿼드들 중, 상기 상위 블록의 중심에 가깝게 위치한 쿼드이다.
또한, 상기 결정된 레퍼런스 쿼드와 상기 상위 블록이 유사하지 않다고 판단된 경우, 상기 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들은 상기 결정된 레퍼런스 쿼드에 대한 상기 LOD와 별도로 개별적으로 결정된다.
다른 측면에 따르면, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또 다른 측면에 따르면, 그래픽스 프로세싱 장치는, 상위 블록에 포함된 픽셀들에 대한 텍스쳐 좌표 데이터를 획득하는 획득부; 상기 상위 블록에 포함된 복수의 쿼드들 중 레퍼런스 쿼드를 결정하는 레퍼런스 쿼드 결정부; 상기 결정된 레퍼런스 쿼드 및 상기 상위 블록에 대한 텍스쳐 좌표들을 이용하여 상기 결정된 레퍼런스 쿼드와 상기 상위 블록의 유사성을 판단하는 유사성 판단부; 및 상기 결정된 레퍼런스 쿼드와 상기 상위 블록이 유사하다고 판단된 경우, 상기 결정된 레퍼런스 쿼드에 대한 LOD(level of detail)를, 상기 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들로 결정하는 LOD 결정부를 포함한다.
또한, 상기 유사성 판단부는 상기 결정된 레퍼런스 쿼드의 두 픽셀들에 대응되는 제 1 텍스쳐 좌표들간의 제 1 거리와, 상기 상위 블록의 두 모서리들에 위치한 두 픽셀들에 대응되는 제 2 텍스쳐 좌표들간의 제 2 거리를 이용하여 상기 유사성을 판단한다.
또한, 상기 제 1 텍스쳐 좌표들은 상기 결정된 레퍼런스 쿼드의 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리를 갖는 두 텍스쳐 좌표들이고, 상기 제 2 텍스쳐 좌표들은 상기 상위 블록의 네 모서리들에 위치한 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리를 갖는 두 텍스쳐 좌표들이다.
또한, 상기 유사성 판단부는 상기 결정된 레퍼런스 쿼드의 상기 두 픽셀들과 상기 상위 블록의 상기 두 모서리들에 위치한 상기 두 픽셀들이 서로 대응되는 위치들의 픽셀들인 경우에, 상기 제 1 거리 및 상기 제 2 거리를 이용하여 상기 유사성을 판단한다.
또한, 상기 유사성 판단부는 상기 결정된 레퍼런스 쿼드에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 1 텍스쳐 좌표들에 대응되는 두 픽셀들과, 상기 상위 블록의 네 모서리들에 위치한 픽셀들에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 2 텍스쳐 좌표들에 대응되는 두 픽셀들이, 서로 대응되는 위치들의 픽셀들인지 여부를 판단하고, 상기 대응되는 위치들의 픽셀들로 판단된 경우, 상기 제 1 텍스쳐 좌표들간의 상기 최대 거리인 제 1 거리와 상기 제 2 텍스쳐 좌표들간의 상기 최대 거리인 제 2 거리를 이용하여 상기 유사성을 판단한다.
또한, 상기 유사성 판단부는 상기 제 1 거리에 N(N은 자연수)을 곱한 값과 상기 제 2 거리 간의 차이의 절대값이 임계값보다 작은 경우, 상기 결정된 레퍼런스 쿼드와 상기 상위 블록은 유사하다고 판단하고, 상기 N은 상기 상위 블록에서 상기 제 2 텍스쳐 좌표들에 대응되는 상기 두 픽셀들 사이에 존재하는 픽셀들의 개수에 기초한 값이다.
또한, 상기 상위 블록은 8개의 픽셀들의 1×2 쿼드들, 8개의 픽셀들의 2×1 쿼드들, 16개의 픽셀들의 2×2 쿼드들, 32개의 픽셀들의 4×2 쿼드들, 32개의 픽셀들의 2×4 쿼드들 및 64개의 픽셀들의 4×4 쿼드들 중 어느 하나를 포함하는 블록이다.
또한, 상기 LOD 결정부는 상기 결정된 레퍼런스 쿼드와 상기 상위 블록이 유사하지 않다고 판단된 경우, 상기 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들을 상기 결정된 레퍼런스 쿼드에 대한 상기 LOD와 별도로 개별적으로 결정한다.
LOD 계산을 위한 프로세서의 연산량을 감소시킬 수 있고 프로세서의 처리 속도도 증대시킬 수 있다.
도 1은 일 실시예에 따른, 컴퓨팅 시스템의 블록도이다.
도 2는 GPU에 의해 처리되는 그래픽스 파이프라인을 설명하는 도면이다.
도 3은 픽셀과 텍스쳐의 매핑을 설명하기 위한 도면이다.
도 4는 밉맵을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 쿼드를 설명하기 위한 도면이다.
도 6은 쿼드들을 이용하여 스크린 스페이스 상의 픽셀들에 대응되는 텍스쳐를 매핑하는 것을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 그래픽스 프로세싱 장치의 하드웨어 구성을 도시한 블록도이다.
도 8은 일 실시예에 따른 2×2 쿼드들을 포함하는 상위 블록을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 다른 타입들의 상위 블록들을 설명하기 위한 도면이다.
도 10은 일 실시예에 따라 레퍼런스 쿼드를 설명하기 위한 도면이다.
도 11은 일 실시예에 따라 레퍼런스 쿼드 및 상위 블록 각각에 포함된 픽셀들과 텍스쳐들 간의 관계를 설명하기 위한 도면이다.
도 12는 일 실시예에 따라 상위 블록과 레퍼런스 쿼드 간의 유사성을 판단하는 것을 설명하기 위한 도면이다.
도 13은 일 실시예에 따라 레퍼런스 쿼드 및 상위 블록이 유사하다고 판단된 경우 상위 블록에 포함된 쿼드들의 LOD를 결정하는 것을 설명하기 위한 도면이다.
도 14는 일 실시예에 따른 4×2 쿼드들의 상위 블록을 이용하여 LOD를 결정하는 것을 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 4×4 쿼드들의 상위 블록을 이용하여 LOD를 결정하는 것을 설명하기 위한 도면이다.
도 16은 일 실시예에 따라 레퍼런스 쿼드와 상위 블록이 유사하지 않다고 판단될 경우를 설명하기 위한 도면이다.
도 17은 다른 일 실시예에 따라 레퍼런스 쿼드 대신에, 레퍼런스 픽셀들을 이용하여 상위 블록에 포함된 2×2 쿼드들의 LOD들을 결정하는 것을 설명하기 위한 도면이다.
도 18은 다른 일 실시예에 따라 레퍼런스 쿼드 대신에, 레퍼런스 픽셀들을 이용하여 상위 블록에 포함된 4×4 쿼드들의 LOD들을 결정하는 것을 설명하기 위한 도면이다.
도 19는 일 실시예에 따른, 그래픽스 프로세싱 장치에서 텍스쳐링을 위한 LOD를 결정하는 방법의 흐름도이다.
도 20은 도 19의 LOD 결정 방법의 상세 흐름도이다.
본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 기술분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 임의로 선정된 용어도 있으며, 이 경우 해당 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
실시예들에 대한 설명들에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 구성요소를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 실시예들에 기재된 “...부”, “...모듈”의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 실시예들에서 사용되는 “구성된다” 또는 “포함한다” 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 도는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
하기 실시예들에 대한 설명은 권리범위를 제한하는 것으로 해석되지 말아야 하며, 해당 기술분야의 당업자가 용이하게 유추할 수 있는 것은 실시예들의 권리범위에 속하는 것으로 해석되어야 할 것이다. 이하 첨부된 도면들을 참조하면서 오로지 예시를 위한 실시예들을 상세히 설명하기로 한다.
도 1은 일 실시예에 따른, 컴퓨팅 시스템의 블록도이다.
도 1을 참고하면, 컴퓨팅 시스템(1)은 GPU(Graphic Processing Unit)(10), CPU(Central Processing Unit)(20), 메모리(30) 및 Bus(40)를 포함한다. GPU(10) 및 CPU(20)는 프로세싱 장치들에 해당되는 것들로서, 프로세싱 장치들의 범주에는 GPU(10) 및 CPU(20) 외에도 다른 종류의 프로세서들이 포함될 수 있다. 한편, 도 1에 도시된 컴퓨팅 시스템(1)에는 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
컴퓨팅 시스템(1)은 데스크탑 컴퓨터, 노트북 컴퓨터, 스마트폰, PDA (personal digital assistants), 휴대형 미디어 플레이어, 비디오 게임용 콘솔, 텔레비젼 셋탑 박스, 태블릿 디바이스, 이북 리더, 웨어러블 디바이스 등을 예로 들 수 있지만, 이에 제한되지 않는다. 즉, 이 밖에도 컴퓨팅 시스템(1)의 범주에는 다양한 장치들이 포함될 수 있다.
GPU(10) 및 CPU(20)와 같은 프로세싱 장치들은 각종 연산들을 처리하는 하드웨어에 해당된다. CPU(20)는 컴퓨팅 시스템(1)의 전반적인 기능들을 제어하는 하드웨어로 동작할 수 있고, 다른 구성요소들인 GPU(10) 및 메모리(30)를 제어할 수 있다. CPU(20)는 컴퓨팅 시스템(1)의 기능들을 제어하기 위한 다양한 종류의 연산들(operations)을 수행할 수 있다. GPU(10)는 3차원 또는 2차원 그래픽스 데이터를 처리하기 위하여, 컴퓨팅 시스템(1)의 그래픽 프로세싱 기능을 제어하는 하드웨어로 동작할 수 있다. 즉, GPU(10)는 OpenGL (Open Graphic(s) Library), DirectX, CUDA(Compute Unified Device Architecture) 등의 다양한 종류들의 그래픽스 파이프라인(101)을 수행하면서, 그래픽스 파이프라인(101)과 관련된 연산들(예를 들어, 쉐이딩(shading) 연산, 텍스쳐링(texturing) 연산 등)을 수행할 수 있다.
메모리(30)는, 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) 등과 같은 디바이스에 해당될 수 있다. 즉, 메모리(30)는 GPU(10) 또는 CPU(20)에서 처리가 완료된 데이터를 저장하거나, 또는 GPU(10) 또는 CPU(20)에서 실행될 데이터를 제공하는 디바이스에 해당될 수 있다. 예를 들어, 메모리(30)는 텍스쳐링 관련 데이터들을 저장하거나 제공할 수 있다.
Bus(40)는 컴퓨팅 장치(1) 내의 하드웨어들 간에 데이터를 송수신할 수 있도록 하드웨어들을 연결시켜 주는 하드웨어로서, Bus(40)는 예를 들어 PCI bus, PCI Express bus 등과 같은 다양한 종류들을 포함할 수 있다.
도 2는 GPU에 의해 처리되는 그래픽스 파이프라인을 설명하는 도면이다.
도 2를 참고하면, 그래픽스 파이프라인(도 1의 101)의 전 과정은 크게 기하(geometry) 변환, 래스터화(rasterization), 픽셀 쉐이딩(pixel shading)으로 구분될 수 있다.
201 단계는 버텍스들(vertices)을 생성하는 단계이다. 버텍스들은 3차원 그래픽스에 포함된 오브젝트(object)들을 나타내기 위해 생성된다.
202 단계는 생성된 버텍스들을 버텍스 쉐이딩(vertex shading)하는 단계이다. 버텍스 쉐이더는 201 단계에서 생성된 버텍스들의 위치들을 정의함으로써, 버텍스 쉐이딩을 수행할 수 있다.
203 단계는 프리미티브들을 생성하는 단계이다. 프리미티브는 하나 이상의 버텍스들을 이용하여 형성되는 점, 선, 다각형(polygon)등을 의미한다. 예를 들어, 프리미티브는 3개의 버텍스들이 연결된 삼각형일 수 있다.
204 단계는 프리미티브를 래스터라이징(rasterizing)하는 단계이다. 프리미티브의 래스터화(rasterization)는 프리미티브를 프레그먼트들(fragments)로 분할하는 것을 의미한다. 프레그먼트는 프리미티브에 대한 그래픽스 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터라이징을 통해 버텍스와 버텍스 사이의 프레그먼트들이 생성됨으로써, 3차원 그래픽스 처리가 수행될 수 있다.
205 단계는 픽셀들을 쉐이딩하는 단계이다. 래스터라이징에 의해 생성된, 프리미티브를 구성하는 프레그먼트들은 스크린 스페이스(screen space) 상의 픽셀들에 대응될 수 있다. 당해 분야에서, 프레그먼트와 픽셀이란 용어는 경우에 따라 혼용되어 사용되기도 한다. 예를 들어, 픽셀 쉐이더는 프레그먼트 쉐이더라고 호칭될 수도 있다. 일반적으로, 프리미티브를 구성하는 그래픽 처리의 기본 단위를 프레그먼트라고 지칭하고, 이후에 픽셀 쉐이딩에 의해 수행될 그래픽 처리의 기본 단위를 픽셀이라 지칭할 수 있다. 픽셀 쉐이딩에 의하여 픽셀들의 값들, 속성들 등(예를 들어 픽셀의 컬러)이 결정될 수 있다.
206 단계는 픽셀의 컬러를 결정하기 위한 텍스쳐링 단계이다. 텍스쳐링은 미리 준비된 텍스쳐들을 이용하여 픽셀들의 컬러들을 결정하는 과정을 의미할 수 있다. 다양한 컬러들과 패턴들이 픽셀들에서 표현되기 위해서는 모든 픽셀들의 컬러들이 각각 계산되고 결정되어야 한다. GPU(10)는 미리 준비된 텍스쳐들을 이용하여 픽셀들의 컬러들을 결정할 수 있다. 이때, 어느 픽셀들에 그려질 오브젝트의 크기에 적응적으로 대응할 수 있도록, 서로 다른 해상도들의 텍스쳐들이 미리 정의되어 준비될 수 있다. 서로 다른 해상도들을 갖는, 미리 정의된 텍스쳐들을 밉맵(mipmap)이라고 한다.
207 단계는 테스트 및 믹싱(testing and mixing) 단계이다. 깊이 테스트(depth test), 컬링(curling), 클리핑(clipping) 등을 통해 최종적으로 표시될 픽셀 값들이 결정된다.
208 단계는 201 단계 내지 207 단계를 통해 생성된 프레임을 프레임 버퍼에 저장하고, 프레임 버퍼에 저장된 프레임을 디스플레이 장치를 통해 표시하는 단계이다.
도 2에서 설명된 위와 같은 그래픽스 파이프라인(101)의 일반적인 컨셉에 대한 설명은 개괄적인 것으로서, 보다 세부적인 과정들에 대해서는 당해 기술분야의 통상의 기술자에게 자명하다.
도 3은 픽셀과 텍스쳐의 매핑을 설명하기 위한 도면이다.
도 3을 참고하면, 래스터라이징에 의하여 스크린 스페이스 상의 픽셀들(301)이 생성된 경우, 픽셀 쉐이더는 픽셀들(301)에 매핑될 텍스쳐(302)를 결정할 수 있다. 텍스쳐(302)는 어느 3차원 오브젝트의 일부의 컬러, 질감, 패턴 등에 대한 정보를 갖고, 텍셀들(texels)로 구성된 텍스쳐 스페이스 상의 텍스쳐 좌표들로 정의될 수 있다.
픽셀들(301)과 텍스쳐(302)가 매핑된 경우, 픽셀 쉐이더는 매핑된 텍스쳐(302)가 갖는 컬러, 질감, 패턴 등에 대응되도록 픽셀들(301)의 값들(컬러 값들)을 결정함으로써, 스크린 스페이스 상의 픽셀들(301)을 쉐이딩한다.
한편, 카메라 시점의 변화에 따라, 스크린 스페이스에 표시될 오브젝트의 크기도 변화될 수 있다. 이에 따라, 픽셀들(301)에 매핑되어야 할 텍스쳐(302)의 해상도도 달라질 수 있다. 예를 들어, 카메라 시점이 점점 멀어지거나 가까워지는 경우, 스크린 스페이스에서 오브젝트는 점점 작거나 크게 표시되게 된다. 따라서, 픽셀들(301)에 매핑될 텍스쳐(302) 또한 점점 작아지거나 커져야 한다. 이때, 앞서 설명된 밉맵이 활용될 수 있다.
도 4는 밉맵을 설명하기 위한 도면이다.
밉맵은 렌더링 속도를 향상시키기 위한 목적으로 기본(base) 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지들의 집합이다. 도 4를 참고하면, 시점들(400, 401 및 402)이 변화함에 따라, 픽셀들에 매핑될 텍스쳐의 크기도 달라지게 된다. 예를 들어, 시점 0(400)의 스크린 스페이스 상의 픽셀들에 매핑될 텍스쳐(410)는 시점 2(402)의 스크린 스페이스 상의 픽셀들에 매핑될 텍스쳐(412)보다 크다.
밉맵에서, 스크린 스페이스 상의 픽셀들에 어떠한 크기의 텍스쳐를 매핑시킬 것인지는, LOD(level of detail)를 계산함으로써 결정될 수 있다. LOD는 예를 들어, 다음과 같은 수학식 1을 이용하여 계산될 수 있으나, 이에 한정되지 않는다.
Figure 112015093364386-pat00001
λ는 LOD의 값이고, u, v는 텍스쳐 스페이스에서 텍스쳐 좌표축 상의 텍스쳐 좌표들이고, x, y는 스크린 스페이스에서 스크린 좌표축 상의 픽셀 좌표들이다.
밉맵을 이용하기 위하여, 스크린 스페이스에 존재하는 픽셀들에 대한 LOD들을 결정하는 것은 쿼드(quad) 단위로 수행될 수 있다. 쿼드에 대해서는 이하 도 5를 참고하여 설명하도록 한다.
도 5는 일 실시예에 따른 쿼드를 설명하기 위한 도면이다.
도 5를 참고하면, 본 실시예들에서 쿼드는, 2×2 픽셀들의 집합인 것으로 정의될 수 있다. 예를 들어, 쿼드 Q0(500)는, 2×2 픽셀들 P0, P1, P2 및 P3의 집합을 의미할 수 있다. 앞서 도 4에서 설명된 수학식 1을 이용한 LOD의 계산은 쿼드 Q0(500)에 대해 수행될 수 있다. 보다 상세하게 설명하면, 수학식 1에서, “dx”는 2×2 픽셀들 P0, P1, P2 및 P3 중 어느 두 픽셀들의 픽셀 좌표들에 대한 x 축의 변화량이고, “dy”는 y 축의 변화량이다. 수학식 1에서, “du”는 그 두 픽셀들에 대응되는 텍스쳐 좌표들에 대한 u축의 변화량이고, “dv”는 그 두 픽셀들에 대응되는 텍스쳐 좌표들에 대한 v축의 변화량이다. 즉, LOD의 계산 및 결정은 쿼드 단위로 수행될 수 있다.
도 6은 쿼드들을 이용하여 스크린 스페이스 상의 픽셀들에 대응되는 텍스쳐를 매핑하는 것을 설명하기 위한 도면이다.
도 6을 참고하면, 텍스쳐 매핑을 위한 LOD 결정을 위하여, 스크린 스페이스(600) 상의 전체 픽셀들(602)은 2×2 픽셀들을 갖는 쿼드들(601)로 분할될 수 있다. LOD의 결정은 각각의 쿼드들(601)에 대해 수행되고, 전체 쿼드들(601)에 대한 LOD들의 결정이 완료된 경우에 어느 프레임에 대한 스크린 스페이스(600) 전체의 텍스쳐 매핑이 완료될 수 있다. 한편, 종래에는, 수학식 1과 같은 LOD 계산 방식을 통하여, 각각의 쿼드들(601)에 대하여 직접 계산하였다. 하지만, 수학식 1에 기재된 바와 같이 LOD 연산은 다수의 곱셈과 나눗셈 연산들이 필요하다. 또한, 많은 리소스가 소비되는 Log 연산을 대체하기 위하여 근사화된 연산들이 수행된다 할지라도, 이 역시 다수의 곱셈과 나눗셈 연산들이 수행되게 되므로, 결국 LOD 연산의 많은 반복 수행은 GPU(10)의 처리 성능을 감소시키고 많은 전력이 소비될 수 있다.
본 실시예에 따르면, 스크린 스페이스(600) 상의 전체 쿼드들(601)에 대한 개별적인 LOD 연산이 수행되지 않고서도, 전체 쿼드들(601)에 대한 LOD들이 보다 효율적으로 결정될 수 있다. 이하 보다 상세하게 설명하도록 한다.
도 7은 일 실시예에 따른 그래픽스 프로세싱 장치의 하드웨어 구성을 도시한 블록도이다.
도 7을 참고하면, 그래픽스 프로세싱 장치(700)는, 획득부(acquiring unit)(710), 레퍼런스 쿼드 결정부(reference quad determining unit)(720), 유사성 판단부(similarity determining unit)(730) 및 LOD 결정부(LOD determining unit)(740)를 포함할 수 있다. 한편, 도 7에 도시된 그래픽스 프로세싱 장치(700)에는 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 7에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
그래픽스 프로세싱 장치(700)는 텍스쳐링을 위한 LOD의 결정을 처리하는 하드웨어이다. 그래픽스 프로세싱 장치(700)는 도 1 등에서 설명된 GPU(10)에 해당되거나, CPU(20)에 해당되거나, 기타 다른 종류의 프로세서들에 해당되거나, 또는 이들을 모두 포함하도록 구현될 수 있다. 한편, 획득부(710), 레퍼런스 쿼드 결정부(720), 유사성 판단부(730) 및 LOD 결정부(740)는, 예를 들어, GPU(10)에 내에서 텍스쳐 프로세싱 유닛 내의 세부 구성들로 구현될 수 있으나, 이에 제한되지 않는다.
획득부(710)는, 상위 블록(upper block)에 포함된 픽셀들에 대한 텍스쳐 좌표 데이터를 획득한다. 보다 상세하게, 획득부(710)는 상위 블록에 포함된 픽셀들의 픽셀 좌표 데이터 및 상위 블록에 포함된 픽셀들에 대응되는 텍스쳐 좌표 데이터를 획득한다.
본 실시예들에서, 상위 블록은 둘 이상의 복수의 쿼드들을 포함하는 쿼드들의 집합인 것으로 정의한다. 예를 들어, 상위 블록은, 8개의 픽셀들의 1×2 쿼드들, 8개의 픽셀들의 2×1 쿼드들, 16개의 픽셀들의 2×2 쿼드들, 32개의 픽셀들의 4×2 쿼드들, 32개의 픽셀들의 2×4 쿼드들, 또는 64개의 픽셀들의 4×4 쿼드들을 포함하는 블록일 수 있고, 이보다 더 많은 쿼드들이 포함될 수도 있다.
레퍼런스 쿼드 결정부(720)는, 상위 블록에 포함된 복수의 쿼드들 중 레퍼런스 쿼드를 결정한다. 레퍼런스 쿼드는, 복수의 쿼드들 중 상위 블록과의 유사성을 판단하기 위한 기준이 되는 어느 하나의 쿼드로 정의할 수 있다. 예를 들어, 레퍼런스 쿼드는, 상위 블록에 포함된 쿼드들 중, 상위 블록의 중심에 가깝게 위치한 쿼드일 수 있으나, 이에 제한되지 않는다.
유사성 판단부(730)는, 레퍼런스 쿼드 및 상위 블록에 대한 텍스쳐 좌표들을 이용하여 레퍼런스 쿼드와 상위 블록의 유사성을 판단한다. 유사성 판단부(730)는, 레퍼런스 쿼드의 두 픽셀들에 대응되는 텍스쳐 좌표들(제 1 텍스쳐 좌표들이라 함)간의 거리와, 상위 블록의 두 모서리들에 위치한 두 픽셀들에 대응되는 텍스쳐 좌표들(제 2 텍스쳐 좌표들이라 함)간의 거리를 이용하여 유사성을 판단할 수 있다. 여기서, 제 1 텍스쳐 좌표들은 레퍼런스 쿼드의 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리(제 1 거리라 함)를 갖는 두 텍스쳐 좌표들일 수 있고, 제 2 텍스쳐 좌표들은 상위 블록의 네 모서리들에 위치한 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리(제 2 거리라 함)를 갖는 두 텍스쳐 좌표들일 수 있다. 나아가서, 유사성 판단부(730)는, 레퍼런스 쿼드의 두 픽셀들과 상위 블록의 두 모서리들에 위치한 두 픽셀들이 서로 대응되는 위치들의 픽셀들인 경우에만, 제 1 거리 및 제 2 거리를 이용하여 유사성을 판단한다. 즉, 제 1 거리 및 제 2 거리 각각이, 레퍼런스 쿼드 및 상위 블록 각각에 대응되는 텍스쳐들에서의 최대 거리를 나타낸다고 할지라도, 제 1 거리 및 제 2 거리가 서로 대응되지 않는 위치의 픽셀들로부터 기인된 경우에는, 유사성의 판단 없이 유사하지 않다고 판단한다. 여기서, 레퍼런스 쿼드의 두 픽셀들과 상위 블록의 두 모서리들에 위치한 두 픽셀들이 서로 대응되는 위치들의 픽셀들이라는 것은, 레퍼런스 쿼드의 두 픽셀들에 대응되는 텍스쳐 좌표들과 상위 블록의 두 모서리들에 위치한 두 픽셀들에 대응되는 텍스쳐 좌표들이 텍스쳐 상에서 동일 연장선 상에 존재하는 좌표들이라는 것을 의미할 수 있다.
결국, 유사성 판단부(730)는, 레퍼런스 쿼드에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 1 텍스쳐 좌표들에 대응되는 두 픽셀들과, 상위 블록의 네 모서리들에 위치한 픽셀들에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 2 텍스쳐 좌표들에 대응되는 두 픽셀들이, 서로 대응되는 위치들의 픽셀들인지 여부를 먼저 판단한다. 그리고 나서, 유사성 판단부(730)는, 대응되는 위치들의 픽셀들로 판단된 경우에, 제 1 텍스쳐 좌표들간의 최대 거리인 제 1 거리와 제 2 텍스쳐 좌표들간의 최대 거리인 제 2 거리를 이용하여 유사성을 판단한다.
유사성 판단부(730)는, 제 1 거리에 N(N은 자연수)을 곱한 값과 제 2 거리 간의 차이의 절대값이 임계값보다 작은 경우에, 레퍼런스 쿼드와 상위 블록은 유사하다고 판단한다. 여기서, N은, 상위 블록에서 제 2 텍스쳐 좌표들에 대응되는 두 픽셀들 사이에 존재하는 픽셀들의 개수에 기초한 값이고, 임계값은 그래픽스 프로세싱 장치(700)의 구현 환경에 따라 임의로 설정될 수 있는 값이다.
LOD 결정부(740)는 우선, 레퍼런스 쿼드에 대해 수학식 1과 같은 LOD 연산을 수행하여, 레퍼런스 쿼드의 LOD를 결정한다. LOD 결정부(740)는 레퍼런스 쿼드와 상위 블록이 유사하다고 판단된 경우, 레퍼런스 쿼드에 대한 LOD를, 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들로 결정한다. 즉, 유사성 판단부(730)에 의해 레퍼런스 쿼드와 상위 블록이 유사하다고 판단되면, 상위 블록에 포함된 나머지 쿼드들에 대해서는 개별적으로 LOD들이 계산되지 않고, 레퍼런스 쿼드의 LOD를 갖는 것으로 간주될 수 있다. 따라서, 레퍼런스 쿼드와 상위 블록의 유사성 판단을 통해, 모든 쿼드들에 대한 개별적인 LOD 연산을 수행하지 않을 수 있으므로, LOD 결정을 위한 그래픽스 프로세싱 장치(700)(또는 도 1의 GPU(10))의 연산량을 줄일 수 있다.
만약, 레퍼런스 쿼드와 상위 블록이 유사하지 않다고 판단된 경우, LOD 결정부(740)는 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들을 레퍼런스 쿼드에 대한 LOD와 별도로 개별적으로 계산하여 결정한다.
이하에서는, 2×2 쿼드들, 4×2 쿼드들 및 4×4 쿼드들을 차례대로 예로 들어 쿼드들에 대한 LOD가 결정되는 방식들에 대해 보다 상세히 설명하도록 한다.
도 8은 일 실시예에 따른 2×2 쿼드들을 포함하는 상위 블록을 설명하기 위한 도면이다.
도 8을 참고하면, 상위 블록(800)은 2×2 쿼드들 Q0, Q1, Q2 및 Q3을 포함할 수 있다. 앞서 설명된 바와 같이 각각의 쿼드들은 4개의 픽셀들을 포함할 수 있다. 예를 들어, 쿼드 Q0는 2×2 픽셀들 P0 내지 P3를 포함하고, 쿼드 Q1은 2×2 픽셀들 P4 내지 P7을 포함하고, 쿼드 Q2는 2×2 픽셀들 P8 내지 P11을 포함하고, 쿼드 Q3은 2×2 픽셀들 P12 내지 P15를 포함할 수 있다.
도 7의 그래픽스 프로세싱 장치(700)의 획득부(710)는 상위 블록(800)을 구성하는 쿼드들 Q0 내지 Q3 각각에 포함된 픽셀들 P0 내지 P15의 픽셀 좌표들의 데이터와, 픽셀들 P0 내지 P15 각각에 대응되는 텍스쳐 좌표들의 데이터를 획득한다.
도 9는 일 실시예에 따른 다른 타입들의 상위 블록들을 설명하기 위한 도면이다.
도 9를 참고하면, 그래픽스 프로세싱 장치(700)는, 도 8에서 설명된 2×2 쿼드들의 상위 블록(800)뿐만 아니라, 다른 타입들의 상위 블록들을 이용할 수도 있다. 즉, 그래픽스 프로세싱 장치(700)는 8개의 픽셀들의 2×1 쿼드들을 포함하는 상위 블록(901), 8개의 픽셀들의 2×1 쿼드들을 포함하는 상위 블록(902), 32개의 픽셀들의 4×2 쿼드들을 포함하는 상위 블록(903), 32개의 픽셀들의 2×4 쿼드들을 포함하는 상위 블록(904), 또는 64개의 픽셀들의 4×4 쿼드들을 포함하는 상위 블록(905)를 이용할 수 있다. 다만, 도 9에 도시되지는 않았으나, 그래픽스 프로세싱 장치(700)는, 이보다 더 많은 쿼드들을 포함하는 상위 블록들을 이용할 수도 있다. 즉, 본 실시예들에 따르면 상위 블록의 타입은 어느 하나에 의해 제한되지 않는다.
우선, 그래픽스 프로세싱 장치(700)가, 2×2 쿼드들의 상위 블록(800)을 이용하여 상위 블록(800)에 포함된 쿼드들의 LOD들을 결정하는 방식에 대해 설명하도록 한다.
도 10은 일 실시예에 따라 레퍼런스 쿼드를 설명하기 위한 도면이다.
도 10을 참고하면, 레퍼런스 쿼드 결정부(720)는 상위 블록(800)에 포함된 2×2 쿼드들 Q0, Q1, Q2 및 Q3 중에서 어느 하나의 쿼드를 레퍼런스 쿼드(1000)로 결정한다. 이때, 레퍼런스 쿼드 결정부(720)는 상위 블록에 포함된 쿼드들 중, 상위 블록의 중심에 가깝게 위치한 쿼드를 레퍼런스 쿼드(1000)로 결정할 수 있다. 2×2 쿼드들로 구성된 상위 블록(800)의 경우에는, 2×2 쿼드들 Q0, Q1, Q2 및 Q3 모두 상위 블록(800)의 중심에서 동일한 위치에 존재하는바, 2×2 쿼드들 Q0, Q1, Q2 및 Q3 중 어떠한 쿼드가 레퍼런스 쿼드(1000)로 결정되어도 무방할 수 있다. 다만, 이하의 본 실시예들에서는 설명의 편의를 위하여, 2×2 쿼드들 중 좌측 상단에 위치한 쿼드 Q0가 레퍼런스 쿼드(1000)로 결정된 것으로 설명하도록 한다.
도 11은 일 실시예에 따라 레퍼런스 쿼드 및 상위 블록 각각에 포함된 픽셀들과 텍스쳐들 간의 관계를 설명하기 위한 도면이다.
도 11을 참고하면, 레퍼런스 쿼드(1000)는 텍스쳐(1110)에 매핑되고, 상위 블록(800)은 텍스쳐(1120)에 매핑될 수 있다. 레퍼런스 쿼드(1000)의 픽셀들 P0, P1, P2 및 P3 각각은 텍스쳐(1110)의 텍스쳐 좌표들 T0, T1, T2 및 T3 각각에 매핑될 수 있다. 그리고, 상위 블록(800)의 네 모서리들에 위치한 픽셀들 P0, P5, P10 및 P15 각각은 텍스쳐(1120)의 텍스쳐 좌표들 T0, T5, T10 및 T15 각각에 매핑될 수 있다. 앞서 상위 블록(800)은 레퍼런스 쿼드(1000)를 포함하고 있으므로, 일반적으로 상위 블록(800)에 대응되는 텍스쳐(1120)는 레퍼런스 쿼드(1000)에 대응되는 텍스쳐(1110)를 포함할 수 있다. 한편, 이와 같은 매핑 관계는 획득부(710)에서 획득된 데이터에 포함된 것일 수 있다.
도 12는 일 실시예에 따라 상위 블록과 레퍼런스 쿼드 간의 유사성을 판단하는 것을 설명하기 위한 도면이다.
도 12를 참고하면, 유사성 판단부(730)는 조건 ① 레퍼런스 쿼드에서 최대 거리(제 1 거리(1220))를 갖는 두 픽셀들과 상위 블록의 모서리 픽셀들에서 최대 거리(제 2 거리(1230))를 갖는 두 픽셀들이 동일한 축에 존재할 것, 조건 ② 제 1 거리(1220)에 N(N은 자연수)을 곱한 값과 제 2 거리(1230) 간의 차이의 절대값이 임계값보다 작을 것의 유사성 판단 조건들(1210)이 만족된 경우에, 상위 블록과 레퍼런스 쿼드가 유사하다고 판단한다.
보다 상세하게 설명하면, 레퍼런스 쿼드(1000)의 픽셀들 P0, P1, P2 및 P3 각각에 대응되는 4개의 텍스쳐 좌표들 중, 텍스쳐 좌표들 간에 최대 거리(제 1 거리(1220))를 갖는 2개의 텍스쳐 좌표들(제 1 텍스쳐 좌표들)은 T0 및 T2인 것으로 가정할 수 있다. 텍스쳐 좌표들(제 1 텍스쳐 좌표들) T0 및 T2는 각각 픽셀들 P0 및 P2에 대응된다. 한편, 상위 블록(800)의 모서리 픽셀들 P0, P5, P10 및 P15 각각에 대응되는 4개의 텍스쳐 좌표들 중, 텍스쳐 좌표들 간에 최대 거리(제 2 거리(1230))를 갖는 2개의 텍스쳐 좌표들(제 2 텍스쳐 좌표들)은 T0 및 T10인 것으로 가정할 수 있다. 텍스쳐 좌표들(제 2 텍스쳐 좌표들) T0 및 T10는 각각 픽셀들 P0 및 P10에 대응된다.
유사성 판단부(730)는 제 1 텍스쳐 좌표들 T0 및 T2에 대응되는 픽셀들 P0 및 P2과, 제 2 텍스쳐 좌표들 T0 및 T10에 대응되는 픽셀들 P0 및 P10이, 동일한 축에 존재하는 픽셀들인지 여부를 판단한다. 여기서, 유사성 판단부(730)는, 픽셀들이 동일한 x 축 상에 존재하는지, 동일한 y 축 상에 존재하는지, 또는 동일한 대각선 상에 존재하는지 여부에 기초하여, 동일한 축에 존재하는지 여부를 판단할 수 있다.
앞서 가정에 따르면, 제 1 거리(1220)를 갖는 두 픽셀들 P0 및 P2는, 제 2 거리(1230)를 갖는 두 픽셀들 P0 및 P10과 동일한 축(y 축) 상에 존재하므로, 앞서 설명된 조건 ①은 만족하는 것으로 판단될 수 있다. 앞서 도 7에서는, 레퍼런스 쿼드(1000) 및 상위 블록(800)의 두 픽셀들끼리 대응되는 위치들의 픽셀들인지 여부를 판단하는 것으로 설명하였는데, 이는 위의 동일한 축 (또는 동일한 연장선) 상에 존재하는지 여부를 판단하는 것을 의미한다.
조건 ①이 만족된 경우, 유사성 판단부(730)는 다음의 조건 ②를 위하여, 제 1 거리(1220)(MaxEU)의 N배(예를 들어, N=3) 한 값과 제 2 거리(1230)(MaxEU)의 차이의 절대값(ABS)이 임계값보다 작은지 여부를 판단한다. 여기서, EU는, 유클리드 거리(Euclidean distance)를 의미한다. 다만, 이에 제한되지 않고, 거리 값은 유클리드 거리 외에도 다른 방식에 의해 계산된 거리가 사용될 수도 있다. 도 12에서, N=3으로 설정하는 이유는, 상위 블록(800)의 두 픽셀들 P0 및 P10 사이에는 4개의 픽셀들 P0, P2, P8 및 P10이 존재하므로, 레퍼런스 쿼드(1000)의 두 픽셀들 P0 및 P2 사이의 픽셀 거리의 3배이기 때문이다.
유사성 판단부(730)는 제 1 텍스쳐 좌표들 T0 및 T2 사이의 거리(제 1 거리(1220))를 3배 한 값과 제 2 텍스쳐 좌표들 T0 및 T10 사이의 거리(제 2 거리(1230))의 차이의 절대값이 임계값보다 작은 경우, 상위 블록(800)과 레퍼런스 쿼드(1000)가 유사하다고 판단한다. 한편, 임계값의 크기를 조절함으로써, 유사성 판단의 결과가 달라질 수 있다.
결국, 유사성 판단부(730)는 조건들 ① 및 ②를 만족하는지를 판단하여, 상위 블록과 레퍼런스 쿼드의 유사성을 판단한다.
도 13은 일 실시예에 따라 레퍼런스 쿼드 및 상위 블록이 유사하다고 판단된 경우 상위 블록에 포함된 쿼드들의 LOD를 결정하는 것을 설명하기 위한 도면이다.
도 13을 참고하면, 레퍼런스 쿼드(1000)와 상위 블록(800)이 유사하다고 판단된 경우, 나머지 쿼드들 Q1, Q2 및 Q3의 LOD들은 모두 레퍼런스 쿼드(1000)인 쿼드 Q0의 LOD와 동일하게 결정된다. 즉, 레퍼런스 쿼드(1000)와 상위 블록이 유사하다고 판단된 경우, LOD 결정부(740)는 레퍼런스 쿼드(1000)인 쿼드 Q0의 LOD만을 계산함으로써, 상위 블록(800)에 포함된 쿼드들 Q0, Q1, Q2 및 Q3 전체에 대한 LOD들을 결정할 수 있다.
도 14는 일 실시예에 따른 4×2 쿼드들의 상위 블록을 이용하여 LOD를 결정하는 것을 설명하기 위한 도면이다.
도 14를 참고하면, 4×2 쿼드들 중에서 레퍼런스 쿼드(1410)는, 상위 블록(1400)의 중심에서 가까운 쿼드 Q1으로 결정될 수 있다. 여기서, 쿼드들 Q1, Q3, Q4 및 Q6는 모두 중심에서 가까운 쿼드들이지만, 설명의 편의를 위해 쿼드 Q1이 레퍼런스 쿼드(1410)인 것으로 가정한다. 한편, 다른 실시예들에 따르면, 레퍼런스 쿼드(1410)는 쿼드 Q1가 아닌, 쿼드 Q0, Q2, Q5 또는 Q7으로 결정될 수도 있다.
쿼드 Q0가 레퍼런스 쿼드(1410)로 결정된 경우, 유사성 판단부(730)는 유사성 조건(1420)에 기초하여, 레퍼런스 쿼드(1410)와 상위 블록(1400)의 유사성을 판단한다. 다만, 상위 블록(1400)이 직사각형 타입의 4×2 쿼드들로 구성되어 있기 때문에, 조건 ①을 만족하는 동일한 축이 x 축일 경우, y 축일 경우 또는 대각선일 경우에 따라 서로 다른 N 값을 갖는 조건 ②가 적용될 수 있다.
예를 들어, 제 1 거리에 대응되는 픽셀들이 P4 및 P5이고, 제 2 거리에 대응되는 픽셀들이 P0 및 P21인 경우, “ABS(상위 블록의 MaxEU - 7×레퍼런스 쿼드의 MaxEU) < 임계값”의 조건 ②가 적용될 수 있다. 이와 달리, 제 1 거리에 대응되는 픽셀들이 P4 및 P6이고, 제 2 거리에 대응되는 픽셀들이 P0 및 P10인 경우, “ABS(상위 블록의 MaxEU - 3×레퍼런스 쿼드의 MaxEU) < 임계값”의 조건 ②가 적용될 수 있다. 또는, 제 1 거리에 대응되는 픽셀들이 P4 및 P7이고, 제 2 거리에 대응되는 픽셀들이 P0 및 P31인 경우, “ABS(상위 블록의 MaxEU - 7.6×레퍼런스 쿼드의 MaxEU) < 임계값”의 조건 ②가 적용될 수 있다.
LOD 결정부(740)는 레퍼런스 쿼드(1410)와 상위 블록(1400)이 유사하다고 판단된 경우, 레퍼런스 쿼드(1410)인 쿼드 Q1의 LOD를 나머지 쿼드들 Q0, Q2, Q3, Q4, Q5, Q6 및 Q7의 LOD들인 것으로 결정할 수 있다.
도 15는 일 실시예에 따른 4×4 쿼드들의 상위 블록을 이용하여 LOD를 결정하는 것을 설명하기 위한 도면이다.
도 15를 참고하면, 4×4 쿼드들 중에서 레퍼런스 쿼드(1510)는, 상위 블록(1500)의 중심에서 가까운 쿼드 Q3으로 결정될 수 있다. 여기서, 쿼드들 Q3, Q6, Q9 및 Q12는 모두 중심에서 가까운 쿼드들이지만, 설명의 편의를 위해 쿼드 Q3이 레퍼런스 쿼드(1510)인 것으로 가정한다. 한편, 다른 실시예들에 따르면, 레퍼런스 쿼드(1510)는 쿼드 Q3가 아닌, 나머지 쿼드들 중 어느 하나로 결정될 수도 있다.
쿼드 Q3가 레퍼런스 쿼드(1510)로 결정된 경우, 유사성 판단부(730)는 유사성 조건(1520)에 기초하여, 레퍼런스 쿼드(1510)와 상위 블록(1500)의 유사성을 판단한다. 상위 블록(1500)의 어느 2개의 모서리 픽셀들 간의 거리는, 레퍼런스 쿼드(1510)에 포함된 어느 2개의 픽셀들 간의 거리의 7배이므로, N은 7로 설정될 수 있다.
LOD 결정부(740)는 레퍼런스 쿼드(1510)와 상위 블록(1500)이 유사하다고 판단된 경우, 레퍼런스 쿼드(1510)인 쿼드 Q3의 LOD를 나머지 쿼드들 Q0, Q1, Q2, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14 및 Q15의 LOD들인 것으로 결정할 수 있다.
도 16은 일 실시예에 따라 레퍼런스 쿼드와 상위 블록이 유사하지 않다고 판단될 경우를 설명하기 위한 도면이다.
도 16을 참고하면, 텍스쳐(1610)는 앞서 도 11에서 설명된 레퍼런스 쿼드(1000)에 대응되고, 텍스쳐(1620)는 상위 블록(800)에 대응되는 것으로 가정할 수 있다. 텍스쳐(1610)의 텍스쳐 좌표들 T0 및 T2 간의 제 1 거리의 3배 한 값은 텍스쳐(1620)의 텍스쳐 좌표들 T0 및 T10 간의 제 2 거리와 많이 차이가 나므로, 임계값을 초과할 수 있다. 따라서, 도 16에 도시된 텍스쳐들(1610 및 1620)에 따르면, 레퍼런스 쿼드(1000) 및 상위 블록(800)은 유사하지 않다고 판단될 수 있다. 그러므로, 상위 블록(800)에 포함된 쿼드들 Q0, Q1, Q2 및 Q3의 LOD들은 수학식 1의 연산을 통해 개별적으로 결정될 수 있다.
도 17은 다른 일 실시예에 따라 레퍼런스 쿼드 대신에, 레퍼런스 픽셀들을 이용하여 상위 블록에 포함된 2×2 쿼드들의 LOD들을 결정하는 것을 설명하기 위한 도면이다.
도 17을 참고하면, 레퍼런스 쿼드 결정부(720)는 2×2 쿼드들 Q0, Q1, Q2 및 Q3를 포함하는 상위 블록(1700)에서, 레퍼런스 쿼드가 아닌, 레퍼런스 픽셀 그룹(1710)을 결정할 수 있다. 레퍼런스 픽셀 그룹(1710)에 포함된 픽셀들 P3, P6, P9 및 P12은 각각 다른 쿼드들에 포함된 픽셀들이다. 레퍼런스 픽셀 그룹(1710)에 포함된 픽셀들 P3, P6, P9 및 P12은 비록 서로 다른 쿼드들에 포함되어 있지만, 상위 블록(1700)의 중심에 가깝게 위치한 픽셀들일 수 있다.
유사성 판단부(730)는 도 12에서 설명된 유사성 판단 조건(1210)과 유사한, 유사성 판단 조건(1720)에 기초하여, 레퍼런스 픽셀 그룹(1710)과 상위 블록(1700)의 유사성을 판단한다.
LOD 결정부(740)는 레퍼런스 픽셀 그룹(1710)과 상위 블록(1700)이 유사하다고 판단된 경우, 쿼드들 Q0, Q1, Q2 및 Q3 중 어느 한 쿼드의 LOD를 계산하고, 계산된 LOD를 나머지 쿼드들의 LOD들인 것으로 결정한다.
즉, 도 17의 다른 실시예에 따르면, 레퍼런스 쿼드 외에도 레퍼런스 픽셀 그룹(1710)을 이용하여 상위 블록(1700) 내에 포함된 쿼드들 Q0, Q1, Q2 및 Q3의 LOD들을 효율적으로 결정할 수 있다.
도 18은 다른 일 실시예에 따라 레퍼런스 쿼드 대신에, 레퍼런스 픽셀들을 이용하여 상위 블록에 포함된 4×4 쿼드들의 LOD들을 결정하는 것을 설명하기 위한 도면이다.
도 18을 참고하면, 레퍼런스 쿼드 결정부(720)는 상위 블록(1800)에서, 픽셀들 P12, P25, P38 및 P51을 포함하는 레퍼런스 픽셀 그룹(1810)을 결정할 수 있다. 레퍼런스 픽셀 그룹(1810)에 포함된 픽셀들 P12, P25, P38 및 P51은 각각 다른 쿼드들에 포함된 픽셀들이다.
유사성 판단부(730)는 레퍼런스 픽셀 그룹(1810)과 상위 블록(1800)의 유사성을 판단한다. LOD 결정부(740)는 레퍼런스 픽셀 그룹(1810)과 상위 블록(1800)이 유사하다고 판단된 경우, 레퍼런스 픽셀 그룹(1810)에 포함된 픽셀들 중 어느 하나의 픽셀을 포함하는 쿼드의 LOD를 계산하고, 계산된 LOD를 나머지 쿼드들의 LOD들인 것으로 결정한다.
도 19는 일 실시예에 따른, 그래픽스 프로세싱 장치에서 텍스쳐링을 위한 LOD를 결정하는 방법의 흐름도이다. 도 19를 참고하면, LOD 결정 방법은 앞서 설명된 도면들에서 그래픽스 프로세싱 장치(700)(또는 GPU(10))에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라 하더라도 앞선 도면들에서 설명되었던 내용들은 도 19의 LOD 결정 방법에도 적용될 수 있다.
1901 단계에서, 획득부(710)는 상위 블록에 포함된 픽셀들에 대한 텍스쳐 좌표 데이터를 획득한다.
1902 단계에서, 레퍼런스 쿼드 결정부(720)는 상위 블록에 포함된 복수의 쿼드들 중 레퍼런스 쿼드를 결정한다.
1903 단계에서, 유사성 판단부(730)는 레퍼런스 쿼드 및 상위 블록에 대한 텍스쳐 좌표들을 이용하여 레퍼런스 쿼드와 상위 블록의 유사성을 판단한다.
1904 단계에서, LOD 결정부(740)는 레퍼런스 쿼드와 상위 블록이 유사하다고 판단된 경우, 레퍼런스 쿼드에 대한 LOD를, 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들로 결정한다.
도 20은 도 19의 LOD 결정 방법의 상세 흐름도이다.
2001 단계에서, 획득부(710)는 상위 블록에 포함된 쿼드들 및 텍스쳐들에 관한 데이터를 획득한다. 예를 들어, 획득부(710)는 상위 블록에 포함된 픽셀들의 픽셀 좌표 데이터, 쿼드 데이터, 텍스쳐 좌표 데이터 등을 획득할 수 있다.
2002 단계에서, 레퍼런스 쿼드 결정부(720)는 상위 블록에 포함된 복수의 쿼드들 중 레퍼런스 쿼드를 결정한다.
2003 단계에서, 유사성 판단부(730)는 레퍼런스 쿼드의 네 픽셀들에 대응되는 텍스쳐 좌표들을 이용하여 텍스쳐 좌표들 간의 최대 거리(제 1 거리)를 결정하고, 상위 블록의 네 모서리들에 위치한 네 픽셀들에 대응되는 텍스쳐 좌표들 간의 최대 거리(제 2 거리)를 결정한다.
2004 단계에서, 유사성 판단부(730)는 제 1 거리에 대응되는 레퍼런스 쿼드의 두 픽셀들과, 제 2 거리에 대응되는 상위 블록의 두 모서리 픽셀들이 동일한 축에 존재하는지 여부를 판단한다. 이는, 앞서 설명된 조건 ①의 판단을 의미한다. 동일한 축으로 판단된 경우 2005 단계로 진행되고, 다른 축으로 판단된 경우 2008 단계로 진행된다.
2005 단계에서, 유사성 판단부(730)는 제 1 거리와 제 2 거리를 비교하여, 제 1 거리와 제 2 거리의 비교 결과가 임계값 이내인지 여부를 판단한다. 비교 결과가 임계값 이내인 경우, 레퍼런스 쿼드와 상위 블록은 유사하다고 판단된다. 이는, 앞서 설명된 조건 ②의 판단을 의미한다. 임계값 이내인 것으로 판단된 경우 2006 단계로 진행되고, 임계값 이내가 아닌 것으로 판단된 경우 2008 단계로 진행된다.
2006 단계에서, 레퍼런스 쿼드와 상위 블록이 유사하다고 판단된 경우, LOD 결정부(740)는 레퍼런스 쿼드의 LOD를 계산한다. 이때, 앞서 설명된 수학식 1과 같은 LOD 연산을 이용하여 레퍼런스 쿼드의 LOD가 계산될 수 있다.
2007 단계에서, LOD 결정부(740)는 상위 블록 내의 나머지 쿼드들의 LOD를, 레퍼런스 쿼드의 LOD와 동일한 값으로 결정한다.
2008 단계에서, 레퍼런스 쿼드와 상위 블록이 유사하지 않다고 판단된 경우, LOD 결정부(740)는 상위 블록 내의 전체 쿼드들의 LOD들을 개별적으로 계산한다.
한편, 상술한 본 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 바람직한 실시예들을 중심으로 살펴보았다. 당해 기술 분야에서 통상의 지식을 가진 자는 본 실시예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 실시예들의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 실시예들에 포함된 것으로 해석되어야 할 것이다.

Claims (20)

  1. 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법에 있어서,
    상위 블록에 포함된 픽셀들에 대한 텍스쳐 좌표 데이터를 획득하는 단계 - 상기 상위 블록은 각각이 복수의 픽셀들의 어레이로 구성된 복수의 쿼드들의 어레이를 포함함 -;
    상기 상위 블록에 포함된 상기 복수의 쿼드들 중 레퍼런스 쿼드를 결정하는 단계;
    상기 결정된 레퍼런스 쿼드에 대한 텍스쳐 좌표들 및 상기 상위 블록에 대한 텍스쳐 좌표들이 대응하는지 여부에 기초하여 상기 결정된 레퍼런스 쿼드와 상기 상위 블록의 유사성을 판단하는 단계; 및
    상기 결정된 레퍼런스 쿼드와 상기 상위 블록이 유사하다고 판단된 경우, 상기 결정된 레퍼런스 쿼드에 대한 LOD를, 상기 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들로 결정하는 단계를 포함하고,
    상기 유사성을 판단하는 단계는
    상기 결정된 레퍼런스 쿼드에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 1 텍스쳐 좌표들에 대응되는 두 픽셀들과, 상기 상위 블록의 네 모서리들에 위치한 픽셀들에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 2 텍스쳐 좌표들에 대응되는 두 픽셀들이, 서로 대응되는 위치들의 픽셀들인지 여부를 판단하는 단계; 및
    상기 대응되는 위치들의 픽셀들로 판단된 경우, 상기 제 1 텍스쳐 좌표들간의 상기 최대 거리인 제 1 거리와 상기 제 2 텍스쳐 좌표들간의 상기 최대 거리인 제 2 거리를 이용하여 상기 유사성을 판단하는 단계를 포함하고,
    상기 유사성을 판단하는 단계는
    상기 제 1 거리에 N(N은 자연수)을 곱한 값과 상기 제 2 거리 간의 차이의 절대값이 임계값보다 작은 경우, 상기 결정된 레퍼런스 쿼드와 상기 상위 블록은 유사하다고 판단하는,
    방법.
  2. 제 1 항에 있어서,
    상기 유사성을 판단하는 단계는
    상기 결정된 레퍼런스 쿼드의 두 픽셀들에 대응되는 제 1 텍스쳐 좌표들간의 제 1 거리와, 상기 상위 블록의 두 모서리들에 위치한 두 픽셀들에 대응되는 제 2 텍스쳐 좌표들간의 제 2 거리를 이용하여 상기 유사성을 판단하는, 방법.
  3. 제 2 항에 있어서,
    상기 제 1 텍스쳐 좌표들은
    상기 결정된 레퍼런스 쿼드의 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리를 갖는 두 텍스쳐 좌표들인, 방법.
  4. 제 2 항에 있어서,
    상기 제 2 텍스쳐 좌표들은
    상기 상위 블록의 네 모서리들에 위치한 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리를 갖는 두 텍스쳐 좌표들인, 방법.
  5. 제 2 항에 있어서,
    상기 유사성을 판단하는 단계는
    상기 결정된 레퍼런스 쿼드의 상기 두 픽셀들과 상기 상위 블록의 상기 두 모서리들에 위치한 상기 두 픽셀들이 서로 대응되는 위치들의 픽셀들인 경우에, 상기 제 1 거리 및 상기 제 2 거리를 이용하여 상기 유사성을 판단하는, 방법.
  6. 삭제
  7. 삭제
  8. 제 1 항에 있어서,
    상기 N은
    상기 상위 블록에서 상기 제 2 텍스쳐 좌표들에 대응되는 상기 두 픽셀들 사이에 존재하는 픽셀들의 개수에 기초한 값인, 방법.
  9. 제 1 항에 있어서,
    상기 상위 블록은
    8개의 픽셀들의 1×2 쿼드들, 8개의 픽셀들의 2×1 쿼드들, 16개의 픽셀들의 2×2 쿼드들, 32개의 픽셀들의 4×2 쿼드들, 32개의 픽셀들의 2×4 쿼드들 및 64개의 픽셀들의 4×4 쿼드들 중 어느 하나를 포함하는 블록인, 방법.
  10. 제 1 항에 있어서,
    상기 결정된 레퍼런스 쿼드는
    상기 상위 블록에 포함된 쿼드들 중, 상기 상위 블록의 중심에 가깝게 위치한 쿼드인, 방법.
  11. 제 1 항에 있어서,
    상기 결정된 레퍼런스 쿼드와 상기 상위 블록이 유사하지 않다고 판단된 경우, 상기 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들은 상기 결정된 레퍼런스 쿼드에 대한 상기 LOD와 별도로 개별적으로 결정되는, 방법.
  12. 제 1 항 내지 제 5 항 및 제 8 항 내지 제 11 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  13. 상위 블록에 포함된 픽셀들에 대한 텍스쳐 좌표 데이터를 획득하는 획득부 - 상기 상위 블록은 각각이 복수의 픽셀들의 어레이로 구성된 복수의 쿼드들의 어레이를 포함함 -;
    상기 상위 블록에 포함된 상기 복수의 쿼드들 중 레퍼런스 쿼드를 결정하는 레퍼런스 쿼드 결정부;
    상기 결정된 레퍼런스 쿼드에 대한 텍스쳐 좌표들 및 상기 상위 블록에 대한 텍스쳐 좌표들이 대응하는지 여부에 기초하여 상기 결정된 레퍼런스 쿼드와 상기 상위 블록의 유사성을 판단하는 유사성 판단부; 및
    상기 결정된 레퍼런스 쿼드와 상기 상위 블록이 유사하다고 판단된 경우, 상기 결정된 레퍼런스 쿼드에 대한 LOD(level of detail)를, 상기 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들로 결정하는 LOD 결정부를 포함하고,
    상기 유사성 판단부는
    상기 결정된 레퍼런스 쿼드에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 1 텍스쳐 좌표들에 대응되는 두 픽셀들과, 상기 상위 블록의 네 모서리들에 위치한 픽셀들에 대응되는 네 텍스쳐 좌표들 중 최대 거리를 갖는 제 2 텍스쳐 좌표들에 대응되는 두 픽셀들이, 서로 대응되는 위치들의 픽셀들인지 여부를 판단하고,
    상기 대응되는 위치들의 픽셀들로 판단된 경우, 상기 제 1 텍스쳐 좌표들간의 상기 최대 거리인 제 1 거리와 상기 제 2 텍스쳐 좌표들간의 상기 최대 거리인 제 2 거리를 이용하여 상기 유사성을 판단하고,
    상기 유사성 판단부는
    상기 제 1 거리에 N(N은 자연수)을 곱한 값과 상기 제 2 거리 간의 차이의 절대값이 임계값보다 작은 경우, 상기 결정된 레퍼런스 쿼드와 상기 상위 블록은 유사하다고 판단하고,
    상기 N은
    상기 상위 블록에서 상기 제 2 텍스쳐 좌표들에 대응되는 상기 두 픽셀들 사이에 존재하는 픽셀들의 개수에 기초한 값인,
    그래픽스 프로세싱 장치.
  14. 제 13 항에 있어서,
    상기 유사성 판단부는
    상기 결정된 레퍼런스 쿼드의 두 픽셀들에 대응되는 제 1 텍스쳐 좌표들간의 제 1 거리와, 상기 상위 블록의 두 모서리들에 위치한 두 픽셀들에 대응되는 제 2 텍스쳐 좌표들간의 제 2 거리를 이용하여 상기 유사성을 판단하는, 그래픽스 프로세싱 장치.
  15. 제 14 항에 있어서,
    상기 제 1 텍스쳐 좌표들은
    상기 결정된 레퍼런스 쿼드의 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리를 갖는 두 텍스쳐 좌표들이고,
    상기 제 2 텍스쳐 좌표들은
    상기 상위 블록의 네 모서리들에 위치한 네 픽셀들에 대응되는 텍스쳐 좌표들 중 최대 거리를 갖는 두 텍스쳐 좌표들인, 그래픽스 프로세싱 장치.
  16. 제 14 항에 있어서,
    상기 유사성 판단부는
    상기 결정된 레퍼런스 쿼드의 상기 두 픽셀들과 상기 상위 블록의 상기 두 모서리들에 위치한 상기 두 픽셀들이 서로 대응되는 위치들의 픽셀들인 경우에, 상기 제 1 거리 및 상기 제 2 거리를 이용하여 상기 유사성을 판단하는, 그래픽스 프로세싱 장치.
  17. 삭제
  18. 삭제
  19. 제 13 항에 있어서,
    상기 상위 블록은
    8개의 픽셀들의 1×2 쿼드들, 8개의 픽셀들의 2×1 쿼드들, 16개의 픽셀들의 2×2 쿼드들, 32개의 픽셀들의 4×2 쿼드들, 32개의 픽셀들의 2×4 쿼드들 및 64개의 픽셀들의 4×4 쿼드들 중 어느 하나를 포함하는 블록인, 그래픽스 프로세싱 장치.
  20. 제 13 항에 있어서,
    상기 LOD 결정부는
    상기 결정된 레퍼런스 쿼드와 상기 상위 블록이 유사하지 않다고 판단된 경우, 상기 상위 블록에 포함된 나머지 쿼드들에 대한 LOD들을 상기 결정된 레퍼런스 쿼드에 대한 상기 LOD와 별도로 개별적으로 결정하는, 그래픽스 프로세싱 장치.
KR1020150135551A 2015-09-24 2015-09-24 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법 Active KR102477265B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020150135551A KR102477265B1 (ko) 2015-09-24 2015-09-24 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법
US15/073,731 US9898838B2 (en) 2015-09-24 2016-03-18 Graphics processing apparatus and method for determining level of detail (LOD) for texturing in graphics pipeline
EP16166069.1A EP3147866B1 (en) 2015-09-24 2016-04-19 Graphics processing apparatus and method for determining level of detail (lod) for texturing in graphics pipeline
JP2016184079A JP2017062789A (ja) 2015-09-24 2016-09-21 グラフィックス処理装置、及びテクスチャリングのためのlodを決定する方法
CN201610836335.6A CN107016716B (zh) 2015-09-24 2016-09-21 确定细节级别的图形处理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150135551A KR102477265B1 (ko) 2015-09-24 2015-09-24 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법

Publications (2)

Publication Number Publication Date
KR20170036419A KR20170036419A (ko) 2017-04-03
KR102477265B1 true KR102477265B1 (ko) 2022-12-13

Family

ID=55967012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150135551A Active KR102477265B1 (ko) 2015-09-24 2015-09-24 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법

Country Status (5)

Country Link
US (1) US9898838B2 (ko)
EP (1) EP3147866B1 (ko)
JP (1) JP2017062789A (ko)
KR (1) KR102477265B1 (ko)
CN (1) CN107016716B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109064535B (zh) * 2018-07-19 2023-05-23 南京军微半导体科技有限公司 Gpu中一种纹理贴图的硬件加速实现方法
US10657699B1 (en) * 2018-12-08 2020-05-19 Arm Limited Performing texturing operations for sets of plural execution threads in graphics processing systems
US20220343583A1 (en) * 2019-10-21 2022-10-27 Sony Group Corporation Information processing apparatus, 3d data generation method, and program
US11833423B2 (en) * 2020-09-29 2023-12-05 Activision Publishing, Inc. Methods and systems for generating level of detail visual assets in a video game
US11724188B2 (en) 2020-09-29 2023-08-15 Activision Publishing, Inc. Methods and systems for selecting a level of detail visual asset during the execution of a video game
US11717753B2 (en) 2020-09-29 2023-08-08 Activision Publishing, Inc. Methods and systems for generating modified level of detail visual assets in a video game
CN114419236B (zh) * 2022-01-24 2025-02-11 深圳中微电科技有限公司 一种硬件实现细节级别渐变精度优化的方法
CN116168138B (zh) * 2023-02-21 2024-07-26 格兰菲智能科技股份有限公司 细节层次确定方法、装置、计算机设备、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745768B1 (ko) * 2006-08-29 2007-08-02 삼성전자주식회사 전력 소비를 감소시키기 위한 lod 값 계산 방법과이것을 이용한 3차원 렌더링 시스템

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5760783A (en) * 1995-11-06 1998-06-02 Silicon Graphics, Inc. Method and system for providing texture using a selected portion of a texture map
US5945997A (en) * 1997-06-26 1999-08-31 S3 Incorporated Block- and band-oriented traversal in three-dimensional triangle rendering
US6002407A (en) * 1997-12-16 1999-12-14 Oak Technology, Inc. Cache memory and method for use in generating computer graphics texture
US6232981B1 (en) * 1998-03-26 2001-05-15 Silicon Graphics, Inc. Method for improving texture locality for pixel quads by diagonal level-of-detail calculation
US6104415A (en) * 1998-03-26 2000-08-15 Silicon Graphics, Inc. Method for accelerating minified textured cache access
US6078335A (en) * 1998-06-01 2000-06-20 Ati Technologies, Inc. Method and apparatus for determining level of detail for texture filtering
US6518974B2 (en) * 1999-07-16 2003-02-11 Intel Corporation Pixel engine
US6476813B1 (en) * 1999-11-30 2002-11-05 Silicon Graphics, Inc. Method and apparatus for preparing a perspective view of an approximately spherical surface portion
US6975319B1 (en) * 2000-03-24 2005-12-13 Nvidia Corporation System, method and article of manufacture for calculating a level of detail (LOD) during computer graphics processing
DE10242640A1 (de) * 2002-09-13 2004-03-25 Sp3D Chip Design Gmbh Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint
DE10242639A1 (de) * 2002-09-13 2004-03-25 Sp3D Chip Design Gmbh Verfahren zur Analyse und Modifikation eines Footprints
TWI249144B (en) * 2003-02-21 2006-02-11 Via Tech Inc Single level MIP filtering algorithm for anisotropic texturing
GB2400778B (en) * 2003-04-15 2006-02-01 Imagination Technologi Limited Efficient bump mapping using height map
US7369136B1 (en) * 2004-12-17 2008-05-06 Nvidia Corporation Computing anisotropic texture mapping parameters
US7271810B1 (en) * 2005-03-01 2007-09-18 Nvidia Corporation Spread-compensated anisotropic texture sampling
JP4660254B2 (ja) * 2005-04-08 2011-03-30 株式会社東芝 描画方法及び描画装置
US7369140B1 (en) 2005-06-03 2008-05-06 Nvidia Corporation System, apparatus and method for subpixel shifting of sample positions to anti-alias computer-generated images
JP4784322B2 (ja) * 2006-01-31 2011-10-05 ソニー株式会社 画像処理装置
US7965296B2 (en) * 2006-06-20 2011-06-21 Via Technologies, Inc. Systems and methods for storing texture map data
US9007389B1 (en) * 2006-08-24 2015-04-14 Nvidia Corporation Texture map component optimization
US7663621B1 (en) * 2006-11-03 2010-02-16 Nvidia Corporation Cylindrical wrapping using shader hardware
US8106918B2 (en) 2007-05-01 2012-01-31 Vivante Corporation Apparatus and method for texture level of detail computation
US8233006B2 (en) 2008-10-10 2012-07-31 Advanced Micro Devices, Inc. Texture level tracking, feedback, and clamping system for graphics processors
KR101607948B1 (ko) * 2009-12-28 2016-04-01 삼성전자주식회사 영상 처리 장치 및 방법
US8587602B2 (en) * 2010-08-16 2013-11-19 Microsoft Corporation GPU texture tile detail control
TWI528328B (zh) * 2012-04-20 2016-04-01 財團法人資訊工業策進會 依據貼圖影像內容決定選擇細節層次之三維貼圖處理方法、裝置以及儲存其之電腦可讀取記錄媒體
US9064337B2 (en) * 2012-06-05 2015-06-23 Apple Inc. Method, system and apparatus for rendering a map with adaptive textures for map features
CN102903128B (zh) * 2012-09-07 2016-12-21 北京航空航天大学 基于局部特征结构保持的视频图像内容编辑传播方法
US9235758B1 (en) * 2014-06-30 2016-01-12 Adobe Systems Incorporated Robust method to find layout similarity between two documents
US9811940B2 (en) * 2014-11-19 2017-11-07 Qualcomm Innovation Center, Inc. Bandwidth reduction using vertex shader
US10593095B2 (en) * 2015-06-12 2020-03-17 Intel Corporation Facilitating increased precision in mip-mapped stitched textures for graphics computing devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745768B1 (ko) * 2006-08-29 2007-08-02 삼성전자주식회사 전력 소비를 감소시키기 위한 lod 값 계산 방법과이것을 이용한 3차원 렌더링 시스템

Also Published As

Publication number Publication date
CN107016716B (zh) 2021-09-21
US9898838B2 (en) 2018-02-20
KR20170036419A (ko) 2017-04-03
CN107016716A (zh) 2017-08-04
US20170091961A1 (en) 2017-03-30
EP3147866B1 (en) 2021-08-18
EP3147866A1 (en) 2017-03-29
JP2017062789A (ja) 2017-03-30

Similar Documents

Publication Publication Date Title
KR102477265B1 (ko) 그래픽스 프로세싱 장치 및 그래픽스 파이프라인의 텍스쳐링을 위한 LOD(level of detail)를 결정하는 방법
US10733691B2 (en) Fragment shaders perform vertex shader computations
KR102651126B1 (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
EP3008701B1 (en) Using compute shaders as front end for vertex shaders
US10592242B2 (en) Systems and methods for rendering vector data on static and dynamic-surfaces using screen space decals and a depth texture
US9530241B2 (en) Clipping of graphics primitives
KR102701851B1 (ko) 큐브 맵을 텍스쳐링하기 위한 LOD(level of detail)를 결정하는 방법 및 장치
US10140750B2 (en) Method, display adapter and computer program product for improved graphics performance by using a replaceable culling program
US7928984B1 (en) Efficient data packaging for rendering bézier curves on a GPU
KR20180055446A (ko) 타일 기반 렌더링 방법 및 장치
US10019802B2 (en) Graphics processing unit
GB2476140A (en) Shadow rendering using stencil and depth buffers
US20170098294A1 (en) Method and apparatus for executing graphics pipeline
KR20180056316A (ko) 타일-기반 렌더링을 수행하는 방법 및 장치
US8068106B1 (en) Rendering cubic Bézier curves as quadratic curves using a GPU
EP3324363B1 (en) Method and apparatus for rendering a curve
US10262391B2 (en) Graphics processing devices and graphics processing methods
US20150145858A1 (en) Method and apparatus to process current command using previous command information
US10192348B2 (en) Method and apparatus for processing texture
US10311627B2 (en) Graphics processing apparatus and method of processing graphics pipeline thereof
US11030792B1 (en) System and method for packing sparse arrays of data while preserving order
KR20170075440A (ko) 텍스쳐의 배치를 결정하는 방법 및 장치.
US11417059B1 (en) System and method for reading arrays of data by rebuilding an index buffer while preserving order
CN118262026A (zh) 基于光线追踪的相交判断方法、处理器、系统及电子设备
JP2015032099A (ja) ソート機能を持つ画像処理装置及び画像処理方法

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20150924

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200915

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20150924

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20220314

Patent event code: PE09021S01D

PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220923

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20221208

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20221209

End annual number: 3

Start annual number: 1

PG1601 Publication of registration