以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同一である。したがって、それらについての詳細な説明は繰返さない。
図1を参照して、本実施の形態に係る番組情報処理装置について説明する。この番組情報処理装置は、テレビ番組受像器100と、番組表取得器200と、番組表提示器300とを含む。
テレビ番組受像器100は、番組受信装置110と、選局装置120と、番組記憶部130と、番組表示装置140とを含む。番組受信装置110は、放送局などが配信する番組を受信し、番組記憶部130へ渡す機能を持つ。選局装置120は、利用者によるチャンネル変更などの選局操作を受付け、番組受信装置110や番組表表示装置340へ選局情報を渡す機能を持つ。
番組記憶部130は、番組受信装置110から得た番組を記録し、番組表示装置140へ渡す機能を持つ。また、番組記憶部130は、記録予定の番組の情報を記憶する録画予約テーブルと、記録済みの番組の情報を記憶する録画済みテーブルとを持つ。番組表示装置140は、番組記憶部130から得た番組を表示する機能を持つ。
番組表取得器200は、番組情報取得装置210と、番組情報記憶部220とを含む。番組情報取得装置210は、情報配信会社や放送局が提供する番組情報(EPG)を取得し、番組情報記憶部220へ渡す機能を持つ。
番組情報記憶部220は、番組情報取得装置210から得た番組情報(EPG)を記録し、番組表作成部320へ渡す機能を持つ。また、番組情報記憶部220は、記録している番組情報(EPG)を記憶する全番組DB(Data Base)を持つ。
番組表提示器300は、選択条件記憶部310と、番組表作成部320と、番組表記憶部330と、番組表表示装置340とを含む。
選択条件記憶部310は、番組表作成部320により作成される番組表に入れる番組の選択条件を記録する選択条件テーブルを持つ。また、選択条件記憶部310は、選択条件を番組表作成部320に渡す機能を持つ。
番組表作成部320は、選択条件記憶部310から得た選択条件を用いて、番組情報記憶部220から得た番組情報(EPG)を取捨選択する。また、番組表作成部320は、取捨選択した番組情報(EPG)を記録する番組テーブルを持ち、取捨選択した番組情報(EPG)を再構成した番組表を作成して番組表記憶部330へ渡す機能を持つ。
番組表記憶部330は、番組表作成部320が作成した番組表を記憶し、記憶している番組表を番組表表示装置340へ渡す機能を持つ。番組表表示装置340は、番組表記憶部330が記憶した番組表を表示する機能を持つ。
図2を参照して、本実施の形態に係る番組情報処理装置の機器構成について説明する。放送受信装置1010によって、図1の番組受信装置110が実現される。入力操作装置1020によって、図1の選局装置120が実現される。
表示装置1030によって、図1の番組表示装置140と番組表表示装置340とが実現される。番組情報取得装置1040によって、図1の番組情報取得装置210が実現される。
CPU(Central Processing Unit)1050とRAM(Random Access Memory)1060とによって、図1の番組表作成部320が実現される。HDD(Hard Disk Drive)1070によって、図1の番組記憶部130、番組表記憶部330、選択条件記憶部310および番組情報記憶部220が実現される。
放送受信装置1010は、図1の番組受信装置110の機能を持つ機器である。放送受信装置1010は、アンテナAN1090を用い、地上波、BS、CS用チューナなど放送波による番組を受信する複数の機器で構成される。番組を受信する機器を複数持つことで、番組表示装置140で表示する番組と、番組記憶部130で記憶する番組とを、異なる番組にすることができる。加えて、番組記憶部130で同時に複数の異なる番組を記憶することもできる。なお、放送受信装置1010は、ケーブルTVやインターネット放送など放送波以外の番組を受信する機器で構成しても構わない。
入力操作装置1020は、選局装置120の機能を持つ機器である。入力操作装置1020は、リモコンなど番組選局の入力操作や、番組表の表示操作などを行なう機器で構成される。
表示装置1030は、番組表示装置140および番組表表示装置340の機能を持つ機器である。表示装置1030は、CRT(Cathode Ray Tube)や液晶を用いた表示機器で構成される。なお、番組表示装置140と番組表表示装置340とを、それぞれ別の表示機器で構成するようにしてもよい。また、同一の表示機器を用いて、その表示領域を2つに分けて表示するようにしてもよい。さらに、同一の表示機器を用いて、その表示領域を重ね合わせて表示するようにしてもよい。
番組情報取得装置1040は、番組情報取得装置210の機能を持つ機器である。番組情報取得装置1040は、ネットワークNW1100を用い、電子番組表(EPG)などを含む番組情報を取得する機器で構成される。なお、番組情報取得装置1040は、ネットワークNW1100以外の機器であって、放送波に重畳した番組情報を取得する機器で構成するようにしてもよい。
CPU1050とRAM1060とは、番組表作成部320の機能およびその他の放送受信機としての機能を実現する機器である。半導体などを用いた中央処理装置CPU1050が、半導体メモリRAM1060に記憶した情報を利用して処理を行なう。
HDD1070は、番組記憶部130、選択条件記憶部310、番組表記憶部330および番組情報記憶部220機能を持つ機器である。HDD1070は、固定磁気ディスク装置などで実現され、番組の記録、電子番組表(EPG)などを含む番組情報、その他のテーブルなどを記憶する。
時計1080は、CPU1050、放送受信装置1010、番組情報取得装置1040などに現在時刻を通知する。通知された現在時刻は、時刻に沿った処理の実行やテーブルなどへの時刻の記録に使用される。
図3を参照して、番組情報記憶部220が記憶する全番組DBについて説明する。全番組DBは、電子番組表(EPG)などの、個々の番組に関する番組情報を含む。本実施の形態においては、1件の番組について、番組ごとの固有識別情報である符号である番組ID3010、番組のタイトルをあらわす文字列である番組名3020、番組の内容を説明する文字列である番組内容3030、番組の開始時刻を表す時刻情報である開始3040、番組の終了時刻を表す時刻情報である終了3050、番組の放送局名をあらわす文字列である放送局3060、番組の属するジャンルを表す符合であるジャンル3070、番組がシリーズ番組かどうかや、シリーズ番組である場合には第何回かを表す符合であるシリーズ3080、番組に出演している出演者の名前を列挙した文字列である出演者3090の項目が番組情報に含まれる。
図4を参照して、選択条件記憶部310が記憶する選択条件テーブルについて説明する。選択条件テーブルは、全番組DBに含まれる番組情報から、番組テーブルへ番組情報を登録する際の条件を記憶したテーブルである。
本実施の形態においては、選択条件テーブルの1個の条件について、その条件が選択の際に与える重要度を表す数値である重み付け4010、その条件がどのような種類かを示す符号である条件種別4020、その条件に固有の数値である値4030が記憶される。なお、選択条件テーブルの条件種別によっては、値4030を持たない場合がある。
選択条件テーブルは、利用者が入力操作装置1020を用いて、明示的に設定を行なうことができる。たとえば、条件種別4020として「ジャンル」を指定し、値4030として全番組DBが含むジャンル符号を指定することで、特定のジャンルの番組を選択する。また、条件種別4020として「出演者」を指定し、値4030として出演者の氏名を文字列で指定することで、特定の出演者が出演する番組を選択する。さらに、条件種別4020として「キーワード」を指定し、値4030としてキーワード文字列を指定することで、特定のキーワードを番組内容に含む番組を選択する。
さらに、条件種別4020として「視聴履歴」を指定し、値4030として何も指定しないことで、利用者の番組視聴履歴を元に、同様の傾向を持つ番組を選択するように設定することができる。利用者の番組視聴履歴を元に、同様の傾向を持つ番組を選択する方法は、たとえば特許文献1に記載の方法などがある。
さらに、条件種別4020として「ダウンロード」を指定し、値4030としてサービス提供者を指定する文字列を指定することで、利用者が選択条件を指定せずに、外部のサービス提供者から入手して設定することができる。外部のサービス提供者から入手する方法としては、たとえば番組情報取得装置1040を利用して、ネットワークNW1100を経由して、選択条件テーブルに追加する内容をダウンロードする方法がある。
図5を参照して、番組表作成部320が選択条件テーブルの選択条件に基づいて取捨選択した番組情報(EPG)を記録する番組テーブルについて説明する。番組テーブルは、個々の番組に対する優先順位が記憶されたものである。本実施の形態において、番組テーブルには、1件の番組について、番組ごとの固有識別情報である符号である番組ID5010、番組の優先順位を示す数値である優先順位5020の項目がある。ここで、番組ID5010は、図3で説明した全番組DBの個々の番組が含む番組ID3020と対応している。
図6を参照して、番組記憶部130が記憶する録画予約テーブルについて説明する。録画予約テーブルは、録画を行なう対象の番組を記憶したものである。本実施の形態において、録画予約テーブルには、1件の録画予約について、番組ごとの固有識別情報である符号である番組ID6010の項目がある。
図7を参照して、番組記憶部130が記憶する録画済みテーブルについて説明する。録画済みテーブルは、番組記憶部130が録画予約テーブルの内容に基づいて録画した番組の番組情報を記憶したものである。録画済みテーブルに記憶される番組情報は、録画予約テーブルに記憶された番組情報である。
本実施の形態において、録画済みテーブルには、1件の番組について、個々の録画番組の固有識別情報である符号である録画ID7010、番組ごとの固有識別情報である符号である番組ID7020、番組の優先順位を示す数値である優先順位7030の項目がある。なお、録画した番組の種類によっては、番組ID7020や優先順位7030がない場合がある。
図8を参照して、番組表記憶部330が記憶する番組表について説明する。番組表は、仮想的なチャンネルで放送する番組を配置したものである。番組表は、利用者に提示される。
本実施の形態において、番組表には、1件の番組について、番組の開始時刻を表す時刻情報である開始時刻8010、番組の終了時刻を表す時刻情報である終了時刻8020、番組の種類を表す符合である種別8030、番組ごとの固有識別情報である符号である番組ID8040、個々の録画番組の固有識別情報である符号である録画ID8050の項目がある。ここで、番組ID8040は、図3で説明した全番組DBの個々の番組が含む番組ID3010と対応している。なお、番組の種別8030によっては、番組ID8040を持たない番組や、録画ID8050を持たない番組が存在する。
ここで、図8の種別8030における「生放送」とは、番組記憶部130に記録した番組ではなく、番組受信装置110から受信した番組をそのまま表示することをいう。代替番組とは、実際に放送している番組ではなく、本実施の形態における番組情報処理装置が作成した番組を意味する。
本実施の形態における代替番組は、図9に示すように、仮想チャネル上で放映する予定の番組を一覧として表示する番組である。仮想チャンネルとは、図8で説明した番組表の内容に沿って番組の表示を行なう仮想的なTVのチャンネルのことである。仮想チャネル上で放映する予定の番組の一覧は、代替番組以後の番組を番組表から取得して作成される。
代替番組の表示内容9010には、代替番組の内容を表すタイトル9020と、仮想チャネル上で放映する予定の番組9030,9040,9050が表示される。なお、図9に示す代替番組は一例であって、代替番組はこれに限らない。
図10を参照して、本実施の形態に係る番組情報処理装置のCPU1050が実行するプログラムの制御構造について説明する。
S10010にて、CPU1050は、全番組DBが記憶している電子番組表(EPG)など番組情報を元に、各番組の優先順位を求め、番組テーブルを作成するサブルーチンを実行する。
S10020にて、CPU1050は、番組テーブルの内容を用いて、番組表と録画予約テーブルとを作成するサブルーチンを実行する。
S10030にて、CPU1050は、番組表と録画済みテーブルの内容を用いて、番組表の空き時間に番組を配置するサブルーチンを実行する。
図11を参照して、番組情報を元に番組テーブルを作成するサブルーチンについて説明する。
S11010にて、CPU1050は、全番組DBから1件の番組情報を取得する。CPU1050は、全番組DBの先頭から順番に1件づつ番組情報を取得する。そのため、全番組DBの何件目まで取得済みかを表す変数がRAM1060に記憶される。
S11020にて、CPU1050は、1件の番組情報を用いて、図4の選択条件テーブルで指定する条件に基づき、条件に合致する程度を求める。条件に合致する程度は、たとえば0から100の数値で表される。複数の条件を選択条件テーブルで指定している場合、個々の条件ごとに合致する程度が求められる。
S11030にて、CPU1050は、条件に合致する程度を用いて、1件の番組情報に対する優先順位を求める。複数の条件を選択条件テーブルで指定している場合、個々の条件ごとに求めた条件に合致する程度を、選択条件テーブルが持つ重み付けの値を乗算の上全て加算し、1つの番組情報に対して1つの優先順位を算出する。優先順位の値は、たとえば0以上の数値で表す。
S11040にて、CPU1050は、1件の番組情報に対する優先順位を、番組テーブルに記録する。番組テーブルの先頭から順番に1件づつ優先順位を記録するため、番組テーブルの何件目まで記録済みかを表す変数がRAM1060に記憶される。
S11050にて、CPU1050は、全番組DBの全ての番組について、優先順位の算出が完了したかどうかを判断する。RAM1060に記憶される全番組DBの何件目まで取得済みかを表す変数を用いて、全番組DBが記憶する番組総数と比較することで、全ての番組について処理が完了したかどうかを判断する。全ての番組について処理が完了した場合(S11050にてYES)、処理はS11060に移される。もしそうでないと(S11050にてNO)、処理はS11010に戻され、全番組DBから次の1件の番組情報が取得され、処理が繰り返される。
S11060にて、CPU1050は、番組テーブルの内容を優先順位の高い順番に並べ替える。優先順位の値はたとえば0以上の数値で表されるので、この数値を元に降順に並べ替えることで、優先順位の高い順番に番組テーブルの内容を並べ替えることができる。
図12を参照して、番組テーブルの内容を用いて番組表と録画予約テーブルとを作成するサブルーチンについて説明する。
S12010にて、CPU1050は、図5の番組テーブルから1件の番組情報を取得する。番組テーブルの先頭から順番に1件づつ番組情報を取得するため、番組テーブルの何件目まで取得済みかを表す変数がRAM1060に記憶される。
S12020にて、CPU1050は、番組テーブルから取得した1件の番組情報を元に、その番組の放送時間において番組表に空きがあるかどうかを判断する。番組表に空きがある場合(S12020にてYES)、処理はS12030に移される。もしそうでないと(S12020にてNO)、処理はS12040に移される。
S12030にて、CPU1050は、番組表に空きがあった番組を、その放送時間で番組表に配置し、登録する。
S12040にて、CPU1050は、番組テーブルから取得した1件の番組情報を元に、その番組の放送時間において、図6の録画予約テーブルに空きがあるかどうかを判断する。録画予約テーブルに空きがある場合(S12040にてYES)、処理はS12050に移される。もしそうでないと(S12040にてNO)、処理はS12080に移される。
このとき、番組受信装置110は番組を受信する機器を複数持つため、ある放送時間に、複数の異なる番組を同時に録画予約テーブルに配置することができる。たとえば、番組を受信する機器が3個ある場合は、うち1個を番組表示装置140用に使用し、残り2個を用いて、同じ放送時間に2件の異なる番組を録画予約テーブルに配置することができる。
S12050にて、CPU1050は、番組テーブルから取得した1件の番組情報を元に、放送時間の録画予約テーブルに1件の番組を登録する。録画予約テーブルの先頭から順番に1件づつ番組情報を登録するため、録画予約テーブルの何件目まで登録済みかを表す変数がRAM1060に記憶される。
S12060にて、CPU1050は、番組表の登録内容を調べ、番組の放映時刻よりも未来の時刻において、番組表に空きがあるかどうかを判断する。番組表に番組が配置されていない未来の時刻において、番組と同じ長さの時間、他の番組によって番組表が埋まっていない場合、その番組が配置可能と判断される。番組表に空きがある場合(S12060にてYES)、処理はS12070に移される。もしそうでないと(S12060にてNO)、処理はS12080に移される。
S12070にて、CPU1050は、番組の放送時間より未来の時刻において、番組表にその1件の番組を登録する。S12080にて、CPU1050は、番組テーブルの全ての番組について、番組配置処理が完了したかどうかを判断する。CPU1050は、RAM1060に記憶される番組テーブルの何件目まで取得済みかを表す変数を用いて、番組テーブルが記憶する番組総数と比較することで、全ての番組について処理が完了したかどうかを判断する。全ての番組について処理が完了した場合(S12080にてYES)、この処理は終了する。もしそうでないと(S12080にてNO)、処理はS12010に戻され、次の1件の番組情報が取得されて、処理が繰り返される。
図13を参照して、番組表と録画済みテーブルの内容を用いて、番組表の空き時間に番組を配置するサブルーチンについて説明する。
S13010にて、CPU1050は、番組表の内容を過去から未来へ時間軸に沿って取り出す。番組表の内容を時間軸に沿って並べると、番組を配置している時間帯と番組がない空き時間とが並ぶ。これを、時間軸方向に過去から未来へ向かって、順番に取り出すと、配置してある番組、または、番組の無い空き時間、のどちらかを取り出すことができる。なお、時間軸方向に過去から未来へ向かって、順番に取り出すため、時間軸に沿ってどの時刻まで取得済みかを表す変数がRAM1060に記憶される。
S13020にて、CPU1050は、番組表が含む全ての番組を取り出したかどうか判断する。RAM1060に記憶される時間軸に沿ってどの時刻まで取得済みかを表す変数を用いて、番組表が扱う時間軸上の最大時刻と比較することで、全ての番組について処理が完了したかどうかを判断する。全ての番組について処理が完了した場合(S13020にてYES)、この処理は終了する。もしそうでないと(S13020にてNO)、処理はS13030に移される。
S13030にて、CPU1050は、取得したものが番組の無い空き時間かどうかを判断する。取得したものが番組の無い空き時間の場合(S13030にてYES)、処理はS13050に移される。もしそうでないと(S13030にてNO)、処理はS13040に移される。
S13040にて、CPU1050は、取得した番組情報1件をRAM1060に一時的に記憶する。その後、処理はS13010に戻され、次の時間帯が取得される。S13050にて、CPU1050は、図7の録画済みテーブルを番組の配置条件に基づき修正する。
CPU1050は、録画済みテーブルの各番組に与えられた優先順位の数値を用い、降順に並べ替えることにより、録画済みテーブルを番組の優先順位の高い順番で並べ替える。なお、優先順位を持たない番組、たとえば、代替番組については、録画済みテーブルから除外する。
また、CPU1050は、同一の番組が番組表にて時間軸上に連続して配置することをなくすため、S13040でRAM1060に一時的に記憶した番組と個々の録画済みテーブルの番組とを比較し、同一の番組であれば、録画済みテーブルから除外する。
さらに、CPU1050は、同一のジャンルの番組を番組表にて時間軸上に連続して配置する可能性を大きくするため、S13040でRAM1060に一時的に記憶した番組と個々の録画済みテーブルの番組とを比較し、同一のジャンルの番組であれば、録画済みテーブルの先頭へ移動する。
さらに、CPU1050は、同一シリーズの番組を番組表にて時間軸上に連続して配置する可能性を大きくするため、S13040でRAM1060に一時的に記憶した番組と個々の録画済みテーブルの番組とを比較し、同一シリーズの番組であれば、録画済みテーブルの先頭へ移動する。このようにして、録画済みテーブルが番組の配置条件に基づき修正される。
S13060にて、CPU1050は、録画済みテーブルから1件の番組情報を取得する。録画済みテーブルの先頭から順番に1件づつ番組情報を取得するため、録画済みテーブルの何件目まで取得済みかを表す変数がRAM1060に記憶される。
S13070にて、CPU1050は、録画済みテーブルから取得した1件の番組が、番組表の番組の無い空き時間に配置できるかどうかを判断する。録画済みテーブルから取得した1件の番組の長さと、番組の無い空き時間の長さを比較し、番組の長さが空き時間以下であれば配置できると判断する。配置できる場合(S13070にてYES)、処理はS13080に移される。もしそうでないと(S13070にてNO)、処理はS13090に移される。
S13080にて、CPU1050は、録画済みテーブルの番組を番組表の空き時間に登録する。その後、処理はS13010に戻され、次の時間帯が取得される。
S13090にて、CPU1050は、録画済みテーブルが含む全ての番組を取り出したかどうか判断する。CPU1050は、RAM1060に記憶される録画済みテーブルの何件目まで取得済みかを表す変数を用いて、録画済みテーブルが記憶する番組総数と比較することで、全ての番組について処理が完了したかどうかを判断する。全ての番組を取り出した場合(S13090にてYES)、処理はS13100に移される。もしそうでないと(S13090にてNO)、処理はS13060に戻され、次の1件の番組情報が取得されて、処理が繰り返される。
S13100にて、CPU1050は、代替番組を録画済みテーブルに登録する。代替番組の内容は、通常の番組を録画した場合と同様に、番組記憶部130に記録され、録画済みテーブルにも登録される。代替番組を録画済みテーブルに登録する場合、番組IDと優先順位は録画済みテーブルには記録されない。
S13110にて、CPU1050は、代替番組を番組表の空き時間に登録する。その後、処理はS13010に戻され、次の時間帯が取得される。
図14を参照して、視聴者が番組を視聴する際に本実施の形態に係る番組情報処理装置のCPU1050が実行するプログラムの制御構造について説明する。
S14010にて、CPU1050は、選局装置120への利用者(視聴者)の操作入力を待つ。CPU1050は、利用者が入力操作装置1020を用いて、チャネル変更や音量変更、その他の操作を行なうまで待つ。
S14020にて、CPU1050は、利用者の操作入力がチャンネル変更操作かどうか判断する。操作入力がチャンネル変更操作の場合(S14020にてYES)、処理はS14050に移される。もしそうでないと(S14020にてNO)、処理はS14030に移される。
S14030にて、CPU1050は、現在選局しているチャンネルが仮想チャンネルかどうか判断する。仮想チャンネルとは、図8で説明した番組表の内容に沿って番組の表示を行なう仮想的なTVのチャンネルのことである。現在選局しているチャンネルに関する情報を表す変数がRAM1060に記憶されており、CPU1050は、この変数に基づいて現在選局しているチャンネルが仮想チャンネルかどうか判断する。仮想チャンネルを選局している場合(S14030にてYES)、処理はS14040に移される。もしそうでないと(S14030にてNO)、処理はS14010に戻される。
S14040にて、CPU1050は、仮想チャンネルにおいて、番組変更のタイミングかどうか判断する。現在時刻を用いて、図8で説明した番組表の内容を参照し、表示中の番組の終了時刻になった場合、番組変更のタイミングと判断する。番組変更のタイミングである場合(S14040にてYES)、処理はS14060に移される。もしそうでないと(S14040にてNO)、処理はS14010に戻される。
S14050にて、CPU1050は、チャンネル変更操作によって、仮想チャンネルに変わったかどうか判断する。仮想チャンネルに変わった場合(S14050にてYES)、処理はS14060に移される。もしそうでないと(S14060にてNO)、処理はS14090に移される。
S14060にて、CPU1050は、現在の番組表を参照して表示する番組情報を取得する。S14070にて、CPU1050は、番組表を参照して、表示する番組が生放送かどうか判断する。CPU1050は、番組表の種別の項目の内容を用いて、生放送かどうかの判断を行なう。なお、本実施の形態において、生放送とは、番組記憶部130に記録した番組ではなく、番組受信装置110から受信した番組をそのまま表示することをいう。生放送の場合(S14070にてYES)、処理はS14090に移される。もしそうでないと(S14070にてNO)、処理はS14080に移される。
S14080にて、CPU1050は、録画済み番組の再生を開始する。録画済み番組は番組記憶部130から読み出されて再生される。S14090にて、CPU1050は、選局を行なう。
以上のような構造およびフローチャートに基づく、本実施の形態に係る番組情報処理装置の動作について説明する。以下、本実施の形態に係る番組情報処理装置が番組表を作成する際の動作について説明する。
ネットワークNW1100を用いて番組情報取得装置1040(番組情報取得装置210)が取得した電子番組表(EPG)の番組情報を元に、各番組の優先順位が求められ、番組テーブルが作成される(S10010)。
具体的には、全番組DBから1件の番組情報を取得され(S11010)、取得された番組情報について、図4の選択条件テーブルで指定する条件に基づいて条件に合致する程度が求められる(S11020)。
求められた条件に合致する程度を用いて、1件の番組情報に対する優先順位が求められ(S11030)、1件の番組情報に対する優先順位が番組テーブルに記録される(S11040)。
全番組DBの全ての番組について、優先順位の算出が完了していない場合(S11050にてNO)、全番組DBから次の1件の番組情報が取得され、S11010〜S11050の処理が繰り返される。
全番組DBの全ての番組について、優先順位の算出が完了した場合(S11050にてYES)、番組テーブルの内容が優先順位の高い順番並べ替えられ(S11060)、図5に示すような番組テーブルが作成される。
番組テーブルが作成されると、番組テーブルの内容を用いて、番組表と録画予約テーブルとが作成される(S10020)。具体的には、番組テーブルから1件の番組情報が取得され(S12010)、その番組の放送時間において番組表に空きがある場合(S12020にてYES)、取得された番組が、その番組の放送時間で番組表に配置され、登録される(S12030)。
取得された番組の放送時間において、番組表に空きがない場合(S12020にてNO)、その番組の訪英時間において、録画予約テーブルに空きがあるかどうかが判断される(S12040)。
録画予約テーブルに空きがある場合(S12040にてYES)、番組テーブルから取得した1件の番組情報を元に、放送時間の録画予約テーブルに1件の番組が登録される(S12050)。さらに、番組の放映時刻よりも未来の時刻において、番組表に空きがあれば(S12060にてYES)、番組の放送時間より未来の時刻において、番組表にその1件の番組を登録される(S12070)。
録画予約テーブルに空きがない場合(S12040にてNO)は、録画予約テーブルへの登録は行なわれない。また番組の放映時刻よりも未来の時刻において、番組表に空きがない場合(S12060にてYES)は、番組表への登録は行なわれない。
このような処理が、全ての番組について処理が完了するまで(S12080にてYES)行なわれる。これにより、番組表および録画予約テーブルが作成される。このとき、作成された番組表には空き時間が生じ得る。そのため、番組表と録画済みテーブルの内容を用いて、番組表の空き時間に番組が配置される(S10030)。
具体的には、作成された番組表の内容を過去から未来へ時間軸に沿って取り出され(S13010)、番組表が含む全ての番組を取り出されていなければ(S13020にてNO)、取得された番組表の内容が番組の無い空き時間かどうかが判断される(S13030)。
取得された番組表の内容が番組の無い空き時間ではない場合(S13030にてNO)、すなわち取得された番組表の内容がいずれかの番組の番組情報である場合、取得された番組情報がRAM1060に一時的に記憶され(S13040)、次の時間帯の内容が番組表から取得される(13010)。
取得された番組表の内容が、番組の無い空き時間の場合(S13030にてYES)、録画済みテーブルが、番組の配置条件に基づいて修正される(S13050)。録画済みテーブルの修正により、番組が優先順位の高い順番で並べ替えられる。このとき、優先順位を持たない番組、たとえば、代替番組は、録画済みテーブルから除外される。
また、同一の番組が番組表にて時間軸上に連続して配置することをなくすため、RAM1060に一時的に記憶した番組と同一の番組が録画済みテーブルから除外される。さらに、同一のジャンルの番組を番組表にて時間軸上に連続して配置する可能性を大きくするため、RAM1060に一時的に記憶した番組と同一のジャンルの番組が、録画済みテーブルの先頭へ移動される。さらに、同一シリーズの番組を番組表にて時間軸上に連続して配置する可能性を大きくするため、RAM1060に一時的に記憶した番組と同一シリーズの番組が、録画済みテーブルの先頭へ移動される。
修正された録画済みテーブルから1件の番組情報が取得され(S13060)、取得された1件の番組を、番組表の番組の無い空き時間に配置できるかどうかが判断される(S13070)。
録画済みテーブルから取得された1件の番組を番組表の番組の無い空き時間に配置できる場合(S13070にてYES)、録画済みテーブルの番組が番組表の空き時間に登録され(S13080)、次の時間帯の内容が番組表から取得される(13010)。
録画済みテーブルから取得された番組を番組表の空き時間に配置できない場合(S13070にてNO)において、録画済みテーブルが含む全ての番組が取得されていない場合(S13090にてNO)は、録画済みテーブルから次の1件の番組情報が取得され(S13060)、番組表の空き時間に配置できるかどうかが判断される(S13070)。
録画済みテーブルに含まれる全ての番組が取得されている場合(S13090にてYES)は、代替番組が録画済みテーブルに登録され(S13100)、その代替番組が番組表の空き時間に登録されて(S13110)、次の時間帯の内容が番組表から取得される(13010)。
このような処理が、番組表が含む全ての番組の内容を取り出すまで(S13020にてYES)繰り返される。このとき、上述したように、録画済みテーブルの番組を、優先順位の高い順番で並べ替えてか(S13050)、番組情報を取得し(S13060)、番組表の空き時間に登録できるかどうかを判断している(S13070)。このような処理を繰り返すことにより、結果的に、優先順位が高い番組情報を多く取得し(S13060)、番組表の空き時間に登録される(S13070)ことになる。これにより、優先順位の高い番組ほど、番組表に配置される回数を多くすることができる。すなわち、同一の番組を配置する回数を優先順位に基づいて決定することができる。
このようにして作成された番組表に登録された番組が、仮想チャンネルにおける番組として表示される。以下、本実施の形態に係る番組情報処理装置が、作成された番組表に基づいて番組を表示する際の動作について説明する。
利用者の操作入力の待機中(S14010)、チャンネル変更操作が行なわれ(S14020にてYES)、チャンネル変更操作によって、仮想チャンネルに変えられると(S14050)、現在の番組表から番組情報が取得される(S14060)。
表示する番組が生放送である場合(S14070にてYES)、選局が行なわれ(S14090)、番組表に登録された番組が表示装置1030に表示される。表示する番組が生放送でない場合(S14070にてNO)、録画済み番組の再生が開始され(S14080)、表示装置1030に表示される。
チャンネル変更操作は行なわれないが(S14020にてNO)、現在選局しているチャンネルが仮想チャンネルである場合(S14030にてYES)は、表示中の番組の終了時刻になり、番組変更のタイミングになると(S14040にてYES)、現在の番組表から番組情報が取得される(S14060)。
表示する番組が生放送である場合(S14070にてYES)、選局が行なわれ(S14090)、番組表に登録された番組が表示装置1030に表示される。表示する番組が生放送でない場合(S14070にてNO)、録画済み番組の再生が開始され(S14080)、表示装置1030に表示される。
以上のように、本実施の形態に係る番組情報処理装置によれば、特定の時間帯に選択条件に合致する番組が集中した場合でも、当該番組を記録保存しておき、逆に選択条件に合致する番組が無い時間に再生することで、仮想的なチャンネルに、特定の選択条件に合致する番組のみを、切れ目無く表示できる番組表を作成することができる。この番組表を用いることで、本来、受動的なメディアであるTV視聴において、利用者は何ら能動的な操作を行なうことなく、選択条件に合致する番組のみが放送されている、仮想的なチャンネルを得ることができる。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均などの意味および範囲内でのすべての変更が含まれることが意図される。
100 テレビ番組受像器、110 番組受信装置、120 選局装置、130 番組記憶部、140 組表示装置、200 番組表取得器、210 番組情報取得装置、220 番組情報記憶部、300 番組表提示器、310 選択条件記憶部、320 番組表作成部、330 番組表記憶部、340 番組表表示装置、1010 放送受信装置、1020 入力操作装置、1030 表示装置、1040 番組情報取得装置、1050 CPU、1060 RAM、1070 HDD、1080 時計、1090 アンテナAN、1100 ネットワーNW、3010,5010,6010,7020,8040 番組ID、3020 番組名、3030 番組内容、3040 開始、3050 終了、3060 放送局、3070 ジャンル、3080 シリーズ、3090 出演者、4010 重み付け、4020 条件種別、4030 値、5020,7030 優先順位、7010,8050 録画ID、8010 開始時刻、8020 終了時刻、8030 種別、9010 表示内容、9020 タイトル、9030,9040,9050 番組。