KR102117922B1 - 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현 - Google Patents

라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현 Download PDF

Info

Publication number
KR102117922B1
KR102117922B1 KR1020197027609A KR20197027609A KR102117922B1 KR 102117922 B1 KR102117922 B1 KR 102117922B1 KR 1020197027609 A KR1020197027609 A KR 1020197027609A KR 20197027609 A KR20197027609 A KR 20197027609A KR 102117922 B1 KR102117922 B1 KR 102117922B1
Authority
KR
South Korea
Prior art keywords
media
content
feed
overlay
location
Prior art date
Application number
KR1020197027609A
Other languages
English (en)
Other versions
KR20190113987A (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 KR20190113987A publication Critical patent/KR20190113987A/ko
Application granted granted Critical
Publication of KR102117922B1 publication Critical patent/KR102117922B1/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/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • 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
    • 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/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • 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/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management 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/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/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • 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/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • 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/84Generation or processing of descriptive data, e.g. content descriptors
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8545Content authoring for generating interactive applications
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명는 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어를 위한 방법을 제공한다. 이 방법은 텔레비전 브로드캐스터(102)로부터 스트리밍 라이브 미디어 피드(103)를 수신하는 단계 및 스트리밍 라이브 미디어 피드(103)의 미디어 컨텐츠(M)에 오버레이(212)를 디스플레이하는 단계를 포함한다. 오버레이(212)는 텔레비전 브로드캐스터와 미디어 장치(115) 사이의 라이브 미디어 피드의 중개 피드 소스와 관련이 없는 재생 제어 옵션을 포함한다. 이 방법은 재생 제어 옵션의 제 1 선택 입력을 수신하는 단계 및 제 1 핑거프린트(128, 208, 306)가 제 2 핑거프린트(128, 208, 306)와 매칭되지 못한 것으로 결정함으로써 선택 입력이 스트리밍 라이브 미디어 피드의 미디어 컨텐츠(M) 내의 제 1 위치에서 재생 모드에 대응하는 것으로 결정하는 단계를 더 포함한다. 또한, 이 방법은 스트리밍 라이브 미디어 피드 상에 타겟팅된 오버레이 컨텐츠를 오버레이하는 단계를 포함한다.

Description

라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현
본 발명은 라이브 텔레비전 브로드캐스트 스트림(live television broadcast stream)들의 인터랙티브 제어를 가능하게 하는 자동 컨텐츠 인식을 이용하는 것에 관한 것이다.
스마트 텔레비전(TV)과 같은 미디어 소비 장치는 브로드캐스트 디지털 컨텐츠에 액세스하여 데이터 네트워크(예컨대, 인터넷)로부터 스트리밍 미디어와 같은 데이터를 수신할 수 있다. 스트리밍 미디어는 요청 시에 전화선, 케이블, 인터넷 등을 통해 영화나 뉴스와 같은 미디어 컨텐츠를 최종 사용자에게 제공할 수 있는 서비스를 말한다. 예를 들어, 사용자는 거주지를 떠나지 않고도 영화를 볼 수 있다. 또한, 사용자는 학교나 교육 기관에 실제 참석하지 않고서도 비디오 강의와 같은 다양한 유형의 교육 컨텐츠에 액세스할 수 있다.
미디어 소비 장치(또는 간단히 "미디어 장치")의 수가 계속 증가함에 따라, 비디오 컨텐츠 생성 및 전송이 마찬가지로 증가할 수 있다. 스트리밍 미디어에 액세스하기 위해 미디어 장치(예를 들면, 스마트 폰, 태블릿 및 스마트 텔레비전)의 사용이 증가함에 따라, 컨텐츠 또는 네트워크 공급자들(예를 들면, 로컬 브로드캐스터, 다중 채널 네트워크 및 기타 컨텐츠 소유자/배포자)은, 스트리밍 미디어(예를 들면, 미디어 프로그램)를 사용하는 뷰어들에게 상황에 맞는 내용물을 배포할 수 있다. 예를 들어, 로컬 브로드캐스터는 스트리밍 미디어와 상황적으로 관련된 광고 및 인터랙티브 컨텐츠를 포함할 수 있다.
본 발명의 일 양태는 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어를 가능하게 하기 위해 자동 컨텐츠 인식을 이용하는 방법을 제공한다. 이 방법은 미디어 장치의 데이터 처리 하드웨어에서 텔레비전 브로드캐스터로부터 스트리밍 라이브 미디어 피드를 수신하는 단계를 포함한다. 스트리밍 라이브 미디어 피드는 미디어 컨텐츠를 포함한다. 이 방법은 또한 미디어 장치의 데이터 처리 하드웨어에 의해 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 상에 오버레이를 디스플레이하는 단계를 포함한다. 오버레이는 재생 제어 옵션을 포함하며 텔레비전 브로드캐스터와 미디어 장치 사이의 라이브 미디어 피드의 중개 피드 소스(intermediary feed source)와 연관되어 있지 않다. 재생 제어 옵션은 또한 스트리밍 라이브 미디어 피드를 재생하기 위한 미디어 장치의 재생 모드를 제어하도록 구성된다. 이 방법은 미디어 장치의 데이터 처리 하드웨어에서 오버레이의 재생 제어 옵션의 제 1 선택 입력을 수신하는 단계를 더 포함한다. 이 방법은 또한 미디어 장치의 데이터 처리 하드웨어에 의해, 재생 제어 옵션의 선택 입력이 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 1 위치에서의 빨리 감기 재생 모드 또는 되감기 재생 모드에 대응하는 것으로 결정하는 단계를 포함한다. 또한, 이 방법은 미디어 장치의 데이터 처리 하드웨어에서 제 2 선택 입력을 수신하는 단계를 포함한다. 이 방법은 또한 미디어 장치의 데이터 처리 하드웨어에 의해 제 2 위치에서의 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 중 적어도 하나의 제 1 프레임의 제 1 핑거프린트에 기초하여 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치를 결정하는 단계를 포함한다. 제 2 위치는 제 2 선택 입력에 대응한다. 이 방법은 미디어 장치에서의 데이터 처리 하드웨어에 의해, 제 2 위치에서의 제 1 핑거프린트가 제 1 위치에서의 미디어 컨텐츠의 적어도 하나의 제 2 프레임의 제 2 핑거프린트와 매칭되지 않는 것으로 판정하는 단계를 더 포함한다. 또한, 이 방법은 미디어 장치의 데이터 처리 하드웨어에 의해 스트리밍 라이브 미디어 피드 상에 타겟팅된 오버레이 컨텐츠를 오버레이하는 단계를 포함한다. 타겟팅된 오버레이 컨텐츠는 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치에서의 미디어 컨텐츠와 컨텍스트적으로(contextually) 관련있다.
본 발명의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 이 방법은 미디어 장치의 데이터 처리 하드웨어에 의해, 사용자 프로파일에 기초하여 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치에서 미디어 컨텐츠와 컨텍스트적으로 관련되는 것으로 결정하는 단계를 더 포함한다. 일부 예들에서, 스트리밍 라이브 미디어 피드의 중개 피드 소스는 에어리얼(aerial), 새틀라이트(satellite), 인터넷 인에이블드(internet-enabled) 또는 셋탑 박스 중 하나이다. 일부 구현들에서, 제 2 선택 입력은 제 1 선택 입력에 시간적으로 후속된다.
일부 예들에서, 이 방법은 미디어 장치의 데이터 처리 하드웨어에 의해 미디어 컨텐츠를 일정 시간 동안 버퍼링하는 단계를 포함한다. 이 시간은 재생 제어 옵션의 제 1 선택 입력과 재생 제어 옵션의 제 2 선택 입력 사이의 지속 기간일 수 있다.
일부 구현들에서, 제 1 위치 및 제 2 위치 각각을 결정하는 단계는 미디어 장치의 데이터 처리 하드웨어에서 미디어 장치의 컨텐츠 피드로부터 미디어 컨텐츠에 대응하는 쿼리 핑거프린트를 수신하는 단계를 포함한다. 여기서, 쿼리 핑거프린트는 컨텐츠 피드로부터 미디어 컨텐츠의 순차적인 프레임을 나타내며 컨텐츠 피드 내의 시간적 위치에 대응하는 타임 스탬프를 포함한다. 이들 구현들 중 일부에서, 제 1 위치 및 제 2 위치 각각을 결정하는 단계는 또한 미디어 장치의 데이터 처리 하드웨어에 의해, 쿼리 핑거프린트가 텔레비전 브로드캐스터에 의해 제공되는 스트리밍 라이브 미디어 피드의 복수의 프레임 핑거프린트 중 적어도 하나의 프레임 핑거프린트와 매칭되는 것으로 판정하는 단계를 포함한다. 매칭된 적어도 하나의 프레임 핑거프린트는 텔레비전 브로드캐스터의 각 채널, 각 채널 내의 각 미디어 프로그램 및 각 채널의 각 미디어 프로그램 내의 각각의 위치와 연관된 것일 수 있다. 일부 구현들에서, 매칭된 적어도 하나의 프레임 핑거프린트가 텔레비전 브로드캐스터의 각각의 채널과 연관될 때, 제 1 위치 및 제 2 위치 각각을 결정하는 단계는 미디어 장치의 데이터 처리 하드웨어에 의해, 쿼리 핑거프린트는 쿼리 핑거프린트의 타임 스탬프 및 각각의 채널에 대한 스케줄링 데이터에 기초하여 텔레비전 브로드캐스터로부터의 라이브 미디어 피드의 미디어 프로그램 내의 각각의 위치에 대응하는 것으로 결정하는 것을 더 포함한다.
선택적으로, 이 방법은 미디어 장치의 데이터 처리 하드웨어로부터 제 1 위치 또는 제 2 위치 중 적어도 하나를 광고 타겟터로 전송하는 단계를 더 포함할 수 있다. 광고 타겟터는 뷰어의 뷰잉 습관에 기초하여 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하도록 구성될 수 있다. 일부 예들에서, 이 방법은 미디어 장치의 데이터 처리 하드웨어로부터, 뷰잉 이력으로서 제 1 위치와 연관된 미디어 프로그램의 식별자를 광고 타겟터로 전송하는 단계를 포함한다. 여기서 광고 타겟터는 뷰잉 이력에 기초하여 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하고 식별된 오버레이 컨텐츠를 미디어 장치에 전송하도록 구성될 수 있다. 일부 구성에서 오버레이에는 하이퍼 텍스트 마크업 언어 브라우저가 포함된다.
본 발명의 다른 양태는 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어를 가능하게 하기 위해 자동 컨텐츠 인식을 이용하는 시스템을 제공한다. 이 시스템은 데이터 처리 하드웨어 및 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는 데이터 처리 하드웨어 상에서 실행될 때 데이터 처리 하드웨어가 동작들을 수행하게 하는 명령어를 저장한다. 이 동작들은 텔레비전 브로드캐스터로부터 스트리밍 라이브 미디어 피드를 수신하는 동작을 포함한다. 스트리밍 라이브 미디어 피드는 미디어 컨텐츠를 포함한다. 이 동작들은 또한 스트리밍 라이브 미디어 피드의 미디어 컨텐츠에 오버레이를 표시하는 것을 포함한다. 오버레이는 재생 제어 옵션을 포함하고 텔레비전 브로드캐스터와 미디어 장치 사이의 라이브 미디어 피드의 중개 피드 소스와 연관되어 있지 않다. 재생 제어 옵션은 또한 스트리밍 라이브 미디어 피드를 재생하기 위한 미디어 장치의 재생 모드를 제어하도록 구성된다. 이 동작들은 오버레이의 재생 제어 옵션의 제 1 선택 입력을 수신하는 동작을 더 포함한다. 이 동작들은 또한 재생 제어 옵션의 선택 입력이 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 1 위치에서의 빨리 감기 재생 모드 또는 되감기 재생 모드에 대응한다고 결정하는 동작을 포함한다. 또한, 이 동작들은 제 2 선택 입력을 수신하는 동작을 포함한다. 이 동작들은 또한 제 2 위치에서의 스트리밍 라이브 미디어 피드의 미디어 컨텐츠의 미디어 컨텐츠 중 적어도 하나의 제 1 프레임의 제 1 핑거프린트에 기초하여 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치를 결정하는 동작을 포함한다. 제 2 위치는 제 2 선택 입력에 대응한다. 이 동작들은 제 2 위치에서의 제 1 핑거프린트가 제 1 위치에서의 미디어 컨텐츠의 적어도 하나의 제 2 프레임의 제 2 핑거프린트와 매칭되지 않는 것으로 결정하는 동작을 더 포함한다. 또한, 이 동작들은 스트리밍 라이브 미디어 피드 상에 타겟팅된 오버레이 컨텐츠를 오버레이하는 것을 포함한다. 타겟팅된 오버레이 컨텐츠는 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치에서의 미디어 컨텐츠와 컨텍스트적으로 관련있다.
본 발명의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 동작들은 사용자 프로파일에 기초하여 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치에서 미디어 컨텐츠와 컨텍스트적으로 관련있는 것으로 결정하는 동작을 더 포함한다. 일부 예들에서, 스트리밍 라이브 미디어 피드의 중개 피드 소스는 에어리얼, 새틀라이트, 인터넷 인에이블드 또는 셋탑 박스 중 하나이다. 일부 구현들에서, 제 2 선택 입력은 제 1 선택 입력에 시간적으로 후속된다.
일부 예들에서, 이 동작들은 일정 시간 동안 미디어 컨텐츠를 버퍼링하는 동작을 포함한다. 이 시간은 재생 제어 옵션의 제 1 선택 입력과 재생 제어 옵션의 제 2 선택 입력 사이의 지속 기간일 수 있다.
일부 구현들에서, 제 1 위치 및 제 2 위치 각각을 결정하는 동작은 미디어 장치에서 컨텐츠 피드로부터 미디어 컨텐츠에 대응하는 쿼리 핑거프린트를 수신하는 동작을 포함한다. 여기서, 쿼리 핑거프린트는 컨텐츠 피드로부터 미디어 컨텐츠의 순차적인 프레임을 나타내며 컨텐츠 피드 내의 시간적 위치에 대응하는 타임 스탬프를 포함한다. 이들 구현들 중 일부에서, 제 1 위치 및 제 2 위치 각각을 결정하는 동작은 또한 쿼리 핑거프린트가 텔레비전 브로드캐스트 자에 의해 제공되는 스트리밍 라이브 미디어 피드의 복수의 프레임 핑거프린트 중 적어도 하나의 프레임 핑거프린트와 매칭되는 것으로 판정하는 동작을 포함한다. 매칭된 적어도 하나의 프레임 핑거프린트는 텔레비전 브로드캐스터의 각 채널, 각 채널 내의 각 미디어 프로그램 및 각 채널의 각 미디어 프로그램 내의 각각의 위치와 연관된 것일 수 있다. 일부 구현들에서, 매칭된 적어도 하나의 프레임 핑거프린트가 텔레비전 브로드캐스터의 각각의 채널과 연관될 때, 쿼리 핑거프린트의 타임 스탬프 및 각각의 채널에 대한 스케줄링 데이터에 기초하여, 쿼리 핑거프린트가 텔레비전 브로드캐스터로부터의 라이브 미디어 피드의 미디어 프로그램 내의 각각의 위치에 대응하는 것으로 판정하는 것을 포함한다.
선택적으로, 이 동작들은 제 1 위치 또는 제 2 위치 중 적어도 하나를 광고 타겟터로 전송하는 동작을 더 포함할 수 있다. 광고 타겟터는 뷰어의 뷰잉 습관에 기초하여 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하도록 구성될 수 있다. 일부 예들에서, 이 동작들은 뷰잉 이력으로서 제 1 위치와 관련된 미디어 프로그램의 식별자를 광고 타겟터로 전송하는 동작을 포함한다. 여기서, 광고 타겟터는 뷰잉 이력에 기초하여 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하고 식별된 오버레이 컨텐츠를 미디어 장치로 통신하도록 구성될 수 있다. 일부 구성에서 오버레이에는 하이퍼 텍스트 마크업 언어 브라우저가 포함된다.
본 발명의 하나 이상의 구현의 세부 사항은 첨부 도면 및 이하의 설명에서 기술된다. 다른 양태들, 특징들 및 장점들은 상세한 설명 및 도면들 및 청구항들로부터 명백할 것이다.
도 1은 컨텐츠 분배 네트워크의 예시적인 시스템 다이어그램의 개략도를 도시한 것이다.
도 2는 오버레이 컨텐츠를 클라이언트 장치에 제공하기 위한 컨텐츠 매니저의 예의 개략도를 도시한 것이다.
도 3은 미디어 컨텐츠를 핑거프린팅하고 나중에 중단된 프로그램의 전달을 제어하는데 사용되는 자동 컨텐츠 인식(ACR) 컨텐츠 매니저의 예시적인 시스템 다이어그램의 개략도를 도시한 것이다.
도 4는 대응하는 미디어 프로그램을 식별하기 위한 예시적인 ACR 매칭 방법의 흐름도를 도시한 것이다.
도 5는 미디어 프로그램의 중단을 검출하고 미디어 프로그램이 이전에 스트리밍된 채널로 돌아 왔을 때 미디어 프로그램을 계속 뷰잉할 수 있는 옵션을 제공하는 예시적인 ACR 방법의 흐름도를 도시한 것이다.
도 6은 라이브 미디어 피드의 전달 타이밍을 제어하기 위해 미디어 장치 상에 옵션을 제공하는 ACR의 예시적인 방법의 흐름도를 도시한 것이다.
도 7은 머신이 본 명세서에서 논의된 임의의 하나 이상의 방법을 수행하게 하는 명령어 세트가 실행될 수 있는 컴퓨터 시스템의 예시적인 형태의 머신의 예시적인 개략도를 도시한 것이다.
다양한 도면에서 유사한 참조 부호는 유사한 요소를 나타낸다.
텔레비전(TV) 또는 인터넷 쇼 브로드캐스팅과 같은 미디어 컨텐츠 브로드캐스팅 또는 스트리밍은, 디지털 미디어 엔터테인먼트를 얻기 위해 계속 인기를 얻고 있는 미디어 소스이다. 이러한 미디어 컨텐츠를 찾는 많은 사용자는 예를 들어 셋탑 박스, 에어리얼 안테나, 위성 접시 또는 스마트 TV나 기타 미디어 장치를 포함하는 인터넷 가능 장치를 포함하는, 브로드캐스트되는 텔레비전 컨텐츠를 스트리밍하기 위한 각종 유형의 미디어 장치를 점점 더 많이 사용하고 있다. 동일한 TV 채널이 상이한 미디어 프로그램에 대한 채널 스케줄에 따라 이들 미디어 장치 중 임의의 것으로(통해) 스트리밍될 수 있다. 지금까지, 텔레비전 브로드캐스트의 소스와 상관없이, 미디어 프로그램 시청 중단을 감지하고 미디어 장치가 동일한 채널로 돌아올 때 뷰어가 해당 미디어 프로그램으로 되돌아갈 수 있는 방법을 제공하는 미디어 장치 수준의 방법은 존재하지 않았다.
개시된 자동 컨텐츠 인식(automatic content recognition, ACR) 시스템은 이러한 기능을 용이하게 하며, 이것에 대해 다음과 같이 보다 상세히 논의할 것이다. ACR 시스템은 먼저 라이브 미디어 피드로서 수신되는 스트리밍 미디어 컨텐츠의 핑거프린팅(fingerprinting)을 수행하여 채널을 식별할 수 있다. ACR 시스템은 뷰잉되고 있는 미디어 프로그램을 식별하기 위해 식별된 채널에 대한 현재의 스케줄링 정보에 액세스할 수 있다. ACR 시스템이 채널 변경, 전원 상실, 미디어 장치가 절전 상태로 되거나 사용자가 미디어 장치를 턴 오프하는 등 미디어 프로그램이 중단된 것을 감지하면, ACR 시스템은, 기록된 ACR 데이터에, 뷰잉 종료 시의 미디어 프로그램의 채널 및 위치, 그리고 그 소스를 기록할 수 있다. 나중에, 사용자가 미디어 장치의 채널로 되돌아올 경우, ACR 시스템은 사용자가 이전에 중단된 미디어 프로그램을 계속 시청하고 싶어하는지를 요청하는 오버레이를 미디어 장치의 디스플레이에 전달할 수 있다. 사용자가 프로그램을 계속 시청하기로 선택하면, 오버레이는 미디어 프로그램이 중단되었던 위치의 오리지널 소스(또는 ACR 버퍼링 소스)에서 미디어 프로그램의 스트리밍을 트리거할 수 있다.
일부 예들에서, 미디어 장치에서 실행되는 ACR 클라이언트를 포함할 수 있는, ACR 시스템은 미디어 장치의 디스플레이 상에 오버레이를 디스플레이할 수 있으며, 이 오버레이는 라이브 미디어 피드(예를 들면, 미디어 프로그램)를 미디어 장치로 스트리밍하는 타이밍을 제어하도록 선택 가능한 옵션을 포함한다. 입력 장치를 통한 옵션의 선택을 나타내는 선택 신호를 수신하면, ACR 클라이언트는 선택된 옵션과 관련된 제어 동작을 실행할 수 있다. 대안적인 실시예에서, 이 옵션은 미디어 장치에 페어링된 원격 제어기를 통해 이용 가능하며, 그것의 입력들이 옵션 선택에 적응될 수 있다. 다양한 실시예들에서, 제어 동작은 라이브 미디어 피드로 스트리밍되는 프로그램의 재생, 일시 정지, 빨리 감기 또는 되감기를 포함하며, 미디어 프로그램의 특정 섹션, 챕터 또는 에피소드로 점프하는 것과 같은 다른 동작들도 상정된다. 다양한 실시예들에서, 라이브 미디어 피드의 소스는 에어리얼(aerial), 새틀라이트(satellite), 셋탑 박스, 인터넷 인에이블드(internet-enabled) 또는 다른 다양한 라이브 미디어 피드의 소스 중 하나이다.
스트리밍의 위치가 변경되거나 일시 정지된 경우, ACR 클라이언트는 오버레이(또는 원격 제어기)의 옵션들 중 하나를 통해 스트리밍이 재개될 시에 미디어 프로그램에서 재생을 시작할 위치(미디어 장치에 대한 ACR 데이터 액세스를 통해)를 나타낼 수 있다. 이 위치는 사용자 선택 재생을 나타내는 선택 신호를 수신할 시에 미디어 프로그램을 스트리밍하기 시작할 경우 사용하기 위해 저장 또는 버퍼링될 수 있다. ACR 클라이언트가 자동 컨텐츠 인식 데이터를 추적함에 따라, ACR 클라이언트는 미디어 장치의 사용자가 라이브 미디어 스트림 내로 이동한 위치를 계속 추적할 수 있다. 일부 경우들에 있어서, 라이브 미디어 스트림은 미디어 장치로 스트리밍되는 라이브 미디어 피드를, 제어 옵션들에 대한 사용자 선택에 의해 표시되는 위치로 이동시킬 수 있도록 하기 위해 ACR 서버에서, ACR 클라이언트에서, 또는 ACR 서버와 ACR 클라이언트의 조합에서 일정 시간 동안 버퍼링될 수 있다.
개시된 ACR 시스템은 미디어 장치로부터, 사용자에 의해 소비되는 컨텐츠의 순서화된 시퀀스의 프레임들을 포함하는 쿼리 핑거프린트를 수신할 수 있다. ACR 시스템은 각각의 프레임 핑거프린트들과 순서화된 프레임들의 시퀀스 중 대응하는 것들 사이의 거리를 결정함으로써, 복수의 텔레비전 채널들로 스트리밍하는 프로그램들의 개별 프레임들에 대해 시스템에 의해 저장되는, 프레임 핑거프린트들과 쿼리 핑거프린트를 매칭시킬 수 있다. 거리는, 예를 들어, 2개의 프레임이 서로 얼마나 다른지 또는 2개의 각각의 프레임이 스트리밍되고 있는 채널 간의 차이를 나타내는 수치를 포함할 수 있다. 이 거리는 또한 일 프레임들의 그룹의 평균과 다른 프레임들의 그룹의 평균 사이의 거리로서 결정될 수 있으며, 여기서 핑거프린트들은 미디어 컨텐츠의 프레임들의 시퀀스이다. ACR 시스템은 또한 텔레비전 브로드캐스트 동안 미디어 프로그램에 대한 핑거프린트들이 더 이상 매칭되지 않을 경우 채널이 변경되는 시점 또는 TV가 미디어 프로그램의 미디어 컨텐츠 스트리밍을 중단하는 시점을 결정할 수 있다.
뷰어들에게 미디어 컨텐츠를 제공하기 위해, 개인 또는 조직은 예컨대 인터넷을 통해 미디어 컨텐츠를 뷰어들에게 전달하는 것에 의해서, 미디어 컨텐츠를 뷰어들에게 스트리밍할 수 있다. 개인 또는 조직에 의해 사용되는 미디어 컨텐츠는 하나 이상의 라이브 브로드캐스트 미디어 피드들로부터 획득되는 미디어 컨텐츠(예컨대, 비디오 데이터)일 수 있다. 예를 들어, 미디어 컨텐츠 프로바이더는 미디어 장치의 사용자에게 인터넷을 통해 또는 다른 매체를 통해 선형 미디어 채널(예를 들면, 라이브 미디어 피드 소스로부터 뷰어에게 제공되는 미디어)을 제공할 수 있다.
"컨텐츠"라는 단어는 미디어 또는 멀티미디어를 지칭하기 위해 사용될 수 있다. "컨텐츠"라는 단어는 미디어 자체가 아니라 미디어의 주제를 의미하는 특정 용어일 수도 있다. 마찬가지로, "미디어"라는 단어와 "미디어"(예를 들면, 멀티미디어, 하이퍼미디어)를 포함하는 일부 복합 단어는 정보가 최종 사용자/시청자에게 전달되는 채널이 아니라, 컨텐츠를 지칭하는 것이다. 미디어 또는 미디어 컨텐츠는 비디오, 영화, 텔레비전 쇼, 광고, 스트리밍 비디오 등과 같은 그래픽 표현; 텍스트; 그래픽; 애니메이션; 정지 영상; 인터랙티브성 컨텐츠 형태 등을 포함할 수 있다. 미디어 유형으로 일반적으로 지칭되는 컨텐츠 유형의 예는 "필름"으로 지칭되는 "동영상"이다.
일부 예들에서, 컨텐츠 오버레이 시스템 또는 컨텐츠 오버레이 장치는 미디어 컨텐츠를 광고와 같은 특정의, 적시의 및/또는 타겟팅된 오버레이 컨텐츠와 결합하는 것을 가능하게 할 수 있다. 컨텐츠 오버레이 시스템 또는 컨텐츠 오버레이 장치는 컨텐츠 오버레이들 내에서 콜 투 액션(call to action)(예를 들면, 컨텐츠 오버레이에 관여하게 하기 위한 초대)에 응답하도록 뷰어들을 초대함으로써 오버레이 컨텐츠 프로바이더들이 뷰어들과 관계를 맺게 할 수 있다. 뷰어들을 콜 투 액션으로 초대할 경우 얻을 수 있는 이점 중 하나는 뷰어들이 추가 정보를 요청하고, 질문을 하고, 의견을 제공하고, 광고된 서비스 또는 제품의 프로바이더와 연락하는 것 등을 행할 수 있는 반환 경로 또는 후속 경로를 제공하는 것일 수 있다. 뷰어를 콜 투 액션으로 초대하는 경우 얻을 수 있는 또 다른 이점은 어드버타이저가 추가 정보를 제공하고, 뷰어들과 더 관계를 맺고, 뷰어들에 대한 추가 정보를 수집하고, 광고된 제품 또는 서비스에 대한 뷰어 질문에 답변하는 것 등을 행할 수 있는 반환 경로 또는 후속 경로를 제공하는 것일 수 있다. 다른 예에서, 컨텐츠 오버레이 시스템 또는 컨텐츠 오버레이 장치는 뷰어가 미디어 프로그램의 오버레이 컨텐츠를 뷰잉하고 및/또는 상호 작용하면 어드버타이저가 크로스 플랫폼 리타겟팅 캠페인을 사용할 수 있게 할 수 있다.
도 1은 일 예에 따른 컨텐츠 분배 네트워크(100)의 시스템 다이어그램을 도시한 것이다. 컨텐츠 분배 네트워크(100)에서, 컨텐츠 프로바이더(102)는 컨텐츠 피드(103)를 로컬 프로바이더(106)에게 브로드캐스트할 수 있다. 로컬 프로바이더(106)는 헤드 엔드(104) 및 자동 컨텐츠 인식(ACR) 핑거프린터 서버(105)를 포함할 수 있다. 컨텐츠 프로바이더(102)로부터의 컨텐츠 피드(103)는 로컬 프로바이더(106)의 헤드 엔드(104)에서 수신될 수 있다.
다양한 구현들에서, 헤드 엔드(104)는 수신된 컨텐츠 피드(103)에 기초하여 로컬 컨텐츠 피드(103)를 생성할 수 있다. 예를 들어, 헤드 엔드(104)는 국내 또는 글로벌 브로드캐스터로부터 프로그래밍 및 광고를 갖는 네트워크 채널을 수신하는 로컬 제휴 브로드캐스터일 수 있다. 일 예에서, 헤드 엔드(104)는 브로드캐스트 설비가 브로드캐스트 피드를 송신하기 이전의 브로드캐스트 피드의 소스일 수 있다. 다른 예에서, 헤드 엔드(104)는 분배 증폭기일 수 있다. 분배 증폭기는 소스 피드를 수신할 수 있으며, 동일한 소스 피드에서 상이한 장치들에 대해 여러 개의 출력을 생성할 수 있다. 출력 피드들은 다양한 분배 배출 장소로 라우팅될 수 있으며, 예를 들어 브로드캐스트 OTA(over the air)를 위해, 케이블 프로바이더들에게 전송되거나, 위성 프로바이더들에게 전송되거나 및/또는 온라인 스트리밍 프로바이더들에게 전송될 수 있다.
헤드 엔드(104)는 로컬 컨텐츠 피드(103)를 ACR 핑거프린터 서버(105), OTA(over-the-air) 브로드캐스터(108) 및/또는 멀티 채널 비디오 프로그래밍 분배기(MVPD)(110)로 전송할 수 있다. OTA 브로드캐스터(108) 및/또는 MVPD(110)는 로컬 컨텐츠 피드(103)를 미디어 장치(115)에 전송할 수 있다. 미디어 장치들(115)의 일부 예는 클라이언트 장치들(118 및 120)(예를 들면, 스마트 TV), 프로바이더 컨텐츠를 클라이언트 장치(118 및 120)로 스트리밍하는 셋탑 박스(114) 및 사용자가 로컬 컨텐츠 피드(103)를 스트리밍할 수 있는 다른 장치들(116)(예를 들면, OTA 안테나, 위성 접시 등)을 포함한다.
일 예에서, OTA 브로드캐스터(108)는 전통적인 로컬 텔레비전 또는 라디오 채널들을 사용하여 로컬 컨텐츠 피드(103)를 브로드캐스트할 수 있다. 이 예에서, 클라이언트 장치들(118 및 120)은 안테나들(예컨대, TV 또는 라디오 안테나들)을 포함하며 로컬 컨텐츠 피드(103)를 수신할 수 있다. 다른 예에서, MVPD(110)(예컨대, 케이블 또는 위성 브로드캐스터)는 로컬 컨텐츠 피드(103)를 셋탑 박스(114)로 전송할 수 있다. 이 예에서, 셋탑 박스(114)는 클라이언트 장치들(118 및 120)에 대한 컨텐츠 피드(103)를 포맷하고 클라이언트 장치들(118 및 120)에게 이 포맷된 컨텐츠 피드(103)를 전송할 수 있다. 클라이언트 장치들(118 및 120)은 로컬 컨텐츠를 뷰어에게 디스플레이하기 위해, 텔레비전 스크린 또는 터치 스크린과 같은 디스플레이 장치를 포함할 수 있다. 컨텐츠 분배 네트워크(100)의 다양한 컴포넌트들은 클라이언트 장치들(118 및 120)에 통합되거나 결합될 수 있다. 예를 들어, 스마트 텔레비전은 안테나, 셋탑 박스(114) 및 디스플레이 장치를 단일 유닛으로 포함할 수 있다.
ACR 핑거프린트 서버(105)는 로컬 컨텐츠 피드(103)를 분석하여, 핑거프린트 정보(예를 들면, 핑거프린트들)를 결정할 수 있다. 일 예에서, ACR 핑거프린터 서버(105)는 브로드캐스트 설비에 설치된 장치일 수 있다. ACR 핑거프린터 서버(105)는 헤드 엔드(104)로부터 피드를 수신할 수 있다. ACR 핑거프린터 서버(105)는 피드를 핑거프린팅하고, 핑거프린트들(128a-n)을 클라우드 기반 웹 서비스로 전송할 수 있다. 일부 구현들에서, ACR 핑거프린터 서버(105)는 텔레비전(TV)과 같은 디스플레이 장치에 피드가 전달되기 전에 피드를 핑거프린팅하기 위해, 브로드캐스트 설비 내에 설치될 수 있다.
ACR 핑거프린트 서버(105)는 핑거프린트들(128a-n)을 ACR 시스템들(124 및/또는 126)로 전송할 수 있다. ACR 시스템들(124 및 126)은 스마트 TV 제조업체와 같은 장치 제조업체에 의해 선택되는 상이한 ACR 시스템들일 수 있다. 일부 구현들에서, 후술되는 바와 같이, ACR 시스템(124)은 ACR 핑거프린트 시퀀스 매칭기(125)를 포함한다. ACR 핑거프린트 시퀀스 매칭기(125)는 프레임 핑거프린트들(128a-n)을 대응하는 비디오 프레임들이 유래된 오리지널 비디오 컨텐츠와 매칭시킬 수 있다. ACR 시스템(126)은 ACR 핑거프린트 시퀀스 매칭기(125)를 갖거나 갖지 않을 수 있다. ACR 핑거프린트 시퀀스 매칭기(125)에 관한 세부 사항이 도 3과 관련하여 아래에 설명되어 있으며, 여기서는 핑거프린트 시퀀스 매칭기가 컨텐츠 매니저(122) 내에 대안적으로 위치될 수 있다.
ACR 핑거프린트 서버(105)는 로컬 컨텐츠 피드(103)를 분석하고 로컬 컨텐츠 피드(103)로부터 순서화된 프레임들의 시퀀스를 포함할 수 있는 핑거프린트들(128a-n)을 캡처할 수 있다. ACR 핑거프린트 서버(105)는 핑거프린트들(128a-n)을 ACR 시스템들(124 및/또는 126)에 전송할 수 있다. ACR 시스템들(124 및 126)은 스마트 TV 제조업체와 같은 장치 제조업체에 의해 선택되는 상이한 ACR 시스템들일 수 있다. 일 예에서, ACR 시스템(124 또는 126)은 명령어들을 실행하거나 프로세스들을 수행하기 위한 처리 로직 또는 처리 장치를 포함할 수 있다. 다른 예에서, ACR 시스템들(124 및 126)은 상이한 ACR 벤더들을 위한 ACR 웹 서비스들일 수 있다. ACR 핑거프린터 서버(105)는 복수의 ACR 벤더들로부터의 인덱싱 클라이언트들의 사용을 가능하게 할 수 있다. 예를 들어, TV 제조업체와 같은 여러 가전 제품 제조업체(CEM)는 전자 장치에 통합할 ACR 벤더들을 독립적으로 선택할 수 있다. 특정 CEM 장치에서 ACR 기반 기능을 활성화하기 위해, ACR 시스템은 CEM들이 선택하여 CEM의 텔레비전에 통합한 ACR 벤더들을 사용하여 브로드캐스트 피드들을 인덱싱할 수 있다. 복수의 ACR 벤더들을 ACR 핑거프린터 서버(105)에 통합하는 것의 하나의 이점은 어드버타이저, 광고 대행사 및 컨텐츠 프로바이더와 같은 엔티티들이 단일 플랫폼과 인터페이스하여 다수의 CEM으로부터의 전자 장치에 개선된 광고 및 컨텐츠 경험들을 제공할 수 있게 하는 것이다.
다양한 구현들에서, ACR 핑거프린트 서버(105)는, 예를 들어, 상이한 핑거프린트 알고리즘들과 같은 상이한 유형들의 핑거프린트 기술을 포함하는 상이한 ACR 시스템들(124 및 126)에 대한 핑거프린트들(128a-n)을 포맷할 수 있다. ACR 시스템들(124 및 126)은 각각 클라이언트 장치들(118 및 120)을 포함하는, 상이한 미디어 장치들(115)과의 통신 연결을 확립할 수 있다. 클라이언트 장치들(118 및 120)은 핑거프린트 정보를 ACR 시스템들(124 및 126)에 각각 전송할 수 있다. ACR 시스템(124 또는 126)이 클라이언트 장치들(118 및/또는 120)로부터 ACR 핑거프린트 정보를 수신할 경우, ACR 시스템(124 또는 126)은 수신된 핑거프린트들(128a-n)을 ACR 핑거프린트 서버(105)에 의해 생성된 것들과 매칭시키고, 매칭이 이루어져 컨텐츠가 식별되면, ACR 이벤트들을 컨텐츠 매니저(122)에게 전송할 수 있다.
다른 예에서, ACR 시스템들(124 및 126)은 클라이언트 장치들(118 및 120)로부터 ACR 핑거프린트 정보를 수신하고, 수신된 핑거프린트들(128a-n)을 ACR 핑거프린트 서버(105)에 의해 생성된 것들과 매칭시킨다. 매칭이 이루어져 컨텐츠가 식별되면, ACR 시스템들(124 및/또는 126)은 클라이언트 장치(118 또는 120)에게 ACR 이벤트들을 통지할 수 있으며, 이어서 클라이언트 장치(118 또는 120)는 이러한 ACR 이벤트들을 컨텐츠 매니저(122)에 전송할 수 있다. 대안적으로 또는 추가적으로, ACR 시스템들(124 및/또는 126)은 ACR 이벤트들을 컨텐츠 매니저(122)에 직접 전송한다. ACR 핑거프린트 정보는 로컬 컨텐츠 피드(103)의 광고들을 뷰어에게 디스플레이하는 것, 로컬 컨텐츠 피드(103)에서 선택되거나 플래그된 컨텐츠를 뷰어에게 디스플레이하는 것, 클라이언트 장치(118 또는 120)에서의 컨텐츠 채널 변경 등을 포함할 수 있다.
상이한 ACR 시스템들(124 및 126)로부터의 이벤트 정보는 상이한 포맷들로 생성될 수 있으며 컨텐츠 매니저(122)는 데이터를 기록된 ACR 정보 데이터베이스(123)(예를 들면, 설명의 편의를 위해 데이터베이스(123))에 저장하기 전에 공통 포맷으로 데이터를 정규화할 수 있다. 예를 들어, 컨텐츠 매니저(122)는 ACR 시스템(124 및 126)으로부터 동일한 컨텐츠를 갖지만 다르게 포맷된 데이터와 같이, 유사하지만 동일하지 않은 데이터를 포함하는 개별 데이터 세트들을 수신할 수 있다. 컨텐츠 매니저(122)는 단일 데이터 모델 또는 포맷(예를 들면, 재포맷된 데이터 세트들)을 생성하기 위해 개별 데이터 세트들을 처리 및 재포맷할 수 있으며, 재포맷된 데이터 세트들은 컨텐츠 매니저(122)에서 데이터베이스(123)에 파퓰레이션될 수 있다. 데이터베이스(123)에 저장된 ACR 시스템들로부터의 이벤트 정보는 사용자 뷰잉 거동, 관심사 및 특정 미디어 프로그램의 특정 뷰잉 이력을 기록한 정보로부터 기록된 ACR 데이터를 더 포함할 수 있다.
일부 구현들에서, ACR 시스템들(124 및 126)로부터 개별 데이터 세트들을 정규화하기 위해, 컨텐츠 매니저(122)는 데이터 세트들 내의 데이터를 클린징 또는 필터링할 수 있다. 예를 들어, 일부 데이터 세트들은 컨텐츠 매니저(122)와 관련이 없는 필드 또는 데이터를 포함할 수 있다. 이 예에서, 컨텐츠 매니저(122)는 관련없는 데이터를 클린징 또는 필터링한다(예를 들면, 데이터가 제거되거나 무시될 수 있음). 다른 예에서는, 일부 데이터 세트들이 불완전하거나 부정확한 데이터 또는 데이터 세트의 인스턴스들을 포함하며, 컨텐츠 매니저(122)는 이러한 불완전하거나 부정확한 데이터 또는 데이터 세트를 클린징 또는 필터링한다. 다른 구현들에서는, ACR 시스템들(124 및 126)로부터 개별 데이터 세트들을 정규화하기 위해, 컨텐츠 매니저(122)는 데이터 세트들의 필드들을 맵핑한다. 예를 들어, 컨텐츠 매니저(122)가 ACR 시스템(124)으로부터 제 1 데이터 세트 및 ACR 시스템(126)으로부터 제 2 데이터 세트를 수신할 경우, 제 1 데이터 세트 및 제 2 데이터 세트의 데이터 필드들 중 적어도 일부는 제 1 및 제 2 데이터 세트 모두에 공통된 것일 수 있다. 그러나, 이러한 공통 데이터 필드들은 제 1 및 제 2 데이터 세트들의 상이한 장소들에 위치될 수도 있다. 이 예에서, 컨텐츠 매니저(122)는 제 1 및 제 2 데이터 세트들의 상이한 데이터 필드들을 정규화된 필드들에 맵핑하고, 데이터베이스(123)의 동일한 데이터 필드 위치들에 동일한 데이터 필드들을 갖는다.
다른 예에서는, ACR 시스템들(124 및 126)로부터의 개별 데이터 세트들을 정규화하기 위해, 컨텐츠 매니저(122)는 데이터 세트들로부터 데이터를 취득한다. 예를 들어, ACR 시스템들(124 및/또는 126)로부터의 데이터는 데이터베이스의 데이터 필드들을 채우는데 필요한 모든 필드들을 포함하지 않을 수 있다. 그러나, 컨텐츠 매니저(122)는 ACR 시스템들(124 및 126)로부터의 데이터 세트들의 다른 필드들을 사용하여 이들 데이터 필드들에 대한 데이터를 취득할 수도 있다.
일부 예들에서, 데이터베이스(123)는 국가 필드, DMA(designated market area), 및 카운티 및/또는 도시 필드와 같은 데이터 필드를 포함하지만 ACR 시스템들(124 및 126)로부터의 데이터 세트들은 ZIP(zone improvement plan) 코드들만을 포함할 수도 있다. 이 예에서, 컨텐츠 매니저(122)는 ZIP 코드들을 사용하여 데이터베이스의 필드들에 대한 데이터를 취득한다. 다른 예에서, 데이터 세트는 지리적 위치 정보를 포함하지 않지만, ACR 시스템들(124 및 126)의 인터넷 프로토콜(IP) 주소를 포함한다. 이 예에서, 컨텐츠 매니저(122)는 지오-IP 룩업 서비스를 사용하여 주(state), DMA, 카운티, 도시 및 ZIP 코드 정보를 취득한다.
다른 예에서, 데이터베이스(123)는 연령 필드, 성별 필드, 가계 소득 필드 등과 같은 통계 필드들을 포함한다. 그러나, ACR 시스템들(124 및 126)로부터의 데이터 세트들은 통계 필드들 또는 통계 데이터를 포함하지 않을 수도 있다. 이 예에서, ACR 시스템들(124 및 126)은 클라이언트 장치들(118 및 120)의 IP 주소를 컨텐츠 매니저(122)에 제공한다. 컨텐츠 매니저(122)는 IP 주소들을 사용하여 데이터베이스의 데이터 필드들을 파퓰레이션할 통계 데이터를 결정할 수 있다.
다른 예에서, ACR 시스템(124)으로부터의 제 1 데이터 세트 내의 필드는 MDT(Mountain Daylight Time) 존과 같은 로컬 타임 존(local time zone)을 포함하고, ACR 시스템(126)으로부터의 제 2 데이터 세트는 UTC(Coordinated Universal Time) 존과 같은 다른 타임 존으로부터의 정보를 포함할 수 있다. 데이터베이스는 UTC를 사용하여 모든 데이터를 저장할 수 있고, 컨텐츠 매니저(122)는 데이터베이스(123)에 데이터를 저장하기 전에 로컬 타임을 UTC로 변환할 수 있다.
일부 구현들에서, 컨텐츠 매니저(122)는 정규화된 데이터를 사용하여 상이한 ACR 기술 벤더들 및 스마트 TV 또는 다른 인터넷-연결된 비디오 장치들을 통한 사용자 뷰잉 거동에 관한 보고들 또는 데이터(뷰잉 데이터)를 생성한다. 컨텐츠 매니저(122) 및 미디어 장치들(115)은 미디어 컨텐츠(115)와 컨텐츠 매니저(122) 사이에서, 오버레이 컨텐츠(212) 및 기록된 ACR 데이터와 같은 정보를 통신하게 하기 위한 통신 인터페이스들을 포함할 수 있다.
일부 예들에서, 통신 인터페이스는 셀룰러 네트워크 및/또는 무선 네트워크를 사용하여 정보를 통신한다. 일 예에서, 통신 네트워크는 3 세대 파트너십 프로젝트(3 GPP) 릴리즈 8, 9, 10, 11 또는 12, LTE(long term evolution) 또는 IEEE(Institute of Electronics and Electrical Engineers) 802.16p, 802.16n, 802.16m-2011, 802.16h-2010, 802.16j-2009, 802.16-2009일 수 있는 셀룰러 네트워크이다. 다른 예에서, 통신 네트워크는 Institute of Electrical and Electronics Engineers, Inc.에서 개발한 IEEE® 표준(예컨대, IEEE 802.11-2012, IEEE 802.1 lac, 또는 IEEE 802.1 lad 표준)을 따를 수 있는 무선 네트워크(예를 들면, Wi-Fi Alliance에서 개발한 Wi-Fi® 기술을 사용하는 네트워크)이다. 또 다른 예에서, 통신 네트워크는 Bluetooth v1.0, Bluetooth v2.0, Bluetooth v3.0 또는 Bluetooth v4.0과 같은 Bluetooth SIG(Special Interest Group)에서 개발한 Bluetooth® 연결이다. 다른 실시예에서, 통신 네트워크는 IEEE 802.15.4-2003(Zigbee 2003), IEEE 802.15.4-2006(Zigbee 2006), IEEE 802.15.4-2007(Zigbee Pro)와 같은 ZigBee Alliance에 의해 개발된 Zigbee® 연결일 수 있다.
일부 구현들에서, 컨텐츠 매니저(122)는 또한 미디어 장치들(115)에게 OTA 브로드캐스터(108) 또는 MVPD(110)로부터 수신된 로컬 컨텐츠 피드(103)의 부분들을 오버레이 컨텐츠(212)로 대체하도록 지시한다. 또한, 일부 예들에서, 컨텐츠 매니저(122)는 미디어 장치들(115)에게 오버레이 컨텐츠(212)를 로컬 컨텐츠 피드(103)의 부분들 위에 오버레이 또는 중첩시키도록 지시한다. 컨텐츠 매니저(122)는 복수의 ACR 시스템들(124 및 126)에 걸쳐 ACR 정보를 수집하여, 오버레이 컨텐츠(212)를 상이한 클라이언트 장치들(118 및 120)로 전송할 수 있으며, 여기서 클라이언트 장치들(118 및 120)은 상이한 장치 제조업체들로부터의 것들일 수 있다.
컨텐츠 매니저(122)는 또한 일반적으로 미디어 장치(115)로 분류되는 다른 장치들(116)과의 통신 연결을 확립할 수 있다. 일부 예들에서, 다른 장치(116)는 클라이언트 장치들(118 또는 120)과 통신하여 오버레이 컨텐츠(212)를 디스플레이하기 위한 추가 스크린(예를 들면, 제 2 스크린)을 제공한다. 예를 들어, 클라이언트 장치들(118 및 120)은 OTA 브로드캐스터(108) 또는 MVPD(110)로부터 로컬 컨텐츠 피드(103)를 수신하고, 로컬 컨텐츠 피드(103)를 사용자에게 디스플레이한다. 다른 장치들(116)은 또한 이전 단락들에서 논의된 바와 같이, ACR 이벤트가 발생할 경우 ACR 이벤트 정보를 ACR 시스템들(124 및 126)로 전송할 수 있다. 컨텐츠 매니저(122)가 ACR 이벤트 정보를 수신하면, 컨텐츠 매니저(122)는 오버레이 컨텐츠(212)를 다른 장치들(116)로 전송할 수 있다.
일부 구현들에서, 클라이언트 장치들(118 및 120)은 로컬 컨텐츠 피드(103)를 계속 디스플레이하고, 다른 장치들(116)은 오버레이 컨텐츠(212)를 디스플레이한다. 다른 예에서는, 클라이언트 장치들(118 및 120) 및 다른 장치들(116) 모두 오버레이 컨텐츠(212)를 디스플레이한다. 또 다른 예에서는, 클라이언트 장치들(118 및 120) 및 다른 장치들(116)이 오버레이 컨텐츠(212)의 일부 및 로컬 컨텐츠 피드(103)의 일부를 디스플레이한다. 클라이언트 장치들(118 및 120) 및 다른 장치들(116)은 상이한 로컬 컨텐츠 피드(103) 및/또는 오버레이 컨텐츠(212)를 디스플레이할 수 있다.
클라이언트 장치들(118 및 120) 및/또는 다른 장치들(116)은 오버레이 컨텐츠(212)가 수신되는 시점에 오버레이 컨텐츠(212)를 디스플레이할 수 있다. 일부 예들에서, 클라이언트 장치들(118 및 120) 및/또는 다른 장치들(116)은 임계 시간 동안 오버레이 컨텐츠(212)의 디스플레이를 지연시킨다. 임계 시간은 미리 정의된 기간일 수 있으며, 또는 컨텐츠 매니저(122)가, 클라이언트 장치들(118 및 120) 및/또는 다른 장치들(116)이 오버레이 컨텐츠(212)의 디스플레이를 지연시키도록 하는 시간을 선택할 수도 있다.
도 2는 일부 구현들에 따라 오버레이 컨텐츠(212)를 클라이언트 장치들(218 및/또는 220)과 같은 미디어 장치(115)에 제공하기 위한 컨텐츠 매니저(222)를 도시한 것이다. 컨텐츠 프로바이더(202)(예를 들면, 텔레비전 브로드캐스터)는 네트워크(219)를 통해 미디어 컨텐츠(M)를 미디어 장치(115)로 스트리밍할 수 있으며, 이 스트리밍은 미디어 컨텐츠(M)의 미디어 장치(115)로의 스트리밍 전에 또는 동시에 컨텐츠 매니저(222)에 의해 인터셉트될 수 있다. 컨텐츠 매니저(222)는 또한 광고 서버(또는 "광고" 서버)(230)와 통신하여 예를 들어 광고 호출을 광고 서버(230)에 전송하여, 더 상세히 설명될 바와 같이 미디어 컨텐츠(M)의 주제 및/또는 사용자의 관심 사항을 타겟팅하기 위한 미디어 컨텐츠(M)와 함께(또는 이에 대한 오버레이로서) 제공되는 광고를 요청한다. 광고 서버(230)는 미디어 장치들(115)로의 추후 전달을 위해 광고 또는 다른 오버레이 컨텐츠(212)를 컨텐츠 매니저(222)에 제공하거나 오버레이(212) 또는 대체 광고들로서의 전달을 위해 컨텐츠를 미디어 장치(115)에 직접 제공할 수 있는 써드 파티 또는 외부 서버일 수 있다.
컨텐츠 매니저(222)는 ACR 엔진(204), 룩업 서버(206), 오버레이 결정 엔진(210), 오버레이 컨텐츠(212)를 저장하는 오버레이 데이터베이스(211) 및 광고 타겟터(214)를 포함할 수 있다. 컨텐츠 프로바이더(202)는 네트워크(219)를 통해 미디어 컨텐츠(M)를 ACR 엔진(204)에 업로드할 수 있다.
ACR 엔진(204)은 미디어 컨텐츠(M)를 핑거프린팅할 수 있다. 일부 예들에서, ACR 엔진(204)은 피드의 모든 프레임, 피드의 다른 모든 프레임, 프레임들의 시퀀스 등을 핑거프린팅함으로써 핑거프린트들(208a-n)을 생성한다. 예를 들어, ACR 엔진(204)은 프레임의 DCT(discrete cosine transform)를 수행하여 결과 계수들(예를 들면, 저주파 계수들)의 서브세트를 핑거프린트(208)로 지정함으로써 피드의 프레임에 대한 핑거프린트(208)를 생성한다. 추가적으로 또는 대안적으로, ACR 엔진(204)은 미디어 장치(115)로 스트리밍되는 컨텐츠의 순서화된 프레임 시퀀스에 대응하는 핑거프린트들(208a-n)의 타겟 블록을 생성(또는 식별)할 수 있다. 또한, 룩업 서버(206)는 아이덴티티가 알려진 발신 미디어 프로그램들(예를 들면, 발신 컨텐츠)에 대한 핑거프린트 데이터베이스(207)에 저장된 프레임 핑거프린트들(208a-n)의 매칭 소스 블록을 찾아낼 수 있다.
다른 또는 관련된 구현에서, ACR 엔진(204)은 또한 어떤 이벤트가 발생했는지를 판정(예를 들면, 프레임 시퀀스 쿼리 핑거프린트(208a)와 ACR 시스템(124 또는 126)에 저장된 오리지널 컨텐츠의 프레임 핑거프린트들(208a-n) 사이의 포지티브 매칭)하기 위해 ACR 이벤트 정보를 분석한다. 포지티브 매칭이 있는 경우, ACR 엔진(204)은 포지티브 매칭이 발생하는 컨텐츠를 식별시키는 미디어 컨텐츠 식별자(ID)를 포함하는 포지티브 매칭 이디케이터를 요청 미디어 장치(115)에게 전송한다. 미디어 장치(115)는 미디어 컨텐츠 오버레이(212)를 요청하는 오버레이 요청을 오버레이 결정 엔진(210)으로 전송할 수 있다. 일부 예들에서, 오버레이 요청은 미디어 컨텐츠 ID를 포함한다. 다른 예들에서, 오버레이 요청은 오버레이 정보 또는 오버레이 파라미터들을 포함한다.
도 2를 더 참조하면, ACR 엔진(204)은 텔레비전 프로그램(예를 들면, 식별된 채널에 대해 스케줄링됨) 및 ACR 시스템(124 또는 126)으로부터 수신된 ACR 이벤트에 대응하는 텔레비전 프로그램 내의 위치를 조회 및 결정할 수 있는 핑거프린트들(208a-n)을 룩업 서버(206)에 전송할 수 있다. 피드의 세그먼트의 각 핑거프린트(208)는 타임 스탬프와 연관될 수 있다. 타임 스탬프는 ACR 엔진(204)에 의해 수신될 때 피드의 세그먼트의 개별 프레임들에 속한다. 타임 스탬프는 임의의 시작점으로부터의 피드 내 프레임 번호일 수 있다. 룩업 서버(206)는 (예를 들면, 핑거프린트 데이터베이스(207)에) 각각의 타임 스탬프들과 관련하여 핑거프린트들(208a-n)을 저장하고, 사용자가 뷰잉하고 있는 피드의 미디어 컨텐츠(M) 내의 타이밍 및 컨텐츠 타겟팅 시에 광고 타겟터(214) 및 오버레이 결정 엔진(210)을 보조한다.
일부 구현들에서, ACR 엔진(204)은 다양한 미디어 장치들(115)에서 ACR 클라이언트(215)와 상호 작용한다. ACR 클라이언트(215)는 핑거프린트들(208a-n)과 로컬로 매칭되어, 사용자가 다른 텔레비전 프로그램을 시청하기 위해 채널을 변경했는지의 여부를 확인하고, 채널 변경을 컨텐츠 매니저(222)에게 보고할 수 있다. 따라서, 핑거프린트들(208a-n)의 매칭은 일부 경우들에 있어서 미디어 장치(115)에서 로컬로 발생할 수 있다.
또한, ACR 클라이언트(215)는 미디어 장치(115)에서 시청되고 있는 텔레비전 프로그램 또는 채널의 확인을 요청하는, 타겟 블록들을 포함하는, 예를 들면 쿼리 핑거프린트들(208a)의 형태의, 사용자 핑거프린트 정보를 주기적으로, 지속적으로 또는 반-연속적으로 룩업 서버(206)에 전송할 수 있다. 룩업 서버(206)는 쿼리 핑거프린트(들)(208a)(또는 타겟 블록들)와 다수의 프레임 핑거프린트들(208a-n) 사이에 매칭이 있을 때를 결정할 수 있으며, 이들은 핑거프린트 데이터베이스(207) 내의 룩업 서버로부터의 네트워크(219)에 걸친 핑거프린트(208a-n)의 소스 블록들로서 저장될 수 있다. 쿼리 핑거프린트(208a)는 순서화된 프레임 시퀀스일 수 있으며, 이들 각각은 텔레비전 프로그램 또는 텔레비전 프로그램으로부터 스트리밍되는 채널과 연관되기에 충분한 매칭을 찾아낼 때까지 프레임 핑거프린트들(208a-n)의 개개의 것들과 매칭될 수 있다. 포지티브 매칭이 있는 경우, 룩업 서버(206)는 포지티브 매칭 인디케이터를 ACR 클라이언트(215)에게 전송한다. 포지티브 매칭 인디케이터에 응답하여, ACR 클라이언트(215)는 미디어 컨텐츠 오버레이(212)를 요청하는 오버레이(212) 요청을 오버레이 결정 엔진(210)에 전송한다.
일부 예들에서, 오버레이 요청은 미디어 컨텐츠 식별자(ID)를 포함한다. 추가적인 예들에서, 오버레이 요청은 오버레이 정보 또는 오버레이 파라미터들을 포함한다. 예를 들어, 오버레이 결정 엔진(210)은 컨텐츠 ID, 오버레이 정보 및/또는 오버레이 파라미터들을 사용하여 타겟팅된 오버레이 컨텐츠(212)를 식별한다. 다른 예에서, 오버레이 결정 엔진(210)은 오버레이 포맷을 식별하기 위해 컨텐츠 ID, 오버레이 정보 및/또는 오버레이 파라미터들을 사용할 수 있다. 오버레이 결정 엔진(210)은 컨텐츠 ID, 오버레이 정보 및/또는 오버레이 파라미터들을 오버레이 데이터베이스(211)와 비교하여, 타겟팅된 오버레이 컨텐츠(212) 및 오버레이 포맷을 식별할 수 있다. 오버레이 데이터베이스는 컨텐츠 프로바이더 또는 어드버타이저(예를 들면, 광고 서버(230))에 의해, 주기적 또는 연속적으로 새로운 오버레이 컨텐츠(212) 및 오버레이 포맷으로 업데이트될 수 있다. 오버레이 컨텐츠(212)는 채널의 텔레비전 프로그램의 스트리밍된 미디어 컨텐츠(M)의 오버레이 위치로 전달되기 전 또는 후에, 오버레이 포맷(예를 들면, 오버레이 템플릿 등)을 파퓰레이션한다.
광고 타겟터(214)는 오버레이 결정 엔진에 의해 미디어 장치들(115)로 전달되는 광고들 및 다른 오버레이 컨텐츠(212)와의 사용자 상호 작용 및 그에 대한 거동을 추적하고 분석한다. 광고 타겟터(214)는 또한 사용자에 대한 주된 관심 사항을 결정하기 위해, 미디어 장치별로 사용자 거동의 분석과 함께 사용자 프로파일 정보를 수신 및 통합할 수 있다. 사용자 또는 사용자 그룹에서 수집되는 이러한 정보 및 데이터는 텔레비전 프로그램 및 통상적으로 시청된 채널 및 시간과 관련하여 선호하는 뷰잉 시간 및 일반적인 뷰잉 습관으로 확장될 수 있다. 그 다음에 광고 타겟터(214)는 오버레이 결정 엔진(210)에게 예를 들어 파라미터들의 형태로, 오버레이 결정 엔진(210)이 각각의 사용자들에게 포맷 방식과 캠페인 예산의 최대 투자 수익을 위해 최선을 다할 때 전달하기 위해 선택할 오버레이 컨텐츠(212)를 결정할 경우 사용할 수 있는 각종 주된 관심 사항 및 뷰잉 습관을 통지할 수 있다.
오버레이 결정 엔진(210)이 광고 타겟터(214)의 도움으로 타겟팅된 오버레이 컨텐츠(212)를 식별할 경우, 오버레이 결정 엔진은 타겟팅된 오버레이 컨텐츠(212)를 미디어 장치(115)로 반환한다. 일부 예들에서, 오버레이 결정 엔진(210)은 예를 들어 무선 통신 네트워크를 통해 타겟팅된 오버레이 컨텐츠(212)를 미디어 장치(115)에 직접 전송한다. 다른 예들에서, 오버레이 결정 엔진(210)은 URL(universal resource locator)을 통해 타겟팅된 오버레이 컨텐츠(212)를 미디어 장치(115)로 전송한다. 복수의 타겟팅된 오버레이 컨텐츠들(212)이 컨텐츠 ID, 오버레이 정보 및/또는 오버레이 파라미터들과 매칭될 경우, 오버레이 결정 엔진(210)은 가장 많은 수의 파라미터 또는 다른 정보를 만족시키는 타겟팅된 컨텐츠 오버레이를 선택한다. 추가적으로 또는 대안적으로, 복수의 타겟팅된 오버레이 컨텐츠들(212)이 컨텐츠 ID, 오버레이 정보 및 다른 오버레이 파라미터들과 매칭될 경우, 오버레이 결정 엔진(210)은 파라미터들 및 기타 정보를 만족시키는 오버레이 컨텐츠(212)를 무작위로 선택한다. 다른 예들에서, 복수의 타겟팅된 오버레이 컨텐츠들(212)이 컨텐츠 ID, 오버레이 정보 및 오버레이 파라미터들과 매칭될 경우, 오버레이 결정 엔진(210)은 컨텐츠 ID, 오버레이 정보 및/또는 오버레이 파라미터들과 매칭되는 소정의 오버레이 컨텐츠(212)를 선택한다. 오버레이 컨텐츠(212)는 동적 컨텐츠(예를 들면, 주기적 간격으로 업데이트되거나 리프레시될 수 있는 컨텐츠)로 파퓰레이션될 수 있다. 동적 컨텐츠는 로컬 데이터베이스 또는 외부 시스템에 저장될 수 있다.
미디어 장치(115)의 ACR 클라이언트(215)는 ACR 핑거프린트 정보가 사용자 핑거프린트 정보와 매칭될 경우 컨텐츠 피드(103) 위에 오버레이 컨텐츠(212)를 중첩시킬 수 있다. 일 예에서, 미디어 장치(115)는 HTML(hypertext markup language) 브라우저에서 컨텐츠 피드(103) 위에 오버레이 컨텐츠(212)를 중첩시킨다. 다른 예에서, 미디어 장치(115)는 OTA 브로드캐스터 또는 케이블 브로드캐스터로부터의 컨텐츠 피드(103) 위에 오버레이 컨텐츠(212)를 중첩시킨다. 오버레이 컨텐츠(212)가 컨텐츠 피드(103) 위에 배치될 경우, 오버레이 컨텐츠(212)는 미디어 장치(115)의 디스플레이를 통해 사용자에게 디스플레이될 수 있다. 일 예에서, 오버레이 컨텐츠(212)는 사용자에게 디스플레이될 수 있는 하나 이상의 콜 투 액션 옵션들을 포함한다. 이 예에서, 사용자는 입력 장치(예를 들면, TV 리모컨, 키보드, 스마트 폰 또는 태블릿)를 사용하여 오버레이 컨텐츠(212)와 상호 작용하여 피드백 정보를 생성한다. ACR 클라이언트(215)는 피드백 정보를 광고 타겟터(214)에게 전송할 수 있다. 어드버타이저와 같은 다른 개인가 피드백 정보에 액세스하여 피드백 정보를 분석함으로써 오버레이 컨텐츠(212)에 대한 사용자 관심과 같은 원하는 정보를 결정할 수 있다.
ACR 클라이언트(215)는 오버레이 컨텐츠(212)와 컨텐츠 피드(103) 매칭이 중지되고 및/또는 임계 시간이 만료되는 시점을 결정하기 위해 컨텐츠 피드(103)를 모니터링할 수 있다. 일 예에서, 오버레이 컨텐츠(212) 및 컨텐츠 피드(103) 매칭이 중지되거나 임계 시간이 만료되면, 미디어 장치는 미디어 장치(115) 상에 디스플레이하기 위해 오버레이 컨텐츠(212)를 중첩시키는 것을 중지한다.
도 3은 도 1 및 도 2에 도시된 컨텐츠 매니저(122 및 222)와 같은, 예시적인 ACR 컨텐츠 매니저(322)의 시스템 도면으로서, 미디어 컨텐츠(M)를 핑거프린트하고 나중에 중단된 프로그램의 전달을 제어하는데 사용된다. 컨텐츠 매니저(322)는 ACR 엔진(204), 룩업 서버(206), 기록된 ACR 정보 데이터베이스(123) 및 채널 스케줄 데이터베이스(330)를 포함할 수 있다. ACR 엔진(204)은 핑거프린트될 미디어 컨텐츠(M)의 컨텐츠 프레임들(302)을 수신한다. ACR 엔진(204)은 또한 핑거프린터(305), 핑거프린트 시퀀스 매칭기(325), 및 프레임 핑거프린트들(306a-n)이 저장된 데이터베이스(327)를 포함할 수 있다. 컨텐츠 프로바이더(202)는 클라이언트 장치들(218 및/또는 220)을 포함하는, 미디어 장치들(115)로 스트리밍되는 멀티미디어 컨텐츠(M)를 생성한다(도 2).
컨텐츠 매니저(322)는 서버와 같은 컴퓨팅 장치, 또는 컴퓨팅 장치들의 분산 그룹으로 구현될 수 있으며, 룩업 서버(206)를 포함한다. 대안적인 구현들에서는, 컨텐츠 매니저(322) 및 룩업 서버(206)가 단일 서버 장치로 결합된다.
일부 구현들에서, 핑거프린터(305)는 멀티미디어 컨텐츠(M)로부터 다수의 컨텐츠 프레임들(302)을 핑거프린트(306)로서 검출하거나 선택한다. 일 실시예에서, 다수의 컨텐츠 프레임들(302)이 순차적으로(예를 들면, 타겟 블록으로서) 순서화되며, 따라서 핑거프린트(306)의 시작부터 끝까지 순차적인 타임 스탬프를 포함한다. 일 예에서, 컨텐츠는 오디오 데이터, 비디오 데이터 또는 둘 다이다. 이 예에서는, 비디오 컨텐츠가 원시 비디오 프레임들이다.
예를 들어, 핑거프린터(305)가 컨텐츠 프레임들(302)을 수신할 경우, 핑거프린터(305)는 원시 비디오 및/또는 오디오 프레임들과 같은 컨텐츠 프레임들(302)을 처리하여 핑거프린트(306)를 생성하는 방법을 결정한다. 일 예에서, 프레임들은 개별적으로 핑거프린트된다. 다른 예에서, 프레임들은 컬렉션들 또는 시퀀스들로 핑거프린트된다. 핑거프린터(305)는 핑거프린터(305)가 핑거프린팅되는 동안 실행하는 ACR 알고리즘에 기초하여 프레임들을 개별적으로 또는 순차적으로 핑거프린트할 시점을 결정할 수 있으며, 그 예들이 논의될 것이다. 또한, 핑거프린터(305)는 상이한 브로드캐스터들 또는 사용자들에 대해 컨텐츠 프레임들(302)을 다르게 핑거프린트할 수 있다. 이 예에서, 핑거프린터(305)는 상이한 ACR 벤더들에 대한 상이한 ACR 핑거프린팅 알고리즘을 포함한다. 일 예에서, 상이한 ACR 핑거프린팅 알고리즘들이 미리 결정되어 ACR 엔진(204)의 메모리에 저장된다.
또 다른 예에서, 상이한 ACR 핑거프린팅 알고리즘들이 써드 파티 ACR 벤더들에 의해 제공된다. 그러한 벤더들에 의해 상이한 ACR 핑거프린팅 알고리즘들이 제공될 경우, 핑거프린터(305)는 상이한 ACR 핑거프린팅 알고리즘들을 통합한다. 일 예에서, ACR 핑거프린팅은 YUV 4:2:2 색 공간 내에서 그리고 고해상도 또는 다른 레벨의 해상도에서 RAW 비디오를 사용한다. 비디오 컨텐츠가 로컬 프로바이더(106) 또는 다른 컨텐츠 프로바이더(202)에서 수신될 경우, 핑거프린터(305)는 비디오 컨텐츠를 YUV 4:2:0 색 공간으로 변환하고, 미디어 장치(115)로 전송되기 전에 브로드캐스터 또는 디스트리뷰터에 의한 인코딩을 위해 임계 해상도 레벨로 해상도를 스케일 다운한다.
일부 구현들에서, 핑거프린터(305)는 핑거프린트 시퀀스 매칭기(325)를 포함하거나 이것과 통신한다. 아래에서 더 상세히 설명되는 바와 같이, 핑거프린트 시퀀스 매칭기(325)는 핑거프린트들(306a-n)의 시퀀스를, 소정 세트의 개별 프레임 핑거프린트들(306a-n)이 생성되는 오리지널 비디오 컨텐츠에 매칭시킨다.
핑거프린터(305)가 컨텐츠 프레임들(302)을 핑거프린팅한 경우, 핑거프린터(305)는 핑거프린트들(306a-n)(채널 정보, 타임 코드 및 핑거프린트 정보를 포함함)을 오버레이 데이터베이스(211) 및/또는 룩업 서버(206)에 전송한다. 룩업 서버(206)는 오버레이 데이터베이스(211)로부터 핑거프린트들(306a-n) 및 관련 정보를 검색한다. 룩업 서버(206)는 또한 오버레이 결정 엔진(210) 및 광고 타겟터(214)와 통신하거나 연결되어, 오버레이(212) 및 주제 매칭 정보를 오버레이 결정 엔진(210) 및 광고 타겟터(214)에 전송할 수 있으며, 광고 타겟터(214)는 클라이언트 장치(218 또는 220) 상의 사용자들을 상황에 맞게 타겟팅하는데 사용된다.
일부 예들에서는, 상이한 ACR 핑거프린팅 알고리즘들이 상이한 ACR 벤더들의 룩업 서버들에 상이한 핑거프린트 정보를 제공하기 위해 동일한 컨텐츠에서 사용된다. 동일한 컨텐츠(예를 들면, 컨텐츠 프레임들)(302)를 다르게 핑거프린팅하는 것의 이점은 컨텍스트적으로 관련된(contextually-relevant) 광고 및 인터랙티브 컨텐츠를 미디어 소비 장치들의 상이한 뷰어들에게 제공하는 것일 수 있다. 추가적인 예들에서, 컨텐츠 프레임들(302)은 상이한 피드들로부터의 미디어 컨텐츠(M)를 포함한다. 이 예에서, 상이한 ACR 핑거프린팅 알고리즘들은 상이한 ACR 벤더들의 룩업 서버들에 상이한 핑거프린팅 정보를 제공하기 위해 컨텐츠 프레임들(302)의 상이한 피드들의 컨텐츠에 사용된다.
상이한 핑거프린팅 정보는 상이한 ACR 벤더들의 룩업 서버들에 각각 업로드될 수 있다. 상이한 ACR 벤더들은 상이한 계약 장비 제조업체(CEM)에서 제조한 뷰잉 장치들에 통합될 수 있다. 예를 들어, Toshiba TV는 Samba® ACR 핑거프린트팅을 사용할 수 있고 Samsung® TV는 Enswer® ACR 핑거프린트팅을 사용할 수 있다. 상이한 ACR 벤더들에 대한 ACR 핑거프린팅 알고리즘들을 포함하는 핑거프린터(305)의 이점은, 미디어 소비 장치의 제조사에 관계없이 상이한 ACR 벤더들을 통해 뷰어들에게 제공되는 컨텐츠를 핑거프린팅할 수 있다는 점이다. 일 예에서, ACR 핑거프린팅 정보가 디지털 광고 대체(digital advertisement replacement, DAR)를 위해 사용된다. 다른 예에서는, ACR 핑거프린팅 정보가 광고 또는 컨텐츠 증강 및 데이터 수집을 위해 사용된다. 오버레이 결정 엔진(210) 및 광고 타겟터(214)(도 2)는 인코딩된 컨텐츠를 컨텍스트적으로 관련된 광고, 정보 및/또는 인터랙티브 컨텐츠와 매칭시키기 위해 핑거프린팅 정보를 사용할 수 있다. 매칭된 컨텐츠 및/또는 광고들은 그 위에 디스플레이를 스트리밍하기 위해 미디어 장치들(115)에게 제공될 수 있다. 또 다른 예에서는, 매칭 이벤트에 관한 정보가 컨텐츠 매칭의 분석을 위해 브로드캐스트 클라우드에 전송된다.
핑거프린터(305)는 시스템에서 브로드캐스트 분배의 업스트림 ACR 핑거프린팅을 수행할 수 있다. 예를 들어, 핑거프린팅은 브로드캐스트 피드들이 인코딩/업로딩을 위해 전송될 수 있는 브로드캐스트 체인에서 이루어진다. 단일 브로드캐스트 피드가 사용되는 경우, ACR 핑거프린팅 및 인코딩/업로딩을 위해 구매, 설치, 모니터링 및 유지 관리되어야 하는 장치 및/또는 응용 프로그램들의 수가 줄어들 수 있다. 예를 들어, 시스템 인프라스트럭처(랙 공간, 전력 및 이더넷 연결)의 감소와 같은, 자본 비용(CAPEX) 및/또는 운영 비용(OPEX)이 줄어들 수 있다. 또한, 단일 브로드캐스트 피드가 사용될 경우, 브로드캐스터의 분배 증폭기로부터 생성되는 브로드캐스트 피드 수가 감소될 수 있다.
논의된 바와 같이, 핑거프린터(305)는 멀티미디어 컨텐츠(M)로부터 개별 핑거프린트들(306a-n)를 생성할 수 있으며, 예를 들면 미디어 장치들(115) 중의 하나 상에 디스플레이되는 경로에 있는, 브로드캐스팅 서버, 헤드 엔드, 스위치 및/또는 셋탑 박스를 통과할 수 있다. 핑거프린트들(306a-n)은 하나의 프레임 또는 다수의 프레임들을 포함할 수 있다. 이 프레임들은 시간 순서 타임 스탬프들을 가지고 순차적으로 취해질 수 있거나, 예를 들어 여전히 대응하는 시간 스탬트들을 가지고, 하나 건너 하나(또는 제 3 프레임마다)와 같은 일정한 간격으로 취해질 수도 있다.
핑거프린트 시퀀스 매칭기(325)는 이 핑거프린트들에 의해 표현되는 대응 비디오 프레임들이 유래하는 오리지널 비디오 컨텐츠의 프레임 핑거프린트들(306a-n)(데이터베이스(327)에 저장됨)에 프레임들을 매칭시키기 위해 (쿼리 핑거프린트으로서) 이들 개별 프레임들의 세트 또는 시퀀스를 처리할 수 있다. 프레임 핑거프린트들(306a-n)은 단일 프레임일 수 있으며, 그 각각은 대응하는 타임 슬롯(또는 프레임 번호 또는 미디어 프로그램의 시작부터 시간의 양과 같은 일부 종류의 인덱스)을 포함한다. 매칭이 발견되면, 사용자가 미디어 장치(115) 상에서 시청하고 있는 미디어 프로그램, 채널 또는 채널 변경, 프로그램의 시작 및 종료 시간에 따른 스케줄의 시간 슬롯, 상업용 시간 슬롯, 및 매칭 미디어 프로그램 또는 텔레비전 채널의 정보 등을 결정할 수 있다.
매칭 결과에 대한 신뢰를 갖기 위해, 핑거프린트 시퀀스 매칭기(325)는 핑거프린트들(306a-n)의 시퀀스가 시간 순서로 정렬된다는 사실을 이용할 수 있으며, 따라서 매칭 핑거프린트들(306a-n)은 동일한 비디오에 속할뿐만 아니라 시간 순서도 비슷하다. 핑거프린트 시퀀스 매칭기(325)는 또한 매칭 핑거프린트 시퀀스가 어떻게(빠르게, 느리게 또는 역으로) 재생되는지를 검출하기 위해, 핑거프린트에서 프레임 시퀀스의 이러한 시간적인 특성들을 사용할 수 있다. ACR 핑거프린트 시퀀스 매칭기(325)의 알고리즘은 예를 들어 풀(full) 프레임 레이트에서의 정상 속도, 1/2 프레임 레이트에서의 정상 속도, 1/3 프레임 레이트에서의 정상 속도 등과 같은 특정 재생 시나리오를 검출하도록 구현될 수 있다.
일부 예들에서, 룩업 서버(206)는 핑거프린터(305)가 데이터베이스(327)에서 매칭되는 하나 이상의 프레임 핑거프린트들(306a-n)을 찾아 낸 것에 응답하여, 미디어 장치(115)로 스트리밍되는 채널을 식별한다. 룩업 서버(206)는 그 후 채널 스케줄 데이터베이스(330)에서 해당 채널에 대한 현재의 스케줄링 정보를 검색하며, 이에 따라 스트리밍되는 미디어 프로그램을 결정할 수 있다. 컨텐츠 매니저(322)는 기록된 ACR 정보 데이터베이스(123)에 뷰어의 미디어 장치(115) 상에서의 프로그램 시청 이력을 기록할 수 있다. 뷰어가 미디어 장치(115)를 턴 오프하거나, 채널을 변경하거나, 또는 미디어 프로그램이 종료되기 전에 미디어 장치로의 스트리밍이 중단된 경우, 컨텐츠 매니저(322)는 기록된 ACR 정보 데이터베이스(123)에, 미디어 프로그램의 소스(예를 들면, 특정 브로드캐스터 또는 브로드캐스터 장치로부터) 및 미디어 프로그램이 중단된 미디어 프로그램의 위치를 기록할 수 있다.
추가 구현들에서, 미디어 장치(115)가 미디어 프로그램이 이전에 중단된 채널로 복귀할 경우, 미디어 장치(115)는 컨텐츠 매니저(322)에게 그것에 관한 하나 이상의 메시지를 전송한다. 컨텐츠 매니저(322)는 기록된 ACR 정보 데이터베이스(123)에서, 미디어 장치에 대한 뷰잉 이력을 조회하고 나서, 미디어 프로그램이 이전에 중단되었던 것으로 판정할 수 있다. 또한, 컨텐츠 매니저(322)는 미디어 장치(115)에 대한 응답 메시지에서, 미디어 프로그램이 이전에 중단되었다는 것을 통신하고, 텔레비전 브로드캐스트의 소스 및 그것이 중단된 미디어 프로그램 내의 위치를 제공할 수 있다. 일부 예들에서, 미디어 장치(115)는 "이 미디어 프로그램 시청을 재개하시겠습니까?"와 같은 프롬프트 및 뷰어가 동의하거나 거절할 수 있게 하는(예컨대, 원격 제어 동작을 통해) 선택 가능한 인디케이터(213)와 함께 미디어 장치의 디스플레이에 오버레이(212)를 전달한다. 뷰어가 부정으로 응답하면, 미디어 장치(115)는 오버레이(212)를 제거할 수 있다. 뷰어가 긍정적으로 응답하면, 미디어 장치(115)는 중단되었던 미디어 프로그램 내의 지점에 대해 기록된 위치에서 소스로부터 미디어 프로그램 스트리밍을 시작할 수 있다.
일부 구현들에서, 컨텐츠 매니저(322)(또는 일반적으로 ACR 시스템(124 또는 126))는 오버레이(212)를 미디어 장치(115)의 디스플레이에 전달한다. 오버레이(212)는 라이브 미디어 피드의 재생, 일시 정지, 빨리 감기 또는 되감기와 같은 제어 동작과 관련된 제어 옵션들을 제공하기 위해 선택 가능한 옵션(또는 인디케이터)을 제공할 수 있다. 대안적인 구현에서, 미디어 장치(TV와 같은)를 위한 원격 제어기는 선택 시에 이들 동일한(또는 유사한) 제어 옵션을 제공하는 입력들을 포함한다. 오버레이(212) 상의 옵션 선택(또는 원격 제어기 상의 대응하는 입력)을 수신하면, 미디어 장치(115)는 제어 옵션의 선택을 나타내는 선택 신호를 ACR 클라이언트(215)에게 제공한다. 이 선택은 예를 들어, 라이브 미디어 피드를 재생, 일시 정지, 빨리 감기 또는 되감기 하기 위한 입력일 수 있다. ACR 클라이언트(215)는 선택된 입력 또는 옵션에 대응하는 라이브 미디어 피드에서 스트리밍되는 미디어 프로그램에 대한 제어 동작을 수행할 수 있다.
스트리밍의 위치가 변경되거나 일시 정지된 경우, ACR 클라이언트는 (데이터베이스(123)에 저장된 미디어 장치의 ACR 데이터에 대한 액세스를 통해) 오버레이(212)(또는 원격 제어기)의 옵션들 중 하나를 선택하는 것을 통해 스트리밍이 재개될 때 미디어 프로그램이 재생을 시작할 위치를 나타낼 수 있다. ACR 클라이언트(215)는 예를 들어 사용자의 재생 선택을 나타내는 선택 신호의 수신에 따라 미디어 프로그램을 스트리밍하기 시작할 때 사용하기 위해 이 위치를 저장하거나 버퍼링할 수 있다. ACR 클라이언트가 자동 컨텐츠 인식 데이터를 추적함에 따라, ACR 클라이언트(215)는 미디어 장치의 사용자가 라이브 미디어 스트림 내로 이동한 위치를 추적할 수 있다. 몇몇 경우들에 있어서, 라이브 미디어 스트림은 미디어 장치로 스트리밍되는 라이브 미디어 피드의, 제어 옵션의 사용자 조작에 의해 지시되는 위치로의 이동을 용이하게 하기 위해 ACR 서버, ACR 클라이언트, 또는 ACR 서버와 ACR 클라이언트의 조합에서 일정 기간 동안 버퍼링된다
다양한 구현들에서, ACR 클라이언트(215)는 제어 옵션들이 오버레이(212)에서 또는 원격 제어기의 입력으로부터 이용 가능하게 한다. 오버레이 주입에 대해 더 언급하면, 일시 정지 옵션이 선택될 경우, 다른 옵션들(일시 정지, RWD 및 FF 버튼)이 선택을 위해 디스플레이될 수 있다. 현재 선택된 옵션이 회색으로 표시되거나 그 옵션이 현재 제어 작업으로 실행되고 있음을 강조 표시할 수 있다.
일부 구현들에서, 컨텐츠 매니저(322)는 룩업 서버(206)와의 상호 작용을 목표로 하는 오버레이(212)의 전달을 위해 그리고 기록된 ACR 정보 데이터베이스(123)에 대한 액세스를 위해 오버레이 결정 엔진(210) 및 오버레이 데이터베이스(211)(도 2)와의 조정을 행한다. 스트리밍의 재시작(예를 들면, 일시 정지, 종료, 되감기 또는 빨리 감기로부터)은 텔레비전 브로드캐스터로부터, 또는 컨텐츠 매니저(322)에 저장된 미디어 프로그램의 나머지의 버퍼링된 버전으로부터 HTTP(Hypertext Transfer Protocol) 라이브 스트리밍(HLS) 스트림의 재생을 시작하는 것일 수 있다.
도 4는 대응하는 텔레비전 프로그램을 식별하기 위해 입력(또는 쿼리) 핑거프린트(306a)의 프레임 시퀀스를 매칭하는 자동 컨텐츠 인식(ACR) 방법(400)의 예시적인 흐름도를 도시한 것이다. 방법(400)은 데이터 처리 하드웨어(예를 들면, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들면, 처리 장치에 의해 실행되는 명령어들), 펌웨어 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 적어도 부분적으로 수행될 수 있다. 방법(400)은 별도의 룩업 서버(206)를 포함할 수 있는, 컨텐츠 매니저(322)의 로직을 처리함으로써 수행될 수 있다. 방법(400)은 또한 부분적으로, 클라이언트 장치(218 또는 220)와 같은 클라이언트 장치, 또는 도 1의 ACR 시스템(124 또는 126) 또는 도 2의 ACR 시스템(224 또는 226)과 같은 서버 시스템에 의해 수행될 수 있다. 대안적으로, 방법은 다양한 유형의 사용자 장치, 휴대용 장치, 텔레비전, 프로젝터 또는 다른 미디어 장치 내의 다른 처리 장치에 의해 수행될 수 있다.
도 4를 참조하면, 방법(400)은 컨텐츠(또는 미디어) 장치(410)에서 컨텐츠 피드(103)로부터 미디어 컨텐츠(M)를 수신하는 처리 로직으로 시작할 수 있다. 방법(400)은 미디어 컨텐츠(M)에 핑거프린팅을 수행하는 로직으로 계속되어 프레임들의 시퀀스 및 대응하는 시간 기반 인덱스(예컨대, 대응하는 타임 스탬프)를 포함하는 입력(또는 쿼리) 핑거프린트(306a)를 생성한다(420). 방법(400)은 시간 기반 인덱스에 따라, 오리지널 미디어 컨텐츠(M)로부터의 복수의 프레임 핑거프린트들(306a-n)과 쿼리 핑거프린트(306a)를 매칭시키는 로직으로 계속되어, 현재 미디어 프로그램을 스트리밍하고 있는 채널을 식별한다(430). 방법(400)은 채널에 대한 스케줄링 데이터로부터 미디어 프로그램을 식별하는 처리 로직으로 계속될 수 있다.
도 5는 미디어 프로그램의 중단을 검출하고 미디어 프로그램이 이전에 스트리밍된 채널로 돌아 왔을 때 미디어 프로그램을 계속 볼 수 있는 옵션을 제공하는 ACR의 방법(500)의 예시적인 흐름도를 도시한 것이다. 방법(500)은 데이터 처리 하드웨어(예를 들면, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들면, 처리 장치에 의해 실행되는 명령어들), 펌웨어 또는 이들의 조합을 포함할 수 있는 로직을 처리하는 것에 의해 적어도 부분적으로 수행될 수 있다. 방법(500)은 별도의 룩업 서버(206)를 포함할 수 있는 컨텐츠 매니저(322)의 로직을 처리함으로써 수행될 수 있다. 방법(500)은 또한 부분적으로 클라이언트 장치(218 또는 220)와 같은 클라이언트 장치에 의해, 또는 도 1의 ACR 시스템(124 또는 126) 또는 도 2의 ACR 시스템(224 또는 226)과 같은 서버 시스템에 의해 수행될 수 있다. 대안적으로, 방법(500)은 다양한 유형의 사용자 장치, 휴대용 장치, 텔레비전, 프로젝터 또는 다른 미디어 장치 내의 다른 처리 장치에 의해 수행될 수 있다.
도 5를 참조하면, 방법(500)은 미디어 프로그램을 시청하는 채널의 변경 또는 다른 종료를 검출하는 처리 로직으로 시작할 수 있다(510). 방법(500)은 기록된 ACR 데이터에서, 예를 들어 기록된 ACR 정보 데이터베이스(123) 내에서 뷰잉이 종료될 때의 미디어 프로그램의 채널, 위치 및 소스를 기록하는 처리 로직으로 계속된다(520). 방법(500)은 미디어 장치가 뷰잉을 위해 채널로 되돌아 왔음을 검출하는 처리 로직으로 계속된다(530). 이 검출은 채널 변경의 표시 또는 미디어 장치가 그 특정 채널을 턴 온하였다는 표시를 갖는 미디어 장치로부터 메시지 수신에 의해 수행될 수 있다. 방법(500)은 중단된 미디어 프로그램이, 기록된 ACR 정보 데이터베이스(123)에 위치되어 있는지 여부를 추가로 결정하는 처리 로직으로 계속된다(540). 결과가 부정인 경우, 방법(500)은 블록(510)에서 다시 시작할 수 있다.
중단된 미디어 프로그램이 데이터베이스(123) 내에 위치하면(블록 540에서의 결정), 방법(500)은 미디어 프로그램의 아이덴티티를 미디어 장치에 전송하는 처리 로직으로 계속된다(550). 방법(500)은 미디어 장치로 하여금 사용자가 미디어 프로그램 시청을 재개하기 원하는지의 여부를 요청하는 오버레이를 디스플레이 하게 하는 처리 로직으로 계속된다(560). 방법(500)은 미디어 장치를 통해 입력이 수신되어, 미디어 프로그램 시청을 재개할 것인지 여부를 결정하는 처리 로직으로 계속된다(570). 입력이 수신되지 않은 경우(또는 부정 응답이 수신된 경우), 방법(500)은 오버레이(212)를 제거하고 미디어 장치(580)로부터 대안적인 명령들로 진행하는 처리 로직으로 계속될 수 있다. 긍정 응답이 수신되면, 방법(500)은 미디어 프로그램이 이전에 종료된 위치로부터 미디어 프로그램의 HTTP 라이브 스트림(HLS) 또는 다른 유형의 텔레비전 브로드캐스트 스트림을 재생하기 시작하는 처리 로직으로 계속될 수 있다(590). 미디어 프로그램은 오리지널 텔레비전 브로드캐스터로부터 스트리밍될 수 있거나 컨텐츠 매니저(322) 또는 다른 ACR 시스템에 저장된 미디어 프로그램의 버퍼링된 버전으로부터 스트리밍될 수 있다.
도 6은 라이브 미디어 피드를 스트리밍하는 타이밍을 제어하도록(예를 들면, 빨리 감기, 되감기, 일시 정지 등과 같은 재생 모드를 갖는 재생 제어 옵션을 통해) 미디어 장치 상에 옵션을 제공하는 ACR의 방법(600)의 예시적인 흐름도이다. 방법(600)은 하드웨어(예를 들면, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들면, 처리 장치에 의해 실행되는 명령어들), 펌웨어 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 적어도 부분적으로 수행될 수 있다. 방법(600)은 개별 룩업 서버(206)를 포함할 수 있는, 컨텐츠 매니저(322)의 로직을 처리함으로써 수행될 수 있다. 방법(600)은 또한 클라이언트 장치(218 또는 220) 상의 ACR 클라이언트(215)와 같은 클라이언트 장치에 의해, 또는 부분적으로는 도 1의 ACR 시스템(124 또는 126) 또는 도 2의 ACR 시스템(224 또는 226)과 같은 서버 시스템에 의해 수행될 수 있다. 대안적으로, 방법(600)은 다양한 유형의 사용자 장치, 휴대용 장치, 텔레비전, 프로젝터 또는 다른 미디어 장치 내의 다른 처리 장치에 의해 수행된다.
도 6을 참조하면, 방법(600)은 라이브 미디어 피드를 스트리밍하는 미디어 장치(115) 상에 오버레이(212)를 디스플레이하는 처리 로직으로 시작하며, 여기서 오버레이(212)는 제어 옵션들(예를 들면, 인디케이터, 입력, 버튼 등)을 포함한다(610). 대안적으로, 방법(600)은 제어 옵션들을 제공하기 위해 미디어 장치(115)의 원격 제어기 상의 입력들을 활성화시키는 처리 로직으로 시작한다(615). 각각의 제어 옵션은 라이브 미디어 피드를 스트리밍하는 타이밍(예를 들면, 재생 모드를 통해)을 제어하도록 구성될 수 있고, 라이브 미디어 피드의 소스와 관련이 없을 수 있다(예를 들면, 해당 프로바이더의 셋탑 박스에 연결되는 케이블 프로바이더의 제어기가 아님). 다양한 구현들에서, 옵션들은 라이브 미디어 피드 내에서 스트리밍되는 미디어 프로그램을 재생, 일시 정지, 되감기(RWD) 또는 빨리 감기(FF)하기 위한 다양한 재생 모드들에 대한 입력들 또는 명령들을 포함할 수 있지만, 미디어 프로그램의 특정 섹션, 챕터, 또는 에피소드로의 점프와 같은 다른 동작들이 상정될 수도 있다. 미디어 프로그램은 도 4를 참조하여 설명된 바와 같이 결정될 수 있다.
도 6을 더 참조하면, 방법(600)은 제어 옵션(620)의 선택을 검출하는 처리 로직으로 계속된다. 방법(600)은 검출시에 미디어 프로그램의 위치, 예를 들어 미디어 프로그램이 일시 정지된 위치를 결정(및 저장)하기 위해 ACR 데이터를 사용하는 처리 로직으로 계속된다(630). 방법(600)은 미디어 프로그램을 스트리밍하는 타이밍을 제어하기 위해, 예를 들어, 일시 정지, 재생, 빨리 감기 또는 되감기를 하기 위해 선택된 제어 옵션과 관련된 제어 동작을 실행하는 처리 로직으로 계속된다(640). 동작이 예를 들어 빨리 감기, 되감기 또는 다른 섹션으로 점프하는 것인 경우, 방법(600)은 사용자가 미디어 프로그램에서 되감기 또는 빨리 감기를 중지하는 미디어 프로그램 내의 위치(또는 점프 동작의 목적지)를 추적 및 결정하는 처리 로직으로 계속된다(645). 방법(600)은 재생 옵션(650)의 선택을 검출하는 처리 로직으로 계속된다(650). 방법(600)은 저장된 위치 또는 사용자가 미디어 프로그램의 되감기 또는 빨리 감기를 중지한 위치로부터 미디어 프로그램의 재생을 시작하는 처리 로직으로 계속된다(660).
도 7은 머신이 본 명세서에서 논의된 방법 중 하나 이상을 수행하게 하는 명령어 세트가 실행될 수 있는 컴퓨터 시스템(700)의 예시적인 형태의 머신에 대한 예시적인 개략도를 도시한 것이다. 대안적인 구현들에서, 머신은 LAN, 인트라넷, 엑스트라 넷 또는 인터넷의 다른 머신들에 연결(예를 들면, 네트워크로 연결)된다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 장치의 역할로, 또는 피어 투 피어(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신은 개인용 컴퓨터(PC), 태블릿 PC, 셋탑 박스(STB), 개인 휴대 정보 단말기(PDA), 휴대폰, 스마트 폰, 웹 기기, 서버, 네트워크 라우터, 스위치나 브리지 또는 해당 머신이 수행할 동작들을 지정하는 명령어들의 세트(순차적 또는 다른 방식)를 실행할 수 있는 머신일 수 있다. 또한, 단일 머신 만이 도시되어 있지만, "머신"이라는 용어는 또한 본 명세서에서 논의된 하나 이상의 방법을 수행하기 위해 명령어들의 세트(또는 복수의 세트들)를 개별적으로 또는 공동으로 실행하는 임의의 머신들의 집합을 포함하는 것으로 간주되어야 한다.
컴퓨터 시스템(700)은 도 1의 ACR 시스템(124 또는 126), 도 2 및 도 3의 ACR 시스템(224 또는 226), 또는 도 1의 컨텐츠 매니저(122), 도 2의 컨텐츠 매니저(222) 또는 도 3의 컨텐츠 매니저(322)에 대응할 수 있다. 컴퓨터 시스템(700)은 도 1의 클라이언트 장치(118 또는 120)와 같은 임의의 미디어 장치(115)에 대응할 수 있다. 컴퓨터 시스템(700)은 클라우드 기반 컴퓨터 시스템의 적어도 일부에 대응할 수 있다.
컴퓨터 시스템(700)은 처리 장치(702), 메인 메모리(704)(예를 들면, ROM(read-only memory), 플래시 메모리, DRAM(dynamic random access memory)(예를 들면 동기식 DRAM(SDRAM) 또는 DRAM(RDRAM) 등), 정적 메모리(706)(예를 들면, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 버스(730)를 통해 서로 통신하는 데이터 저장 장치(718)를 포함한다.
처리 장치(702)는 마이크로 프로세서, 중앙 처리 장치 등과 같은 하나 이상의 범용 처리 장치를 나타낸다. 보다 구체적으로, 처리 장치는 복잡한 명령 세트 컴퓨팅(CISC) 마이크로 프로세서, 축소 명령 세트 컴퓨터(RISC) 마이크로 프로세서, 매우 긴 명령 워드(VLIW) 마이크로 프로세서, 또는 다른 명령 세트를 구현하는 프로세서, 또는 명령 세트의 조합을 구현하는 프로세서일 수 있다. 처리 장치(702)는 또한 ASIC(application specific integrated circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 장치일 수 있다. 일부 구현들에서, 처리 장치(702)는 하나 이상의 프로세싱 코어들을 포함한다. 처리 장치(702)는 본 명세서에서 논의된 동작들을 수행하기 위한 미러링 로직의 명령어들(726)을 실행할 수 있다.
컴퓨터 시스템(700)은 네트워크(720)에 통신 가능하게 연결된 네트워크 인터페이스 장치(708)를 더 포함할 수 있다. 컴퓨터 시스템(700)은 또한 비디오 디스플레이 유닛(710)(예를 들면, 액정 디스플레이(LCD) 또는 음극선 관(CRT)), 문자 숫자 입력 장치(712)(예를 들면, 키보드), 커서 제어 장치(714)(예를 들면, 마우스), 신호 생성 장치(716)(예를 들면, 스피커) 또는 기타 주변 장치를 포함할 수 있다. 또한, 컴퓨터 시스템(700)은 그래픽 처리 유닛(722), 비디오 처리 유닛(728) 및 오디오 처리 유닛(732)을 포함할 수 있다. 일부 구현들에서, 컴퓨터 시스템(700)은 처리 장치(702)와 함께 작동하고 처리 장치(702)와 외부 장치들 간의 통신을 제어하도록 설계된 집적 회로들 또는 칩들의 그룹을 지칭하는 칩세트(도시되지 않음)를 포함한다. 예를 들어, 칩세트는 처리 장치(702)를 메인 메모리(704) 및 그래픽 제어기와 같은 초고속 장치에 연결하고 처리 장치(702)를 USB, PCI 또는 ISA 버스와 같은 주변 장치의 저속 주변 버스에 링크하는 마더 보드 상의 칩들의 세트이다.
데이터 저장 장치(718)는 본 명세서에서 설명된 기능들의 방법들 중 하나 이상을 구현하는 명령어들(726)이 저장된 컴퓨터 판독가능 저장 매체(725)를 포함할 수 있다. 명령어들(726)은 또한 컴퓨터 시스템(700)에 의해 실행되는 동안 메인 메모리(704) 및/또는 처리 장치(702) 내에 완전히 또는 적어도 부분적으로 상주할 수 있으며; 메인 메모리(704) 및 처리 장치(702)는 또한 컴퓨터 판독가능 저장 매체를 구성한다.
컴퓨터 판독가능 저장 매체(725)는 또한 로직 및/또는 상기 애플리케이션을 호출하는 방법을 포함하는 로직 및/또는 소프트웨어 라이브러리를 이용하는 명령어들(726)을 저장하는데 사용될 수 있다. 컴퓨터 판독가능 저장 매체(725)가 예시적인 구현에서 단일 매체인 것으로 도시되어 있지만, "컴퓨터 판독가능 저장 매체"라는 용어는 하나 이상의 명령어 세트를 저장하는 단일 매체 또는 다중 매체(예를 들면, 중앙 또는 분산 데이터베이스, 및/또는 연관된 캐시 및 서버)를 포함한다. "컴퓨터 판독가능 저장 매체"라는 용어는 또한 머신에 의해 실행되는 명령어 세트(726)를 저장, 인코딩 또는 반송할 수 있고 머신이 본 발명의 방법들 중의 하나 이상의 방법을 수행하게 하는 임의의 매체를 포함하는 것으로 간주된다. "컴퓨터 판독가능 저장 매체"라는 용어는 따라서 솔리드-스테이트 메모리, 광학 매체 및 자기 매체를 포함하며 이에 제한되지 않는다. 다음의 예는 추가 구현들과 관련이 있다.
본 발명가 제한된 수의 구현에 대하여 설명되었지만, 당업자는 이로부터 수많은 수정 및 변형을 인식할 것이다. 첨부된 청구 범위는 본 발명의 진정한 사상 및 범위 내에 있는 그러한 모든 수정 및 변형을 포함하는 것으로 의도된다.
본원에서의 설명에서, 본 발명의 철저한 이해를 제공하기 위해, 특정 유형의 프로세서들 및 시스템 구성들, 특정 하드웨어 구조들, 특정 아키텍처 및 마이크로 아키텍처 상세들, 특정 레지스터 구성들, 특정 명령어 유형들, 특정 시스템 컴포넌트들, 특정 측정들/높이들, 특정 프로세서 파이프라인 스테이지들 및 동작들 등의 예들과 같은, 다수의 구체적인 상세들이 기재되어 있다. 그렇지만, 본 발명을 실시하기 위해 이 구체적인 상세들이 이용될 필요가 없다는 것이 본 기술분야의 통상의 기술자에게는 명백할 것이다. 다른 경우들에서, 본 발명을 불필요하게 모호하게 하는 것을 피하기 위해, 특정 및 대안의 프로세서 아키텍처들, 기술된 알고리즘들에 대한 특정 로직 회로들/코드, 특정 펌웨어 코드, 특정 상호연결 동작, 특정 로직 구성들, 특정 제조 기법들 및 재료들, 특정 컴파일러 구현들, 코드로 된 알고리즘들의 특정 표현, 특정 전원 차단(power down) 및 게이팅 기법들/로직 및 컴퓨터 시스템의 다른 구체적인 동작 상세들이 상세히 기술되지 않았다.
실시예들은, 컴퓨팅 플랫폼들 또는 마이크로프로세서들에서와 같이, 특정 집적 회로들에서의 보안 메모리 재파티셔닝(secure memory repartitioning)을 참조하여 기술된다. 실시예들은 또한 다른 유형의 집적 회로들 및 프로그래밍가능 로직 디바이스들에 적용가능할 수 있다. 예를 들어, 개시된 실시예들이 데스크톱 컴퓨터 시스템들 또는, Intel® Ultrabooks™ 컴퓨터들과 같은, 휴대용 컴퓨터들로 제한되지 않는다. 그리고 또한 핸드헬드디바이스들, 태블릿들, 다른 씬 노트북(thin notebook)들, SOC(systems on a chip) 디바이스들, 및 임베디드애플리케이션들과 같은, 다른 디바이스들에서 사용될 수 있다. 핸드헬드 디바이스들의 일부 예들은 셀룰러폰들, 인터넷 프로토콜 디바이스들, 디지털 카메라들, PDA(personal digital assistant)들, 및 핸드헬드 PC들을 포함한다. 임베디드 애플리케이션들은 전형적으로 마이크로컨트롤러, DSP(digital signal processor), SOC(system on a chip), 네트워크 컴퓨터들(NetPC), 셋톱 박스들, 네트워크 허브들, WAN(wide area network)스위치들, 또는 이하에서 교시되는 기능들 및 동작들을 수행할 수 있는 임의의 다른 시스템을 포함한다. 시스템이 임의의 종류의 컴퓨터 또는 임베디드 시스템일 수 있다고 기술되어 있다. 개시된 실시예들은 특히, 웨어러블 디바이스들(예컨대, 시계들), 전자 임플란트(electronic implant)들, 감각 및 제어 인프라스트럭처 디바이스들, 컨트롤러들, SCADA(supervisory control and data acquisition) 시스템들 등과 같은, 저가 디바이스들에 대해 사용될 수 있다. 더욱이, 본원에 기술되는 장치들, 방법들, 및 시스템들은 물리적 컴퓨팅 디바이스들로 제한되지 않지만, 또한 에너지 보존 및 효율을 위한 소프트웨어 최적화들에 관련될 수 있다. 이하의 설명에서 곧바로 명백하게 될 것인 바와 같이, (하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합 중 어느 것이든 참조하여) 본원에 기술되는 방법들, 장치들, 및 시스템들의 실시예들은 성능 고려사항들과 균형을 이루는 '녹색 기술' 미래에 중요하다.
비록 실시예들이 본원에서 프로세서를 참조하여 기술되어 있지만, 다른 실시예들은 다른 유형의 집적 회로들 및 로직 디바이스들에 적용가능하다. 본 발명의 실시예들의 유사한 기법들 및 교시내용들은 보다 높은 파이프라인 처리율 및 개선된 성능으로부터 이득을 볼 수 있는 다른 유형의 회로들 또는 반도체 디바이스들에 적용될 수 있다. 본 발명의 실시예들의 교시내용들은 데이터 조작들을 수행하는 임의의 프로세서 또는 머신에 적용가능하다. 그렇지만, 본 발명은 512 비트, 256 비트, 128 비트, 64 비트, 32 비트, 또는 16 비트 데이터 연산들을 수행하는 프로세서들 또는 머신들로 제한되지 않으며, 데이터의 조작 또는 관리가 수행되는 임의의 프로세서 및 머신에 적용될 수 있다. 그에 부가하여, 본원에서의 설명은 예들을 제공하고, 첨부 도면들은 예시를 위해 다양한 예들을 도시하고 있다. 그렇지만, 이 예들이 본 발명의 실시예들의 모든 가능한 구현들의 전수적인 목록을 제공하기보다는 오히려 본 발명의 실시예들의 예들을 제공하려는 것으로 의도되어 있는 것에 불과하기 때문에, 이 예들이 제한적인 의미로 해석되어서는 안된다.
다른 실시예들은, 머신에 의해 수행될 때, 머신으로 하여금 본 발명의 적어도 하나의 실시예에 따른 기능들을 수행하게 하는, 머신 판독가능 유형적 매체(machine-readable, tangible medium) 상에 저장된 데이터 또는 명령어들에 의해 달성될 수 있다. 일 실시예에서, 본 발명의 실시예들과 연관된 기능들이 머신 실행가능 명령어들로 구현된다. 명령어들은 명령어들로 프로그래밍된 범용 또는 특수 목적 프로세서로 하여금 본 발명의 단계들을 수행하게 하는 데 사용될 수 있다. 본 발명의 실시예들은 컴퓨터(또는 다른 전자 디바이스들)를 본 발명의 실시예들에 따른 하나 이상의 동작들을 수행하도록 프로그래밍하는 데 사용될 수 있는 명령어들을 저장하고 있는 머신 또는 컴퓨터 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 대안적으로, 본 발명의 실시예들의 동작들은 동작들을 수행하는 고정 기능 로직을 포함하는 특정 하드웨어 컴포넌트들에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트들 및 고정 기능 하드웨어 컴포넌트들의 임의의 조합에 의해 수행될 수 있다.
로직을 본 발명의 실시예들을 수행하도록 프로그래밍하는 데 사용되는 명령어들은, DRAM, 캐시, 플래시 메모리, 또는 다른 저장소와 같은, 시스템에 있는 메모리 내에 저장될 수 있다. 게다가, 명령어들이 네트워크를 통해 또는 다른 컴퓨터 판독가능 매체를 통해 배포될 수 있다. 따라서, 머신 판독가능 매체는 플로피 디스켓들, 광학 디스크들, CD-ROM(Compact Disc, Read-Only Memory), 및 자기-광학 디스크들, ROM(Read-Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 자기 또는 광학 카드들, 플래시 메모리, 또는 전기, 광학, 음향 또는 다른 형태의 전파 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들 등)을 통해 인터넷을 거쳐 정보를 전송하는데 사용되는 유형적 머신 판독가능 저장소 - 이들로 제한되지 않음 - 와 같은, 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하는 임의의 메커니즘을 포함할 수 있다. 그에 따라, 컴퓨터 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 전자 명령어들 또는 정보를 저장 또는 전송하기에 적당한 임의의 유형의 유형적 머신 판독가능 매체를 포함한다.
설계는, 제작으로부터 시뮬레이션을 거쳐 제조에 이르기까지, 다양한 스테이지들을 거칠 수 있다. 설계를 표현하는 데이터는 다수의 방식들로 설계를 표현될 수 있다. 첫째, 시뮬레이션들에서 유용한 것처럼, 하드웨어는 하드웨어 기술 언어(hardware description language) 또는 다른 기능 기술 언어(functional description language)를 사용하여 표현될 수 있다. 그에 부가하여, 로직 및/또는 트랜지스터 게이트들을 갖는 회로 레벨 모델이 설계 프로세스의 일부 스테이지들에서 생성될 수 있다. 게다가, 대부분의 설계들은 하드웨어 모델에서 다양한 디바이스들의 물리적 배치를 표현하는 데이터 레벨에 도달한다. 종래의 반도체 제조 기법들이 사용되는 경우에, 하드웨어 모델을 표현하는 데이터는 집적 회로를 생산하는 데 사용되는 마스크들에 대한 상이한 마스크층들 상의 다양한 피처(feature)들의 존재 또는 부존재를 명시하는 데이터일 수 있다. 설계의 임의의 표현에서, 데이터는 임의의 형태의 머신 판독가능 매체에 저장될 수 있다. 메모리 또는 디스크와 같은 자기 또는 광학 저장소는 이러한 정보를 전송하기 위해 변조되거나 다른 방식으로 생성된 광학 또는 전기 파를 통해 전송되는 정보를 저장하는 머신 판독가능 매체일 수 있다. 코드 또는 설계를 표시하거나 담고 있는 전기 반송파가 전송될 때, 전기 신호의 복사, 버퍼링, 또는 재전송이 수행되는 한, 새로운 사본이 만들어진다. 따라서, 통신 제공자 또는 네트워크 제공자는 본 발명의 실시예들의 기법들을 구현하는, 반송파로 인코딩된 정보와 같은, 물품을 유형적 머신 판독가능 매체 상에 적어도 일시적으로 저장할 수 있다.
본원에서 사용되는 바와 같은 모듈은 하드웨어, 소프트웨어, 및/또는 펌웨어의 임의의 조합을 지칭한다. 일 예로서, 모듈은 마이크로제어기에 의해 실행되도록 구성된 코드를 저장하는 비일시적 매체와 연관된, 마이크로제어기와 같은, 하드웨어를 포함한다. 따라서, 모듈에 대한 언급은, 일 실시예에서, 비일시적 매체 상에 보유될 코드를 인식 및/또는 실행하도록 구체적으로 구성된 하드웨어를 지칭한다. 게다가, 다른 실시예에서, 모듈의 사용은 미리 결정된 동작들을 수행하기 위해 마이크로제어기에 의해 실행되도록 구체적으로 구성된 코드를 포함하는 비일시적 매체를 지칭한다. 그리고 추론될 수 있는 바와 같이, 또 다른 실시예에서, 모듈이라는 용어는 (이 예에서) 마이크로제어기와 비일시적 매체의 조합을 지칭할 수 있다. 종종, 분리되어 예시되어 있는 모듈 경계들이 통상적으로 달라지며 어쩌면 겹친다. 예를 들어, 제1 모듈과 제2 모듈은, 어쩌면 일부 독립적인 하드웨어, 소프트웨어 또는 펌웨어를 보유하면서, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 공유할 수 있다. 일 실시예에서, 로직이라는 용어의 사용은, 트랜지스터들, 레지스터들과 같은 하드웨어, 또는 프로그래밍 가능 로직 디바이스들과 같은 다른 하드웨어를 포함한다.
'~하도록 구성된'이라는 문구의 사용은, 일 실시예에서, 지정된 또는 결정된 작업을 수행하도록 장치, 하드웨어, 로직, 또는 요소를 배열, 조립, 제조, 판매 제안, 수입 및/또는 설계하는 것을 지칭한다. 이 예에서, 동작하고 있지 않은 장치 또는 그의 요소는, 지정된 작업을 수행하도록 설계, 결합 및/또는 상호연결되는 경우, 여전히 상기 지정된 작업을 수행'하도록 구성'된다. 순전히 예시적인 예로서, 로직 게이트는 동작 동안 0 또는 1을 제공할 수 있다. 그러나, 클록에 인에이블 신호(enable signal)를 제공'하도록 구성된' 로직 게이트가 1 또는 0을 제공할 수 있는 잠재적 로직 게이트 모두를 포함하지는 않는다. 그 대신에, 로직 게이트는 동작 동안 1 또는 0 출력이 클록을 인에이블시키는 어떤 방식으로 결합된 것이다. 다시 한번 유의할 점은, '~하도록 구성된'이라는 용어의 사용이 동작을 필요로 하지 않고 그 대신에 장치, 하드웨어, 및/또는 요소의 잠재 상태(latent state)에 초점을 맞추고 있으며, 여기서 잠재 상태에서는 장치, 하드웨어, 및/또는 요소가 동작하고 있을 때 장치, 하드웨어, 및/또는 요소가 특정 작업을 수행하도록 설계되어 있다는 것이다.
게다가, '~하는', '~할 수 있는', 및/또는 '~하도록 동작가능한'이라는 문구들의 사용은, 일 실시예에서, 어떤 장치, 로직, 하드웨어, 및/또는 요소가 장치, 로직, 하드웨어, 및/또는 요소를 명시된 방식으로 사용할 수 있게 하도록 설계되어 있다는 것을 지칭한다. 유의할 점은, 이상과 같이, '~하는', '~할 수 있는', 및/또는 "~하도록 동작가능한"의 사용이, 일 실시예에서, 장치, 로직, 하드웨어, 및/또는 요소의 잠재 상태를 지칭하고, 여기서 장치, 로직, 하드웨어, 및/또는 요소가 동작하고 있지 않지만 장치를 명시된 방식으로 사용할 수 있게 하도록 설계되어 있다는 것이다.
값은, 본원에서 사용되는 바와 같이, 숫자, 상태, 논리 상태, 또는 이진 논리 상태의 임의의 공지된 표현을 포함한다. 종종, 논리 레벨(logic level)들, 논리 값(logic value)들, 또는 논리 값(logical value)들의 사용은 또한, 이진 논리 상태들을 간단히 표현하는, 1과 0을 지칭한다. 예를 들어, 1은 하이 논리 레벨(high logic level)을 지칭하고, 0은 로우 논리 레벨(low logic level)을 지칭한다. 일 실시예에서, 트랜지스터 또는 플래시 셀과 같은, 저장 셀(storage cell)은 단일의 논리 값 또는 다수의 논리 값들을 보유할 수 있다. 그렇지만, 컴퓨터 시스템들에서의 값들의 다른 표현들이 사용되어 왔다. 예를 들어, 십진수 10은 또한 이진 값 1010과 16 진수 문자 A로 표현될 수 있다. 따라서, 값은 컴퓨터 시스템에 보유될 수 있는 정보의 임의의 표현을 포함한다.
더욱이, 상태들이 값들 또는 값들의 부분들에 의해 표현될 수 있다. 일 예로서, 논리 1과 같은, 제1 값은 디폴트 또는 초기 상태를 표현할 수 있는 반면, 논리 0과 같은, 제2 값은 디폴트가 아닌 상태(non-default state)를 표현할 수 있다. 그에 부가하여, 리셋(reset) 및 세트(set)라는 용어들은, 일 실시예에서, 각각, 디폴트 및 업데이트된 값 또는 상태를 지칭한다. 예를 들어, 디폴트 값은 어쩌면 하이 논리 값, 즉 리셋을 포함하는 반면, 업데이트된 값은 어쩌면 로우 논리 값, 즉 세트를 포함한다. 임의의 수의 상태들을 표현하기 위해 값들의 임의의 조합이 이용될 수 있다는 것에 유의해야 한다.
앞서 기재된 방법들, 하드웨어, 소프트웨어, 펌웨어 또는 코드의 실시예들은 처리 요소에 의해 실행가능한 머신 액세스가능, 머신 판독가능, 컴퓨터 액세스가능, 또는 컴퓨터 판독가능 매체 상에 저장된 명령어들 또는 코드를 통해 구현될 수 있다. 비일시적 머신 액세스가능/판독가능 매체는, 컴퓨터 또는 전자 시스템과 같은, 머신에 의해 판독가능한 형태로 정보를 제공(즉, 저장 및/또는 전송)하는 임의의 메커니즘을 포함한다. 예를 들어, 비일시적 머신 액세스가능 매체는 SRAM(static RAM) 또는 DRAM(dynamic RAM)과 같은 RAM(random-access memory); ROM; 자기 또는 광학 저장 매체; 플래시 메모리 디바이스들; 전기 저장 디바이스들; 광학 저장 디바이스들; 음향 저장 디바이스들; 그로부터 정보를 수신할 수 있는 비일시적 매체들과는 구별되어야 하는, 일시적(전파) 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들)로부터 수신된 정보를 보유하기 위한 다른 형태의 저장 디바이스 등을 포함한다.
로직을 본 발명의 실시예들을 수행하도록 프로그래밍하는 데 사용되는 명령어들은, DRAM, 캐시, 플래시 메모리, 또는 다른 저장소와 같은, 시스템에 있는 메모리 내에 저장될 수 있다. 게다가, 명령어들이 네트워크를 통해 또는 다른 컴퓨터 판독가능 매체를 통해 배포될 수 있다. 따라서, 머신 판독가능 매체는 플로피 디스켓들, 광학 디스크들, CD-ROM(Compact Disc, Read-Only Memory), 및 자기-광학 디스크들, ROM(Read-Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 자기 또는 광학 카드들, 플래시 메모리, 또는 전기, 광학, 음향 또는 다른 형태의 전파 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들 등)을 통해 인터넷을 거쳐 정보를 전송하는 데 사용되는 유형적 머신 판독가능 저장소 - 이들로 제한되지 않음 - 와 같은, 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하는 임의의 메커니즘을 포함할 수 있다. 그에 따라, 컴퓨터 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 전자 명령어들 또는 정보를 저장 또는 전송하기에 적당한 임의의 유형의 유형적 머신 판독가능 매체를 포함한다.
본 명세서에 전체에 걸쳐 "일부 실시예들" 또는 "실시예"에 대한 언급은 그 실시예와 관련하여 기술된 특정의 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전체에 걸쳐 여러 곳에서 나오는 "일부 실시예들에서" 또는 "실시예에서"와 같은 문구들 모두가 꼭 동일한 실시예를 지칭하는 것은 아니다. 게다가, 특정의 특징, 구조, 또는 특성이 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다.
전술한 명세서에서, 상세한 설명이 특정의 예시적인 실시예들을 참조하여 주어져 있다. 그렇지만, 첨부된 청구항들에 기재된 본 발명의 보다 광의의 사상 및 범주를 벗어나지 않고 그에 대한 다양한 수정들 및 변경들이 행해질 수 있다는 것이 명백할 것이다. 그에 따라, 본 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 한다. 게다가, 실시예 및 다른 예시적인 표현(language)의 전술한 사용이 꼭 동일한 실시예 또는 동일한 예를 지칭하지는 않지만, 상이한 그리고 별개의 실시예들은 물론 어쩌면 동일한 실시예를 지칭할 수 있다.
상세한 설명의 일부 부분들이 컴퓨터 메모리 내에서의 데이터 비트들에 대한 연산들의 알고리즘들 및 심벌 표현들로 제시되어 있다. 이 알고리즘적 설명들 및 표현들은 데이터 처리 분야의 통상의 기술자에 의해 본 기술분야의 다른 통상의 기술자에게 자신의 연구의 내용을 가장 효과적으로 전달하는데 사용되는 수단이다. 알고리즘은, 여기서 그리고 일반적으로, 원하는 결과를 가져오는 자체 일관성있는 동작들의 시퀀스인 것으로 생각된다. 동작들은 물리적 양들의 물리적 조작들을 필요로 하는 것들이다. 꼭 그럴 필요는 없지만, 보통 이 양들은 저장, 전송, 결합, 비교, 그리고 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 갖는다. 원칙적으로 통상적인 용법의 이유로 이 신호들을 비트들, 값들, 요소들, 심벌들, 문자들, 용어들, 숫자들 등으로서 지칭하는 것이 때때로 편리하다는 것이 입증되었다. 본원에 기술되는 블록들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합일 수 있다.
그렇지만, 이들 및 유사한 용어들 모두가 적절한 물리적 양들과 연관되어 있고 이 양들에 적용되는 편리한 명칭들에 불과하다는 것을 염두에 두어야 한다. 달리 구체적으로 언급하지 않는 한, 이상의 논의로부터 명백한 바와 같이, 본 설명 전체에 걸쳐, "정의", "수신", "결정", "발행", "링크", "연관", "획득", "인증", "금지", "실행", "요청", "전달" 등과 같은 용어들을 이용하는 논의들이, 컴퓨팅 시스템의 레지스터들 및 메모리들 내 에 물리적(전자적) 양들로 표현된 데이터를, 컴퓨팅 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 전송 또는 디스플레이 디바이스들 내의 물리적 양들로 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨팅 시스템 또는 유사한 전자 컴퓨팅 디바이스의 동작들 및 프로세스들을 지칭한다는 것을 잘 알 것이다.
"예" 또는 "예시적인"이라는 단어들은 예, 사례 또는 예시로서 역할한다는 것을 의미하기 위해 본원에서 사용된다. 본원에서 "예" 또는 "예시적인" 것으로 기술되는 임의의 양태 또는 설계가 다른 양태들 또는 설계들보다 양호하거나 이점이 있는 것으로 꼭 해석되는 것은 아니다. 오히려, "예" 또는 "예시적인"이라는 단어들의 사용은 개념들을 구체적인 방식으로 제시하려는 것으로 의도되어 있다. 본 출원에서 사용된 바와 같이, "또는"이라는 용어는 배타적 "또는"(exclusive "or")보다는 포함적 "또는"(inclusive "or")을 의미하는 것으로 의도되어 있다. 즉, 달리 언급되지 않거나 문맥으로부터 명확하지 않은 한, "X가 A 또는 B를 포함한다"는 자연스런 포함적 치환(natural inclusive permutation)들 중 임의의 것을 의미하는 것으로 의도되어 있다. 즉, X가 A를 포함하거나; X가 B를 포함하거나; 또는 X가 A와 B 둘 다를 포함하는 경우, 전술한 경우들 중 임의의 것 하에서 "X가 A 또는 B를 포함한다"가 충족된다. 그에 부가하여, 본 출원 및 첨부된 청구항들에서 사용되는 "한" 및 "어떤"이라는 관형사들은, 달리 명시되지 않거나 단수 형태에 관한 것으로 문맥으로부터 명백하지 않는 한, 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다. 더욱이, 본 명세서 전체에 걸쳐 "실시예" 또는 "일 실시예" 또는 "구현" 또는 "일 구현"이라는 용어의 사용은, 그것으로서 기술되지 않는 한, 동일한 실시예 또는 구현을 의미하는 것으로 의도되지 않는다. 또한, "제 1", "제 2", "제 3", "제 4" 등의 용어들은, 본원에서 사용되는 바와 같이, 상이한 요소들을 구별하는 라벨들로서 의도되어 있고, 반드시 그들의 숫자 명칭에 따른 서수 의미(ordinal meaning)를 갖는 것은 아닐 수 있다.

Claims (20)

  1. 라이브 텔레비전 브로드캐스트 스트림(live television broadcast stream)들의 인터랙티브 제어 방법으로서,
    텔레비전 브로드캐스터로부터, 미디어 컨텐츠를 포함하는 스트리밍 라이브 미디어 피드(streaming live media feed)를 미디어 장치의 데이터 처리 하드웨어에서 수신하는 단계;
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 상에 오버레이를 디스플레이하는 단계로서, 상기 오버레이는 재생 제어 옵션을 포함하고, 상기 재생 제어 옵션은 상기 텔레비전 브로드캐스터와 상기 미디어 장치 사이의 상기 라이브 미디어 피드의 중개 피드 소스(intermediary feed source)와 연관되어 있지 않으며, 상기 재생 제어 옵션은 상기 스트리밍 라이브 미디어 피드를 재생하기 위한 상기 미디어 장치의 재생 모드를 제어하도록 구성되는, 상기 디스플레이하는 단계;
    상기 미디어 장치의 상기 데이터 처리 하드웨어에서, 상기 오버레이의 상기 재생 제어 옵션의 제 1 선택 입력을 수신하는 단계;
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 재생 제어 옵션의 상기 제 1 선택 입력이 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 내의 제 1 위치에서의 빨리 감기(fast-forward) 재생 모드 또는 되감기(rewind) 재생 모드에 대응하는 것으로 판정하는 단계;
    상기 미디어 장치의 상기 데이터 처리 하드웨어에서, 제 2 선택 입력을 수신하는 단계;
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 제 2 위치에서의 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠의 적어도 하나의 제 1 프레임의 제 1 핑거프린트에 기초하여 상기 제 2 선택 입력에 대응하는 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 내의 상기 제 2 위치를 판정하는 단계;
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 제 2 위치에서의 상기 제 1 핑거프린트가 상기 제 1 위치에서의 상기 미디어 컨텐츠의 적어도 하나의 제 2 프레임의 제 2 핑거프린트와 매칭되지 않는 것으로 판정하는 단계; 및
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 스트리밍 라이브 미디어 피드 상에 타겟팅된(targeted) 오버레이 컨텐츠를 오버레이하는 단계로서, 상기 타겟팅된 오버레이 컨텐츠는 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 내의 상기 제 2 위치에서 상기 미디어 컨텐츠와 컨텍스트적으로(contextually) 관련있는 것인, 상기 오버레이하는 단계
    를 포함하는, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  2. 제 1 항에 있어서,
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 사용자 프로파일에 기초하여 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 내의 상기 제 2 위치에서 상기 미디어 컨텐츠와 상기 타겟팅된 오버레이 컨텐츠가 컨텍스트적으로 관련있는 것으로 판정하는 단계를 더 포함하는, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  3. 제 1 항에 있어서,
    상기 스트리밍 라이브 미디어 피드의 상기 중개 피드 소스는 에어리얼(aerial), 새틀라이트(satellite), 인터넷 인에이블드(internet-enabled) 또는 셋탑 박스 중 하나인, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  4. 제 1 항에 있어서,
    상기 제 2 선택 입력은 상기 제 1 선택 입력에 대해 시간적으로 후속하는 것인, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  5. 제 1 항에 있어서,
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 미디어 컨텐츠를 일정 시간 동안 버퍼링하는 단계를 더 포함하며, 상기 시간은 상기 재생 제어 옵션의 상기 제 1 선택 입력과 상기 재생 제어 옵션의 상기 제 2 선택 입력 사이의 지속기간을 갖는, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  6. 제 1 항에 있어서,
    상기 제 1 위치 및 상기 제 2 위치 각각을 판정하는 것은,
    상기 미디어 장치의 컨텐츠 피드로부터 미디어 컨텐츠에 대응하는 쿼리 핑거프린트를, 상기 미디어 장치의 상기 데이터 처리 하드웨어에서 수신하는 것으로서, 상기 쿼리 핑거프린트는 상기 컨텐츠 피드로부터의 상기 미디어 컨텐츠의 순차적인 프레임들을 나타내고, 상기 컨텐츠 피드 내의 시간적 위치에 대응하는 타임 스탬프를 포함하는, 상기 수신하는 것; 및
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 쿼리 핑거프린트가 상기 텔레비전 브로드캐스터에 의해 제공되는 상기 스트리밍 라이브 미디어 피드의 복수의 프레임 핑거프린트들 중의 적어도 하나의 프레임 핑거프린트와 매칭되는 것으로 판정하는 것으로서, 상기 매칭되는 적어도 하나의 프레임 핑거프린트는 상기 텔레비전 브로드캐스터의 각각의 채널, 상기 각각의 채널내의 각각의 미디어 프로그램, 및 상기 각각의 채널의 상기 각각의 미디어 프로그램 내의 각각의 위치와 연관된 것인, 상기 판정하는 것
    을 포함하는, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  7. 제 1 항에 있어서,
    상기 제 1 위치 및 상기 제 2 위치 각각을 판정하는 것은,
    상기 미디어 장치의 컨텐츠 피드로부터 미디어 컨텐츠에 대응하는 쿼리 핑거프린트를, 상기 미디어 장치의 상기 데이터 처리 하드웨어에서 수신하는 것으로서, 상기 쿼리 핑거프린트는 상기 컨텐츠 피드로부터의 상기 미디어 컨텐츠의 순차적인 프레임들을 나타내고, 상기 컨텐츠 피드 내의 시간적 위치에 대응하는 타임 스탬프를 포함하는, 상기 수신하는 것;
    상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 쿼리 핑거프린트가 상기 텔레비전 브로드캐스터에 의해 제공되는 상기 미디어 컨텐츠의 복수의 프레임 핑거프린트들 중의 적어도 하나의 프레임 핑거프린트와 매칭되는 것으로 판정하는 것으로서, 상기 매칭되는 적어도 하나의 프레임 핑거프린트는 상기 텔레비전 브로드캐스터의 각각의 채널과 연관된 것인, 상기 판정하는 것; 및
    상기 쿼리 핑거프린트의 상기 타임 스탬프 및 상기 각각의 채널에 대한 스케줄링 데이터에 기초하여, 상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 쿼리 핑거프린트가 상기 텔레비전 브로드캐스터로부터의 상기 라이브 미디어 피드의 미디어 프로그램 내의 각각의 위치에 대응하는 것으로 판정하는 것
    을 포함하는, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  8. 제 1 항에 있어서,
    상기 미디어 장치의 상기 데이터 처리 하드웨어로부터, 상기 제 1 위치 또는 상기 제 2 위치 중 적어도 하나를 광고 타겟터(advertisement targeter)로 전송하는 단계를 더 포함하며,
    상기 광고 타겟터는 뷰어(viewer)의 뷰잉 습관에 기초하여 상기 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하도록 구성되는, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  9. 제 1 항에 있어서,
    상기 미디어 장치의 상기 데이터 처리 하드웨어로부터, 뷰잉 이력으로서 상기 제 1 위치와 연관된 미디어 프로그램의 식별자를 광고 타겟터로 전송하는 단계를 더 포함하며, 상기 광고 타겟터는,
    상기 뷰잉 이력에 기초하여 상기 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하고; 또한
    상기 식별된 오버레이 컨텐츠를 상기 미디어 장치에 전송하도록 구성되는, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  10. 제 1 항에 있어서,
    상기 오버레이는 HTML(hypertext markup language) 오버레이를 포함하는, 라이브 텔레비전 브로드캐스트 스트림들의 인터랙티브 제어 방법.
  11. 시스템으로서,
    미디어 장치;
    상기 미디어 장치에 위치되는 데이터 처리 하드웨어; 및
    상기 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함하며,
    상기 메모리 하드웨어는, 상기 데이터 처리 하드웨어 상에서 실행될 때 상기 데이터 처리 하드웨어가 동작들을 수행하게 하는 명령어들을 저장하며, 상기 동작들은,
    텔레비전 브로드캐스터로부터 미디어 컨텐츠를 포함하는 스트리밍 라이브 미디어 피드를 수신하는 동작;
    상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 상에 오버레이를 디스플레이하는 동작으로서, 상기 오버레이는 재생 제어 옵션을 포함하고, 상기 재생 제어 옵션은 상기 텔레비전 브로드캐스터와 상기 미디어 장치 사이의 상기 라이브 미디어 피드의 중개 피드 소스와 연관되어 있지 않으며, 상기 재생 제어 옵션은 상기 스트리밍 라이브 미디어 피드를 재생하기 위한 상기 미디어 장치의 재생 모드를 제어하도록 구성되는, 상기 디스플레이하는 동작;
    상기 오버레이의 상기 재생 제어 옵션의 제 1 선택 입력을 수신하는 동작;
    상기 재생 제어 옵션의 상기 제 1 선택 입력이 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 내의 제 1 위치에서의 빨리 감기 재생 모드 또는 되감기 재생 모드에 대응하는 것으로 판정하는 동작;
    제 2 선택 입력을 수신하는 동작;
    제 2 위치에서의 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠의 적어도 하나의 제 1 프레임의 제 1 핑거프린트에 기초하여 상기 제 2 선택 입력에 대응하는 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 내의 상기 제 2 위치를 판정하는 동작;
    상기 제 2 위치에서의 상기 제 1 핑거프린트가 상기 제 1 위치에서의 상기 미디어 컨텐츠의 적어도 하나의 제 2 프레임의 제 2 핑거프린트와 매칭되지 않는 것으로 판정하는 동작; 및
    상기 스트리밍 라이브 미디어 피드 상에 타겟팅된 오버레이 컨텐츠를 오버레이하는 동작으로서, 상기 타겟팅된 오버레이 컨텐츠는 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 내의 상기 제 2 위치에서 상기 미디어 컨텐츠와 컨텍스트적으로 관련있는, 상기 오버레이하는 동작
    을 포함하는, 시스템.
  12. 제 11 항에 있어서,
    상기 동작들은 사용자 프로파일에 기초하여 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 내의 상기 제 2 위치에서 상기 미디어 컨텐츠와 상기 타겟팅된 오버레이 컨텐츠가 컨텍스트적으로 관련있는 것으로 판정하는 동작을 더 포함하는, 시스템.
  13. 제 11 항에 있어서,
    상기 스트리밍 라이브 미디어 피드의 상기 중개 피드 소스는 에어리얼, 새틀라이트, 인터넷 인에이블드 또는 셋탑 박스 중 하나인, 시스템.
  14. 제 11 항에 있어서,
    상기 제 2 선택 입력은 상기 제 1 선택 입력에 대해 시간적으로 후속하는 것인, 시스템.
  15. 제 11 항에 있어서,
    상기 동작들은 상기 미디어 컨텐츠를 일정 시간 동안 버퍼링하는 동작을 더 포함하며, 상기 시간은 상기 재생 제어 옵션의 상기 제 1 선택 입력과 상기 재생 제어 옵션의 상기 제 2 선택 입력 사이의 지속기간을 갖는, 시스템.
  16. 제 11 항에 있어서,
    상기 제 1 위치 및 상기 제 2 위치 각각을 판정하는 동작은,
    상기 미디어 장치의 컨텐츠 피드로부터 미디어 컨텐츠에 대응하는 쿼리 핑거프린트를 수신하는 것으로서, 상기 쿼리 핑거프린트는 상기 컨텐츠 피드로부터의 상기 미디어 컨텐츠의 순차적인 프레임들을 나타내고, 상기 컨텐츠 피드 내의 시간적 위치에 대응하는 타임 스탬프를 포함하는, 상기 수신하는 것; 및
    상기 쿼리 핑거프린트가 상기 텔레비전 브로드캐스터에 의해 제공되는 상기 스트리밍 라이브 미디어 피드의 복수의 프레임 핑거프린트들 중의 적어도 하나의 프레임 핑거프린트와 매칭되는 것으로 판정하는 것으로서, 상기 매칭되는 적어도 하나의 프레임 핑거프린트는 상기 텔레비전 브로드캐스터의 각각의 채널, 상기 각각의 채널내의 각각의 미디어 프로그램, 및 상기 각각의 채널의 상기 각각의 미디어 프로그램 내의 각각의 위치와 연관된 것인, 상기 판정하는 것
    을 포함하는, 시스템.
  17. 제 11 항에 있어서,
    상기 제 1 위치 및 상기 제 2 위치 각각을 결정하는 동작은,
    상기 미디어 장치의 컨텐츠 피드로부터 미디어 컨텐츠에 대응하는 쿼리 핑거프린트를 수신하는 것으로서, 상기 쿼리 핑거프린트는 상기 컨텐츠 피드로부터의 상기 미디어 컨텐츠의 순차적인 프레임들을 나타내고, 상기 컨텐츠 피드 내의 시간적 위치에 대응하는 타임 스탬프를 포함하는, 상기 수신하는 것;
    상기 쿼리 핑거프린트가 상기 텔레비전 브로드캐스터에 의해 제공되는 상기 미디어 컨텐츠의 복수의 프레임 핑거프린트들 중의 적어도 하나의 프레임 핑거프린트와 매칭되는 것으로 판정하는 것으로서, 상기 매칭되는 적어도 하나의 프레임 핑거프린트는 상기 텔레비전 브로드캐스터의 각각의 채널과 연관된 것인, 상기 판정하는 것; 및
    상기 쿼리 핑거프린트의 상기 타임 스탬프 및 상기 각각의 채널에 대한 스케줄링 데이터에 기초하여, 상기 쿼리 핑거프린트가 상기 텔레비전 브로드캐스터로부터의 상기 라이브 미디어 피드의 미디어 프로그램 내의 각각의 위치에 대응하는 것으로 판정하는 것
    을 포함하는, 시스템.
  18. 제 11 항에 있어서,
    상기 동작들은 상기 제 1 위치 또는 상기 제 2 위치 중 적어도 하나를 광고 타겟터로 전송하는 동작을 더 포함하며,
    상기 광고 타겟터는 뷰어의 뷰잉 습관에 기초하여 상기 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하도록 구성되는, 시스템.
  19. 제 11 항에 있어서,
    상기 동작들은, 뷰잉 이력으로서 상기 제 1 위치와 연관된 미디어 프로그램의 식별자를 광고 타겟터로 전송하는 단계를 더 포함하며, 상기 광고 타겟터는,
    상기 뷰잉 이력에 기초하여 상기 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하고; 또한
    상기 식별된 오버레이 컨텐츠를 상기 미디어 장치에 전송하도록 구성되는, 시스템.
  20. 제 11 항에 있어서,
    상기 오버레이는 HTML(hypertext markup language) 오버레이를 포함하는, 시스템.
KR1020197027609A 2017-03-24 2018-03-23 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현 KR102117922B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762476159P 2017-03-24 2017-03-24
US201762476152P 2017-03-24 2017-03-24
US62/476,159 2017-03-24
US62/476,152 2017-03-24
PCT/US2018/024165 WO2018175979A1 (en) 2017-03-24 2018-03-23 Enabling interactive control of live television broadcast streams

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207015181A Division KR102227705B1 (ko) 2017-03-24 2018-03-23 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현

Publications (2)

Publication Number Publication Date
KR20190113987A KR20190113987A (ko) 2019-10-08
KR102117922B1 true KR102117922B1 (ko) 2020-06-04

Family

ID=62017607

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207015181A KR102227705B1 (ko) 2017-03-24 2018-03-23 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현
KR1020197027609A KR102117922B1 (ko) 2017-03-24 2018-03-23 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207015181A KR102227705B1 (ko) 2017-03-24 2018-03-23 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현

Country Status (3)

Country Link
US (2) US10182263B2 (ko)
KR (2) KR102227705B1 (ko)
WO (1) WO2018175979A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107277577A (zh) * 2017-07-14 2017-10-20 深圳创维-Rgb电子有限公司 广告的推送方法、装置及计算机可读存储介质
US11638052B2 (en) * 2021-05-28 2023-04-25 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to identify candidates for media asset qualification

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153990A1 (en) 2008-12-12 2010-06-17 Nortel Networks Limited Content overlays in on-demand streaming applications

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080282295A1 (en) 2005-04-18 2008-11-13 Home Box Office, Inc. Pausing and Resuming Content Streaming On Wireless Devices
US7996875B2 (en) 2008-05-20 2011-08-09 Microsoft Corporation Adaptive timeshift service
US8463108B2 (en) 2009-01-06 2013-06-11 Microsoft Corporation Client-side ad insertion during trick mode playback
JP5087099B2 (ja) 2010-03-26 2012-11-28 楽天株式会社 コンテンツ送信装置、再生制御方法及び再生制御プログラム
JP2012004902A (ja) 2010-06-17 2012-01-05 Toshiba Corp 記録制御装置及び記録制御方法
US8666818B2 (en) * 2011-08-15 2014-03-04 Logobar Innovations, Llc Progress bar is advertisement
KR20130088662A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 디지털 미디어 콘텐트를 통한 부가 정보 제공 장치, 방법 및 시스템
KR101694967B1 (ko) 2012-02-02 2017-01-10 한국전자통신연구원 디지털 방송 시스템에서 연동형 광고의 서비스 방법 및 장치
US9003440B2 (en) * 2012-02-07 2015-04-07 Turner Broadcasting System, Inc. Method and system for synchronization of messages to content utilizing automatic content recognition
JP2013192062A (ja) 2012-03-14 2013-09-26 Toshiba Corp 映像配信システム、映像配信装置、映像配信方法およびプログラム
US9167276B2 (en) * 2012-12-28 2015-10-20 Turner Broadcasting System, Inc. Method and system for providing and handling product and service discounts, and location based services (LBS) in an automatic content recognition based system
KR101566231B1 (ko) 2013-10-16 2015-11-09 한양대학교 에리카산학협력단 스마트 디스플레이
US9274673B2 (en) 2013-12-31 2016-03-01 Google Inc. Methods, systems, and media for rewinding media content based on detected audio events
US20160014477A1 (en) * 2014-02-11 2016-01-14 Benjamin J. Siders Systems and Methods for Synchronized Playback of Social Networking Content
JP6468041B2 (ja) 2015-04-13 2019-02-13 富士電機株式会社 不純物導入装置、不純物導入方法及び半導体素子の製造方法
US10142585B2 (en) * 2015-04-28 2018-11-27 Rovi Guides, Inc. Methods and systems for synching supplemental audio content to video content
US9516377B1 (en) 2015-06-12 2016-12-06 Sorenson Media, Inc. Detecting channel change in automatic content recognition fingerprint matching

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153990A1 (en) 2008-12-12 2010-06-17 Nortel Networks Limited Content overlays in on-demand streaming applications

Also Published As

Publication number Publication date
KR102227705B1 (ko) 2021-03-15
US11172262B2 (en) 2021-11-09
WO2018175979A1 (en) 2018-09-27
US20180279005A1 (en) 2018-09-27
US20200021858A1 (en) 2020-01-16
KR20190113987A (ko) 2019-10-08
KR20200063269A (ko) 2020-06-04
US10182263B2 (en) 2019-01-15

Similar Documents

Publication Publication Date Title
JP7128255B2 (ja) 自動コンテンツ認識フィンガープリントシーケンス照合
JP7216756B2 (ja) 自動コンテンツ認識のフィンガープリントマッチングにおけるチャンネル変更の検出
US11064253B2 (en) Content management of a content feed
US11140435B2 (en) Interactive overlays to determine viewer data
CN114501063A (zh) 使用覆盖的定向内容放置
KR102117922B1 (ko) 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현
US11563988B2 (en) Employing automatic content recognition to allow resumption of watching interrupted media program from television broadcast
KR102256319B1 (ko) 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현

Legal Events

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