(57)【要約】【課題】ＮＩＴの運用方法が異なる放送事業者・国・地域であっても、同一のデジタル放送受信装置を使用することができるデジタル放送受信装置を提供する。【解決手段】受信可能な放送を選局するデジタル放送受信装置であって、放送を選局するためのアプリケーションを保持するアプリサーバ１０１から、アプリケーションを取得するアプリ取得部９０３と、取得されたアプリケーションを実行するアプリ実行部９０４と、アプリケーションが実行されることで、放送を選局するための情報である選局情報を生成するＪａｖａライブラリ９０６と、選局情報を用いて放送を選局するＳＴＢプログラム８０３とを備える。【選択図】図９
2010273172.tif 000002
【特許請求の範囲】
【請求項１】
受信可能な放送を選局するデジタル放送受信装置であって、
前記放送を選局するためのアプリケーションを保持するアプリケーションサーバから、前記アプリケーションを取得するアプリケーション取得部と、
取得された前記アプリケーションを実行するアプリケーション実行部と、
前記アプリケーションが実行されることで、前記放送を選局するための情報である選局情報を生成する選局情報生成部と、
前記選局情報を用いて前記放送を選局する選局部と
を備えるデジタル放送受信装置。
【請求項２】
前記アプリケーションサーバは、更に、前記アプリケーションを示す情報であるアプリケーション情報を保持しており、
前記デジタル放送受信装置は、更に、
前記アプリケーションサーバから前記アプリケーション情報を取得するアプリケーション情報取得部を備え、
前記アプリケーション取得部は、取得された前記アプリケーション情報に基づいて、前記アプリケーション情報で示される前記アプリケーションを前記アプリケーションサーバから取得する
請求項１に記載のデジタル放送受信装置。
【請求項３】
前記デジタル放送受信装置は、更に、
Ｊａｖａ言語で記述された前記アプリケーションであるＪａｖａアプリケーションを、前記アプリケーション実行部に実行させるＪａｖａＶＭを備える
請求項１又は２に記載のデジタル放送受信装置。
【請求項４】
前記アプリケーション情報取得部は、
前記アプリケーション情報を定期的に取得するためのアプリケーション情報モニタ部を備える
請求項２又は３に記載のデジタル放送受信装置。
【請求項５】
前記デジタル放送受信装置は、更に、
前記アプリケーション取得部が前記アプリケーションを取得するアプリケーションサーバを決定するアプリケーションサーバ決定部を備える
請求項１〜４のいずれか１項に記載のデジタル放送受信装置。
【請求項６】
前記デジタル放送受信装置は、更に、
前記選局情報を記憶する選局情報記憶部を備え、
前記選局情報生成部は、生成した前記選局情報を前記選局情報記憶部に記憶させ、
前記選局部は、記憶された前記選局情報を用いて前記放送を選局する
請求項１〜５のいずれか１項に記載のデジタル放送受信装置。
【請求項７】
デジタル放送受信装置が受信可能な放送を選局するように初期化を行うデジタル放送受信装置初期化システムであって、
前記放送を選局するためのアプリケーションを保持するアプリケーションサーバと、
請求項１に記載のデジタル放送受信装置と
を備えるデジタル放送受信装置初期化システム。
【請求項８】
デジタル放送受信装置が受信可能な放送を選局するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記放送を選局するためのアプリケーションを保持するアプリケーションサーバから、前記アプリケーションを取得するアプリケーション取得ステップと、
取得された前記アプリケーションを実行するアプリケーション実行ステップと、
前記アプリケーションが実行されることで、前記放送を選局するための情報である選局情報を生成する選局情報生成ステップと、
前記選局情報を記憶する選局情報記憶部に、生成された前記選局情報を記憶させる記憶ステップと、
記憶された前記選局情報を用いて前記放送を選局する選局ステップと
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル放送受信装置に関する。特に、放送の選局を行うための情報を構築するソフトウエアをダウンロードソフトウエアにより実現するデジタル放送受信装置に関する。
【背景技術】
【０００２】
現在、世界中で放送されているデジタル放送は、受信装置が選局処理を行うためのチャンネルマップ情報を放送波中にエンコードして送信している。受信装置は、予め内蔵された回路やソフトウエアにより、このチャンネルマップ情報を受信し、解釈し、周波数・チャンネル番号などを含む受信装置用の選局情報を構築する。受信装置は、この選局情報に基づき、ユーザーからチャンネル番号を受け付け、選局を実施する。
【０００３】
より具体的に説明する。デジタル放送では、ＭＰＥＧ２規格（ＩＳＯ／ＩＥＣ１３８１８）が用いられることが普通である。ＭＰＥＧ２規格では、各周波数に放送されるトランスポートストリームとよばれるデジタル信号に、１または複数のチャンネルと共に、放送しているチャンネル情報を表現するＰＡＴ（Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅ）、ＰＭＴ（Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅ）、ＮＩＴ（Ｎｅｔｗｏｒｋ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅ）等の情報をエンコードすることを規定している。
【０００４】
ＰＡＴは、１つのトランスポートストリーム内にエンコードされているチャンネル数及び各チャンネルの情報を格納するＰＭＴへの参照情報を含む。ＰＭＴは、１つのチャンネルを表現し、チャンネルを構成する映像・音声を規定する。受信装置は、特定の周波数を選局後、ＰＡＴ及びＰＭＴを取得することで、選局した周波数内のチャンネル情報を得ることが出来る。
【０００５】
ＮＩＴは、複数のトランスポートストリームの情報を含み、放送に使用されている周波数の一覧情報や、各周波数にエンコードされているチャンネル情報を含む場合もある。ＮＩＴのフォーマットはＭＰＥＧ２規格により厳密に定められているが、全ての周波数にエンコードするのか、特定の周波数にエンコードするのか、また、チャンネル情報を含むか、含まないかなど、その使用方法は自由であり、放送業者や国・地域により異なっている。
【０００６】
そこで、従来、ＮＩＴを取得することができるデジタル放送受信装置が提案されている（例えば、特許文献１参照）。
【０００７】
図３７は、従来のデジタル放送受信装置がＮＩＴを取得するためのフローチャートである。
【０００８】
デジタル放送受信装置は、電源投入時、当該受信装置の初期化を行う（ステップＳ３７０１）。そして、デジタル放送受信装置は、デフォルトとして設定されているチャンネル情報を元に、最初に選局すべき所定のチャンネルを選局し、ＮＩＴの取得を試みる（ステップＳ３７０２）。
【０００９】
デジタル放送受信装置は、万一、送信系の不具合などで、一定時間内にＮＩＴが取得できなければ（ステップＳ３７０２でＮＯ）、次の周波数を選局し（ステップＳ３７０３）、再度ＮＩＴの取得を試みる（ステップＳ３７０２）。
【００１０】
これを繰り返すことで、デジタル放送受信装置は、不具合の無い周波数からＮＩＴを取得できる（ステップＳ３７０４）ため、より信頼性の高いＮＩＴの取得と、ＮＩＴからのチャンネルマップ情報の獲得、受信装置用の選局情報構築が可能になる。
【００１１】
また、従来のデジタル放送受信装置の別の例として、欧州デジタルＴＶ標準規格ＤＶＢ−ＭＨＰ（ＥＴＳＩ  ＴＳ  １０１  ８１２  Ｖ１．３．１）によるデジタル放送受信装置であるＤＶＢ−ＭＨＰ受信機がある。
【００１２】
ＤＶＢ−ＭＨＰ受信機は、Ｊａｖａ（登録商標）アプリケーションをダウンロードし、実行する。具体的には、ＤＶＢ−ＭＨＰ受信機は、ＮＩＴ等のデジタル放送波にエンコードされた情報を取得するためのＪａｖａ  ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を備えている。そして、ＤＶＢ−ＭＨＰ受信機がダウンロードしたＪａｖａアプリケーションは、Ｊａｖａ  ＡＰＩを通してＮＩＴなどの情報を取得し、独自のチャンネル情報を構築、ＥＰＧ（Ｅｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅ）を実現することが出来る。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１０−１４５７６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、従来のデジタル放送受信装置では、ＮＩＴの運用方法が異なる放送事業者・国・地域で、同一のデジタル放送受信装置を使用することが出来ないという課題がある。
【００１５】
すなわち、従来のデジタル放送受信装置においては、受信装置用の選局情報を構築する回路やソフトウエアは予め受信装置に組み込まれているため、ＮＩＴの運用方法が異なる放送事業者・国・地域で、同一の受信装置を使用することが出来ない。つまり、小国が集まる欧州や、多様な放送事業者が多数存在する中国などでは、ＮＩＴの運用方法の違いにより、個別の受信装置開発が必要になり、大量生産による安価なデジタル放送受信装置を使用することが出来ない。
【００１６】
また、ＤＶＢ−ＭＨＰ受信機は、Ｊａｖａアプリケーションをダウンロードした後は、本課題を解決できると考えることが出来る。しかし、ＤＶＢ−ＭＨＰ受信機は、Ｊａｖａアプリケーションをダウンロードする前にチャンネル情報を取得し、特定のチャンネルを選局しない限りＪａｖａアプリケーションをダウンロードできない仕組みとなっており、放送事業者固有のＮＩＴの運用方法等に完全に対応できていない。
【００１７】
そこで、本発明は、このような課題に鑑みてなされたものであり、ＮＩＴの運用方法が異なる放送事業者・国・地域であっても、同一のデジタル放送受信装置を使用することができるデジタル放送受信装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
前記従来の課題を解決するために、受信可能な放送を選局するデジタル放送受信装置であって、前記放送を選局するためのアプリケーションを保持するアプリケーションサーバから、前記アプリケーションを取得するアプリケーション取得部と、取得された前記アプリケーションを実行するアプリケーション実行部と、前記アプリケーションが実行されることで、前記放送を選局するための情報である選局情報を生成する選局情報生成部と、前記選局情報を用いて前記放送を選局する選局部とを備える。
【００１９】
これによれば、放送を選局するためのアプリケーションを取得して実行することで、選局情報が生成され、選局が行われる。つまり、放送事業者・国・地域に応じたアプリケーションを取得することで、放送事業者・国・地域に合わせた選局情報を構築し、その選局情報を用いて選局を行うことができる。このため、放送事業者・国・地域に合わせた選局情報の構築処理を、デジタル放送受信装置と分離して行うことができる。このため、ＮＩＴの運用方法が異なる放送事業者・国・地域であっても、同一のデジタル放送受信装置を使用することができる。
【００２０】
また、前記アプリケーションサーバは、更に、前記アプリケーションを示す情報であるアプリケーション情報を保持しており、前記デジタル放送受信装置は、更に、前記アプリケーションサーバから前記アプリケーション情報を取得するアプリケーション情報取得部を備え、前記アプリケーション取得部は、取得された前記アプリケーション情報に基づいて、前記アプリケーション情報で示される前記アプリケーションを前記アプリケーションサーバから取得する。
【００２１】
これによれば、アプリケーション情報に基づいて、アプリケーションを取得できる。つまり、放送事業者・国・地域に応じて必要なアプリケーションの情報を示すアプリケーション情報に基づいて、放送事業者・国・地域に応じたアプリケーションを取得できる。このため、ＮＩＴの運用方法が異なる放送事業者・国・地域であっても、同一のデジタル放送受信装置を使用することができる。
【００２２】
また、前記デジタル放送受信装置は、更に、Ｊａｖａ言語で記述された前記アプリケーションであるＪａｖａアプリケーションを、前記アプリケーション実行部に実行させるＪａｖａＶＭを備える。
【００２３】
これによれば、アプリケーションはＪａｖａ言語で記述されているため、アプリケーションをデジタル放送受信装置のハードウエアに非依存の形式で記述できる。このため、当該アプリケーションを複数種のハードウエア上で実行できるため、デジタル放送受信装置ごとのアプリケーションの開発が不要になる。
【００２４】
また、前記アプリケーション情報取得部は、前記アプリケーション情報を定期的に取得するためのアプリケーション情報モニタ部を備える。
【００２５】
これによれば、アプリケーション情報が定期的に取得される。このため、アプリケーションが更新されたことを示すアプリケーション情報を取得することで、当該アプリケーションを更新することができ、選局情報の構築の手順が変更された場合に対処できる。
【００２６】
また、前記デジタル放送受信装置は、更に、前記アプリケーション取得部が前記アプリケーションを取得するアプリケーションサーバを決定するアプリケーションサーバ決定部を備える。
【００２７】
これによれば、放送事業者・国・地域に応じて必要なアプリケーションを保持しているアプリケーションサーバを決定することができる。このため、アプリケーションサーバの所在など設置条件が変更された場合に対処できる。
【００２８】
また、本発明は、このようなデジタル放送受信装置として実現できるだけでなく、当該デジタル放送受信装置と、放送を選局するためのアプリケーションを保持するアプリケーションサーバとを備え、当該デジタル放送受信装置が受信可能な放送を選局するように初期化を行うデジタル放送受信装置初期化システムとして実現することもできる。また、本発明は、当該デジタル放送受信装置を構成する各処理部を備え当該デジタル放送受信装置を制御する集積回路として実現したり、当該各処理部の処理をステップとする方法として実現したりすることができる。さらに、本発明は、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【００２９】
本発明によれば、ＮＩＴの運用方法が異なる放送事業者・国・地域であっても、同一のデジタル放送受信装置を使用することができるデジタル放送受信装置を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明に係る実施の形態１におけるデジタル放送受信装置を含むデジタル放送受信装置初期化システムを構成する構成要素の関係を表したブロック図である。
【図２】本発明に係る実施の形態１におけるアプリサーバの構成要素の関係を表したブロック図である。
【図３】本発明に係る実施の形態１におけるＨＴＴＰルートディレクトリの一例を示す図である。
【図４】本発明に係る実施の形態１におけるＳＣＡＩＴファイルの一例を示す図である。
【図５】本発明に係る実施の形態１におけるＣＡＴＶ  ＳＴＢのハードウエア構成要素の関係を表したブロック図である。
【図６】ＭＰＥＧ規格で定義されているパケットの構成図である。
【図７】ＭＰＥＧ２トランスポートストリームの一例を示す図である。
【図８】本発明に係る実施の形態１におけるＣＡＴＶ  ＳＴＢが保存するプログラム構成の構成図である。
【図９】本発明に係る実施の形態１におけるＣＡＴＶ  ＳＴＢが保存するセットアッププログラムの構成図である。
【図１０】本発明に係る実施の形態１におけるＳＣＡＩＴ保存部が保持するデータの一例を示す図である。
【図１１】本発明に係る実施の形態１におけるアプリ保存部が保持するデータの一例を示す図である。
【図１２】ＭＰＥＧ規格で定義されているセクションの構成図である。
【図１３】ＭＰＥＧ規格で定義されているＭＰＥＧ２セクションの構造図である。
【図１４】ＭＰＥＧ規格で定義されているＰＡＴの構造図である。
【図１５】ＭＰＥＧ規格で定義されているＰＭＴの構造図である。
【図１６】ＭＰＥＧ規格で定義されているＮＩＴの構造図である。
【図１７】本発明に係る実施の形態１におけるチャンネル情報保存部のＡＰＩの一例を示す図である。
【図１８】本発明に係る実施の形態１におけるチャンネルマップライブラリが保持するチャンネル情報の一例を示す図である。
【図１９】本発明に係る実施の形態１におけるチャンネルマップライブラリのＡＰＩの一例を示す図である。
【図２０】本発明に係る実施の形態１におけるＣＡＴＶ  ＳＴＢが保存するＳＴＢプログラムの構成図である。
【図２１】本発明に係る実施の形態１におけるチャンネル情報取得部が作成するチャンネル情報のリストの一例を示す図である。
【図２２】本発明に係る実施の形態１におけるチャンネル保持部が保持するデータの一例を示す図である。
【図２３】本発明に係る実施の形態１における入力部の一例であるリモコンの概観図である。
【図２４】本発明に係る実施の形態１におけるセットアッププログラムが実行するアプリケーションコードの一例を示す図である。
【図２５】本発明に係る実施の形態１におけるチャンネルマップライブラリが保持するチャンネル情報の一例を示す図である。
【図２６】本発明に係る実施の形態１におけるＣＡＴＶ  ＳＴＢ上で実行されるプログラムの動作を表すフローチャートである。
【図２７】本発明に係る実施の形態１におけるセットアッププログラムの動作を表すフローチャートである。
【図２８】本発明に係る実施の形態１におけるＳＣＡＩＴ部の動作を表すフローチャートである。
【図２９】本発明に係る実施の形態１におけるアプリ取得部の動作を表すフローチャートである。
【図３０】本発明に係る実施の形態１におけるＪａｖａＶＭによって実行されるアプリ実行部の動作を表すフローチャートである。
【図３１】本発明に係る実施の形態１におけるＳＴＢプログラムの動作を表すフローチャートである。
【図３２】本発明に係る実施の形態２におけるＳＣＡＩＴ部のプログラム構成の構成図である。
【図３３】本発明に係る実施の形態２におけるＳＣＡＩＴモニタ部の動作を表すフローチャートである。
【図３４】本発明に係る実施の形態３におけるＣＡＴＶ  ＳＴＢが保存するセットアッププログラムの構成図である。
【図３５】本発明に係る実施の形態３におけるアプリサーバを決定する画面の一例を示す図である。
【図３６】本発明に係る実施の形態４におけるＣＡＴＶ  ＳＴＢが保存するＳＴＢプログラムの構成図である。
【図３７】従来のデジタル放送受信装置がＮＩＴを取得するためのフローチャートである。
【発明を実施するための形態】
【００３１】
（実施の形態１）
本発明のデジタル放送受信装置の実施の形態を、図面を参照しながら説明する。
【００３２】
図１は、デジタル放送受信装置を含むデジタル放送受信装置初期化システムを構成する構成要素の関係を表したブロック図である。
【００３３】
同図に示すように、デジタル放送受信装置初期化システムは、アプリサーバ１０１及び３個のデジタル放送受信装置である受信装置Ａ１１１、受信装置Ｂ１１２、受信装置Ｃ１１３を備えている。なお、本実施の形態では、１つのアプリサーバに対して３つのデジタル放送受信装置が結合されているが、任意の数のデジタル放送受信装置をアプリサーバに結合しても、本発明は実施可能である。
【００３４】
アプリサーバ１０１及び３個のデジタル放送受信装置は、イーサネット（登録商標）で接続されている。なお、イーサネット以外でもＴＣＰ／ＩＰ通信できる接続方法であれば、本発明は実施可能である。
【００３５】
アプリサーバ１０１は、パソコンなどで構成され、ＨＴＴＰサーバの機能を有する。ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）とは、ネットワーク上でデータを送受信するためのプロトコルであり、サーバとＷＷＷブラウザ間のデータ送受信に使用されていることで有名である。ここでは、ＨＴＴＰに関する詳細な説明は省略する。
【００３６】
なお、本実施の形態ではＨＴＴＰプロトコルを用いているが、ＴＦＴＰプロトコル（Ｔｒｉｖｉａｌ  Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）など、アプリサーバ１０１からデジタル放送受信装置に以下に示すデータを送信できるプロトコルであれば、本発明は実施可能である。また、アプリサーバ１０１は、本発明の「アプリケーションサーバ」の一例に相当する。
【００３７】
図２は、アプリサーバ１０１をパソコンで実現した場合の例を示すブロック図である。アプリサーバ１０１を構成するパソコンは、モニタ２０１、２次記憶部２０２、１次記憶部２０３、ＲＯＭ２０４、入力部２０５、ネットワーク部２０６、及びＣＰＵ２０７を備えている。
【００３８】
図２を参照して、モニタ２０１は、ＣＰＵ２０７の指示により各種情報を表示するためのディスプレイであり、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などにより構成される。本実施の形態で、モニタ２０１はパソコンに組み込まれた状態を想定しているが、パソコン本体とモニタ２０１が分離した状態でも本発明は実施可能である。
【００３９】
２次記憶部２０２は、具体的には、フラッシュメモリーやハードディスク等で構成され、ＣＰＵ２０７から指示されたデータやプログラムなどが保存されたり削除されたりする。また、２次記憶部２０２に保存されているデータやプログラムは、ＣＰＵ２０７に参照される。また、２次記憶部２０２に保存されているデータやプログラムは、アプリサーバ１０１の電源が切断された状態でも保存されつづける。
【００４０】
また、パソコンで構成されるアプリサーバ１０１においては、２次記憶部２０２は、基本ソフトであるＯＳやＨＴＴＰサーバソフトウエアなどを記憶している。ＯＳの具体例としてはＬｉｎｕｘがあり、ＨＴＴＰサーバソフトウエアの具体例としてはＡｐａｃｈｅがある。
【００４１】
１次記憶部２０３は、具体的には、ＲＡＭ等で構成され、ＣＰＵ２０７から指示されたデータやプログラムなどが一次的に保存されたり削除されたりする。また、１次記憶部２０３に保存されているデータやプログラムは、ＣＰＵ２０７に参照される。また、１次記憶部２０３に保存されているデータやプログラムは、アプリサーバ１０１の電源が切断された際に、抹消される。
【００４２】
ＲＯＭ２０４は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤなどで構成される。ＲＯＭ２０４は、ＣＰＵ２０７が実行するプログラムやデータなどを格納している。パソコンで構成されるアプリサーバ１０１においては、ＲＯＭ２０４は、２次記憶部２０２が記憶するＯＳを起動するためのブートプログラムなどを記憶している。
【００４３】
入力部２０５は、具体的には、キーボードやマウスなどで構成され、ユーザーからの入力を受け付ける。
【００４４】
ネットワーク部２０６は、Ｅｔｈｅｒコネクタなどで構成され、ＴＣＰ  ＩＰベースのネットワーク通信を実現する。アプリサーバ１０１は、ネットワーク部２０６を通してデジタル放送受信装置に接続される。
【００４５】
ＣＰＵ２０７は、ＲＯＭ２０４が記憶しているプログラムを実行する。また、ＣＰＵ２０７は、実行するプログラムの指示に従い、モニタ２０１、２次記憶部２０２、１次記憶部２０３、ＲＯＭ２０４、入力部２０５、及びネットワーク部２０６を制御する。
【００４６】
アプリサーバ１０１が起動すると、ＣＰＵ２０７は、ＲＯＭ２０４に格納されたブートプログラムを読み込み実行する。ブートプログラムは、２次記憶部２０２が記憶する基本ソフトであるＯＳを起動する命令を含んでおり、ＣＰＵ２０７は、２次記憶部２０２が記憶する基本ソフトであるＯＳを読み込み実行する。
【００４７】
アプリサーバ１０１を実現するＯＳは、起動時にＨＴＴＰサーバソフトウエアを自動的に起動するよう設定されており、ＣＰＵ２０７は、２次記憶部２０２が記憶しているＨＴＴＰサーバソフトウエアも起動する。なお、ＯＳは、ＨＴＴＰサーバソフトウエアを自動的に起動するよう設定されていなくてもよい。その場合、アプリサーバ管理者が、入力部２０５を介してＨＴＴＰサーバソフトウエアを起動すればよい。
【００４８】
ＨＴＴＰサーバソフトウエアは、ネットワーク部２０６を通して、外部接続されたデジタル放送受信装置からの要求を受付け、必要なファイルをデジタル放送受信装置に送信する。ＨＴＴＰサーバソフトウエアは、サーバ内にＨＴＴＰルートディレクトリを保持し、そのディレクトリ以下に、提供可能なファイルを保持する。
【００４９】
図３は、ＨＴＴＰルートディレクトリ３０１の一例を示す図である。
【００５０】
同図に示すように、ＨＴＴＰルートディレクトリ３０１は、２次記憶部２０２の内部にあり、ここではディレクトリ「／ｖａｒ／ｗｗｗ／ｈｔｍｌ」がＨＴＴＰルートディレクトリ３０１である。このディレクトリには２つのファイル、ＳＣＡＩＴファイル３０２とアプリｊａｒファイル３０３とが記憶されている。
【００５１】
ＳＣＡＩＴファイル３０２は、デジタル放送受信装置が最初にダウンロードするファイルであり、ファイル名は「ＳＣＡＩＴ」と固定されている。なお、ＳＣＡＩＴファイル３０２のファイル名は、所定のファイル名を決めておけばよく、「ＳＣＡＩＴ」以外のファイル名を用いてもよい。ＳＣＡＩＴファイル３０２は、デジタル放送受信装置がダウンロードし実行すべきアプリケーションを規定する。つまり、ＳＣＡＩＴファイル３０２は、ＮＩＴの運用方法が異なる放送事業者・国・地域に応じた、放送を選局するためのアプリケーションを示す情報である。詳細は後述する。
【００５２】
なお、ＳＣＡＩＴファイル３０２は、本発明の「アプリケーション情報」の一例に相当する。
【００５３】
アプリｊａｒファイル３０３は、デジタル放送受信装置がダウンロードし実行すべきアプリケーションをｊａｒ形式でアーカイブしたファイルであり、ファイル名は、ＳＣＡＩＴファイル３０２内で規定され、本実施の形態では「ｓａｐｐ．ｊａｒ」となっている。なお、アプリｊａｒファイル３０３のファイル名は、所定のファイル名を決めておけばよく、「ｓａｐｐ．ｊａｒ」以外のファイル名を用いてもよい。
【００５４】
ＨＴＴＰサーバソフトウエアは、デジタル放送受信装置から送信すべきファイル名を受け取ると、そのファイルをＨＴＴＰルートディレクトリ３０１内から検索する。例えば、デジタル放送受信装置からファイル名「ＳＣＡＩＴ」のファイルを要求されると、図３に示されたＨＴＴＰルートディレクトリ３０１内からＳＣＡＩＴファイル３０２を見つけ出し、デジタル放送受信装置へ送信する。
【００５５】
ここで、図３に示されたＨＴＴＰルートディレクトリ３０１内には２つのファイルのみ保持しているが、他のファイルを保存していても良い。また、ＨＴＴＰルートディレクトリ３０１内にサブディレクトリを保持し、サブディレクトリ内にファイルを保持していても良い。
【００５６】
図４は、ＳＣＡＩＴファイル３０２の一例を示す図である。ここで、ＳＣＡＩＴファイル３０２はテキストファイルであり、１５行（行４０１〜４１５）に各種情報が記載されている。
【００５７】
行４０１は、ＳＣＡＩＴファイル３０２のバージョン番号を規定している。図４では、バージョン番号として「１」が記載されている。ＳＣＡＩＴファイル３０２の内容が更新されたときは、バージョン番号が更新される。図４のＳＣＡＩＴファイル３０２の内容が更新された場合、バージョン番号は１加算され「２」となる。なお、１加算する必要はなく、ＳＣＡＩＴファイル３０２が更新されたことが判別できればよく、２加算する、１減算する、としても本発明は実施可能である。
【００５８】
行４０２は、デジタル放送受信装置が、ＳＣＡＩＴファイル３０２が更新されていないかどうかを定期的に確認する場合の時間間隔を規定している。当該時間間隔の単位は秒であり、図４では、時間間隔は６００秒である。当該時間間隔の値が「０」の場合は、「定期的な確認不要」または「時間間隔指定無し」を意味する。図４では、当該時間間隔の単位を秒としたが、「分」や「時間」でも実施可能である。
【００５９】
行４０３〜行４０５は、ダウンロードし実行されるアプリケーションが想定しているデジタル放送受信装置が備えるソフトウエアのバージョンを表現する。図４で、デジタル放送受信装置が備えるソフトウエアのバージョンは「１．０．０」である。
【００６０】
行４０６〜行４０８は、ダウンロードし実行されるアプリケーションのバージョンを表現する。図４で、アプリケーションのバージョンは「１．１．２」である。
【００６１】
行４０９は、ダウンロードし実行されるアプリケーションを提供している組織の組織ＩＤを規定する。
【００６２】
行４１０は、ダウンロードし実行されるアプリケーションのアプリケーションＩＤを規定する。
【００６３】
行４１１は、ダウンロードし実行されるアプリケーションの名前を規定する。
【００６４】
行４１２は、ＨＴＴＰサーバ内でダウンロードすべきアプリケーションが存在するディレクトリを規定する。
【００６５】
行４１３は、ダウンロードすべきアプリケーションを格納したｊａｒファイルのファイル名を規定する。図４の行４１２及び行４１３からダウンロードするｊａｒファイルは「／ｓａｐｐ．ｊａｒ」であることがわかる。
【００６６】
行４１４は、実行されるアプリケーションのベースディレクトリを規定する。
【００６７】
行４１５は、実行されるアプリケーションの起動ファイル名を規定する。図４の行４１４及び行４１５からアプリケーションの起動ファイルは、ディレクトリ「／」にある「ｓｅｔＸｌｅｔ」ファイルである。
【００６８】
ここで、行４０１〜行４１５には、各行の先頭に、格納されている情報の識別子が記載され、「＝」を挟んで、各行の後側に当該識別子に対する値が記載されている。よって、行４０１〜行４１５の記述順は、任意の順で実施可能である。
【００６９】
また、ＳＣＡＩＴファイル３０２のフォーマットは、同等の情報を含んでいれば別のフォーマットを用いても実施可能である。また、ＳＣＡＩＴファイル３０２には、アプリケーションをよりよく制御するために、他の情報が追加されていても良い。
【００７０】
図５は、デジタル放送受信装置の具体例として受信装置Ａ１１１、受信装置Ｂ１１２、受信装置Ｃ１１３に相当するデジタル放送受信装置のハードウエア構成の一例を示すブロック図である。
【００７１】
同図に示すＣＡＴＶ  ＳＴＢ５００は、デジタル放送受信装置であるＣＡＴＶ  ＳＴＢ（ケーブルテレビ  セットトップボックス）である。つまり、ＣＡＴＶ  ＳＴＢ５００は、受信装置Ａ１１１、受信装置Ｂ１１２、又は受信装置Ｃ１１３の一例を示している。また、ＣＡＴＶ  ＳＴＢ５００は、ＱＡＭ復調部５０１、ＴＳデコーダ５０２、オーディオデコーダ５０３、ビデオデコーダ５０４、２次記憶部５０５、１次記憶部５０６、ＲＯＭ５０７、入力部５０８、ネットワーク部５０９、及びＣＰＵ５１０を備えている。
【００７２】
なお、本実施例では、ケーブルテレビを例として取り上げるが、地上波放送用受信装置、衛星用受信装置でも、本発明は実施可能である。地上波放送用受信装置・衛星用受信装置の場合、ＱＡＭ復調部５０１は、地上波放送用波用復調部、衛星波放送用波用復調部に置き換わる。また、ケーブル放送、地上波放送、衛星放送の中の複数の放送波を受信可能な放送受信装置でも、本発明は実施可能である。複数種の放送波を受信する場合、個々の放送波を復調する復調部を備える必要がある。
【００７３】
図５を参照して、ＱＡＭ復調部５０１は、ＣＰＵ５１０から指定された周波数を含むチューニング情報を用いて、放送局からＱＡＭ変調され送信されてきた信号を復調し、ＴＳデコーダ５０２に引き渡す。
【００７４】
ＴＳデコーダ５０２は、ＱＡＭ復調部５０１から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ５０３及びビデオデコーダ５０４、ＣＰＵ５１０に引き渡す。
【００７５】
ここで、ＱＡＭ復調部５０１から送信される信号はＭＰＥＧ２トランスポートストリームである。ＭＰＥＧ２トランスポートストリームの詳細は、非特許文献：ＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８−１に記載されており、本実施の形態では詳細は省略する。ＭＰＥＧ２トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットＩＤが振られている。
【００７６】
図６は、ＭＰＥＧ規格で定義されているパケットの構成図である。
【００７７】
同図に示されるパケット６００は、ＭＰＥＧ２トランスポートストリームを構成するパケットであり、固定長の１８８バイトで構成される。パケット６００の先頭４バイトがヘッダ６０１で、パケットの識別情報を格納しており、残り１８４バイトがペイロード６０２で、送信したい情報を含んでいる。ヘッダ構成６０３は、ヘッダ６０１の内訳である。先頭から１２ビット目〜２４ビット目までの１３ビットにパケットＩＤが含まれている。
【００７８】
図７は、ＭＰＥＧ２トランスポートストリームの一例を示す図であり、送られてくる複数のパケットの列を表現した模式図である。
【００７９】
パケット７０１は、ヘッダにパケットＩＤ「１」を持ち、ペイロードには映像Ａの１番目の情報が入っている。パケット７０２は、ヘッダにパケットＩＤ「２」を持ち、ペイロードには音声Ａの１番目の情報が入っている。パケット７０３は、ヘッダにパケットＩＤ「３」を持ち、ペイロードには音声Ｂの１番目の情報が入っている。
【００８０】
パケット７０４は、ヘッダにパケットＩＤ「１」を持ち、ペイロードには映像Ａの２番目の情報が入っており、これはパケット７０１の続きになっている。同様にパケット７０５、７２６、７２７も他のパケットの後続データを格納している。このように、同じパケットＩＤを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
【００８１】
図７を参照して、ＣＰＵ５１０がパケットＩＤ「１」と、出力先として「ビデオデコーダ５０４」とをＴＳデコーダ５０２に指示すると、ＴＳデコーダ５０２はＱＡＭ復調部５０１から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「１」のパケットを抽出し、ビデオデコーダ５０４に引き渡す。図７においては、映像データのみをビデオデコーダ５０４に引き渡すことになる。
【００８２】
同時に、ＣＰＵ５１０がパケットＩＤ「２」と「オーディオデコーダ５０３」とをＴＳデコーダ５０２に指示すると、ＴＳデコーダ５０２は、ＱＡＭ復調部５０１から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「２」のパケットを抽出し、オーディオデコーダ５０３に引き渡す。図７においては、音声データのみをオーディオデコーダ５０３に引き渡すことになる。
【００８３】
このパケットＩＤに応じて必要なパケットだけを取り出す処理が、ＴＳデコーダ５０２が行うフィルタリングである。ＴＳデコーダ５０２は、ＣＰＵ５１０から指示された複数のフィルタリングを同時に実行することができる。
【００８４】
図５を参照して、オーディオデコーダ５０３は、ＴＳデコーダ５０２から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行い外部に出力する。具体的には接続されたスピーカやテレビなどに音声信号を出力することになる。あるいは、デジタル−アナログ変換ではなく、ＨＤＭＩなどの出力端子の仕様に応じた信号変換を行い、信号を出力する。
【００８５】
ビデオデコーダ５０４は、ＴＳデコーダ５０２から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行い外部に出力する。具体的には、外部に接続されたモニタやテレビに映像信号を出力することになる。あるいは、デジタル−アナログ変換ではなく、ＨＤＭＩやコンポーネントなどの出力端子の仕様に応じた信号変換を行い、信号を出力する。
【００８６】
２次記憶部５０５は、具体的には、フラッシュメモリーやハードディスク等で構成され、ＣＰＵ５１０から指示されたデータやプログラムなどが保存されたり削除されたりする。また、２次記憶部５０５に保存されているデータやプログラムは、ＣＰＵ５１０に参照される。また、２次記憶部５０５に保存されているデータやプログラムは、ＣＡＴＶ  ＳＴＢ５００の電源が切断された状態でも保存されつづける。
【００８７】
１次記憶部５０６は、具体的には、ＲＡＭ等で構成され、ＣＰＵ５１０から指示されたデータやプログラムなどが一次的に保存されたり削除されたりする。また、１次記憶部５０６に保存されているデータやプログラムは、ＣＰＵ５１０に参照される。また、１次記憶部５０６に保存されているデータやプログラムは、ＣＡＴＶ  ＳＴＢ５００の電源が切断された際に、抹消される。
【００８８】
ＲＯＭ５０７は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤなどで構成される。ＲＯＭ５０７は、ＣＰＵ５１０が実行するプログラムやデータなどを格納している。
【００８９】
入力部５０８は、具体的には、フロントパネルやリモコンなどで構成され、ユーザーからの入力を受け付ける。
【００９０】
ネットワーク部５０９は、Ｅｔｈｅｒコネクタなどで構成され、ＴＣＰ  ＩＰベースのネットワーク通信を実現する。ＣＡＴＶ  ＳＴＢ５００は、ネットワーク部５０９を通してアプリサーバ１０１に接続される。
【００９１】
ＣＰＵ５１０は、ＲＯＭ５０７が記憶しているプログラムを実行する。また、ＣＰＵ５１０は、実行するプログラムの指示に従い、ＱＡＭ復調部５０１、ＴＳデコーダ５０２、オーディオデコーダ５０３、ビデオデコーダ５０４、２次記憶部５０５、１次記憶部５０６、ＲＯＭ５０７、入力部５０８、及びネットワーク部５０９を制御する。
【００９２】
図８は、ＣＡＴＶ  ＳＴＢ５００が保存するプログラム構成の構成図であり、具体的には、ＲＯＭ５０７が記憶し、ＣＰＵ５１０が実行するプログラム８００の構成図である。
【００９３】
同図に示すように、プログラム８００は、セットアッププログラム８０１、チャンネルマップライブラリ８０２、ＳＴＢプログラム８０３、及びＯＳ８０４を備えている。
【００９４】
セットアッププログラム８０１は、ＯＳ８０４に実行されるプログラムであり、アプリサーバ１０１からアプリケーションをダウンロード実行する。セットアッププログラム８０１の詳細は後述する。
【００９５】
チャンネルマップライブラリ８０２は、放送を選局するための情報である選局情報を記憶する。具体的には、チャンネルマップライブラリ８０２は、選局情報であるチャンネル情報を管理するプログラムであり、セットアッププログラム８０１からチャンネル情報を受け付け保存し、また、ＳＴＢプログラム８０３にチャンネル情報を提供する。なお、チャンネルマップライブラリ８０２は、本発明の「選局情報記憶部」の一例に相当する。
【００９６】
ＳＴＢプログラム８０３は、ＥＰＧや選局など、通常のＣＡＴＶ  ＳＴＢ機能を実現するプログラムであり、セットアッププログラム８０１が一定の処理を完了した後、ＯＳ８０４により起動される。例えば、ＳＴＢプログラム８０３は、チャンネル情報を用いて放送を選局する。なお、ＳＴＢプログラム８０３は、本発明の「選局部」の機能を有する。
【００９７】
ＯＳ８０４は、ＣＡＴＶ  ＳＴＢ５００が起動された直後に実行される基本プログラムであり、ＣＡＴＶ  ＳＴＢ５００が保有するハードウエア機能を上位層のプログラムであるセットアッププログラム８０１、チャンネルマップライブラリ８０２、ＳＴＢプログラム８０３に供給する。
【００９８】
図９は、ＣＡＴＶ  ＳＴＢ５００が保存するセットアッププログラム８０１の構成図である。
【００９９】
同図に示すように、セットアッププログラム８０１は、制御部９０１、ＳＣＡＩＴ部９０２、アプリ取得部９０３、アプリ実行部９０４、ＪａｖａＶＭ９０５、及びＪａｖａライブラリ９０６を備えている。
【０１００】
制御部９０１は、ＳＣＡＩＴ部９０２、アプリ取得部９０３及びＪａｖａＶＭ９０５を制御する、セットアッププログラム８０１内のメインプログラムであり、最初に実行されるプログラムである。
【０１０１】
まず、制御部９０１は、ＳＣＡＩＴ部９０２を起動し、アプリサーバ１０１からＳＣＡＩＴファイル３０２の情報取得を行う。
【０１０２】
制御部９０１は、ＳＣＡＩＴファイル３０２の情報取得が完了すると、アプリ取得部９０３を起動し、アプリサーバ１０１からアプリｊａｒファイル３０３を取得する。
【０１０３】
その後、制御部９０１は、アプリ実行部９０４の実行をＪａｖａＶＭ９０５に指示し、取得したアプリｊａｒファイル３０３に格納されたアプリケーションを実行する。
【０１０４】
ここで、本実施の形態では、アプリｊａｒファイル３０３に格納されたアプリケーションはＪａｖａ言語で記述されたＪａｖａプログラムとする。なお、Ｊａｖａ言語以外のＢＡＳＩＣ言語やＰＡＳＣＡＬ言語で書かれたアプリケーションでも本発明は実施可能である。アプリケーションを記述する言語は、複数種類のＣＰＵで実行可能になるよう、ＣＰＵ命令セットに依存しない言語が望ましい。Ｊａｖａ言語以外を用いる場合、ＪａｖａＶＭ９０５は、使用するプログラミング言語を逐次解釈実行できる機能を備えたバーチャルマシンが用いられる。
【０１０５】
一連の処理が完了すると、制御部９０１は、ＳＴＢプログラム８０３に、処理の完了を通知する。
【０１０６】
ＳＣＡＩＴ部９０２は、アプリサーバ１０１からＳＣＡＩＴファイル３０２を取得するプログラムであり、ＳＣＡＩＴ取得部９０２ａ、ＳＣＡＩＴ解析部９０２ｂ、及びＳＣＡＩＴ保存部９０２ｃを備えている。なお、ＳＣＡＩＴ部９０２は、本発明の「アプリケーション情報取得部」の一例に相当する。
【０１０７】
ＳＣＡＩＴ部９０２は起動されると、ＳＣＡＩＴ取得部９０２ａを起動し、アプリサーバ１０１からＳＣＡＩＴファイル３０２を、ネットワーク部５０９を使用して、１次記憶部５０６にダウンロードする。
【０１０８】
より具体的には、ＯＳ８０４は、ネットワーク部５０９を制御するネットワークプログラムを有し、ＳＣＡＩＴ取得部９０２ａはＯＳ８０４のネットワークプログラムに対して、（１）アプリサーバ１０１を指定するための、ＩＰアドレスまたはＩＰアドレスに相当するアプリサーバ１０１の名前などの情報と（２）ＳＣＡＩＴファイル３０２ファイルのファイル名とを指定し、１次記憶部５０６へのＳＣＡＩＴファイル３０２のダウンロードを依頼する。
【０１０９】
本実施の形態では、ＨＴＴＰプロトコルが使用されるので、ＯＳ８０４のネットワークプログラムは、ＨＴＴＰプロトコルを用いて、ＳＣＡＩＴファイル３０２を１次記憶部５０６へダウンロードする。
【０１１０】
ＳＣＡＩＴ取得部９０２ａがＳＣＡＩＴファイル３０２のダウンロードを完了すると、ＳＣＡＩＴ解析部９０２ｂは、ダウンロードされたＳＣＡＩＴファイル３０２を読み込み解析する。図４を参照して、ＳＣＡＩＴファイル３０２には、各行に格納している情報の識別子と対応する値が書かれているので、ＳＣＡＩＴ解析部９０２ｂは、１行ずつ読み込み識別子を認識し、対応する値を読み取る。そして、ＳＣＡＩＴ解析部９０２ｂは、読み取ったＳＣＡＩＴファイル３０２の情報を、ＳＣＡＩＴ保存部９０２ｃのプログラム内の変数に格納する。
【０１１１】
ＳＣＡＩＴ保存部９０２ｃは、具体的には、１次記憶部５０６内の記憶領域であり、プログラムの変数に格納されたＳＣＡＩＴファイル３０２の情報を保存する。
【０１１２】
図１０は、ＳＣＡＩＴ保存部９０２ｃが保持するデータの一例を示す図である。つまり、同図は、図４のＳＣＡＩＴファイル３０２が読み込まれ、ＳＣＡＩＴ保存部９０２ｃが保持している状態の一例を示す図である。
【０１１３】
同図に示すように、ＳＣＡＩＴファイル３０２の情報は、構造体ｓｃａｉｔ内のメンバー変数に格納されている。
【０１１４】
アプリ取得部９０３は、放送を選局するためのアプリケーションを保持するアプリサーバ１０１から当該アプリケーションであるアプリｊａｒファイル３０３を取得するプログラムである。具体的には、アプリ取得部９０３は、ＳＣＡＩＴ部９０２が取得したＳＣＡＩＴファイル３０２に基づいて、ＳＣＡＩＴファイル３０２で示されるアプリｊａｒファイル３０３をアプリサーバ１０１から取得する。
【０１１５】
このアプリ取得部９０３は、アプリダウンロード部９０３ａ、アプリ解凍部９０３ｂ、及びアプリ保存部９０３ｃを備えている。なお、アプリ取得部９０３は、本発明の「アプリケーション取得部」の一例に相当する。
【０１１６】
アプリ取得部９０３は起動されると、アプリダウンロード部９０３ａを起動しアプリサーバ１０１からネットワーク部５０９を使用して、アプリｊａｒファイル３０３を１次記憶部５０６にダウンロードする。
【０１１７】
具体的には、ＯＳ８０４は、ネットワーク部５０９を制御するネットワークプログラムを有し、アプリダウンロード部９０３ａはＯＳ８０４のネットワークプログラムに対して、（１）アプリサーバ１０１を指定するための、ＩＰアドレスまたはＩＰアドレスに相当するアプリサーバ１０１の名前などの情報と（２）アプリｊａｒファイル３０３のファイル名とを指定し、１次記憶部５０６へのアプリｊａｒファイル３０３のダウンロードを依頼する。
【０１１８】
本実施の形態では、ＨＴＴＰプロトコルが使用されるので、ＯＳ８０４のネットワークプログラムは、ＨＴＴＰプロトコルを用いて、アプリｊａｒファイル３０３を１次記憶部５０６へダウンロードする。
【０１１９】
ここで、アプリダウンロード部９０３ａは、ＳＣＡＩＴ保存部９０２ｃを参照し、アプリｊａｒファイル３０３のファイル名を取得する。
【０１２０】
具体的には、図１０を参照して、アプリダウンロード部９０３ａは、ＨＴＴＰサーバ内でダウンロードすべきアプリケーションが存在するディレクトリ名をメンバー変数「ａｐｐ＿ｓｒｃｄｉｒ」から取得し、アプリｊａｒファイル３０３のファイル名をメンバー変数「ａｐｐ＿ａｒｃｈｉｖｅ」から取得する。そして、アプリダウンロード部９０３ａは、この２つの文字列を連結し、ファイル名「／ｓａｐｐ．ｊａｒ」を作成する。
【０１２１】
アプリ解凍部９０３ｂは、アプリダウンロード部９０３ａがダウンロードしたアプリｊａｒファイル３０３を解凍し、アプリ保存部９０３ｃに保存する。アプリｊａｒファイル３０３はｊａｒ形式のアーカイブファイルであり、内部には通常、１以上のアプリケーション実行ファイルを含む。また、アプリｊａｒファイル３０３は、実行ファイル以外にもデータファイルを含む場合がある。これらのファイルを総称してアプリケーションと呼ぶ。
【０１２２】
アプリ保存部９０３ｃは、具体的には、１次記憶部５０６内の記憶領域であり、アプリ解凍部９０３ｂが解凍したアプリケーションのファイルを、ファイルシステム内に格納する。
【０１２３】
図１１は、アプリ保存部９０３ｃが保持するデータの一例を示す図である。つまり、同図は、ｓａｐｐ．ｊａｒから解凍されたことにより取り出されたアプリケーションのファイルがアプリ保存部９０３ｃに格納されている一例を示す図である。
【０１２４】
図１１の例では、取り出されたファイルは、ディレクトリ「／ｓａｐｐ」１１０１内に格納される。「／ｓａｐｐ」１１０１直下には、２つのファイル「ｓｅｔＸｌｅｃｔ．ｃｌａｓｓ」１１０２及び「ｉｎｉｔ．ｃｌａｓｓ」１１０３と、２つのディレクトリ「ｓｕｂ」１１０４及び「ｄａｔａ」１１０７とが格納されている。
【０１２５】
また、ディレクトリ「ｓｕｂ」１１０４は、２つのファイル「ａ．ｃｌａｓｓ」１１０５と「ｂ．ｃｌａｓｓ」１１０６とを格納し、ディレクトリ「ｄａｔａ」１１０７は、２つのファイル「ｘ．ｔｘｔ」１１０８と「ｙ．ｐｎｇ」１１０９とを格納している。ここで、ファイルの格納場所は、「／ｓａｐｐ」以下としたが、他のディレクトリ名でも本発明は実施可能である。
【０１２６】
アプリ実行部９０４は、アプリ取得部９０３が取得したアプリケーションを実行する。具体的には、アプリ実行部９０４は、Ｊａｖａ言語で書かれたＪａｖａプログラムであり、ＪａｖａＶＭ９０５によって逐次実行される。アプリ実行部９０４は、ＪＮＩ（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。
【０１２７】
なお、ＪＮＩは、非特許文献：書籍「Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」（Ｊａｖａ  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｌｅａｓｅ  １．１  （Ｒｅｖｉｓｅｄ  Ｍａｙ，  １９９７）  Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ  Ｉｎｃ  ２５５０  Ｇａｒｃｉａ  Ａｖｅｎｕｅ，  Ｍｏｕｎｔａｉｎ  Ｖｉｅｗ，  Ｃａｌｉｆｏｒｎｉａ  ９４０４３−１１００  Ｕ．Ｓ．Ａ．）等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、アプリ実行部９０４は、本発明の「アプリケーション実行部」の一例に相当する。
【０１２８】
アプリ実行部９０４は、ＪＮＩを通して、ＳＣＡＩＴ保存部９０２ｃから、起動すべきアプリケーションの情報を取得する。図１０を参照して、具体的には、アプリ実行部９０４は、メンバー変数「ａｐｐ．ｂａｓｅｄｉｒ」の値と「ａｐｐ.ｉｎｉｔｐａｔｈ」の値を取得する。
【０１２９】
そして、アプリ実行部９０４は、アプリ保存部９０３ｃが保存しているファイルから、メンバー変数「ａｐｐ．ｂａｓｅｄｉｒ」の値と「ａｐｐ．ｉｎｉｔｐａｔｈ」の値を用いて、アプリケーションを起動する。
【０１３０】
ここで、メンバー変数「ａｐｐ．ｂａｓｅｄｉｒ」は「／」であるので、アプリの格納位置である「／ｓａｐｐ」の位置にアプリケーションが存在する。次にメンバー変数「ａｐｐ．ｉｎｉｔｐａｔｈ」の値が「ｓｅｔＸｌｅｔ」であるので、Ｊａｖａプログラムの拡張子である「．ｃｌａｓｓ」を付加し「ｓｅｔＸｌｅｔ．ｃｌａｓｓ」をアプリケーションの起動ファイルとして、ＪａｖａＶＭ９０５を用いて、Ｊａｖａプログラムとして読み込む。
【０１３１】
ここで、アプリケーションは、所定の関数（Ｊａｖａ言語では「メソッド」と呼ぶ）を備えていることとする。ここでは「ｐｕｂｌｉｃ  ｂｏｏｌｅａｎ  ｓｅａｒｃｈ（）」という関数を備えていることとする。他の名前や型でも本発明は実施可能である。
【０１３２】
アプリ実行部９０４は、アプリケーションの起動ファイルに実装されている「ｐｕｂｌｉｃ  ｂｏｏｌｅａｎ  ｓｅａｒｃｈ（）」という関数を呼び出す。アプリ実行部９０４は、そのアプリケーションの実行が終了すると、制御部９０１にアプリケーションの実行が完了したことを通知する。
【０１３３】
ＪａｖａＶＭ９０５は、Ｊａｖａ言語で記述されたアプリケーションであるＪａｖａアプリケーションを、アプリ実行部９０４に実行させる。具体的には、ＪａｖａＶＭ９０５は、Ｊａｖａ言語で記述されたプログラムを逐次解析し実行するＪａｖａバーチャルマシンである。
【０１３４】
Ｊａｖａ言語で記述されたプログラムはバイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Ｊａｖａバーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のＪａｖａバーチャルマシンは、バイトコードをＣＰＵ５１０が理解可能な実行形式に翻訳してから、ＣＰＵ５１０に引渡し、実行することも行う。
【０１３５】
ＪａｖａＶＭ９０５は、制御部９０１に、実行するＪａｖａプログラムを指定され起動される。本実施の形態では、制御部９０１は、実行するＪａｖａプログラムとしてアプリ実行部９０４を指定する。
【０１３６】
なお、Ｊａｖａ言語の詳細は、非特許文献：書籍「Ｊａｖａ  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【０１３７】
また、ＪａｖａＶＭ自体の詳細な動作などは、非特許文献：「Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ４−８９４７１−３５６―Ｘ）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【０１３８】
Ｊａｖａライブラリ９０６は、ＪａｖａＶＭ９０５によりアプリケーションが実行されることで、チャンネル情報を生成する。具体的には、Ｊａｖａライブラリ９０６は、ＲＯＭ５０７に格納されている複数のＪａｖａライブラリの集合である。本実施の形態では、Ｊａｖａライブラリ９０６は、チューナ９０６ａ、セクションフィルタ部９０６ｂ、ＳＩ検索部９０６ｃ、チャンネル情報保存部９０６ｄ等を含んでいる。なお、Ｊａｖａライブラリ９０６は、本発明の「選局情報生成部」の一例に相当する。
【０１３９】
チューナ９０６ａ、セクションフィルタ部９０６ｂ及びＳＩ検索部９０６ｃの１つの実装例としては、ＤＶＢ−ＭＨＰ規格（正式には、ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）に規定されているｏｒｇ．ｄａｖｉｃ．ｎｅｔ．ｔｕｎｉｎｇパッケージ、ｏｒｇ．ｄａｖｉｃ．ｍｐｅｇ．ｓｅｃｔｉｏｎパッケージ、又はｏｒｇ．ｄｖｂ．ｓｉパッケージがある。ここでは、各Ｊａｖａライブラリの機能を中心に紹介する。
【０１４０】
チューナ９０６ａは、アプリケーションから周波数およびチューニングに必要な物理情報を受付け、ＱＡＭ復調部５０１を用いて、チューニングを行うＪａｖａライブラリである。
【０１４１】
セクションフィルタ部９０６ｂは、アプリケーションからフィルタリング条件を受け取り、ＴＳデコーダ５０２を用いて、ＭＰＥＧ２トランスポートストリームの中からＭＰＥＧ２セクション情報を取得するＪａｖａライブラリである。
【０１４２】
番組編成情報やデータ放送用のデータ等の情報は、ＭＰＥＧ２セクションと呼ばれる形式を用いて表現される。ＭＰＥＧ２セクションが実際に伝送される際、ＭＰＥＧ２セクションのサイズが一つのパケットのペイロードよりも大きい場合は、分割されて複数のパケットのペイロードに格納される。
【０１４３】
図１２は、ＭＰＥＧ規格で定義されているセクションの構成図である。具体的には、同図は、ＭＰＥＧ２セクション１２０１を伝送する際の分割例を表す図である。
【０１４４】
ＭＰＥＧ２セクション１２０１は、一つのパケット内のペイロードに格納して伝送するには大きい。このため、同図に示すように、ＭＰＥＧ２セクション１２０１は、セクション分割Ａ１２０２ａ、セクション分割Ｂ１２０２ｂ、及びセクション分割Ｃ１２０２ｃに分割され、同一ＰＩＤ（Ｐａｃｋｅｔ  ＩＤ）を持つ三つのパケット１２０３〜１２０５によって伝送される。
【０１４５】
図１３は、ＭＰＥＧ規格で定義されているＭＰＥＧ２セクションの構造を示す図である。
【０１４６】
ＭＰＥＧ２セクション１３００は、ヘッダ１３０１及びペイロード１３０２を備えている。ヘッダ１３０１は、ＭＰＥＧ２セクションの制御情報を保持する。ヘッダ１３０１の構成は、ヘッダ構成１３０３によって表現される。ペイロード１３０２は、ＭＰＥＧ２セクション１３００が伝送するデータを保持する。
【０１４７】
ヘッダ構成１３０３に存在するｔａｂｌｅ＿ｉｄは、ＭＰＥＧ２セクション１３００の種類を表現し、さらにｔａｂｌｅ＿ｉｄ＿ｅｘｔｅｎｓｉｏｎはｔａｂｌｅ＿ｉｄが等しいＭＰＥＧ２セクション同士を区別する際に用いられる拡張識別子である。
【０１４８】
図１３を参照して、セクションフィルタ部９０６ｂは、ｔａｂｌｅ＿ｉｄやｓｅｃｔｉｏｎ＿ｎｕｍｂｅｒなどの数値がフィルタリング条件として合致するＭＰＥＧ２セクションを抽出し、アプリケーションにバイナリーデータとして提供する。
【０１４９】
ＳＩ検索部９０６ｃは、ＴＳデコーダ５０２を用いて、ＭＰＥＧ２トランスポートストリームの中から、ＭＰＥＧ規格やＤＶＢ規格で規定されたＳＩ（Ｓｅｒｖｉｃｅ  Ｉｎｆｏｒｍａｔｉｏｎ）テーブル情報を取得するＪａｖａライブラリである。
【０１５０】
ＭＰＥＧ規格やＤＶＢ規格では、特定のｔａｂｌｅ＿ｉｄを持つＭＰＥＧ２セクションは、特定の情報を格納することを規定している。これらをＳＩテーブル情報と呼ぶ。ＤＶＢ規格（ＥＮ  ３００  ４６８  Ｖ１．３．１）を参照すると、１５種類のＳＩテーブルが規定されている。その一部を紹介する。
【０１５１】
ＰＡＴはＰｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅの略で、各トランスポートストリームに１種類エンコードされるテーブルである。
【０１５２】
図１４は、ＭＰＥＧ規格で定義されているＰＡＴのフォーマットを示す図である。
【０１５３】
ＰＡＴは、トランスポートストリームの識別子であるｔｒａｎｓｐｏｒｔ＿ｉｄと、トランスポートストリームにエンコードされているＰＭＴの識別子であるｐｒｏｇｒａｍ＿ｎｕｍｂｅｒと、ＰＭＴのパケットＩＤとの組を、トランスポートストリームにエンコードされているＰＭＴの種類数だけ規定する。
【０１５４】
ＰＭＴは、Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅの略で、各トランスポートストリームにチャンネル数だけエンコードされるテーブルである。
【０１５５】
図１５は、ＭＰＥＧ規格で定義されているＰＭＴのフォーマットを示す図である。
【０１５６】
１つのＰＭＴが１つのチャンネルを表現しており、ＰＭＴはチャンネルの識別子及び、チャンネルに含まれる映像、音声のパケットを規定する。
【０１５７】
ＮＩＴはＮｅｔｗｏｒｋ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略である。
【０１５８】
図１６は、ＭＰＥＧ規格で定義されているＮＩＴのフォーマットを示す図である。
【０１５９】
ＮＩＴは、放送送信局から放送されている全周波数の情報を規定し、トランスポートストリームを表現する識別子と、そのトランスポートストリームを配信している周波数及び各種物理情報の組を規定する。
【０１６０】
ＳＩ検索部９０６ｃは、アプリケーションから検索したいＳＩテーブルの種別を受け取り、対応するＳＩテーブルの情報をトランスポートストリーム中から取り出し、アプリケーションに引き渡す。ここで、ＳＩ検索部９０６ｃが引き渡すＳＩテーブルの情報のフォーマットは任意でよい。つまり、ＳＩ検索部９０６ｃは、バイナリー形式や、ＳＩテーブル固有の情報に適した構造体変数に情報を格納して引き渡しても良い。
【０１６１】
チャンネル情報保存部９０６ｄは、アプリケーションからチャンネル情報を受け取り、チャンネルマップライブラリ８０２に保存する。
【０１６２】
図１７は、チャンネル情報保存部９０６ｄのＡＰＩの一例を示す図である。
【０１６３】
同図に示すように、チャンネル情報保存部９０６ｄのＡＰＩでは、Ｍａｐという名前のクラスが定義され、このクラスの中に６つのメソッドが定義されている。
【０１６４】
ａｄｄＣｈａｎｎｅｌメソッド１７０１は、４つの引数を受け付け、１番目の引数ｆは周波数、２番目の引数ｎｏはチャンネル番号、３番目の引数ｔｓｉｄはＰＡＴに含まれるトランスポートストリームの識別子、４番目の引数ｓｉｄはＰＭＴに含まれるチャンネルの識別子である。
【０１６５】
アプリケーションがａｄｄＣｈａｎｎｅｌメソッド１７０１を呼び出すと、ａｄｄＣｈａｎｎｅｌメソッド１７０１は、受け取った周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組をチャンネル情報としてチャンネルマップライブラリ８０２に登録する。
【０１６６】
図１８は、チャンネルマップライブラリ８０２が保持するチャンネル情報の一例を示す図である。具体的には、同図は、ａｄｄＣｈａｎｎｅｌメソッド１７０１が受け付けた４組のチャンネル情報が、チャンネルマップライブラリ８０２に登録された状態を表す図である。
【０１６７】
図１８を参照して、チャンネル情報１８０１は、周波数「５６７００００００」Ｈｚ、チャンネル番号「１」、トランスポートストリームの識別子「１」、チャンネルの識別子「１」の組である。同様に、チャンネル情報１８０２は、周波数「５６７００００００」Ｈｚ、チャンネル番号「２」、トランスポートストリームの識別子「１」、チャンネルの識別子「２」の組である。
【０１６８】
ｒｅｍｏｖｅＣｈａｎｎｅｌメソッド１７０２も、ａｄｄＣｈａｎｎｅｌメソッド１７０１と同じ４つの引数を受け付ける。アプリケーションがｒｅｍｏｖｅＣｈａｎｎｅｌメソッド１７０２を呼び出すと、ｒｅｍｏｖｅＣｈａｎｎｅｌメソッド１７０２は、受け取った周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組をチャンネルマップライブラリ８０２から削除する。
【０１６９】
例えば、図１８の状態で、ｒｅｍｏｖｅＣｈａｎｎｅｌメソッド１７０２が引数として、周波数「５６７００００００」Ｈｚ、チャンネル番号「２」、トランスポートストリームの識別子「１」、チャンネルの識別子「２」を受け取ると、図１８の中でチャンネル情報１８０２が削除される。
【０１７０】
ｇｅｔｆメソッド１７０３は、引数ｉｎｄｅｘとして受け取り、引数ｉｎｄｅｘの番号で登録されたチャンネル情報の周波数を返す。例えば、ｇｅｔｆメソッド１７０３は、図１８の状態で、引数ｉｎｄｅｘの値として「１」を受け取ると、１番目のチャンネル情報であるチャンネル情報１８０１から、周波数「５６７００００００」Ｈｚと取得し、アプリケーションに返す。
【０１７１】
ｇｅｔｎｏメソッド１７０４は、引数ｉｎｄｅｘとして受け取り、引数ｉｎｄｅｘの番号で登録されたチャンネル情報のチャンネル番号を返す。例えば、ｇｅｔｎｏメソッド１７０４は、図１８の状態で、引数ｉｎｄｅｘの値として「１」を受け取ると、１番目のチャンネル情報であるチャンネル情報１８０１から、チャンネル番号「１」と取得し、アプリケーションに返す。
【０１７２】
ｇｅｔｔｓｉｄメソッド１７０５は、引数ｉｎｄｅｘとして受け取り、引数ｉｎｄｅｘの番号で登録されたチャンネル情報のトランスポートストリームの識別子を返す。例えば、ｇｅｔｔｓｉｄメソッド１７０５は、図１８の状態で、引数ｉｎｄｅｘの値として「１」を受け取ると、１番目のチャンネル情報であるチャンネル情報１８０１から、トランスポートストリームの識別子「１」と取得し、アプリケーションに返す。
【０１７３】
ｇｅｔｓｉｄメソッド１７０６は、引数ｉｎｄｅｘとして受け取り、引数ｉｎｄｅｘの番号で登録されたチャンネル情報のチャンネルの識別子を返す。例えば、ｇｅｔｓｉｄメソッド１７０６は、図１８の状態で、引数ｉｎｄｅｘの値として「１」を受け取ると、１番目のチャンネル情報であるチャンネル情報１８０１から、チャンネルの識別子「１」と取得し、アプリケーションに返す。
【０１７４】
本実施の形態で、チャンネル情報保存部９０６ｄは、周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組をチャンネル情報として保存したが、実際には、他の情報、具体的にはチューニングに必要な物理情報も同時に保存する。例えば、衛星放送の場合、周波数以外に、軌道位置、東西フラグ、両極性、変調方式、シンボルレートなどの情報がチューニングの際に使用され、チャンネル情報保存部９０６ｄは、これら情報も保存する。
【０１７５】
チャンネルマップライブラリ８０２は、チューニングに必要なチャンネル情報を、１次記憶部５０６または、２次記憶部５０５に保持すると共に、セットアッププログラム８０１及びＳＴＢプログラム８０３に対して、チャンネル情報の保存・検索機能を提供する。チャンネルマップライブラリ８０２は、チャンネル情報を、ＣＡＴＶ  ＳＴＢ５００が電源ＯＦＦ時も保持したい場合は、２次記憶部５０５を使用し、保持不要な場合は、１次記憶部５０６を使用する。
【０１７６】
図１９は、チャンネルマップライブラリ８０２のＡＰＩの一例を示す図である。具体的には、同図は、チャンネルマップライブラリ８０２が備える機能を表すＣ言語で記述されたＡＰＩの一例を示す図である。
【０１７７】
同図に示すように、関数１９０１から１９０６の６つのＡＰＩが規定されており、これらは、チャンネル情報保存部９０６ｄのＡＰＩでのメソッド１７０１から１７０６に相当する。
【０１７８】
ａｄｄＣｈａｎｎｅｌ関数１９０１は、４つの引数を受け付け、１番目の引数ｆは周波数、２番目の引数ｎｏはチャンネル番号、３番目の引数ｔｓｉｄはＰＡＴに含まれるトランスポートストリームの識別子、４番目の引数ｓｉｄはＰＭＴに含まれるチャンネルの識別子である。
【０１７９】
セットアッププログラム８０１またはＳＴＢプログラム８０３がａｄｄＣｈａｎｎｅｌ関数１９０１を呼び出すと、ａｄｄＣｈａｎｎｅｌ関数１９０１は、受け取った周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組をチャンネル情報として１次記憶部５０６または２次記憶部５０５に保存する。
【０１８０】
図１８は、４組のチャンネル情報がチャンネルマップライブラリ８０２、実際には１次記憶部５０６または２次記憶部５０５に記憶された状態を表す。図１８を参照して、チャンネル情報１８０１は、周波数「５６７００００００」Ｈｚ、チャンネル番号「１」、トランスポートストリームの識別子「１」、チャンネルの識別子「１」の組である。同様に、チャンネル情報１８０２は、周波数「５６７００００００」Ｈｚ、チャンネル番号「２」、トランスポートストリームの識別子「１」、チャンネルの識別子「２」の組である。
【０１８１】
ｒｅｍｏｖｅＣｈａｎｎｅｌ関数１９０２も、ａｄｄＣｈａｎｎｅｌ関数１９０１と同じ４つの引数を受け付ける。セットアッププログラム８０１またはＳＴＢプログラム８０３がｒｅｍｏｖｅＣｈａｎｎｅｌ関数１９０２を呼び出すと、ｒｅｍｏｖｅＣｈａｎｎｅｌ関数１９０２は、受け取った周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組を１次記憶部５０６または２次記憶部５０５から削除する。
【０１８２】
例えば、図１８の状態で、ｒｅｍｏｖｅＣｈａｎｎｅｌ関数１９０２が引数として、周波数「５６７００００００」Ｈｚ、チャンネル番号「２」、トランスポートストリームの識別子「１」、チャンネルの識別子「２」を受け取ると、図１８の中でチャンネル情報１８０２が削除される。
【０１８３】
ｇｅｔｆ関数１９０３は、引数ｉｎｄｅｘとして受け取り、引数ｉｎｄｅｘの番号で登録されたチャンネル情報の周波数を返す。例えば、ｇｅｔｆ関数１９０３は、図１８の状態で、引数ｉｎｄｅｘの値として「１」を受け取ると、１番目のチャンネル情報であるチャンネル情報１８０１から、周波数「５６７００００００」Ｈｚと取得し、セットアッププログラム８０１またはＳＴＢプログラム８０３に返す。
【０１８４】
ｇｅｔｎｏ関数１９０４は、引数ｉｎｄｅｘとして受け取り、引数ｉｎｄｅｘの番号で登録されたチャンネル情報のチャンネル番号を返す。例えば、ｇｅｔｎｏ関数１９０４は、図１８の状態で、引数ｉｎｄｅｘの値として「１」を受け取ると、１番目のチャンネル情報であるチャンネル情報１８０１から、チャンネル番号「１」と取得し、セットアッププログラム８０１またはＳＴＢプログラム８０３に返す。
【０１８５】
ｇｅｔｔｓｉｄ関数１９０５は、引数ｉｎｄｅｘとして受け取り、引数ｉｎｄｅｘの番号で登録されたチャンネル情報のトランスポートストリームの識別子を返す。例えば、ｇｅｔｔｓｉｄ関数１９０５は、図１８の状態で、引数ｉｎｄｅｘの値として「１」を受け取ると、１番目のチャンネル情報であるチャンネル情報１８０１から、トランスポートストリームの識別子「１」と取得し、セットアッププログラム８０１またはＳＴＢプログラム８０３に返す。
【０１８６】
ｇｅｔｓｉｄ関数１９０６は、引数ｉｎｄｅｘとして受け取り、引数ｉｎｄｅｘの番号で登録されたチャンネル情報のチャンネルの識別子を返す。例えば、ｇｅｔｓｉｄ関数１９０６は、図１８の状態で、引数ｉｎｄｅｘの値として「１」を受け取ると、１番目のチャンネル情報であるチャンネル情報１８０１から、チャンネルの識別子「１」と取得し、セットアッププログラム８０１またはＳＴＢプログラム８０３に返す。
【０１８７】
本実施の形態で、チャンネルマップライブラリ８０２は、周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組をチャンネル情報として保存し、６つのＡＰＩのみを提供しているが、実際には、他の情報、具体的にはチューニングに必要な物理情報も同時に保存し、それに対応するＡＰＩも提供する。例えば、衛星放送の場合、周波数以外に、軌道位置、東西フラグ、両極性、変調方式、シンボルレートなどの情報がチューニングの際に使用され、チャンネル情報保存部９０６ｄは、これら情報も保存する。また、チャンネル情報保存部９０６ｄは、チューニングに必要な物理情報以外の情報を保存してもよい。また、チャンネルマップライブラリ８０２は、他の形式のＡＰＩを提供しても本発明は実施可能である。
【０１８８】
図２０は、ＣＡＴＶ  ＳＴＢ５００が保存するＳＴＢプログラム８０３の一例を示す構成図である。
【０１８９】
同図に示すように、ＳＴＢプログラム８０３は、制御部２００１、チャンネル情報取得部２００２、チャンネル再生部２００３、チャンネル保持部２００４、及びチャンネル変更部２００５を備えている。
【０１９０】
制御部２００１は、チャンネル情報取得部２００２、チャンネル再生部２００３、チャンネル保持部２００４、及びチャンネル変更部２００５を制御するＳＴＢプログラム８０３内のメインプログラムであり、最初に実行されるプログラムである。
【０１９１】
まず、制御部２００１は、チャンネル情報取得部２００２を起動し、チャンネルマップライブラリ８０２からチャンネル情報の取得を行う。
【０１９２】
次に制御部２００１は、チャンネル再生部２００３を起動し、放送波を受信し、映像・音声の再生を開始する。
【０１９３】
その後、制御部２００１は、チャンネル変更部２００５を起動し、ユーザーのチャンネル変更要求の受付を開始する。
【０１９４】
チャンネル情報取得部２００２は起動されると、チャンネルマップライブラリ８０２から全チャンネル情報を取得することで、選局可能なチャンネル情報のリストを作成する。
【０１９５】
例えば、チャンネルマップライブラリ８０２が図１８に示す４つのチャンネル情報１８０１〜１８０４を保持しているとすると、チャンネル情報取得部２００２は選局可能なチャンネルが４つあり、そのチャンネル番号が「１」「２」「３」「４」であることを理解する。具体的には、図２１に示すように、チャンネル情報取得部２００２は、チャンネル番号「１」から「４」のリストを作成する。
【０１９６】
チャンネル再生部２００３は、放送波を受信し映像・音声の再生を行う。チャンネル再生部２００３は、制御部２００１から、映像・音声の再生の開始指示を受け付けると、チャンネル保持部２００４を参照し、前回再生したチャンネルのチャンネル番号を取得する。
【０１９７】
例えば、前回再生したチャンネルのチャンネル番号が「２」とすると、チャンネル再生部２００３は、チャンネル情報取得部２００２からチャンネル番号が「２」のチャンネル情報を取得する。図１８を参照し、チャンネル再生部２００３は、チャンネル番号が「２」のチャンネル情報である周波数「５６７００００００」Ｈｚ、トランスポートストリームの識別子「１」、チャンネルの識別子「２」を取得する。
【０１９８】
次にチャンネル再生部２００３は、ＱＡＭ復調部５０１に取得した周波数「５６７００００００」Ｈｚを与え、チューニングを行う。
【０１９９】
次にチャンネル再生部２００３は、ＴＳデコーダ５０２を用いて受信しているトランスポートストリームの中から、ＰＡＴを取得し、ＰＡＴ中のトランスポートストリームの識別子を取得し、チャンネル情報のトランスポートストリームの識別子と比較し、所望のトランスポートストリームにチューニングできていることを確認する。
【０２００】
次にチャンネル再生部２００３は、ＴＳデコーダ５０２を用いて受信しているトランスポートストリームの中から、チャンネルの識別子「２」を保持するＰＭＴを取得する。ＰＭＴの内部には、再生すべき映像と音声のパケットＩＤが規定されている。チャンネル再生部２００３は、再生すべき映像と音声のパケットＩＤを取得する。
【０２０１】
そして、チャンネル再生部２００３は、取得した音声のパケットＩＤをＴＳデコーダ５０２に指定し、オーディオデコーダ５０３に引き渡すように指示する。また、チャンネル再生部２００３は、オーディオデコーダ５０３に音声再生を開始するよう指示し、音声の再生を実現する。
【０２０２】
また、チャンネル再生部２００３は、取得した映像のパケットＩＤをＴＳデコーダ５０２に指定し、ビデオデコーダ５０４に引き渡すように指示する。また、チャンネル再生部２００３は、ビデオデコーダ５０４に映像再生を開始するよう指示し、映像の再生を実現する。
【０２０３】
チャンネル再生部２００３が、チャンネルの再生指示を受けた際、チャンネル保持部２００４がチャンネル番号を保持していない場合、チャンネル再生部２００３はチャンネル情報取得部２００２から最初のチャンネル情報のチャンネル番号を取得し、チャンネル保持部２００４に保存した後、上記記載の通り、チャンネルの再生を実施する。
【０２０４】
チャンネル再生部２００３は、チャンネル変更部２００５からもチャンネル再生の指示を受け付ける。チャンネル変更部２００５からのチャンネル再生の指示は（１）前のチャンネルの再生指示、（２）次のチャンネルの再生指示、（３）特定のチャンネル番号のチャンネルの再生指示の３種類ある。
【０２０５】
チャンネル再生部２００３は、前のチャンネルの再生指示を受け付けると、チャンネル保持部２００４からチャンネル番号を取得し、チャンネル情報取得部２００２から前のチャンネルのチャンネル番号を取得し、チャンネル保持部２００４に保存した後、制御部２００１からの再生指示を受け付けた時と同じ手順で、そのチャンネル番号のチャンネルの再生を行う。
【０２０６】
例えば、チャンネル保持部２００４がチャンネル番号「２」を保持し、チャンネル情報取得部２００２が図２１のチャンネル情報のリストを保持していたとすると、チャンネル情報取得部２００２は、前のチャンネルのチャンネル番号「１」をチャンネル再生部２００３に返す。チャンネル再生部２００３は、チャンネル番号「１」をチャンネル保持部２００４に保存し、チャンネル番号「１」のチャンネルの再生指示を行う。
【０２０７】
チャンネル再生部２００３は、次のチャンネルの再生指示を受け付けると、チャンネル保持部２００４からチャンネル番号を取得し、チャンネル情報取得部２００２から次のチャンネルのチャンネル番号を取得し、チャンネル保持部２００４に保存した後、制御部２００１からの再生指示を受け付けた時と同じ手順で、そのチャンネル番号のチャンネルの再生を行う。
【０２０８】
例えば、チャンネル保持部２００４がチャンネル番号「２」を保持し、チャンネル情報取得部２００２が図２１のチャンネル情報のリストを保持していたとすると、チャンネル情報取得部２００２は、次のチャンネルのチャンネル番号「３」をチャンネル再生部２００３に返す。チャンネル再生部２００３はチャンネル番号「３」をチャンネル保持部２００４に保存し、チャンネル番号「３」のチャンネルの再生指示を行う。
【０２０９】
チャンネル再生部２００３は、特定のチャンネル番号のチャンネルの再生指示を受け付けると、受け付けたチャンネルのチャンネル情報が存在するか、チャンネル情報取得部２００２から取得する。もし、受け付けたチャンネル番号が無い場合は、チャンネル再生部２００３は、再生しているチャンネルの変更は行わない。もし、受け付けたチャンネル番号があれば、チャンネル再生部２００３は、受け付けたチャンネル番号をチャンネル保持部２００４に保存した後、制御部２００１からの再生指示を受け付けた時と同じ手順で、そのチャンネル番号のチャンネルの再生を行う。
【０２１０】
例えば、チャンネル再生部２００３がチャンネル番号「５」を受け付け、チャンネル情報取得部２００２が図２１のチャンネル情報のリストを保持していたとすると、チャンネル再生部２００３は、チャンネル番号「５」がチャンネル情報のリストに無いため、処理を終了し、現状のチャンネル再生状態を保持する。
【０２１１】
また、チャンネル再生部２００３がチャンネル番号「３」を受け付け、チャンネル情報取得部２００２が図２１のチャンネル情報のリストを保持していたとすると、チャンネル再生部２００３は、チャンネル番号「３」がチャンネル情報のリストにあるので、チャンネル番号「３」をチャンネル保持部２００４に保存した後、制御部２００１からの再生指示を受け付けた時と同じ手順で、チャンネル番号「３」のチャンネルの再生を行う。
【０２１２】
チャンネル保持部２００４は、チャンネル番号を２次記憶部５０５に記憶する。
【０２１３】
図２２は、チャンネル保持部２００４が保持するデータの一例を示す図である。具体的には、同図は、チャンネル保持部２００４がチャンネル番号を保持している状態を表す図である。
【０２１４】
同図に示すように、チャンネル保持部２００４は、チャンネル番号「２」を保持している。
【０２１５】
チャンネル変更部２００５は、ユーザーからのチャンネル変更を入力部５０８から受け取り、チャンネル再生部２００３に、再生するチャンネルの変更を指示する。
【０２１６】
図２３は、入力部５０８の一例であるリモコン２３００の概観図である。
【０２１７】
同図に示すように、リモコン２３００は、次チャンネルボタン２３０１、前チャンネルボタン２３０２、「１」〜「１２」の１２種類のチャンネルボタン２３１１など、複数のボタンを備える。
【０２１８】
図２３を参照して、ユーザーが次チャンネルボタン２３０１を押下すると、チャンネル変更部２００５は、チャンネル再生部２００３に次のチャンネルの再生を指示する。また、ユーザーが前チャンネルボタン２３０２を押下すると、チャンネル変更部２００５は、チャンネル再生部２００３に前のチャンネルの再生を指示する。
【０２１９】
ユーザーが「１」〜「１２」の任意のチャンネルボタン２３１１を押下すると、チャンネル変更部２００５は、チャンネル再生部２００３に押下されたボタンのチャンネル番号のチャンネルの再生を指示する。例えば、ボタン「７」が押下されると、チャンネル変更部２００５は、チャンネル再生部２００３にチャンネル番号「７」のチャンネルの再生を指示する。
【０２２０】
図２４は、セットアッププログラム８０１が実行するアプリケーションのコードの一例を示す図である。
【０２２１】
図２４に示されたコードは、アプリケーションのコードの一部であり、アプリケーションは、他の処理を含んでいてもよい。
【０２２２】
このアプリケーションは、４２３００００００Ｈｚから８６３００００００Ｈｚまでの周波数帯域を各８００００００Ｈｚずつずらしてチューニングし、各周波数帯からトランスポートストリーム中のＰＡＴ及びＰＭＴを抽出している。また、このアプリケーションは、トランスポートストリームの識別子と、チャンネルの識別子とを抽出したあと、周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組をチャンネル情報としてチャンネルマップライブラリ８０２に登録している。
【０２２３】
同図に示された行１〜４は初期化処理であり、調査する周波数の開始（行１）と終了（行２）及び間隔（行３）を規定し、一番最初のチャンネル番号を規定している（行４）。
【０２２４】
行５から、各周波数の調査のループが開始される。
【０２２５】
行１０は、調査する周波数帯へのチューニングを行っている。命令「ｔｕｎｅ（ｆ）」は、チューナ９０６ａに対して、周波数ｆへのチューニングを依頼している。
【０２２６】
行１１は、ＳＩ検索部９０６ｃを用いて、トランスポートストリーム中のＰＡＴの情報を獲得する。クラスＰＡＴは、ＰＡＴの情報を表現するクラスであり、メソッドｒｅｔｒｉｅｖｅＰＡＴ（）は、トランスポートストリーム中のＰＡＴを取得しＰＡＴクラスのオブジェクトを生成し返す。
【０２２７】
行１２は、ＳＩ検索部９０６ｃを用いて、トランスポートストリーム中の全ＰＭＴの情報を獲得する。クラスＰＭＴは、ＰＡＴの情報を表現するクラスであり、メソッドｒｅｔｒｉｅｖｅＰＭＴ（）は、トランスポートストリーム中の全ＰＭＴを取得しＰＭＴクラスのオブジェクトの配列を生成し返す。
【０２２８】
行１４〜行２０は、取得したＰＡＴ及びＰＭＴの情報を用いて、周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組をチャンネル情報としてチャンネルマップライブラリ８０２に登録している。
【０２２９】
具体的には、行１４は、トランスポートストリーム中のＰＭＴの数、つまり、トランスポートストリーム中のチャンネルの数だけループを回す。行１５から行１８は、周波数、チャンネル番号、トランスポートストリームの識別子、チャンネルの識別子の組をチャンネル情報としてチャンネルマップライブラリ８０２に登録している。行１９では、チャンネル番号を１増やして、次のチャンネル情報のチャンネル番号を設定している。
【０２３０】
図２５は、チャンネルマップライブラリ８０２が保持するチャンネル情報の一例を示す図である。具体的には、同図は、図２４のアプリケーションのコードによって生成されたチャンネルマップライブラリ８０２が保持するチャンネル情報の例を示す図である。このチャンネル情報は、以下のように作成される。
【０２３１】
まず、アプリケーションは、最初の調査すべき周波数４２３００００００Ｈｚにチューニングし（図２４の行１０）、ＰＡＴとＰＭＴの情報を取得する（図２４の行１１，１２）。ここで、ＰＡＴは、トランスポートストリームの識別子として「１」を保持している。また、このトランスポートストリームは２種類のＰＭＴを含み、それぞれチャンネルの識別子として「１」「２」を保持している。
【０２３２】
アプリケーションは、１つ目のＰＭＴに対して、チャンネル情報として、周波数「４２３００００００」Ｈｚ、チャンネル番号「１」、トランスポートストリームの識別子「１」、チャンネルの識別子「１」の組をチャンネル情報保存部９０６ｄの機能を用いて、チャンネルマップライブラリ８０２に登録する（行２５０１、図２４の行１５〜１８）。
【０２３３】
次にアプリケーションは、チャンネル番号の変数を「１」増やし「２」とし（図２４の行１９）、次のＰＭＴに対して、チャンネル情報として、周波数「４２３００００００」Ｈｚ、チャンネル番号「２」、トランスポートストリームの識別子「１」、チャンネルの識別子「２」の組をチャンネル情報保存部９０６ｄの機能を用いて、チャンネルマップライブラリ８０２に登録する（行２５０２、図２４の行１５〜１８）。
【０２３４】
次にアプリケーションは、チャンネル番号の変数を「１」増やし「３」とする（図２４の行１９）。
【０２３５】
アプリケーションは、周波数４２３００００００Ｈｚに対する調査が終了したので、次は、周波数に８００００００Ｈｚを加えた周波数４３１００００００Ｈｚの調査を行う。アプリケーションは、調査すべき周波数４３１００００００Ｈｚにチューニングし（図２４の行１０）、ＰＡＴとＰＭＴの情報を取得する（図２４の行１１，１２）。
【０２３６】
ここで、ＰＡＴは、トランスポートストリームの識別子として「５」を保持している。また、このトランスポートストリームは３種類のＰＭＴを含み、それぞれチャンネルの識別子として「２」「５」「７」を保持している。
【０２３７】
アプリケーションは、１つ目のＰＭＴに対して、チャンネル情報として、周波数「４３１００００００」Ｈｚ、チャンネル番号「３」、トランスポートストリームの識別子「５」、チャンネルの識別子「２」の組をチャンネル情報保存部９０６ｄの機能を用いて、チャンネルマップライブラリ８０２に登録する（行２５０３、図２４の行１５〜１８）。
【０２３８】
次にアプリケーションは、チャンネル番号の変数を「１」増やし「４」とする（図２４の行１９）。次に、アプリケーションは、２つ目のＰＭＴに対して、チャンネル情報として、周波数「４３１００００００」Ｈｚ、チャンネル番号「４」、トランスポートストリームの識別子「５」、チャンネルの識別子「５」の組をチャンネル情報保存部９０６ｄの機能を用いて、チャンネルマップライブラリ８０２に登録する（行２５０４、図２４の行１５〜１８）。
【０２３９】
次にアプリケーションは、チャンネル番号の変数を「１」増やし「５」とする（図２４の行１９）。更に、アプリケーションは、３つ目のＰＭＴに対して、チャンネル情報として、周波数「４３１００００００」Ｈｚ、チャンネル番号「５」、トランスポートストリームの識別子「５」、チャンネルの識別子「７」の組をチャンネル情報保存部９０６ｄの機能を用いて、チャンネルマップライブラリ８０２に登録する（行２５０５、図２４の行１５〜１８）。
【０２４０】
次にアプリケーションは、チャンネル番号の変数を「１」増やし「６」とする（図２４の行１９）。このあと、周波数を８００００００Ｈｚ加えながら、順次各周波数の調査を行い、チャンネル情報を構築し、チャンネルマップライブラリ８０２に登録する。
【０２４１】
本実施の形態では、アプリケーションは、各周波数にチューニングし、ＰＡＴ及びＰＭＴの取得を行いチャンネル情報を構築したが、他の方法でも構わない。従来の技術として説明したとおり、特定の周波数にチューニングし、トランスポートストリーム中のＮＩＴを取り出し、ＮＩＴからチャンネル情報を生成しても良い。あるいは、ＮＩＴの情報と各周波数のＰＡＴ及びＰＭＴの情報を組み合わせて、チャンネル情報を生成しても良い。チャンネル情報の生成方法は放送事業者、国、地域によって定められており、その方法を実現するアプリケーションコードであればよい。
【０２４２】
次に、ＣＡＴＶ  ＳＴＢ５００上で実行されるプログラム８００の動作について、説明する。
【０２４３】
図２６は、ＣＡＴＶ  ＳＴＢ５００上で実行されるプログラム８００の動作を表すフローチャートである。
【０２４４】
まず、最初にＯＳ８０４が起動される（ステップＳ２６０１）。
【０２４５】
起動されたＯＳ８０４は、ＯＳ内の初期化処理などを行った後、セットアッププログラム８０１を起動・実行する（ステップＳ２６０２）。このセットアッププログラム８０１の動作の詳細については、後述する。
【０２４６】
そして、ＯＳ８０４は、ＳＴＢプログラム８０３を起動・実行する（ステップＳ２６０３）。このＳＴＢプログラム８０３の動作の詳細については、後述する。
【０２４７】
次に、セットアッププログラム８０１の動作（図２６のステップＳ２６０２）の詳細について、説明する。
【０２４８】
図２７は、セットアッププログラム８０１の動作を表すフローチャートである。
【０２４９】
まず、制御部９０１は、ＳＣＡＩＴ部９０２を起動し、アプリサーバ１０１からＳＣＡＩＴファイル３０２の情報取得を行う（ステップＳ２７０１）。このＳＣＡＩＴ部９０２の動作の詳細については、後述する。
【０２５０】
そして、ＳＣＡＩＴファイル３０２の情報取得が完了すると、制御部９０１は、アプリ取得部９０３を起動し、アプリサーバ１０１からアプリｊａｒファイル３０３を取得する（ステップＳ２７０２）。このアプリ取得部９０３の動作の詳細については、後述する。
【０２５１】
その後、制御部９０１は、アプリ実行部９０４の実行をＪａｖａＶＭ９０５に指示し、取得したアプリｊａｒファイル３０３に格納されたアプリケーションを実行する。このＪａｖａＶＭ９０５によって実行されるアプリ実行部９０４の動作の詳細については、後述する。
【０２５２】
次に、ＳＣＡＩＴ部９０２の動作（図２７のステップＳ２７０１）の詳細について、説明する。
【０２５３】
図２８は、ＳＣＡＩＴ部９０２の動作を表すフローチャートである。
【０２５４】
まず、ＳＣＡＩＴ部９０２は、最初にＳＣＡＩＴ取得部９０２ａを起動し、アプリサーバ１０１からＳＣＡＩＴファイル３０２を、ネットワーク部５０９を使用して、１次記憶部５０６にダウンロードする（ステップＳ２８０１）。
【０２５５】
そして、ＳＣＡＩＴ解析部９０２ｂは、ダウンロードされたＳＣＡＩＴファイル３０２を読み込み解析し、解析結果をＳＣＡＩＴ保存部９０２ｃに保存する（ステップＳ２８０２）。
【０２５６】
次に、アプリ取得部９０３の動作（図２７のステップＳ２７０２）の詳細について、説明する。
【０２５７】
図２９は、アプリ取得部９０３の動作を表すフローチャートである。
【０２５８】
まず、アプリ取得部９０３は起動されると、アプリダウンロード部９０３ａを起動し、アプリサーバ１０１からネットワーク部５０９を使用して、アプリｊａｒファイル３０３を１次記憶部５０６にダウンロードする（ステップＳ２９０１）。
【０２５９】
そして、アプリ解凍部９０３ｂは、アプリダウンロード部９０３ａがダウンロードしたアプリｊａｒファイル３０３を解凍し、アプリ保存部９０３ｃに保存する（ステップＳ２９０２）。
【０２６０】
次に、ＪａｖａＶＭ９０５によって実行されるアプリ実行部９０４の動作（図２７のステップＳ２７０３）の詳細について、説明する。
【０２６１】
図３０は、ＪａｖａＶＭ９０５によって実行されるアプリ実行部９０４の動作を表すフローチャートである。
【０２６２】
まず、アプリ実行部９０４は、ＪＮＩを通して、ＳＣＡＩＴ保存部９０２ｃから、起動すべきアプリケーションの情報を取得する（ステップＳ３００１）。
【０２６３】
そして、アプリ実行部９０４は、アプリ保存部９０３ｃが保存しているファイルをアプリケーションの起動ファイルとして、ＪａｖａＶＭ９０５を用いて、Ｊａｖａプログラムとして読み込む（ステップＳ３００２）。
【０２６４】
さらに、アプリ実行部９０４は、アプリケーションの起動ファイルに実装されている所定の関数「ｐｕｂｌｉｃ  ｂｏｏｌｅａｎ  ｓｅａｒｃｈ（）」という関数を呼び出す（ステップＳ３００３）。
【０２６５】
アプリケーションは、所定の関数の中で、チャンネル情報を作成し、チャンネルマップライブラリ８０２に保存する（ステップＳ３００４）。
【０２６６】
そして、アプリ実行部９０４は、そのアプリケーションの実行が終了すると、制御部９０１にアプリケーションの実行が完了したことを通知する（ステップＳ３００５）。
【０２６７】
次に、ＳＴＢプログラム８０３の動作（図２６のステップＳ２６０３）の詳細について、説明する。
【０２６８】
図３１は、ＳＴＢプログラム８０３の動作を表すフローチャートである。
【０２６９】
まず、制御部２００１は、チャンネル情報取得部２００２を起動し、チャンネルマップライブラリ８０２からチャンネル情報の取得を行う（ステップＳ３１０１）。
【０２７０】
次に、制御部２００１は、チャンネル再生部２００３に放送波を受信し、映像・音声の再生を開始する（ステップＳ３１０３）。
【０２７１】
その後、制御部２００１は、チャンネル変更部２００５を起動し、ユーザーのチャンネル変更要求の受付を開始する（ステップＳ３１０４）。
【０２７２】
次に、本実施の形態において説明した、デジタル放送受信装置初期化システムの使用形態について概説する。
【０２７３】
１つ目の使用形態は、受信装置を製造する工場などで、製造の１過程として、本システムを使用し、デジタル放送受信装置にアプリケーションを保存し、チャンネル情報を生成することである。この場合、デジタル放送受信装置には出荷時にチャンネル情報が書き込まれている。これを実現するには、工場は、放送局からの信号または同等の信号を受信する必要がある。
【０２７４】
２つ目の使用形態は、放送事業者が仕入れた受信装置に対して、本システムを使用し、デジタル放送受信装置にアプリケーションを保存し、チャンネル情報を生成することである。この場合、デジタル放送受信装置には視聴者に届ける前にチャンネル情報が書き込まれていることになる。これを実現するには、放送事業者は、放送局からの信号または同等の信号を受信する施設が必要である。
【０２７５】
３つ目の使用形態は、視聴者宅で初期インストールとして、本システムを使用し、デジタル放送受信装置にアプリケーションを保存し、チャンネル情報を生成することである。この場合、視聴者宅は、アプリケーションを保存するためアプリサーバ１０１に接続するためのインターネット回線、具体的にはケーブルモデムや光回線などが必要になる。
【０２７６】
４つ目の使用形態は、受信装置を製造する工場または放送事業者が、本システムを使用し、デジタル放送受信装置にアプリケーションを保存のみ行う場合である。そして、視聴者宅で初期インストールとして、放送信号を受信しチャンネル情報を生成することである。
【０２７７】
ここで、４つ目の使用形態の場合、工場または放送事業者において、アプリ解凍部９０３ｂがアプリ解凍後、ＣＡＴＶ  ＳＴＢ５００は電源を落とされ、視聴者宅で電源投入後、アプリ実行部９０４が実行される必要性がある。
【０２７８】
これを実現するため、工場または放送事業者において、制御部９０１は、アプリ取得部９０３の処理完了時に、処理が完了したことを作業者に伝えるため、オーディオデコーダ５０３を通して音を出す、あるいは、ビデオデコーダ５０４を通して画面に通知メッセージを出してもよい。あるいは、自動的にＣＡＴＶ  ＳＴＢ５００の電源をＯＦＦにしてもよい。
【０２７９】
視聴者宅での電源投入後は、制御部９０１は、再度ＳＣＡＩＴ部９０２にＳＣＡＩＴファイル３０２の取得を依頼することになる。この場合、ＳＣＡＩＴ部は、アプリサーバ１０１に接続できず、ＳＣＡＩＴファイル３０２を取得できない。この場合、制御部９０１は、アプリ実行部９０４の実行に処理を移すことにすればよい。
【０２８０】
以上のように、放送を選局するためのアプリケーションを取得して実行することで、チャンネル情報が生成され、選局が行われる。つまり、放送事業者・国・地域に応じたアプリケーションを取得することで、放送事業者・国・地域に合わせたチャンネル情報を構築し、そのチャンネル情報を用いて選局を行うことができる。このため、放送事業者・国・地域に合わせたチャンネル情報の構築処理を、デジタル放送受信装置と分離して行うことができる。
【０２８１】
また、放送事業者・国・地域に応じて必要なアプリケーションの情報を示すＳＣＡＩＴファイル３０２に基づいて、放送事業者・国・地域に応じたアプリケーションを取得できる。
【０２８２】
また、アプリケーションはＪａｖａ言語で記述されているため、アプリケーションをデジタル放送受信装置のハードウエアに非依存の形式で記述できる。このため、当該アプリケーションを複数種のハードウエア上で実行できるため、デジタル放送受信装置ごとのアプリケーションの開発が不要になる。
【０２８３】
このため、ＮＩＴの運用方法が異なる放送事業者・国・地域であっても、同一のデジタル放送受信装置を使用することができる。
【０２８４】
（実施の形態２）
また、上記の３つ目の使用形態の場合、デジタル放送受信装置は常時、アプリサーバ１０１に接続しているので、視聴者宅でアプリケーションの入れ替えが可能である。このアプリケーションの入れ替えを実現するため、ＳＣＡＩＴ部９０２に、ＳＣＡＩＴファイル３０２のモニタリング機能を追加することも可能である。
【０２８５】
図３２は、本発明に係る実施の形態２におけるＳＣＡＩＴ部９０２のプログラム構成の構成図である。具体的には、同図は、ＳＣＡＩＴ部９０２にＳＣＡＩＴモニタ部９０２ｄを追加した状態を表す図である。
【０２８６】
ＳＣＡＩＴモニタ部９０２ｄは、ＳＣＡＩＴファイル３０２を定期的に取得する。具体的には、ＳＣＡＩＴモニタ部９０２ｄは、ＳＣＡＩＴ解析部９０２ｂがＳＣＡＩＴファイル３０２の解析を完了後に、起動される。ＳＣＡＩＴモニタ部９０２ｄは最初に、ＳＣＡＩＴ保存部９０２ｃを参照し、ＳＣＡＩＴファイル３０２の更新を定期的に確認する時間間隔を取得する。なお、ＳＣＡＩＴモニタ部９０２ｄは、本発明の「アプリケーション情報モニタ部」の一例に相当する。
【０２８７】
例えば、ＳＣＡＩＴファイル３０２が図４に示されたＳＣＡＩＴファイル３０２のとき、行４０２を参照して、時間間隔は６００秒である。このため、ＳＣＡＩＴモニタ部９０２ｄは６００秒ごとに、ＳＣＡＩＴ取得部９０２ａにＳＣＡＩＴファイル３０２の取得を依頼する。
【０２８８】
そして、ＳＣＡＩＴモニタ部９０２ｄは、ＳＣＡＩＴ解析部９０２ｂを用いて、ＳＣＡＩＴファイル３０２が更新されているかどうか検査する。具体的には、ＳＣＡＩＴファイル３０２は、ＳＣＡＩＴファイル３０２のバージョン番号を規定しており、その数字が更新されたかどうかを確認する。
【０２８９】
例えば、図４に示されたＳＣＡＩＴファイル３０２の場合、ＳＣＡＩＴファイル３０２のバージョン番号は「１」であり、この数字が「１」以外になった場合、ＳＣＡＩＴモニタ部９０２ｄは、ＳＣＡＩＴファイル３０２が更新されたと判断する。ＳＣＡＩＴファイル３０２のバージョン番号が規定されていない場合は、ＳＣＡＩＴモニタ部９０２ｄは、前回取得したＳＣＡＩＴファイルを記憶しておき、前回取得したＳＣＡＩＴファイルと今回取得したＳＣＡＩＴファイルとの全体を比較し、更新の有無を判断できる。
【０２９０】
ＳＣＡＩＴファイル３０２が更新されている場合、ＳＣＡＩＴモニタ部９０２ｄはＳＣＡＩＴ解析部９０２ｂを起動し、ＳＣＡＩＴファイル３０２の全解析を行い、解析結果をＳＣＡＩＴ保持部９０２ｃに保存する。そして、ＳＣＡＩＴモニタ部９０２ｄは制御部９０１に、ＳＣＡＩＴファイル３０２が更新されたことを通知する。
【０２９１】
制御部９０１は、ＳＣＡＩＴファイル３０２が更新された通知を受けると、アプリ取得部９０３を起動し、アプリサーバ１０１からアプリｊａｒファイル３０３を取得する。
【０２９２】
最後に、制御部９０１は、アプリ実行部９０４の実行をＪａｖａＶＭ９０５に指示し、現在取得したアプリｊａｒファイル３０３に格納されたアプリケーションを実行する。この際、既に実行中のアプリケーションがあれば、そのアプリケーションの実行中止も行う。
【０２９３】
図３３は、本実施の形態２におけるＳＣＡＩＴモニタ部９０２ｄの動作を表すフローチャートである。
【０２９４】
ＳＣＡＩＴモニタ部９０２ｄは、最初に、ＳＣＡＩＴ保存部９０２ｃを参照し、ＳＣＡＩＴファイル３０２の更新を定期的に確認する時間間隔を取得する（ステップＳ３３０１）。
【０２９５】
そして、ＳＣＡＩＴモニタ部９０２ｄは、ＳＣＡＩＴファイル３０２で指定された時間間隔ごとに、ＳＣＡＩＴ取得部９０２ａにＳＣＡＩＴファイル３０２の取得を依頼する（ステップＳ３３０２）。
【０２９６】
そして、ＳＣＡＩＴモニタ部９０２ｄは、ＳＣＡＩＴ解析部９０２ｂを用いて、ＳＣＡＩＴファイル３０２が更新されているかどうか検査する（ステップＳ３３０３）。
【０２９７】
ＳＣＡＩＴファイル３０２が更新されている場合（ステップＳ３３０３でＹＥＳ）、ＳＣＡＩＴモニタ部９０２ｄは、ＳＣＡＩＴ解析部９０２ｂを起動し、ＳＣＡＩＴファイル３０２の全解析を行い、解析結果をＳＣＡＩＴ保存部９０２ｃに保存する（ステップＳ３３０４）。
【０２９８】
そして、ＳＣＡＩＴモニタ部９０２ｄは、制御部９０１に、ＳＣＡＩＴファイル３０２が更新されたことを通知する（ステップＳ３３０５）。
【０２９９】
また、ＳＣＡＩＴファイル３０２が更新されていない場合（ステップＳ３３０３でＮＯ）は、再度、ＳＣＡＩＴモニタ部９０２ｄは、ＳＣＡＩＴファイル３０２で指定された時間間隔ごとに、ＳＣＡＩＴ取得部９０２ａにＳＣＡＩＴファイル３０２の取得を依頼する（ステップＳ３３０２）。
【０３００】
なお、本実施の形態においては、ＳＣＡＩＴモニタ部９０２ｄがＳＣＡＩＴ取得部９０２ａにＳＣＡＩＴファイル３０２の取得を依頼する時間間隔をＳＣＡＩＴファイル３０２から取得していたが、ＳＣＡＩＴモニタ部９０２ｄが特定の時間間隔と保持し、その保持している値を用いてＳＣＡＩＴ取得部９０２ａにＳＣＡＩＴファイル３０２の取得を依頼してもよい。この場合、ＳＣＡＩＴファイル３０２は時間間隔を規定する必要は無い。
【０３０１】
以上のように、ＳＣＡＩＴファイル３０２が定期的に取得される。このため、アプリケーションが更新されたことを示すＳＣＡＩＴファイル３０２を取得することで、当該アプリケーションを更新することができ、チャンネル情報の構築の手順が変更された場合に対処できる。
【０３０２】
（実施の形態３）
上記実施の形態においては、アプリサーバ１０１のネットワーク上の所在地は予め所定の位置に決まっており、ＳＣＡＩＴ取得部９０２ａ及びアプリダウンロード部９０３ａは、その所在地を知っていたが、これを別途設定できるようにしても良い。
【０３０３】
図３４は、本発明に係る実施の形態３におけるＣＡＴＶ  ＳＴＢ５００が保存するセットアッププログラム８０１の構成図である。具体的には、同図は、アプリサーバ１０１のネットワーク上の位置を指定するための、アプリサーバ決定部９０７が、セットアッププログラム８０１に追加された状態を表す図である。
【０３０４】
同図に示すように、セットアッププログラム８０１は、図９に示された構成に加えて、アプリサーバ決定部９０７を備えている。
【０３０５】
アプリサーバ決定部９０７は、ＳＣＡＩＴ部９０２がアプリケーションを取得するアプリサーバ１０１を決定する。具体的には、アプリサーバ決定部９０７は、ＣＡＴＶ  ＳＴＢ５００の電源投入時に制御部９０１から起動される。そして、アプリサーバ決定部９０７は、ビデオデコーダ５０４を通して、図３５のようなアプリサーバ１０１を決定する画面を表示する。なお、アプリサーバ決定部９０７は、本発明の「アプリケーションサーバ決定部」の一例に相当する。
【０３０６】
ここで、図３５は、本実施の形態３におけるアプリサーバを決定する画面の一例を示す図である。つまり、同図は、アプリサーバ決定部９０７がアプリサーバ１０１を決定する画面を示す図である。同図では、アプリサーバ１０１をＩＰアドレスで指定している。
【０３０７】
例えば、入力部５０８が図２３に示されたようなリモコンであるとすると、チャンネルボタン２３１１の「１」〜「１０」の押下で、数字「１」〜「０」を入力でき、チャンネルボタン２３１１の「１１」の押下で、「．」を入力、チャンネルボタン２３１１の「１２」の押下で、１文字削除にすれば、ＩＰアドレスの入力が可能である。
【０３０８】
また、次チャンネルボタン２３０１は取り消しに割り当てることで、再入力が可能であり、前チャンネルボタン２３０２をＩＰアドレス決定とすることで、アプリサーバ決定部９０７の終了が可能である。
【０３０９】
ここで、アプリサーバ決定部９０７は、ＣＡＴＶ  ＳＴＢ５００の電源投入時に起動されることとしたが、リモコン上のメニューなどから起動されることも実施可能である。また、本実施の形態では、リモコンキーでＩＰアドレスを入力したが、ＣＡＴＶ  ＳＴＢ５００がソフトキーボードを実装し、英数字によりＵＲＬでアプリサーバ１０１を指定することも可能である。また、アプリサーバ決定部９０７は、自動でアプリサーバ１０１を決定することにしてもよい。
【０３１０】
そして、アプリサーバ決定部９０７は、決定したアプリサーバ１０１の所在地をＳＣＡＩＴ取得部９０２ａ及びアプリダウンロード部９０３ａに通知する。
【０３１１】
以上のように、放送事業者・国・地域に応じて必要なアプリケーションを保持しているアプリサーバ１０１を決定することができる。このため、アプリサーバ１０１の所在など設置条件が変更された場合に対処できる。
【０３１２】
（実施の形態４）
また、上記実施の形態では、ＳＴＢプログラム８０３は、組み込み型のプログラムであったが、ＭＨＰ（Ｍｕｌｔｉｍｅｄｉａ  Ｈｏｍｅ  Ｐｌａｔｆｏｒｍ）などのダウンロード型のプログラムでも実施可能である。ＭＨＰはＤＶＢで規定された仕様であり、Ｊａｖａで記述されたＥＰＧなどのＭＨＰアプリケーションをダウンロードし、実行する。
【０３１３】
図３６は、本発明に係る実施の形態４におけるＣＡＴＶ  ＳＴＢ５００が保存するＳＴＢプログラム８０３の構成図である。つまり、同図は、ＳＴＢプログラム８０３がＭＨＰミドルウエアの場合の構成図の一例を示す図である。
【０３１４】
図３６を参照して、ＳＴＢプログラム８０３は、制御部３６０１、チャンネル情報取得部２００２、チャンネル再生部２００３、チャンネル保持部２００４、チャンネル変更部２００５、ＡＩＴ部３６０２、アプリ取得部３６０３、アプリ実行部３６０４、ＪａｖａＶＭ９０５及びＪａｖａライブラリ３６０５を備えている。
【０３１５】
チャンネル情報取得部２００２、チャンネル再生部２００３、チャンネル保持部２００４、及びチャンネル変更部２００５は、図２０に示されている構成要素とまったく同じ機能を有する。このため、ここでは説明を省略する。また、ＪａｖａＶＭ９０５は、図９に示されたＪａｖａＶＭ９０５と同じ機能を有するため、ここでは、セットアッププログラム８０１内のＪａｖａＶＭ９０５をそのまま共用する。
【０３１６】
制御部３６０１は、図２０に示された制御部２００１に以下の機能を追加する。制御部３６０１は、チャンネル再生部２００３がチャンネルを再生した後、ＡＩＴ部３６０２を起動し、チューニングしたトランスポートストリーム内からＡＩＴ（Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅ）を取得する。
【０３１７】
制御部３６０１は、ＡＩＴを取得すると、アプリ取得部３６０３を用いてＥＰＧなどのＭＨＰアプリケーションをダウンロードする。
【０３１８】
その後、制御部３６０１は、アプリ実行部３６０４の実行をＪａｖａＶＭ９０５に指示し、アプリ実行部３６０４は、取得されたＭＨＰアプリケーションを実行する。
【０３１９】
ＡＩＴ部３６０２は、チューニングしたトランスポートストリーム中にエンコードされたＡＩＴを取得するプログラムであり、ＡＩＴ取得部３６０２ａ、ＡＩＴ解析部３６０２ｂ、及びＡＩＴ保存部３６０２ｃを備えている。
【０３２０】
ＡＩＴ部３６０２は起動されると、ＡＩＴ取得部３６０２ａを起動し、ＴＳデコーダ５０２を使用して、ＡＩＴを１次記憶部５０６にダウンロードする。ＡＩＴの取得方法などの詳細は、欧州デジタルＴＶ標準規格ＤＶＢ−ＭＨＰ（ＥＴＳＩ  ＴＳ  １０１  ８１２  Ｖ１．３．１）規格を参照されたい。
【０３２１】
ＡＩＴ取得部３６０２ａがＡＩＴのダウンロードを完了すると、ＡＩＴ解析部３６０２ｂは、ＡＩＴを解析し、ダウンロードすべきアプリケーションの情報を抽出する。ＭＨＰアプリケーションの多くは、トランスポートストリーム中にＤＳＭＣＣオブジェクトカルーセルというフォーマットに従いエンコードされて送出される。よって、ＡＩＴ解析部３６０２ｂは、ＭＨＰアプリケーションがエンコードされているＤＳＭＣＣオブジェクトカルーセルを特定するための情報や、ＭＨＰアプリケーションの起動ファイルの情報などを抽出し、その情報を、ＡＩＴ保存部３６０２ｃに格納する。
【０３２２】
ＡＩＴ保存部３６０２ｃは、具体的には、１次記憶部５０６内の記憶領域であり、プログラムの変数に格納されたＡＩＴの情報を保存する。
【０３２３】
アプリ取得部３６０３は、ＤＳＭＣＣオブジェクトカルーセルにエンコードされているＭＨＰアプリケーションを受信装置内のファイルシステムに展開するプログラムであり、アプリダウンロード部３６０３ａ及びアプリ保存部３６０３ｂを備えている。
【０３２４】
アプリダウンロード部３６０３ａは、ＴＳデコーダ５０２を使用してＤＳＭＣＣオブジェクトカルーセルを構成するパケットを収集し、ファイルを抽出して、アプリ保存部３６０３ｂに保存する。
【０３２５】
アプリ保存部３６０３ｂは、具体的には、１次記憶部５０６内の記憶領域であり、アプリダウンロード部３６０３ａがダウンロードしたＭＨＰアプリケーションのファイルを、ファイルシステム内に格納する。
【０３２６】
アプリ実行部３６０４は、Ｊａｖａ言語で書かれたＪａｖａプログラムであり、ＪａｖａＶＭ９０５によって逐次実行される。アプリ実行部３６０４は、ＪＮＩを通して、Ｊａｖａ言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。
【０３２７】
アプリ実行部３６０４は、ＪＮＩを通して、ＡＩＴ保存部３６０２ｃから、起動すべきＭＨＰアプリケーションの情報を取得する。具体的には、ＭＨＰアプリケーションの起動ファイル名を取得し、ＪａｖａＶＭ９０５を用いて、Ｊａｖａプログラムとして読み込む。
【０３２８】
ここで、ＭＨＰアプリケーションは所定の４つ関数（Ｊａｖａ言語では「メソッド」と呼ぶ）を備えている。
【０３２９】
アプリ実行部３６０４は、ＭＨＰアプリケーションの起動ファイルに実装されているｉｎｉｔＸｌｅｔメソッドを呼び出し初期化した後、ｓｔａｒｔＸｌｅｔメソッドを呼び出し、ＭＨＰアプリケーションを実行する。
【０３３０】
Ｊａｖａライブラリ３６０５は、ＲＯＭ５０７に格納されている複数のＪａｖａライブラリの集合であり、セットアッププログラム８０１内のＪａｖａライブラリ９０６と共用であり、Ｊａｖａライブラリ９０６が含むライブラリに加え、ＤＶＢ−ＭＨＰ規格で規定されているライブラリも備える。
【０３３１】
図３６に示すＳＴＢプログラム８０３を用いた場合は、セットアッププログラム８０１が実行するＪａｖａプログラムに加え、ＳＴＢプログラム８０３が実行するＪａｖａプログラム（＝ＭＨＰプログラム）も実行するため、２つのＪａｖａプログラムが実行される。この際、２つのＪａｖａプログラムを動作させるために、ＪａｖａＶＭ９０５及びＪａｖａライブラリ３６０５は共通のものを使用することにより、ＣＡＴＶ  ＳＴＢ５００内のプログラム量の最小化が可能である。
【０３３２】
以上、本発明に係るデジタル放送受信装置について、上記実施の形態を用いて説明したが、本発明は、これに限定されるものではない。
【０３３３】
つまり、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０３３４】
本発明にかかるデジタル放送受信装置は、主としてデジタルテレビ放送の受信装置に使用されるが、デジタルテレビ放送受信可能な携帯電話・携帯端末・車載端末にも利用可能である。また、インターネットを用いた音声映像配信を受信するパーソナルコンピュータ等でも利用できる。
【符号の説明】
【０３３５】
１０１    アプリサーバ
１１１    受信装置Ａ
１１２    受信装置Ｂ
１１３    受信装置Ｃ
２０１    モニタ
２０２    ２次記憶部
２０３    １次記憶部
２０４    ＲＯＭ
２０５    入力部
２０６    ネットワーク部
２０７    ＣＰＵ
３０１    ＨＴＴＰルートディレクトリ
３０２    ＳＣＡＩＴファイル
３０３    アプリｊａｒファイル
５００    ＣＡＴＶ  ＳＴＢ
５０１    ＱＡＭ復調部
５０２    ＴＳデコーダ
５０３    オーディオデコーダ
５０４    ビデオデコーダ
５０５    ２次記憶部
５０６    １次記憶部
５０７    ＲＯＭ
５０８    入力部
５０９    ネットワーク部
５１０    ＣＰＵ
６００、７０１〜７２７  パケット
６０１    ヘッダ
６０２    ペイロード
６０３    ヘッダ構成
８００    プログラム
８０１    セットアッププログラム
８０２    チャンネルマップライブラリ
８０３    ＳＴＢプログラム
８０４    ＯＳ
９０１    制御部
９０２    ＳＣＡＩＴ部
９０２ａ  ＳＣＡＩＴ取得部
９０２ｂ  ＳＣＡＩＴ解析部
９０２ｃ  ＳＣＡＩＴ保存部
９０２ｄ  ＳＣＡＩＴモニタ部
９０３    アプリ取得部
９０３ａ  アプリダウンロード部
９０３ｂ  アプリ解凍部
９０３ｃ  アプリ保存部
９０４    アプリ実行部
９０５    ＪａｖａＶＭ
９０６    Ｊａｖａライブラリ
９０６ａ  チューナ
９０６ｂ  セクションフィルタ部
９０６ｃ  ＳＩ検索部
９０６ｄ  チャンネル情報保存部
９０７    アプリサーバ決定部
１２０１、１３００  ＭＰＥＧ２セクション
１２０２ａ  セクション分割Ａ
１２０２ｂ  セクション分割Ｂ
１２０２ｃ  セクション分割Ｃ
１２０３〜１２０５  パケット
１３０１    ヘッダ
１３０２    ペイロード
１３０３    ヘッダ構成
１７０１    ａｄｄＣｈａｎｎｅｌメソッド
１７０２    ｒｅｍｏｖｅＣｈａｎｎｅｌメソッド
１７０３    ｇｅｔｆメソッド
１７０４    ｇｅｔｎｏメソッド
１７０５    ｇｅｔｔｓｉｄメソッド
１７０６    ｇｅｔｓｉｄメソッド
１９０１    ａｄｄＣｈａｎｎｅｌ関数
１９０２    ｒｅｍｏｖｅＣｈａｎｎｅｌ関数
１９０３    ｇｅｔｆ関数
１９０４    ｇｅｔｎｏ関数
１９０５    ｇｅｔｔｓｉｄ関数
１９０６    ｇｅｔｓｉｄ関数
２００１    制御部
２００２    チャンネル情報取得部
２００３    チャンネル再生部
２００４    チャンネル保持部
２００５    チャンネル変更部
２３００    リモコン
２３０１    次チャンネルボタン
２３０２    前チャンネルボタン
２３１１    チャンネルボタン
３６０１    制御部
３６０２    ＡＩＴ部
３６０２ａ  ＡＩＴ取得部
３６０２ｂ  ＡＩＴ解析部
３６０２ｃ  ＡＩＴ保存部
３６０３    アプリ取得部
３６０３ａ  アプリダウンロード部
３６０３ｂ  アプリ保存部
３６０４    アプリ実行部
３６０５    Ｊａｖａライブラリ
【図１】
2010273172.tif 000003
【図２】
2010273172.tif 000004
【図３】
2010273172.tif 000005
【図４】
2010273172.tif 000006
【図５】
2010273172.tif 000007
【図６】
2010273172.tif 000008
【図７】
2010273172.tif 000009
【図８】
2010273172.tif 000010
【図９】
2010273172.tif 000011
【図１０】
2010273172.tif 000012
【図１１】
2010273172.tif 000013
【図１２】
2010273172.tif 000014
【図１３】
2010273172.tif 000015
【図１４】
2010273172.tif 000016
【図１５】
2010273172.tif 000017
【図１６】
2010273172.tif 000018
【図１７】
2010273172.tif 000019
【図１８】
2010273172.tif 000020
【図１９】
2010273172.tif 000021
【図２０】
2010273172.tif 000022
【図２１】
2010273172.tif 000023
【図２２】
2010273172.tif 000024
【図２３】
2010273172.tif 000025
【図２４】
2010273172.tif 000026
【図２５】
2010273172.tif 000027
【図２６】
2010273172.tif 000028
【図２７】
2010273172.tif 000029
【図２８】
2010273172.tif 000030
【図２９】
2010273172.tif 000031
【図３０】
2010273172.tif 000032
【図３１】
2010273172.tif 000033
【図３２】
2010273172.tif 000034
【図３３】
2010273172.tif 000035
【図３４】
2010273172.tif 000036
【図３５】
2010273172.tif 000037
【図３６】
2010273172.tif 000038
【図３７】
2010273172.tif 000039