(57)【特許請求の範囲】
【請求項１】
仮想マシン上で動作するプログラムによる映像の再生制御が可能な仮想マシン利用型コンテンツが記録された記録媒体を再生する再生部と、前記仮想マシン上で動作するプログラムの実行と前記再生部における再生処理を制御する再生制御部とを有する映像情報再生装置で前記記録媒体を再生させる映像情報再生方法において、
前記仮想マシン利用型コンテンツの通常再生時には、前記仮想マシン上で動作する複数のプログラムの一つである復号化補助プログラムが、暗号化された前記仮想マシン利用型コンテンツの復号を行う暗号復号プログラムから数値を受け取り、
前記復号化補助プログラムは前記数値を使い所定の演算を実行し、前記演算の結果を利用して前記暗号復号プログラムが前記仮想マシン利用型コンテンツの復号処理を行い、
前記仮想マシン利用型コンテンツの再生を途中停止した後、再生再開の指示がなされた後に実行されるレジューム再生の開始時には、前記再生制御部において前記仮想マシン上で動作する前記復号化補助プログラムの代わりに前記復号化補助プログラムと等価な演算処理を実行する前記再生制御部でネイティブに動作する代理プログラムを起動させ、前記代理プログラムと前記暗号復号プログラムとが、データのやり取りを行いながら、前記仮想マシン利用型コンテンツの映像の再生を実行する
ことを特徴とする映像情報再生方法。
【請求項２】
前記仮想マシン利用型コンテンツの再生中に、前記仮想マシン上で動作する前記復号化補助プログラムと前記暗号復号プログラムとの間のデータのやり取りを検知し、前記データのやり取りを行っているか否かを示すフラグの値を前記検知の結果に基づいて設定し、
前記レジューム再生の開始時に、前記フラグの値に基づいて前記代理プログラムを起動させるか否かを決定する
ことを特徴とする請求項１に記載の映像情報再生方法。
【請求項３】
前記仮想マシン利用型コンテンツの再生中に、前記暗号復号プログラムとやり取りを行う前記代理プログラムの中の演算で使用される固定値を前記仮想マシン上で動作する前記プログラムの中から検索し、
前記レジューム再生の開始時に、前記検索された固定値を用いて前記代理プログラムを実行させる
ことを特徴とする請求項１に記載の映像情報再生方法。
【請求項４】
仮想マシン上で動作するプログラムによる映像の再生制御が可能な仮想マシン利用型コンテンツが記録された記録媒体を再生する再生部と、
前記仮想マシン上で動作するプログラムの実行と前記再生部における再生処理を制御する再生制御部と、
を有し、
前記仮想マシン利用型コンテンツの通常再生時には、前記再生制御部における前記仮想マシン上で動作する前記復号化補助プログラムと前記再生部内の暗号復号制御部上で動作する暗号化された前記仮想マシン利用型コンテンツの復号を行う暗号復号プログラムとで、前記仮想マシン利用型コンテンツの復号処理を行い、
前記仮想マシン利用型コンテンツの再生を途中停止した後、再生開始の指示がなされた後に実行されるレジューム再生の開始時には、前記再生制御部において前記仮想マシン上で動作する前記復号化補助プログラムの代わりに前記復号化補助プログラムと等価な演算処理を実行する前記再生制御部上でネイティブに動作する代理プログラムを起動させ、前記代理プログラムと前記暗号復号プログラムとが、データのやり取りを行いながら、前記仮想マシン利用型コンテンツの映像の再生を実行する
ことを特徴とする映像情報再生装置。
【請求項５】
前記仮想マシン利用型コンテンツの再生中に、前記再生制御部は、
前記仮想マシン上で動作する前記復号化補助プログラムと前記暗号復号プログラムとの間のデータのやり取りを検知し、前記データのやり取りを行っているか否かを示すフラグの値を前記検知の結果に基づいて設定し、
前記レジューム再生の開始時に、前記フラグの値に基づいて前記代理プログラムを起動させるか否かを決定する
ことを特徴とする請求項４に記載の映像情報再生装置。
【請求項６】
前記仮想マシン利用型コンテンツの再生中に、前記再生制御部は、
前記暗号復号プログラムとやり取りを行う前記代理プログラムの中の演算で使用される固定値を前記仮想マシン上で動作する前記プログラムの中から検索し、
前記再生制御部は、前記レジューム再生の開始時に、前記検索された固定値を用いて前記代理プログラムを実行させる
ことを特徴とする請求項４に記載の映像情報再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン上で動作するプログラムにより映像の再生を制御することが可能な仮想マシン利用型コンテンツが記録された記録媒体から映像を再生する映像情報再生方法及び映像情報再生装置に関するものである。
【背景技術】
【０００２】
映画やドラマなどの映像コンテンツを再生する機器として、ＤＶＤプレーヤーがある。ＤＶＤプレーヤーにおいて映像の再生を制御するために、比較的単純な制御用の言語であるナビゲーション・コマンドが利用されている。一方、近年普及し始めているＢｌｕ−ｒａｙディスク（ＢＤ）プレーヤーにおいては、複雑でインタラクティビティの高いコンテンツを視聴できるようにするために、Ｊａｖａ仮想マシンが採用されている（例えば、特許文献１参照）。【０００３】
ＤＶＤの再生データは、映像データ、音声データ、グラフィックデータ、映像制御データから構成されており、これらのデータは、１本のファイルに重畳されている。ＤＶＤプレーヤーにおいて、再生を停止（中断又はサスペンド）し、その後、再生開始（レジューム再生）の操作がされた場合、数秒程度の待ち時間で、前回の再生停止位置からの再生が再開される。この場合、映像データや音声データなどの再生に必要なデータが１本のファイルにすべて重畳されているので、データサイズが小さい管理情報ファイルを光ディスクから再度読み出すことによって再生停止位置から再生を再開でき、その結果、再生再開までの待ち時間は短い。【０００４】
しかし、Ｂｌｕ−ｒａｙディスク（ＢＤ）のＪａｖａアプリケーションを利用したコンテンツ（Ｊａｖａ仮想マシン利用型コンテンツ）の再生においては、再生を停止した後、レジューム再生の操作がされた場合、ＢＤを映像情報再生装置に挿入した初期状態から再生動作を行うことになるため、仮想マシン上で動作するプログラムであるＪａｖａアプリケーションを再起動しなければならず、前回の再生停止位置から再生が再開されるまでに、数十秒から数分の時間を要する。これを回避するために、Ｊａｖａアプリケーションを利用したコンテンツを、Ｊａｖａアプリケーションを利用しないコンテンツとして扱うことで、再生再開までの時間を短縮する方法も考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１９３６４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、一部の仮想マシン利用型コンテンツにおいて、暗号化された映像データや音声データを復号する際に、暗号復号アプリケーションとＪａｖａアプリケーションとの間でデータのやり取りを行うことで、暗号の復号処理を行っている場合がある。このようなコンテンツにおいて、Ｊａｖａアプリケーションを起動させずにレジューム再生を行った場合、映像データや音声データの暗号化を解除することができなくなるため、結局、Ｊａｖａアプリケーションを再起動しなければならない。このため、ＢＤプレーヤーにおけるレジューム再生の開始時には、ユーザーの利便性が大きく損なわれるという問題があった。【０００７】
本発明は、上記の課題を解決するためになされたものであり、その目的は、レジューム再生の開始時に、仮想マシン利用型コンテンツが記録された記録媒体から、正常且つ迅速に再生を開始することができる映像情報再生方法及び映像情報再生装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る映像情報再生方法は、仮想マシン上で動作するプログラムによる映像の再生制御が可能な仮想マシン利用型コンテンツが記録された記録媒体を再生する再生部と、前記仮想マシン上で動作するプログラムの実行と前記再生部における再生処理を制御する再生制御部とを有する映像情報再生装置で前記記録媒体を再生させる映像情報再生方法において、前記仮想マシン利用型コンテンツの通常再生時には、前記仮想マシン上で動作する複数のプログラムの一つである復号化補助プログラムが、暗号化された前記仮想マシン利用型コンテンツの復号を行う暗号復号プログラムから数値を受け取り、前記復号化補助プログラムは前記数値を使い所定の演算を実行し、前記演算の結果を利用して前記暗号復号プログラムが前記仮想マシン利用型コンテンツの復号処理を行い、前記仮想マシン利用型コンテンツの再生を途中停止した後、再生再開の指示がなされた後に実行されるレジューム再生の開始時には、前記再生制御部において前記仮想マシン上で動作する前記復号化補助プログラムの代わりに前記復号化補助プログラムと等価な演算処理を実行する前記再生制御部でネイティブに動作する代理プログラムを起動させ、前記代理プログラムと前記暗号復号プログラムとが、データのやり取りを行いながら、前記仮想マシン利用型コンテンツの映像の再生を実行することを特徴としている。
【０００９】
本発明に係る映像情報再生装置は、仮想マシン上で動作するプログラムによる映像の再生制御が可能な仮想マシン利用型コンテンツが記録された記録媒体を再生する再生部と、前記仮想マシン上で動作するプログラムの実行と前記再生部における再生処理を制御する再生制御部とを有し、前記仮想マシン利用型コンテンツの通常再生時には、前記再生制御部における前記仮想マシン上で動作する前記復号化補助プログラムと前記再生部内の暗号復号制御部上で動作する暗号化された前記仮想マシン利用型コンテンツの復号を行う暗号復号プログラムとで、前記仮想マシン利用型コンテンツの復号処理を行い、前記仮想マシン利用型コンテンツの再生を途中停止した後、再生開始の指示がなされた後に実行されるレジューム再生の開始時には、前記再生制御部において前記仮想マシン上で動作する前記復号化補助プログラムの代わりに前記復号化補助プログラムと等価な演算処理を実行する前記再生制御部上でネイティブに動作する代理プログラムを起動させ、前記代理プログラムと前記暗号復号プログラムとが、データのやり取りを行いながら、前記仮想マシン利用型コンテンツの映像の再生を実行することを特徴としている。
【発明の効果】
【００１０】
本発明によれば、仮想マシン上で動作するプログラムの代わりに、前記仮想マシン上以外の環境で動作する代理プログラムを実行させることでレジューム再生を行うので、レジューム再生の開始時に、仮想マシン利用型コンテンツが記録された記録媒体から、正常且つ迅速に再生を開始することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係る映像情報再生装置の構成を概略的に示すブロック図である。
【図２】本発明の実施の形態に係る記録媒体におけるディレクトリ構成の一例を示す図である。
【図３】ｐｌｓｔファイルのシンタックスの一例を示す図である。
【図４】プレイリストとｓｔｒｅａｍファイルとの関係の一例を示す図である。
【図５】ｃｌｉｐファイルのシンタックスの一例を示す図である。
【図６】Ｍｏｖｉｅ．ｔｉｔｌｅファイルのシンタックスの一例を示す図である。
【図７】ｊａｒファイルの構成の一例を示す図である。
【図８】Ｊａｖａアプリケーションプログラムのソースコードを示す図（その１）である。
【図９】Ｊａｖａアプリケーションプログラムのソースコードを示す図（その２）である。
【図１０】Ｊａｖａアプリケーションプログラムのソースコードを示す図（その３）である。
【図１１】（ａ）及び（ｂ）は、Ｊａｖａアプリケーションにより表示されるグラフィック画像の一例を示す図である。
【図１２】本発明の実施の形態に係る映像情報再生方法に係るｐｌｓｔファイルのシンタックスを示す図である。
【図１３】本発明の実施の形態に係るメニュー画面の一例を示す図である。
【図１４】本発明の実施の形態に係る映像情報再生方法における処理を示す動作シーケンス図である。
【図１５】本発明の実施の形態に係る映像情報再生方法における処理を示すフローチャートである。
【図１６】本発明の実施の形態に係る映像情報再生方法における処理を示すフローチャートである。
【図１７】（ａ）及び（ｂ）はそれぞれ、比較例１及び２の映像情報再生方法におけるコンテンツの再生開始の処理を示すタイミング図である。
【図１８】本実施の形態に係る映像情報再生方法におけるコンテンツの再生開始の処理を示すタイミング図である。
【図１９】本発明の実施の形態に係る映像情報再生方法における処理の他の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、本発明の実施の形態に係る映像情報再生装置の構成を概略的に示すブロック図である。本実施の形態に係る映像情報再生装置は、仮想マシン上で動作するアプリケーションプログラム（以下「仮想マシン上で動作するプログラム」、又は、「アプリケーション」とも言う。）により本編映像の再生を制御することが可能なコンテンツ（仮想マシン利用型コンテンツ）を記録した記録媒体を再生するものである。このようなコンテンツを記録した記録媒体は、例えば、ＤＶＤ、ＣＤ、Ｂｌｕ−ｒａｙディスクなどの光ディスクであるが、不揮発性半導体メモリなどの他の媒体であってもよい。なお、本実施の形態においては、記録媒体がＢｌｕ−ｒａｙディスク（ＢＤ）であり、仮想マシンがＪａｖａ（登録商標）仮想マシンである場合を説明する。
【００１３】
図１に示す映像情報再生装置は、記録媒体の一例である光ディスク（ＢＤ）１１を再生する再生部１０と、装置全体の制御及びＪａｖａアプリケーション（仮想マシン上で動作するプログラム）を実行する再生制御部としてのＣＰＵ２１と、不揮発メモリ２２とを有する。再生部１０は、ドライブ１２と、暗号復号制御部としての暗号復号処理ＣＰＵ１８と、デマルチプレクサ１３と、ビデオデコーダ１４と、字幕デコーダ１５と、オーディオデコーダ１６と、グラフィックス重畳部１７とを有する。
【００１４】
ドライブ１２は、光ディスク１１から情報を読み出し、この情報を暗号復号処理ＣＰＵ１８に出力する。暗号復号処理ＣＰＵ１８は、受け取った情報を復号し、この情報を、デマルチプレクサ１３に出力する。デマルチプレクサ１３は、ドライブ１２により読み出されたデータを、映像情報、音声情報、字幕グラフィック情報に分離する。ビデオデコーダ１４は、映像情報をデコードし、字幕デコーダ１５は、字幕グラフィック情報をデコードし、オーディオデコーダ１６は、音声情報をデコードする。グラフィックス重畳部１７は、デコードされた映像情報及びデコードされた字幕グラフィック情報に、ＣＰＵ２１から入力されるＪａｖａアプリケーションにより表示されるグラフィックス情報を重畳する。グラフィックス重畳部１７から出力される映像信号は、外部表示装置３１に送られ、外部表示装置３１によって映像が表示される。オーディオデコーダ１６から出力される音声信号は、音声出力装置に送られ、音声出力装置によって音声が出力される。
【００１５】
本実施の形態に係る映像情報再生装置において、ＣＰＵ２１は、Ｊａｖａアプリケーションを利用した仮想マシン利用型コンテンツの本編映像の再生中に停止操作がされ、停止位置からレジューム再生を行う場合、Ｊａｖａアプリケーションを利用して、再生を開始し、暗号復号処理ＣＰＵ１８（暗号復号アプリケーション）とデータのやり取りを行うことは可能である（後述する、図１７（ｂ）の比較例の場合）。しかし、このような再生方法では、再生開始までの待ち時間が長くなり、ユーザーの利便性が低下する。そこで、本実施の形態に係る映像情報再生装置及び方法では、仮想マシン利用型コンテンツの再生を途中停止した後、再生再開の指示がなされた後に実行されるレジューム再生の開始時には、仮想マシン上で動作するプログラムであるＪａｖａアプリケーションの代わりに前記仮想マシン上以外の環境で動作する代理プログラムとしての代理アプリケーションを起動させ、この代理アプリケーションと暗号復号プログラムとが、データのやり取りを行いながら、仮想マシン利用型コンテンツの映像の再生を実行することで、レジューム再生の開始時において正常な再生を実現する。
【００１６】
図２は、光ディスク１１に記録されている、ＢＤの再生に必要なファイルとディレクトリの構成の一例を示す図である。図２において、“Ｍｏｖｉｅ．ｔｉｔｌｅ”ファイルは、最上位の再生単位であるタイトルの制御に必要な情報が記述されたファイルである。図２において、“ＰＬＳＴ”は、プレイリスト（ＰｌａｙＬｉｓｔ）の再生制御に必要な情報が記述されたファイルが格納されているＰＬＳＴフォルダである。ＰＬＳＴフォルダ内には、ｐｌｓｔファイル“ｘｘｘ．ｐｌｓｔ”が複数存在する。ここで、“ｘｘｘ”は、３桁の数字である。図２において、“ＳＴＲＥＡＭ”は、映像情報、音声情報、グラフィックス情報などの再生に必要なファイルが格納されているＳＴＲＥＡＭ（ストリーム）フォルダである。ＳＴＲＥＡＭフォルダ内には、ｓｔｒｅａｍファイル“ｙｙｙ．ｓｔｒｍ”が複数存在する。ここで、“ｙｙｙ”は、３桁の数字である。なお、ｓｔｒｅａｍファイルは、デジタル放送で採用されているＴＳ（トランスポートストリーム）から構成され、固有のパケットＩＤを持つ映像情報、音声情報、グラフィックス情報が重畳されたファイルである。図２において、“ＣＬＩＰ”は、ｓｔｒｅａｍファイルの再生制御に必要な情報が記述されたｃｌｉｐファイルが格納されているＣＬＩＰフォルダである。ＣＬＩＰフォルダ内には、ｃｌｉｐファイル“ｚｚｚ．ｃｌｉｐ”が複数存在する。ここで、“ｚｚｚ”は、３桁の数字である。ｃｌｉｐファイルとｓｔｒｅａｍファイルとは、１対１に対応しており、例えば、ＣＬＩＰフォルダ内にｃｌｉｐファイル“１２３．ｃｌｉｐ”が存在する場合、ＳＴＲＥＡＭフォルダ内には、“１２３．ｃｌｉｐ”に対応するｓｔｒｅａｍファイル“１２３．ｓｔｒｍ”が存在する。図２において、“ＪＡＲ”は、Ｊａｖａ仮想マシン上で動作する、タイトル再生制御を行うアプリケーションが格納されたＪＡＲ（Ｊａｖａ  Ａｒｃｈｉｖｅ）フォルダである。ＪＡＲフォルダ内には、Ｊａｖａのアプリケーションを動かすために必要なファイル一式をＺＩＰ形式に圧縮したｊａｒファイル“￥￥￥．ｊａｒ”が存在する。ここで、“￥￥￥”は、３桁の数字である。図２において、“Ｄｅｃｒｙｐｔ．ｐｒｇ”ファイルは、暗号化されたコンテンツを復号するためのプログラムが格納されたファイルである。“Ｄｅｃｒｙｐｔ．ｐｒｇ”ファイルの詳細な動作については、後で説明を行う。
【００１７】
図３は、図２のｐｌｓｔファイル“ｘｘｘ．ｐｌｓｔ”のシンタックスの一例を示す図である。図３において、“ｎｕｍｂｅｒ＿ｏｆ＿ｓｔｒｅａｍ”は、プレイリスト（ＰｌａｙＬｉｓｔ）の中で再生されるｓｔｒｅａｍファイルの総数を示す。次の“ｆｏｒ”以下のループは、“ｎｕｍｂｅｒ＿ｏｆ＿ｓｔｒｅａｍ”の数だけ繰り返される。また、このループ内の“ｓｔｒｅａｍ＿ｆｉｌｅ＿ｎａｍｅ”には、再生対象となるｓｔｒｅａｍファイルのファイル名が記述される。また、“ｉｎ＿ｔｉｍｅ”及び“ｏｕｔ＿ｔｉｍｅ”には、ｓｔｒｅａｍファイルの再生対象となる部分の開始時刻と終了時刻が記述される。これらの時刻は、ｓｔｒｅａｍファイルのパケットに付加されたＰＴＳ（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ  Ｓｔａｍｐ）に記述される。
【００１８】
図４は、図２のｐｌｓｔファイルが示すプレイリスト（ＰｌａｙＬｉｓｔ）とｓｔｒｅａｍファイルとの関係の一例を示す図である。図４に示すプレイリストの再生においては、“００１．ｓｔｒｍ”の“ｉｎ＿ｔｉｍｅ”から“ｏｕｔ＿ｔｉｍｅ”までの部分と、“００３．ｓｔｒｍ”の“ｉｎ＿ｔｉｍｅ”から“ｏｕｔ＿ｔｉｍｅ”までの部分が順次再生される。
【００１９】
図５は、図２のｃｌｉｐファイル“ｚｚｚ．ｃｌｉｐ”のシンタックスの一例を示す図である。図５において、ｃｌｉｐファイルには、これと対をなすｓｔｒｅａｍファイルの映像情報、音声情報などの重畳情報や、ランダムアクセスなどに必要なインデックス情報が記述される。“ｓｔｒｅａｍ＿ｉｎｆｏ（）”には、重畳された映像情報、音声情報、グラフィックス情報の属性情報が記述される。ただし、“ｓｔｒｅａｍ＿ｉｎｆｏ（）”は、本発明とは、直接関係しないため、詳細に説明していない。また、“ｉｎｄｅｘ＿ｉｎｆｏ（）”には、ｓｔｒｅａｍファイルの各ＧＯＰの先頭の時間情報及び位置情報が記述される。“ｎｕｍｂｅｒ＿ｏｆ＿ＧＯＰ”は、ｓｔｒｅａｍファイル中に含まれるＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅ）の総数を示す。次のｆｏｒループは、“ｎｕｍｂｅｒ＿ｏｆ＿ＧＯＰ”の数だけ繰り返される。“ｓｔａｒｔ＿ＰＴＳ”は、ＧＯＰ先頭のＩピクチャーが持つＰＴＳ情報を示す。“ｒｅｌａｔｉｖｅ＿ｂｙｔｅ”は、ｓｔｒｅａｍファイルの先頭からＩピクチャーの先頭までの相対バイト数を示す。
【００２０】
図６は、“Ｍｏｖｉｅ．ｔｉｔｌｅ”ファイルのシンタックスの一例を示す図である。光ディスク１１がドライブ１２に挿入されると、ＣＰＵ２１の制御に従って、ドライブ１２は、先ず、光ディスク１１から“Ｍｏｖｉｅ．ｔｉｔｌｅ”ファイルを読み出す。図６において、“ｎｕｍｂｅｒ＿ｏｆ＿ｔｉｔｌｅ”は、光ディスク１１に記録されているタイトルの総数である。次のｆｏｒループは、“ｎｕｍｂｅｒ＿ｏｆ＿ｔｉｔｌｅ”の数だけ繰り返されるループである。“ｔｉｔｌｅ＿ｔｙｐｅ”は、Ｊａｖａアプリケーションを利用したタイトルコンテンツの場合、“１”に設定され、Ｊａｖａアプリケーションを利用しないタイトルコンテンツの場合、“０”に設定される。“ｔｉｔｌｅ＿ａｔｔｒｉｂｕｔｅ”は、当該タイトルが、メニュー画面表示用のタイトルである場合、“１”に設定され、メニュー画面表示用のタイトルでない場合、“０”に設定される。次のｉｆ文においては、“ｔｉｔｌｅ＿ｔｙｐｅ”が“１”のときに、Ｊａｖａアプリケーションが格納されたｊａｒファイル名が記述される。ｊａｒファイル名は、例えば、“１２３．ｊａｒ”となる。次のｅｌｓｅ文においては、“ｔｉｔｌｅ＿ｔｙｐｅ”が“０”のときに、再生されるプレイリストのファイルが記述される。再生されるプレイリストのファイルは、例えば、“１２３．ｐｌｓｔ”となる。“ｎｅｘｔ＿ｔｉｔｌｅ＿ｉｄ”には、現在再生しているタイトルの再生終了後、次に再生すべき“ｔｉｔｌｅ＿ｉｄ”が記述される。
【００２１】
ＣＰＵ２１は、ドライブ１２によって光ディスク１１から読み出された“Ｍｏｖｉｅ．ｔｉｔｌｅ”ファイルに基づいて、先頭に記述されたｔｉｔｌｅ情報に従って処理を行う。ここで、
ｔｉｔｌｅ＿ｔｙｐｅ＝１
ｔｉｔｌｅ＿ａｔｔｒｉｂｕｔｅ＝０
の場合、当該タイトルは、Ｊａｖａアプリケーションを利用したタイトルコンテンツであることから、ＣＰＵ２１は、使用するＪａｖａアプリケーションが格納されたファイル（例えば、“００１．ｊａｒ”）を読出し、解析を行う。
【００２２】
図７は、図２のＪＡＲフォルダ内のｊａｒファイルに相当する“００１．ｊａｒ”の構成の一例を示す図である。図７において、“００１．ｊａｒ”ファイルは、“ｔｅｓｔ＿ｉｍｇ．ｐｎｇ”、“ｔｅｓｔ．ｃｌａｓｓ”、及び“ｔｅｓｔ＄ｔｉｍｅｒ．ｃｌａｓｓ”の３つのファイルにより構成されている。“ｔｅｓｔ＿ｉｍｇ．ｐｎｇ”は、このアプリケーションで使用する画像データをＰＮＧフォーマットで圧縮したファイルである。“ｔｅｓｔ．ｃｌａｓｓ”及び“ｔｅｓｔ＄ｔｉｍｅｒ．ｃｌａｓｓ”は、Ｊａｖａアプリケーションを実行形式にコンパイルした実行ファイルである。以下、コンパイル前のソースコードを使って“ｔｅｓｔ．ｃｌａｓｓ”及び“ｔｅｓｔ＄ｔｉｍｅｒ．ｃｌａｓｓ”の動作を説明する。
【００２３】
図８乃至図１０は、“ｔｅｓｔ．ｃｌａｓｓ”及び“ｔｅｓｔ＄ｔｉｍｅｒ．ｃｌａｓｓ”のコンパイル前の一連のソースコードを示す図である。以下、図８乃至図１０に示すソースコードに基づく映像情報再生装置の動作について説明する。
【００２４】
図８に示すソースコードのＴ１部は、アプリケーションの実行に必要なパッケージをインポートする部分である。“ｏｒｇ．ｄｉｓｃ．ｎｅｔ．ＤｉｓｃＬｏｃａｔｏｒ”は、Ｊａｖａではプレイリストの再生は、サポートされていないため、プレイリスト再生のために用意された本実施の形態に固有のパッケージである。
図８に示すソースコードのＴ２部は、変数を宣言している部分である。Ｉ＿ＰＯＳ［］［］以下の記述は、Ｊａｖａアプリケーションを利用して表示される画像データ“ｔｅｓｔ＿ｉｍｇ．ｐｎｇ”の座標情報を示す。
【００２５】
図１１（ａ）及び（ｂ）は、Ｊａｖａアプリケーションを利用して表示される画像の一例を示す図である。図１１（ａ）は、“ｔｅｓｔ＿ｉｍｇ．ｐｎｇ”により表される画像の模式図であり、（Ｘｎ，Ｙｎ）は、メモリ上の座標値を表している。ここで、図８に示すソースコードのＴ２部に示すＩ＿ＰＯＳ［］［］における｛０，０，１２８，１２８｝の座標情報は、（Ｘ０，Ｙ０）＝（０，０）で示される座標と（Ｘ１，Ｙ１）＝（１２８，１２８）で示される座標とを頂点（対角線上に存在する２つの頂点）とする正方形の部分を切り出して表示すること意味する。すなわち、図１１（ａ）における「１」の画像が表示される。なお、図１１（ａ）に示す画像の表示態様（図１１（ｂ））については、後述する。
【００２６】
図９に示すソースコードのＴ３部は、“ｔｅｓｔ＿ｉｍｇ．ｐｎｇ”を読み込んで、ＰＮＧファイルのデコードを行う部分である。Ｔ３部のデコード完了後、処理はソースコードのＴ４部へ進む。ソースコードのＴ４部〜Ｔ６部は、メニュー画面が表示されるまでに再生される、予告編等のプレイリスト（ＰｌａｙＬｉｓｔ）の再生を実行する部分である。ここで、“ｉＰｌａｙＬｉｓｔＩＤ”は、再生対象とするプレイリストのファイル名であり、ソースコードのＴ４部においては、“ｉＰｌａｙＬｉｓｔＩＤ”は、“０”と記述されていることから、ファイル名“０００．ｐｌｓｔ”のプレイリスト再生が実行される。同様に、ソースコードのＴ５部においては、“ｉＰｌａｙＬｉｓｔＩＤ＝１”と記述されていることから、“００１．ｐｌｓｔ”のプレイリストの再生が実行され、ソースコードのＴ６部においては、“ｉＰｌａｙＬｉｓｔＩＤ＝２”と記述されていることから、“００２．ｐｌｓｔ”のプレイリストの再生が実行される。ソースコードのＴ４部〜Ｔ６部の各々において、プレイリストの再生が指示されると、ドライブ１２において、光ディスク１１から対応するプレイリストのデータが読み出される。読み出されたデータは、デマルチプレクサ１３により、映像情報、音声情報、字幕グラフィックス情報に分離され、映像情報は、ビデオデコーダ１４でデコードされ、音声情報は、オーディオデコーダ１６でデコードされ、字幕グラフィックス情報は、字幕デコーダ１５でデコードされる。
【００２７】
図１２は、本発明の実施の形態に係る映像情報再生方法に係るｐｌｓｔファイルのシンタックスを示す図である。ここで、ソースコードのＴ４部の処理を実行してプレイリスト“０００．ｐｌｓｔ”の再生制御をする際のＣＰＵ２１の動作について説明する。プレイリスト“０００．ｐｌｓｔ”の再生が開始されると、ＣＰＵ２１内のＪａｖａ制御部は、ＣＰＵ２１内のプレイリスト再生部に対してプレイリスト“０００．ｐｌｓｔ”の再生時間を一定時間毎に確認する。プレイリストの再生中、プレイリスト再生部は、Ｊａｖａ制御部からの確認の要求に対し、プレイリストの現在の再生時間を通知する。プレイリスト再生部から通知されるプレイリストの再生時間が、プレイリスト“０００．ｐｌｓｔ”の最終時間と一致すると、Ｊａｖａ制御部は、プレイリスト“０００．ｐｌｓｔ”の再生が完了したと認識し、次のＴ５部の処理を実行し、同様のシーケンスでプレイリスト“００１．ｐｌｓｔ”の再生を行う。
【００２８】
ソースコードのＴ７部は、Ｔ４部〜Ｔ６部の処理を実行した後（予告編等のプレイリスト表示した後）、メニュー画面を表示するための処理を実行するソースコードである。Ｔ７部は、本出願に係る発明の本質とは関係がないため、詳細には説明していない。
【００２９】
図１３は、ソースコードのＴ７部の処理を実行することにより表示されるメニュー画面を示す図である。図１３に示すメニュー画面は、選択可能な３つのボタンを備え、３本の本編映像のいずれかを、３つのボタンのいずれかの操作によって、選択的に再生することができる。本実施の形態では、一番左の“本編１”が選択された時の動作について説明をする。
【００３０】
図１０は、本編１を構成するプレイリストの再生を実行するソースコードを示す図である。メニュー画面中の“本編１”のボタンが選択されると、図１０に示すソースコードのＴ８部の処理が実行される。Ｔ８部は、プレイリスト“００３．ｐｌｓｔ”の再生を行いながら、図１１（ａ）に示すＪａｖａアプリケーションのグラフィック画像を表示するものである。具体的には、図１１（ａ）に示す「１」〜「３０」の画像が“００３．ｐｌｓｔ”により指定されるプレイリスト映像４０に重畳して、図１１（ｂ）の上から下に向けて並べて示される「シーンＮｏ．１」〜「シーンＮｏ．１５」ように、例えば、１秒毎に順次表示される。この際、ＣＰＵ２１により生成された図１１（ａ）に示す「１」〜「３０」のグラフィックス画面と、ビデオデコーダ１４の出力画面と、字幕デコーダ１５の出力画面とが、グラフィックス重畳部１７で重畳され、重畳された画像の画像信号が外部表示装置３１に出力される。
【００３１】
以上のようにして、Ｊａｖａアプリケーションを利用することにより、本編映像上に種々のグラフィック画像を同時に表示する等の複雑な映像の再生を行うことができる。ここで、Ｊａｖａアプリケーションは、再生開始前、ソースコードのＴ３部において、グラフィック画像表示に使用するＰＮＧファイルのデコードを行うように記述されている。これは、ＰＮＧデータやＪＰＥＧデータのデコードのデコード処理は、再生装置に特化したＣＰＵにとって非常に負荷の重い処理であり、Ｊａｖａアプリケーションを実行しながらデコードを行うと、グラフィックスの表示がスムーズに実行できないためである。このため、ユーザーが再生開始を指示してから、ＰＮＧファイル等のデコードが完了し、実際に再生映像が表示されるまでに、数十秒から数分の待ち時間が発生する。
【００３２】
ここで、Ｊａｖａアプリケーションを利用したコンテンツの再生を中断し、レジューム再生を行う場合に生じる問題点について説明する。例えば、図１１（ａ）に示す「１５」の画像を表示した時点で再生が中断された場合、「１５」の画像を表示した時点からレジューム再生をするには、「１５」の画像を表示していた時点のＣＰＵ２１の状態と、ＣＰＵ２１の外部メモリ（ＲＡＭ）の情報を全て、フラッシュメモリなどの不揮発メモリに待避して保持することが必要である。しかし、映像再生機能を実現するための最低限のハードウェア機器で構成する民生用の装置においては、このような構成を採用することが難しい。このため、Ｊａｖａアプリケーションを利用したレジューム再生を行う場合は、ソースコードのＴ１部〜Ｔ３部の処理を再度実行した上で、プレイリストの先頭（「１」の表示画面）から再生を開始することとなり、ユーザーの利便性が大きく損なわれる。
【００３３】
上記の問題を解消するため、本実施の形態に係る映像情報再生装置においては、Ｊａｖａアプリケーションを動作させずに、Ｊａｖａアプリケーションを利用しないプレイリストとして再生を開始するレジューム再生（「簡易レジューム再生」とも言う）を行う。これにより、レジューム再生の開始時に、速やかに再生を開始することができる。この場合、Ｊａｖａアプリケーションが動作しないため、「１」〜「３０」のグラフィックスの表示は、行われないが、例えば、ビデオデコーダ１４からの本編映像とオーディオデコーダ１６からの音声は、再生される。一般的に市販されているような映画ソフトの場合、一部の機能が制限されるものの、Ｊａｖａアプリケーションが動作していていなくても、映像、音声、字幕は、表示可能であり、コンテンツの内容は、十分に理解することができる。
【００３４】
次に、ＣＰＵ２１のＪａｖａアプリケーションと、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションとの間のデータのやり取りで、暗号化されたコンテンツが復号される手順について説明する。暗号化されたｓｔｒｅａｍファイルを含むプレイリストが再生される場合において、復号アプリケーションが格納された“ｄｅｃｒｙｐｔ．ｐｒｇ”ファイルが、図２の暗号復号処理ＣＰＵ１８にロードされる。暗号復号処理ＣＰＵ１８上には、暗号復号アプリケーションを実行するための仮想マシン（Ｊａｖａ仮想マシンとは、異なる仮想マシン）が実装されており、この仮想マシン上で暗号復号アプリケーションが実行される。仮想マシン上で暗号復号アプリケーションが実行されることで、暗号復号処理ＣＰＵ１８上でどのような演算処理が行われているか推測することが非常に困難なため、ハッキングを受けにくいというメリットがある。暗号復号アプリケーションがロードされると同時に、暗号復号アプリケーションとデータのやり取りを行うＪａｖａアプリケーションを含むＪＡＲファイル“ｘｘｘ．ｊａｒ”がＣＰＵ２１にロードされる。“ｘｘｘ”は、プレイリスト再生のためにロードされたＪＡＲファイルの中に記述されているため、特に指定しない。
【００３５】
図１４は、暗号復号処理ＣＰＵ１８とＣＰＵ２１との間の、データのやり取りを示した通常再生時のシーケンス図である。図１４に示されるように、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションから、“数値Ａ”がＣＰＵ２１のＪａｖａアプリケーションに引き渡される。ここで“数値Ａ”は、暗号復号処理ＣＰＵ１８の暗号復号アプリケーション内の処理の結果、生成される値であり、不特定の値である。
次に、ＣＰＵ２１のＪａｖａアプリケーションは、受け取った“数値Ａ”を用いて、所定の関数Ｆ（Ａ）の演算を行う。
次に、関数Ｆ（Ａ）の演算結果である“数値Ｂ”が、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションに引き渡される。暗号復号処理ＣＰＵ１８の暗号復号アプリケーションでは、演算結果である“数値Ｂ”を用いて復号処理を行う。
以上のデータのやり取りが、定期的に行われることで、暗号化されたコンテンツの復号処理が行われる。以上では、ＣＰＵ２１のＪａｖａアプリケーションと暗号復号処理ＣＰＵ１８の暗号復号アプリケーションとの間のデータのやり取りが、“数値Ａ”と“数値Ｂ”の１対１のデータのやり取りである場合を説明したが、“数値Ａ”と“数値Ｂ”との対応は、１対１のデータのやり取りに限定されるものではない。例えば、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションが“数値Ａ”及び“数値Ｃ”をＣＰＵ２１のＪａｖａアプリケーションに引渡し、ＣＰＵ２１のＪａｖａアプリケーションが関数Ｆ（Ａ，Ｃ）の演算結果を“数値Ｂ”として暗号復号処理ＣＰＵ１８の暗号復号アプリケーションに返すといった、２対１のデータのやり取りであってもよい。
【００３６】
以上は、Ｊａｖａアプリケーションがロードされている通常再生時の動作であるが、レジューム再生の開始時には、Ｊａｖａアプリケーションを起動させずに再生が行われる。Ｊａｖａアプリケーションが起動していないと、暗号復号アプリケーションは、復号処理に必要な“数値Ｂ”を得ることができないため、正常に復号処理ができなくなり、映像や音声が正常に再生されない問題がある。
【００３７】
以下、本実施の形態に係る映像情報再生方法及び映像情報再生装置において、レジューム再生の開始時に、Ｊａｖａアプリケーションを起動させなくても、暗号化されたコンテンツを正常に復号する方法について説明する。暗号復号アプリケーションとデータのやりとりを行うＪａｖａアプリケーションでは、所定の関数Ｆ（Ａ）が演算されるが、この関数Ｆ（Ａ）は、ＪＡＲファイルを解析することで演算内容を把握することが可能である。また、Ｊａｖａアプリケーション内の演算内容は、Ｊａｖａ以外の言語に置き換えることも可能である。即ち、関数Ｆ（Ａ）に等価な演算処理を、ＣＰＵ２１上でネイティブに動作するＣ言語等を使用して、代理演算をさせることで、Ｊａｖａアプリケーションが起動しないレジューム再生の開始時においても、暗号化されたデータの復号処理が可能である。
【００３８】
図１５は、通常再生時にＣＰＵ２１のＪａｖａアプリケーションと暗号復号処理ＣＰＵ１８の暗号復号アプリケーションとの間で行われる数値のやり取りを検知する際の、ＣＰＵ２１のＪａｖａアプリケーションにおける処理を示すフローチャートである。図１５に示されるように、ＣＰＵ２１のＪａｖａアプリケーションは、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションとの数値のやり取り（数値の受取り、及び、数値の引渡し）があるかどうかをモニターする（ステップＳ１）。ＣＰＵ２１のＪａｖａアプリケーションは、暗号復号アプリケーションとの数値のやり取りが無い（ステップＳ１においてＮＯ）ときに、再生停止の指示を受けると（ステップＳ２のＹＥＳ）、フラグ“ｃｒｙｐｔ＿ｆｌａｇ”を“０”にセットする（ステップＳ３）。ＣＰＵ２１のＪａｖａアプリケーションは、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションからの数値の提供を検知すると（ステップＳ１でＹＥＳ）、フラグ“ｃｒｙｐｔ＿ｆｌａｇ”を“１”にセットし（ステップＳ４）、再生停止の指示を受けたときに（ステップＳ５においてＹＥＳ）、処理を停止する。ここで、“ｃｒｙｐｔ＿ｆｌａｇ”は、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションから数値の受け渡しがあった場合は、“１”にセットされ、無かった場合は、“０”にセットされるフラグであり、ＣＰＵ２１のワークメモリ上に保持される情報である。映像情報再生装置の電源オフ後にもこの情報を記憶する必要がある場合には、不揮発メモリ２２にこの情報を保持する必要がある。
【００３９】
図１６は、レジューム再生の開始時の暗号復号処理を示すフローチャートである。図１６に示されるように、ＣＰＵ２１は、レジューム再生の開始の指示を受け取ると、フラグ“ｃｒｙｐｔ＿ｆｌａｇ”の値が“１”にセットされているか否かを確認する（ステップＳ１１）。“フラグｃｒｙｐｔ＿ｆｌａｇ”の値が“１”にセットされていない（ステップＳ１１においてＮＯ）場合は、Ｊａｖａアプリケーションと暗号復号アプリケーションとの間で数値のやり取りを行わないコンテンツであるため、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションによる暗号復号を伴わない通常のレジューム再生（代理アプリケーションを使用しないレジューム再生）を行う（ステップＳ１６）。フラグ“ｃｒｙｐｔ＿ｆｌａｇ”の値が“１”にセットされている場合、ＣＰＵ２１のＪａｖａアプリケーションは、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションからの、“数値Ａ”の引渡しを監視する（ステップＳ１２）。ＣＰＵ２１のＪａｖａアプリケーションは、暗号アプリケーションからの“数値Ａ”の引渡しを検知すると、Ｊａｖａアプリケーションの演算処理Ｆ（Ａ）に等価で、且つ、Ｃ言語で記述された代理プログラムとしての代理アプリケーションにおける関数Ｆ′（Ａ）の演算処理を用いてＪａｖａアプリケーションの代理演算を実行する（ステップＳ１３）。ＣＰＵ２１の代理アプリケーションは、関数Ｆ′（Ａ）で演算された結果を、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションに引渡す（ステップＳ１４）。ＣＰＵ２１の代理アプリケーションは、ステップＳ１２からＳ１４までの処理を繰り返すことで、暗号化されたコンテンツの復号処理を行う（ステップＳ１５）。
【００４０】
以上に説明したように、本実施の形態においては、レジューム再生の開始時に、ＣＰＵ２１のＪａｖａアプリケーションと暗号復号処理ＣＰＵ１８の暗号復号アプリケーションとの間で数値のやり取りを行うコンテンツであっても、Ｊａｖａアプリケーションを直ぐに動作させずに、Ｊａｖａアプリケーションよりも簡易なプログラムである代理アプリケーションを動作させてレジューム再生を開始する。このように、レジューム再生の指示を受けた直後においては、暗号復号処理ＣＰＵ１８の暗号復号アプリケーションとの数値のやり取りを、代理アプリケーションによって実行させ、暗号化されたデータを復号しているので、レジューム再生の指示の直後から正常に再生を開始することが可能となる。なお、代理アプリケーションは、ＣＰＵ２１上でネイティブに動作する代理アプリケーションによって実行させ、暗号化されたデータを復号しているので、レジューム再生の指示の直後から正常にレジューム再生を開始することが可能となる。
【００４１】
以下に、本実施の形態の効果をより詳細に説明する。図１７（ａ）及び（ｂ）はそれぞれ、比較例１及び２の映像情報再生方法におけるコンテンツの再生開始の処理を示すタイミング図であり、図１８は、本実施の形態に係る映像情報再生方法におけるコンテンツの再生開始の処理を示すタイミング図である。
【００４２】
例えば、Ｊａｖａアプリケーションを利用したコンテンツを、Ｊａｖａアプリケーションを利用しないコンテンツとして扱うことで、再生開始までの時間を短縮する映像情報再生方法の場合（比較例１）には、図１７（ａ）に示されるように、時刻ｔ０で通常再生が中断され、時刻ｔ１で再生開始の操作がなされた直後から再生（機能制限再生）が開始され、Ｊａｖａアプリケーションの起動準備完了後の時刻ｔ２に、通常再生に移行する。
しかし、一部の仮想マシン利用型コンテンツにおいて、暗号化された映像データや音声データを復号する際に、暗号復号アプリケーションとＪａｖａアプリケーションとの間でデータのやり取りを行うことで、暗号の復号処理を行っている場合（比較例２）がある。このようなコンテンツにおいて、Ｊａｖａアプリケーションを起動させずにレジューム再生を行った場合、データの暗号化を解除することができないため、Ｊａｖａアプリケーションを起動しなければならない。このため、図１７（ｂ）に示されるように、時刻ｔ０で通常再生が中断され、時刻ｔ１で再生開始の操作がなされた直後から再生（機能制限再生）を開始せずに、Ｊａｖａアプリケーションの起動準備完了後の時刻ｔ１２に通常再生が開始される。
このように、比較例の映像情報再生方法では、図１７（ａ）のようにレジューム再生が再生開始操作の直後から始まる場合と、図１７（ｂ）のようにレジューム再生が再生開始操作時からレジューム再生の準備に要する時間が経過した後から始まる場合とがあり、レジューム再生が開始されるまでの待ち時間が短縮されない場合がある。
【００４３】
これに対し、本実施の形態に係る映像情報再生方法においては、図１８に示されるように、時刻ｔ０で通常再生が中断され、時刻ｔ１で再生開始の操作がなされた直後から代理アプリケーションの起動が行われ、代理アプリケーションの起動準備が完了した時刻ｔ２２からレジューム再生が開始され、Ｊａｖａアプリケーションの起動準備完了後の時刻ｔ２３に、通常再生に移行する。このように、本実施の形態においては、レジューム再生の開始時に、Ｊａｖａアプリケーションと暗号復号アプリケーションとの間で数値のやり取りを行うコンテンツであっても、Ｊａｖａアプリケーションを直ぐには動作させずに、Ｊａｖａアプリケーションよりも簡易なプログラムである代理アプリケーションを動作させてレジューム再生を行うことによって、暗号化されたデータを復号しているので、レジューム再生の指示の直後から正常に再生を開始することが可能となる。なお、代理アプリケーションは、レジューム再生の開始に必要な最低限の構成要素を含むプログラムであって、Ｊａｖａアプリケーションよりも短時間で動作を開始することができるプログラムである。
【００４４】
図１９は、図１６を改良した処理を示すフローチャートである。図１９において、図１６におけるステップと同じステップには、同じ符合を付す。図１９における処理では、関数Ｆ（Ａ）は、例えば、「Ｆ（Ａ）＝“数値Ａ”＆“固定値”」のように、「数値Ａ」と「固定値」とを使用して関数Ｆ（Ａ）の演算が定義されている場合がある。すなわち、ある条件の下では「Ｆ（Ａ）＝“数値Ａ”」であるが、他の条件の下では「Ｆ（Ａ）＝“固定値”」となる場合である。この固定値は、光ディスク毎に異なり、また、Ｆ（Ａ）も光ディスク毎に異なる。そのため、ＣＰＵ２１の代理アプリケーションによる代理演算を行うための関数Ｆ′（Ａ）の演算結果だけでは、暗号復号処理を正常に行うことができなくなる。
【００４５】
そこで、図１９の例では、以下のように処理を行う。先ず、ＣＰＵ２１は、Ｊａｖａアプリケーションと、暗号復号アプリケーションとの間で数値のやり取りを検知すると（ステップＳ１においてＹＥＳ）、フラグ“ｃｒｙｐｔ＿ｆｌａｇ”の値を１にセットし（ステップＳ４）、暗号復号アプリケーションと数値のやり取りを行うＪａｖａアプリケーションを含むＪＡＲファイルの中を解析し、関数Ｆ（Ａ）に含まれる固定値の検索を実行する（ステップＳ２０）。ここで検出された、固定値は、フラグ“ｃｒｙｐｔ＿ｆｌａｇ”と同様に、ＣＰＵ２１のワークメモリ上で保持される値であり、電源オフ後にもこの値を記憶する必要がある場合は、不揮発メモリ２２に保持する。レジューム再生の開始時の処理は、図１６に示される処理と同様であるが、図１６のステップＳ１３の代理演算実行では、上記で得られた固定値を利用してＦ′（Ａ）の演算を実行する必要がある。なお、上記例では、固定値が１つである場合を説明したが、固定値は複数の場合もある。
【００４６】
以上、説明したように、光ディスク毎に関数Ｆ（Ａ）で使用される固定値が異なる場合において、簡易再生を開始する前に、ｊａｒファイルから固定値を検索し、検索された固定値を使って関数Ｆ′（Ａ）の演算を行うことで、暗号化されたデータを復号し正常に再生することが可能となる。
【符号の説明】
【００４７】
１０  再生部、  １１  光ディスク（記録媒体）、  １２  ドライブ、  １３  デマルチプレクサ、  １４  ビデオデコーダ、  １５  字幕デコーダ、  １６  オーディオデコーダ、  １７  グラフィックス重畳部、  １８  暗号復号処理ＣＰＵ、  ２１  ＣＰＵ（再生制御手段）、  ２２  不揮発メモリ、  ３１  外部表示装置。
【図１】
0005615445.tif 000002
【図２】
0005615445.tif 000003
【図３】
0005615445.tif 000004
【図４】
0005615445.tif 000005
【図５】
0005615445.tif 000006
【図６】
0005615445.tif 000007
【図７】
0005615445.tif 000008
【図８】
0005615445.tif 000009
【図９】
0005615445.tif 000010
【図１０】
0005615445.tif 000011
【図１１】
0005615445.tif 000012
【図１２】
0005615445.tif 000013
【図１３】
0005615445.tif 000014
【図１４】
0005615445.tif 000015
【図１５】
0005615445.tif 000016
【図１６】
0005615445.tif 000017
【図１７】
0005615445.tif 000018
【図１８】
0005615445.tif 000019
【図１９】
0005615445.tif 000020