JP2015089115A - 画像の拡大縮小処理装置および画像の拡大縮小処理方法 - Google Patents

画像の拡大縮小処理装置および画像の拡大縮小処理方法 Download PDF

Info

Publication number
JP2015089115A
JP2015089115A JP2014178713A JP2014178713A JP2015089115A JP 2015089115 A JP2015089115 A JP 2015089115A JP 2014178713 A JP2014178713 A JP 2014178713A JP 2014178713 A JP2014178713 A JP 2014178713A JP 2015089115 A JP2015089115 A JP 2015089115A
Authority
JP
Japan
Prior art keywords
interpolation
coefficient
input
image
data
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.)
Granted
Application number
JP2014178713A
Other languages
English (en)
Other versions
JP6262621B2 (ja
Inventor
水野 雄介
Yusuke Mizuno
雄介 水野
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.)
MegaChips Corp
Original Assignee
MegaChips 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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2014178713A priority Critical patent/JP6262621B2/ja
Priority to US14/487,535 priority patent/US9286654B2/en
Publication of JP2015089115A publication Critical patent/JP2015089115A/ja
Application granted granted Critical
Publication of JP6262621B2 publication Critical patent/JP6262621B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

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

Abstract

【課題】割り算器や浮動小数点演算器を用いることなしに画像を任意の倍数で拡大縮小できる画像の拡大縮小処理装置を提供する。【解決手段】画像の拡大縮小処理で使用される補間係数を算出する係数演算回路と、入力画像データを構成する入力画素のそれぞれに対応するように係数演算回路から与えられる補間係数とを乗算する乗算器と、乗算器から出力される乗算済みデータの加算を繰り返し、入力画素の所定個数分について乗算済みデータの総和を取る加算器と、所定個数分の入力画素について乗算済みデータの総和が得られるタイミングで乗算済みデータの総和を出力するセレクタと、セレクタの出力をシフト演算することで、出力画像データのビット数を入力画像データのビット数に調整するシフト回路とを備え、係数演算回路で算出される補間係数は、その総和が、所定数の2の累乗と同じとなるように整数化されている。【選択図】図7

Description

本発明は画像の拡大縮小処理で使用される補間係数を算出する係数演算回路を有した画像の拡大縮小演算装置に関する。
一般的な画像の拡大縮小処理装置としては、例えば特許文献1に開示されるように、まず、原画像をU倍に拡大した後、1/D倍に縮小するという手順で、整数倍だけでなく有理数倍も含めたU/D倍任意拡大縮小処理を実現している。しかしながら、この方法では、原画像をU倍に拡大するための演算が必要であると共に、U倍に拡大した画像データを格納するためのメモリが必要となり、演算およびメモリが冗長性を含むこととなる。
一方、特許文献2には、原画像から中間画像(U倍画像)を求めずにいきなり最終画像(U/D倍画像)を求める技術が開示されており、冗長性が解消されているが、補間処理については従来的な手法を用いており、割り算器や浮動小数点演算器を用いる必要があると考えられる。
特開平10−63826号公報 特開2000−165664号公報
以上説明したように、従来の画像の拡大縮小処理においては、割り算器や浮動小数点演算器を用いる必要があり、装置構成が複雑になるという問題があった。
本発明は上記のような問題点を解消するためになされたもので、割り算器や浮動小数点演算器を用いることなしに画像を任意の倍数で拡大縮小できる画像の拡大縮小処理装置を提供することを目的とする。
本発明に係る画像の拡大縮小処理装置の第1の態様は、入力画像データに対して画素を補間することでU/D倍(U、Dは自然数)に変換して出力画像データとする画像の拡大縮小処理装置であって、前記画像の拡大縮小処理で使用される補間係数を算出する係数演算回路と、前記入力画像データを構成する入力画素のそれぞれに対応するように前記係数演算回路から与えられる前記補間係数とを乗算する乗算器と、前記乗算器から出力される乗算済みデータの加算を繰り返し、前記入力画素の所定個数分について前記乗算済みデータの総和を取る加算器と、前記所定個数分の前記入力画素について前記乗算済みデータの総和が得られるタイミングで前記乗算済みデータの総和を出力するセレクタと、前記セレクタの出力をシフト演算することで、前記出力画像データのビット数を前記入力画像データのビット数に調整するシフト回路とを備え、前記係数演算回路で算出される前記補間係数は、その総和が、所定数の2の累乗と同じとなるように整数化されている。
本発明に係る画像の拡大縮小処理装置の第2の態様は、前記係数演算回路が、前記入力画像データに対して補間される画素の内挿点の座標を算出する座標演算回路と、前記所定個数分の前記入力画素に対応する補間係数をそれぞれ出力する複数の係数演算回路とを有し、前記複数の係数演算回路のうちの1つは、前記所定数の2の累乗の値から他の係数演算回路で算出された前記補間係数の和を差し引くことで残り1つの補間係数を算出する。
本発明に係る画像の拡大縮小処理装置の第3の態様は、前記座標演算回路が、先に得られた内挿点の座標にD/Uを加算することで次の内挿点の座標を算出し、そのうち、最初の内挿点の座標は、予め定めた初期値にD/Uを加算することで座標を算出し、算出された内挿点の座標の小数部分を切り捨てる演算を行って、その演算結果を前記内挿点と前記所定個数分の前記入力画素のうちの1つの入力画素との基準距離とし、前記基準距離に基づいて、前記内挿点と前記所定個数分の前記入力画素の他の入力画素との距離を算出し、前記基準距離を含めて内挿点入力画素間距離として前記他の係数演算回路に与える。
本発明に係る画像の拡大縮小処理装置の第4の態様は、前記座標演算回路が、現在の内挿点の座標と次の内挿点の座標とを整数化し、両者の差分値により、前記入力画素を前記所定個数分単位の選択範囲を、所定画素数ずつずらす、あるいはずらさないことを規定するスキップ数を決定する。
本発明に係る画像の拡大縮小処理装置の第5の態様は、前記他の係数演算回路が、前記座標演算回路から与えられる前記内挿点入力画素間距離どうしの乗算および所定の係数の乗算とを行って、入力された前記内挿点入力画素間距離に対応した補間関数を演算すると共に、前記補間関数の演算結果を四捨五入することで、入力された前記内挿点入力画素間距離に対応した補間係数を算出する。
本発明に係る画像の拡大縮小処理方法は、入力画像データに対して画素を補間することでU/D倍(U、Dは自然数)に変換して出力画像データとする画像の拡大縮小処理方法であって、前記画像の拡大縮小処理で使用される補間係数を算出するステップ(a)と、前記入力画像データを構成する入力画素のそれぞれに対応するように、前記ステップ(a)で得られた前記補間係数を乗算するステップ(b)と、前記ステップ(b)で得られた乗算済みデータの加算を繰り返し、前記入力画素の所定個数分について前記乗算済みデータの総和を取るステップ(c)と、前記所定個数分の前記入力画素について前記乗算済みデータの総和が得られるタイミングで前記乗算済みデータの総和を出力するステップ(d)と、前記ステップ(d)で得られる前記乗算済みデータの総和をシフト演算することで、前記出力画像データのビット数を前記入力画像データのビット数に調整するステップ(e)とを備え、前記ステップ(a)で算出される前記補間係数は、その総和が、所定数の2の累乗と同じとなるように整数化されている。
本発明によれば、補間係数の総和が、所定数の2の累乗と同じとなるように整数化されているので、割り算器や浮動小数点演算器を用いることなしに画像を任意の倍数で拡大縮小処理を行うことができる。
U/D倍任意拡大縮小処理を模式的に示すブロック図である。 画像をU倍に拡大する場合の伝達関数を示す図である。 画像を1/D倍に縮小する場合の伝達関数を示す図である。 画像をU/D倍に拡大する場合の伝達関数を示す図である。 画像をU/D倍に縮小する場合の伝達関数を示す図である。 キュービックコンボリューションによる補間を説明する図である。 本発明に係る実施の形態の画像の拡大縮小処理装置の基本構成を示すブロック図である。 U/D倍する場合のPitchと初期値との関係を説明する図である。 U/D倍する場合のPitchと初期値との関係を説明する図である。 入力画像の画素データの選択範囲をスキップさせる動作を説明する図である。 入力画像の画素データの選択範囲をスキップさせる動作を説明する図である。 入力画像の画素データの選択範囲をスキップさせる動作を説明する図である。 入力画像の画素データの選択範囲をスキップさせる動作を説明する図である。 係数演算回路の構成を示すブロック図である。 座標演算回路の構成を示すブロック図である。 係数演算回路の構成を示すブロック図である。 係数演算回路の構成を示すブロック図である。 座標演算回路の変形例の構成を示すブロック図である。 座標演算回路の変形例の構成を示すブロック図である。 座標演算回路の変形例の構成を示すブロック図である。 プロセッサの構成を説明するブロック図である。
<始めに>
実施の形態の説明に先立って、本発明の前提となる画像の拡大縮小処理について説明する。
<伝達関数を用いた例>
まず、伝達関数を用いた画像の拡大縮小処理の例として、冗長性を排除したU/D倍任意拡大縮小処理の手順について説明する。
図1は、U/D倍任意拡大縮小処理を模式的に示すブロック図であり、入力画像データx(n)がアップサンプラUPに入力され、アップサンプリングされた画像データがローパスフィルタであるデジタルフィルタDFに与えられ、デジタルフィルタDFで帯域制限を受けた画像データd(n)がダウンサンプラDWに与えられ、ダウンサンプリングされた出力画像データy(n)が出力される構成となっている。
ここで、アップサンプラUPは、原画像信号の各信号間に画素U−1個分の0値を挿入する処理を行い、ダウンサンプラDWは、画像データからD画素ごとに残し、残りを間引く処理を行う。また、デジタルフィルタDFのインパルス応答はhUD(n)であり、図1の処理は畳み込み演算を示す以下の数式(1)で表される。
Figure 2015089115
ここで、画像をU倍に拡大する場合の理想的なフィルタのインパルス応答h(n)の伝達関数H(z)は、z軸(z=exp(jωT))上の表現で図2のように表され、また、1/D倍に縮小する場合の理想的なフィルタのインパルス応答h(n)の伝達関数H(z)は図3のように表される。なお。図2および図3において、横軸は正規化角周波数(ω)を表し、縦軸は振幅を表している。
これに対し、U/D倍に拡大する場合、すなわちU>Dの場合の理想的なフィルタのインパルス応答hUD(n)の伝達関数HUD(z)は図4のように表される。また、U/D倍に縮小する場合、すなわちU<Dの場合の理想的なフィルタのインパルス応答hUD(n)の伝達関数HUD(z)は図5のように表される。なお、図4および図5において、横軸は正規化角周波数(ω)を表し、縦軸は振幅を表している。
なお、図4と図2に示す画像をU倍に拡大する場合の伝達関数H(z)は同じであり、共に遮断角周波数はπ/Uであるので、U倍に拡大する場合のフィルタを、U/D倍に拡大する場合のフィルタとして使用可能である。また、図5の画像をU/D倍に縮小する場合の伝達関数HUD(z)の遮断角周波数はπ/Dになる。
このように、デジタルフィルタDFをインパルス応答hUD(n)のフィルタとすることで、画像の拡大用フィルタと縮小用フィルタの2つを備える必要がなくなり、演算量を削減することができる。また、一旦、U倍に拡大する必要がないので、U倍に拡大した画像データを格納するためのメモリも不要となる。
ここで、画像を任意の倍数で拡大縮小する場合、フィルタを適切に選ばないと画素周期Uで碁盤目状のひずみ(チェス盤ひずみ(checkerboard distortion))が発生する。
これに対しては、以下の数式(2)で表されるように、インパルス応答hUD(n)を画素U個ごとの区切りとみなして、それぞれの区切りの0番目の総和、1番目の総和〜U−1番目の総和が、それぞれ一定値になるような伝達関数を設定することでチェス盤ひずみを回避することができる。
Figure 2015089115
<補間関数を用いた例>
伝達関数を用いて、画像の拡大縮小を行う方法の他に、キュービックコンボリューションや線形補間、3次補間、ラグランジュ補間、スプライン補間、ランツォシュ補間などの補間関数を用いて画像データを内挿(補間)し、画像の拡大縮小を行う方法がある。
例えば、特開2001−189850号公報では、キュービックコンボリューションを用いた内挿の例が説明されている。以下、キュービックコンボリューションを用いた内挿について説明する。
Figure 2015089115
上記数式(3)はキュービックコンボリューションで用いる補間関数h(t)を表す数式である。
数式(3)において、aは補間関数の性質を制御するための変数(−0.5〜−2)であり、tは隣接する画素から内挿点までの距離を表す。
また、図6にはキュービックコンボリューションの内挿点の一例を示している。図6においては、直列に等間隔で並んだ4点の画素P、Pi+1、Pi+2およびPi+3がある場合に、画素Pi+1と画素Pi+2との間に内挿点Xが内挿される場合を示している。
そして、内挿点Xからの画素P、Pi+1、Pi+2およびPi+3までの距離をそれぞれt、ti+1、ti+2およびti+3とし、画素間の距離を1.0として示している。それぞれの画素に対する補間関数h(t)、h(ti+1)、h(ti+2)およびh(ti+3)は以下の数式(4)で表される。なお、距離t、ti+1i+2およびti+3は内挿点入力画素間距離と呼称する場合もある。
Figure 2015089115
上記数式(4)で表される補間関数h(t)、h(ti+1)、h(ti+2)およびh(ti+3)を画素P、Pi+1、Pi+2およびPi+3の座標にそれぞれ掛け合わせた総和が内挿点Xの位置となる。これを表す数式が、以下に示す数式(5)である。
Figure 2015089115
<実施の形態>
<拡大縮小処理装置の基本構成>
図7は本発明に係る実施の形態の画像の拡大縮小処理装置100の基本構成を示すブロック図である。なお、以下においては、拡大縮小処理装置100は、図1に示したU/D倍任意拡大縮小処理を行うものとして説明する。
図7に示されるように、画像の拡大縮小処理装置100は、DMA(Direct Memory Access)バス19を介して主記憶装置30に格納された入力画像データx(n)を直接に読み出すDMA読み取り装置(DMAR)5と、DMAバス19を介して主記憶装置30に出力画像データy(n)を直接に書き込むDMA書き込み装置(DMAW)6とをデータ入出力部として備えている。
DMAR5が読み出した1画素分の入力画像データx(n)は、セレクタ1を介してピンポンバッファ10に書き込まれる。ピンポンバッファ10は、セレクタ1の2つの出力と、セレクタ2の2つの入力との間に互いに並列に接続されたバッファ11およびバッファ12を有しており、バッファ11および12は書き込み用と読み取り用に順番に入れ替わるように制御される。なお、ピンポンバッファ10は、デュアルポートSRAMで構成することも可能である。デュアルポートSRAMは、データを入出力するためのポートを2つ有し、一方のポートからデータを読み出すのと同時に他方のポートからデータを書き込むことが可能であり、バッファ11および12を有する場合と同様の動作が可能である。
セレクタ1は、バッファ11および12のうち、書き込み可能な方のバッファを選択し、入力画像データx(n)を書き込む。セレクタ2は、バッファ11および12のうち、入力画像データx(n)が書き込み済みのバッファから画像データを読み出す。
従って、例えば、バッファ11に入力画像データx(n)が書き込まれているタイミングでは、バッファ12から、既に書き込まれた入力画像データx(n)が読み出されていることとなる。
なお、セレクタ1による書き込み可能なバッファの選択は制御装置7によりセレクタ1が制御されることで実行され、セレクタ2による書き込み済みのバッファの選択は制御装置7によりセレクタ2が制御されることで実行される。
セレクタ2を介してピンポンバッファ10から読み出された入力画像データx(n)は、乗算器8に入力され、また、デジタルフィルタDF(図1)のインパルス応答hUD(n)を補間係数として演算する係数演算回路20からは、セレクタ3を介して補間係数が出力され、乗算器8に入力される。
なお、係数演算回路20では、拡大、縮小の倍率にそれぞれ対応した補間係数、例えば、2倍、3倍、あるいは1/2倍、3/4倍などに対応した補間係数を制御装置7が係数演算回路20を制御して算出することができる。
乗算器8では、入力画像データx(n)と補間係数hUD(n)の乗算を行い、乗算済みデータが加算器9に与えられる。加算器9には、フリップフロップ13内に格納されている加算済みデータがセレクタ4を介して与えられ、加算器9で、乗算器8から与えられる乗算済みデータと加算される。
乗算済みデータが加算された加算済みデータは、フリップフロップ13に格納されることでフリップフロップ13のデータを更新する。なお、フリップフロップ13の初期値は0であり、1画素分の画像データに対して最初に加算器9で乗算済みデータに加算されるのは初期値0である。
加算器9での加算は数式(1)で表されるhUD(Dn−Uk)とx(k)の積の累積算である。なお、乗算器8と加算器9とをそれぞれ複数備えることで、演算の並列性が高まり処理速度を高速化することが可能である。
セレクタ4は、予め設定された選択範囲の画素数分の画像データに対して数式(1)の累積算が終了するまでは加算器3に対してフリップフロップ13に格納されたデータを与えるが、予め設定された選択範囲の画素数分の画像データに対する累積算が終了した後はフリップフロップ13に格納されたデータをシフト回路14に与え、フリップフロップ13が0に初期化される。なお、セレクタ4の選択動作は制御装置7により制御される。
シフト回路14は、シフトレジスタなどで構成され、セレクタ4より出力された累積演算結果のデータをシフト演算することで、出力画像データのビット数を入力画像データのビット数と一致させクリップ回路15に与える。なお、シフト回路14は、出力画像データのビット数は入力画像データのビット数と一致させる場合や演算精度を高くするために出力画像データのビット数が入力画像より大きい場合や演算精度を低くするために出力画像データのビット数が入力画像より小さい場合がある。
クリップ回路15は、シフト回路14より出力され、ビット数が調整された演算結果のデータを、予め設定される最小値と最大値の範囲にデータを切り取り、出力画像データy(n)を生成する。出力画像データy(n)はDMAW6からDMAバス19を介して、主記憶装置30に直接に書き込まれる。
<出力画像データの作成方法>
このようにして得られた出力画像データy(n)は、予め設定された画素数分の入力画像データに基づいて作成された1画素分の画像データであり、同じ処理を異なる選択範囲の予め設定された画素数分の画素に対して行い、次の出力画像データy(n)を得る。
これを、1画像の全ての画素に対して繰り返し実行することで、数式(1)に基づいて拡大あるいは縮小された画像が得られる。
図7に示す拡大縮小処理装置100においては、伝達関数からインパルス応答hUD(n)を算出し、補間係数を係数演算回路20で算出する構成を採っている。
ここで、図6に示される内挿点Xを出力y(0)とし、その座標を初期値bとし、出力y(j)の座標をbとすると、座標bと座標bの関係は以下の数式(6)の第1式のように表され、また、t、ti+1、ti+2およびti+3は、第2式〜第5式のように表される。
Figure 2015089115
なお、上記数式(6)の第3式のINT(b)は、座標bから小数点以下を切り捨てる演算を表し、また、座標bの値は前の座標bj−1の整数部より桁上がりした値で規定される。
また、上記数式(6)は、以下の数式(7)のように変形することができる。
Figure 2015089115
ここで、図8を用いて、U/D倍する場合のPitchと初期値bの関係を説明する。図8においては、入力画像の画素データがx(0)、x(1)、・・・x(D−2)およびx(D−1)のD個、出力画像の画素データがy(0)、y(1)、y(2)・・・y(U/2−1)、y(U/2)・・・y(U−3)、y(U−2)、y(U−1)のU個あるものとして示している。
入力画像の画素データ間の距離を1.0とし、出力画像の画素データ間の距離をPitchとすると、図8より以下の数式(8)を得ることができる。
Figure 2015089115
ここで、Pitch=D/Uとして数式(8)に代入すると、初期値bは以下の数式(9)で表すことができる。
Figure 2015089115
なお、図8では、入力される画像と出力される画像の中心を同じにする場合を示しており、この場合、U=3、D=2の場合(3/2倍)では、初期値はb=−1/6となる。
図8のように入力される画像と出力される画像の中心を同じにすると、出力画像の画素データy(0)およびy(U−1)が、入力画像の画素データx(0)〜x(D−1)の外側に位置することになる。出力画像の画素データy(0)およびy(U−1)が、それぞれ入力画像の画素データx(0)およびx(D−1)と同じ位置になるようにしたい場合は、初期値b=0とすることで図9のようにすることができる。この場合、Pitchは以下の数式(10)で表すことができる。
Figure 2015089115
また、図6に示したように、4点の画素に対して1つの内挿点を設定する場合を例に採ると、出力画像の画素データは、入力画像の画素データの選択範囲を所定方向にずらすことで得られる。以下、その動作を図10〜図13を用いて説明する。
図10においては、入力画像の画素データx(−1)、x(0)、x(1)およびx(2)に基づいて内挿点となる出力画像データy(0)を作成する(補間する)動作を模式的に表しており、画素データx(−1)、x(0)、x(1)およびx(2)に、それぞれ係数演算回路20で算出した補間係数を乗算することで出力画像の画素データy(0)を得る。
なお、画素データx(−1)は、画像で言うと左端の画素のない領域の画素データであり、画像を折り返して使用する対称拡張法により画素データが生成されている。
また、図11においては、入力画像の画素データx(−1)、x(0)、x(1)およびx(2)に基づいて内挿点となる出力画像の画素データy(1)を補間する動作を模式的に表しており、画素データx(−1)、x(0)、x(1)およびx(2)に、それぞれ係数演算回路20で算出した補間係数を乗算することで出力画像の画素データy(1)を得る。
また、図12においては、画素データの選択範囲を右に1画素分ずらし(スキップし)、入力画像の画素データx(0)、x(1)、x(2)およびx(3)に基づいて内挿点となる出力画像の画素データy(2)を補間する動作を模式的に表しており、画素データx(0)、x(1)、x(2)およびx(3)に、それぞれ係数演算回路20で算出した補間係数を乗算することで出力画像の画素データy(2)を得る。
また、図13においては、画素データの選択範囲を右に1画素分スキップし、入力画像の画素データx(1)、x(2)、x(3)およびx(4)に基づいて内挿点となる出力画像の画素データy(3)を補間する動作を模式的に表しており、画素データx(1)、x(2)、x(3)およびx(4)に、それぞれ係数演算回路20で算出した補間係数を乗算することで出力画像の画素データy(3)を得る。
なお、出力画像のy(4)の計算に際しては画素データの選択範囲はスキップせずに、補間係数を変えることで対応する。
このように、補間対象となる入力画像の画素データの選択範囲を、画像の左端から所定画素数ずつ右にスキップさせたり、あるいはスキップさせずに、係数演算回路20で算出した補間係数を乗算することで出力画像データを得る。
このような入力画像の画素データの選択範囲のスキップ数については、以下に示す数式(11)により決定することができる。
Figure 2015089115
上記数式(11)はフロア関数を表しており、隣り合う画素の座標をそれぞれフロア関数で表し、その差によりスキップ数が決定されることを表している。フロア関数は数値を整数化する関数であり、例えば「1.5」をフロア関数で処理すると「1」、「2.5」ならば「2」となる。
以上説明した方法により、予め設定された画素数分の入力画像データに基づいて出力画像データを得ることができる。
<補間係数の算出方法>
補間係数の算出には種々の方法が考えられるが、例えば、キュービックコンボリューションを用いた内挿法を説明する数式(4)を、整数の乗算と加減算とデータのシフトのみで実現できるように下記の数式(12)のように変形することができる。
Figure 2015089115
数式(12)においては、補間関数h(t)に2の累乗2(nは係数の精度を表し、正の整数)を乗算してround演算した値をh(t)’とし、補間関数h(ti+1)に2を乗算してround演算した値をh(ti+1)’とし、補間関数h(ti+2)に2を乗算してround演算した値をh(ti+2)’とし、2からh(t)’、h(ti+1)’およびh(ti+2)’を差し引いた値をh(ti+3)’としている。このため、上記数式(12)を図7に示した係数演算回路20に実装する場合、距離ti+3に対応する補間係数については減算により算出することができる。
図14は、係数演算回路20の構成を示すブロック図である。図14に示すように、係数演算回路20は、制御装置7に接続された座標演算回路201、座標演算回路201に接続された係数演算回路202、203および204、係数演算回路202〜204の出力を受ける係数演算回路205を有している。なお、係数演算回路202〜204の出力は、それぞれセレクタ3にも与えられる。
係数演算回路205は、係数演算回路202〜204の出力を加算する加算器2051と、精度設定部2050で設定された2から係数演算回路202〜204の出力の加算値を減算する減算器2052とを有し、減算器2052の出力がセレクタ3に与えられる構成となっている。なお、精度設定部2050では、補間係数の精度に合わせてnの値を設定する部位であり、補間係数の精度が10ビットであればn=10となり、210=1024となる。
係数演算回路20は、制御装置7からの制御信号により演算を開始し、座標演算回路201では、数式(7)に基づいて内挿点の座標bを算出する。
ここで、数式(12)を係数演算回路20に実装した場合の座標演算回路201の構成について図15を用いて説明する。図15に示すように、座標演算回路201は、制御装置7に接続される加算器2011、加算器2011の出力を受けるフリップフロップ2012、フリップフロップ2012の出力を分岐して出力するセレクタ2013を有している。セレクタ2013は、フリップフロップ2012の出力を小数演算回路2014、整数演算回路2015および加算器2011に与え、小数演算回路2014では、演算結果の小数部分を切り捨てる演算を行い、その結果をti+1として出力する。なお、この距離ti+1は、他の距離を算出するために用いられるので、便宜的に基準距離と呼称する場合もある。
また、小数演算回路2014の出力は加算器2018に与えられ、加算器2018において数値1.0との加算を行って、その結果をtとして出力する。
また、小数演算回路2014の出力は減算器2019に与えられ、減算器2019において数値1.0との減算を行って、その結果をti+2として出力する。
座標演算回路201では、制御装置7からPitchがD/Uとして与えられ、これに先に得られた内挿点の座標を加算することで新たな内挿点の座標を得るが、最初の座標の算出に際しては、初期値bがフリップフロップ2012に与えられ、D/Uと加算されて座標bとなる。
その後の内挿点の座標の算出に際しては、フリップフロップ2012に格納された現在の座標bとD/Uとの加算を加算器2011で行って次の座標bj+1を得る。
また、整数演算回路2015では、フリップフロップ2012の出力をフロア関数を用いて整数化する演算を行い、その結果を、加算器2011の出力をフロア関数を用いて整数化する整数演算回路2016での演算結果から減算器2017を用いて減算することで、スキップ数を算出し、制御装置7に与える。これは、数式(11)を用いて説明した演算に該当する。
内挿点の座標bが得られると、t、ti+1およびti+2が求まるので、係数演算回路202〜204では数式(4)から補間関数h(t)、h(ti+1)およびh(ti+2)を求め、数式(12)に基づいて、それぞれ補間係数h(t)’、h(ti+1)’およびh(ti+2)’を算出する。また、係数演算回路205では、2から補間係数h(t)’、h(ti+1)’およびh(ti+2)’を差し引いた値を補間係数h(ti+3)’として算出する。
これらの補間係数はセレクタ3を介して乗算器8に与えられ、入力画像の画素データに乗算される。
なお、上述したように、座標演算回路201では、数式(11)を用いて、入力画像の画素データの選択範囲をスキップさせるスキップ数も算出して制御装置7に与え、制御装置7では、当該スキップ数に基づいて、次の演算対象となる入力画像の画素データを決定する。
ここで、係数演算回路202〜204における補間係数の算出について図16および図17を用いて説明する。
図16は、補間係数h(t)’およびh(ti+3)’を算出する係数演算系統図であり、併せて係数演算回路202の構成を示す図である。
図16において、「t」は座標演算回路201から出力された距離tまたはti+3の値であり、簡単化のため「t」としている。なお、先に説明したように数式(12)を実装する場合は、距離ti+3の補間係数については座標演算回路205で算出するので、係数演算回路202では補間係数h(t)’を算出することになる。
図16に示すように、係数演算回路202は、座標演算回路201から出力されたtの値どうしを、乗算器ML1において乗算することでtを算出し、乗算器ML1が出力するtの値と座標演算回路201から出力されたtの値とを乗算器ML2において乗算することでtを算出する。
その後、t、tおよびtに対して、それぞれ乗算器ML3、ML4およびML5において、定数8a、−5aおよびaを乗算し、それぞれの演算結果と−4aとを加算器AD1で加算することで関数h(t)を得る。そして、当該関数h(t)の演算結果をround演算回路RD1で、例えば四捨五入することで補間係数h(t)’を得る。なお、この場合、補間係数h(t)’は補間係数h(t)’である。
図17は、補間係数h(ti+1)’およびh(ti+2)’を算出する係数演算系統図であり、併せて係数演算回路203および204の構成を示す図である。
図17において、「t」は座標演算回路201から出力されたti+1またはti+2の値であり、簡単化のため「t」としている。
図17に示すように、係数演算回路203(204も同じ)は、座標演算回路201から出力されたtの値どうしを、乗算器ML11において乗算することでtを算出し、乗算器ML11が出力するtの値と座標演算回路201から出力されたtの値とを乗算器ML12において乗算することでtを算出する。
その後、tおよびtに対して、それぞれ乗算器ML13およびML14において、定数a+2および−(a+3)乗算し、それぞれの演算結果と1とを加算器AD11で加算することで関数h(t)を得る。そして、当該関数h(t)の演算結果をround演算回路RD11で、例えば四捨五入することで補間係数h(t)’を得る。なお、この場合、補間係数h(t)’は補間係数h(ti+1)’またはh(ti+2)’である。
<変形例>
なお、上記の説明では、数式(12)に示されるように、h(t)’、h(ti+1)’およびh(ti+2)’を個々に求めた後、2からh(t)’、h(ti+1)’およびh(ti+2)’を差し引いた値をh(ti+3)’としていたが、これに限定されるものではない。
例えば、以下に示す数式(13)のように、h(ti+1)’、h(ti+2)’、h(ti+3)’を個々に求めた後、2からh(ti+1)’、h(ti+2)’、h(ti+3)’を差し引くことでh(t)’を求めても良い。
Figure 2015089115
ここで、数式(13)を係数演算回路20に実装した場合の座標演算回路201の構成について図18を用いて説明する。図18に示すように、座標演算回路201は、制御装置7に接続される加算器2011、加算器2011の出力を受けるフリップフロップ2012、フリップフロップ2012の出力を分岐して出力するセレクタ2013を有している。セレクタ2013は、フリップフロップ2012の出力を小数演算回路2014、整数演算回路2015および加算器2011に与え、小数演算回路2014では、演算結果の小数部分を切り捨てる演算を行い、その結果をti+1として出力する。
また、小数演算回路2014の出力は減算器2020に与えられ、減算器2020において数値1.0との減算を行って、その結果をti+2として出力する。
また、小数演算回路2014の出力は減算器2021に与えられ、減算器2021において数値2.0との減算を行って、その結果をti+3として出力する。
この場合、係数演算回路202〜204のそれぞれに、距離ti+1、ti+2、ti+3を与えることになるので、係数演算回路202および203では図17に示した係数演算を行う構成を採り、係数演算回路204では図16に示した係数演算を行う構成を採ることとなる。
なお、その他、図15に示した座標演算回路201と同一の構成については同一の符号を付し、重複する説明は省略する。
また、以下に示す数式(14)のように、h(t)’、h(ti+2)’、h(ti+3)’を個々に求めた後、2からh(t)’、h(ti+2)’、h(ti+3)’を差し引くことでh(ti+1)’を求めても良い。
Figure 2015089115
ここで、数式(14)を係数演算回路20に実装した場合の座標演算回路201の構成について図19を用いて説明する。図19に示すように、座標演算回路201は、制御装置7に接続される加算器2011、加算器2011の出力を受けるフリップフロップ2012、フリップフロップ2012の出力を分岐して出力するセレクタ2013を有している。セレクタ2013は、フリップフロップ2012の出力を小数演算回路2014、整数演算回路2015および加算器2011に与え、小数演算回路2014では、演算結果の小数部分を切り捨てる演算を行い、その結果をti+1として出力する。
また、小数演算回路2014の出力は加算器2022に与えられ、加算器2022において数値1.0との加算を行って、その結果をtとして出力する。
また、小数演算回路2014の出力は減算器2023に与えられ、減算器2023において数値1.0との減算を行って、その結果をti+2として出力する。
また、また、小数演算回路2014の出力は減算器2024に与えられ、減算器2024において数値2.0との減算を行って、その結果をti+3として出力する。
この場合、係数演算回路202〜204のそれぞれに、距離t、ti+2、ti+3を与えることになるので、係数演算回路202および204では図16に示した係数演算を行う構成を採り、係数演算回路203では図17に示した係数演算を行う構成を採ることとなる。
なお、その他、図15に示した座標演算回路201と同一の構成については同一の符号を付し、重複する説明は省略する。
また、以下に示す数式(15)のように、h(t)’、h(ti+1)’、h(ti+3)’を個々に求めた後、2からh(t)’、h(ti+1)’、h(ti+3)’を差し引くことでh(ti+2)’を求めても良い。
Figure 2015089115
ここで、数式(15)を係数演算回路20に実装した場合の座標演算回路201の構成について図20を用いて説明する。図20に示すように、座標演算回路201は、制御装置7に接続される加算器2011、加算器2011の出力を受けるフリップフロップ2012、フリップフロップ2012の出力を分岐して出力するセレクタ2013を有している。セレクタ2013は、フリップフロップ2012の出力を小数演算回路2014、整数演算回路2015および加算器2011に与え、小数演算回路2014では、演算結果の小数部分を切り捨てる演算を行い、その結果をti+1として出力する。
また、小数演算回路2014の出力は加算器2025に与えられ、加算器2025において数値1.0との加算を行って、その結果をtとして出力する。
また、小数演算回路2014の出力は減算器2026に与えられ、減算器2026において数値2.0との減算を行って、その結果をti+3として出力する。
この場合、係数演算回路202〜204のそれぞれに、距離t、ti+1、ti+3を与えることになるので、係数演算回路202および204では図16に示した係数演算を行う構成を採り、係数演算回路203では図17に示した係数演算を行う構成を採ることとなる。
なお、その他、図15に示した座標演算回路201と同一の構成については同一の符号を付し、重複する説明は省略する。
以上の説明では、画像を拡大する場合を例に採って説明したが、画像を縮小する場合も同様に本発明を適用できることは言うまでもない。
また、以上の説明では、水平方向についての画像の拡大縮小についてのみ述べたが、垂直方向についても本発明を適用することで画像の拡大縮小を行うことができることは言うまでもない。その場合、水平方向と垂直方向とで別々に発明を適用すれば良い。
<プロセッサでの実現>
以上の説明においては画像の拡大縮小処理をハードウェアを用いて実現する構成を示したが、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサ上で動作するソフトウェアにより実現することも可能である。
CPUは一般的に図21に示すような構成を有している。すなわち、命令をメモリから読み出す命令フェッチャ(Instruction fetcher)101、命令フェッチャ101が読み出した命令を処理する命令デコーダ(Instruction decoder)102、CPU内のメモリとして動作するレジスタ(Registers)103、レジスタ103に格納されたデータに基づいて四則演算や論理演算などの算術的な処理を行うALU(Arithmetic and Logic Unit)104および図示されない外部のメモリとの間でのデータの授受を行うメモリインターフェース105を有している。
このような構成を有するプロセッサ上で本発明に係る画像の拡大縮小処理を実現する場合には、入力画像データに対して画素を補間することでU/D倍(U、Dは自然数)に変換して出力画像データとするために、ALU104を使用して、予め拡大縮小処理で使用される補間係数を算出する係数演算を行い、算出した補間係数をレジスタ103または図示されないメモリに保存しておく。
そして、入力画像データを構成する入力画素のそれぞれに対応するように、レジスタ103または図示されないメモリに保存された補間係数を乗算するステップ、得られた乗算済みデータの加算を繰り返し、入力画素の所定個数分について乗算済みデータの総和を取るステップ、所定個数分の入力画素について乗算済みデータの総和が得られるタイミングで乗算済みデータの総和を出力するステップ、得られた乗算済みデータの総和をシフト演算することで、出力画像データのビット数を入力画像データのビット数に調整するステップをALU104で実行することで画像の拡大縮小処理を実現することができる。
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
4 セレクタ
8 乗算器
9 加算器
14 シフト回路
20 係数演算回路
201 座標演算回路
202〜205 係数演算回路

Claims (6)

  1. 入力画像データに対して画素を補間することでU/D倍(U、Dは自然数)に変換して出力画像データとする画像の拡大縮小処理装置であって、
    前記画像の拡大縮小処理で使用される補間係数を算出する係数演算回路と、
    前記入力画像データを構成する入力画素のそれぞれに対応するように前記係数演算回路から与えられる前記補間係数を乗算する乗算器と、
    前記乗算器から出力される乗算済みデータの加算を繰り返し、前記入力画素の所定個数分について前記乗算済みデータの総和を取る加算器と、
    前記所定個数分の前記入力画素について前記乗算済みデータの総和が得られるタイミングで前記乗算済みデータの総和を出力するセレクタと、
    前記セレクタの出力をシフト演算することで、前記出力画像データのビット数を前記入力画像データのビット数に調整するシフト回路と、を備え、
    前記係数演算回路で算出される前記補間係数は、その総和が、所定数の2の累乗と同じとなるように整数化されていることを特徴とする、画像の拡大縮小処理装置。
  2. 前記係数演算回路は、
    前記入力画像データに対して補間される画素の内挿点の座標を算出する座標演算回路と、
    前記所定個数分の前記入力画素に対応する補間係数をそれぞれ出力する複数の係数演算回路とを有し、
    前記複数の係数演算回路のうちの1つは、前記所定数の2の累乗の値から他の係数演算回路で算出された前記補間係数の和を差し引くことで残り1つの補間係数を算出する、請求項1記載の画像の拡大縮小処理装置。
  3. 前記座標演算回路は、
    先に得られた内挿点の座標にD/Uを加算することで次の内挿点の座標を算出し、そのうち、最初の内挿点の座標は、予め定めた初期値にD/Uを加算することで座標を算出し、
    算出された内挿点の座標の小数部分を切り捨てる演算を行って、その演算結果を前記内挿点と前記所定個数分の前記入力画素のうちの1つの入力画素との基準距離とし、前記基準距離に基づいて、前記内挿点と前記所定個数分の前記入力画素の他の入力画素との距離を算出し、前記基準距離を含めて内挿点入力画素間距離として前記他の係数演算回路に与える、請求項2記載の画像の拡大縮小処理装置。
  4. 前記座標演算回路は、
    現在の内挿点の座標と次の内挿点の座標とを整数化し、両者の差分値により、前記入力画素を前記所定個数分単位の選択範囲を、所定画素数ずつずらす、あるいはずらさないことを規定するスキップ数を決定する、請求項3記載の画像の拡大縮小処理装置。
  5. 前記他の係数演算回路は、
    前記座標演算回路から与えられる前記内挿点入力画素間距離どうしの乗算および所定の係数の乗算を行って、入力された前記内挿点入力画素間距離に対応した補間関数を演算すると共に、前記補間関数の演算結果を四捨五入することで、入力された前記内挿点入力画素間距離に対応した補間係数を算出する、請求項3記載の画像の拡大縮小処理装置。
  6. 入力画像データに対して画素を補間することでU/D倍(U、Dは自然数)に変換して出力画像データとする画像の拡大縮小処理方法であって、
    (a)前記画像の拡大縮小処理で使用される補間係数を算出するステップと、
    (b)前記入力画像データを構成する入力画素のそれぞれに対応するように、前記ステップ(a)で得られた前記補間係数を乗算するステップと、
    (c)前記ステップ(b)で得られた乗算済みデータの加算を繰り返し、前記入力画素の所定個数分について前記乗算済みデータの総和を取るステップと、
    (d)前記所定個数分の前記入力画素について前記乗算済みデータの総和が得られるタイミングで前記乗算済みデータの総和を出力するステップと、
    (e)前記ステップ(d)で得られる前記乗算済みデータの総和をシフト演算することで、前記出力画像データのビット数を前記入力画像データのビット数に調整するステップと、を備え、
    前記ステップ(a)で算出される前記補間係数は、その総和が、所定数の2の累乗と同じとなるように整数化されていることを特徴とする、画像の拡大縮小処理方法。
JP2014178713A 2013-09-25 2014-09-03 画像の拡大縮小処理装置および画像の拡大縮小処理方法 Active JP6262621B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014178713A JP6262621B2 (ja) 2013-09-25 2014-09-03 画像の拡大縮小処理装置および画像の拡大縮小処理方法
US14/487,535 US9286654B2 (en) 2013-09-25 2014-09-16 Image scaling processor and image scaling processing method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013198092 2013-09-25
JP2013198092 2013-09-25
JP2014178713A JP6262621B2 (ja) 2013-09-25 2014-09-03 画像の拡大縮小処理装置および画像の拡大縮小処理方法

Publications (2)

Publication Number Publication Date
JP2015089115A true JP2015089115A (ja) 2015-05-07
JP6262621B2 JP6262621B2 (ja) 2018-01-17

Family

ID=52691007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014178713A Active JP6262621B2 (ja) 2013-09-25 2014-09-03 画像の拡大縮小処理装置および画像の拡大縮小処理方法

Country Status (2)

Country Link
US (1) US9286654B2 (ja)
JP (1) JP6262621B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190063401A (ko) * 2017-11-29 2019-06-07 캐논 가부시끼가이샤 원격 화상 진단을 받는 것이 가능한 화상 형성 장치, 그 제어 방법, 및 그 제어 프로그램을 저장하는 저장 매체

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10133618A (ja) * 1996-10-29 1998-05-22 Sony Corp 画像信号処理装置
JPH11308574A (ja) * 1998-04-22 1999-11-05 Sony Corp 走査線数変換装置及び方法
JP2011009814A (ja) * 2009-06-23 2011-01-13 Mitsubishi Electric Corp 縮小画像生成装置
JP2015012415A (ja) * 2013-06-28 2015-01-19 株式会社メガチップス 係数テーブルの作成方法および画像の拡大縮小処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063826A (ja) 1996-08-22 1998-03-06 Mitsubishi Electric Corp 画像拡大縮小処理装置
JP2000165664A (ja) 1998-11-30 2000-06-16 Sony Corp 画像の解像度変換装置及び方法
WO2006134688A1 (ja) * 2005-06-16 2006-12-21 Neuro Solution Corp. 補間処理回路
US7971042B2 (en) * 2005-09-28 2011-06-28 Synopsys, Inc. Microprocessor system and method for instruction-initiated recording and execution of instruction sequences in a dynamically decoupleable extended instruction pipeline
WO2011086672A1 (ja) * 2010-01-13 2011-07-21 株式会社 東芝 動画像符号化装置および復号装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10133618A (ja) * 1996-10-29 1998-05-22 Sony Corp 画像信号処理装置
JPH11308574A (ja) * 1998-04-22 1999-11-05 Sony Corp 走査線数変換装置及び方法
JP2011009814A (ja) * 2009-06-23 2011-01-13 Mitsubishi Electric Corp 縮小画像生成装置
JP2015012415A (ja) * 2013-06-28 2015-01-19 株式会社メガチップス 係数テーブルの作成方法および画像の拡大縮小処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190063401A (ko) * 2017-11-29 2019-06-07 캐논 가부시끼가이샤 원격 화상 진단을 받는 것이 가능한 화상 형성 장치, 그 제어 방법, 및 그 제어 프로그램을 저장하는 저장 매체
KR102357562B1 (ko) 2017-11-29 2022-02-04 캐논 가부시끼가이샤 원격 화상 진단을 받는 것이 가능한 화상 형성 장치, 그 제어 방법, 및 그 제어 프로그램을 저장하는 저장 매체

Also Published As

Publication number Publication date
US20150086136A1 (en) 2015-03-26
US9286654B2 (en) 2016-03-15
JP6262621B2 (ja) 2018-01-17

Similar Documents

Publication Publication Date Title
JP6262455B2 (ja) 係数テーブルの作成方法および画像の拡大縮小処理装置
JP5914045B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US6915026B2 (en) Image processing method and apparatus
US6252576B1 (en) Hardware-efficient system for hybrid-bilinear image scaling
JP2015513837A (ja) パラレルスケーラ処理
JP4728744B2 (ja) 画像処理装置
JP6262621B2 (ja) 画像の拡大縮小処理装置および画像の拡大縮小処理方法
JP2670875B2 (ja) 適応前進差分および整数算術を用いてパラメトリツク関数を表示する装置および整数算術を用いて実現する方法
JP3869779B2 (ja) ディジタル映像処理装置及び方法
JP5643576B2 (ja) 画像処理装置およびその制御方法
AU2014380166B2 (en) A method for electronic zoom with sub-pixel offset
JPWO2007102244A1 (ja) 画像拡大縮小装置
Wang et al. Efficient implementation of a cubic-convolution based image scaling engine
KR20160091222A (ko) 영상 처리 장치 및 영상 처리 방법
Dilip et al. Bilinear interpolation image scaling processor for VLSI architecure
JP2018120536A (ja) データ補間装置及びその方法、画像処理装置
US6742008B2 (en) Accurate and cost effective linear interpolators
JP2010033406A (ja) 画像処理装置、画像機器、画像処理方法
JP2000187726A (ja) デ―タ補間方法および装置及び記憶媒体
Lin et al. A low-cost VLSI design of extended linear interpolation for real time digital image processing
JP5253305B2 (ja) 縮小画像生成装置
WO2013183096A1 (ja) 多段フィルタ処理装置及び方法
JP3323166B2 (ja) 補間演算装置
JP2010206301A (ja) 画像処理装置及び撮像装置
JP2005175913A (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170522

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171214

R150 Certificate of patent or registration of utility model

Ref document number: 6262621

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250