WO2020085569A1 - 실시간 분할 인코딩 장치 및 방법 - Google Patents

실시간 분할 인코딩 장치 및 방법 Download PDF

Info

Publication number
WO2020085569A1
WO2020085569A1 PCT/KR2018/014567 KR2018014567W WO2020085569A1 WO 2020085569 A1 WO2020085569 A1 WO 2020085569A1 KR 2018014567 W KR2018014567 W KR 2018014567W WO 2020085569 A1 WO2020085569 A1 WO 2020085569A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
gpu
real
unit
time
Prior art date
Application number
PCT/KR2018/014567
Other languages
English (en)
French (fr)
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 전자부품연구원
Publication of WO2020085569A1 publication Critical patent/WO2020085569A1/ko

Links

Images

Classifications

    • 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
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/169Methods 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/17Methods 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements

Definitions

  • the present invention relates to an image processing technology, and more particularly, to a real-time image segmentation encoding apparatus and method for segmenting and encoding a high-definition image in real time.
  • Multimedia service means the transmission of vast data through a wireless network, and the transmission of vast data requires that the information is well preserved and transmitted without loss.
  • video encoding can be divided into lossy compression and non-lossy compression.
  • non-lossy compression is used when detailed data is important because data before and after compression is the same.
  • the lossless compression has a compression ratio of about 2 to 1 to 3 to 1, there is a limitation in processing current large-capacity multimedia information.
  • An object of the present invention is to provide a real-time split encoding apparatus and method for encoding a high-definition image in real time at a rate of 60 FPS or higher.
  • the real-time split encoding apparatus of the present invention includes an input unit that receives a raw frame for one video stream and a frame image of 1 second for the input low frame. It includes a control unit for encoding the parallel structure by dividing), and rearranging the encoded frame image.
  • control unit divides the input low frame into the frame image, selects a GPU (Graphics Processing Unit) to encode the divided plurality of frame images, and controls the buffer to transmit the corresponding frame images to the selected GPU, respectively. It is characterized by including a module unit, a plurality of GPUs having a parallel structure, a GPU unit for encoding the transferred frame image in each GPU, and a multiplexer unit for rearranging the encoded frame images sequentially.
  • GPU Graphics Processing Unit
  • the buffer control module unit selects a GPU such that the order of the frame images and the order of GPUs of the parallel structure are sequentially corresponded.
  • each GPU is characterized in that to control the encoding is performed at a speed limit.
  • the GPU unit characterized in that for encoding the low frame at a rate of 60FPS or more.
  • the multiplexer unit is characterized in that the frame order is encoded using a plurality of frame buffers respectively connected to the plurality of GPUs to control the arrangement order to match the time flow of the video stream.
  • the video stream is characterized in that it is 4K stereo and 4096 ⁇ 4096px or more.
  • the real-time split encoding apparatus receives a raw frame for one video stream, and the real-time split encoding apparatus splits the input low frame into a frame image of 1 second. And encoding the parallel frame and rearranging the encoded frame image by the real-time split encoding apparatus.
  • the real-time split encoding apparatus and method of the present invention can encode a high-definition image at a rate of 60 FPS or more using a plurality of GPUs having a parallel structure.
  • the present invention divides a low frame of a video stream into a frame image of 1 second, encodes the divided frame image for each GPU, and rearranges the encoded frame image to perform real-time encoding at a rate of 60 FPS or higher. You can.
  • FIG. 1 is a block diagram illustrating a real-time split encoding apparatus according to an embodiment of the present invention.
  • FIG. 2 is a schematic diagram illustrating the real-time split encoding apparatus of FIG. 1.
  • FIG. 3 is a flowchart illustrating a real-time split encoding method according to an embodiment of the present invention.
  • FIG. 1 is a block diagram illustrating a real-time split encoding apparatus according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram for describing a real-time split encoding apparatus of FIG. 1.
  • the real-time split encoding apparatus 100 encodes a high-definition image in real time at a rate of 60 FPS or higher.
  • the real-time split encoding apparatus 100 includes an input unit 10 and a control unit 30.
  • the input unit 10 receives a raw frame for one video stream.
  • the video stream is a 4K stereo, high-definition video stream of 4096 ⁇ 4096px or more, and the low frame is an unencoded video frame.
  • the controller 30 divides the raw frame input from the input unit 10 into a frame image of 1 second and encodes a parallel structure.
  • the control unit 30 rearranges the encoded frame image and controls the video stream for the rearranged frame image to be output.
  • the control unit 30 includes a buffer control module unit 31, a graphics processing unit (GPU) unit 33, and a multiplexer unit 35.
  • GPU graphics processing unit
  • the buffer control module unit 31 divides the input low frame into a frame image of 1 second.
  • the buffer control module unit 31 selects a GPU to encode the divided frame image.
  • the buffer control module unit 31 transfers the corresponding frame images to the selected GPU.
  • the buffer control module unit 31 may also perform a function of temporarily storing a buffer.
  • the buffer control module unit 31 may select the GPU such that the order of the frame images and the order of the GPUs in parallel structure are sequentially corresponded. For example, if there are n frame images for 1 second (n is a natural number), and there are two GPUs, the buffer control module unit 31 controls the first frame image to be encoded in the first GPU 41, Control the second frame image to be encoded on the second GPU 42, control the third frame image to be encoded on the first GPU 41, and control the fourth frame image to be encoded on the second GPU 42.
  • the n-th frame image may be controlled to be encoded on the GPU in the order corresponding to the n-th frame image.
  • the buffer control module unit 31 may allocate frame images to the GPU having a parallel structure in order according to time.
  • the buffer control module unit 31 describes an exemplary embodiment in which the GPU is selected so that the sequence of the frame image and the GPU order of the parallel structure are sequentially corresponded, but the buffer control module unit 31 is not limited thereto and the reference By this, it is possible to control the frame image to be selected by a plurality of GPUs.
  • the GPU unit 33 includes a plurality of GPUs 41 and 42 and may include n GPUs. That is, the GPU unit 33 may include a first GPU 41 and a second GPU 42 to an n-th GPU. Preferably, the GPU unit 33 may include a GPU of the same specification so that compatibility between GPUs can be smoothly performed.
  • the GPU unit 33 has a plurality of GPUs 41 and 42 in a parallel structure, and encodes a frame image transmitted from the buffer control module unit 31 in each GPU. At this time, each GPU includes a frame buffer and a hardware encoder (H / W).
  • the first GPU 41 includes a first frame buffer 51 and a first H / W encoder 52.
  • the first frame buffer 51 temporarily stores a frame image of 1 second (which is an unencoded low state frame image) transferred from the buffer control module unit 31. In this case, the first frame buffer 51 may temporarily store the first frame image and the third frame image.
  • the first frame buffer 51 transmits the temporarily stored first and third frame images to the first H / W encoder 52.
  • the first H / W encoder 52 encodes the first and third frame images transmitted from the first frame buffer 51 to generate encoded first and third frame images.
  • the first H / W encoder 52 may encode the first and third frame images at the speed limit.
  • the limiting speed means a speed at which the first H / W encoder 52 can encode at the maximum speed.
  • the second GPU 42 includes a second frame buffer 54 and a second H / W encoder 55.
  • the second frame buffer 54 temporarily stores a frame image of a second amount transferred from the buffer control module unit 31. At this time, the second frame buffer 54 may temporarily store the second frame image and the fourth frame image.
  • the second frame buffer 54 transmits the temporarily stored second and fourth frame images to the second H / W encoder 55.
  • the second H / W encoder 54 encodes the second and fourth frame images transmitted from the second frame buffer 55 to generate encoded second and fourth frame images.
  • the second H / W encoder 55 may encode the second and fourth frame images at the limit speed.
  • the limit speed means the speed at which the second H / W encoder 55 can encode at the maximum speed.
  • the GPU unit 41 enables encoding of a low frame of a high-definition image at a rate of 60 FPS or higher by parallel encoding one image stream using the plurality of GPUs 41 and 42. That is, in the related art, the problem of not being able to encode at a speed of 60 FPS or more is enabled by the GPU unit 41 through a plurality of GPUs having a parallel structure.
  • the GPU unit 41 may perform encoding up to a maximum of 120 FPS by including three GPUs capable of encoding at 40 FPS in a parallel structure.
  • the multiplexer unit 35 rearranges the encoded frame images sequentially from the GPU unit 41 and controls the rearranged video stream to be output.
  • the multiplexer unit 35 includes a plurality of frame buffers 61 and 62.
  • the number of the plurality of frame buffers 61 and 62 is designed to be the same as the number of the plurality of GPUs 41 and 42, and each of the frame buffers 61 and 62 and the GPUs 41 and 42 are connected in a one-to-one correspondence.
  • the multiplexer unit 35 includes a third frame buffer 61 and a second GPU 42 connected to the first GPU 41. And a connected fourth frame buffer 62.
  • the multiplexer unit 35 temporarily stores the first to fourth frame images encoded from the first GPU 41 and the second GPU 42, respectively, in the third frame buffer 61 and the fourth frame buffer 62, respectively. At the same time, the arrangement order is controlled so that the frame fits the time stream of the video stream.
  • the multiplexer unit 35 may encode the encoded first to fourth frame images according to the time flow sequence of the video stream, such as the first video stream 63, the second video stream 64, and the third video stream 65. , Can be rearranged into a fourth video stream 66.
  • the first video stream 63 is a video stream for the first frame image
  • the second video stream 64 is a video stream for the second frame image
  • the third video stream 65 is a third frame image Is the video stream for
  • the fourth video stream 66 is the video stream for the fourth frame image.
  • the multiplexer unit 35 temporarily stores the first and third frame images transmitted from the first GPU 41, and then, when the third frame buffer 61 temporarily stores the video stream, it is arranged in a time flow order of the corresponding video stream. Control.
  • the multiplexer unit 35 temporarily stores the second and fourth frame images transmitted from the second GPU 42, and then, when the fourth frame buffer 62 temporarily stores the video stream, it is arranged to be arranged in time sequence. Control.
  • the multiplexer unit 35 encodes the first video stream 63, the second video stream 64, the third video stream 65, and the fourth video stream 66 in the order of time flow of the video stream. Framed images can be rearranged.
  • the GPU unit 41 described through FIG. 2 is described as including two GPUs, the GPU unit 41 may include two or more GPUs depending on the environment used, without being limited thereto.
  • the number of frame buffers of the multiplexer unit 35 may also be adjusted to correspond to.
  • FIG. 3 is a flowchart illustrating a real-time split encoding method according to an embodiment of the present invention.
  • the real-time split encoding method may encode a high-definition image at a rate of 60 FPS or more using a plurality of GPUs having a parallel structure. That is, the real-time split encoding method divides a low frame of a video stream into a frame image of 1 second, encodes the divided frame image for each GPU, and rearranges the encoded frame image, real-time encoding at a rate of 60 FPS or higher. can do.
  • step S110 the real-time split encoding apparatus 100 receives a low frame for one video stream.
  • the video stream is a 4K stereo, high-definition video stream of 4096 ⁇ 4096px or more, and the low frame is an unencoded video frame.
  • step S130 the real-time split encoding apparatus 100 divides the input low frame into a frame image of 1 second, and encodes in a parallel structure.
  • the real-time split encoding apparatus 100 divides the input low frame into a frame image of 1 second, and selects a GPU to encode the split frame image. At this time, the real-time split encoding apparatus 100 may select the GPU such that the order of the frame images and the order of the GPUs in parallel structure are sequentially corresponded. The real-time split encoding apparatus 100 transmits each frame image to the selected GPU.
  • the real-time split encoding apparatus 100 parallel encodes one video stream. Through this, the real-time split encoding apparatus 100 encodes a low frame of a high-definition image at a rate of 60 FPS or higher. In other words, the real-time segmentation encoding apparatus 100 enables a problem in which a conventional encoding cannot be performed at a speed of 60 FPS or more through a plurality of GPUs having a parallel structure.
  • step S150 the real-time split encoding apparatus 100 rearranges the encoded frame images.
  • the real-time split encoding apparatus 100 temporarily stores the encoded frame images from each GPU, and controls the arrangement order so that the frames fit the time stream of the video stream. Through this, the real-time split encoding apparatus 100 controls the video stream in which the frame images are rearranged to be generated and the generated video stream to be output.
  • the present invention can also be embodied as computer readable codes on a computer readable recording medium.
  • the computer-readable recording medium includes all types of recording devices in which data readable by a computer device are stored. Examples of computer-readable recording media include hard disks, ROMs, RAM, CD-ROMs, hard disks, magnetic tapes, floppy disks, optical data storage devices, etc., and carrier waves (for example, transmission over the Internet). It also includes those implemented in the form of.
  • fourth frame buffer 100 real-time video segmentation encoding device

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 실시간 분할 인코딩 장치 및 방법이 개시된다. 본 발명의 실시간 분할 인코딩 장치는 하나의 영상 스트림(video stream)에 대한 로우 프레임(raw frame)을 입력받는 입력부 및 입력된 로우 프레임을 1초 분량의 프레임 이미지(frame image)로 분할하여 병렬구조의 인코딩을 하고, 인코딩된 프레임 이미지를 재배열하는 제어부를 포함한다.

Description

실시간 분할 인코딩 장치 및 방법
본 발명은 영상처리기술에 관한 것으로, 더욱 상세하게는 고화질 영상을 실시간으로 분할하여 인코딩하는 실시간 영상 분할 인코딩 장치 및 방법에 관한 것이다.
현재 무선망에서는 다양한 멀티미디어 서비스를 가입자에게 제공하고 있다. 멀티미디어 서비스는 무선망을 통한 광대한 데이터의 전송을 의미하는 것이며, 광대한 데이터의 전송은 해당 정보를 잘 보존하고 손실없이 전달하는 것이 요구된다.
일반적으로 영상 인코딩은 손실 압축 및 비 손실 압축으로 나눌 수 있다. 이중에 비 손실 압축은 압축 전과 후의 데이터가 동일한 것으로 세부 데이터가 중요한 경우에 사용하게 된다. 그러나 비 손실 압축은 2대1 내지 3대1 정도의 압축률을 가지게 되므로, 현재의 대용량 멀티미디어 정보를 처리하는 것에 한계가 있다.
또한 언급된 인코딩을 위한 방식 이외에 다양한 인코딩 기법이 있으며, 더욱이 멀티미디어 서비스가 DMB 방송과 같이 실시간으로 이루어지는 서비스인 경우에는 실시간 동작 특성을 보장받기 위하여 다소 영상 품질의 저하를 감수하더라도 고속/간략화 알고리즘을 채택하는 실시간 인코더를 통해 인코딩을 하고 있는 실정이다.
즉 현재의 인코딩 기술수준을 통하여 더욱 향상된 멀티미디어 기반의 영상을 서비스 가입자에게 제공할 수 있음에도 불구하고, 실시간 동작특성을 구현하여야 하는 장애요인으로 인해 서비스 가입자는 저품질의 멀티미디어 기반의 영상을 제공받을 수 밖에 없는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 실시간으로 고화질 영상을 60FPS 이상의 속도로 인코딩하는 실시간 분할 인코딩 장치 및 방법을 제공하는데 목적이 있다.
상기 목적을 달성하기 위해 본 발명의 실시간 분할 인코딩 장치는 하나의 영상 스트림(video stream)에 대한 로우 프레임(raw frame)을 입력받는 입력부 및 상기 입력된 로우 프레임을 1초 분량의 프레임 이미지(frame image)로 분할하여 병렬구조의 인코딩을 하고, 상기 인코딩된 프레임 이미지를 재배열하는 제어부를 포함한다.
또한 상기 제어부는, 상기 입력된 로우 프레임을 상기 프레임 이미지로 분할하고, 분할된 복수의 프레임 이미지를 인코딩할 GPU(Graphics Processing Unit)를 선택하며, 상기 선택된 GPU에 해당 프레임 이미지를 각각 전달하는 버퍼 컨트롤 모듈부, 복수의 GPU가 병렬구조로 가지고, 상기 전달된 프레임 이미지를 각각의 GPU에서 인코딩을 수행하는 GPU부 및 상기 인코딩된 프레임 이미지를 순차적으로 재배열하는 멀티플렉서부를 포함하는 것을 특징으로 한다.
또한 상기 버퍼 컨트롤 모듈부는, 상기 인코딩할 GPU를 선택할 때, 상기 프레임 이미지의 순서와 상기 병렬구조의 GPU 순서가 순차적으로 대응되도록 GPU를 선택하는 것을 특징으로 한다.
또한 상기 GPU부는, 각각의 GPU들이 한계속도로 인코딩이 수행되도록 제어하는 것을 특징으로 한다.
또한 상기 GPU부는, 상기 로우 프레임을 60FPS 이상의 속도로 인코딩을 수행하는 것을 특징으로 한다.
또한 상기 멀티플렉서부는, 상기 복수의 GPU와 각각 연결된 복수의 프레임 버퍼를 이용하여 인코딩된 프레임 이미지를 영상 스트림의 시간 흐름에 맞도록 배열순서를 제어하는 것을 특징으로 한다.
또한 상기 영상 스트림은, 4K 스테레오(stereo)이면서 4096×4096px 이상인 것을 특징으로 한다.
본 발명의 실시간 분할 인코딩 방법은 실시간 분할 인코딩 장치가 하나의 영상 스트림에 대한 로우 프레임(raw frame)을 입력받는 단계, 상기 실시간 분할 인코딩 장치가 상기 입력된 로우 프레임을 1초 분량의 프레임 이미지로 분할하여 병렬구조의 인코딩을 하는 단계 및 상기 실시간 분할 인코딩 장치가 상기 인코딩된 프레임 이미지를 재배열하는 단계를 포함한다.
본 발명의 실시간 분할 인코딩 장치 및 방법은 병렬구조를 가지는 복수의 GPU를 이용하여 고화질 영상을 60FPS 이상의 속도로 인코딩할 수 있다.
즉 본 발명은 영상 스트림의 로우 프레임을 1초 분량의 프레임 이미지로 분할한 후, 분할된 프레임 이미지를 복수의 GPU별로 인코딩하고, 인코딩된 프레임 이미지를 재배열함으로써, 60FPS 이상의 속도로 실시간 인코딩을 할 수 있다.
도 1은 본 발명의 실시예에 따른 실시간 분할 인코딩 장치를 설명하기 위한 블록도이다.
도 2는 도 1의 실시간 분할 인코딩 장치를 설명하기 위한 개략도이다.
도 3은 본 발명의 실시예에 따른 실시간 분할 인코딩 방법을 설명하기 위한 순서도이다.
이하 본 발명의 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의한다. 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 당업자에게 자명하거나 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 실시간 분할 인코딩 장치를 설명하기 위한 블록도이고, 도 2는 도 1의 실시간 분할 인코딩 장치를 설명하기 위한 개략도이다.
도 1 및 도 2를 참조하면, 실시간 분할 인코딩 장치(100)는 실시간으로 고화질 영상을 60FPS 이상의 속도로 인코딩한다. 실시간 분할 인코딩 장치(100)는 입력부(10) 및 제어부(30)를 포함한다.
입력부(10)는 하나의 영상 스트림(video stream)에 대한 로우 프레임(raw frame)을 입력받는다. 여기서 영상 스트림은 4K 스테레오(stereo)이면서 4096×4096px 이상인 고화질 영상 스트림이고, 로우 프레임은 인코딩되지 않은 영상 프레임이다.
제어부(30)는 입력부(10)로부터 입력된 로우 프레임을 1초 분량의 프레임 이미지(frame image)로 분할하여 병렬구조의 인코딩을 한다. 제어부(30)는 인코딩된 프레임 이미지를 재배열하고, 재배열된 프레임 이미지에 대한 영상 스트림이 출력되도록 제어한다. 제어부(30)는 버퍼 컨트롤 모듈부(31), GPU(Graphics Processing Unit)부(33) 및 멀티플렉서부(35)를 포함한다.
버퍼 컨트롤 모듈(buffer control module)부(31)는 입력된 로우 프레임을 1초 분량의 프레임 이미지로 분할한다. 버퍼 컨트롤 모듈부(31)는 분할된 프레임 이미지를 인코딩할 GPU를 선택한다. 버퍼 컨트롤 모듈부(31)는 선택된 GPU에 해당 프레임 이미지를 각각 전달한다. 또한 버퍼 컨트롤 모듈부(31)는 일시적으로 저장하는 버퍼의 기능도 수행할 수 있다.
버퍼 컨트롤 모듈부(31)는 인코딩할 GPU를 선택할 때, 프레임 이미지의 순서와 병렬구조의 GPU 순서가 순차적으로 대응되도록 GPU를 선택할 수 있다. 예를 들어 1초 분량의 프레임 이미지가 n개(n은 자연수)이고, GPU가 2개인 경우, 버퍼 컨트롤 모듈부(31)는 제1 프레임 이미지가 제1 GPU(41)에서 인코딩되도록 제어하고, 제2 프레임 이미지가 제2 GPU(42)에서 인코딩되도록 제어하며, 제3 프레임 이미지가 제1 GPU(41)에서 인코딩되도록 제어하고, 제4 프레임 이미지가 제2 GPU(42)에서 인코딩되도록 제어할 수 있으며, 제n 프레임 이미지가 제n 프레임 이미지와 대응되는 순서의 GPU에서 인코딩되도록 제어할 수 있다. 즉 버퍼 컨트롤 모듈부(31)는 프레임 이미지가 시간에 따른 순서대로 병렬구조의 GPU에 할당시킬 수 있다. 여기서 버퍼 컨트롤 모듈부(31)는 프레임 이미지의 순서와 병렬구조의 GPU 순서가 순차적으로 대응되도록 GPU를 선택하는 실시 예를 설명하기 있으나, 이에 한정하지 않고 버퍼 컨트롤 모듈부(31)는 기 설정된 기준에 의해 프레임 이미지를 복수의 GPU에 선택되도록 제어할 수 있다.
GPU부(33)는 복수의 GPU(41, 42)를 포함하고, n개의 GPU를 포함할 수 있다. 즉 GPU부(33)는 제1 GPU(41), 제2 GPU(42) 내지 제n GPU를 포함할 수 있다. 바람직하게는 GPU부(33)는 동일한 스펙의 GPU를 포함하여 각 GPU 간의 호환이 원활하게 이루어질 수 있도록 할 수 있다. GPU부(33)는 복수의 GPU(41, 42)가 병렬구조로 가지고, 각각의 GPU에서 버퍼 컨트롤 모듈부(31)로부터 전달된 프레임 이미지를 인코딩을 한다. 이때 각각의 GPU는 프레임 버퍼 및 H/W(hardware) 인코더를 포함한다.
예를 들어 GPU가 2개인 경우. 제1 GPU(41)는 제1 프레임 버퍼(51) 및 제1 H/W 인코더(52)를 포함한다. 제1 프레임 버퍼(51)는 버퍼 컨트롤 모듈부(31)로부터 전달된 1초 분량의 프레임 이미지(인코딩되지 않은 로우 상태의 프레임 이미지임)를 일시적으로 저장한다. 이때 제1 프레임 버퍼(51)는 제1 프레임 이미지 및 제3 프레임 이미지를 일시적으로 저장할 수 있다. 제1 프레임 버퍼(51)는 일시적으로 저장된 제1 및 제3 프레임 이미지를 제1 H/W 인코더(52)로 전송한다. 제1 H/W 인코더(52)는 제1 프레임 버퍼(51)로부터 전달된 제1 및 제3 프레임 이미지를 인코딩하여 인코딩된 제1 및 제3 프레임 이미지를 생성한다. 이때 제1 H/W 인코더(52)는 한계속도에서 제1 및 제3 프레임 이미지를 인코딩할 수 있다. 여기서 한계속도는 제1 H/W 인코더(52)가 최대로 빠르게 인코딩할 수 있는 속도를 의미한다.
제2 GPU(42)는 제2 프레임 버퍼(54) 및 제2 H/W 인코더(55)를 포함한다. 제2 프레임 버퍼(54)는 버퍼 컨트롤 모듈부(31)로부터 전달된 1초 분량의 프레임 이미지를 일시적으로 저장한다. 이때 제2 프레임 버퍼(54)는 제2 프레임 이미지 및 제4 프레임 이미지를 일시적으로 저장할 수 있다. 제2 프레임 버퍼(54)는 일시적으로 저장된 제2 및 제4 프레임 이미지를 제2 H/W 인코더(55)로 전송한다. 제2 H/W 인코더(54)는 제2 프레임 버퍼(55)로부터 전달된 제2 및 제4 프레임 이미지를 인코딩하여 인코딩된 제2 및 제4 프레임 이미지를 생성한다. 이때 제2 H/W 인코더(55)는 한계속도에서 제2 및 제4 프레임 이미지를 인코딩할 수 있다. 여기서 한계속도는 제2 H/W 인코더(55)가 최대로 빠르게 인코딩할 수 있는 속도를 의미한다.
상술된 바와 같이 GPU부(41)는 복수의 GPU(41, 42)를 이용하여 하나의 영상 스트림을 병렬 인코딩을 함으로써, 고화질 영상의 로우 프레임을 60FPS 이상의 속도로 인코딩을 가능하게 한다. 즉 종래에는 60FPS 이상의 속도로 인코딩을 하지 못한 문제점을 GPU부(41)는 병렬구조를 가지는 복수의 GPU를 통해 가능하게 한다. 예를 들어 GPU부(41)는 40FPS로 인코딩이 가능한 GPU가 병렬구조로 3개 포함하여 최대 120FPS 속도까지 인코딩을 수행할 수 있다.
멀티플렉서부(35)는 GPU부(41)로부터 인코딩된 프레임 이미지를 순차적으로 재배열하고, 재배열된 영상 스트림이 출력되도록 제어한다. 이를 위하여 멀티플렉서부(35)는 복수의 프레임 버퍼(61, 62)를 포함한다. 여기서 복수의 프레임 버퍼(61, 62) 개수는 복수의 GPU(41, 42) 개수와 동일하게 설계되고, 각각의 프레임 버퍼(61, 62) 및 GPU(41, 42)는 일대일 대응되게 연결된다. 예를 들어 GPU부가 제1 GPU(41) 및 제2 GPU(42)를 포함하면 멀티플렉서부(35)는 제1 GPU(41)와 연결된 제3 프레임 버퍼(61) 및 제2 GPU(42)와 연결된 제4 프레임 버퍼(62)를 포함한다.
멀티플렉서부(35)는 제3 프레임 버퍼(61) 및 제4 프레임 버퍼(62)는 각각 제1 GPU(41) 및 제2 GPU(42)로부터 인코딩된 제1 내지 제4 프레임 이미지를 일시적으로 저장하는 동시에 해당 프레임이 영상 스트림의 시간 흐름에 맞도록 배열순서를 제어한다.
예를 들어 멀티플렉서부(35)는 인코딩된 제1 내지 제4 프레임 이미지를 영상 스트림의 시간 흐름 순서에 따라 제1 영상 스트림(63), 제2 영상 스트림(64), 제3 영상 스트림(65), 제4 영상 스트림(66)로 재배열할 수 있다. 여기서, 제1 영상 스트림(63)은 제1 프레임 이미지에 대한 영상 스트림이고, 제2 영상 스트림(64)은 제2 프레임 이미지에 대한 영상 스트림이며, 제3 영상 스트림(65)은 제3 프레임 이미지에 대한 영상 스트림이고, 제4 영상 스트림(66)은 제4 프레임 이미지에 대한 영상 스트림이다.
즉 멀티플렉서부(35)는 제1 GPU(41)로부터 전달된 제1 및 제3 프레임 이미지를 제3 프레임 버퍼(61)가 일시적으로 저장한 후, 해당 영상 스트림의 시간 흐름 순서가 되면 배열이 되도록 제어한다. 또한 멀티플렉서부(35)는 제2 GPU(42)로부터 전달된 제2 및 제4 프레임 이미지를 제4 프레임 버퍼(62)가 일시적으로 저장한 후, 해당 영상 스트림의 시간 흐름 순서가 되면 배열이 되도록 제어한다.
이를 통해 멀티플렉서부(35)는 영상 스트림의 시간 흐름 순서인 제1 영상 스트림(63), 제2 영상 스트림(64), 제3 영상 스트림(65) 및 제4 영상 스트림(66) 순으로 해당 인코딩된 프레임 이미지를 재배열할 수 있다.
한편 도 2를 통해 설명한 GPU부(41)는 2개의 GPU를 포함하는 것으로 설명하였으나, 이에 한정하지 않고 사용되는 환경에 따라 GPU부(41)는 2개 이상의 GPU를 포함할 수 있으며, 해당 GPU 개수에 대응되도록 멀티플렉서부(35)의 프레임 버퍼 개수도 조절될 수 있다.
도 3은 본 발명의 실시예에 따른 실시간 분할 인코딩 방법을 설명하기 위한 순서도이다.
도 1 및 도 3을 참조하면, 실시간 분할 인코딩 방법은 병렬구조를 가지는 복수의 GPU를 이용하여 고화질 영상을 60FPS 이상의 속도로 인코딩할 수 있다. 즉 실시간 분할 인코딩 방법은 영상 스트림의 로우 프레임을 1초 분량의 프레임 이미지로 분할한 후, 분할된 프레임 이미지를 복수의 GPU별로 인코딩하고, 인코딩된 프레임 이미지를 재배열함으로써, 60FPS 이상의 속도로 실시간 인코딩을 할 수 있다.
S110단계에서, 실시간 분할 인코딩 장치(100)는 하나의 영상 스트림에 대한 로우 프레임을 입력받는다. 여기서 영상 스트림은 4K 스테레오(stereo)이면서 4096×4096px 이상인 고화질 영상 스트림이고, 로우 프레임은 인코딩되지 않은 영상 프레임이다.
S130단계에서, 실시간 분할 인코딩 장치(100)는 입력된 로우 프레임을 1초 분량의 프레임 이미지로 분할하여 병렬구조의 인코딩을 한다.
상세하게는 실시간 분할 인코딩 장치(100)는 입력된 로우 프레임을 1초 분량의 프레임 이미지로 분할하고, 분할된 프레임 이미지를 인코딩할 GPU를 선택한다. 이때 실시간 분할 인코딩 장치(100)는 프레임 이미지의 순서와 병렬구조의 GPU 순서가 순차적으로 대응되도록 GPU를 선택할 수 있다. 실시간 분할 인코딩 장치(100)는 선택된 GPU에 해당 프레임 이미지를 각각 전달한다.
실시간 분할 인코딩 장치(100)는 하나의 영상 스트림을 병렬 인코딩을 한다. 이를 통해 실시간 분할 인코딩 장치(100)는 고화질 영상의 로우 프레임을 60FPS 이상의 속도로 인코딩한다. 즉 종래에 60FPS 이상의 속도로 인코딩을 하지 못한 문제점을 실시간 분할 인코딩 장치(100)는 병렬구조를 가지는 복수의 GPU를 통해 가능하게 한다.
S150단계에서, 실시간 분할 인코딩 장치(100)는 인코딩된 프레임 이미지를 재배열한다. 실시간 분할 인코딩 장치(100)는 각각의 GPU로부터 인코딩된 프레임 이미지를 일시적으로 저장하는 동시에 해당 프레임이 영상 스트림의 시간 흐름에 맞도록 배열순서를 제어한다. 이를 통해 실시간 분할 인코딩 장치(100)는 프레임 이미지가 재배열된 영상 스트림이 생성하고, 생성된 영상 스트림이 출력될 수 있도록 제어한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 장치에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 하드디스크, ROM, RAM, CD-ROM, 하드 디스크, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
[부호의 설명]
10: 입력부 30: 제어부
31: 버퍼 컨트롤 모듈부 33: GPU부
35: 멀티플렉서부 41: 제1 GPU
42: 제2 GPU 51: 제1 프레임 버퍼
52: 제1 H/W 인코더 54: 제2 프레임 버퍼
55: 제2 H/W 인코더 61: 제3 프레임 버퍼
62: 제4 프레임 버퍼 100: 실시간 영상 분할 인코딩 장치

Claims (8)

  1. 하나의 영상 스트림(video stream)에 대한 로우 프레임(raw frame)을 입력받는 입력부; 및
    상기 입력된 로우 프레임을 1초 분량의 프레임 이미지(frame image)로 분할하여 병렬구조의 인코딩을 하고, 상기 인코딩된 프레임 이미지를 재배열하는 제어부;
    를 포함하는 실시간 분할 인코딩 장치.
  2. 제 1항에 있어서,
    상기 제어부는,
    상기 입력된 로우 프레임을 상기 프레임 이미지로 분할하고, 분할된 복수의 프레임 이미지를 인코딩할 GPU(Graphics Processing Unit)를 선택하며, 상기 선택된 GPU에 해당 프레임 이미지를 각각 전달하는 버퍼 컨트롤 모듈부;
    복수의 GPU가 병렬구조로 가지고, 상기 전달된 프레임 이미지를 각각의 GPU에서 인코딩을 수행하는 GPU부; 및
    상기 인코딩된 프레임 이미지를 순차적으로 재배열하는 멀티플렉서부;
    를 포함하는 것을 특징으로 하는 실시간 분할 인코딩 장치.
  3. 제 2항에 있어서,
    상기 버퍼 컨트롤 모듈부는,
    상기 인코딩할 GPU를 선택할 때, 상기 프레임 이미지의 순서와 상기 병렬구조의 GPU 순서가 순차적으로 대응되도록 GPU를 선택하는 것을 특징으로 하는 실시간 분할 인코딩 장치.
  4. 제 2항에 있어서,
    상기 GPU부는,
    각각의 GPU들이 한계속도로 인코딩이 수행되도록 제어하는 것을 특징으로 하는 실시간 분할 인코딩 장치.
  5. 제 2항에 있어서,
    상기 GPU부는,
    상기 로우 프레임을 60FPS 이상의 속도로 인코딩을 수행하는 것을 특징으로 하는 실시간 분할 인코딩 장치.
  6. 제 2항에 있어서,
    상기 멀티플렉서부는,
    상기 복수의 GPU와 각각 연결된 복수의 프레임 버퍼를 이용하여 인코딩된 프레임 이미지를 영상 스트림의 시간 흐름에 맞도록 배열순서를 제어하는 것을 특징으로 하는 실시간 분할 인코딩 장치.
  7. 제 1항에 있어서,
    상기 영상 스트림은,
    4K 스테레오(stereo)이면서 4096×4096px 이상인 것을 특징으로 하는 실시간 분할 인코딩 장치.
  8. 실시간 분할 인코딩 장치가 하나의 영상 스트림에 대한 로우 프레임(raw frame)을 입력받는 단계;
    상기 실시간 분할 인코딩 장치가 상기 입력된 로우 프레임을 1초 분량의 프레임 이미지로 분할하여 병렬구조의 인코딩을 하는 단계; 및
    상기 실시간 분할 인코딩 장치가 상기 인코딩된 프레임 이미지를 재배열하는 단계;
    를 포함하는 실시간 분할 인코딩 방법.
PCT/KR2018/014567 2018-10-25 2018-11-23 실시간 분할 인코딩 장치 및 방법 WO2020085569A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0128196 2018-10-25
KR20180128196 2018-10-25

Publications (1)

Publication Number Publication Date
WO2020085569A1 true WO2020085569A1 (ko) 2020-04-30

Family

ID=70332043

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/014567 WO2020085569A1 (ko) 2018-10-25 2018-11-23 실시간 분할 인코딩 장치 및 방법

Country Status (1)

Country Link
WO (1) WO2020085569A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5246264B2 (ko) * 1974-04-22 1977-11-22
KR940003201A (ko) * 1992-07-30 1994-02-21 강진구 분할화상부호화방법 및 그 장치
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
KR20110051104A (ko) * 2009-11-09 2011-05-17 한국전자통신연구원 시공간 분할 형 병렬 비디오 부호화 방법 및 시스템
KR20150010294A (ko) * 2013-07-19 2015-01-28 주식회사 우현디지털 병렬 분산 처리를 통한 고속 녹화 장치 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5246264B2 (ko) * 1974-04-22 1977-11-22
KR940003201A (ko) * 1992-07-30 1994-02-21 강진구 분할화상부호화방법 및 그 장치
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
KR20110051104A (ko) * 2009-11-09 2011-05-17 한국전자통신연구원 시공간 분할 형 병렬 비디오 부호화 방법 및 시스템
KR20150010294A (ko) * 2013-07-19 2015-01-28 주식회사 우현디지털 병렬 분산 처리를 통한 고속 녹화 장치 및 그 방법

Similar Documents

Publication Publication Date Title
WO2020189817A1 (ko) 타일 기반 스트리밍을 위한 분할영상 분산 디코딩 방법 및 시스템
WO2012023833A2 (en) Method and apparatus for reducing deterioration of a quality of experience of a multimedia service in a multimedia system
EP2420060A2 (en) Method and system for progressive rate adaptation for uncompressed video communication in wireless systems
WO2011037406A2 (en) Method and system for wireless communication of audio in wireless networks
JP2013517696A (ja) 軽減チャンネルフォーマットでの多チャンネル信号の送信及び検出
WO2015167313A1 (ko) 적응적 영상 데이터 압축 방법 및 장치
WO2011142566A2 (en) Method and apparatus for processing video frame by using difference between pixel values
WO2012161556A2 (ko) 무선 통신 시스템에서의 데이터 전송률 조절 방법 및 장치
KR101539812B1 (ko) 동화상 데이터의 배신 방법
KR20130126932A (ko) 고속 비디오 네트워크 내의 비동기 및 등시 데이터 송신을 위한 방법 및 시스템
WO2011139060A2 (en) Method and system for communication of stereoscopic three dimensional video information
WO2020085569A1 (ko) 실시간 분할 인코딩 장치 및 방법
WO2012148238A2 (ko) 무선 통신 시스템에서의 데이터 전송률 조절 방법 및 장치
WO2019050067A1 (ko) 비디오 품질 제어
CN110830678B (zh) 一种多通道视频信号同步输出方法、装置、系统及介质
CN107241325A (zh) 一种ip视频超低延时传输方法及装置
WO2016006746A1 (ko) 초고해상도 영상 처리를 위한 장치
WO2021118200A1 (ko) 3d 메시 분할 기반 3d 모델 압축 및 압축해제 시스템 및 방법
WO2017069486A1 (en) Methods and apparatus for random access of hevc bitstream for mmt
WO2020204253A1 (ko) 관심 영역 기반의 vr 영상 수신 장치 및 방법
US20040136456A1 (en) Encoding digital video for transmission over standard data cabling
KR102523959B1 (ko) 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
CN107318020B (zh) 远程显示的数据处理方法及系统
CN112995557B (zh) 多通道影像的并行处理方法及设备
CN113810628B (zh) 一种低功耗视频拼接器及方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18937883

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18937883

Country of ref document: EP

Kind code of ref document: A1