(57)【要約】【課題】オブジェクトハンドルによるオブジェクト管理を行う際の、メモリ使用量の削減と処理速度の向上との両立を図る。【解決手段】オブジェクトハンドルをパラメータで指定する特定のコマンド（ＧｅｔＯｂｊｅｃｔＩｎｆｏコマンド）に関するオペレーション〜レスポンスの期間（Ｓ３０２〜Ｓ３１４）だけ、パラメータで指定されたオブジェクトハンドルと、指定されたオブジェクトハンドルに相当するオブジェクトのファイルシステム上のファイルパスとを対応付けたリスト（オブジェクトハンドル−ファイルパス変換テーブル）を作成し、メモリ上に保持する。【選択図】図３
2005327179.tif 000002
【特許請求の範囲】
【請求項１】
所望のビット長のＩＤによってオブジェクトを管理し、前記ＩＤは、少なくとも前記ＩＤを用いて前記オブジェクトを参照する間、前記オブジェクトを指し示すファイルシステム上のファイルパスと対応付けて保持されることを特徴とするファイル管理方法。
【請求項２】
前記ＩＤを用いて前記オブジェクトを参照する間が、前記オブジェクトに対する前記ファイルシステム上でのファイルオープンからファイルクローズまでの期間であることを特徴とする請求項１記載のファイル管理方法。
【請求項３】
前記ファイルパスが前記ファイルシステム上で前記オブジェクトを扱うためのファイルハンドルであることを特徴とする請求項１または２記載のファイル管理方法。
【請求項４】
少なくとも前記ＩＤによって前記オブジェクトを管理している間、前記ＩＤと前記オブジェクトとの対応関係は一対一となるべく、前記ＩＤを割り当てることを特徴とする請求項１ないし３のいずれかに記載のファイル管理方法。
【請求項５】
所望のビット長のＩＤによってオブジェクトを管理し、前記ＩＤは、少なくとも前記ＩＤによって参照されるべきオブジェクトを対象とする処理が実行されている間、前記オブジェクトを指し示すファイルシステム上のファイルパスと対応付けて保持されることを特徴とするファイル管理方法。
【請求項６】
前記ＩＤによって参照されるべきオブジェクトを対象とする処理が実行されている間が、ピクチャトランスファプロトコルのＧｅｔＯｂｊｅｃｔＩｎｆｏコマンドから、ＧｅｔＯｂｊｅｃｔレスポンス、ＧｅｔＴｈｕｍｂレスポンスまたはＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔレスポンスのいずれかまで、であることを特徴とする請求項５記載のファイル管理方法。
【請求項７】
前記ＩＤによって参照されるべきオブジェクトを対象とする処理が実行されている間が、ピクチャトランスファプロトコルのＳｅｎｄＯｂｊｅｃｔＩｎｆｏコマンドからＳｅｎｄＯｂｊｅｃｔレスポンスまで、であることを特徴とする請求項５記載のファイル管理方法。
【請求項８】
前記ファイルパスが前記ファイルシステム上で前記オブジェクトを扱うためのファイルハンドルであることを特徴とする請求項５ないし７のいずれかに記載のファイル管理方法。
【請求項９】
少なくとも前記ＩＤによって前記オブジェクトを管理している間、前記ＩＤと前記オブジェクトとの対応関係は一対一となるべく、前記ＩＤを割り当てることを特徴とする請求項５ないし８のいずれかに記載のファイル管理方法。
【請求項１０】
前記ＩＤによって参照されるべきオブジェクトを対象とする処理が実行されている間が、ピクトブリッジプロトコルのＤＰＳ＿ＳｔａｒｔＪｏｂリクエストによる印刷処理要求開始からＤＰＳ＿ＮｏｔｉｆｙＤｅｖｉｃｅＳｔａｔｕｓによる印刷完了通知受信までであることを特徴とする請求項５記載のファイル管理方法。
【請求項１１】
前記ファイルパスが前記ファイルシステム上で前記オブジェクトを扱うためのファイルハンドルであることを特徴とする請求項１０記載のファイル管理方法。
【請求項１２】
少なくとも前記ＩＤによって前記オブジェクトを管理している間、前記ＩＤと前記オブジェクトとの対応関係は一対一となるべく、前記ＩＤを割り当てることを特徴とする請求項１０または１１記載のファイル管理方法。
【請求項１３】
前記ＩＤが固定長であることを特徴とする請求項１から１２のいずれかに記載のファイル管理方法。
【請求項１４】
前記ＩＤが可変長であることを特徴とする請求項１から１２のいずれかに記載のファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器内ファイルシステムに依存しない機器間ファイル転送プロトコルにおいて、ファイル検索処理を高速化するファイル管理方法に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ）の一般家庭への普及によって、デジタルスチルカメラ（ＤＳＣ）のようなデジタル家電機器には、殆どの場合、ＰＣとのデジタルインタフェースが標準装備されている。
【０００３】
ＰＣインタフェースにはいくつかの方式が存在するが、現在、もっとも普及しているものとして、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）がある（非特許文献１を参照）。
【０００４】
ＵＳＢでは、いくつかの典型的なデバイス機能がデバイスクラスとして標準化されている。デバイスクラスの例としては、キーボード、マウスなどのマンマシンインタフェース機器を対象としたＨＩＤ（Ｈｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅ）クラス（非特許文献２を参照）、ハードディスクドライブや光ディスクドライブなどのストレージ機器を対象としたマスストレージクラス等がある（非特許文献３を参照）。
【０００５】
ＤＳＣについては、現在は、マスストレージクラスをサポートするものが一般的である。ＤＳＣをマスストレージクラスデバイスとして機能させることによって、ＤＳＣをＰＣのドライブとしてマウントすることができるので、撮影した画像データ等をＰＣ上に容易に取り込むことが可能となる。
【０００６】
一方、ＤＳＣのような静止画記録デバイスに特化したデバイスクラスとして、新たにイメージクラスも標準化されており（非特許文献４を参照）、マスストレージクラスの代わりに、あるいはマスストレージクラスに加えてイメージクラスをサポートするＤＳＣも増えてきている。
【０００７】
更に、ＤＳＣとプリンタを直接接続して印刷するピクトブリッジプロトコル（非特許文献５を参照）の下層プロトコルとしてイメージクラスが用いられていることも、イメージクラスをサポートするＤＳＣが増加する要因となっている。
【０００８】
イメージクラスではＰＴＰ（Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）という通信プロトコル（非特許文献６を参照）を使用するが、ＰＴＰの特徴の一つとして、オブジェクトハンドルという３２ビットのＩＤによってオブジェクトを管理することが挙げられる。
【０００９】
オブジェクトハンドルを用いてオブジェクト管理方法を統一化するによって、異なるファイルシステムを用いている機器間でのファイル転送が可能となっている。すなわち、ＰＴＰは機器内部のファイルシステムに依存しない通信プロトコルである。
【非特許文献１】「Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ２．０」  Ｃｏｍｐａｑ／Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ／Ｉｎｔｅｌ／Ｍｉｃｒｏｓｏｆｔ／Ｐｈｉｌｉｐｓ  ２０００年４月２７日
【非特許文献２】「Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）  Ｄｅｖｉｃｅ  Ｃｌａｓｓ  Ｄｅｆｉｎｉｔｉｏｎ  ｆｏｒ  Ｈｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅｓ（ＨＩＤ）  Ｖｅｒｓｉｏｎ１．１１」  ＵＳＢ  Ｉｍｐｌｅｍｅｎｔｅｒｓ’Ｆｏｒｕｍ  ２００１年６月２７日
【非特許文献３】「Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ｃｌａｓｓ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｏｖｅｒｖｉｅｗ  Ｒｅｖｉｓｉｏｎ１．２」  ＵＳＢ  Ｉｍｐｌｅｍｅｎｔｅｒｓ’Ｆｏｒｕｍ  ２００３年６月２３日
【非特許文献４】「Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  Ｓｔｉｌｌ  Ｉｍａｇｅ  Ｃａｐｔｕｒｅ  Ｄｅｖｉｃｅ  Ｄｅｆｉｎｉｔｉｏｎ  Ｒｅｖｉｓｉｏｎ１．０」  ＵＳＢ  Ｉｍｐｌｅｍｅｎｔｅｒｓ’Ｆｏｒｕｍ  ２０００年７月１１日
【非特許文献５】「Ｗｈｉｔｅ  Ｐａｐｅｒ  ｏｆ  ＣＩＰＡ−ＤＣ−００１−２００３  Ｄｉｇｉｔａｌ  Ｐｈｏｔｏ  Ｓｏｌｕｔｉｏｎｓ  ｆｏｒ  Ｉｍａｇｉｎｇ  Ｄｅｖｉｃｅｓ」  有限責任中間法人カメラ映像機器工業会  ２００３年２月３日
【非特許文献６】「ＰＩＭＡ  １５７４０：２０００  Ｐｈｏｔｏｇｒａｐｈｙ−Ｅｌｅｃｔｒｉｃ  ｓｔｉｌｌ  ｐｉｃｔｕｒｅ  ｉｍａｇｉｎｇ−Ｐｉｃｔｕｒｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＰＴＰ）  ｆｏｒ  Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｐｈｏｔｏｇｒａｐｈｙ  Ｄｅｖｉｃｅｓ」  Ｐｈｏｔｏｇｒａｐｈｉｃ  ａｎｄ  Ｉｍａｇｉｎｇ  Ｍａｎｕｆａｃｔｕｒｅｒｓ  Ａｓｓｏｃｉａｔｉｏｎ，Ｉｎｃ．  ２０００年７月５日
【発明の開示】
【発明が解決しようとする課題】
【００１０】
少なくとも、静止画記録再生だけでなく、動画記録再生、さらに音声メモ記録再生、音楽記録再生機能等もサポートする複合機器の場合、多様なファイルフォーマットをサポートする必要があり、３２ビット固定長のオブジェクトハンドルで機器がサポートする全てのファイルを取り扱うことは不可能である。従って、機器がサポートする全てのファイルを取り扱うためのファイルシステムを別途構築する必要がある。
【００１１】
一般的に、ファイルシステム上ではファイルパスによって所望のファイルを特定する。一方、ＰＴＰでは、少なくともセッションが有効な期間（オープンセッション〜クローズセッション間）において、あるオブジェクトハンドルが指し示すオブジェクトは単一かつ不変であり、かつ全てのオブジェクトハンドルは排他でなければならない。すなわち、セッション中に、あるオブジェクトハンドルが指し示すオブジェクトが変化したり、あるオブジェクトハンドルが２つ以上のオブジェクトを指し示したり、２つ以上の異なるオブジェクトハンドルが同一のオブジェクトを指し示すことがあってはならない。
【００１２】
上記の必要条件を満たすべく、ファイルシステムによってオブジェクトを管理するシステム上で、オブジェクトハンドルによるオブジェクト管理を行うための最も簡便な方法は、セッションが有効な期間、ＰＴＰで取り扱う全てのオブジェクトのファイルパスとオブジェクトハンドルを一対一に対応付けたリストをメモリ上に保持する方法である。
【００１３】
しかしながら、この方法では、取り扱うオブジェクトの数に比例して、リスト作成、保持に必要となるメモリ量が増加するため、組み込みシステム等のメモリに制約のあるシステムには適用できない。
【００１４】
別の方法として、３２ビットで表現可能な範囲で、オブジェクトハンドルとファイルパスとの間の一対一の変換則を構築、適用する方法があるが、この方法では、オブジェクトハンドルの参照、生成の度に変換則を適用する必要があり、処理速度の面で課題がある。
【００１５】
すなわち、解決しようとする問題点は、ファイルシステムによってオブジェクトを管理するシステム上で、オブジェクトハンドルによるオブジェクト管理を行う際の、メモリ使用量の削減と処理速度の向上という相反する要素の両立である。
【課題を解決するための手段】
【００１６】
本発明は、セッションが有効な期間のうち、オブジェクトハンドルをパラメータで指定する特定のコマンドに着目し、特定のコマンドに関するオペレーション〜レスポンスの期間だけ、パラメータで指定されたオブジェクトハンドルと、指定されたオブジェクトハンドルに相当するオブジェクトのファイルシステム上のファイルパスとを対応付けたリストをメモリ上に保持することを最も主要な特徴とする。
【発明の効果】
【００１７】
本発明のファイル管理方法では、オブジェクトハンドルとファイルパスとの対応リストを、特定のコマンドに対するパラメータとして指定されたオブジェクトハンドルに限定して作成、保持し、かつ、特定のコマンドに関するオペレーション〜レスポンスが完了した時点でリストを破棄してメモリを開放するため、オブジェクトハンドルに関する処理速度を向上しつつメモリ使用量を効率化できるという利点がある。
【発明を実施するための最良の形態】
【００１８】
本発明の請求項１に係る発明は、所望のビット長のＩＤによってオブジェクトを管理し、前記ＩＤは、少なくとも前記ＩＤを用いて前記オブジェクトを参照する間、前記オブジェクトを指し示すファイルシステム上のファイルパスと対応付けて保持されることを特徴とするファイル管理方法である。
【００１９】
また、請求項２に係る発明は、前記ＩＤを用いて前記オブジェクトを参照する間が、前記オブジェクトに対する前記ファイルシステム上でのファイルオープンからファイルクローズまでの期間であることを特徴とする請求項１記載のファイル管理方法である。
【００２０】
また、請求項３に係る発明は、前記ファイルパスが前記ファイルシステム上で前記オブジェクトを扱うためのファイルハンドルであることを特徴とする請求項１または２記載のファイル管理方法である。
【００２１】
また、請求項４に係る発明は、少なくとも前記ＩＤによって前記オブジェクトを管理している間、前記ＩＤと前記オブジェクトとの対応関係は一対一となるべく、前記ＩＤを割り当てることを特徴とする請求項１ないし３のいずれかに記載のファイル管理方法である。
【００２２】
また、請求項５に係る発明は、所望のビット長のＩＤによってオブジェクトを管理し、前記ＩＤは、少なくとも前記ＩＤによって参照されるべきオブジェクトを対象とする処理が実行されている間、前記オブジェクトを指し示すファイルシステム上のファイルパスと対応付けて保持されることを特徴とするファイル管理方法である。
【００２３】
また、請求項６に係る発明は、前記ＩＤによって参照されるべきオブジェクトを対象とする処理が実行されている間が、ピクチャトランスファプロトコルのＧｅｔＯｂｊｅｃｔＩｎｆｏコマンドから、ＧｅｔＯｂｊｅｃｔレスポンス、ＧｅｔＴｈｕｍｂレスポンスまたはＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔレスポンスのいずれかまで、であることを特徴とする請求項５記載のファイル管理方法である。
【００２４】
また、請求項７に係る発明は、前記ＩＤによって参照されるべきオブジェクトを対象とする処理が実行されている間が、ピクチャトランスファプロトコルのＳｅｎｄＯｂｊｅｃｔＩｎｆｏコマンドからＳｅｎｄＯｂｊｅｃｔレスポンスまで、であることを特徴とする請求項５記載のファイル管理方法である。
【００２５】
また、請求項８に係る発明は、前記ファイルパスが前記ファイルシステム上で前記オブジェクトを扱うためのファイルハンドルであることを特徴とする請求項５ないし７のいずれかに記載のファイル管理方法である。
【００２６】
また、請求項９に係る発明は、少なくとも前記ＩＤによって前記オブジェクトを管理している間、前記ＩＤと前記オブジェクトとの対応関係は一対一となるべく、前記ＩＤを割り当てることを特徴とする請求項５ないし８のいずれかに記載のファイル管理方法である。
【００２７】
また、請求項１０に係る発明は、前記ＩＤによって参照されるべきオブジェクトを対象とする処理が実行されている間が、ピクトブリッジプロトコルのＤＰＳ＿ＳｔａｒｔＪｏｂリクエストによる印刷処理要求開始からＤＰＳ＿ＮｏｔｉｆｙＤｅｖｉｃｅＳｔａｔｕｓによる印刷完了通知受信までであることを特徴とする請求項５記載のファイル管理方法である。
【００２８】
また、請求項１１に係る発明は、前記ファイルパスが前記ファイルシステム上で前記オブジェクトを扱うためのファイルハンドルであることを特徴とする請求項１０記載のファイル管理方法である。
【００２９】
また、請求項１２に係る発明は、少なくとも前記ＩＤによって前記オブジェクトを管理している間、前記ＩＤと前記オブジェクトとの対応関係は一対一となるべく、前記ＩＤを割り当てることを特徴とする請求項１０または１１記載のファイル管理方法である。
【００３０】
また、請求項１３に係る発明は、前記ＩＤが固定長であることを特徴とする請求項１から１２のいずれかに記載のファイル管理方法である。
【００３１】
また、請求項１４に係る発明は、前記ＩＤが可変長であることを特徴とする請求項１から１２のいずれかに記載のファイル管理方法である。
【００３２】
以上の発明にとって、オブジェクトハンドルに関する処理速度の向上という目的を、メモリ使用量が必要最小限となるべく、かつ、メモリ占有時間が最小となるべく実現した。
【００３３】
以下、本発明の実施の形態によるファイル管理方法について、図面を用いて説明する。
【００３４】
（実施の形態１）
図１は、本発明の実施の形態１によるファイル管理方法を実現するためのシステム構成の一例を示すブロック図である。
【００３５】
図１において、本システムは、ピクトブリッジプリンタ（ＰｉｃｔＢｒｉｄｇｅプリンタ）１００とＵＳＢ−Ｂレセプタクル１０２で接続され、ＵＳＢバス１０１を介したインタフェースを確立する。この時、ＰｉｃｔＢｒｉｄｇｅプリンタ１００はＵＳＢホストとして機能し、本システムはＵＳＢデバイスとして機能する。ＵＳＢバス１０１の信号はＵＳＢデバイスコントローラ１０３を介して入出力される。ＵＳＢデバイスコントローラ１０３はＵＳＢ規格で定義されたハードウェア機能を実現するデバイス側のコントローラであり、シリアルバスであるＵＳＢバス１０１の信号上に複数の論理的な通信路（エンドポイント）を確立する。ＵＳＢデバイスコントローラ１０３によって、システムコントローラ１０８に対して、シリアルバスを意識させることなく、各エンドポイントのＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）を介したデータ入出力Ｉ／Ｆを提供することが可能となる。
【００３６】
本システムでは、画像ファイル等のデータを蓄積する蓄積メディアとして、例えばＳＤ（セキュア・デジタル）メモリカード１０７を用いる。ＳＤメモリカード１０７はＳＤメモリカードスロット１０６を介して本システムと接続される。ＳＤメモリカードスロット１０６に装着されたＳＤメモリカード１０７はＳＤバス１０５を介してＳＤカードコントローラ１０４と通信する。ＳＤカードコントローラ１０４はＳＤカードホスト機器としてＳＤメモリカード１０７と通信するために必要な機能をシステムコントローラ１０８に対して提供する。
【００３７】
ユーザの入出力Ｉ／Ｆとしては、ＬＣＤ（液晶ディスプレイ）１１４及び操作用の十字キー１１５を有する。これらは、それぞれＬＣＤコントローラ１１２及びキー入力Ｉ／Ｆ１１３を介して、システムコントローラ１０８によって制御される。
【００３８】
上記の周辺デバイスは、ＣＰＵバス１１１を介してシステムコントローラ１０８と通信し、システム全体の制御はシステムコントローラ１０８が司る。このために、システムコントローラ１０８は、ＣＰＵ１０９とメモリ１１０を有している。
【００３９】
図２は、本システムを制御するためにシステムコントローラ１０８上に実装されるソフトウェア（Ｓ／Ｗ）スタックの一例を示す概念図である。
【００４０】
各周辺デバイスは、それらを制御するための各デバイスドライバ（ＤＤ）によって制御される。ＵＳＢデバイスコントローラＤＤの上位レイヤには、ハードウェア依存部分を吸収、抽象化したＵＳＢ転送機能を提供するＵＳＢライブラリ（Ｌｉｂ）が実装される。ＵＳＢＬｉｂの上位レイヤにはＵＳＢイメージクラスで定義された論理インタフェース、通信プロトコルをサポートするＵＳＢイメージクラスＬｉｂが実装される。ＵＳＢイメージクラスＬｉｂの主な内部ブロックとして、通信プロトコルを制御するＰＴＰ（ピクチャトランスファプロトコル）Ｌｉｂ、ＰＴＰで定義される３２ビット固定長のオブジェクトハンドルによってオブジェクトを管理するためのライブラリであるオブジェクトハンドルＬｉｂがある。オブジェクトハンドルＬｉｂはＤＣＦ（カメラファイルシステム規格）をサポートするライブラリであるＤＣＦＬｉｂとのインタフェースを有し、ＤＣＦＬｉｂの下位レイヤにはＳＤメモリカード上の論理ファイルシステムを管理するファイルシステムＬｉｂが実装される。ファイルシステムＬｉｂはＳＤカードコントローラＤＤとインタフェースすることにより、ＳＤメモリカードへのＲＡＷリード／ライトを行う。また、ユーザインタフェース機能はＧＵＩＬｉｂが提供し、下位レイヤにはＬＣＤコントローラＤＤ、シリアルＩ／Ｆ  ＤＤが実装される。また、ＵＳＢイメージクラスＬｉｂの上位にはピクトブリッジＬｉｂが実装され、ピクトブリッジＬｉｂの主な内部ブロックとしてＸＭＬパーサ／ビルダがある。そして、最上位レイヤにはシステムアプリケーションが実装される。なお、全てのモジュールは、ＲＴＯＳ（リアルタイムＯＳ）の管理下で動作する。
【００４１】
図３は、本発明の実施の形態１によるファイル管理の処理を示すフローチャートである。以下、図３に基づいて説明する。図３のフロー開始時において、ピクチャトランスファプロトコル（ＰＴＰ）、ピクトブリッジプロトコルの各通信プロトコルはいずれも確立しているものとする。
【００４２】
まず、印刷実行対象となるオブジェクトのオブジェクトハンドルをパラメータとして、オブジェクトの印刷処理を要求するピクトブリッジプロトコル上のリクエストであるＤＰＳ＿ＳｔａｒｔＪｏｂリクエストを発行する（Ｓ３０１）。次に、上記オブジェクトハンドルと、上記オブジェクトハンドルによって参照されるオブジェクトを指し示すファイルシステム上のファイルパスとを対応付けたオブジェクトハンドル−ファイルパス変換テーブルを作成し、メモリ上に保持する（Ｓ３０２）。そして、印刷実行対象オブジェクトのオブジェクトハンドルをパラメータとするＧｅｔＯｂｊｅｃｔＩｎｆｏコマンドの受信待ちに入る（Ｓ３０３）。ＧｅｔＯｂｊｅｃｔＩｎｆｏコマンドはオブジェクトハンドルで指定されたオブジェクトの情報を取得するＰＴＰコマンドである。
【００４３】
ＧｅｔＯｂｊｅｃｔＩｎｆｏコマンドを受信すると、上記オブジェクトハンドル−ファイルパス変換テーブルを利用して、コマンドのパラメータとして指定されたオブジェクトハンドルからオブジェクトのファイルパスを取得する（Ｓ３０４）。
【００４４】
次に、取得したファイルパスをパラメータとして、ファイルシステムからオブジェクト情報を取得する（Ｓ３０５）。そして、ＯｂｊｅｃｔＩｎｆｏデータセットを生成、送信し（Ｓ３０６）、続いて、ＧｅｔＯｂｊｅｃｔＩｎｆｏレスポンスを送信する（Ｓ３０７）。ＧｅｔＯｂｊｅｃｔＩｎｆｏレスポンス送信後は、印刷実行対象オブジェクトのオブジェクトハンドルをパラメータとするＧｅｔＯｂｊｅｃｔコマンドの受信待ちに入る（Ｓ３０８）。ＧｅｔＯｂｊｅｃｔコマンドはオブジェクトハンドルで指定されたオブジェクトの実体を取得するＰＴＰコマンドである。
【００４５】
ＧｅｔＯｂｊｅｃｔコマンドを受信すると、上記オブジェクトハンドル−ファイルパス変換テーブルを利用して、コマンドのパラメータとして指定されたオブジェクトハンドルからオブジェクトのファイルパスを取得する（Ｓ３０９）。
【００４６】
次に、取得したファイルパスをパラメータとして、ファイルシステムからオブジェクトの実体を取得する（Ｓ３１０）。そして、データとして取得したオブジェクトの実体を送信し（Ｓ３１１）、続いて、ＧｅｔＯｂｊｅｃｔレスポンスを送信する（Ｓ３１２）。
【００４７】
印刷対象オブジェクトの送信が完了し、印刷処理が全て終了すると、状態変化を示すピクトブリッジプロトコル上のイベントであるＤＰＳ＿ＮｏｔｉｆｙＤｅｖｉｃｅＳｔａｔｕｓイベントを受信する（Ｓ３１３）。ＤＰＳ＿ＮｏｔｉｆｙＤｅｖｉｃｅＳｔａｔｕｓイベントによって印刷処理の終了を確認すると、メモリ上に保持しているオブジェクトハンドル−ファイルパス変換テーブルを破棄してメモリを開放する（Ｓ３１４）。
【００４８】
図４は、本発明の実施の形態１におけるファイルパスとオブジェクトハンドルとの対応テーブルの一例を示す概念図である。図４では、カメラファイルシステム（ＤＣＦ）規格に準拠したＥＸＩＦ／ＪＰＥＧファイルを対象オブジェクトとした場合を示している。ディレクトリ番号とファイル番号の若い順からシーケンシャルにオブジェクトハンドルを割り当てているので、ファイルパスとオブジェクトハンドルとの間には一対一の対応関係が成立している。
【００４９】
図５は、本発明の実施の形態１におけるオブジェクトハンドル−ファイルパス変換テーブル作成処理の一例を示すフローチャートである。本フローは、図４で示したテーブルを作成する場合の具体例であり、対象オブジェクトをＤＣＦ規格準拠のＥＸＩＦ／ＪＰＥＧファイルとし、オブジェクトハンドルをＤＣＦディレクトリ／ファイルの昇順にシーケンシャルに割り当てた場合の処理フローとなっている。
【００５０】
図５において、まず、オブジェクトハンドル入力されると（Ｓ５０１）、ＤＣＦディレクトリ単位で、直下のＤＣＦファイル数を算出する（Ｓ５０２）。この時、算出対象のＤＣＦディレクトリ番号は昇順とする。次に、ＤＣＦディレクトリ単位で、昇順に算出、積算したＤＣＦファイル総数と、現在対象となるＤＣＦディレクトリ直下のＤＣＦファイル数との和を求め（Ｓ５０３）、その和とオブジェクトハンドルとの大小関係を比較し（Ｓ５０４）、オブジェクトハンドルの値を超えた時点（ＮＯ）でループを脱出する。超えない間（ＹＥＳ）は、積算したＤＣＦファイル総数に現在対象のＤＣＦディレクトリ直下のＤＣＦファイル数を加算し（Ｓ５０５）、対象のＤＣＦディレクトリ番号を１つ進めて（Ｓ５０６）、Ｓ５０２からのループを継続する。
【００５１】
ループを脱出した時点でのＤＣＦディレクトリ番号が、確定ＤＣＦディレクトリ番号となる（Ｓ５０７）ので、引き続きＤＣＦファイル番号の検索に入る。
【００５２】
積算したＤＣＦファイル総数と確定ＤＣＦディレクトリ番号直下のＤＣＦファイル数が等しくなるＤＣＦファイル番号を検索する（Ｓ５０８）。ＤＣＦディレクトリ番号の検索と同様、ＤＣＦファイルの検索順序も昇順とする。
【００５３】
条件が成立した時点で、ＤＣＦファイル番号が確定する（Ｓ５０９）ので、確定したＤＣＦディレクトリ番号とＤＣＦファイル番号から導き出されるファイルパスを、オブジェクトハンドルと対応付けてメモリ上に記憶することによって、オブジェクトハンドル−ファイルパス変換テーブルがメモリ上に構築される（Ｓ５１０）。
【００５４】
（実施の形態２）
図６は、本発明の実施の形態２によるファイル管理の処理を示すフローチャートである。以下、図３との差異に焦点を当てて説明する。その他は、実施の形態１と同様であるので、その説明は割愛する。
【００５５】
図６のフローでは、オブジェクトハンドル−ファイルハンドル変換テーブルの作成（Ｓ６０２〜Ｓ６０４）、破棄（Ｓ６１５〜Ｓ６１７）のトリガを、ファイルシステム上でのファイルのオープン（Ｓ６０３）、クローズ（Ｓ６１５）のタイミングとしている。また、テーブルに保持する情報に関して、ファイルパスの代わりにオープンしたファイルのハンドルを用いている（Ｓ６０６，Ｓ６０７，Ｓ６１１，Ｓ６１２）。図６では対象オブジェクトに関する一連の印刷処理の間、ファイルをオープンしているが、オープン可能なファイル数に制約のあるシステム等では、ファイルのオープン、クローズ、及びオブジェクトハンドル−ファイルハンドル変換テーブルの生成、破棄を繰り返す場合もある。
【００５６】
（実施の形態３）
図７は、本発明の実施の形態３によるファイル管理の処理を示すフローチャートである。実施の形態２での説明と同様に、以下、図３との差異について説明する。その他は、実施の形態１と同様であるので、その説明は割愛する。
【００５７】
図７のフローでは、オブジェクトハンドル−ファイルパス変換テーブルの作成（Ｓ７０３，Ｓ７０４）、破棄（Ｓ７１４）のトリガが、それぞれＧｅｔＯｂｊｅｃｔＩｎｆｏコマンド受信（Ｓ７０２））、ＧｅｔＯｂｊｅｃｔレスポンス送信（Ｓ７１３）のタイミングとなっている。
【００５８】
図７ではＧｅｔＯｂｊｅｃｔコマンドでオブジェクトを取得しているが、ＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔコマンドで取得する場合もある。ＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔコマンドはオブジェクトハンドルで指定されたオブジェクトの実体をオフセット及びサイズを指定して取得するＰＴＰコマンドである。受信側のバッファメモリの制約等で、一度に全Ｏｂｊｅｃｔを取得できない場合には、複数回のＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔコマンドによって分割取得する。この場合、オブジェクトハンドル⇔ファイルパス変換テーブルの破棄は最後のＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔレスポンス送信のタイミングで実行される。最後のＧｅｔＰａｒｔｉａｌＯｂｊｅｃｔレスポンスかどうかの判定は、オフセットと取得サイズの和がＯｂｊｅｃｔのサイズに到達したか否かで行う。また、取得の対象がオブジェクトの実体ではなく、オブジェクトのサムネイルの実体である場合は、ＧｅｔＴｈｕｍｂコマンドで取得する。ＧｅｔＴｈｕｍｂコマンドはオブジェクトハンドルで指定されたオブジェクトのサムネイルの実体を取得するＰＴＰコマンドである。
【００５９】
（実施の形態４）
図８は、本発明の実施の形態４によるファイル管理の処理を示すフローチャートである。以下、図８に基づいて説明する。その他は、実施の形態１と同様であるので、その説明は割愛する。
【００６０】
図８のフロー開始時において、ピクチャトランスファプロトコル（ＰＴＰ）による通信は確立しているものとする。
【００６１】
まず、オブジェクト実体の送信に先立って、送信予定のオブジェクトの情報を通知するＰＴＰコマンドであるＳｅｎｄＯｂｊｅｃｔＩｎｆｏコマンドを受信する（Ｓ８０１）。次に、コマンドに続いて送信されるＯｂｊｅｃｔＩｎｆｏデータセットを取得し（Ｓ８０２）、ＯｂｊｅｃｔＩｎｆｏデータセットの内容を基にファイルシステムを介して空き容量を確認し、格納するファイルパスを決定する（Ｓ８０３）。そして、ファイルパス→オブジェクトハンドル変換によって、格納先のオブジェクトハンドルを決定し（Ｓ８０４）、更にオブジェクトハンドル−ファイルパス変換テーブルを作成してメモリ上に保持する（Ｓ８０５）。決定したオブジェクトハンドルはＳｅｎｄＯｂｊｅｃｔＩｎｆｏレスポンスのパラメータとして送信される（Ｓ８０６）。
【００６２】
次にオブジェクトの実体を送信するＰＴＰコマンドであるＳｅｎｄＯｂｊｅｃｔコマンドを受信する（Ｓ８０７）。パラメータのオブジェクトハンドルから変換テーブルを介してファイルパスを取得（Ｓ８０８）した後、続いて送信されるオブジェクトを取得する（Ｓ８０９）。取得したオブジェクトを、上述したファイルパスのオブジェクトとしてファイルシステム上に記録し（Ｓ８１０）、ＳｅｎｄＯｂｊｅｃｔレスポンスを送信する（Ｓ８１１）。
【００６３】
最後に、メモリ上に保持しているオブジェクトハンドル−ファイルパス変換テーブルを破棄してメモリを開放し（Ｓ８１２）、一連の処理が完了する。
【００６４】
なお、本発明の実施の形態１におけるファイルパスとオブジェクトハンドルとの対応テーブル、及び作成フローの一例を図４、及び図５を用いて説明したが、これは本発明の実施の形態２、本発明の実施の形態３、本発明の実施の形態４にも適用できる。
【００６５】
また、ファイルパスの代わりに上記ファイルパスが指し示すオブジェクトをファイルシステム上でオープンした時のファイルハンドルを用いても構わない。
【００６６】
また、本発明の実施の形態３、本発明の実施の形態４はオブジェクトハンドル−ファイルパス変換テーブルを作成、保持する場合について説明したが、ファイルパスの代わりに上記ファイルパスが指し示すオブジェクトをファイルシステム上でオープンした時のファイルハンドルを用いても本発明は有効である。
【００６７】
また、オブジェクトを管理するＩＤが固定長ではなく可変長であっても本発明の有効性が損なわれることはない。
【産業上の利用可能性】
【００６８】
本発明にかかるファイル管理方法は、オブジェクトハンドルとファイルパスとの対応リストを、特定のコマンドに対するパラメータとして指定されたオブジェクトハンドルに限定して作成、保持し、かつ、特定のコマンドに関するオペレーション〜レスポンスが完了した時点でリストを破棄してメモリを開放することで、組み込みシステムのように使用可能なメモリ容量に制限があってメモリ使用効率の向上が求められる用途にも適用できる。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施の形態１によるファイル管理の処理を実現するためのシステム構成の一例を示すブロック図
【図２】同実施の形態１によるシステムコントローラ１０８上に実装されるソフトウェアスタックの一例を示す概念図
【図３】同実施の形態１によるファイル管理の処理を示すフローチャート
【図４】同実施の形態１におけるファイルパスとオブジェクトハンドルとの対応テーブルの一例を示す概念図
【図５】同実施の形態１におけるオブジェクトハンドル−ファイルパス変換テーブル作成処理の一例を示すフローチャート
【図６】同実施の形態２によるファイル管理の処理を示すフローチャート
【図７】同実施の形態３によるファイル管理の処理を示すフローチャート
【図８】同実施の形態４によるファイル管理の処理を示すフローチャート
【符号の説明】
【００７０】
１００    ＰｉｃｔＢｒｉｄｇｅプリンタ
１０１    ＵＳＢバス
１０２    ＵＳＢ−Ｂレセプタクル
１０３    ＵＳＢデバイスコントローラ
１０４    ＳＤカードコントローラ
１０５    ＳＤバス
１０６    ＳＤメモリカードスロット
１０７    ＳＤメモリカード
１０８    システムコントローラ
１０９    ＣＰＵ
１１０    メモリ
１１１    ＣＰＵバス
１１２    ＬＣＤコントローラ
１１３    キー入力Ｉ／Ｆ
１１４    ＬＣＤ
１１５    十字キー
【図１】
2005327179.tif 000003
【図２】
2005327179.tif 000004
【図３】
2005327179.tif 000005
【図４】
2005327179.tif 000006
【図５】
2005327179.tif 000007
【図６】
2005327179.tif 000008
【図７】
2005327179.tif 000009
【図８】
2005327179.tif 000010