JP5554215B2 - 変換装置および変換方法 - Google Patents

変換装置および変換方法 Download PDF

Info

Publication number
JP5554215B2
JP5554215B2 JP2010269369A JP2010269369A JP5554215B2 JP 5554215 B2 JP5554215 B2 JP 5554215B2 JP 2010269369 A JP2010269369 A JP 2010269369A JP 2010269369 A JP2010269369 A JP 2010269369A JP 5554215 B2 JP5554215 B2 JP 5554215B2
Authority
JP
Japan
Prior art keywords
processing unit
image
data
resolution
processing
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
JP2010269369A
Other languages
English (en)
Other versions
JP2012120026A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010269369A priority Critical patent/JP5554215B2/ja
Publication of JP2012120026A publication Critical patent/JP2012120026A/ja
Application granted granted Critical
Publication of JP5554215B2 publication Critical patent/JP5554215B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は、画像の解像度を縮小する変換装置および変換方法に関する。
画像の解像度を変換(縮小)する変換装置は、最近傍法、バイキュービック法、面積平均法、アップサンプリングダウンサンプリング法など、画像の解像度を変換するためのアルゴリズムを用いて画像の解像度の変換を行っている。
アップサンプリングダウンサンプリング法を用いた解像度の変換に関する技術が例えば特許文献1に開示されている。また、面積平均法を用いた解像度の縮小に関する技術が例えば特許文献2に開示されている。
画像の解像度の縮小をラスタスキャンの順番に従って行う場合、縮小の範囲となる複数の画素のそれぞれを示す複数の画素データのそれぞれを格納するためのラインバッファが必要となる。なお、ラスタスキャンとは、画像を構成する複数の画素のそれぞれを行方向に左から右へスキャンし、その後、次の行の左から右へスキャンすることを繰り返して行う走査方式のことである。
ここで、ラスタスキャンの順番に従って画像の解像度を縮小する方法の一例について説明する。
図11は、ラスタスキャンの順番に従って画像の解像度を縮小する方法の一例を説明するための図であり、(a)は解像度を縮小する前の画像を示す図、(b)は解像度を縮小するための構成を説明するための図である。なお、図11では、画像の解像度を縮小するためのアルゴリズムとして面積平均法を用いて縮小率2:5の縮小を行う場合を一例として示している。
図11(a)に示す画像の解像度を縮小する場合、画像を構成する複数の画素のそれぞれを示す複数の画素データvtのそれぞれがラスタスキャンの順番に従ってクロックサイクル毎に1つずつ出力される。
そして、出力された画素データvtは、縮小率に応じた数の画素ライン単位でラインバッファに一旦格納される。なお、ラインバッファは複数用意されている。
変換装置は、複数のラインバッファのそれぞれに対して解像度を縮小するための処理を実行する。これにより、図11(b)に示すように、画像の解像度が縮小される。
特開2000−165664号公報 特開2007−311835号公報
上述したように、ラスタスキャンの順番に従って画像の解像度を縮小する場合には、複数のラインバッファが必要となる。また、複数のラインバッファのそれぞれは、縮小後の解像度にかかわらず、解像度を縮小する前の画像を構成する複数の画素データのそれぞれを複数の画素ライン単位で格納できる容量を有している必要がある。
ここで、相互に異なる複数の縮小率で画像の解像度を縮小したい場合、複数の縮小率毎にラインバッファを用意したり、複数の縮小率でラインバッファを兼用するための制御を行ったりする必要がある。
つまり、相互に異なる複数の縮小率で画像の解像度を縮小したい場合、画像の解像度を縮小する変換装置の回路規模が増大したり、変換装置に高性能の回路を用いたりしなければならないという問題点がある。
本発明は、回路規模の増大を回避しつつ、高性能の回路を用いなくても、相互に異なる複数の縮小率で画像の解像度を縮小することを可能にする変換装置および変換方法を提供することを目的とする。
上記目的を達成するために本発明の変換装置は、画像の解像度を縮小する変換装置であって、
前記画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って1つずつ受け付け、該受け付けた順番と行方向の縮小率とに応じて定まる係数を当該受け付けた画素データに乗じた第1の処理用データを生成し、該生成した第1の処理用データを加算していくことにより、前記画像の解像度を縮小した後の画像を構成する複数の画素のそれぞれの一部を示す複数の第1の処理済データのそれぞれを生成し、該生成した順番に従って1つずつ出力する水平処理部と、
前記水平処理部から出力された複数の第1の処理済データのそれぞれを1つずつ受け付け、該受け付けた順番と列方向の縮小率とに応じて定まる係数を当該受け付けた第1の処理済データに乗じた第2の処理用データを生成し、前記行方向の縮小率と前記画像の行方向の画素数とに基づいて前記生成した第2の処理用データを加算していくことにより、前記画像の解像度を縮小した後の画像を構成する複数の画素のそれぞれを示す複数の第2の処理済データを生成する垂直処理部と、を有する。
また、上記目的を達成するために本発明の変換方法は、画像の解像度を縮小する変換装置における変換方法であって、
前記画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って1つずつ受け付け、該受け付けた順番と行方向の縮小率とに応じて定まる係数を当該受け付けた画素データに乗じた第1の処理用データを生成する処理と、
前記生成した第1の処理用データを加算していくことにより、前記画像の解像度を縮小した後の画像を構成する複数の画素のそれぞれの一部を示す複数の第1の処理済データのそれぞれを生成する処理と、
前記複数の第1の処理済データのそれぞれが生成された順番と列方向の縮小率とに応じて定まる係数を当該第1の処理済データに乗じた第2の処理用データを生成する処理と、
前記行方向の縮小率と前記画像の行方向の画素数とに基づいて前記生成した第2の処理用データを加算していくことにより、前記画像の解像度を縮小した後の画像を構成する複数の画素のそれぞれを示す複数の第2の処理済データを生成する処理と、を有する。
本発明は以上説明したように構成されているので、画像の解像度を縮小する際に、解像度を縮小する前の画像を構成する複数の画素データのそれぞれを複数の画素ライン単位でラインバッファに格納する必要がない。
従って、回路規模の増大を回避しつつ、高性能の回路を用いなくても、相互に異なる複数の縮小率で画像の解像度を縮小することが可能となる。
面積平均法の原理を説明するための図であり、(a)は解像度を縮小する前の画像の一例を示す図、(b)は解像度を縮小した後の画像の一例を示す図である。 本発明の変換装置の実施の一形態の構成を示すブロック図である。 図2に示した水平処理部および垂直処理部に対して発行される命令コードの種類を説明するための図である。 図2に示した水平処理部および垂直処理部に対して発行される命令コードの種類毎にレジスタに格納される値の一例を示す図である。 図2に示した制御部がマイクロコード配列d[i]を生成する動作を説明するためのフローチャートである。 図2に示した変換装置において画像の解像度を縮小する動作を説明するためのフローチャートである。 図5に示したフローに従って縮小率を2:3として生成されたマイクロコード配列d[i]の一例を示す図である。 図5に示したフローに従って縮小率を3:5として生成されたマイクロコード配列d[i]の一例を示す図である。 本発明の変換装置の他の形態の構成を示すブロック図である。 図9に示した水平処理部および垂直処理部に対して発行される命令コードの種類を説明するための図である。 ラスタスキャンの順番に従って画像の解像度を縮小する方法の一例を説明するための図であり、(a)は解像度を縮小する前の画像を示す図、(b)は解像度を縮小するための構成を説明するための図である。
以下に、本発明の実施の形態について図面を参照して説明する。
本実施形態では、画像の解像度を縮小するためのアルゴリズムとして面積平均法を用いた場合について説明する。
まず、面積平均法の原理について説明する。
図1は、面積平均法の原理を説明するための図であり、(a)は解像度を縮小する前の画像の一例を示す図、(b)は解像度を縮小した後の画像の一例を示す図である。
図1では、行方向および列方向ともに5画素の画像を、行方向および列方向ともに2画素の画像に解像度を縮小する場合を一例として示している。つまり、縮小率をp:(pn+q)(但し、n,p,qは自然数、qはp−1以下の値)と表した場合、図1に示す例は、(2:5=2:(2×2+1))の場合であり、p=2、n=2、q=1の場合にあたる。
なお、pは1であってもよいが、pが2以上の自然数の場合について適用することに本発明の特徴がある。例えばp=2,q=1とすれば、2:(2n+1)となり、すなわち、2/3、2/5、2/7、 ・・・となる。
面積平均法を用いた場合、解像度を縮小した後の1つの画素を示す画素データw1を求める式は、解像度を縮小する前の画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをvtとすると、以下の式(1)にて表される。なお、Lは、解像度を縮小する前の画像の行方向の画素数である。
1=v1+v2+(1/2)v3+vL+1+vL+2+(1/2)vL+3+(1/2)(v2L+1+v2L+2)+(1/4)v2L+3・・・式(1)
上記の式(1)において係数に着目すると、係数が1のものは、v1,v2,vL+1,vL+2であり、係数が(1/2)のものは、v3,vL+3,v2L+1,v2L+2であり、係数が(1/4)のものは、v2L+3となっている。
また、図1(b)において画素データw1が示す画素に隣接する画素を示す画素データw2においても、画素データw1と同様に、v3,vL+3の係数は(1/2)であり、v2L+3の係数は(1/4)となる。
本実施形態では、複数の画素データvtのそれぞれに上述したような係数を乗じて、ラスタスキャンの順番を利用して加算していくことにより、解像度を縮小した後の画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれを生成していく。
図2は、本発明の変換装置の実施の一形態の構成を示すブロック図である。
本実施形態の変換装置10は図2に示すように、制御部11と、水平処理部12と、垂直処理部13とを備えている。
本実施形態では、まず、縮小率から、上述したp,q,nを決定し、さらに、解像度を縮小する前の画像の行方向の画素数Lを(pn+q)で割り切れる値となるように、画素の削除または付加を行っておく。
制御部11は、値を格納するレジスタrk,rs,A1,A2,B,C1,C2,D,E,F,k,sを備えている。なお、以降、レジスタA1に格納された値をA1と表記する。また、レジスタA1に格納された値が例えば1であるとき、A1=1と表記する。他のレジスタについても同様に表記する。制御部11は、(pn+q)と同じ数だけのマイクロコード配列d[i]を生成する。マイクロコード配列d[i]の添え字iは、((k−1)mod(pn+q)+1)、または、((s−1)mod(pn+q)+1)によって決定される。なお、k,sは1から始まり、1つずつインクリメントされていく。マイクロコード配列d[i]は、水平処理部12および垂直処理部13を制御するための命令コードを構成する。命令コードは、水平処理部12および垂直処理部13に対して発行される。マイクロコード配列d[i]の要素は、レジスタrk,rs,A1,A2,B,C1,C2,D,E,Fに格納される。水平処理部12に対して発行される命令コードの種類は、rk,A1,A2,B,Eによって決定され、垂直処理部13に対して発行される命令コードの種類は、rs,C1,C2,D,Fによって決定される。
水平処理部12は、1画素分の画素データの記憶容量をもつレジスタGを備えている。水平処理部12は、解像度を縮小する前の画像を構成する複数の画素のそれぞれを示す複数の画素データvtのそれぞれをラスタスキャンの順番に従ってクロックサイクル毎に1つずつ受け付ける。そして、水平処理部12は、当該クロックサイクルにおいて水平処理部12に対して発行されている命令コードの種類に応じた係数を、受け付けた画素データvtに乗じた第1の処理用データを生成する。そして、水平処理部12は、その命令コードの種類に応じた処理を実行する。この処理には、生成した第1の処理用データを加算していくことにより、解像度が縮小された画像を構成する複数の画素のそれぞれの一部を示す第1の処理済データutを生成して出力する処理が含まれる。なお、命令コードの種類と、水平処理部12が命令コードの種類に応じて実行する処理との詳細については後述する。
垂直処理部13は、解像度を縮小した後の画像の行方向の画素数、すなわちpL/(pn+q)ワードの記憶容量のシフトレジスタHを備えている。垂直処理部13は、水平処理部12から出力された第1の処理済データutを受け付ける。そして、垂直処理部13は、当該クロックサイクルにおいて垂直処理部13に対して発行されている命令コードの種類に応じた係数を、受け付けた第1の処理済データutに乗じた第2の処理用データを生成する。そして、垂直処理部13は、その命令コードの種類に応じた処理を実行する。この処理には、生成した第2の処理用データを加算していくことにより、解像度が縮小された画像を構成する複数の画素のそれぞれを示す第2の処理済データを生成して出力する処理が含まれる。なお、命令コードの種類と、垂直処理部13が命令コードの種類に応じて実行する処理の詳細については後述する。
レジスタIは、後続の処理に応じた容量をもつシフトレジスタ、または、FIFO(First In First Out)、または、フレームバッファメモリである。レジスタIは、EとFとの論理積(E×F)が1である場合に、垂直処理部13から出力された第2の処理済データを格納する。これにより、解像度が縮小された画像を構成する複数の画素のそれぞれを示す複数の画素データwtのそれぞれがラスタスキャンの順番に従ってレジスタIに格納されていくことになる。なお、レジスタIは、後続の処理が例えば閾値を用いた2値化であれば、1ワード分の容量のレジスタでよい。また、レジスタIは、後続の処理が例えば複雑な処理であれば、ランダムアクセスが可能なフレームバッファメモリとなる。つまり、レジスタIは、後続の処理に必要な読み出し方式に応じて決定すればよい。
ここで、図2に示した水平処理部12および垂直処理部13に対して発行される命令コードの種類と、水平処理部12および垂直処理部13が命令コードの種類に応じて行う処理について説明する。
図3は、図2に示した水平処理部12および垂直処理部13に対して発行される命令コードの種類を説明するための図である。また、図4は、図2に示した水平処理部12および垂直処理部13に対して発行される命令コードの種類毎にレジスタに格納される値の一例を示す図である。
命令コードの種類としては図3に示すように、op1,op2,op3の3つがある。なお、op3にだけパラメタrが設定されている。パラメタrは、rkまたはrsであり、rkとrsとはともにp以下の自然数である。
水平処理部12および垂直処理部13は、当該クロックサイクルにおいてそれぞれに対して発行されている命令コードの種類に応じて図3に示す処理を行う。
なお、命令コードの種類がop1である場合、水平処理部12は図3に示すように、受け付けた画素データvtをそのまま、第1の処理用データとしてレジスタGに格納する。この動作は、受け付けた画素データvtに1を乗じて第1の処理用データとしてレジスタGに格納することと同意である。これは、命令コードの種類がop1である場合の垂直処理部13の動作についても同様である。
また、図4に示すように、rk,rs,A1,A2,B,C1,C2,D,E,Fは、図3に示した命令コードの種類に応じて異なる。
垂直処理部13は、E=1のとき、すなわち水平処理部12に対して発行されている命令コードがop3(r)のクロックサイクルにおいてのみ、そのクロックサイクルにおいて垂直処理部13に対して発行されている命令コードの種類に応じた処理を行う。
なお、図4において「X」は任意の値であり、その値が水平処理部12および垂直処理部13の動作に何ら影響を与えないことを示している。以降の説明では、Xの値を0としておく。
以下に、上記のように構成された変換装置10の動作について説明する。
まず、図2に示した制御部11がマイクロコード配列d[i]を生成する動作について説明する。
図5は、図2に示した制御部11がマイクロコード配列d[i]を生成する動作を説明するためのフローチャートである。
まず、制御部11は、iを1に設定する(ステップS1)。
次に、制御部11は、iが1かどうかを判定する(ステップS2)。
ステップS2における判定の結果、iが1である場合、変数jを定義し、j=pとする。そして、制御部11は、命令コードop1を構成するマイクロコード配列d[i]を生成し、jを(j+p)に更新する(ステップS3)。
次に、制御部11は、iを1つインクリメントする(ステップS4)。
そして、制御部11は、iが(pn+q)よりも大きいかどうかを判定する(ステップS5)。
ステップS5における判定の結果、iが(pn+q)よりも大きな場合、処理を終了する。
一方、ステップS5における判定の結果、iが(pn+q)よりも大きくない場合には、ステップS2の動作へ遷移する。
ここで、ステップS2における判定の結果、iが1でない場合、制御部11は、jが(pn+q)よりも小さいかどうかを判定する(ステップS6)。
ステップS6における判定の結果、jが(pn+q)よりも小さな場合、制御部11は、命令コードop2を構成するマイクロコード配列d[i]を生成し、jを(j+p)に更新する(ステップS7)。そして、ステップS4の動作へ遷移する。
一方、ステップS6における判定の結果、jが(pn+q)よりも小さくない場合には、制御部11は、r=p−(j−(pn+q))によってrを算出し、命令コードop3(r)を構成するマイクロコード配列d[i]を生成し、jの値を(j−(pn+q)+p)に更新する(ステップS8)。そして、ステップS4の動作へ遷移する。
以上が、制御部11がマイクロコード配列d[i]を生成する動作である。
次に、図2に示した変換装置10において画像の解像度を縮小する動作について説明する。
図6は、図2に示した変換装置10において画像の解像度を縮小する動作を説明するためのフローチャートである。また、図7は、図5に示したフローに従って縮小率を2:3として生成されたマイクロコード配列d[i]の一例を示す図である。
以下に、図6および図7を参照しながら、縮小率2:3のとき、すなわちp=2,n=1,q=1のときの動作について説明する。
まず、解像度を縮小する前の画像の行方向の画素数Lをpn+qで割り切れる値となるように、画素の削除または付加を行っておく。ここでは(pn+q)は3なので、Lは3の倍数となる。
次に、制御部11は、レジスタrk,rs,A1,A2,B,C1,C2,D,E,F,k,sを初期化する(ステップS21)。これにより、rk=0、rs=0、A1=0、A2=0、B=0、C1=0、C2=0、D=0、E=0、F=0、k=1、s=1となる。すなわち、図7を参照すると、水平処理部12と垂直処理部13との両方に対して命令コードop1が発行されていることになる。
次に、水平処理部12は、時刻t=1のクロックサイクルにおいて、解像度を縮小する前の画像を構成する複数の画素を示す複数の画素データvtのうちの1つをラスタスキャンの順番に従って受け付ける(ステップS22)。ここでは、1行目の左端の画素を示す画素データv1を受け付ける。
次に、水平処理部12および垂直処理部13は、それぞれに対して発行されている命令コードの種類に応じた処理を実行する(ステップS23)。
ここでは、水平処理部12に対して命令コードop1が発行されている。従って、水平処理部12は、受け付けた画素データv1をそのまま、第1の処理用データとしてレジスタGに格納する。なお、水平処理部12に対して命令コードop1が発行されている場合、E=0である。そのため、垂直処理部13は、何の処理も実行しない。
次に、制御部11は、(k−1)>K(但し、K=L/(pn+q))が成立するかどうかを判定する(ステップS24)。
ステップS24における判定の結果、(k−1)>Kが成立する場合、制御部11は、kを1とし(ステップS25)、sを1つインクリメントする(ステップS26)。
一方、ステップS24における判定の結果、(k−1)>Kが成立しない場合には、制御部11は、kを1つインクリメントする(ステップS27)。
ここでは、(k−1)>Kが成立しない。従って、制御部11は、kを1つインクリメントする。これにより、kは2となり、sは1のままとなる。
次に、制御部11は、(k=2)に基づいてマイクロコード配列d[i]を読み出し、(d[(k−1)mod(pn+q)+1]=d[2])によってrk,A1,A2,B,Eを更新する(ステップS28)。
なお、sは更新されていないが、制御部11は、(s=1)に基づいてマイクロコード配列d[i]を読み出し、d[(s−1)mod(pn+q)+1]=d[1]によってrs,C1,C2,D,Fを更新する(ステップS29)。
以上の結果、rk=1、rs=0、A1=1、A2=1、B=0、C1=0、C2=0、D=0、E=1、F=0となり、図7を参照すると、水平処理部12に対して発行された命令コードはop1からop3(1)に変更され、垂直処理部13に対して発行された命令コードはop1のままとなる。
そして、ステップS22の動作へ遷移し、上述したステップS22〜S29の動作が繰り返される。具体的には、以下に説明するとおりである。
水平処理部12は、時刻t=2のクロックサイクルにおいて、ラスタスキャンの順番に従い、画素データv1が示す画像と行方向に隣接する画素を示す画素データv2の入力を受け付ける。
ここでは、水平処理部12に対して命令コードop3(1)が発行されている。従って、水平処理部12は、受け付けた画素データv2にrk/pを乗じた、すなわち、1/2を乗じた第1の処理用データ(1/2)v2を生成する。
そして、水平処理部12は、レジスタGに格納された第1の処理用データv1に、生成した第1の処理用データ(1/2)v2を加算した第1の処理済データut(v1+(1/2)v2)を生成して出力する。
また、水平処理部12は、レジスタGに格納されている第1の処理用データv1に代えて、受け付けた画素データv2に(p−rk)/pを乗じて、すなわち、1/2を乗じて第1の処理用データ((1/2)v2)としてレジスタGに格納する。
ここでは、E=1であり、また、垂直処理部13に対して命令コードop1が発行されている。従って、垂直処理部13は、水平処理部12から出力された第1の処理済データut(v1+(1/2)v2)をそのまま、第2の処理用データとしてシフトレジスタHの入力端に格納する。
次に、制御部11は、上述したステップS24の動作に従い、(k−1)>Kが成立するかどうかを判定する。
ここでは、(k−1)>Kが成立しない。従って、制御部11は、kを1つインクリメントする。これにより、kは3となり、sは1のままとなる。
次に、制御部11は、(k=3)に基づいてマイクロコード配列d[i]を読み出し、d[(k−1)mod(pn+q)+1]=d[3]によってrk,A1,A2,B,Eを更新する。
ここでも、sは更新されていないが、制御部11は、(s=1)に基づいてマイクロコード配列d[i]を読み出し、d[(s−1)mod(pn+q)+1]=d[1]によってrs,C1,C2,D,Fを更新する。
以上の結果、rk=2、rs=0、A1=1、A2=1、B=0、C1=0、C2=0、D=0、E=1、F=0となり、図7を参照すると、水平処理部12に対して発行された命令コードはop3(1)からop3(2)に変更され、垂直処理部13に対して発行された命令コードはop1のままとなる。
そして、ステップS22の動作へ遷移する。
水平処理部12は、時刻t=3のクロックサイクルにおいて、ラスタスキャンの順番に従い、画素データv2が示す画像と行方向に隣接する画素を示す画素データv3の入力を受け付ける。
ここでは、水平処理部12に対して命令コードop3(2)が発行されている。従って、水平処理部12は、受け付けた画素データv3にrk/pを乗じた、すなわち、2/2を乗じた第1の処理用データv3を生成する。
そして、水平処理部12は、レジスタGに格納されている第1の処理用データ(1/2)v2に、生成した第1の処理用データv3を加算した第1の処理済データut((1/2)v2+v3)を生成して出力する。
ここでは、E=1であり、また、垂直処理部13に対して命令コードop1が発行されている。従って、垂直処理部13は、シフトレジスタHに格納されている第2の処理用データを1ワード分、出力端側へシフトする。
そして、垂直処理部13は、水平処理部12から出力された第1の処理済データut((1/2)v2+v3)をそのまま、第2の処理用データとしてシフトレジスタHの入力端に格納する。これにより、シフトレジスタHには入力端側から順番に、((1/2)v2+v3)、(v1+(1/2)v2)が格納されることになる。
次に、制御部11は、上述したステップS24の動作に従い、(k−1)>Kが成立するかどうかを判定する。以降、解像度を縮小する前の画像の画素数が行方向および列方向ともに3画素の画像である場合、すなわち、L=3の場合について説明する。
この場合、K=1であるため、(k−1)>Kが成立する。従って、制御部11は、kを1とし、sを1つインクリメントする。これにより、kは1となり、sは2となる。
次に、制御部11は、(k=1)に基づいてマイクロコード配列d[i]を読み出し、d[(k−1)mod(pn+q)+1]=d[1]によってrk,A1,A2,B,Eを更新する。
また、制御部11は、(s=2)に基づいてマイクロコード配列d[i]を読み出し、d[(s−1)mod(pn+q)+1]=d[2]によってrs,C1,C2,D,Fを更新する。
以上の結果、rk=0、rs=1、A1=0、A2=0、B=0、C1=1、C2=1、D=0、E=0、F=1となり、図7を参照すると、水平処理部12に対して発行された命令コードはop3(2)からop1に変更され、垂直処理部13に対して発行された命令コードはop1からop3(1)に変更される。
なお、垂直処理部13に対して発行された命令コードop3(1)は、解像度を縮小する前の画像の2行目の画素データを処理する間、変更されない。従って、この間、Fは1のままとなる。
また、解像度を縮小する前の画像の2行目の複数の画素のそれぞれを示す複数の画素データのうち2番目に水平処理部12にて受け付けられる画素データを処理する際には、水平処理部12に対して発行される命令コードはop3(2)となり、E=1となる。つまり、EとFとの論理積が1となる。
従って、解像度を縮小する前の画像の2行目の複数の画素のそれぞれを示す複数の画素データのうち2番目に受け付けられる画素データを処理する際には、垂直処理部13は、受け付けた第1の処理済データut(vL+1+(1/2)vL+2)に1/2を乗じた第2の処理用データを生成する。
次に、垂直処理部13は、生成した第2の処理用データ(1/2)(vL+1+(1/2)vL+2)と、シフトレジスタHの出力端に格納されている第2の処理用データ(v1+(1/2)v2)とを加算した第2の処理済データを生成する。
そして、生成された第2の処理済データ(v1+(1/2)v2+(1/2)vL+1+(1/4)vL+2)が出力されてレジスタIに格納される。
この第2の処理済データ(v1+(1/2)v2+(1/2)vL+1+(1/4)vL+2)れが、行方向および列方向ともに3画素の画像を行方向および列方向ともに2画素の画像に解像度を縮小する場合、つまり、縮小率2:3のときの縮小後の画像を構成する複数の画素のうち1行目の左端の画素を示す画素データとなる。
なお、この段階では、解像度を縮小する前の画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれに乗じた係数の和は、1よりも大きい(2.25となっている)。縮小した画素データの絶対値の正規化については、必要に応じて別途行うものとする。
さらに、垂直処理部13は、垂直処理部13に対して発行されている命令コードop3(1)に従い、シフトレジスタHに格納されている第2の処理用データを1ワード分、出力端側へシフトする。
次に、垂直処理部13は、受け付けた第1の処理済データut((vL+1+(1/2)vL+2))に1/2を乗じて生成した第2の処理用データ(1/2)(vL+1+(1/2)vL+2)をシフトレジスタHの入力端に格納する。
そして、解像度を縮小する前の画像の3行目の複数の画像のそれぞれを示す複数の画素データのうち2番目に水平処理部12にて受け付けられる画素データを処理する際に、垂直処理部13は、シフトレジスタHに格納された第2の処理用データ((1/2)(vL+1+(1/2)vL+2))と、受け付けた第1の処理済データut(v2L+1+(1/2)v2L+2)を命令コードop3(2)に従って2/2を乗じて生成した第2の処理用データ(v2L+1+(1/2)v2L+2)とを加算した第2の処理済データを生成する。
そして、生成された第2の処理済データ((1/2)vL+1+(1/4)vL+2+v2L+1+(1/2)v2L+2)が出力されてレジスタIに格納される。
このとき、垂直処理部13は、命令コードop3(2)に従い、受け付けた第1の処理済データut(v2L+1+(1/2)v2L+2)に(0/2)を乗じた第2の処理用データを生成してシフトレジスタHの入力端に格納する。この場合、シフトレジスタHの入力端に格納された第2の処理用データは0となるが、解像度を縮小する前の画像の4行目の画素データを処理する間、垂直処理部13には命令コードop1が発行され、E=0となる。そのため、シフトレジスタHにどのような第2の処理用データが格納されていても、結果に影響はない。
上述したのと同様の動作を実行することにより、(2:3)以外の縮小率で画像の解像度を縮小することも可能である。
図8は、図5に示したフローに従って縮小率を3:5として生成されたマイクロコード配列d[i]の一例を示す図である。つまり、図8に示す例では、p=3,n=1,q=2となっている。
図8に示すようなマイクロコード配列d[i]によって構成される命令コードに従って水平処理部12および垂直処理部13が画素データを処理していくことにより、縮小率が3:5の場合にも、上述した2:3の場合と同様に画像の解像度を縮小することができる。
このように本実施形態において変換装置10は、解像度を縮小する前の画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って1つずつ受け付け、受け付けた順番と行方向の縮小率とに応じて定まる係数を当該受け付けた画素データに乗じた第1の処理用データを生成する。
そして、変換装置10は、生成した第1の処理用データを加算していくことにより、解像度を縮小した後の画像を構成する複数の画素のそれぞれの一部を示す複数の第1の処理済データのそれぞれを生成する。
また、変換装置10は、複数の第1の処理済データのそれぞれが生成された順番と列方向の縮小率とに応じて定まる係数を当該第1の処理済データに乗じた第2の処理用データを生成する。
そして、変換装置10は、行方向の縮小率と解像度を縮小する前の画像の行方向の画素数とに基づき、生成した第2の処理用データを加算していくことにより、解像度を縮小した後の画像を構成する複数の画素のそれぞれを示す複数の第2の処理済データを生成する。
これにより、画像の解像度を縮小する際に、解像度を縮小する前の画像を構成する複数の画素データのそれぞれを複数の画素ライン単位でラインバッファに格納する必要がない。
上述した実施形態においてレジスタの容量は、たかだか(pL/(pn+q)+数ワード、すなわち((p/(pn+q))<1)である。これは、解像度を縮小する前の画像の1行分の画素を示す画素データの格納に必要な容量よりも小さい規模である。この規模は、解像度をより縮小する(nを大きくする)とさらに小さくなる。
従って、回路規模の増大を回避しつつ、高性能の回路を用いなくても、相互に異なる複数の縮小率で画像の解像度を縮小することが可能となる。
また、水平処理部12および垂直処理部13の大部分はpによって構成を決定することができる。そのため、縮小率を分数で表した場合に、分母の値が同じとなる縮小率で画像の解像度を縮小するための複数の変換装置を設計する場合に、その設計負担を減らすことができる。
なお、水平処理部12および水平処理部12に発行される命令コードを構成するマイクロコード配列d[i]と、垂直処理部13および垂直処理部13に発行される命令コードを構成するマイクロコード配列d[i]とは別々に生成されている。そのため、行方向の縮小率と列方向の縮小率とを相互に独立して設定することも可能である。
また、垂直処理部13の後段に、平面処理部と上述したような制御部とを自己相似的に設ける構成にすれば、3次元の格子に対して解像度縮小を行うこともできる。これは、任意のN次元まで拡張することが可能である。
ここまでの説明では、水平処理部12および垂直処理部13おいて画素データvtに乗じる係数は、分母がpの有理数としていたことになるが、これをすべてp倍することにより、画素データvtに乗じる係数を正の整数として取り扱うこともできる。
図9は、本発明の変換装置の他の形態の構成を示すブロック図である。また、図10は、図9に示した水平処理部112および垂直処理部113に対して発行される命令コードの種類を説明するための図である。
図9に示す変換装置100を用いた場合、縮小した結果はp2倍されていることになるが、既知の定数倍であるので、後処理によって正規化する際に、定数で除算することによって期待する結果を得ることができる。
図9および図10に示した変換装置100を用いた場合、図2および図3に示した変換装置10を用いた場合に比べ、除算による桁落ちがその工程に局所化できる。そのため、変換装置100を用いれば、上述した効果に加えて、設計時に精度を見積りやすくなるという効果が期待できる。
10,100 変換装置
11 制御部
12,112 水平処理部
13,113 垂直処理部

Claims (8)

  1. 画像の解像度を縮小する変換装置であって、
    前記画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って1つずつ受け付け、該受け付けた順番と行方向の縮小率とに応じて定まる係数を当該受け付けた画素データに乗じた第1の処理用データを生成し、該生成した第1の処理用データを加算していくことにより、前記画像の解像度を縮小した後の画像を構成する複数の画素のそれぞれの一部を示す複数の第1の処理済データのそれぞれを生成し、該生成した順番に従って1つずつ出力する水平処理部と、
    前記水平処理部から出力された複数の第1の処理済データのそれぞれを1つずつ受け付け、該受け付けた順番と列方向の縮小率とに応じて定まる係数を当該受け付けた第1の処理済データに乗じた第2の処理用データを生成し、前記行方向の縮小率と前記画像の行方向の画素数とに基づいて前記生成した第2の処理用データを加算していくことにより、前記画像の解像度を縮小した後の画像を構成する複数の画素のそれぞれを示す複数の第2の処理済データを生成する垂直処理部と、を有し、
    前記行方向の縮小率と前記列方向の縮小率とはそれぞれ、p:(pn+q)(但し、n,p,qは自然数、qはp−1以下の値)で表されることを特徴とする変換装置。
  2. 請求項1に記載の変換装置において
    記係数は、1またはr/p(rはp以下の自然数)または(p−r)/pである変換装置。
  3. 請求項1に記載の変換装置において
    記係数は、pまたはr(rはp以下の自然数)または(p−r)である変換装置。
  4. 請求項1から3のいずれか1項に記載の変換装置において、
    マイクロコード配列を生成し、マイクロコード配列の要素によって定まる命令コードを前記水平処理部および前記垂直処理部に発行する制御部をさらに有し、
    前記水平処理部は、1画素の記憶容量をもつレジスタを備え、前記制御部により発行された命令コードに従って、前記第1の処理用データを生成して前記レジスタに格納し、前記第1の処理用データを加算していくことにより前記第1の処理済データを生成して出力する処理を行い、
    前記垂直処理部は、解像度を縮小する前の画像の行方向の画素数をLとしたとき、pL/(pn+q)ワードの記憶容量をもつシフトレジスタを備え、前記制御部により発行された命令コードに従って、前記第2の処理用データを生成して前記シフトレジスタに格納し、前記第2の処理用データを加算していくことにより前記第2の処理済データを生成する処理を行う変換装置。
  5. 画像の解像度を縮小する変換装置における変換方法であって、
    水平処理部が、前記画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って1つずつ受け付け、該受け付けた順番と行方向の縮小率とに応じて定まる係数を当該受け付けた画素データに乗じた第1の処理用データを生成する第1の処理用データ生成処理と、
    前記水平処理部が、前記生成した第1の処理用データを加算していくことにより、前記画像の解像度を縮小した後の画像を構成する複数の画素のそれぞれの一部を示す複数の第1の処理済データのそれぞれを生成する第1の処理済データ生成処理と、
    垂直処理部が、前記複数の第1の処理済データのそれぞれが生成された順番と列方向の縮小率とに応じて定まる係数を当該第1の処理済データに乗じた第2の処理用データを生成する第2の処理用データ生成処理と、
    前記垂直処理部が、前記行方向の縮小率と前記画像の行方向の画素数とに基づいて前記生成した第2の処理用データを加算していくことにより、前記画像の解像度を縮小した後の画像を構成する複数の画素のそれぞれを示す複数の第2の処理済データを生成する第2の処理済データ生成処理と、を有し、
    前記行方向の縮小率と前記列方向の縮小率とはそれぞれ、p:(pn+q)(但し、n,p,qは自然数、qはp−1以下の値)で表されることを特徴とする変換方法。
  6. 請求項に記載の変換方法において
    記係数は、1またはr/p(rはp以下の自然数)または(p−r)/pである変換方法。
  7. 請求項に記載の変換方法において
    記係数は、pまたはr(rはp以下の自然数)または(p−r)である変換方法。
  8. 請求項5から7のいずれか1項に記載の変換方法において、
    制御部が、マイクロコード配列を生成し、マイクロコード配列の要素によって定まる命令コードを前記水平処理部および前記垂直処理部に発行する処理をさらに有し、
    前記水平処理部は、1画素の記憶容量をもつレジスタを備え、前記発行された命令コードに従って、前記第1の処理用データ生成処理を行って前記第1の処理用データを前記レジスタに格納すると共に、前記第1の処理済データ生成処理を行い、
    前記垂直処理部は、解像度を縮小する前の画像の行方向の画素数をLとしたとき、pL/(pn+q)ワードの記憶容量をもつシフトレジスタを備え、前記発行された命令コードに従って、前記第2の処理用データ生成処理を行って前記第2の処理用データを前記シフトレジスタに格納すると共に、前記第2の処理済データ生成処理を行う変換方法。
JP2010269369A 2010-12-02 2010-12-02 変換装置および変換方法 Expired - Fee Related JP5554215B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010269369A JP5554215B2 (ja) 2010-12-02 2010-12-02 変換装置および変換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010269369A JP5554215B2 (ja) 2010-12-02 2010-12-02 変換装置および変換方法

Publications (2)

Publication Number Publication Date
JP2012120026A JP2012120026A (ja) 2012-06-21
JP5554215B2 true JP5554215B2 (ja) 2014-07-23

Family

ID=46502359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010269369A Expired - Fee Related JP5554215B2 (ja) 2010-12-02 2010-12-02 変換装置および変換方法

Country Status (1)

Country Link
JP (1) JP5554215B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10229491A (ja) * 1997-02-17 1998-08-25 Fuji Xerox Co Ltd 画素密度変換装置

Also Published As

Publication number Publication date
JP2012120026A (ja) 2012-06-21

Similar Documents

Publication Publication Date Title
JP5914045B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP4231620B2 (ja) 画像処理方法および装置
JP4728744B2 (ja) 画像処理装置
JP2013218654A (ja) 画像処理装置
JP5323252B2 (ja) 動画像符号化方法、復号化方法、符号化装置および復号化装置
JP2007096431A (ja) 任意の変換比率を有するデジタル・ビデオ・フォーマット下方変換装置及び方法
US8902474B2 (en) Image processing apparatus, control method of the same, and program
KR20020015794A (ko) 큐빅 컨벌루션 보간계수 생성방법
JP5554215B2 (ja) 変換装置および変換方法
JP6174903B2 (ja) 空間・階調超解像装置及びプログラム
JPH0495463A (ja) 画像処理方法及びその装置
US20070121126A1 (en) Image conversion apparatus and image conversion method
US20180218477A1 (en) Data interpolation device, method therefor, and image processing apparatus
JP2016115318A (ja) ぼやけ補正装置、超解像装置およびプログラム
JP2006238188A (ja) 補間フィルタおよび映像信号処理装置
JP2009146190A (ja) 画像処理装置
JP4057503B2 (ja) 解像度変換用フィルタ係数決定方法,画像解像度変換方法,画像解像度変換装置,映像再符号化方法,映像再符号化装置,解像度変換用フィルタ係数決定プログラム,画像解像度変換プログラム,映像再符号化プログラムおよびそれらのプログラムを記録した記録媒体
JP6059899B2 (ja) フレーム補間装置及びプログラム
JP6598365B2 (ja) 帯域合成装置、帯域分割装置、解像度変換装置、超解像装置およびプログラム
JP5462198B2 (ja) 変換装置および変換方法
JP5131083B2 (ja) 画像処理装置
KR20160057590A (ko) 공통 부분식 소거 방법 및 이를 이용한 필터
JPWO2018235168A1 (ja) 学習装置、超解像化装置、学習方法、超解像化方法およびプログラム
JP4434974B2 (ja) データ圧縮装置、データ圧縮方法、データ圧縮プログラム、データ伸張装置
JP6124009B2 (ja) 画像読取装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20130304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140313

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140528

R150 Certificate of patent or registration of utility model

Ref document number: 5554215

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees