WO2021049744A1 - 수신단 캐싱을 활용한 적응형 비디오 스트리밍 시스템 - Google Patents
수신단 캐싱을 활용한 적응형 비디오 스트리밍 시스템 Download PDFInfo
- Publication number
- WO2021049744A1 WO2021049744A1 PCT/KR2020/009224 KR2020009224W WO2021049744A1 WO 2021049744 A1 WO2021049744 A1 WO 2021049744A1 KR 2020009224 W KR2020009224 W KR 2020009224W WO 2021049744 A1 WO2021049744 A1 WO 2021049744A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- video
- client
- streaming
- list
- adaptive
- Prior art date
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 8
- 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
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- 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
-
- 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/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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- 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
Definitions
- the following embodiments relate to an adaptive video streaming system, and more specifically, to a video streaming system that adaptively streams using information on 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.
- broadcasting using over-the-air waves, etc. but also personal broadcasting using the Internet has been spreading, and most of the personal broadcasting are provided in a streaming method using wired or 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.
- the adaptive video streaming server receives a streaming request for a first video from a first client and a streaming request receiver for receiving a streaming request for a second video from a second client.
- a determination unit that determines whether the first video and the second video are the same video, when the first video and the second video are different, requests a list of videos cached by the first client, and the second video 2
- a list request unit that requests a list of videos cached by a client, a video list receiver that receives a list of videos cached by the first client and receives a list of videos cached by the second client, and 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 according to the comparison result. It may include a streaming unit for streaming video to the first client, and streaming the second video to the second client.
- the adaptive video streaming server may broadcast the first video to the first client and the second client.
- the adaptive video streaming server A video may be streamed to the first client, and the second video may be streamed to the second client.
- the adaptive video streaming server Encoding a third video by performing an exclusive OR (XOR) operation on the second video, broadcasting the third video to the first client and the second client, and 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.
- the adaptive video streaming server may transmit information on the second video to the first client, and perform the exclusive OR operation on the third video based on the transmitted information.
- a client receiving a video stream from an adaptive video streaming server includes a streaming request transmitting unit 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 receiver that receives a request for a list of videos cached by the client, and a list of videos cached by the client in response to a request for a list of videos cached by the client, the adaptive streaming server A video list transmission unit to be transmitted to and from the adaptive video streaming server according to a result of comparing the transmitted video list and the video list cached by the second client by the adaptive video streaming server. It may include a video stream receiver for receiving.
- the adaptive video streaming server determines whether the first video is the same video as the second video requested by the second client to the adaptive video streaming server, and the client determines the video cached by the client according to the determination result. You can receive a request for a list.
- the client may receive the stream of the first video broadcast from the adaptive video streaming server.
- the client sends the first video from the adaptive video streaming server.
- the second video may be streamed from the adaptive video streaming server to the second client.
- the client further includes a decoding unit, and when the first video is included in a list of videos cached by the second client, and the second video is included in a list of videos cached by the client, the client adapts
- the first video may be decoded by receiving a stream of a third video from a video streaming server and performing an exclusive OR (XOR) operation on the third video and the second video.
- XOR exclusive OR
- the client may receive information on the second video from the adaptive video streaming server and perform the exclusive OR operation based on the received information.
- FIG. 1 is a diagram showing the concept of an adaptive video streaming server for streaming to a plurality of clients using a communication network.
- Fig. 2 is a flow chart illustrating step-by-step operations of an adaptive video streaming system according to an exemplary embodiment.
- Fig. 3 is a block diagram showing a structure of an adaptive video streaming server according to an exemplary embodiment.
- Fig. 4 is a block diagram showing a 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.
- the adaptive video streaming server receives a streaming request for a first video from a first client and a streaming request receiver for receiving a streaming request for a second video from a second client.
- a determination unit that determines whether the first video and the second video are the same video, when the first video and the second video are different, requests a list of videos cached by the first client, and the second video 2
- a list request unit that requests a list of videos cached by a client, a video list receiver that receives a list of videos cached by the first client and receives a list of videos cached by the second client, and 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 according to the comparison result. It may include a streaming unit for streaming video to the first client, and streaming the second video to the second client.
- the adaptive video streaming server may broadcast the first video to the first client and the second client.
- the adaptive video streaming server A video may be streamed to the first client, and the second video may be streamed to the second client.
- the adaptive video streaming server Encoding a third video by performing an exclusive OR (XOR) operation on the second video, broadcasting the third video to the first client and the second client, and 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.
- the adaptive video streaming server may transmit information on the second video to the first client, and perform the exclusive OR operation on the third video based on the transmitted information.
- a client receiving a video stream from an adaptive video streaming server includes a streaming request transmitting unit 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 receiver that receives a request for a list of videos cached by the client, and a list of videos cached by the client in response to a request for a list of videos cached by the client, the adaptive streaming server A video list transmission unit to be transmitted to and from the adaptive video streaming server according to a result of comparing the transmitted video list and the video list cached by the second client by the adaptive video streaming server. It may include a video stream receiver for receiving.
- the adaptive video streaming server determines whether the first video is the same video as the second video requested by the second client to the adaptive video streaming server, and the client determines the video cached by the client according to the determination result. You can receive a request for a list.
- the client may receive the stream of the first video broadcast from the adaptive video streaming server.
- the client sends the first video from the adaptive video streaming server.
- the second video may be streamed from the adaptive video streaming server to the second client.
- the client further includes a decoding unit, and when the first video is included in a list of videos cached by the second client, and the second video is included in a list of videos cached by the client, the client adapts
- the first video may be decoded by receiving a stream of a third video from a video streaming server and performing an exclusive OR (XOR) operation on the third video and the second video.
- XOR exclusive OR
- the client may receive information on the second video from the adaptive video streaming server and perform the exclusive OR operation based on the received information.
- FIG. 1 is a diagram showing the concept of an adaptive video streaming server for streaming to a plurality of clients using a communication network.
- 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 encoding or changing a protocol according to the video requested by the clients 130 and 140.
- the adaptive video streaming server 110 broadcasts the corresponding video to stream the corresponding video. Can be transmitted.
- the first client 130 and the second client 140 may cache some video files.
- the adaptive video streaming server 110 may transmit a video stream using information on video files that the first client 130 and the second client 140 cache, respectively.
- the second client 140 may not cache the video file requested by the first client 130.
- the first client 130 may not cache the video file requested by the second client 140.
- 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.
- the second client 140 may cache a video file requested by the first client 130, and the first client 130 may cache a video file requested by the second client 140.
- the adaptive video streaming server 110 generates one video stream by encoding the video file requested by the first client 130 and the video file requested by the second client 140, and generates one video stream. It may 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.
- Fig. 2 is a flow chart illustrating step-by-step operations of an adaptive video streaming system according to an exemplary embodiment.
- the adaptive video streaming server 210 Cache videos, each client Suppose you cache two video files. Also, to be.
- step 231 the first client 221 transmits a streaming request for the first video to the adaptive video streaming server 210.
- step 232 the second client 222 transmits a streaming request for the second video to the adaptive video streaming server 210.
- n is the index of the client.
- step 240 the adaptive video streaming server 210 determines whether the first video and the second video are the same video.
- the adaptive video streaming server 210 transfers the video to the first client 221 and the second client 222 in steps 241 and 242. Broadcast. If each of the clients stores the video file in a uniform distribution, the probability that the adaptive video streaming server 210 broadcasts the video to each of the clients 221 and 222 is as shown in Equation 1 below.
- 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. .
- step 251 the first client 221 receives a list request for a video cached by the first client 221.
- step 252 the second client 222 receives a list request for the video cached by the second client 222.
- 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 the second client ( 222) receives a list of cached videos.
- 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 interpreted as simply determining whether the first client 221 and the second client 222 cross-storing the video with each other.
- the video streaming server 210 transmits the video requested by each of the clients 221 and 222 in step 271, respectively.
- the first client 221 may receive the stream of the first video
- the second client 222 may receive the stream of the second video.
- the first client 221 receives the stream of the first video, and in step 273, the probability that the second client 222 receives the stream of the second video is as shown in Equation 2 below.
- the adaptive video streaming server 210 A third video may be generated by encoding the first video and the second video.
- the adaptive video streaming server 210 may perform encoding using an XOR (eXclusive OR) operation.
- the adaptive video streaming server 210 may broadcast the encoded video to the first client 221 and the second client 222. Although the video required 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.
- Equation 3 The probability that each client (221, 222) receives the video encoded by the XOR operation is given in Equation 3 below.
- the first client 221 may receive the stream of the third video and restore the first video from the third video.
- the second client 221 may receive the stream of the third video and restore the second video from the third video.
- the average transmission time of the adaptive video streaming method including the case of broadcasting a file encoded using an exclusive OR operation is as shown in Equation 6 below.
- Equation 6 can be approximated as in Equation 7.
- Is Is defined as, and the average transmission time according to the exemplary embodiment is approximately Wow Which is the ratio of It can be seen that it is determined by
- Fig. 3 is a block diagram showing a structure of an adaptive video streaming server according to an exemplary embodiment.
- the adaptive video streaming server 300 includes a streaming request receiving unit 310, a determining unit 320, a list requesting unit 330, and a video list receiving unit 340.
- a video list comparison unit 350, an encoding unit 360, and a streaming unit 370 may be included.
- 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 through the communication network 380 or the like.
- 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 through the communication network 380.
- the list requesting unit 330 requests a list of videos cached by the first client 391.
- the list request unit 330 requests a list of videos cached by the second client 392.
- “caching” means that each of the clients 391 and 392 stores video in their respective storage units.
- 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.
- 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 is displayed in the list of videos cached by the second client 392. 1 Compares whether the video requested by the client 391 is included.
- 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.
- the streaming unit 370 May stream the first video to the first client 391 and stream the second video to the second client 392 via the communication network 380.
- the encoding unit 360 And the second video may be encoded to generate a third video.
- 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.
- the streaming unit may transmit information on the second video to the first client 391 and may transmit information on the first video to the second client 392.
- the third video transmitted to the first client 391 is used to reconstruct the first video by performing an exclusive OR operation with the second video cached in the first client 391.
- the first client 391 may restore the first video by referring to information on the second video received from the adaptive video streaming server 300.
- the third video transmitted to the second client 392 is used to reconstruct the second video by performing an exclusive OR operation with the first video cached in the second client 392.
- the second client 391 may restore the second video by referring to information on the first video received from the adaptive video streaming server 300.
- the adaptive video streaming server 300 broadcasts the encoded third video so that the first client 391 restores the first video and the second client 392 restores the second video. have.
- different videos can be restored by each of the clients 391 and 392, thereby increasing the efficiency of the communication network 380.
- Fig. 4 is a block diagram showing a structure of a client according to an exemplary embodiment.
- the client 400 according to an exemplary embodiment includes a streaming request transmission unit 410, a list request reception unit 420, a video list transmission unit 430, a video stream reception unit 440, and a decoding unit 450. I can.
- the streaming request transmission unit 410 transmits a streaming request for the first video to the adaptive video streaming server 470.
- the second client 480 may transmit a streaming request for the second video to the adaptive video streaming server 470.
- 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.
- 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, whether the first video is the same video as the second video is determined by the adaptive video streaming server 470, and when the first video and the second video are different, the list request receiving unit 420 determines the result of the determination. Accordingly, a request for a list of videos cached by the client 400 may be received.
- the video list transmission unit 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.
- 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 to be included in the adaptive streaming server 470 may be determined.
- the video stream receiver 440 provides a list of transmitted videos and a list of videos cached by the second client 480 from the adaptive video streaming server 470 according to the comparison result of the adaptive video streaming server 470. 1 You can receive a stream of video.
- the video stream receiver 440 The 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.
- the video stream receiver 440 A stream of a third video may be received from 470.
- the third video may be generated by performing an exclusive OR (XOR) operation on the first video and the second video.
- the video stream receiving unit 400 receives information on the second video from the adaptive video streaming server 470, and the decoding unit 450
- the first video may be decoded by performing an exclusive OR operation on the 2 videos.
- Fig. 5 is a diagram illustrating performance analysis of an adaptive video streaming system according to an exemplary embodiment.
- the horizontal axis of FIG. 5 represents the transmission rate, and the vertical axis represents the average transmission time.
- the size of the video file to be streamed Is 500MB, and the total playing time of the video file Is seconds.
- the number of video files cached by the adaptive video server Assumes an environment of 50 individuals.
- the graph shown in FIG. 5 is the number of video files that each client caches. Shows the performance when is changed to 20, 30, or 40.
- the case of adaptive streaming according to an exemplary embodiment than a case where the adaptive video streaming server broadcasts a video or directly transmits the corresponding video to each client has an average lower transmission time. It can be seen that it represents.
- a first graph 510 is the number of video files that each client caches. Is 40, and the second graph 520 shows the number of video files that each client caches. Is 30, and the third graph 530 shows the number of video files that each client caches. Represents the case of 20.
- the adaptive video streaming server described in FIGS. 2 to 5 can stream video in a similar manner for multiple clients.
- the adaptive video streaming server classifies each client into a plurality of groups to which different streaming techniques are applied by comparing the list of videos held by each client with the list of videos included in the streaming request. , For each group, a streaming method corresponding to each group can be applied.
- the video list comparison unit 350 of the adaptive video streaming server 300 may compare a list of videos cached by each client with a list of videos that each client intends to play.
- the client classifier (not shown) stores the video cached by each client without streaming from the adaptive video streaming server 300. It can be categorized into the local playgroup you play.
- the client classifier (not shown) can classify the clients into a multicast group in which multiple clients attempt to play the same video, and if each of the clients is unable to cache the video, the clients can be streamed and played back with the same video. have.
- the client classification unit may classify clients that are not classified into a local play group and a multicast group into the remaining groups.
- the client classification unit (not shown) is an exclusive OR streaming group and each client that streams and plays back different videos together with other clients using a streaming technique using an exclusive OR operation. It can be classified into unicast groups that transmit individual videos.
- the streaming unit 370 may perform streaming by applying a streaming method corresponding to each group to clients included in each group.
- 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 usable to those skilled in computer software.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
- -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like.
- Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.
- the hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.
- an adaptive video streaming system comprising an adaptive video streaming server and a client receiving video streaming from the adaptive video streaming server.
- the adaptive video streaming server and the client each cache a video file and perform adaptive streaming according to whether or not a video file to be streamed is cached in another client, thereby enabling efficient use of a communication network.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
적응형 비디오 스트리밍 서버 및 적응형 비디오 스트리밍 서버에서 비디오를 스트리밍 받는 클라이언트로 구성된 적응형 비디오 스트리밍 시스템이 개시된다. 적응형 비디오 스트리밍 서버와 클라이언트는 각각 비디오 파일을 캐싱하고, 스트리밍할 비디오 파일이 다른 클라이언트에 캐싱되었는지 여부에 따라 적응적으로 스트리밍을 수행하여 통신망을 효율적으로 사용할 수 있다.
Description
하기의 실시예들은 적응형 비디오 스트리밍 시스템에 관한 것으로 구체적으로는 파일 스트림을 수신할 클라이언트가 저장하고 있는 파일에 대한 정보를 이용하여 적응적으로 스트리밍하는 비디오 스트리밍 시스템에 관한 것이다.
스트리밍은, 재생 전에 멀티미디어 파일 전체가 클라이언트에게 전송되는 다운로딩과 달리, 클라이언트가 소비하는 콘텐츠가 작은 조각으로 나뉘어 클라이언트에게 전송되는 프로세스이다. 최근에는 공중파 등을 이용한 방송뿐만 아니라, 인터넷을 이용한 개인 방송도 확산되고 있으며, 대부분의 개인 방송들은 유무선 인터넷을 이용한 스트리밍 방식으로 제공되고 있다.
비디오 스트리밍은 인터넷 트래픽의 대부분을 차지하고 있으며 급격히 증가하고 있어 효율적인 스트리밍 방식에 대한 요구가 매우 크다.
하기의 실시예들의 목적은 비디오 스트리밍에 소요되는 시간을 감소시키는 것이다.
하기의 실시예들의 목적은 비디오 스트리밍의 효율성을 높이는 것이다.
예시적 실시예예 따른 적응형 비디오 스트리밍 서버는 제1 클라이언트로부터 제1 비디오에 대한 스트리밍 요청을 수신하고, 제2 클라이언트로부터 제2 비디오에 대한 스트리밍 요청을 수신하는 스트리밍 요청 수신부. 상기 제1 비디오와 상기 제2 비디오가 동일한 비디오인지 여부를 판단하는 판단부, 상기 제1 비디오와 상기 제2 비디오가 상이한 경우에, 상기 제1 클라이언트가 캐싱하는 비디오의 목록을 요청하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 요청하는 목록 요청부, 상기 제1 클라이언트가 캐싱하는 비디오의 목록을 수신하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 수신하는 비디오 목록 수신부, 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 상기 제2 비디오가 포함되었는지 비교하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 상기 제1 비디오가 포함되었는지 비교하는 비디오 목록 비교부 및 상기 비교 결과에 따라 상기 제1 비디오를 상기 제1 클라이언트로 스트리밍하고, 상기 제2 비디오를 상기 제2 클라이언트로 스트리밍하는 스트리밍부를 포함할 수 있다.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오와 상기 제2 비디오가 동일한 경우에, 상기 제1 비디오를 상기 제1 클라이언트와 상기 제2 클라이언트로 브로드캐스트(Broadcast)할 수 있다.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않거나, 상기 제2 비디오가 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않으면, 상기 제1 비디오를 상기 제1 클라이언트로 스트리밍하고, 상기 제2 비디오를 상기 제2 클라이언트로 스트리밍할 수 있다.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되고, 상기 제2 비디오가 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 포함되면, 상기 제1 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 제3 비디오를 인코딩하고, 상기 제3 비디오를 상기 제1 클라이언트 및 상기 제2 클라이언트로 브로드캐스트하고, 상기 제1 클라이언트로 전송된 제3 비디오는 상기 제1 클라이언트에 캐싱된 상기 제2 비디오와 배타적 논리합 연산 수행되어 상기 제1 비디오를 복원하기 위해 사용될 수 있다.
상기 적응형 비디오 스트리밍 서버는 상기 제1 클라이언트로 상기 제2 비디오에 대한 정보를 전송하고, 상기 제3 비디오는 상기 전송된 정보에 기반하여 상기 배타적 논리합 연산 수행될 수 있다.
예시적 실시예에 따라 적응형 비디오 스트리밍 서버로부터 비디오 스트림을 수신하는 클라이언트는 상기 적응형 비디오 스트리밍 서버로 제1 비디오에 대한 스트리밍 요청을 전송하는 스트리밍 요청 전송부, 상기 적응형 비디오 스트리밍 서버로부터 상기 스트리밍 요청에 응답하여 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청을 수신하는 목록 요청 수신부 및 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청에 응답하여 상기 클라이언트가 캐싱하는 비디오의 목록을 상기 적응형 스트리밍 서버로 전송하는 비디오 목록 전송부, 상기 전송된 비디오의 목록과 제2 클라이언트가 캐싱하는 비디오의 목록이 상기 적응형 비디오 스트리밍 서버에서 비교된 결과에 따라 상기 적응형 비디오 스트리밍 서버로부터 상기 제1 비디오의 스트림을 수신하는 비디오 스트림 수신부를 포함할 수 있다.
상기 제1 비디오가 상기 제2 클라이언트가 상기 적응형 비디오 스트리밍 서버에 요청한 제2 비디오와 동일한 비디오인지 상기 적응형 비디오 스트리밍 서버에서 판단되고, 상기 클라이언트는 상기 판단 결과에 따라 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청을 수신할 수 있다.
상기 제1 비디오와 상기 제2 비디오가 동일한 경우에, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버에서 브로트캐스트(Broadcast)되는 상기 제1 비디오의 스트림을 수신할 수 있다.
상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않거나, 상기 제2 비디오가 상기 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않으면, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 제1 비디오의 스트림을 수신하고, 상기 제2 비디오는 상기 적응형 비디오 스트리밍 서버로부터 상기 제2 클라이언트로 스트리밍될 수 있다.
상기 클라이언트는 디코딩부를 더 포함하고, 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되고, 상기 제2 비디오가 상기 클라이언트가 캐싱하는 비디오의 목록에 포함되면, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 제3 비디오의 스트림을 수신하고, 상기 제3 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 상기 제1 비디오를 디코딩할 수 있다.
상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 상기 제2 비디오에 대한 정보를 수신하고, 상기 수신된 정보에 기반하여 상기 배타적 논리합 연산을 수행할 수 있다.
하기의 실시예들에 따르면, 비디오 스트리밍에 소요되는 시간을 감소시킬 수 있다.
하기의 실시예들에 따르면, 비디오 스트리밍의 효율성을 높일 수 있다.
도 1은 통신망을 이용하여 복수의 클라이언트에 스트리밍하는 적응형 비디오 스트리밍 서버의 개념을 도시한 도면이다.
도 2는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 동작을 단계별로 설명한 순서도이다.
도 3은 예시적 실시예에 따른 적응형 비디오 스트리밍 서버의 구조를 도시한 블록도이다.
도 4는 예시적 실시예에 따른 클라이언트의 구조를 도시한 블록도이다.
도 5는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 성능을 해석한 도면이다.
예시적 실시예예 따른 적응형 비디오 스트리밍 서버는 제1 클라이언트로부터 제1 비디오에 대한 스트리밍 요청을 수신하고, 제2 클라이언트로부터 제2 비디오에 대한 스트리밍 요청을 수신하는 스트리밍 요청 수신부. 상기 제1 비디오와 상기 제2 비디오가 동일한 비디오인지 여부를 판단하는 판단부, 상기 제1 비디오와 상기 제2 비디오가 상이한 경우에, 상기 제1 클라이언트가 캐싱하는 비디오의 목록을 요청하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 요청하는 목록 요청부, 상기 제1 클라이언트가 캐싱하는 비디오의 목록을 수신하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 수신하는 비디오 목록 수신부, 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 상기 제2 비디오가 포함되었는지 비교하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 상기 제1 비디오가 포함되었는지 비교하는 비디오 목록 비교부 및 상기 비교 결과에 따라 상기 제1 비디오를 상기 제1 클라이언트로 스트리밍하고, 상기 제2 비디오를 상기 제2 클라이언트로 스트리밍하는 스트리밍부를 포함할 수 있다.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오와 상기 제2 비디오가 동일한 경우에, 상기 제1 비디오를 상기 제1 클라이언트와 상기 제2 클라이언트로 브로드캐스트(Broadcast)할 수 있다.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않거나, 상기 제2 비디오가 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않으면, 상기 제1 비디오를 상기 제1 클라이언트로 스트리밍하고, 상기 제2 비디오를 상기 제2 클라이언트로 스트리밍할 수 있다.
상기 적응형 비디오 스트리밍 서버는 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되고, 상기 제2 비디오가 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 포함되면, 상기 제1 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 제3 비디오를 인코딩하고, 상기 제3 비디오를 상기 제1 클라이언트 및 상기 제2 클라이언트로 브로드캐스트하고, 상기 제1 클라이언트로 전송된 제3 비디오는 상기 제1 클라이언트에 캐싱된 상기 제2 비디오와 배타적 논리합 연산 수행되어 상기 제1 비디오를 복원하기 위해 사용될 수 있다.
상기 적응형 비디오 스트리밍 서버는 상기 제1 클라이언트로 상기 제2 비디오에 대한 정보를 전송하고, 상기 제3 비디오는 상기 전송된 정보에 기반하여 상기 배타적 논리합 연산 수행될 수 있다.
예시적 실시예에 따라 적응형 비디오 스트리밍 서버로부터 비디오 스트림을 수신하는 클라이언트는 상기 적응형 비디오 스트리밍 서버로 제1 비디오에 대한 스트리밍 요청을 전송하는 스트리밍 요청 전송부, 상기 적응형 비디오 스트리밍 서버로부터 상기 스트리밍 요청에 응답하여 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청을 수신하는 목록 요청 수신부 및 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청에 응답하여 상기 클라이언트가 캐싱하는 비디오의 목록을 상기 적응형 스트리밍 서버로 전송하는 비디오 목록 전송부, 상기 전송된 비디오의 목록과 제2 클라이언트가 캐싱하는 비디오의 목록이 상기 적응형 비디오 스트리밍 서버에서 비교된 결과에 따라 상기 적응형 비디오 스트리밍 서버로부터 상기 제1 비디오의 스트림을 수신하는 비디오 스트림 수신부를 포함할 수 있다.
상기 제1 비디오가 상기 제2 클라이언트가 상기 적응형 비디오 스트리밍 서버에 요청한 제2 비디오와 동일한 비디오인지 상기 적응형 비디오 스트리밍 서버에서 판단되고, 상기 클라이언트는 상기 판단 결과에 따라 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청을 수신할 수 있다.
상기 제1 비디오와 상기 제2 비디오가 동일한 경우에, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버에서 브로트캐스트(Broadcast)되는 상기 제1 비디오의 스트림을 수신할 수 있다.
상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않거나, 상기 제2 비디오가 상기 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않으면, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 제1 비디오의 스트림을 수신하고, 상기 제2 비디오는 상기 적응형 비디오 스트리밍 서버로부터 상기 제2 클라이언트로 스트리밍될 수 있다.
상기 클라이언트는 디코딩부를 더 포함하고, 상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되고, 상기 제2 비디오가 상기 클라이언트가 캐싱하는 비디오의 목록에 포함되면, 상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 제3 비디오의 스트림을 수신하고, 상기 제3 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 상기 제1 비디오를 디코딩할 수 있다.
상기 클라이언트는 상기 적응형 비디오 스트리밍 서버로부터 상기 제2 비디오에 대한 정보를 수신하고, 상기 수신된 정보에 기반하여 상기 배타적 논리합 연산을 수행할 수 있다.
이하, 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 통신망을 이용하여 복수의 클라이언트에 스트리밍하는 적응형 비디오 스트리밍 서버의 개념을 도시한 도면이다.
적응형 비디오 스트리밍 서버(110)는 통신망(120)을 통해 복수의 클라이언트(130, 140)로 비디오의 스트림을 전송한다. 일측에 따르면, 적응형 비디오 스트리밍 서버(110)는 클라이언트들(130, 140)이 요청한 비디오에 따라서 인코딩을 달리하거나, 프로토콜을 변경하여 비디오의 스트림을 전송할 수 있다.
예를 들어, 제1 클라이언트(130)와 제2 클라이언트(140)가 동일한 비디오에 대해 스트리밍을 요청한 경우, 적응형 비디오 스트리밍 서버(110)는 해당 비디오를 브로드캐스트(Broadcast)함으로써, 해당 비디오의 스트림을 전송할 수 있다.
일측에 따르면, 제1 클라이언트(130)와 제2 클라이언트(140)는 일부 비디오 파일을 캐싱(caching)할 수 있다. 이 경우에, 적응형 비디오 스트리밍 서버(110)는 제1 클라이언트(130)와 제2 클라이언트(140)가 각각 캐싱하는 비디오 파일에 대한 정보를 이용하여 비디오의 스트림을 전송할 수 있다.
일측에 따르면, 제2 클라이언트(140)는 제1 클라이언트(130)가 요청한 비디오 파일을 캐싱하지 않을 수 있다. 또는 제1 클라이언트(130)는 제2 클라이언트(140)가 요청한 비디오 파일을 캐싱하지 않을 수 있다. 이 경우에, 적응형 비디오 스트리밍 서버(110)는 제1 클라이언트(130)가 요청한 비디오의 스트림을 제1 클라이언트(130)로 직접 전송하고, 제2 클라이언트(140)가 요청한 비디오의 스트림을 제2 클라이언트(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개만 전송함으로써, 비디오 스트리밍의 효율성을 향상시킬 수 있다.
도 2는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 동작을 단계별로 설명한 순서도이다.
단계(231)에서, 제1 클라이언트(221)는 제1 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(210)로 전송한다.
단계(232)에서, 제2 클라이언트(222)는 제2 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(210)로 전송한다.
각 클라이언트(221, 222)가 캐싱하는 비디오 파일의 집합을 이라고 하고, 각 클라이언트(221, 222)들이 적응형 비디오 스트리밍 서버(210)로 요청하는 비디오 파일을 이라고 할 수 있다. 여기서, n는 클라이언트의 인덱스이다.
단계(240)에서, 적응형 비디오 스트리밍 서버(210)는 제1 비디오와 제2 비디오가 동일한 비디오인지 여부를 판단한다.
만약, 제1 비디오와 제2 비디오가 동일한 비디오라면, 적응형 비디오 스트리밍 서버(210)는 단계(241) 및 단계(242)에서 해당 비디오를 제1 클라이언트(221) 및 제2 클라이언트(222)로 브로드캐스트(Broadcast)한다. 각 클라이언트들이 비디오 파일을 균일 분포(uniform distribution)로 저장한다면, 적응형 비디오 스트리밍 서버(210)가 각 클라이언트들(221, 222)에게 비디오를 브로드캐스트할 확률을 하기 수학식 1과 같다.
[수학식 1]
만약 제1 비디오와 제2 비디오가 상이한 비디오라면, 적응형 비디오 스트리밍 서버(210)는 단계(250)에서 제1 클라이언트(221) 및 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록을 요청한다.
단계(251)에서, 제1 클라이언트(221)는 제1 클라이언트(221)가 캐싱하는 비디오에 대한 목록 요청을 수신한다.
단계(252)에서, 제2 클라이언트(222)는 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록 요청을 수신한다.
단계(260)에서, 적응형 비디오 스트리밍 서버(210)는 제1 클라이언트(221)로부터 제1 클라이언트(221)가 캐싱하는 비디오에 대한 목록을 수신하고, 제2 클라이언트(222)로부터 제2 클라이언트(222)가 캐싱하는 비디오에 대한 목록을 수신한다.
단계(270)에서, 적응형 비디오 스트리밍 서버(210)는 제1 클라이언트(221)가 제2 비디오를 캐싱하고, 제2 클라이언트(222)가 제1 비디오를 캐싱하는지 여부를 판단한다. 즉, 제1 클라이언트(221)가 캐싱하는 비디오의 목록에 제2 비디오가 포함되고, 제2 클라이언트(222)가 캐싱하는 비디오의 목록에 제1 비디오가 포함되는지 여부를 판단한다. 이를 간단히 제1 클라이언트(221)와 제2 클라이언트(222)가 비디오를 서로 교차저장하고 있는지 판단하는 것으로 해석할 수 있다.
만약, 제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와 같다.
[수학식 2]
만약 제1 클라이언트(221)가 제2 클라이언트(222)가 요구하는 비디오를 캐싱하고, 제2 클라이언트(222)가 제1 클라이언트(221)가 요구하는 비디오를 캐싱하고 있다면(제1 비디오가 제2 클라이언트(222)가 캐싱하는 비디오의 목록에 포함되고, 제2 비디오가 제1 클라이언트(221)가 캐싱하는 비디오의 목록에 포함되면), 적응형 비디오 스트리밍 서버(210)는 단계(280)에서 제1 비디오와 제2 비디오를 인코딩하여 제3 비디오를 생성할 수 있다. 여기서, 적응형 비디오 스트리밍 서버(210)는 배타적 논리합(XOR: eXclusive OR)연산을 이용하여 인코딩을 수행할 수 있다.
단계(281)에서, 적응형 비디오 스트리밍 서버(210)는 인코딩된 영상을 제1 클라이언트(221) 및 제2 클라이언트(222)로 브로드캐스트할 수 있다. 2개의 클라이언트(221, 222)가 요구하는 비디오가 서로 상이하지만, 적응형 비디오 스트리밍 서버(210)는 1개의 비디오만 브로드캐스트하므로, 적응형 비디오 스트리밍 서버(210)는 무선 자원을 효율적으로 사용할 수 있다.
각 클라이언드을(221, 222)이 XOR 연산으로 인코딩된 비디오를 수신할 확률은 하기 수학식 3과 같다.
[수학식 3]
단계(282)에서 제1 클라이언트(221)는 제3 비디오의 스트림을 수신하고, 제3 비디오로부터 제1 비디오를 복원할 수 있다.
단계(283)에서 제2 클라이언트(221)는 제3 비디오의 스트림을 수신하고, 제3 비디오로부터 제2 비디오를 복원할 수 있다.
[수학식 4]
각 클라이언드들이 동일한 비디오에 대한 스트리밍을 요구하여 해당 파일을 단순 방송하는 경우(BC)의 소요시간 , 서로 다른 파일에 대한 스트리밍을 요구하여 각 파일을 각각 전송하는 경우(UC)의 소요시간 , 스트리밍을 요구한 파일을 각 클라이언트들이 서로 교차 저장하여, 배타적 논리합 연산을 이용하여 인코딩된 파일을 방송하는 경우(XBC)의 소요시간 는 각각 다음 수학식 5와 같이 결정될 수 있다.
[수학식 5]
도 2에 도시된 바와 같이, 배타적 논리합 연산을 이용하여 인코딩된 파일을 방송하는 경우(XBC)를 포함하는 적응형 비디오 스트리밍 방식의 평균 전송 시간은 하기 수학식 6과 같다.
[수학식 6]
[수학식 7]
반면, 배타적 논리합 연산을 이용하지 않고, 각 클라이언트들이 동일한 비디오에 대한 스트리밍을 요구하여 해당 파일을 단순 방송(BC)하거나, 서로 다른 파일에 대한 스트리밍을 요구하여 각 파일을 각각 전송(UC)하는 경우만을 고려한 평균 전송 시간은 하기 수학식 8과 같다.
[수학식 8]
도 3은 예시적 실시예에 따른 적응형 비디오 스트리밍 서버의 구조를 도시한 블록도이다. 예시적 실시예에 따른 적응형 비디오 스트리밍 서버(300)는 스트리밍 요청 수신부(310), 판단부(320), 목록 요청부(330), 비디오 목록 수신부(340). 비디오 목록 비교부(350), 인코딩부(360) 및 스트리밍부(370)를 포함할 수 있다.
스트리밍 요청 수신부(310)는 제1 클라이언트(391)로부터 제1 비디오에 대한 스트리밍 요청을 수신하고, 제2 클라이언트(392)로부터 제2 비디오에 대한 스트리밍 요청을 수신한다. 일측에 따르면, 제1 비디오에 대한 스트리밍 요청 및 제2 비디오에 대한 스트리밍 요청은 통신망(380) 등을 경유하여 수신될 수 있다.
판단부(320)는 제1 비디오와 제2 비디오가 동일한 비디오인지 여부를 판단한다. 만약 제1 비디오와 제2 비디오가 동일한 비디오라면, 스트리밍부(370)는 통신망(380)을 경유하여 해당 비디오를 브로드캐스트(Broadcast)할 수 있다.
제1 비디오와 제2 비디오가 상이한 경우에, 목록 요청부(330)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록을 요청한다. 또한 목록 요청부(330)는 제2 클라이언트(392)가 캐싱하는 비디오의 목록을 요청한다. 여기서, '캐싱'이란 각 클라이언트(391, 392)가 각자의 저장부에 비디오를 저장하고 있는 것을 말한다.
비디오 목록 수신부(340)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록을 수신하고, 제2 클라이언트(392)가 캐싱하는 비디오의 목록을 수신한다.
비디오 목록 비교부(350)는 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 제2 클라이언트(392)가 요청한 비디오가 포함되었는지 비교하고, 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 제1 클라이언트(391)가 요청한 비디오가 포함되었는지 비교한다.
스트리밍부(370)는 비디오 목록 비교부(350)의 비교 결과에 따라 제1 비디오를 제1 클라이언트(391)로 스트리밍하고, 제2 비디오를 제2 클라이언트(392)로 스트리밍 할 수 있다.
예를 들어, 제1 비디오가 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 포함되지 않거나, 제2 비디오가 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 포함되지 않으면, 스트리밍부(370)는 통신망(380)을 경유하여 제1 비디오를 제1 클라이언트(391)로 스트리밍하고, 제2 비디오를 제2 클라이언트(392)로 스트리밍 할 수 있다.
만약 제1 비디오가 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 포함되고, 제2 비디오가 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 포함되면, 인코딩부(360)는 제1 비디오와 제2 비디오를 인코딩하여 제3 비디오를 생성할 수 있다. 일측에 따르면, 인코딩부(360)는 제1 비디오와 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 제3 비디오를 생성할 수 있다. 스트리밍부(370)는 인코딩된 제3 비디오를 제1 클라이언트(391) 및 제2 클라이언트(392)로 브로드캐스트한다.
일측에 따르면, 스트리밍부는 제1 클라이언트(391)로 제2 비디오에 대한 정보를 전송하고, 제2 클라이언트(392)로 제1 비디오에 대한 정보를 전송할 수 있다.
제1 클라이언트(391)로 전송된 제3 비디오는 제1 클라이언트(391)에 캐싱된 제2 비디오와 배타적 논리합 연산 수행되어 제1 클라이언트(391)에서 제1 비디오를 복원하기 위해 사용된다. 일측에 따르면, 제1 클라이언트(391)는 적응형 비디오 스트리밍 서버(300)로부터 수신한 제2 비디오에 대한 정보를 참조하여 제1 비디오를 복원할 수 있다.
또한, 제2 클라이언트(392)로 전송된 제3 비디오는 제2 클라이언트(392)에 캐싱된 제1 비디오와 배타적 논리합 연산 수행되어 제2 클라이언트(391)에서 제2 비디오를 복원하기 위해 사용된다. 일측에 따르면, 제2 클라이언트(391)는 적응형 비디오 스트리밍 서버(300)로부터 수신한 제1 비디오에 대한 정보를 참조하여 제2 비디오를 복원할 수 있다.
도 3에 도시된 실시예에 따르면, 제1 비디오가 제2 클라이언트(392)가 캐싱하는 비디오의 목록에 포함되고, 제2 비디오가 제1 클라이언트(391)가 캐싱하는 비디오의 목록에 포함되는 경우에, 적응형 비디오 스트리밍 서버(300)는 인코딩된 제3 비디오를 브로드캐스트하여, 제1 클라이언트(391)가 제1 비디오를 복원하고, 제2 클라이언트(392)가 제2 비디오를 복원하도록 할 수 있다. 1개 비디오를 브로드캐스트하는 것 만으로, 각 클라이언트(391, 392)에서 서로 다른 비디오가 복원되도록 함으로써, 통신망(380)의 효율성을 높일 수 있다.
도 4는 예시적 실시예에 따른 클라이언트의 구조를 도시한 블록도이다. 예시적 실시예에 따른 클리이언트(400)는 스트리밍 요청 전송부(410), 목록 요청 수신부(420), 비디오 목록 전송부(430), 비디오 스트림 수신부(440) 및 디코딩부(450)를 포함할 수 있다.
스트리밍 요청 전송부(410)는 적응형 비디오 스트리밍 서버(470)로 제1 비디오에 대한 스트리밍 요청을 전송한다. 일측에 따르면, 제2 클라이언트(480)는 제2 비디오에 대한 스트리밍 요청을 적응형 비디오 스트리밍 서버(470)로 전송할 수 있다.
제1 비디오에 대한 스트리밍 요청과 제2 비디오에 대한 스트리밍 요청은 적응형 비디오 스트리밍 서버(470)에서 비교될 수 있다. 만약, 제1 비디오와 제2 비디오가 동일한 경우에, 비디오 스트림 수신부(440)는 적응형 비디오 스트리밍 서버(470)에서 브로트캐스트(Broadcast)되는 제1 비디오의 스트림을 수신할 수 있다.
목록 요청 수신부(420)는 적응형 비디오 스트리밍 서버(470)로부터 스트리밍 요청에 응답하여 클라이언트(400)가 캐싱하는 비디오의 목록에 대한 요청을 수신한다. 일측에 따르면, 제1 비디오가 제2 비디오와 동일한 비디오인지 여부가 적응형 비디오 스트리밍 서버(470)에서 판단되고, 제1 비디오와 제2 비디오가 상이한 경우에, 목록 요청 수신부(420)는 판단 결과에 따라 클라이언트(400)가 캐싱하는 비디오의 목록에 대한 요청을 수신할 수 있다.
비디오 목록 전송부(430)는 클라이언트(440)가 캐싱하는 비디오의 목록에 대한 요청에 응답하여 클라이언트(400)가 캐싱하는 비디오의 목록을 적응형 스트리밍 서버(470)로 전송한다. 제2 클라이언트(480)도 제2 클라이언트(480)가 캐싱하는 비디오의 목록을 적응형 스트리밍 서버(470)로 전송할 수 있다.
클라이언트(400)가 요청한 제1 비디오가 제2 클라이언트(480)가 캐싱하는 비디오의 목록에 포함되는지, 또한, 제2 클라이언트(480)가 요청한 제2 비디오가 클라이언트(400)가 캐싱하는 비디오의 목록에 포함되는지 여부는 적응형 스트리밍 서버(470)에서 판단될 수 있다.
비디오 스트림 수신부(440)는 전송된 비디오의 목록과 제2 클라이언트(480)가 캐싱하는 비디오의 목록이 적응형 비디오 스트리밍 서버(470)에서 비교된 결과에 따라 적응형 비디오 스트리밍 서버(470)로부터 제1 비디오의 스트림을 수신할 수 있다.
제1 비디오가 제2 클라이언트(480)가 캐싱하는 비디오의 목록에 포함되지 않거나, 제2 비디오가 클라이언트(400)가 캐싱하는 비디오의 목록에 포함되지 않으면, 비디오 스트림 수신부(440)는 적응형 비디오 스트리밍 서버(470)로부터 제1 비디오의 스트림을 수신할 수 있다. 또한, 제2 비디오는 적응형 비디오 스트리밍 서버(470)로부터 제2 클라이언트(480)로 스트리밍될 수 있다.
제1 비디오가 제2 클라이언트(480)가 캐싱하는 비디오의 목록에 포함되고, 제2 비디오가 클라이언트(400)가 캐싱하는 비디오의 목록에 포함되면, 비디오 스트림 수신부(440)는 적응형 비디오 스트리밍 서버(470)로부터 제3 비디오의 스트림을 수신할 수 있다. 제3 비디오는 제1 비디오와 제2 비디오를 배타적 논리합(XOR) 연산하여 생성된 것일 수 있다. 이 경우에, 비디오 스트림 수신부(400)는 적응형 비디오 스트리밍 서버(470)로부터 제2 비디오에 대한 정보를 수신하고, 디코딩부(450)는 제2 비디오에 대한 정보에 기반하여 제3 비디오와 제2 비디오를 배타적 논리합 연산 수행하여 제1 비디오를 디코딩할 수 있다.
도 5는 예시적 실시예에 따른 적응형 비디오 스트리밍 시스템의 성능을 해석한 도면이다. 도 5의 가로축은 전송률을 나타내고, 세로축은 평균 전송 시간을 나타낸다. 도 5에서, 스트리밍되는 비디오 파일의 크기 는 500MB이고, 비디오 파일의 총재생시간 는 초이다. 또한, 적응형 비디오 서버가 캐싱하는 비디오 파일의 개수 는 50개인 환경을 가정한다. 도 5에 도시된 그래프는 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 20, 30, 40으로 변경되는 경우의 성능을 나타낸다.
도 5를 참고하면, 적응형 비디오 스트리밍 서버가 비디오를 브로드캐스트하는 경우 또는 해당 비디오를 각각의 클라이언트로 직접 전송하는 경우보다 예시적 실시예에 따라 적응적으로 스트리밍 하는 경우가 평균적으로 낮은 전송 시간을 나타냄을 알 수 있다.
도 5에서, 제1 그래프(510)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 40인 경우를 나타내고, 제2 그래프(520)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 30인 경우를 나타내고, 제3 그래프(530)는 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 20인 경우를 나타낸다.
도 5를 참조하면, 각 클라이언트들이 캐싱하는 비디오 파일의 개수 가 증가함에 따라 배타적 논리합을 이용하여 브로드캐스트될 확률이 높으므로 전체적인 평균 전송시간이 감소함을 확인할 수 있다.
도 2 내지 5에서 설명된 적응형 비디오 스트리밍 서버는 다수의 클라이언트에 대해서도 유사한 방법으로 비디오를 스트리밍할 수 있다. 다만, 스트리밍의 효율성을 높이기 위하여, 적응형 비디오 스트리밍 서버는 각 클라이언트들이 보유한 비디오의 목록과 스트리밍 요청에 포함된 비디오의 목록을 비교하여 각 클라이언트들을 서로 상이한 스트리밍 기법이 적용되는 복수의 그룹으로 분류하고, 각 그룹에 대해 각 그룹에 대응하는 스트리밍 방법을 적용할 수 있다.
클라이언트들이 다수라면, 제1 클라이언트 또는 제2 클라이언트가 다수인 것으로 가정할 수 있다.
일측에 따르면, 적응형 비디오 스트리밍 서버(300)의 비디오 목록 비교부(350)는 각 클라이언트가 캐싱하는 비디오의 목록과 각 클라이언트가 재생하려고하는 비디오의 목록을 비교할 수 있다.
첫번째 단계에서, 클라이언트 분류부(미도시)는 클라이언트가 재생하려고 하는 비디오가 해당 클라이언트의 캐시에 저장되어 있으면, 해당 클라이언트를 적응형 비디오 스트리밍 서버(300)로부터의 스트리밍 없이 각 클라이언트가 캐싱하는 비디오를 재생하는 로컬 플레이 그룹으로 분류할 수 있다.
클라이언트 분류부(미도시)는 여러 클라이언트들이 동일한 비디오를 재생하려고 하며, 각 클라이언트들이 해당 비디오를 캐싱하지 못하고 있다면, 해당 클라이언트들을 동일한 비디오를 다른 클라이언트들과 스트리밍 받아 재생하는 멀티캐스트 그룹으로 분류할 수 있다.
일측에 따르면, 클라이언트 분류부(미도시)는 로컬 플레이 그룹과 멀티캐스트 그룹으로 분류되지 않은 클라이언트들을 나머지 그룹으로 분류할 수 있다.
두 번째 단계에서, 클라이언트 분류부(미도시)는 나머지 그룹에 포함된 클라이언트들을 서로 상이한 비디오를 배타적 논리합 연산을 이용한 스트리밍 기법을 이용하여 다른 클라이언트들과 함께 스트리밍 받아 재생하는 배타적 논리합 스트리밍 그룹과 각 클라이언트로 개별 비디오를 전송하는 유니캐스트 그룹으로 분류할 수 있다.
스트리밍부(370)는 각 그룹에 포함된 클라이언트들에 대해 각 그룹에 대응하는 스트리밍 방법을 적용하여 스트리밍 할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
적응형 비디오 스트리밍 서버 및 적응형 비디오 스트리밍 서버에서 비디오를 스트리밍 받는 클라이언트로 구성된 적응형 비디오 스트리밍 시스템이 개시된다. 적응형 비디오 스트리밍 서버와 클라이언트는 각각 비디오 파일을 캐싱하고, 스트리밍할 비디오 파일이 다른 클라이언트에 캐싱되었는지 여부에 따라 적응적으로 스트리밍을 수행하여 통신망을 효율적으로 사용할 수 있다.
Claims (13)
- 제1 클라이언트로부터 제1 비디오에 대한 스트리밍 요청을 수신하고, 제2 클라이언트로부터 제2 비디오에 대한 스트리밍 요청을 수신하는 스트리밍 요청 수신부;상기 제1 비디오와 상기 제2 비디오가 동일한 비디오인지 여부를 판단하는 판단부;상기 제1 비디오와 상기 제2 비디오가 상이한 경우에, 상기 제1 클라이언트가 캐싱하는 비디오의 목록을 요청하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 요청하는 목록 요청부;상기 제1 클라이언트가 캐싱하는 비디오의 목록을 수신하고, 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 수신하는 비디오 목록 수신부;상기 제1 클라이언트가 캐싱하는 비디오의 목록과 상기 제2 클라이언트가 캐싱하는 비디오의 목록을 비교하는 비디오 목록 비교부; 및상기 비교 결과에 따라 상기 제1 비디오를 상기 제1 클라이언트로 스트리밍하고, 상기 제2 비디오를 상기 제2 클라이언트로 스트리밍하는 스트리밍부를 포함하는 적응형 비디오 스트리밍 서버.
- 제1항에 있어서, 상기 제1 비디오와 상기 제2 비디오가 동일한 경우에,상기 스트리밍부는 상기 제1 비디오를 상기 제1 클라이언트와 상기 제2 클라이언트로 브로드캐스트(Broadcast)하는 적응형 비디오 스트리밍 서버.
- 제1항에 있어서,상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않거나, 상기 제2 비디오가 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않으면,상기 스트리밍부는 상기 제1 비디오를 상기 제1 클라이언트로 스트리밍하고, 상기 제2 비디오를 상기 제2 클라이언트로 스트리밍하는 적응형 비디오 스트리밍 서버.
- 제1항에 있어서,상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되고, 상기 제2 비디오가 상기 제1 클라이언트가 캐싱하는 비디오의 목록에 포함되면, 상기 제1 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 제3 비디오를 인코딩하는 인코딩부를 더 포함하고,상기 스트리밍부는 상기 제3 비디오를 상기 제1 클라이언트 및 상기 제2 클라이언트로 브로드캐스트하고,상기 제1 클라이언트로 전송된 제3 비디오는 상기 제1 클라이언트에 캐싱된 상기 제2 비디오와 배타적 논리합 연산 수행되어 상기 제1 비디오를 복원하기 위해 사용되는 적응형 비디오 스트리밍 서버.
- 제4항에 있어서,상기 스트리밍부는 상기 제1 클라이언트로 상기 제2 비디오에 대한 정보를 전송하고,상기 제3 비디오는 상기 전송된 정보에 기반하여 상기 배타적 논리합 연산 수행되는 적응형 비디오 스트리밍 서버.
- 제1항에 있어서, 상기 제1 클라이언트 또는 상기 제2 클라이언트는 복수이고,상기 비교 결과에 따라 상기 클라이언트들을 상기 서버로부터의 스트리밍없이 각 클라이언트가 캐싱하는 비디오를 재생하는 로컬 플레이 그룹, 동일한 비디오를 다른 클라이언트들과 스트리밍 받아 재생하는 멀티캐스트 그룹 및 상기 로컬 플레이 그룹 과 멀티캐스트 그룹에 포함되지 않는 나머지 그룹으로 분류하는 클라이언트 분류부를 더 포함하고,상기 스트리밍부는 상기 각 그룹에 포함된 클라이언트들에 대해 각 그룹에 대응하는 스트리밍 방법을 적용하여 스트리밍하는 적응형 비디오 스트리밍 서버
- 제6항에 있어서, 상기 클라이언트 분류부는상기 나머지 그룹을 서로 상이한 비디오를 배타적 논리합 연산을 이용한 스트리밍 기법을 이용하여 다른 클라이언트들과 함께 스트리밍 받아 재생하는 배타적 논리합 스트리밍 그룹과 상기 각 클라이언트로 개별 비디오를 전송하는 유니캐스트 그룹으로 분류하고,상기 스트리밍부는 상기 각 그룹에 포함된 클라이언트들에 대해 각 그룹에 대응하는 스트리밍 방법을 적용하여 스트리밍하는 적응형 비디오 스트리밍 서버.
- 적응형 비디오 스트리밍 서버로부터 비디오 스트림을 수신하는 클라이언트에 있어서,상기 적응형 비디오 스트리밍 서버로 제1 비디오에 대한 스트리밍 요청을 전송하는 스트리밍 요청 전송부;상기 적응형 비디오 스트리밍 서버로부터 상기 스트리밍 요청에 응답하여 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청을 수신하는 목록 요청 수신부; 및상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청에 응답하여 상기 클라이언트가 캐싱하는 비디오의 목록을 상기 적응형 스트리밍 서버로 전송하는 비디오 목록 전송부;상기 전송된 비디오의 목록과 제2 클라이언트가 캐싱하는 비디오의 목록이 상기 적응형 비디오 스트리밍 서버에서 비교된 결과에 따라 상기 적응형 비디오 스트리밍 서버로부터 상기 제1 비디오의 스트림을 수신하는 비디오 스트림 수신부를 포함하는 클라이언트
- 제8항에 있어서,상기 제1 비디오는 상기 제2 클라이언트가 상기 적응형 비디오 스트리밍 서버에 요청한 제2 비디오와 동일한 비디오인지 상기 적응형 비디오 스트리밍 서버에서 판단되고,상기 목록 요청 수신부는 상기 판단 결과에 따라 상기 클라이언트가 캐싱하는 비디오의 목록에 대한 요청을 수신하는 클라이언트.
- 제9항에 있어서, 상기 제1 비디오와 상기 제2 비디오가 동일한 경우에,상기 비디오 스트림 수신부는 상기 적응형 비디오 스트리밍 서버에서 브로트캐스트(Broadcast)되는 상기 제1 비디오의 스트림을 수신하는 클라이언트.
- 제8항에 있어서,상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않거나, 상기 제2 비디오가 상기 클라이언트가 캐싱하는 비디오의 목록에 포함되지 않으면,상기 비디오 스트림 수신부는 상기 적응형 비디오 스트리밍 서버로부터 제1 비디오의 스트림을 수신하고,상기 제2 비디오는 상기 적응형 비디오 스트리밍 서버로부터 상기 제2 클라이언트로 스트리밍되는 클라이언트,
- 제8항에 있어서,디코딩부를 더 포함하고,상기 제1 비디오가 상기 제2 클라이언트가 캐싱하는 비디오의 목록에 포함되고, 상기 제2 비디오가 상기 클라이언트가 캐싱하는 비디오의 목록에 포함되면,상기 비디오 스트림 수신부는 상기 적응형 비디오 스트리밍 서버로부터 제3 비디오의 스트림을 수신하고,상기 디코딩부는 상기 제3 비디오와 상기 제2 비디오를 배타적 논리합(XOR: eXclusive OR)연산을 수행하여 상기 제1 비디오를 디코딩하는 클라이언트.
- 제12항에 있어서,상기 비디오 스트림 수신부는 상기 적응형 비디오 스트리밍 서버로부터 상기 제2 비디오에 대한 정보를 수신하고,상기 디코딩부는 상기 수신된 정보에 기반하여 상기 배타적 논리합 연산을 수행하는 클라이언트.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190111211 | 2019-09-09 | ||
KR10-2019-0111211 | 2019-09-09 | ||
KR1020200086396A KR102439595B1 (ko) | 2019-09-09 | 2020-07-13 | 수신단 캐싱을 활용한 적응형 비디오 스트리밍 시스템 |
KR10-2020-0086396 | 2020-07-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021049744A1 true WO2021049744A1 (ko) | 2021-03-18 |
Family
ID=74865735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2020/009224 WO2021049744A1 (ko) | 2019-09-09 | 2020-07-13 | 수신단 캐싱을 활용한 적응형 비디오 스트리밍 시스템 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2021049744A1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236906A1 (en) * | 2002-06-24 | 2003-12-25 | Klemets Anders E. | Client-side caching of streaming media content |
KR20060060881A (ko) * | 2004-12-01 | 2006-06-07 | 한국전자통신연구원 | 인터넷 방송 시스템의 멀티캐스트 재방송 서비스 방법 및장치 |
US20150271072A1 (en) * | 2014-03-24 | 2015-09-24 | Cisco Technology, Inc. | Method and apparatus for rate controlled content streaming from cache |
KR20190031261A (ko) * | 2017-08-15 | 2019-03-25 | 구글 엘엘씨 | 멀티캐스트를 이용한 스트리밍 대역폭의 최적 활용 |
-
2020
- 2020-07-13 WO PCT/KR2020/009224 patent/WO2021049744A1/ko active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236906A1 (en) * | 2002-06-24 | 2003-12-25 | Klemets Anders E. | Client-side caching of streaming media content |
KR20060060881A (ko) * | 2004-12-01 | 2006-06-07 | 한국전자통신연구원 | 인터넷 방송 시스템의 멀티캐스트 재방송 서비스 방법 및장치 |
US20150271072A1 (en) * | 2014-03-24 | 2015-09-24 | Cisco Technology, Inc. | Method and apparatus for rate controlled content streaming from cache |
KR20190031261A (ko) * | 2017-08-15 | 2019-03-25 | 구글 엘엘씨 | 멀티캐스트를 이용한 스트리밍 대역폭의 최적 활용 |
Non-Patent Citations (1)
Title |
---|
KIM YU-SIN, MOO -WOONG JEONG, JAE MIN SHIN , RYU JONG YEOL, BAN TAE-WON: "Adaptive Video Streaming System Using Receiver Caching", JOURNAL OF THE KOREA INSTITUTE OF INFORMATION AND COMMUNICATION ENGINEERING, KOREA INSTITUTE OF INFORMATION AND COMMUNICATION ENGINEERING, KP, vol. 23, no. 7, 31 July 2019 (2019-07-31), KP, pages 837 - 844, XP055791494, ISSN: 2234-4772, DOI: 10.6109/jkiice.2019.23.7.837 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020263024A1 (en) | Content distribution server and method | |
US6810526B1 (en) | Centralized broadcast channel real-time search system | |
US9286214B2 (en) | Content distribution and switching amongst data streams | |
WO2016010229A1 (ko) | 스트리밍 서비스를 위한 클라이언트 및 서버의 동작 방법 | |
WO2012099400A2 (en) | Apparatus and method for storing and playing content in a multimedia streaming system | |
WO2011021909A2 (en) | Method and apparatus for providing contents via network, method and apparatus for receiving contents via network, and method and apparatus for backing up data via network, backup data providing device, and backup system | |
WO2016129963A1 (ko) | 멀티뷰 스트리밍 서비스 지원 방법 및 이를 지원하는 장치 | |
WO2012138183A2 (en) | Apparatus and method for providing content using a network condition-based adaptive data streaming service | |
WO2016010319A2 (ko) | 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치 | |
WO2022014801A1 (ko) | 실시간 비디오 스트리밍에서의 초해상화 가속을 위한 장치 및 방법 | |
WO2018131806A1 (en) | Electronic apparatus and method of operating the same | |
WO2022211465A1 (en) | Apparatus and method for providing media streaming | |
WO2016061887A1 (zh) | 一种视频转换方法、装置、播放系统及终端 | |
WO2008077302A1 (fr) | Procédé et système de commutation de canaux multimédia numériques | |
WO2021049744A1 (ko) | 수신단 캐싱을 활용한 적응형 비디오 스트리밍 시스템 | |
WO2019088721A1 (ko) | 오픈형 생중계 플랫폼 | |
WO2018097466A1 (ko) | 영상 복잡도 정보를 이용한 화면 영역별 차등 대역폭 할당 방법 및 장치 | |
WO2015012632A1 (ko) | 다시점 비디오 스트리밍 시스템 및 그 제공방법 | |
WO2013154364A1 (ko) | 스트리밍 재생 방법 및 이를 이용한 컴퓨팅 장치 | |
WO2020149607A1 (en) | Display apparatus and control method thereof | |
WO2014010938A1 (en) | Apparatus and method for transmitting/receiving packet in broadcasting and communication system | |
WO2017047848A1 (ko) | 다중화 특성을 이용한 재핑 광고 시스템 | |
WO2016043432A1 (ko) | 멀티미디어의 전송 또는 수신 방법 및 그 장치 | |
WO2017200319A1 (ko) | 적응형 스트리밍 서비스 제공 방법 및 이를 위한 장치 | |
WO2016099183A1 (ko) | 하이브리드 전송 프로토콜 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20862195 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20862195 Country of ref document: EP Kind code of ref document: A1 |