(57)【特許請求の範囲】
【請求項１】
コードストリームと、当該各コードストリームの格納位置を示した管理情報とを少なくとも含み、これらコードストリームと管理情報とが所定の構造で格納された構造化文書を記憶する外部記憶装置にネットワークを介してアクセスを行う情報処理装置において、
前記構造化文書から前記管理情報を取得する第１取得手段と、
前記第１取得手段により取得された管理情報が示す格納位置のうち、取得を行うコードストリームの格納位置の指定を受け付ける受付手段と、
前記指定されたコードストリームの格納位置から前記コードストリームを取得する第２取得手段と、
前記第１取得手段により取得された管理情報と、前記第２取得手段により取得されたコードストリームとを前記構造化文書に応じた構造で記憶手段に格納する記憶制御手段と、
前記記憶手段に格納された各コードストリームに対応する前記記憶手段内の管理情報に、当該各コードストリームの格納位置を上書きする格納位置更新手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記記憶制御手段は、前記第２取得手段により取得されたコードストリームを、前記構造化文書に格納されたコードストリームの格納順序に応じた順序で前記記憶手段に格納することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記憶制御手段は、前記第２取得手段により取得されたコードストリームを、当該コードストリームが取得された順序で前記記憶手段に格納することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記管理情報は、前記構造化文書における一意の位置を起点とし、この起点から前記各コードストリームが格納された位置までのオフセットと長さを、前記格納位置として保持することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第２取得手段は、前記構造化文書の起点から、前記コードストリームの格納位置に応じたオフセット分、離れた位置に格納された前記コードストリームを取得することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記記憶手段に記憶されたコードストリーム間の間隙を削除する削除手段を更に備え、
前記格納位置更新手段は、前記削除手段により間隙が削除された後の各コードストリームの格納位置を、前記記憶手段に格納された当該各コードストリームに対応する管理情報に上書きすることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項７】
前記記憶手段に格納された各コードストリームを伸長する伸長手段を更に備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記受付手段は、前記構造化文書のページ単位で前記コードストリームの格納位置の指定を受け付けることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記構造化文書は、ＩＳＯ１５４４４−１に準拠したファイルであることを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
前記構造化文書は、ＩＳＯ１５４４４−２に準拠したファイルであることを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
前記構造化文書は、ＩＳＯ１５４４４−４に準拠したファイルであることを特徴とする請求項１に記載の情報処理装置。
【請求項１２】
前記構造化文書は、ＩＳＯ１５４４４−６に準拠したファイルであることを特徴とする請求項１に記載の情報処理装置。
【請求項１３】
前記第１取得手段及び前記第２取得手段は、通信プロトコルとしてＩＳＯ１５４４４−９で規定されたＪＰＩＰを用いることを特徴とする請求項９〜１２の何れか一項に記載の情報処理装置。
【請求項１４】
前記構造化文書は、Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｔ  Ｆｏｒｍａｔの仕様に準拠したファイルであることを特徴とする請求項１に記載の情報処理装置。
【請求項１５】
前記構造化文書は、Ｍｕｌｔｉ  Ｐａｇｅ  Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅの仕様に準拠したファイルであることを特徴とする請求項１に記載の情報処理装置。
【請求項１６】
コードストリームと、当該各コードストリームの格納位置を示した管理情報とを少なくとも含み、これらコードストリームと管理情報とが所定の構造で格納された構造化文書を記憶する外部記憶装置にネットワークを介してアクセスを行う情報処理装置で実行される情報処理方法であって、
第１取得手段が、前記構造化文書から前記管理情報を取得する第１取得ステップと、
受付手段が、前記第１取得ステップで取得された管理情報が示す格納位置のうち、取得を行うコードストリームの格納位置の指定を受け付ける受付ステップと、
第２取得手段が、前記指定されたコードストリームの格納位置から前記コードストリームを取得する第２取得ステップと、
記憶制御手段が、前記第１取得ステップで取得された管理情報と、前記第２取得ステップで取得されたコードストームとを前記構造化文書に応じた構造で記憶手段に格納する記憶制御ステップと、
格納位置更新手段が、前記記憶手段に格納された各コードストリームに対応する前記記憶手段内の管理情報に、当該各コードストリームの格納位置を上書きする格納位置更新ステップと、
を含むことを特徴とする情報処理方法。
【請求項１７】
コードストリームと、当該各コードストリームの格納位置を示した管理情報とを少なくとも含み、これらコードストリームと管理情報とが所定の構造で格納された構造化文書を記憶する外部記憶装置にネットワークを介してアクセスを行うコンピュータを、
前記構造化文書から前記管理情報を取得する第１取得手段と、
前記第１取得手段により取得された管理情報が示す格納位置のうち、取得を行うコードストリームの格納位置の指定を受け付ける受付手段と、
前記指定されたコードストリームの格納位置から前記コードストリームを取得する第２取得手段と、
前記第１取得手段により取得された管理情報と、前記第２取得手段により取得されたコードストームとを前記構造化文書に応じた構造で記憶手段に格納する記憶制御手段と、
前記記憶手段に格納された各コードストリームに対応する前記記憶手段内の管理情報に、当該各コードストリームの格納位置を上書きする格納位置更新手段と、
して機能させることを特徴とする情報処理プログラム。
【請求項１８】
請求項１７に記載の情報処理プログラムが記録されていることを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に共有された文書にアクセスを行う情報処理装置、情報処理方法、情報処理プログラム及び記録媒体に関する。
【背景技術】
【０００２】
多くの文書は一般に複数の頁を有している。これら文書を利用するユーザは、全頁を一度に全て読むわけではなく、各々が関心のある特定の箇所だけを読むのが一般的である。このような背景において、標準書やマニュアル、教材等の複数頁から構成される文書の電子化に対応するため、Ａｄｏｂｅ社のＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）等のマルチページをサポート可能な構造化文書が開発されている（例えば、非特許文献１参照）。
【０００３】
このような構造化文書の構造は、一般にいくつかのレイアウトオブジェクトを持ち、そのレイアウトオブジェクトは高々１つのマスクを持ち、このマスクの値によって前景または背景を選択的にレンダリングする形になっている。これにより構造化文書においては非構造化文書よりも高画質で高圧縮率が実現される。同様な技術として、マスクに２値画像の符号化方式を適用し、前景と背景とに非特許文献２に示す符号化方式による符号化を施して構造化文書を構成するようにした符号化方式が開発されている（非特許文献３〜８）。
【０００４】
ところで、電子文書をネットワーク環境で共有することで、当該電子文書に含まれる情報を複数のユーザに均質に提供することが行われている。このような環境では、各ユーザは共有された一の電子文書を共有して読み出すことが可能となっている。共有された電子文書を閲覧するような場合、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を用いてローカルＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）にダウンロードした後に展開されることが行われている。
【０００５】
しかし、ＰＤＦ等の構造化文書では、ユーザが必要とする文書が１ページであったとしても、電子文書全体をダウンロードする必要があるため、ダウンロードに要する時間やネットワークへの負荷が問題となる。また、電子文書の閲覧が行われるクライアントでの利用可能なメモリ量が電子文書全体のデータ量より少ない場合には、当該電子文書を展開することができないため、ユーザが必要とするページを閲覧することができないという問題がある。
【０００６】
上記の問題については、従来、複数のファイルにより構成される複合ファイルにおいて、ユーザから指定されたページのファイルを結合することで新たな複合ファイルを生成し、ユーザに送信する技術が提案されている（例えば、特許文献１参照）。また、複合ファイルの生成に関しては、個別に記憶したファイル群から特定のキーワードに関連するファイルを検索し、該当したファイル群を１のファイルに結合する技術が提案されている（例えば、特許文献２参照）。
【０００７】
【非特許文献１】ＰＤＦ  Ｒｅｆｅｒｅｎｃｅ  ｆｉｆｔｈ  ｅｄｉｔｉｏｎ  Ａｄｏｂｅ  Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ  Ｖｅｒｓｉｏｎ  １．６  Ａｄｏｂｅ  Ｓｙｓｔｅｍ  Ｉｎｃｏｒｐｏｒａｔｅｄ
【非特許文献２】ＷＧＩＮ２７５０「Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ−ＪＰＥＧ２０００  Ｉｍａｇｅ  Ｃｏｄｉｎｇ  Ｓｙｓｔｅｍ−Ｐａｒｔ１  ＦＤＩＳ，  １８  ＡＵＧＵＳＴ  ２０００
【非特許文献３】ＷＧ１Ｎ２８１３「Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ−ＪＰＥＧ２０００  Ｉｍａｇｅ  Ｃｏｄｉｎｇ  Ｓｙｓｔｅｍ−Ｐａｒｔ６：ＣｏｍｐｏｕｎｄＩｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ」ＪＰＥＧ２０００  Ｐａｒｔ６  ＦＤＩＳ，９  ＤＥＣＥＭＢＥＲ２００２
【非特許文献４】「Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ−ＪＰＥＧ２０００  Ｉｍａｇｅ  Ｃｏｄｉｎｇ  Ｓｙｓｔｅｍ−Ｐａｒｔ９：Ｉｎｔｅｒａｃｔｉｖｉｔｙ  Ｔｏｏｌｓ，ＡＰＩｓ  ａｎｄ  ｐｒｏｔｏｃｏｌｓ  ２００４−０３−３０
【非特許文献５】ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｔ．４，Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  ｏｆ  Ｇｒｏｕｐ  ３  ｆａｃｓｉｍｉｌｅ  ｔｅｒｍｉｎａｌｓ  ｆｏｒ  ｄｏｃｕｍｅｎｔ  ｔｒａｎｓｍｉｓｓｉｏｎ
【非特許文献６】ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｔ．６，Ｆａｃｓｉｍｉｌｅ  ｃｏｄｉｎｇ  ｓｃｈｅｍｅｓ  ａｎｄ  ｃｏｄｉｎｇ  ｃｏｎｔｒｏｌ  ｆｕｎｃｔｉｏｎｓ  ｆｏｒ  ｇｒｏｕｐ  ４  ｆａｃｓｉｍｉｌｅ  ａｐｐａｒａｔｕｓ
【非特許文献７】ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９  Ｎ４９７４  Ｆｉｎａｌ  Ｔｅｘｔ  Ｏｆ  ＩＳＯ／ＩＥＣ  １５４４４−２：２００２：Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  −  ＪＰＥＧ  ２０００  ｉｍａｇｅ  ｃｏｄｉｎｇｓｙｓｔｅｍ：Ｅｘｔｅｎｓｉｏｎｓ  ［ＳＣ２９／ＷＧ１  Ｎ２６７９］  ０５  ＡＵＧＵＳＴ  ２００２
【非特許文献８】ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９  Ｎ２２５０  ＭｏｔｉｏｎＪＰＥＧ２０００  Ｆｉｎａｌ  Ｄｒａｆｔ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ、  １７  Ｓｅｐｔｅｍｂｅｒ  ２００１
【特許文献１】特開２００５−２２３３９１号公報
【特許文献２】特開２００３−１１４８１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、従来の構造化文書では、１又は複数のコードストリームが一つのファイルを構成する要素として保持されているため、複数のページから特定のページの特定の解像度や一部の領域を抜粋する際には、コードストリーム単位で分割する必要がある。しかしながら、特許文献１、２に記載の技術にはその方法については何等記載されておらず適用することはできない。特に、特許文献２に記載された各ファイルを個別に記憶する構成としたとしても、各文書は章又は節単位で分割されたファイルとして記憶することになるため、各ファイルはマルチページとなり、１ページ単位での分割をすることはできない。また、ページ単位で個別に記憶した場合には、ページ数分のファイルを作成する必要がある。例えば、１０００ページの文書であれば、１０００個のファイルを予め作成する必要があるため、ファイルの管理にかかる負担が大きく現実的ではない。
【０００９】
本発明は、上記に鑑みてなされたものであって、ネットワーク上に共有された構造化文書が有するコードストリームのうち、特定のコードストリームにのみ効率的にアクセスすることが可能な情報処理装置、情報処理方法、情報処理プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、コードストリームと、当該各コードストリームの格納位置を示した管理情報とを少なくとも含み、これらコードストリームと管理情報とが所定の構造で格納された構造化文書を記憶する外部記憶装置にネットワークを介してアクセスを行う情報処理装置において、前記構造化文書から前記管理情報を取得する第１取得手段と、前記第１取得手段により取得された管理情報が示す格納位置のうち、取得を行うコードストリームの格納位置の指定を受け付ける受付手段と、前記指定されたコードストリームの格納位置から前記コードストリームを取得する第２取得手段と、前記第１取得手段により取得された管理情報と、前記第２取得手段により取得されたコードストリームとを前記構造化文書に応じた構造で記憶手段に格納する記憶制御手段と、前記記憶手段に格納された各コードストリームに対応する前記記憶手段内の管理情報に、当該各コードストリームの格納位置を上書きする格納位置更新手段と、を備えたことを特徴とする。
【００１１】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記記憶制御手段は、前記第２取得手段により取得されたコードストリームを、前記構造化文書に格納されたコードストリームの格納順序に応じた順序で前記記憶手段に格納することを特徴とする。
【００１２】
また、請求項３にかかる発明は、請求項１にかかる発明において、前記記憶制御手段は、前記第２取得手段により取得されたコードストリームを、当該コードストリームが取得された順序で前記記憶手段に格納することを特徴とする。
【００１３】
また、請求項４にかかる発明は、請求項１にかかる発明において、前記管理情報は、前記構造化文書における一意の位置を起点とし、この起点から前記各コードストリームが格納された位置までのオフセットと長さを、前記格納位置として保持することを特徴とする。
【００１４】
また、請求項５にかかる発明は、請求項４にかかる発明において、前記第２取得手段は、前記構造化文書の起点から、前記コードストリームの格納位置に応じたオフセットと長さ分、離れた位置に格納された前記コードストリームを取得することを特徴とする。
【００１５】
また、請求項６にかかる発明は、請求項１又は２にかかる発明において、前記記憶手段に記憶されたコードストリーム間の間隙を削除する削除手段を更に備え、前記格納位置更新手段は、前記削除手段により間隙が削除された後の各コードストリームの格納位置を、前記記憶手段に格納された当該各コードストリームに対応する管理情報に上書きすることを特徴とする。
【００１６】
また、請求項７にかかる発明は、請求項１にかかる発明において、前記記憶手段に格納された各コードストリームを伸長する伸長手段を更に備えたことを特徴とする。
【００１７】
また、請求項８にかかる発明は、請求項１にかかる発明において、前記受付手段は、前記構造化文書のページ単位で前記コードストリームの格納位置の指定を受け付けることを特徴とする。
【００１８】
また、請求項９にかかる発明は、請求項１にかかる発明において、前記構造化文書は、ＩＳＯ１５４４４−１に準拠したファイルであることを特徴とする。
【００１９】
また、請求項１０にかかる発明は、請求項１にかかる発明において、前記構造化文書は、ＩＳＯ１５４４４−２に準拠したファイルであることを特徴とする。
【００２０】
また、請求項１１にかかる発明は、請求項１にかかる発明において、前記構造化文書は、ＩＳＯ１５４４４−４に準拠したファイルであることを特徴とする。
【００２１】
また、請求項１２にかかる発明は、請求項１にかかる発明において、前記構造化文書は、ＩＳＯ１５４４４−６に準拠したファイルであることを特徴とする。
【００２２】
また、請求項１３にかかる発明は、請求項９〜１２の何れか一項にかかる発明において、前記第１取得手段及び前記第２取得手段は、通信プロトコルとしてＩＳＯ１５４４４−９で規定されたＪＰＩＰを用いることを特徴とする。
【００２３】
また、請求項１４にかかる発明は、請求項１にかかる発明において、前記構造化文書は、Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｔ  Ｆｏｒｍａｔの仕様に準拠したファイルであることを特徴とする。
【００２４】
また、請求項１５にかかる発明は、請求項１にかかる発明において、前記構造化文書は、Ｍｕｌｔｉ  Ｐａｇｅ  Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅの仕様に準拠したファイルであることを特徴とする。
【００２５】
また、請求項１６にかかる発明は、コードストリームと、当該各コードストリームの格納位置を示した管理情報とを少なくとも含み、これらコードストリームと管理情報とが所定の構造で格納された構造化文書を記憶する外部記憶装置にネットワークを介してアクセスを行う情報処理装置で実行される情報処理方法であって、第１取得手段が、前記構造化文書から前記管理情報を取得する第１取得ステップと、受付手段が、前記第１取得ステップで取得された管理情報が示す格納位置のうち、取得を行うコードストリームの格納位置の指定を受け付ける受付ステップと、第２取得手段が、前記指定されたコードストリームの格納位置から前記コードストリームを取得する第２取得ステップと、記憶制御手段が、前記第１取得ステップで取得された管理情報と、前記第２取得ステップで取得されたコードストームとを前記構造化文書に応じた構造で記憶手段に格納する記憶制御ステップと、格納位置更新手段が、前記記憶手段に格納された各コードストリームに対応する前記記憶手段内の管理情報に、当該各コードストリームの格納位置を上書きする格納位置更新ステップと、を含むことを特徴とする。
【００２６】
また、請求項１７にかかる発明は、コードストリームと、当該各コードストリームの格納位置を示した管理情報とを少なくとも含み、これらコードストリームと管理情報とが所定の構造で格納された構造化文書を記憶する外部記憶装置にネットワークを介してアクセスを行うコンピュータを、前記構造化文書から前記管理情報を取得する第１取得手段と、前記第１取得手段により取得された管理情報が示す格納位置のうち、取得を行うコードストリームの格納位置の指定を受け付ける受付手段と、前記指定されたコードストリームの格納位置から前記コードストリームを取得する第２取得手段と、前記第１取得手段により取得された管理情報と、前記第２取得手段により取得されたコードストームとを前記構造化文書に応じた構造で記憶手段に格納する記憶制御手段と、前記記憶手段に格納された各コードストリームに対応する前記記憶手段内の管理情報に、当該各コードストリームの格納位置を上書きする格納位置更新手段と、して機能させることを特徴とする。
【００２７】
また、請求項１８にかかる発明は、請求項１７に記載の情報処理プログラムが記録されていることを特徴とする。
【発明の効果】
【００２８】
本発明によれば、ネットワーク上に存在する構造化文書から、当該構造化文書の要素となる各コードストリームの格納位置を示した管理情報を取得し、この管理情報に示された格納位置に基づいて、特定の格納位置に格納されたコードストリームのみを取得する。これにより、ネットワークに流れるデータ量を抑えることができるとともに、構造化文書の保持にかかるメモリ量も抑えることができるため、効率的にアクセスを行うことができる。また、取得した管理情報及びコードストリームを構造化文書に応じた構造で記憶手段に格納し、管理情報とコードストリームとの参照関係を更新するため、元の構造化文書との互換性を維持することが可能となり、元の構造化文書から特定のコードストリームを抜粋した状態で保持することができる。
【発明を実施するための最良の形態】
【００２９】
以下に添付図面を参照して、本発明にかかる情報処理装置、情報処理方法及び情報処理プログラムの最良な実施の形態を詳細に説明する。なお、以下の実施形態では、本発明の情報処理装置をＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のファイル変換装置、ブラウジング装置、複写機やプリンタ、ファクシミリ等の印刷装置に適用した例を示すが、これに限定されるものではなく、ネットワーク上に共有された文書にアクセス可能な他の機器等にも適用することが可能である。
【００３０】
［第１の実施形態］
図１は、本発明にかかるファイル変換装置２００を含む文書共有システムの構成を示した図である。同図に示したように、文書共有システムは、ネットワークＮに接続された各機器に後述するＪＰＭファイルを共有可能に提供する文書共有サーバ１００と、ＪＰＭファイルにアクセスと行うファイル変換装置２００と、ブラウジング装置３００と、印刷装置４００とを有している。以下、ファイル変換装置２００、ブラウジング装置３００、印刷装置４００を総称してクライアントという。なお、ネットワークＮに接続される文書共有サーバ１００、ファイル変換装置２００、ブラウジング装置３００、印刷装置４００の個数は、図１の態様に限定されないものとする。
【００３１】
図１において、文書共有サーバ１００とクライアントとはネットワークＮを介して接続され、種々のデータの送受信を行う。なお、ネットワークＮを介したデータ通信の通信プロトコルとして、国際標準ＩＳＯ１５４４４−９で規定されたＪＰＩＰ（ＪＰＥＧ２０００  Ｉｎｔｅｒａｃｔｉｖｉｔｙ  Ｔｏｏｌｓ，  ＡＰＩｓ  ａｎｄ  Ｐｒｏｔｏｃｏｌｓ）を用いるものとするが、これに限らず、ファイル中の特定のページのみを個別にアクセスすることが可能な通信プロトコルであれば他のプロトコルを用いる態様としてもよい。
【００３２】
図２は、文書共有サーバ１００のハードウェア構成を示した図である。同図に示したように、文書共有サーバ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、マウスやキーボード等の入力デバイスから構成される操作部１４と、液晶モニタ等の表示デバイスから構成される表示部１５と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶部１６と、外部装置（ファイル変換装置２００等）との通信を制御する通信Ｉ／Ｆ部１７と、原稿の読み取りを行うスキャナ部１８と、これら各部を接続するバス１９とを備えており、通常のコンピュータを利用したハードウェア構成となっている。ＲＯＭ１２、記憶部１６には、各種プログラムや各種データが記憶される。ＣＰＵ１１は、ＲＯＭ１２や記憶部１６に記憶されている各種プログラムをＲＡＭ１３にロードしてこれを実行することにより、文書共有サーバ１００全体を制御し、後述する各種機能部を実現させる。
【００３３】
また、記憶部１６には、スキャナ部１８により読み取られた原稿画像が、後述する圧縮・符号化部１１２より構造化文書用のファイルフォーマットで符号化された構造化文書として記憶（蓄積）されている。ここで、構造化文書とは、文字からなる文字部や絵柄からなる絵柄部などの構成要素が混在する一般的な文書において、これらの構成要素をオブジェクトとして捉え、前景、背景及び前景と背景とを切り替えるためのマスクを有した複数のコードストリームから構成されるものである。
【００３４】
本実施形態では、構造化文書の符号化方式としてＪＰＥＧ２０００符号化方式（非特許文献２〜８参照）を用いるものとする。ＪＰＥＧ２０００符号化方式（以下、単に「ＪＰＥＧ２０００」という）では、従来のＪＰＥＧが離散コサイン変換を用いるのに対し、離散ウェーブレット変換を用いることにより、ブロック歪みを発生させることなくＪＰＥＧの約２倍の圧縮効果を実現している。
【００３５】
ＪＰＥＧ２０００には、各種規定が定められており、例えば、ＲＯＩ（関心領域）の符号化オプションなどが含まれるＪＰＥＧ２０００のＰａｒｔ２（ＩＳＯ１５４４４−２）、動画規格であるＪＰＥＧ２０００のＰａｒｔ３（ＩＳＯ１５４４４−３）、絵や文字などの異なる特性を含む複合的な画像に特化した規格であるＪＰＥＧ２０００のＰａｒｔ６（ＩＳＯ１５４４４−６）などが存在している。
【００３６】
以下、ＪＰＥＧ２０００のＰａｒｔ６について説明する。ＪＰＥＧ２０００のＰａｒｔ６は、絵や文字などの異なる特性を含む複合的な画像に特化した規格であり、国際標準ＩＳＯ１５４４４−６１５４４４−６で規定されている。このＪＰＥＧ２０００のＰａｒｔ６で定められたＪＰＥＧ２０００データのファイル拡張子は「ＪＰＭ」となっている。以下、ＪＰＥＧ２０００のＰａｒｔ６で符号化された構造化文書を「ＪＰＭファイル」という。また、文書共有サーバ１００が提供するＪＰＭファイルを「オリジナルのＪＰＭファイル」という。ＪＰＭファイルは、文書を構成するための複数のボックス（Ｂｏｘ）を有しており、これらボックスで規定される内容の階層関係や、包含関係によりＪＰＭファイルを構成する各ページが表される。
【００３７】
図３は、ＪＰＭファイルのデータ構造を模式的に示した図である。同図に示したように、ＪＰＭファイルは、ＪＰＭファイルを管理するための各種の情報（管理情報）が格納されるヘッダ部と、ＪＰＭファイルの各ページに含まれた各種のコードストリームが格納されるデータ部とに大別される。
【００３８】
ヘッダ部のうち、メタデータには、図示しない下記の３つのフィールドが格納されている。
１．マジックナンバー
２．Ｓｉｇｎａｔｕｒｅ  Ｆｉｅｌｄ
３．Ｔｙｐｅ  Ｆｉｅｌｄ
【００３９】
ここで「マジックナンバー」には、本ＪＰＭファイルに固有の識別情報が記述されている。また、「Ｓｉｇｎａｔｕｒｅ  Ｆｉｅｌｄ」には、本ＪＰＭファイルがＪＰＥＧ２０００に依存したファイルであることを示す情報が記述されている。また、「Ｔｙｐｅ  Ｆｉｅｌｄ」には、ファイルタイプ、バージョン、互換性等を示す情報が記述されている。これら３つのフィールドは、この順序でＪＰＭファイルの先頭部分に格納されるよう規定されている。
【００４０】
メタデータの後段に位置するヘッダデータには、コンパウンドヘッダデータと、ページコレクションボックスと、ページボックスとが格納されている。コンパウンドヘッダデータには、本ＪＰＭファイルが構造化文書であることを示す情報が記述されている。ページコレクションボックスには、本ＪＰＭファイルに含まれる各ページを管理するための情報が記述されており、各ページを指示するためのページボックスと対応付けられている。ＪＰＭでの規定では「ファイル→ページコレクション→ページ→レイアウトオブジェクト→オブジェクト→コードストリーム」の順で参照が行われるが、以下では説明の簡略化のため「ファイル→ページコレクション→ページ→コードストリーム」の順で参照が行われるものとして動作を説明する。なお、図３の例では、ページボックスとして「ページボックス０」と「ページボックス１」とが示されているが、これは「ページボックス０」と「ページボックス１」とに対応する２ページ分のファイルからＪＰＭファイルが構成されることを意味している。以下、「ページボックス０」、「ページボックス１」に対応するページを夫々「ページ０」、「ページ１」と表す。
【００４１】
各ページボックス内には、対応するページの要素となるオブジェクト毎に図示しないオブジェクトボックス（Ｏｂｊｅｃｔ  Ｂｏｘ）が用意されている。これら各オブジェクトボックスには、対応するオブジェクトを表すコードストリームの位置を指示するための情報（オフセットと長さ）が夫々記述されており、このオフセットと長さが示す位置に基づいてコードストリームが読み出されるようになっている。ここで「オフセット」とは、ＪＰＭファイルにおいて一意に定まる位置から、各コードストリームの先頭位置まで距離を示す情報である。また「長さ」とは、各コードストリームの先頭から終端までのデータ長を示す情報である。なお、各コードストリームについてのオフセットと長さは、ＪＰＥＧ２０００による圧縮・符号化の際に、対応する各ページボックスに含まれるオブジェクトボックスに夫々書き込まれるものとする。
【００４２】
図３の例では、「ページボックス０」に含まれるオブジェクトボックス０は「コードストリーム０」の格納位置を示す「オフセット０」、オブジェクトボックス１には「コードストリーム１」の格納位置を示す「オフセット１」とが記述されることで、ページ０の要素として「コードストリーム０」と「コードストリーム１」とを参照することが可能となる（図中、破線参照）。また、同様に「ページボックス１」に含まれるオブジェクトボックス２は「オフセット２」が記述されることで、ページ１の要素として「コードストリーム２」を参照することが可能となっている。このように、各ページボックスからは、対応するページの要素となるコードストリームに夫々アクセスできるようになっている。
【００４３】
なお、ＪＰＥＧ２０００のＰａｒｔ６で規定されるＪＰＭファイルでは、上述したオフセットによる格納位置の指定ではなく、ボックス単位で付与されるＰｌａｃｅ  ＨｏｌｄｅｒのＩＤにより参照することも可能である。また、コードストリームが格納される順番は任意でよく、出現する順番が変動しても標準互換のＪＰＭファイルとして機能すると規定されている。
【００４４】
図４は、図３に示したＪＰＭファイルの表示例を示した図である。図４において、左辺に示した「ページ０」、「ページ１」は、「ページボックス０」、「ページボックス１」に夫々対応するページであって、これら２ページによりＪＰＭファイルが構成されている。ここで、右辺は、「ページ０」が「コードストリーム０」と「コードストリーム１」とから構成されていることを表しており、また「ページ１」が「コードストリーム２」から構成されていることを表している。なお、各コードストリームが表す画像の大きさ（縮小率）やレイアウト位置（Ｘ，Ｙ）は、各コードストリームに対応するページボックス毎に用意された、図示しないレイアウトオブジェクトヘッダデータ（Ｌａｙｏｕｔ  Ｏｂｊｅｃｔ  Ｈｅａｄｅｒ  Ｂｏｘ）により規定されているものとする。
【００４５】
図５は、文書共有サーバ１００の機能的構成を示した図である。文書共有サーバ１００は、ＣＰＵ１１とＲＯＭ１２又は記憶部１６に記憶された各種プログラムとの協働により実現する機能部として、原稿読取部１１１と、圧縮・符号化部１１２と、アクセス要求受付部１１３と、符号データ読出部１１４とを備える。
【００４６】
原稿読取部１１１は、スキャナ部１８を制御し、スキャナ上に置かれた原稿を画像データとして順次読み取る。
【００４７】
圧縮・符号化部１１２は、原稿読取部１１１により読み取られた画像データに対し、ＪＰＥＧ２０００で符号化を行うことで、図３に示したデータ構造を有するＪＰＭファイルを生成し、これを記憶部１６に記憶させる。なお、本実施形態では、符号化対象となる画像データを、原稿読取部１１１により読み取られた画像データとしたが、これに限らず、通信Ｉ／Ｆ部１７を介して入力される画像データであっても同様に扱うことが可能である。
【００４８】
アクセス要求受付部１１３は、外部装置（ファイル変換装置２００等）から送信された各種アクセス要求を通信Ｉ／Ｆ部１７を介して受け付けるとともに、これら各種アクセス要求に応じて符号データ読出部１１４により後述する送信バッファにコピーされた応答情報を、通信Ｉ／Ｆ部１７を介して送信元の外部装置に送信する。
【００４９】
また、アクセス要求受付部１１３は、送信した内容をＲＡＭ１３又は記憶部１６に確保されたキャッシュ領域（図示せず）に登録する。また、アクセス要求受付部１１３は、外部装置から受け付けた要求内容とキャッシュ領域に登録された登録内容の重なり度合いを判定し、重なりがない部分を符号データ読出部１１４に読み出させる。一方、要求内容がキャッシュ領域に登録された範囲内の場合には、既に送信済みである旨の指示情報を送信元の外部装置に送信する。このように、既に送信したデータについては、そのデータの送信を抑止することにより、ネットワーク上での冗長なトラフィックを制限することができる。なお、キャッシュ領域に登録した内容は、所定時間経過後や外部装置との接続断後等所定のタイミングでクリアされることが好ましい。
【００５０】
符号データ読出部１１４は、アクセス要求受付部１１３で受け付けられた各種のアクセス要求に応じて、記憶部１６に記憶されたＪＰＭファイルから各種の情報を読み出し、これらを応答情報としてＲＡＭ１３に確保された送信バッファにコピーする。
【００５１】
具体的に、符号データ読出部１１４は、アクセス要求受付部１１３から特定のＪＰＭファイルについてメタデータに関するアクセス要求が入力されると、指定されたＪＰＭファイルからメタデータを読み出し、この要求に対する応答情報として送信バッファにコピーする。
【００５２】
また、符号データ読出部１１４は、アクセス要求受付部１１３から特定のＪＰＭファイルについてヘッダデータに関するアクセス要求が入力されると、指定されたＪＰＭファイルからヘッダデータを読み出し、この要求に対する応答情報として送信バッファにコピーする。
【００５３】
また、符号データ読出部１１４は、アクセス要求受付部１１３からコードストリームに関するアクセス要求が入力されると、要求されたコードストリームをＪＰＭファイルから当該アクセス要求に対する応答情報を読み出し、アクセス要求受付部１１３に出力する。ここで、コードストリームに関するアクセス要求には、オフセットと長さ又はＰｌａｃｅ  Ｈｏｌｄｅｒ  ＩＤが含まれているものとし、これらの情報に基づいて特定のＪＰＭファイルからコードストリームが読み出されるものとする。
【００５４】
次に、文書共有サーバ１００にアクセスを行うファイル変換装置２００について説明する。ファイル変換装置２００は、文書共有サーバ１００により提供されるＪＰＭファイルの一部又は全てのページを取得し、ローカル上に保持する情報処理装置である。なお、図１に示したブラウジング装置３００、印刷装置４００については後述する。
【００５５】
図６は、ファイル変換装置２００のハードウェア構成を示した図である。同図に示したように、ファイル変換装置２００は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＨＤＤ等の記憶部２６、外部装置（文書共有サーバ１００等）との通信を制御する通信Ｉ／Ｆ部２７、及びこれらを接続するバス２８、また場合によってはマウスやキーボード等の入力デバイスから構成される操作部２４、液晶モニタ等の表示デバイスから構成される表示部２５、通常のコンピュータを利用したハードウェア構成も備えている。ＲＯＭ２２又は記憶部２６には、各種プログラムや各種データが記憶される。ＣＰＵ２１は、ＲＯＭ２２や記憶部２６に記憶されている各種プログラムをＲＡＭ２３にロードしてこれを実行することにより、ファイル変換装置２００全体を制御し、後述する各種機能を実現させる。
【００５６】
次に、図７、図８を参照して、ファイル変換装置２００のＣＰＵ２１が各種プログラムを実行することによりファイル変換装置２００において実現される本実施形態に特有の機能について説明する。図７は、ファイル変換装置２００の機能的構成を示した図である。ファイル変換装置２００は、ＣＰＵ２１とＲＯＭ２２又は記憶部２６に記憶された各種プログラムとの協働により実現する機能部として、制御部２１１と、メタデータアクセス部２１２と、ヘッダデータアクセス部２１３と、コードストリームアクセス部２１４と、コードストリーム格納部２１５と、オフセット書込部２１６とを備える。
【００５７】
また、図８は、特許請求の範囲に記載の各手段と、上記した各機能部との関係を示した図である。同図に示したように、制御部２１１が受付手段に対応し、メタデータアクセス部２１２及びヘッダデータアクセス部２１３が第１取得手段に対応し、コードストリームアクセス部２１４が第２取得手段に対応し、コードストリーム格納部２１５が記憶制御手段に対応し、オフセット書込部２１６が格納位置更新手段に対応している。また、文書共有サーバ１００は外部記憶装置に対応し、ＲＡＭ１３又は記憶部１６が記憶手段に対応する。なお、伸長手段は後述する伸長部３１１に対応し、削除手段は後述するコードストリーム格納部５１１に対応し、描画装置は表示部２５又は印刷装置４００に対応する。
【００５８】
制御部２１１は、ファイル変換装置２００全体の動作を統括的に制御する。具体的に、制御部２１１は、制御部２１１は、ユーザから操作部２４を介して入力される種々の指示情報を受け付け、この指示内容に応じて各部を制御する。また、制御部２１１は、文書共有サーバ１００により提供されるＪＰＭファイルの選択にかかる支援画面（ＧＵＩ：Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）や、ＪＰＭファイル中のページボックスの指定にかかる支援画面等を表示部２５に表示する。ここで、ＪＰＭファイルの指定は、サーバ名やＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）、ディレクトリパス等により指定されるものとする。
【００５９】
メタデータアクセス部２１２は、通信Ｉ／Ｆ部２７を介し、特定のＪＰＭファイルに含まれたメタデータの読み出しを要求する情報を文書共有サーバ１００に送信することで、この要求内容に応じたメタデータを文書共有サーバ１００から取得する。また、メタデータアクセス部２１２は、取得したメタデータをＲＡＭ２３又は記憶部２６に予め用意された所定の領域に格納する。以下、この領域を「メモリエリア」という。
【００６０】
ヘッダデータアクセス部２１３は、通信Ｉ／Ｆ部２７を介し、文書共有サーバ１００の記憶部１６に記憶された特定のＪＰＭファイルにアクセスすることで、当該ＪＰＭファイルからヘッダデータを取得する。ここで、ボックスの指定方法は、文書共有サーバ１００におけるＪＰＭファイルの格納位置と、アクセス対象となるボックスのＩＤ（例えば、ページボックス１等）を指定する方法と、ファイル上の一意の位置からのオフセット及び長さを指定する方法の何れかにより実現される。また、ヘッダデータアクセス部２１３は、取得したヘッダデータを、共有元のＪＰＭファイルに応じた構造、即ち、ＪＰＥＧ２０００に準じた形式でメモリエリアに格納する。具体的には、既にメモリエリアに格納されたメタデータの後段に格納する。
【００６１】
コードストリームアクセス部２１４は、通信Ｉ／Ｆ部２７を介し、文書共有サーバ１００の記憶部１６に記憶された特定のＪＰＭファイルにアクセスすることで、当該ＪＰＭファイルからコードストリームを個別に取得する。具体的に、コードストリームアクセス部２１４は、ヘッダデータアクセス部２１３により取得されたヘッダデータのページボックスの中で特定のページボックスの指定を受け付けると、このページボックス含まれるオブジェクトボックスに記述されたオフセットと長さからコードストリームを個別に取得する。ここで、コードストリームへのアクセス方法は、特定のページに対応するページボックスのＩＤ（例えば、ページボックス１等）を指定する方法と、オフセットと長さを直接指定する方法の何れかにより実現される。
【００６２】
コードストリーム格納部２１５は、コードストリームアクセス部２１４により取得されたコードストリームを、共有元のＪＰＭファイルに応じた構造、即ち、ＪＰＥＧ２０００に準じた形式でメモリエリアに格納する。具体的には、既にメモリエリアに格納されたヘッダデータ又はコードストリームの後段に順次格納したり、文書共有サーバに保存されていたのと同じ順番に格納する方法が挙げられる。
【００６３】
オフセット書込部２１６は、コードストリーム格納部２１５により格納された各コードストリームのメモリエリア上でのオフセットと長さを算出し、メモリエリアに格納された当該各コードストリームと参照関係にあるページボックスに含まれるオブジェクトボックスのオフセットフィールドに夫々上書きする。
【００６４】
具体的に、オフセット書込部２１６は、メモリエリアに格納されたＪＰＭファイルの先頭アドレスを基準とし、この先頭アドレスから各コードストリームの先頭アドレスまでのオフセットと長さを対応するページボックスに含まれるオブジェクトボックス（図示せず）に上書きする。
【００６５】
以下、本実施形態にかかるファイル変換装置２００の動作について説明する。図９は、文書共有サーバ１００とファイル変換装置２００とにより実行されるファイル共有処理の手順を示したフローチャートである。ここで、ステップＳ１１〜Ｓ２２はファイル変換装置２００で実行される処理を示しており、ステップＳ３１〜Ｓ３７は文書共有サーバ１００で実行される処理を示している。
【００６６】
ファイル変換装置２００において制御部２１１は、文書共有サーバ１００により提供されるＪＰＭファイル群から、特定のＪＰＭファイルが操作部２４を介して指定されるまで待機を行う（ステップＳ１１；Ｎｏ）。ここで、制御部２１１が特定のＪＰＭファイルを指定する指示情報を受け付けると（ステップＳ１１；Ｙｅｓ）、メタデータアクセス部２１２は、ステップＳ１１で指定されたＪＰＭファイルのメタデータへのアクセスを要求する情報を、通信Ｉ／Ｆ部２７を介して文書共有サーバ１００に送信する（ステップＳ１２）。
【００６７】
一方、文書共有サーバ１００では、アクセス要求受付部１１３がクライアントからのアクセスを待機し（ステップＳ３１；Ｎｏ）、アクセスを確認すると（ステップＳ３１；Ｙｅｓ）、クライアントから送信された要求内容がキャッシュ領域に登録された登録内容が含まれるか否かを比較する（ステップＳ３２）。
【００６８】
ステップＳ３２の結果、アクセス要求内容は既にキャッシュされた登録内容に含まれると判定した場合には（ステップＳ３３；Ｎｏ）、既に送信済みの旨の情報をクライアントに送信し（図示せず）、ステップＳ３１に再び戻る。また、ステップＳ３２の結果、アクセス要求受付部１１３が要求内容にキャッシュ領域に未登録の内容が含まれると判定した場合（ステップＳ３３；Ｙｅｓ）、符号データ読出部１１４は、クライアントからの要求内容の内、未送信のデータを指定されたＪＰＭファイルから読み出し、応答情報として送信バッファにコピーする（ステップＳ３４）。
【００６９】
続いて、アクセス要求受付部１１３は、ステップＳ３４で送信バッファにコピーされた応答情報を、通信Ｉ／Ｆ部１７を介してファイル変換装置２００に送信した後（ステップＳ３５）、この送信が成功したか否かを判定する（ステップＳ３６）。ここで、成功か否の判定は、ファイル変換装置２００から送信される受信成功の旨の情報（ＡＣＫ（ＡＣＫｎｏｗｌｅｄｇｅｍｅｎｔ）等）に基づいて行うものとする。
【００７０】
ステップＳ３６において、送信失敗と判定した場合には（ステップＳ３６；Ｎｏ）、ステップＳ３５に再び戻り、送信バッファにコピーされた応答情報を再度送信する。なお、さらに失敗した場合の再送信可能な回数については、特に制限しないものとするが、制限回数に達した場合にはステップＳ３１に再び戻るものとする。
【００７１】
また、ステップＳ３６において、送信成功と判定した場合には（ステップＳ３６；Ｙｅｓ）、アクセス要求受付部１１３は、ステップＳ３５で送信した送信内容をキャッシュ領域に登録し（ステップＳ３７）、ステップＳ３１に再び戻る。ここで、キャッシュ領域に登録された内容は、今後ステップＳ３１で受け付けた要求内容との比較に用いられることになる。
【００７２】
一方、ファイル変換装置２００では、メタデータアクセス部２１２がステップＳ１４で要求したメタデータを文書共有サーバ１００から取得すると、このメタデータをメモリエリアに格納する（ステップＳ１３）。
【００７３】
次いで、ヘッダデータアクセス部２１３は、ステップＳ１１で指定されたＪＰＭファイルのヘッダデータへのアクセスを要求する情報を、通信Ｉ／Ｆ部２７を介して文書共有サーバ１００に送信し（ステップＳ１４）、この要求に応じたヘッダデータを文書共有サーバ１００から取得すると、このヘッダデータをメモリエリアに格納されたメタデータの後段に格納する（ステップＳ１５）。なお、ヘッダデータの要求に対する文書共有サーバ１００での処理は、上述したステップＳ３１〜Ｓ３７と同様であるため説明は省略する。
【００７４】
図１０は、ステップＳ１５の処理終了時におけるメモリエリアの状態と、文書共有サーバ１００でのＪＰＭファイルの状態とを示した図である。ここで、右図が文書共有サーバ１００でのＪＰＭファイルの状態（データ構造）、左図がファイル変換装置２００のメモリエリアに格納された当該ＪＰＭファイルのメタデータ、ヘッダデータの状態を示している。
【００７５】
図１０に示したように、ここまでの処理でファイル変換装置２００は、ＪＰＭファイルのヘッダ部分までの情報を取得したことになる。ヘッダデータに含まれたページボックスから、このＪＰＭファイルのページ構成を把握することができるため、制御部２１１は、このＪＰＭファイルのページ構成を表示部２５に表示するとともに、このページ構成から閲覧対象とするページを指定可能な支援情報をユーザに提供する。
【００７６】
図９に戻り、制御部２１１は、メモリエリアに格納されたヘッダデータに含まれるページコレクションボックス及びページボックスに基づいて、このＪＰＭファイルを構成する全てのページを表示部２５に表示し、操作部２４を介して特定のページが指定されるまで待機を行う（ステップＳ１６；Ｎｏ）。なお、ステップＳ１６で指定されるページは、１つであってもよいし複数であってもよい。
【００７７】
ステップＳ１６で、制御部２１１が特定のページを指定する指示情報を受け付けると（ステップＳ１６；Ｙｅｓ）、コードストリームアクセス部２１４は、ステップＳ１６で指定されたページのうち、１つのページを処理対象に設定する（ステップＳ１７）。
【００７８】
次いで、コードストリームアクセス部２１４は、メモリエリアに格納されたページデータから処理対象のページに対応するページボックスを参照し、当該ページボックスに含まれるオブジェクトボックスに記述されたオフセットが示す位置に格納されたコードストリームへのアクセスを要求する情報を、通信Ｉ／Ｆ部２７を介して文書共有サーバ１００に送信する（ステップＳ１８）。
【００７９】
続いて、コードストリームアクセス部２１４は、ステップＳ１８でアクセスを要求したコードストリームを文書共有サーバ１００から取得すると、このコードストリームをメモリエリアに格納されたコードストリームの後段に格納する（ステップＳ１９）。なお、コードストリームの要求に対する文書共有サーバ１００での処理は、上述したステップＳ３１〜Ｓ３７と同様であるため説明は省略する。
【００８０】
ここで、コードストームの格納位置は、ＪＰＥＧ２０００での規定に従うものとするが、直前に格納されたコードストリームの末尾アドレスから連続的に格納する態様としてもよいし、当該末尾アドレスから所定のサイズ分、離した位置に格納する態様としてもよい。なお、コードストリームが格納されていない初期の段階では、ヘッダデータの後段に格納されるものとする。
【００８１】
オフセット書込部２１６は、ステップＳ１３でメモリエリアに格納されたメタデータの先頭アドレスから、ステップＳ１９で格納されたコードストリームの先頭アドレスまでのオフセットと長さを、メモリエリアに格納された当該コードストリームを参照するページボックスのオブジェクトボックス上の該当位置に上書きする（ステップＳ２０）。
【００８２】
続いて、コードストリームアクセス部２１４は、処理対象のページを構成する全てのコードストリームについて、ステップＳ１８〜Ｓ２０の処理を施したか否かを判定し、未処理のコードストリームが存在すると判定した場合には（ステップＳ２１；Ｎｏ）、ステップＳ１８へ再び戻り、未処理のコードストリームを要求する情報を、通信Ｉ／Ｆ部２７を介して文書共有サーバ１００に送信する。
【００８３】
また、ステップＳ２１において、全てのコードストリームについてステップＳ１８〜Ｓ２０の処理を施したと判定した場合には（ステップＳ２１；Ｙｅｓ）、コードストリームアクセス部２１４は、さらにステップＳ１６で指定された全てのページを処理対象としたか否かを判定する（ステップＳ２２）。
【００８４】
ステップＳ２２において、未処理のページが存在すると判定した場合には（ステップＳ２２；Ｎｏ）、ステップＳ１７へ再び戻り未処理のページを処理対象に設定する。また、ステップＳ１６で指定された全てのページを処理対象としたと判定した場合には（ステップＳ２２；Ｙｅｓ）、本処理を終了する。
【００８５】
以下、上記ファイル共有処理の動作を説明する。図１１〜１３は、メモリエリアに格納されたＪＰＭファイルの状態と、共有元となる文書共有サーバ１００でのＪＰＭファイルの状態とを示した図である。ここで、右図が文書共有サーバ１００でのＪＰＭファイルの状態（データ構造）を示しており、左図がメモリエリアに格納されたＪＰＭファイルの状態を示している。なお、以下の説明ではステップＳ１６においてユーザから「ページボックス０」及び「ページボックス１」が指定されたものとする。
【００８６】
まず、ステップＳ１８〜Ｓ２０の最初のループ処理において、コードストリームアクセス部２１４により「ページボックス０含まれるオブジェクトボックス０」で格納位置が指示された「コードストリーム０」が取得されると、コードストリーム格納部２１５は、図１１に示したように、この「コードストリーム０」をメモリエリアでのヘッダデータの後段に格納する。このとき、オフセット書込部２１６は、ステップＳ２０において、メタデータの先頭アドレスから「コードストリーム０」の先頭アドレスまでの長さをメモリエリアにおける「コードストリーム０」のオフセット（オフセット０’）として算出し、メモリエリアに格納された当該コードストリームを参照するページボックスのオブジェクトボックス上の該当位置に上書きする。
【００８７】
次に、ステップＳ１８〜Ｓ２０の２回目のループ処理において、コードストリームアクセス部２１４により「ページボックス０に含まれるオブジェクトボックス０」で格納位置が指示された「コードストリーム１」が取得されると、コードストリーム格納部２１５は、図１２に示したように、この「コードストリーム１」をメモリエリアでの「コードストリーム０」の後段に格納する。このとき、オフセット書込部２１６は、ステップＳ２０において、メタデータの先頭アドレスから「コードストリーム１」の先頭アドレスまでの長さをメモリエリアにおける「コードストリーム１」のオフセット（オフセット１’）として算出し、メモリエリアに格納された当該コードストリームを参照するページボックスのオブジェクトボックス上の該当位置に上書きする。
【００８８】
次に、ステップＳ１７〜Ｓ２２のループ処理において、コードストリームアクセス部２１４により「ページボックス１に含まれるオブジェクトボックス２」で格納位置が指示された「コードストリーム２」が取得されると、コードストリーム格納部２１５は、図１３に示したように、この「コードストリーム２」をメモリエリアでの「コードストリーム１」の後段に格納する。このとき、オフセット書込部２１６は、ステップＳ２０において、メタデータの先頭アドレスから「コードストリーム２」の先頭アドレスまでの長さをメモリエリアにおける「コードストリーム２」のオフセット（オフセット２’）として算出し、メモリエリアに格納された当該コードストリームを参照するページボックスのオブジェクトボックスに上書きする。
【００８９】
なお、図１１〜１２では「ページボックス０」、「ページボックス１」の順序でコードストリームを取得した場合を説明したが、「ページボックス１」、「ページボックス０」の順でコードストリームが取得された場合には、「コードストリーム２」、「コードストリーム０」、「コードストリーム１」の順序で文書共有サーバ１００から取得されることになる。そのため、図１４に示したようにコードストリームの取得順序に応じた順序で、メモリエリアに各コードストリームが格納されることになる。
【００９０】
以上のように、本実施形態によれば、ネットワークＮ上に存在するＪＰＭファイルから当該ＪＰＭファイルの要素となる各コードストリームの格納位置を示したページボックス含まれるオブジェクトボックスを取得し、このオブジェクトボックスに示された格納位置に基づいて、特定の格納位置に格納されたコードストリームのみを取得する。これにより、ネットワークＮに流れるデータ量を抑えることができるとともに、ＪＰＭファイルの保持にかかるメモリ量も抑えることができるため、効率的にアクセスを行うことができる。また、文書共有サーバ１００から取得した各種のデータをＪＰＭファイルに応じた構造でメモリエリアに格納し、ページボックスに含まれるオブジェクトボックスとコードストリームとの参照関係を更新するため、オリジナルのＪＰＭファイルとの互換性を維持することが可能となり、オリジナルのＪＰＭファイルから特定のページ（コードストリーム）のみを抜粋した状態で保持することができる。
【００９１】
なお、各コードストリームの位置をファイル上の一意の位置からのオフセットと長さで表す代表的なものとして、ＪＰＥＧ２０００  Ｐａｒｔ６で規定されるＪＰＭファイルを用いて説明したが、同様な仕様を有するファイルであれば他のファイルフォーマットを用いる態様としてもよい。例えば、ＪＰＥＧ２０００  Ｐａｒｔ１ファイル、ＪＰＥＧ２０００  Ｐａｒｔ２ファイル、ＪＰＥＧ２０００  Ｐａｒｔ３ファイル、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）ファイル、Ｍｕｌｔｉ  Ｐａｇｅ  Ｔａｇｇｅｄ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔファイル等が挙げられるが、これらはフォーマット上の違いはあっても本質的に複数のコードストリームの位置をファイル上の一意の位置からのオフセットと長さで表すという点において本質的な動作の違いはないため、ＪＰＭファイルと同様に取り扱うことができる。
【００９２】
なお、本実施形態では、ページボックス内のオブジェクトボックスに記述されたオフセットと長さに基づいてコードストリームをアクセスする態様を説明したが、他の方法を用いてコードストリームをアクセスする態様としてもよい。例えば、文書共有サーバ１００から、メタデータビン（ＪＰＭファイルのトップレベルのボックスの集まり）を送る際にＰｌａｃｅ  Ｈｏｌｄｅｒ  ＩＤを割り当て、このＰｌａｃｅ  Ｈｏｌｄｅｒ  ＩＤに基づいてファイル変換装置２００からアクセスする態様としてもよい。この際には、１つのボックスと包含関係にある複数のボックスは、１つのメタデータビンＩＤで送ることができる。これにより、メタデータビンＩＤで示すＰｌａｃｅ  Ｈｏｌｄｅｒにあたる内容を文書共有サーバ１００に要求し、得られたデータをファイル変換装置２００のメモリエリアにおけるＰｌａｃｅ  Ｈｏｌｄｅｒと同じＩＤで示された箇所に格納する。なお、詳細についてはＪＰＥＧ２０００Ｐａｒｔ９のＡ．３．６．３節にあるため説明は省略する。
【００９３】
また、本実施形態では、コードストリームの位置をファイルの先頭位置からのオフセットと長さで指定する態様としたが、これに限らず、コードストリームボックス名のようにファイル内で一意に定まる名前で指定する態様としてもよい。
【００９４】
また、本実施形態では、同一のＪＰＭファイルから特定の部分符号のみを取得し、新たなＪＰＭファイルを生成する態様を説明したが、これに限らず、複数のＪＰＭファイルの夫々から特定の部分符号のみを取得し、新たなＪＰＭファイルを生成する態様としてもよい。なお、ここで「部分符号」とは、解像度、画質、色成分、領域の単位で分割したコードストリーム内の一部の符号を意味する。
【００９５】
具体的には、操作部２４を介して複数のＪＰＭファイルの格納位置が指定されると、メタデータアクセス部２１２及びヘッダデータアクセス部２１３は、指定されたＪＰＭファイルの夫々から、管理情報（メタデータ及びヘッダデータ）を取得する。ここで、操作部２４を介して指定されるＪＰＭファイルは、自己の装置内に格納されたものであってもよいし、ネットワークＮを介して接続される外部装置に格納されたものであってもよい。
【００９６】
また、この管理情報から各ＪＰＭファイルにかかる部分符号が夫々指定されると、コードストリームアクセス部２１４は、各ＪＰＭファイルから指定された部分符号を取得する。この場合、部分符号の格納位置は複数のＪＰＭファイルに及ぶことになるが、上述したオブジェクトボックスでの上書き方法と同様に、自己の装置内における各部分符号の先頭アドレスまでのオフセットと長さを保持する態様としてもよいし、オリジナルのＪＰＭファイルを参照可能な状態で各部分符号の先頭アドレスまでのオフセットと長さを保持する態様としてもよい。以下、図１５を参照して、後者の場合のファイル構造について説明する。
【００９７】
図１５は、複数のＪＰＭファイル（ファイルＸ、ファイルＹ等）を参照する、新たなＪＰＭファイル（以下、参照元ＪＰＭファイルという）のファイル構造の一例を模式的に示した図である。同図において、参照元ＪＰＭファイルは、メディアデータと、データ参照テーブルと、フラグメントテーブルとから構成される。ここで、メディアデータは、複数のＪＰＭファイル夫々から取得された部分符号群からなるデータである。なお、後述するように各部分符号の格納位置（オフセットと長さ）は、フラグメントテーブルに登録される。
【００９８】
また、データ参照テーブルには、参照元ＪＰＭファイルが参照するＪＰＭファイル（ファイルＸ、ファイルＹ）の格納位置が登録される。具体的に、このデータ参照テーブルには、操作部２４を介して指定されたＪＰＭファイルを格納するサーバ装置のサーバ名やＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）、ディレクトリパス等が登録される。なお、データ参照テーブルの先頭のセルに格納された数値“３”は、当該データ参照テーブルに３個のエントリが存在することを意味している。
【００９９】
フラグメントテーブルは、上述したページボックスのオブジェクトボックスが参照するデータであって、データ格納のためのフラグメントリストを有している。このフラグメントリストには、ヘッダデータアクセス部２１３により取得された参照先となる各ＪＰＭファイルのヘッダデータのフラグメントテーブルの情報（オフセットと長さ）が登録される。なお、フラグメントリストに登録されるフラグメントテーブルの情報は、データ参照テーブルに登録された当該フラグメントテーブルの情報に対応するＪＰＭファイルの格納位置と関連付けて保持されるものとする。これにより、データ参照テーブル及びフラグメントリストに登録された情報を合わせることで、データ参照テーブルに登録されたＪＰＭファイルの、任意の部分符号を参照することが可能となる。
【０１００】
ここで、参照元ＪＰＭファイル生成の為、コードストリームアクセス部２１４により参照先の各ＪＰＭファイルから取得された部分符号については、これら部分符号のメモリエリア上での格納位置（オフセットと長さ）が、オフセット書込部２１６により、フラグメンリストの該当する要素に上書きされるものとする。図１５の例では、フラグメントリストを構成する左から１、４、５、７番目の要素に、メモリエリア上での部分符号の格納位置が夫々登録されていることを示している。また、ファイルＸ、ファイルＹでの部分符号の格納位置が２番目、３番目の要素に夫々登録されており、ネットワークＮ上に存在する外部装値（文書共有サーバ１００等）が提供するＪＰＭファイル（図示せず）での部分符号の格納位置が６番目の要素に登録されていることを示している。
【０１０１】
このように、複数のＪＰＭファイルから、所望する部分符号のみを取得し、新たな一のＪＰＭファイル（参照元ＪＰＭファイル）を生成することで、参照先となった各ＪＰＭファイルを個別に取得する場合と比較し、ネットワークＮに流れるデータ量やファイルの保持にかかるメモリ量を抑えることができるため、効率的にアクセスを行うことができる。
【０１０２】
なお、参照元ＪＰＭファイルのデータ参照テーブルとフラグメントテーブルに基づき、当該参照元ＪＰＭファイルが参照するＪＰＭファイルから新たな部分符号が取得された場合には、オフセット書込部２１６により、この部分符号のメモリエリアでの格納位置がフラグメントテーブル（フラグメントリスト）に上書きされるものとする。また、この例では、データ参照テーブルとフラグメントテーブルとを個別に設けた構成としたが、これに限らず、例えば、両テーブルを一体化した一つのテーブルを用いることとしてもよい。
【０１０３】
次に、上述した第１の実施形態の変形例として、ファイル変換装置２００の構成を適用したＪＰＭファイルの閲覧を行うブラウジング装置３００、ＪＰＭファイルの印刷を行う印刷装置４００について夫々説明する。なお、上述したファイル変換装置２００の構成と同様の要素については、同一の符号を付与し説明は省略する。
【０１０４】
［変形例１］
図１６は、本実施形態の変形例１にかかるブラウジング装置３００の機能的構成を示した図である。同図に示したように、ブラウジング装置３００は、ＣＰＵ２１とＲＯＭ２２又は記憶部２６に記憶された各種プログラムとの協働により実現する機能部として、制御部２１１と、メタデータアクセス部２１２と、ヘッダデータアクセス部２１３と、コードストリームアクセス部２１４と、コードストリーム格納部２１５と、オフセット書込部２１６と、伸長手段に対応する伸長部３１１とを備える。なお、ブラウジング装置３００のハードウェア構成はファイル変換装置２００と同様であるため説明を省略する。
【０１０５】
伸長部３１１は、メモリエリアに格納されたＪＰＭファイルのコードストリームを入力とし、ＪＰＥＧ２０００に応じた伸長処理を施すことでビットマップファイルを生成する。
【０１０６】
具体的に、伸長部３１１は、コードストリームが表す画像を当該コードストリームに対応するページボックスに含まれるレイアウトオブジェクトヘッダデータで規定される縮小率（Ｓｃａｌｅ）まで伸長し、ビットマップ画像を生成する。さらに生成したビットマップ画像を、レイアウトオブジェクトヘッダデータで規定されるレイアウト位置（Ｘ，Ｙ）に展開することで、コードストリームに対応する画像をページ領域の規定の位置に配置する。ここで「ページ領域」とは、ＲＡＭ２３又は記憶部２６に確保されたＪＰＭファイルの各ページを展開するための領域である。なお、ＪＰＥＧ２０００での伸長方法については、公知の技術を用いるものとする。また、本実施形態では、ビットマップ画像を生成する態様としたが、他のフォーマットに準じた画像を生成する態様としてもよい。
【０１０７】
以下、本実施形態の変形例１にかかるブラウジング装置３００の動作を説明する。図１７は、文書共有サーバ１００とブラウジング装置３００とにより実行されるファイル共有処理の手順を示したフローチャートである。ここで、ステップＳ４１〜Ｓ５４はブラウジング装置３００で実行される処理を示しており、ステップＳ６１〜Ｓ６７は文書共有サーバ１００で実行される処理を示している。なお、ステップＳ４１〜Ｓ５０の処理は、上述したステップＳ１１〜Ｓ２０の処理と同様であるため説明を省略する。また、同図において、ステップＳ６１〜Ｓ６７の処理は、上述したステップＳ３１〜Ｓ３７の処理と同様であるため説明を省略する。
【０１０８】
ステップＳ５１において、伸長部３１１は、ステップＳ４９、Ｓ５０でメモリエリアに格納されたコードストリームからビットマップ画像を生成し、ページ領域の規定の位置に配置する（ステップＳ５１）。次いで、制御部２１１は、ページ領域に配置されたビットマップ画像を表示部２５に表示する（ステップＳ５２）。
【０１０９】
続いて、コードストリームアクセス部２１４は、処理対象のページを構成する全てのコードストリームについて、ステップＳ４８〜Ｓ５２の処理を施したか否かを判定し、未処理のコードストリームが存在すると判定した場合には（ステップＳ５３；Ｎｏ）、ステップＳ４８へ再び戻り、未処理のコードストリームを要求する情報を、通信Ｉ／Ｆ部２７を介して文書共有サーバ１００に送信する。
【０１１０】
また、ステップＳ５３において、全てのコードストリームについてステップＳ４８〜Ｓ５２の処理を施したと判定した場合には（ステップＳ５３；Ｙｅｓ）、コードストリームアクセス部２１４は、さらにステップＳ４６で指定された全てのページを処理対象としたか否かを判定する（ステップＳ５４）。
【０１１１】
ステップＳ５４において、未処理のページが存在すると判定した場合には（ステップＳ５４；Ｎｏ）、ステップＳ４７へ再び戻り未処理のページを処理対象に設定する。また、ステップＳ４６で指定された全てのページを処理対象としたと判定した場合には（ステップＳ５４；Ｙｅｓ）、本処理を終了する。
【０１１２】
このように、データスストリームがメモリエリアに格納される毎に、当該コードストリームが表すビットマップ画像が順次生成され、表示部２５に表示されることになる。これにより、文書共有サーバ１００により共有されたＪＰＭファイルのうち、ユーザが所望するページのみをダウンロードし、閲覧することが可能となる。
【０１１３】
なお、本変形例１では、データスストリームがメモリエリアに格納される毎にビットマップ画像を生成する態様としたが、これに限らず、指定された各ページ又は全てのページについて、コードストリームが格納された後にビットマップ画像を生成する態様としてもよい。具体的には、図１７のステップＳ５１、Ｓ５２の処理を、ステップＳ５３の後段又はステップＳ５４の後段で行う構成とすることで実現することができる。
【０１１４】
［変形例２］
図１８は、本実施形態の変形例２にかかる印刷装置４００のハードウェア構成を示したブロック図である。同図に示したように、印刷装置４００は、上述したファイル変換装置２００のハードウェア構成に加え、印刷を行う印刷部２９を備えている。
【０１１５】
ここで、印刷部２９は、レーザプリンタ方式やインクジェット方式等の画像形成手段（図示せず）を備え、後述する印刷制御部４１１から入力されるＣＭＹＫフォーマットの画像データを、印刷用紙等の記録媒体上に印刷する。
【０１１６】
図１９は、印刷装置４００の機能的構成を示した図である。同図に示したように、印刷装置４００は、ＣＰＵ２１とＲＯＭ２２又は記憶部２６に記憶された各種プログラムとの協働により実現される機能部として、制御部２１１と、メタデータアクセス部２１２と、ヘッダデータアクセス部２１３と、コードストリームアクセス部２１４と、コードストリーム格納部２１５と、オフセット書込部２１６と、伸長部３１１と、印刷制御部４１１とを備える。
【０１１７】
印刷制御部４１１は、伸長部３１１によりページ領域内に配置されたビットマップ画像からＣＭＹＫフォーマットの画像データをページ単位で生成し、印刷部２９に出力することでＪＰＭファイルを構成する各ページの印刷を行う。
【０１１８】
以下、本実施形態の変形例２にかかる印刷装置４００の動作を説明する。図２０は、文書共有サーバ１００と印刷装置４００とにより実行されるファイル共有処理の手順を示したフローチャートである。ここで、ステップＳ７１〜Ｓ８４は印刷装置４００で実行される処理を示しており、ステップＳ９１〜Ｓ９７は文書共有サーバ１００で実行される処理を示している。なお、ステップＳ７１〜Ｓ８０の処理は、上述したステップＳ１１〜Ｓ２０の処理と同様であるため説明を省略する。また、同図において、ステップＳ９１〜Ｓ９７の処理は、上述したステップＳ３１〜Ｓ３７の処理と同様であるため説明を省略する。
【０１１９】
ステップＳ８１において、伸長部３１１は、ステップＳ７９、Ｓ８０でメモリエリアに格納されたコードストリームからビットマップ画像を生成し、ページ領域の規定の位置に配置する（ステップＳ８１）。
【０１２０】
続いて、コードストリームアクセス部２１４は、処理対象のページを構成する全てのコードストリームについて、ステップＳ７８〜Ｓ８１の処理を施したか否かを判定し、未処理のコードストリームが存在すると判定した場合には（ステップＳ８２；Ｎｏ）、ステップＳ７８へ再び戻り、未処理のコードストリームを要求する情報を、通信Ｉ／Ｆ部２７を介して文書共有サーバ１００に送信する。
【０１２１】
また、ステップＳ８２において、全てのコードストリームについてステップＳ７８〜Ｓ８１の処理を施したと判定した場合には（ステップＳ８２；Ｙｅｓ）、印刷制御部４１１は、ステップＳ８１でページ領域内に配置されたビットマップ画像からＣＭＹＫフォーマットの画像データを生成し、印刷部２９に出力することでＪＰＭファイルを構成する１ページ分の印刷を行う（ステップＳ８３）。
【０１２２】
続いて、コードストリームアクセス部２１４は、さらにステップＳ７６で指定された全てのページを処理対象としたか否かを判定する（ステップＳ８４）。ステップＳ８４において、未処理のページが存在すると判定した場合には（ステップＳ８４；Ｎｏ）、ステップＳ７７へ再び戻り未処理のページを処理対象に設定する。また、ステップＳ７６で指定された全てのページを処理対象としたと判定した場合には（ステップＳ８４；Ｙｅｓ）、本処理を終了する。
【０１２３】
このように、１ページ分のデータスストリームを表す画像がページ領域に配置される毎に、印刷部２９によりＪＰＭファイルを構成する１ページ分の印刷が行われることになる。これにより、文書共有サーバ１００により提供されたＪＰＭファイルのうち、ユーザが所望するページのみをダウンロードし、印刷することが可能となる。
【０１２４】
［第２の実施形態］
上述した第１の実施形態では、文書共有サーバ１００から取得したＪＰＭファイルのコードストリームを、アクセスした順序でメモリエリアに格納する態様を説明した。第２の実施形態では、共有されたＪＰＭファイルでのコードストリームの格納順序に応じた構成でコードストリームをメモリエリアに格納する態様について説明する。なお、第１の実施形態と同様の構成要素については、同一の符号を付与し説明は省略する。
【０１２５】
図２１は、本実施形態にかかるファイル変換装置５００の機能的構成を示した図である。同図に示したように、ファイル変換装置５００は、ＣＰＵ２１とＲＯＭ２２又は記憶部２６に記憶された各種プログラムとの協働により実現する機能部として、制御部２１１と、メタデータアクセス部２１２と、ヘッダデータアクセス部２１３と、コードストリームアクセス部２１４と、コードストリーム格納部５１１と、オフセット書込部５１２とを備える。なお、ファイル変換装置５００のハードウェア構成はファイル変換装置２００と同様であるため説明を省略する。
【０１２６】
コードストリーム格納部５１１は、コードストリームアクセス部２１４により取得された各コードストリームを、文書共有サーバ１００により共有されたＪＰＭファイルでのコードストリームの格納順序に応じた順序でメモリエリアに格納する。
【０１２７】
ここで、元となったＪＰＭファイルでのコードストリームの格納順序に応じた順序でメモリエリアに格納する方法としては、種々の方法を採用することができる。具体的には、コードストリームアクセス部２１４により取得されたコードストリームのオフセットと長さを、メモリエリアに格納された当該コードストリームに対応するページボックスに含まれるオブジェクトボックスから読み出し、このオフセットと長さに応じたメモリエリアでの格納位置に、取得されたコードストリームを格納することで実現することができる（以下、第１の方法という）。なお、「オフセットと長さに応じたメモリエリアでの格納位置」とは、メモリエリアに格納されたＪＰＭファイルの先頭アドレス、即ち、メタデータの先頭アドレスからこのオフセットだけ離れた位置を意味する。
【０１２８】
また、他の方法としては、各ページボックスに含まれるオブジェクトボックスに記述されたオフセットの大小関係に基づいて、メモリエリアにおけるコードストリームの格納位置を決定する態様としてもよい。具体的には、ページボックスに含まれるオブジェクトボックスに書かれた各コードストリームのオフセットは昇順に並んでいるため、コードストリーム全体のうち何番目の順位に位置するものかを判定することができる。つまり、コードストリームの格納時に、当該コードストリームがコードストリーム全体のうち何番目の順位に位置するかを判定し、この順位に応じたメモリエリアでの格納位置にコードストリームを格納すればよい（以下、第２の方法という）。なお、この場合ページボックスに含まれるオブジェクトボックスに記述されたオフセットが示す位置にコードストリームを格納する態様としてもよいし、ヘッダデータ方向に詰めて格納しておき、コードストリームの格納が行われる毎に、その順位に応じて動的に格納位置を移動する態様としてよい。
【０１２９】
上記した第１の方法、第２の方法において、ページボックスに含まれるオブジェクトボックスに記述されたオフセットに基づいてコードストリームをメモリエリアに格納する場合、ユーザからＪＰＭファイルを構成する一部のページのみが指定されると、メモリエリアに格納されるコードストリーム間に有効なデータの存在しない空白領域（間隙）が生じることがある。例えば、図３に示したＪＰＭファイルの場合、「ページボックス１」のみが指定された場合であっても、「ページボックス０」用の領域がメモリエリアに確保されることになる。このような場合、文書共有サーバ１００から送信されるデータ量は削減することができるが、メモリエリアでのＪＰＭファイルは、実質オリジナルのＪＰＭファイルと同サイズとなる。
【０１３０】
そのため、コードストリーム格納部５１１は、コードストリームアクセス部２１４により取得される全てのコードストリームをメモリエリアに格納した後、各コードストリームの格納位置をヘッダデータ方向に移動し、有効なデータが存在しない空白領域を詰めることで、コードストリーム間の間隙を削除する削除手段として機能する。これにより、メモリエリアに格納したＪＰＭファイルをコンパクト化することができる。
【０１３１】
オフセット書込部５１２は、上述したオフセット書込部２１６と同様の機能を有するとともに、コードストリーム格納部５１１により、メモリエリアに格納されたコードストリームの格納位置が移動された際には、移動後の各コードストリームのメモリエリア上でのオフセットを夫々算出し、メモリエリアに格納された当該各コードストリームに対応するページボックスに含まれるオブジェクトボックスのオフセット値に夫々上書きする。
【０１３２】
以下、本実施形態にかかるファイル変換装置５００の動作を説明する。図２２は、文書共有サーバ１００とファイル変換装置５００とにより実行されるファイル共有処理の手順を示したフローチャートである。ここで、ステップＳ１０１〜Ｓ１１４はファイル変換装置５００で実行される処理を示しており、ステップＳ１２１〜Ｓ１２７は文書共有サーバ１００で実行される処理を示している。なお、ステップＳ１０１〜Ｓ１０８の処理は、上述したステップＳ１１〜Ｓ１８の処理と同様であるため説明を省略する。また、同図において、ステップＳ１２１〜Ｓ１２７の処理は、上述したステップＳ３１〜Ｓ３７の処理と同様であるため説明を省略する。
【０１３３】
また、本処理では、上述したステップＳ１０９において、コードストリーム格納部５１１は、コードストリームアクセス部２１４により取得されたコードストリームを、当該コードストリームのオフセットと長さに応じたメモリエリアでの格納位置に格納する（ステップＳ１０９）。
【０１３４】
続いて、オフセット書込部２１６は、ステップＳ１０９でメモリエリアに格納されたメタデータの先頭アドレスから、ステップＳ１９で格納されたコードストリームの先頭アドレスまでのオフセットと長さをメモリエリアに格納された当該コードストリームを参照するページボックスのオブジェクトボックスに上書きする（ステップＳ１１０）。なお、ステップＳ１０９においてオフセットと長さが示す位置に格納された場合には、本処理を省略してもよい。
【０１３５】
続いて、コードストリームアクセス部２１４は、処理対象のページを構成する全てのコードストリームについて、ステップＳ１０８〜Ｓ１１０の処理を施したか否かを判定し、未処理のコードストリームが存在すると判定した場合には（ステップＳ１１１；Ｎｏ）、ステップＳ１０８へ再び戻り、未処理のコードストリームを要求する情報を、通信Ｉ／Ｆ部２７を介して文書共有サーバ１００に送信する。
【０１３６】
また、ステップＳ１１１において、全てのコードストリームについてステップＳ１０８〜Ｓ１１０の処理を施したと判定した場合には（ステップＳ１１１；Ｙｅｓ）、コードストリームアクセス部２１４は、さらにステップＳ１０６で指定された全てのページを処理対象としたか否かを判定する（ステップＳ１１２）。
【０１３７】
ステップＳ１１２において、未処理のページが存在すると判定した場合には（ステップＳ１１２；Ｎｏ）、ステップＳ１０７へ再び戻り未処理のページを処理対象に設定する。また、ステップＳ１０６で指定された全てのページを処理対象としたと判定した場合（ステップＳ１１２；Ｙｅｓ）、コードストリーム格納部５１１は、メモリエリアに格納されたコードストリームをヘッダデータ方向に移動し、コードストリーム間の間隙を削除する（ステップＳ１１３）。
【０１３８】
続いて、オフセット書込部５１２は、ステップＳ１１３で移動された各コードストリームのメモリエリア上でのオフセットと長さを夫々算出し、当該メモリエリアに格納された各コードストリームに対応するページボックスに含まれるオブジェクトボックスに夫々上書きした後（ステップＳ１１４）、本処理を終了する。
【０１３９】
以上のように、本実施形態によれば、ネットワークＮ上に存在するＪＰＭファイルから当該ＪＰＭファイルの要素となる各コードストリームの格納位置を示したページボックスに含まれるオブジェクトボックスを取得し、このオブジェクトボックスに示された格納位置に基づいて、特定の格納位置に格納されたコードストリームのみを取得する。これにより、ネットワークＮに流れるデータ量を抑えることができるとともに、ＪＰＭファイルの保持にかかるメモリ量も抑えることができるため、効率的にアクセスを行うことができる。また、文書共有サーバ１００から取得した各種のデータをＪＰＭファイルに応じた構造でメモリエリアに格納し、ページボックスに含まれるオブジェクトボックスとコードストリームとの参照関係を更新するため、オリジナルのＪＰＭファイルとの互換性を維持することが可能となり、オリジナルのＪＰＭファイルから特定のページ（コードストリーム）のみを抜粋した状態で保持することができる。
【０１４０】
また、オリジナルのＪＰＭファイルでのコードストリームの格納順序に応じた順序で、メモリエリアにコードストリームを格納するため、オリジナルのＪＰＭファイルとの互換性をより高めることができる。
【０１４１】
なお、本実施形態では、コードストリーム間の間隙を削除する態様としたが、これに限らず、間隙を維持した状態でメモリエリアに保持する態様としてもよい。また、本実施形態では、コードストリームアクセス部２１４により取得された全てのコードストリームについて、元となるＪＰＭファイルでの格納順序に応じた順序でメモリエリアに格納する態様としたが、これに限らず、一部のコードストリームについてのみ適用する態様としてもよい。また、オフセット書込部５１２を、上述した第１の実施形態の構成に適用する態様としてもよい。
【０１４２】
［実施例］
以下、上記第１、第２の実施形態のファイル変換装置（ブラウジング装置）を用いた実施例について説明する。図２３は、本実施例で文書共有サーバ１００により提供されるＪＰＭファイルの構造を模式的に示した図である。このＪＰＭファイルは、春夏秋冬の四季に応じた４つのページから構成される複合文書である。
【０１４３】
図２３において、「ヘッダ部」は、図３で示したヘッダ部に対応するものであり、メタデータやページボックス等が含まれている。「文書サムネイル（四季）」は、このＪＰＭファイルの表紙ページに対応するコードストリームであって、表示ページのサムネイル画像を表すものである。「ページサムネイル（春）」、「本文（春）」は夫々、ＪＰＭファイルの１つのページの要素となるコードストリームであって、「ページサムネイル（春）」がこのページのサムネイル画像を表し、「本文（春）」がこのページの本文を表している。以下同様に「ページサムネイル（夏）」、「本文（夏）」、「ページサムネイル（秋）」、「本文（秋）」、「ページサムネイル（冬）」、「本文（冬）」の各対も、夫々各ページのサムネイル画像と本部とを表すコードストリームである。
【０１４４】
なお、上記の構成において、「文書サムネイル（四季）」から各ページのページサムネイルを参照することが可能であるものとする。また、各ページサムネイルから当該各ページに対応するヘッダ部内のページボックスを参照することが可能であるものとする。即ち、各ページサムネイルから対応する本文を辿ることが可能であるものとする。
【０１４５】
図２４、図２５は、ファイル変換装置での操作を説明するための図である。ファイル変換装置では、文書共有サーバ１００により共有されるＪＰＭファイルから「ヘッダ部」を取得した後「文書サムネイル（四季）」を取得すると、制御部２１１の制御により表示部２５に「文書サムネイル（四季）」を表示する（図２４、左図参照）。次に、操作部２４を介しユーザから「文書サムネイル（四季）」が指定されると、ファイル変換装置は「文書サムネイル（四季）」と参照関係にある各ページサムネイルを共有されたＪＰＭファイルから取得し、制御部２１１の制御により表示部２５に一覧表示する（図２４、中央図参照）。ここで、操作部２４を介しユーザから「ページサムネイル（夏）」が指定されたとすると、ファイル変換装置は共有されたＪＰＭファイルから「ページサムネイル（夏）」と参照関係にある「本文（夏）」を取得し、制御部２１１の制御により表示部２５に表示する（図２４、右図参照）。
【０１４６】
上記の操作の後、第１の実施形態にかかるファイル変換装置２００のメモリエリアには、文書共有サーバ１００から取得されたＪＰＭファイルが図２６に示した状態で格納される。即ち、コードストリームが取得された順序でメモリエリアに格納されることになる。なお、各コードストリームが格納された位置に応じて、オフセット書込部２１６により各ページボックスに含まれるオブジェクトボックスのオフセット値が更新されることは言うまでもない。
【０１４７】
また、「本文（夏）」の表示が閉じられた後、操作部２４を介して「ページサムネイル（春）」が選択されると（図２５、左図及び中央図参照）、ファイル変換装置は共有されたＪＰＭファイルから「ページサムネイル（春）」と参照関係にある「本文（春）」を取得し、制御部２１１の制御により表示部２５に表示する（図２５、右図参照）。
【０１４８】
上記の操作の後、第１の実施形態にかかるファイル変換装置２００には、取得されたＪＰＭファイルが図２７に示した状態でメモリエリアに格納される。即ち、コードストリームが取得された順序でメモリエリアに格納されることになる。なお、各コードストリームが格納された位置に応じて、オフセット書込部２１６により各ページボックスに含まれるオブジェクトボックスのオフセット値が更新されることは言うまでもない。
【０１４９】
また、第２の実施形態にかかるファイル変換装置５００では、取得されたＪＰＭファイルが図２８に示した状態でメモリエリアに格納される。即ち、元となったＪＰＭファイルでのコードストリームの格納順序に応じた構造でメモリエリアに格納されることになる。なお、同図では、コードストリーム間の間隙が削除された後の状態を示している。
【０１５０】
また、図２９に示したように、ヘッダデータの後段に各ページサムネイルが取得された順序で格納され、この後段に元となったＪＰＭファイルでのコードストリームの格納順序に応じた構造で各本文が格納される態様としてもよい。即ち、コードストリーム格納部２１５の機能とコードストリーム格納部５１１の機能とを併用する態様としてもよい。この場合、サムネイル画像や本文等のコードストリームが表すデータ種別に応じて使い分けることとしてもよいし、コードストリームのデータサイズや構造化文書の構成等に応じて使い分ける態様としてもよい。
【０１５１】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【０１５２】
例えば、上記各クライアント（実施形態のファイル変換装置２００、ブラウジング装置３００、印刷装置４００、ファイル変換装置５００）で実行される文書共有処理にかかるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上記各クライアントで実行される文書共有処理にかかるプログラムを、インターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１５３】
また、上記各クライアントで実行される文書共有処理にかかるプログラムを、ＲＯＭ等の記憶媒体に予め組み込んで提供するように構成してもよい。
【産業上の利用可能性】
【０１５４】
以上のように、本発明にかかる情報処理装置、情報処理方法、情報処理プログラム及び記録媒体は、ネットワーク上に共有された構造化文書にアクセスを行う情報処理装置に有用であり、特に、複数ページからなる構造化文書にネットワークを介してアクセスを行う情報処理装置に適している。
【図面の簡単な説明】
【０１５５】
【図１】文書共有システムの構成を示したブロック図である。
【図２】文書共有サーバのハードウェア構成を示したブロック図である。
【図３】ＪＰＭファイルのデータ構造を模式的に示した図である。
【図４】図３のＪＰＭファイルを説明するための図である。
【図５】文書共有サーバの機能的構成を示したブロック図である。
【図６】ファイル変換装置のハードウェア構成を示したブロック図である。
【図７】第１の実施形態にかかるファイル変換装置の機能的構成を示したブロック図である。
【図８】各手段と各機能部との関係を示した図である。
【図９】第１の実施形態にかかる文書共有処理の手順を示したフローチャートである。
【図１０】ＪＰＭファイルの状態を示した図である。
【図１１】ＪＰＭファイルの状態を示した図である。
【図１２】ＪＰＭファイルの状態を示した図である。
【図１３】ＪＰＭファイルの状態を示した図である。
【図１４】ＪＰＭファイルの状態を示した図である。
【図１５】複数のＪＰＭファイルを参照する、ＪＰＭファイルのファイル構造の一例を模式的に示した図である。
【図１６】第１の実施形態の変形例１にかかるブラウジング装置の機能的構成を示したブロック図である。
【図１７】第１の実施形態の変形例１に文書共有処理の手順を示したフローチャートである。
【図１８】第１の実施形態の変形例２にかかる印刷装置のハードウェア構成を示したブロック図である。
【図１９】第１の実施形態の変形例２にかかる印刷装置の機能的構成を示したブロック図である。
【図２０】第１の実施形態の変形例２に文書共有処理の手順を示したフローチャートである。
【図２１】第２の実施形態にかかるファイル変換装置の機能的構成を示したブロック図である。
【図２２】第２の実施形態にかかる文書共有処理の手順を示したフローチャートである。
【図２３】ＪＰＭファイルのデータ構造を模式的に示した図である。
【図２４】ファイル変換装置での操作を説明するための図である。
【図２５】ファイル変換装置での操作を説明するための図である。
【図２６】ＪＰＭファイルの状態を示した図である。
【図２７】ＪＰＭファイルの状態を示した図である。
【図２８】ＪＰＭファイルの状態を示した図である。
【図２９】ＪＰＭファイルの状態を示した図である。
【符号の説明】
【０１５６】
１００  文書共有サーバ
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  操作部
１５  表示部
１６  記憶部
１７  通信Ｉ／Ｆ部
１８  スキャナ部
１９  バス
１１１  原稿読取部
１１２  圧縮・符号化部
１１３  アクセス要求受付部
１１４  符号データ読出部
２００  ファイル変換装置
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  操作部
２５  表示部
２６  記憶部
２７  通信Ｉ／Ｆ部
２８  バス
２９  印刷部
２１１  制御部
２１２  メタデータアクセス部
２１３  ヘッダデータアクセス部
２１４  コードストリームアクセス部
２１５  コードストリーム格納部
２１６  オフセット書込部
３００  ブラウジング装置
３１１  伸長部
４００  印刷装置
４１１  印刷制御部
５００  ファイル変換装置
５１１  コードストリーム格納部
５１２  オフセット書込部
【図１】
0005080325.tif 000002
【図２】
0005080325.tif 000003
【図３】
0005080325.tif 000004
【図４】
0005080325.tif 000005
【図５】
0005080325.tif 000006
【図６】
0005080325.tif 000007
【図７】
0005080325.tif 000008
【図８】
0005080325.tif 000009
【図９】
0005080325.tif 000010
【図１０】
0005080325.tif 000011
【図１１】
0005080325.tif 000012
【図１２】
0005080325.tif 000013
【図１３】
0005080325.tif 000014
【図１４】
0005080325.tif 000015
【図１５】
0005080325.tif 000016
【図１６】
0005080325.tif 000017
【図１７】
0005080325.tif 000018
【図１８】
0005080325.tif 000019
【図１９】
0005080325.tif 000020
【図２０】
0005080325.tif 000021
【図２１】
0005080325.tif 000022
【図２２】
0005080325.tif 000023
【図２３】
0005080325.tif 000024
【図２４】
0005080325.tif 000025
【図２５】
0005080325.tif 000026
【図２６】
0005080325.tif 000027
【図２７】
0005080325.tif 000028
【図２８】
0005080325.tif 000029
【図２９】
0005080325.tif 000030