KR102477264B1 - 텍스쳐를 처리하는 방법 및 장치 - Google Patents
텍스쳐를 처리하는 방법 및 장치 Download PDFInfo
- Publication number
- KR102477264B1 KR102477264B1 KR1020150133886A KR20150133886A KR102477264B1 KR 102477264 B1 KR102477264 B1 KR 102477264B1 KR 1020150133886 A KR1020150133886 A KR 1020150133886A KR 20150133886 A KR20150133886 A KR 20150133886A KR 102477264 B1 KR102477264 B1 KR 102477264B1
- Authority
- KR
- South Korea
- Prior art keywords
- texels
- block
- texel
- pattern
- values
- Prior art date
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Geometry (AREA)
- Software Systems (AREA)
Abstract
텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 나눈 텍셀 블록을 수신하는 단계, 상기 텍셀 블록에 대한 블록 패턴을 결정하는 단계 및 상기 블록 패턴에 기초하여, 상기 텍셀 블록을 압축하는 단계를 포함하는 텍스쳐 압축 방법이 개시된다.
Description
다양한 실시예들은 텍스쳐(texture)를 구성하는 텍셀(texel) 또는 픽셀(pixel)들을 소정의 블록 단위로 압축하는 방법 및 장치, 압축된 텍셀 블록(compressed texel block)을 처리하는 방법 및 장치에 관한 것이다.
3차원 그래픽스의 각 프레임에 대한 렌더링을 수행할 때, 많은 연산이 수행되므로, 많은 전력과 하드웨어 리소스가 요구된다. 따라서, 3차원 그래픽스 렌더링을 수행할 때, 연산량을 줄이는 것이 중요하다.
3차원 그래픽스 렌더링 과정 중 픽셀 쉐이딩 과정에서의 연산량을 줄이고 렌더링 속도를 가속하기 위해, 그래픽 처리 장치(Graphic Processing Unit, GPU)는 텍스쳐 처리 장치(texture prcessing unit)를 포함하고 있다.
텍스쳐 처리 장치는 텍스쳐링(texturing)에 필요한 텍스쳐를 생성하는 작업을 수행한다. 텍스쳐링은 3차원 공간에 형성된 오브젝트(object)에 미리 준비된 이미지를 입히는 작업으로, 연산량을 줄이기 위한 3차원 그래픽스 렌더링의 중요 동작 중 하나이다. 이때, 미리 준비된 이미지를 텍스쳐(texture)라고 부르며, 텍스쳐는 텍스쳐 처리 장치 외부의 메모리에 압축된 형태로 미리 준비되어 있을 수 있다.
텍스쳐 처리 장치는 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 압축한 압축 텍셀 블록을 외부의 메모리로부터 수신하여 처리함으로써, 쉐이더 코어로부터 요청된 텍스쳐를 전송한다.
텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 압축할 때, 블록 패턴을 이용하여, 전체 텍셀들이 아닌 일부 텍셀들에 대하여, 압축을 수행하는 텍스쳐 압축 방법 및 장치를 제공하는 데 있다.
또한, 압축을 수행한 일부 텍셀들을 압축 해제하고, 나머지 텍셀들에 대한 텍셀 값들은 압축 해제한 일부 텍셀들에 대한 텍셀 값들을 이용하여, 획득하는 텍스쳐 처리 방법 및 장치를 제공하는 데 있다.
일 실시예에 따른 텍스쳐 압축 방법은, 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 나눈 텍셀 블록을 수신하는 단계, 상기 텍셀 블록에 대한 블록 패턴을 결정하는 단계 및 상기 블록 패턴에 기초하여, 상기 텍셀 블록을 압축하는 단계를 포함할 수 있다.
일 실시예에 따른 블록 패턴은, 상기 텍셀 블록을 구성하는 텍셀들을, 가중치 또는 인덱스를 계산할 제1 텍셀들과 상기 가중치 또는 인덱스를 계산하지 않을 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴일 수 있다.
일 실시예에 따른 텍셀 블록에 대한 블록 패턴을 결정하는 단계는, 복수의 블록 패턴들 각각에 대해 상기 제1 텍셀들에 대한 텍셀 값들과 상기 제2 텍셀들에 대한 텍셀 값들의 차이 값을 계산하는 단계, 및 상기 복수의 블록 패턴들 중 계산된 차이 값이 가장 작은 블록 패턴을 상기 텍셀 블록에 대한 블록 패턴으로 결정하는 단계를 포함할 수 있다.
일 실시예에 따른 텍셀 블록을 압축하는 단계는, 상기 텍셀 블록을 구성하는 텍셀들에 대한 적어도 하나의 대표 값을 결정하는 단계, 상기 적어도 하나의 대표 값에 기초하여, 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 계산하는 단계를 포함할 수 있다.
일 실시예에 따른 텍셀 블록을 압축하는 단계는, 상기 블록 패턴, 상기 적어도 하나의 대표값, 및 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 포함하는 압축 데이터를 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 텍셀 블록을 압축하는 단계는, 상기 텍셀들 중 제2 텍셀들에 대한 가중치 또는 인덱스에 대응하는 데이터 비트들(bits)을 상기 적어도 하나의 대표 값을 나타내는 데이터 비트들, 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 나타내는 데이터 비트들, 및 상기 블록 패턴을 나타내는 데이터 비트들 중 적어도 하나에 추가로 할당하는 단계를 더 포함할 수 있다.
일 실시예에 따른 텍셀 블록에 포함되는 텍셀들은 대칭성을 가질 수 있다.
일 실시예에 따른 텍스쳐 처리 방법은, 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 압축한, 압축 데이터를 수신하는 단계, 상기 압축 데이터에 포함된 블록 패턴을 추출하는 단계, 및 상기 블록 패턴에 기초하여, 상기 압축 데이터를 압축 해제하고(decompressing), 텍셀 블록을 구성하는 텍셀들을 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 텍셀들을 획득하는 단계는, 상기 압축 데이터에 기초하여, 상기 텍셀 블록을 구성하는 텍셀들에 대한 적어도 하나의 대표 값 및 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 획득하는 단계, 상기 블록 패턴, 상기 적어도 하나의 대표 값 및 상기 가중치 또는 인덱스들을 이용하여, 상기 제1 텍셀들에 대한 텍셀 값들을 획득하는 단계 및 상기 블록 패턴 및 상기 획득한 상기 제1 텍셀들에 대한 텍셀 값들에 기초하여, 상기 제2 텍셀들에 대한 텍셀 값들을 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 제2 텍셀들에 대한 텍셀 값들을 획득하는 단계는, 상기 제1 텍셀들에 대한 텍셀 값들 중 어느 하나를 복사하여, 상기 제2 텍셀들에 대한 텍셀 값들 중 어느 하나를 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 텍스쳐 압축 장치는, 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 나눈 텍셀 블록을 수신하여, 상기 텍셀 블록에 대한 블록 패턴을 결정하는 블록 패턴 결정부, 및 상기 블록 패턴에 기초하여, 상기 텍셀 블록을 압축하는 압축부를 포함할 수 있다.
일 실시예에 따른 블록 패턴 결정부는, 복수의 블록 패턴들 각각에 대해 상기 제1 텍셀들에 대한 텍셀 값들과 상기 제2 텍셀들에 대한 텍셀 값들의 차이 값을 계산하고, 상기 복수의 블록 패턴들 중 계산된 차이 값이 가장 작은 블록 패턴을 상기 텍셀 블록에 대한 블록 패턴으로 결정할 수 있다.
일 실시예에 따른 압축부는, 상기 텍셀 블록을 구성하는 텍셀들에 대한 적어도 하나의 대표 값을 결정하고, 상기 적어도 하나의 대표 값에 기초하여, 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 계산할 수 있다.
일 실시예에 따른 압축부는, 상기 블록 패턴, 상기 적어도 하나의 대표 값, 및 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 포함하는 압축 데이터를 생성할 수 있다.
일 실시예에 따른 압축부는, 상기 텍셀들 중 제2 텍셀들에 대한 가중치 또는 인덱스에 대응하는 데이터 비트들(bits)을 상기 적어도 하나의 대표 값을 나타내는 데이터 비트들, 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 나타내는 데이터 비트들, 및 상기 블록 패턴을 나타내는 데이터 비트들 중 적어도 하나에 추가로 할당할 수 있다.
일 실시예에 따른 텍스쳐 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 압축한, 압축 데이터를 수신하여, 상기 압축 데이터에 포함된 블록 패턴을 추출하는 블록 패턴 추출부, 및 상기 블록 패턴에 기초하여, 상기 압축 데이터를 압축 해제하고(decompressing), 텍셀 블록을 구성하는 텍셀들을 획득하는 압축 해제부를 포함할 수 있다.
일 실시예에 따른 압축 해제부는, 상기 압축 데이터에 기초하여, 상기 블록 패턴, 상기 텍셀 블록을 구성하는 텍셀들에 대한 적어도 하나의 대표 값 및 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 획득하고, 상기 블록 패턴, 상기 적어도 하나의 대표값 및 상기 가중치 또는 인덱스들을 이용하여, 상기 제1 텍셀들에 대한 텍셀 값들을 획득하며, 상기 블록 패턴 및 상기 획득한 상기 제1 텍셀들에 대한 텍셀 값들 기초하여, 상기 제2 텍셀들에 대한 텍셀 값들을 획득할 수 있다.
일 실시예에 따른 압축 해제부는, 상기 제1 텍셀들에 대한 텍셀 값들 중 어느 하나를 복사(replicate)하여, 상기 제2 텍셀들에 대한 텍셀 값들 중 어느 하나를 획득할 수 있다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타내는 도면이다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 나타내는 도면이다.
도 3은 일 실시예에 따른 텍스쳐 압축 장치의 구성을 나타내는 블록도이다.
도 4는 일 실시예에 따른 텍셀 블록을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 블록 패턴들을 나타내는 도면이다.
도 6은 일 실시예에 따른 블록 패턴에 기초하여 텍셀 블록을 압축하는 방법을 설명하기 위해 참조되는 도면이다.
도 7은 일 실시예에 따른 텍스쳐 처리 장치의 구성을 나타내는 블록도이다.
도 8은 일 실시예에 따른 압축 데이터를 압축 해제하는 방법을 설명하기 위해 참조되는 도면이다.
도 9는 일 실시예에 따른 텍스쳐 처리 장치의 구성을 나타내는 블록도이다.
도 10은 일 실시예에 따른 텍셀 블록을 압축하는 방법을 나타내는 흐름도이다.
도 11은 도 10의 단계 930(S930)를 구체적으로 나타내는 흐름도이다.
도 12는 일 실시예에 따른 텍셀 블록을 압축 해제하는 방법을 나타내는 흐름도이다.
도 13은 도 12의 단계 1130(S1130)를 구체적으로 나타내는 흐름도이다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 나타내는 도면이다.
도 3은 일 실시예에 따른 텍스쳐 압축 장치의 구성을 나타내는 블록도이다.
도 4는 일 실시예에 따른 텍셀 블록을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 블록 패턴들을 나타내는 도면이다.
도 6은 일 실시예에 따른 블록 패턴에 기초하여 텍셀 블록을 압축하는 방법을 설명하기 위해 참조되는 도면이다.
도 7은 일 실시예에 따른 텍스쳐 처리 장치의 구성을 나타내는 블록도이다.
도 8은 일 실시예에 따른 압축 데이터를 압축 해제하는 방법을 설명하기 위해 참조되는 도면이다.
도 9는 일 실시예에 따른 텍스쳐 처리 장치의 구성을 나타내는 블록도이다.
도 10은 일 실시예에 따른 텍셀 블록을 압축하는 방법을 나타내는 흐름도이다.
도 11은 도 10의 단계 930(S930)를 구체적으로 나타내는 흐름도이다.
도 12는 일 실시예에 따른 텍셀 블록을 압축 해제하는 방법을 나타내는 흐름도이다.
도 13은 도 12의 단계 1130(S1130)를 구체적으로 나타내는 흐름도이다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “…부”, “…모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타내는 도면이다.
도 1을 참조하면, 그래픽 처리 장치(100)는 래스터라이저(rasterizer, 110), 쉐이더 코어(Shader core, 120), 텍스쳐 처리 장치(Texture processing unit,130), 픽셀 처리 장치(Pixel processing unit, 140), 타일 버퍼(tile buffer, 150)를 포함할 수 있다.
또한, 그래픽 처리 장치(100)는 버스(30)를 통하여, 외부의 메모리(200)와 데이터를 송수신할 수 있다.
도 1에 도시된 그래픽 처리 장치(100)는 3차원 그래픽스를 처리하는 장치로서, 타일에 기초한 렌더링(TBR; Tile based rendering, TBR) 방식을 사용할 수 있다. 예를 들어, 그래픽 처리 장치(100)는 프레임을 일정한 크기의 타일들로 분할하고, 분할된 복수의 타일들을 래스터라이저(110), 쉐이더 코어(120), 픽셀 처리 장치(140)에서 처리하며, 처리 결과를 타일 버퍼(150)에 저장할 수 있다. 또한, 그래픽 처리 장치(100)는 래스터라이저(110), 쉐이더 코어(120), 및 픽셀 처리 장치(140)로 구성되는 채널을 복수 개 이용하여, 하나의 프레임을 구성하는 모든 타일들을 병렬 처리할 수 있다. 그래픽 처리 장치(100)는 하나의 프레임을 구성하는 모든 타일들이 처리되면, 타일 버퍼(150)에 저장된 처리 결과를 메모리(200)의 프레임 버퍼(미도시)로 전송할 수 있다.
쉐이더 코어(120)는 픽셀 쉐이더(미도시)를 포함할 수 있다. 또한, 쉐이더 코어(120)는 정점 쉐이더(vertex shader)를 더 포함한 형태이거나, 정점 쉐이더와 픽셀 쉐이더가 통합된 형태의 통합 쉐이더일 수도 있다. 쉐이더 코어(120)가 정점 쉐이더의 기능을 수행할 수 있는 경우, 오브젝트를 나타내는 프리미티브(primitive)를 생성하여, 래스터라이저(110)에 전달할 수 있다.
래스터라이저(110)는 기하 변환 과정을 거쳐 정점 쉐이더로부터 생성된 프리미티브를 래스터화할 수 있다. 프리미티브를 래스터화하는 것은 프리미티브를 복수의 프래그먼트들로 분할하는 것을 의미한다.
쉐이더 코어(120)는 래스터라이저(110)로부터 래스터화된 프리미티브를 전달받아, 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 래스터화를 거쳐 생성된 프래그먼트들의 색상을 결정하는 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 픽셀 쉐이딩 과정에서 입체적이고 현실감있는 3차원 그래픽스를 생성하기 위해 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다.
쉐이더 코어(120)가 텍스쳐 처리 장치(130)에 픽셀 값을 요청하면, 텍스쳐 처리 장치(130)는 미리 준비된 텍스쳐를 처리하여 생성된 픽셀 값을 쉐이더 코어(120)로 전달할 수 있다. 텍스쳐는 텍스쳐 처리 장치(130) 내부 또는 외부의 소정의 공간 또는 그래픽 처리 장치(100)의 외부의 메모리(200)에 저장되어 있을 수 있다. 텍스쳐 처리 장치(130)는 쉐이더 코어(120)에서 요청한 픽셀 값을 생성하는데 이용되는 텍스쳐가 텍스쳐 처리 장치(130) 내부의 소정의 공간에 존재하지 않는 경우, 텍스쳐 처리 장치(130) 외부의 공간 또는 메모리(200)로부터 텍스쳐를 가져올 수 있다.
픽셀 처리 장치(140)는 하나의 타일 내에 같은 위치에 대응하는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정할 수 있다.
타일 버퍼(150)는 타일에 포함되는 복수의 픽셀들의 최종적인 픽셀 값들이 저장될 수 있다. 타일에 포함된 모든 픽셀들의 픽셀 값이 결정되면, 타일은 메모리(200)의 프레임 버퍼(미도시)로 출력될 수 있다.
이하, 도 2를 참조하여, 3차원 그래픽스를 처리하는 과정에 대하여 보다 상세하게 설명한다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 나타내는 도면이다.
도 2를 참조하면, 3차원 그래픽스를 처리하는 과정은 11 단계(11) 내지 18 단계(18)들을 포함할 수 있다. 또한, 도 2 하단의 도형들은 각 단계에서 정점(vertex) 또는 픽셀의 처리를 개념적으로 나타낸다.
단계 11(11)은 영상을 나타내는 정점들(vertices)을 생성하는 단계이다. 정점들은 영상에 포함된 오브젝트(object)들을 나타내기 위해 생성된다.
단계 12(12)은 생성된 정점들을 쉐이딩(shading)하는 단계이다. 정점 쉐이더(vertex shader)는 단계 11(11)에서 생성된 정점들의 위치를 지정하여, 정점들에 대한 쉐이딩을 수행할 수 있다.
단계 13(13)은 프리미티브들(primitives)을 생성하는 단계이다. 프리미티브는 점, 선 또는 정점들로부터 형성되는 다각형(polygon)을 나타낸다. 일 예로서, 프리미티브들은 정점들을 연결하여 형성된 삼각형들을 나타낼 수도 있다.
단계 14(14)는 프리미티브를 래스터화(rasterization)하는 단계이다. 프리미티브를 래스터화하는 것은 프리미티브를 복수의 프래그먼트들(fragments)로 분할하는 것을 의미한다. 프래그먼트는 프리미티브를 구성하는 단위이며, 영상 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 정점에 대한 정보만을 포함한다. 따라서, 래스터화하는 단계에서 정점과 정점 사이의 프레그먼트들을 생성할 때 보간(interpolation)이 수행될 수 있다.
단계 15(15)는 픽셀을 쉐이딩하는 단계를 나타낸다. 래스터화에 의해 생성된 프리미티브를 구성하는 프래그먼트들은 타일을 구성하는 픽셀들이 될 수 있다. 당해 분야에서, 프래그먼트와 픽셀이란 용어는 경우에 따라서 혼용해서 사용되기도 한다. 예를 들어, 픽셀 쉐이더는 프래그먼트 쉐이더라고 부를 수 있다. 일반적으로, 프리미티브를 구성하는 그래픽 처리의 기본 단위를 프래그먼트라고 부르고, 이후, 픽셀 쉐이딩부터의 그래픽 처리의 기본 단위를 픽셀이라 부를 수 있다. 픽셀 쉐이딩에서는 픽셀의 색을 결정할 수 있다.
단계 16(16)은 픽셀의 색을 결정하기 위한 텍스쳐링(texturing) 단계를 나타낸다. 텍스쳐링은 픽셀의 색을 결정할 때, 미리 준비된 이미지 즉, 텍스쳐(texture)를 이용하여 픽셀의 색을 결정하는 과정이다. 실세계의 다양한 색상과 패턴의 모습을 표현하기 위해서, 픽셀들 각각의 색상을 계산하는 것은 그래픽 처리에 필요한 데이터 량과 그래픽 처리 시간을 매우 증가시키므로, 미리 준비된 텍스쳐를 이용하여 픽셀의 색상을 결정하는 것이다. 예를 들어, 오브젝트의 표면 색상을 텍스쳐라는 별도의 2차원 영상으로 저장하고, 오브젝트의 화면상의 위치 및 크기 등에 따라 저장된 텍스쳐를 확대 및 축소하거나, 다양한 해상도를 갖는 텍스쳐들을 이용하여 텍셀 값들을 혼합함으로써, 픽셀의 색상을 결정할 수 있다.
단계 17(17)은 테스트 및 믹싱(testing and mixing) 단계를 나타낸다. 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 픽셀 값들을 결정할 수 있다. 이와 같은 과정을 거쳐 생성된 복수 개의 타일들을 믹싱하여, 하나의 프레임에 해당하는 3차원 그래픽스를 생성할 수 있다.
단계 18(18)은 단계 11(11) 내지 단계 17(17)을 통해 생성된 프레임을 프레임 버퍼에 저장하고, 프레임 버퍼에 저장된 프레임을 디스플레이 장치를 통해 표시하는 단계를 나타낸다.
한편, 텍스쳐 처리 장치(130) 내의 소정의 공간에 다양한 오브젝트들에 대한 모든 텍스쳐 및 각 텍스쳐에 대응되는 밉맵들을 저장하는 것은 물리적으로 불가능하다. 텍스쳐 저장에 필요한 공간을 최소화하고 텍스쳐의 전송을 효율적으로 하기 위해, 3차원 그래픽스 렌더링에서는 일반적으로 텍스쳐를 압축하여, 텍스쳐의 저장 또는 전송을 수행한다.
그러나, 텍스쳐를 압축하고, 압축된 텍스쳐를 압축 해제하기 위해, 많은 연산량 및 시간, 이에 따른 전력 소모가 발생하게 된다. 따라서, 텍스쳐를 압축하고, 압축된 형태의 텍스쳐를 압축 해제하는 데 있어서, 보다 효율적인 압축 및 압축 해제 방식이 필요하다.
일 실시예에 따른 텍스쳐 압축 방법 및 장치는, 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 압축할 때, 텍셀 블록의 패턴을 이용하여, 전체 텍셀들이 아닌 일부 텍셀들에 대하여 압축을 수행함으로써, 압축에 대한 연산 과정을 감소시킬 수 있다. 또한, 일 실시예에 따른 텍스쳐 처리 방법 및 장치는, 압축을 수행한 일부 텍셀들을 압축 해제하고, 나머지 텍셀들에 대한 텍셀 값들은 압축 해제한 일부 텍셀들에 대한 텍셀 값들을 이용하여 획득함으로써, 압축 해제에 대한 연산 과정을 감소시킬 수 있다. 이에 따라, 효율적인 그래픽 처리를 수행할 수 있다.
도 3은 일 실시예에 따른 텍스쳐 압축 장치의 구성을 나타내는 블록도이다.
도 3을 참조하면, 텍스쳐 압축 장치(300)는 블록 패턴 결정부(310) 및 압축부(320)를 포함할 수 있다.
블록 패턴 결정부(310)는 텍셀 블록을 수신하여, 수신한 텍셀 블록의 블록 패턴을 결정할 수 있다. 텍셀 블록은 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 나눈 것을 의미한다. 이하, 도 4를 참조하여, 텍셀 블록을 설명한다.
도 4는 일 실시예에 따른 텍셀 블록을 설명하기 위한 도면이다.
텍스쳐는 하드웨어 리소스의 요구 및 통신 환경의 요구를 만족시키기 위해, 3차원 그래픽스 처리 과정에서 압축된 형태로 저장될 수 있다. 텍스쳐 압축 장치(300)는 일반적으로 텍스쳐를 구성하는 텍셀들에 대하여 소정의 블록 단위로 압축을 수행한다.
예를 들어, 도 4를 참조하면, 텍스쳐(400)는 복수 개의 텍셀들을 포함할 수 있으며, 복수 개의 텍셀들은 일정한 크기를 가지는 텍셀 블록들로 나누어질 수 있다. 도 4에서는 텍셀 블록(410)의 크기가 4 x 4인 텍셀 블록(이하, 4 x 4 텍셀 블록)으로 도시하였으나, 이에 한정되는 것은 아니며, 텍셀 블록(410)은 다양한 크기를 가질 수 있다. 다만, 이하에서는 설명의 편의상 텍셀 블록의 크기가 4 x 4 인 것으로 설명하기로 한다.
도 4를 참조하면, 4 x 4 텍셀 블록(410)은, 16개의 텍셀들(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)로 구성될 수 있으며, 텍셀들(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) 각각은 텍셀 값을 가질 수 있다.
텍스쳐(400)가 복수의 텍셀 블록들로 나뉘어 지면, 하나의 텍셀 블록(410)에 포함되는 텍셀 값들은 대칭성을 가질 수 있다. 예를 들어, 4 x 4 텍셀 블록(410)에 포함되는 텍셀 값들은 제1 대각선(415)을 기준으로 좌우 대칭일 수 있다. 제2 텍셀(T1)의 텍셀 값은 제5 텍셀(T4)의 텍셀 값과 동일하고, 제3 텍셀(T2)의 텍셀 값은 제9 텍셀(T8)의 텍셀 값과, 제4 텍셀(T3)의 텍셀 값은 제13 텍셀(T12)의 텍셀 값과, 제7 텍셀(T6)의 텍셀 값은 제10 텍셀(T9)의 텍셀 값과, 제8 텍셀(T7)의 텍셀 값은 제14 텍셀(T13)의 텍셀 값과, 제12 텍셀(T11)의 텍셀 값은 제 15 텍셀(T14)의 텍셀 값과 동일할 수 있다.
이러한 경우, 일 실시예에 따른 텍스쳐 압축 장치(300)는 제1 대각선(415)을 중심으로 왼쪽 또는 오른쪽에 위치한 텍셀에 대해서만 압축을 수행하여, 압축 데이터(예를 들어, 텍셀에 대한 가중치 또는 인덱스)를 생성할 수 있다. 이후, 텍셀 블록에 대한 압축 해제 시, 압축을 수행한 텍셀을 압축 해제하여 텍셀 값을 획득하고, 획득한 텍셀 값을 이용하여, 압축 데이터를 생성하지 않은 텍셀에 대한 텍셀 값을 획득할 수 있다. 이에 따라, 일 실시예에 따른 텍스쳐 압축 및 압축 해제 방법은 텍셀 블록에 포함되는 일부 텍셀들에 대한 압축 및 압축 해제를 수행하지 않음으로써, 연산량, 시간 및 전력 소모를 감소시킬 수 있다.
일 실시예에 따른 압축 방법에서는, 텍셀 블록을 구성하는 텍셀들 중 압축을 수행할 텍셀과 압축을 수행하지 않을 텍셀을 분류하기 위한 블록 패턴이 필요하다. 블록 패턴에 대해서는 도 5를 참조하여 자세히 설명하기로 한다.
도 5는 일 실시예에 따른 블록 패턴들을 나타내는 도면이다.
도 5를 참조하면, 블록 패턴들(511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526)은 텍셀 블록과 동일한 크기를 가지며, 텍셀 블록을 구성하는 텍셀들 각각에 대응하는 복수의 영역들을 포함한다. 복수의 영역들은 회색으로 음영된 제1 영역들과 음영되지 않은 제2 영역들로 나뉘어질 수 있다. 블록 패턴들에서 회색으로 음영된 영역들은, 텍셀 블록에서 압축을 수행할 텍셀들에 대응하고, 블록 패턴들에서 회색으로 음영 표시가 되지 않은 영역들은, 텍셀 블록에서 압축을 수행하지 않을 텍셀들에 대응한다.
한편, 도 5에서는 16개의 블록 패턴을 도시하였지만, 이에 한정되는 것은 아니며, 일 실시예에 따른 복수의 블록 패턴들은 다양한 블록 패턴들을 포함할 수 있다.
블록 패턴 결정부(310)는 다양한 종류의 블록 패턴들 중 텍셀 블록을 압축하는데 이용할 블록 패턴을 결정할 수 있다. 이때, 블록 패턴 결정부(310)는 복수의 블록 패턴들 중, 압축하고자 하는 텍셀 블록의 대칭적인 특성을 가장 잘 반영하는 블록 패턴을 선택할 수 있다. 예를 들어, 블록 패턴 결정부(310)는 복수의 블록 패턴들 각각에 대하여, 회색으로 음영 표시된 제1 영역들에 대응하는 텍셀 값들의 합과 회색으로 음영 표시가 되지 않은 제2 영역들에 대응하는 텍셀 값들의 합의 차이 값을 계산하고, 차이 값이 가장 작은 블록 패턴을 선택할 수 있다. 이때, 차이 값이 가장 작은 블록 패턴이 복수 개 검출되는 경우, 블록 패턴 결정부(310)는 가장 먼저 검출된 블록 패턴을 선택할 수 있다. 또는, 블록 패턴 결정부(310)는 차이 값이 기 설정된 값 미만인 블록 패턴을 선택할 수 있다. 이때, 차이 값이 기 설정된 값 미만인 블록 패턴이 복수 개 검출되는 경우, 블록 패턴 결정부(310)는 가장 먼저 검출된 블록 패턴을 선택할 수 있다. 또는, 블록 패턴 결정부(310)는 사용자 입력에 기초하여, 블록 패턴을 선택할 수 있다. 다만, 블록 패턴을 결정하는 방법은 상술한 방법들에 한정되지 않으며, 다양한 방법으로 결정될 수 있다.
압축부(320)는 텍셀 블록에 대한 블록 패턴이 결정되면, 결정된 블록 패턴에 기초하여, 텍셀 블록을 압축할 수 있다. 압축부(320)는 블록 패턴에 포함되는 영역들 중 제1 영역들(회색으로 음영 표시된 영역들)에 대응하는 텍셀들에 대해서는 압축을 수행하고, 제2 영역들(회색으로 음영 표시되지 않은 영역들)에 대응하는 텍셀들에 대해서는 압축을 수행하지 않을 수 있다.
블록 패턴에 기초하여 텍셀 블록을 압축하는 방법에 대해서는 도 6을 참조하여 자세히 설명하기로 한다.
도 6은 일 실시예에 따른 블록 패턴에 기초하여 텍셀 블록을 압축하는 방법을 설명하기 위해 참조되는 도면이다.
도 6을 참조하면, 압축부(320)는 텍셀 블록을 구성하는 텍셀들에 대한 적어도 하나의 대표값을 결정할 수 있다. 예를 들어, 텍셀 블록을 구성하는 텍셀 들에 대한 텍셀 값들 중에서 가장 큰 값(ep0)과 가장 작은 값(ep1)(엔드 포인트(end point) 값들)을 대표 값으로 결정할 수 있다. 다만, 이에 한정되는 것은 아니며, 다양한 방식으로 대표 값이 결정될 수 있다.
압축부(320)는 대표 값이 결정되면, 텍셀 블록을 구성하는 텍셀들 중 일부 텍셀들에 대한 가중치를 계산할 수 있다. 텍셀에 대한 가중치는 대표 값을 이용하여, 텍셀 값을 표현하기 위해 적어도 하나의 대표 값들에 적용되는 가중치를 의미한다. 예를 들어, T(텍셀 값)=w0*ep0(제1 대표 값)+(1-w0)*ep1(제2 대표 값)으로 표현되는 경우, 가중치는 w0일 수 있다.
압축부(320)는 결정된 블록 패턴(610)을 이용하여, 가중치를 계산할 일부 텍셀들을 결정할 수 있다. 예를 들어, 결정된 블록 패턴(610)에 포함되는 영역들 중 회색으로 음영 표시가 된 영역들에 대응하는 텍셀들(제1 텍셀들)에 대해서만 가중치를 계산할 수 있다. 예를 들어, 압축부(610)는 제1 텍셀(T0), 제2 텍셀(T1), 제3 텍셀(T2), 제4 텍셀(T3), 제7 텍셀(T6), 제8 텍셀(T7), 제12 텍셀(T11), 제16 텍셀(T15)에 대해서 가중치를 계산할 수 있다.
압축부(320)는 텍셀 블록에 대한 블록 패턴, 텍셀 블록에 대한 적어도 하나의 대표 값, 텍셀 블록을 구성하는 일부 텍셀에 대한 가중치를 포함하는 압축 데이터(630)를 생성할 수 있다.
도 6을 참조하면, 4 x 4 텍셀 블록에 대한 압축 데이터(630)는 블록 패턴을 나타내는 데이터(BP0), 적어도 하나의 대표 값을 나타내는 데이터(ep0, ep1), 일부 텍셀들에 대한 가중치를 나타내는 데이터(w0, w1, w2, w3, w4, w5, w6, w7)를 저장한 형태일 수 있다.
또는, 도시하지는 않았지만, 압축부(320)는 텍셀 블록을 구성하는 일부 텍셀에 대한 가중치 대신에, 일부 텍셀에 대한 인덱스를 포함하는 압축 데이터를 생성할 수 있다. 예를 들어, 인덱스는 미리 계산된 복수의 포인트 컬러 값들 중 어느 하나를 선택하기 위한 데이터를 의미한다. 복수의 포인트 컬러 값들은 적어도 하나의 대표 값에 기초하여 계산될 수 있으며, 이때, 적어도 하나의 대표 값은 텍셀 블록을 구성하는 텍셀들에 대한 텍셀 값들 중에서 가장 큰 값(ep0)과 가장 작은 값(ep1)(엔드 포인트(end point) 값들)을 포함할 수 있다. 또한, 복수의 포인트 컬러 값들은 다양한 방법을 이용하여 계산될 수 있다.
일 예로, 인덱스에 할당된 비트가 2 bits인 경우, 4개의 포인트 컬러 값들 중 하나가 선택될 수 있으며, 텍셀은 인덱스에 의해 선택된 포인트 컬러 값을 가질 수 있다.
압축부(320)는 블록 패턴에 기초하여, 인덱스를 계산할 일부 텍셀들을 결정하고, 결정된 텍셀들에 대해서만 인덱스를 계산할 수 있다. 따라서, 4 x 4 텍셀 블록에 대한 압축 데이터는 블록 패턴을 나타내는 데이터, 적어도 하나의 대표 값을 나타내는 데이터, 일부 텍셀들에 대한 인덱스를 나타내는 데이터를 저장한 형태일 수 있다.
블록 패턴의 종류가 도 5에 도시된 바와 같이, 16개인 경우, 블록 패턴을 나타내는 데이터(BP0)에 4bits가 할당될 수 있다. 또한, 하나의 대표 값(end point)을 나타내는 데이터에는 8bits가 할당되며, 하나의 가중치 또는 인덱스를 나타내는 데이터에는 2 bits가 할당될 수 있다.
블록 패턴(610)을 이용하지 않고, 4 x 4 텍셀 블록(620)에 포함되는 모든 텍셀들에 대하여, 가중치 또는 인덱스를 계산하여, 압축 데이터에 포함시키는 경우에는 가중치 또는 인덱스에 사용되는 비트수가 32bits(=2bits x 16)이다. 반면에, 도 6에서 설명한 바와 같이, 블록 패턴(610)을 이용하여, 텍셀 블록에 포함되는 16개의 텍셀들 중 8개의 텍셀들에 대해서만 가중치 또는 인덱스를 계산하고, 계산된 가중치 또는 인덱스를 압축 데이터에 포함시키는 경우에는, 가중치에 사용되는 비트수가 16bits(=2bits x 8)이다. 블록 패턴에 할당되는 4bits를 제외하고도 압축 데이터에 사용되는 비트수를 12 bits 감소시킬 수 있다.
일 실시예에 따른 압축부(320)는 감소된 비트들(optional bits, 나머지 텍셀들(T4, T5, T8, T9, T10, T12, T13, T14)에 대한 가중치 또는 인덱스에 대응하는 데이터 비트들)을 대표 값을 나타내는 데이터 비트들에 더 할당하여, 대표 값의 개수를 증가시킬 수 있다. 또는, 감소된 비트들을, 블록 패턴을 나타내는 데이터 비트들에 더 할당하여, 블록 패턴의 종류를 더 다양하게 할 수 있다. 또는, 일부 텍셀들에 대한 가중치 또는 인덱스를 나타내는 데이터 비트들에 더 할당할 수 있다.
추가 비트들(optional bits)을 이용하여, 대표 값의 개수를 증가시키거나, 블록 패턴의 종류를 더 다양하게 하는 경우, 텍스쳐의 원본과 텍셀 블록을 압축 해제하여 획득한 텍스쳐의 차이를 감소시킬 수 있다.
한편, 도 6에서는 블록 패턴(610)에 기초하여, 텍셀 블록에 포함되는 텍셀들 중 일부 텍셀에 대해서만 가중치 또는 인덱스를 계산하여, 텍셀 블록을 압축하는 것에 대해서만 설명하였지만, 다양한 종류의 블록 패턴들 중 텍셀 블록을 압축하는데 적절한 블록 패턴이 검출되지 않는 경우, 텍스쳐 압축 장치(300)는 텍셀 블록에 포함되는 모든 텍셀들에 대하여, 가중치 또는 인덱스를 계산할 수 있다. 이러한 경우, 압축 데이터는, 적어도 하나의 대표 값을 나타내는 데이터, 텍셀 블록에 포함되는 모든 텍셀들에 대한 가중치 또는 인덱스를 나타내는 데이터를 저장한 형태일 수 있다.
텍스쳐 압축 장치(300)는 압축 데이터를 메모리(200)에 저장할 수 있다.
도 7은 일 실시예에 따른 텍스쳐 처리 장치의 구성을 나타내는 블록도이다.
도 7을 참조하면, 텍스쳐 처리 장치(130)는 블록 패턴 추출부(710) 및 압축 해제부(720)를 포함할 수 있다.
블록 패턴 추출부(710)는 텍스쳐 처리 장치(130) 내부 또는 외부의 메모리(200)로부터 텍셀 블록을 압축한 압축 데이터를 수신하고, 압축 데이터에 포함된 블록 패턴을 추출할 수 있다. 예를 들어, 블록 패턴 추출부(710)는 도 8에 도시된 바와 같이, 압축 데이터(830)에 포함된 블록 패턴을 나타내는 데이터(BP0)를 디코딩하여, 블록 패턴(810)을 추출할 수 있다.
압축 해제부(710)는 블록 패턴에 기초하여, 수신한 압축 데이터를 압축 해제하여, 텍셀 블록을 구성하는 텍셀들에 대한 텍셀 값들을 획득할 수 있다. 압축 해제부(710)가 압축 데이터를 압축 해제하여, 텍셀 값들을 획득하는 방법에 대해서는, 도 8을 참조하여 자세히 설명하기로 한다.
도 8은 일 실시예에 따른 압축 데이터를 압축 해제하는 방법을 설명하기 위해 참조되는 도면이다.
도 8을 참조하면, 압축 해제부(710)는 압축 데이터에 포함된 대표 값을 나타내는 데이터, 가중치 또는 인덱스를 나타내는 데이터들을 디코딩하여, 텍셀 블록에 대한 대표 값, 텍셀 블록에 포함되는 일부 텍셀들 각각에 대한 가중치 또는 인덱스를 획득할 수 있다. 이하에서는, 압축 데이터에 가중치를 나타내는 데이터가 포함된 경우를 예로 들어 설명하기로 한다.
예를 들어, 압축 해제부(710)는 대표값 파서(parser)를 포함하여, 압축 데이터(830)에 포함된 대표 값을 나타내는 데이터(ep0, ep1)를 디코딩 하고, 가중치 파서를 포함하여, 가중치를 나타내는 데이터(w0, w1, w2, w3, w4, w5, w6, w7)를 디코딩할 수 있다. 이에 따라, 압축 해제부(710)는 텍셀 블록에 대한 대표 값, 텍셀 블록에 포함되는 일부 텍셀들 각각에 대한 가중치를 획득할 수 있다.
압축 해제부(710)는 텍셀 블록에 대한 블록 패턴, 텍셀 블록에 대한 대표 값, 텍셀 블록에 포함되는 일부 텍셀들 각각에 대한 가중치를 이용하여, 텍셀 블록을 구성하는 텍셀들(T0, T1, T2, T3, T6, T7, T11, T15)에 대한 텍셀 값들을 계산할 수 있다. 구체적으로, 압축 해제부(710)는 보간부를 포함하여, 텍셀 블록에 대한 대표 값과 가중치를 이용한 인터폴레이션을 수행하여, 텍셀 블록을 구성하는 일부 텍셀들(T0, T1, T2, T3, T6, T7, T11, T15)에 대한 텍셀 값들을 생성할 수 있다. 예를 들어, 제1 텍셀(T0)에 대한 텍셀 값은 대표 값들(ep0, ep1)과 제1 텍셀(T0)에 대한 가중치(w0)를 이용하여 계산할 수 있다. 또한, 압축 해제부(710)는 복수 개의 텍셀 값을 병렬적으로 처리할 수 있도록, 복수의 보간부(interpolation unit)들을 포함할 수 있다.
한편, 압축 데이터에 인덱스를 나타내는 데이터가 포함된 경우, 압축 해제부(710)는 압축 데이터를 디코딩하여, 텍셀 블록을 구성하는 일부 텍셀들에 대한 인덱스 획득할 수 있다. 압축 해제부(710)는 인덱스를 이용하여, 일부 텍셀들에 대한 텍셀 값들을 결정할 수 있다. 예를 들어, 일부 텍셀들 각각에 대하여, 인덱스에 의해 선택된 포인트 컬러 값을 텍셀 값으로 결정할 수 있다.
압축 해제부(710)는 일부 텍셀들(T0, T1, T2, T3, T6, T7, T11, T15, 제1 텍셀들)에 대한 텍셀 값들이 계산되면, 추출된 블록 패턴에 기초하여, 나머지 텍셀들(T4, T5, T8, T9, T10, T12, T13, T14, 제2 텍셀들)에 대한 텍셀 값들을 계산할 수 있다.
압축 해제부(710)는 제1 텍셀들 중 어느 하나의 텍셀 값을 제2 텍셀들 중 어느 하나의 텍셀 값으로 복사할 수 있다. 이때, 블록 패턴(810)은 제1 텍셀들 중 어느 하나의 텍셀 값이 제2 텍셀들 중 어느 하나의 텍셀 값으로 복사되는지에 대한 정보를 포함할 수 있다. 예를 들어, 제1 텍셀들 중 제1 텍셀(T0)과 제2 텍셀들 중 제6 텍셀(T5)이 매핑되는 경우, 제1 텍셀(T0)의 텍셀 값을 제6 텍셀(T5)의 텍셀 값으로 복사할 수 있다.
또는, 압축 해제부(710)는 제1 텍셀들의 텍셀 값들을 보간하여, 제2 텍셀들의 텍셀 값을 계산할 수 있다. 다만, 이에 한정하는 것은 아니며, 압축 해제부(710)는 다양한 방법으로 제2 텍셀들의 텍셀 값을 계산할 수 있다.
압축 해제부(710)는 획득한 텍셀 값들을 쉐이더 코어(120)로 출력할 수 있다.
도 9는 일 실시예에 따른 텍스쳐 처리 장치의 구성을 나타내는 블록도이다.
도 9를 참조하면, 텍스쳐 처리 장치(130)는 제어부(750), 블록 패턴 추출부(710), 압축 해제부(720), 텍스쳐 캐쉬(730) 및 텍스쳐 필터(740)를 포함할 수 있다. 블록 패턴 추출부(710) 및 압축 해제부(720)에 대하여, 도 7 및 8에서 설명한 내용과 동일한 내용은 도 9에서 생략하기로 한다.
제어부(750)는 텍스쳐 처리 장치(130)의 전반적인 동작 및 텍스쳐 처리 장치(130)의 내부 구성 요소들 사이의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행한다.
도 1을 다시 참조하면, 쉐이더 코어(120)는 픽셀 처리시 필요한 텍셀을 텍스쳐 처리 장치(130)에 요청한다. 이에 따라, 제어부(750)는 쉐이더 코어(120)로부터 요청된 텍셀의 텍셀 어드레스를 수신할 수 있다. 제어부(750)는 요청 받은 텍셀이 텍스쳐 캐쉬(730)에 저장되어 있는지를 우선 판단할 수 있다. 요청 받은 텍셀이 텍스쳐 캐쉬(730)에 저장되어 있지 않은 경우, 제어부(750)는 요청된 텍셀을 포함하는 텍셀 블록에 대한 압축 데이터를 외부의 메모리(200)로 요청할 수 있다.
이에 따라, 텍스쳐 처리 장치(130)는 외부의 메모리(200)로부터 압축 데이터를 수신할 수 있다.
블록 패턴 추출부(710)는 수신한 압축 데이터에 기초하여, 텍셀 블록에 대한 블록 패턴을 추출할 수 있다.
압축 해제부(720)는 수신한 압축 텍셀 블록에 기초하여, 텍셀 블록에 대한 대표 값, 일부 텍셀들에 대한 가중치들을 획득할 수 있다. 압축 해제부(720)는 획득한 텍셀 블록에 대한 대표 값 및 일부 텍셀들에 대한 가중치들에 기초하여, 일부 텍셀들에 대한 텍셀 값들 계산할 수 있다. 또한, 압축 해제부(720)는 계산된 일부 텍셀들에 대한 텍셀 값들과 추출된 블록 패턴에 기초하여, 나머지 텍셀들에 대한 텍셀 값들을 계산할 수 있다.
텍스쳐 캐쉬(730)는 압축 해제된 텍셀들에 대한 텍셀 값들을 저장할 수 있다. 한편, 도 9에서는 압축 해제부(720)에서 압축 데이터를 압축 해제하여, 획득한 텍셀 값들이 텍스쳐 캐쉬(730)에 저장되는 것으로 도시하였으나, 이와 달리, 압축이 해제되지 않은 압축 데이터 형태로 텍스쳐 캐쉬(730)에 저장될 수 있다. 텍스쳐 캐쉬(730)에 저장된 압축 데이터가 요청되는 경우, 압축 해제부(720)는 요청 받은 압축 데이터를 압축 해제하여, 텍셀 값들을 생성할 수 있다.
텍스쳐 필터(740)는 압축 데이터를 압축 해제하여, 생성된 텍셀 값들을 이용하여, 텍스쳐 필터링을 수행할 수 있다. 텍셀 값들을 필터링(filtering)한다는 것은 텍셀 값들을 혼합(blending)하여 픽셀에 대응하는 컬러 값을 구하는 것을 의미한다. 예를 들어, 텍스처 처리 장치(130)에 요청된 텍셀의 텍셀 어드레스가 가리키는 텍스쳐 공간상의 일부 영역에 포함된 텍셀 값들의 평균 값을 구함으로써, 픽셀에 대응하는 컬러 값을 구할 수 있다. 텍스쳐 필터(740)에서 필터링된 텍셀 값은 쉐이더 코어(120)의 요청에 대한 응답으로, 쉐이더 코어(120)로 전송될 수 있다. 텍스쳐 필터(740)에서 수행하는 텍스쳐 필터링 방식은 트라이리니어(tri-linear) 필터링 방식을 포함한 다양한 필터링 방식일 수 있다.
도 10은 일 실시예에 따른 텍셀 블록을 압축하는 방법을 나타내는 흐름도이다.
도 10을 참조하면, 텍스쳐 압축 장치(300)는 텍셀 블록을 수신할 수 있다(S910).
텍셀 블록은 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 나눈 것을 의미한다. 텍셀 블록은 다양한 사이즈를 가질 수 있다. 텍스쳐를 텍셀 블록들로 나누는 경우, 하나의 텍셀 블록에 포함되는 텍셀 값들은 대칭성을 가질 수 있다.
텍스쳐 압축 장치(300)는 텍셀 블록에 대한 블록 패턴을 결정할 수 있다(S920).
일 실시예에 따른 블록 패턴은 텍셀 블록을 구성하는 텍셀들 중 압축을 수행할 텍셀들과 압축을 수행하지 않을 텍셀들을 분류하기 위한 패턴이다.
예를 들어, 블록 패턴은 텍셀 블록을 구성하는 텍셀들 각각에 대응하는 복수의 영역들을 포함하며, 복수의 영역들은 회색으로 음영된 제1 영역들과 회색으로 음영되지 않은 제2 영역들로 나뉘어질 수 있다. 블록 패턴에서 제1 영역들은, 텍셀 블록에서 압축을 수행할 텍셀들에 대응하고, 블록 패턴들에서 제2 영역들은, 텍셀 블록에서 압축을 수행하지 않을 텍셀들에 대응한다. 다만, 이에 한정하는 것은 아니며, 제1 영역들은, 압축을 수행하지 않을 텍셀들에 대응하고, 제2 영역들은 압축을 수행할 텍셀들에 대응할 수 있다.
텍스쳐 압축 장치(300)는 복수의 블록 패턴들 중 입력된 텍셀 블록의 압축에 이용할 블록 패턴을 결정할 수 있다. 텍스쳐 압축 장치(300)는 복수의 블록 패턴들 중 텍셀 블록의 대칭적인 특성을 가장 잘 반영하는 블록 패턴을 선택할 수 있다. 예를 들어, 텍스쳐 압축 장치(300)는 복수의 블록 패턴들 각각에 대하여, 제1 영역들에 대응하는 텍셀 값들의 합과 제2 영역들에 대응하는 텍셀 값들의 합의 차이 값을 계산하고, 차이 값이 가장 작은 블록 패턴으로 결정할 수 있다.
텍스쳐 압축 장치(300)는 결정된 블록 패턴을 이용하여, 텍셀 블록을 압축할 수 있다(S930).
도 10의 단계 930(S930)에 대해서는 도 11을 참조하여, 자세히 설명하기로 한다.
도 11은 도 10의 단계 930(S930)를 구체적으로 나타내는 흐름도이다.
도 11을 참조하면, 텍스쳐 압축 장치(300)는 텍셀 블록에 대한 대표 값을 결정할 수 있다(S1010).
예를 들어, 텍스쳐 압축 장치(300)는 텍셀 블록을 구성하는 텍셀 들에 대한 텍셀 값들 중에서, 가장 큰 값과 가장 작은 값, 즉, 엔드 포인트(end point) 값들 각각을 대표 값으로 결정할 수 있다. 다만, 이에 한정되는 것은 아니며, 다양한 방식으로 대표 값이 결정될 수 있다.
텍스쳐 압축 장치(300)는 대표값이 결정되면 텍셀 블록을 구성하는 텍셀들 중 일부 텍셀들에 대한 가중치를 계산할 수 있다(S1020).
텍셀에 대한 가중치는 대표값을 이용하여, 텍셀 값을 표현하기 위해 적어도 하나의 대표 값들에 적용되는 가중치를 의미한다. 예를 들어, T(텍셀 값)=w0*ep0(제1 대표 값)+w1*ep1(제2 대표 값)으로 표현되는 경우, 가중치는 w0 또는 w1일 수 있다. 텍스쳐 압축 장치(300)는 결정된 블록 패턴을 이용하여, 가중치를 계산할 일부 텍셀들을 결정할 수 있다. 예를 들어, 결정된 블록 패턴에 포함되는 영역들 중 회색으로 음영 표시가 된 영역들(제1 영역들)에 대응하는 텍셀들에 대해서만 가중치를 계산할 수 있다. 텍스쳐 압축 장치(300)는 텍셀 블록에 대한 블록 패턴, 텍셀 블록에 대한 적어도 하나의 대표 값, 텍셀 블록을 구성하는 일부 텍셀에 대한 가중치를 포함하는 압축 데이터를 생성할 수 있다.
또한, 텍스쳐 압축 장치(300)는 추가 데이터 비트들(optional bits)을 사용할 것인지 여부를 결정할 수 있다(S1030).
텍셀 블록을 구성하는 텍셀들 중 일부 텍셀들에 대해서만 가중치를 계산하여, 압축 데이터에 포함시키는 경우, 나머지 텍셀들에 대한 가중치에 대응하는 비트들이 감소될 수 있다. 텍스쳐 압축 장치(300)는 감소된 비트들 (optional bits)을 대표값을 나타내는 데이터 비트들, 일부 텍셀들에 대한 가중치를 나타내는 데이터 비트들, 블록 패턴을 나타내는 데이터 비트들에 추가로 할당할 것인지 여부를 결정할 수 있다. 추가 데이터 비트들을 할당하는 경우, 단계 1010(S1010) 및 단계 1020(S1020)을 다시 수행할 수 있으며, 또는, 도 10의 단계 920(S920)을 다시 수행할 수 있다.
텍스쳐 압축 장치(300)는 압축 데이터를 메모리(200)로 출력할 수 있으며(S1040), 메모리(200)는 압축 데이터를 저장할 수 있다.
도 12는 일 실시예에 따른 텍셀 블록을 압축 해제하는 방법을 나타내는 흐름도이다.
도 12를 참조하면, 텍스쳐 처리 장치(130)는 압축 데이터를 수신할 수 있다(S1110). 예를 들어, 텍스쳐 처리 장치(130)는 텍스쳐 처리 장치(130) 내부 또는 외부의 메모리(200)로부터 텍셀 블록을 압축한 압축 데이터를 수신할 수 있다.
텍스쳐 처리 장치(130)는 압축 데이터에 포함되는 블록 패턴을 추출할 수 있다(S1120). 예를 들어, 텍스쳐 처리 장치(130)는 압축 데이터에 포함된 블록 패턴을 나타내는 데이터를 디코딩하여, 블록 패턴을 추출할 수 있다.
텍스쳐 처리 장치(130)는 블록 패턴에 기초하여, 수신한 압축 데이터를 압축 해제하여, 텍셀 블록을 구성하는 텍셀들에 대한 텍셀 값들을 획득할 수 있다(S1130).
도 12의 단계 1130(S1130)에 대해서는 도 13을 참조하여, 자세히 설명하기로 한다.
도 13은 도 12의 단계 1130(S1130)를 구체적으로 나타내는 흐름도이다.
도 13을 참조하면, 텍스쳐 처리 장치(130)는 압축 데이터에 포함된 대표값을 나타내는 데이터, 가중치를 나타내는 데이터들을 디코딩하여, 텍셀 블록에 대한 대표값, 텍셀 블록에 포함되는 일부 텍셀들 각각에 대한 가중치를 획득할 수 있다(S1210).
텍스쳐 처리 장치(130)는 텍셀 블록에 대한 블록 패턴, 텍셀 블록에 대한 대표값, 텍셀 블록에 포함되는 일부 텍셀들 각각에 대한 가중치를 이용하여, 텍셀 블록을 구성하는 일부 텍셀들(제1 텍셀들)에 대한 텍셀 값들을 계산할 수 있다(S1220).
텍스쳐 처리 장치(130)는 일부 텍셀들(제1 텍셀들)에 대한 텍셀 값들이 계산되면, 추출된 블록 패턴에 기초하여, 나머지 텍셀들(제2 텍셀들)에 대한 텍셀 값들을 계산할 수 있다(S1230).
예를 들어, 텍스쳐 처리 장치(130)는 제1 텍셀들 중 어느 하나의 텍셀 값을 제2 텍셀들 중 어느 하나의 텍셀 값으로 복사할 수 있다. 이때, 블록 패턴은 제1 텍셀들 중 어느 하나의 텍셀 값이 제2 텍셀들 중 어느 하나의 텍셀 값으로 복사되는지에 대한 정보를 포함할 수 있다. 예를 들어, 블록 패턴에서, 제1 텍셀들 중 제1 텍셀과 제2 텍셀들 중 제6 텍셀이 매핑되어 있는 경우, 제1 텍셀의 텍셀 값을 제6 텍셀의 텍셀 값으로 복사할 수 있다.
또는, 텍스쳐 처리 장치(130)는 제1 텍셀들의 텍셀 값들을 보간하여, 제2 텍셀들의 텍셀 값을 계산할 수 있다. 다만, 이에 한정하는 것은 아니며, 텍스쳐 처리 장치(130)는 다양한 방법으로 제2 텍셀들의 텍셀 값을 계산할 수 있다.
이에 따라, 텍스쳐 처리 장치(130)는 텍셀 블록을 구성하는 전체 텍셀들에 대한 텍셀 값들을 획득할 수 있다.
한편, 일 실시예에 따른 텍스쳐 압축 방법 및 텍스쳐 처리 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM. CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
Claims (24)
- 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 나눈 텍셀 블록을 수신하는 단계;
상기 텍셀 블록에 대한 블록 패턴을 결정하는 단계; 및
상기 블록 패턴에 기초하여, 상기 텍셀 블록을 압축하는 단계를 포함하고,
상기 텍셀 블록에 대한 블록 패턴을 결정하는 단계는,
복수의 블록 패턴들 각각에 대해 제1 텍셀들에 대한 텍셀 값들과 제2 텍셀들에 대한 텍셀 값들의 차이 값을 계산하는 단계; 및
상기 복수의 블록 패턴들 중 계산된 차이 값이 가장 작은 블록 패턴을 상기 텍셀 블록에 대한 블록 패턴으로 결정하는 단계를 포함하고,
상기 블록 패턴은 상기 텍셀 블록을 구성하는 텍셀들을 상기 제1 텍셀들과, 상기 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴이고, 상기 텍셀 블록에 포함되는 텍셀들은 대칭성을 가지고, 상기 제1 텍셀들에 대한 텍셀 값들 중 어느 하나를 복사하여 상기 제2 텍셀들에 대한 텍셀 값들 중 어느 하나를 획득하는 것이 가능한지에 대한 정보를 포함하고,
상기 블록 패턴은 상기 텍셀 블록을 구성하는 텍셀들을, 가중치 또는 인덱스를 계산할 상기 제1 텍셀들과 상기 가중치 또는 인덱스를 계산하지 않을 상기 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴인, 텍스쳐 압축 방법. - 삭제
- 삭제
- 제1항에 있어서,
상기 텍셀 블록을 압축하는 단계는,
상기 텍셀 블록을 구성하는 텍셀들에 대한 적어도 하나의 대표 값을 결정하는 단계; 및
상기 적어도 하나의 대표 값에 기초하여, 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 계산하는 단계를 포함하는 텍스쳐 압축 방법. - 제4항에 있어서,
상기 텍셀 블록을 압축하는 단계는,
상기 블록 패턴, 상기 적어도 하나의 대표 값, 및 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 포함하는 압축 데이터를 생성하는 단계를 포함하는 텍스쳐 압축 방법. - 제5항에 있어서,
상기 텍셀 블록을 압축하는 단계는,
상기 텍셀들 중 제2 텍셀들에 대한 가중치 또는 인덱스에 대응하는 데이터 비트들(bits)을 상기 적어도 하나의 대표 값을 나타내는 데이터 비트들, 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 나타내는 데이터 비트들, 및 상기 블록 패턴을 나타내는 데이터 비트들 중 적어도 하나에 추가로 할당하는 단계;를 더 포함하는 텍스쳐 압축 방법. - 삭제
- 삭제
- 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 압축한, 압축 데이터를 수신하는 단계;
상기 압축 데이터에 포함된 블록 패턴을 추출하는 단계; 및
상기 블록 패턴에 기초하여, 상기 압축 데이터를 압축 해제하고(decompressing), 텍셀 블록을 구성하는 텍셀들을 획득하는 단계를 포함하고,
상기 블록 패턴은 상기 텍셀 블록을 구성하는 텍셀들을 제1 텍셀들과, 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴이고, 상기 텍셀 블록에 포함되는 텍셀들은 대칭성을 가지고,
상기 텍셀들을 획득하는 단계는, 상기 블록 패턴 및 획득한 상기 제1 텍셀들에 대한 텍셀 값들에 기초하여, 상기 제1 텍셀들에 대한 텍셀 값들 중 어느 하나를 복사하여, 상기 제2 텍셀들에 대한 텍셀 값들 중 어느 하나를 획득하는 단계를 포함하고,
상기 블록 패턴은 상기 텍셀 블록을 구성하는 텍셀들을, 가중치 또는 인덱스를 계산할 상기 제1 텍셀들과 상기 가중치 또는 인덱스를 계산하지 않을 상기 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴인, 텍스쳐 처리 방법. - 제9항에 있어서,
상기 압축 데이터는 압축된 형태로 제공된 제1 텍셀들의 값을 포함하는 텍스쳐 처리 방법. - 제9항에 있어서,
상기 텍셀들을 획득하는 단계는,
상기 압축 데이터에 기초하여, 상기 텍셀 블록을 구성하는 텍셀들에 대한 적어도 하나의 대표 값 및 상기 제1 텍셀들에 대한 가중치 또는 인덱스를 획득하는 단계;
상기 블록 패턴, 상기 적어도 하나의 대표 값 및 상기 가중치 또는 인덱스들을 이용하여, 상기 제1 텍셀들에 대한 텍셀 값들을 획득하는 단계; 및
상기 블록 패턴 및 보간을 통해 획득한 상기 제1 텍셀들에 대한 텍셀 값들에 기초하여, 적어도 하나 이상의 제2 텍셀들에 대한 텍셀 값들을 획득하는 단계를 포함하는 텍스쳐 처리 방법. - 삭제
- 삭제
- 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 나눈 텍셀 블록을 수신하여, 상기 텍셀 블록에 대한 블록 패턴을 결정하는 블록 패턴 결정부; 및
상기 블록 패턴에 기초하여, 상기 텍셀 블록을 압축하는 압축부를 포함하고,
상기 블록 패턴 결정부는, 복수의 블록 패턴들 각각에 대해 제1 텍셀들에 대한 텍셀 값들과 제2 텍셀들에 대한 텍셀 값들의 차이 값을 계산하고,상기 복수의 블록 패턴들 중 계산된 차이 값이 가장 작은 블록 패턴을 상기 텍셀 블록에 대한 블록 패턴으로 결정하고,
상기 블록 패턴은 상기 텍셀 블록을 구성하는 텍셀들을 상기 제1 텍셀들과 상기 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴이고, 상기 텍셀 블록에 포함되는 텍셀들은 대칭성을 가지고, 상기 제1 텍셀들에 대한 텍셀 값들 중 어느 하나를 복사하여 상기 제2 텍셀들에 대한 텍셀 값들 중 어느 하나를 획득하는 것이 가능한지에 대한 정보를 포함하고,
상기 블록 패턴은 상기 텍셀 블록을 구성하는 텍셀들을, 가중치 또는 인덱스를 계산할 상기 제1 텍셀들과 상기 가중치 또는 인덱스를 계산하지 않을 상기 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴인, 텍스쳐 압축 장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 텍스쳐를 구성하는 텍셀들을 소정의 블록 단위로 압축한, 압축 데이터를 수신하여, 상기 압축 데이터에 포함된 블록 패턴을 추출하는 블록 패턴 추출부; 및
상기 블록 패턴에 기초하여, 상기 압축 데이터를 압축 해제하고(decompressing), 텍셀 블록을 구성하는 텍셀들을 획득하는 압축 해제부를 포함하고,
상기 블록 패턴은 상기 텍셀 블록을 구성하는 텍셀들을 제1 텍셀들과, 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴이고, 상기 텍셀 블록에 포함되는 텍셀들은 대칭성을 가지고,
상기 압축 해제부는, 상기 블록 패턴 및 획득한 상기 제1 텍셀들에 대한 텍셀 값들에 기초하여, 상기 제1 텍셀들에 대한 텍셀 값들 중 어느 하나를 복사하여, 상기 제2 텍셀들에 대한 텍셀 값들 중 어느 하나를 획득하고,
상기 블록 패턴은 상기 텍셀 블록을 구성하는 텍셀들을, 가중치 또는 인덱스를 계산할 상기 제1 텍셀들과 상기 가중치 또는 인덱스를 계산하지 않을 상기 제2 텍셀들 중 어느 하나로 분류하기 위한 패턴인, 텍스쳐 처리 장치. - 삭제
- 삭제
- 삭제
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150133886A KR102477264B1 (ko) | 2015-09-22 | 2015-09-22 | 텍스쳐를 처리하는 방법 및 장치 |
JP2016184078A JP6782593B2 (ja) | 2015-09-22 | 2016-09-21 | テクスチャを処理する方法及びその装置 |
US15/272,732 US10068353B2 (en) | 2015-09-22 | 2016-09-22 | Method and apparatus for processing compressed texture |
CN201610842915.6A CN106548498B (zh) | 2015-09-22 | 2016-09-22 | 用于处理压缩纹理的方法和设备 |
EP16190155.8A EP3147865A1 (en) | 2015-09-22 | 2016-09-22 | Method and apparatus for processing compressed texture |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150133886A KR102477264B1 (ko) | 2015-09-22 | 2015-09-22 | 텍스쳐를 처리하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170035154A KR20170035154A (ko) | 2017-03-30 |
KR102477264B1 true KR102477264B1 (ko) | 2022-12-13 |
Family
ID=56997345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150133886A KR102477264B1 (ko) | 2015-09-22 | 2015-09-22 | 텍스쳐를 처리하는 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10068353B2 (ko) |
EP (1) | EP3147865A1 (ko) |
JP (1) | JP6782593B2 (ko) |
KR (1) | KR102477264B1 (ko) |
CN (1) | CN106548498B (ko) |
Families Citing this family (12)
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 |
US10535114B2 (en) * | 2015-08-18 | 2020-01-14 | Nvidia Corporation | Controlling multi-pass rendering sequences in a cache tiling architecture |
KR20180048081A (ko) * | 2016-11-02 | 2018-05-10 | 삼성전자주식회사 | 텍스쳐 처리 방법 및 장치 |
KR102507669B1 (ko) * | 2017-10-18 | 2023-03-09 | 삼성전자주식회사 | 전자 장치 및 그의 제어방법 |
KR102489266B1 (ko) * | 2018-08-13 | 2023-01-17 | 엘지전자 주식회사 | 모바일 디바이스 및 그 제어 방법 |
US11069023B2 (en) * | 2019-05-24 | 2021-07-20 | Nvidia Corporation | Techniques for efficiently accessing memory and avoiding unnecessary computations |
CN110458922B (zh) * | 2019-08-14 | 2022-12-27 | 深圳市商汤科技有限公司 | 图形渲染方法及相关产品 |
US11704860B2 (en) | 2021-05-14 | 2023-07-18 | Nvidia Corporation | Accelerated processing via a physically based rendering engine |
US11853764B2 (en) | 2021-05-14 | 2023-12-26 | Nvidia Corporation | Accelerated processing via a physically based rendering engine |
US11875444B2 (en) * | 2021-05-14 | 2024-01-16 | Nvidia Corporation | Accelerated processing via a physically based rendering engine |
US11830123B2 (en) | 2021-05-14 | 2023-11-28 | Nvidia Corporation | Accelerated processing via a physically based rendering engine |
US11908064B2 (en) | 2021-05-14 | 2024-02-20 | Nvidia Corporation | Accelerated processing via a physically based rendering engine |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005309900A (ja) * | 2004-04-23 | 2005-11-04 | Sony Computer Entertainment Inc | 画像処理装置および画像処理方法 |
KR101034925B1 (ko) | 2002-06-07 | 2011-05-17 | 텔레폰악티에볼라겟 엘엠 에릭슨(펍) | 텍스쳐 정보를 엔코딩하는 방법 및 장치 |
US20130084018A1 (en) * | 2011-09-30 | 2013-04-04 | Arm Limited | Method of and apparatus for encoding data |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100490885B1 (ko) * | 2002-04-17 | 2005-05-19 | 중앙대학교 산학협력단 | 직각 교차 실린더를 이용한 영상기반 렌더링 방법 |
US7852916B2 (en) | 2004-06-27 | 2010-12-14 | Apple Inc. | Efficient use of storage in encoding and decoding video data streams |
KR100648923B1 (ko) | 2004-12-14 | 2006-11-28 | 삼성전자주식회사 | 화상형성 시스템 및 화상형성 방법 |
GB0504570D0 (en) * | 2005-03-04 | 2005-04-13 | Falanx Microsystems As | Method of and apparatus for encoding data |
KR100781833B1 (ko) | 2006-03-29 | 2007-12-03 | 주식회사 팬택 | 컬러 데이터의 압축 방법 |
RU2461977C2 (ru) * | 2006-12-18 | 2012-09-20 | Конинклейке Филипс Электроникс Н.В. | Сжатие и снятие сжатия изображения |
US8774534B2 (en) | 2009-04-08 | 2014-07-08 | Watchitoo, Inc. | System and method for image compression |
US8625910B2 (en) * | 2011-02-25 | 2014-01-07 | Adobe Systems Incorporated | Compression of image data |
US9058637B2 (en) | 2011-05-05 | 2015-06-16 | Arm Limited | Method of and apparatus for encoding and decoding data |
CN102368329A (zh) * | 2011-10-24 | 2012-03-07 | 龙芯中科技术有限公司 | 图形系统中纹理图像透明度通道处理系统与装置和方法 |
GB2503691B (en) * | 2012-07-04 | 2019-08-14 | Advanced Risc Mach Ltd | Methods of and apparatus for encoding and decoding data |
GB2507127B (en) * | 2012-10-22 | 2014-10-08 | Gurulogic Microsystems Oy | Encoder, decoder and method |
CN103886623B (zh) * | 2012-12-19 | 2017-03-15 | 华为技术有限公司 | 一种图像压缩方法、设备及系统 |
US10147202B2 (en) * | 2013-03-15 | 2018-12-04 | Arm Limited | Methods of and apparatus for encoding and decoding data |
CN104869425A (zh) * | 2015-05-13 | 2015-08-26 | 信阳师范学院 | 一种基于纹理图像相似性的压缩和解压缩方法 |
-
2015
- 2015-09-22 KR KR1020150133886A patent/KR102477264B1/ko active IP Right Grant
-
2016
- 2016-09-21 JP JP2016184078A patent/JP6782593B2/ja active Active
- 2016-09-22 CN CN201610842915.6A patent/CN106548498B/zh active Active
- 2016-09-22 EP EP16190155.8A patent/EP3147865A1/en active Pending
- 2016-09-22 US US15/272,732 patent/US10068353B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101034925B1 (ko) | 2002-06-07 | 2011-05-17 | 텔레폰악티에볼라겟 엘엠 에릭슨(펍) | 텍스쳐 정보를 엔코딩하는 방법 및 장치 |
JP2005309900A (ja) * | 2004-04-23 | 2005-11-04 | Sony Computer Entertainment Inc | 画像処理装置および画像処理方法 |
US20130084018A1 (en) * | 2011-09-30 | 2013-04-04 | Arm Limited | Method of and apparatus for encoding data |
Also Published As
Publication number | Publication date |
---|---|
JP6782593B2 (ja) | 2020-11-11 |
EP3147865A1 (en) | 2017-03-29 |
JP2017063418A (ja) | 2017-03-30 |
CN106548498A (zh) | 2017-03-29 |
US20170084055A1 (en) | 2017-03-23 |
CN106548498B (zh) | 2021-07-20 |
US10068353B2 (en) | 2018-09-04 |
KR20170035154A (ko) | 2017-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102477264B1 (ko) | 텍스쳐를 처리하는 방법 및 장치 | |
CN111033570B (zh) | 使用两个渲染计算装置从计算机图形渲染图像 | |
EP3026633B1 (en) | Texture processing method and unit | |
CN106408634B (zh) | 纹理处理设备和方法 | |
US20210097642A1 (en) | Graphics processing | |
EP2092488B1 (en) | Image compression and/or decompression | |
CN108024115B (zh) | 纹理压缩方法和设备以及纹理解压缩方法和设备 | |
WO2016139488A2 (en) | Method of and apparatus for processing graphics | |
EP2998938A1 (en) | Method and apparatus for processing texture | |
US9721359B2 (en) | Apparatus and method of decompressing rendering data and recording medium thereof | |
KR102512521B1 (ko) | 텍스쳐 처리 방법 및 장치 | |
KR20180048081A (ko) | 텍스쳐 처리 방법 및 장치 | |
US11978234B2 (en) | Method and apparatus of data compression | |
US20230186523A1 (en) | Method and system for integrating compression | |
US9984491B2 (en) | Apparatus and method for managing commands | |
JP2017536740A (ja) | ハイブリッドブロックベースの圧縮 | |
CN106447593B (zh) | 操作图形处理流水线的方法、图形处理流水线、存储介质 |
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 |