KR102316495B1 - 실시간 분할 영상 트랜스코딩 장치 및 방법 - Google Patents
실시간 분할 영상 트랜스코딩 장치 및 방법 Download PDFInfo
- Publication number
- KR102316495B1 KR102316495B1 KR1020190041176A KR20190041176A KR102316495B1 KR 102316495 B1 KR102316495 B1 KR 102316495B1 KR 1020190041176 A KR1020190041176 A KR 1020190041176A KR 20190041176 A KR20190041176 A KR 20190041176A KR 102316495 B1 KR102316495 B1 KR 102316495B1
- Authority
- KR
- South Korea
- Prior art keywords
- video stream
- gpu
- tile
- task
- resolution
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/176—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 block, e.g. a macroblock
-
- 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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- 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
- H04N19/436—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 using parallelised computational arrangements
-
- 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/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 실시간 분할 영상 트랜스코딩 장치 및 방법이 개시된다. 본 발명의 분할 영상 트랜스코딩 장치는 원본 비디오 스트림(video stream)을 입력받는 입력부 및 입력된 원본 비디오 스트림을 공간 분할하여 타일을 생성하고, 생성된 타일의 프레임(Tiled frame)을 복수의 GPU(Graphics Processing Unit)를 이용하여 병렬구조로 인코딩하고, 인코딩된 프레임을 재배열하여 제1 해상도를 가지는 제1 비디오 스트림, 제1 해상도보다 낮은 해상도인 제2 해상도를 가지는 제2 비디오 스트림 및 제2 해상도보다 낮은 해상도인 제3 해상도를 가지는 제3 비디오 스트림을 생성하는 제어부를 포함한다.
Description
본 발명은 트랜스코딩 기술에 관한 것으로, 더욱 상세하게는 복수의 GPU(Graphics Processing Unit)를 이용하여 실시간으로 타일을 고품질로 트랜스코딩하는 실시간 분할 영상 트랜스코딩 장치 및 방법에 관한 것이다.
최근 다양한 고품질의 영상들이 사용자에게 제공되고 있으며, 그 중에서 360 VR 영상은 스테리오(stereo)로 구성되어 일반적인 4K 영상(3840×2160)보다 더욱 큰 해상도(4096×4096 이상)를 요구한다. 즉 360 VR 영상은 2D 영상과 달리 360°에 해당하는 영상을 스트리밍하기 때문에 평면 영상을 나타내는 2D 영상보다 많은 대역폭을 필요로 한다.
한편 360 VR 영상은 많은 대역폭의 필요성뿐만 아니라 영상의 특성상 영상 시청자가 영상 전체를 한 번에 보는 것이 아니고, 영상의 일부만을 보기 때문에 현재 화면에 보이지 않는 영역을 고품질로 전송하면 대역폭을 낭비하는 문제를 가지고 있다. 이에 이러한 문제를 해결하기 위해 다양한 연구를 하였으나, 대역폭을 낭비하지 않으면서 효과적으로 360 VR 영상을 스트리밍하는 기술이 개발되지는 못하였다.
본 발명이 이루고자 하는 기술적 과제는 원본 비디오 스트림(video stream)을 공간 분할하고, 분할된 타일을 실시간으로 트랜스코딩하는 실시간 분할 영상 트랜스코딩 장치 및 방법을 제공하는데 목적이 있다.
상기 목적을 달성하기 위해 본 발명의 실시간 분할 영상 트랜스코딩 장치는 원본 비디오 스트림(video stream)을 입력받는 입력부 및 상기 입력된 원본 비디오 스트림을 공간 분할하여 타일을 생성하고, 상기 생성된 타일 프레임(Tiled frame)을 복수의 GPU(Graphics Processing Unit)를 이용하여 병렬구조로 인코딩하고, 상기 인코딩된 타일 프레임을 동기화하고, 재배열하여 제1 해상도를 가지는 원본 비디오 스트림에 대한 타일 프레임인 제1 비디오 스트림, 제1 해상도보다 낮은 해상도인 제2 해상도를 가지는 원본 비디오 스트림에 대한 타일 프레임인 제2 비디오 스트림 및 제2 해상도보다 낮은 해상도인 제3 해상도를 가지는 원본 비디오 스트림에 대한 타일 프레임인 제3 비디오 스트림을 생성하는 제어부를 포함한다.
또한 상기 제어부는, 상기 원본 비디오 스트림을 기 설정된 개수의 타일로 분할하여 타일 프레임을 생성하는 영상 공간 분할부, 상기 생성된 타일의 프레임과 관련된 작업량을 산출하고, 상기 산출된 작업량에 따라 상기 복수의 GPU에 작업을 할당하는 GPU 작업 관리부, 상기 복수의 GPU를 병렬구조로 구비하고, 각 GPU마다 할당된 작업에 대한 타일 프레임의 인코딩을 수행하는 GPU부 및 상기 인코딩된 타일 프레임을 동기화하고, 상기 동기화된 타일 프레임을 재배열하여 상기 제1 비디오 스트림, 상기 제2 비디오 스트림 및 상기 제3 비디오 스트림을 각각 생성하는 비디오 후처리부를 포함하는 것을 특징으로 한다.
또한 상기 영상 공간 분할부는, 상기 타일의 가로와 세로의 픽셀 수가 128배수로 분할하는 것을 특징으로 한다.
또한 상기 영상 공간 분할부는, 상기 타일 중 하단 마지막 가로의 타일과 우측 마지막 세로의 타일의 경우, 픽셀 수에 제한을 두지 않는 것을 특징으로 한다.
또한 상기 GPU 작업 관리부는, 각 GPU의 평균 작업 완료 시간 및 할당된 작업 큐(queue)의 크기에 따라 상기 작업을 할당하는 것을 특징으로 한다.
또한 상기 GPU 작업 관리부는, 각 GPU의 작업 종류에 따른 평균 작업 시간을 기준으로 각 GPU의 작업 완료 시간을 예상하여 상기 작업을 할당하는 것을 특징으로 한다.
또한 상기 GPU 작업 관리부는, 각 작업을 GOP(Group of Pictures) 사이즈 만큼 타일의 프레임을 GPU에 순차 복사하는 것을 특징으로 한다.
또한 상기 GPU 작업 관리부는, 상기 작업과 관련된 정보를 각 GPU에 전달할 때 프레임 번호 정보를 더 포함하여 전달하는 것을 특징으로 한다.
또한 상기 비디오 후처리부는, 상기 제1 비디오 스트림, 상기 제2 비디오 스트림 및 상기 제3 비디오 스트림에 해당하는 각각의 멀티플렉서를 포함하는 것을 특징으로 한다.
본 발명에 따른 실시간 타일 트랜스코딩 방법은 분할 영상 트랜스코딩 장치가 원본 비디오 스트림을 입력받는 단계, 상기 분할 영상 트랜스코딩 장치가 상기 입력된 원본 비디오 스트림을 공간 분할하여 타일을 생성하는 단계, 상기 분할 영상 트랜스코딩 장치가 상기 생성된 타일의 프레임을 복수의 GPU를 이용하여 병렬구조로 인코딩하는 단계 및 상기 분할 영상 트랜스코딩 장치가 상기 인코딩된 프레임을 재배열하여 제1 해상도를 가지는 제1 비디오 스트림, 제1 해상도보다 낮은 해상도인 제2 해상도를 가지는 제2 비디오 스트림 및 제2 해상도보다 낮은 해상도인 제3 해상도를 가지는 제3 비디오 스트림을 생성하는 단계를 포함한다.
본 발명의 실시간 분할 영상 트랜스코딩 장치 및 방법은 원본 비디오 스트림을 공간 분할하고, 분할된 타일을 복수의 GPU를 통해 병렬구조로 트랜스코딩할 수 있다.
이때 각 GPU의 평균 작업 완료 시간 및 할당된 작업 큐(queue)의 크기에 따라 복수의 GPU에 작업을 할당함으로써, 빠른 연산을 수행하여 실시간으로 고품질의 비디오 스트림을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 분할 영상 트랜스코딩 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 실시예에 따른 분할 영상 트랜스코딩 장치가 구동되는 전체 과정을 설명하기 위한 개략도이다.
도 3은 본 발명의 실시예에 따른 작업 관리 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 작업 할당을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 후처리 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 분할 영상 트랜스코딩 방법을 설명하기 위한 순서도이다.
도 2는 본 발명의 실시예에 따른 분할 영상 트랜스코딩 장치가 구동되는 전체 과정을 설명하기 위한 개략도이다.
도 3은 본 발명의 실시예에 따른 작업 관리 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 작업 할당을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 후처리 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 분할 영상 트랜스코딩 방법을 설명하기 위한 순서도이다.
이하 본 발명의 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의한다. 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 당업자에게 자명하거나 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 분할 영상 트랜스코딩 장치를 설명하기 위한 블록도이고, 도 2는 본 발명의 실시예에 따른 분할 영상 트랜스코딩 장치가 구동되는 전체 과정을 설명하기 위한 개략도이다.
도 1 및 도 2를 참조하면, 분할 영상 트랜스코딩 장치(100)는 원본 비디오 스트림을 공간 분할하고, 분할된 타일을 실시간으로 트랜스코딩한다. 분할 영상 트랜스코딩 장치(100)는 입력부(10) 및 제어부(30)를 포함한다.
입력부(10)는 원본 비디오 스트림을 입력받는다. 입력부(10)는 파일, 네트워크, API(Application Program Interface) 등 다양한 방식으로 원본 비디오 스트림을 입력받을 수 있다. 여기서 원본 비디오 스트림은 4K 스테레오(stereo)이면서 4096×4096px 이상인 고화질 영상 스트림일 수 있으며, H.264 포맷, HEVC(High Efficiency Video Coding) 포맷, YUV420 로우 프레임(raw frame) 포맷, RGB 로우 프레임 포맷 등을 지원할 수 있다.
제어부(30)는 입력부(10)로부터 입력된 원본 비디오 스트림을 공간 분할하여 타일을 생성한다. 제어부(30)는 생성된 타일의 프레임(Tiled frame)을 복수의 GPU를 이용하여 병렬구조로 인코딩한다. 제어부(30)는 인코딩된 프레임을 재배열하여 제1 해상도를 가지는 제1 비디오 스트림, 제1 해상도보다 낮은 해상도인 제2 해상도를 가지는 제2 비디오 스트림 및 제2 해상도보다 낮은 해상도인 제3 해상도를 가지는 제3 비디오 스트림을 생성한다. 여기서 제1 해상도는 고품질(high quality, HQ)의 고해상도를 의미하고, 제2 해상도는 중품질(middle quality, MQ)의 일반 해상도를 의미하며, 제3 해상도는 저품질(low quality, LQ)의 저해상도를 의미할 수 있다. 제어부(30)는 영상 공간 분할부(31), GPU 작업 관리부(33), GPU부(35) 및 비디오 후처리부(37)를 포함한다.
영상 공간 분할부(31)는 원본 비디오 스트림을 기 설정된 개수의 타일로 분할하여 타일을 생성한다. 영상 공간 분할부(31)는 가로(row)와 세로(column)의 개수가 짝수가 되도록 원본 비디오 스트림을 타일로 분할한다. 예를 들어 영상 공간 분할부(31)는 가로 및 세로를 6×6, 6×8, 8×8, 8×12, 12×12 등으로 분할할 수 있다. 또한 영상 공간 분할부(31)는 각 타일의 세로와 가로의 픽셀 수가 128배수로 분할한다. 예를 들어 영상 공간 분할부(31)는 가로 및 세로를 256×256, 256×512, 512×512 등으로 분할할 수 있다. 이때 영상 공간 분할부(31)는 타일 중 하단 마지막 가로의 타일과 우측 마지막 세로의 타일의 경우, 픽셀 수의 제한을 두지 않을 수 있다. 이를 통해 영상 공간 분할부(31)는 융통성 있게 영상을 복수의 타일로 분할할 수 있다. 한편 영상 공간 분할부(31)는 원본 비디오 스트림에 대해서 논리적인 분할만 수행할뿐 데이터 이동을 수행하지 않는다.
GPU 작업 관리부(33)는 영상 공간 분할부(31)로부터 생성된 타일의 프레임과 관련된 작업량을 산출한다. GPU 작업 관리부(33)는 산출된 작업량에 따라 복수의 GPU에 작업을 할당한다. 여기서 작업은 GPU를 통해 수행되는 인코딩 작업을 의미할 수 있다. 예를 들어 GPU 작업 관리부(33)는 각 GPU의 평균 작업 완료 시간 및 할당된 작업 큐의 크기에 따라 작업을 할당할 수 있다. 또한 GPU 작업 관리부(33)는 각 GPU의 작업 종류에 따른 평균 작업 시간을 기준으로 각 GPU의 작업 완료 시간을 예상하여 작업을 할당할 수 있다.
GPU부(35)는 복수의 GPU를 포함한다. 예를 들어 GPU부(35)는 제1 GPU, 제2 GPU 내지 제n GPU를 포함할 수 있다. 바람직하게는 GPU부(35)는 동일한 스펙의 GPU를 포함하여 각 GPU 간의 호환이 원활하게 이루어질 수 있도록 할 수 있으나, 이에 한정하지 않고 수행되는 환경에 따라 서로 다른 스펙의 GPU를 포함할 수 있다. GPU부(35)는 복수의 GPU를 병렬구조로 가지고, 각각의 GPU에서 GPU 작업 관리부(33)로부터 할당된 작업에 대한 비디오 스트림의 인코딩을 수행한다.
비디오 후처리부(37)는 GPU부(35)로부터 인코딩된 비디오 스트림을 동기화하고, 동기화된 비디오 스트림을 재배열한다. 비디오 후처리부(37)는 재배열을 통해 제1 비디오 스트림, 제2 비디오 스트림 및 제3 비디오 스트림을 생성한다. 이때 비디오 후처리부(37)는 제1 비디오 스트림, 제2 비디오 스트림 및 제3 비디오 스트림에 해당하는 각각의 멀티플렉서(multiplexer)를 구비할 수 있다.
도 3은 본 발명의 실시예에 따른 작업 관리 과정을 설명하기 위한 도면이고, 도 4는 본 발명의 실시예에 따른 작업 할당을 설명하기 위한 도면이다. 도 4(a)은 각 GPU별 기존 작업 버퍼 상태를 나타낸 도면이고, 도 4(b)은 새로운 작업을 나타낸 도면이며, 도 4(c)은 각 GPU별 새로운 작업이 할당된 버퍼 상태를 나타낸 도면이다.
도 2 내지 도 4를 참조하면, GPU 작업 관리부(33)는 프레임 버퍼(frame buffer)(51), 작업 큐 로더(work queue loader)(53) 및 로드 밸런서(load balancer)(55)를 포함한다.
프레임 버퍼(51)는 영상 공간 분할부(31)로부터 논리적으로 분할되어 생성된 타일의 프레임(Tiled frame)을 저장한다. 이때 프레임 버퍼(51)는 타일의 프레임을 작업 큐 로더(53)에 전달하기 전에 일시적으로 저장하는 기능을 가진다.
작업 큐 로더(53)는 프레임 버퍼(51)로부터 저장된 타일의 프레임과 관련된 작업량을 산출하고, 산출된 작업량에 따라 GPU부(35)에 작업을 할당한다. 작업 큐 로더(53)는 각 GPU의 작업 종류(HQ/MQ/LQ)에 따른 평균 작업 시간을 기준으로 각 GPU의 작업 완료 시간을 예상하여 작업을 할당할 수 있다. 여기서 작업 큐 로더(53)는 하나의 타일의 프레임에 대한 HQ/MQ 두 개의 작업 명령 및 전체 프레임에 대한 LQ 작업 명령을 생성할 수 있다.
상세하게는 작업 큐 로더(53)는 각 GPU의 평균 작업 완료 시간 및 할당된 작업 큐의 크기를 산출하고, 산출된 정보를 이용하여 각 GPU에 작업을 할당한다. 예를 들어 작업 큐 로더(53)는 새로운 타일의 프레임이 입력되면 각 GPU별 예상되는 평균 작업 시간을 업데이트한다. 이때 작업 큐 로더(53)는 업데이트 정보를 로드 밸런서(55)로부터 수신한다. 작업 큐 로더(53)는 작업 시간에 따라 오름차순으로 정렬을 수행하고, 가장 작업 완료시간이 빠른 GPU에 새롭게 입력된 타일의 프레임을 할당한다. 작업 큐 로더(53)는 할당한 후에도 남은 타일이 존재하는 경우, 상술된 과정을 재수행하여 남은 타일에 대한 작업 할당을 수행한다.
작업 큐 로더(53)는 GPU부(35)에 작업 할당뿐만 아니라 타일의 프레임을 해당 GPU에 복사할 수 있다. 이때 작업 큐 로더(53)는 각 작업을 GOP(Group of Pictures) 사이즈 만큼 타일의 프레임을 GPU에 순차 복사할 수 있다.
또한 작업 큐 로더(53)는 작업과 관련된 정보를 GPU에 전달할 때 프레임 번호 정보를 더 포함하여 전달할 수 있다. 여기서 프레임 번호 정보는 시간 정보를 의미한다.
로드 밸런서(55)는 GPU부(35)로부터 각 GPU의 현재 진행 중인 작업 상태를 수신한다. 로드 밸런서(55)는 수신된 정보를 이용하여 각 GPU의 작업 종류에 따른 평균 작업 시간을 산출한다. 로드 밸런서(55)는 산출된 평균 작업 시간을 작업 큐 로더(53)로 전송하여 작업 큐 로더(53)가 해당 정보를 이용하여 작업 할당을 할 수 있도록 지원한다.
도 5는 본 발명의 실시예에 따른 후처리 과정을 설명하기 위한 도면이다.
도 2 및 도 5를 참조하면, 비디오 후처리부(37)는 비디오 동기화부(video synchronizer)(71) 및 멀티플렉서부(multiplexer)(73)를 포함한다.
비디오 동기화부(71)는 GPU부(35)로부터 인코딩된 비디오 스트림을 동기화한다. 여기서 인코딩된 비디오 스트림은 로드 밸런싱(load balancing)에 의해 순차적으로 생성되지 않을 수 있다. 비디오 동기화부(71)는 인코딩된 결과를 우선적으로 수신하고, 타일 ID별로 버퍼에 저장한다. 이를 통해 비디오 동기화부(71)는 동일한 프레임 타임(frame time)에 대한 타일이 모두 인코딩되면 해당 프레임을 멀티플렉서부(73)로 전달한다.
멀티플렉서부(73)는 비디오 동기화부(71)로부터 전달된 프레임을 재배열하여 하나의 미디어 콘테이너(media container)로 구성한다. 여기서 미디어 콘테이너는 MP4 또는 TS 형태일 수 있다. MP4는 기 설정에 따른 일정 단위 시간(3sec, 5sec 등)만큼의 프레임을 모아 파일/네트워크/API를 통해 전달하고, TS는 하나의 프레임 타임에 대한 작업이 완료되면 곧바로 파일/네트워크/API를 통해 전달한다. 또한 멀티플렉서부(73)는 제1 해상도를 가지는 제1 비디오 스트림, 제1 해상도보다 낮은 해상도인 제2 해상도를 가지는 제2 비디오 스트림 및 제2 해상도보다 낮은 해상도인 제3 해상도를 가지는 제3 비디오 스트림을 생성한다. 이를 위해 멀티플렉서부(73)는 제1 비디오 스트림, 제2 비디오 스트림 및 제3 비디오 스트림에 해당하는 각각의 멀티플렉서(91, 93, 95)를 포함한다. 여기서 제1 해상도는 고품질의 고해상도를 의미하고, 제2 해상도는 중품질의 일반 해상도를 의미하며, 제3 해상도는 저품질의 저해상도를 의미할 수 있다.
도 6은 본 발명의 실시예에 따른 분할 영상 트랜스코딩 방법을 설명하기 위한 순서도이다.
도 1 및 도 6을 참조하면, 분할 영상 트랜스코딩 방법은 원본 비디오 스트림을 공간 분할하고, 분할된 타일을 복수의 GPU를 통해 병렬구조로 트랜스코딩한다. 이때 분할 영상 트랜스코딩 방법은 각 GPU의 평균 작업 완료 시간 및 할당된 작업 큐의 크기에 따라 복수의 GPU에 작업을 할당함으로써, 빠른 연산을 수행하여 실시간으로 고품질의 비디오 스트림을 제공할 수 있다.
S110단계에서, 분할 영상 트랜스코딩 장치(100)는 원본 비디오 스트림을 입력받는다. 분할 영상 트랜스코딩 장치(100)는 파일, 네트워크, API(Application Program Interface) 등 다양한 방식으로 원본 비디오 스트림을 입력받는다. 여기서 원본 비디오 스트림은 4K 스테레오(stereo)이면서 4096×4096px 이상인 고화질 영상 스트림일 수 있으며, H.264 포맷, HEVC(High Efficiency Video Coding) 포맷, YUV420 로우 프레임(raw frame) 포맷, RGB 로우 프레임 포맷 등을 지원할 수 있다.
S130단계에서, 분할 영상 트랜스코딩 장치(100)는 입력된 원본 비디오 스트림을 공간 분할하여 타일을 생성한다. 분할 영상 트랜스코딩 장치(100)는 원본 비디오 스트림을 기 설정된 개수의 타일로 분할하여 타일을 생성한다. 분할 영상 트랜스코딩 장치(100)는 가로와 세로의 개수가 짝수가 되도록 원본 비디오 스트림을 타일로 분할하고, 각 타일의 세로와 가로의 픽셀 수가 128배수로 분할할 수 있다. 이때 분할 영상 트랜스코딩 장치(100)는 타일 중 하단 마지막 가로의 타일과 우측 마지막 세로의 타일의 경우, 픽셀 수의 제한을 두지 않을 수 있다.
S150단계에서, 분할 영상 트랜스코딩 장치(100)는 생성된 타일의 프레임을 복수의 GPU를 이용하여 병렬구조로 인코딩한다. 분할 영상 트랜스코딩 장치(100)는 생성된 타일의 프레임과 관련된 작업량을 산출하고, 산출된 작업량에 따라 복수의 GPU에 작업을 할당하여 인코딩을 수행한다. 이를 통해 분할 영상 트랜스코딩 장치(100)는 GPU의 작업 진행 상태에 맞도록 최적화된 인코딩을 병렬구조로 수행할 수 있다.
S170단계에서, 분할 영상 트랜스코딩 장치(100)는 인코딩된 프레임을 재배열한다. 분할 영상 트랜스코딩 장치(100)는 인코딩된 비디오 스트림을 동기화하고, 동기화된 비디오 스트림을 재배열할 수 있다. 이때 분할 영상 트랜스 코딩 장치(100)는 제1 해상도를 가지는 제1 비디오 스트림, 제1 해상도보다 낮은 해상도인 제2 해상도를 가지는 제2 비디오 스트림 및 제2 해상도보다 낮은 해상도인 제3 해상도를 가지는 제3 비디오 스트림을 생성한다. 여기서 제1 해상도는 고품질의 고해상도를 의미하고, 제2 해상도는 중품질의 일반 해상도를 의미하며, 제3 해상도는 저품질의 저해상도를 의미할 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
10: 입력부
30: 제어부
31: 영상 공간 분할부
33: GPU 작업 관리부
35: GPU부
37: 비디오 후처리부
51: 프레임 버퍼
53: 작업 큐 로더
55: 로드 밸런서
71: 비디오 동기화부
73: 멀티플렉서부
91: 제1 멀티플렉서
93: 제2 멀티플렉서
95: 제3 멀리플렉서
100: 분할 영상 트랜스코딩 장치
30: 제어부
31: 영상 공간 분할부
33: GPU 작업 관리부
35: GPU부
37: 비디오 후처리부
51: 프레임 버퍼
53: 작업 큐 로더
55: 로드 밸런서
71: 비디오 동기화부
73: 멀티플렉서부
91: 제1 멀티플렉서
93: 제2 멀티플렉서
95: 제3 멀리플렉서
100: 분할 영상 트랜스코딩 장치
Claims (10)
- 원본 비디오 스트림(video stream)을 입력받는 입력부; 및
상기 입력된 원본 비디오 스트림을 공간 분할하여 타일을 생성하고, 상기 생성된 타일 프레임(Tiled frame)을 복수의 GPU(Graphics Processing Unit)를 이용하여 병렬구조로 인코딩하고, 상기 인코딩된 타일 프레임을 동기화하고, 재배열하여 제1 해상도를 가지는 원본 비디오 스트림에 대한 타일 프레임인 제1 비디오 스트림, 제1 해상도보다 낮은 해상도인 제2 해상도를 가지는 원본 비디오 스트림에 대한 타일 프레임인 제2 비디오 스트림 및 제2 해상도보다 낮은 해상도인 제3 해상도를 가지는 원본 비디오 스트림에 대한 타일 프레임인 제3 비디오 스트림을 생성하는 제어부;를 포함하되,
상기 제어부는,
상기 원본 비디오 스트림을 기 설정된 개수의 타일로 분할하여 타일 프레임을 생성하는 영상 공간 분할부;
상기 생성된 타일 프레임과 관련된 작업량을 산출하고, 상기 산출된 작업량에 따라 상기 복수의 GPU에 작업을 할당하는 GPU 작업 관리부;
상기 복수의 GPU를 병렬구조로 구비하고, 각 GPU마다 할당된 작업에 대한 타일 프레임의 인코딩을 수행하는 GPU부; 및
상기 인코딩된 타일 프레임을 동기화하고, 상기 동기화된 타일 프레임을 재배열하여 상기 제1 비디오 스트림, 상기 제2 비디오 스트림 및 상기 제3 비디오 스트림을 각각 생성하는 비디오 후처리부;를 포함하고,
상기 GPU 작업 관리부는,
새로운 타일 프레임이 입력되면 각 GPU의 작업 종류에 따른 평균 작업 시간을 기준으로 GPU별 작업 완료 시간을 업데이트하고, 상기 작업 완료 시간을 오름차순으로 정렬하며, 상기 정렬된 작업 완료 시간 중 가장 작업 완료 시간이 빠른 GPU에 상기 새로운 타일 프레임을 할당하고, 상기 새로운 타일 프레임을 할당한 후에도 남은 타일이 존재하는 경우, 상기 할당하는 과정을 반복 수행하는 것을 특징으로 하는 실시간 분할 영상 트랜스코딩 장치. - 삭제
- 제 1항에 있어서,
상기 영상 공간 분할부는,
상기 타일의 가로와 세로의 픽셀 수가 128배수로 분할하는 것을 특징으로 하는 실시간 분할 영상 트랜스코딩 장치. - 제 1항에 있어서,
상기 영상 공간 분할부는,
상기 타일 중 하단 마지막 가로의 타일과 우측 마지막 세로의 타일의 경우, 픽셀 수에 제한을 두지 않는 것을 특징으로 하는 실시간 분할 영상 트랜스코딩 장치. - 삭제
- 삭제
- 제 1항에 있어서,
상기 GPU 작업 관리부는,
각 작업을 GOP(Group of Pictures) 사이즈만큼 타일 프레임을 GPU에 순차 복사하는 것을 특징으로 하는 실시간 분할 영상 트랜스코딩 장치. - 제 1항에 있어서,
상기 GPU 작업 관리부는,
상기 작업과 관련된 정보를 각 GPU에 전달할 때 타일 프레임 번호 정보를 더 포함하여 전달하는 것을 특징으로 하는 실시간 분할 영상 트랜스코딩 장치. - 제 1항에 있어서,
상기 비디오 후처리부는
상기 제1 비디오 스트림, 상기 제2 비디오 스트림 및 상기 제3 비디오 스트림에 해당하는 각각의 멀티플렉서를 포함하는 것을 특징으로 하는 실시간 분할 영상 트랜스코딩 장치. - 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190041176A KR102316495B1 (ko) | 2019-04-09 | 2019-04-09 | 실시간 분할 영상 트랜스코딩 장치 및 방법 |
PCT/KR2019/005776 WO2020209437A1 (ko) | 2019-04-09 | 2019-05-14 | 실시간 분할 영상 트랜스코딩 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190041176A KR102316495B1 (ko) | 2019-04-09 | 2019-04-09 | 실시간 분할 영상 트랜스코딩 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200119435A KR20200119435A (ko) | 2020-10-20 |
KR102316495B1 true KR102316495B1 (ko) | 2021-10-25 |
Family
ID=72750743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190041176A KR102316495B1 (ko) | 2019-04-09 | 2019-04-09 | 실시간 분할 영상 트랜스코딩 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102316495B1 (ko) |
WO (1) | WO2020209437A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102577210B1 (ko) * | 2020-11-12 | 2023-09-18 | 주식회사 네트워크디파인즈 | 적응형 미디어 편집 방법 및 장치 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8966556B2 (en) * | 2009-03-06 | 2015-02-24 | Alcatel Lucent | Real-time multi-media streaming bandwidth management |
US9338467B1 (en) * | 2010-07-19 | 2016-05-10 | Google Inc. | Parallel video transcoding |
KR101166085B1 (ko) * | 2010-12-17 | 2012-07-23 | 주식회사 픽스트리 | 동영상 파일의 분산 트랜스코딩 방법 |
KR101923619B1 (ko) | 2011-12-14 | 2018-11-30 | 한국전자통신연구원 | 멀티 gpu를 이용한 실시간 3차원 외형 복원 모델 생성 방법 및 그 장치 |
KR20150033194A (ko) * | 2013-09-23 | 2015-04-01 | 삼성전자주식회사 | 병렬 부호화/복호화 방법 및 장치 |
KR102111436B1 (ko) * | 2014-01-06 | 2020-05-18 | 에스케이 텔레콤주식회사 | 다중 영상의 단일 비트 스트림 생성방법 및 생성장치 |
HK1205426A2 (en) * | 2015-09-24 | 2015-12-11 | Tfi Digital Media Ltd | Method for distributed video transcoding |
KR101925681B1 (ko) * | 2016-09-28 | 2018-12-05 | 가천대학교 산학협력단 | 멀티코어 시스템을 이용한 병렬 비디오 처리 |
KR20180067781A (ko) * | 2016-12-12 | 2018-06-21 | 이에이트 주식회사 | 분할영상의 병렬 처리를 이용한 고화질 영상의 초고해상도 업스케일링 방법 |
-
2019
- 2019-04-09 KR KR1020190041176A patent/KR102316495B1/ko active IP Right Grant
- 2019-05-14 WO PCT/KR2019/005776 patent/WO2020209437A1/ko active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR20200119435A (ko) | 2020-10-20 |
WO2020209437A1 (ko) | 2020-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9741316B2 (en) | Method and system for displaying pixels on display devices | |
KR101718897B1 (ko) | 영상 복호화 방법 및 그 장치, 영상 부호화 방법 및 그 장치 | |
US20180152716A1 (en) | Transmitting Apparatus and Method Thereof for Video Processing | |
US8375301B2 (en) | Network displays and method of their operation | |
CN104216671B (zh) | 一种在多套拼接显示屏上实现同步协同显示的方法 | |
JP5921469B2 (ja) | 情報処理装置、クラウドプラットフォーム、情報処理方法およびそのプログラム | |
CA2981983A1 (en) | Method and apparatus for automatic discovery of elements in a system of encoders | |
US20170201757A1 (en) | Video data encoding and decoding | |
KR102362513B1 (ko) | 타임 슬라이스 영상을 생성하는 서버, 방법 및 사용자 단말 | |
KR102316495B1 (ko) | 실시간 분할 영상 트랜스코딩 장치 및 방법 | |
GB2526148A (en) | Seamless display of a video sequence with increased frame rate | |
JP2018098784A (ja) | 画像データ処理方法 | |
JP5654414B2 (ja) | 映像符号化装置、映像符号化方法、プログラム | |
JP5478346B2 (ja) | 形式変換装置、映像配信装置、多重化装置、形式変換方法、映像配信方法、及びプログラム | |
KR101739767B1 (ko) | 비디오 병렬 부호화기를 위한 율제어 방법 및 장치 | |
WO2018105515A1 (ja) | 画像データ処理方法 | |
JP5441734B2 (ja) | 画像符号化装置 | |
GB2608575A (en) | Encoding image data for transmission to a display device | |
CN111480344B (zh) | 用于优化编码任务的计算机实现的方法、存储介质及系统 | |
CN105302905B (zh) | 一种信息存储方法及装置 | |
CN117788268A (zh) | 一种基于图像和视频列表的混合加载方法及系统 | |
EP3258690A1 (en) | Image encoding apparatus, image encoding method, and image encoding program stored in storage medium | |
Olsson et al. | A modular cross-platform GPU-based approach for flexible 3D video playback | |
KR20140081932A (ko) | 동적 화면 분할 크기 할당을 통한 영상 부호화 방법 및 장치 | |
JP2015122584A (ja) | 画像処理装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |