以下、図面を参照しつつ、本発明の具体的な実施の形態を説明する。なお、以下の説明に用いる図面では、同一の部品に同一の符号を付してある。それらの名称及び機能も同一である。したがって、それらについての詳細な説明は繰返さない。
なお、本明細書では、映像情報、文字情報、音声情報、静止画、アニメーション等、又はそれらが統合された情報により構成され、ニュース、音楽、映画、ゲーム、及び広告等をユーザに提供する情報を、「コンテンツ」と呼ぶ。また、映像情報、文字情報、音声情報、静止画、及びアニメーション等が統合された情報からなるコンテンツを、特に「複合メディア」と呼ぶ。
(全体構成)
図1に、本実施の形態に係るコンテンツ再生装置を含むシステムの全体構成を示す。図1を参照して、本実施の形態に係るシステム50は、インターネット等の通信ネットワーク52を介してコンテンツを提供するコンテンツサーバ54と、通信ネットワーク52を介して、コンテンツサーバ54が提供するコンテンツの再生順序を示すコンテンツリスト情報を提供するコンテンツリスト情報サーバ56と、通信ネットワーク52を介してコンテンツリスト情報を取得し、コンテンツリスト情報により示される順序又はユーザによる選択操作に従って、コンテンツサーバ54が提供するコンテンツを取得し再生するコンテンツ再生装置60とを含む。
コンテンツサーバ54は、単体又は複数のサーバ装置により構成され、複数のコンテンツを保持している。コンテンツサーバ54は、コンテンツ再生装置60がコンテンツを取得するために送信する要求に応答して、保持しているコンテンツのうち要求により指定されたものを送信する。また、コンテンツサーバ54は、コンテンツ再生装置60からの要求に応答して、コンテンツ再生装置60に提供する複合メディアについて、その複合メディアを構成するコンテンツの再生タイミングを所定の形式で示す複合メディアスクリプトを送信する。複合メディアスクリプトについては、図8を用いて後述する。
コンテンツリスト情報は、コンテンツ再生装置60によるコンテンツの再生予定の順序(以下、この予定を「再生スケジュール」と呼ぶ。)、及び再生スケジュールにより再生が予定されたコンテンツを特定する情報を含む。コンテンツリスト情報サーバ56は、コンテンツリスト情報を所定の形式で記載したコンテンツリストスクリプトを複数準備する。コンテンツ再生装置60からのコンテンツリスト情報の要求に応答して、コンテンツリスト情報サーバ56は、コンテンツリストスクリプトをコンテンツ再生装置60に対して送信する。コンテンツリストスクリプトについては、図7を用いて後述する。
コンテンツ再生装置60は、コンテンツリスト情報サーバ56からコンテンツリストスクリプトを複数取得し、複数のコンテンツリスト情報からなるコンテンツリストを生成する。コンテンツリストを構成するコンテンツリスト情報にはそれぞれ、予め定める順序関係を有するチャンネルが割当てられる。チャンネルは、ユーザがコンテンツの選択操作を行なう際の選択対象の実体であり、コンテンツ再生装置60は、ユーザにより選択されたチャンネルが割当てられたコンテンツリスト情報に基づき、再生すべきコンテンツを特定する。コンテンツ再生装置60は、特定したコンテンツを、通信ネットワーク52を介してコンテンツサーバ54から取得し再生する。
コンテンツ再生装置60は、通信処理等により発生するユーザによる選択操作から再生開始までの待ち時間を短縮化するために、以下に示す3種の処理を行なう。第1種の処理は、ユーザが次回の選択操作において選択する可能性が高いコンテンツを事前にコンテンツサーバ54から取得し保持しておく先読み処理である。第2種の処理は、発生する待ち時間を算出し、待ち時間に応じて現在再生中のコンテンツの再生出力を段階的に又は連続的に変化させた後に、選択されたコンテンツの再生を開始する遷移処理である。第3種の処理は、ユーザが頻繁に選択操作を行なっていることに応答して、上記した2種の処理を中断して、選択可能なコンテンツを一覧表示する高速切替である。先読み処理においては、コンテンツの再生予定の順序、及びユーザによる選択操作に関連したコンテンツの順序に基づき、先読み処理すべきコンテンツの優先順位を決定する。さらに、コンテンツを再生するために最低限必要な量のデータを先に取得し、コンテンツを構成するデータの残る部分を、追加的に取得する。
図2に、コンテンツ再生装置60の機能的構成をブロック図形式で示す。図2を参照して、コンテンツ再生装置60は、図1に示す通信ネットワーク52を介して、コンテンツサーバ54との間及びコンテンツリスト情報サーバ56との間で通信を行なうネットワーク通信部100と、ユーザによるチャンネル又はコンテンツの選択操作を受け、対応する入力信号を発生する入力部114とを含む。
コンテンツ再生装置60はさらに、ユーザが選択可能なチャンネルとコンテンツリスト情報との関係を示すチャンネルリストスクリプトを記憶するチャンネルリストスクリプト記憶部102を含む。チャンネルリストスクリプトについては、図6を用いて後述する。
コンテンツ再生装置60はさらに、チャンネルリストスクリプト記憶部102からチャンネルリストスクリプトを読出して解析するチャンネルリストスクリプト解析部104と、ネットワーク通信部100及びチャンネルリストスクリプト解析部104に接続され、チャンネルリストスクリプトの解析結果に基づいて、コンテンツリスト情報サーバ56(図1参照)からコンテンツリストスクリプトを取得するコンテンツリストスクリプト取得部106と、取得したコンテンツリストスクリプトを解析してコンテンツリストを生成するコンテンツリストスクリプト解析部108と、生成したコンテンツリストを記憶するコンテンツリスト記憶部110とを含む。コンテンツリストについては、図9及び図10を用いて後述する。
コンテンツ再生装置60はさらに、入力部114からの入力信号に従い、コンテンツリスト記憶部110に記憶されたコンテンツリストに基づいて、再生すべきコンテンツ及び先読み処理すべきコンテンツの特定、再生するコンテンツを切替えるための制御、並びにコンテンツの概要を表示するための出力を行なうコンテンツ切替制御部116と、コンテンツ切替制御部116による制御に従い、コンテンツの再生出力及びコンテンツの先読み処理を行なうための先読み情報の発行を行なうコンテンツ再生部120とを含む。コンテンツ再生装置60はさらに、コンテンツ切替制御部116及びコンテンツ再生部120により設定されるタイミングで通知信号を発生するタイマ118を含む。コンテンツ再生部120の詳細については、図3を用いて後述する。また、先読み情報については、図14を用いて後述する。
コンテンツ再生装置60はさらに、コンテンツ再生部120から先読み情報を受け、先読み処理を行なうべきコンテンツについて、先読み処理を行なうコンテンツの順序と事前に取得しておくデータ量とを決定し、先読み処理のスケジュール(以下、「先読みスケジュール」と呼ぶ。)を計画する先読み計画部122と、先読み情報、先読み計画部122が計画を行なうために必要な情報、先読みスケジュール、及び先読みスケジュールに従い先読み処理を行なうために必要な情報を記憶する先読み計画記憶部124とを含む。コンテンツ再生装置60はさらに、ネットワーク通信部100及び先読み計画記憶部124に接続され、先読みスケジュールに従ってコンテンツサーバ54(図1参照)からコンテンツを取得するコンテンツ先読み部126と、コンテンツ先読み部126が取得したコンテンツを記憶するコンテンツ記憶部128とを含む。
コンテンツ再生部120は、コンテンツ切替制御部116による制御に従い、コンテンツ記憶部128に記憶されたコンテンツを読出して再生する機能を有する。また、コンテンツ再生部120は、先読み計画部122を介して先読み計画記憶部124に記憶された情報を参照し、先読み計画記憶部124に記憶された情報に基づき、コンテンツの先読み処理の状況の判定を行ない、必要に応じて先読み情報を生成し、先読み計画部122に与える機能を有する。
図3に、コンテンツ再生部120の詳細な構成を示す。図3を参照して、コンテンツ再生部120は、再生又は先読みすべきコンテンツについて、図2に示すコンテンツ切替制御部116による制御に従いコンテンツ記憶部128から読出及び再生を行なうとともに、先読み処理の状況を判定し、先読み情報を発生する再生部品群140を含む。コンテンツ再生部120はさらに、図2に示すネットワーク通信部100に接続され、コンテンツサーバ54(図1参照)から複合メディアスクリプトを取得する複合メディアスクリプト取得部142と、複合メディアスクリプトを解析し、複合メディアを構成するコンテンツの再生タイミングを定義する複合メディア再生スケジュールを生成する複合メディアスクリプト解析部144と、生成された複合メディア再生スケジュールを記憶する複合メディア再生スケジュール記憶部146とを含む。コンテンツ再生部120はさらに、再生又は先読みすべき複合メディアについて、複合メディアスクリプト取得部142への複合メディアスクリプトの取得命令の発行、及び複合メディア再生スケジュール記憶部146に記憶されている複合メディア再生スケジュールに基づく、再生部品群140の制御、先読み情報の発生、並びに先読み計画部122との間での先読み情報の交換を行なうための複合メディア再生制御部148を含む。
再生部品群140は、アニメーション、文字列、静止画、及び動画など再生するコンテンツの種類に対応して、コンテンツについての読出及び再生出力、先読み情報の発生、先読み情報の交換を行なうアニメ再生部150A、テキスト再生部150B、静止画再生部150C、動画再生部150D等の個別の再生部を含む。複合メディア再生制御部148は、複合メディア再生スケジュールに基づきコンテンツの種類を判定し、当該種類に対応する適切な再生部を動作させるための制御を行なう機能を有する。
図4に、図2に示す入力部114の一部を構成するリモートコントローラ(以下、「リモコン」と呼ぶ。)の入力ボタンの配置を示す。図4を参照して、リモコン160は、コンテンツ再生装置60の電源のオン/オフを切替える電源ボタン162と、コンテンツの再生音量を調節するための音量ボタン164とを含む。リモコン160はさらに、チャンネルを所定の順序で切替えるための選局ボタン166と、同一チャンネルにおいて1つ前の時間帯に再生が予定されていたコンテンツを選択するための戻りボタン168と、一つ後の時間帯に再生が予定されているコンテンツを選択するためのスキップボタン172と、現在再生中のコンテンツについて、当該コンテンツの再生の中断及び再開を指令するための再生ボタン170とを含む。リモコン160はさらに、「0」から「12」までの複数個の数字ボタン174を含む。
図5に、本実施の形態におけるサービスと、コンテンツリスト情報と、チャンネルとの関係を概略的に示す。図5を参照して、サービス180には、インターネットを介してコンテンツを提供するインターネットコンテンツサービス184A、放送番組のコンテンツを提供する放送サービス184B、及び電子メールの送受信を仲介するメールサービス184Cなど種々の形式のものが存在する。例えば、図1に示すコンテンツサーバ54はインターネットを介してコンテンツを提供するものであって、そのサービスはインターネットコンテンツサービス184Aに属する。
これに対してチャンネル182は、種々のサービスにおいて提供されるコンテンツをユーザが選択する際の選択対象の実体となる。図5に示す例では、これらのサービス184A、184B、及び184Cに対してそれぞれ、複数種類のチャンネル186A及び186B等、188A及び188B等、並びに190A及び190B等が存在する。例えば、図1に示すコンテンツリスト情報サーバ56は、1つのチャンネル(例えば、コンテンツリスト情報サーバAチャンネル186A)に対応するコンテンツリスト情報を提供する。ユーザがコンテンツリスト情報サーバAチャンネル186Aを選択すると、コンテンツ再生装置60では、このチャンネル186Aに対応するコンテンツリスト情報に基づき、インターネットコンテンツサービス184Aにおいて提供されるコンテンツのうち所定のものが再生される。別のコンテンツリスト情報サーバが提供するコンテンツリスト情報サーバBチャンネル186Bのコンテンツリスト情報をユーザが選択すると、コンテンツ再生装置60では、インターネットコンテンツサービス184Aにより提供される別のコンテンツが再生される。
図6に、図2に示すチャンネルリストスクリプト記憶部102に記憶されるチャンネルリストスクリプトの一例を示す。図6を参照して、チャンネルリストスクリプト200はテキストファイル形式であり、かつマークアップ言語の一形式であるXML(eXtensible Markup Language)の形式を有している。XMLでは、「<」と「>」との間、又は情報の項目名を記載した「タグ」によって情報の項目を示す。タグによって示される項目の情報内容は、「<」と「>」との間に情報の項目名を記載したタグと、「</」と「>」との間に情報の項目名を記載したタグとの間に記載される。また、各項目の情報内容を項目名とともに、「<」と「/>」との間に記載することもできる。また、タグを入れ子にすることにより、複数の項目を構造化することができる。
1行目は、チャンネルリストスクリプト200がXML形式で記述された情報であることを宣言するための行である。「encoding=“Shift_JIS“」は、文字コードがシフトJISによるものであることを示す。2行目のタグ「<csd>」から14行目のタグ「</csd>」までに記載される情報が、チャンネルリストスクリプト200の内容である。
3行目のタグ「<head>」と6行目のタグ「</head>」との間には、付加的なヘッダ情報が記載される。4行目の項目「title」は、チャンネルリストスクリプト200の題名を示す。5行目の項目「author」は、このチャンネルリストスクリプト200の作成者を示す。
7行目のタグ「<channeldesc>」と13行目のタグ「</channeldesc>」との間には、ユーザが選択可能なチャンネルごとの情報が記載される。8行目から12行目までに記載の項目「channel」はそれぞれ、個別のチャンネルを示す。この項目に記載される「call」、「type」、及び「src」はそれぞれ、このタグが示すチャンネルを識別するためのチャンネル番号、このチャンネルが提供するサービスの形式、及びこのチャンネルに対応するサービスを特定するための識別子を示すパラメータの名称である。また、これらのパラメータの名称にそれぞれ対応して記載されている「“」と「”」とで囲まれた部分は、それぞれパラメータの値を示す。
例えば、8行目の項目が示すチャンネルは、チャンネル番号が「106」であること、このチャンネルが提供するサービスの形式が「NetContents」すなわちインターネットコンテンツサービス184A(図5参照)であること、及びこのチャンネルに対応するサービスの識別子がURL(Uniform Resource Locator)「http://chp−106.psd」であることを示す。
項目「channel」にはさらに、図4に示すリモコン160との対応関係が記載されることがある。例えば、10行目のタグ内のパラメータ「directkey」は、このチャンネル「111」とリモコン160の数字ボタン174との対応関係を示す。この例では、ユーザによる「1」番の数字ボタンへの操作がチャンネル「111」の選択操作であることを示す。項目「channel」にはさらに、このタグが示すチャンネルに対するユーザの好悪などが記載されることがある。例えば、12行目のタグ内の「prefered=“yes”」は、このチャンネル「117」がユーザにとってお気に入りのチャンネルであることを示す。
図7に、コンテンツリスト情報サーバ56(図1参照)が提供する、コンテンツリストスクリプトの一例を示す。図7を参照して、コンテンツリストスクリプト210は、テキストファイル形式であり、かつXMLの形式を有している。1行目は、XML形式で記述された情報であることを宣言するための行である。2行目のタグ「<psd>」から28行目のタグ「</psd>」までに記載される情報が、コンテンツリストスクリプト210の内容である。2行目のタグ内のパラメータ「version」は、コンテンツリストスクリプト210のバージョンを示す。3行目の項目「channel」は、コンテンツリストスクリプト210が対応するチャンネルの名称を示す。4行目の項目「author」は、コンテンツリストスクリプト210の作成者を示す。
6行目のタグ「<day>」と27行目のタグ「</day>」との間には、1日分の再生スケジュールが記載される。6行目のタグ内のパラメータ「value」は、この項目が示すこの再生スケジュールに従ったコンテンツの再生を実行する日を示す。
7行目及び17行目のタグ「<program>」はそれぞれ、このチャンネルにおいて再生が予定されている1つのコンテンツについての情報が、16行目及び26行目のタグ「</program>」までにそれぞれ記載されることを示す。1つのコンテンツに関する情報は、そのコンテンツの再生が予定された時間帯を示す情報と、そのコンテンツに関する付加的な情報とにより構成される。
8行目のタグ「<schedule>」と11行目のタグ「</schedule>」との間には、このコンテンツの再生が予定された時間帯が記載される。9行目の項目「starttime」は、このコンテンツの再生開始予定時刻を示す。この例では、0時(0:00)が再生開始予定時刻である。10行目の項目「endtime」は、コンテンツの再生終了予定時刻を示す。この例では、6時(6:00)が再生終了予定時刻である。
12行目から15行目には、このコンテンツに関する付加的な情報が記載される。12行目の項目「title」は、このコンテンツの題名を示す。13行目の項目「author」は、このコンテンツの作成者を示す。14行目の項目「abstract」は、このコンテンツの概要を示す。ここに記載される文字列は、遷移処理及び高速切替において表示される概要文字列となる。15行目の項目「ref」は、このコンテンツを取得する際に参照すべき参照先を示す。このタグ内に記載されるパラメータ「href」は、参照先のURLを示す。
この例では7行目から16行目までは、あるコンテンツに関して以下のようなことを示す。すなわち、このコンテンツが0時から6時まで配信されるコンテンツであること、名称が「お天気FLASH」であること、このコンテンツの作成者が「CP−A」であること、概要が「各地のお天気情報」であること、及びこのコンテンツを取得する際には、URL「http://www.cp−a.net/prd/weather.swf」にあるファイルを参照すべきであることである。
17行目から26行目に記載されるコンテンツに関する情報も、同様の項目により構成される。ここではそれらの説明は繰返さない。
コンテンツ再生装置60は、上記したコンテンツリストスクリプト210の項目「ref」を参照して、このコンテンツのデータを取得する。この項目に記載されるURLには、コンテンツサーバ54が提供するコンテンツのデータ自体がアップロードされている。又は、コンテンツが複合コンテンツである場合には、複合メディアを構成する複数のコンテンツを同期させるための情報を記載した複合メディアスクリプトがアップロードされる。
図8に、コンテンツサーバ54(図1参照)が提供する複合メディアスクリプトの一例を示す。図8を参照して、複合メディアスクリプト220は、テキストファイル形式であり、かつXMLの形式を有している。1行目は、XML形式で記述された情報であることを宣言するための行である。
2行目のタグ「<smil>」及び40行目のタグ「</smil>」は、これらのタグの間での記載が、W3C(World Wide Web Consortium)が定めるマルチメディア記述言語であるSMIL(Synchronized Media Integration Language)に準拠していることを示す。
3行目のタグ「<head>」と、18行目のタグ「</head>」との間には、複合メディアの再生を制御するための情報の内、複合メディアを構成する各コンテンツの再生タイミングを除く情報が記載される。4行目のタグ「<layout>」と17行目のタグ「</layout>」との間には、複合メディアを構成する各コンテンツを再生する際の表示画面上での配置に関する情報が記載される。5行目から6行目に記載の項目「root−layout」は、複合メディアを再生する際に表示する背景を示す。この項目内のパラメータ「width」、「height」、及び「backgroundColor」はそれぞれ、背景の幅方向の画素数、高さ方向の画素数、及び背景色を示す。なお、背景色のパラメータの値は、RGB(Red Green Blue)の表色系における各要素の輝度を2桁の16進数で指定し、「#」の後に並べる形式で表現されている。この例では、幅「1024」画素、高さ「768」画素の範囲に黒(#000000)の背景を表示することを示す。
7行目から16行目までに記載の項目「region」はそれぞれ、複合メディアを構成する個別のコンテンツを再生する際に参照される、画面上での表示領域の定義を示す。この項目に記載されるパラメータ「id」は、この項目により定義される領域を識別するための領域名を示す。パラメータ「top」、「bottom」、「left」、及び「right」はそれぞれ、領域の基準点の位置を示す。また、パラメータ「width」及び「height」はそれぞれ、領域の幅及び高さを示す。パラメータ「fit」は、領域の形状とこの領域で表示されるコンテンツの形状とに差異がある場合のコンテンツ表示方法を示す。パラメータ「z−index」は、各項目で定義される領域が画面上で重なった場合にいずれの領域を前面に表示すべきかを特定するための前後関係を示す。
例えば7行目から8行目までに記載の項目は、「opening」という名称で参照される領域であること、基準点は、画面の上端から上下方向に全体の27.5%、画面の左端から画面全体の20%に位置する左上頂点であること、領域の幅は画面全体の幅の60%であり、高さは画面全体の45%であること、この領域の形状と異なる形状のコンテンツが再生される場合には、この領域の形状に適合するようにコンテンツの表示画像を変換すること、及びこの領域が前後関係を示す値が5であることを示す。
19行目のタグ「<body>」と39行目のタグ「</body>」との間には、複合メディアを構成する個々のコンテンツを特定する情報、及びコンテンツの再生タイミングを示す情報が記載される。19行目のタグ内のパラメータ「repeatCount」は、19行目のタグ「<body>」と39行目のタグ「</body>」との間に記載される再生タイミングで行なうコンテンツの再生の繰返し回数を示す。このパラメータの値「indefinite」は、無限に繰返すことを示す。
20行目のタグ「<seq>」と38行目のタグ「</seq>」の間には、連続して再生される一連のコンテンツが記載される。21行目、27行目、及び33行目の「<par>」はそれぞれ、同時に複数のコンテンツが並行して再生されることを示し、これらのタグに対応する26行目、32行目、及び37行目のタグ「</par>」との間にはそれぞれ、「<par>」タグが示す並行して再生されるコンテンツを特定する情報が記載される。タグ「<par>」内のパラメータ「id」と「dur」とはそれぞれ、並行して再生される個々の状態を特定するための名称と、並行して再生される状態の持続時間とを示す。
22行目から23行目の項目「ref」は、個別のアニメーションコンテンツを示す。この項目内のパラメータ「src」、「region」、及び「type」はそれぞれ、このコンテンツを取得する際の参照先のURL、このコンテンツを再生するべき領域、及びこのコンテンツのデータタイプを示す。この例では、データタイプが、MIME(Multipurpose Internet Mail Extensions)型のapplication/x−shockwave−flash(type=“application/x−shockwave−flash”)であるコンテンツを「http://cp−b/movie/chalk.swf」から取得し、「opening」という名称で参照される領域に再生することを示す。
24行目の項目「text」は文字情報の再生を示す。この例では、データタイプが、MIME型のtext/plain(type=“text/plain”)のコンテンツを「http://cp−b/text/chalk.txt」のURLから取得し、「bottom」という名前で参照される領域に再生することを示す。
25行目の項目「<prefetch>」はこのタイミングで行なうべきコンテンツの先読み処理を示す。この例では、「http://cp−b/movie/ammonite.swf」のURLから500キロバイト(mediaSize=“500Kb”)分事前に取得しておくことを示す。
コンテンツリスト記憶部110(図2参照)に記憶されるコンテンツリストは、チャンネルごとの再生スケジュールと、再生スケジュールにより再生が予定されたコンテンツに関する付加情報とを含む。図9に、再生スケジュールの一例を示す。また、図10に付加情報の一例を示す。図9を参照して、再生スケジュール240は、チャンネルリストスクリプト200(図6参照)に記載のチャンネルごとに、そのチャンネルでの再生が予定されているコンテンツ242A,242B,…,242I,…を再生予定時間帯ごとに示すマトリックス状の情報である。各コンテンツの再生予定時間帯は、コンテンツリストスクリプト(図7参照)のタグ「<schedule>」により示される情報を解析することで得られる。例えば、ユーザが0時から6時までの期間に、チャンネル番号「111」の選択操作を行なった場合には、「コンテンツ1」242Aを再生すべきであることが示される。
図10を参照して、付加情報250は、図9に示すコンテンツ242A,242B,…,242I,…のうちの一つに対応する。この例では、付加情報250は、図9に示す「コンテンツ1」242Aに対応する。付加情報250は、コンテンツリストスクリプト210(図7参照)の「program」の項目内に記載の情報により構成される。付加情報250は、このコンテンツのタイトル252と、コンテンツの概要254と、コンテンツの作成者256と、コンテンツを取得する際に参照すべきURL258と、再生開始予定時刻及び再生終了予定時刻を示す再生時刻260とを含む。
図11に、複合メディア再生スケジュール記憶部146(図3参照)に記憶される複合メディア再生スケジュールの一例を示す。図11を参照して、複合メディア再生スケジュール270は、図8に示す複合メディアスクリプト220を解析することにより得られる情報である。複合メディア再生スケジュール270は、このコンテンツの再生時刻を0とする時間軸上での各領域において再生出力すべきコンテンツ272A,272B,…,272Fと、時間軸上の各区間において先読みすべきコンテンツ274A,274Bを示す。例えば再生開始後の時間が「0」から「60」の区間において、「アニメ1」272Aと「テキスト1」272Bとが再生され、同時にその時間帯においては、「アニメ2」を先読みすべきであること(「アニメ2先読み」274A)が示される。「アニメ2」は、時間軸上の次の区間において、再生されるコンテンツ272Cである。
図12に、先読み計画記憶部124(図2参照)に記憶される情報の構成を示す。図12を参照して、先読み計画記憶部124は、コンテンツのデータタイプごとに、最低限先読み処理により取得しておくべきデータ量を示す、最低先読み量対応表280と、先読みされるべきコンテンツの属性を示す先読み情報282A,282B,…と、コンテンツ先読み部126による先読み処理待ちのコンテンツを示す待ち行列284とを含む。待ち行列284は、先読み情報282A,282B,…と関連付けられた先読み要求290A,290B,…を先読み計画部122により計画された先読みスケジュール順に格納した行列である。
図13に、図12に示す最低先読み量対応表280の一例を示す。図13を参照して、最低先読み量対応表280は、コンテンツの型ごとのエントリにより構成され、各エントリは、コンテンツのデータタイプ300と、そのデータタイプのコンテンツにおいて再生を開始するのに最低限必要なデータ量を示す、単位画面サイズあたりの最低先読み量302とを含む。最低先読み量対応表280は、図2に示す先読み計画部122が先読み要求を生成する際、及びコンテンツ再生部120の再生部品群140(図3参照)の各再生部150A,150B,…がコンテンツ切替制御部116に対して通知を行なう際に参照される。
図14に、図12に示す先読み情報282の一例を示す。図14を参照して、先読み情報282は、コンテンツを取得する際に参照すべきURL310と、コンテンツ先読み部126により取得されコンテンツ記憶部128に格納される当該コンテンツのファイルの名称を示す先読みファイル名312と、コンテンツ全体のデータ量を示すサイズ314と、このコンテンツについて先読み処理により取得済みのデータの量を示す読込量316とを含む。先読み情報282はさらに、このコンテンツに関する先読み処理の進捗状況を示す先読み状態318と、コンテンツの先読み処理を行なう際の優先度を示すチャンネル距離320とを含む。
先読み情報282はさらに、この先読み情報282のデータタイプ322と再生時刻324とを含む。さらに、このコンテンツが現在再生中であるか否かを示すフラグ326と、このコンテンツに関して図2に示す先読み計画部122が生成する先読み要求290A,290B,…(図12参照)を示す項目を含む。先読み要求の項目は、再生を開始するために最低限必要なデータ量のデータを取得するための要求を示す最低先読み要求328と、コンテンツのチャンネル距離及びコンテンツ記憶部128の記憶容量に応じて行なわれる追加先読み処理を要求するための追加先読み要求330とを含む。これらの項目に格納される情報は、図12に示す先読み要求290A,290B,…を識別する情報である。
先読み状態318に格納される情報は、例えば、「初期状態」、「先読み要求発行済み」、「最低先読み量読込完了」、「読込み完了」の4種類である。先読み情報282は、図10に示すコンテンツの付加情報をもとに再生部品群140の各再生部150A,…、により生成され、コンテンツ先読み計画部122及びコンテンツ先読み部126により必要に応じて変更される。
図15に、図12に示す待ち行列284に格納される先読み要求の一例を示す。図15を参照して、先読み要求290は、先読み情報282(図14参照)により示されるコンテンツについて取得する部分の開始位置及び終了位置を示す開始バイト340及び終了バイト342を含む。先読み要求290はさらに、この先読み要求が最低先読み要求であるか追加先読み要求であるかを示す、先読み要求の種類344とを含む。先読み要求290は,先読み情報282(図14参照)の最低先読み要求328又は追加読込み要求330により、先読み情報282に関連付けられ格納される。
本実施の形態に係るコンテンツ再生装置60は、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。図16は、コンテンツ再生装置60のハードウェアの内部構成を示す。図16を参照して、このコンテンツ再生装置60は、リモコン160からの信号を受ける入力インタフェース360と、モニタ362と、スピーカ364とを含む。コンテンツ再生装置60はさらにローカルエリアネットワーク(LAN)等への接続を提供するネットワークインタフェース366を含む。コンテンツ再生装置60はさらに、CPU(中央処理装置)368、入力インタフェース360、モニタ362、スピーカ364、ネットワークインタフェース366、CPU368に接続されたバス370と、バス370に接続され、ブートアッププログラム、プログラム命令、システムプログラム、及び作業データ等を記憶するメモリ372とを含む。
コンテンツ再生装置60の機能を実現するためのコンピュータプログラムは、出荷時等にメモリ372に記憶される。又は、プログラムは通信ネットワーク52(図1参照)を通じてネットワークインタフェース366に送信され、メモリ372に格納されてもよい。プログラムは実行の際に、通信ネットワーク52を介して、直接にメモリ372にロードするようにしてもよい。
このプログラムは、コンテンツ再生装置60の機能を実現するための複数の命令を含む。この方法を実現するのに必要な基本的機能のいくつかはコンテンツ再生装置60上で動作するオペレーティングシステム(OS)又はサードパーティのプログラム、若しくはコンテンツ再生装置60にインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムはこの実施の形態のコンテンツ再生装置60を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記したコンテンツ再生装置が行なう処理を実行する命令のみを含んでいればよい。コンピュータの動作は周知であるので、ここでは繰返さない。
本実施の形態に係るコンテンツ再生装置60は、コンテンツを再生するためのメイン処理プログラムと、先読み処理プログラムとを並行して実行する。以下、まず図17から図19を用いて、メイン処理の制御構造を説明する。次に図20を用いて、コンテンツ先読み処理の制御構造を説明する。
図17は、メイン処理プログラムの制御構造を示すフローチャートである。図17を参照して、メイン処理プログラムは、例えばユーザが図4に示すリモコン160の電源ボタン162を押下したことに応答して起動し、ステップ(以下、単に「S」と表記する。)400において、予め記憶しているチャンネルリストスクリプト200(図6参照)を読出して解析し、チャンネル及びチャンネルそれぞれに対応するコンテンツリストスクリプトの提供元を特定する。S402では、S400で特定したチャンネルのうち、チャンネルに対応するコンテンツリストスクリプトが未取得なものがあるか否かを判定を行なう。未取得であれば、S404に進む。取得済みであればS410に進む。
S404では、S402で未取得であると判定されたチャンネルに対応するコンテンツリストスクリプト210(図7参照)を、S400で特定した提供元より取得する。S406では、S404で取得したコンテンツリストスクリプト210を解析し、当該チャンネルの再生スケジュール及び付加情報を得る。続くS408では、S404で得た再生スケジュール及び付加情報を格納し、コンテンツリストを生成する。制御はS402に戻る。S402からS404、S406、及びS408の各ステップの処理を繰返すことにより、チャンネルリストスクリプト200に記載の全てのチャンネルについてのコンテンツリストが生成される。制御はS410に進む。
S410では、イベントが発生するのを待つ状態となる。イベントが発生したならば、制御はS412に進む。S412では、発生したイベントがユーザによる選択操作により発生する入力イベントであるか否かを判定する。入力イベントであればS414に進む。さもなければS420に進む。
S414では、入力イベントの発生時刻を特定し、過去に特定した発生時刻と総合して、入力頻度を算出する。続くS416では、S414で算出した入力頻度が所定の値に到達しているか否かを判定する。所定の頻度に到達しているならば、S418に進む。さもなければS422に進む。S418では、コンテンツの高速切替処理を行ない、S410に戻る。高速切替処理の詳細については、図19を用いて後述する。
S420では、発生したイベントがタイマイベントであるか否かを判定する。タイマイベントが発生したならばS422に進む。さもなければS410に戻る。S422では、再生するコンテンツを切替えるためのコンテンツ切替処理を行ないS410に戻る。S422の処理の詳細については、図18を用いて後述する。
図18は、図17のS422において実行されるコンテンツ切替処理の詳細な制御構造を示すフローチャートである。図18を参照して、コンテンツ切替処理440が開始されると、S442において、コンテンツリストを参照し、現時点で選択されているチャンネルで配信中のコンテンツについての付加情報を読出す。S444は、S442で読出した付加情報が示すコンテンツについての先読み情報を参照し、当該コンテンツの再生準備が完了し再生開始できる状態にあるか否かを判定する。再生開始できる状態にあるならば、S446に進む。さもなければS450に進む。
S446では、S442で読出した付加情報に基づき、コンテンツの再生を行なう。続くS448では、S446で再生を開始したコンテンツの終了時刻を付加情報を特定し、当該時刻に到達した時点で次のコンテンツへの切替を行なうためにタイマ設定を行なう。処理はS454に進む。
一方、S450では、現時点から再生開始が可能になる時点までの遷移時間を算出し、再生中のコンテンツの再生出力に対して、算出した遷移時間に応じた遷移処理を施す。S452では、S450で算出した遷移時間の終了時刻即ち再生が可能になる時刻に到達した時点で、切替を行なうためのタイマ設定を行なう。処理はS454に進む。
S454では、コンテンツリストを検索し、その時点で選択されているコンテンツから、再生スケジュール上近接する複数のコンテンツの付加情報を、先読み処理すべきコンテンツに特定し、特定したコンテンツについての付加情報を読出す。
S456では、S454で読出した付加情報のうちの1つについて、当該付加情報が示すコンテンツに対応する先読み情報が未更新であるか更新済みであるかを判定する。先読み情報がない又は未更新であればS458に進む。全ての先読み情報が更新されていれば、コンテンツ切替処理440を終了する。
S458では、S456における判定対象となった付加情報に対応する先読み情報について、最低先読み量及び追加先読み量を算出し、先読み情報を更新する。S460では、S458で更新した最低先読み量及び追加先読み量と、コンテンツの先読み情報とを比較して、先読み処理が必要であるか否かを判定する。先読み処理が必要であればS462に進む。さもなければS456に戻る。S462では、S460において、先読み処理が必要であると判定されたコンテンツについての最低先読み要求及び追加先読み要求を発行し、待ち行列に、先読み距離に応じた順序で格納して、S456に戻る。
S456からS462までの各ステップをS454で読出した全ての付加情報について実行し、S456において未更新の先読み情報がないと判定されると、コンテンツ切替処理は終了する。
図19は、図17に示すS418において実行される高速切替処理の詳細な制御構造を示すフローチャートである。図19を参照して、高速切替処理480が開始されると、S482において、コンテンツリストを参照し、現時点で選択されているコンテンツを配信しているチャンネルと、チャンネル番号が近接する複数チャンネルがその時点で提供しているコンテンツについての付加情報を読出す。それらの付加情報にそれぞれ含まれる概要文字列を読出して、コンテンツの概要表示を作成し、表示する。S484では、所定の時間が経過した後にこの高速切替処理を終了させるために、タイマ設定を行なう。制御はS486に進む。
S486では、S482で開始したコンテンツの概要表示に対するイベントが発生を待つ状態となる。イベントが発生したならばS488に進む。S488では、発生したイベントが入力イベントであるか否かの判定を行なう。入力イベントであるならば、S482に戻る。さもなければ、S490に進む。S490では、発生したイベントがタイマイベントであるか否かの判定を行なう。タイマイベントであるならば、S492に進み、コンテンツ切替処理440(図18参照)を行ない、高速切替処理480を終了する。さもなければS486に戻る。
図20は、図17から図19に示すメイン処理と並行して実行される先読み処理の制御構造を示すフローチャートである。図20を参照して、先読み処理500が開始されると、S502において、先読み要求の待ち行列に先読み要求が格納されるのを待つ状態となる。待ち行列に先読み要求が格納されたならば、S504に進み、待ち行列の先頭に格納されている先読み要求を読出し、その先読み要求と対応関係にある先読み情報を参照して、取得すべきコンテンツを特定する。S506では、コンテンツサーバ54との間での通信を行ない、S504で特定したコンテンツのデータを、先読み要求により指定されたデータ量だけ取得し、記憶する。S508では、S506での処理結果に基づき、先読み情報及び先読み要求の待ち行列を更新する。制御はS502に戻る。
本実施の形態に係るコンテンツ再生装置60は、以下のように動作する。
(動作の概要)
コンテンツ再生装置60は、コンテンツ再生装置60の起動時に、コンテンツリストを準備する。また、入力部114からの入力信号に応答して、コンテンツリストに基づき、再生すべきコンテンツを決定し、再生を行なう。ただし、コンテンツの切替時には、通信処理に時間を要することに起因する待ち時間が発生する恐れがある。これに対応するために、コンテンツ再生装置60は、以下に示す3種の動作を実行する。すなわち、再生すべきコンテンツが、待ち時間に対処するのに十分な量記憶されているか否かを判定し、十分なデータが記憶されていないという判定結果を得たことに応答して、先読み計画部122に対してコンテンツの取得要求を行なうとともに、十分なデータが取得されるまでの間、再生出力に所定の遷移効果を加える。再生すべきコンテンツが、記憶されているという判定結果を得たことに応答して、記憶されたコンテンツを読出して再生する。入力信号が頻繁に発生した際には、ユーザに対して、コンテンツを選択させるための表示を所定の時間行なう。
また、コンテンツの切替が完了すると、ユーザが次に選択する可能性が高いコンテンツを選抜し、その優先順位を決定した上で、先読み計画を行ない、先読み要求の待ち行列の更新を行なう。上記した動作と並行して、待ち行列に格納された先読み要求に従い、先読みすべきコンテンツを取得し、格納する。
(コンテンツリストの準備)
コンテンツ再生装置60は、例えばユーザにより図4に示すリモコン160の電源ボタン162が押下されたことに応答して起動する。この際、図2に示す入力部114は、ユーザによる操作に応答して、起動信号を発生する。
図2を参照して、チャンネルリストスクリプト解析部104は、起動信号に応答して、チャンネルリストスクリプト記憶部102からチャンネルリストスクリプト200(図6参照)を読出す。チャンネルリストスクリプト解析部104は、読出したチャンネルリストスクリプト200を解析し、図6に示す個別のチャンネルごとに、チャンネル番号、サービスの形式、及び対応するサービスの識別子を特定する。チャンネルリストスクリプト解析部104は、サービスの形式が「NetContents」である場合、そのサービスの識別子であるURLを、チャンネルごとにコンテンツリストスクリプト取得部106に与えて、コンテンツリストスクリプトの取得指令を発行する。
コンテンツリストスクリプト取得部106は、チャンネルリストスクリプト解析部104からの取得指令に応答して、ネットワーク通信部100を介して、図1に示す通信ネットワーク52に接続されたコンテンツリスト情報サーバ56からチャンネルごとにコンテンツリストを取得する。
コンテンツリストスクリプトを取得する際には、コンテンツリストスクリプト取得部106は、例えば、次のような動作を行なう。すなわち、コンテンツリストスクリプト取得部106は、まず、所定の取得条件をパラメータとして、コンテンツリストスクリプトの取得要求を作成し、ネットワーク通信部100を介して、図1に示すコンテンツリスト情報サーバ56に送信する。典型的には、HTTP(HyperText Transfer Protocol)のPOST要求のメッセージ本体にパラメータをエンコードして送信する。又はHTTPのGET要求のquery文字列として、パラメータをエンコードする。
図1に示すコンテンツリスト情報サーバ56は、通信ネットワーク52を介して、コンテンツ再生装置60からの取得要求を受信する。コンテンツリスト情報サーバ56は、この取得要求に含まれる取得条件に基づいてコンテンツリストスクリプト210(図7参照)を準備し、取得要求の送信元であるコンテンツ再生装置60に返信する。
図2を参照して、コンテンツリストスクリプト取得部106は、送信した取得要求に応答してコンテンツリスト情報サーバ56が送信したコンテンツリストスクリプト210を、チャンネルリストスクリプト解析部104から与えられたチャンネル番号及びサービスの形式を示す情報とともに、コンテンツリストスクリプト解析部108に与える。
コンテンツリストスクリプト解析部108は、与えられたコンテンツリストスクリプト210を解析し、コンテンツリストスクリプト210に記載された各コンテンツの再生予定時間帯を特定する。コンテンツリストスクリプト解析部108は、特定した再生予定時間帯に基づき、コンテンツリスト記憶部110に記憶されたコンテンツリストの、図9に示す再生スケジュール240を更新する。また、コンテンツリストスクリプト210に記載された各コンテンツについて、付加情報250(図10参照)を生成し、コンテンツリスト記憶部110に、再生スケジュール240と関連付けて格納する。
コンテンツリストスクリプト取得部106、コンテンツリストスクリプト解析部108、及びコンテンツリスト記憶部110は、チャンネルリストスクリプト解析部104が発行するチャンネルごとの取得指令に従い、このコンテンツ再生装置60において再生可能な全チャンネルについて、コンテンツリストの更新を行なう。
(コンテンツの切替動作)
以下に、入力に応答してコンテンツ切替を行なう動作の内、再生すべきコンテンツが待ち時間に対処するのに十分な量記憶されているか否かを判定し、十分なデータが記憶されているという判定結果を得たことに応答して、記憶されているコンテンツを読出して再生する動作について説明する。
ユーザが図4に示すリモコン160の選局ボタン166又は数字ボタン174を押下して選択操作を行なうと、図2に示す入力部114は、選択操作に対応する入力信号を発生する。コンテンツ切替制御部116は、発生した入力信号に応答して、コンテンツリスト記憶部110に記憶された再生スケジュール(図9参照)を参照し、ユーザにより選択されたチャンネルにおいてその時点で再生すべきコンテンツを特定する。コンテンツ切替制御部116は、特定したコンテンツの付加情報を、コンテンツリスト記憶部110から読出す。読出した付加情報に含まれる概要文字列を、コンテンツ再生部120の図3に示す再生部品群140に与え、再生中のコンテンツの出力に合成して表示することを指令する。コンテンツ切替制御部116はさらに、読出した付加情報を、コンテンツ120の複合メディア再生制御部148に与える。
図3を参照して、コンテンツ再生部120の再生部品群140を構成する各再生部150A,150B,…は、概要文字列が与えられたことに応答して、所定の方法で再生中のコンテンツの出力に概要文字列の表示出力を合成して再生する。一方、複合メディア再生制御部148は、図2に示すコンテンツ切替制御部116から再生すべきコンテンツの付加情報250(図10参照)を受ける。複合メディア再生制御部148は、付加情報250のURLに基づき、再生すべきコンテンツのデータタイプを判別する。判別したデータタイプが複合メディア以外のものであることに応答して、複合メディア再生制御部148は、付加情報250を、再生部品群140のデータタイプに対応する再生部150A,150B,…に与える。
複合メディア再生制御部148はまた、データタイプが複合コンテンツであることに応答して、複合メディア再生スケジュール記憶部146に記憶されている複合メディア再生スケジュール270(図11参照)を検索して読出す。複合メディア再生スケジュールの検索に失敗した場合、複合メディア再生制御部148は、付加情報に含まれるURLを複合メディアスクリプト取得部142に与える。複合メディアスクリプト取得部142は、与えられたURLに基づき、ネットワーク通信部100を介して、図1に示すコンテンツサーバ54から複合メディアスクリプト220(図8参照)を取得し、複合メディアスクリプト解析部144に与える。複合メディアスクリプト解析部144は、与えられた複合メディアスクリプトを解析して、複合メディア再生スケジュール270(図11参照)を生成し、複合メディア再生スケジュール記憶部146に与える。複合メディア再生スケジュール記憶部146は、与えられた複合メディア再生スケジュール270を格納するとともに、複合メディア再生制御部148に与える。
複合メディア再生制御部148は、付加情報250(図10参照)に含まれる再生時刻260に基づき当該複合メディアの再生開始予定時刻からの経過時間を算出する。複合メディア再生制御部148はさらに、複合メディア再生スケジュール記憶部146から得た複合メディア再生スケジュール270(図11参照)における再生タイミングと算出した経過時間とに基づき、現時点において再生すべきコンテンツを特定する。複合メディア再生制御部148は、特定したコンテンツの各々についての個別の付加情報を、付加情報250及び複合メディア再生スケジュール270に基づき生成する。さらに特定したコンテンツの各々について、データタイプの判別を行ない、判別結果に応じて、生成した個別の付加情報を再生部品群140の、対応する再生部150A,150B,…に与える。
再生部150A,150B,…は、与えられた付加情報のURLを検索キーとして、図2に示す先読み計画記憶部124に格納されている先読み情報282(図14参照)を、先読み計画部122を介して検索する。さらに検索した先読み情報282の先読み状態318を参照し、コンテンツの再生準備が完了しているか、否かの判定を行なう。先読み状態318が、「最低先読み量読込完了」すなわち、最低先読み要求に基づくコンテンツの取得が完了した状態、又は、「読込完了」すなわち、コンテンツの追加先読み要求に基づくコンテンツの取得も完了している状態であるならば、コンテンツの再生準備は完了していると判定される。再生準備が完了しているという判定結果が得られたことに応答して、再生部150A,150B,…は、再生準備完了の通知をコンテンツ切替制御部116に与える。
図2を参照して、コンテンツ切替制御部116は、コンテンツ再生部120から再生準備完了の通知を受けると、コンテンツ再生部120へ付加情報を与え、コンテンツの再生を指示する。
図3を参照して、コンテンツ再生部120の複合メディア再生制御部148及び再生部品群140の各再生部150A,150B,…は、上記した動作と同様の動作で、コンテンツの再生準備が完了しているか否かの判定を行なう。再生の準備が完了していると判定されたことに応答して、コンテンツ再生部120の複合メディア再生制御部148は、コンテンツ切替制御部116に対して、準備完了の通知を行なう。コンテンツ切替制御部116は、コンテンツ再生部120から再生準備完了の通知を受けると、コンテンツ再生部120へ付加情報を与え、コンテンツの再生を指示する。コンテンツ再生の指示は、図3に示す複合メディア再生制御部148に与えられる。
複合メディア再生制御部148は、コンテンツ再生の指示を受けると、アニメ再生部150A、テキスト再生部150B、静止画再生部150C、及び動画再生部150Dに対して、現在再生しているコンテンツの停止を指示する。続いて、複合メディア再生制御部148は、与えられたコンテンツ付加情報のURLを参照し、当該付加情報が示すコンテンツのデータタイプを判別する。
例えば、コンテンツのデータタイプがアニメーションの場合、複合メディア再生制御部148は、アニメ再生部150Aに再生を指示する。アニメ再生部150Aは、コンテンツ付加情報のURLを検索キーとして、先読み計画記憶部124からコンテンツ先読み情報を検索し、検索したコンテンツ先読み情報282(図14参照)から先読みファイル名312を読出す。コンテンツ記憶部128から先読みファイル名を指定してコンテンツファイルを読込んで、アニメーションの再生を実行する。アニメ再生部150Aは検索したコンテンツ先読み情報282から、サイズ314と読込量316とを読出して、コンテンツ切替制御部116(図2参照)に与える。
コンテンツのデータタイプがテキストの場合、再生の指示はテキスト再生部150Bに与えられる。テキスト再生部150Bはアニメ再生部150Aと同様の動作で、テキストの再生を実行する。コンテンツのデータタイプが、静止画の場合、再生の指示は静止画再生部150Cに与えられる。静止画再生部150Cはアニメ再生部150Aと同様の動作で、静止画の再生を実行する。コンテンツのデータタイプが、動画の場合、再生の指示は動画再生部150Dに与えられる。動画再生部150Dはアニメ再生部150Aと同様の動作で、動画の再生を実行する。
コンテンツのデータタイプが複合メディアである場合、複合メディア再生制御部148は、複合メディア再生スケジュール記憶部146から、当該複合メディアに対応する複合メディア再生スケジュール270(図11参照)を検索する。また、複合メディア再生制御部148は、現在時刻と付加情報の再生開始時刻との差を求め、再生開始後の経過時間を算出する。複合メディア再生制御部148は、検索した複合メディア再生スケジュール270を参照し、算出した経過時間において再生すべきコンテンツを特定する。
複合メディア再生制御部148は特定したコンテンツについて、データタイプを判別し、データタイプに対応する再生部に、再生を指示する。複合メディア再生制御部148は特定したそれぞれのコンテンツについて、サイズと読込量の和を計算し、コンテンツ切替制御部116へ与える。コンテンツ切替制御部116は、コンテンツ再生部120から得たコンテンツのサイズと読込量とをコンテンツ概要表示に表示する。
以上の動作により、コンテンツ記憶部128に記憶されたコンテンツを、先読み情報に基づき検索し、待ち時間が発生することなく、コンテンツの再生が開始される。
(遷移処理)
以下、再生すべきコンテンツが待ち時間に対処するのに十分な量記憶されているか否かを判定し、記憶されていないという判定結果を得たことに応答して、先読み計画部122に対してコンテンツの取得要求を行なうとともに、十分なデータが取得されるまでの間、再生出力に所定の遷移効果を加える動作について説明する。
ユーザが上記したコンテンツ切替動作と同様に選択操作を行なうと、図2に示す入力部114は、選択操作に対応する入力信号を発生する。コンテンツ切替制御部116は、入力信号に応答して、コンテンツリスト記憶部110に記憶された再生スケジュール240(図9参照)を参照し、再生すべきコンテンツを特定し、そのコンテンツの付加情報を読出し、コンテンツ再生部120に与える。
図3を参照して、複合メディア再生制御部148は、付加情報250(図10参照)を受ける。複合メディア再生制御部148は、付加情報250のURLに基づき、再生すべきコンテンツのデータタイプを判別する。データタイプが複合メディア以外のものであることに応答して、複合メディア再生制御部148は、付加情報250を、再生部品群140のデータタイプに対応する再生部150A,150B,…に与える。
複合メディア再生制御部148は、データタイプが複合コンテンツであることに応答して、上記したコンテンツ切替動作と同様の動作で、複合メディア再生スケジュール270(図11参照)を得る。複合メディア再生制御部148は、付加情報250(図10参照)に含まれる再生時刻260に基づき経過時間を算出し、複合メディア再生スケジュール270(図11参照)における再生タイミングと算出した経過時間とに基づき、現時点において再生すべきコンテンツを特定する。複合メディア再生制御部148は、特定したコンテンツの各々についての個別の付加情報を生成する。さらに特定したコンテンツの各々について、データタイプの判別を行ない、判別結果に応じて、生成した個別の付加情報を再生部品群140の、対応する再生部150A,150B,…に与える。
再生部150A,150B,…は、与えられた付加情報のURLを検索キーとして、図2に示す先読み計画記憶部124に格納されている先読み情報282(図14参照)を、先読み計画部122を介して検索する。さらに検索した先読み情報282の先読み状態318を参照し、コンテンツの再生準備が完了しているか、否かの判定を行なう。検索に失敗した場合、又は、検索して得られた先読み情報により、コンテンツの再生準備が完了していないと判定された場合、再生部150A,150B,…は、付加情報250をもとにコンテンツ先読み情報282を生成して図2に示す先読み計画部122に与える。さらに、先読み計画記憶部124から最低先読み量対応表280(図13参照)のうち、当該再生部150A,150B,…と対応関係にあるデータタイプに対応する最低先読み量302を読出して、複合メディア再生制御部148に与える。
複合メディア再生制御部148は、付加情報を与えた再生部150A,150B,…の各々から、最低先読み量の通知を受け、それらの総和を算出する。複合メディア再生制御部148は、算出した最低先読み量の総和をコンテンツ切替制御部116に与える。
コンテンツ再生部120からコンテンツの最低先読み量とコンテンツ再生装置60の通信速度とが与えられると、これら与えられた情報に基づき、最低先読み量のコンテンツを取得するのに要する時間を算出する。コンテンツ切替制御部116は、タイマ118及びコンテンツ再生部120に対して、算出した時間の情報を与える。
図3を参照して、コンテンツ再生部120が時間の情報を受けると、再生部品群140を構成するアニメ再生部150A、テキスト再生部150B、静止画再生部150C,及び動画再生部150D等の再生部は、再生中のコンテンツに、遷移効果を指定された時間だけ適用する。タイマ118は、時間の情報を受けたことに応答して計時を開始し、算出した時間が経過すると、通知をコンテンツ切替制御部116に与える。
タイマ118からの通知に応答して、コンテンツ切替制御部116は、上記した動作と同様の動作で、付加情報を読出し、コンテンツ再生部120に与える。
図21に、上記した一連の動作によるコンテンツの切替を行なった場合の、コンテンツ再生装置60の画面遷移の一例を示す。図21を参照して、コンテンツ切替前の時点で、図3に示す再生部品群140がコンテンツ600を再生出力していたものとする。この際、コンテンツ切替制御部116による出力により、概要文字列602がコンテンツ600とともに表示される。ユーザが、選択入力を行なうと、コンテンツ再生装置60の再生出力画面は、再生出力610に遷移する。再生出力610は、コンテンツ600の再生出力に遷移効果が適用されたものである。さらに、表示される概要文字列は、コンテンツの切替後に出力されるコンテンツの概要文字列612となる。コンテンツの切替準備が完了すると、コンテンツ再生装置60の再生出力画面は、選択されたチャンネルのコンテンツ620に遷移する。この時点で表示される概要文字列622は、遷移処理中に表示していた概要文字列612と同様のものとなる。
図22に、コンテンツ再生装置60によるコンテンツのサイズと読込量の表示の一例を示す。図22を参照して、コンテンツ切替制御部116は、概要文字列632とともに、コンテンツ630のサイズと読込量に比例する長さの棒グラフ634と、コンテンツのサイズと読込量の数値636とを表示する。
コンテンツ切替制御部116は、コンテンツリスト記憶部110に記憶されるコンテンツリストを検索し、現在時刻に選択されているチャンネルで再生するコンテンツの次に再生するコンテンツの付加情報を参照する。コンテンツ切替制御部116は、タイマ118に、参照した付加情報が示す、次のコンテンツの再生開始時刻を設定する。
(コンテンツ先読み)
コンテンツ再生部120によるコンテンツの切替が完了すると、コンテンツ切替制御部116は、コンテンツリスト記憶部110を参照し、その時点で再生中のコンテンツと再生スケジュール240(図9参照)上で近傍に位置するコンテンツを特定する。
例えば、現在再生中のコンテンツが図9に示す再生スケジュール240上チャンネル番号「113」のコンテンツリスト情報に属する「コンテンツ4」であるものとする。この場合、コンテンツ4と同一チャンネルのコンテンツリスト情報に属し、再生順序が「コンテンツ4」と隣接している「コンテンツ3」及び「コンテンツ5」が、近傍に位置するコンテンツとして特定される。また、「コンテンツ4」が属するチャンネル番号「113」とチャンネル番号が隣接する、チャンネル番号「111」及びチャンネル番号「117」のコンテンツリスト情報において、「コンテンツ4」と同一の時間帯での再生が予定されている「コンテンツ1」及び「コンテンツ8」も、近傍に位置するコンテンツとして特定される。
コンテンツ切替制御部116は、特定したコンテンツの付加情報を読出すとともに、現在再生中のコンテンツと特定したコンテンツとの再生スケジュール240上での位置関係を示す距離情報をそれぞれ生成する。コンテンツ切替制御部116は、読出した付加情報とともに、コンテンツ再生部120に与え、これら特定したコンテンツの先読み処理を指令する。
複合メディア再生制御部148は、図2に示すコンテンツ切替制御部116から、距離情報と付加情報とを受けたことに応答して、付加情報のURLに対応するコンテンツのデータタイプを判別し、判別したデータタイプに応じた再生部150A,150B,…に、先読み処理の指令を与える。
例えば、コンテンツのデータタイプが、アニメーションの場合、先読み処理の指令はアニメ再生部150Aに与えられる。アニメ再生部150Aは先読みの指示を受けると、付加情報のURLを検索キーとして、先読み計画記憶部124に格納された先読み情報を検索する。先読み情報が見つからない場合、アニメ再生部150Aは、コンテンツ先読み情報を生成し、付加情報に格納されたURL、データタイプ、再生開始時刻、再生終了時刻の情報を設定する。
データタイプが複合メディアであった場合、複合メディア再生制御部148は、付加情報に含まれるURLに基づき複合メディア再生スケジュール記憶部146を検索して読出す。複合メディア再生スケジュールが複合メディア再生スケジュール記憶部146に記憶されていない場合、コンテンツ切替時の動作と同様の動作で複合メディアスクリプト取得部142に付加情報に含まれるURLを与えることにより、当該コンテンツについての複合メディア再生スケジュールを得る。
複合メディア再生制御部148は、得た複合メディア再生スケジュールを参照し、複合メディアに含まれる個々のコンテンツを識別する。複合メディア再生制御部148は識別したそれぞれのコンテンツについてデータタイプを判別し、対応する再生部150A,150B,…に、コンテンツリストでの距離と個々のコンテンツのURLと、コンテンツ付加情報により示される再生開始時刻と再生終了時刻とを与える。
複合メディア再生制御部148はさらに、得た複合メディア再生スケジュールを参照し、現在時刻と、コンテンツの付加情報の再生開始時刻との差から、その時点で先読み処理をすべきコンテンツを特定する。例えば、図11に示す複合メディア再生スケジュール270の複合メディアが6時から8時まで再生されることが付加情報により示されている場合、6:02にこの複合メディアについて先読み処理の指令を受けると、再生開始から120秒の時点で先読み処理すべきコンテンツとして、「アニメ3」274Bを特定する。
複合メディア再生制御部148は、特定した個別のコンテンツに対応するURLを、複合メディア再生スケジュールから取得し、取得したURLを検索キーとして、図2に示す先読み計画記憶部124に記憶されている先読み情報を検索する。先読み情報の検索に失敗した場合、複合メディア再生制御部148は、当該個別のコンテンツについての先読み情報を生成し、与えられた付加情報により示される複合メディアのURL、再生開始時刻、再生終了時刻の情報、及び判別したデータタイプを特定する。複合メディア再生制御部148はさらに、この複合メディアについての距離情報と、複合メディアのURLと、先読みサイズと、特定した情報とをもとに先読み情報を生成し、図2に示す先読み計画部122に与える。例えば、図9に示すアニメ3の先読みの場合、先読みサイズを500キロバイト(medeaSize=“500Kb”)を指定する。
図2を参照して、先読み計画部122は、コンテンツ再生部120から先読み情報を受けたことに応答して、まず、当該先読み情報が示すコンテンツについての先読み要求を待ち行列から削除する。次に、先読み計画部122は、先読み計画部122は、コンテンツ先読み情報を読取り、コンテンツが再生中であるか否かを判定する。コンテンツが再生中であると判定された場合、先読み計画部122は、最低先読み量を無限に設定する。それ以外の場合、先読み計画記憶部124に記憶されている最低先読み量対応表280を参照して、当該コンテンツの最低先読み量と、追加先読み量を計算し、先読み情報に格納する。ただし、図3に示す複合メディア再生制御部148により予め最低先読み量が格納されていた場合、最低先読み量の格納は行なわず、複合メディア再生制御部148により設定された最低先読み量を優先する。
先読み計画部122は、当該先読み情報により特定されるコンテンツを設定した最低先読み量まで取得するための最低先読み要求を作成する。この際、先読み計画部122は、最低先読み量が、コンテンツ先読み情報に記憶される読込量よりも多ければ、最低先読み要求を作成し、コンテンツ先読み情報の状態を「先読みスケジュール済み」に変更する。さもなければ、コンテンツ先読み情報の状態を「最低先読み量読込み完了」に変更する。次に、先読み計画部122は、コンテンツ先読み情報の各項目から追加先読み量を計算して設定する。例えば、(5−チャンネル距離)×500キロバイトの式により、チャンネル距離が近いコンテンツほどより多くの追加先読み量を設定する。先読み計画部122は、設定した追加先読み量まで取得するための追加先読み要求を作成する。この際、先読み計画部122は、設定された追加先読み量と最低先読み量との和がコンテンツ先読み情報の読込量よりも多ければ、コンテンツの追加先読み要求を作成する。逆に設定された追加先読み量と最低先読み量との和がコンテンツ先読み情報の読込量よりも少なければ、すでに読込まれた先読みファイルを一部削除し、ファイルサイズが設定された追加先読み量と最低先読み量との和になるようにして、コンテンツ先読み情報の状態を「読込み完了」に設定する。
次に先読み計画部122は、生成した先読み要求に対して、先読みの順序を決定するための優先度を計算する。この際、先読み計画部122は、最低先読み要求の優先度が追加先読み要求の優先度よりも高くなるように優先度を計算する。例えば、最低先読み要求に対しては、優先度を1000+(5−チャンネル距離)の式により計算し、追加先読み要求に対しては、優先度を(5−チャンネル距離)の式により計算する。次に先読み計画部122は、優先度が高い先読み要求ほど、待ち行列の前の方に配置されるように、生成した先読み要求を待ち行列に追加する。
コンテンツ切替制御部116、コンテンツ再生部120、及び先読み計画部122は、以上の動作を、コンテンツ切替制御部116が参照したコンテンツ付加情報についてそれぞれ行なう。
以上の処理に並行して、コンテンツ先読み部126は、先読み要求に従ってコンテンツを取得する。コンテンツ先読み部126は、先読み記憶部124に記憶される待ち行列284(図12参照)を監視し、待ち行列が空の場合、コンテンツ先読み要求が追加されるのを待つ。
先読み計画部122により待ち行列284に先読み要求290Aが格納されると、コンテンツ先読み部126は待ち行列284の先頭に格納されたコンテンツ先読み要求を読出す。コンテンツ先読み部126は、コンテンツ先読み要求と対応関係にある先読み情報282(図14参照)に格納されたURLを参照し、取得するべきコンテンツの、図1に示す通信ネットワーク52上での位置を特定する。コンテンツ先読み部126は、特定したコンテンツを形成するデータのうち、先読み要求に指定された量を送信することを、図1に示すコンテンツサーバ54に要求するための送信要求を生成する。コンテンツ先読み部126は、生成した送信要求を、ネットワーク通信部100を介してコンテンツサーバ54に送信する。
図1を参照して、コンテンツサーバ54は、コンテンツ再生装置60よりコンテンツの再生要求を受信すると、送信要求に含まれるデータ量の情報を参照し、要求されるコンテンツのデータを要求されるデータ量だけ、取得要求の送信元であるコンテンツ再生装置60に送信する。
コンテンツ再生装置60のコンテンツ先読み部126は、コンテンツサーバ54が送信した所定量のデータを、ネットワーク通信部100を介して受信する。コンテンツ先読み部126は、受信したデータを、コンテンツ記憶部128において、コンテンツ先読み要求に対応するコンテンツ先読み情報の先読みファイル名で格納する。さらにコンテンツ先読み部126は、当該先読み要求に対応する先読み情報282の読込量316に格納された値に取得したデータのデータ量を加算する。また、当該先読み情報282の先読み状態318を参照し、この項目の情報が「先読み要求発行済み」であった場合、「最低先読み量読込み完了」に更新する。この項目の情報が「最低先読み量読込み完了」であった場合には、「読込み完了」に更新する。コンテンツ先読み部126は、以上の処理を待ち行列にあるコンテンツ先読み要求について順次実行する。
(高速切替)
ユーザが図4に示すリモコン160の選局ボタン166、又は数字ボタン174を押して、コンテンツを切替える選択操作を行なうと、図2に示す入力部114は、選択操作に対応する入力信号を発生し、コンテンツ切替制御部116に与える。コンテンツ切替制御部116は、操作入力信号が与えられるとその入力時刻を記憶する。コンテンツ切替制御部116は、n回前に受けた入力信号の入力時刻と、最後に受けた入力信号の入力時刻との時間差を算出する。
コンテンツ切替制御部116は、算出した時間差が所定の値よりも小さい場合、すなわち所定の時間内にn回以上の選択操作がなされた場合に、コンテンツの高速切替を開始する。コンテンツ切替制御部116はコンテンツリスト記憶部110に記憶されるコンテンツリストを検索し、現在時刻に選択されているチャンネルで再生するコンテンツの付加情報と前後mチャンネルで現在時刻に再生されるコンテンツの付加情報とを参照する。コンテンツ切替制御部116は参照した付加情報からコンテンツ概要文字列を読出し、コンテンツの概要文字列の一覧表示画面を生成して出力する。
図23に、コンテンツ再生装置60による高速切替の際の、再生画面の表示の一例を示す。図23を参照して、高速切替が開始される前の段階で、コンテンツ再生装置は図21に示す画面と同様の画面600を表示しているものとする。高速切替が開始されると、画面640に示すようにコンテンツの再生表示はそのままに、コンテンツの概要文字列642A,642B,642C,642Dが並べて表示される。ユーザから一定期間入力がなされないと、高速切替は終了する。画面は、画面650に示すようにその時点で選択されているコンテンツに切替わる。
図2に示すコンテンツ切替制御部116は、現在再生中のコンテンツについての概要文字列642A,…の表示を、例えば表示枠の太さを変えたり、背景の色や模様を変えたりして表示することで、現在そのチャンネルが選択されていることを示す。
コンテンツ切替制御部116は、所定の時間後に高速切替終了通知を行なうように、タイマ118を設定する。コンテンツ切替制御部116は、コンテンツを切替える選択操作の入力信号を受けると、コンテンツの高速切替の開始時において実行した動作と同様の動作で、選択されたチャンネルと前後nチャンネルで現在時刻に再生するコンテンツの概要表示を並べて画面に出力する。コンテンツ切替制御部116は、タイマ118に現在時刻から所定の時間後に高速切替終了通知を行なうように設定し直す。
タイマ118は、タイマ設定後再設定がないまま設定された時間に到達したことに応答して、コンテンツ切替制御部116に通知を行なう。コンテンツ切替制御部116は、タイマ118からの通知に応答して、その時点において選択されているコンテンツの再生を開始するために、当該コンテンツの付加情報を読出し、コンテンツ再生部120に与える。コンテンツ再生部120は、上記したコンテンツ切替処理の動作により、選択されたコンテンツの再生を開始する。
なお高速切替において概要文字列を並べて画面に出力する際にも、コンテンツ切替制御部116が、概要文字列の表示対象となる各コンテンツについて、コンテンツ再生部120に対してサイズと読込量を問合わせ、図24に示すように、コンテンツの概要表示にサイズと読込み量を表示するようにしてもよい。
以上のように、本実施の形態に係るコンテンツ再生装置60は、コンテンツリストにより示されるコンテンツの順序に基づいてコンテンツの先読み量を決定し、その分だけ先読みする。したがって、ファイルサイズが大きい場合においても再生に必要な量のデータを多数のコンテンツについて取得しておくことができる。また、コンテンツのファイルが多数ある場合においても、より多数のコンテンツを取得しておくことができる。よって、記憶領域を効率的に利用できる。またコンテンツ再生装置60は、コンテンツリストに含まれる順序関係に基づいて、コンテンツの先読み順序を割当てる。したがって選択される可能性の高いコンテンツほど先に、先読みを行なうことができるため、コンテンツ再生開始時の待ち時間を軽減することができる。
さらに、コンテンツ切替時に遷移効果を適用することにより、発生する待ち時間をユーザが予測できるようになる。また、高速切替を行なうことにより、ユーザが選択操作を繰返すことに連動して通信処理を繰返すために待ち時間が発生しつづける状態を回避することが可能となる。ユーザは、速やかにコンテンツの選択を行なうことが可能となり、かつ、ユーザによるコンテンツ選択後の待ち時間を軽減できる。
なお、上記した実施の形態では、図3に示す複合メディア再生制御部148が、コンテンツのデータタイプの判別を行なった。しかし、本発明はこのような実施の形態には限定されない。例えば、付加情報に含まれるURLに基づき、図2に示すコンテンツ切替制御部116がコンテンツのデータタイプの判別を行ない、図3に示す再生部品群140の再生部に、選択的に付加情報を与えるようにしてもよい。
なお、上記した実施の形態においては、特にインターネットコンテンツを再生するサービスを例に説明した。しかし、本発明は、このような実施の形態には限定されない。例えば放送波の所定の周波数を使用して提供されるテレビ放送を再生するサービス、インターネットから受信した電子メールや複合メディアメッセージを再生するサービスの実体をチャンネルとしてもよい。
図25に、そのような場合のチャンネルリストスクリプトの一例を示す。図25を参照して、チャンネルリストスクリプト740の12行目の項目「<channel>」は、テレビ放送(type=”TvBroadCast”)のチャンネル(src=“tv://mhk.jp/sougou/”)を再生するサービスを示す。また13行目の項目「<channel>」は、電子メール(type=”MailApp”)の受信ボックス(src=“ReceiveBox”)を再生するサービスを示す。このようなチャンネルリストスクリプト740を準備した場合においても、コンテンツ再生装置60は、上記した実施の形態と同様に、コンテンツリスト情報サーバ56から取得したコンテンツリストスクリプトに従って、インターネットコンテンツを再生するチャンネルにおいて、インターネットコンテンツの先読み処理を行なうことができる。
なお、放送サービス等をサービスの実体とするチャンネルとして扱う場合、他のチャンネルの再生を開始するまでの待ち時間に、代替コンテンツを表示するようにしてもよい。図25に示す例では、12行目の項目「<channel>」は、代替画像として“alt.jpg”(alt=“alt.jpg”)を表示することを示す。
また本実施の形態では、コンテンツの再生準備が完了していない場合に、元のコンテンツに所定の時間遷移効果を適用した後で、コンテンツを切替える処理を行なった。しかし、本発明はこのような実施の形態には限定されない。例えば、遷移効果を適用する代りに、発生する待ち時間の間、コンテンツ高速切替を行なってもよい。またそのような場合、代替コンテンツを所定の時間再生した後でコンテンツを切替える処理を行なってもよい。
また複合メディアスクリプトに、一時記憶可能な領域の残量によって再生するメディアを切替えるように記述し、複合メディア再生制御部148は、コンテンツ記憶部128の一時記憶可能な領域の残量に従って再生するメディアを選択して再生するようにしてもよい。図26に、そのような場合の複合メディアスクリプトの一部を示す。
図26を参照して、複合メディアスクリプト750の1行目の「<switch>」から7行目の「</switch>」の間には、再生するメディアの候補が順に並べて記載される。2行目から3行目の項目「<ref>」は一時記憶可能な領域の残量が10メガバイト以上(systemCacheSize=“10Mb”)である場合に、URLが「http://cp−b/movie/chalk.swf」のコンテンツを再生することを示す。4行目から5行目の項目「<img>」は、2行目から3行目の項目「<ref>」が選択されなかった場合で、一時記憶可能な領域の残量が1メガバイト以上(systemCacheSize=“1Mb”)である場合に「http://cp−b/img/chalk.jpg」から取得したメディアを再生することを示す。6行目の項目「<text>」は、2行目から5行目までの項目「<ref>」及び「<img>」がいずれも選択されなかった場合に、「http://cp−b/text/chalk.txt」から取得したメディアを再生することを示す。
なお、コンテンツリストの取得及び更新処理を行なうタイミングは、コンテンツ再生装置60の起動時には限定されない。例えば、ユーザが所定の入力操作を行った際、又はコンテンツリスト情報サーバ56から所定の通知を受けた際、などに行なうようにしてもよい。また、コンテンツ切替処理では、コンテンツとコンテンツ概要表示とをともに表示したが、いずれか一方のみを再生するようにしてもよい。また、先読み処理では、乱数によって無作為に選択されたチャンネルのコンテンツを、先読み対象として選択するようにしてもよい。
なお、コンテンツリストスクリプト取得部106がコンテンツリストスクリプトを取得する際の条件は、例えば、コンテンツリストスクリプトのタイトル名が所定の文字列を含むという条件であってもよい。また例えば、コンテンツリスト情報サーバが、コンテンツ再生装置60又はそのユーザに推薦するコンテンツという条件としてもよい。
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。
52 通信ネットワーク、54 コンテンツサーバ、56 コンテンツリスト情報サーバ、60 コンテンツ再生装置、100 ネットワーク通信部、102 チャンネルリストスクリプト記憶部、104 チャンネルリストスクリプト解析部、106 コンテンツリストスクリプト取得部、108 コンテンツリストスクリプト解析部、110 コンテンツリスト記憶部、114 入力部、116 コンテンツ切替制御部、118 タイマ、120 コンテンツ再生部、122 先読み計画部、124 先読み計画記憶部、126 コンテンツ先読み部、128 コンテンツ記憶部、140 再生部品群、142 複合メディアスクリプト取得部、144 複合メディアスクリプト解析部、146 複合メディア再生スケジュール記憶部、148 複合メディア再生制御部、150A アニメ再生部、150B テキスト再生部、150C 静止画再生部、150D 動画再生部、160 リモコン、360 入力インタフェース、362 モニタ、364 スピーカ、366 ネットワークインタフェース、368 CPU、370 バス、372 メモリ