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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
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
아래의 실시예들은 사용자 단말에서 동영상을 출력하는 기술에 관한 것으로, 구체적으로 복수의 시점들에 대한 동영상을 출력하는 기술에 관한 것이다.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
일 실시예는 복수의 시점들에 대한 동영상을 출력하는 방법 및 장치를 제공할 수 있다.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
복수의 동영상들(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
사용자 단말에서 컨텐츠가 출력되기 위해, 복수의 동영상들(210 내지 230)이 서버에서 사용자 단말로 전송된다.In order to output content from the user terminal, a plurality of
첫번째 방법(250)은, 서버가 복수의 동영상들(210 내지 230) 각각에 대한 스트림을 생성하고, 복수의 스트림들을 병렬적으로 사용자 단말로 전송하는 방법이다.The
두번째 방법(260)은, 서버가 복수의 동영상들(210 내지 230)의 세그먼트들을 하나의 스트림으로 생성하고, 스트림을 사용자 단말로 전송하는 방법이다.The
세번째 방법(270)은, 서버가 시간 구간이 대응하는 세그먼트들을 하나의 타일로 생성하고, 생성된 타일들을 하나의 스트림으로 생성하고, 스트림을 사용자 단말로 전송하는 방법이다.The
낮음(Live)Normal (VOD)
Low (Live)
낮음(Live)Normal (VOD)
Low (Live)
방법들(250 내지 270) 중 첫번째 방법(250)은 다른 방법들(260 및 270)에 비해 네트워크의 상황 등에 유연하며 효율적인 방법일 수 있다. 이에 따라, 이후의 설명에서 복수의 동영상들을 제공하는 방법은 첫번째 방법(250)을 이용한 방법일 수 있으나, 기재된 실시예로 한정되는 것은 아니다.Among the
도 3은 일 실시예에 따른 동영상 제공 시스템을 도시한다.3 illustrates a video providing system according to an embodiment.
일 측면에 따르면, 동영상 제공 시스템(300)은 컨텐츠의 복수의 동영상들을 제공하는 서버(310) 및 사용자에게 동영상을 출력하는 사용자 단말(320)을 포함한다.According to one aspect, the
서버(310)는 컨텐츠에 대한 복수의 동영상을 생성할 수 있다. 예를 들어, 컨텐츠는 사용자 단말(320)의 사용자가 이용하는 게임일 수 있고, 다른 예로, 컨텐츠는 복수의 카메라들에 의해 촬영되는 실시간 중계 프로그램일 수 있다.The
아래에서, 도 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
제1 방법은 상기의 경우에서, 사용자 단말이 세그먼트(411)에 대응하는 제2 동영상의 세그먼트(431)를 수신하고, 세그먼트(431)를 수신한 시점(402)에서 현재 재생 시각에 대응하는 세그먼트(431)의 구간이 출력될 수 있다. 이러한 경우 세그먼트(431) 중 과거 구간(432)에 해당하는 데이터는 현재 재생 시각을 기준으로 과거의 데이터에 해당하므로 쓸모가 없을 수 있다. 또한, 과거 구간(432)에 해당하는 데이터를 수신하기 위한 시간 및 자원이 제2 동영상의 출력을 지연시킬 수 있다.In the first method, in the above case, the user terminal receives the
이에 반하여, 제2 방법은 상기의 경우에서, 세그먼트(441)를 수신하는 시점(402)을 예측하고, 시점(402) 이후의 제2 동영상의 세그먼트(441)를 사용자 단말이 수신함으로써 제1 방법과 같이 과거 구간(432)에 해당하는 데이터를 수신하는 것을 방지한다. 세그먼트(441)는 세그먼트(431)에서 과거 구간(432)에 해당하는 데이터를 제외한 나머지 데이터일 수 있다. 출력에 필요한 데이터만이 전송 및 수신됨으로써 제2 동영상의 출력 지연 시간을 감소시킬 수 있다.In contrast, the second method predicts a
아래에서 도 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
통신부(510)는 프로세서(520) 및 메모리(530)와 연결되어 데이터를 송수신한다. 통신부(510)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.The
통신부(510)는 사용자 단말(500) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(510)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(510)는 사용자 단말(500)과 외부의 장치를 연결하는 요소일 수 있다. 통신부(510)는 인터페이스(interface)일 수 있다. 통신부(510)는 외부의 장치로부터 데이터를 수신하여, 프로세서(520) 및 메모리(530)에 데이터를 전송할 수 있다.The
프로세서(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
프로세서(520)는 메모리(예를 들어, 메모리(530))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(520)에 의해 유발된 인스트럭션들을 실행한다.
메모리(530)는 통신부(510)가 수신한 데이터 및 프로세서(520)가 처리한 데이터를 저장한다. 예를 들어, 메모리(530)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 동영상을 출력할 수 있도록 코딩되어 프로세서(520)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The
일 측면에 따르면, 메모리(530)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect,
메모리(530)는 사용자 단말(500)을 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 사용자 단말(500)을 동작 시키는 명령어 세트는 프로세서(520)에 의해 실행된다.The
통신부(510), 프로세서(520) 및 메모리(530)에 대해, 아래에서 도 7 내지 도 8을 참조하여 상세히 설명된다.The
도 6은 일 실시예에 따른 서버의 구성도이다.6 is a configuration diagram of a server according to an embodiment.
서버(600)는 통신부(610), 프로세서(620) 및 메모리(630)를 포함한다. 예를 들어, 서버(600)는 도 3을 참조하여 설명된 서버(310)일 수 있다.The
통신부(610)는 프로세서(620) 및 메모리(630)와 연결되어 데이터를 송수신한다. 통신부(610)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The
통신부(610)는 서버(600) 내의 회로망으로 구현될 수 있다. 예를 들어, 통신부(610)는 내부 버스 및 외부 버스를 포함할 수 있다. 다른 예로, 통신부(610)는 서버(600)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(610)는 인터페이스일 수 있다. 통신부(610)는 외부의 장치로부터 데이터를 수신하여, 프로세서(620) 및 메모리(630)에 데이터를 전송할 수 있다.The
프로세서(620)는 통신부(610)가 수신한 데이터 및 메모리(530)에 저장된 데이터를 처리한다. 프로세서(620)는 메모리(예를 들어, 메모리(630))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(620)에 의해 유발된 인스트럭션들을 실행한다.The
메모리(630)는 통신부(610)가 수신한 데이터 및 프로세서(620)가 처리한 데이터를 저장한다. 예를 들어, 메모리(630)는 프로그램(또는 어플리케이션, 소프트웨어)을 저장할 수 있다. 저장되는 프로그램은 사용자 단말(500)로 동영상을 제공할 수 있도록 코딩되어 프로세서(620)에 의해 실행 가능한 신텍스들의 집합일 수 있다.The
일 측면에 따르면, 메모리(630)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM, 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect,
메모리(630)는 서버(600)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 서버(600)를 동작 시키는 명령어 세트는 프로세서(620)에 의해 실행된다.The
통신부(610), 프로세서(620) 및 메모리(630)에 대해, 아래에서 도 7 내지 도 8을 참조하여 상세히 설명된다.The
도 7은 일 실시예에 따른 동영상 출력 방법의 신호 흐름도이다.7 is a signal flow diagram of a video output method according to an embodiment.
아래의 단계들(710 내지 770)은 전술된 사용자 단말(500) 및 서버(600)에 의해 수행된다.The following
단계(710)에서, 사용자 단말(500)은 사용자 단말(500)의 사용자로부터 사용자 단말(500)에서 출력되는 동영상의 시점을 변경하는 요청을 수신한다. 예를 들어, 사용자 단말(500)은 사용자 단말(500)에서 제1 동영상(이하에서, "현재 동영상"으로 명명된다)이 출력되고 있는 중에 제2 동영상(이하에서, "타겟 동영상"으로 명명된다)의 출력 요청을 수신할 수 있다. 현재 동영상은 제1 시점을 기준으로 생성된 동영상이고, 타겟 동영상은 제1 시점과 상이한 시점인 제2 시점을 기준으로 생성된 동영상일 수 있다.In
컨텐츠는 현재 동영상 및 타겟 동영상을 포함하는 복수의 동영상들로 구성될 수 있다. 예를 들어, 복수의 동영상들은 동일한 시간 구간을 포함할 수 있다. 복수의 동영상들 각각은 복수의 세그먼트들로 구성될 수 있다. 복수의 세그먼트들에 관한 상세한 설명은 도 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
일 측면에 따르면, 사용자 단말(500)은 현재 재생 시각, 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 제1 시간을 계산할 수 있다. 타겟 동영상의 초기 처리 시간은 동영상의 디코딩 시간 및 렌더링 시간을 포함할 수 있다. 초기 재생 버퍼 시간은 사용자 단말(500)이 타겟 동영상을 출력하기 위해 버퍼링하는 시간일 수 있다. 상기의 방법으로 계산된 제1 시간은 사용자 단말(500) 및 서버(600) 간의RTT이 고려되지 않았으므로, RTT는 제1 시간을 수신한 서버(600) 측에서 고려될 수 있다.According to an aspect, the
다른 일 측면에 따르면, 사용자 단말(500)은 현재 재생 시각, 사용자 단말(500) 및 서버(600) 간의RTT, 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 제1 시간을 계산할 수 있다. RTT는 사용자 단말(500) 및 서버(600) 간에 실제로 데이터가 왕복한 시간에 기초하여 계산될 수 있다. RTT는 서버(600)에서 타겟 동영상을 처리(예를 들어, 동영상 인코딩 시간)하는 시간을 포함할 수 있다.According to another aspect, the
단계(730)에서, 사용자 단말(500)은 계산된 제1 시간을 서버(600)로 전송한다.In step 730 , the
단계(740)에서, 서버(600)는 제1 시간에 기초하여 타겟 동영상의 타겟 프레임을 결정한다. 결정된 타겟 프레임은 사용자 단말(500)에서 출력될 타겟 동영상의 첫 프레임일 수 있다. 예를 들어, 타겟 프레임은 아이(I)-프레임일 수 있으나, 이에 한정되지 않으며 비(B)-프레임 또는 피(P)-프레임일 수 있다.In step 740, the
구체적으로, 서버(600)는 제1 시간에 기초하여 타겟 동영상의 재생 시작 시간을 계산할 수 있다. 타겟 동영상의 재생 시작 시간은 타겟 시각으로 명명될 수 있다. 서버(600)는 타겟 시각에 기초하여 타겟 I-프레임을 결정한다. 예를 들어, 타겟 시각과 장래로 가장 가까운 타겟 동영상의 I-프레임이 타겟 I-프레임으로 결정될 수 있다. 타겟 시각에 대응하는 프레임을 포함하는 세그먼트는 타겟 세그먼트일 수 있다.Specifically, the
타겟 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
다른 일 측면에 따르면, 제1 시간이 현재 재생 시각, 사용자 단말(500) 및 서버(600) 간의 RTT, 타겟 동영상의 초기 처리 시간 및 초기 재생 버퍼 시간에 기초하여 사용자 단말(500)에 의해 계산된 경우, 서버(600)는 제1 시간을 타겟 시각으로 결정할 수 있다.According to another aspect, the first time is calculated by the
현재 동영상은 현재 재생 시각을 포함하는 제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
일 측면에 따르면, 서버(600)는 타겟 I-프레임을 포함하는 타겟 세그먼트의 프레임들 중 타겟 I-프레임 이후의 프레임들을 사용자 단말(500)로 전송할 수 있다. 다시 말하자면, 타겟 세그먼트의 프레임들 중 타겟 I-프레임의 이전 프레임들은 사용자 단말(500)로 전송되지 않을 수 있다. 사용자 단말(500)에서 출력되지 않는 프레임들의 전송을 방지함으로써 이에 의한 지연 시간을 감소시킬 수 있다.According to one aspect, the
단계(760)에서, 사용자 단말(500)은 타겟 프레임에 기초하여 타겟 동영상을 처리한다. 예를 들어, 사용자 단말(500)은 타겟 동영상을 인코딩하거나 렌더링할 수 있다.In
단계(770)에서, 사용자 단말(500)은 타겟 동영상을 출력한다. 예를 들어, 타겟 동영상이 버퍼링된 후 출력될 수 있다.In
도 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
시각(802)에서, 서버(600)는 사용자 단말(500)로부터 제1 시간을 수신한다. 시각(802) 및 시각(801) 간의 차이(TLR)는 RTT의 일부일 수 있다.At
서버(600)는 TSP 동안 타겟 프레임을 결정하고, 사용자 단말(500)로 전송할 데이터를 처리할 수 있다. 예를 들어, 타겟 프레임을 포함하는 타겟 동영상의 타겟 세그먼트가 인코딩될 수 있다. TSP는 RTT의 일부일 수 있다.The
시각(803)에서, 서버(600)는 타겟 프레임을 사용자 단말(500)로 전송한다.At
시각(804)에서, 사용자 단말(500)은 서버(600)로부터 타겟 프레임을 수신한다. 시각(803) 및 시각(804) 간의 차이(TLT)는 RTT의 일부일 수 있다. 시각(801) 및 시각(804) 간의 차이는 RTT일 수 있다.At
사용자 단말(500)은 TUP 동안 타겟 프레임을 처리 및 버퍼링할 수 있다. 예를 들어, 타겟 프레임이 디코딩 및 렌더링될 수 있다.The
시각(805)에서, 사용자 단말(500)은 타겟 프레임에 기초하여 타겟 동영상을 출력할 수 있다. 사용자 단말(500) 및 서버(600) 중 적어도 하나는 시각(801) 및 시각(805) 간의 차이를 예측함으로써 사용자 단말(500)이 시점을 변경하여 동영상을 원활하게 출력할 수 있다. 또한, 타겟 세그먼트의 전체가 전송되는 것이 아니고, 타겟 세그먼트의 일부만이 전송됨으로써 시각(801) 및 시각(805) 간의 차이도 감소시킬 수 있다.At
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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.
상기 타겟 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.
상기 타겟 아이(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.
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.
상기 타겟 아이(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.
상기 타겟 시각에 기초하여 상기 타겟 아이(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.
상기 타겟 아이(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.
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.
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)
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)
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 |
-
2020
- 2020-02-03 KR KR1020200012631A patent/KR102307072B1/en active IP Right Grant
Patent Citations (2)
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 |