【解決手段】局所特徴量算出回路においては、ブロック単位特徴量算出回路が、ブロック画像の局所特徴量を算出し、バッファが、複数のブロック画像の局所特徴量を保持する。一時読み出しレジスタが、バッファから順次読み出される、補間処理で用いられる横方向のm個および縦方向のn個のブロック画像からなるt個のブロック画像のうちの縦方向のn個のブロック画像の局所特徴量を順次保持し、ブロックレジスタが、一時読み出しレジスタから同時に出力される、縦方向のn個のブロック画像の局所特徴量をm個のレジスタ群に順次シフトして保持する。補間回路が、ブロックレジスタから同時に出力される、t個のブロック画像の局所特徴量の間を補間して画像のピクセルの局所特徴量を算出する。
前記ブロック単位特徴量算出回路は、前記ブロック画像の局所特徴量として、前記ブロック画像の全てのピクセルのデータの平均値、中央値、最大値、最小値、最頻値または代表ピクセル値を算出する、請求項1に記載の局所特徴量算出回路。
前記ブロック単位特徴量算出回路は、現フレームの画像における前記処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の各々について、前記ブロック画像の局所特徴量を算出し、
さらに、1ブロックライン時間単位で、前記ブロック単位特徴量算出回路から出力される、前記現フレームの画像における前記処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量を保持し、前記現フレームの画像における前記処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量を保持してから、前記補間処理で用いられるn個のブロック画像として、前記バッファに書き込まれた1フレーム前の画像における前記処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量の前記バッファからの読み出しが完了するまでの一定のブロックライン時間遅延させて出力する一時書き込みレジスタと、
前記一時書き込みレジスタから同時に出力される、前記ブロックラインに含まれる複数のブロック画像の局所特徴量を順次出力するマルチプレクサと、を備え、
前記マルチプレクサから順次出力されるブロック画像の局所特徴量が前記バッファに書き込まれる、請求項1または2に記載の局所特徴量算出回路。
さらに、前記マルチプレクサから順次出力される、前記処理対象のピクセルを含むブロック画像およびその周囲のブロック画像の局所特徴量を用いてフィルタリング処理を行うフィルタ回路を備え、
前記フィルタ回路から出力されるブロック画像の局所特徴量が前記バッファに書き込まれる、請求項3に記載の局所特徴量算出回路。
前記現フレームの画像の最初のブロックラインから、最後のブロックラインの前記一定のブロックライン時間前までの前記処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量は、前記一定のブロックライン時間遅延されたブロックラインに含まれる最後のラインの後ろの水平ブランキング期間において、前記一定のブロックライン時間遅延されたブロックラインの次のブロックラインに含まれる左端のブロック画像に対応する、前記補間処理で用いられる複数のブロック画像の局所特徴量が前記バッファから読み出された後、前記バッファに書き込まれ、前記最後のブロックラインから前記一定のブロックライン時間前までの前記処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量は、前記一定のブロックライン時間遅延された垂直ブランキング期間において、前記バッファに書き込まれた後、次のフレームの画像の左上のブロック画像に対応する、前記補間処理で用いられる複数のブロック画像の局所特徴量が前記バッファから読み出される、請求項3または4に記載の局所特徴量算出回路。
次の処理対象のピクセルを含むブロック画像が前記ブロックラインの左端のブロック画像である場合、前記ブロックラインに含まれるライン毎に、前記次の処理対象のピクセルを含むブロックラインの前の水平ブランキング期間において、前記左端のブロック画像を含む前記縦方向のn個のブロック画像の局所特徴量が前記バッファから順次読み出されて前記一時読み出しレジスタに順次保持され、前記一時読み出しレジスタから同時に出力される、前記左端のブロック画像を含む縦方向のn個のブロック画像の局所特徴量が前記ブロックレジスタのm個のレジスタ群の全てに書き込まれた後、前記左端のブロック画像の右側のブロック画像から、前記左端のブロック画像に対応する、前記補間処理で用いられる横方向のm個のブロック画像のうちの右端のブロック画像までのi個のブロック画像のうちのj番目(1≦j≦i)のブロック画像を含む縦方向のn個のブロック画像の局所特徴量が前記バッファから順次読み出されて前記一時読み出しレジスタに順次保持され、前記一時読み出しレジスタから同時に出力される、前記j番目のブロック画像を含む縦方向のn個のブロック画像の局所特徴量が前記ブロックレジスタのm個のレジスタ群にシフトされることが、前記i個のブロック画像のうちの1番目のブロック画像からi番目のブロック画像まで繰り返される、請求項3ないし5のいずれか一項に記載の局所特徴量算出回路。
前記次の処理対象のピクセルを含むブロック画像が前記左端のブロック画像の右側のブロック画像から、前記ブロックラインの右端のブロック画像の(m−1)/2個前までのブロック画像のいずれかである場合、前記ブロックラインに含まれるライン毎に、前記次の処理対象のピクセルを含むブロック画像の1つ前のブロック画像のタイミングにおいて、前記次の処理対象のピクセルを含むブロック画像に対応する前記m個のブロック画像のうちの右端の縦方向のn個のブロック画像の局所特徴量が前記バッファから順次読み出されて前記一時読み出しレジスタに順次保持され、前記処理対象のピクセルが前記次の処理対象のピクセルを含むブロック画像に移動するタイミングで、前記一時読み出しレジスタから同時に出力される、前記m個のブロック画像のうちの右端の縦方向のn個のブロック画像の局所特徴量が前記ブロックレジスタのm個のレジスタ群にシフトされる、請求項6に記載の局所特徴量算出回路。
前記次の処理対象のピクセルを含むブロック画像が前記ブロックラインの右端のブロック画像から、前記ブロックラインの右端のブロック画像の(m−1)/2個のブロック画像のいずれかである場合、前記ブロックラインに含まれるライン毎に、前記次の処理対象のピクセルを含むブロック画像の1つ前のブロック画像のタイミングにおいて、前記次の処理対象のピクセルを含むブロック画像に対応する前記m個のブロック画像のうちの右端の縦方向のn個のブロック画像の局所特徴量が前記バッファから読み出されることなく、前記処理対象のピクセルが前記次の処理対象のピクセルを含むブロック画像に移動するタイミングで、前記一時読み出しレジスタから同時に出力される前記縦方向のn個のブロック画像の局所特徴量が前記ブロックレジスタのm個のレジスタ群にシフトされる、請求項6または7に記載の局所特徴量算出回路。
さらに、前記ブロック画像の局所特徴量を前記バッファに書き込むためのライトアドレス、および、前記ブロック画像の局所特徴量を前記バッファから読み出すためのリードアドレスを生成するマイクロプロセッサを備える、請求項1ないし8のいずれか一項に記載の局所特徴量算出回路。
前記補間回路は、前記ブロック画像における最大のブロックアドレスに基づいて、前記ブロック画像における処理対象のピクセルのブロックアドレスにより算出される重み付け係数と、隣接する前記ブロック画像の局所特徴量と、を演算することにより、前記ブロック画像における処理対象のピクセルの局所特徴量を算出する、請求項1ないし9のいずれか一項に記載の局所特徴量算出回路。
ブロック単位特徴量算出回路が、画像を縦方向および横方向に分割した複数のブロック画像の各々について、前記ブロック画像の特徴量である局所特徴量を算出するステップと、
バッファが、前記複数のブロック画像の局所特徴量を保持するステップと、
mおよびnを2以上の整数とし、tを4以上の整数として、処理対象のピクセルを含むブロック画像およびその周囲のブロック画像の局所特徴量の間の補間処理で用いられる、横方向のm個および縦方向のn個のブロック画像からなるt個のブロック画像のうちの前記縦方向のn個のブロック画像に対応するn個のレジスタを有する一時読み出しレジスタが、1ピクセル時間単位で、前記バッファから順次読み出される、前記縦方向のn個のブロック画像の局所特徴量を前記n個のレジスタに順次保持するステップと、
前記縦方向のn個のブロック画像に対応するn個のレジスタからなるレジスタ群を、前記横方向のm個のブロック画像に対応するm個有するブロックレジスタが、1ブロック時間毎に、前記一時読み出しレジスタから同時に出力される、前記縦方向のn個のブロック画像の局所特徴量を前記m個のレジスタ群に順次シフトして保持するステップと、
補間回路が、前記1ブロック時間毎に、前記ブロックレジスタから同時に出力される、前記補間処理で用いられるt個のブロック画像の局所特徴量の間を補間して前記画像のピクセルの局所特徴量を算出するステップと、を含む、局所特徴量算出方法。
【発明を実施するための形態】
【0035】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の局所特徴量算出回路および局所特徴量算出方法を詳細に説明する。
【0036】
図1は、本発明に係る局所特徴量算出回路の構成を表す一実施形態のブロック図である。
図1に示す局所特徴量算出回路10は、HDR画像を縦方向にN個(Nは2以上の整数)、および横方向にM個(Mは2以上の整数)に分割した複数のブロック画像の各々について、ブロック画像の特徴量である局所特徴量を算出する。また、局所特徴量算出回路10は、ブロック画像に含まれる各々のピクセルの特徴量であるピクセルの局所特徴量を算出する。
【0037】
局所特徴量算出回路10は、画像アドレス生成回路12と、ブロックアドレス生成回路14と、水平ブランキングカウント回路16と、垂直ブランキングカウント回路18と、マルチプレクサ20と、周期カウンタ22と、ライトアドレス生成回路24と、リードアドレス生成回路26と、ブロック単位特徴量算出回路28と、一時書き込みレジスタ30と、マルチプレクサ32と、フィルタ回路34と、バッファ36と、一時読み出しレジスタ38と、ブロックレジスタ40と、補間回路42と、を備えている。
【0038】
局所特徴量算出回路10において、画像アドレス生成回路12には、画像同期信号として、外部から、HDR画像のピクセルのデータが入力される表示期間を表すデータイネーブル信号DE、および、垂直ブランキング期間の開始タイミングを表す垂直同期信号VSYNCが入力される。
画像アドレス生成回路12は、データイネーブル信号DEおよび垂直同期信号VSYNCに基づいて、1ピクセル時間毎に、現フレームのHDR画像における処理対象のピクセルの横方向(水平方向)および縦方向(垂直方向)のアドレス(座標)x,yを生成する。
なお、1ピクセル時間は、ピクセルクロックP_Clock(
図2参照)の1周期に相当する時間である。
【0039】
本実施形態の場合、画像アドレス生成回路12は、データイネーブル信号DEおよび垂直同期信号VSYNCに基づいて、HDR画像の表示期間(有効領域)、水平ブランキング期間および垂直ブランキング期間(無効領域)を検出する。また、表示期間において、水平方向のピクセル数をピクセルクロックP_Clockでカウントし、かつ、垂直方向のライン数をカウントすることにより、HDR画像の横方向および縦方向のピクセルのアドレスx,yを生成する。
【0040】
続いて、ブロックアドレス生成回路14には、1ピクセル時間毎に、画像アドレス生成回路12からHDR画像のピクセルのアドレスx,yが入力され、外部からブロック画像の横方向のピクセル数(幅)block_widthおよび縦方向のピクセル数(高さ)block_heightを表すサイズ情報が入力される。
ブロックアドレス生成回路14は、HDR画像のピクセルのアドレスx,yおよび、上記のブロック画像のサイズ情報に基づいて、
図2に示すように、1ブロック時間毎に、現フレームのHDR画像における処理対象のピクセルの位置を含むブロック画像の横方向および縦方向の位置を表すインデックスqx,qy、および、
図3に示すように、1ピクセル時間毎に、現フレームのHDR画像のブロック画像内における処理対象のピクセルのアドレスを表すブロックアドレスrx,ryを生成する。
なお、1ブロック時間は、1ブロック画像の横方向のピクセル数block_width×ピクセルクロックP_Clockの1周期に相当する時間である。
【0041】
本実施形態の場合、ブロックアドレス生成回路14は、HDR画像のピクセルのアドレスx,yを、それぞれ、ブロック画像の横方向のピクセル数、すなわちblock_width、および縦方向のピクセル数、すなわちblock_heightで除算し、その除算結果の商をブロック画像の横方向および縦方向のインデックスqx,qyとし、余りを横方向および縦方向のブロックアドレスrx,ryとすることにより、ブロック画像のインデックスqx,qyおよびブロックアドレスrx,ryを生成する。
【0042】
図2において、HDR画像における左上のブロック画像のインデックスqx,qy=0,0であり、右下のブロック画像のインデックスqx,qy=M−1,N−1である。つまり、M,Nは、HDR画像におけるブロック画像の横方向および縦方向の数を表す。また、
図3において、ブロック画像における左上のピクセルのブロックアドレスrx,ry=0,0であり、右下のピクセルのブロックアドレスrx,ry=wx,wyである。つまり、wx=block_width-1,wy=block_height-1を表す。
【0043】
続いて、水平ブランキングカウント回路16および垂直ブランキングカウント回路18には、外部からデータイネーブル信号DEおよび垂直同期信号VSYNCが入力される。
水平ブランキングカウント回路16は、データイネーブル信号DEに基づいて、1ピクセル時間毎に、水平ブランキング期間において水平ブランキングカウント値hblank_countをカウントする。また、垂直ブランキングカウント回路18は、垂直同期信号VSYNCに基づいて、1ピクセル時間毎に、垂直ブランキング期間において垂直ブランキングカウント値vblank_countをカウントする。
【0044】
本実施形態の場合、水平ブランキングカウント回路16は、データイネーブル信号DEに基づいて水平ブランキング期間の開始タイミングを検出し、
図2に示すように、水平ブランキング期間の開始タイミングからピクセルクロックP_Clockをカウントした水平ブランキングカウント値hblank_countを出力する。また、垂直ブランキングカウント回路18は、垂直同期信号VSYNCに基づいて垂直ブランキング期間の開始タイミングを検出し、垂直ブランキング期間の開始タイミングからピクセルクロックP_Clockをカウントした垂直ブランキングカウント値vblank_countを出力する。
【0045】
続いて、マルチプレクサ20には、水平ブランキングカウント回路16から水平ブランキングカウント値hblank_countが入力され、垂直ブランキングカウント回路18から垂直ブランキングカウント値vblank_countが入力される。また、マルチプレクサ20には、外部から垂直同期信号VSYNCが入力される。
マルチプレクサ20は、垂直同期信号VSYNCに基づいて、水平ブランキングカウント値hblank_countと垂直ブランキングカウント値vblank_countとを切り替え、ブランキングカウント値blank_countとして出力する。
【0046】
本実施形態の場合、マルチプレクサ20は、垂直同期信号VSYNCに基づいて垂直ブランキング期間なのか否かを検出し、垂直ブランキング期間において、ブランキングカウント値blank_countとして垂直ブランキングカウント値vblank_countを出力する。また、垂直ブランキング期間ではない場合、水平ブランキング期間において、ブランキングカウント値blank_countとして水平ブランキングカウント値hblank_countを出力する。
【0047】
続いて、周期カウンタ22には、マルチプレクサ20からブランキングカウント値blank_countが入力される。また、周期カウンタ22には、外部から、ブロック画像のサイズ情報および補間処理で用いられる縦方向のブロック画像の数の情報が入力される。
周期カウンタ22は、ブランキングカウント値blank_count、ブロック画像のサイズ情報、および、補間処理で用いられる縦方向のブロック画像の数の情報に応じて、1ピクセル時間毎に、ブランキング期間において周期的に変化する周期カウント値prxを出力する。
【0048】
本実施形態の場合、補間処理において、縦方向の3個(n=3)および横方向の3個(m=3)からなる9個のブロック画像の局所特徴量が用いられる場合で説明する。周期カウンタ22は、水平ブランキング期間の開始のタイミングでリセットされて0となり、その後、水平ブランキング期間において、周期カウント値prxとして、水平ブランキングカウント値hblank_countを、ブロック画像の縦方向の数のn=3で除算した余りの値0,1,2を繰り返し出力する。
【0049】
また、周期カウンタ22は、垂直ブランキング期間の開始のタイミングでリセットされて0となり、その後、垂直ブランキング期間において、周期カウント値prxとして、(垂直ブランキングカウント値vblank_count−1ブロックラインに含まれるブロック画像の数)を、ブロック画像の縦方向の数のn=3で除算した余りの値0,1,2を繰り返し出力する。なお、周期カウント値prxは、垂直ブランキングカウント値vblank_countが1ブロックラインに含まれるブロック画像の数以上の値となるまでは負数になるが、その期間、周期カウント値prxは使用されない。
【0050】
続いて、ライトアドレス生成回路24には、水平ブランキングカウント回路16から水平ブランキングカウント値hblank_countが入力され、垂直ブランキングカウント回路18から垂直ブランキングカウント値vblank_countが入力され、ブロックアドレス生成回路14からブロック画像の縦方向のインデックスqyが入力される。
ライトアドレス生成回路24は、水平ブランキングカウント値hblank_count、垂直ブランキングカウント値vblank_count、ブロック画像の縦方向のインデックスqyに基づいて、ブロック画像の局所特徴量をバッファ36に書き込むためのライトアドレスwaddrを生成する。
【0051】
続いて、リードアドレス生成回路26には、水平ブランキングカウント回路16から水平ブランキングカウント値hblank_countが入力され、垂直ブランキングカウント回路18から垂直ブランキングカウント値vblank_countが入力される。
リードアドレス生成回路26は、水平ブランキングカウント値hblank_countおよび垂直ブランキングカウント値vblank_countに基づいて、ブロック画像の局所特徴量をバッファ36から読み出すためのリードアドレスraddrを生成する。
【0052】
上記HDR画像のピクセルのアドレスx,y、ブロック画像のインデックスqx,qyおよびブロックアドレスrx,ry、水平ブランキングカウント値hblank_countおよび垂直ブランキングカウント値vblank_count、周期カウント値prx、ならびに、ライトアドレスwaddrおよびリードアドレスraddr等は、ピクセルクロックP_Clockに同期して生成される。
【0053】
続いて、ブロック単位特徴量算出回路28には、1ピクセル時間毎に、外部からHDR画像のピクセルのデータが入力される。また、ブロック単位特徴量算出回路28には、外部からブロック画像のサイズ情報が入力される。
ブロック単位特徴量算出回路28は、HDR画像を縦方向および横方向に分割した複数のブロック画像の各々について、ブロック画像の全てのピクセルのデータおよびブロック画像のサイズ情報に基づいて、ブロック画像の特徴量である局所特徴量を算出する。
【0054】
ブロック単位特徴量算出回路28には、HDR画像のピクセルのデータとして、HDR画像の1ライン目の左端から有効領域の右端までのピクセルのデータが順次入力される。以後同様にして、2ライン目から有効領域の最終ラインまでの各々のラインについて、左端から右端までのピクセルのデータが順次入力される。
【0055】
ブロック単位特徴量算出回路28は、ブロック画像の局所特徴量として、1ブロックライン時間毎に、ブロック画像の全てのピクセルのデータの平均値、中央値、最大値、最小値、最頻値または代表ピクセル値等を算出する。代表ピクセル値は、ブロック画像の全てのピクセルのうちの左上のピクセル、中央のピクセルというように、ブロック画像において、あらかじめ決められた位置(アドレス)のピクセルのデータである。
なお、1ブロックライン時間は、1ブロックラインの横方向のピクセル数×1ブロックラインの縦方向のピクセル数×ピクセルクロックP_Clockの1周期に相当する時間である。
【0056】
本実施形態の場合、HDR画像は縦方向のN=100個および横方向のM=100個からなる10000個のブロック画像に分割される。ブロック単位特徴量算出回路28は、現フレームのHDR画像における処理対象のピクセルを含むブロックラインに含まれるM=100個のブロック画像の各々について、ブロック画像の局所特徴量として、ブロック画像の全てのピクセルのデータの平均値を算出する。
【0057】
図4は、
図1に示すブロック単位特徴量算出回路および一時書き込みレジスタの構成を表す一実施形態のブロック図である。
図4に示すブロック単位特徴量算出回路28は、1ブロックラインに含まれる複数(M=100個)のブロック画像の数に一致する複数(M=100個)の累積加算器44および平均値算出回路46を備えている。
図4において、最上部から最下部までの複数の累積加算器は、1ブロックラインの左端から右端までの複数のブロック画像に対応する。
【0058】
累積加算器44は、加算器48と、レジスタ50と、を備えている。加算器48には、HDR画像のピクセルのデータおよびレジスタ50の出力が入力され、レジスタ50には、加算器48の出力が入力される。
累積加算器44は、1ピクセル時間毎に、加算器48によりブロック画像に属するピクセルのデータとレジスタ50の出力とを加算し、その加算値をレジスタ50に保持することを繰り返すことにより、ブロック画像の全てのピクセルのデータを累積加算する。
【0059】
平均値算出回路46には、累積加算器44から累積加算値が入力され、外部からブロック画像のサイズ情報が入力される。
平均値算出回路46は、ブロック画像のサイズ情報に基づいて、累積加算値を、ブロック画像の全ピクセル数で除算することにより、ブロック画像の全てのピクセルのデータの平均値を算出する。平均値算出回路46は、例えばブロック画像の全ピクセル数が2p(pは1以上の整数)である場合、累積加算値を下位ビット方向にpビットシフトすることにより容易に除算することができる。
【0060】
続いて、一時書き込みレジスタ30には、1ブロックライン時間単位で、ブロック単位特徴量算出回路28から1ブロックラインに含まれる複数のブロック画像、すなわちM=100の局所特徴量が入力される。
一時書き込みレジスタ30は、1ブロックライン時間単位で、ブロック単位特徴量算出回路28から同時に出力される、現フレームのHDR画像における処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量を保持し、現フレームのHDR画像における処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量を保持してから、補間処理で用いられるn個のブロック画像として、バッファ36に書き込まれた1フレーム前のHDR画像における処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量のバッファ36からの読み出しが完了するまでの一定のブロックライン時間遅延させて出力する。
【0061】
本実施形態の場合、一時書き込みレジスタ30は、
図4に示すように、1ブロックラインに含まれるM=100個のブロック画像の数に一致する100個のレジスタ52を有する第1および第2のレジスタ群54、56を備えている。これは、本実施形態の場合、補間処理に使用する縦方向のブロック画像数n=3であるため、n−1=2のレジスタ群を備えていることを意味する。第1のレジスタ群54には、ブロック単位特徴量算出回路28から同時に出力される、ブロックラインに含まれる複数(M=100個)のブロック画像の局所特徴量が入力される。第1のレジスタ群54の出力は、第2のレジスタ群56に入力される。
処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量は、一時書き込みレジスタ30により2ブロックライン時間遅延される。このため、後述するように、現フレームのHDR画像における処理対象のピクセルを含むブロック画像の補間処理で使用するバッファ36のデータは、その補間処理が終了するまで上書きされることがない。
【0062】
続いて、マルチプレクサ32には、一時書き込みレジスタ30から1ブロックラインに含まれる複数のブロック画像M=100の局所特徴量が入力される。
マルチプレクサ32は、一時書き込みレジスタ30から同時に出力される、ブロックラインに含まれる複数のブロック画像の局所特徴量を順次出力する。
【0063】
本実施形態の場合、マルチプレクサ32は、水平ブランキング期間および垂直ブランキング期間において、ブランキングカウント値blank_countに応じて、ブロックラインの左端から有効領域の右端までのブロック画像の局所特徴量を順次出力する。
【0064】
続いて、フィルタ回路34には、マルチプレクサ32からブロック画像の局所特徴量が入力される。
フィルタ回路34は、マルチプレクサ32から順次出力される、処理対象のピクセルを含むブロック画像およびその周囲のブロック画像の局所特徴量を用いてフィルタリング処理を行う。
【0065】
補間処理によりピクセルの局所特徴量は滑らかに変化するが、隣り合うブロック画像の局所特徴量が急激に変化する場合がある。フィルタ回路34は、隣り合う複数のブロック画像の局所特徴量の変化を滑らかにするローパスフィルタの役割を果たし、フィルタリング処理として、例えば処理対象のピクセルを含むブロック画像およびその周囲のブロック画像の局所特徴量を重み付けして加算平均等を算出する。
【0066】
なお、フィルタ回路34は、補間処理で用いられるブロック画像の局所特徴量の数よりも多い数のブロック画像の局所特徴量を用いてフィルタリング処理を行うことが好ましい。また、フィルタ回路34は必須の構成要素ではない。フィルタ回路34を備えていない場合、マルチプレクサ32から順次出力されるブロック画像の局所特徴量がバッファ36に順次書き込まれる。
【0067】
続いて、バッファ36には、1ピクセル時間単位で、フィルタ回路34からブロック画像の局所特徴量が入力される。また、バッファ36には、ライトアドレス生成回路24からライトアドレスwaddrが入力され、リードアドレス生成回路26からリードアドレスraddrが入力され、外部からライトイネーブル信号wenおよびリードイネーブル信号renが入力される。
バッファ36は、1ピクセル時間単位で、フィルタ回路34から出力される、現フレームのHDR画像の複数のブロック画像の局所特徴量を、ライトイネーブル信号wenに同期して、ライトアドレスwaddrにより指定されるアドレスに保持する(書き込む)。また、バッファ36は、1フレーム前のHDR画像のブロック画像の局所特徴量を、リードイネーブル信号renに同期して、リードアドレスraddrにより指定されるアドレスから出力する(読み出す)。詳細の動作については、後述する。
【0068】
本実施形態の場合、処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量は、
図6に示すように、そのブロックラインに含まれる最後のラインの後ろの水平ブランキング期間において、読出し動作の完了後に、バッファ36に書き込まれる。
【0069】
ブロック画像の横方向および縦方向のピクセルサイズ*ブロック画像の横方向および縦方向の数がHDR画像の横方向および縦方向のピクセル数と等しくない場合、つまり、ブロック画像のピクセルサイズに満たないブロック画像がHDR画像の右端または下端に存在する場合、ブロック画像のピクセルサイズに満たないブロック画像の局所特徴量として、その左側または上側のブロック画像の局所特徴量が使用されてもよい。そのため、1フレームの最後では、水平ブランキング期間において、一時書き込みレジスタ30から出力される、ブロックラインに含まれる複数のブロック画像の局所特徴量のバッファ36への書き込みをせず、フレームの垂直有効信号が入力される場合には、それが無効になった場合に、あるいは垂直同期信号VSYNCのみが入力される場合には、それが有効になった場合に、つまり、垂直ブランキング期間において、垂直ブランキングカウント値vblank_countのカウントを開始するのと同時にバッファ36への書き込みを開始するのでもよい。
【0070】
一方、補間処理で用いられるブロック画像の、1フレーム前の局所特徴量は、補間処理において複数のブロック画像の局所特徴量が同時に使用されることを考慮して、さらにはアドレス計算に必要な時間およびバッファ36からのデータの読み出しのレイテンシ等を考慮して、処理対象のピクセルを含むブロック画像に対応する、補間処理で用いられる複数のブロック画像の局所特徴量が実際に使用される前に、バッファ36から先読みされる。
【0071】
図7に示すように、補間処理で使用するブロックサイズが、m=3、n=3の場合、処理対象のピクセルを含むブロック画像の3つ前のブロック画像のタイミングにおいて、9個のブロック画像のうちの左側の縦方向の3個のブロック画像0、3、6の1フレーム前の局所特徴量が読み出される。また、2つ前のブロック画像のタイミングにおいて、中央の縦方向の3個のブロック画像1、4、7の1フレーム前の局所特徴量が読み出され、1つ前のブロック画像のタイミングにおいて、右側の縦方向の3個のブロック画像2、5、8の1フレーム前の局所特徴量が読み出される。縦方向の3個のブロック画像の局所特徴量の読み出しは、ブロックラインに含まれるライン毎に、3つ前のブロック画像から1つ前のブロック画像までの各ブロック画像のタイミングにおいて、ブロックアドレスrx=0から3ピクセルクロックP_Clockで行われる。
【0072】
なお、バッファ36は、HDR画像の全てのブロック画像の局所特徴量を保持する容量を備えるものであれば特に限定されないが、本実施形態の場合、SRAM(Static Random Access Memory)が使用されている。
【0073】
続いて、
図5に示すように、一時読み出しレジスタ38には、1ピクセル時間単位で、バッファ36からブロック画像の1フレーム前の局所特徴量が入力され、周期カウンタ22から周期カウント値prxが入力され、ブロックアドレス生成回路14から横方向のブロックアドレスrxが入力される。
一時読み出しレジスタ38は、mおよびnを2以上の整数とし、tを4以上の整数として、処理対象のピクセルを含むブロック画像およびその周囲のブロック画像の1フレーム前の局所特徴量の間の補間処理で用いられる、横方向のm個(
図5では、m=3)および縦方向のn個(
図5では、n=3)のブロック画像からなるt個(
図5では、t=9)のブロック画像のうちの縦方向の3個のブロック画像に対応する3個のレジスタ58を有する。一時読み出しレジスタ38は、周期カウント値prxおよび横方向のブロックアドレスrxに基づいて、1ピクセル時間単位で、バッファ36から順次読み出される、縦方向の3個のブロック画像の局所特徴量を3個のレジスタ58に順次保持する。一時読み出しレジスタ38からは、1ブロック時間毎に、3個のレジスタ58に保持された3個のブロック画像の局所特徴量が同時に出力される。
【0074】
本実施形態の場合、補間処理で用いられるブロック画像は9個、その縦方向のブロック画像の数は3個であり、
図5に示すように、一時読み出しレジスタ38は3個のレジスタ58を備えている。一時読み出しレジスタ38は、例えばブロックアドレスrx=0、1、2のタイミングでバッファ36から読み出される、縦方向の3個のブロック画像の局所特徴量を、周期カウント値prx=0、1、2に応じて3個のレジスタ58に順次保持する。
【0075】
続いて、ブロックレジスタ40には、1ブロック時間毎に、一時読み出しレジスタ38から3個のブロック画像の局所特徴量が同時に入力される。また、ブロックレジスタ40には、マルチプレクサ20からブランキングカウント値blank_countが入力され、ブロックアドレス生成回路14から横方向のブロックアドレスrxが入力される。
ブロックレジスタ40は、9個のブロック画像のうちの縦方向の3個のブロック画像に対応する3個のレジスタ60からなるレジスタ群62を、9個のブロック画像のうちの横方向の3個のブロック画像に対応する3個有する。つまり、ブロックレジスタ40は、9個のレジスタ60を有する。ブロックレジスタ40は、1ブロック時間毎に、一時読み出しレジスタ38から同時に出力される、縦方向の3個のブロック画像の局所特徴量を、3個のレジスタ群62の全てに書き込むまたは順次シフトして保持する。ブロックレジスタ40からは、9個のレジスタ60に保持された9個のブロック画像の局所特徴量が同時に出力される。
【0076】
ブランキングカウント値blank_count=0の場合、つまり、水平ブランキング期間および垂直ブランキング期間の開始タイミングにおいて、縦方向の3個のブロック画像の局所特徴量が一時読み出しレジスタ38から同時に出力され、ブロックレジスタ40の3個のレジスタ群62の全てに書き込まれる。つまり、3個のレジスタ群62には、同じ縦方向の3個のブロック画像の局所特徴量が書き込まれる。
【0077】
また、ブロックアドレスrx=0の場合、つまり、ブロック画像の開始タイミングにおいて、縦方向の3個のブロック画像の局所特徴量が一時読み出しレジスタ38から同時に出力され、ブロックレジスタ40の3個のレジスタ群62に順次シフトされる。つまり、隣り合う2つのブロック画像に対応する3個のレジスタ群62のうちの2個のレジスタ群62に保持されるブロック画像の局所特徴量は同じになる。
【0078】
本実施形態の場合、
図5に示すように、補間処理で用いられるブロック画像は、処理対象のピクセルを含むブロック画像およびその周囲の8個のブロック画像からなる、縦方向の3個および横方向の3個からなる9個のブロック画像0〜8である。ブロックレジスタ40は、縦方向の3個のブロック画像の数に一致する3個のレジスタ60を有するレジスタ群62を、横方向の3個のブロック画像の数に一致する3個有する。つまり、ブロックレジスタ90は、縦方向の3個および横方向の3個からなる9個のレジスタ60を備えている。
【0079】
図5に示すブロックレジスタ40において、「4」は、
図7に示す処理対象のピクセルを含むブロック画像の1フレーム前の局所特徴量を表し、「1」および「7」は、その1ブロックライン時間前および1ブロックライン時間後のブロック画像の1フレーム前の局所特徴量を表す。「1、4、7」は、処理対象のピクセルを含む縦方向の3個のブロック画像の1フレーム前の局所特徴量、「2、5、8」は、処理対象のピクセルを含むブロック画像の右側の縦方向の3個のブロック画像の1フレーム前の局所特徴量、「0、3、6」は、処理対象のピクセルを含むブロック画像の左側の縦方向の3個のブロック画像の1フレーム前の局所特徴量を表す。
【0080】
なお、本実施形態の場合、補間処理で用いられる9個のブロック画像の1フレーム前の局所特徴量のみを先読みするため、水平ブランキング期間において、縦方向のn個のブロック画像の局所特徴量をブロックレジスタ40のm個のレジスタ群の全てに書き込み、シフトしない。しかし、より多くのブロック画像の局所特徴量を先読みする場合、縦方向の複数個のブロック画像の局所特徴量をブロックレジスタ40の複数個のレジスタ群に書き込んだ後、さらにシフトする場合もあり得る。
【0081】
続いて、補間回路42には、1ブロック時間毎に、ブロックレジスタ40からt個のブロック画像の1フレーム前の局所特徴量が入力され、画像アドレス生成回路12から現フレームのHDR画像のピクセルのアドレスx,yが入力される。
補間回路42は、HDR画像のピクセルのアドレスx,yに基づいて、1ブロック時間毎に、ブロックレジスタ40から同時に出力される、補間処理で用いられるt個のブロック画像の局所特徴量の間を補間してHDR画像のピクセルの局所特徴量を算出する。
【0082】
本実施形態の場合、9個のブロック画像の局所特徴量を用いて補間処理が行われる。補間の方法は特に限定されないが、例えば処理対象のピクセルを含むブロック画像およびその左右の2個のブロック画像からなる横方向の3個のブロック画像の局所特徴量の間を補間し、同様にその1ブロックライン時間前および1ブロックライン時間後の横方向の3個のブロック画像の間の局所特徴量の間をそれぞれ補間する。また、処理対象のピクセルを含むブロック画像およびその上下の2個のブロック画像からなる縦方向の3個のブロック画像の局所特徴量の間を補間し、同様にその左側および右側の縦方向の3個のブロック画像の間の局所特徴量の間をそれぞれ補間する。
【0083】
なお、9個のブロック画像の局所特徴量の全てを用いて補間処理を行ってもよいし、あるいは、処理対象のピクセルを含むブロック画像およびその周囲の1以上のブロック画像の局所特徴量を用いて補間処理を行ってもよい。
【0084】
以下、補間処理について一例を挙げて説明する。
【0085】
本実施形態の場合、
図9に示すように、ブロック画像のサイズ情報をもとに、横方向および縦方向の中央位置においてブロック画像を分割することにより、ブロック画像を4分割した第I〜IV象限について、それぞれ異なる補間処理が行われる。
【0086】
補間処理で用いられる基本演算式は以下の通りである。
Interpolate(a, b, r, w)=(a*(w-r)+b*r)/w
(r>w/2)の場合には、以下の演算式が用いられる。
Interpolate3(a, b, c, r, w)=Interpolate(b, c, r-w/2, w)
(r≦w/2)の場合には、以下の演算式が用いられる。
Interpolate3(a, b, c, r, w)=Interpolate(a, b, r+w/2, w)
ここで、a、b、cは、処理対象のピクセルの位置により算出される重み付け係数であり、隣接するブロック画像の補間値を調整する。rはブロック画像における処理対象のピクセルのブロックアドレスrx,ryであり、wはブロック画像における最大のブロックアドレスwx,wyである。InterpolateおよびInterpolate3は、補間処理を行う関数を表す。
【0087】
第I象限(rx>wx/2, ry≦wy/2)
Step1:補間値=Interpolate3(Interpolate(block[1], block[2], rx-wx/2, wx), Interpolate(block[4], block[5], rx-wx/2, wx), Interpolate(block[7], block[8], rx-wx/2, wx), ry, wy)
Step2:補間値=Interpolate(Interpolate(block[1], block[2], rx-wx/2, wx), Interpolate(block[4], block[5], rx-wx/2, wx), ry+wy/2, wy)
Step3:補間値=(Interpolate(block[1], block[2], rx-wx/2, wx)*(wy-(ry+wy/2))+Interpolate(block[4], block[5], rx-wx/2, wx)*(ry+wy/2))/wy
Step4:補間値=((block[1]*(wx-(rx-wx/2))+block[2]*(rx-wx/2))/wx)*(wy-(ry+wy/2))+((block[4]*(wx-(rx-wx/2))+block[5]*(rx-wx/2))/wx)*(ry+wy/2))/wy
すなわち、第I象限において、ブロック画像における最大のブロックアドレスwx,wy、つまり、ブロック画像のサイズ情報に基づいて、ブロック画像における処理対象のピクセルのブロックアドレスrx,ry、つまり、ブロック画像内における処理対象のピクセルの位置情報により算出される重みづけ係数と、隣接するブロック画像の局所特徴量とを演算することにより、処理対象のピクセルの補間値を算出する。
【0088】
第II象限(rx≦wx/2, ry≦wy/2)
Step1:補間値=Interpolate3(Interpolate(block[0], block[1], rx+wx/2, wx), Interpolate(block[3], block[4], rx+wx/2, wx), Interpolate(block[6], block[7], rx+wx/2, wx), ry, wy)
Step2:補間値=Interpolate(Interpolate(block[0], block[1], rx+wx/2, wx), Interpolate(block[3], block[4], rx+wx/2, wx), ry+wy/2, wy)
【0089】
第III象限(rx≦wx/2, ry>wy/2)
Step1:補間値=Interpolate3(Interpolate(block[0], block[1], rx+wx/2, wx), Interpolate(block[3], block[4], rx+wx/2, wx), Interpolate(block[6], block[7], rx+wx/2, wx), ry, wy)
Step2:補間値=Interpolate(Interpolate(block[3], block[4], rx+wx/2, wx), Interpolate(block[6], block[7], rx+wx/2, wx), ry-wy/2, wy)
【0090】
第IV象限(rx>wx/2, ry>wy/2)
Step1:補間値=Interpolate3(Interpolate(block[1], block[2], rx-wx/2, wx), Interpolate(block[4], block[5], rx-wx/2, wx), Interpolate(block[7], block[8], rx-wx/2, wx), ry, wy);
Step2:補間値=Interpolate(Interpolate(block[4], block[5], rx-wx/2, wx), Interpolate(block[7], block[8], rx-wx/2, wx), ry-wy/2, wy)
【0091】
補間値は、現フレームのHDR画像のピクセルの局所特徴量であり、block[0]〜block[8]は、t=9個の1フレーム前のブロック画像の局所特徴量である。なお、第II〜IV象限において、Step2からStep3,4への展開方法は第I象限の場合と同様であるから、その記載を省略している。
【0092】
次に、局所特徴量算出回路10の動作を説明する。
【0093】
局所特徴量算出回路10においては、画像アドレス生成回路12により、データイネーブル信号DEおよび垂直同期信号VSYNCに基づいて、現フレームのHDR画像における処理対象のピクセルのアドレスx,yが生成される。
【0094】
続いて、ブロックアドレス生成回路14により、現フレームのHDR画像のピクセルのアドレスx,yおよびブロック画像のサイズ情報に基づいて、現フレームのHDR画像における処理対象のピクセルを含むブロック画像のインデックスqx,qyおよびブロックアドレスrx,ryが生成される。
【0095】
また、水平ブランキングカウント回路16により、データイネーブル信号DEに基づいて、水平ブランキング期間の開始タイミングからピクセルクロックP_Clockをカウントした水平ブランキングカウント値hblank_countが出力される。
垂直ブランキングカウント回路18により、垂直同期信号VSYNCに基づいて、垂直ブランキング期間の開始タイミングからピクセルクロックP_Clockをカウントした垂直ブランキングカウント値vblank_countが出力される。
【0096】
続いて、マルチプレクサ20により、垂直同期信号VSYNCに基づいて、水平ブランキングカウント値hblank_countと垂直ブランキングカウント値vblank_countとが切り替えられ、垂直ブランキング期間において、ブランキングカウント値blank_countとして垂直ブランキングカウント値vblank_countが出力され、水平ブランキング期間において、ブランキングカウント値blank_countとして水平ブランキングカウント値hblank_countが出力される。
【0097】
続いて、周期カウンタ22により、ブランキングカウント値blank_countが動作する期間において、補間処理で用いられるブロック画像の縦方向の数に同期して、周期カウント値prx=0、1、2が繰り返し出力される。
【0098】
また、ライトアドレス生成回路24により、水平ブランキングカウント値hblank_count、垂直ブランキングカウント値vblank_countおよびブロック画像の縦方向のインデックスqyに基づいて、バッファ36のライトアドレスwaddrが生成される。
リードアドレス生成回路26により、水平ブランキングカウント値hblank_countおよび垂直ブランキングカウント値vblank_countに基づいて、バッファ36のリードアドレスraddrが生成される。
【0099】
一方、ブロック単位特徴量算出回路28により、現フレームのHDR画像における処理対象のピクセルを含むブロックラインに含まれるM=100個のブロック画像の各々について、ブロック画像の全てのピクセルのデータおよびブロック画像のサイズ情報に基づいて、ブロック画像の局所特徴量として、ブロック画像の全てのピクセルのデータの例えば平均値が算出される。
【0100】
続いて、ブロック単位特徴量算出回路28から同時に出力される、現フレームのHDR画像における処理対象のピクセルを含むブロックラインに含まれるM=100個のブロック画像の局所特徴量が、一時書き込みレジスタ30に保持される。
【0101】
ここで、局所特徴量算出回路10においては、1フレーム前のHDR画像のブロック画像の局所特徴量のバッファ36からの読み出し、および、現フレームのHDR画像のブロック画像の局所特徴量のバッファ36への書き込みが順次行われる。ここで、補間処理で用いられるブロック画像のサイズ、m*nに相当する数のレジスタを保有しているため、書き込みと読出しが同時に行われることはない。また、処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量は、水平ブランキング期間または垂直ブランキング期間においてバッファ36に書き込まれる。詳細は後述する。
【0102】
本実施形態の場合、補間処理において、m=3、n=3、t=9としているため、処理対象のピクセルを含むブロック画像およびその周囲の8個のブロック画像からなる9個のブロック画像の局所特徴量がバッファ36から順次読み出される。つまり、現フレームのHDR画像における処理対象のピクセルを含むブロックラインおよびその1ブロックライン時間前および1ブロックライン時間後のブロックラインのブロック画像の1フレーム前の局所特徴量がバッファ36から読み出される。
【0103】
現フレームのHDR画像における処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量を、その計算終了の直後にバッファ36に保存すると、補間処理で用いられる1フレーム前のHDR画像のブロック画像の局所特徴量が現フレームのHDR画像のブロック画像の局所特徴量で上書きされる。従って、補間処理での使用が終わるまでの間、1フレーム前のHDR画像のブロック画像の局所特徴量を現フレームのHDR画像のブロック画像の局所特徴量で上書きして消さないように、現フレームのHDR画像のブロック画像の局所特徴量は一時書き込みレジスタ30に保持される。
【0104】
図10に示すように、現フレームのHDR画像における処理対象のピクセルを含むブロック画像がブロック画像4である場合、
図10に示される破線よりも上側にある現フレームのHDR画像のブロック画像0,1,2の局所特徴量の計算は既に終了している。また、ブロック画像3,4,5の局所特徴量は計算中であり、ブロック画像6,7,8の局所特徴量はまだ計算が開始されていない状態である。
【0105】
もしもブロック画像0,1,2の局所特徴量が、その計算終了の直後にバッファ36に上書きされると、現フレームのHDR画像における処理対象のピクセルの補間処理で用いられるブロック画像0〜8のうち、ブロック画像0,1,2の局所特徴量は現フレームのHDR画像のブロック画像の局所特徴量で上書きされることとなり、その他のブロック画像3,4,5およびブロック画像6,7,8の局所特徴量は1フレーム前のHDR画像のブロック画像の局所特徴量となってしまう。
【0106】
つまり、補間処理で用いられるブロック画像の局所特徴量として、異なるフレームのHDR画像のブロック画像の局所特徴量が混在することになる。異なるフレームのHDR画像の局所特徴量が混在した状態で補間処理を行なうのは問題があるため、この問題を回避するために、現フレームのHDR画像の計算済みのブロック画像0,1,2の局所特徴量は、一時書き込みレジスタ30に一定のブロックライン時間保持される。
【0107】
従って、処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量は、そのブロックラインに含まれる最後のラインの後ろの水平ブランキング期間においてバッファ36に書き込むことができず、処理対象のピクセルを含むブロックラインの次のブロックラインに含まれる最後のラインの後ろの水平ブランキング期間以降の水平ブランキング期間または垂直ブランキング期間においてバッファ36に書き込む必要がある。
【0108】
一時書き込みレジスタ30においては、処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量が第1のレジスタ群54に保持され、次のブロックラインのタイミングで第1のレジスタ群54の出力が第2のレジスタ群56にシフトされる。これにより、一時書き込みレジスタ30に保持された複数のブロック画像の局所特徴量は、2ブロックライン時間遅延されて出力される。
【0109】
なお、補間処理で用いられる周辺のブロック画像の数が増えると、一時書き込みレジスタ30の段数、つまり、現フレームのHDR画像のブロック画像の局所特徴量を保持しておく時間も増える。例えば、補間処理において縦方向のn=5個および横方向のm=5個からなるt=25個のブロック画像の局所特徴量を用いる場合、一時書き込みレジスタ30の段数は、縦方向の3個および横方向の3個のブロック画像の場合よりも横方向に2段増え、現フレームのHDR画像のブロック画像の局所特徴量は4ブロックライン時間保持される。
【0110】
続いて、マルチプレクサ32により、ブランキングカウント値blank_countに応じて、一時書き込みレジスタ30から同時に出力されるM=100個のブロック画像の局所特徴量が順次出力される。
【0111】
続いて、フィルタ回路34により、マルチプレクサ32から順次出力される、処理対象のピクセルを含むブロック画像およびその周囲のブロック画像の局所特徴量を用いてフィルタリング処理が行われる。
【0112】
続いて、フィルタ回路34から出力される、現フレームのHDR画像における処理対象のピクセルを含むブロックラインのM=100個のブロック画像の局所特徴量が、ライトイネーブル信号wenに同期して、ライトアドレスwaddrにより指定されるバッファ36のアドレスに順次書き込まれる。
【0113】
一方、バッファ36に保持されている、1フレーム前のHDR画像に含まれる複数のブロック画像の局所特徴量の中から、次の処理対象のピクセルを含むブロック画像に対応する、補間処理で用いられる複数のブロック画像の局所特徴量が、リードイネーブル信号renに同期して、リードアドレスraddrにより指定されるバッファ36のアドレスから順次読み出される。
【0114】
ここで、現フレームのHDR画像の最初のブロックラインから、最後のブロックラインの一定のブロックライン時間前までの処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量は、一定のブロックライン時間遅延されたブロックラインに含まれる最後のラインの後ろの水平ブランキング期間において、一定のブロックライン時間遅延されたブロックラインの次のブロックラインに含まれる左端のブロック画像に対応する、現フレームのHDR画像における処理対象のピクセルの補間処理で用いられる複数のブロック画像の1フレーム前の局所特徴量がバッファ36から読み出された後に、バッファ36に書き込まれる。
【0115】
本実施形態の場合、
図8に示すように、処理対象のピクセルを含むブロックラインに含まれるM=100個のブロック画像の局所特徴量は、2ブロックライン時間遅延されたブロックラインに含まれる最後のラインの後ろの水平ブランキング期間において、その次のブロックラインの左端のブロック画像に対応する、補間処理で用いられる6個のブロック画像0、3、6および1、4、7の局所特徴量がバッファ36から読み出された後、バッファ36に書き込まれる例を示しているが、ブロックライン時間の遅延量は、これに限られず、垂直ブランキング期間にすべての処理が完了すればよい。
【0116】
本例では、6個のブロック画像0、3、6およびブロック画像1、4、7の局所特徴量の読み出しは、ブロックラインに含まれるライン毎に、水平ブランキング期間において、その開始タイミングから6ピクセルクロックP_Clockで行われる。また、M=100個のブロック画像の局所特徴量の書き込みは、6個のブロック画像0、3、6および1、4、7の局所特徴量の読み出しが完了した後、M=100ピクセルクロックP_Clockで行われる。
なお、
図8は、1ブロックラインに4ラインが含まれる場合の例である。ブロックラインに含まれる最後のラインに対応するブロック画像の局所特徴量の読み出しのタイミングのみが記載さている箇所も4ラインの各々について同様に読み出しが行われる。
【0117】
また、最後のブロックラインから一定のブロックライン時間前までの処理対象のピクセルを含むブロックラインに含まれる複数のブロック画像の局所特徴量は、一定のブロックライン時間遅延された垂直ブランキング期間において、バッファ36に書き込まれた後、次のフレームのHDR画像の左上のブロック画像に対応する、補間処理で用いられる複数のブロック画像の局所特徴量がバッファ36から読み出される。
【0118】
本実施形態の場合、
図8に示すように、処理対象のピクセルを含むブロックラインに含まれるM=100個のブロック画像の局所特徴量が、1ブロックライン時間遅延された垂直ブランキング期間において、バッファ36に書き込まれた後、次のフレームのHDR画像の左上のブロック画像に対応する、補間処理で用いられる4個のブロック画像3、6および4、7の局所特徴量がバッファ36から読み出される例である。
【0119】
M=100個のブロック画像の局所特徴量の書き込みは、垂直ブランキング期間において、その開始タイミングから100ピクセルクロックP_Clockで行われる。また、4個のブロック画像3、6および4、7の局所特徴量の読み出しは、100個のブロック画像の局所特徴量の書き込みが完了した後、ブロックラインに含まれるライン毎に、4ピクセルクロックP_Clockで行われる。
【0120】
続いて、バッファ36から順次読み出される、補間処理で用いられる9個のブロック画像のうちの処理対象のピクセルを含む縦方向の3個のブロック画像の局所特徴量が、一時読み出しレジスタ38の3個のレジスタに順次保持される。
処理対象のピクセルを含む縦方向の3個のブロック画像の局所特徴量が一時読み出しレジスタ38に保持された後、この3個のブロック画像の局所特徴量は、一時読み出しレジスタ38から同時に出力される。
【0121】
続いて、一時読み出しレジスタ38から同時に出力される、処理対象のピクセルを含む縦方向の3個のブロック画像の局所特徴量が、次のブロック画像の開始タイミングにおいて、ブロックレジスタ40の3個のレジスタ群に順次シフトされる。
処理対象のピクセルを含むブロック画像に対応する、補間処理で用いられる9個のブロック画像の局所特徴量がブロックレジスタ40に保持された後、この9個のブロック画像の局所特徴量は、ブロックレジスタ40から同時に出力される。
【0122】
ここで、次の処理対象のピクセルを含むブロック画像がブロックラインの左端のブロック画像である場合、
図8に示すように、ブロックラインに含まれるライン毎に、次の処理対象のピクセルを含むブロックラインの前の水平ブランキング期間において、左端のブロック画像を含む縦方向の3個(n個)のブロック画像の局所特徴量がバッファ36から順次読み出されて一時読み出しレジスタ38に順次保持される。
続いて、一時読み出しレジスタ38から同時に出力される、左端のブロック画像を含む縦方向の3個のブロック画像の局所特徴量がブロックレジスタ40の3個(m個)のレジスタ群62の全てに書き込まれる。
その後、左端のブロック画像の右側のブロック画像から、左端のブロック画像に対応する、補間処理で用いられる横方向の3個(m個)のブロック画像のうちの右側(右端)のブロック画像までのi個のブロック画像のうちのj番目(1≦j≦i)のブロック画像を含む縦方向の3個のブロック画像の局所特徴量がバッファ36から順次読み出されて一時読み出しレジスタ38に順次保持され、一時読み出しレジスタ38から同時に出力される、j番目のブロック画像を含む縦方向の3個のブロック画像の局所特徴量がブロックレジスタ40の3個のレジスタ群62に順次シフトされることが、i個のブロック画像のうちの1番目のブロック画像からi番目のブロック画像まで繰り返される。
【0123】
次の処理対象のピクセルを含むブロック画像がブロックラインの左端のブロック画像である場合、処理対象のピクセルを含むブロック画像に対応する9個のブロック画像のうちの左側の縦方向の3個のブロック画像は存在しないが、上記の処理により、存在しない左側の縦方向の3個のブロック画像の局所特徴量として、左端のブロック画像を含む縦方向の3個のブロック画像の局所特徴量が使用される。
【0124】
次の処理対象のピクセルを含むブロック画像がブロックラインの左端のブロック画像の右側のブロック画像から、ブロックラインの右端のブロック画像の(m−1)/2個前まで、本実施形態においては1個前までのブロック画像のいずれかである場合、ブロックラインに含まれるライン毎に、次の処理対象のピクセルを含むブロック画像の1つ前のブロック画像のタイミングにおいて、次の処理対象のピクセルを含むブロック画像に対応する横方向の3個のブロック画像のうちの右側(右端)の縦方向の3個のブロック画像の局所特徴量がバッファ36から順次読み出されて一時読み出しレジスタ38に順次保持される。
そして、処理対象のピクセルが次の処理対象のピクセルを含むブロック画像に移動するタイミングで、一時読み出しレジスタ38から同時に出力される、横方向の3個のブロック画像のうちの右側の縦方向の3個のブロック画像の局所特徴量がブロックレジスタ40の3個のレジスタ群にシフトされる。
【0125】
次の処理対象のピクセルを含むブロック画像がブロックラインの右端のブロック画像から、ブロックラインの右端のブロック画像の(m−1)/2個のブロック画像のいずれかである場合、つまり、本実施形態においてはブロックラインの右端のブロック画像である場合、ブロックラインに含まれるライン毎に、次の処理対象のピクセルを含むブロック画像の1つ前のブロック画像のタイミングにおいて、次の処理対象のピクセルを含むブロック画像に対応する横方向の3個のブロック画像のうちの右側(右端)の縦方向の3個のブロック画像の局所特徴量がバッファから読み出されることなく、処理対象のピクセルが次の処理対象のピクセルを含むブロック画像に移動するタイミングで、一時読み出しレジスタ38から同時に出力される縦方向の3個のブロック画像の局所特徴量がブロックレジスタの3個のレジスタ群にシフトされる。
【0126】
例えば、処理対象のピクセルを含むブロック画像がブロックラインの右端のブロック画像である場合、処理対象のピクセルを含むブロック画像に対応する9個のブロック画像のうちの右側の縦方向の3個のブロック画像は存在しないが、上記の処理により、存在しない右側の縦方向の3個のブロック画像の局所特徴量として、右端のブロック画像を含む縦方向の3個のブロック画像の局所特徴量が使用される。
ブロックラインの右端のブロック画像から、ブロックラインの右端のブロック画像の(m−1)/2個のブロック画像のうちの右端のブロック画像以外のブロック画像についても同様である。
【0127】
処理対象のピクセルを含むブロック画像がHDR画像の左上、右上、左下および右下のブロック画像である場合も同様に処理される。
【0128】
そして、補間回路42により、ブロックレジスタ40から同時に出力される、補間処理で用いられるt=9個の1フレーム前のHDR画像のブロック画像の局所特徴量の間が補間されて現フレームのHDR画像のピクセルの局所特徴量が算出される。
【0129】
局所特徴量算出回路10においては、HDR画像の全てのピクセルの局所特徴量ではなく、HDR画像における複数のブロック画像の局所特徴量をバッファ36に保持するため、局所特徴量を保持するために必要なバッファ36のメモリ容量を大幅に削減することができる。従って、回路規模を大幅に削減し、消費電力およびコストを大幅に低減することができる。
【0130】
また、補間処理で用いられる縦方向のn個のブロック画像の局所特徴量をブロックレジスタ40のm個のレジスタ群62に順次シフトし、t個のブロック画像の局所特徴量をブロックレジスタ40から同時に出力することにより、隣り合う2つのブロック画像において、(m−1)個のレジスタ群62に保持される局所特徴量を共通に使用して、バッファ36からブロック画像の局所特徴量を読み出す回数を大幅に減らし、かつ計算時間を大幅に短縮することができる。
【0131】
なお、例えばバッファ36のライトアドレスおよびリードアドレス等は、専用のハードウェアに限らず、CPU(Central Processing Unit)等のマイクロプロセッサを利用して生成することもできる。
【0132】
図11は、本発明に係る局所特徴量算出回路の構成を表す別の実施形態のブロック図である。
図11に示す局所特徴量算出回路11は、
図1に示す局所特徴量算出回路10において、ライトアドレス生成回路24およびリードアドレス生成回路26の代わりに、CPU64を備えている。
【0133】
つまり、局所特徴量算出回路11は、画像アドレス生成回路12と、ブロックアドレス生成回路14と、水平ブランキングカウント回路16と、垂直ブランキングカウント回路18と、マルチプレクサ20と、周期カウンタ22と、ブロック単位特徴量算出回路28と、一時書き込みレジスタ30と、マルチプレクサ32と、フィルタ回路34と、バッファ36と、一時読み出しレジスタ38と、ブロックレジスタ40と、補間回路42と、CPU64と、を備えている。
【0134】
以下、CPU64について説明し、これ以外の他の構成要素の繰り返しの説明は省略する。
【0135】
CPU64には、画像アドレス生成回路12から出力されるHDR画像のピクセルのアドレスx,y、ブロックアドレス生成回路14から出力されるブロック画像の縦方向のインデックスqy、水平ブランキングカウント回路16から出力される水平ブランキングカウント値hblank_count、垂直ブランキングカウント回路18から出力される垂直ブランキングカウント値vblank_count、および、マルチプレクサ20から出力されるブランキングカウント値blank_countが入力される。
【0136】
CPU64は、HDR画像のピクセルのアドレスx,y、ブロック画像の縦方向のインデックスqy、水平ブランキングカウント値hblank_countおよび垂直ブランキングカウント値vblank_countに基づいて、バッファ36のライトアドレスwaddr、ライトイネーブル信号wen、リードアドレスraddrおよびリードイネーブル信号renを生成する。また、CPU64は、ブランキングカウント値blank_countおよびブロック画像のサイズ情報等を出力する。
【0137】
このように、CPU64を使用することにより、バッファ36のライトアドレスwaddrおよびリードアドレスraddr等の生成の他、各部位の制御をしたり、他の回路とCPU64を共通に使用したりして、より柔軟に設計を行うことができる。一方、ブロック単位特徴量算出回路28、一時書き込みレジスタ30、一時読み出しレジスタ38およびブロックレジスタ40等は、複数のデータを同時に処理して同時に出力する必要があるため、専用のハードウェアで構成する方が望ましい。
【0138】
本発明の局所特徴量算出回路は、例えばブロック画像の局所特徴量を用いてトーンマッピングを行うトーンマッピング回路において好適に利用可能であるが、トーンマッピング回路に限らず、ブロック画像の局所特徴量を用いる各種の回路においても利用可能である。また、本発明の局所特徴量算出回路は、HDR画像に限らず、各種の画像に対して適用可能である。
【0139】
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。