JP5202352B2 - 画像拡大方法、画像拡大装置および画像形成装置 - Google Patents

画像拡大方法、画像拡大装置および画像形成装置 Download PDF

Info

Publication number
JP5202352B2
JP5202352B2 JP2009011120A JP2009011120A JP5202352B2 JP 5202352 B2 JP5202352 B2 JP 5202352B2 JP 2009011120 A JP2009011120 A JP 2009011120A JP 2009011120 A JP2009011120 A JP 2009011120A JP 5202352 B2 JP5202352 B2 JP 5202352B2
Authority
JP
Japan
Prior art keywords
pixel
output
input
image
calculation
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
JP2009011120A
Other languages
English (en)
Other versions
JP2010171622A5 (ja
JP2010171622A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009011120A priority Critical patent/JP5202352B2/ja
Priority to US12/688,841 priority patent/US8379268B2/en
Publication of JP2010171622A publication Critical patent/JP2010171622A/ja
Publication of JP2010171622A5 publication Critical patent/JP2010171622A5/ja
Application granted granted Critical
Publication of JP5202352B2 publication Critical patent/JP5202352B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/393Enlarging or reducing
    • H04N1/3935Enlarging or reducing with modification of image resolution, i.e. determining the values of picture elements at new relative positions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

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

Description

本発明は、スキャナデバイス、あるいは画像入力機器により入力されたデジタル画像データを、任意の倍率で解像度変換による拡大処理を行うための画像拡大方法、画像拡大装置および画像形成装置に関する。
画像データを読み取るスキャナデバイス等の画像入力機器あるいはデジタルカメラ等の撮像機器の普及により、画像を出力する機会が増加している。例えば、オフィスだけでなく、家庭内におけるマルチ・ファンクション・ペリフェラル(以下、MFPと称する)による画像の出力も増えている。特に、デジタルカメラや携帯電話に代表される個人向けの撮像機能を有する機器においては、SDカード等の記憶メディアを媒体とし、画像データの編集や出力が活発に行われている。
これら撮像機器のデジタル画像データの撮像画素数は、年々増加傾向にあるが、画像出力機器の印刷解像度あるいは印刷メディアサイズと照合すると、総画素数の観点において十分でない場合が多い。また、撮像した画像データを大きなサイズで出力するケースもあり、入力画像データをより高画質で出力するための拡大処理機能が望まれている。
画像データの拡大処理手法として、SPC法、線形補間法(バイリニア法)、バイキュービック法がある。SPC法および線形補間法は、比較的簡略な構成要件で拡大処理機能を実現するものである。また、バイキュービック法に関しては、構成要件は複雑になるが、高画質での拡大処理機能を実現するものである。
したがって、MFP等の画像出力機器による拡大処理において、バイキュービック法を用いれば高画質での拡大処理は可能となる。しかし、制御上の複雑度が増し、また回路規模が大きくなることから、高機能製品での実装が主となっている。デジタルカメラ等の出力は、高機能を有するMFPだけでなく、家庭用のMFPでの出力も多い。そして、これらの安価なMFPに搭載されている拡大処理手法は、多くの場合、その構成要件からもバイキュービック法ではない。
以下、図面を用いてSPC法および線形補間法に関して説明する。
(SPC法の概念)
SPC法は、最も簡易的に拡大機能を実現する手法である。図18に、SPC法における1次元の拡大処理の概念を示す。
図18において、四角で示したS0、S1、S2、S3は入力画像を構成する画素を示している。また、その濃さは画素の値を表しており、黒で示した画素(S0、S3)は該当画素が黒(高濃度)であることを示し、白で示した画素(S1、S2)は該当画素が白(低濃度)であることを示している。したがって、図18の例においては、入力画像は4画素により構成され、両端の画素が黒で構成されていることを示している。また、入力画像の構成画素間の距離をSLで示している。
前記4画素の入力画像データを1次元的に2.5倍に拡大する場合、出力画素数は、10画素(=4×2.5)となる。出力画像データは入力画像データを参照して構成するため、出力画像の構成画素間距離(DL)は入力画像の構成画素間距離SLに対して小さくなる(2.5倍拡大のためDL<SL/2)。SPC法においては、出力画素として、出力画素位置に最も近い入力画素の値を出力する。したがって、出力画像の第1画素(D0)および第2画素(D1)は、入力画像の第1画素(S0:黒画素)となり、出力画像の第3画素(D2)および第4画素(D3)は、入力画像の第2画素(S1:白画素)となる。以下同様に、出力画素の第5画素(D4)、第6画素(D5)、第7画素(D6)は入力画像の第3画素(S2)となり、第8画素(D7)、第9画素(D8)、第10画素(D9)は入力画素の第4画素(S3)となる。
SPC法による拡大処理は、構成が簡易である反面、その処理も単純であるため、拡大処理後の画像品質は好ましいものではない。具体的には、単純重複処理であるため、出力画像データに段差(ガタツキ)が発生し、滑らかな拡大処理の実現が出来ない。
(線形補間法の概念)
線形補間法は、SPC法の問題点を解決するための手法であり、拡大処理時に、出力画素位置に最も近い2つの入力画素値を参照し、且つ、参照画素と出力画素位置の距離を重み付け係数として演算する手法である。
図19に、線形補間法における1次元の拡大処理の概念を示す。図19においても、図18と同様、四角で示したS0、S1、S2、S3は入力画像を構成する画素を示している。また、各入力画素が示す値(濃度)に関しても、図18と同様、黒で示した画素(S0、S3)は該当画素が黒(高濃度)であることを示し、白で示した画素(S1、S2)は該当画素が白(低濃度)であることを示している。
したがって、図19においても、入力画像は4画素により構成され、両端の画素が黒で構成されていることを示している。また、入力画像の構成画素間の距離はSLである。
前記4画素の入力画像データを1次元的に2.5倍に拡大する場合、出力画素数は10画素となる。この場合も、出力画像データは、入力画像データを参照して構成するため、出力画像の構成画素間距離(DL)は、図18の場合と同様に、入力画像の構成画素間距離SLに対して小さくなる(2.5倍拡大のためDL<SL/2)。
出力画像の第1画素(D0)は、入力画像の第1画素(S0)をそのまま出力する。そして、出力画像の構成画素間距離DLだけ離れた次の画素、すなわち第2画素(D1)は、第2画素位置に最も近い2つの入力画素(S0、S1)を参照し、演算により求める。
出力画像の第2画素(D1)の位置は、入力画像の第1画素(S0)を基準するとDLの距離分離れた位置となる。また、入力画像の第2画素(S1)を基準とすると、入力画像の構成画素間距離SLから出力画像の構成画素間距離DLを減算した分だけ離れた位置となる。したがって、出力画像の第2画素(D1)の値は、出力画素位置に近い2つの入力画素値(S0、S1)、および出力画像の第2画素位置までの距離であるDL、(SL−DL)を使用して、式1にて演算を行った値となる。
D1={S0×(SL−DL)+S1×DL}/SL …(式1)
式1において、入力画像の構成画素間距離SLで除算を行っている理由は、D1の値を演算するにあたり、出力画素位置までの距離を重み付けとして演算しているためである。多くの場合、SLの値は、除算回路を容易に構成させるため、2のべき乗の値とする。
続いて、出力画像の第3画素値(D2)の値を演算する。出力画像の第3画素位置は、出力画像の第2画素位置と同じように入力画像の第1画素(S0)と第2画素(S1)の間である。これは、拡大処理の倍率が2.5倍であることから、出力画像における構成画素間距離DLが、SL/2よりも小さくなることが理由である。
出力画像の第3画素値(D2)の位置は、入力画像の第1画素(S0)を基準とすると、出力画像の第2画素値(D1)の位置から更にDL離れた位置となる。つまり、(DL×2)の距離となる。また、入力画像の第2画素(S1)を基準とすると、入力画像の構成画素間距離SLから(DL×2)を減算した値だけ分離れた位置となる。よって、出力画像の第3画素(D2)の値は、出力画素位置に近い2つの入力画素値(S0、S1)および第3画素位置までの距離である(DL×2)、(SL−DL×2)を使用し、式2にて演算を行った値となる。
D2={S0×(SL−DL×2)+S1×DL×2}/SL …(式2)
次に、出力画像の第4画素値(D3)の値を演算する。出力画像の第4画素位置は、これまでの出力画素位置と異なり、入力画像の第2画素(S1)と第3画素(S2)の間となる。
多くの場合、線形補間法における参照画素の移行は、出力画像を構成する構成画素間距離(DL)を累積加算することにより求める場合が多い。つまり、図19の例においては、出力画像を構成する画素間距離DLを累積加算し、加算結果が、SLを超えるタイミングを入力画像の参照画素位置を更新するタイミングとする。
具体的な数値を用いて説明する。例えば、入力画像の構成画素間距離(SL)を“256(28)”とする。この場合、2.5倍拡大の場合における出力画像の構成画素間距離(DL)は、SLを倍率で除算した値となる。
DL=SL/2.5 …(式3)
式3による演算結果を小数点以下切り捨てると、DLの値は“102”となる。求める出力画像の画素位置は、第1画素出力から3画素後であることから、DLを3回累積加算した値である“306”となる。したがって、累積加算したDLがSL(“256”)を超えることになり、出力画像の値を演算する上での入力画像の参照画素位置が更新されることがわかる。
入力画像の構成画素間距離(SL)を2のべき乗とした場合、出力画素演算における入力画像の参照画素位置の更新は、例えば累積加算器のキャリーをトリガとして実現できる。また、入力画像の参照画素位置の更新による、出力画素位置までの距離の演算には、キャリー出力後の累積加算器の出力値が使用できる。例えば、前記例においては、入力画像の参照画素(S1)から出力画像の第4画素位置(D3)までの距離は、DLの累積加算値である“306”から入力画像の構成画素間距離(SL:“256”)を減算した値となる。累積加算器をSL距離として定義した8ビットで構成した場合、キャリー出力後の累積加算器の出力値は“50”となる。したがって、入力画像の参照画素(S2)から出力画像の第4画素位置(D3)までの距離は、入力画像の構成画素間距離(SL:“256”)から“50”を減算した値である“206”となる。
以降、同様に、出力画像の画素位置に応じ、入力画像の参照画素位置を更新し、更に、参照画素位置から出力画像の画素位置までの距離を重み付け係数として、出力画像データの演算を行う。
このような線形補間法における、出力画像の画素位置と入力画像の参照画素位置との制御は、例えば特許文献1により開示されている。特許文献1においては、前記出力画素位置の距離(重み付け)の算出、および演算に使用する参照入力画素データを容易に読み取るための、メモリアドレス制御が記載されている。
なお、線形補間法における後端の画素に関しては、いくつかの手法が存在する。図19においては、入力画像を構成する4画素目(S3)の次に、仮想画素(DS0)を構成している例を示す。この場合、仮想画素(DS0)を参照画素とする出力画像の画素(D8、D9)の値は、仮想画素の値によって異なるものとなる。具体的には、仮想画素(DS0)を、1つ前の画素値(S3)と同じにする場合や固定値(白/黒)とする場合があり、この仮想画素値と入力画像の最終画素(S3)を参照した補間演算によって値が求められる。また、別の方法としては、出力画像の後端、即ち、D8およびD9の演算を行わず、入力画像を構成する最終画素(S3)をそのまま出力する場合もある。
また、図19を用いて説明した線形補間法であるが、拡大倍率が2倍や4倍である場合は、SPC法と同様の問題点が存在する。それは、拡大処理後の第1画素(D0)を出力画像の基準点として、入力画像の第1画素(S0)をそのまま出力している点に起因する。
例えば、拡大倍率が2倍である場合、入力画像の構成画素間距離SLと出力画像の構成画素間距離DLには、式3の演算結果からもDL=SL/2の関係が成り立つ。これは出力画像の位相が、出力画像の2画素出力毎に入力画像を構成する画素データの位相と同相(距離が0)になることを意味する。つまり、出力画素値の演算に、出力画素位置に近い2つの入力画素を参照画素として補間演算を行っても、結果として、2画素毎に入力画素がそのまま出力画素として生成されることなる。
この問題を回避させる方法として、線形補間法における初期位相の設定がある。図20に、初期位相を設定した線形補間法の概念図を示す。なお、図20において、図18あるいは図19と同一の意味をもつものには同一記号を示している。
図20に示す線形補間の特徴は、出力画像の第1画素(D0)の出力位置を、画像が構成される方向(図20における右方向)に初期位相を設定することにある。この初期位相は、図20において“INIT”にて示している。
図20に示す線形補間法は、初期位相の“INIT”の値によって、出力画像の第1画素位置が入力画像の第1画素位置と位相が異なることが特徴となる。つまり、出力画像の第1画素(D0)は、初期位相の値が設定されていることから、入力画像の第1画素(S0)がそのまま出力されることはない。
ここで、初期位相“INIT”を“30”とすると、出力画像の第1画素の値は、設定された初期位相の値(“30”)と、入力画像の構成画素間距離(“256”)から初期位相の値(“30”)を減算した値(“226”)により算出される。入力画像の第1画素の値が黒(“0”)、第2画素の値が白(“255”)であるから、前記初期位相値における出力画像の第1画素(D0)は、式1により
D0={0×(256−30)+255×30}/256≒29
となる。
出力画像の第2画素(D1)は、前記第1画素(D0)から出力画像の構成画素間距離(DL:“128”)加算された画像位置となるため、
D1={0×(256−158)+255×158}/256≒157
となる。
出力画像の第3画素(D2)は、前記第2画素(D1)から、更に出力画像の構成画素間距離(DL:“128”)加算された画素位置となるため、初期位相(“30”)にDL×2(=“256”)を加算した画素位置(“286”)となる。この累積加算による画素位置は、入力画像の構成画素間距離(SL:“256”)を超えているため、累積加算器においてキャリーが発生し、累積加算の結果として“256”を減算された値(“30”)が出力される。
図20の例においては、入力画像の第2画素(S1)および第3画素(S2)は同一の値(白)であるため、前記重み付け演算による出力画素値は、結果として入力画素と同じ値となる。しかし、拡大処理する画像において、入力画像の連続する画素値が異なっていれば、重み付け演算により滑らかな出力画素値が得られる。
なお、図20の例においても、入力画像の最終画素(S3)の次に仮想画素(DS0)を想定した場合を図示しているため、出力画像の第7画素(D6)および第8画素(D7)は仮想画素(DS0)の値の影響を受けるものとなる。
このように、初期位相を設定することによって、2倍や4倍といった倍率設定においても、入力画像の画素値が出力画像の画素値としてそのまま出力されることを回避することが出来る。なお、初期位相を設定する線形補間法に関しては、特許文献2に開示されている。特に、特許文献2においては、等倍時の初期位相設定は“0”、それ以外の倍率設定においては、入力画像の第1画素と第2画素の中点に出力画像の第1画素を重ね合わせることで、SPC法の改善を行うことが記載されている。
特開平9−326958号公報 特開平4−362792号公報
しかしながら、背景技術に記載した線形補間法においては、出力画像の第1画素位置を、入力画像の第1画素位置を基準として画像データが構成される方向に対して拡大処理を実施している。このため、出力画像の第1画素位置は、入力画像の第1画素位置と同一あるいは画像データが構成される方向(入力画像の第1画素位置と第2画素位置の間)に位相がずれたものとなる。このため、拡大処理後の画像データは全体として、画像データが構成される方向(右側)に片寄って展開される。
つまり、図18、図19および図20に示したいずれの場合においても、入力画像データが左右対称で両端の1画素分のみ黒画素データであるのに対し、拡大処理後の出力画像データは左右が非対象の画素データとなっている。
具体的には、図18では、出力画像データの左端に2画素分の黒画素データ、右端に3画素分の黒画素データとなる。図19では、出力画像データの左端の3画素分は少なからず入力画像の第1画素データ(黒)の影響を受け、右端の4画素分は入力画像の第4画素データ(黒)の影響を受ける。
初期位相を設定する場合この傾向はより顕著となり、図20では、入力画像データの黒画素の影響を受ける出力画像の画素データは、左端は2画素分、右端は4画素分となる。つまり、図18、図19、および図20に示した背景技術による線形補間法では、入力画像データの対称性が保持された形での拡大処理が不可能である。
前記線形補間法における問題点は、左右の非対称性にとどまるものではない。図21A乃至図21Cに、2次元の画像データにおいて発生する問題点を示す。図21Aは、拡大処理を行う前の入力画像データである。入力画像データは、上下左右の端が各N画素幅で黒画素により構成されているものとする。この入力画像データに対して倍率Pで拡大処理した場合、左右および上下の対称性が保持されていれば、出力画像データにおいても黒画素の幅は全てN画素×倍率Pの画素幅となるはずである。
しかし、線形補間法において初期位相を設定しない場合、拡大後の出力画像データは、図21Bのように左右および上下に非対称な黒画素幅となる。図21Bにおいて、Xaは出力画像データの左側の黒画素幅、Xbは出力画像データの右側の黒画素幅である。また、Yaは出力画像データの上側の黒画素幅、Ybは出力画像データの下側の黒画素幅である。
図21Bに示す通り、2次元の画像データの場合、左右端の黒画素幅すなわちXaとXbは同一幅とはならない。また、上下端の黒画素幅すなわちYaとYbに関しても同一幅とはならない。特に、入力画像データの横方向(以下、主走査方向と称する)の構成画素数と縦方向(以下、副走査方向と称する)の構成画素数が異なる場合、左右と上下の黒画素の再現幅も異なる。つまり、XaとYa、XbとYbに関しても同一とはならない。これは、線形補間法において、倍率により定まる出力画像の構成画素間距離(DL)の累積加算される回数が、主走査方向と副走査方向で異なることによる位相のずれが要因である。また、前記出力画像の黒画素幅の再現は、設定される倍率によっても変わってしまう。
線形補間法において初期位相を設定した場合、図21Cに示すように、拡大後の出力画像データの非対称性は更に悪化する。これは、初期位相が設定されることで、入力画像の第1画素位置を基準とすると、出力画像の第1画素位置が初期位相を設定しない場合に対して更に右側(2次元であれば右下)にずれることによるものである。したがって、この場合のXaとXbの差分、YaとYbの差分は、初期位相を設定しない場合に比べて大きなものとなる。
画像データを読み取る装置がスキャナデバイス等の主走査方向、副走査方向に拡張可能なものであれば、線形補間法による拡大処理前の入力画像データとして、左側あるいは上側に余分なデータを付与することも可能である。この場合には、基準点をずらすことが可能である。しかし、デジタルカメラ等の撮像機器において撮像した入力画像データにおいては、余分なデータを付与することは不可能である。また、機器内部で実現する場合であっても、拡大処理前に、入力画像データが保持された媒体あるいはそれ以外のメモリを使用して、拡大処理の倍率に応じた余分なデータの付与等の加工が必要となる。
ハードウェアによる対応であってもソフトウェアによる対応であっても、処理工数の増加は機器のパフォーマンス低下に直結する。したがって、デジタルカメラ等の撮像機器により撮影された画像データが左右あるいは上下の対称性を持ったものである場合、線形補間にて拡大処理された出力画像データは、倍率が大きいほど、より非対称性が強調されることとなる。
尚、上記説明は画像形成装置にもとづいて説明したが、他の画像処理における拡大(解像度変換)においても、同様に発生する問題点である。
本発明は、上記従来の問題点に鑑み、画像データの対称性を保持して、線形補間法による拡大(解像度変換)後の画像データを得ることを可能にする画像拡大方法、画像拡大装置および画像形成装置を提供する。
本発明に係る画像拡大装置は、入力画像を補間処理することによって、前記入力画像が拡大された出力画像を出力する画像拡大装置であって、前記入力画像内の左右及び上下の少なくともいずれかの方向の入力画素列について、当該入力画素列の先頭の画素の前と最後の画素の後とに、前記入力画像にない仮想画素を設定する設定手段と、前記入力画素列の先頭の画素の前記入力画像上の位置と当該出力されるべき前記出力画像の出力画素列の先頭の画素の出力画像上の位置との差と、前記入力画素列の最後の画素の前記入力画像上の位置と前記出力画素列の最後の画素の前記出力画像上の位置との差と、が等しくなるように、拡大倍率に応じて、前記出力画素列の先頭の画素の前記出力画像上の位置を決定する決定手段と、前記入力画素列の先頭の画素の前記入力画像上の位置より前記出力画像上で前に位置する出力画素の画素データを、前記設定手段により前記入力画素列の先頭の画素の前に設定された前記仮想画素の画素データと前記入力画素列の先頭の画素の画素データとに基づき補間演算し、前記入力画素列の最後の画素の前記入力画像上の位置より前記出力画像上で後に位置する出力画素の画素データを、前記設定手段により前記入力画素列の後に設定された前記仮想画素の画素データと前記入力画素列の最後の画素の画素データとに基づき補間演算する演算手段と、を備え、
前記決定手段は、前記設定手段により設定された仮想画素と、前記入力画素列の先頭の画素とを端点とする補間領域内で、前記出力画素列の先頭の画素の前記出力画像上の位置を決定する、ことを特徴とする。
本発明により、画像データの対称性を保持して、線形補間法による拡大(解像度変換)後の画像データを得ることを可能にする画像形成方法および画像形成装置を提供できる。
すなわち、拡大(解像度変換)前の画像データの対称性を保持した、線形補間法における参照入力画素制御を可能とした。これにより、特に、画像データを構成する画素数の加工が出来ない画像データにおいても、性能を低下させることなく、拡大(解像度変換)を行う画像データの対称性を保持した拡大(解像度変換後)の画像データを得ることを可能にした。
また、拡大(解像度変換)の倍率に依存しない画像データの対象性を保持した拡大(解像度変換)処理を可能とした。
以下、本発明を実施するための実施形態について、添付図面を用いて詳細に説明する。尚、、本実施形態の説明は、画像形成装置を例に説明するが、それに限定されることなく画像拡大(解像度変換)処理であれば適用可能であり、それらも本発明に含まれる。
[実施形態1]
<本実施形態の画像処理における拡大処理部(解像度変換部)の構成例>
図1Aは、本発明を1次元の拡大処理に適用した場合の、拡大処理部(解像度変換部)100の構成例を示す図である。
図1Aにおいて、101は入力画像データ、102は入力画像データ101を保持する画像データ記憶部である。103は、画像データ記憶部102に記憶した入力画像データに対し、拡大処理を行う画像データ演算部であり、線形補間法による演算を行う。
104は、入力画像データの構成画素間距離(SL)を保持する基準画素間係数保持部であり、例えば2のべき乗の値が保持される。105は倍率指定係数保持部であり、出力画像データの構成画素間距離(DL)が保持される。106は線形補間法における初期位相(PH0)を保持する初期位相保持部、107は拡大処理を行う1方向当たりの入力画素数を保持する入力画素数保持部である。画像処理において、入力画素数保持部107が保持する値は、主走査方向の画素数である場合が多い。
108は出力画素数保持部であり、画像データ演算部103による拡大処理によって出力される1方向当たりの出力画素数を保持する。なお、基準画素間係数保持部104、倍率指定係数保持部105、初期位相保持部106、入力画素数保持部107、出力画素数保持部108は、図示しないCPUあるいはそれに準ずるプロセッサによる設定が可能なレジスタである。
109は、画像データ演算部103での演算に必要となる制御信号および演算係数を出力する参照画素位置制御部である。110は、先端画素判定結果を示す制御信号、111は後端画素判定結果を示す制御信号、112は画像データ演算部103に対して、参照入力画素を更新するタイミングを示す制御信号である。113および114は、画像データ演算部103における演算に使用する係数であり、出力画素位置と2つの参照入力画素までの距離を示すものである。
115は、画像データ演算部103が参照画素位置制御部109に対して制御信号および演算係数を要求する制御信号であり、例えばパルス信号等により構成される。116は、参照画素位置制御部109が画像データ演算部103に対して出力する応答信号である。具体的には、制御信号116は、参照画素位置制御部109が出力する制御信号110、111、112、および演算係数113、114の有効タイミングを示すものである。
117は、画像データ演算部103が、画像データ記憶部102に対して出力する制御信号であり、演算に必要となる入力画像データを要求するものである。この制御信号117は、画像データ記憶部102が、メモリによって構成される場合、例えばアドレス信号等により構成される。118および119は、画像データ記憶部102が、画像データ演算部103から出力される制御信号117に基づいて出力する画像データである。120は、画像データ演算部103により演算された出力画像データである。
<本実施形態の拡大処理部(解像度変換部)を有する画像形成装置の構成例>
図1Bは、図1Aの拡大処理部(解像度変換部)を有する画像形成装置の構成例を示す図である。
図1Bにおいて、入力される画像データは、画像読取装置などからのRGB色成分からなる画像データや、画像形成用に既に変換されたYMCK色成分からなる画像データである。なお、これに限定されない。色変換処理部10では、例えばRGB色成分からなる画像データが画像形成用のYMCK色成分からなる画像データに変換される。
YMCK色成分からなる画像データは、画像の拡大(解像度変換)が必要であれば、本実施形態の拡大処理部(解像度変換部)100に入力されて拡大(解像度変換)され、濃度制御部20に入力される。一方、画像の拡大(解像度変換)が必要でなければ、本実施形態の拡大処理部(解像度変換部)100をパスして直接に濃度制御部20に入力される。
濃度制御部20では、適切な画像形成となるように種々の濃度制御がされて、画像データはプリンタエンジン30に渡される。
なお、図1Bは画像形成装置の概略構成を示したもので、詳細な制御は省かれている。図1Bは、画像形成装置における本実施形態の拡大処理部(解像度変換部)100の位置付けを示したものである。
<拡大処理部(解像度変換部)100の構成要素の詳細な構成例>
以下、図1Aで拡大処理部(解像度変換部)100を構成する参照画素位置制御部109および画像データ制御部103の各々に関し、更に詳細に構成を説明する。
(実施形態1の参照画素位置制御部109の構成例)
図2は、実施形態1の参照画素位置制御部109の構成例を示す図である。なお、図2において、図1Aと同一の信号を示すものに関しては、図1Aに付与した参照符号と同じ参照符号で示すものとする。
参照画素位置制御部109は、画像データ演算部103が出力する制御信号115を同期信号として動作する。したがって、画像データ演算部103の制御信号115の入力をもとに、画像データ演算部103の演算処理に必要となる制御信号および演算係数を出力する。
図2において、201および202はセレクタ(以下、MUX201、MUX202と称する)、203はMUX201の出力値とMUX202の出力値を加算する累積加算器である。MUX201の入力は、初期位相保持部106が保持した値(PH0、以下、初期位相と称する)と累積加算器203の出力とである。拡大処理時の第1出力画素の演算時には初期位相が出力され、以降は累積加算器203の出力が選択されるように構成される。MUX202の入力は、倍率指定係数保持部105が保持した値と、固定値0であり、拡大処理時、第1出力画素の演算時には固定値“0”が出力され、以降は倍率指定係数保持部105が保持した値(DL)が出力される。
204は、累積加算器203が出力するオーバーフローを示すキャリー信号であり、MUX201の出力とMUX202の出力との加算結果が、累積加算器203のビット数を超えた場合に出力されるものである。また、205は、後段に構成される処理部の制御信号として機能するものであり、累積加算器203における演算結果の最上位ビットが該当する。
206は、減算器であり、基準画素間係数保持部104が保持する値(SL)と累積加算器203の出力値の差分演算を行う。また、207および208は、累積加算器203あるいは減算器204の演算出力値に対して絶対値出力制御を行う制御部である。累積加算器203の演算出力は、絶対値出力制御部205を介して演算係数113として出力される。演算係数113は、出力画素の演算時に参照する2つの参照入力画素のうち、先の第1入力画素位置と出力画素位置との距離を示す。減算器206の演算出力は、絶対値出力制御部208を介して演算係数114として出力される。演算係数114は、出力画素演算時に参照する2つの参照入力画素のうち、後の第2入力画素位置と出力画素位置との距離を示す。なお、演算器を構成する場合において、減算器は加算器によって構成されることは公知であるため、減算器204が加算器として構成される場合であっても、減算器に該当するものとする。
209は、先端判定部であり、累積加算器203から出力される制御信号(キャリー)204に応じて動作し、先端画素判定結果信号110を出力する。なお、先端判定部209の具体的動作に関しては後述する。210は、画像データ演算部103が出力画素を演算する際、画像データ記憶部102から読み出す参照入力画素を更新するか否かを制御する参照入力画素更新信号生成部である。参照入力画素更新信号生成部210は、累積加算器203が出力する制御信号(最上位ビット)205と、先端判定部209が出力する判定信号110の出力に応じて、参照入力画素を更新する制御信号112を生成する。
211は、参照入力画素更新信号生成部210が出力する制御信号112を、先端判定部209が出力する先端画素判定結果信号110が示す値に応じて計数する計数部である。具体的には、計数部211は、先端画素判定結果信号110が計数する上で有効なレベルを示していなければ、制御信号112を計数することはしない。つまり、先端画素判定結果信号110は、計数部211の動作制御信号(イネーブル信号)として機能する。212は、計数部211の出力信号と入力画素数保持部107が保持する値に応じて後端判定を行う後端判定部である。計数部211の出力値が示すものは、出力画素の演算を行う際に、先端判定部209が先端画素を判定してから、入力参照画素の更新が行われた回数を示す。したがって、入力画素数保持部107が保持した値と計数部211の出力値とが同一の値となった場合、入力画素の更新をこれ以上行えないものと判断し、後端画素判定信号111を出力する。なお、後端判定部212の具体的動作に関しても、先端判定部209の動作と同じく後述する。
(画像データ演算部103の構成例)
次に、画像データ演算部103の構成に関して説明する。図3は画像データ演算部103の構成例を示す図である。なお、図3においても、図1Aあるいは図2と同一の信号を示すものに関しては、付与した参照符号と同じ参照符号で示すものとする。
図3において、301は、画像データ記憶部102が出力する先の第1参照画素データ118を保持するデータ保持部、302は、後端の仮想画素値を保持する仮想画素値保持部である。303は、セレクタ(以下、MUX303と称する)であり、後端判定部212が出力する制御信号111が示す値に応じて、仮想画素値保持部302が保持する値と第1入力画素データ118の値との切り換えを行い出力する。
304は、画像データ記憶部102が出力する後の第2入力画素データ119を保持するデータ保持部、305は、先端の仮想画素値を保持する仮想画素値保持部である。306は、セレクタ(以下、MUX306と称する)であり、先端判定部209が出力する制御信号110が示す値に応じて、仮想画素値保持部305が保持する値と第2入力画素データ119の値との切り換えを行い出力する。
なお、前記説明においては、先端の仮想画素値を保持する保持部(仮想画素値保持部305)と後端の仮想画素値を保持する保持部(仮想画素値保持部302)を別構成とした。しかし、仮想画素値として保持する値が同一である場合は、共通の保持部として構成しても良い。つまり、MUX303およびMUX306に入力される仮想画素値を、同一の仮想画素値保持部の出力としても良い。
307および308は乗算器であり、出力画素演算における参照入力画素値と演算係数との重み付け演算を行う。具体的には、乗算器307の演算により、第1参照入力画素位置と出力画素位置との距離を重み付け係数として、第1参照入力画素データとの乗算結果が得られる。また、乗算器308の演算により、第1参照入力画素位置と出力画素位置との距離を重み付けとして、第2参照入力画素データとの乗算結果が得られる。
309は加算器であり、乗算器307の演算結果と乗算器308の演算結果とを加算する。310は、除算器であり、加算器309の加算結果を入力画像データの構成画素間距離として定義した値(SL)で除算する。なお、入力画像データの構成画素間距離(SL)を2のべき乗とした場合においては、除算器310はシフト演算によって行うことが可能であり、回路規模あるいは構成要件の簡略化が可能となる。
<本実施形態による画像を2.5倍に拡大する場合の処理例>
具体的な画素構成図をもとに、更に詳細に本実施形態を説明する。なお、以下の説明で“XX”で示す数値は10進の値、“xxxx”で示す数値はヘキサデシマルで示した値である。
(2.5倍に拡大する場合の概念)
図4は、4画素で構成される入力画像データを2.5倍に拡大する場合の処理例を示す図である。
図4において、実線の四角で示したものは拡大前の入力画素列の画素データを示し、四角の濃さは入力画素データが示す値を示す。黒で示したものは黒(高濃度)である画素を示し、白で示したものは白(低濃度)である画素を示す。したがって、入力画素データの4画素は、両端の2画素(S0、S3)が黒画素、中央の2画素(S1、S2)が白画素で構成されている。S0の位置を先頭入力画素位置、S3の位置を最終入力画素位置という。
四角で示した入力画素間の距離はSLとし、本説明においては2のべき乗(“256”)であるものとする。また、両端の画素(S0、S3)から入力画素間距離分(SL)離れた距離に仮想画素値(DS0、DS1)をおき、点線の四角で示す。つまり、DS0の値は、先端の仮想画素値として図3における仮想画素値保持部305に保持され、DS1の値は、後端の仮想画素値として仮想画素値保持部302に保持される。
図4において、丸で示したものは、拡大処理後、すなわち2.5倍に拡大処理後の画素値を示し、丸の濃度は出力画素値の濃度を示すものとする。また、出力画像データの構成画素間距離をDLとする。ここで、D0の位置を先頭出力画素位置、D9の位置を最終出力画素位置という。DLの設定値は、拡大処理における倍率設定に直結するものである。また、本発実施形態の構成において、DLを設定する構成部は倍率指定計数保持部105が該当する。DLの設定値は、入力画像データの構成画素間距離(SL)と拡大倍率とにより決定される。具体的には、入力画像データの構成画素間距離(SL)を拡大倍率で除算した値となる。例えば、入力画像データの構成画素間距離SLが“256”で拡大倍率が2.5倍に場合、小数点以下切り捨てであれば“102”(=256/2.5)となる。
図4において、PH0は初期位相である。本実施形態の特徴は、初期位相PH0を画素データが構成されている方向(右方向)と逆方向(左方向)に設定することにある。また、その設定値は拡大処理する倍率に応じて可変とし、入力画像データの構成画素間距離(SL)と出力画像データの構成画素間距離(DL)との差分をもとに算出する。
本実施形態1において、初期位相の設定は、入力画像データの第1画素(S0)を基準として定義する。すなわち、入力画像データの第1画素(S0)を基準として、画素データが構成されている方向(右方向)をプラスとし、先端の仮想画素(DS0)が構成されている方向(左方向)をマイナスとする。初期位相値に符号が含まれるため、初期位相保持部106に保持する初期位相のフォーマットは、例えば図6のようになる。図6によれば、設定する初期位相の全体のビット数をNビットとし、最上位ビットを符号データとする。なお、本説明においては、初期位相保持部106のフォーマットは2の補数表記として以降の説明を行う。また、初期位相のビット数は、線形補間演算における演算精度に合わせて決定されるものとする。
(2.5倍に拡大する場合の具体的な処理例)
図5は、先端の仮想画素位置(DS0)および入力画像データの先頭から3画素位置(S0、S1、S2)と、出力画像データの先頭から7画素位置(D0〜D6)の位相状態を示す図である。なお、図5において、図4と同一の意味を示すものに関しては、同じ参照符号を付与する。
上記のように、本実施形態において、入力画像データの4画素を2.5倍に拡大して出力する場合に設定する初期位相PH0は、入力画像データの構成画素間距離(SL)と出力画像データの構成画素間距離(DL)により算出する。これは、拡大処理後の出力画像データの左右対称性を保持するためである。出力画像データの左右の対象性を保持するためには、出力画像データを構成する全画素数分の距離と入力画像データを構成する全画素数分の距離との差分の半分が、入力画像データの左右端部分を基準に位相がずれていれば良い。
例えば、前記例の場合、入力画像データの構成画素間距離(SL)は“256”であり、4画素により構成されるため、入力画像データを構成する全画素数分の距離は、式4にて求められる。
SL×(入力画像データ構成画素数−1)=256×3=768…(式4)
また、出力画像データの構成画素間距離(DL)は“102”であり、10画素により構成されるため、出力画像データを構成する全画素数分の距離は、式5にて求められる。
DL×(出力画像データ構成画素数−1)=102×9=918…(式5)
したがって、入力画像データを構成する全画素数分の距離と、出力画像データを構成する全画素数分の距離の差分は、式6により求められる。
918−768=150 …(式6)
左右の対称性を保持するためには、式6により求められた値の半分だけ、入力画像データを構成する先頭画素を基準にマイナス方向に位相をずらせば良い。したがって、初期位相保持部106に設定する初期位相は10進表記で“−75”となる。図6における初期位相のフォーマットにしたがい、初期位相の設定ビットを9ビットとすれば、2の補数表記での初期位相設定値PH0は“0x1B5”となる。
(第1出力画素(D0)の演算処理)
画像データ演算部103は、出力画素演算に必要となる制御信号および演算係数の要求を、制御信号115として、参照画素位置制御部109に対して出力する。参照画素位置制御部109は、前記画像データ演算部103が出力する制御信号115を受けて、先端画素判定信号、後端画素判定信号等の各制御信号および演算係数を出力する。出力画像の第1画素演算時、累積加算器203の入力、すなわちMUX201、MUX202の出力はそれぞれ、初期位相PH0、固定値0となる。したがって、参照画素位置制御部109の出力である演算係数113は、初期位相PH0の値(−75)が絶対値に変換されてそのまま出力される。つまり、“75(0x4B)”が出力される。
また、演算係数114は、減算器206により、絶対値出力制御部207の出力と基準画素間係数保持部104が保持した値とで減算され、絶対値出力制御部208を介して出力される。つまり、入力画像データの構成画素間距離(SL):“256”から“75”を減算した“181(0xB5)”が出力される。
出力画像の第1画素演算時、前記説明のとおり、累積加算器203の出力は、キャリーを生成するものではない。したがって、制御信号204は出力されず、結果として、制御信号110、111、112は有意レベルとして出力されない。
参照画素位置制御部109は、制御信号115を受けて、前記制御信号および演算係数を出力し、その出力が有意レベルであるタイミングで制御信号116を、画像データ演算部103に出力する。つまり、前記例においては、演算係数113として“75(0x4B)”、演算係数114として“181(0xB5)”を出力するタイミングで制御信号116の出力を行う。
画像データ演算部103は、前記制御信号116受けると、出力画素演算のために画像データ記憶部102に対して、入力画像データ118および入力画像データ119の要求信号である制御信号117を出力する。画像データ記憶部102は、前記制御信号117の入力を受けて、記憶している画像データを出力する。具体的には、入力の第1参照画素データ(S0)を画像信号118として出力し、入力の第2参照画素データ(S1)を画像信号119として出力する。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号および演算係数と、画像データ記憶部102が出力する画像データ118および画像データ119とを使用して、出力画素の演算を行う。
ただし、第1出力画素(D0)演算において、参照画素位置制御部109から制御信号116が出力されたタイミングにおいては、制御信号110、111、112はいずれも有意レベルでない。後端判定部209の出力である制御信号111が出力されない場合、図3におけるMUX303の出力は、入力画像データ118となる。また、先端判定部209の出力である制御信号110が出力されない場合、MUX306の出力は仮想画素値保持部305が保持した値となる。
したがって、乗算器307による演算は、入力画像の第1参照画素データである画像データ118と演算係数114(“0xB5”)との積となる。また、乗算器308による演算は、仮想画素値保持部305が保持した値と演算係数113(“0x4B”)との積となる。乗算器307および乗算器308の演算出力は、加算器309により加算処理され、除算器310で除算演算される。本説明においては、入力画像データの構成画素間距離(SL)は2のべき乗(“256”)としているため、除算器310の演算は8ビットシフトにより実施することが可能である。したがって、除算器310の出力、つまり出力画像の第1画素(D0)は、式7により演算される。
D0=(S0ד0xB5”+DS0ד0x4B”)/“0x100” …(式7)
図5に示した入力画素構成において、S0の値は黒(“0x00”)、DS0の値は白(“0xFF”)であるから、式7の演算結果は、S0、DS0の値を代入して“74(0x4A)”となる。
(第2出力画素(D1)の演算処理)
次に、第2出力画素(D1)の演算に関して説明する。画像データ演算部103から、第2出力画素(D1)演算のための制御信号115が出力されると、参照画素位置制御部109は、各制御信号および出力画像の第2画素の演算に必要となる演算係数出力の処理を行う。参照画素位置制御部109は、画像データ演算部103から、第2出力画素演算のための制御信号115が出力されると、該当画素に対する制御信号、および演算係数113、演算係数114を出力する。
第2出力画素演算であるため、MUX201の出力は、初期位相保持部106が保持した値ではなく、累積加算器203の出力である“−75(0x1B5)”を出力する。一方、MUX202の出力は、固定値0から倍率指定係数保持部106が保持した値に切り換わる。したがって、設定倍率に該当する出力画像データの構成画素間距離(DL)の値である“102(0x66)”が出力される。累積加算器203は、前記MUX201とMUX202の値の加算処理を行う。MUX201の出力が“0x1B5”であり、MUX202の出力が“0x66”であるから、累積加算器203の出力は“0x21B”となる。したがって、この場合の累積加算器203の出力は、制御信号204が有意レベルで出力され、且つ、演算結果の値が“0x01B”となる。よって、絶対値出力制御部207および絶対値出力制御部208の出力はそれぞれ“27(0x1B)”、“229(0xE5)”となる。
前記値は、図5における第2出力画素(D1)の位相を示すものであり、図5のPH1が、絶対値出力制御部207の出力値“0x1B”に相当する。また、PH1が定まることにより参照入力画素である画像データ119(S1)から、第2出力画素D1までの距離は、入力画像データの構成画素間距離SLからPH1を減算することにより求まる。これは、絶対値出力制御部208の出力値“0xE5”が相当する。
累積加算器203から制御信号204が出力されるため、先端判定部209は先端画素の判定を行う。先端判定部209の判定処理は、制御信号204が入力されると、先端画素判定信号110を出力することである。先端画素判定信号110の出力とは有意レベルを意味する値を出力することを示し、正論理であれば‘1’を負論理であれば‘0’を出力することを意味する。また、以降の説明においても、制御信号の出力とは有意レベルを出力することを意味するものとする。
参照入力画素更新信号生成部210は、制御信号205をもとに制御信号112の出力を行うが、先端判定部209が制御信号110を出力するまでは、制御信号112の出力は行わない。したがって、第2出力画素(D1)演算時において先端判定部209の制御信号110が有意レベルで出力されるが、このタイミングにおいては、同期制御の関係により制御信号205によらず制御信号112の出力は行わない。
参照画素位置制御部109は、第1出力画素演算時と同様に、制御信号および演算係数を出力し、その出力タイミングにおいて制御信号116を画像データ演算部103に出力する。画像データ演算部103は、前記制御信号116を受け、出力画像データの演算を開始する。参照画素位置制御部109が制御信号116を出力した時点においては、制御信号110および制御信号112は出力されていないため、入力画素データの更新は行わない。つまり、データ保持部301およびデータ保持部302のデータ更新は行わない。
なお、データ保持部301、データ保持部302の更新が行われない場合であっても、画像データ演算部103が制御信号117を出力するようにしても良い。例えば、画像データ記憶部102に対するメモリアドレスを同じ値として、第1出力画素演算時と同じデータを取り込むようにしても良い。また、参照画素位置制御部109から、参照入力画素の更新を示す制御信号112が出力されない場合は、制御信号117を出力しない構成にしても良い。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号および演算係数113、演算係数114をもとに第2出力画素(D1)を算出する。具体的には、先端判定部209から制御信号110が有意レベルで出力されるため、MUX306の出力は画像データ119に切り換わる。後端判定部212からは、制御信号111は出力されていないため、MUX303の出力は画像データ118となる。
したがって、乗算器307は、演算係数114(“229”)とMUX303の出力である画像データ118(S0)とで乗算演算を行う。また、乗算器308は、演算係数113(“27”)とMUX306の出力である画像データ119(S1)とで乗算を行う。乗算器307および乗算器308の出力値は、出力第1画素演算時と同様に、加算器309により加算処理され、除算器310により除算演算される。
(第3出力画素(D2)の演算処理)
次に、出力画像データの第3出力画素(D2)の演算に関して説明する。画像データ演算部103は、第2出力画素(D1)の演算時と同様、制御信号115を参照画素位置制御部109に対して出力する。参照画素位置制御部109は、画像データ演算部103からの制御信号115の入力を受けると、第3出力画素(D2)の演算に関する制御信号、および演算係数113、114を出力する。演算係数113は、第2出力画素演算時の累積加算器203の出力をもとに求められる。MUX201の出力は、第2出力画素演算時から累積加算器203の出力であり、MUX202は倍率指定係数保持部105である。したがって、累積加算器203は、MUX201の出力値とMUX202の出力値とを加算する。具体的には、MUX201の出力である“27(0x1B)”とMUX202の出力である“102(0x66)”を加算し、“129(0x81)”を出力する。また、この時点における、累積加算器203の出力値が定まることにより、減算器206の減算値が“127(0x7F)”と定まる。
前記値は、図5における第3出力画素(D2)の位相を示すものであり、図5に図示のPH2が、絶対値出力制御部207の出力値(“0x81”)に相当する。また、PH2が定まることにより、参照入力画素である画像データ119(S1)から第3出力画素D2までの距離は、入力画像データの構成画素間距離SLからPH2を減算することにより求まる。これは、絶対値出力制御部208の出力値(“0x7F”)が相当する。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号、および演算係数113、114をもとに、第3出力画素データ(D2)を算出する。具体的には、先端判定部209から制御信号110が有意レベルで出力されるため、MUX306の出力は画像データ119に切り換わる。後端判定部212からは、制御信号111は出力されていないため、MUX303の出力は画像データ118となる。
したがって、乗算器307は、演算係数114(“127”)とMUX303の出力である画像データ118(S0)とで乗算演算を行う。また、乗算器308は、演算係数113(“129”)とMUX306の出力である画像データ119(S1)とで乗算を行う。乗算器307および乗算器308の出力値は、出力第1画素演算時、および出力第2画素演算時と同様に、加算器309により加算処理され、除算器310により除算演算される。
(第4出力画素(D3)の演算処理)
次に、出力画像データの第4出力画素(D3)の演算に関して説明する。画像データ演算部103は、第3出力画素(D2)の演算時と同様、制御信号115を参照画素位置制御部109に出力する。参照画素位置制御部109は、画像データ演算部103からの制御信号115の入力を受けると、第4出力画素(D3)の演算に関する制御信号、および演算係数113、114を出力する。演算係数113は、第3出力画素演算時の累積加算器203の出力をもとに求められる。MUX201の出力は、第3出力画素演算時から累積加算器203の出力であり、MUX202は倍率指定係数保持部105である。したがって、累積加算器203は、MUX201の出力値とMUX202の出力値とを加算する。具体的には、MUX201の出力である“129(0x81)”とMUX202の出力である“102(0x66)”を加算し、“231(0xE7)”を出力する。また、この時点における累積加算器203の出力値が定まることにより、減算器206の減算値が“25(0x19)”と定まる。
前記値は、図5における第4出力画素(D3)の位相を示すものであり、図5に図示のPH3が、絶対値出力制御部208の出力値(“0xE7”)に相当する。また、PH3が定まることにより、参照入力画素である画像データ119(S1)から出力第4画素D3までの距離は、入力画像データの構成画素間距離SLからPH3を減算することにより求まる。これは、絶対値出力制御部207の出力値(“0x19”)が相当する。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号、および演算係数113、114をもとに出力第4画素データ(D3)を算出する。具体的には、先端判定部209から制御信号110が有意レベルで出力されるため、MUX306の出力は画像データ119に切り換わっている。後端判定部212からは制御信号111は出力されていないため、MUX303の出力は画像データ118となる。
したがって、乗算器307は、演算係数114(“25”)とMUX303の出力である画像データ118(S0)とで乗算演算を行う。また、乗算器308は、演算係数113(“231”)とMUX306の出力である画像データ119(S1)とで乗算を行う。乗算器307、および乗算器308の出力値は、これまでの出力画素演算時と同様に、加算器309により加算処理され、除算器310により除算演算される。
(第5出力画素(D4)の演算処理)
次に、出力画像データの第5出力画素(D4)の演算に関して説明する。画像データ演算部103は、第4出力画素(D3)の演算時と同様、制御信号117を参照画素位置制御部109に出力する。参照画素位置制御部109は、画像データ演算部103からの制御信号115の入力を受けると、出力第5画素(D4)の演算に関する制御信号、および演算係数113、114を出力する。演算係数113は、第4出力画素演算時の累積加算器203の出力をもとに求められる。MUX201の出力は、出力第4画素演算時からの累積加算器203の出力であり、MUX202は倍率指定係数保持部105である。したがって、累積加算器203は、MUX201の出力値とMUX202の出力値とを加算する。具体的には、MUX201の出力である“231(0xE7)”とMUX202の出力である“102(0x66)”を加算する。なお、加算結果は“333(0x14D)”となる。
第5出力画素演算時における累積加算器203の加算結果は、9ビット構成の最上位ビットの値が‘1’となっているため、参照入力画素更新信号生成部210に対する制御信号205の出力を意味する。先端判定部209の出力である制御信号110は、第2出力画素演算時に出力されていることから、参照入力画素更新信号生成部210は制御信号205を制御信号112として出力する。したがって、第5出力画素の演算時において、制御信号116が出力されるタイミングにおいては、制御信号110、112、および2つの演算係数が有意レベルとなって出力される。
画像データ演算部103は、参照画素位置制御部109から前記制御信号、および2つの演算係数を受け取ると、第5出力画素の演算処理を開始する。ただし、第5出力画素の演算時においては、これまでの出力画素演算時とは異なり、制御信号112が出力されている。制御信号112は、参照入力画素の更新を示すため、画像データ演算部103はデータ保持部301およびデータ保持部302に保持する入力画像データの更新を行う。
入力画像データの更新は、画像データ演算部103が、画像データ記憶部102に対して出力する制御信号117によって行われる。画像データ記憶部102は、画像データ演算部103からの参照入力画素更新を示す制御信号117を受けて、画像データ118および119を出力する。参照入力画素データの更新により、画像データ118は第2入力画素(S1)となり、画像データ119は第3入力画素(S2)となる。したがって、画像データ演算部103のデータ保持部301には画像データ118(S1)が保持され、データ保持部302には画像データ119(S2)が保持される。
一方、第5出力画素演算時において、演算係数113は、絶対値出力制御部207を介して、累積加算器203の下位8ビットが出力されている。つまり、加算結果“333(0x14D)”の下位8ビットである“77(0x4D)”が出力される。この値は、図5におけるPH4、すなわち、第2画素(S1)から第5出力画素(D4)までの位相を示している。また、PH4が定まることにより、第3画素(S2)から第5出力画素(D4)までの距離も、SLからPH4を減算することによって定まる。これは、絶対値出力制御部208を介して、減算器206の出力が相当し、“179(0xB3)”となる。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号、および演算係数113、114をもとに、第5出力画素データ(D4)を算出する。具体的には、先端判定部209から制御信号110が有意レベルで出力されるため、MUX306の出力は画像データ119に切り換わる。後端判定部212からは制御信号111は出力されていないため、MUX303の出力は画像データ118となる。したがって、乗算器307は、演算係数113(“179”)とMUX303の出力である画像データ118(S1)とで乗算演算を行う。また、乗算器308は、演算係数113(“77”)とMUX306の出力である画像データ119(S2)とで乗算を行う。乗算器307および乗算器308の出力値は、これまでの出力画素演算時と同様に、加算器309により加算処理され、除算器310により除算演算される。
このように、累積加算器203の演算結果を用いて参照入力画素の更新を制御し、また、参照入力画素位置と出力画素位置との位相を演算係数として出力することにより、画像データ演算部103は出力画素値の演算を行うことが出来る。
(第10出力画素(D9)の演算処理)
次に、後端判定部212の制御信号111の出力に関して説明する。参照入力画素更新信号生成部210は、制御信号205、すなわち累積加算器203の出力値に応じて制御信号112を出力する。計数部211は、先端判定部209の出力である制御信号110が出力された後の制御信号112を計数する。本説明においては、入力画素は4画素であるため、計数部211による計数は4回行われる。後端判定部212は、計数部211の出力値と入力画素数保持部107の保持値とを比較し、一致した場合に制御信号111を出力する。
画像データ演算部103内部のデータ保持部301、データ保持部302は、4回の参照入力画素データ更新により、その都度保持するデータが更新されている。本説明の例においては、4回の更新により、第4入力データ(S3)がデータ保持部302に記憶されている。なお、この時点でのデータ保持部301に保持されるデータは、入力画素の中には存在しないため、更新前のデータ、あるいは無効データが保持されることとなる。
制御信号111が出力されると、画像データ演算部103内部のMUX303の切り換えが行われる。つまり、データ保持部301に保持したデータではなく、仮想画素値保持部302に保持したデータがMUX303の出力として出力される。
一方、MUX306の出力は、先端判定部209が出力する制御信号110により、データ保持部304が保持した値となる。したがって、乗算器307は、MUX303の出力、すなわち仮想画素値保持部302が保持した値と、その時点において、参照画素位置制御部109が出力する演算係数114とで乗算演算を行う。また、同様に、乗算器308は、MUX306の出力、すなわちデータ保持部304が保持した値と、その時点において、参照画素位置制御部109が出力する演算係数113とで乗算演算を行う。
出力画像データの後端における演算係数113および114は、初期位相を画素が構成されている方向と逆方向(マイナス方向)に設定していることから、入力画像データ位置に対して、左右非対称に位相がずれることはない。つまり、出力画像データ後端における演算係数113、114も左右の対称性を保持する上で適正な位相を示すものとなる。
したがって、4画素から構成され、左右の端部画素が黒である入力画像(S0〜S3)は、図4に示すように左右対称に2.5倍に拡大される(D0〜D9)。図4からも明らかであるように、初期位相を、入力第1画素を基準として、画素が構成されている方向と逆方向に設定することで、入力画像の対称性を保持したまま、拡大処理を行うことが出来る。
拡大処理の終了は、画像データ演算部103によって出力された出力画素数とCPUによって設定された出力画素数保持部108の保持データとの比較にて判定される。つまり、図示しない、出力画素数を計数する計数部の値と出力画素数保持部108の保持データとを比較し、出力画素数が前記保持した値に達した時点で拡大処理の完了とする。
<本実施形態による画像を2倍に拡大する場合の処理例>
これまでは、図4〜図6を参照して、画像を2.5倍に拡大する場合の処理例における処理例を詳細に説明してきた。
図7では、画像を2倍に拡大する場合の処理例について説明する。
図7の例においては、出力画素間距離(DL)が入力画素間距離(SL)の半分であること、初期位相のPH0がDL/2であること以外は、上記2.5倍の場合と基本的な動作は同じである。
本実施形態の図1、図2、図3の構成に従えば、入力画素データ(S0〜S3)に基づいて、左右両端の外側に仮想画素(DS0,DS1)を設けて第1入力画素S0からのマイナスの初期位相PH0を設定する。そして、出力画素データ(D0〜D7)を挟む入力画素データ(S0〜S3)及び仮想画素(DS0,DS1)からの距離に応じて線形補間する。これにより、対称性を保持した高品質の出力画素データ(D0〜D7)からなる2倍の拡大(解像度変換)画像が提供できる。
なお、これまでは、左右の対称性として説明したが、上下の対称性についても本発明の補間による拡大の概念は同様に適用される。ただし、主走査方向と副走査方向とを有する画像形成などでは、左右(主走査方向)と上下(副走査方向)とで異なる制御になる。
<本実施形態の拡大(解像度変換)の2次元画像への適用例>
なお、これまでの説明においては説明を容易にするため1次元の画像データに関して説明を行ったが、本実施形態は2次元の画像データに対しても適用することが可能である。ここでは、左右方向の拡大処理と上下方向の拡大処理とが、上記実施形態の方法を適用して独立に実行される。
図8は、本実施形態を2次元の画像データに適用した場合の概念図を示す。
図8において、実線の四角で示したものは入力画像の画素データ(S0〜S11)である。なお、四角の濃さは画素のレベルを示しており、黒で示したものは高濃度(黒)、白で示したものは低濃度(白)であることを示している。
したがって、入力画像は、周囲1画素(S0〜S4、S7〜S11)が黒画素で構成され、中央の2画素(S5、S6)が白画素の合計12画素で構成されている。また、入力画像の構成画素間距離をSLで示し、出力画像の主走査方向の構成画素間距離をDLM、副走査方向の構成画素間距離をDLSで示している。拡大倍率の設定が、主走査方向と副走査方向で同一の場合、DLMとDLSは同じ値となる。
また、点線の四角で示したものは仮想画素データであり、DS0、DS1、DS2、DS3で示している。なお、本実施形態を画像データに対して適用する場合、仮想画像データは全て同一の値とすることが多い。
本発明を2次元の画像データに適用した場合においても、主走査方向および副走査方向の初期位相の設定概念は1次元の場合と同一である。つまり、入力画像データの主走査方向/副走査方向の画素数、拡大倍率によって生成される出力画像データの主走査方向/副走査方向の画素数、および、各々の構成画素間距離による値を設定する。
図8の例において、拡大倍率を主走査方向/副走査方向ともに2.5倍とすると、主走査方向の出力画素数は10画素、副走査方向の画素数は7画素となる。入力画像の構成画素間距離SLを2のべき乗である“256”とすると、出力画像の構成画素間距離DLM、DLSは、式7によって求まる。
DLM(DLS)=SL/拡大倍率=256/2.5=102…(式7)
主走査方向に4画素、副走査方向に3画素の入力画像データを2.5倍に拡大し、主走査方向に10画素、副走査方向に7画素の出力画像を求める場合、入力画像を構成する主走査方向の全画素数分の距離は、式4により“768”となる。また、同様に入力画像を構成する副走査方向の全画素数分の距離は“512”となる。
一方、出力画像を構成する副走査方向の全画素数分の距離は、式5により“918”となる。また、出力画像を構成する副走査方向の全画素数分の距離は“612”となる。
よって、入力画像データを構成する全画素数分の主走査方向距離と、出力画像を構成する全画素数分の主走査方向距離との差分は、式8により求まる。また、入力画像データを構成する全画素数分の副走査方向距離と、出力画像を構成する全画素数分の副走査方向距離との差分は、式9により求まる。
918−768=150 …(式8)
612−512=100 …(式9)
したがって、設定する初期位相の値は、主走査方向PHMが“−75”、副走査方向PHSが“−50”となる。このように、主走査方向の画素数と副走査方向の画素数が異なる入力画像である場合、本実施形態においては、主走査方向と副走査方向の拡大倍率が同一であっても、設定する初期位相の値は各方向で異なるものを設定する。
本発明を2次元の画像データに適用する場合、図2に示した各構成要件は、主走査方向および副走査方向個別に構成される。つまり、累積加算器、先端判定部、参照入力画素更新信号生成部、計数部、後端判定部は、画素が構成される方向別に構成され、各々独立で制御される。したがって、主走査方向の先端判定部や後端判定部は、1ライン分の画素データの入力が完了し、それに準ずる出力画像データの出力が完了した時点で、該当する制御信号がクリアされる。つまり、制御信号110や111はライン単位で機能する。また、副走査方向の先端判定部や、後端判定部は、全入力画素データの入力が完了し、それに準ずる出力画像データの出力が完了した時点で、該当制御信号がクリアされる。
<本実施形態の画像拡大(解像度変換)処理の処理手順例>
図9は、本実施形態の画像拡大(解像度変換)処理の処理手順例を示すフローチャートである。かかる処理は、図1あるいは図2、図3の機能ブロックを制御するあるいは実現するCPU(不図示)により実行される。
入力画像データの構成画素数および拡大倍率が定まると、本実施形態の装置の各種設定を行うCPUは、以下の諸設定を行う。すなわち、CPUは、基準画素間係数保持部104、倍率指定係数保持部105、初期位相保持部106、入力画素数保持部107、出力画素数保持部108への設定を行い、拡大処理開始の起動をかける。
CPUから拡大処理の起動がかかると、本実施形態の装置の各処理部は拡大処理を開始する。画像データ演算部103は、参照画素位置制御部109に対し、各種制御信号の生成と線形補間演算に必要となる演算係数の出力を要求する。参照画素位置制御部109は、前記要求に基づき位相演算を行う(ステップS101)。設定される初期位相は負のデータであるため、出力画像データの構成画素間距離を累積加算していった演算値が正の値となるまで拡大処理演算を行い、第1出力画素データを出力する(ステップS102)。第1出力画素データの演算には、はじめに画像データ記憶部102から入力された第1入力画素データおよび仮想画素データ値が用いられる。
累積加算出力が正の値となるキャリーを検出すると、先端判定部209が制御信号110を出力する(ステップS103)。先端判定部209による制御信号110が出力されると、以降は仮想画素データ値は用いず、画像データ記憶部102から入力される画素データを用いて出力画素の演算を行う。なお、以降に関しては、累積加算器のキャリーは用いずに累積加算出力の最上位ビットを参照入力画素の更新信号のキャリーとして扱う。
画像データ演算部103は、参照画素位置制御部109からの参照入力画素の更新信号が出力されるまでは、参照入力画素の更新は行わない。つまり、位相演算を繰り返し行い、出力画素の演算と出力とを行う(ステップS104、S105)。累積加算出力の最上位ビットに基づき参照入力画素更新信号が出力されると、画像データ演算部103は演算に用いる入力画素データを更新する。そして、更新した入力画素データにより、継続して、位相演算と出力画素演算とを行う。すなわち、画像データ記憶部102から次に参照する入力画素データを取り込み、出力画素演算を続ける。
先端判定部209の制御信号110の出力以降に生成される参照入力画素更新信号の数は、計数部211により計数される(ステップS106)。本実施形態の装置は、計数部211による計数値がCPUによって設定された入力画素数に達するまで、参照入力画素の更新、位相演算、出力画素演算を繰り返す(ステップS104〜S108)。
計数部211の計数値がCPUによって設定された入力画素数に達すると(S107のN)、後端判定部212は後端判定の制御信号111を出力する(ステップS109)。以降、画像データ演算部103による画素出力数がCPUにより設定された値となるまで、位相演算と出力画素演算とを行う(ステップS110、S111)。なお、後端判定部212が出力された後は、最終入力画素データと仮想画素データとを用いて、出力画素演算を行う。
<本実施形態の画像拡大部(解像度変換部)をコンピュータで構成した例>
図10は、本実施形態の画像拡大部(解像度変換部)をコンピュータで構成した例を示す図である。
かかる構成のコンピュータの動作手順は、基本的に図9のフローチャートと同様である。しかし、かかる構成のコンピュータによれば、拡大倍率から初期位相値が算出されれば、以降の補間のための重み付け値などは予め準備された図10の「重み付けテーブル94b」から読み出して演算可能である。そのため、図1乃至図3の構成のように位相の変化に従って順次に出力画素データを算出する必要は無く、計算時間が短縮される。
例えば、CPU91が高速処理が可能であれば、1ライン分あるいは複数ライン分の入力画素データを入力して拡大出力画素データを算出して、後続処理に同期したタイミングで出力することも可能である。また、2次元であれば、1ページ分の入力画素データから拡大出力画素データをまとめて算出することも可能となる。
図10において、91は、画像拡大部(解像度変換部)100の全体を制御する演算・制御用のCPUである。92は、初期化などの固定のプログラムやパラメータを格納するROMである。93は、CPU91がプログラムを実行中にデータなどを一次記憶するRAMである。画像データもRAM93に一次記憶される。
RAM93には、以下の記憶領域が確保される。なお、かかる記憶領域は、本実施形態の動作に必須なデータの記憶領域であり、汎用のデータについては示していない。93aは、本実施形態の走査方向の先端の外側に設定される仮想画素データ(例えば、図4のDS0)を記憶する領域である。93bは、走査方向分の入力画像データの記憶領域である。93cは、本実施形態の走査方向の後端の外側に設定される仮想画素データ(例えば、図4のDS1)を記憶する領域である。93dは、走査方向に1ラインの入力画素数を記憶する領域である。93eは、拡大倍率を記憶する領域である。93fは、走査方向に1ラインの拡大後の出力画素数を記憶する領域である。
93gは、入力画素数と出力画素数とから算出された初期位相値(例えば、図4のPH0)を記憶する領域である。93hは、出力画素データを線形補間法で演算するための重み付け係数を記憶する領域である。かかる重み付け係数は、出力画素位置に基づいて、後述の外部記憶部94に準備された重み付け係数テーブル94aから取得したものである。93iは、出力画素データを線形補間法で演算するための、出力画素位置の先の第1画素データの記憶領域である。93jは、出力画素データを線形補間法で演算するための、出力画素位置の後の第2画素データの記憶領域である。なお、先端仮想画素データ93a、入力画像データ93b、後端仮想画素データ93cから直接読み出す場合は、93i及び93jは必要ない。93kは、重み付け係数93hに基づき第1画素データ93iと第2画素データ93jから算出された、出力画素データが記憶される領域である。
93mは、CPU91のプログラムの実行で使用される他のパラメータが記憶される領域である。93nは、CPU91が実行するプログラムを後述の外部記憶部94からロードする領域である。
94はディスクなどの不揮発性の外部記憶部である。なお、外部記憶部94の記憶領域には、本実施形態の動作に必須なプログラムやデータの記憶領域のみを示しており、汎用のプログラムやデータについては示していない。94aは、出力画素位置に基づいて予め準備された重み付け係数テーブルの格納領域である。94bは、図9に従って前述のフローチャートに相当する拡大処理プログラムの格納領域である。94cは、拡大処理プログラム94bで使用する出力画素データを仮想画素データおよび入力画素データから補間演算する補間演算ルーチンの格納領域である。
95は、拡大処理部100に入力される画像データやパラメータをインタフェースする入力インタフェースである。96は、拡大処理部100から出力される拡大された画像データをインタフェースする出力インタフェースである。
なお、図10のCPU91は拡大処理部100に専用のプロセッサとして示したが、他の処理や画像形成装置全体の制御を兼ねるプロセッサであってもよい。
<実施形態1の効果>
つまり、本実施形態の装置においては、入力画像を構成する画素データの先端部および後端部の線形補間演算時に、仮想画素データを用いて演算する。また、初期位相として設定する値は、入力画像を構成する第1画素と第2画素の間ではなく仮想画素データと第1画素の間とする。そして、その設定値を入力画像データの構成画素間距離と出力画像データの構成画素間距離との差分をもとに算出した値としている。また、拡大処理する画像データが2次元である場合、主走査方向と副走査方向との拡大倍率が同じであっても、前記演算により方向別に初期位相を設定する。この設定により、入力画像データのもつ対称性が保持された状態で、適正な拡大処理が行われる。
[実施形態2]
前記実施形態1においては、初期位相の設定を、第1入力画素位置を基準として、入力画像データが構成される方向とは逆方向(マイナス方向)に設定していた。しかし、本発明の特徴は、初期位相の設定を従来の線形補間法ように、入力画像の第1画素データと第2画素データの間に設定するのではなく、入力画像の第1画素データよりも前の(マイナスの)位相に設定することにある。したがって、第1入力画素データの前に仮想画素データが設定されるとすると、仮想画素データを基準として初期位相を設定することも可能である。
以下、第1入力画素データの前に設定した仮想画素データを基準として、初期位相を設定する場合の例に関して説明する。
<本実施形態の画像処理における拡大処理部(解像度変換部)の構成例>
本実施形態2における特徴は初期位相の設定にあるため、実施形態1において説明した図1の参照画素位置制御部109の構成が異なるが、画像データ演算部103などの他の構成は同様であるので重複する説明は避ける。
(実施形態2の参照画素位置制御部109の構成例)
図11は、実施形態2における参照画素位置制御部109の構成例を示す図である。なお、図11で、図2と同じ参照番号の入出力信号は、図2の入出力信号と同様である。
図11において、401および402はセレクタ(以下、MUX401、MUX402と称する)、403はMUX401の出力値とMUX402の出力値とを加算する累積加算器である。MUX401の入力は、初期位相保持部106が保持した値(PH0、以下、初期位相と称する)と累積加算器403の出力とである。拡大処理時の第1出力画素の演算時には初期位相が出力され、以降は累積加算器403の出力が選択されるように構成される。MUX402の入力は、倍率指定係数保持部105が保持した値と固定値“0”とである。拡大処理時の第1出力画素の演算時には固定値“0”が出力され、以降は倍率指定係数保持部105が保持した値が出力される。
404は、累積加算器403が出力するキャリー信号であり、MUX401の出力とMUX402の出力との加算結果が、累積加算器403のビット数を超えた場合に出力されるものである。405は、減算器であり、基準画素間係数保持部104が保持する値と累積加算器403の出力値との差分演算を行う。
参照画素位置制御部109は、図2の実施形態1と同様、画像データ演算部103が出力する制御信号115を同期信号として動作する。したがって、画像データ演算部103の制御信号115の入力をもとに、画像データ演算部103の演算処理に必要となる制御信号および演算係数を出力する。
累積加算器403の演算出力は、演算係数114として出力される。演算係数114は、出力画素の演算時に参照する2つの参照入力画素のうち、第1入力画素位置と出力画素位置との距離を示す。減算器405の演算出力は、演算係数113として出力される。演算係数113は、出力画素演算時に参照する2つの参照入力画素のうち、第2入力画素位置と出力画素位置との距離を示す。なお、演算器を構成する場合において、減算器は加算器によって構成されることは公知であるため、減算器405が加算器として構成される場合であっても、減算器に該当するものとする。
406は、先端判定部であり、累積加算器403から出力される制御信号404に応じて動作し、先端画素判定結果信号110を出力する。なお、先端判定部406の具体的動作に関しては後述する。407は、画像データ演算部103が出力画素を演算する際、画像データ記憶部102から読み出す参照入力画素を更新するか否かを制御する参照入力画素更新信号生成部である。参照入力画素更新信号生成部407は、累積加算器403が出力する制御信号404と先端判定部406が出力する判定信号110の出力とに応じて、参照入力画素を更新する制御信号112を生成する。408は、参照入力画素更新信号生成部407が出力する制御信号112を、先端判定部406が出力する先端画素判定結果信号110が示す値に応じて計数する計数部である。具体的には、計数部408は、先端画素判定結果信号110が計数する上で有効なレベルを示していなければ、制御信号112を計数することはしない。つまり、先端画素判定結果信号110は、計数部408の動作制御信号(イネーブル信号)として機能する。
409は、計数部408の出力信号と入力画素数保持部107が保持する値に応じて後端判定を行う後端判定部である。計数部408の出力値が示すものは、出力画素の演算を行う際、先端判定部406が、先端画素を判定してから、入力参照画素の更新が行われた回数を示す。したがって、入力画素数保持部107が保持した値と計数部408の出力値とが同一の値となった場合、入力画素の更新をこれ以上行えないものと判断し、後端画素判定信号111を出力する。なお、後端判定部409の具体的動作に関しても、先端判定部406の動作と同じく後述する。
以上の構成が示す通り、実施形態1との違いは3点ある。1つは、累積加算器403が出力するキャリー信号404が参照入力画素更新信号生成部407に接続されている点である。2つ目は、累積加算器403の出力演算結果が演算係数114として出力されている点である。また、3つ目は、減算器405の出力が、直接、演算係数113として出力されている点である。つまり、実施形態1における絶対値出力制御部207および208が、構成要件として存在しない。このため、実施形態1よりも構成要件の簡略化が可能となる。
<本実施形態による画像を2.5倍に拡大する場合の処理例>
具体的な画素構成図をもとに、更に詳細に本実施形態を説明する。
(2.5倍に拡大する場合の概念)
図12に、実施形態2の概念を説明する1次元の拡大処理の構成図を示す。
図12において、実線の四角で示したもの(S0〜S3)は入力画素位置であり、点線の四角で示したもの(DS0、DS1)は仮想画素位置である。また、丸で示したもの(D0〜D9)は出力画素位置を示している。入力画素および出力画素とも、その内部の濃さ画素データのレベルを示しており、黒で示したものは黒画素(高濃度)、白で示したものは白画素(低濃度)であることを示している。また、SLは入力画像の構成画素間距離を示し、DLは出力画像の構成画素間距離を示している。
実施形態2においては、実施形態1と異なり、入力画像の第1画素データ(S0)の前に仮想画素データをおき、この仮想画素データの位置を基準に初期位相(PH0)を定義する点にある。つまり、初期位相として設定する値に負の概念は存在しない。したがって、初期位相保持部106に設定する値としては正の設定値のみとなり、図14に示すフォーマットとなる。図14において、初期位相として設定するビット数Nの値は、線形補間演算を行う上での演算精度に直結する。つまり、Nの値を大きくすればその分精度が向上する。また、初期位相の設定値が正のみとなることから、累積加算器403の出力には絶対値制御部は存在しない。したがって、累積加算器403の演算出力および減算器405の出力が、演算係数となる。
(2.5倍に拡大する場合の具体的な処理例)
図13は、先端の仮想画素位置(DS0)および入力画像データの先頭の3画素位置(S0、S1、S2)と出力画像データの先頭の7画素位置(D0〜D6)の位相状態を示す図である。なお、図13において、図12と同一の意味を示すものに関しては同じ参照符号を付与する。
本発明において、入力画像データの4画素を2.5倍に拡大して出力する場合に設定する初期位相PH0は、入力画像データの構成画素間距離(SL)と出力画像データの構成画素間距離(DL)とにより算出する。これは、実施形態1と同様、拡大処理後の出力画像データの左右対称性を保持するためである。出力画像データの左右の対象性を保持するためには、出力画像データを構成する全画素数分の距離と入力画像データを構成する全画素数分の距離との差分の半分が、入力画像データの左右端部分を基準に位相がずれていれば良い。
例えば、前記例の場合において、入力画像データの構成画素間距離(SL)を2のべき乗である“256”とすると、出力画像データの構成画素間距離(DL)は、実施形態1と同様102となる。また、入力画素は4画素により構成されるため、入力画像データを構成する全画素数分の距離は、式10にて求められる。
SL×(入力画像データ画素数―1)=256×3=768 …(式10)
出力画像データの構成画素間距離(DL)は10画素により構成されるため、出力画像データを構成する全画素数分の距離は、式11にて求められる。
DL×(出力画像データ画素数―1)=102×9=918 …(式11)
したがって、入力画像データを構成する全画素数分の距離と出力画像データを構成する全画素数分の距離との差分は、式12により求められる。
918−768=150 …(式12)
左右の対称性を保持するためには、式12により求められた値の半分、入力画像データを構成する先頭画素を基準にマイナス方向に位相をずらせば良い。実施形態1においては、第1入力画素を基準としていたために設定する初期位相の符号はマイナスとなったが、実施形態2においては、第1入力画素の前の仮想画素が基準となる。したがって、入力画像の構成画素間距離であるSLをもとに演算を行う。つまり、SLから、式12によって求まった値の半分を減算すれば良い。したがって、初期位相保持部106に設定する初期位相は10進表記で“181”となる。図14における初期位相のフォーマットにしたがえば、SLを“256”としたことから、図14のNは“8”となる。よって、初期位相(PH)の設定は“181(0xB5)”となる。
(第1出力画素(D0)の演算処理)
画像データ演算部103は、出力画素演算に必要となる制御信号および演算係数の要求を、制御信号115として参照画素位置制御部109に対して出力する。参照画素位置制御部109は、前記画像データ演算部103が出力する制御信号115を受けて、先端画素判定信号や後端画素判定信号等の各制御信号、および演算係数を出力する。出力画像の第1画素演算時、累積加算器403の入力、すなわちMUX401とMUX402との出力はそれぞれ、初期位相PH0と固定値“0”となる。したがって、参照画素位置制御部109の出力である演算係数114は、初期位相PH0の値である“181”が出力される。
演算係数113は、減算器405により、累積加算器403の出力と基準画素間係数保持部104が保持した値とで減算され出力される。つまり、入力画像データの構成画素間距離(SL):“256”から“181”を減算した“75(0x4B)”が出力される。
出力画像の第1画素演算時、前記説明のとおり、累積加算器403の出力はキャリーを生成するものではない。したがって、制御信号204は出力されず、結果として、制御信号110、111、112は有意レベルとして出力されない。 参照画素位置制御部109は、制御信号115を受けて、前記制御信号および演算係数を出力し、その出力が有意レベルであるタイミングで制御信号116を、画像データ演算部103に出力する。つまり、前記例においては、演算係数113として“75(0x4B)”、演算係数114として“181(0xB5)”を出力するタイミングで制御信号116の出力を行う。
画像データ演算部103は、前記制御信号116受けると、出力画素演算のために画像データ記憶部102に対して、入力画像データ118および119の要求信号である制御信号117を出力する。画像データ記憶部102は、前記制御信号117の入力を受けて、記憶している画像データを出力する。具体的には、入力の第1画素データ(S0)を画像信号118として出力し、入力の第2画素データ(S1)を画像信号119として出力する。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号および演算係数と、画像データ記憶部102が出力する画像データ118および119を使用して出力画素の演算を行う。ただし、第1出力画素(D0)演算において、参照画素位置制御部109から制御信号116が出力されたタイミングにおいては、制御信号110、111、112はいずれも有意レベルでない。
後端判定部209の出力である制御信号111が出力されない場合、図3の画像データ演算部103におけるMUX303の出力は、入力画像データ118となる。また、先端判定部209の出力である制御信号110が出力されない場合、MUX306の出力は仮想画素値保持部305が保持した値となる。したがって、乗算器307による演算は、入力画像の第1画素データである画像データ118と演算係数114(“0xB5”)との積となる。また、乗算器308による演算は、仮想画素値保持部305が保持した値と演算係数113(“0x4B”)との積となる。乗算器307および乗算器308の演算出力は、加算器309により加算処理され、除算器310で除算演算される。本説明においては、入力画像データの構成画素間距離(SL)は2のべき乗(“256”)としているため、除算器310の演算は8ビットシフトにより実施することが可能である。したがって、除算器310の出力、つまり出力画像の第1画素(D0)は、式13により演算される。
D0=(S0ד0xB5”+DS0ד0X4B”)/“0x100” …(式13)
図12に示した入力画素構成において、S0の値は黒(“0x00”)、DS0の値は白(“0xFF”)であるから、式13の演算結果は、S0、DS0の値を代入して“74(0x4A)”となる。
(第2出力画素(D1)の演算処理)
次に、第2出力画素(D1)の演算に関して説明する。画像データ演算部103から、第2出力画素(D1)演算のための制御信号115が出力されると、参照画素位置制御部109は、各制御信号および出力画像の第2画素の演算に必要となる演算係数出力の処理を行う。参照画素位置制御部109は、画像データ演算部103から第2出力画素演算のための制御信号115が出力されると、該当画素に対する制御信号および演算係数113、114を出力する。
第2出力画素の演算であるため、MUX201の出力は、初期位相保持部106が保持した値ではなく累積加算器203の出力である“181(0xB5)”を出力する。一方、MUX202の出力は、固定値0から倍率指定係数保持部106が保持した値に切り換わる。したがって、設定倍率に該当する出力画像データの構成画素間距離(DL)の値である“102(0x66)”が出力される。

累積加算器403は、前記MUX401とMUX402との値の加算処理を行う。MUX401の出力が“0xB5”であり、MUX402の出力が“0x66”であるから、累積加算器203の出力は“0x11B”となる。したがって、この場合の累積加算器403の出力は、制御信号404が有意レベルで出力され、且つ、下位8ビットの値が“0x1B”となる。よって、演算係数114、113の出力はそれぞれ、“27(0x1B)”、“229(0xE5)”となる。前記値は、図12における第2出力画素(D1)の位相を示すものであり、図12に図示のPH1が、演算係数114の出力値(“0x1B”)に相当する。また、PH1が定まることにより、参照入力画素である画像データ119(S1)から出力第2画素D1までの距離は、入力画像データの構成画素間距離SLからPH1を減算することにより求まる。これは、演算係数113の出力値(“0xE5”)が相当する。
累積加算器403から制御信号404が出力されるため、先端判定部406は先端画素の判定を行う。先端判定部406の判定処理は、制御信号404が入力されると先端画素判定信号110を出力することである。
参照入力画素更新信号生成部407は、制御信号404をもとに制御信号112の出力を行うが、先端判定部406が制御信号110を出力するまでは、制御信号112の出力は行わない。したがって、出力第2画素(D1)演算時において、先端判定部406の制御信号110が有意レベルで出力されるが、このタイミングにおいては、同期制御の関係により、制御信号404によらず制御信号112の出力は行わない。
参照画素位置制御部109は、第1出力画素演算時と同様に制御信号および演算係数を出力し、その出力タイミングにおいて制御信号116を画像データ演算部103に出力する。画像データ演算部103は、前記制御信号116を受け、出力画像データの演算を開始する。参照画素位置制御部109が制御信号116を出力した時点においては、制御信号110および112は出力されていないため、入力画素データの更新は行わない。つまり、データ保持部301および302のデータ更新は行わない。
なお、データ保持部301、302の更新が行われない場合であっても、画像データ演算部103が、制御信号117を出力するようにしても良い。例えば、画像データ記憶部102に対するメモリアドレスを同じ値として、第1出力画素演算時と同じデータを取り込むようにしても良い。また、参照画素位置制御部109から参照入力画素の更新を示す制御信号112が出力されない場合は、制御信号117を出力しない構成にしても良い。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号、および演算係数113、114をもとに、第2出力画素データ(D1)を算出する。具体的には、先端判定部406から制御信号110が有意レベルで出力されるため、MUX306の出力は画像データ119に切り換わる。後端判定部209からは制御信号111は出力されていないため、MUX303の出力は画像データ118となる。したがって、乗算器307は、演算係数114とMUX303の出力である画像データ118(S0)とで乗算演算を行う。また、乗算器308は、演算係数113とMUX306の出力である画像データ119(S1)とで乗算を行う。乗算器307および308の出力値は、出力第1画素演算時と同様に、加算器309により加算処理され、除算器310により除算演算される。
(第3出力画素(D2)の演算処理)
次に、出力画像の第3出力画素(D2)の演算に関して説明する。画像データ演算部103は、第2出力画素(D1)の演算時と同様、制御信号115を参照画素位置制御部109に対して出力する。参照画素位置制御部109は、画像データ演算部103からの制御信号115の入力を受けると、第3出力画素(D2)の演算に関する制御信号、および演算係数113、114を出力する。
演算係数113は、第2出力画素演算時の累積加算器403の出力をもとに求められる。MUX401の出力は、第2出力画素演算時から累積加算器403の出力であり、MUX402は倍率指定係数保持部105である。したがって、累積加算器403は、MUX401の出力値とMUX402の出力値とを加算する。具体的には、MUX401の出力である“27(0x1B)”とMUX402の出力である“102(0x66)”を加算し、“129(0x81)”を出力する。また、この時点における累積加算器403の出力値が定まることにより、減算器405の減算値が“127(0x7F)”と定まる。前記値は、図13における第3出力画素(D2)の位相を示すものであり、図13に図示のPH2が相当する。また、PH2が定まることにより、参照入力画素である画像データ119(S1)から出力第3画素D2までの距離は、入力画像データの構成画素間距離SLからPH2を減算することにより求まる。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号および演算係数113、114をもとに、第3出力画素(D2)を算出する。具体的には、先端判定部406から制御信号110が有意レベルで出力されるため、MUX306の出力は画像データ119に切り換わる。後端判定部409からは、制御信号111は出力されていないため、MUX303の出力は画像データ118となる。したがって、乗算器307は、演算係数114(“127”)とMUX303の出力である画像データ118(S0)とで乗算演算を行う。また、乗算器308は、演算係数113(“129”)とMUX306の出力である画像データ119(S1)とで乗算を行う。乗算器307および308の出力値は、第1出力画素演算時および第2出力画素演算時と同様に、加算器309により加算処理され、除算器310により除算演算される。
(第4出力画素(D3)の演算処理)
次に、第4出力画素(D3)の演算に関して説明する。画像データ演算部103は、第3出力画素(D2)の演算時と同様、制御信号115を参照画素位置制御部109に出力する。参照画素位置制御部109は、画像データ演算部103からの制御信号115の入力を受けると、第4出力画素(D3)の演算に関する制御信号および演算係数113、114を出力する。
演算係数113は、第3出力画素演算時の累積加算器403の出力をもとに求められる。MUX401の出力は、第3出力画素演算時から累積加算器403の出力であり、MUX402は倍率指定係数保持部105である。したがって、累積加算器403は、MUX401の出力値とMUX402の出力値とを加算する。具体的には、MUX401の出力である“129(0x81)”とMUX402の出力である“102(0x66)”を加算し、“231(0xE7)”を出力する。また、この時点における累積加算器403の出力値が定まることにより、減算器405の減算値が“25(0x19)”と定まる。前記値は、図13における第4出力画素(D3)の位相を示すものであり、図13に図示のPH3が相当する。また、PH3が定まることにより、参照入力画素である画像データ119(S1)から第4出力画素D3までの距離は、入力画像データの構成画素間距離SLからPH3を減算することにより求まる。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号および演算係数113、114をもとに、第4出力画素(D3)を算出する。具体的には、先端判定部406から制御信号110が有意レベルで出力されるため、MUX306の出力は画像データ119に切り換わる。後端判定部409からは制御信号111は出力されていないため、MUX303の出力は画像データ118となる。したがって、乗算器307は、演算係数114(“25”)とMUX303の出力である画像データ118(S0)とで乗算演算を行う。また、乗算器308は、演算係数113(“231”)とMUX306の出力である画像データ119(S1)とで乗算を行う。乗算器307および308の出力値は、これまでの出力画素演算時と同様に、加算器309により加算処理され、除算器310により除算演算される。
(第5出力画素(D4)の演算処理)
次に、第5出力画素(D4)の演算に関して説明する。画像データ演算部103は、第4出力画素(D3)の演算時と同様、制御信号117を参照画素位置制御部109に出力する。参照画素位置制御部109は、画像データ演算部103からの制御信号115の入力を受けると、第5出力画素(D4)の演算に関する制御信号および演算係数113、114を出力する。
演算係数113は、第4出力画素演算時の累積加算器403の出力をもとに求められる。MUX401の出力は、第4出力画素演算時からの累積加算器403の出力であり、MUX402は倍率指定係数保持部105である。したがって、累積加算器403は、MUX401の出力値とMUX402の出力値とを加算する。具体的には、MUX401の出力である“231(0xE7)”とMUX402の出力である“102(0x66)”を加算する。加算結果は333(0x14D)を出力する。
第5出力画素演算時における累積加算器403の加算結果により、累積加算器403からはキャリーが発生する。これは、参照入力画素更新信号生成部407に対する制御信号404の出力を意味する。先端判定部409の出力である制御信号110は、第2出力画素演算時に出力されていることから、参照入力画素更新信号生成部407は制御信号404を制御信号112として出力する。したがって、第5出力画素の演算時において、制御信号116が出力されるタイミングにおいては、制御信号110、112、および2つの演算係数が有意レベルとなって出力される。
画像データ演算部103は、参照画素位置制御部109から前記制御信号および2つの演算係数を受け取ると、第5出力画素の演算処理を開始する。ただし、第5出力画素の演算時においては、これまでの出力画素演算時とは異なり、制御信号112が出力されている。制御信号112は、参照入力画素の更新を示すため、画像データ演算部103は、データ保持部301およびデータ保持部302に保持する入力画像データの更新を行う。
入力画像データの更新は、画像データ演算部103が画像データ記憶部102に対して出力する制御信号117によって行われる。画像データ記憶部102は、画像データ演算部103からの参照入力画素更新を示す制御信号117を受けて、画像データ118および119を出力する。参照入力画素データの更新により、画像データ118は入力第2画素(S1)となり、画像データ119は入力第3画素(S2)となる。したがって、画像データ演算部103のデータ保持部301には画像データ118(S1)が保持され、データ保持部302には画像データ119(S2)が保持される。
一方、第5出力画素演算時において、演算係数113は累積加算器403の演算結果が出力されている。つまり、キャリー発生による256を減算した値、つまり、加算結果“77(0x4D)”が出力される。この値は、図13におけるPH4、すなわち、第2入力画素(S1)から第5出力画素(D4)までの位相を示している。また、PH4が定まることにより、第3入力画素(S2)から第5出力画素(D4)までの距離も、SLからPH4を減算することによって定まる。これは、減算器405の出力が相当し、“179(0xB3)”となる。
画像データ演算部103は、参照画素位置制御部109から出力される制御信号および演算係数113、114をもとに、第5出力画素データ(D4)を算出する。具体的には、先端判定部406から制御信号110が有意レベルで出力されるため、MUX306の出力は画像データ119に切り換わる。後端判定部409からは制御信号111は出力されていないため、MUX303の出力は画像データ118となる。したがって、乗算器307は、演算係数113(“179”)とMUX303の出力である画像データ118(S1)とで乗算演算を行う。また、乗算器308は、演算係数113(“77”)とMUX306の出力である画像データ119(S2)とで乗算を行う。乗算器307および308の出力値は、これまでの出力画素演算時と同様に、加算器309により加算処理され、除算器310により除算演算される。
このように、累積加算器403の演算結果を用いて参照入力画素の更新を制御し、また、参照入力画素位置と出力画素位置との位相を演算係数として出力することにより、画像データ演算部103は出力画素値の演算を行うことが出来る。
(第10出力画素(D9)の演算処理)
次に、後端判定部409の制御信号111の出力に関して説明する。参照入力画素更新信号生成部407は、累積加算器403のキャリーに応じて制御信号112を出力する。計数部408は、先端判定部406の出力である制御信号110が出力された後の制御信号112を計数する。本説明においては、入力画素は4画素であるため、計数部408による計数は“4”まで行われる。後端判定部409は、計数部408の出力値と入力画素数保持部107の保持値とを比較し、一致した場合に制御信号111を出力する。
画像データ演算部103のデータ保持部301、302は、4回の参照入力画素データ更新により、その都度保持するデータが更新されている。本説明の例においては、4回の更新により第4入力画素データ(S3)がデータ保持部302に記憶されている。なお、この時点でのデータ保持部301に保持されるデータは、入力画素の中には存在しないため、更新前のデータあるいは無効データが保持されることとなる。
制御信号111が出力されると、画像データ演算部103内部のMUX303の切り換えが行われる。つまり、データ保持部301に保持したデータではなく、仮想画素値保持部302に保持したデータがMUX303の出力として出力される。
一方、MUX306の出力は、先端判定部209が出力する制御信号110により、データ保持部304が保持した値となる。したがって、乗算器307は、MUX303の出力、すなわち仮想画素値保持部302が保持した値と、その時点において参照画素位置制御部109が出力する演算係数114とで乗算演算を行う。また、同様に、乗算器308は、MUX306の出力、すなわちデータ保持部304が保持した値と、その時点において参照画素位置制御部109が出力する演算係数113とで乗算演算を行う。
出力画像データの後端における演算係数113および114は、初期位相を第1入力画素より前の仮想画素を基準に設定していることから、入力画像データ位置に対して、左右非対称に位相がずれることはない。つまり、出力画像データ後端における演算係数113、114も左右の対称性を保持する上で適正な位相を示すものとなる。
したがって、4画素から構成され左右の端部画素が黒である入力画像(S0〜S3)は、図12に示すように左右対称に2.5倍に拡大される(D0〜D9)。図12からも明らかであるように、初期位相を入力第1画素より前の仮想画素を基準に設定することで、入力画像の対称性を保持したまま拡大処理を行うことが出来る。
なお、拡大処理の終了は、画像データ演算部103によって出力された出力画素数と、CPUによって設定された出力画素数保持部108の保持データにて判定される。つまり、出力画素数を計数する計数部の値と出力画素数保持部108の保持データとを比較し、出力画素数が前記保持した値に達した時点で、拡大処理の完了とする。
<本実施形態による画像を2倍に拡大する場合の処理例>
これまでは、図12〜図14を参照して、画像を2.5倍に拡大する場合の処理例における処理例を詳細に説明してきた。
図15では、画像を2倍に拡大する場合の処理例について説明する。
図15の例においては、出力画素間距離(DL)が入力画素間距離(SL)の半分であること、初期位相のPH0がSL−DL/2であること以外は、上記2.5倍の場合と基本的な動作は同じである。
本実施形態の図1、図11、図3の構成に従えば、入力画素データ(S0〜S3)に基づいて、左右両端の外側に仮想画素(DS0,DS1)を設けて仮想画素DS0からのプラスの初期位相PH0を設定する。そして、出力画素データ(D0〜D7)を挟む入力画素データ(S0〜S3)及び仮想画素(DS0,DS1)からの距離に応じて線形補間する。これにより、対称性を保持した高品質の出力画素データ(D0〜D7)からなる2倍の拡大(解像度変換)画像が提供できる。
<本実施形態の拡大(解像度変換)の2次元画像への適用例>
なお、これまでの説明においては、説明を容易にするために1次元の画像データに関して説明を行ったが、本実施形態は2次元の画像データに対しても適用することが可能である。
図16に、本発明を2次元の画像データに適用した場合の概念図を示す。
図16において、実線の四角で示したものは入力画像の画素データ(S0〜S11)である。なお、四角の中の濃さは画素のレベルを示しており、黒で示したものは高濃度(黒)、白で示したものは低濃度(白)であることを示している。したがって、入力画像は、周囲1画素(S0〜S4、S7〜S11)が黒画素で構成され、中央の2画素(S5、S6)が白画素の合計12画素で構成されている。また、入力画像の構成画素間距離をSLで示し、出力画像の主走査方向の構成画素間距離をDLM、副走査方向の構成画素間距離をDLSで示している。拡大倍率の設定が、主走査方向と副走査方向とで同一の場合、DLMとDLSは同じ値となる。また、点線の四角で示したものは仮想画素データであり、DS0、DS1、DS2、DS3で示している。なお、本発明を画像データに対して適用する場合、仮想画像データは全て同一の値とすることが多い。
本発明を、2次元の画像データに適用した場合においても、主走査方向および副走査方向の初期位相の設定概念は、1次元の場合と同一である。つまり、入力画像データの主走査方向/副走査方向の画素数、拡大倍率によって生成される出力画像データの主走査方向/副走査方向の画素数、および、各々の構成画素間距離による値を設定する。
図16の例において、拡大倍率を主走査方向/副走査方向ともに2.5倍とすると、主走査方向の出力画素数は10画素、副走査方向の画素数は7画素となる。入力画像の構成画素間距離SLを2のべき乗である“256”とすると、出力画像の構成画素間距離DLM、DLSは、式14によって求まる。
DLM(DLS)=SL/拡大倍率=256/2.5=102…(式14)
主走査方向の4画素、副走査方向の3画素の入力画像データを2.5倍に拡大し、主走査方向の10画素、副走査方向の7画素の出力画像を求める場合、入力画像を構成する主走査方向の全画素数分の距離は、式4により“768”となる。また、同様に入力画像を構成する副走査方向の全画素数分の距離は“512”となる。一方、出力画像を構成する副走査方向の全画素数分の距離は、式5により“918”となる。また、出力画像を構成する副走査方向の全画素数分の距離は、“612”となる。
したがって、入力画像データを構成する全画素数分の主走査方向距離と、出力画像を構成する全画素数分の主走査方向距離との差分は、式15により求まる。また、入力画像データを構成する全画素数分の副走査方向距離と、出力画像を構成する全画素数分の副走査方向距離との差分は、式16により求まる。
918−768=150 …(式15)
612−512=100 …(式16)
前記、式15および式16による演算結果は、入力画像データを構成する全画素数分の副走査方向距離と出力画像を構成する全画素数分の副走査方向距離との差分であるため、次に仮想画素データを基準とした値を求める。具体的には入力画像の構成画素間距離SLから、前記式15および式16の演算結果の半分を減算すれば良い。
したがって、設定する初期位相の値は、主走査方向PHMが“181”、副走査方向PHSが“206”となる。このように、主走査方向の画素数と副走査方向の画素数とが異なる入力画像である場合、本実施形態においては、主走査方向と副走査方向の拡大倍率が同一であっても、設定する初期位相の値は各方向で異なるものを設定する。
本発明を、2次元の画像データに適用する場合、図11に示した各構成要件は、主走査方向および副走査方向個別に構成される。つまり、累積加算器、先端判定部、参照入力画素更新信号生成部、計数部、および後端判定部は、画素が構成される方向別に構成され、各々独立で制御される。したがって、主走査方向の先端判定部や後端判定部は、1ライン分の画素データの入力が完了し、それに準ずる出力画像データの出力が完了した時点で、該当する制御信号がクリアされる。つまり、制御信号110や111はライン単位で機能する。また、副走査方向の先端判定部や後端判定部は、全入力画素データの入力が完了し、それに準ずる出力画像データの出力が完了した時点で、該当制御信号がクリアされる。
<本実施形態の画像拡大(解像度変換)処理の処理手順例>
図17は、本実施形態の画像拡大(解像度変換)処理の処理手順例を示すフローチャートである。かかる処理は、図1あるいは図11、図3の機能ブロックを制御するあるいは実現するCPU(不図示)により実行される。
入力画像データの構成画素数および拡大倍率が定まると、本実施形態の装置の各種設定を行うCPUは、諸設定を行う。すなわち、CPUは、基準画素間係数保持部104、倍率指定係数保持部105、初期位相保持部106、入力画素数保持部107、出力画素数保持部108への設定を行い、拡大処理開始の起動をかける。
CPUから拡大処理の起動がかかると、本実施形態の装置の処理部は拡大処理を開始する。画像データ演算部103は、参照画素位置制御部109に対し、各種制御信号の生成と線形補間演算に必要となる演算係数の出力とを要求する。参照画素位置制御部109は、前記要求に基づき位相演算を行う(ステップS201)。
設定される初期位相は入力画素の前の仮想画素を基準とする。したがって、出力画像データの構成画素間距離を累積加算していった演算値がキャリーを含むまで、画像データ記憶部102から入力された第1入力画素データおよび仮想画素データ値を用いて最初の出力画素の拡大処理演算を行う(ステップS202)。
累積加算出力として第1のキャリーが発生すると、先端判定部406は制御信号110を出力する(ステップS203)。先端判定部406による制御信号110が出力されると、仮想画素データ値は用いずに画像データ記憶部102から入力される画素データを用いて出力画素の演算を行う。なお、以降に関しては、累積加算出力のキャリーを参照入力画素の更新信号として扱う。
画像データ演算部103は、参照画素位置制御部109からの参照入力画素の更新信号が出力されるまでは、参照入力画素の更新は行わない。つまり、位相演算を繰り返し行い、出力画素の演算を行う(ステップS204、S205)。参照入力画素更新信号が出力されると、画像データ演算部103は演算に用いる入力画素データを更新する。更新後も継続して、位相演算及び出力画素演算を行う。すなわち、画像データ記憶部102から次に参照する入力画素データを取り込み、出力画素演算を行う。
先端判定部406の制御信号110の出力以降に生成される参照入力画素更新信号の数は、計数部408により計数される。本実施形態の装置は、計数部408による計数値がCPUによって設定された入力画素数に達するまで、参照入力画素の更新、位相演算、出力画素演算を繰り返す(ステップS204〜S208)。
計数部408の計数値がCPUによって設定された入力画素数に達すると、後端判定部409は後端判定の制御信号111を出力する(ステップS209)。以降、画像データ演算部103による画素出力数がCPUにより設定された値となるまで、位相演算及び出力画素演算を行い、最後の出力画素を出力する(ステップS210、S211)。なお、後端判定部409が出力された後は、最終入力画素データと仮想画素データを用いて、出力画素演算を行う。
なお、実施形態2においても、画像拡大部(解像度変換部)をコンピュータで構成する場合は、図10と同様の構成により実現可能である。
<実施形態2の効果>
本実施形態2の装置においても、入力画像を構成する画素データの先端および後端部の線形補間演算時に、仮想画素データを用いて演算する。また、初期位相として設定する値は、入力画像を構成する第1画素と第2画素の間ではなく、仮想画素と入力第1画素の間としている。そして、設定する値は、入力画像データの構成画素間距離と出力画像データの構成画素間距離との差分をもとに算出した値としている。更に、その設定値は、実施形態1とは異なり、符号をもたない係数フォーマットとし累積加算器のキャリーを使用することとしている。これにより、演算処理部の構成を実施形態1の構成よりも更に容易にし、更に、入力画像データのもつ対称性を保持した拡大処理を実現している。
なお、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、スキャナ、プリンタ、PC、複写機、複合機及びファクシミリ装置の如くである。
また、本発明は、前述した実施形態の各機能を実現するソフトウエアプログラムを、システム若しくは装置に対して直接または遠隔から供給することによっても達成される。そして、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行する。
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の1つである。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネット/イントラネットのウェブサイトからダウンロードしてもよい。すなわち、該ウェブサイトから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるウェブサイトからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明の構成要件となる場合がある。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配付してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネット/イントラネットを介してウェブサイトから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
本実施形態の拡大処理部(解像度変換部)の構成例を示す図である。 本実施形態の拡大処理部を有する画像形成装置の概略構成例を示す図である。 実施形態1の参照画素位置制御部の構成例を示す図である。 本実施形態の画像データ演算部の構成例を示す図である。 実施形態1における2.5倍の拡大処理と初期位相設定とを説明する図である。 実施形態1における出力画素位置に対応した位相を示す図である。 実施形態1における初期位相設定データのフォーマット例を示す図である。 実施形態1における2倍の拡大処理と初期位相設定とを説明する図である。 実施形態1の拡大処理を2次元の画像データに適用した場合の例を示す図である。 実施形態1における動作手順例を示すフローチャートである。 本実施形態の拡大処理部をコンピュータで実現した構成例を示す図である。 実施形態2における参照画素位置制御部の構成例を示す図である。 実施形態2における2.5倍の拡大処理と初期位相設定とを説明する図である。 実施形態2における出力画素位置に対応した位相を示す図である。 実施形態2における初期位相設定のフォーマット例を示す図である。 実施形態2における2倍の拡大処理と初期位相設定とを説明する図である。 実施形態2の拡大処理を2次元の画像データに適用した場合の例を示す図である。 実施形態2における動作手順例を示すフローチャートである。 従来のSPC法による拡大処理の例を示す図である。 従来の線形補間法による拡大処理の例を示す図である。 従来の線形補間法における初期位相を設定した場合の拡大処理の例を示す図である。 従来の線形補間法を2次元の画像データに適用する場合の元の画像の例を示す図である。 従来の線形補間法を2次元の画像データに適用する場合の初期位相の無い拡大画像の例を示す図である。 従来の線形補間法を2次元の画像データに適用する場合の初期位相の有る拡大画像の例を示す図である。

Claims (9)

  1. 力画像を補間処理することによって、前記入力画像が拡大された出力画像を出力する画像拡大装置であって、
    前記入力画像内の左右及び上下の少なくともいずれかの方向の入力画素列について、当該入力画素列の先頭の画素の前と最後の画素の後とに、前記入力画像にない仮想画素を設定する設定手段と、
    前記入力画素列の先頭の画素の前記入力画像上の位置と当該出力されるべき前記出力画像の出力画素列の先頭の画素の出力画像上の位置との差と、前記入力画素列の最後の画素の前記入力画像上の位置と前記出力画素列の最後の画素の前記出力画像上の位置との差と、が等しくなるように、拡大倍率に応じて、前記出力画素列の先頭の画素の前記出力画像上の位置を決定する決定手段と、
    前記入力画素列の先頭の画素の前記入力画像上の位置より前記出力画像上で前に位置する出力画素の画素データを、前記設定手段により前記入力画素列の先頭の画素の前に設定された前記仮想画素の画素データと前記入力画素列の先頭の画素の画素データとに基づき補間演算し、前記入力画素列の最後の画素の前記入力画像上の位置より前記出力画像上で後に位置する出力画素の画素データを、前記設定手段により前記入力画素列の後に設定された前記仮想画素の画素データと前記入力画素列の最後の画素の画素データとに基づき補間演算する演算手段と、を備え、
    前記決定手段は、前記設定手段により設定された仮想画素と、前記入力画素列の先頭の画素とを端点とする補間領域内で、前記出力画素列の先頭の画素の前記出力画像上の位置を決定する、
    ことを特徴とする画像拡大装置。
  2. 拡大倍率に基づいて、拡大前の入力画素数および画素間の距離を定める値から、拡大後の出力画素数および画素間の距離を定める値を算出する算出手段、をさらに備え、
    前記決定手段は、前記拡大前の入力画素数および画素間の距離を定める値と、前記算出手段により算出された拡大後の出力画素数および画素間の距離を定める値とから、前記出力画素列の先頭の画素の前記出力画像上の位置を前記補間領域内で決定する、
    ことを特徴とする請求項1に記載の画像拡大装置。
  3. 画素の位置は画像データに応じた画像を形成する際の各画素を形成するタイミングのずれを示す位相で表わされ、前記入力画素列の先頭の画素の前記入力画像上の位置と前記出力画素列の先頭の画素の出力画像上かつ前記補間領域内の位置との差は初期位相とされ、
    前記決定手段は、前記出力画素列の先頭の画素の前記出力画像上かつ前記補間領域内の位置を、前記入力画素列の先頭の画素の前記入力画像上の位置から前記初期位相分ずれた位置として決定する、
    ことを特徴とする請求項1又は2に記載の画像拡大装置。
  4. 前記初期位相は、前記入力画素列の先頭の画素の前記入力画像上の位置からの方向を示しており、
    前記演算手段は、
    前記初期位相を負の値で保持する初期位相保持手段と、
    拡大倍率に応じた係数を前記負の初期位相に対して累積加算する累積加算手段と、
    前記累積加算手段による演算結果が負の値から正の値となることを検出する検出手段と、を備え、
    前記演算手段は、前記検出手段による検出が行われるまでは、前記設定手段により前記入力画素列の先頭の画素の前に設定された前記仮想画素の画素データと前記入力画素列の先頭の画素の画素データとを用いて補間を行う、
    ことを特徴とする請求項3に記載の画像拡大装置。
  5. 前記初期位相は、前記入力画素列の前に設定された仮想画素位置からの方向を示しており、
    前記演算手段は、
    前記初期位相を正の値で保持する初期位相保持手段と、
    拡大倍率に応じた係数を前記正の初期位相に対して累積加算する累積加算手段と、
    前記累積加算手段による演算における最初のオーバーフローを検出するオーバーフロー検出手段と、を備え、
    前記演算手段は、前記オーバーフロー検出手段による検出が行われるまでは、前記設定手段により前記入力画素列の先頭の画素の前に設定された前記仮想画素の画素データと前記入力画素列の先頭の画素の画素データとを用いて補間を行う、
    ことを特徴とする請求項3に記載の画像拡大装置。
  6. 前記画像データを前記左右及び上下の方向について独立に補間処理することによって、2次元画像を拡大する、ことを特徴とする請求項1乃至5のいずれか1項に記載の画像拡大装置。
  7. 請求項1乃至6のいずれか1項に記載の画像拡大装置を有することを特徴とする画像形成装置。
  8. 力画像を補間処理することによって、前記入力画像が拡大された出力画像を出力する画像拡大装置において実行される画像拡大方法であって、
    前記画像拡大装置の設定手段が、前記入力画像内の左右及び上下の少なくともいずれかの方向の入力画素列について、当該入力画素列の先頭の画素の前と最後の画素の後とに、前記入力画像にない仮想画素を設定する設定工程と、
    前記画像拡大装置の決定手段が、前記入力画素列の先頭の画素の前記入力画像上の位置と当該出力されるべき前記出力画像の出力画素列の先頭の画素の出力画像上の位置との差と、前記入力画素列の最後の画素の前記入力画像上の位置と前記出力画素列の最後の画素の前記出力画像上の位置との差と、が等しくなるように、拡大倍率に応じて、前記出力画素列の先頭の画素の前記出力画像上の位置を決定する決定工程と、
    前記画像拡大装置の演算手段が、前記入力画素列の先頭の画素の前記入力画像上の位置より前記出力画像上で前に位置する出力画素の画素データを、前記設定工程において前記入力画素列の先頭の画素の前に設定された前記仮想画素の画素データと前記入力画素列の先頭の画素の画素データとに基づき補間演算し、前記入力画素列の最後の画素の前記入力画像上の位置より前記出力画像上で後に位置する出力画素の画素データを、前記設定工程において前記入力画素列の後に設定された前記仮想画素の画素データと前記入力画素列の最後の画素の画素データとに基づき補間演算する演算工程と、を有し、
    前記決定工程は、前記設定工程において設定された仮想画素と、前記入力画素列の先頭の画素とを端点とする補間領域内で、前記出力画素列の先頭の画素の前記出力画像上の位置を決定する、
    ことを特徴とする画像拡大方法。
  9. 請求項8に記載の画像拡大方法の各工程をコンピュータに実行させるためのプログラム。
JP2009011120A 2009-01-21 2009-01-21 画像拡大方法、画像拡大装置および画像形成装置 Expired - Fee Related JP5202352B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009011120A JP5202352B2 (ja) 2009-01-21 2009-01-21 画像拡大方法、画像拡大装置および画像形成装置
US12/688,841 US8379268B2 (en) 2009-01-21 2010-01-15 Image enlargement method, image enlargement apparatus, and image forming apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009011120A JP5202352B2 (ja) 2009-01-21 2009-01-21 画像拡大方法、画像拡大装置および画像形成装置

Publications (3)

Publication Number Publication Date
JP2010171622A JP2010171622A (ja) 2010-08-05
JP2010171622A5 JP2010171622A5 (ja) 2012-03-08
JP5202352B2 true JP5202352B2 (ja) 2013-06-05

Family

ID=42336734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009011120A Expired - Fee Related JP5202352B2 (ja) 2009-01-21 2009-01-21 画像拡大方法、画像拡大装置および画像形成装置

Country Status (2)

Country Link
US (1) US8379268B2 (ja)
JP (1) JP5202352B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5703769B2 (ja) * 2011-01-19 2015-04-22 ソニー株式会社 画像変換装置、画像変換方法、プログラム、および電子機器
JP5930834B2 (ja) * 2011-09-27 2016-06-08 キヤノン株式会社 画像処理装置、画像処理方法、画像処理装置の制御方法
JP5888974B2 (ja) * 2011-12-26 2016-03-22 キヤノン株式会社 画像処理装置、画像表示装置、印刷装置、および画像処理プログラム
JP6215861B2 (ja) * 2015-03-20 2017-10-18 Necプラットフォームズ株式会社 画像拡大装置および画像拡大方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01194667A (ja) * 1988-01-29 1989-08-04 Konica Corp 画像処理装置
JP2771712B2 (ja) * 1991-06-10 1998-07-02 キヤノン株式会社 画素密度変換装置
JPH09326958A (ja) * 1996-06-05 1997-12-16 Sony Corp 画像処理装置および処理方法
JPH1131221A (ja) * 1997-07-10 1999-02-02 Matsushita Electric Ind Co Ltd 画像拡大装置
JP4362792B2 (ja) 1999-05-10 2009-11-11 日本精工株式会社 電動式パワーステアリング装置
JP2002015327A (ja) * 2000-06-28 2002-01-18 Sony Corp 画像種別判別装置およびこれを用いた画像処理装置ならびに画像種別判別方法。
JP2003177669A (ja) * 2001-12-07 2003-06-27 Cdex:Kk 冪乗剰余演算装置及び冪乗剰余演算方法
JP2003224715A (ja) * 2002-01-31 2003-08-08 Sony Corp 画像処理回路および画像処理方法
JP4379571B2 (ja) * 2003-03-17 2009-12-09 富士ゼロックス株式会社 画像処理装置及び画像処理方法
JP4483255B2 (ja) * 2003-10-02 2010-06-16 パナソニック株式会社 液晶表示装置
JP4492100B2 (ja) * 2003-11-14 2010-06-30 ソニー株式会社 画像信号の処理装置および処理方法
JP2005269502A (ja) * 2004-03-22 2005-09-29 Canon Inc 画像処理装置および画像処理方法
JP4609141B2 (ja) * 2005-03-25 2011-01-12 富士ゼロックス株式会社 画像処理装置、画像処理方法及び画像処理プログラム
US7460287B2 (en) * 2005-05-17 2008-12-02 Symbol Technologies, Inc. Arrangement for and method of increasing pixel symmetry, especially for image projection arrangements
US20070030452A1 (en) * 2005-08-08 2007-02-08 N-Lighten Technologies Image adaptation system and method
JP4746945B2 (ja) * 2005-09-08 2011-08-10 株式会社リコー 解像度変換装置及び方法
JP2008021126A (ja) * 2006-07-13 2008-01-31 Neuro Solution Corp 画像拡大縮小装置
JP2010008439A (ja) * 2008-06-24 2010-01-14 Brother Ind Ltd デバイスドライバ

Also Published As

Publication number Publication date
US8379268B2 (en) 2013-02-19
US20100182623A1 (en) 2010-07-22
JP2010171622A (ja) 2010-08-05

Similar Documents

Publication Publication Date Title
JP2010278708A (ja) 画像処理装置及び方法、及びコンピュータプログラム
JP5202352B2 (ja) 画像拡大方法、画像拡大装置および画像形成装置
JPH07220061A (ja) 画像補間装置
JP2006222493A (ja) 複数の低解像度画像を用いた高解像度画像の生成
JP2007156547A (ja) 画像処理プログラムおよび画像処理装置
JP4612871B2 (ja) 画像処理装置および方法
JP2002232654A (ja) 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4807401B2 (ja) 画像処理装置、画像形成装置およびプログラム
JP2008160250A (ja) 画像処理装置および画像処理プログラム
JP2006203716A (ja) 複数の低解像度画像を用いた高解像度画像の生成
JP4020189B2 (ja) 画像処理回路
JP2006054576A (ja) 画像処理装置及び方法及びプログラム及び記憶媒体
JP2005252426A (ja) 画像データに対する画質調整制限情報を含む画像ファイルの生成
JP4746945B2 (ja) 解像度変換装置及び方法
JP3225884B2 (ja) 画像処理装置、画像処理方法、画像読取装置、複写機および記録媒体
JP2011024051A (ja) 画像処理装置および画像処理方法
JP3236481B2 (ja) 画像変換方法及び画像変換装置
JP2007311835A (ja) 画像処理装置およびその制御方法
JP5609341B2 (ja) 画像処理装置、画像形成装置、画像処理方法及び画像処理プログラム
JP6639120B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP5753370B2 (ja) 画像処理装置、方法およびプログラム
JP2006135825A (ja) 画像補間処理装置
JP5201058B2 (ja) 輪郭強調処理プログラム、輪郭強調処理方法及び輪郭強調処理装置
JP2019193097A (ja) 画像処理装置
CN114612295A (zh) 一种图像超分辨率处理方法和计算机设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121206

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: 20130115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130212

R151 Written notification of patent or utility model registration

Ref document number: 5202352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees