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

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

Info

Publication number
KR102512521B1
KR102512521B1 KR1020150142231A KR20150142231A KR102512521B1 KR 102512521 B1 KR102512521 B1 KR 102512521B1 KR 1020150142231 A KR1020150142231 A KR 1020150142231A KR 20150142231 A KR20150142231 A KR 20150142231A KR 102512521 B1 KR102512521 B1 KR 102512521B1
Authority
KR
South Korea
Prior art keywords
channel
texture
filtering
spatial frequency
control signal
Prior art date
Application number
KR1020150142231A
Other languages
English (en)
Other versions
KR20170042969A (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 KR1020150142231A priority Critical patent/KR102512521B1/ko
Priority to US15/146,302 priority patent/US10134173B2/en
Priority to JP2016198974A priority patent/JP6931279B2/ja
Priority to CN201610881136.7A priority patent/CN106570924B/zh
Priority to EP16193551.5A priority patent/EP3156974B1/en
Publication of KR20170042969A publication Critical patent/KR20170042969A/ko
Application granted granted Critical
Publication of KR102512521B1 publication Critical patent/KR102512521B1/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • 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
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/12Indexing scheme for image data processing or generation, in general involving antialiasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20004Adaptive image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details

Abstract

텍스쳐의 각 채널의 공간 주파수 정보에 기초하여, 각 채널에 독립적인 텍스쳐 필터링을 수행하는 텍스쳐 처리 방법 및 장치를 제공하는 것이다.

Description

텍스쳐 처리 방법 및 장치{Method and apparatus for processing texture}
텍스쳐 처리 방법 및 장치에 관한 것이다.
3차원 그래픽스 렌더링을 가속하기 위해, 그래픽 처리 장치(Graphic Processing Unit, GPU)는 텍스쳐 처리 장치(texture processing unit)를 포함하고 있다.
텍스쳐 처리 장치는 텍스쳐링(texturing)에 필요한 텍스쳐를 생성하는 작업을 수행한다. 텍스쳐링은 3차원 공간에 형성된 오브젝트(object)에 미리 준비된 이미지를 입히는 작업으로, 연산 량을 줄이기 위한 3차원 그래픽스 렌더링의 동작 중 하나이다. 이때, 미리 준비된 이미지를 텍스쳐(texture)라고 부르며, 텍스쳐는 텍스쳐 처리 장치 외부의 메모리에 압축된 형태로 미리 준비되어 있을 수 있다.
텍스쳐의 각 채널의 공간 주파수 정보에 기초하여, 각 채널에 독립적인 텍스쳐 필터링을 수행하는 텍스쳐 처리 방법 및 장치를 제공하는 것이다.
제 1 측면에 따른 텍스쳐 처리 장치는, 텍스쳐 좌표 및 상기 텍스쳐 좌표에 대응되는 텍스쳐의 채널별 공간 주파수 정보를 획득하고, 상기 채널별 공간 주파수 정보에 기초하여, 상기 텍스쳐의 채널별 필터링 제어 신호를 결정하는 제어부; 및 상기 채널별 필터링 제어 신호에 따라, 상기 텍스쳐를 채널별로 필터링을 수행하는 텍스쳐 필터;를 포함한다.
또한, 상기 제어부는 상기 공간 주파수 정보에 포함된 각 채널의 공간 주파수가 서로 다른 경우, 상기 각 채널에 독립적으로 상기 채널별 필터링 제어 신호를 결정할 수 있다.
또한, 상기 제어부는 앨리어싱이 발생하는 소정의 조건을 만족하는 채널에 대해서 상기 채널의 공간 주파수에 기초한 안티 앨리어싱 필터링이 수행되도록 상기 채널별 필터링 제어 신호를 결정할 수 있다.
또한, 상기 채널별 공간 주파수 정보는 상기 텍스쳐의 생성 시에 함께 생성되고, 상기 제어부는 상기 채널별 공간 주파수 정보를 상기 텍스쳐가 저장되어 있던 외부의 메모리로부터 획득할 수 있다.
또한, 상기 채널별 공간 주파수 정보는 상기 텍스쳐 처리 장치를 포함하는 그래픽 처리 장치에서 텍스쳐링 작업 시에 실시간으로 계산되고, 상기 제어부는 상기 채널별 공간 주파수 정보를 상기 그래픽 처리 장치로부터 획득할 수 있다.
또한, 상기 제어부는 상기 텍스쳐에 대한 샘플링 주파수를 획득하고, 상기 채널별 공간 주파수 정보에 기초하여, 가장 높은 공간 주파수를 갖는 채널을 기준 채널로 결정하며, 상기 기준 채널의 공간 주파수와 상기 샘플링 주파수에 기초하여, 상기 기준 채널의 필터링 제어 신호를 결정하고, 상기 기준 채널의 공간 주파수와 상기 기준 채널 이외의 다른 채널들의 공간 주파수를 비교하여, 상기 기준 채널 이외의 다른 채널들의 필터링 제어 신호를 결정할 수 있다.
또한, 상기 제어부는 상기 텍스쳐에 대한 샘플링 주파수를 획득하고, 상기 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수를 상기 샘플링 주파수와 각각 비교하여, 상기 채널별 필터링 제어 신호를 결정할 수 있다.
또한, 상기 텍스쳐 필터는 상기 채널별 필터링 제어 신호에 따라, 각 채널에 대응되는 적어도 하나의 필터를 독립적으로 동작시킬 수 있다.
또한, 상기 텍스쳐 필터는 상기 텍스쳐를 구성하는 채널들에 대응되는 안티 앨리어싱 필터들을 포함하는 제 1 필터와 응용 프로그램이 요청하는 필터링 모드에 따른 필터링을 수행하는 필터들을 포함하는 제 2 필터를 포함하고, 상기 채널별 필터링 제어 신호에 따라 상기 제 1 필터와 상기 제 2 필터를 채널별로 동작 시킬 수 있다.
또한, 상기 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호와 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 포함할 수 있다.
또한, 상기 텍스쳐를 저장하는 텍스쳐 캐쉬를 더 포함할 수 있다.
제 2 측면에 따른 텍스쳐 처리 방법은, 텍스쳐 좌표 및 상기 텍스쳐 좌표에 대응되는 텍스쳐의 채널별 공간 주파수 정보를 획득하는 단계; 상기 채널별 공간 주파수 정보에 기초하여, 상기 텍스쳐의 채널별 필터링 제어 신호를 결정하는 단계; 및 상기 채널별 필터링 제어 신호에 따라, 상기 텍스쳐를 채널별로 필터링을 수행하는 단계;를 포함한다.
또한, 상기 채널별 필터링 제어 신호를 결정하는 단계는 상기 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수가 서로 다른 경우, 상기 각 채널에 독립적으로 상기 채널별 필터링 제어 신호를 결정할 수 있다.
또한, 상기 채널별 필터링 제어 신호를 결정하는 단계는 앨리어싱이 발생하는 소정의 조건을 만족하는 채널에 대해서 상기 채널의 공간 주파수에 기초한 안티 앨리어싱 필터링이 수행되도록 상기 채널별 필터링 제어 신호를 결정할 수 있다.
또한, 상기 채널별 공간 주파수 정보는 상기 텍스쳐의 생성 시에 함께 생성되고, 상기 획득하는 단계는 상기 채널별 공간 주파수 정보를 상기 텍스쳐가 저장되어 있던 외부의 메모리로부터 획득할 수 있다.
또한, 상기 채널별 공간 주파수 정보는 상기 텍스쳐 처리 방법을 수행하는 그래픽 처리 장치에서 텍스쳐링 작업 시에 실시간으로 계산되고, 상기 획득하는 단계는 상기 채널별 공간 주파수 정보를 상기 그래픽 처리 장치로부터 획득할 수 있다.
또한, 상기 결정하는 단계는, 상기 텍스쳐에 대한 샘플링 주파수를 획득하는 단계; 상기 채널별 공간 주파수 정보에 기초하여, 가장 높은 공간 주파수를 갖는 채널을 기준 채널로 결정하는 단계; 상기 기준 채널의 공간 주파수와 상기 샘플링 주파수에 기초하여, 상기 기준 채널의 필터링 제어 신호를 결정하는 단계; 및 상기 기준 채널의 공간 주파수와 상기 기준 채널 이외의 다른 채널들의 공간 주파수를 비교하여, 상기 기준 채널 이외의 다른 채널들의 필터링 제어 신호를 결정하는 단계;를 포함할 수 있다.
또한, 상기 결정하는 단계는, 상기 텍스쳐에 대한 샘플링 주파수를 획득하는 단계; 및 상기 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수를 상기 샘플링 주파수와 각각 비교하여, 상기 채널별 필터링 제어 신호를 결정하는 단계;를 포함할 수 있다.
또한, 상기 채널별로 필터링을 수행하는 단계는, 상기 텍스쳐를 구성하는 채널들에 대응되는 안티 앨리어싱 필터들을 포함하는 제 1 필터와 응용 프로그램이 요청하는 필터링 모드에 따른 필터링을 수행하는 필터들을 포함하는 제 2 필터를 상기 채널별 필터링 제어 신호에 따라 채널별로 동작시킬 수 있다.
또한, 상기 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호와 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 포함할 수 있다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타낸 도면이다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
도 3은 일 실시예에 따른 텍스쳐 처리 장치의 구성과 동작을 설명하기 위한 도면이다.
도 4는 텍스쳐의 각 채널의 공간 주파수 및 샘플링 주파수와의 관계를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 제어부의 동작을 설명하기 위한 도면이다.
도 6은 다른 실시예에 따른 제어부의 동작을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 텍스쳐 처리 장치의 동작을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
도 9는 다른 실시예에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
도 10은 다른 실시예에 따른 텍스쳐 처리 장치의 동작을 설명하기 위한 도면이다.
도 11은 또 다른 실시예에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 텍스쳐 처리 방법을 설명하기 위한 흐름도이다.
도 13은 일 실시예에 따른 텍스쳐 처리 방법에서, 채널별 필터링 제어 신호를 결정하는 단계에 대한 상세 흐름도이다.
도 14은 다른 실시예에 따른 텍스쳐 처리 방법에서, 채널별 필터링 제어 신호를 결정하는 단계에 대한 상세 흐름도이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예를 상세히 설명하기로 한다. 하기 실시예는 기술적 내용을 구체화하기 위한 것일 뿐 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 해당 기술분야의 전문가가 용이하게 유추할 수 있는 것은 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 실시예들은 텍스쳐 처리 방법 및 장치에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 일 실시예에 따른 그래픽 처리 장치를 나타낸 도면이다. 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 관련 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1을 참조하면, 그래픽 처리 장치(100)는 래스터라이저(rasterizor)(110), 쉐이더 코어(shader core)(120), 텍스쳐 처리 장치(texture processing unit)(130), 픽셀 처리 장치(pixel processing unit)(140), 타일 버퍼(tile buffer)(150) 등을 포함할 수 있다. 그래픽 처리 장치(100)는 버스(BUS)(300)를 통하여 외부의 메모리(200)와 데이터를 송수신할 수 있다.
도 1에 도시된 그래픽 처리 장치(100)는 3차원 그래픽스를 처리하는 장치로서, 타일에 기초한 렌더링(tile based rendering, TBR) 방식을 사용할 수 있다. 다시 말해서, 그래픽 처리 장치(100)는 하나의 프레임에 해당하는 3차원 그래픽스를 생성하기 위해서, 일정한 크기로 분할된 복수 개의 타일들을 래스터라이저(110), 쉐이더 코어(120), 픽셀 처리 장치(140)를 거치도록 하여, 처리 결과를 타일 버퍼(150)에 저장할 수 있다. 그래픽 처리 장치(100)는 프레임을 구성하는 모든 타일들에 대해서, 래스터라이저(110), 쉐이더 코어(120), 및 픽셀 처리 장치(140)로 구성되는 파이프 라인을 복수 개 이용하여, 병렬 처리할 수 있다. 그래픽 처리 장치(100)는 하나의 프레임에 해당하는 복수 개의 타일들이 처리되면, 타일 버퍼(150)에 저장된 처리 결과를 메모리(200)의 프레임 버퍼(미도시)로 전송할 수 있다.
래스터라이저(110)는 기하 변환 과정을 거쳐 버텍스 쉐이더로부터 생성된 프리미티브에 대해 래스터화(rasterization)를 수행할 수 있다.
쉐이더 코어(120)는 래스터라이저(110)로부터 래스터화된 프리미티브를 전달받아, 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 래스터화를 거쳐 생성된 프리미티브의 프레그먼트들을 포함하는 타일들에 대하여, 타일을 구성하는 모든 픽셀들의 색상을 결정하는 픽셀 쉐이딩을 수행할 수 있다. 쉐이더 코어(120)는 픽셀 쉐이딩 과정에서 입체적이고 현실감있는 3차원 그래픽스를 생성하기 위해 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다.
쉐이더 코어(120)는 픽셀 쉐이더(pixel shader)를 포함할 수 있다. 또한 쉐이더 코어(120)는 버텍스 쉐이더(vertex shader)를 더 포함한 형태이거나, 버텍스 쉐이더와 픽셀 쉐이더가 통합된 형태의 통합 쉐이더일 수도 있다. 쉐이더 코어(120)가 버텍스 쉐이더의 기능을 수행할 수 있는 경우, 오브젝트를 나타내는 프리미티브(primitive)를 생성하여 래스터라이저(110)에 전달할 수 있다.
쉐이더 코어(120)가 원하는 픽셀에 대응되는 픽셀 값을 전달해 줄 것을 텍스쳐 처리 장치(130)에 요청하면, 텍스쳐 처리 장치(130)는 미리 준비된 텍스쳐를 처리하여 생성된 픽셀 값을 전달해 줄 수 있다. 텍스쳐는 텍스쳐 처리 장치(130) 내부 또는 외부의 소정의 공간 또는 그래픽 처리 장치(100) 외부의 메모리(200)에 저장되어 있을 수 있다. 텍스쳐 처리 장치(130)는 쉐이더 코어(120)에서 요청한 픽셀 값을 생성하는데 이용되는 텍스쳐가 텍스쳐 처리 장치(130) 내부의 소정의 공간에 없는 경우, 텍스쳐 처리 장치(130) 외부의 공간 또는 메모리(200)로부터 텍스쳐를 가져와 사용할 수 있다.
픽셀 처리 장치(140)는 하나의 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 모든 픽셀 값들을 결정할 수 있다.
타일 버퍼(150)는 픽셀 처리 장치(140)로부터 전달된 하나의 타일에 해당하는 모든 픽셀 값들을 저장할 수 있다. 하나의 프레임을 구성하는 모든 타일들에 대한 그래픽 처리 과정이 완료되면, 타일 버퍼(150)에 저장된 처리 결과가 메모리(200)의 프레임 버퍼로 전달될 수 있다.
도 2는 그래픽 처리 장치에서 3차원 그래픽스를 처리하는 과정을 설명하는 도면이다.
3차원 그래픽스를 처리하는 과정은 크게 기하변환, 래스터화, 픽셀 쉐이딩의 3단계로 나눌 수 있으며, 이하 도 2를 참조하여, 보다 세부적인 과정에 대해 설명한다. 도 2를 참조하면, 단계 11 내지 단계 18을 통해 3차원 그래픽스를 처리하는 과정을 나타낸다.
단계 11은 버텍스들(vertices)을 생성하는 단계이다. 버텍스들은 3차원 그래픽스에 포함된 오브젝트(object)들을 나타내기 위해 생성된다.
단계 12는 생성된 버텍스들을 쉐이딩(shading)하는 단계이다. 버텍스 쉐이더는 단계 11에서 생성된 버텍스들의 위치를 지정함으로써, 버텍스들에 대한 쉐이딩을 수행할 수 있다.
단계 13은 프리미티브들을 생성하는 단계이다. 프리미티브는 적어도 하나의 버텍스를 이용하여 형성되는 점, 선, 다각형(polygon)등을 의미한다. 일 예로서, 프리미티는 버텍스들을 연결하여 형성된 삼각형으로 나타낼 수 있다.
단계 14는 프리미티브를 래스터화(rasterization)하는 단계이다. 프리미티브를 래스터화하는 것은 프리미티브를 프레그먼트들(fragments)로 분할하는 것을 의미한다. 프레그먼트는 프리미티브에 대해 그래픽 처리를 수행하기 위한 기본 단위일 수 있다. 프리미티브는 버텍스에 대한 정보만을 포함하므로, 래스터화 단계에서 버텍스와 버텍스 사이의 프레그먼트들을 생성함으로써, 3차원 그래픽스에 대한 그래픽 처리를 수행할 수 있도록 한다.
단계 15는 픽셀을 쉐이딩하는 단계를 나타낸다. 래스터화에 의해 생성된, 프리미티브를 구성하는 프레그먼트들은 타일을 구성하는 픽셀들이 될 수 있다. 당해 분야에서, 프레그먼트와 픽셀이란 용어는 경우에 따라 혼용해서 사용되기도 한다. 예를 들어, 픽셀 쉐이더는 프레그먼트 쉐이더라고 부를 수 있다. 일반적으로, 프리미티브를 구성하는 그래픽 처리의 기본 단위를 프레그먼트라고 부르고, 이후, 픽셀 쉐이딩부터의 그래픽 처리의 기본 단위를 픽셀이라 부를 수 있다. 픽셀 쉐이딩에서는 픽셀의 색을 결정할 수 있다.
단계 16은 픽셀의 색을 결정하기 위한 텍스쳐링(texturing) 단계를 나타낸다. 텍스쳐링은 미리 준비된 이미지인 텍스쳐를 이용하여 픽셀의 색을 결정하는 과정이다. 실세계의 다양한 색상과 패턴의 모습을 표현하기 위해서 각각의 픽셀의 색상을 계산하여 결정하는 것은 그래픽 처리에 필요한 데이터 연산량과 그래픽 처리 시간을 증가시키므로, 미리 준비된 텍스쳐를 이용하여 픽셀의 색상을 결정하는 것이다. 예를 들어, 오브젝트의 표면 색상을 텍스쳐라는 별도의 2차원 영상으로 저장하고, 오브젝트의 화면상의 위치 및 크기 등에 따라 저장된 텍스쳐를 확대 및 축소하거나, 다양한 해상도를 갖는 텍스쳐들을 이용하여 텍셀 값들을 혼합함으로써, 픽셀의 색상을 결정할 수 있다.
보다 구체적으로, 픽셀 쉐이딩 과정에서 더욱 빠른 3차원 그래픽스 처리를 위해, 미리 준비된 텍스쳐를 이용하여 생성된 픽셀 값을 사용할 수 있다. 이때, 오브젝트의 크기에 적응적으로 대응할 수 있도록, 서로 다른 해상도를 가지는 복수 개의 텍스쳐들을 미리 준비해놓고, 이들을 조합하여 픽셀 값을 생성할 수도 있다. 이때, 서로 다른 해상도를 가지는, 미리 준비된 텍스쳐를 밉맵(mipmap)이라고 한다. 예를 들어, 미리 준비된 두 개의 밉맵들의 중간 해상도를 가지는 오브젝트의 픽셀 값들을 생성하기 위해서, 두 개의 밉맵들로부터 오브젝트에 대응되는 위치의 텍셀(texel) 값들을 추출하여 이들을 필터링함으로써, 오브젝트를 구성하는 픽셀 값들을 생성할 수 있다.
단계 17은 테스트 및 믹싱(testing and mixing) 단계를 나타낸다. 타일 내의 같은 위치에 대응되는 픽셀들에 대하여, 깊이 테스트 등과 같은 과정을 거쳐, 최종적으로 표시될 픽셀 값을 결정하여 하나의 타일에 해당하는 픽셀 값들을 결정할 수 있다. 이와 같은 과정을 거쳐 생성된 복수 개의 타일들을 믹싱하여, 하나의 프레임에 해당하는 3차원 그래픽스를 생성할 수 있다.
단계 18은 11 내지 단계 17을 통해 생성된 프레임을 프레임 버퍼에 저장하고, 프레임 버퍼에 저장된 프레임을 디스플레이 장치를 통해 표시하는 단계를 나타낸다.
도 3은 일 실시예에 따른 텍스쳐 처리 장치의 구성과 동작을 설명하기 위한 도면이다.
도 3을 참고하면, 텍스쳐 처리 장치(130)는 제어부(131), 텍스쳐 캐쉬(134), 텍스쳐 필터(137)를 포함할 수 있다.
텍스쳐 처리 장치(130)는 그래픽 처리 장치(100)의 외부의 메모리(200)로부터 압축된 형태의 텍스쳐를 수신하여, 텍스쳐를 처리할 수 있다.
제어부(131)는 텍스쳐 처리 장치(130)의 제어에 이용되는 연산을 수행하거나, 텍스쳐 캐쉬(134) 및 텍스쳐 필터(137)에 제어 신호를 전송하여, 텍스쳐 처리 장치(130)의 전반적인 제어를 수행할 수 있다.
제어부(131)는 쉐이더 코어(120)에서 처리하고자 하는 픽셀의 픽셀 좌표에 대응되는 텍스쳐 좌표를 쉐이더 코어(120)로부터 수신할 수 있다.
제어부(131)는 텍스쳐 좌표가 포함되는 텍스쳐 공간상의 일부 영역에 포함된 텍셀들을 텍스쳐 필터(137)가 채널별로 필터링할 수 있도록, 제어 신호를 생성할 수 있다. 제어부(131)는 텍스쳐 필터(137)에 전송할 채널별 필터링 제어 신호를 생성하기 위해, 텍스쳐 좌표에 대응되는 텍스쳐의 채널별 공간 주파수 정보를 획득할 수 있다. 제어부(131)는 텍스쳐의 채널별 공간 주파수 정보에 따라, 텍스쳐의 채널별 필터링 방식을 결정할 수 있다.
텍스쳐는 텍셀들의 집합이고, 각 텍셀은 복수 개의 색상 컴포넌트(component) 각각에 대응되는 복수 개의 채널을 가지므로, 텍스쳐는 복수 개의 채널들로 구성된다고 말할 수 있다. 텍스쳐의 채널별 공간 주파수 정보는 텍스쳐를 구성하는 각 채널의 영상 신호의 변화율을 나타낼 수 있다.
채널의 공간 주파수 정보는 해당 채널의 영상 신호의 변화율을 나타낼 수 있다. 채널의 공간 주파수가 낮다는 것은 해당 채널의 영상 신호의 변화율이 낮다는 것을 의미하므로, 텍스쳐를 구성하는 인접한 텍셀들이 해당 채널에서 같거나 매우 유사한 영상 신호 값을 가짐을 의미할 수 있다. 다시 말해, 채널의 공간 주파수가 낮다는 것은 해당 채널의 공간적 상관도가 높은 상태 또는 해당 채널이 평활한 상태라고 말할 수 있다. 반대로, 채널의 공간 주파수가 높다는 것은 해당 채널의 영상 신호의 변화율이 높다는 것을 의미하므로, 텍스쳐를 구성하는 인접한 텍셀들이 해당 채널에서 비유사한 영상 신호 값을 가짐을 의미할 수 있다. 다시 말해, 채널의 공간 주파수가 높다는 것은 해당 채널의 공간적 상관도가 낮은 상태 또는 해당 채널이 평활하지 않은 상태라고 말할 수 있다.
도 4는 텍스쳐의 각 채널의 공간 주파수 및 샘플링 주파수와의 관계를 설명하기 위한 도면이다.
하나의 텍스쳐는 복수 개의 채널들의 영상 신호의 합으로 표현될 수 있다. 각 채널은 임의의 색공간(Color space)을 대표하는 색상 컴포넌트 각각에 대응될 수 있다. 색공간은 RGBA, YCbCrA 등이 될 수 있다.
도 4를 참고하면, 원본 텍스쳐 (a)와 원본 텍스쳐 (a)를 구성하는 각 채널 (b), (c), (d), (e)를 나타내고 있다. 도 4에서와 같이 RGBA 색공간을 쓰는 경우, 원본 텍스쳐 (a)는 R 채널 (b), G 채널 (c), B 채널 (d), A 채널 (e)의 합으로 표현될 수 있다.
원본 텍스쳐 (a)에서 샘플링 주파수를 보면, X축 방향으로는 2 텍셀 당 한번 씩 샘플링을 수행하고, Y축 방향으로는 네 개의 텍셀 당 한번 씩 샘플링을 수행함을 알 수 있다. 따라서, X축 방향으로는 1/2의 샘플링 주파수를 가지고, Y축 방향으로는 1/4의 샘플링 주파수를 가지게 된다. 그 결과, X축 방향으로는 두 개의 텍셀 당 하나의 텍셀 값을 잃어버리게 되고, Y축 방향으로는 네 개의 텍셀 당 세 개의 텍셀 값을 잃어버리게 됨을 알 수 있다.
R 채널 (b)를 보면, 텍셀 값이 X축 방향과 Y축 방향 모두 4개의 텍셀들이 동일한 텍셀 값을 유지한 후 이어지는 4개의 텍셀들에서는 텍셀 값이 없는 패턴을 가지고 있음을 알 수 있다. 따라서, X축 방향과 Y축 방향 모두 8 개의 텍셀들이 하나의 주기를 형성하므로, R 채널 (b)는 X축 방향과 Y축 방향 모두 1/8의 공간 주파수를 가지게 된다.
G 채널 (c)를 보면, 텍셀 값이 X축 방향과 Y축 방향 모두 텍셀들이 계속해서 텍셀 값을 변경하되, 두 개의 텍셀들 마다 같은 텍셀 값이 반복되는 패턴을 가지고 있음을 알 수 있다. 따라서, X축 방향과 Y축 방향 모두 2 개의 텍셀들이 하나의 주기를 형성하므로, G 채널 (c)는 X축 방향과 Y축 방향 모두 1/2의 공간 주파수를 가지게 된다.
B 채널 (d)를 보면, 텍셀 값이 X축 방향과 Y축 방향 모두 2개의 텍셀들이 동일한 텍셀 값을 유지한 후 이어지는 2개의 텍셀들에서는 텍셀 값이 없는 패턴을 가지고 있음을 알 수 있다. 따라서, X축 방향과 Y축 방향 모두 4 개의 텍셀들이 하나의 주기를 형성하므로, B 채널 (d)는 X축 방향과 Y축 방향 모두 1/4의 공간 주파수를 가지게 된다.
A 채널 (e)를 보면, 모든 텍셀들이 동일한 값을 가지므로, 공간 주파수는 0이 된다.
따라서, 원본 텍스쳐 (a)를 구성하는 R 채널 (b), G 채널 (c), B 채널 (d), A 채널 (e)의 공간 주파수는 서로 다른 반면, R 채널 (b), G 채널 (c), B 채널 (d), A 채널 (e)의 샘플링 주파수는 서로 같으며, 이는 원본 텍스쳐 (a)의 샘플링 주파수와 같음을 알 수 있다.
각 채널에 대해서, X축 방향으로는 1/2의 샘플링 주파수를 가지고, Y축 방향으로는 1/4의 샘플링 주파수를 가지므로, X축 방향으로는 두 개의 텍셀 당 하나의 텍셀 값을 잃어버리게 되고, Y축 방향으로는 네 개의 텍셀 당 세 개의 텍셀 값을 잃어버리게 될 수 있다. 각 채널의 공간 주파수의 두 배보다 샘플링 주파수가 작으면, 일부 텍셀 값을 잃어버리게 되어, 앨리어싱 현상이 발생하게 될 수 있다.
각 채널별 공간 주파수 정보를 고려하지 않고, 샘플링 주파수만을 고려하여, 앨리어싱 현상이 발생하는 것을 최소화하려면, 모든 채널에서 앨리어싱 현상이 발생할 조건 즉, 모든 채널이 최대의 공간 주파수를 가짐을 가정하여, 안티 앨리어싱 필터링을 무조건 수행하게 할 수 있다. 다만, 이와 같은 경우, 실제로는 앨리어싱이 발생하지 않는 채널에 대해서도, 안티 앨리어싱 필터링을 수행하게 하여, 일부 채널에 대해서 불필요한 필터링 연산을 수행하는 것이므로, 불필요한 전력 소모와 프레임 레이트 손실이 발생하게 된다.
이와 같은 불필요한 필터링 연산을 수행하는 것을 방지하기 위해, 제어부(131)는 각 채널의 특성에 기초하여, 각 채널에 독립적으로 채널별 필터링 제어 신호를 결정할 수 있다. 제어부(131)는 텍스쳐의 채널별 공간 주파수 정보를 획득하여, 채널별 공간 주파수 정보에 기초하여, 채널별 필터링 제어 신호를 결정할 수 있다.
제어부(131)는 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수가 서로 다른 경우, 각 채널에 독립적으로 채널별 필터링 제어 신호를 결정할 수 있다. 제어부(131)는 앨리어싱이 발생하는 소정의 조건을 만족하는 채널에 대해서 그 채널의 공간 주파수에 기초한 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호를 결정할 수 있다.
채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호를 포함할 수 있다. 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호뿐만 아니라, 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 더 포함할 수 있다.
위에서 설명한 바와 같이, 도 4의 원본 텍스쳐 (a)를 구성하는 R 채널 (b), G 채널 (c), B 채널 (d), A 채널 (e)의 X축 및 Y축의 공간 주파수 서로 동일하며, 각각 1/8, 1/2, 1/4, 0이고, 각 채널에 대한 샘플링 주파수는 X축 방향으로는 1/2, Y축 방향으로는 1/4이다.
도 4에서, R 채널 (b), B 채널 (d), A 채널 (e)는 X축 방향으로 두 개의 텍셀 당 하나의 텍셀 값을 샘플링하더라도 각 채널에서 잃어버리는 텍셀 값이 없으나, G 채널 (c)의 경우, 두 텍셀 마다 값이 반복되고 매 텍셀마다 값이 변경되고 있으므로, X축 방향으로 두 개의 텍셀 당 하나의 텍셀 값을 샘플링하면 같은 텍셀 값만 반복하여 샘플링되는 것이므로, 다른 텍셀 값은 잃어버려 앨리어싱 현상이 발생할 수 있다.
도 4에서, R 채널 (b)와 A 채널 (e)는 Y축 방향으로 네 개의 텍셀 당 하나의 텍셀 값을 샘플링하더라도 각 채널에서 잃어버리는 텍셀 값이 없으나, G 채널 (b)와 B 채널 (d)의 경우, 매 텍셀마다 값이 변경되거나 두 개의 텍셀마다 값이 변경되고 있으므로, Y축 방향으로 네 개의 텍셀 당 하나의 텍셀 값을 샘플링하면 일부 텍셀 값을 잃어버려 앨리어싱 현상이 발생할 수 있다.
이와 같이 채널별 공간 주파수 정보를 고려하여, 앨리어싱 현상이 발생할 수 있는 채널에 대해서는, 앨리어싱을 최소화하기 위해서 애버리지 필터와 같은 저역 통과 필터를 이용하여, 샘플링 주기 내의 텍셀들의 평균값을 샘플링 값으로 대신하게 할 수 있다.
텍스쳐의 채널별 공간 주파수 정보는 텍스쳐의 생성 시에 함께 생성될 수 있다. 이와 같은 채널별 공간 주파수 정보는 텍스쳐가 저장되어 있던 외부의 메모리(200)에 함께 저장되어 있을 수 있으므로, 제어부(131)는 외부의 메모리(200)로부터 채널별 공간 주파수 정보를 획득할 수 있다.
텍스쳐는 압축된 형태로 외부의 메모리(200)에 저장될 수 있는데, 텍스쳐를 채널별로 압축하는 경우, 채널별 압축율 정보가 함께 생성될 수 있다. 제어부(131)는 외부 메모리(200)로부터 수신되는 압축된 텍스쳐를 압축 해제하는 디컴프레서(미도시)로부터 텍스쳐의 채널별 압축율 정보를 획득할 수 있다. 제어부(131)는 채널별 압축률 정보에 기초하여 텍스쳐의 채널별 공간 주파수 정보를 결정할 수 있다. 예를 들어, 압축율이 높은 채널의 경우, 채널의 공간 주파수는 낮고, 압축율이 낮은 채널의 경우, 채널의 공간 주파수는 높을 수 있으므로, 압축율과 공간 주파수 간의 상관 관계를 이용하여 공간 주파수 정보를 결정할 수 있다.
텍스쳐의 채널별 공간 주파수 정보는 텍스쳐 처리 장치(130)를 포함하는 그래픽 처리 장치(100)에서 텍스쳐링 작업 시에 실시간으로 계산될 수 있다. 제어부(131)는 채널별 공간 주파수 정보를 그래픽 처리 장치(100)로부터 획득할 수도 있다.
텍스쳐의 채널별 공간 주파수 정보는 그래픽 처리 장치(100)에서 실행되는 응용 프로그램을 통해 직접 입력받을 수도 있다.
도 3을 참고하면, 텍스쳐 캐쉬(134)는 그래픽 처리 과정에서 이용되는 텍스쳐를 저장할 수 있다. 텍스쳐 캐쉬(134)는 하나의 텍스쳐에 대한 다양한 해상도의 밉맵을 외부의 메모리(200)로부터 수신하여 저장할 수도 있다. 텍스쳐 캐쉬(134)는 쉐이더 코어(120)에서 요청한 픽셀 값을 처리하는데 필요한 텍셀 값들을 추출하여, 텍스쳐 필터(137)로 전송할 수 있다.
텍스쳐 필터(137)는 텍스쳐 캐쉬(134)로부터 전송된 텍셀 값들을 필터링하여 하나의 픽셀 값을 생성할 수 있다. 텍셀 값들을 필터링(filtering)한다는 것은 텍셀 값들을 혼합하여 픽셀에 대응되는 컬러 값을 구하는 것을 의미한다.
예를 들어, 텍스쳐 필터(137)는 텍스쳐 좌표가 포함되는 텍스쳐 공간상의 일부 영역에 포함된 텍셀 값들의 평균을 구함으로써, 필터링을 수행할 수 있다. 텍스쳐 필터(137)에서 생성된 픽셀 값은 소정의 연산 과정을 거친 필터링된 텍셀 값이다. 텍스쳐 필터(137)에서의 필터링 결과에 해당하는 필터링된 텍셀 값은 쉐이더 코어(120)로 전송될 수 있다.
텍스쳐 필터(137)는 텍스쳐를 구성하는 텍셀들을 채널별로 필터링할 수 있다. 각 채널은 텍셀을 구성하는 색상 컴포넌트 각각에 대응될 수 있다. 하나의 텍셀은 복수 개의 색상 컴포넌트(component)로 구성될 수 있으므로, 하나의 텍셀은 복수 개의 채널을 가질 수 있다. 텍스쳐 필터(137)는 채널별로 필터링을 수행한 후, 각 채널의 필터링 결과를 혼합한 값을 최종 값으로 출력할 수 있다.
텍스쳐 필터(137)는 적어도 하나의 필터링 프로세스를 수행할 수 있다. 필터링 프로세스가 복수 개인 경우, 텍스쳐 필터(137)는 복수 개의 필터링 프로세스를 순차적으로 수행할 수 있다. 텍스쳐 필터(137)는 각각의 필터링 프로세스에 대응되는 필터를 포함할 수 있다.
예를 들어, 텍스쳐 필터(137)는 안티 엘리어싱 필터링과 응용 프로그램이 요청한 필터링 모드에 따른 필터링을 수행할 수 있다. 텍스쳐 필터(137)는 안티 앨리어싱 필터링 후 응용 프로그램이 요청한 필터링 모드에 따라 필터링을 수행할 수도 있고, 응용 프로그램이 요청한 필터링 모드에 따라 필터링을 수행한 후 안티 앨리어싱 필터링을 수행할 수도 있다.
텍스쳐 필터(137)는 각각의 필터링 프로세스에서 각 채널별로 동종 또는 이종의 필터링을 수행할 수 있다. 텍스쳐 필터(137)는 불필요한 연산을 최소화하기 위해, 채널별 특성을 고려하여 각 채널에 적합한 필터링 방식을 적용할 수 있다. 텍스쳐 필터(137)는 필터링 수행이 불필요한 채널에 대해서 필터링 프로세스를 생략할 수도 있다. 각각의 필터링 프로세스에 대응되는 필터는 각 채널에 대응되는 서브 필터들을 포함할 수 있다.
예를 들어, 텍스쳐 필터(137)는 앨리어싱을 방지하기 위해, 등방성 안티 앨리어싱 필터링(Isotropic Anti-Aliasing Filtering), 비등방성 안티 앨리어싱 필터링(Anisotropic Anti-Aliasing Filtering), 밉맵을 이용한 비등방성 안티 앨리어싱 필터링(Anisotropic Anti-Aliasing Filtering with Mipmap) 등을 채널별로 선택하여 수행할 수 있다. 채널별 특성을 고려하여, 각 채널에 적합한 안티 앨리어싱 필터링을 적용함으로써, 불필요한 필터링 연산을 최소화하기 위함이다.
등방성 안티 앨리어싱 필터링은 영상의 모든 방향에 대하여 동일한 저역 통과 필터를 적용하는 방식이다. 비등방성 안티 앨리어싱 필터링은 영상의 방향별 샘플링 주파수에 기초하여, 다른 저역 통과 필터를 적용하는 방식이다. 밉맵을 이용한 비등방성 안티 앨리어싱 필터링은 영상에서 샘플링 주파수가 높은 방향에 대해서는 밉맵을 이용하여 앨리어싱을 방지하고, 샘플링 주파수가 낮은 방향에 대해서는 샘플링 주파수에 기초한 저역 통과 필터를 적용하는 방식이다.
텍스쳐 필터(137)는 응용 프로그램이 요청한 필터링 모드에 따라, 포인트 필터링(point filtering), 바이리니어(bilinear) 필터링, 트라이리니어(tri-linear) 필터링 등을 수행할 수 있다. 텍스쳐 필터(137)는 채널별 특성을 고려하여, 응용 프로그램이 요청한 필터링 모드 대신 다른 필터링 모드로 응용 프로그램이 요청한 필터링 모드를 대체할 수 있다. 채널별 특성을 고려하여, 비교적 연산이 간단한 필터링 모드를 응용 프로그램이 요청한 필터링 모드 대신 적용함으로써, 불필요한 필터링 연산을 최소화하기 위함이다.
포인트 필터링은 렌더링 될 오브젝트에 입혀칠 텍스쳐를 결정할 때, 텍스쳐 좌표를 기준으로 소정의 개수의 주변 텍셀들을 획득한 후, 가장 가까운 위치의 텍셀을 출력하는 모드이다. 바이리니어 필터링은 렌더링 될 오브젝트에 입혀칠 텍스쳐를 결정할 때, 텍스쳐 좌표를 기준으로 주변 4개의 텍셀을 획득하여, 각각 2개의 텍셀을 인터폴레이션하고, 각각의 인터폴레이션 결과를 다시 인터폴레이션하여 그 결과를 출력하는 모드이다. 트라이리니어 필터링은 텍스쳐 좌표를 기준으로 2개의 밉맵 레벨에서 각각 4개의 텍셀을 가지고, 각 밉맵에서 바이리니어 필터링을 수행하고, 2개의 밉맵에서의 결과 값끼리 다시 바이리너어 필터링을 수행하여, 그 결과를 출력하는 모드이다.
도 5는 일 실시예에 따른 제어부의 동작을 설명하기 위한 도면이다.
구체적으로, 제어부(131)가 채널별 필터링 제어 신호를 결정하는 일 실시예를 설명하기 위한 도면이다.
도 5를 참고하면, 제어부(131)는 텍스쳐 좌표 뿐만 아니라, 채널별 공간 주파수 정보를 획득할 수 있다. 제어부(131)는 텍스쳐에 대한 샘플링 주파수를 획득할 수 있다. 제어부(131)는 채널별 공간 주파수 정보에 기초하여, 가장 높은 공간 주파수를 갖는 채널을 기준 채널로 결정하며, 기준 채널의 공간 주파수와 샘플링 주파수에 기초하여, 기준 채널의 필터링 제어 신호를 결정할 수 있다. 제어부(131)는 기준 채널의 공간 주파수와 기준 채널 이외의 다른 채널들의 공간 주파수를 비교하여, 기준 채널 이외의 다른 채널들의 필터링 제어 신호를 결정할 수 있다.
샘플링 주파수는 모든 채널에 동일하므로, 기준 채널에 대해서 먼저 필터링 제어 신호를 결정하고, 그 외의 채널들에 대해서는 기준 채널과 그 외의 다른 채널의 공간 주파수 관계를 고려하여, 채널별 필터링 제어 신호를 결정하는 방식이다.
도 6은 다른 실시예에 따른 제어부의 동작을 설명하기 위한 도면이다.
구체적으로, 제어부(131)가 채널별 필터링 제어 신호를 결정하는 다른 실시예를 설명하기 위한 도면이다.
도 6을 참고하면, 제어부(131)는 텍스쳐 좌표 뿐만 아니라, 채널별 공간 주파수 정보를 획득할 수 있다. 제어부(131)는 텍스쳐에 대한 샘플링 주파수를 획득할 수 있다. 제어부(131)는 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수를 샘플링 주파수와 각각 비교하여, 채널별 필터링 제어 신호를 결정할 수 있다.
이는 채널별 필터링 제어 신호를 모든 채널에 대해서 동시에 획득하는 방식이다.
이하, 제어부(131)에서 결정된 채널별 필터링 제어 신호에 따라 텍스쳐 필터(137)가 어떻게 동작하는지 도 4에 도시된 원본 텍스쳐 (a)의 안티 앨리어싱 필터링 과정을 예로 들어 설명한다.
도 7은 일 실시예에 따른 텍스쳐 처리 장치의 동작을 설명하기 위한 도면이다.
제어부(131)는 텍스쳐 좌표를 획득할 수 있다. 제어부(131)는 획득된 텍스쳐 좌표에 기초하여, 메모리(200)에 텍스쳐 좌표에 대응되는 텍스쳐를 요청할 수 있다.
제어부(131)는 요청한 텍스쳐의 채널별 공간 주파수 정보를 획득할 수 있다. 제어부(131)는 텍스쳐의 채널별 공간 주파수 정보를 다양한 루트를 통해서 획득할 수 있다. 채널별 공간 주파수 정보가 텍스쳐가 저장되어 있던 외부의 메모리(200)에 함께 저장되어 있는 경우, 제어부(131)는 외부의 메모리(200)로부터 채널별 공간 주파수 정보를 획득할 수 있다. 채널별로 압축된 텍스쳐를 압축 해제하여 텍스쳐 캐쉬(134)에 저장할 때, 텍스쳐의 채널별 압축율 정보를 획득하여 이로부터 채널별 공간 주파수 정보를 획득할 수도 있다. 텍스쳐 처리 장치(130)를 포함하는 그래픽 처리 장치(100)에서 텍스쳐링 작업 시에 실시간으로 계산된 채널별 공간 주파수 정보를 그래픽 처리 장치(100)로부터 획득할 수도 있다.
제어부(131)는 획득한 채널별 공간 주파수 정보에 기초하여, 텍스쳐의 채널별 필터링 제어 신호를 결정할 수 있다. 제어부(131)는 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수가 서로 다른 경우, 각 채널에 독립적으로 채널별 필터링 제어 신호를 결정할 수 있다. 제어부(131)는 앨리어싱이 발생하는 소정의 조건을 만족하는 채널에 대해서 그 채널의 공간 주파수에 기초한 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호를 결정할 수 있다.
앞서, 도 4에서 설명한 바와 같이, 원본 텍스쳐는 RGBA 색공간의 R 채널, G 채널, B 채널, A 채널의 영상 신호들로 나누어질 수 있으며, 각 채널의 공간 주파수는 X축 및 Y축의 공간 주파수 서로 동일하며, 각각 1/8, 1/2, 1/4, 0이다. 이때, 각 채널에 대한 샘플링 주파수는 X축 방향으로 1/2, Y축 방향으로 1/4이다.
제어부(131)는 원본 텍스쳐의 각 채널별 공간 주파수 정보에 기초하여, 앨리어싱이 발생하는 소정의 조건을 만족하는 채널을 찾을 수 있다. 샘플링 주파수가 채널의 공간 주파수의 2배보다 작은 경우, 해당 채널의 해당 축 방향으로 앨리어싱이 발생할 수 있다. G 채널의 경우, 영상 신호의 X축 및 Y축의 공간 주파수의 2배가 샘플링 주파수보다 크므로, G 채널의 영상 신호는 X축 및 Y축 모두에 대해 앨리어싱이 발생할 수 있다. B 채널의 경우, 영상 신호의 Y축의 공간 주파수의 2배가 Y축에 대한 샘플링 주파수보다 크므로, B 채널의 영상 신호는 Y축에 대해 앨리어싱이 발생할 수 있다. 제어부(131)는 이와 같은 방식으로, 앨리어싱이 발생하는 채널을 찾을 수 있다. 제어부(131)는 앨리어싱이 발생하는 소정의 조건을 만족하는 채널에 대해서, 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호를 결정할 수 있다.
텍스쳐 캐쉬(134)는 메모리(200)로부터 제어부(131)가 요청한 텍스쳐를 수신할 수 있다. 도 7을 참고하면, 텍스쳐 캐쉬(134)는 메모리(200)에 저장된 원본 텍스쳐를 메모리(200)로부터 수신하여 저장할 수 있다.
제어부(131)는 텍스쳐 캐쉬(134)에 저장된 텍스쳐의 채널별 영상 신호를 독출하여, 텍스쳐 필터(137)에 전달되도록 제어할 수 있다. 제어부(131)는 앨리어싱이 발생하는 소정의 조건을 만족하는 일부 채널에 대해서, 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호를 텍스쳐 필터(137)에 전달할 수 있다. 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호뿐만 아니라, 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 더 포함할 수 있다.
텍스쳐 필터(137)는 텍스쳐를 구성하는 채널들에 대응되는 안티 앨리어싱 필터들을 포함하는 제 1 필터(138)와 응용 프로그램이 요청하는 필터링 모드에 따른 필터링을 수행하는 필터들을 포함하는 제 2 필터(139)를 포함할 수 있다. 텍스쳐 필터(137)는 제어부(131)로부터 전송된 채널별 필터링 제어 신호에 따라 제 1 필터(138)와 제 2 필터(139)를 채널별로 동작시킬 수 있다. 텍스쳐 필터(137)는 채널별 필터링 제어 신호에 따라, 각 채널에 대응되는 적어도 하나의 필터를 독립적으로 동작시킬 수 있다.
이하, 도 8 및 도 9에서는 원본 텍스쳐를 메모리(200)로부터 수신하여, 앨리어싱이 발생하는 G 채널과 B 채널에 대해, 등방성 안티 앨리어싱 필터링과 비등방성 안티 앨리어싱 필터링을 각각 수행하는 예를 상세히 설명한다.
도 8은 일 실시예에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
등방성 안티 앨리어싱 필터링은 영상의 모든 방향에 대하여 동일한 저역 통과 필터를 적용하는 방식이다. 등방성 안티 앨리어싱 필터링은 영상의 방향에 따라 샘플링 주파수가 다르더라도 가장 낮은 샘플링 주파수를 가지는 방향을 기준으로 저역 통과 필터 계수를 결정하여 모든 방향에 적용하는 방식이다.
도 7에서 설명한 바와 같이, 제어부(131)의 텍스쳐 요청에 대해, 원본 텍스쳐가 텍스쳐 캐쉬(134)에 수신될 수 있다. 제어부(131)는 텍스쳐 캐쉬(134)에 저장된 원본 텍스쳐의 채널별 영상 신호를 독출하여, 텍스쳐 필터(137)에 전달되도록 제어할 수 있다.
도 8을 참고하면, 원본 텍스쳐의 각 채널별 영상 신호가 각 채널에 대응되는 적어도 하나의 필터를 통과할 수 있다. 앨리어싱이 발생하는 소정의 조건을 만족하는 일부 채널에 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호가 각 채널 제1 필터(138-1, 138-2, 138-3, 138-4)에 전송될 수 있다. 안티 앨리어싱 필터링을 위한 채널별 제어 신호는 각 채널 제1 필터(138-1, 138-2, 138-3, 138-4)를 채널별로 독립적으로 동작시킬 수 있다.
앞서 살펴본 바와 같이, G 채널의 X축 및 Y축과 B 채널의 Y축에 대해 발생하는 앨리어싱 문제를 해결하기 위해, 텍스쳐 필터(137)는 G 채널과 B 채널에 대해서만 G 채널 제1 필터(138-2)와 B 채널 제1 필터(138-3)를 독립적으로 동작시킬 수 있다.
G 채널 제1 필터(138-2)와 B 채널 제1 필터(138-3)는 각 채널의 영상의 방향에 따른 샘플링 주파수 중 가장 낮은 샘플링 주파수에 대응되는 저역 통과 필터를 영상의 모든 방향에 적용하여 안티 앨리어싱 필터링을 수행할 수 있다. G 채널은 X축 방향으로는 1/2의 샘플링 주파수를 가지고, Y축 방향으로는 1/4의 샘플링 주파수를 가지므로, G 채널 제1 필터(138-2)는 1/4의 샘플링 주파수에 기초하여, X축 및 Y축 방향으로 4개의 텍셀마다 안티 앨리어싱 필터링을 수행할 수 있다. B 채널 제1 필터(138-3)는 B 채널의 X축 방향으로는 앨리어싱이 발생하지 않더라도, B 채널의 Y축 방향으로 앨리어싱이 발생하면, X축 및 Y축 방향 모두에 대해 Y축 방향의 샘플링 주파수에 기초하여, 안티 앨리어싱 필터링을 수행할 수 있다. B 채널은 Y축 방향으로는 1/4의 샘플링 주파수를 가지므로, X축 및 Y축 방향으로 4개의 텍셀마다 안티 앨리어싱 필터링을 수행할 수 있다.
R 채널과 A 채널에 대응되는 R 채널 제1 필터(138-1)와 A 채널 제1 필터(138-4)는 안티 앨리어싱 필터링을 수행하지 않을 수 있다. 이와 같이, 텍스쳐 필터(137)는 채널별 공간 주파수 정보에 기초하여, 각 채널 제1 필터(138-1, 138-2, 138-3, 138-4)를 독립적으로 동작시킬 수 있다.
채널별 필터링 제어 신호가 안티 앨리어싱 필터링을 위한 채널별 제어 신호뿐만 아니라, 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 더 포함하고 있으면, 각 채널 제2 필터(139-1, 139-2, 139-3, 139-4)를 독립적으로 동작시킬 수 있다.
도 9는 다른 실시예에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
비등방성 안티 앨리어싱 필터링은 영상의 방향별 샘플링 주파수에 기초하여, 방향별로 다른 저역 통과 필터를 적용하는 방식이다. 비등방성 안티 앨리어싱 필터링은 영상의 방향에 따라 샘플링 주파수가 다른 경우, 각각의 샘플링 주파수에 대응되는 저역 통과 필터 계수를 결정하여 각 방향에 다른 저역 통과 필터를 적용하는 방식이다.
도 7에서 설명한 바와 같이, 제어부(131)의 텍스쳐 요청에 대해, 원본 텍스쳐가 텍스쳐 캐쉬(134)에 수신될 수 있다. 제어부(131)는 텍스쳐 캐쉬(134)에 저장된 원본 텍스쳐의 채널별 영상 신호를 독출하여, 텍스쳐 필터(137)에 전달되도록 제어할 수 있다.
도 9를 참고하면, 원본 텍스쳐의 각 채널별 영상 신호가 각 채널에 대응되는 적어도 하나의 필터를 통과할 수 있다. 앨리어싱이 발생하는 소정의 조건을 만족하는 일부 채널에 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호가 각 채널 제1 필터(138-1, 138-2, 138-3, 138-4)에 전송될 수 있다. 안티 앨리어싱 필터링을 위한 채널별 제어 신호는 각 채널 제1 필터(138-1, 138-2, 138-3, 138-4)를 채널별로 독립적으로 동작시킬 수 있다.
앞서 살펴본 바와 같이, G 채널의 X축 및 Y축과 B 채널의 Y축에 대해 발생하는 앨리어싱 문제를 해결하기 위해, 텍스쳐 필터(137)는 G 채널과 B 채널에 대해서만 G 채널 제1 필터(138-2)와 B 채널 제1 필터(138-3)를 독립적으로 동작시킬 수 있다.
G 채널 제1 필터(138-2)는 G 채널의 X축과 Y축 각각에 대해서 안티 앨리어싱 필터링을 수행할 수 있다. G 채널은 X축 방향으로는 1/2의 샘플링 주파수를 가지고, Y축 방향으로는 1/4의 샘플링 주파수를 가지므로, X축 방향으로는 두 개의 텍셀마다 안티 앨리어싱 필터링을 수행하고, Y축 방향으로는 4개의 텍셀마다 안티 앨리어싱 필터링을 수행할 수 있다. B 채널 제1 필터(138-3)는 B 채널의 Y축 방향으로 안티 앨리어싱 필터링을 수행할 수 있다. B 채널은 Y축 방향으로는 1/4의 샘플링 주파수를 가지므로, Y축 방향으로 4개의 텍셀마다 안티 앨리어싱 필터링을 수행할 수 있다. B 채널의 X축 방향으로는 앨리어싱이 발생하지 않기 때문에, X 축 방향으로는 안티 앨리어싱 필터링을 수행하지 않을 수 있다.
R 채널과 A 채널에 대응되는 R 채널 제1 필터(138-1)와 A 채널 제1 필터(138-4)는 안티 앨리어싱 필터링을 수행하지 않을 수 있다. 이와 같이, 텍스쳐 필터(137)는 채널별 공간 주파수 정보에 기초하여, 각 채널 제1 필터(138-1, 138-2, 138-3, 138-4)를 독립적으로 동작시킬 수 있다.
채널별 필터링 제어 신호가 안티 앨리어싱 필터링을 위한 채널별 제어 신호뿐만 아니라, 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 더 포함하고 있으면, 각 채널의 제2 필터(139-1, 139-2, 139-3, 139-4)를 독립적으로 동작시킬 수 있다.
도 10은 다른 실시예에 따른 텍스쳐 처리 장치의 동작을 설명하기 위한 도면이다.
도 10은 도 7과 달리, 메모리(200)에 원본 텍스쳐 뿐만 아니라 원본 텍스쳐에서 해상도를 줄인 밉맵들이 있는 경우로서, 텍스쳐 필터링에 밉맵을 이용하는 경우이다. 도 7에서 설명한 내용과 중복되는 상세 내용에 대해서는 그 기재를 생략한다.
제어부(131)는 텍스쳐 좌표를 획득할 수 있다. 제어부(131)는 획득된 텍스쳐 좌표에 기초하여, 메모리(200)에 텍스쳐 좌표에 대응되는 텍스쳐를 요청할 수 있다.
제어부(131)는 요청한 텍스쳐의 채널별 공간 주파수 정보를 획득할 수 있다. 제어부(131)는 획득한 채널별 공간 주파수 정보에 기초하여, 텍스쳐의 채널별 필터링 제어 신호를 결정할 수 있다.
앞서, 도 4에서 설명한 바와 같이, 원본 텍스쳐는 RGBA 색공간의 R 채널, G 채널, B 채널, A 채널의 영상 신호들로 나누어질 수 있으며, 각 채널의 공간 주파수는 X축 및 Y축의 공간 주파수 서로 동일하며, 각각 1/8, 1/2, 1/4, 0이다. 이때, 각 채널에 대한 샘플링 주파수는 X축 방향으로 1/2, Y축 방향으로 1/4이다.
제어부(131)는 원본 텍스쳐의 각 채널별 공간 주파수 정보에 기초하여, 앨리어싱이 발생하는 소정의 조건을 만족하는 채널을 찾을 수 있다. 도 7에서 설명한 바와 같이, G 채널의 경우, 영상 신호의 X축 및 Y축의 공간 주파수의 2배가 샘플링 주파수보다 크므로, G 채널의 영상 신호는 X축 및 Y축 모두에 대해 앨리어싱이 발생할 수 있다. B 채널의 경우, 영상 신호의 Y축의 공간 주파수의 2배가 Y축에 대한 샘플링 주파수보다 크므로, B 채널의 영상 신호는 Y축에 대해 앨리어싱이 발생할 수 있다.
제어부(131)는 앨리어싱이 발생하는 소정의 조건을 만족하는 G 채널과 B 채널에 대해서, 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호를 결정할 수 있다. 이때, 샘플링 주파수가 높은 축에 대한 안티 앨리어싱 필터링은 원본 텍스쳐에 대한 적절한 밉맵을 이용함으로서 해결할 수 있다.
G 채널의 경우, 샘플링 주파수가 큰 X축과 샘플링 주파수가 낮은 Y축 모두에 대해 앨리어싱이 발생할 수 있고, B 채널의 경우, Y축에 대해서만 앨리어싱이 발생할 수 있다. 이때, 샘플링 주파수가 낮은 축이 메이저 축이 되고, 샘플링 주파수가 높은 축이 마이너 축이 될 수 있다. 샘플링 주파수가 높은 마이너 축에 대해서는 앨리어싱이 발생하지 않으면서도 해상도의 저하가 발생하지 않는 밉맵을 적절히 선택함으로써 안티 앨리어싱 필터링의 효과를 가져올 수 있다. 샘플링 주파수가 낮은 메이저 축에 대해서는 저역 통과 필터를 더 적용하여 안티 앨리어싱 필터링을 수행할 수 있다.
도 10을 참고하면, 제어부(131)의 텍스쳐 요청에 대해 밉맵 레벨 1이 텍스쳐 캐쉬(134)에 수신될 수 있다. 밉맵 레벨 1은 원본 텍스쳐에 대해, X축과 Y축 모두 해상도를 1/2로 낮춘 밉맵으로써, 소정의 저역 통과 필터를 통과한 것과 같은 결과에 해당할 수 있다. 텍스쳐 캐쉬(134)는 메모리(200)에 저장된 밉맵 중 텍스쳐 필터링에 이용될 밉맵 레벨 1을 메모리(200)로부터 수신하여 저장할 수 있다.
제어부(131)는 텍스쳐 캐쉬(134)에 저장된 밉맵의 채널별 영상 신호를 독출하여, 텍스쳐 필터(137)에 전달되도록 제어할 수 있다. 제어부(131)는 앨리어싱이 발생하는 소정의 조건을 만족하는 일부 채널에 대해서, 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호를 텍스쳐 필터(137)에 전달할 수 있다. 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호뿐만 아니라, 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 더 포함할 수 있다.
텍스쳐 필터(137)는 텍스쳐를 구성하는 채널들에 대응되는 안티 앨리어싱 필터들을 포함하는 제 1 필터(138)와 응용 프로그램이 요청하는 필터링 모드에 따른 필터링을 수행하는 필터들을 포함하는 제 2 필터(139)를 포함할 수 있다. 텍스쳐 필터(137)는 제어부(131)로부터 전송된 채널별 필터링 제어 신호에 따라 제 1 필터(138)와 제 2 필터(139)를 채널별로 동작시킬 수 있다. 텍스쳐 필터(137)는 채널별 필터링 제어 신호에 따라, 각 채널에 대응되는 적어도 하나의 필터를 독립적으로 동작시킬 수 있다.
이하, 도 11에서는 원본 텍스쳐에 대한 밉맵을 메모리(200)로부터 수신하여, 앨리어싱이 발생하는 G 채널과 B 채널에 대해, 밉맵을 이용한 비등방성 안티 앨리어싱 필터링을 수행하는 예를 상세히 설명한다.
도 11은 또 다른 실시예에 따른 텍스쳐 필터의 구성과 동작을 설명하기 위한 도면이다.
밉맵을 이용한 비등방성 안티 앨리어싱 필터링은 영상에서 샘플링 주파수가 높은 방향에 대해서는 밉맵을 이용하여 앨리어싱을 방지하고, 샘플링 주파수가 낮은 방향에 대해서는 샘플링 주파수에 기초한 저역 통과 필터를 적용하는 방식이다.
도 10에서 설명한 바와 같이, 제어부(131)의 텍스쳐 요청에 대해, 밉맵 레벨 1이 텍스쳐 캐쉬(134)에 수신될 수 있다. 제어부(131)는 텍스쳐 캐쉬(134)에 저장된 밉맵의 채널별 영상 신호를 독출하여, 텍스쳐 필터(137)에 전달되도록 제어할 수 있다.
도 11을 참고하면, 밉맵 레벨 1의 각 채널별 영상 신호가 각 채널에 대응되는 적어도 하나의 필터를 통과할 수 있다. 밉맵 레벨 1은 원본 텍스쳐에 비해 해상도가 1/2이므로, 밉맵 레벨 1의 각 채널별 영상 신호 역시 해상도가 1/2에 해당한다. 즉, 원본 텍스쳐에 비해 밉맵 레벨 1의 해상도가 1/2로 줄었기 때문에, 이것만으로도 G 채널의 X축에 대해서는 안티 앨리어싱 필터링이 수행된 것과 같은 결과를 볼 수 있다.
G 채널의 Y축과 B 채널의 Y축에 대해서는 샘플링 주파수가 1/4이어서, 밉맵 레벨 1으로 Y축 방향으로 발생하는 안티 앨리어싱 문제를 해결할 수 없다. 따라서, G 채널의 Y축과 B 채널의 Y축에 대해서는 저역 통과 필터를 적용하여, 앨리어싱 문제를 해결할 수 있다. 안티 앨리어싱 필터링을 위한 채널별 제어 신호는 각 채널 제1 필터(138-1, 138-2, 138-3, 138-4)를 채널별로 독립적으로 동작시킬 수 있다. 텍스쳐 필터(137)는 G 채널과 B 채널의 메이저 축인 Y축 방향에 대해서만 G 채널 제1 필터(138-2)와 B 채널 제1 필터(138-3)를 독립적으로 동작시킬 수 있다. G 채널과 B 채널은 Y축 방향으로는 1/4의 샘플링 주파수를 가지므로, G 채널 제1 필터(138-2)와 B 채널 제1 필터(138-3)는 Y축 방향으로 4개의 텍셀마다 안티 앨리어싱 필터링을 수행할 수 있다.
R 채널과 A 채널에 대응되는 R 채널 제1 필터(138-1)와 A 채널 제1 필터(138-4)는 안티 앨리어싱 필터링을 수행하지 않을 수 있다. 이와 같이, 텍스쳐 필터(137)는 채널별 공간 주파수 정보에 기초하여, 각 채널 제1 필터(138-1, 138-2, 138-3, 138-4)를 독립적으로 동작시킬 수 있다.
채널별 필터링 제어 신호가 안티 앨리어싱 필터링을 위한 채널별 제어 신호뿐만 아니라, 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 더 포함하고 있으면, 각 채널의 제2 필터(139-1, 139-2, 139-3, 139-4)를 독립적으로 동작시킬 수 있다.
도 12는 일 실시예에 따른 텍스쳐 처리 방법을 설명하기 위한 흐름도이다.
1210 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐 좌표 및 텍스쳐 좌표에 대응되는 텍스쳐의 채널별 공간 주파수 정보를 획득할 수 있다.
텍스쳐의 채널별 공간 주파수 정보는 텍스쳐의 생성 시에 함께 생성되어, 텍스쳐가 저장되어 있던 외부의 메모리(200)에 함께 저장되어 있을 수 있으므로, 제어부(131)는 외부의 메모리(200)로부터 채널별 공간 주파수 정보를 획득할 수 있다.
제어부(131)는 외부 메모리(200)로부터 수신되는 압축된 텍스쳐를 압축 해제하는 디컴프레서(미도시)로부터 텍스쳐의 채널별 압축율 정보를 획득할 수도 있다. 제어부(131)는 채널별 압축률 정보에 기초하여 텍스쳐의 채널별 공간 주파수 정보를 결정할 수 있다. 압축율이 높은 채널의 경우, 채널의 공간 주파수는 낮고, 압축율이 낮은 채널의 경우, 채널의 공간 주파수는 높을 수 있으므로, 압축율과 공간 주파수 간의 상관 관계를 이용하여 공간 주파수 정보를 결정할 수 있다.
텍스쳐의 채널별 공간 주파수 정보는 텍스쳐 처리 장치(130)를 포함하는 그래픽 처리 장치(100)에서 텍스쳐링 작업 시에 실시간으로 계산될 수 있다. 제어부(131)는 계산된 채널별 공간 주파수 정보를 그래픽 처리 장치(100)로부터 획득할 수도 있다.
텍스쳐의 채널별 공간 주파수 정보는 그래픽 처리 장치(100)에서 실행되는 응용 프로그램을 통해 직접 입력받을 수도 있다.
1220 단계에서, 텍스쳐 처리 장치(130)는 채널별 공간 주파수 정보에 기초하여, 텍스쳐의 채널별 필터링 제어 신호를 결정할 수 있다.
텍스쳐 처리 장치(130)는 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수가 서로 다른 경우, 각 채널에 독립적으로 채널별 필터링 제어 신호를 결정할 수 있다. 텍스쳐 처리 장치(130)는 앨리어싱이 발생하는 소정의 조건을 만족하는 채널에 대해서 채널의 공간 주파수에 기초한 안티 앨리어싱 필터링이 수행되도록 채널별 필터링 제어 신호를 결정할 수 있다. 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호를 포함할 수 있다. 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호뿐만 아니라, 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 더 포함할 수 있다.
도 13은 일 실시예에 따른 텍스쳐 처리 방법에서, 채널별 필터링 제어 신호를 결정하는 단계에 대한 상세 흐름도이다.
1310 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐에 대한 샘플링 주파수를 획득할 수 있다.
1320 단계에서, 텍스쳐 처리 장치(130)는 채널별 공간 주파수 정보에 기초하여, 가장 높은 공간 주파수를 갖는 채널을 기준 채널로 결정할 수 있다.
1330 단계에서, 텍스쳐 처리 장치(130)는 기준 채널의 공간 주파수와 샘플링 주파수에 기초하여, 기준 채널의 필터링 제어 신호를 결정할 수 있다.
1340 단계에서, 텍스쳐 처리 장치(130)는 기준 채널의 공간 주파수와 기준 채널 이외의 다른 채널들의 공간 주파수를 비교하여, 기준 채널 이외의 다른 채널들의 필터링 제어 신호를 결정할 수 있다.
도 14은 다른 실시예에 따른 텍스쳐 처리 방법에서, 채널별 필터링 제어 신호를 결정하는 단계에 대한 상세 흐름도이다.
1410 단계에서, 텍스쳐 처리 장치(130)는 텍스쳐에 대한 샘플링 주파수를 획득할 수 있다.
1420 단계에서, 텍스쳐 처리 장치(130)는 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수를 샘플링 주파수와 각각 비교하여, 채널별 필터링 제어 신호를 결정할 수 있다.
다시 도 12를 참고하면, 1230 단계에서, 텍스쳐 처리 장치(130)는 채널별 필터링 제어 신호에 따라, 텍스쳐를 채널별로 필터링을 수행할 수 있다.
텍스쳐 처리 장치(130)는 텍스쳐를 구성하는 채널들에 대응되는 안티 앨리어싱 필터들을 포함하는 제 1 필터와 응용 프로그램이 요청하는 필터링 모드에 따른 필터링을 수행하는 필터들을 포함하는 제 2 필터를 채널별 필터링 제어 신호에 따라 채널별로 동작시킬 수 있다.
한편, 상술한 텍스쳐 처리 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 이와 같은 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 이와 같은 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 실시예들을 중심으로 살펴보았다. 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예들이 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 발명의 범위는 전술한 실시예들의 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 발명의 범위에 포함된 것으로 해석되어야 할 것이다.
100 ... 그래픽 처리 장치
110 ... 래스터라이저
120 ... 쉐이더 코어
130 ... 텍스쳐 처리 장치
131 ... 제어부
134 ... 텍스쳐 캐쉬
137 ... 텍스쳐 필터
140 ... 픽셀 처리 장치
150 ... 타일 버퍼
200 ... 메모리

Claims (20)

  1. 텍스쳐 좌표 및 상기 텍스쳐 좌표에 대응되는 텍스쳐의 채널별 공간 주파수 정보를 획득하고, 상기 텍스쳐에 대한 샘플링 주파수를 획득하고, 상기 채널별 공간 주파수 정보 및 상기 샘플링 주파수에 기초하여, 상기 텍스쳐의 채널별 필터링 제어 신호를 결정하는 제어부; 및
    불필요한 필터링 동작을 최소화하기 위해 상기 채널별 필터링 제어 신호에 따라, 상기 텍스쳐를 채널별로 적합한 필터링 방식을 수행하는 텍스쳐 필터;
    를 포함하고,
    상기 공간 주파수 정보는 텍스쳐가 저장된 메모리로부터 획득되는 것이고,
    상기 제어부는 상기 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수가 서로 다른 경우, 상기 각 채널에 독립적으로 상기 채널별 필터링 제어 신호를 결정하고,
    상기 제어부는 상기 채널별 공간 주파수 정보에 기초하여 가장 높은 공간 주파수를 갖는 채널을 기준 채널로 결정하고, 상기 기준 채널의 공간 주파수와 상기 샘플링 주파수에 기초하여 상기 기준 채널의 필터링 제어 신호를 결정하고, 상기 기준 채널의 공간 주파수와 상기 기준 채널 이외의 다른 채널들의 공간 주파수를 비교하여 상기 기준 채널 이외의 다른 채널들의 필터링 제어 신호를 결정하는, 텍스쳐 처리 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 제어부는 앨리어싱이 발생하는 소정의 조건을 만족하는 채널에 대해서 상기 채널의 공간 주파수에 기초한 안티 앨리어싱 필터링이 수행되도록 상기 채널별 필터링 제어 신호를 결정하는, 텍스쳐 처리 장치.
  4. 제 1 항에 있어서,
    상기 채널별 공간 주파수 정보는 상기 텍스쳐의 생성 시에 함께 생성되고,
    상기 제어부는 상기 채널별 공간 주파수 정보를 상기 텍스쳐가 저장되어 있던 외부의 메모리로부터 획득하는, 텍스쳐 처리 장치.
  5. 제 1 항에 있어서,
    상기 채널별 공간 주파수 정보는 상기 텍스쳐 처리 장치를 포함하는 그래픽 처리 장치에서 텍스쳐링 작업 시에 실시간으로 계산되고,
    상기 제어부는 상기 채널별 공간 주파수 정보를 상기 그래픽 처리 장치로부터 획득하는, 텍스쳐 처리 장치.
  6. 삭제
  7. 삭제
  8. 제 1 항에 있어서,
    상기 텍스쳐 필터는 상기 채널별 필터링 제어 신호에 따라, 각 채널에 대응되는 적어도 하나의 필터를 독립적으로 동작시키는, 텍스쳐 처리 장치.
  9. 제 1 항에 있어서,
    상기 텍스쳐 필터는 상기 텍스쳐를 구성하는 채널들에 대응되는 안티 앨리어싱 필터들을 포함하는 제 1 필터와 응용 프로그램이 요청하는 필터링 모드에 따른 필터링을 수행하는 필터들을 포함하는 제 2 필터를 포함하고, 상기 채널별 필터링 제어 신호에 따라 상기 제 1 필터와 상기 제 2 필터를 채널별로 동작시키는, 텍스쳐 처리 장치.
  10. 제 1 항에 있어서,
    상기 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호와 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 포함하는, 텍스쳐 처리 장치.
  11. 제 1 항에 있어서,
    상기 텍스쳐를 저장하는 텍스쳐 캐쉬를 더 포함하는, 텍스쳐 처리 장치.
  12. 텍스쳐 좌표 및 상기 텍스쳐 좌표에 대응되는 텍스쳐의 채널별 공간 주파수 정보를 획득하고, 상기 텍스쳐에 대한 샘플링 주파수를 획득하는 단계;
    상기 채널별 공간 주파수 정보 및 상기 샘플링 주파수에 기초하여, 상기 텍스쳐의 채널별 필터링 제어 신호를 결정하는 단계; 및
    불필요한 필터링 동작을 최소화하기 위해 상기 채널별 필터링 제어 신호에 따라, 상기 텍스쳐를 채널별로 적합한 필터링 방식을 수행하는 단계;
    를 포함하고,
    상기 공간 주파수 정보는 텍스쳐가 저장된 메모리로부터 획득되는 것이고,
    상기 제어 신호를 결정하는 단계는 상기 채널별 공간 주파수 정보에 포함된 각 채널의 공간 주파수가 서로 다른 경우, 상기 각 채널에 독립적으로 상기 채널별 필터링 제어 신호를 결정하고,
    상기 결정하는 단계는,
    상기 채널별 공간 주파수 정보에 기초하여, 가장 높은 공간 주파수를 갖는 채널을 기준 채널로 결정하는 단계;
    상기 기준 채널의 공간 주파수와 상기 샘플링 주파수에 기초하여, 상기 기준 채널의 필터링 제어 신호를 결정하는 단계; 및
    상기 기준 채널의 공간 주파수와 상기 기준 채널 이외의 다른 채널들의 공간 주파수를 비교하여, 상기 기준 채널 이외의 다른 채널들의 필터링 제어 신호를 결정하는 단계;
    를 포함하는, 텍스쳐 처리 방법.
  13. 삭제
  14. 제 12 항에 있어서,
    상기 채널별 필터링 제어 신호를 결정하는 단계는,
    앨리어싱이 발생하는 소정의 조건을 만족하는 채널에 대해서 상기 채널의 공간 주파수에 기초한 안티 앨리어싱 필터링이 수행되도록 상기 채널별 필터링 제어 신호를 결정하는, 텍스쳐 처리 방법.
  15. 제 12 항에 있어서,
    상기 채널별 공간 주파수 정보는 상기 텍스쳐의 생성 시에 함께 생성되고,
    상기 획득하는 단계는 상기 채널별 공간 주파수 정보를 상기 텍스쳐가 저장되어 있던 외부의 메모리로부터 획득하는, 텍스쳐 처리 방법.
  16. 제 12 항에 있어서,
    상기 채널별 공간 주파수 정보는 상기 텍스쳐 처리 방법을 수행하는 그래픽 처리 장치에서 텍스쳐링 작업 시에 실시간으로 계산되고,
    상기 획득하는 단계는 상기 채널별 공간 주파수 정보를 상기 그래픽 처리 장치로부터 획득하는, 텍스쳐 처리 방법.
  17. 삭제
  18. 삭제
  19. 제 12 항에 있어서,
    상기 채널별로 필터링을 수행하는 단계는,
    상기 텍스쳐를 구성하는 채널들에 대응되는 안티 앨리어싱 필터들을 포함하는 제 1 필터와 응용 프로그램이 요청하는 필터링 모드에 따른 필터링을 수행하는 필터들을 포함하는 제 2 필터를 상기 채널별 필터링 제어 신호에 따라 채널별로 동작시키는, 텍스쳐 처리 방법.
  20. 제 12 항에 있어서,
    상기 채널별 필터링 제어 신호는 안티 앨리어싱 필터링을 위한 채널별 제어 신호와 응용 프로그램이 요청하는 필터링 모드에 대한 채널별 제어 신호를 포함하는, 텍스쳐 처리 방법.
KR1020150142231A 2015-10-12 2015-10-12 텍스쳐 처리 방법 및 장치 KR102512521B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020150142231A KR102512521B1 (ko) 2015-10-12 2015-10-12 텍스쳐 처리 방법 및 장치
US15/146,302 US10134173B2 (en) 2015-10-12 2016-05-04 Texture processing method and unit
JP2016198974A JP6931279B2 (ja) 2015-10-12 2016-10-07 テクスチャ処理方法及びテクスチャ処理装置
CN201610881136.7A CN106570924B (zh) 2015-10-12 2016-10-09 纹理处理方法和单元
EP16193551.5A EP3156974B1 (en) 2015-10-12 2016-10-12 Texture processing method and unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150142231A KR102512521B1 (ko) 2015-10-12 2015-10-12 텍스쳐 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170042969A KR20170042969A (ko) 2017-04-20
KR102512521B1 true KR102512521B1 (ko) 2023-03-21

Family

ID=57189785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150142231A KR102512521B1 (ko) 2015-10-12 2015-10-12 텍스쳐 처리 방법 및 장치

Country Status (5)

Country Link
US (1) US10134173B2 (ko)
EP (1) EP3156974B1 (ko)
JP (1) JP6931279B2 (ko)
KR (1) KR102512521B1 (ko)
CN (1) CN106570924B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460513B2 (en) 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US10657698B2 (en) * 2017-06-22 2020-05-19 Microsoft Technology Licensing, Llc Texture value patch used in GPU-executed program sequence cross-compilation
US11308648B2 (en) * 2020-09-23 2022-04-19 Advanced Micro Devices, Inc. Compressing texture data on a per-channel basis

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012069099A (ja) * 2010-08-27 2012-04-05 Canon Inc 画像処理方法、画像処理装置および画像処理プログラム
GB2516682A (en) * 2013-07-30 2015-02-04 Samsung Electronics Co Ltd Hierarchical memory for mip map

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566284A (en) 1993-12-22 1996-10-15 Matsushita Electric Industrial Co., Ltd. Apparatus and method for mip-map generation using low-pass filtering based on resolution ratio
DE69630261T2 (de) * 1995-06-30 2004-08-05 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren und Vorrichtung zum Darstellen und Abbilden von Bildern
US6690418B1 (en) * 1995-12-26 2004-02-10 Canon Kabushiki Kaisha Image sensing apparatus image signal controller and method
US6236405B1 (en) 1996-07-01 2001-05-22 S3 Graphics Co., Ltd. System and method for mapping textures onto surfaces of computer-generated objects
US6453074B1 (en) 1997-03-31 2002-09-17 Canon Kabushiki Kaisha System for image decimation including selective filtering
US6360022B1 (en) * 1997-04-04 2002-03-19 Sarnoff Corporation Method and apparatus for assessing the visibility of differences between two signal sequences
GB9807211D0 (en) * 1998-04-03 1998-06-03 Nds Ltd Filtering of digital video signals
US6466226B1 (en) * 2000-01-10 2002-10-15 Intel Corporation Method and apparatus for pixel filtering using shared filter resource between overlay and texture mapping engines
US7110012B2 (en) * 2000-06-12 2006-09-19 Sharp Laboratories Of America, Inc. System for improving display resolution
JP3745948B2 (ja) * 2000-08-25 2006-02-15 シャープ株式会社 画像処理装置およびデジタルカメラ
JP4055927B2 (ja) * 2000-08-25 2008-03-05 シャープ株式会社 画像処理装置およびデジタルカメラ
JP2002112051A (ja) 2000-09-27 2002-04-12 Fuji Xerox Co Ltd 画像処理方法および装置
US20020080143A1 (en) * 2000-11-08 2002-06-27 Morgan David L. Rendering non-interactive three-dimensional content
JP4641675B2 (ja) 2001-07-18 2011-03-02 三洋電機株式会社 画像信号処理装置
US6778188B2 (en) * 2002-02-28 2004-08-17 Sun Microsystems, Inc. Reconfigurable hardware filter for texture mapping and image processing
US7649539B2 (en) * 2004-03-10 2010-01-19 Microsoft Corporation Image formats for video capture, processing and display
CN100579240C (zh) * 2004-05-26 2010-01-06 安奇逻辑股份有限公司 摄像装置
KR100699831B1 (ko) * 2004-12-16 2007-03-27 삼성전자주식회사 베이어 패턴의 컬러 신호를 보간하는 방법 및 보간기
US8065354B1 (en) * 2005-03-04 2011-11-22 Nvidia Corporation Compression of 16 bit data using predictor values
JP5151075B2 (ja) * 2005-06-21 2013-02-27 ソニー株式会社 画像処理装置及び画像処理方法、撮像装置、並びにコンピュータ・プログラム
US20080024510A1 (en) * 2006-07-27 2008-01-31 Via Technologies, Inc. Texture engine, graphics processing unit and video processing method thereof
US8494260B2 (en) 2007-06-25 2013-07-23 Silicon Hive B.V. Image processing device, image processing method, program, and imaging device
US8934713B2 (en) 2007-06-25 2015-01-13 Intel Corporation Image processing device, image processing method, program, and imaging device
WO2009122759A1 (ja) * 2008-04-04 2009-10-08 富士フイルム株式会社 画像処理システム、画像処理方法、およびコンピュータ読取可能な媒体
US20120050334A1 (en) * 2009-05-13 2012-03-01 Koninklijke Philips Electronics N.V. Display apparatus and a method therefor
JP5269718B2 (ja) * 2009-08-18 2013-08-21 オリンパス株式会社 画像処理装置、画像処理プログラムおよび画像処理方法
JP5394305B2 (ja) * 2010-04-14 2014-01-22 株式会社メガチップス 画像処理装置
JP2012004787A (ja) * 2010-06-16 2012-01-05 Sony Corp 画像処理装置、および画像処理方法、並びにプログラム
CN102572499B (zh) * 2010-12-07 2015-11-25 江南大学 基于小波变换多分辨率预测的无参考图像质量评价方法
US9230361B2 (en) 2011-07-05 2016-01-05 Panasonic Intellectual Property Management Co., Ltd. Antialiasing image generation apparatus for selecting an antialiasing technique to be applied to a pixel using pixel data
KR101926570B1 (ko) 2011-09-14 2018-12-10 삼성전자주식회사 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US9064299B2 (en) * 2012-08-17 2015-06-23 Karl P. Sims Filters and functions using exponential decay

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012069099A (ja) * 2010-08-27 2012-04-05 Canon Inc 画像処理方法、画像処理装置および画像処理プログラム
GB2516682A (en) * 2013-07-30 2015-02-04 Samsung Electronics Co Ltd Hierarchical memory for mip map

Also Published As

Publication number Publication date
US20170103566A1 (en) 2017-04-13
CN106570924B (zh) 2021-06-29
CN106570924A (zh) 2017-04-19
JP6931279B2 (ja) 2021-09-01
JP2017076388A (ja) 2017-04-20
EP3156974A1 (en) 2017-04-19
US10134173B2 (en) 2018-11-20
EP3156974B1 (en) 2020-05-06
KR20170042969A (ko) 2017-04-20

Similar Documents

Publication Publication Date Title
US10134175B2 (en) Gradient adjustment for texture mapping to non-orthonormal grid
US10878527B2 (en) Variable resolution graphics processing
KR102444240B1 (ko) 텍스쳐 처리 방법 및 장치
JP5847159B2 (ja) タイル・ベース・レンダリング・システムにおけるサーフェスのパッチのテッセレーション
KR102258100B1 (ko) 텍스쳐 처리 방법 및 장치
CN106548498B (zh) 用于处理压缩纹理的方法和设备
US20180315245A1 (en) Graphics processing systems
EP2991038B1 (en) Rendering apparatus and method
KR20160032597A (ko) 텍스쳐를 처리하는 방법 및 장치
KR102512521B1 (ko) 텍스쳐 처리 방법 및 장치
US11238639B2 (en) Gradient adjustment for texture mapping to non-orthonormal grid
KR20180037838A (ko) 텍스쳐를 처리하는 방법 및 장치
CN108022282B (zh) 纹理处理方法和单元
US20160292906A1 (en) Apparatus and method for managing commands

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