KR20180037837A - 채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치. - Google Patents

채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치. Download PDF

Info

Publication number
KR20180037837A
KR20180037837A KR1020160128560A KR20160128560A KR20180037837A KR 20180037837 A KR20180037837 A KR 20180037837A KR 1020160128560 A KR1020160128560 A KR 1020160128560A KR 20160128560 A KR20160128560 A KR 20160128560A KR 20180037837 A KR20180037837 A KR 20180037837A
Authority
KR
South Korea
Prior art keywords
channel
bits
amount
channels
image
Prior art date
Application number
KR1020160128560A
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 KR1020160128560A priority Critical patent/KR20180037837A/ko
Priority to US15/609,555 priority patent/US20180096513A1/en
Publication of KR20180037837A publication Critical patent/KR20180037837A/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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

일 실시예에 따른 데이터를 처리하는 방법은 이미지에 포함된 픽셀에 대응하는 복수의 채널(channel)들 각각의 변화량에 기초하여 상기 채널들 각각에 할당되는 비트(bit)들의 수를 결정하고, 상기 결정된 비트들의 수에 기초하여 상기 채널을 압축(compress)한다.

Description

채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치. {Method and apparatus for determining the number of bits assigned a channel based on a variation of the channel}
채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치를 개시한다.
최근 3차원의 그래픽스 데이터를 화면에 표시하는 디바이스가 각광받고 있다. 예를 들어, 모바일 디바이스에서 사용되는 UI(User Interface) 어플리케이션 및 시뮬레이션을 위한 어플리케이션 등이 적용되는 디바이스의 시장 규모가 확대되는 추세에 있다.
그래픽스 데이터의 적용 범위가 확대되면서, 보다 정확한 3차원의 그래픽을 구현하기 위해 디바이스에서 처리해야 하는 그래픽스 데이터의 양이 증가하고 있다. 따라서, 어플리케이션 실행 시, 디바이스에서 그래픽스 데이터의 렌더링을 수행하는데 있어, 연산량이 늘어남에 따라 기존보다 더 많은 메모리 공간 및 더 많은 시간을 필요로 한다.
채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치를 제공하는 데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. 해결하려는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
일 실시예에 따른 데이터를 처리하는 방법은 이미지에 포함된 픽셀에 대응하는 복수의 채널(channel)들 각각의 변화량을 연산하는 단계; 상기 채널의 변화량에 기초하여 상기 채널들 각각에 할당되는 비트(bit)들의 수를 결정하는 단계; 및 상기 결정된 비트들의 수에 기초하여 상기 채널을 압축(compress)하는 단계;를 포함한다.
다른 실시예에 따른 컴퓨터로 읽을 수 있는 기록매체는 상술한 데이터를 처리하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체를 포함한다.
또 다른 실시예에 따른 데이터를 처리하는 장치는 이미지에 포함된 픽셀에 대응하는 복수의 채널(channel)들 각각의 변화량을 연산하고, 상기 채널의 변화량에 기초하여 상기 채널들 각각에 할당되는 비트(bit)들의 수를 결정하고, 상기 결정된 비트들의 수에 기초하여 상기 채널을 압축(compress)하는 프로세서;를 포함한다.
도 1은 일 실시예에 따른 그래픽 처리 시스템의 일 예를 도시한 구성도이다.
도 2는 일 실시예에 따른 외부 메모리 또는 온 칩 메모리의 레이아웃의 일 예를 나타낸 도면이다.
도 3은 일 실시예에 따른 압축/해제(compress/decompress) 장치의 일 예를 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 압축/해제 장치가 동작하는 일 예를 나타내는 흐름도이다.
도 5는 일 실시예에 따른 압축/해제 장치가 채널의 변화량을 연산하는 일 예를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 압축/해제 장치가 채널에 할당되는 비트 수를 결정하는 일 예를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 압축/해제 장치가 채널에 할당된 비트들 중 상위 비트들만 메모리에 저장하는 일 예를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 압축/해제 장치가 제 1 픽셀의 채널의 값 대비 제 2 픽셀의 채널의 변화량을 메모리에 저장하는 일 예를 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 압축/해제 장치가 동작하는 다른 예를 나타내는 흐름도이다.
도 10은 일 실시예에 따른 압축/해제 장치가 블록에 대응하는 채널들의 변화량을 연산하는 일 예를 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 압축/해제 장치가 그래픽 처리 장치의 외부에 배치되는 일 예를 도시한 구성도이다.
실시 예들에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “…부”, “…모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 일 실시예에 따른 그래픽 처리 시스템의 일 예를 도시한 구성도이다.
도 1을 참조하면, 그래픽 처리 시스템(1)은 중앙 처리 장치(CPU)(10), 그래픽 처리 장치(GPU)(20) 및 외부 메모리(30)를 포함한다.
중앙 처리 장치(10)는 그래픽 처리 장치(20)에 데이터를 전송한다. 예를 들어, 중앙 처리 장치(10)가 전송하는 데이터는 쉐이더 코드들(shader codes)일 수도 있고, 컴파일된 쉐이더 코드들일 수도 있다.
그래픽 처리 장치(20)는 중앙 처리 장치(10)로부터 전송된 데이터 및 외부 메모리(30)에 저장된 데이터를 이용하여 그래픽과 관련된 연산을 수행한다. 예를 들어, 그래픽 처리 장치(20)는 버텍스 쉐이더(vertex shader), 래스터라이져(rasterizer), 프래그먼트 쉐이더(fragment shader), 픽셀 쉐이더(pixel shader) 및 프레임 버퍼(frame buffer)를 포함할 수 있다.
일 예로서, 그래픽 처리 장치(20)는 중앙 처리 장치(10)로부터 전송된 쉐이더 코드들(또는 컴파일된 쉐이더 코드들)을 이용하여 픽셀 쉐이딩을 수행할 수 있다. 다시 말해, 그래픽 처리 장치(20)는 쉐이더 코드들(또는 컴파일된 쉐이더 코드들)을 이용하여 프레임에 포함된 픽셀들 각각의 컬러 값을 연산할 수 있다. 여기에서, 프레임은 화면에 디스플레이될 이미지에 대응하는 개념으로, 프레임에 포함된 픽셀들 각각에 컬러가 설정됨으로써 하나의 이미지가 구성된다.
다른 예로서, 그래픽 처리 장치(20)는 외부 메모리(30)에 저장된 텍스쳐 이미지를 이용하여 픽셀 쉐이딩을 수행할 수 있다. 여기에서, 텍스쳐 이미지는 프레임에 포함된 픽셀들의 컬러를 결정하기 위하여 이용되는 이미지 데이터를 의미한다. 다시 말해, 그래픽 처리 장치(20)는 프레임에 포함된 픽셀들 각각의 컬러 값을 연산하지 않고, 메모리(30)에 저장된 텍스쳐 이미지를 이용하여 픽셀들 각각의 컬러를 결정할 수 있다.
외부 메모리(30)는 중앙 처리 장치(10) 및 그래픽 처리 장치(20)가 데이터를 처리하는데 필요한 정보 또는 데이터를 저장하고, 중앙 처리 장치(10) 및 그래픽 처리 장치(20)가 데이터를 처리한 결과를 저장한다. 예를 들어, 외부 메모리(30)는 DRAM(Dynamic Random-Access Memory)일 수 있다.
예를 들어, 중앙 처리 장치(10)는 쉐이더 코드(또는 컴파일된 쉐이더 코드)를 외부 메모리(30)에 저장하고, 그래픽 처리 장치(20)는 외부 메모리(30)에 저장된 쉐이더 코드(또는 컴파일된 쉐이더 코드)를 이용하여 동작할 수 있다. 그리고, 그래픽 처리 장치(20)는 동작 중에 생성된 중간 데이터 또는 동작 결과로 생성되는 최종 데이터를 외부 메모리(30)에 저장할 수 있다. 한편, 텍스쳐 이미지 또는 렌더링된 이미지는 외부 메모리(30)에 저장될 수 있으며, 텍스쳐 이미지 또는 렌더링된 이미지가 그래픽 처리 장치(20)에 의하여 자주 이용되거나 또는 그래픽 처리 장치(20)에 의하여 곧 이용될 예정이라면 온 칩 메모리(210)에 저장될 수도 있다.
데이터는 적어도 하나의 비트(bit)의 형태로 외부 메모리(30) 또는 온 칩 메모리(210)에 저장된다. 따라서, 중앙 처리 장치(10) 또는 그래픽 처리 장치(20)는 할당된 비트의 수에 맞게 데이터를 압축하여 외부 메모리(30) 또는 온 칩 메모리(210)에 전송한다. 따라서, 텍스쳐 이미지 또는 렌더링된 이미지도 적어도 하나의 비트로 표현되어 외부 메모리(30) 또는 온 칩 메모리(210)에 저장된다. 이하, 도 2를 참조하여 외부 메모리(30) 또는 온 칩 메모리(210)의 레이아웃(layout)의 일 예를 설명한다.
도 2는 일 실시예에 따른 외부 메모리 또는 온 칩 메모리의 레이아웃의 일 예를 나타낸 도면이다.
도 2를 참조하면, 외부 메모리(30) 또는 온 칩 메모리(210)에는 텍스쳐 이미지 또는 렌더링된 이미지에 대응하는 데이터가 저장될 수 있다. 컬러 공간(color space)은 컬러 표시계(color system)를 3차원으로 표현한 공간 개념이다. 컬러 표시계의 모든 컬러들은 컬러 공간에서 3차원 좌표로 표현될 수 있다. 예를 들어, RGB 컬러 공간은 컬러를 혼합하면 명도가 올라가는 가산 혼합 방식으로 컬러를 표현할 수 있다. RGB 컬러 공간은 삼원색(적색(red), 녹색(green), 청색(blue))에 해당하는 세 가지 채널(channel)들 각각의 밝기를 기준으로 컬러를 지정한다.
도 2에는 단일 픽셀(310)에 대하여 네 가지 채널들(311, 312, 313, 314)이 할당된 레이아웃의 일 예가 도시되어 있다. 구체적으로, 채널들(311, 312, 313, 314)은 각각 적색(red), 녹색(green), 청색(blue) 및 투명도를 의미하고, 이렇게 채널들(311, 312, 313, 314)에 의하여 구성되는 컬러 공간을 RGBA 컬러 공간이라고 한다. RGBA 컬러 공간에서, 투명도는 알파(Alpha)로 표현된다. 따라서, 픽셀(310)의 컬러는 R 채널(311), G 채널(312), B 채널(313) 및 A 채널(314)의 값들이 조합되어 나타난다.
한편, 이미지에 나타난 객체에 따라, 채널들(311, 312, 313, 314) 각각의 변화량은 서로 다를 수 있다. 예를 들어, 픽셀(310)이 적색 성분의 변화 정도가 크고, 녹색, 청색 및 투명도 성분의 변화 정도가 크지 않다고 가정하면, R 채널(311)의 변화량이 G 채널(312), B 채널(313) 및 A 채널(314)의 변화량보다 크다. 이때, R 채널(311), G 채널(312), B 채널(313) 및 A 채널(314)에 모두 동일한 수의 비트들이 할당되고, 동일한 압축률에 따라 압축될 경우, R 채널(311)에 대한 정보가 손실될 수 있다.
도 3은 일 실시예에 따른 압축/해제(compress/decompress) 장치의 일 예를 설명하기 위한 도면이다.
도 3을 참조하면, 압축/해제 장치(220)는 그래픽 처리 장치(20)의 내부에 포함될 수 있다. 예를 들어, 압축/해제 장치(220)는 하나 또는 복수 개의 프로세서에 해당할 수 있다. 프로세서는 다수의 논리 게이트들의 어레이로 구현될 수도 있고, 범용적인 마이크로 프로세서와 이 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다. 또한, 다른 형태의 하드웨어로 구현될 수도 있음을 본 실시예가 속하는 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 2를 참조하여 상술한 바와 같이, 하나의 픽셀에 포함된 복수의 채널들 모두에 동일한 수의 비트들이 할당되고, 동일한 압축률에 따라 압축될 경우, 변화량이 큰 채널에 대한 정보의 손실이 발생될 수 있다. 또한, 온 칩 메모리(210) 또는 외부 메모리(30)에 불필요한 저장 공간이 할당될 수도 있고, 그래픽 처리 장치(20)가 불필요한 연산을 수행할 수도 있다.
일 실시예에 따른 압축/해제 장치(220)는 채널 별 변화량에 기초하여 각 채널에 할당되는 비트들의 수를 결정한다. 또한, 압축/해제 장치(220)는 결정된 비트들의 수에 기초하여 채널을 압축하여 온 칩 메모리(210) 또는 외부 메모리(30)로 전송한다. 따라서, 변화량이 큰 채널의 정보가 손실되는 것이 방지될 수 있으며, 온 칩 메모리(210) 또는 외부 메모리(30)에 불필요한 저장 공간이 할당되는 것이 방지될 수 있다. 또한, 그래픽 처리 장치(20)가 불필요한 연산을 수행하는 것을 방지할 수 있다.
한편, 도 2에는 압축/해제 장치(220)가 그래픽 처리 장치(20)에 임베디드된 독립된 장치로 도시되어 있으나, 이에 한정되지 않는다. 구체적으로, 압축/해제 장치(220)는 그래픽 처리 장치(20)의 외부에 위치할 수도 있고, 압축/해제 장치(200)가 수행하는 기능을 그래픽 처리 장치(20)가 수행할 수도 있다.
이하, 도 4 내지 도 10을 참조하여, 압축/해제 장치(220)가 동작하는 예들을 구체적으로 설명한다.
도 4는 일 실시예에 따른 압축/해제 장치가 동작하는 일 예를 나타내는 흐름도이다.
도 4를 참조하면, 데이터를 처리하는 방법은 도 3에 도시된 압축/해제 장치(220)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 3에 도시된 압축/해제 장치(220)에 관하여 이상에서 기술된 내용은 도 4의 데이터를 처리하는 방법에도 적용됨을 알 수 있다.
410 단계에서, 압축/해제 장치(220)는 이미지에 포함된 픽셀에 대응하는 복수의 채널들 각각의 변화량을 연산한다.
이미지에 대응하는 프레임은 복수의 픽셀들을 포함하고, 단일 픽셀의 컬러는 복수의 채널들(예를 들어, R 채널, G 채널, B 채널 및 A 채널)의 값들에 의하여 결정된다. 압축/해제 장치(220)는 단일 픽셀에 대응하는 복수의 채널들 각각의 변화량을 연산한다. 예를 들어, 변화량은 0~255 사이의 자연수가 될 수 있다. 이하, 도 5를 참조하여, 압축/해제 장치(220)가 채널의 변화량을 연산하는 일 예를 설명한다.
도 5는 일 실시예에 따른 압축/해제 장치가 채널의 변화량을 연산하는 일 예를 설명하기 위한 도면이다.
도 5를 참조하면, 프레임(510)은 픽셀(511)이 복수 개 모여 구성되고, 픽셀(511)에 컬러가 설정됨에 따라 프레임(510)은 하나의 이미지를 나타낼 수 있다. 한편, 픽셀(511)의 컬러는 픽셀(511)에 대응하는 채널들은 채널 값이 변화함에 따라 표현될 수도 있고, 채널 값이 변화하지 않은 상태로 표현될 수도 있다. 또한, 프레임(510)이 텍스쳐 이미지에 대응되는 경우, 픽셀(511)은 텍셀이 될 수 있다.
압축/해제 장치(220)는 픽셀(511)에 대응하는 채널들의 변화량을 연산한다. 예를 들어, 픽셀(511)이 R 채널, G 채널, B 채널 및 A 채널을 갖는다고 가정하면, 압축/해제 장치(220)는 R 채널의 변화량을 250(예를 들어, 5~255), G 채널의 변화량을 36(예를 들어, 3~39), B 채널의 변화량을 14(예를 들어, 4~18) 및 A 채널의 변화량을 5(예를 들어, 10~15)로 연산할 수 있다.
다시 도 4를 참조하면, 420 단계에서, 압축/해제 장치(220)는 채널의 변화량에 기초하여 채널들 각각에 할당되는 비트들의 수를 결정한다.
예를 들어, 압축/해제 장치(220)는 채널의 변화량에 비례하여 할당되는 비트들의 수가 많아지도록 결정할 수 있다. 다시 말해, 압축/해제 장치(220)는 변화량이 큰 채널일수록 많은 비트 수를 할당할 수 있다. 이하, 도 6을 참조하여, 압축/해제 장치(220)가 채널에 할당되는 비트 수를 결정하는 예를 설명한다.
도 6은 일 실시예에 따른 압축/해제 장치가 채널에 할당되는 비트 수를 결정하는 일 예를 설명하기 위한 도면이다.
도 6에는 압축/해제 장치(220)가 채널 별로 변화량을 연산한 결과가 도시되어 있다. 예를 들어, R 채널의 변화량은 250, G 채널의 변화량은 36, B 채널의 변화량은 14 및 A 채널의 변화량은 5로 연산되었다고 가정한다.
압축/해제 장치(220)는 채널들 각각의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정할 수 있다. 도 6에 도시된 예를 참조하면, R 채널의 변화량이 제일 큰 것을 알 수 있다. 따라서, 압축/해제 장치(220)는 R 채널에 할당되는 비트들의 수가 G 채널, B 채널 및 A 채널에 할당되는 비트들의 수보다 많도록 각 채널 별 비트들의 수를 결정할 수 있다. 예를 들어, 압축/해제 장치(220)는 R 채널에 8 비트들을 할당하고, 나머지 G 채널, B 채널 및 A 채널에는 각각 4 비트들을 할당할 수 있다.
압축/해제 장치(220)가 채널의 변화량을 반영하여 비트들의 수를 결정함에 따라, 채널의 변화량이 가장 큰 R 채널의 정보는 나머지 G 채널, B 채널 및 A 채널에 비하여 많은 비트들에 저장될 수 있다. 따라서, 모든 채널들에 동일한 비트들이 할당됨에 따라 변화량이 큰 채널(R 채널)의 정보가 손실되는 문제점이 방지될 수 있다.
다시 도 4를 참조하면, 430 단계에서, 압축/해제 장치(220)는 결정된 비트들의 수에 기초하여 채널을 압축한다.
또한, 도 4에는 도시되지 않았으나, 압축/해제 장치(220)는 압축된 데이터를 온 칩 메모리(210) 또는 외부 메모리(30)에 저장할 수 있다.
일 예로서, 압축/해제 장치(220)는 채널 별로 다른 압축률을 적용하여 채널을 압축할 수 있다. 예를 들어, 압축/해제 장치(220)는 많은 비트들이 할당된 채널은 큰 압축률을 적용하여 압축하고, 적은 비트들이 할당된 채널은 작은 압축률을 적용하여 압축할 수 있다. 반대로, 압축/해제 장치(220)는 많은 비트들이 할당된 채널은 작은 압축률을 적용하여 압축하고, 적은 비트들이 할당된 채널은 큰 압축률을 적용하여 압축할 수도 있다.
다른 예로서, 압축/해제 장치(220)는 채널에 할당된 비트들 중 상위 n개의 비트들만을 온 칩 메모리(210) 또는 외부 메모리(30)에 저장할 수 있다. 이하, 도 7을 참조하여, 압축/해제 장치(220)가 상위 n 개의 비트들만 저장되도록 하는 일 예를 설명한다.
도 7은 일 실시예에 따른 압축/해제 장치가 채널에 할당된 비트들 중 상위 비트들만 메모리에 저장하는 일 예를 설명하기 위한 도면이다.
도 7에는 압축/해제 장치(220)가 채널의 정보를 저장하기 위하여 8 개의 비트들(710, 720)을 할당한 일 예가 도시되어 있다. 압축/해제 장치(220)는 8 비트들(710, 720) 중 상위 비트들(예를 들어, 상위 4개의 비트들)(710)만을 온 칩 메모리(210) 또는 외부 메모리(30)에 저장할 수도 있다. 이 경우, 압축/해제 장치(220)가 8 개의 비트들(710, 720)을 모두 압축하는 것과 동일한 효과를 얻을 수 있다.
일반적으로, 채널의 컬러와 관련된 정보는 상위 비트들(710)에 집중될 수 있다. 예를 들어, 도 7에 도시된 바와 같이 채널에 8 비트들(710, 720)이 할당되었다고 가정하면, 8 비트들(710, 720) 중 상위 4 비트들(720)에 채널의 컬러와 관련된 정보가 집중될 수 있다. 따라서, 압축/해제 장치(220)는 상위 4 비트들(720)만 온 칩 메모리(210) 또는 외부 메모리(30)에 저장함으로써, 8 비트들(710, 720)을 모두 압축하는 것과 유사한 효과를 얻을 수 있다.
만약, 압축/해제 장치(220) 또는 그래픽 처리 장치(20)가 저장된 데이터를 독출하는 경우, 압축/해제 장치(220)는 저장된 상위 4 비트들(710)을 독출하고, 하위 4 비트들(720)에는 디폴트 값(예를 들어, '0000')을 채워 넣을 수 있다.
다시 도 4를 참조하면, 또 다른 예로서, 압축/해제 장치(220)는 프레임에 포함된 픽셀들 중 제 1 픽셀을 기준 픽셀로 결정하고, 제 1 픽셀의 채널의 값 대비 제 2 픽셀의 채널의 변화량을 온 칩 메모리(210) 또는 외부 메모리(30)에 저장할 수 있다. 이하, 도 8을 참조하여, 압축/해제 장치(220)가 제 1 픽셀의 채널의 값 대비 제 2 픽셀의 채널의 변화량이 저장되도록 하는 일 예를 설명한다.
도 8은 일 실시예에 따른 압축/해제 장치가 제 1 픽셀의 채널의 값 대비 제 2 픽셀의 채널의 변화량을 메모리에 저장하는 일 예를 설명하기 위한 도면이다.
도 8에는 프레임(810), 제 1 픽셀(811) 및 제 2 픽셀(812)가 도시되어 있다. 한편, 프레임(810)이 텍스쳐 이미지에 대응되는 경우, 픽셀들(811, 812) 각각은 텍셀이 될 수 있다.
압축/해제 장치(220)는 프레임(810)에 포함된 픽셀들 중에서 제 1 픽셀(811)을 기준 픽셀로 결정한다. 도 8에는 제 1 픽셀(811)이 프레임(810)의 정 중앙에 위치한 픽셀로 도시되어 있으나, 이에 한정되지 않는다.
압축/해제 장치(220)는 제 1 픽셀(811)의 채널들 각각의 값을 연산한다. 그리고, 압축/해제 장치(220)는 제 1 픽셀(811)의 채널들의 값 대비 제 2 픽셀(812)의 채널들의 값의 변화량을 연산한다. 예를 들어, 압축/해제 장치(220)는 제 1 픽셀(811)의 R 채널의 값 대비 제 2 픽셀(812)의 R 채널의 변화량은 +4, 제 1 픽셀(811)의 G 채널의 값 대비 제 2 픽셀(812)의 G 채널의 변화량은 -60, 제 1 픽셀(811)의 B 채널의 값 대비 제 2 픽셀(812)의 B 채널의 변화량은 -2, 제 1 픽셀(811)의 A 채널의 값 대비 제 2 픽셀(812)의 A 채널의 변화량은 +10인 것으로 연산할 수 있다.
그리고, 압축/해제 장치(220)는 온 칩 메모리(210) 또는 외부 메모리(30)에 제 1 픽셀(811)의 채널들의 값과 제 2 픽셀(812)의 변화량을 저장한다. 따라서, 온 칩 메모리(210) 또는 외부 메모리(30)의 저장 공간이 효율적으로 활용될 수 있다.
도 9는 일 실시예에 따른 압축/해제 장치가 동작하는 다른 예를 나타내는 흐름도이다.
도 9를 참조하면, 데이터를 처리하는 방법은 도 3에 도시된 압축/해제 장치(220)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 3에 도시된 압축/해제 장치(220)에 관하여 이상에서 기술된 내용은 도 9의 데이터를 처리하는 방법에도 적용됨을 알 수 있다.
도 9의 930 단계 내지 940 단계는 도 4의 420 단계 내지 430 단계와 동일하다. 따라서, 이하에서는 930 단계 내지 940 단계에 대한 구체적인 설명은 생략한다.
910 단계에서, 압축/해제 장치(220)는 이미지에 포함된 복수의 픽셀들을 그룹핑하여 적어도 하나 이상의 블록을 생성한다.
예를 들어, 압축/해제 장치(220)는 4*4 픽셀들을 그룹핑하여 하나의 블록을 생성할 수 있다. 그러나, 블록에 포함된 픽셀들의 수는 4*4 픽셀들에 한정되지 않는다.
920 단계에서, 압축/해제 장치(220)는 블록에 대응하는 복수의 채널들 각각의 변화량을 연산한다.
만약, 이미지에서 컬러의 변화가 크지 않은 영역(예를 들어, 배경)이 존재하는 경우, 그 영역에 포함된 픽셀들 각각의 채널 값을 연산하는 것은 불필요한 연산일 수도 있다. 따라서, 압축/해제 장치(220)는 컬러의 변화량이 소정의 값 이하인 인접한 픽셀들을 하나의 블록으로 설정하고, 블록에 대응하는 채널들 각각의 변화량을 연산할 수 있다.
이하, 도 10을 참조하여, 압축/해제 장치(220)가 블록에 대응하는 복수의 채널들 각각의 변화량을 연산하는 일 예를 설명한다.
도 10은 일 실시예에 따른 압축/해제 장치가 블록에 대응하는 채널들의 변화량을 연산하는 일 예를 설명하기 위한 도면이다.
도 10을 참조하면, 프레임(1010)은 픽셀(1011)이 복수 개 모여 구성되고, 픽셀(1011)에 컬러가 설정됨에 따라 프레임(1010)은 하나의 이미지를 나타낼 수 있다. 또한, 프레임(1010)이 텍스쳐 이미지에 대응되는 경우, 픽셀(1011)은 텍셀이 될 수 있다.
압축/해제 장치(220)은 픽셀(1011)들을 그룹핑하여 하나의 블록(1020)을 생성한다. 도 10에는 하나의 블록(1020)에 16개의 픽셀(1011)들이 포함되는 것으로 도시되어 있으나, 이에 한정되지 않는다.
도 9를 참조하여 상술한 바와 같이, 이미지 내의 배경과 같은 영역은 그 영역에 포함된 픽셀(1011)들의 컬러가 유사할 수 있다. 따라서, 픽셀(1011)의 채널들 각각의 변화량과 블록(1020)의 채널들 각각의 변화량이 유사할 수 있다.
압축/해제 장치(220)는 블록(1020)에 대응하는 채널들의 변화량을 연산한다. 예를 들어, 블록(1020)이 R 채널, G 채널, B 채널 및 A 채널을 갖는다고 가정하면, 압축/해제 장치(220)는 R 채널의 변화량을 250(예를 들어, 5~255), G 채널의 변화량을 36(예를 들어, 3~39), B 채널의 변화량을 14(예를 들어, 4~18) 및 A 채널의 변화량을 5(예를 들어, 10~15)로 연산할 수 있다.
압축/해제 장치(220)는 연산된 블록(1020)의 채널 별 변화량을 블록(1020)에 포함된 픽셀들 각각의 채널 별 변화량으로 결정할 수 있다. 또한, 압축/해제 장치(220)는 블록(1020)에 포함된 하나의 픽셀(1011)의 채널 별 변화량을 연산하고, 연산된 변화량을 블록(1020)에 포함된 픽셀들 각각의 채널 별 변화량으로 결정할 수도 있다. 따라서, 프레임(1010)에 포함된 모든 픽셀들 각각의 채널 별 변화량을 연산하는 경우에 비하여 연산량이 대폭 감소될 수 있다.
도 11은 일 실시예에 따른 압축/해제 장치가 그래픽 처리 장치의 외부에 배치되는 일 예를 도시한 구성도이다.
도 11을 참조하면, 압축/해제 장치(221)은 그래픽 처리 장치(20)와 외부 메모리(30)의 사이에 배치될 수 있다. 도 3을 참조하여 상술한 바에 따르면, 압축/해제 장치(220)는 그래픽 처리 장치(20)에 임베디드될 수 있다. 그러나, 도 11에 도시된 바와 같이, 압축/해제 장치(221)는 그래픽 처리 장치(20)의 외부에 독립된 장치로 배치될 수도 있다.
압축/해제 장치(221)은 그래픽 처리 장치(20)와 외부 메모리(30)간에 송수신되는 데이터에 적절한 비트 수를 할당하여 압축하고, 압축된 데이터의 압축을 해제할 수 있다. 따라서, 외부 메모리(30)의 저장 공간이 불필요하게 낭비되는 것이 방지될 수 있다. 또한, 그래픽 처리 장치(20)가 불필요한 연산을 수행하는 것이나, 그래픽 처리 장치(20)가 생성한 데이터에 포함된 정보가 손실되는 것이 방지될 수 있다.
상술한 바에 따르면, 변화량이 큰 채널의 정보가 손실되는 것이 방지될 수 있으며, 온 칩 메모리 또는 외부 메모리에 불필요한 저장 공간이 할당되는 것이 방지될 수 있다. 또한, 그래픽 처리 장치가 불필요한 연산을 수행하는 것을 방지할 수 있다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 램, USB, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1: 시스템
10: 중앙 처리 장치
20: 그래픽 처리 장치
30: 외부 메모리
210: 온 칩 메모리

Claims (15)

  1. 이미지에 포함된 픽셀에 대응하는 복수의 채널(channel)들 각각의 변화량을 연산하는 단계;
    상기 채널의 변화량에 기초하여 상기 채널들 각각에 할당되는 비트(bit)들의 수를 결정하는 단계; 및
    상기 결정된 비트들의 수에 기초하여 상기 채널을 압축(compress)하는 단계;를 포함하는 데이터를 처리하는 방법.
  2. 제 1 항에 있어서,
    상기 결정하는 단계는 상기 채널의 변화량에 비례하여 상기 비트들의 수가 많아지도록 결정하는 방법.
  3. 제 1 항에 있어서,
    상기 이미지에 포함된 복수의 픽셀들을 그룹핑하여 적어도 하나 이상의 블록(block)을 생성하는 단계;를 더 포함하고,
    상기 연산하는 단계는 상기 블록에 대응하는 복수의 채널들 각각의 변화량을 연산하는 방법.
  4. 제 1 항에 있어서,
    상기 압축하는 단계는 상기 비트들 중 상위 n개의 비트들을 저장하는 방법.
  5. 제 1 항에 있어서,
    상기 압축된 채널에 대응하는 데이터를 저장하는 단계;를 더 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 이미지는 텍스쳐(texture) 이미지 또는 렌더링된 이미지를 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 복수의 채널들은 적색(red), 녹색(green), 청색(blue) 및 투명도(에 대응하는 채널들을 포함하는 방법.
  8. 제 1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  9. 이미지에 포함된 픽셀에 대응하는 복수의 채널(channel)들 각각의 변화량을 연산하고, 상기 채널의 변화량에 기초하여 상기 채널들 각각에 할당되는 비트(bit)들의 수를 결정하고, 상기 결정된 비트들의 수에 기초하여 상기 채널을 압축(compress)하는 프로세서;를 포함하는 데이터를 처리하는 장치.
  10. 제 9 항에 있어서,
    상기 프로세서는 상기 채널의 변화량에 비례하여 상기 비트들의 수가 많아지도록 상기 비트들의 수를 결정하는 장치.
  11. 제 9 항에 있어서,
    상기 프로세서는 상기 이미지에 포함된 복수의 픽셀들을 그룹핑하여 적어도 하나 이상의 블록(block)을 생성하고, 상기 블록에 대응하는 복수의 채널들 각각의 변화량을 연산하는 장치.
  12. 제 9 항에 있어서,
    상기 프로세서는 상기 비트들 중 상위 n개의 비트들을 메모리로 전송하는 장치.
  13. 제 9 항에 있어서,
    상기 프로세서는 상기 압축된 채널에 대응하는 데이터를 메모리로 전송하는 장치.
  14. 제 9 항에 있어서,
    상기 이미지는 텍스쳐(texture) 이미지 또는 렌더링된 이미지를 포함하는 장치.
  15. 제 9 항에 있어서,
    상기 복수의 채널들은 적색(red), 녹색(green), 청색(blue) 및 투명도에 대응하는 채널들을 포함하는 장치.
KR1020160128560A 2016-10-05 2016-10-05 채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치. KR20180037837A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160128560A KR20180037837A (ko) 2016-10-05 2016-10-05 채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치.
US15/609,555 US20180096513A1 (en) 2016-10-05 2017-05-31 Method and apparatus for determining number of bits assigned to channels based on variations of channels

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160128560A KR20180037837A (ko) 2016-10-05 2016-10-05 채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치.

Publications (1)

Publication Number Publication Date
KR20180037837A true KR20180037837A (ko) 2018-04-13

Family

ID=61758199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160128560A KR20180037837A (ko) 2016-10-05 2016-10-05 채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치.

Country Status (2)

Country Link
US (1) US20180096513A1 (ko)
KR (1) KR20180037837A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US11308648B2 (en) * 2020-09-23 2022-04-19 Advanced Micro Devices, Inc. Compressing texture data on a per-channel basis

Also Published As

Publication number Publication date
US20180096513A1 (en) 2018-04-05

Similar Documents

Publication Publication Date Title
CN109166159B (zh) 获取图像的主色调的方法、装置及终端
KR102444240B1 (ko) 텍스쳐 처리 방법 및 장치
US9754345B2 (en) Compression and decompression of graphics data using pixel region bit values
US10304155B2 (en) Delta color compression application to video
US11715253B2 (en) Pixelation optimized delta color compression
EP2797049B1 (en) Color buffer compression
US20230419553A1 (en) Locally varying numerical ranges for data compression
US20180097527A1 (en) 32-bit hdr pixel format with optimum precision
KR20180037837A (ko) 채널의 변화량에 기초하여 채널에 할당되는 비트들의 수를 결정하는 방법 및 장치.
US20140354641A1 (en) Methods of and apparatus for compressing depth data
US11978234B2 (en) Method and apparatus of data compression
KR102531605B1 (ko) 하이브리드 블록 기반 압축
CN106296757A (zh) 一种图像处理方法和装置
CN109767379B (zh) 数据归一化的处理方法、装置、存储介质和电子设备
EP3367683A1 (en) Delta color compression application to video
US9542909B2 (en) Image processing apparatus and image processing method
US20230154063A1 (en) Non-linear filtering for color space conversions
CN117115299A (zh) 显示信息的处理方法、装置、存储介质和电子装置
CN118043842A (en) Rendering format selection method and related equipment thereof