KR20180026377A - 자동 콘텐츠 인식 핑거프린트 시퀀스 매칭 - Google Patents

자동 콘텐츠 인식 핑거프린트 시퀀스 매칭 Download PDF

Info

Publication number
KR20180026377A
KR20180026377A KR1020177033910A KR20177033910A KR20180026377A KR 20180026377 A KR20180026377 A KR 20180026377A KR 1020177033910 A KR1020177033910 A KR 1020177033910A KR 20177033910 A KR20177033910 A KR 20177033910A KR 20180026377 A KR20180026377 A KR 20180026377A
Authority
KR
South Korea
Prior art keywords
content
media
fingerprint
frames
fingerprints
Prior art date
Application number
KR1020177033910A
Other languages
English (en)
Inventor
파벨 에이. 코셰보이
Original Assignee
소렌슨 미디어, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소렌슨 미디어, 인크. filed Critical 소렌슨 미디어, 인크.
Publication of KR20180026377A publication Critical patent/KR20180026377A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/738Presentation of query results
    • G06F17/30837
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/35Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
    • H04H60/37Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying segments of broadcast information, e.g. scenes or extracting programme ID
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/56Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54
    • H04H60/59Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54 of video
    • 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/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/254Management at additional data server, e.g. shopping server, rights management server
    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Marketing (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

미디어 프로그램들과 연관된 프레임 핑거프린트들, 예컨대, 대응하는 타임 스탬프를 갖는 발신 미디어 콘텐츠의 프레임들을 갖는 데이터베이스를 저장하는 컴퓨터 판독가능 저장소를 갖는 처리 디바이스 및 방법이 개시되어 있다. 처리 디바이스는 프레임들의 순서화된 시퀀스 및 대응하는 타임 스탬프들을 포함하는 사용자에 의해 소비되는 콘텐츠의 핑거프린트를, 미디어 디바이스로부터, 수신한다. 처리 디바이스는 핑거프린트의 프레임들의 순서화된 시퀀스의 타임 스탬프들을 가장 가깝게 매칭하는 프레임 핑거프린트들의 타임 스탬프들에 매핑한 결과 얻어지는 점들의 세트를 포함하는 시간 기반 결과들을 생성하기 위해 데이터베이스에 질의한다. 처리 디바이스는 소비되는 콘텐츠에 대응하는 미디어 프로그램을 결정하기 위해 점들의 세트에 대해 패턴 인식 알고리즘을 실행하고, 미디어 프로그램을 보고 있는 사용자에게 부가적인 콘텐츠를 타깃팅하기 위해 광고 서버(또는 타깃터)에게 미디어 프로그램의 식별자를 송신한다.

Description

자동 콘텐츠 인식 핑거프린트 시퀀스 매칭
스마트 텔레비전(TV)들과 같은, 미디어 소비 디바이스들은 방송 디지털 콘텐츠에 액세스하고, 데이터 네트워크들(인터넷 등)로부터, 스트리밍 미디어와 같은, 데이터를 수신할 수 있다. 스트리밍 미디어는 영화 또는 뉴스와 같은 미디어 콘텐츠가 요청 시에 전화선, 케이블, 인터넷 등을 통해 최종 사용자에게 제공될 수 있는 서비스를 지칭한다. 예를 들어, 사용자는 그의 거주지를 떠날 필요 없이 영화를 볼 수 있다. 또한, 사용자는 학교 또는 교육 기관에 실제로 출석할 필요 없이, 비디오 강의들과 같은, 다양한 유형의 교육 콘텐츠에 액세스할 수 있다.
미디어 소비 디바이스들의 개수가 계속하여 증가함에 따라, 비디오 콘텐츠 생성 및 전달이 이와 유사하게 증가할 수 있다. 스트리밍 미디어에 액세스하기 위해 미디어 소비 디바이스들(스마트폰들, 태블릿들, 및 스마트 텔레비전들 등)의 사용이 증가함에 따라, 콘텐츠 또는 네트워크 제공자들(예컨대, 지역 방송사들, 다중 채널 네트워크(multi-channel network)들, 및 다른 콘텐츠 소유자들/분배자들)은 스트리밍 미디어(예컨대, 미디어 프로그램들)를 소비하는 시청자들에게 맥락적으로 관련성있는 자료(contextually-relevant material)를 분배할 수 있다. 예를 들어, 지역 방송사들은 스트리밍 미디어와 함께 맥락적으로 관련성있는 광고들 및 대화형 콘텐츠를 포함시킬 수 있다.
본 개시내용은 이하에서 주어지는 상세한 설명으로부터 그리고 본 개시내용의 다양한 실시예들의 첨부 도면들로부터 보다 충분히 이해될 것이다. 그렇지만, 도면들은 본 개시내용을 구체적인 실시예들로 제한하는 것으로 보아서는 안되며, 설명 및 이해를 위한 것에 불과하다.
도 1은 일 실시예에 따른, 콘텐츠 분배 네트워크의 시스템 구성도.
도 2는 일 실시예에 따른, 오버레이 콘텐츠를 클라이언트 디바이스에 제공하는 콘텐츠 관리자를 예시한 도면.
도 3은 도 2의 콘텐츠 관리자에 대한 미디어 콘텐츠를 핑거프린팅하는 데 사용되는 자동 콘텐츠 인식(ACR) 엔진의 시스템 구성도.
도 4는 입력(또는 질의) 핑거프린트의 프레임들의 순서화된 시퀀스의 타임 스탬프들을 매칭하는 프레임 핑거프린트들의 타임 스탬프들에 매핑하는 것을, 그래프로, 예시한 도면.
도 5는 일 실시예에 따른, 대응하는 텔레비전 프로그램을 식별하기 위해 입력(또는 질의) 핑거프린트의 프레임들의 시퀀스를 매칭시키는 자동 콘텐츠 인식(ACR) 방법의 플로차트.
도 6은 다른 실시예에 따른, 대응하는 텔레비전 프로그램을 식별하기 위해 입력(또는 질의) 핑거프린트의 프레임들의 시퀀스를 매칭시키는 자동 콘텐츠 인식(ACR) 방법의 플로차트.
도 7은 머신으로 하여금 본원에서 논의되는 방법론들 중 임의의 하나 이상의 방법론들을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있는 예시적인 형태의 컴퓨터 시스템에서의 머신의 개략적 표현을 예시한 도면.
텔레비전(TV) 또는 인터넷 쇼 방송과 같은, 미디어 콘텐츠 방송 또는 스트리밍은 제품들 및 서비스들을 광고하는 것, 시청자들에게 정보를 제공하는 것, 또는 이들의 임의의 조합을 위한 매력적인 장소(engaging venue)일 수 있다. 그에 따라, 광고 및 다른 유용하고 임의로 비상업적 정보를 시청자들에게 정확하게 타깃팅하기 위해 그 프로그램들의 주제가 사용될 수 있도록, 방송사들은 개별 시청자들이 어떤 프로그램들을 시청(watch)하고 있는지 그리고 언제 시청하는지를 알고자 한다. 비상업적이라는 것은, 예를 들어, 뉴스 알림(news alert)들, 공지(announcement)들 또는 교육 정보를 포함할 수 있다. 따라서, 사용자가 시청하고 있거나 시청할 예정인 프로그램을 결정하고, 이러한 타깃팅 동작들에서 사용하기 위해 프로그램 정보의 식별자(identification)를 광고 서버에게 송신하는 것이 유리할 것이다.
미디어 프로그램들과 연관된 프레임 핑거프린트들, 예컨대, 대응하는 타임 스탬프를 갖는 발신 미디어 콘텐츠(originating media content)의 프레임들을 갖는 데이터베이스를 저장하는 컴퓨터 판독가능 저장소를 갖는 처리 디바이스 및 방법이 개시되어 있다. 처리 디바이스는 프레임들의 순서화된 시퀀스 및 대응하는 타임 스탬프들을 포함하는 사용자에 의해 소비되는 콘텐츠의 핑거프린트를, 미디어 디바이스로부터, 수신한다. 처리 디바이스는 핑거프린트의 프레임들의 순서화된 시퀀스의 타임 스탬프들을 가장 가깝게 매칭하는 프레임 핑거프린트들의 타임 스탬프들에 매핑한 결과 얻어지는 점들의 세트를 포함하는 시간 기반 결과들을 생성하기 위해 데이터베이스에 질의한다. 처리 디바이스는 소비되는 콘텐츠에 대응하는 미디어 프로그램을 결정하기 위해 점들의 세트에 대해 패턴 인식 알고리즘을 실행하고, 미디어 프로그램을 보고 있는 동안 부가적인 콘텐츠를 사용자에게 타깃팅하기 위해 광고 서버에게 미디어 프로그램의 식별자를 송신한다. 패턴 인식 알고리즘은 라인의 특정 기울기를 검출할 수 있거나, 임의의 라인의 임의의 기울기를 검출할 수 있는, RANSAC(random sample consensus)을 포함할 수 있다. 기울기가 주어지면, 라인을 형성하는 매칭하는 프레임 핑거프린트들의 세트는 사용자가 시청하고 있는 미디어 프로그램에 대응한다.
그에 부가하여 또는 대안적으로, 자동 콘텐츠 인식(ACR) 서버는 적어도 하나의 처리 디바이스 및 미디어 프로그램들과 연관된 복수의 프레임 핑거프린트들을 갖는 데이터베이스를 포함할 수 있다. 각자의 프레임 핑거프린트들은 미디어 프로그램으로부터 선택된 프레임 및 프레임의 대응하는 타임 스탬프일 수 있다. 적어도 하나의 처리 디바이스는 사용자에 의해 소비되는 콘텐츠의 핑거프린트를, 미디어 디바이스로부터, 수신할 수 있으며, 핑거프린트는 프레임들의 시퀀스 및 대응하는 타임 스탬프들을 포함한다. 적어도 하나의 처리 디바이스는 핑거프린트의 프레임들의 시퀀스 내의 프레임 및 대응하는 타임 스탬프와 가장 가깝게 매칭하는 복수의 프레임 핑거프린트들 중의 프레임 핑거프린트들을 포함하는 2차원 데이터 구조로 시간 기반 결과들의 세트를 생성하기 위해 데이터베이스의 검색(search)을 실행할 수 있다. 일 예에서, 핑거프린트의 프레임들의 시퀀스의 타임 스탬프들은 가장 가깝게 매칭하는 프레임 핑거프린트들의 타임 스탬프들에 매핑되어, 타임 스탬프들의 2차원 데이터 구조로 점들을 형성한다. 적어도 하나의 처리 디바이스는, 예컨대, RANSAC 등을 사용하여, 소비되는 콘텐츠에 대응하는 미디어 프로그램을 결정하기 위해 시간 기반 결과들의 세트에 대해 패턴 인식 알고리즘을 추가로 실행할 수 있다.
적어도 하나의 처리 디바이스는 미디어 프로그램의 식별자를 광고 서버에게 송신하고, 미디어 프로그램의 주제에 맥락적으로 관련성있는 광고를, 광고 서버로부터, 수신할 수 있다. 적어도 하나의 처리 디바이스는 이어서 미디어 프로그램에서의 광고 시간 동안에 오버레이로서 또는 광고(또는 정보 세그먼트)로서 디스플레이하기 위해 광고(또는 다른 콘텐츠)를 미디어 디바이스에게 전달할 수 있다.
시청자들에게 미디어 콘텐츠를 제공하기 위해, 개인 또는 조직은, 인터넷을 통해 시청자들에게 미디어 콘텐츠를 전달하는 것 등에 의해, 시청자들에게 미디어 콘텐츠를 스트리밍할 수 있다. 개인 또는 조직에 의해 사용되는 미디어 콘텐츠는 하나 이상의 라이브 방송 미디어 피드(live broadcast media feed)들로부터 취득된 미디어 콘텐츠(비디오 데이터 등)일 수 있다. 예를 들어, 미디어 콘텐츠 제공자는 인터넷을 통해 선형 미디어 채널(예컨대, 라이브 미디어 피드 소스(live media feed source)로부터 시청자에게 제공되는 미디어)을 사용자에게 제공할 수 있다.
"콘텐츠"라는 단어는 미디어 또는 멀티미디어를 지칭하는 데 사용될 수 있다. '콘텐츠'라는 단어는 또한 미디어 자체보다는 미디어의 주제를 의미하는 특정 용어일 수 있다. 마찬가지로, "미디어"라는 단어 및 "미디어"를 포함하는 일부 합성어들(예컨대, 멀티미디어, 하이퍼미디어(hypermedia))은 그 대신에, 정보가 최종 사용자/시청자(audience)에게 전달되는 채널이 아니라, 콘텐츠를 지칭하고 있다. 미디어 또는 미디어 콘텐츠는, 비디오들, 영화들, 텔레비전 쇼(television show)들, 광고들, 스트리밍 비디오 등과 같은, 그래픽 표현들; 텍스트; 그래픽; 애니메이션들; 스틸 이미지(still image)들; 대화형 콘텐츠 폼(interactivity content form)들 등을 포함할 수 있다. 미디어의 유형이라고 흔히 지칭되는 콘텐츠의 유형의 일 예는 "영화(film)"라고 지칭되는 "활동 사진(motion picture)"이다.
일 실시예에서, 콘텐츠 오버레이 시스템 또는 콘텐츠 오버레이 디바이스는 미디어 콘텐츠를 광고와 같은 특정의, 적시의 및/또는 타깃팅된 오버레이 콘텐츠와 결합시키는 것을 가능하게 할 수 있다. 콘텐츠 오버레이 시스템 또는 콘텐츠 오버레이 디바이스는, 콘텐츠 오버레이들 내의 콜 투 액션(call to action)(예컨대, 콘텐츠 오버레이에 관여시키려는 유인)에 응답하도록 시청자들을 유인(invite)함으로써, 오버레이 콘텐츠 제공자들이 시청자들과 관계를 맺을 수 있게 할 수 있다. 시청자들을 콜 투 액션으로 유인하는 것의 하나의 장점은 시청자들이 부가적인 정보를 요청하는 것, 질문들을 하는 것, 입력을 제공하는 것, 광고된 서비스 또는 제품의 제공자와 연락하는 것 등을 위한 리턴 경로(return path) 또는 팔로업 경로(follow-up path)를 제공하는 것일 수 있다. 시청자를 콜 투 액션으로 유인하는 것의 다른 장점은 광고주들이 부가적인 정보를 제공하는 것, 시청자들을 추가로 관여시키는 것, 시청자들에 관한 부가적인 정보를 수집하는 것, 광고된 제품 또는 서비스에 관한 시청자 질문들에 답변하는 것 등을 위한 리턴 경로 또는 팔로업 경로를 제공하는 것일 수 있다. 다른 예에서, 콘텐츠 오버레이 시스템 또는 콘텐츠 오버레이 디바이스는, 시청자가 미디어 프로그램의 오버레이 콘텐츠를 보고 그리고/또는 그와 상호작용하면, 광고주가 크로스 플랫폼 리타깃팅 캠페인(cross platform retargeting campaign)들을 사용할 수 있게 할 수 있다.
도 1은 일 예에 따른 콘텐츠 분배 네트워크(100)의 시스템 구성도를 예시하고 있다. 콘텐츠 분배 네트워크(100)에서, 콘텐츠 제공자(102)는 콘텐츠 피드를 로컬 제공자(106)에게 방송할 수 있다. 로컬 제공자(106)는 헤드엔드(headend)(104) 및 자동 콘텐츠 인식(ACR) 핑거프린터 서버(fingerprinter server)(105)를 포함할 수 있다. 콘텐츠 제공자(102)로부터의 콘텐츠 피드는 로컬 제공자(106)의 헤드엔드(104)에서 수신될 수 있다. 헤드엔드(104)는 수신된 콘텐츠 피드에 기초하여 로컬 콘텐츠 피드를 생성할 수 있다. 예를 들어, 헤드엔드(104)는 국내 또는 글로벌 방송사로부터 프로그래밍 및 광고들을 갖는 네트워크 채널을 수신하는 로컬 제휴 방송사일 수 있다.
헤드엔드(104)는 로컬 콘텐츠 피드를 ACR 핑거프린터 서버(105), OTA(over-the-air) 방송사(108), 및/또는 MVPD(multichannel video programming distributor)(110)에게 전달할 수 있다. OTA 방송사(108) 및/또는 MVPD(110)는 로컬 콘텐츠 피드를 미디어 디바이스(115)에게 전달할 수 있다. 미디어 디바이스들(115)의 일부 예들은 클라이언트 디바이스들(118 및 120), 제공자 콘텐츠를 클라이언트 디바이스들(118 및 120)에게 스트리밍하는 셋톱 박스(114)는 물론, 사용자가 로컬 콘텐츠 피드를, 예컨대, 무선으로, 스트리밍할 수 있는 다른 디바이스들(116)을 포함한다.
일 예에서, OTA 방송사(108)는 전통적인 로컬 텔레비전 또는 라디오 채널들을 사용하여 로컬 콘텐츠 피드를 방송할 수 있다. 이 예에서, 클라이언트 디바이스들(118 및 120)은 (TV 또는 라디오 안테나들과 같은) 안테나들을 포함하고 로컬 콘텐츠 피드를 수신할 수 있다. 다른 예에서, (케이블 또는 위성 방송사와 같은) MVPD(110)는 로컬 콘텐츠 피드를 셋톱 박스(114)에 전달할 수 있다. 이 예에서, 셋톱 박스(114)는 클라이언트 디바이스들(118 및 120)에 대한 콘텐츠 피드를 포맷팅할 수 있고 포맷팅된 콘텐츠 피드를 클라이언트 디바이스들(118 및 120)에게 전달할 수 있다. 클라이언트 디바이스들(118 및 120)은 시청자에게 로컬 콘텐츠를 디스플레이하기 위해, 텔레비전 화면 또는 터치스크린과 같은, 디스플레이 디바이스를 포함할 수 있다. 콘텐츠 분배 네트워크(100)의 다양한 컴포넌트들은 클라이언트 디바이스들(118 및 120)에 통합 또는 결합될 수 있다. 예를 들어, 스마트 텔레비전은 안테나들, 셋톱 박스(114), 및 디스플레이 디바이스를 단일 유닛에 포함할 수 있다.
ACR 핑거프린트 서버(105)는 로컬 콘텐츠 피드를 분석하고 핑거프린트 정보(예컨대, 핑거프린트들)를 결정할 수 있다. ACR 핑거프린트 서버(105)는 핑거프린트들을 ACR 시스템들(124 및/또는 126)에게 전달할 수 있다. ACR 시스템들(124 및 126)은, 스마트 TV 제조업체들과 같은, 디바이스 제조업체들에 의해 선택된 상이한 ACR 시스템들일 수 있다. 일부 실시예들에서, 이하에서 기술되는 바와 같이, ACR 시스템(124)은 ACR 핑거프린트 시퀀스 매처(ACR fingerprint sequence matcher)(125)를 포함한다. ACR 핑거프린트 시퀀스 매처(125)는 프레임 핑거프린트들을 대응하는 비디오 프레임들의 출처인 원본 비디오 콘텐츠와 매칭시킬 수 있다. ACR 시스템(126)은 ACR 핑거프린트 시퀀스 매처(125)를 가질 수 있거나 그렇지 않을 수 있다. ACR 핑거프린트 시퀀스 매처(125)에 관한 상세들은 도 3과 관련하여 이하에서 기술된다.
ACR 핑거프린트 서버(105)는 로컬 콘텐츠 피드를 분석하고, 로컬 콘텐츠 피드로부터의 프레임들의 순서화된 시퀀스를 포함할 수 있는, 핑거프린트들을 캡처할 수 있다. ACR 핑거프린트 서버(105)는 핑거프린트들을 ACR 시스템들(124 및/또는 126)에게 전달할 수 있다. ACR 시스템들(124 및 126)은, 스마트 TV 제조업체들과 같은, 디바이스 제조업체들에 의해 선택된 상이한 ACR 시스템들일 수 있다. 일 예에서, ACR 핑거프린트 서버(105)는, 예컨대, 상이한 유형의 핑거프린팅 기술을 포함하는 상이한 ACR 시스템들(124 및 126)에 대한 핑거프린트들을 포맷팅할 수 있다. ACR 시스템들(124 및 126)은, 각각, 클라이언트 디바이스들(118 및 120)을 포함하는, 상이한 미디어 디바이스들(115)과의 통신 연결들을 구축할 수 있다. 클라이언트 디바이스들(118 및 120)은 핑거프린트 정보를 ACR 시스템들(각각, 124, 126)에게 전달할 수 있다. ACR 시스템(124 또는 126)이 클라이언트 디바이스들(118 및/또는 120)로부터 ACR 핑거프린트 정보를 수신할 때, ACR 시스템(124 또는 126)은 수신된 핑거프린트들을 ACR 핑거프린트 서버(105)에 의해 생성된 핑거프린트들과 매칭시킬 수 있고, 매치가 있고 콘텐츠가 식별되었을 때, ACR 이벤트들을 콘텐츠 관리자(122)에게 전달할 수 있다.
다른 예에서, ACR 시스템들(124 및/또는 126)은 클라이언트 디바이스들(118 및/또는120)로부터 ACR 핑거프린트 정보를 수신할 수 있고, 수신된 핑거프린트들을 ACR 핑거프린트 서버(105)에 의해 생성된 핑거프린트들과 매칭시킬 수 있다. 매치가 있고 콘텐츠가 식별되었을 때, ACR 시스템들(124 및/또는 126)은 ACR 이벤트들을 클라이언트 디바이스(118 및/또는 120)에게 통지할 수 있고, 이어서 클라이언트 디바이스(118 및/또는 120)는 그 ACR 이벤트들을 콘텐츠 관리자(122)에게 전달할 수 있다. 대안적으로 또는 그에 부가하여, ACR 시스템들(124 및/또는 126)은 ACR 이벤트들을 콘텐츠 관리자(122)에 직접 전달할 수 있다. ACR 핑거프린트 정보는 로컬 콘텐츠 피드 내의 광고들을 시청자에게 디스플레이하는 것, 로컬 콘텐츠 피드 내의 선택된 또는 플래깅된 콘텐츠를 시청자에게 디스플레이하는 것, 클라이언트 디바이스(118 또는 120)에서의 콘텐츠 채널의 변경 등을 포함할 수 있다.
상이한 ACR 시스템들(124 및 126)로부터의 이벤트 정보는 상이한 포맷들로 되어 있을 수 있고, 콘텐츠 관리자(122)는, 데이터를 데이터베이스(123)에 저장하기 전에, 데이터를 공통 포맷으로 정규화할 수 있다. 예를 들어, 콘텐츠 관리자(122)는 ACR 시스템들(124 및 126)로부터, 동일하지만 상이하게 포맷팅된 콘텐츠를 갖는 데이터와 같은, 유사하지만 동일하지 않은 데이터를 포함하는 이질적 데이터 세트(disparate data set)들을 수신할 수 있다. 콘텐츠 관리자(122)는 단일 데이터 모델 또는 포맷(예컨대, 재포맷팅된 데이터 세트들)을 생성하기 위해 이질적 데이터 세트들을 처리 및 재포맷팅할 수 있고, 재포맷팅된 데이터 세트들이 콘텐츠 관리자(122) 내의 데이터베이스(123)에 채워(populate)질 수 있다.
일 실시예에서, ACR 시스템들(124 및 126)로부터의 이질적 데이터 세트들을 정규화하기 위해, 콘텐츠 관리자(122)는 데이터 세트들 내의 데이터를 정리(cleanse) 또는 필터링할 수 있다. 예를 들어, 일부 데이터 세트들은 콘텐츠 관리자(122)와 관련이 없을 수 있는 필드들 또는 데이터를 포함할 수 있다. 이 예에서, 콘텐츠 관리자(122)는 관련이 없는 데이터를 정리 또는 필터링할 수 있다(예컨대, 데이터가 제거 또는 무시될 수 있다). 다른 예에서, 일부 데이터 세트들은 불완전한 또는 부정확한 데이터 또는 데이터 세트들의 인스턴스들을 포함할 수 있고, 콘텐츠 관리자(122)는 불완전한 또는 부정확한 데이터 또는 데이터 세트들을 정리 또는 필터링할 수 있다. 다른 실시예에서, ACR 시스템들(124 및 126)로부터의 이질적 데이터 세트들을 정규화하기 위해, 콘텐츠 관리자(122)는 데이터 세트들의 필드들을 매핑할 수 있다. 예를 들어, 콘텐츠 관리자(122)가 ACR 시스템(124)으로부터 제1 데이터 세트를 수신하고 ACR 시스템(126)으로부터 제2 데이터 세트를 수신할 때, 제1 데이터 세트 및 제2 데이터 세트의 데이터 필드들 중 적어도 일부가 제1 데이터 세트 및 제2 데이터 세트 둘 다에 공통일 수 있다. 그렇지만, 공통 데이터 필드들이 제1 데이터 세트 및 제2 데이터 세트에서 상이한 위치들에 위치될 수 있다. 이 예에서, 콘텐츠 관리자(122)는 제1 데이터 세트 및 제2 데이터 세트의 상이한 데이터 필드들을 정규화된 필드들에 매핑하고 데이터베이스(123)에서의 동일한 데이터 필드 위치들에 동일한 데이터 필드들을 가질 수 있다.
다른 실시예에서, ACR 시스템들(124 및 126)로부터의 이질적 데이터 세트들을 정규화하기 위해, 콘텐츠 관리자(122)는 데이터 세트들로부터 데이터를 도출할 수 있다. 예를 들어, ACR 시스템들(124 및/또는 126)로부터의 데이터가 데이터베이스에서의 데이터 필드들을 채우는 데 필요한 필드들 전부를 포함하는 것은 아닐 수 있다. 그렇지만, 콘텐츠 관리자(122)는 이 데이터 필드들에 대한 데이터를 도출하기 위해 ACR 시스템들(124 및 126)로부터의 데이터 세트들에서의 다른 필드들을 사용할 수 있다.
일 예에서, 데이터베이스(123)는 국가 내의 주(state) 필드, DMA(designated market area), 그리고 카운티(county) 및/또는 도시 필드와 같은 데이터 필드들을 포함할 수 있지만, ACR 시스템들(124 및 126)로부터의 데이터 세트들이 ZIP(zone improvement plan) 코드들만을 포함할 수 있다. 이 예에서, 콘텐츠 관리자(122)는 데이터베이스에서의 필드들에 대한 데이터를 도출하기 위해 ZIP 코드들을 사용할 수 있다. 다른 예에서, 데이터 세트가 어떤 지리적 위치 정보도 포함하지 않을 수 있지만, ACR 시스템들(124 및 126)의 IP(internet protocol) 주소를 포함할 수 있다. 이 예에서, 콘텐츠 관리자(122)는 주, DMA, 카운티, 도시 및 ZIP 코드 정보를 도출하기 위해 geo-IP 탐색 서비스(geo-IP lookup service)를 사용할 수 있다.
다른 예에서, 데이터베이스(123)는 연령 필드, 성별 필드, 가계 소득 필드 등과 같은 인구통계 필드들을 포함할 수 있다. 그렇지만, ACR 시스템들(124 및 126)로부터의 데이터 세트들이 인구통계 필드들 또는 인구통계 데이터를 포함하지 않을 수 있다. 이 예에서, ACR 시스템들(124 및 126)은 클라이언트 디바이스들(118 및 120)의 IP 주소를 콘텐츠 관리자(122)에게 제공할 수 있다. 콘텐츠 관리자(122)는 데이터베이스에서의 데이터 필드들을 채울 인구통계 데이터를 결정하기 위해 IP 주소들을 사용할 수 있다.
다른 예에서, ACR 시스템(124)으로부터의 제1 데이터 세트에서의 필드는, MDT(mountain daylight time) 시간대와 같은, 로컬 시간대 정보(local time zone information)를 포함할 수 있고, ACR 시스템(126)으로부터의 제2 데이터 세트는, UTC(coordinated universal time) 시간대와 같은, 다른 시간대로부터의 정보를 포함할 수 있다. 데이터베이스는 UTC를 사용하여 모든 데이터를 저장할 수 있고, 콘텐츠 관리자(122)는, 데이터를 데이터베이스(123)에 저장하기 전에, 로컬 시간을 UTC로 변환할 수 있다.
일 실시예에서, 콘텐츠 관리자(122)는, 상이한 ACR 기술 벤더들 및 스마트 TV 또는 다른 인터넷 연결된 비디오 디바이스들에 걸쳐 사용자 시청 거동에 관한 보고들 또는 데이터(시청 데이터)를 생성하기 위해, 정규화된 데이터를 사용할 수 있다. 콘텐츠 관리자(122) 및 미디어 디바이스들(115)은 미디어 디바이스들(115)과 콘텐츠 관리자(122) 사이에서, 오버레이 콘텐츠와 같은, 정보를 전달하는 통신 인터페이스들을 포함할 수 있다.
일 예에서, 통신 인터페이스는 셀룰러 네트워크 및/또는 무선 네트워크를 사용하여 정보를 전달할 수 있다. 일 예에서, 통신 네트워크는 3GPP(third generation partnership project) 릴리스 8, 9, 10, 11, 또는 12 또는 IEEE(Institute of Electronics and Electrical Engineers) 802.16p, 802.16n, 802.16m-2011, 802.16h-2010, 802.16j-2009, 802.16-2009일 수 있는 셀룰러 네트워크일 수 있다. 다른 실시예에서, 통신 네트워크는, IEEE 802.11-2012, IEEE 802.11ac, 또는 IEEE 802.11ad 표준들과 같은, IEEE(Institute of Electrical and Electronics Engineers, Inc.)에 의해 개발된 IEEE® 표준을 준수할 수 있는 (Wi-Fi Alliance에 의해 개발된 Wi-Fi® 기술을 사용하는 네트워크와 같은) 무선 네트워크일 수 있다. 다른 실시예에서, 통신 네트워크는, Bluetooth v1.0, Bluetooth v2.0, Bluetooth v3.0, 또는 Bluetooth v4.0과 같은, Bluetooth SIG(Special Interest Group)에 의해 개발된 Bluetooth® 연결일 수 있다. 다른 실시예에서, 통신 네트워크는, IEEE 802.15.4-2003(Zigbee 2003), IEEE 802.15.4-2006(Zigbee 2006), IEEE 802.15.4-2007(Zigbee Pro)와 같은, ZigBee Alliance에 의해 개발된 Zigbee® 연결일 수 있다.
일 예에서, 콘텐츠 관리자(122)는 또한 OTA 방송사(108) 또는 MVPD(110)로부터 수신된 로컬 콘텐츠 피드의 부분들을 오버레이 콘텐츠로 대체하라고 미디어 디바이스들(115)에 지시할 수 있다. 다른 예에서, 콘텐츠 관리자(122)는 오버레이 콘텐츠를 로컬 콘텐츠 피드의 부분들 상에 오버레이 또는 중첩시키라고 미디어 디바이스(115)에 지시할 수 있다. 콘텐츠 관리자(122)는 다수의 ACR 시스템들(124 및 126)에 걸쳐 ACR 정보를 집계할 수 있고 상이한 클라이언트 디바이스들(118 및 120)에게 오버레이 콘텐츠를 전달할 수 있으며, 여기서 클라이언트 디바이스들(118 및 120)은 상이한 디바이스 제조업체들로부터의 것일 수 있다.
콘텐츠 관리자(122)는 또한 미디어 디바이스(115)의 다른 디바이스들(116)과의 통신 연결들을 구축할 수 있다. 일 예에서, 다른 디바이스(116)는 클라이언트 디바이스들(118 또는 120)과 통신하고 오버레이 콘텐츠를 디스플레이할 부가적인 화면(예컨대, 제2 화면)을 제공할 수 있다. 예를 들어, 클라이언트 디바이스들(118 및 120)은 OTA 방송사(108) 또는 MVPD(110)로부터 로컬 콘텐츠 피드를 수신하고 로컬 콘텐츠 피드를 사용자에게 디스플레이할 수 있다. 이전의 단락들에서 논의된 바와 같이, ACR 이벤트가 발생할 때 다른 디바이스들(116)은 또한 ACR 이벤트 정보를 ACR 시스템들(124 및 126)에게 전달할 수 있다. 콘텐츠 관리자(122)가 ACR 이벤트 정보를 수신할 때, 콘텐츠 관리자(122)는 오버레이 콘텐츠를 다른 디바이스들(116)에게 전달할 수 있다.
일 예에서, 다른 디바이스들(116)이 오버레이 콘텐츠를 디스플레이하는 동안 클라이언트 디바이스들(118 및 120)은 로컬 콘텐츠 피드를 계속하여 디스플레이할 수 있다. 다른 예에서, 클라이언트 디바이스들(118 및 120) 및 다른 디바이스들(116) 둘 다가 오버레이 콘텐츠를 디스플레이할 수 있다. 다른 예에서, 클라이언트 디바이스들(118 및 120) 및 다른 디바이스들(116)이 오버레이 콘텐츠의 일부분 및 로컬 콘텐츠 피드의 일부분을 디스플레이할 수 있다. 다른 예에서, 클라이언트 디바이스들(118 및 120) 및 다른 디바이스들(116)이 상이한 로컬 콘텐츠 피드들 및/또는 상이한 오버레이 콘텐츠를 디스플레이할 수 있다.
일 예에서, 오버레이 콘텐츠가 수신될 때 클라이언트 디바이스들(118 및 120) 및/또는 다른 디바이스들(116)은 오버레이 콘텐츠를 디스플레이할 수 있다. 다른 예에서, 클라이언트 디바이스들(118 및 120) 및/또는 다른 디바이스들(116)은 문턱 기간(threshold period of time) 동안 오버레이 콘텐츠를 디스플레이하는 것을 지연시킬 수 있다. 문턱 기간은 미리 정의된 기간일 수 있거나 콘텐츠 관리자(122)는 클라이언트 디바이스들(118 및 120) 및/또는 다른 디바이스들(116)이 오버레이 콘텐츠를 디스플레이하는 것을 지연시키는 기간을 선택할 수 있다.
도 2는 일 실시예에 따른, 오버레이 콘텐츠를 클라이언트 디바이스들(218 및/또는 220)과 같은 미디어 디바이스(115)에 제공하는 콘텐츠 관리자(222)를 예시하고 있다. 콘텐츠 제공자(202)는 미디어 콘텐츠를 네트워크(219)를 통해 미디어 디바이스(115)에게 스트리밍할 수 있고, 이 스트리밍은 미디어 콘텐츠를 미디어 디바이스(115)에게 스트리밍하기 이전에 또는 그와 동시에 콘텐츠 관리자(222)에 의해 가로채기(intercept)될 수 있다. 콘텐츠 관리자(222)는 또한, 보다 상세히 설명될 것인 바와 같이, 미디어 콘텐츠의 주제 및/또는 사용자의 관심사들을 타깃팅하기 위해 광고가 미디어 콘텐츠와 함께(또는 미디어 콘텐츠에 대한 오버레이로서) 서빙되도록 요청하는 광고 호출을 ad 서버(230)에게 송신하는 것 등을 위해 광고 서버(또는 "ad" 서버)(230)와 통신할 수 있다. ad 서버(230)는 광고 또는 다른 오버레이 콘텐츠를 미디어 디바이스(115)에게 나중에 전달하기 위해 콘텐츠 관리자(222)에 제공하거나 콘텐츠를 오버레이들로서 미디어 디바이스(115)에게 직접 제공할 수 있는 써드파티 또는 외부 서버일 수 있다.
콘텐츠 관리자(222)는 ACR 엔진(204), 탐색 서버(206), 오버레이 결정 엔진(210), 오버레이 콘텐츠를 저장하는 오버레이 데이터베이스(211), 및 ad 타깃터(ad targeter)(212)를 포함할 수 있다. 콘텐츠 제공자(202)는 미디어 콘텐츠를 ACR 엔진(204)에 업로드할 수 있다.
ACR 엔진(204)은 미디어 콘텐츠를 핑거프린팅할 수 있다. 일 예에서, 피드의 매 프레임마다, 피드의 하나 걸러 프레임마다, 프레임들의 시퀀스 등을 핑거프린팅하는 것에 의해 핑거프린트들이 생성될 수 있다. 예를 들어, ACR 엔진(204)은 프레임의 이산 코사인 변환(DCT)을 수행하고 그 결과 얻어진 계수들의 서브세트(예컨대, 저주파 계수들)를 핑거프린트로서 지정하는 것에 의해 피드의 프레임에 대한 핑거프린트를 생성할 수 있다. 다른 또는 관련 실시예에서, ACR 엔진(204)은 또한 어떤 이벤트, 예컨대, ACR 시스템(124 또는 126)에 저장된 발신 콘텐츠의 프레임 핑거프린트들과 프레임 시퀀스 질의 핑거프린트(sequence-of-frames query fingerprint) 사이의 긍정적 매치(positive match)가 일어났을 수 있는지를 결정하기 위해 ACR 이벤트 정보를 분석할 수 있다. 긍정적 매치가 있을 때, ACR 엔진(204)은 긍정적 매치를 가져오는 콘텐츠를 식별해주는 미디어 콘텐츠 식별자(ID)를 포함할 수 있는 긍정적 매치 지시자(positive match indicator)를 요청측 미디어 디바이스(115)에게 송신할 수 있다. 미디어 디바이스(115)는 미디어 콘텐츠 오버레이를 요청하는 오버레이 요청을 오버레이 결정 엔진(210)에게 송신할 수 있다. 일 예에서, 오버레이 요청은 미디어 콘텐츠 ID를 포함할 수 있다. 다른 예에서, 오버레이 요청은 오버레이 정보 또는 오버레이 파라미터들을 포함할 수 있다.
도 2를 추가로 참조하면, ACR 엔진(204)은 ACR 시스템(124 또는 126)으로부터 수신된 ACR 이벤트에 대응하는 텔레비전 프로그램(또는, 예를 들어, 채널) 및 텔레비전 프로그램 내의 위치를 탐색 및 결정할 수 있는 탐색 서버(206)에게 ACR 핑거프린트들을 전달할 수 있다. 피드의 세그먼트의 각각의 핑거프린트는 타임 스탬프와 연관될 수 있다. 타임 스탬프는 ACR 엔진(204)에 의해 수신될 때 피드의 세그먼트의 개별 프레임들에 속할 수 있다. 타임 스탬프는 임의의 시작점으로부터의 피드 내의 프레임 번호일 수 있다. 탐색 서버(206)는 핑거프린트들을 그 각자의 타임 스탬프들과 관련하여 (예컨대, 핑거프린트 데이터베이스(207)에) 저장하고, ad 타깃터(212) 및 오버레이 결정 엔진(210)이 사용자가 보고 있는 피드의 미디어 콘텐츠 내에서의 타이밍 결정(timing) 및 콘텐츠 타깃팅(content targeting)을 수행하는 것을 도울 수 있다.
일 실시예에서, ACR 엔진(204)은 다양한 미디어 디바이스들(115)에 있는 ACR 클라이언트(215)와 상호작용한다. ACR 클라이언트(215)는 핑거프린트들을 로컬적으로 매칭시키고 사용자가 상이한 텔레비전 프로그램을 시청하기 위해 채널을 변경했는지 여부를 확인하고 채널 변경을 콘텐츠 관리자(222)에게 보고할 수 있다. 그에 따라, 일부 경우들에서, 핑거프린트들의 매칭이 미디어 디바이스들(115)에서 로컬적으로 일어날 수 있다.
게다가, ACR 클라이언트(215)는, 예컨대, 미디어 디바이스(115) 상에서 시청되는 텔레비전 프로그램 또는 채널을 확인하라고 요청하는 질의 핑거프린트들의 형태로, 사용자 핑거프린트 정보를 탐색 서버(206)에게 주기적으로, 연속적으로, 또는 준연속적으로 전달할 수 있다. 탐색 서버(206)는 질의 핑거프린트(들)와 핑거프린트 데이터베이스(207)에 저장된 다수의 프레임 핑거프린트들 간에 또는 탐색 서버로부터 네트워크(219)에 걸쳐 매치가 있을 때를 결정할 수 있다. 질의 핑거프린트는 프레임들의 순서화된 시퀀스일 수 있으며, 그 각자는 텔레비전 프로그램 또는 채널과 연관되기에 충분한 매치를 발견할 때까지 프레임 핑거프린트들의 개개의 프레임 핑거프린트와 매칭될 수 있다. 긍정적 매치(positive match)가 있을 때, 탐색 서버(206)는 긍정적 매치 지시자(positive match indicator)를 ACR 클라이언트(215)에게 전달할 수 있다. ACR 클라이언트(215)는 미디어 콘텐츠 오버레이를 요청하는 오버레이 요청을 오버레이 결정 엔진(210)에게 송신할 수 있다.
일 예에서, 오버레이 요청은 미디어 콘텐츠 식별자(ID)를 포함할 수 있다. 다른 예에서, 오버레이 요청은 오버레이 정보 또는 오버레이 파라미터들을 포함할 수 있다. 일 예에서, 오버레이 결정 엔진(210)은 타깃팅된 오버레이 콘텐츠를 식별하기 위해 콘텐츠 ID, 오버레이 정보, 및/또는 오버레이 파라미터들을 사용할 수 있다. 다른 예에서, 오버레이 결정 엔진(210)은 오버레이 포맷을 식별하기 위해 콘텐츠 ID, 오버레이 정보, 및/또는 오버레이 파라미터들을 사용할 수 있다. 오버레이 결정 엔진(210)은 타깃팅된 오버레이 콘텐츠 및/또는 오버레이 포맷을 식별하기 위해 콘텐츠 ID, 오버레이 정보, 및/또는 오버레이 파라미터들을 오버레이 데이터베이스(211)와 비교할 수 있다. 오버레이 데이터베이스가, 콘텐츠 제공자 또는 광고주(예컨대, ad 서버(230))에 의해, 새로운 오버레이 콘텐츠 및 오버레이 포맷들로 주기적 또는 연속적으로 업데이트될 수 있다. 오버레이 콘텐츠는 채널의 텔레비전 프로그램의 스트리밍된 미디어 콘텐츠의 오버레이 위치로 전달되기 이전에 또는 그 이후에 오버레이 포맷(오버레이 템플릿, 기타 등등)을 채울 수 있다.
ad 타깃터(212)는 오버레이 결정 엔진에 의해 미디어 디바이스(115)에게 전달된 광고 및 다른 오버레이 콘텐츠와의 사용자 상호작용 및 그에 관한 거동을 추적 및 분석할 수 있다. ad 타깃터(212)는 또한, 사용자들의 관심을 끄는 주제를 결정하기 위해, 미디어 디바이스별로 사용자 거동의 분석에 의해 사용자 프로파일 정보를 수신 및 통합할 수 있다. 사용자 또는 사용자들의 그룹에 대해 수집된 이 정보 및 데이터는 전형적으로 시청되는 텔레비전 프로그램들 및 채널들 및 언제 시청되는지와 관련하여 선호 시청 시간들 및 전형적인 시청 습관들로 확장될 수 있다. ad 타깃터(212)는 이어서 오버레이 결정 엔진(210)이 각자의 사용자들에게 전달하기 위해 어떤 오버레이 콘텐츠를 선택할지, 그것을 어떻게 포맷팅할지, 및 캠페인 예산의 투자 수익을 극대화하기 위해 언제 전달하는 것이 최상일지를 결정하는 데 사용할 수 있는 상이한 관심 주제들 및 시청 습관들을, 예컨대, 파라미터들의 형태로, 오버레이 결정 엔진(210)에게 통보할 수 있다.
오버레이 결정 엔진(210)이, ad 타깃터(212)의 도움을 받아, 타깃팅된 오버레이 콘텐츠를 식별할 때, 오버레이 결정 엔진은 타깃팅된 오버레이 콘텐츠를 미디어 디바이스(115)에게 반환(return)할 수 있다. 일 예에서, 오버레이 결정 엔진(210)은 타깃팅된 오버레이 콘텐츠를, 무선 통신 네트워크 등을 통해, 미디어 디바이스(115)에게 직접 전달할 수 있다. 다른 예에서, 오버레이 결정 엔진(210)은 타깃팅된 오버레이 콘텐츠를 URL(universal resource locator)을 통해 미디어 디바이스(115)에게 전달할 수 있다. 일 예에서, 다수의 타깃팅된 오버레이 콘텐츠들이 콘텐츠 ID, 오버레이 정보, 및/또는 오버레이 파라미터들과 매칭할 때, 오버레이 결정 엔진(210)은 최대 수 파라미터들 또는 다른 정보를 충족시키는 타깃팅된 콘텐츠 오버레이를 선택할 수 있다. 다른 예에서, 다수의 타깃팅된 오버레이 콘텐츠들이 콘텐츠 ID, 오버레이 정보, 및 다른 오버레이 파라미터들과 매칭할 때, 오버레이 결정 엔진(210)은 파라미터들 및 다른 정보를 충족시키는 오버레이 콘텐츠를 랜덤하게 선택할 수 있다. 다른 예에서, 다수의 타깃팅된 오버레이 콘텐츠들이 콘텐츠 ID, 오버레이 정보, 및 오버레이 파라미터들과 매칭할 때, 오버레이 결정 엔진(210)은 콘텐츠 ID, 오버레이 정보, 및/또는 오버레이 파라미터들과 매칭하는 미리 결정된 오버레이 콘텐츠를 선택할 수 있다. 오버레이 콘텐츠는 동적 콘텐츠(예컨대, 주기적인 간격으로 업데이트 또는 새로고침될 수 있는 콘텐츠)로 채워질 수 있다. 동적 콘텐츠는 로컬 데이터베이스 또는 외부 시스템에 저장될 수 있다.
ACR 핑거프린트 정보가 사용자 핑거프린트 정보와 매칭할 때, 미디어 디바이스(115)의 ACR 클라이언트(215)는 오버레이 콘텐츠를 콘텐츠 피드 상에 중첩시킬 수 있다. 일 예에서, 미디어 디바이스(115)는 HTML(hypertext markup language) 브라우저에서 오버레이 콘텐츠를 콘텐츠 피드 상에 중첩시킬 수 있다. 다른 예에서, 미디어 디바이스(115)는 오버레이 콘텐츠를 OTA 방송사 또는 케이블 방송사로부터의 콘텐츠 피드 상에 중첩시킬 수 있다. 오버레이 콘텐츠가 콘텐츠 피드 상에 위치될 때, 오버레이 콘텐츠는 미디어 디바이스(115)의 디스플레이를 통해 사용자에게 디스플레이될 수 있다. 일 예에서, 오버레이 콘텐츠는 사용자에게 디스플레이될 수 있는 하나 이상의 콜 투 액션 옵션들을 포함할 수 있다. 이 예에서, 사용자는 피드백 정보를 생성하기 위해 입력 디바이스(TV 리모콘, 키보드, 스마트폰 또는 태블릿 등)를 사용하여 오버레이 콘텐츠와 상호작용할 수 있다. ACR 클라이언트(215)는 피드백 정보를 ad 타깃터(212)에게 전달할 수 있다. 광고주와 같은 다른 개인은, 오버레이 콘텐츠에 대한 사용자 관심과 같은, 원하는 정보를 결정하기 위해 피드백 정보에 액세스하고 피드백 정보를 분석할 수 있다.
ACR 클라이언트(215)는, 오버레이 콘텐츠 및 콘텐츠 피드 매칭이 중단되고 그리고/또는 문턱 기간이 만료될 때를 결정하기 위해, 콘텐츠 피드를 모니터링할 수 있다. 일 예에서, 오버레이 콘텐츠 및 콘텐츠 피드 매칭이 중단되고 그리고/또는 문턱 기간이 만료될 때, 미디어 디바이스(115)는 미디어 디바이스(115) 상에 디스플레이하기 위한 오버레이 콘텐츠를 중첩시키는 것을 중단할 수 있다.
도 3은 도 2의 콘텐츠 관리자에 대한 미디어 콘텐츠를 핑거프린팅하는 데 사용되는 ACR 엔진(204)의 시스템 구성도이다. ACR 엔진(204)은 일 실시예에 따른, 핑거프린팅될 미디어 콘텐츠의 콘텐츠 프레임들을 수신할 수 있고, 핑거프린터(305), 핑거프린트 시퀀스 매처(325) 및 프레임 핑거프린트들이 저장되어 있는 데이터베이스(327)를 포함할 수 있다. 콘텐츠 제공자(202)는, 클라이언트 디바이스들(218 및/또는 220)을 비롯한, 미디어 디바이스들(115)로 스트리밍되는 멀티미디어 콘텐츠를 생성할 수 있다.
핑거프린터(305)는 멀티미디어 콘텐츠 중의 다수의 콘텐츠 프레임들(302)을 핑거프린트로서 검출 또는 선택할 수 있다. 일 실시예에서, 다수의 콘텐츠 프레임들(302)은 순차적으로 정렬되고, 따라서 핑거프린트의 시작부터 끝까지 순차적인 타임 스탬프들을 포함할 수 있다. 일 예에서, 콘텐츠는 오디오 데이터, 비디오 데이터 또는 둘 다일 수 있다. 이 예에서, 비디오 콘텐츠는 원시 비디오 프레임(raw video frame)들일 수 있다.
예를 들어, 핑거프린터(305)가 콘텐츠 프레임들(302)을 수신할 때, 핑거프린터(305)는 핑거프린트를 생성하기 위해, 원시 비디오 및/또는 오디오 프레임들과 같은 콘텐츠 프레임들(302)을 어떻게 처리할지를 결정할 수 있다. 일 예에서, 프레임들은 개별적으로 핑거프린팅될 수 있다. 다른 예에서, 프레임들은 컬렉션들 또는 시퀀스들로 핑거프린팅될 수 있다. 핑거프린터(305)는, 핑거프린터(305)가 핑거프린팅 동안 실행하는 ACR 알고리즘에 기초하여, 개별적으로 또는 순차적으로 프레임들을 언제 핑거프린팅할지를 결정할 수 있다.
다른 예에서, 핑거프린터(305)는 상이한 방송사들 또는 사용자들에 대해 상이하게 콘텐츠 프레임들(302)을 핑거프린팅할 수 있다. 이 예에서, 핑거프린터(305)는 상이한 ACR 벤더들에 대해 상이한 ACR 핑거프린팅 알고리즘들을 포함할 수 있다. 일 예에서, 상이한 ACR 핑거프린팅 알고리즘들은 미리 결정되어 핑거프린터(305)의 메모리 상에 저장될 수 있다.
또 다른 예에서, 상이한 ACR 핑거프린팅 알고리즘들이 써드파티 ACR 벤더들에 의해 제공될 수 있다. 상이한 ACR 핑거프린팅 알고리즘들이 이러한 벤더들에 의해 제공될 때, 핑거프린터(305)는 상이한 ACR 핑거프린팅 알고리즘들을 집계할 수 있다. 일 예에서, ACR 핑거프린팅은 YUV 4:2:2 색 공간에 있고 고해상도들 또는 다른 해상도 레벨들로 되어 있는 원시 비디오를 사용할 수 있다. 비디오 콘텐츠가 로컬 제공자(106) 또는 다른 콘텐츠 제공자(202)에 수신될 때, 핑거프린터(305)는, 미디어 디바이스들(115)에게 송신되기 전에, 비디오 콘텐츠를 YUV 4:2:0 색 공간으로 변환하고, 그의 해상도를 방송사 또는 분배자에 의한 인코딩을 위한 문턱 해상도 레벨로 스케일 다운할 수 있다.
일부 실시예들에서, 핑거프린터(305)는 핑거프린트 시퀀스 매처(325)를 포함할 수 있거나 그와 통신할 수 있다. 이하에서 보다 상세히 기술되는 바와 같이, 핑거프린트 시퀀스 매처(325)는 핑거프린트들의 시퀀스를 개별 프레임 핑거프린트들의 주어진 세트의 출처인 원본 비디오 콘텐츠와 매칭시킬 수 있다.
핑거프린터(305)가 콘텐츠 프레임들(302)을 핑거프린팅했을 때, 핑거프린터는 핑거프린트들(채널 정보, 타임 코드들, 및 핑거프린트 정보를 포함함)을 오버레이 데이터베이스(211)에게 그리고/또는 탐색 서버(206)에게 송신할 수 있다. 탐색 서버(206)는 또한 오버레이 데이터베이스(211)로부터 핑거프린트 및 관련 정보를 검색(retrieve)할 수 있다. 탐색 서버(206)는 또한, 클라이언트 디바이스(218 및 220) 상의 사용자들을 맥락적으로 타깃팅할 오버레이 및 주제 매칭 정보를 오버레이 결정 엔진(210) 및 ad 타깃터(212)에게 송신하기 위해, 오버레이 결정 엔진(210) 및 ad 타깃터(212)와 통신하거나 그와 결합될 수 있다.
일 예에서, 상이한 ACR 벤더들의 탐색 서버들에게 상이한 핑거프린트 정보를 제공하기 위해 동일한 미디어 콘텐츠에 대해 상이한 ACR 핑거프린팅 알고리즘들이 사용될 수 있다. 동일한 콘텐츠(예컨대, 콘텐츠 프레임들)(302)를 상이하게 핑거프린팅하는 것의 장점은 미디어 소비 디바이스들의 상이한 시청자들에게 맥락적으로 관련성있는 광고들 및 대화형 콘텐츠를 제공하는 것일 수 있다. 다른 예에서, 콘텐츠 프레임들(302)은 상이한 피드들로부터의 미디어 콘텐츠를 포함할 수 있다. 이 예에서, 상이한 ACR 벤더들의 탐색 서버들에게 상이한 핑거프린팅 정보를 제공하기 위해 콘텐츠 프레임들(302)의 상이한 피드들의 콘텐츠에 대해 상이한 ACR 핑거프린팅 알고리즘들이 사용될 수 있다.
상이한 핑거프린팅 정보는 상이한 ACR 벤더들의 탐색 서버들에, 각각, 업로드될 수 있다. 상이한 ACR 벤더들이 상이한 CEM(contract equipment manufacturer)들에 의해 제조된 시청 디바이스들 상에 통합될 수 있다. 예를 들어 Toshiba 텔레비전들은 Samba® ACR 핑거프린팅을 이용할 수 있고, Samsung® 텔레비전들은 Enswer® ACR 핑거프린팅을 사용할 수 있다. 핑거프린터(305)가 상이한 ACR 벤더들에 대한 ACR 핑거프린팅 알고리즘들을 포함하는 것의 장점은 미디어 소비 디바이스의 제조업체에 관계없이 상이한 ACR 벤더들을 통해 시청자들에게 제공되는 콘텐츠를 핑거프린팅하는 것일 수 있다. 일 예에서, ACR 핑거프린팅 정보는 DAR(digital advertisement replacement)을 위해 사용될 수 있다. 다른 예에서, ACR 핑거프린팅 정보는 광고 또는 콘텐츠 보강 및 데이터 수집을 위해 사용될 수 있다. 오버레이 결정 엔진(210) 및 ad 타깃터(212)(도 2)는 인코딩된 콘텐츠를 맥락적으로 관련성있는 광고들, 정보 및/또는 대화형 콘텐츠와 매칭시키기 위해 핑거프린팅 정보를 사용할 수 있다. 미디어 디바이스들(115) 상에 스트리밍 디스플레이하기 위해 매칭된 콘텐츠 및/또는 광고들이 미디어 디바이스들(115)에게 제공될 수 있다. 다른 예에서, 매칭 이벤트(matching event)들에 관한 정보는 콘텐츠 매칭의 분석을 위해 방송 클라우드에게 전달될 수 있다.
일 예에서, 핑거프린터(305)는 시스템에서 방송 분배(broadcast distribution)의 상류에서 ACR 핑거프린팅을 수행할 수 있다. 다른 예에서, 방송 피드들이 인코딩/업로드를 위해 전달될 수 있는 경우 핑거프린팅이 방송 체인(broadcast chain)에서 이루어질 수 있다. 단일 방송 피드가 사용될 때, ACR 핑거프린팅 및 인코딩/업로드를 위해 구입, 설치, 모니터링 및 유지 관리될 필요가 있을 수 있는 디바이스들 및/또는 애플리케이션들의 개수가 감소될 수 있다. 예를 들어, 시스템 인프라스트럭처(랙 공간, 전력, 및 이더넷 연결)의 감소와 같은, CAPEX(capital expenses) 및/또는 OPEX(operational expenses)가 감소될 수 있다. 그에 부가하여, 단일 방송 피드가 사용될 때, 방송사의 분배 증폭기(distribution amplifier)로부터 생성되는 방송 피드들의 개수가 감소될 수 있다.
논의된 바와 같이, 핑거프린터(305)는 사용자의 미디어 디바이스들(115) 중 하나 상에 디스플레이되는 도중에, 방송 서버, 헤드엔드, 스위치, 및/또는 셋톱 박스를 통과할 수 있는 것과 같은, 멀티미디어 콘텐츠로부터 개별 핑거프린트들을 생성할 수 있다. 핑거프린트들은 하나의 프레임 또는 다수의 프레임들을 포함할 수 있다. 프레임들은 순차적 순서로 시간순 타임 스탬프(chronological time stamp)들에 따라 취해질 수 있거나, 하나 걸러 프레임마다(또는 두 개 걸러 프레임마다)와 같은 어떤 간격으로 예를 들어, 여전히 대응하는 타임 스탬프들에 따라 취해질 수 있다.
핑거프린트 시퀀스 매처(325)는 프레임들을, 이 핑거프린트들에 의해 표현되는 대응하는 비디오 프레임들의 출처인, 원본 비디오 콘텐츠의 (데이터베이스(327)에 저장된) 프레임 핑거프린트들과 매칭시키기 위해 (질의 핑거프린트인) 이 개별 프레임들의 세트 또는 시퀀스를 처리할 수 있다. 프레임 핑거프린트들은 단일 프레임들일 수 있고 각각은 대응하는 타임 슬롯(또는 미디어 프로그램의 시작으로부터 프레임 번호 또는 시간량과 같은 어떤 종류의 인덱스)을 포함할 수 있다. 매치를 발견한 결과, 사용자가 미디어 디바이스(115) 상에서 시청하고 있는 미디어 프로그램, 채널, 프로그램의 시작 시간 및 종료 시간에 관한 스케줄의 타임 슬롯, 광고 타임 슬롯, 및 매칭하는 미디어 프로그램의 이러한 정보를 결정할 수 있다.
매칭 결과들을 신뢰하기 위해, 핑거프린트 시퀀스 매처(325)는 핑거프린트의 시퀀스가 시간상으로 정렬된다는 사실을 이용할 수 있고, 따라서 매칭하는 핑거프린트들은 동일한 비디오에 속할 뿐만 아니라 시간상으로 유사하게 정렬된다. 핑거프린트 시퀀스 매처(325)는 (예컨대, 2차원 데이터 구조에서) 질의 핑거프린트의 프레임들의 타임 스탬프들을 매칭에 사용된 원본 콘텐츠의 프레임 핑거프린트들에 매핑하기 위해 그리고, 예를 들어, 매핑된 타임 스탬프 점들에 대해 패턴 인식 알고리즘을 실행함으로써 이상치(outlier)들을 필터링 제거하기 위해 이 특성을 이용한다.
핑거프린트 시퀀스 매처(325)는 또한, 매칭하는 핑거프린트 시퀀스가 어떻게 플레이 아웃(play out)되었는지(보다 빠르게, 보다 느리게, 또는 거꾸로)를 검출하기 위해, 핑거프린트 내의 프레임들의 시퀀스들의 이러한 시간적 특성들을 사용할 수 있다. ACR 핑거프린트 시퀀스 매처(325)에서의 알고리즘은, 예를 들어, 풀 프레임 레이트(full frame rate)의 정규 속도(normal speed), 1/2 프레임 레이트의 정규 속도, 1/3 프레임 레이트의 정규 속도 등과 같은, 특정 재생(playback) 시나리오들을 검출하도록 구현될 수 있다.
도 4를 참조하면, 핑거프린트 시퀀스 매처(325)는 입력(또는 질의) 핑거프린트의 제1 타임 스탬프(또는 다른 유형의 인덱스) 및 매칭하는 프레임 핑거프린트(들)의 제2 타임 스탬프(또는 다른 유형의 인덱스)를 사용할 수 있다. 제1 타임 스탬프와 제2 타임 스탬프는 점들 (Xi, Yj)의 2차원(2D) 장(field)을 형성하고, 여기서 Xi는 주어진 시퀀스에서의 질의 핑거프린트의 제1 타임 스탬프(또는 인덱스)이며, Yj는 질의 핑거프린트들의 각자의 프레임들에 대한 검색된 매칭하는 프레임 핑거프린트의 제2 타임 스탬프(또는 인덱스)이다.
보다 구체적으로는, 시각 X0에서의 핑거프린트가 주어지면, 핑거프린트 시퀀스 매처(325)는 대략적인 매치들이 있는지 핑거프린트 데이터베이스(327)에 질의하고, 가깝게 매칭하는 프레임 핑거프린트들의 세트가 타임 스탬프들 Yj 및 Yj + 3에서 식별된다. 매치들의 이 세트에서는, 매치들이 (X0, Yj) 또는 (X0, Yj + 3)을 포함할 수 있기 때문에, 어느 것이 올바른 매치인지가 결정될 수 없다. 시각 X1에서의 다음 핑거프린트가 주어지면, 가장 가까운 매치들의 세트는 Yj + 1 및 Yj + 5를 포함한다. 이 부가적인 매치들에서, 프레임들이 핑거프린팅되고 재생(replay)된 레이트에 관해 무언가를 가정한다면, 핑거프린트 시퀀스 매처(325)는 어느 매치들이 올바르고 올바르지 않은지를 결정하는 데 충분한 정보를 이미 갖고 있다. 핑거프린트 시퀀스 매처가 핑거프린트들이 실시간으로(시간 확장(time stretching) 또는 시간 축소(time squeezing) 없이) 매칭하기 위해 송신되고 있다고 가정하면, 올바른 매치들은 기울기 = 1인 라인 상에 줄지어 있게 된다. 즉, (X0, Yj) 및 (X1, Yj + 1)은 올바른 매치들인 반면, (X0, Yj + 3) 및 (X1, Yj + 5)는 틀린 매치들(이상치들)인데, 그 이유는 그들이 기울기 = 2인 라인을 형성하기 때문이다.
시각 Xi에서의 부가적인 핑거프린트가 주어지면, 잠재적 매치들의 세트는 Xi - 1, Xi - 2 등에서의 매치들에 의해 형성된 동일한 라인을 계속하는 점을 포함해야만 한다. 따라서, 올바른 매치들을 한꺼번에 식별하기 위해, 핑거프린트 시퀀스 매처(325)는 동일한 라인에 맞춰 정렬하는 점들 (Xi, Yj)을 식별한다. 하나의 식별 방식은 패턴 인식 알고리즘을 사용하는 것이다. RANSAC(random sample consensus)은 이 라인을 발견하는 데 사용될 수 있는 하나의 이러한 알고리즘이지만, 다른 알고리즘들도 사용될 수 있다. RANSAC은 임의의 기울기의 라인을 검출하는 데 사용될 수 있다.
예를 들어, 검출된 라인의 기울기가 1일 필요는 없다. 비디오가 거꾸로 재생되면, 기울기는 음(negative)으로 될 것이다. 비디오가 (아마도 광고를 위한 더 많은 자리를 만들기 위해) 실시간보다 더 빠르게 재생되면, 기울기는 1보다 더 클 것이다. 비디오가 느려지면, 기울기는 1보다 더 작을 것이다. 예를 들어, 아마도 원본 PAL(Phase Alternative Line) 콘텐츠는 초당 25 프레임(fps)으로 핑거프린팅되었지만, 23.976 fps의 NTSC(National Television System Committee) 방송에 대해서는 시간 확장(time-stretch)되었다. 핑거프린트 시퀀스 매처는 라인의 기울기를 결정하기 위해 적어도 3개의 핑거프린트들(X0, X1, X2)을 필요로 하지만, 보다 많은 핑거프린트들은 이 결정을 보다 강건하게 만들 것이다. 검출된 라인의 기울기가 주어지면, 핑거프린트 시퀀스 매처는 원본 콘텐츠 재생 속도에 대한 클라이언트 디바이스 상에서의 콘텐츠의 재생 속도를 결정할 수 있다.
그에 따라, 핑거프린트 시퀀스 매처(325)는, 질의 핑거프린트의 주어진 순서화된 시퀀스에서의 각각의 프레임에 대해, 데이터베이스(327)에서의 상위 N개의 매칭하는 프레임 핑거프린트들을 발견할 수 있다. 여기서, 변수 N은 임의의 정수 또는 다른 미리 결정된 값(예를 들어, 10 등)일 수 있다. 일 실시예에서, 변수 N은 주어진 질의 핑거프린트에 대한 데이터베이스(327)에서의 매칭하는 프레임들의 개수일 수 있다. 다른 실시예에서, N은 고정된 한계(fixed limit)일 수 있거나, 구현 및 설계 인자들에 따라 한계가 없을(unbounded)(무한(infinite)일) 수 있다. 예를 들어, Xi에서의 매 핑거프린트마다, 핑거프린트 시퀀스 매처(325)는 데이터베이스(327)에서의 상위 10개의 가장 가깝게 매칭하는 핑거프린트들을 식별하기로 선택할 수 있으며, 따라서 Xi에서의 가능한 매치들의 개수를최대 10개의 쌍들로 제한한다. 대안적으로, 핑거프린트 시퀀스 매처(325)는 데이터베이스에서의 대략적으로 매칭하는 핑거프린트들 전부를 반환하기로 선택할 수 있으며, 이 경우에 핑거프린트 시퀀스 매처(325)는 틀린 매치들인 더 많은 쌍들을 가질 수 있다. 충분히 큰 입력 핑거프린트 시퀀스 (X0 ... Xi)가 주어지면, 올바른 매치들이 여전히 줄지어 있을 것이기 때문에 올바른 매치들을 식별하는 것이 여전히 가능해야만 하지만, 틀린 매치들의 개수가 한없이 많으면 이 패턴을 검출하기가 더 어려울 수 있다. 가장 가까운 매치들의 개수를 제한하는 것은 틀린 매치들의 개수를 줄이는 데 도움이 되며, 또한 라인 검출을 위해 보다 간단하고 보다 빠른 알고리즘을 사용하는 것을 가능하게 할 수 있다. 가장 가까운 매치들의 개수를 제한하는 것의 위험은 이것이 또한 올바른 매치들을 제외시킬 수 있다는 것이지만, 이 위험은 N이 충분히 크면 감소된다.
게다가, 비디오(또는 다른 미디어 프로그램)가 재생되는 동안(일시 정지되지 않는 동안), 가능한 매치들의 각각의 세트에 최대 하나의 정상치(inlier)가 있다. 핑거프린트들이 정렬되어 있기 때문에 모든 정상치들은 줄지어 있어야만 한다. 이것은 도 4에서 알 수 있다: 정상치들은 1의 기울기를 갖는 (X0, Yj)와 (X7, Yj + 7) 사이의 라인을 형성한다. 어떤 경우에, 미디어 프로그램이 빨라질 때, 라인은 누락된 정상치들을 포함할 수 있다. 이와 달리, 미디어 프로그램이 느려질 때, 라인은 부가의 정상치들을 포함할 수 있다.
확신을 갖고 정상치들을 검출하기 위해, 핑거프린트 시퀀스 매처(325)는 점들의 장에서 라인을 검출한다. 핑거프린트 시퀀스 매처(325)가 라인의 기울기(예컨대, 1, 2 또는 3의 기울기)를 알고 있을 때, 이것은 간단한 라인 검출기로 행해질 수 있다. 이 접근법은 기울기를 알고 있는 경우에 작동하며, 논의된 바와 같이 동일한 알고리즘이 질의 핑거프린트와 데이터베이스(327)에 저장된 프레임 핑거프린트들 사이의 매칭을 발견하는 데 사용되는 프레임 핑거프린트들을 생성할 때에도 마찬가지이다. 하나 초과의 라인이 존재할 때, 핑거프린트 시퀀스 매처(325)는 2개의 라인들 중 긴 쪽을 취할 수 있다.
대안적으로, 라인이, 이미 논의된 바와 같이, RANSAC과 같은 패턴 인식 알고리즘으로 검출될 수 있다. RANSAC은 이상치들을 포함하는 관찰된 데이터의 세트로부터 수학적 모델의 파라미터들을 추정하는 반복적 방법이다. RANSAC이 특정 확률로 합리적인 결과를 생성한다는 점에서 RANSAC은 비결정적 알고리즘이고, 여기서 이 확률은 보다 많은 반복이 가능하게 됨에 따라 증가한다. 기본적인 가정은 데이터가, 예컨대, 잡음의 영향을 받을 수 있지만 모델 파라미터들의 어떤 세트에 의해 설명될 수 있는 분포를 갖는 데이터인, "정상치들", 및 모델에 적합하지 않는 데이터인 "이상치들"을 포함한다는 것이다. 이상치들은, 예컨대, 잡음의 극단적인 값들로부터 또는 오류있는 측정들 또는 데이터의 해석에 관한 올바르지 않은 가설들로부터 나올 수 있다. RANSAC은 또한, 정상치들의 (보통 작은) 세트가 주어지면, 이 데이터를 최적으로 설명하거나 피팅(fit)하는 모델의 파라미터들을 추정할 수 있는 절차가 존재한다고 가정한다. 핑거프린트 시퀀스 매처(325)는 점들의 희소 세트(sparse set)로부터 임의의 기울기의 라인들을 검출하기 위해 RANSAC을 사용할 수 있다. 라인은 프레임 레이트에 관계없이 검출가능한데, 그 이유는, 충분한 정상치들에 의해, 라인이 프레임 레이트에 관계없이 검출될 수 있기 때문이다. 검출된 라인들은 또한 입력 프레임 시퀀스의 재생 속도를 식별하는 데 사용될 수 있다. 핑거프린트 시퀀스 매처(325)는 사용자가 재생 템포(playback tempo)를 변화시킬 때 또는 심지어 비디오가 역방향으로 재생 중일 때(예컨대, 음의 기울기를 가짐)를 검출할 수 있다. 재생 속도는 검출된 라인의 기울기에 반영될 수 있다.
언급된 바와 같이, 재생이 원래의 (변경되지 않은) 속도일 때, 핑거프린트 시퀀스 매처(325)는 특정 기울기의 라인을 검출할 수 있다. 예를 들어, 1 값을 갖는 기울기는 프레임 레이트 변경들이 없는 1:1 재생 템포에 대응한다. 이 실시예에서, 핑거프린트 시퀀스 매처(325)는 라인 검출 알고리즘을 단순화시키고, RANSAC과 같은, 패턴 검출 알고리즘을 사용하지 않을 수 있다. 다른 실시예에서, 핑거프린트 시퀀스 매처(325)는 또한, 하나 걸러 프레임마다 드롭(drop)되는 입력 핑거프린트 시퀀스에 대응하게 될, 기울기 2를 갖는 라인들을 찾아낼 수 있다. 예를 들어, HLS(HTTP live streaming) 출력에서 두 번째로 낮은 비트레이트 스트림에 대해 이것이 행해질 수 있다. 다른 실시예에서, 핑거프린트 시퀀스 매처(325)는 또한 사용자가 모든 점들이 수평 라인들로서 줄지어 있는 것을 검출하는 것에 의해 재생을 일시 정지시킬 때를 검출할 수 있다.
핑거프린트 시퀀스 매처(325)의 실시예들은 입력 프레임들의 순서화된 시퀀스가 주어지면 발신 비디오를 검출하는 접근법을 정형화(formalize)할 수 있다. 핑거프린트 시퀀스 매처(325)는, 미국 유타주 솔트레이크 시티 소재의 Sorenson Media에 의해 개발된 Spark Core ACR와 같은, ACR 시스템에서 매치 검출 신뢰성을 향상시키는 데 사용될 수 있다.
시퀀스 매칭의 하나의 가능한 장점은 개개의 프레임 핑거프린트들의 시간 순서화(temporal ordering)를 이용하는 것이 개별 프레임 매칭 알고리즘들의 완화된 품질 요구사항을 가능하게 할 수 있다는 것이다. 예를 들어, 개별 프레임 매칭 알고리즘들에서 보다 많은 거짓 양성(false positive)들이 허용될 수 있다. 이 실시예들은 또한 재생 프레임 레이트 및 템포, 또는 재생이 일시정지되는지의 검출을 가능하게 할 수 있다.
도 5는 일 실시예에 따른, 대응하는 텔레비전 프로그램을 식별하기 위해 입력(또는 질의) 핑거프린트의 프레임들의 시퀀스를 매칭시키는 자동 콘텐츠 인식(ACR) 방법의 플로차트(500)를 예시하고 있다. 본 방법은 하드웨어(예컨대, 회로부, 전용 로직, 프로그램밍가능 로직, 마이크로코드 등), 소프트웨어(예컨대, 처리 디바이스에 의해 실행되는 명령어들), 펌웨어 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 적어도 부분적으로 수행될 수 있다. 본 방법은 클라이언트 디바이스(218 또는 220)와 같은 클라이언트 디바이스의 처리 로직에 의해, 도 1의 ACR 시스템(124 또는 126) 또는 도 2의 ACR 시스템(224 또는 226)과 같은 서버 시스템에 의해 수행될 수 있다. 콘텐츠 관리자(122 또는 222)(도 1 및 도 2)가 또한 본 방법을 실행하는 데 역할을 할 수 있다. 대안적으로, 본 방법은 다양한 유형의 사용자 디바이스, 휴대용 디바이스들, 텔레비전들, 프로젝터들, 또는 다른 미디어 디바이스들에서의 다른 처리 디바이스들에 의해 수행될 수 있다.
도 5를 참조하면, 처리 로직은 콘텐츠(또는 미디어) 디바이스에서 콘텐츠 피드로부터 미디어 콘텐츠를 수신하는 것(502)으로 시작한다. 로직은 계속하여, 프레임들의 시퀀스 및 대응하는 시간 기반 인덱스(대응하는 타임 스탬프들 등)를 포함하는 입력(또는 질의) 핑거프린트를 생성하기 위해 미디어 콘텐츠에 대해 핑거프린팅을 수행할 수 있다(504). 로직은 계속하여, 미디어 콘텐츠에 대응하는 미디어 프로그램을 식별하기 위해 질의 핑거프린트를, 시간 기반 인덱스에 따라, 원본 미디어 콘텐츠로부터의 복수의 프레임 핑거프린트들과 매칭시킬 수 있다(506).
도 6은 다른 실시예에 따른, 대응하는 텔레비전 프로그램을 식별하기 위해 입력(또는 질의) 핑거프린트의 프레임들의 시퀀스를 매칭시키는 자동 콘텐츠 인식(ACR) 방법의 플로차트(600)를 예시하고 있다. 본 방법은 하드웨어(예컨대, 회로부, 전용 로직, 프로그램밍가능 로직, 마이크로코드 등), 소프트웨어(예컨대, 처리 디바이스에 의해 실행되는 명령어들), 펌웨어 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 적어도 부분적으로 수행될 수 있다. 본 방법은 클라이언트 디바이스(218 또는 220)와 같은 클라이언트 디바이스의 처리 로직에 의해, 도 1의 ACR 시스템(124 또는 126) 또는 도 2의 ACR 시스템(224 또는 226)과 같은 서버 시스템에 의해 수행될 수 있다. 콘텐츠 관리자(122 또는 222)(도 1 및 도 2)가 또한 본 방법을 실행하는 데 역할을 할 수 있다. 대안적으로, 본 방법은 다양한 유형의 사용자 디바이스, 휴대용 디바이스들, 텔레비전들, 프로젝터들, 또는 다른 미디어 디바이스들에서의 다른 처리 디바이스들에 의해 수행될 수 있다.
도 6을 참조하면, 처리 로직은 미디어 프로그램들에 대한 복수의 프레임 핑거프린트들을 데이터베이스에 저장하는 것(610)으로 시작한다. 처리 로직은 계속하여, 사용자에 의해 소비되는 콘텐츠의 핑거프린트를, 미디어 디바이스로부터, 수신한다(620). 핑거프린트는 프레임들의 순서화된 시퀀스 및 대응하는 타임 스탬프들을 포함한다. 로직은 계속하여, 핑거프린트의 프레임들의 순서화된 시퀀스의 타임 스탬프들을 복수의 프레임 핑거프린트들 중 가장 가깝게 매칭하는 프레임 핑거프린트들의 타임 스탬프들에 매핑한 결과 얻어지는 점들의 세트를 포함하는 시간 기반 결과들을 생성하기 위해 데이터베이스에 질의한다(630). 로직은 계속하여, 임의의 기울기의 라인을 검출하기 위해 RANSAC을 실행하는 것과 같이, 소비되는 콘텐츠에 대응하는 미디어 프로그램을 결정하기 위해 점들의 세트에 대해 패턴 인식 알고리즘을 실행한다(640). 로직은 계속하여, 미디어 프로그램을 보고 있는 동안 사용자에게 부가적인 콘텐츠를 타깃팅하기 위해 광고 서버에게 미디어 프로그램의 식별자를 송신한다(650). 로직은 또한 미디어 프로그램 내의 콘텐츠에 대한 오버레이로서 그리고/또는 광고 시간 동안 광고(또는 다른 콘텐츠)를 전달하는 데 사용하기 위해 미디어 프로그램의 식별자(및 관련 정보)를 오버레이 결정 엔진에게 송신할 수 있다.
예를 들어, 로직은 미디어 프로그램의 식별자를 광고 서버에게 송신하고, 미디어 프로그램의 주제에 맥락적으로 관련성있는 광고를, 광고 서버로부터, 수신할 수 있다. 로직은 이어서 미디어 프로그램에서의 광고 시간 동안에 오버레이로서 또는 광고(또는 정보 세그먼트)로서 디스플레이하기 위해 광고(또는 다른 콘텐츠)를 미디어 디바이스에게 전달할 수 있다.
도 7은 머신으로 하여금 본원에서 논의되는 방법론들 중 임의의 하나 이상의 방법론들을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있는 예시적인 형태의 컴퓨터 시스템(700)에서의 머신의 개략적 표현을 예시하고 있다. 대안의 실시예들에서, 머신은 LAN, 인트라넷, 엑스트라넷, 또는 인터넷에서의 다른 머신들에 연결(예컨대, 네트워크로 연결)될 수 있다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 디바이스로서, 또는 피어-투-피어(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신은 그 머신에 의해 취해질 동작들을 명시하는 명령어들의 세트를 (순차적으로 또는 다른 방식으로) 실행할 수 있는 PC(personal computer), 태블릿 PC, 셋톱 박스(STB), PDA(Personal Digital Assistant), 셀룰러 전화, 스마트폰, 웹 어플라이언스, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 임의의 머신일 수 있다. 게다가, 단일 머신만이 예시되어 있지만, "머신"이라는 용어는 또한 본원에서 논의되는 방법론들 중 임의의 하나 이상의 방법론들을 수행하기 위해 명령어들의 세트(또는 다수의 세트들)를 개별적으로 또는 결합하여(jointly) 실행하는 머신들의 임의의 컬렉션을 포함하는 것으로 보아야 한다.
컴퓨터 시스템(700)은 도 1의 ACR 시스템(124 또는 126), 도 2 및 도 3의 ACR 시스템(224 또는 226), 또는 도 1의 콘텐츠 관리자(122) 또는 도 2의 콘텐츠 관리자(222)에 대응할 수 있다. 컴퓨터 시스템(700)은 도 1의 클라이언트 디바이스(118 또는 120)에 대응할 수 있다. 컴퓨터 시스템(700)은 클라우드 기반 컴퓨터 시스템의 적어도 일부분에 대응할 수 있다.
컴퓨터 시스템(700)은, 버스(730)를 통해 서로 통신하는, 처리 디바이스(702), 메인 메모리(704)(예컨대, ROM(read-only memory), 플래시 메모리, DRAM(dynamic random access memory)(SDRAM(synchronous DRAM) 또는 DRAM(RDRAM) 등), 정적 메모리(506)(예컨대, 플래시 메모리, SRAM(static random access memory) 등), 및 데이터 저장 디바이스(718)를 포함한다.
처리 디바이스(702)는 마이크로프로세서, 중앙 처리 유닛 등과 같은 하나 이상의 범용 처리 디바이스들을 나타낸다. 보다 상세하게는, 처리 디바이스는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computer) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 다른 명령 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 처리 디바이스(702)는 또한 ASIC(application specific integrated circuit), FPGA(field programmable gate array), DSP(digital signal processor), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 디바이스들일 수 있다. 일 실시예에서, 처리 디바이스(702)는 하나 이상의 처리 코어들을 포함할 수 있다. 처리 디바이스(702)는 본원에서 논의되는 동작들을 수행하기 위한 미러링 로직(mirroring logic)의 명령어들(726)을 실행할 수 있다.
컴퓨터 시스템(700)은 네트워크(720)에 통신가능하게 결합된 네트워크 인터페이스 디바이스(708)를 추가로 포함할 수 있다. 컴퓨터 시스템(700)은 또한 비디오 디스플레이 유닛(710)(예컨대, LCD(liquid crystal display) 또는 CRT(cathode ray tube)), 영숫자 입력 디바이스(712)(예컨대, 키보드), 커서 제어 디바이스(714)(예컨대, 마우스), 신호 생성 디바이스(716)(예컨대, 스피커), 또는 다른 주변 디바이스들일 수 있다. 게다가, 컴퓨터 시스템(700)은 그래픽 처리 유닛(722), 비디오 처리 유닛(728), 및 오디오 처리 유닛(732)을 포함할 수 있다. 다른 실시예에서, 컴퓨터 시스템(700)은 처리 디바이스(702)와 함께 동작하도록 설계되고 처리 디바이스(702)와 외부 디바이스들 사이의 통신을 제어하는, 집적 회로들 또는 칩들의 그룹을 지칭하는, 칩셋(예시되지 않음)을 포함할 수 있다. 예를 들어, 칩셋은 처리 디바이스(702)를, 메인 메모리(704) 및 그래픽 제어기들과 같은, 초고속 디바이스들에 링크시키는 것은 물론, 처리 디바이스(702)를, USB, PCI 또는 ISA 버스들과 같은, 주변기기들의 저속 주변 버스(peripheral bus)들에 링크시키는 마더보드 상의 칩들의 세트일 수 있다.
데이터 저장 디바이스(718)는 본원에 기술되는 기능들의 방법론들 중 임의의 하나 이상의 방법론들을 구현하는 명령어들(726)이 저장되는 컴퓨터 판독가능 저장 매체(725)를 포함할 수 있다. 명령어들(726)은 또한 컴퓨터 시스템(700)에 의한 그의 실행 동안에 메인 메모리(704) 내에 그리고/또는 프로세서(702) 내에, 전체적으로 또는 적어도 부분적으로, 존재할 수 있고; 메인 메모리(704) 및 처리 디바이스(702)는 또한 컴퓨터 판독가능 저장 매체를 구성한다.
컴퓨터 판독가능 저장 매체(725)는 또한 상기 애플리케이션들을 호출하는 메소드들을 포함하는 소프트웨어 라이브러리 및/또는 로직을 이용하는 명령어들(726)을 저장하는 데 사용될 수 있다. 컴퓨터 판독가능 저장 매체(725)가 예시적인 구현에서 단일 매체인 것으로 도시되어 있지만, "컴퓨터 판독가능 저장 매체"라는 용어는 하나 이상의 명령어 세트들을 저장하는 단일 매체 또는 다중 매체(예컨대, 중앙집중형 또는 분산형 데이터베이스, 및/또는 관련 캐시들 및 서버들)를 포함하는 것으로 보아야 한다. "컴퓨터 판독가능 저장 매체"라는 용어는 또한 머신으로 하여금 본 개시내용의 방법론들 중 임의의 하나 이상의 방법론들을 수행하게 하는, 머신에 의해 실행하기 위한 명령어들(726)의 세트를 저장, 인코딩 또는 전달할 수 있는 임의의 매체를 포함하는 것으로 보아야 한다. "컴퓨터 판독가능 저장 매체"라는 용어는 그에 따라 솔리드 스테이트 메모리(solid-state memory)들, 광학 매체, 및 자기 매체 - 이들로 제한되지 않음 - 를 포함하는 것으로 보아야 한다. 이하의 예들은 추가적인 실시예들에 관한 것이다.
본 발명이 제한된 수의 실시예들과 관련하여 기술되었지만, 본 기술분야의 통상의 기술자는 그로부터의 다수의 수정들 및 변형들을 잘 알 것이다. 첨부된 청구항들이 본 발명의 진정한 사상 및 범주 내에 속하는 모든 이러한 수정들 및 변형들을 포함하는 것으로 의도되어 있다.
본원에서의 설명에서, 본 발명의 철저한 이해를 제공하기 위해, 특정 유형의 프로세서들 및 시스템 구성들, 특정 하드웨어 구조들, 특정 아키텍처 및 마이크로 아키텍처 상세들, 특정 레지스터 구성들, 특정 명령어 유형들, 특정 시스템 컴포넌트들, 특정 측정들/높이들, 특정 프로세서 파이프라인 스테이지들 및 동작들 등의 예들과 같은, 다수의 구체적인 상세들이 기재되어 있다. 그렇지만, 본 발명을 실시하기 위해 이 구체적인 상세들이 이용될 필요가 없다는 것이 본 기술분야의 통상의 기술자에게는 명백할 것이다. 다른 경우들에서, 본 발명을 불필요하게 모호하게 하는 것을 피하기 위해, 특정 및 대안의 프로세서 아키텍처들, 기술된 알고리즘들에 대한 특정 로직 회로들/코드, 특정 펌웨어 코드, 특정 상호연결 동작, 특정 로직 구성들, 특정 제조 기법들 및 재료들, 특정 컴파일러 구현들, 코드로 된 알고리즘들의 특정 표현, 특정 전원 차단(power down) 및 게이팅 기법들/로직 및 컴퓨터 시스템의 다른 구체적인 동작 상세들이 상세히 기술되지 않았다.
실시예들은, 컴퓨팅 플랫폼들 또는 마이크로프로세서들에서와 같이, 특정 집적 회로들에서의 보안 메모리 재파티셔닝(secure memory repartitioning)을 참조하여 기술된다. 실시예들은 또한 다른 유형의 집적 회로들 및 프로그래밍가능 로직 디바이스들에 적용가능할 수 있다. 예를 들어, 개시된 실시예들이 데스크톱 컴퓨터 시스템들 또는, Intel® Ultrabooks™ 컴퓨터들과 같은, 휴대용 컴퓨터들로 제한되지 않는다. 그리고 또한 핸드헬드 디바이스들, 태블릿들, 다른 씬 노트북(thin notebook)들, SOC(systems on a chip) 디바이스들, 및 임베디드 애플리케이션들과 같은, 다른 디바이스들에서 사용될 수 있다. 핸드헬드 디바이스들의 일부 예들은 셀룰러폰들, 인터넷 프로토콜 디바이스들, 디지털 카메라들, PDA(personal digital assistant)들, 및 핸드헬드 PC들을 포함한다. 임베디드 애플리케이션들은 전형적으로 마이크로컨트롤러, DSP(digital signal processor), SOC(system on a chip), 네트워크 컴퓨터들(NetPC), 셋톱 박스들, 네트워크 허브들, WAN(wide area network) 스위치들, 또는 이하에서 교시되는 기능들 및 동작들을 수행할 수 있는 임의의 다른 시스템을 포함한다. 시스템이 임의의 종류의 컴퓨터 또는 임베디드 시스템일 수 있다고 기술되어 있다. 개시된 실시예들은 특히, 웨어러블 디바이스들(예컨대, 시계들), 전자 임플란트(electronic implant)들, 감각 및 제어 인프라스트럭처 디바이스들, 컨트롤러들, SCADA(supervisory control and data acquisition) 시스템들 등과 같은, 저가 디바이스들에 대해 사용될 수 있다. 더욱이, 본원에 기술되는 장치들, 방법들, 및 시스템들은 물리적 컴퓨팅 디바이스들로 제한되지 않지만, 또한 에너지 보존 및 효율을 위한 소프트웨어 최적화들에 관련될 수 있다. 이하의 설명에서 곧바로 명백하게 될 것인 바와 같이, (하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합 중 어느 것이든 참조하여) 본원에 기술되는 방법들, 장치들, 및 시스템들의 실시예들은 성능 고려사항들과 균형을 이루는 '녹색 기술' 미래에 중요하다.
비록 실시예들이 본원에서 프로세서를 참조하여 기술되어 있지만, 다른 실시예들은 다른 유형의 집적 회로들 및 로직 디바이스들에 적용가능하다. 본 발명의 실시예들의 유사한 기법들 및 교시내용들은 보다 높은 파이프라인 처리율 및 개선된 성능으로부터 이득을 볼 수 있는 다른 유형의 회로들 또는 반도체 디바이스들에 적용될 수 있다. 본 발명의 실시예들의 교시내용들은 데이터 조작들을 수행하는 임의의 프로세서 또는 머신에 적용가능하다. 그렇지만, 본 발명은 512 비트, 256 비트, 128 비트, 64 비트, 32 비트, 또는 16 비트 데이터 연산들을 수행하는 프로세서들 또는 머신들로 제한되지 않으며, 데이터의 조작 또는 관리가 수행되는 임의의 프로세서 및 머신에 적용될 수 있다. 그에 부가하여, 본원에서의 설명은 예들을 제공하고, 첨부 도면들은 예시를 위해 다양한 예들을 도시하고 있다. 그렇지만, 이 예들이 본 발명의 실시예들의 모든 가능한 구현들의 전수적인 목록을 제공하기보다는 오히려 본 발명의 실시예들의 예들을 제공하려는 것으로 의도되어 있는 것에 불과하기 때문에, 이 예들이 제한적인 의미로 해석되어서는 안된다.
이하의 예들이 실행 유닛들 및 로직 회로들과 관련하여 명령어 핸들링 및 배포를 기술하고 있지만, 본 발명의 다른 실시예들은, 머신에 의해 수행될 때, 머신으로 하여금 본 발명의 적어도 하나의 실시예에 따른 기능들을 수행하게 하는, 머신 판독가능 유형적 매체(machine-readable, tangible medium) 상에 저장된 데이터 또는 명령어들에 의해 달성될 수 있다. 일 실시예에서, 본 발명의 실시예들과 연관된 기능들이 머신 실행가능 명령어들로 구현된다. 명령어들은 명령어들로 프로그래밍된 범용 또는 특수 목적 프로세서로 하여금 본 발명의 단계들을 수행하게 하는 데 사용될 수 있다. 본 발명의 실시예들은 컴퓨터(또는 다른 전자 디바이스들)를 본 발명의 실시예들에 따른 하나 이상의 동작들을 수행하도록 프로그래밍하는 데 사용될 수 있는 명령어들을 저장하고 있는 머신 또는 컴퓨터 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 대안적으로, 본 발명의 실시예들의 동작들은 동작들을 수행하는 고정 기능 로직을 포함하는 특정 하드웨어 컴포넌트들에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트들 및 고정 기능 하드웨어 컴포넌트들의 임의의 조합에 의해 수행될 수 있다.
로직을 본 발명의 실시예들을 수행하도록 프로그래밍하는 데 사용되는 명령어들은, DRAM, 캐시, 플래시 메모리, 또는 다른 저장소와 같은, 시스템에 있는 메모리 내에 저장될 수 있다. 게다가, 명령어들이 네트워크를 통해 또는 다른 컴퓨터 판독가능 매체를 통해 배포될 수 있다. 따라서, 머신 판독가능 매체는 플로피 디스켓들, 광학 디스크들, CD-ROM(Compact Disc, Read-Only Memory), 및 자기-광학 디스크들, ROM(Read-Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 자기 또는 광학 카드들, 플래시 메모리, 또는 전기, 광학, 음향 또는 다른 형태의 전파 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들 등)을 통해 인터넷을 거쳐 정보를 전송하는 데 사용되는 유형적 머신 판독가능 저장소 - 이들로 제한되지 않음 - 와 같은, 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하는 임의의 메커니즘을 포함할 수 있다. 그에 따라, 컴퓨터 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 전자 명령어들 또는 정보를 저장 또는 전송하기에 적당한 임의의 유형의 유형적 머신 판독가능 매체를 포함한다.
설계는, 제작으로부터 시뮬레이션을 거쳐 제조에 이르기까지, 다양한 스테이지들을 거칠 수 있다. 설계를 표현하는 데이터는 다수의 방식들로 설계를 표현될 수 있다. 첫째, 시뮬레이션들에서 유용한 것처럼, 하드웨어는 하드웨어 기술 언어(hardware description language) 또는 다른 기능 기술 언어(functional description language)를 사용하여 표현될 수 있다. 그에 부가하여, 로직 및/또는 트랜지스터 게이트들을 갖는 회로 레벨 모델이 설계 프로세스의 일부 스테이지들에서 생성될 수 있다. 게다가, 대부분의 설계들은 하드웨어 모델에서 다양한 디바이스들의 물리적 배치를 표현하는 데이터 레벨에 도달한다. 종래의 반도체 제조 기법들이 사용되는 경우에, 하드웨어 모델을 표현하는 데이터는 집적 회로를 생산하는 데 사용되는 마스크들에 대한 상이한 마스크 층들 상의 다양한 피처(feature)들의 존재 또는 부존재를 명시하는 데이터일 수 있다. 설계의 임의의 표현에서, 데이터는 임의의 형태의 머신 판독가능 매체에 저장될 수 있다. 메모리 또는 디스크와 같은 자기 또는 광학 저장소는 이러한 정보를 전송하기 위해 변조되거나 다른 방식으로 생성된 광학 또는 전기 파를 통해 전송되는 정보를 저장하는 머신 판독가능 매체일 수 있다. 코드 또는 설계를 표시하거나 담고 있는 전기 반송파가 전송될 때, 전기 신호의 복사, 버퍼링, 또는 재전송이 수행되는 한, 새로운 사본이 만들어진다. 따라서, 통신 제공자 또는 네트워크 제공자는 본 발명의 실시예들의 기법들을 구현하는, 반송파로 인코딩된 정보와 같은, 물품을 유형적 머신 판독가능 매체 상에 적어도 일시적으로 저장할 수 있다.
본원에서 사용되는 바와 같은 모듈은 하드웨어, 소프트웨어, 및/또는 펌웨어의 임의의 조합을 지칭한다. 일 예로서, 모듈은 마이크로제어기에 의해 실행되도록 구성된 코드를 저장하는 비일시적 매체와 연관된, 마이크로제어기와 같은, 하드웨어를 포함한다. 따라서, 모듈에 대한 언급은, 일 실시예에서, 비일시적 매체 상에 보유될 코드를 인식 및/또는 실행하도록 구체적으로 구성된 하드웨어를 지칭한다. 게다가, 다른 실시예에서, 모듈의 사용은 미리 결정된 동작들을 수행하기 위해 마이크로제어기에 의해 실행되도록 구체적으로 구성된 코드를 포함하는 비일시적 매체를 지칭한다. 그리고 추론될 수 있는 바와 같이, 또 다른 실시예에서, 모듈이라는 용어는 (이 예에서) 마이크로제어기와 비일시적 매체의 조합을 지칭할 수 있다. 종종, 분리되어 예시되어 있는 모듈 경계들이 통상적으로 달라지며 어쩌면 겹친다. 예를 들어, 제1 모듈과 제2 모듈은, 어쩌면 일부 독립적인 하드웨어, 소프트웨어 또는 펌웨어를 보유하면서, 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 공유할 수 있다. 일 실시예에서, 로직이라는 용어의 사용은, 트랜지스터들, 레지스터들과 같은 하드웨어, 또는 프로그래밍가능 로직 디바이스들과 같은 다른 하드웨어를 포함한다.
'~하도록 구성된'이라는 문구의 사용은, 일 실시예에서, 지정된 또는 결정된 작업을 수행하도록 장치, 하드웨어, 로직, 또는 요소를 배열, 조립, 제조, 판매 제안, 수입 및/또는 설계하는 것을 지칭한다. 이 예에서, 동작하고 있지 않은 장치 또는 그의 요소는, 지정된 작업을 수행하도록 설계, 결합 및/또는 상호연결되는 경우, 여전히 상기 지정된 작업을 수행'하도록 구성'된다. 순전히 예시적인 예로서, 로직 게이트는 동작 동안 0 또는 1을 제공할 수 있다. 그러나, 클록에 인에이블 신호(enable signal)를 제공'하도록 구성된' 로직 게이트가 1 또는 0을 제공할 수 있는 잠재적 로직 게이트 모두를 포함하지는 않는다. 그 대신에, 로직 게이트는 동작 동안 1 또는 0 출력이 클록을 인에이블시키는 어떤 방식으로 결합된 것이다. 다시 한번 유의할 점은, '~하도록 구성된'이라는 용어의 사용이 동작을 필요로 하지 않고 그 대신에 장치, 하드웨어, 및/또는 요소의 잠재 상태(latent state)에 초점을 맞추고 있으며, 여기서 잠재 상태에서는 장치, 하드웨어, 및/또는 요소가 동작하고 있을 때 장치, 하드웨어, 및/또는 요소가 특정 작업을 수행하도록 설계되어 있다는 것이다.
게다가, '~하는', '~할 수 있는', 및/또는 '~하도록 동작가능한'이라는 문구들의 사용은, 일 실시예에서, 어떤 장치, 로직, 하드웨어, 및/또는 요소가 장치, 로직, 하드웨어, 및/또는 요소를 명시된 방식으로 사용할 수 있게 하도록 설계되어 있다는 것을 지칭한다. 유의할 점은, 이상과 같이, '~하는', '~할 수 있는', 및/또는 "~하도록 동작가능한"의 사용이, 일 실시예에서, 장치, 로직, 하드웨어, 및/또는 요소의 잠재 상태를 지칭하고, 여기서 장치, 로직, 하드웨어, 및/또는 요소가 동작하고 있지 않지만 장치를 명시된 방식으로 사용할 수 있게 하도록 설계되어 있다는 것이다.
값은, 본원에서 사용되는 바와 같이, 숫자, 상태, 논리 상태, 또는 이진 논리 상태의 임의의 공지된 표현을 포함한다. 종종, 논리 레벨(logic level)들, 논리 값(logic value)들, 또는 논리 값(logical value)들의 사용은 또한, 이진 논리 상태들을 간단히 표현하는, 1과 0을 지칭한다. 예를 들어, 1은 하이 논리 레벨(high logic level)을 지칭하고, 0은 로우 논리 레벨(low logic level)을 지칭한다. 일 실시예에서, 트랜지스터 또는 플래시 셀과 같은, 저장 셀(storage cell)은 단일의 논리 값 또는 다수의 논리 값들을 보유할 수 있다. 그렇지만, 컴퓨터 시스템들에서의 값들의 다른 표현들이 사용되어 왔다. 예를 들어, 십진수 10은 또한 이진 값 1010과 16 진수 문자 A로 표현될 수 있다. 따라서, 값은 컴퓨터 시스템에 보유될 수 있는 정보의 임의의 표현을 포함한다.
더욱이, 상태들이 값들 또는 값들의 부분들에 의해 표현될 수 있다. 일 예로서, 논리 1과 같은, 제1 값은 디폴트 또는 초기 상태를 표현할 수 있는 반면, 논리 0과 같은, 제2 값은 디폴트가 아닌 상태(non-default state)를 표현할 수 있다. 그에 부가하여, 리셋(reset) 및 세트(set)라는 용어들은, 일 실시예에서, 각각, 디폴트 및 업데이트된 값 또는 상태를 지칭한다. 예를 들어, 디폴트 값은 어쩌면 하이 논리 값, 즉 리셋을 포함하는 반면, 업데이트된 값은 어쩌면 로우 논리 값, 즉 세트를 포함한다. 임의의 수의 상태들을 표현하기 위해 값들의 임의의 조합이 이용될 수 있다는 것에 유의해야 한다.
앞서 기재된 방법들, 하드웨어, 소프트웨어, 펌웨어 또는 코드의 실시예들은 처리 요소에 의해 실행가능한 머신 액세스가능, 머신 판독가능, 컴퓨터 액세스가능, 또는 컴퓨터 판독가능 매체 상에 저장된 명령어들 또는 코드를 통해 구현될 수 있다. 비일시적 머신 액세스가능/판독가능 매체는, 컴퓨터 또는 전자 시스템과 같은, 머신에 의해 판독가능한 형태로 정보를 제공(즉, 저장 및/또는 전송)하는 임의의 메커니즘을 포함한다. 예를 들어, 비일시적 머신 액세스가능 매체는 SRAM(static RAM) 또는 DRAM(dynamic RAM)과 같은 RAM(random-access memory); ROM; 자기 또는 광학 저장 매체; 플래시 메모리 디바이스들; 전기 저장 디바이스들; 광학 저장 디바이스들; 음향 저장 디바이스들; 그로부터 정보를 수신할 수 있는 비일시적 매체들과는 구별되어야 하는, 일시적(전파) 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들)로부터 수신된 정보를 보유하기 위한 다른 형태의 저장 디바이스 등을 포함한다.
로직을 본 발명의 실시예들을 수행하도록 프로그래밍하는 데 사용되는 명령어들은, DRAM, 캐시, 플래시 메모리, 또는 다른 저장소와 같은, 시스템에 있는 메모리 내에 저장될 수 있다. 게다가, 명령어들이 네트워크를 통해 또는 다른 컴퓨터 판독가능 매체를 통해 배포될 수 있다. 따라서, 머신 판독가능 매체는 플로피 디스켓들, 광학 디스크들, CD-ROM(Compact Disc, Read-Only Memory), 및 자기-광학 디스크들, ROM(Read-Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 자기 또는 광학 카드들, 플래시 메모리, 또는 전기, 광학, 음향 또는 다른 형태의 전파 신호들(예컨대, 반송파들, 적외선 신호들, 디지털 신호들 등)을 통해 인터넷을 거쳐 정보를 전송하는 데 사용되는 유형적 머신 판독가능 저장소 - 이들로 제한되지 않음 - 와 같은, 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하는 임의의 메커니즘을 포함할 수 있다. 그에 따라, 컴퓨터 판독가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독가능한 형태로 전자 명령어들 또는 정보를 저장 또는 전송하기에 적당한 임의의 유형의 유형적 머신 판독가능 매체를 포함한다.
본 명세서에 전체에 걸쳐 "일 실시예" 또는 "실시예"에 대한 언급은 그 실시예와 관련하여 기술된 특정의 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전체에 걸쳐 여러 곳에서 나오는 "일 실시예에서" 또는 "실시예에서"와 같은 문구들 모두가 꼭 동일한 실시예를 지칭하는 것은 아니다. 게다가, 특정의 특징, 구조, 또는 특성이 하나 이상의 실시예들에서 임의의 적당한 방식으로 조합될 수 있다.
전술한 명세서에서, 상세한 설명이 특정의 예시적인 실시예들을 참조하여 주어져 있다. 그렇지만, 첨부된 청구항들에 기재된 본 발명의 보다 광의의 사상 및 범주를 벗어나지 않고 그에 대한 다양한 수정들 및 변경들이 행해질 수 있다는 것이 명백할 것이다. 그에 따라, 본 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 한다. 게다가, 실시예 및 다른 예시적인 표현(language)의 전술한 사용이 꼭 동일한 실시예 또는 동일한 예를 지칭하지는 않지만, 상이한 그리고 별개의 실시예들은 물론 어쩌면 동일한 실시예를 지칭할 수 있다.
상세한 설명의 일부 부분들이 컴퓨터 메모리 내에서의 데이터 비트들에 대한 연산들의 알고리즘들 및 심벌 표현들로 제시되어 있다. 이 알고리즘적 설명들 및 표현들은 데이터 처리 분야의 통상의 기술자에 의해 본 기술분야의 다른 통상의 기술자에게 자신의 연구의 내용을 가장 효과적으로 전달하는 데 사용되는 수단이다. 알고리즘은, 여기서 그리고 일반적으로, 원하는 결과를 가져오는 자체 일관성있는 동작들의 시퀀스인 것으로 생각된다. 동작들은 물리적 양들의 물리적 조작들을 필요로 하는 것들이다. 꼭 그럴 필요는 없지만, 보통 이 양들은 저장, 전송, 결합, 비교, 그리고 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 갖는다. 원칙적으로 통상적인 용법의 이유로 이 신호들을 비트들, 값들, 요소들, 심벌들, 문자들, 용어들, 숫자들 등으로서 지칭하는 것이 때때로 편리하다는 것이 입증되었다. 본원에 기술되는 블록들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합일 수 있다.
그렇지만, 이들 및 유사한 용어들 모두가 적절한 물리적 양들과 연관되어 있고 이 양들에 적용되는 편리한 명칭들에 불과하다는 것을 염두에 두어야 한다. 달리 구체적으로 언급하지 않는 한, 이상의 논의로부터 명백한 바와 같이, 본 설명 전체에 걸쳐, "정의", "수신", "결정", "발행", "링크", "연관", "획득", "인증", "금지", "실행", "요청", "전달" 등과 같은 용어들을 이용하는 논의들이, 컴퓨팅 시스템의 레지스터들 및 메모리들 내에 물리적(전자적) 양들로 표현된 데이터를, 컴퓨팅 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 전송 또는 디스플레이 디바이스들 내의 물리적 양들로 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨팅 시스템 또는 유사한 전자 컴퓨팅 디바이스의 동작들 및 프로세스들을 지칭한다는 것을 잘 알 것이다.
"예" 또는 "예시적인"이라는 단어들은 예, 사례 또는 예시로서 역할한다는 것을 의미하기 위해 본원에서 사용된다. 본원에서 "예" 또는 "예시적인" 것으로 기술되는 임의의 양태 또는 설계가 다른 양태들 또는 설계들보다 양호하거나 이점이 있는 것으로 꼭 해석되는 것은 아니다. 오히려, "예" 또는 "예시적인"이라는 단어들의 사용은 개념들을 구체적인 방식으로 제시하려는 것으로 의도되어 있다. 본 출원에서 사용된 바와 같이, "또는"이라는 용어는 배타적 "또는"(exclusive "or")보다는 포함적 "또는"(inclusive "or")을 의미하는 것으로 의도되어 있다. 즉, 달리 언급되지 않거나 문맥으로부터 명확하지 않은 한, "X가 A 또는 B를 포함한다"는 자연스런 포함적 치환(natural inclusive permutation)들 중 임의의 것을 의미하는 것으로 의도되어 있다. 즉, X가 A를 포함하거나; X가 B를 포함하거나; 또는 X가 A와 B 둘 다를 포함하는 경우, 전술한 경우들 중 임의의 것 하에서 "X가 A 또는 B를 포함한다"가 충족된다. 그에 부가하여, 본 출원 및 첨부된 청구항들에서 사용되는 "한" 및 "어떤"이라는 관형사들은, 달리 명시되지 않거나 단수 형태에 관한 것으로 문맥으로부터 명백하지 않는 한, 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다. 더욱이, 본 명세서 전체에 걸쳐 "실시예" 또는 "일 실시예" 또는 "구현" 또는 "일 구현"이라는 용어의 사용은, 그것으로서 기술되지 않는 한, 동일한 실시예 또는 구현을 의미하는 것으로 의도되지 않는다. 또한, "제1", "제2", "제3", "제4" 등의 용어들은, 본원에서 사용되는 바와 같이, 상이한 요소들을 구별하는 라벨들로서 의도되어 있고, 반드시 그들의 숫자 명칭에 따른 서수 의미(ordinal meaning)를 갖는 것은 아닐 수 있다.

Claims (20)

  1. 서버로서,
    적어도 하나의 처리 디바이스; 및
    미디어 프로그램들과 연관된 복수의 프레임 핑거프린트(frame fingerprint)들을 갖는 데이터베이스를 저장하고, 명령어들을 저장하는 컴퓨터 판독가능 저장 매체 - 상기 복수의 프레임 핑거프린트들의 각자의 프레임 핑거프린트들은 대응하는 타임 스탬프를 포함함 - 를 포함하고;
    상기 적어도 하나의 처리 디바이스는
    소비되는 콘텐츠의 핑거프린트를, 미디어 디바이스로부터, 수신하고 - 상기 핑거프린트는 프레임들의 시퀀스 및 대응하는 타임 스탬프들을 포함함 -;
    상기 핑거프린트의 대응하는 타임 스탬프 및 상기 프레임들의 시퀀스 내의 프레임과 가장 가깝게 매칭하는 상기 복수의 프레임 핑거프린트들 중의 프레임 핑거프린트들을 포함하는 2차원 데이터 구조로 시간 기반 결과들의 세트를 생성하기 위해 상기 데이터베이스의 검색(search)을 실행하며;
    소비되는 상기 콘텐츠에 대응하는 미디어 프로그램을 결정하기 위해 상기 시간 기반 결과들의 세트에 대해 패턴 인식 알고리즘을 실행하기 위해 상기 명령어들을 실행하는, 서버.
  2. 제1항에 있어서, 상기 적어도 하나의 처리 디바이스는 추가로, 소비되는 상기 미디어 프로그램을 결정한 것에 응답하여:
    상기 미디어 프로그램의 식별자(identification)를 광고 서버에게 송신하고;
    상기 미디어 프로그램의 주제에 맥락적으로 관련성있는(contextually-relevant) 광고를, 상기 광고 서버로부터, 수신하며;
    오버레이로서 또는 상기 미디어 프로그램에서의 광고 시간(commercial break) 동안에 디스플레이하기 위해 상기 광고를 상기 미디어 디바이스에게 전달하는, 서버.
  3. 제1항에 있어서, 상기 적어도 하나의 처리 디바이스는 추가로, 상기 핑거프린트의 대응하는 타임 스탬프들 및 상기 프레임들 중 임의의 것과 가장 가깝게 매칭하는 상기 복수의 프레임 핑거프린트들 중에서 미리 결정된 수의 프레임 핑거프린트들을 선택하고, 상기 미리 결정된 수의 프레임 핑거프린트들은 거짓 양성 매치(false positive match)들을 제거하도록 선택되는, 서버.
  4. 제1항에 있어서, 상기 2차원 데이터 구조는 상기 복수의 프레임 핑거프린트들 중 매칭하는 프레임 핑거프린트들의 타임 스탬프들에 대해 매핑된, 순서대로 취해지는, 상기 핑거프린트의 상기 프레임들의 시퀀스의 타임 스탬프들을 포함하는, 서버.
  5. 제1항에 있어서, 상기 패턴 인식 알고리즘은, 점들의 희소 세트(sparse set)로부터 임의의 기울기의 라인을 검출하는, RANSAC(random sample consensus)을 포함하는, 서버.
  6. 제1항에 있어서, 상기 패턴 인식 알고리즘은 상기 콘텐츠의 재생 속도(playback rate)가 변하지 않을 때 특정 기울기의 라인을 결정하는 기울기 검출 알고리즘을 포함하는, 서버.
  7. 제1항에 있어서, 상기 타임 스탬프들은 상기 핑거프린트의 그리고 상기 복수의 프레임 핑거프린트들의 각자의 프레임들에 대응하는 프레임 번호들을 포함하는, 서버.
  8. 제7항에 있어서, 상기 타임 스탬프들은 특정 수의 프레임들의 미리 결정된 간격으로 취해지는, 서버.
  9. 제1항에 있어서, 상기 타임 스탬프들은 각자의 미디어 프로그램들의 시작으로부터의 시간 기반 위치들을 포함하는, 서버.
  10. 방법으로서,
    컴퓨팅 디바이스를 사용하여, 미디어 프로그램들에 대응하는 복수의 프레임 핑거프린트들을 메모리 내의 데이터베이스에서 액세스하는 단계 - 상기 복수의 프레임 핑거프린트들의 각자의 프레임 핑거프린트들은 대응하는 타임 스탬프를 포함함 -;
    소비되는 콘텐츠의 핑거프린트를, 미디어 디바이스로부터, 수신하는 단계 - 상기 핑거프린트는 프레임들의 순서화된 시퀀스 및 대응하는 타임 스탬프들을 포함함 -;
    상기 컴퓨팅 디바이스를 사용하여, 상기 핑거프린트의 상기 프레임들의 순서화된 시퀀스의 타임 스탬프들을 상기 복수의 프레임 핑거프린트들 중 가장 가깝게 매칭하는 프레임 핑거프린트들의 타임 스탬프들에 매핑한 결과 얻어지는 점들의 세트를 포함하는 시간 기반 결과들을 생성하기 위해 상기 데이터베이스에 질의하는(querying) 단계;
    상기 컴퓨팅 디바이스를 사용하여, 소비되는 상기 콘텐츠에 대응하는 미디어 프로그램을 결정하기 위해 상기 점들의 세트에 대해 패턴 인식 알고리즘을 실행하는 단계; 및
    상기 미디어 프로그램을 소비하는 동안 상기 미디어 디바이스에게 부가적인 콘텐츠를 타깃팅하기 위해 광고 서버에게 상기 미디어 프로그램의 식별자를 송신하는 단계를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 미디어 프로그램의 주제에 맥락적으로 관련성있는 상기 부가적인 콘텐츠를, 상기 광고 서버로부터, 수신하는 단계; 및
    상기 미디어 프로그램에 대한 오버레이로서 또는 광고 시간 동안 보여지도록 상기 미디어 프로그램의 인코딩을 상기 부가적인 콘텐츠로 보강하는(augmenting) 단계를 추가로 포함하는, 방법.
  12. 제10항에 있어서, 적어도 하나의 처리 디바이스는 추가로, 상기 핑거프린트의 대응하는 타임 스탬프들 및 상기 프레임들 중 임의의 것과 가장 가깝게 매칭하는 상기 복수의 프레임 핑거프린트들 중에서 미리 결정된 수의 프레임 핑거프린트들을 선택하고, 상기 미리 결정된 수의 프레임 핑거프린트들은 거짓 양성 매치들을 제거하도록 선택되는, 방법.
  13. 제10항에 있어서, 상기 점들의 세트는 상기 미디어 프로그램에 대응하는 상기 질의로부터 히트(hit)들의 실질적으로 연속적인 라인을 형성하는, 방법.
  14. 제13항에 있어서, 상기 패턴 인식 알고리즘은, 임의의 기울기의 라인을 검출하는, RANSAC(random sample consensus)을 포함하는, 방법.
  15. 제13항에 있어서, 상기 패턴 인식 알고리즘은 상기 콘텐츠의 재생 속도가 변하지 않을 때 특정 기울기의 라인을 결정하는 기울기 검출 알고리즘을 포함하는, 방법.
  16. 제10항에 있어서, 상기 타임 스탬프들은 상기 핑거프린트의 그리고 상기 복수의 프레임 핑거프린트들의 각자의 프레임들에 대응하는 프레임 번호들을 포함하고, 상기 타임 스탬프들은 특정 수의 프레임들의 미리 결정된 간격으로 취해지는, 방법.
  17. 제10항에 있어서, 상기 타임 스탬프들은 각자의 미디어 프로그램들의 시작으로부터의 시간 기반 간격들을 포함하는, 방법.
  18. 시청되는 콘텐츠의 핑거프린트에 관련된 미디어 프로그램을 결정하기 위한 데이터 및 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은
    컴퓨팅 디바이스를 사용하여, 미디어 프로그램들에 대응하는 복수의 프레임 핑거프린트들을 메모리 내의 데이터베이스에 저장하고 - 상기 복수의 프레임 핑거프린트들의 각자의 프레임 핑거프린트들은 대응하는 타임 스탬프를 포함함 -;
    소비되는 콘텐츠의 핑거프린트를, 미디어 디바이스로부터, 수신하며 - 상기 핑거프린트는 프레임들의 시퀀스 및 대응하는 타임 스탬프들을 포함함 -;
    상기 핑거프린트의 상기 프레임들의 시퀀스의 타임 스탬프들을 상기 복수의 프레임 핑거프린트들 중 가장 가깝게 매칭하는 프레임 핑거프린트들의 타임 스탬프들에 매핑한 결과 얻어지는 점들의 세트를 포함하는 시간 기반 결과들을 생성하기 위해 상기 데이터베이스에 질의하고;
    소비되는 상기 콘텐츠에 대응하는 미디어 프로그램을 결정하기 위해 상기 점들의 세트에 대해 패턴 인식 알고리즘을 실행하기 위해
    적어도 하나의 처리 디바이스에 의해 실행가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서, 상기 명령어들은
    상기 미디어 프로그램의 식별자를 광고 타깃터(advertising targeter)에게 송신하고;
    상기 미디어 프로그램의 주제에 맥락적으로 관련성있는 광고를, 상기 광고 타깃터로부터, 수신하며;
    오버레이로서 또는 상기 미디어 프로그램에서의 광고 시간 동안에 디스플레이하기 위해 상기 광고를 상기 미디어 디바이스에게 전달하기 위해
    상기 적어도 하나의 처리 디바이스에 의해 추가로 실행가능한, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 제18항에 있어서, 상기 점들의 세트는 상기 미디어 프로그램에 대응하는 상기 질의로부터 히트들의 실질적으로 연속적인 라인을 형성하고, 상기 패턴 인식 알고리즘은, 임의의 기울기의 라인을 검출하는, RANSAC(random sample consensus)을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020177033910A 2015-04-23 2016-04-25 자동 콘텐츠 인식 핑거프린트 시퀀스 매칭 KR20180026377A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562151914P 2015-04-23 2015-04-23
US62/151,914 2015-04-23
US14/801,307 2015-07-16
US14/801,307 US20160316261A1 (en) 2015-04-23 2015-07-16 Automatic content recognition fingerprint sequence matching
PCT/US2016/029221 WO2016172711A1 (en) 2015-04-23 2016-04-25 Automatic content recognition fingerprint sequence matching

Publications (1)

Publication Number Publication Date
KR20180026377A true KR20180026377A (ko) 2018-03-12

Family

ID=57143641

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177033910A KR20180026377A (ko) 2015-04-23 2016-04-25 자동 콘텐츠 인식 핑거프린트 시퀀스 매칭

Country Status (6)

Country Link
US (1) US20160316261A1 (ko)
EP (1) EP3286673A4 (ko)
JP (3) JP6612432B2 (ko)
KR (1) KR20180026377A (ko)
CN (1) CN107851104B (ko)
WO (1) WO2016172711A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210021099A (ko) * 2018-07-19 2021-02-24 그레이스노트, 인코포레이티드 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용
WO2022076137A1 (en) * 2020-10-08 2022-04-14 Gracenote, Inc. System and method for podcast repetitive content detection

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9743154B2 (en) 2015-09-09 2017-08-22 Sorenson Media, Inc Dynamic video advertisement replacement
US9813781B2 (en) * 2015-10-27 2017-11-07 Sorenson Media, Inc. Media content matching and indexing
US9930406B2 (en) 2016-02-29 2018-03-27 Gracenote, Inc. Media channel identification with video multi-match detection and disambiguation based on audio fingerprint
US9924222B2 (en) 2016-02-29 2018-03-20 Gracenote, Inc. Media channel identification with multi-match detection and disambiguation based on location
US10063918B2 (en) 2016-02-29 2018-08-28 Gracenote, Inc. Media channel identification with multi-match detection and disambiguation based on single-match
US10063917B2 (en) * 2016-03-16 2018-08-28 Sorenson Media Inc. Fingerprint layouts for content fingerprinting
KR101963200B1 (ko) * 2017-03-09 2019-03-28 경희대학교 산학협력단 영상 콘텐츠 자동 인식기술을 이용한 실시간 영상변환 시스템 및 방법
KR102263896B1 (ko) * 2017-03-29 2021-06-15 더 닐슨 컴퍼니 (유에스) 엘엘씨 오버레이를 이용하는 타겟 콘텐츠 배치
EP3646197A1 (en) * 2017-06-30 2020-05-06 The Nielsen Company (US), LLC Frame certainty for automatic content recognition
BR112020004179A2 (pt) * 2017-08-29 2020-09-08 Home Control Singapore Pte Ltd reconhecimento sutil de usuário
US10803038B2 (en) * 2017-09-13 2020-10-13 The Nielsen Company (Us), Llc Cold matching by automatic content recognition
KR102546026B1 (ko) 2018-05-21 2023-06-22 삼성전자주식회사 전자 장치 및 그의 컨텐츠 인식 정보 획득
KR102599951B1 (ko) 2018-06-25 2023-11-09 삼성전자주식회사 전자 장치 및 그의 제어방법
US10506275B1 (en) 2018-07-16 2019-12-10 Gracenote, Inc. Dynamic control of fingerprinting rate to facilitate time-accurate revision of media content
US11178451B2 (en) 2018-08-17 2021-11-16 Roku, Inc. Dynamic playout of transition frames while transitioning between playout of media streams
US11317143B2 (en) 2018-08-17 2022-04-26 Roku, Inc. Dynamic reduction in playout of replacement content to help align end of replacement content with end of replaced content
KR102585244B1 (ko) * 2018-09-21 2023-10-06 삼성전자주식회사 전자 장치 및 그 제어 방법
CN109712642B (zh) * 2018-12-10 2020-12-29 电子科技大学 一种精准快速的广告播出监测方法
KR20200080387A (ko) * 2018-12-18 2020-07-07 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
US10796159B1 (en) * 2019-05-10 2020-10-06 The Nielsen Company (Us), Llc Content-modification system with use of multiple fingerprint data types feature
US11245959B2 (en) * 2019-06-20 2022-02-08 Source Digital, Inc. Continuous dual authentication to access media content
CN110275989B (zh) * 2019-06-21 2022-11-18 唢纳网络科技(上海)有限公司 多媒体数据处理方法、装置、计算机设备和存储介质
US11234049B2 (en) 2019-06-24 2022-01-25 The Nielsen Company (Us), Llc Use of steganographically-encoded time information as basis to control implementation of dynamic content modification
US11233840B2 (en) * 2019-09-13 2022-01-25 Roku, Inc. Use of in-band metadata as basis to access reference fingerprints to facilitate content-related action
EP3844967B1 (en) * 2019-10-25 2023-01-25 Google LLC Frame-accurate automated cutting of media content by using multiple airings
KR102380540B1 (ko) * 2020-09-14 2022-04-01 네이버 주식회사 음원을 검출하기 위한 전자 장치 및 그의 동작 방법
US11917231B2 (en) 2020-10-29 2024-02-27 Roku, Inc. Real-time altering of supplemental content duration in view of duration of modifiable content segment, to facilitate dynamic content modification
CN114339416A (zh) * 2021-12-29 2022-04-12 神州数码系统集成服务有限公司 远端大屏播放内容监控方法、系统、设备、介质及应用

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101371254A (zh) * 2003-02-21 2009-02-18 索尼电子有限公司 媒体内容识别
WO2005079510A2 (en) * 2004-02-17 2005-09-01 Auditude.Com, Inc. Generation of a media content database by correlating repeating media content in media streams
US8094872B1 (en) * 2007-05-09 2012-01-10 Google Inc. Three-dimensional wavelet based video fingerprinting
US8265333B2 (en) * 2007-07-27 2012-09-11 Synergy Sports Technology, Llc Systems and methods for generating bookmark video fingerprints
WO2010144671A2 (en) 2009-06-11 2010-12-16 Dolby Laboratories Licensing Corporation Trend analysis in content identification based on fingerprinting
US8594392B2 (en) * 2009-11-18 2013-11-26 Yahoo! Inc. Media identification system for efficient matching of media items having common content
US9264785B2 (en) * 2010-04-01 2016-02-16 Sony Computer Entertainment Inc. Media fingerprinting for content determination and retrieval
US8863165B2 (en) * 2010-11-01 2014-10-14 Gracenote, Inc. Method and system for presenting additional content at a media system
CA2837725C (en) 2011-06-10 2017-07-11 Shazam Entertainment Ltd. Methods and systems for identifying content in a data stream
US8639178B2 (en) * 2011-08-30 2014-01-28 Clear Channel Management Sevices, Inc. Broadcast source identification based on matching broadcast signal fingerprints
CN103999150B (zh) * 2011-12-12 2016-10-19 杜比实验室特许公司 媒体数据中的低复杂度重复检测
US9351037B2 (en) * 2012-02-07 2016-05-24 Turner Broadcasting System, Inc. Method and system for contextual advertisement replacement utilizing automatic content recognition
US9251406B2 (en) * 2012-06-20 2016-02-02 Yahoo! Inc. Method and system for detecting users' emotions when experiencing a media program
JP6042675B2 (ja) 2012-09-21 2016-12-14 株式会社ビデオリサーチ 視聴状況調査システム及び方法、視聴状況調査処理プログラム、視聴状況計算装置
US20140089424A1 (en) * 2012-09-27 2014-03-27 Ant Oztaskent Enriching Broadcast Media Related Electronic Messaging
US8713600B2 (en) 2013-01-30 2014-04-29 Almondnet, Inc. User control of replacement television advertisements inserted by a smart television
CN103970793B (zh) * 2013-02-04 2020-03-03 腾讯科技(深圳)有限公司 信息查询方法、客户端及服务器
US9900650B2 (en) * 2013-09-04 2018-02-20 Panasonic Intellectual Property Management Co., Ltd. Video reception device, video recognition method, and additional information display system
US20150106403A1 (en) * 2013-10-15 2015-04-16 Indooratlas Oy Generating search database based on sensor measurements
US9609373B2 (en) * 2013-10-25 2017-03-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Presentation timeline synchronization across audio-video (AV) streams
US20150281756A1 (en) * 2014-03-26 2015-10-01 Nantx Technologies Ltd Data session management method and system including content recognition of broadcast data and remote device feedback
US20160096073A1 (en) * 2014-10-07 2016-04-07 Umm Al-Qura University Game-based method and system for physical rehabilitation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210021099A (ko) * 2018-07-19 2021-02-24 그레이스노트, 인코포레이티드 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용
KR20210022134A (ko) * 2018-07-19 2021-03-02 그레이스노트, 인코포레이티드 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용
WO2022076137A1 (en) * 2020-10-08 2022-04-14 Gracenote, Inc. System and method for podcast repetitive content detection

Also Published As

Publication number Publication date
JP6818846B2 (ja) 2021-01-20
CN107851104B (zh) 2022-05-06
CN107851104A (zh) 2018-03-27
WO2016172711A1 (en) 2016-10-27
US20160316261A1 (en) 2016-10-27
EP3286673A1 (en) 2018-02-28
JP2018523419A (ja) 2018-08-16
JP2020025322A (ja) 2020-02-13
EP3286673A4 (en) 2018-10-31
JP2021064960A (ja) 2021-04-22
JP6612432B2 (ja) 2019-11-27
JP7128255B2 (ja) 2022-08-30

Similar Documents

Publication Publication Date Title
JP7128255B2 (ja) 自動コンテンツ認識フィンガープリントシーケンス照合
US9877085B2 (en) Detecting channel change in automatic content recognition fingerprint matching
US11212582B2 (en) Providing restricted overlay content to an authorized client device
US11140435B2 (en) Interactive overlays to determine viewer data
US10182263B2 (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

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application