KR102489164B1 - Temporal Placement of Rebuffering Events - Google Patents

Temporal Placement of Rebuffering Events Download PDF

Info

Publication number
KR102489164B1
KR102489164B1 KR1020197034871A KR20197034871A KR102489164B1 KR 102489164 B1 KR102489164 B1 KR 102489164B1 KR 1020197034871 A KR1020197034871 A KR 1020197034871A KR 20197034871 A KR20197034871 A KR 20197034871A KR 102489164 B1 KR102489164 B1 KR 102489164B1
Authority
KR
South Korea
Prior art keywords
rebuffering
designated
points
point
video item
Prior art date
Application number
KR1020197034871A
Other languages
Korean (ko)
Other versions
KR20200013658A (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 넷플릭스, 인크.
Publication of KR20200013658A publication Critical patent/KR20200013658A/en
Application granted granted Critical
Publication of KR102489164B1 publication Critical patent/KR102489164B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in 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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet

Abstract

방법은 컴퓨팅 시스템에 의해, 버퍼에 비디오 아이템을 나타내는 데이터를 수신하는 단계를 포함한다. 이 방법은 버퍼로부터 디스플레이 시스템으로 비디오 아이템을 출력하는 단계를 더 포함한다. 이 방법은 버퍼의 이용률이 미리 결정된 임계값 아래로 떨어지는 것으로 결정하는 단계를 더 포함한다. 이 방법은 버퍼의 이용률이 미리 결정된 임계값 아래로 떨어지는 것으로 결정하는 것에 응답하여, 미리 결정된 시간 프레임 내에 지정된 리버퍼링 포인트가 존재한다고 결정하는 단계를 더 포함한다. 이 방법은 컴퓨팅 시스템에 의해, 미리 결정된 시간 프레임 내에 지정된 리버퍼링 포인트가 존재한다고 결정하는 것에 응답하여 지정된 리버퍼링 포인트에서 비디오 아이템을 일시정지시키는 단계를 더 포함한다.The method includes receiving, by a computing system, data representative of a video item in a buffer. The method further includes outputting the video item from the buffer to a display system. The method further includes determining that the utilization of the buffer falls below a predetermined threshold. The method further includes determining that a designated rebuffering point exists within a predetermined time frame in response to determining that the utilization of the buffer falls below a predetermined threshold. The method further includes pausing the video item at the designated rebuffering point in response to determining, by the computing system, that the designated rebuffering point exists within the predetermined time frame.

Description

리버퍼링 이벤트의 시간적 배치Temporal Placement of Rebuffering Events

관련 출원들에 대한 상호 참조CROSS REFERENCES TO RELATED APPLICATIONS

본 출원은 2017년 5월 31일에 출원된 미국 특허 출원 제15/610053호에 대한 우선권을 주장하며, 그 개시내용은 전체가 개시되어 있다.This application claims priority to US Patent Application Serial No. 15/610053, filed on May 31, 2017, the disclosure of which is disclosed in its entirety.

본 개시내용은 일반적으로 비디오 스트리밍에 관한 것이며, 더 구체적으로는 비디오 스트림 내의 리버퍼링 이벤트의 타이밍에 관한 것이다.The present disclosure relates generally to video streaming, and more specifically to the timing of rebuffering events within a video stream.

소비자들은 공중 신호들을 통해 수신하거나 케이블 또는 위성 텔레비전 제공자에 가입함으로써 영화들 및 텔레비전 쇼들과 같은 미디어 아이템들에 액세스할 수 있지만, 소비자들은 점점 더 인터넷 기반 시스템들을 통해 콘텐츠에 액세스하고 있다. 일부 인터넷 기반 시스템들은 사용자들이 인터넷을 통해 콘텐츠를 다양한 클라이언트 디바이스들에 다운로드 또는 스트리밍하는 것을 허용한다. 예를 들어, 인터넷 기반 미디어 시스템은 개인용 컴퓨터, 셋톱 박스, 또는 스마트폰 또는 태블릿 컴퓨터와 같은 개인용 모바일 디바이스를 통해 사용자들에게 콘텐츠를 제공할 수 있다. 특히, 스트리밍 미디어 시스템들은 사용자들이 스트리밍 비디오 포맷의 미디어 콘텐츠에 액세스할 수 있게 하고, 이에 따라 사용자들은 그 콘텐츠 전체가 주어진 사용자의 클라이언트 디바이스에 전달되기 전에 콘텐츠의 소비(예를 들어, 시청 및/또는 청취)를 시작할 수 있다. 이러한 시스템은 그 선택된 콘텐츠를 소비하기 시작하기 전에 잠재적으로 긴 다운로드 프로세스를 피하면서 사용자들이 콘텐츠에 액세스하게 한다.While consumers can access media items such as movies and television shows by receiving them over the air or subscribing to a cable or satellite television provider, consumers are increasingly accessing content through Internet-based systems. Some Internet-based systems allow users to download or stream content to various client devices over the Internet. For example, an Internet-based media system may provide content to users via a personal computer, set top box, or personal mobile device such as a smart phone or tablet computer. In particular, streaming media systems enable users to access media content in streaming video format, whereby users can consume (eg, view and/or view and/or listening) can begin. Such a system allows users to access content while avoiding a potentially lengthy download process before beginning to consume the selected content.

미디어 아이템을 스트리밍할 때, 사용자는 미디어 아이템을 볼 수 있기 전에 전체 미디어 아이템을 다운로드할 필요가 없다. 대신에, 사용자는 미디어를 나타내는 데이터가 사용자의 디바이스에 전달되자마자 거의 즉시 그 미디어 아이템을 소비하기 시작할 수 있다. 미디어 아이템을 나타내는 데이터는 사용자의 디바이스에 전달됨에 따라, 버퍼에 일시적으로 배치된다. 버퍼는 데이터가 스트리밍되는 서버와 사용자의 디바이스 간의 네트워크 접속이 일시적으로 중단되거나 느려질 경우 미디어 아이템의 소비가 버퍼에서의 데이터를 계속 이용할 수 있기 때문에 보다 매끄러운 시청 경험을 하게 한다. 이상적으로는, 데이터가 버퍼에 전달되는 레이트는 클라이언트 디바이스 상의 표시를 위해 버퍼로부터 데이터가 판독되는 레이트보다 높다. 그러나, 일부 경우들에서, 데이터는 버퍼에 전달되는 것보다 더 빠르게 버퍼로부터 판독된다. 버퍼 이용률(즉, 버퍼 내의 현재 데이터의 양)이 0으로 떨어지는 경우, 미디어 스트림은 통상적으로 충분한 데이터가 버퍼에 전달될 수 있을 때까지 일시정지된다. 이는 시청자의 경험의 질을 낮출 수 있는데, 그 이유는 재생의 이러한 갑작스런 정지가 시청자에 의해 정지된 스크린(때때로 모래시계 또는 물레 아이콘으로 덧씌워짐) 및 대응하는 오디오의 부재, 즉 무음으로 인지되기 때문이다. 사용자는 일반적으로 버퍼 내의 데이터의 양을 알지 못할 것이고, 따라서 사용자는 무작위로 타이밍된 이벤트로서 재생의 정지를 인지한다. 충분한 데이터가 버퍼에 다시 수신될 때, 미디어 아이템의 재생이 갑자기 재개될 수 있다. 그 결과, 미디어 아이템의 불연속 재생은 사용자에게 즐거운 일이 아니다.When streaming a media item, the user does not have to download the entire media item before being able to view it. Instead, the user can begin consuming the media item almost immediately as soon as the data representing the media is delivered to the user's device. As data representing the media item is delivered to the user's device, it is temporarily placed in a buffer. Buffers allow for a smoother viewing experience because consumption of media items can continue to use the data in the buffer if the network connection between the server through which the data is being streamed and the user's device is temporarily interrupted or slowed. Ideally, the rate at which data is transferred to the buffer is higher than the rate at which data is read from the buffer for display on the client device. However, in some cases, data is read from the buffer faster than it is passed to the buffer. When the buffer utilization (i.e., the amount of data currently in the buffer) drops to zero, the media stream is typically paused until enough data can be delivered to the buffer. This can degrade the quality of the viewer's experience, since this abrupt stop in playback is perceived by the viewer as a frozen screen (sometimes overlaid with an hourglass or spinning wheel icon) and the absence of corresponding audio, i.e. silence. Because. The user will generally not know the amount of data in the buffer, so the user perceives the stopping of playback as a randomly timed event. When enough data is received back into the buffer, playback of the media item can suddenly resume. As a result, discontinuous playback of media items is not pleasant to the user.

도 1은 본 개시내용의 일부 실시예들에 따라, 리버퍼링 이벤트의 최적 배치를 수행하는데 이용될 수 있는 예시적인 서버 컴퓨팅 시스템 및 클라이언트 컴퓨팅 시스템을 도시하는 도면이다.
도 2는 본 개시내용의 일부 실시예들에 따라, 비디오 아이템 내의 지정된 리버퍼링 포인트들을 도시하는 도면이다.
도 3a, 도 3b, 도 3c 및 도 3d는 본 개시내용의 일부 실시예들에 따라, 지정된 리버퍼링 이벤트들에 대한 지정된 리버퍼링 포인트들의 이용을 도시하는 도면들이다.
도 4a 및 도 4b는 본 개시내용의 일부 실시예들에 따라, 지정된 리버퍼링 포인트들을 식별하는데 도움을 주기 위해 비디오 아이템의 일부들에 할당될 수 있는 다양한 메타데이터를 도시하는 표들이다.
도 5는 본 개시내용의 일부 실시예들에 따라, 비디오 아이템의 일부에서의 클로즈업 샷을 나타내는 특징들의 검출을 도시하는 도면이다.
도 6은 본 개시내용의 일부 실시예들에 따라, 비디오 아이템의 일부에서의 설정 샷을 나타내는 특징들의 검출을 도시하는 도면이다.
도 7은 본 개시내용의 일부 실시예들에 따라, 비디오 아이템의 일부에서의 줌아웃 샷을 나타내는 특징들의 검출을 도시하는 도면이다.
도 8은 본 개시내용의 일부 실시예들에 따라, 지정된 리버퍼링 포인트에서 비디오 아이템을 일시정지시키기 위한 예시적인 방법을 도시하는 흐름도이다.
이들 도면들은 이하의 상세한 설명을 참조함으로써 관련 기술분야의 통상의 기술자에 의해 더 잘 이해될 것이다.
1 is a diagram illustrating an exemplary server computing system and client computing system that may be used to perform optimal placement of rebuffering events, in accordance with some embodiments of the present disclosure.
2 is a diagram illustrating designated rebuffering points within a video item, in accordance with some embodiments of the present disclosure.
3A, 3B, 3C and 3D are diagrams illustrating the use of designated rebuffering points for designated rebuffering events, in accordance with some embodiments of the present disclosure.
4A and 4B are tables illustrating various metadata that may be assigned to portions of a video item to help identify designated rebuffering points, in accordance with some embodiments of the present disclosure.
5 is a diagram illustrating detection of features representative of a close-up shot in a portion of a video item, in accordance with some embodiments of the present disclosure.
6 is a diagram illustrating detection of features representative of a establishing shot in a portion of a video item, in accordance with some embodiments of the present disclosure.
7 is a diagram illustrating detection of features indicative of a zoomed-out shot in a portion of a video item, in accordance with some embodiments of the present disclosure.
8 is a flow diagram illustrating an example method for pausing a video item at a designated rebuffering point, in accordance with some embodiments of the present disclosure.
These drawings will be better understood by those skilled in the art by referring to the detailed description below.

위에서 간략하게 설명된 도면들을 참조하여, 본 개시내용에 따른 시스템들 및 방법들의 예시적인 애플리케이션들이 이 란에서 설명된다. 이러한 예들은 맥락을 추가하고 본 발명의 이해를 돕기 위해 제공된다. 따라서, 본 발명이 이러한 특정한 상세들 중 일부 또는 전부가 없이도 실시될 수 있다는 것을 관련 기술분야의 통상의 기술자라면 알 것이다. 다른 경우들에서, 본 개시내용을 불필요하게 모호하게 하는 것을 피하기 위해 잘 알려진 프로세스 단계들 또는 동작들은 상세히 설명되지 않는다. 또한, 본 명세서에서 설명된 개념들 및 원리들의 다른 애플리케이션들이 가능하며, 따라서 이하의 예들은 제한적인 것으로 간주되어서는 안 된다. 본 명세서에서 설명된 원리들 및 개념들은 스트리밍된 미디어 아이템들의 시청자들에 대한 리버퍼링의 부정적인 양태들의 적어도 일부를 감소시킬 수 있는 리버퍼링 이벤트에 대한 최적화된 시간을 선택하는데 적용될 수 있다.With reference to the figures outlined above, exemplary applications of systems and methods according to the present disclosure are described in this section. These examples are provided to add context and aid understanding of the present invention. Accordingly, it will be appreciated by those skilled in the art that the present invention may be practiced without some or all of these specific details. In other instances, well-known process steps or actions have not been described in detail to avoid unnecessarily obscuring the present disclosure. In addition, other applications of the concepts and principles described herein are possible, and thus the following examples should not be considered limiting. The principles and concepts described herein can be applied to select an optimized time for a rebuffering event that can reduce at least some of the negative aspects of rebuffering of streamed media items to viewers.

다음의 상세한 설명에서는, 이러한 설명의 일부를 형성하고 본 개시내용의 특정 실시예들을 예시로서 도시하는 첨부 도면들을 참조한다. 이들 실시예들이 관련 기술분야의 통상의 기술자가 본 발명을 실시할 수 있게 하도록 충분히 상세하게 설명되지만, 이러한 예들은 제한적이지 않으며, 따라서 다른 실시예들이 이용될 수 있고, 본 발명의 사상 및 범위를 벗어나지 않고서 변경들이 이루어질 수 있다는 것이 이해된다.In the detailed description that follows, reference is made to the accompanying drawings, which form a part of this description and illustrate by way of example certain embodiments of the present disclosure. Although these embodiments are described in sufficient detail to enable one of ordinary skill in the relevant art to practice the invention, these examples are not limiting, and thus other embodiments may be used, and would not depart from the spirit and scope of the invention. It is understood that changes may be made without departing.

전술한 바와 같이, 종래의 스트리밍 구현들에서, 데이터가 클라이언트 디바이스에 충분히 빠르게 전달되지 않으면, 비디오는 더 많은 데이터를 기다리기 위해 일시정지되어야 한다. 데이터의 충분한 양이 수신된 후에, 비디오가 재개될 수 있다. 네트워크 조건들과 같은 다양한 요인들이 데이터를 충분히 빠르게 수신하는 클라이언트 디바이스의 능력에 영향을 미칠 수 있다. 만약 있더라도, 네트워크 조건들에 대한 제어가 거의 없는 경우가 많으므로, 이러한 일시정지들은 사용자에게 무작위로 나타날 수 있고, 흔히 중요한 스토리 요소들을 중단시킨다. 이러한 중단들은 전형적으로 오디오가 없는 정지된 스크린으로 인지된다. 사용자에게는 또한 "버퍼링" 메시지, 물레 또는 모래시계 아이콘과 같은 지연의 표시가 제시될 수 있다. 버퍼가 추가 데이터를 채우는 것을 허용하는 이러한 일시정지들은 리버퍼링 이벤트들이라고 지칭될 것이다.As mentioned above, in conventional streaming implementations, if data is not delivered to the client device fast enough, the video must be paused to wait for more data. After a sufficient amount of data has been received, the video can be resumed. Various factors, such as network conditions, can affect a client device's ability to receive data fast enough. If there are, there is often little control over network conditions, so these pauses can appear randomly to the user, often interrupting important story elements. These interruptions are typically perceived as a still screen with no audio. The user may also be presented with an indication of the delay, such as a "buffering" message, a spinning wheel or an hourglass icon. These pauses allowing the buffer to fill with additional data will be referred to as rebuffering events.

리버퍼링 이벤트들은 시청 경험을 중단시키기 때문에 시청자를 불만스럽게 만드는 것이다. 리버퍼링은 비디오가 중요한 장면 또는 중요한 대화의 중간에 일시정지될 때 훨씬 더 바람직하지 않을 수 있다. 따라서, 본 개시내용은 바람직하지 않은 시간에 비디오 스트림에서의 일시정지를 피하기 위해 필요한 리버퍼링 이벤트들에 대한 일시정지들의 배치를 최적화하는 방법들 및 시스템들에 관한 것이다. 다시 말해, 리버퍼링 이벤트들이 발생해야 하는 경우, 리버퍼링 포인트들은 무작위 대신에 사용자에 대해 덜 불편한 시간들에서 발생하도록 설정될 수 있다.Rebuffering events are frustrating for viewers because they disrupt the viewing experience. Rebuffering can be even more undesirable when a video is paused in the middle of an important scene or important dialogue. Accordingly, the present disclosure is directed to methods and systems for optimizing the placement of pauses for rebuffering events as needed to avoid pauses in a video stream at undesirable times. In other words, if rebuffering events are to occur, the rebuffering points can be set to occur at less inconvenient times for the user instead of randomly.

일 예에서, 리버퍼링 포인트들에 대한 위치들은 비디오 아이템과 같은 콘텐츠의 특정 단편 내에서 식별될 수 있다. 이러한 식별된 위치들은 지정된 리버퍼링 포인트들로 지칭될 것이다. 지정된 리버퍼링 포인트들은 리버퍼링에 대해 덜 불편한 비디오 아이템 내의 순간들 또는 시간들에 대응할 수 있다. 예를 들어, 지정된 리버퍼링 포인트들은 장면 변경들, 샷 변경들, 또는 대화에서의 일시정지들에 대응할 수 있다. 일 예에서, 버퍼 이용률이 너무 낮아지면, 버퍼 이용률이 리버퍼링 이벤트가 다른 방식으로 트리거링되는 포인트 아래에 아직 있지 않더라도, 비디오 아이템은 지정된 리버퍼링 포인트들 중 하나에서 일시정지될 수 있다. 다시 말해, 리버퍼링이 버퍼 고갈 시에 발생하는 비디오 스트리밍의 종래의 구현에서 리버퍼링을 위한 이러한 일시정지가 발생하기 전에 리버퍼링을 위해 비디오 스트림이 일시정지될 수 있다. 또한, 일부 예들에서, 데이터가 버퍼에 전달되는 레이트가 데이터가 소비되는 레이트보다 작은 식으로 스트리밍 서버로부터 클라이언트 시스템으로의 네트워크 접속이 있는 경우, 비디오 아이템은 버퍼 내의 데이터의 고갈로 인해 비디오 내의 명백하게 무작위인 포인트들 대신에 특정한 지정된 리버퍼링 포인트들에서 잠시 일시정지될 수 있다.In one example, locations for rebuffering points may be identified within a specific piece of content, such as a video item. These identified locations will be referred to as designated rebuffering points. Designated rebuffering points may correspond to moments or times within a video item that are less inconvenient for rebuffering. For example, designated rebuffering points may correspond to scene changes, shot changes, or pauses in dialogue. In one example, if the buffer utilization becomes too low, the video item may be paused at one of the designated rebuffering points, even if the buffer utilization is not yet below the point at which the rebuffering event is otherwise triggered. In other words, in conventional implementations of video streaming where rebuffering occurs upon buffer exhaustion, the video stream may be paused for rebuffering before this pause for rebuffering occurs. Also, in some examples, if there is a network connection from the streaming server to the client system such that the rate at which data is delivered to the buffer is less than the rate at which the data is consumed, the video item will be displayed at an apparently random location within the video due to exhaustion of data in the buffer. Instead of in points, it can be paused at specific designated rebuffering points.

도 1은 리버퍼링 이벤트의 최적 배치를 수행하는데 이용될 수 있는 예시적인 서버 컴퓨팅 시스템(102) 및 클라이언트 컴퓨팅 시스템(120)을 도시하는 도면이다. 서버 컴퓨팅 시스템(102)은 스트리밍 미디어 서비스에 의해 소유되거나, 동작되거나, 또는 다른 방식으로 관리되는 많은 서버들 중 하나일 수 있다. 서버 컴퓨팅 시스템(102)은 프로세서(108), 메모리(104), 리버퍼링 포인트 식별 모듈(110), 및 네트워크 인터페이스(112)를 포함한다. 서버 컴퓨팅 시스템(102)은, 예를 들어, MICROSOFT® OS, UNIX® OS, LINUX® OS, 또는 다른 적절한 서버 기반 운영 체제(102)와 같은 서버 운영 체제(OS)를 동작시키는 독립형 및 기업급 서버들을 추가로 포함할 수 있다. 서버 컴퓨팅 시스템(102)은 콘텐츠 배포 네트워크 내의 서버일 수 있다. 도 1에 예시된 서버 컴퓨팅 시스템(102)은 다른 방식들로 배치될 수 있고, 이러한 서버들에 의해 수행되는 동작들 및/또는 제공되는 서비스들은 주어진 구현을 위해 조합 또는 분리될 수 있고 더 많거나 더 적은 수의 개별 서버 디바이스들에 의해 수행될 수 있다는 것을 이해해야 한다.1 is a diagram illustrating an exemplary server computing system 102 and client computing system 120 that may be used to perform optimal placement of rebuffering events. Server computing system 102 may be one of many servers owned by, operated by, or otherwise managed by a streaming media service. The server computing system 102 includes a processor 108 , memory 104 , a rebuffering point identification module 110 , and a network interface 112 . The server computing system 102 is a stand-alone and enterprise-class server running a server operating system (OS) such as, for example, MICROSOFT® OS, UNIX® OS, LINUX® OS, or other suitable server-based operating system 102. may additionally include. Server computing system 102 may be a server within a content distribution network. The server computing system 102 illustrated in FIG. 1 can be deployed in different ways, and the operations performed and/or services provided by these servers can be combined or separated for a given implementation and more or more It should be appreciated that it may be performed by fewer individual server devices.

프로세서(108)는 하나 이상의 개별 프로세서 또는 처리 코어를 포함할 수 있다. 유사하게, 메모리(104)는 상이한 타입들의 하나 이상의 메모리 디바이스를 포함할 수 있다. 메모리(104)는 프로세서(108) 상에서의 실행을 위한 기계 판독가능한 명령어들을 저장할 수 있다. 이러한 명령어들은 운영 체제뿐만 아니라 다양한 애플리케이션들과 연관될 수 있다. 또한, 메모리(104)는 스트리밍을 위해 비디오 아이템들(106)을 저장할 수 있다. 이러한 비디오 아이템들(106)은 예를 들어, 전체 길이의 영화들, 시리즈의 에피소드들, 또는 영화 또는 에피소드의 부분들을 포함할 수 있다. 다른 타입들의 비디오 아이템들도 고려된다. 비디오 아이템들(106)은 저장 및/또는 스트리밍에 적합한 기계 판독가능한 포맷으로 인코딩될 수 있다. 더 구체적으로, 비디오 아이템들(106)은 일련의 프레임들을 지정하는 데이터 세트를 포함할 수 있고, 각각의 프레임은 이미지를 획득하도록 처리될 수 있는 이미지 또는 정보를 포함한다. 프레임들은 순차적으로 표시될 때, 비디오를 생성한다. 비디오 아이템들(106)은 데이터를 압축하는 다양한 기술들을 이용하여 인코딩될 수 있다. 비디오 아이템들(106)을 포함하는 데이터는 그 비디오 데이터에 대응하는 오디오 데이터를 또한 포함할 수 있다. 즉, 오디오 데이터는 비디오 데이터와 시간적으로 정렬된다.Processor 108 may include one or more separate processors or processing cores. Similarly, memory 104 may include one or more memory devices of different types. Memory 104 may store machine readable instructions for execution on processor 108 . These instructions may be associated with various applications as well as the operating system. Memory 104 may also store video items 106 for streaming. These video items 106 may include, for example, full-length movies, episodes of a series, or portions of a movie or episode. Other types of video items are also contemplated. Video items 106 may be encoded in a machine-readable format suitable for storage and/or streaming. More specifically, video items 106 may include a data set specifying a series of frames, each frame containing an image or information that may be processed to obtain an image. When the frames are presented sequentially, they create a video. Video items 106 may be encoded using various techniques for compressing data. Data comprising video items 106 may also include audio data corresponding to the video data. That is, audio data is temporally aligned with video data.

언급된 바와 같이, 메모리(104)는 복수의 메모리 모듈을 포함할 수 있다. 메모리 모듈들은 다양한 타입들일 수 있다. 메모리(104)의 일부는 랜덤 액세스 메모리(RAM)와 같은 휘발성 메모리일 수 있다. 메모리(104)의 일부는 하드 디스크 드라이브들 또는 고체 상태 드라이브들(SSD들)과 같은 비휘발성 메모리일 수 있다. 애플리케이션들을 형성하는 기계 판독가능한 명령어들을 저장하는 것에 더하여, 메모리(104)는 분석 및 스트리밍을 위해 비디오 아이템들(106)을 저장할 수 있다. 메모리(104)는 또한, 지정된 리버퍼링 포인트들에 대응하는 비디오 아이템들(106) 내의 위치들 또는 시간들과 같은, 이러한 분석의 결과들을 저장할 수 있다.As noted, memory 104 may include a plurality of memory modules. Memory modules can be of various types. A portion of memory 104 may be volatile memory, such as random access memory (RAM). Some of the memory 104 may be non-volatile memory, such as hard disk drives or solid state drives (SSDs). In addition to storing machine readable instructions forming applications, memory 104 may store video items 106 for analysis and streaming. Memory 104 may also store results of this analysis, such as locations or times within video items 106 corresponding to designated rebuffering points.

서버 컴퓨팅 시스템(102)은 서버 컴퓨팅 시스템(102)이 인터넷과 같은 네트워크(114)를 통해 다른 컴퓨팅 시스템들과 통신할 수 있게 하는 네트워크 인터페이스(112)를 포함한다. 네트워크 인터페이스(112)는 네트워크(114)를 통한 전송을 위해 데이터를 인코딩하기 위한 하드웨어, 소프트웨어, 또는 이 둘의 조합을 포함한다. 네트워크 인터페이스(112)는 이더넷, 광섬유, 및 무선 통신 기술들과 같은 다양한 통신 기술들을 이용할 수 있다.The server computing system 102 includes a network interface 112 that allows the server computing system 102 to communicate with other computing systems over a network 114, such as the Internet. Network interface 112 includes hardware, software, or a combination of both to encode data for transmission over network 114 . Network interface 112 may utilize various communication technologies such as Ethernet, fiber optic, and wireless communication technologies.

일부 예들에서, 비디오 아이템들(106)을 저장하는 서버 컴퓨팅 시스템(102)은 리버퍼링 포인트들을 식별하기 위해 비디오 아이템들(106)의 분석을 수행할 수 있다. 이러한 예들에서, 서버 컴퓨팅 시스템(102)은 리버퍼링 포인트 식별 모듈(110)을 포함할 수 있다. 리버퍼링 포인트 식별 모듈(110)은 비디오 아이템들(106)을 나타내는 데이터를 분석하고 리버퍼링 포인트들의 배치를 식별하는 하드웨어, 소프트웨어, 또는 이 둘의 조합을 포함한다. 식별된 리버퍼링 포인트들은 다양한 방식들로 표현될 수 있다. 일 예에서, 식별된 리버퍼링 포인트들은 비디오 아이템들(106) 내의 시점들(예를 들어, 분들, 초들 및 몇 분의 1초를 포함하는 타임스탬프)로서 표현될 수 있다. 일부 예들에서, 리버퍼링 포인트들에 대응하는 프레임들은 이러한 프레임들이 리버퍼링 포인트들에 대응하는 것을 표시하는 메타데이터로 태깅될 수 있다. 식별된 리버퍼링 포인트들의 배치는 매니페스트 파일에서 또는 매니페스트 파일 내에 포인팅된 메타데이터 파일에서와 같은 스트리밍의 처음에 또는 스트리밍 프로세스 동안 클라이언트 컴퓨팅 시스템(120)에 전송될 수 있다. 매니페스트 파일은 또한 동일한 시청각 콘텐츠에 대해 사용자에게 이용가능한 하나 이상의 스트림의 위치를 포인팅할 수 있고, 스트림들은 상이한 비트레이트들 및/또는 품질들을 갖는다. 서버 컴퓨팅 시스템(102)에의 네트워크(114)를 통한 고품질 접속을 갖는 클라이언트 컴퓨팅 시스템(120)은 매니페스트 파일에서 식별된 복수의 스트림 중에서 고품질 스트림을 선택할 수 있다. 저품질(예를 들어, 저 대역폭) 접속을 갖는 클라이언트 컴퓨팅 시스템(120)은 저품질 스트림을 선택할 수 있다. 네트워크(114)를 통한 접속의 품질이 변하는 경우, 클라이언트 컴퓨팅 시스템(120)은 사용자에게 최적의 경험을 제공하기 위해 적절하게 상이한 스트림에 액세스하기 시작할 수 있다. 리버퍼링 포인트들의 배치는 개별 프레임들에서, 또는 별개의 파일에서와 같이 스트림들에 포함된 데이터에 표시될 수 있다. 예를 들어, 리버퍼링 포인트들은 H.264 코덱들 또는 캡셔닝 또는 서술적 텍스트와 같은 보충 정보를 데이터 스트림으로 전송하는 다른 비교가능한 방법들에 의해 포함되는 것과 같이 SEI(Supplemental Enhancement Information) 메시지들에 포함될 수 있다.In some examples, server computing system 102 that stores video items 106 can perform analysis of video items 106 to identify rebuffering points. In these examples, server computing system 102 may include rebuffering point identification module 110 . The rebuffering point identification module 110 includes hardware, software, or a combination of the two that analyzes the data representing the video items 106 and identifies the placement of rebuffering points. Identified rebuffering points can be expressed in a variety of ways. In one example, the identified rebuffering points may be represented as points in time within video items 106 (eg, a timestamp including minutes, seconds, and fractions of a second). In some examples, frames corresponding to rebuffering points may be tagged with metadata indicating that these frames correspond to rebuffering points. The identified placement of rebuffering points may be transmitted to the client computing system 120 at the beginning of streaming or during the streaming process, such as in a manifest file or in a metadata file pointed to within the manifest file. The manifest file may also point to the location of more than one stream available to the user for the same audiovisual content, the streams having different bitrates and/or qualities. A client computing system 120 having a high-quality connection over network 114 to server computing system 102 can select a high-quality stream from among a plurality of streams identified in the manifest file. A client computing system 120 having a low quality (eg, low bandwidth) connection may select a low quality stream. When the quality of the connection over the network 114 changes, the client computing system 120 may begin accessing different streams as appropriate to provide the user with an optimal experience. The placement of the rebuffering points may be indicated in the data contained in the streams, such as in individual frames or in a separate file. For example, rebuffering points may be included in Supplemental Enhancement Information (SEI) messages, such as those included by H.264 codecs or other comparable methods of transmitting supplemental information, such as captioning or descriptive text, into a data stream. can be included

일부 예들에서, 리버퍼링 포인트 식별 모듈(110)은 비디오 아이템(106)이 스트리밍되기 전에 비디오 아이템(106) 내의 리버퍼링 포인트들을 식별한다. 예를 들어, 비디오 아이템(106)이 단지 저장되고 현재 스트리밍되고 있지 않은 경우, 리버퍼링 포인트 식별 모듈(110)은 그 시간을 이용하여 비디오 아이템(106)의 분석을 수행함으로써 리버퍼링 포인트들을 결정할 수 있다. 일부 실시예들에서, 분석은 비디오 아이템(106)이 고충실도 저장소에 최적화된 포맷으로부터 비디오를 스트리밍하기에 적합한 압축 포맷으로 인코딩되고 있을 때 수행될 수 있다. 일부 예들에서, 리버퍼링 포인트들은 비디오 아이템(106)이 서버 컴퓨팅 시스템(102)에 업로드되기 전에 식별될 수 있다. 일부 예들에서, 리버퍼링 포인트들은 비디오 아이템(106)을 저장하는 서버 컴퓨팅 시스템(102)과 비디오 아이템(106)을 소비하는 클라이언트 컴퓨팅 시스템(120) 사이의 네트워크(114) 내에 위치된 별개의 서버(도시되지 않음)에 의해 식별될 수 있다.In some examples, rebuffering point identification module 110 identifies rebuffering points within video item 106 before video item 106 is streamed. For example, if video item 106 is just stored and is not currently being streamed, rebuffering point identification module 110 can use that time to perform an analysis of video item 106 to determine rebuffering points. there is. In some embodiments, analysis may be performed when video item 106 is being encoded into a compressed format suitable for streaming video from a format optimized for high-fidelity storage. In some examples, rebuffering points may be identified before video item 106 is uploaded to server computing system 102 . In some examples, the rebuffering points are separate servers located within the network 114 between the server computing system 102 that stores the video item 106 and the client computing system 120 that consumes the video item 106. not shown).

스트리밍 프로세스는 비디오 아이템들(106) 중 선택된 하나를 나타내는 데이터를 서버 컴퓨팅 시스템(102)으로부터 인터넷과 같은 네트워크(114)를 통해 클라이언트 컴퓨팅 시스템(120)으로 전송하는 것을 포함한다. 이 예에서, 클라이언트 컴퓨팅 시스템(120)은 프로세서(128), 메모리(122), 네트워크 인터페이스(126), 리버퍼링 포인트 식별 모듈(130), 및 디스플레이 시스템(132)을 포함한다. 일부 예들에서, 클라이언트 컴퓨팅 시스템(120)은, 예를 들어, 데스크톱, 랩톱, 비디오 콘솔, 또는 태블릿 컴퓨팅 디바이스일 수 있다.The streaming process involves transmitting data representing a selected one of the video items 106 from a server computing system 102 to a client computing system 120 over a network 114 such as the Internet. In this example, client computing system 120 includes processor 128 , memory 122 , network interface 126 , rebuffering point identification module 130 , and display system 132 . In some examples, client computing system 120 may be, for example, a desktop, laptop, video console, or tablet computing device.

서버(102)의 메모리(104)와 같이, 클라이언트 컴퓨팅 시스템(120)의 메모리(122)는 상이한 타입들의 하나 이상의 메모리 디바이스를 포함할 수 있다. 메모리(104)는 프로세서(128) 상에서의 실행을 위한 기계 판독가능한 명령어들을 저장할 수 있다. 이러한 명령어들은 운영 체제뿐만 아니라 다양한 애플리케이션들과 연관될 수 있다. 또한, 메모리(122)는 버퍼(124)를 포함할 수 있다. 버퍼(124)는 데이터가 디스플레이 시스템(132)을 통해 사용자(116)에게의 표시를 위해 처리되기 전에 네트워크(114)를 통해 수신되는 데이터를 일시적으로 저장하는데 이용되는 메모리의 일부이다. 데이터가 소비되는 레이트는 현재 스트림의 해상도 및/또는 비트레이트에 의존할 수 있다. 예를 들어, 스트림의 해상도 또는 비트레이트가 비교적 높으면, 비디오를 생성하는데 더 많은 데이터가 이용된다. 따라서, 더 많은 데이터가 비디오 아이템을 사용자(116)에게 제시하기 위해 특정 기간 내에 소비된다. 반대로, 스트림의 해상도 또는 비트레이트가 비교적 낮으면, 더 적은 데이터가 비디오를 생성하는데 이용된다. 따라서, 비디오를 사용자(116)에게 제시하기 위해 특정 기간 내에 더 적은 데이터가 소비된다. 따라서, 버퍼(124)의 크기는 선택된 비디오 아이템 스트림의 비트레이트에 기반하여 설정되거나 적응될 수 있다.Like memory 104 of server 102 , memory 122 of client computing system 120 may include one or more memory devices of different types. Memory 104 may store machine readable instructions for execution on processor 128 . These instructions may be associated with various applications as well as the operating system. Memory 122 may also include a buffer 124 . Buffer 124 is a portion of memory used to temporarily store data received over network 114 before the data is processed for display via display system 132 to user 116 . The rate at which data is consumed may depend on the resolution and/or bitrate of the current stream. For example, if the resolution or bitrate of the stream is relatively high, more data is used to create the video. Accordingly, more data is consumed within a certain period of time to present the video item to user 116. Conversely, if the resolution or bitrate of the stream is relatively low, less data is used to create the video. Thus, less data is consumed within a certain period of time to present the video to user 116. Accordingly, the size of the buffer 124 may be set or adapted based on the bitrate of the selected video item stream.

일부 예들에서, 클라이언트 컴퓨팅 시스템(120)은 비디오 아이템(106) 내의 리버퍼링 포인트들의 식별을 담당할 수 있다. 이러한 경우들에서, 클라이언트 컴퓨팅 시스템(120)은 리버퍼링 포인트 식별 모듈(130)을 포함한다. 일부 예들에서, 리버퍼링 포인트 식별 모듈(130)은 리버퍼링 포인트들을 식별하기 위해 콘텐츠(106)가 수신될 때 이를 분석하도록 구성될 수 있다. 다시 말해, 리버퍼링 포인트들은 클라이언트 컴퓨팅 시스템(120) 상에서 인-시튜로 식별된다. 이것은 서버 컴퓨팅 시스템(102)에 의한 리버퍼링 포인트 식별과 연관된 분석 및 메타데이터 생성에 대한 필요성을 제거할 수 있다.In some examples, client computing system 120 may be responsible for identifying rebuffering points within video item 106 . In these cases, the client computing system 120 includes a rebuffering point identification module 130 . In some examples, the rebuffering point identification module 130 can be configured to analyze the content 106 as it is received to identify rebuffering points. In other words, the rebuffering points are identified in-situ on the client computing system 120 . This may eliminate the need for analysis and metadata generation associated with identifying rebuffering points by the server computing system 102 .

서버 시스템(102)의 네트워크 인터페이스(112)와 같이, 클라이언트 컴퓨팅 시스템(120)의 네트워크 인터페이스(126)는 네트워크(114)를 통한 통신들을 위해 데이터를 인코딩 및 디코딩하기 위한 하드웨어, 소프트웨어, 또는 이 둘의 조합을 포함한다. 이 데이터는 네트워크 인터페이스(126)를 통해 네트워크(114) 상으로 서버 시스템(102)으로부터 수신되고, 데이터는 버퍼(124) 내에 배치된다.Like network interface 112 of server system 102, network interface 126 of client computing system 120 may be hardware, software, or both for encoding and decoding data for communications over network 114. includes a combination of This data is received from server system 102 over network 114 via network interface 126 and the data is placed into buffer 124 .

디스플레이 시스템(132)은 비디오 아이템들을 사용자(116)에게 제시하는데 이용되는 컴포넌트들을 포함한다. 예를 들어, 디스플레이 시스템(132)은 비디오 및 오디오 처리 하드웨어 및 소프트웨어를 포함할 수 있다. 디스플레이 시스템(132)은 또한 모니터 또는 스크린과 같은 비디오 출력 디바이스를 포함할 수 있다. 디스플레이 시스템(132)은 또한 스피커들 또는 헤드폰들과 같은 오디오 출력 디바이스들 또는 오디오 출력 디바이스들과 통신하도록 구성된 접속들을 포함할 수 있다.Display system 132 includes components used to present video items to user 116 . For example, display system 132 may include video and audio processing hardware and software. Display system 132 may also include a video output device such as a monitor or screen. Display system 132 may also include audio output devices, such as speakers or headphones, or connections configured to communicate with audio output devices.

도 2는 지정된 리버퍼링 포인트들(202, 204, 206, 208)을 도시하는 도면이다. 이 예에 따르면, 비디오 아이템(200)은 장면 변경들에 대응하는 리버퍼링 포인트들(202), 샷 변경들에 대응하는 리버퍼링 포인트들(204), 대화 일시정지들에 대응하는 리버퍼링 포인트들(206), 및 낮은 밝기와 같은 특정 시각적 특성들을 갖는 이미지들에 대응하는 리버퍼링 포인트들(208)을 포함한다. 이벤트들을 리버퍼링하기 위한 적합한 위치들을 미리 결정하는데 다른 기준들이 이용될 수 있다.2 is a diagram showing designated rebuffering points 202, 204, 206, 208; According to this example, a video item 200 has rebuffering points 202 corresponding to scene changes, rebuffering points 204 corresponding to shot changes, and rebuffering points corresponding to dialog pauses. 206, and rebuffering points 208 corresponding to images with specific visual characteristics, such as low brightness. Other criteria may be used to predetermine suitable locations for rebuffering events.

일부 예들에서, 리버퍼링 포인트 식별 모듈(110, 130)은 비디오 아이템(200)을 나타내는 데이터를 분석하고 각각의 장면 변경을 식별할 수 있다. 장면은 일반적으로 단일 위치에서의 특정 동작을 수반하고 연속적인 기간을 커버하는 필름의 섹션을 지칭한다. 리버퍼링 포인트 식별 모듈(110, 130)은 다양하고 상이한 수단을 통해 장면 변경들을 검출할 수 있다. 일 예에서, 이미지 내의 컬러들을 나타내는 데이터가 분석되어 전체 컬러 외관이 하나의 프레임으로부터 다음 프레임으로 변경된다는 것을 결정할 수 있다. 예를 들어, 실외 장면은 이미지 내에 다양한 컬러들을 가질 수 있는 반면, 실내 장면에 대한 장면 변경은 상이하고 다양한 컬러들을 가질 수 있다. 추가적으로, 오디오 부분을 나타내는 데이터가 분석되어 비디오의 오디오 분위기가 변경되었다고 결정하고, 이에 따라 장면 변경을 제안할 수 있다. 예를 들어, 캐릭터가 자동차를 운전하고 있는 장면은 자동차 및 교통의 사운드들을 포함할 수 있다. 그 다음, 이 장면은 캐릭터들이 서로 대화하고 있는 조용한 방 내의 장면으로 변경될 수 있다. 오디오 분위기에서의 이러한 변경은 장면 변경을 식별하는 것을 도울 수 있다. 장면 변경들은 전형적으로 스토리에서의 자연스런 이동을 제시하기 때문에, 리버퍼링 이벤트에 대해서는 덜 불편할 수 있다. 따라서, 장면 변경들에 대응하는 프레임들은 리버퍼링 포인트들(202)로서 식별될 수 있다.In some examples, rebuffering point identification module 110, 130 may analyze the data representing video item 200 and identify each scene change. A scene generally refers to a section of film that involves a specific action in a single location and covers a continuous period of time. The rebuffering point identification module 110, 130 may detect scene changes through a variety of different means. In one example, data representative of colors within an image may be analyzed to determine that the overall color appearance changes from one frame to the next. For example, an outdoor scene may have various colors in the image, while a scene change to an indoor scene may have different and varied colors. Additionally, data representative of the audio portion may be analyzed to determine that the audio ambiance of the video has changed, and to suggest a scene change accordingly. For example, a scene in which a character is driving a car may include sounds of cars and traffic. This scene can then be changed to a scene in a quiet room where the characters are talking to each other. This change in audio ambience can help identify a scene change. Since scene changes typically present a natural movement in the story, it may be less inconvenient for a rebuffering event. Accordingly, frames corresponding to scene changes may be identified as rebuffering points 202 .

일부 예들에서, 리버퍼링 포인트 식별 모듈(110, 130)은 본 명세서에서 추가로 설명되는 바와 같이 비디오 아이템(200)을 나타내는 데이터를 분석하고 각각의 샷 변경을 식별할 수 있다. 샷은 일반적으로 하나의 연속적인 카메라 롤을 포함하는 비디오의 일부를 나타낼 수 있다. 샷은 또한 일반적으로 2개의 편집 또는 컷들 사이의 연속적인 영상을 나타낼 수 있다. 리버퍼링 포인트 식별 모듈(110, 130)은 다양한 방식들로 샷들을 검출할 수 있다. 일 예에서, 각각의 프레임 내의 특징들이 분석된다. 이러한 특징들은 프레임의 컬러링 또는 프레임의 밝기를 포함할 수 있다. 또한, 이미지 처리 알고리즘들은 복수의 프레임에 걸쳐 이러한 특징들을 추적할 수 있는 형상들, 에지들 및 코너들과 같은 특징들을 식별할 수 있다. 특정 프레임이 이전 프레임과 실질적으로 상이한 경우, 컷이 발생했다고 결정될 수 있다. 즉, 이전 샷이 종료되고, 새로운 샷이 시작되었다. 때때로, 샷 변경들은 대화의 중간에 또는 제트기가 지나가는 것과 같은 다른 연속적인 사운드 소스의 중간에 발생한다. 일부 경우들에서, 샷 변경들은 대화의 중간에 발생하지 않는다. 따라서, 대화 동안에 또는 연속적인 사운드 소스 동안에 발생하는 샷 변경들과 대화들 사이에서 또는 연속적인 사운드 소스들 없이 발생하는 샷 변경들 사이에서 구별이 이루어질 수 있다. 대화들 또는 연속적인 사운드 소스들 사이에서 발생하는 샷 변경에서의 리버퍼링 이벤트는 사용자(116)에 의해 덜 불편하게 인지될 수 있다. 따라서, 이러한 샷 변경들에 대응하는 프레임들은 리버퍼링 포인트들(204)로서 식별될 수 있다.In some examples, rebuffering point identification module 110, 130 may analyze data representative of video item 200 and identify each shot change, as described further herein. A shot can represent a portion of a video, typically comprising one continuous camera roll. A shot can also generally refer to a continuous picture between two edits or cuts. The rebuffering point identification module 110, 130 may detect shots in a variety of ways. In one example, features within each frame are analyzed. These characteristics may include the coloring of the frame or the brightness of the frame. Also, image processing algorithms can identify features such as shapes, edges and corners that can track these features across multiple frames. If a particular frame differs substantially from a previous frame, it may be determined that a cut has occurred. That is, the previous shot has ended and a new shot has started. Occasionally, shot changes occur in the middle of dialogue or another continuous sound source, such as a jet passing by. In some cases, shot changes do not occur in the middle of a conversation. Thus, a distinction can be made between shot changes that occur during dialogue or during continuous sound sources and shot changes that occur between dialogues or without continuous sound sources. A rebuffering event in conversations or shot changes that occur between successive sound sources may be perceived as less uncomfortable by user 116 . Accordingly, frames corresponding to these shot changes may be identified as rebuffering points 204 .

일부 예들에서, 리버퍼링 포인트 식별 모듈(110, 130)은 비디오 아이템(200) 내에서의 오디오 데이터를 분석하고 대화에서의 일시정지들을 식별할 수 있다. 대화는 적절한 주파수 범위 내의 오디오 트랜션트들의 검출에 의해 또는 음성 활성도 검출기에 의해 검출될 수 있다. 다양한 기능들과 오디오 특징 추출을 이용하여 데이터를 분석하고 캐릭터들이 말하는 시간과 그렇지 않은 시간을 결정할 수 있다. 일부 예들에서, 대화의 중간에서의 일시정지의 길이가 미리 정의된 임계값보다 높으면, 그 일시정지 내의 일부 시점은 리버퍼링 포인트(206)로서 식별될 수 있다.In some examples, rebuffering point identification module 110, 130 may analyze audio data within video item 200 and identify pauses in the conversation. Conversation may be detected by detection of audio transients within the appropriate frequency range or by a voice activity detector. Using various functions and audio feature extraction, you can analyze the data and determine when characters speak and when they don't. In some examples, if the length of a pause in the middle of a conversation is higher than a predefined threshold, some point within that pause may be identified as a rebuffering point 206 .

일부 예들에서, 리버퍼링 포인트 식별 모듈(110, 130)은 시각적 속성들이 낮은 밝기 또는 상대적 낮은 밝기와 같은 지정된 특성들을 갖는 포인트들에 대해 비디오 아이템(200)을 나타내는 데이터를 분석할 수 있다. 예를 들어, 비디오 아이템의 시각적으로 더 어두운 부분은 이미지의 전체 밝기가 절대 임계값 아래이거나 이미지의 밝기가 선행 이미지 또는 프레임에 기반한 임계값 아래인 경우의 비디오 아이템(200) 내의 임의의 포인트로서 정의될 수 있다. 이러한 부분들 동안, 시청자에게 특히 관심이 있는 비디오 내의 독특한 특징들이 더 적을 수 있다. 따라서, 이러한 시각적으로 더 어두운 부분들은 리버퍼링 이벤트에 대해 덜 불편할 수 있다. 따라서, 이러한 부분들은 리버퍼링 포인트들(208)로서 식별될 수 있다.In some examples, rebuffering point identification module 110, 130 may analyze data representing video item 200 for points whose visual properties have specified characteristics, such as low brightness or relatively low brightness. For example, a visually darker portion of a video item is defined as any point within the video item 200 where the overall brightness of the image is below an absolute threshold or the brightness of the image is below a threshold based on the preceding image or frame. It can be. During these portions, there may be fewer distinctive features within the video that are of particular interest to the viewer. Thus, these visually darker portions may be less inconvenient for rebuffering events. Accordingly, these portions may be identified as rebuffering points 208 .

일부 예들에서, 리버퍼링 포인트로서 식별되는 비디오 아이템(200) 내의 단일의 시점, 단일의 타임스탬프, 또는 단일의 프레임 대신에, 리버퍼링 시간 범위(210)가 식별될 수 있다. 예를 들어, 특정 시간 범위(210)가 대화에서의 일시정지, 분위기 변경, 무음, 또는 루핑, 시간-신장 또는 유사한 사운드의 합성을 용이하게 하는 임의의 다른 사운드와 같은 청각적 마커에 대응하는 것으로 결정될 수 있다. 일부 예들에서, 시간 범위(210)는 비디오 아이템(200)의 시각적으로 더 어두운 부분과 같은 시각적 마커에 대응할 수 있다. 이러한 경우들에서, 그 시간 범위(210) 내의 임의의 기간은 리버퍼링 이벤트에 대해 덜 불편한 것으로 고려될 수 있다.In some examples, instead of a single point in time, single timestamp, or single frame within video item 200 identified as a rebuffering point, a rebuffering time range 210 may be identified. For example, certain time spans 210 are found to correspond to auditory markers such as pauses in conversation, mood changes, silence, or any other sound that facilitates looping, time-stretching, or synthesis of similar sounds. can be determined In some examples, time range 210 may correspond to a visual marker, such as a visually darker portion of video item 200 . In such cases, any period within that time range 210 may be considered less inconvenient for the rebuffering event.

일부 예들에서, 특정 타입들의 리버퍼링 포인트들이 다른 것들에 비해 선호될 수 있다. 예를 들어, 가능한 경우, 리버퍼링 이벤트가 샷 변경 동안보다는 장면 변경 동안에 일시정지하는 것이 더 바람직할 수 있다. 유사하게, 리버퍼링 이벤트가 대화에서의 일시정지 동안보다는 장면 변경 동안에 일시정지하는 것이 더 바람직할 수 있다. 따라서, 리버퍼링 포인트들은 순위 값을 할당받을 수 있다. 리버퍼링 포인트가 리버퍼링 이벤트에 대해 이용되어야 하는 때를 결정하는 로직은 바로 옆 리버퍼링 포인트의 순위 값을 고려할 수 있다. 예를 들어, 리버퍼링 이벤트에 대한 필요성이 더 즉각적이면, 시각적으로 더 어두운 부분들에 대응하는 것들 또는 대화에서의 일시정지들과 같은 더 낮은 순위의 리버퍼링 포인트들이 리버퍼링 이벤트들에 이용될 수 있다. 그러나, 리버퍼링 이벤트에 대한 필요성이 덜 즉각적이면, 장면 변경과 같은 더 높은 순위의 리버퍼링 포인트들만이 리버퍼링 이벤트에 이용될 수 있다. 일부 실시예들에서, 리버퍼링 이벤트는 어두운 장면 변경에서와 같이, 즉 오디오 데이터에서의 무음과 함께 장면이 흑색으로 되거나 흑색으로 희미해지는 특정 리버퍼링 포인트들에서 디폴트로 발생할 수 있다. 리버퍼링은 버퍼 내의 데이터의 양이 10초, 30초, 또는 1분과 같은 특정 임계값을 초과하지 않는 한 수행될 수 있다. 이러한 경우들에서, 리버퍼링은 짧은 시간량 동안 수행될 수 있다. 예를 들어, 리버퍼링은 1초 미만 또는 1/2초 미만 동안 수행될 수 있다. 사용자(116)가 일시정지를 인지할 가능성이 없을 때 이러한 일시정지들을 포함하는 것은, 셀 타워들 사이에서 전환할 때와 같이, 네트워크 접속에서의 임의의 하락들을 예상하여 버퍼가 확장되게 할 수 있다.In some instances, certain types of rebuffering points may be preferred over others. For example, where possible, it may be more desirable for the rebuffering event to pause during scene changes rather than during shot changes. Similarly, it may be more desirable for a rebuffering event to pause during a scene change rather than during a pause in dialogue. Accordingly, rebuffering points may be assigned a ranking value. The logic that determines when a rebuffering point should be used for a rebuffering event may take into account the rank value of the immediately adjacent rebuffering point. For example, if the need for a rebuffering event is more immediate, lower order rebuffering points, such as pauses in dialogue or those corresponding to visually darker parts, may be used for rebuffering events. there is. However, if the need for the rebuffering event is less immediate, only higher order rebuffering points such as scene changes may be used for the rebuffering event. In some embodiments, the rebuffering event may occur by default at certain rebuffering points, such as at a dark scene change, ie where the scene goes black or fades to black with silence in the audio data. Rebuffering can be performed as long as the amount of data in the buffer does not exceed a certain threshold, such as 10 seconds, 30 seconds, or 1 minute. In these cases, rebuffering may be performed for a short amount of time. For example, rebuffering can be performed for less than 1 second or less than 1/2 second. Including these pauses when user 116 is unlikely to notice a pause can allow the buffer to expand in anticipation of any drops in network connectivity, such as when switching between cell towers. .

리버퍼링 포인트들의 이용은 비디오 스트림을 수신하는 클라이언트 컴퓨팅 시스템(120)과 연관된 다양한 조건들에 따라 달라질 수 있다. 예를 들어, 다양한 네트워크 조건들이 리버퍼링 포인트들의 이용에 영향을 미칠 수 있다. 스트리밍 서비스 제공자와 클라이언트 컴퓨팅 시스템(120) 사이의 네트워크 접속이 특정 해상도에서 스트리밍하기 위한 이상적인 레이트보다 느린 경우, 클라이언트 컴퓨팅 시스템(120)은 버퍼 이용률을 원하는 임계값보다 높게 유지하기 위해 특정한 리버퍼링 포인트들에서 일시정지하도록 구성될 수 있다. 예를 들어, 클라이언트 컴퓨팅 시스템(120)은 버퍼 이용률이 원하는 임계값 아래로 떨어지지 않도록 보장하기 위해 각각의 장면 변경에서 몇 초 동안 또는 1초 미만 동안 일시정지할 수 있다. 일부 예들에서, 네트워크를 통해 클라이언트 컴퓨팅 시스템(120)으로 콘텐츠가 전달될 수 있는 레이트가 더 낮으면, 클라이언트 컴퓨팅 시스템은 또한 대화에서의 일시정지들과 같은 더 낮은 순위의 리버퍼링 포인트들에서도 일시정지할 수 있다.The use of rebuffering points may depend on various conditions associated with the client computing system 120 receiving the video stream. For example, various network conditions may affect the use of rebuffering points. If the network connection between the streaming service provider and the client computing system 120 is slower than the ideal rate for streaming at a particular resolution, the client computing system 120 sets certain rebuffering points to keep the buffer utilization above a desired threshold. It can be configured to pause at. For example, the client computing system 120 may pause for a few seconds or less than a second at each scene change to ensure that the buffer utilization does not drop below a desired threshold. In some examples, if the rate at which content can be delivered over the network to client computing system 120 is lower, then the client computing system also pauses at lower order rebuffering points, such as pauses in a conversation. can do.

일부 예들에서, 각각의 일시정지의 길이는 비디오 아이템(200)에 대한 데이터가 클라이언트 컴퓨팅 시스템(120)으로 전달되고 있는 현재 레이트에 의존할 수 있다. 일반적으로, 더 낮은 레이트는 리버퍼링 포인트들에서 더 긴 기간들 동안 일시정지함으로써 처리될 수 있다. 반대로, 더 높은 레이트는 리버퍼링 포인트들에서 더 짧은 기간들 동안 일시정지함으로써 처리될 수 있다. 이러한 일시정지들의 길이는 스트리밍 프로세스 동안 네트워크 조건들이 변경됨에 따라 동적으로 조정될 수 있다. 예를 들어, 네트워크 조건들이 개선되면, 이러한 일시정지들의 길이는 단축될 수 있다. 일부 예들에서, 네트워크 조건들이 실질적으로 개선되는 경우, 버퍼 이용률을 원하는 임계값보다 높게 유지하기 위해 일시정지들이 필요하지 않다고 결정될 수 있다. 반대로, 네트워크 조건들이 저하되면, 리버퍼링 포인트들에서 더 긴 일시정지들이 적용될 수 있다. 따라서, 리버퍼링의 현재 레이트는 리버퍼링에 이용되는 리버퍼링 포인트들의 타입들뿐만 아니라 리버퍼링에 이용되는 시간 길이들을 결정하는데 이용될 수 있다.In some examples, the length of each pause can depend on the current rate at which data for video item 200 is being communicated to client computing system 120 . In general, lower rates can be handled by pausing for longer periods at rebuffering points. Conversely, higher rates can be handled by pausing for shorter periods at rebuffering points. The length of these pauses can be dynamically adjusted as network conditions change during the streaming process. For example, as network conditions improve, the length of these pauses may be shortened. In some examples, it may be determined that no pauses are needed to keep the buffer utilization above a desired threshold when network conditions substantially improve. Conversely, when network conditions deteriorate, longer pauses at rebuffering points may be applied. Thus, the current rate of rebuffering can be used to determine the types of rebuffering points used for rebuffering as well as the lengths of time used for rebuffering.

리버퍼링 이벤트들을 위한 일시정지들의 길이는 또한 특정한 리버퍼링 포인트의 순위 또는 타입에 따라 달라질 수 있다. 예를 들어, 장면 변경에 대응하는 것과 같은 더 높은 순위의 리버퍼링 포인트는 더 긴 일시정지들을 가질 수 있는데, 그 이유는 이러한 포인트들이 시청 경험에 덜 거슬리기 때문이다. 반대로, 대화에서의 갭들과 같은 더 낮은 순위의 리버퍼링 포인트들은 더 짧은 일시정지들을 가질 수 있는데, 그 이유는 이러한 포인트들이 시청 경험에 약간 더 거슬릴 수 있기 때문이다. 예를 들어, 특정 조건들이 주어지면, 1초의 일시정지가 장면 변경 동안 이용될 수 있는 반면, 500밀리초 미만의 일시정지는 대화에서의 갭 동안 이용될 수 있다.The length of pauses for rebuffering events may also depend on the rank or type of particular rebuffering point. For example, higher order rebuffering points, such as those corresponding to scene changes, may have longer pauses because these points are less intrusive to the viewing experience. Conversely, lower order rebuffering points, such as gaps in dialogue, may have shorter pauses, since these points may be slightly more jarring to the viewing experience. For example, given certain conditions, a pause of one second may be used during a scene change, while a pause of less than 500 milliseconds may be used during a gap in dialogue.

도 3a 내지 도 3d는 본 개시내용의 일부 실시예들에 따라, 리버퍼링 이벤트들에 대한 지정된 리버퍼링 포인트들(306)의 이용을 도시하는 도면들이다. 일부 예들에서, 리버퍼링 이벤트들을 위해 일시정지하는 것은 버퍼 이용률(310)이 미리 정의된 임계값(308) 아래로 떨어질 때 트리거링될 수 있다. 버퍼 이용률(310)은 다양한 방식들로 정의될 수 있다. 일 예에서, 버퍼 이용률(310)은 현재 소비되지 않는 버퍼 내의 데이터의 양에 의해 정의될 수 있다. 일부 예들에서, 버퍼 이용률(310)은 버퍼 내의 비디오 아이템에 대한 재생 시간량에 의해 정의될 수 있다. 예를 들어, 이것은 버퍼가 1분 32초의 재생 시간에 충분한 데이터를 갖는 경우일 수 있다.3A-3D are diagrams illustrating the use of designated rebuffering points 306 for rebuffering events, in accordance with some embodiments of the present disclosure. In some examples, pausing for rebuffering events may be triggered when buffer utilization 310 falls below a predefined threshold 308 . Buffer utilization 310 can be defined in a variety of ways. In one example, buffer utilization 310 may be defined by the amount of data in the buffer that is not currently consumed. In some examples, buffer utilization 310 may be defined by an amount of play time for a video item in the buffer. For example, this may be the case when the buffer has enough data for a playback time of 1 minute 32 seconds.

도 3a 내지 도 3d는 비디오 아이템(200)에 대한 타임라인을 도시한다. 라인(302)은 시청을 위해 현재 표시되고 있는 비디오 아이템(200) 내의 시점을 나타낸다. 라인(304)은 새로운 데이터가 수신되지 않는다고 가정하여 버퍼가 소비되는 비디오 아이템(200) 내의 시점을 나타낸다. 다시 말해, 버퍼에 더 이상의 데이터가 전달되지 않으면, 비디오 아이템은 라인(304)에 의해 표현되는 포인트까지 재생을 계속할 수 있다. 따라서, 라인(302)과 라인(304) 사이의 시간 범위는 버퍼 이용률(310)을 나타낸다.3A-3D show a timeline for video item 200 . Line 302 represents a viewpoint within video item 200 that is currently being displayed for viewing. Line 304 represents a point in video item 200 at which the buffer is consumed, assuming no new data is received. In other words, if no more data is passed to the buffer, the video item may continue playing up to the point represented by line 304 . Thus, the time span between lines 302 and 304 represents buffer utilization 310 .

도 3a는 현재 버퍼 이용률(310)이 미리 정의된 임계값보다 높다는 것을 도시한다. 따라서, 비디오 아이템의 제시는 정상으로서 동작할 것이다. 도 3b에서, 비디오 아이템이 재생됨에 따라, 버퍼 이용률(310)은 미리 정의된 임계값(308) 아래로 떨어진다. 이것은 데이터가 버퍼로 전달되는 레이트가 디스플레이 시스템(132)에서의 제시를 위해 데이터가 처리되는 레이트보다 작기 때문에 발생할 수 있다. 따라서, 버퍼 이용률(310)이 리버퍼링 이벤트가 필요한 포인트까지 떨어질 것으로 결정될 수 있다. 종래의 스트리밍 시스템들은 리버퍼링 이벤트가 필요하다고 결정된 어느 포인트에서도 또는 버퍼 내의 모든 데이터가 처리된 포인트에서 단순히 일시정지될 수 있다. 그러나, 본 명세서에 개시된 원리들에 따르면, 미리 결정되거나 미리 식별된 리버퍼링 포인트가 리버퍼링 이벤트가 발생하는 포인트로서 이용될 수 있다. 리버퍼링 포인트가 덜 거슬리는 비디오 아이템(200)에서의 포인트에 대응하기 때문에, 사용자(116)는 더 나은 경험을 가질 수 있다.3A shows that the current buffer utilization 310 is above a predefined threshold. Thus, the presentation of the video item will operate as normal. In FIG. 3B , as the video item is played, the buffer utilization 310 drops below a predefined threshold 308 . This may occur because the rate at which data is transferred to the buffer is less than the rate at which data is processed for presentation at display system 132 . Accordingly, it can be determined that the buffer utilization 310 will drop to a point where a rebuffering event is required. Conventional streaming systems can simply pause at any point where it is determined that a rebuffering event is needed or at which point all data in the buffer has been processed. However, according to the principles disclosed herein, a pre-determined or pre-identified rebuffering point may be used as the point at which a rebuffering event occurs. Because the rebuffering points correspond to points in video item 200 that are less intrusive, user 116 may have a better experience.

도 3c는 라인(302)이 리버퍼링 포인트(306)에 도달했다는 것을 도시한다. 이러한 리버퍼링 포인트에서, 비디오 아이템(200)은 리버퍼링을 허용하기 위해 일시정지될 수 있다. 디스플레이 시스템(132)에서의 비디오 아이템(200)의 제시는 일시적으로 중지될 수 있다. 도 3d는 비디오 아이템(200)이 일시정지된 후 및 재개되기 전의 시점을 예시한다. 예시된 바와 같이, 일시정지에 의해 제공되는 추가 시간은 더 많은 데이터가 버퍼에 추가되는 것을 허용하고, 따라서 버퍼 이용률(310)을 미리 정의된 임계값(308) 아주 위의 포인트까지 확장시킨다. 일부 예들에서, 리버퍼링 포인트(306)에서의 리버퍼링을 위한 일시정지는 버퍼 이용률이 재개 전에 미리 결정된 크기에 도달하는 것을 허용하는데 필요한 기간에 대한 것일 수 있다. 일부 실시예들에서, 리버퍼링을 위한 일시정지의 지속기간은 후속 리버퍼링 포인트들에 의해 결정될 수 있다. 예를 들어, 비디오 아이템(200)은, 다른 리버퍼링 포인트 또는 특정 타입의 다른 리버퍼링 포인트가 버퍼링된 데이터에 존재할 때까지, 리버퍼링을 위해 일시정지될 수 있다. 또는, 리버퍼링 패드로서 후속 리버퍼링 후에 특정량의 시간 또는 데이터가 추가될 수 있다. 예를 들어, 리버퍼링을 위한 일시정지는 제2의 도시된 리버퍼링 포인트(306)와 연관된 데이터가 버퍼에 추가될 때까지 또는 제2의 도시된 리버퍼링 포인트(306)와 연관된 데이터 후의 임계량의 추가 데이터가 추가될 때까지 지속될 수 있다.3C shows that line 302 has reached rebuffering point 306 . At this rebuffering point, the video item 200 may be paused to allow rebuffering. Presentation of video item 200 on display system 132 may be temporarily suspended. 3D illustrates the point in time after the video item 200 is paused and before it is resumed. As illustrated, the additional time provided by the pause allows more data to be added to the buffer, thus extending the buffer utilization 310 to a point well above the predefined threshold 308 . In some examples, the pause for rebuffering at the rebuffering point 306 may be for a period of time necessary to allow the buffer utilization to reach a predetermined size before resuming. In some embodiments, the duration of the pause for rebuffering may be determined by subsequent rebuffering points. For example, the video item 200 may be paused for rebuffering until another rebuffering point or another rebuffering point of a particular type exists in the buffered data. Alternatively, a certain amount of time or data may be added after subsequent rebuffering as a rebuffering pad. For example, a pause for rebuffering may occur until data associated with the second illustrated rebuffering point 306 is added to the buffer or after a threshold amount of data associated with the second illustrated rebuffering point 306. It can persist until additional data is added.

일부 예들에서, 비디오를 표시하고 있는 클라이언트 시스템은 각각의 지정된 리버퍼링 포인트에서 버퍼의 현재 이용률을 평가할 수 있다. 특정한 지정된 리버퍼링 포인트에서, 버퍼 이용률이 특정한 임계값 아래인 경우, 비디오 아이템은 그 특정한 지정된 리버퍼링 포인트에서 일시정지될 수 있다. 또한, 버퍼의 현재 이용률은 비디오 아이템이 그 특정한 리버퍼링 포인트에서 얼마나 오래 일시정지되어야 하는지를 결정하는데 도움을 줄 수 있다. 예를 들어, 현재 버퍼 이용률이 임계값에 가까운 경우, 일시정지는 비교적 짧을 수 있다. 그러나, 현재 버퍼 이용률이 임계값보다 훨씬 아래에 있다면, 일시정지는 비교적 길 수 있다. 버퍼 이용률이 임계값보다 높은 경우, 그 리버퍼링 포인트에서 비디오 아이템을 일시정지할 필요가 없을 수 있다.In some examples, the client system displaying the video can evaluate the current utilization of the buffer at each designated rebuffering point. At a specific designated rebuffering point, if the buffer utilization is below a specific threshold, the video item may be paused at that specific designated rebuffering point. Also, the current utilization rate of the buffer can help determine how long the video item should be paused at that particular rebuffering point. For example, if the current buffer utilization is close to a threshold, the pause may be relatively short. However, if the current buffer utilization is well below the threshold, the pause may be relatively long. If the buffer utilization rate is higher than the threshold, it may not be necessary to pause the video item at that rebuffering point.

도 4a 및 도 4b는 리버퍼링 포인트들을 식별하는 것을 돕기 위해 콘텐츠 단편 내의 샷들 및 프레임들에 할당될 수 있는 메타데이터를 도시하는 표들이다. 일부 예들에서, 리버퍼링 포인트 식별 모듈(110, 130)은 비디오 아이템(200)의 데이터를 분석하고 비디오 아이템(200) 내의 상이한 샷들 및 프레임들을 식별하기 위한 하드웨어, 소프트웨어, 또는 둘 모두의 조합을 포함할 수 있다. 예를 들어, 리버퍼링 포인트 식별 모듈(110, 130)은 구현에 따라 비디오 아이템(200) 내의 각각의 상이한 샷 또는 비디오 아이템(200)의 현재 버퍼링된 부분 내의 각각의 상이한 샷에 대한 시작 포인트 및 중지 포인트를 표시할 수 있다. 리버퍼링 포인트 식별 모듈(110, 130)은 또한 비디오 아이템(200) 내의 프레임들의 선택을 식별할 수 있다. 리버퍼링 포인트 식별 모듈(110, 130)은 프레임들 내의 다양한 특징들을 검출하기 위해 프레임들 각각과 연관된 이미지들을 또한 분석할 수 있다. 이러한 특징들은, 예를 들어 샷 또는 프레임에 나타나는 캐릭터들의 얼굴을 포함할 수 있다. 이러한 특징들에 기반하여, 리버퍼링 포인트 식별 모듈(110, 130)은 메타데이터를 비디오 아이템(200) 내에서 검출된 다양한 샷들 및 이미지들에 할당할 수 있다. 그 후, 이러한 메타데이터는 비디오 아이템(200) 내의 리버퍼링 포인트들뿐만 아니라 이러한 리버퍼링 포인트들에 대한 순위 값들을 할당하는데 이용될 수 있다. 예를 들어, 리버퍼링을 위한 일시정지는 제2 액터가 아니라 제1 액터가 표시되는 시간 동안에 바람직할 수 있다.4A and 4B are tables showing metadata that can be assigned to shots and frames within a piece of content to help identify rebuffering points. In some examples, the rebuffering point identification module 110, 130 includes hardware, software, or a combination of both to analyze the data of the video item 200 and identify different shots and frames within the video item 200. can do. For example, the rebuffering point identification module 110, 130 may, depending on the implementation, determine the start and stop points for each different shot within the video item 200 or each different shot within the current buffered portion of the video item 200. points can be displayed. The rebuffering point identification module 110 , 130 may also identify a selection of frames within the video item 200 . The rebuffering point identification module 110, 130 may also analyze the images associated with each of the frames to detect various features within the frames. These features may include, for example, the faces of the characters appearing in the shot or frame. Based on these characteristics, the rebuffering point identification module 110, 130 may assign metadata to the various shots and images detected within the video item 200. This metadata can then be used to assign rebuffering points within video item 200 as well as ranking values for these rebuffering points. For example, a pause for rebuffering may be desirable during the time the first actor is displayed but not the second actor.

프레임은 순차적으로 다른 프레임들과 조합될 때 동화상을 생성하는 정지 이미지에 대응한다. 비디오 아이템(200)을 형성하는 데이터는 비디오 아이템(200) 내의 각각의 프레임을 기술할 수 있다. 리버퍼링 포인트 식별 모듈(110, 130)은 비디오 아이템(200) 내의 복수의 프레임을 분석하고 그 프레임들 내에서 검출된 특징들에 기반하여 그 프레임들 각각에 메타데이터를 할당할 수 있다. 일련의 프레임들이 샷을 형성할 수 있다. 샷은 일반적으로 하나의 연속적인 카메라 롤을 포함하는 비디오의 일부를 나타낼 수 있다. 샷은 또한 일반적으로 2개의 편집 또는 컷 사이의 연속적인 영상을 나타낼 수 있다. 리버퍼링 포인트 식별 모듈(110, 130)은 다양한 방식들로 샷들을 검출할 수 있다. 일 예에서, 각각의 프레임 내의 특징들은 이미지 처리 알고리즘들을 이용하여 분석된다. 이러한 특징들은 프레임의 컬러링, 프레임의 밝기, 또는 형상들 및 에지들과 같은 기계 식별가능한 특징들을 포함할 수 있다. 특정 프레임이 이전 프레임과 실질적으로 상이한 경우, 컷이 발생했다고 결정될 수 있다. 달리 말하면, 이전 샷이 종료되었고, 새로운 샷이 시작되었다. 다양한 샷들이 식별된 후, 리버퍼링 포인트 식별 모듈(110, 130)은 샷들 내의 상이한 프레임들의 특징들 사이의 차이들을 식별할 수 있다. 이러한 차이들은 샷을 카테고리화하고 다양한 메타데이터를 샷에 할당하는데 이용될 수 있다.A frame corresponds to a still image that, when sequentially combined with other frames, creates a moving image. The data forming the video item 200 may describe each frame within the video item 200 . The rebuffering point identification module 110, 130 may analyze multiple frames within the video item 200 and assign metadata to each of the frames based on features detected within the frames. A series of frames may form a shot. A shot can represent a portion of a video, typically comprising one continuous camera roll. A shot may also refer to a continuous stream of footage, usually between two edits or cuts. The rebuffering point identification module 110, 130 may detect shots in a variety of ways. In one example, features within each frame are analyzed using image processing algorithms. These features may include the coloring of the frame, the brightness of the frame, or machine identifiable features such as shapes and edges. If a particular frame differs substantially from a previous frame, it may be determined that a cut has occurred. In other words, the previous shot has ended and a new shot has started. After the various shots have been identified, the rebuffering point identification module 110, 130 can identify differences between features of different frames within the shots. These differences can be used to categorize the shot and assign various metadata to the shot.

리버퍼링 포인트 식별 모듈(110, 130)은 샷 카테고리를 포함하는 메타데이터를 그 샷에 할당하기 위해 각각의 샷을 또한 분석한다. 이것은 샷 내의 프레임들을 나타내는 기계 판독가능한 데이터를 분석함으로써 행해질 수 있다. 일 예에서, 리버퍼링 포인트 식별 모듈(110, 130)은 특정 샷 내에서 적어도 2개의 프레임을 선택한다. 리버퍼링 포인트 식별 모듈(110, 130)은 이러한 프레임들 내에서 발견되는 특징들을 분석하고 이들 프레임들의 특징들 간의 차이들을 식별한다. 예를 들어, 하나의 프레임의 다양한 특징들 사이의 공간적 관계들이 다른 프레임의 다양한 특징들 사이의 공간적 관계들보다 크다면, 샷이 줌아웃 샷인 것으로 결정될 수 있다. 예를 들어 하나의 프레임의 특징들이 캐릭터의 얼굴의 특징들인 것으로 결정되고, 다른 프레임의 특징들이 또한 캐릭터의 얼굴의 특징들인 것으로 결정되는 경우, 그 얼굴이 프레임의 임계량보다 많이 점유하면 샷이 클로즈업 샷이라고 결정될 수 있다. 예를 들어, 하나의 프레임의 특징들이 특정한 방식으로 다른 프레임에서의 특징들에 대해 이동된 것으로 결정되는 경우, 샷이 설정 샷이라고 결정될 수 있다. 다른 타입들의 샷들도 고려된다. 일부 예들에서, 리버퍼링 포인트가 존재하는 샷의 타입은 그 리버퍼링 포인트의 순위 값에 영향을 줄 수 있다. 예를 들어, 클로즈업 샷보다는 설정 샷 동안 일시정지시키는 것이 덜 불편할 수 있다.The rebuffering point identification module 110, 130 also analyzes each shot to assign to that shot metadata including a shot category. This can be done by analyzing machine readable data representing frames within a shot. In one example, the rebuffering point identification module 110, 130 selects at least two frames within a particular shot. The rebuffering point identification module 110, 130 analyzes features found within these frames and identifies differences between features of these frames. For example, a shot may be determined to be a zoomed-out shot if spatial relationships between various features in one frame are greater than spatial relationships between various features in another frame. For example, when it is determined that features of one frame are features of a character's face and features of another frame are also determined to be features of a character's face, the shot is a close-up shot if the face occupies more than a threshold amount of frames. can be determined. For example, if it is determined that features in one frame are moved relative to features in another frame in a specific way, it can be determined that the shot is a setup shot. Other types of shots are also contemplated. In some examples, the type of shot for which a rebuffering point exists may affect the rank value of that rebuffering point. For example, it may be less inconvenient to pause during an establishing shot than a close-up shot.

리버퍼링 포인트 식별 모듈(110, 130)은 또한 비디오 아이템(200) 내의 선택된 수의 프레임들을 분석할 수 있다. 비디오 아이템(200) 내의 프레임들을 분석하는 것은 비디오 아이템(200)을 나타내는 기계 판독가능한 데이터를 검사하는 것을 수반할 수 있다. 일부 예들에서, 비디오 아이템의 모든 단일 프레임이 분석될 수 있다. 그러나, 일부 예들에서, 매 X개의 프레임들이 분석될 수 있다. 일부 예들에서, X는 약 5개 내지 60개의 범위 내일 수 있다. X에 대한 다른 값들도 고려된다. 리버퍼링 포인트 식별 모듈(110, 130)은 또한 메타데이터를 분석된 각각의 프레임에 할당할 수 있다.The rebuffering point identification module 110 , 130 may also analyze a selected number of frames within the video item 200 . Analyzing the frames within the video item 200 may involve examining machine-readable data representing the video item 200 . In some examples, every single frame of a video item may be analyzed. However, in some examples, every X frames may be analyzed. In some examples, X can be in the range of about 5 to 60. Other values for X are also contemplated. The rebuffering point identification module 110, 130 may also assign metadata to each analyzed frame.

도 4a는, 프레임 메타데이터라고도 지칭되는, 특정 프레임에 대한 메타데이터를 포함하는 예시적인 표(400)를 도시한다. 메타데이터는 프레임의 시각적 속성들(401), 프레임의 구조적 속성들(403), 및 프레임의 시간적 속성들(405)을 표시할 수 있다. 시각적 속성들(401)은 밝기(402), 선명도(404), 및 콘트라스트(406)를 포함한다. 다른 시각적 속성들은 프레임의 컬러 조성 또는 컬러 온도를 포함할 수 있다. 구조적 속성들(403)은 프레임 얼굴들(408) 및 프레임 돌출도(410)를 포함한다. 시간적 속성들(405)은 프레임 움직임(412) 및 프레임 방향(414)을 포함한다.4A shows an example table 400 that includes metadata for a particular frame, also referred to as frame metadata. The metadata may indicate the frame's visual properties (401), the frame's structural properties (403), and the frame's temporal properties (405). Visual attributes 401 include brightness 402 , sharpness 404 , and contrast 406 . Other visual attributes may include the color composition or color temperature of the frame. Structural properties 403 include frame faces 408 and frame extrusions 410 . Temporal attributes 405 include frame motion 412 and frame direction 414 .

리버퍼링 포인트 식별 모듈(110, 130)은 프레임 내의 각각의 픽셀과 연관된 평균 밝기 값에 기반하여 밝기 값(402)을 프레임에 할당할 수 있다. 구체적으로, 리버퍼링 포인트 식별 모듈(110, 130)은 프레임을 나타내는 데이터를 검사할 수 있다. 그 데이터는 프레임 내의 각각의 픽셀에 대한 컬러 값들을 정의할 수 있다. 예를 들어, 픽셀에 대한 데이터가 YCbCr로도 알려진 YUV 컬러 공간에서 표현되는 경우, Y 값은 픽셀 휘도를 나타낸다. 예를 들어, 픽셀에 대한 데이터가 RGB 컬러 공간에서 표현되는 경우, 특정 픽셀에 대한 밝기는 픽셀에 대한 평균 컬러 값으로서 정의될 수 있다(예를 들어, Br = (R+G+B)/3이고, 여기서 Br은 밝기이고, R은 적색 컬러 값이고, G는 녹색 컬러 값이고, B는 청색 컬러 값이다). 밝기 값을 결정하기 위한 다른 방식들이 고려된다.The rebuffering point identification module 110, 130 may assign a brightness value 402 to the frame based on the average brightness value associated with each pixel in the frame. Specifically, the rebuffering point identification module 110 or 130 may inspect data representing a frame. That data can define color values for each pixel in a frame. For example, if the data for a pixel is represented in the YUV color space, also known as YCbCr, the Y value represents the pixel luminance. For example, if the data for a pixel is expressed in RGB color space, the brightness for a particular pixel can be defined as the average color value for that pixel (e.g., Br = (R+G+B)/3 where Br is the brightness, R is the red color value, G is the green color value, and B is the blue color value). Other ways to determine the brightness value are contemplated.

리버퍼링 포인트 식별 모듈(110, 130)은 프레임을 정의하는 데이터의 분석에 기반하여 선명도 값(404) 및 콘트라스트 값(406)을 프레임에 할당할 수 있다. 예를 들어, 리버퍼링 포인트 식별 모듈(110, 130)은 프레임의 선명도 값 및 콘트라스트 값을 결정하기 위한 기능을 적용할 수 있다. 때때로 첨예도로 지칭되는 선명도는 이미지의 콘트라스트가 얼마나 강하게 인지되는지의 척도이다. 콘트라스트는 이미지 내의 컬러 차이들을 지칭한다. 프레임을 나타내는 데이터에 기반하여 선명도 값 및 콘트라스트 값을 결정하기 위한 다양한 방법들이 이용될 수 있다.The rebuffering point identification module 110, 130 may assign a sharpness value 404 and a contrast value 406 to the frame based on an analysis of the data defining the frame. For example, the rebuffering point identification modules 110 and 130 may apply a function for determining a sharpness value and a contrast value of a frame. Sharpness, sometimes referred to as sharpness, is a measure of how strongly the contrast in an image is perceived. Contrast refers to color differences within an image. Various methods may be used to determine the sharpness value and the contrast value based on the data representing the frame.

리버퍼링 포인트 식별 모듈(110, 130)은 또한 샷 내에 나타나는 얼굴들(408)을 식별할 수 있다. 예를 들어, 프레임 내의 특징들의 분석에 기반하여 프레임이 하나 이상의 얼굴을 포함한다고 결정될 수 있다. 얼굴들의 존재를 식별하고 그 후 데이터에 표현되는 실제 얼굴들을 식별하기 위해 다양한 얼굴 인식 기능들이 적용될 수 있다. 예로서, Viola-Jones 알고리즘은 얼굴들을 검출하기 위한 하나의 인기 있는 선택이다. 프레임 내의 다양한 캐릭터들의 얼굴들은 또한 인기도 값을 할당받을 수 있다. 이 인기도 값은 다양한 방식들로 도출될 수 있다. 일 예에서, 인기도 값은 그 캐릭터가 비디오 아이템 내에 나타나는 시간의 백분율에 기반한다. 일부 예들에서, 외부 소스들이 캐릭터의 인기도를 결정하는데 이용될 수 있다. 예를 들어, 인기도 값은 인간 사용자에 의해 미리 정의될 수 있다. 일부 예들에서, 인기도 값을 특정 캐릭터에 할당하기 위해 웹 페이지들 및 소셜 미디어와 같은 공개적으로 이용가능한 정보의 분석이 적용될 수 있다. 특정 샷 또는 장면 내의 캐릭터들의 인기도는 또한 그 샷 또는 장면 내의 리버퍼링 포인트들의 순위 값에 영향을 미칠 수 있다. 예를 들어, 더 인기 있는 캐릭터 또는 액터를 보여주면서 리버퍼링을 위한 일시정지를 하는 것이 바람직할 수 있다.The rebuffering point identification module 110, 130 may also identify faces 408 appearing within the shot. For example, it may be determined that a frame includes one or more faces based on an analysis of features within the frame. Various face recognition functions can be applied to identify the presence of faces and then to identify actual faces represented in the data. As an example, the Viola-Jones algorithm is one popular choice for detecting faces. The faces of various characters within a frame may also be assigned a popularity value. This popularity value can be derived in various ways. In one example, the popularity value is based on the percentage of time the character appears within the video item. In some examples, external sources may be used to determine a character's popularity. For example, the popularity value may be predefined by human users. In some examples, analysis of publicly available information such as web pages and social media may be applied to assign a popularity value to a particular character. The popularity of characters within a particular shot or scene may also affect the ranking value of rebuffering points within that shot or scene. For example, it may be desirable to pause for rebuffering while showing a more popular character or actor.

리버퍼링 포인트 식별 모듈(110, 130)은 돌출도 데이터를 프레임에 할당할 수 있다. 돌출도 데이터는 예를 들어 돌출도 맵을 포함할 수 있다. 돌출도 맵은 이미지의 부분들의 고유성을 식별한다. 예를 들어, 이미지의 부분(예를 들어, 픽셀 또는 인접 픽셀들의 세트)의 컬러 고유성은 값으로 식별될 수 있다. 돌출도 맵은 또한 이미지 내의 초점의 사람 또는 객체에 할당된 돌출도 값을 포함할 수 있다. 예를 들어, 돌출도 값은 그 객체 또는 사람이 배치된 배경에 대해 그 사람 또는 객체가 얼마나 많이 두드러지는지를 식별할 수 있다.The rebuffering point identification module 110, 130 may allocate saliency data to a frame. The saliency data may include, for example, a saliency map. The saliency map identifies the uniqueness of parts of the image. For example, color uniqueness of a portion of an image (eg, a pixel or set of adjacent pixels) may be identified by a value. The saliency map may also include saliency values assigned to people or objects in focus within the image. For example, a saliency value can identify how much the person or object stands out against the background on which the object or person is placed.

리버퍼링 포인트 식별 모듈(110, 130)은 또한 프레임의 시간적 특징들을 결정할 수 있다. 예를 들어, 프레임을 나타내는 데이터 및 인접 프레임들을 분석함으로써, 초점의 특정 객체 또는 사람이 다른 객체들 또는 이미지의 배경에 대해 특정 속도 및 방향으로 이동하고 있다고 결정될 수 있다. 이 정보가 결정되어 프레임 움직임 값(412) 및 프레임 방향 값(414)을 할당할 수 있다.The rebuffering point identification module 110, 130 may also determine temporal characteristics of the frame. For example, by analyzing data representative of a frame and adjacent frames, it may be determined that a particular object or person in focus is moving at a particular speed and direction relative to other objects or the background of the image. This information can be determined and assigned frame motion values 412 and frame direction values 414 .

프레임 움직임 값(412) 및 프레임 방향 값(414)은 지정된 리버퍼링 포인트를 결정하는데 이용될 수 있다. 예를 들어, 특정 프레임에서 비디오 아이템 내에 많은 움직임이 있다면, 이것은 그 장면 동안 더 많은 액션이 발생하고 있다는 것을 나타낼 수 있다. 따라서, 그 프레임에서 리버퍼링 이벤트를 야기하는 것이 더 불편할 수 있다. 그러나, 더 적은 움직임이 있다면, 이것은 리버퍼링 이벤트에 대해 덜 불편한 프레임일 수 있다. 따라서, 미리 결정된 움직임 임계값보다 작은 프레임 움직임 값(412)을 갖는 프레임이 지정된 리버퍼링 포인트로서 식별될 수 있다. 일부 예들에서, 낮은 움직임 값을 갖는 프레임은 샷 변경 또는 장면 변경에 대응하는 프레임보다 작은 순위 값을 가질 수 있다.The frame motion value 412 and the frame direction value 414 may be used to determine a designated rebuffering point. For example, if there is a lot of movement within a video item in a particular frame, this may indicate that more action is taking place during that scene. Therefore, it can be more inconvenient to trigger a rebuffering event in that frame. However, if there is less movement, this may be a less inconvenient frame for a rebuffering event. Accordingly, a frame having a frame motion value 412 less than a predetermined motion threshold may be identified as a designated rebuffering point. In some examples, a frame with a low motion value may have a lower rank value than a frame corresponding to a shot change or scene change.

리버퍼링 포인트 식별 모듈(110, 130)은 또한 프레임에 대한 리버퍼링 포인트 순위 값(416)을 결정할 수 있다. 리버퍼링 포인트 순위 값은 프레임과 연관된 다양한 요인들 또는 샷 또는 장면 내의 프레임의 위치에 기반할 수 있다. 예를 들어, 순위 값은 0-100의 범위일 수 있고, 0은 리버퍼링 포인트에 대한 나쁜 선택이고, 100은 리버퍼링 포인트에 대한 이상적인 선택이다. 따라서, 대화 내에 위치되고 중요한 캐릭터 말을 나타내는 프레임은 0의 리버퍼링 포인트 순위 값을 가질 수 있고, 장면의 끝 또는 시작에서의 페이드 아웃 또는 페이드 인에 대응하는 프레임은 100에 더 가까운 리버퍼링 포인트 순위 값을 가질 수 있다. 또한, 샷의 끝 또는 시작에 위치되는 프레임은 예를 들어 75에 가까운 리버퍼링 포인트 순위 값을 가질 수 있다. 리버퍼링 포인트 순위 값(416)은 또한 프레임의 다른 속성들(401, 403, 405) 및 본 명세서에서 설명되는 다른 고려사항들에 의해 영향을 받을 수 있다. 서버 컴퓨팅 시스템(102) 상에서 실행되는 리버퍼링 포인트 식별 모듈(110)이 속성들(401, 403 및 405)을 결정하는 일부 실시예들에서, 클라이언트 컴퓨팅 시스템(120)은 이 메타데이터를 이용하여, 리버퍼링 포인트 순위 값(416)을 포함하는 추가 메타데이터를 생성한다.The rebuffering point identification module 110, 130 may also determine a rebuffering point rank value 416 for the frame. The rebuffering point rank value may be based on various factors associated with the frame or the location of the frame within the shot or scene. For example, the ranking value can range from 0-100, where 0 is a bad choice for rebuffering points and 100 is an ideal choice for rebuffering points. Thus, a frame located within dialogue and representing important character speech may have a rebuffering point rank value of zero, and a frame corresponding to a fade out or fade in at the end or beginning of a scene may have a rebuffering point rank closer to 100. can have a value. Also, a frame positioned at the end or beginning of a shot may have a rebuffering point ranking value close to 75, for example. The rebuffering point rank value 416 may also be influenced by other attributes 401, 403, 405 of the frame and other considerations described herein. In some embodiments in which the rebuffering point identification module 110 running on the server computing system 102 determines attributes 401, 403 and 405, the client computing system 120 uses this metadata to: Generates additional metadata including the rebuffering point rank value 416.

도 4b는, 샷 메타데이터라고도 지칭되는, 특정 샷에 대한 메타데이터를 포함하는 예시적인 표(420)를 도시한다. 이 예에 따르면, 메타데이터는 샷 카테고리(422), 시각적 속성들(424), 구조적 속성들(426), 및 시간적 속성들(428)을 포함한다.4B shows an example table 420 containing metadata for a particular shot, also referred to as shot metadata. According to this example, metadata includes shot category 422 , visual properties 424 , structural properties 426 , and temporal properties 428 .

샷 카테고리(422)는 샷의 타입을 식별한다. 예를 들어, 샷 카테고리들은 클로즈업 샷, 설정 샷, 줌아웃 샷, 또는 텔레비전 및 영화 산업들에서 이용되는 다른 샷들의 카테고리를 포함할 수 있지만, 이에 제한되지는 않는다. 다른 타입들의 샷 카테고리들이 또한 정의될 수 있다. 전술한 바와 같이, 샷 카테고리는 샷 내의 적어도 2개의 상이한 프레임 사이의 특징 차이들에 기반하여 정의될 수 있다.Shot category 422 identifies the type of shot. For example, shot categories may include, but are not limited to, close-up shots, setup shots, zoom-out shots, or other categories of shots used in the television and film industries. Other types of shot categories may also be defined. As mentioned above, a shot category may be defined based on feature differences between at least two different frames within a shot.

시각적 속성 데이터(424)는 밝기, 선명도 및 콘트라스트와 같은 정보를 포함할 수 있다. 이들은 샷에 대한 평균 값들로서 표현될 수 있다. 예를 들어, 샷으로부터의 프레임들의 샘플이 분석되고 평균화되어 다양한 시각적 속성 값들을 결정할 수 있다. 구조적 속성 데이터(426)는 캐릭터들이 샷 내에 나타나는 것과 같은 샷의 구조적 특징들을 포함할 수 있다. 시간적 속성 데이터(428)는 만일 있다면, 샷이 이동하고 있는 방향, 또는 샷 내의 식별된 객체가 이동하고 있는 방향을 나타낼 수 있다. 시간적 속성 데이터(428)는 또한 초점의 임의의 객체들이 배경에 대해 이동하고 있는 방향을 나타낼 수 있다. 리버퍼링 포인트들을 식별하는데 도움이 될 수 있는 다른 단편들의 정보가 샷 메타데이터에 포함될 수 있다.The visual attribute data 424 may include information such as brightness, sharpness, and contrast. These can be expressed as average values over the shot. For example, a sample of frames from a shot can be analyzed and averaged to determine various visual attribute values. Structural attribute data 426 may include structural characteristics of the shot, such as characters appearing in the shot. Temporal attribute data 428, if any, can indicate the direction the shot is moving, or the direction the identified object within the shot is moving. Temporal attribute data 428 may also indicate the direction in which any objects in focus are moving relative to the background. Information of other fragments that may help identify rebuffering points may be included in the shot metadata.

도 5는 클로즈업 샷을 나타내는 특징들의 검출을 도시하는 도면이다. 도 5는 2개의 상이한 프레임(502, 504)의 이미지를 도시한다. 이 예에서, 제1 프레임(502)은 샷 내의 이전 프레임에 대응하고, 제2 프레임(504)은 샷 내의 나중의 프레임에 대응한다. 프레임들(502, 504)은 각각의 프레임(502, 504) 내의 특정 특징들을 식별하기 위해 분석된다. 일부 예들에서, 이러한 특징들은 주요 특징들 및 보조 특징들로서 식별될 수 있다. 이 예에서, 프레임들(502, 504)은 샷 내에 나타나는 단일 캐릭터의 얼굴인 주요 특징(506a, 506b)을 갖는다. 또한, 프레임들(502, 504)은 캐릭터의 옷의 일부(이 예에서는, 캐릭터의 넥타이)와 같은 보조 특징들(508a, 508b)을 포함한다.5 is a diagram illustrating detection of features representative of a close-up shot. 5 shows images of two different frames 502 and 504 . In this example, the first frame 502 corresponds to an earlier frame within the shot, and the second frame 504 corresponds to a later frame within the shot. Frames 502 and 504 are analyzed to identify specific features within each frame 502 and 504 . In some examples, these features may be identified as primary features and secondary features. In this example, frames 502 and 504 have a main feature 506a and 506b that is the face of a single character appearing within the shot. Frames 502 and 504 also include auxiliary features 508a and 508b, such as a portion of the character's clothing (in this example, the character's tie).

일부 예들에서, 주요 특징들 및 보조 특징들을 식별하기 위해 다양한 기능들이 적용될 수 있다. 일반적으로, 캐릭터들의 얼굴들은 주요 특징들로서 지정될 것이다. 배경의 나머지에 대해 두드러지는 다른 객체들이 보조 특징들로서 지정될 수 있다. 샷 내에 얼굴들이 없다면, 다른 메커니즘들이 주요 특징을 식별하는데 이용될 수 있다. 예를 들어, 가장 두드러지는 객체가 주요 특징으로서 지정될 수 있다. 대안적으로, 어떠한 주요 특징도 식별되지 않을 수 있고, 보조 특징들만이 식별될 수 있다. 일부 예들에서, 주요 및 보조 특징들 사이에 구별이 이루어지지 않을 수 있다.In some examples, various functions may be applied to identify primary and secondary characteristics. Generally, the characters' faces will be designated as key features. Other objects that stand out against the rest of the background may be designated as auxiliary features. If there are no faces in the shot, other mechanisms may be used to identify key features. For example, the most salient object may be designated as a key feature. Alternatively, no primary feature may be identified and only auxiliary features may be identified. In some instances, no distinction may be made between primary and secondary features.

샷 카테고리는 2개의 프레임 사이의 특징들을 비교함으로써 할당될 수 있다. 도 5에서, 제1 프레임(502)으로부터의 주요 특징(506a)과 제2 프레임(504)으로부터의 대응하는 주요 특징(506b)의 비교는 주요 특징(506)의 크기 또는 위치에서 거의 차이가 없다는 것을 보여준다. 특징들 사이의 트레이스 라인들은 실질적으로 평행하고 수평이다. 이것은 제1 프레임(502)과 제2 프레임(504) 사이에 움직임이 거의 없다는 것을 나타낸다. 또한, 제1 프레임(502)으로부터의 보조 특징(508a)과 제2 프레임(504)으로부터의 보조 특징(508b) 사이의 비교는 보조 특징(508)의 위치에서 차이가 거의 없다는 것을 보여준다. 또한, 주요 특징(506)은 프레임 내의 특정량의 공간을 차지한다. 예를 들어, 주요 특징(506)은 전체 프레임의 대응하는 치수의 1/3보다 큰 적어도 한 치수를 포함하는 전체 치수들을 가질 수 있다. 예를 들어, 주요 특징들(506a, 506b)로서 식별된 얼굴은 프레임의 전체 높이의 1/3보다 큰 높이를 갖는다. 1/3의 임계값은 예로서 제공되고, 다른 값들 또는 백분율들이 다른 실시예들에서 이용될 수 있다. 이 정보에 기반하여, 샷이 클로즈업 샷이라고 결정될 수 있다. 따라서, 샷은 이에 따라 카테고리화될 수 있다.A shot category can be assigned by comparing features between two frames. In FIG. 5 , a comparison of the main feature 506a from the first frame 502 and the corresponding main feature 506b from the second frame 504 shows that there is little difference in the size or position of the main feature 506. show what Trace lines between features are substantially parallel and horizontal. This indicates that there is little movement between the first frame 502 and the second frame 504 . Further, a comparison between auxiliary feature 508a from the first frame 502 and auxiliary feature 508b from the second frame 504 shows little difference in the location of the auxiliary feature 508 . Also, key features 506 occupy a certain amount of space within the frame. For example, key feature 506 may have overall dimensions including at least one dimension greater than one third of the corresponding dimension of the overall frame. For example, the face identified as key features 506a and 506b has a height greater than one third of the overall height of the frame. The threshold of 1/3 is provided as an example, other values or percentages may be used in other embodiments. Based on this information, it can be determined that the shot is a close-up shot. Accordingly, shots may be categorized accordingly.

도 6은 설정 샷을 나타내는 특징들의 검출을 도시하는 도면이다. 도 6은 2개의 상이한 프레임(602, 604)의 이미지들을 도시한다. 프레임들 내에서 검출된 주요 특징들(606a, 606b)은 사람들이고, 프레임들(602, 604) 내에서 검출된 보조 특징들(608a, 608b)은 풍경을 포함한다. 샷 카테고리는 2개의 프레임(602, 604) 사이의 특징들을 비교함으로써 할당될 수 있다. 제1 프레임의 주요 특징(606a)과 보조 특징(608a) 사이의 관계를 제2 프레임(604)의 주요 특징(606b)과 보조 특징(608b) 사이의 관계와 비교하면, 둘 사이의 거리가 변경되고, 식별된 특징들 중 하나의 상대 치수(예를 들어, 높이)가 변경되는 반면, 다른 치수(예를 들어, 폭)가 변경되지 않거나 많이 변경되지 않는다는 것을 보여준다. 이것은 샷이 식별된 특징들에 대한 카메라의 수직 이동을 포함한다는 것을 나타낼 수 있다. 즉, 프레임들 내의 대응하는 포인트들 사이의 트레이스 라인들은 완전히 수평이 아니라 대신에 약간 대각선이다. 라인들의 비교적 얕은 기울기는 2개의 프레임(502, 504) 사이에 어떤 움직임이 있지만 갑작스러운 또는 빠른 움직임이 아니라는 것을 나타낸다. 또한, 주요 특징들(606a)(즉, 사람들)은 이미지와 비교하여 비교적 작은 양의 공간을 차지한다. 이 정보에 기반하여, 샷이 설정 샷이라고 결정될 수 있다. 따라서, 샷은 이에 따라 카테고리화될 수 있다.6 is a diagram illustrating detection of features indicative of an established shot. 6 shows images of two different frames 602 and 604 . Primary features detected within frames 606a and 606b are people, and secondary features detected within frames 602 and 604 include scenery 608a and 608b. A shot category can be assigned by comparing features between the two frames 602 and 604 . Comparing the relationship between the primary feature 606a and secondary feature 608a in the first frame with the relationship between primary feature 606b and secondary feature 608b in the second frame 604, the distance between the two changes and shows that the relative dimension of one of the identified features (eg, height) changes, while the other dimension (eg, width) does not change or does not change much. This may indicate that the shot includes vertical movement of the camera relative to the identified features. That is, the trace lines between corresponding points within the frames are not completely horizontal, but instead slightly diagonal. The relatively shallow slope of the lines indicates that there is some motion between the two frames 502 and 504, but not sudden or rapid motion. Also, the main features 606a (ie, people) take up a relatively small amount of space compared to the image. Based on this information, it can be determined that the shot is a setup shot. Accordingly, shots may be categorized accordingly.

도 7은 줌아웃 샷을 나타내는 특징들의 검출을 도시하는 도면이다. 도 7은 2개의 상이한 프레임(702, 704)의 이미지들을 도시한다. 프레임들 내에서 검출된 특징들(706a, 706b)은 캐릭터가 보고 있는 초점의 객체를 포함한다. 샷 카테고리는 2개의 프레임(702, 704) 사이의 특징들을 비교함으로써 할당될 수 있다. 제1 프레임 내의 특징들(706a)의 상대 크기와 제2 프레임(704) 내의 특징들(706b)의 상대 크기의 비교는 그 상대 크기가 변경된다는 것을 보여준다. 구체적으로, 제2 프레임(704) 내의 특징들(706b)은 제1 프레임(702)의 대응하는 특징들(706a) 보다 작다. 대응하는 포인트들 사이의 트레이스 라인들의 수렴 특성은 대응하는 특징들이 제1 프레임(702)에서 보다 제2 프레임(704)에서 더 작다는 것을 시사한다. 이 정보에 기반하여, 샷이 줌아웃 샷이라고 결정될 수 있다. 따라서, 샷은 이에 따라 카테고리화될 수 있다. 제2 프레임(704) 내의 특징들(706b)이 제1 프레임(702)의 대응하는 특징들(706a)보다 더 큰 것으로 결정되었다면, 샷은 줌인 샷이라고 결정되었을 수 있다.7 is a diagram illustrating detection of features indicative of a zoomed-out shot. 7 shows images of two different frames 702 and 704 . The features 706a and 706b detected within the frames include the object of focus the character is looking at. A shot category can be assigned by comparing features between the two frames 702 and 704 . Comparison of the relative sizes of features 706a in the first frame and features 706b in the second frame 704 shows that the relative sizes change. Specifically, the features 706b in the second frame 704 are smaller than the corresponding features 706a in the first frame 702 . The convergence characteristics of the trace lines between the corresponding points suggest that the corresponding features are smaller in the second frame 704 than in the first frame 702 . Based on this information, it can be determined that the shot is a zoomed-out shot. Accordingly, shots may be categorized accordingly. If features 706b in the second frame 704 are determined to be larger than corresponding features 706a in the first frame 702, the shot may have been determined to be a zoomed-in shot.

도 5 내지 도 7은 이러한 샷들에 샷 카테고리를 할당하기 위해 샷들 내의 특징들을 검출하는 몇 가지 예들을 도시한다. 다른 타입들의 샷들이 또한 검출될 수 있다. 추가적으로, 상이한 타입들의 샷들을 식별하기 위한 다른 타입들의 기능들이 본 명세서에서 설명되는 리버퍼링 포인트 식별 모듈들의 일부 실시예들에서 이용될 수 있다.5-7 show several examples of detecting features within shots to assign a shot category to these shots. Other types of shots may also be detected. Additionally, other types of functions for identifying different types of shots may be used in some embodiments of the rebuffering point identification modules described herein.

도 8은 지정된 리버퍼링 포인트들에서 비디오 아이템을 일시정지시키기 위한 예시적인 방법을 도시하는 흐름도이다. 이 방법(800)은 몇 개의 열거된 단계들 또는 동작들을 포함한다. 이 방법(800)의 실시예들은 열거된 단계들의 이전, 이후, 그 사이에, 또는 일부로서 추가 단계들을 포함할 수 있다. 일부 실시예들은 열거된 동작들 중 하나 이상을 생략할 수 있다. 추가적으로, 이 방법(800)의 일부 실시예들은 프로세서로 하여금 설명된 동작들의 전부 또는 일부를 수행하게 하는 명령어들을 저장하는 비일시적 기계 판독가능한 매체를 포함한다. 이 예에 따르면, 이 방법(800)은 버퍼에 스트리밍 비디오 아이템을 수신하거나 스트리밍 비디오 아이템을 포함하는 데이터를 추출 또는 판독하기 위한 동작(802)을 포함한다. 비디오 아이템은, 예를 들어, 전체 길이의 영화 또는 시리즈의 에피소드일 수 있다. 비디오 아이템들의 다른 예들도 고려된다. 비디오 아이템은 스트림으로서 전달될 수 있다. 다시 말해, 비디오 아이템은 데이터가 여전히 서버 디바이스로부터 클라이언트 디바이스로 전송되고 있는 동안 클라이언트 디바이스에 의해 표시된다. 따라서, 비디오 아이템은 클라이언트 디바이스에 완전히 다운로드되기 전에 제시를 시작할 수 있다.8 is a flow diagram illustrating an exemplary method for pausing a video item at designated rebuffering points. The method 800 includes several enumerated steps or actions. Embodiments of this method 800 may include additional steps before, after, between, or as part of the listed steps. Some embodiments may omit one or more of the listed actions. Additionally, some embodiments of the method 800 include a non-transitory machine-readable medium storing instructions that cause a processor to perform all or some of the described operations. According to this example, the method 800 includes an operation 802 for receiving a streaming video item in a buffer or extracting or reading data including the streaming video item. A video item may be, for example, an episode of a full-length movie or series. Other examples of video items are also contemplated. A video item can be delivered as a stream. In other words, the video item is displayed by the client device while data is still being transferred from the server device to the client device. Thus, a video item may start presenting before it is completely downloaded to the client device.

이 방법(800)은 버퍼로부터 디스플레이 시스템으로 비디오 아이템을 출력하기 위한 동작(804)을 더 포함한다. 디스플레이 시스템은, 예를 들어, 스크린과 같은 시각적 출력 디바이스 및 스피커들의 세트와 같은 오디오 출력 디바이스 또는 이에 대한 접속을 포함할 수 있다. 버퍼로부터 디스플레이 시스템으로 비디오 아이템을 출력하는 것은 버퍼 내의 데이터를 소비한다. 이러한 방식으로 스트리밍 비디오 아이템들을 시청할 때, 비디오 아이템을 나타내는 데이터가 원격 서버로부터 로컬 버퍼로 수신된다. 통상적으로, 추가 데이터가 전달될 수 있기 전에 제시를 위해 버퍼 내의 이러한 데이터가 소비되는 경우, 비디오 아이템은 리버퍼링을 허용하도록 일시정지되어야 한다. 이러한 리버퍼링 이벤트들은 렌더링되고 있는 콘텐츠의 양태들을 고려하지 않으며 시청자에 의한 경험의 질을 낮출 수 있다.The method 800 further includes an act 804 for outputting the video item from the buffer to a display system. A display system may include, for example, a visual output device such as a screen and an audio output device such as a set of speakers or connections thereto. Outputting a video item from the buffer to the display system consumes data in the buffer. When viewing streaming video items in this way, data representing the video item is received from the remote server into a local buffer. Typically, when such data in the buffer is consumed for presentation before additional data can be delivered, the video item must be paused to allow rebuffering. These rebuffering events do not take into account aspects of the content being rendered and may lower the quality of experience by the viewer.

이 방법(800)은 미리 결정된 시간 프레임 내에 지정된 리버퍼링 포인트가 존재한다고 결정하는 동작(806)을 더 포함한다. 지정된 리버퍼링 포인트는 장면 변경, 샷 변경, 또는 일시정지에 대해 덜 불편한 비디오 아이템 내의 다른 포인트에 대응할 수 있다. 리버퍼링 포인트들은 비디오 아이템이 스트리밍되기 전에 식별될 수 있거나 데이터가 버퍼에 넣어짐에 따라 클라이언트 컴퓨팅 시스템에 의해 식별될 수 있다. 미리 결정된 시간 프레임은 현재 버퍼 내에 있는 데이터에 대응할 수 있다. 구체적으로, 미리 결정된 시간 프레임은 비디오가 현재 있는 포인트와 버퍼가 완전히 소비되는 포인트 사이에서 연장될 수 있다. 일부 예들에서, 버퍼 내의 소비되지 않은 데이터 내에 지정된 리버퍼링 포인트가 존재하지 않을 수 있다. 그러나, 버퍼가 완전히 소비되거나 리버퍼링 이벤트가 다른 방식으로 트리거링되기 전에 이러한 리버퍼링 포인트가 나타나는 경우가 있을 수 있다. 이 방법(800)의 실시예들은 버퍼 이용률이 미리 결정된 임계값 아래로 떨어지는 것으로 결정하는 것에 응답하여, 복수의 잠재적인 리버퍼링 포인트 중에서 특정한 리버퍼링 포인트를 선택하는 동작을 포함할 수 있다. 버퍼 이용률은 버퍼 내의 데이터의 양이 미리 결정된 데이터 값 아래로 떨어질 때 또는 버퍼 내의 데이터의 양이 미리 결정된 시간량 내에 미리 결정된 임계값 아래로 떨어질 것으로 예측되는 레이트로 감소하고 있을 때 미리 결정된 임계값 아래로 떨어지는 것으로 결정될 수 있다. 따라서, 이러한 결정은 실제 결정 또는 예측 결정일 수 있다. 추가적으로, 이 방법(800)의 일부 실시예들은 리버퍼링을 위한 일시정지가 필요한지를 결정하기 위한 것과 같이 버퍼에 할당된 메모리의 어떤 백분율이 실제로 점유되고 있는지 또는 버퍼 충만도의 레버를 결정하기 위해 버퍼를 평가하는 동작을 포함할 수 있다. 일부 실시예들에서, 버퍼 충만도의 평가는 리버퍼링을 위한 일시정지가 얼마나 오래 지속되어야 하는지 또는 일시정지가 언제 중지되어야 하는지를 결정하는데 이용될 수 있다.The method 800 further includes an act of determining 806 that a designated rebuffering point exists within a predetermined time frame. A designated rebuffering point may correspond to another point within a video item that is less inconvenient for a scene change, shot change, or pause. Rebuffering points may be identified before the video item is streamed or may be identified by the client computing system as data is put into a buffer. A predetermined time frame may correspond to data currently in the buffer. Specifically, the predetermined time frame may extend between the point at which the video is currently present and the point at which the buffer is completely consumed. In some examples, there may not be a rebuffering point specified in the unconsumed data in the buffer. However, there may be cases where such a rebuffering point appears before the buffer is completely consumed or the rebuffering event is otherwise triggered. Embodiments of this method 800 may include selecting a particular rebuffering point from among a plurality of potential rebuffering points in response to determining that the buffer utilization rate falls below a predetermined threshold. A buffer utilization rate is below a predetermined threshold when the amount of data in the buffer falls below a predetermined data value or when the amount of data in the buffer is decreasing at a rate predicted to fall below the predetermined threshold within a predetermined amount of time. can be determined by falling to Accordingly, this decision may be an actual decision or a predicted decision. Additionally, some embodiments of the method 800 may use a buffer to determine what percentage of the memory allocated to the buffer is actually being occupied, such as to determine if a pause for rebuffering is needed or a lever of buffer fullness. It may include an operation of evaluating . In some embodiments, the evaluation of buffer fullness can be used to determine how long the pause for rebuffering should last or when the pause should be stopped.

이 방법(800)은, 미리 결정된 시간 프레임 내에 지정된 리버퍼링 포인트가 존재하고, 버퍼를 완전히 비우는 것을 피하기 위해 리버퍼링이 수행되어야 한다고 결정하는 것에 응답하여, 지정된 리버퍼링 포인트에서 비디오 아이템을 일시정지시키는 동작(808)을 더 포함한다. 버퍼 내의 데이터의 양에 의해서만 결정된 랜덤 포인트 대신에 지정된 리버퍼링 포인트에서 비디오 아이템을 일시정지시킴으로써, 리버퍼링 이벤트의 불편함이 줄어든다. 따라서, 시청자에게는 스트리밍 콘텐츠를 보는 동안 더 나은 경험이 제공된다. 일부 경우들에서는, 시청자가 리버퍼링을 위한 일시정지를 인지하지 못하고 리버퍼링이 수행될 수 있다. 따라서, 리버퍼링 이벤트들의 종래의 구현들이 일반적으로 리버퍼링이 수행되고 있다는 것을 전하기 위해 사용자에게 제시되는 장면의 일부 변경을 포함하지만(예를 들어, 물레가 프레임 위에 나타남), 본 개시내용의 일부 실시예들은 리버퍼링 이벤트가 발생하고 있다는, 사용자에 대한 어떠한 표시도 포함하지 않을 수 있다. 리버퍼링이 식별된 적절한 시간에 수행되기 때문에, 리버퍼링이 사용자들에게 덜 눈에 띈다. 예를 들어, 식별된 페이드 아웃에서 흑색 프레임을 나타내는 1초를 추가하는 것은 사용자에 의해 리버퍼링으로서 인지되지 않고, 단순히 비디오 아이템에서의 더 긴 전환으로서 인지될 수 있다.The method 800 includes pausing a video item at a specified rebuffering point in response to determining that a specified rebuffering point exists within a predetermined time frame and that rebuffering should be performed to avoid completely emptying the buffer. Operation 808 is further included. By pausing a video item at a designated rebuffering point instead of a random point determined only by the amount of data in the buffer, the inconvenience of rebuffering events is reduced. Thus, viewers are provided with a better experience while watching streaming content. In some cases, rebuffering may be performed without the viewer being aware of the pause for rebuffering. Thus, while conventional implementations of rebuffering events typically involve some change in the scene presented to the user to convey that rebuffering is being performed (eg, a spinning wheel appears over a frame), some implementations of the present disclosure Examples may include no indication to the user that a rebuffering event is occurring. Because rebuffering is performed at identified appropriate times, rebuffering is less noticeable to users. For example, adding one second representing a black frame in an identified fade-out may not be perceived by the user as rebuffering, but simply as a longer transition in the video item.

또한, 클라이언트 컴퓨팅 시스템(120)의 일부 실시예들은 버퍼에 존재하는 비디오 및/또는 오디오 콘텐츠를 신장시킴으로써 비디오 아이템의 재생을 "일시정지"시킬 수 있다. 클라이언트 컴퓨팅 시스템(120)은 비디오의 주어진 부분이 신장되어 시간상 증가하도록 비디오 및 오디오 정보를 보간할 수 있다. 예를 들어, 버퍼(124)는 5초의 비디오로 처리될 수 있는 데이터를 포함할 수 있다. 이러한 데이터의 일부 또는 전부는 추가 프레임들을 추가하거나 더 긴 기간 동안 프레임들을 표시함으로써 "신장"되어 데이터가 5초가 아닌 6초에 걸쳐 제시되게 할 수 있다. 오디오는 이에 대응하여 피치를 변경하지 않는 방식으로 신장될 수 있다. 일부 실시예들에서, 버퍼 오디오의 관련 부분의 푸리에 스펙트럼은 유사한 오디오 콘텐츠를 합성하기 위해 스펙트럼 프로파일을 생성하는데 이용될 수 있다. 예를 들어, 미디어 아이템에서 식별된 설정 샷은 그 설정 샷이 보여지는 동안 2초의 리버퍼링이 발생하는 것을 허용하기 위해 10초로부터 12초까지 신장될 수 있다. 클라이언트 컴퓨팅 시스템(120)은 샷과 연관된 리버퍼링 포인트를 나타내는 태그를 포함하는 메타데이터에 의해 설정 샷을 식별할 수 있다. 따라서, 클라이언트 컴퓨팅 시스템(120)은 리버퍼링에 이용되는 리버퍼링 포인트의 타입에 기반하여 리버퍼링 응답을 제공할 수 있다.Additionally, some embodiments of the client computing system 120 may “pause” playback of a video item by stretching the video and/or audio content present in the buffer. Client computing system 120 may interpolate the video and audio information such that a given portion of the video is stretched to increase in time. For example, buffer 124 may contain data that can be processed into 5 seconds of video. Some or all of this data may be “stretched” by adding additional frames or displaying the frames for a longer period of time so that the data is presented over 6 seconds rather than 5 seconds. The audio can be stretched in a way that does not change the pitch correspondingly. In some embodiments, the Fourier spectrum of the relevant portion of the buffered audio may be used to create a spectral profile to synthesize similar audio content. For example, an establishing shot identified in a media item may be stretched from 10 seconds to 12 seconds to allow 2 seconds of rebuffering to occur while the establishing shot is being viewed. The client computing system 120 may identify a setup shot by metadata including a tag indicating a rebuffering point associated with the shot. Accordingly, the client computing system 120 may provide a rebuffering response based on the type of rebuffering point used for rebuffering.

일부 실시예들에서, 리버퍼링 포인트가 선택된 후에, 클라이언트 컴퓨팅 시스템(120)은 디스플레이 시스템(132)에 의해 표시될 데이터에 페이드 아웃을 적용할 수 있다. 페이드 아웃은 버퍼링된 데이터에 포함된 비디오 및/또는 오디오에 제공될 수 있다. 일부 실시예들에서, 리버퍼링이 상당량의 시간(예를 들어, 3초, 5초 또는 10초 초과)을 취할 가능성이 있을 때, 미리 결정된 오디오 콘텐츠가 제시될 수 있다. 유사하게, 비디오 아이템의 제목을 보여주는 프레임 또는 비디오 아이템의 챕터 또는 세그먼트와 연관된 프레임과 같은 미리 결정된 비디오 콘텐츠가 제시될 수 있다. 미리 결정된 오디오 콘텐츠가 제시될 때, 콘텐츠는 루핑을 위해 설계될 수 있고, 비디오 아이템의 사운드트랙과 같은 비디오 아이템 자체로부터 획득될 수 있다. 이러한 접근법들은 리버퍼링 주기들을 연장하는 동안 더 나은 사용자 경험을 제공할 수 있고, 이 방법(800)의 실시예들에 포함될 수 있다.In some embodiments, after the rebuffering point is selected, client computing system 120 may apply a fade out to the data to be displayed by display system 132 . A fade out may be provided for video and/or audio included in the buffered data. In some embodiments, the predetermined audio content may be presented when rebuffering is likely to take a significant amount of time (eg, more than 3, 5 or 10 seconds). Similarly, predetermined video content may be presented, such as a frame showing a title of a video item or a frame associated with a chapter or segment of a video item. When a predetermined audio content is presented, the content can be designed for looping and can be obtained from the video item itself, such as the soundtrack of the video item. Such approaches may provide a better user experience while extending rebuffering periods, and may be included in embodiments of the method 800 .

일부 예들에서, 리버퍼링 일시정지가 특정 임계값을 초과하는 경우, 시청자는 버퍼가 원래의 콘텐츠 단편의 제시를 진행하기에 충분한 데이터를 수신할 때까지 중간 제시를 받을 수 있다. 중간 제시는, 예를 들어, 일시정지가 발생하기 전의 콘텐츠 단편의 마지막 10-15초일 수 있다. 일부 예들에서, 시청자가 비디오 재생이 재개되기 직전에 10-15초 보도록, 버퍼가 진행하기에 충분한 데이터를 수신한 후에 중간 콘텐츠가 재생될 수 있다. 일부 예들에서, 시청자는 이러한 요약이 제시되고 있음을 통지받을 수 있다.In some examples, if the rebuffering pause exceeds a certain threshold, the viewer may receive an interim presentation until the buffer receives enough data to proceed with presentation of the original piece of content. An intermediate presentation may be, for example, the last 10-15 seconds of a piece of content before a pause occurs. In some examples, intermediate content may be played after the buffer has received enough data to advance so that the viewer sees 10-15 seconds immediately before video playback resumes. In some examples, the viewer may be notified that such a summary is being presented.

일부 예들에서, 순위 값들은 다양한 실험들을 이용하여 수집된 데이터에 대한 분석을 이용하여 부분적으로 결정될 수 있다. 예를 들어, 피험자들에게 시뮬레이트된 중단된 비디오 스트림들이 보여지고 각각의 우수성/품질을 순위화하도록 요청되는 주관적인 시각적 실험들이 수행될 수 있다. 이 때, 주관적인 스코어들이 전술한 원리들과 함께 이용될 수 있다. 일부 예들에서, 서포트 벡터 기계들, 신경망들 등과 같은 기계 학습 모델들이 이용될 수 있다. 이러한 모델들은 최적의 방식으로 순위 값들을 어떻게 할당할지에 대해 시스템들을 트레이닝하는데 이용될 수 있다. 그 후, 데이터의 추가 집합들이 수신됨에 따라, 리버퍼링 포인트들 및 연관된 순위 값들이 재계산될 수 있다.In some examples, ranking values may be determined in part using analysis of data collected using various experiments. For example, subjective visual experiments can be conducted in which subjects are shown simulated interrupted video streams and asked to rank the goodness/quality of each. In this case, subjective scores may be used in conjunction with the principles described above. In some examples, machine learning models such as support vector machines, neural networks, etc. may be used. These models can be used to train systems on how to assign rank values in an optimal way. Then, as additional sets of data are received, the rebuffering points and associated rank values may be recalculated.

본 명세서에서 설명된 처리 시스템들의 일부 예들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 전술한 방법(800)의 동작들을 수행하게 할 수 있는 실행가능한 코드를 포함하는 비일시적인 유형적 기계 판독가능한 매체를 포함할 수 있다. 이 방법(800)의 동작들을 포함할 수 있는 기계 판독가능한 매체의 일부 일반적인 형태들은, 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치 카드들, 종이 테이프, 홀들의 패턴들을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 및/또는 프로세서 또는 컴퓨터가 판독하도록 적응되는 임의의 다른 매체이다.Some examples of processing systems described herein may be non-transitory tangible machine readable containing executable code that, when executed by one or more processors, may cause the one or more processors to perform the operations of method 800 described above. Any possible medium may be included. Some common types of machine-readable media that may include the operations of method 800 include, for example, a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, a CD-ROM, any other optical media, punch cards, paper tape, any other physical media with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or adapted to be read by a processor or computer. any other medium.

본 개시내용의 실시예들은 리버퍼링 이벤트들의 배치를 최적화함으로써 스트리밍 미디어 환경에서 이용되는 서버 및 클라이언트 시스템들을 개선할 수 있다. 최적화된 배치는 스트리밍되는 데이터, 스트리밍되는 데이터의 콘텐츠, 및 클라이언트 디바이스가 경험하는 네트워크 조건들에 기반하여 결정될 수 있다. 최적화된 배치는 이들 컴퓨팅 시스템들을 개선함으로써 개선된 사용자 경험을 제공할 수 있다.Embodiments of the present disclosure may improve server and client systems used in a streaming media environment by optimizing the placement of rebuffering events. An optimized placement can be determined based on the data being streamed, the content of the data being streamed, and the network conditions experienced by the client device. An optimized layout can provide an improved user experience by improving these computing systems.

예시적인 실시예들이 도시되고 설명되었지만, 광범위한 수정, 변경 및 치환이 전술한 개시내용에서 고려되며, 일부 경우들에서는, 실시예들의 일부 특징들이 다른 특징들의 대응하는 이용 없이 이용될 수 있다. 관련 기술분야의 통상의 기술자는 많은 변형들, 대안들 및 수정들을 인식할 것이다. 청구항들은 본 명세서에 개시된 실시예들의 범위와 일치하는 방식으로 넓게 해석되어야 한다. 따라서, 본 개시내용의 특정 양태들은 이하의 넘버링된 항들에서 제시된다:While exemplary embodiments have been shown and described, a wide range of modifications, changes, and permutations are contemplated in the foregoing disclosure, and in some cases, some features of the embodiments may be utilized without corresponding use of other features. One skilled in the relevant art will recognize many variations, alternatives and modifications. The claims are to be interpreted broadly in a manner consistent with the scope of the embodiments disclosed herein. Accordingly, certain aspects of the present disclosure are presented in the numbered claims below:

1항. 방법으로서, 컴퓨팅 시스템에 의해, 버퍼에 비디오 아이템을 나타내는 데이터를 수신하는 단계; 상기 컴퓨팅 시스템에 의해, 상기 버퍼로부터 디스플레이 시스템으로 상기 비디오 아이템을 출력하는 단계; 상기 컴퓨팅 시스템에 의해, 상기 버퍼의 이용률이 미리 결정된 임계값 아래로 떨어지는 것으로 결정하는 단계; 상기 버퍼의 이용률이 상기 미리 결정된 임계값 아래로 떨어지는 것으로 결정하는 것에 응답하여, 미리 결정된 시간 프레임 내에 지정된 리버퍼링 포인트가 존재한다고 결정하는 단계; 및 상기 컴퓨팅 시스템에 의해, 상기 미리 결정된 시간 프레임 내에 상기 지정된 리버퍼링 포인트가 존재한다고 결정하는 것에 응답하여 상기 지정된 리버퍼링 포인트에서 상기 비디오 아이템을 일시정지시키는 단계를 포함하는 방법.Section 1. A method comprising: receiving, by a computing system, data representing a video item in a buffer; outputting, by the computing system, the video item from the buffer to a display system; determining, by the computing system, that the utilization of the buffer falls below a predetermined threshold; in response to determining that the utilization rate of the buffer falls below the predetermined threshold, determining that a designated rebuffering point exists within a predetermined time frame; and pausing, by the computing system, the video item at the designated rebuffering point in response to determining that the designated rebuffering point exists within the predetermined time frame.

2항. 1항에 있어서, 미리 결정된 시간량 후에 상기 비디오 아이템을 재개시키는 단계를 더 포함하고, 상기 미리 결정된 시간량은 상기 비디오 아이템이 상기 버퍼에 의해 수신되는 레이트에 기반하는 방법.Section 2. 2. The method of claim 1, further comprising resuming the video item after a predetermined amount of time, wherein the predetermined amount of time is based on a rate at which the video item is received by the buffer.

3항. 1항 또는 2항에 있어서, 상기 지정된 리버퍼링 포인트는 샷 변경 및 장면 변경 중 하나에 대응하는 방법.Section 3. 3. The method of claim 1 or 2, wherein the designated rebuffering point corresponds to one of a shot change and a scene change.

4항. 1항 내지 3항 중 어느 한 항에 있어서, 상기 지정된 리버퍼링 포인트는 프레임 움직임 값이 미리 결정된 움직임 임계값 아래인 것에 대응하는 방법.Section 4. 4. A method according to any one of claims 1 to 3, wherein the designated rebuffering point corresponds to a frame motion value being below a predetermined motion threshold.

5항. 1항 내지 4항 중 어느 한 항에 있어서, 상기 지정된 리버퍼링 포인트는 시각적 속성들을 나타내는 값들이 미리 정의된 시각적 속성 임계값 아래인 포인트에 대응하는 방법.Section 5. 5. A method according to any one of claims 1 to 4, wherein the designated rebuffering point corresponds to a point whose values representing visual attributes are below a predefined visual attribute threshold.

6항. 1항 내지 5항 중 어느 한 항에 있어서, 상기 지정된 리버퍼링 포인트는 상기 비디오 아이템의 대화에서의 일시정지인 방법.Section 6. 6. A method according to any one of claims 1 to 5, wherein the designated rebuffering point is a pause in the conversation of the video item.

7항. 1항 내지 6항 중 어느 한 항에 있어서, 상기 지정된 리버퍼링 포인트는 상기 비디오 아이템 내의 복수의 잠재적 리버퍼링 포인트 중에서 선택되고, 상기 복수의 잠재적 리버퍼링 포인트는 상이한 타입들을 가지며, 상기 상이한 타입들은 상이한 순위 값들을 할당 받는 방법.Section 7. 7. The method of any one of claims 1 to 6, wherein the designated rebuffering point is selected from among a plurality of potential rebuffering points in the video item, the plurality of potential rebuffering points have different types, and the different types are different How to get assigned rank values.

8항. 7항에 있어서, 상기 비디오 아이템을 일시정지시키는 단계는 상기 지정된 리버퍼링 포인트가 특정 순위 위에 있는 경우에만 발생하는 방법.Clause 8. 8. The method of claim 7, wherein the step of pausing the video item occurs only if the designated rebuffering point is above a certain rank.

9항. 1항 내지 8항 중 어느 한 항에 있어서, 상기 지정된 리버퍼링 포인트는 상기 비디오 아이템이 상기 컴퓨팅 시스템에 스트리밍되기 전에 상기 비디오 아이템 내에서 식별되는 방법.Clause 9. 9. A method according to any preceding claim, wherein the designated rebuffering point is identified within the video item before the video item is streamed to the computing system.

10항. 1항 내지 9항 중 어느 한 항에 있어서, 상기 지정된 리버퍼링 포인트가 위치되는 상기 비디오 아이템의 일부가 상기 버퍼 내에 있는 동안 상기 지정된 리버퍼링 포인트가 상기 컴퓨팅 시스템에 의해 식별되는 방법.Section 10. 10. A method according to any preceding claim, wherein the designated rebuffering point is identified by the computing system while the portion of the video item on which the designated rebuffering point is located is within the buffer.

11항. 방법으로서, 컴퓨팅 시스템에 의해, 버퍼에 비디오 아이템을 나타내는 제1 데이터를 수신하고 상기 비디오 아이템에 대한 지정된 리버퍼링 포인트들의 세트를 표시하는 제2 데이터를 수신하는 단계; 상기 컴퓨팅 시스템에 의해, 상기 버퍼로부터 디스플레이 시스템으로 상기 비디오 아이템을 나타내는 상기 제1 데이터를 출력하는 단계; 상기 제1 데이터가 수신되는 레이트가 상기 버퍼로부터 상기 디스플레이 시스템으로 상기 제1 데이터가 출력되는 레이트보다 임계량만큼 더 작은 것으로 결정하는 단계; 및 상기 제1 데이터가 수신되는 레이트가 상기 디스플레이 시스템으로 상기 제1 데이터가 출력되는 레이트보다 상기 임계량만큼 더 작은 것으로 결정하는 것에 응답하여, 상기 지정된 리버퍼링 포인트들의 세트 중 하나의 지정된 리버퍼링 포인트에서 미디어 스트림을 일시정지시키는 단계를 포함하는 방법.Section 11. A method comprising: receiving, by a computing system, first data representing a video item in a buffer and receiving second data indicating a set of designated rebuffering points for the video item; outputting, by the computing system, the first data representative of the video item from the buffer to a display system; determining that the rate at which the first data is received is smaller than the rate at which the first data is output from the buffer to the display system by a threshold amount; and in response to determining that the rate at which the first data is received is less than the rate at which the first data is output to the display system by the threshold amount, at one designated rebuffering point of the set of designated rebuffering points. A method comprising pausing a media stream.

12항. 11항에 있어서, 상기 지정된 리버퍼링 포인트들의 세트는 샷 변경들, 장면 변경들, 미리 정의된 시각적 특성들을 갖는 장면들, 및 대화에서의 일시정지들을 포함하는 방법.Section 12. 12. The method of claim 11, wherein the set of designated rebuffering points includes shot changes, scene changes, scenes with predefined visual characteristics, and pauses in dialogue.

13항. 12항에 있어서, 상이한 타입들의 리버퍼링 포인트들은 상이한 순위들을 할당 받는 방법.Article 13. 13. The method of claim 12, wherein different types of rebuffering points are assigned different ranks.

14항. 13항에 있어서, 상기 지정된 리버퍼링 포인트들의 세트 중 하나의 지정된 리버퍼링 포인트는 상기 제1 데이터가 수신되는 레이트와, 상기 버퍼로부터 상기 디스플레이 시스템으로 상기 제1 데이터가 출력되는 레이트 간의 차이에 기반하여 선택되는 방법.Section 14. 14. The method of claim 13, wherein one designated rebuffering point of the set of designated rebuffering points is based on a difference between a rate at which the first data is received and a rate at which the first data is output from the buffer to the display system. How to be chosen.

15항. 14항에 있어서, 선택된 리버퍼링 포인트가 선택되는 허용가능한 리버퍼링 포인트들의 서브세트는 상기 차이가 증가함에 따라 추가적인 타입들의 리버퍼링 포인트들을 포함하는 방법.Article 15. 15. The method of claim 14, wherein the subset of acceptable rebuffering points from which the selected rebuffering point is selected includes additional types of rebuffering points as the difference increases.

16항. 13항 내지 15항 중 어느 한 항에 있어서, 상기 리버퍼링 포인트들의 세트의 복수의 리버퍼링 포인트에서 상기 미디어 스트림을 일시정지시키는 단계를 더 포함하고, 복수의 선택된 리버퍼링 포인트 각각에서의 일시정지는 그 리버퍼링 포인트에 할당된 순위 값에 기반하여 상이한 기간 동안에 이루어지는 방법.Article 16. 16. The method of any one of claims 13 to 15, further comprising pausing the media stream at a plurality of rebuffering points of the set of rebuffering points, wherein pausing at each of the plurality of selected rebuffering points A method for different time periods based on the rank value assigned to that rebuffering point.

17항. 11항 내지 16항 중 어느 한 항에 있어서, 상기 비디오 아이템이 일시정지되는 기간은 상기 버퍼가 미리 결정된 값 아래일 때의 예측에 기반하는 방법.Article 17. 17. A method according to any one of claims 11 to 16, wherein the duration for which the video item is paused is based on a prediction when the buffer is below a predetermined value.

18항. 스트리밍 미디어 재생에서 리버퍼링 이벤트의 배치를 최적화하는 방법으로서, 서버 컴퓨팅 시스템에 의해, 스트리밍 비디오 아이템을 수신하는 단계; 이미지 처리를 수행하여 상기 스트리밍 비디오 아이템에서 복수의 지정된 리버퍼링 포인트를 식별하는 단계; 식별된 복수의 지정된 리버퍼링 포인트를 특징화하는 정보를 메모리에 저장하는 단계; 및 상기 식별된 복수의 지정된 리버퍼링 포인트를 특징화하는 상기 정보를 네트워크를 통해 클라이언트 컴퓨팅 시스템에 전송하는 단계를 포함하는, 스트리밍 미디어 재생에서 리버퍼링 이벤트의 배치를 최적화하는 방법.Article 18. CLAIMS 1. A method of optimizing placement of rebuffering events in streaming media playback, comprising: receiving, by a server computing system, a streaming video item; performing image processing to identify a plurality of designated rebuffering points in the streaming video item; storing information characterizing the identified plurality of designated rebuffering points in a memory; and transmitting the information characterizing the identified plurality of designated rebuffering points to a client computing system over a network.

19항. 18항에 있어서, 상기 식별된 복수의 지정된 리버퍼링 포인트를 특징화하는 상기 정보는 지정된 리버퍼링 포인트와 연관된 타임스탬프들 및 프레임 번호들, 및 각각의 지정된 리버퍼링 포인트와 연관된 리버퍼링 포인트 타입을 표시하는 태그 중 적어도 하나를 포함하는, 스트리밍 미디어 재생에서 리버퍼링 이벤트의 배치를 최적화하는 방법.Article 19. 19. The method of claim 18, wherein the information characterizing the identified plurality of designated rebuffering points indicates timestamps and frame numbers associated with the designated rebuffering point, and a rebuffering point type associated with each designated rebuffering point. A method for optimizing placement of rebuffering events in streaming media playback comprising at least one of the following tags:

20항. 18항에 있어서, 상기 스트리밍 비디오 아이템을 상기 클라이언트 컴퓨팅 시스템에 전송하는 단계를 더 포함하고, 상기 스트리밍 비디오 아이템을 전송하는 단계는 상기 식별된 복수의 지정된 리버퍼링 포인트를 특징화하는 상기 정보를 전송하는 단계와 관련하여 수행되는, 스트리밍 미디어 재생에서 리버퍼링 이벤트의 배치를 최적화하는 방법.Article 20. 19. The method of claim 18, further comprising transmitting the streaming video item to the client computing system, wherein transmitting the streaming video item comprises transmitting the information characterizing the identified plurality of designated rebuffering points. A method for optimizing placement of rebuffering events in streaming media playback performed in terms of steps.

Claims (20)

방법으로서,
컴퓨팅 시스템에 의해, 버퍼에 비디오 아이템을 나타내는 데이터를 수신하는 단계;
상기 컴퓨팅 시스템에 의해, 상기 버퍼로부터 디스플레이 시스템으로 상기 비디오 아이템을 출력하는 단계;
상기 컴퓨팅 시스템에 의해, 상기 버퍼의 이용률이 미리 결정된 임계값 아래로 떨어지는 것으로 결정하는 단계;
상기 버퍼의 이용률이 상기 미리 결정된 임계값 아래로 떨어지는 것으로 결정하는 것에 응답하여, 상기 컴퓨팅 시스템에 의해, 미리 결정된 시간 프레임 내에 지정된 리버퍼링 포인트가 존재한다고 결정하는 단계 - 상기 지정된 리버퍼링 포인트는 상기 비디오 아이템 내의 복수의 잠재적 리버퍼링 포인트 중에서 선택되고, 상기 복수의 잠재적 리버퍼링 포인트는 상이한 순위 값들을 할당 받은 상이한 타입들의 리버퍼링 포인트들을 포함하며, 가장 높은 순위의 리버퍼링 포인트가 상기 지정된 리버퍼링 포인트로서 선택됨 -; 및
상기 컴퓨팅 시스템에 의해, 상기 미리 결정된 시간 프레임 내에 상기 지정된 리버퍼링 포인트가 존재한다고 결정하는 것에 응답하여 상기 지정된 리버퍼링 포인트에서 상기 비디오 아이템을 일시정지시키는 단계
를 포함하는 방법.
As a method,
receiving, by a computing system, data representing a video item in a buffer;
outputting, by the computing system, the video item from the buffer to a display system;
determining, by the computing system, that the utilization of the buffer falls below a predetermined threshold;
determining, by the computing system, that a designated rebuffering point exists within a predetermined time frame in response to determining that the utilization rate of the buffer falls below the predetermined threshold, wherein the designated rebuffering point corresponds to the video is selected from among a plurality of potential rebuffering points in an item, the plurality of potential rebuffering points include rebuffering points of different types assigned different ranking values, the highest ranking rebuffering point being the designated rebuffering point. selected -; and
pausing, by the computing system, the video item at the designated rebuffering point in response to determining that the designated rebuffering point exists within the predetermined time frame;
How to include.
제1항에 있어서,
미리 결정된 시간량 후에 상기 비디오 아이템을 재개시키는 단계를 더 포함하고, 상기 미리 결정된 시간량은 상기 비디오 아이템이 상기 버퍼에 의해 수신되는 레이트에 기반하는 방법.
According to claim 1,
resuming the video item after a predetermined amount of time, wherein the predetermined amount of time is based on a rate at which the video item is received by the buffer.
제1항에 있어서,
상기 지정된 리버퍼링 포인트는 샷 변경 및 장면 변경 중 하나에 대응하는 방법.
According to claim 1,
The designated rebuffering point corresponds to one of a shot change and a scene change.
제1항에 있어서,
상기 지정된 리버퍼링 포인트는 프레임 움직임 값이 미리 결정된 움직임 임계값 아래인 상기 비디오 아이템 내의 포인트에 대응하는 방법.
According to claim 1,
wherein the designated rebuffering point corresponds to a point within the video item at which a frame motion value is below a predetermined motion threshold.
제1항에 있어서,
상기 지정된 리버퍼링 포인트는 시각적 속성들을 나타내는 값들이 미리 정의된 시각적 속성 임계값 아래인 포인트에 대응하는 방법.
According to claim 1,
wherein the designated rebuffering point corresponds to a point whose values representing visual attributes are below a predefined visual attribute threshold.
제1항에 있어서,
상기 지정된 리버퍼링 포인트는 상기 비디오 아이템 내의 청각 마커인 방법.
According to claim 1,
wherein the designated rebuffering point is an auditory marker within the video item.
삭제delete 제1항에 있어서,
상기 비디오 아이템을 일시정지시키는 단계는 상기 지정된 리버퍼링 포인트가 최소 특정 순위 위에 있는 경우에만 발생하는 방법.
According to claim 1,
wherein the step of pausing the video item occurs only if the designated rebuffering point is above a minimum specific rank.
제1항에 있어서,
상기 지정된 리버퍼링 포인트는 상기 비디오 아이템이 상기 컴퓨팅 시스템에 스트리밍되기 전에 상기 비디오 아이템 내에서 식별되는 방법.
According to claim 1,
The designated rebuffering point is identified within the video item before the video item is streamed to the computing system.
제1항에 있어서,
상기 지정된 리버퍼링 포인트가 위치되는 상기 비디오 아이템의 일부가 상기 버퍼 내에 있는 동안 상기 지정된 리버퍼링 포인트가 상기 컴퓨팅 시스템에 의해 식별되는 방법.
According to claim 1,
The designated rebuffering point is identified by the computing system while the portion of the video item at which the designated rebuffering point is located is within the buffer.
방법으로서,
컴퓨팅 시스템에 의해, 버퍼에 비디오 아이템을 나타내는 제1 데이터를 수신하고 상기 비디오 아이템에 대한 지정된 리버퍼링 포인트들의 세트를 표시하는 제2 데이터를 수신하는 단계;
상기 컴퓨팅 시스템에 의해, 상기 버퍼로부터 디스플레이 시스템으로 상기 비디오 아이템을 나타내는 상기 제1 데이터를 출력하는 단계;
상기 제1 데이터가 수신되는 레이트가 상기 버퍼로부터 상기 디스플레이 시스템으로 상기 제1 데이터가 출력되는 레이트보다 임계량만큼 더 작은 것으로 결정하는 단계; 및
상기 제1 데이터가 수신되는 레이트가 상기 디스플레이 시스템으로 상기 제1 데이터가 출력되는 레이트보다 상기 임계량만큼 더 작은 것으로 결정하는 것에 응답하여, 상기 지정된 리버퍼링 포인트들의 세트에서 선택된 리버퍼링 포인트에서 미디어 스트림을 일시정지시키는 단계 - 상기 지정된 리버퍼링 포인트들의 세트는 상이한 순위 값들을 할당 받은 상이한 타입들의 리버퍼링 포인트들을 포함하며, 가장 높은 순위의 리버퍼링 포인트가 상기 선택된 리버퍼링 포인트로서 사용됨 -
를 포함하는 방법.
As a method,
receiving, by a computing system, first data representing a video item in a buffer and receiving second data indicating a set of designated rebuffering points for the video item;
outputting, by the computing system, the first data representative of the video item from the buffer to a display system;
determining that the rate at which the first data is received is smaller than the rate at which the first data is output from the buffer to the display system by a threshold amount; and
in response to determining that the rate at which the first data is received is less than the rate at which the first data is output to the display system by the threshold amount, a media stream at a rebuffering point selected from the set of specified rebuffering points. Pausing, wherein the designated set of rebuffering points includes rebuffering points of different types assigned different ranking values, the highest ranking rebuffering point being used as the selected rebuffering point;
How to include.
제11항에 있어서,
상기 지정된 리버퍼링 포인트들의 세트는 샷 변경들, 장면 변경들, 미리 정의된 시각적 특성들을 갖는 장면들, 및 대화에서의 일시정지들을 포함하는 방법.
According to claim 11,
wherein the set of designated rebuffering points includes shot changes, scene changes, scenes with predefined visual characteristics, and pauses in dialogue.
제12항에 있어서,
상이한 타입들의 리버퍼링 포인트들은 상이한 순위들을 할당 받는 방법.
According to claim 12,
Rebuffering points of different types are assigned different ranks.
제13항에 있어서,
상기 지정된 리버퍼링 포인트들의 세트 중 하나의 지정된 리버퍼링 포인트는 상기 제1 데이터가 수신되는 레이트와, 상기 버퍼로부터 상기 디스플레이 시스템으로 상기 제1 데이터가 출력되는 레이트 간의 차이에 기반하여 선택되는 방법.
According to claim 13,
wherein one designated rebuffering point of the set of designated rebuffering points is selected based on a difference between a rate at which the first data is received and a rate at which the first data is output from the buffer to the display system.
제14항에 있어서,
선택된 리버퍼링 포인트가 선택되는 허용가능한 리버퍼링 포인트들의 서브세트는 상기 차이가 증가함에 따라 추가적인 타입들의 리버퍼링 포인트들을 포함하는 방법.
According to claim 14,
The subset of acceptable rebuffering points from which the selected rebuffering point is selected includes additional types of rebuffering points as the difference increases.
제13항에 있어서,
상기 리버퍼링 포인트들의 세트의 복수의 리버퍼링 포인트에서 상기 미디어 스트림을 일시정지시키는 단계를 더 포함하고, 복수의 선택된 리버퍼링 포인트 각각에서의 일시정지는 그 리버퍼링 포인트에 할당된 순위 값에 기반하여 상이한 기간 동안에 이루어지는 방법.
According to claim 13,
further comprising pausing the media stream at a plurality of rebuffering points of the set of rebuffering points, wherein pausing at each of a plurality of selected rebuffering points is based on a rank value assigned to that rebuffering point; Methods made during different time periods.
제11항에 있어서,
상기 비디오 아이템이 일시정지되는 기간은 상기 버퍼가 미리 결정된 값 아래일 때의 예측에 기반하는 방법.
According to claim 11,
wherein the duration for which the video item is paused is based on a prediction of when the buffer is below a predetermined value.
스트리밍 미디어 재생에서 리버퍼링 이벤트의 배치를 최적화하는 방법으로서,
서버 컴퓨팅 시스템에 의해, 스트리밍 비디오 아이템을 수신하는 단계;
이미지 처리를 수행하여 상기 스트리밍 비디오 아이템에서 복수의 지정된 리버퍼링 포인트를 식별하는 단계 - 상기 복수의 지정된 리버퍼링 포인트는 상이한 순위 값들을 할당 받은 상이한 타입들의 리버퍼링 포인트들을 포함함 -;
식별된 복수의 지정된 리버퍼링 포인트를 특징화하는 정보를 메모리에 저장하는 단계; 및
상기 식별된 복수의 지정된 리버퍼링 포인트를 특징화하는 상기 정보를 네트워크를 통해 클라이언트 컴퓨팅 시스템에 전송하는 단계 - 상기 스트리밍 비디오 아이템은 선택된 가장 높은 순위의 리버퍼링 포인트에서 리버퍼링됨 -
를 포함하는, 스트리밍 미디어 재생에서 리버퍼링 이벤트의 배치를 최적화하는 방법.
A method for optimizing the placement of rebuffering events in streaming media playback, comprising:
receiving, by a server computing system, a streaming video item;
performing image processing to identify a plurality of designated rebuffering points in the streaming video item, the plurality of designated rebuffering points comprising different types of rebuffering points assigned different rank values;
storing information characterizing the identified plurality of designated rebuffering points in a memory; and
Transmitting the information characterizing the identified plurality of designated rebuffering points to a client computing system via a network, wherein the streaming video item is rebuffered at the selected highest ranked rebuffering point.
A method for optimizing placement of rebuffering events in streaming media playback, comprising:
제18항에 있어서,
상기 식별된 복수의 지정된 리버퍼링 포인트를 특징화하는 상기 정보는 지정된 리버퍼링 포인트와 연관된 타임스탬프들 및 프레임 번호들, 및 각각의 지정된 리버퍼링 포인트와 연관된 리버퍼링 포인트 타입을 표시하는 태그 중 적어도 하나를 포함하는, 스트리밍 미디어 재생에서 리버퍼링 이벤트의 배치를 최적화하는 방법.
According to claim 18,
The information characterizing the identified plurality of designated rebuffering points is at least one of timestamps and frame numbers associated with the designated rebuffering point, and a tag indicating a rebuffering point type associated with each designated rebuffering point. A method for optimizing placement of rebuffering events in streaming media playback, comprising:
제18항에 있어서,
상기 스트리밍 비디오 아이템을 상기 클라이언트 컴퓨팅 시스템에 전송하는 단계를 더 포함하고, 상기 스트리밍 비디오 아이템을 전송하는 단계는 상기 식별된 복수의 지정된 리버퍼링 포인트를 특징화하는 상기 정보를 전송하는 단계와 관련하여 수행되는, 스트리밍 미디어 재생에서 리버퍼링 이벤트의 배치를 최적화하는 방법.
According to claim 18,
further comprising transmitting the streaming video item to the client computing system, wherein transmitting the streaming video item is performed in conjunction with transmitting the information characterizing the identified plurality of designated rebuffering points. How to optimize the placement of rebuffering events in streaming media playback.
KR1020197034871A 2017-05-31 2018-05-21 Temporal Placement of Rebuffering Events KR102489164B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/610,053 US10425683B2 (en) 2017-05-31 2017-05-31 Temporal placement of a rebuffering event
US15/610,053 2017-05-31
PCT/US2018/033729 WO2018222435A1 (en) 2017-05-31 2018-05-21 Temporal placement of a rebuffering event

Publications (2)

Publication Number Publication Date
KR20200013658A KR20200013658A (en) 2020-02-07
KR102489164B1 true KR102489164B1 (en) 2023-01-13

Family

ID=63586813

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197034871A KR102489164B1 (en) 2017-05-31 2018-05-21 Temporal Placement of Rebuffering Events

Country Status (10)

Country Link
US (5) US10425683B2 (en)
EP (1) EP3632121A1 (en)
JP (1) JP7155164B2 (en)
KR (1) KR102489164B1 (en)
CN (1) CN110679153B (en)
AU (1) AU2018275194B2 (en)
BR (1) BR112019024004A2 (en)
CA (1) CA3064557C (en)
MX (1) MX2019014297A (en)
WO (1) WO2018222435A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425683B2 (en) 2017-05-31 2019-09-24 Netflix, Inc. Temporal placement of a rebuffering event
US10848819B2 (en) 2018-09-25 2020-11-24 Rovi Guides, Inc. Systems and methods for adjusting buffer size
US11265597B2 (en) * 2018-10-23 2022-03-01 Rovi Guides, Inc. Methods and systems for predictive buffering of related content segments
CN113727386B (en) * 2021-08-09 2023-06-23 中国联合网络通信集团有限公司 Communication method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260743A1 (en) 2006-05-03 2007-11-08 Sony Ericsson Mobile Communications Ab Adaptive streaming buffering
US20080109556A1 (en) * 2006-11-07 2008-05-08 Sony Ericsson Mobile Communications Ab Adaptive insertion of content in streaming media
US20170034069A1 (en) 2015-07-29 2017-02-02 Freescale Semiconductor Inc. Reduction Of Silicon Area for Ethernet PFC Protocol Implementation In Queue Based Network Processors

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002359833A (en) 2001-03-27 2002-12-13 Hitachi Ltd Data communication system, transmitter and communication terminal
US8209429B2 (en) * 2001-07-19 2012-06-26 British Telecommunications Public Limited Company Video stream switching
JP4310158B2 (en) 2002-10-08 2009-08-05 キヤノン株式会社 Receiving apparatus and receiving method
US8355434B2 (en) * 2005-01-10 2013-01-15 Qualcomm Incorporated Digital video line-by-line dynamic rate adaptation
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
CN102088395B (en) * 2009-12-02 2014-03-19 杭州华三通信技术有限公司 Method and device for adjusting media data cache
US20110283014A1 (en) * 2010-05-14 2011-11-17 Rahul Malik Distribution of Multimedia Content over a Network
EP2547062B1 (en) * 2011-07-14 2016-03-16 Nxp B.V. Media streaming with adaptation
US20130326551A1 (en) * 2012-05-30 2013-12-05 Debdeep CHATTERJEE Wireless multimedia quality of experience reporting
US9584787B1 (en) * 2012-06-08 2017-02-28 Amazon Technologies, Inc. Performance optimization for streaming video
AU2014223523B2 (en) * 2013-02-27 2016-11-17 Apple Inc. Adaptive streaming techniques
US20140282690A1 (en) * 2013-03-12 2014-09-18 International Business Machines Corporation Pre-Defined Streaming Media Buffer Points
US9497682B2 (en) * 2013-06-07 2016-11-15 Intel Corporation Central processing unit and methods for supporting coordinated multipoint transmission in an LTE network
WO2014209305A1 (en) * 2013-06-26 2014-12-31 Intel Corporation Checkpoints for media buffering
CN103530253B (en) * 2013-09-30 2016-08-17 华为技术有限公司 Cluster many overall situations Buffer Pool system, Centroid, calculating node and management method
EP2916544A1 (en) * 2014-03-06 2015-09-09 Alcatel Lucent Method to determine the quality of a video stream
CN107211193B (en) * 2015-02-07 2021-04-13 视觉波公司 Intelligent adaptive video streaming method and system driven by perception experience quality estimation
CN105933624A (en) * 2016-06-17 2016-09-07 武汉斗鱼网络科技有限公司 Method and device for recording website video
US10425683B2 (en) 2017-05-31 2019-09-24 Netflix, Inc. Temporal placement of a rebuffering event

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260743A1 (en) 2006-05-03 2007-11-08 Sony Ericsson Mobile Communications Ab Adaptive streaming buffering
US20080109556A1 (en) * 2006-11-07 2008-05-08 Sony Ericsson Mobile Communications Ab Adaptive insertion of content in streaming media
US20170034069A1 (en) 2015-07-29 2017-02-02 Freescale Semiconductor Inc. Reduction Of Silicon Area for Ethernet PFC Protocol Implementation In Queue Based Network Processors

Also Published As

Publication number Publication date
BR112019024004A2 (en) 2020-06-02
US20200007930A1 (en) 2020-01-02
KR20200013658A (en) 2020-02-07
US10425683B2 (en) 2019-09-24
CN110679153B (en) 2022-06-07
US11025986B2 (en) 2021-06-01
CN110679153A (en) 2020-01-10
US11388472B2 (en) 2022-07-12
US20180352292A1 (en) 2018-12-06
US20220345776A1 (en) 2022-10-27
AU2018275194A1 (en) 2019-11-07
CA3064557C (en) 2022-03-29
US11863814B2 (en) 2024-01-02
CA3064557A1 (en) 2018-12-06
US20240089530A1 (en) 2024-03-14
EP3632121A1 (en) 2020-04-08
MX2019014297A (en) 2020-01-27
WO2018222435A1 (en) 2018-12-06
US20210289258A1 (en) 2021-09-16
AU2018275194B2 (en) 2022-10-13
JP2020522193A (en) 2020-07-27
JP7155164B2 (en) 2022-10-18

Similar Documents

Publication Publication Date Title
US11863814B2 (en) Temporal placement of a rebuffering event
US11386932B2 (en) Audio modification for adjustable playback rate
JP6562992B2 (en) Trick playback in digital video streaming
JP5461176B2 (en) Fingerprint, apparatus and method for identifying and synchronizing video
US20070217505A1 (en) Adaptive Decoding Of Video Data
WO2015031548A1 (en) Audio video playback synchronization for encoded media
JP5775814B2 (en) Apparatus and method for adjusting audiovisual system to viewer's attention level
US20190327425A1 (en) Image processing device, method and program
EP3525475A1 (en) Electronic device and method for generating summary image of electronic device
JP6385236B2 (en) Video playback apparatus and video playback method
JP6641230B2 (en) Video playback device and video playback method
JPWO2006040827A1 (en) Transmitting apparatus, receiving apparatus, and reproducing apparatus
US11546673B2 (en) Automatic video augmentation
JP2011182274A (en) Video recording and reproducing apparatus
KR20220039114A (en) An electronic apparatus and a method of operating the electronic apparatus
CN117812289A (en) Audio and video transcoding method and device and electronic equipment
JP2018056871A (en) Image reproduction apparatus, and image reproduction system
AU2005248864A1 (en) Adaptive decoding of video data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant