JP3713873B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP3713873B2
JP3713873B2 JP05868797A JP5868797A JP3713873B2 JP 3713873 B2 JP3713873 B2 JP 3713873B2 JP 05868797 A JP05868797 A JP 05868797A JP 5868797 A JP5868797 A JP 5868797A JP 3713873 B2 JP3713873 B2 JP 3713873B2
Authority
JP
Japan
Prior art keywords
shift
bit
shift register
data
initial value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP05868797A
Other languages
English (en)
Other versions
JPH10257305A (ja
Inventor
丈詞 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP05868797A priority Critical patent/JP3713873B2/ja
Publication of JPH10257305A publication Critical patent/JPH10257305A/ja
Application granted granted Critical
Publication of JP3713873B2 publication Critical patent/JP3713873B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4023Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、カウンタのキャリーを利用して画像の拡大、縮小を行う画像処理装置に関するものである。
【0002】
【従来の技術】
従来の画像処理装置として、カウンタのキャリーを利用して画像の拡大、縮小を行う構成のものがあった。
【0003】
すなわち、第1のシフトレジスタと第2のシフトレジスタとを設け、第1のシフトレジスタの最下位ビットと第2のシフトレジスタの最上位ビットとを接続し、伸長、圧縮すべき画像データを第1のシフトレジスタにセットして、この第1のシフトレジスタの内容を第1のシフト信号に基づいてシフトさせるとともに、第2のシフトレジスタの内容を第2のシフト信号に基づいてシフトさせることにより、第1のシフト信号に基づくシフト回数と第2のシフト信号に基づくシフト回数との比に応じて画像データが伸長、圧縮される。
【0004】
たとえば、画像を2倍に拡大する場合、第2のシフト信号に基づくシフト回数を第1のシフト信号に基づくシフト回数の2倍にする。これにより、第2のシフトレジスタの内容は第1のシフトレジスタの内容の2倍の速度でシフトされるので、第1のシフトレジスタの最下位ビットの内容が第2のシフトレジスタの最上位ビットに2回ずつ入力される結果となって、画像が2倍に拡大されるのである。
【0005】
そして、このような拡大、縮小の倍率を任意に設定するために、カウンタを用いて、拡大、縮小の倍率に応じた数値データの一部を累積加算し、その加算結果のキャリーに基づいて第1あるいは第2のシフト信号を生成するのである。
【0006】
たとえば、累積加算のキャリーを最下位ビットから10ビット目とし、数値データを256に設定すると、2回に1回の割合でキャリーが出力されるので、このキャリーを第1のシフト信号として用いることにより、画像が2倍に拡大される。第2のシフト信号は、最下位ビットから11ビット目の内容に基づいて生成してもよいし、あるいはカウンタのクロック信号を用いてもよい。
【0007】
【発明が解決しようとする課題】
しかしながら、従来の画像処理装置では、カウンタに初期値を設定していなかったので、挿入、削除される画素の位置が全ラインについて同一になってしまい、縦縞モアレが発生するという課題があった。
【0008】
本発明は、上記の点に鑑みて提案されたものであって、縮小、拡大による縦縞モアレの発生を抑制できる画像処理装置を提供することを目的としている。
【0009】
【課題を解決するための手段】
上記目的を達成するため、請求項1に記載した発明の画像処理装置は、複数ビットのデータを記憶し、第1のシフト信号に基づいて記憶内容をシフトさせる第1のシフトレジスタ手段と、複数ビットのデータを記憶可能で、第2のシフト信号に基づいて、記憶内容をシフトさせるとともに、第1のシフトレジスタ手段の最下位ビットの内容を最上位ビットの内容として取り込む第2のシフトレジスタ手段と、拡大率および/または縮小率に応じた複数ビットの数値データの一部を累積加算する加算手段とを有し、加算手段により得られた加算結果としての数値データの所定ビットの情報に基づいて、第1のシフト信号および/または第2のシフト信号を生成することにより、拡大率および/または縮小率に応じて2値の画像データを伸長および/または圧縮する画像処理装置であって、加算手段に初期値を設定するための初期値設定手段と、挿入および/または削除される画素の位置が全ラインについて同一にならないように、初期値設定手段によって設定される初期値をライン毎に変更させる初期値変更手段とを備えている。
【0010】
この画像処理装置によれば、初期値変更手段が、初期値設定手段によって設定される初期値をライン毎に変更させるので、挿入および/または削除される画素が全ラインについて同一にならないことから、縮小、拡大による縦縞モアレの発生を良好に抑制できる。
【0011】
初期値設定手段によって設定される初期値は、たとえば拡大率および/または縮小率毎に2種類用いて、ライン毎に交互に切り換えるようにしてもよいし、拡大率および/または縮小率毎に3種類以上用いて、ライン毎に順次切り換えるようにしてもよい。なお、第1および第2のシフトレジスタにおける最下位ビットおよび最上位ビットは、データのシフト方向を基準にしたものであり、シフト方向上流側の端を最上位ビットと呼び、シフト方向下流側の端を最下位ビットと呼んでいる。
【0012】
また、請求項2に記載した発明の画像処理装置は、請求項1に記載の画像処理装置であって、加算手段により得られた加算結果としての数値データの隣接する2個の所定ビットの情報に基づいて、第1のシフト信号および第2のシフト信号を生成する。
【0013】
この画像処理装置によれば、請求項1に記載の画像処理装置による効果に加えて、加算手段により得られた加算結果としての数値データの1個の所定ビットの情報に基づいて1個のシフト信号を生成し、そのシフト信号を拡大の場合と縮小の場合とで第1のシフトレジスタ手段と第2のシフトレジスタ手段とに振り分けて使用する場合と比較して、シフト信号を振り分けるためのスイッチ手段が不要であり、ハードウェアで構成する場合には、回路が簡単になって安価に製造できる。
【0014】
【発明の実施の形態】
以下、本発明の好ましい実施の形態を、図面を参照しつつ具体的に説明する。
【0015】
図1は、本発明に係る画像処理装置を備えたファクシミリ装置の回路ブロック図であって、このファクシミリ装置は、CPU1、NCU2、RAM3、モデム4、ROM5、EEPROM6、ゲートアレイ7、コーデック8、DMAC9、読取部11、記録部12、操作部13、および表示部14を備えている。CPU1、NCU2、RAM3、モデム4、ROM5、EEPROM6、ゲートアレイ7、コーデック8、およびDMAC9は、バス線により相互に接続されている。バス線には、アドレスバス、データバス、および制御信号線が含まれる。ゲートアレイ7には、読取部11、記録部12、操作部13、および表示部14が接続されている。NCU2には、通信回線の一例としての電話回線15が接続されている。
【0016】
CPU1は、ファクシミリ装置全体を制御する。NCU2は、電話回線15に接続されて網制御を行う。RAM3は、各種のデータを記憶する。モデム4は、送信データの変調や受信データの復調などを行う。ROM5は、各種のプログラムなどを記憶している。EEPROM6は、各種の登録データやフラグなどを記憶する。ゲートアレイ7は、CPU1の入出力インターフェイスとして機能するとともに、読取画像信号に対して各種の処理を施す。コーデック8は、送信ファクシミリデータの符号化や受信ファクシミリデータの復号化を行う。DMAC9は、RAM3およびEEPROM6へのデータの書き込みや読み出しを行う。読取部11は、通電電流に応じて発光量が変化する発光素子により読取原稿を照射する発光手段や、発光手段により照射された読取原稿からの反射光を受光して受光量に応じた読取画像信号を出力する受光手段や、読取原稿を搬送するための原稿送りモータなどを備えており、読取原稿を読み取って読取画像信号を出力する。記録部12は、インクジェット方式あるいは熱転写方式などの印刷手段を備えており、受信画像などを記録用紙上に記録する。操作部13は、キースイッチ群などからなり、使用者の操作に応じた信号を出力する。表示部14は、LCDなどからなり、CPU1により制御されて各種の表示を行う。
【0017】
図2は、ゲートアレイ7に含まれる画像処理装置の回路ブロック図であって、この画像処理装置は、第1のレジスタ21、第2のレジスタ22、加算器23、第1のラッチ回路24、第2のラッチ回路25、第1のシフトレジスタ26、第2のシフトレジスタ27、否定回路28、および論理和回路30を備えている。
【0018】
第1のレジスタ21には、CPU1により画像の拡大率あるいは縮小率に応じた数値データである、たとえば10ビットの拡縮データが格納される。第2のレジスタ22には、加算器23によるたとえば11ビットの加算結果のうち、下位9ビットが格納される。なお第2のレジスタ22には、CPU1により、各ラインの加算の開始時に、初期値が設定される。加算器23は、第1のレジスタ21からの10ビットの拡縮データと、第2のレジスタ22からの9ビットの累積加算データとを加算し、その加算結果の下位9ビットを第2のレジスタ22に格納し、最下位ビットから10ビット目を第1のラッチ回路24に格納し、最下位ビットから11ビット目、すなわち最上位ビットを第2のラッチ回路25に格納する。第1のラッチ回路24は、たとえばDフリップフロップ回路により構成されており、加算器23による加算結果の最下位ビットから10ビット目をラッチする。第2のラッチ回路25は、たとえばDフリップフロップ回路により構成されており、加算器23による加算結果の最下位ビットから11ビット目すなわち最上位ビットをラッチする。
【0019】
第1のシフトレジスタ26は、拡大あるいは縮小すべきたとえば8ビット分の画像データを保持し、論理和回路30からの第1のシフト信号に基づいて、その内容を下位ビット側へシフトさせる。第2のシフトレジスタ27は、否定回路28からの第2のシフト信号に基づいて、その内容を下位ビット側へシフトさせるとともに、第1のシフトレジスタ26の最下位ビットの内容を最上位ビットに取り込む。否定回路28は、第2のラッチ回路25からの出力を反転して第2のシフト信号として第2のシフトレジスタ27に供給する。論理和回路30は、第1のラッチ回路24からの出力と第2のラッチ回路25からの出力との論理和を第1のシフト信号として第1のシフトレジスタ26に供給する。
【0020】
すなわち、第1のシフトレジスタ26は、複数ビットのデータを記憶し、第1のシフト信号に基づいて記憶内容をシフトさせる第1のシフトレジスタ手段を構成している。第2のシフトレジスタ27は、複数ビットのデータを記憶可能で、第2のシフト信号に基づいて、記憶内容をシフトさせるとともに、第1のシフトレジスタ手段の最下位ビットの内容を最上位ビットの内容として取り込む第2のシフトレジスタ手段を構成している。加算器23は、拡大率および/または縮小率に応じた数値データの一部を累積加算する加算手段を構成している。CPU1は、ROM5に記憶されているプログラムに基づいて動作することにより、加算手段に初期値を設定するための初期値設定手段を実現している。またCPU1は、ROM5に記憶されているプログラムに基づいて動作することにより、挿入および/または削除される画素の位置が全ラインについて同一にならないように、初期値設定手段によって設定される初期値をライン毎に変更させる初期値変更手段を実現している。
【0021】
次に、このように構成されたファクシミリ装置の動作の要点について説明する。読取部11からゲートアレイ7にシリアルに出力されたアナログの読取画像信号は、ゲートアレイ7により2値の画像データに変換され、各種の処理が施されて、バッファメモリに格納され、8ビット分の画像データが、第1のシフトレジスタ26にパラレルに格納される。一方、CPU1により、第1のレジスタ21に拡大率あるいは縮小率に応じた10ビットの拡縮データが格納され、さらに、第2のレジスタ22に初期値データが格納される。そして加算器23が、たとえばシステムクロックに基づく所定のタイミングで、第1のレジスタ21の内容と第2のレジスタ22の内容とを加算し、その11ビットの加算結果のうち、下位9ビットを第2のレジスタ22に格納し、最下位ビットから10ビット目を第1のラッチ回路24に出力し、最下位ビットから11ビット目すなわち最上位ビットを第2のラッチ回路25に出力する。
【0022】
これにより第1のラッチ回路24が、システムクロックに基づく所定のタイミングで、加算器23からの最下位ビットから10ビット目の内容をラッチし、論理和回路30に出力する。また第2のラッチ回路25が、システムクロックに基づく所定のタイミングで、加算器23からの最下位ビットから11ビット目の内容をラッチし、否定回路28に出力する。これにより否定回路28が、第2のラッチ回路25からの出力を反転させ、第2のシフト信号として第2のシフトレジスタ27に出力する。さらに論理和回路30が、第1のラッチ回路24の出力と第2のラッチ回路25の出力とから第1のシフト信号を生成し、第1のシフトレジスタ26に出力する。そして第1のシフトレジスタ26が、第1のラッチ回路24からの第1のシフト信号がハイレベルであれば、システムクロックに基づく所定のタイミングで、保持している画像データを下位側へ1ビットシフトさせる。また第2のシフトレジスタ27が、否定回路28からの第2のシフト信号がハイレベルであれば、システムクロックに基づく所定のタイミングで、保持している画像データを下位側へ1ビットシフトさせるとともに、第1のシフトレジスタ26の最下位ビットの内容を最上位ビットに取り込む。
【0023】
したがって、第1のシフト信号に基づくシフト回数と第2のシフト信号に基づくシフト回数との組み合わせに応じて、第1のシフトレジスタ26に格納されている画像データが圧縮あるいは伸長されて第2のシフトレジスタ27に格納され、画像が縮小あるいは拡大される結果になる。もちろん、第1のシフト信号に基づくシフト回数と第2のシフト信号に基づくシフト回数とが常に同じであれば、等倍の画像が得られる。
【0024】
たとえば、第1のシフト信号が2クロックに1回ハイレベルになり、第2のシフト信号が1クロックに1回ハイレベルになったとすると、第1のシフトレジスタ26の内容は2クロックに1回シフトされ、第2のシフトレジスタ27の内容は1クロックに1回シフトされるので、第1のシフトレジスタ26がシフトされて最下位ビットの内容が変更される間に、その内容が第2のシフトレジスタ27の最上位ビットに2回取り込まれることになり、2クロックに1回は前回と同一内容が取り込まれて、画像データは2倍に伸長される。逆に、第1のシフト信号が1クロックに1回ハイレベルになり、第2のシフト信号が2クロックに1回ハイレベルになったとすると、第1のシフトレジスタ26の内容は1クロックに1回シフトされ、第2のシフトレジスタ27の内容は2クロックに1回シフトされるので、第1のシフトレジスタ26が2回シフトされて最下位ビットの内容が2回変更される間に、その内容が第2のシフトレジスタ27に1回取り込まれることになり、2クロックに1回は取り込みが行われず、画像データは1/2倍に圧縮される。
【0025】
そして、第1および第2のシフト信号は、加算器23による加算結果のキャリーに基づいて生成されるので、第1のレジスタ21に設定する拡縮データによって、オン・オフを任意に設定できることになり、拡縮データに応じた拡大、縮小を実現できる。
【0026】
たとえば、第2のレジスタ22の初期値を仮に0であるとし、拡縮データを256に設定すると、加算結果として256と512とが交互に表れる。これは、加算結果が512になると、第2のレジスタ22に戻される下位9ビットのデータがオール0になるからである。したがって、加算結果の最下位ビットから10番目のビットが2回に1回「1」になり、第1のシフト信号が2回に1回ハイレベルになって、第1のシフトレジスタ26の内容が2クロックに1回シフトされる。すなわち、第1のラッチ回路24の出力がハイレベルになると、論理和回路30の出力である第1のシフト信号もハイレベルになるのである。一方、加算結果の最下位ビットから11番目のビットは常に「0」であり、否定回路28の出力である第2のシフト信号が毎回ハイレベルになって、第2のシフトレジスタ26の内容が2クロックに2回シフトされる。この結果、第2のシフトレジスタ27には2倍に伸長された画像データが得られ、画像が2倍に拡大されることになる。
【0027】
また、第2のレジスタ22の初期値を仮に0であるとし、拡縮データを768に設定すると、加算結果として768と1024とが交互に表れる。これは、加算結果が768になると、第2のレジスタ22に戻される下位9ビットのデータが256になり、加算結果が1024になると、第2のレジスタ22に戻される下位9ビットのデータがオール0になるからである。したがって、加算結果の最下位ビットから11番目のビットが2回に1回「0」になり、第2のシフト信号が2回に1回ハイレベルになって、第2のシフトレジスタ27の内容が2クロックに1回シフトされる。一方、加算結果が1024になったときには、最下位ビットから10番目のビットが「0」になるが、このとき、最下位ビットから11番目のビットが「1」であり、第2のラッチ回路25の出力はハイレベルであるので、論理和回路30の出力である第1のシフト信号がハイレベルになる。したがって第1のシフト信号が常にハイレベルになって、第1のシフトレジスタ26の内容が2クロックに2回シフトされる。この結果、第2のシフトレジスタ27には1/2倍に圧縮された画像データが得られ、画像が1/2倍に縮小されることになる。
【0028】
第1のシフトレジスタ26の内容が順次シフトされて空になると、第2のシフトレジスタ27の内容がパラレルに出力され、第1のシフトレジスタ26に新たな8ビット分の画像信号がパラレルに入力されるとともに、第2のシフトレジスタ27の内容がクリアされる。
【0029】
上記のような動作が繰り返され、1ライン分の処理が終了すると、次のラインの処理に移るのであるが、このとき、第2のレジスタ22の初期値を前のラインと同様にたとえば0に設定すると、挿入あるいは削除される画素の位置が全てのラインについて同じになってしまい、縦縞モアレが発生してしまう。そこで、CPU1が、たとえば384を初期値として第2のレジスタ22に設定するのである。したがって、拡縮データを256に設定すると、加算結果として640と384とが交互に表れる。これは、加算結果が640になると、第2のレジスタ22に戻される下位9ビットのデータが128になるからである。これを前ラインの場合と比較すると、前ラインの場合は初期値が0であり、加算結果として256と512とが交互に表れる結果、第1のシフト信号が、第1回目のクロックでローレベル、第2回目のクロックでハイレベルになって、第2回目のクロックで第1のシフトレジスタ26の内容がシフトされるのに対して、今回のラインの場合は初期値が384であり、加算結果として640と384とが交互に表れる結果、第1のシフト信号が、第1回目のクロックでハイレベル、第2回目のクロックでローレベルになって、第1回目のクロックで第1のシフトレジスタ26の内容がシフトされる。したがって、前ラインの場合は、図3に示すように、最初に処理された画素も2個に伸長されるのに対して、今回のラインの場合は、図4に示すように、最初に処理された画素は2個に伸長されず、その次の画素から2個に伸長される。この結果、図3と図4とを対比すれば明らかなように、挿入される画素の位置が前ラインと今回のラインとで異なっている。したがって、各ラインの処理の初めに第2のレジスタ22に設定する初期値として、0と384とを交互に設定することにより、挿入される画素の位置が各ライン毎に交互に切り換わり、縦縞モアレの発生を抑制できる。
【0030】
縮小の場合も同様であり、第2のレジスタ22の初期値を896に設定し、拡縮データを768に設定すると、加算結果として、最初が1664になり、その次からは896と1152とが交互に表れる。これは、加算結果が1664あるいは1152になると、第2のレジスタ22に戻される下位9ビットのデータが128になり、加算結果が896になると、第2のレジスタ22に戻される下位9ビットのデータが384になるからである。これを前ラインの場合と比較すると、前ラインの場合は初期値が0であり、加算結果として768と1024とが交互に表れる結果、第2のシフト信号が、第1回目のクロックでハイレベル、第2回目のクロックでローレベルになって、第1回目のクロックで第2のシフトレジスタ27の内容がシフトされるのに対して、今回のラインの場合は初期値が896であり、加算結果として、最初が1664で、その次からは896と1152とが交互に表れる結果、第2のシフト信号が、第1回目のクロックでローレベル、第2回目のクロックでハイレベルになって、第2回目のクロックで第2のシフトレジスタ27の内容がシフトされる。なお、第2のシフト信号は第2のラッチ回路25の出力を否定回路28により反転させたものであるので、加算結果の最下位から11番目のビットが「0」のときに第2のシフト信号がハイレベルになる。したがって、前ラインの場合は、図5に示すように、偶数番目に処理された画素が捨てられるのに対して、今回のラインの場合は、図6に示すように、奇数番目に処理された画素が捨てられる。この結果、図5と図6とを対比すれば明らかなように、削除される画素の位置が前ラインと今回とで異なっている。したがって、各ラインの処理の初めに第2のレジスタ22に設定する初期値として、0と896とを交互に設定することにより、削除される画素の位置が各ライン毎に交互に切り換わり、縦縞モアレの発生を抑制できる。
【0031】
もちろん、初期値は上記の数値に限定されるものではなく、また2種類に限られるものでもない。なお、各ライン毎の処理に際して、最初に第1のレジスタ21、第2のレジスタ22、第1のラッチ回路24、第2のラッチ回路25、第1のシフトレジスタ26、および第2のシフトレジスタ27の内容がクリアされる。また、上記のような構成では、第1のレジスタ21に設定される拡縮データをAとすると、1≦A≦512の場合、画像が512/A倍に拡大され、512<A≦1023の場合、画像が(1024−A)/512倍に縮小される。
【0032】
なお、上記実施形態では、拡大・縮小処理をハードウェアにより実現したが、CPU1を用いてソフトウェアにより実現することもできる。このようにソフトウェアにより拡大および縮小処理を行う場合のCPU1の動作の一例について、図7に示すフローチャートを参照しながら説明する。
【0033】
先ずCPU1が、変数L,N,Fをそれぞれ0に初期設定する(S1)。具体的には、変数L,N,Fを格納するためのRAM3の領域を決定し、それらの領域に0を書き込む。変数Lは処理済のライン数、変数Nは各ラインにおける処理済のビット数をそれぞれ表すものであり、変数Fは加算の初期値をライン毎に交互に切り換えるためのフラグとして用いられる。処理すべきライン数Lおよび1ライン当たりのビット数すなわち画素数は、予めCPU1により演算されてRAM3の所定領域に書き込まれている。またCPU1が、使用者により選択された拡大率あるいは縮小率に基づいて、それに対応したたとえば10ビットの拡縮データをEEPROM6から読み出し、RAM3の所定領域に書き込む(S2)。またCPU1が、拡大率あるいは縮小率に基づいて、それに対応したたとえば9ビットの第1および第2の初期値データをEEPROM6から読み出し、RAM3の所定領域に書き込む(S3)。
【0034】
そしてCPU1が、処理すべき画像データをRAM3から1ライン分読み出し、それらをRAM3の所定領域に書き込む(S4)。またCPU1が、処理済の画像データを格納すべきRAM3の所定領域に0を書き込む(S5)。
【0035】
そしてCPU1が、変数Fが0であるか否かを判断する(S6)。変数Fが0であれば(S6:YES)、CPU1が、第1の初期値データをRAM3から読み出し(S7)、その初期値データとS2においてRAM3の所定領域に書き込んだ拡縮データとを加算し(S8)、その加算結果をRAM3の所定領域に書き込む(S9)。
【0036】
そしてCPU1が、S9においてRAM3の所定領域に書き込んだ加算結果の最下位ビットから11番目のビットが0であるか否かを判断する(S10)。加算結果の最下位ビットから11番目のビットが0であれば(S10:YES)、CPU1が、RAM3の所定領域に記憶されている出力データを下位側に1ビットシフトさせ(S11)、RAM3の所定領域に記憶されている入力データの最下位ビットの内容を出力データの最上位ビットに書き込む(S12)。
【0037】
そしてCPU1が、S9においてRAM3の所定領域に書き込んだ加算結果の最下位ビットから10番目のビットが1であるか否かを判断する(S13)。加算結果の最下位ビットから10番目のビットが1であれば(S13:YES)、CPU1が、RAM3の所定領域に記憶されている入力データを下位側へ1ビットシフトさせる(S14)。
【0038】
そしてCPU1が、変数Nに1を加算し(S15)、変数NがRAM3の所定領域に記憶されている所定値であるか否かを判断する(S16)。変数Nが所定値であれば(S16:YES)、1ラインの処理が終了しているということなので、CPU1が、変数Nを0にし(S17)、変数Lに1を加算して(S18)、変数LがRAM3の所定領域に記憶されている所定値であるか否かを判断する(S19)。変数Lが所定値であれば(S19:YES)、全ての処理が終了しているということなので、このルーチンを終了する。
【0039】
S19において、変数Lが所定値でなければ(S19:NO)、処理が終了していないということなので、CPU1が、変数Fに1を加算し(S20)、変数Fが2であるか否かを判断する(S21)。変数Fが2であれば(S21:YES)、CPU1が、変数Fを0にし(S22)、S4に戻って次のラインの処理を開始する。
【0040】
S21において、変数Fが2でなければ(S21:NO)、変数Fが1であるということなので、S4に戻って次のラインの処理を開始する。
【0041】
S16において、変数Nが所定値でなければ(S16:NO)、1ラインの処理が終了していないということなので、S8に戻って次のビットの処理を開始する。
【0042】
S13において、加算結果の最下位ビットから10番目のビットが1でなければ(S13:NO)、CPU1が、S9においてRAM3の所定領域に書き込んだ加算結果の最下位ビットから11番目のビットが1であるか否かを判断する(S23)。加算結果の最下位ビットから11番目のビットが1であれば(S23:YES)、S14に進んで処理を継続する。
【0043】
S23において、加算結果の最下位ビットから11番目のビットが1でなければ(S23:NO)、S16に進んで処理を継続する。
【0044】
S10において、加算結果の最下位ビットから11番目のビットが0でなければ(S10:NO)、S13に進んで処理を継続する。
【0045】
S6において、変数Fが0でなければ(S6:NO)、CPU1が、第2の初期値データをRAM3から読み出し(S24)、S8に進んで処理を継続する。
【0046】
なお、上記CPU1の動作説明では、画像データを1ライン毎にRAM3の所定領域に格納して処理を実行したが、必ずしもこのようにする必要はなく、画像データをたとえば1バイト毎にRAM3の所定領域に格納して処理を実行してもよい。
【0047】
また、上記実施形態においては、加算器23による加算結果の最下位ビットから10番目および11番目のビットの内容に基づいて、第1および第2のシフト信号を生成したが、加算器23による加算結果の最下位ビットから10番目のビットの内容をシフト信号として用い、拡大の場合と縮小の場合とでシフト信号を第1のシフトレジスタと第2のシフトレジスタとに振り分けて使用してもよい。この場合、シフト信号を振り分けるためのスイッチ手段を設けるとともに、シフト信号が振り分けられていないシフトレジスタに対して、たとえば常にハイレベルの信号をシフト信号として供給する。もちろん、ハイレベルの信号も拡大の場合と縮小の場合とで第1のシフトレジスタと第2のシフトレジスタとに振り分けることになる。
【0048】
更に、上記実施形態においては、画像の拡大と縮小との双方を行うようにしたが、もちろん画像の拡大のみあるいは縮小のみを行う場合に本発明を用いてもよい。
【0049】
【発明の効果】
以上説明したように請求項1に記載した発明の画像処理装置によれば、初期値変更手段が、初期値設定手段によって設定される初期値をライン毎に変更させるので、挿入および/または削除される画素が全ラインについて同一にならないことから、縮小、拡大による縦縞モアレの発生を良好に抑制できる。
【0050】
また、請求項2に記載した発明の画像処理装置によれば、請求項1に記載の画像処理装置による効果に加えて、加算手段により得られた加算結果としての数値データの1個の所定ビットの情報に基づいて1個のシフト信号を生成し、そのシフト信号を拡大の場合と縮小の場合とで第1のシフトレジスタ手段と第2のシフトレジスタ手段とに振り分けて使用する場合と比較して、シフト信号を振り分けるためのスイッチ手段が不要であり、ハードウェアで構成する場合には、回路が簡単になって安価に製造できる。
【図面の簡単な説明】
【図1】本発明に係る画像処理装置を備えたファクシミリ装置の回路ブロック図である。
【図2】本発明に係る画像処理装置の回路ブロック図である。
【図3】本発明に係る画像処理装置による画像の拡大処理における画素の挿入状況を説明する説明図である。
【図4】本発明に係る画像処理装置による画像の拡大処理における画素の挿入状況を説明する説明図である。
【図5】本発明に係る画像処理装置による画像の拡大処理における画素の挿入状況を説明する説明図である。
【図6】本発明に係る画像処理装置による画像の拡大処理における画素の挿入状況を説明する説明図である。
【図7】本発明に係る画像処理装置による画像の拡大・縮小処理をソフトウェアで実行した場合の処理手順を説明するフローチャートである。
【符号の説明】
1 CPU
3 RAM
5 ROM
6 EEPROM
21 第1のレジスタ
22 第2のレジスタ
23 加算器
24 第1のラッチ回路
25 第2のラッチ回路
26 第1のシフトレジスタ
27 第2のシフトレジスタ
28 否定回路
30 論理和回路

Claims (2)

  1. 複数ビットのデータを記憶し、第1のシフト信号に基づいて記憶内容をシフトさせる第1のシフトレジスタ手段と、
    複数ビットのデータを記憶可能で、第2のシフト信号に基づいて、記憶内容をシフトさせるとともに、前記第1のシフトレジスタ手段の最下位ビットの内容を最上位ビットの内容として取り込む第2のシフトレジスタ手段と、
    拡大率および/または縮小率に応じた複数ビットの数値データの一部を累積加算する加算手段とを有し、
    前記加算手段により得られた加算結果としての数値データの所定ビットの情報に基づいて、前記第1のシフト信号および/または前記第2のシフト信号を生成することにより、前記拡大率および/または縮小率に応じて2値の画像データを伸長および/または圧縮する画像処理装置であって、
    前記加算手段に初期値を設定するための初期値設定手段と、
    挿入および/または削除される画素の位置が全ラインについて同一にならないように、前記初期値設定手段によって設定される初期値をライン毎に変更させる初期値変更手段とを備えたことを特徴とする画像処理装置。
  2. 前記加算手段により得られた加算結果としての数値データの隣接する2個の所定ビットの情報に基づいて、前記第1のシフト信号および前記第2のシフト信号を生成する、請求項1に記載の画像処理装置。
JP05868797A 1997-03-13 1997-03-13 画像処理装置 Expired - Fee Related JP3713873B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05868797A JP3713873B2 (ja) 1997-03-13 1997-03-13 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05868797A JP3713873B2 (ja) 1997-03-13 1997-03-13 画像処理装置

Publications (2)

Publication Number Publication Date
JPH10257305A JPH10257305A (ja) 1998-09-25
JP3713873B2 true JP3713873B2 (ja) 2005-11-09

Family

ID=13091472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05868797A Expired - Fee Related JP3713873B2 (ja) 1997-03-13 1997-03-13 画像処理装置

Country Status (1)

Country Link
JP (1) JP3713873B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5440577B2 (ja) 2011-09-15 2014-03-12 コニカミノルタ株式会社 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
JPH10257305A (ja) 1998-09-25

Similar Documents

Publication Publication Date Title
US7352494B2 (en) Pixel block data generating device and pixel block data generating method
JP3713873B2 (ja) 画像処理装置
JP4086556B2 (ja) 画像処理装置およびその制御方法
JP3667002B2 (ja) 画像処理方法及び装置
US7142328B2 (en) Image reduction method, image processing device and method of controlling image processing device
US5712714A (en) Image processing apparatus
JP2001189661A (ja) 符号化装置および復号化装置
EP0510182B1 (en) Image scaling for thermal printers and the like
KR0120570B1 (ko) 디지탈 화상처리장치에 있어서 화상데이타 변배처리방법 및 회로
US5245446A (en) Image processing system
JPS6390962A (ja) 画像縮小回路
JPH11168665A (ja) 画像サイズ変換方法とそのための装置
JP3225658B2 (ja) 画像情報処理装置
JP3875465B2 (ja) 画像縮小方法および画像処理装置および画像処理装置の制御方法
JP2870804B2 (ja) 画像処理装置
JP2744229B2 (ja) 画像処理装置
JP4219079B2 (ja) 画像処理装置
US6285792B1 (en) Image retrieval device for optically retrieving an image and obtaining binary image data from the image
JP2858661B2 (ja) 画像処理方式
JP2955300B2 (ja) 画像処理方法及びその装置
JP2697679B2 (ja) ディザ画像表示装置
JPH08125848A (ja) 画像処理装置
JP2918906B2 (ja) 画像処理方法及びその装置
JPH0746412A (ja) 画像処理装置
JP4080726B2 (ja) 画像縮小方法および画像処理装置および画像処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20031216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050815

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090902

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090902

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100902

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110902

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110902

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120902

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130902

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees