(57)【要約】【課題】  複数のオブジェクトデータを含むデータを効率的に処理するデータ処理装置を提供する。【解決手段】  検出手段１３が処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出し、これを記憶手段２２が記憶し、処理実行手段１３が記憶情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を含む処理を実行する。また、処理実行手段１３が記憶情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を含む処理を実行する。【選択図】  図１
2006260360.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトデータを含むデータを処理するデータ処理装置において、
処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出する検出手段と、
前記検出された情報を記憶する記憶手段と、
前記記憶された情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を含む処理を前記処理対象となるデータに対して実行する処理実行手段と、
を備えたことを特徴とするデータ処理装置。
【請求項２】
複数のオブジェクトデータを含むデータを処理するデータ処理装置において、
処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出する検出手段と、
前記検出された情報を記憶する記憶手段と、
前記記憶された情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作を含む処理を前記処理対象となるデータに対して実行する処理実行手段と、
を備えたことを特徴とするデータ処理装置。
【請求項３】
それぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理するデータ処理装置において、
処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出する検出手段と、
前記検出された情報を記憶する記憶手段と、
前記記憶された情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を含む処理を前記処理対象となるデータに対して実行する処理実行手段と、
を備えたことを特徴とするデータ処理装置。
【請求項４】
それぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理するデータ処理装置において、
処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出する検出手段と、
前記検出された情報を記憶する記憶手段と、
前記記憶された情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作を含む処理を前記処理対象となるデータに対して実行する処理実行手段と、
を備えたことを特徴とするデータ処理装置。
【請求項５】
請求項１乃至請求項４のいずれか１項に記載のデータ処理装置において、
前記処理対象となるデータは一般すなわち非線形のＰＤＦのデータであり、
前記処理実行手段は、前記一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換する処理を実行する、
ことを特徴とするデータ処理装置。
【請求項６】
請求項５に記載のデータ処理装置において、
前記処理実行手段により実行される処理は、前記線形化ＰＤＦのデータに含めるヒントテーブルを生成する操作を含む、
ことを特徴とするデータ処理装置。
【請求項７】
請求項１に記載のデータ処理装置において、
前記処理対象となるデータは一般すなわち非線形のＰＤＦのデータであり、
前記処理実行手段は、前記一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換する処理を実行し、
前記オブジェクトデータの区切り位置として、前記オブジェクトデータの開始位置が用いられ、
前記処理実行手段により実行される処理は、ポインタが指定しているオブジェクトデータの開始位置から次のオブジェクトデータの開始位置へ当該ポインタを移動させる操作を行って当該移動の前後における当該ポインタの指定位置の差を検出する操作、及び当該検出結果に基づいて前記線形化ＰＤＦのデータに含めるヒントテーブルを生成する操作を含む、
ことを特徴とするデータ処理装置。
【請求項８】
請求項１に記載のデータ処理装置において、
前記処理対象となるデータは一般すなわち非線形のＰＤＦのデータであり、
前記処理実行手段は、前記一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換する処理を実行し、
前記オブジェクトデータの区切り位置として、ページを構成するオブジェクトデータの開始位置が用いられ、
前記処理実行手段により実行される処理は、ポインタが指定しているページを構成するオブジェクトデータの開始位置から次のページを構成するオブジェクトデータの開始位置へ当該ポインタを移動させる操作を行って当該移動の前後における当該ポインタの指定位置の差を検出する操作、及び当該検出結果に基づいて前記線形化ＰＤＦのデータに含めるヒントテーブルを生成する操作を含む、
ことを特徴とするデータ処理装置。
【請求項９】
データ処理装置が複数のオブジェクトデータを含むデータを処理するデータ処理方法において、
前記データ処理装置に備えられた検出手段が、処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出し、
前記データ処理装置に備えられた記憶手段が、前記検出された情報を記憶し、
前記データ処理装置に備えられた処理実行手段が、前記記憶された情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記記憶された情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する、
ことを特徴とするデータ処理方法。
【請求項１０】
データ処理装置がそれぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理するデータ処理方法において、
前記データ処理装置に備えられた検出手段が、処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出し、
前記データ処理装置に備えられた記憶手段が、前記検出された情報を記憶し、
前記データ処理装置に備えられた処理実行手段が、前記記憶された情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記記憶された情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する、
ことを特徴とするデータ処理方法。
【請求項１１】
複数のオブジェクトデータを含むデータを処理するデータ処理装置を構成するコンピュータに実行させるプログラムであって、
処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出する機能と、
前記検出した情報を情報記憶手段に記憶する機能と、
前記情報記憶手段に記憶された情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記情報記憶手段に記憶された情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する機能を、当該コンピュータにより実現する、
ことを特徴とするプログラム。
【請求項１２】
それぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理するデータ処理装置を構成するコンピュータに実行させるプログラムであって、
処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出する機能と、
前記検出した情報を情報記憶手段に記憶する機能と、
前記情報記憶手段に記憶された情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記情報記憶手段に記憶された情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する機能を、当該コンピュータにより実現する、
ことを特徴とするプログラム。
【請求項１３】
複数のオブジェクトデータを含むデータを処理するデータ処理装置を構成するコンピュータに実行させるプログラムを当該コンピュータの入力手段により読み取り可能に記憶した記憶媒体であって、
当該プログラムは、処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出する処理と、
前記検出した情報を情報記憶手段に記憶する処理と、
前記情報記憶手段に記憶された情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記情報記憶手段に記憶された情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する処理を、当該コンピュータに実行させる、
ことを特徴とする記憶媒体。
【請求項１４】
それぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理するデータ処理装置を構成するコンピュータに実行させるプログラムを当該コンピュータの入力手段により読み取り可能に記憶した記憶媒体であって、
当該プログラムは、処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出する処理と、
前記検出した情報を情報記憶手段に記憶する処理と、
前記情報記憶手段に記憶された情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記情報記憶手段に記憶された情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する処理を、当該コンピュータに実行させる、
ことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｕｃｕｍｅｎｔ  Ｆｏｒｍａｔ）などのようにオブジェクト毎に分かれているデータを処理するデータ処理装置や方法などに関し、特に、このようなデータの処理を効率的に行う技術に関する。
【背景技術】
【０００２】
例えば、一般すなわち非線形のＰＤＦのデータは、ヘッダ情報、複数のオブジェクトデータ、クロスリファレンステーブル、トレーラ情報から構成される。
また、Ｗｅｂブラウザ上で高速に表示することが可能なＰＤＦである線形化ＰＤＦのデータは、更に、ヒントテーブルを有している。
従来技術の一例として、画像処理装置において、ＰＤＦフォーマットなどのように複数ページの画像を含むファイルから画像を分割抽出して別のファイルを生成する方法があった（例えば、特許文献１参照。）。
【０００３】
一般的に、Ｃ／Ｃ＋＋などのプログラミング言語を用いて、ハードディスク（ＨＤＤ）やメモリ上の画像ファイルへアクセスするプログラムを作成する場合には、画像ファイルへのアクセスはバイト単位やワード単位で行われる。なお、ワード単位としては、例えば、４バイト単位などが用いられる。
バイト単位でアクセスする場合には、ある所定位置のデータを読み出すとファイルポジション（ポインタ）が１つインクリメントされ、ファイルポジションが次のデータの開始位置を示すようになる。このようにして順次、画像ファイルへアクセスしていく。
また、例えば４バイト単位であるワード単位でアクセスする場合には、ある所定位置からデータを４バイト分読み出すとファイルポジションが１つインクリメントされ、ファイルポジションが次のデータ（次の４バイトデータ）の開始位置を示すようになる。更に、例えば読み出し開始位置と読み出しサイズを指定することにより、所定位置から所定サイズ分だけデータを読み出すような場合についても同様である。
【０００４】
ここで、ＰＤＦなどのように、各属性情報や各画像データがそれぞれオブジェクトデータとして格納されている場合には、オブジェクトデータの開始位置を基準としてデータへアクセスすることが多い。
しかしながら、このような場合には、その都度、ファイルポジションを所望のオブジェクトデータの開始位置へ移動しなければならず、制御が面倒である。
【０００５】
【特許文献１】特開２００４−８６３７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のように、従来では、ＰＤＦなどのようにオブジェクト毎に分かれているデータを処理する場合に、処理が煩雑化してしまって非効率的であるといった問題があった。
本発明は、このような従来の事情に鑑み為されたもので、ＰＤＦなどのようにオブジェクト毎に分かれているデータの処理を効率的に行うことができるデータ処理装置や方法などを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係るデータ処理装置では、次のような構成により、複数のオブジェクトデータを含むデータを処理する。
すなわち、検出手段が、処理対象となるデータに含まれる（それぞれの）オブジェクトデータの区切り位置を特定する情報を検出する。記憶手段が、前記検出された情報を記憶する。処理実行手段が、前記記憶された情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を含む処理を、前記処理対象となるデータに対して実行する。
従って、ポインタの指定位置から見て次に位置するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を使用することにより、例えば、ＰＤＦなどのようにオブジェクト毎に分かれているデータの処理を効率的に行うことができる。
【０００８】
ここで、処理対象となるデータとしては、種々なものが用いられてもよい。
また、処理対象となるデータに含まれる複数のオブジェクトデータの数としては、種々な数が用いられてもよい。
また、オブジェクトデータの区切り位置としては、種々な位置が用いられてもよく、例えば、オブジェクトデータの開始位置が用いられる。
また、オブジェクトデータの区切り位置を特定する情報としては、種々な情報が用いられてもよく、例えば、処理対象となるデータの先頭からのバイト数或いはビット数などを用いることができる。
また、記憶手段に記憶される情報としては、種々な情報が用いられてもよく、例えば、処理対象となるデータにおけるそれぞれのオブジェクトデータの並び順序を示す番号などの識別情報（ＩＤ情報）とそれぞれのオブジェクトデータの区切り位置を特定する情報との対応情報を用いることができる。
また、処理対象となるデータに対して実行される処理としては、種々な処理が用いられてもよい。
【０００９】
本発明に係るデータ処理装置では、次のような構成により、複数のオブジェクトデータを含むデータを処理する。
すなわち、検出手段が、処理対象となるデータに含まれる（それぞれの）オブジェクトデータの区切り位置を特定する情報を検出する。記憶手段が、前記検出された情報を記憶する。処理実行手段が、前記記憶された情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作を含む処理を、前記処理対象となるデータに対して実行する。
従って、指定されたオブジェクトデータの区切り位置へポインタを移動させる操作を使用することにより、例えば、ＰＤＦなどのようにオブジェクト毎に分かれているデータの処理を効率的に行うことができる。
ここで、ポインタの移動先となるオブジェクトデータの指定としては、例えば、装置に予め設定されたプログラムなどの処理手順で規定されていてもよく、或いは、人や外部の装置から指定情報が入力されてもよい。
【００１０】
本発明に係るデータ処理装置では、次のような構成により、複数のページを含むデータを処理する。なお、それぞれのページは、１個以上のオブジェクトデータから構成される。
すなわち、検出手段が、処理対象となるデータに含まれる（それぞれの）ページを構成するオブジェクトデータの区切り位置を特定する情報を検出する。記憶手段が、前記検出された情報を記憶する。処理実行手段が、前記記憶された情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を含む処理を、前記処理対象となるデータに対して実行する。
従って、ポインタの指定位置から見て次に位置するページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を使用することにより、例えば、ＰＤＦなどのようにオブジェクト毎に分かれているデータの処理を効率的に行うことができる。
【００１１】
ここで、それぞれのページに含まれるオブジェクトデータの数としては、種々な数が用いられてもよい。
また、処理対象となるデータに含まれる複数のページの数としては、種々な数が用いられてもよい。
また、それぞれのページを構成するオブジェクトデータの区切り位置としては、種々な位置が用いられてもよく、例えば、それぞれのページに含まれる先頭のオブジェクトデータの開始位置が用いられる。
また、記憶手段に記憶される情報としては、種々な情報が用いられてもよく、例えば、処理対象となるデータにおけるそれぞれのページの並び順序を示すページ番号などの識別情報（ＩＤ情報）とそれぞれのページを構成するオブジェクトデータの区切り位置を特定する情報との対応情報を用いることができる。
【００１２】
本発明に係るデータ処理装置では、次のような構成により、複数のページを含むデータを処理する。なお、それぞれのページは、１個以上のオブジェクトデータから構成される。
すなわち、検出手段が、処理対象となるデータに含まれる（それぞれの）ページを構成するオブジェクトデータの区切り位置を特定する情報を検出する。記憶手段が、前記検出された情報を記憶する。処理実行手段が、前記記憶された情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作を含む処理を、前記処理対象となるデータに対して実行する。
従って、指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作を使用することにより、例えば、ＰＤＦなどのようにオブジェクト毎に分かれているデータの処理を効率的に行うことができる。
ここで、ポインタの移動先となるページの指定としては、例えば、装置に予め設定されたプログラムなどの処理手順で規定されていてもよく、或いは、人や外部の装置から指定情報が入力されてもよい。
【００１３】
本発明に係るデータ処理装置では、一構成例として、次のような構成とした。
すなわち、前記処理対象となるデータは、一般すなわち非線形のＰＤＦのデータである。また、前記処理実行手段は、前記一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換する処理を実行する。
従って、一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換する処理を効率的に行うことができる。
また、本発明に係るデータ処理装置では、例えば、前記処理実行手段により実行される処理は、前記線形化ＰＤＦのデータに含めるヒントテーブルを生成する操作を含む。
従って、一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換するに際して、特に、ヒントテーブルを生成する操作（処理）を効率的に行うことができる。
【００１４】
本発明に係るデータ処理装置では、一構成例として、次のような構成とした。
すなわち、前記処理対象となるデータは、一般すなわち非線形のＰＤＦのデータである。また、前記処理実行手段は、前記一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換する処理を実行する。また、前記オブジェクトデータの区切り位置として、前記オブジェクトデータの開始位置が用いられる。そして、前記処理実行手段により実行される処理は、ポインタが指定しているオブジェクトデータの開始位置から次のオブジェクトデータの開始位置へ当該ポインタを移動させる操作を行って当該移動の前後における当該ポインタの指定位置の差を検出する操作、及び当該検出結果に基づいて前記線形化ＰＤＦのデータに含めるヒントテーブルを生成する操作を含む。
従って、一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換するに際して、特に、ヒントテーブルを生成する操作（処理）を効率的に行うことができる。
【００１５】
ここで、ポインタが指定しているオブジェクトデータＡの開始位置から次のオブジェクトデータＢの開始位置へ当該ポインタを移動させる操作を行って当該移動の前後における当該ポインタの指定位置の差を検出すると、この差は、前記オブジェクトデータＡにより占められている位置の量に相当し、例えば、位置をバイト数のようにデータ量を用いて定義しておくことにより或いは位置とバイト数などのデータ量とを対応付けておくことにより、前記オブジェクトデータＡのデータ量を検出することができる。
【００１６】
本発明は、以上のような装置と同様な特徴を有する方法やプログラムや記憶媒体などとして提供することもできる。
一例として、本発明に係るデータ処理方法では、次のようにして、データ処理装置が複数のオブジェクトデータを含むデータを処理する。
すなわち、前記データ処理装置に備えられた検出手段が、処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出する。前記データ処理装置に備えられた記憶手段が、前記検出された情報を記憶する。前記データ処理装置に備えられた処理実行手段が、前記記憶された情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記記憶された情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を、前記処理対象となるデータに対して実行する。
【００１７】
一例として、本発明に係るデータ処理方法では、次のようにして、データ処理装置がそれぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理する。
すなわち、前記データ処理装置に備えられた検出手段が、処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出する。前記データ処理装置に備えられた記憶手段が、前記検出された情報を記憶する。前記データ処理装置に備えられた処理実行手段が、前記記憶された情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記記憶された情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を、前記処理対象となるデータに対して実行する。
【００１８】
一例として、本発明に係るプログラムは、複数のオブジェクトデータを含むデータを処理するデータ処理装置を構成するコンピュータに実行させるものであり、次のような機能を有している。
すなわち、処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出する機能と、前記検出した情報を情報記憶手段に記憶する機能と、前記情報記憶手段に記憶された情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記情報記憶手段に記憶された情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する機能を、当該コンピュータにより実現する。
【００１９】
一例として、本発明に係るプログラムは、それぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理するデータ処理装置を構成するコンピュータに実行させるものであり、次のような機能を有している。
すなわち、処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出する機能と、前記検出した情報を情報記憶手段に記憶する機能と、前記情報記憶手段に記憶された情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記情報記憶手段に記憶された情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する機能を、当該コンピュータにより実現する。
【００２０】
一例として、本発明に係る記憶媒体では、複数のオブジェクトデータを含むデータを処理するデータ処理装置を構成するコンピュータに実行させるプログラムを当該コンピュータの入力手段により読み取り可能に記憶しており、次のような構成とした。
すなわち、当該プログラムは、処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出する処理と、前記検出した情報を情報記憶手段に記憶する処理と、前記情報記憶手段に記憶された情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記情報記憶手段に記憶された情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する処理を、当該コンピュータに実行させる。
【００２１】
一例として、本発明に係る記憶媒体では、それぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理するデータ処理装置を構成するコンピュータに実行させるプログラムを当該コンピュータの入力手段により読み取り可能に記憶しており、次のような構成とした。
すなわち、当該プログラムは、処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出する処理と、前記検出した情報を情報記憶手段に記憶する処理と、前記情報記憶手段に記憶された情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作或いは前記情報記憶手段に記憶された情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作の一方又は両方を含む処理を前記処理対象となるデータに対して実行する処理を、当該コンピュータに実行させる。
【発明の効果】
【００２２】
以上説明したように、本発明に係るデータ処理装置や方法などによると、複数のオブジェクトデータを含むデータを処理対象として、処理対象となるデータに含まれるオブジェクトデータの区切り位置を特定する情報を検出して記憶し、記憶情報に基づいてポインタが指定している位置から次のオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を含む処理や、記憶情報に基づいて指定されたオブジェクトデータの区切り位置へポインタを移動させる操作を含む処理を、処理対象となるデータに対して実行するようにしたため、例えば、ＰＤＦなどのようにオブジェクト毎に分かれているデータの処理を効率的に行うことができる。
【００２３】
本発明に係るデータ処理装置や方法などによると、それぞれ１個以上のオブジェクトデータから構成される複数のページを含むデータを処理対象として、処理対象となるデータに含まれるページを構成するオブジェクトデータの区切り位置を特定する情報を検出して記憶し、記憶情報に基づいてポインタが指定している位置から次のページを構成するオブジェクトデータの区切り位置へ当該ポインタを移動させる操作を含む処理や、記憶情報に基づいて指定されたページを構成するオブジェクトデータの区切り位置へポインタを移動させる操作を含む処理を、処理対象となるデータに対して実行するようにしたため、例えば、ＰＤＦなどのようにオブジェクト毎に分かれているデータの処理を効率的に行うことができる。
【発明を実施するための最良の形態】
【００２４】
本発明に係る一実施例を図面を参照して説明する。
なお、本実施例では、ＰＤＦのデータを処理する場合を示すが、他の形式のデータに適用されてもよい。
図１には、本例のデータ処理装置１の構成例を示してある。
本例のデータ処理装置１は、入力部１１と、出力部１２と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１及びメモリ２２を有したデータ処理部１３を備えている。
入力部１１はデータを入力する機能を有しており、出力部１２はデータを出力する機能を有している。
データ処理部１３では、メモリ２２に所定の処理プログラムが記憶されており、ＣＰＵ２１がメモリ２２に記憶された処理プログラムを読み出して実行することによりデータ処理を実行する機能を有している。
【００２５】
本例のデータ処理装置１では、入力部１１により一般すなわち非線形のＰＤＦのデータを読み込み、読み込んだ非線形のＰＤＦのデータをデータ処理部１３により線形化ＰＤＦのデータへ変換し、これにより生成した線形化ＰＤＦのデータを出力部１２により出力する。
或いは、本例のデータ処理装置１では、ＴＩＦＦやＢＭＰなどのようにＰＤＦ以外の形式のデータを入力部１１により読み込み、読み込んだデータをデータ処理部１３により非線形のＰＤＦのデータ（中間的なＰＤＦのデータ）へ変換し、変換した非線形のＰＤＦのデータをデータ処理部１３により線形化ＰＤＦのデータへ変換し、これにより生成した線形化ＰＤＦのデータを出力部１２により出力する。
【００２６】
なお、ＰＤＦのデータとして、圧縮されたデータが用いられてもよい。
一例として、高圧縮ＰＤＦでは、背景をＪＰＥＧで圧縮して、枠の中に記載された白黒の文字などについては圧縮しても劣化しない圧縮方式で圧縮する。このようにすると、データの全体をＪＰＥＧで圧縮する場合と比べて、高圧縮とすることができ、また、文字などの再現性を確保することができる。
【００２７】
図２には、一般すなわち非線形のＰＤＦのファイルフォーマットの構造例を示してある。
本例の一般すなわち非線形のＰＤＦのデータは、ヘッダ情報と、複数であるＮ個のオブジェクトデータ（オブジェクトデータ１〜Ｎ）と、クロスリファレンステーブルと、トレーラ情報から構成されている。
本例では、１番目及び２番目のオブジェクトデータ１、２から文書属性情報が構成されており、３番目から５番目のオブジェクトデータから１ページ目のデータが構成されており、６番目から８番目のオブジェクトデータから２ページ目のデータが構成されており、以降も同様に、３個のオブジェクトデータ毎に１ページ分のデータが構成されている。
【００２８】
ここで、ヘッダ情報は、例えば、ＰＤＦの形式であることを示す情報を有している。
それぞれのオブジェクトデータは、例えば、属性の情報、画像のデータ、指定枠や指定色などからなる台紙の情報、サムネイルのデータなどのいずれかから構成されている。属性の情報としては、文書に関する属性の情報（文書属性情報）や、ページに関する属性の情報（ページ属性情報）や、画像に関する属性の情報（画像属性情報）などがある。属性の情報は、属性を示すキーワードなどを有している。なお、属性の情報やサムネイルのデータは紙面上（台紙上）にはそのままは現れない。
また、各ページの先頭のオブジェクトデータには、ページの開始位置であることを示すキーワードが含まれている。通常、各ページの先頭以外のオブジェクトデータには、ページの位置を特定するためのキーワードは含まれない。
【００２９】
クロスリファレンステーブルは、各オブジェクトデータの開始位置などの情報を格納したテーブルであり、ＰＤＦにおいて保有されている。
具体的には、本例のクロスリファレンステーブルでは、オブジェクトＩＤの番号順に１オブジェクトデータにつき１行の形式でデータが並んでおり、各行にはＰＤＦファイルにおける該当するオブジェクトデータの開始位置情報などが含まれている。なお、オブジェクトデータの開始位置は、例えば、先頭からのバイト数を用いて示され、これにより、オブジェクトデータの区切りが示される。
トレーラ情報は、ファイルの終わりを示しており、クロスリファレンスの位置情報を示している。
【００３０】
このように、ＰＤＦのデータは、オブジェクト毎のデータに分かれている。
また、各ページの中にも複数のオブジェクトデータがあり、例えば台紙に第１のオブジェクトデータの画像と第２のオブジェクトデータの画像を配置して１ページが構成されるなどとなっている。
なお、本例では、各ページが３個のオブジェクトデータから構成される場合を示したが、この数としては種々な数が用いられてもよい。
【００３１】
図３には、線形化ＰＤＦのファイルフォーマットの構造例を示してある。
本例の線形化ＰＤＦのデータは、ヘッダ情報と、ヒントテーブルと、複数であるＭ個のオブジェクトデータ（オブジェクトデータ１〜Ｍ）と、クロスリファレンステーブルと、トレーラ情報から構成されている。
ここで、ヒントテーブルには、例えば、それぞれの１ページ中にある全てのオブジェクトデータ（キーワードを含めたもの）のデータ量（例えば、バイト数）に関する情報や、それぞれの１ページ中における各オブジェクトデータのデータ量（例えば、バイト数）に関する情報等が格納される。
【００３２】
また、複数のオブジェクトデータの並び順などについては、例えば、一般すなわち非線形のＰＤＦから線形化ＰＤＦへ変換されるときに変更されることもあり、或いは、同一のままであることもある。
このような線形化ＰＤＦのデータでは、ヒントテーブルを有しており、オブジェクトデータの並び順などに制限があり、これにより、例えば同一の容量の非線形のＰＤＦデータと比べて、Ｗｅｂブラウザ上において高速で表現することができるなどの利点がある。
【００３３】
次に、本例のデータ処理装置１により行われる処理について詳しく説明する。
本例のデータ処理装置１では、一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換する処理を行う。
このような変換処理では、例えば、ヒントテーブルを作成するために、非線形のＰＤＦのデータに含まれるそれぞれのページのオブジェクトデータのデータ量（例えば、バイト数）を検出する処理や、１ページ内における最大データ量のオブジェクトデータと最小データ量のオブジェクトデータとのデータ量の差分（例えば、バイト数）を検出する処理が必要になる。
本例のデータ処理装置１では、このような変換処理を効率的に行うことを実現する。
【００３４】
以下で、このような実現を図る構成について説明する。
本例では、上記のような変換処理を効率的に行うことを実現する処理プログラムを用いる。
なお、本例では、プログラミング言語としてＣ＋＋を用いる場合を示すが、種々なプログラミング言語が用いられてもよい。
本例では、ファイルを入力するためのクラスをＩｎｐｕｔＣｌａｓｓとする。
【００３５】
図４には、ＩｎｐｕｔＣｌａｓｓの構成例を示してある。
本例のＩｎｐｕｔＣｌａｓｓでは、例えば従来のものと比べて、メンバ関数に、ｎｅｘｔ＿ｏｂｊ（）と、ｍｏｖｅ＿ｏｂｊ（ｉｄ）と、ｎｅｘｔ＿ｐａｇｅ＿ｏｂｊ（）と、ｍｏｖｅ＿ｐａｇｅ＿ｏｂｊ（ｐａｇｅ）が追加されている。
ＩｎｐｕｔＣｌａｓｓ（ｆｉｌｅ）は、コンストラクタであり、ファイルの実体を生成する機能を有している。
ｏｐｅｎ（）は、ファイルオープン関数であり、例えば、非線形のＰＤＦのデータのファイルを開く機能を有している。
ｃｌｏｓｅ（）は、ファイルクローズ関数であり、ファイルを閉じる機能を有している。
【００３６】
ｇｅｔ（）は、１バイトずつデータを読み込む関数である。
ｒｅａｄ（ｐｔｒ，ｓｉｚｅ）は、指定されたポインタ（ｐｔｒ）の位置から指定されたサイズ（ｓｉｚｅ）分のデータを読み込む関数である。
ｐｏｓｉｔｉｏｎ（）は、現在のファイルポジション（ポインタ）を取得する関数である。
ｍｏｖｅ（ｏｆｆｓｅｔ）は、現在のファイルポジションをファイルの先頭からオフセット（ｏｆｆｓｅｔ）分移動する関数である。
ｉｓ＿ｐｄｆ（）は、本例では、対象となるデータがＰＤＦのデータであるか否かを判定する関数である。
【００３７】
ｎｅｘｔ＿ｏｂｊ（）は、ファイルポジションを次のオブジェクトデータの開始位置へ移動する関数である。
ｍｏｖｅ＿ｏｂｊ（ｉｄ）は、ファイルポジションをｉｄで指定された番号のオブジェクトデータの開始位置へ移動する関数である。
ｎｅｘｔ＿ｐａｇｅ＿ｏｂｊ（）は、ファイルポジションを次のページの先頭のオブジェクトデータの開始位置へ移動する関数である。
ｍｏｖｅ＿ｐａｇｅ＿ｏｂｊ（ｐａｇｅ）は、ファイルポジションをｐａｇｅで指定されたページの先頭のオブジェクトデータの開始位置へ移動する関数である。
【００３８】
本例のデータ処理装置１が使用する処理プログラムは、上記のようなＩｎｐｕｔＣｌａｓｓのメンバ関数を用いて構成されており、特に、ｎｅｘｔ＿ｏｂｊ（）や、ｍｏｖｅ＿ｏｂｊ（ｉｄ）や、ｎｅｘｔ＿ｐａｇｅ＿ｏｂｊ（）や、ｍｏｖｅ＿ｐａｇｅ＿ｏｂｊ（ｐａｇｅ）が有効に用いられている。
【００３９】
次に、ユーザ（アプリケーション開発者）により作成される本例の処理プログラムによる概略的な動作例を示す。
本例の処理プログラムでは、まず、コンストラクタであるＩｎｐｕｔＣｌａｓｓが使用されて、ＩｎｐｕｔＣｌａｓｓオブジェクトを生成する。次に、ｏｐｅｎ（）を実行してファイルをオープンする。ファイルをオープンした後、ヘッダ情報を参照して、所定の領域（ファイルがＰＤＦのデータである場合にはクロスリファレンステーブル）から取得した各オブジェクトデータのオブジェクトＩＤ（番号）及びそのオブジェクトデータのファイル中での格納位置を所定の変数に保持する。また、別途、各ページの先頭のオブジェクトデータのオブジェクトＩＤ（番号）及びそのオブジェクトデータのファイル中での格納位置を取得して、所定の変数に保持する。なお、これらの所定の変数は、任意の態様で保持されてもよく、例えば、データ処理装置１に備えられたメモリ２２などに記憶される。
【００４０】
次に、ｉｓ＿ｐｄｆ（）を実行して、ファイルがＰＤＦであるか否かを判定する。この判定の結果、ファイルがＰＤＦではない場合には、ｎｅｘｔ＿ｏｂｊ（）や、ｍｏｖｅ＿ｏｂｊ（ｉｄ）や、ｎｅｘｔ＿ｐａｇｅ＿ｏｂｊ（）や、ｍｏｖｅ＿ｐａｇｅ＿ｏｂｊ（ｐａｇｅ）の関数は無効となり、これらを呼び出したときにはＮＵＬＬが返るか若しくはエラーとなるようにする。一方、ファイルがＰＤＦであった場合には、ｎｅｘｔ＿ｏｂｊ（）や、ｍｏｖｅ＿ｏｂｊ（ｉｄ）や、ｎｅｘｔ＿ｐａｇｅ＿ｏｂｊ（）や、ｍｏｖｅ＿ｐａｇｅ＿ｏｂｊ（ｐａｇｅ）の関数が有効となる。
【００４１】
本例では、オブジェクトデータについて、ｎｅｘｔ＿ｏｂｊ（）を用いることで次の番号のオブジェクトデータの開始位置へ移動することができ、ｍｏｖｅ＿ｏｂｊ（ｉｄ）を用いることで指定された番号のオブジェクトデータの開始位置へ移動することができる。
例えば、初期において、１回目のｎｅｘｔ＿ｏｂｊ（）を実行すると、ファイルポジションが最初のオブジェクトデータ（図２の例では、オブジェクトデータ１）の開始位置へ移動する。その後、ｇｅｔ（）やｒｅａｄ（ｐｔｒ，ｓｉｚｅ）を用いて、最初のオブジェクトデータを構成するデータを順に読み出すことができる。また、最初のオブジェクトデータの読み出しの途中で次のオブジェクトデータ（図２の例では、オブジェクトデータ２）へアクセスする場合には、再度、ｎｅｘｔ＿ｏｂｊ（）を実行すればよく、これによりファイルポジションが当該次のオブジェクトデータの開始位置へ移動する。これを繰り返すことで、各オブジェクトデータに容易にアクセスすることができる。
また、予めアクセスする対象となるオブジェクトデータの番号が把握されている場合には、ｍｏｖｅ＿ｏｂｊ（ｉｄ）を用いてオブジェクトデータの番号を指定することにより、ファイルポジションが指定された番号のオブジェクトデータの開始位置へ移動する。
【００４２】
同様に、ページについて、ｎｅｘｔ＿ｐａｇｅ＿ｏｂｊ（）を用いることで次のページ数のページの先頭のオブジェクトデータの開始位置へ移動することができ、ｍｏｖｅ＿ｐａｇｅ＿ｏｂｊ（ｐａｇｅ）を用いることで指定されたページ数のページの先頭のオブジェクトデータの開始位置へ移動することができる。
例えば、最初のオブジェクトデータ（図２の例では、オブジェクトデータ１）へアクセスした後に、１ページ目の先頭のオブジェクトデータ（図２の例では、オブジェクトデータ３）へアクセスする場合には、ｎｅｘｔ＿ｐａｇｅ＿ｏｂｊ（）或いは１ページ目を指定したｍｏｖｅ＿ｐａｇｅ＿ｏｂｊ（ｐａｇｅ）を用いることにより、該当する位置へ容易にアクセスすることができる。
ここで、ファイルポジション（ポインタ）の位置としては、例えば、ファイルの先頭からのバイト数が用いられる。
【００４３】
図５には、本例の処理プログラムの概略的な構成の一例を示してある。なお、これは概略的な構成例を説明するためのものであり、実際の処理プログラムとしてはその内容に応じて種々な構成が用いられてもよい。
図５に示される構成では、ファイルデータに含まれるオブジェクト毎の区切り位置やページ毎の開始位置が把握されている状態において、ｎｅｘｔ＿ｏｂｊ（）やｍｏｖｅ＿ｏｂｊ（ｉｄ）やｎｅｘｔ＿ｐａｇｅ＿ｏｂｊ（）やｍｏｖｅ＿ｐａｇｅ＿ｏｂｊ（ｐａｇｅ）を用いることにより、ファイルポジション（ｐｔｒ）の位置を必要な位置へ簡易に移動させることができる。
【００４４】
具体例として、一般すなわち非線形のＰＤＦのデータにおいて、あるオブジェクトデータの開始位置から次のオブジェクトデータの開始位置へ移動するに際して、この移動の前後におけるファイルポジションの差（例えば、バイト数の差）を検出することで、前記あるオブジェクトデータのデータ量（例えば、バイト数）を検出することができる。
同様に、あるページの先頭のオブジェクトデータの開始位置から次のページの先頭のオブジェクトデータの開始位置へ移動するに際して、この移動の前後におけるファイルポジションの差（例えば、バイト数の差）を検出することで、前記あるページのデータ量（例えば、バイト数）を検出することができる。
また、あるページ内において、上記のようにして各オブジェクトデータのデータ量を検出し、この検出結果に基づいて当該あるページ内における最大データ量のオブジェクトデータと最小データ量のオブジェクトデータを特定し、特定したこれらのデータ量の差分（例えば、バイト数）を検出することで、１ページ内における最大データ量のオブジェクトデータと最小データ量のオブジェクトデータとのデータ量の差分（例えば、バイト数）を検出することができる。
【００４５】
以上のように、本例のデータ処理装置１では、オブジェクト毎のデータが集まっているファイルを読み込み、このファイルについてオブジェクト毎の区切り位置（例えば、開始位置）やページ毎の区切り位置（例えば、開始位置）を検出してメモリに記憶しておき、この記憶内容に基づいて、オブジェクト毎の区切りを基準として移動する処理やページ毎の区切りを基準として移動する処理を１つ以上含む処理を実行し、この実行結果を取得する。
【００４６】
具体的には、本例のデータ処理装置１では、読み込み或いは他の形式からの変換により一般すなわち非線形のＰＤＦのデータを取得し、この非線形のＰＤＦのデータを先頭から読んでオブジェクトの区切り位置やページの区切り位置を検出してメモリに記憶し、そして、次のオブジェクトへの移動の指示や、指定されたオブジェクトへの移動の指示や、次のページへの移動の指示や、指定されたページへの移動の指示に応じて、メモリの記憶内容を参照して、該当する位置へ移動する処理を実行する。また、これに際して、移動したバイト数などの計算をすることにより、ヒントテーブルを作成する。そして、作成したヒントテーブルを含む線形化ＰＤＦのデータを生成することで、前記非線形のＰＤＦのデータを当該線形化ＰＤＦのデータへ変換する。
【００４７】
本例のデータ処理装置１は、一例として、次のような画像処理装置として構成することが可能である。
本例の画像処理装置では、記憶媒体（例えば、メモリ）に記憶された１個以上の画像データを含む文書画像中における各オブジェクトデータへアクセスするに際して、所定の操作を行うことで、アクセス開始位置を所定のオブジェクトデータの開始位置とすることができる。ここで、所定のオブジェクトデータとしては、最後にアクセスしたオブジェクトデータの次に位置するオブジェクトデータや、ユーザにより指定されたオブジェクトデータや、最後にアクセスしたオブジェクトデータの次に位置するページの先頭のオブジェクトデータや、ユーザにより指定されたページの先頭のオブジェクトデータとすることができる。なお、各オブジェクトデータは、例えば、文書の属性情報、各ページの属性情報、各画像の属性情報、各画像のデータ、或いは、他の各種の属性情報などから構成される。
【００４８】
従って、本例のデータ処理装置１では、ＰＤＦのデータなどのようにオブジェクト毎にデータが格納されているようなものを対象として、上記のようなファイルポジションの制御を行うことにより、所望のオブジェクトデータへ容易にアクセスすることができ、例えば一般すなわち非線形のＰＤＦのデータを線形化ＰＤＦのデータへ変換する処理などのデータ処理の効率化を図ることができる。
【００４９】
なお、本例のデータ処理装置１では、データ処理部１３がオブジェクトデータやページの区切り位置を検出する機能により検出手段が構成されており、当該検出結果に関する情報をメモリ２２などの情報記憶手段に記憶する機能により記憶手段が構成されており、データ処理部１３のＣＰＵ２１が所定の処理プログラムに従って処理を実行する機能により処理実行手段が構成されている。
【００５０】
ここで、本発明に係るデータ処理装置などの構成としては、必ずしも以上に示したものに限られず、種々な構成が用いられてもよい。また、本発明は、例えば、本発明に係る処理を実行する方法或いは方式や、このような方法や方式を実現するためのプログラムや当該プログラムを記憶する記憶媒体（記録媒体）などとして提供することも可能であり、また、種々な装置やシステムとして提供することも可能である。
また、本発明の適用分野としては、必ずしも以上に示したものに限られず、本発明は、種々な分野に適用することが可能なものである。
【００５１】
また、本発明に係るデータ処理装置などにおいて行われる各種の処理としては、例えばプロセッサやメモリ等を備えたハードウエア資源においてプロセッサがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に格納された制御プログラムを実行することにより制御される構成が用いられてもよく、また、例えば当該処理を実行するための各機能手段が独立したハードウエア回路として構成されてもよい。
また、本発明は上記の制御プログラムを格納したフロッピー（登録商標）ディスクやＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等のコンピュータにより読み取り可能な記憶媒体や当該プログラム（自体）として把握することもでき、当該制御プログラムを当該記憶媒体からコンピュータに入力してプロセッサに実行させることにより、本発明に係る処理を遂行させることができる。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施例に係るデータ処理装置の構成例を示す図である。
【図２】ＰＤＦの一般化データの一例を示す図である。
【図３】ＰＤＦの線形化データの一例を示す図である。
【図４】ＩｎｐｕｔＣｌａｓｓの構成例を示す図である。
【図５】処理プログラムの概略的な構成の一例を示す図である。
【符号の説明】
【００５３】
１・・データ処理装置、  １１・・入力部、  １２・・出力部、  ２１・・ＣＰＵ、  ２２・・メモリ、
【図１】
2006260360.tif 000003
【図２】
2006260360.tif 000004
【図３】
2006260360.tif 000005
【図４】
2006260360.tif 000006
【図５】
2006260360.tif 000007