JP2019527444A - 一致するコンテンツを特定するためのシステムおよび方法 - Google Patents

一致するコンテンツを特定するためのシステムおよび方法 Download PDF

Info

Publication number
JP2019527444A
JP2019527444A JP2019519960A JP2019519960A JP2019527444A JP 2019527444 A JP2019527444 A JP 2019527444A JP 2019519960 A JP2019519960 A JP 2019519960A JP 2019519960 A JP2019519960 A JP 2019519960A JP 2019527444 A JP2019527444 A JP 2019527444A
Authority
JP
Japan
Prior art keywords
fingerprint
frames
content item
features
content
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2019519960A
Other languages
English (en)
Other versions
JP6903751B2 (ja
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
Priority claimed from US15/291,002 external-priority patent/US10650241B2/en
Application filed by フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2019527444A publication Critical patent/JP2019527444A/ja
Application granted granted Critical
Publication of JP6903751B2 publication Critical patent/JP6903751B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04N21/2541Rights Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Technology Law (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Collating Specific Patterns (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

システム、方法および非一時的コンピュータ可読媒体は、テスト・コンテンツ・アイテムに対応する1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントを生成することができる。テスト・コンテンツ・アイテムに対応する1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントが生成される。少なくとも1つの第1フィンガープリントに基づいて、1以上の参照コンテンツ・アイテムが決定される。テスト・コンテンツ・アイテムは、少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価される。

Description

本技術は、コンテンツの照合の分野に関わる。より具体的には、本技術は、一致するコンテンツ・アイテムを特定するための手法に関わる。
現在、人々は、多様な目的のためにコンピューティング・デバイス(またはシステム)をしばしば利用する。ユーザは、自らのコンピューティング・デバイスを使用して、たとえば、互いに相互作用し、コンテンツにアクセスし、コンテンツを共有し、コンテンツを作成することができる。場合により、コンテンツ・アイテムは、ソーシャル・ネットワークのメンバーからの投稿を含むことができる。投稿は、テキスト、ならびに画像、映像および音声等のメディア・コンテンツ・アイテムを含むことができる。投稿は、他者による利用のためにソーシャル・ネットワークに公開されてもよい。
本開示の一実施形態に係る、さまざまなコンテンツ・アイテムへのアクセスを提供するように構成される例示的なコンテンツ・プロバイダ・モジュールを含む例示的なシステムを示す図。 本開示の一実施形態に係る、コンテンツ照合モジュールの一実施例を示す図。 本開示の一実施形態に係る、フィンガープリンティング・モジュールの一実施例を示す図。 本開示の一実施形態に係る、記憶モジュールの一実施例を示す図。 本開示の一実施形態に係る、照合モジュールの一実施例を示す図。 本開示の一実施形態に係る、フレームから特徴値を抽出するための例示的なアプローチを示す図。 本開示の一実施形態に係る、フィンガープリント・データを記憶して検索するための例示的な転置インデックスを示す図。 本開示の一実施形態に係る、コンテンツ・アイテム間で一致するコンテンツを特定するための例示的なアプローチを示す図。 本開示の一実施形態に係る、コンテンツ・アイテム間で一致するコンテンツを特定するための例示的なアプローチを示す図。 本開示の一実施形態に係る、ライブ・コンテンツ・ストリームを処理するための例示的なアプローチを示す図。 本開示の一実施形態に係る、ライブ・コンテンツ・ストリームを処理するための例示的なアプローチを示す図。 本開示の一実施形態に係る、ライブ・コンテンツ・ストリームを処理するための例示的なアプローチを示す図。 本開示の種々実施形態に係る、同じタイプの複数のフィンガープリントを生成するための例示的なアプローチを示す図。 本開示の種々実施形態に係る、同じタイプの複数のフィンガープリントを生成するための別の例示的なアプローチを示す図。 本開示の種々実施形態に係る、同じタイプの複数のフィンガープリントを生成するための例示的なプロセスを示す図。 本開示の一実施形態に係る、さまざまなシナリオで利用することのできる例示的なソーシャル・ネットワーキング・システムを含む例示的なシステムのネットワーク図。 本開示の一実施形態に係る、さまざまなシナリオで利用することのできるコンピュータ・システムまたはコンピューティング・デバイスの一実施例を示す図。
本開示の種々実施形態は、テスト・コンテンツ・アイテムに対応する1つまたは複数のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントを生成するように構成されている。テスト・コンテンツ・アイテムに対応する1つまたは複数のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントが生成される。少なくとも1つの第1フィンガープリントに基づいて、1つまたは複数の参照コンテンツ・アイテムが決定される。テスト・コンテンツ・アイテムは、少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価される。
一実施形態では、1つまたは複数のフレームに対応する第1組の特徴に少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントが生成され、1つまたは複数のフレームに対応する第2組の特徴に少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントが生成される。
一実施形態では、第1組の特徴は、第2組の特徴よりも少ない特徴を含む。
一実施形態では、第1フィンガープリントは、第1フィンガープリントがそこから生成された1つまたは複数のフレームを少なくとも記述する第1メタデータに関連付けられ、第2フィンガープリントは、第2フィンガープリントがそこから生成された1つまたは複数のフレームを少なくとも記述する第2メタデータに関連付けられる。
一実施形態では、少なくとも1つの第1フィンガープリントは、1つまたは複数のフレームの第1領域に対応する第1組の特徴に少なくとも部分的に基づいて生成され、少なくとも1つの第2フィンガープリントは、1つまたは複数のフレームの第2領域に対応する第2組の特徴に少なくとも部分的に基づいて生成される。
一実施形態では、第1領域は、フレーム内のテキストが提示される領域に対応する。
一実施形態では、少なくとも1つの第1フィンガープリントは、1つまたは複数のフレーム内で特定される少なくとも1つの第1オブジェクトに基づいて生成され、少なくとも1つの第2フィンガープリントは、1つまたは複数のフレーム内で特定される少なくとも1つの第2オブジェクトに基づいて生成される。
一実施形態では、第1フィンガープリントは、少なくとも1つの第1オブジェクトを記述する第1メタデータに関連付けられ、第2フィンガープリントは、少なくとも1つの第2オブジェクトを記述する第2メタデータに関連付けられる。
一実施形態では、第1フィンガープリントおよび第2フィンガープリントは、同じタイプのメディア・フィンガープリントに対応する。
一実施形態では、メディア・フィンガープリントのタイプは、音声フィンガープリントおよび映像フィンガープリントのうちの1つに対応する。
開示される技術の他の多くの特徴、アプリケーション、実施形態、および/または変型は添付の図面および以下の詳細な説明から明らかになることは理解されるべきである。本明細書で説明する構造、システム、非一時的コンピュータ可読媒体および方法の追加の実施態様および/または代替実施態様を、開示される技術の原理から逸脱することなく採用することができる。
本発明による実施形態は、方法、記憶媒体、システムおよびコンピュータ・プログラム製品に向けられた添付の特許請求の範囲に特に開示されており、ある請求項のカテゴリ、たとえば方法、で述べられる特徴は、別の請求項のカテゴリ、たとえばシステム、でも同様に請求できる。添付の特許請求の範囲における従属性または後方参照は、形式上の理由で選ばれているにすぎない。しかし、任意の前の請求項への意図的な後方参照(特に多項従属)の結果として生じる主題も同様に請求することができるので、請求項およびその特徴の任意の組み合わせが開示され、添付の特許請求の範囲で選ばれた従属性に関係なく請求することができる。請求することのできる主題は、添付の特許請求の範囲に記載される特徴の組み合わせだけでなく、特許請求の範囲の特徴の任意の他の組み合わせも含み、特許請求の範囲で述べられる各特徴は、特許請求の範囲の任意の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書において説明または描写される実施形態および特徴のいずれも、個別の請求項で、および/または本明細書において説明もしくは描写される任意の実施形態もしくは特徴と、もしくは添付の特許請求の範囲の特徴のいずれかと組み合わせて請求することができる。
図面は、説明のみを目的として、開示される技術の種々実施形態を示しており、図面は、同様な要素の識別には同様な参照符号を使用している。以下の考察から、当業者には、本明細書で説明される開示技術の原理から逸脱することなく、図面に図示される構造および方法の代替実施形態を採用可能であることは容易に認識されよう。
一致するコンテンツを特定するためのアプローチ
現在、人々は、多様な目的のためにコンピューティング・デバイス(またはシステム)をしばしば利用する。ユーザは、自らのコンピューティング・デバイスを使用して、たとえば、互いに相互作用し、コンテンツにアクセスし、コンテンツを共有し、コンテンツを作成することができる。場合により、コンテンツ・アイテムは、ソーシャル・ネットワークのメンバーからの投稿を含むことができる。投稿は、テキスト、ならびに画像、映像および音声等のメディア・コンテンツ・アイテムを含むことができる。投稿は、他者による利用のためにソーシャル・ネットワークに公開されてもよい。
従来のアプローチにおいては、コンテンツは、コンテンツ・プロバイダ経由で放送されてもよい。たとえば、該コンテンツ・プロバイダは、種々の放送媒体(たとえば、テレビ、衛星放送、インターネット等)経由でコンテンツを放送してもよい。一実施例において、放送は、パブリッシャによってキャプチャおよびライブ・ストリーミングされているコンテンツを含むことができる。たとえば、パブリッシャは、ライブ・コンテンツ・ストリームの一部として放送されるコンテンツ(たとえば、ライブ・コンサート、テレビ番組の初回放送等)を提供することができる。そうしたイベントは、たとえば、ビデオ・キャプチャ・デバイス(たとえば、ビデオ・カメラ)および/またはオーディオ・キャプチャ・デバイス(たとえば、マイクロフォン)を使用してキャプチャすることができる。このようにキャプチャされたコンテンツは、さらに、コンテンツ・プロバイダ(たとえば、ソーシャル・ネットワーキング・システム)によって、符号化されて、ネットワーク(たとえば、インターネット)上でリアルタイムでユーザ・デバイスに配信されることができる。場合によっては、未許可のエンティティが、パブリッシャのライブ・コンテンツ・ストリームの複製をキャプチャして、複製されたコンテンツを、コンテンツ・プロバイダ経由で個別のライブ・コンテンツ・ストリームの一部としてストリーミングすることがある。たとえば、このエンティティは、コンテンツがテレビのディスプレイに提示されているときに、パブリッシャのライブ・コンテンツ・ストリームを録画することがある。別の実施例では、無許可のエンティティが、異なるメディア(例、衛星等)経由で放送されているイベントのストリームをキャプチャし、キャプチャしたストリームをコンテンツ・プロバイダ経由で発信することがある。
従来のアプローチにおいては、こうした無許可のライブ・コンテンツ・ストリームを検出することは時に難しく、この難しさは、ライブ・コンテンツ・ストリームが著作権保護コンテンツを含む場合に特に問題となる可能性がある。たとえば、従来のアプローチでは、コンテンツ・プロバイダは、通例、コンテンツ・アイテムがコンテンツ・プロバイダに全部アップロードされた後に、コンテンツ・アイテムが著作権保護コンテンツ・アイテムを侵害しているかどうかをチェックするであろう。コンテンツ・プロバイダは、次いで、アップロードされたコンテンツ・アイテムを著作権保護コンテンツ・アイテムに対して分析して、いずれかの部分が一致するかどうかを特定するであろう。このようなアプローチは、オンデマンドで供給されるコンテンツ・アイテムの著作権侵害を検出するには十分であるかもしれないが、一般に、ライブ・ストリーミングされているコンテンツ・アイテムの著作権侵害の検出には不十分である。したがって、このような従来のアプローチは、コンピュータ技術で生じる以上のような問題および他の問題に対処するには効果的ではないかもしれない。
コンピュータ技術に根ざした改良されたアプローチが、コンピュータ技術の分野において特に生じる従来のアプローチに伴う、上述の欠点および他の欠点を克服する。種々実施形態において、パブリッシャは、ライブ・コンテンツ・ストリームの一部としてソーシャル・ネットワーキング・システム経由でストリーミングまたは放送するコンテンツを提供することができる。パブリッシャは、ライブ・コンテンツ・ストリームが著作権保護されていることを示すことができ、この表示に基づいて、ソーシャル・ネットワーキング・システムは、コンテンツがライブ・ストリーミングされているときに、コンテンツのフィンガープリントを生成することができる。これらのフィンガープリントは、参照データベースに記憶することができ、たとえば、他のライブ・コンテンツ・ストリームおよび/またはオンデマンド・コンテンツ・アイテム内の複製コンテンツを特定するために使用することができる。たとえば、パブリッシャのコンテンツがライブ・ストリーミングされているとき、ソーシャル・ネットワーキング・システムは、任意の他のライブ・コンテンツ・ストリームおよび/またはオンデマンド・コンテンツ・アイテムがパブリッシャの著作権保護ライブ・コンテンツ・ストリームの全体または一部のいずれかに一致するかどうかを判別することができる。パブリッシャのライブ・コンテンツ・ストリームに一致するコンテンツ・アイテムの任意の部分は、著作権または他の法的権利の侵害である可能性がある。このような場合、ライブ・コンテンツ・ストリームの無許可の放送者および/またはパブリッシャ(たとえば、著作権保有者)には、著作権侵害の可能性について通知することができ、適切な処置を取ることができる。いくつかの実施形態においては、無許可の放送者が投稿する侵害ライブ・コンテンツ・ストリームおよび/またはオンデマンド・コンテンツ・アイテムは、自動的に、ソーシャル・ネットワーキング・システム経由でアクセス不可にされる。
図1は、本開示の一実施形態に係る、さまざまなコンテンツ・アイテムへのアクセスを提供するように構成される例示的なコンテンツ・プロバイダ・モジュール102を含む例示的なシステム100を示している。図1の実施例に図示されるように、コンテンツ・プロバイダ・モジュール102は、コンテンツ・アップロード・モジュール104、ライブ・ストリーム・モジュール106、コンテンツ・モジュール108、およびコンテンツ照合モジュール110を含むことができる。場合によっては、例示的なシステム100は、少なくとも1つのデータ・ストア112を含むことができる。この図および本明細書のすべての図に図示される構成要素(たとえば、モジュール、要素等)は例示にすぎず、他の実施態様は、追加の構成要素、より少ない構成要素、統合された構成要素、または異なる構成要素を含んでいてもよい。関連する細部が分かり難くならないように、図示していない構成要素もある。
いくつかの実施形態において、コンテンツ・プロバイダ・モジュール102は、部分的にまたは全体的に、ソフトウェア、ハードウェアまたはその任意の組み合わせとして実装される。一般に、本明細書で説明されるモジュールは、ソフトウェア、ハードウェアまたはその任意の組み合わせに関連付けることができる。いくつかの実施態様において、モジュールの1つまたは複数の機能、タスクおよび/または動作は、ソフトウェアのルーチン、ソフトウェアのプロセス、ハードウェア、および/またはその任意の組み合わせによって遂行または実装される。場合により、コンテンツ・プロバイダ・モジュール102は、部分的にまたは全体として、ユーザまたはクライアント・コンピューティング・デバイス等、1つまたは複数のコンピューティング・デバイスまたはシステム上で稼働するソフトウェアとして実装される。一実施例において、コンテンツ・プロバイダ・モジュール102または少なくともその一部は、図13のユーザ・デバイス1310等、ユーザ・コンピューティング・デバイスまたはクライアント・コンピューティング・システム上で稼働するアプリケーション(たとえば、アプリ)、プログラム、またはアプレット等として、またはその内部に実装される。別の実施例では、コンテンツ・プロバイダ・モジュール102または少なくともその一部は、ネットワーク・サーバまたはクラウド・サーバ等の1つまたは複数のサーバを含む1つまたは複数のコンピューティング・デバイスまたはシステムを使用して実装される。場合によっては、コンテンツ・プロバイダ・モジュール102は、部分的にまたは全体として、図13のソーシャル・ネットワーキング・システム1330等のソーシャル・ネットワーキング・システム(またはサービス)内に実装され、または該システム(またはサービス)と連携して動作するように構成することができる。
コンテンツ・プロバイダ・モジュール102は、例示的なシステム100に図示されるように、少なくとも1つのデータ・ストア112と通信する、および/または少なくとも1つのデータ・ストア112と一緒に動作するように構成することができる。少なくとも1つのデータ・ストア112は、さまざまなタイプのデータを記憶して維持するように構成することができる。たとえば、データ・ストア112は、ソーシャル・ネットワーキング・システム経由でライブ・ストリーミングされているさまざまなコンテンツを記述する情報、またはソーシャル・ネットワーキング・システムのユーザによって投稿されたコンテンツ・アイテムを記述する情報を記憶することができる。該情報には、たとえば、ライブ・コンテンツ・ストリームのために、およびオンデマンド・コンテンツ・アイテムのために生成されたフィンガープリント(たとえば、ビット・シーケンス)を含むことができる。いくつかの実施態様において、少なくとも1つのデータ・ストア112は、ソーシャル・ネットワーキング・システム(たとえば、図13のソーシャル・ネットワーキング・システム1330)に関連付けられている情報を記憶することができる。ソーシャル・ネットワーキング・システムに関連付けられている情報には、ユーザに関するデータ、ソーシャルつながり、ソーシャル対話、位置、ジオフェンス・エリア、地図、場所、イベント、ページ、グループ、投稿、コミュニケーション、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャル・グラフ、およびさまざまな他のタイプのデータを含むことができる。いくつかの実施態様において、少なくとも1つのデータ・ストア112は、ユーザ識別子、ユーザ情報、プロフィール情報、ユーザ指定の設定、ユーザが生成または投稿したコンテンツ、および他のタイプのユーザ・データ等、ユーザに関連付けられている情報を記憶することができる。
コンテンツ・プロバイダ・モジュール102は、ソーシャル・ネットワーキング・システム経由で投稿されたコンテンツ・アイテムへのアクセスをユーザに提供するように構成することができる。たとえば、ユーザは、ユーザのコンピューティング・デバイス上で稼働するソフトウェア・アプリケーション(たとえば、ソーシャル・ネットワーキング・アプリケーション)によって提供されるインタフェースと相互作用することができる。このインタフェースは、ソーシャル・ネットワーキング・システムにコンテンツ・アイテムを投稿する選択肢、またはアップロードする選択肢を含むことができる。コンテンツ・アイテムを投稿する場合、コンテンツ・アップロード・モジュール104を利用して、コンテンツ・アイテムを記述するデータを、コンピューティング・デバイスからソーシャル・ネットワーキング・システムに通信することができる。該コンテンツ・アイテムは、たとえば、テキスト、画像、音声および映像を含んでいてもよい。そして、ソーシャル・ネットワーキング・システムは、たとえば、1つまたは複数のニュース・フィード内を含め、ソーシャル・ネットワーキング・システム経由でコンテンツ・アイテムを提供することができる。いくつかの実施形態において、インタフェースは、ソーシャル・ネットワーキング・システム経由でコンテンツ・アイテムをライブ・ストリーミングするための選択肢を含むこともできる。ライブ・コンテンツ・ストリームを開始する場合、ライブ・ストリーム・モジュール106を利用して、ライブ・ストリーミングされるコンテンツを記述するデータを、コンピューティング・デバイスからソーシャル・ネットワーキング・システムに通信することができる。ライブ・ストリーム・モジュール106は、たとえば、リアル・タイム・メッセージング・プロトコル(RTMP)を含む、コンテンツのライブ・ストリーミングを可能にする、一般的に公知の任意の技術を利用することができる。
ソフトウェア・アプリケーションが提供するインタフェースを使用して、たとえば、コンテンツ・モジュール108を使用して、投稿されたコンテンツ・アイテムにアクセスすることもできる。たとえば、コンテンツ・モジュール108は、ユーザのニュース・フィード内にコンテンツ・アイテムを含むことができる。該コンテンツ・アイテムは、オンデマンドのコンテンツ・アイテム(例、ビデオ・オンデマンドまたは「VOD」)およびライブでストリーミングされているコンテンツを含んでいてもよい。この実施例では、ユーザは、ニュース・フィードをブラウジングしている間に、コンテンツ・アイテムにアクセスすることができる。別の実施例では、ユーザは、インタフェース経由で、コンテンツ・アイテムを検索することにより、コンテンツ・アイテムを投稿したユーザを検索することにより、および/またはコンテンツ・アイテムに対応する検索語を使用して、コンテンツ・アイテムにアクセスすることができる。一実施例において、ユーザは、ライブ・コンテンツ・ストリームを視聴する選択肢を選択してもよく、これに応じて、ソーシャル・ネットワーキング・システムは、ライブ・コンテンツ・ストリームに対応するデータをユーザのコンピューティング・デバイスに送信することができる。この実施例では、ソーシャル・ネットワーキング・システムは、たとえば、ライブ・コンテンツ・ストリームのパブリッシャがストリーミングを中止するときまで、またはユーザがライブ・コンテンツ・ストリームを中止する選択肢を選択する場合まで、ライブ・コンテンツ・ストリームに対応するデータを送信し続けることができる。コンテンツ照合モジュール110は、ソーシャル・ネットワーキング・システム経由でライブでストリーミングされているかまたはオンデマンドで利用できるコンテンツ・アイテム間の一致(例、著作権侵害)を特定するように構成することができる。コンテンツ照合モジュール110に関するさらなる詳細は、図2を参照して以下に記載する。
図2は、本開示の一実施形態に係る、コンテンツ照合モジュール202の一実施例を示す。いくつかの実施形態において、図1のコンテンツ照合モジュール110をコンテンツ照合モジュール202として実装することができる。図2に図示するように、コンテンツ照合モジュール202は、フィンガープリンティング・モジュール204、記憶モジュール206、照合モジュール208および通知モジュール210を含むことができる。
種々実施形態において、フィンガープリンティング・モジュール204は、コンテンツ・アイテムについてのそれぞれのフィンガープリントを決定または取得するように構成されている。たとえば、ストリームがソーシャル・ネットワーキング・システムによって受信されると、ライブ・コンテンツ・ストリームの1組のフィンガープリントが決定されてもよい。別の実施例では、コンテンツ・アイテムがソーシャル・ネットワーキング・システムにアップロードされた後に、コンテンツ・アイテムについて1組のフィンガープリントを決定することができる。いくつかの実施形態において、コンテンツ・アイテムをライブ・ストリーミングまたはアップロードしているパブリッシャは、コンテンツ・アイテムが保護されている、たとえば、著作権保護されていることを示す選択肢を選択してもよい。このような実施形態では、選択肢が選択されたことに応答して、ライブ・コンテンツ・ストリームまたはアップロードされたコンテンツ・アイテムのフィンガープリントを作成して、たとえば、参照データベース(例、図1のデータ・ストア112)に記憶することができる。この参照データベースに記憶されたフィンガープリントを使用して、ライブ・ストリームまたはビデオ・オンデマンドのいずれかとして、ソーシャル・ネットワーキング・システム経由で利用できる他のコンテンツ・アイテムが、保護されている、たとえば、著作権保護されていると特定されたコンテンツに一致する(例、抵触する)かどうかを決定することができる。
いくつかの実施形態において、フィンガープリンティング・モジュール204は、1つまたは複数の手法を使用してフィンガープリントを判別するようにそれぞれ構成されている1つまたは複数のフィンガープリンティング・サービスから、コンテンツ・アイテムについてのフィンガープリントを取得することができる。該フィンガープリントは、たとえば、コンテンツ・アイテムに対応する映像データ、コンテンツ・アイテムに対応する音声データ、またはその両方を使用して判断してもよい。フィンガープリンティング・モジュール204に関するさらなる詳細は、図3を参照して以下に記載する。
記憶モジュール206は、さまざまなコンテンツ・アイテムに関わる情報の記憶を管理するように構成することができる。種々実施形態において、記憶モジュール206は、コンテンツ・アイテムについて取得または生成されるフィンガープリントの記憶を最適化するように構成される。記憶モジュール206に関するさらなる詳細は、図4を参照して以下に記載する。
種々実施形態において、照合モジュール208は、コンテンツ・アイテム間の関係性の指標を決定するように構成されている。このような指標値を使用して、コンテンツ・アイテム(例、ライブ・コンテンツ・ストリームおよび/またはオンデマンド・コンテンツ・アイテム)が、全体または一部分において、ライブ・コンテンツ・ストリームの任意の部分、最近ライブでストリーミングされたコンテンツの任意の部分、および/またはソーシャル・ネットワーキング・システム経由でオンデマンドで利用できる映像の任意の部分に一致するかどうかを決定することができる。たとえば、照合モジュール208は、保護されたライブ・コンテンツ・ストリームの1つまたは複数の部分(例、フレーム)が候補ライブ・ストリームの1つまたは複数の部分(例、フレーム)に一致すると決定することができる。いくつかの実施形態において、照合モジュール208を利用して、不適切なまたは猥褻なコンテンツを含むとしてフラグを立てられた任意のコンテンツを含むコンテンツ・アイテムを、特定して分別することができる。照合モジュール208に関するさらなる詳細は、図5を参照して以下に記載する。
通知モジュール210は、保護されたコンテンツが複製されること(例、潜在的その他の著作権侵害)に対して、さまざまなアクションを取るように構成することができる。たとえば、第1コンテンツ・アイテム(例、保護されたライブ・コンテンツ・ストリーム)と第2コンテンツ・アイテム(例、候補ライブ・コンテンツ・ストリーム)との間のコンテンツ閾値一致度を決定すると、通知モジュール210は、候補ライブ・コンテンツ・ストリームの放送者に複製(例、潜在的な著作権侵害)を通知することができる。いくつかの実施形態において、放送者は、候補ライブ・コンテンツ・ストリームを終了するか、またはライブ・コンテンツ・ストリームを継続するかの選択肢を有する。このような実施形態では、ライブ・コンテンツ・ストリームを継続することにより、放送者は、候補ライブ・コンテンツ・ストリームをストリーミングする自身の権利を主張している。ある場合には、放送者が候補ライブ・コンテンツ・ストリームを終了する場合、パブリッシャからのアクションは必要なく、実施態様によって、パブリッシャには放送者のライブ・コンテンツ・ストリームを通知しても、または通知しなくてもよい。しかし、放送者が候補ライブ・コンテンツ・ストリームを継続することにする場合、通知モジュール210は、一致するコンテンツに関する情報をパブリッシャに提供することができる。いくつかの実施形態において、パブリッシャは、通知モジュール210によって提供されて、一致が見つかった候補ライブ・コンテンツ・ストリームのそれぞれの部分を特定するインタフェースにアクセスすることができる。パブリッシャはインタフェースにアクセスして、コンテンツ・アイテムの一致する部分を再生することができる。パブリッシャはインタフェースにアクセスして、ライブ・コンテンツ・ストリームおよび/またはアップロードされたコンテンツ・アイテムに複製侵害(例、著作権侵害)としてフラグを立てて、何のアクションも取らない(例、コンテンツ・アイテムの公正な使用のため)、または、たとえば、保護された(例、著作権保護された)部分の使用の許可を与えることもできる。いくつかの実施形態において、パブリッシャの保護コンテンツの侵害としてフラグを立てられたライブ・コンテンツ・ストリームおよび/またはアップロードされたコンテンツ・アイテムを、ソーシャル・ネットワーキング・システム経由でユーザにアクセス不可にする。いくつかの実施形態において、パブリッシャは、パブリッシャに一致が通知される前に満たされるべきさまざまな基準を指定する、一致ルールを作成することができる。たとえば、いくつかの実施形態において、パブリッシャは、一致タイプ(たとえば、音声、映像、映像のみ、音声のみ、または音声と映像の両方)を指定することができる。この実施例では、一致が一致タイプを満たす場合に、パブリッシャに一致が通知される。いくつかの実施形態において、パブリッシャは、地理的地域(たとえば、特定の都市、州、地域、国、世界中等)を指定することができる。この実施例において、一致するコンテンツが、指定の地理的地域から発信または放送された場合に、パブリッシャに一致が通知される。いくつかの実施形態において、パブリッシャは、1つまたは複数の一致条件と、その条件が満たされた場合に行うべきアクションとを指定することができる。1つの例示的な一致条件は、一致継続時間の設定に関わる。この実施例では、一致するコンテンツの時間長が一致継続時間を満たす(たとえば、一致継続時間より長い、一致継続時間と等しい、または一致継続時間より短い)場合に、パブリッシャに通知することができる。いくつかの実施形態において、パブリッシャは、一致長さ(たとえば、フレーム数)を指定することができ、一致するコンテンツが指定の一致長さを満たす場合に通知されることができる。いくつかの実施形態において、パブリッシャは、パブリッシャの保護コンテンツの使用が許可されている1つまたは複数の承認済みまたはホワイトリスト登録ユーザおよび/またはページを指定することができる。このような実施形態において、一致するコンテンツが、承認されていないかまたはホワイトリスト登録がされていないユーザまたはページによって投稿された場合に、パブリッシャに通知される。いくつかの実施形態において、パブリッシャは、ユーザおよび/またはページをブラックリスト登録することができ、一致するコンテンツが、ブラックリスト登録ユーザから発信される場合、および/またはブラックリスト登録ページ経由で放送される場合に通知されることができる。いくつかの実施形態において、パブリッシャは、一致ルールが満たされたときに行うべき1つまたは複数のアクションを指定することができる。たとえば、パブリッシャは、1つまたは複数の一定のルールを満たす一致に対してアクションを取らないことを指定することができる。別の実施例では、パブリッシャは、一致が1つまたは複数の一定のルールを満たすときに通知またはレポートをパブリッシャに送付するよう指示することができる。上述の一致ルールおよび条件は、例として記載されており、いくつかの実施形態においては、パブリッシャは、他の制約を使用して一致ルールを作成することができる。一般に、上述の例示的な一致ルールおよび/または条件のいずれも、他のルールおよび/または条件と組み合わせることができる。
図3は、本開示の一実施形態に係る、フィンガープリンティング・モジュール302の一実施例を示す。いくつかの実施形態において、図2のフィンガープリンティング・モジュール204をフィンガープリンティング・モジュール302として実施することができる。図3に図示するように、フィンガープリンティング・モジュール302は、音声フィンガープリンティング・モジュール304、映像フィンガープリンティング・モジュール306、サムネイル・フィンガープリンティング・モジュール308、分散型フィンガープリンティング・モジュール310および特徴ベースのフィンガープリンティング・モジュール312を含むことができる。
音声フィンガープリンティング・モジュール304は、コンテンツ・アイテムについての音声フィンガープリントを取得または生成するように構成することができる。このような音声フィンガープリントは、一般的に公知の多様な手法を使用して生成することができる。いくつかの実施形態において、音声フィンガープリンティング・モジュール304は、コンテンツ・アイテムに対応する音声信号から音声フィンガープリントを取得または生成する。音声信号は、ある時点における音声信号の一部分にそれぞれ対応する1つまたは複数の別々の音声フレームから構成されてもよい。各音声フレームは、ある時間の長さ(例、32ミリ秒、64ミリ秒、128ミリ秒等)にわたる音声信号の一部分に対応することができる。いくつかの実施形態において、各音声フレームは、固定時間長に対応する。たとえば、各音声フレームは、音声信号の任意の部分を表し、長さを64ミリ秒とすることができる。音声信号から抽出され得る特徴のいくつかの例には、周波数ドメインの音響特徴(例、音声信号の振幅スペクトルで計算されるスペクトル特徴)、音声信号のメル周波数ケプストラム係数(MFCC:Mel−frequency cepstral coefficient)、音声信号のスペクトル帯域幅およびスペクトル平坦度、音声信号のスペクトル変動、極値周波数および無声周波数(silent frequencies)を含むことができる。また、音声信号から抽出される音声特徴には、音声信号のテクスチャウィンドウにおける特徴ベクトルの平均、標準偏差および共分散行列など、時間ドメインの特徴を含んでもよい。前述した実施例とは別に、または追加して、たとえば、ある期間にわたる音声信号の音量変化、および音声信号が圧縮されている場合の音声信号の圧縮フォーマットを含め、他の特徴を抽出してもよい。
音声フィンガープリンティング・モジュール304は、音声信号の音声フレームのうちの1つまたは複数から音声フィンガープリントを生成することができる。いくつかの実施形態において、音声信号の任意の部分に対応する音声フィンガープリントは、音声信号のその部分によってキャプチャされたさまざまな音響特性および/または知覚特性に基づいて生成される。1フレームに関して計算される音声フィンガープリントは、音声フィンガープリントが対応する、波形またはフレームを表す1組のビット(例、32ビット、64ビット、128ビット等)として表すことができる。いくつかの実施形態において、音声フィンガープリンティング・モジュール304は、音声信号を前処理し、音声信号をあるドメイン(例、時間ドメイン)から別のドメイン(例、周波数ドメイン)に変換し、変換された音声信号を濾波して、濾波した音声信号から音声フィンガープリントを生成する。いくつかの実施形態において、音声フィンガープリントは離散コサイン変換(DCT)を使用して生成される。いくつかの実施形態において、第1音声フィンガープリントと第2音声フィンガープリントとの間の一致は、第1音声フィンガープリントに対応する1組のビットと、第2音声フィンガープリントに対応する1組のビットとの間のハミング距離が閾値を満たすときに、決定することができる。このような音声フィンガープリントの生成および照合を説明するさらなる詳細は、米国特許出願第14/153404号明細書および第14/552039号明細書に記載されており、両特許出願を参照により本明細書に組み込む。コンテンツ・アイテムについて生成される音声フィンガープリントは、記憶されて、一致するコンテンツを特定するために使用することができる。いくつかの例では、コンテンツ・アイテムの一部分は無音を含んでもよく、すなわち、知覚できる音声がなくてもよい。たとえば、コンテンツ・アイテムの一部分がそのコンテンツ・アイテムに対応する音声波形に基づいて聞き取れないとの決定が行われることがある。いくつかの実施形態において、無音コンテンツを含む部分について生成される音声フィンガープリントは、たとえば、その音声フィンガープリントのビット文字列をすべてゼロに変更することによってフラグを立てることができる。このような実施形態では、無音とマークされたコンテンツ・アイテムの部分は、フィンガープリントの照合を行うときにスキップすることができる。
いくつかの実施形態において、各音声フィンガープリントは所定のフレーム・レート(例、毎秒8フレーム、毎秒16フレーム、毎秒32フレーム等)に対応する。たとえば、毎秒16フレームでは、コンテンツ・アイテムの音声フィンガープリントは、一連のフレーム(例、16音声フレーム)に対応することができ、コンテンツ・アイテム内の1秒の音声を表すことができる。この実施例では、音声フィンガープリントに対応する16フレームはそれぞれ、1組の64ビットまたは64ビットの整数として表してもよい。いくつかの実施形態において、音声フィンガープリント、映像フィンガープリントおよびサムネイル・フィンガープリントは、同じ所定のフレーム・レートでフィンガープリンティング・モジュール302によって生成される。音声フィンガープリントの記憶および検索を説明するさらなる詳細は、図4を参照して以下に記載する。
映像フィンガープリンティング・モジュール306は、コンテンツ・アイテムについて映像フィンガープリントを取得または生成するように構成することができる。いくつかの実施形態において、映像フィンガープリントを計算するとき、映像フィンガープリンティング・モジュール306は、コンテンツ・アイテムの1組の映像フレーム(例、8フレーム、16フレーム、32フレーム等)を記述するデータを、時間ドメインから周波数ドメインに変換する。たとえば、1組のフレームは、コンテンツ・アイテム内の1組の連続フレーム(例、フレーム1からフレーム8、フレーム1からフレーム16等)にしてもよい。このような実施形態では、映像フィンガープリンティング・モジュール306は、フレームを周波数ドメインに変換するために使用するべき1組のフレームについてのそれぞれの特徴値を決定する。フレームについての特徴値は、フレームに対応する1つまたは複数の特徴に基づいて決定することができる。一実施例において、フレームについての特徴値は、フレームの明るさを計算することによって、たとえば、フレーム内の画素の値を平均化することによって決定することができる。別の実施例では、フレームについての特徴値は、フレーム内の配色成分に基づいて、たとえば、RGBカラー・モデルおよび/またはYUV色空間に基づいて決定することができる。1組のフレームについての各特徴値は、アレイまたはバッファに含めることができる。これらの特徴値は、さらに、1つまたは複数の他のドメインに変換することができる。一般に、どのタイプの変換も適用することができる。たとえば、いくつかの実施形態において、特徴値に時間・周波数変換を適用する。いくつかの実施形態において、特徴値に空間・周波数変換を適用する。いくつかの実施形態において、高速フーリエ変換(FFT)、離散コサイン変換(DCT)、またはその両方を適用することによって、特徴値は別のドメインに変換される。一旦変換されたら、1組のフレームについての経時的な値は、周波数成分の分布として表される。いくつかの実施形態において、フレーム内のオブジェクトはセグメント化されて、これらのセグメントに変換を適用する。いくつかの実施形態において、フレーム内の領域をセグメント化して、これらのセグメントに変換を適用する。
いくつかの実施形態において、各映像フィンガープリントは、所定のフレーム・レート(例、毎秒8フレーム、毎秒16フレーム、毎秒32フレーム等)に対応する。たとえば、毎秒16フレームでは、コンテンツ・アイテムの映像フィンガープリントは、一連の16フレームに対応することができ、コンテンツ・アイテム内の1秒の映像を表すことができる。この実施例では、映像フィンガープリントに対応する16フレームのそれぞれは、1組の64ビットまたは64ビットの整数として表してもよい。種々実施形態において、映像フィンガープリンティング・モジュール306は、フィンガープリントされるコンテンツ・アイテムが異なるフレーム・レートをもっていたとしても、映像フィンガープリントが所定のフレーム・レートに対応するように、一般的に公知の補間手法を行うことができる。このような補間は、1組のフレームについて決定された空間成分を使用して、周波数ドメインで行うことができる。たとえば、2つのフレームの補間は、閾値を超える高い周波数係数を破棄しながら(例、ローパス・フィルタ)、残りの低い周波数係数を残すことによって行うことができる。
映像フィンガープリンティング・モジュール306は、これらの低周波数係数を量子化して、映像フィンガープリントに含まれるフレームに対応する1組のビットを生成することができる。前述したように、いくつかの実施形態において、映像フィンガープリントはフレームのシーケンスに対応し、各フレームは1組の64ビットまたは64ビットの整数として表される。いくつかの実施形態において、8点FFTを1組のフレームに適用すると、映像フィンガープリンティング・モジュール306は、低周波数成分のうちの4つを量子化して、1組のフレーム内の各フレームを表すそれぞれ64ビットを生成することができる。次の映像フィンガープリントを計算するために、映像フィンガープリンティング・モジュール306は、1組の中の最初のフレームについての値を破棄し、コンテンツ・アイテムの次のフレームについての対応する値を追加することによって、1組のフレームを1つシフトすることができる。したがって、たとえば、当初の1組のフレームがフレーム1から8についての値を含んでいた場合、シフトされた1組のフレームは、フレーム2から9についての値を含むことになる。映像フィンガープリンティング・モジュール306は、さらに、前述のようにシフトされた1組のフレームを使用して、別の映像フィンガープリントを生成することができる。種々実施形態において、映像フィンガープリンティング・モジュール306は、1組のフレームをシフトし続けて、コンテンツ・アイテムの最後のフレーム(例、ライブ・コンテンツ・ストリームの最後またはオンデマンド・コンテンツ・アイテム・ファイルの最後)に達するまで映像フィンガープリントを生成する。したがって、このような実施形態では、フィンガープリントは、フィンガープリントされるコンテンツ・アイテムの重複フレームに対応する。たとえば、第1フィンガープリントはフレーム1から16までと決定することができ、第2フィンガープリントはフレーム2から17までと決定することができ、第3フィンガープリントはフレーム3から18までと決定することができ、以下同様である。
いくつかの実施形態において、1つの特徴値に依拠するのではなく、1組のフレーム内の各フレームについて特徴値のベクトルを決定し、これらのベクトルを使用して1組の映像フレームを周波数ドメインに変換する。たとえば、映像フィンガープリントについて決定された特徴ベクトルは、フレームに対応するさまざまな特徴の値を記述することができる。いくつかの実施形態において、特徴値は、フレーム内の1つまたは複数のグループの画素間の変化(例、明るさの変化、配色の変化等)を記述することができる。このような実施形態において、図6の実施例に示されるように、第1領域606および第1領域606内の第2領域608は、フレーム602内の画素604の周りに特定することができる。第1領域606および第2領域608は、いずれも、1組のセクター(例、6、8、10等のセクター)にセグメント化することができる。たとえば、図6では、第1領域606がセクターa1、a2、a3、a4、a5、a6、a7およびa8に分割されているのに対し、第2領域608はセクターb1、b2、b3、b4、b5、b6、b7およびb8に分割されている。各セクターについて特徴値を計算することができる。これらの特徴値は、マトリックス610に記憶することができる。次に、各内側セクター(例、b1)についての特徴値とそれに対応する外側セクター(例、a1)についての特徴値との差を計算する。これらの差は、マトリックス612に記憶することができる(例、f1、f2、…、f8)。いくつかの実施形態において、このような差を、フレーム602内の各画素について計算し、それぞれの差を合計してマトリックス612を出す。マトリックス612は、前述したように処理される1組の映像フレーム内の各フレームについて生成することができる。その結果、いくつかの実施形態において、1組の映像フレーム内の各フレームは、1組の値(例、8個の値)の対応する特徴ベクトルによって表される。1組の映像フレームについての特徴値を、必要なら、さらに補間し、前述したように、たとえば、離散コサイン変換および/または高速フーリエ変換を適用することによって、周波数ドメインに変換することができる。いくつかの実施形態において、特徴ベクトルに含まれる特徴値の一部または全部は、一般的に公知の特徴検出アプローチ、たとえば、方向付きFASTと回転BRIEF(ORB:Oriented FAST and Rotated BRIEF)を適用することによって決定される。
いくつかの実施形態において、映像フィンガープリンティング・モジュール306は、各フレームについて複数のフィンガープリントを生成する。たとえば、いくつかの実施形態において、映像フィンガープリンティング・モジュール306は、フィンガープリントが作成されるフレームを上半分と下半分とに水平に分割する。このような実施形態では、フレームの上半分について第1フィンガープリントが生成され、フレームの下半分について第2フィンガープリントが生成される。たとえば、第1フィンガープリントおよび第2フィンガープリントは、それぞれ32ビットを使用して表すことができる。一実施例において、このようなアプローチを使用して、スクロールしているテキスト(例、エンドクレジット)を含むコンテンツ・アイテムを区別することができる。当然、フレームは多数の異なる方法で分割してもよく(例、垂直、斜め等)、分割された部分の各々について、それぞれのフィンガープリントを生成することができる。いくつかの実施形態において、コンテンツのフィンガープリントを作成する前に、映像フィンガープリンティング・モジュール306は、コンテンツに関連付けられているすべての色情報を除去し、コンテンツを、白黒、またはグレースケール表現に変換する。いくつかの例では、映像内のフレームを、そのオリジナルの状態から反転してもよい(例、水平に反転、垂直に反転等)。このようなフレームの反転は、映像内の一致するコンテンツが特定されないように行うことができる。したがって、いくつかの実施形態において、映像のフレームのフィンガープリントを作成するとき、映像フィンガープリンティング・モジュール306は、そのオリジナルの状態のフレームについてのフィンガープリントと、1つまたは複数のそれぞれ反転された状態(例、水平に反転、垂直に反転等)のフレームについての1つまたは複数の個別のフィンガープリントとを生成する。コンテンツ・アイテムについて生成される映像フィンガープリントは、記憶して、一致するコンテンツを特定するために使用することができる。映像フィンガープリントの記憶および検索を説明するさらなる詳細は、図4を参照して以下に記載する。
サムネイル・フィンガープリンティング・モジュール308は、コンテンツ・アイテムについてのサムネイル・フィンガープリント、または画像フィンガープリントを取得または生成するように構成することができる。いくつかの実施形態において、コンテンツ・アイテムについてサムネイル・フィンガープリントを生成するとき、サムネイル・フィンガープリンティング・モジュール308は、所定の時間間隔(例、1秒ごと、3秒ごと等)でコンテンツ・アイテム内のフレームのサムネイル・スナップショットをキャプチャする。このようなサムネイル・スナップショットを使用して、一般的に公知の画像フィンガープリンティング手法を使用して対応するサムネイル・フィンガープリントを生成することができる。いくつかの実施形態において、各サムネイル・フィンガープリントは、1組のビット(例、32ビット、64ビット、128ビット等)を使用して表される。いくつかの実施形態において、各所定の時間間隔で、サムネイル・フィンガープリンティング・モジュール308は、1つもしくは複数のスケールおよび/または解像度で、複数のサムネイル・スナップショットをキャプチャする。このような実施形態では、複数のサムネイル・スナップショットについて、個別のフィンガープリントを生成することができる。このような複数のフィンガープリントを使用して、評価するコンテンツ内に歪みがあっても、2つのコンテンツ・アイテム間で一致するサムネイルを特定することができる。コンテンツ・アイテムについて生成されるサムネイル・フィンガープリントは、記憶して、一致するコンテンツを特定するために使用することができる。サムネイル・フィンガープリントの記憶および検索を説明するさらなる詳細は、図4を参照して以下に記載する。
いくつかの実施形態において、コンテンツ・アイテムのフィンガープリントを作成しようとするとき、フィンガープリンティング・モジュール302は、そのコンテンツ・アイテムについて音声フィンガープリント、映像フィンガープリント、および/またはサムネイル・フィンガープリントを生成する。このようなフィンガープリントは、単独で、または組み合わせて使用して、フィンガープリントを作成されたコンテンツ・アイテムに一致するコンテンツの部分(例、音声、映像、サムネイル)を含む、他のコンテンツ・アイテムを特定することができる。いくつかの実施形態において、オンデマンド・コンテンツ・アイテムは、オンデマンド・コンテンツ・アイテムに対応するファイルが利用できるようになるかまたはたとえばコンテンツ・プロバイダ・システム(例、ソーシャル・ネットワーキング・システム)にアップロードされるとすぐに、フィンガープリントを作成することができる。いくつかの実施形態において、ライブ・コンテンツ・ストリームは、ライブ・コンテンツ・ストリームを記述するデータをコンテンツ・プロバイダ・システムが受信するとすぐに、フィンガープリントを作成することができる。
いくつかの実施形態において、フィンガープリンティング・モジュール302は、コンテンツ・プロバイダ・システムに実装される。このような実施形態では、コンテンツ・アイテムのフィンガープリント作成は、コンテンツ・アイテムを記述するデータが受信された後で、コンテンツ・プロバイダ・システムによって行われる。いくつかの実施形態において、フィンガープリンティング・モジュール302は、ユーザ・デバイスに実装される。このような実施形態では、コンテンツ・アイテムのフィンガープリント作成は、コンテンツ・アイテムを記述するデータがコンテンツ・プロバイダ・システムに送信されると、ユーザ・デバイスによって行われる。いくつかの実施形態において、分散型フィンガープリンティング・モジュール310は、異なるタイプのフィンガープリントがユーザ・デバイスおよびコンテンツ・プロバイダ・システムによって生成されるように構成される。たとえば、いくつかの実施形態において、分散型フィンガープリンティング・モジュール310は、ユーザ・デバイスに対して、コンテンツ・プロバイダ・システムに提供されるコンテンツ・アイテムについて、1つまたは複数のタイプのフィンガープリント(例、音声フィンガープリントおよび/またはサムネイル・フィンガープリント)を生成するように命令することができる。このような実施形態では、分散型フィンガープリンティング・モジュール310は、コンテンツ・プロバイダ・システムに対して、コンテンツ・アイテムが受信されると、1つまたは複数の異なるタイプのフィンガープリント(例、映像フィンガープリント)を生成するように命令することができる。このような分散型フィンガープリンティングは、コンピューティング・リソースの、より最適な利用を可能にすることができる。
いくつかの実施形態において、分散型フィンガープリンティング・モジュール310は、ユーザ・デバイスに対して、コンテンツ・プロバイダ・システムに提供されるコンテンツ・アイテムについて、1つまたは複数の第1タイプのフィンガープリント(例、音声フィンガープリント)を生成して送信するように命令することができる。このような実施形態では、1つまたは複数の第1タイプのフィンガープリント(例、音声フィンガープリント)を使用して、コンテンツ・アイテムと参照コンテンツ・アイテムとの間の一致が特定される場合、分散型フィンガープリンティング・モジュール310は、ユーザ・デバイスに対して、追加のタイプのフィンガープリント(例、映像フィンガープリントおよび/またはサムネイル・フィンガープリント)を使用して一致したコンテンツをさらに検証するために、提供されるコンテンツ・アイテムについて1つまたは複数の第2タイプのフィンガープリント(例、映像フィンガープリントおよび/またはサムネイル・フィンガープリント)の生成および送信を開始するように命令することができる。種々実施形態において、フィンガープリント(例、音声フィンガープリント、映像フィンガープリント、サムネイル・フィンガープリント)は、フィンガープリントがそこから決定されたそれぞれのコンテンツ・アイテムに関するさまざまな情報を提供するメタデータに関連付けることもできる。このような情報は、コンテンツ・アイテムに対応する、タイトル、説明、キーワードまたはタグを含むことができる。いくつかの実施形態において、情報は、たとえば、一般的に公知の光学文字認識(OCR)手法を使用して、コンテンツ・アイテム(またはコンテンツ・アイテムに対応するフレーム)から抽出した任意のテキストを含むことができる。
種々実施形態において、特徴ベースのフィンガープリンティング・モジュール312は、フィンガープリントが作成されるコンテンツ・アイテムの各フレーム(または1組のフレーム)について、1つまたは複数のタイプ(例、音声、映像、サムネイル等)の複数のフィンガープリントを生成するように構成されている。このようなフィンガープリントは、上記説明したアプローチのいずれか、および/またはコンテンツのフィンガープリントを作成するために一般的に公知の任意の手法を使用して生成することができる。
いくつかの実施形態において、特徴ベースのフィンガープリンティング・モジュール312は、フレーム(または1組のフレーム)に対応する異なる組の特徴(または特徴値)を使用して、フレーム(または1組のフレーム)について複数のフィンガープリントを生成することができる。例えば、図10の実施例に示すように、特徴ベースのフィンガープリンティング・モジュール312は、フレーム1002から抽出した第1組の特徴を使用して、コンテンツ・アイテム内のフレーム1002についての第1映像フィンガープリント1004を生成し、フレーム1002から抽出された第2組の特徴を使用して、同じフレーム1002についての第2映像フィンガープリント1006を生成することができる。第1フィンガープリントおよび第2フィンガープリントを生成するために使用される特徴の数は、実施態様に応じて変えることができる。いくつかの実施形態では、第1フィンガープリント1004は、候補フレームを検索するために、例えば、特定するために、使用されるのに対し、第2フィンガープリント1006は、特定された候補フレームのそれぞれを検証し、例えば、評価し、フレーム1002と候補フレームとの間に一致が存在するかどうかを決定するために使用される。このような実施形態において、第1フィンガープリント1004は、フィンガープリント付きフレーム1002(または1組のフレーム)の粗表現を提供することができるのに対し、第2フィンガープリント1006は、フィンガープリント付きフレーム1002(または1組のフレーム)の精巧でより詳細な表現を提供することができる。その結果、第1フィンガープリント1004は、第2フィンガープリント1006よりもサイズをコンパクトにすることができるので、コンピューティング・リソースが候補フレームを特定できる速度の向上を促進することができる。
いくつかの実施形態において、特徴ベースのフィンガープリンティング・モジュール312は、フレーム(または1組のフレーム)の異なる部分を使用して、フレーム(または1組のフレーム)について複数のフィンガープリントを生成することができる。例えば、特徴ベースのフィンガープリンティング・モジュール312は、第1領域に対応する特徴を使用して、コンテンツ・アイテム内のフレームについての第1映像フィンガープリントを生成し、第2領域に対応する特徴を使用して、フレームについての第2映像フィンガープリントを生成することができる。一実施例において、第1領域は、サブタイトル(または、見出し、タイトル、名称等の他のテキスト)が提示される領域に対応してもよく、第2領域は、コンテンツ・アイテムの残りの主題が提示される領域に対応してもよい。別の実施例では、第1領域は、ロゴまたはウォーターマークが提示される領域に対応してもよく、第2領域は、コンテンツ・アイテムの残りの主題が提示される領域に対応してもよい。例えば、図11の実施例に示されるように、特徴ベースのフィンガープリンティング・モジュール312は、アバターが提示される領域1108に対応する特徴に基づいて、コンテンツ・アイテム内のフレーム1102についての第1映像フィンガープリント1104を生成し、フレーム1102の残りの領域1110に対応する特徴に基づいて、同じフレーム1102についての第2映像フィンガープリント1106を生成することができる。述べたように、第1フィンガープリントは、候補フレームを検索するために、例えば、特定するために、使用することができるのに対し、第2フィンガープリントは、候補フレームのそれぞれを検証し、例えば、評価し、フレーム間に一致が存在するかどうかを決定するために使用することができる。したがって、このような実施形態では、第1フィンガープリントは、フィンガープリント付きフレーム(または1組のフレーム)のコンパクトな表現を提供することができるのに対し、第2フィンガープリントは、フィンガープリント付きフレーム(または1組のフレーム)のより詳細な表現を提供することができるので、コンピューティング・リソースが候補フレームを特定できる速度の向上を促進することができる。
いくつかの実施形態において、特徴ベースのフィンガープリンティング・モジュール312は、フレーム(または1組のフレーム)内で検出された1つまたは複数のオブジェクトに基づいて、フレーム(または1組のフレーム)について複数のフィンガープリントを生成することができる。例えば、フレーム内でキャプチャされるさまざまなオブジェクト(例、ランドマーク、関心地点、人の特徴等)を認識するように、機械学習分類器をトレーニングすることができる。別の実施例では、フレーム内でキャプチャされるさまざまなオブジェクトの音(例、霧笛、ベル、人の声等)を認識するように、機械学習分類器をトレーニングすることができる。種々実施形態において、このような分類器を使用して、フレーム内のオブジェクトを特定することができる。特定されたオブジェクトに基づいて、特徴ベースのフィンガープリンティング・モジュール312は、1つまたは複数の第1オブジェクトに対応する特徴を使用して、コンテンツ・アイテム内のフレーム(または1組のフレーム)についての第1映像フィンガープリントを生成し、1つまたは複数の第2オブジェクトに対応する特徴を使用して、フレーム(または1組のフレーム)についての第2映像フィンガープリントを生成することができる。述べたように、いくつかの実施形態では、第1フィンガープリントは、候補フレームを検索するために、例えば、特定するために、使用することができるのに対し、第2フィンガープリントは、候補フレームのそれぞれを検証し、例えば、評価し、フレーム間に一致が存在するかどうかを決定するために使用することができる。
種々実施形態において、複数のフィンガープリントのうちの1つまたは複数は、フィンガープリントがそこから決定されたそれぞれのコンテンツ・アイテムに関するさまざまな情報を提供するメタデータに関連付けることもできる。このような情報には、コンテンツ・アイテムに対応するタイトル、説明、キーワードまたはタグを含めることができる。フィンガープリントに関連付けられるメタデータは、フィンガープリントを生成するために使用された特徴に応じて変えることができる。例えば、フレーム内で特定された第1オブジェクトに基づいて生成された第1映像フィンガープリントは、第1オブジェクトを特定するメタデータに関連付けることができるのに対し、フレーム内で特定された第2オブジェクトに基づいて生成された第2映像フィンガープリントは、第2オブジェクトを特定するメタデータに関連付けることができる。いくつかの実施形態において、フィンガープリントに関連付けられるメタデータは、フィンガープリント間の一致を検証するときに信号として使用される。一般に、このようなアプローチを使用して生成された複数のフィンガープリントは、図4を参照して説明されるように記憶し、検索することができる。いくつかの実施形態において、複数のデータ・ストア(例、インデックス、転置インデックス等)を使用して、複数のフィンガープリントを記憶してもよい。例えば、いくつかの実施形態では、コンテンツ・アイテムについて生成された第1組の映像フィンガープリントを第1転置インデックスに記憶するのに対し、コンテンツ・アイテムについて生成された第2組の映像フィンガープリントを第2転置インデックスに記憶することができる。図5を参照して説明するように、複数のフィンガープリントを使用してフレームを照合することができる。
図4は、本開示の一実施形態に係る、記憶モジュール402の一実施例を示す。いくつかの実施形態において、図2の記憶モジュール206を記憶モジュール402として実施することができる。図4に図示するように、記憶モジュール402は、インデックス作成モジュール404および最適化モジュール406を含むことができる。
インデックス作成モジュール404は、コンテンツ・アイテムについて生成されるフィンガープリント(例、音声フィンガープリント、映像フィンガープリント、サムネイル・フィンガープリント)を記憶するように構成することができる。一般に、このようなフィンガープリントは、データ記憶および検索のための一般的に公知の任意のアプローチを使用して記憶してもよい。いくつかの実施形態において、ライブ・コンテンツ・ストリームについて生成されるフィンガープリントがライブ参照データベースに記憶されるのに対し、オンデマンド・コンテンツ・アイテムについて生成されるフィンガープリントは静的参照データベースに記憶される。いくつかの実施形態において、閾値期間内(例、直近24時間以内、直近48時間以内等)に提供された(例、ストリームおよび/またはアップロードされた)コンテンツ・アイテム(例、ライブ・コンテンツ・ストリームおよびオンデマンド・コンテンツ・アイテム)についてのフィンガープリントがリアルタイム参照データベースに記憶されるのに対し、この閾値期間を超えて提供されたコンテンツ・アイテムについてのフィンガープリントは静的参照データベースに記憶される。このような実施形態では、記憶モジュール402は、コンテンツ・アイテムについてのフィンガープリント・データを、必要に応じて、リアルタイム参照データベースから静的参照データベースに移動し、閾値期間に基づいた2つのデータベース間のフィンガープリント・データの分別を満足する。
いくつかの実施形態において、インデックス作成モジュール404は、フィンガープリント・データを1つまたは複数のデータ構造に記憶する。使用されるデータ構造は、フィンガープリント・データの記憶および処理に利用できるコンピューティング・リソースによって変えてもよい。一実施例では、ある組のコンピューティング・リソースがインデックス・データ構造の使用を正当化し得るのに対し、別の組のコンピューティング・リソースは、転置インデックス・データ構造の使用を正当化し得る。たとえば、音声フィンガープリントは第1転置インデックス・データ構造に記憶することができ、映像フィンガープリントは第2転置インデックス・データ構造に記憶することができ、サムネイル・フィンガープリントは第3転置インデックス・データ構造に記憶することができる。述べたように、ライブ・コンテンツ・ストリームおよびオンデマンド・コンテンツ・アイテムについて生成されるフィンガープリントを記憶するために、個別の転置インデックス・データ構造を使用してもよい。図7は、例示的な転置インデックス・データ構造702を示す。この実施例では、転置インデックス702は、1組のビン704を含む。各ビンは、そのビンにハッシュ化された1組のフィンガープリント付きフレームを参照することができる。たとえば、フィンガープリント付きフレーム708および710は、ともにビン706にハッシュ化されたものである。
述べたように、各フィンガープリントは1組のフレームに対応させることができ、各フレームは、1組のビット、たとえば、64ビットまたは整数として表すことができる。いくつかの実施形態において、フィンガープリント付きフレームを転置インデックス702に挿入するとき、フィンガープリント付きフレームに対応する部分を使用して、転置インデックス702内のビン704のうちの1つにハッシュ化する。たとえば、フィンガープリント付きフレーム708に対応する64ビットの最初の24ビット(例、インデックス部分)は、ビン706にハッシュ化することができる。フィンガープリント付きフレーム708は、次に、ビン706にハッシュ化されたフィンガープリント付きフレームのリスト712に追加される。いくつかの実施形態において、フィンガープリント付きフレーム708をリスト712に追加するとき、ビットの残りの部分が記憶される。このように、この実施例では、フィンガープリント付きフレーム708に対応する64ビットの残りの40ビットが記憶される。いくつかの実施形態において、フィンガープリント付きフレーム708は、フィンガープリント付きフレームがそこから生成されたコンテンツ・アイテムを記述する情報(例、ファイル識別子、ストリーム識別子等)と、フィンガープリントがそこから生成されたコンテンツ・アイテムの部分を示すオフセット(例、タイム・スタンプ、フレーム番号等)とともに記憶される。
いくつかの実施形態において、フィンガープリントの記憶および照合に、複数の転置インデックスを利用することができる。たとえば、フィンガープリント付きフレームに対応するビットの第1部分は、第1転置インデックスのビンの1つにハッシュ化することができる。第1転置インデックス内のこのビンは、第2転置インデックスを参照することができる。この実施例では、フィンガープリント付きフレームに対応するビットの第2部分は、第2転置インデックス内のビンにハッシュ化されて、そのビンにハッシュ化されたフィンガープリント付きフレームのリストを特定することができる。フィンガープリント付きフレームに対応する1組のビット(1組のビット全体またはビットの残りの部分)を、第2転置インデックス内のこのリストに追加することができる。たとえば、64ビットのフィンガープリント付きフレームの最初の24ビットは、第1転置インデックス内のビンにハッシュ化されて、第2転置インデックスを特定することができる。この実施例では、64ビットのフィンガープリント付きフレームのうちの次の20ビットは、第2転置インデックス内のビンにハッシュ化されて、そのビンによって参照されるフィンガープリント付きフレームのリストを特定することができる。ここで、64ビットのフィンガープリント付きフレームの残りの20ビット(または64ビット全部)をリストに記憶することができる。フィンガープリント付きフレームは、フィンガープリント付きフレームがそこから生成されたコンテンツ・アイテムを記述する情報(例、ファイル識別子、ストリーム識別子等)と、フィンガープリント付きフレームがそこから生成されたコンテンツ・アイテムの部分を示すオフセット(例、タイム・スタンプ、フレーム番号等)とともに、第2転置インデックスに記憶される。
最適化モジュール406は、フィンガープリントの記憶および照合に利用される転置インデックス・データ構造を管理するように構成することができる。たとえば、いくつかの実施形態において、最適化モジュール406は、コンテンツ・プロバイダ・システムから除去されたコンテンツ・アイテムに対応するエントリを除去するために、転置インデックスを自動的に更新またはクリーン・アップすることができる。いくつかの実施形態において、最適化モジュール406は、閾値期間にわたって記憶されたエントリを除去するために、転置インデックスを自動的に更新し、またはクリーン・アップすることができる。いくつかの実施形態において、最適化モジュール406は、所望の編成を得るために、転置インデックスを並べ替えることができる。一実施例において、最適化モジュール406は、同様なフィンガープリント付きフレーム(例、互いの閾値ハミング距離であるフィンガープリント付きフレーム)を同じ(または付近の)チャンクまたはビンに集めるかまたは編成するように、転置インデックス内のエントリを並べ替えることができる。
図5は、本開示の一実施形態に係る、照合モジュール502の一実施例を示す。いくつかの実施形態において、図2の照合モジュール208を照合モジュール502として実装することができる。図5に図示するように、照合モジュール502は、フィンガープリント照合モジュール504、組み合わせ照合モジュール506、ライブ処理モジュール508および歪みモジュール510を含むことができる。
フィンガープリント照合モジュール504は、1つまたは複数の第2(または参照)コンテンツ・アイテム内のコンテンツの部分に一致する第1(またはテスト)コンテンツ・アイテム内のコンテンツの部分を特定するように構成することができる。種々実施形態において、フィンガープリント照合モジュール504は、テスト・コンテンツ・アイテムに対応する1組のフィンガープリント(例、音声フィンガープリント、映像フィンガープリント、サムネイル・フィンガープリント)を使用してテスト・コンテンツ・アイテムを評価することができ、これらのフィンガープリントを使用して、分析するべき1つまたは複数の参照コンテンツ・アイテムを特定することができる。このような参照コンテンツ・アイテムは、保護(または著作権保護)されているものとして特定または指定されたものであってもよい。一般に、参照コンテンツ・アイテム内のコンテンツに一致するコンテンツを含むテスト・コンテンツ・アイテムにフラグを立てることができ、さまざまなアクションを取ることができる。参照コンテンツ・アイテムは、たとえば、前述したように、転置インデックス・データ構造を使用して特定することができる。
たとえば、図8Aに図示するように、フィンガープリント照合モジュール504は、テスト・コンテンツ・アイテムから生成された映像フィンガープリントを取得することができる。映像フィンガープリントは、1組のフレーム(例、16フレーム)に対応することができ、各フレームは、1組のビット(例、64ビット)として表すことができる。いくつかの実施形態において、フィンガープリント内のフレーム804の第1部分(例、最初の24ビット)を、転置インデックス802内のビン806にハッシュ化するために使用することができ、フレーム804の第2部分(例、残りの40ビット)を、フレーム間の一致を検証するために使用することができる。述べたように、転置インデックス802は、1組のビンを含み、各ビンは、そのビンにハッシュ化された1組のフィンガープリント付きフレームを参照することができる。たとえば、図8Aでは、ビン806は、フィンガープリント付きフレーム808およびフィンガープリント付きフレーム810を参照する。この実施例では、フィンガープリント付きフレーム808およびフィンガープリント付きフレーム810は、ともに一致候補である。フィンガープリント照合モジュール504は、ビン806に対応するフィンガープリント付きフレーム808、810のそれぞれを評価して、フィンガープリント付きフレームがフレーム804に一致するかどうかを決定する。いくつかの実施形態において、フィンガープリント照合モジュール504は、第1フレームに対応する1組のビットと、第2フレームに対応する1組のビットとの間のハミング距離を決定する。このような実施形態では、フィンガープリント照合モジュール504は、ハミング距離が閾値を満たす場合に、第1フレームと第2フレームとの間の一致を決定する。このように、たとえば、フィンガープリント照合モジュール504は、フレーム804に対応する1組のビットと、フィンガープリント付きフレーム808に対応する1組のビットとの間のハミング距離を決定することができる。このハミング距離が閾値を満たす場合、フレーム804とフィンガープリント付きフレーム808との間の一致が特定される。フレーム804がハッシュ化されたビン806によって参照される残りのフィンガープリント付きフレーム(例、フィンガープリント付きフレーム810)に同じプロセスを適用して、他の一致を特定することができる。
テスト・コンテンツ・アイテムのフレーム804と参照コンテンツ・アイテムのフィンガープリント付きフレーム(例、フィンガープリント付きフレーム808)との間の一致が特定された場合、フィンガープリント照合モジュール504は、一致するフィンガープリント付きフレーム808がそこから生成された参照コンテンツ・アイテムを評価して、テスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間で一致するコンテンツの範囲、または境界を決定することができる。述べたように、転置インデックス802に記憶されている各フレームは、フィンガープリント付きフレームがそこから生成された参照コンテンツ・アイテム(例、ファイル名、ストリーム識別子等)と、フィンガープリント付きフレームが対応する、参照コンテンツ・アイテムの部分を示すオフセットとを示すこともできる。このような情報を使用して、フィンガープリント照合モジュール504は、例示的な図8Bに図示するように、参照コンテンツ・アイテムの全体について時系列的に生成された1組のフィンガープリント付きフレーム840にアクセスすることができる。フィンガープリント照合モジュール504は、テスト・コンテンツ・アイテムに対応する1組のフィンガープリント付きフレーム860にもアクセスすることができる。いくつかの実施形態において、フィンガープリント照合モジュール504は、チャンク(例、1秒のチャンク)内のテスト・コンテンツ・アイテムおよび参照コンテンツ・アイテムを処理する。したがって、たとえば、各フィンガープリントが毎秒16フレームに対応する場合、フィンガープリント照合モジュール504は、毎秒16フレームのコンテンツを処理する。
図8Bに図示するように、フィンガープリント照合モジュール504は、参照コンテンツ・アイテムの一致するフィンガープリント付きフレーム808よりも前の各フィンガープリント付きフレームを、テスト・コンテンツ・アイテムのフィンガープリント付きフレーム804よりも前のそれぞれ対応するフィンガープリント付きフレームに対して評価することができる。したがって、たとえば、フィンガープリント照合モジュール504は、参照コンテンツ・アイテムのフィンガープリント付きフレーム820とテスト・コンテンツ・アイテムのフィンガープリント付きフレーム824との間のハミング距離を計算することができる。ハミング距離が閾値を満たす場合、コンテンツの一致が見つかる。フィンガープリント照合モジュール504は、一致が見つからなくなるまで、または参照コンテンツ・アイテムおよび/もしくはテスト・コンテンツ・アイテムの始めに達するまで、各先行フレームとのこのような照合を続けることができる。同様に、フィンガープリント照合モジュール504は、参照コンテンツ・アイテム内の一致するフィンガープリント808よりも後の各フィンガープリント付きフレームを、テスト・コンテンツ・アイテム内の一致するフィンガープリント付きフレーム804よりも後のそれぞれ対応するフィンガープリント付きフレームに対して評価することができる。したがって、たとえば、フィンガープリント照合モジュール504は、参照コンテンツ・アイテムのフィンガープリント付きフレーム822とテスト・コンテンツ・アイテムのフィンガープリント付きフレーム826との間のハミング距離を計算することができる。ハミング距離が閾値を満たす場合、コンテンツの一致が見つかる。フィンガープリント照合モジュール504は、一致が見つからなくなるまで、または参照コンテンツ・アイテムおよび/もしくはテスト・コンテンツ・アイテムの最後に達するまで、各後続フレームとのこのような照合を続けることができる。このような照合が完了したら、フィンガープリント照合モジュール504は、テスト・コンテンツ・アイテムのどの部分832が参照コンテンツ・アイテムの境界830に一致するかどうかを特定することができる。この照合プロセスは、テスト・コンテンツ・アイテムの音声フィンガープリントと参照コンテンツ・アイテムの音声フィンガープリントとの間の一致、テスト・コンテンツ・アイテムの映像フィンガープリントと参照コンテンツ・アイテムの映像フィンガープリントとの間の一致、および/またはテスト・コンテンツ・アイテムのサムネイル・フィンガープリントと参照コンテンツ・アイテムのサムネイル・フィンガープリントとの間の一致を見つけるために適用することができる。図8A〜図8Bを参照して説明する照合プロセスは、2つのコンテンツ・アイテム間の一致するコンテンツを決定するための単なる1つの例示的なアプローチであり、当然ながら、他のアプローチも可能である。いくつかの実施形態において、照合プロセスは、一致の決定に、テスト・コンテンツ・アイテムおよび参照コンテンツ・アイテムのすべてのフィンガープリント付きフレームを評価する必要がないように最適化される。たとえば、テスト・コンテンツ・アイテムの第1フィンガープリント付きフレームと参照コンテンツ・アイテムの第1フィンガープリント付きフレームとの間の一致の特定にあたり、フィンガープリント照合モジュール504は、テスト・コンテンツ・アイテムおよび参照コンテンツ・アイテム内の1つまたは複数の中間フレーム(例、閾値数のフィンガープリント付きフレーム)をスキップし、その後、テスト・コンテンツ・アイテムの第2フィンガープリント付きフレームおよび参照コンテンツ・アイテムの第2フィンガープリント付きフレームを評価することができる。第1フィンガープリント付きフレームおよび第2フィンガープリント付きフレームがともに一致する場合、テスト・コンテンツ・アイテムおよび参照コンテンツ・アイテムの1つまたは複数の中間フレームも一致すると想定される。いくつかの実施形態において、照合プロセスは2段階にされ、第1検証ステップは、コンテンツ・アイテム内の閾値数の中間フィンガープリント付きフレームの評価をスキップしても、1組の第1フィンガープリント付きフレームが一致し、かつ第2組のフィンガープリント付きフレームが一致するときに一致を決定するように最適化される。このような実施形態では、第2検証ステップでは、一致の全長を確認するために、中間フィンガープリント付きフレームのそれぞれも個々に評価される。
いくつかの実施形態において、さらなる検討のために、一致する部分830および832を記述する情報がさまざまな要員に提供される。いくつかの実施形態において、一致する部分830および832が閾値時間長(例、30秒)を満たす場合、フィンガープリント照合モジュール504は、さらなる検討のために、テスト・コンテンツ・アイテムに自動的にフラグを立てることができる。いくつかの実施形態において、一致する部分830および832が閾値時間長(例、30秒)を満たす場合、フィンガープリント照合モジュール504は、ユーザがテスト・コンテンツ・アイテムにアクセスすることを自動的に防止することができる。いくつかの実施形態において、フィンガープリント照合モジュール504は、テスト・コンテンツ・アイテムおよび参照コンテンツ・アイテムが複製である(つまり、テスト・コンテンツ・アイテムの全部が参照コンテンツ・アイテムの全部に一致する)と決定することがある。このような実施形態では、テスト・コンテンツ・アイテムは、自動的に削除することもできる。
組み合わせ照合モジュール506は、複数のタイプのフィンガープリント(例、音声、映像、サムネイル)を利用して、テスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間で一致するコンテンツを特定するように構成することができる。たとえば、いくつかの実施形態において、組み合わせ照合モジュール506は、前述したように、音声フィンガープリントを使用してテスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間で一致するコンテンツを決定することができる。このような実施形態では、組み合わせ照合モジュール506は、閾値期間および/または閾値フレーム数について音声フィンガープリントを使用して一致が見つからない場合に、他のタイプのフィンガープリント(例、映像フィンガープリントおよび/またはサムネイル・フィンガープリント)を使用して照合を補完する。いくつかの実施形態において、組み合わせ照合モジュール506は、音声フィンガープリントを使用して決定したコンテンツの一致を、対応する映像フィンガープリント(またはサムネイル・フィンガープリント)を追加で使用することによって検証することができる。このような検証は、たとえば、著作権保護された音楽を含むビデオ広告とミュージック・ビデオとを区別するのに有用であり得る。同様に、いくつかの実施形態において、組み合わせ照合モジュール506は、映像フィンガープリントを使用して決定したコンテンツの一致を、対応する音声フィンガープリント(またはサムネイル)を追加で使用することによって検証することができる。種々実施形態において、音声フィンガープリントおよび映像フィンガープリントは、所定のフレーム・レートで生成される。その結果、組み合わせ照合モジュール506は、ある所与のフレームについて、音声フィンガープリントと映像フィンガープリントとを容易に相互参照することができる。
いくつかの実施形態において、コンテンツ・アイテムをコンテンツ・プロバイダ・システムに提供しているユーザ・デバイスには、コンテンツ・アイテムのサムネイル・フィンガープリントを生成して送信するように命令することができる。このような実施形態では、組み合わせ照合モジュール506は、サムネイル・フィンガープリントを利用して、コンテンツ・アイテムと参照コンテンツ・アイテムとの間で一致するコンテンツを特定することができる。一致が見つかる場合、ユーザ・デバイスには、コンテンツ・アイテムの他のタイプのフィンガープリント(例、音声フィンガープリントおよび/または映像フィンガープリント)を生成して送信するように命令することができる。組み合わせ照合モジュール506は、他のタイプのフィンガープリントを利用して、サムネイル・フィンガープリントを使用して決定したフレームの一致を検証することができる。たとえば、サムネイル・フィンガープリントを使用してコンテンツ・アイテムのフレームと参照コンテンツ・アイテムのフレームとの間の一致が決定される場合、組み合わせフィンガープリント照合モジュール506は、コンテンツ・アイテムおよび参照コンテンツ・アイテムで一致するフレームに対応する映像フィンガープリントを使用して、一致を確認することができる。いくつかの実施形態において、サムネイル・フィンガープリントを使用して一致が見つかる場合、コンテンツ・プロバイダ・システムは、検証のために、コンテンツ・アイテムについて他のタイプのフィンガープリント(例、音声フィンガープリントおよび/または映像フィンガープリント)を生成し始めることができる。
一般に、オンデマンド・コンテンツ・アイテムのコンテンツを評価するとき、照合モジュール502は、1つまたは複数の参照コンテンツ・アイテムを特定し、これらの参照コンテンツ・アイテムをオンデマンド・コンテンツ・アイテムに対して評価して、一致するコンテンツを特定することができる。いくつかの実施形態において、照合モジュール502は、コンテンツの照合のために、ライブ・コンテンツ・ストリームを別様に処理するように構成することができる。たとえば、いくつかの実施形態において、ライブ処理モジュール508は、スライド・ウィンドウを使用して、固定部分で受信されるライブ・コンテンツ・ストリームを処理するように構成することができる。いくつかの実施形態において、ライブ処理モジュール508は、固定時間長(例、コンテンツの最後の20秒)または固定数のフレーム(例、16フレーム)に対応するライブ・コンテンツ・ストリームのフレームを含むために、スライド・ウィンドウを画定することができる。図9Aは、ユーザ・デバイスからコンテンツ・プロバイダ・システムによって受信されるライブ・コンテンツ・ストリーム902の例示的な図を示す。図9Aの実施例において、スライド・ウィンドウ904は、フレーム906およびフレーム908によって画定されるライブ・コンテンツ・ストリーム902の20秒に対応する。いくつかの実施形態において、ライブ・コンテンツ・ストリームが受信されているとき、ライブ処理モジュール508は、スライド・ウィンドウ904の長さが満たされるまで、ライブ・コンテンツ・ストリームをバッファリングする。たとえば、スライド・ウィンドウが20秒の長さに対応する場合、ライブ処理モジュール508は、ライブ・コンテンツ・ストリームの20秒をバッファリングする。バッファリングされると、ライブ処理モジュール508は、前述したように、スライド・ウィンドウ904内のコンテンツの一部分(例、スライド・ウィンドウ904内のコンテンツの最後の1秒)のフィンガープリントを作成する。フィンガープリントを作成されたら、ライブ処理モジュール508は、ライブ・コンテンツ・ストリームのフィンガープリントを作成された部分がいずれかの参照コンテンツ・アイテムに一致するかどうかを決定することができる。前述したように、照合プロセスは、ライブ・コンテンツ・ストリーム902の以前に受信したフレームを評価することにより、一致するコンテンツの境界を決定することを試みる。この実施例では、ライブ・コンテンツ・ストリームの別の1秒が受信されると、スライド・ウィンドウは、ライブ・コンテンツ・ストリームの最新の20秒を包含するように進む。図9Bは、ライブ・コンテンツの別の1秒が受信された後のライブ・コンテンツ・ストリーム912の例示的な図を示す。図9Bの実施例では、スライド・ウィンドウ914は、ライブ・コンテンツ・ストリームの最新の20秒まで進んでおり、今ではフレーム906および918と接している。同様に、この実施例では、ライブ処理モジュール508は、受信したライブ・コンテンツ・ストリームの最後の1秒のフィンガープリントを作成して、フィンガープリントを作成された部分がいずれかの参照コンテンツ・アイテムに一致するかどうかを決定する。図9Cは、ライブ・コンテンツ・ストリームの別の1秒が受信された後のライブ・コンテンツ・ストリーム922の例示的な図を示す。図9Cの実施例では、スライド・ウィンドウ924は、ライブ・コンテンツ・ストリームの最新の20秒まで進んでおり、今ではフレーム906および928と接している。同様に、この実施例では、ライブ処理モジュール508は、受信したライブ・コンテンツ・ストリームの最後の1秒のフィンガープリントを作成し、フィンガープリントを作成した部分がいずれかの参照コンテンツ・アイテムに一致するかどうかを決定する。スライド・ウィンドウを使用してライブ・コンテンツ・ストリームを処理するこのアプローチは、参照コンテンツ・アイテムにおいて一致するコンテンツを最適に検出することを可能にする。このアプローチは、参照ライブ・コンテンツ・ストリームの受信が遅れる状況にも対処することができる。このような場合、コンテンツ・プロバイダ・システムは、テスト・ライブ・コンテンツ・ストリームと遅延した参照ライブ・コンテンツ・ストリームとの間で一致するコンテンツを決定することができる。いくつかの実施形態において、スライド・ウィンドウを拡張して、繰返しパターンを含むコンテンツの特定を容易にすることができる。
ある場合には、ライブ・コンテンツ・ストリームは、照合プロセスを複雑にし得る歪みを受けやすいことがある。たとえば、ユーザは、コンピューティング・デバイスを使用してキャプチャされたコンサートのライブ・コンテンツ・ストリームを提供することがある。このライブ・コンテンツ・ストリームは、一定の角度および/またはズーム・レベルからキャプチャされるかもしれない。また、キャプチャされたコンテンツは、コンピューティング・デバイスの振動により生じるさまざまな回転を受けやすいことがある。このような歪みにより、たとえば、許可された放送者によって提供された参照ライブ・コンテンツ・ストリーム(つまり、保護されたストリーム、または著作権保護されたストリーム)に対して正確な一致が見つけにくくなるかもしれない。いくつかの実施形態において、歪みモジュール510は、このような歪みにも関わらずコンテンツの照合を容易にするためのさまざまなアプローチを適用するように構成される。
たとえば、いくつかの実施形態において、ライブ・コンテンツ・ストリームのフィンガープリントが作成されたフレームについて一致を見つけようとするとき、歪みモジュール510は、歪みのある1組のフィンガープリント付きフレームを生成し、歪みのあるフィンガープリント付きフレームのそれぞれを使用して一致を見つけようとする。したがって、上記実施例では、ライブ・コンテンツ・ストリームの最後の1秒に対応するフィンガープリント付きフレームについて一致を見つけようとする場合、歪みモジュール510は、フィンガープリント付きフレームに対応する1組のビットのインデックス部分(例、最初の24ビット)を置換する。いくつかの実施形態において、このインデックス部分を使用して、前述したように、1つまたは複数の転置インデックスで参照コンテンツ・アイテムを見つける。いくつかの実施形態において、歪みモジュール510は、フィンガープリント付きフレームのインデックス部分を1度に1ビットずつ置換する。たとえば、フレームが6ビット「010111」を使用して表され、インデックス部分が最初の3ビット、たとえば、「010」を使用して表されると仮定する。この実施例では、歪みモジュール510は、インデックス部分を1度に1ビットずつ置換して、次の歪みの組を生成することができる。すなわち、「000」、「011」、「110」。フレームに対応する残りの3ビット、たとえば、「111」にこれらの歪みをプリペンドして、歪みのある次の組のフィンガープリント付きフレームを生成することができる。すなわち、「000111」、「001111」、「011111」、「100111」、「101111」、「110111」および「111111」である。歪みのあるこれらのフィンガープリント付きフレームのそれぞれを使用して、前述したように、1つまたは複数の参照コンテンツ・アイテムを特定し、その参照コンテンツ・アイテムのどの部分が一致するコンテンツを含むかどうかを決定することができる。いくつかの実施形態において、歪みモジュール510は、フィンガープリント付きフレームのインデックス部分を1度に複数ビット(例、2ビット)ずつ置換して、追加の歪みフィンガープリントフレームを生成し、一致するコンテンツを特定する。上記の実施例では、歪みモジュール510は、インデックス部分「010」を1度に2ビットずつ置換して、次の歪みの組を生成することができる。すなわち、「001」、「111」および「100」である。いくつかの実施形態において、歪みモジュール510は、インデックス部分だけを歪ませるのではなく、フィンガープリント付きフレームに対応するビットのすべてを置換する。いくつかの実施形態において、歪みモジュール510は、1組のビットにおける置換される部分(またはビットの数)を抑制する。たとえば、いくつかの実施形態において、フィンガープリント付きフレームについて一致を見つけようとするときに置換される部分(またはビットの数)は、中央処理装置(CPU)の使用量によって変わることがある。一実施例では、歪みモジュール510は、CPUの使用量が閾値以内のときにはフレームの最初の24ビットを置換することができ、CPUの使用量が閾値に達したときには、歪みモジュール510は、順列をフレームの最初の16ビットまで減少させることができる。
このような順列は、一般に、2つのコンテンツ・アイテムの一致する部分を決定するときに評価されるコンテンツの量を増やすことによって、分析されるテスト・コンテンツ・アイテムに存在するかもしれない歪みを考慮する。しかし、ある場合には、システムの性能を改善するために、評価されるコンテンツの量を調節するためのさまざまなアプローチを適用してもよい。たとえば、いくつかの実施形態において、歪みは、閾値の中央処理装置(CPU)の使用量に達するまで(例、70パーセント、75パーセント等)、段階的に生成されてテストすることもできる。たとえば、フィンガープリント付きフレームを、まず歪みなしで評価してもよい。一致が見つからなければ、フィンガープリント付きフレームを、1度に1ビットずつ置換して歪ませてもよい。この順列を使用して一致が見つからなければ、フィンガープリント付きフレームを、1度に2ビットずつ置換して歪ませてもよい。いくつかの実施形態において、閾値のクエリタイム(例、150ミリ秒、200ミリ秒等)に達するまで、歪みを段階的に生成してテストすることができる。このような実施形態では、閾値のクエリタイムに達したときに、照合プロセスが中止する。述べたように、フィンガープリントは、コンテンツの任意の長さ(例、コンテンツの1秒)にわたる一連のフレーム(例、16フレーム)に対応させることができる。いくつかの実施形態において、フィンガープリントに対応する16のフィンガープリント付きフレームのそれぞれを評価する代わりに、歪みモジュール510は、フィンガープリント付きフレームのうちの1つまたは複数の評価をスキップするように構成することができる(例、15フレームをスキップして、フィンガープリントに対応する16番目のフレームのみを評価する)。いくつかの実施形態において、フィンガープリントを評価するとき、照合モジュール502は、フィンガープリントを、1組のより小さなチャンクにセグメント化するように構成することができ、その1組の中のチャンクのそれぞれを、一般的に公知の並列処理手法を使用して並列処理することができる。
図12は、本開示の種々実施形態に係る、同じタイプの複数のフィンガープリントを生成するための例示的なプロセス1200を示す。特に記載のない限り、本明細書で述べる種々実施形態の範囲内において、追加のステップ、より少ないステップまたは代替ステップを、同様な順序もしくは他の順序で、または並行して行うことができることは理解されるべきである。
ブロック1202で、テスト・コンテンツ・アイテムに対応する1つまたは複数のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントが生成される。ブロック1204で、テスト・コンテンツ・アイテムに対応する1つまたは複数のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントが生成される。ブロック1206で、少なくとも1つの第1フィンガープリントに基づいて、1つまたは複数の参照コンテンツ・アイテムが決定される。ブロック1208で、テスト・コンテンツ・アイテムは、少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価される。
本開示の種々実施形態に関連して、他の多くの用途、アプリケーション、および/または変型が存在できることが想定される。たとえば、ある場合において、ユーザは、開示される技術を利用するためにオプトインするか否かを選ぶことができる。開示される技術は、さまざまなプライバシー設定および嗜好を確実に維持することもでき、個人情報の漏洩を防止することができる。別の例では、本開示の種々実施形態は、経時的に学習し、改善し、および/または改良することができる。
ソーシャル・ネットワーキング・システム‐例示的な実施態様
図13は、本開示の一実施形態に係る、さまざまなシナリオで利用することのできる例示的なシステム1300のネットワーク図である。システム1300は、1つまたは複数のユーザ・デバイス1310、1つまたは複数の外部システム1320、ソーシャル・ネットワーキング・システム(またはサービス)1330、およびネットワーク1350を含む。一実施形態において、上述の実施形態と関連して説明したソーシャル・ネットワーキング・サービス、プロバイダ、および/またはシステムを、ソーシャル・ネットワーキング・システム1330として実装してもよい。説明の便宜上、図13に示すシステム1300の実施形態は、単一の外部システム1320および単一のユーザ・デバイス1310を含む。ただし、他の実施形態において、システム1300は、より多くのユーザ・デバイス1310および/またはより多くの外部システム1320を含んでいてもよい。特定の実施形態においては、ソーシャル・ネットワーキング・システム1330がソーシャル・ネットワーク・プロバイダにより運用されるのに対し、外部システム1320は、異なるエンティティにより運用可能である点において、ソーシャル・ネットワーキング・システム1330から分離されている。ただし、種々実施形態において、ソーシャル・ネットワーキング・システム1330および外部システム1320は、協調して動作することにより、ソーシャル・ネットワーキング・システム1330のユーザ(またはメンバー)にソーシャル・ネットワーキング・サービスを提供する。この意味において、ソーシャル・ネットワーキング・システム1330は、プラットフォームまたはバックボーンを提供し、これを外部システム1320等の他のシステムが利用して、インターネット全体でユーザにソーシャル・ネットワーキング・サービスおよび機能を提供するようにしてもよい。
ユーザ・デバイス1310は、ユーザからの入力を受け付けるとともにネットワーク1350を介してデータを送受信可能な1つまたは複数のコンピューティング・デバイス(またはシステム)を備える。一実施形態において、ユーザ・デバイス1310は、たとえばMicrosoft Windows(登録商標)互換オペレーティング・システム(OS)、Apple OS X、および/またはLinux(登録商標)ディストリビューションを実行する従来のコンピュータ・システムである。別の実施形態において、ユーザ・デバイス1310としては、スマートフォン、タブレット、携帯情報端末(PDA)、携帯電話、ラップトップ・コンピュータ、ウェアラブル・デバイス(例、眼鏡、腕時計、ブレスレット等)、カメラ、器具等、コンピューティング・デバイスまたはコンピュータ機能を有するデバイスが可能である。ユーザ・デバイス1310は、ネットワーク1350を介して通信を行うように構成されている。ユーザ・デバイス1310は、たとえば、該ユーザ・デバイス1310のユーザによるソーシャル・ネットワーキング・システム1330との相互作用を可能にするブラウザ・アプリケーション等のアプリケーションを実行可能である。別の実施形態において、ユーザ・デバイス1310は、iOSおよびANDROID(登録商標)等、ユーザ・デバイス1310のネイティブオペレーティング・システムが提供するアプリケーション・プログラミング・インタフェース(API)を通して、ソーシャル・ネットワーキング・システム1330と相互作用する。ユーザ・デバイス1310は、有線通信システムおよび/または無線通信システムを用いることにより、ローカル・エリア・ネットワークおよび/またはワイド・エリア・ネットワークの任意の組み合わせを含み得るネットワーク1350を介して、外部システム1320およびソーシャル・ネットワーキング・システム1330と通信するように構成されている。
一実施形態において、ネットワーク1350は、標準的な通信技術およびプロトコルを使用する。このため、ネットワーク1350には、イーサネット(登録商標)、802.11、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(WiMAX)、3G、4G、CDMA、GSM(登録商標)、LTE、デジタル・サブスクライバ・ライン(DSL)等の技術を用いたリンクを含み得る。同様に、ネットワーク1350で用いられるネットワーキング・プロトコルとしては、マルチ・プロトコル・ラベル・スイッチング(MPLS)、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)、ユーザ・データグラム・プロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)等が挙げられる。ネットワーク1350上で交換されるデータは、ハイパーテキスト・マークアップ言語(HTML)および拡張マークアップ言語(XML)を含む技術およびフォーマットまたは技術もしくはフォーマットを用いて表すことができる。また、全部または一部のリンクは、セキュアソケットレイヤ(SSL)、トランスポート・レイヤ・セキュリティ(TLS)、およびインターネット・プロトコル・セキュリティ(IPsec)等の従来の暗号化技術を用いて暗号化可能である。
一実施形態において、ユーザ・デバイス1310は、外部システム1320およびソーシャル・ネットワーキング・システム1330から受信したマークアップ言語ドキュメント1314をブラウザ・アプリケーション1312で処理することにより、外部システム1320および/またはソーシャル・ネットワーキング・システム1330からのコンテンツを表示するようにしてもよい。マークアップ言語ドキュメント1314は、コンテンツおよび該コンテンツの書式設定または体裁を記述した1つまたは複数の命令を識別する。マークアップ言語ドキュメント1314に含まれる命令を実行することにより、ブラウザ・アプリケーション1312は、マークアップ言語ドキュメント1314により記述されたフォーマットまたは体裁で識別コンテンツを表示する。たとえば、マークアップ言語ドキュメント1314には、外部システム1320およびソーシャル・ネットワーキング・システム1330から読み出されたテキストおよび画像データまたはテキストもしくは画像データを含む複数のフレームを有するウェブ・ページを生成および表示する命令を含む。種々実施形態において、マークアップ言語ドキュメント1314は、拡張マークアップ言語(XML)データ、拡張ハイパーテキスト・マークアップ言語(XHTML)データ等のマークアップ言語データを含むデータ・ファイルを備える。また、マークアップ言語ドキュメント1314は、JavaScript(登録商標)オブジェクト表記法(JSON)データ、JSON with padding(JSONP)、およびJavaScriptデータを含むことにより、外部システム1320とユーザ・デバイス1310との間のデータ交換を容易化するようにしてもよい。ユーザ・デバイス1310上のブラウザ・アプリケーション1312は、JavaScriptコンパイラを用いて、マークアップ言語ドキュメント1314を復号化するようにしてもよい。
また、マークアップ言語ドキュメント1314は、FLASH(商標)またはUnity(商標)アプリケーション、Silverlight(商標)アプリケーション・フレームワーク等のアプリケーションまたはアプリケーション・フレームワークを含んでいてもよいし、これらとリンクしていてもよい。
また、一実施形態において、ユーザ・デバイス1310は、該ユーザ・デバイス1310のユーザがソーシャル・ネットワーキング・システム1330にログインしたかどうかを示すデータを含む1つまたは複数のクッキー1316を含むことにより、ソーシャル・ネットワーキング・システム1330からユーザ・デバイス1310に伝達されたデータの変更ができるようになっていてもよい。
外部システム1320は、ネットワーク1350を用いてユーザ・デバイス1310に伝達される1つまたは複数のウェブ・ページ1322a、1322bを含む1つまたは複数のウェブ・サーバを含む。外部システム1320は、ソーシャル・ネットワーキング・システム1330から分離されている。たとえば、外部システム1320が第1のドメインと関連付けられている一方、ソーシャル・ネットワーキング・システム1330は、別個のソーシャル・ネットワーキングドメインと関連付けられている。外部システム1320に含まれるウェブ・ページ1322a、1322bは、コンテンツを識別するとともに該識別コンテンツの書式設定または体裁を指定する命令を含むマークアップ言語ドキュメント1314を含む。前述したように、多数の変型および他の可能性が可能であることは理解されるべきである。
ソーシャル・ネットワーキング・システム1330は、複数のユーザを含み、ソーシャル・ネットワークのユーザに対して該ソーシャル・ネットワークの他のユーザと通信および相互作用する能力を提供する、該ソーシャル・ネットワーク用の1つまたは複数のコンピューティング・デバイスを含む。場合によっては、グラフ、すなわちエッジおよびノードを含むデータ構造により、ソーシャル・ネットワークを表すことができる。ソーシャル・ネットワークは、データベース、オブジェクト、クラス、メタ要素、ファイル、またはその他任意のデータ構造を含むが、これらに限定されない、他のデータ構造を用いて表すこともできる。ソーシャル・ネットワーキング・システム1330は、オペレータにより運営、管理、または制御されるようになっていてもよい。ソーシャル・ネットワーキング・システム1330のオペレータは、人間、自動化アプリケーション、またはコンテンツの管理、ポリシーの調整、ソーシャル・ネットワーキング・システム1330内の利用状況総計値の収集を行う一連のアプリケーションであってもよい。オペレータは、任意の種類が用いられるようになっていてもよい。
ユーザは、ソーシャル・ネットワーキング・システム1330に参加した後、ソーシャル・ネットワーキング・システム1330のつながりたい任意数の他ユーザとのつながりを追加するようにしてもよい。本明細書において、用語「友達」は、ユーザがソーシャル・ネットワーキング・システム1330を介して、つながり、関連性、または関係を形成した、ソーシャル・ネットワーキング・システム1330のその他任意のユーザを表す。たとえば、一実施形態において、ソーシャル・ネットワーキング・システム1330のユーザがソーシャル・グラフのノードとして表される場合、用語「友達」は、2つのユーザ・ノード間に形成され、これら2つのユーザ・ノードを直接つなげるエッジを表し得る。
つながりは、ユーザ(たとえば、同じ教育機関の同窓生であるユーザ)の共通特性に基づいて、ユーザが明示的に追加してもよいし、ソーシャル・ネットワーキング・システム1330が自動的に作成するようにしてもよい。たとえば、第1のユーザは、友達となる特定の他ユーザを具体的に選択する。ソーシャル・ネットワーキング・システム1330におけるつながりは通例、両方向であるが、これは必須ではないため、用語「ユーザ」および「友達」は、枠組みによって決まる。ソーシャル・ネットワーキング・システム1330のユーザ間のつながりは通例、双方向(「2方向」)すなわち「相互」であるが、単方向すなわち「1方向」であってもよい。たとえば、ボブ(Bob)およびジョー(Joe)がともにソーシャル・ネットワーキング・システム1330のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。一方、ボブがジョーとつながって、ジョーによりソーシャル・ネットワーキング・システム1330に伝達されたデータを見たいものの、ジョーが相互のつながりを形成したくない場合は、単方向のつながりが確立されるようになっていてもよい。ユーザ間のつながりは、直接的なつながりであってもよい。ただし、ソーシャル・ネットワーキング・システム1330のいくつかの実施形態によれば、つながりは、1つまたは複数のつながりレベルまたは分離度によって、間接的にすることができる。
ユーザ間のつながりの確立および維持ならびにユーザ間の相互作用の許可に加えて、ソーシャル・ネットワーキング・システム1330は、該ソーシャル・ネットワーキング・システム1330によりサポートされたさまざまな種類のアイテムに対するアクションをユーザが起こせるようにする。これらのアイテムには、ソーシャル・ネットワーキング・システム1330のユーザが属し得るグループまたはネットワーク(すなわち、人々、エンティティ、およびコンセプトのソーシャル・ネットワーク)、ユーザが関心を示す可能性があるイベントまたはカレンダ・エントリ、ユーザがソーシャル・ネットワーキング・システム1330を介して使用可能なコンピュータ・ベースのアプリケーション、ソーシャル・ネットワーキング・システム1330が提供するサービスまたはソーシャル・ネットワーキング・システム1330を通してユーザがアイテムの売買を行える取引、およびユーザがソーシャル・ネットワーキング・システム1330上またはソーシャル・ネットワーキング・システム1330外で実行可能な広告との相互作用、を含んでいてもよい。これらは、ユーザがソーシャル・ネットワーキング・システム1330上でアクションを起こすことができるアイテムのわずかな例に過ぎず、その他多くが可能である。ユーザは、ソーシャル・ネットワーキング・システム1330もしくは外部システム1320にて表し得るあらゆるもの、ソーシャル・ネットワーキング・システム1330とは別個のあらゆるもの、またはネットワーク1350を介してソーシャル・ネットワーキング・システム1330に結合されたあらゆるものと相互作用可能である。
また、ソーシャル・ネットワーキング・システム1330は、多様なエンティティをリンク可能である。たとえば、ソーシャル・ネットワーキング・システム1330は、API、ウェブサービス、または他の通信チャンネルを通して、ユーザの互いの相互作用および外部システム1320または他のエンティティとの相互作用を可能にする。ソーシャル・ネットワーキング・システム1330は、複数のエッジにより相互につなげられた複数のノードを含む「ソーシャル・グラフ」を生成して保持する。ソーシャル・グラフの各ノードは、別のノードに作用可能なエンティティおよび/または別のノードが作用し得るエンティティを表していてもよい。ソーシャル・グラフは、さまざまな種類のノードを含んでいてもよい。ノードの種類の例としては、ユーザ、人間以外のエンティティ、コンテンツ・アイテム、ウェブ・ページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャル・ネットワーキング・システム1330のオブジェクトにより表し得るその他任意の事物が挙げられる。ソーシャル・グラフの2つのノード間のエッジは、ノード関係または一方のノードが他方のノードに対して行ったアクションに由来し得る2つのノード間の特定種類のつながりすなわち関連性を表していてもよい。場合により、ノード間のエッジは、重み付け可能である。エッジの重みは、ノード間のつながりすなわち関連性の強度等、エッジと関連付けられた属性を表し得る。エッジの種類が異なれば、異なる重みが可能である。たとえば、あるユーザが別のユーザに「いいね!」をした場合に作成されるエッジにある重みが与えられる一方、ユーザが別のユーザと友達になった場合に作成されるエッジには、異なる重みが与えられるようになっていてもよい。
一例として、第1のユーザが第2のユーザを友達として識別した場合は、第1のユーザを表すノードと第2のユーザを表す第2のノードとをつなげるソーシャル・グラフのエッジが生成される。さまざまなノードが互いに関連または相互作用すると、ソーシャル・ネットワーキング・システム1330は、該さまざまなノードをつなげるエッジを修正して、上記関係および相互作用を反映する。
また、ソーシャル・ネットワーキング・システム1330は、該ソーシャル・ネットワーキング・システム1330とのユーザの相互作用を増進させるユーザ生成コンテンツを含む。ユーザ生成コンテンツには、ユーザがソーシャル・ネットワーキング・システム1330に追加、アップロード、送信、または「投稿」可能なあらゆるものを含み得る。たとえば、ユーザは、ユーザ・デバイス1310からソーシャル・ネットワーキング・システム1330に投稿を伝達する。投稿には、近況等の文字情報、ロケーション情報、写真等の画像、映像、リンク、音楽、またはその他類似のデータおよび媒体またはデータもしくは媒体等のデータを含んでいてもよい。また、コンテンツは、第三者によってソーシャル・ネットワーキング・システム1330に追加されるようになっていてもよい。コンテンツ「アイテム」は、ソーシャル・ネットワーキング・システム1330のオブジェクトとして表される。このように、ソーシャル・ネットワーキング・システム1330のユーザは、さまざまな通信チャンネルを通して、さまざまな種類の媒体の文字およびコンテンツ・アイテムを投稿することにより、互いのコミュニケーションが促される。このようなコミュニケーションでは、ユーザの互いの相互作用が増大するとともに、ユーザがソーシャル・ネットワーキング・システム1330と相互作用する頻度が高くなる。
ソーシャル・ネットワーキング・システム1330は、ウェブ・サーバ1332、API要求サーバ1334、ユーザ・プロフィール・ストア1336、つながりストア1338、アクション・ロガー1340、アクティビティ・ログ1342、および承認サーバ1344を含む。本発明の一実施形態において、ソーシャル・ネットワーキング・システム1330は、さまざまなアプリケーションを対象として、追加の構成要素、より少ない構成要素、または異なる構成要素を含んでいてもよい。ネットワーク・インタフェース、セキュリティ・メカニズム、ロード・バランサ、フェイルオーバ・サーバ、管理・ネットワーク運用コンソール等の他の構成要素については、システムの細部が分かり難くならないように、図示していない。
ユーザ・プロフィール・ストア1336は、略歴、人口統計学的情報、およびユーザによる申告またはソーシャル・ネットワーキング・システム1330による推察が行われた職歴、学歴、趣味または好み、ロケーション等の他の種類の記述的情報等、ユーザ・アカウントに関する情報を保持する。この情報は、各ユーザが一意に識別されるように、ユーザ・プロフィール・ストア1336に記憶される。また、ソーシャル・ネットワーキング・システム1330は、異なるユーザ間の1つまたは複数のつながりを記述したデータをつながりストア1338に記憶する。つながり情報は、職歴、グループ・メンバーシップ、趣味、または学歴が類似または共通するユーザを示していてもよい。また、ソーシャル・ネットワーキング・システム1330には、ユーザによる他ユーザとの関係の指定を可能にする異なるユーザ間のユーザ定義のつながりを含む。たとえば、ユーザ定義のつながりによれば、ユーザは、友達、同僚、パートナー等、ユーザの実生活の関係と似た他ユーザとの関係を生成可能である。ユーザは、所定の種類のつながりから選択を行うようにしてもよいし、必要に応じて、自身のつながりの種類を規定するようにしてもよい。人間以外のエンティティ、バケット、クラスタ中心、画像、関心、ページ、外部システム、コンセプト等、ソーシャル・ネットワーキング・システム1330の他のノードとのつながりについても、つながりストア1338に記憶される。
ソーシャル・ネットワーキング・システム1330は、ユーザが相互作用可能なオブジェクトに関するデータを保持する。このデータを保持するため、ユーザ・プロフィール・ストア1336およびつながりストア1338は、ソーシャル・ネットワーキング・システム1330により保持された対応する種類のオブジェクトのインスタンスを記憶する。各オブジェクト種類は、オブジェクトの種類に相応しい情報を記憶するのに適した情報フィールドを有する。たとえば、ユーザ・プロフィール・ストア1336は、ユーザのアカウントおよびユーザのアカウントに関する情報の記述に適したフィールドを備えたデータ構造を含む。特定種類の新たなオブジェクトが作成された場合、ソーシャル・ネットワーキング・システム1330は、対応する種類の新たなデータ構造を初期化し、一意のオブジェクト識別子を割り当てるとともに、必要に応じて、オブジェクトへのデータの追加を開始する。これは、たとえばユーザがソーシャル・ネットワーキング・システム1330のユーザとなり、ソーシャル・ネットワーキング・システム1330がユーザ・プロフィール・ストア1336のユーザ・プロフィールの新たなインスタンスを生成し、一意の識別子をユーザ・アカウントに割り当て、ユーザが提供する情報のユーザ・アカウントのフィールドへの入力を開始した場合に起こる可能性がある。
つながりストア1338には、ユーザの他ユーザとのつながり、外部システム1320とのつながり、または他のエンティティとのつながりを記述するのに適したデータ構造を含む。また、つながりストア1338は、ユーザに関する情報へのアクセスを調整するユーザのプライバシー設定と併せて使用可能なユーザのつながりに対して、つながりの種類を関連付けるようにしてもよい。本発明の一実施形態において、ユーザ・プロフィール・ストア1336およびつながりストア1338は、連合データベースとして実装されていてもよい。
つながりストア1338、ユーザ・プロフィール・ストア1336、およびアクティビティ・ログ1342に記憶されたデータによれば、ソーシャル・ネットワーキング・システム1330は、ノードを用いてさまざまなオブジェクトを識別するとともに、ノードをつなげるエッジを用いて異なるオブジェクト間の関係を識別するソーシャル・グラフを生成することができる。たとえば、ソーシャル・ネットワーキング・システム1330において、第1のユーザが第2のユーザとのつながりを確立した場合は、ユーザ・プロフィール・ストア1336からの第1のユーザおよび第2のユーザのユーザ・アカウントがソーシャル・グラフのノードとして作用するようになっていてもよい。つながりストア1338が記憶する第1のユーザと第2のユーザとの間のつながりは、第1のユーザおよび第2のユーザと関連付けられたノード間のエッジである。この例を続けて、第2のユーザは、ソーシャル・ネットワーキング・システム1330において、第1のユーザにメッセージを送信するようにしてもよい。記憶可能なメッセージを送信するアクションは、第1のユーザおよび第2のユーザを表すソーシャル・グラフの2つのノード間の別のエッジである。また、メッセージ自体は、第1のユーザおよび第2のユーザを表すノードとつながった別のノードとして、ソーシャル・グラフにおいて識別されるとともに含まれていてもよい。
別の例において、第1のユーザは、ソーシャル・ネットワーキング・システム1330により保持された画像(または、ソーシャル・ネットワーキング・システム1330の外部の別のシステムにより保持された画像)において、第2のユーザにタグを付けるようにしてもよい。画像自体は、ソーシャル・ネットワーキング・システム1330のノードとして表されていてもよい。このタグ付けアクションによって、第1のユーザと第2のユーザとの間にエッジを作成するとともに、ユーザそれぞれと画像(これもソーシャル・グラフのノードである)との間にエッジを作成するようにしてもよい。さらに別の例において、ユーザがイベントへの出席を確認した場合は、ユーザおよびイベントは、ユーザ・プロフィール・ストア1336から得られるノードであり、イベントへの出席は、アクティビティ・ログ1342から読み出し可能なノード間のエッジである。ソーシャル・グラフを生成して保持することにより、ソーシャル・ネットワーキング・システム1330は、さまざまな種類のオブジェクトならびにこれらのオブジェクト間の相互作用およびつながりを記述したデータを含み、社会的な関連情報の宝庫となる。
ウェブ・サーバ1332は、ネットワーク1350を介して、ソーシャル・ネットワーキング・システム1330を1つもしくは複数のユーザ・デバイス1310および/または1つもしくは複数の外部システム1320にリンクさせる。また、ウェブ・サーバ1332は、ウェブ・ページのほか、Java(登録商標)、JavaScript、Flash、XML等の他のウェブ関連コンテンツを提供する。ウェブ・サーバ1332は、ソーシャル・ネットワーキング・システム1330と1つまたは複数のユーザ・デバイス1310との間でメッセージの受信およびルーティングを行うメール・サーバ等のメッセージング機能を含んでいてもよい。メッセージとしては、インスタント・メッセージ、待ち行列型メッセージ(たとえば、電子メール)、テキストおよびSMSメッセージ、またはその他任意の適当なメッセージング・フォーマットが可能である。
API要求サーバ1334によれば、1つまたは複数の外部システム1320およびユーザ・デバイス1310は、1つまたは複数のAPI機能を呼び出すことによって、ソーシャル・ネットワーキング・システム1330からのアクセス情報を呼び出すことができる。また、API要求サーバ1334によれば、外部システム1320は、APIを呼び出すことによって、ソーシャル・ネットワーキング・システム1330に情報を送ることができる。一実施形態において、外部システム1320は、ネットワーク1350を介して、API要求をソーシャル・ネットワーキング・システム1330に送信し、API要求サーバ1334は、このAPI要求を受信する。API要求サーバ1334は、このAPI要求と関連付けられたAPIを呼び出して要求を処理することにより、適当な応答を生成し、これをAPI要求サーバ1334が、ネットワーク1350を介して外部システム1320に伝達する。たとえば、API要求に応答して、API要求サーバ1334は、外部システム1320にログインしたユーザのつながり等、ユーザと関連付けられたデータを収集し、この収集データを外部システム1320に伝達する。別の実施形態において、ユーザ・デバイス1310は、外部システム1320と同じ様態で、APIを介してソーシャル・ネットワーキング・システム1330と通信する。
アクション・ロガー1340は、ソーシャル・ネットワーキング・システム1330上および/またはソーシャル・ネットワーキング・システム1330外でのユーザ・アクションに関するウェブ・サーバ1332からの通信を受信可能である。また、アクション・ロガー1340は、ユーザ・アクションに関する情報をアクティビティ・ログ1342に入力することによって、ソーシャル・ネットワーキング・システム1330のユーザが該ソーシャル・ネットワーキング・システム1330内外で起こしたさまざまなアクションを該ソーシャル・ネットワーキング・システム1330が発見できるようにする。ソーシャル・ネットワーキング・システム1330上の別のノードに関して特定のユーザが起こした何れのアクションも、アクティビティ・ログ1342または類似のデータベース等のデータ・リポジトリに保持された情報によって、各ユーザのアカウントと関連付け可能である。ソーシャル・ネットワーキング・システム1330においてユーザが起こす識別および記憶対象のアクションの例としては、たとえば別のユーザへのつながりの追加、別のユーザへのメッセージの送信、別のユーザからのメッセージを読むこと、別のユーザと関連付けられたコンテンツの閲覧、別のユーザが投稿したイベントへの出席、画像の投稿、画像の投稿の試行、または別のユーザもしくは別のオブジェクトと相互作用するその他のアクションが挙げられる。ユーザがソーシャル・ネットワーキング・システム1330においてアクションを起こすと、該アクションがアクティビティ・ログ1342に記録される。一実施形態において、ソーシャル・ネットワーキング・システム1330は、エントリのデータベースとしてアクティビティ・ログ1342を維持する。ソーシャル・ネットワーキング・システム1330においてアクションが起こされると、該アクションのエントリがアクティビティ・ログ1342に追加される。アクティビティ・ログ1342は、アクション・ログと称される場合もある。
また、ユーザ・アクションは、ソーシャル・ネットワーキング・システム1330とは別個の外部システム1320等、ソーシャル・ネットワーキング・システム1330の外部のエンティティ内で起こるコンセプトおよびアクションと関連付けられていてもよい。たとえば、アクション・ロガー1340は、外部システム1320とのユーザの相互作用を記述したデータをウェブ・サーバ1332から受信するようにしてもよい。この例において、外部システム1320は、ソーシャル・グラフの構造化されたアクションおよびオブジェクトに従って、ユーザの相互作用を報告する。
ユーザが外部システム1320と相互作用するアクションの他の例としては、外部システム1320または別のエンティティに対する関心をユーザが示すこと、外部システム1320または外部システム1320内のウェブ・ページ1322aに関するコメントをユーザがソーシャル・ネットワーキング・システム1330に投稿すること、ユニフォーム・リソース・ロケータ(URL)または外部システム1320と関連付けられた他の識別子をユーザがソーシャル・ネットワーキング・システム1330に投稿すること、外部システム1320と関連付けられたイベントにユーザが出席すること、または外部システム1320に関するユーザによるその他任意のアクションが挙げられる。このように、アクティビティ・ログ1342には、ソーシャル・ネットワーキング・システム1330のユーザとソーシャル・ネットワーキング・システム1330とは別個の外部システム1320との間の相互作用を記述したアクションを含んでいてもよい。
承認サーバ1344は、ソーシャル・ネットワーキング・システム1330のユーザの1つまたは複数のプライバシー設定を強制する。ユーザのプライバシー設定は、ユーザと関連付けられた特定の情報がどのように共有可能であるかどうかを決定する。プライバシー設定には、ユーザと関連付けられた特定の情報の仕様、および情報を共有可能な1つまたは複数のエンティティの仕様を含む。情報を共有可能なエンティティの例としては、他のユーザ、アプリケーション、外部システム1320、または潜在的に情報にアクセス可能な任意のエンティティが挙げられる。ユーザが共有可能な情報には、プロフィール写真、ユーザと関連付けられた電話番号、ユーザのつながり、つながりの追加やユーザ・プロフィール情報の変更等、ユーザが起こしたアクション等のユーザ・アカウント情報を含む。
プライバシー設定の仕様は、さまざまな粒度レベルで提供されていてもよい。たとえば、プライバシー設定は、他のユーザと共有される特定の情報を識別していてもよく、勤務先の電話番号またはプロフィール写真、自宅の電話番号、およびステータスを含む個人情報等の特定の関連情報集合を識別する。または、プライバシー設定は、ユーザと関連付けられたすべての情報に適用可能である。特定の情報にアクセス可能なエンティティ集合の仕様についても、さまざまな粒度レベルで指定可能である。情報を共有できるさまざまなエンティティ集合としては、たとえばユーザのすべての友達、友達のすべての友達、すべてのアプリケーション、またはすべての外部システム1320が挙げられる。一実施形態によれば、エンティティ集合の仕様には、エンティティ一覧を含むことができる。たとえば、ユーザは、特定の情報へのアクセスが許可された外部システム1320の一覧を提供するようにしてもよい。別の実施形態によれば、仕様には、情報へのアクセスが許可されていない例外と併せてエンティティ集合を含むことができる。たとえば、ユーザは、該ユーザの勤務先情報にすべての外部システム1320がアクセスすることを許可するが、該勤務先情報へのアクセスが許可されていない外部システム1320の一覧を指定するようにしてもよい。特定の実施形態では、特定の情報へのアクセスが許可されていない例外の一覧を「ブロック・リスト」と称する。ユーザが指定するブロック・リストに属する外部システム1320は、プライバシー設定に指定された情報へのアクセスがブロックされる。情報の仕様の粒度および情報が共有されるエンティティの仕様の粒度は、さまざまな組み合わせが可能である。たとえば、すべての個人情報が友達と共有される一方、すべての勤務先情報が友達の友達と共有されるようになっていてもよい。
承認サーバ1344は、ユーザと関連付けられた特定の情報にユーザの友達、外部システム1320、ならびに/または他のアプリケーションおよびエンティティがアクセス可能であるかどうかを決定するロジックを含む。外部システム1320は、ユーザの勤務先の電話番号等、ユーザのより私的かつ繊細な情報にアクセスするため、承認サーバ1344の承認が必要となる場合がある。ユーザのプライバシー設定に基づいて、承認サーバ1344は、ユーザが起こすアクションに関する情報等、ユーザと関連付けられた情報に対して、別のユーザ、外部システム1320、アプリケーション、または別のエンティティがアクセス可能であるかどうかを決定する。
いくつかの実施形態において、ソーシャル・ネットワーキング・システム1330は、コンテンツ・プロバイダ・モジュール1346を含むことができる。コンテンツ・プロバイダ・モジュール1346は、たとえば、図1のコンテンツ・プロバイダ・モジュール102として実装される。前述したように、多数の変型および他の可能性が可能であることは理解されるべきである。
ハードウェアの実装態様
上記プロセスおよび特徴は、多種多様なネットワークおよびコンピュータ環境において、多種多様なマシンおよびコンピュータ・システム・アーキテクチャにより実装可能である。図14は、本発明の一実施形態に係る、本明細書に記載の実施形態のうちの1つまたは複数の実装に使用可能なコンピュータ・システム1400の一例を示している。コンピュータ・システム1400には、本明細書に記載のプロセスおよび特徴を該コンピュータ・システム1400に実行させる命令セットを含む。また、コンピュータ・システム1400は、他のマシンにつなげられていてもよい(たとえば、ネットワーク化されていてもよい)。ネットワーク配置において、コンピュータ・システム1400は、クライアント/サーバ・ネットワーク環境におけるサーバ・マシンもしくはクライアント・マシンまたはピア・ツー・ピア(または、分散)ネットワーク環境におけるピア・マシンとして動作するようになっていてもよい。本発明の一実施形態において、コンピュータ・システム1400は、ソーシャル・ネットワーキング・システム1300、ユーザ・デバイス1310、および外部システム1420、またはその構成要素であってもよい。本発明の一実施形態において、コンピュータ・システム1400は、ソーシャル・ネットワーキング・システム1330の全部または一部を構成する多くのサーバのうちの1つであってもよい。
コンピュータ・システム1400は、プロセッサ1402、キャッシュ1404、ならびにコンピュータ可読媒体に記憶され、本明細書に記載のプロセスおよび特徴を対象とした1つまたは複数の実行可能なモジュールおよびドライバを含む。また、コンピュータ・システム1400は、高性能入出力(I/O)バス1406および標準I/Oバス1408を含む。ホスト・ブリッジ1410がプロセッサ1402を高性能I/Oバス1406に結合させる一方、I/Oバス・ブリッジ1412が2つのバス1406および1408を互いに結合させる。高性能I/Oバス1406には、システム・メモリ1414および1つまたは複数のネットワーク・インタフェース1416が結合されている。コンピュータ・システム1400は、ビデオメモリおよび該ビデオメモリに結合された表示装置をさらに含んでもよい(図示せず)。標準I/Oバス1408には、マス・ストレージ1418およびI/Oポート1420が結合されている。コンピュータ・システム1400は、任意選択として、標準I/Oバス1408に結合されたキーボードおよびポインティング・デバイス、表示装置等の入出力装置(図示せず)を含んでいてもよい。これらの要素は総じて、カリフォルニア州サンタクララのインテル・コーポレーション社が製造するx86互換プロセッサ、カリフォルニア州サニーベールのアドバンスト・マイクロ・デバイセズ(AMD)社が製造するx86互換プロセッサ、およびその他任意の適当なプロセッサに基づくコンピュータ・システム等、広範囲のコンピュータ・ハードウェア・システムを表すことを意図しているが、これらに限定されない。
ソフトウェア・アプリケーション(図示せず)に対するデータの入出力等、コンピュータ・システム1400の動作は、オペレーティング・システムが管理および制御する。オペレーティング・システムは、システム上で実行されるソフトウェア・アプリケーションとシステムのハードウェア構成要素との間のインタフェースを提供する。LINUXオペレーティング・システム、カリフォルニア州クパチーノのアップル・コンピュータ・インコーポレイテッド社(Apple Computer Inc.)から入手可能なApple Macintoshオペレーティング・システム、UNIX(登録商標)オペレーティング・システム、Microsoft(登録商標) Windows(登録商標)オペレーティング・システム、BSDオペレーティング・システム等、任意適当なオペレーティング・システムを使用可能である。また、他の実施態様も可能である。
以下、コンピュータ・システム1400の要素について、より詳しく説明する。特に、ネットワーク・インタフェース1416は、コンピュータ・システム1400とイーサネット(たとえば、IEEE 802.3)ネットワーク、バックプレーン等の広範なネットワークのいずれかとの間の通信を提供する。マス・ストレージ1418は、上記識別された各演算システムにより実装される上記プロセスおよび特徴を実行するデータおよびプログラミング命令の記憶を提供する。一方、システム・メモリ1414(たとえば、DRAM)は、プロセッサ1402により実行される場合のデータおよびプログラミング命令の一時的な記憶を提供する。I/Oポート1420は、コンピュータ・システム1400に結合し得る付加的な周辺機器間の通信を提供する1つもしくは複数のシリアル通信ポートおよび/またはパラレル通信ポートであってもよい。
コンピュータ・システム1400は、多様なシステム・アーキテクチャを含んでいてもよく、コンピュータ・システム1400のさまざまな構成要素が再配置されるようになっていてもよい。たとえば、キャッシュ1404は、プロセッサ1402とともにオンチップであってもよい。または、キャッシュ1404およびプロセッサ1402は、一体的に「プロセッサ・モジュール」としてパッケージングされていてもよく、プロセッサ1402は「プロセッサ・コア」と称される。さらに、本発明の特定の実施形態においては、上記構成要素のすべてを必要としなくてもよいし、すべてを含んでいなくてもよい。たとえば、高性能I/Oバス1406には、標準I/Oバス1408に結合された周辺機器が結合されていてもよい。また、いくつかの実施形態においては、バスが1つだけ存在し、コンピュータ・システム1400の構成要素がこの単一バスに結合されていてもよい。さらに、コンピュータ・システム1400は、付加的なプロセッサ、記憶装置、またはメモリ等、付加的な構成要素を含んでいてもよい。
一般的に、本明細書に記載のプロセスおよび特徴は、オペレーティング・システムまたは特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、もしくは「プログラム」と称される一連の命令の一部として実装されていてもよい。たとえば、本明細書に記載の特定のプロセスは、1つまたは複数のプログラムを用いて実行してもよい。プログラムは通常、1つまたは複数のプロセッサにより読み出されて実行された場合に、本明細書に記載のプロセスおよび特徴を実行する演算をコンピュータ・システム1400に行わせる1つまたは複数の命令をコンピュータ・システム1400のさまざまなメモリおよび記憶装置に含む。本明細書に記載のプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア(たとえば、特定用途向け集積回路)、またはこれらの任意の組み合わせに実装されていてもよい。
一実施態様において、本明細書に記載のプロセスおよび特徴は、分散コンピュータ環境において個別または一括に、コンピュータ・システム1400が動作させる一連の実行可能モジュールとして実装されていてもよい。上記モジュールは、ハードウェア、コンピュータ可読媒体(または、機械可読媒体)に記憶された実行可能モジュール、または両者の組み合わせによって実現されるようになっていてもよい。たとえば、これらのモジュールは、プロセッサ1402等、ハードウェア・システムのプロセッサにより実行される複数の命令または一連の命令を含んでいてもよい。最初は、マス・ストレージ1418等の記憶装置に一連の命令が記憶されていてもよい。ただし、一連の命令は、任意適当なコンピュータ可読記憶媒体に記憶可能である。さらに、一連の命令は、ローカルに記憶する必要はなく、ネットワーク・インタフェース1416を介して、ネットワーク上のサーバ等のリモート記憶装置から受信することも可能である。命令は、マス・ストレージ1418等の記憶装置からシステム・メモリ1414への複製の後、プロセッサ1402がアクセスして実行する。種々実施態様においては、並列処理環境における複数のサーバ等、1つまたは複数のロケーションの1つまたは複数のプロセッサによって、1つまたは複数のモジュールを実行可能である。
コンピュータ可読媒体の例としては、揮発性および不揮発性メモリ・デバイス等の記録可能な種類の媒体、ソリッド・ステート・メモリ、フロッピー(登録商標)等のリムーバブル・ディスク、ハードディスク・ドライブ、磁気媒体、光ディスク(たとえば、コンパクト・ディスク・リード・オンリー・メモリ(CD ROM)、デジタル多用途ディスク(DVD))、その他類似する非一時的(または、一時的)の有形(または、無形)記憶媒体、またはコンピュータ・システム1400による実行によって、本明細書に記載のプロセスおよび特徴のうちのいずれか1つもしくは複数を実行する一連の命令の記憶、符号化、または伝達に適した任意の種類の媒体が挙げられるが、これらに限定されない。
説明の便宜上、本明細書の十分な理解が得られるように、多くの具体的詳細を示した。ただし、当業者には、これらの具体的詳細がなくても、本開示の実施形態を実現可能であることが明らかとなろう。場合により、モジュール、構造、プロセス、特徴、およびデバイスをブロック図の形態で示すことによって、説明が分かり難くならないようにしている。他の例では、機能ブロック図およびフロー図を示すことにより、データおよび論理の流れを表している。ブロック図およびフロー図の構成要素(たとえば、モジュール、ブロック、構造、デバイス、特徴等)は、本明細書における明示的な説明および図示以外の様態でのさまざまな組み合わせ、分離、除去、並び替え、および置き換えがなされていてもよい。
本明細書における「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「種々実施形態」等の言及は、該実施形態に関連して説明した特定の特徴、設計、構造、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書のさまざまな箇所における表現「一実施形態において」等の出現は、必ずしもすべてが同じ実施形態を表してはおらず、相互に他の実施形態を除外する別個または別の実施形態でもない。さらには、「実施形態」等の明示的な言及の有無に関わらず、いくつかの実施形態においてはさまざまに組み合わせて包含可能であり、他の実施形態においてはさまざまに省略も可能である種々特徴を記載している。同様に、いくつかの実施形態では選好または要件となり得るが、他の実施形態ではなり得ない種々特徴を記載している。
本明細書において使用する言語は、主として読み易さおよび教示の便宜上から選択しており、本発明に係る主題を描写または限定するようには選択していない場合がある。したがって、本発明の範囲は、この詳細な説明ではなく、これに基づく用途に由来する任意の請求項によって限定されるものとする。以上から、本発明の実施形態に関する開示は、以下の特許請求の範囲に示す本発明の範囲の例示であり、何ら限定的なものではない。

Claims (35)

  1. コンピューティング・システムが、テスト・コンテンツ・アイテムに対応する1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントを生成する工程と、
    前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムに対応する前記1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントを生成する工程と、
    前記コンピューティング・システムが、前記少なくとも1つの第1フィンガープリントに基づいて、1以上の参照コンテンツ・アイテムを決定する工程と、
    前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムを、前記少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価する工程と、
    を含む、コンピュータ実装方法。
  2. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームに対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームに対応する第2組の特徴に少なくとも部分的に基づいて生成される、請求項1に記載のコンピュータ実装方法。
  3. 前記第1組の特徴は、前記第2組の特徴よりも少ない特徴を含む、請求項2に記載のコンピュータ実装方法。
  4. 前記第1フィンガープリントは、前記第1フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第1メタデータに関連付けられ、前記第2フィンガープリントは、前記第2フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第2メタデータに関連付けられる、請求項1に記載のコンピュータ実装方法。
  5. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームの第1領域に対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームの第2領域に対応する第2組の特徴に少なくとも部分的に基づいて生成される、請求項1に記載のコンピュータ実装方法。
  6. 前記第1領域は、前記フレーム内のテキストが提示される領域に対応する、請求項5に記載のコンピュータ実装方法。
  7. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレーム内で特定される少なくとも1つの第1オブジェクトに基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレーム内で特定される少なくとも1つの第2オブジェクトに基づいて生成される、請求項1に記載のコンピュータ実装方法。
  8. 前記第1フィンガープリントは、前記少なくとも1つの第1オブジェクトを記述する第1メタデータに関連付けられ、前記第2フィンガープリントは、前記少なくとも1つの第2オブジェクトを記述する第2メタデータに関連付けられる、請求項1に記載のコンピュータ実装方法。
  9. 前記第1フィンガープリントおよび前記第2フィンガープリントは、同じタイプのメディア・フィンガープリントに対応する、請求項1に記載のコンピュータ実装方法。
  10. メディア・フィンガープリントの前記タイプは、音声フィンガープリントおよび映像フィンガープリントのうちの1つに対応する、請求項9に記載のコンピュータ実装方法。
  11. 少なくとも1つのプロセッサと、
    命令を記憶するメモリとを備えるシステムであって、前記命令が前記少なくとも1つのプロセッサによって実行されたときに、前記システムに、
    テスト・コンテンツ・アイテムに対応する1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントを生成する工程と、
    前記テスト・コンテンツ・アイテムに対応する前記1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントを生成する工程と、
    前記少なくとも1つの第1フィンガープリントに基づいて、1以上の参照コンテンツ・アイテムを決定する工程と、
    前記テスト・コンテンツ・アイテムを、前記少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価する工程と、
    行わせる、システム。
  12. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームに対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームに対応する第2組の特徴に少なくとも部分的に基づいて生成される、請求項11に記載のシステム。
  13. 前記第1組の特徴は、前記第2組の特徴よりも少ない特徴を含む、請求項12に記載のシステム。
  14. 前記第1フィンガープリントは、前記第1フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第1メタデータに関連付けられ、前記第2フィンガープリントは、前記第2フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第2メタデータに関連付けられる、請求項11に記載のシステム。
  15. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームの第1領域に対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームの第2領域に対応する第2組の特徴に少なくとも部分的に基づいて生成される、請求項11に記載のシステム。
  16. 命令を含む非一時的コンピュータ可読記憶媒体であって、
    前記命令がコンピューティング・システムの少なくとも1つのプロセッサによって実行されたときに、前記コンピューティング・システムに、
    テスト・コンテンツ・アイテムに対応する1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントを生成する工程と、
    前記テスト・コンテンツ・アイテムに対応する前記1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントを生成する工程と、
    前記少なくとも1つの第1フィンガープリントに基づいて、1以上の参照コンテンツ・アイテムを決定する工程と、
    前記テスト・コンテンツ・アイテムを、前記少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価する工程と、
    を含む方法を行わせる、非一時的コンピュータ可読記憶媒体。
  17. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームに対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームに対応する第2組の特徴に少なくとも部分的に基づいて生成される、請求項16に記載の非一時的コンピュータ可読記憶媒体。
  18. 前記第1組の特徴は、前記第2組の特徴よりも少ない特徴を含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記第1フィンガープリントは、前記第1フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第1メタデータに関連付けられ、前記第2フィンガープリントは、前記第2フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第2メタデータに関連付けられる、請求項16に記載の非一時的コンピュータ可読記憶媒体。
  20. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームの第1領域に対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームの第2領域に対応する第2組の特徴に少なくとも部分的に基づいて生成される、請求項16に記載の非一時的コンピュータ可読記憶媒体。
  21. コンピューティング・システムが、テスト・コンテンツ・アイテムに対応する1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントを生成する工程と、
    前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムに対応する前記1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントを生成する工程と、
    前記コンピューティング・システムが、前記少なくとも1つの第1フィンガープリントに基づいて、1以上の参照コンテンツ・アイテムを決定する工程と、
    前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムを、前記少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価する工程と、
    を含む、コンピュータ実装方法。
  22. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームに対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームに対応する第2組の特徴に少なくとも部分的に基づいて生成され、
    任意選択として、前記第1組の特徴は、前記第2組の特徴よりも少ない特徴を含む、
    請求項21に記載のコンピュータ実装方法。
  23. 前記第1フィンガープリントは、前記第1フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第1メタデータに関連付けられ、前記第2フィンガープリントは、前記第2フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第2メタデータに関連付けられる、請求項21または22に記載のコンピュータ実装方法。
  24. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームの第1領域に対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームの第2領域に対応する第2組の特徴に少なくとも部分的に基づいて生成され、
    任意選択として、前記第1領域は、前記フレーム内のテキストが提示される領域に対応する、
    請求項21〜23のいずれか一項に記載のコンピュータ実装方法。
  25. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレーム内で特定される少なくとも1つの第1オブジェクトに基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレーム内で特定される少なくとも1つの第2オブジェクトに基づいて生成される、請求項21〜24のいずれか一項に記載のコンピュータ実装方法。
  26. 前記第1フィンガープリントは、前記少なくとも1つの第1オブジェクトを記述する第1メタデータに関連付けられ、前記第2フィンガープリントは、前記少なくとも1つの第2オブジェクトを記述する第2メタデータに関連付けられる、請求項21〜25のいずれか一項に記載のコンピュータ実装方法。
  27. 前記第1フィンガープリントおよび前記第2フィンガープリントは、同じタイプのメディア・フィンガープリントに対応し、
    任意選択として、メディア・フィンガープリントの前記タイプは、音声フィンガープリントおよび映像フィンガープリントのうちの1つに対応する、請求項21〜26のいずれか一項に記載のコンピュータ実装方法。
  28. 少なくとも1つのプロセッサと、
    命令を記憶するメモリとを備えるシステムであって、
    前記命令が前記少なくとも1つのプロセッサによって実行されたときに、前記システムに、
    テスト・コンテンツ・アイテムに対応する1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントを生成する工程と、
    前記テスト・コンテンツ・アイテムに対応する前記1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントを生成する工程と、
    前記少なくとも1つの第1フィンガープリントに基づいて、1以上の参照コンテンツ・アイテムを決定する工程と、
    前記テスト・コンテンツ・アイテムを、前記少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価する工程と、
    を行わせる、システム。
  29. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームに対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームに対応する第2組の特徴に少なくとも部分的に基づいて生成され、
    任意選択として、前記第1組の特徴は、前記第2組の特徴よりも少ない特徴を含む、
    請求項28に記載のシステム。
  30. 前記第1フィンガープリントは、前記第1フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第1メタデータに関連付けられ、前記第2フィンガープリントは、前記第2フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第2メタデータに関連付けられる、請求項28または29に記載のシステム。
  31. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームの第1領域に対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームの第2領域に対応する第2組の特徴に少なくとも部分的に基づいて生成される、請求項28〜30のいずれか一項に記載のシステム。
  32. 命令を含む非一時的コンピュータ可読記憶媒体であって、
    前記命令がコンピューティング・システムの少なくとも1つのプロセッサによって実行されたときに、前記コンピューティング・システムに、
    テスト・コンテンツ・アイテムに対応する1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第1フィンガープリントを生成する工程と、
    前記テスト・コンテンツ・アイテムに対応する前記1以上のフレームに少なくとも部分的に基づいて、少なくとも1つの第2フィンガープリントを生成する工程と、
    前記少なくとも1つの第1フィンガープリントに基づいて、1以上の参照コンテンツ・アイテムを決定する工程と、
    前記テスト・コンテンツ・アイテムを、前記少なくとも1つの第2フィンガープリントに基づいて一致するコンテンツを特定するために、少なくとも1つの参照コンテンツ・アイテムに対して評価する工程と、
    を含む方法を行わせる、非一時的コンピュータ可読記憶媒体。
  33. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームに対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームに対応する第2組の特徴に少なくとも部分的に基づいて生成され、
    任意選択として、前記第1組の特徴は、前記第2組の特徴よりも少ない特徴を含む、
    請求項32に記載の非一時的コンピュータ可読記憶媒体。
  34. 前記第1フィンガープリントは、前記第1フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第1メタデータに関連付けられ、前記第2フィンガープリントは、前記第2フィンガープリントがそこから生成された前記1以上のフレームを少なくとも記述する第2メタデータに関連付けられる、請求項32または33に記載の非一時的コンピュータ可読記憶媒体。
  35. 前記少なくとも1つの第1フィンガープリントは、前記1以上のフレームの第1領域に対応する第1組の特徴に少なくとも部分的に基づいて生成され、前記少なくとも1つの第2フィンガープリントは、前記1以上のフレームの第2領域に対応する第2組の特徴に少なくとも部分的に基づいて生成される、請求項32〜34のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
JP2019519960A 2016-06-27 2016-12-30 一致するコンテンツを特定するためのシステムおよび方法 Active JP6903751B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201662355043P 2016-06-27 2016-06-27
US62/355,043 2016-06-27
US15/291,003 2016-10-11
US15/290,999 2016-10-11
US15/291,002 US10650241B2 (en) 2016-06-27 2016-10-11 Systems and methods for identifying matching content
US15/291,003 US20170371963A1 (en) 2016-06-27 2016-10-11 Systems and methods for identifying matching content
US15/290,999 US20170372142A1 (en) 2016-06-27 2016-10-11 Systems and methods for identifying matching content
US15/291,002 2016-10-11
US15/394,420 US20190020913A9 (en) 2016-06-27 2016-12-29 Systems and methods for identifying matching content
US15/394,420 2016-12-29
PCT/US2016/069551 WO2018004740A1 (en) 2016-06-27 2016-12-30 Systems and methods for identifying matching content

Publications (2)

Publication Number Publication Date
JP2019527444A true JP2019527444A (ja) 2019-09-26
JP6903751B2 JP6903751B2 (ja) 2021-07-14

Family

ID=60786202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019519960A Active JP6903751B2 (ja) 2016-06-27 2016-12-30 一致するコンテンツを特定するためのシステムおよび方法

Country Status (10)

Country Link
US (1) US20190020913A9 (ja)
JP (1) JP6903751B2 (ja)
KR (1) KR20190022662A (ja)
CN (1) CN109690538B (ja)
AU (1) AU2016412997A1 (ja)
BR (1) BR112018077322A2 (ja)
CA (1) CA3029314A1 (ja)
IL (1) IL263898A (ja)
MX (1) MX2019000222A (ja)
WO (1) WO2018004740A1 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10445140B1 (en) 2017-06-21 2019-10-15 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US10725826B1 (en) * 2017-06-21 2020-07-28 Amazon Technologies, Inc. Serializing duration-limited task executions in an on demand code execution system
US10536757B2 (en) * 2017-08-17 2020-01-14 The Nielsen Company (Us), Llc Methods and apparatus to synthesize reference media signatures
US11310158B2 (en) * 2017-12-08 2022-04-19 Corsa Technology Inc. Packet classification using fingerprint hash table
US10791353B2 (en) * 2018-02-13 2020-09-29 Ernest Huang Systems and methods for content management of live or streaming broadcasts and video publishing systems
US10970471B2 (en) * 2018-04-23 2021-04-06 International Business Machines Corporation Phased collaborative editing
US11227126B2 (en) * 2018-05-02 2022-01-18 International Business Machines Corporation Associating characters to story topics derived from social media content
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US10715840B2 (en) * 2018-07-19 2020-07-14 Gracenote, Inc. Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN108882016A (zh) * 2018-07-31 2018-11-23 成都华栖云科技有限公司 一种视频基因数据提取的方法及系统
US11528525B1 (en) * 2018-08-01 2022-12-13 Amazon Technologies, Inc. Automated detection of repeated content within a media series
US11037304B1 (en) 2018-09-10 2021-06-15 Amazon Technologies, Inc. Automated detection of static content within portions of media content
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11166077B2 (en) * 2018-12-20 2021-11-02 Rovi Guides, Inc. Systems and methods for displaying subjects of a video portion of content
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
EP3942492A4 (en) * 2019-03-21 2022-12-14 Warner Bros. Entertainment Inc. AUTOMATIC RISK ASSESSMENT OF MULTIMEDIA CONTENT PRODUCTION USING AN ELECTRONIC DATA SET
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11449545B2 (en) * 2019-05-13 2022-09-20 Snap Inc. Deduplication of media file search results
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US20220358762A1 (en) * 2019-07-17 2022-11-10 Nagrastar, Llc Systems and methods for piracy detection and prevention
US11700285B2 (en) 2019-07-26 2023-07-11 Rovi Guides, Inc. Filtering video content items
US11695807B2 (en) * 2019-07-26 2023-07-04 Rovi Guides, Inc. Filtering video content items
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
CN112597345B (zh) * 2020-10-30 2023-05-12 深圳市检验检疫科学研究院 一种实验室数据自动采集与匹配方法
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
CN113035213B (zh) * 2020-12-24 2022-07-22 中国电影科学技术研究所 数字音频水印检测方法及装置
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285907A (ja) * 2005-04-05 2006-10-19 Nippon Hoso Kyokai <Nhk> 指定流通コンテンツ特定装置、指定流通コンテンツ特定プログラムおよび指定流通コンテンツ特定方法
JP2009147603A (ja) * 2007-12-13 2009-07-02 Omron Corp 動画像同定装置
JP2009302723A (ja) * 2008-06-11 2009-12-24 Fujitsu Electronics Inc 画像処理装置、方法およびプログラム
US20100036781A1 (en) * 2008-08-07 2010-02-11 Electronics And Telecommunications Research Institute Apparatus and method providing retrieval of illegal motion picture data
JP2010074832A (ja) * 2008-09-16 2010-04-02 Widilab デジタル動画コンテンツの類似度の測定方法、これを用いる動画コンテンツの管理方法、及び前記管理方法を用いる動画コンテンツの管理システム
JP2010186307A (ja) * 2009-02-12 2010-08-26 Kddi Corp 動画コンテンツ識別装置および動画コンテンツ識別方法
JP2011188342A (ja) * 2010-03-10 2011-09-22 Sony Corp 情報処理装置、情報処理方法及びプログラム
US20130166492A1 (en) * 2011-12-21 2013-06-27 At&T Mobility Ii Llc Digital Rights Management Using a Digital Agent

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8189945B2 (en) * 2009-05-27 2012-05-29 Zeitera, Llc Digital video content fingerprinting based on scale invariant interest region detection with an array of anisotropic filters
US8335786B2 (en) * 2009-05-28 2012-12-18 Zeitera, Llc Multi-media content identification using multi-level content signature correlation and fast similarity search
US8195689B2 (en) * 2009-06-10 2012-06-05 Zeitera, Llc Media fingerprinting and identification system
US8422731B2 (en) * 2008-09-10 2013-04-16 Yahoo! Inc. System, method, and apparatus for video fingerprinting
US8594392B2 (en) * 2009-11-18 2013-11-26 Yahoo! Inc. Media identification system for efficient matching of media items having common content
WO2012089251A1 (en) * 2010-12-29 2012-07-05 Telecom Italia S.P.A. Method and system for syncronizing electronic program guides
US8966571B2 (en) * 2012-04-03 2015-02-24 Google Inc. Detection of potentially copyrighted content in user-initiated live streams
KR101315970B1 (ko) * 2012-05-23 2013-10-08 (주)엔써즈 오디오 신호를 이용한 콘텐츠 인식 장치 및 방법
US8938089B1 (en) * 2012-06-26 2015-01-20 Google Inc. Detection of inactive broadcasts during live stream ingestion
US9661361B2 (en) * 2012-09-19 2017-05-23 Google Inc. Systems and methods for live media content matching
US20140161263A1 (en) * 2012-12-10 2014-06-12 Microsoft Corporation Facilitating recognition of real-time content
US9495451B2 (en) * 2013-01-07 2016-11-15 Gracenote, Inc. Identifying video content via fingerprint matching
US9465995B2 (en) * 2013-10-23 2016-10-11 Gracenote, Inc. Identifying video content via color-based fingerprint matching
US9549125B1 (en) * 2015-09-01 2017-01-17 Amazon Technologies, Inc. Focus specification and focus stabilization

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006285907A (ja) * 2005-04-05 2006-10-19 Nippon Hoso Kyokai <Nhk> 指定流通コンテンツ特定装置、指定流通コンテンツ特定プログラムおよび指定流通コンテンツ特定方法
JP2009147603A (ja) * 2007-12-13 2009-07-02 Omron Corp 動画像同定装置
JP2009302723A (ja) * 2008-06-11 2009-12-24 Fujitsu Electronics Inc 画像処理装置、方法およびプログラム
US20100036781A1 (en) * 2008-08-07 2010-02-11 Electronics And Telecommunications Research Institute Apparatus and method providing retrieval of illegal motion picture data
JP2010074832A (ja) * 2008-09-16 2010-04-02 Widilab デジタル動画コンテンツの類似度の測定方法、これを用いる動画コンテンツの管理方法、及び前記管理方法を用いる動画コンテンツの管理システム
JP2010186307A (ja) * 2009-02-12 2010-08-26 Kddi Corp 動画コンテンツ識別装置および動画コンテンツ識別方法
JP2011188342A (ja) * 2010-03-10 2011-09-22 Sony Corp 情報処理装置、情報処理方法及びプログラム
US20130166492A1 (en) * 2011-12-21 2013-06-27 At&T Mobility Ii Llc Digital Rights Management Using a Digital Agent

Also Published As

Publication number Publication date
US20180192101A1 (en) 2018-07-05
CN109690538B (zh) 2023-09-12
AU2016412997A1 (en) 2019-01-31
JP6903751B2 (ja) 2021-07-14
WO2018004740A1 (en) 2018-01-04
MX2019000222A (es) 2019-09-18
US20190020913A9 (en) 2019-01-17
IL263898A (en) 2019-01-31
BR112018077322A2 (pt) 2019-04-02
CA3029314A1 (en) 2018-01-04
KR20190022662A (ko) 2019-03-06
CN109690538A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
JP6903751B2 (ja) 一致するコンテンツを特定するためのシステムおよび方法
JP6886513B2 (ja) 一致するコンテンツを特定するためのシステムおよび方法
JP6741778B2 (ja) 一致するコンテンツを識別するためのシステムおよび方法
KR102478802B1 (ko) 계층화 아키텍처를 기반으로 한 비디오를 위한 데이터 분석을 제공하는 시스템 및 방법
EP3264326A1 (en) Systems and methods for identifying matching content
EP3264325A1 (en) Systems and methods for identifying matching content
EP3264324A1 (en) Systems and methods for identifying matching content
EP3264323A1 (en) Systems and methods for identifying matching content
EP3223229A1 (en) Systems and methods for identifying matching content

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210422

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210623

R150 Certificate of patent or registration of utility model

Ref document number: 6903751

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350