画像処理装置、および画像処理装置の動作方法
【課題】データの転送量の増大によって生じる不具合を軽減させることが可能な技術を提供する。
【解決手段】画像処理装置1は、第1記憶手段および第2記憶手段と、入力画像を分割して得られるブロック画像を順次に取得し、当該ブロック画像を注目ブロック画像として第1記憶手段に記憶させるとともに、注目ブロック画像に含まれる領域のうち、入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして第2記憶手段に記憶させる記憶制御部110と、第1記憶手段に記憶されている注目ブロック画像の画像データと、第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、注目ブロック画像の大きさを変更するリサイズ処理を実現する演算部12とを備える。
【解決手段】画像処理装置1は、第1記憶手段および第2記憶手段と、入力画像を分割して得られるブロック画像を順次に取得し、当該ブロック画像を注目ブロック画像として第1記憶手段に記憶させるとともに、注目ブロック画像に含まれる領域のうち、入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして第2記憶手段に記憶させる記憶制御部110と、第1記憶手段に記憶されている注目ブロック画像の画像データと、第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、注目ブロック画像の大きさを変更するリサイズ処理を実現する演算部12とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理技術に関する。
【背景技術】
【0002】
一般に、撮像装置等によって取得された画像に対して、その大きさを拡大または縮小させる画像処理を施すことにより、画像の大きさを自由に変更(リサイズ)する技術が存在する(例えば、特許文献1)。
【0003】
このような画像の大きさを変更する処理(「リサイズ処理」とも称する)を、ブロック単位の画像を出力する画像処理回路の後段において行う場合は、ブロック単位の画像(ブロック画像)を一旦別のメモリに格納して、画像全体を構成した上で、メモリに格納された全体画像に対して、リサイズ処理が施されていた。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−283023号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、画像全体を一旦別のメモリに格納してリサイズ処理を行うと、メモリへの画像データの格納および当該メモリからの画像データの読み出しによって、データの転送量が増大するため、処理速度の低下および消費電力の増加等の不具合が発生することになる。
【0006】
そこで、本発明は、データの転送量の増大によって生じる不具合を軽減させることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る画像処理装置は、第1記憶手段および第2記憶手段と、入力画像を分割して得られるブロック画像を順次に取得し、当該ブロック画像を注目ブロック画像として前記第1記憶手段に記憶させるとともに、前記注目ブロック画像に含まれる領域のうち、前記入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして前記第2記憶手段に記憶させる記憶制御手段と、第1記憶手段に記憶されている注目ブロック画像の画像データと、前記第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、前記注目ブロック画像の大きさを変更するリサイズ処理を実現するリサイズ手段とを備える。
【0008】
また、本発明に係る画像処理装置の一態様では、前記リサイズ手段を複数備え、各リサイズ手段において、補間画素の間隔を変更して前記補間演算を行う。
【0009】
また、本発明に係る画像処理装置の一態様では、前記リサイズ処理後の画像を特定領域ごとに順次に出力する出力手段と、前記特定領域の画像において矩形領域に含まれる各画素の画素値の平均を1画素分の画素値とする縮小処理によって、縮小画像を生成する第1平均縮小手段とをさらに備える。
【0010】
また、本発明に係る画像処理装置の一態様では、前記矩形領域に含まれる画素の個数は、2のべき乗個である。
【0011】
また、本発明に係る画像処理装置の一態様では、前記第1平均縮小手段の後段に接続され、前記縮小画像において矩形領域に含まれる各画素の画素値の平均を1画素分の画素値とする縮小処理によって、前記縮小画像を縮小させる第2平均縮小手段をさらに備える。
【0012】
また、本発明に係る画像処理装置の動作方法は、入力画像を分割して得られるブロック画像を順次に取得する工程と、順次に取得される前記ブロック画像を注目ブロック画像として前記第1記憶手段に記憶させるとともに、前記注目ブロック画像に含まれる領域のうち、前記入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして前記第2記憶手段に記憶させる工程と、第1記憶手段に記憶されている注目ブロック画像の画像データと、前記第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、前記注目ブロック画像の大きさを変更するリサイズ処理を実現する工程とを備える。
【発明の効果】
【0013】
本発明によれば、画像データの転送によって生じる不具合を軽減させることが可能になる。
【図面の簡単な説明】
【0014】
【図1】本発明の第1実施形態に係る画像処理装置の構成の一部を示す概略図である。
【図2】リサイズ部に入力される入力画像と、リサイズ部によってリサイズ処理を受けたリサイズ画像とを示す図である。
【図3】リサイズ部へのブロック画像の入力順序を示す図である。
【図4】リサイズ部の詳細構成を示す図である。
【図5】リサイズ部に入力される入力ブロック画像を示す図である。
【図6】リサイズ部に入力される入力画像内のブロック画像を示す図である。
【図7】リサイズ部の動作に関するタイムチャートである。
【図8】リサイズ部に入力される入力画像内のブロック画像を示す図である。
【図9】リサイズ部に入力される入力画像内のブロック画像を示す図である。
【図10】ラインレジスタへの書込動作を説明するための図である。
【図11】リサイズ部の動作に関するタイムチャートである。
【図12】リサイズ処理の対象となる領域を示す図である。
【図13】リサイズ部の動作に関するタイムチャートである。
【図14】出力バッファへ記憶されるブロック画像を模式的に示す図である。
【図15】補間演算の概要を示す図である。
【図16】補間演算のフローチャートである。
【図17】入力画像上の水平方向における、各画素と、各リサイズ画素との位置関係を示す図である。
【図18】入力画像上の垂直方向における、各画素と、各リサイズ画素との位置関係を示す図である。
【図19】リサイズ部へのブロック画像の入力順序を示す図である。
【図20】リサイズ部の詳細構成を示す図である。
【図21】リサイズ部に入力される入力画像内のブロック画像を示す図である。
【図22】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図23】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図24】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図25】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図26】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図27】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図28】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図29】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図30】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図31】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図32】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図33】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図34】第3実施形態に係るリサイズ部の詳細構成を示す図である。
【図35】平均リサイザに入力される画像と平均リサイザから出力される画像とを示す図である。
【図36】平均リサイザの内部構成を示す図である。
【図37】リサイズ部の詳細構成を示す図である。
【図38】変形例に係るリサイズ部の構成を示す図である。
【図39】平均リサイザの内部構成の変形例を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の各実施形態について図面を参照して説明する。
【0016】
<1.第1実施形態>
[1−1.概要]
図1は、本発明の第1実施形態に係る画像処理装置1の構成の一部を示す概略図である。図2は、リサイズ部10Aに入力される前の画像(入力画像)と、リサイズ部10Aによってリサイズ処理を受けた画像(「出力画像」または「リサイズ画像」とも称する)DGとを示す図である。図3は、リサイズ部10Aへのブロック画像の入力順序を示す図である。なお、図3におけるX軸およびY軸は、入力画像IGの左上の画素を原点としたときの座標軸を表し、本実施形態では、入力画像IGに関して共通の座標系を用いるものとする。
【0017】
図1に示されるように、画像処理装置1は、入力された画像の大きさを変更して出力するリサイズ部10Aを備えている。
【0018】
リサイズ部10Aには、入力画像を複数の領域に分割して得られるブロック画像が、ブロック単位で順次に入力される。具体的には、図2に示されるように、入力画像IGは、例えば、8×8の画素を有する複数のブロックBKjに分割され、分割されたブロック単位で順次にリサイズ部10Aに入力される。
【0019】
ブロック画像の入力は、図3に示されるように、例えば、入力画像IGの左上に存在するブロック画像を始点ブロックSBとして+X方向に沿って順次に入力し、単位行の入力が終了した場合、+Y方向へと改行して次の行のブロック画像の入力を行う、いわゆるラスター順で行われる。
【0020】
リサイズ部10A(図1)は、入力されるブロック画像ごとにリサイズ処理を施して、リサイズ処理後の画像を、ブロック単位で出力する。なお、リサイズ部10Aに入力されるブロック画像(入力ブロック画像)と、リサイズ部10Aから出力されるブロック画像(出力ブロック画像)とは、一対一に対応してもよく、或いは、複数の入力ブロック画像から、1の出力ブロック画像が生成される態様であってもよい。
【0021】
なお、画像処理装置1は、例えば、撮像装置、パーソナルコンピュータ(PC)、携帯情報端末機等において実現される。
【0022】
[1−2.リサイズ部10Aの構成]
次に、リサイズ部10Aの構成について説明する。図4は、リサイズ部10Aの詳細構成を示す図である。図5は、リサイズ部10Aに入力される入力ブロック画像BGを示す図である。
【0023】
図1および図4に示されるように、リサイズ部10Aは、入力されたブロック画像のデータ処理を行う入力処理部11(11A)と、画像データにリサイズ処理を施す演算部(リサイズ手段)12と、リサイズ後の画像データの出力処理を行う出力処理部13とを備えている。
【0024】
入力処理部11は、記憶制御部110、第1入力バッファ111、第2入力バッファ112、第1カラムレジスタ113、第2カラムレジスタ114、第3カラムレジスタ115、ラインメモリ116、およびラインレジスタ117を備えている。
【0025】
第1入力バッファ111および第2入力バッファ112は、SRAMによって構成され、入力ブロック画像を保存可能な容量を有している。本実施形態の入力バッファ111,112は、例えば、16×16の画素を有する画像を保存可能な容量を有しているものとする。
【0026】
第1カラムレジスタ113、第2カラムレジスタ114および第3カラムレジスタ115は、入力ブロック画像を構成する縦一列分の画像データ(詳細には、縦一列分の各画素の画素データ(画素値))を保存可能な容量を有している。
【0027】
ラインメモリ116は、入力画像を構成する横一行分の画像データ(詳細には、横一行分の各画素の画素データ)を保存可能な容量を有している。
【0028】
ラインレジスタ117は、入力ブロック画像を構成する横一行分の各画素の画素データに加えて、さらに1画素の画素データを保存可能な容量を有している。例えば、入力ブロック画像の横の画素数が8である場合、ラインレジスタ117は、9画素分の画素データを保存可能な容量を有していることになる。
【0029】
記憶制御部110は、入力バッファ111,112、カラムレジスタ113,114,115、およびラインメモリ116に接続され、入力されたブロック画像の記憶先を選択的に制御する。
【0030】
具体的には、記憶制御部110は、入力ブロック画像を順次に取得し、当該入力ブロック画像を第1入力バッファ111または第2入力バッファ112に出力し、記憶させる機能を有している。
【0031】
また、記憶制御部110は、入力ブロック画像BGの右端の縦一列分の画像データ(図5における斜線ハッチング領域NRの画像データ)を第1カラムレジスタ113、第2カラムレジスタ114または第3カラムレジスタ115に出力し、記憶させる。また、記憶制御部110は、入力ブロック画像BGの最下部(下端)の横一行分の画像データ(図5における縦線ハッチング領域ERの画像データ)をラインメモリ116に出力し、記憶させる。
【0032】
このように、入力処理部11では、記憶制御部110の制御により、入力ブロック画像BGの画像データを各記憶部に格納させる記憶処理が行われる。なお、以下では、入力ブロック画像における縦一列分の画像データを「単位列データ」または「列データ」とも表現し、入力ブロック画像における横一行分の画像データを「単位行データ」または「行データ」とも表現する。なお、画像データの各記憶部への記憶に際して、記憶部内の未記憶領域が少ない場合、画像データは上書きして記憶されるものとする。
【0033】
演算部12は、座標制御部121、データ取得部122、および補間演算部123を備えている。演算部12は、リサイズ部10Aに入力されたブロック画像に基づいて、リサイズ後の画像(リサイズ画像)を構成する画素(「リサイズ画素」または「補間画素」とも称する)の画素データを算出する。
【0034】
座標制御部121は、入力画像の大きさと、リサイズ画像の大きさとに基づいて、入力画像における各リサイズ画素の座標を算出する。そして、座標制御部121は、各リサイズ画素の画素データの取得に用いる入力画像上の画素(「参照画素」とも称する)の座標を特定する。座標制御部121は、リサイズ画素の座標情報を補間演算部123およびデータ転送制御部131(後述)に出力するとともに、参照画素の座標情報をリサイズ画素ごとにデータ取得部122に出力する。
【0035】
データ取得部122は、座標制御部121から入力される参照画素の座標情報に基づいて、補間演算部123の演算動作に応じた適切なタイミングで各記憶部111〜115,117から参照画素の画素データを取得して、補間演算部123に出力する機能を有している。
【0036】
補間演算部123は、データ取得部122から入力される参照画素の画素データを用いた補間演算を行い、リサイズ画素の画素データを生成する機能を有している。なお、補間演算の詳細については、後述する。
【0037】
このように、演算部12は、リサイズ画素の画素データを算出するリサイズ処理を行い、算出された画素データを出力処理部13に出力する。
【0038】
出力処理部13は、データ転送制御部131、第1出力バッファ132、および第2出力バッファ133を備えている。
【0039】
第1出力バッファ132および第2出力バッファ133は、SRAMによって構成され、例えば入力バッファ111,112と同じ記憶容量を有している。
【0040】
データ転送制御部131は、演算部12から出力されたリサイズ画素の画素データの転送先を決定し、リサイズ画素の画素データを第1出力バッファ132または第2出力バッファ133に転送する機能を有している。また、データ転送制御部131は、第1出力バッファ132および第2出力バッファ133に対して出力指示信号を送信し、第1出力バッファ132または第2出力バッファ133に記憶された出力ブロック画像の出力制御を行う。
【0041】
[1−3.リサイズ部10Aの動作]
次に、リサイズ部10Aの動作について説明する。図6、図8、および図9は、リサイズ部10Aに入力される入力画像IG内のブロック画像を示す図である。図7は、リサイズ部10Aの動作に関するタイムチャートである。図10は、ラインレジスタ117への書込動作を説明するための図である。
【0042】
リサイズ部10Aでは、入力されたブロック画像の画像データを記憶する記憶処理と、入力されたブロック画像に対するリサイズ処理と、リサイズ処理後の画像を出力する出力処理とが実行される。以下では、リサイズ部10Aに、図6に示される入力画像IG中のブロック画像BG1が第1期間PT1(図7)に入力される場合を想定して説明する。
【0043】
まず、図7に示される第1期間PT1において、リサイズ部10Aにブロック画像(「注目ブロック画像」とも称する)BG1が入力されると、記憶制御部110の制御に基づいてデータの記憶処理が行われる。
【0044】
具体的には、記憶制御部110は、注目ブロック画像BG1の入力に応じて、当該注目ブロック画像BG1の画像データを第1入力バッファ111に記憶する書込動作1WAを実行させる。
【0045】
また、記憶制御部110は、注目ブロック画像BG1の入力に応じて、注目ブロック画像BG1の右端の単位列データ(図6における斜線ハッチング領域NR1の画像データ)を、第1カラムレジスタ113に記憶する書込動作1WBを実行させる。なお、図7において、第1カラムレジスタ113への書込動作1WBが不連続で行われるのは、ブロック画像BG1の入力が左上の画素から画素単位でラスター順に行われるためであり、保存対象となる画素データの入力が所定間隔ごとに行われるからである。
【0046】
また、記憶制御部110は、注目ブロック画像BG1の入力に応じて、注目ブロック画像BG1の最下部の単位行データ(図6における縦線ハッチング領域ER1の画像データ)を、ラインメモリ116に記憶する書込動作1WCを実行させる。
【0047】
このような一連の記憶処理は、ブロック画像が入力される度に実行される。
【0048】
具体的には、第1期間PT1の次の第2期間PT2において、ブロック画像BG2(図8参照)が入力されると、記憶制御部110は、ブロック画像BG2の画像データを第2入力バッファ112に記憶する書込動作2WAを実行させる。また、記憶制御部110は、ブロック画像BG2の入力に応じて、ブロック画像BG2の右端の単位列データを、第2カラムレジスタ114に記憶する書込動作2WBを実行させる。また、記憶制御部110は、ブロック画像BG2の入力に応じて、ブロック画像BG2の最下部の単位横データを、ラインメモリ116に記憶する書込動作2WCを実行させる。
【0049】
さらに、第2期間PT2の次の第3期間PT3において、ブロック画像BG3(図8参照)が入力されると、記憶制御部110は、ブロック画像BG3の画像データを第1入力バッファ112に記憶する書込動作3WAを実行させる。また、記憶制御部110は、ブロック画像BG3の入力に応じて、ブロック画像BG3の右端の単位列データを、第3カラムレジスタ115に記憶する書込動作3WBを実行させる。また、記憶制御部110は、ブロック画像BG3の入力に応じて、ブロック画像BG3の最下部の単位行データを、ラインメモリ116に記憶する書込動作3WCを実行させる。
【0050】
第3期間PT3の次の第4期間PT4において、ブロック画像BG4(図8参照)が入力されると、記憶制御部110は、ブロック画像BG4の画像データを第2入力バッファ112に記憶する書込動作4WAを実行させる。また、記憶制御部110は、ブロック画像BG4の入力に応じて、ブロック画像BG4の右端の単位列データを、第1カラムレジスタ113に記憶する書込動作4WBを実行させる。また、記憶制御部110は、ブロック画像BG4の入力に応じて、ブロック画像BG4の最下部の単位行データを、ラインメモリ116に記憶する書込動作4WCを実行させる。
【0051】
このように、記憶処理では、ブロック画像の入力に応じて、当該ブロック画像が第1入力バッファ111および第2入力バッファ112のいずれか一方に記憶されることになる。また、ブロック画像の入力に応じて、ブロック画像の右端の単位列データが、第1カラムレジスタ113、第2カラムレジスタ114、および第3カラムレジスタ115のいずれか1つに記憶されるとともに、ブロック画像の最下部の単位行データが、ラインメモリ116に記憶されることになる。
【0052】
なお、入力ブロック画像の右端の縦一列分の各画素によって構成される領域、および当該入力ブロック画像の最下部の横一行分の各画素によって構成される領域は、リサイズ部10Aに未だ入力されていない未入力のブロック画像に隣接する領域であるとも表現できる。詳細には、図9に示されるように、ブロック画像BG1が入力されたときに、未入力のブロック画像によって構成される領域ENは、砂地ハッチングによって表される領域となる。このため、入力ブロック画像BG1において、未入力のブロック画像に隣接する領域は、入力ブロック画像BG1の右端の縦一列分の各画素によって構成される領域NR1と、入力ブロック画像BG1の最下部の横一行分の各画素によって構成される領域ER1となる。また、入力ブロック画像を記憶する第1入力バッファ111および第2入力バッファ112を第1記憶手段と総称したとき、未入力のブロック画像に隣接する領域の画像データを記憶する各記憶部は、第2記憶手段とも総称できる。
【0053】
また、ラインメモリ116への書込動作1WC〜4WCの実行前には、書込動作1WC〜4WCにおいて上書き対象となる画像データが読み出され、ラインレジスタ117に格納される。上書き対象となる画像データ、すなわちラインレジスタ117に格納される画像データは、現在入力されている注目ブロック画像の上側に隣接するブロック画像の最下部の単位行データであり、「隣接ラインデータ」とも称される。
【0054】
隣接ラインデータのラインレジスタ117への書込動作1WD〜4WD(図7参照)は、ラインレジスタ117に既に記憶されている1画素分の画素データを残しつつ実行される。例えば、図10に示されるように、ラインレジスタ117には、+X方向に連続したN1番目からN9番目の9画素分のラインデータが記憶されているとする。このとき、+X方向に連続したN10番目からN17番目の8画素分の隣接ラインデータがラインメモリ116からラインレジスタ117に入力されると、ラインレジスタ117は、最後尾のレジスタに記憶されているN9番目の画素データを先頭のレジスタへと記憶する。そして、ラインレジスタ117は、当該N9番目の画素データに連続させるように、新たに入力されたN10番目からN17番目の隣接ラインデータを記憶する。このような書込動作1WD〜4WDが実行されることによって、ラインレジスタ117には、注目ブロック画像の上部において隣接する領域(隣接領域)の隣接ラインデータと、当該隣接領域の左隣の画素の画素データとが、+X方向に連続した状態で記憶されることになる。なお、ラインレジスタ117に記憶される隣接ラインデータと画素データとは、連続したデータであることから「連続ラインデータ」とも称される。
【0055】
次に、リサイズ処理について説明する。図11は、リサイズ部10Aの動作に関するタイムチャートである。図12は、リサイズ処理の対象となる領域を示す図である。
【0056】
第1期間PT1において、注目ブロック画像BG1の記憶処理が終了すると、第2期間PT2では、注目ブロック画像BG1に対するリサイズ処理が実行される。リサイズ処理の際には、データ取得部122によって、リサイズ処理に用いる参照画素の画素データが各記憶部から読み出される。
【0057】
例えば、注目ブロック画像BG1に関するリサイズ処理の際には、図11に示されるように、第2期間PT2において、第1入力バッファ111、第3カラムレジスタ115、およびラインレジスタ117それぞれから参照画素の画素データを読み出す読出動作1RE,1RF,1RGが実行される。
【0058】
第1入力バッファ111に関する読出動作1REでは、注目ブロック画像BG1を構成する画素の中から、参照画素の画素データが読み出されることになる。
【0059】
そして、第3カラムレジスタ115に関する読出動作1RFでは、ブロック画像BG0の右端の縦一列に含まれる画素の中から、参照画素の画素データが読み出されることになる。なお、図12に示されるように、第3カラムレジスタ115に記憶されている、ブロック画像BG0の右端の単位列データは、注目ブロック画像BG1に隣接する境界領域RKの画像データである。
【0060】
また、ラインレジスタ117に関する読出動作1RGでは、連続ラインデータを形成する画素の中から、参照画素の画素データが読み出されることになる。図12に示されるように、ラインレジスタ117に記憶されている連続ラインデータは、注目ブロック画像BG1の上部において隣接するブロック画像BG01の最下部の横一行分の領域RLの画像データ(隣接ラインデータ)と、ブロック画像BG01の左隣のブロック画像BG00における右下の画素PDの画素データとで構成される。
【0061】
ここで、上記各読出動作1RE,1RF,1RGによって、参照画素として読出可能な画素を総合すると、読出可能な画素によって構成される領域は、図12に示されるような、注目ブロック画像BG1を含んだ9×9画素の領域RSとなる。すなわち、注目ブロック画像BG1に対するリサイズ処理では、注目ブロック画像BG1を拡張した領域(「拡張領域」または「参照領域」とも称する)RSに含まれる画素の画素データを用いた補間演算が行われることになる。
【0062】
各入力ブロック画像に対するリサイズ処理においても、注目ブロック画像BG1に対するリサイズ処理と同様、入力ブロック画像を拡張した参照領域に含まれる画素の画素データを用いた補間演算が行われ、リサイズ画素の画素データが取得される。なお、リサイズ処理の際の処理対象となる参照領域は、入力処理部11によって行われる上記記憶処理によって設定されたものであるとも表現することができる。
【0063】
次に、出力処理について説明する。図13は、リサイズ部10Aの動作に関するタイムチャートである。図14は、出力バッファ132,133へ記憶されるブロック画像を模式的に示す図である。
【0064】
リサイズ画素の画素データは、順次、データ転送制御部131に出力される。そして、データ転送制御部131は、リサイズ画素の画素データを第1出力バッファ132または第2出力バッファ133に転送する。
【0065】
例えば、図13に示されるように、第2期間PT2において、注目ブロック画像BG1に関するリサイズ処理が終了すると、当該第2期間PT2において、第1出力バッファ132へのリサイズ画素の画素データの書込動作1WHが実行される。図14に示されるように、この書込動作1WHにより、注目ブロック画像BG1に対するリサイズ処理で生成されたブロック画像UG1が、第1出力バッファ132に記憶されることになる。
【0066】
データ転送制御部131による出力バッファ132,133へのデータ転送では、転送先の出力バッファにおいて、水平画素分のデータが記憶された時点で、転送先が切り替えられる。例えば、図14に示されるように、ブロック画像BG3に対するリサイズ処理で生成されたブロック画像UG3の一部を第1出力バッファ132に記憶させると、第1出力バッファ132において水平画素分のデータが揃う場合、ブロック画像UG3の残りの部分の画像データは、第2出力バッファ133に記憶される。このように転送先が切り替えられる場合は、図13に示されるように、第1出力バッファ132および第2出力バッファ133への書込動作3WHが交互に実行されることになる。
【0067】
また、データ転送制御部131は、水平画素分のデータが揃った出力バッファ132,133に対して、出力指示信号を送信する。これにより、出力指示信号を受けた、出力バッファ132,133からは、出力ブロック画像が読み出され、リサイズ部10Aの外部に出力されることになる。例えば、図14に示されるように、第1出力バッファ132にブロック画像UG3の一部が記憶されると、第1出力バッファ132では水平画素分のデータが揃うことになるので、データ転送制御部131は、第1出力バッファ132に対して、出力指示信号を送信する。出力指示信号を受けた第1出力バッファ132では、記憶されたデータの読出動作FR(図13)が実行され、当該データが出力ブロック画像TGとして外部に出力される。
【0068】
このように、出力処理部13において実行される出力処理では、リサイズ画像における特定領域としての出力ブロック画像が、順次に出力されることになる。
【0069】
[1−4.補間演算]
次に、演算部12において行われる補間演算について説明する。本実施形態では、補間手法として、バイリニア補間手法を採用して補間演算を行う場合を例示する。図15は、補間演算の概要を示す図であり、図16は、補間演算のフローチャートである。図17は、入力画像上の水平方向における、各画素GPと、各リサイズ画素BPとの位置関係を示す図である。図18は、入力画像上の垂直方向における、各画素GPと、各リサイズ画素BPとの位置関係を示す図である。
【0070】
図15に示されるように、本実施形態の補間演算では、リサイズ画素を囲む入力画像上の4つの画素が参照画素RP1〜RP4として特定される。4つの参照画素RP1〜RP4が特定されると、水平方向に並んだ参照画素の組ごとに(詳細には、参照画素RP1,RP2の組と参照画素RP3,RP4の組)、水平補間が行われ、2つの水平補間画素BH1,BH2が算出される。そして、2つの水平補間画素BH1,BH2を用いた垂直補間がさらに行われ、リサイズ画素(補間画素)BPの画素データが算出される。
【0071】
より詳細には、図16に示される各動作工程を経て、補間演算が実行される。
【0072】
まず、ステップSP11では、座標制御部121によって、入力画像の大きさと、リサイズ画像の大きさとに基づいて、入力画像における各リサイズ画素BPの座標が算出される。
【0073】
具体的には、ステップSP11では、水平方向の補間間隔(水平補間間隔)「Ph」と垂直方向の補間間隔(垂直補間間隔)「Pv」とが、下記の式(1)、(2)を用いてそれぞれ算出される。
【0074】
【数1】
【0075】
【数2】
【0076】
なお、式(1)における「GNh」は、入力画像の水平画素数を表し、「RNh」は、リサイズ画像の水平画素数を表している。また、式(2)における「GNv」は、入力画像の垂直画素数を表し、「RNv」は、リサイズ画像の垂直画素数を表している。
【0077】
そして、入力画像における各リサイズ画素BPの座標は、入力画像の左上の画素を原点として、補間間隔を累積加算することによって取得される。
【0078】
詳細には、入力画像上において、水平方向(X方向)における入力画像の各画素GPと、各リサイズ画素BPとの位置関係は、図17の様になるので、入力画像の左上の画素を原点とすると、+X方向にi番目(iは自然数)のリサイズ画素BPのX座標は、水平補間間隔「Ph」×iとなる。同様に、入力画像上において、垂直方向(Y方向)における入力画像の各画素GPと、各リサイズ画素BPとの位置関係は、図18の様になるので、入力画像の左上の画素を原点とすると、+Y方向にj番目(jは自然数)のリサイズ画素BPのY座標は、垂直補間間隔「Pv」×jとなる。
【0079】
すなわち、X方向にi番目、Y方向にj番目のリサイズ画素BPの座標は、(Ph×i,Pv×j)となる。
【0080】
次のステップSP12では、リサイズ画素BPの座標に基づいて、当該リサイズ画素の画素データを算出するために用いる参照画素RP1〜RP4の座標が特定される。(i,j)番目のリサイズ画素BPを中心として見た場合、当該リサイズ画素BPの左上の参照画素RP1の座標は、([Ph×i],[Pv×j])となる。ここで、[]は、ガウス記号であり、例えば、[z]は、実数zをこえない最大の整数を表している。
【0081】
同様に、(i,j)番目のリサイズ画素BPの右上の参照画素RP2の座標は、([Ph×i]+1,[Pv×j])、左下の参照画素RP3の座標は、([Ph×i],[Pv×j]+1)、右下の参照画素RP4の座標は、([Ph×i]+1,[Pv×j]+1)となる。
【0082】
ステップSP13では、補間演算に用いられる補間係数が算出される。具体的には、図17に示されるように、X方向i番目の画素BPの画素データを算出する際に用いる水平補間係数「αh(i)」、「βh(i)」はそれぞれ、式(3)、(4)を用いて算出される。また、図18に示されるように、Y方向j番目の画素BPの画素データを算出する際に用いる垂直補間係数「αv(j)」、「βv(j)」はそれぞれ、式(5)、(6)を用いて算出される。なお、式(3)〜(6)中の[]はガウス記号を表している。
【0083】
【数3】
【0084】
【数4】
【0085】
【数5】
【0086】
【数6】
【0087】
ステップSP14では、データ取得部122によって、参照画素RP1〜RP4の座標に基づいて各記憶部111〜116から参照画素RP1〜RP4の画素データが取得される。
【0088】
ステップSP15では、補間演算部123によって、参照画素RP1〜RP4の画素データおよび水平補間係数「αh(i)」、「βh(i)」に基づいて、バイリニア補間手法を用いた水平補間が行われ、2つの水平補間画素BH1,BH2が算出される。
【0089】
ステップSP16では、2つの水平補間画素BH1,BH2および垂直補間係数「αv(j)」、「βv(j)」に基づいて、バイリニア補間手法を用いた垂直補間が行われ、リサイズ画素BPの画素データが算出される。
【0090】
このように、本実施形態の補間演算では、図16に示される各動作工程を経て、リサイズ画素BPの画素データが算出される。
【0091】
以上のように、リサイズ部10は、第1記憶手段および第2記憶手段と、入力画像を分割して得られるブロック画像を順次に取得し、当該ブロック画像を注目ブロック画像として第1記憶手段に記憶させるとともに、注目ブロック画像に含まれる領域のうち、入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして第2記憶手段に記憶させる記憶制御部110と、第1記憶手段に記憶されている注目ブロック画像の画像データと、第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、注目ブロック画像の大きさを変更するリサイズ処理を実現する演算部12とを備える。
【0092】
このようなリサイズ部10を有する画像処理装置1によれば、ブロック画像に対して順次にリサイズ処理を施すことができるので、画像全体を一旦別の外部メモリに格納してリサイズ処理を行う必要がない。このため、画像全体を一旦別の外部メモリに格納してリサイズ処理を行う場合に比べて、画像データの転送量の増大による処理速度の低下および消費電力の増加等の不具合を解消することが可能になる。
【0093】
また、入力ブロック画像に対するリサイズ処理では、入力ブロック画像を拡張した領域に含まれる画素を、リサイズ処理に用いる参照画素として読み出すことができるので、各ブロック画像間の境界に存在する補間画素の画素データも精度良く算出することが可能になる。
【0094】
<2.第2実施形態>
次に、本発明の第2実施形態について説明する。上記第1実施形態のリサイズ部10Aには、ブロック画像がいわゆるラスター順に入力されていたが、第2実施形態に係るリサイズ部10には、ラスター順とは異なる順序でブロック画像が入力される。なお、リサイズ部10Bの構成において、第1実施形態に係るリサイズ部10Aの構成と共通する部分については同じ符号を付して説明を省略する。図19は、リサイズ部10Bへのブロック画像の入力順序を示す図である。
【0095】
[2−1.概要および構成]
第2実施形態のリサイズ部10Bには、図19において矢印で示される順序で、ブロック画像が入力される。この順序は、JPEG XR方式で画像符号化を行う画像符号化部へのブロック画像の入力順序と同様のものであり、「JPEG XR入力順序」とも称する。
【0096】
なお、第1実施形態におけるブロック画像の入力順序は、JPEG方式で画像符号化を行う画像符号化部へのブロック画像の入力順序と同様のものである。リサイズ部10A,10Bの前段に設けられる画像処理部は、画像符号化部への入力を想定してブロック画像を所定の順序で出力する。すなわち、リサイズ部10A,10Bと画像符号化部とは、前段に設けられる画像処理部に、並列に接続された構成をとることができる。
【0097】
次に、リサイズ部10Bの構成について説明する。図20は、リサイズ部10Bの詳細構成を示す図である。
【0098】
図20に示されるように、リサイズ部10Bは、入力処理部11B、演算部12、および出力処理部13を備えている。演算部12および出力処理部13は、第1実施形態に係る構成と同様であるため、ここでの説明は省略する。
【0099】
本実施形態のリサイズ部10Bには、JPEG XR入力順序でブロック画像が順次に入力されるため、入力処理部11Bの構成および当該入力処理部11Bによる記憶処理が、第1実施形態のものとは異なる。以下では、入力処理部11Bの構成、および記憶処理についてこの順序で説明する。
【0100】
入力処理部11B(図20)は、記憶制御部110、第1入力バッファ111、第2入力バッファ112、第1カラムレジスタ113、第2カラムレジスタ114、ラインメモリ116、第1ラインレジスタ151、第2ラインレジスタ152、画素レジスタ153、およびセレクタ群154を備えている。
【0101】
第1ラインレジスタ151および第2ラインレジスタ152は、入力ブロック画像を構成する横一行分の各画素の画素データに加えて、さらに1画素の画素データを保存可能な容量を有している。例えば、入力ブロック画像の横の画素数が8である場合、ラインレジスタ151,152は、9画素分の画素データを保存可能な容量を有していることになる。
【0102】
画素レジスタ153は、1画素分の画素データを保存可能な容量を有している。
【0103】
セレクタ群154は、複数のセレクタによって構成されている。各セレクタは、記憶制御部110からの制御信号に基づいて、出力するデータを切り替える。
【0104】
記憶制御部110は、第1入力バッファ111および第2入力バッファ112に接続され、入力されたブロック画像の記憶先を選択的に制御する。具体的には、記憶制御部110は、入力ブロック画像を第1入力バッファ111または第2入力バッファ112に出力し、記憶させる機能を有している。
【0105】
また、記憶制御部110は、セレクタ群154に含まれる各セレクタに対して、制御信号を送信し、各セレクタの出力を制御する。
【0106】
このような入力処理部11Bでは、記憶制御部110の制御により、入力ブロック画像の画像データを各記憶部に格納させる記憶処理が行われる。
【0107】
[2−2.リサイズ部10Bの動作]
次に、リサイズ部10Bの動作について説明する。図21は、リサイズ部10Bに入力される入力画像IG内のブロック画像BG11〜BG17を示す図である。図22〜図33は、第2実施形態に係るリサイズ部10Bの動作を説明するための図である。
【0108】
リサイズ部10Bで行われる記憶処理は、第1実施形態と同様、入力ブロック画像を拡張した参照領域を、リサイズ処理の処理対象とするために行われるが、記憶処理の処理内容が異なる。以下では、図21に示される入力画像IG中の8つのブロック画像BG11〜BG18が、順次に入力される場合を想定して、記憶処理およびリサイズ処理に関するリサイズ部10Bの動作について詳述する。
【0109】
まず、ブロック画像BG11が入力されると、ブロック画像BG11は、第1入力バッファ111に記憶される(図22参照)。
【0110】
次のブロック画像BG12が入力されると、当該ブロック画像BG12は、第2入力バッファ112に記憶されるとともに、第1入力バッファ111に記憶されているブロック画像BG11に対してリサイズ処理が施される(図23参照)。ブロック画像BG11に対するリサイズ処理は、第1入力バッファ111に記憶されているブロック画像BG11と、第1カラムレジスタ113に記憶されている単位列データと、ラインメモリ116に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG11に対するリサイズ処理の処理対象となる参照領域は、図23に示される砂地ハンチング領域となる。
【0111】
ブロック画像BG11に対するリサイズ処理が終了すると、第1入力バッファ111に記憶されたブロック画像BG11の右端の単位列データが、第1カラムレジスタ113に記憶され、ブロック画像BG11の最下部の単位行データが第1ラインレジスタ151に右詰めで記憶される。また、第1入力バッファ111に記憶されたブロック画像BG11の右下隅の画素の画素データが、第2ラインレジスタ152に左詰めで記憶される(図24参照)。
【0112】
次のブロック画像BG13が入力されると、当該ブロック画像BG13は、第1入力バッファ111に記憶されるとともに、第2入力バッファ112に記憶されているブロック画像BG12に対してリサイズ処理が施される(図25参照)。ブロック画像BG12に対するリサイズ処理は、第2入力バッファ112に記憶されているブロック画像BG12と、第1カラムレジスタ113に記憶されている単位列データと、ラインメモリ116に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG12に対するリサイズ処理の処理対象となる参照領域は、図25に示される砂地ハンチング領域となる。
【0113】
ブロック画像BG12に対するリサイズ処理が終了すると、第2入力バッファ112に記憶されたブロック画像BG12の右端の単位列データが、第1カラムレジスタ113に記憶され、ブロック画像BG12の最下部の単位行データが第2ラインレジスタ152に右詰めで記憶される。また、第2入力バッファ112に記憶されたブロック画像BG12の右下隅の画素の画素データが、画素レジスタ153に記憶される(図26参照)。
【0114】
次のブロック画像BG14が入力されると、当該ブロック画像BG14は、第2入力バッファ112に記憶されるとともに、第1入力バッファ111に記憶されているブロック画像BG13に対してリサイズ処理が施される(図27参照)。ブロック画像BG13に対するリサイズ処理は、第1入力バッファ111に記憶されているブロック画像BG13と、第2カラムレジスタ114に記憶されている単位列データと、第1ラインレジスタ151に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG13に対するリサイズ処理の処理対象となる参照領域は、図27に示される砂地ハンチング領域となる。
【0115】
ブロック画像BG13に対するリサイズ処理が終了すると、第1入力バッファ111に記憶されたブロック画像BG13の右端の単位列データが、第2カラムレジスタ114に記憶され、ブロック画像BG13の最下部の単位行データがラインメモリ116に記憶される(図28参照)。
【0116】
また、ブロック画像BG13に対するリサイズ処理が終了したタイミングで、画素レジスタ153に記憶されているブロック画像BG12の右下隅の画素の画素データが、第1ラインレジスタ151に左詰めで記憶される(図28参照)。
【0117】
次のブロック画像BG15が入力されると、当該ブロック画像BG15は、第1入力バッファ111に記憶されるとともに、第2入力バッファ112に記憶されているブロック画像BG14に対してリサイズ処理が施される(図29参照)。ブロック画像BG14に対するリサイズ処理は、第2入力バッファ112に記憶されているブロック画像BG14と、第2カラムレジスタ114に記憶されている単位列データと、第2ラインレジスタ152に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG14に対するリサイズ処理の処理対象となる参照領域は、図29に示される砂地ハンチング領域となる。
【0118】
ブロック画像BG14に対するリサイズ処理が終了すると、第2入力バッファ112に記憶されたブロック画像BG14の右端の単位列データが、第2カラムレジスタ114に記憶される。また、第2入力バッファ112に記憶されたブロック画像BG14の最下部の単位行データのうち、右端の画素データを除いたデータが、ラインメモリ116に記憶される。また、第2入力バッファ112に記憶されたブロック画像BG14の右下隅の画素の画素データが、画素レジスタ153に記憶される(図30参照)。
【0119】
次のブロック画像BG16が入力されると、当該ブロック画像BG16は、第2入力バッファ112に記憶されるとともに、第1入力バッファ111に記憶されているブロック画像BG15に対してリサイズ処理が施される(図31参照)。ブロック画像BG15に対するリサイズ処理は、第1入力バッファ111に記憶されているブロック画像BG15と、第1カラムレジスタ113に記憶されている単位列データと、ラインメモリ116に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG15に対するリサイズ処理の処理対象となる参照領域は、図31に示される砂地ハンチング領域となる。
【0120】
ブロック画像BG15に対するリサイズ処理が終了すると、第1入力バッファ111に記憶されたブロック画像BG15の右端の単位列データが、第1カラムレジスタ113に記憶され、ブロック画像BG15の最下部の単位行データが第1ラインレジスタ151に右詰めで記憶される。また、第1入力バッファ111に記憶されたブロック画像BG15の右下隅の画素の画素データが、第2ラインレジスタ152に左詰めで記憶される(図32参照)。
【0121】
また、ブロック画像BG15に対するリサイズ処理が終了したタイミングで、画素レジスタ153に記憶されているブロック画像BG14の右下隅の画素の画素データが、ラインメモリ116に記憶される(図32参照)。
【0122】
次のブロック画像BG17が入力されると、当該ブロック画像BG17は、第1入力バッファ111に記憶されるとともに、第2入力バッファ112に記憶されているブロック画像BG16に対してリサイズ処理が施される(図33参照)。ブロック画像BG16に対するリサイズ処理は、第2入力バッファ112に記憶されているブロック画像BG16と、第1カラムレジスタ113に記憶されている単位列データと、ラインメモリ116に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG16に対するリサイズ処理の処理対象となる参照領域は、図33に示される砂地ハンチング領域となる。
【0123】
図33に示される、ブロック画像BG17が入力された際の動作は、ブロック画像BG13が入力された際の上記動作(図25)と同様であり、図33に示される動作以降は、図26から図33の各動作が繰り返し実行されることになる。
【0124】
以上のようなリサイズ部10Bによれば、JPEG XR入力順序でブロック画像が入力された場合でも、リサイズ処理の際に、入力ブロック画像を拡張した参照領域に含まれる画素を、リサイズ処理に用いる参照画素として読み出すことができる。このため、各ブロック画像間の境界に存在する補間画素の画素データも精度良く算出することが可能になる。
【0125】
<3.第3実施形態>
次に、本発明の第3実施形態について説明する。第3実施形態に係るリサイズ部10Cは、出力処理部13の後段に、平均リサイザをさらに備えている。なお、リサイズ部10Cの構成において、第1実施形態に係るリサイズ部10Aの構成と共通する部分については同じ符号を付して説明を省略する。図34は、リサイズ部10Cの詳細構成を示す図である。図35は、平均リサイザ14に入力される画像NPと平均リサイザ14から出力される画像DPとを示す図である。図36は、平均リサイザ14の内部構成を示す図である。図37は、リサイズ部10Dの詳細構成を示す図である。
【0126】
図34に示されるように、第3実施形態のリサイズ部10Cは、出力処理部13の後段に、平均リサイザ(平均縮小手段)14をさらに備えている。
【0127】
平均リサイザ14は、複数の画素で構成される矩形の画素領域に含まれる各画素の画素データの平均を、1画素分の画素データとする平均リサイズ処理(平均縮小処理)により、縮小画像を生成する機能を有している。
【0128】
具体的には、平均リサイザ14が、2×2の画素で構成される画素領域に含まれる各画素の画素データの平均を、1画素分の画素データとする平均リサイズ処理を実行可能な場合、当該平均リサイザ14は、入力された画像を1/2に縮小して出力する。例えば、図35に示されるような、6×16画素のブロック画像NPが入力された場合、平均リサイザ14は、ブロック画像NPに対して、2×2画素の画素領域GRごとに平均リサイズ処理を施し、3×8画素のブロック画像DPを出力する。すなわち、入力されたブロック画像NPにおける2×2画素の画素領域GR1からは、ブロック画像DPの画素PX1の画素データが算出され、ブロック画像NPにおける画素領域GR2からは、ブロック画像DPの画素PX2の画素データが算出されることになる。
【0129】
このような平均リサイザ14は、例えば、図36のような構成を有している。
【0130】
図36に示されるように、平均リサイザ14は、4つのレジスタ141A〜141Dと、第1セレクタ142と、ラインメモリ143と、画素遅延メモリ144と、第2セレクタ145と、加算器146と、シフト処理部147と、第3セレクタ148とを備えている。
【0131】
当該平均リサイザ14には、出力処理部13から出力されたブロック画像NPが、画素ごとにラスター順で入力される。平均リサイザ14に入力された画素データは、2つのレジスタ141A,141Bに順に格納された後、第1セレクタ142に入力される。
【0132】
第1セレクタ142は、第1セレクタ142に入力される画素データの転送先を決定し、当該画素データをラインメモリ143または画素遅延メモリ144に転送する。具体的には、第1セレクタ142は、通常、第1セレクタ142に入力された画素データを画素遅延メモリ144に出力する。また、第1セレクタ142に入力された画素データが、ブロック画像NPにおいて奇数ラインの画素データであって、かつブロック画像NPにおける最下部ラインの画素データであった場合、第1セレクタ142は、例外的に画素データをラインメモリ143に出力する。
【0133】
ここで、ラインメモリ116は、平均リサイザ14に入力されることになる全体画像の水平画素数を「M」とすると、M−2個分の画素の画素データを記憶可能な容量を有している。また、画素遅延メモリ144は、ブロック画像NPの水平画素数を「N」とすると、N−2個分の画素の画素データを記憶可能な容量を有している。
【0134】
したがって、第1セレクタ142の上記動作により、画素遅延メモリ144には、N−2個の画素データが記憶されることになり、ラインメモリ143には、M−2個の画素データが記憶されることになる。
【0135】
第2セレクタ145は、ラインメモリ143および画素遅延メモリ144のうち、いずれか一方から画素データを取得して、レジスタ141Cに出力する。第2セレクタ145は、上記全体画像において、レジスタ141Aに入力される画素の直上の画素の画素データをラインメモリ143または画素遅延メモリ144から取得して、レジスタ141Cに出力する。
【0136】
平均リサイザ14では、レジスタ141A〜141D、ラインメモリ143、および画素遅延メモリ144への画素データの格納が、平均リサイザ14への画素データの入力に同期して行われる。このため、レジスタ141Cの画素データがレジスタ141Dに格納されたとき、4つのレジスタ141A〜141Dには、2×2の画素領域に含まれる全画素の画素データが揃うことになる。
【0137】
加算器146は、各レジスタ141A〜141Dから出力された画素データを加算して、シフト処理部147に出力する。
【0138】
シフト処理部147は、加算された画素データ(加算画素データ)に対して、2ビットのシフト処理を行うことにより、4つの画素データを平均した平均画素データを算出する。
【0139】
第3セレクタ148は、シフト処理部147から入力される平均画素データを、2×2の画素領域ごとに出力する。すなわち、第3セレクタ148は、全体画像における偶数ラインの画素が入力されているときに、2画素の入力に対して1回、平均画素データを出力する。
【0140】
以上のような平均リサイザ14によれば、ブロック単位で入力される画像に対して、順次に平均リサイズ処理を施すことができるので、縮小画像を効率良く生成することが可能になる。
【0141】
また、上記の平均リサイザ14のように、画素領域の画素数、換言すれば、一度の平均演算において演算処理の対象とする画素数を、2のべき乗個となるように構成すれば、平均の演算処理を加算とシフト処理(シフト演算)とで実現することができるので、平均の演算処理量を低減することが可能になる。なお、画素領域は、演算処理の対象となる画素によって構成される領域であることから、当該画素領域は、演算対象画素領域とも表現できる。
【0142】
また、図37のように、リサイズ部10D内において平均リサイザ14を多段に接続することによれば、縮小処理の際の演算量を低減しつつ、複数の平均リサイズ画像を同時に生成することが可能になる。
【0143】
なお、本実施形態では、平均リサイザ14を第1実施形態のリサイズ部10Aにおける出力処理部13の後段に接続する態様を例示したが、第2実施形態のリサイズ部10Bにおける出力処理部13の後段に接続する態様であってもよい。
【0144】
<4.変形例>
以上、この発明の実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【0145】
例えば、リサイズ部内に補間演算部123および出力処理部13を複数系統設けてもよい。図38は、変形例に係るリサイズ部10Eの構成を示す図である。
【0146】
具体的には、図38に示されるように、リサイズ部10Eは、補間演算部123および出力処理部13を2系統有している。
【0147】
このようなリサイズ部10Eにおいて、各系統間で補間画素の間隔を変更して補間演算を行い、リサイズ画像の生成を並列で行うことによれば、1枚の入力画像から一度に複数種類のリサイズ画像を生成することが可能になる。
【0148】
また、上記各実施形態では、リサイズ部10に入力されるブロック画像の大きさが8×8画素である場合を例示したが、これに限定されず、入力ブロック画像の大きさは、4×4画素、16×16画素、および32×32画素等の任意サイズであってもよい。
【0149】
また、第1実施形態のリサイズ部10Aと第2実施形態のリサイズ部10Bとは、共通の部材を共有化することにより、1つのリサイズ部として実現してもよい。このような当該1つのリサイズ部によれば、ブロック画像の入力順序が、ラスター順であっても、或いはJPEG XR入力順序であっても動作可能となり、画像処理装置1内の画像符号化部の符号化手法に応じたリサイズ処理を実行することができる。
【0150】
また、上記第3実施形態の平均リサイザ14の構成は、図36に示される態様に限定されない。図39は、平均リサイザ14(14A)の内部構成の変形例を示す図である。
【0151】
具体的には、図39に示されるように、平均リサイザ14Aは、3つのレジスタ141A〜141Cと、第1加算器161と、第1セレクタ142と、ラインメモリ162と、画素遅延メモリ163と、第2セレクタ145と、第2加算器164と、シフト処理部147と、第3セレクタ148とを備えている。
【0152】
平均リサイザ14Aでは、水平方向に連続した画素の画素データを第1加算器161において加算した後で、水平方向に加算された画素データ(水平画素データ)がラインメモリ162または画素遅延メモリ163に記憶される。そして、第1加算器161から出力される水平画素データと、ラインメモリ162または画素遅延メモリ163によって所定画素分遅延された水平画素データとを、第2加算器162において垂直方向に加算することによって、2×2の演算対象画素領域に含まれる4つの画素に関する加算画素データが取得される。
【0153】
このような構成の平均リサイザ14Aでは、ラインメモリ162の容量をM/2−1個分の画素の画素データを記憶可能な容量とし、画素遅延メモリ163の容量をN/2−1個分の画素の画素データを記憶可能な容量とすることができ、第3実施形態の平均リサイザ14に比べて、メモリの容量を低減させることができる。
【0154】
また、上記各第1実施形態および第2実施形態では、リサイズ部10によるリサイズ処理として、画像を縮小する処理を例示していたが、これに限定されず、リサイズ処理として画像を拡大する処理を行ってもよい。拡大処理を行う場合は、補間画素の間隔(補間間隔)を狭めて補間演算を行えばよい。
【0155】
また、上記各実施形態では、補間手法として、バイリニア補間手法を採用して補間演算を行っていたが、これに限定されず、例えば、バイキュービック補間手法、ニアレストネイバー補間手法を採用することができる。なお、採用する補間手法に応じて、演算に必要となる参照画素が異なるため、第2記憶手段としての各記憶部に記憶させる画素は適宜変更されることになる。
【符号の説明】
【0156】
1 画像処理装置
10,10A〜10E リサイズ部
11,11A,11B 入力処理部
110 記憶制御部
12 演算部
13 出力処理部
14 平均リサイザ
BG,BG1 入力ブロック画像(注目ブロック画像)
【技術分野】
【0001】
本発明は、画像処理技術に関する。
【背景技術】
【0002】
一般に、撮像装置等によって取得された画像に対して、その大きさを拡大または縮小させる画像処理を施すことにより、画像の大きさを自由に変更(リサイズ)する技術が存在する(例えば、特許文献1)。
【0003】
このような画像の大きさを変更する処理(「リサイズ処理」とも称する)を、ブロック単位の画像を出力する画像処理回路の後段において行う場合は、ブロック単位の画像(ブロック画像)を一旦別のメモリに格納して、画像全体を構成した上で、メモリに格納された全体画像に対して、リサイズ処理が施されていた。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−283023号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、画像全体を一旦別のメモリに格納してリサイズ処理を行うと、メモリへの画像データの格納および当該メモリからの画像データの読み出しによって、データの転送量が増大するため、処理速度の低下および消費電力の増加等の不具合が発生することになる。
【0006】
そこで、本発明は、データの転送量の増大によって生じる不具合を軽減させることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る画像処理装置は、第1記憶手段および第2記憶手段と、入力画像を分割して得られるブロック画像を順次に取得し、当該ブロック画像を注目ブロック画像として前記第1記憶手段に記憶させるとともに、前記注目ブロック画像に含まれる領域のうち、前記入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして前記第2記憶手段に記憶させる記憶制御手段と、第1記憶手段に記憶されている注目ブロック画像の画像データと、前記第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、前記注目ブロック画像の大きさを変更するリサイズ処理を実現するリサイズ手段とを備える。
【0008】
また、本発明に係る画像処理装置の一態様では、前記リサイズ手段を複数備え、各リサイズ手段において、補間画素の間隔を変更して前記補間演算を行う。
【0009】
また、本発明に係る画像処理装置の一態様では、前記リサイズ処理後の画像を特定領域ごとに順次に出力する出力手段と、前記特定領域の画像において矩形領域に含まれる各画素の画素値の平均を1画素分の画素値とする縮小処理によって、縮小画像を生成する第1平均縮小手段とをさらに備える。
【0010】
また、本発明に係る画像処理装置の一態様では、前記矩形領域に含まれる画素の個数は、2のべき乗個である。
【0011】
また、本発明に係る画像処理装置の一態様では、前記第1平均縮小手段の後段に接続され、前記縮小画像において矩形領域に含まれる各画素の画素値の平均を1画素分の画素値とする縮小処理によって、前記縮小画像を縮小させる第2平均縮小手段をさらに備える。
【0012】
また、本発明に係る画像処理装置の動作方法は、入力画像を分割して得られるブロック画像を順次に取得する工程と、順次に取得される前記ブロック画像を注目ブロック画像として前記第1記憶手段に記憶させるとともに、前記注目ブロック画像に含まれる領域のうち、前記入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして前記第2記憶手段に記憶させる工程と、第1記憶手段に記憶されている注目ブロック画像の画像データと、前記第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、前記注目ブロック画像の大きさを変更するリサイズ処理を実現する工程とを備える。
【発明の効果】
【0013】
本発明によれば、画像データの転送によって生じる不具合を軽減させることが可能になる。
【図面の簡単な説明】
【0014】
【図1】本発明の第1実施形態に係る画像処理装置の構成の一部を示す概略図である。
【図2】リサイズ部に入力される入力画像と、リサイズ部によってリサイズ処理を受けたリサイズ画像とを示す図である。
【図3】リサイズ部へのブロック画像の入力順序を示す図である。
【図4】リサイズ部の詳細構成を示す図である。
【図5】リサイズ部に入力される入力ブロック画像を示す図である。
【図6】リサイズ部に入力される入力画像内のブロック画像を示す図である。
【図7】リサイズ部の動作に関するタイムチャートである。
【図8】リサイズ部に入力される入力画像内のブロック画像を示す図である。
【図9】リサイズ部に入力される入力画像内のブロック画像を示す図である。
【図10】ラインレジスタへの書込動作を説明するための図である。
【図11】リサイズ部の動作に関するタイムチャートである。
【図12】リサイズ処理の対象となる領域を示す図である。
【図13】リサイズ部の動作に関するタイムチャートである。
【図14】出力バッファへ記憶されるブロック画像を模式的に示す図である。
【図15】補間演算の概要を示す図である。
【図16】補間演算のフローチャートである。
【図17】入力画像上の水平方向における、各画素と、各リサイズ画素との位置関係を示す図である。
【図18】入力画像上の垂直方向における、各画素と、各リサイズ画素との位置関係を示す図である。
【図19】リサイズ部へのブロック画像の入力順序を示す図である。
【図20】リサイズ部の詳細構成を示す図である。
【図21】リサイズ部に入力される入力画像内のブロック画像を示す図である。
【図22】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図23】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図24】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図25】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図26】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図27】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図28】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図29】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図30】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図31】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図32】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図33】第2実施形態に係るリサイズ部の動作を説明するための図である。
【図34】第3実施形態に係るリサイズ部の詳細構成を示す図である。
【図35】平均リサイザに入力される画像と平均リサイザから出力される画像とを示す図である。
【図36】平均リサイザの内部構成を示す図である。
【図37】リサイズ部の詳細構成を示す図である。
【図38】変形例に係るリサイズ部の構成を示す図である。
【図39】平均リサイザの内部構成の変形例を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の各実施形態について図面を参照して説明する。
【0016】
<1.第1実施形態>
[1−1.概要]
図1は、本発明の第1実施形態に係る画像処理装置1の構成の一部を示す概略図である。図2は、リサイズ部10Aに入力される前の画像(入力画像)と、リサイズ部10Aによってリサイズ処理を受けた画像(「出力画像」または「リサイズ画像」とも称する)DGとを示す図である。図3は、リサイズ部10Aへのブロック画像の入力順序を示す図である。なお、図3におけるX軸およびY軸は、入力画像IGの左上の画素を原点としたときの座標軸を表し、本実施形態では、入力画像IGに関して共通の座標系を用いるものとする。
【0017】
図1に示されるように、画像処理装置1は、入力された画像の大きさを変更して出力するリサイズ部10Aを備えている。
【0018】
リサイズ部10Aには、入力画像を複数の領域に分割して得られるブロック画像が、ブロック単位で順次に入力される。具体的には、図2に示されるように、入力画像IGは、例えば、8×8の画素を有する複数のブロックBKjに分割され、分割されたブロック単位で順次にリサイズ部10Aに入力される。
【0019】
ブロック画像の入力は、図3に示されるように、例えば、入力画像IGの左上に存在するブロック画像を始点ブロックSBとして+X方向に沿って順次に入力し、単位行の入力が終了した場合、+Y方向へと改行して次の行のブロック画像の入力を行う、いわゆるラスター順で行われる。
【0020】
リサイズ部10A(図1)は、入力されるブロック画像ごとにリサイズ処理を施して、リサイズ処理後の画像を、ブロック単位で出力する。なお、リサイズ部10Aに入力されるブロック画像(入力ブロック画像)と、リサイズ部10Aから出力されるブロック画像(出力ブロック画像)とは、一対一に対応してもよく、或いは、複数の入力ブロック画像から、1の出力ブロック画像が生成される態様であってもよい。
【0021】
なお、画像処理装置1は、例えば、撮像装置、パーソナルコンピュータ(PC)、携帯情報端末機等において実現される。
【0022】
[1−2.リサイズ部10Aの構成]
次に、リサイズ部10Aの構成について説明する。図4は、リサイズ部10Aの詳細構成を示す図である。図5は、リサイズ部10Aに入力される入力ブロック画像BGを示す図である。
【0023】
図1および図4に示されるように、リサイズ部10Aは、入力されたブロック画像のデータ処理を行う入力処理部11(11A)と、画像データにリサイズ処理を施す演算部(リサイズ手段)12と、リサイズ後の画像データの出力処理を行う出力処理部13とを備えている。
【0024】
入力処理部11は、記憶制御部110、第1入力バッファ111、第2入力バッファ112、第1カラムレジスタ113、第2カラムレジスタ114、第3カラムレジスタ115、ラインメモリ116、およびラインレジスタ117を備えている。
【0025】
第1入力バッファ111および第2入力バッファ112は、SRAMによって構成され、入力ブロック画像を保存可能な容量を有している。本実施形態の入力バッファ111,112は、例えば、16×16の画素を有する画像を保存可能な容量を有しているものとする。
【0026】
第1カラムレジスタ113、第2カラムレジスタ114および第3カラムレジスタ115は、入力ブロック画像を構成する縦一列分の画像データ(詳細には、縦一列分の各画素の画素データ(画素値))を保存可能な容量を有している。
【0027】
ラインメモリ116は、入力画像を構成する横一行分の画像データ(詳細には、横一行分の各画素の画素データ)を保存可能な容量を有している。
【0028】
ラインレジスタ117は、入力ブロック画像を構成する横一行分の各画素の画素データに加えて、さらに1画素の画素データを保存可能な容量を有している。例えば、入力ブロック画像の横の画素数が8である場合、ラインレジスタ117は、9画素分の画素データを保存可能な容量を有していることになる。
【0029】
記憶制御部110は、入力バッファ111,112、カラムレジスタ113,114,115、およびラインメモリ116に接続され、入力されたブロック画像の記憶先を選択的に制御する。
【0030】
具体的には、記憶制御部110は、入力ブロック画像を順次に取得し、当該入力ブロック画像を第1入力バッファ111または第2入力バッファ112に出力し、記憶させる機能を有している。
【0031】
また、記憶制御部110は、入力ブロック画像BGの右端の縦一列分の画像データ(図5における斜線ハッチング領域NRの画像データ)を第1カラムレジスタ113、第2カラムレジスタ114または第3カラムレジスタ115に出力し、記憶させる。また、記憶制御部110は、入力ブロック画像BGの最下部(下端)の横一行分の画像データ(図5における縦線ハッチング領域ERの画像データ)をラインメモリ116に出力し、記憶させる。
【0032】
このように、入力処理部11では、記憶制御部110の制御により、入力ブロック画像BGの画像データを各記憶部に格納させる記憶処理が行われる。なお、以下では、入力ブロック画像における縦一列分の画像データを「単位列データ」または「列データ」とも表現し、入力ブロック画像における横一行分の画像データを「単位行データ」または「行データ」とも表現する。なお、画像データの各記憶部への記憶に際して、記憶部内の未記憶領域が少ない場合、画像データは上書きして記憶されるものとする。
【0033】
演算部12は、座標制御部121、データ取得部122、および補間演算部123を備えている。演算部12は、リサイズ部10Aに入力されたブロック画像に基づいて、リサイズ後の画像(リサイズ画像)を構成する画素(「リサイズ画素」または「補間画素」とも称する)の画素データを算出する。
【0034】
座標制御部121は、入力画像の大きさと、リサイズ画像の大きさとに基づいて、入力画像における各リサイズ画素の座標を算出する。そして、座標制御部121は、各リサイズ画素の画素データの取得に用いる入力画像上の画素(「参照画素」とも称する)の座標を特定する。座標制御部121は、リサイズ画素の座標情報を補間演算部123およびデータ転送制御部131(後述)に出力するとともに、参照画素の座標情報をリサイズ画素ごとにデータ取得部122に出力する。
【0035】
データ取得部122は、座標制御部121から入力される参照画素の座標情報に基づいて、補間演算部123の演算動作に応じた適切なタイミングで各記憶部111〜115,117から参照画素の画素データを取得して、補間演算部123に出力する機能を有している。
【0036】
補間演算部123は、データ取得部122から入力される参照画素の画素データを用いた補間演算を行い、リサイズ画素の画素データを生成する機能を有している。なお、補間演算の詳細については、後述する。
【0037】
このように、演算部12は、リサイズ画素の画素データを算出するリサイズ処理を行い、算出された画素データを出力処理部13に出力する。
【0038】
出力処理部13は、データ転送制御部131、第1出力バッファ132、および第2出力バッファ133を備えている。
【0039】
第1出力バッファ132および第2出力バッファ133は、SRAMによって構成され、例えば入力バッファ111,112と同じ記憶容量を有している。
【0040】
データ転送制御部131は、演算部12から出力されたリサイズ画素の画素データの転送先を決定し、リサイズ画素の画素データを第1出力バッファ132または第2出力バッファ133に転送する機能を有している。また、データ転送制御部131は、第1出力バッファ132および第2出力バッファ133に対して出力指示信号を送信し、第1出力バッファ132または第2出力バッファ133に記憶された出力ブロック画像の出力制御を行う。
【0041】
[1−3.リサイズ部10Aの動作]
次に、リサイズ部10Aの動作について説明する。図6、図8、および図9は、リサイズ部10Aに入力される入力画像IG内のブロック画像を示す図である。図7は、リサイズ部10Aの動作に関するタイムチャートである。図10は、ラインレジスタ117への書込動作を説明するための図である。
【0042】
リサイズ部10Aでは、入力されたブロック画像の画像データを記憶する記憶処理と、入力されたブロック画像に対するリサイズ処理と、リサイズ処理後の画像を出力する出力処理とが実行される。以下では、リサイズ部10Aに、図6に示される入力画像IG中のブロック画像BG1が第1期間PT1(図7)に入力される場合を想定して説明する。
【0043】
まず、図7に示される第1期間PT1において、リサイズ部10Aにブロック画像(「注目ブロック画像」とも称する)BG1が入力されると、記憶制御部110の制御に基づいてデータの記憶処理が行われる。
【0044】
具体的には、記憶制御部110は、注目ブロック画像BG1の入力に応じて、当該注目ブロック画像BG1の画像データを第1入力バッファ111に記憶する書込動作1WAを実行させる。
【0045】
また、記憶制御部110は、注目ブロック画像BG1の入力に応じて、注目ブロック画像BG1の右端の単位列データ(図6における斜線ハッチング領域NR1の画像データ)を、第1カラムレジスタ113に記憶する書込動作1WBを実行させる。なお、図7において、第1カラムレジスタ113への書込動作1WBが不連続で行われるのは、ブロック画像BG1の入力が左上の画素から画素単位でラスター順に行われるためであり、保存対象となる画素データの入力が所定間隔ごとに行われるからである。
【0046】
また、記憶制御部110は、注目ブロック画像BG1の入力に応じて、注目ブロック画像BG1の最下部の単位行データ(図6における縦線ハッチング領域ER1の画像データ)を、ラインメモリ116に記憶する書込動作1WCを実行させる。
【0047】
このような一連の記憶処理は、ブロック画像が入力される度に実行される。
【0048】
具体的には、第1期間PT1の次の第2期間PT2において、ブロック画像BG2(図8参照)が入力されると、記憶制御部110は、ブロック画像BG2の画像データを第2入力バッファ112に記憶する書込動作2WAを実行させる。また、記憶制御部110は、ブロック画像BG2の入力に応じて、ブロック画像BG2の右端の単位列データを、第2カラムレジスタ114に記憶する書込動作2WBを実行させる。また、記憶制御部110は、ブロック画像BG2の入力に応じて、ブロック画像BG2の最下部の単位横データを、ラインメモリ116に記憶する書込動作2WCを実行させる。
【0049】
さらに、第2期間PT2の次の第3期間PT3において、ブロック画像BG3(図8参照)が入力されると、記憶制御部110は、ブロック画像BG3の画像データを第1入力バッファ112に記憶する書込動作3WAを実行させる。また、記憶制御部110は、ブロック画像BG3の入力に応じて、ブロック画像BG3の右端の単位列データを、第3カラムレジスタ115に記憶する書込動作3WBを実行させる。また、記憶制御部110は、ブロック画像BG3の入力に応じて、ブロック画像BG3の最下部の単位行データを、ラインメモリ116に記憶する書込動作3WCを実行させる。
【0050】
第3期間PT3の次の第4期間PT4において、ブロック画像BG4(図8参照)が入力されると、記憶制御部110は、ブロック画像BG4の画像データを第2入力バッファ112に記憶する書込動作4WAを実行させる。また、記憶制御部110は、ブロック画像BG4の入力に応じて、ブロック画像BG4の右端の単位列データを、第1カラムレジスタ113に記憶する書込動作4WBを実行させる。また、記憶制御部110は、ブロック画像BG4の入力に応じて、ブロック画像BG4の最下部の単位行データを、ラインメモリ116に記憶する書込動作4WCを実行させる。
【0051】
このように、記憶処理では、ブロック画像の入力に応じて、当該ブロック画像が第1入力バッファ111および第2入力バッファ112のいずれか一方に記憶されることになる。また、ブロック画像の入力に応じて、ブロック画像の右端の単位列データが、第1カラムレジスタ113、第2カラムレジスタ114、および第3カラムレジスタ115のいずれか1つに記憶されるとともに、ブロック画像の最下部の単位行データが、ラインメモリ116に記憶されることになる。
【0052】
なお、入力ブロック画像の右端の縦一列分の各画素によって構成される領域、および当該入力ブロック画像の最下部の横一行分の各画素によって構成される領域は、リサイズ部10Aに未だ入力されていない未入力のブロック画像に隣接する領域であるとも表現できる。詳細には、図9に示されるように、ブロック画像BG1が入力されたときに、未入力のブロック画像によって構成される領域ENは、砂地ハッチングによって表される領域となる。このため、入力ブロック画像BG1において、未入力のブロック画像に隣接する領域は、入力ブロック画像BG1の右端の縦一列分の各画素によって構成される領域NR1と、入力ブロック画像BG1の最下部の横一行分の各画素によって構成される領域ER1となる。また、入力ブロック画像を記憶する第1入力バッファ111および第2入力バッファ112を第1記憶手段と総称したとき、未入力のブロック画像に隣接する領域の画像データを記憶する各記憶部は、第2記憶手段とも総称できる。
【0053】
また、ラインメモリ116への書込動作1WC〜4WCの実行前には、書込動作1WC〜4WCにおいて上書き対象となる画像データが読み出され、ラインレジスタ117に格納される。上書き対象となる画像データ、すなわちラインレジスタ117に格納される画像データは、現在入力されている注目ブロック画像の上側に隣接するブロック画像の最下部の単位行データであり、「隣接ラインデータ」とも称される。
【0054】
隣接ラインデータのラインレジスタ117への書込動作1WD〜4WD(図7参照)は、ラインレジスタ117に既に記憶されている1画素分の画素データを残しつつ実行される。例えば、図10に示されるように、ラインレジスタ117には、+X方向に連続したN1番目からN9番目の9画素分のラインデータが記憶されているとする。このとき、+X方向に連続したN10番目からN17番目の8画素分の隣接ラインデータがラインメモリ116からラインレジスタ117に入力されると、ラインレジスタ117は、最後尾のレジスタに記憶されているN9番目の画素データを先頭のレジスタへと記憶する。そして、ラインレジスタ117は、当該N9番目の画素データに連続させるように、新たに入力されたN10番目からN17番目の隣接ラインデータを記憶する。このような書込動作1WD〜4WDが実行されることによって、ラインレジスタ117には、注目ブロック画像の上部において隣接する領域(隣接領域)の隣接ラインデータと、当該隣接領域の左隣の画素の画素データとが、+X方向に連続した状態で記憶されることになる。なお、ラインレジスタ117に記憶される隣接ラインデータと画素データとは、連続したデータであることから「連続ラインデータ」とも称される。
【0055】
次に、リサイズ処理について説明する。図11は、リサイズ部10Aの動作に関するタイムチャートである。図12は、リサイズ処理の対象となる領域を示す図である。
【0056】
第1期間PT1において、注目ブロック画像BG1の記憶処理が終了すると、第2期間PT2では、注目ブロック画像BG1に対するリサイズ処理が実行される。リサイズ処理の際には、データ取得部122によって、リサイズ処理に用いる参照画素の画素データが各記憶部から読み出される。
【0057】
例えば、注目ブロック画像BG1に関するリサイズ処理の際には、図11に示されるように、第2期間PT2において、第1入力バッファ111、第3カラムレジスタ115、およびラインレジスタ117それぞれから参照画素の画素データを読み出す読出動作1RE,1RF,1RGが実行される。
【0058】
第1入力バッファ111に関する読出動作1REでは、注目ブロック画像BG1を構成する画素の中から、参照画素の画素データが読み出されることになる。
【0059】
そして、第3カラムレジスタ115に関する読出動作1RFでは、ブロック画像BG0の右端の縦一列に含まれる画素の中から、参照画素の画素データが読み出されることになる。なお、図12に示されるように、第3カラムレジスタ115に記憶されている、ブロック画像BG0の右端の単位列データは、注目ブロック画像BG1に隣接する境界領域RKの画像データである。
【0060】
また、ラインレジスタ117に関する読出動作1RGでは、連続ラインデータを形成する画素の中から、参照画素の画素データが読み出されることになる。図12に示されるように、ラインレジスタ117に記憶されている連続ラインデータは、注目ブロック画像BG1の上部において隣接するブロック画像BG01の最下部の横一行分の領域RLの画像データ(隣接ラインデータ)と、ブロック画像BG01の左隣のブロック画像BG00における右下の画素PDの画素データとで構成される。
【0061】
ここで、上記各読出動作1RE,1RF,1RGによって、参照画素として読出可能な画素を総合すると、読出可能な画素によって構成される領域は、図12に示されるような、注目ブロック画像BG1を含んだ9×9画素の領域RSとなる。すなわち、注目ブロック画像BG1に対するリサイズ処理では、注目ブロック画像BG1を拡張した領域(「拡張領域」または「参照領域」とも称する)RSに含まれる画素の画素データを用いた補間演算が行われることになる。
【0062】
各入力ブロック画像に対するリサイズ処理においても、注目ブロック画像BG1に対するリサイズ処理と同様、入力ブロック画像を拡張した参照領域に含まれる画素の画素データを用いた補間演算が行われ、リサイズ画素の画素データが取得される。なお、リサイズ処理の際の処理対象となる参照領域は、入力処理部11によって行われる上記記憶処理によって設定されたものであるとも表現することができる。
【0063】
次に、出力処理について説明する。図13は、リサイズ部10Aの動作に関するタイムチャートである。図14は、出力バッファ132,133へ記憶されるブロック画像を模式的に示す図である。
【0064】
リサイズ画素の画素データは、順次、データ転送制御部131に出力される。そして、データ転送制御部131は、リサイズ画素の画素データを第1出力バッファ132または第2出力バッファ133に転送する。
【0065】
例えば、図13に示されるように、第2期間PT2において、注目ブロック画像BG1に関するリサイズ処理が終了すると、当該第2期間PT2において、第1出力バッファ132へのリサイズ画素の画素データの書込動作1WHが実行される。図14に示されるように、この書込動作1WHにより、注目ブロック画像BG1に対するリサイズ処理で生成されたブロック画像UG1が、第1出力バッファ132に記憶されることになる。
【0066】
データ転送制御部131による出力バッファ132,133へのデータ転送では、転送先の出力バッファにおいて、水平画素分のデータが記憶された時点で、転送先が切り替えられる。例えば、図14に示されるように、ブロック画像BG3に対するリサイズ処理で生成されたブロック画像UG3の一部を第1出力バッファ132に記憶させると、第1出力バッファ132において水平画素分のデータが揃う場合、ブロック画像UG3の残りの部分の画像データは、第2出力バッファ133に記憶される。このように転送先が切り替えられる場合は、図13に示されるように、第1出力バッファ132および第2出力バッファ133への書込動作3WHが交互に実行されることになる。
【0067】
また、データ転送制御部131は、水平画素分のデータが揃った出力バッファ132,133に対して、出力指示信号を送信する。これにより、出力指示信号を受けた、出力バッファ132,133からは、出力ブロック画像が読み出され、リサイズ部10Aの外部に出力されることになる。例えば、図14に示されるように、第1出力バッファ132にブロック画像UG3の一部が記憶されると、第1出力バッファ132では水平画素分のデータが揃うことになるので、データ転送制御部131は、第1出力バッファ132に対して、出力指示信号を送信する。出力指示信号を受けた第1出力バッファ132では、記憶されたデータの読出動作FR(図13)が実行され、当該データが出力ブロック画像TGとして外部に出力される。
【0068】
このように、出力処理部13において実行される出力処理では、リサイズ画像における特定領域としての出力ブロック画像が、順次に出力されることになる。
【0069】
[1−4.補間演算]
次に、演算部12において行われる補間演算について説明する。本実施形態では、補間手法として、バイリニア補間手法を採用して補間演算を行う場合を例示する。図15は、補間演算の概要を示す図であり、図16は、補間演算のフローチャートである。図17は、入力画像上の水平方向における、各画素GPと、各リサイズ画素BPとの位置関係を示す図である。図18は、入力画像上の垂直方向における、各画素GPと、各リサイズ画素BPとの位置関係を示す図である。
【0070】
図15に示されるように、本実施形態の補間演算では、リサイズ画素を囲む入力画像上の4つの画素が参照画素RP1〜RP4として特定される。4つの参照画素RP1〜RP4が特定されると、水平方向に並んだ参照画素の組ごとに(詳細には、参照画素RP1,RP2の組と参照画素RP3,RP4の組)、水平補間が行われ、2つの水平補間画素BH1,BH2が算出される。そして、2つの水平補間画素BH1,BH2を用いた垂直補間がさらに行われ、リサイズ画素(補間画素)BPの画素データが算出される。
【0071】
より詳細には、図16に示される各動作工程を経て、補間演算が実行される。
【0072】
まず、ステップSP11では、座標制御部121によって、入力画像の大きさと、リサイズ画像の大きさとに基づいて、入力画像における各リサイズ画素BPの座標が算出される。
【0073】
具体的には、ステップSP11では、水平方向の補間間隔(水平補間間隔)「Ph」と垂直方向の補間間隔(垂直補間間隔)「Pv」とが、下記の式(1)、(2)を用いてそれぞれ算出される。
【0074】
【数1】
【0075】
【数2】
【0076】
なお、式(1)における「GNh」は、入力画像の水平画素数を表し、「RNh」は、リサイズ画像の水平画素数を表している。また、式(2)における「GNv」は、入力画像の垂直画素数を表し、「RNv」は、リサイズ画像の垂直画素数を表している。
【0077】
そして、入力画像における各リサイズ画素BPの座標は、入力画像の左上の画素を原点として、補間間隔を累積加算することによって取得される。
【0078】
詳細には、入力画像上において、水平方向(X方向)における入力画像の各画素GPと、各リサイズ画素BPとの位置関係は、図17の様になるので、入力画像の左上の画素を原点とすると、+X方向にi番目(iは自然数)のリサイズ画素BPのX座標は、水平補間間隔「Ph」×iとなる。同様に、入力画像上において、垂直方向(Y方向)における入力画像の各画素GPと、各リサイズ画素BPとの位置関係は、図18の様になるので、入力画像の左上の画素を原点とすると、+Y方向にj番目(jは自然数)のリサイズ画素BPのY座標は、垂直補間間隔「Pv」×jとなる。
【0079】
すなわち、X方向にi番目、Y方向にj番目のリサイズ画素BPの座標は、(Ph×i,Pv×j)となる。
【0080】
次のステップSP12では、リサイズ画素BPの座標に基づいて、当該リサイズ画素の画素データを算出するために用いる参照画素RP1〜RP4の座標が特定される。(i,j)番目のリサイズ画素BPを中心として見た場合、当該リサイズ画素BPの左上の参照画素RP1の座標は、([Ph×i],[Pv×j])となる。ここで、[]は、ガウス記号であり、例えば、[z]は、実数zをこえない最大の整数を表している。
【0081】
同様に、(i,j)番目のリサイズ画素BPの右上の参照画素RP2の座標は、([Ph×i]+1,[Pv×j])、左下の参照画素RP3の座標は、([Ph×i],[Pv×j]+1)、右下の参照画素RP4の座標は、([Ph×i]+1,[Pv×j]+1)となる。
【0082】
ステップSP13では、補間演算に用いられる補間係数が算出される。具体的には、図17に示されるように、X方向i番目の画素BPの画素データを算出する際に用いる水平補間係数「αh(i)」、「βh(i)」はそれぞれ、式(3)、(4)を用いて算出される。また、図18に示されるように、Y方向j番目の画素BPの画素データを算出する際に用いる垂直補間係数「αv(j)」、「βv(j)」はそれぞれ、式(5)、(6)を用いて算出される。なお、式(3)〜(6)中の[]はガウス記号を表している。
【0083】
【数3】
【0084】
【数4】
【0085】
【数5】
【0086】
【数6】
【0087】
ステップSP14では、データ取得部122によって、参照画素RP1〜RP4の座標に基づいて各記憶部111〜116から参照画素RP1〜RP4の画素データが取得される。
【0088】
ステップSP15では、補間演算部123によって、参照画素RP1〜RP4の画素データおよび水平補間係数「αh(i)」、「βh(i)」に基づいて、バイリニア補間手法を用いた水平補間が行われ、2つの水平補間画素BH1,BH2が算出される。
【0089】
ステップSP16では、2つの水平補間画素BH1,BH2および垂直補間係数「αv(j)」、「βv(j)」に基づいて、バイリニア補間手法を用いた垂直補間が行われ、リサイズ画素BPの画素データが算出される。
【0090】
このように、本実施形態の補間演算では、図16に示される各動作工程を経て、リサイズ画素BPの画素データが算出される。
【0091】
以上のように、リサイズ部10は、第1記憶手段および第2記憶手段と、入力画像を分割して得られるブロック画像を順次に取得し、当該ブロック画像を注目ブロック画像として第1記憶手段に記憶させるとともに、注目ブロック画像に含まれる領域のうち、入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして第2記憶手段に記憶させる記憶制御部110と、第1記憶手段に記憶されている注目ブロック画像の画像データと、第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、注目ブロック画像の大きさを変更するリサイズ処理を実現する演算部12とを備える。
【0092】
このようなリサイズ部10を有する画像処理装置1によれば、ブロック画像に対して順次にリサイズ処理を施すことができるので、画像全体を一旦別の外部メモリに格納してリサイズ処理を行う必要がない。このため、画像全体を一旦別の外部メモリに格納してリサイズ処理を行う場合に比べて、画像データの転送量の増大による処理速度の低下および消費電力の増加等の不具合を解消することが可能になる。
【0093】
また、入力ブロック画像に対するリサイズ処理では、入力ブロック画像を拡張した領域に含まれる画素を、リサイズ処理に用いる参照画素として読み出すことができるので、各ブロック画像間の境界に存在する補間画素の画素データも精度良く算出することが可能になる。
【0094】
<2.第2実施形態>
次に、本発明の第2実施形態について説明する。上記第1実施形態のリサイズ部10Aには、ブロック画像がいわゆるラスター順に入力されていたが、第2実施形態に係るリサイズ部10には、ラスター順とは異なる順序でブロック画像が入力される。なお、リサイズ部10Bの構成において、第1実施形態に係るリサイズ部10Aの構成と共通する部分については同じ符号を付して説明を省略する。図19は、リサイズ部10Bへのブロック画像の入力順序を示す図である。
【0095】
[2−1.概要および構成]
第2実施形態のリサイズ部10Bには、図19において矢印で示される順序で、ブロック画像が入力される。この順序は、JPEG XR方式で画像符号化を行う画像符号化部へのブロック画像の入力順序と同様のものであり、「JPEG XR入力順序」とも称する。
【0096】
なお、第1実施形態におけるブロック画像の入力順序は、JPEG方式で画像符号化を行う画像符号化部へのブロック画像の入力順序と同様のものである。リサイズ部10A,10Bの前段に設けられる画像処理部は、画像符号化部への入力を想定してブロック画像を所定の順序で出力する。すなわち、リサイズ部10A,10Bと画像符号化部とは、前段に設けられる画像処理部に、並列に接続された構成をとることができる。
【0097】
次に、リサイズ部10Bの構成について説明する。図20は、リサイズ部10Bの詳細構成を示す図である。
【0098】
図20に示されるように、リサイズ部10Bは、入力処理部11B、演算部12、および出力処理部13を備えている。演算部12および出力処理部13は、第1実施形態に係る構成と同様であるため、ここでの説明は省略する。
【0099】
本実施形態のリサイズ部10Bには、JPEG XR入力順序でブロック画像が順次に入力されるため、入力処理部11Bの構成および当該入力処理部11Bによる記憶処理が、第1実施形態のものとは異なる。以下では、入力処理部11Bの構成、および記憶処理についてこの順序で説明する。
【0100】
入力処理部11B(図20)は、記憶制御部110、第1入力バッファ111、第2入力バッファ112、第1カラムレジスタ113、第2カラムレジスタ114、ラインメモリ116、第1ラインレジスタ151、第2ラインレジスタ152、画素レジスタ153、およびセレクタ群154を備えている。
【0101】
第1ラインレジスタ151および第2ラインレジスタ152は、入力ブロック画像を構成する横一行分の各画素の画素データに加えて、さらに1画素の画素データを保存可能な容量を有している。例えば、入力ブロック画像の横の画素数が8である場合、ラインレジスタ151,152は、9画素分の画素データを保存可能な容量を有していることになる。
【0102】
画素レジスタ153は、1画素分の画素データを保存可能な容量を有している。
【0103】
セレクタ群154は、複数のセレクタによって構成されている。各セレクタは、記憶制御部110からの制御信号に基づいて、出力するデータを切り替える。
【0104】
記憶制御部110は、第1入力バッファ111および第2入力バッファ112に接続され、入力されたブロック画像の記憶先を選択的に制御する。具体的には、記憶制御部110は、入力ブロック画像を第1入力バッファ111または第2入力バッファ112に出力し、記憶させる機能を有している。
【0105】
また、記憶制御部110は、セレクタ群154に含まれる各セレクタに対して、制御信号を送信し、各セレクタの出力を制御する。
【0106】
このような入力処理部11Bでは、記憶制御部110の制御により、入力ブロック画像の画像データを各記憶部に格納させる記憶処理が行われる。
【0107】
[2−2.リサイズ部10Bの動作]
次に、リサイズ部10Bの動作について説明する。図21は、リサイズ部10Bに入力される入力画像IG内のブロック画像BG11〜BG17を示す図である。図22〜図33は、第2実施形態に係るリサイズ部10Bの動作を説明するための図である。
【0108】
リサイズ部10Bで行われる記憶処理は、第1実施形態と同様、入力ブロック画像を拡張した参照領域を、リサイズ処理の処理対象とするために行われるが、記憶処理の処理内容が異なる。以下では、図21に示される入力画像IG中の8つのブロック画像BG11〜BG18が、順次に入力される場合を想定して、記憶処理およびリサイズ処理に関するリサイズ部10Bの動作について詳述する。
【0109】
まず、ブロック画像BG11が入力されると、ブロック画像BG11は、第1入力バッファ111に記憶される(図22参照)。
【0110】
次のブロック画像BG12が入力されると、当該ブロック画像BG12は、第2入力バッファ112に記憶されるとともに、第1入力バッファ111に記憶されているブロック画像BG11に対してリサイズ処理が施される(図23参照)。ブロック画像BG11に対するリサイズ処理は、第1入力バッファ111に記憶されているブロック画像BG11と、第1カラムレジスタ113に記憶されている単位列データと、ラインメモリ116に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG11に対するリサイズ処理の処理対象となる参照領域は、図23に示される砂地ハンチング領域となる。
【0111】
ブロック画像BG11に対するリサイズ処理が終了すると、第1入力バッファ111に記憶されたブロック画像BG11の右端の単位列データが、第1カラムレジスタ113に記憶され、ブロック画像BG11の最下部の単位行データが第1ラインレジスタ151に右詰めで記憶される。また、第1入力バッファ111に記憶されたブロック画像BG11の右下隅の画素の画素データが、第2ラインレジスタ152に左詰めで記憶される(図24参照)。
【0112】
次のブロック画像BG13が入力されると、当該ブロック画像BG13は、第1入力バッファ111に記憶されるとともに、第2入力バッファ112に記憶されているブロック画像BG12に対してリサイズ処理が施される(図25参照)。ブロック画像BG12に対するリサイズ処理は、第2入力バッファ112に記憶されているブロック画像BG12と、第1カラムレジスタ113に記憶されている単位列データと、ラインメモリ116に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG12に対するリサイズ処理の処理対象となる参照領域は、図25に示される砂地ハンチング領域となる。
【0113】
ブロック画像BG12に対するリサイズ処理が終了すると、第2入力バッファ112に記憶されたブロック画像BG12の右端の単位列データが、第1カラムレジスタ113に記憶され、ブロック画像BG12の最下部の単位行データが第2ラインレジスタ152に右詰めで記憶される。また、第2入力バッファ112に記憶されたブロック画像BG12の右下隅の画素の画素データが、画素レジスタ153に記憶される(図26参照)。
【0114】
次のブロック画像BG14が入力されると、当該ブロック画像BG14は、第2入力バッファ112に記憶されるとともに、第1入力バッファ111に記憶されているブロック画像BG13に対してリサイズ処理が施される(図27参照)。ブロック画像BG13に対するリサイズ処理は、第1入力バッファ111に記憶されているブロック画像BG13と、第2カラムレジスタ114に記憶されている単位列データと、第1ラインレジスタ151に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG13に対するリサイズ処理の処理対象となる参照領域は、図27に示される砂地ハンチング領域となる。
【0115】
ブロック画像BG13に対するリサイズ処理が終了すると、第1入力バッファ111に記憶されたブロック画像BG13の右端の単位列データが、第2カラムレジスタ114に記憶され、ブロック画像BG13の最下部の単位行データがラインメモリ116に記憶される(図28参照)。
【0116】
また、ブロック画像BG13に対するリサイズ処理が終了したタイミングで、画素レジスタ153に記憶されているブロック画像BG12の右下隅の画素の画素データが、第1ラインレジスタ151に左詰めで記憶される(図28参照)。
【0117】
次のブロック画像BG15が入力されると、当該ブロック画像BG15は、第1入力バッファ111に記憶されるとともに、第2入力バッファ112に記憶されているブロック画像BG14に対してリサイズ処理が施される(図29参照)。ブロック画像BG14に対するリサイズ処理は、第2入力バッファ112に記憶されているブロック画像BG14と、第2カラムレジスタ114に記憶されている単位列データと、第2ラインレジスタ152に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG14に対するリサイズ処理の処理対象となる参照領域は、図29に示される砂地ハンチング領域となる。
【0118】
ブロック画像BG14に対するリサイズ処理が終了すると、第2入力バッファ112に記憶されたブロック画像BG14の右端の単位列データが、第2カラムレジスタ114に記憶される。また、第2入力バッファ112に記憶されたブロック画像BG14の最下部の単位行データのうち、右端の画素データを除いたデータが、ラインメモリ116に記憶される。また、第2入力バッファ112に記憶されたブロック画像BG14の右下隅の画素の画素データが、画素レジスタ153に記憶される(図30参照)。
【0119】
次のブロック画像BG16が入力されると、当該ブロック画像BG16は、第2入力バッファ112に記憶されるとともに、第1入力バッファ111に記憶されているブロック画像BG15に対してリサイズ処理が施される(図31参照)。ブロック画像BG15に対するリサイズ処理は、第1入力バッファ111に記憶されているブロック画像BG15と、第1カラムレジスタ113に記憶されている単位列データと、ラインメモリ116に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG15に対するリサイズ処理の処理対象となる参照領域は、図31に示される砂地ハンチング領域となる。
【0120】
ブロック画像BG15に対するリサイズ処理が終了すると、第1入力バッファ111に記憶されたブロック画像BG15の右端の単位列データが、第1カラムレジスタ113に記憶され、ブロック画像BG15の最下部の単位行データが第1ラインレジスタ151に右詰めで記憶される。また、第1入力バッファ111に記憶されたブロック画像BG15の右下隅の画素の画素データが、第2ラインレジスタ152に左詰めで記憶される(図32参照)。
【0121】
また、ブロック画像BG15に対するリサイズ処理が終了したタイミングで、画素レジスタ153に記憶されているブロック画像BG14の右下隅の画素の画素データが、ラインメモリ116に記憶される(図32参照)。
【0122】
次のブロック画像BG17が入力されると、当該ブロック画像BG17は、第1入力バッファ111に記憶されるとともに、第2入力バッファ112に記憶されているブロック画像BG16に対してリサイズ処理が施される(図33参照)。ブロック画像BG16に対するリサイズ処理は、第2入力バッファ112に記憶されているブロック画像BG16と、第1カラムレジスタ113に記憶されている単位列データと、ラインメモリ116に記憶されている連続ラインデータとを参照して行われる。すなわち、ブロック画像BG16に対するリサイズ処理の処理対象となる参照領域は、図33に示される砂地ハンチング領域となる。
【0123】
図33に示される、ブロック画像BG17が入力された際の動作は、ブロック画像BG13が入力された際の上記動作(図25)と同様であり、図33に示される動作以降は、図26から図33の各動作が繰り返し実行されることになる。
【0124】
以上のようなリサイズ部10Bによれば、JPEG XR入力順序でブロック画像が入力された場合でも、リサイズ処理の際に、入力ブロック画像を拡張した参照領域に含まれる画素を、リサイズ処理に用いる参照画素として読み出すことができる。このため、各ブロック画像間の境界に存在する補間画素の画素データも精度良く算出することが可能になる。
【0125】
<3.第3実施形態>
次に、本発明の第3実施形態について説明する。第3実施形態に係るリサイズ部10Cは、出力処理部13の後段に、平均リサイザをさらに備えている。なお、リサイズ部10Cの構成において、第1実施形態に係るリサイズ部10Aの構成と共通する部分については同じ符号を付して説明を省略する。図34は、リサイズ部10Cの詳細構成を示す図である。図35は、平均リサイザ14に入力される画像NPと平均リサイザ14から出力される画像DPとを示す図である。図36は、平均リサイザ14の内部構成を示す図である。図37は、リサイズ部10Dの詳細構成を示す図である。
【0126】
図34に示されるように、第3実施形態のリサイズ部10Cは、出力処理部13の後段に、平均リサイザ(平均縮小手段)14をさらに備えている。
【0127】
平均リサイザ14は、複数の画素で構成される矩形の画素領域に含まれる各画素の画素データの平均を、1画素分の画素データとする平均リサイズ処理(平均縮小処理)により、縮小画像を生成する機能を有している。
【0128】
具体的には、平均リサイザ14が、2×2の画素で構成される画素領域に含まれる各画素の画素データの平均を、1画素分の画素データとする平均リサイズ処理を実行可能な場合、当該平均リサイザ14は、入力された画像を1/2に縮小して出力する。例えば、図35に示されるような、6×16画素のブロック画像NPが入力された場合、平均リサイザ14は、ブロック画像NPに対して、2×2画素の画素領域GRごとに平均リサイズ処理を施し、3×8画素のブロック画像DPを出力する。すなわち、入力されたブロック画像NPにおける2×2画素の画素領域GR1からは、ブロック画像DPの画素PX1の画素データが算出され、ブロック画像NPにおける画素領域GR2からは、ブロック画像DPの画素PX2の画素データが算出されることになる。
【0129】
このような平均リサイザ14は、例えば、図36のような構成を有している。
【0130】
図36に示されるように、平均リサイザ14は、4つのレジスタ141A〜141Dと、第1セレクタ142と、ラインメモリ143と、画素遅延メモリ144と、第2セレクタ145と、加算器146と、シフト処理部147と、第3セレクタ148とを備えている。
【0131】
当該平均リサイザ14には、出力処理部13から出力されたブロック画像NPが、画素ごとにラスター順で入力される。平均リサイザ14に入力された画素データは、2つのレジスタ141A,141Bに順に格納された後、第1セレクタ142に入力される。
【0132】
第1セレクタ142は、第1セレクタ142に入力される画素データの転送先を決定し、当該画素データをラインメモリ143または画素遅延メモリ144に転送する。具体的には、第1セレクタ142は、通常、第1セレクタ142に入力された画素データを画素遅延メモリ144に出力する。また、第1セレクタ142に入力された画素データが、ブロック画像NPにおいて奇数ラインの画素データであって、かつブロック画像NPにおける最下部ラインの画素データであった場合、第1セレクタ142は、例外的に画素データをラインメモリ143に出力する。
【0133】
ここで、ラインメモリ116は、平均リサイザ14に入力されることになる全体画像の水平画素数を「M」とすると、M−2個分の画素の画素データを記憶可能な容量を有している。また、画素遅延メモリ144は、ブロック画像NPの水平画素数を「N」とすると、N−2個分の画素の画素データを記憶可能な容量を有している。
【0134】
したがって、第1セレクタ142の上記動作により、画素遅延メモリ144には、N−2個の画素データが記憶されることになり、ラインメモリ143には、M−2個の画素データが記憶されることになる。
【0135】
第2セレクタ145は、ラインメモリ143および画素遅延メモリ144のうち、いずれか一方から画素データを取得して、レジスタ141Cに出力する。第2セレクタ145は、上記全体画像において、レジスタ141Aに入力される画素の直上の画素の画素データをラインメモリ143または画素遅延メモリ144から取得して、レジスタ141Cに出力する。
【0136】
平均リサイザ14では、レジスタ141A〜141D、ラインメモリ143、および画素遅延メモリ144への画素データの格納が、平均リサイザ14への画素データの入力に同期して行われる。このため、レジスタ141Cの画素データがレジスタ141Dに格納されたとき、4つのレジスタ141A〜141Dには、2×2の画素領域に含まれる全画素の画素データが揃うことになる。
【0137】
加算器146は、各レジスタ141A〜141Dから出力された画素データを加算して、シフト処理部147に出力する。
【0138】
シフト処理部147は、加算された画素データ(加算画素データ)に対して、2ビットのシフト処理を行うことにより、4つの画素データを平均した平均画素データを算出する。
【0139】
第3セレクタ148は、シフト処理部147から入力される平均画素データを、2×2の画素領域ごとに出力する。すなわち、第3セレクタ148は、全体画像における偶数ラインの画素が入力されているときに、2画素の入力に対して1回、平均画素データを出力する。
【0140】
以上のような平均リサイザ14によれば、ブロック単位で入力される画像に対して、順次に平均リサイズ処理を施すことができるので、縮小画像を効率良く生成することが可能になる。
【0141】
また、上記の平均リサイザ14のように、画素領域の画素数、換言すれば、一度の平均演算において演算処理の対象とする画素数を、2のべき乗個となるように構成すれば、平均の演算処理を加算とシフト処理(シフト演算)とで実現することができるので、平均の演算処理量を低減することが可能になる。なお、画素領域は、演算処理の対象となる画素によって構成される領域であることから、当該画素領域は、演算対象画素領域とも表現できる。
【0142】
また、図37のように、リサイズ部10D内において平均リサイザ14を多段に接続することによれば、縮小処理の際の演算量を低減しつつ、複数の平均リサイズ画像を同時に生成することが可能になる。
【0143】
なお、本実施形態では、平均リサイザ14を第1実施形態のリサイズ部10Aにおける出力処理部13の後段に接続する態様を例示したが、第2実施形態のリサイズ部10Bにおける出力処理部13の後段に接続する態様であってもよい。
【0144】
<4.変形例>
以上、この発明の実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【0145】
例えば、リサイズ部内に補間演算部123および出力処理部13を複数系統設けてもよい。図38は、変形例に係るリサイズ部10Eの構成を示す図である。
【0146】
具体的には、図38に示されるように、リサイズ部10Eは、補間演算部123および出力処理部13を2系統有している。
【0147】
このようなリサイズ部10Eにおいて、各系統間で補間画素の間隔を変更して補間演算を行い、リサイズ画像の生成を並列で行うことによれば、1枚の入力画像から一度に複数種類のリサイズ画像を生成することが可能になる。
【0148】
また、上記各実施形態では、リサイズ部10に入力されるブロック画像の大きさが8×8画素である場合を例示したが、これに限定されず、入力ブロック画像の大きさは、4×4画素、16×16画素、および32×32画素等の任意サイズであってもよい。
【0149】
また、第1実施形態のリサイズ部10Aと第2実施形態のリサイズ部10Bとは、共通の部材を共有化することにより、1つのリサイズ部として実現してもよい。このような当該1つのリサイズ部によれば、ブロック画像の入力順序が、ラスター順であっても、或いはJPEG XR入力順序であっても動作可能となり、画像処理装置1内の画像符号化部の符号化手法に応じたリサイズ処理を実行することができる。
【0150】
また、上記第3実施形態の平均リサイザ14の構成は、図36に示される態様に限定されない。図39は、平均リサイザ14(14A)の内部構成の変形例を示す図である。
【0151】
具体的には、図39に示されるように、平均リサイザ14Aは、3つのレジスタ141A〜141Cと、第1加算器161と、第1セレクタ142と、ラインメモリ162と、画素遅延メモリ163と、第2セレクタ145と、第2加算器164と、シフト処理部147と、第3セレクタ148とを備えている。
【0152】
平均リサイザ14Aでは、水平方向に連続した画素の画素データを第1加算器161において加算した後で、水平方向に加算された画素データ(水平画素データ)がラインメモリ162または画素遅延メモリ163に記憶される。そして、第1加算器161から出力される水平画素データと、ラインメモリ162または画素遅延メモリ163によって所定画素分遅延された水平画素データとを、第2加算器162において垂直方向に加算することによって、2×2の演算対象画素領域に含まれる4つの画素に関する加算画素データが取得される。
【0153】
このような構成の平均リサイザ14Aでは、ラインメモリ162の容量をM/2−1個分の画素の画素データを記憶可能な容量とし、画素遅延メモリ163の容量をN/2−1個分の画素の画素データを記憶可能な容量とすることができ、第3実施形態の平均リサイザ14に比べて、メモリの容量を低減させることができる。
【0154】
また、上記各第1実施形態および第2実施形態では、リサイズ部10によるリサイズ処理として、画像を縮小する処理を例示していたが、これに限定されず、リサイズ処理として画像を拡大する処理を行ってもよい。拡大処理を行う場合は、補間画素の間隔(補間間隔)を狭めて補間演算を行えばよい。
【0155】
また、上記各実施形態では、補間手法として、バイリニア補間手法を採用して補間演算を行っていたが、これに限定されず、例えば、バイキュービック補間手法、ニアレストネイバー補間手法を採用することができる。なお、採用する補間手法に応じて、演算に必要となる参照画素が異なるため、第2記憶手段としての各記憶部に記憶させる画素は適宜変更されることになる。
【符号の説明】
【0156】
1 画像処理装置
10,10A〜10E リサイズ部
11,11A,11B 入力処理部
110 記憶制御部
12 演算部
13 出力処理部
14 平均リサイザ
BG,BG1 入力ブロック画像(注目ブロック画像)
【特許請求の範囲】
【請求項1】
第1記憶手段および第2記憶手段と、
入力画像を分割して得られるブロック画像を順次に取得し、当該ブロック画像を注目ブロック画像として前記第1記憶手段に記憶させるとともに、前記注目ブロック画像に含まれる領域のうち、前記入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして前記第2記憶手段に記憶させる記憶制御手段と、
第1記憶手段に記憶されている注目ブロック画像の画像データと、前記第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、前記注目ブロック画像の大きさを変更するリサイズ処理を実現するリサイズ手段と、
を備える画像処理装置。
【請求項2】
前記リサイズ手段を複数備え、
各リサイズ手段において、補間画素の間隔を変更して前記補間演算を行う請求項1に記載の画像処理装置。
【請求項3】
前記リサイズ処理後の画像を特定領域ごとに順次に出力する出力手段と、
前記特定領域の画像において矩形領域に含まれる各画素の画素値の平均を1画素分の画素値とする縮小処理によって、縮小画像を生成する第1平均縮小手段と、
をさらに備える請求項1または請求項2に記載の画像処理装置。
【請求項4】
前記矩形領域に含まれる画素の個数は、2のべき乗個である請求項3に記載の画像処理装置。
【請求項5】
前記第1平均縮小手段の後段に接続され、前記縮小画像において矩形領域に含まれる各画素の画素値の平均を1画素分の画素値とする縮小処理によって、前記縮小画像を縮小させる第2平均縮小手段をさらに備える請求項3または請求項4に記載の画像処理装置。
【請求項6】
入力画像を分割して得られるブロック画像を順次に取得する工程と、
順次に取得される前記ブロック画像を注目ブロック画像として前記第1記憶手段に記憶させるとともに、前記注目ブロック画像に含まれる領域のうち、前記入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして前記第2記憶手段に記憶させる工程と、
第1記憶手段に記憶されている注目ブロック画像の画像データと、前記第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、前記注目ブロック画像の大きさを変更するリサイズ処理を実現する工程と、
を備える画像処理装置の動作方法。
【請求項1】
第1記憶手段および第2記憶手段と、
入力画像を分割して得られるブロック画像を順次に取得し、当該ブロック画像を注目ブロック画像として前記第1記憶手段に記憶させるとともに、前記注目ブロック画像に含まれる領域のうち、前記入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして前記第2記憶手段に記憶させる記憶制御手段と、
第1記憶手段に記憶されている注目ブロック画像の画像データと、前記第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、前記注目ブロック画像の大きさを変更するリサイズ処理を実現するリサイズ手段と、
を備える画像処理装置。
【請求項2】
前記リサイズ手段を複数備え、
各リサイズ手段において、補間画素の間隔を変更して前記補間演算を行う請求項1に記載の画像処理装置。
【請求項3】
前記リサイズ処理後の画像を特定領域ごとに順次に出力する出力手段と、
前記特定領域の画像において矩形領域に含まれる各画素の画素値の平均を1画素分の画素値とする縮小処理によって、縮小画像を生成する第1平均縮小手段と、
をさらに備える請求項1または請求項2に記載の画像処理装置。
【請求項4】
前記矩形領域に含まれる画素の個数は、2のべき乗個である請求項3に記載の画像処理装置。
【請求項5】
前記第1平均縮小手段の後段に接続され、前記縮小画像において矩形領域に含まれる各画素の画素値の平均を1画素分の画素値とする縮小処理によって、前記縮小画像を縮小させる第2平均縮小手段をさらに備える請求項3または請求項4に記載の画像処理装置。
【請求項6】
入力画像を分割して得られるブロック画像を順次に取得する工程と、
順次に取得される前記ブロック画像を注目ブロック画像として前記第1記憶手段に記憶させるとともに、前記注目ブロック画像に含まれる領域のうち、前記入力画像において未入力のブロック画像に隣接する領域の画像データを、境界領域の画像データとして前記第2記憶手段に記憶させる工程と、
第1記憶手段に記憶されている注目ブロック画像の画像データと、前記第2記憶手段に記憶されている境界領域の画像データとを用いて補間演算を行うことによって、前記注目ブロック画像の大きさを変更するリサイズ処理を実現する工程と、
を備える画像処理装置の動作方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図39】
【公開番号】特開2012−89969(P2012−89969A)
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願番号】特願2010−233277(P2010−233277)
【出願日】平成22年10月18日(2010.10.18)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
【公開日】平成24年5月10日(2012.5.10)
【国際特許分類】
【出願日】平成22年10月18日(2010.10.18)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
[ Back to top ]