(57)【特許請求の範囲】
【請求項１】
ターゲットのうちの処理領域に対して、該処理領域をｎ行ｍ列（ｎ，ｍは２以上の自然数）の複数の格子に分割し、各格子に対する少なくともドットの有無を決定するドットデータに基づいて、ヘッドのノズルから吐出する流体によるドットを前記処理領域に形成するにあたり、ドットデータに基づく値をカウントするカウント装置であって、
前記処理領域における各格子に対するドットデータを記憶するドットデータ記憶手段と、
ｍ個の値を１〜ｍ番目までの順序に対応付けて記憶でき、各値の初期値がゼロである第１合計値記憶手段及び第２合計値記憶手段と、
一方の前記合計値記憶手段からｐ番目（ｐはｍ以下の自然数）の値を読み出す読出処理を行う読出手段と、
前記処理領域のｑ行目（ｑはｎ以下の自然数）のｐ列目の格子のドットデータを前記ドットデータ記憶手段から読み出し、該ドットデータに基づく値を、前記読出手段が読み出したｐ番目の値に加算する加算処理を行う加算手段と、
前記加算手段による加算後の値を他方の前記合計値記憶手段にｐ番目の値として記憶する書込処理を行う書込手段と、
を備え、
前記読出手段は、ｐ番目の値を読み出した後、該読み出した値を前記加算手段が加算するのを待つことなく次のｐ＋１番目の読出処理を行うという手順を、１番目からｍ番目まで繰り返す手段であり、
前記加算手段は、ｑ行目のｐ列目の格子のドットデータに基づく値を前記読み出されたｐ番目の値に加算した後、該加算した値を前記書込手段がｐ番目の値として記憶するのを待つことなく次のｐ＋１番目の加算処理を行うという手順と、１番目からｍ番目まで加算処理を繰り返す手段であり、
前記読出手段，前記加算手段及び前記書込手段が前記読出処理，前記加算処理及び前記書込処理をｐ番目についてそれぞれ実行する格子処理を行い、該格子処理を１番目からｍ番目までｍ回実行する行処理を行い、該行処理を前記処理領域の１行目からｎ行目までｎ回実行する合計処理を行うにあたり、該合計処理における奇数回目の行処理では前記読出手段が前記第１合計値記憶手段から読み出して前記書込手段が前記第２合計値記憶手段に書き込み、該合計処理における偶数回目の行処理では前記読出手段が前記第２合計値記憶手段から読み出して前記書込手段が前記第１合計値記憶手段に書き込む、
カウント装置。
【請求項２】
前記ヘッドは、行方向にｎ個のノズルが並んだヘッドである、
請求項１に記載のカウント装置。
【請求項３】
請求項２に記載のカウント装置であって、
ｋ個の値を１〜ｋ番目（ｋはｍより大きい自然数）までの順序に対応付けて記憶でき、各値の初期値がゼロである走査列記憶手段、
を備え、
前記ヘッドは、ターゲット上を１回移動する間に前記ターゲットのうちのｎ行ｋ列の格子で構成される走査領域に前記ノズルから流体を吐出する装置であり、
前記読出手段，前記加算手段及び前記書込手段は、前記ｎ行ｋ列の走査領域に対して前記ｎ行ｍ列の処理領域の合計処理を複数回行うことで前記走査領域の１列目からｋ列目の各列におけるドットデータに基づく値の合計を求めるにあたり、前記合計処理を１回行う度に前記書込手段が最後に書き込んだ方の合計値記憶手段に記憶された前記処理領域の各列におけるドットデータに基づく値の合計値を、前記走査列記憶手段の１番目からｋ番目のうち前記走査領域の１列目からｋ列目における前記合計処理を行った処理領域の１列目からｍ列目が対応する位置と同じ位置の値として前記走査列記憶手段に記憶し、次の合計処理を行う前に第１合計値記憶手段及び第２合計値記憶手段に記憶された値をクリアする手段である、
カウント装置。
【請求項４】
前記ノズルは、大ドット，中ドット及び小ドットの三種類のドットを形成できる装置であり、
前記ドットデータは、各格子に対する少なくともドットの種類及びドットの有無を決定するデータである、
請求項１〜３のいずれか１項に記載のカウント装置。
【請求項５】
前記ドットデータに基づく値は、ドットが大きいほど大きい値である、
請求項４に記載のカウント装置。
【請求項６】
ターゲットのうちの処理領域に対して、該処理領域をｎ行ｍ列（ｎ，ｍは２以上の自然数）の複数の格子に分割し、各格子に対する少なくともドットの有無を決定するドットデータに基づいて、ヘッドのノズルから吐出する流体によるドットを前記処理領域に形成するにあたり、ドットデータに基づく値をカウントするカウント方法であって、
（Ａ）ｍ個の値を１〜ｍ番目までの順序に対応付けて記憶でき、各値の初期値がゼロである第１合計値記憶手段及び第２合計値記憶手段のうちの一方の前記合計値記憶手段から、ｐ番目（ｐはｍ以下の自然数）の値を読み出す読出処理を行うステップと、
（Ｂ）前記処理領域における各格子に対するドットデータを記憶するドットデータ記憶手段から、前記処理領域のｑ行目（ｑはｎ以下の自然数）のｐ列目の格子のドットデータを読み出し、該ドットデータに基づく値を、前記ステップ（Ａ）で読み出したｐ番目の値に加算する加算処理を行うステップと、
（Ｃ）前記ステップ（Ｂ）後の値を第１合計値記憶手段及び第２合計値記憶手段のうちの他方の合計値記憶手段にｐ番目の値として記憶する書込処理を行うステップと、
を含み、
前記ステップ（Ａ）については、ｐ番目の値を読み出した後、該読み出した値を加算する前記ステップ（Ｂ）を待つことなく次のｐ＋１番目の読出処理を行うという手順を、１番目からｍ番目まで繰り返し行い、
前記ステップ（Ｂ）については、ｑ行目のｐ列目の格子のドットデータに基づく値を前記ステップ（Ａ）で読み出されたｐ番目の値に加算した後、該加算した値をｐ番目の値として記憶する前記ステップ（Ｂ）を待つことなく次のｐ＋１番目の加算処理を行うという手順を、１番目からｍ番目まで繰り返し行い、
前記ステップ（Ａ）、（Ｂ）及び（Ｃ）をｐ番目についてそれぞれ実行する格子処理を行い、該格子処理を１番目からｍ番目までｍ回実行する行処理を行い、該行処理を前記処理領域の１行目からｎ行目までｎ回実行する合計処理を行うにあたり、該合計処理における奇数回目の行処理では前記ステップ（Ａ）で前記第１合計値記憶手段から読み出して前記ステップ（Ｃ）で前記第２合計値記憶手段に書き込み、該合計処理における偶数回目の行処理では前記ステップ（Ａ）で前記第２合計値記憶手段から読み出して前記ステップ（Ｃ）で前記第１合計値記憶手段に書き込む、
カウント方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カウント装置及びカウント方法に関する。
【背景技術】
【０００２】
従来、インクジェット方式の印刷装置において、複数のノズルを有するヘッドからインクを吐出して用紙にドットを形成する際に、ドット数によって印刷方法を変更する場合がある。例えば、特許文献１に記載の画像記録装置は、記録領域における各区画のドット数がある閾値を超えた場合に、ヘッドの複数の走査で１走査分の記録を行う。これにより、１走査で記録する際の単位時間当たりのヘッドの負荷を減らし、低パワーの電源でも動作できるようにしている。
【特許文献１】特許第３１７９６７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ここで、ドット数によって印刷方法を変更するためには、ドットデータに基づいてドットを形成する前に、ドット数を合計する必要がある。この場合、ＲＡＭ等の記憶媒体に順次ドット数を加算することになるが、このような処理を行うためにはＲＡＭからの現在のドット数の読み出し，読み出したドット数への加算及び加算後のドット数のＲＡＭへの書き込みという３つの処理を１ドット分のデータについて行うことになり、加算後のドット数が書き込まれるのを待って次の読み出し，加算及び書き込みの３つの処理を行う必要がある（図１１参照）。そのため、数多くのドット数を合計するのに大量の処理時間を要するという問題がある。
【０００４】
本発明は、上述した課題に鑑みなされたものであり、ドットデータに基づく値の合計をより高速に行うカウント装置を提供することを主目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上述の主目的を達成するために以下の手段を採った。
【０００６】
本発明のカウント装置は、
ターゲットのうちの処理領域に対して、該処理領域をｎ行ｍ列（ｎ，ｍは２以上の自然数）の複数の格子に分割し、各格子に対する少なくともドットの有無を決定するドットデータに基づいて、ヘッドのノズルから吐出する流体によるドットを前記処理領域に形成するにあたり、ドットデータに基づく値をカウントするカウント装置であって、
前記処理領域における各格子に対するドットデータを記憶するドットデータ記憶手段と、
ｍ個の値を１〜ｍ番目までの順序に対応付けて記憶でき、各値の初期値がゼロである第１合計値記憶手段及び第２合計値記憶手段と、
一方の前記合計値記憶手段からｐ番目（ｐはｍ以下の自然数）の値を読み出す読出処理を行う読出手段と、
前記処理領域のｑ行目（ｑはｎ以下の自然数）のｐ列目の格子のドットデータを前記ドットデータ記憶手段から読み出し、該ドットデータに基づく値を、前記読出手段が読み出したｐ番目の値に加算する加算処理を行う加算手段と、
前記加算手段による加算後の値を他方の前記合計値記憶手段にｐ番目の値として記憶する書込処理を行う書込手段と、
を備え、
前記読出手段は、ｐ番目の値を読み出した後、該読み出した値を前記加算手段が加算するのを待つことなく次のｐ＋１番目の読出処理を行うという手順を、１番目からｍ番目まで繰り返す手段であり、
前記加算手段は、ｑ行目のｐ列目の格子のドットデータに基づく値を前記読み出されたｐ番目の値に加算した後、該加算した値を前記書込手段がｐ番目の値として記憶するのを待つことなく次のｐ＋１番目の加算処理を行うという手順と、１番目からｍ番目まで加算処理を繰り返す手段であり、
前記読出手段，前記加算手段及び前記書込手段が前記読出処理，前記加算処理及び前記書込処理をｐ番目についてそれぞれ実行する格子処理を行い、該格子処理を１番目からｍ番目までｍ回実行する行処理を行い、該行処理を前記処理領域の１行目からｎ行目までｎ回実行する合計処理を行うにあたり、該合計処理における奇数回目の行処理では前記読出手段が前記第１合計値記憶手段から読み出して前記書込手段が前記第２合計値記憶手段に書き込み、該合計処理における偶数回目の行処理では前記読出手段が前記第２合計値記憶手段から読み出して前記書込手段が前記第１合計値記憶手段に書き込む、
ものである。
【０００７】
このカウント装置では、ｍ個の値を記憶する第１合計値記憶手段及び第２合計値記憶手段の一方から読出手段が値を読み出し他方に書込手段が値を書き込む格子処理を行う。そして、この格子処理を１番目からｍ番目までｍ回実行する行処理を行うにあたり、読出手段はｐ番目の読出処理で読み出した値を加算手段が加算するのを待つことなく次のｐ＋１番目の読出処理を行い、加算手段はｑ行目のｐ列目の加算処理で加算した値を書込手段が書き込むのを待つことなく次のｐ＋１番目の加算処理を行う。こうすることにより、行処理にかかる時間、すなわちｍ個の格子のドットデータに基づく値をカウントする処理時間が短くなる（図１０参照）。そして、この行処理を１行目からｎ行目までｎ回実行する合計処理を行うにあたり、読出手段が第１合計値記憶手段から読み出して書込手段が第２合計値記憶手段に書き込む行処理と、読出手段が第２合計値記憶手段から読み出して書込手段が第１合計値記憶手段に書き込む行処理とを交互に繰り返すことで、最後のｎ行目の行処理時に書き込んだ方の合計値記憶手段に、ｎ行ｍ列の格子の各列におけるｎ個の格子のドットデータに基づく値の合計値がｍ列分記憶される。したがって、ｎ行ｍ列の格子のドットデータに基づく値の合計をより高速に行うことができる。なお、合計処理で得られたｍ個の値をノズルから流体を吐出する方法の変更に利用してもよいし、ｍ個の値をさらに合計した値をノズルから流体を吐出する方法の変更に利用してもよい。ここで、ドットデータに基づく値とは、少なくともドットの有無に依存する値である。ドットの有無に加えてドットの種類や大きさに依存するようにしてもよい。
【０００８】
本発明のカウント装置は、前記ヘッドは、行方向にｎ個のノズルが並んだヘッドであるものとしてもよい。ノズルから流体を吐出する方法を変更する際には、ヘッドに並んだｎ行のノズルが形成するｎ行のドットデータに基づく値の合計値に基づいて行うことが多い。このカウント装置では、合計処理によってノズルと同じｎ行の処理領域について合計処理を行うため、ノズルから流体を吐出する方法の変更に利用しやすい形で、ドットデータに基づく値の合計をより高速に行うことができる。
【０００９】
本発明のカウント装置は、ｋ個の値を１〜ｋ番目（ｋはｍより大きい自然数）までの順序に対応付けて記憶でき、各値の初期値がゼロである走査列記憶手段、を備え、前記ヘッドは、ターゲット上を１回移動する間に前記ターゲットのうちのｎ行ｋ列の格子で構成される走査領域に前記ノズルから流体を吐出する装置であり、前記読出手段，前記加算手段及び前記書込手段は、前記ｎ行ｋ列の走査領域に対して前記ｎ行ｍ列の処理領域の合計処理を複数回行うことで前記走査領域の１列目からｋ列目の各列におけるドットデータに基づく値の合計を求めるにあたり、前記合計処理を１回行う度に前記書込手段が最後に書き込んだ方の合計値記憶手段に記憶された前記処理領域の各列におけるドットデータに基づく値の合計値を、前記走査列記憶手段の１番目からｋ番目のうち前記走査領域の１列目からｋ列目における前記合計処理を行った処理領域の１列目からｍ列目が対応する位置と同じ位置の値として前記走査列記憶手段に記憶し、次の合計処理を行う前に第１合計値記憶手段及び第２合計値記憶手段に記憶された値をクリアする手段であるものとしてもよい。ノズルから流体を吐出する方法を変更する際には、ヘッドがターゲット上を１回移動する間に流体を吐出するｎ行ｋ列の格子で構成される走査領域におけるドットデータに基づく値の合計値に基づいて行うことが多い。このカウント装置では、ｎ行ｋ列の走査領域に対してｎ行ｍ列の処理領域の合計処理を繰り返すことで、ｎ行ｋ列の走査領域の格子の１行目からｋ行目の各列におけるｎ個の格子のドットデータに基づく値の合計値が走査列記憶手段に１番目からｋ番目までのｋ個の値として記憶される。したがって、ｎ行ｋ列の格子で構成される走査領域のドットデータに基づく値の合計をより高速に行うことができる。なお、「ヘッドがターゲット上を１回移動する」は、相対的な意味での移動であり、ヘッドが固定されていてターゲットが移動する場合も含む。また、ｎ行ｍ列の合計処理を繰り返すにあたっては、合計処理ごとに値ｍが異なっていてもよい。例えば、ｎ行１８列の走査領域に対してｎ行５列の合計処理３回とｎ行３列の合計処理１回を行ってもよいし、ｎ行４列の合計処理２回とｎ行５列の合計処理２回を行ってもよい。
【００１０】
本発明のカウント装置は、前記ノズルは、大ドット，中ドット及び小ドットの三種類のドットを形成できる装置であり、前記ドットデータは、各格子に対する少なくともドットの種類及びドットの有無を決定するデータであるものとしてもよい。ノズルから大ドット，中ドット及び小ドットの三種類のドットを形成できる場合にも、少なくともドットの種類及びドットの有無を決定するデータであるドットデータに基づく値の合計値に基づいてノズルから流体を吐出する方法の変更を行うことが多い。上述したカウント装置では、このような場合にもドットデータに基づく値の合計をより高速に行うことができる。また、前記ドットデータに基づく値は、ドットが大きいほど大きい値であるものとしてもよい。大きいドットを形成する場合ほど、必要な流体の量やヘッドの負荷が大きくなるため、ドットが大きいほど大きくなる値についての合計処理を行うことで、ノズルから流体を吐出する方法の変更に利用しやすい形で、ドットデータに基づく値の合計をより高速に行うことができる。
【００１１】
本発明のカウント方法は、
ターゲットのうちの処理領域に対して、該処理領域をｎ行ｍ列（ｎ，ｍは２以上の自然数）の複数の格子に分割し、各格子に対する少なくともドットの有無を決定するドットデータに基づいて、ヘッドのノズルから吐出する流体によるドットを前記処理領域に形成するにあたり、ドットデータに基づく値をカウントするカウント方法であって、
（Ａ）ｍ個の値を１〜ｍ番目までの順序に対応付けて記憶でき、各値の初期値がゼロである第１合計値記憶手段及び第２合計値記憶手段のうちの一方の前記合計値記憶手段から、ｐ番目（ｐはｍ以下の自然数）の値を読み出す読出処理を行うステップと、
（Ｂ）前記処理領域における各格子に対するドットデータを記憶するドットデータ記憶手段から、前記処理領域のｑ行目（ｑはｎ以下の自然数）のｐ列目の格子のドットデータを読み出し、該ドットデータに基づく値を、前記ステップ（Ａ）で読み出したｐ番目の値に加算する加算処理を行うステップと、
（Ｃ）前記ステップ（Ｂ）後の値を第１合計値記憶手段及び第２合計値記憶手段のうちの他方の合計値記憶手段にｐ番目の値として記憶する書込処理を行うステップと、
を含み、
前記ステップ（Ａ）については、ｐ番目の値を読み出した後、該読み出した値を加算する前記ステップ（Ｂ）を待つことなく次のｐ＋１番目の読出処理を行うという手順を、１番目からｍ番目まで繰り返し行い、
前記ステップ（Ｂ）については、ｑ行目のｐ列目の格子のドットデータに基づく値を前記ステップ（Ａ）で読み出されたｐ番目の値に加算した後、該加算した値をｐ番目の値として記憶する前記ステップ（Ｂ）を待つことなく次のｐ＋１番目の加算処理を行うという手順を、１番目からｍ番目まで繰り返し行い、
前記ステップ（Ａ）、（Ｂ）及び（Ｃ）をｐ番目についてそれぞれ実行する格子処理を行い、該格子処理を１番目からｍ番目までｍ回実行する行処理を行い、該行処理を前記処理領域の１行目からｎ行目までｎ回実行する合計処理を行うにあたり、該合計処理における奇数回目の行処理では前記ステップ（Ａ）で前記第１合計値記憶手段から読み出して前記ステップ（Ｃ）で前記第２合計値記憶手段に書き込み、該合計処理における偶数回目の行処理では前記ステップ（Ａ）で前記第２合計値記憶手段から読み出して前記ステップ（Ｃ）で前記第１合計値記憶手段に書き込む、
ものである。
【００１２】
このカウント方法では、ｍ個の値を記憶する第１合計値記憶手段及び第２合計値記憶手段の一方からステップ（Ａ）で値を読み出し他方にステップ（Ｃ）で値を書き込む。また、格子処理を１番目からｍ番目までｍ回実行する行処理を行うにあたり、ステップ（Ａ）についてはｐ番目に読み出した値にステップ（Ｂ）で加算するのを待つことなく次のｐ＋１番目の読出処理を行い、ステップ（Ｂ）についてはｑ行目のｐ列目のドットデータに基づく値を加算処理で加算した値をステップ（Ｃ）で書き込むのを待つことなく次のｐ＋１番目の加算処理を行う。こうすることにより、行処理にかかる時間、すなわちｍ個の格子のドットデータに基づく値をカウントする処理時間が短くなる。そして、この行処理を１行目からｎ行目までｎ回実行する合計処理を行うにあたり、ステップ（Ａ）で第１合計値記憶手段から読み出してステップ（Ｃ）で第２合計値記憶手段に書き込む行処理と、ステップ（Ａ）で第２合計値記憶手段から読み出してステップ（Ｃ）で書込手段が第１合計値記憶手段に書き込む行処理とを交互に繰り返すことで、最後のｎ行目の行処理時に書き込んだ方の合計値記憶手段に、ｎ行ｍ列の格子の各列におけるｎ個の格子のドットデータに基づく値の合計値がｍ列分記憶される。したがって、ｎ行ｍ列の格子のドットデータに基づく値の合計をより高速に行うことができる。なお、本発明のカウント方法は、上述したいずれかのカウント装置が備えている各種構成を備えていてもよいし、上述したいずれかのカウント装置の機能を実現するようなステップを追加してもよい。
【発明を実施するための最良の形態】
【００１３】
次に、本発明の実施の形態を図面に基づいて説明する。図１は、本実施形態であるマルチファンクションプリンタ１０の斜視図、図２はコントローラ５０及びその周辺の構成を示すブロック図である。
【００１４】
本実施形態のマルチファンクションプリンタ１０は、図１に示すように、用紙Ｐへの印刷を実行するプリンタユニット２０と、ガラス台３６に載置された書類を読み取るスキャナユニット３０と、各種情報をディスプレイ４２に表示したりユーザの指示をボタン類４４の操作を介して入力したりする操作パネル４０と、ＵＳＢデバイスを接続可能なＵＳＢポート４６と、携帯用の記憶媒体であるメモリカードを装着・取外し可能であるカードスロット４８と、装置全体の制御を司るコントローラ５０と、を備えている。
【００１５】
プリンタユニット２０は、コントローラ５０に含まれるプリンタコントロールユニット５６（図２参照）によって制御されるものであり、プリンタコントロールユニット５６から受け取った印刷指令に基づいて１８０ｄｐｉ×１８０ｄｐｉの出力解像度で画像を用紙Ｐに出力する。このプリンタユニット２０は、図２に示すように、左右方向にループ状に架け渡されたタイミングベルト２１により駆動されガイド２２に沿って左右に往復動するキャリッジ２３と、このキャリッジ２３に搭載されシアン（Ｃ）・マゼンタ（Ｍ）・イエロー（Ｙ）・ブラック（Ｋ）の各色のインクを個別に収容したインクカートリッジ２４と、各インクカートリッジ２４から供給された各インクに圧力をかけてノズルから用紙Ｐに向かってインクを噴射するヘッド２５と、背面側から供給された用紙Ｐを手前側へ送り出す搬送ローラ２６とを備えている。ヘッド２５は、図３に示すように、ＣＭＹＫ各色について複数のノズル（ここでは＃１〜＃１８０までの１８０個のノズル）がキャリッジ２３の移動方向（主走査方向）と直交する方向に並んだノズル列２８Ｃ，２８Ｍ，２８Ｙ，２８Ｋを有している。なお、用紙Ｐの搬送方向（副走査方向）はノズル列と平行である。各ノズルには図示しない圧電素子が設けられており、これを電圧によって変形させてインクを加圧し、用紙Ｐにドットを形成することができる。また、圧電素子への駆動パルスの波形を調整することで大、中、小のドットを作り分けることができる。キャリッジ２３は、用紙Ｐの左右端や上下端を検出する紙端検出センサ２７を備えている。この紙端検出センサ２７は、供給される用紙Ｐに対して印刷前にキャリッジ２３が左右方向に走査したときにその用紙Ｐの左右端を検出して用紙幅の認識を可能にしたり、印刷途中で用紙Ｐの後端を検出して用紙長さの認識を可能にしたりする。
【００１６】
スキャナユニット３０は、コントローラ５０に含まれるスキャナコントロールユニット５４（図２参照）によって制御されるものであり、スキャナコントロールユニット５４がコントローラ５０からスキャン指令を受けると、ガラス台３６に載置された書類を画像データとして読み取る。このスキャナユニット３０は、周知のイメージスキャナとして構成され、書類に向かって発光したあとの反射光をレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の各色に分解してスキャンデータとする周知のカラーイメージセンサを備えている。
【００１７】
コントローラ５０は、図２に示すように、ＣＰＵ５１等を搭載したＳＯＣ（System On a Chip）として構成されており、ＵＳＢポート４６を介して接続されたＵＳＢデバイスとデータのやり取りを行うＵＳＢコントロールユニット５２と、カードスロット４８に装着されたメモリカードとデータのやり取りを行うカードコントロールユニット５３と、スキャナユニット３０を制御するスキャナコントロールユニット５４と、ＣＰＵ５１が印刷を指示した画像データをイメージデータに変換したり、後述するドットカウント処理を行ったりする画像処理ユニット５５と、プリンタユニット２０を制御するプリンタコントロールユニット５６と、データを読み書き可能なＳＤＲＡＭ７０へのＣＰＵ５１及び各コントロールユニットからのアクセス要求を調停するＳＤＲＡＭコントロールユニット５７とを備え、これらはバス８０を介して互いに信号のやりとりが可能なように接続されている。また、操作パネル４０やＲＯＭ６０もバス８０を介してコントローラ５０と接続されている。ＲＯＭ６０は、各種処理プログラムや各種データ、各種テーブルなどを記憶したものである。このコントローラ５０は、プリンタユニット２０やスキャナユニット３０からの各種動作信号や各種検出信号を入力したり、操作パネル４０のボタン類４４の押下に応じて発生する操作信号を入力したり、ＵＳＢポート４６に接続されたＵＳＢデバイスやカードスロット４８に装着されたメモリカードとのデータのやり取りをしたりする。また、画像の印刷を実行するようプリンタコントロールユニット５６に印刷指令を出力したり、ガラス台３６に載置された書類を画像データとして読み取るようスキャナコントロールユニット５４にスキャン指令を出力したり、ディスプレイ４２に各種情報を表示出力したりする。
【００１８】
画像処理ユニット５５は、図４に示すように、ＳＤＲＡＭ７０のＲＧＢデータバッファ７０ａに記憶されたＲＧＢの画像データを入力するデータ入力ユニット５５ａと、入力したＲＧＢの画像データをＳＤＲＡＭ７０の色変換ルックアップテーブル（ＬＵＴ）７０ｂを参照してＣＭＹＫの画像データに変換する色変換ユニット５５ｂと、ＣＭＹＫの画像データをＣＭＹＫ各２ビットの２値化データに変換してＳＤＲＡＭ７０の２値化データバッファ７０ｃに記憶する２値化ユニット５５ｃと、２値化データバッファ７０ｃに記憶された２値化データに対して後述するドットカウント処理を行いカウント結果をカウント結果バッファ７０ｄに記憶するドットカウントユニット５５ｄと、２値化データバッファ７０ｃに記憶された２値化データからヘッドの１走査分の２値化データを取り出してイメージデータとしてイメージデータバッファ７０ｅに記憶するデータ取り出しユニット５５ｅとを備えている。ここで、２値化データは「００」が無ドット、「０１」が小ドット、「１０」が中ドット、「１１」が大ドットを表す。そして、ＣＰＵ５１は、カウント結果バッファ７０ｄに記憶されたカウント結果に基づいてイメージデータバッファ７０ｅから１走査分のイメージデータを読み出し、プリンタコントロールユニット５６を介してそのイメージデータに基づいて印刷が行われるようプリンタユニット２０を制御する。なお、ＲＧＢデータバッファ７０ａには、スキャナユニット３０，ＵＳＢポート４６，カードスロット４８を介して入力されたＲＧＢの画像データが記憶される。また、図４ではＳＤＲＡＭコントロールユニット５７の記載を省略しており、実際のＳＤＲＡＭ７０とのデータのやり取りはＳＤＲＡＭコントロールユニット５７を介して行われる。
【００１９】
ドットカウントユニット５５ｄは、図５に示すように、カウントコントロールユニット９０，リード制御ユニット９１，加算器９２，ライト制御ユニット９３，ＳＲＡＭ９４〜９５，加算値レジスタ９６，データリードユニット９７，レジスタ１００〜１０３，セレクタ１０４〜１０６を備えている。なお、図５ではＳＤＲＡＭコントロールユニット５７の記載を省略しており、実際のＳＤＲＡＭ７０とのデータのやり取りはＳＤＲＡＭコントロールユニット５７を介して行われる。
【００２０】
カウントコントロールユニット９０は、ＣＰＵ５１からの指令に基づいて後述するドットカウント処理を開始・終了するユニットであり、処理の開始を指示する１ｂｉｔの信号ｓｔａｒｔのリード制御ユニット９１及びデータリードユニット９７への出力や、セレクタ１０４〜１０６が出力する値を選択する１ｂｉｔの信号ｄｉｒのセレクタ１０４〜１０６への出力等を行う。
【００２１】
リード制御ユニット９１は、値０〜６３までのアドレスを表すアドレス信号ａｄｒ，ＳＲＡＭ９４，９５に対する読み出し及び書き込みの指示やデータリードユニット９７に対するデータｓｅｌの出力の指示をする１ｂｉｔの選択信号ｃｅｘ，ＳＲＡＭ９４，９５に書き込み及び読み出しのいずれを指示するかを決定する１ｂｉｔの書込信号ｗｅｘをクロック信号（ＣＬＫ）の立ち上がりごとにセレクタ１０４，１０６を介してＳＲＡＭ９４，９５へ出力し、アドレス信号ａｄｒで指定したアドレスに対応する値をＳＲＡＭ９４，９５から読み出す。信号ａｄｒ，ｃｅｘについてはクロック信号の立ち上がりごとにレジスタ１００へも出力する。また、アドレス６３を表すアドレス信号ａｄｒを出力するときには、０〜６３までのアドレスを全て出力したことを示す１ｂｉｔの信号ｅｎｄをカウントコントロールユニット９０へ出力する。
【００２２】
ライト制御ユニット９３は、レジスタ１０１から入力された信号ａｄｒ，ｃｅｘと、書込信号ｗｅｘとをクロック信号の立ち上がりごとにセレクタ１０６へ出力し、加算器９２から入力された加算値ｃをクロック信号の立ち上がりごとにＳＲＡＭ９４，９５へ出力し、加算値ｃをアドレス信号ａｄｒで指定したアドレスに対応する値としてＳＲＡＭ９４，９５に書き込む。
【００２３】
ＳＲＡＭ９４，ＳＲＡＭ９５は、それぞれ２４ｂｉｔのデータｄ０〜ｄ６３を値０〜６３のアドレスに対応付けて記憶できるものであり、クロック信号立ち上がり時に選択信号ｃｅｘとして値０，書込信号ｗｅｘとして値１が入力されている時はアドレス信号ａｄｒの値のアドレスに対応付けられている値を出力ポートｄｏからセレクタ１０５へ出力し、クロック信号立ち上がり時に選択信号ｃｅｘとして値０，書込信号ｗｅｘとして値０が入力されている時は入力ポートｄｉに入力されている値をアドレス信号ａｄｒの値のアドレスに対応付けられている値として記憶する。なお、選択信号ｃｅｘとして値１が入力されているときは、書込信号ｗｅｘの値に関わらず、出力ポートｄｏへの値の出力及び入力ポートｄｉに入力されている値の記憶は行わない。
【００２４】
データリードユニット９７は、カウントコントロールユニット９０から信号ｓｔａｒｔが入力されると、ＳＤＲＡＭ７０の２値化データバッファ７０ｃから読み出した１２８ｂｉｔの２値化データを各２ｂｉｔの６４個のデータＳ０〜Ｓ６３として記憶し、記憶が完了すると、準備が完了したことを意味する１ｂｉｔの信号ｒｅａｄｙをリード制御ユニット９１へ出力する。また、レジスタ１００から選択信号ｃｅｘとして値０が入力されると、クロック信号の立ち上がりごとにＳ０〜Ｓ６３を順番にデータｓｅｌとして加算値レジスタ９６へ出力する。
【００２５】
加算値レジスタ９６は、データリードユニット９７から入力されたデータｓｅｌに応じた２４ｂｉｔのデータａｄｄを出力するものであり、無ドットを表す「００」が入力されると「０ｘ００００００」（１０進数表記では「０」。０ｘは１６進数表記であることを表す）を出力し、小ドットを表す「０１」が入力されると「０ｘ００００１４」（１０進数表記では「２０」）を出力し、中ドットを表す「１０」が入力されると「０ｘ００００３２」（１０進数表記では「５０」）を出力し、大ドットを表す「１１」が入力されると「０ｘ００００６４」（１０進数表記では「１００」）を出力する。ここで、加算値レジスタ９６が出力する４つの値は、それぞれのドットを形成する際のヘッドの負荷に応じて重みを付けた値である。
【００２６】
加算器９２は、リード制御ユニット９１がＳＲＡＭ９４，９５から読み出しレジスタ１０２を介して入力される値と、レジスタ１０３を介して加算値レジスタ９６から出力された値との加算値ｃをライト制御ユニット９３に出力するものである。
【００２７】
レジスタ１００〜１０３は、各信号の入出力タイミングを調整するためにクロック信号立ち上がり時の値を次のクロック信号立ち上がり時まで保持するものである。レジスタ１００はリード制御ユニット９１から入力される信号ａｄｒ，ｃｅｘを保持してデータリードユニット９７へ選択信号ｃｅｘを、レジスタ１０１へ信号ａｄｒ，ｃｅｘを出力する。レジスタ１０１はレジスタ１００から入力される信号ａｄｒ，ｃｅｘを保持してライト制御ユニット９３へ出力し、レジスタ１０２はセレクタ１０５を介して入力されるＳＲＡＭ９４又はＳＲＡＭ９５の出力ポートｄｏからの値ｄｏを保持して加算器９２へ出力する。レジスタ１０３は加算値レジスタ９６から入力されるデータａｄｄを保持して加算器９２へ出力する。
【００２８】
セレクタ１０４〜１０６は、カウントコントロールユニット９０からの信号ｄｉｒの値によって、入力される２つの値のうちのいずれかのみを出力するものである。セレクタ１０４は信号ｄｉｒが値０のときはリード制御ユニット９１から入力される信号ａｄｄ，ｃｅｘ，ｗｅｘをＳＲＡＭ９４へ出力し、信号ｄｉｒが値１のときはライト制御ユニット９３から入力される信号ａｄｄ，ｃｅｘ，ｗｅｘをＳＲＡＭ９４へ出力する。セレクタ１０５は信号ｄｉｒが値０のときはＳＲＡＭ９４の出力ポートｄｏから入力される値をレジスタ１０２へ出力し、信号ｄｉｒが値１のときはＳＲＡＭ９５の出力ポートｄｏから入力される値をレジスタ１０２へ出力する。セレクタ１０６は信号ｄｉｒが値０のときはライト制御ユニット９３から入力される信号ａｄｄ，ｃｅｘ，ｗｅｘをＳＲＡＭ９５へ出力し、信号ｄｉｒが値１のときはリード制御ユニット９１から入力される信号ａｄｄ，ｃｅｘ，ｗｅｘをＳＲＡＭ９５へ出力する。
【００２９】
ここで、印刷する画像の２値化データについて説明する。２値化データバッファ７０ｃには、図６に示すように、印刷すべき画像データを色変換処理及び２値化処理した後のデータである２値化データがＣＭＹＫについてそれぞれ記憶されている。この２値化データは、無ドット，小ドット，中ドット，大ドットを表す２ビットのドットデータを列方向及び行方向に並べたデータである。なお、列方向は主走査方向と同じ方向であり、行方向は副走査方向と同じ方向である。図６では、例としてＡ４（１２インチ×９インチ）の用紙に印刷する１０インチ×８インチの画像のシアンについての２値化データを示している。本実施形態のプリンタユニット２０の出力解像度は１８０ｄｐｉ×１８０ｄｐｉであるので、主走査方向に１４４０（１８０×８）個、副走査方向に１８００（１８０×１０）個のドットデータが並んでいる。なお、ヘッド２５のシアンのノズルは１８０個であるため、ヘッド２５の１走査で１８０行１４４０列のドットデータに基づくシアンのドットが用紙Ｐに形成される。
【００３０】
次に、こうして構成されたマルチファンクションプリンタ１０における、図６で示したこのシアンの２値化データに対してドットカウントユニット５５ｄがドットカウント処理を行う場合について説明する。
【００３１】
図７は、ドットカウントユニット５５ｄが行うドットカウント処理のタイミングチャートの一例である。ＣＰＵ５１がドットカウントユニット５５ｄにドットカウント処理を行うよう指示すると、カウントコントロールユニット９０は、まず、時刻ｔ０のクロック信号立ち上がり時において信号ｓｔａｒｔを値１としてデータリードユニット９７及びリード制御ユニット９１に入力する。データリードユニット９７は、信号ｓｔａｒｔが入力されると、２値化データバッファ７０ｃに記憶された２値化データを取り出して記憶する。本実施形態では、ＳＤＲＡＭ７０から一度に取り出せるデータは１２８ｂｉｔ、すなわち６４個分のドットデータである。そのため、データリードユニット９７は、２値化データバッファ７０ｃに記憶されている２値化データのうち１行目のデータを順番に６４列分取り出してデータＳ０〜Ｓ６３として記憶する（図８参照）。データの記憶が完了すると、データリードユニット９７は、次のクロック信号立ち上がり時である時刻ｔ１に信号ｒｅａｄｙをリード制御ユニット９１に入力する。リード制御ユニット９１は、信号ｓｔａｒｔと信号ｒｅａｄｙとが共に入力されると、次のクロック信号立ち上がり時である時刻ｔ２からアドレス信号ａｄｒとして値０を出力し、選択信号ｃｅｘを値０にする。また、リード制御ユニット９１は読出のみを行うため、常に書込信号ｗｅｘとして値１を出力している。リード制御ユニット９１から出力された信号ａｄｒ，ｃｅｘ，ｗｅｘは、セレクタ１０４に入力される。ドットカウント処理の開始時は、カウントコントロールユニット９０からの信号ｄｉｒは値０になっており、信号ａｄｒ，ｃｅｘ，ｗｅｘはセレクタ１０４を介してＳＲＡＭ９４に入力される。そのため、ＳＲＡＭ９４は、時刻ｔ３の立ち上がり時においてアドレス信号ａｄｒとして値０，選択信号ｃｅｘとして値０，書込信号ｗｅｘとして値１が入力され、アドレス０に対応する値であるデータｄ０を出力する。ＳＲＡＭ９４のデータｄ０〜ｄ６３の初期値は「０ｘ００００００」であるため、ここで出力されるデータｄ０の値は「０ｘ００００００」である。時刻ｔ３でデータｄ０が出力されると、レジスタ１０２は時刻ｔ４〜ｔ５の間それを保持して加算器９２にデータａとしてデータｄ０すなわち値「０ｘ００００００」を出力し続ける。
【００３２】
時刻ｔ２におけるリード制御ユニット９１からの信号ａｄｒ，ｃｅｘは、レジスタ１００にも出力される。レジスタ１００はクロック信号立ち上がり時の値を次のクロック信号立ち上がり時まで保持するため、時刻ｔ２におけるリード制御ユニット９１からの信号ａｄｒ，ｃｅｘは時刻ｔ３〜時刻ｔ４の間保持され、アドレス信号ａｄｒはレジスタ１０１に、信号ｃｅｘはレジスタ１０１及びデータリードユニット９７に出力され続ける。
【００３３】
データリードユニット９７は、２値化データバッファ７０ｃに記憶された２値化データの取得及び記憶が完了した時刻ｔ１以降、記憶した１２８ｂｉｔの値のうちの最初の２ｂｉｔであるデータＳ０をデータｓｅｌとして出力する。データＳ０の値は「１１」である（図８参照）。そして、選択信号ｃｅｘとして値０が入力された後の最初のクロック信号立ち上がり時である時刻ｔ４までデータＳ０を出力し続ける。データｓｅｌが出力されると、加算値レジスタ９６はデータｓｅｌの値であるデータＳ０に対応したデータｂ０をレジスタ１０３に出力する。ここでは、データＳ０の値は「１１」であるので、加算値レジスタ９６が出力するデータａｄｄとしてデータｂ０すなわち「０ｘ００００６４」が出力される。データｓｅｌの出力からデータｂ０の出力までは遅延時間があるため、データＳ０に基づく値である加算値レジスタ９６のデータｂ０は時刻ｔ２前から時刻ｔ４後まで出力されることになる。データｂ０として値「０ｘ００００６４」が出力されると、レジスタ１０３は時刻ｔ２〜時刻ｔ５の間それを保持して加算器にデータｂとしてデータｂ０すなわち「０ｘ００００６４」を出力し続ける。
【００３４】
時刻ｔ４〜ｔ５の間にレジスタ１０２及びレジスタ１０３からデータａとしてデータｄ０及びデータｂとしてデータｂ０が出力されると、加算器９２はデータｄ０とデータｂ０との加算値ｃとしてデータｃ０をライト制御ユニット９３に出力する。データｄ０は「０ｘ００００００」、データｂ０は「０ｘ００００６４」であるため、加算値ｃとしてのデータｃ０は「０ｘ００００６４」となる。データｃ０の出力までは遅延時間があるため、時刻ｔ５前後において加算値ｃとしてデータｃ０すなわち「０ｘ００００６４」が出力される。
【００３５】
時刻ｔ３〜ｔ４においてレジスタ１００から信号ａｄｒ，ｃｅｘが出力されると、レジスタ１０１は時刻ｔ４〜ｔ５の間それを保持してライト制御ユニット９３に出力する。ライト制御ユニット９３は、レジスタ１０１から信号ａｄｒ，ｃｅｘが入力されると、信号ａｄｒ，ｃｅｘと共に書込信号ｗｅｘ及び入力されている加算値ｃすなわちデータｃ０をその次のクロック信号立ち上がり時に出力する。ここで、書込信号ｗｅｘは入力された選択信号ｃｅｘと同じ値を出力する。したがって、時刻ｔ５〜ｔ６の間にアドレス信号ａｄｒとして値０、信号ｃｅｘ，ｗｅｘとして値０，加算値ｃとしてデータｃ０すなわち「０ｘ００００６４」を出力する。出力した加算値ｃとしてのデータｃ０はＳＲＡＭ９４，９５のいずれの入力ポートにも入力されるが、カウントコントロールユニット９０の信号ｄｉｒは値０であるので、ライト制御ユニット９３からの信号ａｄｒ，ｃｅｘ，ｗｅｘはＳＲＡＭ９５にのみ入力される。そのため、時刻ｔ６においてＳＲＡＭ９５に対してデータｃ０の値「０ｘ００００６４」がアドレス０に対応する値であるデータｄ０として書き込まれる。
【００３６】
以上詳説したＳＲＡＭ９４からの読出処理、加算器９２での加算処理及びＳＲＡＭ９５への書込処理（以下、格子処理という）により、ＳＲＡＭ９４のアドレス０から読み出された値にドットデータに基づく値を加算してＳＲＡＭ９５のアドレス０へ書き込みが行われる。この格子処理は、アドレス０〜６３について順番に行われる。例えば、時刻ｔ３では、リード制御ユニット９１からアドレス信号ａｄｒとして値１が出力されるため、時刻ｔ４においてＳＲＡＭ９４のアドレス１に対応するデータｄ１の値「０ｘ００００００」が読み出される。また、同じく時刻ｔ４においてデータリードユニット９７に記憶されたデータＳ１である値「０１」が出力されて（図８参照）、加算値レジスタ９６から値ａｄｄとしてデータｂ１すなわち「０ｘ００００１４」が出力される。そして時刻ｔ５においてデータｄ１とデータｂ１との加算処理がなされて時刻ｔ６前後において加算値ｃとしてのデータｃ１すなわち「０ｘ００００１４」が出力され、時刻ｔ７においてデータｃ１すなわち「０ｘ００００１４」がＳＲＡＭ９５のアドレス１へ書き込まれる。アドレス２〜６３についても同様の処理を行う。そして、時刻ｔ６５においてアドレス信号ａｄｒとして最後のアドレスである値６３をリード制御ユニット９１が出力するときには、信号ｅｎｄをカウントコントロールユニット９０に出力する。信号ｅｎｄが出力されると、カウントコントロールユニット９０は、時刻ｔ６６において信号ｓｔａｒｔを値０に戻す。これにより、リード制御ユニット９１の信号ｃｅｘも時刻ｔ６６において値１に戻り、ＳＲＡＭ９４からの読み出しが終了する。また、リード制御ユニット９１が選択信号ｃｅｘとして値１を出力するため、レジスタ１００を経由してデータリードユニット９７に出力される選択信号ｃｅｘも時刻ｔ６７において値１に戻り、加算値レジスタ９６へのデータｓｅｌの出力が終了する。さらに、レジスタ１０１を経由してライト制御ユニット９３に出力される選択信号ｃｅｘも時刻ｔ６８において値１に戻り、ライト制御ユニット９３から出力される選択信号ｃｅｘも時刻ｔ６９において値１に戻るため、ＳＲＡＭ９５への書き込みが終了する。以上詳説した格子処理を６４回行う処理（以下、行処理という）によって、データリードユニット９７が読み出した１行６４列の２値化データに基づいて加算値レジスタ９６から出力された値がＳＲＡＭ９５のｄ０〜ｄ６３として記憶される。
【００３７】
このように、リード制御ユニット９１は一旦信号ｓｔａｒｔ，ｒｅａｄｙが入力されると、ＳＲＡＭ９４から読み出された値ｄｏが加算器９２によって加算処理されるのを待つことなく、クロック信号が立ち上がるごとにアドレス信号ａｄｒを０〜６３まで順番に出力して読出処理を行う。また、加算器９２は、加算値ｃがライト制御ユニット９３から出力されてＳＲＡＭ９５に書き込まれるのを待つことなく、レジスタ１０２から出力されるデータａとレジスタ１０３から出力されるデータｂとの加算値ｃを常に出力し続ける。したがって、１回の格子処理には時刻ｔ２〜ｔ６までの４クロック分の時間が必要にもかかわらず、リード制御ユニット９１，加算器９２及びライト制御ユニット９３が並列的に処理を行うことで、アドレス０〜６３までの６４回の格子処理は時刻ｔ２〜ｔ６９までの６７クロックで行うことができ、高速に行処理を行うことができる。
【００３８】
行処理が１回行われると、カウントコントロールユニット９０は、再度図７のｔ０と同様に信号ｓｔａｒｔを値１として２回目の行処理を開始する。ただし、カウントコントロールユニット９０は信号ｄｉｒとして値１を出力する。これにより、リード制御ユニット９１はＳＲＡＭ９５から値を読み出し、ライト制御ユニット９３はＳＲＡＭ９４に値を書き込むことになる。そして、データリードユニット９７は前回の行処理で読み出した１行目６４列のデータの次の行である、２行目６４列の２値化データを２値化データバッファ７０ｃから読み出す。すなわち、前回の行処理で記憶したＳＲＡＭ９５のｄ０〜ｄ６３に、２行目６４列の２値化データに基づいて加算値レジスタ９６から出力される値を列ごとに加算することになる。
【００３９】
以降同様に、１行目から１８０行目について行処理を行うにあたり、カウントコントロールユニット９０は、奇数行目の行処理を行うときは信号ｄｉｒを値０としＳＲＡＭ９４から読み出してＳＲＡＭ９５に書き込むようにし、偶数行目の行処理を行うときは信号ｄｉｒを値１としＳＲＡＭ９５から読み出してＳＲＡＭ９４に書き込むようにする。そしてデータリードユニット９７は１行目６４列のデータの読み出しから１８０行目６４列のデータ読み出しを順番に行う。この１８０回の行処理（以下、合計処理という）を行うことで、１８０行６４列の２値化データに基づいて加算値レジスタ９６から出力される値を列ごとに合計した値が、１８０行目の行処理で書き込みを行ったＳＲＡＭ、すなわちＳＲＡＭ９４のｄ０〜ｄ６３に記憶される（図９参照）。例えば、１列目の１８０行の２値化データが大ドット「１１」が１０個、中ドット「１０」が４個、無ドット「００」が１６６個で構成されているとすると、合計処理を行った後にＳＲＡＭ９４のｄ０には、「０ｘ０００４Ｃ０」（１０進数表記で１２００＝１００×１０＋５０×４）が記憶されることになる。合計処理が１回終了すると、カウントコントロールユニット９０は、ＳＲＡＭ９４のｄ０〜ｄ６３の値をＳＤＲＡＭ７０のカウント結果バッファ７０ｄに記憶する。カウント結果バッファ７０ｄは１走査分の２値化データである１８０行１４４０列の各列における合計値を記憶できるよう、２４ｂｉｔの１４４０個のデータをアドレス０〜１４３９に対応させて記憶できるようになっている。１回目の合計処理では、１列目から６４列目について処理を行ったので、ＳＲＡＭ９４のｄ０〜ｄ６３をアドレス０〜６３に順番に対応させて記憶する。また、カウントコントロールユニット９０は、その後ＳＲＡＭ９４，９５に記憶されている値をクリアして次の合計処理に備える。
【００４０】
合計処理が一回行われると、カウントコントロールユニット９０は１走査分である１８０行１４４０列全てについて合計処理を行うべく、２回目の合計処理を開始する。２回目の合計処理では、１回目の合計処理を行った２値化データに列方向に隣接するデータである、６５列目から１２８列目について合計処理を行う。そして、２回目の合計処理が終了すると、ＳＲＡＭ９４のｄ０〜ｄ６３の値をアドレス６４〜１２７に順番に対応させて記憶し、ＳＲＡＭ９４，９５の値をクリアする。この処理を同様に計８回行うことで、１８０行１４４０列全ての各列における合計値がカウント結果バッファ７０ｄのアドレス０〜１４３９に対応した値として記憶される。
【００４１】
以上詳説した、１走査分の２値化データについてのドットカウント処理が終了すると、ＣＰＵ５１は、ドットカウント処理の結果に基づいて印刷方法の変更が必要か否かを判断する。ドットカウント処理によって算出された列ごとの１８０行の合計値は、各列におけるドットを形成する際のヘッド２５の負荷に応じた重みの合計値であるので、各列における合計値が大きいほど、その列の２値化データに基づくドットを形成する際のヘッドの負荷が大きいことになる。ＣＰＵ５１は、例えば、各列における合計値が所定の閾値以上か否かを判定し、所定の閾値以上であった場合には、１走査で使用するノズル数を半分にして１８０行１４４０列のドットを２走査で形成するようにプリンタコントロールユニット５６を制御し、ヘッド２５の負荷が許容値を超えないようにすることができる。１走査分についての判定が終了すると、ＣＰＵ５１は判定結果に基づいて印刷を行うようプリンタコントロールユニット５６を制御し、次の１走査分について上述したドットカウント処理を行うよう、カウントコントロールユニット９０に指示を出す。例えば、図６の２値化データに基づく画像を印刷するためには、１０回の走査が必要であるので、以降は同様に１走査分のドットカウント処理とそれに基づく印刷方法の判定とプリンタコントロールユニット５６の制御とを１０回繰り返し行うことで、ヘッド２５の負荷が許容値を超えないようにしながら画像を印刷することができる。なお、シアン以外の各色についても、各色の２値化データについて１走査ずつ同様の処理を行えばよい。
【００４２】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のＳＤＲＡＭ７０がドットデータ記憶手段及び走査列記憶手段に相当し、ＳＲＡＭ９４，９５が第１合計値記憶手段及び第２合計値記憶手段に相当し、リード制御ユニット９１が読出手段に相当し、加算器９２が加算手段に相当し、ライト制御ユニット９３が書込手段に相当する。なお、本実施形態はマルチファンクションプリンタ１０の動作を説明することにより本発明のカウント方法の一例も明らかにしている。
【００４３】
以上詳述した本実施形態によれば、行処理にかかる処理時間を短くすることがでるため、行処理を１８０行分行って２値化データに基づく値を合計する合計処理をより高速に行うことができる。
【００４４】
また、ノズル列のノズル数と同じ１８０行の２値化データに対して合計処理を行うため、ヘッド２５の印刷方法の変更等に利用しやすい形で、２値化データに基づく値の合計をより高速に行うことができる。
【００４５】
また、ヘッド２５の１走査分である１８０行１４４０列の２値化データに対して、１８０行６４列の合計処理を繰り返して１４４０列の列ごとの２値化データに基づく値の合計値をカウント結果バッファ７０ｄに記憶するため、１走査分の２値化データについての２値化データに基づく値の合計をより高速に行うことができる。
【００４６】
また、ドットの種類及びドットの有無に基づく値の合計処理を行うため、ヘッド２５の印刷方法の変更に利用しやすい形で、２値化データに基づく値の合計をより高速に行うことができる。
【００４７】
また、２値化データに基づいて決まる加算値レジスタ９６からの出力は、大きいドットほど大きくなる値であるため、ヘッド２５の負荷に基づく印刷方法の変更に利用しやすい形で、２値化データに基づく値の合計をより高速に行うことができる。
【００４８】
なお、本発明は上述した各実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００４９】
例えば、加算値レジスタ９６は、無ドットに対して「０ｘ００００００」、小ドットに対して「０ｘ００００１４」、中ドットに対して「０ｘ００００３２」、大ドットに対して「０ｘ００００６４」を出力するが、少なくともドットの有無に基づいて定まる値を出力すれば、何ビットのどのような値でもよい。無ドットに対して「０ｘ００００００」，大，中，小ドットのいずれの場合に対しても「０ｘ０００００１」を出力してドットの数をカウントできるようにしてもよい。また、少なくともドットの有無に基づく値が負の数となることがあってもよい。その場合、負の数を補数で表現して加算器で減算も行うようにしてもよい。さらに、無ドットに対して「０ｘ００００００」、小ドットに対して「０ｘ０１００００」、中ドットに対して「０ｘ０００１００」、大ドットに対して「０ｘ０００００１」を出力するようにしてもよい。こうすれば、合計値の上位８ビットが小ドットの数を表し、中位８ビットが中ドットの数を表し、下位８ビットが大ドットの数を表すため、各ドットの数を種類別にカウントできる。同様に、合計値の上位６ｂｉｔが無ドットの数を表し、次の６ｂｉｔが小ドットの数を表し、次の６ｂｉｔが中ドットの数を表し、下位６ｂｉｔが大ドットの数を表すように加算値レジスタ９６の出力する値を設定しても良い。さらにまた、加算値レジスタ９６の出力する値を４８ｂｉｔとして、上述したドットの数の種類別の合計値と、ドットによって重み付けをした値の合計値との両方を得ることができるようにしてもよい。
【００５０】
上述した実施形態では、合計処理を行うにあたり、行方向と主走査方向とが同じ方向，列方向と副走査方向とが同じ方向としているが、行方向と副走査方向とが同じ方向，列方向と主走査奉公とが同じ方向としてもよい。
【００５１】
上述した実施形態では、１８０行６４列の２値化データについて合計処理を行っているが、２行２列以上の２値化データであれば、どのような２値化データについて合計処理を行ってもよい。例えば、図６の１８００行１４４０列の２値化データについて行処理として１４４０回の格子処理を行い、その行処理を１８００回行う合計処理を行うこととしてもよいし、ノズル数である１８０行と無関係な行数の２値化データについて合計処理を行うこととしてもよい。
【００５２】
上述した実施形態では、本発明のカウント装置をマルチファンクションプリンタ１０におけるドットカウントユニット５５ｄに具体化した例を示したが、印刷のみの機能を有するプリンタにおけるドットカウント装置に適用してもよい。また、ヘッド２５の各ノズルは、圧電素子の変形によってインクを加圧する方式であるが、ヒータの熱による気泡の発生によってインクを加圧する方式のノズルであってもよい。さらにまた、インク以外の他の液体や機能材料の粒子が分散されている液状体（分散液）、ジェルのような流状体などを吐出する液体吐出装置におけるカウント装置に具体化してもよいし、液体として吐出可能な固体を吐出する液体吐出装置におけるカウント装置に具体化してもよい。例えば、液晶ディスプレイ、ＥＬ（エレクトロルミネッセンス）ディスプレイ、面発光ディスプレイ及びカラーフィルタの製造などに用いられる電極材や色材などの材料を溶解した液体を吐出する液体吐出装置、同材料を分散した液状体を吐出する液状体吐出装置、精密ピペットとして用いられ試料となる液体を吐出する液体吐出装置におけるカウント装置としてもよい。また、時計やカメラ等の精密機械にピンポイントで潤滑油を吐出する液体吐出装置、光通信素子等に用いられる微小半球レンズ（光学レンズ）などを形成するために紫外線硬化樹脂等の透明樹脂液を基板上に吐出する液体吐出装置、基板などをエッチングするために酸又はアルカリ等のエッチング液を吐出する液体吐出装置、ジェルを吐出する流状体吐出装置におけるカウント装置としてもよい。
【図面の簡単な説明】
【００５３】
【図１】本実施形態であるマルチファンクションプリンタ１０の斜視図。
【図２】コントローラ５０及びその周辺の構成を示すブロック図。
【図３】ヘッド２５のノズル列の構成の概略を示す構成図。
【図４】画像処理ユニット５５及びＳＤＲＡＭ７０の構成を示すブロック図。
【図５】ドットカウントユニット５５ｄの構成を示すブロック図。
【図６】２値化データバッファ７０ｃに記憶される２値化データの説明図。
【図７】ドットカウント処理のタイミングチャートの一例。
【図８】データリードユニット９７が取り出すデータＳ０〜Ｓ６３の説明図。
【図９】合計処理によってＳＲＡＭ９４に記憶されるデータｄ０〜ｄ６３の説明図。
【図１０】本発明におけるドットデータに基づく値の合計の概略を示す説明図。
【図１１】従来におけるドット数の合計の概略を示す説明図。
【符号の説明】
【００５４】
１０  マルチファンクションプリンタ、２０  プリンタユニット、２１  タイミングベルト、２２  ガイド、２３  キャリッジ、２４  インクカートリッジ、２５  ヘッド、２６  搬送ローラ、２７  紙端検出センサ、２８Ｃ，２８Ｍ，２８Ｙ，２８Ｋ  ノズル列、３０  スキャナユニット、３６  ガラス台、４０  操作パネル、４２  ディスプレイ、４４  ボタン類、４６  ＵＳＢポート、４８  カードスロット、５０  コントローラ、５１  ＣＰＵ、５２  ＵＳＢコントロールユニット、５３  カードコントロールユニット、５４  スキャナコントロールユニット、５５  画像処理ユニット、５５ａ  データ入力ユニット、５５ｂ  色変換ユニット、５５ｃ  ２値化ユニット、５５ｄ  ドットカウントユニット、５５ｅ  データ取り出しユニット、５６  プリンタコントロールユニット、５７  ＳＤＲＡＭコントロールユニット、６０  ＲＯＭ、７０  ＳＤＲＡＭ、７０ａ  ＲＧＢデータバッファ、７０ｂ  色変換ＬＵＴ、７０ｃ  ２値化データバッファ、７０ｄ  カウント結果バッファ、７０ｅ  イメージデータバッファ、８０  バス、９０  カウントコントロールユニット、９１  リード制御ユニット、９２  加算器、９３  ライト制御ユニット、９４，９５  ＳＲＡＭ、９６  加算値レジスタ、９７  データリードユニット、１００〜１０３  レジスタ、１０４〜１０６  セレクタ、Ｐ  用紙。
【図１】
0005024133.tif 000002
【図２】
0005024133.tif 000003
【図３】
0005024133.tif 000004
【図４】
0005024133.tif 000005
【図５】
0005024133.tif 000006
【図６】
0005024133.tif 000007
【図７】
0005024133.tif 000008
【図８】
0005024133.tif 000009
【図９】
0005024133.tif 000010
【図１０】
0005024133.tif 000011
【図１１】
0005024133.tif 000012