KR20180056313A - 텍스처를 처리하는 방법 및 장치 - Google Patents

텍스처를 처리하는 방법 및 장치 Download PDF

Info

Publication number
KR20180056313A
KR20180056313A KR1020160154448A KR20160154448A KR20180056313A KR 20180056313 A KR20180056313 A KR 20180056313A KR 1020160154448 A KR1020160154448 A KR 1020160154448A KR 20160154448 A KR20160154448 A KR 20160154448A KR 20180056313 A KR20180056313 A KR 20180056313A
Authority
KR
South Korea
Prior art keywords
texture
amount
data loss
information
loss
Prior art date
Application number
KR1020160154448A
Other languages
English (en)
Inventor
이상헌
조연곤
류수정
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160154448A priority Critical patent/KR20180056313A/ko
Priority to US15/622,927 priority patent/US10733764B2/en
Publication of KR20180056313A publication Critical patent/KR20180056313A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Generation (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득하고, 획득된 정보에 기초하여 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정하며, 제 2 데이터 손실량을 이용하여 텍스처의 필터링을 수행하는 텍스처 처리 방법 및 장치를 제공한다.

Description

텍스처를 처리하는 방법 및 장치{Apparatus and method for processing texture}
텍스처를 처리하는 방법 및 장치에 관한 것이다.
그래픽 프로세싱(Graphics processing) 과정은 정점(vertex)들을 화면의 지정된 위치에 배치하고, 그 배치에 따라 결정된 형태(object)에 그림(texture)를 입히는 과정으로 볼 수 있다. 텍스처 유닛(texture unit)은 각각의 점들에 대해 대응하는 텍스처를 메모리로부터 읽어와서 형태에 그림을 입히는 역할을 한다. 이 때 공간 상에 임의로 정해진 점에 대응하는 메모리 상의 그림 좌표는 소수점으로 표현될 수 있으므로 인접한 점들을 보간(interpolation)하는 과정이 필요한 데, 이를 텍스처 샘플링(texture sampling) 또는 텍스처 필터링(texture filtering)이라고 한다.
한편, 그래픽 프로세싱 과정에서 이용되는 텍스처는 미리 결정되어 메모리 상에 저장되어 있을 수 있지만, 실시간으로 생성될 수도 있다. 이렇게 그래픽 프로세싱 과정에서 실시간으로 생성되는 텍스처를 동적 텍스처(dynamic texture)라고 한다. 동적 텍스처는 메모리 대역폭 및 판독/기록하는데 드는 전력의 소모를 줄이기 위해 메모리에 저장하기 전에 압축(compression)하는 과정을 거칠 수 있다.
전술한 텍스처 필터링 및 압축 과정은 서로 독립된 과정이다. 종래 기술들은 각각의 과정에서만 최적화를 수행하여 정확성 향상과 소모 전력 감소의 상반된 요구를 만족시키는 데에 한계가 있다.
다양한 실시예들은 텍스처를 처리하는 방법 및 장치를 제공하는데 있다. 본 개시가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 기술적 과제를 달성하기 위한 수단으로서, 일 측면에 따른 컴퓨팅 시스템에서 텍스처를 처리하는 방법은, 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득하는 단계, 상기 획득된 정보에 기초하여 상기 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정하는 단계 및 상기 제 2 데이터 손실량을 이용하여 상기 텍스처의 필터링을 수행하는 단계를 포함할 수 있다.
또한, 다른 측면에 따른 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 기록매체를 포함할 수 있다.
또한, 또 다른 측면에 따른 텍스처를 처리하는 컴퓨팅 시스템은, 적어도 하나의 메모리 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 상기 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득하고, 상기 획득된 정보에 기초하여 상기 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정하며, 상기 제 2 데이터 손실량을 이용하여 상기 텍스처의 필터링을 수행할 수 있다.
도 1은 일 실시예에 따른 텍스처를 처리하는 방법의 일 예를 나타내는 흐름도이다.
도 2는 일 실시예에 따른 텍스처를 압축하는 방식의 예시를 나타내는 도면이다.
도 3은 일 실시예에 따른 손실 테이블의 예시를 나타내는 도면이다.
도 4는 일 실시예에 따른 텍스처를 처리하는 방법의 다른 예를 나타내는 흐름도이다.
도 5는 일 실시예에 따른 텍스처를 처리하는 방법의 또 다른 예를 나타내는 흐름도이다.
도 6은 일 실시예에 따른 텍스처를 처리하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 7은 일 실시예에 따른 압축기의 구성을 나타내는 블록도이다.
도 8은 일 실시예에 따른 텍스처 유닛의 구성을 나타내는 블록도이다.
도 9는 일 실시예에 따른 텍스처를 처리하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예에 의해 발명을 상세히 설명하기로 한다. 하기 실시예는 발명을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 발명이 속하는 기술분야의 전문가가 용이하게 유추할 수 있는 것은 발명의 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 또한, 명세서에 기재된 “...부”, “모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 실시예들은 텍스처 처리 방법 및 장치에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 일 실시예에 따른 텍스처를 처리하는 방법의 일 예를 나타내는 흐름도이다.
도 1을 참조하면, 단계 100에서 컴퓨팅 시스템(computing system)은 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득할 수 있다.
컴퓨팅 시스템은 컨텐츠의 디스플레이를 위한 그래픽 프로세싱 기능을 갖는 장치로서, 다양한 장치들을 포함할 수 있다. 예를 들어, 컴퓨팅 시스템은 데스크탑 컴퓨터, 노트북 컴퓨터, 스마트폰, PDA(personal digital assistants), 휴대형 미디어 플레이어, 비디오 게임용 콘솔, 텔레비전 셋탑 박스, 태블릿 디바이스, 이북 리더, 웨어러블 디바이스, HMD(Head Mounted Display) 디바이스 등일 수 있지만, 이에 제한되지 않는다. 특히, 모바일/태블릿 등의 기기의 경우 제한된 메모리 크기 및 프로세싱 리소스로 인해 텍스처를 처리하는 과정에서의 최적화에 대한 요구가 클 수 있다. 예를 들어, 처리된 텍스처에 대응하는 이미지의 정확성을 유지하면서도 텍스처 처리 과정에서의 소모 전력을 감소하는 것이 요구될 수 있다.
텍스처는 3차원 이미지 상의 3차원 오브젝트(object)를 디스플레이용의 2차원 이미지로 렌더링하는 과정에서 오브젝트에 입혀지는 이미지이다. 텍스처는 오브젝트의 세부적인 형태나 질감, 색상 등에 대한 정보를 담고 있을 수 있다. 한편, 텍스처는 메모리에 압축된 형태로 미리 저장되어 있을 수 있지만, 그래픽 프로세싱 과정에서 실시간으로 생성될 수도 있다.
예를 들어, 거울에 반사되는 이미지에 대응하는 텍스처와 같이, 미리 생성되어 저장되기 어려운 텍스처는 그래픽 프로세싱 과정에서 실시간으로 생성될 수 있다. 그래픽 프로세싱 과정에서 실시간으로 생성되는 텍스처를 동적 텍스처라고 한다.
컴퓨팅 시스템은 동적 텍스처를 메모리에 저장하기 전에 압축할 수 있다. 텍스처를 압축하게 되면, 메모리 대역폭 및 판독/기록하는 데 드는 전력의 소모가 줄어들 수 있다. 한편, 텍스처를 압축하는 과정에서 데이터 손실이 발생할 수 있다. 텍스처를 압축하는 과정에서 발생된 데이터 손실의 양을 제 1 데이터 손실량이라고 하면, 컴퓨팅 시스템은 제 1 데이터 손실량에 대한 정보를 획득할 수 있다.
제 1 데이터 손실량은 다양한 방식으로 표현될 수 있다. 또한, 제 1 데이터 손실량이 정량화되기 위해서는 어떤 범위에서 데이터 손실이 발생되었는지 결정되어야 한다. 일 예로서, 텍스처의 압축 단위 하나에 대한 손실량을 제 1 데이터 손실량이라고 할 수 있다. 다른 예로서, 기 설정된 수의 텍스처의 압축 단위들의 누적된 손실량을 제 1 데이터 손실량이라고 할 수 있다. 텍스처의 압축 단위는 캐쉬라인(cacheline)의 크기에 기초하여 결정될 수 있다.
전술한 것과 같이 제 1 데이터 손실량을 결정하기 위한 범위가 결정되면, 그 범위에 대응하는 손실량이 표현될 수 있다. 일 예로서, 손실량은 PSNR(Peak Signal-to-Noise Ratio)로 표현될 수 있다. 다른 예로서, 제 1 데이터 손실량은 하드웨어의 비용을 고려하여 계산될 수도 있다. 아래 도 2를 참조하여 설명할 것과 같이, 하위 몇 bit에 해당하는 손실을 허용하는 압축을 진행하는 경우에는 허용 손실량을 제 1 데이터 손실량으로 볼 수도 있다.
텍스처를 손실 압축하는 방식은 무손실 압축하는 방식보다 높은 압축률을 얻을 수 있다. 압축률의 증가로 인해 압축된 데이터의 크기가 작아지고, 이에 따라 메모리에 압축된 데이터를 판독/기록하는데 드는 전력의 소모를 줄일 수 있다. 또한, 컴퓨팅 시스템은 무손실 압축을 하는 경우보다 손실 압축을 하는 경우에 다양한 압축 기법을 활용할 수 있다.
다만, 텍스처를 압축하는 과정에서 발생되는 데이터 손실량이 너무 커지면, 텍스처에 대응하는 이미지의 정확도가 떨어질 수 있다. 따라서, 텍스처를 압축하는 과정에서 허용되는 손실량에 대한 기준이 있어야 한다.
컴퓨팅 시스템은 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신할 수 있다. 사람의 눈은 텍스처에 대응하는 이미지를 볼 때 일정 수준 이하의 오차는 감지하지 못하므로, 텍스처를 처리하는 과정에서 일정 량의 데이터가 손실되어도 큰 문제가 없을 수 있다. 텍스처를 처리하는 과정에서 허용될 수 있는 데이터 손실량을 제 3 데이터 손실량이라고 하면, 컴퓨팅 시스템은 제 3 데이터 손실량에 대한 정보를 수신할 수 있다.
컴퓨팅 시스템은 외부의 프로세서 또는 드라이버로부터 제 3 데이터 손실량을 수신할 수 있지만, 이에 제한되지 않는다. 컴퓨팅 시스템은 자체적으로 제 3 데이터 손실량을 결정할 수도 있다. 또한, 컴퓨팅 시스템은 사용자 입력에 기초하여 제 3 데이터 손실량에 대한 정보를 획득할 수 있다.
컴퓨팅 시스템은 제 3 데이터 손실량을 넘지 않는 데이터 손실이 발생되도록 텍스처를 압축할 수 있다. 컴퓨팅 시스템은 제 3 데이터 손실량을 넘지 않는 데이터 손실이 발생되는 다양한 압축 기법을 이용하여 텍스처를 압축할 수 있고, 그 중 가장 데이터 손실량이 적은 압축 기법을 선택할 수 있다.
도 2는 일 실시예에 따른 텍스처를 압축하는 방식의 예시를 나타내는 도면이다.
도 2에서는 설명의 편의를 위하여 텍스처 블록(201)들을 포함하는 전체를 텍스처(200)로 정의하였으나, 텍스처 블록(201) 각각도 텍스처(200)의 기능을 수행할 수 있다. 예를 들어, 텍스처 블록(201)은 3차원 이미지 상의 3차원 오브젝트를 디스플레이용의 2차원 이미지로 렌더링하는 과정에서 오브젝트에 입혀지는 이미지이고, 오브젝트의 세부적인 형태나 질감, 색상 등에 대한 정보를 담고 있을 수 있다.
도 2에는 컴퓨팅 시스템에 의하여 압축되기 전의 텍스처(200)의 일 예가 도시되어 있다. 예를 들어, 텍스처(200)는 텍스처 블록(201)을 16개 포함할 수 있으며, 텍스처 블록(201) 각각은 8 bits의 데이터를 포함할 수 있다. 이는 예시에 불과하며, 텍스처(200)는 임의의 수의 텍스처 블록(201)들을 포함할 수 있고, 텍스처 블록(201) 각각은 임의의 bits의 데이터를 포함할 수 있다.
한편, 텍스처 블록(201)들에 쓰여 있는 87, 88이라는 숫자는 8 bits 데이터에 대응하는 숫자를 나타내며, 각각의 데이터는 대응하는 형태, 질감 또는 색상에 대한 정보를 포함할 수 있다.
손실 압축의 일 예시로서, 컴퓨팅 시스템이 텍스처를 압축하는 과정에서 하위 2 bits에 해당하는 손실이 발생될 수 있다. 87과 88은 하위 2 bits 이내의 차이를 가지므로 모두 87로 근사(210)될 수 있다. 근사(210)된 텍스처(220)는 모두 87이라는 데이터의 값을 갖는 16개의 텍스처 블록(221)들을 포함할 수 있다.
따라서, 근사(210)된 텍스처(220)를 압축(230)하게 되면, 87을 의미하는 0x57의 8 bits와 16개의 텍스처 블록(221)들이 같은 값을 갖는다는 것을 나타내는 1 bit만으로 압축된 텍스처를 나타낼 수 있다. 즉, 손실 압축을 통해 128 bits의 데이터가 9 bits의 데이터로 높은 압축률을 가지며 압축될 수 있다.
이와 같이, 손실 압축은 일반적으로 높은 압축률을 얻을 수 있다. 손실 압축 과정에서 발생하는 손실은 텍스처의 필터링 과정에서 허용되는 연산 오차의 일부가 차용된 것일 수 있다. 압축률이 높아지면 압축된 데이터의 크기가 작아지므로, 압축된 데이터를 판독/기록 하는 데에 소모되는 전력이 감소할 수 있다.
다시 도 1로 돌아오면, 단계 110에서 컴퓨팅 시스템은 획득된 정보에 기초하여 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정할 수 있다.
텍스처 필터링은 정수좌표에 대한 정보를 가지는 텍스처 데이터에 기초하여 공간 상의 소수좌표에 대응하는 출력을 만들기 위해 인접한 점들을 보간(interpolation)하는 과정을 의미한다. 텍스처 필터링의 결과물인 텍스처는 눈으로 인지하기 힘든 정도의 오차를 허용할 수 있으며, 컴퓨팅 시스템은 하드웨어 비용 및 전력소모 절감을 위해 이를 활용할 수 있다. 따라서, 보간이 수행되면, 데이터 손실이 발생될 수 있다. 또한, 보간이 수행되는 방식이 다양하므로 각각의 방식마다 발생되는 데이터 손실량이 다를 수 있다.
컴퓨팅 시스템은 텍스처의 압축 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 수신할 수 있고, 이에 기초하여 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정할 수 있다. 텍스처 압축과 텍스처 필터링은 독립된 과정이지만, 컴퓨팅 시스템은 텍스처의 압축 과정에서 발생된 손실량을 고려해서 텍스처의 필터링 과정에서 허용 가능한 손실량을 결정할 수 있다.
컴퓨팅 시스템이 제 1 데이터 손실량에 대한 정보에 기초하여 제 2 데이터 손실량을 결정하기 위해서는 텍스처를 처리하는 과정에서 허용되는 손실량에 대한 기준이 있어야 한다.
이에 따라, 컴퓨팅 시스템은 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신할 수 있다. 제 3 데이터 손실량은 컴퓨팅 시스템에 의해 처리된 텍스처에 대응하는 이미지가 사람의 눈에 어색하게 보이지 않을 정도로만 데이터 손실이 될 수 있도록 하는 최대 허용 손실량을 의미할 수 있다.
컴퓨팅 시스템은 제 3 데이터 손실량과 제 1 데이터 손실량의 차이에 기초하여 제 2 데이터 손실량을 결정할 수 있다. 예를 들어, 텍스처의 포맷이 16 bit 정수(Integer)인 경우를 가정해보자. 텍스처를 처리하는 과정에서 허용된 손실량이 하위 4 bits이고, 텍스처를 압축하는 과정에서 하위 3 bits에 해당하는 손실이 있는 경우, 컴퓨팅 시스템은 텍스처 필터링 과정에서 허용 가능한 손실량을 하위 3 bits로 결정할 수 있다.
전술한 결정을 통해 컴퓨팅 시스템은 텍스처에 대응하는 이미지의 정확도를 일정 수준 이상으로 유지하면서 텍스처 필터링 과정에서 허용되는 연산 오차의 일부를 텍스처 압축 과정에서 활용함으로써 높은 압축률을 얻고, 소모되는 전력을 줄일 수 있다.
제 3 데이터 손실량은 텍스처에 대응하는 이미지의 특성, 어플리케이션의 특성, 텍스처의 포맷 및 사용자 입력 중 적어도 하나에 기초하여 결정될 수 있다. 일 예로서, 텍스처에 대응하는 이미지가 높은 정확도를 요구하는 경우 제 3 데이터 손실량은 상대적으로 작을 수 있고, 텍스처에 대응하는 이미지가 낮은 정확도를 요구하는 경우에는 제 3 데이터 손실량은 상대적으로 많을 수 있다.
다른 예로서, 텍스처의 포맷이 많은 양의 데이터를 포함할 수 있는 경우에는 그렇지 않은 경우보다 손실량이 많더라도 전체적으로 보면 손실 비율이 크지 않으므로, 제 3 데이터 손실량이 상대적으로 많을 수 있다. 예를 들어, 텍스처의 포맷이 8 bit 놈(NORM)인 경우보다 16 bit 놈인 경우 제 3 데이터 손실량은 상대적으로 많을 수 있다.
또 다른 예로서, 제 3 데이터 손실량은 사용자 입력에 기초하여 결정될 수도 있다. 사용자가 높은 정확도의 이미지를 화면에 표시하고 싶은 경우에는 제 3 데이터 손실량은 적게 결정될 수 있다. 그 반대 또한 마찬가지이다.
또한, 텍스처를 이용하여 화면에 이미지를 표시하게 하는 어플리케이션의 특성에 기초하여 제 3 데이터 손실량이 결정될 수도 있다. 높은 정확도의 이미지를 요구하는 어플리케이션의 경우 그렇지 않은 경우보다 제 3 데이터 손실량이 상대적으로 적게 결정될 수 있다. 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량이 결정되는 방법은 다양할 수 있고, 앞에 언급한 예시에 제한되지 않는다.
또한, 컴퓨팅 시스템은 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 생성할 수 있다.
도 3은 일 실시예에 따른 손실 테이블의 예시를 나타내는 도면이다.
제 3 데이터 손실량은 텍스처를 처리하는 과정에서 허용된 데이터 손실량으로서, 텍스처의 특성 또는 텍스처에 대응하는 이미지의 특성에 따라 달라질 수 있다. 따라서, 컴퓨팅 시스템은 텍스처의 특성 또는 텍스처에 대응하는 이미지의 특성에 따른 제 3 데이터 손실량에 대한 정보에 기초하여 손실 테이블을 생성할 수 있다.
여기에서, 손실 테이블은 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 의미할 수 있다. 예를 들어, 손실 테이블(300 및 305)은 텍스처의 특성 중 텍스처의 포맷(310)에 따른 허용 손실량(320)에 대한 정보를 포함할 수 있다. 구체적으로, 텍스처의 포맷은 비트의 길이(bit width) 및 수 체계에 의해 결정될 수 있다.
예를 들어, 손실 테이블(300)을 살펴보면, 텍스처의 포맷이 8 bit 놈인 경우 2 bits, 16 bit 놈인 경우 3 bits, 16 bit 정수의 경우 3 bits, 32 bit 부동 소수(Floating point)의 경우 5 bits의 손실을 허용할 수 있다. 여기에서 허용되는 손실이란 도 2를 참조하여 설명한 바와 같은 압축 과정에서 근사를 위해 무시해도 되는 하위 bit의 수를 의미할 수 있다.
텍스처 데이터의 크기가 클수록 허용 손실량에 해당하는 bit의 크기가 증가할 수 있다. 예를 들어, 손실 테이블(300)에 도시된 것과 같이 8 bit 놈의 경우 2 bits의 손실만을 허용하는 반면, 16 bit 놈의 경우 3 bits의 손실을 허용할 수 있다. 데이터의 크기가 클수록 하위 bit에 의한 오차가 줄어들기 때문이다.
또한, 텍스처에 대응하는 이미지의 특성에 따라 손실 테이블(300 및 305)은 달라질 수 있다. 예를 들어, 보다 정밀하게 표현되어야 하는 이미지의 경우, 허용 손실량은 그렇지 않은 경우보다 작을 수 있다. 도 3에서 도시된 손실 테이블(300)과 손실 테이블(305)를 비교하면, 손실 테이블(305)가 동일한 텍스처 포맷에 대해 허용 손실량이 1 bit씩 많은 것을 알 수 있다. 따라서, 보다 정밀하게 표현되어야 하는 이미지의 경우 손실 테이블(300)에 따라 허용 손실량을 결정하고, 그렇지 않은 경우에는 손실 테이블(305)에 따라 허용 손실량을 결정할 수 있다.
전술한 손실 테이블(300 및 305)의 허용 손실량들은 예시에 불과하고, 어플리케이션의 특성 또는 사용자의 입력에 따라 다르게 설정될 수 있다. 손실 테이블(300 및 305)이 결정되는 방법은 다양할 수 있고, 앞에 언급한 예시에 제한되지 않는다.
다시 도 1로 돌아오면, 단계 120에서 컴퓨팅 시스템은 제 2 데이터 손실량을 이용하여 텍스처의 필터링을 수행할 수 있다.
컴퓨팅 시스템은 제 2 데이터 손실량을 넘지 않는 손실이 발생되도록 텍스처의 필터링을 수행할 수 있다. 컴퓨팅 시스템은 텍스처 필터링 과정에서 발생되는 손실을 다양한 방식으로 조정할 수 있다.
컴퓨팅 시스템은 텍스처의 필터링에 이용되는 보간 방식을 결정하고, 결정된 보간 방식을 이용하여 텍스처의 필터링을 수행할 수 있다. 보간 방식의 예로는 포인트 필터링, 선형 필터링, 이중선형(bilinear) 필터링, 삼선형(tri-linear) 필터링, 이방성(anisotropic) 필터링, 밉맵(mipmap) 필터링 등이 있을 수 있다. 각각의 보간 방식에 따라 발생되는 손실량이 다르므로, 컴퓨팅 시스템은 보간 방식의 선택을 통해 텍스처 필터링 과정에서 발생되는 손실을 조정할 수 있다.
또한, 컴퓨팅 시스템은 보간에 이용되는 데이터 연산의 범위를 결정하는 방식으로 손실을 조정할 수 있다. 예를 들어, 선형 보간 방식을 통해 텍스처를 필터링한다고 가정하면, 다음과 같은 수학식 1을 따른다.
Figure pat00001
수학식 1에서 LERP는 선형 필터링된 값을 의미하고, T10 및 T11은 각각 텍스처에 포함된 제 1 텍셀(TEXEL)의 색값 및 제 2 텍셀의 색값을 의미하며, Wu는 선형 보간(linear interpolation)에 이용되는 가중치를 의미한다.
T10과 T11이 각각 16 bits의 데이터이고, Wu가 8 bits의 데이터라고 가정하자. 그러면, LERP는 총 25 bits의 데이터가 될 수 있다. 이 경우 텍스처 필터링 과정에서 허용 가능한 손실량이 하위 4 bits라면, 컴퓨팅 시스템은 T10과 T11에서 하위 4 bits를 무시하고 연산할 수 있다. 또한, 다른 실시예에서는 Wu에서 하위 4 bits를 무시하고 연산할 수 있다.
이렇게 하위 bit를 무시하고 보간하더라도 텍스처에 대응하는 이미지의 정확도가 크게 낮아지지 않는다면, 컴퓨팅 시스템은 무시하는 하위 bit를 허용 가능한 손실량으로 보아 텍스처 필터링을 수행할 수 있다.
컴퓨팅 시스템은 텍스처를 압축하는 과정에서 발생된 손실량과 텍스처 필터링 과정에서 발생된 손실량을 함께 고려함으로써 소모 전력을 줄이면서도 텍스처에 대응하는 이미지의 정확도를 일정 수준 이상으로 유지할 수 있다.
도 4는 일 실시예에 따른 텍스처를 처리하는 방법의 다른 예를 나타내는 흐름도이다.
도 4를 참조하면, 단계 400에서 컴퓨팅 시스템은 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득할 수 있다. 도 4 의 단계 400은 도 1의 단계 100과 동일한 단계일 수 있다. 따라서, 이하에서는 단계 400에 대한 구체적인 설명을 생략한다.
단계 410에서 컴퓨팅 시스템은 제 1 데이터 손실량에 대한 정보 및 압축된 텍스처를 저장할 수 있다. 예를 들어, 제 1 데이터 손실량에 대한 정보 및 압축된 텍스처를 메모리에 저장할 수 있다.
컴퓨팅 시스템은 압축된 텍스처와 함께 제 1 데이터 손실량에 대한 정보를 저장할 수 있다. 예를 들어, 컴퓨팅 시스템은 제 1 데이터 손실량에 대한 정보를 메타 데이터의 형태로 포함하는, 압축된 텍스처를 저장할 수 있다.
일 예로서, 제 1 데이터 손실량 정보는 압축된 텍스처의 압축 단위 각각에 대한 손실량 정보를 포함할 수 있다. 일반적으로 메모리는 저장 용량이 크므로, 압축된 텍스처의 압축 단위 각각에 대한 손실량 정보를 메모리에 저장하여도 문제가 없을 수 있다.
다른 예로서, 제 1 손실량 정보는 기 설정된 수의 텍스처의 압축 단위들의 누적된 손실량에 대한 정보를 포함할 수도 있다. 예를 들어, 제 1 손실량 정보는 16개의 텍스처의 압축 단위들의 누적된 손실량에 대한 정보를 포함할 수 있다. 이 때, 제 1 손실량은 제 1 압축 단위의 손실량 내지 제 16 압축 단위의 손실량을 모두 더한 값이 될 수 있다.
단계 420에서 컴퓨팅 시스템은 저장된 정보에 기초하여 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정할 수 있다. 메모리에 저장된 압축된 텍스처와 제 1 데이터 손실량에 대한 정보는 압축 해제기를 통해 압축 해제될 수 있고, 압축 해제된 정보는 텍스처 유닛에 전송될 수 있다.
컴퓨팅 시스템은 텍스처 유닛으로 전송된 정보에 기초하여 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정할 수 있다. 도 4의 단계 420은 도 1의 단계 110과 동일한 단계일 수 있다. 따라서, 이하에서는 단계 420에 대한 구체적인 설명을 생략한다.
단계 430에서 컴퓨팅 시스템은 제 2 데이터 손실량을 이용하여 텍스처의 필터링을 수행할 수 있다. 도 4의 단계 430은 도 1의 단계 120과 동일한 단계일 수 있다. 따라서, 이하에서는 단계 430에 대한 구체적인 설명을 생략한다.
도 5는 일 실시예에 따른 텍스처를 처리하는 방법의 또 다른 예를 나타내는 흐름도이다.
도 5를 참조하면, 단계 500에서 컴퓨팅 시스템은 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득할 수 있다. 도 5 의 단계 500은 도 1의 단계 100과 동일한 단계일 수 있다. 따라서, 이하에서는 단계 500에 대한 구체적인 설명을 생략한다.
단계 510에서 컴퓨팅 시스템은 제 1 데이터 손실량에 대한 정보를 그래픽 상태관리자(Graphic state manager)를 통해 텍스처 유닛으로 전송할 수 있다. 도 4를 참조하여 상술한 바와 달리, 컴퓨팅 시스템은 제 1 데이터 손실량에 대한 정보를 메모리에 저장하는 것이 아니라 그래픽 상태관리자를 통해 텍스처 필터링을 수행하는 텍스처 유닛으로 직접 전송할 수 있다.
그래픽 상태관리자는 텍스처의 특성에 대한 정보를 관리하는 모듈을 의미한다. 그래픽 상태관리자는 텍스처의 포맷, 사이즈, 압축 여부 등과 같은 특성을 나타내는 텍스처의 상태 정보를 관리할 수 있다. 또한, 그래픽 상태관리자는 텍스처의 상태 정보에 제 1 데이터 손실량에 대한 정보를 추가하여 관리할 수 있다.
그래픽 상태관리자는 텍스처 유닛이 텍스처의 상태 정보를 확인할 수 있도록, 텍스처의 상태 정보를 텍스처 유닛으로 전송할 수 있다. 이 과정에서 텍스처 유닛은 제 1 데이터 손실량에 대한 정보를 획득할 수 있다.
한편, 제 1 데이터 손실량에 대한 정보는 텍스처의 압축 단위 각각의 손실량에 대한 정보가 아니라 기 설정된 수의 텍스처의 압축 단위들의 누적된 손실량에 대한 정보를 포함할 수 있다.
제 1 손실량에 대한 정보를 그래픽 상태관리자를 통해 텍스처 유닛에 전송하는 경우, 그래픽 상태관리자는 용량의 한계 때문에 텍스처의 압축 단위 각각의 손실량에 대한 정보를 모두 관리하지 못할 수 있다. 따라서, 그래픽 상태관리자는 기 설정된 수의 텍스처의 압축 단위들의 누적된 손실량에 대한 정보를 관리할 수 있다.
이 경우 제 1 데이터 손실량에 대한 정보의 크기를 줄일 수 있으나 손실량 정보의 세분성(granularity)이 떨어지므로 텍스처 필터링 단계에서의 정교한 손실 조정이 어려울 수 있다.
단계 520에서 컴퓨팅 시스템은 전송된 정보에 기초하여 텍스처의 필터링 과정에서 허용 가능한 제 2 손실량을 결정할 수 있다. 도 5의 단계 520은 도 1의 단계 110과 동일한 단계일 수 있다. 따라서, 이하에서는 단계 520에 대한 구체적인 설명을 생략한다.
단계 530에서 컴퓨팅 시스템은 제 2 데이터 손실량을 이용하여 텍스처의 필터링을 수행할 수 있다. 도 5의 단계 530은 도 1의 단계 120과 동일한 단계일 수 있다. 따라서, 이하에서는 단계 530에 대한 구체적인 설명을 생략한다.
도 6은 일 실시예에 따른 텍스처를 처리하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 6을 참조하면, 컴퓨팅 시스템(60)은 그래픽 프로세싱 유닛(600) 및 메모리(650)를 포함할 수 있다. 또한, 그래픽 프로세싱 유닛(600)은 프로세서(610), 그래픽스 파이프라인 유닛들(620), 압축기(630), 압축 해제기(660) 및 텍스처 유닛(670)을 포함할 수 있다.
그래픽 프로세싱 유닛(600)은 그래픽스 파이프라인(graphics pipeline)을 수행하는 장치로서, 그래픽 전용 프로세서에 해당될 수 있다. 그래픽 프로세싱 유닛(600)은 3차원 이미지 상의 3차원 객체들을 디스플레이용의 2차원 이미지로 렌더링하기 위해 3차원 그래픽스 파이프라인을 실행하도록 구현된 하드웨어일 수 있다. 예를 들면, 그래픽 프로세싱 유닛(600)는 쉐이딩, 블렌딩, 일루미네이팅과 같은 다양한 기능들 및 디스플레이될 픽셀들에 대한 픽셀 값들을 생성하기 위한 다양한 기능들을 수행할 수도 있다. 한편, 그래픽 프로세싱 유닛(600)은 타일 기반 렌더링(tile-based rendering, TBR)을 위한 타일 기반(tile-based) 그래픽스 파이프라인도 수행할 수 있다.
메모리(650)는 컴퓨팅 시스템(60) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 예를 들어, 메모리(650)는 그래픽 프로세싱 유닛 (600)에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(650)는 그래픽 프로세싱 유닛(600)에 의해 구동될 애플리케이션들, 드라이버들 등을 저장할 수 있다. 메모리(650)는 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), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함하며, 나아가서, 컴퓨팅 시스템(60)에 액세스될 수 있는 외부의 다른 스토리지 디바이스를 포함할 수 있다.
프로세서(610)는 그래픽 프로세싱 유닛(600)이 그래픽스 파이프라인(graphics pipeline)을 수행하도록 하는 모든 동작들을 제어할 수 있다. 또한, 프로세서(610)는 그래픽스 파이프라인 유닛들(620), 압축기(630), 압축 해제기(660) 및 텍스처 유닛(670)이 동작들을 수행하도록 제어할 수 있다.
압축기(630)는 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득할 수 있다.
압축기(630)는 동적 텍스처를 메모리에 저장하기 전에 압축할 수 있다. 텍스처를 압축하는 과정에서 데이터 손실이 발생할 수 있다. 텍스처를 압축하는 과정에서 발생된 데이터 손실의 양을 제 1 데이터 손실량이라고 하면, 압축기(630)는 제 1 데이터 손실량에 대한 정보를 획득할 수 있다.
압축기(630)는 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신할 수 있다. 사람의 눈은 텍스처에 대응하는 이미지를 볼 때 일정 수준 이하의 오차는 감지하지 못하므로, 텍스처를 처리하는 과정에서 일정 량의 데이터가 손실되어도 큰 문제가 없을 수 있다. 텍스처를 처리하는 과정에서 허용될 수 있는 데이터 손실량을 제 3 데이터 손실량이라고 하면, 압축기(630)는 제 3 데이터 손실량에 대한 정보를 수신할 수 있다.
압축기(630)는 외부의 프로세서 또는 드라이버로부터 제 3 데이터 손실량을 수신할 수 있지만, 이에 제한되지 않는다. 프로세서(610)는 자체적으로 제 3 데이터 손실량을 결정할 수 있고, 압축기(630)는 프로세서(610)로부터 결정된 제 3 데이터 손실량에 대한 정보를 수신할 수 있다. 또한, 압축기(630)는 사용자 입력에 기초하여 제 3 데이터 손실량에 대한 정보를 획득할 수 있다.
압축기(630)는 제 3 데이터 손실량을 넘지 않는 데이터 손실이 발생되도록 텍스처를 압축할 수 있다. 압축기(630)는 제 3 데이터 손실량을 넘지 않는 데이터 손실이 발생되는 다양한 압축 기법을 이용하여 텍스처를 압축할 수 있고, 그 중 가장 데이터 손실량이 적은 압축 기법을 선택할 수 있다.
압축기(630)는 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 생성할 수 있다.
메모리(650)는 제 1 데이터 손실량에 대한 정보 및 압축된 텍스처를 저장할 수 있다. 예를 들어, 메모리(650)는 제 1 데이터 손실량에 대한 정보를 메타 데이터의 형태로 포함하는, 압축된 텍스처를 저장할 수 있다.
압축 해제기(660)는 메모리(650)에 저장되어 있는 압축된 텍스처 및 제 1 손실량에 대한 정보를 획득하고, 압축 해제할 수 있다. 또한, 압축 해제기(660)는 압축 해제된 텍스처 및 제 1 손실량에 대한 정보를 텍스처 필터링을 수행하는 텍스처 유닛(670)으로 전송할 수 있다.
텍스처 유닛(670)은 압축 해제기(660)로부터 제 1 손실량 정보를 획득할 수 있고, 획득된 정보에 기초하여 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정할 수 있다. 텍스처 압축과 텍스처 필터링은 독립된 과정이지만, 텍스처 유닛(670)은 텍스처 압축 과정에서 발생된 제 1 데이터 손실량을 수신하여 텍스처 필터링 과정에서 허용 가능한 손실량을 결정할 수 있다. 텍스처 필터링 과정에서 허용 가능한 손실량은 제 2 손실량이라고 표현할 수 있다.
텍스처 유닛(670)이 제 1 데이터 손실량에 대한 정보에 기초하여 제 2 데이터 손실량을 결정하기 위해서는 텍스처를 처리하는 전체 과정에서 허용되는 손실량에 대한 기준이 있어야 한다.
이에 따라, 텍스처 유닛(670)은 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신할 수 있다. 제 3 데이터 손실량은 컴퓨팅 시스템(60)에 의해 처리된 텍스처에 대응하는 이미지가 사람의 눈에 어색하게 보이지 않을 정도로만 데이터 손실이 될 수 있도록 하는 최대 허용 손실량을 의미할 수 있다.
텍스처 유닛(670)은 제 3 데이터 손실량과 제 1 데이터 손실량의 차이에 기초하여 제 2 데이터 손실량을 결정할 수 있다. 예를 들어, 텍스처 유닛(670)은 텍스처를 처리하는 과정에서 허용되는 데이터 손실량에서 이미 텍스처를 압축하는 과정에서 발생한 데이터 손실량을 뺀 값을 텍스처 필터링 과정에서 허용 가능한 손실량으로 결정할 수 있다.
전술한 결정을 통해 텍스처 유닛(670)은 텍스처에 대응하는 이미지의 정확도를 일정 수준 이상으로 유지하면서도 높은 압축률을 얻고, 텍스처 처리 과정에서 소모되는 전력을 줄일 수 있다.
텍스처 유닛(670)은 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 생성할 수 있다. 제 3 데이터 손실량에 대한 정보를 포함하는 테이블은 손실 테이블이라고 표현할 수 있으며, 손실 테이블의 예시는 도 3에 도시된 것과 같다.
제 3 데이터 손실량은 텍스처에 대응하는 이미지의 특성, 어플리케이션의 특성, 텍스처의 포맷 및 사용자 입력 중 적어도 하나에 기초하여 결정될 수 있다.
텍스처 유닛(670)은 제 2 데이터 손실량을 이용하여 텍스처의 필터링을 수행할 수 있다. 텍스처 유닛(670)은 제 2 데이터 손실량을 넘지 않는 손실이 발생되도록 텍스처의 필터링을 수행할 수 있다. 텍스처 유닛(670)은 텍스처 필터링 과정에서 발생되는 손실을 다양한 방식으로 조정할 수 있다.
텍스처 유닛(670)은 텍스처의 필터링에 이용되는 보간 방식을 결정하고, 결정된 보간 방식을 이용하여 텍스처의 필터링을 수행할 수 있다. 각각의 보간 방식에 따라 발생되는 손실량이 다르므로, 텍스처 유닛(670)은 보간 방식의 선택을 통해 텍스처 필터링 과정에서 발생되는 손실을 조정할 수 있다.
또한, 텍스처 유닛(670)은 보간에 이용되는 데이터 연산의 범위를 결정하는 방식으로 손실을 조정할 수 있다. 텍스처 유닛(670)은 텍스처를 압축하는 과정에서 발생된 손실량과 텍스처 필터링 과정에서 발생된 손실량을 함께 고려함으로써 소모 전력을 줄이면서도 텍스처에 대응하는 이미지의 정확도를 일정 수준 이상으로 유지할 수 있다.
도 7은 일 실시예에 따른 압축기의 구성을 나타내는 블록도이다.
압축기(630)는 텍스처를 압축하기 위한 모듈 이외에 손실 평가자(634)를 더 포함할 수 있다. 또한, 압축기(630)는 메모리에서 손실 테이블(632)을 수신하거나 압축기(630) 내부 공간에 손실 테이블(632)을 저장할 수 있다. 프로세서(610)는 압축기(630)에 포함되는 손실 평가자(634)를 제어할 수 있다.
압축기(630)는 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 생성할 수 있고, 이를 손실 테이블(632)의 형태로 저장할 수 있다. 손실 테이블(632)이란 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 의미할 수 있다. 또한, 압축기(630)는 메모리로부터 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 수신할 수도 있다. 예를 들어, 손실 테이블(632)의 예시는 도 3에 도시된 것과 같다.
손실 테이블(632)은 텍스처를 압축하는 과정에서 허용 가능한 데이터 손실량에 대한 기준을 제공할 수 있다. 텍스처를 압축하는 과정에서 허용 가능한 데이터 손실량은 텍스처의 특성 또는 텍스처에 대응하는 이미지의 특성에 따라 달라질 수 있다. 따라서, 손실 테이블(632)은 텍스처의 특성 또는 텍스처에 대응하는 이미지의 특성에 따른 제 3 데이터 손실량에 대한 정보를 포함할 수 있다.
손실 평가자(634)는 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량을 정량화할 수 있다. 제 1 데이터 손실량을 정량화하기 위해, 손실 평가자(634)는 어떤 범위에 대해서 손실량을 평가할 것인지 결정할 수 있다.
예를 들어, 텍스처의 압축 단위 하나에 대한 손실량을 제 1 데이터 손실량이라고 할 수 있다. 또한, 다른 실시예에서는 기 설정된 수의 텍스처의 압축 단위들의 누적된 손실량을 제 1 데이터 손실량이라고 나타낼 수 있다. 텍스처의 압축 단위는 캐쉬라인(cacheline)의 크기에 기초하여 결정될 수 있다.
전술한 것과 같이 제 1 데이터 손실량을 결정하기 위한 범위가 결정되면, 그 범위에 대응하는 손실량이 표현될 수 있다. 일 예로서, 손실량은 PSNR(Peak Signal-to-Noise Ratio)로 표현될 수 있다. 다른 예로서, 제 1 데이터 손실량은 하드웨어의 비용을 고려하여 계산될 수도 있다. 하위 몇 bit에 해당하는 손실을 허용하는 압축을 진행하는 경우에는 허용 손실량을 제 1 데이터 손실량으로 볼 수도 있다.
손실 평가자(634)는 제 1 데이터 손실량을 정량화하여 제 1 손실량에 대한 정보를 생성하고, 압축된 텍스처와 함께 메모리(650)에 저장할 수 있다. 또한, 손실 평가자(634)는 생성된 제 1 손실량에 대한 정보를 그래픽 상태관리자(680)로 전송할 수도 있다.
도 8는 일 실시예에 따른 텍스처 유닛의 구성을 나타내는 블록도이다.
텍스처 유닛(670)은 텍스처를 필터링하기 위한 모듈 이외에 정확도 조정기(672) 및 정확도 조정 가능 필터링 유닛(674)을 더 포함할 수 있다. 프로세서(610)는 텍스처 유닛(670)에 포함되는 정확도 조정기(672) 및 정확도 조정 가능 필터링 유닛(674)을 제어할 수 있다.
정확도 조정기(672)는 압축 해제기(660)로부터 제 1 손실량 정보를 획득할 수 있고, 획득된 정보에 기초하여 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정할 수 있다. 텍스처 압축과 텍스처 필터링은 독립된 과정이지만, 정확도 조정기(672)는 텍스처 압축 과정에서 발생된 제 1 데이터 손실량을 수신하여 텍스처 필터링 과정에서 허용 가능한 손실량을 결정할 수 있다.
정확도 조정기(672)가 제 1 데이터 손실량에 대한 정보에 기초하여 제 2 데이터 손실량을 결정하기 위해서는 텍스처를 처리하는 과정에서 허용되는 손실량에 대한 기준이 있어야 한다.
이에 따라, 정확도 조정기(672)는 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신하여 손실 테이블의 형태로 저장할 수 있다. 제 3 데이터 손실량은 컴퓨팅 시스템(60)에 의해 처리된 텍스처에 대응하는 이미지가 사람의 눈에 어색하게 보이지 않을 정도로만 데이터 손실이 될 수 있도록 하는 최대 허용 손실량을 의미할 수 있다.
정확도 조정기(672)는 제 3 데이터 손실량과 제 1 데이터 손실량의 차이에 기초하여 제 2 데이터 손실량을 결정할 수 있다. 예를 들어, 정확도 조정기(672)는 텍스처를 처리하는 과정에서 허용되는 데이터 손실량에서 이미 텍스처를 압축하는 과정에서 발생한 데이터 손실량을 뺀 값을 텍스처 필터링 과정에서 허용 가능한 손실량으로 결정할 수 있다.
전술한 결정을 통해 정확도 조정기(672)는 텍스처에 대응하는 이미지의 정확도를 일정 수준 이상으로 유지하면서도 높은 압축률을 얻고, 소모되는 전력을 줄일 수 있다.
정확도 조정 가능 필터링 유닛(674)은 제 2 데이터 손실량을 이용하여 텍스처의 필터링을 수행할 수 있다. 정확도 조정 가능 필터링 유닛(674)은 제 2 데이터 손실량을 넘지 않는 손실이 발생되도록 텍스처의 필터링을 수행할 수 있다. 정확도 조정 가능 필터링 유닛(674)은 텍스처 필터링 과정에서 발생되는 손실을 다양한 방식으로 조정할 수 있다.
정확도 조정 가능 필터링 유닛(674)은 텍스처의 필터링에 이용되는 보간 방식을 결정하고, 결정된 보간 방식을 이용하여 텍스처의 필터링을 수행할 수 있다. 각각의 보간 방식에 따라 발생되는 손실량이 다르므로, 정확도 조정 가능 필터링 유닛(674)은 보간 방식의 선택을 통해 텍스처 필터링 과정에서 발생되는 손실을 조정할 수 있다.
또한, 정확도 조정 가능 필터링 유닛(674)은 보간에 이용되는 데이터 연산의 범위를 결정하는 방식으로 손실을 조정할 수 있다. 예를 들어, 정확도 조정 가능 필터링 유닛(674)은 텍스처를 압축하는 과정에서 발생된 손실량과 텍스처 필터링 과정에서 발생된 손실량을 함께 고려함으로써 소모 전력을 줄이면서도 텍스처에 대응하는 이미지의 정확도를 일정 수준 이상으로 유지할 수 있다.
도 9는 일 실시예에 따른 텍스처를 처리하는 컴퓨팅 시스템의 구성을 나타내는 블록도이다.
도 9를 참조하면, 컴퓨팅 시스템(60)은 그래픽 프로세싱 유닛(600) 및 메모리(650)를 포함할 수 있다. 또한, 그래픽 프로세싱 유닛(600)은 프로세서(610), 그래픽스 파이프라인 유닛들(620), 압축기(630), 압축 해제기(660) 및 텍스처 유닛(670) 이외에 그래픽 상태관리자(680)를 더 포함할 수 있다.
그래픽 프로세싱 유닛(600), 프로세서(610), 그래픽스 파이프라인 유닛들(620), 압축기(630), 메모리(650), 압축 해제기(660) 및 텍스처 유닛(670)에 대하여, 도 6을 참조하여 설명한 내용과 동일한 내용은 도 9에서 생략하기로 한다.
프로세서(610)는 그래픽 상태관리자(680)가 텍스처의 상태에 관한 정보를 관리하도록 제어할 수 있다. 예를 들어, 프로세서(610)는 제 1 데이터 손실량에 대한 정보를 그래픽 상태관리자(680)를 통해 텍스처 유닛(670)으로 전송하도록 제어할 수 있다.
그래픽 상태관리자(680)는 텍스처의 특성에 대한 정보를 관리하는 모듈을 의미한다. 그래픽 상태관리자(680)는 텍스처의 포맷, 사이즈, 압축 여부 등과 같은 특성을 나타내는 텍스처의 상태 정보를 관리할 수 있다. 또한, 그래픽 상태관리자(680)는 텍스처의 상태 정보에 제 1 데이터 손실량에 대한 정보를 추가하여 관리할 수 있다.
그래픽 상태관리자(680)는 텍스처 유닛(670)이 텍스처의 상태 정보를 확인할 수 있도록 텍스처의 상태 정보를 텍스처 유닛(670)으로 전송할 수 있다. 이 과정에서 텍스처 유닛(670)은 제 1 데이터 손실량에 대한 정보를 획득할 수 있다.
한편, 제 1 데이터 손실량에 대한 정보는 텍스처의 압축 단위 각각의 손실량에 대한 정보가 아니라 기 설정된 수의 텍스처의 압축 단위들의 누적된 손실량에 대한 정보를 포함할 수 있다.
제 1 손실량에 대한 정보를 그래픽 상태관리자(680)를 통해 텍스처 유닛(670)에 전송하는 경우, 그래픽 상태관리자(680)는 용량의 한계 때문에 텍스처의 압축 단위 각각의 손실량에 대한 정보를 모두 관리하지 못할 수 있다. 따라서, 그래픽 상태관리자(680)는 기 설정된 수의 텍스처의 압축 단위들의 누적된 손실량에 대한 정보를 관리할 수 있다.
이 경우 제 1 데이터 손실량에 대한 정보의 크기를 줄일 수 있으나 손실량 정보의 세분성(granularity)이 떨어지므로 텍스처 필터링 단계에서의 정교한 손실 조정이 어려울 수 있다.
한편, 도 6 및 9에 도시된 컴퓨팅 시스템(60)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 컴퓨팅 시스템(60)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
컴퓨팅 시스템의 동작 방법은 그 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 기록될 수 있다. 컴퓨터로 읽을 수 있는 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.

Claims (20)

  1. 컴퓨팅 시스템에서 텍스처를 처리하는 방법에 있어서,
    상기 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득하는 단계;
    상기 획득된 정보에 기초하여 상기 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정하는 단계; 및
    상기 제 2 데이터 손실량을 이용하여 상기 텍스처의 필터링을 수행하는 단계를 포함하는 방법.
  2. 제 1항에 있어서,
    상기 결정하는 단계는,
    상기 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신하는 단계; 및
    상기 제 3 데이터 손실량과 상기 제 1 데이터 손실량의 차이에 기초하여 상기 제 2 데이터 손실량을 결정하는 단계를 더 포함하는 방법.
  3. 제 1항에 있어서,
    상기 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신하는 단계; 및
    상기 제 3 데이터 손실량 내에서 데이터 손실이 발생되도록 상기 텍스처를 압축하는 단계를 더 포함하는 방법.
  4. 제 2항에 있어서,
    상기 제 3 데이터 손실량은 상기 텍스처에 대응하는 이미지의 특성, 어플리케이션의 특성, 상기 텍스처의 포맷 및 사용자 입력 중 적어도 하나에 기초하여 결정되는 것인 방법.
  5. 제 2항에 있어서,
    상기 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 생성하는 단계를 더 포함하는 방법.
  6. 제 1항에 있어서,
    상기 제 1 데이터 손실량에 대한 정보 및 상기 압축된 텍스처를 저장하는 단계를 더 포함하는 방법.
  7. 제 1항에 있어서,
    상기 제 1 데이터 손실량에 대한 정보를 그래픽 상태관리자를 통해 텍스처 유닛으로 전송하는 단계를 더 포함하는 방법.
  8. 제 7항에 있어서,
    상기 제 1 데이터 손실량에 대한 정보는 기 설정된 수의 상기 텍스처의 압축 단위들의 누적된 손실량에 대한 정보를 포함하는 방법.
  9. 제 1항에 있어서,
    상기 필터링을 수행하는 단계는,
    상기 텍스처의 필터링에 이용되는 보간 방식을 결정하는 단계; 및
    상기 결정된 보간 방식을 이용하여 상기 텍스처의 필터링을 수행하는 단계를 더 포함하는 방법.
  10. 제 1항에 있어서,
    상기 텍스처는 그래픽 프로세싱 과정에서 실시간으로 생성되는 동적 텍스처인 방법.
  11. 제 1항 내지 제 10항 중 어느 한 항의 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
  12. 텍스처를 처리하는 컴퓨팅 시스템에 있어서,
    적어도 하나의 메모리; 및
    적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는 상기 텍스처를 압축하는 과정에서 발생된 제 1 데이터 손실량에 대한 정보를 획득하고, 상기 획득된 정보에 기초하여 상기 텍스처의 필터링 과정에서 허용 가능한 제 2 데이터 손실량을 결정하며, 상기 제 2 데이터 손실량을 이용하여 상기 텍스처의 필터링을 수행하는 컴퓨팅 시스템.
  13. 제 12항에 있어서,
    상기 적어도 하나의 프로세서는 상기 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신하고, 상기 제 3 데이터 손실량과 상기 제 1 데이터 손실량의 차이에 기초하여 상기 제 2 데이터 손실량을 결정하는 것인 컴퓨팅 시스템.
  14. 제 12항에 있어서,
    상기 적어도 하나의 프로세서는 상기 텍스처를 처리하는 과정에서 허용된 제 3 데이터 손실량에 대한 정보를 수신하고, 상기 제 3 데이터 손실량 내에서 데이터 손실이 발생되도록 상기 텍스처를 압축하는 것인 컴퓨팅 시스템.
  15. 제 13항에 있어서,
    상기 제 3 데이터 손실량은 상기 텍스처에 대응하는 이미지의 특성, 어플리케이션의 특성, 상기 텍스처의 포맷 및 사용자 입력 중 적어도 하나에 기초하여 결정되는 것인 컴퓨팅 시스템.
  16. 제 13항에 있어서,
    상기 적어도 하나의 프로세서는 상기 제 3 데이터 손실량에 대한 정보를 포함하는 테이블을 생성하는 것인 컴퓨팅 시스템.
  17. 제 12항에 있어서,
    상기 적어도 하나의 메모리는 상기 제 1 손실량에 대한 정보 및 상기 압축된 텍스처를 저장하는 것인 컴퓨팅 시스템.
  18. 제 12항에 있어서,
    상기 텍스처의 특성에 대한 정보를 관리하는 그래픽 상태관리자; 및
    상기 텍스처의 필터링을 수행하는 텍스처 유닛을 더 포함하고,
    상기 적어도 하나의 프로세서는 상기 제 1 데이터 손실량에 대한 정보를 상기 그래픽 상태관리자를 통해 상기 텍스처 유닛으로 전송하는 것인 컴퓨팅 시스템.
  19. 제 18항에 있어서,
    상기 제 1 데이터 손실량에 대한 정보는 기 설정된 수의 상기 텍스처의 압축 단위들의 누적된 손실량에 대한 정보를 포함하는 것인 컴퓨팅 시스템.
  20. 제 12항에 있어서,
    상기 적어도 하나의 프로세서는 상기 텍스처의 필터링에 이용되는 보간 방식을 결정하고, 상기 결정된 보간 방식을 이용하여 상기 텍스처의 필터링을 수행하는 것인 컴퓨팅 시스템.
KR1020160154448A 2016-11-18 2016-11-18 텍스처를 처리하는 방법 및 장치 KR20180056313A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160154448A KR20180056313A (ko) 2016-11-18 2016-11-18 텍스처를 처리하는 방법 및 장치
US15/622,927 US10733764B2 (en) 2016-11-18 2017-06-14 Texture processing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160154448A KR20180056313A (ko) 2016-11-18 2016-11-18 텍스처를 처리하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20180056313A true KR20180056313A (ko) 2018-05-28

Family

ID=62147153

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160154448A KR20180056313A (ko) 2016-11-18 2016-11-18 텍스처를 처리하는 방법 및 장치

Country Status (2)

Country Link
US (1) US10733764B2 (ko)
KR (1) KR20180056313A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109587557B (zh) * 2019-01-11 2022-03-08 京东方科技集团股份有限公司 数据传输方法及装置、显示装置

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5880737A (en) * 1995-08-04 1999-03-09 Microsoft Corporation Method and system for accessing texture data in environments with high latency in a graphics rendering system
US5999189A (en) * 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US6459433B1 (en) * 1997-04-30 2002-10-01 Ati Technologies, Inc. Method and apparatus for compression of a two dimensional video object
US7061500B1 (en) * 1999-06-09 2006-06-13 3Dlabs Inc., Ltd. Direct-mapped texture caching with concise tags
US20030063084A1 (en) * 2001-09-28 2003-04-03 Burke Gregory Michael System and method for improving 3D data structure representations
US20040179610A1 (en) * 2003-02-21 2004-09-16 Jiuhuai Lu Apparatus and method employing a configurable reference and loop filter for efficient video coding
US20050094003A1 (en) * 2003-11-05 2005-05-05 Per Thorell Methods of processing digital image and/or video data including luminance filtering based on chrominance data and related systems and computer program products
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
RU2461977C2 (ru) 2006-12-18 2012-09-20 Конинклейке Филипс Электроникс Н.В. Сжатие и снятие сжатия изображения
US8237865B2 (en) * 2006-12-18 2012-08-07 Emanuele Salvucci Multi-compatible low and high dynamic range and high bit-depth texture and video encoding system
EP2186343B1 (en) * 2007-08-31 2013-04-17 Canon Kabushiki Kaisha Motion compensated projection of prediction residuals for error concealment in video data
US8154564B2 (en) * 2008-05-21 2012-04-10 Advanced Micro Devices, Inc. Dynamically configurable bilinear filtering system
US8538175B1 (en) * 2008-06-19 2013-09-17 Joseph Alan Epstein System and method for representing and coding still and moving images
KR101028628B1 (ko) 2008-12-29 2011-04-11 포항공과대학교 산학협력단 영상 텍스쳐 필터링 방법, 이를 수행하는 프로그램을 기록한 기록매체 및 이를 수행하는 장치
JP5844263B2 (ja) * 2009-10-05 2016-01-13 ビーマル イメージング リミテッドBeamr Imaging Ltd. デジタル画像を再圧縮するための装置および方法
GB2491688B (en) * 2011-05-05 2014-08-27 Advanced Risc Mach Ltd Method of and apparatus for encoding and decoding data
JP5649523B2 (ja) * 2011-06-27 2015-01-07 日本電信電話株式会社 映像符号化方法,装置,映像復号方法,装置およびそれらのプログラム
CN104813669B (zh) 2012-09-21 2018-05-22 诺基亚技术有限公司 用于视频编码的方法和装置
US20140132429A1 (en) * 2012-11-10 2014-05-15 John Conant Scoville Method for data compression and inference
US9349210B2 (en) * 2012-11-30 2016-05-24 Arm Limited Methods of and apparatus for using textures in graphics processing systems
US9264749B2 (en) * 2012-12-13 2016-02-16 Microsoft Technology Licensing, Llc Server GPU assistance for mobile GPU applications
KR102061069B1 (ko) * 2013-02-28 2020-01-02 삼성전자주식회사 텍스쳐 맵핑 파이프라인을 위한 논블로킹 방식의 텍스쳐 캐쉬 메모리 시스템 및 논블로킹 방식의 텍스쳐 캐쉬 메모리의 동작 방법
US10147202B2 (en) * 2013-03-15 2018-12-04 Arm Limited Methods of and apparatus for encoding and decoding data
US20150178032A1 (en) * 2013-12-19 2015-06-25 Qualcomm Incorporated Apparatuses and methods for using remote multimedia sink devices
KR20140027040A (ko) 2013-12-30 2014-03-06 주식회사 큐램 적응 이미지 압축시스템 및 그 방법
US10244223B2 (en) * 2014-01-10 2019-03-26 Ostendo Technologies, Inc. Methods for full parallax compressed light field 3D imaging systems
US9947071B2 (en) 2014-06-27 2018-04-17 Samsung Electronics Co., Ltd. Texture pipeline with online variable rate dictionary compression
US9524536B2 (en) 2014-07-25 2016-12-20 Intel Corporation Compression techniques for dynamically-generated graphics resources
WO2016048176A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Method and apparatus for filtering compressed textures
GB2536232B (en) * 2015-03-09 2021-09-15 Advanced Risc Mach Ltd Graphics Processing Systems
DE102016003681A1 (de) * 2016-03-24 2017-09-28 Universität Stuttgart Datenkompression mittels adaptiven Unterabtastens
US10019836B2 (en) * 2016-05-27 2018-07-10 Intel Corporation Planar depth representations for block compression
GB2552323B (en) * 2016-07-18 2020-04-29 Imagination Tech Ltd Mip map compression
EP3507773A1 (en) * 2016-09-02 2019-07-10 Artomatix Ltd. Systems and methods for providing convolutional neural network based image synthesis using stable and controllable parametric models, a multiscale synthesis framework and novel network architectures
US10719447B2 (en) * 2016-09-26 2020-07-21 Intel Corporation Cache and compression interoperability in a graphics processor pipeline

Also Published As

Publication number Publication date
US10733764B2 (en) 2020-08-04
US20180144506A1 (en) 2018-05-24

Similar Documents

Publication Publication Date Title
US10164459B2 (en) Selective rasterization
US9904977B2 (en) Exploiting frame to frame coherency in a sort-middle architecture
JP4861403B2 (ja) タイル化されたプリフェッチ及びキャッシングされたデプスバッファ
US8432410B1 (en) 3D graphics API extension for a shared exponent image format
US9881391B2 (en) Procedurally defined texture maps
JP5163981B2 (ja) テクスチャ詳細レベル計算のための装置と方法
US10297046B2 (en) Techniques for reducing accesses for retrieving texture images
US20130265305A1 (en) Compressed Depth Cache
US10699361B2 (en) Method and apparatus for enhanced processing of three dimensional (3D) graphics data
US7649531B2 (en) Image generation device and image generation method
EP2804150A1 (en) Texture address mode discarding filter taps
EP3149709B1 (en) Techniques for deferred decoupled shading
KR20170014350A (ko) 텍스쳐 처리 방법 및 장치
TW201344632A (zh) 依據貼圖影像內容決定選擇細節層次之三維貼圖處理方法、裝置以及儲存其之電腦可讀取記錄媒體
US7978921B1 (en) Low dynamic range 3-channel color decompression
US20150091902A1 (en) Compressed 3d graphics rendering exploiting psychovisual properties
US20150154772A1 (en) Variable Rasterization Order for Motion Blur and Depth of Field
US9336561B2 (en) Color buffer caching
US7983498B1 (en) Low dynamic range 3-channel color compression
KR20160004096A (ko) 밉맵 생성 방법 및 장치
KR102223599B1 (ko) 깊이 오프셋 압축 기법
US9262841B2 (en) Front to back compositing
KR20180056313A (ko) 텍스처를 처리하는 방법 및 장치