KR101773396B1 - 데이터를 압축 해제하는 그래픽 처리 장치 및 방법 - Google Patents

데이터를 압축 해제하는 그래픽 처리 장치 및 방법 Download PDF

Info

Publication number
KR101773396B1
KR101773396B1 KR1020110011447A KR20110011447A KR101773396B1 KR 101773396 B1 KR101773396 B1 KR 101773396B1 KR 1020110011447 A KR1020110011447 A KR 1020110011447A KR 20110011447 A KR20110011447 A KR 20110011447A KR 101773396 B1 KR101773396 B1 KR 101773396B1
Authority
KR
South Korea
Prior art keywords
segments
segment
compressed data
information
decompressing
Prior art date
Application number
KR1020110011447A
Other languages
English (en)
Other versions
KR20120091589A (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 KR1020110011447A priority Critical patent/KR101773396B1/ko
Priority to US13/331,943 priority patent/US9013473B2/en
Publication of KR20120091589A publication Critical patent/KR20120091589A/ko
Application granted granted Critical
Publication of KR101773396B1 publication Critical patent/KR101773396B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Abstract

3차원 객체의 압축 데이터를 압축 해제하는 그래픽 처리 장치 및 방법이 제공된다. 그래픽 처리 장치는 압축 데이터 헤더를 분석하여 세그먼트 정보를 추출하고, 추출한 세그먼트 정보에 기초하여 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제할 수 있다.

Description

데이터를 압축 해제하는 그래픽 처리 장치 및 방법{Graphic Processing Apparatus and Method for Decompressing to Data}
아래의 실시예들은 중앙 처리 장치(CPU) 및 그래픽 처리 장치(GPU)를 이용하여 3차원 객체 데이터의 압축을 해제하는 기술에 관한 것이다.
3차원 영상 데이터는 데이터 용량이 크기 때문에, 큰 저장 공간, 높은 계산량, 그리고 큰 전송 대역폭을 필요로 한다. 특히, 3차원 객체 데이터를 디스플레이에 출력 시, 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU) 간의 높은 대역폭이 동시에 요구된다.
일반적으로, 3차원 객체 데이터가 압축된 경우, 중앙 처리 장치는 압축된 3차원 객체 데이터의 압축을 해제하여 그래픽 처리 장치로 전달한다. 그러면, 그래픽 처리 장치는 압축 해제된 3차원 객체 데이터를 디스플레이에 출력한다.
이때, 압축 해제된 3차원 객체 데이터의 용량이 클수록 중앙 처리 장치와 그래픽 처리 장치 간의 전송 속도가 지연된다. 이에 따라, 3차원 객체 데이터를 디스플레이에 출력할 때까지 처리 시간이 증가한다.
이처럼, 중앙 처리 장치에서 압축 해제 시, 중앙 처리 장치와 그래픽 처리 장치 간의 병목 현상으로 인해 3차원 객체 데이터를 처리 및 디스플레이에 출력하는 데 한계가 존재한다.
따라서, 중앙 처리 장치와 그래픽 처리 장치 간의 병목 현상을 감소시키고, 3차원 객체 데이터의 압축 해제 및, 압축 해제된 3차원 객체 데이터를 디스플레이에 출력할 때까지의 시간을 감소시킬 수 있는 기술이 필요하다.
본 그래픽 처리 장치는, 중앙 처리 장치와 연동하여 3차원 객체의 압축데이터를 압축 해제하는 그래픽 처리 장치에 있어서, 상기 중앙 처리 장치로부터 수신한 압축데이터의 비트 스트림에 포함된 압축데이터 헤더를 분석하여 세그먼트 정보를 추출하는 세그먼트 정보 추출부, 및 상기 세그먼트 정보에 기초하여 상기 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 압축 해제부를 포함할 수 있다.
또한, 상기 압축데이터의 비트 스트림을 저장하기 위한 제1 메모리 공간, 및 압축 해제 결과를 저장하기 위한 제2 메모리 공간을 할당하는 메모리 할당부를 더 포함할 수 있다.
또한, 상기 세그먼트 정보에 기초하여 상기 세그먼트를 압축 해제하기 위해 이용되는 쓰레드(thread)를 생성하는 쓰레드 생성부를 더 포함할 수 있다.
또한, 상기 쓰레드 생성부는, 상기 세그먼트 정보에 포함된 세그먼트의 위치 정보에 기초하여 상기 세그먼트들 각각에 대응하는 쓰레드를 생성할 수 있다. 그러면, 상기 압축 해제부는, 상기 쓰레드를 이용하여 상기 세그먼트들을 병렬적으로 압축 해제할 수 있다.
또한, 상기 압축 해제부는, 상기 세그먼트 정보에 기초하여 생성된 쓰레드 개수보다 세그먼트 개수가 많은 경우, 생성된 쓰레드를 이용하여 일부 세그먼트를 압축 해제하고, 나머지 세그먼트를 상기 생성된 쓰레드를 이용하여 다시 압축 해제할 수 있다.
본 기록 매체는, 중앙 처리 장치가 그래픽 처리 장치에 전송하는 3차원 객체의 압축 데이터의 비트 스트림이 저장된 기록 매체에 있어서, 상기 비트 스트림은 압축 데이터 헤더 및 복수의 세그먼트로 구성될 수 있다.
이때, 상기 압축 데이터 헤더는, 세그먼트 정보를 포함하고, 상기 복수의 세그먼트는, 상기 세그먼트 정보에 기초하여 병렬적으로 압축 해제될 수 있다.
본 그래픽 처리 방법은, 중앙 처리 장치와 연동하여 3차원 객체의 압축데이터를 압축 해제하는 그래픽 처리 장치가 수행하는 그래픽 처리 방법에 있어서, 상기 중앙 처리 장치로부터 수신한 압축데이터의 비트 스트림에 포함된 압축데이터 헤더를 분석하여 세그먼트 정보를 추출하는 단계, 및 상기 세그먼트 정보에 기초하여 상기 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 단계를 포함할 수 있다.
또한, 상기 압축데이터의 비트 스트림을 저장하기 위한 제1 메모리 공간을 할당하는 단계, 및 상기 세그먼트들을 압축 해제한 결과를 저장하기 위한 제2 메모리 공간을 할당하는 단계를 더 포함할 수 있다.
또한, 상기 세그먼트 정보에 기초하여 상기 세그먼트를 압축 해제하기 위해 이용되는 쓰레드(thread)를 생성하는 단계를 더 포함할 수 있다.
본 발명에 따르면, 그래픽 처리 장치에서 3차원 객체 데이터를 압축 해제함에 따라, 중앙 처리 장치와 그래픽 처리 장치 간의 병목 현상을 감소시키고, 3차원 객체 데이터를 디스플레이에 출력할 때까지의 시간을 감소시킬 수 있다.
도 1은 중앙 처리 장치와 그래픽 처리 장치가 연동하여 압축 데이터를 압축 해제하는 과정을 설명하기 위해 제공되는 도면이다.
도 2는 중앙 처리 장치로부터 수신한 압축데이터의 압축을 해제하는 그래픽 처리 장치의 구성을 도시한 블록도이다.
도 3은 3차원 객체 데이터를 압축하여 생성된 비트 스트림의 구조를 도시한 도면이다.
도 4는 압축 데이터의 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 과정을 설명하기 위해 제공되는 흐름도이다.
도 5는 그래픽 처리 장치에서 쓰레드를 생성하여 세그먼트들을 병렬적으로 압축 해제하는 동작을 설명하기 위해 제공되는 흐름도이다.
도 6은 복수의 세그먼트들로 분할된 3차원 객체 데이터를 설명하기 위해 제공되는 도면이다.
도 7은 각 세그먼트에 대응하는 쓰레드를 생성하는 과정을 설명하기 위해 제공되는 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 중앙 처리 장치와 그래픽 처리 장치가 연동하여 압축 데이터를 압축 해제하는 과정을 설명하기 위해 제공되는 도면이다.
도 1에 따르면, 중앙 처리 장치(110)는 압축 데이터의 비트 스트림을 그래픽 처리 장치(120)로 전달할 수 있다. 여기서, 압축 데이터는 복수의 세그먼트들(segments)로 분할되어 압축된 3차원 객체 데이터이다.
일례로, 중앙 처리 장치(110)는 저장 매체(130)로부터 압축 데이터를 읽어 들여 그래픽 처리 장치(120)로 전달할 수 있다. 이때, 저장 매체(130)로부터 압축되지 않은 상태의 3차원 객체 데이터를 읽어 들인 경우, 도 6과 같이, 중앙 처리 장치(110)는 3차원 객체 데이터(610)를 복수의 세그먼트들(620)로 분할하여 압축할 수 있다.
일례로, 중앙 처리 장치는 3차원 객체 데이터를 정점의 노멀(normal)이 유사한 정점들로 구성된 세그먼트로 분할하여 압축할 수 있다.
다른 예로, 중앙 처리 장치(110)는 3차원 객체 데이터를 정점들 간의 연결 관계에 기초하여 복수의 세그먼트들로 분할하여 압축할 수 있다. 다시 말해, 중앙 처리 장치(110)는 각 정점 별로 이웃하는 정점의 개수가 유사한 정점들로 구성된 세그먼트로 3차원 객체 데이터를 분할하여 압축할 수 있다.
이처럼, 중앙 처리 장치(110)는 압축을 통해 압축 데이터의 비트 스트림을 생성할 수 있다. 이때, 중앙 처리 장치(110)는 각 세그먼트가 기저 메쉬(Base Mesh)를 구성하는 면들 중 하나의 면과 대응되도록 설정하여 비트 스트림을 생성할 수 있다. 이에 따라, 중앙 처리 장치(110)는 압축 데이터의 비트 스트림을 그래픽 처리 장치(120)로 점진적으로 전달할 수 있다. 여기서, 압축 데이터의 비트 스트림은, 압축 데이터 헤더 및 세그먼트들을 포함할 수 있다. 그리고, 세그먼트들은 세그먼트 헤더 및 세그먼트 데이터를 각각 포함할 수 있다.
그러면, 그래픽 처리 장치(120)는 압축 데이터 헤더를 분석하여 세그먼트 정보를 추출할 수 있다. 그리고, 그래픽 처리 장치(120)는 세그먼트 정보에 기초하여 세그먼트들을 병렬적으로 압축 해제할 수 있다.
이때, 그래픽 처리 장치(120)는 세그먼트들 각각에 대응하는 쓰레드(thread)를 이용하여 세그먼트들을 병렬적으로 압축 해제할 수 있다. 여기서, 쓰레드는 중앙 처리 장치(110) 또는 그래픽 처리 장치(120)에서 생성될 수 있다.
일례로, 세그먼트가 n개인 경우, 쓰레드는 n개 생성될 수 있다. 그러면, 그래픽 처리 장치(120)는 n개의 쓰레드를 이용하여 각 쓰레드에 대응하는 세그먼트를 동시에 압축 해제할 수 있다. 다시 말해, 쓰레드 1은 세그먼트 1을 압축 해제, 쓰레드 2는 세그먼트 2를 압축 해제, …,쓰레드 n은 세그먼트 n을 압축 해제할 수 있다. 이때, 쓰레드 1 내지 쓰레드 n은 세그먼트 1 내지 세그먼트 n을 동시에 압축 해제할 수 있다. 이처럼, 그래픽 처리 장치(120)는 세그먼트들을 병렬적으로 압축 해제함으로써, 압축 해제 시간을 감소시킬 수 있다.
다른 예로, 세그먼트 개수가 그래픽 처리 장치에서 생성할 수 있는 쓰레드의 개수 보다 많은 경우, 그래픽 처리 장치(120)는 쓰레드를 이용하여 일부 세그먼트를 압축 해제한 후, 나머지 세그먼트 압축을 위해 쓰레드를 다시 이용할 수 있다. 일례로, 세그먼트 개수가 2n개이고, 그래픽 처리 장치에서 생성 가능한 쓰레드 개수가 n개인 경우, 그래픽 처리 장치는 n개의 쓰레드를 이용하여 n개의 세그먼트를 압축 해제하고, 압축 해제가 완료됨에 따라 다시 n개의 쓰레드를 이용하여 나머지 n개의 세그먼트를 압축 해제할 수 있다.
도 2는 중앙 처리 장치로부터 수신한 압축데이터의 압축을 해제하는 그래픽 처리 장치의 구성을 도시한 블록도이다.
도 2에 따르면, 그래픽 처리 장치(200)는 세그먼트 정보 추출부(210), 메모리 할당부(220), 비디오 메모리(230), 쓰레드 생성부(240), 및 압축 해제부(250)를 포함할 수 있다.
세그먼트 정보 추출부(210)는 중앙 처리 장치로부터 수신한 압축 데이터의 비트 스트림에 포함된 압축 데이터 헤더를 분석하여 세그먼트 정보를 추출할 수 있다.
그리고, 메모리 할당부(220)는 비디오 메모리(230)를 구성하는 메모리 공간들 중 압축 데이터의 비트 스트림을 저장하기 위한 제1 메모리 공간을 할당할 수 있다. 이때, 메모리 할당부(220)는 세그먼트 정보에 포함된 비트스트림 크기 정보에 기초하여 제1 메모리 공간을 할당할 수 있다. 그러면, 할당된 제1 메모리 공간에 압축 데이터의 비트스트림이 저장될 수 있다.
그리고, 메모리 할당부(220)는 비디오 메모리(230)를 구성하는 메모리 공간들 세그먼트들을 압축 해제한 결과를 저장하기 위한 제2 메모리 공간을 할당할 수 있다. 이때, 메모리 할당부(220)는 세그먼트 정보에 포함된 세그먼트 데이터 크기 정보에 기초하여 제2 메모리 공간을 할당할 수 있다.
여기서, 제2 메모리 공간은 3차원 객체를 디스플레이에 출력하기 위해서 그래픽 처리 장치 내 정점 위치 정보, 그리고 정점 간 연결 관계를 나타내는 정점 연결 정보를 저장하는 메모리에 해당한다.
이어, 쓰레드 생성부(240)는 세그먼트 정보에 기초하여 세그먼트를 압축 해제하기 위해 이용되는 쓰레드를 생성할 수 있다.
일례로, 쓰레드 생성부(240)는 세그먼트 정보에 포함된 세그먼트의 개수 정보 및 세그먼트의 위치 정보에 기초하여 세그먼트들 각각에 대응하는 쓰레드를 생성할 수 있다.
이때, 세그먼트가 n개인 경우, 쓰레드 생성부(240)는 세그먼트 개수 정보에 기초하여 n개의 쓰레드를 생성할 수 있다. 상세하게는, 쓰레드 생성부(240)는 세그먼트의 위치 정보에 기초하여 세그먼트 1에 대응하는 쓰레드 1, 세그먼트 2에 대응하는 쓰레드 2,…, 및 세그먼트 n에 대응하는 쓰레드 n을 생성할 수 있다. 다시 말해, 쓰레드 생성부(240)는 세그먼트의 위치 정보에 기초하여 각 세그먼트와 쓰레드가 대응하도록 매칭시킬 수 있다.
다른 예로, 쓰레드 생성부(240)는 세그먼트 정보에 포함된 세그먼트의 위치 정보에 기초하여 쓰레드를 생성할 수도 있다. 이때, 쓰레드 생성부(240)는 세그먼트 개수보다 적은 개수의 쓰레드를 생성할 수도 있다.
이처럼, 세그먼트 개수가 쓰레드 생성부(240)에서 생성할 수 있는 쓰레드 개수보다 많은 경우, 압축 해제부(250)는 쓰레드 생성부(240)에서 생성 가능한 개수의 쓰레드를 이용하여 쓰레드 개수만큼의 세그먼트를 압축 해제할 수 있다. 그리고, 압축 해제부(250)는 나머지 세그먼트를 압축 해제하기 위해서 쓰레드를 다시 사용할 수 있다.
압축 해제부(250)는 쓰레드를 이용하여 각 쓰레드에 대응하는 세그먼트를 병렬적으로 압축 해제할 수 있다.
그리고, 압축 해제부(250)는 압축 해제 결과인 정점(vertex) 위치 정보 및 정점 연결 정보를 세그먼트 별로 제2 메모리 공간에 저장할 수 있다. 여기서, 정점 위치 정보는, 3차원 공간 상에서 정점의 위치 좌표값을 포함할 수 있다. 그리고, 정점 연결 정보는, 3차원 공간 상에서 면을 이루는 정점들의 식별 정보를 포함할 수 있다.
일례로, 세그먼트 1이 n개의 정점들을 포함하는 경우, 세그먼트 1의 정점 위치 정보는, 정점 1의 위치 좌표값(x1, y1, z1), 정점 2의 위치 좌표값(x2, y2, z2),…, 및 정점 n의 위치 좌표값(xn, yn, zn)을 포함할 수 있다. 그리고, 면(face)이 삼각형이고, 세그먼트 1이 k개의 삼각형(triangle)을 포함하는 경우, 세그먼트 1의 정점 연결 정보는 삼각형 1을 이루는 정점들의 식별정보, 삼각형 2를 이루는 정점들의 식별정보, …, 및 삼각형 k를 이루는 정점들의 식별정보를 포함할 수 있다.
그러면, 압축 해제부(250)는 세그먼트 헤더에 포함된 쓰기(Write) 주소 정보에 기초하여 제2 메모리 공간 중 지정된 위치부터 정점 위치 정보 및 정점 연결 정보를 세그먼트 별로 저장할 수 있다. 여기서, 쓰기 주소 정보는 제2 메모리 공간에 정점 위치 정보의 저장 시작을 나타내는 주소 정보 1과 제2 메모리 공간에 정정 연결 정보의 저장 시작을 나타내는 주소 정보 2를 포함할 수 있다. 이때, 주소 정보 1은 세그먼트 별로 다를 수 있다. 마찬가지로, 주소 정보 2도 세그먼트 별로 다를 수 있다.
일례로, 세그먼트 1의 주소 정보 1은 10, 주소 정보 2는 20, 세그먼트 2의 주소 정보 1은 30, 주소 정보 2는 40인 경우, 압축 해제부(250)는 제2 메모리 공간의 10번지부터 세그먼트 1의 정점 위치 정보를 저장하고, 제2 메모리 공간의 20번지부터 세그먼트 1의 정점 연결 정보를 저장할 수 있다. 마찬가지로, 압축 해제부(250)는 30번지부터 세그먼트 2의 정점 위치 정보를 저장하고, 40번지부터 세그먼트 2의 정점 연결 정보를 저장할 수 있다.
이상의 도 2에서는, 그래픽 처리 장치(200)에서 압축 데이터의 비트 스트림을 저장하기 위한 제1 메모리 공간, 그리고 세그먼트들을 압축 해제한 결과를 저장하기 위한 제2 메모리 공간을 할당하고, 세그먼트들 각각에 대응하는 쓰레드를 생성하는 것으로 설명하였으나, 중앙 처리 장치에서 제1 및 제2 메모리 공간을 할당하고, 세그먼트들 각각에 대응하는 쓰레드를 생성할 수 있다. 그러면, 도 2의 그래픽 처리 장치(200)에서 메모리 할당부(220) 및 쓰레드 생성부(240)는 생략될 수 있다.
도 3은 3차원 객체 데이터를 압축하여 생성된 비트 스트림의 구조를 도시한 도면이다.
도 3에 따르면, 압축 데이터의 비트 스트림(300)은 압축 데이터 헤더(310), 및 세그먼트들(320)을 포함할 수 있다.
먼저, 압축 데이터 헤더(310)는 세그먼트들 각각의 세그먼트 정보(301)를 포함할 수 있다.
일례로, 중앙 처리 장치에서 제1 및 제2 메모리 공간을 할당하고, 각 세그먼트에 대응하는 쓰레드를 생성한 경우, 세그먼트 정보(301)는 비트 스트림 내에서 각 세그먼트의 위치를 나타내는 세그먼트 위치 정보를 포함할 수 있다.
다른 예로, 그래픽 처리 장치에서 제1 및 제2 메모리 공간을 할당하고, 쓰레드를 생성하는 경우, 세그먼트 정보(301)는 세그먼트 위치 정보, 세그먼트 개수 정보, 세그먼트 크기 정보, 및 비트 스트림 크기 정보를 포함할 수 있다.
이때, 제1 및 제2 메모리 공간 할당, 쓰레드 생성을 중앙 처리 장치 또는 그래픽 처리 장치에서 수행하는 것과 관계없이, 세그먼트 정보(301)는 3차원 객체 데이터를 구성하는 정점(vertex)들의 개수 정보, 3차원 객체 데이터를 구성하는 면(face)들의 개수 정보를 더 포함할 수 있다. 그리고, 다중 해상도(Multi-Resolution)을 지원하는 경우, 세그먼트 정보(301)는 레벨(level)의 수를 나타내는 레벨 정보를 더 포함할 수도 있다.
그리고, 세그먼트들(320) 각각은 세그먼트 헤더와 세그먼트 데이터를 포함할 수 있다. 여기서, 세그먼트 헤더는 세그먼트를 몇 비트로 양자화했는지를 나타내는 양자화(Quantization) 정보, 세그먼트를 구성하는 정점들의 개수 정보, 세그먼트를 구성하는 면들의 개수 정보, 쓰기(write) 주소 정보 중 적어도 하나를 포함할 수 있다. 그리고, 세그먼트 데이터는 정점 위치 정보와 정점 연결 정보를 포함할 수 있다.
일례로, 세그먼트 1(330)은 세그먼트 1 헤더(331)와 세그먼트 1 데이터(332)를 포함할 수 있다. 그러면, 세그먼트 1 헤더(331)는 세그먼트 1의 양자화 정보, 세그먼트 1을 구성하는 정점들의 개수 정보, 세그먼트 1을 구성하는 면들의 개수 정보, 및 세그먼트 1의 쓰기 정보를 포함할 수 있다. 여기서, 세그먼트 1의 쓰기 정보는 세그먼트 1 데이터(332)에 포함된 세그먼트 1의 정점 위치 정보와 정점 연결 정보를 제2 메모리 공간에 저장 시에 이용될 수 있다. 이때, 세그먼트 1의 정점 위치 정보와 정점 연결 정보는 세그먼트 1을 압축 해제함에 따라 획득될 수 있다.
도 4는 압축 데이터의 비트스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 과정을 설명하기 위해 제공되는 흐름도이다.
먼저, 410 단계에서, 그래픽 처리 장치는 중앙 처리 장치로부터 압축 데이터의 비트 스트림을 수신할 수 있다. 여기서, 압축 데이터의 비트 스트림은 3차원 객체 데이터를 압축하여 생성된 비트 스트림으로, 압축 데이터 헤더 및 세그먼트들을 포함할 수 있다.
이어, 420 단계에서, 그래픽 처리 장치는 압축 데이터 헤더를 분석하여 세그먼트 정보를 추출할 수 있다.
그러면, 430 단계에서, 그래픽 처리 장치는 세그먼트 정보에 기초하여 세그먼트들을 병렬적으로 압축 해제할 수 있다. 이때, 그래픽 처리 장치는 압축 해제를 통해 정점 위치 정보 및 정점 연결 정보를 세그먼트 별로 획득하여 비디오 메모리에 저장할 수 있다.
일례로, 그래픽 처리 장치는 세그먼트의 위치 정보에 기초하여 비트 스트림에 포함된 세그먼트들 중 쓰레드에 대응하는 세그먼트를 압축 해제할 수 있다. 이때, 그래픽 처리 장치는 복수의 쓰레드를 이용하여 각 쓰레드에 대응하는 세그먼트를 병렬적으로 압축 해제할 수 있다.
이하에서는, 세그먼트들을 병렬적으로 압축 해제하기 위해 제1 및 제2 메모리 공간을 할당하고, 세그먼트에 대응하는 쓰레드를 생성하는 과정에 대해 상세히 설명하기로 한다.
도 5는 그래픽 처리 장치에서 쓰레드를 생성하여 세그먼트들을 병렬적으로 압축 해제하는 동작을 설명하기 위해 제공되는 흐름도이다.
먼저, 510 단계에서, 그래픽 처리 장치는 세그먼트 정보에 기초하여 압축 데이터의 비트 스트림을 저장하기 위한 제1 메모리 공간을 할당할 수 있다. 그러면, 그래픽 처리 장치는 압축 데이터의 비트 스트림을 제1 메모리 공간에 저장할 수 있다.
일례로, 그래픽 처리 장치는, 세그먼트 정보에 포함된 비트 스트림 크기 정보에 기초하여 제1 메모리 공간을 할당할 수 있다. 이때, 중앙 처리 장치에서 제1 메모리 공간을 할당하는 경우, 비트 스트림 크기 정보는 세그먼트 정보에서 생략될 수 있다.
이어, 520 단계에서, 그래픽 처리 장치는, 세그먼트 정보에 기초하여 세그먼트들을 압축 해제한 결과를 저장하기 위한 제2 메모리 공간을 할당할 수 있다.
일례로, 그래픽 처리 장치는, 세그먼트 정보에 포함된 세그먼트 크기 정보에 기초하여 제2 메모리 공간을 할당할 수 있다. 이때, 중앙 처리 장치에서 제2 메모리 공간을 할당하는 경우, 세그먼트 크기 정보는 세그먼트 정보에서 생략될 수 있다.
그리고, 530 단계에서, 그래픽 처리 장치는 세그먼트 정보에 포함된 세그먼트 개수 정보 및 세그먼트 위치 정보에 기초하여 각 세그먼트에 대응하는 쓰레드를 생성할 수 있다. 이때, 중앙 처리 장치에서 쓰레드를 생성하는 경우, 세그먼트 개수 정보는 세그먼트 정보에서 생략될 수 있다.
일례로, 세그먼트가 n개인 경우, 그래픽 처리 장치는 세그먼트 개수 정보에 기초하여 n개의 쓰레드를 생성할 수 있다. 그리고, 그래픽 처리 장치는 세그먼트 위치 정보에 기초하여 각 세그먼트와 쓰레드를 매칭시킬 수 있다. 이에 따라, 그래픽 처리 장치는 각 세그먼트에 대응하는 쓰레드를 생성할 수 있다.
이어, 540 단계에서, 그래픽 처리 장치는 쓰레드를 이용하여 각 쓰레드에 대응하는 세그먼트를 병렬적으로 압축 해제할 수 있다.
일례로, 쓰레드가 n개, 세그먼트가 n개인 경우, n개의 각 쓰레드는 대응하는 세그먼트를 동시에 압축 해제할 수 있다. 이때, 그래픽 처리 장치는 압축 해제를 통해 정점 위치 정보 및 정점 연결 정보를 세그먼트 별로 획득할 수 있다.
그러면, 550 단계에서, 그래픽 처리 장치는 정점 위치 정보 및 정점 연결 정보를 세그먼트 별로 제2 메모리 공간에 저장할 수 있다. 이때, 그래픽 처리 장치는, 세그먼트 헤더에 포함된 쓰기(write) 정보에 기초하여 제2 메모리 공간 중 지정된 위치부터 정점 위치 정보 및 정점 연결 정보를 각각 저장할 수 있다. 이에 따라, 그래픽 처리 장치는 제2 메모리 공간에 저장된 정점 위치 정보 및 정점 연결 정보에 기초하여 3차원 객체 데이터를 디스플레이에 출력할 수 있다.
이처럼, 도 7과 같이, 복수의 쓰레드가 비디오 메모리에 액세스(access)하여 세그먼트들을 병렬적으로 압축 해제함에 따라, 그래픽 처리 장치는 압축 해제 시간을 단축하여 3차원 객체 데이터를 디스플레이에 보다 빨리 출력할 수 있다.
지금까지, 도 5에서는 그래픽 처리 장치에서 제1 및 제2 메모리 공간을 할당하고, 쓰레드를 생성하는 것으로 설명하였으나, 중앙 처리 장치에서 제1 및 제2 메모리 공간을 할당하고, 그래픽 처리 장치에서 쓰레드를 생성할 수도 있다.
그러면, 중앙 처리 장치에서 제1 및 제2 메모리 공간을 할당한 이후, 중앙 처리 장치는 압축 데이터의 비트 스트림을 그래픽 처리 장치로 전달할 수 있다. 그리고, 그래픽 처리 장치는 압축 데이터의 비트 스트림을 제1 메모리 공간에 저장한 이후, 각 세그먼트에 대응하는 쓰레드를 생성할 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
200: 그래픽 처리 장치
210: 세그먼트 정보 추출부
220: 메모리 할당부
230: 비디오 메모리
240: 쓰레드 생성부
250: 압축 해제부

Claims (17)

  1. 중앙 처리 장치와 연동하여 3차원 객체의 압축데이터를 압축 해제하는 그래픽 처리 장치에 있어서,
    상기 중앙 처리 장치로부터 수신한 압축데이터의 비트 스트림에 포함된 압축데이터 헤더에 기초하여 세그먼트 정보를 추출하는 세그먼트 정보 추출부; 및
    상기 세그먼트 정보에 기초하여 상기 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 압축 해제부를 포함하고,
    상기 세그먼트들 각각은, 상기 압축 해제의 결과인 정점 위치 정보 및 정점 연결 정보를 포함하는 세그먼트 데이터, 및 세그먼트 헤더를 포함하는, 그래픽 처리 장치.
  2. 제1항에 있어서,
    상기 압축데이터의 비트 스트림을 저장하기 위한 제1 메모리 공간, 및 상기 압축 해제의 결과를 저장하기 위한 제2 메모리 공간을 할당하는 메모리 할당부
    를 더 포함하는 그래픽 처리 장치.
  3. 제2항에 있어서,
    상기 압축 해제부는,
    상기 정점 위치 정보 및 상기 정점 연결 정보를 상기 제2 메모리 공간에 저장하는 것을 특징으로 하는 그래픽 처리 장치.
  4. 중앙 처리 장치와 연동하여 3차원 객체의 압축데이터를 압축 해제하는 그래픽 처리 장치에 있어서,
    상기 중앙 처리 장치로부터 수신한 압축데이터의 비트 스트림에 포함된 압축데이터 헤더에 기초하여 세그먼트 정보를 추출하는 세그먼트 정보 추출부;
    상기 세그먼트 정보에 기초하여 상기 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 압축 해제부; 및
    상기 세그먼트 정보에 기초하여 상기 세그먼트들을 압축 해제하기 위해 이용되는 쓰레드(thread)를 생성하는 쓰레드 생성부
    를 포함하는 그래픽 처리 장치.
  5. 제4항에 있어서,
    상기 쓰레드 생성부는,
    상기 세그먼트 정보에 포함된 세그먼트의 위치 정보에 기초하여 상기 세그먼트들 각각에 대응하는 쓰레드를 생성하고,
    상기 압축 해제부는,
    상기 쓰레드를 이용하여 상기 세그먼트들을 병렬적으로 압축 해제하는 것을 특징으로 하는 그래픽 처리 장치.
  6. 제4항에 있어서,
    상기 압축 해제부는,
    상기 세그먼트 정보에 기초하여 생성된 쓰레드 개수보다 세그먼트 개수가 많은 경우, 생성된 쓰레드를 이용하여 일부 세그먼트를 압축 해제하고, 나머지 세그먼트를 상기 생성된 쓰레드를 이용하여 다시 압축 해제하는 것을 특징으로 하는 그래픽 처리 장치.
  7. 중앙 처리 장치와 연동하여 3차원 객체의 압축데이터를 압축 해제하는 그래픽 처리 장치에 있어서,
    상기 중앙 처리 장치로부터 수신한 압축데이터의 비트 스트림에 포함된 압축데이터 헤더에 기초하여 세그먼트 정보를 추출하는 세그먼트 정보 추출부;
    상기 세그먼트 정보에 기초하여 상기 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 압축 해제부;
    상기 압축 해제에 따른 결과를 저장하기 위한 메모리 공간을 할당하는 메모리 할당부; 및
    상기 세그먼트들 각각에 대응하는 쓰레드(thread)를 생성하는 쓰레드 생성부
    를 포함하는 그래픽 처리 장치.
  8. 중앙 처리 장치가 그래픽 처리 장치에 전송하는 3차원 객체의 압축 데이터의 비트스트림이 기록된 컴퓨터에서 판독 가능한 기록 매체에 있어서,
    상기 비트스트림은, 압축 데이터 헤더 및 복수의 세그먼트들을 포함하고,
    상기 세그먼트들 각각은, 상기 압축 데이터의 압축 해제의 결과인 정점 위치 정보 및 정점 연결 정보를 포함하는 세그먼트 데이터, 및 세그먼트 헤더를 포함하는, 컴퓨터에서 판독 가능한 기록 매체.
  9. 제8항에 있어서,
    상기 압축 데이터 헤더는, 세그먼트 정보를 포함하고,
    상기 복수의 세그먼트들을, 상기 세그먼트 정보에 기초하여 병렬적으로 압축 해제되는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  10. 중앙 처리 장치와 연동하여 3차원 객체의 압축데이터를 압축 해제하는 그래픽 처리 장치가 수행하는 그래픽 처리 방법에 있어서,
    상기 중앙 처리 장치로부터 수신한 압축데이터의 비트 스트림에 포함된 압축데이터 헤더에 기초하여 세그먼트 정보를 추출하는 단계; 및
    상기 세그먼트 정보에 기초하여 상기 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 단계를 포함하고,
    상기 세그먼트들 각각은, 상기 압축 해제의 결과인 정점 위치 정보 및 정점 연결 정보를 포함하는 세그먼트 데이터, 및 세그먼트 헤더를 포함하는, 그래픽 처리 방법.
  11. 제10항에 있어서,
    상기 압축데이터의 비트 스트림을 저장하기 위한 제1 메모리 공간을 할당하는 단계; 및
    상기 압축 해제의 결과를 저장하기 위한 제2 메모리 공간을 할당하는 단계
    를 더 포함하는 그래픽 처리 방법.
  12. 제11항에 있어서,
    상기 압축 해제하는 단계는,
    상기 정점 위치 정보 및 상기 정점 연결 정보를 상기 제2 메모리 공간에 저장하는 것을 특징으로 하는 그래픽 처리 방법.
  13. 중앙 처리 장치와 연동하여 3차원 객체의 압축데이터를 압축 해제하는 그래픽 처리 장치가 수행하는 그래픽 처리 방법에 있어서,
    상기 중앙 처리 장치로부터 수신한 압축데이터의 비트 스트림에 포함된 압축데이터 헤더에 기초하여 세그먼트 정보를 추출하는 단계;
    상기 세그먼트 정보에 기초하여 상기 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 단계; 및
    상기 세그먼트 정보에 기초하여 상기 세그먼트들을 압축 해제하기 위해 이용되는 쓰레드(thread)를 생성하는 단계
    를 포함하는 그래픽 처리 방법.
  14. 제13항에 있어서,
    상기 쓰레드를 생성하는 단계는,
    상기 세그먼트 정보에 포함된 세그먼트의 위치 정보에 기초하여 상기 세그먼트들 각각에 대응하는 쓰레드를 생성하고,
    상기 압축 해제하는 단계는,
    상기 쓰레드를 이용하여 상기 세그먼트들을 병렬적으로 압축 해제하는 것을 특징으로 하는 그래픽 처리 방법.
  15. 제13항에 있어서,
    상기 압축 해제하는 단계는,
    상기 세그먼트 정보에 기초하여 생성된 쓰레드 개수보다 세그먼트 개수가 많은 경우, 생성된 쓰레드를 이용하여 일부 세그먼트를 압축 해제하고, 나머지 세그먼트를 상기 생성된 쓰레드를 이용하여 다시 압축 해제하는 것을 특징으로 하는 그래픽 처리 방법.
  16. 중앙 처리 장치와 연동하여 3차원 객체의 압축데이터를 압축 해제하는 그래픽 처리 장치가 수행하는 그래픽 처리 방법에 있어서,
    상기 중앙 처리 장치로부터 수신한 압축데이터의 비트 스트림에 포함된 압축데이터 헤더에 기초하여 세그먼트 정보를 추출하는 단계;
    상기 세그먼트 정보에 기초하여 상기 비트 스트림에 포함된 세그먼트들을 병렬적으로 압축 해제하는 단계;
    상기 압축데이터의 비트 스트림을 저장하기 위한 메모리 공간을 할당하는 단계;
    상기 세그먼트들을 압축 해제한 결과를 저장하기 위한 제2 메모리 공간을 할당하는 단계; 및
    상기 세그먼트들 각각에 대응하는 쓰레드(thread)를 생성하는 단계
    를 포함하는 그래픽 처리 방법.
  17. 제10항 내지 제16항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
KR1020110011447A 2011-02-09 2011-02-09 데이터를 압축 해제하는 그래픽 처리 장치 및 방법 KR101773396B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110011447A KR101773396B1 (ko) 2011-02-09 2011-02-09 데이터를 압축 해제하는 그래픽 처리 장치 및 방법
US13/331,943 US9013473B2 (en) 2011-02-09 2011-12-20 Graphic processing unit and method for decompressing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110011447A KR101773396B1 (ko) 2011-02-09 2011-02-09 데이터를 압축 해제하는 그래픽 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120091589A KR20120091589A (ko) 2012-08-20
KR101773396B1 true KR101773396B1 (ko) 2017-08-31

Family

ID=46600348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110011447A KR101773396B1 (ko) 2011-02-09 2011-02-09 데이터를 압축 해제하는 그래픽 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US9013473B2 (ko)
KR (1) KR101773396B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9686536B2 (en) * 2013-05-20 2017-06-20 Advanced Micro Devices, Inc. Method and apparatus for aggregation and streaming of monitoring data
US9928610B2 (en) * 2014-06-27 2018-03-27 Samsung Electronics Co., Ltd. Motion based adaptive rendering
US11049269B2 (en) 2014-06-27 2021-06-29 Samsung Electronics Co., Ltd. Motion based adaptive rendering
US9542760B1 (en) * 2014-12-18 2017-01-10 Amazon Technologies, Inc. Parallel decoding JPEG images
GB2536472B (en) * 2015-03-18 2018-08-01 Displaylink Uk Ltd A method of processing display data
US10846562B2 (en) * 2018-01-12 2020-11-24 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for image matching
KR102238091B1 (ko) * 2018-08-23 2021-04-08 한국전자기술연구원 3d 모델 압축 및 압축해제 시스템 및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740409A (en) 1996-07-01 1998-04-14 Sun Microsystems, Inc. Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities
JP3127853B2 (ja) 1997-04-30 2001-01-29 日本電気株式会社 メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム
JPH11232431A (ja) 1998-02-16 1999-08-27 Seiko Epson Corp 画像処理装置
KR20000009807A (ko) 1998-07-28 2000-02-15 윤종용 컴퓨터 시스템의 그래픽 데이터 처리 방법
US6525737B1 (en) * 1998-08-20 2003-02-25 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
US7071935B1 (en) * 1999-06-14 2006-07-04 Sun Microsystems, Inc. Graphics system with just-in-time decompression of compressed graphics data
KR100384741B1 (ko) 2000-08-31 2003-05-22 학교법인연세대학교 3차원 그래픽 데이터에 대한 나선형 형태의 위상 압축 방법
GB2387094B (en) 2002-03-26 2005-12-07 Imagination Tech Ltd 3-D Computer graphics rendering system
TWI220233B (en) 2003-06-13 2004-08-11 Compal Electronics Inc Video graphics adapter structure sharing a scaling circuit
US20060158677A1 (en) 2005-01-18 2006-07-20 Atousa Soroushi Enhanced image data processing method and apparatus
KR100785012B1 (ko) * 2005-04-11 2007-12-12 삼성전자주식회사 3d 압축 데이터 생성, 복원 방법 및 그 장치
JP4469788B2 (ja) 2005-12-16 2010-05-26 株式会社東芝 情報処理装置および再生方法
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US20080266287A1 (en) * 2007-04-25 2008-10-30 Nvidia Corporation Decompression of vertex data using a geometry shader
KR20100071865A (ko) * 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치

Also Published As

Publication number Publication date
US9013473B2 (en) 2015-04-21
US20120200559A1 (en) 2012-08-09
KR20120091589A (ko) 2012-08-20

Similar Documents

Publication Publication Date Title
KR101773396B1 (ko) 데이터를 압축 해제하는 그래픽 처리 장치 및 방법
US8542243B2 (en) High-compression texture mapping
JP6990227B2 (ja) デルタカラー圧縮用のビットパッキング
US20120219233A1 (en) Compression of Image Data
US20150109288A1 (en) Random Accessible Lossless Parameter Data Compression for Tile Based 3D Computer Graphics Systems
US10699361B2 (en) Method and apparatus for enhanced processing of three dimensional (3D) graphics data
US20140086309A1 (en) Method and device for encoding and decoding an image
US9013479B2 (en) Apparatus and method for tile-based rendering
US8860719B2 (en) Apparatus and method for encoding three-dimensional (3D) mesh, and apparatus and method for decoding 3D mesh
US20170352165A1 (en) Encoding and decoding arrays of data elements
CN103262531B (zh) 用于在图块编码中在像素值缓冲器中存储压缩比率指示的方法和设备
US8441491B2 (en) Method for performing undo and redo operations on a graphics processing unit
US10304212B2 (en) Graphic data compression device and graphic data compression method
US9679530B2 (en) Compressing graphics data rendered on a primary computer for transmission to a remote computer
JP5903597B2 (ja) 画像圧縮装置、画像伸長装置および画像処理装置
US20140184601A1 (en) System and method for frame buffer decompression and/or compression
US10824357B2 (en) Updating data stored in a memory
JP6186429B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
CN110555890A (zh) 一种内存管理方法及系统
US9008185B2 (en) Apparatus and method of lossless compression/restoration of selective image information
CN105791819A (zh) 一种图像的帧压缩方法、图像的解压缩方法及装置
US9135009B2 (en) Apparatus and method for compressing instructions and a computer-readable storage media therefor
KR102154580B1 (ko) 이미지 처리 장치 및 방법
CN108804508B (zh) 一种存储输入图像的方法及系统
JP6377222B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体

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