JPWO2010092763A1 - コンテンツメディア再生装置及びコンテンツメディア - Google Patents

コンテンツメディア再生装置及びコンテンツメディア Download PDF

Info

Publication number
JPWO2010092763A1
JPWO2010092763A1 JP2010533362A JP2010533362A JPWO2010092763A1 JP WO2010092763 A1 JPWO2010092763 A1 JP WO2010092763A1 JP 2010533362 A JP2010533362 A JP 2010533362A JP 2010533362 A JP2010533362 A JP 2010533362A JP WO2010092763 A1 JPWO2010092763 A1 JP WO2010092763A1
Authority
JP
Japan
Prior art keywords
viewing history
content
state
program content
program
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.)
Pending
Application number
JP2010533362A
Other languages
English (en)
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2010092763A1 publication Critical patent/JPWO2010092763A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • 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/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • 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/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4667Processing of monitored end-user data, e.g. trend analysis based on the log file of viewer selections
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/8715Regeneration of colour television signals involving the mixing of the reproduced video signal with a non-recorded signal, e.g. a text signal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/775Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television receiver

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

BD−java対応のBlu−rayディスク等のように動画等再生がプログラム制御されているような複雑なコンテンツおいても、利用価値が高い視聴履歴を生成することができるコンテンツメディア再生装置を開示する。視聴履歴生成部(1009)は、プログラムコンテンツ処理部(1001)が、視聴履歴テンプレート(1012)に記載された状態を遷移した時刻とその状態名とを視聴履歴(1011)として生成する。視聴履歴テンプレート(1012)には、映像音声コンテンツの視聴履歴として記録すべきプログラムコンテンツ処理部(1001)の状態及びそれら状態間のリンクが記載される。

Description

本発明は、コンテンツメディア再生装置及びコンテンツメディアに関し、例えば、DVD(正式名称、規格名)プレーヤ、Blu−ray(正式名称、規格名)ディスクプレーヤ等の視聴履歴を取得するコンテンツメディア再生装置及びコンテンツメディアに関する。
近年は、テレビ、ビデオプレーヤ、ケーブルテレビ受信機(ケーブルテレビ、セットトップボックス)等のオーディオビジュアル(AV:Audio Visual)家電機器のインターネット(登録商標)対応が進み、従来の放送やビデオコンテンツの視聴だけではなく、インターネットサービスもAV家電に対して提供されるようになってきた。例えば、パナソニック(株)のVIERACastやソニー(株)のアプリキャスト(登録商標)というサービスでは、ユーザはテレビを見ながらインターネットサービスを受けることができる。
また同様に、BD−LIVE(規格名)規格に対応したブルーレイディスクプレーヤ(Blu-ray disk player)では、BD−LIVE規格に対応したブルーレイディスクを再生する場合に、ユーザは、インターネットサービスを受けることができる。
具体的には、ユーザは、現在受信しているテレビ番組に出演中の俳優に関連した情報をインターネットから取得してテレビ画面に表示させたり、テレビ番組に関連した映画、音楽等を、インターネットを通じて購入したりすることが可能となる。また、ユーザは、再生視聴した映画の映像ディスクに関連した映画のメイキング等の映像特典をインターネットからダウンロードしたりすることも可能となる。
さて、このように家電機器におけるインターネットサービスを行なうための家電機器内部の仕組みや光ファイバ網等のインフラはできあがりつつあるが、その一方で、これら機能、サービスが、ユーザに広く利用されるようになってきているとはいい難い。
ユーザの利用を阻む原因はいくつか考えられるが、そのうちの1つは、家電機器の場合、パソコン又はインターネット対応携帯電話に比較して、ユーザの入力の自由度が低く、使い勝手が悪いということが挙げられる。
例えば、興味がある映画の映像ディスクを購入しようとする場合、パソコンでは、ユーザは、オンラインショッピングサイトで、自身が欲しい映画の題名をキーボード入力し、オンラインショップから提示された複数の候補から映像ディスクをマウスで選択し、後は決済すればよい。これに対し、例えば、インターネットサービスに対応したテレビには、キーボードのような文字入力手段がない。そのため、ユーザは、文字入力手段に代えて、リモコンを入力操作せねばならず、望みの商品に辿りつくまでに疲れ果ててしまう。
この欠点を解消するには、文字入力或いはポインティングができるテレビ用入力機器をテレビに付属させればよいように思えるが、これはハードウエアの改変追加が必要となるため、家電機器のコスト増に繋がり、必ずしも得策ではない。
そこで、発想を変えて、ユーザの煩雑な入力をできるかぎり削減することで、ユーザの使い勝手を向上させる方法が考えられる。つまり、家電機器側がユーザの嗜好又は望みを推測することで、ユーザは必要最低限の入力だけでユーザが望みのサービスを享受できるようにして、ユーザの使い勝手を向上させる。
このユーザの嗜好又は望みを推測するには、様々な手法がある。その中でも、テレビ或いは映像ディスクプレーヤとの関係で重要になるのは、ユーザがそれらAV家電機器を用いて視聴した履歴である視聴履歴を獲得して統計的な解析等を用いる手法である。
例えば、簡単な例では、テレビにおいて、あるユーザが野球中継の番組を中心的に見ているということが分かれば、そのユーザは野球が好きなのであろうことが推測できる。その結果、ユーザがケーブルテレビ等の有料放送を選択しようとする場合、サービスを提供する側が野球中継のチャネルをいくつか推薦してあげるようにすると、ユーザは、沢山のチャネルの中からいちいち望みのチャネルを選択するという手間を省くことができる場合が多いであろう。
特許文献1には、視聴履歴の典型的な収集手段が開示されている。特許文献1に開示される収集手段は、まずテレビのリモコンのキーが押下された時刻の情報をあわせてリモコン信号を記録する。そして、このリモコン信号の履歴と別途取得した番組情報とが組みあわされて、視聴履歴が生成される。
そして、このように取得された視聴履歴を用いて、ユーザの嗜好等が解析されるようにすればよい。例えば、特許文献2には、収集した視聴履歴の分析手法(特許文献2の用語では「視聴傾向分析」)が開示されている。
このように、何らかの形でユーザの視聴履歴が生成取得されれば、その情報を分析することにより、家電機器は、ユーザの嗜好又は望みにあわせて自動的にサービスを提供することが可能となる。したがって、嗜好の分析を正確に詳細に行なうには、分析手法そのものを改良することはもちろんであるが、それと同時に正確でかつ豊富なユーザの視聴履歴を取得することが重要になってくる。
特開2004−248201号公報(第2頁の請求項1乃至請求項2、図3) 特開2005−352754号公報(第15−19頁の実施例)
テレビ、ケーブルテレビ或いは有線放送のような放送の場合は、チャネルと時刻さえ指定すれば、コンテンツのどの場面が再生されているのかを明確にすることができる。そのため、後はテレビ等に対するユーザの操作を時刻と共に記録さえすれば、かなり正確かつ詳細に視聴履歴を記録することができる。そして、テレビに対するユーザの操作は、テレビの操作ボタン或いはリモコンのキーの押下からほぼ曖昧さを残さずに読みとることが可能である。
これに対して、ビデオプレーヤ(DVDプレーヤ或いはBlu−rayディスクプレーヤ)は、放送と異なり番組表のようなものがない。そのため、例えば、ユーザのリモコン操作及び時刻から、ユーザがどのようなタイトルのビデオコンテンツを視聴して、どの場面を見ていたか等を推測することは非常に困難である。
したがって、ビデオプレーヤにおいて、視聴履歴を自動的に記録するためには、少なくともビデオコンテンツのタイトル或いは内容構成のようなメタ情報を、ビデオプレーヤが取得できることが必要である。例えば、ビデオプレーヤが、ビデオコンテンツのタイトルさえ分かれば、少なくともそのタイトルを見たという程度の記録を視聴履歴に残すことができる。また、ビデオプレーヤが、ビデオプレーヤの操作キー(再生、早送り、停止等)をも記録すれば、このタイトルのどの部分を何分間、何回見たというような、細かい情報も視聴履歴に記録できるであろう。これにより、視聴履歴の質はある程度高くなったかに思える。
しかし、近年は、BD−live対応のBlu−rayディスクコンテンツ等のディスクに記録されている映像音声コンテンツの再生制御を、複雑なプログラムで行なえるような規格が登場している。この場合、ユーザは、従来の操作キー(再生、早送り、停止等)を用いてもコンテンツの再生操作が可能であるが、これら操作キーに加えて、GUI(Graphical User Interface)画面を通して、コンテンツの操作を行なえるような場合も登場している。また、上記GUI画面を提供するプログラムを再生制御にだけ使うのではなく、そのプログラム自体がコンテンツとされるような場合も考えられる。ゲーム或いはマルチエンディングの物語等が典型的な例である。
しかしながら、GUI画面を提供するプログラム自体がコンテンツとされるような場合には、どの時点においても同一の意味を持つような操作キーというものが少なくなるため、単純にユーザのキー操作だけを記録しても、ユーザが何をしていたのかを把握することが難しく、そのため、視聴履歴の生成が困難となる場合が増えてくる。
本発明の目的は、BD−java対応のBlu−rayディスク等のように動画等再生がプログラム制御されているような複雑なコンテンツおいても、利用価値が高い視聴履歴を生成することができるコンテンツメディア再生装置及びコンテンツメディアを提供することである。
本発明のコンテンツメディア再生装置は、映像音声コンテンツと、前記映像音声コンテンツを提示するユーザインタフェースを含むプログラムコンテンツとからなるコンテンツメディアを再生するコンテンツメディア再生装置であって、前記コンテンツメディアを読み取るアクセス部と、ユーザからの操作入力を受け付ける入力部と、前記アクセス部から前記プログラムコンテンツを読み出し、前記操作入力に従い前記プログラムコンテンツを動作させて、前記映像音声コンテンツの再生制御を行なうプログラムコンテンツ処理部と、前記映像音声コンテンツの視聴履歴として記録すべき前記プログラムコンテンツ処理部の状態及び前記状態間のリンクが記載されている視聴履歴テンプレートを記録する記録部と、前記プログラムコンテンツ処理部が、前記視聴履歴テンプレートに記載された状態を遷移した時刻と当該状態とを前記視聴履歴として生成する生成部と、を具備する構成を採る。
本発明のコンテンツメディアは、映像音声コンテンツと、前記映像音声コンテンツを提示するユーザインタフェースを含むプログラムコンテンツと、前記映像音声コンテンを再生するコンテンツメディア再生装置の状態及びそれら状態間の遷移のうち、前記映像音声コンテンツの視聴履歴として記録すべき状態及びそれら状態間の遷移が記載されている視聴履歴テンプレートと、を具備する構成を採る。
本発明によれば、例えば、BD−Live対応のBlu−rayディスク、アドビシステムズ社のフラッシュ(Flash、商標)コンテンツように、映像音声コンテンツと、それら映像音声コンテンツを提示するユーザインタフェース(UI:User Interface)を含むプログラムコンテンツとからなるコンテンツメディアに対しても、詳細で情報量が多い視聴履歴を生成することができる。そして、視聴履歴と視聴履歴テンプレートとを対にして解析することにより、視聴履歴を機械的に解析することが可能となり、計算機を用いた大規模な視聴履歴解析に供することができる。
本発明の実施の形態1に係る光ディスクプレーヤ及び光ディスクの構成図 実施の形態1におけるプログラムコンテンツの内容を表現した状態遷移図 実施の形態1における視聴履歴生成テンプレートの一例を示す図 実施の形態1における視聴履歴生成テンプレートの別の例を示す図 実施の形態1における視聴履歴の生成方法を説明するためのフローチャート図 実施の形態1におけるプログラムコンテンツのJAVAプログラムの一例を示す図 実施の形態1における視聴履歴の一例を示す図 実施の形態1における視聴履歴を解析して得られた行動図 本発明の実施の形態3におけるJAVAプログラムの一例を示す図 実施の形態3におけるプログラムコンテンツを動作させて得られるディスプレー上の表示の模式図 実施の形態3におけるJAVAプログラムのバイトコードの一例を示す図 実施の形態3における視聴履歴テンプレート自動生成方法を説明するためのフローチャート 実施の形態3における視聴履歴生成テンプレートの一例を示す図
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(実施の形態1)
本実施の形態は、本発明の基本的な実施例である。以下では、コンテンツメディアのコンテンツメディア再生装置を用いて、ユーザがあるコンテンツメディアを再生した場合を例に、視聴履歴の生成方法について説明する。なお、以下では、コンテンツメディア及びコンテンツメディア再生装置として、DVD又はBlu−rayディスク等の光ディスク及び光ディスクプレーヤに本発明を適用する場合を例に説明する。
まず、図1は、実施の形態1に係る光ディスクプレーヤ及び光ディスクの内部構成を示すブロック図である。
光ディスクプレーヤ1000は、光ディスク上のコンテンツの再生、及び、光ディスク上のプログラムコンテンツを実行することができる装置である。光ディスクプレーヤ1000は、プログラムコンテンツの内容及びユーザが手にしているリモコン1200からの入力に従い動作する。再生されたコンテンツの映像音声或いはプログラムコンテンツの実行の結果生じるグラフィック表示は、ディスプレー(及びスピーカー)1300にて表現される。
リモコン1200からの入力は、リモコン入力部1003によって受信され、操作部1004に渡される。操作部1004は、リモコン1200から入力される電気的信号を、プログラムコンテンツ処理部1001、GUI(Graphical User Interface:グラフィカルユーザインタフェース)表示部1006及び動画・音声再生部1007が扱い得るプログラム言語上の入力イベント(典型的にはキーイベント、マウスイベント等)に変換する。
プログラムコンテンツ処理部1001は、光ディスクアクセス部1002を通して、光ディスク1100内のプログラムコンテンツを読み取り、読み取ったプログラムコンテンツ及びユーザのリモコン入力(キーイベント)に従い、GUI表示部1006の支援を受けて、グラフィカルユーザインタフェース(GUI)をディスプレー(及びスピーカー)1300に表示する。また、プログラムコンテンツ処理部1001は、ユーザからのリモコン入力(キーイベント)を待ったり、或いは、動画・音声再生部1007に命じて映像音声コンテンツをディスプレー(及びスピーカー)1300に表示させたりする。このプログラムコンテンツ処理部1001の動作は、後に詳しく説明する。
光ディスクプレーヤ1000は、各種情報の汎用記憶装置としてファイルシステム1010を持っており、光ディスクプレーヤ1000の各部はファイルシステム1010にアクセスし、読み書きすることができる。
ファイルシステム1010は、記憶装置であり、ファイルシステム1010上に、適当な時点で視聴履歴テンプレート1012及び視聴履歴1011が書き込まれる。この視聴履歴1011は、視聴履歴生成部1009によって読み書きされる。
更に、視聴履歴生成部1009は、必要があればネットワークI/F(Inter Face)1008を介して、光ディスクプレーヤ1000の外部に設置された履歴収集サーバ1500に、その視聴履歴1011をアップロードすることができる。
ネットワーク1400は、光ディスクプレーヤ1000と履歴収集サーバ1500との間に存在する、家庭内のローカルエリアネットワーク或いはインターネットを便宜的にひとまとめにして表現したものである。
一方、光ディスク1100には、プログラムコンテンツ1101、映像・画像・音声コンテンツ1102及び視聴履歴テンプレート1103が保持されており、これらを光ディスクプレーヤ1000は、光ディスクアクセス部1002を介して読み取ることができる。
プログラムコンテンツ1101は、何らかのプログラム言語で記述されたアプリケーションであって、映像・画像・音声コンテンツ(又は映像音声コンテンツ)1102の再生制御をしたり、或いはユーザに対しGUIを表示させたりする。また、プログラムコンテンツ1101自体が、ユーザに対するゲーム等のコンテンツであったりする場合もありうる。
本実施の形態におけるプログラムコンテンツ1101の内容については、別途、図2を用いて後に詳述する。
映像・画像・音声コンテンツ1102は、静止画像、映画或いは音楽等であって、時間的に順次再生が予定されている、狭い意味でのコンテンツである。
光ディスク1100が、ある映画を主内容とする場合には、その映画そのものがコンテンツとなる。また、光ディスク1100が、写真集のようなものであれば、写真そのものがコンテンツとなり、この写真をリスト表示させたりスライドショー表示させたりするようなプログラムがプログラムコンテンツとなる。
本実施の形態では、光ディスク1100が映画を主内容とし、映像・画像・音声コンテンツ1102が、映画本編そのもの、及び、予告編そのものとなる場合を例に説明する。
図2は、プログラムコンテンツ1101の内容を、模式的に表現した状態遷移図である。実際のプログラムコンテンツは、プログラムコンテンツ処理部1001が効率良く処理できるように、プログラム言語からコンパイルされており、人間には理解しづらいので、図2のように模式的に表現した。図2の各々の状態に関しては、以下の説明の流れの中で説明する。
なお、本実施の形態では、プログラムコンテンツ1101の記述言語としてJAVA(登録商標)(プログラム言語名)を仮定している。また、そのためプログラムコンテンツ処理部1001は、JAVAの処理系(VM:Virtual Machine)の1つである。
図3Aは、視聴履歴テンプレート1103(又は1012)の具体的な内容を示す。
図3Aの視聴履歴テンプレート3001及び図3Bの視聴履歴テンプレート3002は、XML(eXtensible Markup Language)で表現された視聴履歴テンプレート1103(又は1012)である。なお、視聴履歴テンプレート3001、3002の左側の行番号は、説明のために便宜的に付加されたものであり、実際の視聴履歴テンプレート1103(又は1012)には、行番号は含まれない。
図4は、プログラムコンテンツ処理部1001の動作のうち、視聴履歴生成に関わる動作部分を表現したフローチャートである。
図5は、プログラムコンテンツ1101の一例である。プログラムコンテンツ処理部1001が、プログラムコンテンツ1101を処理実行していく過程で、視聴履歴生成のタイミングを見つける処理を説明するため、図5のプログラムコンテンツ1101は、JAVA言語のイメージで表現されている。なお、図5の例は、説明を簡単にするため、内容的に非常に簡略化されている。そのため、図5のJAVA言語で表現された内容と図2で表現されている内容とは全く異なるものである。
図6は、本実施の形態で最終的に生成される視聴履歴1011である。なお、図6に示す視聴履歴6001の左側の行番号は、説明のために便宜的に付加されたものであり、実際には、視聴履歴6001に、行番号は含まれない。
図7は、図6のように表現された視聴履歴6001を、視聴履歴テンプレート3001に照らし合わせて解析した結果を、図2の状態遷移図に重ねて表現した図である。
以上の図1〜図7を用いて、光ディスクプレーヤ1000の動作について説明する。
今、光ディスクプレーヤ1000に、光ディスク1100が挿入されたとする。通常のBlu−rayディスクプレーヤと同様に、光ディスクプレーヤ1000にコンテンツディスクである光ディスク1100が挿入されると、自動的に光ディスク1100の内容が読み込まれ、コンテンツの再生が始まる。
本実施の形態においても、光ディスクアクセス部1002を用いて、プログラムコンテンツ処理部1001は、光ディスク1100の内容、すなわちプログラムコンテンツ1101、映像・画像・音声コンテンツ1102及び視聴履歴テンプレート1103を読み込み、視聴履歴テンプレート1103をファイルシステム1010に視聴履歴テンプレート1012としてコピーする。
そして、次に、プログラムコンテンツ処理部1001は、プログラムコンテンツ1101の実行を開始する。プログラムコンテンツ1101は、実体としては、コンパイルされたJAVAプログラムのバイトコードの集りであるが、以下では説明を簡単にするため、JAVAプログラムと論理的に同値である図2の状態遷移図を用いて説明する。ただし、この図2の状態遷移図は非常に簡略化されている。また、プログラムコンテンツ処理部1001は、実体としてはJAVAのVMであるが、説明を簡単にするために、状態遷移マシンとして説明する。
図2において、白地の四角或いは角丸四角は、プログラムコンテンツ1101の主な状態を示す。また、図2において、矢印は、各状態間の遷移可能性を示す。状態は、実際は何らかのきっかけ(ユーザからの入力、タイマー信号、ハードウエア割り込み等の遷移条件)で遷移する。或いは、状態は、きっかけ(遷移条件)が無くても無条件で遷移することもある。なお、図2には、状態遷移のきっかけ(遷移条件)は省略されている。
また、終了状態2020に対して矢印がないのは、終了状態2020へは任意の状態からの遷移が可能であるため、図が繁雑になるのを避けるために矢印を省略したことによる。
図2において、網掛四角(2002、2003、2008、2006、2011、2013、2015、2016、2018、2019)は、各状態につけられた名称を表している。実施の形態では、この名称は「状態ID」又は単に「ID」と呼ばれ、図2は、名称が数字で表されている例である。ただし、初期状態はinitial、終了状態はendという特別の名称を持つとする。なお、破線四角2009は、状態グループを表す。状態グループ2009については、後述する。
さて、プログラムコンテンツ処理部1001は、光ディスク1100が挿入されると、プログラムコンテンツ1101、すなわち図2の状態遷移図に従い、その状態を変更する。
まず、プログラムコンテンツ処理部1001は、初期状態2001(ID=initial)から開始し、その直後無条件で状態2004(ID=1)に遷移する。この状態で、プログラムコンテンツ処理部1001は、主メニュー画面をディスプレー1300に表示し、ユーザからの選択入力を待つ。主メニュー画面には、光ディスク1100のコンテンツの内容がリスト形式で表示され、ここでユーザは、「映画の本編再生」、「本編から章を選択」、「予告編の再生」又は「ゲーム」のメニューを選択することができる。
そしてユーザは、映画本編をすぐに見たければ、ディスプレー1300に表示されているリストの中からリモコン1200を操作して「映画の本編再生」を選択し、選択操作に伴うリモコン信号が、リモコン入力部1003及び操作部1004を経由して、キーイベントとしてプログラムコンテンツ処理部1001に伝えられる。プログラムコンテンツ処理部1001が、そのキーイベントを適切に解釈すると、リンク2024の遷移が発生し、プログラムコンテンツ処理部1001の状態は、本編第1章の再生状態2014(ID=100)に遷移する。そして、プログラムコンテンツ処理部1001は、動画・音声再生部1007に本編の再生を命じ、映画本編が再生される。
以下、同様に、ユーザからのキーイベントに対して、プログラムコンテンツ処理部1001は、内部状態を変更し、その状態に応じたアクションを実行することにより、プログラムコンテンツ1101が実行されていく。
このような場合に、視聴履歴は、どのように生成されるであろうか。
仮に、ここでキーイベントのみを記録した場合、記録されるのは、例えば、ディスプレー1300に表示されたGUIのリストを見るための「上下キー」、或いはリストから1つを選択するための「決定キー」等だけであり、これらのキーの羅列を第三者が後に取得し視聴履歴を解析しようとしても、全く意味が分からない。更に、同じプログラムコンテンツであっても、再生機器によってGUI表現やキーイベントに相違があるため、推測さえ充分には行なえない。
これに対し、本実施の形態では、視聴履歴テンプレートを利用して、視聴履歴を生成する。本実施の形態における視聴履歴生成の方法は、以下の通りである。
まず、視聴履歴テンプレートは、次のように定義される。視聴履歴テンプレートは、プログラムコンテンツを論理的に同等の状態遷移図として捕らえた場合の全ての状態から、視聴履歴として記録したい状態だけが抜き出された集合である。そして、その視聴履歴テンプレートに含まれる状態に対しては、他の状態へのリンク、状態を説明する名称、又は、その状態で実行されるアクションを説明するための説明文等の情報を付加することができる。
本実施の形態では、この視聴履歴テンプレートが、図3A及び図3Bに示したようなXML形式で記述される場合を例に説明する。なお、視聴履歴テンプレートは、必ずしもXML形式である必要はなく、他の形式で表現されていても問題はない。
図3A及び図3Bには、2つの視聴履歴テンプレート3001、3002が図示されている。これら視聴履歴テンプレート3001、3002は、どちらもプログラムコンテンツ1101(又は図2の状態遷移図)に対して作成されたものである。このうち、視聴履歴テンプレート3001は、全ての状態に対して視聴履歴を取得する場合のテンプレートであり、かつ、リンクや名称等の付加情報も充実させた、いわばフルセットの視聴履歴テンプレートである。
視聴履歴テンプレート3001を詳細に見ると分かるように、視聴履歴テンプレート3001は、図2の状態遷移図の中身とほとんど同等である。視聴履歴テンプレートは、状態及び付加情報として状態間のリンクを含むので、視聴履歴テンプレート3001のようにフルセットの視聴履歴テンプレートが用いられる場合には、得られる視聴履歴は、当然に対応する状態遷移図と同等となる。
一方、視聴履歴テンプレート3002は、図2の状態グループ2009の範囲、すなわち映像コンテンツ(映画予告編及び映画本編)の再生範囲内だけで視聴履歴を取得しようという場合のテンプレートであり、付加情報も全て欠落されている。視聴履歴テンプレート3002が用いられる場合には、得られる視聴履歴は、取得したい状態IDの列挙と同等となる。
当然のこととして、視聴履歴テンプレート3001の方が、視聴履歴テンプレート3002に比べ情報が豊富であるため、後に視聴履歴を解析する場合に、より多くの知見が得られる。ただし、視聴履歴テンプレート3002に比べ、視聴履歴テンプレート3001の作成には手間がよりかかる。
本実施の形態では、プログラムコンテンツ処理部1001がフルセットの視聴履歴テンプレート3001を利用する場合を例に説明する。
さて、視聴履歴テンプレート3001を与えられたプログラムコンテンツ処理部1001は、プログラムコンテンツ1101を処理実行しつつ、図4に示したようなフローチャートに従い、視聴履歴を生成していく。
今、ユーザは、以下に示すような順序で行動し、この光ディスク1100を視聴するとしよう。
(行動#1)主選択画面(状態2004、ID=1)を見て、本編再生(状態2014、ID=100)を選択する。
(行動#2)本編をしばらく見るが、本編第2章(状態2035、ID=101)の途中で、リモコン1200を操作して、章選択画面(状態2007、ID=2)に移る。
(行動#3)更に、主選択画面(状態2004、ID=1)に戻る。
(行動#4)予告編1(状態2010、ID=200)に移り、予告編1を見る。
(行動#5)続けて予告編2(状態2012、ID=201)を見るが、途中で「ディスク排出」を行ない、視聴を終了(状態2020、ID=end)する。
なお、図6は、これらの行動を受けて生成された視聴履歴である。
最初に、プログラムコンテンツ処理部1001は、開始ST4000を経て、イベント待ちST4001に入る。ここでのイベントとは、ユーザからのキーイベント、ハードウエアからの割り込み、タイマイベント等である。なお、プログラムコンテンツ処理部1001は、図4に示したフローと同時並列に、プログラムコンテンツ1101の実行処理をも行なっていることに注意する。
まず、光ディスク1100が光ディスクプレーヤ1000に挿入されると、ディスク挿入を伝えるハードウエア割り込みが発生し、プログラムコンテンツ処理部1001は、視聴履歴テンプレート読み込みST4003に入る。ここで、プログラムコンテンツ処理部1001は、視聴履歴テンプレート1103を読み出し、ファイルシステム1010内に視聴履歴テンプレート1012としてコピーする。プログラムコンテンツ処理部1001は、コピー後、XML形式で記述された視聴履歴テンプレート1012を解析し、後の利用のために視聴履歴テンプレート1012に検索インデックス等を付加する。
そして、視聴履歴生成の準備が終ると、プログラムコンテンツ処理部1001は、視聴履歴として初期状態を通過したことを記録する。具体的には、プログラムコンテンツ処理部1001は、視聴履歴生成部1009に対して、初期状態を通過したことを記録せよと命ずる。そして、視聴履歴生成部1009は、空の視聴履歴を新しく生成して、その冒頭に、時刻とともに、視聴履歴を記録する(視聴履歴6001の1行目)。
視聴履歴6001の1行目は、「発生した事象はユーザの行動起源のものであり(ディスク挿入、″event″というタグで表現れている)、対応する状態IDは、″initial″(状態2001、2002)であり、この状態から出たこと(属性″out″)、発生したタイムスタンプは、0秒」であることを意味している。
この後、プログラムコンテンツ処理部1001は、再度イベント待ちST4001に入る。
この間同時に、プログラムコンテンツ処理部1001は、プログラムコンテンツ1101に従い、ディスプレー1300に、主選択画面(状態2004、ID=1)を表示する。
初期状態(状態2001、ID=initial)から主選択画面(状態2004、ID=1)に状態を変更したプログラムコンテンツ処理部1001は、自らに状態変更のイベントを発行する。そして、プログラムコンテンツ処理部1001は、状態変更のイベントを受信すると、図4のフローチャートに従い、イベント待ちST4001からイベント種類分岐ST4002に移り、ST4005に移る。ST4005は、視聴履歴テンプレート1103に照らしてこの状態変更を記録すべきかを否か判断する。
視聴履歴テンプレート3001の5〜10行目に、主選択画面(状態2004、ID=1)の状態を表す″main manu″があるので、検索ヒットST4009はYESとなり、プログラムコンテンツ処理部1001は、視聴履歴生成ST4006に入る。このあと、プログラムコンテンツ処理部1001は、視聴履歴生成部1009に命じて、ST4007に移り、適当な視聴履歴を記録し(視聴履歴6001の2行目)、再度イベント待ちST4001に入る。
なおここで、状態が遷移したことをプログラムコンテンツ処理部1001はどのようにして知り得るか、また、視聴履歴テンプレートの作成者(通常、人間)は、どのような状態がありその名称(ID)は、何であるかをどのようにして知り得るかについて、説明をしておく。
プログラムコンテンツが、実装としても状態遷移図として実現されている場合、状態遷移図は、プログラム文面上でも明示されている。したがって、視聴履歴テンプレート作成者は、その状態遷移図を見ることにより視聴履歴テンプレートを作成することができる。そして、この作業は、かなりの部分まで自動化できるであろう。また、これに対応してプログラムコンテンツ処理部1001も実装として状態遷移マシンとして実現されているであろうから、プログラムコンテンツ処理部1001にとって、状態が遷移したことを知ることは容易である。
これに対して、状態遷移ではなく、JAVA言語のように手続的に表現されたプログラム言語とその処理系に対しては、状態が明示的に定義されているわけではないので、状態を定義し、状態が遷移したことをプログラムコンテンツ処理部1001が知る仕組と、この状態の全体を視聴履歴テンプレート作成者が知る手段とを設ける必要がある。一番簡易な方法としては、プログラムコンテンツ作成を行なう人間が、状態を定義し、状態遷移のタイミングもプログラム文面上明示するという方法が考えられ、本実施の形態では、この方法を採用するとする。
図5は、非常に簡単な、リスト選択画面を表示するJAVAプログラムである。
図5のJAVAプログラム5000において、クラス5002(″Class Interpreter″)は、プログラムコンテンツ処理部1001に対して、状態遷移イベントを発行するために用意されたクラスである。そして、クラス5002を使って、プログラムコンテンツ処理部1001に対する通知5001がJAVAプログラムに埋め込まれている。
クラス5002は、実はプログラム文面上は、何もしない空であるが、これは、プログラムコンテンツ処理部1001が履歴生成に対応していない場合を考慮したものである。プログラムコンテンツ処理部1001が履歴生成に対応している場合には、このプログラムをロードすると、″Class Interpreter″のstate()メソッドは、初めからあった実装に上書きされることになる。
なお、人間が視聴履歴テンプレートを作成せずに、視聴履歴テンプレートが自動生成される方法については、実施の形態3で説明する。
再度図4に戻り、説明を、視聴履歴生成に戻す。
次に、ユーザは、(行動#1)を実行する。つまり、ユーザは、主選択画面(状態2004、ID=1)を見て、リモコン1200のキーの「選択キー」を押下し、本編再生(状態2014、ID=100)を選択する。
選択(シンボルは、ENTER)というキーイベントが、プログラムコンテンツ処理部1001に送られると、プログラムコンテンツ処理部1001は、そのキーイベントを視聴履歴として記録するとともに(視聴履歴6001の3行目)、そのキーイベントの結果発生する状態遷移(状態2004から状態2014への遷移)も記録する(視聴履歴6001の4、5行目)。
視聴履歴6001の4行目は、主選択画面の表示状態(状態2004、ID=1)が、タイムスタンプ14で終了したことを示す。同5行目は、本編第1章再生状態(状態2014、ID=100)にタイムスタンプ15で移ったこと示す。
一方、プログラムコンテンツ処理部1001は、本編第1章再生状態(状態2014、ID=100)に入ると、その状態に付随したアクションとして、本編第1章を再生することを、動画・音声再生部1007に命ずる。プログラムコンテンツ処理部1001は、動画・音声再生部1007に何事かを命ずる場合は、その命令に応じた映像音声コンテンツイベントを自らに向けて発生させる。その結果、ST4010が実行されて、視聴履歴6001の6〜12行目が記録される。
プログラムコンテンツ処理部1001が、動画・音声再生部1007に対して命令を発行する場合、映像のタイトル名、映像の記録時間、フォーマット等のメタ情報が明確になっている場合が多いので、このようなメタ情報も同時に記録される(視聴履歴6001の8〜10行目)。
以下、同様にして、(行動#2)から(行動#5)までの視聴様子が記録され、最終的に図6に示したような視聴履歴が生成される。
そして、光ディスク1100の再生が終了すると(この場合は、ユーザの(行動#5)により、ユーザは光ディスク1100を排出した)、その状態が記録されるとともに(視聴履歴6001の42〜45行目)、視聴履歴1011は閉じられ、視聴履歴テンプレート1012と対にして保存される。
その後、必要に応じて、この視聴履歴1011と視聴履歴テンプレート1012との対は、履歴収集サーバ1500にアップロードされ解析されたり、又は、アップロードされずに、光ディスクプレーヤ1000の内部に保持されたまま、ユーザの利便性向上のために用いられたりすることができる。
図7は、図6に示した視聴履歴6001を、視聴履歴テンプレート3001を視覚的に表現した図2に示した状態遷移図の一部に、行動図風に表現した図である。
図7は、ユーザは本編を見始めてみたものの、おそらく途中で飽きてしまったのか、第2章で視聴を中断し、他の映画の予告編を少々見たものの、これもまた途中で中断してしまっていることを示している。ただし、ユーザの真意に少しでも近づくためには、タイムスタンプ、関連するキー操作又は他の視聴履歴との比較検討等が必要となるであろう。
以上のように、本実施の形態では、視聴履歴テンプレート1012には、映像音声コンテンツの視聴履歴として記録すべきプログラムコンテンツ処理部1001の状態及びそれら状態間のリンクが記載されており、視聴履歴生成部1009は、プログラムコンテンツ処理部1001が、視聴履歴テンプレート1012に記載された状態を遷移した時刻とその状態名とを視聴履歴1011として生成するようにした。
これにより、音声映像コンテンツとプログラムコンテンツとが一体となったコンテンツ(BD−live対応のBlu−rayディスクコンテンツやアドビシステムズ社のフラッシュコンテンツ等)に対しても、豊富で正確な視聴履歴を生成することができる。また、従来は、ネットワークからのダウンロード数の情報程度しか分からなかったフラッシュコンテンツに対しても、同様に視聴履歴を生成することができる。
更に、収集した視聴履歴と視聴履歴テンプレートとをあわせることで、人間の恣意的な解釈と伴うことなく、機械的に一意にどの場面をどのように見たかを解析することができるようになるので、計算機による大規模かつ高速な視聴履歴解析が可能となる。
(実施の形態2)
実施の形態1では、視聴履歴テンプレートが光ディスクに含まれる場合について説明した。
実施の形態1で説明したように、視聴履歴テンプレートは、コンテンツ作成者が、プログラムコンテンツ或いは音声映像コンテンツの作成にあわせて同時に作り、プログラムコンテンツ或いは音声映像コンテンツと同一のコンテンツメディア中に記録して配布すれば、光ディスクプレーヤは、コンテンツ再生にあわせて視聴履歴テンプレートを確実に読み込むことができる。
その反面、全ての光ディスクに視聴履歴テンプレートが記憶されるようにすると、視聴履歴テンプレートを利用しない光ディスクプレーヤで視聴する場合には無駄となったり、また、記録したい視聴履歴を後から変更したい場合には対応が困難となったりする。
そこで、視聴履歴テンプレートをネットワーク上に置いて、必要な時点で光ディスクプレーヤは、ネットワーク上から視聴履歴テンプレートをダウンロードするような構成にすれば、これらの欠点は解消される。
例えば、再度図1を例に用いて説明すると、光ディスク1100には、視聴履歴テンプレート1103に代えて、視聴履歴テンプレート1103を識別することができるタグを記録し、履歴収集サーバ1500は、視聴履歴テンプレートを多数記録するようにする。このとき、タグは、コンテンツのタイトル名或いは何らかのIDコード等とし、タグから視聴履歴テンプレート1103を検索することができるようにしておく。
そして、プログラムコンテンツ処理部1001は、光ディスク1100を再生する場合に、履歴収集サーバ1500から、光ディスク1100に記録されたタグに対応する視聴履歴テンプレートを検索し、ネットワーク1400を経由して視聴履歴テンプレートをダウンロードする。プログラムコンテンツ処理部1001は、ダウンロードした視聴履歴テンプレートをファイルシステム1010上に視聴履歴テンプレート1012として記録しておく。
このようにすれば、実施の形態1と同様の効果を得つつ、オンデマンドで、視聴履歴テンプレートを利用することができるようになる。
(実施の形態3)
実施の形態1では、視聴履歴テンプレートは、コンテンツ作成者が、プログラムコンテンツ或いは音声映像コンテンツの作成にあわせて同時に作り、プログラムコンテンツ或いは音声映像コンテンツと同一のコンテンツメディア中に記録して配布する場合について説明したが、視聴履歴テンプレートは、プログラムコンテンツ或いは映像音声コンテンツから人間の手を介さずに機械的に生成することもできる。
当然、人間が作成する視聴履歴テンプレートに比較すると、機械的に生成された視聴履歴テンプレートには、自動抽出できる情報の質に限界があり、後の視聴履歴の解析の点から劣る面もある。しかしその欠点があっても、人間の労力を介さずに機械的に自動的に視聴履歴テンプレートを作成できるという点は、効率面からは有用である。更に、視聴履歴テンプレートにそもそも対応していないコンテンツに対しても、ある程度の質の視聴履歴が取り得るという点からも有用である。そこで、本実施の形態では、視聴履歴テンプレートの自動生成について説明する。
では、視聴履歴テンプレートの自動生成は如何にして為し得るか。実施の形態1で説明したように、視聴履歴テンプレートは、人間が理解できるように、コンテンツの構造又は動作を、プログラムコンテンツの「重要な場面」と「場面間の遷移」とに簡略化し、更に後に解析が機械的にできるような形式的言語で表現されている。
これに対して、一般的なプログラムは、機械的な手続で状態遷移オートマトンに変換可能であるものの、オートマトンのいう状態を視聴履歴テンプレートの状態に置き換えようとしたところで、一意のオートマトンに定まるとは限られず、また、上記で説明したような「重要な場面」が抽出できるとも限らない。このため、何らかの意味的、経験的な方法を導入して、コンテンツから「重要な場面」を自動抽出する必要がある。
本実施の形態では、プログラムコンテンツを記述する言語が、JAVA、Javascript等のオブジェクト指向のプログラム言語であるとする。プログラムコンテンツがオブジェクト指向言語により記述されていることは、本実施の形態における視聴履歴テンプレートの自動生成方法に関しての前提となる。以下で詳述するが、本実施の形態における視聴履歴テンプレートの自動生成方法は、オブジェクト指向言語の特定のクラス又はメソッドに注目することで、人間にとって有用な状態(前記の「重要な場面」)を抽出するからである。
まず、視聴履歴テンプレートにおいて、その履歴が欲しい重要な場面(状態)とは、ほとんどが、ユーザが選択したり、コンテンツに対して直接操作(再生、早送り、停止等)したりする場面である。また、視聴履歴で欲しい情報とは、何のコンテンツが選択されて、その選択されたコンテンツがどのように操作されたかについてであるから、これは当然のことといえる。
では、その重要な場面である(1)コンテンツの選択の場面、(2)コンテンツの操作の場面は、プログラムコンテンツの構造とどう関係するか。現在のGUI全盛のソフトウェアにおいては、ユーザの行動と、画面或いは入力のユーザインタフェースの状態とが密接に関係している。つまり、(1)コンテンツ選択の場面においては、画面には何らかの選択候補が列挙されており、ユーザはリモコン等で、選択候補からの選択結果を入力することができるのが普通である。また、(2)コンテンツ操作の場面では、コンテンツに代えて、コンテンツを操作するためのGUIが画面に表示されているのが普通である。
そして、GUIソフトウェアの記述には、現在では、ほとんどの場合オブジェクト指向プログラム言語が用いられ、更に多くのオブジェクト指向言語は、典型的な画面表示及びユーザからの入力方法を一まとめにして、クラスライブラリとして提供している。
このため、(1)コンテンツの選択の場面でも、(2)コンテンツ操作の場面でも、ある特定のクラス(プログラム言語のライブラリにより異なる)が表示されている場合が多い。
例えば、実施の形態1で説明した図2のような状態遷移図のプログラムコンテンツを、例えばJAVA言語のAWT(Abstract Window Toolkit)クラスライブラリを用いて作成する場合、ウィンドウ(画面)の外枠を生成するには、Java.awt.Frame(以下、Frameとのみ略記する場合あり)クラスを用いることが普通である。そして、このウィンドウ(画面)の外枠の中に、各種の「部品」と呼ばれるクラスを配置していく。
例えば、図9は、JAVA言語のAWTクラスライブラリを用いて作成された選択画面の典型例であり、ウィンドウ(画面)の外枠8001は、Frameクラスで作成され、ウィンドウ(画面)内枠8002、8003の部品は、それぞれLabelクラス、Listクラスで作成されている。そして、JAVA言語のAWTクラスライブラリの場合、Frameクラスのようなウィンドウ(画面)の外枠を作成するクラスは、1つに限られているといって良い。
同様に、多くの現代的なオブジェクト指向プログラム言語の場合、ウィンドウ(画面)の外枠に対応するようなクラスは、1種類又は多くても数種類に限られている。そこで、このJava.awt.Frameクラスのように、ウィンドウ(画面)が切り替わる(ウィンドウ(画面)の外枠が変わる)ごとに用いられるような特別なクラスに注目すれば、プログラムコンテンツから、視聴履歴として記録すべき重要な場面を抽出することが可能となる。
例えば、プログラム言語としてJAVA言語を用い、GUI用のクラスライブラリとしてAWTクラスライブラリを用いた場合のプログラムコンテンツから、Frameクラスのインスタンスを抽出して、それを重要な場面(これは、視聴履歴テンプレートの状態に等しい)とし、そのFrameクラスが表示される時点(Frame.show()メソッドが呼ばれる箇所)をもって、その状態に突入したものと考え、非表示になったところで(hide()メソッドが呼ばれる箇所)、その状態を脱出したものと考えることで、プログラムコンテンツから、ある視聴履歴として記録すべき状態遷移を抽出することができる。
つまり、視聴履歴テンプレートがなくても、これらウィンドウ(画面)の外枠を表現するようなクラスのインスタンスを全て抜き出し、それを視聴履歴テンプレートの状態とみなす。そして、そのウィンドウ(画面)の外枠を表現するようなクラスのインスタンスが、画面上で実際に表示されたとき(Frame.show()ソッドが実行されたとき)を持って、その状態に突入したとみなし、非表示になった場合(hide()メソッド等が呼ばれた場合)をもって、その状態を脱出したとみなすことにより、状態遷移を抽出することができる。
以下では、実際のJAVAプログラムから、視聴履歴テンプレートの状態を抜き出し、かつ、その状態への突入点及びその状態からの脱出点を計算する例を示す。
まず、この視聴履歴テンプレートの自動生成を行うための装置の構成は、基本的に実施の形態1の装置構成(図1参照)と同様である。ただし、実施の形態1では、視聴履歴テンプレート1103が、光ディスク1100内に予め記録されていたのに対して、本実施の形態では、視聴履歴テンプレート1103が、光ディスク1100内に記録されていない。
そして、光ディスク1100が光ディスクプレーヤ1000に挿入され、プログラムコンテンツ処理部1001が、光ディスクアクセス部1002を介して光ディスク1100の内容を読み取り、視聴履歴テンプレート1103が光ディスク1100内にないことを発見した場合に、プログラムコンテンツ処理部1001は、プログラムコンテンツ1101から視聴履歴テンプレート1103を自動生成する。そして、自動生成された視聴履歴テンプレート1103は、ファイルシステム1010に視聴履歴テンプレート1012として格納され、視聴履歴の生成記録及び解析に利用されることになる。
次に、プログラムコンテンツ1101の内容を示す。
図8に示すプログラムコンテンツ1101は、非常に簡単なJAVAプログラムの一例である。これをバイトコンパイルしたものが、本実施の形態におけるプログラムコンテンツである。
このJAVAプログラムは、実施の形態1における「主選択画面」(状態2004、ID=1)に関連する部分において、説明に不要な要素を排除し簡略化したものである。具体的には、このプログラムコンテンツは、画面数が1つであって、章選択画面のみであり、動画コンテンツの再生のための画面も説明に不要のため省略している。また、画面が1つなので、プログラムコンテンツには、画面の非表示のためのメソッドがない。
図9は、このプログラムコンテンツが実際に起動され表示された画面を模式的に表現した図である。
図10は、図8に示したプログラムコンテンツ1101のバイトコンパイル結果を示す。ただし、実際のバイトコンパイル結果は数字の羅列であるが、説明の便宜上、人間が読めるように、図10は、バイトコンパイル結果をニーモニックで表現している。なお、図10のバイトコンパイル結果9001の左側に付された番号は、説明のために付加された行番号であり、バイトコードの一部ではない。
さて、プログラムコンテンツ処理部1001は、図10から、Java.awt.Frameクラスのインスタンスを見つけ、また、そのshow()メソッドの実行箇所を見付けて、そこから視聴履歴テンプレートを生成する。このようにして、プログラムコンテンツ処理部1001は、バイトコード中に存在するシンボル情報を手がかりにして、視聴履歴テンプレートを生成する。
一般に、インタプリタ型の処理系の場合(JAVAの処理系はその典型例である)、その言語実行処理のためには、クラス名、メソッド名等のように、人間にも理解容易なシンボル名がバイトコード中に残されていなければならない。そのため、バイトコード中から、Frameクラス及びshow()メソッドを見つけることは困難ではなく、そのクラス(正確には、そのインスタンス)の生成部分を見つけ、更にその部分からshow()メソッド等の表示化メソッドの位置を探せばよい。そして、見つかったFrameクラス(又はそのサブクラス)のインスタンスが、視聴履歴テンプレートの状態の1つになり、show()メソッドが実際に実行される時点が、その状態に突入した時刻となる。
同様に、画面を非表示にするような、hide()又はdispose()等の表示終了の非表示化メソッドが見つかった場合には、それら非表示化メソッドの実行時点が、その状態を脱出した時刻と記録される。このように、表示化メソッド又は非表示化メソッドを用いることにより、状態遷移を記録することができる。
なお、状態の名称又は属性には、なるべく後の解析過程に役立つように、様々な情報をできるだけ残すようにする。例えば、状態の名称又は属性には、クラスの名称又はshow()メソッド周辺にあるシンボルの名前等を残しておく。
次に、プログラムコンテンツ処理部1001が、図10に記載された、Java.awt.Frameクラス及びそのshow()メソッドの実行箇所を見付けて、そこから、プログラムコンテンツ処理部1001が、視聴履歴テンプレートを生成する過程を説明する。この視聴履歴テンプレートの生成は、図11に示めすフローチャートに従って行われる。
以下、視聴履歴テンプレートの生成は、図10のプログラムコンテンツの例に従って、説明する。
まず、プログラムコンテンツ処理部1001は、注目するクラスとして、Frameクラス(及びそのサブクラス)を設定する(ST10002)。
この後、注目すべきクラスが出現するまで(プログラム的には、インスタンスが生成されるまで)バイトコードを1命令ずつ読み進む(ST10003、ST10004、ST10005の繰り返し)。
図10の例では、Java.awt.Frameクラスそのものはないが、バイトコンパイル結果9001の2行目から、ListFrameクラスが、Java.awt.Frameを継承したクラスであることがわかる。そこで、図10では、このListFrameクラスに注目する。
なおここで、プログラムコンテンツ処理部1001は、バイトコートをそのまま読み進めると、5行目で、このListFrameクラスのインスタンスを生成している部分(命令:new)に行き当たる。よって、この5行目までの命令を読めば、基本的には視聴履歴テンプレートの状態として記録してよいのだが、実際のクラスの中には、生成だけして、表示されないようなものも考えられるため、表示が確定するまで状態としての記録を先延ばしし、まだ記録はしない。
更に、読み進むと、次は、先ほど生成されたListFrameクラスのインスタンスの初期化メソッドが見つかる(図10の7行目)。
ここで、ST10005の判断では、YES側に分岐し、ListFrameクラスは、注目クラスのサブクラスであるから、ST10006もYES側に分岐する。ここで、ST10007を実行する。まずは、飛び元をmainメソッドの4命令目(図10の7行)と記録して、初期化メソッドの実体であるListFrameメソッドのバイトコードの読込みに移る(注、JAVA言語では、初期化メソッド(コンストラクター)の名前とクラス名とが同一であるが、これはメソッドの名前である)。つまり、以降しばらく、図10の13行目以降を読んでいく事になる。
図10の13行目以降の命令を読んでいくと、しばらくは、ST10003、ST10004、ST10008、ST10012、ST10010、ST10003のループで、命令を読み飛ばす。
そして、図10の57行目まで読み飛ばしたところで、show()メソッドが見つかる。この結果、ST10008ではYES側に分岐し、ここで初めて、視聴履歴テンプレートの状態が1つ生成され記録されることとなる(ST10009)
まず、IDは単なるユニークな数字であり、ここでは1とする。状態の名称は、クラス名にインスタンス同士を識別するためのユニークな識別子を付加したものとし、ここではクラス名にIDを付加したものとする。具体的には、ListFrame#1が、ST10009で記録された状態の名称となる。
図12は、最終的に生成される視聴履歴テンプレートである。図12の5行目には、ST10009で記憶された状態のID及び名称が付加されている。なお5行目には、状態のID及び名称以外にも、ListFrameクラスのスーパークラス名のリスト(super属性)、ListFrameクラスのインスタンスが生成された場所(loc属性、内容は、mainメソッドの0番命令)が、記載されている。
その他、図10のプログラムコンテンツから得られる情報として、6行目には、このインスタンスに保持されている他のグラフィックオブジェクトに関する情報(Label,List属性)が記載される。
そして、8行目には、show()メソッドのプログラムコンテンツ中の位置が記録される。この位置情報は、後にプログラムコンテンツ処理部1001が、このプログラムコンテンツを処理した場合、このプログラム位置の命令(ListFrame()メソッドの86番命令)を実行した場合に、このListFrame#1の状態に入ったと記録するためのトリガーとなる。そして、最終的には、図10に示したプログラムコンテンツを最後まで読み終わり、この結果、図12に示したような視聴履歴テンプレート11000が生成される。
なお、以上の説明では、プログラムコンテンツがJAVA言語で記述された場合を例に説明したが、他言語で記述されている場合にも、同様のことが実現できる。いずれの場合も、同種の一連の画面表示を1つの状態として考え、それを実装しているようなプログラム言語上のクラス或いはメソッドに注目して、視聴履歴を生成すればよい。
以上のように、本実施の形態では、プログラムコンテンツが実装されるプログラム言語上でウィンドウ(画面)を表現するクラス及び当該クラスを表示化/非表示化するメソッドに注目し、プログラムコンテンツから、ウィンドウ(画面)を表現するクラスを視聴履歴として取得すべき状態として抽出し、当該状態に突入した時刻又は当該状態を脱出した時刻を表示化/非表示化メソッドを用いて記録するような視聴履歴テンプレートを生成するようにした。これにより、プログラムコンテンツ処理部1001の状態及びそれら状態間のリンクが記載されている視聴履歴テンプレートを、人間の労力を介さずに機械的に自動的に作成することができる。
なお、以上の説明では、コンテンツメディアの形態がDVDやBlu−rayディスク等の光ディスクの場合を例に説明したが、メディアの形態は、ディスクという形態或いはレーザ光等のように光でコンテンツ内容を読み取れる形態に限定されるわけではない。メディアの形態は、ビデオカセットテープのようなテープ状のものでもよく、また、計算機OS(Operating System)のファイルシステム上のファイルのように物理的に定まった形態がないものでもよい。
またコンテンツ内容の読み取り方法は、光に限られず、磁気利用等任意の方法でかまわない。例えば、コンテンツ内容の読み取り方法は、ネットワークからダウンロードしてファイルに保存した、アドビシステムズ社のフラッシュ形式やマイクロソフト社のウィンドウズ(WINDOWS(登録商標))メディアビデオ形式のコンテンツでもよい。
更には、特定のOSでの実行形式のファイル(例えば、Linux(登録商標)OSのELF(Executable and Linking Format)形式やマイクロソフト社のウィンドウズOSのexe形式等)でも同様の効果を得ることができる。これらの場合は、コンテンツの再生装置は、たとえば、一般のパーソナルコンピュータ上のコンテンツ再生アプリケーションとそのコンテンツ再生に必要なパーソナルコンピュータ自体や周辺機器を組みあわせたものとなるだろう。
2009年2月13日出願の特願2009−031909に含まれる明細書、図面及び要約書の開示内容は、すべて本願に援用される。
本発明は、プログラムコンテンツが、映像音声コンテンツを提示するユーザインタフェースを含む市販のBlu−rayディスクに対しても、詳細な視聴履歴を生成することができ、例えば、DVDプレーヤ、Blu−rayディスクプレーヤ等に有用である。
1000 光ディスクプレーヤ
1200 リモコン
1001 プログラムコンテンツ処理部
1002 光ディスクアクセス部
1003 リモコン入力部
1004 操作部
1005 重畳部
1006 GUI表示部
1007 動画・音声再生部
1008 ネットワークI/F
1006 GUI表示部
1007 動画・音声再生部
1009 視聴履歴生成部
1010 ファイルシステム
1011、6001 視聴履歴
1012、1103 視聴履歴テンプレート
1100 光ディスク
1101 プログラムコンテンツ
1102 映像・画像・音声コンテンツ
1400 ネットワーク
1500 履歴収集サーバ
2009 状態グループ
3001、3002、11000 視聴履歴テンプレート
8001 ウィンドウ(画面)の外枠
8002、8003 ウィンドウ(画面)の内枠
本発明は、コンテンツメディア再生装置及びコンテンツメディアに関し、例えば、DVD(正式名称、規格名)プレーヤ、Blu−ray(正式名称、規格名)ディスクプレーヤ等の視聴履歴を取得するコンテンツメディア再生装置及びコンテンツメディアに関する。
近年は、テレビ、ビデオプレーヤ、ケーブルテレビ受信機(ケーブルテレビ、セットトップボックス)等のオーディオビジュアル(AV:Audio Visual)家電機器のインターネット(登録商標)対応が進み、従来の放送やビデオコンテンツの視聴だけではなく、インターネットサービスもAV家電に対して提供されるようになってきた。例えば、パナソニック(株)のVIERACastやソニー(株)のアプリキャスト(登録商標)というサービスでは、ユーザはテレビを見ながらインターネットサービスを受けることができる。
また同様に、BD−LIVE(規格名)規格に対応したブルーレイディスクプレーヤ(Blu-ray disk player)では、BD−LIVE規格に対応したブルーレイディスクを再生
する場合に、ユーザは、インターネットサービスを受けることができる。
具体的には、ユーザは、現在受信しているテレビ番組に出演中の俳優に関連した情報をインターネットから取得してテレビ画面に表示させたり、テレビ番組に関連した映画、音楽等を、インターネットを通じて購入したりすることが可能となる。また、ユーザは、再生視聴した映画の映像ディスクに関連した映画のメイキング等の映像特典をインターネットからダウンロードしたりすることも可能となる。
さて、このように家電機器におけるインターネットサービスを行なうための家電機器内部の仕組みや光ファイバ網等のインフラはできあがりつつあるが、その一方で、これら機能、サービスが、ユーザに広く利用されるようになってきているとはいい難い。
ユーザの利用を阻む原因はいくつか考えられるが、そのうちの1つは、家電機器の場合、パソコン又はインターネット対応携帯電話に比較して、ユーザの入力の自由度が低く、使い勝手が悪いということが挙げられる。
例えば、興味がある映画の映像ディスクを購入しようとする場合、パソコンでは、ユーザは、オンラインショッピングサイトで、自身が欲しい映画の題名をキーボード入力し、オンラインショップから提示された複数の候補から映像ディスクをマウスで選択し、後は決済すればよい。これに対し、例えば、インターネットサービスに対応したテレビには、キーボードのような文字入力手段がない。そのため、ユーザは、文字入力手段に代えて、リモコンを入力操作せねばならず、望みの商品に辿りつくまでに疲れ果ててしまう。
この欠点を解消するには、文字入力或いはポインティングができるテレビ用入力機器をテレビに付属させればよいように思えるが、これはハードウエアの改変追加が必要となるため、家電機器のコスト増に繋がり、必ずしも得策ではない。
そこで、発想を変えて、ユーザの煩雑な入力をできるかぎり削減することで、ユーザの使い勝手を向上させる方法が考えられる。つまり、家電機器側がユーザの嗜好又は望みを推測することで、ユーザは必要最低限の入力だけでユーザが望みのサービスを享受できるようにして、ユーザの使い勝手を向上させる。
このユーザの嗜好又は望みを推測するには、様々な手法がある。その中でも、テレビ或いは映像ディスクプレーヤとの関係で重要になるのは、ユーザがそれらAV家電機器を用いて視聴した履歴である視聴履歴を獲得して統計的な解析等を用いる手法である。
例えば、簡単な例では、テレビにおいて、あるユーザが野球中継の番組を中心的に見ているということが分かれば、そのユーザは野球が好きなのであろうことが推測できる。その結果、ユーザがケーブルテレビ等の有料放送を選択しようとする場合、サービスを提供する側が野球中継のチャネルをいくつか推薦してあげるようにすると、ユーザは、沢山のチャネルの中からいちいち望みのチャネルを選択するという手間を省くことができる場合が多いであろう。
特許文献1には、視聴履歴の典型的な収集手段が開示されている。特許文献1に開示される収集手段は、まずテレビのリモコンのキーが押下された時刻の情報をあわせてリモコン信号を記録する。そして、このリモコン信号の履歴と別途取得した番組情報とが組みあわされて、視聴履歴が生成される。
そして、このように取得された視聴履歴を用いて、ユーザの嗜好等が解析されるようにすればよい。例えば、特許文献2には、収集した視聴履歴の分析手法(特許文献2の用語では「視聴傾向分析」)が開示されている。
このように、何らかの形でユーザの視聴履歴が生成取得されれば、その情報を分析することにより、家電機器は、ユーザの嗜好又は望みにあわせて自動的にサービスを提供することが可能となる。したがって、嗜好の分析を正確に詳細に行なうには、分析手法そのものを改良することはもちろんであるが、それと同時に正確でかつ豊富なユーザの視聴履歴を取得することが重要になってくる。
特開2004−248201号公報(第2頁の請求項1乃至請求項2、図3) 特開2005−352754号公報(第15−19頁の実施例)
テレビ、ケーブルテレビ或いは有線放送のような放送の場合は、チャネルと時刻さえ指定すれば、コンテンツのどの場面が再生されているのかを明確にすることができる。そのため、後はテレビ等に対するユーザの操作を時刻と共に記録さえすれば、かなり正確かつ詳細に視聴履歴を記録することができる。そして、テレビに対するユーザの操作は、テレビの操作ボタン或いはリモコンのキーの押下からほぼ曖昧さを残さずに読みとることが可能である。
これに対して、ビデオプレーヤ(DVDプレーヤ或いはBlu−rayディスクプレーヤ)は、放送と異なり番組表のようなものがない。そのため、例えば、ユーザのリモコン操作及び時刻から、ユーザがどのようなタイトルのビデオコンテンツを視聴して、どの場面を見ていたか等を推測することは非常に困難である。
したがって、ビデオプレーヤにおいて、視聴履歴を自動的に記録するためには、少なくともビデオコンテンツのタイトル或いは内容構成のようなメタ情報を、ビデオプレーヤが取得できることが必要である。例えば、ビデオプレーヤが、ビデオコンテンツのタイトルさえ分かれば、少なくともそのタイトルを見たという程度の記録を視聴履歴に残すことができる。また、ビデオプレーヤが、ビデオプレーヤの操作キー(再生、早送り、停止等)をも記録すれば、このタイトルのどの部分を何分間、何回見たというような、細かい情報も視聴履歴に記録できるであろう。これにより、視聴履歴の質はある程度高くなったかに思える。
しかし、近年は、BD−live対応のBlu−rayディスクコンテンツ等のディスクに記録されている映像音声コンテンツの再生制御を、複雑なプログラムで行なえるような規格が登場している。この場合、ユーザは、従来の操作キー(再生、早送り、停止等)を用いてもコンテンツの再生操作が可能であるが、これら操作キーに加えて、GUI(Graphical User Interface)画面を通して、コンテンツの操作を行なえるような場合も登場している。また、上記GUI画面を提供するプログラムを再生制御にだけ使うのではなく、そのプログラム自体がコンテンツとされるような場合も考えられる。ゲーム或いはマルチエンディングの物語等が典型的な例である。
しかしながら、GUI画面を提供するプログラム自体がコンテンツとされるような場合には、どの時点においても同一の意味を持つような操作キーというものが少なくなるため、単純にユーザのキー操作だけを記録しても、ユーザが何をしていたのかを把握することが難しく、そのため、視聴履歴の生成が困難となる場合が増えてくる。
本発明の目的は、BD−java対応のBlu−rayディスク等のように動画等再生がプログラム制御されているような複雑なコンテンツおいても、利用価値が高い視聴履歴を生成することができるコンテンツメディア再生装置及びコンテンツメディアを提供することである。
本発明のコンテンツメディア再生装置は、映像音声コンテンツと、前記映像音声コンテンツを提示するユーザインタフェースを含むプログラムコンテンツとからなるコンテンツメディアを再生するコンテンツメディア再生装置であって、前記コンテンツメディアを読み取るアクセス部と、ユーザからの操作入力を受け付ける入力部と、前記アクセス部から前記プログラムコンテンツを読み出し、前記操作入力に従い前記プログラムコンテンツを
動作させて、前記映像音声コンテンツの再生制御を行なうプログラムコンテンツ処理部と、前記映像音声コンテンツの視聴履歴として記録すべき前記プログラムコンテンツ処理部の状態及び前記状態間のリンクが記載されている視聴履歴テンプレートを記録する記録部と、前記プログラムコンテンツ処理部が、前記視聴履歴テンプレートに記載された状態を遷移した時刻と当該状態とを前記視聴履歴として生成する生成部と、を具備する構成を採る。
本発明のコンテンツメディアは、映像音声コンテンツと、前記映像音声コンテンツを提示するユーザインタフェースを含むプログラムコンテンツと、前記映像音声コンテンを再生するコンテンツメディア再生装置の状態及びそれら状態間の遷移のうち、前記映像音声コンテンツの視聴履歴として記録すべき状態及びそれら状態間の遷移が記載されている視聴履歴テンプレートと、を具備する構成を採る。
本発明によれば、例えば、BD−Live対応のBlu−rayディスク、アドビシステムズ社のフラッシュ(Flash、商標)コンテンツように、映像音声コンテンツと、それ
ら映像音声コンテンツを提示するユーザインタフェース(UI:User Interface)を含むプログラムコンテンツとからなるコンテンツメディアに対しても、詳細で情報量が多い視聴履歴を生成することができる。そして、視聴履歴と視聴履歴テンプレートとを対にして解析することにより、視聴履歴を機械的に解析することが可能となり、計算機を用いた大規模な視聴履歴解析に供することができる。
本発明の実施の形態1に係る光ディスクプレーヤ及び光ディスクの構成図 実施の形態1におけるプログラムコンテンツの内容を表現した状態遷移図 実施の形態1における視聴履歴生成テンプレートの一例を示す図 実施の形態1における視聴履歴生成テンプレートの別の例を示す図 実施の形態1における視聴履歴の生成方法を説明するためのフローチャート図 実施の形態1におけるプログラムコンテンツのJAVAプログラムの一例を示す図 実施の形態1における視聴履歴の一例を示す図 実施の形態1における視聴履歴を解析して得られた行動図 本発明の実施の形態3におけるJAVAプログラムの一例を示す図 実施の形態3におけるプログラムコンテンツを動作させて得られるディスプレー上の表示の模式図 実施の形態3におけるJAVAプログラムのバイトコードの一例を示す図 実施の形態3における視聴履歴テンプレート自動生成方法を説明するためのフローチャート 実施の形態3における視聴履歴生成テンプレートの一例を示す図
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(実施の形態1)
本実施の形態は、本発明の基本的な実施例である。以下では、コンテンツメディアのコンテンツメディア再生装置を用いて、ユーザがあるコンテンツメディアを再生した場合を例に、視聴履歴の生成方法について説明する。なお、以下では、コンテンツメディア及びコンテンツメディア再生装置として、DVD又はBlu−rayディスク等の光ディスク及び光ディスクプレーヤに本発明を適用する場合を例に説明する。
まず、図1は、実施の形態1に係る光ディスクプレーヤ及び光ディスクの内部構成を示すブロック図である。
光ディスクプレーヤ1000は、光ディスク上のコンテンツの再生、及び、光ディスク上のプログラムコンテンツを実行することができる装置である。光ディスクプレーヤ1000は、プログラムコンテンツの内容及びユーザが手にしているリモコン1200からの入力に従い動作する。再生されたコンテンツの映像音声或いはプログラムコンテンツの実行の結果生じるグラフィック表示は、ディスプレー(及びスピーカー)1300にて表現される。
リモコン1200からの入力は、リモコン入力部1003によって受信され、操作部1004に渡される。操作部1004は、リモコン1200から入力される電気的信号を、プログラムコンテンツ処理部1001、GUI(Graphical User Interface:グラフィカルユーザインタフェース)表示部1006及び動画・音声再生部1007が扱い得るプログラム言語上の入力イベント(典型的にはキーイベント、マウスイベント等)に変換する。
プログラムコンテンツ処理部1001は、光ディスクアクセス部1002を通して、光ディスク1100内のプログラムコンテンツを読み取り、読み取ったプログラムコンテンツ及びユーザのリモコン入力(キーイベント)に従い、GUI表示部1006の支援を受けて、グラフィカルユーザインタフェース(GUI)をディスプレー(及びスピーカー)1300に表示する。また、プログラムコンテンツ処理部1001は、ユーザからのリモコン入力(キーイベント)を待ったり、或いは、動画・音声再生部1007に命じて映像音声コンテンツをディスプレー(及びスピーカー)1300に表示させたりする。このプログラムコンテンツ処理部1001の動作は、後に詳しく説明する。
光ディスクプレーヤ1000は、各種情報の汎用記憶装置としてファイルシステム1010を持っており、光ディスクプレーヤ1000の各部はファイルシステム1010にアクセスし、読み書きすることができる。
ファイルシステム1010は、記憶装置であり、ファイルシステム1010上に、適当な時点で視聴履歴テンプレート1012及び視聴履歴1011が書き込まれる。この視聴履歴1011は、視聴履歴生成部1009によって読み書きされる。
更に、視聴履歴生成部1009は、必要があればネットワークI/F(Inter Face)1008を介して、光ディスクプレーヤ1000の外部に設置された履歴収集サーバ1500に、その視聴履歴1011をアップロードすることができる。
ネットワーク1400は、光ディスクプレーヤ1000と履歴収集サーバ1500との間に存在する、家庭内のローカルエリアネットワーク或いはインターネットを便宜的にひとまとめにして表現したものである。
一方、光ディスク1100には、プログラムコンテンツ1101、映像・画像・音声コンテンツ1102及び視聴履歴テンプレート1103が保持されており、これらを光ディスクプレーヤ1000は、光ディスクアクセス部1002を介して読み取ることができる。
プログラムコンテンツ1101は、何らかのプログラム言語で記述されたアプリケーションであって、映像・画像・音声コンテンツ(又は映像音声コンテンツ)1102の再生
制御をしたり、或いはユーザに対しGUIを表示させたりする。また、プログラムコンテンツ1101自体が、ユーザに対するゲーム等のコンテンツであったりする場合もありうる。
本実施の形態におけるプログラムコンテンツ1101の内容については、別途、図2を用いて後に詳述する。
映像・画像・音声コンテンツ1102は、静止画像、映画或いは音楽等であって、時間的に順次再生が予定されている、狭い意味でのコンテンツである。
光ディスク1100が、ある映画を主内容とする場合には、その映画そのものがコンテンツとなる。また、光ディスク1100が、写真集のようなものであれば、写真そのものがコンテンツとなり、この写真をリスト表示させたりスライドショー表示させたりするようなプログラムがプログラムコンテンツとなる。
本実施の形態では、光ディスク1100が映画を主内容とし、映像・画像・音声コンテンツ1102が、映画本編そのもの、及び、予告編そのものとなる場合を例に説明する。
図2は、プログラムコンテンツ1101の内容を、模式的に表現した状態遷移図である。実際のプログラムコンテンツは、プログラムコンテンツ処理部1001が効率良く処理できるように、プログラム言語からコンパイルされており、人間には理解しづらいので、図2のように模式的に表現した。図2の各々の状態に関しては、以下の説明の流れの中で説明する。
なお、本実施の形態では、プログラムコンテンツ1101の記述言語としてJAVA(登録商標)(プログラム言語名)を仮定している。また、そのためプログラムコンテンツ処理部1001は、JAVAの処理系(VM:Virtual Machine)の1つである。
図3Aは、視聴履歴テンプレート1103(又は1012)の具体的な内容を示す。
図3Aの視聴履歴テンプレート3001及び図3Bの視聴履歴テンプレート3002は、XML(eXtensible Markup Language)で表現された視聴履歴テンプレート1103(又は1012)である。なお、視聴履歴テンプレート3001、3002の左側の行番号は、説明のために便宜的に付加されたものであり、実際の視聴履歴テンプレート1103(又は1012)には、行番号は含まれない。
図4は、プログラムコンテンツ処理部1001の動作のうち、視聴履歴生成に関わる動作部分を表現したフローチャートである。
図5は、プログラムコンテンツ1101の一例である。プログラムコンテンツ処理部1001が、プログラムコンテンツ1101を処理実行していく過程で、視聴履歴生成のタイミングを見つける処理を説明するため、図5のプログラムコンテンツ1101は、JAVA言語のイメージで表現されている。なお、図5の例は、説明を簡単にするため、内容的に非常に簡略化されている。そのため、図5のJAVA言語で表現された内容と図2で表現されている内容とは全く異なるものである。
図6は、本実施の形態で最終的に生成される視聴履歴1011である。なお、図6に示す視聴履歴6001の左側の行番号は、説明のために便宜的に付加されたものであり、実際には、視聴履歴6001に、行番号は含まれない。
図7は、図6のように表現された視聴履歴6001を、視聴履歴テンプレート3001に照らし合わせて解析した結果を、図2の状態遷移図に重ねて表現した図である。
以上の図1〜図7を用いて、光ディスクプレーヤ1000の動作について説明する。
今、光ディスクプレーヤ1000に、光ディスク1100が挿入されたとする。通常のBlu−rayディスクプレーヤと同様に、光ディスクプレーヤ1000にコンテンツディスクである光ディスク1100が挿入されると、自動的に光ディスク1100の内容が読み込まれ、コンテンツの再生が始まる。
本実施の形態においても、光ディスクアクセス部1002を用いて、プログラムコンテンツ処理部1001は、光ディスク1100の内容、すなわちプログラムコンテンツ1101、映像・画像・音声コンテンツ1102及び視聴履歴テンプレート1103を読み込み、視聴履歴テンプレート1103をファイルシステム1010に視聴履歴テンプレート1012としてコピーする。
そして、次に、プログラムコンテンツ処理部1001は、プログラムコンテンツ1101の実行を開始する。プログラムコンテンツ1101は、実体としては、コンパイルされたJAVAプログラムのバイトコードの集りであるが、以下では説明を簡単にするため、JAVAプログラムと論理的に同値である図2の状態遷移図を用いて説明する。ただし、この図2の状態遷移図は非常に簡略化されている。また、プログラムコンテンツ処理部1001は、実体としてはJAVAのVMであるが、説明を簡単にするために、状態遷移マシンとして説明する。
図2において、白地の四角或いは角丸四角は、プログラムコンテンツ1101の主な状態を示す。また、図2において、矢印は、各状態間の遷移可能性を示す。状態は、実際は何らかのきっかけ(ユーザからの入力、タイマー信号、ハードウエア割り込み等の遷移条件)で遷移する。或いは、状態は、きっかけ(遷移条件)が無くても無条件で遷移することもある。なお、図2には、状態遷移のきっかけ(遷移条件)は省略されている。
また、終了状態2020に対して矢印がないのは、終了状態2020へは任意の状態からの遷移が可能であるため、図が繁雑になるのを避けるために矢印を省略したことによる。
図2において、網掛四角(2002、2003、2008、2006、2011、2013、2015、2016、2018、2019)は、各状態につけられた名称を表している。実施の形態では、この名称は「状態ID」又は単に「ID」と呼ばれ、図2は、名称が数字で表されている例である。ただし、初期状態はinitial、終了状態はendという特別の名称を持つとする。なお、破線四角2009は、状態グループを表す。状態グループ2009については、後述する。
さて、プログラムコンテンツ処理部1001は、光ディスク1100が挿入されると、プログラムコンテンツ1101、すなわち図2の状態遷移図に従い、その状態を変更する。
まず、プログラムコンテンツ処理部1001は、初期状態2001(ID=initial)から開始し、その直後無条件で状態2004(ID=1)に遷移する。この状態で、プログラムコンテンツ処理部1001は、主メニュー画面をディスプレー1300に表示し、ユーザからの選択入力を待つ。主メニュー画面には、光ディスク1100のコンテンツの内容がリスト形式で表示され、ここでユーザは、「映画の本編再生」、「本編から
章を選択」、「予告編の再生」又は「ゲーム」のメニューを選択することができる。
そしてユーザは、映画本編をすぐに見たければ、ディスプレー1300に表示されているリストの中からリモコン1200を操作して「映画の本編再生」を選択し、選択操作に伴うリモコン信号が、リモコン入力部1003及び操作部1004を経由して、キーイベントとしてプログラムコンテンツ処理部1001に伝えられる。プログラムコンテンツ処理部1001が、そのキーイベントを適切に解釈すると、リンク2024の遷移が発生し、プログラムコンテンツ処理部1001の状態は、本編第1章の再生状態2014(ID=100)に遷移する。そして、プログラムコンテンツ処理部1001は、動画・音声再生部1007に本編の再生を命じ、映画本編が再生される。
以下、同様に、ユーザからのキーイベントに対して、プログラムコンテンツ処理部1001は、内部状態を変更し、その状態に応じたアクションを実行することにより、プログラムコンテンツ1101が実行されていく。
このような場合に、視聴履歴は、どのように生成されるであろうか。
仮に、ここでキーイベントのみを記録した場合、記録されるのは、例えば、ディスプレー1300に表示されたGUIのリストを見るための「上下キー」、或いはリストから1つを選択するための「決定キー」等だけであり、これらのキーの羅列を第三者が後に取得し視聴履歴を解析しようとしても、全く意味が分からない。更に、同じプログラムコンテンツであっても、再生機器によってGUI表現やキーイベントに相違があるため、推測さえ充分には行なえない。
これに対し、本実施の形態では、視聴履歴テンプレートを利用して、視聴履歴を生成する。本実施の形態における視聴履歴生成の方法は、以下の通りである。
まず、視聴履歴テンプレートは、次のように定義される。視聴履歴テンプレートは、プログラムコンテンツを論理的に同等の状態遷移図として捕らえた場合の全ての状態から、視聴履歴として記録したい状態だけが抜き出された集合である。そして、その視聴履歴テンプレートに含まれる状態に対しては、他の状態へのリンク、状態を説明する名称、又は、その状態で実行されるアクションを説明するための説明文等の情報を付加することができる。
本実施の形態では、この視聴履歴テンプレートが、図3A及び図3Bに示したようなXML形式で記述される場合を例に説明する。なお、視聴履歴テンプレートは、必ずしもXML形式である必要はなく、他の形式で表現されていても問題はない。
図3A及び図3Bには、2つの視聴履歴テンプレート3001、3002が図示されている。これら視聴履歴テンプレート3001、3002は、どちらもプログラムコンテンツ1101(又は図2の状態遷移図)に対して作成されたものである。このうち、視聴履歴テンプレート3001は、全ての状態に対して視聴履歴を取得する場合のテンプレートであり、かつ、リンクや名称等の付加情報も充実させた、いわばフルセットの視聴履歴テンプレートである。
視聴履歴テンプレート3001を詳細に見ると分かるように、視聴履歴テンプレート3001は、図2の状態遷移図の中身とほとんど同等である。視聴履歴テンプレートは、状態及び付加情報として状態間のリンクを含むので、視聴履歴テンプレート3001のようにフルセットの視聴履歴テンプレートが用いられる場合には、得られる視聴履歴は、当然に対応する状態遷移図と同等となる。
一方、視聴履歴テンプレート3002は、図2の状態グループ2009の範囲、すなわち映像コンテンツ(映画予告編及び映画本編)の再生範囲内だけで視聴履歴を取得しようという場合のテンプレートであり、付加情報も全て欠落されている。視聴履歴テンプレート3002が用いられる場合には、得られる視聴履歴は、取得したい状態IDの列挙と同等となる。
当然のこととして、視聴履歴テンプレート3001の方が、視聴履歴テンプレート3002に比べ情報が豊富であるため、後に視聴履歴を解析する場合に、より多くの知見が得られる。ただし、視聴履歴テンプレート3002に比べ、視聴履歴テンプレート3001の作成には手間がよりかかる。
本実施の形態では、プログラムコンテンツ処理部1001がフルセットの視聴履歴テンプレート3001を利用する場合を例に説明する。
さて、視聴履歴テンプレート3001を与えられたプログラムコンテンツ処理部1001は、プログラムコンテンツ1101を処理実行しつつ、図4に示したようなフローチャートに従い、視聴履歴を生成していく。
今、ユーザは、以下に示すような順序で行動し、この光ディスク1100を視聴するとしよう。
(行動#1)主選択画面(状態2004、ID=1)を見て、本編再生(状態2014、ID=100)を選択する。
(行動#2)本編をしばらく見るが、本編第2章(状態2035、ID=101)の途中で、リモコン1200を操作して、章選択画面(状態2007、ID=2)に移る。
(行動#3)更に、主選択画面(状態2004、ID=1)に戻る。
(行動#4)予告編1(状態2010、ID=200)に移り、予告編1を見る。
(行動#5)続けて予告編2(状態2012、ID=201)を見るが、途中で「ディスク排出」を行ない、視聴を終了(状態2020、ID=end)する。
なお、図6は、これらの行動を受けて生成された視聴履歴である。
最初に、プログラムコンテンツ処理部1001は、開始ST4000を経て、イベント待ちST4001に入る。ここでのイベントとは、ユーザからのキーイベント、ハードウエアからの割り込み、タイマイベント等である。なお、プログラムコンテンツ処理部1001は、図4に示したフローと同時並列に、プログラムコンテンツ1101の実行処理をも行なっていることに注意する。
まず、光ディスク1100が光ディスクプレーヤ1000に挿入されると、ディスク挿入を伝えるハードウエア割り込みが発生し、プログラムコンテンツ処理部1001は、視聴履歴テンプレート読み込みST4003に入る。ここで、プログラムコンテンツ処理部1001は、視聴履歴テンプレート1103を読み出し、ファイルシステム1010内に視聴履歴テンプレート1012としてコピーする。プログラムコンテンツ処理部1001は、コピー後、XML形式で記述された視聴履歴テンプレート1012を解析し、後の利用のために視聴履歴テンプレート1012に検索インデックス等を付加する。
そして、視聴履歴生成の準備が終ると、プログラムコンテンツ処理部1001は、視聴履歴として初期状態を通過したことを記録する。具体的には、プログラムコンテンツ処理部1001は、視聴履歴生成部1009に対して、初期状態を通過したことを記録せよと
命ずる。そして、視聴履歴生成部1009は、空の視聴履歴を新しく生成して、その冒頭に、時刻とともに、視聴履歴を記録する(視聴履歴6001の1行目)。
視聴履歴6001の1行目は、「発生した事象はユーザの行動起源のものであり(ディスク挿入、″event″というタグで表現れている)、対応する状態IDは、″initial″(状態2001、2002)であり、この状態から出たこと(属性″out″)、発生したタイムスタンプは、0秒」であることを意味している。
この後、プログラムコンテンツ処理部1001は、再度イベント待ちST4001に入る。
この間同時に、プログラムコンテンツ処理部1001は、プログラムコンテンツ1101に従い、ディスプレー1300に、主選択画面(状態2004、ID=1)を表示する。
初期状態(状態2001、ID=initial)から主選択画面(状態2004、ID=1)に状態を変更したプログラムコンテンツ処理部1001は、自らに状態変更のイベントを発行する。そして、プログラムコンテンツ処理部1001は、状態変更のイベントを受信すると、図4のフローチャートに従い、イベント待ちST4001からイベント種類分岐ST4002に移り、ST4005に移る。ST4005は、視聴履歴テンプレート1103に照らしてこの状態変更を記録すべきかを否か判断する。
視聴履歴テンプレート3001の5〜10行目に、主選択画面(状態2004、ID=1)の状態を表す″main manu″があるので、検索ヒットST4009はYESとなり、プログラムコンテンツ処理部1001は、視聴履歴生成ST4006に入る。このあと、プログラムコンテンツ処理部1001は、視聴履歴生成部1009に命じて、ST4007に移り、適当な視聴履歴を記録し(視聴履歴6001の2行目)、再度イベント待ちST4001に入る。
なおここで、状態が遷移したことをプログラムコンテンツ処理部1001はどのようにして知り得るか、また、視聴履歴テンプレートの作成者(通常、人間)は、どのような状態がありその名称(ID)は、何であるかをどのようにして知り得るかについて、説明をしておく。
プログラムコンテンツが、実装としても状態遷移図として実現されている場合、状態遷移図は、プログラム文面上でも明示されている。したがって、視聴履歴テンプレート作成者は、その状態遷移図を見ることにより視聴履歴テンプレートを作成することができる。そして、この作業は、かなりの部分まで自動化できるであろう。また、これに対応してプログラムコンテンツ処理部1001も実装として状態遷移マシンとして実現されているであろうから、プログラムコンテンツ処理部1001にとって、状態が遷移したことを知ることは容易である。
これに対して、状態遷移ではなく、JAVA言語のように手続的に表現されたプログラム言語とその処理系に対しては、状態が明示的に定義されているわけではないので、状態を定義し、状態が遷移したことをプログラムコンテンツ処理部1001が知る仕組と、この状態の全体を視聴履歴テンプレート作成者が知る手段とを設ける必要がある。一番簡易な方法としては、プログラムコンテンツ作成を行なう人間が、状態を定義し、状態遷移のタイミングもプログラム文面上明示するという方法が考えられ、本実施の形態では、この方法を採用するとする。
図5は、非常に簡単な、リスト選択画面を表示するJAVAプログラムである。
図5のJAVAプログラム5000において、クラス5002(″Class Interpreter
″)は、プログラムコンテンツ処理部1001に対して、状態遷移イベントを発行するために用意されたクラスである。そして、クラス5002を使って、プログラムコンテンツ処理部1001に対する通知5001がJAVAプログラムに埋め込まれている。
クラス5002は、実はプログラム文面上は、何もしない空であるが、これは、プログラムコンテンツ処理部1001が履歴生成に対応していない場合を考慮したものである。プログラムコンテンツ処理部1001が履歴生成に対応している場合には、このプログラムをロードすると、″Class Interpreter″のstate()メソッドは、初めからあった実装に上書きされることになる。
なお、人間が視聴履歴テンプレートを作成せずに、視聴履歴テンプレートが自動生成される方法については、実施の形態3で説明する。
再度図4に戻り、説明を、視聴履歴生成に戻す。
次に、ユーザは、(行動#1)を実行する。つまり、ユーザは、主選択画面(状態2004、ID=1)を見て、リモコン1200のキーの「選択キー」を押下し、本編再生(状態2014、ID=100)を選択する。
選択(シンボルは、ENTER)というキーイベントが、プログラムコンテンツ処理部1001に送られると、プログラムコンテンツ処理部1001は、そのキーイベントを視聴履歴として記録するとともに(視聴履歴6001の3行目)、そのキーイベントの結果発生する状態遷移(状態2004から状態2014への遷移)も記録する(視聴履歴6001の4、5行目)。
視聴履歴6001の4行目は、主選択画面の表示状態(状態2004、ID=1)が、タイムスタンプ14で終了したことを示す。同5行目は、本編第1章再生状態(状態2014、ID=100)にタイムスタンプ15で移ったこと示す。
一方、プログラムコンテンツ処理部1001は、本編第1章再生状態(状態2014、ID=100)に入ると、その状態に付随したアクションとして、本編第1章を再生することを、動画・音声再生部1007に命ずる。プログラムコンテンツ処理部1001は、動画・音声再生部1007に何事かを命ずる場合は、その命令に応じた映像音声コンテンツイベントを自らに向けて発生させる。その結果、ST4010が実行されて、視聴履歴6001の6〜12行目が記録される。
プログラムコンテンツ処理部1001が、動画・音声再生部1007に対して命令を発行する場合、映像のタイトル名、映像の記録時間、フォーマット等のメタ情報が明確になっている場合が多いので、このようなメタ情報も同時に記録される(視聴履歴6001の8〜10行目)。
以下、同様にして、(行動#2)から(行動#5)までの視聴様子が記録され、最終的に図6に示したような視聴履歴が生成される。
そして、光ディスク1100の再生が終了すると(この場合は、ユーザの(行動#5)により、ユーザは光ディスク1100を排出した)、その状態が記録されるとともに(視聴履歴6001の42〜45行目)、視聴履歴1011は閉じられ、視聴履歴テンプレー
ト1012と対にして保存される。
その後、必要に応じて、この視聴履歴1011と視聴履歴テンプレート1012との対は、履歴収集サーバ1500にアップロードされ解析されたり、又は、アップロードされずに、光ディスクプレーヤ1000の内部に保持されたまま、ユーザの利便性向上のために用いられたりすることができる。
図7は、図6に示した視聴履歴6001を、視聴履歴テンプレート3001を視覚的に表現した図2に示した状態遷移図の一部に、行動図風に表現した図である。
図7は、ユーザは本編を見始めてみたものの、おそらく途中で飽きてしまったのか、第2章で視聴を中断し、他の映画の予告編を少々見たものの、これもまた途中で中断してしまっていることを示している。ただし、ユーザの真意に少しでも近づくためには、タイムスタンプ、関連するキー操作又は他の視聴履歴との比較検討等が必要となるであろう。
以上のように、本実施の形態では、視聴履歴テンプレート1012には、映像音声コンテンツの視聴履歴として記録すべきプログラムコンテンツ処理部1001の状態及びそれら状態間のリンクが記載されており、視聴履歴生成部1009は、プログラムコンテンツ処理部1001が、視聴履歴テンプレート1012に記載された状態を遷移した時刻とその状態名とを視聴履歴1011として生成するようにした。
これにより、音声映像コンテンツとプログラムコンテンツとが一体となったコンテンツ(BD−live対応のBlu−rayディスクコンテンツやアドビシステムズ社のフラッシュコンテンツ等)に対しても、豊富で正確な視聴履歴を生成することができる。また、従来は、ネットワークからのダウンロード数の情報程度しか分からなかったフラッシュコンテンツに対しても、同様に視聴履歴を生成することができる。
更に、収集した視聴履歴と視聴履歴テンプレートとをあわせることで、人間の恣意的な解釈と伴うことなく、機械的に一意にどの場面をどのように見たかを解析することができるようになるので、計算機による大規模かつ高速な視聴履歴解析が可能となる。
(実施の形態2)
実施の形態1では、視聴履歴テンプレートが光ディスクに含まれる場合について説明した。
実施の形態1で説明したように、視聴履歴テンプレートは、コンテンツ作成者が、プログラムコンテンツ或いは音声映像コンテンツの作成にあわせて同時に作り、プログラムコンテンツ或いは音声映像コンテンツと同一のコンテンツメディア中に記録して配布すれば、光ディスクプレーヤは、コンテンツ再生にあわせて視聴履歴テンプレートを確実に読み込むことができる。
その反面、全ての光ディスクに視聴履歴テンプレートが記憶されるようにすると、視聴履歴テンプレートを利用しない光ディスクプレーヤで視聴する場合には無駄となったり、また、記録したい視聴履歴を後から変更したい場合には対応が困難となったりする。
そこで、視聴履歴テンプレートをネットワーク上に置いて、必要な時点で光ディスクプレーヤは、ネットワーク上から視聴履歴テンプレートをダウンロードするような構成にすれば、これらの欠点は解消される。
例えば、再度図1を例に用いて説明すると、光ディスク1100には、視聴履歴テンプ
レート1103に代えて、視聴履歴テンプレート1103を識別することができるタグを記録し、履歴収集サーバ1500は、視聴履歴テンプレートを多数記録するようにする。このとき、タグは、コンテンツのタイトル名或いは何らかのIDコード等とし、タグから視聴履歴テンプレート1103を検索することができるようにしておく。
そして、プログラムコンテンツ処理部1001は、光ディスク1100を再生する場合に、履歴収集サーバ1500から、光ディスク1100に記録されたタグに対応する視聴履歴テンプレートを検索し、ネットワーク1400を経由して視聴履歴テンプレートをダウンロードする。プログラムコンテンツ処理部1001は、ダウンロードした視聴履歴テンプレートをファイルシステム1010上に視聴履歴テンプレート1012として記録しておく。
このようにすれば、実施の形態1と同様の効果を得つつ、オンデマンドで、視聴履歴テンプレートを利用することができるようになる。
(実施の形態3)
実施の形態1では、視聴履歴テンプレートは、コンテンツ作成者が、プログラムコンテンツ或いは音声映像コンテンツの作成にあわせて同時に作り、プログラムコンテンツ或いは音声映像コンテンツと同一のコンテンツメディア中に記録して配布する場合について説明したが、視聴履歴テンプレートは、プログラムコンテンツ或いは映像音声コンテンツから人間の手を介さずに機械的に生成することもできる。
当然、人間が作成する視聴履歴テンプレートに比較すると、機械的に生成された視聴履歴テンプレートには、自動抽出できる情報の質に限界があり、後の視聴履歴の解析の点から劣る面もある。しかしその欠点があっても、人間の労力を介さずに機械的に自動的に視聴履歴テンプレートを作成できるという点は、効率面からは有用である。更に、視聴履歴テンプレートにそもそも対応していないコンテンツに対しても、ある程度の質の視聴履歴が取り得るという点からも有用である。そこで、本実施の形態では、視聴履歴テンプレートの自動生成について説明する。
では、視聴履歴テンプレートの自動生成は如何にして為し得るか。実施の形態1で説明したように、視聴履歴テンプレートは、人間が理解できるように、コンテンツの構造又は動作を、プログラムコンテンツの「重要な場面」と「場面間の遷移」とに簡略化し、更に後に解析が機械的にできるような形式的言語で表現されている。
これに対して、一般的なプログラムは、機械的な手続で状態遷移オートマトンに変換可能であるものの、オートマトンのいう状態を視聴履歴テンプレートの状態に置き換えようとしたところで、一意のオートマトンに定まるとは限られず、また、上記で説明したような「重要な場面」が抽出できるとも限らない。このため、何らかの意味的、経験的な方法を導入して、コンテンツから「重要な場面」を自動抽出する必要がある。
本実施の形態では、プログラムコンテンツを記述する言語が、JAVA、Javascript等のオブジェクト指向のプログラム言語であるとする。プログラムコンテンツがオブジェクト指向言語により記述されていることは、本実施の形態における視聴履歴テンプレートの自動生成方法に関しての前提となる。以下で詳述するが、本実施の形態における視聴履歴テンプレートの自動生成方法は、オブジェクト指向言語の特定のクラス又はメソッドに注目することで、人間にとって有用な状態(前記の「重要な場面」)を抽出するからである。
まず、視聴履歴テンプレートにおいて、その履歴が欲しい重要な場面(状態)とは、ほ
とんどが、ユーザが選択したり、コンテンツに対して直接操作(再生、早送り、停止等)したりする場面である。また、視聴履歴で欲しい情報とは、何のコンテンツが選択されて、その選択されたコンテンツがどのように操作されたかについてであるから、これは当然のことといえる。
では、その重要な場面である(1)コンテンツの選択の場面、(2)コンテンツの操作の場面は、プログラムコンテンツの構造とどう関係するか。現在のGUI全盛のソフトウェアにおいては、ユーザの行動と、画面或いは入力のユーザインタフェースの状態とが密接に関係している。つまり、(1)コンテンツ選択の場面においては、画面には何らかの選択候補が列挙されており、ユーザはリモコン等で、選択候補からの選択結果を入力することができるのが普通である。また、(2)コンテンツ操作の場面では、コンテンツに代えて、コンテンツを操作するためのGUIが画面に表示されているのが普通である。
そして、GUIソフトウェアの記述には、現在では、ほとんどの場合オブジェクト指向プログラム言語が用いられ、更に多くのオブジェクト指向言語は、典型的な画面表示及びユーザからの入力方法を一まとめにして、クラスライブラリとして提供している。
このため、(1)コンテンツの選択の場面でも、(2)コンテンツ操作の場面でも、ある特定のクラス(プログラム言語のライブラリにより異なる)が表示されている場合が多い。
例えば、実施の形態1で説明した図2のような状態遷移図のプログラムコンテンツを、例えばJAVA言語のAWT(Abstract Window Toolkit)クラスライブラリを用いて作
成する場合、ウィンドウ(画面)の外枠を生成するには、Java.awt.Frame(以下、Frameとのみ略記する場合あり)クラスを用いることが普通である。そして、このウィンドウ(画面)の外枠の中に、各種の「部品」と呼ばれるクラスを配置していく。
例えば、図9は、JAVA言語のAWTクラスライブラリを用いて作成された選択画面の典型例であり、ウィンドウ(画面)の外枠8001は、Frameクラスで作成され、ウィンドウ(画面)内枠8002、8003の部品は、それぞれLabelクラス、Listクラスで作成されている。そして、JAVA言語のAWTクラスライブラリの場合、Frameクラスのようなウィンドウ(画面)の外枠を作成するクラスは、1つに限られているといって良い。
同様に、多くの現代的なオブジェクト指向プログラム言語の場合、ウィンドウ(画面)の外枠に対応するようなクラスは、1種類又は多くても数種類に限られている。そこで、このJava.awt.Frameクラスのように、ウィンドウ(画面)が切り替わる(ウィンドウ(画面)の外枠が変わる)ごとに用いられるような特別なクラスに注目すれば、プログラムコンテンツから、視聴履歴として記録すべき重要な場面を抽出することが可能となる。
例えば、プログラム言語としてJAVA言語を用い、GUI用のクラスライブラリとしてAWTクラスライブラリを用いた場合のプログラムコンテンツから、Frameクラスのインスタンスを抽出して、それを重要な場面(これは、視聴履歴テンプレートの状態に等しい)とし、そのFrameクラスが表示される時点(Frame.show()メソッドが呼ばれる箇所)をもって、その状態に突入したものと考え、非表示になったところで(hide()メソッドが呼ばれる箇所)、その状態を脱出したものと考えることで、プログラムコンテンツから、ある視聴履歴として記録すべき状態遷移を抽出することができる。
つまり、視聴履歴テンプレートがなくても、これらウィンドウ(画面)の外枠を表現するようなクラスのインスタンスを全て抜き出し、それを視聴履歴テンプレートの状態とみ
なす。そして、そのウィンドウ(画面)の外枠を表現するようなクラスのインスタンスが、画面上で実際に表示されたとき(Frame.show()ソッドが実行されたとき)を持って、その状態に突入したとみなし、非表示になった場合(hide()メソッド等が呼ばれた場合)をもって、その状態を脱出したとみなすことにより、状態遷移を抽出することができる。
以下では、実際のJAVAプログラムから、視聴履歴テンプレートの状態を抜き出し、かつ、その状態への突入点及びその状態からの脱出点を計算する例を示す。
まず、この視聴履歴テンプレートの自動生成を行うための装置の構成は、基本的に実施の形態1の装置構成(図1参照)と同様である。ただし、実施の形態1では、視聴履歴テンプレート1103が、光ディスク1100内に予め記録されていたのに対して、本実施の形態では、視聴履歴テンプレート1103が、光ディスク1100内に記録されていない。
そして、光ディスク1100が光ディスクプレーヤ1000に挿入され、プログラムコンテンツ処理部1001が、光ディスクアクセス部1002を介して光ディスク1100の内容を読み取り、視聴履歴テンプレート1103が光ディスク1100内にないことを発見した場合に、プログラムコンテンツ処理部1001は、プログラムコンテンツ1101から視聴履歴テンプレート1103を自動生成する。そして、自動生成された視聴履歴テンプレート1103は、ファイルシステム1010に視聴履歴テンプレート1012として格納され、視聴履歴の生成記録及び解析に利用されることになる。
次に、プログラムコンテンツ1101の内容を示す。
図8に示すプログラムコンテンツ1101は、非常に簡単なJAVAプログラムの一例である。これをバイトコンパイルしたものが、本実施の形態におけるプログラムコンテンツである。
このJAVAプログラムは、実施の形態1における「主選択画面」(状態2004、ID=1)に関連する部分において、説明に不要な要素を排除し簡略化したものである。具体的には、このプログラムコンテンツは、画面数が1つであって、章選択画面のみであり、動画コンテンツの再生のための画面も説明に不要のため省略している。また、画面が1つなので、プログラムコンテンツには、画面の非表示のためのメソッドがない。
図9は、このプログラムコンテンツが実際に起動され表示された画面を模式的に表現した図である。
図10は、図8に示したプログラムコンテンツ1101のバイトコンパイル結果を示す。ただし、実際のバイトコンパイル結果は数字の羅列であるが、説明の便宜上、人間が読めるように、図10は、バイトコンパイル結果をニーモニックで表現している。なお、図10のバイトコンパイル結果9001の左側に付された番号は、説明のために付加された行番号であり、バイトコードの一部ではない。
さて、プログラムコンテンツ処理部1001は、図10から、Java.awt.Frameクラスのインスタンスを見つけ、また、そのshow()メソッドの実行箇所を見付けて、そこから視聴履歴テンプレートを生成する。このようにして、プログラムコンテンツ処理部1001は、バイトコード中に存在するシンボル情報を手がかりにして、視聴履歴テンプレートを生成する。
一般に、インタプリタ型の処理系の場合(JAVAの処理系はその典型例である)、そ
の言語実行処理のためには、クラス名、メソッド名等のように、人間にも理解容易なシンボル名がバイトコード中に残されていなければならない。そのため、バイトコード中から、Frameクラス及びshow()メソッドを見つけることは困難ではなく、そのクラス(正確には、そのインスタンス)の生成部分を見つけ、更にその部分からshow()メソッド等の表示化メソッドの位置を探せばよい。そして、見つかったFrameクラス(又はそのサブクラス)のインスタンスが、視聴履歴テンプレートの状態の1つになり、show()メソッドが実際に実行される時点が、その状態に突入した時刻となる。
同様に、画面を非表示にするような、hide()又はdispose()等の表示終了の非表示化メ
ソッドが見つかった場合には、それら非表示化メソッドの実行時点が、その状態を脱出した時刻と記録される。このように、表示化メソッド又は非表示化メソッドを用いることにより、状態遷移を記録することができる。
なお、状態の名称又は属性には、なるべく後の解析過程に役立つように、様々な情報をできるだけ残すようにする。例えば、状態の名称又は属性には、クラスの名称又はshow()メソッド周辺にあるシンボルの名前等を残しておく。
次に、プログラムコンテンツ処理部1001が、図10に記載された、Java.awt.Frameクラス及びそのshow()メソッドの実行箇所を見付けて、そこから、プログラムコンテンツ処理部1001が、視聴履歴テンプレートを生成する過程を説明する。この視聴履歴テンプレートの生成は、図11に示めすフローチャートに従って行われる。
以下、視聴履歴テンプレートの生成は、図10のプログラムコンテンツの例に従って、説明する。
まず、プログラムコンテンツ処理部1001は、注目するクラスとして、Frameクラス(及びそのサブクラス)を設定する(ST10002)。
この後、注目すべきクラスが出現するまで(プログラム的には、インスタンスが生成されるまで)バイトコードを1命令ずつ読み進む(ST10003、ST10004、ST10005の繰り返し)。
図10の例では、Java.awt.Frameクラスそのものはないが、バイトコンパイル結果9001の2行目から、ListFrameクラスが、Java.awt.Frameを継承したクラスであることがわかる。そこで、図10では、このListFrameクラスに注目する。
なおここで、プログラムコンテンツ処理部1001は、バイトコートをそのまま読み進めると、5行目で、このListFrameクラスのインスタンスを生成している部分(命令:new)に行き当たる。よって、この5行目までの命令を読めば、基本的には視聴履歴テンプレートの状態として記録してよいのだが、実際のクラスの中には、生成だけして、表示されないようなものも考えられるため、表示が確定するまで状態としての記録を先延ばしし、まだ記録はしない。
更に、読み進むと、次は、先ほど生成されたListFrameクラスのインスタンスの初期化メソッドが見つかる(図10の7行目)。
ここで、ST10005の判断では、YES側に分岐し、ListFrameクラスは、注目クラスのサブクラスであるから、ST10006もYES側に分岐する。ここで、ST10007を実行する。まずは、飛び元をmainメソッドの4命令目(図10の7行)と記録して、初期化メソッドの実体であるListFrameメソッドのバイトコードの
読込みに移る(注、JAVA言語では、初期化メソッド(コンストラクター)の名前とクラス名とが同一であるが、これはメソッドの名前である)。つまり、以降しばらく、図10の13行目以降を読んでいく事になる。
図10の13行目以降の命令を読んでいくと、しばらくは、ST10003、ST10004、ST10008、ST10012、ST10010、ST10003のループで、命令を読み飛ばす。
そして、図10の57行目まで読み飛ばしたところで、show()メソッドが見つかる。この結果、ST10008ではYES側に分岐し、ここで初めて、視聴履歴テンプレートの状態が1つ生成され記録されることとなる(ST10009)
まず、IDは単なるユニークな数字であり、ここでは1とする。状態の名称は、クラス名にインスタンス同士を識別するためのユニークな識別子を付加したものとし、ここではクラス名にIDを付加したものとする。具体的には、ListFrame#1が、ST10009で記録された状態の名称となる。
図12は、最終的に生成される視聴履歴テンプレートである。図12の5行目には、ST10009で記憶された状態のID及び名称が付加されている。なお5行目には、状態のID及び名称以外にも、ListFrameクラスのスーパークラス名のリスト(super属性)、ListFrameクラスのインスタンスが生成された場所(loc属性、内容は、mainメソッドの0番命令)が、記載されている。
その他、図10のプログラムコンテンツから得られる情報として、6行目には、このインスタンスに保持されている他のグラフィックオブジェクトに関する情報(Label,List属性)が記載される。
そして、8行目には、show()メソッドのプログラムコンテンツ中の位置が記録される。この位置情報は、後にプログラムコンテンツ処理部1001が、このプログラムコンテンツを処理した場合、このプログラム位置の命令(ListFrame()メソッドの86番命令)を
実行した場合に、このListFrame#1の状態に入ったと記録するためのトリガーとなる。そして、最終的には、図10に示したプログラムコンテンツを最後まで読み終わり、この結果、図12に示したような視聴履歴テンプレート11000が生成される。
なお、以上の説明では、プログラムコンテンツがJAVA言語で記述された場合を例に説明したが、他言語で記述されている場合にも、同様のことが実現できる。いずれの場合も、同種の一連の画面表示を1つの状態として考え、それを実装しているようなプログラム言語上のクラス或いはメソッドに注目して、視聴履歴を生成すればよい。
以上のように、本実施の形態では、プログラムコンテンツが実装されるプログラム言語上でウィンドウ(画面)を表現するクラス及び当該クラスを表示化/非表示化するメソッドに注目し、プログラムコンテンツから、ウィンドウ(画面)を表現するクラスを視聴履歴として取得すべき状態として抽出し、当該状態に突入した時刻又は当該状態を脱出した時刻を表示化/非表示化メソッドを用いて記録するような視聴履歴テンプレートを生成するようにした。これにより、プログラムコンテンツ処理部1001の状態及びそれら状態間のリンクが記載されている視聴履歴テンプレートを、人間の労力を介さずに機械的に自動的に作成することができる。
なお、以上の説明では、コンテンツメディアの形態がDVDやBlu−rayディスク等の光ディスクの場合を例に説明したが、メディアの形態は、ディスクという形態或いは
レーザ光等のように光でコンテンツ内容を読み取れる形態に限定されるわけではない。メディアの形態は、ビデオカセットテープのようなテープ状のものでもよく、また、計算機OS(Operating System)のファイルシステム上のファイルのように物理的に定まった形態がないものでもよい。
またコンテンツ内容の読み取り方法は、光に限られず、磁気利用等任意の方法でかまわない。例えば、コンテンツ内容の読み取り方法は、ネットワークからダウンロードしてファイルに保存した、アドビシステムズ社のフラッシュ形式やマイクロソフト社のウィンドウズ(WINDOWS(登録商標))メディアビデオ形式のコンテンツでもよい。
更には、特定のOSでの実行形式のファイル(例えば、Linux(登録商標)OSのELF(Executable and Linking Format)形式やマイクロソフト社のウィンドウズOS
のexe形式等)でも同様の効果を得ることができる。これらの場合は、コンテンツの再生装置は、たとえば、一般のパーソナルコンピュータ上のコンテンツ再生アプリケーションとそのコンテンツ再生に必要なパーソナルコンピュータ自体や周辺機器を組みあわせたものとなるだろう。
2009年2月13日出願の特願2009−031909に含まれる明細書、図面及び要約書の開示内容は、すべて本願に援用される。
本発明は、プログラムコンテンツが、映像音声コンテンツを提示するユーザインタフェースを含む市販のBlu−rayディスクに対しても、詳細な視聴履歴を生成することができ、例えば、DVDプレーヤ、Blu−rayディスクプレーヤ等に有用である。
1000 光ディスクプレーヤ
1200 リモコン
1001 プログラムコンテンツ処理部
1002 光ディスクアクセス部
1003 リモコン入力部
1004 操作部
1005 重畳部
1006 GUI表示部
1007 動画・音声再生部
1008 ネットワークI/F
1006 GUI表示部
1007 動画・音声再生部
1009 視聴履歴生成部
1010 ファイルシステム
1011、6001 視聴履歴
1012、1103 視聴履歴テンプレート
1100 光ディスク
1101 プログラムコンテンツ
1102 映像・画像・音声コンテンツ
1400 ネットワーク
1500 履歴収集サーバ
2009 状態グループ
3001、3002、11000 視聴履歴テンプレート
8001 ウィンドウ(画面)の外枠
8002、8003 ウィンドウ(画面)の内枠

Claims (5)

  1. 映像音声コンテンツと、前記映像音声コンテンツを提示するユーザインタフェースを含むプログラムコンテンツとからなるコンテンツメディアを再生するコンテンツメディア再生装置であって、
    前記コンテンツメディアを読み取るアクセス部と、
    ユーザからの操作入力を受け付ける入力部と、
    前記アクセス部から前記プログラムコンテンツを読み出し、前記操作入力に従い前記プログラムコンテンツを動作させて、前記映像音声コンテンツの再生制御を行なうプログラムコンテンツ処理部と、
    前記映像音声コンテンツの視聴履歴として記録すべき前記プログラムコンテンツ処理部の状態及び前記状態間のリンクが記載されている視聴履歴テンプレートを記録する記録部と、
    前記プログラムコンテンツ処理部が、前記視聴履歴テンプレートに記載された状態を遷移した時刻と当該状態とを前記視聴履歴として生成する生成部と、
    を具備するコンテンツメディア再生装置。
  2. 前記視聴履歴テンプレートは、前記プログラムコンテンツが記録されているコンテンツメディアに記録されており、前記コンテンツメディアから前記記録部にコピーされる、
    請求項1に記載のコンテンツメディア再生装置。
  3. 前記視聴履歴テンプレートは、前記コンテンツメディア再生装置がアクセス可能なネットワーク上の記録装置に記憶されており、
    前記ネットワーク上の記録装置から前記記録部にダウンロードされる、
    請求項1に記載のコンテンツメディア再生装置。
  4. 前記プログラムコンテンツは、オブジェクト指向のプログラム言語で記述されており、
    前記視聴履歴テンプレートは、前記映像音声コンテンツ及び前記プログラムコンテンツが記述されるプログラム言語の特定のクラス、メソッド、シンボル名等から生成される、
    請求項1に記載のコンテンツメディア再生装置。
  5. 映像音声コンテンツと、
    前記映像音声コンテンツを提示するユーザインタフェースを含むプログラムコンテンツと、
    前記映像音声コンテンを再生するコンテンツメディア再生装置の状態及びそれら状態間の遷移のうち、前記映像音声コンテンツの視聴履歴として記録すべき状態及びそれら状態間の遷移が記載されている視聴履歴テンプレートと、
    を具備するコンテンツメディア。
JP2010533362A 2009-02-13 2010-01-29 コンテンツメディア再生装置及びコンテンツメディア Pending JPWO2010092763A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009031909 2009-02-13
JP2009031909 2009-02-13
PCT/JP2010/000544 WO2010092763A1 (ja) 2009-02-13 2010-01-29 コンテンツメディア再生装置及びコンテンツメディア

Publications (1)

Publication Number Publication Date
JPWO2010092763A1 true JPWO2010092763A1 (ja) 2012-08-16

Family

ID=42561612

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010533362A Pending JPWO2010092763A1 (ja) 2009-02-13 2010-01-29 コンテンツメディア再生装置及びコンテンツメディア

Country Status (4)

Country Link
US (1) US20110016396A1 (ja)
JP (1) JPWO2010092763A1 (ja)
CN (1) CN102007766A (ja)
WO (1) WO2010092763A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4682267B1 (ja) * 2010-09-07 2011-05-11 株式会社プランネット・アソシエイツ プログレッシブダウンロード再生方法及び再生用プログラム
US8687947B2 (en) * 2012-02-20 2014-04-01 Rr Donnelley & Sons Company Systems and methods for variable video production, distribution and presentation
JP6387531B2 (ja) * 2013-10-30 2018-09-12 パナソニックIpマネジメント株式会社 情報提供システム、特定情報生成装置、および特定情報生成方法
MX2018000327A (es) * 2015-07-16 2018-03-14 Sony Corp Aparato receptor, aparato transmisor, y metodo de tratamiento de datos.
CN105159524A (zh) * 2015-08-03 2015-12-16 小米科技有限责任公司 界面显示方法及装置
AU2016222442A1 (en) * 2015-12-28 2017-07-13 Sony Corporation Blu-ray pairing with video portal
CN108415642B (zh) 2018-03-05 2020-04-14 维沃移动通信有限公司 一种显示方法及移动终端
JP6684949B1 (ja) * 2019-06-24 2020-04-22 株式会社Cygames 情報処理プログラム、情報処理方法および情報処理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3501645B2 (ja) * 1998-02-13 2004-03-02 富士通株式会社 放送映像録画装置
JP2003087208A (ja) * 2001-09-07 2003-03-20 Matsushita Electric Ind Co Ltd データ受信装置
US20050223318A1 (en) * 2001-11-01 2005-10-06 Automatic E-Learning, Llc System for implementing an electronic presentation from a storyboard
US7234117B2 (en) * 2002-08-28 2007-06-19 Microsoft Corporation System and method for shared integrated online social interaction
US7734568B2 (en) * 2003-06-26 2010-06-08 Microsoft Corporation DVD metadata wizard
JP4498775B2 (ja) * 2003-11-20 2010-07-07 大日本印刷株式会社 視聴情報収集方法、データ放送番組データ、情報アクセス方法
JP2007053652A (ja) * 2005-08-19 2007-03-01 Victor Co Of Japan Ltd データ放送受信装置
JP4360390B2 (ja) * 2006-09-21 2009-11-11 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US8555087B2 (en) * 2008-06-19 2013-10-08 Intel Corporation Systems and methods for content playback and recording
US8364011B2 (en) * 2009-05-06 2013-01-29 Disney Enterprises, Inc. System and method for providing a personalized media consumption experience

Also Published As

Publication number Publication date
US20110016396A1 (en) 2011-01-20
WO2010092763A1 (ja) 2010-08-19
CN102007766A (zh) 2011-04-06

Similar Documents

Publication Publication Date Title
WO2010092763A1 (ja) コンテンツメディア再生装置及びコンテンツメディア
US9462309B2 (en) Playing and editing linked and annotated audiovisual works
US9787627B2 (en) Viewer interface for broadcast image content
US9788084B2 (en) Content-object synchronization and authoring of dynamic metadata
RU2375766C2 (ru) Носитель данных, хранящий мультимедийные данные для воспроизведения аудиовизуальных данных и программной функции, его устройство воспроизведения и способ
KR20080090218A (ko) 편집 파일의 자동 업로딩 방법 및 그 장치
JP2009238213A (ja) 対話システム、提示方法、及び表示プログラム
US9245584B2 (en) Information processing apparatus and information processing method
RU2315370C2 (ru) Носитель данных, на котором записаны аудиовизуальные данные с информацией о событии, устройство воспроизведения и способ их воспроизведения
JP2008537439A (ja) 先行して記録されたメディア・コンテンツの編集操作リストを作成する方法、装置及びシステム
TWI289832B (en) Information storage medium, information recording apparatus, and information playback apparatus
JP2011097604A (ja) プログラム管理情報が記録された記録媒体、それを再生するための方法及びその装置
US20120281964A1 (en) Content with navigation support
JP4955111B2 (ja) 再生装置、制御プログラム、記録媒体、及び再生装置の制御方法
JP5132871B2 (ja) コンテンツ再生装置、コンテンツ再生装置の制御方法、コンテンツ記録媒体、制御プログラム、制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4974838B2 (ja) ガイド情報提供システム及びビデオ再生装置
JP4963660B2 (ja) ビデオ再生装置
KR100965893B1 (ko) 모드 정보가 포함된 동영상 데이터가 기록된 저장 매체의 재생 방법
JP2006107586A5 (ja)
JP2009032342A (ja) 情報記憶媒体、情報再生装置、及び情報再生方法
JP2006109317A (ja) 再生装置
JP2009100146A (ja) ビデオ再生装置