説明

再生装置および再生方法

【課題】ファイルシステムによるストレージからのデータの読み出し動作を、用途に応じて切り替えられるようにする。
【解決手段】データの取得要求が入力された場合に、予め用意しておいた第1のアルゴリズム1033と第2のアルゴリズム1034とを切り替えて記憶部101からのデータの読み出しを行う。第1のアルゴリズム1033は、第1のプログラムによるデータの読み出しに適した手法でファイルの読み出しを行うためのものであり、第2のアルゴリズム1034は、第2のプログラムによるデータの読み出しに適した手法でファイルの読み出しを行うためのものである。第1のアルゴリズム1033と第2のアルゴリズム1034の切り替えは、データの取得要求中で指示されたファイルの格納位置情報に基づいて行う。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、音声データおよび映像データを再生する再生装置およびその再生方法に関し、特に、ストレージからのデータを効率的に読み出す技術に関する。
【背景技術】
【0002】
従来、ストレージに蓄積された例えば映像データや音声データ等のデータは、ファイルシステムによって「ファイル」という単位で管理される。ファイルシステムは、殆どのオペレーティングシステム(以下、「OS」と称する)に標準で装備されているため、ファイルシステムとしては、そのようなOSに標準的に装備されたものが使用されることが多い。
【0003】
ところで、近年、ストレージに蓄積されるデータの種類や、そのデータの読み出しを指示するアプリケーションの種類が増えてきている。このため、OSに標準で装備されたファイルシステムをそのまま使用すると、読み出し指示がされてから実際にデータが読み出されるまでのレスポンスが、求められるレスポンスよりも遅くなってしまったりするようなことも発生していた。
【0004】
このような問題を解決する手法として、例えば特許文献1には、コンピュータ装置のOSの持つファイルシステムとは独立に、映像信号の記録再生を効率良く行えるファイルシステムを用いて、記録再生を制御することが記載されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平9−319523号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
また、上述のような、用途に特化した専用のファイルシステムを複数設けた場合に、それらを切り替えて使用できるようにすることが求められていた。もしくは、ファイルシステムによるストレージからのデータの読み出し動作を、用途に応じて切り替えられるようにすることが求められていた。
【0007】
本開示はかかる点に鑑みてなされたものであり、ファイルシステムによるストレージからのデータの読み出し動作を、用途に応じて切り替えられるようにすることを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本開示の再生装置は、記憶部と、プログラム制御部と、読み出し制御部とを備える構成とし、各部の構成及び機能を次のようにする。記憶部にはデータが蓄積される。プログラム制御部には、記憶部に蓄積されたデータの取得要求を請求する第1のプログラムと第2のプログラムが格納される。制御部は、記憶部に蓄積されたデータをファイル単位で管理する。そして、プログラム制御部からデータの取得要求が入力された場合に、予め用意しておいた第1のアルゴリズムと第2のアルゴリズムとを切り替えて記憶部からのデータの読み出しを行う。第1のアルゴリズムは、第1のプログラムによるデータの読み出しに適した手法でファイルの読み出しを行うためのものであり、第2のアルゴリズムは、第2のプログラムによるデータの読み出しに適した手法でファイルの読み出しを行うためのものである。第1のアルゴリズムと第2のアルゴリズムの切り替えは、データの取得要求中で指示されたファイルの格納位置情報に基づいて行う。
【0009】
また、上記課題を解決するために、本開示の再生方法は、次の手順で行う。まずデータを蓄積する。また、蓄積されたデータの取得要求を生成する第1のプログラムと、蓄積されたデータの取得要求を生成する、第1のプログラムとは種類の異なる第2のプログラムとを制御する。さらに、蓄積されたデータをファイル単位で管理する。そして、データの取得要求が入力された場合に、予め用意しておいた第1のアルゴリズムと第2のアルゴリズムとを切り替えて記憶部からのデータの読み出しを行う。第1のアルゴリズムは、第1のプログラムによるデータの読み出しに適した手法でファイルの読み出しを行うためのものであり、第2のアルゴリズムは、第2のプログラムによるデータの読み出しに適した手法でファイルの読み出しを行うためのものである。第1のアルゴリズムと第2のアルゴリズムの切り替えは、データの取得要求中で指示されたファイルの格納位置情報に基づいて行う。
【0010】
このように構成および処理することで、データ取得要求中で指定されたファイルの格納位置情報を判断材料として、第1のプログラム用の第1のアルゴリズムと、第2のプログラム用の第2のプログラムとを切り替えることができる。
【発明の効果】
【0011】
本開示の再生装置および再生方法によれば、ファイルシステムによるストレージからのデータの読み出し動作を、用途に応じて切り替えられるようになる。
【図面の簡単な説明】
【0012】
【図1】本開示の一実施形態による再生装置の内部構成例を示すブロック図である。
【図2】本開示の一実施形態による読み出し制御部の構成例を示すブロック図である。
【図3】本開示の一実施形態によるキャッシュの領域の管理方法の例を示す説明図である。
【図4】本開示の一実施形態による、openシステムコール実行時の読み出し制御部の制御の例を示すフローチャートである。
【図5】本開示の一実施形態による、FTPリーダーが選択された場合の、読み出し制御部によるキャッシュからの読み出し処理の例を示すフローチャートである。
【図6】本開示の一実施形態による、FTPリーダーが選択された場合の、読み出し制御部によるストレージからの読み出し処理の例を示すフローチャートである。
【図7】本開示の一実施形態による、ftpdによるデータ取得要求に応じて行われるデータ読み出し処理の例を示す説明図である。
【図8】本開示の一実施形態による、CIFSリーダーが選択された場合の、読み出し制御部によるキャッシュからの読み出し処理の例を示すフローチャートである。
【図9】本開示の一実施形態による、CIFSリーダーが選択された場合の、読み出し制御部によるキャッシュからの読み出し処理の例を示すフローチャートである。
【図10】本開示の一実施形態による、Sambaによるデータ取得要求に応じて行われるデータ読み出し処理の例を示す説明図である。
【発明を実施するための形態】
【0013】
以下に、本開示の実施形態に係る再生装置及びその再生方法の例を、図面を参照しながら下記の順で説明する。ただし、本開示は下記の例に限定されない。
1.再生装置の構成例
2.読み出し制御部の構成例
3.読み出し制御部の処理の例
【0014】
<1.再生装置の構成例>
図1は、本開示の一実施形態に係る再生装置の構成例を示すブロック図である。図1に示す再生装置100は、記憶部としてのストレージ101を備え、ストレージ101には、デジタル化されたAVデータが蓄積される。ストレージ101は、SSD(Solid State Drive)やHDD(Hard Disc Drive)、光ディスクドライブ等で構成される。
【0015】
また、再生装置100は、ネットワークを介して、外部装置としての外部PC(Personal Computer)200と接続されている。そして、ストレージ101を、外部PCのネットワークドライブとしても使えるように構成している。ストレージ101を、外部PCのネットワークドライブとしても使えるようにする構成は、例えば“Samba”等のアプリケーションによって実現される。Sambaを使って再生装置100の任意のディレクトリにファイル共有の設定をしておくことで、外部PC200が、そのディレクトリにアクセスしてファイルの読み書きを行えるようになる。
【0016】
外部PC200には、例えばノンリニア編集用のアプリケーションが搭載されており、そのアプリケーションによる編集作業に基づいて、再生装置100に対するデータの取得要求が送信される。また、外部PC200からは、FTP(File Transfer Protocol)によるファイル転送要求も行われるものとする。
【0017】
また、再生装置100は、ストレージ制御部102と、読み出し制御部103と、ビデオデータ用キャッシュ104と、PC IF(Interface)用キャッシュ105を備える。ストレージ制御部102は、デバイスドライバの機能を果たすものであり、実際のストレージ101を操作してストレージ101からのデータの読み出しを行う。読み出し制御部103は、ファイルシステムの機能を果たすものであり、データの取得が要求に応じてファイルの読み出しを指示する読み出し要求を生成し、生成した読み出し要求をストレージ制御部102に送信する。また、読み出し制御部103は、ストレージ制御部102によってストレージ101から読み出されたデータを、一旦FTP用/CIFS用キャッシュ103cに書き込む。FTP用/CIFS用キャッシュ103cに保持されたデータは、後述するデータ要求処理部108からのデータ取得要求に応じて読み出され、ビデオデータ用キャッシュ104または、PC IF用キャッシュ105に出力される。
【0018】
ビデオデータ用キャッシュ104には、外部PC200からのデータ取得要求に応じてストレージ101から読み出されたデータが書き込まれる。PC IF用キャッシュ105には、後述する操作パネル106を介して入力されたデータ取得要求に応じてストレージ101から読み出されたデータが書き込まれる。
【0019】
なお、外部PC200からは、データの取得要求やデータの転送要求だけでなく、データの書き込み要求も行われる。書き込みが要求されたデータは、図示せぬ書き込み制御部の制御に基づいてストレージ101に書き込まれる。このとき、Sambaの機能を使って書き込まれたデータは、“CIFS(Common Internet File System)”というディレクトリの配下にファイルとして保存される。“CIFS”とは、Sambaで採用されている、ファイル共有サービスを提供するプロトコルである。FTPによって書き込まれたデータは、“FTP”というディレクトリの配下に保存される。
【0020】
本開示の一実施形態による再生装置100では、読み出し制御部103(ファイルシステム)によるストレージ101からのデータ読み出しの動作を、データ取得要求の送信元のアプリケーションに応じて切り替えることを行う。つまり、Sambaが提供する機能を用いてデータ取得要求が入力された場合と、FTPによってデータの転送要求がされた場合とで、ファイルシステムのデータ読み出し動作を切り替えている。読み出し制御部103の構成および動作の詳細については、図2以降を参照して説明する。
【0021】
図1に示す再生装置100の構成の説明を続けると、再生装置100は、操作パネル106と、ビデオデータ再生用制御部107と、データ要求処理部108と、ビデオデータ再生処理部109とを備える。操作パネル106は、ユーザからの操作が入力されるボタン等の入力部と、メニュー等を表示する表示パネル等の表示部により構成される。ユーザからの操作入力を受け付けると、その内容を操作コマンドとしてビデオデータ再生用制御部107に送信する。ビデオデータ再生用制御部107は、操作パネル106から送られてきた操作コマンドを解釈して具体的な動作に置き換える。そして、置き換えた動作の内容に基づく、例えばデータの取得要求等の要求を生成してデータ要求処理部108に送信する。
【0022】
データ要求処理部108は、ビデオデータ再生用制御部107から入力された要求と、後述するPC IF用制御部111から入力される要求とを調停して、読み出し制御部103に伝える。読み出し制御部103に送信される要求は、OSによって標準で提供されているシステムコールを用いて行われる。具体的には、openシステムコールや、readシステムコール、preadシステムコールを用いて行われる。ビデオデータ再生処理部109は、ビデオデータ用キャッシュ104に保持されたビデオデータまたは、読み出し制御部103の制御に基づいてストレージ101から直接読み出されたビデオデータをD/A変換し、得られたビデオ信号を出力する。
【0023】
さらに、再生装置100は、ネットワーク制御部110と、PC IF用制御部111とを備える。ネットワーク制御部110は、外部PC200との間の通信を制御する。また、ネットワーク制御部110は、PC IF用キャッシュ105に書き込まれたデータまたは、読み出し制御部103の制御に基づいてストレージ101から直接読み出されたデータを、外部PC200に送信する。
【0024】
PC IF用制御部111には、FTPによるデータの転送を実現する“ftpd”というプログラム(第1のプログラム)と、ファイル共有サービスを提供するSambaというプログラム(第2のプログラム)とが格納される。そして、PC IF用制御部111は、ネットワークを介して外部PC200から送られてきたコマンドを解釈して、具体的な動作に置き換える。そして、置き換えた動作の内容に基づく、例えばデータの取得要求やデータの転送要求等の要求を生成して、データ要求処理部108に送信する。また、PC IF用制御部111は、読み出し制御部103の制御に基づいて実際にストレージ101から読み出されて、PC IF用キャッシュ105に書き込まれたデータを読み出して、ネットワーク制御部110に出力する。
【0025】
<2.読み出し制御部の構成例>
次に、図2を参照して、読み出し制御部103の構成例について説明する。読み出し制御部103には、仮想ファイルシステム1031(以下、VFS1031と称する)と、ファイルシステム制御部1032と、FTPリーダー1033と、CIFSリーダー1034とが含まれる。
【0026】
VFS1031は、ftpdプログラムやSambaプログラムからのデータ取得/転送要求に基づいて、データ要求処理部108(図1参照)によってシステムコールが生成された場合に、その内容をファイルシステム制御部1032に伝える。また、VFS1031は、openシステムコールで呼び出されたファイルの情報を、取得したファイルディスクリプタの値と対応づけて管理する。以下、ファイルディスクリプタの値とファイル情報とを対応づけたものを「管理テーブル」と称する。管理テーブルで管理されるファイル情報の項目には、ファイル実体の格納位置情報や、ファイル名、ファイルのサイズ、ファイルの作成日時等の時間情報、ファイルに最後にアクセスがあった際のオフセットアドレス等がある。
【0027】
「ファイル実体の格納位置情報」は、ルートディレクトリからの絶対パス名で管理される。例えば、Sambaによって提供されるファイル共有サービスを利用してストレージ101に記憶されたファイルの格納位置情報は、“/CIFS/clip1.MXF”のように示される。FTPによるファイル転送によってストレージに書き込まれたファイルの格納位置情報は、“/FTP/clip2.MXF”のように示される。
【0028】
「ファイルに最後にアクセスがあった際のオフセットアドレス」は、データ要求処理部108からのデータの読み出し要求に基づいて実際に読み出しが行われた際の、ファイルの論理的な位置を示す。
【0029】
また、ファイル情報として、FTP用/CIFS用キャッシュ103c(図1参照)上のファイルの書き込み位置(ライトポイント)と、読み出し位置(リードポイント)も管理される。「ライトポイント」とは、FTP用/CIFS用キャッシュ103cにファイルが書き込まれた際のバッファ上の書き込み位置を示すものである。このライトポイントに値が記入されているということは、FTP用/CIFS用キャッシュ103cに何かしらのファイルが書き込まれていることを意味する。「リードポイント」とは、FTP用/CIFS用キャッシュ103cからファイルが読み出された際のバッファ上の読み出し位置を示す。
【0030】
この「ライトポイント」と「リードポイント」を、キャッシュへの書き込みもしくはキャッシュからの読み出し動作が行われる都度更新することで、FTP用/CIFS用キャッシュ103cにおける空き領域の管理を行えるようになる。図3は、FTP用/CIFS用キャッシュ103cのアドレス空間を示す図である。図3に示す例では、矩形で示したアドレス空間を、ライトポイントおよびリードポイントが、リング状の矢印で示した垂直方向に移動するイメージを示している。矩形で示したアドレス空間は、下端に行くにつれてアドレスが大きくなるものである。そして、実際に書き込みが行われたライトポイントを追いかけるように、実際に読み出しが行われたリードポイントも追従して移動する。
【0031】
ライトポイントより下のアドレス空間As1は、まだファイルの書き込みが行われていない空間、すなわち、空き領域として管理される。ライトポイントとリードポイントに挟まれた斜線で示したアドレス空間As2は、ファイルが書き込まれているがまだ読み出されていない領域として管理される。リードポイントより上の網掛けで示したアドレス空間As3は、実際にはデータが格納されていても、データが読み出されたものとして、空き領域として管理される。
【0032】
図2に戻って説明を続ける。ファイル情報として管理される項目として、上述した各項目の他に、ストレージ101からの実際のデータの読み出し動作を定めるアルゴリズムの情報がある。アルゴリズムとしては、FTPによってデータの転送要求がされた場合用のアルゴリズム(第1のアルゴリズム)と、Sambaが提供する機能を用いてデータ取得要求が入力された場合用のアルゴリズム(第2のアルゴリズム)とが用意される。図2では、第1のアルゴリズムに基づいて実際のストレージ101からのデータの読み出しを行う機能を「FTPリーダー1033」と示している。また、第2のアルゴリズムに基づいてストレージ101からのデータの読み出しを行う機能を「CIFSリーダー1034」としている。
【0033】
ファイルシステム制御部1032は、ファイルシステムドライバとしての機能を果たすものである。つまり、データ要求処理部108(図1参照)から入力されたシステムコールに応じて、ファイルのストレージ101上での物理的なアドレスを指定した読み出し要求を生成し、ストレージ制御部102に供給する。具体的には、システムコール内で指定されたファイルの経路名(パス名)を判断材料として、FTP用の第1のアルゴリズムとSamba用の第2アルゴリズムのいずれか一方を選択し、選択したアルゴリズムに基づく読み出し要求を生成する。例えば、システムコール内で指定されたパス名が“/CIFS/”で始まるものであった場合には、第1のアルゴリズムに基づく読み出しを行うFTPリーダー1033を選択する。システムコール内で指定されたパス名が“/FTP/”で始まるものであった場合には、第1のアルゴリズムに基づく読み出しを行うFTPリーダー1033を選択する。
【0034】
FTPリーダー1033によってストレージ101から読み出されたファイルはFTP用キャッシュ103c1に書き込まれ、CIFSリーダー1034によってストレージ101から読み出されたファイルは、CIFS用キャッシュ103c2に書き込まれる。
【0035】
<3.読み出し制御部の処理の例>
[3−1.openシステムコール実行時の処理]
次に、読み出し制御部103による処理の例について、図4〜図10を参照して説明する。図4は、データ要求処理部108(図1参照)からopenシステムコールを受け付けた場合の読み出し制御部103の処理の例を示すフローチャートである。openシステムコールは、“fd=open(ファイルのパス名)”のように記述される。このopenシステムコールが実行されることにより、指定されたファイル名を持つファイルのファイルディスクリプタfdが取得される。
【0036】
読み出し制御部103は、まず、openシステムコールを実行すると(ステップS1)、ファイルディスクリプタの割り当てを行う(ステップS2)。続いて、ファイルディスクリプタの割り当てを行えたか否かを判断し(ステップS3)、割り当てが行えなかった場合には、ファイルディスクリプタの値にエラー値を設定してリターンする(ステップS4)。
【0037】
ステップS3で、ファイルディスクリプタの割り当てを行えたと判断した場合には、次に、openシステムコール中で指定されたパス名の判定を行う(ステップS5)。パス名に“CIFS”が含まれていた場合にはCIFSリーダー1034(図2参照)を起動し(ステップS6)、パス名に“FTP”が含まれていた場合には、FTPリーダー1033を起動する(ステップS7)。そして、取得したファイルディスクリプタの値を変数fdに設定してリターンする(ステップS8)。
【0038】
また、図4のフローチャートには示していないが、読み出し制御部103は、ファイルディスクリプタを取得できた場合は、openシステムコール内のパス名で示されたファイルの情報をストレージ101から取得することも行う。そして、取得したファイル情報を、ステップS8で戻ってきたファイルディスクリプタと対応づけて、図示せぬ管理テーブルに書き込む。
【0039】
[3−2.FTPによるデータ転送要求に基づくデータの読み出し処理]
図5は、データ要求処理部108(図1参照)から、openシステムコールに続いてreadシステムコールがデータ入力された場合の、読み出し制御部103による処理の例を示すフローチャートである。図5に示す処理は、openシステムコールで指定されたパス名に“FTP”が含まれていた場合の処理である。まず、読み出し制御部103は、readシステムコールを実行すると(ステップS11)、openシステムコールで取得したファイルディスクリプタと対応づけて管理されているファイル情報を取得する(ステップS12)。そして、得たファイル情報に基づいて、FTP用キャッシュ103c1(図2参照)にデータが格納されているか否かを判断する(ステップS13)。具体的には、ファイル情報中の「リードポイント」と「ライトポイント」(図3参照)に基づいて判断する。
【0040】
FTP用キャッシュ103c1にデータがないと判断した場合には、ステップS13の判断を繰り返す。すなわち、FTPによって外部PC200からデータが転送され、転送されたファイルがFTP用キャッシュ103c1に書き込まれるまでの間、待機する。FTP用キャッシュ103c1にデータがあると判断した場合には、FTP用キャッシュ103c1からデータを読み出して(ステップS14)、ファイル情報中の「リードポイント」の値を更新する(ステップS15)。そして、読み出したデータを返り値としてリターンする(ステップS16)。
【0041】
続いて、図6を参照して、FTPリーダー1033(図2参照)によるファイルの読み出し処理の例について説明する。FTPリーダー1033は、まず、openシステムコールで取得したファイルディスクリプタと対応づけて管理されているファイル情報を取得する(ステップS21)。そして、取得したファイル情報に基づいて、FTP用キャッシュ103c1に空きがあるか否かを判断する(ステップS22)。FTP用キャッシュ103c1に空きがないと判断した場合には、ステップS22の判断を繰り返し行う。
【0042】
FTP用キャッシュ103c1に空きがあると判断した場合には、ストレージ101からFTP用キャッシュ103c1にデータを読み出し(ステップS23)、読み出した位置に基づいてファイル情報中のライトポイントを更新する(ステップS24)。続いて、FTP用キャッシュ103に書き込みを行っている位置(ライトポイント)が、ファイルの終わりの位置に到達したか否かを判断する(ステップS25)。ファイルの終わりの位置に到達したと判断した場合には、ファイル情報の「ライトポイント」を“End Of file”(以下、“EOF”と称する)に更新して処理を終了する。ファイルの終わりの位置に到達していないと判断した場合には、ステップS22に戻って判断を続ける。
【0043】
つまり、FTPリーダー1033は、readシステムコールの発行の有無に係わらず、openシステムコールの実行に続いてすぐにストレージ101からのファイルの読み出しを行い、FTP用キャッシュ103c1に書き込む。すなわち、FTPによるデータの転送依頼に基づくストレージ101からのデータの読み出しは、シーケンシャルアクセスによって行われる。
【0044】
図7は、外部PC200よりFTPによるファイル転送の依頼があった場合の、データの読み出し処理の例を示したものである。図7の横軸は時間を示し、各処理ブロックにおいて示した長方形の四角は、各ブロックでの処理時間を示す。処理時間とは、例えば、上位のブロックから伝送されたデータの読み出し要求を、下位のブロックに対する読み出し要求に変換する時間や、下位のブロックから出力されたデータを上位のブロックに返す際に必要な処理の時間等を指す。矢印は、読み出し要求が下位ブロックに伝送される方向と、ストレージ101から読み出されたデータが上位ブロックに伝送される方向とを示している。
【0045】
FTPによるファイル転送依頼に基づくストレージ101からのデータの読み出しは、上述したように、シーケンシャルアクセスによって行われる。したがって、先読みが有効となる。このため、図7に示すように、ストレージ101から読み出されるデータDt1〜データDt3のサイズを、比較的大きなサイズとしている。ストレージ101からは大きくデータを読み出し、PC IF用制御部111からの読み出し要求が行われた際には、FTP用キャッシュ103c1から読み出すようにすることにより、読み出しのレスポンスが向上するためである。また、このように処理することにより、ストレージ101に対するアクセス回数も削減されるため、ストレージ101へのアクセスが行われていない時間は、マルチタスクとして実行される他のタスクがストレージ101にアクセスできるようになる。つまり、ストレージ101の利用効率が向上する。
【0046】
また、読み出し制御部103内のファイルシステム制御部1032は、上位のPC IF用制御部111から読み出し要求がされていないときにも、ストレージ101からのデータの読み出しを指示する読み出し要求を生成する。そして、生成した読み出し要求をFTP用キャッシュ103c1に送信する。この処理は、図7では、ファイルシステム制御部1032からFTP用キャッシュ103c1に下向きに伸びる矢印のうち、左から2番目の矢印および3番目の矢印として示されている。つまり、先読み分としてストレージ101からFTP用キャッシュ103c1にデータを読み出すことを指示している。このような、FTPによるファイル転送に適したデータの読み出しは、FTPリーダー1033(図2)により実行される。
【0047】
なお、図7に示した例では、ストレージ101から読み出すデータのサイズをなるべく大きなサイズとすることが望ましいとしたが、初回の読み出しからいきなり大きなサイズとするのではなく、徐々にサイズを大きくしていくような手法をとってもよい。読み出し要求で読み出しが指示されたオフセットアドレスが、前回アクセスされたオフセットアドレスと連続していない場合には、そのような手法での読み出しを行う方がよい。オフセットアドレスが連続していない場合には、先読み用にCIFS用キャッシュ103c2に蓄積されているデータは、使用することができない。したがって、ストレージ101からデータを読み出す時間が、そのまま読み出しレスポンスの遅延時間となってしまう。ストレージ101からデータを読み出す時間はデータの大きさに比例するため、レスポンスを速くするためには、読み出しサイズを小さくする方がよい。
【0048】
徐々に大きくしていく各読み出しサイズには、PC IF用キャッシュ105(図1参照)が枯渇するまでの間にストレージ101から読み出せる最大のサイズを適用するとよい。読み出しサイズの算出方法としては、以下のような手法が考えられる。まず、データの読み出しサイズの算出にあたり、読み出し制御部103の読み出し速度を“x”、読み出し制御部103が読み出すファイルのサイズを“S”、ネットワーク制御部110がサイズSのデータを読み出す時間を“T”とする。また、読み出し制御部103がストレージ101からn回目にデータを読み出す場合のフレーム数を“j”、n−1回目に読み出したデータのフレーム数を“i”とする。
【0049】
このとき、n回目に読み出すフレーム数jを、以下の2つの式を満足させる値に設定する。
T(j)<S(i)/x …式1
j>i …式2
すなわち、式1によれば、n回目に読み出すフレーム数jは、読み出し制御部103がjフレームを読み出す時間T(j)が、iフレーム分のデータS(i)をネットワーク制御部110が読み出す時間xで除算した値よりも、小さくなる値に設定される。これにより、PC IF用キャッシュ105に保持されたすべてのデータを読み出し制御部103が読み出すまでの間に、読み出し制御部103がストレージ101から読み出せるデータサイズが算出される。さらに、式2によれば、式1により求められたフレーム数jとして、既に読み出されたフレーム数iよりも大きなものが絞り込まれる。このようにして読み出しサイズを決定し、決定されたサイズでの読み出しを行うことで、ストレージ101から読み出すデータのサイズが、小さなサイズから徐々に大きなサイズになっていく。
【0050】
[3−3.Sambaの機能を利用して行われたデータ転送要求に基づくデータの読み出し処理]
図8は、データ要求処理部108(図1参照)から、openシステムコールに続いてreadシステムコールがデータ入力された場合の、読み出し制御部103による処理の例を示すフローチャートである。図8に示す処理は、openシステムコールで指定されたパス名に“CIFS”が含まれていた場合の処理である。
【0051】
まず、読み出し制御部103は、readシステムコールまたはpreadシステムコールを実行すると(ステップS31)、openシステムコールで取得したファイルディスクリプタと対応づけて管理されているファイル情報を取得する(ステップS32)。そして、システムコール内でオフセットが指定されているか否かを判断する(ステップS33)。つまり、実行されたシステムコールが、readシステムコールだったのかpreadシステムコールであったかの判断が行われる。preadシステムコールとは、ファイルディスクリプタfdで管理されるファイルの先頭からのオフセットから、指定したバイト数分のデータをバッファに読み込むことを指示するシステムコールである。
【0052】
オフセットが指定されていた場合、すなわち、preadシステムコールが実行された場合は、ファイルの先頭から指定されたオフセット分だけ移動した位置(以降、この位置を「指定オフセットアドレス」と称する)に移動する(ステップS34)。オフセットが指定されていなかった場合、すなわち、readシステムコールが実行された場合は、「オフセットアドレス」をファイル情報から取得する(ステップS35)。
【0053】
続いて、CIFS用キャッシュ103c2にデータがあるか否かを判断し(ステップS36)、データが蓄積されていない場合には、ストレージ101からのデータの読み出しをCIFSリーダー1034に要求する(ステップS37)。CIFS用キャッシュ103c2にデータがある場合には、CIFS用キャッシュ103c2からデータを読み出し(ステップS38)、読み出したデータを返り値としてリターンする(ステップS39)。
【0054】
図9は、CIFSリーダー1034(図2参照)によるファイルの読み出し処理の例を示すフローチャートである。CIFSリーダー1034は、まず、openシステムコールで取得したファイルディスクリプタと対応づけて管理されているファイル情報を取得する(ステップS41)。続いて、ファイルシステム制御部1032(図2参照)からデータの読み出し要求を受けたか否かを判断する(ステップS42)。すなわち、readシステムコールもしくはpreadシステムコールが実行されたか否かを判断する。
【0055】
データの読み出し要求を受けたと判断した場合には、CIFS用キャッシュ103c2上にあるデータを削除して(ステップS43)、ストレージ101からCIFS用キャッシュ103c2にデータを読み出す(ステップS44)。そして、ファイル情報内の「ライトポイント」を更新する(ステップS45)。データの読み出し要求を受けていないと判断した場合には、ファイル情報が“EOF”となっているか否かを判断する(ステップS46)。すなわち、CIFS用キャッシュ103c2上の「ライトポイント」が“EOF”に達したか否かを判断する。
【0056】
ファイル情報が“EOF”になっている場合には、ステップS42に戻って判断を続ける。ファイル情報が“EOF”になっていない場合には、CIFS用キャッシュ103c2に空きがあるか否かを判断する(ステップS47)。CIFS用キャッシュ103c2に空きがないと判断した場合には、ステップS42に戻って判断を続ける。CIFS用キャッシュ103c2に空きがあると判断した場合には、ストレージ101からCIFS用キャッシュ103c2にデータを読み出して(ステップS48)、ファイル情報中の「ライトポイント」を更新する(ステップS49)。ステップS47以降の処理は、先読みによるCIFS用キャッシュ103c2へのデータの蓄積処理を説明したものである。
【0057】
つまり、CIFSリーダー1034は、データの読み出し要求を受けつけたタイミングで、ストレージ101からデータを読み出してCIFS用キャッシュ103c2に書き込む。この読み出し要求は、Sambaにより提供されるファイル共有サービスを介して行われるものであるため、読み出しが指定されるファイルは都度異なるものであると考えられる。したがって、ストレージ101からのデータの読み出しは、ランダムアクセスによって行われる。
【0058】
図10は、外部PC200より、Sambaが提供するファイル共有サービスを介してファイル読み出しの依頼があった場合の、データの読み出し処理の例を示したものである。図10の横軸は時間を示し、各処理ブロックにおいて示した長方形の四角は、各ブロックでの処理時間を示す。
【0059】
Sambaが提供するファイル共有サービスを介してファイル読み出しの依頼があった場合の、データの読み出しは、上述したように、ランダムアクセスアクセスによって行われる。したがって、要求に対してデータが素早く読み出されること(レスポンスの早さ)が重要とされる。このため、図10に示すように、ストレージ101から読み出されるデータDt1〜データDt3のサイズは、小さなサイズとしている。
【0060】
また、ファイルシステム制御部1032からCIFS用キャッシュ103c2に向けて下向きに伸びる矢印のうち、左から2番目の矢印として示されるように、先読みによるCIFS用キャッシュ103c2へのデータの読み出し指示も行っている。しかし、次回アクセスが指示されるオフセットアドレスが、今回CIFS用キャッシュ103c2に読み出したアドレスと連続していない可能性も高いため、先読みとして読み出すデータのサイズも小さなものとしている。このような、Sambaにより提供されるファイル共有サービスを介して行われるデータ読み出し要求に適したデータの読み出しは、CIFSリーダー1034(図2)により実行される。
【0061】
上述した実施の形態によれば、システムコール内で指定されたファイルのパス名を判断材料として、FTP用の第1のアルゴリズムとSamba用の第2アルゴリズムのいずれか一方が選択され、選択されたアルゴリズムに従ってデータの読み出しが行われる。つまり、特定の用途向けに作られた、ファイルシステムによる読み出し動作を定める2つのアルゴリズムを、切り替えて使用できるようになる。
【0062】
そして、このアルゴリズムの切り替えは、OSによって標準で提供されるシステムコール内のパス名を判断材料として行われる。したがって、どのような読み出し動作が期待されているかをファイルシステムに対して伝えるための手段を新たに設けることなく、プログラム(アプリケーション)が求める要求を満たす方法で、読み出しを行えるようになる。
【0063】
なお、上述した実施の形態では、Sambaとftpdという2つのプログラムを例に挙げて説明したが、これらに限定されるものではない。他の様々なアプリケーションに対しても、それに応じたアルゴリズムを作成しておくことで、そのアプリケーションに最適な方法で読み出しを行うことができる。プログラムの数も、2つに限定されるものではない。
【0064】
また、上述した実施の形態では、本開示の再生装置を、再生のみを行う再生装置に適用した例をあげたが、記録も行える記録再生装置に適用してもよい。
【0065】
なお、本開示は以下のような構成も取ることができる。
(1)データが蓄積される記憶部と、
前記記憶部に蓄積された前記データの取得要求を生成する第1のプログラムと、前記記憶部に蓄積された前記データの取得要求を生成する、前記第1のプログラムとは種類の異なる第2のプログラムとを制御するプログラム制御部と、
前記記憶部に蓄積された前記データをファイル単位で管理し、前記プログラム制御部から前記データの取得要求が入力された場合に、前記第1のプログラムによる前記データの読み出しに適した手法で前記ファイルの読み出しを行う第1のアルゴリズムと、前記第2のプログラムによる前記データの読み出しに適した手法で前記ファイルの読み出しを行う第2のアルゴリズムのいずれか一方を、前記データの取得要求中で指示された前記ファイルの格納位置情報に基づいて選択し、前記選択した前記第1のアルゴリズムもしくは前記第2のアルゴリズムに基づいて、前記記憶部から前記データの読み出しを行う読み出し制御部とを備えた再生装置。
(2)前記データの取得要求は、オペレーティングシステムにより標準で提供されるシステムコールによって行われる(1)に記載の再生装置。
(3)前記ファイルの格納位置情報とは、前記ファイルの格納位置までの経路が記されたパス名である(1)または(2)に記載の再生装置。
(4)前記第1のプログラムは、前記記憶部に蓄積された前記データを所定のアドレスから連続的に読み出すことを指示するものであり、前記第2のプログラムは、前記記憶部に蓄積された前記データを指定された特定のアドレスから読み出すことを指示するものである(1)〜(3)のいずれかに記載の再生装置。
(5)前記読み出し制御部は、前記第1のアルゴリズムを選択した場合には、前記第1のアルゴリズムに基づいて前記記憶部から読み出す前記データの量を大きく設定し、前記第2のアルゴリズムを選択した場合は、前記第2のアルゴリズムに基づいて前記記憶部から読み出す前記データの量を小さく設定する(1)〜(4)のいずれかに記載の再生装置。
(6)データを蓄積することと、
前記蓄積されたデータの取得要求を生成する第1のプログラムと、前記蓄積されたデータの取得要求を生成する、前記第1のプログラムとは種類の異なる第2のプログラムとを制御することと、
前記蓄積されたデータをファイル単位で管理することと、
前記データの取得要求が入力された場合に、前記第1のプログラムによる前記データの読み出しに適した手法で前記ファイルの読み出しを行う第1のアルゴリズムと、前記第2のプログラムによる前記データの読み出しに適した手法で前記ファイルの読み出しを行う第2のアルゴリズムのいずれか一方を、前記データの取得要求中で指示された前記ファイルの格納位置情報に基づいて選択し、前記選択した前記第1のアルゴリズムもしくは前記第2のアルゴリズムに基づいて、前記蓄積されたデータの読み出しを行うこととを含む再生方法。
【符号の説明】
【0066】
100…再生装置、101…ストレージ、102…ストレージ制御部、103…読み出し制御部、103c…FTP用/CIFS用キャッシュ、103c1…FTP用キャッシュ、103c2…CIFS用キャッシュ、104…ビデオデータ用キャッシュ、105…PC、IF用キャッシュ、106…操作パネル、107…ビデオデータ再生用制御部、108…データ要求処理部、109…ビデオデータ再生処理部、110…ネットワーク制御部、111…IF用制御部、200…外部PC、1031…仮想ファイルシステム(VFS)、1032…ファイルシステム制御部、1033…FTPリーダー、1034…CIFSリーダー、As1〜As3…アドレス空間、200…外部PC


【特許請求の範囲】
【請求項1】
データが蓄積される記憶部と、
前記記憶部に蓄積された前記データの取得要求を生成する第1のプログラムと、前記記憶部に蓄積された前記データの取得要求を生成する、前記第1のプログラムとは種類の異なる第2のプログラムとを制御するプログラム制御部と、
前記記憶部に蓄積された前記データをファイル単位で管理し、前記プログラム制御部から前記データの取得要求が入力された場合に、前記第1のプログラムによる前記データの読み出しに適した手法で前記ファイルの読み出しを行う第1のアルゴリズムと、前記第2のプログラムによる前記データの読み出しに適した手法で前記ファイルの読み出しを行う第2のアルゴリズムのいずれか一方を、前記データの取得要求中で指示された前記ファイルの格納位置情報に基づいて選択し、前記選択した前記第1のアルゴリズムもしくは前記第2のアルゴリズムに基づいて、前記記憶部から前記データの読み出しを行う読み出し制御部とを備えた
再生装置。
【請求項2】
前記データの取得要求は、オペレーティングシステムにより標準で提供されるシステムコールによって行われる
請求項1に記載の再生装置。
【請求項3】
前記ファイルの格納位置情報とは、前記ファイルの格納位置までの経路が記されたパス名である
請求項2に記載の再生装置。
【請求項4】
前記第1のプログラムは、前記記憶部に蓄積された前記データを所定のアドレスから連続的に読み出すことを指示するものであり、前記第2のプログラムは、前記記憶部に蓄積された前記データを指定された特定のアドレスから読み出すことを指示するものである
請求項3に記載の再生装置。
【請求項5】
前記読み出し制御部は、前記第1のアルゴリズムを選択した場合には、前記第1のアルゴリズムに基づいて前記記憶部から読み出す前記データの量を大きく設定し、前記第2のアルゴリズムを選択した場合は、前記第2のアルゴリズムに基づいて前記記憶部から読み出す前記データの量を小さく設定する
請求項4に記載の再生装置。
【請求項6】
データを蓄積することと、
前記蓄積されたデータの取得要求を生成する第1のプログラムと、前記蓄積されたデータの取得要求を生成する、前記第1のプログラムとは種類の異なる第2のプログラムとを制御することと、
前記蓄積されたデータをファイル単位で管理することと、
前記データの取得要求が入力された場合に、前記第1のプログラムによる前記データの読み出しに適した手法で前記ファイルの読み出しを行う第1のアルゴリズムと、前記第2のプログラムによる前記データの読み出しに適した手法で前記ファイルの読み出しを行う第2のアルゴリズムのいずれか一方を、前記データの取得要求中で指示された前記ファイルの格納位置情報に基づいて選択し、前記選択した前記第1のアルゴリズムもしくは前記第2のアルゴリズムに基づいて、前記蓄積されたデータの読み出しを行うこととを含む
再生方法。

【図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


【公開番号】特開2012−221155(P2012−221155A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−85420(P2011−85420)
【出願日】平成23年4月7日(2011.4.7)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】