以下、映像出力装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における映像システム1000のブロック図である。
映像システム1000は、1または2以上の映像出力装置1、1または2以上の制御サーバ装置2、1または2以上の映像サーバ装置3、及び1または2以上の字幕サーバ装置4を備える。なお、ここでは説明の便宜上、映像出力装置1、制御サーバ装置2、映像サーバ装置3、及び字幕サーバ装置4をそれぞれ一つずつ備えている場合を例に挙げて説明する。映像出力装置1、制御サーバ装置2、映像サーバ装置3、及び字幕サーバ装置4は、有線または無線のネットワークや通信回線等を介してデータの送受信が可能となるよう接続されている。
映像出力装置1は、映像受信部101、字幕受信部102、映像格納部103、字幕格納部104、指示受付部105、要求送信部106、出力済映像格納部107、出力済字幕格納部108、映像要求情報送信部109、制御要求情報送信部110、制御情報受信部111、部分字幕取得部112、及び出力部113を備える。
制御サーバ装置2は、制御情報格納部201、制御サーバ側受信部202、及び制御サーバ側送信部203を備える。
映像サーバ装置3は、映像サーバ側格納部301、映像サーバ側受信部302、及び映像サーバ側送信部303を備える。
字幕サーバ装置4は、字幕サーバ側格納部401、字幕サーバ側受信部402、及び字幕サーバ側送信部403を備える。
映像出力装置1は、映像を出力するための装置である。映像出力装置1は、例えば、ユーザが映像の出力に利用する端末装置である。映像出力装置1は、例えば、コンピュータや、携帯電話、いわゆるスマートフォンやタブレット型端末等の多機能携帯端末等で実現される。
映像受信部101は、1または2以上の映像サーバ装置3から1または2以上の映像情報を受信する。映像情報は、動画像の情報である。映像受信部101が受信する映像情報は、映像サーバ装置3からパケット等に分割されて配信されるストリーミング形式の映像情報でもよいし、プログレッシブダウンロード形式や、ダウンロード形式で提供される映像情報でも良い。映像受信部101が受信する映像情報は、ストリーミング形式や、プログレッシブダウンロード形式等の、ダウンロードしながら出力(再生)が可能な形式であることが、映像情報が出力開始されるまでのユーザの待ち時間を短縮できるうえで好ましい。映像情報のフォーマットや、ファイル形式、圧縮方式、アスペクト比、画素数、色深度等は問わない。映像情報は、更に、音声情報を有していても良い。また、ストリーミング時に利用されるプロトコル等は問わない。音声情報は、映像情報と同期していても良いし、同期していなくても良い。
映像受信部101は、例えば、複数のフレーム画像を有する映像情報を受信する。ここでのフレーム画像を有する映像情報とは、結果的に出力の対象となる複数のフレーム画像を取得することが可能な映像情報と考えても良い。例えば、複数のフレーム画像を有する映像情報は、複数のフィールド画像を有する映像情報であっても良い。
映像受信部101は、例えば、複数のフレーム画像を有する映像情報であって、各フレーム画像を出力するタイミングを示す映像タイミング情報が、各フレーム画像と対応付けられている映像情報を受信する。映像タイミング情報が、各フレーム画像と対応付けられているということは、例えば、各フレーム画像に映像タイミング情報が付与されていることである。映像タイミング情報が付与されているということは、例えば、映像タイミング情報が各フレーム画像に埋め込まれていることであっても良いし、各フレーム画像のヘッダ情報や、フッタ情報や、プロパティ等に、映像タイミング情報が埋め込まれていることであっても良い。あるいは、フレーム画像に対応付けられたフレームの識別情報と、映像タイミング情報とが対応付けられて、図示しない記憶媒体等に格納されていることであっても良い。また、映像タイミング情報が、各フレーム画像と対応付けられているということは、連続した複数のフレーム画像群に対して、各フレーム画像に割り当てられる映像タイミング情報の範囲や、複数の映像タイミング情報が格納されていることであっても良い。
映像タイミング情報とは、各フレーム画像の出力されるタイミングを判断するため、あるいは決定するために用いられる情報である。映像タイミング情報は、例えば、各フレーム画像の出力順番を示す連番等の番号やコードである。また、映像タイミング情報は、例えば、各フレーム画像に付与された、各フレーム画像の出力時刻を示す情報であり、具体的には、タイムコードである。タイムコードは、例えば、時、分、秒と、フレームとの組合せで表される。タイムコードは、タイムスタンプとも呼ばれる。タイムコードのフォーマット等は問わない。各フレーム画像に付与されるタイムコードは、例えば、SMPTEタイムコードである。なお、ここでの時刻とは、世界の標準時刻等の絶対的な時刻であっても良いし、映像情報の出力が開始された時刻を起点等とした相対的な時刻であっても良い。
映像情報は、映像情報を識別する情報と対応付けられていても良い。映像情報を識別する情報を、ここでは映像識別情報と称す。映像情報を識別する情報は、例えば、映像情報のタイトルや、映像情報に割り当てられたコード等である。
映像受信部101は、例えば、受信した映像情報を、映像格納部103に蓄積する。例えば、映像サーバ装置3から、映像情報が分割して送信される場合、映像受信部101は、受信した映像情報を順次映像格納部103に蓄積する。また、映像情報がストリーミング配信される場合等においては、受信したパケット等の情報を用いて構成したフレーム画像を、映像格納部103に順次蓄積しても良い。また、映像受信部101は、映像情報を蓄積する際に、映像情報の復号化等を行っても良い。
映像受信部101は、後述する制御情報を用いて映像情報を受信しても良い。制御情報を用いて受信するということは、例えば、制御情報を用いて特定された映像サーバ装置3から送信される映像情報を受信することも含む概念である。
映像受信部101は、例えば、映像サーバ装置3が送信する映像情報を受信する。この映像情報は、例えば、後述する映像要求情報送信部109が送信する映像情報の送信を要求する映像要求情報に応じて映像サーバ装置3が送信する映像情報である。
なお、後述する映像要求情報送信部109が、指示受付部105が受け付けた早送り再生指示に応じて、通常よりも多い量の映像情報の送信を要求する情報を映像サーバ装置3に送信した場合、映像受信部101は、映像サーバ装置3から送信される通常の再生時よりも多い量の映像情報を受信しても良い。
映像受信部101は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。映像受信部101は、通信デバイスを含むと考えても、含まないと考えても良い。かかることは、他の受信部等においても同様である。
字幕受信部102は、1または2以上の字幕サーバ装置4から、1または2以上の字幕情報と、この字幕情報に対応する字幕タイミング情報とを受信する。そして、字幕受信部102は、受信した字幕情報と字幕タイミング情報とを対応づけて字幕格納部104に蓄積する。字幕情報は、字幕を示す文字列の情報である。文字列の情報は、通常、テキスト情報であることが、データ量や、出力時にフォントやサイズ等が変更可能な点で好ましいが、文字列を示す画像の情報であっても良い。ここでの文字列は、1文字以上の文字で構成される。字幕タイミング情報は、映像情報の出力に対する各字幕情報が出力されるタイミングを示す情報である。一の字幕情報とこの字幕情報を出力するタイミングを示す字幕タイミング情報とは互いに対応付けられていると考えても良い。字幕受信部102は、例えば、一の字幕情報と、この字幕情報を映像情報と合成して出力するタイミングを示す字幕タイミング情報とを有する情報である1または2以上の字幕組情報を、字幕サーバ装置4から受信する。
映像情報の出力に対する字幕情報が出力されるタイミングとは、例えば、映像情報の一部(例えば、最初のフレーム画像)が出力されたタイミング(例えば時刻等)を基準とした字幕情報が出力されるタイミングや、映像情報の各フレーム画像の映像タイミング情報を用いて指定されるタイミングである。字幕タイミング情報は、字幕情報を出力するタイミングを指定する情報であっても良いし、字幕情報を出力する期間を指定する情報であっても良い。
字幕情報を出力するタイミングを指定する情報は、例えば、字幕を出力する時刻を示す情報や、字幕情報に対応する映像情報の、所定のフレーム画像(通常は、最初のフレーム画像)を出力開始してからの経過時間や、所定のフレーム画像の出力を開始してから出力した総フレーム画像数や、字幕を合成するフレーム画像の出力順番を示す情報である。ここでの時刻は、上述したような絶対的な時刻であっても相対的な時刻であってもよい。ここでの時刻を示す情報としては、例えば、上述したようなタイムコードが用いられる。かかることは以下においても同様である。
字幕を出力する期間を指定する情報は、例えば、字幕情報の出力を開始するタイミングを指定する情報と、出力を終了するタイミングを指定する情報との組合せや、出力を開始するタイミングを指定する情報と、出力の継続期間とを指定する情報との組合せ等である。字幕情報の出力を開始するタイミングや、出力を終了するタイミングを指定する情報は、例えば、開始または終了の時刻を示す情報や、字幕情報に対応する映像情報の、所定のフレーム画像(通常は、最初のフレーム画像)を出力開始してからの経過時間や、所定のフレーム画像の出力を開始してから出力した総フレーム画像数や、次に出力するフレーム画像の出力順番を示す情報である。出力の継続期間を指定する情報とは、例えば、出力の継続時間や、出力されるフレーム数を指定する情報である。
また、字幕タイミング情報は、1以上の映像タイミング情報を指定する情報であってもよい。例えば、字幕タイミング情報は、映像情報の1または2以上のフレーム画像に対応付けられた1または2以上のタイムコードや、1または2以上のフレーム画像の識別子等を指定する情報であっても良い。例えば、字幕タイミング情報は、一のタイムコードや、タイムコードの範囲を示す情報(例えば、起点となるタイムコードと終点となるタイムコードとの組合せ)であっても良い。
字幕受信部102は、例えば、受信した1または2以上の各字幕情報を、各字幕情報に対応づけられた字幕タイミング情報と対応付けて字幕格納部104に蓄積する。例えば、字幕受信部102は、字幕情報と字幕タイミング情報との組である字幕組情報を字幕格納部104に蓄積するようにしても良い。
字幕受信部102は、例えば、映像受信部101が受信した映像情報に対応付けられた字幕情報を受信する。映像情報に対応付けられた字幕情報を受信するということは、例えば、映像受信部101が受信した映像情報と同じ映像識別情報が対応付けられている字幕情報や字幕組情報を受信することである。字幕受信部102は、一の映像情報に対応付けられた全ての字幕情報をまとめて受信しても良い。
字幕受信部102は、例えば、後述する字幕要求情報に応じて字幕サーバ装置4が送信する字幕情報と、この字幕情報に対応する字幕タイミング情報とを受信する。
字幕受信部102は、後述する早送り字幕要求情報に応じて字幕サーバ装置4が送信する通常の再生時よりも多い量の字幕情報と、この字幕情報に対応する字幕タイミング情報とを受信してもよい。
字幕受信部102は、例えば、後述する制御情報を用いて字幕情報や字幕タイミング情報等を受信しても良い。制御情報を用いて受信するということは、例えば、制御情報を用いて特定された字幕サーバ装置4から送信される字幕情報や字幕タイミング情報等を受信することも含む概念である。
映像格納部103には、1または2以上の映像情報が格納される。映像格納部103に格納されている映像情報は、映像情報の全体であっても良く、一部であっても良い。例えば、映像格納部103に格納されている映像情報は、一の映像のコンテンツの全てのフレーム画像であっても良く、一部のフレーム画像であっても良い。例えば、映像格納部103には、映像受信部101が受信した映像情報が格納される。ここでの格納とは、一時記憶も含む概念である。例えば、映像格納部103には、1または2以上の映像情報の1または2以上のフレーム画像が格納される。映像格納部103には、例えば、映像タイミング情報が、各フレーム画像と対応付けられている映像情報が格納される。映像格納部103は、映像格納部103に格納されたフレーム画像は、通常、蓄積順や、フレーム画像に対応付けられた映像タイミング情報が示す順番に読み出される。例えば、映像格納部103は、フレームメモリやVRAM等と考えても良い。映像格納部103は、映像受信部101が受信した映像情報を一時的にバッファリングするためのいわゆるバッファやキャッシュと考えても良い。なお、映像受信部101が、プログレッシブダウンロード形式や、ダウンロード形式で提供される映像情報を受信した場合、この映像情報が映像格納部103に蓄積されてもよく、また、この映像情報が、一旦、映像格納部103や図示しない記憶媒体等に蓄積され、蓄積された映像情報から読み出された1または2以上のフレーム画像が、映像格納部103に蓄積されるようにしても良い。
なお、映像格納部103に映像情報が蓄積される過程は問わない。例えば、上述したように、映像受信部101が受信した映像情報が、映像受信部101により映像格納部103に蓄積されても良い。また、図示しないドライバ等により記録媒体から読み出された映像情報が映像格納部103に蓄積されても良い。あるいは、入力デバイスを介して入力された映像情報が映像格納部103で記憶されてもよい。
映像格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。かかることは、他の格納部についても同様である。
字幕格納部104には、1以上の字幕情報と、各字幕情報に対応する字幕タイミング情報とが格納される。字幕格納部104に格納されている字幕情報は、字幕情報の全体であっても良く、字幕情報の一部であっても良い。例えば、字幕格納部104に格納されている字幕情報は、一の映像のコンテンツに対応する全ての字幕情報であっても良く、一部の字幕情報であっても良い。ここでの格納は、一時記憶も含む概念である。例えば、字幕格納部104には、上述したような1以上の字幕組情報が格納される。字幕格納部104には、例えば、字幕受信部102が受信した1以上の字幕情報と、各字幕情報に対応する各字幕タイミング情報とが格納される。字幕情報は、字幕情報に対応する映像情報の識別情報等と対応づけられて字幕格納部104に格納されてもよい。
なお、字幕格納部104に字幕情報が蓄積される過程は問わない。例えば、上述したように、字幕受信部102が受信した字幕情報が、字幕受信部102により字幕格納部104に蓄積されても良い。また、図示しないドライバ等により記録媒体から読み出された字幕情報が字幕格納部104に蓄積されても良い。あるいは、入力デバイスを介して入力された字幕情報が字幕格納部104で記憶されてもよい。
なお、字幕格納部104及び映像格納部103は、一の記憶媒体にそれぞれ割り当てられた格納領域であっても良い。
指示受付部105は、通常の再生とは異なる再生の指示である早送り再生の指示を受け付ける。また、指示受付部105は、通常の再生とは異なる再生の指示である巻戻し再生の指示を受け付ける。なお、指示受付部105は、早送り再生の指示および巻戻し再生の指示のいずれか一方のみを受け付けるようにしても良い。再生とは、例えば、映像情報を構成する1以上のフレーム画像を後述する出力部113から出力することである。
通常の再生とは、例えば、映像情報を構成するフレーム画像を、予め指定された順番で、予め指定されたタイミングで出力することである。ここでの予め指定された順番は、例えば、映像情報の始点側のフレーム画像から、終点側に向かう順番である。また、予め指定されたタイミングは、例えば、予め指定されたフレームレート等である。通常の再生とは、例えば、映像情報を構成するフレーム画像を、各フレーム画像に対応づけられたタイムコードが示す時刻やタイムコードが示す時間の経過順に出力することと考えても良い。また、再生時にフレーム画像が出力される速度を再生速度と呼ぶ。映像情報の再生速度は、例えば、通常の再生時における再生速度を基準として表すことができる。例えば、通常の再生時の再生速度を、1倍速とすることで、通常の再生とは異なる再生の際の再生速度を、k倍速(ただし、kは0及び1を除いた整数)で表すことができる。
早送り再生とは、通常の再生と同じ再生方向に、通常の再生よりも速い再生速度で映像情報を再生することである。早送り再生は、例えば、フレーム画像を通常の再生時の出力順に、通常の再生時に出力されるタイミングよりも早いタイミングで出力することと考えても良い。例えば、早送り再生とは、通常の再生と同じ再生方向に、n(n>1)倍速で再生することである。n倍速の早送り再生とは、例えば、通常の再生の場合p秒後に出力するフレーム画像を、p/n秒後に出力することである。早送り再生指示は、早送り再生の際の再生速度を指定する情報を有していても良いし、有していなくても良い。再生速度を指定する情報を有さない早送り再生指示は、例えば、デフォルトの速度や、デフォルトの変化パターンで変化する速度で早送り再生する指示と考えても良い。
巻戻し再生とは、通常の再生とは逆方向に映像情報を再生することである。巻戻し再生は、例えば、フレーム画像を通常の再生時の出力順とは逆の出力順に、通常の再生時に出力されるタイミングと同じ、あるいは早いタイミングで出力することと考えても良い。例えば、巻戻し再生とは、通常の再生とは逆方向に、m倍速(ただし、m≧1)で再生することである。m倍速の巻戻し再生とは、例えば、通常の再生においてp秒前に出力されたフレーム画像を、p/m秒後に出力することである。巻戻し再生指示は、巻戻し再生の際の再生速度を指定する情報を有していても良いし、有していなくても良い。再生速度を指定する情報を有さない巻戻し再生指示は、例えば、デフォルトの速度や、デフォルトの変化パターンで変化する速度で巻戻し再生する指示と考えても良い。
なお、指示受付部105は、出力対象となる映像情報を指定する情報や、映像情報を通常の再生させる指示等を受け付けても良い。映像情報を指定する情報は、例えば出力の対象となる映像情報のタイトル等の識別情報を含む情報である。
ここでの受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
早送り再生の指示や、巻戻し再生の指示の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。指示受付部105は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
要求送信部106は、字幕サーバ装置4に、例えば、字幕要求情報を送信する。字幕要求情報は、字幕情報の送信を要求する情報である。字幕要求情報は、例えば、通常の再生を行う際における字幕情報を要求する情報である。字幕要求情報は、例えば、通常の再生を行う場合における再生方向の1または2以上の字幕情報を要求する情報である。字幕要求情報は、例えば、出力順番が、字幕受信部102が直前に受信した字幕情報の次以降である1または2以上の字幕情報の送信を要求する情報である。
字幕要求情報は、送信を要求する字幕情報の量を指定する情報を有していても良いし、有していなくても良い。字幕情報の量とは、通常は、字幕情報数であるが、字幕情報の文字数や、データ量と考えても良い。また、字幕情報が出力(例えば、表示)される時間の長さを字幕情報の量と考えても良い。
また、要求送信部106は、指示受付部105が受け付けた早送り再生の指示に応じて、字幕サーバ装置4に、通常の再生時よりも多い量の字幕情報の送信を要求する情報である早送り字幕要求情報を送信するようにしてもよい。早送り字幕要求情報は、例えば、通常の再生時の出力順において、通常の再生時よりも多い量の字幕情報の送信を要求する早送り字幕要求情報を送信する。これにより、早送り再生時に出力する字幕情報が、字幕格納部104に不足することを防ぐことができる。
通常の再生時の字幕情報の量とは、例えば、デフォルト等で指定されている通常の再生時に字幕サーバ装置4から送信される字幕情報の量である。例えば、要求送信部106が、通常の再生時には、現在から5分後の時刻までの時間に出力される字幕情報の送信を要求するよう設定されているとした場合、通常の再生時よりも多い量の字幕情報として、現在から10分後の時刻までの時間に出力される字幕情報の送信を要求することであっても良い。この通常の再生時の字幕の量を指定する情報や、早送り再生時の字幕の量を指定する情報は、出力する映像情報のヘッダ等に格納されているものを読み出すことで取得しても良い。
早送り字幕要求情報は、要求する字幕情報の量を指定する情報を有していても良いし、有していなくても良い。早送り字幕要求情報が字幕情報の量を指定する情報を有する場合、要求送信部106が送信する早送り字幕要求情報が指定する量の値は、常に一定の値であっても良い。また、例えば、再生速度を指定する情報を有する早送り再生の指示を受け付けた場合、要求送信部106が送信する早送り字幕指定情報は、通常の再生時よりも多い量であって、指定された再生速度に応じて連続的または段階的に変化する量の値を有するようにしても良い。また、早送り字幕要求情報が字幕情報の量を指定する情報を有さない場合、要求送信部106は、早送り再生の指示を受け付けた場合には、単に、早送り再生の指示を受け付けたことが識別可能な早送り字幕要求情報を送信しても良い。
字幕要求情報は、字幕情報に対応する映像情報識別情報を有していても良い。要求送信部106は、例えば、後述する映像要求情報送信部109が送信する映像要求情報が有する映像識別情報と同じ映像識別情報を有する字幕要求情報を送信する。また、映像識別情報の代わりに、映像識別情報が示す映像情報に対応する字幕情報の群を識別する識別情報を用いるようにしてもよい。かかることは、早送り字幕要求情報においても同様である。このような字幕群識別情報は、例えば、後述する制御情報から取得可能である。
なお、要求送信部106は、映像識別情報を字幕要求情報として送信しても良い。
要求送信部106は、例えば、後述する制御情報が示す字幕サーバ装置4に字幕要求情報及び早送り字幕要求情報を送信する。また、要求送信部106は、制御情報が有する通常の再生時に字幕サーバ装置4が送信する字幕量の情報を取得して、この字幕量の情報を有する要求情報を字幕サーバ装置4に送信しても良い。
なお、映像出力装置1が、字幕サーバ装置4から送信される字幕情報を出力するものでない場合、要求送信部106は省略可である。
要求送信部106は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。要求送信部106は、通信デバイスを含むと考えても、含まないと考えても良い。かかることは、他の送信部においても同様である。
出力済映像格納部107には、出力部113により出力済の映像情報が格納される。出力済の映像情報は、例えば、出力済の1または2以上のフレーム画像と考えて良い。出力済映像格納部107には、出力済の映像情報(例えばフレーム画像)が出力順に、あるいは出力順を示す情報と対応づけられて格納される。例えば、出力部113が、出力済の映像情報を、出力済映像格納部107に蓄積する。出力済映像格納部107には、例えば、映像タイミング情報が、各フレーム画像と対応付けられている出力済の映像情報が格納される。出力済の映像情報が出力済映像格納部107に格納される期間等は問わない。例えば、出力済の映像情報(例えば、フレーム画像)が、出力後から予め指定された時間だけ、出力済映像格納部107に格納されるようにし、その後、例えば、削除されるようにしても良い。また、出力済映像格納部107に格納可能な量だけ、出力済の映像情報(例えば、フレーム画像)が格納されるようにし、出力済映像格納部107に新たな出力済の映像情報(例えば、フレーム画像)が格納可能な容量がなくなった場合に、出力済映像格納部107に蓄積された格納時期、すなわち出力時機が古い映像情報(フレーム画像)から順に、映像出力装置1が、出力済の映像情報を削除していくようにしても良い。
なお、出力済映像格納部107は、映像格納部103と同じ格納部として実現するようにしても良い。例えば、出力済の映像情報を出力直後に映像格納部103から削除しないようにすることで、この削除されなかった出力済の映像情報が格納されている領域を出力済映像格納部107として用いるようにしても良い。この場合、出力部113は、出力済の映像情報を、出力済映像格納部107に蓄積しないようにして良い。
出力済字幕格納部108は、出力部113により出力済の字幕情報と字幕情報に対応する字幕タイミング情報とが格納される。出力済字幕格納部108には、出力済の字幕情報が出力順に、あるいは出力順を示す情報と対応づけられて格納される。例えば、出力部113が、出力済の字幕情報を、出力済字幕格納部108に蓄積する。出力済の字幕情報が出力済字幕格納部108に格納される期間等は問わない。例えば、出力済の字幕情報が、出力後から予め指定された時間だけ、出力済字幕格納部108に格納されるようにし、その後、例えば、削除されるようにしても良い。また、出力済字幕格納部108に格納可能な量だけ、出力済の字幕情報が格納されるようにし、出力済字幕格納部108に新たな出力済の字幕情報(例えば、フレーム画像)が格納可能な容量がなくなった場合に、出力済字幕格納部108に蓄積された格納時期、すなわち出力時機が古い字幕情報から順に、映像出力装置1が、出力済の字幕情報を削除していくようにしても良い。
なお、出力済字幕格納部108は、字幕格納部104と同じ格納部として実現するようにしても良い。例えば、出力済の字幕情報を出力直後に字幕格納部104から削除しないようにすることで、この削除されなかった出力済の映像情報が格納されている領域を出力済字幕格納部108として用いるようにしても良い。この場合、出力部113は、出力済の字幕情報を、出力済字幕格納部108に蓄積しないようにして良い。
映像要求情報送信部109は、映像要求情報を映像サーバ装置3に送信する。映像要求情報は、映像情報の送信を要求する情報である。映像要求情報は、例えば、送信を要求する映像情報の映像識別情報を有する。映像識別情報は、例えば、映像情報のファイル名や、タイトル、映像情報に割り当てられたコード等である。また、映像要求情報は、映像情報を構成するフレーム画像を指定する情報を有していても良い。例えば、映像要求情報は、映像受信部101が直前に受信したフレーム画像の次以降の出力順番の1以上のフレーム画像を指定する情報を有していてもよい。また、映像要求情報は、送信する映像情報の量を指定する情報等を有していても良い。
また、映像要求情報送信部109は、指示受付部105が受け付けた早送り再生の指示に応じて、映像サーバ装置3に、通常の再生時よりも多い量の映像情報(例えばフレーム画像)の送信を要求する情報である早送り映像要求情報を送信するようにしても良い。早送り映像要求情報は、例えば、通常の再生時の再生方向における、通常の再生時よりも多い量の字幕情報の送信を要求する早送り映像要求情報を送信する。これにより、早送り再生時に出力する映像情報が、映像格納部103に不足することを防ぐことができる。なお、早送り映像要求情報については、上述した早送り映像要求情報と、要求する情報が異なる点を除けば同様であるため、詳細な説明は省略する。
映像要求情報送信部109は、例えば、後述する制御情報が示す映像サーバ装置3に映像要求情報を送信する。
なお、巻戻し再生時に、出力済映像格納部107に格納されている出力済の映像情報を利用しない場合、映像要求情報送信部109は、指示受付部105が受け付けた巻戻し再生の指示に応じて、映像サーバ装置3に、現在よりも出力タイミングが前となる映像情報(例えばフレーム画像)の送信を要求する情報である巻戻し映像要求情報を送信するようにしても良い。巻戻し映像要求情報は、例えば、通常の再生時の再生方向とは逆方向(即ち過去に遡る方向)の出力順の映像情報を要求する情報である。この巻戻し映像要求情報は、巻戻し方向(即ち、通常の再生とは逆方向)において要求する映像情報の量を示す情報を有していても良いし、有していなくても良い。量を示す情報を有する場合、この量を示す値は、一定であっても良いし、巻戻し再生の指示が指定する巻戻し再生時の巻戻す速度(逆再生時の速度)の値の増加に応じて連続的、あるいは段階的に、増加する値であっても良い。例えば、上述したmの値に応じて増加する値であっても良い。
同様に、巻戻し再生時に、出力済字幕格納部108に格納されている出力済の字幕情報を利用しない場合、要求送信部106は、指示受付部105が受け付けた巻戻し再生の指示に応じて、字幕サーバ装置4に、現在よりも出力タイミングが前となる1以上の字幕情報の送信を要求する情報である巻戻し字幕要求情報を送信するようにしても良い。巻戻し字幕要求情報は、例えば、通常の再生時の再生方向とは逆方向(即ち過去に遡る方向)の出力順の字幕情報を要求する情報である。この巻戻し字幕要求情報は、巻戻し方向(即ち、通常の再生とは逆方向)において要求する字幕情報の量を示す情報を有していても良いし、有していなくても良い。量を示す情報を有する場合、この量を示す値は、一定であっても良いし、巻戻し再生の指示が指定する巻戻し再生時の巻戻す速度(逆再生時の速度)の値の増加に応じて連続的、あるいは段階的に、増加する値であっても良い。例えば、上述したmの値に応じて増加する値であっても良い。
制御要求情報送信部110は、制御要求情報を、制御サーバ装置2に送信する。制御要求情報は、制御情報の送信を要求する情報である。制御情報は、映像情報及び字幕情報の受信に関する制御に用いられる情報である。制御要求情報は、例えば、映像識別情報を有している。この映像識別情報は、例えば、上述した映像要求情報が有する映像識別情報と同じ映像情報を示す映像識別情報である。これにより、例えば、ユーザが視聴しようとする映像情報に対応する制御情報の送信を要求することができる。なお、映像識別情報を制御要求情報として用いてもよい。例えば、制御要求情報送信部110は、図示しない受付部等を介してユーザから受け付けた、ユーザが視聴しようとする映像情報を示す映像識別情報を有する制御要求情報を送信する。
制御情報は、例えば、映像情報及び字幕情報を送信する映像サーバ装置3及び字幕サーバ装置4を指定する情報を有する。映像サーバ装置3及び字幕サーバ装置4を指定する情報は、例えば、映像サーバ装置3及び字幕サーバ装置4のURLやIPアドレス等のアドレス情報である。制御情報は、更に、映像情報や字幕情報が格納されているディレクトリを指定する情報や、映像識別情報や字幕情報の群の識別情報等を有していても良い。また、映像情報や、字幕情報を出力する際の配置場所を示す配置情報等を有していてもよい。例えば、映像情報と、字幕情報とを、一の画面に合成して表示する際の、それぞれの配置を示す配置情報を有していても良い。配置情報は、例えば、1または2以上の座標や、サイズ等の情報で構成される。
制御情報のデータ形式等は問わない。例えば、制御情報は、XHTMLやXMLで記述されたデータである。
制御情報受信部111は、上述した制御要求情報送信部110が送信した制御要求情報に応じて、制御サーバ装置2から送信される制御情報を受信する。制御情報受信部111は、受信した制御情報を、図示しない記憶媒体等に蓄積する。
部分字幕取得部112は、指示受付部105が通常の再生とは異なる再生の指示を受け付けた場合に、出力部113が通常の再生とは異なる再生時に出力する各映像情報(例えば、フレーム画像)に対応する各字幕情報から、字幕情報の一部を取得する。通常の再生とは異なる再生の指示とは、上述した早送り再生の指示、または巻戻し再生の指示である。例えば、部分字幕取得部112は、指示受付部105が早送り再生の指示を受け付けた場合に、出力部113が早送り再生時に出力する各映像情報(例えば、フレーム画像)に対応する各字幕情報から、字幕情報の一部を取得する。また、例えば、部分字幕取得部112は、指示受付部105が巻戻し再生の指示を受け付けた場合に、出力部113が巻戻し再生時に出力する各映像情報(例えば、フレーム画像)に対応する各字幕情報から、字幕情報の一部を取得する。
部分字幕取得部112が取得する字幕情報の一部は、字幕情報に含まれる文字列の一部である。部分字幕取得部112が、どのように、字幕情報から、その一部を取得するようにしても良い。例えば、部分字幕取得部112は、字幕情報の文字列に対して、形態素解析を行って、予め指定された属性を有する1または2以上の形態素(例えば、自立語や名詞句等の特定の品詞の形態素)だけを取得しても良い。あるいは、字幕情報の文字列に対してパターンマッチング等を行って、文字列の一部を取得しても良い。例えば、字幕情報の文字列に対して予め指定された1以上の手がかり句を検索し、検出された手がかり句に対して、予め指定された位置関係にある文字列だけを取得しても良い。また、形態素解析と、手がかり句とを組み合わせて字幕情報に含まれる文字列の一部を取得しても良く、例えば、字幕情報の文字列に対して予め指定された1以上の手がかり句を検索し、検出された手がかり句に対して所定の位置関係にある形態素や、所定の位置関係にある予め指定された属性を有する形態素を取得するようにしても良い。また、部分字幕取得部112は、字幕情報に含まれる文字列の、所定の位置に配置された文字列(例えば、先頭の予め指定された文字数の文字列)を取得しても良い。また、部分字幕取得部112は、一の字幕情報から重複する文字列を取得した場合、ユニーク処理を行うことにより、重複する文字列から一つの文字列のみを取得するようにしても良い。
部分字幕取得部112は、通常、MPUやメモリ等から実現され得る。部分字幕取得部112の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、出力部113が字幕情報の一部だけを出力する処理を行わない場合、部分字幕取得部112は省略しても良い。
出力部113は、字幕格納部104に格納された1以上の字幕情報を、各字幕情報と対応付けられた字幕タイミング情報を用いて、映像格納部103に格納された映像情報と合成して出力する。以下、出力部113が、映像情報の通常の再生を行う場合について説明する。
(1)通常の再生
出力部113は、例えば、通常の再生時には、予め指定された通常の再生時の再生速度で、字幕情報と映像情報とを合成した映像情報を出力する。出力部113は、例えば、通常の再生時には、映像情報を構成するフレーム画像を、予め指定された通常の再生時の出力タイミングで、通常の再生時の出力順に出力するようにしてもよい。予め指定された通常の再生時の再生速度や出力タイミングは、例えば、映像情報に対して予め指定されている再生速度であっても良い。また、出力部113は、通常の再生時には、例えば、字幕格納部104に格納された1以上の字幕情報を、各字幕情報と対応付けられた字幕タイミング情報であるタイムコード等が示す時刻や、時間間隔で、映像受信部101が受信した映像情報と合成して出力してもよい。
例えば、出力部113は、映像情報の出力箇所を示す情報を取得し、出力箇所を示す情報に対応する字幕タイミング情報と対応付けられた字幕情報を出力する。ここでの出力箇所とは、例えば、時間軸上の箇所である。ここでの出力箇所とは、例えば、映像情報の出力開始時点からの経過時間やフレーム数で表した現在の出力箇所である。出力部113は、例えば、映像情報の出力開始からの経過時間の計測を開始して、次に出力する映像情報(具体的には、次に出力するフレーム画像)が出力される経過時間を取得し、この経過時間と一致する時間を示す文字タイミング情報と対応付けられた字幕情報を、字幕受信部102が受信した字幕情報から取得する。そして、出力部113は、取得した字幕情報と映像情報とを合成して出力する。
また、例えば、出力部113は、映像情報の出力開始から出力したフレーム数のカウントを開始して、次に出力する画像フレームのフレーム数をカウント結果から取得し、この画像フレームと一致するフレーム数を示す文字タイミング情報と対応付けられた字幕情報を、字幕受信部102が受信した字幕情報から取得する。そして、出力部113は、取得した字幕情報と映像情報とを合成して出力するようにしてもよい。なお、出力部113は、適宜、フレーム数を、時刻を示す情報に変換したり時刻を示す情報をフレーム数に変換しても良い。
また、出力部113は、例えば、映像情報の一のフレーム画像を出力する際に、出力するフレーム画像と対応付けられた映像タイミング情報を指定する字幕タイミング情報と対応付けられた字幕情報を出力するようにしてもよい。例えば、出力部113は、映像受信部101が受信した映像情報の一のフレーム画像を出力する際に、このフレーム画像に対応付けられた映像タイミング情報を取得し、この映像タイミング情報を指定する字幕タイミング情報と対応付けられた字幕情報を出力する。例えば、出力部113は、映像受信部101が受信した映像情報の一のフレーム画像を出力する際に、このフレーム画像に対応付けられた映像タイミング情報であるタイムコードを取得し、この映像タイミング情報であるタイムコードと一致するタイムコードと対応付けられた字幕情報を出力する。映像タイミング情報であるタイムコードと一致するタイムコードと対応付けられた字幕情報とは、例えば、映像タイミング情報であるタイムコードが示す時刻を示す字幕タイミング情報、または映像タイミング情報であるタイムコードが示す時刻を含む期間を示す字幕タイミング情報と対応付けられた字幕情報である。
出力部113は、例えば、映像格納部103に格納されている映像情報と、字幕格納部104に格納されている字幕情報とを読み出し、合成して出力する。例えば、出力部113は、映像格納部103に格納されている映像情報を、フレーム画像ごとに読み出して出力する。例えば、出力部113は、映像格納部103に格納されている映像情報のフレーム画像を、蓄積された順番に、あるいは予めタイムコード等で指定されたタイミング(例えば、時刻)に読み出して出力する。読み出したフレーム画像は、例えば、映像格納部103から削除する。また、出力部113は、字幕情報を、字幕情報に対応付けられた字幕タイミング情報が示すタイミング(例えば、時刻)に読み出して出力する。
映像情報に対する、字幕情報の合成は、例えば、どのように行われても良い。例えば、映像情報の一部の領域に重ねて字幕情報を表示しても良い。重ねる際には、字幕情報の可読性や視認性を損ねないようにすることが好ましい。例えば、字幕情報をそのまま重ねて出力しても良いし、乗算モード等の予め指定された合成モードで合成を行って重ねて出力しても良い。あるいは、映像情報と、字幕情報とを、それぞれが重ならないように異なる領域に出力しても良い。かかることは、通常の再生以外の再生においても同様である。
なお、出力部113は、字幕情報の出力、非出力を、ユーザ等の指示に応じて切り替えられるようにしても良い。かかることは、通常の再生以外の再生においても同様である。
なお、字幕情報の出力期間は、どのように決定されても良い。例えば、字幕情報に対応付けられた字幕タイミング情報が、字幕が表示される期間を指定する情報である場合には、出力部113は、例えば、この期間の開始から終了まで、字幕情報を表示する。また、字幕タイミング情報に、字幕情報の出力の開始のタイミングを指定する情報だけが含まれている場合、予め指定された経過時間だけ字幕情報を、映像情報と合成して出力しても良いし、あるいは、次の出力順番の字幕情報が出力されるタイミングまで、字幕情報を出力しても良い。
また、出力部113は、指示受付部105が通常の再生とは異なる再生の指示を受け付けた場合に、受け付けた再生の指示に応じた出力を行う。以下、通常の再生とは異なる再生の指示が、早送り再生の指示である場合と、巻戻し再生の指示である場合とについてそれぞれ説明する。
(2)早送り再生
出力部113は、指示受付部105が早送り再生の指示を受け付けた場合に、映像情報と字幕情報とを合成した映像情報を早送りで出力する。この合成した映像情報の早送りでの出力が、早送り再生である。ここで合成される字幕情報は、字幕格納部104に格納されている字幕情報である。なお、字幕受信部102が受信した字幕情報が字幕格納部104に蓄積される場合、この字幕情報は、字幕受信部102が受信した字幕情報と考えてもよい。例えば、出力部113は、字幕受信部102が受信した字幕情報を、映像情報と合成した映像情報を早送りで出力する。出力部113は、例えば、字幕情報を、この字幕情報と対応づけられた字幕タイミング情報を用いて映像情報と合成した映像情報を、早送りで出力する。字幕タイミング情報を用いて合成するということは、例えば、映像情報のフレーム画像に対して、このフレーム画像と対応づけられた映像タイミング情報が示すタイミングと同じタイミングを示す字幕タイミング情報と対応づけられた字幕情報を合成することである。あるいは、字幕情報の出力するタイミングを、字幕タイミング情報、例えば、タイムコードが示すタイミングに決定することと考えても良い。なお、ここでのタイミングは、字幕情報の出力開始や終了等のタイミングと考えても良いし、出力される期間と考えても良い。早送りで出力するということは、例えば、映像格納部103に格納されている映像情報と、字幕格納部104に格納されている字幕情報とを合成した映像情報を、映像情報の通常の再生速度よりも、速い再生速度で再生することである。再生速度は、例えば、1秒間に出力されるフレーム数等のフレームレート等で設定されている。
例えば、出力部113は、通常の再生時のフレームレートよりも速いフレームレートで、合成した映像情報の各フレーム画像を出力するようにしても良い。例えば、通常のフレームレートが30フレーム/秒である場合、出力部113は、早送り再生時には30フレーム/秒よりも速いフレームレートで合成した映像情報のフレーム画像を出力する。この早送り再生時のフレームレートは、例えば早送り再生指示が、上述したn倍速等の、早送り再生時の速度を指定する情報を有する場合に、この速度に応じて決定しても良いし、デフォルト等で指定された、通常の再生速度よりも速いフレームレートであっても良い。例えば、早送り再生時の再生速度を、通常の再生速度のn倍速に指定する情報を有する早送り再生の指示を指示受付部105が受け付けた場合、出力部113は、映像格納部103に格納されている映像情報のフレーム画像を、通常のフレームレートのn倍のフレームレートで、通常の再生時の出力順に読み出して出力する。
なお、通常よりも速い再生速度で再生するということは、例えば、映像格納部103に格納されている映像情報と、字幕格納部104に格納されている字幕情報とを合成した映像情報のフレーム画像を、合成前の映像情報を構成するフレーム画像と対応づけられた映像タイミング情報や、字幕情報と対応づけられた字幕タイミング情報が示すタイミングよりも早いタイミングで出力することと考えても良い。ここでの映像タイミング情報や、字幕タイミング情報は、例えば、タイムコードである。例えば、早送り再生の指示を受け付けた場合、出力部113は、一のタイムコードと対応づけられた映像情報のフレーム画像とこのフレーム画像に対応づけられた字幕情報とを合成した映像情報を、上記のタイムコードよりも早いタイミングで出力する。ここでの早いタイミングとは、例えば、タイムコードが示す出力のタイミングに、予め指定された比率(但し、この比率は、100%未満とする)を乗算して算出されるタイミングや、タイムコードが示す出力のタイミングに、早送り再生の指示が示す再生速度に応じて決定される比率(但し、この比率は、100%未満とする)を乗算して算出されるタイミングである。再生速度に応じて決定される比率とは、再生速度を引数とした連続的に減少、あるいは段階的に減少する関数により算出される比率である。
出力部113は、映像情報と字幕情報とを合成した映像情報を早送りで出力する場合に、合成した映像情報のフレーム画像を間引いて出力しても良い。映像情報のフレーム画像を間引いて出力するとは、例えば、映像情報の1以上のフレーム画像を、出力順において1以上のフレーム画像毎に出力することである。あるいは、出力順において1以上のフレーム画像を隔てながら1以上のフレーム画像を順次出力することであってもよい。ここでのフレーム画像の出力順は、通常の再生時の出力順と同じ順番である。なお、ここでの、合成した映像情報のフレーム画像を間引いて出力するということは、結果的に映像情報と字幕情報とを合成した映像情報のフレーム画像を間引いて出力することであればよい。例えば、出力部113が、映像情報と字幕情報とを合成した映像情報から、フレーム画像を間引いても良いし、合成前の映像情報のフレーム画像を間引くことで得られた各フレーム画像に対して、対応する字幕情報を合成して得られたフレーム画像を、出力順に順次出力しても良い。対応する字幕情報とは、例えば、間引いた結果得られたフレーム画像に対応する映像タイミング情報と同じ出力タイミングを示す字幕タイミング情報と対応づけられた字幕情報である。まお、間引いたフレーム画像を、例えば、フレーム画像に対応づけられたタイムコード等を無視して、通常の再生速度等で出力することも、結果的に、出力されるフレーム画像は、元のフレーム画像が出力される速度よりも早く出力され、早送り再生と同様の出力となることから、ここでは、早送り再生であると考えるようにしてもよい。
合成後のフレーム画像を間引く場合、出力部113が合成後のフレーム画像をどのように間引くかは問わない。また、間引く数は一定であってもよく、一定でなくても良い。出力部113は、例えば、予め指定された数のフレーム画像毎に、予め指定された数のフレーム画像を順次出力するようにしても良い。また、早送り再生時の再生速度に応じて決定された数の映像情報毎に、予め指定された数の映像情報または再生速度に応じて決定された数の映像情報を順次出力するようにしても良い。上記の出力されない映像情報の数や、出力される映像情報の数は、例えば、再生速度を引数とする演算式や、予め用意された再生速度と間引く映像情報の数との関係を定義するテーブルやルール等を用いて決定される。例えば、n倍速で早送り再生を行う場合、出力部113は、映像情報のフレーム画像を、nフレーム毎に、1フレーム出力するようにしてもよい。
また、映像情報のフレーム画像のうちの、Iピクチャ(Intraピクチャ)等の特定のフレーム画像だけを出力するようにして、他のフレーム画像は間引くようにしても良い。特定のフレーム画像は、例えば、Iピクチャやキーフレーム等の、他のフレーム画像を参照せずに、単独で画像を出力可能なフレーム画像、つまり、完全に独立したフレーム画像であることが好ましい
なお、このようなフレーム画像を間引く処理については、合成前のフレーム画像を間引く場合においても同様であるので、詳細な説明は省略する。
また、出力部113は、指示受付部105が通常の再生とは異なる再生の指示である早送り再生の指示を受け付けた場合に、各字幕情報の一部のみを映像情報と合成して出力するようにしてもよい。出力部113は、例えば、映像情報の各フレーム画像と、各フレーム画像に対応づけられた映像タイミング情報と同じタイミングを示す字幕タイミング情報と対応づけられた字幕情報の一部とを合成して、早送りで出力する。出力部113は、字幕情報の一部を、例えば、部分字幕取得部112から取得する。例えば、出力部113は、早送り再生時に一のフレーム画像を出力する際に、このフレーム画像に対応づけられた映像タイミング情報と同じタイミングを示す字幕タイミング情報と対応づけられた字幕情報について、一部の文字列を取得する指示を、部分字幕取得部112に出力する。そして、この指示に応じて部分字幕取得部112が取得した一部の文字列を取得して上記の一のフレーム画像と合成する。そして、合成したフレーム画像を用いて早送り再生を行う。なお、出力部113は、字幕情報の一部を取得する指示を部分字幕取得部112に指示を出す代わりに、字幕情報を字幕格納部104から読み出して、部分字幕取得部112に送信するようにしても良い。
また、指示受付部105が通常の再生とは異なる再生の指示である早送り再生の指示を受け付けた場合、出力部113は、字幕格納部104に格納されている2以上の異なる字幕情報を出力順において間引いて出力してもよい。ここでの出力順とは、早送り再生の際の出力順であり、通常の再生時において字幕情報が出力される出力順と同じである。各字幕情報の出力順は、例えば、字幕タイミング情報により決定される。異なる字幕情報とは、例えば、内容が異なる字幕情報であり、具体的には、字幕情報が示す文字列が異なる字幕情報である。字幕情報を間引く際においては、例えば、連続して出力される同じ内容の複数の字幕情報を、一つの字幕情報と扱うようにしても良い。このように字幕情報を間引くことで、早送り再生されることによって十分に読み取る時間が確保できない字幕が大量に表示されることを防いで、字幕が合成された映像を見やすく早送り再生することができる。
また、出力部113は、間引いて取得した各字幕情報を、時間情報に対応づけられている字幕タイミング情報が示す出力期間の長さに関係なく、デフォルト等で指定された時間や、早送り再生時の速度等に応じて設定される時間等の、予め指定された長さの期間(時間)だけ、フレーム画像と合成して出力するようにしても良い。この間引いた各字幕情報の出力される期間の期間は、例えば、各字幕情報を、本来字幕情報に対応づけられている出力時間を早送り再生の速度で出力した場合の時間よりも長い時間とすることが好ましい。また、この間引いた各字幕情報の出力される期間は、例えば、この間引いた字幕情報の出力される期間は、ユーザが字幕の内容を視覚により認識可能な時間、例えば、数秒以上の時間であることが好ましい。このようにすることで、ユーザが早送り時でも、早送りされて表示されている映像情報に対応する部分の字幕を読み取ることができ、早送りされている箇所を的確に把握することができる。
出力部113がどのように字幕情報を間引くかは問わない。また、間引く字幕情報の量は一定であっても一定でなくても良い。字幕格納部104に、例えば、字幕が表示される時間(期間)を示す字幕タイミング情報と対応づけられている異なる2以上の字幕情報が格納されている場合、出力部113は、字幕タイミング情報を用いて決定される早送り再生時の出力順において予め指定された1以上の字幕情報を隔てた予め指定された1以上の字幕情報を、順次、字幕格納部104に格納されている2または3以上の字幕情報から読み出す。また、出力部113は、例えば、映像格納部103に格納されている映像情報のフレーム画像を早送り再生時の出力順において間引いて取得する。そして、間引いたフレーム画像に一致する字幕情報が、間引いて取得した字幕情報の中に存在する場合、この字幕情報をフレーム画像と合成して出力する。また、対応する字幕情報がない場合、直前に合成した字幕情報と同じ字幕情報を合成して出力することが好ましい。
具体的には、出力部113は、間引くことで取得したフレーム画像が、間引くことで取得された字幕情報の一つに対応するフレーム画像である場合、字幕情報をフレーム画像に合成して、通常の再生速度よりも速い再生速度で出力する。また、その後に間引いて取得されたフレーム画像についても、間引いて取得された出力順が次の字幕情報に対応したフレーム画像が表れるまでは、直前の字幕情報を合成して通常の再生速度よりも速い再生速度で出力するようにする。そして、間引くことで取得した次の出力順の字幕情報に対応したフレーム画像が表れた場合、この字幕情報を合成したフレーム画像を通常の再生速度よりも速い再生速度で出力する。これにより、間引いて取得された字幕情報を合成した映像情報を出力できる。また、対応する字幕情報がない場合、直前に合成された字幕情報を合成して出力することで、字幕情報が出力される期間を、次の字幕情報が出力されるまでの期間とすることができ、早送り再生時において各字幕情報が出力される時間を長くして、字幕を読み取りやすくすることができる。
なお、字幕情報を間引くということは、結果的に字幕情報うちの1以上の字幕情報を間引くことであればよく、例えば、出力部113が、早送り再生時に間引かれて出力されるフレーム画像のうちの、予め指定された数のフレーム画像ごとに、映像タイミング情報を取得し、この映像タイミング情報に対応する字幕タイミング情報と対応づけられた字幕情報を、このフレーム画像に合成する字幕情報として取得することによって、1以上の字幕情報が間引かれる場合も、字幕情報を間引くこととと考えても良い。
出力部113は、間引いて取得した字幕情報が出力される時間(期間)を、この字幕情報に対応づけられていた時間とは異なる時間、例えば、元の時間以下の長さを有する、予め指定された時間や、早送り再生の再生速度等に応じた時間に設定し、この字幕情報に対応するフレーム画像であって、上記で設定された字幕情報の出力される時間分のフレーム画像を、映像情報から取得し、字幕情報と、この字幕情報に対応するフレーム画像とを合成したフレーム画像を、上記で設定された字幕情報が出力される時間だけ、元のフレーム画像に設定されていた出力順に出力することで、結果的に早送りで出力されるようにしてもよい。なお、この場合、出力部113は、各字幕情報に対応するフレーム画像を間引きして取得するようにしても良い。
(3)巻戻し再生
出力部113は、指示受付部105が巻戻し再生の指示を受け付けた場合に、映像情報と字幕情報とを合成した映像情報を巻戻しながら出力する。出力部113が合成する映像情報は、例えば、出力済映像格納部107に格納されている映像情報であり、合成する字幕情報は、例えば、出力済字幕格納部108に格納されている字幕情報である。ここでの出力済の映像情報や出力済の字幕情報は、早送り再生時に再生された映像情報や字幕情報も含む概念である。早送り再生時に再生された映像情報や字幕情報は、早送り再生時に間引かれた映像情報や字幕情報を含むと考えても良い。例えば、出力済映像格納部107が字幕格納部103と同じ格納部で構成されていない場合、早送り再生時に出力された、あるいは間引かれた映像情報を、出力部113等が、出力済映像格納部107に蓄積されるようにする。また、例えば、出力済字幕格納部108が字幕格納部104と同じ格納部で構成されていない場合、早送り再生時に出力された、あるいは間引かれた字幕情報を、出力部113等が、出力済字幕格納部108に蓄積されるようにする。この合成した映像情報の巻戻しながらの出力が、巻戻し再生である。通常の再生時の再生速度と同じ再生速度による、通常の再生方向と逆方向の再生、即ち逆再生も、巻戻し再生に含まれると考えても良い。なお、ここでの出力済とは、出力用の図示しないバッファ等への字幕情報や、映像情報の蓄積や、出力のための字幕情報や映像情報の読み出しも含むと考えても、含まないと考えても良い。
出力部113は、例えば、字幕情報を、この字幕情報と対応づけられた字幕タイミング情報を用いて映像情報と合成した映像情報を、巻戻しながら出力する。字幕タイミング情報を用いて合成するということは、例えば、映像情報のフレーム画像に対して、このフレーム画像と対応づけられた映像タイミング情報が示すタイミングと同じタイミングを示す字幕タイミング情報と対応づけられた字幕情報を合成することである。あるいは、字幕情報の出力するタイミングを、字幕タイミング情報、例えば、タイムコードが示すタイミングに決定することと考えても良い。なお、ここでのタイミングは、字幕情報の出力開始や終了等のタイミングと考えても良いし、出力される期間と考えても良い。巻戻しながら出力するということは、例えば、出力済映像格納部107に格納されている映像情報と、出力済字幕格納部108に格納されている字幕情報とを合成した映像情報を、映像情報の通常の再生速度以上の再生速度で、通常の再生時とは逆向きの出力順に出力することである。また、字幕情報と合成した映像情報のフレーム画像を、各フレーム画像に対応づけられたタイムコードが示す時刻が、時間を遡る順番となるように、出力することである。また、例えば、巻戻しながらの出力とは、通常の再生時の出力順番と対応づけられた映像情報のフレーム画像を、この出力順番とは逆順に、順次出力することである。再生速度は、例えば、1秒間に出力されるフレーム数等のフレームレート等で設定されている。
例えば、出力部113は、通常の再生時のフレームレート以上のフレームレートで、合成した映像情報の各フレーム画像を、通常の再生方向とは、逆方向に出力するようにしても良い。例えば、通常のフレームレートが30フレーム/秒である場合、出力部113は、巻戻し再生時には30フレーム/秒以上のフレームレートで、合成した映像情報のフレーム画像を逆方向に出力する。この巻戻し再生時のフレームレートは、例えば巻戻し再生の指示が、上述したm倍速等の、巻戻し再生時の速度を指定する情報を有する場合に、この速度に応じて決定しても良いし、デフォルト等で指定された、通常の再生速度以上のフレームレートであっても良い。例えば、巻戻し再生時の再生速度を、通常の再生速度のm倍速に指定する情報を有する巻戻し再生の指示を指示受付部105が受け付けた場合、出力部113は、出力済映像格納部107に格納されている映像情報のフレーム画像を、通常のフレームレートのm倍のフレームレートで、通常の再生時の読み出し順の逆順に読み出して出力する。
なお、通常の再生速度以上の再生速度で再生するということは、例えば、出力済映像格納部107に格納されている映像情報と、出力済字幕格納部108に格納されている字幕情報とを合成した映像情報のフレーム画像を、合成前の映像情報を構成するフレーム画像と対応づけられた映像タイミング情報や、字幕情報と対応づけられた字幕タイミング情報が示すタイミングよりも早いタイミング(例えば、早い時間間隔)で、通常の再生方向とは逆方向に出力すること、即ち時間を遡るように出力することと考えても良い。ここでの映像タイミング情報や、字幕タイミング情報は、例えば、タイムコードである。例えば、巻戻し再生の指示を受け付けた場合、出力部113は、一のタイムコードと対応づけられた映像情報のフレーム画像とこのフレーム画像に対応づけられた字幕情報とを合成した映像情報を、上記のタイムコードよりも早いタイミングで出力する。ここでの早いタイミングとは、例えば、タイムコードが示す出力のタイミングに、予め指定された比率(但し、この比率は、100%以下とする)を乗算して算出されるタイミングや、タイムコードが示す出力のタイミングに、早送り再生の指示が示す再生速度に応じて決定される比率(但し、この比率は、100%以下とする)を乗算して算出されるタイミングである。再生速度に応じて決定される比率とは、再生速度を引数とした連続的に減少、あるいは段階的に減少する関数により算出される比率である。
出力部113は、映像情報と字幕情報とを合成した映像情報を巻戻しながら出力する場合に、合成した映像情報のフレーム画像を間引いて出力しても良い。映像情報のフレーム画像を間引いて出力するとは、例えば、映像情報の1以上のフレーム画像を、出力順において1以上のフレーム画像毎に出力することである。あるいは、出力順において1以上のフレーム画像を隔てながら1以上のフレーム画像を順次出力することであってもよい。ここでのフレーム画像の出力順は、通常の再生時の出力順とは逆の順番である。なお、ここでの、合成した映像情報のフレーム画像を間引いて出力するということは、結果的に映像情報と字幕情報とを合成した映像情報のフレーム画像を間引いて出力することであればよい。例えば、出力部113が、映像情報と字幕情報とを合成した映像情報から、フレーム画像を間引いても良いし、合成前の映像情報のフレーム画像を間引くことで得られた各フレーム画像に対して、対応する字幕情報を合成して得られたフレーム画像を、出力順に順次出力しても良い。対応する字幕情報とは、例えば、間引いた結果得られたフレーム画像に対応する映像タイミング情報と同じ出力タイミングを示す字幕タイミング情報と対応づけられた字幕情報である。まお、間引いたフレーム画像を、例えば、フレーム画像に対応づけられたタイムコード等を無視して、通常の再生速度で、通常の再生方向と逆方向に出力することも、結果的に、出力されるフレーム画像は、元のフレーム画像が出力される速度よりも早く出力され、通常の再生速度より高速の巻戻し再生と同様の出力となることから、ここでは、逆再生以外の巻戻し再生であると考えるようにしてもよい。
合成後のフレーム画像を間引く場合、出力部113が合成後のフレーム画像をどのように間引くかは問わない。例えば、出力部113は、予め指定された数のフレーム画像毎に、予め指定された数のフレーム画像を順次出力するようにしても良い。また、巻戻し再生時の再生速度に応じて決定された数の映像情報毎に、予め指定された数の映像情報または再生速度に応じて決定された数の映像情報を順次出力するようにしても良い。上記の出力されない映像情報の数や、出力される映像情報の数は、例えば、再生速度を引数とする演算式や、予め用意された再生速度と間引く映像情報の数との関係を定義するテーブルやルール等を用いて決定される。例えば、m倍速で巻戻し再生を行う場合、出力部113は、映像情報のフレーム画像を、通常の再生方向とは逆方向、即ち、時間を遡る方向において、mフレーム毎に、1フレーム出力するようにしてもよい。
また、映像情報のフレーム画像のうちの、Iピクチャ(Intraピクチャ)等の特定のフレーム画像だけを出力するようにして、他のフレーム画像は間引くようにしても良い。特定のフレーム画像は、例えば、Iピクチャやキーフレーム等の、他のフレーム画像を参照せずに、単独で画像を出力可能なフレーム画像、つまり、完全に独立したフレーム画像であることが好ましい
なお、このようなフレーム画像を間引く処理については、合成前のフレーム画像を間引く場合においても同様であるので、詳細な説明は省略する。
出力部113は、指示受付部105が通常の再生とは異なる再生の指示である巻戻し再生の指示を受け付けた場合に、各字幕情報の一部のみを映像情報と合成して出力するようにしてもよい。出力部113は、例えば、映像情報の各フレーム画像と、各フレーム画像に対応づけられた映像タイミング情報と同じタイミングを示す字幕タイミング情報と対応づけられた字幕情報の一部とを合成して、巻戻しながら出力する。出力部113は、字幕情報の一部を、例えば、部分字幕取得部112から取得する。例えば、出力部113は、巻戻し再生時に一のフレーム画像を出力する際に、このフレーム画像に対応づけられた映像タイミング情報と同じタイミングを示す字幕タイミング情報と対応づけられた字幕情報について、一部の文字列を取得する指示を、部分字幕取得部112に出力する。そして、この指示に応じて部分字幕取得部112が取得した一部の文字列を取得して、上記の一のフレーム画像と合成する。そして、合成したフレーム画像を用いて巻戻し再生を行う。なお、出力部113は、字幕情報の一部を取得する指示を部分字幕取得部112に出す代わりに、字幕情報を字幕格納部104から読み出して、部分字幕取得部112に送信するようにしても良い。なお、出力部113は、巻戻し再生の際の再生速度が、通常の再生速度よりも早い場合にだけ、字幕情報の一部のみを合成して出力するようにしても良い。
また、出力部113は、指示受付部105が通常の再生とは異なる再生の指示である巻戻し再生の指示を受け付けた場合に、2以上の字幕情報を間引いて出力してもよい。この巻戻し再生の指示は、逆再生以外の巻戻し再生の指示、即ち通常の再生時の再生速度よりも速い速度による巻戻し再生の指示であることが好ましい。ここでの出力順とは、通常の再生時において字幕情報が出力される出力順の逆の順番である。各字幕情報の出力順は、例えば、字幕タイミング情報を用いて決定される。異なる字幕情報とは、例えば、内容が異なる字幕情報であり、具体的には、字幕情報が示す文字列が異なる字幕情報である。
出力部がどのように字幕情報を間引くかは問わない。また、間引く字幕情報の量は一定であっても一定でなくても良い。例えば、字幕格納部104に、字幕が表示される時間(期間)を示す字幕タイミング情報と対応づけられている異なる2以上の字幕情報が格納されている場合、出力部113は、字幕タイミング情報を用いて決定される巻戻し再生時の出力順において予め指定された1以上の字幕情報を隔てた予め指定された1以上の字幕情報を、順次、出力済字幕格納部108に格納されている2または3以上の字幕情報から読み出す。また、出力部113は、例えば、映像格納部103に格納されている映像情報のフレーム画像を巻戻し再生時の出力順において間引いて取得する。そして、間引いたフレーム画像に一致する字幕情報が、間引いて取得した字幕情報の中に存在する場合、この字幕情報をフレーム画像と合成して出力する。また、対応する字幕情報がない場合、直前に合成した字幕情報と同じ字幕情報を合成して出力することが好ましい。
具体的には、出力部113は、間引くことで取得したフレーム画像が、間引くことで取得された字幕情報の一つに対応するフレーム画像である場合、字幕情報をフレーム画像に合成して、通常の再生速度以上の速さの再生速度で出力する。また、その後に間引いて取得されたフレーム画像についても、間引いて取得された出力順が次の字幕情報に対応したフレーム画像が表れるまでは、直前の字幕情報を合成して通常の再生速度以上の再生速度で出力するようにする。そして、間引くことで取得した次の出力順の字幕情報に対応したフレーム画像が表れた場合、この字幕情報を合成したフレーム画像を通常の再生速度以上の再生速度で出力する。これにより、間引いて取得された字幕情報を合成した映像情報を出力できる。また、対応する字幕情報がない場合、直前に合成された字幕情報を合成して出力することで、字幕情報が出力される期間を、次の字幕情報が出力されるまでの期間とすることができ、巻戻し再生時において各字幕情報が出力される時間を長くして、字幕を読み取りやすくすることができる。
なお、字幕情報を間引くということは、結果的に字幕情報うちの1以上の字幕情報を間引くことであればよく、例えば、出力部113が、巻戻し再生時に間引かれて出力されるフレーム画像のうちの、予め指定された数のフレーム画像ごとに、映像タイミング情報を取得し、この映像タイミング情報に対応する字幕タイミング情報と対応づけられた字幕情報を、このフレーム画像に合成する字幕情報として取得することによって、1以上の字幕情報が間引かれる場合も、字幕情報を間引くこととと考えても良い。
出力部113は、巻戻し再生時の出力順において間引いて取得した字幕情報が出力される時間(期間)を、この字幕情報に対応づけられていた時間とは異なる時間、例えば、元の時間以下の長さを有する、予め指定された時間や、巻戻し再生の再生速度等に応じた時間に設定し、この字幕情報に対応するフレーム画像であって、上記で設定された字幕情報の出力される時間分のフレーム画像を、映像情報から取得し、字幕情報と、この字幕情報に対応するフレーム画像とを合成したフレーム画像を、上記で設定された字幕情報が出力される時間だけ、元のフレーム画像に設定されていた出力順とは逆の出力順に出力することで、結果的に巻戻しで出力されるようにしてもよい。なお、この場合、出力部113は、字幕情報に対応するフレーム画像を間引きして取得するようにしても良い。
なお、出力部113は、巻戻し再生時の再生速度が通常の再生時の再生速度よりも速い場合にのみ、映像情報や字幕情報を間引くようにしても良い。
ここでの出力とは、ディスプレイへの表示、プロジェクターを用いた投影、外部の装置への送信、VRAMやバッファ等の記憶媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。なお、映像情報が音声情報を有する場合、ここでの出力は、音声出力を含むものであってもよい。
出力部113は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部113は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
制御サーバ装置2は、映像出力装置1に制御情報を送信するサーバ装置である。制御サーバ装置2は、例えば、コンピュータ等で実現可能である。
制御情報格納部201には、1または2以上の制御情報が格納される。制御情報は、映像識別情報と対応付けられて制御情報格納部201に格納されていても良い。一の映像識別情報と対応付けられた制御情報は、例えば、この映像識別情報が示す映像情報に関する情報を有している。一の映像識別情報と対応付けられた制御情報は、例えば、この映像識別情報が示す映像情報を送信する映像サーバ装置3、及びこの映像情報に対応する字幕情報を送信する字幕サーバ装置4を指定する情報を有する。また、この制御情報は、更に、一の映像識別情報が示す映像情報や字幕情報が格納されているディレクトリを指定する情報や、一の映像識別情報が示す映像情報の種類を示す情報や、一の映像識別情報が示す映像情報やこれに対応する字幕情報を出力する際の配置場所を示す配置情報等を有していてもよい。
制御サーバ側受信部202は、映像出力装置1の制御要求情報送信部110から送信される制御要求情報を受信する。
制御サーバ側送信部203は、制御情報格納部201に格納されている一の制御情報を読み出して、映像出力装置1に送信する。例えば、制御サーバ側送信部203は、制御サーバ側受信部202が受信した制御要求情報に対応した制御情報を読み出して、送信する。制御サーバ側送信部203は、例えば、制御要求情報が有する映像識別情報と一致する映像情報と対応付けて制御情報格納部201に格納されている制御情報を読み出して、制御要求情報の送信元となる映像出力装置1に送信する。
映像サーバ装置3は、映像出力装置1に映像情報を送信するサーバ装置である。映像サーバ装置3は、例えば、コンピュータ等で実現可能である。
映像サーバ側格納部301には、1または2以上の映像情報が格納される。例えば、映像サーバ側格納部301には、1または2以上の映像情報が、映像識別情報と対応付けて格納される。
映像サーバ側受信部302は、映像出力装置1の映像要求情報送信部109から送信される映像要求情報を受信する。また、映像サーバ側受信部302は、映像出力装置1の映像要求情報送信部109から送信される早送り映像要求情報を受信する。
映像サーバ側送信部303は、映像サーバ側格納部301に格納されている映像情報を読み出して、映像要求情報の送信元となる映像出力装置1に送信する。映像サーバ側送信部303は、例えば、映像要求情報に含まれる映像識別情報と一致する映像識別情報と対応付けられている映像情報を、映像サーバ側格納部301から読み出して送信する。例えば、映像サーバ側送信部303は、直前に送信した映像情報のフレーム画像に対し、通常再生時において次の出力順となる1以上のフレーム画像を送信する。
また、映像サーバ側送信部303は、映像サーバ側受信部302が早送り映像要求情報を受信した場合、通常の量よりも多い量の映像情報(例えば、フレーム画像)を、映像サーバ側格納部301から読み出して、早送り映像要求情報の送信元となる映像出力装置1に送信する。通常の量とは、例えば、映像要求情報に応じて送信する映像情報の量である。映像サーバ側送信部303は、例えば、早送り映像要求情報が、早送り再生の再生速度や、送信を要求する映像情報の量を指定する情報を含まない場合、予め指定された、通常の再生時よりも多い量の映像情報を送信する。また、早送り映像要求情報が、早送り再生の際の再生速度を示す情報を有する場合、この再生速度に応じた通常の再生時よりも多い量の映像情報を送信する。例えば、再生速度に対して予め対応づけられた量の映像情報を送信しても良いし、再生速度を引数とした連続的に増加する関数や、段階的に増加する関数により算出された量の映像情報を送信してもよい。また、早送り映像要求情報が、映像情報の量を指定する情報を有する場合、指定された量の映像情報を送信してもよい。ここでの量については、上記と同様である。なお、通常の量よりも多い映像情報を送信することや、送信量を決定する処理以外は、映像要求情報を受け付けた場合と同様である。
映像サーバ側送信部303は、いわゆるストリーミング配信等のように、一の映像情報をパケット等に分割して一定または不定のタイミング等で送信しても良いし、一の映像情報を複数に分割して送信しても良いし、一の映像情報を一度に送信しても良い。
字幕サーバ装置4は、字幕要求情報に応じて字幕情報を送信するサーバ装置である。字幕サーバ装置4は、例えば、コンピュータ等で実現可能である。
字幕サーバ側格納部401には、1または2以上の字幕情報と、これらの各字幕情報を出力するタイミングを示す字幕タイミング情報とが対応付けて格納されている。字幕情報は、更に、映像識別情報と対応付けられて字幕サーバ側格納部401に格納されていても良い。なお、字幕サーバ側格納部401には、字幕タイミング情報と対応付けられていない1または2以上の字幕情報が格納されていても良い。
字幕サーバ側受信部402は、映像出力装置1から送信される字幕要求情報を受信する。また、字幕サーバ側受信部402は、映像出力装置1から送信される早送り字幕要求情報を受信する。例えば、字幕サーバ側受信部402は、映像識別情報を有する字幕要求情報、及び映像識別情報を有する早送り字幕要求情報を受信する。
字幕サーバ側送信部403は、字幕要求情報を受け付け付けた場合に、字幕サーバ側格納部401に格納されている字幕情報を読み出して映像出力装置1に送信する。字幕サーバ側送信部403は、例えば、字幕要求情報が有する映像識別情報と対応付けられた字幕情報を、字幕サーバ側格納部401から読み出して送信する。字幕サーバ側送信部403は、一の字幕要求情報の受信に応じて、一の映像情報に対応する全ての字幕情報を映像出力装置1に送信しても良いし、一の字幕要求情報を受信するごとに、一の映像情報に対応する予め指定された量の字幕情報、例えば、一の映像情報に対応する1または2以上の字幕情報を、出力順等に従って送信しても良い。また、一の字幕要求情報に応じて送信する字幕情報の量は、字幕要求情報が有する字幕情報の送信量を指定する情報や、送信量の増減を指定する情報に応じて決定される量としてもよい。
また、字幕サーバ側送信部403は、早送り字幕要求情報を受け付けた場合に、通常の量よりも多い字幕情報を読み出して映像出力装置1に送信するようにしてもよい。通常の量とは、例えば、字幕要求情報に応じて送信する字幕情報の量である。字幕サーバ側送信部403は、例えば、早送り字幕要求情報が、早送り再生の再生速度や、送信を要求する字幕情報の量を指定する情報を含まない場合、予め指定された、通常の再生時よりも多い量の字幕情報を送信する。また、早送り字幕要求情報が、早送り再生の際の再生速度を示す情報を有する場合、この再生速度に応じた通常の再生時よりも多い量の字幕情報を送信する。例えば、再生速度に対して予め対応づけられた量の字幕情報を送信しても良いし、再生速度を引数とした連続的に増加する関数や、段階的に増加する関数により算出された量の字幕情報を送信してもよい。また、早送り字幕要求情報が、字幕情報の量を指定する情報を有する場合、指定された量の字幕情報を送信してもよい。ここでの量については、上記と同様である。なお、通常の量よりも多い字幕情報を送信することや、字幕情報の送信量を決定する処理以外は、字幕要求情報を受け付けた場合と同様である。
次に、映像システム1000の映像出力装置1の動作の一例について図2のフローチャートを用いて説明する。ここでは、映像受信部101が、映像タイミング情報と対応付けられたフレーム画像を有する映像情報を受信する場合を例に挙げて説明する。
(ステップS101)指示受付部105が、一の映像情報を出力する指示を受け付けたか否かを判断する。受け付けた場合、ステップS102に進み、受け付けていない場合、ステップS101に戻る。
(ステップS102)制御要求情報送信部110は、制御サーバ装置2に制御要求情報を送信する。
(ステップS103)制御情報受信部111は、制御情報を受信したか否かを判断する。受信した場合、ステップS104に進み、受信していない場合、ステップS103に戻る。
(ステップS104)映像要求情報送信部109は、映像要求情報を送信するタイミングであるか否かを判断し、送信するタイミングである場合、ステップS105に進み、タイミングでない場合、ステップS107に進む。映像要求情報送信部109は、例えば、予め指定された一定または不定の時間毎に映像要求情報を送信するタイミングであると判断しても良いし、予め指定されたトリガー毎に映像要求情報を送信するタイミングであると判断しても良い。また、映像要求情報送信部109は、映像格納部103における映像情報の格納状況(例えば、格納量や、格納率)に応じて映像要求情報を送信するタイミングであるか否かを判断しても良い。
(ステップS105)映像要求情報送信部109は、ステップ103で受信した制御情報が示す映像サーバ装置3に映像要求情報を送信する。
(ステップS106)映像受信部101は、映像サーバ装置3が映像要求情報に応じて送信する映像情報、具体的には、映像情報の1以上のフレーム画像を受信する。そして、映像受信部101は、受信した映像情報を、映像格納部103に蓄積する。
(ステップS107)要求送信部106は、字幕要求情報を送信するタイミングであるか否かを判断し、送信するタイミングである場合、ステップS108に進み、タイミングでない場合、ステップS110に進む。要求送信部106は、例えば、予め指定された一定または不定の時間毎に字幕要求情報を送信するタイミングであると判断しても良いし、予め指定されたトリガー毎に字幕要求情報を送信するタイミングであると判断しても良い。また、要求送信部106は、字幕格納部104における字幕情報の格納状況(例えば、格納量や、格納率)に応じて字幕要求情報を送信するタイミングであるか否かを判断しても良い。
(ステップS108)要求送信部106は、字幕要求情報を制御情報が示す字幕サーバ装置4に送信する。
(ステップS109)字幕受信部102は、字幕要求情報に応じて字幕サーバ装置4が送信する字幕情報と字幕タイミング情報との組である1以上の字幕組情報を受信する。そして、字幕受信部102は受信した1以上の字幕組情報を、字幕格納部104に蓄積する。
(ステップS110)出力部113は、出力順に一のフレーム画像を取得する。出力部113は、例えば、映像格納部101に格納されている一の映像情報から、まだ、出力されていないフレーム画像であって出力順が最も早い一のフレーム画像を取得する。ここでの取得は例えば読み出しである。また、ここでの出力は、映像情報の出力のために、出力部113により映像情報から読み出されて、図示しないVRAMやフレームバッファ、リングバッファ等の記憶媒体に蓄積されることも含む概念である。
なお、出力済映像格納部107として、映像格納部103の一部を用いる場合、出力部113は、例えば、取得した映像情報のフレーム画像に対して、出力済であることを示すフラグ等の情報を付与して、そのまま映像格納部103に残しておくようにする。この場合、このフラグ等が付与された出力済のフレーム画像が、出力済映像格納部107に格納されたフレーム画像である。また、出力済映像格納部107が、映像格納部103の一部でない場合、出力部113は、例えば、取得した映像情報のフレーム画像を、映像格納部103から削除し、出力済映像格納部107に蓄積する。
(ステップS111)出力部113は、ステップS110で取得したフレーム画像に対応する映像タイミング情報を取得する。
(ステップS112)出力部113は、ステップS111で取得した映像タイミング情報に対応する字幕タイミング情報が、字幕格納部104に格納されている1以上の字幕組情報の中にあるか否かを判断する。ある場合、ステップS113に進み、ない場合、ステップS115に進む。映像タイミング情報に対応する字幕タイミング情報とは、例えば、映像タイミング情報が示すタイミングと同じタイミングを示す字幕タイミング情報である。同じタイミングを示す字幕タイミング情報とは、同じタイミングを含む期間等を示す字幕タイミング情報も含む概念である。例えば、映像タイミング情報が、タイムコードであり、字幕タイミング情報が、タイムコードで表される期間を示す情報である場合、ステップS111で取得したタイムコードを含む期間を示す字幕タイミング情報が検出できるか否かを判断することである。
(ステップS113)出力部113は、ステップS112で検出された字幕タイミング情報に対応する字幕情報を、字幕格納部104から取得する。例えば、ステップS113で検出された字幕タイミング情報を含む字幕組情報から、字幕情報を取得する。ここでの取得は例えば読み出しである。
なお、出力済字幕格納部108として、字幕格納部104の一部を用いる場合、出力部113は、例えば、取得した字幕情報に対して、出力済であることを示すフラグ等の情報を付与して、そのまま字幕格納部104に残しておくようにする。また、出力済字幕格納部108が、字幕格納部104の一部でない場合、出力部113は、例えば、取得した字幕情報を、字幕格納部104から削除し、出力済字幕格納部108に蓄積する。なお、ここでの字幕情報の出力とは、字幕情報の字幕格納部104からの読み出しや、字幕情報を合成したフレーム画像の、図示しない出力用のバッファ等への蓄積も含む概念である。
(ステップS114)出力部113は、ステップS113で取得した字幕情報と、ステップS110で取得したフレーム画像を合成し、合成により得られたフレーム画像を、図示しない出力用のバッファ等の記憶媒体に蓄積する。出力部113は、例えば、蓄積された順番が判断可能となるようにフレーム画像を蓄積する。出力部113は、例えば、合成したフレーム画像には、元のフレーム画像の映像タイミング情報を対応づけておく。そして、ステップS116に進む。
(ステップS115)出力部113は、ステップS110で取得したフレーム画像を、図示しない出力用のバッファ等の記憶媒体に蓄積する。出力部113は、例えば、蓄積された順番が判断可能となるようにフレーム画像を蓄積する。蓄積するフレーム画像には、例えば、元のフレーム画像の映像タイミング情報を対応づけておく。そして、ステップS116に進む。蓄積する。
(ステップS116)出力部113は、映像情報の通常の再生時の出力タイミングであるか否かを判断する。通常の再生時の出力タイミングとは、例えば、通常の再生時のフレームレート等の再生速度により決定される出力タイミングである。例えば、フレームレートが、30fps(フレーム・パー・セカンド)である場合、直前のフレーム画像が出力されてから、30分の1秒が経過した時点で、次のフレーム画像の出力タイミングであると判断する。ただし、出力指示を受けてから最初のフレーム画像が出力されていない場合、例えば、上述した出力用のバッファ等の記憶媒体(図示せず)に、予め指定された量のフレーム画像が蓄積された場合に、最初のフレーム画像を出力するタイミングであると判断してもよい。ここでの出力は、例えば、表示等である。出力タイミングである場合、ステップS117に進み、出力タイミングでない場合、ステップS118に進む。
(ステップS117)出力部113は、上述した出力用のバッファ等の記憶媒体(図示せず)に格納されている1以上のフレーム画像のうちの、出力順が最も早いフレーム画像を出力する。ここでの出力は、例えば表示である。なお、直前にフレーム画像が出力されている場合、この出力順が最も早いフレーム画像で出力を更新する。
(ステップS118)指示受付部105は、早送り再生指示を受け付けたか否かを判断する。受け付けた場合、ステップS120に進み、受け付けていない場合、ステップS119に進む。
(ステップS119)指示受付部105は、巻戻し再生指示を受け付けたか否かを判断する。受け付けた場合、ステップS121に進み、受け付けていない場合、ステップS104に戻る。
(ステップS120)映像出力装置1は、早送り再生の処理を行う。この処理の詳細については後述する。そして、ステップS104に戻る。
(ステップS121)映像出力装置1は、巻戻し再生の処理を行う。この処理の詳細については後述する。そして、ステップS104に戻る。
なお、図2のフローチャートにおいて、ステップS104からステップS109の処理等を、他の処理に対して並列処理するようにしても良い。
図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、映像出力装置1が早送り再生を行う場合の動作について図3のフローチャートを用いて説明する。この動作は、図2のステップS120の処理に相当する処理である。
(ステップS201)映像要求情報送信部109は、早送り映像要求情報を送信するタイミングであるか否かを判断し、送信するタイミングである場合、ステップS202に進み、タイミングでない場合、ステップS204に進む。映像要求情報送信部109は、例えば、予め指定された一定または不定の時間毎に早送り映像要求情報を送信するタイミングであると判断しても良いし、予め指定されたトリガー毎に早送り映像要求情報を送信するタイミングであると判断しても良い。また、早送り映像要求情報送信部109は、映像格納部103における映像情報の格納状況(例えば、格納量や、格納率)に応じて早送り映像要求情報を送信するタイミングであるか否かを判断しても良い。
(ステップS202)映像要求情報送信部109は、早送り映像要求情報を映像サーバ装置3に送信する。映像要求情報送信部109が送信する早送り映像要求情報は、フレーム画像の量を指定する情報を有していても良いし、有していなくても良い。早送り映像要求情報は、現在の出力タイミング(例えば現在の時刻)以降のフレーム画像を要求する情報であっても良い。
(ステップS203)映像受信部101は、早送り映像要求情報に応じて映像サーバ装置3が送信する通常の再生時よりも多い量の映像情報、例えば映像情報のフレーム画像を受信する。映像受信部101は、受信した映像情報を、映像格納部103に蓄積する。
(ステップS204)要求送信部106は、早送り字幕要求情報を送信するタイミングであるか否かを判断し、送信するタイミングである場合、ステップS205に進み、タイミングでない場合、ステップS207に進む。要求送信部106は、例えば、予め指定された一定または不定の時間毎に早送り字幕要求情報を送信するタイミングであると判断しても良いし、予め指定されたトリガー毎に早送り字幕要求情報を送信するタイミングであると判断しても良い。また、要求送信部106は、字幕格納部104における字幕情報の格納状況(例えば、格納量や、格納率)に応じて早送り字幕要求情報を送信するタイミングであるか否かを判断しても良い。
(ステップS205)要求送信部106は、早送り字幕要求情報を字幕サーバ装置4に送信する。要求送信部106が送信する早送り映像要求情報は、フレーム画像の量を指定する情報を有していても良いし、有していなくても良い。また、早送り字幕要求情報は、現在の出力タイミング(例えば現在の時刻)以降の字幕情報を要求する情報であっても良い。
(ステップS206)字幕受信部102は、早送り字幕要求情報に応じて字幕サーバ装置4が送信する通常の再生時よりも多い量の字幕情報と字幕タイミング情報との組である字幕組情報を受信する。そして、字幕受信部102は受信した字幕組情報を、字幕格納部104に蓄積する。
(ステップS207)出力部113は、通常の再生時の出力順において、予め指定された数の異なる字幕情報を隔てた一の字幕情報と字幕タイミング情報とを取得する。出力部113は、例えば、字幕格納部104に格納されている字幕情報のうちの、現在の出力タイミングよりも、通常の再生時における出力順における出力タイミングが後である字幕情報であって、通常の再生時の出力順において、予め指定された数の異なる字幕情報を隔てた一の字幕情報と字幕タイミング情報とを取得する。また、二回目以降は、前回取得した字幕情報から、予め指定された数の異なる字幕情報を隔てた一の字幕情報と字幕タイミング情報とを取得する。ここでの予め指定された数とは、例えば、出力順において連続している内容が同じ1または2以上の字幕情報を、一の字幕情報と考えた場合の数であってもよい。
なお、出力済字幕格納部108として、字幕格納部104の一部を用いる場合、出力部113は、例えば、取得した字幕情報と、取得しなかった予め指定された数の異なる字幕情報、即ち間引いた字幕情報に対して、出力済であることを示すフラグ等の情報を付与して、そのまま字幕格納部104に残しておくようにする。また、出力済字幕格納部108が、字幕格納部104の一部でない場合、出力部113は、例えば、取得した字幕情報と、取得しなかった予め指定された数の異なる字幕情報を、字幕格納部104から削除し、出力済字幕格納部108に蓄積する。
(ステップS208)出力部113は、通常の再生時の出力順において、予め指定された数のフレーム画像を隔てた一のフレーム情報を取得する。出力部113は、例えば、映像格納部103に格納されている映像情報のフレーム画像のうちの、現在の出力タイミング(例えば、現在の時刻)よりも、通常の再生時における出力タイミングが後であるフレーム情報であって、通常の再生時の出力順において、予め指定された数のフレーム画像を隔てた一のフレーム情報を取得する。また、二回目以降は、前回取得したフレーム画像から、予め指定された数のフレーム画像を隔てた一のフレーム画像を取得する。ここで間引く数は、ステップS207で間引く数と異なる数であってもよい。
なお、出力済映像格納部107として、映像格納部103の一部を用いる場合、出力部113は、例えば、取得した映像情報と、取得しなかった予め指定された数のフレーム画像、即ち間引いたフレーム画像に対して、出力済であることを示すフラグ等の情報を付与して、そのまま映像格納部103に残しておくようにする。この場合、このフラグ等が付与された出力済のフレーム画像が、出力済映像格納部107に格納されたフレーム画像である。また、出力済映像格納部107が、映像格納部103の一部でない場合、出力部113は、例えば、取得した映像情報のフレーム画像と、取得しなかった予め指定された数のフレーム画像、即ち間引いたフレーム画像とを、映像格納部103から削除し、出力済映像格納部107に蓄積する。
(ステップS209)出力部113は、ステップS208で取得したフレーム画像に対応する映像タイミング情報を取得する。
(ステップS210)出力部113は、ステップS207で取得した字幕タイミング情報と、ステップS209で取得した映像タイミング情報とを用いて、ステップS207で取得した字幕情報が、ステップS208で取得したフレーム画像に対応するか否かを判断する。例えば、上述したステップS112の処理と同様に、映像タイミング情報が示すタイミングが、字幕タイミング情報が示すタイミングと一致するか否かを判断し、一致する場合、対応すると判断し、一致しない場合、対応しないと判断する。対応する場合、ステップS211に進み、対応しない場合、ステップS216に進む。
(ステップS211)部分字幕取得部112は、出力部113がステップS207で取得した字幕情報から、字幕情報の一部である文字列を取得する。
(ステップS212)出力部113は、ステップS208で取得したフレーム画像と、ステップS211で部分字幕取得部112が取得した一部の文字列とを合成し、合成により得られたフレーム画像を、図示しない出力用のバッファ等の記憶媒体に蓄積された順番が判断可能となるように蓄積する。
(ステップS213)出力部113は、早送り再生時におけるフレーム画像の出力タイミングであるか否かを判断する。出力タイミングである場合、ステップS214に進み、出力タイミングでない場合、ステップS215に進む。出力タイミングは、例えば、予め指定された早送り再生時の再生速度、例えばフレームレート等により決定される。なお、ここでは、映像情報を間引いたフレーム画像、あるいはこのフレーム画像に字幕情報の一部を合成したフレーム画像を出力することとなるため、ここでの出力タイミングとしては、仮に、通常の再生時の出力タイミングと同じ出力タイミングを用いても、結果的に早送り再生されることとなる。
(ステップS214)出力部113は、出力用の記憶媒体(図示せず)に蓄積されたフレーム画像のうちの、蓄積された順番が一番古いものを出力する。なお、出力したフレーム画像は、この記憶媒体から削除する。そして、ステップS201に戻る。
(ステップS215)指示受付部106は、早送り再生を終了する指示を受け付けたか否かを判断する。受け付けた場合、上位の処理にリターンし、受け付けていない場合、ステップS201に戻る。なお、終了する指示を受け付けた場合、例えば、出力部113が、受け付けた際に出力されていたフレーム画像に対応する映像タイミング情報を取得し、この映像タイミング情報が対応するフレーム画像から、映像出力装置1がその後の通常の再生を行うようにすればよい。かかることは以下においても同様である。
(ステップS216)出力部113は、直前に出力用のバッファ等の記憶媒体に蓄積したフレーム画像が、字幕情報の一部を合成したものであるか否かを判断する。合成したものである場合、ステップS217に進み、合成したものでない場合、ステップS218に進む。
(ステップS217)出力部113は、直前に蓄積したフレーム画像に合成した字幕情報の一部と同じ字幕情報の一部を、ステップS208で取得したフレーム画像に合成する。そして、合成したフレーム画像を、出力用のバッファ等の記憶媒体に蓄積する。そして、ステップS219に進む。
(ステップS218)出力部113は、ステップS208で取得したフレーム画像を出力用のバッファ等の記憶媒体に蓄積する。そして、ステップS219に進む。
(ステップS219)出力部113は、早送り再生時におけるフレーム画像の出力タイミングであるか否かを判断する。この処理は、ステップS213の処理と同様の処理である。出力タイミングである場合、ステップS220に進み、出力タイミングでない場合、ステップS221に進む。
(ステップS220)出力部113は、出力用の記憶媒体(図示せず)に蓄積されたフレーム画像のうちの、蓄積された順番が一番古いものを出力する。なお、出力したフレーム画像は、この記憶媒体から削除する。そして、ステップS208に戻る。
(ステップS221)指示受付部106は、早送り再生を終了する指示を受け付けたか否かを判断する。受け付けた場合、上位の処理にリターンし、受け付けていない場合、ステップS208に戻る。
なお、図3のフローチャートにおいて、ステップS201からステップS206の処理等を、他の処理に対して並列処理するようにしても良い。
図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、映像出力装置1が巻戻し再生を行う場合の動作について図4のフローチャートを用いて説明する。この動作は、図2のステップS121の処理に相当する処理である。
(ステップS301)出力部113は、予め指定された数の異なる字幕情報を隔てた一の字幕情報と字幕タイミング情報とを取得する。出力部113は、例えば、現在の出力タイミングよりも、通常の再生時における出力順とは逆の出力順における出力タイミングが後である字幕情報であって、通常の再生時の出力順とは逆の出力順において、予め指定された数の異なる字幕情報を隔てた一の字幕情報と字幕タイミング情報とを、出力済字幕格納部108から取得する。また、二回目以降は、前回取得した字幕情報から、予め指定された数の異なる字幕情報を隔てた一の字幕情報と字幕タイミング情報とを取得する。ここでの予め指定された字幕情報の数とは、例えば、出力順において連続している内容が同じ1または2以上の字幕情報を、一の字幕情報と考えた場合の数であってもよい。
(ステップS302)出力部113は、通常の再生時の出力順とは逆の出力順において、予め指定された数のフレーム画像を隔てた一のフレーム情報を取得する。出力部113は、例えば、映像格納部103に格納されている映像情報のフレーム画像のうちの、現在の出力タイミング(例えば、現在の時刻)よりも、通常の再生時とは逆の出力順における出力タイミングが後であるフレーム情報であって、通常の再生時とは逆の出力順において、予め指定された数のフレーム画像を隔てた一のフレーム情報を取得する。また、二回目以降は、前回取得したフレーム画像から、予め指定された数のフレーム画像を隔てた一のフレーム画像を取得する。ここで間引く数は、ステップS301で間引く数と異なる数であってもよい。
(ステップS303)出力部113は、ステップS302で取得したフレーム画像に対応する映像タイミング情報を取得する。
(ステップS304)出力部113は、ステップS301で取得した字幕タイミング情報と、ステップS302で取得した映像タイミング情報とを用いて、ステップS301で取得した字幕情報が、ステップS302で取得したフレーム画像に対応するか否かを判断する。例えば、上述したステップS112の処理と同様に、映像タイミング情報が示すタイミングが、字幕タイミング情報が示すタイミングと一致するか否かを判断し、一致する場合、対応すると判断し、一致しない場合、対応しないと判断する。対応する場合、ステップS305に進み、対応しない場合、ステップS310に進む。
(ステップS305)部分字幕取得部112は、出力部113がステップS301で取得した字幕情報から、字幕情報の一部である文字列を取得する。
(ステップS306)出力部113は、ステップS302で取得したフレーム画像と、ステップS305で部分字幕取得部112が取得した一部の文字列とを合成し、合成により得られたフレーム画像を、図示しない出力用のバッファ等の記憶媒体に蓄積された順番が判断可能となるように蓄積する。
(ステップS307)出力部113は、巻戻し再生時におけるフレーム画像の出力タイミングであるか否かを判断する。出力タイミングである場合、ステップS308に進み、出力タイミングでない場合、ステップS309に進む。出力タイミングは、例えば、予め指定された巻戻し再生時の再生速度、例えばフレームレート等により決定される。なお、ここでは、映像情報を間引いたフレーム画像、あるいはこのフレーム画像に字幕情報の一部を合成したフレーム画像を出力することとなるため、ここでの出力タイミングとしては、仮に、通常の再生時の出力タイミングと同じ出力タイミングを用いても、結果的に巻戻し再生されることとなる。
(ステップS308)出力部113は、出力用の記憶媒体(図示せず)に蓄積されたフレーム画像のうちの、蓄積された順番が一番古いものを出力する。なお、出力したフレーム画像は、この記憶媒体から削除する。そして、ステップS301に戻る。
(ステップS309)指示受付部106は、巻戻し再生を終了する指示を受け付けたか否かを判断する。受け付けた場合、上位の処理にリターンし、受け付けていない場合、ステップS301に戻る。なお、終了する指示を受け付けた場合、例えば、出力部113が、受け付けた際に出力されていたフレーム画像に対応する映像タイミング情報を取得し、この映像タイミング情報が対応するフレーム画像から、映像出力装置1がその後の通常の再生を行うようにすればよい。かかることは以下においても同様である。
(ステップS310)出力部113は、直前に出力用のバッファ等の記憶媒体に蓄積したフレーム画像が、字幕情報の一部を合成したものであるか否かを判断する。合成したものである場合、ステップS311に進み、合成したものでない場合、ステップS312に進む。
(ステップS311)出力部113は、直前に蓄積したフレーム画像に合成した字幕情報の一部と同じ字幕情報の一部を、ステップS302で取得したフレーム画像に合成する。そして、合成したフレーム画像を、出力用のバッファ等の記憶媒体に蓄積する。そして、ステップS313に進む。
(ステップS312)出力部113は、ステップS311で取得したフレーム画像を出力用のバッファ等の記憶媒体に蓄積する。そして、ステップS313に進む。
(ステップS313)出力部113は、巻戻し再生時におけるフレーム画像の出力タイミングであるか否かを判断する。この処理は、ステップS307の処理と同様の処理である。出力タイミングである場合、ステップS314に進み、出力タイミングでない場合、ステップS315に進む。
(ステップS314)出力部113は、出力用の記憶媒体(図示せず)に蓄積されたフレーム画像のうちの、蓄積された順番が一番古いものを出力する。なお、出力したフレーム画像は、この記憶媒体から削除する。そして、ステップS302に戻る。
(ステップS315)指示受付部106は、巻戻し再生を終了する指示を受け付けたか否かを判断する。受け付けた場合、上位の処理にリターンし、受け付けていない場合、ステップS302に戻る。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、映像システム1000の字幕サーバ装置4の動作の一例について図5のフローチャートを用いて説明する。
(ステップS401)字幕サーバ受信部402は、字幕要求情報を受信したか否かを判断する。受信した場合、ステップS402に進み、受信していない場合、ステップS401に戻る。
(ステップS402)字幕サーバ側送信部403は、字幕要求情報により特定される字幕情報であって、出力順番が早い未送信の字幕情報と、各字幕情報と対応付けられた字幕タイミング情報とを字幕サーバ側格納部401から取得する。ここでは、字幕サーバ側送信部403は、例えば、通常の再生時に取得する量として予め指定された量の字幕情報と字幕タイミング情報との組を取得する。字幕サーバ側送信部403は、例えば、字幕要求情報が有する映像識別情報と対応付けられた字幕情報を、字幕要求情報により特定される字幕情報として取得する。
(ステップS403)字幕サーバ側送信部403は、ステップS402で取得した字幕情報と字幕タイミング情報との1以上の組である1以上の字幕組情報を、字幕要求情報の送信元となる映像出力装置1に送信する。そして、ステップS401に戻る。
(ステップS404)字幕サーバ受信部402は、早送り字幕要求情報を受信したか否かを判断する。受信した場合、ステップS404に進み、受信していない場合、ステップS401に戻る。
(ステップS405)字幕サーバ側送信部403は、字幕要求情報により特定される字幕情報であって、出力順番が早い未送信の字幕情報と、各字幕情報と対応付けられた字幕タイミング情報とを字幕サーバ側格納部401から取得する。ここでは、字幕サーバ側送信部403は、例えば、通常の再生時に取得する量として予め指定された量よりも、多い量の字幕情報と字幕タイミング情報との組を取得する。この量は、予め指定されていても良いし、字幕要求情報に指定されていても良い。あるいは、字幕要求情報が有する巻戻し速度に応じて設定される量であっても良い。字幕サーバ側送信部403は、例えば、字幕要求情報が有する映像識別情報と対応付けられた字幕情報を、字幕要求情報により特定される字幕情報として取得する。
(ステップS406)字幕サーバ側送信部403は、ステップS405で取得した字幕情報と字幕タイミング情報との1以上の組である1以上の字幕組情報を、字幕要求情報の送信元となる映像出力装置1に送信する。そして、ステップS401に戻る。
なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、制御サーバ装置2の動作の一例について簡単に説明する。制御サーバ側受信部202は、制御要求情報を受信したか否かの判断を繰り返し、制御要求情報を受信した場合、制御サーバ側送信部203は、この制御要求情報に対応する制御情報を、制御情報格納部201から読み出す。制御要求情報に対応する制御情報とは、例えば、制御要求情報が有する映像識別情報と対応付けられて制御情報格納部201に格納されている制御情報である。制御要求情報に含まれる映像識別情報は、例えば、映像出力装置1が出力する指示を受け付けた映像情報の映像識別情報である。そして、制御サーバ側送信部203は、読み出した制御情報を制御要求情報の送信元となる映像出力装置1に送信する。そして、上記の、制御要求情報を受け付けたか否かを判断する処理に戻る。
以下、映像サーバ装置3の動作の一例について簡単に説明する。映像サーバ側受信部302は、映像要求情報を受信したか否かの判断と、早送り映像要求情報を受信したか否かの判断を繰り返す。映像要求情報を受信した場合、映像サーバ側送信部303は、映像要求情報が指定する映像情報の、通常の再生時に取得する量として予め指定されている量のフレーム画像を映像サーバ側格納部301から読み出す。映像要求情報が指定する映像情報は、例えば、映像要求情報が有する映像識別情報と対応付けて映像サーバ側格納部301に格納されている映像情報や、映像要求情報が指定するディレクトリ等に格納されている映像情報である。このディレクトリ等の情報は、例えば、制御情報から映像要求情報送信部109等が取得する。そして、読み出した映像情報を、映像要求情報の送信元の映像出力装置1に送信する。そして、上記の、映像要求情報を受け付けたか否か等を判断する処理に戻る。
また、映像サーバ側受信部302が早送り映像要求情報を受信した場合、映像サーバ側送信部303は、映像要求情報が指定する映像情報の、通常の再生時に取得する量として予め指定されている量より多い量のフレーム画像を映像サーバ側格納部301から読み出す。この通常の再生時に取得する量よりも多い量は、例えば、図5のステップS405の処理と同様に設定される。そして、映像サーバ側送信部303は、取得したフレーム画像を映像出力装置1に送信する。そして、上記の、映像要求情報を受け付けたか否か等を判断する処理に戻る。
なお、映像サーバ側送信部303は、映像要求情報を受ける毎に、映像情報のうちの、未送信の一部を、出力順に沿って送信するようにしても良い。また、映像サーバ側送信部303は、早送り映像要求情報を受ける毎に、映像情報のうちの、未送信の一部であって、映像要求情報を受け付けた場合よりも多い量の映像情報(具体的にはフレーム画像)を、出力順に沿って送信するようにしても良い。
以下、本実施の形態における映像システム1000の具体的な動作について説明する。映像システム1000の概念図は図6である。ここでは、説明を簡単にするために、映像出力装置1、制御サーバ装置2、映像サーバ装置3、及び字幕サーバ装置4をそれぞれ一つずつ備えている場合を例に挙げて説明するが、本発明の映像システム1000においては、映像出力装置1、制御サーバ装置2、映像サーバ装置3、及び字幕サーバ装置4は、それぞれ1または2以上であればよい。
図7は、制御サーバ装置2の制御情報格納部201に格納されている制御情報を管理する制御情報管理表である。制御情報管理表は、「制御情報」と「映像ID」という属性を有している。「制御情報」は、制御情報のファイル名であるとする。「映像ID」は、制御情報が対応する映像情報の識別情報であるとする。
図8は、映像サーバ装置3の映像サーバ側格納部301に格納されている映像情報を管理する映像情報管理表の一例を示す図である。映像情報管理表は、「映像ID」と「映像情報」という属性を有している。「映像ID」は、図5の「映像ID」に対応している。「映像情報」は、「映像ID」により識別される複数のフレーム画像により構成される映像情報である。
図9は、図8に示した映像情報管理表で管理されている映像情報の一例を示す模式図であり、ここでは、映像ID「m1001」と対応付けられた映像情報を示している。映像情報は、複数のフレーム画像71−73等を有しており、各フレーム画像には、映像タイミング情報として、タイムコード71a−73a等が対応付けられている。タイムコード71a−73aは、ここでは、「時:分:秒.フレーム」を表しているものとする。映像情報の最初のフレーム画像の表示時刻が、ここでは、タイムコードの「0:00:00.01」に設定される。なお、ここでの映像情報は、説明のための模式図であり、フレーム画像とタイムコード等とが格納されている映像情報の実際のデータ構造等を示すものではない。
図10は、字幕サーバ装置4の字幕サーバ側格納部401に格納されている字幕群情報を管理する字幕群情報管理表である。字幕群情報とは、一の映像情報に対応する字幕情報の群を有する情報であり、ここでは、一の映像情報に対応付けられた(具体的には、一の映像IDと対応付けられた)1または2以上の字幕情報と、各字幕情報と対応付けられた字幕タイミング情報とを有する情報であるとする。ここでは、一例として、一の映像情報に対応付けられた字幕群情報は、一のファイルを構成しているものとする。字幕群情報管理表は、「映像ID」と、「字幕群情報」という属性を有している。「映像ID」は、図5および図7の「映像ID」に対応している。「字幕群情報」は、字幕群情報のファイル名を示している。ただし、ここでは拡張子等は省略している。
図11は、図10の字幕群情報管理表で管理されている字幕群情報の一例を示す図である。ここでは、ファイル名が「c1001」である字幕群情報を示している。ここでは、字幕群情報は、XHTML形式で記述された情報であるとする。図11に示した字幕群情報において、「p」タグで囲まれた要素が、一の字幕情報を示す。「p」タグ内の「begin」属性の属性値は、字幕情報に対応する字幕タイミング情報であり、字幕情報の開始時刻を示す情報である。また、「end」属性の属性値は、字幕情報に対応する字幕タイミング情報であり、字幕情報の終了時刻を示す情報である。この字幕群情報内においては、字幕情報は、出力時刻が早いものから順に、上から下に向かって配置されているものとする。
(通常の再生処理例)
以下、通常の再生を行う場合の処理例について説明する。まず、映像出力装置1を操作するユーザが、図示しないWEBサイトに接続して、映像情報のリスト(図示せず)を示すWEBページの情報を取得し、出力部113と接続された図示しないモニタにこのWEBページを表示させたとする(図示せず)。この映像情報のリストの各項目には、各項目の映像情報の識別情報である映像IDが対応付けられているものとする。そして、ユーザが視聴したい一の映像情報を選択する操作(例えば、映像情報のアイコンをクリックする操作)等を行ったとする。
制御要求情報送信部110は、上記で選択された映像情報の映像IDである「m1001」を、上記のWEBページから取得し、上記のWEBページにおいて指定されている制御サーバ装置2に、この映像IDを有する制御要求情報を送信する。
制御サーバ装置2の制御サーバ側受信部202は、映像出力装置1から送信される制御要求情報を受信する。
制御サーバ側送信部203は、制御サーバ側受信部202が受信した制御要求情報に含まれる映像ID「m1001」を取得し、図7に示した制御情報管理表から、「映像ID」が、「m1001」と一致するレコード(行)を検索し、検出したレコードの「制御情報」の属性値である「ctrl001」を取得する。そして、制御情報格納部201から、ファイル名が「ctrl001」である制御情報を読み出す。読み出した制御情報を、制御要求情報の送信元となる映像出力装置1に送信する。
映像出力装置1の制御情報受信部111は、制御サーバ装置2から制御情報「ctrl001」を受信する。
図12は、制御情報受信部111が受信した制御情報「ctrl001」の一例を示す図である。ここでは、制御情報「ctrl001」を示している。制御情報は、ここでは、XHTML形式で記述されているものとする。ここでは、「id」属性の属性値が「videoserver」である「p」タグの要素、(即ち<p id="videoserver">と</p>とで囲まれた情報)が、映像IDが「m1001」である映像情報の取得先となる映像サーバ装置3のアドレス情報(ここではURL)であるとする。また、「id」属性の属性値が「captionserver」である「p」タグの要素が、映像IDが「m1001」である映像情報に対応する字幕情報の取得先となる字幕サーバ装置4のアドレス情報(ここではURL)であるとする。
また、映像要求情報送信部109は、図12に示した受信した制御情報から、映像サーバ装置3のアドレス情報である「http://www.video001.com/」を取得する。そして、このアドレス情報が示す映像サーバ装置3に、映像ID「m1001」を含む映像要求情報を送信する。つまり、映像IDが「m1001」である映像情報の送信を要求する情報を送信する。
また、要求送信部106は、図12に示した制御情報から、字幕サーバ装置4のアドレス情報である「http://www.caption002.com/」を取得し、このアドレス情報が示す字幕サーバ装置4に、映像ID「m1001」を含む字幕要求情報を送信する。
映像サーバ装置3の映像サーバ側受信部302は、映像出力装置1から送信される映像ID「m1001」を含む映像要求情報を受信する。映像サーバ側送信部303は、図6に示した映像情報管理表を参照して、映像ID「m1001」に対応付けられた映像情報を映像サーバ側格納部301において検出し、この映像情報を構成する予め指定された量のフレーム画像と、フレーム画像に対応付けられた映像タイミング情報であるタイムコードとを、タイムコードの早い順に順次パケットに分割して、映像出力装置1に送信する。例えば、ここでは、予め指定された量が10フレームであるとすると、映像IDが「m1001」である映像情報の先頭から10フレームのフレーム画像と、映像タイミング情報とが映像出力装置1に送信される。この予め指定された量は、通常の再生時に映像サーバ側受信部302が送信するフレーム画像の量であるとする。
映像出力装置1の映像受信部101は、映像サーバ装置3からパケットに分割されて送信される10フレームのフレーム画像とタイムコードとを受信し、受信したパケットを用いてタイムコードと対応付けられた10フレームのフレーム画像を構成して、順次、映像格納部103に蓄積する。例えば、映像格納部103には、図9のフレーム画像71とタイムコード71aとの組や、フレーム画像72とタイムコード72aとの組等が、順次蓄積される。
また、字幕サーバ装置4の字幕サーバ側受信部402は、映像出力装置1から送信される映像ID「m1001」を含む字幕要求情報を受信する。映像サーバ側送信部303は、図10に示した字幕群管理情報を参照して、映像ID「m1001」に対応付けられた字幕群情報を字幕サーバ側格納部401において検出する。ここでは、ファイル名が、「c1001」である字幕群情報を検出する。ここでは、上述したように、字幕タイミング設定情報が、字幕タイミング情報と対応付けられた字幕情報を送信する設定となっているため、字幕サーバ側送信部403は、図11に示す字幕群情報「c1001」から、字幕情報と、この字幕情報に対応付けられた字幕タイミング情報との組を、予め指定された数だけ出力順に従って読み出す。ここでの予め指定された組は1組であるとする。例えば、字幕サーバ側送信部403は、図11に示すファイル名が「c1001」である字幕群情報から、まず、一番上の「p」タグで囲まれた要素である「日本の達人シリーズ」という文字列を、字幕情報として読み出す。また、一番上の「p」タグ内の「begin」属性の属性値「0:0:20.01」と、「end」属性の属性値「0:0:24.01」とを、字幕タイミング情報として取得する。そして、字幕サーバ側送信部403は、読み出した字幕情報と字幕タイミング情報とで構成される字幕組情報を映像出力装置1に送信する。
なお、字幕サーバ側送信部403は、ここでは一例として、字幕情報を読み出す毎に、読み出した字幕情報の個数を累積してカウントし、次回、字幕情報を送信する際には、カウント値に1を加えた順番の字幕情報を読み出すようにする。例えば、字幕サーバ側受信部402が、映像ID「m1001」に対応付けら字幕要求情報を更に受信した場合、字幕サーバ側送信部403は、直前のカウント値である「1」に「1」を加えた値である「2」を取得し、図11に示した字幕群情報の、上から二番目の字幕情報と、この字幕情報と対応付けられた字幕タイミング情報との組を取得して、映像出力装置1に送信する。
映像出力装置1の字幕受信部102は、字幕サーバ装置4から送信される一の字幕組情報を受信し、字幕格納部104に蓄積する。
図13は、字幕格納部104に格納されている字幕組情報を管理する字幕組管理表を示す図であり、図13(a)は、最初の字幕組情報が蓄積された状態を示し、図13(b)は、その後に他の字幕組情報が追記された状態を示す。字幕組管理表は、「字幕情報」、「開始時刻」、及び「終了時刻」という属性を有している。「字幕情報」は、字幕情報であり、ここではテキスト情報である。「開始時刻」は、字幕の出力されるタイミングを示す字幕タイミング情報であり、タイムコードで示されている。また、「開始時刻」は、字幕の出力を終了するタイミングを示す字幕タイミング情報であり、タイムコードで示されている。
出力部113は、映像格納部103に格納された映像情報のフレーム画像の、映像格納部103から未だ読み出されていないフレーム画像から、通常の再生方向における出力順番が、一番早いフレーム画像を取得する。ここでは、まだ、フレーム画像が一つも読み出されていないため、出力順番が一番目であるフレーム画像を取得する。具体的には、フレーム画像に対応づけられた映像タイミング情報であるタイムコードが示す時刻が最も早いフレーム画像を読み出す。ここでは、タイムコード「0:00:00.01」と対応づけられたフレーム画像を読み出す。また、出力部113は、読み出したフレーム画像に対応づけられたタイムコード「0:00:00.01」も読み出す。
また、出力部113は、読み出したフレーム画像とタイムコードとの組を、出力済映像格納部107に蓄積する。なお、読み出したフレーム画像とタイムコードとの組は、映像格納部103から削除してもよい。
図14は、出力済映像格納部107に蓄積された、映像格納部103から出力済(読み出し済)のフレーム画像を管理する出力済映像管理表であり、図14(a)は、一つ目のフレーム画像が蓄積された状態を示し、図14(b)は、他のフレーム画像が更に追記された状態を示す。出力済映像管理表において、「タイムコード」は、フレーム画像に対応づけられたタイムコードを示し、「フレーム画像」は、蓄積されたフレーム画像を示す。
出力部113は、図13(a)に示した字幕組管理情報に含まれる字幕組情報のレコード(ここでは行)において、上記で読み出したフレーム画像のタイムコード「0:00:00.01」に対応するレコード、即ち、フレーム画像のタイムコード「0:00:00.01」が、「開始時刻」の値と、「終了時刻」との間の値となるレコードを検出する。ここでは、対応するレコードが検出できなかったとする。
このため、出力部113は、上記で読み出したフレーム画像とタイムコードとの組を、図示しない出力用のバッファに、蓄積順番が判断可能となるように蓄積する。例えば、出力用のバッファとしてリングバッファ等を用いて、フレーム画像とタイムコードとの組を取得順に蓄積する。
図15は、図示しない出力用のバッファに蓄積されたフレーム画像を管理する出力用フレーム管理表である。図15(a)は、1つめのフレーム画像が蓄積された状態を示し、図15(b)は、他のフレーム画像が追記された状態を示す。出力フレーム管理表において、「タイムコード」は、フレーム画像に対応づけられたタイムコードを示し、「フレーム画像」は、蓄積されたフレーム画像を示す。この出力用フレーム管理表においては、例えば、上方に位置するレコードに含まれるフレーム画像ほど、通常の再生を行う際の出力順が早いフレーム画像であるとする。
次に、出力部113は、映像情報を出力するタイミングであるか否かを判断する。ここではまだ、フレーム画像が出力されていないため、出力部113は、図示しない出力用のバッファに予め指定された格納量以上の映像情報が格納されているか否かを判断する。予め指定された格納量が60フレームであったとすると、出力部113は、60フレーム以上のフレーム画像が、出力用のバッファ(図示せず)、に格納されているか、即ち、出力用フレーム管理表に60フレーム以上のレコードが格納されているか否かを判断する。ここでは、映像格納部103に、60フレーム以上のフレーム画像が格納されていないため、出力部113は、映像情報を出力するタイミングでないと判断する。このため、映像情報を出力する処理を行わない。
更に、映像要求情報送信部109は、映像要求情報を送信するタイミングであるか否かを判断し、タイミングである場合、映像要求情報を送信する処理を繰り返し行う。そして、映像受信部101が、映像サーバ装置3から送信される映像情報を受信して蓄積する。
また、要求送信部106は、字幕要求情報を送信するタイミングであるか否かを判断し、タイミングであると判断した場合、字幕要求情報を送信する処理を繰り返し行う。そして、字幕受信部102は、字幕要求情報に応じて字幕サーバ装置4から送信される字幕組情報を受信して蓄積する処理を行う。
また、出力部113は、映像格納部103から未だ読み出されていないフレーム画像から、通常の再生方向における出力順番が、一番早いフレーム画像とタイムコードとを取得する処理を繰り返し行う。ここでは、上述したように、映像格納部103からフレーム画像が読み出された場合、読み出されたフレーム画像は、映像格納部103から削除されるため、出力部113は出力順番が一番目であるフレーム画像を取得する。
また、取得したフレーム画像とタイムコードとの組は、出力済映像格納部107に蓄積する。なお、取得したフレーム画像とタイムコードとの組は、映像格納部103から削除してもよい。
また、出力部113は、図13に示した字幕組管理情報に含まれる字幕組情報のレコード(ここでは行)において、上記で読み出したフレーム画像のタイムコードに対応するレコードを検出する。そして、対応するレコードが検出できなかった場合、出力部113は、上記で読み出したフレーム画像とタイムコードとの組を、図示しない出力用のバッファに、蓄積順番が判断可能となるように蓄積する。
ここで、例えば、字幕組管理情報が、図13(b)に示す状態であり、出力部113が、映像格納部103から、タイムコード「0:00:01.01」と、このタイムコードと対応づけられたフレーム画像を取得したとする。このフレーム画像とタイムコードは出力済映像格納部107に蓄積される。蓄積後の出力済映像管理表が、図14(b)に相当する。出力部113は、図13(b)に示す字幕組管理情報に含まれる字幕組情報のレコードにおいて、タイムコード「0:00:01.01」に対応するレコードを検出する。具体的には、フレーム画像のタイムコード「0:00:01.01」が、「開始時刻」の値と、「終了時刻」との間の値となるレコードを検出する。ここでは、図13(b)の上から1行目のレコードの「開始時刻」の値と、「終了時刻」との間に、フレーム画像のタイムコード「0:00:01.01」が含まれるため、この1行目のレコードの「字幕情報」の値である字幕情報「日本の達人シリーズ」を出力部113が取得する。
また、出力部113は、取得された字幕情報を含む字幕組情報を、蓄積順が判別できるように出力済字幕格納部108に蓄積する。
図16は、出力済字幕格納部108に蓄積された出力済の字幕組情報を管理する出力済字幕管理表である。図16(a)は、一つ目の出力済の字幕組情報が蓄積された状態を示す。なお、図16(b)は、その後に他の出力済の字幕組情報が追記された状態を示す。出力済字幕管理表は、「字幕情報」と、「開始時刻と、「終了時刻」という属性を有している。これらの属性は、図13の各属性に相当する。なお、出力済字幕管理表においては、上方に位置するレコードの字幕組情報ほど、出力された順番が早いものとする。
なお、出力部113は、重複する字幕組情報を出力済字幕格納部108に蓄積しないようにする。また、字幕組管理情報で管理されている字幕組情報については、一旦、字幕情報が出力された後であって、字幕情報が出力されなくなった時点で、削除するようにしても良い。
出力部113は、字幕情報「日本の達人シリーズ」が取得できたため、この字幕情報を、上記で取得したタイムコード「0:00:01.01」と対応づけられたフレーム画像に合成する。例えば、フレーム画像の予め指定された座標を中心とした位置に、乗算モード等により字幕情報である文字列を重ねて合成する。
そして、字幕情報を合成して得られたフレーム画像を、図示しない出力用のバッファに蓄積する。合成したフレーム画像を蓄積した時点の出力用フレーム管理表は、図15(b)に示すものとなる。
そして、上記のような処理を繰り返した結果、映像格納部103に格納されているフレーム画像の格納量が60フレーム以上となった時点で、出力部113は、最初のフレーム画像を出力するタイミングであると判断し、図示しない出力用のバッファから、蓄積された順番が最も早いフレーム画像を読み出して出力する。ここでは、例えば、図15等において示した出力用フレーム管理表の一番上のレコードのフレーム画像を出力する。例えば、図示しないもモニタ等に、フレーム画像を表示する。そして、表示後、一番上のレコードを削除する。
同様にして、出力部113は、予め指定されている通常の再生時のフレームレートが示すフレーム画像を出力するタイミング毎に、出力用のバッファに格納されているフレーム画像を、蓄積された順に出力していく。例えば、通常の再生時のフレームレートが、30fpsである場合、30分の1秒毎に、フレーム画像を読み出して出力する。
図17は、出力部113がモニタ113aに表示した映像情報を示す図である。ここでは、出力開始から1秒経過後のフレーム画像、即ち、タイムコードが「0:00:01.01」であるフレーム画像と、このフレーム画像に対応する字幕情報「日本の達人シリーズ」とを合成したフレーム画像が、表示された状態を示している。
(早送り再生の処理例)
以下、早送り再生を行う場合の処理例について説明する。例えば、タイムコードが「0:20:00.10」であるフレーム画像を出力部113がモニタに表示している場合において、指示受付部105が、ユーザから早送り再生の指示を受け付けたとする。例えば、図17に示すような映像情報の出力画面において、早送り再生のボタン171をマウス等でクリックすることにより、指示受付部105は、早送り再生の指示を受け付ける。なお、早送り再生の指示をどのように受け付けるかは問わない。
この早送り再生の指示に応じて、映像要求情報送信部109は、上述した映像要求情報の代わりに、早送り映像要求情報を映像サーバ装置3に送信する。また、要求送信部106は、上述した字幕要求情報の代わりに、早送り字幕要求情報を字幕サーバ装置4に送信する。
映像サーバ装置3の映像サーバ側受信部302が早送り映像要求情報を受信した場合、映像サーバ側送信部303は、映像要求情報を受信した場合よりも多い予め指定された量の未送信のフレーム画像を映像サーバ側格納部301から読み出して、映像出力装置1に送信する。予め指定された量は、例えば、20フレームであるとする。
映像受信部101は、上記と同様に、このフレーム画像を受信して、映像格納部103に蓄積する。
また、字幕サーバ装置4の字幕サーバ側受信部402が早送り字幕要求情報を受信した場合、字幕サーバ側送信部403は、字幕要求情報を受信した場合よりも多い予め指定された量の未送信の字幕組情報を字幕サーバ側格納部401から読み出して、映像出力装置1に送信する。予め指定された量は、例えば、2組であるとする。
字幕受信部102は、上記と同様に、この字幕組情報を受信して、字幕格納部104に蓄積する。
出力部113は、早送り再生の指示を受け付けたため、字幕格納部104に格納されている字幕情報のうちの、まだ出力されていない字幕情報であって、通常の再生時の出力順において予め指定された数の字幕情報を隔てた一の字幕情報を取得する。通常の再生時の出力順とは、例えば、字幕情報の出力の開始時刻や終了時刻を示すタイムコードの値が増加する順である。
ここでは、現在出力されているフレーム画像のタイムコードが「0:20:00.10」であるため、出力部113は、対応する字幕タイミング情報の「開始時刻」の値が、このタイムコードが示す時刻以降の値である字幕情報を、「開始時刻」の値が小さいものから順に、予め指定された数を間引いて字幕組管理情報から順次取得する。予め指定された数は、「1」であるとする。なお、ここでは、最も「開始時刻」の値が小さい字幕情報を間引くようにしたが、この字幕情報を一つ目の字幕情報として取得するようにし、次の字幕情報として、一つ字幕情報を隔てた字幕情報を取得するようにしてもよい。
例えば、この時点での字幕組管理情報が、図16(b)に示すようなものであったとすると、出力部113は、「開始時刻」の値が、タイムコード「0:20:00.10」よりも大きいレコードの中から、「開始時刻」の値がこのタイムコードに二番目に近いレコード、つまり、一番目に近いレコードを間引いたレコードを検出する。ここでは、例えば、「開始時刻」が「0:20:00.15」である一のレコードを間引いた「開始時刻」が「0:20:05.10」であるレコードを検出する。そして、このレコードの「字幕情報」の値である「通常の乗馬と変わらないように見えます。」と、「開始時刻」の値と、「終了時刻」の値とを取得する。
また、出力部113は、現在出力されているタイムコード「0:20:00.10」から通常の再生時における出力順において9フレーム隔てたフレーム画像と、そのタイムコードである「0:20:00.20」とを、映像格納部103から取得する。
出力部113は、このタイムコードが、上記で取得した字幕情報の字幕タイミング情報が示す期間に含まれるか否かを判断する。ここでは含まれないため、この映像情報を、そのまま、図示しない出力用のバッファに、蓄積順が判断できるように蓄積する。なお、このバッファは、通常の再生時用のバッファであっても、通常の再生時用のバッファとは異なるバッファであってもよい。かかることは以下においても同様である。
出力部113は、さらに上記で取得したフレーム画像から、9フレーム隔てたフレーム画像とそのタイムコードとを順次取得して、同様の処理を繰り返す。
ここで、出力部113が、タイムコードが「0:20:05.10」のフレーム画像を取得したとする。この場合、出力部113は、このタイムコードが、上記で取得した「開始時刻」が「0:20:05.10」であるレコードの字幕情報の字幕タイミング情報が示す開始時刻「0:20:05.10」から終了時刻「0:20:13.30」までの間の時刻を示すものであると判断する。
このため、部分字幕取得部112は、上記で出力部113が取得した字幕情報から、その一部を取得する処理を行う。ここでは、部分字幕取得部112は、字幕情報「通常の乗馬と変わらないように見えます。」に対して形態素解析を行い、名詞句だけを字幕情報の一部として取り出す。なお、部分字幕取得部112が形態素解析結果から名詞句を取り出す際には、ユニーク処理を行って重複した名詞句については一つのみを取得するようにする。かかることは以下においても同様である。ここでは、例えば、名詞句として、「通常」と「乗馬」という文字列が取得できたとする。
出力部113は、この部分字幕取得部112が取得した字幕情報の一部を、タイムコードが「0:20:05.10」であるフレーム画像に合成したフレーム画像を、図示しない出力用のバッファ等に蓄積順が判断できるように蓄積する。
出力部113は、字幕情報に対応するフレーム画像が出現したため、上記で取得した字幕情報の「開始時刻」の値「0:20:05.10」よりも「開始時刻」の値が大きいレコードの中から、「開始時刻」の値がこの値「0:20:05.10」に二番目に近いレコード、つまり、一番目に近い「開始時刻」の値が「0:20:30.05」であるレコードを間引いたレコードを検出する。ここでは、例えば、「開始時刻」が「0:20:39.01」であるレコードを検出する。そして、このレコードの「字幕情報」の値である「何よりも馬のコンディションは、馬に乗って初めて分かります。」と、「開始時刻」の値と、「終了時刻」の値とを取得する。
また、出力部113は、上記で取得したタイムコードが「0:20:05.10」であるフレーム画像から、9フレーム隔てたフレーム画像とそのタイムコード「0:20:05.20」を取得する。そして、出力部113は、このタイムコードが、上記で取得した字幕情報の字幕タイミング情報が示す期間に含まれるか否かを判断する。ここでは含まれないと判断される。しかしながら、直前に図示しないバッファに蓄積したフレーム画像においては、字幕情報の一部の合成が行われているため、このフレーム画像に対しても、上記で合成した字幕情報の一部と同じ文字列である「通常」と「乗馬」とを合成する。そして、合成したフレーム画像を、図示しない出力用のバッファに蓄積する。
さらに、出力部113は、上記で取得したフレーム画像から、9フレーム隔てたフレーム画像とそのタイムコードとを順次取得して、同様の処理を繰り返す。つまり、二番目に取得した字幕情報の字幕タイミング情報に対応するフレーム画像が表れるまでは、最初に取得した字幕情報の一部を合成したフレーム画像を蓄積する。これにより、例えば、本来であれば、最初に取得した字幕情報に対応していないフレーム画像に、この字幕情報の一部が合成されることとなる。
そして、取得したフレーム画像に対応するタイムコードが、上記で二番目に取得した字幕情報に対応する字幕タイミング情報が示す期間内のタイムコード、例えば、「0:20:39.10」であった場合、この字幕情報「何よりも馬のコンディションは、馬に乗って初めて分かります。」の一部である「馬」及び「コンディション」を、部分字幕取得部112が取得し、この文字列を合成した字幕情報を図示しない出力用のバッファに蓄積する。以下、同様の処理を繰り返す。
図18は、図示しない出力用のバッファに蓄積された早送り再生時のフレーム画像を管理する早送り用フレーム管理表である。早送り用フレーム管理表は、例えば、図15に示した出力用フレーム管理表と同様の属性を有している。なお、早送り用フレーム管理表においては、フレーム画像が蓄積順に上から下に向かって配置されているものとする。
出力部113は、図示しない出力用のバッファ等にフレーム画像を格納する毎に、この出力用のバッファ等に蓄積したフレーム画像を出力するタイミングであるか否かを判断し、出力するタイミングである場合、フレーム画像を蓄積順に出力する。ここでのタイミングは、早送り再生時のフレーム画像を出力するタイミングであるが、ここでは、9フレームが間引かれたフレーム画像、すなわち10フレーム毎のフレーム画像が、図示しない出力用のバッファに格納されていることとなるため、例えば、通常の再生時のフレームレートでフレーム画像を読み出すタイミングと同じタイミング、例えば30分の1秒毎に1フレームを読み出して出力することで、結果的に、10倍速の速度で早送り再生することとなる。
このように、早送り再生時に字幕情報を間引いて出力するとともに、各字幕情報を本来対応していないフレーム画像で対しても合成して、次の字幕情報が出力されるまで出力できるようにすることで、各字幕情報が出力される期間を長くして、早送り再生時も字幕を読み取りやすくすることができる。
また、早送り再生時には各字幕情報を一部だけ出力することで、早送り再生時に出力される字幕の量を減らして、字幕を読み取りやすくすることができる。
(巻戻し再生の処理例)
以下、巻戻し再生を行う場合の処理例について説明する。例えば、タイムコードが「0:20:00.10」であるフレーム画像を出力部113がモニタに表示している場合において、指示受付部105が、ユーザから巻戻し再生の指示を受け付けたとする。例えば、図17に示すような映像情報の出力画面において、巻戻し再生のボタン172をマウス等でクリックすることにより、指示受付部105は、巻戻し再生の指示を受け付ける。なお、巻戻し再生の指示をどのように受け付けるかは問わない。
出力部113は、巻戻し再生の指示を受け付けたため、出力済字幕格納部108に格納されている字幕情報のうちの、字幕タイミング情報が示す開始時刻のタイムコードが「0:20:00.10」よりも前の字幕情報のうちの、字幕タイミング情報が示す終了時刻のタイムコードの値が最も大きい字幕情報を起点として、通常の再生時とは逆の出力順において予め指定された数の字幕情報を間引いて一の字幕情報を取得する。通常の再生時とは逆の出力順とは、例えば、字幕情報の出力の開始時刻や終了時刻を示すタイムコードの値が減少する順である。
ここでは、出力部113は、出力済字幕管理表から、字幕組情報を、「終了時刻」の値が最も大きいものから順に、予め指定された数を間引いて順次取得する。予め指定された数は、「1」であるとする。なお、ここでは、起点となる「終了時刻」の値が最も大きい字幕組情報を間引く対象としてカウントするようにしているが、起点となる字幕組情報を一つ目の字幕組情報として取得するようにし、次の字幕情報としてはその一つ前の字幕情報を隔てた字幕情報を取得するようにしてもよい。
例えば、タイムコードが「0:20:00.10」であるフレーム画像を出力している時点での出力済字幕管理表が、上述したような図16(b)に示すようなものであったとすると、出力部113は、出力済字幕管理表から、「開始時刻」の値が「0:20:00.10」よりも前の値であるレコードであって、「終了時刻」の値が、二番目に大きいレコード、つまり、一番目に大きいレコードである「終了時刻」が「0:20:00.01」であるレコードを間引いたレコードを検出する。ここでは、例えば、「終了時刻」が「0:19:54.10」であるレコードを検出する。そして、このレコードの「字幕情報」の値である「馬の育て方はユニークです。」と、「開始時刻」の値と、「終了時刻」の値とを取得する。
また、出力部113は、出力済映像格納部107から、通常の再生時とは逆の出力順において、タイムコードが「0:20:00.10」よりも前であるフレーム画像のうちの、タイムコードの値が最も大きいフレーム画像(即ち、タイムコードが「0:20:00.09」を起点として、9フレーム間引いたフレーム画像、すなわち9フレーム隔てたフレーム画像と、そのフレーム画像に対応付けられたタイムコードである「0:19:59.30」を取得する。ここでは、起点となるフレーム画像を間引くフレーム画像としてカウントするが、起点となるフレーム画像を最初の出力対象となるフレーム画像として取得し、次のフレーム画像は、この起点となるフレーム画像の一つ前のフレーム画像を含めて9フレーム隔てたフレーム画像を取得するようにしても良い。
出力部113は、フレーム画像について取得したタイムコードが、上記で取得した字幕情報の字幕タイミング情報が示す期間に含まれるか否かを判断する。ここでは含まれないため、この映像情報を、そのまま、図示しない出力用のバッファに、蓄積順が判断できるように蓄積する。なお、このバッファは、通常の再生時用のバッファであっても、通常の再生時用のバッファとは異なるバッファであってもよい。かかることは以下においても同様である。
出力部113は、さらに上記で取得したフレーム画像から、通常の再生時とは逆の出力順において、9フレーム隔てたフレーム画像とそのタイムコードとを順次取得して、同様の処理を繰り返す。
ここで、出力部113が、タイムコードが「0:19:54.10」のフレーム画像を取得したとする。この場合、出力部113は、このタイムコードが、上記で取得した字幕情報の字幕タイミング情報が示す開始時刻「0:19:45.20」から終了時刻「0:19:54.10」までの間の時刻を示すものであると判断する。
このため、部分字幕取得部112は、上記で出力部113が取得した字幕情報から、その一部を取得する処理を行う。ここでは、部分字幕取得部112は、字幕情報「馬の育て方はユニークです。」に対して形態素解析を行い、名詞句だけを字幕情報の一部として取り出す。例えば、名詞句として、「馬」と「育て方」と「ユニーク」いう文字列が取得できたとする。なお、部分字幕取得部112が形態素解析結果から名詞句を取り出す際には、ユニーク処理を行って重複した名詞句については一つのみを取得するようにする。かかることは以下においても同様である。
出力部113は、この部分字幕取得部112が取得した字幕情報の一部を、タイムコードが「0:19:54.10」であるフレーム画像に合成したフレーム画像を、図示しない出力用のバッファ等に蓄積順が判断できるように蓄積する。
出力部113は、字幕情報に対応するフレーム画像が出現したため、上記で取得した字幕情報の「終了時刻」の値「0:19:54.10」よりも「終了時刻」の値が小さいレコードの中から、「終了時刻」の値が二番目に大きいレコード、つまり、一番目に大きいレコードを間引いたレコードを検出する。ここでは、例えば、「終了時刻」の値が「0:19:40.30」であるレコードを間引いて、「終了時刻」が「0:19:22.15」であるレコードを検出する。そして、このレコードの「字幕情報」の値である「馬を育てる上で大切なこと」と、「開始時刻」の値と、「終了時刻」の値とを取得する。
また、出力部113は、上記で取得したタイムコードが「0:19:54.10」であるフレーム画像から、9フレーム隔てたフレーム画像とそのタイムコード「0:19:53.30」を取得する。そして、出力部113は、このタイムコードが、上記で取得した字幕情報の字幕タイミング情報が示す期間に含まれるか否かを判断する。ここでは含まれないと判断される。しかしながら、直前に図示しないバッファに蓄積したフレーム画像においては、字幕情報の一部の合成が行われているため、このフレーム画像に対しても、上記で合成した字幕情報の一部と同じ文字列である「馬」と「育て方」と「ユニーク」とを合成する。そして、合成したフレーム画像を、図示しない出力用のバッファに蓄積する。
さらに、出力部113は、上記で取得したフレーム画像から、9フレーム隔てたフレーム画像とそのタイムコードとを順次取得して、二番目に取得した字幕情報に対応するフレーム画像が表れるまで同様の処理を繰り返す。つまり、最初に取得した字幕情報の一部を合成したフレーム画像を蓄積する。これにより、例えば、本来であれば、最初に取得した字幕情報に対応していないフレーム画像に、この字幕情報の一部が合成されることとなる。
出力部113が取得したフレーム画像に対応するタイムコードが、上記で二番目に取得した字幕情報に対応する字幕タイミング情報が示す期間内のタイムコードであった場合(例えば、フレーム画像に対応するタイムコードが「0:19:22.10」であり、字幕タイミング情報の開始時刻「0:19:04.20」と終了時刻「0:19:22.15」との間の時刻であった場合)、上記の字幕情報「馬を育てる上で大切なこと」の一部である「馬」と「上」と「こと」を、部分字幕取得部112が取得し、出力部113は、この文字列を合成した映像情報を図示しない出力用のバッファに蓄積する。以下、上記と同様の処理を繰り返す。
図19は、図示しない出力用のバッファに蓄積された巻戻し再生時のフレーム画像を管理する巻戻し用フレーム管理表である。巻戻し用フレーム管理表においては、フレーム画像が、蓄積順に上から順に格納されているものとする。
出力部113は、図示しない出力用のバッファ等にフレーム画像を格納する毎に、この出力用のバッファ等に蓄積したフレーム画像を出力するタイミングであるか否かを判断し、出力するタイミングである場合、フレーム画像を蓄積順に出力する。ここでのタイミングは、巻戻し再生時のタイミングであるが、ここでは、9フレームが間引かれたフレーム画像、すなわち10フレーム毎のフレーム画像が、図示しない出力用のバッファに格納されていることとなるため、例えば、通常の再生時のフレームレートでフレーム画像を読み出すタイミングと同じタイミング、例えば30分の1秒毎に1フレームを読み出して出力することで、結果的に、10倍速の速度で巻戻し再生することとなる。
このように、巻戻し再生時に字幕情報を間引いて出力するとともに、各字幕情報を本来対応していないフレーム画像で対しても合成して、次の字幕情報が出力されるまで出力できるようにすることで、各字幕情報が出力される期間を長くして、巻戻し再生時も字幕を読み取りやすくすることができる。
また、巻戻し再生時には各字幕情報を一部だけ出力することで、巻戻し再生時に出力される字幕の量を減らして、字幕を読み取りやすくすることができる。
また、巻戻し再生の際には、出力済映像格納部107に格納されているフレーム画像から、出力するフレーム画像を取得するため、映像情報がストリーミング形式等のダウンロードしながら再生され、再生後に削除される形式の映像情報である場合においても、再度巻戻し用にフレーム画像を取得する必要がないため、スムーズに巻戻し再生が可能となる。
以上、本実施の形態によれば、早送り再生時に、字幕情報を合成した映像情報を出力することができる。
また、本実施の形態によれば、巻戻し再生時に、字幕情報を合成した映像情報を出力することができる。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(要求送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、格納部(例えば、ハードディスクやメモリ等の記録媒体)にアクセスしながらプログラムを実行してもよい。
なお、上記各実施の形態における映像出力装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、映像情報が格納される映像格納部と、字幕を示す文字列の情報である1以上の字幕情報と、映像情報の出力に対する各字幕情報が出力されるタイミングを示す情報である字幕タイミング情報とが格納される字幕格納部と、にアクセス可能なコンピュータを、通常の再生とは異なる再生の指示である早送り再生の指示を受け付ける指示受付部と、字幕格納部に格納された1以上の字幕情報を、各字幕情報と対応付けられた字幕タイミング情報を用いて、映像格納部に格納された映像情報と合成して出力する出力部として機能させ、出力部は、指示受付部が早送り再生の指示を受け付けた場合に、映像情報と字幕情報とを合成した映像情報を早送りで出力するプログラムである。
また、映像情報が格納される映像格納部と、字幕を示す文字列の情報である1以上の字幕情報と、映像情報の出力に対する各字幕情報が出力されるタイミングを示す情報である字幕タイミング情報とが格納される字幕格納部と、にアクセス可能なコンピュータを、通常の再生とは異なる再生の指示である巻戻し再生の指示を受け付ける指示受付部と、字幕格納部に格納された1以上の字幕情報を、各字幕情報と対応付けられた字幕タイミング情報を用いて映像格納部に格納された映像情報と合成して出力する出力部として機能させ、出力部は、指示受付部が巻戻し再生の指示を受け付けた場合に、映像情報と字幕情報とを合成した映像情報を巻戻しながら出力するプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図20は、上記プログラムを実行して、上記実施の形態による映像出力装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図20において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図21は、コンピュータシステム900の内部構成を示す図である。図21において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による映像出力装置等の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による映像出力装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。