説明

映像情報再生方法及び映像情報再生装置

【課題】仮想マシン上で動作するプログラムにより映像の再生が制御可能なコンテンツについて、再生停止位置から再生を再開するときに、待ち時間を短縮できるようにすること。
【解決手段】制御部120は、記録媒体としての光ディスク101に記録されている仮想マシン利用型コンテンツが、仮想マシン上で動作するプログラムが起動しているとき及びこのプログラムが起動していないときの何れでも映像を再生することのできる第1種類のコンテンツであるか、このプログラムが起動しているときにのみ映像を再生することのできる第2種類のコンテンツであるかを、光ディスク101に記録されている再生制御情報から判定し、この仮想マシン利用型コンテンツが第1種類のコンテンツである場合には、このプログラムを起動させないで、再生部110に、映像の再生が停止された位置から、映像の再生を再開させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像情報再生方法及び映像情報再生装置に関し、特に、仮想マシン上で動作するプログラムにより映像の再生が制御可能な仮想マシン利用型コンテンツを記録した記録媒体から映像を再生する映像情報再生方法及び映像情報再生装置に関するものである。
【背景技術】
【0002】
映画及びドラマ等の映像コンテンツを再生する機器として、DVD(登録商標)プレーヤがある。DVDプレーヤで映像の再生を制御するために、比較的単純な制御用の言語であるナビゲーション・コマンドが利用されている。また、ハイビジョンとして記録されているコンテンツを再生可能なBlu−ray(登録商標)プレーヤが普及し始めている。Blu−ray規格では、複雑でインタラクティビティの高いコンテンツを視聴できるようにするためにJava(登録商標)仮想マシンが採用されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−193642号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
DVDの再生データは、映像データ、音声データ、グラフィックデータ、映像制御データから構成されており、映像データ、音声データ及びグラフィックデータは、1つのファイルに重畳されている。一般に、DVDプレーヤにおいて、DVDの再生が停止(中断又はサスペンド)され、その後、再生が再開(レジューム)された場合、数秒から十数秒の待ち時間経過後に、前回の再生停止位置から再生が再開(レジューム)される。この場合には、映像データや音声データ等の再生に必要なデータが1つのファイルにすべて重畳されており、ファイルサイズの非常に小さな管理情報ファイルを再読み込みすることによって再生停止位置から再生を再開できるので、再生再開までの待ち時間は短い。
【0005】
しかしながら、Java仮想マシンを利用したコンテンツを格納したBlu−rayディスクをレジューム再生する際には、再生を停止した際にメモリに格納されていた全てのデータを待避させなければならない等、処理負荷が非常に大きい。このため、Blu−rayプレーヤによっては、レジューム再生を行うことができないように構成されていたり、レジューム再生行うことができるように構成されていても、レジューム再生を行うための処理時間が非常に長くなっていたりしていた。従って、Blu−rayプレーヤにおいて、Java仮想マシンを利用したコンテンツに含まれている映像等の再生が停止され、その後、再生が再開された場合には、例えば、Blu−rayディスクを装置に挿入した直後の状態から再生動作をやり直すことが要求されたり、視聴していた映像の先頭から再生が再開されたり、又は、再生が再開されるまでに数十秒から数分の時間を要したりしていた。このため、Blu−rayプレーヤにおけるレジューム再生には、ユーザの利便性が大きく損なわれるという問題があった。
【0006】
そこで、本発明は、上記課題を解決するためになされたものであり、その目的は、仮想マシン上で動作するプログラムにより映像の再生が制御可能なコンテンツについて、再生停止位置から再生を再開するときに、待ち時間を短縮できるようにすることにある。
【課題を解決するための手段】
【0007】
本発明の1態様に係る映像情報再生方法は、仮想マシン上で動作するプログラム、当該プログラムにより映像の再生が制御可能な仮想マシン利用型コンテンツ、および、前記仮想マシン利用型コンテンツの再生制御情報を含むプレイリストファイル、が記録された記録媒体から、前記映像を再生する処理を行う再生部と、制御部と、を備える映像情報再生装置が行う映像情報再生方法であって、前記制御部が、前記仮想マシン利用型コンテンツが、前記プログラムが起動しているとき及び前記プログラムが起動していないときの何れでも映像を再生することのできる第1種類のコンテンツであるか、前記プログラムが起動しているときにのみ映像を再生することのできる第2種類のコンテンツであるかを、前記再生制御情報から判定する判定過程と、前記仮想マシン利用型コンテンツの映像の再生が停止され、当該映像の再生を再開する際に、前記制御部が、前記判定過程で前記仮想マシン利用型コンテンツが前記第1種類のコンテンツであると判定されている場合には、前記プログラムを起動させないで、前記再生部に、前記映像の再生が停止された位置から、前記映像の再生を再開させる再生再開過程と、を有することを特徴とする。
【発明の効果】
【0008】
本発明の1態様によれば、仮想マシン上で動作するプログラムにより映像の再生が制御可能なコンテンツについて、再生停止位置から再生を再開するときに、待ち時間を短縮することができる。
【図面の簡単な説明】
【0009】
【図1】映像情報再生装置の構成を概略的に示すブロック図である。
【図2】再生に必要なファイルとディレクトリの構成の一例を示す図である。
【図3】plstファイルのシンタックスの一例を示す概略図である。
【図4】UO_permission_tableの詳細を示す概略図である。
【図5】プレイリストとstreamファイルとの関係の一例を示す図である。
【図6】clipファイルのシンタックスの一例を示す図である。
【図7】Movie.titleファイルのシンタックスの一例を示す概略図である。
【図8】jarファイルの構成の一例を示す概略図である。
【図9】test.class及びtest$timer.classのコンパイル前のソースコードの一例を示す概略図(その1)である。
【図10】test.class及びtest$timer.classのコンパイル前のソースコードの一例を示す概略図(その2)である。
【図11】test.class及びtest$timer.classのコンパイル前のソースコードの一例を示す概略図(その3)である。
【図12】(A)及び(B)は、Java仮想マシン上で動作するプログラムによって制御されるコンテンツの映像の再生が行われる手順を説明するための概略図ある。
【図13】映像情報再生装置における判定処理を示すフローチャートである。
【図14】映像情報再生装置における、再生を停止して、再開する処理を示すフローチャートである。
【図15】(A)〜(C)は、映像情報再生装置での再生停止位置と再生再開位置とを説明するための概略図である。
【発明を実施するための形態】
【0010】
図1は、本発明における実施の形態に係る映像情報再生装置100の構成を概略的に示すブロック図である。本実施の形態に係る映像情報再生装置100は、仮想マシン上で動作するプログラムにより映像の再生が制御され得る1又は複数のコンテンツを記録した記録媒体から、映像等を再生する装置である。また、本実施の形態に係る記録媒体は、例えば、光ディスクのようなディスク状記録媒体である。光ディスクは、例えば、DVD、CD、Blu−rayディスク(BD)等である。さらに、仮想マシンは、例えば、Java仮想マシンである。図1に示すように、映像情報再生装置100は、再生部110と、制御部120と、記憶部130と、入力部140とを備える。
【0011】
再生部110は、記録媒体に記録されている情報に基づいて、映像及び音声等を再生する処理を行う。例えば、再生部110は、ドライブ111と、デマルチプレクサ112と、字幕デコーダ113と、ビデオデコーダ114と、オーディオデコーダ115と、グラフィックス重畳部116とを備える。
【0012】
ドライブ111は、記録媒体としての光ディスク101から情報を読み出す。なお、本実施の形態においては、光ディスク101は、Blu−rayディスクであるが、他の種類の記録媒体であってもよい。また、本実施の形態においては、光ディスク101は、Java仮想マシンのプログラムと、このJava仮想マシン上で動作するプログラムと、Java仮想マシン上で動作するプログラムにより映像の再生が制御され得る1又は複数の仮想マシン利用型コンテンツと、仮想マシン利用型コンテンツの再生制御情報を含むプレイリストファイルとを記録している。
デマルチプレクサ112は、ドライブ111で読み出された情報を、字幕情報、映像情報及び音声情報等の各情報に分離する。
【0013】
字幕デコーダ113は、デマルチプレクサ112で分離された字幕情報をデコードし、字幕信号を生成する。
ビデオデコーダ114は、デマルチプレクサ112で分離された映像情報をデコードし、映像信号を生成する。
オーディオデコーダ115は、デマルチプレクサ112で分離された音声情報をデコードし、音声信号を生成する。オーディオデコーダ115で生成された音声信号は、スピーカ等の音声出力装置103に出力される。
【0014】
グラフィックス重畳部116は、制御部120からの指示に応じて、ビデオデコーダ114で生成された映像信号に、字幕デコーダ113で生成された字幕信号及び制御部120で生成されたグラフィック信号の少なくとも何れか一方を重畳して、重畳済みの映像信号を生成する。重畳済みの映像信号は、表示装置102に出力される。なお、グラフィックス重畳部116は、制御部120からの指示により、字幕デコーダ113で生成された字幕信号及び制御部で生成されたグラフィック信号の何れも重畳しない場合には、ビデオデコーダ114で生成された映像信号を表示装置102に出力する。
【0015】
制御部120は、映像情報再生装置100での処理の全体を制御し、特に、再生部110を制御して、映像及び音声等を再生する処理を制御する。例えば、制御部120は、再生制御部121と、判定部122とを備える。なお、制御部120は、所定のプログラムをCPUで実行することにより実現することができる。
【0016】
再生制御部121は、再生部110を制御して、光ディスク101に記録されているコンテンツから映像及び音声等を再生させる。また、再生制御部121は、光ディスク101に記録されているJava仮想マシンのプログラム及びJava仮想マシン上で動作するプログラムを実行する。そして、再生制御部121は、これらのプログラムを実行することにより、グラフィック信号を生成し、このグラフィック信号をグラフィックス重畳部116に与える。
さらに、再生制御部121は、判定部122での判定結果に応じて、レジューム再生処理を制御する。例えば、再生制御部121は、再生を再開する対象となる仮想マシン利用型コンテンツが、判定部122により、Java仮想マシン上で動作するプログラムが起動しているとき又はJava仮想マシン上で動作するプログラムが起動していないときの何れでも映像を再生することのできる第1種類のコンテンツであると判別された場合には、Java仮想マシン上で動作するプログラムを起動しないで、再生停止位置から再生部110に再生を再開させる。一方、再生制御部121は、再生を再開する対象となる仮想マシン利用型コンテンツが、判定部122により、Java仮想マシン上で動作するプログラムが起動しているときにのみ映像を再生することのできる第2の種類のコンテンツであると判別された場合には、Java仮想マシン上で動作するプログラムを起動してから、再生部110に再生を再開させる。なお、再生制御部121は、再生再開対象である仮想マシン利用型コンテンツが第2の種類のコンテンツであると判別された場合には、再生部110にコンテンツの光ディスク101の先頭、又は、再生再開対象の仮想マシン利用型コンテンツの先頭等の予め定められた位置から再生を再開させる。
【0017】
判定部122は、光ディスク101に記憶されている仮想マシン利用型コンテンツが、仮想マシン上で動作するプログラムが起動しているとき及びこのようなプログラムが起動していないときの何れでも、映像の再生が可能な第1種類のコンテンツであるか、又は、仮想マシン上で動作するプログラムが起動しているときにのみ、映像の再生が可能な第2種類のコンテンツであるか、を判定する。
【0018】
記憶部130は、制御部120での処理に必要な情報を記憶する。例えば、記憶部130は、制御部120でレジューム再生を行うために必要な情報を記憶する。なお、記憶部130は、例えば、不揮発メモリにより実現することができる。
入力部140は、ユーザからの指示の入力を受け付ける。例えば、入力部140は、リモコン等により実現することができる。
【0019】
図2は、記録媒体としての光ディスク101に記録されている、再生に必要なファイルとディレクトリの構成の一例を示す図である。図2に示されている“Movie.title”は、最上位の再生単位であるタイトルの制御に必要な情報が記述されたMovie.titleファイルである。図2に示されている“PLST”は、プレイリスト(PlayList)の再生制御に必要な情報(再生制御情報)が記述されたplstファイル(プレイリストファイル)が格納されているPLSTフォルダである。PLSTフォルダ内には、plstファイルである“xxx.plst”が複数存在する。ここで、“xxx”は、各々のplstファイルを識別するための識別情報であって、本実施の形態では、各々のplstファイルにおいて一意となる3桁の数字である。図2に示されている“CLIP”は、図2に示されている“STREAM”フォルダ内に格納されているstreamファイルの再生制御に必要な情報が記述されたclipファイルが格納されているCLIPフォルダである。CLIPフォルダ内には、clipファイルである“yyy.clpi”が複数存在する。ここで、“yyy”は、各々のclipファイルを識別するための識別情報であって、本実施の形態では、各々のclipファイルにおいて一意となる3桁の数字である。clipファイルとstreamファイルとは1対1に対応しており、例えば、CLIPフォルダ内にclipファイルである“123.clpi”が存在する場合には、STREAMフォルダ内には、“123.clpi”に対応するstreamファイルである“123.strm”が存在する。図2に示されている“STREAM”は、映像、音声及び字幕等の再生に必要なstrmファイルが格納されているSTREAM(ストリーム)フォルダである。STREAMフォルダ内には、streamファイルである“zzz.strm”が複数存在する。ここで、“zzz”は、各々のstreamファイルを識別するための識別情報であって、本実施の形態では、各々のstreamファイルにおいて一意となる3桁の数字である。なお、streamファイルは、TS(トランスポートストリーム)から構成され、固有のパケットIDを持つ映像情報、音声情報及び字幕情報が重畳されたファイルである。図2に示されている“JAR”は、Java仮想マシン上で動作する、タイトル再生制御を行うアプリケーションが格納されているJAR(Java ARchive)フォルダである。JARフォルダ内には、Javaのアプリケーションを動かすために必要なファイル一式をZIP形式に圧縮したjarファイルである“¥¥¥.jar”が存在する。ここで、“¥¥¥”は、各々のjarファイルを識別するための識別情報であって、各々のjarファイルにおいて一意となる3桁の数字である。
【0020】
図3は、plstファイル“xxx.plst”のシンタックスの一例を示す概略図である。“playback_type”は、プレイリストの始めから終わりまでシーケンシャルに再生が行われる場合には、その値が“0”となり、プレイリスト中のある再生ポイントから別の再生ポイントへ再生が遷移する場合には、その値が“1”となる。“number_of_stream”は、プレイリストの中で再生するstreamファイルの総数を示す。“UO_permission_table”は、streamの再生中に行われるユーザ操作の可否を示す。なお、“UO_permission_table”については、後で詳細に説明する。次の“for”以下のループは、“number_of_stream”の数だけ繰り返される。また、このループ内の“stream_file_name”には、再生対象となるstreamファイルのファイル名が記述される。“still_play”は、その値が“0”の場合には、streamの終端でスチル(静止画)状態にならずに、続けて次のstreamの再生を行い、その値が“1”の場合には、streamの終端で“still_time”に記述された時間だけスチル状態になった後に、次のstreamの再生に遷移することを示す。また、“in_time”及び“out_time”には、streamファイルの再生対象となる部分の開始時刻と終了時刻がそれぞれ記述される。これらの時刻は、streamファイルのパケットに付加されたPTS(Presentation Time Stamp)に記述される。
【0021】
図4は、“UO_permission_table”の詳細を示す概略図である。“time_search”は、タイムサーチの可否を示す。“skip_up”は、次のチャプターへのスキップアップの可否を示す。“skip_down”は、前のチャプターへのスキップダウンの可否を示す。“stop”は、再生停止の可否を示す。“pause_on”は、再生の一時停止の可否を示す。“forward_play”は、早送り再生の可否を示す。“backward_play”は、早戻し再生の可否を示す。
“subtilte_change”は、字幕のON/OFFの可否を示す。“audio_change”は、音声切り替えの可否を示す。“angle_change”は、アングル切り替えの可否を示す。ここで、“UO_permission_table”では、各々の項目が示す値が“0”の場合には、対象となるユーザ操作が許可されることを示し、その値が“1”の場合には、対象となるユーザ操作が禁止されることを示す。
【0022】
図5は、plstファイルで示されているプレイリスト(PlayList)とstreamファイルとの関係の一例を示す図である。図5に示されているように、このプレイリストでは、“001.strm”の“in_time”から“out_time”までの部分と、“003.strm”の“in_time”から“out_time”までの部分とが、順次再生される。言い換えると、プレイリストの総再生時間は、streamファイル毎の“in_time”と“out_time”との差分を合計した値となる。
【0023】
図6は、clipファイル“yyy.clpi”のシンタックスの一例を示す図である。clipファイルには、これと対を成すstreamファイルの映像情報及び音声情報等の重畳情報、並びに、ランダムアクセス等に必要なインデックス情報が記述される。“stream_info()”には、重畳される映像情報、音声情報及び字幕情報等の属性情報が記述される。ただし、“stream_info()”は、本発明とは直接関係しないため、詳細な説明は省略する。また、“index_info()”には、streamファイルの各GOPの先頭の時間情報及び位置情報が記述される。“number_of_GOP”は、streamファイル中に含まれるGOP(Group of Picture)の総数を示す。次の“for”以下のループは、“number_of_GOP”の数だけ繰り返される。このループに含まれる“start_PTS”は、GOP先頭のIピクチャーが持つPTS情報を示す。このループに含まれる“relative_byte”は、streamファイルの先頭からIピクチャーの先頭までの相対バイト数を示す。
【0024】
図7は、“Movie.title”ファイルのシンタックスの一例を示す概略図である。“number_of_title”は、光ディスクに記録されているタイトルの総数を示す。次の“for”以下のループは、“number_of_title”の数だけ繰り返される。“title_type”は、Javaアプリケーションからタイトル再生が制御される場合には、その値が“1”となり、制御されない場合には、その値が“0”となる。“title_attribute”は、このタイトルが、メニュー画面表示用のタイトルである場合には、その値が“1”となり、メニュー画面表示用のタイトルでない場合には、その値が“0”となる。次の“if”文では、“title_type”の値が“1”の場合に、Javaアプリケーションが格納されたjarファイルのファイル名が記述される。jarファイルのファイル名は、例えば、“123.jar”である。次の“else”文は、“title_type”の値が“0”の場合に、再生されるプレイリストのファイル名が記述される。再生されるプレイリストのファイル名は、例えば、“123.plst”である。“next_title_id”は、現在再生されているタイトルの再生が終了したときに、次に再生されるタイトルを識別するための“title_id”が記述される。
【0025】
光ディスク101がドライブ111に挿入されると、再生制御部121の制御に従って、ドライブ111は、光ディスク101から図7に示されているような“Movie.title”ファイルを読み出す。ドライブ111によって光ディスク101から読み出された“Movie.title”ファイルを用いて、再生制御部121は、まず先頭に記述されたtitle情報に従って処理を行なう。ここで、“title_type”の値が“1”、かつ、“title_attribute”の値が“0”であり、“if”文に記述されたjarファイルが“001.jar”であるとすると、再生制御部121は、“001.jar”を読み出し解析を行う。
【0026】
図8は、jarファイルに相当する“001.jar”の構成の一例を示す概略図である。図8において、“001.jar”ファイルは、“test_img.png”、“test.class”、及び“test$timer.class”の3つのファイルにより構成されている。“test_img.png”は、この“001.jar”ファイルに含まれている、Javaのプログラムで使用される画像データをPNGフォーマットで圧縮したファイルである。“test.class”及び“test$timer.class”は、Javaのプログラムを実行形式にコンパイルした実行ファイルである。なお、“.class”で識別されるファイルは、コンパイル後のファイルであるため、以下に、コンパイル前のソースコードを使って“test.class”及び“test$timer.class”の動作を説明する。
【0027】
図9〜図11は、図8に示されている“test.class”及び“test$timer.class”のコンパイル前のソースコードの一例を示す概略図である。図9は、図8に示されている“test.class”及び“test$timer.class”のコンパイル前のソースコードの一例の先頭部分を示す。図10は、図8の“test.class”及び“test$timer.class”のコンパイル前のソースコードの一例の図9に続く部分を示す。図11は、図8の“test.class”及び“test$timer.class”のコンパイル前のソースコードの一例の図10に続く部分を示す。
【0028】
図9に示されているソースコードのT1部は、このアプリケーションの実行に必要なパッケージをインポートする部分である。Javaではプレイリストの再生はサポートされていないため、“org.disc.net.DiscLocator”は、プレイリストの再生のために用意された本実施の形態に固有のパッケージである。
【0029】
図9に示されているソースコードのT2部は、変数を宣言している部分である。“I_POS[][]”以下の記述は、1秒毎に表示を変化させる際に使用される、グラフィックスの座標情報を示す。サンプル画像“sample_img.png”がデコードされると、図12(A)に示されている「1」〜「30」のようなパネルの画像が展開される。例えば、図9に示されている{128,0,256,128}の記述は、(X1,Y1)=(128,0)で示される座標と(X2,Y2)=(256,128)で示される座標とを頂点(対角線上に存在する2つの頂点)とする正方形の部分を切り抜くこと意味し、図12(A)において「11」と表示されている部分が切り抜かれる。
【0030】
図10に示されているソースコードのT3部は、サンプル画像“sample_img.png”を読み込んで、PNGファイルのデコードを行う部分である。このアプリケーションは、デコードが完了してから、図10に示されているソースコードのT4部の処理へ進む。
【0031】
図10に示されているソースコードのT4部は、プレイリスト(PlayList)の再生を実行する部分である。ここでは“iPlayListID=1”と記述されているため、“001.plst”の再生が指示されている。“001.plst”の再生が指示されると、ドライブ111で光ディスク101から読み出されたデータが、デマルチプレクサ112で、字幕情報、映像情報及び音声情報に分離され、字幕情報は、字幕デコーダ113で、映像情報は、ビデオデコーダ114で、音声情報は、オーディオデコーダ115で、それぞれデコードされる。
【0032】
プレイリスト(PlayList)の再生が開始されると同時に、図11に示されているソースコードのT5部に従って、再生制御部121は、図12(A)に示されている「1」〜「30」の画像データを、デコードされたPNGファイルから切り出し、切り出された画像データに基づいて、グラフィック信号を生成する。再生制御部121で生成されたグラフィクス信号と、ビデオデコーダ114から出力された映像信号と、字幕デコーダ15から出力された字幕信号とは、グラフィック重畳部116で重畳され、重畳された画像の画像信号が外部の表示装置102に出力される。
【0033】
以上のようにして、Java仮想マシン上で動作するプログラムによって制御されるコンテンツでは、Java仮想マシン上で動作するプログラムによって制御されないコンテンツと比べて、より複雑な映像を表示することができる。しかし、Java仮想マシン上で動作するプログラムによって制御されるコンテンツでは、ユーザ操作によって再生開始が指示されてから再生が開始されるまでに数十秒から数分の待ち時間が発生するという問題点がある。一般に、Javaアプリケーションで使用されるグラフィックスは、再生が開始される前に、PNGファイルのデコードを終えるように記述されている。図10に示されているT3部は、PNGデータをデコードしている時間に相当する。このように、再生を開始する前にPNGデータ又はJPEGデータのデコードを行う理由は、PNGデータ又はJPEGデータのデコード処理は、特定の機能を実現するための組み込み機器のCPUにとっては、非常に負荷の重い処理であり、Java仮想マシン上で動作するプログラムを実行しながらデコードを行うと、グラフィックスの表示がスムーズに実行されないことがあるからである。
【0034】
図12(A)及び(B)は、Java仮想マシン上で動作するプログラムによって制御される(Java仮想マシンを利用した)コンテンツの映像の再生が行われる手順を説明するための概略図ある。ここで再生されるコンテンツの映像は、1つのプレイリストファイルに基づいて、再生が開始されてから1秒間隔で、「1」〜「30」の数字が書かれたパネルの画像を順次表示し、プレイリストに示されているstreamファイルに格納されている映像の再生が完了すると、アプリケーションを終了するものとする。図12(A)に示されている例では、1920×1080ピクセルのビデオ画面に、左上から縦横256ピクセルの座標を原点(0,0)として、高さ、幅ともに128ピクセルの画像が順次表示される。
【0035】
また、Java仮想マシン上で動作するプログラムによって制御されない(Java仮想マシンを利用しない)コンテンツは、再生を停止(中断又はサスペンド)しても、再生停止位置から再生を再開すること(レジューム再生)が可能であるが、Java仮想マシン上で動作するプログラムによって制御されるコンテンツは、レジューム再生ができない問題もある。例えば、図12(A)に示されるように、「1」〜「30」のパネルの画像を1秒間隔で順に表示する再生処理において、「15」のパネルの画像を表示した時点で再生が中断されたと仮定する。その後、「15」のパネルの画像を表示した時点から再生を再開(レジューム再生)させるためには、「15」のパネルの画像を表示していたときの、CPUと、CPUの外部メモリ(RAM)との状態及び情報をすべて、フラッシュメモリ等の不揮発メモリに待避して保持することが必要である。しかし、低コストで製造することが要求される民生用の組み込み機器では、このような構成を採用することができないため、事実上、再生停止位置からの再生再開の機能を持たせることができない。
【0036】
Java仮想マシンを利用したコンテンツの再生には、上記のような問題があるため、ユーザがレジューム再生を行うには、図12(B)に示されるように、数十秒待ってコンテンツの先頭から映像の再生をやり直した上、更に再生停止位置まで再生が進むのを待つ必要があり、再生再開時にユーザの利便性が大きく損なわれることになる。
【0037】
Java仮想マシン上で動作するJavaプログラムによって再生が制御されるコンテンツにおいては、光ディスク101に記録されている映像情報に基づく映像と、Javaプログラムで作られたグラフィックスとの両方が表示されていなければ意味をなさない(ユーザに正確な情報又は適切な情報が提供できない)コンテンツがある一方、通常再生中には映像のみが表示され、ユーザがリモコン等で操作をしたときのみ、Javaプログラムで作られたグラフィックスが表示されるコンテンツもある。例えば、Blu−rayディスクのJavaアプリケーションで作成された映画コンテンツ等では、映画の本編再生中に、ポップアップ(PopUP)メニューキーを操作すると、再生中の映画の映像の上に、音声選択、字幕選択又はシーンサーチ等のような、Javaプログラムで記述されたグラフィックスであるメニュー画面が表示される。このように、Javaプログラムにより表示されるグラフィックスが、光ディスクに記録されている映像情報の通常の再生には影響しないようなコンテンツも存在する。このようなコンテンツの場合、Java仮想マシン上で動作するJavaプログラムによって再生が制御されない(Java仮想マシンを利用しない)コンテンツと同様の扱いをすることが可能であれば、Javaプログラムにより実現される機能が使えないという制約があるものの、迅速なレジューム再生が可能となる。
【0038】
しかし、図7に示されているように、Movie.titleファイルでは、Java仮想マシン上で動作するJavaプログラムによって再生が制御され得るコンテンツにおいて、Javaプログラムが起動していなくても本編の再生に支障がないかどうかが示されていない。このため、図7に示されているようなMovie.titleファイルでは、映画の本編においてレジューム再生をすることができない。
【0039】
そこで、本実施の形態に係る映像情報再生装置100においては、光ディスク101に記録されているplstファイルの中に記述されている情報から、Javaプログラムが起動していなくても本編の再生に支障があるかどうかを、制御部120で判別することができるようにする。
【0040】
図13は、本実施の形態に係る映像情報再生装置100における判定処理を示すフローチャートである。ステップS1では、判定部122は、プレイリストのファイルの“playback_type”の値を確認する。一般に、映画の本編は、プレイリストの先頭から終端まで、連続して再生を行うことが一般的であり、本編の途中を行ったり来たりするような再生は行われない。判定部122は、“playback_type”の値が“0”である場合(ステップS1でYes)には、ステップS2の処理へと進み、この値が“1”である場合(ステップS1でNo)には、現在再生中のプレイリストは、Javaが起動してなくても支障のない本編ではないと判断し、ステップS6の処理に進む。
【0041】
ステップ2では、判定部122は、プレイリストファイルの“UO_permission_table”を確認する。映画の本編のように映像と音声を楽しむプレイリストにおいては、停止、一時停止、早送り、早戻し、スキップアップ、スキップダウンといったユーザ操作ができることが一般的である。判定部122は、現在再生しているプレイリストの“UO_permission_table”を参照し、“skip_up”、“skip_down”、“stop”、“pause_on”、“forward_play”、“backward_play”の値がすべて“0”(許可)になっている場合(ステップS2でYes)には、ステップS3の処理へと進み、いずれかの値が“1”である場合(ステップS2でNo)には、現在再生中のプレイリストは、Javaが起動してなくても支障のない本編ではないと判断し、ステップS6の処理に進む。
【0042】
ステップS3では、判定部122は、プレイリストファイルの“still_play”の値を確認する。複数のストリームが連結されたプレイリストが、映画の本編となっている場合、streamの終端でスチル状態になることは無く、シームレスに次のstreamに再生が移行する。判定部122は、“still_play”の値が“0”である場合(ステップS3でYes)には、ステップS4の処理へと進み、この値が“1”である場合(ステップS3でNo)には、Javaが起動してなくても支障のない本編ではないと判断し、ステップS6の処理に進む。
【0043】
ステップS4では、判定部122は、プレイリストのstreamの再生時間を確認する。再生時間は、各streamの“in_time”から“out_time”の差分である。映画の本編となっている場合、再生時間が数秒に設定されているようなことは無く、ある程度の再生時間を有する。判定部122は、streamの再生時間が所定の時間より長いかどうかを確認し、所定の時間より長い場合(ステップS4でYse)は、ステップS5の処理へと進み、所定の時間以下である場合(ステップS4でNo)は、Javaが起動してなくても支障のない本編ではないと判断し、ステップS6の処理に進む。ここでの所定の時間は、ある程度の幅を持っており、ピンポイントで決まる値ではない。本実施の形態では、所定の時間は1分としているが、数十秒〜数分の間の値を取ることが可能である。
【0044】
ステップS5では、判定部122は、ステップS1〜ステップS4までの判定結果から、現在再生中のstreamは、Javaが起動してなくても支障のない本編であると判断し、記憶部130に、判定結果(resume_enable=1)を保持する。一方、ステップS1〜ステップS4において本編ではないと判断された場合は、判定部122は、ステップS6に進み、判定結果(resume_enable=0)を記憶部130に保持する。
【0045】
なお、図13に示すフローチャートでは、判定部122は、“playback_type”の値が“0”であり、“UO_permission_table”に含まれる所定の値がすべて“0”であり、“still_play”の値が“0”であり、かつ、streamの再生時間が所定の時間より長い場合に、判定結果として“resume_enable=1”を保持するように構成されているが、例えば、これらの内の少なくとも1つが満たされれば、判定結果として“resume_enable=1”を保持するように構成することもできる。
【0046】
図14は、本実施の形態に係る映像情報再生装置における、再生を停止して、再開する処理を示すフローチャートである。ステップS10において、入力部140を介して、ユーザ操作によって再生停止の指示が入力されると、ステップS11において、再生制御部121は、現在再生している“title_id”、プレイリストファイル名、streamファイル名、再生時間、選択されている音声情報のパケットID、及び、選択されている字幕情報のパケットID等の再生の再開に必要な各情報を記憶部130に保持させ、再生を停止する。なお、判定部122は、図13のフローチャートに従って、再生を行っていたコンテンツが、Javaが起動していなくても支障の無いコンテンツであるかどうかを判定し、判定結果(resume_enable)を記憶部130に保持させる。
【0047】
ステップS12において、入力部140を介して、ユーザから再生再開の指示が入力されると、再生制御部121は、ステップS13において、光ディスク101より“Movie.title”ファイルを読み出し、記憶部130に保持されたタイトルが、Java仮想マシン上で動作するプログラムによって再生が制御され得るコンテンツのタイトルであるか否かを判別する。
【0048】
ステップS13において、再生制御部121は、Java仮想マシン上で動作するプログラムによって再生が制御されない(Java仮想マシンを利用しない)コンテンツのタイトルであると判断した場合(ステップS13でNo)には、ステップS16の処理に進み、Java仮想マシン上で動作するプログラムによって再生が制御される(Java仮想マシンを利用する)コンテンツのタイトルであると判断した場合(ステップS13でYes)には、ステップS14の処理に進む。
【0049】
ステップS14では、再生制御部121は、記憶部130に保持されている“resume_enable”の値が“1”であるか否かを判定する。そして、再生制御部121は、“resume_enable”の値が“0”であると判定した場合(ステップS14でNo)には、ステップS15の処理に進み、“resume_enable”の値が“1”であると判定した場合(ステップS14でYes)には、ステップS16の処理に進む。
【0050】
ステップS15では、再生制御部121は、レジューム再生は行わず、例えば、光ディスク101がトレーインされたときと同様のシーケンスで光ディスク101の先頭から再生を行う。
【0051】
一方、ステップS16では、再生制御部121は、Java仮想マシン上で動作するプログラムによって再生が制御されない(Java仮想マシンを利用しない)コンテンツのタイトルの場合と同様の手順で、レジューム再生を行う。例えば、再生制御部121は、clipファイルより、停止した時間に最も近い時間のGOP先頭の位置を“index_info()”から検索し、対象のGOPの“relative_byte”で示されるstreamファイルの途中からデータを読み出す。そして、再生制御部121は、記憶部130に保持されたパケットIDに従って、デマルチプレクサ112に、読み出されたデータから字幕情報、映像情報及び音声情報を分離させる。そして、デマルチプレクサ112で分離された情報は、それぞれ字幕デコーダ113、ビデオデコーダ114及びオーディオデコーダ115に送られて、再生される。
【0052】
図15(A)〜(C)は、本実施の形態に係る映像情報再生装置100での再生停止位置と再生再開位置とを説明するための概略図である。ここで再生されるコンテンツの映像は、図12と同様に、1つのプレイリストファイルに基づいて、再生が開始されてから1秒間隔で、「1」〜「30」の数字が書かれたパネルの画像を順次表示し、プレイリストに示されているstreamファイルに格納されている映像の再生が完了すると、アプリケーションを終了するものとする。そして、ここでは、図15(A)に示されるように、「15」のパネルの画像が表示された時点で再生が停止された場合を想定する。本実施の形態においては、“resume_enable”の値が“0”のコンテンツである場合には、再生再開時に、Java仮想マシン上で動作するプログラムによる制御が必要であるため、図15(C)に示されるように、Java仮想マシン上で動作するプログラムが起動されて、コンテンツの先頭(又は光ディスクの先頭等)である「1」のパネルの画像から再生が再開される。一方、再生再開時に、“resume_enable”の値が“1”のコンテンツである場合には、Java仮想マシン上で動作するプログラムによる制御が必ずしも必要ではないため、図15(B)に示されるように、Java仮想マシン上で動作するプログラムが起動されずに、コンテンツの再生停止位置である「15」のパネルの画像から再生が再開される(ただし、ここでは、「15」のパネルの画像は表示されず、次の、「16」のパネルの画像から表示される)。
【0053】
以上に説明したように、本実施の形態に係る映像情報再生装置100によれば、プレイリストファイル中の、“playback_type”の値と、“UO_permission_table”に含まれる情報の値と、“still_play”の値と、streamの再生時間とから、Javaプログラムが起動していなくても支障がないコンテンツであるか否かを判定することができる。このため、本実施の形態に係る映像情報再生装置100は、映画の本編等を再生する際に、レジューム再生が開始されるまでの待ち時間を短縮することができる。
【符号の説明】
【0054】
100:映像情報再生装置、 110:再生部、 111:ドライブ、 112:デマルチプレクサ、 113:字幕デコーダ、 114:ビデオデコーダ、 115:オーディオデコーダ、 116:グラフィックス重畳部、 120:制御部、 121:再生制御部、 122:判定部、 130:記憶部、 140:入力部、 101:光ディスク。

【特許請求の範囲】
【請求項1】
仮想マシン上で動作するプログラム、当該プログラムにより映像の再生が制御可能な仮想マシン利用型コンテンツ、および、前記仮想マシン利用型コンテンツの再生制御情報を含むプレイリストファイル、が記録された記録媒体から、前記映像を再生する処理を行う再生部と、
制御部と、を備える映像情報再生装置が行う映像情報再生方法であって、
前記制御部が、前記仮想マシン利用型コンテンツが、前記プログラムが起動しているとき及び前記プログラムが起動していないときの何れでも映像を再生することのできる第1種類のコンテンツであるか、前記プログラムが起動しているときにのみ映像を再生することのできる第2種類のコンテンツであるかを、前記再生制御情報から判定する判定過程と、
前記仮想マシン利用型コンテンツの映像の再生が停止され、当該映像の再生を再開する際に、前記制御部が、前記判定過程で前記仮想マシン利用型コンテンツが前記第1種類のコンテンツであると判定されている場合には、前記プログラムを起動させないで、前記再生部に、前記映像の再生が停止された位置から、前記映像の再生を再開させる再生再開過程と、を有すること
を特徴とする映像情報再生方法。
【請求項2】
前記再生再開過程において、前記制御部は、前記判定過程で前記仮想マシン利用型コンテンツが前記第2種類のコンテンツであると判定されている場合には、前記プログラムを起動させて、前記再生部に、前記映像の再生が停止された位置とは異なる、予め定められた位置から、前記映像の再生を再開させること
を特徴とする請求項1に記載の映像情報再生方法。
【請求項3】
前記予め定められた位置は、前記記録媒体に記憶されている情報の先頭位置、又は、前記仮想マシン利用型コンテンツの先頭位置であること
を特徴とする請求項2に記載の映像情報再生方法。
【請求項4】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生するか否かを示すシーケンシャル情報が含まれており、
前記制御部は、前記判定過程において、前記シーケンシャル情報が、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生することを示す場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定し、前記シーケンシャル情報が、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生しないことを示す場合には、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定すること
を特徴とする請求項1から3の何れか一項に記載の映像情報再生方法。
【請求項5】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可するか否かを示す操作情報が含まれており、
前記制御部は、前記判定過程において、前記操作情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可することを示す場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定し、前記操作情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可しないことを示す場合には、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定すること
を特徴とする請求項1から3の何れか一項に記載の映像情報再生方法。
【請求項6】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行うか否かを示すスチル情報が含まれており、
前記制御部は、前記判定過程において、前記スチル情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行わないことを示す場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定し、前記スチル情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行うことを示す場合には、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定すること
を特徴とする請求項1から3の何れか一項に記載の映像情報再生方法。
【請求項7】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像の再生時間を示す再生時間情報が含まれており、
前記制御部は、前記判定過程において、前記再生時間情報に基づいて算出される総再生時間が、予め定められた時間よりも長い場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定し、前記再生時間情報に基づいて算出される総再生時間が、予め定められた時間以下の場合には、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定すること
を特徴とする請求項1から3の何れか一項に記載の映像情報再生方法。
【請求項8】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生するか否かを示すシーケンシャル情報、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可するか否かを示す操作情報、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行うか否かを示すスチル情報、及び、前記仮想マシン利用型コンテンツの映像の再生時間を示す再生時間情報の何れか二つ以上が含まれており、
前記制御部は、前記判定過程において、前記シーケンシャル情報が、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生しないことを示す場合、前記操作情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可しないことを示す場合、前記スチル情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行うことを示す場合、及び、前記再生時間情報に基づいて算出される総再生時間が、予め定められた時間以下の場合の1つ以上を満たすときには、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定し、これらの情報に基づいて、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定されない場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定すること
を特徴とする請求項1から3の何れか一項に記載の映像情報再生方法。
【請求項9】
仮想マシン上で動作するプログラム、前記プログラムにより映像の再生が制御可能な仮想マシン利用型コンテンツ、および、前記仮想マシン利用型コンテンツの再生制御情報を含むプレイリストファイル、が記録された記録媒体から、前記映像を再生する処理を行う再生部と、
前記仮想マシン利用型コンテンツが、前記プログラムが起動しているとき及び前記プログラムが起動していないときの何れでも映像を再生することのできる第1種類のコンテンツであるか、前記プログラムが起動しているときにのみ映像を再生することのできる第2種類のコンテンツであるかを、前記再生制御情報から判定する判定部と、
前記仮想マシン利用型コンテンツの映像の再生が停止され、当該映像の再生を再開する際に、前記判定部が、前記仮想マシン利用型コンテンツが前記第1種類のコンテンツであると判定している場合には、前記プログラムを起動させないで、前記再生部に、前記映像の再生が停止された位置から、前記映像の再生を再開させる再生制御部と、を備えること
を特徴とする映像情報再生装置。
【請求項10】
前記再生制御部は、前記判定部が、前記仮想マシン利用型コンテンツが前記第2種類のコンテンツであると判定している場合には、前記プログラムを起動させて、前記再生部に、前記映像の再生が停止された位置とは異なる予め定められた位置から、前記映像の再生を再開させること
を特徴とする請求項9に記載の映像情報再生装置。
【請求項11】
前記予め定められた位置は、前記記録媒体に記憶されている情報の先頭位置、又は、前記仮想マシン利用型コンテンツの先頭位置であること
を特徴とする請求項10に記載の映像情報再生装置。
【請求項12】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生するか否かを示すシーケンシャル情報が含まれており、
前記判定部は、前記シーケンシャル情報が、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生することを示す場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定し、前記シーケンシャル情報が、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生しないことを示す場合には、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定すること
を特徴とする請求項9から11の何れか一項に記載の映像情報再生装置。
【請求項13】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可するか否かを示す操作情報が含まれており、
前記判定部は、前記操作情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可することを示す場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定し、前記操作情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可しないことを示す場合には、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定すること
を特徴とする請求項9から12の何れか一項に記載の映像情報再生装置。
【請求項14】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行うか否かを示すスチル情報が含まれており、
前記判定部は、前記スチル情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行わないことを示す場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定し、前記スチル情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行うことを示す場合には、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定すること
を特徴とする請求項9から12の何れか一項に記載の映像情報再生装置。
【請求項15】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像の再生時間を示す再生時間情報が含まれており、
前記判定部は、前記再生時間情報に基づいて算出される総再生時間が、予め定められた時間よりも長い場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定し、前記再生時間情報に基づいて算出される総再生時間が、予め定められた時間以下の場合には、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定すること
を特徴とする請求項9から12の何れか一項に記載の映像情報再生装置。
【請求項16】
前記再生制御情報には、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生するか否かを示すシーケンシャル情報、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可するか否かを示す操作情報、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行うか否かを示すスチル情報、及び、前記仮想マシン利用型コンテンツの映像の再生時間を示す再生時間情報の何れか二つ以上が含まれており、
前記判定部は、前記シーケンシャル情報が、前記仮想マシン利用型コンテンツの映像をシーケンシャルに再生しないことを示す場合、前記操作情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定のユーザ操作を許可しないことを示す場合、前記スチル情報が、前記仮想マシン利用型コンテンツの映像の再生中に特定の箇所においてスチル動作を行うことを示す場合、及び、前記再生時間情報に基づいて算出される総再生時間が、予め定められた時間以下の場合の1つ以上を満たすときには、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定し、これらの情報に基づいて、前記仮想マシン利用型コンテンツが第2種類のコンテンツであると判定されない場合には、前記仮想マシン利用型コンテンツが第1種類のコンテンツであると判定すること
を特徴とする請求項9から12の何れか一項に記載の映像情報再生装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−174328(P2012−174328A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−38487(P2011−38487)
【出願日】平成23年2月24日(2011.2.24)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】