画像処理装置及びその制御方法
【課題】 矩形画像からラスタ画像データへの変換処理において、メモリ容量が増大することを避けつつ、メモリアクセスの際のアドレッシングを単純化する。
【解決手段】 n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置とその制御方法であって、第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段と、第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御手段とを有する。
【解決手段】 n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置とその制御方法であって、第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段と、第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御手段とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の矩形画像を入力して点順次のラスタイメージデータへ変換する画像処理装置及びその制御方法に関するものである。
【背景技術】
【0002】
複数の矩形画像で構成されるページ単位の画像データを、画像データ用のバッファメモリを用いてライン単位の画像データに変換して出力する場合を考える。この場合、矩形画像を単位として入力されるページ単位の画像データを、ライン単位の画像データへ変換する必要がある。この変換方法の最も一般的なものとしては、(矩形画像に含まれる画像データのライン数)×(1ライン分の画素数)に相当するデータ量の2倍のバッファメモリを用い、ダブルバッファ方式により変換する方法がある。
【0003】
また他の方法としては、(矩形画像に含まれる画像データのライン数)×(1ライン分の画素数)に相当する容量のバッファメモリを用いて、シングルバッファ方式で矩形画像からラスタ画像データへ変換する方法がある。この方法では、バッファメモリから1ライン分の画像データを読み出した後に、読み出したアドレスに対して、次の矩形画像を書き込むように処理している(特許文献1,2参照)。
【0004】
次に、従来例1として、前者のダブルバッファ方式による矩形画像からライン単位の画像データへの変換処理について説明する。
【0005】
この例における矩形画像は、矩形画像に含まれる画像データのライン数は4ラインであり、各ラインが4画素からなるものとする。そうすると、矩形画像は、4画素×4画素の合計16画素の画素データから構成されることとなる。
【0006】
図2(A),(B)は、n×n画素からなる矩形画像を示す図で、図2(A)は、バッファメモリに最初に入力される矩形画像を示し、図2(B)はバッファメモリに次に入力される矩形画像を示す。
【0007】
バッファメモリに入力される画素データの順番は、図の数字の順番通りである。即ち、1つの矩形画像内で1ライン分(n×n×m画素)の画素データを入力すると、次のラインの画素データを入力している。即ち、図2(A)の例では、1ライン目の画素1〜画素4の画素データを入力すると、次に2ライン目の画素5〜画素8の画素データを入力する。こうして画素16までをバッファメモリに入力すると、図2(A)に示す矩形画像の入力が完了する。そして次に図2(B)に示す矩形画像が入力されると画素17〜画素32の画素データも同様の順番で入力される。尚、図2では、2つの矩形画像のみを示しているが、3番目の矩形画像も同様に、画素33乃至画素48の画素データが図2に示す矩形画像の画素の順番に配置されている。そしてそれ以降の矩形画素に関しても同様である。
【0008】
図3は、ダブルバッファ方式のメモリ回路構成を示すブロック図である。
【0009】
420,430はそれぞれ図2に示す(矩形画像に含まれる画像データのライン数)×(1ライン分の画素数(x))の容量を有するラインバッファメモリである。メモリ制御部410は、ラインバッファ420,430への矩形画像の書込み、及びラインバッファメモリからの画像データの読み出しを制御する。ここでx=32のとき、ページ単位の画像データの1ライン分に含まれる32画素に相当する8つの矩形画像を「1矩形画像アレイ」と表現する。この場合にラインバッファメモリに格納できる全画素数は32×8=256画素となる。この場合、ラインバッファ420に256画素(8矩形画像分)の画像データを書き込むと、書込み制御部は、ラインバッファ430に切替えて、次から入力される矩形画像を、ラインバッファ430に格納する。一方、読み出し制御部は、書込み制御部が書き込みを完了したラインバッファ420から画像データをライン単位で読み出すように動作する。
【0010】
図4は、この書込み制御部によるラインバッファメモリへの矩形画像の書込み順を説明する図であり、図5は、読み出し制御部によるラインバッファメモリからの画像データの読み出し順を説明する図である。このように画像データの書込み時は、矩形画像の単位で画像データをラインバッファメモリに書込み、読み出し時には、ライン単位で画像データを読み出している。しかし、このようなダブルバッファ方式の場合には、1ラインを32画素とした4ライン分のラインバッファが2つ必要になり、矩形画像のサイズが大きくなればなるほど、大容量のラインバッファメモリが必要になりコストアップの要因になっている。
【0011】
次に従来例2として、シングルバッファ(例えばラインバッファ420のみ)による矩形画像からライン単位の画像データへの変換処理について説明する。
【0012】
最初の1矩形画像アレイの画像データの書込みの順序は、前述の図4と同じである。そして、その最初の1矩形画像アレイの画像データの読み出しの順序は図5に示す通りである。但し、ここではシングルバッファであるため、このラインバッファメモリからライン単位で画像データを読み出したときに次に入力される矩形画像を格納するアドレスが異なってくる。
【0013】
図6は、ラインバッファメモリから1ライン分の画像データを読み出した後に、読み出したアドレスに対して、次に入力された2つの矩形画像が格納された状態を示す図である。
【0014】
ここではライン600に、2つの矩形画像(図2に示す)の画素1乃至画素16と、画素17乃至画素32までが格納されている。以下同様にして、各1主走査分の画像データの読み出しが完了して最初の1矩形画像アレイの読み出しが完了した後には、各ライン601〜603のそれぞれには、画素33〜画素64、画素65〜画素96、画素97〜画素128の画素データが格納されている。
【0015】
図7は、2番目の1矩形画像アレイの画像データの読み出しを説明する図である。
【0016】
1行目の画像データの読み出し時には、1番目の矩形画像の画素1〜画素4、2番目の矩形画像の画素17〜画素20、3番目の矩形画像の画素33〜画素36、以下同様にして8番目の矩形画像の画素113〜画素116までが読み出される。この読み出し順は、図7の点線で示すようになる。2行目の画像データ、即ち、画素5〜画素8、画素21〜画素24に関しても同様にアドレッシングされて読み出される。
【0017】
図8は、図7に示す順に読み出した画素の位置に次に入力される矩形画像の各画素を書き込んだ様子を示す図である。図8では、2番目の1矩形画像アレイの画像データの読み出し時に、3番目の1矩形画像アレイの最初と2番目の矩形画像(図2)が入力されて格納された状態を示している。
【0018】
図9は、こうして3番目の1矩形画像アレイがラインバッファに格納された後、次に入力される4番目の1矩形画像アレイの最初の矩形画像(図2(A))が、その読み出した画像データの位置に格納された状態を示す図である。即ち、3番目の1矩形画像アレイがラインバッファに格納された後、その1主走査の画像データの読み出しが開始され、そのデータの読み出しに伴って、4番目の1矩形画像アレイの最初の矩形画像が、その読み出した画像データの位置に格納される。
【0019】
以下詳しい説明を省略するが、5番目の矩形画像アレイの画像データの読み出し時、つまり6番目の矩形画像アレイの画像データの書込み時には、1番目の矩形画像アレイの画像データの書き込み時と同様のアドレッシング方法を採ることになる。
【0020】
このように、この方法では、4画素×4ラインで、主走査が32画素という小さい画像の中でさえ、このような6通りものアドレッシングが必要となる。従って、変換処理を行う矩形画像のサイズが大きくなり、また、実際に用いられる画像サイズを想定した場合には、データの書込み及び読み出しにおけるアドレス制御はより複雑なものとなる。
【先行技術文献】
【特許文献】
【0021】
【特許文献1】特開2004−40381号公報
【特許文献2】特開2001−285644号公報
【発明の概要】
【発明が解決しようとする課題】
【0022】
このように上述した従来技術では、矩形画像からラスタ画像データへの変換処理が複雑になっていた。即ち、前者の方法では、副走査ライン数の2倍のメモリ容量が必要となるため、高速動作を行わせるためにICにメモリを内蔵するためにはメモリ容量が非常に大きくなる。
【0023】
また後者の方法では、前述したように、画像データを読み出したアドレスに対して、次に矩形画像を書き込み、その書き込んだ画像データを主走査方向に読み出すという処理が必要になり、矩形画像の数が増えるたびに処理が複雑になる。特に、このようなアドレッシング方法をハードウェアのみで実現しようとすると、これらの動作検証にも時間を要する。また、全てのアドレッシング方法が検証されずにハードウェア化されることも起こりうるため、バグ発生のリスクも高かった。
【0024】
本発明の目的は上記従来技術の問題点を解決することにある。
【0025】
本願発明の一態様に係る特徴は、矩形画像からラスタ画像データへの変換処理において、メモリ容量が増大することを避けつつ、メモリアクセスの際のアドレッシングを単純化する画像処理装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【0026】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置であって、
第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段と、
第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御手段とを有し、
前記第1の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記各矩形画像内の各画素の配置に対応するアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn画素分ずれたアドレスに書き込む方式であり、
前記第1の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn画素分ずれたアドレスから読み出す方式であり、
前記第2の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn×n画素分連続したアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第2の方向に1画素分ずれたアドレスに書き込む方式であり、
前記第2の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第2の方向に1画素分ずれたアドレスから読み出す方式であることを特徴とする。
【0027】
上記目的を達成するために本発明の一態様に係る画像処理装置の制御方法は以下のような構成を備える。即ち、
第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段を有し、n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置を制御する制御方法であって、
第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御工程を有し、
前記第1の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記各矩形画像内の各画素の配置に対応するアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn画素分ずれたアドレスに書き込む方式であり、
前記第1の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn画素分ずれたアドレスから読み出す方式であり、
前記第2の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn×n画素分連続したアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第2の方向に1画素分ずれたアドレスに書き込む方式であり、
前記第2の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第2の方向に1画素分ずれたアドレスから読み出す方式であることを特徴とする。
【発明の効果】
【0028】
本発明によれば、矩形画像からラスタ画像データへの変換処理において、メモリ容量が増大することを避けつつ、メモリアクセスの際のアドレッシングを単純化できる。
【図面の簡単な説明】
【0029】
【図1】本実施の形態に係る矩形画像から点順次のラスタ画像データへ変換する画像処理装置の概略構成を示すブロック図である。
【図2】矩形画像の構成例を示す図で、図2(A)は、最初の矩形画像、図2(B)は次に入力される矩形画像をそれぞれ示している。
【図3】ダブルバッファ方式のメモリ回路構成を示すブロック図である。
【図4】書込み制御部によるラインバッファへの画像データの書込み順を説明する図である。
【図5】読み出し制御部によるラインバッファからの画像データの読み出し順を説明する図である。
【図6】1主走査ライン分のデータの読み出しが完了した後、その読み出したメモリエリアに次に入力された2つの矩形画像が格納された状態を示す図である。
【図7】2番目の矩形画像アレイの画像データの読み出しを説明する図である。
【図8】図7に示す順に読み出した画素の位置に次に入力される矩形画像の各画素を書き込んだ様子を示す図である。
【図9】3番目の矩形画像アレイがラインバッファに格納された後、その1主走査の画像データの読み出しが開始され、そのデータの読み出しに伴って次に入力される4番目の矩形画像アレイの最初の矩形画像が、その読み出した画像データの位置に格納された状態を示す図である。
【図10】本実施の形態において、最初の矩形画像アレイの画像データをラインバッファに書込む際のアドレス順を説明する図である。
【図11】本実施の形態において、図10のようにして格納された矩形画像アレイ分の1行目の画像データの読み出し順を説明する図である。
【図12】本実施の形態において、図11の最初の矩形画像アレイ分の1行目の画像データの読み出し後、次に入力される2番目の矩形画像アレイ分の画像データのうち、1番目と2番目の矩形画像をラインバッファに書き込んだ状態を示す図である。
【図13】本実施の形態において、2番目の矩形画像アレイ分の画像データがラインバッファに書き込まれた状態を示す図である。
【図14】本実施の形態において、図13に示す2番目の矩形画像アレイ分の画像データをラインバッファから読み出す処理を説明する図である。
【図15】本実施の形態に係る制御部の構成を示すブロック図である。
【図16】本実施の形態に係るラインメモリにおける矩形画像のデータ配列を示す図である。
【図17】本実施の形態に係るラインメモリのアドレスとデータの関係を示す図である。
【図18】本実施の形態における、各オフセットの種類とモードによるオフセットの意味合いを説明する図である。
【図19】本実施の形態に係るアクセス調停部により制御される状態遷移を説明する図である。
【図20】、
【図21】、
【図22】本実施の形態に係る制御部によるデータ変換処理を説明するフローチャートである。
【発明を実施するための形態】
【0030】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0031】
まず最初に本実施の形態に係るアドレッシングの概念を図10〜図14を参照して説明する。
【0032】
図10は、最初のm個(m=8)の矩形画像アレイ(8矩形画像)の画像データをラインバッファに書込む際のアドレス順を説明する図である。ここでも前述の従来技術の説明のように、1ラインが32画素、1矩形画像が4×4画素の場合で説明している。尚、図中の○数字は、矩形画像の書き込む順を表している。
【0033】
ここでは1番目の矩形画像(図2(A))を、1001で示すように、アドレス1〜4,33〜36,65〜68,97〜100に書き込む。次に2番目の矩形画像(図2(B))を、1002で示すように、アドレス17〜20,49〜52,81〜84,113〜116に書き込む。同様に、3番目の矩形画像は、1003で示すように、アドレス5〜8,37〜40,69〜72,101〜104に書き込む。また4番目の矩形画像は、1004で示すように、アドレス21〜24,53〜56,85〜88,117〜120に書き込む。
【0034】
これは、1矩形画像内のデータは、1行ごとに32アドレスのオフセットで書込み、次の矩形画像は16アドレスのオフセットで書き込むことを意味している。但し、2番目、4番目、6番目の矩形画像の次は、16アドレス分進めると、図10のラインバッファの容量を越えてしまうので、折り返して、合計16アドレス分だけ進めている。
【0035】
図11は、図10のようにして格納された1矩形画像アレイの1行目の画像データの読み出し順を説明する図である。
【0036】
ここでは元の矩形画像の1行目のデータ順に、アドレス1〜4のデータ1111、次はアドレス17〜20のデータ1112、次はアドレス5〜8のデータ1113、そしてアドレス21〜24のデータ1114の順に読み出される。
【0037】
前述の従来例2では、画像データを読み出したアドレスに、次に入力された矩形画像が書き込まれていたが、本実施の形態では、矩形画像アレイの1行目の画像データの読み出しが完了するまで次の矩形画像データの書き込みを開始しない。
【0038】
図12は、図11の最初の矩形画像アレイの1行目の画像データの読み出し後、次に入力される2番目の矩形画像アレイの画像データのうち、1番目と2番目の矩形画像をラインバッファに書き込んだ状態を示す図である。ここでは1番目と2番目の矩形画像の画素データが、アドレスの順に格納されている。
【0039】
このように2番目の矩形画像アレイの矩形画像データは、アドレス1から順番にアドレスの順に各矩形画像の画素データを図2で示す画素の順に書き込むだけでよい。但し、最初の矩形画像アレイの1ライン目の画像データを読み出しても、2つの矩形画像分の画像データ(図12の例では32画素)しか書き込むことができない。このため、読み出し速度に対してデータの入力が早い場合には、2ライン目のデータの読み出し終了を待って、後続の2つの矩形画像の画像データを書き込むように制御する必要がある。
【0040】
図13は、こうして2番目の矩形画像アレイの画像データがラインバッファに書き込まれた状態を示す図である。ここでは、ラインバッファの最初の行に、1番目と2番目の矩形画像の画素データがアドレス順に記憶され、次の行に3番目と4番目の矩形画像の画素データがアドレス順に記憶されている。以下同様に、5番目と6番目の矩形画像の画素データが3行目に、7番目と8番目の矩形画像の画素データが4行目にそれぞれアドレスの順に記憶されている。
【0041】
図14は、図13に示す2番目の矩形画像アレイの画像データを主走査ラインの順にラインバッファから読み出す処理を説明する図である。
【0042】
ここで主走査1ライン目のデータの読み出し時には、アドレス1〜4、アドレス17〜20、アドレス33〜36、アドレス49〜52、アドレス65〜68、アドレス81〜84、アドレス97〜100、そしてアドレス113〜116の順番で読み出される。
【0043】
この場合、最初の矩形画像アレイの画像データのアクセスと同様に、2番目の矩形画像アレイの1ライン目のデータを読み終わるまでは、3番目の矩形画像アレイの画像データを書き込むことができないものとする。そして、この2番目の矩形画像アレイの1ライン目の画像データの読み出しが完了すると3番目の矩形画像アレイの最初の2つの矩形画像が書き込まれる。この時の、書き込み順は、図10に示す最初の矩形画像アレイの画像データの書込み時のアドレッシング方法と同じとする。
【0044】
このようなアドレッシング方法によれば、矩形画像に分割された1ページの画像データを入力してラスタイメージに変換するのが容易になる。即ち、入力される画像データが奇数番目の矩形画像アレイであるか、偶数番目の矩形画像アレイであるかに応じて、各矩形画像アレイの画像データを書込むアドレス及び読み出しアドレスを変更すればよい。
【0045】
このアドレッシングの概念に基づいて、実際に想定されるシステムへの適用例を説明する。
【0046】
図1は、本実施の形態に係る矩形画像から点順次のラスタ画像へ変換する画像処理装置の概略構成を示すブロック図である。
【0047】
CPU100には、大容量のメインメモリ105が接続されている。またチップ間バス110,130を介して、画像処理部(プロセッサ)200及び300が接続されている。尚、メインメモリ105には、不図示の画像入力部から入力されるページ単位の画像データが記憶されているものとする。メインメモリ105に記憶されたページ単位の画像データに画像処理を行う場合、ページ単位の画像データのままで画像処理を行おうとすると、1ページ分の画像データを格納するためのバッファメモリを画像処理部300に設ける必要がある。しかし、画像処理部300に、1ページ分の画像データを格納できるような大容量のバッファメモリを設けるのはコストアップになってしまう。
【0048】
そこで本実施の形態では、メインメモリ105に記憶されたページ単位の画像データを、複数の矩形領域に分割した画像(矩形画像)を単位として、画像処理部300に画像処理を行わせるものとする。この場合、画像処理部300には、矩形画像を格納できる分のバッファメモリがあれば画像処理を実行可能である。但し本実施の形態では、画像処理部200から出力する画像データは、ページ単位の画像データの1ライン分に相当するライン単位の画像データとして、画像データを出力するものとする。そして、ライン単位の画像データとして画像データを出力するには、矩形画像をライン単位の画像データに変換する必要があり、その変換の仕組みが画像処理部200に組み込まれている。
【0049】
尚、図1で、メインメモリ105からチップ間バス110を介して画像処理部200に入力された画像データは、判定部260により画像処理部200で処理する画像データであるか否かが判定される。ここで画像処理部200で処理する画像データであると判定されると、その画像データは内部データバス240に送られる。一方、画像処理部200で処理する画像データでないと判定されると、その画像データはチップ間バス120を介して画像処理部300に送られる。
【0050】
制御部220は、矩形画像からラスタ画像データへの変換処理を実行しており、内部のメモリバス230を介して、ラインメモリ210に接続される。この制御部220は、矩形画像から点順次のラスタ画像データに変換し、その結果を内部データバス250へ出力している。そしてデータ出力制御部270の制御の下に、その処理済みの画像データは画像処理部200からバス280に出力される。
【0051】
図15は、本実施の形態に係る制御部220の構成を示すブロック図である。
【0052】
入力信号1601に制御されて入力される矩形画像の画像データ1600は、データ分割部1611によって、ライン単位に分割される。そして、データ分割部1611に一定量のデータが溜まると書込み制御部1620は、アクセス調停部1630に対して、書込み要求1606と、書込みアドレス1603を出力する。アクセス調停部1630で、この書込み要求が許可されると、書き込み制御部1620は、データ分割部1611のバッファに記憶された画像データをメモリバス230を介してラインメモリ210に書き込む。
【0053】
一方、アクセス調停部1630は、ラインメモリ210へのデータの書き込みと読み出しの状態を監視している。前述したような1ラインの読み出し終了タイミングや、書込み或は読み出しのアクセスを優先するモードなどの状態管理を行う。
【0054】
読出し制御部1640は、アクセス調停部1630によりラインメモリ210からのデータの読み出しが許可されると、ラインメモリ210からメモリバス230を介して画像データを読み出す。データ送信部1650は、制御信号1608により通知を受けると、メモリバス230のデータを取り込んでデータ送信部1650のバッファ(不図示)に格納する。
【0055】
1画素はC(シアン)M(マゼンタ)Y(イエロー)K(黒)の各色成分のデータで構成され、各色を12ビット(4096階調)で表現するために、48ビット(12ビット×4色)のデータで構成される。1つの矩形画像のサイズを32画素×32ラインとする。ライン方向の画素数は最大8192画素(256矩形画像分)であるシステムの例で説明する。
【0056】
図16は、ラインメモリ210における矩形画像のデータ配列を示す図である。
【0057】
縦方向の番号(1〜32)は、ラインメモリにおけるライン(ライン番号)を示しており、1は1番目のライン、2は2番目のラインというように、番号に対してラインが設定されているものとする。
【0058】
ここで1つの矩形画像の1ライン分の画素数は32(画素)であるため、矩形画像の1ライン分のデータ量は、48ビット×32(画素)で1536ビットとなる。いまラインメモリ210が、1アドレスあたり256ビット幅のものを使用すると、1つの矩形画像の1ラインについて6アドレスが必要となる。また上述のライン方向の画素数(8192画素)では、1536アドレスが必要となる。よって、いまラインメモリ210を1ライン(8192画素)単位で切ってあるとすると、2ライン目の先頭アドレスは、アドレス「1536」となる。以後、各ラインの先頭アドレスは「1536」ずつ加算されていく。
【0059】
図16は、各ラインの先頭部分のアドレスオフセット番号(上部)と、各ライン番号(左部)を示しており、各ラインの先頭部分を拡大して示している。
【0060】
次に実際のアドレッシング順序を説明する。
【0061】
まず始めに、奇数番目の矩形画像アレイをラインメモリ210に書き込む際のアドレッシング順序(第1の書き込みアドレス生成方式)を説明する。
【0062】
奇数番目の矩形画像アレイの画像データの入力時、書き込み制御部1620は、1番目の矩形画像を、アドレスオフセット番号0〜5の位置に合わせて書き込む(1601で示す図16の0〜5の縦方向)。また、書き込み制御部1620は、2番目の矩形画像を、1矩形画像における32ライン分のアドレスオフセット(32×6アドレス=192アドレス)を持たせて、1602で示すアドレス192〜197に対して書き込む。
【0063】
これらを繰り返していくと、図17の1700〜1707で示すように、8つの矩形画像が書き込まれる。そして次に9番目の矩形画像を書き込むときには、アドレスが折り返される。このアドレスが折り返された時は、ブロックを1つ分ずらして、図16の1603で示すアドレス6〜11に対応する領域に、それ9番目の矩形画像がラインメモリ210に書き込まれることになる。
【0064】
以上のような方式(第1の書き込みアドレス生成方式)で、256個の矩形画像のラインメモリ210への書き込みを行うことで、奇数番目の矩形画像アレイが、ラインメモリ210の全領域に書き込まれる。
【0065】
そして、第1の書き込みアドレス生成方式により矩形画像アレイが書き込まれたラインメモリ210からライン単位の画像データを読み出す場合、図16に示す1604の領域、1605の領域,…と1ライン目に書き込まれた画素データを読み出す。これにより、読み出し制御部1640は、32画素×256=8192画素を1ラインの画素数とするライン単位の画像データを読み出す。そして、読み出し制御部1640は、ライン単位の画像データの読み出しを、2ライン目、3ライン目,…,32ライン目と繰り返すことで、奇数番目の矩形画像アレイをラインメモリ210から読み出す。そして、第1の書き込みアドレス生成方式で矩形画像アレイが書き込まれたラインメモリ210から、特定のラインに格納されるライン単位の画像データを読み出す方式を第1の読み出しアドレス生成方式と呼ぶこととする。
【0066】
次に偶数番目の矩形画像アレイをラインメモリ210に書込む際のアドレッシング順序(第2の書き込みアドレス生成方式)を説明する。
【0067】
偶数番目の矩形画像アレイの場合、書き込み制御部1620は、図16に示す1604の領域に対して、1番目の矩形画像を書き込む。また各矩形画像は、1ライン分(32画素=1536ビット)を1つのブロック(6アドレス分)としてラインメモリ210に書き込むようにする。そして、書き込み制御部1620は、2番目の矩形画像を、図16に示す1605の領域に対して書き込む。そして、書き込み制御部1620は、3番目以降の矩形画像を、ラインメモリ210上で1ライン目に相当する領域に書き込む動作を繰り返す。そして、書き込み制御部1620は、8個の矩形画像を書き込むことでラインメモリ210上の1ライン目を、全ての領域に矩形画像が書き込まれた状態とする。そして、9番目〜16番目の矩形画像は、ラインメモリ210上で2ライン目に相当する領域に書き込まれる。同様に、17番目〜24番目の矩形画像は3ライン目に、25番目〜32番目の矩形画像は4ライン目に書き込まれる。最終的には、249番目〜256番目の矩形画像が32ライン目に書き込まれ、偶数番目の矩形画像アレイがラインメモリ210の全領域に書き込まれた状態となる。
【0068】
一方、偶数番目の矩形画像アレイをラインメモリ210から読み出す際に、読み出し制御部1640は、アドレス0〜5、アドレス192〜197、アドレス384〜389というように、192アドレスずつアドレスをスキップしながら読み出す。そして1ラインの最終まで折り返した場合は、6アドレス分のオフセットを与えて、アドレス6〜11、アドレス198〜203、アドレス390〜395というようにデータを読み出していく。こうして1ライン分の画像データの読み出しが終了すると、8つの矩形画像分のデータ領域が解放される。以上のように、第2の書き込みアドレス生成方式で、矩形画像アレイが書き込まれたラインメモリ210からライン単位の画像データを読み出す方式を第2の読み出しアドレス生成方式と呼ぶこととする。
【0069】
以上の第1の書き込みアドレス生成方式、第2の書き込みアドレス生成方式、第1の読み出しアドレス生成方式、第2の読み出しアドレス生成方式を実現するためのオフセットアドレス生成方式は、ラインメモリ210の使用方法に応じて、数式化が可能である。
【0070】
今回は、line_offset,rect_offset,return_offset,in_block_offsetの4つのオフセットを使用し、奇数番目の矩形画像アレイ、偶数番目の矩形画像アレイに応じて、オフセットの内容を切り替えて、アドレスの生成を行う。
【0071】
このアドレス生成のための演算式は以下で示すことができる。
【0072】
address=line_offset+rect_offset+return_offset+in_block_offset
図18は、各オフセットの種類とモードによるオフセットの意味合いを説明する図である。
【0073】
今回の例では、
(1)書込みモード:
(奇数番目の矩形画像アレイ)odd line Address=(current_line−1)×1536+((current_rect−1)%8)×192+Int((current_rect−1)/8)×6+current_beat ...式(1)
(偶数番目の矩形画像アレイ)odd line Address=(current_line−1)×6+(current_rect−1)×192+0+current_beat ...式(2)
尚、前述の図10の場合には、上記式は以下のようになる。
【0074】
(奇数番目の矩形画像アレイ)odd line Address=(current_line−1)×32+((current_rect−1)%2)×16+Int((current_rect−1)/2)×4+current_beat
(偶数番目の矩形画像アレイ)odd line Address=(current_line−1)×4+(current_rect−1)×16+0+current_beat
(2)読出しモード:
(奇数番目の矩形画像アレイ)odd line Address=(rcurrent_line−1)×1536+((current_block−1)%8)×192+Int((current_block−1)/8)×6+current_beat ...式(3)
(偶数番目の矩形画像アレイ)even line Address=(rcurrent_line−1)×6+((current_block−1)×192+0+current_beat ...式(4)
というようになる。尚、上記式において、「(current_rect−1)%8」は、(current_rect−1)を「8」で割ったときの余りを表している。また(current_block−1)は、1つの矩形画像を構成するライン数である。更に、Int((current_block−1)/8)は、(current_block−1)を8で割った商の整数部分を表している。
【0075】
書込みモードでのcurrent_rectは、1矩形画像アレイにおける矩形画像の順番(最初は1)を示し、読出し時のcurrent_blockは、32画素を1ブロックとしたブロック数を示している。またcurrent_beatは、32画素を入力するために必要なラインメモリ210上のメモリアドレス数をオフセットとしている。またrcurrent_lineは、読出し時のライン位置(1〜32のいずれか)を示している。
【0076】
また、1ライン中に書き込まれる矩形画像数である「8」は、各矩形画像を図12のようにラインバッファに格納した場合の矩形画像数で、8192/1024(32画素×32ライン)から求めている。
【0077】
以上のように、現在の矩形画像のラインと1矩形画像アレイにおける矩形画像の位置がわかれば、アドレスが生成できる。
【0078】
次に、図19を参照して、アクセス調停部1630の動作について説明する。
【0079】
図19は、本実施の形態に係るアクセス調停部1630により制御される状態遷移を説明する図である。
【0080】
ここでは、あるページの処理を行うために8個の状態(S0〜S7)を定義している。ここで、ライトアクセスプライオリティハイ(S2)、リードプライオリティハイ(S4)、最終矩形画像アレイリード(S6)の3つの状態がメインのステートとなる。状態S0はリセット状態、状態S1はアイドル(スタンバイ)状態を示す。状態S3は、予め定められた矩形画像データの書き込みが終了した状態を示し、状態S5は、主走査1ライン分の画像データの読み出しが終了した状態を示す。
【0081】
状態S2では、書込み要求(ライトアクセス)があった場合は、その書き込みが優先的に実行される。尚、読出し要求(リードアクセス)は、それまでに書き込んでいる矩形画像の数に応じて、その読出し要求が許可される場合と、許可されずに待たされる場合とがある。
【0082】
状態S4では、読出し要求が優先される。書込み要求は、例えば図17の例では、主走査方向の1ラインのデータを読み出すと8個の矩形画像の書き込みが許可される。しかしこの1ラインのデータを読み出すまでは、データの書込み要求は許可されない状態のままになる。
【0083】
最終の状態S6では、読出し要求のみが実行される。ここではページの最後の2矩形画像アレイ分のデータが既にラインメモリ210に記憶されており、それの読出しを行う状態である。この時、次のページの書込み要求があったとしても、現ページの画像データが完全に読み出されて出力されるまでは、次ページの画像データの書込みは許可されない。こうして現ページの画像データが全て読み出されると、状態S7に移行する。
【0084】
これらの制御方法によれば、ラインメモリの容量は、(矩形画像を構成するライン数)×(1ライン画素数)の容量とすれば良い。そして、書き込みと読み出しで各々2種類のアドレッシング方法によって、ページ単位の画像データを、ライン単位の画像データに変換して出力できる。
【0085】
この例は、図1にあるシステムのように、IC内にラインメモリを持つ構成としているが、例えばDRAMのような大容量メモリの一部の領域を用いても可能である。また、これらの制御をハードウェア化するだけでなく、ソフトウェアによって実施することも可能である。
【0086】
図20〜図22は、図1の制御部220によるデータ変換処理を説明するフローチャートである。
【0087】
図20のステップS100〜S112は、複数の矩形画像を入力して、ラインメモリ210に1矩形画像アレイの画像データを格納する処理を示している。
【0088】
まずステップS100で、current_line,current_rectを共に「1」に初期化する。次にステップS101で,1番目の矩形画像を入力する。ステップS102では,その矩形画像の1ライン目の画素データを格納するアドレスを生成し、ステップS103で、制御部220は、そのアドレスに矩形画像の1ライン分の画素データを書き込む。この場合のアドレスの生成は、前述の式(1)に基づいて行われる。こうして矩形画像の1ライン分の画素データをラインメモリ210に書き込むと、ステップS104で、current_lineを+1し、ステップS105で、1矩形画像をラインメモリ210に書き込むまでステップS102〜S105を繰り返す。こうして1番目の矩形画像をラインメモリ210に書き込むとステップS106に進み、current_lineを「1」に戻し、ステップS108で次の矩形画像を入力する。ステップS108では、矩形画像の順番を示すcurrent_rectを+1する。そしてステップS109で、制御部220は、前述のステップS102〜S105の処理(ステップS140)を実行して、その矩形画像をラインメモリ210に書き込む。こうして2番目の矩形画像のラインメモリ210への書き込みが終了するとステップS110に進み、current_lineを「1」に戻してステップS111に進む。そして、ステップS111で、制御部220は、1矩形画像アレイの画像データをラインメモリ210に格納したか否かを判定する。格納が完了していればステップS112に進むが、そうでないときはステップS106に戻る。こうして1矩形画像アレイの画像データがラインメモリ210に記憶された状態は、例えば図10のようになっている。
【0089】
次に図21に進み、ステップS113〜S119で、その1矩形画像アレイの画像データのラインメモリ210からの読出しを行う。即ち、ステップS113で、1番目の矩形画像の1ライン目(current_block = 1)が格納されているアドレスを算出する。これは例えば前述の式(3)により求めることができる。次にステップS114で、制御部220は、その1ライン分の画像データを読み出す。次にステップS115で、current_blockを+1し、ステップS116で、ページ単位の画像データの1ライン分(8192画素)の画像データを読み出すまでステップS113〜S116を繰り返す。こうしてページ単位の画像データの1ライン分の画像データを読み出すと、次の矩形画像の書き込みが可能になるためステップS117で、次の矩形画像が入力されているかを調べ、入力されているとステップS118に進む。ステップS118では、その入力された矩形画像を構成する複数のラインの各ラインを、その読み出しが完了したラインメモリ210の1ライン分のエリアに格納する。この場合の書き込むアドレスの計算は、例えば前述の式(2)に基づいて行われる。こうして、後続の2つの矩形画像が書き込まれた状態は、例えば図12のようになる。
【0090】
ステップS117で、次の矩形画像が入力されていないとき、或はステップS118が終了するとステップS119に進み、1矩形画像アレイの画像データの読み出しが完了したかをみる。完了していないときはステップS120に進み、current_blockを「1」に戻し、rcurrent_lineを+1してステップS113に進む。こうして1矩形画像アレイの読み出しが完了し、次の1矩形画像アレイの画像データが格納された状態は、例えば図13のようになる。
【0091】
次にステップS121では、次の1矩形画像アレイの画像データが少しでも格納されているかを調べる。ここで次の矩形画像アレイの画像データが全く存在しないときは、これ以降、矩形画像の入力がないと判断して処理を終了する。尚、この終了判定はこれに限定されるものでなく、予め入力される矩形画像数が分かっているときはその数により判断しても良く、或は所定時間経過しても入力が無いときに、この処理を終了すると判断しても良い。
【0092】
次にステップS122以降では、この2つ目の矩形画像アレイデータの読み出しを行う。ステップS122では、current_block、current_lineを共に「1」に初期化し、ステップS123で、例えば上述の式(4)に従って読出しアドレスを算出し、current_blockの矩形画像の1行目を読出す。次にステップS124で、current_blockを+1し、次のcurrent_blockの矩形画像の1行目を読出す準備を行う。こうしてステップS125で、矩形画像の1行目の画像データをページ単位の画像データの1ライン分を読み出したと判断するとステップS126に進む。ステップS126では、current_blockを「1」にセットし、current_lineを+1して、次に矩形画像の2行目の画像データの読み出しに進む。
【0093】
ステップS127では、ページ単位の画像データの1ライン分の読み出しが完了して、次の矩形画像の書き込みが可能になっているため、次の矩形画像が入力されているかを判断する。そして入力されていればステップS128に進み、ステップS140のようにして、その矩形画像を、既に読み出した1行目の画像エリアに格納する。そしてステップS129では、例えば図13のように格納された、1矩形画像アレイの画像データの読み出しが完了したかをみる。読み出しが完了していないときはステップS123に戻るが、完了したときはステップS130に進み、次の1矩形画像アレイの画像データの格納が完了しているかを判定する。ここで格納が完了している場合は、例えば前述の図10のように画像データが格納されていることになる。その場合はステップS113に進み、その矩形画像アレイの画像データの読み出しを行う。そうでないときはステップS131に進み、次に矩形画像アレイの画像データが全く格納されていなければ終了と判断する。これはステップS121の場合と同じである。一方、何らかの画像データが格納されていれば、次の矩形画像アレイの画像データが入力されると判断してステップS127に進む。
【0094】
尚、ここでは説明を分かりやすくするために、1つのフローチャートで説明した。しかし、矩形画像の入力とラインバッファへの書込みと、ラインバッファに格納された画像データの読出し処理とをそれぞれ別のタスクで実行する、所謂マルチタスク処理で実行されても良い。また上述の式で示すアドレスの計算式は、矩形画像のサイズ、ページ単位の画像データの1ライン分の画素数に応じて変更されるため、あくまでも一例として説明したもので、本願発明を限定するものではないことはもちろんである。例えば、rectangular imageのsizeをn×n画素とすると、nは2以上の整数であれば任意の値であってよい。また、rectangular imageのsizeをn×n画素とした場合、line-by-lineのimage dataの画素数はn×n×m 画素とするのが望ましい。この際、n及びmは2以上の整数であれば任意の値であって良い。
【0095】
また、上記の説明では、1ライン分の画像データをラインメモリ210から読み出したことに応じて、rectangular imageの書込みを開始することとしたが、他の態様であっても良い。例えば、rectangular imageのsizeをn×n画素(nは2以上の整数)とした場合、ラインメモリ210から1ライン以上かつnライン未満の画像データを読み出すと、rectangular imageの書込みを開始するようにしても良い。この場合でも、ラインメモリ210からnライン分の画像データを読み出した後にrectangular image の書込みを開始する場合に比べて、画像データの読みだし及び書込みに要する時間を短縮することができる。
【0096】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また一つの機器からなる装置に適用しても良い。
【0097】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【0098】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0099】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0100】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0101】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【0102】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0103】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【技術分野】
【0001】
本発明は、複数の矩形画像を入力して点順次のラスタイメージデータへ変換する画像処理装置及びその制御方法に関するものである。
【背景技術】
【0002】
複数の矩形画像で構成されるページ単位の画像データを、画像データ用のバッファメモリを用いてライン単位の画像データに変換して出力する場合を考える。この場合、矩形画像を単位として入力されるページ単位の画像データを、ライン単位の画像データへ変換する必要がある。この変換方法の最も一般的なものとしては、(矩形画像に含まれる画像データのライン数)×(1ライン分の画素数)に相当するデータ量の2倍のバッファメモリを用い、ダブルバッファ方式により変換する方法がある。
【0003】
また他の方法としては、(矩形画像に含まれる画像データのライン数)×(1ライン分の画素数)に相当する容量のバッファメモリを用いて、シングルバッファ方式で矩形画像からラスタ画像データへ変換する方法がある。この方法では、バッファメモリから1ライン分の画像データを読み出した後に、読み出したアドレスに対して、次の矩形画像を書き込むように処理している(特許文献1,2参照)。
【0004】
次に、従来例1として、前者のダブルバッファ方式による矩形画像からライン単位の画像データへの変換処理について説明する。
【0005】
この例における矩形画像は、矩形画像に含まれる画像データのライン数は4ラインであり、各ラインが4画素からなるものとする。そうすると、矩形画像は、4画素×4画素の合計16画素の画素データから構成されることとなる。
【0006】
図2(A),(B)は、n×n画素からなる矩形画像を示す図で、図2(A)は、バッファメモリに最初に入力される矩形画像を示し、図2(B)はバッファメモリに次に入力される矩形画像を示す。
【0007】
バッファメモリに入力される画素データの順番は、図の数字の順番通りである。即ち、1つの矩形画像内で1ライン分(n×n×m画素)の画素データを入力すると、次のラインの画素データを入力している。即ち、図2(A)の例では、1ライン目の画素1〜画素4の画素データを入力すると、次に2ライン目の画素5〜画素8の画素データを入力する。こうして画素16までをバッファメモリに入力すると、図2(A)に示す矩形画像の入力が完了する。そして次に図2(B)に示す矩形画像が入力されると画素17〜画素32の画素データも同様の順番で入力される。尚、図2では、2つの矩形画像のみを示しているが、3番目の矩形画像も同様に、画素33乃至画素48の画素データが図2に示す矩形画像の画素の順番に配置されている。そしてそれ以降の矩形画素に関しても同様である。
【0008】
図3は、ダブルバッファ方式のメモリ回路構成を示すブロック図である。
【0009】
420,430はそれぞれ図2に示す(矩形画像に含まれる画像データのライン数)×(1ライン分の画素数(x))の容量を有するラインバッファメモリである。メモリ制御部410は、ラインバッファ420,430への矩形画像の書込み、及びラインバッファメモリからの画像データの読み出しを制御する。ここでx=32のとき、ページ単位の画像データの1ライン分に含まれる32画素に相当する8つの矩形画像を「1矩形画像アレイ」と表現する。この場合にラインバッファメモリに格納できる全画素数は32×8=256画素となる。この場合、ラインバッファ420に256画素(8矩形画像分)の画像データを書き込むと、書込み制御部は、ラインバッファ430に切替えて、次から入力される矩形画像を、ラインバッファ430に格納する。一方、読み出し制御部は、書込み制御部が書き込みを完了したラインバッファ420から画像データをライン単位で読み出すように動作する。
【0010】
図4は、この書込み制御部によるラインバッファメモリへの矩形画像の書込み順を説明する図であり、図5は、読み出し制御部によるラインバッファメモリからの画像データの読み出し順を説明する図である。このように画像データの書込み時は、矩形画像の単位で画像データをラインバッファメモリに書込み、読み出し時には、ライン単位で画像データを読み出している。しかし、このようなダブルバッファ方式の場合には、1ラインを32画素とした4ライン分のラインバッファが2つ必要になり、矩形画像のサイズが大きくなればなるほど、大容量のラインバッファメモリが必要になりコストアップの要因になっている。
【0011】
次に従来例2として、シングルバッファ(例えばラインバッファ420のみ)による矩形画像からライン単位の画像データへの変換処理について説明する。
【0012】
最初の1矩形画像アレイの画像データの書込みの順序は、前述の図4と同じである。そして、その最初の1矩形画像アレイの画像データの読み出しの順序は図5に示す通りである。但し、ここではシングルバッファであるため、このラインバッファメモリからライン単位で画像データを読み出したときに次に入力される矩形画像を格納するアドレスが異なってくる。
【0013】
図6は、ラインバッファメモリから1ライン分の画像データを読み出した後に、読み出したアドレスに対して、次に入力された2つの矩形画像が格納された状態を示す図である。
【0014】
ここではライン600に、2つの矩形画像(図2に示す)の画素1乃至画素16と、画素17乃至画素32までが格納されている。以下同様にして、各1主走査分の画像データの読み出しが完了して最初の1矩形画像アレイの読み出しが完了した後には、各ライン601〜603のそれぞれには、画素33〜画素64、画素65〜画素96、画素97〜画素128の画素データが格納されている。
【0015】
図7は、2番目の1矩形画像アレイの画像データの読み出しを説明する図である。
【0016】
1行目の画像データの読み出し時には、1番目の矩形画像の画素1〜画素4、2番目の矩形画像の画素17〜画素20、3番目の矩形画像の画素33〜画素36、以下同様にして8番目の矩形画像の画素113〜画素116までが読み出される。この読み出し順は、図7の点線で示すようになる。2行目の画像データ、即ち、画素5〜画素8、画素21〜画素24に関しても同様にアドレッシングされて読み出される。
【0017】
図8は、図7に示す順に読み出した画素の位置に次に入力される矩形画像の各画素を書き込んだ様子を示す図である。図8では、2番目の1矩形画像アレイの画像データの読み出し時に、3番目の1矩形画像アレイの最初と2番目の矩形画像(図2)が入力されて格納された状態を示している。
【0018】
図9は、こうして3番目の1矩形画像アレイがラインバッファに格納された後、次に入力される4番目の1矩形画像アレイの最初の矩形画像(図2(A))が、その読み出した画像データの位置に格納された状態を示す図である。即ち、3番目の1矩形画像アレイがラインバッファに格納された後、その1主走査の画像データの読み出しが開始され、そのデータの読み出しに伴って、4番目の1矩形画像アレイの最初の矩形画像が、その読み出した画像データの位置に格納される。
【0019】
以下詳しい説明を省略するが、5番目の矩形画像アレイの画像データの読み出し時、つまり6番目の矩形画像アレイの画像データの書込み時には、1番目の矩形画像アレイの画像データの書き込み時と同様のアドレッシング方法を採ることになる。
【0020】
このように、この方法では、4画素×4ラインで、主走査が32画素という小さい画像の中でさえ、このような6通りものアドレッシングが必要となる。従って、変換処理を行う矩形画像のサイズが大きくなり、また、実際に用いられる画像サイズを想定した場合には、データの書込み及び読み出しにおけるアドレス制御はより複雑なものとなる。
【先行技術文献】
【特許文献】
【0021】
【特許文献1】特開2004−40381号公報
【特許文献2】特開2001−285644号公報
【発明の概要】
【発明が解決しようとする課題】
【0022】
このように上述した従来技術では、矩形画像からラスタ画像データへの変換処理が複雑になっていた。即ち、前者の方法では、副走査ライン数の2倍のメモリ容量が必要となるため、高速動作を行わせるためにICにメモリを内蔵するためにはメモリ容量が非常に大きくなる。
【0023】
また後者の方法では、前述したように、画像データを読み出したアドレスに対して、次に矩形画像を書き込み、その書き込んだ画像データを主走査方向に読み出すという処理が必要になり、矩形画像の数が増えるたびに処理が複雑になる。特に、このようなアドレッシング方法をハードウェアのみで実現しようとすると、これらの動作検証にも時間を要する。また、全てのアドレッシング方法が検証されずにハードウェア化されることも起こりうるため、バグ発生のリスクも高かった。
【0024】
本発明の目的は上記従来技術の問題点を解決することにある。
【0025】
本願発明の一態様に係る特徴は、矩形画像からラスタ画像データへの変換処理において、メモリ容量が増大することを避けつつ、メモリアクセスの際のアドレッシングを単純化する画像処理装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【0026】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置であって、
第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段と、
第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御手段とを有し、
前記第1の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記各矩形画像内の各画素の配置に対応するアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn画素分ずれたアドレスに書き込む方式であり、
前記第1の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn画素分ずれたアドレスから読み出す方式であり、
前記第2の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn×n画素分連続したアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第2の方向に1画素分ずれたアドレスに書き込む方式であり、
前記第2の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第2の方向に1画素分ずれたアドレスから読み出す方式であることを特徴とする。
【0027】
上記目的を達成するために本発明の一態様に係る画像処理装置の制御方法は以下のような構成を備える。即ち、
第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段を有し、n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置を制御する制御方法であって、
第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御工程を有し、
前記第1の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記各矩形画像内の各画素の配置に対応するアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn画素分ずれたアドレスに書き込む方式であり、
前記第1の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn画素分ずれたアドレスから読み出す方式であり、
前記第2の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn×n画素分連続したアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第2の方向に1画素分ずれたアドレスに書き込む方式であり、
前記第2の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第2の方向に1画素分ずれたアドレスから読み出す方式であることを特徴とする。
【発明の効果】
【0028】
本発明によれば、矩形画像からラスタ画像データへの変換処理において、メモリ容量が増大することを避けつつ、メモリアクセスの際のアドレッシングを単純化できる。
【図面の簡単な説明】
【0029】
【図1】本実施の形態に係る矩形画像から点順次のラスタ画像データへ変換する画像処理装置の概略構成を示すブロック図である。
【図2】矩形画像の構成例を示す図で、図2(A)は、最初の矩形画像、図2(B)は次に入力される矩形画像をそれぞれ示している。
【図3】ダブルバッファ方式のメモリ回路構成を示すブロック図である。
【図4】書込み制御部によるラインバッファへの画像データの書込み順を説明する図である。
【図5】読み出し制御部によるラインバッファからの画像データの読み出し順を説明する図である。
【図6】1主走査ライン分のデータの読み出しが完了した後、その読み出したメモリエリアに次に入力された2つの矩形画像が格納された状態を示す図である。
【図7】2番目の矩形画像アレイの画像データの読み出しを説明する図である。
【図8】図7に示す順に読み出した画素の位置に次に入力される矩形画像の各画素を書き込んだ様子を示す図である。
【図9】3番目の矩形画像アレイがラインバッファに格納された後、その1主走査の画像データの読み出しが開始され、そのデータの読み出しに伴って次に入力される4番目の矩形画像アレイの最初の矩形画像が、その読み出した画像データの位置に格納された状態を示す図である。
【図10】本実施の形態において、最初の矩形画像アレイの画像データをラインバッファに書込む際のアドレス順を説明する図である。
【図11】本実施の形態において、図10のようにして格納された矩形画像アレイ分の1行目の画像データの読み出し順を説明する図である。
【図12】本実施の形態において、図11の最初の矩形画像アレイ分の1行目の画像データの読み出し後、次に入力される2番目の矩形画像アレイ分の画像データのうち、1番目と2番目の矩形画像をラインバッファに書き込んだ状態を示す図である。
【図13】本実施の形態において、2番目の矩形画像アレイ分の画像データがラインバッファに書き込まれた状態を示す図である。
【図14】本実施の形態において、図13に示す2番目の矩形画像アレイ分の画像データをラインバッファから読み出す処理を説明する図である。
【図15】本実施の形態に係る制御部の構成を示すブロック図である。
【図16】本実施の形態に係るラインメモリにおける矩形画像のデータ配列を示す図である。
【図17】本実施の形態に係るラインメモリのアドレスとデータの関係を示す図である。
【図18】本実施の形態における、各オフセットの種類とモードによるオフセットの意味合いを説明する図である。
【図19】本実施の形態に係るアクセス調停部により制御される状態遷移を説明する図である。
【図20】、
【図21】、
【図22】本実施の形態に係る制御部によるデータ変換処理を説明するフローチャートである。
【発明を実施するための形態】
【0030】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0031】
まず最初に本実施の形態に係るアドレッシングの概念を図10〜図14を参照して説明する。
【0032】
図10は、最初のm個(m=8)の矩形画像アレイ(8矩形画像)の画像データをラインバッファに書込む際のアドレス順を説明する図である。ここでも前述の従来技術の説明のように、1ラインが32画素、1矩形画像が4×4画素の場合で説明している。尚、図中の○数字は、矩形画像の書き込む順を表している。
【0033】
ここでは1番目の矩形画像(図2(A))を、1001で示すように、アドレス1〜4,33〜36,65〜68,97〜100に書き込む。次に2番目の矩形画像(図2(B))を、1002で示すように、アドレス17〜20,49〜52,81〜84,113〜116に書き込む。同様に、3番目の矩形画像は、1003で示すように、アドレス5〜8,37〜40,69〜72,101〜104に書き込む。また4番目の矩形画像は、1004で示すように、アドレス21〜24,53〜56,85〜88,117〜120に書き込む。
【0034】
これは、1矩形画像内のデータは、1行ごとに32アドレスのオフセットで書込み、次の矩形画像は16アドレスのオフセットで書き込むことを意味している。但し、2番目、4番目、6番目の矩形画像の次は、16アドレス分進めると、図10のラインバッファの容量を越えてしまうので、折り返して、合計16アドレス分だけ進めている。
【0035】
図11は、図10のようにして格納された1矩形画像アレイの1行目の画像データの読み出し順を説明する図である。
【0036】
ここでは元の矩形画像の1行目のデータ順に、アドレス1〜4のデータ1111、次はアドレス17〜20のデータ1112、次はアドレス5〜8のデータ1113、そしてアドレス21〜24のデータ1114の順に読み出される。
【0037】
前述の従来例2では、画像データを読み出したアドレスに、次に入力された矩形画像が書き込まれていたが、本実施の形態では、矩形画像アレイの1行目の画像データの読み出しが完了するまで次の矩形画像データの書き込みを開始しない。
【0038】
図12は、図11の最初の矩形画像アレイの1行目の画像データの読み出し後、次に入力される2番目の矩形画像アレイの画像データのうち、1番目と2番目の矩形画像をラインバッファに書き込んだ状態を示す図である。ここでは1番目と2番目の矩形画像の画素データが、アドレスの順に格納されている。
【0039】
このように2番目の矩形画像アレイの矩形画像データは、アドレス1から順番にアドレスの順に各矩形画像の画素データを図2で示す画素の順に書き込むだけでよい。但し、最初の矩形画像アレイの1ライン目の画像データを読み出しても、2つの矩形画像分の画像データ(図12の例では32画素)しか書き込むことができない。このため、読み出し速度に対してデータの入力が早い場合には、2ライン目のデータの読み出し終了を待って、後続の2つの矩形画像の画像データを書き込むように制御する必要がある。
【0040】
図13は、こうして2番目の矩形画像アレイの画像データがラインバッファに書き込まれた状態を示す図である。ここでは、ラインバッファの最初の行に、1番目と2番目の矩形画像の画素データがアドレス順に記憶され、次の行に3番目と4番目の矩形画像の画素データがアドレス順に記憶されている。以下同様に、5番目と6番目の矩形画像の画素データが3行目に、7番目と8番目の矩形画像の画素データが4行目にそれぞれアドレスの順に記憶されている。
【0041】
図14は、図13に示す2番目の矩形画像アレイの画像データを主走査ラインの順にラインバッファから読み出す処理を説明する図である。
【0042】
ここで主走査1ライン目のデータの読み出し時には、アドレス1〜4、アドレス17〜20、アドレス33〜36、アドレス49〜52、アドレス65〜68、アドレス81〜84、アドレス97〜100、そしてアドレス113〜116の順番で読み出される。
【0043】
この場合、最初の矩形画像アレイの画像データのアクセスと同様に、2番目の矩形画像アレイの1ライン目のデータを読み終わるまでは、3番目の矩形画像アレイの画像データを書き込むことができないものとする。そして、この2番目の矩形画像アレイの1ライン目の画像データの読み出しが完了すると3番目の矩形画像アレイの最初の2つの矩形画像が書き込まれる。この時の、書き込み順は、図10に示す最初の矩形画像アレイの画像データの書込み時のアドレッシング方法と同じとする。
【0044】
このようなアドレッシング方法によれば、矩形画像に分割された1ページの画像データを入力してラスタイメージに変換するのが容易になる。即ち、入力される画像データが奇数番目の矩形画像アレイであるか、偶数番目の矩形画像アレイであるかに応じて、各矩形画像アレイの画像データを書込むアドレス及び読み出しアドレスを変更すればよい。
【0045】
このアドレッシングの概念に基づいて、実際に想定されるシステムへの適用例を説明する。
【0046】
図1は、本実施の形態に係る矩形画像から点順次のラスタ画像へ変換する画像処理装置の概略構成を示すブロック図である。
【0047】
CPU100には、大容量のメインメモリ105が接続されている。またチップ間バス110,130を介して、画像処理部(プロセッサ)200及び300が接続されている。尚、メインメモリ105には、不図示の画像入力部から入力されるページ単位の画像データが記憶されているものとする。メインメモリ105に記憶されたページ単位の画像データに画像処理を行う場合、ページ単位の画像データのままで画像処理を行おうとすると、1ページ分の画像データを格納するためのバッファメモリを画像処理部300に設ける必要がある。しかし、画像処理部300に、1ページ分の画像データを格納できるような大容量のバッファメモリを設けるのはコストアップになってしまう。
【0048】
そこで本実施の形態では、メインメモリ105に記憶されたページ単位の画像データを、複数の矩形領域に分割した画像(矩形画像)を単位として、画像処理部300に画像処理を行わせるものとする。この場合、画像処理部300には、矩形画像を格納できる分のバッファメモリがあれば画像処理を実行可能である。但し本実施の形態では、画像処理部200から出力する画像データは、ページ単位の画像データの1ライン分に相当するライン単位の画像データとして、画像データを出力するものとする。そして、ライン単位の画像データとして画像データを出力するには、矩形画像をライン単位の画像データに変換する必要があり、その変換の仕組みが画像処理部200に組み込まれている。
【0049】
尚、図1で、メインメモリ105からチップ間バス110を介して画像処理部200に入力された画像データは、判定部260により画像処理部200で処理する画像データであるか否かが判定される。ここで画像処理部200で処理する画像データであると判定されると、その画像データは内部データバス240に送られる。一方、画像処理部200で処理する画像データでないと判定されると、その画像データはチップ間バス120を介して画像処理部300に送られる。
【0050】
制御部220は、矩形画像からラスタ画像データへの変換処理を実行しており、内部のメモリバス230を介して、ラインメモリ210に接続される。この制御部220は、矩形画像から点順次のラスタ画像データに変換し、その結果を内部データバス250へ出力している。そしてデータ出力制御部270の制御の下に、その処理済みの画像データは画像処理部200からバス280に出力される。
【0051】
図15は、本実施の形態に係る制御部220の構成を示すブロック図である。
【0052】
入力信号1601に制御されて入力される矩形画像の画像データ1600は、データ分割部1611によって、ライン単位に分割される。そして、データ分割部1611に一定量のデータが溜まると書込み制御部1620は、アクセス調停部1630に対して、書込み要求1606と、書込みアドレス1603を出力する。アクセス調停部1630で、この書込み要求が許可されると、書き込み制御部1620は、データ分割部1611のバッファに記憶された画像データをメモリバス230を介してラインメモリ210に書き込む。
【0053】
一方、アクセス調停部1630は、ラインメモリ210へのデータの書き込みと読み出しの状態を監視している。前述したような1ラインの読み出し終了タイミングや、書込み或は読み出しのアクセスを優先するモードなどの状態管理を行う。
【0054】
読出し制御部1640は、アクセス調停部1630によりラインメモリ210からのデータの読み出しが許可されると、ラインメモリ210からメモリバス230を介して画像データを読み出す。データ送信部1650は、制御信号1608により通知を受けると、メモリバス230のデータを取り込んでデータ送信部1650のバッファ(不図示)に格納する。
【0055】
1画素はC(シアン)M(マゼンタ)Y(イエロー)K(黒)の各色成分のデータで構成され、各色を12ビット(4096階調)で表現するために、48ビット(12ビット×4色)のデータで構成される。1つの矩形画像のサイズを32画素×32ラインとする。ライン方向の画素数は最大8192画素(256矩形画像分)であるシステムの例で説明する。
【0056】
図16は、ラインメモリ210における矩形画像のデータ配列を示す図である。
【0057】
縦方向の番号(1〜32)は、ラインメモリにおけるライン(ライン番号)を示しており、1は1番目のライン、2は2番目のラインというように、番号に対してラインが設定されているものとする。
【0058】
ここで1つの矩形画像の1ライン分の画素数は32(画素)であるため、矩形画像の1ライン分のデータ量は、48ビット×32(画素)で1536ビットとなる。いまラインメモリ210が、1アドレスあたり256ビット幅のものを使用すると、1つの矩形画像の1ラインについて6アドレスが必要となる。また上述のライン方向の画素数(8192画素)では、1536アドレスが必要となる。よって、いまラインメモリ210を1ライン(8192画素)単位で切ってあるとすると、2ライン目の先頭アドレスは、アドレス「1536」となる。以後、各ラインの先頭アドレスは「1536」ずつ加算されていく。
【0059】
図16は、各ラインの先頭部分のアドレスオフセット番号(上部)と、各ライン番号(左部)を示しており、各ラインの先頭部分を拡大して示している。
【0060】
次に実際のアドレッシング順序を説明する。
【0061】
まず始めに、奇数番目の矩形画像アレイをラインメモリ210に書き込む際のアドレッシング順序(第1の書き込みアドレス生成方式)を説明する。
【0062】
奇数番目の矩形画像アレイの画像データの入力時、書き込み制御部1620は、1番目の矩形画像を、アドレスオフセット番号0〜5の位置に合わせて書き込む(1601で示す図16の0〜5の縦方向)。また、書き込み制御部1620は、2番目の矩形画像を、1矩形画像における32ライン分のアドレスオフセット(32×6アドレス=192アドレス)を持たせて、1602で示すアドレス192〜197に対して書き込む。
【0063】
これらを繰り返していくと、図17の1700〜1707で示すように、8つの矩形画像が書き込まれる。そして次に9番目の矩形画像を書き込むときには、アドレスが折り返される。このアドレスが折り返された時は、ブロックを1つ分ずらして、図16の1603で示すアドレス6〜11に対応する領域に、それ9番目の矩形画像がラインメモリ210に書き込まれることになる。
【0064】
以上のような方式(第1の書き込みアドレス生成方式)で、256個の矩形画像のラインメモリ210への書き込みを行うことで、奇数番目の矩形画像アレイが、ラインメモリ210の全領域に書き込まれる。
【0065】
そして、第1の書き込みアドレス生成方式により矩形画像アレイが書き込まれたラインメモリ210からライン単位の画像データを読み出す場合、図16に示す1604の領域、1605の領域,…と1ライン目に書き込まれた画素データを読み出す。これにより、読み出し制御部1640は、32画素×256=8192画素を1ラインの画素数とするライン単位の画像データを読み出す。そして、読み出し制御部1640は、ライン単位の画像データの読み出しを、2ライン目、3ライン目,…,32ライン目と繰り返すことで、奇数番目の矩形画像アレイをラインメモリ210から読み出す。そして、第1の書き込みアドレス生成方式で矩形画像アレイが書き込まれたラインメモリ210から、特定のラインに格納されるライン単位の画像データを読み出す方式を第1の読み出しアドレス生成方式と呼ぶこととする。
【0066】
次に偶数番目の矩形画像アレイをラインメモリ210に書込む際のアドレッシング順序(第2の書き込みアドレス生成方式)を説明する。
【0067】
偶数番目の矩形画像アレイの場合、書き込み制御部1620は、図16に示す1604の領域に対して、1番目の矩形画像を書き込む。また各矩形画像は、1ライン分(32画素=1536ビット)を1つのブロック(6アドレス分)としてラインメモリ210に書き込むようにする。そして、書き込み制御部1620は、2番目の矩形画像を、図16に示す1605の領域に対して書き込む。そして、書き込み制御部1620は、3番目以降の矩形画像を、ラインメモリ210上で1ライン目に相当する領域に書き込む動作を繰り返す。そして、書き込み制御部1620は、8個の矩形画像を書き込むことでラインメモリ210上の1ライン目を、全ての領域に矩形画像が書き込まれた状態とする。そして、9番目〜16番目の矩形画像は、ラインメモリ210上で2ライン目に相当する領域に書き込まれる。同様に、17番目〜24番目の矩形画像は3ライン目に、25番目〜32番目の矩形画像は4ライン目に書き込まれる。最終的には、249番目〜256番目の矩形画像が32ライン目に書き込まれ、偶数番目の矩形画像アレイがラインメモリ210の全領域に書き込まれた状態となる。
【0068】
一方、偶数番目の矩形画像アレイをラインメモリ210から読み出す際に、読み出し制御部1640は、アドレス0〜5、アドレス192〜197、アドレス384〜389というように、192アドレスずつアドレスをスキップしながら読み出す。そして1ラインの最終まで折り返した場合は、6アドレス分のオフセットを与えて、アドレス6〜11、アドレス198〜203、アドレス390〜395というようにデータを読み出していく。こうして1ライン分の画像データの読み出しが終了すると、8つの矩形画像分のデータ領域が解放される。以上のように、第2の書き込みアドレス生成方式で、矩形画像アレイが書き込まれたラインメモリ210からライン単位の画像データを読み出す方式を第2の読み出しアドレス生成方式と呼ぶこととする。
【0069】
以上の第1の書き込みアドレス生成方式、第2の書き込みアドレス生成方式、第1の読み出しアドレス生成方式、第2の読み出しアドレス生成方式を実現するためのオフセットアドレス生成方式は、ラインメモリ210の使用方法に応じて、数式化が可能である。
【0070】
今回は、line_offset,rect_offset,return_offset,in_block_offsetの4つのオフセットを使用し、奇数番目の矩形画像アレイ、偶数番目の矩形画像アレイに応じて、オフセットの内容を切り替えて、アドレスの生成を行う。
【0071】
このアドレス生成のための演算式は以下で示すことができる。
【0072】
address=line_offset+rect_offset+return_offset+in_block_offset
図18は、各オフセットの種類とモードによるオフセットの意味合いを説明する図である。
【0073】
今回の例では、
(1)書込みモード:
(奇数番目の矩形画像アレイ)odd line Address=(current_line−1)×1536+((current_rect−1)%8)×192+Int((current_rect−1)/8)×6+current_beat ...式(1)
(偶数番目の矩形画像アレイ)odd line Address=(current_line−1)×6+(current_rect−1)×192+0+current_beat ...式(2)
尚、前述の図10の場合には、上記式は以下のようになる。
【0074】
(奇数番目の矩形画像アレイ)odd line Address=(current_line−1)×32+((current_rect−1)%2)×16+Int((current_rect−1)/2)×4+current_beat
(偶数番目の矩形画像アレイ)odd line Address=(current_line−1)×4+(current_rect−1)×16+0+current_beat
(2)読出しモード:
(奇数番目の矩形画像アレイ)odd line Address=(rcurrent_line−1)×1536+((current_block−1)%8)×192+Int((current_block−1)/8)×6+current_beat ...式(3)
(偶数番目の矩形画像アレイ)even line Address=(rcurrent_line−1)×6+((current_block−1)×192+0+current_beat ...式(4)
というようになる。尚、上記式において、「(current_rect−1)%8」は、(current_rect−1)を「8」で割ったときの余りを表している。また(current_block−1)は、1つの矩形画像を構成するライン数である。更に、Int((current_block−1)/8)は、(current_block−1)を8で割った商の整数部分を表している。
【0075】
書込みモードでのcurrent_rectは、1矩形画像アレイにおける矩形画像の順番(最初は1)を示し、読出し時のcurrent_blockは、32画素を1ブロックとしたブロック数を示している。またcurrent_beatは、32画素を入力するために必要なラインメモリ210上のメモリアドレス数をオフセットとしている。またrcurrent_lineは、読出し時のライン位置(1〜32のいずれか)を示している。
【0076】
また、1ライン中に書き込まれる矩形画像数である「8」は、各矩形画像を図12のようにラインバッファに格納した場合の矩形画像数で、8192/1024(32画素×32ライン)から求めている。
【0077】
以上のように、現在の矩形画像のラインと1矩形画像アレイにおける矩形画像の位置がわかれば、アドレスが生成できる。
【0078】
次に、図19を参照して、アクセス調停部1630の動作について説明する。
【0079】
図19は、本実施の形態に係るアクセス調停部1630により制御される状態遷移を説明する図である。
【0080】
ここでは、あるページの処理を行うために8個の状態(S0〜S7)を定義している。ここで、ライトアクセスプライオリティハイ(S2)、リードプライオリティハイ(S4)、最終矩形画像アレイリード(S6)の3つの状態がメインのステートとなる。状態S0はリセット状態、状態S1はアイドル(スタンバイ)状態を示す。状態S3は、予め定められた矩形画像データの書き込みが終了した状態を示し、状態S5は、主走査1ライン分の画像データの読み出しが終了した状態を示す。
【0081】
状態S2では、書込み要求(ライトアクセス)があった場合は、その書き込みが優先的に実行される。尚、読出し要求(リードアクセス)は、それまでに書き込んでいる矩形画像の数に応じて、その読出し要求が許可される場合と、許可されずに待たされる場合とがある。
【0082】
状態S4では、読出し要求が優先される。書込み要求は、例えば図17の例では、主走査方向の1ラインのデータを読み出すと8個の矩形画像の書き込みが許可される。しかしこの1ラインのデータを読み出すまでは、データの書込み要求は許可されない状態のままになる。
【0083】
最終の状態S6では、読出し要求のみが実行される。ここではページの最後の2矩形画像アレイ分のデータが既にラインメモリ210に記憶されており、それの読出しを行う状態である。この時、次のページの書込み要求があったとしても、現ページの画像データが完全に読み出されて出力されるまでは、次ページの画像データの書込みは許可されない。こうして現ページの画像データが全て読み出されると、状態S7に移行する。
【0084】
これらの制御方法によれば、ラインメモリの容量は、(矩形画像を構成するライン数)×(1ライン画素数)の容量とすれば良い。そして、書き込みと読み出しで各々2種類のアドレッシング方法によって、ページ単位の画像データを、ライン単位の画像データに変換して出力できる。
【0085】
この例は、図1にあるシステムのように、IC内にラインメモリを持つ構成としているが、例えばDRAMのような大容量メモリの一部の領域を用いても可能である。また、これらの制御をハードウェア化するだけでなく、ソフトウェアによって実施することも可能である。
【0086】
図20〜図22は、図1の制御部220によるデータ変換処理を説明するフローチャートである。
【0087】
図20のステップS100〜S112は、複数の矩形画像を入力して、ラインメモリ210に1矩形画像アレイの画像データを格納する処理を示している。
【0088】
まずステップS100で、current_line,current_rectを共に「1」に初期化する。次にステップS101で,1番目の矩形画像を入力する。ステップS102では,その矩形画像の1ライン目の画素データを格納するアドレスを生成し、ステップS103で、制御部220は、そのアドレスに矩形画像の1ライン分の画素データを書き込む。この場合のアドレスの生成は、前述の式(1)に基づいて行われる。こうして矩形画像の1ライン分の画素データをラインメモリ210に書き込むと、ステップS104で、current_lineを+1し、ステップS105で、1矩形画像をラインメモリ210に書き込むまでステップS102〜S105を繰り返す。こうして1番目の矩形画像をラインメモリ210に書き込むとステップS106に進み、current_lineを「1」に戻し、ステップS108で次の矩形画像を入力する。ステップS108では、矩形画像の順番を示すcurrent_rectを+1する。そしてステップS109で、制御部220は、前述のステップS102〜S105の処理(ステップS140)を実行して、その矩形画像をラインメモリ210に書き込む。こうして2番目の矩形画像のラインメモリ210への書き込みが終了するとステップS110に進み、current_lineを「1」に戻してステップS111に進む。そして、ステップS111で、制御部220は、1矩形画像アレイの画像データをラインメモリ210に格納したか否かを判定する。格納が完了していればステップS112に進むが、そうでないときはステップS106に戻る。こうして1矩形画像アレイの画像データがラインメモリ210に記憶された状態は、例えば図10のようになっている。
【0089】
次に図21に進み、ステップS113〜S119で、その1矩形画像アレイの画像データのラインメモリ210からの読出しを行う。即ち、ステップS113で、1番目の矩形画像の1ライン目(current_block = 1)が格納されているアドレスを算出する。これは例えば前述の式(3)により求めることができる。次にステップS114で、制御部220は、その1ライン分の画像データを読み出す。次にステップS115で、current_blockを+1し、ステップS116で、ページ単位の画像データの1ライン分(8192画素)の画像データを読み出すまでステップS113〜S116を繰り返す。こうしてページ単位の画像データの1ライン分の画像データを読み出すと、次の矩形画像の書き込みが可能になるためステップS117で、次の矩形画像が入力されているかを調べ、入力されているとステップS118に進む。ステップS118では、その入力された矩形画像を構成する複数のラインの各ラインを、その読み出しが完了したラインメモリ210の1ライン分のエリアに格納する。この場合の書き込むアドレスの計算は、例えば前述の式(2)に基づいて行われる。こうして、後続の2つの矩形画像が書き込まれた状態は、例えば図12のようになる。
【0090】
ステップS117で、次の矩形画像が入力されていないとき、或はステップS118が終了するとステップS119に進み、1矩形画像アレイの画像データの読み出しが完了したかをみる。完了していないときはステップS120に進み、current_blockを「1」に戻し、rcurrent_lineを+1してステップS113に進む。こうして1矩形画像アレイの読み出しが完了し、次の1矩形画像アレイの画像データが格納された状態は、例えば図13のようになる。
【0091】
次にステップS121では、次の1矩形画像アレイの画像データが少しでも格納されているかを調べる。ここで次の矩形画像アレイの画像データが全く存在しないときは、これ以降、矩形画像の入力がないと判断して処理を終了する。尚、この終了判定はこれに限定されるものでなく、予め入力される矩形画像数が分かっているときはその数により判断しても良く、或は所定時間経過しても入力が無いときに、この処理を終了すると判断しても良い。
【0092】
次にステップS122以降では、この2つ目の矩形画像アレイデータの読み出しを行う。ステップS122では、current_block、current_lineを共に「1」に初期化し、ステップS123で、例えば上述の式(4)に従って読出しアドレスを算出し、current_blockの矩形画像の1行目を読出す。次にステップS124で、current_blockを+1し、次のcurrent_blockの矩形画像の1行目を読出す準備を行う。こうしてステップS125で、矩形画像の1行目の画像データをページ単位の画像データの1ライン分を読み出したと判断するとステップS126に進む。ステップS126では、current_blockを「1」にセットし、current_lineを+1して、次に矩形画像の2行目の画像データの読み出しに進む。
【0093】
ステップS127では、ページ単位の画像データの1ライン分の読み出しが完了して、次の矩形画像の書き込みが可能になっているため、次の矩形画像が入力されているかを判断する。そして入力されていればステップS128に進み、ステップS140のようにして、その矩形画像を、既に読み出した1行目の画像エリアに格納する。そしてステップS129では、例えば図13のように格納された、1矩形画像アレイの画像データの読み出しが完了したかをみる。読み出しが完了していないときはステップS123に戻るが、完了したときはステップS130に進み、次の1矩形画像アレイの画像データの格納が完了しているかを判定する。ここで格納が完了している場合は、例えば前述の図10のように画像データが格納されていることになる。その場合はステップS113に進み、その矩形画像アレイの画像データの読み出しを行う。そうでないときはステップS131に進み、次に矩形画像アレイの画像データが全く格納されていなければ終了と判断する。これはステップS121の場合と同じである。一方、何らかの画像データが格納されていれば、次の矩形画像アレイの画像データが入力されると判断してステップS127に進む。
【0094】
尚、ここでは説明を分かりやすくするために、1つのフローチャートで説明した。しかし、矩形画像の入力とラインバッファへの書込みと、ラインバッファに格納された画像データの読出し処理とをそれぞれ別のタスクで実行する、所謂マルチタスク処理で実行されても良い。また上述の式で示すアドレスの計算式は、矩形画像のサイズ、ページ単位の画像データの1ライン分の画素数に応じて変更されるため、あくまでも一例として説明したもので、本願発明を限定するものではないことはもちろんである。例えば、rectangular imageのsizeをn×n画素とすると、nは2以上の整数であれば任意の値であってよい。また、rectangular imageのsizeをn×n画素とした場合、line-by-lineのimage dataの画素数はn×n×m 画素とするのが望ましい。この際、n及びmは2以上の整数であれば任意の値であって良い。
【0095】
また、上記の説明では、1ライン分の画像データをラインメモリ210から読み出したことに応じて、rectangular imageの書込みを開始することとしたが、他の態様であっても良い。例えば、rectangular imageのsizeをn×n画素(nは2以上の整数)とした場合、ラインメモリ210から1ライン以上かつnライン未満の画像データを読み出すと、rectangular imageの書込みを開始するようにしても良い。この場合でも、ラインメモリ210からnライン分の画像データを読み出した後にrectangular image の書込みを開始する場合に比べて、画像データの読みだし及び書込みに要する時間を短縮することができる。
【0096】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また一つの機器からなる装置に適用しても良い。
【0097】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【0098】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0099】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0100】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0101】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【0102】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0103】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【特許請求の範囲】
【請求項1】
n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置であって、
第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段と、
第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御手段とを有し、
前記第1の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記各矩形画像内の各画素の配置に対応するアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn画素分ずれたアドレスに書き込む方式であり、
前記第1の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn画素分ずれたアドレスから読み出す方式であり、
前記第2の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn×n画素分連続したアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第2の方向に1画素分ずれたアドレスに書き込む方式であり、
前記第2の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第2の方向に1画素分ずれたアドレスから読み出す方式であることを特徴とする画像処理装置。
【請求項2】
前記制御手段は、前記1ライン分の画像データを前記記憶手段から読み出したことに応じて、前記矩形画像の書き込みを開始させることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記制御手段は、前記1ライン分の画像データを前記記憶手段から読み出した後、当該記憶手段の領域のうち当該画像データが記憶されていた領域に、次に入力される矩形画像を記憶することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段を有し、n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置を制御する制御方法であって、
第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御工程を有し、
前記第1の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記各矩形画像内の各画素の配置に対応するアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn画素分ずれたアドレスに書き込む方式であり、
前記第1の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn画素分ずれたアドレスから読み出す方式であり、
前記第2の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn×n画素分連続したアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第2の方向に1画素分ずれたアドレスに書き込む方式であり、
前記第2の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第2の方向に1画素分ずれたアドレスから読み出す方式であることを特徴とする画像処理装置の制御方法。
【請求項5】
コンピュータを、請求項1乃至3のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【請求項1】
n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置であって、
第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段と、
第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御手段とを有し、
前記第1の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記各矩形画像内の各画素の配置に対応するアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn画素分ずれたアドレスに書き込む方式であり、
前記第1の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn画素分ずれたアドレスから読み出す方式であり、
前記第2の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn×n画素分連続したアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第2の方向に1画素分ずれたアドレスに書き込む方式であり、
前記第2の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第2の方向に1画素分ずれたアドレスから読み出す方式であることを特徴とする画像処理装置。
【請求項2】
前記制御手段は、前記1ライン分の画像データを前記記憶手段から読み出したことに応じて、前記矩形画像の書き込みを開始させることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記制御手段は、前記1ライン分の画像データを前記記憶手段から読み出した後、当該記憶手段の領域のうち当該画像データが記憶されていた領域に、次に入力される矩形画像を記憶することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
第1の方向にn×mのアドレスを有し、前記第1の方向に直交する第2の方向にnのアドレスを有する記憶手段を有し、n×n画素で構成される矩形画像をm個入力し、n×m画素を1ラインとするライン単位の画像データをnライン出力する画像処理装置を制御する制御方法であって、
第1の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第1の読出方式で前記記憶手段から前記nラインのライン画像データを読み出すとともに、第2の書込方式で前記記憶手段に前記m個の矩形画像データを書き込んだ後に、第2の読出方式で前記記憶手段から前記nラインの画像データの読み出しを行う制御工程を有し、
前記第1の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記各矩形画像内の各画素の配置に対応するアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn画素分ずれたアドレスに書き込む方式であり、
前記第1の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn画素分ずれたアドレスから読み出す方式であり、
前記第2の書込方式は、
各矩形画像を前記記憶手段に書き込む際に、前記各矩形画像に含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn×n画素分連続したアドレスに書き込む方式であって、
(k+1)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第1の方向にn×n画素分ずれたアドレスに書き込み、
(k+2)番目の矩形画像を、前記記憶手段のアドレスのうちk番目の矩形画像から前記第2の方向に1画素分ずれたアドレスに書き込む方式であり、
前記第2の読出方式は、
各ラインの画像データを前記記憶手段から読み出す際に、前記各ラインの画像データに含まれる各画素を、前記記憶手段のアドレスのうち前記第1の方向にn画素分連続したアドレスからmセット分読み出す方式であって、
(k+1)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第1の方向にn×n画素分ずれたアドレスから読み出し、
(k+2)番目のセットを、前記記憶手段のアドレスのうちk番目のセットから前記第2の方向に1画素分ずれたアドレスから読み出す方式であることを特徴とする画像処理装置の制御方法。
【請求項5】
コンピュータを、請求項1乃至3のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2012−248226(P2012−248226A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2012−205032(P2012−205032)
【出願日】平成24年9月18日(2012.9.18)
【分割の表示】特願2007−216405(P2007−216405)の分割
【原出願日】平成19年8月22日(2007.8.22)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願日】平成24年9月18日(2012.9.18)
【分割の表示】特願2007−216405(P2007−216405)の分割
【原出願日】平成19年8月22日(2007.8.22)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]