以下、本発明の一実施形態を図面に基づいて説明する。
[1.通信システムの構成及び動作概要]
始めに、図1を参照して、本発明の一実施形態の通信システムSの構成及び動作概要について説明する。図1は、本実施形態の通信システムSの概要構成例を示す図である。図1に示すように、通信システムSは、配信サーバ1、クライアント端末2、広告サーバ3、及び管理者端末4を含んで構成される。クライアント端末2は、本発明の端末装置の一例である。広告サーバ3は、本発明の情報処理装置の一例である。配信サーバ1、クライアント端末2、広告サーバ3、及び管理者端末4は、ネットワークNWに接続される。ネットワークNWは、例えば、インターネット等により構成される。
配信サーバ1は、例えばクライアント端末2からのコンテンツ要求に応じて、コンテンツをクライアント端末2へ送信する。コンテンツには、動画データが含まれる。なお、コンテンツは、音声データを含んでもよい。コンテンツの送信は、例えば、ネットワークNWを介してストリーミング配信により行われる。クライアント端末2は、配信サーバ1からストリーミングで配信されたコンテンツを受信する。クライアント端末2は、受信されたコンテンツに含まれる動画データを再生する。そして、クライアント端末2は、複数の画素から構成される画像フレームであって、複数の画像フレームから構成される動画を表示手段に表示させる。このとき、ユーザは、疑似的なカメラワーク(以下、「疑似カメラワーク」という)の操作を行うことができる。疑似カメラワークにより、二次元平面または三次元仮想空間における仮想カメラの位置または仮想カメラの向きと、画角(視野範囲)とが制御される。これにより、動画の再生中に画像フレームを構成する複数の画素の中で、クライアント端末2の表示手段により表示された1画素以上の画素領域が特定される。ここで、この画素領域を、以下、「表示画素領域」という。表示画素領域は、第2特定画素領域の一例である。また、表示画素領域は、動画を構成する画像フレームにおける表示範囲である。表示画素領域は、1画像フレームのうち表示画面に描画される描画領域に相当する。言い換えれば、表示範囲は、画像フレームから切り出される範囲である。なお、三次元仮想空間は、例えば、コンピュータを用いて表示可能な仮想的な三次元空間を示す。仮想カメラとは、二次元平面または三次元仮想空間における仮想スクリーンに投影される動画に対して仮想的に設定された視点をいう。仮想スクリーンには、平面スクリーン、円筒形のスクリーン、及び球形のスクリーンがある。例えば、動画を撮影したカメラのレンズが魚眼レンズや360度レンズである場合、仮想スクリーンは球形のスクリーンとなる。クライアント端末2は、ユーザの疑似カメラワークの操作により特定された表示画素領域を表示画面に表示させる。
また、クライアント端末2は、ユーザの疑似カメラワークの操作中に、カメラワークデータを作成する。このカメラワークデータには、クライアント端末2において動画の再生中に疑似カメラワークの操作により表示された表示画素領域と、複数の画像フレームの中で表示画素領域が特定された特定の画像フレームが出力される再生時間とが対応付けられて含まれている。ここで、表示画素領域が特定された特定の画像フレームは、第2特定画像フレームの一例である。また、第2特定画像フレームが出力される再生時間を、以下、「第2再生時間」という。第2再生時間は、表示画素領域に対応付けられた再生時間である。また、第2再生時間は、動画の再生開始からの経過時間であり、所定の第2時間範囲を示す。カメラワークデータには、第2再生時間に、この表示画素領域の表示倍率が対応付けられて含まれてもよい。表示画素領域の表示倍率は、第2表示倍率の一例である。カメラワークデータにより、動画を構成する画像フレームにおける表示画素領域が特定される。なお、1つのカメラワークデータは、例えば、動画の再生開始からの再生終了までの時間範囲に対応するとは限らない。つまり、1つのカメラワークデータは、動画の再生時間における一部の時間範囲に対応する場合もある。例えば、複数の画像フレームにおいて表示画素領域に変更がない時間範囲ごとにカメラワークデータが作成される。そして、クライアント端末2は、作成したカメラワークデータを広告サーバ3へ送信する。
広告サーバ3は、クライアント端末2から送信されたカメラワークデータを取得する。広告サーバ3は、クライアント端末2から取得したカメラワークデータを記憶する第2記憶手段を備える。また、広告サーバ3は、動画を構成する画像フレームにおける特定の画素領域に広告IDが対応付けられる広告設定データを記憶する第1記憶手段を備える。この広告設定データには、動画を構成する複数の画像フレームにおいて複数の画素の中で特定された1画素以上の画素領域と、複数の画像フレームの中で上記画素領域が特定された特定の画像フレームが出力される再生時間と、広告コンテンツの広告IDとが対応付けられて含まれる。広告設定データは、例えば管理者端末4により作成される。この場合、管理者端末4は、配信サーバ1から動画データを取得する。そして、管理者端末4は、取得した動画データを再生し、動画を表示手段に表示させる。このとき、例えば広告の管理者は、画像フレームにおける特定の画素領域に広告IDを対応付ける広告設定操作を行うことができる。これにより、動画を構成する複数の画像フレームにおいて複数の画素の中で、広告IDが対応付けられる1画素以上の画素領域が特定される。ここで、この画素領域を、以下、「広告設定画素領域」という。広告設定画素領域は、第1特定画素領域の一例である。広告設定画素領域が特定された特定の画像フレームは、第1特定画像フレームの一例である。また、第1特定画像フレームが出力される再生時間を、以下、「第1再生時間」という。第1再生時間は、広告設定画素領域に対応付けられた再生時間である。また、第1再生時間は、動画の再生開始からの経過時間であり、所定の第1時間範囲を示す。また、広告IDは、広告コンテンツを識別する広告識別情報の一例である。なお、広告設定データには、第1再生時間に、この広告設定画素領域の表示倍率が対応付けられて含まれてもよい。なお、広告設定データは、管理者端末4以外の装置により作成されてもよい。
そして、広告サーバ3は、カメラワークデータに含まれる第2再生時間に対応付けられた表示画素領域を基準とした所定範囲内に、この第2再生時間に対応する第1再生時間に対応付けられた広告設定画素領域が所定時間以上継続して含まれるかを、第1再生時間と第2再生時間とに基づいて判定する。広告サーバ3は、所定時間以上継続して含まれると判定した場合、広告設定画素領域に対応付けられた広告IDに対応する広告コンテンツを動画と共に表示する表示対象として決定する。なお、表示画素領域を基準とした所定範囲内に、広告設定画素領域が継続して含まれる時間を、以下、「継続時間」という。広告サーバ3は、決定した広告コンテンツをクライアント端末2へ送信する。これにより、真にユーザが興味を持っている表示対象に対して、広告を関連付けてクライアント端末2に表示させることができる。そして、クライアント端末2は、広告サーバ3から送信された広告コンテンツを受信する。こうして、クライアント端末2は、受信した広告コンテンツを、例えば、再生中の動画と共に表示手段に表示させる。なお、広告サーバ3は、広告コンテンツを送信する代わりに、広告コンテンツの所在を示すURL(Uniform Resource Locator)をクライアント端末2へ送信してもよい。この場合、クライアント端末2は、広告サーバ3から送信されたURLを受信する。そして、クライアント端末2は、受信したURLにアクセスして所定のサーバから広告コンテンツを取得して表示手段に表示させる。
次に、配信サーバ1、クライアント端末2、及び広告サーバ3の構成例について説明する。
配信サーバ1は、図1に示すように、制御部11、記憶部12、及びインターフェース部13等を備えて構成される。これらの構成要素は、バス14に接続されている。制御部11は、CPU、ROM、及びRAM等により構成される。記憶部12は、例えばハードディスクドライブにより構成される。記憶部12には、OS、及びコンテンツ配信処理プログラム等が記憶されている。記憶部12には、クライアント端末2からの要求に応じて、クライアント端末2へ送信されるWebページのデータが記憶される。さらに、記憶部12には、動画データが記憶される。動画データには、動画IDが付与される。動画IDは、動画を識別する識別情報である。記憶部12には、音声データが記憶されてもよい。動画データは、動画を構成する画像フレーム内で、表示手段により表示される表示範囲が、動画の再生時間に応じて変化可能である。動画には、例えば、カメラにより撮影された動画や編集により生成された動画等が含まれる。このような動画の一例として、例えばパノラマ動画がある。パノラマ動画は、例えば高解像度のカメラで、且つ広範囲を撮影可能なレンズを搭載するカメラにより被写体が撮影された動画である。広範囲を撮影可能なレンズには、ワイドレンズ、魚眼レンズ、360度レンズ等がある。
クライアント端末2は、図1に示すように、制御部21、記憶部22、ビデオRAM23、映像制御部24、操作処理部25、音声制御部26、及びインターフェース部27等を備えて構成される。これらの構成要素は、バス28に接続されている。映像制御部24には、ディスプレイを備える表示部24aが接続される。表示部24aは、表示手段の一例である。操作処理部25には、操作部25aが接続される。操作部25aには、例えば、マウス、キーボード、リモコン等がある。表示部24aと操作部25aとを兼ねるタッチパネルが適用されてもよい。制御部21は、ユーザによる操作部25aからの操作指示を、操作処理部25を介して受け付ける。ユーザは、操作部25aを用いて、上述した疑似カメラワークの操作を行うことができる。音声制御部26には、スピーカ26aが接続される。インターフェース部27は、ネットワークNWに接続される。制御部21は、CPU、ROM、及びRAM等により構成される。制御部21は、タイマー機能を備える。記憶部22は、例えば、ハードディスクドライブ(HDD)により構成される。記憶部22には、OS、及びプレイヤーソフトウェア等が記憶されている。プレイヤーソフトウェアは、コンテンツを再生するためのプログラムである。制御部21は、プレイヤーソフトウェアを実行することでコンテンツを再生するプレイヤーとして機能する。具体的には、制御部21は、プレイヤーの機能により、配信サーバ1からストリーミングで配信されたコンテンツを順次受信し、例えばRAMに設けられたバッファメモリに、コンテンツに含まれる動画データ等を一時的に保持する。そして、制御部21は、バッファメモリからビデオRAM23へ動画データを出力する。ビデオRAM23には、描画データを格納するフレームバッファがRAMに設けられている。映像制御部24は、制御部21からの制御信号に従って、フレームバッファに書き込まれた描画データを表示画面に描画することで動画を表示させる。また、制御部21は、後述するように、広告コンテンツを動画と共に表示させる処理を行う。ここで、「広告コンテンツを動画と共に表示」には、「広告コンテンツを動画に重ね合わせて表示」と、「広告コンテンツを動画に重ね合わせずに同時に表示」とが含まれる。なお、例えば配信サーバ1からバッファメモリに保持されたコンテンツに音声データが含まれる場合がある。この場合、制御部21は、バッファメモリから音声データを再生して音声制御部26へ出力する。音声制御部26は、音声データからアナログ音声信号を生成し、生成したアナログ音声信号をスピーカ26aへ出力する。
広告サーバ3は、図1に示すように、制御部31、記憶部32、及びインターフェース部33等を備えて構成される。これらの構成要素は、バス34に接続されている。制御部31は、コンピュータとしてのCPU、ROM、及びRAM等により構成される。制御部31は、本発明の判定手段、及び決定手段の一例である。制御部31は、タイマー機能を備える。記憶部32は、例えば、例えばハードディスクドライブ(HDD)により構成される。制御部31のRAMまたは記憶部32は、第1記憶手段及び第2記憶手段の一例である。記憶部32には、OS(Operating System)、及び広告決定処理プログラム等が記憶されている。制御部31またはCPUは、広告決定処理プログラムを実行することで後述する処理を行う。また、記憶部32には、広告設定データと動画IDとが対応付けられて記憶される。この動画IDは、広告設定データが作成されるときに再生された動画データの動画IDである。また、記憶部32には、カメラワークデータと動画IDとが対応付けられて記憶される。この動画IDは、カメラワークデータが作成されるときに再生された動画データの動画IDである。また、記憶部32には、広告IDが付与された広告コンテンツが記憶される。広告コンテンツには、例えば静止画データまたは動画データが含まれる。なお、広告コンテンツには、音声データが含まれてもよい。
ここで、図2を参照して、広告設定データの詳細について説明する。図2(A)〜(C)は、動画を構成する複数の画像フレームにおける広告設定画素領域を示す図である。図2(A)は、再生時間“0〜10秒”に出力される複数の画像フレームにおいて特定された広告設定画素領域R1-1と、広告設定画素領域R2-1を示す。図2(B)は、再生時間“10〜20秒”に出力される複数の画像フレームにおいて特定された広告設定画素領域R1-2と、広告設定画素領域R2-2を示す。図2(C)は、再生時間“20〜30秒”に出力される複数の画像フレームにおいて特定された広告設定画素領域R1-3と、広告設定画素領域R2-3を示す。なお、図2(A)〜(C)の例では、説明の便宜上、それぞれ、1つの画像フレームを示しているが、実際には、複数の画像フレームがある。図2(D)は、図2(A)〜(C)に示す広告設定画素領域R1-1〜R1-3に対応する広告設定データD1の一例を示す図である。図2(D)に示す広告設定データD1では、広告設定画素領域R1-1〜R1-3と、広告設定画素領域R1-1〜R1-3が特定された画像フレームが出力される再生時間とに、1つの広告ID“0001”を対応付けている。なお、図2(D)の例では、広告設定画素領域R1-1〜R1-3は、それぞれ、広告設定画素領域R1-1〜R1-3の中心座標C1-1〜C1-3及び表示倍率で表される。中心座標は、画像フレームの左上頂点座標を原点(0,0)とする(X,Y)座標である。一方、図2(E)は、図2(A)〜(C)に示す広告設定画素領域R2-1〜R2-3に対応する広告設定データD2の一例を示す図である。図2(E)に示す広告設定データD2では、広告設定画素領域R2-1〜R2-3と、広告設定画素領域R2-1〜R2-3が特定された画像フレームが出力される再生時間とに、1つの広告ID“0002”を対応付けている。なお、図2(E)の例では、広告設定画素領域R2-1〜R2-3は、それぞれ、広告設定画素領域R2-1〜R2-3の中心座標C2-1〜C2-3及び表示倍率で表される。なお、広告設定画素領域は、広告設定画素領域の中心座標以外の座標で表されてもよい。
[2.通信システムの動作]
次に、通信システムSの動作について説明する。
(クライアント端末2の処理)
先ず、図3を参照して、クライアント端末2が配信サーバ1からコンテンツを受信するときの動作について説明する。図3は、クライアント端末2の制御部21またはCPUにより実行されるメイン処理の一例を示すフローチャートである。図3に示す処理は、例えば、ユーザから処理開始指示があった場合に開始される。
図3に示す処理が開始されると、クライアント端末2の制御部21は、コンテンツの再生処理を開始する(ステップS1)。コンテンツの再生処理では、クライアント端末2の制御部21は、配信サーバ1へコンテンツの要求を送信する。制御部21は、コンテンツの要求に応じて、配信サーバ1からストリーミングで配信されたコンテンツを受信する。制御部21は、受信されたコンテンツに含まれる動画データ等をバッファメモリに記憶する。そして、制御部21は、バッファメモリに記憶された動画データを再生し、表示画面に動画を表示させる。コンテンツの再生処理は、図3に示す処理の終了まで継続する。
次いで、制御部21は、動画の再生中に、疑似カメラワークの操作に従ってカメラワークデータの作成処理を開始する(ステップS2)。カメラワークデータの作成処理では、上述したカメラワークデータが作成される。このカメラワークデータには、例えば、動画の再生中に特定された表示画素領域と、表示画素領域が特定された特定の画像フレームが出力される再生時間とが対応付けられて含まれる。ここで、上述した仮想スクリーンが平面スクリーンの場合、表示画素領域は、例えば、表示画素領域の左上頂点座標と、左上頂点座標からX軸方向の画素数(幅)と、左上頂点座標からY軸方向の画素数(高さ)とで表される。仮想スクリーンが平面スクリーンの場合、表示画素領域は、図2(D)に示す広告設定画素領域と同様、表示画素領域の中心座標及び表示倍率で表されてもよい。或いは、上述した仮想スクリーンが円筒形のスクリーンの場合、表示画素領域は、例えば、方位角、横視野角、及び高さで表される。或いは、上述した仮想スクリーンが球形のスクリーンの場合、表示画素領域は、例えば、方位角、仰俯角、横視野角、及び縦視野角で表される。或いは、表示画素領域は、仮想スクリーンの種類に依らず、例えば、パン,チルトパラメータ(pan,tilt)、及びズームパラメータ(zoom)で表されてもよい。パン,チルトパラメータ(pan,tilt)は、仮想カメラの左右振りを規定するパンに対応するパラメータと、仮想カメラの上下振りを規定するチルトに対応するパラメータとから構成される。ズームパラメータ(zoom)は、表示倍率を規定するパラメータである。
なお、疑似カメラワークの具体的な操作として、例えば、ドラッグ操作、及びフリック操作がある。ドラッグ操作では、例えば、ユーザが表示画面をマウスによりドラッグすることで表示画素領域を移動させることができる。また、フリック操作では、例えば、ユーザがタッチパネル方式の表示画面上で指やペン等の接触物を素早くスライドすることで表示画素領域を移動させることができる。また、疑似カメラワークの具体的な操作として、例えば、ユーザが操作部25aに設けられたボタンや画面上に表示されたボタン等を押すことにより、表示画素領域を拡大したり縮小させたりする操作がある。この操作の場合、表示画素領域の単位時間あたり変動量が大きくなりながら表示画素領域が拡大又は縮小する変動が行われ、その後、単位時間あたり変動量が一定となって、表示画素領域が変動する。ユーザがボタンを押すことをやめる操作を行わない限り、表示画素領域が変動し、表示画素領域の大きさが最大又は最少となった時点で、変動は停止する。仮想スクリーンが平面スクリーンである場合、表示画素領域の拡大・縮小は、表示画素領域の幅及び高さの変動である。仮想スクリーンが円筒形のスクリーンである場合、表示画素領域の拡大・縮小は、横視野角及び高さの変動である。仮想スクリーンが球形のスクリーンである場合、表示画素領域の拡大・縮小は、横視野角及び縦視野角の変動である。なお、上述した操作は、あくまでも例示に過ぎず、その他の操作により疑似カメラワークが行われてもよい。カメラワークデータの作成処理は、図3に示す処理の終了まで継続する。
次いで、制御部21は、カメラワークデータの送信条件を満たしたか否かを判定する(ステップS3)。例えば、制御部21は、カメラワークデータの前回の送信から所定時間が経過した場合に、カメラワークデータの送信条件を満たしたと判定する。より具体的には、制御部21は、カメラワークデータを送信してからの経過時間をタイマー機能によりカウントする。そして、制御部21は、カウントされたカウント値が所定時間に到達したときにカメラワークデータの送信条件を満たすと判定する。なお、カウントされたカウント値が所定時間に到達した場合、タイマーのカウント値がリセットされる。そして、カメラワークデータを送信により、再び、タイマーによるカウントが開始される。これにより、動画の再生終了まで、カメラワークデータを定期的に広告サーバ3へ送信することができる。或いは、制御部21は、ユーザから操作部25aを介して所定の操作があった場合に、カメラワークデータの送信条件を満たしたと判定する。ここで、所定の操作の例として、ユーザが表示画面内を指等でタップすることやマウスでクリックすることなどがある。これにより、ユーザから所定の操作があったときだけ、カメラワークデータを広告サーバ3へ送信することができる。そのため、カメラワークデータを定期的に送信することと比較して、ネットワークNWの負荷、及び広告サーバ3の送信負荷を低減することができる。そして、カメラワークデータの送信条件を満たしたと判定された場合(ステップS3:YES)、ステップS4へ進む。ステップS4では、制御部21は、広告サーバ3へカメラワークデータと再生された動画データの動画IDとを対応付けて送信し、ステップS5へ進む。一方、カメラワークデータの送信条件を満たしていないと判定された場合(ステップS3:NO)、ステップS7へ進む。
ステップS5では、制御部21は、広告サーバ3から、広告コンテンツを受信したか否かを判定する。広告コンテンツを受信したと判定された場合(ステップS5:YES)、ステップS6へ進む。なお、ステップS5において、制御部21は、広告サーバ3から、広告コンテンツの所在を示すURLを受信したか否かを判定してもよい。広告コンテンツの所在を示すURLが受信された場合、制御部21は、このURLにアクセスして所定のサーバから広告コンテンツを取得することになる。URLのデータ量は、広告コンテンツのデータ量と比べて少ない。そのため、広告サーバ3がクライアント端末2へ、広告コンテンツの所在を示すURLを送信することで、広告サーバ3の送信負荷を低減することができる。一方、広告コンテンツ、またはURLを受信していないと判定された場合(ステップS5:NO)、つまり、広告コンテンツ無を示す情報が受信された場合、ステップS7へ進む。
ステップS6では、制御部21は、ステップS5で取得された広告コンテンツを、例えば、表示画面に表示されている動画に重ね合わせて表示させる。なお、制御部21は、広告コンテンツを、動画に重ね合わせずに、動画と同時に表示させてもよい。この場合、広告コンテンツは、例えば、動画が表示されている表示画面上の領域と異なる領域に表示される。ステップS7では、制御部21は、再生中の動画が再生終了に到達したか否かを判定する。動画が再生終了に到達していないと判定された場合(ステップS7:NO)、ステップS3に戻る。これにより、再生処理及びカメラワークデータの作成処理が継続する。一方、動画が再生終了に到達したと判定された場合(ステップS7:YES)、図3に示す処理が終了する。
(広告サーバ3の処理)
次に、図4を参照して、広告サーバ3がクライアント端末2からカメラワークデータを受信するときの動作について説明する。図4は、広告サーバ3の制御部31またはCPUにより実行されるメイン処理の一例を示すフローチャートである。図4に示す処理は、例えば、クライアント端末2からカメラワークデータと動画IDとが受信された場合に開始される。受信されたカメラワークデータは、例えば、表示画素領域に変更がない時間範囲ごとに時系列で区別されてRAMに記憶される。
図4に示す処理が開始されると、広告サーバ3の制御部31は、記憶部32から受信された動画IDが対応付けられた広告設定データをRAMに読み込む。なお、RAMに記憶されたカメラワークデータに含まれる表示画素領域を表す形式が、広告設定データに含まれる広告設定画素領域を表す形式と同一でない場合がある。この場合、制御部31は、カメラワークデータに含まれる表示画素領域を表す形式を、広告設定データに含まれる広告設定画素領域を表す形式に変換する。例えば、広告設定画素領域が、中心座標及び表示倍率で表される一方、表示画素領域が、パン,チルトパラメータ(pan,tilt)、及びズームパラメータ(zoom)で表される場合がある。この場合、制御部31は、所定の変換式により、パン,チルトパラメータ(pan,tilt)、及びズームパラメータ(zoom)の形式を、表示画素領域の中心座標及び表示倍率の形式に変換する。
そして、制御部31は、表示画素領域に変更がない時間範囲ごとに区別されて記憶されたカメラワークデータの中から、カメラワークデータを一つ特定する(ステップS21)。次いで、制御部31は、特定されたカメラワークデータが、前回処理されたカメラワークデータに含まれる第2再生時間に続くカメラワークデータであるか否かを判定する(ステップS22)。ここで、前回処理されたカメラワークデータとは、前回のステップS21で特定され、ステップS22以降の処理が行われるカメラワークデータを意味する。また、第2再生時間に続くカメラワークデータとは、例えば第2再生時間 “0〜10秒”に続く例えば“10〜15秒”の範囲内の第2再生時間を含むカメラワークデータを意味する。特定されたカメラワークデータが、前回処理されたカメラワークデータに含まれる第2再生時間に続くカメラワークデータでないと判定された場合(ステップS22:NO)、ステップS23へ進む。ステップS23では、制御部31は、継続時間の累積値をリセットし、ステップS24へ進む。これにより、継続時間の累積値が“0”になる。この継続時間は、上述したように、表示画素領域を基準とした所定範囲内に広告設定画素領域が継続して含まれる時間を示す。一方、特定されたカメラワークデータが、前回処理されたカメラワークデータに含まれる第2再生時間に続くカメラワークデータであると判定された場合(ステップS22:YES)、ステップS24へ進む。つまり、前回の処理から、継続時間の累積値が引き継がれる。
ステップS24では、制御部31は、広告設定データに、カメラワークデータに含まれる表示画素領域に対応付けられた第2再生時間に対応する第1再生時間があるか否かを判定する。ここで、第2再生時間に対応する第1再生時間には、例えば、第2再生時間と一致する第1再生時間、または第2再生時間が含まれる第1再生時間が該当する。第2再生時間に対応する第1再生時間があると判定された場合(ステップS24:YES)、ステップS25へ進む。一方、第2再生時間に対応する第1再生時間がないと判定された場合(ステップS24:NO)、ステップS29へ進む。
ステップS25では、制御部31は、広告設定データから、ステップS24で判定された第2再生時間に対応する第1再生時間が対応付けられた広告設定画素領域を特定する。次いで、制御部31は、ステップS25で特定された広告設定画素領域が、上記第2再生時間が対応付けられた表示画素領域を基準とした所定範囲内に含まれるか否かを判定する(ステップS26)。ここで、表示画素領域を基準とした所定範囲の例として、表示画素領域の中心座標を中心とした半径距離(例えば画素数)の範囲がある。例えば、広告設定画素領域内の例えば中心座標が所定範囲内に含まれる場合、広告設定画素領域が表示画素領域を基準とした所定範囲内に含まれると判定され(ステップS26:YES)、ステップS27へ進む。一方、広告設定画素領域が表示画素領域を基準とした所定範囲内に含まれないと判定された場合(ステップS26:NO)、ステップS29へ進む。
ステップS27では、制御部31は、継続時間の累積値を更新する。制御部31は、例えば表示画素領域に対応付かれた第1再生時間を、継続時間の累積値に加算することで更新する。次いで、制御部31は、継続時間の累積値が所定時間以上である否かを判定する(ステップS28)。この判定は、表示画素領域を基準とした所定範囲内に広告設定画素領域が所定時間以上継続して含まれるかの判定である。ここで、所定時間は、例えば10〜60秒に設定される。継続時間の累積値が所定時間以上でないと判定された場合(ステップS28:NO)、ステップS29へ進む。一方、継続時間の累積値が所定時間以上であると判定された場合(ステップS28:YES)、ステップS31へ進む。
図5(A)は、表示画素領域を基準とした所定範囲R内に広告設定画素領域の中心座標が所定時間である25秒以上継続して含まれる場合の例を示す図である。表示画素領域を基準とした所定範囲Rは、再生時間“0〜10秒”と、再生時間“10〜20秒”と、再生時間“20〜30秒”とで異なっている。つまり、表示画素領域を基準とした所定範囲Rは、時間経過に従って、動画を構成する画像フレーム上を移動している。図5(A)の例では、再生時間“0〜10秒”と、再生時間“10〜20秒”と、再生時間“20〜30秒”との全ての範囲に亘って、表示画素領域を基準とした所定範囲R内に広告設定画素領域の中心座標が含まれていることになる。そのため、図5(A)の例の場合、ステップS28において、制御部31は、継続時間の累積値が所定時間以上であると判定する。一方、図5(B)は、表示画素領域を基準とした所定範囲R内に広告設定画素領域の中心座標が所定時間以上継続して含まれない場合の例を示す図である。図5(A)の例では、再生時間“10〜20秒”において、表示画素領域を基準とした所定範囲Rから、広告設定画素領域の中心座標が外れている。そのため、図5(B)の例の場合、ステップS28において、制御部31は、継続時間の累積値が所定時間以上でないと判定する。
ステップS29では、制御部31は、まだ処理されていないカメラワークデータがあるか否かを判定する。例えばRAMにまだ処理されていないカメラワークデータが記憶されている場合、まだ処理されていないカメラワークデータがあると判定され(ステップS29:YES)、ステップS21に戻る。ステップS21に戻ると、制御部31は、RAMに記憶されている次のカメラワークデータを特定し、ステップS22以降の処理を行う。まだ処理されていないカメラワークデータがないと判定された場合(ステップS29:NO)、ステップS30へ進む。ステップS30では、制御部31は、広告コンテンツ無を示す情報をクライアント端末2へ送信し、図4に示す処理を終了する。
ステップS31では、制御部31は、表示画素領域を基準とした所定範囲内に含まれると判定された広告設定画素領域に対応付けられた広告IDを特定する。次いで、制御部31は、ステップS31で複数の広告IDが特定されたか否かを判定する(ステップS32)。例えば、図2(D)に示す広告設定画素領域R1-1〜R1-3と、図2(E)に示す広告設定画素領域R2-1〜R2-3とが、それぞれ、表示画素領域を基準とした所定範囲内に含まれる場合、広告ID“0001”と広告ID“0002”が特定されることになる。複数の広告IDが特定されたと判定された場合(ステップS32:YES)、ステップS33へ進む。一方、1つの広告IDのみが特定された場合、制御部31は、複数の広告IDが特定されないと判定し(ステップS32:NO)、ステップS35へ進む。ステップS33では、制御部31は、ステップS31で特定された複数の広告IDごとに、それぞれの広告設定画素領域と、表示画素領域を基準とした所定範囲内の所定座標との距離を算出する。例えば、制御部31は、それぞれの広告設定画素領域内の中心座標と、表示画素領域を基準とした所定範囲内の中心座標との間の距離を、広告IDごとの距離として算出する。
図6(A)〜(C)は、広告設定画素領域内の中心座標と、表示画素領域を基準とした所定範囲内の中心座標との位置関係を示す図である。図6(D)は、広告設定画素領域内の中心座標と、表示画素領域を基準とした所定範囲内の中心座標との間の距離の一覧を示す図である。図6(A)〜(C)の例では、広告設定画素領域R1-1〜R1-3内の中心座標C1-1〜C1-3それぞれと所定範囲R内の中心座標Cx1〜Cx3との間の距離d1-1〜d1-3と、広告設定画素領域R2-1〜R2-3内の中心座標C2-1〜C2-3それぞれと所定範囲R内の中心座標Cx1〜Cx3との間の距離d2-1〜d2-3とが算出される。つまり、ステップS33では、再生時間“0〜10秒”、再生時間“10〜20秒”、及び再生時間“20〜30秒”のそれぞれにおいて、広告IDごとに距離が算出される。この場合、広告IDごとの距離は、図6(D)に示すように、再生時間“0〜10秒”、再生時間“10〜20秒”、及び再生時間“20〜30秒”のそれぞれにおける距離d1-1〜d1-3の合計と、距離d2-1〜d2-3の合計で表される。なお、広告IDごとの距離は、距離d1-1〜d1-3の平均と、距離d2-1〜d2-3の平均で表されてもよい。
次いで、制御部31は、ステップS31で特定された複数の広告IDの中で、それぞれの広告IDが対応付けられた広告設定画素領域と表示画素領域を基準とした所定範囲内の所定座標との距離が最も短い広告IDを特定し(ステップS34)、ステップS35へ進む。これにより、表示対象となる広告コンテンツの候補が複数あっても、ユーザが、より興味を持っている表示対象に対応する広告コンテンツを決定することができる。図6(D)の例では、広告ID“0001”と広告ID“0002”の中で、広告ID“0001”が特定されることになる。ここで、表示画素領域の表示倍率が異なる場合、表示画素領域の表示倍率に応じて表示画素領域を基準とした所定範囲は変動する。この場合、制御部31は、表示画素領域の表示倍率に応じた値を、それぞれの広告設定画素領域と上記所定範囲内の所定座標との距離に乗算する。例えば、表示画素領域の表示倍率が2倍の場合、広告設定画素領域と上記所定範囲内の所定座標との距離に、表示倍率の逆数である“1/2”の値が乗算される。これにより、表示画素領域の表示倍率に応じて表示画素領域を基準とした所定範囲が変動する場合であっても、広告IDごとの距離を適切に比較することができる。そして、制御部31は、この値が乗算された距離が小さい広告IDを特定する。
ステップS35では、制御部31は、ステップS31またはステップS34で特定された広告IDに対応する広告コンテンツを動画と共に表示する表示対象として決定する。次いで、制御部31は、ステップS36で決定された広告コンテンツをクライアント端末2へ送信し、図4に示す処理を終了する。なお、制御部31は、決定された広告コンテンツに代えて、決定された広告コンテンツの所在を示すURLをクライアント端末2へ送信してもよい。
以上説明したように、上記実施形態によれば、広告サーバ3は、少なくとも、動画を構成する複数の画像フレームにおいて複数の画素の中で特定された広告設定画素領域と、広告設定画素領域が特定された特定の画像フレームが出力される第1再生時間と、広告コンテンツの広告IDとを対応付けて記憶する。また、広告サーバ3は、少なくとも、クライアント端末2において動画の再生中に表示された表示画素領域と、表示画素領域が特定された特定の画像フレームが出力される第2再生時間とを対応付けて記憶する。そして、広告サーバ3は、第2再生時間に対応付けられた表示画素領域を基準とした所定範囲内に、この第2再生時間に対応する第1再生時間に対応付けられた広告設定画素領域が所定時間以上継続して含まれるかを、第1再生時間と第2再生時間とに基づいて判定する。広告サーバ3は、所定時間以上継続して含まれると判定した場合、広告設定画素領域に対応付けられた広告IDに対応する広告コンテンツを動画と共に表示する表示対象として決定する。そのため、真にユーザが興味を持っている表示対象に対して、広告を関連付けて表示させることができる。
なお、上記実施形態においては、広告サーバ3に、本発明の情報処理装置を適用した場合の例を説明した。しかし、クライアント端末2に、本発明の情報処理装置を適用してもよい。この場合、クライアント端末2の制御部21が、本発明の判定手段、及び決定手段の一例となる。そして、クライアント端末2の制御部21は、広告サーバ3から広告設定データを取得し、図3に示すステップS3〜S5の処理に代えて、図4に示すステップS21〜S35の処理を行うことになる。この場合、ステップS30の処理は行われずに図4に示す処理が終了する。