(57)【要約】【課題】記憶領域の増大化を抑え、画像の拡大又は縮小の処理を行う画像処理装置を提供することを目的とする。【解決手段】ｍ×ｎ（但し、ｍ、ｎは１以上の自然数）個の画素から構成される画像をｓ×ｔ（但し、ｓ、ｔは１以上の自然数）倍に拡大する画像処理装置であって、画像をａ×ｂ（但し、０＜ａ＜＝ｍ、０＜ｂ＜＝ｎ）個の画素を有する矩形領域ごとに分割して、その１つの矩形領域の画素を記憶する第一記憶装置１４と、第一記憶装置に記憶された矩形領域の画素を１／（ｓ×ｔ）領域ごとに読み出して、拡大された前記画像を記憶する第二記憶装置１６とを有することを特徴とするる画像処理装置。【選択図】　　　　　図９
2004056557.tif 000002
【特許請求の範囲】
【請求項１】
ｍ×ｎ（但し、ｍ、ｎは１以上の自然数）個の画素から構成される画像をｓ×ｔ（但し、ｓ、ｔは１以上の自然数）倍に拡大する画像処理装置であって、
前記画像をａ×ｂ（但し、０＜ａ＜＝ｍ、０＜ｂ＜＝ｎ）個の画素を有する矩形領域ごとに分割して、その１つの矩形領域の画素を記憶する第一記憶装置と、前記第一記憶装置に記憶された矩形領域の画素を１／（ｓ×ｔ）領域ごとに読み出して、拡大された前記画像を記憶する第二記憶装置とを有することを特徴とする画像処理装置。
【請求項２】
ｍ×ｎ（但し、ｍ、ｎは１以上の自然数）個の画素から構成される画像を１／（ｓ×ｔ）（但し、ｓ、ｔは１以上の自然数）倍に縮小する画像処理装置であって、
前記画像をａ×ｂ（但し、０＜ａ＜＝ｍ、０＜ｂ＜＝ｎ）個の画素を有する矩形領域ごとに分割して、その１つの矩形領域の画素を記憶する第三記憶装置と、
前記第三記憶装置に記憶された矩形領域の画素を読み出して、縮小された前記画像を１／（ｓ×ｔ）領域ごとに記憶する第四記憶装置とを有することを特徴とする画像処理装置。
【請求項３】
前記ｓ及びｔの値を、前記矩形領域ごとに設定することを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記画像を前記矩形領域ごとに処理するために、処理した矩形領域数をカウントする矩形領域カウンタと、
前記矩形領域の画素を１／（ｓ×ｔ）領域ごとにカウントする画素ブロックカウンタと、
拡大又は縮小対象の矩形領域数を設定するレジスタと、
拡大又は縮小後の矩形領域数を設定するレジスタとの内、
少なくとも１つを有することを特徴とする請求項１又は２記載の画像処理装置。
【請求項５】
ＪＰＥＧが規定する拡大又は縮小の処理を行うことを特徴とする請求項１又は２記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置に係り特に画像を拡大又は縮小する画像処理装置に関する。
【０００２】
【従来の技術】
近年、画像の拡大・縮小処理を行う画像処理装置が知られている。画像処理装置は、ライン単位で画像データにアクセスし、画像の拡大・縮小の処理を行う。図１にライン単位で画像データにアクセスするための画像データの構成の一例を示す。
【０００３】
全画像データの特定部分（図１中の斜線部分Ａ）の画像データを、拡大又は縮小しようとする場合、該特定部分を含んだ複数ライン分の画像データを記憶領域に一旦書き込む。その後、前記記憶領域に書き込んだ複数ライン分の画像データから特定部分の画像データを読み取り、該読み取った特定部分の画像データに対して拡大・縮小の処理を行う。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の方法では、特定部分の画像データを記憶する記憶領域は読み込むライン数に依存し、画像データの高密度化に伴い、記憶領域は増大する。
【０００５】
本発明は、上記の点に鑑みなされたもので、記憶領域の増大化を抑え、画像の拡大又は縮小の処理を行う画像処理装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
そこで、上記問題を解決するため、請求項１記載の発明は、ｍ×ｎ（但し、ｍ、ｎは１以上の自然数）個の画素から構成される画像をｓ×ｔ（但し、ｓ、ｔは１以上の自然数）倍に拡大する画像処理装置であって、前記画像をａ×ｂ（但し、０＜ａ＜＝ｍ、０＜ｂ＜＝ｎ）個の画素を有する矩形領域ごとに分割して、その１つの矩形領域の画素を記憶する第一記憶装置と、前記第一記憶装置に記憶された矩形領域の画素を１／（ｓ×ｔ）領域ごとに読み出して、拡大された前記画像を記憶する第二記憶装置とを有することを特徴とする。
【０００７】
また、請求項２記載の発明は、ｍ×ｎ（但し、ｍ、ｎは１以上の自然数）個の画素から構成される画像を１／（ｓ×ｔ）（但し、ｓ、ｔは１以上の自然数）倍に縮小する画像処理装置であって、前記画像をａ×ｂ（但し、０＜ａ＜＝ｍ、０＜ｂ＜＝ｎ）個の画素を有する矩形領域ごとに分割して、その１つの矩形領域の画素を記憶する第三記憶装置と、前記第三記憶装置に記憶された矩形領域の画素を読み出して、縮小された前記画像を１／（ｓ×ｔ）領域ごとに記憶する第四記憶装置とを有することを特徴とする。
【０００８】
また、請求項３記載の発明は、前記ｓ及びｔの値を、前記矩形領域ごとに設定することを特徴とする。
【０００９】
また、請求項４記載の発明は、前記画像を前記矩形領域ごとに処理するために、処理した矩形領域数をカウントする矩形領域カウンタと、前記矩形領域の画素を１／（ｓ×ｔ）領域ごとにカウントする画素ブロックカウンタと、拡大又は縮小対象の矩形領域数を設定するレジスタと、拡大又は縮小後の矩形領域数を設定するレジスタとの内、少なくとも１つを有することを特徴とする。
【００１０】
また、請求項５記載の発明は、ＪＰＥＧが規定する拡大又は縮小の処理を行うことを特徴とする。
【００１１】
請求項１記載の発明によれば、ｍ×ｎ（但し、ｍ、ｎは１以上の自然数）個の画素から構成される画像をｓ×ｔ（但し、ｓ、ｔは１以上の自然数）倍に拡大する画像処理装置であって、前記画像をａ×ｂ（但し、０＜ａ＜＝ｍ、０＜ｂ＜＝ｎ）個の画素を有する矩形領域ごとに分割して、その１つの矩形領域の画素を記憶する第一記憶装置と、前記第一記憶装置に記憶された矩形領域の画素を１／（ｓ×ｔ）領域ごとに読み出して、拡大された前記画像を記憶する第二記憶装置とを有することによって、記憶領域の増大化を抑え、画像の拡大処理を行う画像処理装置を提供することができる。
【００１２】
請求項２記載の発明によれば、ｍ×ｎ（但し、ｍ、ｎは１以上の自然数）個の画素から構成される画像を１／（ｓ×ｔ）（但し、ｓ、ｔは１以上の自然数）倍に縮小する画像処理装置であって、前記画像をａ×ｂ（但し、０＜ａ＜＝ｍ、０＜ｂ＜＝ｎ）個の画素を有する矩形領域ごとに分割して、その１つの矩形領域の画素を記憶する第三記憶装置と、前記第三記憶装置に記憶された矩形領域の画素を読み出して、縮小された前記画像を１／（ｓ×ｔ）領域ごとに記憶する第四記憶装置とを有することによって、記憶領域の増大化を抑え、画像の縮小処理を行う画像処理装置を提供することができる。なお、第三記憶装置は、前記第一記憶装置と同じものであってもよく、第四記憶装置は、前記第二記憶装置と同じものであってもよい。
【００１３】
請求項３記載の発明によれば、前記ｓ及びｔの値を、前記矩形領域ごとに設定することによって、矩形領域ごとに拡大又は縮小率を設定し、矩形領域ごとに拡大又は縮小することができる。
【００１４】
請求項４記載の発明によれば、前記画像を前記矩形領域ごとに処理するために、処理した矩形領域数をカウントする矩形領域カウンタと、前記矩形領域の画素を１／（ｓ×ｔ）領域ごとにカウントする画素ブロックカウンタと、拡大又は縮小対象の矩形領域数を設定するレジスタと、拡大又は縮小後の矩形領域数を設定するレジスタとの内、少なくとも１つを有することによって、拡大又は縮小の処理対象となっている矩形領域を拡大又は縮小することができる。
【００１５】
請求項５記載の発明によれば、ＪＰＥＧが規定する拡大又は縮小の処理に前記画像処理装置を用いることにより、記憶領域の増大化を抑え、ＪＰＥＧが規定する画像の拡大又は縮小の処理を行うことができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について図面に基づいて説明する。図２は、タイル単位で画像データにアクセスするための画像データの構成の一例を示す図である。本発明の実施の説明においては、８×８画素を１タイルとして説明を行う。本発明は、タイル単位で画像データを一時保存領域に保存して、以後の拡大・縮小の処理を行っていく。図２では、説明に必要な構成を表し、説明に必要の無い構成を省略してある。以下の図面においても同じである。
【００１７】
図３は、タイル単位の画像データのアクセス順序を説明するための図である。タイル内の数字はタイルのアクセス順序を示しており、主走査方向に１００タイル存在する例を示している。１つのタイル内は、前述した如く８×８個の画素で構成されている。読み取られたタイル順に後述する拡大・縮小等の画像変倍処理が行われる。
【００１８】
図４は、タイル単位で画像の拡大・縮小を行う拡大・縮小器１０を説明のために簡略化して表した図である。拡大・縮小器１０の詳細な説明は後に示す図９を用いて行う。
【００１９】
拡大・縮小器１０は、１ページメモリ２と、タイルメモリ３と、アドレス制御部４と、拡大・縮小後タイルメモリ５と、拡大・縮小後１ページメモリ６とから構成される。
【００２０】
初めに拡大処理の場合を例にとり、各機能を説明する。１ページメモリ２には、１ページ分の全画像データが格納されており、タイル単位のアクセスにより、タイル単位の画像データがタイルメモリ３に格納される。
【００２１】
タイル単位でタイルメモリ３に格納された画像データは、アドレス制御部４によって、拡大率に応じて読み出され、拡大・縮小後タイルメモリ５に格納される。
【００２２】
拡大・縮小後タイルメモリ５に格納された画像データは、タイル単位のアクセスで拡大・縮小後１ページメモリ６に格納される。
【００２３】
拡大・縮小後１ページメモリ６に格納された画像データが、前記１ページメモリ２に格納された１ページ分の画像データを、拡大した画像データ分格納されると、拡大後の画像データとして、拡大・縮小器１０から出力される。
【００２４】
次に縮小処理の場合を例にとり、各機能を説明する。１ページメモリ２には、上記と同様１ページ分の全画像データが格納されており、タイル単位のアクセスにより、タイル単位の画像データがタイルメモリ３に格納される。
【００２５】
タイル単位でタイルメモリ３に格納された画像データは、アドレス制御部４によって、縮小率に応じて読み出され、拡大・縮小後タイルメモリ５に格納される。
【００２６】
拡大・縮小後タイルメモリ５に格納された画像データは、縮小率に応じたブロック単位で当該メモリに格納され、タイル単位のアクセスで拡大・縮小後１ページメモリ６に格納される。
【００２７】
拡大・縮小後１ページメモリ６に格納された画像データが、前記１ページメモリ２に格納された１ページ分の画像データを、縮小した画像データ分格納されると、縮小後の画像データとして、拡大・縮小器１０から出力される。
【００２８】
前記１ページメモリ２に格納されている１ページ分の画像データを、タイル単位でアクセスし、前記タイルメモリ３に格納する例を以下で示す。
【００２９】
図５は、画像データ縮小処理実行時のタイルアクセスの順序を説明するための図である。図５の（Ａ）は、主走査方向に並んだ２つのタイルを主走査方向に１／２の縮小を行った場合のタイルアクセスの順序を示している。各タイルの画素を記憶する際に間引くことによって、主走査方向に１／２の縮小を行っている。図５の（Ｂ）は、副走査方向に並んだ２つのタイルを副走査方向に１／２の縮小を行った場合のタイルアクセスの順序を示している。各タイルごとにラインを記憶する際に間引くことによって、副走査方向に１／２の縮小を行っている。図５の（Ｃ）は、主走査・副走査、両方向に１／２の縮小を行った場合のタイルアクセスの順序を示している。各タイルをラインと画素ごとに記憶の際に間引くことによって主走査・副走査両方向に１／２の縮小を行っている。なお、記憶の際に間引くのではなく、各タイルの画素を読み出す際に間引いて読み出してもよい。
【００３０】
図６は、画像データ全体に対して主走査・副走査両方向に１／２の縮小を行った場合のタイルアクセスの順番を示した図である。前記１ページメモリ２に格納された１ページ分の全画像データは、２×２のタイルアクセスを主走査方向に繰り返し行い、主走査の端まで至ったところで副走査方向にアクセスしていく。
【００３１】
図７は、画像データ拡大処理実行時のタイルアクセスの順序を説明するための図である。図７の（Ａ）は、１つのタイルに２度アクセスすることにより、主走査方向に２／１の拡大を行った例を示している。各タイルの画素を横に連続して記憶していくことにより、主走査方向に２／１の拡大を行っている。図７の（Ｂ）は、１つのタイルに２度アクセスすることにより、副走査方向に２／１の拡大を行った例を示している。各画素を縦に連続して記憶していくことにより、副走査方向に２／１の拡大を行っている。図７の（Ｃ）は、１つのタイルに４度アクセスすることにより、主走査・副走査、両方向に２／１の拡大を行った例を示している。各タイルの画素を縦横連続して記憶していくことにおり、主走査・副走査、両方向に２／１の拡大を行っている。なお、各画素に複数回アクセスすることなく、１度のアクセスで読み込んだ画素を複数個連続させて記憶することにより、拡大を行ってもよい。
【００３２】
ここで、図７の（Ｃ）を例に取ると、前記アドレス制御部４は、主走査・副走査、両方向に２／１の拡大を行う場合、前記タイルメモリ３に格納されているタイル単位の画像データを、４×４個の画素の集まりである画像ブロック４つに分割し、該分割した画像ブロックごとにアクセスして拡大処理を行う。
【００３３】
図８は、画像データ全体に対して主走査・副走査両方向に２／１の拡大を行った場合のタイルアクセスの順番を示した図である。タイル内の数字はタイルのアクセス順序を示している。
【００３４】
上述した如く、１ページメモリ２に格納されている図８に示す１ページ分の全画像データは、主走査方向に２倍、副走査方向に２倍の拡大率に応じて１タイルを１／４に分割される。１タイル分の画像データは、該分割された各画像ブロックごとにアクセスされ、前記タイルメモリ３に格納される。
【００３５】
図９に、拡大・縮小器１０の詳細な図を示す。図４と同一部分は、同一名称を付している。
【００３６】
図９の拡大・縮小器１０は、１ページメモリ２と、１ページメモリ制御部１３と、タイルメモリ３と、アドレス制御部４と、拡大・縮小後タイルメモリ５と、拡大・縮小後１ページメモリ６と、拡大・縮小後１ページメモリ制御部１８と、拡大・縮小器制御部２０と、タイルカウンタ２１と、画素ブロックカウンタ２２と、処理対象主走査タイル数設定レジスタ２３と、処理対象副走査タイル数設定レジスタ２４と、拡大・縮小後主走査タイル数設定レジスタ２５と、拡大・縮小後主走査タイル数設定レジスタ２６と、主走査方向拡大・縮小率設定レジスタ２７と、副走査方向拡大・縮小率設定レジスタ２８とから構成されている。
【００３７】
１ページメモリ２は、後述する１ページメモリ制御部１３によって制御され、入力画像データＩ／Ｆを用いて入力された１ページの全画像データが当該メモリに格納される。
【００３８】
１ページメモリ制御部１３は、前記１ページメモリ２を制御し、入力画像データＩ／Ｆを用いて入力された１ページの全画像データを前記１ページメモリ２に格納する一方、後述する拡大・縮小器制御部２０より通知される処理対象となるタイルデータを前記１ページメモリ２から読み出し、後述するタイルメモリ３に格納する。
【００３９】
タイルメモリ３は、前記１ページメモリ制御部１３によって、前記１ページメモリ２内の画像データをタイル単位でメモリ内に保存される。
【００４０】
アドレス制御部４は、後述する拡大・縮小器制御部２０より通知された主走査・副走査方向の拡大・縮小率の情報と処理対象のタイルの位置情報とに基づき、前記タイルメモリ３の読み出しアドレスと、後述する拡大・縮小後タイルメモリ５の書き込みアドレスとを指定する。また、前記指定したタイルメモリ３の読み出しアドレスからデータを読み出して、前記指定した後述する拡大・縮小後タイルメモリ５の書き込みアドレスにデータを書き込む。
【００４１】
拡大・縮小後タイルメモリ５は、前記アドレス制御部４によって、前記タイルメモリ３より読み出されたデータを、前記アドレス制御部４によって指定された書き込みアドレスに格納される。また、後述する拡大・縮小後１ページメモリ制御部１８によって、タイル単位の画像データを読み出され、後述する拡大・縮小後１ページメモリ６に格納される。
【００４２】
拡大・縮小後１ページメモリ６は、前記拡大・縮小後タイルメモリ５に格納されている画像データを、後述する拡大・縮小後１ページメモリ制御部１８の指定によって、タイル単位で当該メモリ内に格納される。
【００４３】
拡大・縮小後１ページメモリ制御部１８は、前記拡大・縮小後タイルメモリ５に格納されている画像データを、後述する拡大・縮小器制御部２０の指定にしたがって、前記拡大・縮小後タイルメモリ５から読み出し、前記拡大・縮小後１ページデータ格納メモリ１７に書き込む。また、後述する拡大・縮小器制御部２０の指定にしたがって、前記拡大・縮小後１ページメモリ６内の１ページ分の画像データを読み出し、出力データＩ／Ｆを用いて出力する。
【００４４】
拡大・縮小器制御部２０は、処理対象主走査タイル数設定レジスタ２３、処理対象副走査タイル数設定レジスタ２４、拡大・縮小後主走査タイル数設定レジスタ２５、拡大・縮小後副走査タイル数設定レジスタ２６、主走査方向拡大・縮小率設定レジスタ２７及び副走査方向拡大・縮小率設定レジスタ２８より、拡大・縮小前の拡大・縮小の処理対象となっている主走査タイル数、拡大・縮小の処理対象となっている拡大・縮小前の副走査タイル数、拡大・縮小後の主走査タイル数、拡大・縮小後の副走査タイル数、主走査方向の拡大・縮小率及び副走査方向の拡大・縮小率の情報を取得する。
【００４５】
タイルカウンタ２１は、前記拡大・縮小器制御部２０より、現在の処理対象となっているタイルの拡大又は縮小の処理が終わり、次のタイルを処理対象とする情報を伝えられると、タイルのカウントアップを行い、該カウントアップしたタイルのカウント情報を前記拡大・縮小器制御部２０に通知する。
【００４６】
画素ブロックカウンタ２２は、前記拡大・縮小器制御部２０より、前記拡大・縮小器制御部２０が主走査方向拡大・縮小率設定レジスタ２７及び副走査方向拡大・縮小率設定レジスタ２８より取得した主走査方向の拡大・縮小率、副走査方向の拡大・縮小率の情報及び処理済みの画素ブロック等の情報を取得して、ガゾブロックのカウントアップを行い、該カウントアップした画素ブロックのカウント情報を前記拡大・縮小器制御部２０に通知する。
【００４７】
以下、画像の拡大処理を例にとって、前記拡大・縮小器１０の各構成機器の動作を説明する。
【００４８】
画像の拡大処理を行う場合は、前記１ページメモリ２に書き込まれた１ページ分の画像データの中から、前記１ページメモリ制御部１３の制御に従い、処理対象となるタイル単位の画像データを読み出し、前記タイルメモリ３に格納する。
【００４９】
ここで、前記１ページメモリ制御部１３は、前記拡大・縮小器制御部２０によって、制御されており、前記拡大・縮小器制御部２０は、前記タイルカウンタ２１、処理対象主走査タイル数設定レジスタ２３及び処理対象副走査タイル数設定レジスタ２４等から取得した情報に基づいて、前記拡大・縮小器制御部２０に対して、前記１ページメモリ２より読み出す処理対象となるタイル単位の画像データを指定する。
【００５０】
前記タイルメモリ３に格納されたタイル単位の画像データは、前記アドレス制御部４によって指定された読み出しアドレスからデータを読み出され、前記アドレス制御部４によって指定された書き込みアドレスに従って、前記拡大・縮小後タイルメモリ５に書き込まれる。
【００５１】
ここで、前記アドレス制御部４は、前記拡大・縮小器制御部２０によって、制御されており、前記拡大・縮小器制御部２０は、前記画素数カウンタ２２、拡大・縮小後主走査タイル数設定レジスタ２５、拡大・縮小後副走査タイル数設定レジスタ２６、主走査方向拡大・縮小率設定レジスタ２７及び副走査方向拡大・縮小率設定レジスタ等から取得した情報に基づいて、前記アドレス制御部４に対して、前記タイルメモリ３より読み出す読み出しアドレス、読み出し数、及び前記拡大・縮小後タイルメモリ５に書き込む書き込みアドレスを指定する。
【００５２】
前記拡大・縮小後タイルメモリ５に書き込まれた１タイル分の拡大後の画像データは、前記拡大・縮小後１ページメモリ制御部１８の制御に従い、タイル単位で読み出され、前記拡大・縮小後１ページメモリ６に格納する。
【００５３】
ここで、前記拡大・縮小後１ページメモリ制御部１８は、前記拡大・縮小器制御部２０によって、制御されており、前記拡大・縮小器制御部２０は、タイルカウンタ２１、拡大・縮小後主走査タイル数設定レジスタ２５及び拡大・縮小後副走査タイル数設定レジスタ２６等から取得した情報に基づいて、前記拡大・縮小後１ページメモリ制御部１８に対して前記拡大・縮小後タイルデータ格納メモリから読み出したタイル単位の画像データの、前記拡大・縮小後１ページメモリ６への書き込み位置を指定する。
【００５４】
前記拡大・縮小後１ページメモリ６の拡大後の画像データが前記拡大・縮小後１ページメモリ制御部１８の指定するデータ量となった場合は、前記拡大・縮小後１ページメモリ制御部１８は、出力データＩ／Ｆを用いて、画像データを出力する。
【００５５】
図１０にタイルメモリ３のアドレス構成の一例を示す。メモリ内の数字はアドレスを示しており、６４画素を保持することが可能な構成となっている。
【００５６】
以下、１タイルを８×８画素とし、画像の拡大を例にとって拡大・縮小器１０について説明する。図１１は、拡大・縮小器１０における主走査方向に２倍副走査方向に２倍の拡大処理を行った場合の一例を説明するためのフローチャートである。また、図１２に、画像データを主走査方向に２倍、副走査方向に２倍にする処理における拡大前の画像データと拡大後の画像データの一部を表した一例を示す。
【００５７】
ステップＳ１では、１ページメモリ制御部１３が、入力された１ページ分の画像データを１ページメモリ２に格納する。
【００５８】
ステップＳ１に引き続きステップＳ２に進み、ステップＳ２では、１ページメモリ制御部１３が指定したタイル単位の画像データをタイルメモリ３に格納する。
【００５９】
例えば、拡大が主走査方向に２倍、副走査方向に２倍であった場合、拡大後の画像範囲を８×８画素にする必要があるときは、４×４画素分のデータが必要となり、タイルメモリ３に格納するタイル数は１タイルとなる。
【００６０】
図１２の（Ａ）は、原画像データから読み込まれた拡大・縮小前タイルデータ格納メモリ１２内の８×８画素の画像データを表している。
【００６１】
ステップＳ２に引き続きステップＳ３に進み、ステップＳ３では、アドレス制御部４が拡大・縮小器制御部２０より指定された主走査・副走査方向の拡大率の情報とタイル数の情報とに基づき、タイルメモリ３の読み出しアドレスアドレスを指定する。
【００６２】
例えば、拡大が主走査方向に２倍、副走査方向に２倍であって、処理済のタイル数が１つも無い場合は、拡大処理は対象となるタイルデータでは始めてであると判定し、必要な画像データは、８×８画素のうちの左上隅の１／４画素となる。したがって、図１２に示すが如く、８×８画素のタイルにおける主走査方向の１ライン目のアドレスを“１”から“８”、２ライン目のアドレスを“９”から“１６”、・・・、最後のライン目のアドレスを“５７”から“６４”とすると、今回の拡大処理において必要なアドレスは“１”から“４”、“９”から“１２”、“１７”から“２０”、“２５”から“２８”の計１６アドレスとなる。
【００６３】
図１２の（Ａ）の（１）で、太枠で囲まれている範囲が今回の処理対象となっている範囲である。
【００６４】
ステップＳ３に引き続きステップＳ４に進み、ステップＳ４では、アドレス制御部４がステップＳ３において指定した読み出しアドレスに従って、指定したアドレスのデータを読み出す。
【００６５】
ステップＳ４に引き続きステップＳ５に進み、ステップＳ５では、アドレス制御部４が拡大・縮小器制御部２０より取得した主走査・副走査方向の拡大率の情報とタイル数の情報とに基づき、拡大・縮小後タイルメモリ５の書き込みアドレスを指定する。
【００６６】
ステップＳ５に引き続きステップＳ６に進み、ステップＳ６では、アドレス制御部４がステップＳ５において指定した書き込みアドレスにステップＳ４において読み出したデータを拡大・縮小後タイルメモリ５に書き込む。
【００６７】
図１２の（Ｂ）は、拡大・縮小後タイルメモリ５内の画像データを表しており、図１２の（Ｂ）の（１）は、図１２の（Ａ）の（１）の画像データを主走査方向に２倍、副走査方向に２倍して書き込んだ場合の画像データを表している。
【００６８】
ステップＳ６に引き続きステップＳ７に進み、ステップＳ７では、対象としている画像データに対して指定された拡大率の処理を行ったかどうかを判定する。
【００６９】
例えば図１２の（Ａ）の（１）を例に取った場合、１”から“４”、“９”から“１２”、“１７”から“２０”、“２５”から“２８”の計１６アドレス全てのアドレスからデータを読み取って、読み取ったデータを図１２の（Ｂ）の（１）に示されるように書き込んだかどうかを判定する。
所定のデータ全てに拡大処理を行ったと判定すると（ステップＳ７においてＹＥＳ）、ステップＳ８に進み、行っていないと判定すると（ステップＳ７においてＮＯ）、ステップＳ３に戻り、ステップＳ４からステップＳ６の処理を繰り返す。
【００７０】
ステップＳ８では、拡大処理によって、タイル単位となった拡大後の画像データを拡大・縮小後１ページメモリ制御部１８の指定に従って、拡大・縮小後１ページメモリ６に格納する。
【００７１】
ステップＳ８に引き続き、ステップＳ９に進み、ステップＳ９では、処理対象のタイルデータの全てに範囲拡大処理を行ったかどうかを判定する。
【００７２】
例えば図１２の（Ａ）の（１）を例に取った場合、タイルメモリ３に格納された１タイル分の画像データ全てに主走査方向に２倍、副走査方向に２倍の拡大処理を行ったかどうかを判定する。
【００７３】
拡大処理を行ったと判定すると（ステップＳ９においてＹＥＳ）、ステップＳ１０に進み、拡大処理を行っていないと判定すると（ステップＳ９においてＮＯ）、ステップＳ３に戻り、ステップＳ３からステップＳ８の処理を繰り返す。
【００７４】
ここで、拡大処理を行っていないと判定されてステップＳ３に進んだ場合は、再びアドレス制御部４が拡大・縮小器制御部２０より渡された情報に基づきタイルメモリ３の読み出しアドレスアドレスを指定する。今回は、主走査方向に２倍、副走査方向に２倍した処理済の拡大後のタイル数が１つあるため、タイルメモリ３において対象となる画像データは、８×８画素のうちの右上隅の１／４画素となる。したがって、今回の拡大処理に必要なアドレスは、“５”から“８”、“１３”から“１６”、“２１”から“２４”、“２９”から“３２”の計１６アドレスとなる。以後同様に、８×８画素のうちの、左下隅の１／４画素、右下隅の１／４画素と処理を繰り返すことによって、処理対象のタイルデータの全ての範囲に拡大処理が行われる。
【００７５】
ステップＳ１０では、１ページ分の全画像データ中、処理対象となる範囲全てに拡大処理を行ったかどうかを判定する。行ったと判定すると（ステップＳ１０においてＹＥＳ）、ステップＳ１１に進み、行っていないと判定すると（ステップＳ１０においてＮＯ）、ステップＳ２に戻り、ステップＳ２からステップＳ９の処理を繰り返す。
【００７６】
ステップＳ１１では、拡大・縮小後１ページメモリ制御部１８が、拡大・縮小後１ページメモリ６に格納された１ページ分の拡大処理後の画像データを読み出し、出力データＩ／Ｆを用いて出力する。
【００７７】
次に、画像の縮小を例にとって拡大・縮小器１０について説明する。図１３は、拡大・縮小器１０における主走査方向に１／２倍副走査方向に１／２倍の縮小処理を行った場合の一例を説明するためのフローチャートである。また、図１４に、画像データを主走査方向に１／２倍、副走査方向に１／２倍にする処理における縮小前の画像データと縮小後の画像データの一部を表した一例を示す。
【００７８】
ステップＳ２１では、１ページメモリ制御部１３が、入力された１ページ分の画像データを１ページメモリ２に格納する。
【００７９】
ステップＳ２１に引き続きステップＳ２２に進み、ステップＳ２２では、１ページメモリ制御部１３が指定したタイル単位の画像データをタイルメモリ３に格納する。
【００８０】
図１４の（Ａ）の（１）は、原画像データから読み込まれた拡大・縮小前タイルデータ格納メモリ１２内の８×８画素の画像データを表している。
【００８１】
ステップＳ２２に引き続きステップＳ２３に進み、ステップＳ２３では、アドレス制御部４が拡大・縮小器制御部２０より指定された主走査・副走査方向の縮小率の情報とタイル数の情報とに基づき、タイルメモリ３の読み出しアドレスアドレスを指定する。
【００８２】
例えば、縮小が主走査方向に１／２倍、副走査方向に１／２倍であって、処理済のタイル数が１つも無い場合は、縮小処理は対象となるタイルデータでは始めてであると判定し、必要な画像データは、８×８画素全体となる。したがって、図１４に示すが如く、８×８画素のタイルにおける主走査方向の１ライン目のアドレスを“１”から“８”、２ライン目のアドレスを“９”から“１６”、・・・、最後のライン目のアドレスを“５７”から“６４”とすると、今回の縮小処理において必要なアドレスは“１”、“３”、“５”、“８”、“１７”、“１９”、“２１”、“２４”、“３３”、“３５”、“３７”、“３９”、“４９”、“５１”、“５３”、“５５”の計１６アドレスとなる。
【００８３】
ステップＳ２３に引き続きステップＳ２４に進み、ステップＳ２４では、アドレス制御部４がステップＳ２３において指定した読み出しアドレスに従って、指定したアドレスのデータを読み出す。
【００８４】
ステップＳ２４に引き続きステップＳ２５に進み、ステップＳ２５では、アドレス制御部４が拡大・縮小器制御部２０より取得した主走査・副走査方向の縮小率の情報とタイル数の情報とに基づき、拡大・縮小後タイルメモリ５の書き込みアドレスを指定する。
【００８５】
ステップＳ２５に引き続きステップＳ２６に進み、ステップＳ２６では、アドレス制御部４がステップＳ２５において指定した書き込みアドレスにステップＳ２４において読み出したデータを拡大・縮小後タイルメモリ５に書き込む。
【００８６】
図１４の（Ｂ）は、拡大・縮小後タイルメモリ５内の画像データを表しており、図１４の（Ｂ）の（１）は、図１４の（Ａ）の（１）の画像データを主走査方向に１／２倍、副走査方向に１／２倍にして書き込んだ場合の画像データを表している。
【００８７】
ステップＳ２６に引き続きステップＳ２７に進み、ステップＳ２７では、対象としているタイル単位のデータに対して指定された縮小率の処理を行ったかどうかを判定する。
【００８８】
例えば、図１４の（Ａ）の（１）を例に取った場合、“１”、“３”、“５”、“８”、“１７”、“１９”、“２１”、“２４”、“３３”、“３５”、“３７”、“３９”、“４９”、“５１”、“５３”、“５５”の計１６アドレス全てのアドレスからデータを読み取って、読み取ったデータを図１２の（Ｂ）の（１）に示されるように書き込んだかどうかを判定する。
【００８９】
所定の縮小率まで処理を行ったと判定すると（ステップＳ２７においてＹＥＳ）、ステップＳ２８に進み、行っていないと判定すると（ステップＳ２７においてＮＯ）、ステップＳ２４に戻り、ステップＳ２４からステップＳ２６の処理を繰り返す。
【００９０】
ステップＳ２８では、縮小処理後のデータが１タイル分あるかどうかを判定する。例えば、図１４の（Ｂ）を例に取ると、８×８画素つまり、縮小後のデータが１タイル分あるかどうかを判定する。
【００９１】
１タイル分あると判定すると（ステップＳ２８においてＹＥＳ）、ステップＳ２９に進み、１タイル分ないと判定すると（ステップＳ２８においてＮＯ）、ステップＳ２２に戻り、ステップＳ２２からステップＳ２７の処理を繰り返す。
【００９２】
ここで、１タイル分ないと判定してステップＳ２２に進んだ場合は、再び１ページメモリ制御部１３が指定したタイル単位の画像データをタイルメモリ３に格納する。例えば図１４のＢにおいて（１）の部分のデータしか存在していなかった場合、図１４のＢの（２）に対応する部分、つまり、図１４のＡの（２）の画像データが、タイルメモリ３に格納される。
【００９３】
ステップＳ２９では、縮小処理によって、１タイル分となった縮小後の画像データを拡大・縮小後１ページメモリ制御部１８の指定に従って、拡大・縮小後１ページメモリ６に格納する。
【００９４】
ステップＳ２９に引き続き、ステップＳ３０に進み、ステップＳ３０では、１ページ分の全画像データ中、処理対象となるタイルデータ全てに縮小処理を行ったかどうかを判定する。行ったと判定すると（ステップＳ３０においてＹＥＳ）、ステップＳ３１に進み、縮小処理を行っていないと判定すると（ステップＳ３０においてＮＯ）、ステップＳ２２に戻り、ステップＳ２２からステップＳ２９の処理を繰り返す。
【００９５】
ステップＳ３１では、拡大・縮小後１ページメモリ制御部１８が、拡大・縮小後１ページメモリ６に格納された１ページ分の拡大処理後の画像データを読み出し、出力データＩ／Ｆを用いて出力する。
【００９６】
本発明は、タイル単位で拡大率及び／又は縮小率を設定することでタイルごとに拡大率及び／又は縮小率を変更することができる。
【００９７】
本発明は、タイルの大きさを８×８画素の大きさに限らない。１タイルを構成する画素は縦横共に任意の数値を取ってもよい。
【００９８】
【発明の効果】
上述の如く、本発明によれば記憶領域の増大化を抑え、画像の拡大又は縮小の処理を行う画像処理装置を提供することができる。
【００９９】
【図面の簡単な説明】
【図１】ライン単位で画像データにアクセスするための画像データの構成の一例を示す図である。
【図２】タイル単位で画像データにアクセスするための画像データの構成の一例を示す図である。
【図３】タイル単位の画像データのアクセス順序を説明するための図である。
【図４】タイル単位で画像の拡大・縮小を行う拡大・縮小器を説明のために簡略化して表した図である。
【図５】画像データ縮小処理実行時のタイルアクセスの順序を説明するための図である。
【図６】画像データ全体に対して主走査・副走査両方向に１／２の縮小を行った場合のタイルアクセスの順番を示した図である。
【図７】画像データ拡大処理実行時のタイルアクセスの順序を説明するための図である。
【図８】画像データ全体に対して主走査・副走査両方向に２／１の拡大を行った場合のタイルアクセスの順番を示した図である。
【図９】拡大・縮小器の詳細な図である。
【図１０】拡大・縮小前タイルデータ格納メモリのメモリ構成の一例を示す図である。
【図１１】拡大・縮小器における主走査方向に２倍、副走査方向に２倍の拡大処理を行った場合の一例を説明するためのフローチャートである。
【図１２】画像データを主走査方向に２倍、副走査方向に２倍に拡大する処理における拡大前の画像データと拡大後の画像データの一部を表した図である。
【図１３】拡大・縮小器における主走査方向に１／２倍、副走査方向に１／２倍の縮小処理を行った場合の一例を説明するためのフローチャートである。
【図１４】画像データを主走査方向に１／２倍、副走査方向に１／２倍に縮小する処理における縮小前の画像データと縮小後の画像データの一部を表した図である。
【符号の説明】
２　　１ページメモリ
３　　タイルメモリ
４　　アドレス制御部
５　　拡大・縮小後タイルメモリ
６　　拡大・縮小後１ページメモリ
１０　　拡大・縮小器
１３　　１ページメモリ制御部
１８　　拡大・縮小後１ページメモリ制御部
２０　　拡大・縮小器制御部
２１　　タイルカウンタ
２２　　画素ブロックカウンタ
２３　　処理対象主走査タイル数設定レジスタ
２４　　処理対象副走査タイル数設定レジスタ
２５　　拡大・縮小後主走査タイル数設定レジスタ
２６　　拡大・縮小後副走査タイル数設定レジスタ
２７　　主走査方向拡大・縮小率設定レジスタ
２８　　副走査方向拡大・縮小率設定レジスタ
【図１】
2004056557.tif 000003
【図２】
2004056557.tif 000004
【図３】
2004056557.tif 000005
【図４】
2004056557.tif 000006
【図５】
2004056557.tif 000007
【図６】
2004056557.tif 000008
【図７】
2004056557.tif 000009
【図８】
2004056557.tif 000010
【図９】
2004056557.tif 000011
【図１０】
2004056557.tif 000012
【図１１】
2004056557.tif 000013
【図１２】
2004056557.tif 000014
【図１３】
2004056557.tif 000015
【図１４】
2004056557.tif 000016