(57)【要約】【課題】  物理的に分割してワークメモリーの記憶領域を確保するメモリー領域管理を行っており、画像データを圧縮して保存する場合において、画像回転を簡単な処理で行う。【解決手段】  メモリー領域管理部３２は、物理的に確保した１または複数のブロック記憶領域を、ワークメモリーに割り当て、各ブロック記憶領域に対してディスクリプターを生成する。さらに、サブバンドデータの配列に沿って順番に、圧縮済みのサブバンドデータが記憶されているブロック記憶領域についてのディスクリプターを関連付けたサブバンド管理データを生成する。データロード部３４は、第２ワークメモリーに圧縮済みのサブバンドデータを記憶した後に、回転角に応じて、サブバンド管理データとディスクリプターとの関連付けを変更し、伸張処理部３５は、回転角に応じて、サブバンドデータ内での回転を行う。【選択図】  図１
2014146987.tif 000002
【特許請求の範囲】
【請求項１】
メモリーと、
画像データをサブバンドデータごとに圧縮し、圧縮済みの前記サブバンドデータを、前記メモリー内の第１ワークメモリーにそれぞれ記憶する圧縮処理部と、
前記画像データから得られる圧縮済みの前記サブバンドデータを前記第１ワークメモリーから読み出し、データ保存領域に保存するデータストア部と、
前記データ保存領域から前記圧縮済みのサブバンドデータを読み出し、前記メモリー内の第２ワークメモリーにそれぞれ記憶するデータロード部と、
前記第２ワークメモリーに記憶されている前記圧縮済みのサブバンドデータを伸張する伸張処理部と、
前記メモリーにおいて前記第１ワークメモリーを確保し、前記圧縮済みの前記サブバンドデータを前記第１ワークメモリーから前記データ保存領域へ保存した後に、前記第１ワークメモリーを解放し、また、前記メモリーにおいて前記第２ワークメモリーを確保するメモリー領域管理部とを備え、
前記メモリー領域管理部は、
（ａ）物理的に１または複数のブロック記憶領域を前記メモリーにおいて確保し、確保した前記１または複数のブロック記憶領域を前記第１ワークメモリーに割り当て、前記１または複数のブロック記憶領域を関連付ける第１ブロック管理データを生成し、
（ｂ）物理的に１または複数のブロック記憶領域を前記メモリーにおいて確保し、確保した前記１または複数のブロック記憶領域を前記第２ワークメモリーに割り当て、前記１または複数のブロック記憶領域を関連付ける第２ブロック管理データを生成し、
（ｃ）前記画像データ内での主走査方向および副走査方向の前記サブバンドデータの配列に沿って順番に、前記圧縮済みのサブバンドデータが記憶されている前記ブロック記憶領域についての前記ブロック管理データを関連付けたサブバンド管理データを、前記圧縮済みのサブバンドデータごとに生成し、
前記データロード部は、前記第２ワークメモリーに前記圧縮済みのサブバンドデータを記憶した後に、回転角に応じて、前記サブバンド管理データと前記ブロック管理データとの関連付けを変更し、
前記伸張処理部は、前記回転角に応じて、前記サブバンドデータ内での回転を行うこと、
を特徴とする画像処理装置。
【請求項２】
前記サブバンドデータは、前記画像データにおけるバンドデータを主走査方向において分割したデータであって、
前記メモリー領域管理部は、１つの前記バンドデータに対して、１つの前記第１ワークメモリーおよび１つの前記第２ワークメモリーを確保し、
前記サブバンド管理データは、前記サブバンド管理データに対応する前記圧縮済みのサブバンドデータの開始位置の、前記ブロック記憶領域の先頭からのオフセットを示すオフセット情報を有し、
前記データロード部は、前記サブバンド管理データと前記ブロック管理データとの関連付けを変更する際に、前記オフセット情報を、前記第２ワークメモリーに関連付けられている前記ブロック記憶領域の先頭からのオフセットの値へ変更すること、
を特徴とする請求項１記載の画像処理装置。
【請求項３】
前記サブバンド管理データは、そのサブバンド管理データに対応する前記圧縮済みのサブバンドデータのサイズを有しており、
前記メモリー領域管理部は、１つの前記バンドデータに対して、そのバンドデータに対応する前記圧縮済みのサブバンドデータの合計サイズを前記サブバンド管理データに基づいて特定し、その合計サイズに基づくサイズの記憶領域を、１つの前記第２ワークメモリーとして確保すること、
を特徴とする請求項２記載の画像処理装置。
【請求項４】
前記サブバンド管理データは、前記回転角を０度、９０度、１８０度、および２７０度のいずれに指定する回転角指定情報を有し、
前記データロード部は、前記回転角指定情報により指定された回転角に応じて、前記サブバンド管理データと前記ブロック管理データとの関連付けを変更し、
前記伸張処理部は、前記回転角指定情報により指定された回転角に応じて、前記サブバンドデータ内での回転を行うこと、
を特徴とする請求項１記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関するものである。
【背景技術】
【０００２】
ある画像処理装置では、画像を主走査方向および副走査方向に分割して得られるブロックごとに画像処理を実行する（例えば特許文献１〜３参照）。
【０００３】
そのような画像処理装置では、ブロックごとに、回転後の画像内でのブロックの記憶位置を特定し、その記憶位置に、そのブロックの画像データを記憶させて、画像の回転を行っている（例えば特許文献３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１６５６５６号公報
【特許文献２】特開２００７−１２９７４１号公報
【特許文献３】特開２００３−１７８３００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
圧縮されていないラスター画像データであれば、上述の画像処理装置にように各ブロックに対する回転処理（回転後の記憶位置の特定など）を行うことで画像回転を実行できるが、複数部印刷などの場合において、画像データを圧縮してからソートメモリーに保存し、その後、必要に応じてソートメモリーから画像データを読み出し伸張して使用する場合、一旦伸張した後でないと、上述のようにして、各ブロックに対する回転処理を行うことが困難である。
【０００６】
さらに、上述のように、画像データを圧縮する場合、バンドごとに画像データを圧縮することが考えられる。その場合、圧縮済みのバンドデータを記憶するのに十分な所定長のワークメモリーを、各バンドについて確保する必要がある。
【０００７】
しかし、図１６（Ａ）に示すように、ＲＡＭ（Random Access Memory）などの主記憶装置においてフラグメンテーションが進行し、小さい空き領域が点在する場合、図１６（Ｂ）に示すような長いワークメモリーを、連続した１つの記憶領域として確保することが困難である。そのため、図１６（Ｃ）に示すように、複数の小さい記憶領域を物理的に確保し、物理的に確保した複数の小さい記憶領域を関連付けて管理することで、論理的には、１つの長いワークメモリーを確保することがある。これにより、図１６（Ｄ）に示すように、主記憶装置の記憶領域の利用効率が向上し、記憶領域の不足による処理の中断などを発生しにくくすることができる。
【０００８】
このように、物理的に分割してワークメモリーの記憶領域を確保する場合、データ長が一定ではない圧縮済みのバンドデータが物理的には主記憶装置において点在するため、上述の各ブロックに対する回転処理を、上述の画像処理装置のように単純に行うことは困難である。
【０００９】
本発明は、上記の問題に鑑みてなされたものであり、物理的に分割してワークメモリーの記憶領域を確保するメモリー領域管理を行っており、画像データを圧縮して保存する場合において、画像回転を簡単な処理で行うことができる画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る画像処理装置は、メモリーと、画像データをサブバンドデータごとに圧縮し、圧縮済みの前記サブバンドデータを、前記メモリー内の第１ワークメモリーにそれぞれ記憶する圧縮処理部と、前記画像データから得られる圧縮済みの前記サブバンドデータを前記第１ワークメモリーから読み出し、データ保存領域に保存するデータストア部と、前記データ保存領域から前記圧縮済みのサブバンドデータを読み出し、前記メモリー内の第２ワークメモリーにそれぞれ記憶するデータロード部と、前記第２ワークメモリーに記憶されている前記圧縮済みのサブバンドデータを伸張する伸張処理部と、前記メモリーにおいて前記第１ワークメモリーを確保し、前記圧縮済みの前記サブバンドデータを前記第１ワークメモリーから前記データ保存領域へ保存した後に、前記第１ワークメモリーを解放し、また、前記メモリーにおいて前記第２ワークメモリーを確保するメモリー領域管理部とを備える。前記メモリー領域管理部は、（ａ）物理的に１または複数のブロック記憶領域を前記メモリーにおいて確保し、確保した前記１または複数のブロック記憶領域を前記第１ワークメモリーに割り当て、前記１または複数のブロック記憶領域を関連付ける第１ブロック管理データを生成し、（ｂ）物理的に１または複数のブロック記憶領域を前記メモリーにおいて確保し、確保した前記１または複数のブロック記憶領域を前記第２ワークメモリーに割り当て、前記１または複数のブロック記憶領域を関連付ける第２ブロック管理データを生成し、（ｃ）前記画像データ内での主走査方向および副走査方向の前記サブバンドデータの配列に沿って順番に、前記圧縮済みのサブバンドデータが記憶されている前記ブロック記憶領域についての前記ブロック管理データを関連付けたサブバンド管理データを、前記圧縮済みのサブバンドデータごとに生成する。そして、前記データロード部は、前記第２ワークメモリーに前記圧縮済みのサブバンドデータを記憶した後に、回転角に応じて、前記サブバンド管理データと前記ブロック管理データとの関連付けを変更し、前記伸張処理部は、前記回転角に応じて、前記サブバンドデータ内での回転を行う。
【発明の効果】
【００１１】
本発明によれば、画像処理装置において、物理的に分割してワークメモリーの記憶領域を確保するメモリー領域管理を行っており、画像データを圧縮して保存する場合において、画像回転を簡単な処理で行うことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施の形態に係る画像処理装置を有する画像形成装置の構成を示すブロック図である。
【図２】図２は、画像データおよびサブバンドデータの一例を説明する図である。
【図３】図３は、図１における画像処理装置において使用されるディスクリプターの構成例を示す図である。
【図４】図４は、図３に示すディスクリプターによるワークメモリーの管理について説明する図である。
【図５】図５は、図１における画像処理装置において使用されるサブバンド管理データによる圧縮済みサブバンドデータの管理について説明する図である。
【図６】図６は、図１における画像処理装置において使用されるサブバンド管理データの構成例を示す図である。
【図７】図７は、サブバンド管理データとディスクリプターとの間の関連付けの一例を示す図である。
【図８】図８は、図１における画像処理装置の動作について説明するフローチャートである。
【図９】図９は、ソートメモリー内に保存されている１つの画像データに対応する圧縮済みサブバンドデータの一例を示す図である。
【図１０】図１０は、ソートメモリーからのロード後のディスクリプターによるワークメモリーの管理について説明する図である。
【図１１】図１１は、回転角指定情報により指定される回転角が０度である場合における、ソートメモリーからのロード後の、サブバンド管理データとディスクリプターとの間の関連付けの一例を示す図である。
【図１２】図１２は、図２に示す画像データを９０度回転させた後の画像データの構成を示す図である。
【図１３】図１３は、９０度回転後の、各サブバンド管理データによる圧縮済みサブバンドデータの管理について説明する図である。
【図１４】図１４は、回転角指定情報により指定される回転角が９０度である場合における、ソートメモリーからのロード後の、サブバンド管理データとディスクリプターとの間の関連付けの一例を示す図である。
【図１５】図１５は、図１４に示す関連付けに対応するサブバンドデータの配列を示す図である。
【図１６】図１６は、分割して記憶領域を確保するメモリー領域管理について説明する図である。
【発明を実施するための形態】
【００１３】
以下、図に基づいて本発明の実施の形態を説明する。
【００１４】
図１は、本発明の実施の形態に係る画像処理装置を有する画像形成装置の構成を示すブロック図である。
【００１５】
画像形成装置１は、コピー機、複合機などといった装置である。画像形成装置１は、画像読取装置１１、印刷装置１２、および画像処理装置１３を有する。画像読取装置１１は、原稿画像を光学的に読み取り、原稿画像の画像データを生成する内部装置である。印刷装置１２は、画像処理装置１３による画像処理後の画像データに基づき画像を印刷する内部装置である。
【００１６】
画像処理装置１３は、演算処理装置２１、およびメモリー２２を有する。
【００１７】
演算処理装置２１は、コンピューター、ＡＳＩＣ（Application Specific Integrated Circuit）などを有し、ソフトウェアおよび／またハードウェアで各種処理部を実現する。メモリー２２は、ＲＡＭなどの主記憶装置である。
【００１８】
演算処理装置２１では、圧縮処理部３１、メモリー領域管理部３２、データストア部３３、データロード部３４、および伸張処理部３５を有する。
【００１９】
圧縮処理部３１は、画像データをサブバンドデータごとに圧縮し、圧縮済みサブバンドデータを、メモリー２２内の第１ワークメモリーにそれぞれ記憶する。なお、サブバンドデータのデータ長は一定であるが、圧縮済みサブバンドデータのデータ長は、データ値によって異なる。
【００２０】
サブバンドデータは、画像データにおけるバンドデータを主走査方向において分割したデータである。サブバンドデータは、主走査方向および副走査方向における画素数が同一である画像領域の画像データである。
【００２１】
図２は、画像データおよびサブバンドデータの一例を説明する図である。図２に示す１ページ分の画像データは、４本のバンド＃１〜＃４を有している。各バンド＃ｉ（ｉ＝１，２，３，４）は、所定本数のラインを有する。この例では、バンド＃ｉのバンドデータは、サブバンドデータＳＢｉ１〜ＳＢｉ３を有する。
【００２２】
メモリー領域管理部３２は、メモリー２２において第１ワークメモリーを確保し、圧縮済みサブバンドデータが第１ワークメモリーからソートメモリーへストアされた後に、第１ワークメモリーを解放し、圧縮済みサブバンドデータがソートメモリーからロードされる際に、メモリー２２において第２ワークメモリーを確保する。なお、ソートメモリーは、メモリー２２または図示せぬ別の記憶装置において確保されている。
【００２３】
データストア部３３は、画像データから得られる圧縮済みサブバンドデータを第１ワークメモリーから読み出し、ソートメモリーに保存する。
【００２４】
データロード部３４は、ソートメモリーから圧縮済のサブバンドデータを読み出し、メモリー２２内の第２ワークメモリーにそれぞれ記憶する。データロード部３４は、第２ワークメモリーに圧縮済みサブバンドデータを記憶した後に、回転角に応じて、サブバンド管理データとディスクリプターとの関連付けを変更する。
【００２５】
伸張処理部３５は、第２ワークメモリーに記憶されている圧縮済みサブバンドデータを伸張する。伸張処理部３５は、回転角に応じて、サブバンドデータ内での回転を行う。
【００２６】
以下に、メモリー領域管理部３２によるメモリー領域管理について説明する。
【００２７】
メモリー領域管理部３２は、物理的に１または複数のブロック記憶領域をメモリー２２において確保し、確保した１または複数のブロック記憶領域を第１ワークメモリーに割り当て、確保した１または複数のブロック記憶領域を関連付けるディスクリプターを生成する。
【００２８】
また、メモリー領域管理部３２は、物理的に１または複数のブロック記憶領域をメモリー２２において確保し、確保した１または複数のブロック記憶領域を第２ワークメモリーに割り当て、確保した１または複数のブロック記憶領域を関連付けるディスクリプターを生成する。
【００２９】
ここで、ディスクリプターの詳細について説明する。
【００３０】
図３は、図１における画像処理装置１３において使用されるディスクリプターの構成例を示す図である。
【００３１】
ディスクリプター４１は、データ開始アドレスと、データサイズと、後続ディスクリプターアドレスと、最終ディスクリプターフラグとを有する。
【００３２】
「データ開始アドレス」は、ブロック記憶領域の先頭アドレスを示す。
【００３３】
「データサイズ」は、ブロック記憶領域に記憶されているデータのデータサイズを示す。
【００３４】
「後続ディスクリプターアドレス」は、次のディスクリプターの先頭アドレスを示す。なお、次のディスクリプターが存在しない場合、後続ディスクリプターアドレスには、ＮＵＬＬがセットされる。
【００３５】
「最終ディスクリプターフラグ」は、最終ディスクリプターか否かを示すフラグである。次のディスクリプターが存在する場合には、最終ディスクリプターフラグには、１がセットされ、次のディスクリプターが存在しない場合には、最終ディスクリプターフラグには、ゼロがセットされる。
【００３６】
つまり、ディスクリプター４１が複数ある場合には、リスト構造により、複数のディスクリプター４１が関連付けられる。
【００３７】
図４は、図３に示すディスクリプターによるワークメモリーの管理について説明する図である。
【００３８】
この実施の形態では、メモリー領域管理部３２は、１つのバンドデータに対して、１つの第１ワークメモリーおよび１つの第２ワークメモリーを確保する。例えば図２に示すバンド＃１〜＃４に対して、図４に示すように、第１ワークメモリー４３−１〜４３−４が確保される。第１ワークメモリー４３−１〜４３−４は、同一のサイズを有する。
【００３９】
図４では、１つのブロック記憶領域４２−１が、第１ワークメモリー４３−１に割り当てられ、１つのブロック記憶領域４２−２が、第１ワークメモリー４３−２に割り当てられ、２つのブロック記憶領域４２−３ａ，４２−３ｂが、第１ワークメモリー４３−３に割り当てられ、２つのブロック記憶領域４２−４ａ，４２−４ｂが、第１ワークメモリー４３−４に割り当てられている。
【００４０】
ブロック記憶領域４２−１，４２−２，４２−３ａ，４２−３ｂ，４２−４ａ，４２−４ｂに対応して、ディスクリプター４１−１，４１−２，４１−３ａ，４１−３ｂ，４１−４ａ，４１−４ｂが生成される。
【００４１】
ディスクリプター４１−１では、「データ開始アドレス」に、ブロック記憶領域４２−１の先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−２の先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ１３がブロック記憶領域４２−１に記憶され、圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ１３の合計サイズが、ディスクリプター４１−１の「データサイズ」にセットされる。
【００４２】
ディスクリプター４１−２では、「データ開始アドレス」に、ブロック記憶領域４２−２の先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−３ａの先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ２１〜ＣＳＢ２３がブロック記憶領域４２−２に記憶され、圧縮済みサブバンドデータＣＳＢ２１〜ＣＳＢ２３の合計サイズが、ディスクリプター４１−２の「データサイズ」にセットされる。
【００４３】
ディスクリプター４１−３ａでは、「データ開始アドレス」に、ブロック記憶領域４２−３ａの先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−３ｂの先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ３１，ＣＳＢ３２がブロック記憶領域４２−３ａに記憶され、圧縮済みサブバンドデータＣＳＢ３１，ＣＳＢ３２の合計サイズが、ディスクリプター４１−３ａの「データサイズ」にセットされる。
【００４４】
ディスクリプター４１−３ｂでは、「データ開始アドレス」に、ブロック記憶領域４２−３ｂの先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−４ａの先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ３３がブロック記憶領域４２−３ｂに記憶され、圧縮済みサブバンドデータＣＳＢ３３のサイズが、ディスクリプター４１−３ｂの「データサイズ」にセットされる。
【００４５】
つまり、この例では、第１ワークメモリー４３−３内で、圧縮済みサブバンドデータＣＳＢ３１，ＣＳＢ３２と圧縮済みサブバンドデータＣＳＢ３３とが異なるブロック記憶領域４２−３ａ，４２−３ｂに記憶されている。
【００４６】
ディスクリプター４１−４ａでは、「データ開始アドレス」に、ブロック記憶領域４２−４ａの先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−４ｂの先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ４１がブロック記憶領域４２−４ａに記憶され、圧縮済みサブバンドデータＣＳＢ４１のサイズが、ディスクリプター４１−４ａの「データサイズ」にセットされる。
【００４７】
ディスクリプター４１−４ｂでは、「データ開始アドレス」に、ブロック記憶領域４２−４ｂの先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ＮＵＬＬがセットされ、「最終ディスクリプターフラグ」に０がセットされる。圧縮済みサブバンドデータＣＳＢ４２，ＣＳＢ４３がブロック記憶領域４２−４ｂに記憶され、圧縮済みサブバンドデータＣＳＢ４２，ＣＳＢ４３の合計サイズが、ディスクリプター４１−４ｂの「データサイズ」にセットされる。
【００４８】
つまり、この例では、第１ワークメモリー４３−４内で、圧縮済みサブバンドデータＣＳＢ４１と圧縮済みサブバンドデータＣＳＢ４２，ＣＳＢ４３とが異なるブロック記憶領域４２−４ａ，４２−４ｂに記憶されている。
【００４９】
なお、ここでは、第１ワークメモリーに対するディスクリプターについて説明しているが、第２ワークメモリーに対するディスクリプターについても同様である。
【００５０】
さらに、メモリー領域管理部３２は、画像データ内での主走査方向および副走査方向のサブバンドデータの配列に沿って順番に、圧縮済みサブバンドデータが記憶されているブロック記憶領域についてのディスクリプターを関連付けたサブバンド管理データを、圧縮済みサブバンドデータごとに生成する。
【００５１】
ここで、サブバンド管理データの詳細について説明する。
【００５２】
サブバンド管理データは、各圧縮済みサブバンドデータに対して生成され、圧縮済みサブバンドデータと同数のサブバンド管理データが配列とされる。図５は、図１における画像処理装置１３において使用されるサブバンド管理データによる圧縮済みサブバンドデータの管理について説明する図である。
【００５３】
例えば図２に示すサブバンドデータＳＢ１１〜ＳＢ４３の場合、図５に示すように、１２個の圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ４３が生成されるため、１２個のサブバンド管理データ５１−１〜５１−１２が生成される。
【００５４】
第１〜第３のサブバンド管理データ５１−１〜５１−３は、主走査方向に沿って圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ１３を管理する。
【００５５】
第４〜第６のサブバンド管理データ５１−４〜５１−６は、副走査方向における次のバンドにおいて主走査方向に沿って圧縮済みサブバンドデータＣＳＢ２１〜ＣＳＢ２３を管理する。
【００５６】
第７〜第９のサブバンド管理データ５１−７〜５１−９は、副走査方向における次のバンドにおいて主走査方向に沿って圧縮済みサブバンドデータＣＳＢ３１〜ＣＳＢ３３を管理する。
【００５７】
第１０〜第１２のサブバンド管理データ５１−１０〜５１−１２は、副走査方向における次のバンドにおいて主走査方向に沿って圧縮済みサブバンドデータＣＳＢ４１〜ＣＳＢ４３を管理する。
【００５８】
図６は、図１における画像処理装置１３において使用されるサブバンド管理データの構成例を示す図である。
【００５９】
サブバンド管理データ５１−ｉ（ｉ＝１，・・・，１２）は、圧縮済みサブバンドデータサイズと、オフセット情報と、回転角指定情報と、ディスクリプターアドレスとを有する。
【００６０】
「圧縮済みサブバンドデータサイズ」は、このサブバンド管理データ５１−ｉにより管理される圧縮済みサブバンドデータＣＳＢｊｋのサイズを示す。
【００６１】
「オフセット情報」は、その圧縮済みサブバンドデータＣＳＢｊｋの開始位置の、ブロック記憶領域（「ディスクリプターアドレス」が指すディスクリプターにより管理されるブロック記憶領域）の先頭からのオフセットを示す。
【００６２】
「回転角指定情報」は、画像データの画像についての回転角を０度、９０度、１８０度、および２７０度のいずれに指定する情報である。例えば、０度、９０度、１８０度、および２７０度に対応して０，１，２，３が「回転角指定情報」にセットされる。
【００６３】
「ディスクリプターアドレス」は、その圧縮済みサブバンドデータＣＳＢｊｋ（の先頭部分）が記憶されているブロック記憶領域を管理するディスクリプターの先頭アドレスを示す。
【００６４】
図７は、サブバンド管理データとディスクリプターとの間の関連付けの一例を示す図である。
【００６５】
例えば図４に示すように、圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ１３は、第１ワークメモリー４３−１のブロック記憶領域４２−１に記憶されている。このため、圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ１３の「ディスクリプターアドレス」は、ブロック記憶領域４２−１のディスクリプター４１−１の先頭アドレスを示す。
【００６６】
また、圧縮済みサブバンドデータＣＳＢ２１〜ＣＳＢ２３は、第１ワークメモリー４３−２のブロック記憶領域４２−２に記憶されている。このため、圧縮済みサブバンドデータＣＳＢ２１〜ＣＳＢ２３の「ディスクリプターアドレス」は、ブロック記憶領域４２−２のディスクリプター４１−２の先頭アドレスを示す。
【００６７】
また、圧縮済みサブバンドデータＣＳＢ３１，ＣＳＢ３２は、第１ワークメモリー４３−３のブロック記憶領域４２−３ａに記憶されている。このため、圧縮済みサブバンドデータＣＳＢ３１，ＣＳＢ３２の「ディスクリプターアドレス」は、ブロック記憶領域４２−３ａのディスクリプター４１−３ａの先頭アドレスを示す。圧縮済みサブバンドデータＣＳＢ３３は、第１ワークメモリー４３−３のブロック記憶領域４２−３ｂに記憶されている。このため、圧縮済みサブバンドデータＣＳＢ３３の「ディスクリプターアドレス」は、ブロック記憶領域４２−３ｂのディスクリプター４１−３ｂの先頭アドレスを示す。
【００６８】
また、圧縮済みサブバンドデータＣＳＢ４１は、第１ワークメモリー４３−４のブロック記憶領域４２−４ａに記憶されている。このため、圧縮済みサブバンドデータＣＳＢ４１の「ディスクリプターアドレス」は、ブロック記憶領域４２−４ａのディスクリプター４１−４ａの先頭アドレスを示す。圧縮済みサブバンドデータＣＳＢ４２，ＣＳＢ４３は、第１ワークメモリー４３−４のブロック記憶領域４２−４ｂに記憶されている。このため、圧縮済みサブバンドデータＣＳＢ４２，ＣＳＢ４３の「ディスクリプターアドレス」は、ブロック記憶領域４２−４ｂのディスクリプター４１−４ｂの先頭アドレスを示す。
【００６９】
図７に示すサブバンド管理データとディスクリプターとの間の関連付けは、第１ワークメモリー４３−１〜４３−４に圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ４３が記憶されている場合のものである。
【００７０】
第１ワークメモリー４３−１〜４３−４が一旦解放され、新たに第２ワークメモリーが確保され、第２ワークメモリーに圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ４３がロードされる際には、サブバンド管理データとディスクリプターとの間の関連付けは更新される。
【００７１】
データロード部３４は、サブバンド管理データ５１とディスクリプターとの関連付けを変更する際に、オフセット情報を、第２ワークメモリーに関連付けられているブロック記憶領域の先頭からのオフセットの値へ変更する。
【００７２】
メモリー領域管理部３２は、１つのバンドデータに対して、そのバンドデータに対応する圧縮済みサブバンドデータの合計サイズをサブバンド管理データ５１に基づいて特定し、その合計サイズに基づくサイズの記憶領域を、１つの第２ワークメモリーとして確保する。
【００７３】
データロード部３４は、回転角指定情報により指定された回転角に応じて、サブバンド管理データ５１とディスクリプターとの関連付けを変更し、伸張処理部３５は、回転角指定情報により指定された回転角に応じて、サブバンドデータ内での回転を行う。
【００７４】
次に、上記画像処理装置１３の動作について説明する。
【００７５】
図８は、図１における画像処理装置１３の動作について説明するフローチャートである。
【００７６】
バンドごとに、メモリー領域管理部３２は、メモリー２２の空き領域からブロック記憶領域を確保して第１ワークメモリーに割り当て、各ブロック記憶領域に対するディスクリプターを生成するとともに、各サブバンドに対するサブバンド管理データを生成する（ステップＳ１）。
【００７７】
このとき、各サブバンド管理データ５１−ｉにおける「ディスクリプターアドレス」および「回転角指定情報」の値がセットされる。「回転角指定情報」の値は、例えば、コピーや印刷などのジョブの設定に基づいて特定される。
【００７８】
圧縮処理部３１は、各バンドについてのサブバンドデータＳＢｉｊを圧縮し、第１ワークメモリーに記憶する（ステップＳ２）。
【００７９】
メモリー領域管理部３２は、各サブバンド管理データ５１−ｉにおける「圧縮済みサブバンドデータサイズ」および「オフセット情報」の値がセットされる（ステップＳ３）。
【００８０】
例えば図２に示すサブバンドデータＳＢ１１〜ＳＢ４３については、この時点で、ディスクリプター４１−１〜４１−４ｂが、図４に示す状態となり、サブバンド管理データ５１−１〜５１−１２は、図５および図７に示す状態となる。
【００８１】
次に、データストア部３３は、主走査方向および副走査方向に沿って順番に、第１ワークメモリーから圧縮済みサブバンドデータＣＳＢｉｊを読み出し連続させて、ソートメモリーにストアする（ステップＳ４）。
【００８２】
図９は、ソートメモリー内に保存されている１つの画像データに対応する圧縮済みサブバンドデータの一例を示す図である。例えば図２に示すサブバンドデータＳＢ１１〜ＳＢ４３を圧縮した圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ４３が、ソートメモリーでは、図９に示すように連続して記憶される。
【００８３】
このようにして、１ページ分の画像データが圧縮された状態でソートメモリーに保存される。ソートメモリーに圧縮済みサブバンドデータＣＳＢｉｊが保存された後、第１ワークメモリーは解放され、第１ワークメモリーのブロック記憶領域についてのディスクリプターは破棄される。その後、この画像データは、印刷などで必要になると、ソートメモリーから読み出されて伸張され、回転が必要な場合には伸張とともに画像の回転を行う。
【００８４】
その場合、まず、バンドごとに、メモリー領域管理部３２は、サブバンド管理データ５１−ｉを参照して各圧縮済みサブバンドデータＣＳＢｉｊのサイズを特定し、圧縮済みサブバンドデータＣＳＢｉｊに必要となるブロック記憶領域を確保して第２ワークメモリーに割り当て、各ブロック記憶領域に対するディスクリプターを生成する（ステップＳ５）。
【００８５】
データロード部３４は、圧縮済みサブバンドデータＣＳＢｉｊを順番にソートメモリーから読み出し、第２ワークメモリーにロードする（ステップＳ６）。
【００８６】
図１０は、ソートメモリーからのロード後のディスクリプターによるワークメモリーの管理について説明する図である。
【００８７】
図９に示すようにソートメモリーに保存された圧縮済みサブバンドデータＣＳＢ１１〜ＣＳＢ４３がロードされる場合、例えば図１０に示すように、２つのブロック記憶領域４２−５ａ，４２−５ｂが、第２ワークメモリー４３−５に割り当てられ、１つのブロック記憶領域４２−６が、第２ワークメモリー４３−６に割り当てられ、２つのブロック記憶領域４２−７ａ，４２−７ｂが、第２ワークメモリー４３−７に割り当てられ、１つのブロック記憶領域４２−８が、第２ワークメモリー４３−８に割り当てられている。
【００８８】
そして、ブロック記憶領域４２−５ａ，４２−５ｂ，４２−６，４２−７ａ，４２−７ｂ，４２−８に対応して、ディスクリプター４１−５ａ，４１−５ｂ，４１−６，４１−７ａ，４１−７ｂ，４１−８が生成される。
【００８９】
ディスクリプター４１−５ａでは、「データ開始アドレス」に、ブロック記憶領域４２−５ａの先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４２−５ｂの先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ１１，ＣＳＢ１２（一部）がブロック記憶領域４２−５ａに記憶され、圧縮済みサブバンドデータＣＳＢ１１，ＣＳＢ１２（一部）の合計サイズが、ディスクリプター４１−５ａの「データサイズ」にセットされる。
【００９０】
ディスクリプター４１−５ｂでは、「データ開始アドレス」に、ブロック記憶領域４２−５ｂの先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−６の先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ１２の残りと圧縮済みサブバンドデータＣＳＢ１３がブロック記憶領域４２−５ｂに記憶されているときに、圧縮済みサブバンドデータＣＳＢ１２の残りと圧縮済みサブバンドデータＣＳＢ１３の合計サイズが、ディスクリプター４１−５ｂの「データサイズ」にセットされる。
【００９１】
つまり、この例では、第２ワークメモリー４３−５内で、圧縮済みサブバンドデータＣＳＢ１１，ＣＳＢ１２（一部）と圧縮済みサブバンドデータＣＳＢ１２（残り），ＣＳＢ１３とが異なるブロック記憶領域４２−５ａ，４２−５ｂに記憶される。
【００９２】
ディスクリプター４１−６では、「データ開始アドレス」に、ブロック記憶領域４２−６の先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−７ａの先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ２１〜ＣＳＢ２３がブロック記憶領域４２−６に記憶され、圧縮済みサブバンドデータＣＳＢ２１〜ＣＳＢ２３の合計サイズが、ディスクリプター４１−６の「データサイズ」にセットされる。
【００９３】
ディスクリプター４１−７ａでは、「データ開始アドレス」に、ブロック記憶領域４２−７ａの先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−７ｂの先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ３１，ＣＳＢ３２がブロック記憶領域４２−７ａに記憶され、圧縮済みサブバンドデータＣＳＢ３１，ＣＳＢ３２の合計サイズが、ディスクリプター４１−７ａの「データサイズ」にセットされる。
【００９４】
ディスクリプター４１−７ｂでは、「データ開始アドレス」に、ブロック記憶領域４２−７ｂの先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ディスクリプター４１−８の先頭アドレスがセットされ、「最終ディスクリプターフラグ」に１がセットされる。圧縮済みサブバンドデータＣＳＢ３３がブロック記憶領域４２−７ｂに記憶され、圧縮済みサブバンドデータＣＳＢ３３のサイズが、ディスクリプター４１−７ｂの「データサイズ」にセットされる。
【００９５】
つまり、この例では、第２ワークメモリー４３−７内で、圧縮済みサブバンドデータＣＳＢ３１，ＣＳＢ３２と圧縮済みサブバンドデータＣＳＢ３３とが異なるブロック記憶領域４２−７ａ，４２−７ｂに記憶されている。
【００９６】
ディスクリプター４１−８では、「データ開始アドレス」に、ブロック記憶領域４２−８の先頭アドレスがセットされ、「後続ディスクリプターアドレス」に、ＮＵＬＬがセットされ、「最終ディスクリプターフラグ」に０がセットされる。圧縮済みサブバンドデータＣＳＢ４１がブロック記憶領域４２−８に記憶され、圧縮済みサブバンドデータＣＳＢ４１のサイズが、ディスクリプター４１−８の「データサイズ」にセットされる。
【００９７】
次に、データロード部３４は、サブバンド管理データ５１−ｉを更新して、確保された第２ワークメモリーに合わせて生成されたディスクリプターを、サブバンド管理データ５１−ｉに関連付ける（ステップＳ７）。その際、データロード部３４は、サブバンド管理データ５１−ｉから回転角指定情報を読み出し、その回転角指定情報により指定される回転角に対応させて、そのディスクリプターをサブバンド管理データ５１−ｉに関連付ける。さらに、このとき、サブバンド管理データ５１−ｉ内のオフセット情報を併せて更新する。
【００９８】
例えば、図２に示す画像データの場合、回転角指定情報により指定される回転角が０度であれば（つまり、回転なしであれば）、ロード後の伸張で得られるサブバンドデータＳＢ１１〜ＳＢ４３の配列は、図２に示すようになる。このため、回転角指定情報により指定される回転角が０度である場合、図１１に示すように、ディスクリプター４１−５ａ〜４１−８がサブバンド管理データ５１−１〜５１−１２に関連付けられる。図１１は、回転角指定情報により指定される回転角が０度である場合（つまり、回転なしの場合）における、ソートメモリーからのロード後の、サブバンド管理データとディスクリプターとの間の関連付けの一例を示す図である。
【００９９】
一方、図２に示す画像データの場合において、回転角指定情報により指定される回転角が９０度であるときには、ロード後に伸張されるサブバンドデータＳＢ１１〜ＳＢ４３の配列は、図１２に示すようになる。図１２は、図２に示す画像データを９０度回転させた後の画像データの構成を示す図である。
【０１００】
図１２に示すように、サブバンドデータＳＢ１１〜ＳＢ４３の配列が変更されるため、各サブバンド管理データ５１−ｉが管理する圧縮済みサブバンドデータＣＳＢｊｋも、図１３に示すように変更される。図１３は、９０度回転後の、各サブバンド管理データによる圧縮済みサブバンドデータの管理について説明する図である。
【０１０１】
つまり、この場合、サブバンド管理データ５１−１〜５１−４は、圧縮済みサブバンドデータＣＳＢ１３，ＣＳＢ２３，ＣＳＢ３３，ＣＳＢ４３を管理し、サブバンド管理データ５１−５〜５１−８は、圧縮済みサブバンドデータＣＳＢ１２，ＣＳＢ２２，ＣＳＢ３２，ＣＳＢ４２を管理し、サブバンド管理データ５１−９〜５１−１２は、圧縮済みサブバンドデータＣＳＢ１１，ＣＳＢ２１，ＣＳＢ３１，ＣＳＢ４１を管理する。
【０１０２】
そして、この場合、サブバンド管理データ５１−１〜５１−１２には、図１４に示すように、ディスクリプター４１−５ａ〜４１−８が関連付けられる。図１４は、回転角指定情報により指定される回転角が９０度である場合における、ソートメモリーからのロード後の、サブバンド管理データとディスクリプターとの間の関連付けの一例を示す図である。
【０１０３】
つまり、第２ワークメモリーへの圧縮済みサブバンドデータＣＳＢｊｋのロード時に生成されるディスクリプターをサブバンド管理データ５１−１〜５１−１２に関連付ける際に、回転角に応じた関連付けとするため、メモリー２２内での圧縮済みサブバンドデータＣＳＢｊｋ（あるいはサブバンドデータＳＢｊｋ）自体の配置を回転角に応じて変更する必要がない。
【０１０４】
そして、伸張処理部３５は、サブバンド管理データ５１−ｉを順番に参照し、サブバンド管理データ５１−ｉに対応する圧縮済みサブバンドデータＣＳＢｊｋを第２ワークメモリーから読み出して伸張し（ステップＳ８）、伸張後のサブバンドデータＳＢｊｋを、回転角に応じてサブバンドデータＳＢｊｋに対して回転処理を行い、回転角に応じたサブバンドデータの記憶位置に記憶する（ステップＳ９）。
【０１０５】
例えば、図２に示す画像データを９０度回転させると、回転後のサブバンドデータの配列は、図１５に示すようになる。図１５は、図１４に示す関連付けに対応するサブバンドデータ（つまり、９０度回転後のサブバンドデータ）の配列を示す図である。そのため、各サブバンドデータＳＢｊｋを９０度回転させた上でサブバンドデータの記憶位置に記憶させることで、図１２に示すようになる。
【０１０６】
以上のように、上記実施の形態によれば、メモリー領域管理部３２は、（ａ）メモリー２２において物理的に確保した１または複数のブロック記憶領域を第１ワークメモリーに割り当て、各ブロック記憶領域に対してディスクリプターを生成し、（ｂ）メモリー２２において物理的に確保した１または複数のブロック記憶領域を第２ワークメモリーに割り当て、各ブロック記憶領域に対してディスクリプターを生成し、（ｃ）画像データ内での主走査方向および副走査方向のサブバンドデータの配列に沿って順番に、圧縮済みのサブバンドデータが記憶されているブロック記憶領域についてのディスクリプターを関連付けたサブバンド管理データを生成する。そして、データロード部３４は、第２ワークメモリーに圧縮済みのサブバンドデータを記憶した後に、回転角に応じて、サブバンド管理データとディスクリプターとの関連付けを変更し、伸張処理部３５は、回転角に応じて、サブバンドデータ内での回転を行う。
【０１０７】
これにより、物理的に分割してワークメモリーの記憶領域を確保するメモリー領域管理を行っており、画像データを圧縮して保存する場合において、画像回転を簡単な処理で行うことができる。
【０１０８】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【産業上の利用可能性】
【０１０９】
本発明は、例えば、コピー機、複合機などの画像形成装置内の画像処理装置に適用可能である。
【符号の説明】
【０１１０】
１３  画像処理装置
２２  メモリー
３１  圧縮処理部
３２  メモリー領域管理部
３３  データストア部
３４  データロード部
３５  伸張処理部
４１，４１−１〜４１−４ｂ，４１−５ａ〜４１−８  ディスクリプター（ブロック管理データの一例）
４２−１〜４２−４ｂ，４２−５ａ〜４２−８  ブロック記憶領域
４３−１〜４３−４  第１ワークメモリー
４３−５〜４３−８  第２ワークメモリー
５１，５１−１〜５１−１２  サブバンド管理データ
【図１】
2014146987.tif 000003
【図２】
2014146987.tif 000004
【図３】
2014146987.tif 000005
【図４】
2014146987.tif 000006
【図５】
2014146987.tif 000007
【図６】
2014146987.tif 000008
【図７】
2014146987.tif 000009
【図８】
2014146987.tif 000010
【図９】
2014146987.tif 000011
【図１０】
2014146987.tif 000012
【図１１】
2014146987.tif 000013
【図１２】
2014146987.tif 000014
【図１３】
2014146987.tif 000015
【図１４】
2014146987.tif 000016
【図１５】
2014146987.tif 000017
【図１６】
2014146987.tif 000018