(57)【特許請求の範囲】
【請求項１】
第１画像データを所望の倍率に変倍して第２画像データを得る画像処理装置であって、
前記第１画像データの所定画素数分の画素データを保持し、これらを画素データ群として並列的に出力する画素データ保持手段と、
所望の倍率の逆数を順次加算して得られる値を、前記第１画像データの所定画素数分のそれぞれのビットに対する倍率パラメータとして複数のレジスタで保持するパラメータ保持手段と、
オフセットレジスタに保持された変倍処理に用いるオフセット値と、前記複数のレジスタに保持された夫々の倍率パラメータとを加算し、当該加算による桁上がりを検出してキャリー信号を発生するキャリー発生手段と、
前記キャリー発生手段でキャリーが発生した場合に、キャリーが発生した倍率パラメータの整数部をインクリメントするとともに、倍率パラメータの整数値を出力するインクリメント手段と、
前記インクリメント手段によって出力された整数値に基づいて、前記画素データ保持手段に保持された画素データ群から変倍された第２画像データを構成する画素データを選択して出力する出力手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記パラメータ保持手段の複数のレジスタに夫々保持された倍率パラメータは、倍率の逆数の整数倍を通分して得られる整数部と、小数部に分けて保持されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画素データ保持手段はシフトレジスタであり、
前記出力手段は、前記インクリメント手段によって出力された整数値に対応するビット位置より出力されている画素データを選択して出力することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記複数のレジスタは、前記第２画像の画素データ群を生成するのに必要な個数よりも１つ多い個数のレジスタを含み、
前記複数のレジスタにおいて保持されている最大値に前記オフセット値を加算し、該加算結果の小数部の値で前記オフセットレジスタの内容を更新する更新手段を更に備えることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記複数のレジスタは、前記第２画像の画素データ群を生成するのに必要な個数よりも１つ多い個数のレジスタを含み、
前記複数のレジスタにおいて保持された最大値に前記オフセット値を加算し、該加算結果の整数部の値に基づいて前記画素データ保持手段を更新する画素データ更新手段を更に備えることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記複数のレジスタは、前記倍率の逆数の奇数倍を保持し、
前記データ保持手段は、前記複数のレジスタに保持されたデータのビットをシフトして、前記倍率の逆数の奇数倍及び偶数倍のデータを得ることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記データ保持手段におけるビットのシフトは、配線を１ビットずらすことによって達成されることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
第１画像データを所望の倍率に変倍して第２画像データを得る画像処理方法であって、
前記第１画像データの所定画素数分の画素データを保持し、これらを画素データ群として並列的に出力する画素データ保持工程と、
所望の倍率の逆数を順次加算して得られる値を、前記第１画像データの所定画素数分のそれぞれのビットに対する倍率パラメータとして複数のレジスタで保持するパラメータ保持工程と、
オフセットレジスタに保持された変倍処理に用いるオフセット値と、前記複数のレジスタに保持された夫々の倍率パラメータとを加算し、当該加算による桁上がりを検出してキャリー信号を発生するキャリー発生工程と、
前記キャリー発生工程でキャリーが発生した場合に、キャリーが発生した倍率パラメータの整数部をインクリメントするとともに、倍率パラメータの整数値を出力するインクリメント工程と、
前記インクリメント工程によって出力された整数値に基づいて、前記画素データ保持工程で保持された画素データ群から変倍された第２画像データを構成する画素データを選択して出力する出力工程とを備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ラスタイメージ画像を変倍する画像処理方法及び装置に関し、特にプリンタやディスプレイ等、画像を記録或は表示する装置に好適に用い得る画像処理方法及び装置に関するものである。
【０００２】
【従来の技術】
従来より、入力された画像データを所望の倍率で変倍して出力する画像処理装置が知られている。図７は、一般的な画像処理装置の変倍機構を説明するブロック図である。
【０００３】
図７を用いて、画像データの拡大処理を説明する。図７において、２００１は拡大オフセットを保持するレジスタ、２００２は倍率パラメータを保持するレジスタ、２００３は加算器、２００４はセレクタ、２００５はカウンタ、２００６は入力データレジスタ、２００７はセレクタ、２００８はシフトレジスタである。
【０００４】
まず、書き込みデータバスを介して、拡大オフセットレジスタ２００１に拡大オフセット値の初期値を、倍率パラメータレジスタ２００２に倍率パラメータをセットする。なお、セレクタ２００４は、オフセットの初期値設定において書き込みデータバスよりのデータを選択する。倍率パラメータは拡大率の逆数であり、拡大の精度によってその桁数が決まる。倍率パラメータの最上位ビットは、桁数によらず１／２である。即ち倍率パラメータは、１より小さい数値で、その最上位ビットの１つ上のビットが１の位である。また、最上位ビットのみに１がセットされている場合、倍率パラメータは１／２であり、これは拡大率の逆数であるから、この場合の拡大率は２倍ということになる。
【０００５】
図２を用いて、拡大の原理を説明する。図２は、拡大オフセット、倍率パラメータによって入力データがどの様に拡大されるかを説明する図である。図２の（ａ）で示されるような入力データ（画像データの一部であり、１６画素分のデータである）が与えられるものとする。（ａ）のｂ０〜ｂ１５はそれぞれのビットの値を示す。図２の（ｂ），（ｃ），（ｄ）は、それぞれ拡大オフセットが０／８，１／８，２／８で、倍率パラメータが３／８のときの出力データを表わしている。
【０００６】
図３はパラメータ、オフセット設定時のビット状態を示す図である。また図３の（ａ）は、拡大する精度が８ビットの時の倍率パラメータの具体的な設定値を示し、最上位ビット、すなわちＤ７は１／２を示し、以下、Ｄ６は１／４，Ｄ５は１／８，Ｄ４は１／１６，Ｄ３は１／３２，Ｄ２は１／６４，Ｄ１は１／１２８，Ｄ０は１／２５６に対応する。これらは拡大率の逆数であり、倍率パラメータが３／８であるとき、すなわち拡大率は８／３＝２．６６…倍のときは、図３の（ａ）に示すように、Ｄ６＝１かつＤ５＝１で表現される。
【０００７】
図３の（ｂ）〜（ｄ）は、拡大オフセットの具体的な設定状態を示し、倍率パラメータが３／８のとき、拡大オフセットは０／８，１／８，２／８の３つが設定可能である。図３の（ｂ），（ｃ），（ｄ）はそれぞれの設定内容である。Ｄ７〜Ｄ０は、図３の（ａ）と同様に、１／２〜１／２５６に相当する。
【０００８】
図２の（ｂ）は拡大オフセットが０／８、倍率パラメータが３／８の場合の拡大後の出力データである。拡大率が８／３倍であるということは、３ビット分のデータを８ビットに拡大することであるので、同じビットを３ビットくり返す場合と、２ビットくり返す場合がある。
【０００９】
まず、拡大オフセット値を初期オフセット値として、入力データの最下位ビットすなわちｂ０を選択する。次に倍率パラメータ値３／８を加算し、これをカレントオフセットとする。この場合、拡大オフセット０／８、倍率オフセット３／８であるので０／８＋３／８＝３／８となる。このとき桁上がりがあれば入力データの次ビットｂ１を選択し、桁上がりがなければ、前のデータすなわちｂ０を選択し、２ビット目の出力データとする。同様に次々に倍率パラメータをカレントオフセットに加算し、新たなカレントオフセットを発生し、そのとき桁上がりがあれば入力データの次のビットを選択する。以上説明した処理を行い、入力データから拡大後のデータを発生する。このとき、図２の（ｂ）の例では、図の様にｂ０，ｂ０，ｂ０，ｂ１，ｂ１，ｂ１，ｂ２，ｂ２，…の順に拡大データが得られる。図中ＣＹで示したのは、桁上がりを示す記号であり、処理はＬＳＢからＭＳＢに向かって１ビットずつ行なわれる。
【００１０】
同様に図２の（ｃ）は拡大オフセットが１／８のとき、図２の（ｃ）は拡大オフセットが２／８のときの出力データである。拡大オフセットによって３ビットくり返すビットと２ビットくり返すビットが変化するのがわかる。従って、この拡大オフセットにより、他の拡大画像と合わせて、１つの画像を形成する場合等に、画像間のドット位相を合わせることができる。
【００１１】
図７に示した回路は、図２で説明した動作原理実現したものである。拡大オフセットレジスタ２００１に拡大オフセット値が、倍率パラメータレジスタ２００２に倍率パラメータ値が、夫々書き込みデータバスを通じて、外部デバイスによってセットされる。拡大オフセット値と倍率パラメータ値は加算器２００３に入力され加算される。加算器の出力は、セレクタ２００４を介して拡大オフセットレジスタ２００１にカレントオフセットとして書き込まれ、更新される。このように、次々に倍率パラメータが加算され、拡大オフセットレジスタ２００１が更新される。この加算時に桁上がりがあれば、ＣＹ信号としてカウンタ２００５のイネーブル端子に入力され、カウンタ２００５がカウントアップする。
【００１２】
カウンタ２００５の出力は、セレクタ２００７のセレクト入力Ｓ０〜Ｓ３に入力され、データレジスタ２００６のビットの１つを選択しシフトレジスタ２００８に入力される。カウンタ２００５からＣＹが出ると、入力されたデータが全て使用されたことを示すので、データ要求信号として次の入力データを要求する。カウンタ２００９はフリーランのカウンタであり、カウンタ２００９からＣＹが出力されると、シフトレジスタ２００８上に１６ビットの出力データがセットされたことを示す。従って、カウンタ２００９のＣＹ信号をデータイネーブル信号として、次段のデバイスに拡大された出力データを渡す。
【００１３】
一般には、上記説明した方法で、イメージデータの拡大が行なわれている。
【００１４】
【発明が解決しようとする課題】
しかしながら、上記従来例では、１ドットの拡大画像を発生するのに、少なくとも１クロックサイクルを必要とするため、大量のデータを高速に扱う画像処理装置としては処理速度が遅くなるという欠点があった。
【００１５】
また同時に、複数ドットの拡大画像発生を行おうとすると、前ドット発生のための演算結果が、次のドットの演算に用いられるという構造上、ゲート遅延が積算されてしまい、結局処理ロック周波数の低下を招き、処理速度が遅くなるという問題があった。
【００１６】
本発明は、上記の問題に鑑みてなされたものであり、変倍処理後の画像データに対応する画素データを複数画素分同時に、しかも高速に発生することを可能とし、変倍処理における処理速度を向上した画像処理方法及び装置を提供することを目的とする。
【００１７】
【課題を解決するための手段】
上記の目的を達成するための本発明の画像処理装置は以下の構成を備える。即ち、
第１画像データを所望の倍率に変倍して第２画像データを得る画像処理装置であって、
前記第１画像データの所定画素数分の画素データを保持し、これらを画素データ群として並列的に出力する画素データ保持手段と、
所望の倍率の逆数を順次加算して得られる値を、前記第１画像データの所定画素数分のそれぞれのビットに対する倍率パラメータとして複数のレジスタで保持するパラメータ保持手段と、
オフセットレジスタに保持された変倍処理に用いるオフセット値と、前記複数のレジスタに保持された夫々の倍率パラメータとを加算し、当該加算による桁上がりを検出してキャリー信号を発生するキャリー発生手段と、
前記キャリー発生手段でキャリーが発生した場合に、キャリーが発生した倍率パラメータの整数部をインクリメントするとともに、倍率パラメータの整数値を出力するインクリメント手段と、
前記インクリメント手段によって出力された整数値に基づいて、前記画素データ保持手段に保持された画素データ群から変倍された第２画像データを構成する画素データを選択して出力する出力手段とを備える。
【００１８】
また、好ましくは、前記パラメータ保持手段の複数のレジスタに夫々保持された倍率パラメータは、倍率の逆数の整数倍を通分して得られる整数部と、小数部に分けて保持される。
【００２０】
また、好ましくは、前記画素データ保持手段はシフトレジスタであり、前記出力手段は、前記インクリメント手段によって出力された整数値に対応するビット位置より出力されている画素データを選択して出力する。
【００２２】
また、好ましくは、前記複数のレジスタは、前記第２画像の画素データ群を生成するのに必要な個数よりも１つ多い個数のレジスタを含み、前記複数のレジスタにおいて保持されている最大値に前記オフセット値を加算し、該加算結果の小数部の値で前記オフセットレジスタの内容を更新する更新手段を更に備える。
【００２３】
また、好ましくは、前記複数のレジスタは、前記第２画像の画素データ群を生成するのに必要な個数よりも１つ多い個数のレジスタを含み、前記複数のレジスタにおいて保持された最大値に前記オフセット値を加算し、該加算結果の整数部の値に基づいて前記画素データ保持手段を更新する画素データ更新手段を更に備える。
【００２９】
また、好ましくは、前記複数のレジスタは、前記倍率の逆数の奇数倍を保持し、前記データ保持手段は、前記複数のレジスタに保持されたデータのビットをシフトして、前記倍率の逆数の奇数倍及び偶数倍のデータを得る。
【００３０】
また、好ましくは、前記データ保持手段におけるビットのシフトは、配線を１ビットずらすことによって達成される。
【００３１】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な一実施形態を説明する。
【００３２】
［第１の実施形態］
図１は第１の実施形態による画像処理装置の構成を示すブロック図である。図１において１０１は画像データレジスタであり、入力された画像データ（変倍処理の対象となる画像データ）を保持し、複数の画素データを並列的に出力する。本例では、出力画素数が１６（Ｏ０〜Ｏ１５）であるので、１６画素分の画素データが並列的に出力されるものとする。画像データレジスタ１０１への画像データのセットは外部デバイスより行われる。１０２はカレントの拡大オフセットを保持するオフセットレジスタ、１０３はセレクタである。
【００３３】
１０４〜１１９は同時に発生する拡大画像の、それぞれのビットに対する倍率パラメータを保持するパラメータレジスタである。なお、倍率パラメータは、倍率の逆数の整数倍を通分して得られる整数部と、小数部に分けて保持される。１２０〜１３４はキャリージェネレータであり、パラメータレジスタ１０４〜１１９に保持された各ビットに対する倍率パラメータと、オフセットレジスタ１０２に保持されたカレントの拡大オフセットとの加算による桁上がりを検出して、キャリーを発生する。
【００３４】
１３５〜１４８はインクリメンタであり、キャリージェネレータ１２０〜１３４よりキャリーが発生した場合に、パラメータレジスタ１０４〜１１９に格納された倍率パラメータの整数部分を１つインクリメントする。１４９〜１６３はセレクタであり、インクリメンタ１３５〜１４８が出力する整数値に従って、画像データレジスタ１０１より並列的に出力されている複数の画素データより出力すべき画素データを選択する。１６４はカレント拡大オフセット値を更新する演算手段であるところの加算器である。
【００３５】
図２は本発明の拡大原理を示しており、上述したように、カレントの拡大オフセットに倍率パラメータを次々に加算し、この加算結果に基づいて各画素の拡大後の出力値を得る。本実施形態では、図２の（ｂ），（ｃ），（ｄ）の様な出力値を同時に、処理，発生するものである。図２よりわかる様に、各ビットに対する倍率パラメータの加算値の整数部分が、入力画像データの選択すべきビット位置を示す。従って、ｎビット目の出力ビットの画素データは、倍率パラメータをＡ、拡大オフセットをＹとすると、画像データレジスタ１０１の（ｎ×Ａ＋Ｙ）の整数部分で示されるビット位置の画素データとなる。
【００３６】
本実施形態では、データバスを通して、予め外部デバイスよりパラメータレジスタ１０４〜１１９の各々にＡ，２×Ａ，３×Ａ，…１６×Ａをセットするとともに、オフセットレジスタ１０２に初期オフセット値Ｙをセットする。Ａ〜１５×Ａのそれぞれの小数部分と、初期値Ｙを加算したときのキャリーの有無を、キャリージェネレータ１２０〜１３４が検出し、キャリーがあればインクリメンタ１３５〜１４８にキャリー信号を出力する。
【００３７】
キャリージェネレータ１２０〜１３４から信号が出力されると、インクリメンタ１３５〜１４８が倍率パラメータ１０４〜１１８に保持されたＡ〜Ａ×１５の整数部分に１を加える。一方、画像データレジスタ１０１には入力画像データが外部デバイスよりセットされており、セレクタ１４９〜１６３は、インクリメンタ１３５〜１４８の出力の表す出力画像のビットを選択し、それぞれのビットの出力画像（Ｏ１〜Ｏ１５）を発生する。なお、出力画像のＯ０には、画像データレジスタに格納された画像データの０ビット目がそのまま出力される。
【００３８】
また、加算器１６４は、パラメータレジスタ１１９に保持された値とＹを加算し、その整数部分（即ち、整数部（１６×Ａ＋Ｙ））を、入力画像における、次の処理の先頭の画像位置を示すシフト値として出力する。また、更新された拡大パラメータＹ[n]＝小数部（１６×Ａ＋Ｙ[n-1]）を発生する。シフト値が外部デバイスへ出力されると、外部デバイスは入力画像データをその数値分シフトして新たな入力画像データを１０１のレジスタに書き込む。また小数部分は、セレクタ１０３を通してオフセットレジスタ１０２に、更新された拡大パラメータＹとしてセットされ、次の出力画像１６画素に対する処理が行われる。
【００３９】
以上説明した様に本発明によれば、拡大画像の複数画素を、同時にかつ高速に発生することができる。また、発生画像のビット数や各パラメータの桁数は、特に限定されるものではない。もちろん、多値画像に適用することも可能であることは明らかである。
【００４０】
［第２の実施形態］
図４は第２の実施形態を説明する図である。第２の実施形態においても、図１で示した回路と同様の回路を用いるが、図１のＡ部分を図４に示す回路に置きかえた構成を用いる。第１の実施形態においては、データバスを通じて、拡大オフセットの初期値を設定したが、第２の実施形態では、拡大オフセットの初期値を必ず０とする。単純に画像を拡大する場合は、多くの場合これで充分であり、構成が簡素化される。なお、この場合、リセット信号によって、変倍処理の起動前にオフセットレジスタ１０２はクリアされる。
【００４１】
［第３の実施形態］
図５は第３の実施形態を説明する図である。第３の実施形態においても図１で示した回路と同様の回路を用いるが、図１のＢの部分を図５に示す回路に置きかえた構成を用いる。第３の実施形態においては、データバスを通してオフセットレジスタ１０４にのみ倍率パラメータを設定する。また、初期状態でレジスタ４０２はリセット状態とする。加算器４０３はパラメータレジスタ１０４の内容とレジスタ４０２の内容とを加算し、その結果をレジスタ４０２に保持する。そして、レジスタ４０２の値をＡと加算しつつ、パラメータレジスタ１０５〜１１９の夫々に２×Ａ〜１６×Ａの値を順次保持してゆく。このシーケンス制御をシーケンサ４０１が行う。
【００４２】
以上のように、第３の実施形態によれば、倍率パラメータの値Ａを一つセットするだけで、他のパラメータレジスタ１０５〜１１９へは自動的にパラメータが設定される。従って、外部装置による処理負担が軽減される。
【００４３】
［第４の実施形態］
図６は第４の実施形態を説明する図である。第４の実施形態においても図１で示した回路と同様の回路を用いるが、図１のＣの部分を図６に示す回路に置きかえた構成を用いる。即ち、レジスタ１０４〜１１９の値のうち、他のレジスタの２倍の値をもつレジスタがある場合、そのレジスタの値には当該他のレジスタのビットをずらして用いることで、パラメータレジスタの数を減らすことができる。結果的にレジスタはＡの奇数倍のみを保持すれば良く、パラメータレジスタの個数は図１の場合に比べて半分で同じ機能が実現できる。
【００４４】
なお、ビットシフトは、各パラメータレジスタとキャリージェネレータとの間の配線によって容易に実現できる。
【００４５】
以上説明したように、画像拡大を、複数ビットまとめて、また連続的に実現することができ、システムの変倍処理を高速化する効果がある。
【００４６】
また、上記実施形態では、拡大処理を説明してきたが、縮小処理に適用することも可能であることは明らかである。
【００４７】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００４８】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００４９】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５０】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００５１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５２】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５３】
【発明の効果】
以上説明したように、本発明によれば、変倍処理後の画像データに対応する画素データを複数画素分同時に、しかも高速に発生することが可能となり、変倍処理における処理速度が向上する。
【００５４】
【図面の簡単な説明】
【図１】第１の実施形態による画像処理装置の構成を示すブロック図である。
【図２】拡大オフセット、倍率パラメータによって入力データがどの様に拡大されるかを説明する図である。
【図３】パラメータ、オフセット設定時のビット状態を示す図である。
【図４】第２の実施形態を説明する図である。
【図５】第３の実施形態を説明する図である。
【図６】第４の実施形態を説明する図である。
【図７】一般的な画像処理装置の変倍機構を説明するブロック図である。
【符号の説明】
１０１  レジスタ
１０２  レジスタ
１０３  セレクタ
１０４〜１１９  レジスタ
１２０〜１３４  キャリージェネレータ
１３５〜１４８  インクリメンター
１４９〜１６３  セレクタ
１６４  加算器
【図１】
0003710208.tif 000002
【図２】
0003710208.tif 000003
【図３】
0003710208.tif 000004
【図４】
0003710208.tif 000005
【図５】
0003710208.tif 000006
【図６】
0003710208.tif 000007
【図７】
0003710208.tif 000008