KR20210030494A - Enabling interactive control of live television broadcast streams - Google Patents

Enabling interactive control of live television broadcast streams Download PDF

Info

Publication number
KR20210030494A
KR20210030494A KR1020217007089A KR20217007089A KR20210030494A KR 20210030494 A KR20210030494 A KR 20210030494A KR 1020217007089 A KR1020217007089 A KR 1020217007089A KR 20217007089 A KR20217007089 A KR 20217007089A KR 20210030494 A KR20210030494 A KR 20210030494A
Authority
KR
South Korea
Prior art keywords
content
overlay
media feed
streaming live
live media
Prior art date
Application number
KR1020217007089A
Other languages
Korean (ko)
Other versions
KR102256319B1 (en
Inventor
매튜 그로버
Original Assignee
더 닐슨 컴퍼니 (유에스) 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 더 닐슨 컴퍼니 (유에스) 엘엘씨 filed Critical 더 닐슨 컴퍼니 (유에스) 엘엘씨
Priority claimed from KR1020207015181A external-priority patent/KR102227705B1/en
Publication of KR20210030494A publication Critical patent/KR20210030494A/en
Application granted granted Critical
Publication of KR102256319B1 publication Critical patent/KR102256319B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/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/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/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)
  • 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 위치에서 재생 모드에 대응하는 것으로 결정하는 단계를 더 포함한다. 또한, 이 방법은 스트리밍 라이브 미디어 피드 상에 타겟팅된 오버레이 컨텐츠를 오버레이하는 단계를 포함한다.The present invention provides a method for interactive control of a live television broadcast stream. The method includes receiving a streaming live media feed 103 from a television broadcaster 102 and displaying an overlay 212 on the media content M of the streaming live media feed 103. The overlay 212 includes playback control options that are not related to an intermediary feed source of the live media feed between the television broadcaster and the media device 115. The method comprises receiving a first selection input of the playback control option and determining that the first fingerprint 128, 208, 306 did not match the second fingerprint 128, 208, 306, thereby streaming the selection input. And determining that the first location in the media content M of the live media feed corresponds to the playback mode. In addition, the method includes overlaying the targeted overlay content on the streaming live media feed.

Figure P1020217007089
Figure P1020217007089

Description

라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어 구현{ENABLING INTERACTIVE CONTROL OF LIVE TELEVISION BROADCAST STREAMS}Implementation of interactive control of live television broadcast streams {ENABLING INTERACTIVE CONTROL OF LIVE TELEVISION BROADCAST STREAMS}

본 발명은 라이브 텔레비전 브로드캐스트 스트림(live television broadcast stream)들의 인터랙티브 제어를 가능하게 하는 자동 컨텐츠 인식을 이용하는 것에 관한 것이다.The present invention relates to the use of automatic content recognition that enables interactive control of live television broadcast streams.

스마트 텔레비전(TV)과 같은 미디어 소비 장치는 브로드캐스트 디지털 컨텐츠에 액세스하여 데이터 네트워크(예컨대, 인터넷)로부터 스트리밍 미디어와 같은 데이터를 수신할 수 있다. 스트리밍 미디어는 요청 시에 전화선, 케이블, 인터넷 등을 통해 영화나 뉴스와 같은 미디어 컨텐츠를 최종 사용자에게 제공할 수 있는 서비스를 말한다. 예를 들어, 사용자는 거주지를 떠나지 않고도 영화를 볼 수 있다. 또한, 사용자는 학교나 교육 기관에 실제 참석하지 않고서도 비디오 강의와 같은 다양한 유형의 교육 컨텐츠에 액세스할 수 있다.A media consuming device, such as a smart television (TV), can access broadcast digital content and receive data, such as streaming media, from a data network (eg, the Internet). Streaming media refers to a service capable of providing media content such as movies and news to end users through telephone lines, cables, and the Internet upon request. For example, users can watch movies without leaving their residence. In addition, users can access various types of educational content, such as video lectures, without actually attending a school or educational institution.

미디어 소비 장치(또는 간단히 "미디어 장치")의 수가 계속 증가함에 따라, 비디오 컨텐츠 생성 및 전송이 마찬가지로 증가할 수 있다. 스트리밍 미디어에 액세스하기 위해 미디어 장치(예를 들면, 스마트 폰, 태블릿 및 스마트 텔레비전)의 사용이 증가함에 따라, 컨텐츠 또는 네트워크 공급자들(예를 들면, 로컬 브로드캐스터, 다중 채널 네트워크 및 기타 컨텐츠 소유자/배포자)은, 스트리밍 미디어(예를 들면, 미디어 프로그램)를 사용하는 뷰어들에게 상황에 맞는 내용물을 배포할 수 있다. 예를 들어, 로컬 브로드캐스터는 스트리밍 미디어와 상황적으로 관련된 광고 및 인터랙티브 컨텐츠를 포함할 수 있다.As the number of media consuming devices (or simply "media devices") continues to increase, video content creation and delivery may likewise increase. As the use of media devices (e.g., smart phones, tablets and smart televisions) to access streaming media increases, content or network providers (e.g., local broadcasters, multi-channel networks and other content owners/ Distributor) can distribute content appropriate to the context to viewers using streaming media (eg, media programs). For example, local broadcasters may include advertisements and interactive content contextually related to streaming media.

본 발명의 일 양태는 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어를 가능하게 하기 위해 자동 컨텐츠 인식을 이용하는 방법을 제공한다. 이 방법은 미디어 장치의 데이터 처리 하드웨어에서 텔레비전 브로드캐스터로부터 스트리밍 라이브 미디어 피드를 수신하는 단계를 포함한다. 스트리밍 라이브 미디어 피드는 미디어 컨텐츠를 포함한다. 이 방법은 또한 미디어 장치의 데이터 처리 하드웨어에 의해 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 상에 오버레이를 디스플레이하는 단계를 포함한다. 오버레이는 재생 제어 옵션을 포함하며 텔레비전 브로드캐스터와 미디어 장치 사이의 라이브 미디어 피드의 중개 피드 소스(intermediary feed source)와 연관되어 있지 않다. 재생 제어 옵션은 또한 스트리밍 라이브 미디어 피드를 재생하기 위한 미디어 장치의 재생 모드를 제어하도록 구성된다. 이 방법은 미디어 장치의 데이터 처리 하드웨어에서 오버레이의 재생 제어 옵션의 제 1 선택 입력을 수신하는 단계를 더 포함한다. 이 방법은 또한 미디어 장치의 데이터 처리 하드웨어에 의해, 재생 제어 옵션의 선택 입력이 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 1 위치에서의 빨리 감기 재생 모드 또는 되감기 재생 모드에 대응하는 것으로 결정하는 단계를 포함한다. 또한, 이 방법은 미디어 장치의 데이터 처리 하드웨어에서 제 2 선택 입력을 수신하는 단계를 포함한다. 이 방법은 또한 미디어 장치의 데이터 처리 하드웨어에 의해 제 2 위치에서의 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 중 적어도 하나의 제 1 프레임의 제 1 핑거프린트에 기초하여 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치를 결정하는 단계를 포함한다. 제 2 위치는 제 2 선택 입력에 대응한다. 이 방법은 미디어 장치에서의 데이터 처리 하드웨어에 의해, 제 2 위치에서의 제 1 핑거프린트가 제 1 위치에서의 미디어 컨텐츠의 적어도 하나의 제 2 프레임의 제 2 핑거프린트와 매칭되지 않는 것으로 판정하는 단계를 더 포함한다. 또한, 이 방법은 미디어 장치의 데이터 처리 하드웨어에 의해 스트리밍 라이브 미디어 피드 상에 타겟팅된 오버레이 컨텐츠를 오버레이하는 단계를 포함한다. 타겟팅된 오버레이 컨텐츠는 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치에서의 미디어 컨텐츠와 컨텍스트적으로(contextually) 관련있다.One aspect of the present invention provides a method of using automatic content recognition to enable interactive control of a live television broadcast stream. The method includes receiving a streaming live media feed from a television broadcaster in data processing hardware of the media device. Streaming live media feeds contain media content. The method also includes displaying the overlay on the media content of the streaming live media feed by the data processing hardware of the media device. The overlay includes a playback control option and is not associated with an intermediate feed source of the live media feed between the television broadcaster and the media device. The playback control option is also configured to control the playback mode of the media device for playing the streaming live media feed. The method further includes receiving a first selection input of a playback control option of the overlay at data processing hardware of the media device. The method also includes determining, by the data processing hardware of the media device, that the selection input of the playback control option corresponds to a fast forward playback mode or a rewind playback mode at a first location within the media content of the streaming live media feed. do. Further, the method includes receiving a second selection input at data processing hardware of the media device. The method further comprises a second location within the media content of the streaming live media feed based on the first fingerprint of at least one first frame of the media content of the streaming live media feed at the second location by the data processing hardware of the media device. It includes the step of determining. The second position corresponds to the second selection input. The method comprises determining, by data processing hardware in the media device, that a first fingerprint at a second location does not match a second fingerprint of at least one second frame of media content at the first location. It includes more. The method also includes overlaying the targeted overlay content onto the streaming live media feed by the data processing hardware of the media device. The targeted overlay content is contextually related to the media content at a second location within the media content of the streaming live media feed.

본 발명의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 이 방법은 미디어 장치의 데이터 처리 하드웨어에 의해, 사용자 프로파일에 기초하여 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치에서 미디어 컨텐츠와 컨텍스트적으로 관련되는 것으로 결정하는 단계를 더 포함한다. 일부 예들에서, 스트리밍 라이브 미디어 피드의 중개 피드 소스는 에어리얼(aerial), 새틀라이트(satellite), 인터넷 인에이블드(internet-enabled) 또는 셋탑 박스 중 하나이다. 일부 구현들에서, 제 2 선택 입력은 제 1 선택 입력에 시간적으로 후속된다.Implementations of the invention may include one or more of the following optional features. In some implementations, the method further includes determining, by the data processing hardware of the media device, to be contextually related to the media content at a second location within the media content of the streaming live media feed based on the user profile. . In some examples, the intermediate feed source of the streaming live media feed is one of aerial, satellite, internet-enabled, or set-top box. In some implementations, the second selection input is temporally followed by the first selection input.

일부 예들에서, 이 방법은 미디어 장치의 데이터 처리 하드웨어에 의해 미디어 컨텐츠를 일정 시간 동안 버퍼링하는 단계를 포함한다. 이 시간은 재생 제어 옵션의 제 1 선택 입력과 재생 제어 옵션의 제 2 선택 입력 사이의 지속 기간일 수 있다.In some examples, the method includes buffering the media content for a period of time by the data processing hardware of the media device. This time may be a duration between the first selection input of the reproduction control option and the second selection input of the reproduction control option.

일부 구현들에서, 제 1 위치 및 제 2 위치 각각을 결정하는 단계는 미디어 장치의 데이터 처리 하드웨어에서 미디어 장치의 컨텐츠 피드로부터 미디어 컨텐츠에 대응하는 쿼리 핑거프린트를 수신하는 단계를 포함한다. 여기서, 쿼리 핑거프린트는 컨텐츠 피드로부터 미디어 컨텐츠의 순차적인 프레임을 나타내며 컨텐츠 피드 내의 시간적 위치에 대응하는 타임 스탬프를 포함한다. 이들 구현들 중 일부에서, 제 1 위치 및 제 2 위치 각각을 결정하는 단계는 또한 미디어 장치의 데이터 처리 하드웨어에 의해, 쿼리 핑거프린트가 텔레비전 브로드캐스터에 의해 제공되는 스트리밍 라이브 미디어 피드의 복수의 프레임 핑거프린트 중 적어도 하나의 프레임 핑거프린트와 매칭되는 것으로 판정하는 단계를 포함한다. 매칭된 적어도 하나의 프레임 핑거프린트는 텔레비전 브로드캐스터의 각 채널, 각 채널 내의 각 미디어 프로그램 및 각 채널의 각 미디어 프로그램 내의 각각의 위치와 연관된 것일 수 있다. 일부 구현들에서, 매칭된 적어도 하나의 프레임 핑거프린트가 텔레비전 브로드캐스터의 각각의 채널과 연관될 때, 제 1 위치 및 제 2 위치 각각을 결정하는 단계는 미디어 장치의 데이터 처리 하드웨어에 의해, 쿼리 핑거프린트는 쿼리 핑거프린트의 타임 스탬프 및 각각의 채널에 대한 스케줄링 데이터에 기초하여 텔레비전 브로드캐스터로부터의 라이브 미디어 피드의 미디어 프로그램 내의 각각의 위치에 대응하는 것으로 결정하는 것을 더 포함한다.In some implementations, determining each of the first location and the second location includes receiving, at data processing hardware of the media device, a query fingerprint corresponding to the media content from a content feed of the media device. Here, the query fingerprint represents sequential frames of media content from the content feed and includes a time stamp corresponding to a temporal position in the content feed. In some of these implementations, the step of determining each of the first and second locations can also be performed by the data processing hardware of the media device, wherein the query fingerprint is provided by the television broadcaster. And determining that it matches at least one frame fingerprint of the prints. The matched at least one frame fingerprint may be associated with each channel of the television broadcaster, each media program within each channel, and each location within each media program of each channel. In some implementations, when the matched at least one frame fingerprint is associated with each channel of the television broadcaster, determining each of the first and second positions is performed by the data processing hardware of the media device, by means of the data processing hardware of the media device. The printing further includes determining to correspond to each location in the media program of the live media feed from the television broadcaster based on the time stamp of the query fingerprint and the scheduling data for each channel.

선택적으로, 이 방법은 미디어 장치의 데이터 처리 하드웨어로부터 제 1 위치 또는 제 2 위치 중 적어도 하나를 광고 타겟터로 전송하는 단계를 더 포함할 수 있다. 광고 타겟터는 뷰어의 뷰잉 습관에 기초하여 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하도록 구성될 수 있다. 일부 예들에서, 이 방법은 미디어 장치의 데이터 처리 하드웨어로부터, 뷰잉 이력으로서 제 1 위치와 연관된 미디어 프로그램의 식별자를 광고 타겟터로 전송하는 단계를 포함한다. 여기서 광고 타겟터는 뷰잉 이력에 기초하여 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하고 식별된 오버레이 컨텐츠를 미디어 장치에 전송하도록 구성될 수 있다. 일부 구성에서 오버레이에는 하이퍼 텍스트 마크업 언어 브라우저가 포함된다.Optionally, the method may further comprise transmitting at least one of the first location or the second location from the data processing hardware of the media device to the advertisement targeter. The ad targeter may be configured to identify overlay content for the viewer of the streaming live media feed based on the viewer's viewing habits. In some examples, the method includes transmitting, from the data processing hardware of the media device, an identifier of the media program associated with the first location as a viewing history to the advertisement targeter. Here, the advertisement targeter may be configured to identify the overlay content for the viewer of the streaming live media feed based on the viewing history and transmit the identified overlay content to the media device. In some configurations, the overlay includes a hypertext markup language browser.

본 발명의 다른 양태는 라이브 텔레비전 브로드캐스트 스트림의 인터랙티브 제어를 가능하게 하기 위해 자동 컨텐츠 인식을 이용하는 시스템을 제공한다. 이 시스템은 데이터 처리 하드웨어 및 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는 데이터 처리 하드웨어 상에서 실행될 때 데이터 처리 하드웨어가 동작들을 수행하게 하는 명령어를 저장한다. 이 동작들은 텔레비전 브로드캐스터로부터 스트리밍 라이브 미디어 피드를 수신하는 동작을 포함한다. 스트리밍 라이브 미디어 피드는 미디어 컨텐츠를 포함한다. 이 동작들은 또한 스트리밍 라이브 미디어 피드의 미디어 컨텐츠에 오버레이를 표시하는 것을 포함한다. 오버레이는 재생 제어 옵션을 포함하고 텔레비전 브로드캐스터와 미디어 장치 사이의 라이브 미디어 피드의 중개 피드 소스와 연관되어 있지 않다. 재생 제어 옵션은 또한 스트리밍 라이브 미디어 피드를 재생하기 위한 미디어 장치의 재생 모드를 제어하도록 구성된다. 이 동작들은 오버레이의 재생 제어 옵션의 제 1 선택 입력을 수신하는 동작을 더 포함한다. 이 동작들은 또한 재생 제어 옵션의 선택 입력이 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 1 위치에서의 빨리 감기 재생 모드 또는 되감기 재생 모드에 대응한다고 결정하는 동작을 포함한다. 또한, 이 동작들은 제 2 선택 입력을 수신하는 동작을 포함한다. 이 동작들은 또한 제 2 위치에서의 스트리밍 라이브 미디어 피드의 미디어 컨텐츠의 미디어 컨텐츠 중 적어도 하나의 제 1 프레임의 제 1 핑거프린트에 기초하여 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치를 결정하는 동작을 포함한다. 제 2 위치는 제 2 선택 입력에 대응한다. 이 동작들은 제 2 위치에서의 제 1 핑거프린트가 제 1 위치에서의 미디어 컨텐츠의 적어도 하나의 제 2 프레임의 제 2 핑거프린트와 매칭되지 않는 것으로 결정하는 동작을 더 포함한다. 또한, 이 동작들은 스트리밍 라이브 미디어 피드 상에 타겟팅된 오버레이 컨텐츠를 오버레이하는 것을 포함한다. 타겟팅된 오버레이 컨텐츠는 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치에서의 미디어 컨텐츠와 컨텍스트적으로 관련있다.Another aspect of the invention provides a system that uses automatic content recognition to enable interactive control of a live television broadcast stream. The system includes data processing hardware and memory hardware in communication with the data processing hardware. The memory hardware stores instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations. These operations include receiving a streaming live media feed from a television broadcaster. Streaming live media feeds contain media content. These operations also include displaying an overlay on the media content of the streaming live media feed. The overlay includes a playback control option and is not associated with an intermediary feed source of the live media feed between the television broadcaster and the media device. The playback control option is also configured to control the playback mode of the media device for playing the streaming live media feed. These operations further include receiving a first selection input of a playback control option of the overlay. These operations also include determining that the selection input of the playback control option corresponds to a fast forward playback mode or a rewind playback mode at a first location within the media content of the streaming live media feed. Further, these operations include receiving a second selection input. These operations also include determining a second location within the media content of the streaming live media feed based on a first fingerprint of a first frame of at least one of the media content of the media content of the streaming live media feed at the second location. Includes. The second position corresponds to the second selection input. The operations further include determining that the first fingerprint at the second location does not match a second fingerprint of at least one second frame of the media content at the first location. Additionally, these operations include overlaying the targeted overlay content on the streaming live media feed. The targeted overlay content is contextually related to the media content at a second location within the media content of the streaming live media feed.

본 발명의 구현들은 다음의 선택적 특징들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 동작들은 사용자 프로파일에 기초하여 스트리밍 라이브 미디어 피드의 미디어 컨텐츠 내의 제 2 위치에서 미디어 컨텐츠와 컨텍스트적으로 관련있는 것으로 결정하는 동작을 더 포함한다. 일부 예들에서, 스트리밍 라이브 미디어 피드의 중개 피드 소스는 에어리얼, 새틀라이트, 인터넷 인에이블드 또는 셋탑 박스 중 하나이다. 일부 구현들에서, 제 2 선택 입력은 제 1 선택 입력에 시간적으로 후속된다.Implementations of the invention may include one or more of the following optional features. In some implementations, the operations further include determining to be contextually related to the media content at a second location within the media content of the streaming live media feed based on the user profile. In some examples, the intermediary feed source of the streaming live media feed is one of aerial, satellite, internet enabled, or set-top box. In some implementations, the second selection input is temporally followed by the first selection input.

일부 예들에서, 이 동작들은 일정 시간 동안 미디어 컨텐츠를 버퍼링하는 동작을 포함한다. 이 시간은 재생 제어 옵션의 제 1 선택 입력과 재생 제어 옵션의 제 2 선택 입력 사이의 지속 기간일 수 있다.In some examples, these operations include buffering the media content for a period of time. This time may be a duration between the first selection input of the reproduction control option and the second selection input of the reproduction control option.

일부 구현들에서, 제 1 위치 및 제 2 위치 각각을 결정하는 동작은 미디어 장치에서 컨텐츠 피드로부터 미디어 컨텐츠에 대응하는 쿼리 핑거프린트를 수신하는 동작을 포함한다. 여기서, 쿼리 핑거프린트는 컨텐츠 피드로부터 미디어 컨텐츠의 순차적인 프레임을 나타내며 컨텐츠 피드 내의 시간적 위치에 대응하는 타임 스탬프를 포함한다. 이들 구현들 중 일부에서, 제 1 위치 및 제 2 위치 각각을 결정하는 동작은 또한 쿼리 핑거프린트가 텔레비전 브로드캐스트 자에 의해 제공되는 스트리밍 라이브 미디어 피드의 복수의 프레임 핑거프린트 중 적어도 하나의 프레임 핑거프린트와 매칭되는 것으로 판정하는 동작을 포함한다. 매칭된 적어도 하나의 프레임 핑거프린트는 텔레비전 브로드캐스터의 각 채널, 각 채널 내의 각 미디어 프로그램 및 각 채널의 각 미디어 프로그램 내의 각각의 위치와 연관된 것일 수 있다. 일부 구현들에서, 매칭된 적어도 하나의 프레임 핑거프린트가 텔레비전 브로드캐스터의 각각의 채널과 연관될 때, 쿼리 핑거프린트의 타임 스탬프 및 각각의 채널에 대한 스케줄링 데이터에 기초하여, 쿼리 핑거프린트가 텔레비전 브로드캐스터로부터의 라이브 미디어 피드의 미디어 프로그램 내의 각각의 위치에 대응하는 것으로 판정하는 것을 포함한다.In some implementations, determining each of the first location and the second location includes receiving a query fingerprint corresponding to the media content from the content feed at the media device. Here, the query fingerprint represents sequential frames of media content from the content feed and includes a time stamp corresponding to a temporal position in the content feed. In some of these implementations, the act of determining each of the first and second locations also includes a query fingerprint of at least one of a plurality of frame fingerprints of the streaming live media feed provided by the television broadcaster. And determining that it matches with. The matched at least one frame fingerprint may be associated with each channel of the television broadcaster, each media program within each channel, and each location within each media program of each channel. In some implementations, when the matched at least one frame fingerprint is associated with each channel of the television broadcaster, based on the time stamp of the query fingerprint and the scheduling data for each channel, the query fingerprint is broadcast to the television. And determining that the live media feed from the caster corresponds to each location in the media program.

선택적으로, 이 동작들은 제 1 위치 또는 제 2 위치 중 적어도 하나를 광고 타겟터로 전송하는 동작을 더 포함할 수 있다. 광고 타겟터는 뷰어의 뷰잉 습관에 기초하여 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하도록 구성될 수 있다. 일부 예들에서, 이 동작들은 뷰잉 이력으로서 제 1 위치와 관련된 미디어 프로그램의 식별자를 광고 타겟터로 전송하는 동작을 포함한다. 여기서, 광고 타겟터는 뷰잉 이력에 기초하여 스트리밍 라이브 미디어 피드의 뷰어에 대한 오버레이 컨텐츠를 식별하고 식별된 오버레이 컨텐츠를 미디어 장치로 통신하도록 구성될 수 있다. 일부 구성에서 오버레이에는 하이퍼 텍스트 마크업 언어 브라우저가 포함된다.Optionally, these operations may further include transmitting at least one of the first location or the second location to the advertisement targeter. The ad targeter may be configured to identify overlay content for the viewer of the streaming live media feed based on the viewer's viewing habits. In some examples, these operations include sending an identifier of the media program associated with the first location as a viewing history to the ad targeter. Here, the advertisement targeter may be configured to identify the overlay content for the viewer of the streaming live media feed based on the viewing history and communicate the identified overlay content to the media device. In some configurations, the overlay includes a hypertext markup language browser.

본 발명의 하나 이상의 구현의 세부 사항은 첨부 도면 및 이하의 설명에서 기술된다. 다른 양태들, 특징들 및 장점들은 상세한 설명 및 도면들 및 청구항들로부터 명백할 것이다.The details of one or more implementations of the invention are set forth in the accompanying drawings and the description below. Other aspects, features and advantages will be apparent from the detailed description and drawings and claims.

도 1은 컨텐츠 분배 네트워크의 예시적인 시스템 다이어그램의 개략도를 도시한 것이다.
도 2는 오버레이 컨텐츠를 클라이언트 장치에 제공하기 위한 컨텐츠 매니저의 예의 개략도를 도시한 것이다.
도 3은 미디어 컨텐츠를 핑거프린팅하고 나중에 중단된 프로그램의 전달을 제어하는데 사용되는 자동 컨텐츠 인식(ACR) 컨텐츠 매니저의 예시적인 시스템 다이어그램의 개략도를 도시한 것이다.
도 4는 대응하는 미디어 프로그램을 식별하기 위한 예시적인 ACR 매칭 방법의 흐름도를 도시한 것이다.
도 5는 미디어 프로그램의 중단을 검출하고 미디어 프로그램이 이전에 스트리밍된 채널로 돌아 왔을 때 미디어 프로그램을 계속 뷰잉할 수 있는 옵션을 제공하는 예시적인 ACR 방법의 흐름도를 도시한 것이다.
도 6은 라이브 미디어 피드의 전달 타이밍을 제어하기 위해 미디어 장치 상에 옵션을 제공하는 ACR의 예시적인 방법의 흐름도를 도시한 것이다.
도 7은 머신이 본 명세서에서 논의된 임의의 하나 이상의 방법을 수행하게 하는 명령어 세트가 실행될 수 있는 컴퓨터 시스템의 예시적인 형태의 머신의 예시적인 개략도를 도시한 것이다.
다양한 도면에서 유사한 참조 부호는 유사한 요소를 나타낸다.
1 shows a schematic diagram of an exemplary system diagram of a content distribution network.
2 shows a schematic diagram of an example of a content manager for providing overlay content to a client device.
FIG. 3 shows a schematic diagram of an exemplary system diagram of an automatic content recognition (ACR) content manager used to fingerprint media content and later control the delivery of interrupted programs.
4 shows a flow diagram of an exemplary ACR matching method for identifying a corresponding media program.
5 shows a flow diagram of an exemplary ACR method that detects interruption of a media program and provides an option to continue viewing the media program when the media program returns to a previously streamed channel.
6 shows a flow diagram of an exemplary method of ACR providing options on a media device to control delivery timing of a live media feed.
7 shows an exemplary schematic diagram of a machine in an exemplary form of a computer system on which a set of instructions may be executed that causes the machine to perform any one or more methods discussed herein.
Like reference numerals in the various drawings indicate like elements.

텔레비전(TV) 또는 인터넷 쇼 브로드캐스팅과 같은 미디어 컨텐츠 브로드캐스팅 또는 스트리밍은, 디지털 미디어 엔터테인먼트를 얻기 위해 계속 인기를 얻고 있는 미디어 소스이다. 이러한 미디어 컨텐츠를 찾는 많은 사용자는 예를 들어 셋탑 박스, 에어리얼 안테나, 위성 접시 또는 스마트 TV나 기타 미디어 장치를 포함하는 인터넷 가능 장치를 포함하는, 브로드캐스트되는 텔레비전 컨텐츠를 스트리밍하기 위한 각종 유형의 미디어 장치를 점점 더 많이 사용하고 있다. 동일한 TV 채널이 상이한 미디어 프로그램에 대한 채널 스케줄에 따라 이들 미디어 장치 중 임의의 것으로(통해) 스트리밍될 수 있다. 지금까지, 텔레비전 브로드캐스트의 소스와 상관없이, 미디어 프로그램 시청 중단을 감지하고 미디어 장치가 동일한 채널로 돌아올 때 뷰어가 해당 미디어 프로그램으로 되돌아갈 수 있는 방법을 제공하는 미디어 장치 수준의 방법은 존재하지 않았다.Broadcasting or streaming media content, such as television (TV) or Internet show broadcasting, is a media source that continues to gain popularity for obtaining digital media entertainment. Many users looking for such media content are of various types of media devices for streaming broadcast television content, including, for example, set-top boxes, aerial antennas, satellite dishes, or Internet-enabled devices including smart TVs or other media devices. Is being used more and more. The same TV channel can be streamed to (via) any of these media devices according to channel schedules for different media programs. Until now, no media device-level method has existed, regardless of the source of the television broadcast, that provides a way for the viewer to detect an interruption in viewing a media program and return the viewer to that media program when the media device returns to the same channel. .

개시된 자동 컨텐츠 인식(automatic content recognition, ACR) 시스템은 이러한 기능을 용이하게 하며, 이것에 대해 다음과 같이 보다 상세히 논의할 것이다. ACR 시스템은 먼저 라이브 미디어 피드로서 수신되는 스트리밍 미디어 컨텐츠의 핑거프린팅(fingerprinting)을 수행하여 채널을 식별할 수 있다. ACR 시스템은 뷰잉되고 있는 미디어 프로그램을 식별하기 위해 식별된 채널에 대한 현재의 스케줄링 정보에 액세스할 수 있다. ACR 시스템이 채널 변경, 전원 상실, 미디어 장치가 절전 상태로 되거나 사용자가 미디어 장치를 턴 오프하는 등 미디어 프로그램이 중단된 것을 감지하면, ACR 시스템은, 기록된 ACR 데이터에, 뷰잉 종료 시의 미디어 프로그램의 채널 및 위치, 그리고 그 소스를 기록할 수 있다. 나중에, 사용자가 미디어 장치의 채널로 되돌아올 경우, ACR 시스템은 사용자가 이전에 중단된 미디어 프로그램을 계속 시청하고 싶어하는지를 요청하는 오버레이를 미디어 장치의 디스플레이에 전달할 수 있다. 사용자가 프로그램을 계속 시청하기로 선택하면, 오버레이는 미디어 프로그램이 중단되었던 위치의 오리지널 소스(또는 ACR 버퍼링 소스)에서 미디어 프로그램의 스트리밍을 트리거할 수 있다.The disclosed automatic content recognition (ACR) system facilitates this function, which will be discussed in more detail as follows. The ACR system may first identify a channel by performing fingerprinting of streaming media content received as a live media feed. The ACR system can access current scheduling information for the identified channel to identify the media program being viewed. When the ACR system detects that the media program is interrupted, such as a channel change, power loss, the media device goes to sleep, or the user turns the media device off, the ACR system writes the recorded ACR data to the media program at the end of viewing. You can record the channel and location, and its source. Later, when the user returns to the media device's channel, the ACR system can deliver an overlay to the media device's display requesting whether the user wants to continue viewing the previously interrupted media program. If the user chooses to continue watching the program, the overlay can trigger the streaming of the media program from the original source (or ACR buffering source) where the media program was stopped.

일부 예들에서, 미디어 장치에서 실행되는 ACR 클라이언트를 포함할 수 있는, ACR 시스템은 미디어 장치의 디스플레이 상에 오버레이를 디스플레이할 수 있으며, 이 오버레이는 라이브 미디어 피드(예를 들면, 미디어 프로그램)를 미디어 장치로 스트리밍하는 타이밍을 제어하도록 선택 가능한 옵션을 포함한다. 입력 장치를 통한 옵션의 선택을 나타내는 선택 신호를 수신하면, ACR 클라이언트는 선택된 옵션과 관련된 제어 동작을 실행할 수 있다. 대안적인 실시예에서, 이 옵션은 미디어 장치에 페어링된 원격 제어기를 통해 이용 가능하며, 그것의 입력들이 옵션 선택에 적응될 수 있다. 다양한 실시예들에서, 제어 동작은 라이브 미디어 피드로 스트리밍되는 프로그램의 재생, 일시 정지, 빨리 감기 또는 되감기를 포함하며, 미디어 프로그램의 특정 섹션, 챕터 또는 에피소드로 점프하는 것과 같은 다른 동작들도 상정된다. 다양한 실시예들에서, 라이브 미디어 피드의 소스는 에어리얼(aerial), 새틀라이트(satellite), 셋탑 박스, 인터넷 인에이블드(internet-enabled) 또는 다른 다양한 라이브 미디어 피드의 소스 중 하나이다.In some examples, the ACR system, which may include an ACR client running on the media device, may display an overlay on the display of the media device, which overlay sends a live media feed (e.g., a media program) to the media device. Includes selectable options to control the timing of streaming to. Upon receiving a selection signal indicating selection of an option through the input device, the ACR client may execute a control operation related to the selected option. In an alternative embodiment, this option is available through a remote controller paired to the media device, and its inputs can be adapted to the option selection. In various embodiments, the control action includes playing, pausing, fast forwarding or rewinding a program streamed to a live media feed, and other actions are contemplated, such as jumping to a specific section, chapter or episode of the media program. . In various embodiments, the source of the live media feed is one of an aerial, satellite, set-top box, internet-enabled or other source of various live media feeds.

스트리밍의 위치가 변경되거나 일시 정지된 경우, ACR 클라이언트는 오버레이(또는 원격 제어기)의 옵션들 중 하나를 통해 스트리밍이 재개될 시에 미디어 프로그램에서 재생을 시작할 위치(미디어 장치에 대한 ACR 데이터 액세스를 통해)를 나타낼 수 있다. 이 위치는 사용자 선택 재생을 나타내는 선택 신호를 수신할 시에 미디어 프로그램을 스트리밍하기 시작할 경우 사용하기 위해 저장 또는 버퍼링될 수 있다. ACR 클라이언트가 자동 컨텐츠 인식 데이터를 추적함에 따라, ACR 클라이언트는 미디어 장치의 사용자가 라이브 미디어 스트림 내로 이동한 위치를 계속 추적할 수 있다. 일부 경우들에 있어서, 라이브 미디어 스트림은 미디어 장치로 스트리밍되는 라이브 미디어 피드를, 제어 옵션들에 대한 사용자 선택에 의해 표시되는 위치로 이동시킬 수 있도록 하기 위해 ACR 서버에서, ACR 클라이언트에서, 또는 ACR 서버와 ACR 클라이언트의 조합에서 일정 시간 동안 버퍼링될 수 있다.If the location of the streaming is changed or paused, the ACR client will use one of the options in the overlay (or remote controller) to start playing in the media program when streaming resumes (via ACR data access to the media device). ) Can be represented. This location may be stored or buffered for use when starting to stream the media program upon receiving a selection signal indicating user-selected playback. As the ACR client tracks the automatic content recognition data, the ACR client can keep track of where the user of the media device has moved into the live media stream. In some cases, the live media stream is at the ACR server, at the ACR client, or at the ACR server in order to be able to move the live media feed streamed to the media device to a location indicated by user selection for control options. It can be buffered for a certain amount of time in a combination of ACR and ACR clients.

개시된 ACR 시스템은 미디어 장치로부터, 사용자에 의해 소비되는 컨텐츠의 순서화된 시퀀스의 프레임들을 포함하는 쿼리 핑거프린트를 수신할 수 있다. ACR 시스템은 각각의 프레임 핑거프린트들과 순서화된 프레임들의 시퀀스 중 대응하는 것들 사이의 거리를 결정함으로써, 복수의 텔레비전 채널들로 스트리밍하는 프로그램들의 개별 프레임들에 대해 시스템에 의해 저장되는, 프레임 핑거프린트들과 쿼리 핑거프린트를 매칭시킬 수 있다. 거리는, 예를 들어, 2개의 프레임이 서로 얼마나 다른지 또는 2개의 각각의 프레임이 스트리밍되고 있는 채널 간의 차이를 나타내는 수치를 포함할 수 있다. 이 거리는 또한 일 프레임들의 그룹의 평균과 다른 프레임들의 그룹의 평균 사이의 거리로서 결정될 수 있으며, 여기서 핑거프린트들은 미디어 컨텐츠의 프레임들의 시퀀스이다. ACR 시스템은 또한 텔레비전 브로드캐스트 동안 미디어 프로그램에 대한 핑거프린트들이 더 이상 매칭되지 않을 경우 채널이 변경되는 시점 또는 TV가 미디어 프로그램의 미디어 컨텐츠 스트리밍을 중단하는 시점을 결정할 수 있다.The disclosed ACR system may receive, from a media device, a query fingerprint comprising frames of an ordered sequence of content consumed by a user. The ACR system determines the distance between each frame fingerprint and the corresponding ones of the sequence of ordered frames, thereby storing a frame fingerprint by the system for individual frames of programs streaming to a plurality of television channels. And query fingerprints can be matched. The distance may include, for example, a number representing how different the two frames are from each other or the difference between the channels on which the two respective frames are being streamed. This distance may also be determined as the distance between an average of a group of frames and an average of a group of other frames, where fingerprints are a sequence of frames of media content. The ACR system may also determine when the channel is changed or when the TV stops streaming media content of the media program if the fingerprints for the media program no longer match during the television broadcast.

뷰어들에게 미디어 컨텐츠를 제공하기 위해, 개인 또는 조직은 예컨대 인터넷을 통해 미디어 컨텐츠를 뷰어들에게 전달하는 것에 의해서, 미디어 컨텐츠를 뷰어들에게 스트리밍할 수 있다. 개인 또는 조직에 의해 사용되는 미디어 컨텐츠는 하나 이상의 라이브 브로드캐스트 미디어 피드들로부터 획득되는 미디어 컨텐츠(예컨대, 비디오 데이터)일 수 있다. 예를 들어, 미디어 컨텐츠 프로바이더는 미디어 장치의 사용자에게 인터넷을 통해 또는 다른 매체를 통해 선형 미디어 채널(예를 들면, 라이브 미디어 피드 소스로부터 뷰어에게 제공되는 미디어)을 제공할 수 있다.To provide media content to viewers, an individual or organization may stream media content to viewers, such as by delivering media content to viewers via the Internet. Media content used by an individual or organization may be media content (eg, video data) obtained from one or more live broadcast media feeds. For example, a media content provider may provide a user of a media device with a linear media channel (eg, media provided to viewers from a live media feed source) over the Internet or through other media.

"컨텐츠"라는 단어는 미디어 또는 멀티미디어를 지칭하기 위해 사용될 수 있다. "컨텐츠"라는 단어는 미디어 자체가 아니라 미디어의 주제를 의미하는 특정 용어일 수도 있다. 마찬가지로, "미디어"라는 단어와 "미디어"(예를 들면, 멀티미디어, 하이퍼미디어)를 포함하는 일부 복합 단어는 정보가 최종 사용자/시청자에게 전달되는 채널이 아니라, 컨텐츠를 지칭하는 것이다. 미디어 또는 미디어 컨텐츠는 비디오, 영화, 텔레비전 쇼, 광고, 스트리밍 비디오 등과 같은 그래픽 표현; 텍스트; 그래픽; 애니메이션; 정지 영상; 인터랙티브성 컨텐츠 형태 등을 포함할 수 있다. 미디어 유형으로 일반적으로 지칭되는 컨텐츠 유형의 예는 "필름"으로 지칭되는 "동영상"이다.The word “content” may be used to refer to media or multimedia. The word “content” may be a specific term that refers to the subject of the media, not the media itself. Likewise, the word “media” and some compound words including “media” (eg, multimedia, hypermedia) refer to content, not channels through which information is delivered to end users/viewers. The media or media content may include graphical representations such as videos, movies, television shows, advertisements, streaming video, and the like; text; graphic; animation; Still image; It may include interactive content types. An example of a content type commonly referred to as a media type is "movie" referred to as "film."

일부 예들에서, 컨텐츠 오버레이 시스템 또는 컨텐츠 오버레이 장치는 미디어 컨텐츠를 광고와 같은 특정의, 적시의 및/또는 타겟팅된 오버레이 컨텐츠와 결합하는 것을 가능하게 할 수 있다. 컨텐츠 오버레이 시스템 또는 컨텐츠 오버레이 장치는 컨텐츠 오버레이들 내에서 콜 투 액션(call to action)(예를 들면, 컨텐츠 오버레이에 관여하게 하기 위한 초대)에 응답하도록 뷰어들을 초대함으로써 오버레이 컨텐츠 프로바이더들이 뷰어들과 관계를 맺게 할 수 있다. 뷰어들을 콜 투 액션으로 초대할 경우 얻을 수 있는 이점 중 하나는 뷰어들이 추가 정보를 요청하고, 질문을 하고, 의견을 제공하고, 광고된 서비스 또는 제품의 프로바이더와 연락하는 것 등을 행할 수 있는 반환 경로 또는 후속 경로를 제공하는 것일 수 있다. 뷰어를 콜 투 액션으로 초대하는 경우 얻을 수 있는 또 다른 이점은 어드버타이저가 추가 정보를 제공하고, 뷰어들과 더 관계를 맺고, 뷰어들에 대한 추가 정보를 수집하고, 광고된 제품 또는 서비스에 대한 뷰어 질문에 답변하는 것 등을 행할 수 있는 반환 경로 또는 후속 경로를 제공하는 것일 수 있다. 다른 예에서, 컨텐츠 오버레이 시스템 또는 컨텐츠 오버레이 장치는 뷰어가 미디어 프로그램의 오버레이 컨텐츠를 뷰잉하고 및/또는 상호 작용하면 어드버타이저가 크로스 플랫폼 리타겟팅 캠페인을 사용할 수 있게 할 수 있다.In some examples, a content overlay system or content overlay device may enable combining media content with specific, timely and/or targeted overlay content, such as advertisements. The content overlay system or content overlay device invites viewers to respond to a call to action within the content overlays (e.g., an invitation to engage in the content overlay) so that overlay content providers can interact with You can build a relationship. One of the benefits of inviting viewers to call-to-action is the ability for viewers to request additional information, ask questions, provide comments, and contact providers of advertised services or products. It may be to provide a return path or a subsequent path. Another benefit of inviting viewers to call-to-action is that the advertiser provides additional information, engages more with viewers, collects additional information about viewers, and provides information about the advertised product or service. It may be to provide a return path or a follow-up path through which you can answer questions about the viewer or the like. In another example, a content overlay system or content overlay device may enable an advertiser to use a cross-platform retargeting campaign when a viewer views and/or interacts with the overlay content of a media program.

도 1은 일 예에 따른 컨텐츠 분배 네트워크(100)의 시스템 다이어그램을 도시한 것이다. 컨텐츠 분배 네트워크(100)에서, 컨텐츠 프로바이더(102)는 컨텐츠 피드(103)를 로컬 프로바이더(106)에게 브로드캐스트할 수 있다. 로컬 프로바이더(106)는 헤드 엔드(104) 및 자동 컨텐츠 인식(ACR) 핑거프린터 서버(105)를 포함할 수 있다. 컨텐츠 프로바이더(102)로부터의 컨텐츠 피드(103)는 로컬 프로바이더(106)의 헤드 엔드(104)에서 수신될 수 있다.1 is a system diagram of a content distribution network 100 according to an example. In the content distribution network 100, the content provider 102 may broadcast the content feed 103 to the local provider 106. The local provider 106 may include a head end 104 and an automatic content recognition (ACR) fingerprint server 105. The content feed 103 from the content provider 102 may be received at the head end 104 of the local provider 106.

다양한 구현들에서, 헤드 엔드(104)는 수신된 컨텐츠 피드(103)에 기초하여 로컬 컨텐츠 피드(103)를 생성할 수 있다. 예를 들어, 헤드 엔드(104)는 국내 또는 글로벌 브로드캐스터로부터 프로그래밍 및 광고를 갖는 네트워크 채널을 수신하는 로컬 제휴 브로드캐스터일 수 있다. 일 예에서, 헤드 엔드(104)는 브로드캐스트 설비가 브로드캐스트 피드를 송신하기 이전의 브로드캐스트 피드의 소스일 수 있다. 다른 예에서, 헤드 엔드(104)는 분배 증폭기일 수 있다. 분배 증폭기는 소스 피드를 수신할 수 있으며, 동일한 소스 피드에서 상이한 장치들에 대해 여러 개의 출력을 생성할 수 있다. 출력 피드들은 다양한 분배 배출 장소로 라우팅될 수 있으며, 예를 들어 브로드캐스트 OTA(over the air)를 위해, 케이블 프로바이더들에게 전송되거나, 위성 프로바이더들에게 전송되거나 및/또는 온라인 스트리밍 프로바이더들에게 전송될 수 있다.In various implementations, the head end 104 can generate the local content feed 103 based on the received content feed 103. For example, the head end 104 may be a local affiliate broadcaster that receives a network channel with programming and advertising from a national or global broadcaster. In one example, the head end 104 may be the source of a broadcast feed prior to the broadcast facility transmitting the broadcast feed. In another example, the head end 104 may be a distribution amplifier. The distribution amplifier can receive a source feed and can produce multiple outputs for different devices at the same source feed. Output feeds can be routed to various distribution outlets, e.g. for broadcast over the air, to cable providers, to satellite providers and/or to online streaming providers. Can be sent to

헤드 엔드(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 안테나, 위성 접시 등)을 포함한다.The head end 104 transmits a local content feed 103 to the ACR fingerprint server 105, an over-the-air (OTA) broadcaster 108 and/or a multi-channel video programming distributor (MVPD) 110. I can. OTA broadcaster 108 and/or MVPD 110 may transmit local content feed 103 to media device 115. Some examples of media devices 115 include client devices 118 and 120 (e.g., smart TV), a set-top box 114 that streams provider content to client devices 118 and 120, and a user can Other devices 116 (eg, OTA antennas, satellite dishes, etc.) capable of streaming the content feed 103 are included.

일 예에서, OTA 브로드캐스터(108)는 전통적인 로컬 텔레비전 또는 라디오 채널들을 사용하여 로컬 컨텐츠 피드(103)를 브로드캐스트할 수 있다. 이 예에서, 클라이언트 장치들(118 및 120)은 안테나들(예컨대, TV 또는 라디오 안테나들)을 포함하며 로컬 컨텐츠 피드(103)를 수신할 수 있다. 다른 예에서, MVPD(110)(예컨대, 케이블 또는 위성 브로드캐스터)는 로컬 컨텐츠 피드(103)를 셋탑 박스(114)로 전송할 수 있다. 이 예에서, 셋탑 박스(114)는 클라이언트 장치들(118 및 120)에 대한 컨텐츠 피드(103)를 포맷하고 클라이언트 장치들(118 및 120)에게 이 포맷된 컨텐츠 피드(103)를 전송할 수 있다. 클라이언트 장치들(118 및 120)은 로컬 컨텐츠를 뷰어에게 디스플레이하기 위해, 텔레비전 스크린 또는 터치 스크린과 같은 디스플레이 장치를 포함할 수 있다. 컨텐츠 분배 네트워크(100)의 다양한 컴포넌트들은 클라이언트 장치들(118 및 120)에 통합되거나 결합될 수 있다. 예를 들어, 스마트 텔레비전은 안테나, 셋탑 박스(114) 및 디스플레이 장치를 단일 유닛으로 포함할 수 있다.In one example, the OTA broadcaster 108 may broadcast the local content feed 103 using traditional local television or radio channels. In this example, client devices 118 and 120 include antennas (eg, TV or radio antennas) and may receive a local content feed 103. In another example, the MVPD 110 (eg, a cable or satellite broadcaster) may transmit the local content feed 103 to the set-top box 114. In this example, the set-top box 114 can format the content feed 103 for the client devices 118 and 120 and send this formatted content feed 103 to the client devices 118 and 120. Client devices 118 and 120 may include a display device, such as a television screen or a touch screen, to display local content to a viewer. Various components of the content distribution network 100 may be integrated or coupled to the client devices 118 and 120. For example, a smart television may include an antenna, a set-top box 114, and a display device as a single unit.

ACR 핑거프린트 서버(105)는 로컬 컨텐츠 피드(103)를 분석하여, 핑거프린트 정보(예를 들면, 핑거프린트들)를 결정할 수 있다. 일 예에서, ACR 핑거프린터 서버(105)는 브로드캐스트 설비에 설치된 장치일 수 있다. ACR 핑거프린터 서버(105)는 헤드 엔드(104)로부터 피드를 수신할 수 있다. ACR 핑거프린터 서버(105)는 피드를 핑거프린팅하고, 핑거프린트들(128a-n)을 클라우드 기반 웹 서비스로 전송할 수 있다. 일부 구현들에서, ACR 핑거프린터 서버(105)는 텔레비전(TV)과 같은 디스플레이 장치에 피드가 전달되기 전에 피드를 핑거프린팅하기 위해, 브로드캐스트 설비 내에 설치될 수 있다.The ACR fingerprint server 105 may analyze the local content feed 103 to determine fingerprint information (eg, fingerprints). In one example, the ACR fingerprint server 105 may be a device installed in a broadcast facility. The ACR fingerprint server 105 may receive a feed from the head end 104. The ACR fingerprint server 105 may fingerprint a feed and transmit the fingerprints 128a-n to a cloud-based web service. In some implementations, the ACR fingerprint server 105 may be installed within a broadcast facility to fingerprint the feed before it is delivered to a display device such as a television (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) 내에 대안적으로 위치될 수 있다.The ACR fingerprint server 105 may transmit the fingerprints 128a-n to the ACR systems 124 and/or 126. The ACR systems 124 and 126 may be different ACR systems selected by a device manufacturer, such as a smart TV manufacturer. In some implementations, as described below, the ACR system 124 includes an ACR fingerprint sequence matcher 125. The ACR fingerprint sequence matcher 125 may match the frame fingerprints 128a-n with original video content from which corresponding video frames are derived. The ACR system 126 may or may not have an ACR fingerprint sequence matcher 125. Details regarding the ACR fingerprint sequence matcher 125 are described below with respect to FIG. 3, where a fingerprint sequence matcher may alternatively be located within the content manager 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으로부터의 전자 장치에 개선된 광고 및 컨텐츠 경험들을 제공할 수 있게 하는 것이다.The ACR fingerprint server 105 may analyze the local content feed 103 and capture fingerprints 128a-n that may include an ordered sequence of frames from the local content feed 103. The ACR fingerprint server 105 may transmit the fingerprints 128a-n to the ACR systems 124 and/or 126. The ACR systems 124 and 126 may be different ACR systems selected by a device manufacturer, such as a smart TV manufacturer. In one example, the ACR system 124 or 126 may include processing logic or processing devices to execute instructions or perform processes. In another example, ACR systems 124 and 126 may be ACR web services for different ACR vendors. The ACR fingerprint server 105 may enable use of indexing clients from multiple ACR vendors. For example, several consumer electronics manufacturers (CEMs), such as TV manufacturers, can independently select the ACR vendors to integrate into their electronic devices. To enable ACR-based functionality in a particular CEM device, the ACR system can index broadcast feeds using ACR vendors that CEMs select and integrate into CEM's television. One advantage of integrating multiple ACR vendors into the ACR fingerprint server 105 is that entities such as advertisers, advertising agencies and content providers can interface with a single platform to improve electronic devices from multiple CEMs. To be able to provide advertising and content experiences

다양한 구현들에서, 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)에게 전송할 수 있다.In various implementations, the ACR fingerprint server 105 may include fingerprints 128a for different ACR systems 124 and 126 including different types of fingerprint technology, such as different fingerprint algorithms, for example. -n) can be formatted. ACR systems 124 and 126 may establish communication connections with different media devices 115, including client devices 118 and 120, respectively. The client devices 118 and 120 may transmit fingerprint information to the ACR systems 124 and 126, respectively. When the ACR system 124 or 126 receives ACR fingerprint information from the client devices 118 and/or 120, the ACR system 124 or 126 uses the received fingerprints 128a-n to ACR fingerprint. When the contents are matched with those generated by the server 105 and the contents are identified by matching, ACR events may be transmitted to the content manager 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)에서의 컨텐츠 채널 변경 등을 포함할 수 있다.In another example, the ACR systems 124 and 126 receive ACR fingerprint information from the client devices 118 and 120, and the received fingerprints 128a-n by the ACR fingerprint server 105 Match the generated ones. When a match is made and content is identified, the ACR systems 124 and/or 126 may notify the client device 118 or 120 of ACR events, and the client device 118 or 120 may then report these ACR events to the content manager. Can be sent to (122). Alternatively or additionally, ACR systems 124 and/or 126 transmit ACR events directly to content manager 122. The ACR fingerprint information includes displaying advertisements in the local content feed 103 to the viewer, displaying content selected or flagged in the local content feed 103 to the viewer, and a content channel in the client device 118 or 120 Changes may be included.

상이한 ACR 시스템들(124 및 126)로부터의 이벤트 정보는 상이한 포맷들로 생성될 수 있으며 컨텐츠 매니저(122)는 데이터를 기록된 ACR 정보 데이터베이스(123)(예를 들면, 설명의 편의를 위해 데이터베이스(123))에 저장하기 전에 공통 포맷으로 데이터를 정규화할 수 있다. 예를 들어, 컨텐츠 매니저(122)는 ACR 시스템(124 및 126)으로부터 동일한 컨텐츠를 갖지만 다르게 포맷된 데이터와 같이, 유사하지만 동일하지 않은 데이터를 포함하는 개별 데이터 세트들을 수신할 수 있다. 컨텐츠 매니저(122)는 단일 데이터 모델 또는 포맷(예를 들면, 재포맷된 데이터 세트들)을 생성하기 위해 개별 데이터 세트들을 처리 및 재포맷할 수 있으며, 재포맷된 데이터 세트들은 컨텐츠 매니저(122)에서 데이터베이스(123)에 파퓰레이션될 수 있다. 데이터베이스(123)에 저장된 ACR 시스템들로부터의 이벤트 정보는 사용자 뷰잉 거동, 관심사 및 특정 미디어 프로그램의 특정 뷰잉 이력을 기록한 정보로부터 기록된 ACR 데이터를 더 포함할 수 있다.Event information from different ACR systems 124 and 126 may be generated in different formats, and the content manager 122 records the data in the ACR information database 123 (e.g., for convenience of description, the database ( 123)), you can normalize the data to a common format. For example, the content manager 122 may receive individual data sets containing similar but not identical data, such as data having the same content but formatted differently from the ACR systems 124 and 126. Content manager 122 may process and reformatting individual data sets to create a single data model or format (e.g., reformatted data sets), and the reformatted data sets Can be populated in the database 123 at. Event information from the ACR systems stored in the database 123 may further include ACR data recorded from information that records user viewing behavior, interests, and specific viewing history of a specific media program.

일부 구현들에서, 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)의 동일한 데이터 필드 위치들에 동일한 데이터 필드들을 갖는다.In some implementations, to normalize individual data sets from ACR systems 124 and 126, content manager 122 can clean or filter data within the data sets. For example, some data sets may include fields or data that are not related to the content manager 122. In this example, content manager 122 cleans or filters irrelevant data (eg, data can be removed or ignored). In another example, some data sets contain incomplete or inaccurate data or instances of the data set, and content manager 122 cleans or filters such incomplete or inaccurate data or data sets. In other implementations, to normalize individual data sets from ACR systems 124 and 126, content manager 122 maps the fields of the data sets. For example, when the content manager 122 receives a first data set from the ACR system 124 and a second data set from the ACR system 126, among the data fields of the first data set and the second data set At least some may be common to both the first and second data sets. However, these common data fields may be located in different places of the first and second data sets. In this example, the content manager 122 maps different data fields of the first and second data sets to normalized fields, and has the same data fields at the same data field locations in the database 123.

다른 예에서는, ACR 시스템들(124 및 126)로부터의 개별 데이터 세트들을 정규화하기 위해, 컨텐츠 매니저(122)는 데이터 세트들로부터 데이터를 취득한다. 예를 들어, ACR 시스템들(124 및/또는 126)로부터의 데이터는 데이터베이스의 데이터 필드들을 채우는데 필요한 모든 필드들을 포함하지 않을 수 있다. 그러나, 컨텐츠 매니저(122)는 ACR 시스템들(124 및 126)로부터의 데이터 세트들의 다른 필드들을 사용하여 이들 데이터 필드들에 대한 데이터를 취득할 수도 있다.In another example, to normalize individual data sets from ACR systems 124 and 126, content manager 122 obtains data from the data sets. For example, data from ACR systems 124 and/or 126 may not include all of the fields required to populate the data fields of the database. However, content manager 122 may use other fields of data sets from ACR systems 124 and 126 to obtain data for these data fields.

일부 예들에서, 데이터베이스(123)는 국가 필드, DMA(designated market area), 및 카운티 및/또는 도시 필드와 같은 데이터 필드를 포함하지만 ACR 시스템들(124 및 126)로부터의 데이터 세트들은 ZIP(zone improvement plan) 코드들만을 포함할 수도 있다. 이 예에서, 컨텐츠 매니저(122)는 ZIP 코드들을 사용하여 데이터베이스의 필드들에 대한 데이터를 취득한다. 다른 예에서, 데이터 세트는 지리적 위치 정보를 포함하지 않지만, ACR 시스템들(124 및 126)의 인터넷 프로토콜(IP) 주소를 포함한다. 이 예에서, 컨텐츠 매니저(122)는 지오-IP 룩업 서비스를 사용하여 주(state), DMA, 카운티, 도시 및 ZIP 코드 정보를 취득한다.In some examples, the database 123 includes data fields such as a country field, a designed market area (DMA), and a county and/or city field, but the data sets from ACR systems 124 and 126 have a zone improvement (ZIP). plan) codes may be included. In this example, the content manager 122 uses ZIP codes to obtain data for fields in the database. In another example, the data set does not include geographic location information, but includes the Internet Protocol (IP) address of ACR systems 124 and 126. In this example, the content manager 122 obtains state, DMA, county, city, and ZIP code information using a geo-IP lookup service.

다른 예에서, 데이터베이스(123)는 연령 필드, 성별 필드, 가계 소득 필드 등과 같은 통계 필드들을 포함한다. 그러나, ACR 시스템들(124 및 126)로부터의 데이터 세트들은 통계 필드들 또는 통계 데이터를 포함하지 않을 수도 있다. 이 예에서, ACR 시스템들(124 및 126)은 클라이언트 장치들(118 및 120)의 IP 주소를 컨텐츠 매니저(122)에 제공한다. 컨텐츠 매니저(122)는 IP 주소들을 사용하여 데이터베이스의 데이터 필드들을 파퓰레이션할 통계 데이터를 결정할 수 있다.In another example, the database 123 includes statistical fields such as an age field, a gender field, a household income field, and the like. However, data sets from ACR systems 124 and 126 may not include statistical fields or statistical data. In this example, ACR systems 124 and 126 provide the IP addresses of client devices 118 and 120 to content manager 122. The content manager 122 may use IP addresses to determine statistical data to populate data fields of the database.

다른 예에서, ACR 시스템(124)으로부터의 제 1 데이터 세트 내의 필드는 MDT(Mountain Daylight Time) 존과 같은 로컬 타임 존(local time zone)을 포함하고, ACR 시스템(126)으로부터의 제 2 데이터 세트는 UTC(Coordinated Universal Time) 존과 같은 다른 타임 존으로부터의 정보를 포함할 수 있다. 데이터베이스는 UTC를 사용하여 모든 데이터를 저장할 수 있고, 컨텐츠 매니저(122)는 데이터베이스(123)에 데이터를 저장하기 전에 로컬 타임을 UTC로 변환할 수 있다.In another example, a field in a first data set from ACR system 124 includes a local time zone, such as a Mountain Daylight Time (MDT) zone, and a second data set from ACR system 126 May include information from another time zone such as a UTC (Coordinated Universal Time) zone. The database may store all data using UTC, and the content manager 122 may convert the local time to UTC before storing the data in the database 123.

일부 구현들에서, 컨텐츠 매니저(122)는 정규화된 데이터를 사용하여 상이한 ACR 기술 벤더들 및 스마트 TV 또는 다른 인터넷-연결된 비디오 장치들을 통한 사용자 뷰잉 거동에 관한 보고들 또는 데이터(뷰잉 데이터)를 생성한다. 컨텐츠 매니저(122) 및 미디어 장치들(115)은 미디어 컨텐츠(115)와 컨텐츠 매니저(122) 사이에서, 오버레이 컨텐츠(212) 및 기록된 ACR 데이터와 같은 정보를 통신하게 하기 위한 통신 인터페이스들을 포함할 수 있다.In some implementations, the content manager 122 uses the normalized data to generate reports or data (viewing data) regarding user viewing behavior through different ACR technology vendors and smart TVs or other internet-connected video devices. . Content manager 122 and media devices 115 may include communication interfaces for communicating information, such as overlay content 212 and recorded ACR data, between media content 115 and content manager 122. I can.

일부 예들에서, 통신 인터페이스는 셀룰러 네트워크 및/또는 무선 네트워크를 사용하여 정보를 통신한다. 일 예에서, 통신 네트워크는 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® 연결일 수 있다.In some examples, the communication interface communicates information using a cellular network and/or a wireless network. In one example, the communications network is a 3rd Generation Partnership Project (3 GPP) Release 8, 9, 10, 11 or 12, long term evolution (LTE) or Institute of Electronics and Electrical Engineers (IEEE) 802.16p, 802.16n, 802.16m. -It is a cellular network that can be 2011, 802.16h-2010, 802.16j-2009, 802.16-2009 In another example, the communication network is a wireless network (e.g., a wireless network that can conform to the IEEE® standard (e.g., IEEE 802.11-2012, IEEE 802.1 lac, or IEEE 802.1 lad standard) developed by the Institute of Electrical and Electronics Engineers, Inc. , A network using Wi-Fi® technology developed by the Wi-Fi Alliance). In another example, the communication network is a Bluetooth® connection developed by the Bluetooth Special Interest Group (SIG) such as Bluetooth v1.0, Bluetooth v2.0, Bluetooth v3.0 or Bluetooth v4.0. In another embodiment, the communication network is Zigbee® developed by ZigBee Alliance such as IEEE 802.15.4-2003 (Zigbee 2003), IEEE 802.15.4-2006 (Zigbee 2006), IEEE 802.15.4-2007 (Zigbee Pro). It can be a connection.

일부 구현들에서, 컨텐츠 매니저(122)는 또한 미디어 장치들(115)에게 OTA 브로드캐스터(108) 또는 MVPD(110)로부터 수신된 로컬 컨텐츠 피드(103)의 부분들을 오버레이 컨텐츠(212)로 대체하도록 지시한다. 또한, 일부 예들에서, 컨텐츠 매니저(122)는 미디어 장치들(115)에게 오버레이 컨텐츠(212)를 로컬 컨텐츠 피드(103)의 부분들 위에 오버레이 또는 중첩시키도록 지시한다. 컨텐츠 매니저(122)는 복수의 ACR 시스템들(124 및 126)에 걸쳐 ACR 정보를 수집하여, 오버레이 컨텐츠(212)를 상이한 클라이언트 장치들(118 및 120)로 전송할 수 있으며, 여기서 클라이언트 장치들(118 및 120)은 상이한 장치 제조업체들로부터의 것들일 수 있다.In some implementations, content manager 122 also allows media devices 115 to replace portions of local content feed 103 received from OTA broadcaster 108 or MVPD 110 with overlay content 212. Instruct. Also, in some examples, the content manager 122 instructs the media devices 115 to overlay or superimpose the overlay content 212 over portions of the local content feed 103. The content manager 122 may collect ACR information across a plurality of ACR systems 124 and 126 and transmit the overlay content 212 to different client devices 118 and 120, where the client devices 118 And 120) may be from different device manufacturers.

컨텐츠 매니저(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)로 전송할 수 있다.Content manager 122 may also establish communication connections with other devices 116 that are generally classified as media device 115. In some examples, the other device 116 communicates with the client devices 118 or 120 to provide an additional screen (eg, a second screen) for displaying the overlay content 212. For example, the client devices 118 and 120 receive the local content feed 103 from the OTA broadcaster 108 or the MVPD 110 and display the local content feed 103 to the user. Other devices 116 may also transmit ACR event information to ACR systems 124 and 126 when an ACR event occurs, as discussed in the previous paragraphs. When the content manager 122 receives the ACR event information, the content manager 122 may transmit the overlay content 212 to other devices 116.

일부 구현들에서, 클라이언트 장치들(118 및 120)은 로컬 컨텐츠 피드(103)를 계속 디스플레이하고, 다른 장치들(116)은 오버레이 컨텐츠(212)를 디스플레이한다. 다른 예에서는, 클라이언트 장치들(118 및 120) 및 다른 장치들(116) 모두 오버레이 컨텐츠(212)를 디스플레이한다. 또 다른 예에서는, 클라이언트 장치들(118 및 120) 및 다른 장치들(116)이 오버레이 컨텐츠(212)의 일부 및 로컬 컨텐츠 피드(103)의 일부를 디스플레이한다. 클라이언트 장치들(118 및 120) 및 다른 장치들(116)은 상이한 로컬 컨텐츠 피드(103) 및/또는 오버레이 컨텐츠(212)를 디스플레이할 수 있다.In some implementations, the client devices 118 and 120 continue to display the local content feed 103 and the other devices 116 display the overlay content 212. In another example, both client devices 118 and 120 and other devices 116 display overlay content 212. In another example, client devices 118 and 120 and other devices 116 display a portion of the overlay content 212 and a portion of the local content feed 103. Client devices 118 and 120 and other devices 116 may display different local content feed 103 and/or overlay content 212.

클라이언트 장치들(118 및 120) 및/또는 다른 장치들(116)은 오버레이 컨텐츠(212)가 수신되는 시점에 오버레이 컨텐츠(212)를 디스플레이할 수 있다. 일부 예들에서, 클라이언트 장치들(118 및 120) 및/또는 다른 장치들(116)은 임계 시간 동안 오버레이 컨텐츠(212)의 디스플레이를 지연시킨다. 임계 시간은 미리 정의된 기간일 수 있으며, 또는 컨텐츠 매니저(122)가, 클라이언트 장치들(118 및 120) 및/또는 다른 장치들(116)이 오버레이 컨텐츠(212)의 디스플레이를 지연시키도록 하는 시간을 선택할 수도 있다.The client devices 118 and 120 and/or other devices 116 may display the overlay content 212 at the time the overlay content 212 is received. In some examples, client devices 118 and 120 and/or other devices 116 delay the display of overlay content 212 for a threshold time. The threshold time may be a predefined period of time, or the time at which the content manager 122 causes the client devices 118 and 120 and/or other devices 116 to delay the display of the overlay content 212. You can also choose.

도 2는 일부 구현들에 따라 오버레이 컨텐츠(212)를 클라이언트 장치들(218 및/또는 220)과 같은 미디어 장치(115)에 제공하기 위한 컨텐츠 매니저(222)를 도시한 것이다. 컨텐츠 프로바이더(202)(예를 들면, 텔레비전 브로드캐스터)는 네트워크(219)를 통해 미디어 컨텐츠(M)를 미디어 장치(115)로 스트리밍할 수 있으며, 이 스트리밍은 미디어 컨텐츠(M)의 미디어 장치(115)로의 스트리밍 전에 또는 동시에 컨텐츠 매니저(222)에 의해 인터셉트될 수 있다. 컨텐츠 매니저(222)는 또한 광고 서버(또는 "광고" 서버)(230)와 통신하여 예를 들어 광고 호출을 광고 서버(230)에 전송하여, 더 상세히 설명될 바와 같이 미디어 컨텐츠(M)의 주제 및/또는 사용자의 관심 사항을 타겟팅하기 위한 미디어 컨텐츠(M)와 함께(또는 이에 대한 오버레이로서) 제공되는 광고를 요청한다. 광고 서버(230)는 미디어 장치들(115)로의 추후 전달을 위해 광고 또는 다른 오버레이 컨텐츠(212)를 컨텐츠 매니저(222)에 제공하거나 오버레이(212) 또는 대체 광고들로서의 전달을 위해 컨텐츠를 미디어 장치(115)에 직접 제공할 수 있는 써드 파티 또는 외부 서버일 수 있다.2 illustrates a content manager 222 for providing overlay content 212 to a media device 115 such as client devices 218 and/or 220 in accordance with some implementations. The content provider 202 (e.g., a television broadcaster) may stream media content M to the media device 115 via the network 219, which streams the media content M's media device. It may be intercepted by content manager 222 prior to or concurrently with streaming to 115. The content manager 222 also communicates with the ad server (or “ad” server) 230 to send, for example, an ad call to the ad server 230, so that the subject of media content M as will be described in more detail And/or request an advertisement provided with (or as an overlay on) media content (M) for targeting the user's interests. The advertisement server 230 provides advertisements or other overlay content 212 to the content manager 222 for later delivery to the media devices 115 or provides the content to the media device for delivery as an overlay 212 or alternative advertisements. It may be a third party or an external server that can be provided directly to (115).

컨텐츠 매니저(222)는 ACR 엔진(204), 룩업 서버(206), 오버레이 결정 엔진(210), 오버레이 컨텐츠(212)를 저장하는 오버레이 데이터베이스(211) 및 광고 타겟터(214)를 포함할 수 있다. 컨텐츠 프로바이더(202)는 네트워크(219)를 통해 미디어 컨텐츠(M)를 ACR 엔진(204)에 업로드할 수 있다.The content manager 222 may include an ACR engine 204, a lookup server 206, an overlay determination engine 210, an overlay database 211 storing the overlay content 212, and an advertisement targeter 214. . The content provider 202 may upload media content (M) to the ACR engine 204 through the network 219.

ACR 엔진(204)은 미디어 컨텐츠(M)를 핑거프린팅할 수 있다. 일부 예들에서, ACR 엔진(204)은 피드의 모든 프레임, 피드의 다른 모든 프레임, 프레임들의 시퀀스 등을 핑거프린팅함으로써 핑거프린트들(208a-n)을 생성한다. 예를 들어, ACR 엔진(204)은 프레임의 DCT(discrete cosine transform)를 수행하여 결과 계수들(예를 들면, 저주파 계수들)의 서브세트를 핑거프린트(208)로 지정함으로써 피드의 프레임에 대한 핑거프린트(208)를 생성한다. 추가적으로 또는 대안적으로, ACR 엔진(204)은 미디어 장치(115)로 스트리밍되는 컨텐츠의 순서화된 프레임 시퀀스에 대응하는 핑거프린트들(208a-n)의 타겟 블록을 생성(또는 식별)할 수 있다. 또한, 룩업 서버(206)는 아이덴티티가 알려진 발신 미디어 프로그램들(예를 들면, 발신 컨텐츠)에 대한 핑거프린트 데이터베이스(207)에 저장된 프레임 핑거프린트들(208a-n)의 매칭 소스 블록을 찾아낼 수 있다.The ACR engine 204 may fingerprint the media content (M). In some examples, the ACR engine 204 generates fingerprints 208a-n by fingerprinting every frame in the feed, every other frame in the feed, a sequence of frames, and so on. For example, the ACR engine 204 performs discrete cosine transform (DCT) of the frame and designates a subset of the resulting coefficients (e.g., low frequency coefficients) as the fingerprint 208 for the frame of the feed. A fingerprint 208 is created. Additionally or alternatively, the ACR engine 204 may generate (or identify) a target block of fingerprints 208a-n corresponding to an ordered sequence of frames of content streamed to the media device 115. In addition, the lookup server 206 may find a matching source block of frame fingerprints 208a-n stored in the fingerprint database 207 for outgoing media programs (eg, outgoing content) with known identities. have.

다른 또는 관련된 구현에서, ACR 엔진(204)은 또한 어떤 이벤트가 발생했는지를 판정(예를 들면, 프레임 시퀀스 쿼리 핑거프린트(208a)와 ACR 시스템(124 또는 126)에 저장된 오리지널 컨텐츠의 프레임 핑거프린트들(208a-n) 사이의 포지티브 매칭)하기 위해 ACR 이벤트 정보를 분석한다. 포지티브 매칭이 있는 경우, ACR 엔진(204)은 포지티브 매칭이 발생하는 컨텐츠를 식별시키는 미디어 컨텐츠 식별자(ID)를 포함하는 포지티브 매칭 이디케이터를 요청 미디어 장치(115)에게 전송한다. 미디어 장치(115)는 미디어 컨텐츠 오버레이(212)를 요청하는 오버레이 요청을 오버레이 결정 엔진(210)으로 전송할 수 있다. 일부 예들에서, 오버레이 요청은 미디어 컨텐츠 ID를 포함한다. 다른 예들에서, 오버레이 요청은 오버레이 정보 또는 오버레이 파라미터들을 포함한다.In another or related implementation, the ACR engine 204 also determines which event has occurred (e.g., frame sequence query fingerprint 208a and frame fingerprints of the original content stored in the ACR system 124 or 126). Analyze the ACR event information for positive matching between (208a-n). If there is a positive match, the ACR engine 204 transmits a positive matching indicator including a media content identifier (ID) identifying the content in which the positive match occurs to the requesting media device 115. The media device 115 may transmit an overlay request requesting the media content overlay 212 to the overlay determination engine 210. In some examples, the overlay request includes a media content ID. In other examples, the overlay request includes overlay information or overlay parameters.

도 2를 더 참조하면, ACR 엔진(204)은 텔레비전 프로그램(예를 들면, 식별된 채널에 대해 스케줄링됨) 및 ACR 시스템(124 또는 126)으로부터 수신된 ACR 이벤트에 대응하는 텔레비전 프로그램 내의 위치를 조회 및 결정할 수 있는 핑거프린트들(208a-n)을 룩업 서버(206)에 전송할 수 있다. 피드의 세그먼트의 각 핑거프린트(208)는 타임 스탬프와 연관될 수 있다. 타임 스탬프는 ACR 엔진(204)에 의해 수신될 때 피드의 세그먼트의 개별 프레임들에 속한다. 타임 스탬프는 임의의 시작점으로부터의 피드 내 프레임 번호일 수 있다. 룩업 서버(206)는 (예를 들면, 핑거프린트 데이터베이스(207)에) 각각의 타임 스탬프들과 관련하여 핑거프린트들(208a-n)을 저장하고, 사용자가 뷰잉하고 있는 피드의 미디어 컨텐츠(M) 내의 타이밍 및 컨텐츠 타겟팅 시에 광고 타겟터(214) 및 오버레이 결정 엔진(210)을 보조한다.With further reference to FIG. 2, the ACR engine 204 queries the television program (e.g., scheduled for an identified channel) and a location within the television program corresponding to the ACR event received from the ACR system 124 or 126. And, the fingerprints 208a-n that can be determined may be transmitted to the lookup server 206. Each fingerprint 208 of a segment of the feed may be associated with a time stamp. The time stamp belongs to individual frames of a segment of the feed when received by the ACR engine 204. The time stamp can be the frame number in the feed from any starting point. The lookup server 206 stores the fingerprints 208a-n in association with each of the time stamps (e.g., in the fingerprint database 207), and the media content (M) of the feed that the user is viewing. ) Assists the advertisement targeter 214 and the overlay determination engine 210 in timing and content targeting.

일부 구현들에서, ACR 엔진(204)은 다양한 미디어 장치들(115)에서 ACR 클라이언트(215)와 상호 작용한다. ACR 클라이언트(215)는 핑거프린트들(208a-n)과 로컬로 매칭되어, 사용자가 다른 텔레비전 프로그램을 시청하기 위해 채널을 변경했는지의 여부를 확인하고, 채널 변경을 컨텐츠 매니저(222)에게 보고할 수 있다. 따라서, 핑거프린트들(208a-n)의 매칭은 일부 경우들에 있어서 미디어 장치(115)에서 로컬로 발생할 수 있다.In some implementations, the ACR engine 204 interacts with the ACR client 215 on various media devices 115. The ACR client 215 is locally matched with the fingerprints 208a-n to check whether the user has changed the channel to watch another television program, and report the channel change to the content manager 222. I can. Thus, matching of fingerprints 208a-n may occur locally at media device 115 in some cases.

또한, ACR 클라이언트(215)는 미디어 장치(115)에서 시청되고 있는 텔레비전 프로그램 또는 채널의 확인을 요청하는, 타겟 블록들을 포함하는, 예를 들면 쿼리 핑거프린트들(208a)의 형태의, 사용자 핑거프린트 정보를 주기적으로, 지속적으로 또는 반-연속적으로 룩업 서버(206)에 전송할 수 있다. 룩업 서버(206)는 쿼리 핑거프린트(들)(208a)(또는 타겟 블록들)와 다수의 프레임 핑거프린트들(208a-n) 사이에 매칭이 있을 때를 결정할 수 있으며, 이들은 핑거프린트 데이터베이스(207) 내의 룩업 서버로부터의 네트워크(219)에 걸친 핑거프린트(208a-n)의 소스 블록들로서 저장될 수 있다. 쿼리 핑거프린트(208a)는 순서화된 프레임 시퀀스일 수 있으며, 이들 각각은 텔레비전 프로그램 또는 텔레비전 프로그램으로부터 스트리밍되는 채널과 연관되기에 충분한 매칭을 찾아낼 때까지 프레임 핑거프린트들(208a-n)의 개개의 것들과 매칭될 수 있다. 포지티브 매칭이 있는 경우, 룩업 서버(206)는 포지티브 매칭 인디케이터를 ACR 클라이언트(215)에게 전송한다. 포지티브 매칭 인디케이터에 응답하여, ACR 클라이언트(215)는 미디어 컨텐츠 오버레이(212)를 요청하는 오버레이(212) 요청을 오버레이 결정 엔진(210)에 전송한다.In addition, the ACR client 215 includes a user fingerprint, for example in the form of query fingerprints 208a, including target blocks, requesting confirmation of the television program or channel being watched on the media device 115 The information may be transmitted to the lookup server 206 periodically, continuously or semi-continuously. The lookup server 206 may determine when there is a match between the query fingerprint(s) 208a (or target blocks) and the plurality of frame fingerprints 208a-n, which ) May be stored as source blocks of the fingerprint 208a-n across the network 219 from the lookup server in. The query fingerprint 208a may be an ordered sequence of frames, each of which is an individual Can be matched with things. If there is a positive match, the lookup server 206 transmits a positive matching indicator to the ACR client 215. In response to the positive matching indicator, the ACR client 215 sends an overlay 212 request to the overlay determination engine 210 requesting the media content overlay 212.

일부 예들에서, 오버레이 요청은 미디어 컨텐츠 식별자(ID)를 포함한다. 추가적인 예들에서, 오버레이 요청은 오버레이 정보 또는 오버레이 파라미터들을 포함한다. 예를 들어, 오버레이 결정 엔진(210)은 컨텐츠 ID, 오버레이 정보 및/또는 오버레이 파라미터들을 사용하여 타겟팅된 오버레이 컨텐츠(212)를 식별한다. 다른 예에서, 오버레이 결정 엔진(210)은 오버레이 포맷을 식별하기 위해 컨텐츠 ID, 오버레이 정보 및/또는 오버레이 파라미터들을 사용할 수 있다. 오버레이 결정 엔진(210)은 컨텐츠 ID, 오버레이 정보 및/또는 오버레이 파라미터들을 오버레이 데이터베이스(211)와 비교하여, 타겟팅된 오버레이 컨텐츠(212) 및 오버레이 포맷을 식별할 수 있다. 오버레이 데이터베이스는 컨텐츠 프로바이더 또는 어드버타이저(예를 들면, 광고 서버(230))에 의해, 주기적 또는 연속적으로 새로운 오버레이 컨텐츠(212) 및 오버레이 포맷으로 업데이트될 수 있다. 오버레이 컨텐츠(212)는 채널의 텔레비전 프로그램의 스트리밍된 미디어 컨텐츠(M)의 오버레이 위치로 전달되기 전 또는 후에, 오버레이 포맷(예를 들면, 오버레이 템플릿 등)을 파퓰레이션한다.In some examples, the overlay request includes a media content identifier (ID). In further examples, the overlay request includes overlay information or overlay parameters. For example, the overlay determination engine 210 identifies the targeted overlay content 212 using the content ID, overlay information, and/or overlay parameters. In another example, the overlay determination engine 210 may use the content ID, overlay information, and/or overlay parameters to identify the overlay format. The overlay determination engine 210 may compare the content ID, overlay information, and/or overlay parameters with the overlay database 211 to identify the targeted overlay content 212 and the overlay format. The overlay database may be updated periodically or continuously with new overlay content 212 and overlay format by a content provider or advisor (eg, ad server 230). The overlay content 212 populates an overlay format (eg, an overlay template, etc.) before or after being delivered to the overlay location of the streamed media content M of the channel's television program.

광고 타겟터(214)는 오버레이 결정 엔진에 의해 미디어 장치들(115)로 전달되는 광고들 및 다른 오버레이 컨텐츠(212)와의 사용자 상호 작용 및 그에 대한 거동을 추적하고 분석한다. 광고 타겟터(214)는 또한 사용자에 대한 주된 관심 사항을 결정하기 위해, 미디어 장치별로 사용자 거동의 분석과 함께 사용자 프로파일 정보를 수신 및 통합할 수 있다. 사용자 또는 사용자 그룹에서 수집되는 이러한 정보 및 데이터는 텔레비전 프로그램 및 통상적으로 시청된 채널 및 시간과 관련하여 선호하는 뷰잉 시간 및 일반적인 뷰잉 습관으로 확장될 수 있다. 그 다음에 광고 타겟터(214)는 오버레이 결정 엔진(210)에게 예를 들어 파라미터들의 형태로, 오버레이 결정 엔진(210)이 각각의 사용자들에게 포맷 방식과 캠페인 예산의 최대 투자 수익을 위해 최선을 다할 때 전달하기 위해 선택할 오버레이 컨텐츠(212)를 결정할 경우 사용할 수 있는 각종 주된 관심 사항 및 뷰잉 습관을 통지할 수 있다.The advertisement targeter 214 tracks and analyzes advertisements delivered to the media devices 115 by the overlay determination engine and user interactions with and behaviors with other overlay content 212. The advertisement targeter 214 may also receive and integrate user profile information with analysis of user behavior for each media device to determine primary interests for the user. This information and data collected by a user or group of users can be extended to preferred viewing times and general viewing habits in relation to television programs and commonly viewed channels and times. The ad targeter 214 then tells the overlay decision engine 210, for example in the form of parameters, that the overlay decision engine 210 does the best for each user for the maximum return on investment of the format and campaign budget When deciding which overlay content 212 to deliver when it's done, it can notify you of a variety of main interests and viewing habits that can be used.

오버레이 결정 엔진(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)는 동적 컨텐츠(예를 들면, 주기적 간격으로 업데이트되거나 리프레시될 수 있는 컨텐츠)로 파퓰레이션될 수 있다. 동적 컨텐츠는 로컬 데이터베이스 또는 외부 시스템에 저장될 수 있다.When the overlay determination engine 210 identifies the targeted overlay content 212 with the aid of the advertisement targeter 214, the overlay determination engine returns the targeted overlay content 212 to the media device 115. In some examples, the overlay determination engine 210 transmits the targeted overlay content 212 directly to the media device 115, for example via a wireless communication network. In other examples, the overlay determination engine 210 transmits the targeted overlay content 212 to the media device 115 through a universal resource locator (URL). When the plurality of targeted overlay contents 212 match the content ID, overlay information and/or overlay parameters, the overlay determination engine 210 generates a targeted content overlay that satisfies the largest number of parameters or other information. Choose. Additionally or alternatively, when the plurality of targeted overlay contents 212 match the content ID, overlay information, and other overlay parameters, the overlay determination engine 210 satisfies the parameters and other information. 212) is selected at random. In other examples, when the plurality of targeted overlay contents 212 match the content ID, overlay information, and overlay parameters, the overlay determination engine 210 matches the content ID, overlay information, and/or overlay parameters. Select a predetermined overlay content 212. The overlay content 212 may be populated with dynamic content (eg, content that can be updated or refreshed at periodic intervals). Dynamic content can be stored in a local database or an external system.

미디어 장치(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)에 대한 사용자 관심과 같은 원하는 정보를 결정할 수 있다.The ACR client 215 of the media device 115 may overlap the overlay content 212 on the content feed 103 when the ACR fingerprint information matches the user fingerprint information. In one example, the media device 115 overlays the overlay content 212 over the content feed 103 in a hypertext markup language (HTML) browser. In another example, media device 115 overlays overlay content 212 over content feed 103 from an OTA broadcaster or cable broadcaster. When the overlay content 212 is placed on the content feed 103, the overlay content 212 may be displayed to the user through the display of the media device 115. In one example, overlay content 212 includes one or more call-to-action options that can be displayed to a user. In this example, the user interacts with the overlay content 212 using an input device (eg, a TV remote control, keyboard, smart phone, or tablet) to generate feedback information. The ACR client 215 may transmit the feedback information to the advertisement targeter 214. Another individual, such as an adviser, may access the feedback information and analyze the feedback information to determine desired information, such as user interest in overlay content 212.

ACR 클라이언트(215)는 오버레이 컨텐츠(212)와 컨텐츠 피드(103) 매칭이 중지되고 및/또는 임계 시간이 만료되는 시점을 결정하기 위해 컨텐츠 피드(103)를 모니터링할 수 있다. 일 예에서, 오버레이 컨텐츠(212) 및 컨텐츠 피드(103) 매칭이 중지되거나 임계 시간이 만료되면, 미디어 장치는 미디어 장치(115) 상에 디스플레이하기 위해 오버레이 컨텐츠(212)를 중첩시키는 것을 중지한다.The ACR client 215 may monitor the content feed 103 to determine when the overlay content 212 and the content feed 103 matching stops and/or the threshold time expires. In one example, when the overlay content 212 and content feed 103 matching stops or the threshold time expires, the media device stops superimposing the overlay content 212 for display on the media device 115.

도 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).3 is a system diagram of an exemplary ACR content manager 322, such as the content managers 122 and 222 shown in FIGS. It is used to control. The content manager 322 may include an ACR engine 204, a lookup server 206, a recorded ACR information database 123, and a channel schedule database 330. The ACR engine 204 receives content frames 302 of media content (M) to be fingerprinted. The ACR engine 204 may also include a fingerprinter 305, a fingerprint sequence matcher 325, and a database 327 in which frame fingerprints 306a-n are stored. Content provider 202 generates multimedia content M that is streamed to media devices 115, including client devices 218 and/or 220 (FIG. 2).

컨텐츠 매니저(322)는 서버와 같은 컴퓨팅 장치, 또는 컴퓨팅 장치들의 분산 그룹으로 구현될 수 있으며, 룩업 서버(206)를 포함한다. 대안적인 구현들에서는, 컨텐츠 매니저(322) 및 룩업 서버(206)가 단일 서버 장치로 결합된다.The content manager 322 may be implemented as a computing device such as a server, or a distributed group of computing devices, and includes a lookup server 206. In alternative implementations, the content manager 322 and the lookup server 206 are combined into a single server device.

일부 구현들에서, 핑거프린터(305)는 멀티미디어 컨텐츠(M)로부터 다수의 컨텐츠 프레임들(302)을 핑거프린트(306)로서 검출하거나 선택한다. 일 실시예에서, 다수의 컨텐츠 프레임들(302)이 순차적으로(예를 들면, 타겟 블록으로서) 순서화되며, 따라서 핑거프린트(306)의 시작부터 끝까지 순차적인 타임 스탬프를 포함한다. 일 예에서, 컨텐츠는 오디오 데이터, 비디오 데이터 또는 둘 다이다. 이 예에서는, 비디오 컨텐츠가 원시 비디오 프레임들이다.In some implementations, the fingerprinter 305 detects or selects a number of content frames 302 from the multimedia content M as the fingerprint 306. In one embodiment, multiple content frames 302 are ordered sequentially (eg, as a target block), thus including a sequential time stamp from start to end of fingerprint 306. In one example, the content is audio data, video data, or both. In this example, the video content is raw video frames.

예를 들어, 핑거프린터(305)가 컨텐츠 프레임들(302)을 수신할 경우, 핑거프린터(305)는 원시 비디오 및/또는 오디오 프레임들과 같은 컨텐츠 프레임들(302)을 처리하여 핑거프린트(306)를 생성하는 방법을 결정한다. 일 예에서, 프레임들은 개별적으로 핑거프린트된다. 다른 예에서, 프레임들은 컬렉션들 또는 시퀀스들로 핑거프린트된다. 핑거프린터(305)는 핑거프린터(305)가 핑거프린팅되는 동안 실행하는 ACR 알고리즘에 기초하여 프레임들을 개별적으로 또는 순차적으로 핑거프린트할 시점을 결정할 수 있으며, 그 예들이 논의될 것이다. 또한, 핑거프린터(305)는 상이한 브로드캐스터들 또는 사용자들에 대해 컨텐츠 프레임들(302)을 다르게 핑거프린트할 수 있다. 이 예에서, 핑거프린터(305)는 상이한 ACR 벤더들에 대한 상이한 ACR 핑거프린팅 알고리즘을 포함한다. 일 예에서, 상이한 ACR 핑거프린팅 알고리즘들이 미리 결정되어 ACR 엔진(204)의 메모리에 저장된다.For example, when the fingerprinter 305 receives the content frames 302, the fingerprinter 305 processes the content frames 302 such as raw video and/or audio frames to perform the fingerprint 306 Decide how to generate ). In one example, the frames are individually fingerprinted. In another example, frames are fingerprinted as collections or sequences. The fingerprinter 305 may determine when to fingerprint frames individually or sequentially based on the ACR algorithm that the fingerprinter 305 executes while fingerprinting, examples of which will be discussed. Also, the fingerprinter 305 may fingerprint the content frames 302 differently for different broadcasters or users. In this example, fingerprinter 305 includes different ACR fingerprinting algorithms for different ACR vendors. In one example, different ACR fingerprinting algorithms are predetermined and stored in the memory of the ACR engine 204.

또 다른 예에서, 상이한 ACR 핑거프린팅 알고리즘들이 써드 파티 ACR 벤더들에 의해 제공된다. 그러한 벤더들에 의해 상이한 ACR 핑거프린팅 알고리즘들이 제공될 경우, 핑거프린터(305)는 상이한 ACR 핑거프린팅 알고리즘들을 통합한다. 일 예에서, ACR 핑거프린팅은 YUV 4:2:2 색 공간 내에서 그리고 고해상도 또는 다른 레벨의 해상도에서 RAW 비디오를 사용한다. 비디오 컨텐츠가 로컬 프로바이더(106) 또는 다른 컨텐츠 프로바이더(202)에서 수신될 경우, 핑거프린터(305)는 비디오 컨텐츠를 YUV 4:2:0 색 공간으로 변환하고, 미디어 장치(115)로 전송되기 전에 브로드캐스터 또는 디스트리뷰터에 의한 인코딩을 위해 임계 해상도 레벨로 해상도를 스케일 다운한다. In another example, different ACR fingerprinting algorithms are provided by third party ACR vendors. If different ACR fingerprinting algorithms are provided by such vendors, the fingerprinter 305 incorporates different ACR fingerprinting algorithms. In one example, ACR fingerprinting uses RAW video within the YUV 4:2:2 color space and at high resolution or other levels of resolution. When the video content is received from the local provider 106 or other content provider 202, the fingerprinter 305 converts the video content to YUV 4:2:0 color space and transmits it to the media device 115. The resolution is scaled down to the threshold resolution level for encoding by the broadcaster or distributor before it becomes available.

일부 구현들에서, 핑거프린터(305)는 핑거프린트 시퀀스 매칭기(325)를 포함하거나 이것과 통신한다. 아래에서 더 상세히 설명되는 바와 같이, 핑거프린트 시퀀스 매칭기(325)는 핑거프린트들(306a-n)의 시퀀스를, 소정 세트의 개별 프레임 핑거프린트들(306a-n)이 생성되는 오리지널 비디오 컨텐츠에 매칭시킨다.In some implementations, the fingerprinter 305 includes or communicates with the fingerprint sequence matcher 325. As described in more detail below, the fingerprint sequence matcher 325 converts a sequence of fingerprints 306a-n to the original video content from which a predetermined set of individual frame fingerprints 306a-n are generated. Match it.

핑거프린터(305)가 컨텐츠 프레임들(302)을 핑거프린팅한 경우, 핑거프린터(305)는 핑거프린트들(306a-n)(채널 정보, 타임 코드 및 핑거프린트 정보를 포함함)을 오버레이 데이터베이스(211) 및/또는 룩업 서버(206)에 전송한다. 룩업 서버(206)는 오버레이 데이터베이스(211)로부터 핑거프린트들(306a-n) 및 관련 정보를 검색한다. 룩업 서버(206)는 또한 오버레이 결정 엔진(210) 및 광고 타겟터(214)와 통신하거나 연결되어, 오버레이(212) 및 주제 매칭 정보를 오버레이 결정 엔진(210) 및 광고 타겟터(214)에 전송할 수 있으며, 광고 타겟터(214)는 클라이언트 장치(218 또는 220) 상의 사용자들을 상황에 맞게 타겟팅하는데 사용된다.When the fingerprinter 305 fingerprints the content frames 302, the fingerprinter 305 stores the fingerprints 306a-n (including channel information, time code, and fingerprint information) in an overlay database ( 211) and/or the lookup server 206. The lookup server 206 retrieves the fingerprints 306a-n and related information from the overlay database 211. The lookup server 206 is also in communication or connection with the overlay determination engine 210 and ad targeter 214 to transmit the overlay 212 and topic matching information to the overlay determination engine 210 and ad targeter 214. The advertisement targeter 214 is used to target users on the client device 218 or 220 according to the context.

일부 예들에서는, 상이한 ACR 핑거프린팅 알고리즘들이 상이한 ACR 벤더들의 룩업 서버들에 상이한 핑거프린트 정보를 제공하기 위해 동일한 컨텐츠에서 사용된다. 동일한 컨텐츠(예를 들면, 컨텐츠 프레임들)(302)를 다르게 핑거프린팅하는 것의 이점은 컨텍스트적으로 관련된(contextually-relevant) 광고 및 인터랙티브 컨텐츠를 미디어 소비 장치들의 상이한 뷰어들에게 제공하는 것일 수 있다. 추가적인 예들에서, 컨텐츠 프레임들(302)은 상이한 피드들로부터의 미디어 컨텐츠(M)를 포함한다. 이 예에서, 상이한 ACR 핑거프린팅 알고리즘들은 상이한 ACR 벤더들의 룩업 서버들에 상이한 핑거프린팅 정보를 제공하기 위해 컨텐츠 프레임들(302)의 상이한 피드들의 컨텐츠에 사용된다.In some examples, different ACR fingerprinting algorithms are used in the same content to provide different fingerprint information to lookup servers of different ACR vendors. An advantage of fingerprinting the same content (eg, content frames) 302 differently may be to provide contextually-relevant advertising and interactive content to different viewers of media consuming devices. In further examples, the content frames 302 include media content (M) from different feeds. In this example, different ACR fingerprinting algorithms are used for the content of different feeds of content frames 302 to provide different fingerprinting information to lookup servers of different ACR vendors.

상이한 핑거프린팅 정보는 상이한 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)에게 제공될 수 있다. 또 다른 예에서는, 매칭 이벤트에 관한 정보가 컨텐츠 매칭의 분석을 위해 브로드캐스트 클라우드에 전송된다.Different fingerprinting information can be uploaded to lookup servers of different ACR vendors, respectively. Different ACR vendors can be integrated into viewing devices manufactured by different contract equipment manufacturers (CEMs). For example, Toshiba TV can use Samba® ACR fingerprinting and Samsung® TV can use Enswer® ACR fingerprinting. An advantage of the fingerprinter 305, which includes ACR fingerprinting algorithms for different ACR vendors, is that it can fingerprint content provided to viewers through different ACR vendors regardless of the manufacturer of the media consuming device. In one example, ACR fingerprinting information is used for digital advertisement replacement (DAR). In another example, ACR fingerprinting information is used for advertisement or content augmentation and data collection. The overlay determination engine 210 and advertisement targeter 214 (FIG. 2) may use the fingerprinting information to match the encoded content with contextually related advertisements, information, and/or interactive content. Matched content and/or advertisements may be provided to media devices 115 to stream a display thereon. In another example, information about the matching event is transmitted to the broadcast cloud for analysis of content matching.

핑거프린터(305)는 시스템에서 브로드캐스트 분배의 업스트림 ACR 핑거프린팅을 수행할 수 있다. 예를 들어, 핑거프린팅은 브로드캐스트 피드들이 인코딩/업로딩을 위해 전송될 수 있는 브로드캐스트 체인에서 이루어진다. 단일 브로드캐스트 피드가 사용되는 경우, ACR 핑거프린팅 및 인코딩/업로딩을 위해 구매, 설치, 모니터링 및 유지 관리되어야 하는 장치 및/또는 응용 프로그램들의 수가 줄어들 수 있다. 예를 들어, 시스템 인프라스트럭처(랙 공간, 전력 및 이더넷 연결)의 감소와 같은, 자본 비용(CAPEX) 및/또는 운영 비용(OPEX)이 줄어들 수 있다. 또한, 단일 브로드캐스트 피드가 사용될 경우, 브로드캐스터의 분배 증폭기로부터 생성되는 브로드캐스트 피드 수가 감소될 수 있다.The fingerprinter 305 may perform upstream ACR fingerprinting of broadcast distribution in the system. For example, fingerprinting takes place in a broadcast chain in which broadcast feeds can be sent for encoding/uploading. When a single broadcast feed is used, the number of devices and/or applications that must be purchased, installed, monitored and maintained for ACR fingerprinting and encoding/uploading may be reduced. Capital costs (CAPEX) and/or operating costs (OPEX) can be reduced, for example, reduction in system infrastructure (rack space, power and Ethernet connectivity). Also, when a single broadcast feed is used, the number of broadcast feeds generated from the broadcaster's distribution amplifier can be reduced.

논의된 바와 같이, 핑거프린터(305)는 멀티미디어 컨텐츠(M)로부터 개별 핑거프린트들(306a-n)를 생성할 수 있으며, 예를 들면 미디어 장치들(115) 중의 하나 상에 디스플레이되는 경로에 있는, 브로드캐스팅 서버, 헤드 엔드, 스위치 및/또는 셋탑 박스를 통과할 수 있다. 핑거프린트들(306a-n)은 하나의 프레임 또는 다수의 프레임들을 포함할 수 있다. 이 프레임들은 시간 순서 타임 스탬프들을 가지고 순차적으로 취해질 수 있거나, 예를 들어 여전히 대응하는 시간 스탬트들을 가지고, 하나 건너 하나(또는 제 3 프레임마다)와 같은 일정한 간격으로 취해질 수도 있다.As discussed, the fingerprinter 305 can generate individual fingerprints 306a-n from the multimedia content M, e.g. in a path displayed on one of the media devices 115. , Broadcast server, head end, switch and/or set-top box. The fingerprints 306a-n may include one frame or multiple frames. These frames may be taken sequentially with chronological time stamps, or may be taken at regular intervals, such as every other one (or every third frame), for example with still corresponding time stamps.

핑거프린트 시퀀스 매칭기(325)는 이 핑거프린트들에 의해 표현되는 대응 비디오 프레임들이 유래하는 오리지널 비디오 컨텐츠의 프레임 핑거프린트들(306a-n)(데이터베이스(327)에 저장됨)에 프레임들을 매칭시키기 위해 (쿼리 핑거프린트으로서) 이들 개별 프레임들의 세트 또는 시퀀스를 처리할 수 있다. 프레임 핑거프린트들(306a-n)은 단일 프레임일 수 있으며, 그 각각은 대응하는 타임 슬롯(또는 프레임 번호 또는 미디어 프로그램의 시작부터 시간의 양과 같은 일부 종류의 인덱스)을 포함한다. 매칭이 발견되면, 사용자가 미디어 장치(115) 상에서 시청하고 있는 미디어 프로그램, 채널 또는 채널 변경, 프로그램의 시작 및 종료 시간에 따른 스케줄의 시간 슬롯, 상업용 시간 슬롯, 및 매칭 미디어 프로그램 또는 텔레비전 채널의 정보 등을 결정할 수 있다.The fingerprint sequence matcher 325 matches the frames to frame fingerprints 306a-n (stored in the database 327) of the original video content from which the corresponding video frames represented by these fingerprints originate. In order to be able to process a set or sequence of these individual frames (as a query fingerprint). The frame fingerprints 306a-n may be a single frame, each of which includes a corresponding time slot (or some kind of index, such as a frame number or an amount of time from the start of a media program). If a match is found, the media program, channel or channel change that the user is watching on the media device 115, time slot of the schedule according to the start and end time of the program, commercial time slot, and information of the matching media program or television channel And so on.

매칭 결과에 대한 신뢰를 갖기 위해, 핑거프린트 시퀀스 매칭기(325)는 핑거프린트들(306a-n)의 시퀀스가 시간 순서로 정렬된다는 사실을 이용할 수 있으며, 따라서 매칭 핑거프린트들(306a-n)은 동일한 비디오에 속할뿐만 아니라 시간 순서도 비슷하다. 핑거프린트 시퀀스 매칭기(325)는 또한 매칭 핑거프린트 시퀀스가 어떻게(빠르게, 느리게 또는 역으로) 재생되는지를 검출하기 위해, 핑거프린트에서 프레임 시퀀스의 이러한 시간적인 특성들을 사용할 수 있다. ACR 핑거프린트 시퀀스 매칭기(325)의 알고리즘은 예를 들어 풀(full) 프레임 레이트에서의 정상 속도, 1/2 프레임 레이트에서의 정상 속도, 1/3 프레임 레이트에서의 정상 속도 등과 같은 특정 재생 시나리오를 검출하도록 구현될 수 있다.In order to have confidence in the matching result, the fingerprint sequence matcher 325 can take advantage of the fact that the sequence of the fingerprints 306a-n is arranged in chronological order, and thus the matching fingerprints 306a-n Not only belong to the same video, but are also similar in chronological order. The fingerprint sequence matcher 325 may also use these temporal properties of the frame sequence in the fingerprint to detect how (fast, slow or reverse) the matching fingerprint sequence is played back. The algorithm of the ACR fingerprint sequence matcher 325 can be used for specific playback scenarios such as, for example, a normal rate at a full frame rate, a normal rate at a 1/2 frame rate, and a normal rate at 1/3 frame rate. It can be implemented to detect.

일부 예들에서, 룩업 서버(206)는 핑거프린터(305)가 데이터베이스(327)에서 매칭되는 하나 이상의 프레임 핑거프린트들(306a-n)을 찾아 낸 것에 응답하여, 미디어 장치(115)로 스트리밍되는 채널을 식별한다. 룩업 서버(206)는 그 후 채널 스케줄 데이터베이스(330)에서 해당 채널에 대한 현재의 스케줄링 정보를 검색하며, 이에 따라 스트리밍되는 미디어 프로그램을 결정할 수 있다. 컨텐츠 매니저(322)는 기록된 ACR 정보 데이터베이스(123)에 뷰어의 미디어 장치(115) 상에서의 프로그램 시청 이력을 기록할 수 있다. 뷰어가 미디어 장치(115)를 턴 오프하거나, 채널을 변경하거나, 또는 미디어 프로그램이 종료되기 전에 미디어 장치로의 스트리밍이 중단된 경우, 컨텐츠 매니저(322)는 기록된 ACR 정보 데이터베이스(123)에, 미디어 프로그램의 소스(예를 들면, 특정 브로드캐스터 또는 브로드캐스터 장치로부터) 및 미디어 프로그램이 중단된 미디어 프로그램의 위치를 기록할 수 있다.In some examples, the lookup server 206 is in response to the fingerprinter 305 finding one or more matching frame fingerprints 306a-n in the database 327, the channel streamed to the media device 115. To identify. The lookup server 206 may then search the channel schedule database 330 for current scheduling information for the corresponding channel, and accordingly, determine a media program to be streamed. The content manager 322 may record the viewer's viewing history of a program on the media device 115 in the recorded ACR information database 123. When the viewer turns off the media device 115, changes the channel, or stops streaming to the media device before the media program ends, the content manager 322 stores the recorded ACR information database 123, The source of the media program (eg, from a specific broadcaster or broadcaster device) and the location of the media program at which the media program was stopped may be recorded.

추가 구현들에서, 미디어 장치(115)가 미디어 프로그램이 이전에 중단된 채널로 복귀할 경우, 미디어 장치(115)는 컨텐츠 매니저(322)에게 그것에 관한 하나 이상의 메시지를 전송한다. 컨텐츠 매니저(322)는 기록된 ACR 정보 데이터베이스(123)에서, 미디어 장치에 대한 뷰잉 이력을 조회하고 나서, 미디어 프로그램이 이전에 중단되었던 것으로 판정할 수 있다. 또한, 컨텐츠 매니저(322)는 미디어 장치(115)에 대한 응답 메시지에서, 미디어 프로그램이 이전에 중단되었다는 것을 통신하고, 텔레비전 브로드캐스트의 소스 및 그것이 중단된 미디어 프로그램 내의 위치를 제공할 수 있다. 일부 예들에서, 미디어 장치(115)는 "이 미디어 프로그램 시청을 재개하시겠습니까?"와 같은 프롬프트 및 뷰어가 동의하거나 거절할 수 있게 하는(예컨대, 원격 제어 동작을 통해) 선택 가능한 인디케이터(213)와 함께 미디어 장치의 디스플레이에 오버레이(212)를 전달한다. 뷰어가 부정으로 응답하면, 미디어 장치(115)는 오버레이(212)를 제거할 수 있다. 뷰어가 긍정적으로 응답하면, 미디어 장치(115)는 중단되었던 미디어 프로그램 내의 지점에 대해 기록된 위치에서 소스로부터 미디어 프로그램 스트리밍을 시작할 수 있다.In further implementations, when the media device 115 returns to the channel where the media program was previously interrupted, the media device 115 sends one or more messages about it to the content manager 322. The content manager 322 may check the viewing history of the media device in the recorded ACR information database 123 and then determine that the media program has been previously stopped. In addition, the content manager 322 may communicate in a response message to the media device 115 that the media program has previously been interrupted, and provide the source of the television broadcast and the location within the media program where it was interrupted. In some examples, the media device 115 may be accompanied by a prompt such as “Would you like to resume viewing this media program?” and a selectable indicator 213 that allows the viewer to agree or decline (e.g., via a remote control operation). The overlay 212 is delivered to the display of the media device. If the viewer responds negatively, the media device 115 may remove the overlay 212. If the viewer responds positively, the media device 115 can start streaming the media program from the source at the recorded location for the point in the media program where it was stopped.

일부 구현들에서, 컨텐츠 매니저(322)(또는 일반적으로 ACR 시스템(124 또는 126))는 오버레이(212)를 미디어 장치(115)의 디스플레이에 전달한다. 오버레이(212)는 라이브 미디어 피드의 재생, 일시 정지, 빨리 감기 또는 되감기와 같은 제어 동작과 관련된 제어 옵션들을 제공하기 위해 선택 가능한 옵션(또는 인디케이터)을 제공할 수 있다. 대안적인 구현에서, 미디어 장치(TV와 같은)를 위한 원격 제어기는 선택 시에 이들 동일한(또는 유사한) 제어 옵션을 제공하는 입력들을 포함한다. 오버레이(212) 상의 옵션 선택(또는 원격 제어기 상의 대응하는 입력)을 수신하면, 미디어 장치(115)는 제어 옵션의 선택을 나타내는 선택 신호를 ACR 클라이언트(215)에게 제공한다. 이 선택은 예를 들어, 라이브 미디어 피드를 재생, 일시 정지, 빨리 감기 또는 되감기 하기 위한 입력일 수 있다. ACR 클라이언트(215)는 선택된 입력 또는 옵션에 대응하는 라이브 미디어 피드에서 스트리밍되는 미디어 프로그램에 대한 제어 동작을 수행할 수 있다.In some implementations, content manager 322 (or generally ACR system 124 or 126) delivers overlay 212 to the display of media device 115. The overlay 212 may provide selectable options (or indicators) to provide control options related to a control operation such as play, pause, fast forward or rewind of the live media feed. In an alternative implementation, a remote controller for a media device (such as a TV) includes inputs that provide these same (or similar) control options upon selection. Upon receiving an option selection on the overlay 212 (or a corresponding input on the remote controller), the media device 115 provides a selection signal to the ACR client 215 indicative of the selection of the control option. This selection can be, for example, an input to play, pause, fast forward or rewind a live media feed. The ACR client 215 may perform a control operation on a media program streamed from a live media feed corresponding to the selected input or option.

스트리밍의 위치가 변경되거나 일시 정지된 경우, ACR 클라이언트는 (데이터베이스(123)에 저장된 미디어 장치의 ACR 데이터에 대한 액세스를 통해) 오버레이(212)(또는 원격 제어기)의 옵션들 중 하나를 선택하는 것을 통해 스트리밍이 재개될 때 미디어 프로그램이 재생을 시작할 위치를 나타낼 수 있다. ACR 클라이언트(215)는 예를 들어 사용자의 재생 선택을 나타내는 선택 신호의 수신에 따라 미디어 프로그램을 스트리밍하기 시작할 때 사용하기 위해 이 위치를 저장하거나 버퍼링할 수 있다. ACR 클라이언트가 자동 컨텐츠 인식 데이터를 추적함에 따라, ACR 클라이언트(215)는 미디어 장치의 사용자가 라이브 미디어 스트림 내로 이동한 위치를 추적할 수 있다. 몇몇 경우들에 있어서, 라이브 미디어 스트림은 미디어 장치로 스트리밍되는 라이브 미디어 피드의, 제어 옵션의 사용자 조작에 의해 지시되는 위치로의 이동을 용이하게 하기 위해 ACR 서버, ACR 클라이언트, 또는 ACR 서버와 ACR 클라이언트의 조합에서 일정 기간 동안 버퍼링된다When the location of the streaming is changed or paused, the ACR client is prompted to select one of the options of the overlay 212 (or remote controller) (via access to the ACR data of the media device stored in the database 123). When streaming resumes, the media program can indicate where to start playing. The ACR client 215 may store or buffer this location for use when starting to stream a media program, for example upon receipt of a selection signal indicating a user's playback selection. As the ACR client tracks the automatic content recognition data, the ACR client 215 can track the location where the user of the media device has moved into the live media stream. In some cases, the live media stream is an ACR server, ACR client, or ACR server and ACR client to facilitate movement of a live media feed streamed to the media device to a location indicated by user manipulation of control options. Is buffered for a period of time in a combination of

다양한 구현들에서, ACR 클라이언트(215)는 제어 옵션들이 오버레이(212)에서 또는 원격 제어기의 입력으로부터 이용 가능하게 한다. 오버레이 주입에 대해 더 언급하면, 일시 정지 옵션이 선택될 경우, 다른 옵션들(일시 정지, RWD 및 FF 버튼)이 선택을 위해 디스플레이될 수 있다. 현재 선택된 옵션이 회색으로 표시되거나 그 옵션이 현재 제어 작업으로 실행되고 있음을 강조 표시할 수 있다.In various implementations, ACR client 215 makes control options available at overlay 212 or from input of a remote controller. Regarding overlay injection further, if the pause option is selected, other options (pause, RWD and FF buttons) may be displayed for selection. The currently selected option can be grayed out, or it can be highlighted that the option is currently running as a control task.

일부 구현들에서, 컨텐츠 매니저(322)는 룩업 서버(206)와의 상호 작용을 목표로 하는 오버레이(212)의 전달을 위해 그리고 기록된 ACR 정보 데이터베이스(123)에 대한 액세스를 위해 오버레이 결정 엔진(210) 및 오버레이 데이터베이스(211)(도 2)와의 조정을 행한다. 스트리밍의 재시작(예를 들면, 일시 정지, 종료, 되감기 또는 빨리 감기로부터)은 텔레비전 브로드캐스터로부터, 또는 컨텐츠 매니저(322)에 저장된 미디어 프로그램의 나머지의 버퍼링된 버전으로부터 HTTP(Hypertext Transfer Protocol) 라이브 스트리밍(HLS) 스트림의 재생을 시작하는 것일 수 있다.In some implementations, the content manager 322 is the overlay decision engine 210 for delivery of the overlay 212 targeting interaction with the lookup server 206 and for access to the recorded ACR information database 123. ) And the overlay database 211 (Fig. 2). Resumption of streaming (e.g., from pause, end, rewind or fast forward) can be done from the television broadcaster, or from the rest of the buffered versions of the media program stored in the content manager 322 Hypertext Transfer Protocol (HTTP) live streaming. (HLS) It may be to start playing the stream.

도 4는 대응하는 텔레비전 프로그램을 식별하기 위해 입력(또는 쿼리) 핑거프린트(306a)의 프레임 시퀀스를 매칭하는 자동 컨텐츠 인식(ACR) 방법(400)의 예시적인 흐름도를 도시한 것이다. 방법(400)은 데이터 처리 하드웨어(예를 들면, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들면, 처리 장치에 의해 실행되는 명령어들), 펌웨어 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 적어도 부분적으로 수행될 수 있다. 방법(400)은 별도의 룩업 서버(206)를 포함할 수 있는, 컨텐츠 매니저(322)의 로직을 처리함으로써 수행될 수 있다. 방법(400)은 또한 부분적으로, 클라이언트 장치(218 또는 220)와 같은 클라이언트 장치, 또는 도 1의 ACR 시스템(124 또는 126) 또는 도 2의 ACR 시스템(224 또는 226)과 같은 서버 시스템에 의해 수행될 수 있다. 대안적으로, 방법은 다양한 유형의 사용자 장치, 휴대용 장치, 텔레비전, 프로젝터 또는 다른 미디어 장치 내의 다른 처리 장치에 의해 수행될 수 있다.4 depicts an exemplary flow diagram of an automatic content recognition (ACR) method 400 that matches a sequence of frames in an input (or query) fingerprint 306a to identify a corresponding television program. Method 400 may include data processing hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executed by a processing device), firmware, or a combination thereof. May be performed at least in part by processing logic that may Method 400 may be performed by processing the logic of content manager 322, which may include a separate lookup server 206. Method 400 is also performed, in part, by a client device, such as client device 218 or 220, or a server system, such as ACR system 124 or 126 of FIG. 1 or ACR system 224 or 226 of FIG. Can be. Alternatively, the method may be performed by various types of user devices, portable devices, televisions, projectors, or other processing devices within other media devices.

도 4를 참조하면, 방법(400)은 컨텐츠(또는 미디어) 장치(410)에서 컨텐츠 피드(103)로부터 미디어 컨텐츠(M)를 수신하는 처리 로직으로 시작할 수 있다. 방법(400)은 미디어 컨텐츠(M)에 핑거프린팅을 수행하는 로직으로 계속되어 프레임들의 시퀀스 및 대응하는 시간 기반 인덱스(예컨대, 대응하는 타임 스탬프)를 포함하는 입력(또는 쿼리) 핑거프린트(306a)를 생성한다(420). 방법(400)은 시간 기반 인덱스에 따라, 오리지널 미디어 컨텐츠(M)로부터의 복수의 프레임 핑거프린트들(306a-n)과 쿼리 핑거프린트(306a)를 매칭시키는 로직으로 계속되어, 현재 미디어 프로그램을 스트리밍하고 있는 채널을 식별한다(430). 방법(400)은 채널에 대한 스케줄링 데이터로부터 미디어 프로그램을 식별하는 처리 로직으로 계속될 수 있다.Referring to FIG. 4, the method 400 may begin with processing logic for receiving media content M from a content feed 103 at a content (or media) device 410. The method 400 continues with logic to perform fingerprinting on the media content M, followed by an input (or query) fingerprint 306a including a sequence of frames and a corresponding time-based index (e.g., a corresponding time stamp). Generate (420). The method 400 continues with logic to match a plurality of frame fingerprints 306a-n from the original media content M and a query fingerprint 306a according to the time-based index, streaming the current media program. Identifying the active channel (430). Method 400 may continue with processing logic that identifies the media program from scheduling data for the channel.

도 5는 미디어 프로그램의 중단을 검출하고 미디어 프로그램이 이전에 스트리밍된 채널로 돌아 왔을 때 미디어 프로그램을 계속 볼 수 있는 옵션을 제공하는 ACR의 방법(500)의 예시적인 흐름도를 도시한 것이다. 방법(500)은 데이터 처리 하드웨어(예를 들면, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들면, 처리 장치에 의해 실행되는 명령어들), 펌웨어 또는 이들의 조합을 포함할 수 있는 로직을 처리하는 것에 의해 적어도 부분적으로 수행될 수 있다. 방법(500)은 별도의 룩업 서버(206)를 포함할 수 있는 컨텐츠 매니저(322)의 로직을 처리함으로써 수행될 수 있다. 방법(500)은 또한 부분적으로 클라이언트 장치(218 또는 220)와 같은 클라이언트 장치에 의해, 또는 도 1의 ACR 시스템(124 또는 126) 또는 도 2의 ACR 시스템(224 또는 226)과 같은 서버 시스템에 의해 수행될 수 있다. 대안적으로, 방법(500)은 다양한 유형의 사용자 장치, 휴대용 장치, 텔레비전, 프로젝터 또는 다른 미디어 장치 내의 다른 처리 장치에 의해 수행될 수 있다.5 shows an exemplary flow diagram of ACR's method 500 that detects interruption of a media program and provides an option to continue viewing the media program when the media program returns to a previously streamed channel. Method 500 may include data processing hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executed by a processing device), firmware, or a combination thereof. It can be done at least in part by processing the logic that can be. Method 500 may be performed by processing the logic of content manager 322, which may include a separate lookup server 206. Method 500 is also in part by a client device, such as client device 218 or 220, or by a server system such as ACR system 124 or 126 of FIG. 1 or ACR system 224 or 226 of FIG. Can be done. Alternatively, method 500 may be performed by various types of user devices, portable devices, televisions, projectors, or other processing devices within other media devices.

도 5를 참조하면, 방법(500)은 미디어 프로그램을 시청하는 채널의 변경 또는 다른 종료를 검출하는 처리 로직으로 시작할 수 있다(510). 방법(500)은 기록된 ACR 데이터에서, 예를 들어 기록된 ACR 정보 데이터베이스(123) 내에서 뷰잉이 종료될 때의 미디어 프로그램의 채널, 위치 및 소스를 기록하는 처리 로직으로 계속된다(520). 방법(500)은 미디어 장치가 뷰잉을 위해 채널로 되돌아 왔음을 검출하는 처리 로직으로 계속된다(530). 이 검출은 채널 변경의 표시 또는 미디어 장치가 그 특정 채널을 턴 온하였다는 표시를 갖는 미디어 장치로부터 메시지 수신에 의해 수행될 수 있다. 방법(500)은 중단된 미디어 프로그램이, 기록된 ACR 정보 데이터베이스(123)에 위치되어 있는지 여부를 추가로 결정하는 처리 로직으로 계속된다(540). 결과가 부정인 경우, 방법(500)은 블록(510)에서 다시 시작할 수 있다.Referring to FIG. 5, the method 500 may begin with processing logic detecting a change or other termination of a channel for viewing a media program (510). The method 500 continues 520 with processing logic that records the channel, location and source of the media program at the end of viewing in the recorded ACR data, for example in the recorded ACR information database 123. Method 500 continues 530 with processing logic to detect that the media device has returned to the channel for viewing. This detection may be performed by receiving a message from a media device with an indication of a channel change or an indication that the media device has turned on that particular channel. The method 500 continues 540 with processing logic that further determines whether the interrupted media program is located in the recorded ACR information database 123. If the result is negative, the method 500 may begin again at block 510.

중단된 미디어 프로그램이 데이터베이스(123) 내에 위치하면(블록 540에서의 결정), 방법(500)은 미디어 프로그램의 아이덴티티를 미디어 장치에 전송하는 처리 로직으로 계속된다(550). 방법(500)은 미디어 장치로 하여금 사용자가 미디어 프로그램 시청을 재개하기 원하는지의 여부를 요청하는 오버레이를 디스플레이 하게 하는 처리 로직으로 계속된다(560). 방법(500)은 미디어 장치를 통해 입력이 수신되어, 미디어 프로그램 시청을 재개할 것인지 여부를 결정하는 처리 로직으로 계속된다(570). 입력이 수신되지 않은 경우(또는 부정 응답이 수신된 경우), 방법(500)은 오버레이(212)를 제거하고 미디어 장치(580)로부터 대안적인 명령들로 진행하는 처리 로직으로 계속될 수 있다. 긍정 응답이 수신되면, 방법(500)은 미디어 프로그램이 이전에 종료된 위치로부터 미디어 프로그램의 HTTP 라이브 스트림(HLS) 또는 다른 유형의 텔레비전 브로드캐스트 스트림을 재생하기 시작하는 처리 로직으로 계속될 수 있다(590). 미디어 프로그램은 오리지널 텔레비전 브로드캐스터로부터 스트리밍될 수 있거나 컨텐츠 매니저(322) 또는 다른 ACR 시스템에 저장된 미디어 프로그램의 버퍼링된 버전으로부터 스트리밍될 수 있다.If the interrupted media program is located in the database 123 (determined at block 540), the method 500 continues (550) with processing logic that transmits the identity of the media program to the media device. The method 500 continues 560 with processing logic that causes the media device to display an overlay requesting whether the user wishes to resume viewing the media program. Method 500 continues 570 with processing logic that receives input through the media device and determines whether to resume viewing the media program. If no input is received (or if a negative response is received), method 500 may continue with processing logic to remove overlay 212 and proceed with alternative instructions from media device 580. If an affirmative response is received, the method 500 may continue with processing logic to start playing an HTTP live stream (HLS) or other type of television broadcast stream of the media program from the location where the media program previously ended ( 590). The media program may be streamed from the original television broadcaster or may be streamed from a buffered version of the media program stored in the content manager 322 or other ACR system.

도 6은 라이브 미디어 피드를 스트리밍하는 타이밍을 제어하도록(예를 들면, 빨리 감기, 되감기, 일시 정지 등과 같은 재생 모드를 갖는 재생 제어 옵션을 통해) 미디어 장치 상에 옵션을 제공하는 ACR의 방법(600)의 예시적인 흐름도이다. 방법(600)은 하드웨어(예를 들면, 회로, 전용 로직, 프로그래머블 로직, 마이크로 코드 등), 소프트웨어(예를 들면, 처리 장치에 의해 실행되는 명령어들), 펌웨어 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 적어도 부분적으로 수행될 수 있다. 방법(600)은 개별 룩업 서버(206)를 포함할 수 있는, 컨텐츠 매니저(322)의 로직을 처리함으로써 수행될 수 있다. 방법(600)은 또한 클라이언트 장치(218 또는 220) 상의 ACR 클라이언트(215)와 같은 클라이언트 장치에 의해, 또는 부분적으로는 도 1의 ACR 시스템(124 또는 126) 또는 도 2의 ACR 시스템(224 또는 226)과 같은 서버 시스템에 의해 수행될 수 있다. 대안적으로, 방법(600)은 다양한 유형의 사용자 장치, 휴대용 장치, 텔레비전, 프로젝터 또는 다른 미디어 장치 내의 다른 처리 장치에 의해 수행된다.6 shows ACR's method 600 of providing options on a media device to control the timing of streaming a live media feed (e.g., via a playback control option having a playback mode such as fast forward, rewind, pause, etc.) ) Is an exemplary flow chart. Method 600 may include hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executed by a processing device), firmware, or a combination thereof. It can be performed at least in part by processing logic. Method 600 may be performed by processing the logic of content manager 322, which may include a separate lookup server 206. The method 600 may also be by a client device, such as an ACR client 215 on the client device 218 or 220, or in part by the ACR system 124 or 126 of FIG. 1 or the ACR system 224 or 226 of FIG. 2. ). Alternatively, method 600 is performed by various types of user devices, portable devices, televisions, projectors, or other processing devices within other media devices.

도 6을 참조하면, 방법(600)은 라이브 미디어 피드를 스트리밍하는 미디어 장치(115) 상에 오버레이(212)를 디스플레이하는 처리 로직으로 시작하며, 여기서 오버레이(212)는 제어 옵션들(예를 들면, 인디케이터, 입력, 버튼 등)을 포함한다(610). 대안적으로, 방법(600)은 제어 옵션들을 제공하기 위해 미디어 장치(115)의 원격 제어기 상의 입력들을 활성화시키는 처리 로직으로 시작한다(615). 각각의 제어 옵션은 라이브 미디어 피드를 스트리밍하는 타이밍(예를 들면, 재생 모드를 통해)을 제어하도록 구성될 수 있고, 라이브 미디어 피드의 소스와 관련이 없을 수 있다(예를 들면, 해당 프로바이더의 셋탑 박스에 연결되는 케이블 프로바이더의 제어기가 아님). 다양한 구현들에서, 옵션들은 라이브 미디어 피드 내에서 스트리밍되는 미디어 프로그램을 재생, 일시 정지, 되감기(RWD) 또는 빨리 감기(FF)하기 위한 다양한 재생 모드들에 대한 입력들 또는 명령들을 포함할 수 있지만, 미디어 프로그램의 특정 섹션, 챕터, 또는 에피소드로의 점프와 같은 다른 동작들이 상정될 수도 있다. 미디어 프로그램은 도 4를 참조하여 설명된 바와 같이 결정될 수 있다.6, method 600 begins with processing logic to display an overlay 212 on a media device 115 streaming a live media feed, where the overlay 212 includes control options (e.g., , Indicator, input, button, etc.) (610). Alternatively, method 600 begins 615 with processing logic that activates inputs on a remote controller of media device 115 to provide control options. Each control option may be configured to control the timing of streaming the live media feed (e.g., via playback mode) and may not be related to the source of the live media feed (e.g. Not the controller of the cable provider that connects to the set-top box). In various implementations, the options may include inputs or instructions for various playback modes to play, pause, rewind (RWD) or fast forward (FF) a media program streamed within a live media feed. Other actions may be envisioned, such as jumping to a specific section, chapter, or episode of the media program. The media program may be determined as described with reference to FIG. 4.

도 6을 더 참조하면, 방법(600)은 제어 옵션(620)의 선택을 검출하는 처리 로직으로 계속된다. 방법(600)은 검출시에 미디어 프로그램의 위치, 예를 들어 미디어 프로그램이 일시 정지된 위치를 결정(및 저장)하기 위해 ACR 데이터를 사용하는 처리 로직으로 계속된다(630). 방법(600)은 미디어 프로그램을 스트리밍하는 타이밍을 제어하기 위해, 예를 들어, 일시 정지, 재생, 빨리 감기 또는 되감기를 하기 위해 선택된 제어 옵션과 관련된 제어 동작을 실행하는 처리 로직으로 계속된다(640). 동작이 예를 들어 빨리 감기, 되감기 또는 다른 섹션으로 점프하는 것인 경우, 방법(600)은 사용자가 미디어 프로그램에서 되감기 또는 빨리 감기를 중지하는 미디어 프로그램 내의 위치(또는 점프 동작의 목적지)를 추적 및 결정하는 처리 로직으로 계속된다(645). 방법(600)은 재생 옵션(650)의 선택을 검출하는 처리 로직으로 계속된다(650). 방법(600)은 저장된 위치 또는 사용자가 미디어 프로그램의 되감기 또는 빨리 감기를 중지한 위치로부터 미디어 프로그램의 재생을 시작하는 처리 로직으로 계속된다(660).With further reference to FIG. 6, method 600 continues with processing logic to detect selection of control option 620. The method 600 continues 630 with processing logic that uses the ACR data to determine (and store) the location of the media program upon detection, eg, where the media program was paused (630). Method 600 continues 640 with processing logic that executes a control operation associated with the selected control option to control the timing of streaming the media program, e.g., to pause, play, fast forward or rewind (640). . If the action is, for example, to fast forward, rewind, or jump to another section, method 600 tracks the location within the media program (or the destination of the jump action) where the user stops rewinding or fast forward in the media program and Continue with processing logic to determine (645). The method 600 continues 650 with processing logic that detects the selection of the playback option 650. The method 600 continues 660 with processing logic to start playback of the media program from the stored location or from the location where the user stopped rewinding or fast forwarding the media program.

도 7은 머신이 본 명세서에서 논의된 방법 중 하나 이상을 수행하게 하는 명령어 세트가 실행될 수 있는 컴퓨터 시스템(700)의 예시적인 형태의 머신에 대한 예시적인 개략도를 도시한 것이다. 대안적인 구현들에서, 머신은 LAN, 인트라넷, 엑스트라 넷 또는 인터넷의 다른 머신들에 연결(예를 들면, 네트워크로 연결)된다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 장치의 역할로, 또는 피어 투 피어(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신은 개인용 컴퓨터(PC), 태블릿 PC, 셋탑 박스(STB), 개인 휴대 정보 단말기(PDA), 휴대폰, 스마트 폰, 웹 기기, 서버, 네트워크 라우터, 스위치나 브리지 또는 해당 머신이 수행할 동작들을 지정하는 명령어들의 세트(순차적 또는 다른 방식)를 실행할 수 있는 머신일 수 있다. 또한, 단일 머신 만이 도시되어 있지만, "머신"이라는 용어는 또한 본 명세서에서 논의된 하나 이상의 방법을 수행하기 위해 명령어들의 세트(또는 복수의 세트들)를 개별적으로 또는 공동으로 실행하는 임의의 머신들의 집합을 포함하는 것으로 간주되어야 한다.7 depicts an exemplary schematic diagram of a machine in an exemplary form of a computer system 700 on which a set of instructions may be executed that causes the machine to perform one or more of the methods discussed herein. In alternative implementations, the machine is connected (eg, connected to a network) to a LAN, intranet, extranet, or other machines on the Internet. The machine may operate as a server or client device in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machines specify personal computers (PCs), tablet PCs, set-top boxes (STBs), personal digital assistants (PDAs), mobile phones, smart phones, web devices, servers, network routers, switches or bridges, or actions to be performed by the machine. It may be a machine capable of executing a set of instructions (sequential or otherwise). Further, although only a single machine is shown, the term "machine" also refers to any machines that individually or jointly execute a set of instructions (or multiple sets) to perform one or more methods discussed herein. It should be considered to contain a set.

컴퓨터 시스템(700)은 도 1의 ACR 시스템(124 또는 126), 도 2 및 도 3의 ACR 시스템(224 또는 226), 또는 도 1의 컨텐츠 매니저(122), 도 2의 컨텐츠 매니저(222) 또는 도 3의 컨텐츠 매니저(322)에 대응할 수 있다. 컴퓨터 시스템(700)은 도 1의 클라이언트 장치(118 또는 120)와 같은 임의의 미디어 장치(115)에 대응할 수 있다. 컴퓨터 시스템(700)은 클라우드 기반 컴퓨터 시스템의 적어도 일부에 대응할 수 있다.The computer system 700 may be the ACR system 124 or 126 of FIG. 1, the ACR system 224 or 226 of FIGS. 2 and 3, or the content manager 122 of FIG. 1, the content manager 222 of FIG. 2, or It may correspond to the content manager 322 of FIG. 3. Computer system 700 may correspond to any media device 115 such as client device 118 or 120 of FIG. 1. Computer system 700 may correspond to at least a portion of a cloud-based computer system.

컴퓨터 시스템(700)은 처리 장치(702), 메인 메모리(704)(예를 들면, ROM(read-only memory), 플래시 메모리, DRAM(dynamic random access memory)(예를 들면 동기식 DRAM(SDRAM) 또는 DRAM(RDRAM) 등), 정적 메모리(706)(예를 들면, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 버스(730)를 통해 서로 통신하는 데이터 저장 장치(718)를 포함한다.The computer system 700 includes a processing unit 702, a main memory 704 (e.g., read-only memory (ROM), a flash memory, dynamic random access memory (DRAM)) (e.g., synchronous DRAM (SDRAM)), or DRAM (RDRAM), etc.), static memory 706 (eg, flash memory, static random access memory (SRAM), etc.), and a data storage device 718 in communication with each other via a bus 730.

처리 장치(702)는 마이크로 프로세서, 중앙 처리 장치 등과 같은 하나 이상의 범용 처리 장치를 나타낸다. 보다 구체적으로, 처리 장치는 복잡한 명령 세트 컴퓨팅(CISC) 마이크로 프로세서, 축소 명령 세트 컴퓨터(RISC) 마이크로 프로세서, 매우 긴 명령 워드(VLIW) 마이크로 프로세서, 또는 다른 명령 세트를 구현하는 프로세서, 또는 명령 세트의 조합을 구현하는 프로세서일 수 있다. 처리 장치(702)는 또한 ASIC(application specific integrated circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 장치일 수 있다. 일부 구현들에서, 처리 장치(702)는 하나 이상의 프로세싱 코어들을 포함한다. 처리 장치(702)는 본 명세서에서 논의된 동작들을 수행하기 위한 미러링 로직의 명령어들(726)을 실행할 수 있다.The processing unit 702 represents one or more general purpose processing units, such as a microprocessor, a central processing unit, or the like. More specifically, the processing unit is a complex instruction set computing (CISC) microprocessor, a reduced instruction set computer (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing another instruction set, or It may be a processor that implements a combination. The processing unit 702 may also be one or more special purpose processing units such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, and the like. In some implementations, processing device 702 includes one or more processing cores. The processing device 702 may execute instructions 726 of mirroring logic to perform the operations discussed herein.

컴퓨터 시스템(700)은 네트워크(720)에 통신 가능하게 연결된 네트워크 인터페이스 장치(708)를 더 포함할 수 있다. 컴퓨터 시스템(700)은 또한 비디오 디스플레이 유닛(710)(예를 들면, 액정 디스플레이(LCD) 또는 음극선 관(CRT)), 문자 숫자 입력 장치(712)(예를 들면, 키보드), 커서 제어 장치(714)(예를 들면, 마우스), 신호 생성 장치(716)(예를 들면, 스피커) 또는 기타 주변 장치를 포함할 수 있다. 또한, 컴퓨터 시스템(700)은 그래픽 처리 유닛(722), 비디오 처리 유닛(728) 및 오디오 처리 유닛(732)을 포함할 수 있다. 일부 구현들에서, 컴퓨터 시스템(700)은 처리 장치(702)와 함께 작동하고 처리 장치(702)와 외부 장치들 간의 통신을 제어하도록 설계된 집적 회로들 또는 칩들의 그룹을 지칭하는 칩세트(도시되지 않음)를 포함한다. 예를 들어, 칩세트는 처리 장치(702)를 메인 메모리(704) 및 그래픽 제어기와 같은 초고속 장치에 연결하고 처리 장치(702)를 USB, PCI 또는 ISA 버스와 같은 주변 장치의 저속 주변 버스에 링크하는 마더 보드 상의 칩들의 세트이다. Computer system 700 may further include a network interface device 708 communicatively coupled to network 720. The computer system 700 also includes a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 712 (e.g., a keyboard), a cursor control device ( 714) (eg, a mouse), a signal generating device 716 (eg, a speaker), or other peripheral devices. Further, the computer system 700 may include a graphics processing unit 722, a video processing unit 728 and an audio processing unit 732. In some implementations, computer system 700 is a chipset (not shown) that refers to a group of integrated circuits or chips designed to operate with processing device 702 and control communication between processing device 702 and external devices. Not included). For example, the chipset connects the processing unit 702 to a high-speed device such as main memory 704 and a graphics controller, and the processing unit 702 to a low-speed peripheral bus of a peripheral device such as a USB, PCI, or ISA bus. Is a set of chips on the motherboard.

데이터 저장 장치(718)는 본 명세서에서 설명된 기능들의 방법들 중 하나 이상을 구현하는 명령어들(726)이 저장된 컴퓨터 판독가능 저장 매체(725)를 포함할 수 있다. 명령어들(726)은 또한 컴퓨터 시스템(700)에 의해 실행되는 동안 메인 메모리(704) 및/또는 처리 장치(702) 내에 완전히 또는 적어도 부분적으로 상주할 수 있으며; 메인 메모리(704) 및 처리 장치(702)는 또한 컴퓨터 판독가능 저장 매체를 구성한다.The data storage device 718 can include a computer-readable storage medium 725 storing instructions 726 that implement one or more of the methods of functions described herein. Instructions 726 may also reside completely or at least partially within main memory 704 and/or processing unit 702 while being executed by computer system 700; Main memory 704 and processing unit 702 also constitute a computer-readable storage medium.

컴퓨터 판독가능 저장 매체(725)는 또한 로직 및/또는 상기 애플리케이션을 호출하는 방법을 포함하는 로직 및/또는 소프트웨어 라이브러리를 이용하는 명령어들(726)을 저장하는데 사용될 수 있다. 컴퓨터 판독가능 저장 매체(725)가 예시적인 구현에서 단일 매체인 것으로 도시되어 있지만, "컴퓨터 판독가능 저장 매체"라는 용어는 하나 이상의 명령어 세트를 저장하는 단일 매체 또는 다중 매체(예를 들면, 중앙 또는 분산 데이터베이스, 및/또는 연관된 캐시 및 서버)를 포함한다. "컴퓨터 판독가능 저장 매체"라는 용어는 또한 머신에 의해 실행되는 명령어 세트(726)를 저장, 인코딩 또는 반송할 수 있고 머신이 본 발명의 방법들 중의 하나 이상의 방법을 수행하게 하는 임의의 매체를 포함하는 것으로 간주된다. "컴퓨터 판독가능 저장 매체"라는 용어는 따라서 솔리드-스테이트 메모리, 광학 매체 및 자기 매체를 포함하며 이에 제한되지 않는다. 다음의 예는 추가 구현들과 관련이 있다.Computer-readable storage medium 725 may also be used to store instructions 726 using logic and/or software libraries, including logic and/or how to invoke the application. Although computer-readable storage medium 725 is shown to be a single medium in an exemplary implementation, the term "computer-readable storage medium" refers to a single medium or multiple media (e.g., central or Distributed databases, and/or associated caches and servers). The term "computer-readable storage medium" also includes any medium capable of storing, encoding or carrying a set of instructions 726 executed by a machine and causing the machine to perform one or more of the methods of the present invention. Is considered to be. The term "computer-readable storage medium" thus includes, but is not limited to, solid-state memory, optical media, and magnetic media. The following example relates to additional implementations.

본 발명가 제한된 수의 구현에 대하여 설명되었지만, 당업자는 이로부터 수많은 수정 및 변형을 인식할 것이다. 첨부된 청구 범위는 본 발명의 진정한 사상 및 범위 내에 있는 그러한 모든 수정 및 변형을 포함하는 것으로 의도된다.While the present invention has been described with respect to a limited number of implementations, those skilled in the art will recognize numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations that fall within the true spirit and scope of the present invention.

본원에서의 설명에서, 본 발명의 철저한 이해를 제공하기 위해, 특정 유형의 프로세서들 및 시스템 구성들, 특정 하드웨어 구조들, 특정 아키텍처 및 마이크로 아키텍처 상세들, 특정 레지스터 구성들, 특정 명령어 유형들, 특정 시스템 컴포넌트들, 특정 측정들/높이들, 특정 프로세서 파이프라인 스테이지들 및 동작들 등의 예들과 같은, 다수의 구체적인 상세들이 기재되어 있다. 그렇지만, 본 발명을 실시하기 위해 이 구체적인 상세들이 이용될 필요가 없다는 것이 본 기술분야의 통상의 기술자에게는 명백할 것이다. 다른 경우들에서, 본 발명을 불필요하게 모호하게 하는 것을 피하기 위해, 특정 및 대안의 프로세서 아키텍처들, 기술된 알고리즘들에 대한 특정 로직 회로들/코드, 특정 펌웨어 코드, 특정 상호연결 동작, 특정 로직 구성들, 특정 제조 기법들 및 재료들, 특정 컴파일러 구현들, 코드로 된 알고리즘들의 특정 표현, 특정 전원 차단(power down) 및 게이팅 기법들/로직 및 컴퓨터 시스템의 다른 구체적인 동작 상세들이 상세히 기술되지 않았다.In the description herein, in order to provide a thorough understanding of the present invention, specific types of processors and system configurations, specific hardware structures, specific architecture and microarchitecture details, specific register configurations, specific instruction types, specific A number of specific details have been described, such as examples of system components, specific measurements/heights, specific processor pipeline stages and operations, and the like. However, it will be apparent to one of ordinary skill in the art that these specific details need not be used to practice the present invention. In other instances, in order to avoid unnecessarily obscuring the present invention, specific and alternative processor architectures, specific logic circuits/code for the described algorithms, specific firmware code, specific interconnect operation, specific logic configuration. Specific manufacturing techniques and materials, specific compiler implementations, specific representations of algorithms in code, specific power down and gating techniques/logic and other specific operating details of the computer system have not been described in detail.

실시예들은, 컴퓨팅 플랫폼들 또는 마이크로프로세서들에서와 같이, 특정 집적 회로들에서의 보안 메모리 재파티셔닝(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) 시스템들 등과 같은, 저가 디바이스들에 대해 사용될 수 있다. 더욱이, 본원에 기술되는 장치들, 방법들, 및 시스템들은 물리적 컴퓨팅 디바이스들로 제한되지 않지만, 또한 에너지 보존 및 효율을 위한 소프트웨어 최적화들에 관련될 수 있다. 이하의 설명에서 곧바로 명백하게 될 것인 바와 같이, (하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합 중 어느 것이든 참조하여) 본원에 기술되는 방법들, 장치들, 및 시스템들의 실시예들은 성능 고려사항들과 균형을 이루는 '녹색 기술' 미래에 중요하다.Embodiments are described with reference to secure memory repartitioning in certain integrated circuits, such as in computing platforms or microprocessors. Embodiments may also be applicable to other types of integrated circuits and programmable logic devices. For example, the disclosed embodiments are not limited to desktop computer systems or portable computers, such as Intel® Ultrabooks™ computers. And it can also be used in other devices, such as handheld devices, tablets, other thin notebooks, systems on a chip (SOC) devices, and embedded applications. Some examples of handheld devices include cellular phones, internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. Embedded applications typically include microcontrollers, digital signal processors (DSPs), system on a chip (SOC), network computers (NetPC), set-top boxes, network hubs, wide area network (WAN) switches, or hereinafter. And any other system capable of performing the taught functions and operations. It is described that the system can be any kind of computer or embedded system. The disclosed embodiments are particularly low-cost devices, such as wearable devices (e.g., watches), electronic implants, sensory and control infrastructure devices, controllers, supervisory control and data acquisition (SCADA) systems, and the like. Can be used for fields. Moreover, the apparatuses, methods, and systems described herein are not limited to physical computing devices, but may also relate to software optimizations for energy conservation and efficiency. As will soon become apparent from the following description, embodiments of the methods, devices, and systems described herein (with reference to any of hardware, firmware, software, or combinations thereof) are subject to performance considerations. It is important for a'green technology' future that balances with.

비록 실시예들이 본원에서 프로세서를 참조하여 기술되어 있지만, 다른 실시예들은 다른 유형의 집적 회로들 및 로직 디바이스들에 적용가능하다. 본 발명의 실시예들의 유사한 기법들 및 교시내용들은 보다 높은 파이프라인 처리율 및 개선된 성능으로부터 이득을 볼 수 있는 다른 유형의 회로들 또는 반도체 디바이스들에 적용될 수 있다. 본 발명의 실시예들의 교시내용들은 데이터 조작들을 수행하는 임의의 프로세서 또는 머신에 적용가능하다. 그렇지만, 본 발명은 512 비트, 256 비트, 128 비트, 64 비트, 32 비트, 또는 16 비트 데이터 연산들을 수행하는 프로세서들 또는 머신들로 제한되지 않으며, 데이터의 조작 또는 관리가 수행되는 임의의 프로세서 및 머신에 적용될 수 있다. 그에 부가하여, 본원에서의 설명은 예들을 제공하고, 첨부 도면들은 예시를 위해 다양한 예들을 도시하고 있다. 그렇지만, 이 예들이 본 발명의 실시예들의 모든 가능한 구현들의 전수적인 목록을 제공하기보다는 오히려 본 발명의 실시예들의 예들을 제공하려는 것으로 의도되어 있는 것에 불과하기 때문에, 이 예들이 제한적인 의미로 해석되어서는 안된다.Although embodiments are described herein with reference to a processor, other embodiments are applicable to other types of integrated circuits and logic devices. Similar techniques and teachings of embodiments of the present invention may be applied to other types of circuits or semiconductor devices that may benefit from higher pipeline throughput and improved performance. The teachings of embodiments of the present invention are applicable to any processor or machine that performs data manipulations. However, the present invention is not limited to processors or machines that perform 512-bit, 256-bit, 128-bit, 64-bit, 32-bit, or 16-bit data operations, and any processor on which manipulation or management of data is performed, and It can be applied to the machine. In addition, the description herein provides examples, and the accompanying drawings show various examples for purposes of illustration. However, since these examples are only intended to provide examples of embodiments of the present invention rather than to provide an exhaustive list of all possible implementations of the embodiments of the present invention, these examples are to be interpreted in a limiting sense. It shouldn't be.

다른 실시예들은, 머신에 의해 수행될 때, 머신으로 하여금 본 발명의 적어도 하나의 실시예에 따른 기능들을 수행하게 하는, 머신 판독가능 유형적 매체(machine-readable, tangible medium) 상에 저장된 데이터 또는 명령어들에 의해 달성될 수 있다. 일 실시예에서, 본 발명의 실시예들과 연관된 기능들이 머신 실행가능 명령어들로 구현된다. 명령어들은 명령어들로 프로그래밍된 범용 또는 특수 목적 프로세서로 하여금 본 발명의 단계들을 수행하게 하는 데 사용될 수 있다. 본 발명의 실시예들은 컴퓨터(또는 다른 전자 디바이스들)를 본 발명의 실시예들에 따른 하나 이상의 동작들을 수행하도록 프로그래밍하는 데 사용될 수 있는 명령어들을 저장하고 있는 머신 또는 컴퓨터 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 대안적으로, 본 발명의 실시예들의 동작들은 동작들을 수행하는 고정 기능 로직을 포함하는 특정 하드웨어 컴포넌트들에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트들 및 고정 기능 하드웨어 컴포넌트들의 임의의 조합에 의해 수행될 수 있다.Other embodiments are data or instructions stored on a machine-readable, tangible medium that, when executed by a machine, causes the machine to perform functions according to at least one embodiment of the present invention. Can be achieved by In one embodiment, functions associated with embodiments of the present invention are implemented in machine executable instructions. Instructions may be used to cause a general purpose or special purpose processor programmed with instructions to perform the steps of the present invention. Embodiments of the invention may include a machine or computer readable medium storing instructions that can be used to program a computer (or other electronic devices) to perform one or more operations according to embodiments of the invention. It may be provided as a computer program product or software. Alternatively, the operations of embodiments of the present invention may be performed by specific hardware components including fixed function logic to perform the operations, or by any combination of programmed computer components and fixed function hardware components. .

로직을 본 발명의 실시예들을 수행하도록 프로그래밍하는 데 사용되는 명령어들은, 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), 자기 또는 광학 카드들, 플래시 메모리, 또는 전기, 광학, 음향 또는 다른 형태의 전파 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들 등)을 통해 인터넷을 거쳐 정보를 전송하는데 사용되는 유형적 머신 판독가능 저장소 - 이들로 제한되지 않음 - 와 같은, 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하는 임의의 메커니즘을 포함할 수 있다. 그에 따라, 컴퓨터 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 전자 명령어들 또는 정보를 저장 또는 전송하기에 적당한 임의의 유형의 유형적 머신 판독가능 매체를 포함한다.Instructions used to program logic to perform embodiments of the present invention may be stored in memory in the system, such as DRAM, cache, flash memory, or other storage. In addition, the instructions may be distributed over a network or through other computer-readable media. Accordingly, the machine-readable medium includes floppy diskettes, optical disks, compact disc (CD-ROM), and magneto-optical disks, read-only memory (ROM), random access memory (RAM), EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), magnetic or optical cards, flash memory, or electric, optical, acoustic or other types of radio signals (e.g., carriers, infrared Storing information in a form readable by a machine (e.g., a computer), such as, but not limited to, a tangible machine-readable storage used to transmit information over the Internet via signals, digital signals, etc., or It can include any mechanism for transmitting. Accordingly, computer-readable media includes any type of tangible machine-readable medium suitable for storing or transmitting electronic instructions or information in a form readable by a machine (eg, a computer).

설계는, 제작으로부터 시뮬레이션을 거쳐 제조에 이르기까지, 다양한 스테이지들을 거칠 수 있다. 설계를 표현하는 데이터는 다수의 방식들로 설계를 표현될 수 있다. 첫째, 시뮬레이션들에서 유용한 것처럼, 하드웨어는 하드웨어 기술 언어(hardware description language) 또는 다른 기능 기술 언어(functional description language)를 사용하여 표현될 수 있다. 그에 부가하여, 로직 및/또는 트랜지스터 게이트들을 갖는 회로 레벨 모델이 설계 프로세스의 일부 스테이지들에서 생성될 수 있다. 게다가, 대부분의 설계들은 하드웨어 모델에서 다양한 디바이스들의 물리적 배치를 표현하는 데이터 레벨에 도달한다. 종래의 반도체 제조 기법들이 사용되는 경우에, 하드웨어 모델을 표현하는 데이터는 집적 회로를 생산하는 데 사용되는 마스크들에 대한 상이한 마스크층들 상의 다양한 피처(feature)들의 존재 또는 부존재를 명시하는 데이터일 수 있다. 설계의 임의의 표현에서, 데이터는 임의의 형태의 머신 판독가능 매체에 저장될 수 있다. 메모리 또는 디스크와 같은 자기 또는 광학 저장소는 이러한 정보를 전송하기 위해 변조되거나 다른 방식으로 생성된 광학 또는 전기 파를 통해 전송되는 정보를 저장하는 머신 판독가능 매체일 수 있다. 코드 또는 설계를 표시하거나 담고 있는 전기 반송파가 전송될 때, 전기 신호의 복사, 버퍼링, 또는 재전송이 수행되는 한, 새로운 사본이 만들어진다. 따라서, 통신 제공자 또는 네트워크 제공자는 본 발명의 실시예들의 기법들을 구현하는, 반송파로 인코딩된 정보와 같은, 물품을 유형적 머신 판독가능 매체 상에 적어도 일시적으로 저장할 수 있다.Design can go through a variety of stages, from fabrication through simulation to fabrication. Data representing the design can be represented in a number of ways. First, as useful in simulations, hardware can be represented using a hardware description language or another functional description language. In addition, a circuit level model with logic and/or transistor gates can be created at some stages of the design process. In addition, most designs reach the data level representing the physical placement of various devices in the hardware model. When conventional semiconductor manufacturing techniques are used, the data representing the hardware model may be data specifying the presence or absence of various features on different mask layers for the masks used to produce the integrated circuit. have. In any representation of the design, the data may be stored in any form of machine-readable medium. Magnetic or optical storage, such as a memory or disk, may be a machine-readable medium that stores information transmitted via optical or electrical waves that have been modulated or otherwise generated to transmit such information. When an electrical carrier indicating or containing a code or design is transmitted, a new copy is made as long as copying, buffering, or retransmission of the electrical signal is performed. Thus, a communications provider or network provider may at least temporarily store an article, such as carrier-encoded information, on a tangible machine-readable medium that implements the techniques of embodiments of the present invention.

본원에서 사용되는 바와 같은 모듈은 하드웨어, 소프트웨어, 및/또는 펌웨어의 임의의 조합을 지칭한다. 일 예로서, 모듈은 마이크로제어기에 의해 실행되도록 구성된 코드를 저장하는 비일시적 매체와 연관된, 마이크로제어기와 같은, 하드웨어를 포함한다. 따라서, 모듈에 대한 언급은, 일 실시예에서, 비일시적 매체 상에 보유될 코드를 인식 및/또는 실행하도록 구체적으로 구성된 하드웨어를 지칭한다. 게다가, 다른 실시예에서, 모듈의 사용은 미리 결정된 동작들을 수행하기 위해 마이크로제어기에 의해 실행되도록 구체적으로 구성된 코드를 포함하는 비일시적 매체를 지칭한다. 그리고 추론될 수 있는 바와 같이, 또 다른 실시예에서, 모듈이라는 용어는 (이 예에서) 마이크로제어기와 비일시적 매체의 조합을 지칭할 수 있다. 종종, 분리되어 예시되어 있는 모듈 경계들이 통상적으로 달라지며 어쩌면 겹친다. 예를 들어, 제1 모듈과 제2 모듈은, 어쩌면 일부 독립적인 하드웨어, 소프트웨어 또는 펌웨어를 보유하면서, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 공유할 수 있다. 일 실시예에서, 로직이라는 용어의 사용은, 트랜지스터들, 레지스터들과 같은 하드웨어, 또는 프로그래밍 가능 로직 디바이스들과 같은 다른 하드웨어를 포함한다.Module as used herein refers to any combination of hardware, software, and/or firmware. As an example, a module includes hardware, such as a microcontroller, associated with a non-transitory medium storing code configured to be executed by the microcontroller. Thus, reference to a module, in one embodiment, refers to hardware specifically configured to recognize and/or execute code to be held on a non-transitory medium. Furthermore, in another embodiment, the use of a module refers to a non-transitory medium containing code specifically configured to be executed by a microcontroller to perform predetermined operations. And, as can be inferred, in another embodiment, the term module may refer to a combination of a microcontroller and a non-transitory medium (in this example). Often, module boundaries that are illustrated separately are typically different and possibly overlap. For example, the first module and the second module may share hardware, software, firmware, or a combination thereof, perhaps while holding some independent hardware, software, or firmware. In one embodiment, the use of the term logic includes hardware such as transistors, registers, or other hardware such as programmable logic devices.

'~하도록 구성된'이라는 문구의 사용은, 일 실시예에서, 지정된 또는 결정된 작업을 수행하도록 장치, 하드웨어, 로직, 또는 요소를 배열, 조립, 제조, 판매 제안, 수입 및/또는 설계하는 것을 지칭한다. 이 예에서, 동작하고 있지 않은 장치 또는 그의 요소는, 지정된 작업을 수행하도록 설계, 결합 및/또는 상호연결되는 경우, 여전히 상기 지정된 작업을 수행'하도록 구성'된다. 순전히 예시적인 예로서, 로직 게이트는 동작 동안 0 또는 1을 제공할 수 있다. 그러나, 클록에 인에이블 신호(enable signal)를 제공'하도록 구성된' 로직 게이트가 1 또는 0을 제공할 수 있는 잠재적 로직 게이트 모두를 포함하지는 않는다. 그 대신에, 로직 게이트는 동작 동안 1 또는 0 출력이 클록을 인에이블시키는 어떤 방식으로 결합된 것이다. 다시 한번 유의할 점은, '~하도록 구성된'이라는 용어의 사용이 동작을 필요로 하지 않고 그 대신에 장치, 하드웨어, 및/또는 요소의 잠재 상태(latent state)에 초점을 맞추고 있으며, 여기서 잠재 상태에서는 장치, 하드웨어, 및/또는 요소가 동작하고 있을 때 장치, 하드웨어, 및/또는 요소가 특정 작업을 수행하도록 설계되어 있다는 것이다.The use of the phrase'configured to', in one embodiment, refers to arranging, assembling, manufacturing, selling proposals, importing and/or designing a device, hardware, logic, or element to perform a specified or determined task. . In this example, a non-operating device or element thereof, when designed, combined and/or interconnected to perform a specified task, is still'configured' to perform the specified task. As a purely illustrative example, a logic gate may provide 0 or 1 during operation. However, a logic gate'configured' to provide an enable signal to the clock does not include all of the potential logic gates that can provide 1 or 0. Instead, the logic gate is one that is coupled in some way to enable the clock with a 1 or 0 output during operation. Note again that the use of the term'configured to' does not require action and instead focuses on the latent state of the device, hardware, and/or element, where in the latent state The device, hardware, and/or element is designed to perform a specific task when the device, hardware, and/or element is operating.

게다가, '~하는', '~할 수 있는', 및/또는 '~하도록 동작가능한'이라는 문구들의 사용은, 일 실시예에서, 어떤 장치, 로직, 하드웨어, 및/또는 요소가 장치, 로직, 하드웨어, 및/또는 요소를 명시된 방식으로 사용할 수 있게 하도록 설계되어 있다는 것을 지칭한다. 유의할 점은, 이상과 같이, '~하는', '~할 수 있는', 및/또는 "~하도록 동작가능한"의 사용이, 일 실시예에서, 장치, 로직, 하드웨어, 및/또는 요소의 잠재 상태를 지칭하고, 여기서 장치, 로직, 하드웨어, 및/또는 요소가 동작하고 있지 않지만 장치를 명시된 방식으로 사용할 수 있게 하도록 설계되어 있다는 것이다.In addition, the use of the phrases'to','can', and/or'operable to', in one embodiment, means that a device, logic, hardware, and/or element is a device, logic, Refers to that hardware, and/or elements are designed to be used in a specified manner. It should be noted that, as described above, the use of'to','can', and/or "operable to", in one embodiment, the potential of devices, logic, hardware, and/or elements. Refers to a state, where a device, logic, hardware, and/or element is not operating but is designed to enable the device to be used in a specified manner.

값은, 본원에서 사용되는 바와 같이, 숫자, 상태, 논리 상태, 또는 이진 논리 상태의 임의의 공지된 표현을 포함한다. 종종, 논리 레벨(logic level)들, 논리 값(logic value)들, 또는 논리 값(logical value)들의 사용은 또한, 이진 논리 상태들을 간단히 표현하는, 1과 0을 지칭한다. 예를 들어, 1은 하이 논리 레벨(high logic level)을 지칭하고, 0은 로우 논리 레벨(low logic level)을 지칭한다. 일 실시예에서, 트랜지스터 또는 플래시 셀과 같은, 저장 셀(storage cell)은 단일의 논리 값 또는 다수의 논리 값들을 보유할 수 있다. 그렇지만, 컴퓨터 시스템들에서의 값들의 다른 표현들이 사용되어 왔다. 예를 들어, 십진수 10은 또한 이진 값 1010과 16 진수 문자 A로 표현될 수 있다. 따라서, 값은 컴퓨터 시스템에 보유될 수 있는 정보의 임의의 표현을 포함한다.Values, as used herein, include any known representation of a number, state, logical state, or binary logical state. Often, the use of logic levels, logical values, or logical values also refers to ones and zeros, which simply represent binary logical states. For example, 1 refers to a high logic level, and 0 refers to a low logic level. In one embodiment, a storage cell, such as a transistor or flash cell, may hold a single logical value or multiple logical values. However, other representations of values in computer systems have been used. For example, the decimal number 10 can also be represented by the binary value 1010 and the hexadecimal character A. Thus, a value includes any representation of information that can be held in a computer system.

더욱이, 상태들이 값들 또는 값들의 부분들에 의해 표현될 수 있다. 일 예로서, 논리 1과 같은, 제1 값은 디폴트 또는 초기 상태를 표현할 수 있는 반면, 논리 0과 같은, 제2 값은 디폴트가 아닌 상태(non-default state)를 표현할 수 있다. 그에 부가하여, 리셋(reset) 및 세트(set)라는 용어들은, 일 실시예에서, 각각, 디폴트 및 업데이트된 값 또는 상태를 지칭한다. 예를 들어, 디폴트 값은 어쩌면 하이 논리 값, 즉 리셋을 포함하는 반면, 업데이트된 값은 어쩌면 로우 논리 값, 즉 세트를 포함한다. 임의의 수의 상태들을 표현하기 위해 값들의 임의의 조합이 이용될 수 있다는 것에 유의해야 한다.Moreover, states can be represented by values or parts of values. As an example, a first value, such as logic 1, may represent a default or initial state, while a second value, such as logic 0, may represent a non-default state. Additionally, the terms reset and set refer to a default and updated value or state, respectively, in one embodiment. For example, the default value maybe contains a high logical value, i.e. reset, while the updated value maybe contains a low logical value, i.e. set. It should be noted that any combination of values may be used to represent any number of states.

앞서 기재된 방법들, 하드웨어, 소프트웨어, 펌웨어 또는 코드의 실시예들은 처리 요소에 의해 실행가능한 머신 액세스가능, 머신 판독가능, 컴퓨터 액세스가능, 또는 컴퓨터 판독가능 매체 상에 저장된 명령어들 또는 코드를 통해 구현될 수 있다. 비일시적 머신 액세스가능/판독가능 매체는, 컴퓨터 또는 전자 시스템과 같은, 머신에 의해 판독가능한 형태로 정보를 제공(즉, 저장 및/또는 전송)하는 임의의 메커니즘을 포함한다. 예를 들어, 비일시적 머신 액세스가능 매체는 SRAM(static RAM) 또는 DRAM(dynamic RAM)과 같은 RAM(random-access memory); ROM; 자기 또는 광학 저장 매체; 플래시 메모리 디바이스들; 전기 저장 디바이스들; 광학 저장 디바이스들; 음향 저장 디바이스들; 그로부터 정보를 수신할 수 있는 비일시적 매체들과는 구별되어야 하는, 일시적(전파) 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들)로부터 수신된 정보를 보유하기 위한 다른 형태의 저장 디바이스 등을 포함한다.Embodiments of the methods, hardware, software, firmware or code described above may be implemented through instructions or code stored on a machine-accessible, machine-readable, computer-accessible, or computer-readable medium executable by a processing element. I can. Non-transitory machine-accessible/readable media includes any mechanism for presenting (ie, storing and/or transmitting) information in a form readable by a machine, such as a computer or electronic system. For example, the non-transitory machine-accessible medium may include random-access memory (RAM) such as static RAM (SRAM) or dynamic RAM (DRAM); ROM; Magnetic or optical storage media; Flash memory devices; Electrical storage devices; Optical storage devices; Acoustic storage devices; Other types of storage devices, etc. for holding information received from transient (propagating) signals (e.g., carriers, infrared signals, digital signals), which must be distinguished from non-transitory media that can receive information therefrom. Includes.

로직을 본 발명의 실시예들을 수행하도록 프로그래밍하는 데 사용되는 명령어들은, 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), 자기 또는 광학 카드들, 플래시 메모리, 또는 전기, 광학, 음향 또는 다른 형태의 전파 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들 등)을 통해 인터넷을 거쳐 정보를 전송하는 데 사용되는 유형적 머신 판독가능 저장소 - 이들로 제한되지 않음 - 와 같은, 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하는 임의의 메커니즘을 포함할 수 있다. 그에 따라, 컴퓨터 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 전자 명령어들 또는 정보를 저장 또는 전송하기에 적당한 임의의 유형의 유형적 머신 판독가능 매체를 포함한다.Instructions used to program logic to perform embodiments of the present invention may be stored in memory in the system, such as DRAM, cache, flash memory, or other storage. In addition, the instructions may be distributed over a network or through other computer-readable media. Accordingly, the machine-readable medium includes floppy diskettes, optical disks, compact disc (CD-ROM), and magneto-optical disks, read-only memory (ROM), random access memory (RAM), EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), magnetic or optical cards, flash memory, or electric, optical, acoustic or other types of radio signals (e.g., carriers, infrared Storing information in a form readable by a machine (e.g., a computer), such as-but not limited to-a tangible machine-readable storage used to transmit information over the Internet via signals, digital signals, etc. Or may include any mechanism for transmitting. Accordingly, computer-readable media includes any type of tangible machine-readable medium suitable for storing or transmitting electronic instructions or information in a form readable by a machine (eg, a computer).

본 명세서에 전체에 걸쳐 "일부 실시예들" 또는 "실시예"에 대한 언급은 그 실시예와 관련하여 기술된 특정의 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전체에 걸쳐 여러 곳에서 나오는 "일부 실시예들에서" 또는 "실시예에서"와 같은 문구들 모두가 꼭 동일한 실시예를 지칭하는 것은 아니다. 게다가, 특정의 특징, 구조, 또는 특성이 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다.Reference throughout this specification to “some embodiments” or “an embodiment” indicates that a particular feature, structure, or characteristic described in connection with that embodiment is included in at least one embodiment of the present invention. it means. Thus, not all phrases such as "in some embodiments" or "in an embodiment" appearing in various places throughout this specification necessarily all refer to the same embodiment. In addition, a particular feature, structure, or characteristic may be combined in any suitable manner in one or more embodiments.

전술한 명세서에서, 상세한 설명이 특정의 예시적인 실시예들을 참조하여 주어져 있다. 그렇지만, 첨부된 청구항들에 기재된 본 발명의 보다 광의의 사상 및 범주를 벗어나지 않고 그에 대한 다양한 수정들 및 변경들이 행해질 수 있다는 것이 명백할 것이다. 그에 따라, 본 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 한다. 게다가, 실시예 및 다른 예시적인 표현(language)의 전술한 사용이 꼭 동일한 실시예 또는 동일한 예를 지칭하지는 않지만, 상이한 그리고 별개의 실시예들은 물론 어쩌면 동일한 실시예를 지칭할 수 있다.In the foregoing specification, a detailed description has been given with reference to specific exemplary embodiments. However, it will be apparent that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. Accordingly, the specification and drawings are to be regarded as illustrative and not restrictive. Furthermore, although the above-described use of embodiments and other illustrative language does not necessarily refer to the same embodiment or the same example, different and separate embodiments may of course also refer to the same embodiment.

상세한 설명의 일부 부분들이 컴퓨터 메모리 내에서의 데이터 비트들에 대한 연산들의 알고리즘들 및 심벌 표현들로 제시되어 있다. 이 알고리즘적 설명들 및 표현들은 데이터 처리 분야의 통상의 기술자에 의해 본 기술분야의 다른 통상의 기술자에게 자신의 연구의 내용을 가장 효과적으로 전달하는데 사용되는 수단이다. 알고리즘은, 여기서 그리고 일반적으로, 원하는 결과를 가져오는 자체 일관성있는 동작들의 시퀀스인 것으로 생각된다. 동작들은 물리적 양들의 물리적 조작들을 필요로 하는 것들이다. 꼭 그럴 필요는 없지만, 보통 이 양들은 저장, 전송, 결합, 비교, 그리고 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 갖는다. 원칙적으로 통상적인 용법의 이유로 이 신호들을 비트들, 값들, 요소들, 심벌들, 문자들, 용어들, 숫자들 등으로서 지칭하는 것이 때때로 편리하다는 것이 입증되었다. 본원에 기술되는 블록들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합일 수 있다.Some portions of the detailed description are presented as algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing field to most effectively convey the content of their research to others skilled in the art. An algorithm, here and generally, is thought to be a sequence of self-consistent actions that lead to the desired result. Operations are those that require physical manipulations of physical quantities. While not necessarily, these quantities usually take the form of electrical or magnetic signals that can be stored, transmitted, combined, compared, and otherwise manipulated. In principle, it has proven convenient at times to refer to these signals as bits, values, elements, symbols, letters, terms, numbers, etc. for reasons of normal usage. The blocks described herein may be hardware, software, firmware, or a combination thereof.

그렇지만, 이들 및 유사한 용어들 모두가 적절한 물리적 양들과 연관되어 있고 이 양들에 적용되는 편리한 명칭들에 불과하다는 것을 염두에 두어야 한다. 달리 구체적으로 언급하지 않는 한, 이상의 논의로부터 명백한 바와 같이, 본 설명 전체에 걸쳐, "정의", "수신", "결정", "발행", "링크", "연관", "획득", "인증", "금지", "실행", "요청", "전달" 등과 같은 용어들을 이용하는 논의들이, 컴퓨팅 시스템의 레지스터들 및 메모리들 내 에 물리적(전자적) 양들로 표현된 데이터를, 컴퓨팅 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 전송 또는 디스플레이 디바이스들 내의 물리적 양들로 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨팅 시스템 또는 유사한 전자 컴퓨팅 디바이스의 동작들 및 프로세스들을 지칭한다는 것을 잘 알 것이다.However, it should be borne in mind that both of these and similar terms are only convenient names that are associated with and applied to the appropriate physical quantities. Unless specifically stated otherwise, as will be apparent from the above discussion, throughout this description, "define", "receive", "decision", "issue", "link", "associate", "acquisition", " Discussions using terms such as "authentication", "prohibition", "execution", "request", "forward", etc. describe data expressed in physical (electronic) quantities within the registers and memories of the computing system. It will be appreciated that it refers to the operations and processes of a computing system or similar electronic computing device that manipulates and transforms into other data that is similarly represented as physical quantities within the storage, transfer or display devices of such information or registers or other such information.

"예" 또는 "예시적인"이라는 단어들은 예, 사례 또는 예시로서 역할한다는 것을 의미하기 위해 본원에서 사용된다. 본원에서 "예" 또는 "예시적인" 것으로 기술되는 임의의 양태 또는 설계가 다른 양태들 또는 설계들보다 양호하거나 이점이 있는 것으로 꼭 해석되는 것은 아니다. 오히려, "예" 또는 "예시적인"이라는 단어들의 사용은 개념들을 구체적인 방식으로 제시하려는 것으로 의도되어 있다. 본 출원에서 사용된 바와 같이, "또는"이라는 용어는 배타적 "또는"(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)를 갖는 것은 아닐 수 있다.The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as better or advantageous over other aspects or designs. Rather, the use of the words “example” or “exemplary” is intended to present concepts in a concrete manner. As used in this application, the term “or” is intended to mean inclusive “or” rather than exclusive “or”. That is, unless otherwise stated or clear from context, "X includes A or B" is intended to mean any of the natural inclusive permutations. That is, X includes A; X comprises B; Or when X includes both A and B, “X includes A or B” is satisfied under any of the foregoing cases. In addition, the terms "a" and "any" as used in this application and in the appended claims, generally mean "one or more" unless otherwise specified or clear from the context as relating to the singular form. Should be interpreted as. Moreover, the use of the terms “an embodiment” or “an embodiment” or “implementation” or “an implementation” throughout this specification is not intended to mean the same embodiment or implementation, unless otherwise stated. Does not. In addition, terms such as "first", "second", "third", "fourth", etc., as used herein, are intended as labels to distinguish different elements, and must be in accordance with their numerical designation. It may not have an ordinal meaning.

Claims (20)

방법으로서,
미디어 장치의 데이터 처리 하드웨어에서, 미디어 컨텐츠를 포함하는 스트리밍 라이브 미디어 피드(streaming live media feed)를 수신하는 단계;
상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 상에 오버레이를 디스플레이하는 단계 - 상기 오버레이는 상기 스트리밍 라이브 미디어 피드의 재생을 제어하기 위한 제어 옵션들을 포함하고, 상기 제어 옵션들은 일시 정지, 재생, 빨리 감기 및 되감기를 포함함 -;
상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 오버레이의 상기 제어 옵션들 중 제 1 제어 옵션의 제 1 선택을 검출하고 - 상기 제 1 선택은 상기 스트리밍 라이브 미디어 피드를 빨리 감기 또는 되감기하는 것임 -, 또한 상기 제 1 선택을 검출한 것에 응답하여, 상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 제 1 선택된 제어 옵션을 실행하는 단계;
후속하여, 상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 오버레이의 상기 제어 옵션들 중 제 2 제어 옵션의 제 2 선택을 검출하고 - 상기 제 2 선택은 상기 스트리밍 라이브 미디어 피드의 빨리 감기 또는 되감기를 중지하고 상기 스트리밍 라이브 미디어 피드의 재생을 재개하는 것임 -, 또한 상기 제 2 선택을 검출한 것에 응답하여, 상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 제 2 선택된 제어 옵션을 실행하는 단계; 및
상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 핑거프린트 기반 자동 컨텐츠 인식 데이터를 사용하여 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 위치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠를 식별하는 단계 - 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 상기 위치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠를 식별하는 것은, 상기 스트리밍 라이브 미디어 피드 상에, 재생이 재개된 상기 스트리밍 라이브 미디어 피드의 상기 식별된 컨텐츠에 기초하여 선택되는 타겟팅된(targeted) 오버레이 컨텐츠를 오버레이하는 것을 가능하게 함 -
를 포함하는, 방법.
As a method,
Receiving, at data processing hardware of the media device, a streaming live media feed including media content;
Displaying, by the data processing hardware of the media device, an overlay on the media content of the streaming live media feed, the overlay comprising control options for controlling playback of the streaming live media feed, the control Options include pause, play, fast forward and rewind -;
Detecting, by the data processing hardware of the media device, a first selection of a first control option among the control options of the overlay, the first selection being to fast forward or rewind the streaming live media feed, Further in response to detecting the first selection, executing, by the data processing hardware of the media device, the first selected control option;
Subsequently, by the data processing hardware of the media device, detecting a second selection of a second control option of the control options of the overlay, the second selection to fast forward or rewind the streaming live media feed. Stopping and resuming playback of the streaming live media feed, further in response to detecting the second selection, executing, by the data processing hardware of the media device, the second selected control option; And
Identifying, by the data processing hardware of the media device, the content of the streaming live media feed at a location in the streaming live media feed where the playback is resumed using fingerprint-based automatic content recognition data-the playback resumes Identifying the content of the streaming live media feed at the location within the streamed live media feed being selected based on the identified content of the streaming live media feed for which playback has resumed. Make it possible to overlay the targeted overlay content-
Containing, the method.
제 1 항에 있어서,
상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 스트리밍 라이브 미디어 피드 상에, 재생이 재개된 상기 스트리밍 라이브 미디어 피드의 상기 식별된 컨텐츠에 기초하여 선택되는 타겟팅된 오버레이 컨텐츠를 오버레이하는 단계를 더 포함하는, 방법.
The method of claim 1,
Overlaying, by the data processing hardware of the media device, on the streaming live media feed, a targeted overlay content selected based on the identified content of the streaming live media feed for which playback has resumed. , Way.
제 2 항에 있어서,
상기 미디어 장치에 의해서, 상기 타겟팅된 오버레이 컨텐츠를 요청하는 오버레이 요청을 오버레이 결정 엔진으로 전송하는 단계를 더 포함하는, 방법.
The method of claim 2,
And transmitting, by the media device, an overlay request requesting the targeted overlay content to an overlay determination engine.
제 2 항에 있어서,
상기 타겟팅된 오버레이 컨텐츠는, 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 위치에서 상기 스트리밍 라이브 미디어 피드의 상기 식별된 컨텐츠와 컨텍스트적으로(contextually) 관련있는, 방법.
The method of claim 2,
Wherein the targeted overlay content is contextually related to the identified content of the streaming live media feed at a location within the streaming live media feed where the playback has resumed.
제 4 항에 있어서,
사용자 프로파일에 기초하여, 상기 타겟팅된 오버레이 컨텐츠가, 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 상기 위치에서 상기 식별된 컨텐츠와 컨텍스트적으로 관련있는 것을 판정하는 단계를 더 포함하는, 방법.
The method of claim 4,
Based on a user profile, determining that the targeted overlay content is contextually relevant to the identified content at the location in the streaming live media feed where the playback has resumed.
제 2 항에 있어서,
상기 오버레이는 HTML(hypertext markup language) 브라우저 오버레이를 포함하는, 방법.
The method of claim 2,
Wherein the overlay comprises a hypertext markup language (HTML) browser overlay.
제 1 항에 있어서,
상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 스트리밍 라이브 미디어 피드의 상기 컨텐츠를 적어도 일정 시간 동안 버퍼링하는 단계를 더 포함하며, 상기 시간은 상기 제 1 선택과 상기 제 2 선택 입력 사이의 지속기간을 갖는, 방법.
The method of claim 1,
Buffering, by the data processing hardware of the media device, the content of the streaming live media feed for at least a predetermined time, the time being a duration between the first selection and the second selection input. Having, the way.
제 1 항에 있어서,
상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 핑거프린트 기반 자동 컨텐츠 인식 데이터를 사용하여 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 상기 위치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠를 식별하는 단계는,
상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, (ⅰ) 상기 미디어 장치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠의 순차적인 프레임들을 나타내는 쿼리 핑거프린트 데이터와 (ⅱ) 상기 스트리밍 라이브 미디어 피드를 나타내는 프레임 핑거프린트 데이터를 비교하는 단계; 및
상기 미디어 장치의 상기 데이터 처리 하드웨어에 의해서, 상기 비교에 기초하여, 적어도 하나의 핑거프린트 매칭을 검출하는 단계
를 포함하는, 방법.
The method of claim 1,
The step of identifying, by the data processing hardware of the media device, the content of the streaming live media feed at the location in the streaming live media feed where the playback is resumed using fingerprint-based automatic content recognition data,
By the data processing hardware of the media device, (i) query fingerprint data representing sequential frames of the contents of the streaming live media feed in the media device and (ii) frame fingerprint data representing the streaming live media feed. Comparing them; And
Detecting, by the data processing hardware of the media device, at least one fingerprint match based on the comparison
Containing, the method.
제 8 항에 있어서,
상기 미디어 장치의 상기 데이터 처리 하드웨어에서, 상기 스트리밍 라이브 미디어 피드를 나타내는 상기 프레임 핑거프린트 데이터를 수신하는 단계를 더 포함하는, 방법.
The method of claim 8,
And receiving, at the data processing hardware of the media device, the frame fingerprint data representing the streaming live media feed.
미디어 장치로서,
데이터 처리 하드웨어; 및
상기 데이터 처리 하드웨어와 통신하는 메모리 하드웨어를 포함하며,
상기 메모리 하드웨어는 상기 데이터 처리 하드웨어 상에서 실행될 때 상기 미디어 장치로 하여금 동작들을 수행하게 하는 명령어들을 저장하고, 상기 동작들은,
미디어 컨텐츠를 포함하는 스트리밍 라이브 미디어 피드를 수신하는 동작,
상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 상에 오버레이를 디스플레이하는 동작 - 상기 오버레이는 상기 스트리밍 라이브 미디어 피드의 재생을 제어하기 위한 제어 옵션들을 포함하고, 상기 제어 옵션들은 일시 정지, 재생, 빨리 감기 및 되감기를 포함함 -,
상기 오버레이의 상기 제어 옵션들 중 제 1 제어 옵션의 제 1 선택을 검출하고 - 상기 제 1 선택은 상기 스트리밍 라이브 미디어 피드를 빨리 감기 또는 되감기하는 것임 -, 또한 상기 제 1 선택을 검출한 것에 응답하여, 상기 제 1 선택된 제어 옵션을 실행하는 동작,
후속하여, 상기 오버레이의 상기 제어 옵션들 중 제 2 제어 옵션의 제 2 선택을 검출하고 - 상기 제 2 선택은 상기 스트리밍 라이브 미디어 피드의 빨리 감기 또는 되감기를 중지하고 상기 스트리밍 라이브 미디어 피드의 재생을 재개하는 것임 -, 또한 상기 제 2 선택을 검출한 것에 응답하여, 상기 제 2 선택된 제어 옵션을 실행하는 동작, 및
핑거프린트 기반 자동 컨텐츠 인식 데이터를 사용하여 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 위치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠를 식별하는 동작 - 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 상기 위치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠를 식별하는 것은, 상기 스트리밍 라이브 미디어 피드 상에, 재생이 재개된 상기 스트리밍 라이브 미디어 피드의 상기 식별된 컨텐츠에 기초하여 선택되는 타겟팅된 오버레이 컨텐츠를 오버레이하는 것을 가능하게 함 -
을 포함하는, 미디어 장치.
As a media device,
Data processing hardware; And
And a memory hardware in communication with the data processing hardware,
The memory hardware stores instructions that, when executed on the data processing hardware, cause the media device to perform operations, the operations comprising:
Receiving a streaming live media feed containing media content,
Displaying an overlay on the media content of the streaming live media feed-the overlay includes control options for controlling playback of the streaming live media feed, the control options being pause, play, fast forward and rewind Including -,
Detecting a first selection of a first one of the control options of the overlay, the first selection being to fast forward or rewind the streaming live media feed, and in response to detecting the first selection , Executing the first selected control option,
Subsequently, detecting a second selection of a second control option of the control options of the overlay-the second selection stops fast forward or rewind of the streaming live media feed and resumes playback of the streaming live media feed -, further in response to detecting the second selection, executing the second selected control option, and
Identifying the content of the streaming live media feed at a location in the streaming live media feed where the playback is resumed using fingerprint-based automatic content recognition data-at the location in the streaming live media feed where playback is resumed. Identifying the content of the streaming live media feed makes it possible to overlay, on the streaming live media feed, a targeted overlay content selected based on the identified content of the streaming live media feed resumed playing-
Including a media device.
제 10 항에 있어서,
상기 동작들은,
상기 스트리밍 라이브 미디어 피드 상에, 재생이 재개된 상기 스트리밍 라이브 미디어 피드의 상기 식별된 컨텐츠에 기초하여 선택되는 타겟팅된 오버레이 컨텐츠를 오버레이하는 동작을 더 포함하는, 미디어 장치.
The method of claim 10,
The above operations are:
And overlaying, on the streaming live media feed, targeted overlay content selected based on the identified content of the streaming live media feed for which playback has resumed.
제 11 항에 있어서,
상기 동작들은,
상기 타겟팅된 오버레이 컨텐츠를 요청하는 오버레이 요청을 오버레이 결정 엔진으로 전송하는 동작을 더 포함하는, 미디어 장치.
The method of claim 11,
The above operations are:
And transmitting an overlay request for requesting the targeted overlay content to an overlay determination engine.
제 11 항에 있어서,
상기 타겟팅된 오버레이 컨텐츠는, 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 위치에서 상기 스트리밍 라이브 미디어 피드의 상기 식별된 컨텐츠와 컨텍스트적으로 관련있는, 미디어 장치.
The method of claim 11,
The targeted overlay content is contextually related to the identified content of the streaming live media feed at a location within the streaming live media feed where the playback has resumed.
제 13 항에 있어서,
상기 동작들은,
사용자 프로파일에 기초하여, 상기 타겟팅된 오버레이 컨텐츠가, 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 상기 위치에서 상기 식별된 컨텐츠와 컨텍스트적으로 관련있는 것을 판정하는 동작을 더 포함하는, 미디어 장치.
The method of claim 13,
The above operations are:
Further comprising determining, based on a user profile, that the targeted overlay content is contextually related to the identified content at the location in the streaming live media feed at which the playback has resumed.
제 11 항에 있어서,
상기 오버레이는 HTML(hypertext markup language) 브라우저 오버레이를 포함하는, 미디어 장치.
The method of claim 11,
The media device, wherein the overlay comprises a hypertext markup language (HTML) browser overlay.
제 10 항에 있어서,
상기 동작들은 상기 스트리밍 라이브 미디어 피드의 상기 컨텐츠를 적어도 일정 시간 동안 버퍼링하는 동작을 더 포함하며, 상기 시간은 상기 제 1 선택과 상기 제 2 선택 입력 사이의 지속기간을 갖는, 미디어 장치.
The method of claim 10,
The operations further include buffering the content of the streaming live media feed for at least a predetermined time, the time having a duration between the first selection and the second selection input.
제 10 항에 있어서,
핑거프린트 기반 자동 컨텐츠 인식 데이터를 사용하여 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 상기 위치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠를 식별하는 동작은,
(ⅰ) 상기 미디어 장치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠의 순차적인 프레임들을 나타내는 쿼리 핑거프린트 데이터와 (ⅱ) 상기 스트리밍 라이브 미디어 피드를 나타내는 프레임 핑거프린트 데이터를 비교하는 동작; 및
상기 비교에 기초하여, 적어도 하나의 핑거프린트 매칭을 검출하는 동작
을 포함하는, 미디어 장치.
The method of claim 10,
The operation of identifying the content of the streaming live media feed at the location in the streaming live media feed where the playback is resumed using fingerprint-based automatic content recognition data,
(I) comparing, by the media device, query fingerprint data representing sequential frames of the content of the streaming live media feed with (ii) frame fingerprint data representing the streaming live media feed; And
Detecting at least one fingerprint matching based on the comparison
Including a media device.
제 17 항에 있어서,
상기 동작들은,
상기 스트리밍 라이브 미디어 피드를 나타내는 상기 프레임 핑거프린트 데이터를 수신하는 동작을 더 포함하는, 미디어 장치.
The method of claim 17,
The above operations are:
And receiving the frame fingerprint data representing the streaming live media feed.
미디어 장치로 하여금 동작들을 수행하게 하는, 상기 미디어 장치의 데이터 처리 하드웨어에 의해 실행 가능한 명령어들을 저장한 비일시적 머신 판독 가능 매체로서, 상기 동작들은,
미디어 컨텐츠를 포함하는 스트리밍 라이브 미디어 피드를 수신하는 동작;
상기 스트리밍 라이브 미디어 피드의 상기 미디어 컨텐츠 상에 오버레이를 디스플레이하는 동작 - 상기 오버레이는 상기 스트리밍 라이브 미디어 피드의 재생을 제어하기 위한 제어 옵션들을 포함하고, 상기 제어 옵션들은 일시 정지, 재생, 빨리 감기 및 되감기를 포함함 -;
상기 오버레이의 상기 제어 옵션들 중 제 1 제어 옵션의 제 1 선택을 검출하고 - 상기 제 1 선택은 상기 스트리밍 라이브 미디어 피드를 빨리 감기 또는 되감기하는 것임 -, 또한 상기 제 1 선택을 검출한 것에 응답하여, 상기 제 1 선택된 제어 옵션을 실행하는 동작;
후속하여, 상기 오버레이의 상기 제어 옵션들 중 제 2 제어 옵션의 제 2 선택을 검출하고 - 상기 제 2 선택은 상기 스트리밍 라이브 미디어 피드의 빨리 감기 또는 되감기를 중지하고 상기 스트리밍 라이브 미디어 피드의 재생을 재개하는 것임 -, 또한 상기 제 2 선택을 검출한 것에 응답하여, 상기 제 2 선택된 제어 옵션을 실행하는 동작; 및
핑거프린트 기반 자동 컨텐츠 인식 데이터를 사용하여 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 위치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠를 식별하는 동작 - 상기 재생이 재개된 상기 스트리밍 라이브 미디어 피드 내의 상기 위치에서 상기 스트리밍 라이브 미디어 피드의 컨텐츠를 식별하는 것은, 상기 스트리밍 라이브 미디어 피드 상에, 재생이 재개된 상기 스트리밍 라이브 미디어 피드의 상기 식별된 컨텐츠에 기초하여 선택되는 타겟팅된 오버레이 컨텐츠를 오버레이하는 것을 가능하게 함 -
을 포함하는, 비일시적 머신 판독 가능 매체.
A non-transitory machine-readable medium storing instructions executable by data processing hardware of the media device for causing a media device to perform operations, the operations comprising:
Receiving a streaming live media feed including media content;
Displaying an overlay on the media content of the streaming live media feed-the overlay includes control options for controlling playback of the streaming live media feed, the control options being pause, play, fast forward and rewind Including -;
Detecting a first selection of a first of the control options of the overlay, the first selection being to fast forward or rewind the streaming live media feed, and in response to detecting the first selection And executing the first selected control option;
Subsequently, detecting a second selection of a second control option of the control options of the overlay-the second selection stops fast forward or rewind of the streaming live media feed and resumes playback of the streaming live media feed Further in response to detecting the second selection, executing the second selected control option; And
Identifying the content of the streaming live media feed at a location in the streaming live media feed where the playback is resumed using fingerprint-based automatic content recognition data-at the location in the streaming live media feed where playback is resumed Identifying the content of the streaming live media feed makes it possible to overlay, on the streaming live media feed, a targeted overlay content selected based on the identified content of the streaming live media feed resumed playing-
Containing, a non-transitory machine-readable medium.
제 19 항에 있어서,
상기 동작들은,
상기 스트리밍 라이브 미디어 피드 상에, 재생이 재개된 상기 스트리밍 라이브 미디어 피드의 상기 식별된 컨텐츠에 기초하여 선택되는 타겟팅된 오버레이 컨텐츠를 오버레이하는 동작을 더 포함하는, 비일시적 머신 판독 가능 매체.
The method of claim 19,
The above operations are:
And overlying, on the streaming live media feed, targeted overlay content selected based on the identified content of the streaming live media feed for which playback has resumed.
KR1020217007089A 2017-03-24 2018-03-23 Enabling interactive control of live television broadcast streams KR102256319B1 (en)

Applications Claiming Priority (6)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207015181A Division KR102227705B1 (en) 2017-03-24 2018-03-23 Enabling interactive control of live television broadcast streams

Publications (2)

Publication Number Publication Date
KR20210030494A true KR20210030494A (en) 2021-03-17
KR102256319B1 KR102256319B1 (en) 2021-05-28

Family

ID=75245765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217007089A KR102256319B1 (en) 2017-03-24 2018-03-23 Enabling interactive control of live television broadcast streams

Country Status (1)

Country Link
KR (1) KR102256319B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100172625A1 (en) * 2009-01-06 2010-07-08 Microsoft Corporation Client-side Ad Insertion During Trick Mode Playback
JP2011205441A (en) * 2010-03-26 2011-10-13 Rakuten Inc Content transmission device, method and program for controlling reproduction
KR20130088662A (en) * 2012-01-31 2013-08-08 한국전자통신연구원 Apparatus, method and system for providing additional information through a digital media content
US20130205326A1 (en) * 2012-02-07 2013-08-08 Nishith Kumar Sinha Method and system for detection of user-initiated events utilizing automatic content recognition
KR20150044465A (en) * 2013-10-16 2015-04-27 한양대학교 에리카산학협력단 Smart display
US20160323482A1 (en) * 2015-04-28 2016-11-03 Rovi Guides, Inc. Methods and systems for synching supplemental audio content to video content

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100172625A1 (en) * 2009-01-06 2010-07-08 Microsoft Corporation Client-side Ad Insertion During Trick Mode Playback
JP2011205441A (en) * 2010-03-26 2011-10-13 Rakuten Inc Content transmission device, method and program for controlling reproduction
KR20130088662A (en) * 2012-01-31 2013-08-08 한국전자통신연구원 Apparatus, method and system for providing additional information through a digital media content
US20130205326A1 (en) * 2012-02-07 2013-08-08 Nishith Kumar Sinha Method and system for detection of user-initiated events utilizing automatic content recognition
KR20150044465A (en) * 2013-10-16 2015-04-27 한양대학교 에리카산학협력단 Smart display
US20160323482A1 (en) * 2015-04-28 2016-11-03 Rovi Guides, Inc. Methods and systems for synching supplemental audio content to video content

Also Published As

Publication number Publication date
KR102256319B1 (en) 2021-05-28

Similar Documents

Publication Publication Date Title
JP6818846B2 (en) Automatic content recognition fingerprint sequence collation
US10827234B2 (en) Media content matching and indexing
KR102197311B1 (en) Detecting channel change in automatic content recognition fingerprint matching
US9641870B1 (en) Content management of a content feed
KR102227705B1 (en) Enabling interactive control of live television broadcast streams
US11563988B2 (en) Employing automatic content recognition to allow resumption of watching interrupted media program from television broadcast
KR102256319B1 (en) Enabling interactive control of live television broadcast streams

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right