JP5031217B2 - 複数同期データストリームのためのデータベースルックアップ高速化のためのシステムおよび方法 - Google Patents

複数同期データストリームのためのデータベースルックアップ高速化のためのシステムおよび方法 Download PDF

Info

Publication number
JP5031217B2
JP5031217B2 JP2005287842A JP2005287842A JP5031217B2 JP 5031217 B2 JP5031217 B2 JP 5031217B2 JP 2005287842 A JP2005287842 A JP 2005287842A JP 2005287842 A JP2005287842 A JP 2005287842A JP 5031217 B2 JP5031217 B2 JP 5031217B2
Authority
JP
Japan
Prior art keywords
trace
media
client
traces
cache
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.)
Expired - Fee Related
Application number
JP2005287842A
Other languages
English (en)
Other versions
JP2006146883A (ja
Inventor
ジェイ.バージス クリス
シー.プラット ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006146883A publication Critical patent/JP2006146883A/ja
Application granted granted Critical
Publication of JP5031217B2 publication Critical patent/JP5031217B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • G06F16/433Query formulation using audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/438Presentation of query results
    • G06F16/4387Presentation of query results by the use of playlists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/632Query formulation
    • G06F16/634Query by example, e.g. query by humming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • 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/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Description

本発明は 、放送メディアストリーム中のメディアオブジェクトの識別に関し、詳細には、同期データストリーム中の、歌曲のような、メディアオブジェクトの同時サーバ側識別を、多数の個別クライアントに対し、サーバデータベースクエリー負荷を最小にしながら提供するためのシステムおよび方法に関する。
識別の目的で使用される「特性」を信号から抽出するための基本構想は多数存在する。例えば、オーディオ信号またはオーディオファイル等1次元信号に関しては、オーディオ特性抽出が、オーディオ信号中のメディアオブジェクトの関与する分類、検索、および識別の作業に必要なステップとして使用されて来た。識別のために、抽出特性または「トレース」を、一般的にオーディオ信号内の要素またはオーディオ信号全体の何れかを識別する既知の「フィンガープリント」と比較する。このような公知のメディアオブジェクトの識別の基本構想は、従来「オーディオフィンガープリント法」として公知である。
多数の従来の基本スキームが、このようなオーディオフィンガープリント技術を採用して、ラジオまたはインターネット放送などのオーディオストリーム中の特定の歌曲の識別を提供して来た。例えば、オーディオストリームを聴取するユーザは、ある歌を聴いて、題名、アーティスト、アルバムなどを知りたいと思うことがあるであろう。このとき、従来のオーディオフィンガープリント技術を使用して、歌曲のサンプルから1つまたは複数のトレースを抽出する。典型的には、次いで、これらのトレースを既知の音楽のデータベース内のフィンガープリントと比較してマッチを識別し、その結果をユーザに提供する。
さらに、このような技術は、多数の従来のサービスにも採用されて、一般的にオーディオフィンガープリント技術とデータベース比較に基づく有料歌曲識別またはルックアップサービスを提供して来た。例えば、比較的有名な「SHAZAM」音楽識別サービスのようないくつかの歌曲識別サービスが運営され、携帯電話ネットワークを通じて特定の歌曲をユーザのため識別する。詳細には、SHAZAMが提供するようなシステムは一般的に、ユーザに対し、まず自分の携帯電話で番号をダイアルすること、および次いで約15〜30秒間、電話を音楽のほうに向けることを要求することによって動作する。SHAZAMサービスは次いで、その音楽(または音楽から計算されるトレース)を既知の音楽のデータベースと比較することによってその音楽を識別する。SHAZAMサービスは、次いで、識別される歌曲の題名、アーティスト、アルバムなどを含むテキストメッセージをユーザに戻す。
米国特許出願公開第2003/0236661号明細書 米国特許出願公開第10/602,438号明細書 Christopher J. C. Burges, John C. Platt, Soumaya Jana, "Distortion Discriminant Analysis for Audio Fingerprinting", IEEE Transactions on Speech and Audio Processing, May 2003, Vol. 11, No. 3, pp 165-174 Jonathan Goldstein, John C. Platt, Christopher J. C. Burges, "Indexing High Dimensional Rectangles for Fast Multimedia Identification", Microsoft Technical Report MSR-TR-2003-38, October 28 2003
残念なことに、上述の種類のルックアップサービスに伴う1つの問題は、音楽識別システムに対し任意の所定時間にアクセスするユーザ数が増加するにつれて、毎秒のデータベース検索要求の数も増加することである。この問題は、例えば、SHAZAMが提供するようなサービスにおいては、ユーザは、識別したいと思う歌曲ごとに電話呼出およびサービス自体に対し支払いをしなければならないので、軽減される。この方法によるユーザ課金の効果は、システムの同時ユーザの数を制限する傾向にあり、それによりサーバ負荷全体が減少するからである。このようなシステムに伴う別の問題は、歌曲全体のサンプル(電話サービスの周波数/帯域幅制約により制限される)をサーバに送信する必要があり、サーバは次いで、送信されるメディアストリームのサンプルからトレースを計算する必要があることである。
従って、同時ユーザの数が次第に大きくなるにつれ、入ってくる音楽からトレースまたはフィンガープリントを計算し、これらフィンガープリントの識別のためデータベース検索を実行して個別ユーザに応答するための、それに相当する計算負荷が、比較的大きい専用サーバのバンクをさえも急速に圧倒することがある。その結果、このような基本スキームは、同時ユーザの数が比較的小さいとの仮定により、制限される傾向がある。さらに、このような基本構想の規模を大きくして、多数の同時ユーザを取扱うのに十分な数のサーバを設けることは可能であるけれども、数千万ドルにもなる可能性のあるそのようなシステムに掛かる費用は、抑制すべきものと思われる。
したがって、必要なのは、歌曲のリアルタイム識別を提供するシステムおよび方法である。さらに、当該システムおよび方法は、歌曲識別サービスを多数の同時ユーザに対し効率良く提供する能力がある一方で、同時にサーバ負荷とデータベース検索を最小にしなければならない。最後に、当該システムおよび方法はさらに、複数のクライアントコンピュータの各々によってメディアストリームのサンプルからトレースを計算するタスクを実行することを要求して、その負荷を除去することにより、サーバ負荷を最小にしなければならない。
ここで記述するような「メディア識別子」は、例えば、ラジオ、テレビ、またはインターネット放送のような、ストリーミングメディア放送に内蔵されるメディアオブジェクトのリアルタイムサーバ側識別を、個別クライアントに対し提供することにより、上記で確認した問題を解決するように動作する。これらのメディアオブジェクトは、例えば、歌曲、コマーシャル、ジングル、放送局識別子などを含む。一般的に、メディア識別子は、最低1つのサーバを設けることにより動作する。このサーバは、クライアントそれぞれがメディアストリームのサンプル部分から計算する「トレース」を、既知のフィンガープリントのデータベースと比較することにより、放送メディアストリーム中のメディアオブジェクトのリアルタイム識別を個々のクライアントに提供する。一般的に、計算されたトレースは、クライアントそれぞれがサーバに対して送信し、直接またはサーバ側トレースキャッシュを経由して、既知の識別の、格納され、予め計算されたトレース(ここでは「フィンガープリント」と呼びクライアントが生成するトレースと区別する)の大型データベースと比較される。
詳細には、クライアントごとに、入ってくるメディアストリームの固定長の断片を使用して、低次元「トレース」を繰り返し間隔で計算する。試験実施形態においては、このようなトレースを各クライアントが、メディアストリームの約6秒の程度のサンプルから、毎秒約6回の程度で計算して送付した。明らかに、長短のサンプル採取周期を使用して、多数または少数のトレースを使用することができる。これらのパラメータは、一般的にトレース計算のため使用する特定の技術に従う。
メディアストリームからのトレースの計算は、例えば、特許文献1「ノイズ耐性特性抽出のためのシステムおよび方法("SYSTEM AND METHOD FOR NOISE-ROBUST FEATURE EXTRACTION")」(その主題はここに参照により組み込まれている)に記述するシステムのような、従来の方法を使用して達成される。一般的に、このようなシステムは、入ってくるメディアストリームからサンプルを採取するステップと、サンプル値信号から低次元特性ベクトル(すなわち、「トレース」)を計算するステップにより動作する。サンプル値メディアストリームからのトレース計算は、当業者には公知なので、ここで詳細は記述しない。
フィンガープリントデータベースを構成するフィンガープリントは、一般的に、トレースと同様の方法で、同一のアルゴリズムを使用して計算される。しかしながら、トレースと異なり、フィンガープリントは一度だけ、既知フィンガープリントのデータベースを構築するために、メディアオブジェクトごとにサンプルから計算される。一旦作成されると、このデータベースはサーバが単にアクセスするだけで、既知のメディアオブジェクトのためにフィンガープリントを再計算する必要はない。しかしながら、既知のフィンガープリントのデータベースは、次いで、新規のメディアオブジェクト(歌曲など)が作成されるにつれ、新規のフィンガープリントを使用して更新することができる。したがって、既知フィンガープリントのデータベースは、ここに記述するメディア識別子が実行するメディア識別動作の間、サーバ上で余分の計算負荷を除去するため、オフラインで作成し次いで簡単にサーバに提供するのが好適である。
クライアントごとに、サーバは次いで、不完全なマッチを使用して、いずれかのトレースがいずれかのデータベース中のフィンガープリントと何れかの閾値または許容値の範囲内でマッチするか否かを判定する。このような不完全なマッチの技術を使用することは、完全なマッチの技術よりも好ましい。任意のクライアントが計算するトレースは、トレースがメディアストリームの正確に同一の部分から計算される場合であっても、ノイズ、混信、信号減衰などのため変化することがあるからである。その上、不完全なマッチの使用は、トレースを計算するメディアストリームの標本採取部分の小さい一時的オフセットをも考慮に入れる。一実施形態において、不完全なマッチは、非特許文献1に記述されている技術において知られているように、フィンガープリント固有の再正規化を使用して正確度を改良する。
一人のクライアントからのトレースがマッチするときはいつでも、サーバはそのクライアントに対し、そのトレースに相当する特定メディアオブジェクトの識別を知らせる。歌曲のようなメディアオブジェクトの場合、この識別は、一般的に、例えば、アーティスト、曲名、アルバム名、ジャンルなどの情報を含む。明らかに、既知メディアオブジェクトが与えられると、任意の所望の情報を、そのメディアオブジェクトの識別に使用されるデータベース中のフィンガープリントに関連付けることができる。
しかしながら、サーバに送付されるトレースごとにフィンガープリントデータベースの強引な強制検索を準備する代わりに、ここに記述するメディア識別子は、付加的なサーバ側キャッシュを導入する。このキャッシュは、存在するメディアストリームは有限数であること、および任意の所定時間に同一メディアストリームを受信するユーザは一般的に多数であることを仮定すると、任意の時刻に、ユーザ生成トレースの多くはほとんど同一であると考えられるという事実を利用する。言い換えると、任意の所与の時点において、特定のラジオ、テレビ、またはインターネット放送等の同一メディアストリームを聴取する多数の人々が、潜在的には数十万人または百万人さえ、存在すると思われる。この所見により、入ってくるトレースとマッチするフィンガープリントに関するデータベース検索の結果との両方をキャッシュするサーバ側キャッシュを作成することができる。
詳細には、各クライアントから入ってくる各トレースを、まず若干数のトレースを含むキャッシュに対して検査する。トレースがキャッシュに無いときは、完全データベース検索をおこない、そのデータベース検索の結果を、肯定的でも否定的でも、クライアントが送付するトレースと共にキャッシュに格納する。キャッシュとデータベース両方の検索は、例えば、ベーリング(bailing)(線形走査を使用する相違比較の速度を上げるための公知の方法)を使用する線形走査(すなわち、逐次)等の、従来技術を使用して行う。
別の実施形態において、データベースの検索は、同時係属の特許文献2「ビットベクトルインデックス付与を使用する多次元データオブジェクト検索("Multidimensional Data Object Searching Using Bit Vector Indices")」(その主題はここに参照により組み込まれている)に記述するような、ビットベクトルインデックス付与の使用により加速される。ビットベクトルインデックス付与法はまた、非特許文献2(その主題はここに参照により組み込まれている)にも記述されている。
一般的に、上記の米国特許出願およびそれに相当するマイクロソフト技術報告書に記述するビットベクトルインデックス付与法は、高次元領域に対するポイントクエリーを迅速に実行する問題に対処する。このようなクエリーは、重要性を増しつつあるマルチメディア識別および検索の問題において有用である。ここでは、異なるデータベースエントリが同一性に関し異なる尺度を有する。高次元最近接物およびイプシロン範囲クエリーのためのインデックス付与に焦点を合わせる典型的データベースインデックス付与とは対照的に、高次元領域に対するポイントクエリーのためのインデックス付与は、冗長度とビットベクトルインデックス付与の組合せに依存して顕著な性能利得を達成する効率の良いインデックス付与法を提供する。このような方法は、実在の線形走査を超える著しい性能増加を与えることが観察されて来た。
データベース検索の否定的な結果、すなわち、データベース内のフィンガープリントに対するトレースのマッチが無いことは、クライアントには送信さない。データベース検索の肯定的な結果、すなわち、トレースとフィンガープリントとの間のマッチは、トレースを計算したメディアオブジェクトを識別するため、クライアントに送信する。上述したように、フィンガープリントデータベースを検索する前に、キャッシュを検索してマッチトレースを確認する。従って、キャッシュに格納されるトレースに対しマッチが見出されるときは、それ以上のデータベース検索は必要がなくなる。キャッシュ内のトレースは、関連するメディアオブジェクトの識別を含むか、または単にマッチするフィンガープリントが無いことを示すだけかの何れかだからである。トレースがデータベース内のフィンガープリントにマッチする場合は、そのマッチするフィンガープリントに関連する任意の識別情報を、クライアントに返信する。
メディア識別子が提供するサーバ側キャッシュの長所の1つは、キャッシュのサイズが比較的小さく、キャッシュ検索が極めて迅速になることである。特に、キャッシュのサイズは、クライアント間のメディアストリーム内のポイント受信に関する最大予想遅延と、識別サービスを提供する独自のメディアストリームの数の関数である。さらに、キャッシュのサイズはユーザ数の関数ではないことに注意されたい。
特に、各特定メディア放送ストリームは、その特定メディアストリームを受信する各クライアントについてほぼ同期している。例えば、同一ラジオ放送局を受信する任意の二人以上のクライアントは、約1秒かその程度の極めて小さい時間のオフセットの範囲内で、同一信号を受信していると思われる。ほとんどのストリーミングメディアのインターネットまたはネットワーク放送についても同様である。
したがって、最大予想遅延時間(遅延時間には、各クライアントがトレースを計算してサーバに対し送信するための最大予想遅延をも含む)よりも長い間、トレースをメディアキャッシュ内に保持する必要はない。言い換えると、この遅延は単に、サーバの特定メディアオブジェクトの所定の区画に関する最初のトレースの受信と、サーバの同一メディアオブジェクトの区画に関する(最も遅いクライアントからの)最後のトレースの受信との間の最大時間である。従って、トレースは数秒程度の短い期間だけ保持すればよい。その結果、固有の入ってくるトレース全てを記憶する大きいキャッシュの必要はない。
関連する実施形態では、キャッシュ内のトレース寿命を設定するため最大遅延を判定または評価しようとするよりもっと簡単な解決策は、約1秒またはその程度の短時間の範囲でどのような入力トレースとのマッチにも失敗した後、単にトレースをキャッシュから削除することである。更に代替の実施形態においては、例えば、従来のLRU(使用頻度が最も低い(least recently used))論理に基いてトレースを落とす固定キャッシュサイズの使用を含む、別のキャッシュイングスキームも使用することが出来る。
上の要約の観点から、ここに記述するメディア識別子が、同期メディア放送ストリームについての多数の同時クライアント要求に関するリアルタイムメディア識別のため独自のシステムおよび方法を提供する。たった今記述した利点に加えて、メディア識別子の別の長所は、後続の添付図面との関連で行う詳細な説明から明らかになるであろう。
本発明の固有の特性、態様、および利点は、以下の記述、添付の請求項、および添付図面との関連でさらに良く理解されるであろう。
本発明の好適実施形態に関する以下の記述においては、本文書の一部を形成し、例証として本発明が実用される具体的実施形態を示す添付図面を参照する。本発明の範囲を逸脱することなく別の実施形態を使用し構造的な変更を行ってもよいことは理解されよう。
(1.0 動作環境例)
図1に、本発明の実施される適切なコンピューティングシステム環境100を示す。コンピューティングシステム環境100は、適切なコンピューティングシステム環境の一例に過ぎず、本発明の使用または機能の範囲に関し何ら制限を加えるものではない。コンピューティング環境100は、動作環境例100に示す構成部品のうちいずれか1つまたは組合せに対し何らかの従属性または要件を有すると解釈すべきでもない。
本発明は、多数の別の汎用または専用コンピューティングシステム環境または構成と共に動作する。本発明と共に使用するため適切な公知のコンピューティングシステム、環境および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド、ラップトップまたはモバイルコンピュータまたは携帯電話および携帯情報端末のような通信装置、マルチプロセッサシステム、マイクロプロセッサに基づくシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、大型コンピュータ、上述のシステムまたは装置のいずれかを含む分散コンピューティング環境等を含むが、これに限定されるものではない。
本発明は、マイクロホンアレー198のコンポーネントを含むハードウエアモジュールとの組合せにおいて、コンピュータにより実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的なコンテキストにおいて記述される。一般的に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。本発明は、1つの通信ネットワークによってリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境において実施されてもよい。分散コンピューティング環境において、プログラムモジュールは、メモリストレージ装置を含むローカルおよびリモート両方のコンピュータストレージ媒体の中に置かれる。図1を参照すると、本発明を実装するためのシステム例は、コンピュータ110の形で、汎用コンピューティング装置を含む。
コンピュータ110のコンポーネントは、これに限定されないが、処理装置120、システムメモリ130、および、システムメモリを含む各種システムコンポーネントを処理装置120に結合するシステムバス121を含む。システムバス121は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバズアーキテクチャのいずれかを使用するローカルバスを含む数種のバス構造のうちのいずれでも差し支えない。例示のためであり、限定ではないこのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとしても知られるPCI(Peripheral Component Interconnect)バスを含む。
コンピュータ110は、典型的に、様々なコンピュータ読み取り可能媒体を含む。コンピュータ読み取り可能媒体は、コンピュータ110がアクセスすることのできる任意の利用可能な媒体であり、揮発性および不揮発性媒体、取り外し可能および固定の媒体の両方を含む。例示のためであり、限定ではない、コンピュータ読み取り可能媒体は、コンピュータストレージ媒体および通信媒体を備えていてもよい。コンピュータストレージ媒体は、揮発性および不揮発性で取り外し可能および固定であり、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータのような情報を格納するための任意の方法または技術を使用して実装される媒体を含む。
コンピュータストレージ媒体は、これに限定されないが、RAM、ROM、PROM、EPROM、EEPROM、フラッシュメモリ、または他のメモリ技術を含み、また、CD−ROM、デジタル多用途ディスク(DVD)、または他の光ディスクストレージを含む。さらに、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージ装置、または所望の情報を格納するのに使用すること、およびコンピュータ110がアクセスすることのできる任意の他の媒体を含む。通信媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波またはその他の移送機構のような変調データ信号で実現し、任意の情報配送媒体を含む。「変調データ信号」と言う用語は、信号内の情報を符号化するように設定または変更された特徴を1つまたは複数有する信号を意味する。通信媒体は、それだけには限定されないが一例として、有線ネットワークまたは直接配線された接続のような有線媒体、および音響、RF、赤外線およびその他の無線媒体のような無線媒体を含む。また上記のどんな組み合わせでも、コンピュータ読み取り可能媒体の範囲内に含まれる。
システムメモリ130は、読取専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132のような、揮発性および/または不揮発性メモリの形のコンピュータストレージ媒体を含む。スタートアップ中などにコンピュータ110内の要素間で情報を転送する基本ルーチンを含む基本入出力システム133(BIOS)は、典型的にROM131内に格納される。RAM132は、処理装置120によって即座にアクセス可能であり、かつ/または現在動作中のデータおよび/またはプログラムモジュールを一般的に含む。例のためであり、限定ではなく、図1に、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。
コンピュータ110は、別の取り外し可能/固定で、揮発性/不揮発性のコンピュータストレージ媒体も含む。例示のために過ぎないが、図1は、固定で不揮発性の磁気媒体からの読み取りまたはそれへの書き込みを行うハードディスクドライブ141、取り外し可能で不揮発性の磁気ディスク152からの読み取りまたはそれへの書込を行う磁気ディスクドライブ151、およびCDROMまたは他の光媒体などの取り外し可能で不揮発性の光ディスク156からの読み取りまたはそれへの書き込みを行う光ディスクドライブ155を示す。動作環境例で使用することのできる他の取り外し可能/固定で揮発性/不揮発性のコンピュータストレージ媒体は、これに限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROMなどが含まれる。ハードディスクドライブ141は一般的に、インターフェイス140のような固定のメモリインターフェイスを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般的に、インターフェイス150のような取り外し可能メモリインターフェイスによってシステムバス121に接続される。
上に説明し図1に示すドライブおよびそれに関連するコンピュータストレージ媒体は、コンピュータによって読み取り可能な、命令、データ構造、プログラムモジュールおよび他のデータをコンピュータ110に提供する。図1において、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示す。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであっても異なっていてもよいことに注意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には、ここでは異なる番号を与え、少なくともこれらが異なるコピーであることを示す。ユーザは、キーボード162、および普通はマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161のような、入力装置を介して、コンピュータ110にコマンドおよび情報を入力する。
別の入力装置(図示せず)は、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、ラジオ受信機、およびテレビまたは放送ビデオ受信機などを含む。これらおよび他の入力装置は、システムバス121に結合される有線または無線のユーザ入力インターフェイス160を介して処理装置120に接続されることが多いが、例えば、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)、IEEE1394インターフェイス、ブルートウース・無線インターフェイス、IEEE802.11無線インターフェイスなど、他の従来のインターフェイスおよびバス構造によって接続されてもよい。さらに、コンピュータ110は、マイクロホンまたはマイクロホンアレー198のようなスピーチまたはオーディオ入力装置ばかりでなく、例えば、パラレル、シリアル,USB、IEEE1394、ブルートウース・のような従来の有線または無線インターフェイスを含むオーディオインターフェイス199を介して接続されるラウドスピーカ197または他の音響出力装置(sound output device)をも含む。
モニタ191または他の種類の表示装置も、ビデオインターフェイス190のようなインターフェイスを介してシステムバス121に接続される。モニタに加えて、コンピュータは、プリンタ196のような他の周辺出力装置を含み、周辺出力装置は、出力周辺装置インターフェイス195を介して接続されてもよい。
コンピュータ110は、リモートコンピュータ180のような、1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境において動作することもできる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の一般のネットワークノードであってよく、一般的に、コンピュータ110に関して上述した要素の多数または全部を含むが、図1にはメモリストレージ装置181のみを示す。図1に示した論理接続は、ローカルエリアネットワーク(LAN)171および広域ネットワーク(WAN)173を含むが、他のネットワークも含んでもよい。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてはごく一般的である。
LANネットワーク環境において使用するとき、コンピュータ110は、ネットワークインターフェイスまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境において使用するとき、コンピュータ110は、インターネットなどのWAN173上に通信を確立するためにモデム172または他の手段を一般的に含む。内蔵または外付けのモデム172は、ユーザ入力インターフェイス160、または別の適切な機構を介してシステムバス121に接続されてよい。ネットワーク環境において、コンピュータ110またはその部分に関して示されたプログラムモジュールを、リモートストレージ装置に格納してもよい。例示のため、制限ではなく、図1は、メモリ装置181に常駐するものとしてリモートアプリケーションプログラム185を示す。図示のネットワーク接続は例であって、コンピュータ間に通信リンクを確立する別の手段を使用して差し支えないことは理解されよう。
ここで動作環境例の記述を終え、この説明の残りの部分は、ストリーミングメディア放送に埋め込まれたメディアオブジェクトのリアルタイムサーバ側での識別をクライアントに提供する「メディア識別子」を実施するプログラムおよびプロセスの記述に専念する。
(2.0 序論)
「メディア識別子(Media Identifier)」は、ここに記述するように、ラジオ、テレビ、またはインターネット放送のような監視されたメディアストリームに埋め込まれたメディアオブジェクトのリアルタイムの識別を個別のクライアントに提供する。このようなメディアオブジェクトは、歌曲、コマーシャル、ジングル、放送局の識別子などを含む。
一般的に、メディアオブジェクトの識別は、クライアントによって生成された「トレース」を、既知の識別の、格納され、かつ予め計算されたトレース(ここでは、「フィンガープリント」と呼んでクライアントによって生成されたトレースと区別する)の膨大なデータベースと比較することによって、個別のクライアントに提供される。これらのクライアントによって生成されたトレースは、メディアストリームのサンプルから各クライアントが継続して計算され、識別のためにサーバに送信される。
さらに、有限数のメディアストリームとそれよりはるかに多数のクライアントが与えられた場合でも、クライアントの多くは、同時に同じメディアストリームを監視するので、サーバに送られるトレースの多くは、ほぼ一致すると思われる。この所見は、特定のトレースを識別するのに必要なデータベースクエリーの数を制限するために、検索可能な動的トレースキャッシュの作成において使用され、およびこのようにしてメディアオブジェクトがこれらのトレースと関連付けられる。データベースではなくトレースキャッシュを検索することの利点の1つは、トレースキャッシュが一般的に、桁違いに小さくできる一方で、フィンガープリントの機能的なデータベースが、何百万ものエントリを一般的に含むことができることである。
トレースキャッシュは、様々なクライアントが送った最新トレースの1つのコピーのみを、肯定的または否定的両方のデータベース検索結果と共にキャッシュする。言い換えると、1つのクライアントが送ったトレースで現在キャッシュに存在しないトレースはいずれも、以下に詳しく説明するように、少なくとも一時的にキャッシュ内に格納される。そのためデータベースクエリーを行う前にトレースキャッシュを検索する。データベースは、トレースキャッシュ内にマッチするトレースがないとき、クライアントによって生成された新規のトレースを識別するためだけにクエリーされる。さらに、トレースキャッシュに格納されるトレースは、時間の経過と共に削除される。一実施形態において、これは予め設定された単なる「寿命」であるが、関連した実施形態においては、この存続時間は、いずれかのクライアントによって、マッチする最後のトレースが送られてから後の時間に基づく。言い換えると、キャッシュのエントリは、マッチするトレースのヒットが無いまま古くなるのに伴い、キャッシュから機械的に削除される。
これらの一般概念を図2のアーキテクチャシステムのダイアグラムに示す。これは、メディア識別子を実装するためのコンポーネント間の全体的な機能的関係を示す。具体的には、図2は、複数のクライアント200の各々がメディア放送ストリーム210を受信することを示す。ここに詳細を説明するように、ラジオ局放送、テレビまたは有線放送、ネットワークベースのストリーミングメディアなどのような利用可能なメディアストリーム210の母集団は、潜在的なクライアント200の数よりも実質的に小さい。その結果、メディアストリーム210の多くは、2つ以上のクライアント200によって同時に監視され、何百、何千、もしくは何百万ものクライアントによって監視される可能性もある。しかしながら、メディアストリームは、ローカルに利用することのできる放送を含み、クライアントは、インターネット220または他のネットワークを介してサーバ230と通信しながら、世界のいかなる場所にも位置することができるが、全クライアント200が、全てのメディアストリーム210を利用し得るわけではないことに注意されたい。
クライアント200は、監視したメディアストリーム210からサンプルを取り、計算されたトレースをネットワークまたはインターネット220を介してサーバ230(またはサーバのバンク)に送る。次いで、サーバ230は、トレースキャッシュ240を検査し、必要であれば、フィンガープリントデータベース250を検査して、トレースが生成されたメディアオブジェクトを識別しようと試みる。識別された場合、特定のトレースに対応するメディア識別情報を、サーバ230がネットワーク220を介してクライアント200に戻す。
(2.1 システム概観)
上述したように、ここに記述するメディア識別子は、クライアントに、例えば、ラジオ、テレビ、またはインターネット放送のようなストリーミングメディア放送に埋め込まれたメディアオブジェクトのリアルタイムなサーバ側での識別を提供する。一般的に、メディア識別子は、少なくとも1つのサーバを設けることによって動作する。このサーバは、各クライアントがメディアストリームのサンプル部分から計算する「トレース」を既知のフィンガープリントのデータベースと比較することによって、放送メディアストリーム内のメディアオブジェクトのリアルタイムな識別を個別のクライアントに提供する。一般的に、計算されたトレースは、各クライアントがサーバに送り、直接か、またはサーバ側のトレースキャッシュを経由するかのいずれかによって、格納されている予め計算された既知の識別のフィンガープリントの膨大なデータベースと比較される。
次にサーバは、クライアントごとに、不完全なマッチを使用していずれかのトレースがデータベース内のいずれかのフィンガープリントと閾値または許容範囲の内でマッチするか否かを判定する。このような不完全なマッチ技術の使用は、完全なマッチ技術よりも好適である。任意のクライアントによって計算されるトレースは、トレースがメディアストリームの名目上同じ部分から計算される場合であっても、ノイズ、干渉、信号減衰などのためにある程度変化するからである。その上、不完全なマッチの使用は、トレースを計算するメディアストリームのサンプリング部分の小さい一時的オフセットをも考慮に入れる。
クライアントからのトレースが(トレースキャッシュまたはフィンガープリントデータベースのどちらかにおいて)あるフィンガープリントにマッチするときはいつでも、サーバは、クライアントに、そのトレースに対応する特定のメディアオブジェクトの同一性を知らせる。歌曲のようなメディアオブジェクトの場合、この同一性は、一般的に、例えば、アーティスト、歌曲の題名、アルバム名、ジャンルなどといった情報を含む。既知のメディアオブジェクトが与えられると、任意の所望の情報を、そのメディアオブジェクトの識別に使用されるデータベース内のフィンガープリントに関連させることができることは明らかである。
しかしながら、サーバに送られるトレースごとにフィンガープリントデータベースをくまなく強制的に検索する代わりに、ここに記述したメディア識別子は、追加のサーバ側のトレースキャッシュを導入する。サーバ側のトレースキャッシュは、いつでも、ユーザが生成したトレースの多くはほぼ同一であり得るという事実を利用し、メディアストリームの有限数があること、および与えられた任意の時間に同じメディアストリームを受信している多くのユーザがいることを仮定する。言い換えると、与えられた任意の時点において、特定のラジオ、テレビ、またはインターネット放送のような同じメディアストリームを聞いている人々は、多数、可能性としては数万人または百万人さえも、存在すると思われる。この所見により、入ってくるトレースおよびマッチするフィンガープリントに関するデータベースの検索結果の両方をキャッシュするサーバ側キャッシュを作成することを許容する。
具体的には、各クライアントから入ってくる各入ってくるトレースを、まず若干数のトレースを含むトレースキャッシュに対して検査する。トレースがキャッシュに無い場合は、トレースをそのキャッシュに格納して、データベースの完全なルックアップ(look up)を行う。そのデータベースルックアップの結果を、肯定的でも否定的でも、クライアントが送ったトレースと共にトレースキャッシュに格納する。トレースキャッシュとデータベース両方におけるルックアップは、例えば、(すなわち、連続して)ベーリング(線形走査を使用する距離比較の速度を上げるための公知の方法)を使用する線形走査のような、従来技術を使用して行う。
別の実施形態において、データベースのルックアップは、特許文献2に記述するような、ビットベクトルインデックス付与の使用により加速される。このビットベクトルインデックス付与法は、非特許文献2にも記述されている。
一般的に、前述の特許文献2およびそれに対応する非特許文献2に記述されたビットベクトルインデックス付与法は、高次元領域に対するポイントクエリーを迅速に実行する問題に取り組む。このようなクエリーは、重要性を増しつつあるマルチメディアの識別および検索の問題において有用である。ここでは、異なるデータベースエントリが類似性に関し異なる尺度を有する。高次元最近接およびイプシロン範囲クエリーのためにインデックスを付与することに焦点を合わせる典型的なデータベースのインデックス付与とは対照的に、高次元領域に対するポイントクエリーのためのインデックス付与は、冗長性とビットベクトルインデックス付与との組合せに依存して顕著な性能向上を達成する効率の良いインデックス付与法を提供する。このような方法は、実在の線形走査を超える性能の顕著な増加を与えることが認められている。
前述のデータベース検索の実施形態の各々では、データベース検索の否定的な結果、すなわちデータベース内のフィンガープリントにトレースのマッチが無いことは、クライアントに送信されない。データベース検索の肯定的な結果、すなわちトレースとフィンガープリントとの間のマッチは、トレースが計算されたメディアオブジェクトを識別することができるようにクライアントに送信される。上述したように、フィンガープリントデータベースを検索する前に、キャッシュを検索してマッチするトレースを識別する。その結果、キャッシュに格納されたトレースに関してマッチが見出された場合は、キャッシュ内のトレースが関連するメディアオブジェクトの識別を含むためか、またはマッチフィンガープリントが無いことを単に示しているとして、それ以上のデータベースのルックアップは必要ない。トレースがデータベース内のトレースとマッチする場合は、そのマッチするトレースに関連する全ての識別情報をクライアントに送信する。
(2.2 システムアーキテクチャ概観)
一般的なシステムダイアグラムによって、上に要約したプロセスを図3に示す。具体的には、図3のシステムダイアグラムは、ここに記述するようなメディア識別子を実装するためのプログラムモジュール間の相互関係を示す。
一般的に、メディア識別子は、各クライアントが、メディアストリームを受信するためのメディアストリームキャプチャモジュール305を使用してメディアストリーム210のうちの1つを受信し終えることによって、各クライアント200に関する動作を開始する。メディアストリーム210は、オーディオストリーム、ビデオストリーム、または両者が混ざり合ったものであることに注意されたい。次にクライアント200は、メディアストリームサンプリングモジュールを用い、リアルタイムで入ってきたメディアストリームからサンプリングする。各クライアントはトレース計算モジュール315を使用して、サンプリングしたメディアストリームから連続的にトレースを生成する。各クライアントによって生成されたトレースの数および頻度は、以下のセクション3においてさらに詳細に記述することに注意されたい。生成されたトレースは、トレース送信モジュール320に提供され、これがトレースをネットワークまたはインターネット220を介してサーバ230に送信する。
続いてサーバ230は、様々なクライアント200から送信されたトレースを受信するためのトレース受信モジュールを使用する。サーバ230が様々なクライアント200からトレースを受信し始めるとすぐに、そのトレースはトレースルックアップモジュール335に提供される。このモジュールは、まずトレースキャッシュ240を検索して、マッチするトレースを検出する。トレースキャッシュ内にマッチするトレースがない場合は、そのトレースをトレースキャッシュ内に格納し、トレースルックアップモジュール335を使用してフィンガープリントデータベース250の検索を実行する。
最後に、キャッシュ維持モジュール345が、キャッシュの全般的なクリーンアップ動作を準備する。具体的には、上述したように、サーバ230によって受信され、トレースキャッシュ240内で検出できない全トレースを、対応するデータベースの検索結果(肯定的または否定的のどちらか)と共にキャッシュに追加する。しかしながら、このプロセスに何らかの制限がないと、トレースキャッシュ240は急速にオーバーフローしてしまう。このように、セクション3で詳細に記述するように、トレースキャッシュは、時間の関数として古いトレースに関しクリーンアップを行う。詳細には、一実施形態において、キャッシュ維持モジュール345は、ある所定の期間より古いトレースをキャッシュから削除する。またはそれに替えて、キャッシュ維持モジュール345は、ある所定の期間中に、トレースルックアップモジュール335によって入ってくるトレースとマッチされなかったトレースを全て削除する。さらに別の実施形態において、キャッシュ維持モジュール345は、これらトレース寿命の組合せ、または肯定的データベース250ヒットおよび否定的データベースヒットを有するトレースについて異なる寿命のどちらか一方を使用する。
(3.0 作業量超過)
上述のプログラムモジュールは、メディア識別子の実装のために採用される。上に要約したように、メディア識別子は、ラジオまたはインターネット放送のような監視されたメディアストリームに埋め込まれたメディアオブジェクトのリアルタイムな識別を個別クライアントに提供する。以下のセクションは、メディア識別子の動作に関する詳細な記述、および図2および図3に関してセクション2に記述したプログラムモジュールを実装するための例示的な方法に関する動作の詳細記述を提供する。加えて、下記の3.1章に示すメディア識別子の動作の詳細な記述に続き、図4に関し、この詳細な記述に鑑みたメディア識別子の全体的な動作を要約した動作の流れ図を示す。
(3.1 メディア識別子の動作の詳細)
以下の段落では、ここに記述するメディア識別子の固有の動作および代替的な実施形態を詳述する。具体的には、以下の章で、トレースの計算およびフィンガープリントデータベースの構築、トレースキャッシュにおけるトレースの寿命、トレースキャッシュの検索、データベースの検索、ダウンロードしたフィンガープリントデータベースのサブセットを使用するローカルクライアントデータベースのルックアップ、および最後にクライアントに対するメディアオブジェクト識別の提供を記述する。
(3.1.1 トレースの計算およびフィンガープリントデータベースの構築)
メディアの識別に使用するためのオーディオ信号またはオーディオストリームのサンプルからのトレースまたは「フィンガープリント」の計算は、当業者には良く理解されている概念である。一般的に、このようなシステムは、入ってくるメディアストリームからサンプリングすることと、サンプリングした信号からコンパクト特性ベクトル(すなわち、「トレース」)を計算することにより動作する。これらのコンパクト特性ベクトルは、低次元ベクトルを備えるか、またはバイナリハッシュキーを備えることができる。メディアストリームサンプル値からのトレース計算は、当業者に既知であるため、この問題はここでは詳細に記述しない。
メディア識別子に関しては、メディアストリームからのトレースの計算は、多数の従来技術のうちの任意の1つを使用して達成される。例えば、メディア識別子の試験済みの実施形態において使用されたトレース計算は、特許文献1に記述されている。
前述の特許文献1に記述されるシステムは、一般的に、人工および/または実環境の信号を混ぜ合わせたもので「歪み弁別解析(Distortion Discriminant Analysis)」(DDA)を使用して訓練し、そのパラメータを定義する「特性エキストラクタ(feature extractor)」を使用してオーディオ信号から特性を計算または抽出することにより動作する。記述した特性エキストラクタは、時間的または空間的構造を伴う1つまたは複数の次元を有する信号を取得し、信号の限られた範囲に指向性主要構成要素分析(OPCA)を適用し、空間的または時間的に隣接する複数のOPCAの出力を総計して、その総計にOPCAを適用する。隣接OPCA出力を総計するステップ、および総計値にOPCAを適用するステップは、オーディオ信号、画像、ビデオテータまたは任意の他の時間または周波数のドメイン信号を含む信号から、低次元のノイズ耐性特性を抽出するために、1回または複数回実行される。一旦訓練すると、その特性エキストラクタを単に使用するだけで、ここに記述するメディア識別子が使用するトレース(およびフィンガープリント)を生成する。
しかしながら、上述したように、上で確認した「特性エキストラクタ」は、明らかにトレースまたはフィンガープリントを計算するための唯一の方法ではない。トレースまたはフィンガープリントをどのように計算するかに関わりなく、基本的な考え方は、入ってくるメディアストリームの一定の長さのセグメントであるコンパクト「トレース」をクライアントごとに計算することである。試験ずみの実施形態においては、このようなトレースが、各クライアントによって、1秒間に約6回程度、メディアストリームの約6秒程度のサンプルから計算され送られる。明らかに、これらパラメータは、一般的にトレース計算に用いられる特定の方法に依存するので、より長い、またはより短いサンプリング周期を使用するより多い、またはより少ない数のトレースを用いることができる。
フィンガープリントデータベースを備えるフィンガープリントは、各クライアントによって計算されるトレースとフィンガープリントデータベースの母集団を作るために使用されるフィンガープリントとの間に明確な対応があるように、一般的にはトレースと同じ方法で、同じアルゴリズムを使用して計算される。しかしながら、メディアストリームの進行に伴い連続的に計算されるトレースとは異なり、フィンガープリントは、既知のメディアオブジェクトに対応するフィンガープリントをデータベースの母集団とするように、この既知のメディアオブジェクト内の特定の位置からサンプリングされる1つまたは複数のサンプルから、一度だけ計算される。メディアオブジェクトごとに計算されたフィンガープリントの数は、所望に応じて少なくも多くもすることができる。しかしながら、試験ずみの実施形態においては、メディアオブジェクト当たり数個のフィンガープリントを備えることが、オブジェクトの安定した識別を備えるのに十分であることが認められた。
一旦作成すると、フィンガープリントデータベースは、単にサーバによってアクセスされるだけで、ここに記述するように、既知のメディアオブジェクトのためにフィンガープリントを再計算する必要はい。しかしながら、既知のフィンガープリントのデータベースは、新規のメディアオブジェクト(歌曲など)が作成されるのに伴い、新規のフィンガープリントによって更新することができる。このように、既知のフィンガープリントのデータベースは、クライアントがトレースを計算するため使用する何らかのトレース計算アルゴリズムを使用してオフラインで好適に作成され、ここに記述するメディア識別子が実行するメディアの識別動作中、サーバに掛かる余計な計算負荷を取り除くようにサーバに提供される。
(3.1.2 トレースキャッシュの寿命)
メディア識別子が提供するサーバ側トレースキャッシュの1つの長所は、キャッシュのサイズが比較的小さく、キャッシュ検索を極めて迅速にすることである。具体的には、キャッシュのサイズは、各クライアントからの要求の間での最大予測遅延と、識別サービスを提供する独自のメディアストリームの数の関数である。さらに、キャッシュのサイズは、トレース識別要求とともにサーバにアクセスする個別のクライアントまたはユーザの数の関数ではないことに注意すべきである。
詳細には、特定の各メディア放送ストリームは、その特定のメディアストリームを受信するクライアントごとにほぼ同期している。例えば、同じラジオ局を受信する任意の2つ以上のクライアントは、受信するメディアのタイプとソースによって1秒かその程度の非常に短い最大時間オフセットの範囲内で同じ信号を受信していると考えられる。ほとんどのストリーミングメディアのインターネットまたはネットワーク放送についても同じことが真である。
したがって、極僅かな最大予想クライアント間遅延時間(遅延時間には、クライアントごとにトレースを計算してサーバに送信するための最大予想遅延も含む)より長い間、トレースをメディアキャッシュの中に保つ必要はない。言い換えると、この遅延は単に、サーバが特定のメディアオブジェクトの所与のセクションに関する最初のトレースの受信と、サーバが同じメディアオブジェクトの所定のセクションに関する(最も遅いクライアントからの)最後のトレースの受信との間の最大時間である。よって、トレースは、数秒程度の短い期間の間保つ必要があるだけである。その結果、固有の入ってくるトレース全部を格納するための大きいキャッシュは必要でない。
関連した実施形態における、キャッシュ内のトレース寿命を設定するために最大遅延を判定または推定しようとするよりも簡単な解決法は、約1秒程度の短時間にわたって、入ってくる全トレースとのマッチに失敗した後、単にトレースをキャッシュから削除することである。さらなる代替の実施形態においては、例えば、従来のLRU論理に基づいてトレースを落とす固定キャッシュサイズの使用を含む別のキャッシュ作成スキームも使用することができる。
(3.1.2 トレースキャッシュ検索)
上述したように、サーバがいずれかのトレースを受信すると、直ちにトレースキャッシュを検索して、トレースキャッシュの中に、マッチするトレースがあるか否かを判定する。マッチがある場合は、そのマッチするトレースがいかなるメディアオブジェクト識別情報を有するか否か、またはそのトレースがデータベースで検出されなかったトレースであるか否かに関する判定を行う。ここでも、トレースキャッシュに検出されないトレースは、トレースキャッシュに追加され、データベースを直ちに検索してそのトレースがデータベースの中に存在するか否かを判定する。
入ってくるトレースがトレースキャッシュ内のいずれのトレースとマッチするか否かの判定は、従来の信号を比較する技術を使用して行う。そのような技術には、例えば、従来のクロス相関、および入ってくるトレースの点をトレースキャッシュ内の各トレースと直接比較する線形走査が含まれる。どちらの場合も不完全なマッチが好適である。上述のように、任意の異なるクライアントが計算するトレースは、トレースがメディアストリームの名目上は同じ部分から計算される場合であっても、ノイズ、干渉、信号減衰などのため変化することがあるからである。完全なマッチを使用することはできるが、マッチするトレースの識別において効率が低いことが証明されている。一実施形態において、不完全なマッチは、非特許文献1に記述するような、当業分野で既知のようなフィンガープリント固有の再正規化を使用して正確度を改良する。
不完全なマッチの場合は、マッチを何らかの距離尺度fおよび対応する閾値θに関して判定する。例えば、トレースが低次元ベクトルであるとき、入ってくるトレースXをキャッシュされたトレースのセットYと直接比較する、トレース間の比較を行う1つの簡単な方法は、jのインデックスを与えてトレースごとに1度だけ、式1においてユークリッド距離の二乗を単に比較することである。
Figure 0005031217
ここで、xiはトレースのi番目の要素、yijはj番目のキャッシュトレースのi番目の要素、nはトレースベクトルのコンポーネントの数、およびθjはj番目のキャッシュされたトレースに関連する距離の閾値である。
上述の比較方法は、信号またはトレースを比較するための極めて多数の従来技術のうちの1つに過ぎないことに注意しなければならない。このような方法は、当業者に公知なので、ここには記述しない。しかしながら、2つの信号またはトレースを比較するための任意の従来技術が、ここに記述するメディア識別子に使用するため適用することができること、およびメディア識別子は、上述の簡単な線形走査の使用に限定されることを意味するものではないことは理解されるべきである。さらに、マッチする信号またはトレースの検索を加速するための従来技術は多数存在する。1つの簡単な方法は、単純に以前のマッチの発生頻度の順でキャッシュを検索することである。別の従来の検索を加速させるスキームがあることは明らかであり、それらのいずれもここに記述するメディア識別子に使用するために適用することが可能である。
(3.1.4 データベースの検索)
上述したように、データベースの検索は、入ってくる特定のトレースが、トレースキャッシュ内の全てのトレースとマッチに失敗する場合にのみ実行される。フィンガープリントデータベースの実際の検索は、トレースキャッシュにおける検索とほぼ同じの方法で達成される。事実、トレースキャッシュの検索に関して上述したのと同じ種類のトレース比較が、フィンガープリントデータベース内のフィンガープリントと入ってくるトレースとを比較するために使用される。しかしながら、フィンガープリントデータベースは、トレースキャッシュより実質的に大きいと予想されることに注意されたい。事実、歌曲のフィンガープリントのみを含むメディアオブジェクトデータベースでも、世界中でストリームまたは放送されている音楽の利用可能な範囲を完全に表そうとすると、容易に数百万のエントリを有することが予想される。よって、データベース検索を加速するための方法は、トレースキャッシュ検索の加速より実質的に重要になる傾向がある。
この観点で、人気または発生頻度の順に検索することは、性能の著しい向上を提供する傾向がある。非常に人気のある歌曲は、未知のアーティストによるいくらか古風な歌曲よりも、1つまたは複数のメディアストリーム上でストリームされることが十分に考えられるからである。発生頻度の測定は、容易に達成されるタスクである。具体的な1つの簡単な方法は、特定のメディアオブジェクトが、ある期間を通して、異なるストリームで異なる時に識別される回数を(トレースキャッシュヒットおよびデータベースマッチを計数することにより)単に計数することである。次いで、検索目的用に、フィンガープリントデータベースにおけるエントリを発生頻度の順に順序付ける。さらに、上述したように、マッチする信号またはトレースに関するデータベース検索を加速するための多数の従来技術があり、それらはいずれもここに記述するメディア識別子に使用するため適用することが可能である。
(3.1.5 ローカルデータベースルックアップ)
一実施形態において、サーバの負荷は、フィンガープリントデータベース全体のある微小部分またはサブセット(およびトレースキャッシュの微小部分も同様に可能)を1つまたは複数のローカルクライアントに自動的にアップロードすることにより、さらに軽減される。典型的には、個別のクライアントにてアップロードされるトレースおよび/またはフィンガープリントは、最も頻繁に認められるもの(すなわち、最も人気のあるメディアオブジェクトに対応するトレース/フィンガープリント)であるべきである。
この実施形態においては、計算されるトレース全てを直ちにサーバに送ることよりも、フィンガープリントデータベースおよび/またはトレースキャッシュのサブセット(すなわち「ローカルトレースサブセット」)を有する各クライアントは、計算されるトレースを識別目的のためにサーバに送る前に、ローカルトレースサブセットにまずクエリーする。計算されたトレースが、ローカルトレースサブセット内のいずれかのトレースとマッチする場合は、ローカルトレースサブセットのマッチするトレースに関連する全ての識別情報が、計算されたトレースに割り当てられ、計算されたトレースはサーバに送られない。このようにして、メディア識別負荷の少なくとも幾分かは、サーバから1つまたは複数のローカルクライアントにオフロードされる。
現在人気のある歌曲のようなメディアオブジェクトの数は、メディアオブジェクト全体の母集団に比較して相対的に小さいので、ローカルトレースサブセットにあるトレースは、完全なサーバデータベースにおけるそれよりも、歌曲当たりはるかに多数のフィンガープリントを含み得ることに注意されたい。このことは、サーバに送られるトレースの数をさらに減少するという利点を付加する。マッチを行うと直ちに、現在演奏中のメディアオブジェクトは、そのメディアオブジェクトが演奏している限り、そのメディアオブジェクトに関するフィンガープリントのローカルストアに対して検査することができるからである。例えば、あるフィンガープリントがある歌曲について5秒ごとに計算されている場合、それが5秒ごとに予想マッチを検出する限り、クライアントはサーバに対していかなるトレースも送らなくてよい。
さらに別の実施形態において、クライアントは、肯定的なマッチが確認されるとすぐに、歌曲Sのように識別されたメディアオブジェクトの残りの持続時間だけ、トレースをサーバに送付することを単純に停止する。この持続時間情報は、肯定的なマッチが検出されるとき、他の識別情報と共に、サーバからクライアントに送付することができる。これは、サーバ/キャッシュシステムの上の負担をさらに軽減する簡単な方法であるが、ユーザが、例えば、前述の識別された歌曲Sが終了する前にメディアストリームを切り換える場合に、(すなわち、識別されるべきメディアオブジェクトであるが、識別されない)誤った否定的な結果となることがある。しかしながら、これは、クライアントがストリームを切換続けるときを単純に追跡し、ストリームの切換が発生するときはいつでも、(サブセットが存在する場合は、ローカルトレースサブセットに対する最初の検査の後に)直ちにトレースをサーバに再度送り始めることによって防止することができる。
(3.1.6 メディアオブジェクトの識別)
上述したように、メディアオブジェクトの識別は、ローカルクライアントが計算したトレースを、サーバが保持するトレースまたはフィンガープリントと比較することにより達成される(上述のように、ローカルトレースサブセットを検索する場合を除く)。上述のように、関連するメディアオブジェクト識別情報を有するトレースまたはフィンガープリントへのマッチを、サーバが識別するときはいつでも、そのメディアオブジェクト情報は、直ちにサーバから、その特定のマッチトレースをサーバに送信した特定のクライアントに送り戻される。
クライアントがメディアオブジェクト識別情報を受領すると、クライアントは、その所望の情報をどのようにも利用することができる。例えば、最も簡単な場合では、ユーザにメディアストリームの中で現在演奏中のメディアオブジェクトを知らせることができるように、クライアントは、そのメディアオブジェクト識別情報をリアルタイムで単に表示することができる。メディアオブジェクト識別情報の他の用途は、個別の各クライアントが監視する任意のストリームにおいて識別されるメディアオブジェクトのローカルの履歴記録を提供するローカルな演奏リストを構築することである。
(3.2 メディア識別子の動作)
図2および図3に関連して上述したプロセスを、図4の一般的な動作の流れ図によって示す。一般に図4は、メディア識別子の幾つかの動作の実施形態を示す例示的な動作の流れ図を示す。図4において、破線または点線で表す箱形および箱形の間の接続線はいずれも、ここに記述するメディア識別子の代替的な実施形態を示すこと、およびこれら代替的な実施形態のいずれかまたは全部は、以下に記述するように、本願明細書に記述される別の代替的な実施形態と組み合わせて使用されることに注意されたい。さらに、以下の説明において、システムは一般的に単一のサーバと共に動作する単一のクライアントに関して記述されていることに注意されたい。しかしながら、先行の説明に鑑みて、ここに記述するメディア識別子は、極めて多くのクライアントおよび所望の任意の数のサーバによって完全に動作することができることは明白であろう。
具体的には、図4に示すように、メディア識別子の動作は、クライアント200がメディアストリーム210をキャプチャすること(ステップ405)により開始される。メディアストリームのキャプチャは、例えば、ラジオまたはテレビ放送に単に同調すること、またはインターネットなどのネットワークを介してストリーミングメディアまたは同時放送に参加することを含む従来の方法を使用して達成される。メディアストリーム210をキャプチャする(ステップ405)のに伴い、クライアントはそのメディアストリームのサンプルからリアルタイムトレースを生成する(ステップ410)。これらのリアルタイムトレースは、従来のネットワークの送信プロトコルを使用してサーバ230に送信される(ステップ415)。メディアトレースの計算および送信は、メディアストリームを受信している限り、またクライアントがメディアストリームに埋め込まれたメディアオブジェクトに関する識別情報を望む限り継続する。
しかしながら、上述したように、一実施形態において、クライアントは、サーバからのメディアオブジェクトの識別情報の受信に続いて、トレースの計算およびサーバへの送信を一時的に中止する。例えば、上述したように、フィンガープリントデータベースのために計算されたフィンガープリントは、既知のメディアオブジェクト内の既知の位置から計算される。よってこれらメディアオブジェクトの残りの長さまたは持続時間は、計算されたトレースとの関連で知ることができる(サーバにトレースを送ることおよびサーバから返されたメディアオブジェクトの識別を受信することによる遅延時間を引く)。したがって、この実施形態によって、持続時間情報がメディアオブジェクト識別情報と共に与えられる限り、クライアントは、現在演奏中のメディアオブジェクトの終点の後まで、いかなる追加のトレースを計算する必要も、サーバに送る必要もない。しかしながら、クライアントが異なるメディアストリームのキャプチャを開始する場合(例えば、ラジオ放送局を切換るなど)は、トレースの計算および送信を直ちに再開する。この実施形態は、クライアントに戻されるメディアオブジェクトの順調な識別に続いてサーバに送られるトレースの数を大幅に減少することによって、サーバの負荷を実質的に軽減することができることは明白である。
サーバ230が、クライアント200から送信されたトレースを受信する(ステップ420)と、サーバは直ちに、トレースキャッシュ240を検査して(ステップ425)、キャッシュ内にマッチするトレースがあるか否かを判定する(ステップ430)。トレースキャッシュ内にマッチするトレースがある場合は、キャッシュ内のマッチトレースを検査して、それが肯定的なデータベースのヒットに関連するか否かを判定する(ステップ435)。マッチトレースが肯定的なデータベースのヒットに関連している場合は、そのマッチトレースに関連するメディア識別情報を直ちにクライアント200に送信する(ステップ460)。
逆に、トレースキャッシュ240がマッチするトレースを含まない場合、マッチするフィンガープリントを捜し出すことを試みて、フィンガープリントデータベース250を検査する(ステップ440)。データベースのマッチがある場合(ステップ445)は、そのトレースをトレースキャッシュ240に格納し(ステップ450)、そのマッチするトレースに関連するメディア識別情報を、直ちにクライアント200に送信する(ステップ460)。そのトレースにデータベースのマッチがない場合(ステップ445)は、そのトレースをトレースキャッシュ240に否定的なヒットとしてやはり格納する(ステップ450)。
どちらの場合も、一旦トレースキャッシュ240の中にマッチが検出されるか(ステップ430)、もしくは見出されないか、またはデータベース内にマッチが検出されるか(ステップ445)、もしくは見出されないかであり、関連する全てのメディアオブジェクト識別情報がクライアントに送信される(ステップ460)と、サーバは、トレースキャッシュ240および/またはフィンガープリントデータベース250それぞれの内のトレースおよび/またはフィンガープリントとの比較のために次のトレースがクライアントから送られるのを単に待つだけである。さらに、上述したように、トレースキャッシュ240は、継続して管理され(ステップ455)、寿命が満了したトレースのエントリを削除する。
クライアント200がいずれかのメディアオブジェクト識別情報を受信すると、その情報はクライアントによって処理され(ステップ465)、所望に応じてユーザに提供される。例えば、一実施形態において、メディアオブジェクト識別情報は、そのメディアストリームが受信されて再生されるのに伴いユーザへの現在のメディアオブジェクト識別の表示を提供するために使用される。代わりに、そのメディアオブジェクト識別情報は、これに限定されないが、演奏リストの生成、メディアストリームの特徴づけ、メディアストリームの統計的な解析などを含む他の目的のために使用することができる。
最後に、別の実施形態において、フィンガープリントデータベース250(および/またはトレースキャッシュ240)のサブセットが、クライアント200によってサーバ230からダウンロードされて(ステップ470)、ローカルフィンガープリントデータベースとして作用する。上述したように、このサブセットには、サーバ自体はルックアップに使用ない追加のフィンガープリントを含めることができ、これは、上述のように対象範囲を増加するため(例えば、クライアントが歌曲当たり数個のフィンガープリントを検査する)である。具体的には、比較的人気のある(または、より頻繁に認められる)メディアオブジェクトの追加のフィンガープリントをメディアオブジェクトごとにサーバが計算し、およびその追加のフィンガープリントをクライアントにダウンロードされるフィンガープリントのサブセットに含めることにより、サーバの呼出をさらに減少させる。上に記述するように、このローカルデータベースは、いずれかのトレースをサーバ230に送信する(ステップ415)前に、クライアントが検索する(ステップ475)。このローカルデータベースの検索においてトレースのマッチが見付かる場合に、対応するトレースは、上述のように、処理のためにサーバ230に送られることはない。
メディア識別子に関する前記の記述は、図示および記述の目的のために提示した。本発明を開示の正確な形で網羅または限定するためではない。上の教示に照らして、多くの変更および変態が可能である。さらに、前述の代替実施形態のいずれかまたは全ては、メディア識別子の追加の複合型の実施態様を形成するために望まれる任意の組合せで使用されることに注意されたい。本発明の範囲は、この詳細な記述によってではなく、ここに添付した請求項によって限定されることが目的である。
ここに記述する「メディア識別子」を実装する例示システムを構成する汎用コンピューティング装置を示す一般的なシステムダイアグラムを示す図である。 ここに記述する「メディア識別子」を実装するための機能コンポーネント間の一般的な関係を示すアーキテクチャシステムダイアグラム例を示す図である。 ここに記述する「メディア識別子」を実装するためのプログラムモジュールを示すアーキテクチャ例の流れ図である。 ここに記述する「メディア識別子」の一実施形態の一般的な動作を示す動作の流れ図である。
符号の説明
141 ハードディスクドライブ
151 磁気ディスクドライブ
155 光ディスクドライブ

Claims (25)

  1. クライアントが監視するメディア放送ストリームに埋め込まれたメディアオブジェクトの識別を、複数の各クライアントコンピュータに提供するための方法において、コンピューティング装置を使用して、
    複数のクライアントコンピュータごとに、クライアントによって生成されたメディアストリームトレースを、継続的にサーバコンピュータに送信し、
    前記サーバが受信する送信メディアストリームトレースごとに、前記サーバを使用して、前記メディアストリームトレースにマッチするトレースのトレースキャッシュを検索し、
    前記トレースキャッシュがマッチするトレースを含む場合は、そのマッチするトレースに関連付けられて前記トレースキャッシュに予め格納された全てのメディアオブジェクト識別情報を前記サーバから対応するクライアントに送信し、
    前記トレースキャッシュがマッチするトレースを含まない場合は、フィンガープリントデータベースを検索して、前記メディアストリームトレースにマッチするいずれかのフィンガープリントがあるか否かを判定し、前記送信されたメディアストリームトレースを、データベースの検索結果と共に前記トレースキャッシュに格納し、
    前記フィンガープリントデータベースがマッチするフィンガープリントを含む場合は、前記フィンガープリントに関連付けられて前記フィンガープリントデータベースに予め格納されたメディアオブジェクト識別情報を前記サーバから対応するクライアントに送信し、および
    前記フィンガープリントデータベースからの1つまたは複数のフィンガープリントおよび前記トレースキャッシュからのゼロ以上のトレース、ならびにアップロードされる前記フィンガープリントおよびトレースに関連する全ての前記メディアオブジェクト識別情報のサブセットを、サーバから1つまたは複数のクライアントコンピュータにアップロードすること
    を備え、前記各クライアント上のフィンガープリントと前記トレースの前記サブセットとは、前記クライアントによって生成されたメディアストリームトレースを前記サーバコンピュータに送信する前に、対応する前記クライアントによって生成されたメディアストリームトレースそれぞれに対するマッチについて検索され、および、前記クライアントによって生成されたメディアストリームトレースは、前記サブセット内のフィンガープリントおよびトレースのエントリとマッチする場合、前記サーバコンピュータに送信されないことを特徴とする方法。
  2. 前記クライアントが生成したメディアトレースは、各クライアントによって、長さが約6秒程度である前記メディア放送ストリームのサンプルから、1秒間に約6回程度計算され、かつ送信されることを特徴とする請求項1に記載の方法。
  3. 前記トレースキャッシュ内の各トレースは、所定の寿命を有し、さらに、満了した寿命を有するトレースはいずれも、全ての前記関連するメディアオブジェクト識別情報と共にトレースキャッシュから削除されることを特徴とする請求項1に記載の方法。
  4. 前記所定の寿命は、前記関連するメディアオブジェクト識別情報を有するトレースに関しては、前記関連するメディアオブジェクト識別情報を持たないトレースよりも長いことを特徴とする請求項3に記載の方法。
  5. 前記トレースキャッシュ内のトレースに対する前記所定の寿命の内の残っている時間は、前記トレースキャッシュ内のトレースがメディアストリームトレースとマッチするとき、前記所定の寿命にリセットされることを特徴とする請求項3に記載の方法。
  6. 前記メディアストリームトレースと頻繁にマッチする前記トレースキャッシュ内のトレースは、前記所定の寿命に関わりなく永続的に前記トレースキャッシュ内に維持されることを特徴とする請求項3に記載の方法。
  7. 前記トレースキャッシュ内の各トレースは、所定の時間に送信されたどの前記メディアストリームトレースともマッチに失敗した後で、全ての前記関連するメディアオブジェクト識別情報と共に前記トレースキャッシュから削除されることを特徴とする請求項1に記載の方法。
  8. 前記トレースキャッシュは一定のサイズを有すること、および、送信される前記メディアストリームトレースが前記トレースキャッシュに格納されるときはいつでも、前記トレースキャッシュにおける最も古いトレースが、全ての前記関連するメディアオブジェクト識別情報と共に前記トレースキャッシュから削除されることを特徴とする請求項1に記載の方法。
  9. 前記クライアントに送られるフィンガープリントは、前記サーバに格納されるが、前記サーバ自体によっては、前記トレースのマッチ照合のため使用されないことを特徴とする請求項1に記載の方法
  10. 対応する前記各クライアントに送信された前記メディアオブジェクト識別情報は、前記クライアントが監視する放送ストリームに埋め込まれた現在ストリームしているメディアオブジェクトの残りの持続時間を含み、および、当該情報を受信している前記クライアントはいずれも、現在ストリームしているメディアオブジェクトの残りの持続時間の間、前記クライアントによって生成されたメディアストリームトレースを前記サーバに送信することを中止することを特徴とする請求項1に記載の方法
  11. 前記クライアントによって生成されたメディアストリームトレースの前記サーバへの送信は、ユーザが異なるストリームに切換えたことをシステムが検出すると直ちに再開されることを特徴とする請求項10に記載の方法
  12. メディア放送ストリームに埋め込まれたメディアオブジェクトの識別を複数のクライアントの各々に提供するシステムであって、
    前記複数のメディアストリーム放送のうち任意の1つを、前記複数のクライアントコンピュータのそれぞれで監視するステップと、
    前記各クライアントコンピュータで監視したメディアストリーム放送のサンプルからリアルタイムトレースを生成するステップと、
    前記各リアルタイムトレースを、前記各クライアントコンピュータから、1つまたは複数のサーバコンピュータのバンクに送信するステップと、
    前記サーバのバンクが受信した各リアルタイムトレースに関し、前記サーバのバンクを使用して、前記リアルタイムトレースへのマッチのためにサーバ−ベースのトレースキャッシュを検索し、およびマッチするトレースに関連付けられて前記トレースキャッシュに予め格納された全てのメディアオブジェクト識別情報を前記トレースキャッシュから対応する前記クライアントに送信するステップと、
    前記トレースキャッシュに前記リアルタイムトレースに対するマッチが含まれない場合は、前記サーバのバンクを使用して、前記リアルタイムトレースへのフィンガープリントマッチのために前記サーバ−ベースのフィンガープリントデータベースを検索し、マッチするトレースに関連付けられて前記フィンガープリントデータベースに予め格納された全てのメディアオブジェクト識別情報を、前記フィンガープリントデータベースから対応するクライアントにて送信し、前記リアルタイムトレースをデータベースの検索結果と共に、前記トレースキャッシュに格納するステップと
    前記フィンガープリントデータベースからの1つまたは複数のフィンガープリントおよび前記トレースキャッシュからのゼロ以上のトレース、ならびにアップロードされる前記フィンガープリントおよびトレースに関連する全ての前記メディアオブジェクト識別情報のサブセットを、サーバから1つまたは複数のクライアントコンピュータにアップロードするステップと、
    を備え、前記各クライアント上のフィンガープリントと前記トレースの前記サブセットとは、前記クライアントによって生成されたメディアストリームトレースを前記サーバコンピュータに送信する前に、対応する前記クライアントによって生成されたメディアストリームトレースそれぞれに対するマッチについて検索され、および、前記クライアントによって生成されたメディアストリームトレースは、前記サブセット内のフィンガープリントおよびトレースのエントリとマッチする場合、前記サーバコンピュータに送信されないこと特徴とするシステム
  13. 前記トレースキャッシュ内の各トレースは、所定の寿命を有し、さらに、満了した前記寿命を有するトレースはいずれも、関連する全ての前記メディアオブジェクト識別情報と共に前記トレースキャッシュから削除されることを特徴とする請求項12に記載のシステム
  14. 前記所定の寿命は、前記関連するメディアオブジェクト識別情報を有するトレースに関しては、前記関連するメディアオブジェクト識別情報を持たないトレースよりも長いことを特徴とする請求項13に記載のシステム
  15. 前記トレースキャッシュ内のあるトレースに対する前記所定の寿命の内の残っている時間は、前記トレースキャッシュ内の前記トレースがメディアストリームトレースとマッチするとき、リセットされることを特徴とする請求項13に記載のシステム
  16. メディアストリームトレースと頻繁にマッチする前記トレースキャッシュ内のトレースは、前記所定の寿命に関わりなく永続的に前記トレースキャッシュ内に維持されることを特徴とする請求項13に記載のシステム
  17. 前記トレースキャッシュ内の各トレースは、所定の時間に送信されたどのメディアストリームトレースともマッチに失敗した後で、関連する全てのメディアオブジェクト識別情報と共に前記トレースキャッシュから削除されることを特徴とする請求項12に記載のシステム
  18. 対応する各クライアントに送信される前記メディアオブジェクト識別情報は、前記対応する各クライアントが監視するメディア放送ストリームに埋め込まれた現在ストリームしているメディアオブジェクトの残りの持続時間を含み、および、当該情報を受信しているクライアントはいずれも、現在ストリームしているメディアオブジェクトの残りの持続時間の間、リアルタイムトレースをサーババンクに送信するのを一時的に中止することを特徴とする請求項12に記載のシステム
  19. メディアオブジェクトの識別を複数のクライアントコンピュータに提供するためのコンピュータ実行可能命令を有するコンピュータ読み取り可能記録媒体であって、前記コンピュータ実行可能命令は、
    複数のクライアントコンピュータを使用して、順序付けられたリアルタイムトレースを、各クライアントが監視するキャプチャされたメディアストリームのサンプルから生成するステップと、
    生成された前記トレースをサーバコンピュータに送信すること、および
    送信された前記トレースごとに、前記サーバコンピュータを使用して、
    前記サーバコンピュータによってアクセス可能なトレースキャッシュを検索して、ト前記レースキャッシュが、マッチするトレースを含むか否かを判定し、
    前記トレースキャッシュがマッチするトレースを含む場合は、マッチする前記トレースは関連付けられて前記トレースキャッシュに予め格納されたメディアオブジェクト識別情報を含むか否かを判定し、もし含む場合は、前記メディアオブジェクト識別情報を前記サーバから対応するクライアントに送信し、
    前記トレースキャッシュがマッチするトレースを含まない場合は、フィンガープリントデータベースを検索して、マッチするフィンガープリントがあるか否かを判定し、前記送信されたトレースを、前記データベースの検索結果と共に、前記トレースキャッシュに格納し、および
    前記フィンガープリントデータベースがマッチするフィンガープリントを含む場合は、前記フィンガープリントに関連付けられて前記フィンガープリントデータベースに予め格納されたメディアオブジェクト識別情報を、前記サーバから対応するクライアントに送信するステップと
    前記フィンガープリントデータベースからの1つまたは複数のフィンガープリントおよび前記トレースキャッシュからのゼロ以上のトレース、ならびにアップロードされる前記フィンガープリントおよびトレースに関連する全ての前記メディアオブジェクト識別情報のサブセットを、サーバから1つまたは複数のクライアントコンピュータにアップロードするステップと
    を備え、前記各クライアント上のフィンガープリントと前記トレースの前記サブセットとは、前記クライアントによって生成されたメディアストリームトレースを前記サーバコンピュータに送信する前に、対応する前記クライアントによって生成されたメディアストリームトレースそれぞれに対するマッチについて検索され、および、前記クライアントによって生成されたメディアストリームトレースは、前記サブセット内のフィンガープリントおよびトレースのエントリとマッチする場合、前記サーバコンピュータに送信されないことを特徴とするコンピュータ読み取り可能記録媒体
  20. 前記トレースキャッシュ内の各トレースは、所定の寿命を有し、さらに、満了した前記寿命を有するトレースはいずれも、関連する全ての前記メディアオブジェクト識別情報と共にトレースキャッシュから削除されることを特徴とする請求項19に記載のコンピュータ読み取り可能記録媒体
  21. 前記トレースキャッシュ内のトレースに関する前記所定の寿命は、前記トレースキャッシュ内のトレースがメディアストリームトレースとマッチするとき、リセットされることを特徴とする請求項20に記載のコンピュータ読み取り可能記録媒体
  22. 送信されたトレースと頻繁にマッチする前記トレースキャッシュ内のトレースは、前記所定の寿命に関わりなく永続的に前記トレースキャッシュの中に維持されることを特徴とする請求項20に記載のコンピュータ読み取り可能記録媒体
  23. 前記トレースキャッシュ内の各トレースは、所定の時間に送信されたどのメディアストリームトレースともマッチに失敗した後で、関連する全てのメディアオブジェクト識別情報と共に前記トレースキャッシュから削除されることを特徴とする請求項19に記載のコンピュータ読み取り可能記録媒体
  24. 前記トレースキャッシュは一定のサイズを有し、かつ送信されるトレースが前記トレースキャッシュに格納されるときはいつでも、前記トレースキャッシュにおける最も古いトレースが、関連する全てのメディアオブジェクト識別情報と共に前記トレースキャッシュから削除されることを特徴とする請求項19に記載のコンピュータ読み取り可能記録媒体
  25. 対応する各クライアントに送信された前記メディアオブジェクト識別情報は、各クライアントが監視するキャプチャメディア放送ストリームに埋め込まれた現在ストリームしているメディアオブジェクトの残りの持続時間を含み、および、当該情報を受信しているクライアントはいずれも、前記現在ストリームしているメディアオブジェクトの残りの持続時間の間、トレースを前記サーバコンピュータに送信するのを中止することを特徴とする請求項19に記載のコンピュータ読み取り可能記録媒体
JP2005287842A 2004-11-02 2005-09-30 複数同期データストリームのためのデータベースルックアップ高速化のためのシステムおよび方法 Expired - Fee Related JP5031217B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/980,684 US7574451B2 (en) 2004-11-02 2004-11-02 System and method for speeding up database lookups for multiple synchronized data streams
US10/980,684 2004-11-02

Publications (2)

Publication Number Publication Date
JP2006146883A JP2006146883A (ja) 2006-06-08
JP5031217B2 true JP5031217B2 (ja) 2012-09-19

Family

ID=35810153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005287842A Expired - Fee Related JP5031217B2 (ja) 2004-11-02 2005-09-30 複数同期データストリームのためのデータベースルックアップ高速化のためのシステムおよび方法

Country Status (13)

Country Link
US (1) US7574451B2 (ja)
EP (1) EP1653381A3 (ja)
JP (1) JP5031217B2 (ja)
KR (1) KR101143115B1 (ja)
CN (1) CN100507911C (ja)
AU (1) AU2005209695B2 (ja)
BR (1) BRPI0504265A (ja)
CA (1) CA2519828C (ja)
MX (1) MXPA05010665A (ja)
MY (1) MY147083A (ja)
RU (1) RU2422891C2 (ja)
TW (1) TWI390924B (ja)
ZA (1) ZA200507924B (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173938A (ja) * 2003-12-10 2005-06-30 Pioneer Electronic Corp 曲検索装置、曲検索方法及び曲検索用プログラム並びに情報記録媒体
WO2006050731A2 (en) * 2004-11-09 2006-05-18 Bang & Olufsen A/S A procedure and apparatus for generating automatic replay of recordings
US7886068B1 (en) * 2005-10-27 2011-02-08 Network Appliance, Inc. Management of streaming media playlists
US8239327B2 (en) * 2005-11-02 2012-08-07 Jump Technologies, Inc. System and method for user logging of audio and video broadcast content
US7872574B2 (en) * 2006-02-01 2011-01-18 Innovation Specialists, Llc Sensory enhancement systems and methods in personal electronic devices
US8495075B2 (en) * 2006-03-08 2013-07-23 Apple Inc. Fuzzy string matching of media meta-data
WO2007127881A2 (en) * 2006-04-26 2007-11-08 Business Controls, Inc. Anonymous reporting system
EP2070231B1 (en) * 2006-10-03 2013-07-03 Shazam Entertainment, Ltd. Method for high throughput of identification of distributed broadcast content
US8301658B2 (en) 2006-11-03 2012-10-30 Google Inc. Site directed management of audio components of uploaded video files
EP2080303A4 (en) * 2006-11-03 2013-07-03 Google Inc CONTENT MANAGEMENT SYSTEM
US7945540B2 (en) * 2007-05-04 2011-05-17 Oracle International Corporation Method to create a partition-by time/tuple-based window in an event processing service
EP2162818A1 (en) * 2007-05-25 2010-03-17 Bang & Olufsen A/S System and a method for providing events to a user
JP5341095B2 (ja) * 2007-10-05 2013-11-13 ドルビー ラボラトリーズ ライセンシング コーポレイション メディア・コンテンツに信頼性よく対応するメディア・フィンガープリント
ES2326019B1 (es) * 2008-03-26 2010-07-07 Tuylek, S.L. "equipo multifuncion de medicion de datos vitales dotado de un sistema de tratamiento de datos centralizado".
JP5204893B2 (ja) * 2008-03-31 2013-06-05 ドルビー ラボラトリーズ ライセンシング コーポレイション 分散型媒体フィンガープリントリポジトリ
CN101610281B (zh) * 2008-06-19 2012-11-21 华为技术有限公司 一种数据指纹保存方法和装置
US20100023328A1 (en) * 2008-07-28 2010-01-28 Griffin Jr Paul P Audio Recognition System
US8972410B2 (en) * 2008-07-30 2015-03-03 Hewlett-Packard Development Company, L.P. Identifying related objects in a computer database
US8428301B2 (en) 2008-08-22 2013-04-23 Dolby Laboratories Licensing Corporation Content identification and quality monitoring
US9390167B2 (en) * 2010-07-29 2016-07-12 Soundhound, Inc. System and methods for continuous audio matching
US20100198926A1 (en) * 2009-02-05 2010-08-05 Bang & Olufsen A/S Method and an apparatus for providing more of the same
US9633014B2 (en) 2009-04-08 2017-04-25 Google Inc. Policy based video content syndication
US8738354B2 (en) * 2009-06-19 2014-05-27 Microsoft Corporation Trans-lingual representation of text documents
US20110041154A1 (en) * 2009-08-14 2011-02-17 All Media Guide, Llc Content Recognition and Synchronization on a Television or Consumer Electronics Device
US8161071B2 (en) 2009-09-30 2012-04-17 United Video Properties, Inc. Systems and methods for audio asset storage and management
US8677400B2 (en) 2009-09-30 2014-03-18 United Video Properties, Inc. Systems and methods for identifying audio content using an interactive media guidance application
US8594392B2 (en) * 2009-11-18 2013-11-26 Yahoo! Inc. Media identification system for efficient matching of media items having common content
US8682145B2 (en) 2009-12-04 2014-03-25 Tivo Inc. Recording system based on multimedia content fingerprints
US20110258211A1 (en) * 2010-04-18 2011-10-20 Kalisky Ofer System and method for synchronous matching of media samples with broadcast media streams
US20120191231A1 (en) * 2010-05-04 2012-07-26 Shazam Entertainment Ltd. Methods and Systems for Identifying Content in Data Stream by a Client Device
WO2011140269A1 (en) * 2010-05-04 2011-11-10 Shazam Entertainment Ltd. Methods and systems for processing a sample of a media stream
KR101490576B1 (ko) * 2010-05-04 2015-02-11 샤잠 엔터테인먼트 리미티드 미디어의 동기화 방법 및 시스템
US20120136701A1 (en) * 2010-11-26 2012-05-31 Rohan Relan Method and system for faciliating interactive commercials in real time
US8935300B1 (en) * 2011-01-03 2015-01-13 Intellectual Ventures Fund 79 Llc Methods, devices, and mediums associated with content-searchable media
US8643703B1 (en) 2011-03-30 2014-02-04 Amazon Technologies, Inc. Viewer tracking image display
US9035163B1 (en) 2011-05-10 2015-05-19 Soundbound, Inc. System and method for targeting content based on identified audio and multimedia
EP2718849A1 (en) * 2011-06-10 2014-04-16 Shazam Entertainment Ltd. Methods and systems for identifying content in a data stream
KR101828342B1 (ko) * 2011-08-10 2018-02-12 삼성전자 주식회사 방송수신장치, 방송신호 관련 연관정보 제공방법 및 서버
US8560719B2 (en) * 2011-09-14 2013-10-15 Mobitv, Inc. Fragment server directed device fragment caching
KR101873364B1 (ko) 2011-09-27 2018-08-03 삼성전자 주식회사 방송수신장치, 방송신호 관련 연관정보 제공방법
US9223902B1 (en) 2011-11-29 2015-12-29 Amazon Technologies, Inc. Architectures for content identification
US9852135B1 (en) * 2011-11-29 2017-12-26 Amazon Technologies, Inc. Context-aware caching
US9292894B2 (en) * 2012-03-14 2016-03-22 Digimarc Corporation Content recognition and synchronization using local caching
KR101404596B1 (ko) * 2012-05-03 2014-06-11 (주)엔써즈 이미지에 기반하여 동영상 서비스를 제공하는 시스템 및 방법
KR101396413B1 (ko) * 2012-05-07 2014-05-19 주식회사 마크애니 디지털 핑거프린팅을 이용한 정보 제공 시스템 및 방법
EP2868109B1 (en) * 2012-06-28 2016-08-17 Google, Inc. Generating a sequence of audio fingerprints at a set top box
US8843952B2 (en) 2012-06-28 2014-09-23 Google Inc. Determining TV program information based on analysis of audio fingerprints
US9113203B2 (en) 2012-06-28 2015-08-18 Google Inc. Generating a sequence of audio fingerprints at a set top box
CN102880973A (zh) * 2012-09-05 2013-01-16 常州嘴馋了信息科技有限公司 网页广告播放管理系统
US9661361B2 (en) 2012-09-19 2017-05-23 Google Inc. Systems and methods for live media content matching
GB2506897A (en) * 2012-10-11 2014-04-16 Imagination Tech Ltd Obtaining stored music track information for a music track playing on a radio broadcast signal
US20140188592A1 (en) * 2012-12-27 2014-07-03 Magix Ag Content recognition based evaluation system in a mobile environment
EP2750055A1 (en) * 2012-12-27 2014-07-02 Magix AG System and method for content recognition in portable devices
US9792350B2 (en) * 2013-01-10 2017-10-17 International Business Machines Corporation Real-time classification of data into data compression domains
US9564918B2 (en) 2013-01-10 2017-02-07 International Business Machines Corporation Real-time reduction of CPU overhead for data compression
US9053121B2 (en) 2013-01-10 2015-06-09 International Business Machines Corporation Real-time identification of data candidates for classification based compression
KR101462113B1 (ko) * 2013-01-16 2014-11-17 네이버 주식회사 방송의 멀티미디어 유전자를 통한 그룹핑 시스템, 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
US9009103B2 (en) 2013-03-15 2015-04-14 Microsoft Technology Licensing, Llc Fingerprint-based, intelligent, content pre-fetching
KR101456926B1 (ko) 2013-06-14 2014-10-31 (주)엔써즈 핑거프린트에 기반한 광고 검출 시스템 및 방법
US9906575B2 (en) * 2013-08-15 2018-02-27 Comcast Cable Communications, Llc Media fling system
US9552205B2 (en) 2013-09-27 2017-01-24 Intel Corporation Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions
TWI526966B (zh) 2013-11-25 2016-03-21 財團法人資訊工業策進會 資料處理裝置及資料處理方法
US9749416B2 (en) * 2013-11-26 2017-08-29 International Business Machines Corporation Managing inventory data for a distributed cache provided by a plurality of wireless mobile devices
US20150193199A1 (en) * 2014-01-07 2015-07-09 Qualcomm Incorporated Tracking music in audio stream
US9430474B2 (en) * 2014-01-15 2016-08-30 Microsoft Technology Licensing, Llc Automated multimedia content recognition
KR102166423B1 (ko) * 2014-03-05 2020-10-15 삼성전자주식회사 디스플레이 장치, 서버 장치 및 디스플레이 장치의 이벤트 정보 제공 방법
US9710220B2 (en) 2014-10-24 2017-07-18 Sony Corporation Context-sensitive media classification
KR102217191B1 (ko) * 2014-11-05 2021-02-18 삼성전자주식회사 단말 장치 및 그 정보 제공 방법
US9946489B2 (en) * 2016-07-27 2018-04-17 Western Digital Technologies, Inc. Multi-stream journaled replay
RU172737U1 (ru) * 2017-04-18 2017-07-21 Общество с ограниченной ответственностью "ДЖЕНТ КЛАБ" Устройство для идентификации музыкальных произведений
US10972203B2 (en) * 2017-06-12 2021-04-06 Gracenote, Inc. Detecting and responding to rendering of interactive video content
KR102546026B1 (ko) 2018-05-21 2023-06-22 삼성전자주식회사 전자 장치 및 그의 컨텐츠 인식 정보 획득
GB201810202D0 (en) * 2018-06-21 2018-08-08 Magus Communications Ltd Answer machine detection method & apparatus
KR102599951B1 (ko) 2018-06-25 2023-11-09 삼성전자주식회사 전자 장치 및 그의 제어방법
KR20200080387A (ko) 2018-12-18 2020-07-07 삼성전자주식회사 디스플레이 장치 및 그 제어 방법
US11334746B2 (en) * 2019-05-01 2022-05-17 EMC IP Holding Company LLC Facial recognition for multi-stream video using high probability group
CN111966887A (zh) * 2019-05-20 2020-11-20 北京沃东天骏信息技术有限公司 动态缓存方法及装置、电子设备、存储介质
CN110647077B (zh) * 2019-09-26 2020-12-25 珠海格力电器股份有限公司 一种工控装置的控制方法、系统、存储介质及工控装置
US20210200741A1 (en) * 2019-12-30 2021-07-01 Imperva, Inc. Passive classification of data in a database based on an event log database
CN116825129B (zh) * 2023-05-09 2024-02-09 广东保伦电子股份有限公司 一种音频流精确分发的方法、设备及介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958008A (en) * 1996-10-15 1999-09-28 Mercury Interactive Corporation Software system and associated methods for scanning and mapping dynamically-generated web documents
US5944815A (en) * 1998-01-12 1999-08-31 Advanced Micro Devices, Inc. Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access
US6721740B1 (en) * 1998-05-29 2004-04-13 Sun Microsystems, Inc. Method and apparatus of performing active update notification
US7174293B2 (en) * 1999-09-21 2007-02-06 Iceberg Industries Llc Audio identification system and method
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US6990453B2 (en) * 2000-07-31 2006-01-24 Landmark Digital Services Llc System and methods for recognizing sound and music signals in high noise and distortion
KR20020053979A (ko) * 2000-12-26 2002-07-06 오길록 내용 기반의 음악 자료 검색 시스템 및 그 방법
AU2002346116A1 (en) * 2001-07-20 2003-03-03 Gracenote, Inc. Automatic identification of sound recordings
JP4398242B2 (ja) * 2001-07-31 2010-01-13 グレースノート インコーポレイテッド 録音の多段階識別方法
US20030055910A1 (en) * 2001-09-19 2003-03-20 International Business Machines Corporation Method and apparatus to manage data on a satellite data server
US7509393B2 (en) * 2001-12-19 2009-03-24 International Business Machines Corporation Method and system for caching role-specific fragments
AU2003202728A1 (en) * 2002-02-06 2003-09-02 Koninklijke Philips Electronics N.V. Fast hash-based multimedia object metadata retrieval
US20040003101A1 (en) * 2002-06-26 2004-01-01 Roth David J. Caching control for streaming media
US7089396B2 (en) * 2002-10-10 2006-08-08 International Business Machines Corporation Method and profiling cache for management of virtual memory
JP2006507614A (ja) * 2002-10-28 2006-03-02 グレースノート インコーポレイテッド パーソナルオーディオ記録システム
KR100468325B1 (ko) * 2003-03-28 2005-01-27 주식회사 프리챌 P2p서비스 방법
US20040260682A1 (en) * 2003-06-19 2004-12-23 Microsoft Corporation System and method for identifying content and managing information corresponding to objects in a signal

Also Published As

Publication number Publication date
KR20060051233A (ko) 2006-05-19
MXPA05010665A (es) 2006-05-04
CA2519828A1 (en) 2006-05-02
EP1653381A2 (en) 2006-05-03
MY147083A (en) 2012-10-31
AU2005209695B2 (en) 2011-02-10
RU2005132924A (ru) 2007-04-27
JP2006146883A (ja) 2006-06-08
TW200627884A (en) 2006-08-01
US7574451B2 (en) 2009-08-11
BRPI0504265A (pt) 2006-06-27
AU2005209695A1 (en) 2006-05-18
CN1770156A (zh) 2006-05-10
US20060106867A1 (en) 2006-05-18
CN100507911C (zh) 2009-07-01
RU2422891C2 (ru) 2011-06-27
EP1653381A3 (en) 2006-09-13
CA2519828C (en) 2013-06-25
KR101143115B1 (ko) 2012-05-08
TWI390924B (zh) 2013-03-21
ZA200507924B (en) 2007-12-27

Similar Documents

Publication Publication Date Title
JP5031217B2 (ja) 複数同期データストリームのためのデータベースルックアップ高速化のためのシステムおよび方法
US10025841B2 (en) Play list generation method and apparatus
US7788696B2 (en) Inferring information about media stream objects
US7877438B2 (en) Method and apparatus for identifying new media content
KR101371574B1 (ko) 매스 미디어를 위한 사회적 및 상호작용 애플리케이션
US9092518B2 (en) Automatic identification of repeated material in audio signals
KR101625944B1 (ko) 오디오 인식 방법 및 기기
EP1474760B1 (en) Fast hash-based multimedia object metadata retrieval
US20140161263A1 (en) Facilitating recognition of real-time content
US9373336B2 (en) Method and device for audio recognition
US8996557B2 (en) Query and matching for content recognition
CN107484015B (zh) 节目处理方法及装置、终端

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110922

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111222

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: 20120622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120627

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees