KR102307072B1 - Method and apparatus for outputting video for a plurality of viewpoints - Google Patents

Method and apparatus for outputting video for a plurality of viewpoints Download PDF

Info

Publication number
KR102307072B1
KR102307072B1 KR1020200012631A KR20200012631A KR102307072B1 KR 102307072 B1 KR102307072 B1 KR 102307072B1 KR 1020200012631 A KR1020200012631 A KR 1020200012631A KR 20200012631 A KR20200012631 A KR 20200012631A KR 102307072 B1 KR102307072 B1 KR 102307072B1
Authority
KR
South Korea
Prior art keywords
target
time
video
segment
user terminal
Prior art date
Application number
KR1020200012631A
Other languages
Korean (ko)
Other versions
KR20210098729A (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 KR1020200012631A priority Critical patent/KR102307072B1/en
Publication of KR20210098729A publication Critical patent/KR20210098729A/en
Application granted granted Critical
Publication of KR102307072B1 publication Critical patent/KR102307072B1/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Abstract

동영상을 출력하기 위해, 사용자 단말의 사용자로부터 제1 시점에 대한 현재 동영상으로부터 제2 시점에 대한 타겟 동영상으로의 변경 요청을 수신하고, 현재 동영상의 현재 재생 시각에 기초하여 제1 시간을 계산하고, 제1 시간에 기초하여 서버에 의해 결정된 타겟 동영상의 타겟 아이(I)-프레임을 수신하고, 타겟 I-프레임에 기초하여 타겟 동영상을 출력한다.In order to output the video, receiving a change request from the user of the user terminal from the current video for the first time to the target video for the second time, calculating a first time based on the current playback time of the current video, Receives the target i-frame of the target video determined by the server based on the first time, and outputs the target video based on the target I-frame.

Description

복수의 시점들에 대한 동영상 출력 방법 및 장치{METHOD AND APPARATUS FOR OUTPUTTING VIDEO FOR A PLURALITY OF VIEWPOINTS}Video output method and apparatus for a plurality of viewpoints {METHOD AND APPARATUS FOR OUTPUTTING VIDEO FOR A PLURALITY OF VIEWPOINTS}

아래의 실시예들은 사용자 단말에서 동영상을 출력하는 기술에 관한 것으로, 구체적으로 복수의 시점들에 대한 동영상을 출력하는 기술에 관한 것이다.The following embodiments relate to a technology for outputting a video from a user terminal, and more specifically, to a technology for outputting a video for a plurality of viewpoints.

도 1을 참조하면 사용자에게 복수의 시점들을 제공하는 컨텐츠가 제공될 수 있다. 예를 들어, 컨텐츠가 제공하는 복수의 시점들 각각에 대한 복수의 동영상들(121, 122 및 123)이 생성 및 제공될 수 있다. 사용자(110)의 시점(viewpoint)에 사용자(100)가 볼 수 있는 동일한 장면의 일부에 대한 복수의 동영상들(121, 122 및 123)이 도시되었으나, 복수의 동영상들은 서로 다른 장면에 관한 것일 수 있다. 다만, 복수의 동영상들(121, 122 및 123)은 시간적으로 서로 동기화되어 있다. 이에 따라, 사용자(110)가 동영상(121)을 보다가, 동영상(122)로 전환하는 경우, 동영상(121)의 재생 경과 시각 이후부터 동영상(122)이 제공될 수 있다. 사용자(100)에게 복수의 동영상들(121, 122 및 123)이 시간적으로 서로 동기화되어 제공되는 것이 중요하므로, 사용자(100)가 복수의 동영상들(121, 122 및 123) 간에 동영상을 전환하는 경우, 가능한 최소한의 지연 시간이 요구된다.Referring to FIG. 1 , content providing a plurality of viewpoints to a user may be provided. For example, a plurality of moving images 121 , 122 , and 123 for each of a plurality of viewpoints provided by the content may be generated and provided. Although the plurality of videos 121, 122 and 123 for a part of the same scene that the user 100 can see from the viewpoint of the user 110 is shown, the plurality of videos may relate to different scenes. have. However, the plurality of moving images 121 , 122 and 123 are temporally synchronized with each other. Accordingly, when the user 110 views the moving image 121 and then switches to the moving image 122 , the moving image 122 may be provided after the elapsed playback time of the moving image 121 . Since it is important that the plurality of videos 121, 122, and 123 are provided to the user 100 in synchronization with each other in time, when the user 100 switches the video between the plurality of videos 121, 122 and 123 , the minimum possible delay time is required.

일 실시예는 복수의 시점들에 대한 동영상을 출력하는 방법 및 장치를 제공할 수 있다.An embodiment may provide a method and an apparatus for outputting a video for a plurality of viewpoints.

일 실시예는 제1 시점에 대한 현재 동영상으로부터 타겟 동영상을 출력함으로써 제2 시점을 사용자에게 제공하는 방법 및 장치를 제공할 수 있다.An embodiment may provide a method and apparatus for providing a second viewpoint to a user by outputting a target video from a current video for the first viewpoint.

일 측면에 따른, 사용자 단말에 의해 수행되는 동영상을 출력하는 방법은, 사용자 단말의 사용자로부터 제1 시점(viewpoint)에 대한 현재 동영상으로부터 제2 시점에 대한 타겟 동영상으로의 변경 요청을 수신하는 단계, 상기 현재 동영상의 현재 재생 시각에 기초하여 제1 시간을 계산하는 단계, 상기 제1 시간을 상기 타겟 동영상을 제공하는 서버로 전송하는 단계, 상기 제1 시간에 기초하여 상기 서버에 의해 결정된 상기 타겟 동영상의 타겟 아이(I)-프레임을 수신하는 단계, 및 상기 타겟 아이(I)-프레임에 기초하여 상기 타겟 동영상을 출력하는 단계를 포함한다.According to an aspect, a method of outputting a video performed by a user terminal includes: receiving a change request from a user of the user terminal from a current video for a first viewpoint to a target video for a second viewpoint; Calculating a first time based on the current playback time of the current video, transmitting the first time to a server providing the target video, the target video determined by the server based on the first time Receiving a target I (I)-frame of, and outputting the target video based on the target I (I)-frame.

상기 현재 동영상은 상기 현재 동영상의 제1 구간에 대한 제1 세그먼트를 포함하고, 상기 타겟 동영상은 상기 제1 구간과 동일한 구간인 상기 타겟 동영상의 제2 구간에 대한 타겟 세그먼트를 포함하고, 상기 타겟 세그먼트는 상기 타겟 I-프레임을 포함할 수 있다.The current video includes a first segment for a first section of the current video, and the target video includes a target segment for a second section of the target video that is the same section as the first section, and the target segment may include the target I-frame.

상기 타겟 I-프레임을 수신하는 단계는, 상기 타겟 세그먼트의 프레임들 중 상기 타겟 I-프레임 이후의 프레임들을 수신하는 단계를 포함할 수 있다.Receiving the target I-frame may include receiving frames after the target I-frame among frames of the target segment.

상기 제1 시간을 계산하는 단계는, 상기 현재 재생 시각, 상기 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 상기 제1 시간을 계산하는 단계를 포함할 수 있다.Calculating the first time may include calculating the first time based on the current playback time, an initial processing time of the target video, and an initial playback buffer time.

상기 타겟 I-프레임은 상기 사용자 단말 및 상기 서버 간에 데이터가 왕복하는 시간(round trip time: RTT) 및 상기 제1 시간에 기초하여 계산된 타겟 시각에 기초하여 상기 서버에 의해 결정될 수 있다.The target I-frame may be determined by the server based on a round trip time (RTT) of data between the user terminal and the server and a target time calculated based on the first time.

상기 타겟 I-프레임은 상기 타겟 시각과 가장 가까운 상기 타겟 동영상의 I-프레임일 수 있다.The target I-frame may be an I-frame of the target video closest to the target time.

상기 제1 시간을 계산하는 단계는, 상기 현재 재생 시각, 상기 사용자 단말 및 상기 서버 간에 데이터가 왕복하는 시간(RTT), 상기 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 상기 제1 시간을 계산하는 단계를 포함할 수 있다.Calculating the first time may include: the first time based on the current playback time, a round-trip time (RTT) of data between the user terminal and the server, an initial processing time of the target video, and an initial playback buffer time It may include the step of calculating

상기 타겟 I-프레임은 상기 제1 시간과 가장 가까운 상기 타겟 동영상의 I-프레임일 수 있다.The target I-frame may be an I-frame of the target video closest to the first time.

다른 일 측면에 따른, 사용자 단말은, 동영상을 출력하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 사용자 단말의 사용자로부터 제1 시점(viewpoint)에 대한 현재 동영상으로부터 제2 시점에 대한 타겟 동영상으로의 변경 요청을 수신하는 단계, 상기 현재 동영상의 현재 재생 시각에 기초하여 제1 시간을 계산하는 단계, 상기 제1 시간을 상기 타겟 동영상을 제공하는 서버로 전송하는 단계, 상기 제1 시간에 기초하여 상기 서버에 의해 결정된 상기 타겟 동영상의 타겟 아이(I)-프레임을 수신하는 단계, 및 상기 타겟 아이(I)-프레임에 기초하여 상기 타겟 동영상을 출력하는 단계를 수행한다.According to another aspect, the user terminal includes a memory in which a program for outputting a video is recorded, and a processor for executing the program, wherein the program is a current video for a first viewpoint from a user of the user terminal Receiving a change request to a target video for a second time from, calculating a first time based on a current playback time of the current video, and transmitting the first time to a server providing the target video step, receiving a target i-frame of the target video determined by the server based on the first time, and outputting the target video based on the target i-frame carry out

또 다른 일 측면에 따른, 서버에 의해 수행되는 사용자 단말로 동영상을 제공하는 방법은, 제1 시점(viewpoint)에 대한 현재 동영상을 출력하는 사용자 단말로부터 제2 시점에 대한 타겟 동영상의 전송 요청을 수신하는 단계 - 상기 전송 요청은 상기 현재 동영상의 현재 재생 시각에 기초하여 상기 사용자 단말에 의해 계산된 제1 시간을 포함함 -, 상기 제1 시간에 기초하여 상기 타겟 동영상의 타겟 아이(I)-프레임을 결정하는 단계, 및 상기 타겟 I-프레임을 상기 사용자 단말로 전송하는 단계를 포함한다.According to another aspect, a method for providing a video to a user terminal performed by a server receives a request for transmission of a target video for a second viewpoint from a user terminal that outputs a current video for a first viewpoint - The transmission request includes a first time calculated by the user terminal based on the current playback time of the current video -, based on the first time, the target i (I)-frame of the target video determining , and transmitting the target I-frame to the user terminal.

상기 현재 동영상은 상기 현재 동영상의 제1 구간에 대한 제1 세그먼트를 포함하고, 상기 타겟 동영상은 상기 제1 구간과 동일한 구간인 상기 타겟 동영상의 제2 구간에 대한 타겟 세그먼트를 포함하고, 상기 타겟 세그먼트는 상기 타겟 I-프레임을 포함할 수 있다.The current video includes a first segment for a first section of the current video, and the target video includes a target segment for a second section of the target video that is the same section as the first section, and the target segment may include the target I-frame.

상기 타겟 I-프레임을 전송하는 단계는, 상기 타겟 세그먼트의 프레임들 중 상기 타겟 I-프레임 이후의 프레임들을 상기 사용자 단말로 전송하는 단계를 포함할 수 있다.The transmitting of the target I-frame may include transmitting frames after the target I-frame among frames of the target segment to the user terminal.

상기 제1 시간은 상기 현재 재생 시각, 상기 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 상기 사용자 단말에 의해 계산될 수 있다.The first time may be calculated by the user terminal based on the current playback time, an initial processing time of the target video, and an initial playback buffer time.

상기 타겟 I-프레임을 결정하는 단계는, 상기 사용자 단말 및 상기 서버 간에 데이터가 왕복하는 시간(round trip time: RTT) 및 상기 제1 시간에 기초하여 타겟 시각을 계산하는 단계, 및 상기 타겟 시각에 기초하여 상기 타겟 I-프레임을 결정하는 단계를 포함할 수 있다.The determining of the target I-frame includes calculating a target time based on a round trip time (RTT) and the first time between the user terminal and the server, and at the target time. determining the target I-frame based on the

상기 타겟 시각에 기초하여 상기 타겟 I-프레임을 결정하는 단계는, 상기 타겟 시각과 가장 가까운 상기 타겟 동영상의 I-프레임을 상기 타겟 I-프레임으로 결정하는 단계를 포함할 수 있다.The determining of the target I-frame based on the target time may include determining an I-frame of the target video closest to the target time as the target I-frame.

상기 제1 시간은 상기 현재 재생 시각, 상기 사용자 단말 및 상기 서버 간에 데이터가 왕복하는 시간(RTT), 상기 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 상기 사용자 단말에 의해 계산될 수 있다.The first time may be calculated by the user terminal based on the current playback time, a round-trip time (RTT) of data between the user terminal and the server, an initial processing time of the target video, and an initial playback buffer time .

상기 타겟 I-프레임을 결정하는 단계는, 상기 제1 시간과 가장 가까운 상기 타겟 동영상의 I-프레임을 상기 타겟 I-프레임으로 결정하는 단계를 포함할 수 있다.The determining of the target I-frame may include determining an I-frame of the target video closest to the first time as the target I-frame.

또 다른 일 측면에 따른, 서버는, 동영상을 제공하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 제1 시점(viewpoint)에 대한 현재 동영상을 출력하는 사용자 단말로부터 제2 시점에 대한 타겟 동영상의 전송 요청을 수신하는 단계 - 상기 전송 요청은 상기 현재 동영상의 현재 재생 시각에 기초하여 상기 사용자 단말에 의해 계산된 제1 시간을 포함함 -, 상기 제1 시간에 기초하여 상기 타겟 동영상의 타겟 아이(I)-프레임을 결정하는 단계, 및 상기 타겟 I-프레임을 상기 사용자 단말로 전송하는 단계를 수행한다.According to another aspect, the server includes a memory in which a program for providing a video is recorded, and a processor for executing the program, wherein the program is a user terminal outputting a current video for a first viewpoint Receiving a transmission request of a target video for a second time point from - The transmission request includes a first time calculated by the user terminal based on the current playback time of the current video - at the first time Determining a target I-frame of the target video based on the step, and performing the steps of transmitting the target I-frame to the user terminal.

도 1은 일 예에 따른 복수의 시점들에 대한 복수의 동영상들을 도시한다.
도 2는 일 예에 따른 복수의 동영상들을 사용자 단말로 전송하는 방법들을 도시한다.
도 3은 일 실시예에 따른 동영상 제공 시스템을 도시한다.
도 4는 일 예에 따른 새로운 시점의 동영상을 출력하는 기존 방법 및 개선 방법을 도시한다.
도 5는 일 실시예에 따른 사용자 단말의 구성도이다.
도 6은 일 실시예에 따른 서버의 구성도이다.
도 7은 일 실시예에 따른 동영상 출력 방법의 신호 흐름도이다.
도 8은 일 예에 따른 새로운 시점의 동영상을 출력하는 방법의 타임 라인이다.
1 illustrates a plurality of videos for a plurality of viewpoints according to an example.
2 illustrates methods for transmitting a plurality of videos to a user terminal according to an example.
3 illustrates a video providing system according to an embodiment.
4 illustrates an existing method and an improved method of outputting a video of a new viewpoint according to an example.
5 is a block diagram of a user terminal according to an embodiment.
6 is a configuration diagram of a server according to an embodiment.
7 is a signal flow diagram of a video output method according to an embodiment.
8 is a timeline of a method of outputting a video of a new viewpoint according to an example.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these examples. Like reference numerals in each figure indicate like elements.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. It should be understood that the embodiments described below are not intended to limit the embodiments, and include all modifications, equivalents or substitutes thereto.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are only used to describe specific examples, and are not intended to limit the examples. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

도 2는 일 예에 따른 복수의 동영상들을 사용자 단말로 전송하는 방법들을 도시한다.2 illustrates methods for transmitting a plurality of videos to a user terminal according to an example.

일 측면에 따르면, 컨텐츠는 복수의 동영상들(210, 220 및 230)을 제공한다. 예를 들어, 컨텐츠는 게임일 수 있고, 복수의 동영상들(210, 220 및 230) 각각은 시간적으로 동기화되는 동영상들일 수 있다. 다른 예로, 컨텐츠는 스포츠 중계와 같은 실시간 컨텐츠일 수 있고, 복수의 동영상들(210, 220 및 230)은 각각의 카메라에 의해 촬영되는 동영상일 수 있다.According to one aspect, the content provides a plurality of moving images 210 , 220 , and 230 . For example, the content may be a game, and each of the plurality of moving images 210 , 220 and 230 may be temporally synchronized moving images. As another example, the content may be real-time content such as sports broadcasting, and the plurality of moving images 210 , 220 and 230 may be moving images captured by respective cameras.

복수의 동영상들(210, 220 및 230) 각각은 복수의 세그먼트들로 구성될 수 있다. 제1 동영상(210)의 세그먼트(211), 제2 동영상(220)의 세그먼트(221) 및 제3 동영상(230)의 세그먼트(231)는 서로 동일한 시간 구간에 대응할 수 있다. 예를 들어, 동영상(210)이 총 20초의 동영상이고, 동영상(210)이 4초 구간에 대응하는 5개의 세그먼트들을 포함하는 경우, 가장 앞에 있는 세그먼트(211)는 컨텐츠의 0초 내지 4초 구간일 수 있다. 상기의 예에서, 동영상(220)의 세그먼트(221) 및 동영상(230)의 세그먼트(231)는 세그먼트(211)와 동일한 시간 구간인 컨텐츠의 0초 내지 4초 구간일 수 있다.Each of the plurality of videos 210 , 220 , and 230 may consist of a plurality of segments. The segment 211 of the first video 210 , the segment 221 of the second video 220 , and the segment 231 of the third video 230 may correspond to the same time period. For example, if the video 210 is a video of a total of 20 seconds, and the video 210 includes 5 segments corresponding to a 4 second section, the first segment 211 is a 0 second to 4 second section of the content. can be In the above example, the segment 221 of the video 220 and the segment 231 of the video 230 may be 0 seconds to 4 seconds of content, which is the same time interval as the segment 211 .

사용자 단말에서 컨텐츠가 출력되기 위해, 복수의 동영상들(210 내지 230)이 서버에서 사용자 단말로 전송된다.In order to output content from the user terminal, a plurality of videos 210 to 230 are transmitted from the server to the user terminal.

첫번째 방법(250)은, 서버가 복수의 동영상들(210 내지 230) 각각에 대한 스트림을 생성하고, 복수의 스트림들을 병렬적으로 사용자 단말로 전송하는 방법이다.The first method 250 is a method in which the server generates a stream for each of a plurality of videos 210 to 230 and transmits the plurality of streams to the user terminal in parallel.

두번째 방법(260)은, 서버가 복수의 동영상들(210 내지 230)의 세그먼트들을 하나의 스트림으로 생성하고, 스트림을 사용자 단말로 전송하는 방법이다.The second method 260 is a method in which the server generates segments of the plurality of moving images 210 to 230 as one stream and transmits the stream to the user terminal.

세번째 방법(270)은, 서버가 시간 구간이 대응하는 세그먼트들을 하나의 타일로 생성하고, 생성된 타일들을 하나의 스트림으로 생성하고, 스트림을 사용자 단말로 전송하는 방법이다.The third method 270 is a method in which the server generates segments corresponding to time intervals as one tile, generates the generated tiles as one stream, and transmits the stream to the user terminal.

첫번째 방법(250)first method (250) 두번째 방법(260)second method (260) 세번째 방법(270)third method (270) 동기화 속도sync speed 느림(단말)Slow (terminal) 보통(서버)Normal (Server) 빠름(서버)Fast (Server) 다운로드 속도download speed 빠름speed 보통commonly 보통commonly 스토리지 사용storage usage 보통commonly 높음height 높음height NW 사용Use NW 보통commonly 높음height 높음height 확장성scalability 높음height 보통(VOD)
낮음(Live)
Normal (VOD)
Low (Live)
보통(VOD)
낮음(Live)
Normal (VOD)
Low (Live)
스트림 개수number of streams N개N 1개One 1개One 동영상 개수number of videos N개N N개N 1개One 응용Applications 동영상을 전환하며 재생Switch video and play 정해진 다중 동영상 재생Play multiple videos at a time 정해진 다중 동영상 재생,VRMultiple video playback, VR

방법들(250 내지 270) 중 첫번째 방법(250)은 다른 방법들(260 및 270)에 비해 네트워크의 상황 등에 유연하며 효율적인 방법일 수 있다. 이에 따라, 이후의 설명에서 복수의 동영상들을 제공하는 방법은 첫번째 방법(250)을 이용한 방법일 수 있으나, 기재된 실시예로 한정되는 것은 아니다.Among the methods 250 to 270 , the first method 250 may be more flexible and efficient than the other methods 260 and 270 in a network situation and the like. Accordingly, in the following description, a method of providing a plurality of moving images may be a method using the first method 250 , but is not limited to the described embodiment.

도 3은 일 실시예에 따른 동영상 제공 시스템을 도시한다.3 illustrates a video providing system according to an embodiment.

일 측면에 따르면, 동영상 제공 시스템(300)은 컨텐츠의 복수의 동영상들을 제공하는 서버(310) 및 사용자에게 동영상을 출력하는 사용자 단말(320)을 포함한다.According to one aspect, the video providing system 300 includes a server 310 that provides a plurality of videos of content and a user terminal 320 that outputs a video to a user.

서버(310)는 컨텐츠에 대한 복수의 동영상을 생성할 수 있다. 예를 들어, 컨텐츠는 사용자 단말(320)의 사용자가 이용하는 게임일 수 있고, 다른 예로, 컨텐츠는 복수의 카메라들에 의해 촬영되는 실시간 중계 프로그램일 수 있다.The server 310 may generate a plurality of videos for the content. For example, the content may be a game used by the user of the user terminal 320 , and as another example, the content may be a real-time relay program captured by a plurality of cameras.

아래에서, 도 4 내지 도 8을 참조하여 서버가 사용자 단말로 동영상을 제공하는 방법 및, 사용자 단말이 동영상을 출력하는 방법이 상세히 설명된다.Hereinafter, a method for a server to provide a video to a user terminal and a method for the user terminal to output a video will be described in detail with reference to FIGS. 4 to 8 .

도 4는 일 예에 따른 새로운 시점의 동영상을 출력하는 기존 방법 및 개선 방법을 도시한다.4 illustrates an existing method and an improved method of outputting a video of a new viewpoint according to an example.

사용자는 사용자 단말에서 출력되는 동영상을 제1 시점의 제1 동영상에서 제2 시점의 제2 동영상으로 전환할 수 있다. 예를 들어, 4초 내지 8초 구간의 제1 동영상의 세그먼트(411)에 기초하여 제1 동영상이 출력되는 중간에 요청 시점(401)에서 동영상의 전환이 요청될 수 있다.The user may switch the video output from the user terminal from the first video of the first view to the second video of the second view. For example, based on the segment 411 of the first video having a period of 4 to 8 seconds, a video conversion may be requested at the request time 401 while the first video is output.

제1 방법은 상기의 경우에서, 사용자 단말이 세그먼트(411)에 대응하는 제2 동영상의 세그먼트(431)를 수신하고, 세그먼트(431)를 수신한 시점(402)에서 현재 재생 시각에 대응하는 세그먼트(431)의 구간이 출력될 수 있다. 이러한 경우 세그먼트(431) 중 과거 구간(432)에 해당하는 데이터는 현재 재생 시각을 기준으로 과거의 데이터에 해당하므로 쓸모가 없을 수 있다. 또한, 과거 구간(432)에 해당하는 데이터를 수신하기 위한 시간 및 자원이 제2 동영상의 출력을 지연시킬 수 있다.In the first method, in the above case, the user terminal receives the segment 431 of the second video corresponding to the segment 411 , and the segment corresponding to the current playback time at the time 402 at which the segment 431 is received. A section of (431) may be output. In this case, data corresponding to the past section 432 of the segment 431 may be useless because it corresponds to data in the past based on the current playback time. In addition, time and resources for receiving data corresponding to the past section 432 may delay the output of the second video.

이에 반하여, 제2 방법은 상기의 경우에서, 세그먼트(441)를 수신하는 시점(402)을 예측하고, 시점(402) 이후의 제2 동영상의 세그먼트(441)를 사용자 단말이 수신함으로써 제1 방법과 같이 과거 구간(432)에 해당하는 데이터를 수신하는 것을 방지한다. 세그먼트(441)는 세그먼트(431)에서 과거 구간(432)에 해당하는 데이터를 제외한 나머지 데이터일 수 있다. 출력에 필요한 데이터만이 전송 및 수신됨으로써 제2 동영상의 출력 지연 시간을 감소시킬 수 있다.In contrast, the second method predicts a time point 402 at which the segment 441 is received in the above case, and the user terminal receives the segment 441 of the second video after the time point 402, so that the first method It prevents reception of data corresponding to the past section 432 as shown in FIG. The segment 441 may be data remaining in the segment 431 excluding data corresponding to the past section 432 . By transmitting and receiving only data necessary for output, the output delay time of the second video may be reduced.

아래에서 도 5 내지 도 8을 참조하여, 제2 방법과 관련된 내용이 상세하게 설명된다.Hereinafter, with reference to FIGS. 5 to 8 , the contents related to the second method will be described in detail.

도 5는 일 실시예에 따른 사용자 단말의 구성도이다.5 is a configuration diagram of a user terminal according to an embodiment.

사용자 단말(500)은 통신부(510), 프로세서(520) 및 메모리(530)를 포함한다. 예를 들어, 사용자 단말(500)는 도 3을 참조하여 설명된 사용자 단말(320)일 수 있다. 사용자 단말(500)은 개인용 컴퓨터(personal computer: PC) 및 스마트 폰(smart phone)과 같은 이동 단말을 포함할 수 있고, 기재된 실시예로 한정되지 않는다.The user terminal 500 includes a communication unit 510 , a processor 520 , and a memory 530 . For example, the user terminal 500 may be the user terminal 320 described with reference to FIG. 3 . The user terminal 500 may include a mobile terminal such as a personal computer (PC) and a smart phone, and is not limited to the described embodiment.

통신부(510)는 프로세서(520) 및 메모리(530)와 연결되어 데이터를 송수신한다. 통신부(510)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The communication unit 510 is connected to the processor 520 and the memory 530 to transmit and receive data. The communication unit 510 may be connected to another external device to transmit/receive data. Hereinafter, the expression "transmitting and receiving "A" may indicate transmitting and receiving "information or data representing A".

통신부(510)는 사용자 단말(500) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(510)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(510)는 사용자 단말(500)과 외부의 장치를 연결하는 요소일 수 있다. 통신부(510)는 인터페이스(interface)일 수 있다. 통신부(510)는 외부의 장치로부터 데이터를 수신하여, 프로세서(520) 및 메모리(530)에 데이터를 전송할 수 있다.The communication unit 510 may be implemented as circuitry in the user terminal 500 . For example, the communication unit 510 may include an internal bus and an external bus. As another example, the communication unit 510 may be an element that connects the user terminal 500 and an external device. The communication unit 510 may be an interface. The communication unit 510 may receive data from an external device and transmit the data to the processor 520 and the memory 530 .

프로세서(520)는 통신부(510)가 수신한 데이터 및 메모리(530)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.The processor 520 processes data received by the communication unit 510 and data stored in the memory 530 . A “processor” may be a data processing device implemented in hardware having circuitry having a physical structure for performing desired operations. For example, desired operations may include code or instructions included in a program. For example, a data processing device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

프로세서(520)는 메모리(예를 들어, 메모리(530))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(520)에 의해 유발된 인스트럭션들을 실행한다.Processor 520 executes computer readable code (eg, software) stored in memory (eg, memory 530 ) and instructions issued by processor 520 .

메모리(530)는 통신부(510)가 수신한 데이터 및 프로세서(520)가 처리한 데이터를 저장한다. 예를 들어, 메모리(530)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 동영상을 출력할 수 있도록 코딩되어 프로세서(520)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The memory 530 stores data received by the communication unit 510 and data processed by the processor 520 . For example, the memory 530 may store a program (or an application, software). The stored program may be a set of syntaxes that are coded so as to output a moving picture and are executable by the processor 520 .

일 측면에 따르면, 메모리(530)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, memory 530 may include one or more volatile memory, non-volatile memory and random access memory (RAM), flash memory, hard disk drive, and optical disk drive.

메모리(530)는 사용자 단말(500)을 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 사용자 단말(500)을 동작 시키는 명령어 세트는 프로세서(520)에 의해 실행된다.The memory 530 stores a set of instructions (eg, software) for operating the user terminal 500 . The instruction set for operating the user terminal 500 is executed by the processor 520 .

통신부(510), 프로세서(520) 및 메모리(530)에 대해, 아래에서 도 7 내지 도 8을 참조하여 상세히 설명된다.The communication unit 510 , the processor 520 , and the memory 530 will be described in detail below with reference to FIGS. 7 to 8 .

도 6은 일 실시예에 따른 서버의 구성도이다.6 is a configuration diagram of a server according to an embodiment.

서버(600)는 통신부(610), 프로세서(620) 및 메모리(630)를 포함한다. 예를 들어, 서버(600)는 도 3을 참조하여 설명된 서버(310)일 수 있다.The server 600 includes a communication unit 610 , a processor 620 , and a memory 630 . For example, the server 600 may be the server 310 described with reference to FIG. 3 .

통신부(610)는 프로세서(620) 및 메모리(630)와 연결되어 데이터를 송수신한다. 통신부(610)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The communication unit 610 is connected to the processor 620 and the memory 630 to transmit and receive data. The communication unit 610 may be connected to another external device to transmit/receive data.

통신부(610)는 서버(600) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(610)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(610)는 서버(600)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(610)는 인터페이스일 수 있다. 통신부(610)는 외부의 장치로부터 데이터를 수신하여, 프로세서(620) 및 메모리(630)에 데이터를 전송할 수 있다.The communication unit 610 may be implemented as a circuit network in the server 600 . For example, the communication unit 610 may include an internal bus and an external bus. As another example, the communication unit 610 may be an element that connects the server 600 and an external device. The communication unit 610 may be an interface. The communication unit 610 may receive data from an external device and transmit the data to the processor 620 and the memory 630 .

프로세서(620)는 통신부(610)가 수신한 데이터 및 메모리(530)에 저장된 데이터를 처리한다. 프로세서(620)는 메모리(예를 들어, 메모리(630))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(620)에 의해 유발된 인스트럭션들을 실행한다.The processor 620 processes data received by the communication unit 610 and data stored in the memory 530 . Processor 620 executes computer readable code (eg, software) stored in memory (eg, memory 630 ) and instructions issued by processor 620 .

메모리(630)는 통신부(610)가 수신한 데이터 및 프로세서(620)가 처리한 데이터를 저장한다. 예를 들어, 메모리(630)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 사용자 단말(500)로 동영상을 제공할 수 있도록 코딩되어 프로세서(620)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The memory 630 stores data received by the communication unit 610 and data processed by the processor 620 . For example, the memory 630 may store a program (or an application, software). The stored program may be a set of syntax that is coded so as to provide a moving picture to the user terminal 500 and is executable by the processor 620 .

일 측면에 따르면, 메모리(630)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect, memory 630 may include one or more of volatile memory, non-volatile memory and RAM, flash memory, hard disk drive, and optical disk drive.

메모리(630)는 서버(600)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 서버(600)를 동작 시키는 명령어 세트는 프로세서(620)에 의해 실행된다.The memory 630 stores an instruction set (eg, software) for operating the server 600 . The set of instructions for operating the server 600 is executed by the processor 620 .

통신부(610), 프로세서(620) 및 메모리(630)에 대해, 아래에서 도 7 내지 도 8을 참조하여 상세히 설명된다.The communication unit 610 , the processor 620 , and the memory 630 will be described in detail below with reference to FIGS. 7 to 8 .

도 7은 일 실시예에 따른 동영상 출력 방법의 신호 흐름도이다.7 is a signal flow diagram of a video output method according to an embodiment.

아래의 단계들(710 내지 770)은 전술된 사용자 단말(500) 및 서버(600)에 의해 수행된다.The following steps 710 to 770 are performed by the user terminal 500 and the server 600 described above.

단계(710)에서, 사용자 단말(500)은 사용자 단말(500)의 사용자로부터 사용자 단말(500)에서 출력되는 동영상의 시점을 변경하는 요청을 수신한다. 예를 들어, 사용자 단말(500)은 사용자 단말(500)에서 제1 동영상(이하에서, "현재 동영상"으로 명명된다)이 출력되고 있는 중에 제2 동영상(이하에서, "타겟 동영상"으로 명명된다)의 출력 요청을 수신할 수 있다. 현재 동영상은 제1 시점을 기준으로 생성된 동영상이고, 타겟 동영상은 제1 시점과 상이한 시점인 제2 시점을 기준으로 생성된 동영상일 수 있다.In step 710 , the user terminal 500 receives a request for changing the viewpoint of the video output from the user terminal 500 from the user of the user terminal 500 . For example, the user terminal 500 is a second video (hereinafter, referred to as a “target video”) while a first video (hereinafter, referred to as “current video”) is being output from the user terminal 500 . ) can receive an output request. The current video may be a video generated based on a first view, and the target video may be a video generated based on a second view that is different from the first view.

컨텐츠는 현재 동영상 및 타겟 동영상을 포함하는 복수의 동영상들로 구성될 수 있다. 예를 들어, 복수의 동영상들은 동일한 시간 구간을 포함할 수 있다. 복수의 동영상들 각각은 복수의 세그먼트들로 구성될 수 있다. 복수의 세그먼트들에 관한 상세한 설명은 도 2를 참조하여 전술된 설명으로 대체될 수 있다.The content may be composed of a plurality of videos including a current video and a target video. For example, a plurality of videos may include the same time period. Each of the plurality of videos may consist of a plurality of segments. A detailed description of the plurality of segments may be replaced with the description described above with reference to FIG. 2 .

일 측면에 따르면, 현재 동영상에서 타겟 동영상으로 변경되는 경우, 현재 동영상의 현재 시각에 기초하여 타겟 동영상의 재생 시작 시각이 결정될 수 있다. 예를 들어, 컨텐츠가 스포츠 중계이고, 제1 카메라로 촬영된 현재 동영상이 제2 카메라로 촬영된 타겟 동영상으로 변경되는 경우, 현재 동영상의 재생 종료 시각과 타겟 동영상의 재생 시작 시각은 동일하거나 최소한의 딜레이 시간을 가져야 한다. 딜레이 시간은 타겟 동영상의 재생을 준비하는 시간에 대응할 수 있다.According to an aspect, when the current video is changed to the target video, the playback start time of the target video may be determined based on the current time of the current video. For example, if the content is a sports broadcast and the current video shot with the first camera is changed to the target video shot with the second camera, the playback end time of the current video and the playback start time of the target video are the same or at least There must be a delay time. The delay time may correspond to the time to prepare the playback of the target video.

단계(720)에서, 사용자 단말(500)은 현재 재생 시각에 기초하여 제1 시간을 계산한다. 현재 재생 시각은, 현재 동영상의 재생 종료 시각 또는 사용자로부터 시점 변경 요청을 수신한 시각일 수 있다. 제1 시간은 출력될 타겟 동영상의 재생 시작 시각을 결정하기 위해 이용되는 시간일 수 있다. 예를 들어, 제1 시간은 사용자 단말(500)과 서버(600) 간의 데이터가 왕복하는 시간(RTT)이 고려된 시간일 수 있다.In step 720, the user terminal 500 calculates the first time based on the current playback time. The current playback time may be a playback end time of the current video or a time when a viewpoint change request is received from the user. The first time may be a time used to determine a playback start time of a target video to be output. For example, the first time may be a time in consideration of a round-trip time (RTT) of data between the user terminal 500 and the server 600 .

일 측면에 따르면, 사용자 단말(500)은 현재 재생 시각, 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 제1 시간을 계산할 수 있다. 타겟 동영상의 초기 처리 시간은 동영상의 디코딩 시간 및 렌더링 시간을 포함할 수 있다. 초기 재생 버퍼 시간은 사용자 단말(500)이 타겟 동영상을 출력하기 위해 버퍼링하는 시간일 수 있다. 상기의 방법으로 계산된 제1 시간은 사용자 단말(500) 및 서버(600) 간의RTT이 고려되지 않았으므로, RTT는 제1 시간을 수신한 서버(600) 측에서 고려될 수 있다.According to an aspect, the user terminal 500 may calculate the first time based on the current playback time, the initial processing time of the target video, and the initial playback buffer time. The initial processing time of the target video may include a decoding time and rendering time of the video. The initial playback buffer time may be a buffering time for the user terminal 500 to output the target video. Since the RTT between the user terminal 500 and the server 600 is not considered for the first time calculated by the above method, the RTT may be considered on the side of the server 600 receiving the first time.

다른 일 측면에 따르면, 사용자 단말(500)은 현재 재생 시각, 사용자 단말(500) 및 서버(600) 간의RTT, 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 제1 시간을 계산할 수 있다. RTT는 사용자 단말(500) 및 서버(600) 간에 실제로 데이터가 왕복한 시간에 기초하여 계산될 수 있다. RTT는 서버(600)에서 타겟 동영상을 처리(예를 들어, 동영상 인코딩 시간)하는 시간을 포함할 수 있다.According to another aspect, the user terminal 500 may calculate the first time based on the current playback time, the RTT between the user terminal 500 and the server 600, the initial processing time of the target video, and the initial playback buffer time. . The RTT may be calculated based on the actual round-trip time of data between the user terminal 500 and the server 600 . The RTT may include a time for processing the target video in the server 600 (eg, video encoding time).

단계(730)에서, 사용자 단말(500)은 계산된 제1 시간을 서버(600)로 전송한다.In step 730 , the user terminal 500 transmits the calculated first time to the server 600 .

단계(740)에서, 서버(600)는 제1 시간에 기초하여 타겟 동영상의 타겟 프레임을 결정한다. 결정된 타겟 프레임은 사용자 단말(500)에서 출력될 타겟 동영상의 첫 프레임일 수 있다. 예를 들어, 타겟 프레임은 아이(I)-프레임일 수 있으나, 이에 한정되지 않으며 비(B)-프레임 또는 피(P)-프레임일 수 있다.In step 740, the server 600 determines a target frame of the target video based on the first time. The determined target frame may be the first frame of the target video to be output from the user terminal 500 . For example, the target frame may be an I-frame, but is not limited thereto, and may be a non-(B)-frame or a P(P)-frame.

구체적으로, 서버(600)는 제1 시간에 기초하여 타겟 동영상의 재생 시작 시간을 계산할 수 있다. 타겟 동영상의 재생 시작 시간은 타겟 시각으로 명명될 수 있다. 서버(600)는 타겟 시각에 기초하여 타겟 I-프레임을 결정한다. 예를 들어, 타겟 시각과 장래로 가장 가까운 타겟 동영상의 I-프레임이 타겟 I-프레임으로 결정될 수 있다. 타겟 시각에 대응하는 프레임을 포함하는 세그먼트는 타겟 세그먼트일 수 있다.Specifically, the server 600 may calculate the playback start time of the target video based on the first time. The playback start time of the target video may be referred to as a target time. The server 600 determines the target I-frame based on the target time. For example, an I-frame of a target moving picture closest to the target time in the future may be determined as the target I-frame. The segment including the frame corresponding to the target time may be a target segment.

타겟 I-프레임을 결정하기 위해, GOP(group of pictures)의 시간이 고려될 수 있다. 예를 들어, GOP/2 내지 GOP+GOP/2 시간이 타겟 I-프레임을 결정하기 위해 고려될 수 있다.To determine the target I-frame, the time of group of pictures (GOP) may be considered. For example, GOP/2 to GOP+GOP/2 times may be considered to determine the target I-frame.

일 측면에 따르면, 제1 시간이 현재 재생 시각, 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 사용자 단말(500)에 의해 계산된 경우, 서버(600)는 사용자 단말(500) 및 서버(600)간의 RTT 및 제1 시간에 기초하여 타겟 시각을 계산할 수 있다.According to one aspect, when the first time is calculated by the user terminal 500 based on the current playback time, the initial processing time of the target video, and the initial playback buffer time, the server 600 includes the user terminal 500 and the server A target time may be calculated based on the RTT between 600 and the first time.

다른 일 측면에 따르면, 제1 시간이 현재 재생 시각, 사용자 단말(500) 및 서버(600) 간의 RTT, 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 사용자 단말(500)에 의해 계산된 경우, 서버(600)는 제1 시간을 타겟 시각으로 결정할 수 있다.According to another aspect, the first time is calculated by the user terminal 500 based on the current playback time, the RTT between the user terminal 500 and the server 600, the initial processing time of the target video, and the initial playback buffer time. In this case, the server 600 may determine the first time as the target time.

현재 동영상은 현재 재생 시각을 포함하는 제1 구간에 대한 제1 세그먼트를 포함하고, 타겟 동영상은 제1 구간과 동일한 구간인 타겟 동영상의 제2 구간에 대한 타겟 세그먼트를 포함하고, 타겟 세그먼트는 타겟 I-프레임을 포함할 수 있다.The current video includes a first segment for a first section including the current playback time, the target video includes a target segment for a second section of the target video that is the same section as the first section, and the target segment includes target I - May contain frames.

단계(750)에서, 서버(600)는 타겟 프레임을 사용자 단말(500)로 전송한다. 예를 들어, 전송되는 타겟 프레임은 I-프레임일 수 있다.In step 750 , the server 600 transmits the target frame to the user terminal 500 . For example, the transmitted target frame may be an I-frame.

일 측면에 따르면, 서버(600)는 타겟 I-프레임을 포함하는 타겟 세그먼트의 프레임들 중 타겟 I-프레임 이후의 프레임들을 사용자 단말(500)로 전송할 수 있다. 다시 말하자면, 타겟 세그먼트의 프레임들 중 타겟 I-프레임의 이전 프레임들은 사용자 단말(500)로 전송되지 않을 수 있다. 사용자 단말(500)에서 출력되지 않는 프레임들의 전송을 방지함으로써 이에 의한 지연 시간을 감소시킬 수 있다.According to one aspect, the server 600 may transmit frames after the target I-frame among frames of the target segment including the target I-frame to the user terminal 500 . In other words, among the frames of the target segment, previous frames of the target I-frame may not be transmitted to the user terminal 500 . By preventing the transmission of frames that are not output from the user terminal 500, a delay time caused by this can be reduced.

단계(760)에서, 사용자 단말(500)은 타겟 프레임에 기초하여 타겟 동영상을 처리한다. 예를 들어, 사용자 단말(500)은 타겟 동영상을 인코딩하거나 렌더링할 수 있다.In step 760, the user terminal 500 processes the target video based on the target frame. For example, the user terminal 500 may encode or render a target video.

단계(770)에서, 사용자 단말(500)은 타겟 동영상을 출력한다. 예를 들어, 타겟 동영상이 버퍼링된 후 출력될 수 있다.In step 770 , the user terminal 500 outputs a target video. For example, the target video may be output after being buffered.

도 8은 일 예에 따른 새로운 시점의 동영상을 출력하는 방법의 타임 라인이다.8 is a timeline of a method of outputting a video of a new viewpoint according to an example.

시각(801)에서, 사용자 단말(500)은 사용자로부터 동영상의 전환 요청을 수신하고, 제1 시간을 계산하고, 계산된 제1 시간을 서버(600)로 전송한다.At time 801 , the user terminal 500 receives a video conversion request from the user, calculates a first time, and transmits the calculated first time to the server 600 .

시각(802)에서, 서버(600)는 사용자 단말(500)로부터 제1 시간을 수신한다. 시각(802) 및 시각(801) 간의 차이(TLR)는 RTT의 일부일 수 있다.At time 802 , server 600 receives a first time from user terminal 500 . The difference T LR between time 802 and time 801 may be part of the RTT.

서버(600)는 TSP 동안 타겟 프레임을 결정하고, 사용자 단말(500)로 전송할 데이터를 처리할 수 있다. 예를 들어, 타겟 프레임을 포함하는 타겟 동영상의 타겟 세그먼트가 인코딩될 수 있다. TSP는 RTT의 일부일 수 있다.The server 600 may determine a target frame during the T SP and process data to be transmitted to the user terminal 500 . For example, a target segment of a target video including the target frame may be encoded. T SP may be part of RTT.

시각(803)에서, 서버(600)는 타겟 프레임을 사용자 단말(500)로 전송한다.At time 803 , the server 600 transmits the target frame to the user terminal 500 .

시각(804)에서, 사용자 단말(500)은 서버(600)로부터 타겟 프레임을 수신한다. 시각(803) 및 시각(804) 간의 차이(TLT)는 RTT의 일부일 수 있다. 시각(801) 및 시각(804) 간의 차이는 RTT일 수 있다.At time 804 , the user terminal 500 receives the target frame from the server 600 . The difference T LT between time 803 and time 804 may be part of the RTT. The difference between time 801 and time 804 may be an RTT.

사용자 단말(500)은 TUP 동안 타겟 프레임을 처리 및 버퍼링할 수 있다. 예를 들어, 타겟 프레임이 디코딩 및 렌더링될 수 있다.The user terminal 500 may process and buffer the target frame during T UP. For example, the target frame may be decoded and rendered.

시각(805)에서, 사용자 단말(500)은 타겟 프레임에 기초하여 타겟 동영상을 출력할 수 있다. 사용자 단말(500) 및 서버(600) 중 적어도 하나는 시각(801) 및 시각(805) 간의 차이를 예측함으로써 사용자 단말(500)이 시점을 변경하여 동영상을 원활하게 출력할 수 있다. 또한, 타겟 세그먼트의 전체가 전송되는 것이 아니고, 타겟 세그먼트의 일부만이 전송됨으로써 시각(801) 및 시각(805) 간의 차이도 감소시킬 수 있다.At time 805 , the user terminal 500 may output a target video based on the target frame. At least one of the user terminal 500 and the server 600 predicts a difference between the time 801 and the time 805 so that the user terminal 500 can smoothly output the video by changing the viewpoint. In addition, the difference between the time 801 and the time 805 can also be reduced because not all of the target segment is transmitted, but only a part of the target segment is transmitted.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 from the above description by those skilled in the art. 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.

500: 사용자 단말
600: 서버
500: user terminal
600: server

Claims (20)

사용자 단말에 의해 수행되는 동영상을 출력하는 방법은,
사용자 단말의 사용자로부터 제1 시점(viewpoint)에 대한 현재 동영상으로부터 제2 시점에 대한 타겟 동영상으로의 변경 요청을 수신하는 단계 - 상기 현재 동영상은 상기 현재 동영상의 제1 구간에 대한 제1 세그먼트를 포함하고, 상기 타겟 동영상은 상기 제1 구간과 동일한 구간인 상기 타겟 동영상의 제2 구간에 대한 타겟 세그먼트를 포함하고, 상기 제1 세그먼트 및 상기 타겟 세그먼트는 서버에 의해 미리 인코딩됨 -;
상기 현재 동영상의 현재 재생 시각에 기초하여 제1 시간을 계산하는 단계;
상기 제1 시간을 상기 타겟 동영상을 제공하는 상기 서버로 전송하는 단계;
상기 제1 시간에 기초하여 상기 서버에 의해 결정된 상기 타겟 동영상의 타겟 아이(I)-프레임을 포함하는 상기 타겟 세그먼트의 일부 세그먼트를 수신하는 단계 - 상기 일부 세그먼트는 상기 타겟 세그먼트의 프레임들 중 상기 타겟 아이(I)-프레임 이전의 프레임들은 포함하지 않음 -; 및
상기 일부 세그먼트의 상기 타겟 아이(I)-프레임에 기초하여 상기 타겟 동영상을 출력하는 단계
를 포함하고,
상기 제1 시간을 계산하는 단계는,
상기 현재 재생 시각, 상기 사용자 단말 및 상기 서버 간에 데이터가 왕복하는 시간(round trip time: RTT), 상기 일부 세그먼트의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 상기 제1 시간을 계산하는 단계
를 포함하는,
동영상 출력 방법.
A method of outputting a video performed by a user terminal,
Receiving a change request from a user of a user terminal from a current video for a first viewpoint to a target video for a second viewpoint, wherein the current video includes a first segment for a first section of the current video and the target video includes a target segment for a second section of the target video that is the same section as the first section, and the first segment and the target segment are pre-encoded by a server;
calculating a first time based on a current playback time of the current video;
transmitting the first time to the server providing the target video;
receiving a partial segment of the target segment including a target i-frame of the target video determined by the server based on the first time, the partial segment being the target of the frames of the target segment I (I) - does not include frames before the frame -; and
outputting the target video based on the target i-frame of the partial segment
including,
Calculating the first time comprises:
Calculating the first time based on the current playback time, a round trip time (RTT) of data between the user terminal and the server, an initial processing time of the partial segment, and an initial playback buffer time
containing,
How to output video.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 타겟 I-프레임은 상기 제1 시간에 기초하여 계산된 타겟 시각에 기초하여 상기 서버에 의해 결정되는,
동영상 출력 방법.
According to claim 1,
the target I-frame is determined by the server based on a target time calculated based on the first time;
How to output video.
제5항에 있어서,
상기 타겟 아이(I)-프레임은 상기 타겟 시각과 가장 가까운 상기 타겟 동영상의 I-프레임인,
동영상 출력 방법.
6. The method of claim 5,
The target I (I)-frame is the I-frame of the target video closest to the target time,
How to output video.
삭제delete 삭제delete 제1항, 제5항, 및 제6항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium storing a program for performing the method of any one of claims 1, 5, and 6.
사용자 단말은,
동영상을 출력하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
사용자 단말의 사용자로부터 제1 시점(viewpoint)에 대한 현재 동영상으로부터 제2 시점에 대한 타겟 동영상으로의 변경 요청을 수신하는 단계 - 상기 현재 동영상은 상기 현재 동영상의 제1 구간에 대한 제1 세그먼트를 포함하고, 상기 타겟 동영상은 상기 제1 구간과 동일한 구간인 상기 타겟 동영상의 제2 구간에 대한 타겟 세그먼트를 포함하고, 상기 제1 세그먼트 및 상기 타겟 세그먼트는 서버에 의해 미리 인코딩됨 -;
상기 현재 동영상의 현재 재생 시각에 기초하여 제1 시간을 계산하는 단계;
상기 제1 시간을 상기 타겟 동영상을 제공하는 상기 서버로 전송하는 단계;
상기 제1 시간에 기초하여 상기 서버에 의해 결정된 상기 타겟 동영상의 타겟 아이(I)-프레임을 포함하는 상기 타겟 세그먼트의 일부 세그먼트를 수신하는 단계; 및
상기 일부 세그먼트의 상기 타겟 아이(I)-프레임에 기초하여 상기 타겟 동영상을 출력하는 단계
를 수행하고,
상기 제1 시간을 계산하는 단계는,
상기 현재 재생 시각, 상기 사용자 단말 및 상기 서버 간에 데이터가 왕복하는 시간(round trip time: RTT), 상기 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 상기 제1 시간을 계산하는 단계
를 포함하는,
사용자 단말.
The user terminal is
a memory in which a program for outputting a moving picture is recorded; and
a processor that executes the program
including,
The program is
Receiving a change request from a user of a user terminal from a current video for a first viewpoint to a target video for a second viewpoint, wherein the current video includes a first segment for a first section of the current video and the target video includes a target segment for a second section of the target video that is the same section as the first section, and the first segment and the target segment are pre-encoded by a server;
calculating a first time based on a current playback time of the current video;
transmitting the first time to the server providing the target video;
receiving a partial segment of the target segment including a target i-frame of the target video determined by the server based on the first time; and
Outputting the target video based on the target i (I)-frame of the partial segment
do,
Calculating the first time comprises:
Calculating the first time based on the current playback time, a round trip time (RTT) of data between the user terminal and the server, an initial processing time of the target video, and an initial playback buffer time
containing,
user terminal.
서버에 의해 수행되는 사용자 단말로 동영상을 제공하는 방법은,
제1 시점(viewpoint)에 대한 현재 동영상을 출력하는 사용자 단말로부터 제2 시점에 대한 타겟 동영상의 전송 요청을 수신하는 단계 - 상기 전송 요청은 상기 현재 동영상의 현재 재생 시각에 기초하여 상기 사용자 단말에 의해 계산된 제1 시간을 포함하고, 상기 현재 동영상은 상기 현재 동영상의 제1 구간에 대한 제1 세그먼트를 포함하고, 상기 타겟 동영상은 상기 제1 구간과 동일한 구간인 상기 타겟 동영상의 제2 구간에 대한 타겟 세그먼트를 포함하고, 상기 제1 세그먼트 및 상기 타겟 세그먼트는 서버에 의해 미리 인코딩 -;
상기 제1 시간에 기초하여 상기 타겟 동영상의 상기 타겟 세그먼트의 타겟 아이(I)-프레임을 결정하는 단계; 및
상기 타겟 I-프레임을 포함하는 상기 타겟 세그먼트의 일부 세그먼트를 상기 사용자 단말로 전송하는 단계 - 상기 일부 세그먼트는 상기 타겟 세그먼트의 프레임들 중 상기 타겟 아이(I)-프레임 이전의 프레임들은 포함하지 않음 -
를 포함하고,
상기 제1 시간은 상기 현재 재생 시각, 상기 사용자 단말 및 상기 서버 간에 데이터가 왕복하는 시간(round trip time: RTT), 상기 일부 세그먼트의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 상기 사용자 단말에 의해 계산되는,
동영상 제공 방법.
A method of providing a video to a user terminal performed by a server,
Receiving a transmission request for a target video for a second viewpoint from a user terminal that outputs a current video for a first viewpoint - The transmission request is performed by the user terminal based on the current playback time of the current video including a calculated first time, the current video includes a first segment for a first section of the current video, and the target video includes a second section of the target video that is the same section as the first section a target segment, wherein the first segment and the target segment are pre-encoded by a server;
determining a target i-frame of the target segment of the target video based on the first time; and
transmitting a partial segment of the target segment including the target I-frame to the user terminal, wherein the partial segment does not include frames before the target i-frame among frames of the target segment;
including,
The first time is determined by the user terminal based on the current playback time, a round trip time (RTT) of data between the user terminal and the server, an initial processing time of the partial segment, and an initial playback buffer time. calculated,
How to provide a video.
삭제delete 삭제delete 삭제delete 제11항에 있어서,
상기 타겟 아이(I)-프레임을 결정하는 단계는,
상기 제1 시간에 기초하여 타겟 시각을 계산하는 단계; 및
상기 타겟 시각에 기초하여 상기 타겟 아이(I)-프레임을 결정하는 단계
를 포함하는,
동영상 제공 방법.
12. The method of claim 11,
Determining the target I (I)-frame comprises:
calculating a target time based on the first time; and
determining the target eye (I)-frame based on the target time
containing,
How to provide a video.
제15항에 있어서,
상기 타겟 시각에 기초하여 상기 타겟 아이(I)-프레임을 결정하는 단계는,
상기 타겟 시각과 가장 가까운 상기 타겟 동영상의 아이(I)-프레임을 상기 타겟 아이(I)-프레임으로 결정하는 단계
를 포함하는,
동영상 제공 방법.
16. The method of claim 15,
Determining the target eye (I)-frame based on the target time,
determining an i-frame of the target video closest to the target time as the target i-frame
containing,
How to provide a video.
삭제delete 제11항에 있어서,
상기 타겟 아이(I)-프레임을 결정하는 단계는,
상기 제1 시간과 가장 가까운 상기 타겟 동영상의 아이(I)-프레임을 상기 타겟 아이(I)-프레임으로 결정하는 단계
를 포함하는,
동영상 제공 방법.
12. The method of claim 11,
Determining the target I (I)-frame comprises:
determining an i-frame of the target video closest to the first time as the target i-frame
containing,
How to provide a video.
제11항, 제15항, 제16항 및 제18항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium storing a program for performing the method of any one of claims 11, 15, 16 and 18.
서버는,
동영상을 제공하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
제1 시점(viewpoint)에 대한 현재 동영상을 출력하는 사용자 단말로부터 제2 시점에 대한 타겟 동영상의 전송 요청을 수신하는 단계 - 상기 전송 요청은 상기 현재 동영상의 현재 재생 시각에 기초하여 상기 사용자 단말에 의해 계산된 제1 시간을 포함하고, 상기 현재 동영상은 상기 현재 동영상의 제1 구간에 대한 제1 세그먼트를 포함하고, 상기 타겟 동영상은 상기 제1 구간과 동일한 구간인 상기 타겟 동영상의 제2 구간에 대한 타겟 세그먼트를 포함하고, 상기 제1 세그먼트 및 상기 타겟 세그먼트는 서버에 의해 미리 인코딩 -;
상기 제1 시간에 기초하여 상기 타겟 동영상의 상기 타겟 세그먼트의 타겟 아이(I)-프레임을 결정하는 단계; 및
상기 타겟 아이(I)-프레임을 포함하는 상기 타겟 세그먼트의 일부 세그먼트를 상기 사용자 단말로 전송하는 단계 - 상기 일부 세그먼트는 상기 타겟 세그먼트의 프레임들 중 상기 타겟 아이(I)-프레임 이전의 프레임들은 포함하지 않음 -
를 수행하고,
상기 제1 시간은 상기 현재 재생 시각, 상기 사용자 단말 및 상기 서버 간에 데이터가 왕복하는 시간(round trip time: RTT), 상기 일부 세그먼트의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 상기 사용자 단말에 의해 계산되는,
서버.
server,
a memory in which a program for providing a moving picture is recorded; and
a processor that executes the program
including,
The program is
Receiving a transmission request for a target video for a second viewpoint from a user terminal that outputs a current video for a first viewpoint - The transmission request is performed by the user terminal based on the current playback time of the current video including a calculated first time, the current video includes a first segment for a first section of the current video, and the target video includes a second section of the target video that is the same section as the first section a target segment, wherein the first segment and the target segment are pre-encoded by a server;
determining a target i-frame of the target segment of the target video based on the first time; and
transmitting a partial segment of the target segment including the target I-frame to the user terminal, wherein the partial segment includes frames of the target segment before the target I-frame not -
do,
The first time is determined by the user terminal based on the current playback time, a round trip time (RTT) of data between the user terminal and the server, an initial processing time of the partial segment, and an initial playback buffer time. calculated,
server.
KR1020200012631A 2020-02-03 2020-02-03 Method and apparatus for outputting video for a plurality of viewpoints KR102307072B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200012631A KR102307072B1 (en) 2020-02-03 2020-02-03 Method and apparatus for outputting video for a plurality of viewpoints

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200012631A KR102307072B1 (en) 2020-02-03 2020-02-03 Method and apparatus for outputting video for a plurality of viewpoints

Publications (2)

Publication Number Publication Date
KR20210098729A KR20210098729A (en) 2021-08-11
KR102307072B1 true KR102307072B1 (en) 2021-09-29

Family

ID=77314111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200012631A KR102307072B1 (en) 2020-02-03 2020-02-03 Method and apparatus for outputting video for a plurality of viewpoints

Country Status (1)

Country Link
KR (1) KR102307072B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101702426B1 (en) 2016-04-23 2017-02-03 광운대학교 산학협력단 Video transmission method based on multi HTTP threads for reducing the viewpoint change delay in multi-view video service
JP2018521546A (en) * 2015-05-18 2018-08-02 ゼップ ラブズ、インコーポレイテッド Multi-angle video editing based on cloud video sharing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070103558A1 (en) * 2005-11-04 2007-05-10 Microsoft Corporation Multi-view video delivery
KR102069897B1 (en) * 2013-05-13 2020-01-23 주식회사 알티캐스트 Method for generating user video and Apparatus therefor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018521546A (en) * 2015-05-18 2018-08-02 ゼップ ラブズ、インコーポレイテッド Multi-angle video editing based on cloud video sharing
KR101702426B1 (en) 2016-04-23 2017-02-03 광운대학교 산학협력단 Video transmission method based on multi HTTP threads for reducing the viewpoint change delay in multi-view video service

Also Published As

Publication number Publication date
KR20210098729A (en) 2021-08-11

Similar Documents

Publication Publication Date Title
CA2965484C (en) Adaptive bitrate streaming latency reduction
US10440416B1 (en) System and method for providing quality control in 360° immersive video during pause
CN110784740A (en) Video processing method, device, server and readable storage medium
US20200177907A1 (en) Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
CA2819674C (en) Video encoding apparatus, video decoding apparatus, video encoding method, and video decoding method
WO2019170073A1 (en) Media playback
EP4054190A1 (en) Video data encoding method and device, apparatus, and storage medium
CN110430445B (en) Video synchronous playing method, device, equipment and medium
EP3490263B1 (en) Channel switching method and device
US20190313144A1 (en) Synchronizing processing between streams
CN110582012B (en) Video switching method, video processing device and storage medium
WO2020228482A1 (en) Video processing method, apparatus and system
CN112351285B (en) Video encoding method, video decoding method, video encoding device, video decoding device, electronic equipment and storage medium
US9319682B2 (en) Moving image encoding apparatus, control method therefor, and non-transitory computer readable storage medium
CN111010603A (en) Video caching and forwarding processing method and device
CN111758262A (en) Video transmission method and device, aircraft, playing equipment and storage medium
CN112040234B (en) Video encoding method, video decoding method, video encoding device, video decoding device, electronic equipment and storage medium
KR102307072B1 (en) Method and apparatus for outputting video for a plurality of viewpoints
JP2023171661A (en) Encoder and method for encoding tile-based immersive video
WO2004045216A1 (en) Video streaming device and method of control for switchable video streams
EP3503559A1 (en) Method and terminal for managing a streaming session of an immersive video spatially tiled with a set of tiles and stored on a network equipment
KR102001549B1 (en) Apparatus and Method for Cutting Several Encoded Video Streams Without Preceding Decoding
CN112738508A (en) Video coding method, video determining method, video processing method, server and VR terminal
CN108933762B (en) Media stream playing processing method and device
EP3210383A1 (en) Adaptive bitrate streaming latency reduction

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant