KR102738566B1 - Method for video frame transmission to minimize image quality degradation - Google Patents
Method for video frame transmission to minimize image quality degradation Download PDFInfo
- Publication number
- KR102738566B1 KR102738566B1 KR1020220012253A KR20220012253A KR102738566B1 KR 102738566 B1 KR102738566 B1 KR 102738566B1 KR 1020220012253 A KR1020220012253 A KR 1020220012253A KR 20220012253 A KR20220012253 A KR 20220012253A KR 102738566 B1 KR102738566 B1 KR 102738566B1
- Authority
- KR
- South Korea
- Prior art keywords
- frame
- stream
- sub
- user terminal
- main frame
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
- H04N21/23617—Multiplexing of additional data and video streams by inserting additional data into a data carousel, e.g. inserting software modules into a DVB carousel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26233—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
본 발명에 따르는 서버에 의해 수행되는, 화질저하를 최소화하기 위한 영상프레임 전송방법은 (a) I-Frame, P-Frame, B-Frame 중 적어도 하나로 구성되는 메인 프레임 스트림과 서브 프레임 스트림을 생성하는 단계; (b) 복수의 사용자 단말로 메인 프레임 스트림을 전송하는 단계; 및 (c) 적어도 하나의 사용자 단말로부터 서브 프레임 스트림 요청을 수신하는 경우, 그 다음 순번의 메인 프레임 스트림 전송 타이밍이 될 때까지 서브 프레임 스트림을 상기 요청한 사용자 단말로 전송하는 단계;를 포함한다.A method for transmitting a video frame for minimizing image quality degradation, performed by a server according to the present invention, comprises: (a) a step of generating a main frame stream and a sub frame stream, each of which consists of at least one of an I-Frame, a P-Frame, and a B-Frame; (b) a step of transmitting the main frame stream to a plurality of user terminals; and (c) a step of transmitting the sub frame stream to the user terminal that has requested it until the next main frame stream transmission timing when a request for the sub frame stream is received from at least one user terminal.
Description
본 발명은 영상프레임 전송방법에 관한 것으로서, 보다 상세하게는, 실시간 스트리밍 동영상 전송 분야에 있어, 서버가 인코딩된 영상프레임을 전송할 때 누락된 프레임에 대응하는 서브 프레임 스트림을 즉각적으로 전송토록하여 화질의 저하를 최소화하여 동영상프레임을 전송할 수 있도록 하는 기술에 관한 것이다.The present invention relates to a method for transmitting video frames, and more specifically, in the field of real-time streaming video transmission, to a technology for transmitting video frames with minimal degradation in image quality by allowing a server to immediately transmit a sub-frame stream corresponding to a missing frame when transmitting encoded video frames.
무선 통신기술의 발달로 영상통화, 원격 영상회의, 실시간 방송 등이 네트워크를 통해 서비스 되고 있고, 외부요인에 의하여 비대면 업무가 활성화 되면서 네트워크를 통한 원격 영상회의, 원격 영상미팅, 실시간 스트리밍 서비스의 수요가 증가하고 있으며, 다양한 분야에서 실시간 영상 전송 서비스를 활용하고 있다.With the development of wireless communication technology, video calls, remote video conferencing, and real-time broadcasting are being provided through networks, and as non-face-to-face work is becoming more active due to external factors, the demand for remote video conferencing, remote video meetings, and real-time streaming services through networks is increasing, and real-time video transmission services are being utilized in various fields.
그러나 실시간 영상 전송 서비스가 대중화되면서 한정된 서버에 여러 대의 단말이 네트워크를 통해 연결되고, 다양한 이유로 서버에 프레임 스트림을 요청하게 되면서 서버에 많은 요청이 한꺼번에 집중되게 된다. 이 때문에 서버에 부하가 가중되고, 네트워크 상황에 따라서 영상이 끊기고, 멈추거나 화질이 저하될 수 있다.However, as real-time video transmission services become popular, multiple terminals are connected to a limited server through the network, and many requests are concentrated on the server at once as frame streams are requested from the server for various reasons. This increases the load on the server, and depending on the network conditions, the video may be interrupted, stopped, or the image quality may deteriorate.
기존의 영상프레임 전송방법에 따르면, 네트워크 지연이나 병목 현상 등으로 문제가 발생하였을 때, 단말에서 서버로 끊겨진 부분에 대한 프레임 전달 요청을 하면 그 다음 순번의 메인 프레임을 전송해주고 끊겨진 부분의 프레임을 전달하는 방식으로는 구현되지 않는다. 그에 따라, 현재 스트림 되는 프레임과 연결이 매끄럽지 않아서, 사용자가 보기에는 영상의 일부가 끊겨서 보이는 듯한 현상이 발생될 수 있다. 그리고 동일한 메인 프레임 스트림을 공유하는 다른 단말에도 영향을 주며, 여러 단말이 동시에 프레임을 요청할 경우 서버에서 처리하는 과정에서 부하가 생길 수 있다.According to the existing video frame transmission method, when a problem occurs due to network delay or bottleneck, if the terminal requests frame transmission for the disconnected part from the server, the next main frame is transmitted and the frame for the disconnected part is not transmitted in this way. Accordingly, since the connection with the currently streaming frame is not smooth, a phenomenon may occur where a part of the video appears to be disconnected to the user. In addition, it may affect other terminals that share the same main frame stream, and when multiple terminals request frames at the same time, a load may be generated during the server processing.
이에 메인 프레임 스트림에 영향을 주지 않고, 프레임 스트림을 제공하는 영상프레임 전송방법에 대한 필요성이 있다. 실시간 영상 처리에 있어서 다자간 사용자 단말의 동시 전송을 위한 방식에는 Mesh 방식, SFU 방식 및 MCU방식이 있다.Accordingly, there is a need for a video frame transmission method that provides a frame stream without affecting the main frame stream. In real-time video processing, there are three methods for simultaneous transmission of multiple user terminals: the Mesh method, the SFU method, and the MCU method.
Mesh 방식은 서버를 경유하지 않고 모든 사용자 단말끼리 직접 연결하여 영상을 전송하는 방식으로 비용이 적게 요구되고, 실시간 성이 보장되지만 사용자 단말에 부하가 발생하여 고품질을 유지하기 쉽지 않은 방식이다.The mesh method is a method that transmits video by directly connecting all user terminals without going through a server, which requires less cost and guarantees real-time performance, but it is a method that is difficult to maintain high quality because it places a load on the user terminal.
SFU방식은 서버가 중앙에서 중계하는 방식으로 사용자 단말은 서버와 연결된다. 사용자 단말은 영상을 서버에게만 전송하되 수신은 다른 사용자 단말 수만큼 연결이 된다. 서버를 통해서 영상을 전송 및 수신하기 때문에 적은 개수의 사용자 단말들의 연결에서는 각각의 사용자 단말에 부하가 줄어드는 장점이 있지만, 전체 사용자 단말이 증가될 경우 사용자 수에 비례해서 네트워크 사용량이 증가하게 되어 사용자 단말의 부하가 증가하는 단점이 있다.The SFU method is a method in which the server relays centrally, and the user terminal is connected to the server. The user terminal transmits the video only to the server, but the reception is connected to the number of other user terminals. Since the video is transmitted and received through the server, there is an advantage in that the load on each user terminal is reduced when a small number of user terminals are connected, but there is a disadvantage in that when the total number of user terminals increases, the network usage increases in proportion to the number of users, which increases the load on the user terminal.
MCU 방식은 다수의 사용자 단말에서 송신하는 영상을 중앙 서버에서 혼합 또는 가공하여 각각의 사용자 단말로 수신하여 전달하는 방식이다. 사용자 단말로부터 전달 받은 여러 개의 미디어 패킷들이 하나의 패킷으로 압축되기 때문에 사용자 단말 수에 관계없이 네트워크 사용률이 일정하게 유지 되고, 사용자 단말에서도 일정한 양의 네트워크 및 CPU 사용률을 보장 받기 때문에 안정적인 화상영상 통신 서비스를 제공 받을 수 있다.The MCU method is a method in which images transmitted from multiple user terminals are mixed or processed by a central server and then received and transmitted to each user terminal. Since multiple media packets transmitted from user terminals are compressed into a single packet, the network utilization rate is maintained constant regardless of the number of user terminals, and since the user terminal is also guaranteed a certain amount of network and CPU utilization, a stable video communication service can be provided.
그러나 모든 미디어 처리를 서버에서 하기 때문에 서버의 CPU 사용률이 증가하고, 서버에서 모든 패킷들의 처리로 인해 화질 저하가 발생할 수 있다. 또, MCU 서버를 설계할 때 서버의 CPU 사용률 증가에 대한 부담으로 충분한 영상 인코더를 운영하는데 어려움이 있다. 이는 연결되는 사용자 단말의 개수에 대응하는 수만큼 인코더를 운영하면 최적화된 영상 품질을 제공할 수 있지만 MCU 서버에 CPU 사용률이 크게 증가하므로 하나로 압축 된 동일한 인코딩 영상을 각 사용자 단말로 전송하여 CPU 사용률 증가를 최소화 할 수 있다. 그리고 각 사용자 단말마다 네트워크 환경이 상이하고, 네트워크 환경에 따라 통신간의 패킷 유실로 MCU 서버에 I-Frame을 요청하게 되면 MCU 서버는 각각의 사용자 단말의 요청으로 반복적인 I-Frame을 발생시킨다.However, since all media processing is done on the server, the CPU usage of the server increases, and the image quality may deteriorate due to the processing of all packets on the server. In addition, when designing an MCU server, it is difficult to operate sufficient video encoders due to the burden of increased CPU usage of the server. This is because operating a number of encoders corresponding to the number of connected user terminals can provide optimized image quality, but since CPU usage on the MCU server increases significantly, the increase in CPU usage can be minimized by transmitting the same encoded video compressed into one to each user terminal. In addition, since the network environment is different for each user terminal, and if an I-Frame is requested from the MCU server due to packet loss during communication depending on the network environment, the MCU server generates repeated I-Frames at the request of each user terminal.
반복적인 I-Frame 발생은 결국 네트워크 트래픽 증가와 영상 화질의 저하를 발생시키게 되고, 동일한 인코딩 영상을 사용자 단말로 전달하기 때문에 I-Frame을 요청하지 않은 사용자 단말도 I-Frame을 전달 받게 되어 화질 저하가 모든 사용자 단말에 발생하게 된다.Repeated occurrence of I-Frames ultimately causes increased network traffic and deterioration of video quality, and since the same encoded video is transmitted to user terminals, even user terminals that did not request I-Frames receive I-Frames, resulting in deterioration of video quality in all user terminals.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 서버가 서브 프레임 스트림을 활용하여 사용자 단말의 프레임 전달 요청에 대응함으로써 복수의 사용자 단말에서 동시에 프레임 전달 요청이 있어도 메인 프레임 스트림에 영향을 주지 않고, 영상 프레임을 전송하는 것을 목적으로 한다.The present invention is intended to solve the problems of the prior art described above, and aims to transmit video frames without affecting the main frame stream even when frame transmission requests are made simultaneously from multiple user terminals by allowing a server to respond to frame transmission requests from user terminals by utilizing a sub-frame stream.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따르는 서버에 의해 수행되는, 화질저하를 최소화하기 위한 영상프레임 전송방법에 있어서, (a) I-Frame, P-Frame, B-Frame 중 적어도 하나로 구성되는 메인 프레임 스트림과 서브 프레임 스트림을 생성하는 단계; (b) 복수의 사용자 단말로 상기 메인 프레임 스트림을 전송하는 단계; 및 (c) 적어도 하나의 사용자 단말로부터 상기 서브 프레임 스트림 요청을 수신하는 경우, 그 다음 순번의 메인 프레임 스트림 전송 타이밍이 될 때까지 상기 서브 프레임 스트림을 상기 요청한 사용자 단말로 전송하는 단계를 포함한다.As a technical means for achieving the above-described technical task, in a video frame transmission method for minimizing image quality degradation, performed by a server according to one embodiment of the present invention, the method comprises the steps of: (a) generating a main frame stream and a sub frame stream, each of which is composed of at least one of an I-Frame, a P-Frame, and a B-Frame; (b) transmitting the main frame stream to a plurality of user terminals; and (c) when a request for the sub frame stream is received from at least one user terminal, transmitting the sub frame stream to the user terminal that has requested it until the next sequential main frame stream transmission timing.
또한, 상기 서버는 미디어 스트림 생성장치 및 미디어 스트림 전송장치로 구성되고, 상기 서브 프레임 스트림은 상기 메인 프레임 스트림보다 적은 개수의 프레임으로 구성된다.Additionally, the server is configured with a media stream generation device and a media stream transmission device, and the sub-frame stream is configured with a smaller number of frames than the main frame stream.
또한, 상기 (a)단계는 상기 미디어 스트림 생성장치를 통해서 상기 메인 프레임 스트림과 상기 서브 프레임 스트림을 병렬적으로 생성한다.In addition, the step (a) generates the main frame stream and the sub-frame stream in parallel through the media stream generating device.
또한, 상기 미디어 스트림 전송장치는 상기 복수의 사용자 단말의 개수와 동일한 개수로 생성된 복수 개의 서브 전송장치를 포함하며, 각 서브 전송장치는 자신과 대응하는 사용자 단말의 메인 프레임 스트림 또는 서브 프레임 스트림 요청을 수신한다.In addition, the media stream transmission device includes a plurality of sub-transmission devices generated in a number equal to the number of the plurality of user terminals, and each sub-transmission device receives a main frame stream or sub-frame stream request of a user terminal corresponding to it.
또한, 상기 (c)단계는 상기 사용자 단말로 전송된 네트워크 패킷이 손실된 경우; 네트워크 통신의 불안정으로 패킷 병목현상이 발생되는 경우; 및 상기 네트워크 패킷 자체의 무결성에 흠결이 존재하여 상기 사용자 단말에서 디코딩이 불가한 것으로 판단한 경우; 중 어느 하나에 해당할 때, 상기 사용자 단말에서 상기 서브 프레임 스트림을 요청한다.In addition, in the step (c), when any one of the following occurs: when a network packet transmitted to the user terminal is lost; when a packet bottleneck occurs due to instability in network communication; and when the integrity of the network packet itself is defective and decoding is determined to be impossible at the user terminal; the user terminal requests the sub-frame stream.
또한, 상기 (a) 단계는, 상기 메인 프레임 스트림이 시간순에 따라 제1단위 메인 프레임, … , 제n단위 메인 프레임 (n은 1보다 큰 자연수)으로 구성되고, 상기 서브 프레임 스트림이 시간순에 따라, 제1단위 서브 프레임, … , 제m단위 서브 프레임 (m은 1보다 큰 자연수)으로 구성될 때, 각 메인 프레임 스트림과 각 서브 프레임 스트림을 생성할 때마다 해당 영상이 재생되는 시각에 관한 타임스탬프를 연계하여 생성한다.In addition, in the step (a), when the main frame stream is composed of a first unit main frame, …, n-th unit main frame (n is a natural number greater than 1) in chronological order, and the sub-frame stream is composed of a first unit sub-frame, …, m-th unit sub-frame (m is a natural number greater than 1) in chronological order, a timestamp regarding the time at which the corresponding video is played is generated by linking each main frame stream and each sub-frame stream.
또한, 상기 (c)단계는 하나의 단위 메인 프레임의 전송이 완료되지 않았더라도, 상기 사용자 단말이 요청한 영상 재생시각에 대응하는 타임스탬프를 갖는 상기 서브 프레임 스트림 을 전송하되, 상기 그 다음 순번의 단위 메인 프레임이 전송될 시각이 도래하는 경우, 상기 서브 프레임 스트림의 전송을 중단하고 그 다음 순번의 단위 메인 프레임을 전송한다.In addition, the step (c) transmits the sub-frame stream having a timestamp corresponding to the video playback time requested by the user terminal even if the transmission of one unit main frame is not completed, and when the time for transmitting the next unit main frame arrives, the transmission of the sub-frame stream is stopped and the next unit main frame is transmitted.
상기 단위 메인 프레임과 단위 서브 프레임은 I-Frame부터 시작하도록 구성되고 P-Frame이 연이어지도록 구성되되, P-Frame의 개수에 있어 상기 단위 서브 프레임이 상기 단위 메인 프레임보다 적다.The above unit main frame and unit sub-frame are configured to start from an I-Frame and are configured to be consecutive with P-Frames, but the number of P-Frames in the unit sub-frame is less than that in the unit main frame.
또한, 상기 서버는 MCU 방식의 서버 환경으로 구성이 가능하다.Additionally, the above server can be configured as an MCU-type server environment.
또한, 서버에 의해 수행되는, 화질저하를 최소화하기 위한 영상프레임 전송장치에 있어서, 화질저하를 최소화하기 위한 영상프레임 전송을 위한 프로그램이 저장된 메모리; 및 상기 프로그램을 실행하기 위한 프로세서를 포함하며, 상기 프로세서는 상기 프로그램의 실행에 따라 상기 방법을 수행하며, 상기 방법은 (a) I-Frame, P-Frame, B-Frame 중 적어도 하나로 구성되는 메인 프레임 스트림과 서브 프레임 스트림을 생성하는 단계; (b) 복수의 사용자 단말로 상기 메인 프레임 스트림을 전송하는 단계; 및 (c) 적어도 하나의 사용자 단말로부터 상기 서브 프레임 스트림 요청을 수신하는 경우, 그 다음 순번의 메인 프레임 스트림 전송 타이밍이 될 때까지 상기 서브 프레임 스트림을 상기 요청한 사용자 단말로 전송하는 단계;를 포함한다.Also, in a video frame transmission device for minimizing image quality degradation, which is performed by a server, the device comprises: a memory storing a program for transmitting a video frame for minimizing image quality degradation; and a processor for executing the program, wherein the processor performs the method according to execution of the program, the method comprising: (a) generating a main frame stream and a sub-frame stream each composed of at least one of an I-Frame, a P-Frame, and a B-Frame; (b) transmitting the main frame stream to a plurality of user terminals; and (c) when receiving a request for the sub-frame stream from at least one user terminal, transmitting the sub-frame stream to the user terminal that has requested it until the next sequential main frame stream transmission timing.
종래의 기술은 네트워크 상황에 관계없이 하나의 메인 프레임 스트림을 사용하여 영상 및 실시간 영상을 전달하여 사용자 단말로부터 요청되는 I-Frame의 빈번한 생성으로 영상의 끊김, 멈춤, 화질 저하 등의 문제가 발생하였다. 또, I-Frame을 생성함으로써 서버의 CPU에도 부하가 발생하는 문제점도 있다.Conventional technology transmits video and real-time video using a single main frame stream regardless of network conditions, which causes problems such as video interruption, freezing, and deterioration of image quality due to frequent generation of I-Frames requested from user terminals. In addition, there is also the problem of load being placed on the server CPU by generating I-Frames.
이에 본 발명은 메인 프레임 스트림과 서브 프레임 스트림을 병렬로 생성하고, 각 단위 프레임의 타임스탬프를 연계하여 필요에 따라 메인 프레임 스트림의 타임스탬프에 해당하는 단위 서브 프레임을 전달한다. 이를 통해 서버는 사용자 단말로부터 I-Frame 요청이 있을 경우에 서브 프레임 스트림을 활성화 시킴으로써 CPU 사용률의 증가를 최소화 시킬 수 있고, I-Frame을 요청하지 않은 다른 사용자 단말은 메인 프레임 스트림을 계속 전송 받아 화질 저하를 최소화하여 영상 프레임을 재생할 수 있다.Accordingly, the present invention generates a main frame stream and a sub frame stream in parallel, links the timestamps of each unit frame, and transmits a unit sub frame corresponding to the timestamp of the main frame stream as needed. Through this, the server can minimize an increase in CPU usage by activating the sub frame stream when there is an I-Frame request from a user terminal, and other user terminals that have not requested an I-Frame can continue to receive the main frame stream and play back video frames with minimal degradation in image quality.
따라서 네트워크 사용률 면에서도 I-Frame의 전달 주기가 길어지기 때문에 서버의 전체 네트워크 사용률이 줄어드는 효과가 있다.Therefore, in terms of network utilization, the overall network utilization of the server is reduced because the transmission cycle of the I-Frame is longer.
도 1은 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송 시스템의 구조도이다.
도 2는 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 메인서버 구성도이다.
도 3은 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 미디어 스트림 전송장치의 구성도이다.
도 4는 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 순서도이다.
도 5는 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 종래 기술의 메인 프레임 스트림의 구성도이다.
도 6a는 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 메인 프레임 스트림 및 서브 프레임 스트림의 구성 차이를 나타내는 예시도이다.
도 6b는 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 화질저하 최소화 방법에 대한 예시도이다.FIG. 1 is a structural diagram of a video frame transmission system for minimizing image quality degradation according to one embodiment of the present invention.
FIG. 2 is a main server configuration diagram of a video frame transmission method for minimizing image quality degradation according to one embodiment of the present invention.
FIG. 3 is a configuration diagram of a media stream transmission device for a video frame transmission method for minimizing image quality degradation according to one embodiment of the present invention.
FIG. 4 is a flowchart of a video frame transmission method for minimizing image quality degradation according to one embodiment of the present invention.
FIG. 5 is a diagram showing the configuration of a main frame stream of a conventional video frame transmission method for minimizing image quality degradation according to one embodiment of the present invention.
FIG. 6a is an exemplary diagram showing the difference in configuration of a main frame stream and a sub frame stream of a video frame transmission method for minimizing image quality degradation according to one embodiment of the present invention.
FIG. 6b is an exemplary diagram of a method for minimizing image quality degradation in a video frame transmission method according to one embodiment of the present invention.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the attached drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily practice the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts that are not related to the description are omitted, and similar parts are assigned similar drawing reference numerals throughout the specification.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is said to be "connected" to another part, this includes not only the case where it is "directly connected" but also the case where it is "electrically connected" with another element in between. Also, when a part is said to "include" a component, this does not mean that it excludes other components, but rather that it may include other components, unless otherwise stated.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.In this specification, the term 'unit' includes a unit realized by hardware, a unit realized by software, and a unit realized using both. In addition, one unit may be realized by using two or more pieces of hardware, and two or more units may be realized by one piece of hardware. Meanwhile, the '~ unit' is not limited to software or hardware, and the '~ unit' may be configured to be in an addressable storage medium and may be configured to reproduce one or more processors. Accordingly, as an example, the '~ unit' includes components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and '~sub-components' may be combined into a smaller number of components and '~sub-components' or further separated into additional components and '~sub-components'. In addition, the components and '~sub-components' may be implemented to regenerate one or more CPUs within the device or the secure multimedia card.
이하에서 언급되는 "사용자 단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 영상 촬영장치를 포함하는 컴퓨터나 휴대용 단말기로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop), VR HMD(예를 들어, HTC VIVE, Oculus Rift, GearVR, DayDream, PSVR 등)등을 포함할 수 있다. 여기서, VR HMD 는 PC용 (예를 들어, HTC VIVE, Oculus Rift, FOVE, Deepon 등)과 모바일용(예를 들어, GearVR, DayDream, 폭풍마경, 구글 카드보드 등) 그리고 콘솔용(PSVR)과 독립적으로 구현되는 Stand Alone 모델(예를 들어, Deepon, PICO 등) 등을 모두 포함한다. 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 스마트폰(smart phone), 태블릿 PC, 웨어러블 디바이스뿐만 아니라, 블루투스(BLE, Bluetooth Low Energy), NFC, RFID, 초음파(Ultrasonic), 적외선, 와이파이(WiFi), 라이파이(LiFi) 등의 통신 모듈을 탑재한 각종 디바이스를 포함할 수 있다. 또한, "네트워크"는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.The "user terminal" mentioned below may be implemented as a computer or a portable terminal including a video capturing device capable of accessing a server or other terminal via a network. Here, the computer may include, for example, a notebook, desktop, laptop equipped with a WEB Browser, VR HMD (e.g., HTC VIVE, Oculus Rift, GearVR, DayDream, PSVR, etc.). Here, the VR HMD includes all of a PC-use (e.g., HTC VIVE, Oculus Rift, FOVE, Deepon, etc.), a mobile-use (e.g., GearVR, DayDream, Storm Magic, Google Cardboard, etc.), a console-use (PSVR), and a Stand Alone model (e.g., Deepon, PICO, etc.) that is implemented independently. Portable terminals are wireless communication devices that ensure portability and mobility, for example, and may include not only smart phones, tablet PCs, and wearable devices, but also various devices equipped with communication modules such as Bluetooth (BLE, Bluetooth Low Energy), NFC, RFID, ultrasonic, infrared, WiFi, and LiFi. In addition, "network" refers to a connection structure that enables information exchange between each node, such as terminals and servers, and includes a local area network (LAN), a wide area network (WAN), the Internet (WWW: World Wide Web), wired and wireless data communication networks, telephone networks, and wired and wireless television communication networks. Examples of wireless data communication networks include, but are not limited to, 3G, 4G, 5G, 3GPP (3rd Generation Partnership Project), LTE (Long Term Evolution), WIMAX (World Interoperability for Microwave Access), Wi-Fi, Bluetooth, infrared, ultrasonic, visible light communication (VLC), and LiFi.
먼저, 도 1을 참조하여 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송 시스템의 구조를 설명하도록 한다.First, the structure of a video frame transmission system for minimizing image quality degradation according to one embodiment of the present invention will be described with reference to FIG. 1.
화질저하를 최소화하기 위한 영상 프레임 전송 시스템은 메인서버(100) 및 사용자 단말(200)로 구성된다. 한대의 메인서버(100)에 복수개의 사용자 단말(200)이 동시에 연결될 수 있다. A video frame transmission system for minimizing image quality degradation consists of a main server (100) and a user terminal (200). A plurality of user terminals (200) can be connected to one main server (100) at the same time.
메인서버(100)는 각 사용자 단말(200) 또는 특정한 한 단말(미도시)에서 촬영되는 영상을 수신하고, 수신한 영상을 인코딩하여 메인 프레임 스트림(300)과 서브 프레임 스트림(310)으로 생성 후 다른 사용자 단말(200)로 송신하여 다자간 화상 통화, 화상 회의가 이루어지도록 할 수 있다.The main server (100) receives images captured from each user terminal (200) or a specific terminal (not shown), encodes the received images to create a main frame stream (300) and a sub frame stream (310), and then transmits the images to other user terminals (200) to enable a multi-party video call or video conference.
사용자 단말(200)은 촬영한 영상을 서버로 송신하고, 다른 사용자 단말(200)의 영상을 서버로부터 수신 받는다. 사용자 단말(200)은 카메라와 일체형으로 구성될 수도 있고, 카메라가 별도로 연결된 장치일 수도 있다.The user terminal (200) transmits the captured image to the server and receives the image of another user terminal (200) from the server. The user terminal (200) may be configured as an integrated unit with the camera, or may be a device to which the camera is separately connected.
본 발명의 추가 실시예에 따르는 화질저하를 최소화하기 위한 영상 프레임 전송 시스템은 실시간 스트리밍 전송, VOD 동영상 전송을 위한 시스템으로 구성이 가능하다. 사용자 단말(200)이 촬영한 영상을 메인서버(100)로 전송하고, 다른 사용자 단말(200)들은 실시간 또는 원하는 시간에 영상을 수신할 수 있다.The video frame transmission system for minimizing image quality degradation according to an additional embodiment of the present invention can be configured as a system for real-time streaming transmission and VOD video transmission. The user terminal (200) transmits the captured video to the main server (100), and other user terminals (200) can receive the video in real time or at a desired time.
본 발명의 일 실시예는 MCU 방식뿐만 아니라, SFU 방식에서도 당업자가 설계가능한 범위내에서 변형되어 실시될 수도 있으며, 그 외 영상 전송이 필요한 기술분야의 영상 인코더에서도 적용될 수 있다. One embodiment of the present invention can be implemented by modifying the method within a designable range for those skilled in the art, not only in the MCU method but also in the SFU method, and can also be applied to a video encoder in other technical fields requiring video transmission.
이하, 도 2를 참조하여 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 메인서버(100) 구성에 대하여 설명하도록 한다.Hereinafter, with reference to FIG. 2, the configuration of the main server (100) of the video frame transmission method for minimizing image quality degradation according to one embodiment of the present invention will be described.
메인서버(100)는 미디어 스트림 생성장치(110) 및 미디어 스트림 전송장치(120)로 구성된다.The main server (100) is composed of a media stream generation device (110) and a media stream transmission device (120).
미디어 스트림 생성장치(110)는 각 사용자 단말(200)로부터 수신 받은 영상을 메인 프레임 스트림(300) 및 서브 프레임 스트림(310)으로 인코딩한다. 메인 프레임 스트림(300) 및 서브 프레임 스트림(310) 에 대한 설명은 이하 도 6a를 참조하여 후술하도록 한다.The media stream generation device (110) encodes the video received from each user terminal (200) into a main frame stream (300) and a sub frame stream (310). A description of the main frame stream (300) and the sub frame stream (310) will be described later with reference to FIG. 6a.
미디어 스트림 전송장치(120)는 미디어 스트림 생성장치(110)에서 생성한 메인 프레임 스트림(300) 및 서브 프레임 스트림(310)을 각 사용자 단말(200)로 전송한다. 메인 프레임 스트림(300) 및 서브 프레임 스트림(310)의 전송에 대한 설명은 이하 도 6b를 참조하여 후술하도록 한다.The media stream transmission device (120) transmits the main frame stream (300) and sub frame stream (310) generated by the media stream generation device (110) to each user terminal (200). A description of the transmission of the main frame stream (300) and sub frame stream (310) will be described later with reference to FIG. 6b.
이하, 도 3을 참조하여 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 미디어 스트림 전송장치(120)의 구성에 대하여 설명하도록 한다.Hereinafter, with reference to FIG. 3, the configuration of a media stream transmission device (120) of a video frame transmission method for minimizing image quality degradation according to one embodiment of the present invention will be described.
미디어 스트림 전송장치(120)는 n개의 서브전송장치로 구성될 수 있다. 서브전송장치1(121), 서브전송장치2(122), ??, 서브전송장치n(123)으로 구성되는 n개의 서브전송장치는 각 사용자 단말(200)의 개수와 동일하게 구성되고 각 서브장치 자신과 대응하는 사용자 단말(200)에 메인 프레임 스트림(300) 또는 서브 프레임 스트림(310)을 전송하도록 한다. 이 때, 서브전송장치는 소프트웨어적으로 구성되어 프레임 스트림의 전송을 제공하는 가상의 전송장치이다.The media stream transmission device (120) may be composed of n sub-transmission devices. The n sub-transmission devices, which are composed of sub-transmission device 1 (121), sub-transmission device 2 (122), ??, and sub-transmission device n (123), are configured to have the same number of user terminals (200) and transmit a main frame stream (300) or a sub-frame stream (310) to the user terminal (200) corresponding to each sub-device. At this time, the sub-transmission device is a virtual transmission device configured in software and providing transmission of a frame stream.
따라서, 각 사용자 단말에서 네트워크 문제로 인해 일부 프레임이 전송되지 못하여서, 해당 프레임을 요청하는 신호를 메인서버(100)로 전송하였을 경우, 각 사용자 단말(200)마다 대응하는 서브전송장치가 구성되어 있기에, 메인서버(100)는 즉각적으로 반응하여 해당 요청 신호를 전송한 사용자 단말(200)로 피드백을 할 수 있다. Accordingly, when some frames are not transmitted due to a network problem at each user terminal and a signal requesting the corresponding frame is transmitted to the main server (100), since a corresponding sub-transmission device is configured for each user terminal (200), the main server (100) can immediately react and provide feedback to the user terminal (200) that transmitted the corresponding request signal.
이하, 도 4를 참조하여 본 발명의 일 실시예에 따르는 화질저하를 최소화하기 위한 영상프레임 전송방법의 동작순서에 대하여 상세히 설명하도록 한다.Hereinafter, with reference to FIG. 4, the operation sequence of a video frame transmission method for minimizing image quality degradation according to one embodiment of the present invention will be described in detail.
먼저, 메인서버(100)가 미디어 스트림 생성장치(110)에서 영상들을 인코딩하여 메인 프레임 스트림(300) 및 서브 프레임 스트림(310)을 병렬 생성한다.(S100) 이하 본 발명의 일 실시예에 따르는 메인 프레임 스트림(300) 및 서브 프레임 스트림(310)의 구성에 대하여 설명하도록 한다.First, the main server (100) encodes images in the media stream generation device (110) to generate a main frame stream (300) and a sub frame stream (310) in parallel (S100). Hereinafter, the configuration of the main frame stream (300) and the sub frame stream (310) according to one embodiment of the present invention will be described.
먼저, 도면에 나타난 용어를 먼저 정의하자면, GOP는 인코딩이 완료된 이미지 프레임 그룹으로 I-Frame, P-Frame, B-Frame으로 구성된다. I-Frame은 키프레임(Key frame)이라고 불리며, GOP의 기준이 되는 핵심 프레임이다. GOP의 첫 프레임은 반드시 I-Frame으로 시작된다. 전체 프레임에 대한 압축을 하여서 데이터량이 많고 용량이 크다. 도 5에서 I-Frame은 알파벳 "I"로 표기하였다. P-Frame은 이전에 위치한 I-Frame을 기준으로 차이가 나는 부분 데이터만 예측하여 저장한 프레임이다. 예를 들어 사람이 가만히 선 채로 팔만 굽혔다 폈을 때, 움직임이 있는 팔에 대한 데이터만 예측하는 저장한 프레임이 P-Frame이다. 이렇게 차이가 있는 부분만 압축하여 용량이 I-Frame의 3분의 1크기이다. 도 5에서 P-Frame은 알파벳 "P"로 표기하였다. B-Frame은 I-Frame과 P-Frame 사이에 위치하여 I-Frame과 P-Frame사이의 움직임을 추측 데이터로 저장한 프레임으로 차이가 있는 부분만 압축하여 용량이 P-Frame의 3분의 1이다.First, let's define the terms shown in the drawing. GOP is a group of image frames for which encoding is complete, and it consists of I-Frame, P-Frame, and B-Frame. I-Frame is called a key frame and is a core frame that serves as the basis for GOP. The first frame of GOP always starts with I-Frame. Since the entire frame is compressed, the amount of data is large and the capacity is large. In Fig. 5, I-Frame is indicated by the alphabet "I". P-Frame is a frame that predicts and stores only the data for the part that is different from the previously located I-Frame. For example, when a person stands still and only bends and stretches his or her arm, a frame that predicts only the data for the moving arm is a P-Frame. Since only the part that is different is compressed in this way, the capacity is one-third of the size of I-Frame. In Fig. 5, P-Frame is indicated by the alphabet "P". B-Frame is located between I-Frame and P-Frame and is a frame that stores the movement between I-Frame and P-Frame as estimated data. It compresses only the differences and has a capacity of one-third of P-Frame.
도 6a는 본 발명의 일 실시예에 따르는 메인 프레임 스트림(300)과 서브 프레임 스트림(310)의 구성 차이를 나타내는 도면이다. 도 6a에서 메인 프레임 스트림(300)의 GOP는 1개의 I-Frame과 9개의 P-Frame으로 구성되는 것을 알 수 있고, 서브 프레임 스트림(310)의 GOP는 1개의 I-Frame과 3개의 P-Frame으로 구성되는 것을 알 수 있다. 이 때, 메인 프레임 스트림 GOP의 P-Frame과 서브 프레임 스트림 GOP의 P-Frame의 개수는 일 실시예이며 서브 프레임 스트림 GOP의 P-Frame이 메인 프레임 스트림 GOP의 P-Frame보다 많도록 구성될 수 도 있다. 또한 서브 프레임 스트림 GOP의 프레임 수는, 사용자 단말이 요청하는 서브프레임 스트림에 곧바로 대응하여 전송되는 가변형태가 될 수도 있다. 그에 따라, 서브프레임 스트림 GOP 내 프레임수는 고정된 형태가 아닌, 상황에 따라 변화할 수도 있다.FIG. 6A is a diagram showing the difference in configuration between a main frame stream (300) and a sub frame stream (310) according to one embodiment of the present invention. In FIG. 6A, it can be seen that a GOP of a main frame stream (300) is composed of one I-Frame and nine P-Frames, and a GOP of a sub frame stream (310) is composed of one I-Frame and three P-Frames. At this time, the number of P-Frames of the main frame stream GOP and the number of P-Frames of the sub frame stream GOP is one embodiment, and may be configured so that the P-Frames of the sub frame stream GOP are greater than the P-Frames of the main frame stream GOP. In addition, the number of frames of the sub frame stream GOP may be a variable form that is transmitted in direct response to a sub frame stream requested by a user terminal. Accordingly, the number of frames in the sub frame stream GOP may not be fixed, but may change depending on the situation.
실시간 화상 통신 기술에서 영상 프레임 전송으로 인한 네트워크 트래픽을 줄이고 화질을 유지하는 방법은 I-Frame의 발생을 최소화 시키고, P-Frame과 B-Frame을 최대한 발생시키는 것이다. 그러나 필요에 따라 B-Frame은 구성에서 제외 될 수 있다.In real-time video communication technology, a method to reduce network traffic due to video frame transmission and maintain image quality is to minimize the occurrence of I-Frames and maximize the occurrence of P-Frames and B-Frames. However, B-Frames can be excluded from the configuration if necessary.
메인 프레임 스트림(300) 및 서브 프레임 스트림(310)은 복수의 GOP들이 연속된 구조로 형성되는데, 메인 프레임 스트림의 GOP를 단위 메인 프레임, 서브 프레임 스트림의 GOP를 단위 서브 프레임이라 칭할 수도 있다. The main frame stream (300) and the sub frame stream (310) are formed in a structure in which multiple GOPs are sequentially formed. The GOP of the main frame stream may be called a unit main frame, and the GOP of the sub frame stream may be called a unit sub frame.
메인 프레임 스트림 GOP는 제 1 메인 프레임 스트림 GOP, ??, 제 n 메인 프레임 스트림 GOP로 구성되고, 서브 프레임 스트림 GOP는 제 1 서브 프레임 스트림 GOP, ??, 제 m 서브 프레임 스트림 GOP로 구성된다. 각각의 프레임 스트림 GOP는 I-Frame부터 시작하도록 구성되고, P-Frame이 연이어지도록 구성된다. 이때, 서브 프레임 스트림 GOP의 P-Frame의 개수는 메인 프레임 스트림 GOP의 P-Frame 개수보다 적게 구성된다.The main frame stream GOP is composed of the first main frame stream GOP, ??, and the nth main frame stream GOP, and the sub-frame stream GOP is composed of the first sub-frame stream GOP, ??, and the mth sub-frame stream GOP. Each frame stream GOP is configured to start from an I-Frame and is configured to have P-Frames consecutively. At this time, the number of P-Frames of the sub-frame stream GOP is configured to be less than the number of P-Frames of the main frame stream GOP.
메인서버(100)는 생성된 메인 프레임 스트림(300)을 제 1 사용자 단말로 실시간 송신한다.(S110) 메인서버(100)의 미디어 스트림 전송장치(120)가 서브전송장치1(121)을 통해 제 1 사용자 단말로 메인 프레임 스트림(300)을 전송한다.The main server (100) transmits the generated main frame stream (300) to the first user terminal in real time. (S110) The media stream transmission device (120) of the main server (100) transmits the main frame stream (300) to the first user terminal through the sub-transmission device 1 (121).
메인서버(100)가 생성된 메인 프레임 스트림(300)을 제 2 사용자 단말로 실시간 송신한다.(S120) 메인서버(100)의 미디어 스트림 전송장치(120)가 서브전송장치2(122)를 통해 제 2 사용자 단말로 메인 프레임 스트림(300)을 전송한다. 같은 방법으로 서브전송장치n(123)을 통해 제 n 사용자 단말에 메인 프레임 스트림(300)을 전송할 수 있다.The main server (100) transmits the generated main frame stream (300) to the second user terminal in real time. (S120) The media stream transmission device (120) of the main server (100) transmits the main frame stream (300) to the second user terminal through the sub-transmission device 2 (122). In the same way, the main frame stream (300) can be transmitted to the nth user terminal through the sub-transmission device n (123).
제 1 사용자 단말이 메인서버(100)에 서브 프레임 스트림 GOP의 I-Frame 전달을 요청한다.(S130) 사용자 단말(200)은 메인 프레임 스트림(300)을 수신하던 중 전송된 네트워크 패킷이 손실된 경우, 네트워크 통신의 불안정으로 패킷 병목현상이 발생되는 경우 및 네트워크 패킷 자체의 무결성에 흠결이 존재하여 사용자 단말(200)에서 디코딩이 불가한 것으로 판단한 경우 중 어느 하나에 해당하는 경우 메인서버(100)로 서브 프레임 스트림 GOP의 I-Frame전달을 요청한다.The first user terminal requests the main server (100) to transmit the I-Frame of the sub-frame stream GOP. (S130) The user terminal (200) requests the main server (100) to transmit the I-Frame of the sub-frame stream GOP in any of the following cases: when a network packet transmitted while receiving the main frame stream (300) is lost; when a packet bottleneck occurs due to instability in network communication; and when the integrity of the network packet itself is defective and decoding is determined to be impossible by the user terminal (200).
예를 들어, 제 1 사용자 단말은 기 설정된 값(EX: 3mbps)보다 네트워크 속도가 낮아질 경우 메인서버(100)에 서브 프레임 스트림 GOP의 I-Frame을 요청할 수 있다.For example, the first user terminal can request an I-Frame of a sub-frame stream GOP from the main server (100) when the network speed is lower than a preset value (EX: 3 mbps).
서버는 사용자 단말로부터 요청 받은 시각에 대응하는 타임스탬프를 갖는 서브 프레임 스트림 GOP의 I-Frame을 전달한다.(S140) 이어서, 한 구간의 서브 프레임 스트림 GOP가 종료된 후, 그 다음 순번의 메인 프레임 스트림 GOP가 재생될 타이밍에는 그 다음 메인 프레임 스트림 GOP의 I-Frame을 전송한다.(S150) The server transmits an I-Frame of a sub-frame stream GOP having a timestamp corresponding to the time requested from the user terminal. (S140) Then, after one section of the sub-frame stream GOP ends, at the timing when the next main frame stream GOP is to be played, the I-Frame of the next main frame stream GOP is transmitted. (S150)
종래의 경우, 도 5와 같이 메인 프레임 스트림(300)이 전송되는 도중에 단말 측에서 패킷 유실로 인해 일부 메인 프레임 스트림 GOP의 P-Frame을 수신 받지 못하는 등의 문제가 있을 때, 단말에서는 그 다음 메인 프레임 스트림 GOP의 I-Frame을 메인서버(100)로 요청할 수 있다. 이때, 메인서버(100)는 정해진 메인 프레임 스트림 GOP를 무시하고 그 다음 순번의 메인 프레임 스트림 GOP의 I-Frame을 곧바로 전송하게 된다. 따라서, 도5에 표현되었다시피 유실된 메인 프레임 스트림 GOP의 P-Frame을 전송하는 것이 아니라, 건너 뛰고, 그 다음의 메인 프레임 스트림 GOP의 I-frame 을 전송하게 된다. 이렇게 메인 프레임 스트림 GOP의 I-frame 요청이 빈번하게 발생되면 네트워크 트래픽을 증가시키고 사용자 단말(200)로 전달되는 영상의 화질도 저하시키게 된다. 또한 잦은 요청은 서버에 부하를 증가시킬 수 있고, 다른 사용자 단말(200)의 메인 프레임 스트림(300) 전송에도 영향을 줄 수 있다.In the conventional case, when there is a problem such as not receiving some P-Frames of main frame stream GOPs due to packet loss at the terminal side while the main frame stream (300) is being transmitted as shown in FIG. 5, the terminal can request the I-Frame of the next main frame stream GOP to the main server (100). At this time, the main server (100) ignores the set main frame stream GOP and immediately transmits the I-Frame of the next main frame stream GOP. Therefore, as shown in FIG. 5, instead of transmitting the P-Frame of the lost main frame stream GOP, it skips it and transmits the I-frame of the next main frame stream GOP. If requests for the I-frame of the main frame stream GOP occur frequently in this way, it increases network traffic and also deteriorates the image quality of the video transmitted to the user terminal (200). Additionally, frequent requests may increase the load on the server and may also affect the transmission of the main frame stream (300) to other user terminals (200).
반면 본 발명의 일 실시예는, 패킷이 유실된 지점에서 그에 대응하는 서브 프레임 스트림 GOP의 I-Frame을 전송함으로써, 종래기술의 문제점을 해결할 수 있다.On the other hand, one embodiment of the present invention can solve the problem of the prior art by transmitting the I-Frame of the sub-frame stream GOP corresponding to the point where the packet is lost.
즉, 메인 서버는 메인 프레임 스트림(300)과 서브 프레임 스트림(310)을 병렬적으로 동시에 생성을 하는데, 패킷이 유실되어 사용자 단말에 일부 메인 프레임 스트림 GOP의 P-Frame이 누락되는 경우가 발생될 경우, 그 다음 메인 프레임 스트림 GOP로 건너뛰지 않고, 누락된 프레임에 대응하는 서브 프레임 스트림 GOP의 I-Frame을 전송함으로써, 빠르게 대응할 수 있다. 한편, 서브 프레임 스트림 GOP의 I-Frame을 요청한 사용자 단말(200) 외에 다른 사용자 단말(200)은 패킷유실이 발생되지 않아 서브 프레임 스트림 GOP의 I-Frame을 요청하지 않았다면, 메인 프레임 스트림(300)을 계속 전송 받기 때문에 서브 프레임 스트림 GOP의 I-Frame 전송 요청으로 화질의 저하가 최소화 된다.That is, the main server simultaneously generates the main frame stream (300) and the sub frame stream (310) in parallel, and when a packet is lost and some P-Frames of the main frame stream GOP are missing at the user terminal, the server can quickly respond by transmitting the I-Frame of the sub frame stream GOP corresponding to the missing frame without skipping to the next main frame stream GOP. Meanwhile, if other user terminals (200) than the user terminal (200) that requested the I-Frame of the sub frame stream GOP did not request the I-Frame of the sub frame stream GOP because packet loss did not occur, the main frame stream (300) continues to be transmitted, and thus the degradation of image quality due to the request for transmission of the I-Frame of the sub frame stream GOP is minimized.
구체적으로, 도 6b를 참조하여 설명하면, 도 6b는 활성화되어 전송중인 메인 프레임 스트림(300)과 비활성화되어 전송되지 않고 있는 서브 프레임 스트림(310)을 나타낸 도면이며, 메인 프레임 스트림(300)과 서브 프레임 스트림(310)이 각 메인 프레임 스트림 GOP와 서브 프레임GOP를 갖게 된다. 각각의 메인 프레임 GOP와 서브 프레임 GOP는 메타데이터로서 타임스탬프를 갖도록 구성되는데, 타임스탬프란 해당 프레임이 재생되는 시각에 관한 시구간 식별자를 의미한다. Specifically, referring to FIG. 6B, FIG. 6B is a diagram showing a main frame stream (300) that is activated and being transmitted and a sub frame stream (310) that is deactivated and not being transmitted, and the main frame stream (300) and the sub frame stream (310) have a main frame stream GOP and a sub frame GOP, respectively. Each main frame GOP and sub frame GOP is configured to have a timestamp as metadata, and the timestamp means a time interval identifier regarding the time at which the corresponding frame is played back.
네트워크가 불안정하여 제 1 사용자 단말이 서브 프레임 스트림 GOP의 I-Frame 전달을 요청한 시각(①)은 첫 번째 메인 프레임GOP 중 4번째 P-Frame까지만 전송된 시각과 동일하다. 일 예로, 서브 프레임 스트림(310) 중 이 시각에 대응하는 서브 프레임 스트림 GOP는 도 6b의 세번째 구간에 있는 서브 프레임 스트림 GOP가 될 수 있다. 그에 따라, 메인서버(100)는 세번째 구간에 있는 서브 프레임 스트림 GOP의 I-Frame을 사용자 단말로 전달함(②)으로써 서브 프레임 스트림(310)이 활성화된다.The time (①) at which the first user terminal requests transmission of the I-Frame of the sub-frame stream GOP due to unstable network is the same as the time at which only the fourth P-Frame of the first main frame GOP is transmitted. For example, the sub-frame stream GOP corresponding to this time among the sub-frame streams (310) may be the sub-frame stream GOP in the third section of Fig. 6b. Accordingly, the main server (100) transmits the I-Frame of the sub-frame stream GOP in the third section to the user terminal (②), thereby activating the sub-frame stream (310).
즉, 첫번째 메인 프레임 스트림 GOP의 전송이 완료되지 않았더라도 사용자 단말(200)이 요청한 재생시각에 대응하는 타임스탬프를 갖는 서브 프레임 스트림 GOP의 I-Frame을 전송한다. 서브 프레임 스트림(310)을 전송하기 때문에 메인 프레임 스트림(300)에는 영향을 주지 않고, 다른 사용자 단말(200)(EX: 제 2 사용자 단말, 제 3 사용자 단말,..)의 메인 프레임 스트림(300) 전송에도 영향을 주지 않는다.That is, even if the transmission of the first main frame stream GOP is not completed, the I-Frame of the sub frame stream GOP having the timestamp corresponding to the playback time requested by the user terminal (200) is transmitted. Since the sub frame stream (310) is transmitted, the main frame stream (300) is not affected, and the transmission of the main frame stream (300) of other user terminals (200) (EX: the second user terminal, the third user terminal, etc.) is not affected.
이러한 서브 프레임 스트림 GOP 제공은 두 번째 메인 프레임 스트림 GOP를 전송해야 할 시각에 도달할 때까지 이루어진다. 도6b에서는 세번째 서브 프레임 스트림 GOP만 전송(③)하는 것으로 도시되었으나, 경우에 따라, 세번째와 네번째 서브 프레임 스트림 GOP 전송을 마친 후 두 번째 메인 프레임 스트림 GOP를 전송 할 수도 있다. This provision of sub-frame stream GOPs is carried out until the time to transmit the second main frame stream GOP is reached. In Fig. 6b, only the third sub-frame stream GOP is transmitted (③), but in some cases, the second main frame stream GOP may be transmitted after the third and fourth sub-frame stream GOPs are transmitted.
이후에 패킷 유실 등의 특별한 상황이 없다면, 메인서버(100)는 메인 프레임 스트림(300)을 제 1 사용자 단말로 이어서 송신한다.(S160) 서브 프레임 스트림 GOP의 의 전달이 완료되어 그 다음 메인 프레임 스트림 GOP가 시작되고, 메인 프레임 스트림 GOP의 I-Frame 전달이 되면 메인 프레임 스트림(300)이 활성화되어 제 1 사용자 단말로 실시간 송신된다.Afterwards, if there are no special circumstances such as packet loss, the main server (100) continues to transmit the main frame stream (300) to the first user terminal. (S160) When the transmission of the sub-frame stream GOP is completed, the next main frame stream GOP starts, and when the I-Frame of the main frame stream GOP is transmitted, the main frame stream (300) is activated and transmitted in real time to the first user terminal.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. An embodiment of the present invention may also be implemented in the form of a recording medium containing computer-executable instructions, such as program modules, that are executed by a computer. The computer-readable medium may be any available medium that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include all computer storage media. The computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.Although the methods and systems of the present invention have been described with respect to specific embodiments, some or all of their components or operations may be implemented using a computer system having a general-purpose hardware architecture.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustrative purposes, and those skilled in the art will understand that the present invention can be easily modified into other specific forms without changing the technical idea or essential characteristics of the present invention. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive. For example, each component described as a single component may be implemented in a distributed manner, and likewise, components described as distributed may be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the claims described below rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention.
100: 메인서버 200: 사용자 단말
110: 미디어 스트림 생성장치 120: 미디어 스트림 전송장치
300: 메인 프레임 스트림 310: 서브 프레임 스트림100: Main server 200: User terminal
110: Media stream generator 120: Media stream transmission device
300: Main Frame Stream 310: Sub Frame Stream
Claims (10)
(a) I-Frame, P-Frame, B-Frame 중 적어도 하나로 구성되는 메인 프레임 스트림과 서브 프레임 스트림을 생성하는 단계;
(b) 복수의 사용자 단말로 상기 메인 프레임 스트림을 전송하는 단계; 및
(c) 적어도 하나의 사용자 단말로부터 상기 서브 프레임 스트림 요청을 수신하는 경우, 그 다음 순번의 메인 프레임 스트림 전송 타이밍이 될 때까지 상기 서브 프레임 스트림을 상기 요청한 사용자 단말로 전송하는 단계를 포함하고,
상기 (c)단계는
상기 사용자 단말로 전송된 네트워크 패킷이 손실된 경우;
네트워크 통신의 불안정으로 패킷 병목현상이 발생되는 경우; 및
상기 네트워크 패킷 자체의 무결성에 흠결이 존재하여 상기 사용자 단말에서 디코딩이 불가한 것으로 판단한 경우; 중 어느 하나에 해당할 때, 상기 사용자 단말에서 상기 서브 프레임 스트림을 요청하는 단계와,
상기 사용자 단말이 상기 메인 프레임 스트림의 상기 I-Frame, P-Frame 및 B-Frame 중 적어도 어느 하나의 Frame이 누락된 경우, 상기 서브 프레임 스트림으로 상기 I-Frame을 요청하고,
상기 서버가 상기 서브 프레임 스트림을 활성화 하고, 상기 서브 프레임 스트림의 상기 I-Frame을 상기 사용자 단말로 전송하는 단계를 포함하는 것인,
화질저하를 최소화하기 위한 영상프레임 전송방법.In a method of transmitting video frames to minimize image quality degradation performed by a server,
(a) a step of generating a main frame stream and a sub frame stream each consisting of at least one of an I-Frame, a P-Frame, and a B-Frame;
(b) a step of transmitting the main frame stream to multiple user terminals; and
(c) when receiving the sub-frame stream request from at least one user terminal, a step of transmitting the sub-frame stream to the requesting user terminal until the next sequential main frame stream transmission timing occurs,
The above step (c)
If a network packet transmitted to the above user terminal is lost;
When packet bottleneck occurs due to instability in network communication; and
When it is determined that the integrity of the network packet itself is defective and decoding is not possible at the user terminal; when any of the following applies, a step of requesting the subframe stream at the user terminal;
If the user terminal is missing at least one frame among the I-Frame, P-Frame and B-Frame of the main frame stream, the user terminal requests the I-Frame through the sub-frame stream,
The step of the server activating the sub-frame stream and transmitting the I-Frame of the sub-frame stream to the user terminal is included.
A method of transmitting video frames to minimize image quality degradation.
상기 서버는 미디어 스트림 생성장치 및 미디어 스트림 전송장치로 구성되고,
상기 서브 프레임 스트림은 상기 메인 프레임 스트림보다 적은 개수의 프레임으로 구성되는 것인,
화질저하를 최소화하기 위한 영상프레임 전송방법.In paragraph 1,
The above server is composed of a media stream generation device and a media stream transmission device,
The above sub-frame stream is composed of a smaller number of frames than the above main frame stream,
A method of transmitting video frames to minimize image quality degradation.
상기 (a)단계는
상기 미디어 스트림 생성장치를 통해서 상기 메인 프레임 스트림과 상기 서브 프레임 스트림을 병렬적으로 생성하는 것인,
화질저하를 최소화하기 위한 영상프레임 전송방법.In the second paragraph,
The above step (a)
The main frame stream and the sub frame stream are generated in parallel through the above media stream generating device.
A method of transmitting video frames to minimize image quality degradation.
상기 미디어 스트림 전송장치는
상기 복수의 사용자 단말의 개수와 동일한 개수로 생성된 복수 개의 서브 전송장치를 포함하며,
각 서브 전송장치는 자신과 대응하는 사용자 단말의 메인 프레임 스트림 또는 서브 프레임 스트림 요청을 수신하는 것인,
화질저하를 최소화하기 위한 영상프레임 전송방법.In the second paragraph,
The above media stream transmission device
It includes a plurality of sub-transmitting devices generated in the same number as the number of the above-mentioned multiple user terminals,
Each sub-transmitter receives a main frame stream or sub-frame stream request from its corresponding user terminal.
A method of transmitting video frames to minimize image quality degradation.
상기 (a) 단계는,
상기 메인 프레임 스트림이 시간순에 따라 제1단위 메인 프레임, ... , 제n단위 메인 프레임 (n은 1보다 큰 자연수)으로 구성되고,
상기 서브 프레임 스트림이 시간순에 따라, 제1단위 서브 프레임, ... , 제m단위 서브 프레임 (m은 1보다 큰 자연수)으로 구성될 때,
각 메인 프레임 스트림과 각 서브 프레임 스트림을 생성할 때마다 해당 영상이 재생되는 시각에 관한 타임스탬프를 연계하여 생성하는 것인,
화질저하를 최소화하기 위한 영상프레임 전송방법.In paragraph 1,
Step (a) above,
The above main frame stream is composed of the first unit main frame, ..., nth unit main frame (n is a natural number greater than 1) in chronological order,
When the above subframe stream is composed of the 1st unit subframe, ..., mth unit subframe (m is a natural number greater than 1) in time order,
Each main frame stream and each sub frame stream are generated by linking them to a timestamp about the time at which the video is played.
A method of transmitting video frames to minimize image quality degradation.
상기 (c)단계는
하나의 단위 메인 프레임의 전송이 완료되지 않았더라도, 상기 사용자 단말이 요청한 영상 재생시각에 대응하는 타임스탬프를 갖는 상기 서브 프레임 스트림을 전송하되,
상기 그 다음 순번의 단위 메인 프레임이 전송될 시각이 도래하는 경우, 상기 서브 프레임 스트림의 전송을 중단하고 그 다음 순번의 단위 메인 프레임을 전송하는 것인,
화질저하를 최소화하기 위한 영상프레임 전송방법.In paragraph 1,
The above step (c)
Even if the transmission of one main frame unit is not completed, the sub-frame stream having a timestamp corresponding to the video playback time requested by the user terminal is transmitted,
When the time for transmitting the next main frame of the above sequence arrives, the transmission of the sub-frame stream is stopped and the next main frame of the above sequence is transmitted.
A method of transmitting video frames to minimize image quality degradation.
상기 단위 메인 프레임과 단위 서브 프레임은 I-Frame부터 시작하도록 구성되고 P-Frame이 연이어지도록 구성되되, P-Frame의 개수에 있어 상기 단위 서브 프레임이 상기 단위 메인 프레임보다 적은 것인,
화질저하를 최소화하기 위한 영상프레임 전송방법.In Article 7,
The above unit main frame and unit sub-frame are configured to start from an I-Frame and are configured to be consecutive with P-Frames, but the number of P-Frames in the unit sub-frame is less than that in the unit main frame.
A method of transmitting video frames to minimize image quality degradation.
상기 서버는 MCU 방식의 서버 환경으로 구성이 가능한 것인,
화질저하를 최소화하기 위한 영상프레임 전송방법.In paragraph 1,
The above server can be configured as an MCU-type server environment.
A method of transmitting video frames to minimize image quality degradation.
화질저하를 최소화하기 위한 영상프레임 전송 방법에 관한 프로그램을 저장하는 메모리; 및
상기 프로그램을 실행하기 위한 프로세서를 포함하며,
상기 프로세서는 상기 프로그램의 실행에 따라 상기 방법을 수행하며,
상기 방법은
(a) I-Frame, P-Frame, B-Frame 중 적어도 하나로 구성되는 메인 프레임 스트림과 서브 프레임 스트림을 생성하는 단계;
(b) 복수의 사용자 단말로 상기 메인 프레임 스트림을 전송하는 단계; 및
(c) 적어도 하나의 사용자 단말로부터 상기 서브 프레임 스트림 요청을 수신하는 경우, 그 다음 순번의 메인 프레임 스트림 전송 타이밍이 될 때까지 상기 서브 프레임 스트림을 상기 요청한 사용자 단말로 전송하는 단계;를 포함하고,
상기 (c)단계는
상기 사용자 단말로 전송된 네트워크 패킷이 손실된 경우;
네트워크 통신의 불안정으로 패킷 병목현상이 발생되는 경우; 및
상기 네트워크 패킷 자체의 무결성에 흠결이 존재하여 상기 사용자 단말에서 디코딩이 불가한 것으로 판단한 경우; 중 어느 하나에 해당할 때, 상기 사용자 단말에서 상기 서브 프레임 스트림을 요청하는 단계와,
상기 사용자 단말이 상기 메인 프레임 스트림의 상기 I-Frame, P-Frame 및 B-Frame 중 적어도 어느 하나의 Frame이 누락된 경우, 상기 서브 프레임 스트림으로 상기 I-Frame을 요청하고,
상기 서버가 상기 서브 프레임 스트림을 활성화 하고, 상기 서브 프레임 스트림의 상기 I-Frame을 상기 사용자 단말로 전송하는 단계를 포함하는 것인,
화질저하를 최소화하기 위한 영상프레임 전송장치.In a video frame transmission device for minimizing image quality degradation performed by a server,
A memory storing a program for transmitting video frames to minimize image quality degradation; and
comprising a processor for executing the above program,
The above processor performs the above method according to the execution of the above program,
The above method
(a) a step of generating a main frame stream and a sub frame stream each consisting of at least one of an I-Frame, a P-Frame, and a B-Frame;
(b) a step of transmitting the main frame stream to multiple user terminals; and
(c) a step of transmitting the sub-frame stream to the requesting user terminal until the next main frame stream transmission timing arrives when the sub-frame stream request is received from at least one user terminal;
The above step (c)
If a network packet transmitted to the above user terminal is lost;
When packet bottleneck occurs due to instability in network communication; and
When it is determined that the integrity of the network packet itself is defective and decoding is not possible at the user terminal; when any of the following applies, a step of requesting the subframe stream at the user terminal;
If the user terminal is missing at least one frame among the I-Frame, P-Frame and B-Frame of the main frame stream, the user terminal requests the I-Frame through the sub-frame stream,
The step of the server activating the sub-frame stream and transmitting the I-Frame of the sub-frame stream to the user terminal is included.
A video frame transmission device to minimize image quality degradation.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020220012253A KR102738566B1 (en) | 2022-01-27 | 2022-01-27 | Method for video frame transmission to minimize image quality degradation |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020220012253A KR102738566B1 (en) | 2022-01-27 | 2022-01-27 | Method for video frame transmission to minimize image quality degradation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20230115599A KR20230115599A (en) | 2023-08-03 |
| KR102738566B1 true KR102738566B1 (en) | 2024-12-06 |
Family
ID=87568019
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020220012253A Active KR102738566B1 (en) | 2022-01-27 | 2022-01-27 | Method for video frame transmission to minimize image quality degradation |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR102738566B1 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101795958B1 (en) * | 2016-08-09 | 2017-12-01 | 연세대학교 산학협력단 | Adaptive control method, apparatus and user device for providing video in real time network cameras |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8914534B2 (en) * | 2011-01-05 | 2014-12-16 | Sonic Ip, Inc. | Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol |
| KR102154800B1 (en) * | 2014-01-10 | 2020-09-10 | 삼성전자주식회사 | Data streaming method of electronic apparatus and electronic apparatus thereof |
-
2022
- 2022-01-27 KR KR1020220012253A patent/KR102738566B1/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101795958B1 (en) * | 2016-08-09 | 2017-12-01 | 연세대학교 산학협력단 | Adaptive control method, apparatus and user device for providing video in real time network cameras |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20230115599A (en) | 2023-08-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20080100694A1 (en) | Distributed caching for multimedia conference calls | |
| US20150208103A1 (en) | System and Method for Enabling User Control of Live Video Stream(s) | |
| US20140104493A1 (en) | Proactive video frame dropping for hardware and network variance | |
| WO2016131223A1 (en) | Frame loss method for video frame and video sending apparatus | |
| US20200404330A1 (en) | Video sending and receiving method, apparatus, and terminal thereof | |
| KR20180031547A (en) | Method and apparatus for adaptively providing multiple bit rate stream media in server | |
| JP2012530430A (en) | Method, apparatus and system for reducing media delay | |
| US10085029B2 (en) | Switching display devices in video telephony | |
| CN103108186A (en) | Method of achieving high-definition transmission of videos | |
| CN114222156B (en) | Video editing method, device, computer equipment and storage medium | |
| CN101895719B (en) | Method for controlling video playing by utilizing video conference terminal, system and equipment thereof | |
| KR20240046575A (en) | Video encoding methods and apparatus, electronic devices, and storage media | |
| Zeng et al. | TVSR‐OR: Tile‐based 360‐degree video streaming over real time streaming protocol with optimized read | |
| CN105898390A (en) | Virtual video bus-based multi-channel rapid switching method and system | |
| KR102457526B1 (en) | Media stream transmission method, apparatus, system, and device | |
| CN108632679B (en) | A kind of method that multi-medium data transmits and a kind of view networked terminals | |
| KR102738566B1 (en) | Method for video frame transmission to minimize image quality degradation | |
| CN105979284B (en) | Mobile terminal video sharing method | |
| US9264666B1 (en) | Live streaming using multiple content streams | |
| Malinovskiy | Innovative Architectures for Ultra-Low-Latency WebRTC Streaming and Server-Side Recording in 2025: A Multi-Operator Perspective for Metro Manila | |
| Tamizhselvi et al. | Adaptive video streaming in mobile cloud computing | |
| KR102531337B1 (en) | Device, server and method for providing broadcast channel | |
| US20170150102A1 (en) | Media Content Updating Method, Apparatus, and System | |
| Twabi et al. | Real-time video streaming on the pub/sub architecture: Case of Apache Kafka | |
| CN106998328A (en) | A kind of video transmission method and device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| R15-X000 | Change to inventor requested |
St.27 status event code: A-3-3-R10-R15-oth-X000 |
|
| R16-X000 | Change to inventor recorded |
St.27 status event code: A-3-3-R10-R16-oth-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18 | Changes to party contact information recorded |
Free format text: ST27 STATUS EVENT CODE: A-5-5-R10-R18-OTH-X000 (AS PROVIDED BY THE NATIONAL OFFICE) |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |