KR102439595B1 - Adaptive video streaming system using receiver caching - Google Patents

Adaptive video streaming system using receiver caching Download PDF

Info

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
Application number
KR1020200086396A
Other languages
Korean (ko)
Other versions
KR20210030191A (en
Inventor
반태원
김유신
신재민
류종열
정무웅
Original Assignee
경상국립대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경상국립대학교산학협력단 filed Critical 경상국립대학교산학협력단
Priority to PCT/KR2020/009224 priority Critical patent/WO2021049744A1/en
Publication of KR20210030191A publication Critical patent/KR20210030191A/en
Application granted granted Critical
Publication of KR102439595B1 publication Critical patent/KR102439595B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/4402Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4826End-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

수신단 캐싱을 활용한 적응형 비디오 스트리밍 시스템{ADAPTIVE VIDEO STREAMING SYSTEM USING RECEIVER CACHING}Adaptive video streaming system using receiver caching {ADAPTIVE VIDEO STREAMING SYSTEM USING RECEIVER CACHING}

하기의 실시예들은 적응형 비디오 스트리밍 시스템에 관한 것으로 구체적으로는 파일 스트림을 수신할 클라이언트가 저장하고 있는 파일에 대한 정보를 이용하여 적응적으로 스트리밍하는 비디오 스트리밍 시스템에 관한 것이다.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 video streaming server 110 transmits a stream of video to a plurality of clients 130 and 140 through the communication network 120 . According to one side, the adaptive video streaming server 110 may transmit a video stream by changing the encoding or changing the protocol according to the video requested by the clients 130 and 140 .

예를 들어, 제1 클라이언트(130)와 제2 클라이언트(140)가 동일한 비디오에 대해 스트리밍을 요청한 경우, 적응형 비디오 스트리밍 서버(110)는 해당 비디오를 브로드캐스트(Broadcast)함으로써, 해당 비디오의 스트림을 전송할 수 있다.For example, when the first client 130 and the second client 140 request streaming for the same video, the adaptive video streaming server 110 broadcasts the video, thereby stream of the video. can be transmitted.

일측에 따르면, 제1 클라이언트(130)와 제2 클라이언트(140)는 일부 비디오 파일을 캐싱(caching)할 수 있다. 이 경우에, 적응형 비디오 스트리밍 서버(110)는 제1 클라이언트(130)와 제2 클라이언트(140)가 각각 캐싱하는 비디오 파일에 대한 정보를 이용하여 비디오의 스트림을 전송할 수 있다.According to one side, the first client 130 and the second client 140 may cache some video files. In this case, the adaptive video streaming server 110 may transmit a video stream by using the information about the video file cached by the first client 130 and the second client 140, respectively.

일측에 따르면, 제2 클라이언트(140)는 제1 클라이언트(130)가 요청한 비디오 파일을 캐싱하지 않을 수 있다. 또는 제1 클라이언트(130)는 제2 클라이언트(140)가 요청한 비디오 파일을 캐싱하지 않을 수 있다. 이 경우에, 적응형 비디오 스트리밍 서버(110)는 제1 클라이언트(130)가 요청한 비디오의 스트림을 제1 클라이언트(130)로 직접 전송하고, 제2 클라이언트(140)가 요청한 비디오의 스트림을 제2 클라이언트(140)로 직접 전송할 수 있다.According to one side, the second client 140 may not cache the video file requested by the first client 130 . Alternatively, the first client 130 may not cache the video file requested by the second client 140 . In this case, the adaptive video streaming server 110 directly transmits the video stream requested by the first client 130 to the first client 130, and transmits the video stream requested by the second client 140 to the second It can be transmitted directly to the client 140 .

일측에 따르면, 제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 second client 140 may cache the video file requested by the first client 130 , and the first client 130 may cache the video file requested by the second client 140 . In this case, the adaptive video streaming server 110 encodes the video file requested by the first client 130 and the video file requested by the second client 140 to generate one video stream, and converts the encoded video stream It can be transmitted to the first client 130 and the second client 140 . The first client 130 may restore a file requested by the first client 130 from the encoded video stream. The second client 140 may restore a file requested by the second client 140 from the encoded video stream. Even when the first client 130 and the second client 140 request different videos, the adaptive video streaming server transmits only one encoded video stream, thereby improving the efficiency of video streaming.

도 2는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 동작을 단계별로 설명한 순서도이다.Fig. 2 is a flowchart illustrating step-by-step operation of the adaptive video streaming system according to an exemplary embodiment.

도 2에서, 적응형 비디오 스트리밍 서버(210)는

Figure 112020072715693-pat00001
개의 비디오를 캐싱하고, 각 클라이언트는
Figure 112020072715693-pat00002
개의 비디오 파일을 캐싱한다고 가정한다. 또한,
Figure 112020072715693-pat00003
이다.2, the adaptive video streaming server 210 is
Figure 112020072715693-pat00001
caching video, each client
Figure 112020072715693-pat00002
Assume that you cache two video files. In addition,
Figure 112020072715693-pat00003
to be.

단계(231)에서, 제1 클라이언트(221)는 제1 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(210)로 전송한다.In step 231 , the first client 221 transmits a streaming request for the first video to the adaptive video streaming server 210 .

단계(232)에서, 제2 클라이언트(222)는 제2 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(210)로 전송한다.In step 232 , the second client 222 sends a streaming request for the second video to the adaptive video streaming server 210 .

각 클라이언트(221, 222)가 캐싱하는 비디오 파일의 집합을

Figure 112020072715693-pat00004
이라고 하고, 각 클라이언트(221, 222)들이 적응형 비디오 스트리밍 서버(210)로 요청하는 비디오 파일을
Figure 112020072715693-pat00005
이라고 할 수 있다. 여기서, n는 클라이언트의 인덱스이다.A set of video files cached by each client (221, 222)
Figure 112020072715693-pat00004
, and each client (221, 222) requests a video file from the adaptive video streaming server 210.
Figure 112020072715693-pat00005
It can be said that Here, n is the index of the client.

단계(240)에서, 적응형 비디오 스트리밍 서버(210)는 제1 비디오와 제2 비디오가 동일한 비디오인지 여부를 판단한다.In step 240 , the adaptive video streaming server 210 determines whether the first video and the second video are the same video.

만약, 제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 video streaming server 210 transmits the video to the first client 221 and the second client 222 in steps 241 and 242. Broadcast. If each client stores a video file in a uniform distribution, the probability that the adaptive video streaming server 210 broadcasts a video to each of the clients 221 and 222 is expressed by Equation 1 below.

[수학식 1][Equation 1]

Figure 112020072715693-pat00006
Figure 112020072715693-pat00006

만약 제1 비디오와 제2 비디오가 상이한 비디오라면, 적응형 비디오 스트리밍 서버(210)는 단계(250)에서 제1 클라이언트(221) 및 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록을 요청한다.If the first video and the second video are different videos, the adaptive video streaming server 210 requests a list of videos cached by the first client 221 and the second client 222 in step 250 . .

단계(251)에서, 제1 클라이언트(221)는 제1 클라이언트(221)가 캐싱하는 비디오에 대한 목록 요청을 수신한다.In step 251 , the first client 221 receives a list request for the video cached by the first client 221 .

단계(252)에서, 제2 클라이언트(222)는 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록 요청을 수신한다.In step 252 , the second client 222 receives a list request for the video that the second client 222 caches.

단계(260)에서, 적응형 비디오 스트리밍 서버(210)는 제1 클라이언트(221)로부터 제1 클라이언트(221)가 캐싱하는 비디오에 대한 목록을 수신하고, 제2 클라이언트(222)로부터 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록을 수신한다.In step 260 , the adaptive video streaming server 210 receives a list of videos cached by the first client 221 from the first client 221 , and from the second client 222 to the second client ( 222) receives a list of the videos it caches.

단계(270)에서, 적응형 비디오 스트리밍 서버(210)는 제1 클라이언트(221)가 제2 비디오를 캐싱하고, 제2 클라이언트(222)가 제1 비디오를 캐싱하는지 여부를 판단한다. 즉, 제1 클라이언트(221)가 캐싱하는 비디오의 목록에 제2 비디오가 포함되고, 제2 클라이언트(222)가 캐싱하는 비디오의 목록에 제1 비디오가 포함되는지 여부를 판단한다. 이를 간단히 제1 클라이언트(221)와 제2 클라이언트(222)가 비디오를 서로 교차저장하고 있는지 판단하는 것으로 해석할 수 있다.In step 270 , the adaptive video streaming server 210 determines whether the first client 221 caches the second video, and the second client 222 caches the first video. That is, it is determined whether the second video is included in the list of videos cached by the first client 221 , and the first video is included in the list of videos cached by the second client 222 . This can be simply interpreted as determining whether the first client 221 and the second client 222 cross-store the video.

만약, 제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 first client 221 is not caching the video requested by the second client 222 or the second client 222 is not caching the video requested by the first client 221 , the adaptive The video streaming server 210 transmits the video requested by each client (221, 222) in step 271, respectively. In operation 272 , the first client 221 may receive the stream of the first video, and in operation 273 , the second client 222 may receive the stream of the second video. The first client 221 receives the stream of the first video, and the probability that the second client 222 receives the stream of the second video in step 273 is expressed by Equation 2 below.

[수학식 2][Equation 2]

Figure 112020072715693-pat00007
Figure 112020072715693-pat00007

만약 제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 first client 221 caches the video requested by the second client 222 and the second client 222 caches the video requested by the first client 221 (the first video is the second If the client 222 is included in the list of videos cached, and the second video is included in the list of videos cached by the first client 221 ), the adaptive video streaming server 210 is the first in step 280 . A third video may be generated by encoding the first video and the second video. Here, the adaptive video streaming server 210 may perform encoding using an eXclusive OR (XOR) operation.

단계(281)에서, 적응형 비디오 스트리밍 서버(210)는 인코딩된 영상을 제1 클라이언트(221) 및 제2 클라이언트(222)로 브로드캐스트할 수 있다. 2개의 클라이언트(221, 222)가 요구하는 비디오가 서로 상이하지만, 적응형 비디오 스트리밍 서버(210)는 1개의 비디오만 브로드캐스트하므로, 적응형 비디오 스트리밍 서버(210)는 무선 자원을 효율적으로 사용할 수 있다.In step 281 , the adaptive video streaming server 210 may broadcast the encoded image to the first client 221 and the second client 222 . Although the video requested by the two clients 221 and 222 is different from each other, the adaptive video streaming server 210 broadcasts only one video, so the adaptive video streaming server 210 can efficiently use radio resources. have.

각 클라이언드을(221, 222)이 XOR 연산으로 인코딩된 비디오를 수신할 확률은 하기 수학식 3과 같다.The probability that each of the clients 221 and 222 receives the video encoded by the XOR operation is expressed in Equation 3 below.

[수학식 3][Equation 3]

Figure 112020072715693-pat00008
Figure 112020072715693-pat00008

단계(282)에서 제1 클라이언트(221)는 제3 비디오의 스트림을 수신하고, 제3 비디오로부터 제1 비디오를 복원할 수 있다.In operation 282 , the first client 221 may receive the stream of the third video and reconstruct the first video from the third video.

단계(283)에서 제2 클라이언트(221)는 제3 비디오의 스트림을 수신하고, 제3 비디오로부터 제2 비디오를 복원할 수 있다.In operation 283 , the second client 221 may receive the stream of the third video and reconstruct the second video from the third video.

서로 다른 세가지 경우에 대하여, 스트리밍의 효율성을 평가하기 위해 특정 비디오 파일의 스트리밍에 필요한 시간

Figure 112020072715693-pat00009
는 하기 수학식 4과 같이 정의될 수 있다.Time required for streaming of a specific video file to evaluate the efficiency of streaming for three different cases
Figure 112020072715693-pat00009
may be defined as in Equation 4 below.

[수학식 4][Equation 4]

Figure 112020072715693-pat00010
Figure 112020072715693-pat00010

여기서,

Figure 112020072715693-pat00011
은 채널이 지원 가능한 최대 전송 속도를 나타내고,
Figure 112020072715693-pat00012
은 파일 크기가
Figure 112020072715693-pat00013
이고, 총 재생 시간이
Figure 112020072715693-pat00014
인 동영상을 원활히 재생하기 위하여 필요한 최소 전송속도이다.here,
Figure 112020072715693-pat00011
represents the maximum baud rate that the channel can support,
Figure 112020072715693-pat00012
is the file size
Figure 112020072715693-pat00013
, and the total playing time is
Figure 112020072715693-pat00014
This is the minimum transfer speed required for smooth video playback.

각 클라이언드들이 동일한 비디오에 대한 스트리밍을 요구하여 해당 파일을 단순 방송하는 경우(BC)의 소요시간

Figure 112020072715693-pat00015
, 서로 다른 파일에 대한 스트리밍을 요구하여 각 파일을 각각 전송하는 경우(UC)의 소요시간
Figure 112020072715693-pat00016
, 스트리밍을 요구한 파일을 각 클라이언트들이 서로 교차 저장하여, 배타적 논리합 연산을 이용하여 인코딩된 파일을 방송하는 경우(XBC)의 소요시간
Figure 112020072715693-pat00017
는 각각 다음 수학식 5와 같이 결정될 수 있다.Time required when each client requests streaming of the same video and simply broadcasts the file (BC)
Figure 112020072715693-pat00015
, Time required for each file transmission (UC) by requesting streaming for different files
Figure 112020072715693-pat00016
, Time required when each client cross-stores the file requested for streaming and broadcasts the encoded file using the exclusive OR operation (XBC)
Figure 112020072715693-pat00017
may be determined as in the following Equation 5, respectively.

[수학식 5][Equation 5]

Figure 112020072715693-pat00018
Figure 112020072715693-pat00018

여기서,

Figure 112020072715693-pat00019
는 배타적 논리합 연산을 이용하여 비디오를 인코딩, 디코딩하기 위해 필요한 처리 시간을 나타낸다.here,
Figure 112020072715693-pat00019
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 Equation 6 below.

[수학식 6][Equation 6]

Figure 112020072715693-pat00020
Figure 112020072715693-pat00020

여기서, 일반적으로

Figure 112020072715693-pat00021
이고,
Figure 112020072715693-pat00022
이므로, 수학식 6은 수학식 7과 같이 근사화될 수 있다.Here, generally
Figure 112020072715693-pat00021
ego,
Figure 112020072715693-pat00022
Therefore, Equation 6 can be approximated as Equation 7.

[수학식 7][Equation 7]

Figure 112020072715693-pat00023
Figure 112020072715693-pat00023

여기서,

Figure 112020072715693-pat00024
Figure 112020072715693-pat00025
로 정의되며, 예시적 실시예에 따른 평균 전송 시간은 근사적으로
Figure 112020072715693-pat00026
Figure 112020072715693-pat00027
의 비율인
Figure 112020072715693-pat00028
에 의해서 결정됨을 확인할 수 있다.here,
Figure 112020072715693-pat00024
Is
Figure 112020072715693-pat00025
is defined as, and the average transmission time according to the exemplary embodiment is approximately
Figure 112020072715693-pat00026
Wow
Figure 112020072715693-pat00027
is the ratio of
Figure 112020072715693-pat00028
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 Equation 8 below.

[수학식 8][Equation 8]

Figure 112020072715693-pat00029
Figure 112020072715693-pat00029

도 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 video streaming server 300 according to an exemplary embodiment includes a streaming request receiving unit 310 , a determining unit 320 , a list requesting unit 330 , and a video list receiving unit 340 . It may include a video list comparison unit 350 , an encoding unit 360 , and a streaming unit 370 .

스트리밍 요청 수신부(310)는 제1 클라이언트(391)로부터 제1 비디오에 대한 스트리밍 요청을 수신하고, 제2 클라이언트(392)로부터 제2 비디오에 대한 스트리밍 요청을 수신한다. 일측에 따르면, 제1 비디오에 대한 스트리밍 요청 및 제2 비디오에 대한 스트리밍 요청은 통신망(380) 등을 경유하여 수신될 수 있다.The streaming request receiving unit 310 receives a streaming request for the first video from the first client 391 and receives a streaming request for the second video from the second client 392 . According to one side, the streaming request for the first video and the streaming request for the second video may be received via the communication network 380 or the like.

판단부(320)는 제1 비디오와 제2 비디오가 동일한 비디오인지 여부를 판단한다. 만약 제1 비디오와 제2 비디오가 동일한 비디오라면, 스트리밍부(370)는 통신망(380)을 경유하여 해당 비디오를 브로드캐스트(Broadcast)할 수 있다.The determination unit 320 determines whether the first video and the second video are the same video. If the first video and the second video are the same video, the streaming unit 370 may broadcast the corresponding video via the communication network 380 .

제1 비디오와 제2 비디오가 상이한 경우에, 목록 요청부(330)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록을 요청한다. 또한 목록 요청부(330)는 제2 클라이언트(392)가 캐싱하는 비디오의 목록을 요청한다. 여기서, '캐싱'이란 각 클라이언트(391, 392)가 각자의 저장부에 비디오를 저장하고 있는 것을 말한다.When the first video and the second video are different, the list request unit 330 requests a list of videos cached by the first client 391 . Also, the list request unit 330 requests a list of videos cached by the second client 392 . Here, 'caching' means that each of the clients 391 and 392 stores video in their respective storage units.

비디오 목록 수신부(340)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록을 수신하고, 제2 클라이언트(392)가 캐싱하는 비디오의 목록을 수신한다.The video list receiver 340 receives a list of videos cached by the first client 391 , and receives a list of videos cached by the second client 392 .

비디오 목록 비교부(350)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 제2 클라이언트(392)가 요청한 비디오가 포함되었는지 비교하고, 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 제1 클라이언트(391)가 요청한 비디오가 포함되었는지 비교한다.The video list comparison unit 350 compares whether the video requested by the second client 392 is included in the list of videos cached by the first client 391, and added to the list of videos cached by the second client 392 1 Compare whether the video requested by the client 391 is included.

스트리밍부(370)는 비디오 목록 비교부(350)의 비교 결과에 따라 제1 비디오를 제1 클라이언트(391)로 스트리밍하고, 제2 비디오를 제2 클라이언트(392)로 스트리밍 할 수 있다.The streaming unit 370 may stream the first video to the first client 391 and stream the second video to the second client 392 according to the comparison result of the video list comparison unit 350 .

예를 들어, 제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 second client 392 or the second video is not included in the list of videos cached by the first client 391, the streaming unit 370 ) may stream the first video to the first client 391 via the communication network 380 and stream the second video to the second client 392 .

만약 제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 second client 392 and the second video is included in the list of videos cached by the first client 391, the encoding unit 360 is the first video and encoding the second video to generate a third video. According to one side, the encoding unit 360 may generate a third video by performing an eXclusive OR (XOR) operation on the first video and the second video. The streaming unit 370 broadcasts the encoded third video to the first client 391 and the second client 392 .

일측에 따르면, 스트리밍부는 제1 클라이언트(391)로 제2 비디오에 대한 정보를 전송하고, 제2 클라이언트(392)로 제1 비디오에 대한 정보를 전송할 수 있다.According to one side, the streaming unit may transmit information on the second video to the first client 391 and transmit information on the first video to the second client 392 .

제1 클라이언트(391)로 전송된 제3 비디오는 제1 클라이언트(391)에 캐싱된 제2 비디오와 배타적 논리합 연산 수행되어 제1 클라이언트(391)에서 제1 비디오를 복원하기 위해 사용된다. 일측에 따르면, 제1 클라이언트(391)는 적응형 비디오 스트리밍 서버(300)로부터 수신한 제2 비디오에 대한 정보를 참조하여 제1 비디오를 복원할 수 있다.The third video transmitted to the first client 391 is subjected to an exclusive-OR operation with the second video cached in the first client 391 , and is used to restore the first video by the first client 391 . According to one side, the first client 391 may restore the first video with reference to information on the second video received from the adaptive video streaming server 300 .

또한, 제2 클라이언트(392)로 전송된 제3 비디오는 제2 클라이언트(392)에 캐싱된 제1 비디오와 배타적 논리합 연산 수행되어 제2 클라이언트(391)에서 제2 비디오를 복원하기 위해 사용된다. 일측에 따르면, 제2 클라이언트(391)는 적응형 비디오 스트리밍 서버(300)로부터 수신한 제1 비디오에 대한 정보를 참조하여 제2 비디오를 복원할 수 있다.In addition, the third video transmitted to the second client 392 is subjected to an exclusive-OR operation with the first video cached in the second client 392 , and is used to restore the second video by the second client 391 . According to one side, the second client 391 may restore the second video with reference to information on the first video received from the adaptive video streaming server 300 .

도 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 second client 392 and the second video is included in the list of videos cached by the first client 391 In this example, the adaptive video streaming server 300 may broadcast the encoded third video, such that the first client 391 restores the first video and the second client 392 restores the second video. have. By only broadcasting one video, different videos are restored in each client 391 and 392 , thereby increasing the efficiency of the communication network 380 .

도 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 client 400 according to an exemplary embodiment may include a streaming request transmitter 410 , a list request receiver 420 , a video list transmitter 430 , a video stream receiver 440 , and a decoder 450 . can

스트리밍 요청 전송부(410)는 적응형 비디오 스트리밍 서버(470)로 제1 비디오에 대한 스트리밍 요청을 전송한다. 일측에 따르면, 제2 클라이언트(480)는 제2 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(470)로 전송할 수 있다.The streaming request transmitter 410 transmits a streaming request for the first video to the adaptive video streaming server 470 . According to one side, the second client 480 may transmit a streaming request for the second video to the adaptive video streaming server 470 .

제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 video streaming server 470 . If the first video and the second video are the same, the video stream receiver 440 may receive a stream of the first video broadcast from the adaptive video streaming server 470 .

목록 요청 수신부(420)는 적응형 비디오 스트리밍 서버(470)로부터 스트리밍 요청에 응답하여 클라이언트(400)가 캐싱하는 비디오의 목록에 대한 요청을 수신한다. 일측에 따르면, 제1 비디오가 제2 비디오와 동일한 비디오인지 여부가 적응형 비디오 스트리밍 서버(470)에서 판단되고, 제1 비디오와 제2 비디오가 상이한 경우에, 목록 요청 수신부(420)는 판단 결과에 따라 클라이언트(400)가 캐싱하는 비디오의 목록에 대한 요청을 수신할 수 있다.The list request receiving unit 420 receives a request for a list of videos cached by the client 400 in response to the streaming request from the adaptive video streaming server 470 . According to one side, it is determined in the adaptive video streaming server 470 whether the first video is the same video as the second video, and when the first video and the second video are different, the list request receiving unit 420 determines the result Accordingly, the client 400 may receive a request for a list of videos cached.

비디오 목록 전송부(430)는 클라이언트(440)가 캐싱하는 비디오의 목록에 대한 요청에 응답하여 클라이언트(400)가 캐싱하는 비디오의 목록을 적응형 스트리밍 서버(470)로 전송한다. 제2 클라이언트(480)도 제2 클라이언트(480)가 캐싱하는 비디오의 목록을 적응형 스트리밍 서버(470)로 전송할 수 있다.The video list transmitter 430 transmits a list of videos cached by the client 400 to the adaptive streaming server 470 in response to a request for a list of videos cached by the client 440 . The second client 480 may also transmit a list of videos cached by the second client 480 to the adaptive streaming server 470 .

클라이언트(400)가 요청한 제1 비디오가 제2 클라이언트(480)가 캐싱하는 비디오의 목록에 포함되는지, 또한, 제2 클라이언트(480)가 요청한 제2 비디오가 클라이언트(400)가 캐싱하는 비디오의 목록에 포함되는지 여부는 적응형 스트리밍 서버(470)에서 판단될 수 있다.Whether the first video requested by the client 400 is included in the list of videos cached by the second client 480, and the second video requested by the second client 480 is a list of videos cached by the client 400 Whether included in the adaptive streaming server 470 may be determined.

비디오 스트림 수신부(440)는 전송된 비디오의 목록과 제2 클라이언트(480)가 캐싱하는 비디오의 목록이 적응형 비디오 스트리밍 서버(470)에서 비교된 결과에 따라 적응형 비디오 스트리밍 서버(470)로부터 제1 비디오의 스트림을 수신할 수 있다.The video stream receiving unit 440 is provided from the adaptive video streaming server 470 according to a result of comparing the list of transmitted videos and the list of videos cached by the second client 480 in the adaptive video streaming server 470 . 1 A video stream can be received.

제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 second client 480 or the second video is not included in the list of videos cached by the client 400, the video stream receiving unit 440 is an adaptive video A stream of the first video may be received from the streaming server 470 . Also, the second video may be streamed from the adaptive video streaming server 470 to the second client 480 .

제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 second client 480 and the second video is included in the list of videos cached by the client 400, the video stream receiving unit 440 is an adaptive video streaming server A stream of the third video may be received from 470 . The third video may be generated by performing an XOR operation on the first video and the second video. In this case, the video stream receiving unit 400 receives the information on the second video from the adaptive video streaming server 470, and the decoding unit 450 based on the information on the second video, the third video and the second video. The first video may be decoded by performing an exclusive OR operation on the two videos.

도 5는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 성능을 해석한 도면이다. 도 5의 가로축은 전송률을 나타내고, 세로축은 평균 전송 시간을 나타낸다. 도 5에서, 스트리밍되는 비디오 파일의 크기

Figure 112020072715693-pat00030
는 500MB이고, 비디오 파일의 총재생시간
Figure 112020072715693-pat00031
는 초이다. 또한, 적응형 비디오 서버가 캐싱하는 비디오 파일의 개수
Figure 112020072715693-pat00032
는 50개인 환경을 가정한다. 도 5에 도시된 그래프는 각 클라이언트들이 캐싱하는 비디오 파일의 개수
Figure 112020072715693-pat00033
가 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
Figure 112020072715693-pat00030
is 500MB, and the total playing time of the video file
Figure 112020072715693-pat00031
is seconds Also, the number of video files that the adaptive video server caches.
Figure 112020072715693-pat00032
assumes a 50-person environment. The graph shown in Fig. 5 shows the number of video files cached by each client.
Figure 112020072715693-pat00033
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)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수

Figure 112020072715693-pat00034
가 40인 경우를 나타내고, 제2 그래프(520)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수
Figure 112020072715693-pat00035
가 30인 경우를 나타내고, 제3 그래프(530)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수
Figure 112020072715693-pat00036
가 20인 경우를 나타낸다.In FIG. 5 , the first graph 510 shows the number of video files cached by each client.
Figure 112020072715693-pat00034
is 40, and the second graph 520 shows the number of video files cached by each client.
Figure 112020072715693-pat00035
is 30, and the third graph 530 shows the number of video files cached by each client.
Figure 112020072715693-pat00036
is 20.

도 5를 참조하면, 각 클라이언트들이 캐싱하는 비디오 파일의 개수

Figure 112020072715693-pat00037
가 증가함에 따라 배타적 논리합을 이용하여 브로드캐스트될 확률이 높으므로 전체적인 평균 전송시간이 감소함을 확인할 수 있다.Referring to FIG. 5 , the number of video files cached by each client
Figure 112020072715693-pat00037
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 list comparison unit 350 of the adaptive video streaming server 300 may compare a list of videos that each client caches with a list of videos that each client tries to play.

첫번째 단계에서, 클라이언트 분류부(미도시)는 클라이언트가 재생하려고 하는 비디오가 해당 클라이언트의 캐시에 저장되어 있으면, 해당 클라이언트를 적응형 비디오 스트리밍 서버(300)로부터의 스트리밍 없이 각 클라이언트가 캐싱하는 비디오를 재생하는 로컬 플레이 그룹으로 분류할 수 있다.In the first step, the client classification unit (not shown) receives the video cached by each client without streaming from the adaptive video streaming server 300 to the client if the video that the client wants to play is stored in the client's cache. It can be categorized into local playgroups that are playing.

클라이언트 분류부(미도시)는 여러 클라이언트들이 동일한 비디오를 재생하려고 하며, 각 클라이언트들이 해당 비디오를 캐싱하지 못하고 있다면, 해당 클라이언트들을 동일한 비디오를 다른 클라이언트들과 스트리밍 받아 재생하는 멀티캐스트 그룹으로 분류할 수 있다.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 streaming unit 370 may stream by applying a streaming method corresponding to each group to clients included in each group.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020200086396A 2019-09-09 2020-07-13 Adaptive video streaming system using receiver caching KR102439595B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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