KR102439595B1 - Adaptive video streaming system using receiver caching - Google Patents
Adaptive video streaming system using receiver caching Download PDFInfo
- Publication number
- KR102439595B1 KR102439595B1 KR1020200086396A KR20200086396A KR102439595B1 KR 102439595 B1 KR102439595 B1 KR 102439595B1 KR 1020200086396 A KR1020200086396 A KR 1020200086396A KR 20200086396 A KR20200086396 A KR 20200086396A KR 102439595 B1 KR102439595 B1 KR 102439595B1
- Authority
- KR
- South Korea
- Prior art keywords
- video
- client
- streaming
- clients
- group
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 abstract description 9
- 230000005540 biological transmission Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for program selection
- H04N21/4826—End-user interface for program selection using recommendation lists, e.g. of programs or channels sorted out according to their score
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Circuits Of Receivers In General (AREA)
- Information Transfer Between Computers (AREA)
Abstract
적응형 비디오 스트리밍 서버 및 적응형 비디오 스트리밍 서버에서 비디오를 스트리밍 받는 클라이언트로 구성된 적응형 비디오 스트리밍 시스템이 개시된다. 적응형 비디오 스트리밍 서버와 클라이언트는 각각 비디오 파일을 캐싱하고, 스트리밍할 비디오 파일이 다른 클라이언트에 캐싱되었는지 여부에 따라 적응적으로 스트리밍을 수행하여 통신망을 효율적으로 사용할 수 있다.An adaptive video streaming system comprising an adaptive video streaming server and a client receiving video streaming from the adaptive video streaming server is disclosed. The adaptive video streaming server and the client cache a video file, respectively, and perform streaming adaptively according to whether a video file to be streamed is cached in another client, so that the communication network can be used efficiently.
Description
하기의 실시예들은 적응형 비디오 스트리밍 시스템에 관한 것으로 구체적으로는 파일 스트림을 수신할 클라이언트가 저장하고 있는 파일에 대한 정보를 이용하여 적응적으로 스트리밍하는 비디오 스트리밍 시스템에 관한 것이다.The following embodiments relate to an adaptive video streaming system, and more specifically, to a video streaming system that adaptively streams using information about a file stored by a client to receive a file stream.
스트리밍은, 재생 전에 멀티미디어 파일 전체가 클라이언트에게 전송되는 다운로딩과 달리, 클라이언트가 소비하는 콘텐츠가 작은 조각으로 나뉘어 클라이언트에게 전송되는 프로세스이다. 최근에는 공중파 등을 이용한 방송뿐만 아니라, 인터넷을 이용한 개인 방송도 확산되고 있으며, 대부분의 개인 방송들은 유무선 인터넷을 이용한 스트리밍 방식으로 제공되고 있다.Streaming is a process in which content consumed by the client is divided into small pieces and transmitted to the client, unlike downloading, in which the entire multimedia file is transmitted to the client before playback. Recently, not only broadcasting using public waves, but also personal broadcasting using the Internet is spreading, and most personal broadcasting is provided in a streaming method using wired/wireless Internet.
비디오 스트리밍은 인터넷 트래픽의 대부분을 차지하고 있으며 급격히 증가하고 있어 효율적인 스트리밍 방식에 대한 요구가 매우 크다.Video streaming accounts for most of Internet traffic and is rapidly increasing, so there is a great demand for an efficient streaming method.
하기의 실시예들의 목적은 비디오 스트리밍에 소요되는 시간을 감소시키는 것이다.The purpose of the following embodiments is to reduce the time required for video streaming.
하기의 실시예들의 목적은 비디오 스트리밍의 효율성을 높이는 것이다.The purpose of the following embodiments is to increase the efficiency of video streaming.
예시적 실시예예 따른 적응형 비디오 스트리밍 서버는 제1 클라이언트로부터 제1 비디오에 대한 스트리밍 요청을 수신하고, 제2 클라이언트로부터 제2 비디오에 대한 스트리밍 요청을 수신하는 스트리밍 요청 수신부. 상기 제1 비디오와 상기 제2 비디오가 동일한 비디오인지 여부를 판단하는 판단부, 상기 제1 비디오와 상기 제2 비디오가 상이한 경우에, 상기 제1 클라이언트가 캐싱하는 비디오의 목록을 요청하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 요청하는 목록 요청부, 상기 제1 클라이언트가 캐싱하는 비디오의 목록을 수신하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 수신하는 비디오 목록 수신부, 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 상기 제2 비디오가 포함되었는지 비교하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 상기 제1 비디오가 포함되었는지 비교하는 비디오 목록 비교부 및 상기 비교 결과에 따라 상기 제1 비디오를 상기 제1 클라이언트로 스트리밍하고, 상기 제2 비디오를 상기 제2 클라이언트로 스트리밍하는 스트리밍부를 포함할 수 있다.An adaptive video streaming server according to an exemplary embodiment receives a streaming request for a first video from a first client, and a streaming request receiving unit for receiving a streaming request for a second video from a second client. A determination unit for determining whether the first video and the second video are the same video, if the first video and the second video are different, requesting a list of videos cached by the first client, 2 A list requesting unit for requesting a list of videos cached by a client, a video list receiving unit for receiving a list of videos cached by the first client, and a list of videos cached by the second client, the first client A video list comparison unit that compares whether the second video is included in the list of videos cached by the second client, and compares whether the first video is included in the list of videos cached by the second client, and the first video according to the result of the comparison and a streaming unit configured to stream a video to the first client and stream the second video to the second client.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오와 상기 제2 비디오가 동일한 경우에, 상기 제1 비디오를 상기 제1 클라이언트와 상기 제2 클라이언트로 브로드캐스트(Broadcast)할 수 있다.When the first video and the second video are the same, the adaptive video streaming server may broadcast the first video to the first client and the second client.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않거나, 상기 제2 비디오가 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않으면, 상기 제1 비디오를 상기 제1 클라이언트로 스트리밍하고, 상기 제2 비디오를 상기 제2 클라이언트로 스트리밍할 수 있다.If the first video is not included in the list of videos cached by the second client, or the second video is not included in the list of videos cached by the first client, the adaptive video streaming server is configured to Stream video to the first client, and stream the second video to the second client.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되고, 상기 제2 비디오가 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 포함되면, 상기 제1 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 제3 비디오를 인코딩하고, 상기 제3 비디오를 상기 제1 클라이언트 및 상기 제2 클라이언트로 브로드캐스트하고, 상기 제1 클라이언트로 전송된 제3 비디오는 상기 제1 클라이언트에 캐싱된 상기 제2 비디오와 배타적 논리합 연산 수행되어 상기 제1 비디오를 복원하기 위해 사용될 수 있다.If the first video is included in the list of videos cached by the second client, and the second video is included in the list of videos cached by the first client, the adaptive video streaming server is configured to The third video is encoded by performing an eXclusive OR (XOR) operation on the second video, the third video is broadcast to the first client and the second client, and the second video is transmitted to the first client. The third video may be used to reconstruct the first video by performing an exclusive OR operation with the second video cached in the first client.
상기 적응형 비디오 스트리밍 서버는 상기 제1 클라이언트로 상기 제2 비디오에 대한 정보를 전송하고, 상기 제3 비디오는 상기 전송된 정보에 기반하여 상기 배타적 논리합 연산 수행될 수 있다.The adaptive video streaming server may transmit information about the second video to the first client, and the exclusive OR operation may be performed on the third video based on the transmitted information.
예시적 실시예에 따라 적응형 비디오 스트리밍 서버로부터 비디오 스트림을 수신하는 클라이언트는 상기 적응형 비디오 스트리밍 서버로 제1 비디오에 대한 스트리밍 요청을 전송하는 스트리밍 요청 전송부, 상기 적응형 비디오 스트리밍 서버로부터 상기 스트리밍 요청에 응답하여 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청을 수신하는 목록 요청 수신부 및 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청에 응답하여 상기 클라이언트가 캐싱하는 비디오의 목록을 상기 적응형 스트리밍 서버로 전송하는 비디오 목록 전송부, 상기 전송된 비디오의 목록과 제2 클라이언트가 캐싱하는 비디오의 목록이 상기 적응형 비디오 스트리밍 서버에서 비교된 결과에 따라 상기 적응형 비디오 스트리밍 서버로부터 상기 제1 비디오의 스트림을 수신하는 비디오 스트림 수신부를 포함할 수 있다.According to an exemplary embodiment, a client receiving a video stream from an adaptive video streaming server includes a streaming request transmitter that transmits a streaming request for a first video to the adaptive video streaming server, and the streaming from the adaptive video streaming server. A list request receiving unit for receiving a request for a list of videos cached by the client in response to a request and a list of videos cached by the client in response to a request for a list of videos cached by the client in the adaptive streaming server A video list transmission unit to transmit to, the stream of the first video from the adaptive video streaming server according to a result of comparing the list of transmitted videos and the list of videos cached by the second client in the adaptive video streaming server It may include a video stream receiver for receiving.
상기 제1 비디오가 상기 제2 클라이언트가 상기 적응형 비디오 스트리밍 서버에 요청한 제2 비디오와 동일한 비디오인지 상기 적응형 비디오 스트리밍 서버에서 판단되고, 상기 클라이언트는 상기 판단 결과에 따라 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청을 수신할 수 있다.It is determined by the adaptive video streaming server whether the first video is the same video as the second video requested by the second client from the adaptive video streaming server, and the client determines whether the video is cached by the client according to the determination result. You can receive a request for a list.
상기 제1 비디오와 상기 제2 비디오가 동일한 경우에, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버에서 브로트캐스트(Broadcast)되는 상기 제1 비디오의 스트림을 수신할 수 있다.When the first video and the second video are the same, the client may receive the stream of the first video broadcast from the adaptive video streaming server.
상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않거나, 상기 제2 비디오가 상기 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않으면, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 제1 비디오의 스트림을 수신하고, 상기 제2 비디오는 상기 적응형 비디오 스트리밍 서버로부터 상기 제2 클라이언트로 스트리밍될 수 있다.If the first video is not included in the list of videos cached by the second client, or the second video is not included in the list of videos cached by the client, the client receiving a stream of video, and the second video may be streamed from the adaptive video streaming server to the second client.
상기 클라이언트는 디코딩부를 더 포함하고, 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되고, 상기 제2 비디오가 상기 클라이언트가 캐싱하는 비디오의 목록에 포함되면, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 제3 비디오의 스트림을 수신하고, 상기 제3 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 상기 제1 비디오를 디코딩할 수 있다.The client further comprises a decoding unit, and when the first video is included in the list of videos cached by the second client, and the second video is included in the list of videos cached by the client, the client is configured to: The first video may be decoded by receiving a stream of the third video from the type video streaming server and performing an XOR (eXclusive OR) operation on the third video and the second video.
상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 상기 제2 비디오에 대한 정보를 수신하고, 상기 수신된 정보에 기반하여 상기 배타적 논리합 연산을 수행할 수 있다.The client may receive the information on the second video from the adaptive video streaming server, and perform the exclusive OR operation based on the received information.
하기의 실시예들에 따르면, 비디오 스트리밍에 소요되는 시간을 감소시킬 수 있다.According to the following embodiments, it is possible to reduce the time required for video streaming.
하기의 실시예들에 따르면, 비디오 스트리밍의 효율성을 높일 수 있다.According to the following embodiments, it is possible to increase the efficiency of video streaming.
도 1은 통신망을 이용하여 복수의 클라이언트에 스트리밍하는 적응형 비디오 스트리밍 서버의 개념을 도시한 도면이다.
도 2는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 동작을 단계별로 설명한 순서도이다.
도 3은 예시적 실시예에 따른 적응형 비디오 스트리밍 서버의 구조를 도시한 블록도이다.
도 4는 예시적 실시예에 따른 클라이언트의 구조를 도시한 블록도이다.
도 5는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 성능을 해석한 도면이다.1 is a diagram illustrating the concept of an adaptive video streaming server that streams to a plurality of clients using a communication network.
Fig. 2 is a flowchart illustrating step-by-step operation of the adaptive video streaming system according to an exemplary embodiment.
Fig. 3 is a block diagram showing the structure of an adaptive video streaming server according to an exemplary embodiment.
Fig. 4 is a block diagram showing the structure of a client according to an exemplary embodiment.
Fig. 5 is a diagram illustrating performance analysis of an adaptive video streaming system according to an exemplary embodiment.
이하, 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, an embodiment will be described in detail with reference to the accompanying drawings.
도 1은 통신망을 이용하여 복수의 클라이언트에 스트리밍하는 적응형 비디오 스트리밍 서버의 개념을 도시한 도면이다.1 is a diagram illustrating the concept of an adaptive video streaming server that streams to a plurality of clients using a communication network.
적응형 비디오 스트리밍 서버(110)는 통신망(120)을 통해 복수의 클라이언트(130, 140)로 비디오의 스트림을 전송한다. 일측에 따르면, 적응형 비디오 스트리밍 서버(110)는 클라이언트들(130, 140)이 요청한 비디오에 따라서 인코딩을 달리하거나, 프로토콜을 변경하여 비디오의 스트림을 전송할 수 있다.The adaptive
예를 들어, 제1 클라이언트(130)와 제2 클라이언트(140)가 동일한 비디오에 대해 스트리밍을 요청한 경우, 적응형 비디오 스트리밍 서버(110)는 해당 비디오를 브로드캐스트(Broadcast)함으로써, 해당 비디오의 스트림을 전송할 수 있다.For example, when the
일측에 따르면, 제1 클라이언트(130)와 제2 클라이언트(140)는 일부 비디오 파일을 캐싱(caching)할 수 있다. 이 경우에, 적응형 비디오 스트리밍 서버(110)는 제1 클라이언트(130)와 제2 클라이언트(140)가 각각 캐싱하는 비디오 파일에 대한 정보를 이용하여 비디오의 스트림을 전송할 수 있다.According to one side, the
일측에 따르면, 제2 클라이언트(140)는 제1 클라이언트(130)가 요청한 비디오 파일을 캐싱하지 않을 수 있다. 또는 제1 클라이언트(130)는 제2 클라이언트(140)가 요청한 비디오 파일을 캐싱하지 않을 수 있다. 이 경우에, 적응형 비디오 스트리밍 서버(110)는 제1 클라이언트(130)가 요청한 비디오의 스트림을 제1 클라이언트(130)로 직접 전송하고, 제2 클라이언트(140)가 요청한 비디오의 스트림을 제2 클라이언트(140)로 직접 전송할 수 있다.According to one side, the
일측에 따르면, 제2 클라이언트(140)는 제1 클라이언트(130)가 요청한 비디오 파일을 캐싱하고, 제1 클라이언트(130)는 제2 클라이언트(140)가 요청한 비디오 파일을 캐싱할 수 있다. 이 경우에, 적응형 비디오 스트리밍 서버(110)는 제1 클라이언트(130)가 요청한 비디오 파일과 제2 클라이언트(140)가 요청한 비디오 파일을 인코딩하여 하나의 비디오 스트림을 생성하고, 인코딩된 비디오 스트림을 제1 클라이언트(130)와 제2 클라이언트(140)로 전송할 수 있다. 제1 클라이언트(130)는 인코딩된 비디오 스트림에서 제1 클라이언트(130)가 요청한 파일을 복원할 수 있다. 제2 클라이언트(140)는 인코딩된 비디오 스트림에서 제2 클라이언트(140)가 요청한 파일을 복원할 수 있다. 제1 클라이언트(130)와 제2 클라이언트(140)가 서로 다른 비디오를 요청한 경우에도, 적응형 비디오 스트리밍 서버는 인코딩된 비디오의 스트림을 1개만 전송함으로써, 비디오 스트리밍의 효율성을 향상시킬 수 있다.According to one side, the
도 2는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 동작을 단계별로 설명한 순서도이다.Fig. 2 is a flowchart illustrating step-by-step operation of the adaptive video streaming system according to an exemplary embodiment.
도 2에서, 적응형 비디오 스트리밍 서버(210)는 개의 비디오를 캐싱하고, 각 클라이언트는 개의 비디오 파일을 캐싱한다고 가정한다. 또한, 이다.2, the adaptive
단계(231)에서, 제1 클라이언트(221)는 제1 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(210)로 전송한다.In
단계(232)에서, 제2 클라이언트(222)는 제2 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(210)로 전송한다.In
각 클라이언트(221, 222)가 캐싱하는 비디오 파일의 집합을 이라고 하고, 각 클라이언트(221, 222)들이 적응형 비디오 스트리밍 서버(210)로 요청하는 비디오 파일을 이라고 할 수 있다. 여기서, n는 클라이언트의 인덱스이다.A set of video files cached by each client (221, 222) , and each client (221, 222) requests a video file from the adaptive
단계(240)에서, 적응형 비디오 스트리밍 서버(210)는 제1 비디오와 제2 비디오가 동일한 비디오인지 여부를 판단한다.In
만약, 제1 비디오와 제2 비디오가 동일한 비디오라면, 적응형 비디오 스트리밍 서버(210)는 단계(241) 및 단계(242)에서 해당 비디오를 제1 클라이언트(221) 및 제2 클라이언트(222)로 브로드캐스트(Broadcast)한다. 각 클라이언트들이 비디오 파일을 균일 분포(uniform distribution)로 저장한다면, 적응형 비디오 스트리밍 서버(210)가 각 클라이언트들(221, 222)에게 비디오를 브로드캐스트할 확률을 하기 수학식 1과 같다.If the first video and the second video are the same video, the adaptive
[수학식 1][Equation 1]
만약 제1 비디오와 제2 비디오가 상이한 비디오라면, 적응형 비디오 스트리밍 서버(210)는 단계(250)에서 제1 클라이언트(221) 및 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록을 요청한다.If the first video and the second video are different videos, the adaptive
단계(251)에서, 제1 클라이언트(221)는 제1 클라이언트(221)가 캐싱하는 비디오에 대한 목록 요청을 수신한다.In
단계(252)에서, 제2 클라이언트(222)는 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록 요청을 수신한다.In
단계(260)에서, 적응형 비디오 스트리밍 서버(210)는 제1 클라이언트(221)로부터 제1 클라이언트(221)가 캐싱하는 비디오에 대한 목록을 수신하고, 제2 클라이언트(222)로부터 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록을 수신한다.In
단계(270)에서, 적응형 비디오 스트리밍 서버(210)는 제1 클라이언트(221)가 제2 비디오를 캐싱하고, 제2 클라이언트(222)가 제1 비디오를 캐싱하는지 여부를 판단한다. 즉, 제1 클라이언트(221)가 캐싱하는 비디오의 목록에 제2 비디오가 포함되고, 제2 클라이언트(222)가 캐싱하는 비디오의 목록에 제1 비디오가 포함되는지 여부를 판단한다. 이를 간단히 제1 클라이언트(221)와 제2 클라이언트(222)가 비디오를 서로 교차저장하고 있는지 판단하는 것으로 해석할 수 있다.In
만약, 제1 클라이언트(221)가 제2 클라이언트(222)가 요구하는 비디오를 캐싱하고 있지 않거나, 제2 클라이언트(222)가 제1 클라이언트(221)가 요구하는 비디오를 캐싱하고 있지 않다면, 적응형 비디오 스트리밍 서버(210)는 단계(271)에서 각 클라이언트(221, 222)가 요구하는 비디오를 각각 전송한다. 단계(272)에서 제1 클라이언트(221)는 제1 비디오의 스트림을 수신하고, 단계(273)에서 제2 클라이언트(222)는 제2 비디오의 스트림을 수신할 수 있다. 제1 클라이언트(221)는 제1 비디오의 스트림을 수신하고, 단계(273)에서 제2 클라이언트(222)는 제2 비디오의 스트림을 수신할 확률은 하기 수학식 2와 같다.If the
[수학식 2][Equation 2]
만약 제1 클라이언트(221)가 제2 클라이언트(222)가 요구하는 비디오를 캐싱하고, 제2 클라이언트(222)가 제1 클라이언트(221)가 요구하는 비디오를 캐싱하고 있다면(제1 비디오가 제2 클라이언트(222)가 캐싱하는 비디오의 목록에 포함되고, 제2 비디오가 제1 클라이언트(221)가 캐싱하는 비디오의 목록에 포함되면), 적응형 비디오 스트리밍 서버(210)는 단계(280)에서 제1 비디오와 제2 비디오를 인코딩하여 제3 비디오를 생성할 수 있다. 여기서, 적응형 비디오 스트리밍 서버(210)는 배타적 논리합(XOR: eXclusive OR)연산을 이용하여 인코딩을 수행할 수 있다.If the
단계(281)에서, 적응형 비디오 스트리밍 서버(210)는 인코딩된 영상을 제1 클라이언트(221) 및 제2 클라이언트(222)로 브로드캐스트할 수 있다. 2개의 클라이언트(221, 222)가 요구하는 비디오가 서로 상이하지만, 적응형 비디오 스트리밍 서버(210)는 1개의 비디오만 브로드캐스트하므로, 적응형 비디오 스트리밍 서버(210)는 무선 자원을 효율적으로 사용할 수 있다.In
각 클라이언드을(221, 222)이 XOR 연산으로 인코딩된 비디오를 수신할 확률은 하기 수학식 3과 같다.The probability that each of the
[수학식 3][Equation 3]
단계(282)에서 제1 클라이언트(221)는 제3 비디오의 스트림을 수신하고, 제3 비디오로부터 제1 비디오를 복원할 수 있다.In
단계(283)에서 제2 클라이언트(221)는 제3 비디오의 스트림을 수신하고, 제3 비디오로부터 제2 비디오를 복원할 수 있다.In
서로 다른 세가지 경우에 대하여, 스트리밍의 효율성을 평가하기 위해 특정 비디오 파일의 스트리밍에 필요한 시간 는 하기 수학식 4과 같이 정의될 수 있다.Time required for streaming of a specific video file to evaluate the efficiency of streaming for three different cases may be defined as in
[수학식 4][Equation 4]
여기서, 은 채널이 지원 가능한 최대 전송 속도를 나타내고, 은 파일 크기가 이고, 총 재생 시간이 인 동영상을 원활히 재생하기 위하여 필요한 최소 전송속도이다.here, represents the maximum baud rate that the channel can support, is the file size , and the total playing time is This is the minimum transfer speed required for smooth video playback.
각 클라이언드들이 동일한 비디오에 대한 스트리밍을 요구하여 해당 파일을 단순 방송하는 경우(BC)의 소요시간 , 서로 다른 파일에 대한 스트리밍을 요구하여 각 파일을 각각 전송하는 경우(UC)의 소요시간 , 스트리밍을 요구한 파일을 각 클라이언트들이 서로 교차 저장하여, 배타적 논리합 연산을 이용하여 인코딩된 파일을 방송하는 경우(XBC)의 소요시간 는 각각 다음 수학식 5와 같이 결정될 수 있다.Time required when each client requests streaming of the same video and simply broadcasts the file (BC) , Time required for each file transmission (UC) by requesting streaming for different files , Time required when each client cross-stores the file requested for streaming and broadcasts the encoded file using the exclusive OR operation (XBC) may be determined as in the following
[수학식 5][Equation 5]
여기서, 는 배타적 논리합 연산을 이용하여 비디오를 인코딩, 디코딩하기 위해 필요한 처리 시간을 나타낸다.here, represents the processing time required to encode and decode a video using an exclusive-OR operation.
도 2에 도시된 바와 같이, 배타적 논리합 연산을 이용하여 인코딩된 파일을 방송하는 경우(XBC)를 포함하는 적응형 비디오 스트리밍 방식의 평균 전송 시간은 하기 수학식 6과 같다.As shown in FIG. 2 , the average transmission time of the adaptive video streaming method including the case of broadcasting an encoded file using an exclusive-OR operation (XBC) is as shown in
[수학식 6][Equation 6]
여기서, 일반적으로 이고, 이므로, 수학식 6은 수학식 7과 같이 근사화될 수 있다.Here, generally ego, Therefore,
[수학식 7][Equation 7]
여기서, 는 로 정의되며, 예시적 실시예에 따른 평균 전송 시간은 근사적으로 와 의 비율인 에 의해서 결정됨을 확인할 수 있다.here, Is is defined as, and the average transmission time according to the exemplary embodiment is approximately Wow is the ratio of It can be confirmed that it is determined by
반면, 배타적 논리합 연산을 이용하지 않고, 각 클라이언트들이 동일한 비디오에 대한 스트리밍을 요구하여 해당 파일을 단순 방송(BC)하거나, 서로 다른 파일에 대한 스트리밍을 요구하여 각 파일을 각각 전송(UC)하는 경우만을 고려한 평균 전송 시간은 하기 수학식 8과 같다.On the other hand, only when each client requests streaming of the same video and simply broadcasts the file (BC), or requests streaming of different files and transmits each file (UC) without using the exclusive OR operation. The average transmission time in consideration of
[수학식 8][Equation 8]
도 3은 예시적 실시예에 따른 적응형 비디오 스트리밍 서버의 구조를 도시한 블록도이다. 예시적 실시예에 따른 적응형 비디오 스트리밍 서버(300)는 스트리밍 요청 수신부(310), 판단부(320), 목록 요청부(330), 비디오 목록 수신부(340). 비디오 목록 비교부(350), 인코딩부(360) 및 스트리밍부(370)를 포함할 수 있다.Fig. 3 is a block diagram showing the structure of an adaptive video streaming server according to an exemplary embodiment. The adaptive
스트리밍 요청 수신부(310)는 제1 클라이언트(391)로부터 제1 비디오에 대한 스트리밍 요청을 수신하고, 제2 클라이언트(392)로부터 제2 비디오에 대한 스트리밍 요청을 수신한다. 일측에 따르면, 제1 비디오에 대한 스트리밍 요청 및 제2 비디오에 대한 스트리밍 요청은 통신망(380) 등을 경유하여 수신될 수 있다.The streaming
판단부(320)는 제1 비디오와 제2 비디오가 동일한 비디오인지 여부를 판단한다. 만약 제1 비디오와 제2 비디오가 동일한 비디오라면, 스트리밍부(370)는 통신망(380)을 경유하여 해당 비디오를 브로드캐스트(Broadcast)할 수 있다.The
제1 비디오와 제2 비디오가 상이한 경우에, 목록 요청부(330)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록을 요청한다. 또한 목록 요청부(330)는 제2 클라이언트(392)가 캐싱하는 비디오의 목록을 요청한다. 여기서, '캐싱'이란 각 클라이언트(391, 392)가 각자의 저장부에 비디오를 저장하고 있는 것을 말한다.When the first video and the second video are different, the
비디오 목록 수신부(340)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록을 수신하고, 제2 클라이언트(392)가 캐싱하는 비디오의 목록을 수신한다.The
비디오 목록 비교부(350)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 제2 클라이언트(392)가 요청한 비디오가 포함되었는지 비교하고, 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 제1 클라이언트(391)가 요청한 비디오가 포함되었는지 비교한다.The video
스트리밍부(370)는 비디오 목록 비교부(350)의 비교 결과에 따라 제1 비디오를 제1 클라이언트(391)로 스트리밍하고, 제2 비디오를 제2 클라이언트(392)로 스트리밍 할 수 있다.The
예를 들어, 제1 비디오가 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 포함되지 않거나, 제2 비디오가 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 포함되지 않으면, 스트리밍부(370)는 통신망(380)을 경유하여 제1 비디오를 제1 클라이언트(391)로 스트리밍하고, 제2 비디오를 제2 클라이언트(392)로 스트리밍 할 수 있다.For example, if the first video is not included in the list of videos cached by the
만약 제1 비디오가 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 포함되고, 제2 비디오가 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 포함되면, 인코딩부(360)는 제1 비디오와 제2 비디오를 인코딩하여 제3 비디오를 생성할 수 있다. 일측에 따르면, 인코딩부(360)는 제1 비디오와 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 제3 비디오를 생성할 수 있다. 스트리밍부(370)는 인코딩된 제3 비디오를 제1 클라이언트(391) 및 제2 클라이언트(392)로 브로드캐스트한다.If the first video is included in the list of videos cached by the
일측에 따르면, 스트리밍부는 제1 클라이언트(391)로 제2 비디오에 대한 정보를 전송하고, 제2 클라이언트(392)로 제1 비디오에 대한 정보를 전송할 수 있다.According to one side, the streaming unit may transmit information on the second video to the
제1 클라이언트(391)로 전송된 제3 비디오는 제1 클라이언트(391)에 캐싱된 제2 비디오와 배타적 논리합 연산 수행되어 제1 클라이언트(391)에서 제1 비디오를 복원하기 위해 사용된다. 일측에 따르면, 제1 클라이언트(391)는 적응형 비디오 스트리밍 서버(300)로부터 수신한 제2 비디오에 대한 정보를 참조하여 제1 비디오를 복원할 수 있다.The third video transmitted to the
또한, 제2 클라이언트(392)로 전송된 제3 비디오는 제2 클라이언트(392)에 캐싱된 제1 비디오와 배타적 논리합 연산 수행되어 제2 클라이언트(391)에서 제2 비디오를 복원하기 위해 사용된다. 일측에 따르면, 제2 클라이언트(391)는 적응형 비디오 스트리밍 서버(300)로부터 수신한 제1 비디오에 대한 정보를 참조하여 제2 비디오를 복원할 수 있다.In addition, the third video transmitted to the
도 3에 도시된 실시예에 따르면, 제1 비디오가 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 포함되고, 제2 비디오가 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 포함되는 경우에, 적응형 비디오 스트리밍 서버(300)는 인코딩된 제3 비디오를 브로드캐스트하여, 제1 클라이언트(391)가 제1 비디오를 복원하고, 제2 클라이언트(392)가 제2 비디오를 복원하도록 할 수 있다. 1개 비디오를 브로드캐스트하는 것 만으로, 각 클라이언트(391, 392)에서 서로 다른 비디오가 복원되도록 함으로써, 통신망(380)의 효율성을 높일 수 있다.According to the embodiment shown in FIG. 3 , when the first video is included in the list of videos cached by the
도 4는 예시적 실시예에 따른 클라이언트의 구조를 도시한 블록도이다. 예시적 실시예에 따른 클리이언트(400)는 스트리밍 요청 전송부(410), 목록 요청 수신부(420), 비디오 목록 전송부(430), 비디오 스트림 수신부(440) 및 디코딩부(450)를 포함할 수 있다.Fig. 4 is a block diagram showing the structure of a client according to an exemplary embodiment. The
스트리밍 요청 전송부(410)는 적응형 비디오 스트리밍 서버(470)로 제1 비디오에 대한 스트리밍 요청을 전송한다. 일측에 따르면, 제2 클라이언트(480)는 제2 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(470)로 전송할 수 있다.The
제1 비디오에 대한 스트리밍 요청과 제2 비디오에 대한 스트리밍 요청은 적응형 비디오 스트리밍 서버(470)에서 비교될 수 있다. 만약, 제1 비디오와 제2 비디오가 동일한 경우에, 비디오 스트림 수신부(440)는 적응형 비디오 스트리밍 서버(470)에서 브로트캐스트(Broadcast)되는 제1 비디오의 스트림을 수신할 수 있다.The streaming request for the first video and the streaming request for the second video may be compared in the adaptive
목록 요청 수신부(420)는 적응형 비디오 스트리밍 서버(470)로부터 스트리밍 요청에 응답하여 클라이언트(400)가 캐싱하는 비디오의 목록에 대한 요청을 수신한다. 일측에 따르면, 제1 비디오가 제2 비디오와 동일한 비디오인지 여부가 적응형 비디오 스트리밍 서버(470)에서 판단되고, 제1 비디오와 제2 비디오가 상이한 경우에, 목록 요청 수신부(420)는 판단 결과에 따라 클라이언트(400)가 캐싱하는 비디오의 목록에 대한 요청을 수신할 수 있다.The list
비디오 목록 전송부(430)는 클라이언트(440)가 캐싱하는 비디오의 목록에 대한 요청에 응답하여 클라이언트(400)가 캐싱하는 비디오의 목록을 적응형 스트리밍 서버(470)로 전송한다. 제2 클라이언트(480)도 제2 클라이언트(480)가 캐싱하는 비디오의 목록을 적응형 스트리밍 서버(470)로 전송할 수 있다.The
클라이언트(400)가 요청한 제1 비디오가 제2 클라이언트(480)가 캐싱하는 비디오의 목록에 포함되는지, 또한, 제2 클라이언트(480)가 요청한 제2 비디오가 클라이언트(400)가 캐싱하는 비디오의 목록에 포함되는지 여부는 적응형 스트리밍 서버(470)에서 판단될 수 있다.Whether the first video requested by the
비디오 스트림 수신부(440)는 전송된 비디오의 목록과 제2 클라이언트(480)가 캐싱하는 비디오의 목록이 적응형 비디오 스트리밍 서버(470)에서 비교된 결과에 따라 적응형 비디오 스트리밍 서버(470)로부터 제1 비디오의 스트림을 수신할 수 있다.The video
제1 비디오가 제2 클라이언트(480)가 캐싱하는 비디오의 목록에 포함되지 않거나, 제2 비디오가 클라이언트(400)가 캐싱하는 비디오의 목록에 포함되지 않으면, 비디오 스트림 수신부(440)는 적응형 비디오 스트리밍 서버(470)로부터 제1 비디오의 스트림을 수신할 수 있다. 또한, 제2 비디오는 적응형 비디오 스트리밍 서버(470)로부터 제2 클라이언트(480)로 스트리밍될 수 있다.If the first video is not included in the list of videos cached by the
제1 비디오가 제2 클라이언트(480)가 캐싱하는 비디오의 목록에 포함되고, 제2 비디오가 클라이언트(400)가 캐싱하는 비디오의 목록에 포함되면, 비디오 스트림 수신부(440)는 적응형 비디오 스트리밍 서버(470)로부터 제3 비디오의 스트림을 수신할 수 있다. 제3 비디오는 제1 비디오와 제2 비디오를 배타적 논리합(XOR) 연산하여 생성된 것일 수 있다. 이 경우에, 비디오 스트림 수신부(400)는 적응형 비디오 스트리밍 서버(470)로부터 제2 비디오에 대한 정보를 수신하고, 디코딩부(450)는 제2 비디오에 대한 정보에 기반하여 제3 비디오와 제2 비디오를 배타적 논리합 연산 수행하여 제1 비디오를 디코딩할 수 있다.When the first video is included in the list of videos cached by the
도 5는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 성능을 해석한 도면이다. 도 5의 가로축은 전송률을 나타내고, 세로축은 평균 전송 시간을 나타낸다. 도 5에서, 스트리밍되는 비디오 파일의 크기 는 500MB이고, 비디오 파일의 총재생시간 는 초이다. 또한, 적응형 비디오 서버가 캐싱하는 비디오 파일의 개수 는 50개인 환경을 가정한다. 도 5에 도시된 그래프는 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 20, 30, 40으로 변경되는 경우의 성능을 나타낸다.Fig. 5 is a diagram illustrating performance analysis of an adaptive video streaming system according to an exemplary embodiment. In FIG. 5 , the horizontal axis indicates the transmission rate, and the vertical axis indicates the average transmission time. 5, the size of the video file being streamed is 500MB, and the total playing time of the video file is seconds Also, the number of video files that the adaptive video server caches. assumes a 50-person environment. The graph shown in Fig. 5 shows the number of video files cached by each client. It shows the performance when is changed to 20, 30, 40.
도 5를 참고하면, 적응형 비디오 스트리밍 서버가 비디오를 브로드캐스트하는 경우 또는 해당 비디오를 각각의 클라이언트로 직접 전송하는 경우보다 예시적 실시예에 따라 적응적으로 스트리밍 하는 경우가 평균적으로 낮은 전송 시간을 나타냄을 알 수 있다.Referring to FIG. 5 , when the adaptive video streaming server broadcasts a video or when the video is directly transmitted to each client, adaptive streaming according to an exemplary embodiment has an average lower transmission time. can be seen to indicate
도 5에서, 제1 그래프(510)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 40인 경우를 나타내고, 제2 그래프(520)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 30인 경우를 나타내고, 제3 그래프(530)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 20인 경우를 나타낸다.In FIG. 5 , the
도 5를 참조하면, 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 증가함에 따라 배타적 논리합을 이용하여 브로드캐스트될 확률이 높으므로 전체적인 평균 전송시간이 감소함을 확인할 수 있다.Referring to FIG. 5 , the number of video files cached by each client It can be seen that the overall average transmission time decreases because the probability of broadcasting using exclusive OR increases as α increases.
도 2 내지 5에서 설명된 적응형 비디오 스트리밍 서버는 다수의 클라이언트에 대해서도 유사한 방법으로 비디오를 스트리밍할 수 있다. 다만, 스트리밍의 효율성을 높이기 위하여, 적응형 비디오 스트리밍 서버는 각 클라이언트들이 보유한 비디오의 목록과 스트리밍 요청에 포함된 비디오의 목록을 비교하여 각 클라이언트들을 서로 상이한 스트리밍 기법이 적용되는 복수의 그룹으로 분류하고, 각 그룹에 대해 각 그룹에 대응하는 스트리밍 방법을 적용할 수 있다.The adaptive video streaming server described in FIGS. 2 to 5 can stream video to multiple clients in a similar manner. However, in order to improve streaming efficiency, the adaptive video streaming server compares the list of videos owned by each client with the list of videos included in the streaming request, and classifies each client into a plurality of groups to which different streaming techniques are applied. , a streaming method corresponding to each group may be applied to each group.
클라이언트들이 다수라면, 제1 클라이언트 또는 제2 클라이언트가 다수인 것으로 가정할 수 있다.If there are multiple clients, it can be assumed that either the first client or the second client are multiple.
일측에 따르면, 적응형 비디오 스트리밍 서버(300)의 비디오 목록 비교부(350)는 각 클라이언트가 캐싱하는 비디오의 목록과 각 클라이언트가 재생하려고하는 비디오의 목록을 비교할 수 있다.According to one side, the video
첫번째 단계에서, 클라이언트 분류부(미도시)는 클라이언트가 재생하려고 하는 비디오가 해당 클라이언트의 캐시에 저장되어 있으면, 해당 클라이언트를 적응형 비디오 스트리밍 서버(300)로부터의 스트리밍 없이 각 클라이언트가 캐싱하는 비디오를 재생하는 로컬 플레이 그룹으로 분류할 수 있다.In the first step, the client classification unit (not shown) receives the video cached by each client without streaming from the adaptive
클라이언트 분류부(미도시)는 여러 클라이언트들이 동일한 비디오를 재생하려고 하며, 각 클라이언트들이 해당 비디오를 캐싱하지 못하고 있다면, 해당 클라이언트들을 동일한 비디오를 다른 클라이언트들과 스트리밍 받아 재생하는 멀티캐스트 그룹으로 분류할 수 있다.If several clients try to play the same video and each client cannot cache the video, the client classifier (not shown) can classify the clients into a multicast group that streams and plays the same video with other clients. have.
일측에 따르면, 클라이언트 분류부(미도시)는 로컬 플레이 그룹과 멀티캐스트 그룹으로 분류되지 않은 클라이언트들을 나머지 그룹으로 분류할 수 있다.According to one side, the client classifier (not shown) may classify clients that are not classified into the local play group and the multicast group into the remaining groups.
두 번째 단계에서, 클라이언트 분류부(미도시)는 나머지 그룹에 포함된 클라이언트들을 서로 상이한 비디오를 배타적 논리합 연산을 이용한 스트리밍 기법을 이용하여 다른 클라이언트들과 함께 스트리밍 받아 재생하는 배타적 논리합 스트리밍 그룹과 각 클라이언트로 개별 비디오를 전송하는 유니캐스트 그룹으로 분류할 수 있다.In the second step, the client classifier (not shown) receives and plays different videos from the clients included in the remaining group together with other clients using a streaming technique using an exclusive-OR operation, and each client can be classified into unicast groups that transmit individual videos.
스트리밍부(370)는 각 그룹에 포함된 클라이언트들에 대해 각 그룹에 대응하는 스트리밍 방법을 적용하여 스트리밍 할 수 있다.The
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
110: 적응형 비디오 스트리밍 서버
120: 통신망
130, 140: 클라이언트110: adaptive video streaming server
120: communication network
130, 140: client
Claims (13)
상기 복수의 클라이언트로부터 캐싱하고 있는 비디오 목록을 수신하는 비디오 목록 수신부,
상기 복수의 클라이언트에서 재생하려는 비디오 및 캐싱하고 있는 비디오 목록을 비교하여, 상기 복수의 클라이언트를 로컬 플레이 그룹, 멀티캐스트 그룹 및 나머지 그룹으로 먼저 분리하고, 상기 나머지 그룹에 포함된 클라이언트를 배타적 논리합 스트리밍 그룹 및 유니캐스트 그룹으로 분류하는 클라이언트 분류부, 및
상기 복수의 클라이언트에 대해서, 상기 복수의 클라이언트 각각이 속하는 그룹에 대응하는 스트리밍 방법을 적용하여, 비디오 스트리밍을 하는 스트리밍부
를 포함하고,
상기 복수의 클라이언트 중에서 재생하려는 비디오를 캐싱하고 있는 클라이언트는 상기 로컬 플레이 그룹으로 분류되며,
동일한 비디오를 재생하려고 하면서 해당 비디오를 캐싱하고 있지 않은 클라이언트들을 상기 멀티캐스트 그룹으로 분류하여, 스트리밍 요청된 비디오를 멀티캐스트 방식으로 스트리밍해주고,
상대방이 재생하려고 하는 제1 비디오와 제2 비디오를 교차로 캐싱하고 있는 클라이언트들을 상기 배타적 논리합 스트리밍 그룹으로 분류하여, 상기 제1 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 인코딩된 제3 비디오를 스트리밍해주며,
상기 나머지 그룹에 속하는 클라이언트 중에서 상기 배타적 논리합 스트리밍 그룹에 속하지 않은 클라이언트는 상기 유니캐스트 그룹으로 분류하여, 스트리밍 요청된 비디오를 유니캐스트 방식으로 스트리밍해주는 적응형 비디오 스트리밍 서버.A streaming request receiving unit for receiving a video streaming request for a video to be played from a plurality of clients,
A video list receiver for receiving the video list being cached from the plurality of clients,
By comparing the video to be played from the plurality of clients and the list of videos being cached, the plurality of clients are first divided into a local play group, a multicast group, and the remaining group, and the clients included in the remaining group are separated into an exclusive-OR streaming group and a client classifier for classifying into unicast groups, and
A streaming unit for streaming video by applying a streaming method corresponding to a group to which each of the plurality of clients belongs to the plurality of clients
including,
Among the plurality of clients, a client caching a video to be played is classified into the local play group,
While trying to play the same video, the clients that are not caching the video are classified into the multicast group, and the video requested for streaming is streamed in a multicast method,
Clients that are alternately caching the first video and the second video that the other party wants to play are classified into the exclusive-OR streaming group, and an eXclusive OR (XOR) operation is performed on the first video and the second video. Stream the encoded third-party video,
An adaptive video streaming server that classifies a client that does not belong to the exclusive OR streaming group among the clients belonging to the remaining group into the unicast group, and streams the streaming-requested video in a unicast manner.
상기 복수의 클라이언트에서 재생하려는 비디오 및 캐싱하고 있는 비디오 목록을 비교하여, 상기 복수의 클라이언트를 로컬 플레이 그룹, 멀티캐스트 그룹 및 나머지 그룹으로 먼저 분리하고, 나머지 그룹에 포함된 클라이언트를 배타적 논리합 스트리밍 그룹 및 유니캐스트 그룹으로 분류하는 단계, 및
상기 복수의 클라이언트에 대해서, 상기 복수의 클라이언트 각각이 속하는 그룹에 대응하는 스트리밍 방식을 적용하여, 비디오 스트리밍을 하는 단계
를 포함하고,
상기 복수의 클라이언트 중에서 재생하려는 비디오를 캐싱하고 있는 클라이언트는 상기 로컬 플레이 그룹으로 분류되며,
동일한 비디오를 재생하려고 하면서 해당 비디오를 캐싱하고 있지 않은 클라이언트들을 상기 멀티캐스트 그룹으로 분류하여, 스트리밍 요청된 비디오를 멀티캐스트 방식으로 스트리밍해주고,
상대방이 재생하려고 하는 제1 비디오와 제2 비디오를 교차로 캐싱하고 있는 클라이언트들을 상기 배타적 논리합 스트리밍 그룹으로 분류하여, 상기 제1 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 인코딩된 제3 비디오를 스트리밍해주며,
상기 나머지 그룹에 속하는 클라이언트 중에서 상기 배타적 논리합 스트리밍 그룹에 속하지 않은 클라이언트는 상기 유니캐스트 그룹으로 분류하여, 스트리밍 요청된 비디오를 유니캐스트 방식으로 스트리밍해주는 적응형 비디오 스트리밍 방법.Receiving a video streaming request to be played from a plurality of clients and a list of videos being cached;
By comparing the video to be played back and the caching video list in the plurality of clients, the plurality of clients are first divided into a local play group, a multicast group, and the remaining group, and the clients included in the remaining group are separated into an exclusive-OR streaming group and classifying into unicast groups; and
For the plurality of clients, applying a streaming method corresponding to a group to which each of the plurality of clients belongs, performing video streaming
including,
Among the plurality of clients, a client caching a video to be played is classified into the local play group,
While trying to play the same video, clients not caching the video are classified into the multicast group, and the video requested for streaming is streamed in a multicast method,
Clients that are alternately caching the first video and the second video that the other party wants to play are classified into the exclusive-OR streaming group, and an eXclusive OR (XOR) operation is performed on the first video and the second video. Stream the encoded third-party video,
An adaptive video streaming method for classifying a client that does not belong to the exclusive OR streaming group among clients belonging to the remaining group into the unicast group, and streams the streaming-requested video in a unicast manner.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2020/009224 WO2021049744A1 (en) | 2019-09-09 | 2020-07-13 | Adaptive video streaming system using receiving end caching |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190111211 | 2019-09-09 | ||
KR1020190111211 | 2019-09-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210030191A KR20210030191A (en) | 2021-03-17 |
KR102439595B1 true KR102439595B1 (en) | 2022-09-02 |
Family
ID=75245725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200086396A KR102439595B1 (en) | 2019-09-09 | 2020-07-13 | Adaptive video streaming system using receiver caching |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102439595B1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230047719A (en) | 2021-10-01 | 2023-04-10 | (주)뉴아이디 | Broadcasting System Based on Contents Pool And Method |
KR20230047717A (en) | 2021-10-01 | 2023-04-10 | (주)뉴아이디 | Broadcasting System Based on Contents Pool And Method |
KR20230047718A (en) | 2021-10-01 | 2023-04-10 | (주)뉴아이디 | Broadcasting System Based on Contents Pool And Method |
KR20230047720A (en) | 2021-10-01 | 2023-04-10 | (주)뉴아이디 | Broadcasting System Based on Contents Pool And Method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170339242A1 (en) * | 2016-05-20 | 2017-11-23 | Futurewei Technologies, Inc. | Content Placements for Coded Caching of Video Streams |
-
2020
- 2020-07-13 KR KR1020200086396A patent/KR102439595B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170339242A1 (en) * | 2016-05-20 | 2017-11-23 | Futurewei Technologies, Inc. | Content Placements for Coded Caching of Video Streams |
Also Published As
Publication number | Publication date |
---|---|
KR20210030191A (en) | 2021-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102439595B1 (en) | Adaptive video streaming system using receiver caching | |
CN110536179B (en) | Content distribution system and method | |
US9787747B2 (en) | Optimizing video clarity | |
US9601126B2 (en) | Audio splitting with codec-enforced frame sizes | |
US6757735B2 (en) | Method for distributing multiple description streams on servers in fixed and mobile streaming media systems | |
US9332051B2 (en) | Media manifest file generation for adaptive streaming cost management | |
US6941378B2 (en) | Method for assigning a streaming media session to a server in fixed and mobile streaming media systems | |
US9894421B2 (en) | Systems and methods for data representation and transportation | |
US8200747B2 (en) | Session handoff of segmented media data | |
US8090761B2 (en) | Storage and distribution of segmented media data | |
WO2019128800A1 (en) | Content service implementation method and device, and content delivery network node | |
CN102130886B (en) | Network video streaming media system, transmission processing method, transmitting end | |
CN102055718B (en) | Method, device and system for layering request content in http streaming system | |
US10834161B2 (en) | Dash representations adaptations in network | |
US10277911B2 (en) | Video processing workload management | |
CN101917613A (en) | Acquiring and coding service system of streaming media | |
CN104394426A (en) | Rate playing method and device of stream media | |
US20220021916A1 (en) | Apparatus and method for accelerating super-resolution in real-time video streaming | |
US20130346831A1 (en) | Method of generating forward error correction packet and server and client apparatus employing the same | |
KR20190048186A (en) | Multipath-based split transmission system and streaming method for adaptive streaming service | |
KR20230098146A (en) | Insertion of target content into live streaming media | |
CN113949897A (en) | Fragment cache acceleration method for MP4 video streaming media on demand | |
US11936950B2 (en) | Methods and systems for content delivery | |
US10623830B1 (en) | Dual-representation streaming frames | |
KR102513562B1 (en) | Method and Apparatus for Transmitting Contents |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |