KR101284559B1 - 그래픽 처리 유닛 기반의 미디어 압축 및 전송 방법과 이를 실행하는 장치 - Google Patents
그래픽 처리 유닛 기반의 미디어 압축 및 전송 방법과 이를 실행하는 장치 Download PDFInfo
- Publication number
- KR101284559B1 KR101284559B1 KR1020110140647A KR20110140647A KR101284559B1 KR 101284559 B1 KR101284559 B1 KR 101284559B1 KR 1020110140647 A KR1020110140647 A KR 1020110140647A KR 20110140647 A KR20110140647 A KR 20110140647A KR 101284559 B1 KR101284559 B1 KR 101284559B1
- Authority
- KR
- South Korea
- Prior art keywords
- media
- gpu
- processing unit
- compression
- graphics processing
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 그래픽 처리 유닛(GPU)을 기반으로 하는 미디어의 압축 및 전송 방법으로서, 상기 그래픽 처리 유닛(GPU)의 사양 및 성능과, 처리하고자 하는 미디어의 해상도에 근거하여, 상기 미디어의 프레임을 다수의 슬라이스로 분할하고, 상기 분할된 슬라이스 별로, 상기 미디어의 데이터를 주처리 유닛(CPU) 측의 호스트 영역에서 상기 그래픽 처리 유닛(GPU) 측의 디바이스 영역으로 복사하고, 상기 분할된 슬라이스 별로, 상기 복사된 데이터를 상기 디바이스 영역에서 압축하고, 상기 분할된 슬라이스 별로, 상기 압축된 데이터를 상기 디바이스 영역에서 상기 호스트 영역으로 복사하고, 상기 호스트 영역으로 복사가 완료된 데이터를 통신 수단을 통해 목적지로 전송함으로써, 미디어의 압축 및 전송에서 발생하는 지연 시간을 감소시켜, 초고해상도의 미디어를 실시간으로 처리할 수 있다.
Description
본 발명은 미디어를 실시간으로 압축 및 전송하는 방법 및 장치에 관한 것으로서, 특히 그래픽 처리 유닛(Graphics Processing Units, GPU)을 사용하여 송신자와 수신자 사이의 지연을 줄이면서 고품질의 미디어를 압축하고 전송할 수 있는 방법 및 장치에 관한 것이다.
미디어 환경이 고해상도(HD: High Definition)를 뛰어 넘어 초고해상도(UHD: Ultra High Definition)로 발전함에 따라, 미디어를 실시간으로 압축 및 전송하는 기술의 중요성이 점차적으로 증가하고 있다. 예를 들어, 4K의 미디어를 압축하지 않고 네트워크로 전송하면 명목상으로 6Gbps 수준의 대역폭이 필요하므로, 효율적인 네트워킹을 위해서는 미디어를 압축해서 전송해야 한다.
미디어의 소프트웨어적인 압축 기법으로서, 수신단에서 GPU의 가속 기능을 이용하도록 개발된 DXT(DirectX Texture) 압축 기법이 있다. DXT는 경량의 소프트웨어 중심 부호화 방법으로 PC(Personal Computer) 기반의 압축 및 전송 환경에 쉽게 적용되는 실용적인 기법으로 알려져 있다.
실시간 DXT 압축을 실행하기 위한 알고리즘들이 개발되고 있으나, 듀얼 코어(dual core) 이하의 CPU(Central Processing Unit)에서는 초당 30 프레임의 HD급(1920x1080) 미디어를 실시간 처리하기 어렵다. 또한, HD급 미디어를 초당 30 프레임 이상 처리하는 CPU라도, 입력되는 미디어 소스의 해상도가 UHD급(4096x2160)으로 높아지면 압축 처리의 성능이 저하되는 문제점이 있다.
도 1에 다수의 코어를 갖는 CPU를 이용하여 미디어를 순차적으로 압축하는 방법의 일례를 나타내었다. 다수의 코어(2~8개)에서 동시에 다수의 작업을 수행하여 연산 속도를 높일 수 있지만, 미디어의 해상도가 높아질수록 반복해야할 처리 횟수가 많아져서 연산량이 늘어나기 때문에, 실시간 압축 처리의 요구 사항을 만족시키기는 것이 곤란하다.
이를 해결하기 위한 방법으로서, 입력되는 미디어 또는 압축 처리의 요구 사항에 따라 고성능 워크스테이션급 CPU 또는 여러 대의 CPU로 시스템을 구축할 수 있으나, 얻을 수 있는 성능에 비해 비용이 너무 많이 든다는 단점이 있다.
한편, GPU는 빠른 그래픽 처리를 위해 많은 수의 코어가 집적되어 있는 것으로서, 병렬 연산에 최적화되어 있다. 근래에는 그래픽 처리뿐만 아니라 일반적인 목적의 산술 연산에도 활용할 수 있는 범용 GPU(General-Purpose computing on Graphics Processing Units, GPGPU) 기술이 지원되고 있다.
이와 같이 CPU와 GPU를 함께 활용하는 이기종 컴퓨팅(heterogeneous computing) 기술을 미디어의 압축 및 전송을 위해 활용할 경우, PC급 CPU에서도 고품질의 미디어를 실시간으로 처리할 수 있다. 특히, DXT 압축은 압축할 블록간의 관계가 독립적이어서 병렬 연산에 적합하므로, GPU 기반으로 처리할 경우 더욱 큰 효과를 기대할 수 있다.
GPU 기반으로 DXT 압축을 실행하는 기존 기술에 의하면, 192 코어 GPU를 사용하여 HD급 미디어를 30 fps로 압축 및 전송할 수 있다. 그러나 기존 기술에서는 하나의 HD급 스트림만을 고려하였기 때문에, 미디어의 해상도가 높아지거나 동시에 여러 개의 미디어가 입력되면 실시간으로 처리하기 어려워지는 문제점이 있다.
또한, GPU를 활용한 미디어 압축을 하기 위해서는, 호스트(host) 영역과 디바이스(device) 영역 간에 데이터를 복사하는 과정이 필요하다. 여기서 호스트 영역은 CPU와 메모리를 포함하는 단말기(컴퓨터, 휴대폰 등)를 의미하고, 디바이스 영역은 GPU와 메모리를 포함하는 그래픽 카드를 의미한다.
이와 같이 GPU를 이용한 처리에서는 호스트 영역의 메모리로부터 디바이스 영역의 메모리로의 데이터 복사가 필수적이므로, 이로 인해 처리 속도가 지연되는 문제가 발생할 수 있다. 즉, 일반적으로 GPU는 그래픽 카드에 그래픽 DRAM과 함께 장착되어 PCIe 슬롯에 설치되고, PCIe 버스가 CPU와 RAM 사이의 버스보다 전송 속도가 느리기 때문에, 상기한 호스트 영역의 메모리로부터 디바이스 영역의 메모리로의 데이터 복사에 기인한 병목 현상이 발생할 수 있다. 이러한 병목 현상은 미디어를 실시간으로 압축 및 전송 처리하기 위해 반드시 해결해야 할 중요한 사항이라고 할 수 있다.
본 발명은 상기한 바와 같은 문제점을 해결하기 위한 것으로서, 낮은 성능의 하드웨어로도 초고해상도의 미디어를 작은 지연으로 압축하여 전송할 수 있는 방법을 제공하는 것을 목적으로 한다.
상기한 과제를 해결하기 위한 본 발명에 따른 그래픽 처리 유닛(GPU)을 기반으로 하는 미디어의 압축 및 전송 방법은, 상기 그래픽 처리 유닛(GPU)의 사양 및 성능과, 처리하고자 하는 미디어의 해상도에 근거하여, 상기 미디어의 프레임을 다수의 슬라이스로 분할하는 분할 단계와, 상기 분할된 슬라이스 별로, 상기 미디어의 데이터를 주처리 유닛(CPU) 측의 호스트 영역에서 상기 그래픽 처리 유닛(GPU) 측의 디바이스 영역으로 복사하는 1차 메모리 복사 단계와, 상기 분할된 슬라이스 별로, 상기 복사된 데이터를 상기 디바이스 영역에서 압축하는 압축 단계와, 상기 분할된 슬라이스 별로, 상기 압축된 데이터를 상기 디바이스 영역에서 상기 호스트 영역으로 복사하는 2차 메모리 복사 단계와, 상기 호스트 영역으로 복사가 완료된 데이터를 통신 수단을 통해 목적지로 전송하는 전송 단계를 포함하여 이루어진다.
또한, 상기 압축 및 전송 방법은, 상기 압축 단계 전에, 상기 분할된 슬라이스 별로, 상기 데이터의 색상의 형식을 변환하는 색상 변환 단계를 더 포함할 수도 있다.
상기 전송 단계에서는, 상기 분할된 슬라이스 별로, 상기 압축이 완료된 데이터를 즉시 전송하는 것이 바람직하며, 상기 압축 단계에서는 DXT 압축 방법에 의해 압축을 실행할 수 있다.
상기 그래픽 처리 유닛(GPU)은 범용 그래픽 처리 유닛인 것을 바람직하며, 상기 그래픽 처리 유닛(GPU)의 프로그래밍을 위한 응용 프로그램 인터페이스(API)는 CUDA를 사용할 수 있다.
한편, 상기한 압축 및 전송 방법을 실행하는 장치는, 상기 미디어를 획득하는 비디오카메라와, 상기 호스트 영역을 구성하는 주처리 유닛(CPU) 및 메모리와, 상기 디바이스 영역을 구성하는 그래픽 처리 유닛(GPU) 및 메모리를 포함하여 구성될 수 있다.
본 발명에 따르면, GPU를 이용하여 파이프라이닝(pipelining) 기법으로 미디어를 압축 및 전송함으로써, 미디어의 압축 및 전송에서 발생하는 병목 현상을 방지하고 지연 시간을 감소시킬 수 있다.
따라서 초고해상도의 미디어를 비교적 낮은 성능의 하드웨어를 이용하여 실시간으로 압축하여 전송할 수 있으므로, 우수한 비용 효과를 얻을 수 있다.
도 1은 다수의 코어를 갖는 CPU를 이용하여 미디어를 순차적으로 압축하는 방법을 개략적으로 나타내는 도면.
도 2는 DXT 압축 과정을 나타내는 도면.
도 3은 본 발명의 실시예에 따른 DXT 압축 및 전송 방법을 개략적으로 나타내는 도면.
도 4는 본 발명의 실시예에 따른 GPU를 이용한 DXT 압축 과정을 개략적으로 나타내는 도면.
도 2는 DXT 압축 과정을 나타내는 도면.
도 3은 본 발명의 실시예에 따른 DXT 압축 및 전송 방법을 개략적으로 나타내는 도면.
도 4는 본 발명의 실시예에 따른 GPU를 이용한 DXT 압축 과정을 개략적으로 나타내는 도면.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
먼저, 일반적인 DXT 압축 과정에 대해 설명한다.
DXT는 소프트웨어로 구현할 수 있는 압축 방법으로서, 각 프레임간의 참조 관계가 없으며, 각 프레임 내에서도 독립적인 4x4 픽셀 블록별로 압축을 실행한다. 따라서 DXT 압축 스트림을 네트워크를 통해 원격지로 전송할 경우에는 픽셀 블록 단위로 패킷을 만들어 전송할 수 있다. 또한, DXT 스트림을 수신한 노드에서는 별도의 압축 해제 처리를 하지 않고, DirectX 또는 OpenGL 등의 명령어를 사용하여 그래픽 카드의 하드웨어에서 직접 가속화된 압축 해제 및 렌더링(rendering)을 실행할 수 있다.
도 2에 DXT 압축 과정을 개략적으로 나타내었다. 도 2에 나타낸 바와 같이, 압축할 원본 이미지에서 4x4 픽셀 블록을 추출하고, 픽셀 블록의 16개 픽셀 중에서 최댓값(흰색에 가까운 색)과 최솟값(검은색에 가까운 색)을 찾아낸다. DXT 압축으로 표현되는 색 해상도는 16비트(High Color, R5G6B5)이므로, 24비트(R8G8B8) 색 해상도를 가지는 이미지는 16비트 색 해상도로 변환한다. 따라서 최댓값(Color 0)과 최솟값(Color 1)의 색 해상도를 변환(R5G6B5)하고 중간값 2개(Color 2, Color 3)를 연산한다. 픽셀 블록의 대푯값 4개를 기준으로 각 픽셀별로 가장 가까운 값을 선택하여 비트맵(인덱스)을 생성한다.
DXT 표준에 정의되어 있는 입력 데이터의 형식은 RGB이다. 하지만 최근에 사용하는 비디오카메라들은 전송 효율을 높이기 위해 RGB 형식의 데이터보다 크기가 절반 정도로 작은 YUV 형식을 사용한다. 따라서 비디오카메라에서 실시간으로 획득되는 스트림을 DXT로 압축하기 위해서는 색상의 형식에 대한 변환 처리가 필요하며, 이것은 DXT 압축만을 처리하는 경우에 비해서 추가적인 연산 자원과 시간이 요구된다.
다음으로, GPU를 활용한 연산 처리에 대해 설명한다. 본 실시예에서 GPU는 그래픽 처리뿐만 아니라 산술 연산도 가능한 GPGPU를 사용한다.
GPU 기반의 프로세서에서는 연산 처리가 수행되는 영역을 CPU 영역과 GPU 영역으로 구분할 수 있다. CPU 영역은 호스트인 CPU 프로세서 코어와 메모리를 포함하고, GPU 영역은 디바이스인 GPU 프로세서 코어와 메모리를 포함한다. GPU 기반의 연산 처리를 하기 위해서는 호스트 영역과 디바이스 영역간의 데이터 복사(메모리 복사)가 필요하다. 또한, CPU와 연산 특성이 다르므로 프로그램 코드를 GPU에서 사용할 수 있도록 변환하거나 구현해야 한다.
GPU 프로그래밍을 위한 응용 프로그램 인터페이스(API: Application Programming Interface)는 NVIDIA사의 CUDA(Compute Unified Device Architecture)와 AMD의 STREAM을 사용할 수 있고, 이종 컴퓨팅을 위한 표준인 OpenCL을 사용할 수도 있다. 본 실시예에서는 CUDA를 이용하지만, 이것만으로 본 발명이 제한되는 것은 아니다.
다음으로, 본 발명의 실시예에 따른 GPU를 이용한 미디어 압축 및 전송 방법에 대해 설명한다.
본 발명에서는 미디어를 프레임 단위로 하여 DXT 압축을 실행하는 종래 기술과는 달리, 미디어의 프레임을 다수의 슬라이스로 분할하고, 분할된 슬라이스 단위로 압축을 실행한다. 또한, 본 발명에서는 커널 실행과 메모리 복사를 중첩하여 실행함으로써, 파이프라이닝(pipelining) 구조의 처리를 구현할 수 있다. 여기서 커널(kernel)은 디바이스 영역에서 호스트 영역의 데이터를 연산 처리하기 위한 프로그램으로서, 호스트 영역에서 구성되어 디바이스 영역으로 넘겨주는 프로그램을 말한다.
도 3에 본 발명에 따른 DXT 압축 및 전송 방법을 개략적으로 나타내었다. 도 3에 나타낸 바와 같이, 먼저 비디오카메라에서 실시간으로 고해상도 미디어를 획득한다. 이때, 비디오카메라는 호스트 장치와 HDMI(High-Definition Multimedia Interface) 방식 등으로 연결할 수 있으며, 이를 위한 인터페이스 카드가 사용된다. 다음으로, 비디오카메라를 통해 획득된 미디어의 프레임을 다수의 GPU를 이용하여 DXT 압축을 실행한 후, 압축된 미디어를 네트워크 등을 통해 전송한다.
도 4에 GPU를 이용하여 DXT를 압축하는 과정을 개략적으로 나타내었다. 도 4에 나타낸 바와 같이, GPU의 연산 효율을 최대화하기 위해서 미디어 프레임을 적절한 개수의 슬라이스로 분할한다. 본 실시예에서는 미디어 프레임을 4개의 슬라이스로 분할한 경우를 예시하고 있지만, 분할 개수는 GPU의 사양 및 성능과, 처리하고자 하는 미디어의 해상도에 따라 결정된다.
즉, 미디어 압축 및 전송을 위한 장치에 설치된 GPU의 개수, GPU별 연산 유닛의 개수, 메모리 용량 등과 같은 사양과, 다른 응용 프로그램의 사용 여부 등을 파악하여, 가용한 자원을 확인한다. 이러한 가용한 자원의 양과 처리하고자 하는 미디어의 해상도를 고려하여 한 번에 실행할 수 있는 작업의 개수를 구한다. 필요한 경우에는, GPU를 사용하여 테스트 프로그램을 실행한 후, 연산 성능에 대한 프로파일을 구한다. 이러한 프로파일의 결과에 따라 최적의 분할 개수를 결정하게 된다. 제어의 편의성을 고려하면, 분할의 개수는 2의 배수로 하는 것이 바람직하다.
한편, GPU의 연산 효율을 최대화하기 위해서는, 분할된 프레임의 메모리 복사 시간과 커널의 실행 시간이 비슷할수록 효율이 높아진다. 프레임의 분할 기준을 명확히 하기 위해 호스트 영역과 디바이스 영역간의 메모리 복사 성능을 측정하여 적용할 수도 있다.
다음으로, 분할된 슬라이스 별로 메모리의 복사를 실행한다. 즉, 미디어의 데이터를 호스트 영역에서 디바이스 영역으로(H -> D) 복사한다. 이러한 메모리 복사 처리는 분할된 각 슬라이스 별로 각각의 GPU에 의해 병렬 처리된다.
다음으로, 분할된 슬라이스 별로, 상기 디바이스 영역에서 데이터를 압축한다. 본 실시예에서 데이터의 압축은 상기 설명한 DXT 압축 방법을 사용하여 압축한다. 이러한 압축 처리는 분할된 각 슬라이스 별로 각각의 GPU에 의해 병렬 처리된다.
한편, 이러한 압축 처리에 앞서, 상기 설명한 색상 변환 처리를 실행할 수도 있다. 즉, 비디오카메라로부터 YUV 형식의 데이터가 입력될 경우에는 RGB 형식의 데이터로 색상 변환을 실행한다.
다음으로, 분할된 슬라이스 별로 압축된 데이터를 디바이스 영역에서 호스트 영역으로(D -> H) 복사한다. 이러한 메모리 복사 처리도 분할된 각 슬라이스 별로 각각의 GPU에 의해 병렬 처리된다.
다음으로, 호스트 영역으로 복사된 미디어 압축 데이터를 네트워크 등을 통해 전송한다. 이때 분할된 슬라이스 별로 즉시 전송한다. 즉, 하나의 프레임의 압축이 완료될 때까지 기다리지 않고, 분할된 슬라이스 별로 압축한 미디어를 즉시 전송함으로써 전체 지연 시간을 감소시킬 수 있다.
미디어를 전송하는 노드와 수신하는 노드의 전송 지연이 일정하다고 가정한다면, 미디어를 압축하여 전송을 시작하기 전까지의 처리 시간에 따라 전체 지연시간이 결정된다. 다시 말해, 미디어 획득에서부터 목적지 노드에서 가시화되는 지연 시간을 최저로 하기 위해, 각각의 분할된 슬라이스 별로 DXT 압축이 완료된 즉시 데이터를 전송하는 것이 바람직하다. 하나의 프레임의 압축이 완료될 때까지 기다린다면, 전송 시점이 느려지게 될 뿐만 아니라 전송하는 데이터량도 많아져서 전송 지연 시간이 늘어나게 된다.
한편, 상기한 본 발명에 따른 미디어의 압축 및 전송 방법을 실행하기 위한 장치는 상기 호스트 영역을 구성하는 CPU 및 메모리와, 상기 디바이스 영역을 구성하는 GPU 및 메모리를 필수 구성요소로 하여 구현할 수 있다. 여기에 미디어를 획득하기 위한 비디오카메라, CPU와 GPU간의 데이터 통신을 위한 인터페이스 유닛이나 통신 라인, 디스플레이 장치, 전원 장치 등이 더 포함될 수 있다.
본 발명에 따른 미디어 압축 및 전송 방법의 성능을 평가하기 위해 입력 미디어별로 CPU와 GPU로 처리하는 데에 소요되는 시간을 비교하였다. 시험에 사용된 PC의 사양은 Intel Core2Quad Q9300, 2.5GHz Quad-core, GPU는 NVIDIA GTS 450 (192cores, 1.6 GHz, 1GB RAM)이다.
시험 결과, 종래의 CPU로 처리하는 경우에 비해 923%, GPU로 프레임을 분할하지 않고 처리하는 경우에 비해 약 28% 정도로 성능이 향상됨을 확인할 수 있었다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (7)
- 그래픽 처리 유닛(GPU)을 기반으로 하는 미디어의 압축 및 전송 방법에 있어서,
상기 그래픽 처리 유닛(GPU)의 개수, 상기 그래픽 처리 유닛(GPU)의 연산 유닛의 개수, 메모리 용량, 및 다른 응용 프로그램의 사용 여부에 기초하여 상기 그래픽 처리 유닛의 가용한 자원을 확인하는 단계;
테스트 프로그램을 실행하여 상기 그래픽 처리 유닛의 연산 성능에 대한 프로파일을 구하는 단계와,
상기 그래픽 처리 유닛의 연산 성능에 대한 프로파일과, 상기 가용한 자원과, 처리하고자 하는 미디어의 해상도에 근거하여, 상기 미디어의 프레임을 다수의 슬라이스로 분할하는 분할 단계와,
상기 분할된 슬라이스 별로, 상기 미디어의 데이터를 주처리 유닛(CPU) 측의 호스트 영역에서 상기 그래픽 처리 유닛(GPU) 측의 디바이스 영역으로 복사하는 1차 메모리 복사 단계와,
상기 분할된 슬라이스 별로, 상기 복사된 데이터를 상기 디바이스 영역에서 압축하는 압축 단계와,
상기 분할된 슬라이스 별로, 상기 압축된 데이터를 상기 디바이스 영역에서 상기 호스트 영역으로 복사하는 2차 메모리 복사 단계와,
상기 호스트 영역으로 복사가 완료된 데이터를 통신 수단을 통해 목적지로 전송하는 전송 단계를 포함하는 것을 특징으로 하는 미디어의 압축 및 전송 방법. - 제1항에 있어서,
상기 압축 단계 전에, 상기 분할된 슬라이스 별로, 상기 데이터의 색상의 형식을 변환하는 색상 변환 단계를 더 포함하는 것을 특징으로 하는 미디어의 압축 및 전송 방법. - 제1항에 있어서,
상기 전송 단계에서는, 상기 분할된 슬라이스 별로, 상기 압축이 완료된 데이터를 즉시 전송하는 것을 특징으로 하는 미디어의 압축 및 전송 방법. - 제1항에 있어서,
상기 압축 단계에서는 DXT(DirectX Texture) 압축 방법에 의해 압축을 실행하는 것을 특징으로 하는 미디어의 압축 및 전송 방법. - 제1항에 있어서,
상기 그래픽 처리 유닛(GPU)은 범용 그래픽 처리 유닛(General-Purpose computing on Graphics Processing Units, GPGPU)인 것을 특징으로 하는 미디어의 압축 및 전송 방법. - 제1항에 있어서,
상기 그래픽 처리 유닛(GPU)의 프로그래밍을 위한 응용 프로그램 인터페이스(API)는 CUDA(Compute Unified Device Architecture)를 사용하는 것을 특징으로 하는 미디어의 압축 및 전송 방법. - 제1항 내지 제6항 중 어느 한 항에 기재된 미디어의 압축 및 전송 방법을 실행하는 장치에 있어서,
상기 미디어를 획득하는 비디오카메라와,
상기 호스트 영역을 구성하는 주처리 유닛(CPU) 및 메모리와,
상기 디바이스 영역을 구성하는 그래픽 처리 유닛(GPU) 및 메모리를 포함하는 것을 특징으로 하는 미디어의 압축 및 전송 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110140647A KR101284559B1 (ko) | 2011-12-22 | 2011-12-22 | 그래픽 처리 유닛 기반의 미디어 압축 및 전송 방법과 이를 실행하는 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110140647A KR101284559B1 (ko) | 2011-12-22 | 2011-12-22 | 그래픽 처리 유닛 기반의 미디어 압축 및 전송 방법과 이를 실행하는 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130072992A KR20130072992A (ko) | 2013-07-02 |
KR101284559B1 true KR101284559B1 (ko) | 2013-07-11 |
Family
ID=48987537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110140647A KR101284559B1 (ko) | 2011-12-22 | 2011-12-22 | 그래픽 처리 유닛 기반의 미디어 압축 및 전송 방법과 이를 실행하는 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101284559B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100801967B1 (ko) | 2006-07-07 | 2008-02-12 | 광주과학기술원 | 문맥 기반 적응적 가변 길이 부호화 인코더 및 디코더,문맥 기반 적응성 가변 길이 부호화하는 방법과 복호화하는방법 및 이를 이용한 동영상 전송 시스템. |
JP2011515880A (ja) | 2008-03-28 | 2011-05-19 | シャープ株式会社 | 動画像の並列的な符号化および復号のための方法、装置、および、システム |
KR101038531B1 (ko) | 2009-06-25 | 2011-06-02 | 한양대학교 산학협력단 | 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법 |
-
2011
- 2011-12-22 KR KR1020110140647A patent/KR101284559B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100801967B1 (ko) | 2006-07-07 | 2008-02-12 | 광주과학기술원 | 문맥 기반 적응적 가변 길이 부호화 인코더 및 디코더,문맥 기반 적응성 가변 길이 부호화하는 방법과 복호화하는방법 및 이를 이용한 동영상 전송 시스템. |
JP2011515880A (ja) | 2008-03-28 | 2011-05-19 | シャープ株式会社 | 動画像の並列的な符号化および復号のための方法、装置、および、システム |
KR101038531B1 (ko) | 2009-06-25 | 2011-06-02 | 한양대학교 산학협력단 | 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법 |
Non-Patent Citations (2)
Title |
---|
김남곤 , 김종원 , ‘4K 초고해상도 미디어 전송을 위한 GPU 기반 실시간 DXT 압축 모듈 설계’, 2011 가을 학술발표논문집 Vol.38, No.2(D), 2011.11. Pages 244-246* |
김남곤 , 김종원 , '4K 초고해상도 미디어 전송을 위한 GPU 기반 실시간 DXT 압축 모듈 설계', 2011 가을 학술발표논문집 Vol.38, No.2(D), 2011.11. Pages 244-246 * |
Also Published As
Publication number | Publication date |
---|---|
KR20130072992A (ko) | 2013-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108206937B (zh) | 一种提升智能分析性能的方法和装置 | |
US9148669B2 (en) | High performance AVC encoder on a multi-core platform | |
US20140092439A1 (en) | Encoding images using a 3d mesh of polygons and corresponding textures | |
US10200707B2 (en) | Video bit stream decoding | |
CN107404654B (zh) | 一种jpeg图像解压缩方法、装置及平台 | |
US20240212650A1 (en) | Wireless programmable media processing system | |
US10805622B2 (en) | High efficiency video coding method and apparatus, and computer-readable storage medium | |
CN114567784B (zh) | 一种用于飞腾显卡的vpu视频解码输出方法及*** | |
CN110740352B (zh) | 显卡透传环境下基于spice协议的差异图像显示方法 | |
US20120218292A1 (en) | System and method for multistage optimized jpeg output | |
US11284096B2 (en) | Methods and apparatus for decoding video using re-ordered motion vector buffer | |
WO2016016607A1 (en) | Managing display data for display | |
CN115225881A (zh) | 一种数据传输方法、装置、设备和存储介质 | |
KR101284559B1 (ko) | 그래픽 처리 유닛 기반의 미디어 압축 및 전송 방법과 이를 실행하는 장치 | |
US11032345B2 (en) | Client side data stream processing | |
US20140189298A1 (en) | Configurable ring network | |
US9998745B2 (en) | Transforming video bit streams for parallel processing | |
US20230269375A1 (en) | Method and apparatus for multi-adapter execution of look ahead video encoding | |
US20240144537A1 (en) | Data processing method and system, and electronic device | |
WO2023102868A1 (en) | Enhanced architecture for deep learning-based video processing | |
CN117714789A (zh) | 一种基于嵌入式gpu级联的4k超高清直播方法及*** | |
WO2015100956A1 (zh) | 异构集群中实现x264编码加速的方法、***及计算节点、存储介质 | |
CN117981310A (zh) | 用于多内核图像编码的***和方法 | |
CN116489132A (zh) | 虚拟桌面数据传输方法、服务器、客户端和存储介质 | |
CN117938823A (zh) | 云游戏画面分享方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160712 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170629 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |