KR102286410B1 - 반복적 재생을 피하기 위한 미디어 타이틀의 이전에 스트리밍된 부분들의 식별 - Google Patents

반복적 재생을 피하기 위한 미디어 타이틀의 이전에 스트리밍된 부분들의 식별 Download PDF

Info

Publication number
KR102286410B1
KR102286410B1 KR1020207004532A KR20207004532A KR102286410B1 KR 102286410 B1 KR102286410 B1 KR 102286410B1 KR 1020207004532 A KR1020207004532 A KR 1020207004532A KR 20207004532 A KR20207004532 A KR 20207004532A KR 102286410 B1 KR102286410 B1 KR 102286410B1
Authority
KR
South Korea
Prior art keywords
video sequence
fingerprints
fingerprint
sequence
representative frame
Prior art date
Application number
KR1020207004532A
Other languages
English (en)
Other versions
KR20200029021A (ko
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 KR20200029021A publication Critical patent/KR20200029021A/ko
Application granted granted Critical
Publication of KR102286410B1 publication Critical patent/KR102286410B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • H04L65/4069
    • H04L65/4084
    • H04L65/605
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • H04N21/4545Input to filtering algorithms, e.g. filtering a region of the image
    • H04N21/45457Input to filtering algorithms, e.g. filtering a region of the image applied to a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

시퀀스 분석기는 에피소드 시리즈의 상이한 에피소드들을 비교하여 사용자에게 이미 재생된 시리즈의 현재 에피소드의 부분들을 식별한다. 그런 부분들은 크레디트들과 같은 소개 자료, 또는 이전 에피소드들로부터의 콘텐츠를 포함하는 요약 섹션을 포함할 수 있다. 시퀀스 분석기는 시리즈의 이전 에피소드들을 파싱하고 각각의 샷 시퀀스에 대한 대표 프레임을 선택한다. 그 후, 시퀀스 분석기는 연관된 대표 프레임에 기초하여 각각의 샷 시퀀스에 대한 핑거프린트를 생성한다. 시퀀스 분석기는 시리즈의 현재 에피소드와 연관된 핑거프린트들을 시리즈의 하나 이상의 이전 에피소드들과 연관된 핑거프린트들과 비교하여 이미 재생된 샷 시퀀스들을 식별한다. 그 후 사용자는 재생 인터페이스를 통해 이들 반복 시퀀스들을 건너뛸 수 있다.

Description

반복적 재생을 피하기 위한 미디어 타이틀의 이전에 스트리밍된 부분들의 식별
[관련 출원에 대한 상호 참조]
본 출원은 2017년 7월 19일자로 출원된 미국 특허 출원 제15/654,657호의 이익을 주장하며, 이 출원은 본 명세서에 참조로 포함된다.
본 발명은 일반적으로 비디오 재생에 관한 것으로, 보다 구체적으로는, 반복적 재생을 피하기 위해 미디어 타이틀의 이전에 스트리밍된 부분들을 식별하는 것에 관한 것이다.
종래의 스트리밍 비디오 서비스는 전형적으로, 무엇보다도, 장편 영화들(full-length movies), 애니메이션 단편들(animated shorts), 다큐멘터리들(documentaries), 및 에피소드 시리즈들을 포함하여 매우 다양하고 상이한 타입들의 미디어 타이틀에 대한 액세스를 제공한다. 에피소드 시리즈는 종종 각각의 에피소드의 시작에서 재생되는 소개 시퀀스를 포함한다. 소개 시퀀스들은 흔히 주요 캐릭터들을 연달아 묘사하고, 시리즈와 연관된 주제 노래를 재생하고, 시리즈의 제작과 관련된 사람들을 표시하는 크레디트를 표시하고, 기타 등등을 한다. 에피소드 시리즈는 또한 때때로, 시리즈에서의 과거 사건들에 대한 시청자의 기억을 되살리고 현재 에피소드에 대한 정황을 제공하기 위해서 하나 이상의 이전 에피소드로부터의 콘텐츠가 디스플레이되는 요약 시퀀스(recap sequence)를 포함한다.
상기 접근법의 한가지 문제점은 소개 및 요약 시퀀스들이 시리즈에서의 다양한 에피소드들에 걸쳐서 상당히 반복적일 수 있다는 것이다. 결과적으로, 비디오 스트리밍 서비스의 사용자들은 이전에 시청했던 콘텐츠를 반복적으로 시청하도록 강제되어, 이들 사용자들이 따분함을 느끼거나 짜증이 나도록 야기할 수 있다.
전술한 내용이 말해주듯이, 사용자들로 하여금 이전에 사용자들에게 재생되었던 에피소드에서의 콘텐츠를 건너뛸 수 있게 허용하는 기술이 유용할 것이다.
본 발명의 일 실시예는, 제1 비디오 시퀀스에 기초하여 제1 핑거프린트들의 세트를 생성하는 단계 - 제1 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 제1 비디오 시퀀스의 상이한 부분을 식별함 -, 제2 비디오 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성하는 단계 - 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 제2 비디오 시퀀스의 상이한 부분을 식별함 -, 제1 비디오 시퀀스의 제1 부분이 제2 비디오 시퀀스의 제2 부분과 실질적으로 유사한 것을 결정하기 위해 제1 핑거프린트들의 세트을 제2 핑거프린트들의 세트와 비교하는 단계 -, 및 제2 비디오 시퀀스를 재생할 때, 제2 비디오 시퀀스로 하여금 제2 부분을 지나쳐 전진하도록 야기하는 단계를 포함하는 컴퓨터 구현 방법을 제시한다.
개시된 기술들의 적어도 하나의 장점은 사용자들이 에피소드 시리즈들의 부분들을 다시 시청할 필요가 없다는 것이다.
위에 언급한 본 발명의 특징들이 상세하게 이해될 수 있도록 하기 위해서, 앞에서 간략히 요약된 본 발명에 대한 더 구체적인 설명이 실시예들을 참조하여 이루어질 수 있으며, 실시예들 중 일부가 첨부된 도면들에 도시되어 있다. 그러나, 본 발명은 다른 동등하게 실효적인 실시예들을 받아들일 수 있기 때문에, 첨부된 도면들은 단지 본 발명의 전형적인 실시예들을 도시하는 것이며 따라서 그 범위를 제한하는 것으로 여겨서는 안 된다는 점에 유의해야 한다.
도 1은 본 발명의 다양한 실시예들에 따라 콘텐츠 서버들로부터 엔드포인트 디바이스들로 콘텐츠를 분배하기 위해 사용되는 네트워크 인프라스트럭처를 도시한다.
도 2는 본 발명의 다양한 실시예들에 따른, 도 1의 네트워크 인프라스트럭처와 연계하여 구현될 수 있는 콘텐츠 서버의 블록도이다.
도 3은 본 발명의 다양한 실시예들에 따라, 도 1의 네트워크 인프라스트럭처와 연계하여 구현될 수 있는 제어 서버의 블록도이다.
도 4는 본 발명의 다양한 실시예들에 따른, 도 1의 네트워크 인프라스트럭처와 연계하여 구현될 수 있는 엔드포인트 디바이스의 블록도이다.
도 5는 본 발명의 다양한 실시예들에 따른, 미디어 타이틀의 이전에 스트리밍된 부분들을 식별하도록 구성된 컴퓨팅 디바이스의 블록도이다.
도 6은 본 발명의 다양한 실시예들에 따라, 동작 동안 도 5의 시퀀스 분석기에 의해 구현되는 데이터 및 프로세싱 국면들을 도시한다.
도 7은 본 발명의 다양한 실시예들에 따라, 도 4의 재생 애플리케이션이 재생 인터페이스를 구성하는 방법을 도시한다.
도 8은 본 발명의 다양한 실시예들에 따른, 도 7의 재생 인터페이스의 더 상세한 도면이다.
도 9a 및 도 9b는 본 발명의 다양한 실시예들에 따라, 도 6의 핑거프린트 생성기가 샷 시퀀스들에 기초하여 예시적인 핑거프린트들을 생성하는 방법을 도시한다.
도 10은 본 발명의 다양한 실시예들에 따른, 샷 시퀀스와 연관된 예시적인 핑거프린트를 도시한다.
도 11은 본 발명의 다양한 실시예에 따라, 도 6의 시퀀스 비교기가 이전에 스트리밍된 콘텐츠와 연관된 시간 범위들을 생성하는 방법을 도시한다.
도 12는 본 발명의 다양한 실시예들에 따른, 미디어 타이틀의 이전에 스트리밍된 부분을 식별 및 건너뛰기 위한 방법 단계들의 흐름도이다.
이하의 설명에서, 본 발명의 실시예들의 더 철저한 이해를 제공하기 위해서 수많은 특정 상세 사항들이 제시된다. 그러나, 본 발명의 실시예들이 이들 특정 상세 사항들 중 하나 이상이 없이도 실시될 수 있다는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다.
시스템 개관
도 1은 본 발명의 다양한 실시예에 따라 콘텐츠 서버들(110)로부터 엔드포인트 디바이스들(115)로 콘텐츠를 분배하기 위해 사용되는 네트워크 인프라스트럭처(100)를 도시한다. 도시된 바와 같이, 네트워크 인프라스트럭처(100)는 콘텐츠 서버들(110), 제어 서버(120), 및 엔드포인트 디바이스들(115)을 포함하고, 그 각각은 통신 네트워크(105)를 통해 접속된다.
각각의 엔드포인트 디바이스(115)는 미디어 타이틀들과 연관된 콘텐츠를 다운로드 및/또는 스트리밍하기 위해 네트워크(105)를 통해 하나 이상의 콘텐츠 서버(110)(또한 "캐시들" 또는 "노드들"로서 지칭됨)와 통신한다. 본 개시내용의 맥락에서, "미디어 타이틀"은 일반적으로 사용자에게 재생될 수 있는 비디오 데이터 및 연관된 오디오 데이터의 하나 이상의 시퀀스를 포함한다. 예를 들어, 미디어 타이틀은 장편 영화, 다수의 에피소드로 구성된 에피소드 시리즈, 애니메이션 단편, 문서, 및 기타 등등일 수 있다. 본 명세서에서 "파일"이라고도 지칭되는, 미디어 타이틀과 연관된 다운로드가능한 콘텐츠는 하나 이상의 엔드포인트 디바이스(115)를 통해 사용자에게 제시된다. 다양한 실시예들에서, 엔드포인트 디바이스들(115)은 컴퓨터 시스템들, 셋톱 박스들, 모바일 컴퓨터, 스마트폰들, 태블릿들, 콘솔 및 핸드헬드 비디오 게임 시스템들, DVR들(digital video recorders), DVD 플레이어들, 접속된 디지털 TV들, 전용 미디어 스트리밍 디바이스들(예를 들어, Roku® 셋톱 박스)), 및/또는 네트워크 접속성을 갖고 미디어 타이틀들과 연관된 비디오 콘텐츠 및/또는 오디오 콘텐츠를 포함하는 콘텐츠를 사용자에게 제시할 수 있는 임의의 다른 기술적으로 실현가능한 컴퓨팅 플랫폼을 포함할 수 있다.
각각의 콘텐츠 서버(110)는 웹 서버, 데이터베이스, 및 제어 서버(120)와 통신하여 제어 서버(120)에 의해 추적되고 관리되는 다양한 파일들의 위치 및 가용성을 결정하도록 구성된 서버 애플리케이션을 포함할 수 있다. 각각의 콘텐츠 서버(110)는 각각의 콘텐츠 서버(110)를 다양한 파일들의 사본들로 채우기 위해 클라우드 서비스들(130) 및 하나 이상의 다른 콘텐츠 서버(110)와 추가로 통신할 수 있다. 또한, 콘텐츠 서버들(110)은 엔드포인트 디바이스들(115)로부터 수신된, 파일들에 대한 요청들에 응답할 수 있다. 그 후 파일들은 콘텐츠 서버(110)로부터 또는 더 넓은 콘텐츠 배포 네트워크를 통해 배포될 수 있다. 일부 실시예들에서, 콘텐츠 서버들(110)은 사용자들이 콘텐츠 서버들(110)상에 저장된 파일들에 액세스하기 위해 (예를 들어, 사용자명 및 패스워드를 사용하여) 인증할 수 있게 한다. 도 1에는 단일 제어 서버(120)만이 도시되어 있지만, 다양한 실시예들에서 다수의 제어 서버(120)가 파일들을 추적하고 관리하도록 구현될 수 있다.
다양한 실시예들에서, 클라우드 서비스들(130)은 콘텐츠 서버들(110)을 채우기 위해 수천 또는 수백만 개의 파일을 포함하는 파일들의 카탈로그가 저장되고 액세스되는 온라인 저장 서비스(예를 들어, Amazon® Simple Storage Service, Google® Cloud Storage 등)를 포함할 수 있다. 클라우드 서비스들(130)은 또한 계산 또는 다른 처리 서비스들을 제공할 수 있다. 도 1에는 단일 클라우드 서비스들(130)만이 도시되어 있지만, 다양한 실시예들에서 다수의 클라우드 서비스(130)가 구현될 수 있다.
도 2는 본 발명의 다양한 실시예들에 따른, 도 1의 네트워크 인프라스트럭처(100)와 연계하여 구현될 수 있는 콘텐츠 서버(110)의 블록도이다. 도시된 바와 같이, 콘텐츠 서버(110)는 중앙 처리 유닛(CPU)(204), 시스템 디스크(206), 입출력(I/O) 디바이스들의 인터페이스(208), 네트워크 인터페이스(210), 인터커넥트(212), 및 시스템 메모리(214)를 포함하지만, 이들로만 제한되지는 않는다.
CPU(204)는 시스템 메모리(214)에 저장된, 서버 애플리케이션(217)과 같은 프로그래밍 명령어들을 검색하고 실행하도록 구성된다. 유사하게, CPU(204)는 애플리케이션 데이터(예를 들어, 소프트웨어 라이브러리들)를 저장하고 애플리케이션 데이터를 시스템 메모리(214)로부터 검색하도록 구성된다. 인터커넥트(212)는 CPU(204), 시스템 디스크(206), I/O 디바이스들의 인터페이스(208), 네트워크 인터페이스(210), 및 시스템 메모리(214) 사이의, 프로그래밍 명령어들 및 애플리케이션 데이터와 같은 데이터의 전송을 용이하게 하도록 구성된다. I/O 디바이스들의 인터페이스(208)는 I/O 디바이스들(216)로부터 입력 데이터를 수신하고 입력 데이터를 인터커넥트(212)를 통해 CPU(204)에 전송하도록 구성된다. 예를 들어, I/O 디바이스들(216)은 하나 이상의 버튼, 키보드, 마우스, 및/또는 다른 입력 디바이스들을 포함할 수 있다. I/O 디바이스들의 인터페이스(208)는 인터커넥트(212)를 통해 CPU(204)로부터 출력 데이터를 수신하고 출력 데이터를 I/O 디바이스들(216)에 전송하도록 추가로 구성된다.
시스템 디스크(206)는 하나 이상의 하드 디스크 드라이브, 솔리드 스테이트 저장 디바이스, 또는 유사한 저장 디바이스를 포함할 수 있다. 시스템 디스크(206)는 파일들(218)(예를 들어, 오디오 파일들, 비디오 파일들, 서브타이틀들, 애플리케이션 파일들, 소프트웨어 라이브러리들 등)과 같은 비휘발성 데이터를 저장하도록 구성된다. 그 후 파일들(218)은 네트워크(105)를 통해 하나 이상의 엔드포인트 디바이스(115)에 의해 검색될 수 있다. 일부 실시예들에서, 네트워크 인터페이스(210)는 이더넷 표준을 준수하여 동작하도록 구성된다.
시스템 메모리(214)에 포함된 서버 애플리케이션(217)은 엔드포인트 디바이스(115) 및 다른 콘텐츠 서버들(110)로부터 수신된 파일들(218)에 대한 요청들을 서비스하도록 구성된다. 서버 애플리케이션(217)이 파일(218)에 대한 요청을 수신한 경우, 서버 애플리케이션(217)은 시스템 디스크(206)로부터 대응 파일(218)을 검색하고 파일(218)을 네트워크(105)를 통해 엔드포인트 디바이스(115) 또는 콘텐츠 서버(110)에 전송한다.
도 3은 본 발명의 다양한 실시예들에 따른, 도 1의 네트워크 인프라스트럭처(100)와 연계하여 구현될 수 있는 제어 서버(120)의 블록도이다. 도시된 바와 같이, 제어 서버(120)는 중앙 처리 유닛(CPU)(304), 시스템 디스크(306), 입출력(I/O) 디바이스들의 인터페이스(308), 네트워크 인터페이스(310), 인터커넥트(312), 및 시스템 메모리(314)를 포함하지만, 이들로만 제한되지는 않는다.
CPU(304)는 시스템 메모리(314)에 저장된 제어 애플리케이션(317)과 같은 프로그래밍 명령어들을 검색하고 실행하도록 구성된다. 유사하게, CPU(304)는 애플리케이션 데이터(예를 들어, 소프트웨어 라이브러리들)를 저장하고 애플리케이션 데이터를 시스템 디스크(306)에 저장된 데이터베이스(318) 및 시스템 메모리(314)로부터 검색하도록 구성된다. 인터커넥트(312)는 CPU(304), 시스템 디스크(306), I/O 디바이스들의 인터페이스(308), 네트워크 인터페이스(310), 및 시스템 메모리(314) 사이의 데이터의 전송을 용이하게 하도록 구성된다. I/O 디바이스들의 인터페이스(308)는 인터커넥트(312)를 통해 I/O 디바이스(316)와 CPU(304) 사이에서 입력 데이터 및 출력 데이터를 전송하도록 구성된다. 시스템 디스크(306)는 하나 이상의 하드 디스크 드라이브, 솔리드 스테이트 저장 디바이스, 및 그와 유사한 것을 포함할 수 있다. 시스템 디스크(206)는 콘텐츠 서버들(110), 클라우드 서비스들(130) 및 파일들(218)과 연관된 정보의 데이터베이스(318)를 저장하도록 구성된다.
시스템 메모리(314)는 데이터베이스(318)에 저장된 정보에 액세스하고 정보를 처리하여 네트워크 인프라스트럭처(100)에 포함된 콘텐츠 서버들(110)에 걸쳐 특정 파일들(218)이 복제될 방식을 결정하도록 구성된 제어 애플리케이션(317)을 포함한다. 제어 애플리케이션(317)은 콘텐츠 서버들(110) 및/또는 엔드포인트 디바이스들(115) 중 하나 이상과 연관된 성능 특성들을 수신하고 분석하도록 추가로 구성될 수 있다. 전술한 바와 같이, 일부 실시예들에서, 디지털 비주얼 콘텐츠 아이템들과 연관된 국지화된 홍보 이미지들은 콘텐츠 서버(110)에 저장된 파일(218)에서보다는 데이터베이스(318)에 저장될 수 있다.
도 4는 본 발명의 다양한 실시예들에 따른, 도 1의 네트워크 인프라스트럭처(100)와 연계하여 구현될 수 있는 엔드포인트 디바이스(115)의 블록도이다. 도시된 바와 같이, 엔드포인트 디바이스(115)는 CPU(410), 그래픽 서브시스템(412), I/O 디바이스 인터페이스(414), 대용량 저장 유닛(416), 네트워크 인터페이스(418), 인터커넥트(422), 및 메모리 서브시스템(430)을 포함할 수 있는데, 이들로만 제한되지는 않는다.
일부 실시예들에서, CPU(410)는 메모리 서브시스템(430)에 저장된 프로그래밍 명령어들을 검색 및 실행하도록 구성된다. 유사하게, CPU(410)는 메모리 서브시스템(430)에 상주하는 애플리케이션 데이터(예를 들어, 소프트웨어 라이브러리들)를 저장 및 검색하도록 구성된다. 인터커넥트(422)는 CPU(410), 그래픽 서브시스템(412), I/O 디바이스 인터페이스(414), 대용량 스토리지(416), 네트워크 인터페이스(418), 및 메모리 서브시스템(430) 사이에서 프로그래밍 명령어들 및 애플리케이션 데이터와 같은 데이터의 전송을 용이하게 하도록 구성된다.
일부 실시예들에서, 그래픽 서브시스템(412)은 비디오 데이터의 프레임들을 생성하고 비디오 데이터의 프레임들을 디스플레이 디바이스(450)에 전송하도록 구성된다. 일부 실시예들에서, 그래픽 서브시스템(412)은 CPU(410)와 함께 집적 회로에 통합될 수 있다. 디스플레이 디바이스(450)는 디스플레이용 이미지를 생성하기 위한 임의의 기술적으로 실현가능한 수단을 포함할 수 있다. 예를 들어, 디스플레이 디바이스(450)는 액정 디스플레이(LCD) 기술, 음극선 기술, 및 발광 다이오드(LED) 디스플레이 기술을 사용하여 제조될 수 있다. 입/출력(I/O) 디바이스 인터페이스(414)는 사용자 I/O 디바이스들(452)로부터 입력 데이터를 수신하고 인터커넥트(422)를 통해 입력 데이터를 CPU(410)에 전송하도록 구성된다. 예를 들어, 사용자 I/O 디바이스들(452)은 하나 이상의 버튼, 키보드, 및 마우스 또는 다른 포인팅 디바이스를 포함할 수 있다. I/O 디바이스 인터페이스(414)는 또한 전기적 오디오 출력 신호를 생성하도록 구성된 오디오 출력 유닛을 포함한다. 사용자 I/O 디바이스들(452)은 전기적 오디오 출력 신호에 응답하여 음향 출력을 생성하도록 구성된 스피커를 포함한다. 대안적인 실시예들에서, 디스플레이 디바이스(450)는 스피커를 포함할 수 있다. 비디오 프레임들을 디스플레이할 수 있고 음향 출력을 생성할 수 있는 본 기술분야에 공지된 적절한 디바이스들의 예들은 텔레비전, 스마트폰, 스마트시계, 전자 태블릿, 및 그와 유사한 것을 포함한다.
하드 디스크 드라이브 또는 플래시 메모리 저장 드라이브와 같은 대용량 저장 유닛(416)은 비휘발성 데이터를 저장하도록 구성된다. 네트워크 인터페이스(418)는 네트워크(105)를 통해 데이터의 패킷들을 전송 및 수신하도록 구성된다. 일부 실시예들에서, 네트워크 인터페이스(418)는 잘 알려져 있는 이더넷 표준을 사용하여 통신하도록 구성된다. 네트워크 인터페이스(418)는 인터커넥트(422)를 통해 CPU(410)에 결합된다.
일부 실시예들에서, 메모리 서브시스템(430)은 운영 체제(432), 사용자 인터페이스(434), 및 재생 애플리케이션(436)을 포함하는 프로그래밍 명령어들 및 애플리케이션 데이터를 포함한다. 운영 체제(432)는 네트워크 인터페이스(418), 대용량 저장 유닛(416), I/O 디바이스들의 인터페이스(414), 및 그래픽 서브시스템(412)을 포함하는 하드웨어 디바이스들을 관리하는 것과 같은 시스템 관리 기능들을 수행한다. 운영 체제(432)는 또한 사용자 인터페이스(434) 및 재생 애플리케이션(436)에 대한 프로세스 및 메모리 관리 모델들을 제공한다. 윈도우 및 오브젝트 메타포(metaphor)와 같은 사용자 인터페이스(434)는 엔드포인트 디바이스(108)와의 사용자 상호작용을 위한 메커니즘을 제공한다. 본 기술분야의 통상의 기술자는 본 기술분야에 잘 알려져 있고 또한 엔드포인트 디바이스(108)에의 통합을 위해 적합한 다양한 운영 체제들 및 사용자 인터페이스들을 인식할 것이다.
일부 실시예들에서, 재생 애플리케이션(436)은 네트워크 인터페이스(418)를 통해 콘텐츠 서버(105)로부터 콘텐츠를 요청하도록 구성된다. 재생 애플리케이션(436)은 콘텐츠를 로컬 버퍼에 스트리밍할 수 있다. 그 후 재생 애플리케이션(436)은 콘텐츠를 해석하고, 디스플레이 디바이스(450) 및/또는 사용자 I/O 디바이스들(452)을 통해 콘텐츠를 사용자에게 제시할 수 있다. 그렇게 함에 있어서, 재생 애플리케이션(436)은 콘텐츠를 출력하는 재생 인터페이스뿐만 아니라 사용자로 하여금 콘텐츠를 내비게이트할 수 있게 하는 하나 이상의 그래픽 사용자 인터페이스(GUI) 요소를 생성한다. 콘텐츠는 전용 컴퓨팅 디바이스 또는 컴퓨팅 디바이스의 가상화된 인스턴스를 통해 사전 처리될 수 있으며, 도 5와 연계하여 이하에서 더 상세히 설명된다.
도 5는 본 발명의 다양한 실시예들에 따른, 미디어 타이틀의 이전에 스트리밍된 부분들을 식별하도록 구성된 컴퓨팅 디바이스(500)의 블록도이다. 컴퓨팅 디바이스(500)는, 예를 들어, 비디오 데이터를 분석하는 것을 포함하여, 주문형 기반으로 다양한 컴퓨팅 작업들을 수행하기 위해 콘텐츠 서버(110) 및/또는 제어 서버(120)에 의해 인스턴스화될 수 있는 컴퓨터의 가상화된 인스턴스이다.
도시된 바와 같이, 컴퓨팅 디바이스(500)는 프로세서(502), 입/출력(I/O) 디바이스들(504), 및 함께 결합된 메모리(506)를 포함한다. 프로세서(502)는 데이터를 처리하고 프로그램 코드를 실행하도록 구성된, 임의의 기술적으로 실현 가능한 형태의 처리 디바이스일 수 있다. 프로세서(502)는, 예를 들어, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 이러한 유닛들의 임의의 기술적으로 실현가능한 조합, 및 기타 등등일 수 있다.
I/O 디바이스들(504)은, 예를 들어, 키보드, 마우스, 및 기타 등등을 포함하는 입력을 수신하도록 구성되는 디바이스들을 포함할 수 있다. I/O 디바이스들(504)은 또한, 예를 들어, 디스플레이 디바이스, 스피커, 및 기타 등등을 포함하는 출력을 제공하도록 구성되는 디바이스들을 포함할 수 있다. I/O 디바이스들(504)은, 예를 들어, 터치스크린, USB(universal serial bus) 포트, 및 기타 등등을 포함하여, 제각기, 수신 및 입력 및 출력 모두에 대해 구성된 디바이스들을 추가로 포함할 수 있다.
메모리(506)는 데이터 및 소프트웨어 애플리케이션들을 저장하도록 구성된 임의의 기술적으로 실현가능한 저장 매체를 포함할 수 있다. 메모리(506)는, 예를 들어, 하드 디스크, 랜덤 액세스 메모리(RAM) 모듈, 판독 전용 메모리(ROM), 및 기타 등등일 수 있다. 메모리(506)는 비디오 시퀀스들 및 미디어 타이틀들과 관련된 다른 콘텐츠의 국지적 저장을 위해 구성된 데이터베이스(510) 및 시퀀스 분석기(508)를 포함한다. 시퀀스 분석기(508)는, 프로세서(502)에 의해 실행될 때, 미디어 타이틀과 연관된 하나 이상의 비디오 시퀀스를 처리하여 사용자에게 이미 디스플레이된 그런 시퀀스들의 부분들을 식별하는 소프트웨어 애플리케이션이다. 각각의 그러한 시퀀스는 일반적으로 콘텐츠 서버들(110)에 의해 제공되는 에피소드 시리즈 중 한 에피소드에 대응한다. 이러한 시퀀스들의 이미 디스플레이된 부분들은 소개 시퀀스 및/또는 요약 시퀀스를 포함할 수 있다. 시퀀스 분석기(508)는 주어진 비디오 시퀀스를 사용자에게 출력할 때 재생 애플리케이션(436)으로 하여금 그런 부분들을 건너뛰는 것을 허용하는 메타데이터를 재생 애플리케이션(436)에게 제공한다. 시퀀스 분석기(508)는 도 6 내지 도 12와 연계하여 이하에서 상세히 논의된다.
이전에 스트리밍된 비디오 시퀀스들의 식별
도 6은 본 발명의 다양한 실시예들에 따른, 동작 동안 도 5의 시퀀스 분석기에 의해 구현되는 데이터 및 처리 국면들을 도시한다. 도시된 바와 같이, 시퀀스 분석기(508)는 핑거프린트 생성기(600) 및 핑거프린트 비교기(610)를 포함한다. 핑거프린트 생성기(600)는 이전 에피소드들(602) 및 현재 에피소드(606)를 수신하고 처리하도록 구성된다. 이전 에피소드들(602) 및 현재 에피소드(606)는 콘텐츠 서버(110)에 의해 제공된 주어진 에피소드 시리즈 중 하나 이상의 개별 에피소드를 포함한다. 이전 에피소드들(602)은 일반적으로 에피소드 시리즈와 연관된 에피소드들의 시퀀스에서 현재 에피소드(606) 전에 발생한다. 예를 들어, 이전 에피소드들(602)은 시즌 1, 주어진 미디어 타이틀의 에피소드들 1-9를 포함할 수 있는 반면에, 현재 에피소드(606)는 시즌 1, 미디어 타이틀의 에피소드 10을 포함할 수 있다. 일 실시예에서, 이전 에피소드들(602)은 사용자에게 이미 재생되었던 특정 에피소드들만을 포함한다. 또 다른 실시예에서, 현재 에피소드(606)는 시리즈 중 가장 최근에 릴리즈된 에피소드이다.
동작 시에, 핑거프린트 생성기(600)는 이전 에피소드들(602)을 수신하고 각각의 상이한 이전 에피소드에 대한 상이한 세트의 핑거프린트들(604)을 생성한다. 핑거프린트 생성기(600)는 또한 현재 에피소드(606)를 수신하고 그 에피소드에 기초하여 핑거프린트들(608)을 생성한다. 주어진 에피소드(이전 또는 현재)에 대해, 대응하는 핑거프린트들의 세트는 에피소드의 상이한 부분들을 특징짓는 데이터를 포함한다. 일 실시예에서, 핑거프린트 생성기(600)는 반복된 콘텐츠가 발생할 것으로 예상되는 현재 에피소드의 일부에만 기초하여 핑거프린트들(608)을 생성한다. 핑거프린트 생성기(600)의 동작은 도 9a - 도 10 및 도 12와 연계하여 이하에 더 상세히 논의된다.
핑거프린트 비교기(610)는 핑거프린트들(604) 중 각각의 것을 핑거프린트들(608) 각각의 것과 비교하여 이전 에피소드들(602)의 부분들과 유사한 현재 에피소드(606)의 부분들을 식별하는데, 이는 이들 부분들이 이미 사용자에게 재생되었다는 것을 의미한다. 식별된 부분들은, 설명된 바와 같이, 에피소드 시리즈에서의 일부 또는 모든 에피소드들에 걸쳐서 공통인 소개 시퀀스 또는 이전 에피소드들(602)의 특정 부분들을 리플레이하는 요약 시퀀스를 포함할 수 있다. 그 후 핑거프린트 비교기(610)는 반복된 콘텐츠의 식별된 부분들이 발생하는 현재 에피소드(606) 내에서의 특정 시간 범위들을 표시하기 위해 시간 범위들(612)을 생성한다. 핑거프린트 비교기(610)의 동작은 도 11 및 도 12와 연계하여 이하에서 더 상세히 논의된다. 시간 범위들(612)에 기초하여, 도 4의 재생 애플리케이션(436)은, 도 7 및 도 8과 연계하여 이하에서 더 상세히 설명되는 바와 같이, 사용자로 하여금 반복 콘텐츠를 건너뛰게 허용하는 GUI 요소들을 생성한다.
도 7은 본 발명의 다양한 실시예들에 따라, 도 4의 재생 애플리케이션(436)이 재생 인터페이스(700)를 생성하는 방법을 도시한다. 도시된 바와 같이, 재생 애플리케이션(436)은 현재 에피소드(606) 및 시간 범위들(612)을 수신한다. 이러한 요소들에 기초하여, 재생 애플리케이션(436)은 디스플레이(450) 상에 렌더링하기 위한 재생 인터페이스(700)를 생성한다. 재생 인터페이스(700)는 현재 에피소드(606)와 연관된 비디오 콘텐츠를 디스플레이한다. 재생 인터페이스(700)는 또한, 위에서 언급되고 도 8과 연계하여 이하에서 더 상세히 설명되는 바와 같이, 사용자로 하여금 시간 범위들(612)과 연관된 반복 콘텐츠를 건너뛰도록 허용하는 GUI 컴포넌트들을 포함한다.
도 8은 본 발명의 다양한 실시예들에 따른, 도 7의 재생 인터페이스(700)의 더 상세한 도면이다. 도시된 바와 같이, 재생 인터페이스(700)는 비디오의 프레임(800)을 포함한다. 프레임(800)은 그 위에 중첩된 이미지(804) 및 크레디트(806)를 포함하여, 현재 에피소드(606)로부터 도출된 다양한 콘텐츠를 포함한다. 프레임(800)은 또한 재생 애플리케이션(436)에 의해 생성되고 또한 시간 바(810) 및 스킵 버튼(812)을 포함하는 프레임(800)상에 중첩되는 다양한 GUI 요소들을 포함한다.
시간 바(810)는 현재 에피소드(606) 내에서의 현재 재생 위치를 디스플레이한다. 사용자는 시간 바(810)를 통해 스크러빙 동작(scrubbing operation)을 수행함으로써 현재 에피소드(606) 내에서 내비게이트할 수 있다. 스킵 버튼(812)은 사용자로 하여금 시간 범위들(612(0) 및 612(1))과 연관된 콘텐츠의 부분들을 건너뛰도록 허용한다. 도시된 예에서, 시간 범위(612(0))는 크레디트들(806)이 디스플레이되는 소개 시퀀스에 대응한다. 한편, 시간 범위(612(1))는 이전 에피소드들(602)의 부분들이 디스플레이되는 요약 섹션에 대응할 수 있다. 사용자가 스킵 버튼(812)을 선택할 때, 재생 애플리케이션(436)은 현재 에피소드(606)의 재생을 시간 범위(612(0))의 종료까지 전진시킬 수 있다.
일 실시예에서, 스킵 버튼(812)은 현재 에피소드(606)의 재생 위치가 이전에 디스플레이된 콘텐츠에 대응하는 시간 범위(612) 내에 속할 때에만 등장할 수 있다. 예를 들어, 스킵 버튼(812)은 현재 에피소드(606)의 재생 위치가 시간 범위(612(0)) 내에 속할 때에만 등장할 수 있다. 또한, 스킵 버튼(812)상에 도시된 카피 문구는 건너뛰게 될 콘텐츠의 특정 유형에 기초하여 변할 수 있다. 예를 들어, 도 8에서, 스킵 버튼(812)은, 시간 범위(612(0))가 스킵 버튼(812)을 선택함으로써 건너뛰게 될 수 있는 소개 시퀀스에 대응하는 것을 표시하기 위해 "SKIP INTRO"를 판독한다. 유사하게, 스킵 버튼(812)은, 시간 범위(612(1))가 스킵 버튼(812)을 선택함으로써 건너뛰게 될 수 있는 요약 시퀀스에 대응하는 것을 표시하기 위해 "SKIP RECAP"을 판독할 수 있다. 시퀀스 분석기(508)는, 무엇보다도, 각각의 시퀀스의 다양한 프레임들상에 디스플레이되는 텍스트의 양 또는 현재 에피소드(606) 내에서의 각각의 시퀀스의 위치에 기초하여 요약 시퀀스들로부터 소개 시퀀스들을 구별할 수 있다.
샷 시퀀스들의 예시적인 핑거프린팅
도 9a 및 도 9b는 본 발명의 다양한 실시예들에 따라 도 6의 핑거프린트 생성기(600)가 샷 시퀀스들에 기초하여 예시적인 핑거프린트들을 생성하는 방법을 도시한다.
도 9a에 도시된 바와 같이, 이전 에피소드(602)는 샷 시퀀스들(900(0), 900(1), 900(2), 및 900(3))을 포함한다. 각각의 샷 시퀀스(900)는 단일 캡처 포인트로부터 생성되고 따라서 특정 영화 "샷"과 연관된 비디오의 프레임들을 포함한다. 단일 캡처 포인트는, 예를 들어, 물리적 비디오 카메라일 수 있다. 대안적으로, 단일 캡처 포인트는 컴퓨터 애니메이션의 정황에서 사용되는 가상 카메라일 수 있다.
각각의 샷 시퀀스(900)에 대해, 핑거프린트 생성기(600)는 단일 대표 프레임(910)을 선택한다. 도시된 바와 같이, 핑거프린트 생성기(600)는 시간 인덱스 TA0을 갖는 대표 프레임(910(0)), 시간 인덱스 TA1을 갖는 대표 프레임(910(1)), 시간 인덱스 TA2를 갖는 대표 프레임(910(2)), 및 시간 인덱스 TA3을 갖는 대표 프레임(910(3))을 선택한다.
개념적으로, 각각의 대표 프레임(910)은 대응하는 샷 시퀀스(900) 내에서 발견될 수 있는 프레임의 정통 예이며, 따라서 해당 샷 시퀀스(900)를 특징짓는다. 핑거프린트 생성기(600)는 각각의 대표 프레임(900)이 동일한 샷 시퀀스(900)에서의 다른 프레임들에 비해 더 큰 복잡성 및/또는 엔트로피를 갖도록 선택한다. 그에 따라서, 대표 프레임들(910)은, 예를 들어, 소개 시퀀스와 연관된 크레디트들을 포함하는, 정규 이미지 위에 중첩된 텍스트를 포함할 가능성이 있다. 본 기술분야의 통상의 기술자는 주어진 이미지 또는 비디오 프레임의 복잡성 및/또는 엔트로피를 결정하기 위한 이미지 및 비디오 처리 분야에 있어서 많은 기술이 존재한다는 것을 이해할 것이다.
대표 프레임들(910)에 기초하여, 핑거프린트 생성기(600)는 핑거프린트들(604)을 생성한다. 핑거프린트 생성기(600)는 대표 프레임(900(0))에 기초하여 핑거프린트(604(0))를 생성하고, 대표 프레임(900(1))에 기초하여 핑거프린트(604(1))를 생성하고, 대표 프레임(900(2))에 기초하여 핑거프린트(604(2))를 생성하고, 대표 프레임(900(3))에 기초하여 핑거프린트(604(3))를 생성한다. 주어진 핑거프린트(604)는 해당 핑거프린트 및 다음 차례로, 연관된 대표 프레임(910) 및 대응하는 샷 시퀀스(900)를 고유하게 식별하기 위해 사용될 수 있는 데이터를 포함한다. 논의된 바와 같이, 그 후 이 데이터는 예를 들어, 크레디트 시퀀스들과 같이 이미 사용자에게 재생된 샷 시퀀스들을 식별하기 위해 사용될 수 있다.
그러나, 일부 경우들에서, 특정 크레디트 시퀀스에 포함된 특정 텍스트는 다른 경우에는 유사한 크레디트 시퀀스들에 걸쳐 변할 수 있다. 예를 들어, 이전 에피소드(602)가 제1 감독에 의해 지도를 받는 반면, 현재 에피소드(606)는 제2 감독에 의해 지도를 받는다고 가정한다. 이들 2개의 본질적으로 유사한 크레디트 시퀀스들에 대해 상이한 핑거프린트들을 생성하는 것을 피하기 위해, 일 실시예에서, 핑거프린트 생성기(600)는 핑거프린트들(604)을 생성하기 전에 대표 프레임들(910)로부터 어떠한 텍스트든 제거한다.
명료성을 위해 이 예에서 단 하나의 그런 이전 에피소드만이 논의되기는 하지만, 핑거프린트 생성기(600)는 각각의 상이한 이전 에피소드(602)에 대해 상기 기술을 수행할 수 있다. 핑거프린트 생성기(600)는 또한 전술한 바와 유사한 기술을 이용하여 현재 에피소드(606)에 기초하여 핑거프린트들(608)을 생성한다. 이 기술은 도 9b와 연계하여 이하에 더 상세히 설명된다.
도 9b에 도시된 바와 같이, 현재 에피소드(606)는 샷 시퀀스들(950(0), 950(1), 및 950(2) 내지 950(N))을 포함한다. 핑거프린트 생성기(600)는 경계(952) 전에 발생하는 샷 시퀀스들(950)의 서브세트를 처리하도록 구성된다. 경계(952)는, 예를 들어, 현재 에피소드의 나머지 70%로부터 현재 에피소드(606)의 처음 30%를 분리할 수 있다. 일반적으로, 경계(952)는 반복된 콘텐츠가 (일반적으로, 시작부를 향해) 현재 에피소드(606)에서 발생할 가능성이 있는 곳에 따라 배치될 수 있다.
핑거프린트 생성기(600)는, 제각기, 샷 시퀀스들 950(0), 950(1), 및 950(2)에 기초하여, 제각기 시간 tB0, tB1, 및 tB2에서, 대표 프레임들(960(0), 960(1), 및 960(2))을 선택한다. 핑거프린트 생성기(600)는 도 9a와 연계하여 전술한 것과 유사한 프레임 선택 기술을 사용한다. 그 후 핑거프린트 생성기(600)는 도 9a와 연계하여 전술된 것과 유사한 핑거프린트 생성 기술을 사용하여 대표 프레임들(960)에 기초하여 핑거프린트들(608)을 생성한다. 주어진 핑거프린트는, 도 10과 연계하여 이하에서 더 상세히 설명되는 바와 같이, 핑거프린트를 고유하게 식별하기 위해 사용될 수 있는 상이한 핑거프린트 데이터의 서브세트들을 포함한다.
도 10은 본 발명의 다양한 실시예들에 따른, 샷 시퀀스와 연관된 예시적인 핑거프린트(1000)를 도시한다. 핑거프린트(1000)는 도 9a 및 도 9b에 제각기 도시된 핑거프린트들(604 및 608) 중 임의의 것일 수 있다. 핑거프린트(1000)는 신호 대 잡음비(SNR)(1010), 히스토그램(1020), 구조적 데이터(1030), 및 특징 데이터(1040)를 포함한다.
SNR(1010)은 본 기술분야에 공지된 기술들을 사용하여 계산될 수 있다. 히스토그램(1020)은 연관된 대표 프레임 내에서의 픽셀 값들의 통계적 측도이다. 히스토그램(1020)은, 예를 들어, 픽셀 값들의 범위들에 대응하는 다수의 빈(bin)을 포함할 수 있다. 주어진 빈은 빈과 연관된 값들의 범위 내에 속하는 컬러 값을 갖는 연관된 대표 프레임에서의 픽셀들의 수를 표시할 것이다. 구조적 데이터(1030)는, 예를 들어, 특정 기하 구조들 및 컬러 값들을 갖는 프레임의 영역들을 포함하는, 연관된 대표 프레임의 구조적 특징들을 나타낼 수 있다. 특징 데이터(1040)는 검출된 피처들을 프레임에서의 위치들에 매핑하는 것을 포함할 수 있다. 컴퓨터 비전 기술이 특징 데이터(1040)를 생성하기 위해 적용될 수 있다. 도시된 특정 핑거프린트 데이터의 서브세트들은 단지 예시적인 목적을 위해 제공된다. 핑거프린트(1000)는 또한 대표 프레임에 기초하여 생성된 핑거프린트 데이터의 다른 서브세트들을 포함할 수 있다.
일반적으로, 핑거프린트(1000)는 연관된 대표 프레임을 특징짓고, 해당 대표 프레임을 다른 대표 프레임들과 구별하기 위해 사용될 수 있다. 반대로, 도시된 다양한 데이터는 또한 2개의 대표 프레임이 유사하거나 동일한지를 결정하기 위해 사용될 수 있다. 예를 들어, 상이한 SNR 값들을 갖는 2개의 핑거프린트는 동일한 대표 프레임에 대응하지 않을 가능성이 있지만, 유사한 SNR 값들을 갖는 2개의 핑거프린트는 유사한 대표 프레임들에 대응할 수 있다. 핑거프린트 비교들에 기초하여, 핑거프린트 비교기(610)는 건너뛸 수 있는 반복된 콘텐츠를 식별한다.
일반적으로, 핑거프린트들과 같은 데이터의 2개의 부분은, 이들 2개의 부분이 서로 적어도 임계량을 적어도 공유하는 경우, "유사한" 또는 "실질적으로 유사한" 것으로 간주될 수 있다. 예를 들어, 2개의 핑거프린트는 이들 2개의 핑거프린트가 서로의 임계 차이 내에서 SNR 값들을 가질 때 "유사한" 것으로 간주될 수 있다. 대안적으로, 2개의 핑거프린트는 이들 2개의 핑거프린트가 적어도 임계 수의 공통 특징들을 포함할 때 "유사한" 것으로 간주될 수 있다. 또한, 2개 이상의 프레임 및/또는 샷 시퀀스는 이들 프레임들 및/또는 샷 시퀀스들이 유사한 핑거프린트들을 가질 때 "실질적으로 유사한" 것으로 간주될 수 있다.
일단 핑거프린트 생성기(600)가 상기 기술을 사용하여 핑거프린트들(604 및 608)을 생성하였다면, 그 후 핑거프린트 비교기(610)는 핑거프린트들(604)을 핑거프린트들(608)과 비교하여 임의의 이전 에피소드들(602)에 포함된 임의의 대표 프레임들이 현재 에피소드(606)에서 또한 발생하는지를 결정한다. 그 후, 언급된 바와 같이, 그러한 프레임들과 연관된 현재 에피소드(606)의 부분들을 건너뛸 수 있다. 핑거프린트 비교기(610)에 의해 수행되는 비교 기술은 도 11과 연계하여 이하에 더 상세히 설명된다.
핑거프린트들의 예시적인 비교
도 11은 본 발명의 다양한 실시예들에 따라, 도 6의 핑거프린트 비교기(610)가 이전에 재생된 콘텐츠와 연관된 시간 범위들(612)을 생성하는 방법을 도시한다. 도시된 바와 같이, 핑거프린트 비교기(610)는 핑거프린트들(604(0) 내지 604(3)) 중 각각의 것을 핑거프린트들(608(0) 내지 608(2)) 중 각각의 것과 비교하기 위해서 복수의 비교 동작(100)을 수행한다. 각각의 이러한 비교 동작에 대해, 핑거프린트 비교기(610)는 2개의 핑거프린트가 유사도의 임계 레벨을 초과하는지를 결정한다.
핑거프린트 비교기(610)는 각각의 이러한 핑거프린트에 포함된 대응하는 데이터를 비교함으로써 임의의 2개의 핑거프린트(604 및 608) 사이의 유사도를 계산한다. 해당 데이터는, 예를 들어, SNR 데이터, 히스토그램 데이터, 및 도 10과 관련하여 설명된 다른 데이터를 포함할 수 있다. 핑거프린트 비교기(610)는 2개의 핑거프린트(604 및 608)가 상이한지를 결정하기 위해 모든 이러한 데이터를 비교할 필요가 없다. 예를 들어, 핑거프린트 비교기(610)는 먼저 2개의 핑거프린트 사이의 SNR 데이터를 비교할 수 있다. 임계 SNR 유사도 데이터가 임계값을 초과하지 않으면, 핑거프린트 비교기(610)는 2개의 핑거프린트(604 및 608)가 상이한 것으로 결정하고, 임의의 나머지 데이터를 비교할 필요가 없다.
그러나, SNR 값들 사이의 유사도가 임계 SNR 유사도 값을 초과하면, 핑거프린트 비교기(610)는 추가 데이터를 비교하는 것으로 진행할 것이다. 2개의 핑거프린트 사이의 유사도를 확립하기 위해, 핑거프린트 비교기(610)는 일반적으로 핑거프린트 데이터의 각각의 상이한 서브세트를 복잡도 순서로 비교한다. 도 10에 도시된 예시적인 핑거프린트에서, SNR 데이터(1010)는 핑거프린트 데이터의 최소로 복잡한 서브세트인 반면, 특징 데이터(1040)는 핑거프린트 데이터의 가장 복잡한 서브세트이다. 따라서 핑거프린트 비교기(610)는 필요에 따라 복잡한 데이터의 복잡도 비교들만을 수행함으로써 처리 자원들을 보존할 수 있다.
비교들(1100)을 수행할 시에, 핑거프린트 비교기(610)는 적어도 임계 레벨의 유사도를 갖는 핑거프린트들(604 및 608)에 포함된 특정 핑거프린트들을 식별한다. 그 후 핑거프린트 비교기(610)는 대응하는 샷 시퀀스들이 발생할 때 현재 에피소드(606)에서의 시간들을 나타내는 시간 범위들(612)을 생성한다. 예를 들어, 핑거프린트 비교기(610)는 핑거프린트들(604(1) 및 608(0))이 유사한 것으로 결정할 수 있고, 그 후 시간 범위(612(0))를 생성할 수 있다. 핑거프린트(604(1))는 이전 에피소드(602)의 소개 섹션에 포함된 샷 시퀀스들에 대응할 수 있다. 핑거프린트 비교기(610)는 또한 핑거프린트(608(1)) 및 핑거프린트들(604(3) 및 608(1))이 유사한 것으로 결정할 수 있고, 그 후 시간 범위(612(1))를 생성할 수 있다. 핑거프린트(604(3))는 현재 에피소드(606)의 요약 섹션에 후속하여 포함되는 이전 에피소드(602)의 프레임에 대응할 수 있다. 시간 범위들(612)에 기초하여, 도 7 및 도 8의 재생 인터페이스(700)는 스킵 버튼(812)을 사용자에게 디스플레이하고, 그에 의해 사용자로 하여금 이 반복된 콘텐츠를 건너뛰도록 허용한다. 지금까지 설명된 기술들은 또한 도 12와 연계하여 단계적 방식으로 설명된다.
비디오 시퀀스들의 반복 재생을 건너뛰기 위한 절차
도 12는 본 발명의 다양한 실시예들에 따른, 미디어 타이틀의 이전에 스트리밍된 부분을 식별 및 건너뛰기 위한 방법 단계들의 흐름도이다. 방법 단계들이 도 1 내지 도 11의 시스템들과 관련하여 설명되지만, 본 기술분야의 통상의 기술자는 방법 단계들을 임의의 순서로 수행하도록 구성된 임의의 시스템이 본 개시내용의 범위 내에 속한다는 것을 이해할 것이다.
도시된 바와 같이, 방법(1200)은 단계(1202)에서 시작하고, 여기서 시퀀스 분석기(508)가 제1 미디어 타이틀과 연관된 제1 프레임들의 시퀀스를 획득한다. 제1 프레임들의 시퀀스는, 예를 들어, 도 6의 이전 에피소드(602)일 수 있다. 단계(1204)에서, 시퀀스 분석기(508)는 제1 프레임들의 시퀀스에 기초하여 제1 핑거프린트들의 세트를 생성한다. 예를 들어, 시퀀스 분석기(508)는 도 6과 연계하여 앞서 논의된 바와 같이 이전 에피소드(602)에 기초하여 핑거프린트들(604)을 생성할 수 있다.
단계(1206)에서, 시퀀스 분석기(508)는 제1 미디어 타이틀과 연관된 제2 프레임들의 시퀀스를 획득한다. 제2 프레임들의 시퀀스는, 예를 들어, 도 6의 현재 에피소드(606)일 수 있다. 단계(1208)에서, 시퀀스 분석기(508)는 제2 프레임들의 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성한다. 예를 들어, 시퀀스 분석기(508)는 도 6과 연계하여 앞서 논의된 바와 같이 현재 에피소드(606)에 기초하여 핑거프린트들(606)을 생성할 수 있다.
단계(1210)에서, 시퀀스 분석기(508)는 제1 시퀀스에 및 제2 시퀀스에 공통인 제1 프레임을 식별하기 위해 제1 핑거프린트들의 세트를 제2 핑거프린트들의 세트와 비교한다. 그렇게 함에 있어서, 시퀀스 분석기(508)는 이들 핑거프린트들에 포함된 상이한 데이터를 복잡도의 증가 순으로 순차적인 방식으로 비교할 수 있다. 단계(1212)에서, 시퀀스 분석기(508)는 제1 프레임과 연관된 제2 프레임들의 시퀀스에서 제1 샷 시퀀스를 결정한다. 제1 샷 시퀀스는, 다른 가능성들 중에서도, 제1 및 제2 시퀀스들에 걸쳐 공통인 소개 섹션에 포함될 수 있다.
단계(1214)에서, 시퀀스 분석기(508)는 제1 샷 시퀀스와 연관된 제1 시간 범위를 결정한다. 단계(1214)에서 결정된 시간 범위는 도 6 내지 도 9b 및 도 11의 시간 범위들(612) 중 하나이다. 도 7 및 도 8의 재생 인터페이스(700)는 콘텐츠 건너뛰기를 가능하게 하기 위해 제1 시간 범위를 디스플레이한다. 단계(1216)에서, 재생 애플리케이션(436)은 제2 프레임들의 시퀀스의 재생이 제1 시간 범위에 기초하여 진전되어야 한다는 것을 나타내는 입력을 (재생 인터페이스(700)를 통해) 수신한다. 그 후 재생 애플리케이션(436)은 반복된 콘텐츠를 지나쳐 제2 프레임들의 시퀀스의 재생을 진전시킬 수 있다.
요약하면, 시퀀스 분석기는 에피소드 시리즈의 상이한 에피소드들을 비교하여 사용자에게 이미 재생된 시리즈의 현재 에피소드의 부분들을 식별한다. 그런 부분들은 크레디트들과 같은 소개 자료, 또는 이전 에피소드들로부터의 콘텐츠를 포함하는 요약 섹션을 포함할 수 있다. 시퀀스 분석기는 시리지의 이전 에피소드를 파싱하고 각각의 샷 시퀀스에 대한 대표 프레임을 선택한다. 그 후, 시퀀스 분석기는 연관된 대표 프레임에 기초하여 각각의 샷 시퀀스에 대한 핑거프린트를 생성한다. 시퀀스 분석기는 시리즈의 현재 에피소드와 연관된 핑거프린트들을 시리즈의 하나 이상의 이전 에피소드들과 연관된 핑거프린트들과 비교하여 이미 재생된 샷 시퀀스들을 식별한다. 그 후 사용자는 재생 인터페이스를 통해 이들 반복 시퀀스들을 건너뛸 수 있다.
개시된 기술들의 적어도 하나의 장점은 사용자들이 에피소드 시리즈들의 부분들을 다시 시청할 필요가 없다는 것이다. 대신에, 시퀀스 분석기는 사용자에게 이미 재생된 그런 시리즈들의 특정 부분들을 결정하고, 사용자가 그런 부분들을 건너뛰도록 허용한다. 그에 따라서, 사용자는 에피소드 시리즈에 그리고 일반적으로 비디오 스트리밍 서비스에 더욱 사로잡히게 되어서, 더 큰 고객 만족을 얻게 된다.
1. 일부 실시예들에서, 컴퓨터 구현 방법은: 제1 비디오 시퀀스에 기초하여 제1 핑거프린트들의 세트를 생성하는 단계 - 제1 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 제1 비디오 시퀀스의 상이한 부분을 식별함 -, 제2 비디오 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성하는 단계 - 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 제2 비디오 시퀀스의 상이한 부분을 식별함 -, 제1 비디오 시퀀스의 제1 부분이 제2 비디오 시퀀스의 제2 부분과 실질적으로 유사하다는 것을 결정하기 위해 제1 핑거프린트들의 세트를 제2 핑거프린트들의 세트와 비교하는 단계 -, 및 제2 비디오 시퀀스를 재생할 때, 제2 비디오 시퀀스로 하여금 제2 부분을 지나쳐 전진하도록 야기하는 단계를 포함한다.
2. 조항 1의 컴퓨터 구현 방법에 있어서, 특정 비디오 시퀀스에 기초하여 특정 핑거프린트들의 세트를 생성하는 단계는: 특정 비디오 시퀀스에 포함된 복수의 부분을 결정하는 단계, 복수의 부분에 포함된 각각의 부분으로부터 개별적인 대표 프레임을 선택하는 단계, 및 각각의 개별적인 대표 프레임에 대한 개별적인 핑거프린트를 생성하는 단계를 포함한다.
3. 조항 1 또는 조항 2의 컴퓨터 구현 방법에 있어서, 특정 대표 프레임에 대해 특정 핑거프린트를 생성하는 단계는 핑거프린트 데이터의 하나 이상의 서브세트를 생성하는 단계를 포함하고, 핑거프린트 데이터의 각각의 서브세트는 특정 대표 프레임과 연관된 신호 대 잡음비, 특정 대표 프레임에 대응하는 히스토그램, 특정 대표 프레임의 적어도 하나의 구조적 속성을 정의하는 구조적 데이터, 또는 특정 대표 프레임의 적어도 하나의 특징을 나타내는 특징 데이터를 포함한다.
4. 조항 1, 조항 2, 및 조항 3 중 어느 한 조항의 컴퓨터 구현 방법에 있어서, 제1 핑거프린트들의 세트를 제2 핑거프린트들의 세트와 비교하는 단계는 제1 핑거프린트들의 세트에 포함된 제1 핑거프린트가 제2 핑거프린트들의 세트에 포함된 제2 핑거프린트와 실질적으로 유사하다는 것을 결정하기 위해 제1 핑거프린트들의 세트에 포함된 각각의 핑거프린트를 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트와 비교하는 단계를 포함한다.
5. 조항 1, 조항 2, 조항 3, 및 조항 4 중 어느 한 조항의 컴퓨터 구현 방법에 있어서, 제1 핑거프린트는 제1 비디오 시퀀스의 제1 부분으로부터 생성되고, 제2 핑거프린트는 제2 비디오 시퀀스의 제2 부분으로부터 생성된다.
6. 조항 1, 조항 2, 조항 3, 조항 4, 및 조항 5 중 어느 한 조항의 컴퓨터 구현 방법에 있어서, 제1 핑거프린트에 포함된 제1 데이터의 서브세트가 제2 핑거프린트에 포함된 제2 데이터의 서브세트와 실질적으로 유사한 것을 결정하고, 및 제1 핑거프린트에 포함된 제3 데이터의 서브세트가 제2 핑거프린트에 포함된 제4 데이터의 서브세트와 실질적으로 유사한 것을 결정함으로써, 제1 핑거프린트가 제2 핑거프린트와 실질적으로 유사한 것으로 결정된다.
7. 조항 1, 조항 2, 조항 3, 조항 4, 조항 5, 및 조항 6 중 어느 한 조항의 컴퓨터 구현 방법에 있어서, 비디오 시퀀스의 제1 부분은 제1 캡처 포인트로부터 연속적으로 캡처된 제1 프레임들의 시퀀스를 포함하고, 제1 캡처 포인트는 물리적 비디오 카메라 또는 가상 비디오 카메라를 포함한다.
8. 조항 1, 조항 2, 조항 3, 조항 4, 조항 5, 조항 6, 및 조항 7 중 어느 한 조항의 컴퓨터 구현 방법에 있어서, 제2 비디오 시퀀스로 하여금 제2 비디오 시퀀스의 제2 부분을 지나쳐 전진하도록 야기하는 단계는 제2 비디오 시퀀스의 제2 부분에 대응하는 제1 시간 범위를 생성하는 단계, 및 재생 인터페이스를 통해 수신된 선택에 응답하여 제2 비디오 시퀀스를 제1 시간 범위를 지나쳐 전진시키는 단계를 포함한다.
9. 조항 1, 조항 2, 조항 3, 조항 4, 조항 5, 조항 6, 조항 7, 및 조항 8 중 어느 한 조항의 컴퓨터 구현 방법은, 제2 비디오 시퀀스의 재생 위치가 제1 시간 범위 내에 속할 때에만 선택이 그를 통해 수신되는 재생 인터페이스 내에 제1 인터페이스 요소를 디스플레이하는 단계를 추가로 포함한다.
10. 일부 실시예들에서, 비일시적 컴퓨터 판독가능 매체는 프로그램 명령어들을 저장하고, 프로그램 명령어들은, 프로세서에 의해 실행될 때, 프로세서로 하여금 제1 비디오 시퀀스에 기초하여 제1 핑거프린트들의 세트를 생성하는 단계 - 제1 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 제1 비디오 시퀀스의 상이한 부분을 식별함 -, 제2 비디오 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성하는 단계 - 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 제2 비디오 시퀀스의 상이한 부분을 식별함 -, 제1 비디오 시퀀스의 제1 부분이 제2 비디오 시퀀스의 제2 부분과 실질적으로 유사하다는 것을 결정하기 위해 제1 핑거프린트들의 세트를 제2 핑거프린트들의 세트와 비교하는 단계, 제2 비디오 시퀀스를 재생할 때, 제2 비디오 시퀀스로 하여금 제2 부분을 지나쳐 전진하도록 야기하는 단계를 수행하도록 구성한다.
11. 조항 10의 비일시적 컴퓨터 판독가능 매체에 있어서, 특정 비디오 시퀀스에 기초하여 특정 핑거프린트들의 세트를 생성하는 단계는: 특정 비디오 시퀀스에 포함된 복수의 부분을 결정하는 단계, 복수의 부분에 포함된 각각의 부분으로부터 개별적인 대표 프레임을 선택하는 단계, 및 각각의 개별적인 대표 프레임에 대해 개별적인 핑거프린트를 생성하는 단계를 포함한다.
12. 조항 10 및 조항 11 중 어느 한 조항의 비일시적 컴퓨터 판독가능 매체에 있어서, 특정 대표 프레임에 대해 특정 핑거프린트를 생성하는 단계는 핑거프린트 데이터의 하나 이상의 서브세트를 생성하는 단계를 포함하고, 핑거프린트 데이터의 각각의 서브세트는 특정 대표 프레임과 연관된 신호 대 잡음비, 특정 대표 프레임에 대응하는 히스토그램, 특정 대표 프레임의 적어도 하나의 구조적 속성을 정의하는 구조적 데이터, 또는 특정 대표 프레임의 적어도 하나의 특징을 나타내는 특징 데이터를 포함한다.
13. 조항 10, 조항 11, 및 조항 12 중 어느 한 조항의 비일시적 컴퓨터 판독가능 매체에 있어서, 제1 핑거프린트들의 세트를 제2 핑거프린트들의 세트와 비교하는 단계는 제1 핑거프린트들의 세트에 포함된 제1 핑거프린트가 제2 핑거프린트들의 세트에 포함된 제2 핑거프린트와 실질적으로 유사하다는 것을 결정하기 위해 제1 핑거프린트들의 세트에 포함된 각각의 핑거프린트를 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트와 비교하는 단계를 포함한다.
14. 조항 10, 조항 11, 조항 12, 및 조항 13 중 어느 한 조항의 비일시적 컴퓨터 판독가능 매체에 있어서, 제1 핑거프린트는 제1 비디오 시퀀스의 제1 부분으로부터 생성되고, 제2 핑거프린트는 제2 비디오 시퀀스의 제2 부분으로부터 생성된다.
15. 조항 10, 조항 11, 조항 12, 조항 13, 및 조항 14 중 어느 한 조항의 비일시적 컴퓨터 판독가능 매체에 있어서, 제1 핑거프린트에 포함된 제1 데이터의 서브세트가 제2 핑거프린트에 포함된 제2 데이터의 서브세트와 실질적으로 유사하다는 것을 결정하고, 및 제1 핑거프린트에 포함된 제3 데이터의 서브세트가 제2 핑거프린트에 포함된 제4 데이터의 서브세트와 실질적으로 유사하다는 것을 결정함으로써, 제1 핑거프린트가 제2 핑거프린트와 실질적으로 유사한 것으로 결정된다.
16. 조항 10, 조항 11, 조항 12, 조항 13, 조항 14, 및 조항 15 중 어느 한 조항의 비일시적 컴퓨터 판독가능 매체에 있어서, 제1 비디오 시퀀스의 제1 부분과 제2 비디오 시퀀스의 제2 부분 모두는 하나 이상의 프로덕션 크레디트를 포함하는 소개 시퀀스를 포함한다.
17. 조항 10, 조항 11, 조항 12, 조항 13, 조항 14, 조항 15, 및 조항 16 중 어느 한 조항의 비일시적 컴퓨터 판독가능 매체에 있어서, 제2 비디오 시퀀스의 제2 부분은 제1 비디오 시퀀스의 제1 부분에 또한 포함된 비디오 데이터의 하나 이상의 프레임을 포함하는 요약 시퀀스를 포함한다.
18. 조항 10, 조항 11, 조항 12, 조항 13, 조항 14, 조항 15, 조항 16, 및 조항 17 중 어느 한 조항의 비일시적 컴퓨터 판독가능 매체에 있어서, 제2 비디오 시퀀스의 제2 부분과 연관된 카테고리를 결정하는 단계, 및 재생 인터페이스로 하여금 카테고리를 표시하는 인터페이스 요소를 디스플레이하도록 야기하는 단계를 추가로 포함한다.
19. 일부 실시예들에서, 시스템은: 애플리케이션을 저장한 메모리; 및 애플리케이션을 실행하여, 제1 비디오 시퀀스에 기초하여 제1 핑거프린트들의 세트를 생성하는 단계 - 제1 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 제1 비디오 시퀀스의 상이한 부분을 식별함 -, 제2 비디오 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성하는 단계 - 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 제2 비디오 시퀀스의 상이한 부분을 식별함 -, 제1 비디오 시퀀스의 제1 부분이 제2 비디오 시퀀스의 제2 부분과 실질적으로 유사하다는 것을 결정하기 위해 제1 핑거프린트들의 세트를 제2 핑거프린트들의 세트와 비교하는 단계, 및 제2 비디오 시퀀스를 재생할 때, 제2 비디오 시퀀스로 하여금 제2 부분을 지나쳐 전진하도록 야기하는 단계를 수행하도록 하는 프로세서를 포함한다.
20. 조항 19의 시스템에 있어서, 제1 비디오 시퀀스의 제1 부분과 제2 비디오 시퀀스의 제2 부분 모두는 하나 이상의 프로덕션 크레디트를 포함하는 소개 시퀀스를 포함한다.
다양한 실시예들에 대한 설명은 예시의 목적으로 제시된 것이고, 하나도 빠짐없이 포함하거나 또는 개시된 실시예들로만 한정되도록 의도되지 않는다. 설명된 실시예들의 사상과 범위로부터 벗어나지 않고 많은 수정 및 변형이 본 기술분야의 통상의 기술자에게 명백할 것이다.
본 실시예들의 양태들은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 구체화될 수 있다. 따라서, 본 개시내용의 양태들은 전적으로 하드웨어 실시예, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함함) 또는 본 명세서에서 모두 일반적으로 "모듈" 또는 "시스템"으로서 지칭될 수 있는 소프트웨어 및 하드웨어 양태들을 조합한 실시예의 형태를 취할 수 있다. 더욱이, 본 개시내용의 양태들은 그 상에 구체화된 컴퓨터 판독가능 프로그램 코드를 갖는 하나 이상의 컴퓨터 판독가능 매체(들)에 구체화된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터 판독가능 매체(들)의 임의의 조합이 활용될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 저장 매체일 수 있다. 컴퓨터 판독가능 저장 매체는, 예를 들어, 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 전술한 것들의 임의의 적절한 조합일 수 있지만, 이것에만 한정되는 것은 아니다. 컴퓨터 판독가능 저장 매체의 보다 구체적인 예들(비-포괄적 리스트)은 하나 이상의 와이어를 갖는 전기 커넥션, 휴대용 컴퓨터 디스켓, 하드디스크, 랜덤 액세스 메모리(random access memory, RAM), 판독-전용 메모리(read-only memory, ROM), 소거 가능한 프로그램 가능 판독-전용 메모리(erasable programmable read-only memory, EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 판독-전용 메모리(portable compact disc read-only memory, CD-ROM), 광학 저장 디바이스, 자기 저장 디바이스, 또는 전술한 것들의 임의의 적절한 조합을 포함할 것이다. 본 명세서의 맥락에서, 컴퓨터 판독가능 저장 매체는, 명령어 실행 시스템, 장치, 또는 디바이스에 의해 이용되거나 이와 연계하여 이용되는 프로그램을 포함하거나 저장할 수 있는 임의의 유형 매체(tangible medium)일 수 있다.
본 개시내용의 양태들은 본 개시내용의 실시예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록도들을 참조하여 앞서 설명되었다. 흐름도 및/또는 블록도의 각각의 블록, 및 흐름도 및/또는 블록도에서의 블록들의 조합들은 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다는 것이 이해될 것이다. 이들 컴퓨터 프로그램 명령어들은 범용 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그래밍 가능 데이터 처리 장치의 프로세서에 제공되어 머신을 생성할 수 있으며, 따라서 컴퓨터의 프로세서 또는 다른 프로그래밍 가능 데이터 처리 장치를 통해 실행되는 명령어들은 흐름도 및/또는 블록도 블록 또는 블록들에서 지정된 기능들/작용들의 구현을 가능하게 한다. 그러한 프로세서들은, 제한 없이, 범용 프로세서들, 특수 목적 프로세서들, 애플리케이션 특정 프로세서들, 또는 필드 프로그래밍가능 프로세서들 또는 게이트 어레이들일 수 있다.
도면들에서의 흐름도 및 블록도들은 본 개시내용의 다양한 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능, 및 동작을 도시한다. 이와 관련하여, 흐름도 또는 블록도들에서의 각각의 블록은 지정된 논리 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령어를 포함하는, 모듈, 세그먼트, 또는 코드의 부분을 나타낼 수 있다. 또한 일부 대안 실시예들에서 블록에서 유의하고 있는 기능은 도면들에 나타낸 순서와는 다른 순서로 발생할 수 있음에 유의해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록은, 사실상, 수반된 기능에 좌우되어, 실질적으로 동시에 실행되거나, 또는 블록들은 때때로 역순으로 실행될 수 있다. 블록도들 및/또는 흐름도의 각각의 블록, 및 블록도들 및/또는 흐름도에서의 블록들의 조합들은 지정된 기능들 또는 작용들을 수행하는 특수 목적 하드웨어 기반 시스템들, 또는 특수 목적 하드웨어와 컴퓨터 명령어들의 조합들에 의해 구현될 수 있다는 점에도 주목할 것이다.
전술한 내용은 본 개시내용의 실시예들에 관한 것이지만, 본 개시내용의 다른 실시예들 및 추가 실시예들은 본 발명의 기본 범위를 벗어나지 않고 이루어질 수 있으며, 그 범위는 다음의 청구범위에 의해 결정된다.

Claims (20)

  1. 컴퓨터 구현 방법(computer-implemented method)으로서:
    제1 비디오 시퀀스에 기초하여 제1 핑거프린트들의 세트를 생성하는 단계 - 상기 제1 핑거프린트들의 세트는 상기 제1 비디오 시퀀스의 각각의 부분에 대해, 상기 부분 내의 대표 프레임을 식별하기 위해 연관된 콘텐츠를 상기 부분 내의 2개 이상의 프레임들과 비교하고, 상기 대표 프레임에 기초하여 상기 제1 비디오 시퀀스의 상기 부분을 식별하는 상이한 핑거프린트를 생성함으로써 생성됨 -;
    제2 비디오 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성하는 단계 - 상기 제2 핑거프린트들의 세트에 포함되는 각각의 핑거프린트는 상기 제2 비디오 시퀀스의 상이한 부분을 식별함 -;
    상기 제1 비디오 시퀀스의 제1 부분이 상기 제2 비디오 시퀀스의 제2 부분과 실질적으로 유사하다는 것을 결정하기 위해 상기 제1 핑거프린트들의 세트를 상기 제2 핑거프린트들의 세트와 비교하는 단계; 및
    상기 제2 비디오 시퀀스를 재생할 때, 상기 제2 비디오 시퀀스로 하여금 상기 제2 부분을 지나쳐 전진하도록 야기하는 단계를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 제2 비디오 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성하는 단계는:
    상기 제2 비디오 시퀀스에 포함된 복수의 부분을 결정하는 단계;
    상기 복수의 부분에 포함된 각각의 부분으로부터 개별적인 대표 프레임을 선택하는 단계; 및
    각각의 개별적인 대표 프레임에 대해 개별적인 핑거프린트를 생성하는 단계를 포함하는 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    특정 대표 프레임에 대해 특정 핑거프린트를 생성하는 단계는 핑거프린트 데이터의 하나 이상의 서브세트를 생성하는 단계를 포함하고, 핑거프린트 데이터의 각각의 서브세트는 상기 특정 대표 프레임과 연관된 신호 대 잡음비, 상기 특정 대표 프레임에 대응하는 히스토그램, 상기 특정 대표 프레임의 적어도 하나의 구조적 속성을 정의하는 구조적 데이터, 또는 상기 특정 대표 프레임의 적어도 하나의 특징을 나타내는 특징 데이터를 포함하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 제1 핑거프린트들의 세트를 상기 제2 핑거프린트들의 세트와 비교하는 단계는 상기 제1 핑거프린트들의 세트에 포함된 제1 핑거프린트가 상기 제2 핑거프린트들의 세트에 포함된 제2 핑거프린트와 실질적으로 유사하다는 것을 결정하기 위해 상기 제1 핑거프린트들의 세트에 포함된 각각의 핑거프린트를 상기 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트와 비교하는 단계를 포함하는 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 제1 핑거프린트는 상기 제1 비디오 시퀀스의 제1 부분으로부터 생성되고, 상기 제2 핑거프린트는 상기 제2 비디오 시퀀스의 제2 부분으로부터 생성되는 컴퓨터 구현 방법.
  6. 제4항에 있어서,
    상기 제1 핑거프린트에 포함된 제1 데이터의 서브세트가 상기 제2 핑거프린트에 포함된 제2 데이터의 서브세트와 실질적으로 유사한 것을 결정하고;
    상기 제1 핑거프린트에 포함된 제3 데이터의 서브세트가 상기 제2 핑거프린트에 포함된 제4 데이터의 서브세트와 실질적으로 유사한 것을 결정함으로써 상기 제1 핑거프린트가 상기 제2 핑거프린트와 실질적으로 유사한 것으로 결정되는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 제1 비디오 시퀀스 부분은 제1 캡처 포인트로부터 연속적으로 캡처된 제1 프레임들의 시퀀스를 포함하고, 상기 제1 캡처 포인트는 물리적 비디오 카메라 또는 가상 비디오 카메라를 포함하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 제2 비디오 시퀀스로 하여금 상기 제2 비디오 시퀀스의 제2 부분을 지나쳐 전진하도록 야기하는 단계는 상기 제2 비디오 시퀀스의 제2 부분에 대응하는 제1 시간 범위를 생성하는 단계, 및 재생 인터페이스를 통해 수신된 선택에 응답하여 상기 제2 비디오 시퀀스를 상기 제1 시간 범위를 지나쳐 전진시키는 단계를 포함하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 제2 비디오 시퀀스의 재생 위치가 상기 제1 시간 범위 내에 속할 때에만 상기 선택이 그를 통해 수신되는 상기 재생 인터페이스 내에 제1 인터페이스 요소를 디스플레이하는 단계를 추가로 포함하는 컴퓨터 구현 방법.
  10. 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 프로그램 명령어들은 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    제1 비디오 시퀀스에 기초하여 제1 핑거프린트들의 세트를 생성하는 단계 - 상기 제1 핑거프린트들의 세트는 상기 제1 비디오 시퀀스의 각각의 부분에 대해, 상기 부분 내의 대표 프레임을 식별하기 위해 연관된 콘텐츠를 상기 부분 내의 2개 이상의 프레임들과 비교하고, 상기 대표 프레임에 기초하여 상기 제1 비디오 시퀀스의 상기 부분을 식별하는 상이한 핑거프린트를 생성함으로써 생성됨 -;
    제2 비디오 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성하는 단계 - 상기 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 상기 제2 비디오 시퀀스의 상이한 부분을 식별함 -;
    상기 제1 비디오 시퀀스의 제1 부분이 상기 제2 비디오 시퀀스의 제2 부분과 실질적으로 유사하다는 것을 결정하기 위해 상기 제1 핑거프린트들의 세트를 상기 제2 핑거프린트들의 세트와 비교하는 단계; 및
    상기 제2 비디오 시퀀스를 재생할 때, 상기 제2 비디오 시퀀스로 하여금 상기 제2 부분을 지나쳐 전진하도록 야기하는 단계를 수행하게 구성하는 비일시적 컴퓨터 판독가능 매체.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 시스템으로서:
    애플리케이션을 저장한 메모리; 및
    상기 애플리케이션을 실행하여:
    제1 비디오 시퀀스에 기초하여 제1 핑거프린트들의 세트를 생성하는 단계 - 상기 제1 핑거프린트들의 세트는 상기 제1 비디오 시퀀스의 각각의 부분에 대해, 상기 부분 내의 대표 프레임을 식별하기 위해 연관된 콘텐츠를 상기 부분 내의 2개 이상의 프레임들과 비교하고, 상기 대표 프레임에 기초하여 상기 제1 비디오 시퀀스의 상기 부분을 식별하는 상이한 핑거프린트를 생성함으로써 생성됨 -;
    제2 비디오 시퀀스에 기초하여 제2 핑거프린트들의 세트를 생성하는 단계 - 상기 제2 핑거프린트들의 세트에 포함된 각각의 핑거프린트는 상기 제2 비디오 시퀀스의 상이한 부분을 식별함 -;
    상기 제1 비디오 시퀀스의 제1 부분이 상기 제2 비디오 시퀀스의 제2 부분과 실질적으로 유사하다는 것을 결정하기 위해 상기 제1 핑거프린트들의 세트를 상기 제2 핑거프린트들의 세트와 비교하는 단계; 및
    상기 제2 비디오 시퀀스를 재생할 때, 상기 제2 비디오 시퀀스로 하여금 상기 제2 부분을 지나쳐 전진하도록 야기하는 단계를 수행하도록 하는 프로세서를 포함하는 시스템.
  20. 제19항에 있어서,
    상기 제1 비디오 시퀀스의 제1 부분과 상기 제2 비디오 시퀀스의 제2 부분 모두는 하나 이상의 프로덕션 크레디트를 포함하는 소개 시퀀스를 포함하는 시스템.
KR1020207004532A 2017-07-19 2018-07-10 반복적 재생을 피하기 위한 미디어 타이틀의 이전에 스트리밍된 부분들의 식별 KR102286410B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/654,657 2017-07-19
US15/654,657 US10560506B2 (en) 2017-07-19 2017-07-19 Identifying previously streamed portions of a media title to avoid repetitive playback
PCT/US2018/041494 WO2019018164A1 (en) 2017-07-19 2018-07-10 IDENTIFYING PREVIOUSLY BROADCAST PORTIONS OF A MULTIMEDIA TITLE TO PREVENT REPETITIVE READING

Publications (2)

Publication Number Publication Date
KR20200029021A KR20200029021A (ko) 2020-03-17
KR102286410B1 true KR102286410B1 (ko) 2021-08-05

Family

ID=63145186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207004532A KR102286410B1 (ko) 2017-07-19 2018-07-10 반복적 재생을 피하기 위한 미디어 타이틀의 이전에 스트리밍된 부분들의 식별

Country Status (11)

Country Link
US (1) US10560506B2 (ko)
EP (1) EP3656130B1 (ko)
JP (1) JP7175957B2 (ko)
KR (1) KR102286410B1 (ko)
CN (1) CN111095939B (ko)
AU (2) AU2018304058B2 (ko)
BR (1) BR112020001016A2 (ko)
CA (1) CA3069853C (ko)
PL (1) PL3656130T3 (ko)
SG (1) SG11202000400TA (ko)
WO (1) WO2019018164A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11611803B2 (en) * 2018-12-31 2023-03-21 Dish Network L.L.C. Automated content identification for binge watching of digital media
US11336947B2 (en) 2019-09-13 2022-05-17 Netflix, Inc. Audio transitions when streaming audiovisual media titles
US11503264B2 (en) 2019-09-13 2022-11-15 Netflix, Inc. Techniques for modifying audiovisual media titles to improve audio transitions
US11647253B2 (en) 2020-06-29 2023-05-09 Rovi Guides, Inc. Systems and methods for providing improved skip and delay functionality in media assets
US11240561B2 (en) 2020-06-29 2022-02-01 Rovi Guides, Inc. Systems and methods for providing improved skip and delay functionality in media assets
CN112423116A (zh) * 2020-11-20 2021-02-26 广州欢网科技有限责任公司 一种多媒体文件连续播放方法及***
CN112929696B (zh) * 2021-01-26 2023-05-02 广州欢网科技有限责任公司 多剧集影视的拼接方法、装置、存储介质及电子设备
CN113852853B (zh) * 2021-09-18 2024-05-28 青岛海信宽带多媒体技术有限公司 一种机顶盒及连续播放节目方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342844A1 (en) * 2015-03-17 2016-11-24 Netflix, Inc. Detecting segments of a video program through image comparisons

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100426861C (zh) 2002-07-01 2008-10-15 微软公司 对嵌于媒介流中的重复对象提供用户控制的***和方法
AU2003283783A1 (en) 2002-12-20 2005-05-11 Koninklijke Philips Electronics N.V. Video content detection
US20060271947A1 (en) 2005-05-23 2006-11-30 Lienhart Rainer W Creating fingerprints
US8103050B2 (en) * 2006-01-16 2012-01-24 Thomson Licensing Method for computing a fingerprint of a video sequence
EP2559237A1 (en) 2010-04-14 2013-02-20 Sven Riethmueller Platform-independent interactivity with media broadcasts
TWI556638B (zh) 2013-10-22 2016-11-01 瑞軒科技股份有限公司 多媒體檔案的片頭略過方法與電子裝置
US9558407B1 (en) 2013-12-24 2017-01-31 Google Inc. Methods, systems, and media for detecting and presenting related media content
US9668020B2 (en) * 2014-04-07 2017-05-30 The Nielsen Company (Us), Llc Signature retrieval and matching for media monitoring

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160342844A1 (en) * 2015-03-17 2016-11-24 Netflix, Inc. Detecting segments of a video program through image comparisons

Also Published As

Publication number Publication date
WO2019018164A1 (en) 2019-01-24
AU2021202189A1 (en) 2021-05-06
AU2018304058B2 (en) 2021-01-21
CN111095939A (zh) 2020-05-01
EP3656130A1 (en) 2020-05-27
KR20200029021A (ko) 2020-03-17
SG11202000400TA (en) 2020-02-27
CN111095939B (zh) 2023-07-18
CA3069853A1 (en) 2019-01-24
JP7175957B2 (ja) 2022-11-21
BR112020001016A2 (pt) 2020-07-14
US10560506B2 (en) 2020-02-11
US20190028525A1 (en) 2019-01-24
PL3656130T3 (pl) 2024-03-11
CA3069853C (en) 2022-09-06
JP2020530954A (ja) 2020-10-29
AU2018304058A1 (en) 2020-02-06
EP3656130B1 (en) 2023-10-04

Similar Documents

Publication Publication Date Title
KR102286410B1 (ko) 반복적 재생을 피하기 위한 미디어 타이틀의 이전에 스트리밍된 부분들의 식별
CN107534796B (zh) 视频处理***和数字视频分发***
US9912974B2 (en) Shot structure of online video as a predictor of success
CN101443849B (zh) 视频浏览用户界面
KR102213628B1 (ko) 오디오에 수반되는 비디오 프레젠테이션 생성
US11438510B2 (en) System and method for editing video contents automatically technical field
US11979641B2 (en) Relevance-based search and discovery of media content
JP5789303B2 (ja) コンテンツシグネチャリング
WO2016094095A1 (en) Generating recommendations based on processing content item metadata tags
CN111935502A (zh) 视频处理方法、装置、电子设备以及存储介质
US20090113466A1 (en) System, Method and Computer Program Product for Evaluating Media Streams
US20230326489A1 (en) Generation of visual effects based on text
US11869098B2 (en) Methods and systems for presenting information
US20220317968A1 (en) Voice command processing using user interface context
US11700285B2 (en) Filtering video content items
US11249823B2 (en) Methods and systems for facilitating application programming interface communications
US10990456B2 (en) Methods and systems for facilitating application programming interface communications
US11928078B2 (en) Creating effect assets while avoiding size inflation
US20240214629A1 (en) Methonds and systems for presenting information
KR101663416B1 (ko) Ott 동글을 이용한 정렬된 썸네일 기반의 비디오 브라우징 방법 및 시스템
WO2020247259A1 (en) Methods and systems for facilitating application programming interface communications

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