JP2020046817A - 画像処理装置、画像処理方法及び画像処理プログラム - Google Patents

画像処理装置、画像処理方法及び画像処理プログラム Download PDF

Info

Publication number
JP2020046817A
JP2020046817A JP2018173581A JP2018173581A JP2020046817A JP 2020046817 A JP2020046817 A JP 2020046817A JP 2018173581 A JP2018173581 A JP 2018173581A JP 2018173581 A JP2018173581 A JP 2018173581A JP 2020046817 A JP2020046817 A JP 2020046817A
Authority
JP
Japan
Prior art keywords
line
image processing
input
buffer
pixels
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
JP2018173581A
Other languages
English (en)
Other versions
JP7170478B2 (ja
Inventor
隆二 羽田
Ryuji Haneda
隆二 羽田
篤司 増田
Atsushi Masuda
篤司 増田
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.)
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage 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 Toshiba Corp, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Priority to JP2018173581A priority Critical patent/JP7170478B2/ja
Priority to CN201910109701.1A priority patent/CN110910301B/zh
Priority to EP19159085.0A priority patent/EP3627438A1/en
Priority to US16/286,261 priority patent/US11076092B2/en
Publication of JP2020046817A publication Critical patent/JP2020046817A/ja
Application granted granted Critical
Publication of JP7170478B2 publication Critical patent/JP7170478B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/14Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components sensitive to infrared radiation, light, electromagnetic radiation of shorter wavelength or corpuscular radiation and specially adapted either for the conversion of the energy of such radiation into electrical energy or for the control of electrical energy by such radiation
    • H01L27/144Devices controlled by radiation
    • H01L27/146Imager structures
    • H01L27/14601Structural or functional details thereof
    • H01L27/14603Special geometry or disposition of pixel-elements, address-lines or gate-electrodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/40Extracting pixel data from image sensors by controlling scanning circuits, e.g. by modifying the number of pixels sampled or to be sampled
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/71Charge-coupled device [CCD] sensors; Charge-transfer registers specially adapted for CCD sensors
    • H04N25/75Circuitry for providing, modifying or processing image signals from the pixel array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)

Abstract

【課題】複数ライン期間で処理に必要なサイクル数を平滑化することにより、回路に要求される演算速度を低減させる。【解決手段】 実施形態の画像処理装置は、複数のラインバッファにより構成され、入力画像を構成する複数の画素がライン単位で入力され、入力された画素を記憶する入力ラインバッファと、前記入力ラインバッファの各ラインバッファに対する書き込み及び読み出しを管理するバッファ管理情報を記憶するメモリと、前記入力ラインバッファの各ラインバッファに記憶された画素を参照してライン単位で画像処理を行う画像処理部と、前記画像処理部の処理の状態に応じて前記バッファ管理情報を更新する制御部とを具備する。【選択図】図1

Description

本発明の実施形態は、画像処理装置、画像処理方法及び画像処理プログラムに関する。
デジタルカメラ等の撮像装置で被写体を撮像して得られた画像を画像処理する画像処理装置においては、デジタルカメラからリアルタイムで出力される撮像画像をラインバッファを介して取り込むことがある。この場合、通常、デジタルカメラからの画素(画素データ)のラインバッファへの伝送レートは一定であり、1ライン分の画素は、1水平同期周期内にラインバッファに転送されて格納される。
一方、画像処理装置においては、ラインバッファに格納された画像をライン単位で1水平同期周期内に処理する必要がある画像処理を行うことがある。また、デジタルカメラからの画像によっては、ライン毎に画像処理に要する時間が異なる場合がある。この場合には、ラインバッファには一定の書込みレートでリアルタイムに画素が書込まれるので、各ラインの処理に必要なサイクル数のうち最も多いサイクル数(以下、ピークサイクル数という)を考慮して、画像処理回路の動作周波数や演算器の設計が行われる。
国際公開2013−136458号公報
実施形態は、複数ライン期間で処理に必要なサイクル数を平滑化することにより、回路に要求される演算速度を低減させることができる画像処理装置、画像処理方法及び画像処理プログラムを提供することを目的とする。
実施形態の画像処理装置は、複数のラインバッファにより構成され、入力画像を構成する複数の画素がライン単位で入力され、入力された画素を記憶する入力ラインバッファと、前記入力ラインバッファの各ラインバッファに対する書き込み及び読み出しを管理するバッファ管理情報を記憶するメモリと、前記入力ラインバッファの各ラインバッファに記憶された画素を参照してライン単位で画像処理を行う画像処理部と、前記画像処理部の処理の状態に応じて前記バッファ管理情報を更新する制御部とを具備する。
本発明の一実施の形態に係る画像処理装置を示すブロック図。 実施の形態の画像処理装置を用いて構成した歪補正装置を示すブロック図。 図2中の歪補正回路1に対応する構成の一例を示すブロック図。 歪補正処理を説明するためのフローチャート。 ライン単位の処理におけるラインバッファの書き込み及び読み出しの例を示す説明図。 横軸に歪処理に要するサイクル数をとり縦軸に画面のラインをとって、各ライン毎のサイクル数の変化を示す説明図。 処理シーケンスの一例を示す説明図。 図7と同一の記載方法によって、課題を有する処理シーケンスを示す説明図。 読み出し及び書き込みIDの制御及び画像処理の制御を説明するためのフローチャート。 第1の実施の形態による平滑化処理を実施した場合の処理シーケンスを示す説明図。 横軸に歪処理に要するサイクル数をとり縦軸に画面のラインをとって、各ライン毎のサイクル数の変化を示す説明図。 評価に用いた43の試験パターンについて、1水平同期期間内に処理すべきサイクル数の最大値を、ピークサイクル数を1としてラインバッファの数毎に示した図表。 第2の実施の形態を説明するための説明図。 第2の実施の形態を説明するための説明図。
以下、図面を参照して本発明の実施の形態について詳細に説明する。
(第1の実施の形態)
図1は本発明の第1の実施の形態に係る画像処理装置を示すブロック図である。また、図2は本実施の形態の画像処理装置を用いて構成した歪補正装置を示すブロック図である。
本実施の形態は1ライン分以上のバッファメモリを追加し、水平同期信号hsyncと各ライン単位の処理の開始及び終了を示す信号とを用いて、書き込み及び読み出し(参照)の対象のラインバッファを制御することにより、処理するサイクル数を平滑化することを可能にするものである。
先ず、図2から図4を参照して本実施の形態の適用例である歪補正装置について説明する。なお、本実施の形態は、図2の歪補正装置に限らず、リアルタイムに一定レートでラインバッファに画素(画素データ)の書き込みを行い、ライン単位に処理を行う各種装置に適用可能である。
カメラによって取得した画像を、自動車の衝突防止や監視装置等に利用する場合等においては、その目的から超広角レンズが採用されることがあり、歪曲収差や倍率色収差が大きくなる傾向にある。図2の装置は、歪曲収差や倍率色収差によって画像に生じた歪みを、画像処理によって電気的に補正するものである。
図2の歪補正装置は、CPU25を備えている。CPU25は図示しないメモリに記憶されたプログラムに従って動作して各部を制御するようになっている。撮像部22は、CMOSセンサ等の図示しない撮像素子を備えている。撮像部22は、図示しない光学系を介して入射した光学像を撮像素子によって光電変換することで、撮像信号(撮像画像)を取得する。撮像部22の出力(撮像画像)は歪補正装置21に与えられ、歪補正装置21によって歪補正された後、バス23を介してDRAM24に与えられて記憶されるようになっている。撮像部22からの撮像画像は光学系の歪曲収差等による歪みを有しており、歪補正装置21は、歪曲収差の補正等の各種画像処理を行う。
撮像部22からのラスタスキャン順の撮像出力は歪補正装置21を構成する歪補正回路1に入力される。歪補正回路1は、メモリ4に記憶されたパラメータを用いて、入力された撮像画像に対して歪補正及び倍率色収差補正を行ってポスト処理回路2に出力する。ポスト処理回路2は、入力された画像に対してガンマ補正及び色空間補正を行った後バッファ回路3に出力する。バッファ回路3は、入力された画像を一時保持した後、バス23を介してDRAM24に出力する。こうして、DRAM24には、歪補正された画像が記憶される。
ところで、関連技術の歪補正では、ラスタスキャン順に入力された撮像出力をラインバッファに一旦蓄積し、ラスタスキャン出力順に順次DRAMへの書き込みを行う。関連技術における歪補正回路は、ラスタ順の出力(ラスタスキャン出力)に際して、当該出力画素が歪を受けなければあるべき本来の画素位置を求め、求めた画素位置の画素をラインバッファから読み出してDRAMに転送する。関連技術のラスタスキャン入力・ラスタスキャン出力では、画素出力に際して求めた画素位置の画素をラインバッファに格納しておく必要があり、ラインバッファとして歪の大きさに対応した十分な容量を確保しておく必要がある。
そこで、本件出願人は、先に出願した特願2017−012870号明細書において、ラスタスキャン入力・ランダム出力を採用することでラインバッファを削減する歪補正処理を提案した。この提案において採用するラスタスキャン入力・ランダム出力では、入力された画素を、当該画素が歪を受けなければあるべき本来の画素位置(以下、補正画素位置という)に対応するDRAMのアドレスに格納するように制御を行う。従って、ラインバッファとして比較的少ない容量のものを採用することができる。
次に、図3及び図4を参照して、先に出願した特願2017ー012870号明細書に記載したラスタスキャン入力・ランダム出力の歪補正処理について具体的に説明する。
図3は図2中の歪補正回路1に対応する構成の一例を示すブロック図である。
図3において、歪補正回路1は、ラインバッファ11と、書き込み画素位置計算部12と、読み出し画素位置計算部13と、書き込み画素位置判定部14と、パラメータ格納部15と、画素補間部16とから主に構成されている。
ラインバッファ11は、撮像部22からラスタスキャン順に読み込まれる入力画像の画素(入力画素)を、補正処理に必要なライン数だけ保持する。例えば、バイリニア補間を用いて歪曲収差の補正を行う場合、1〜2ライン分の画素を保持する。
書き込み画素位置計算部12は、補正対象である読み出し画素Piを用いて補間した画素が含まれると推定される、書き込み画素領域を算出する。具体的には、読み出し画素Piの位置(vo, ho)(以下、画素Pi(vo, ho)と示す)を含む、周辺4点の画素{Pi0(vo, ho)、Pi1(vo, ho-1)、Pi2(vo-1, ho-1)、Pi3(vo-1, ho)}からなる読み出し画素位置集合を定義する。なお、本説明において、画素位置座標(v, h)は、画像左上を原点(0, 0)として、vを垂直画素位置、hを水平画素位置としている。
読み出し画素Pi0、Pi1、Pi2、Pi3のそれぞれについて、画素位置計算の関数を用い、対応する書き込み画素Po0、Po1、Po2、Po3の位置(vo’, ho’)、(vo’, ho-1’)、(vo-1’, ho-1’)、(vo-1’, ho’)を算出する。4点の画素Po0(vo’, ho’)、Po1(vo’, ho-1’)、Po2(vo-1’, ho-1’)、Po3(vo-1’, ho’)を頂点とする矩形領域が、書き込み画素領域となる。
画素位置計算には、例えば、多項式で表現される関数や、グリッドテーブル変換など、一般的な画素位置計算用の関数を用いることができる。ただし、画素位置計算関数は、逆関数が存在するものを用いる。
読み出し画素位置計算部13は、書き込み画素領域内において、垂直位置、水平位置ともに整数となる画素の位置(書き込み画素候補Poc(v’, h’))を抽出する。そして、書き込み画素候補Poc(v’, h’)に対応する読み出し画素Pi(v”, h”)を、画素位置計算を行って算出する。なお、画素位置計算は、書き込み画素位置計算部12で行った画素位置計算の逆関数を用いて行う。候補が複数ある場合は、全ての候補Poc(v’, h’)に対して読み出し画素Pi(v”, h”)を算出する。
書き込み画素位置判定部14は、読み出し画素Pi(v”, h”)が集合に含まれている場合、当該画素Pi(v”, h”)に対する書き込み画素候補Poc(v’, h’)を、補正画素位置の書き込み画素Po(v’, h’)として確定する。
パラメータ格納部15は、書き込み画素位置計算部12および読み出し画素位置計算部13における画素位置計算関数に用いるパラメータが格納されている。
画素補間部16は、確定した書き込み画素Po(v’, h’)に対応する読み出し画素Pi(v”, h”)の画素値を算出する。通常、読み出し画素Pi(v”, h”)の座標は非整数であるので、例えば周辺の4画素を用いたバイリニア補間など、既存の補間手法を用いて画素値を算出する。書き込み画素Po(v’, h’)の画素値として、算出した画素値を出力する。出力された画素値は、DRAMなどのメモリ(図示せず)に格納される。なお、出力画素は補正を行った順に出力するため、出力画素の位置(補正画素位置)はランダムとなる。
次に、歪補正回路1における歪補正処理の手順を説明する。図4は歪補正処理を説明するためのフローチャートである。
まず、ラスタスキャン順に歪補正回路1に入力された画素を、ラインバッファ11に拡充する(S1)。ラインバッファ11には、画素補間部16での処理に必要なライン数分、入力画素を格納する。例えば、バイリニア補間を用いる場合、補間対象画素の周辺2×2画素(4画素)の画素値が必要となるため、少なくとも1ライン+1画素分の画素値を格納する。
次に、補正対象画素である読み出し画素Pi(vo, ho)を特定し、読み出し画素Piを用いて補間した画素が含まれると推定される、書き込み画素領域を算出する(S2)。具体的には、まず、読み出し画素Pi(vo, ho)を含む周囲4点の画素{Pi0(vo, ho)、Pi1(vo, ho-1)、Pi2(vo-1, ho-1)、Pi3(vo-1, ho)}からなる集合を定義する。すなわち、Pi1(vo, ho-1)は、Pi(vo, ho)の左隣の画素、Pi2(vo-1, ho-1)はPi(vo, ho)の左上の画素、Pi3(vo-1, ho)はPi(vo, ho)の上の画素である。次に、画素Pi0、Pi1、Pi2、Pi3のそれぞれについて、画素位置計算を行い、対応する書き込み画素Po0(vo’, ho’)、Po1(vo’, ho-1’)、Po2(vo-1’, ho-1’)、Po3(vo-1’, ho’)を算出する。
画素位置計算は、例えば、多項式で表現される関数を用いる場合、次の手順で行う。
(a)像高の算出:入力画素の位置を、左上を原点とする(v, h)の座標系から、光学中心を原点とする(x, y)の座標系に変換する。なお、両座標系とも、水平方向は右側を正とし、垂直方向は下側を正とする。また、光学中心から入力画素までの距離(像高)rを算出する。以下に示す(1)〜(3)式を用いて行う。
Figure 2020046817
(1)式において、vin は、垂直方向の入力画素位置(非負数)、[SENSOR_CROP_OFS_V]は、光学中心からの垂直画素位置オフセット(光学中心と、(v, h)座標系の原点との間の、垂直方向のオフセット)とする。また、(2)式において、hinは、水平方向の入力画素位置(非負数)、[SENSOR_CROP_OFS_H]は、光学中心からの水平画素位置オフセット(光学中心と、(v, h)座標系の原点との間の、水平方向のオフセット)とする。また、(3)式において、[NORM_SCALE]は正規化係数(非負数)とする。
なお、画像中心と光学中心とが一致する場合、[SENSOR_CROP_OFS_V]、[SENSOR_CROP_OFS_H]は、以下の(4)(5)式となる。
[SENSOR_CROP_OFS_V] = −(入力画像垂直サイズ/2 − 0.5) …(4)式
[SENSOR_CROP_OFS_ H] = −(入力画像水平サイズ/2 − 0.5) …(5)式
(b)画素位置計算の像高スケールの算出:光学中心から距離rにある点が、画素位置変換によって光学中心方向に移動する距離r_scaleを算出する。以下に示す(6)式を用いて行う。
r_scale = P0 + P1*r + P2 * r2 + P3*r3 + P4*r4 + P5*r5 + P6*r6 + P7*r7 + P8*r8 + P9*r9 + P10*r10 …(6)式
(6)式において、Px(x = 0〜10 )は、それぞれの次数に応じた多項式係数とする。
(c)出力画素位置の算出:像高スケールを用いて入力画素位置を出力画素位置に変換し、(v, h)の座標系に戻す。以下に示す(7)(8)式を用いて行う。
vout = r_scale * y − [SENSOR_CROP_OFS_V] …(7)式
hout = r_scale*x − [SENSOR_CROP_OFS_ H] …(8)式
(7)式において、voutは垂直方向の出力画素位置(非負数)、(8)式において、houtは水平方向の出力画素位置(非負数)とする。
すなわち、(a)から(c)の一連の手順により、読み出し画素Pi(vo, ho)、Pi1(vo, ho-1)、Pi2(vo-1, ho-1)、Pi3(vo-1, ho)が、それぞれ、書き込み画素Po0(vo’, ho’) 、Po1(vo’, ho-1’)、Po2(vo-1’, ho-1’)、Po3(vo-1’, ho’)に変換される。
なお、画素位置計算として、上述のような多項式で表現される関数を用いる場合、[SENSOR_CROP_OFS_V]、[SENSOR_CROP_OFS_H]、[NORM_SCALE]、Px(x = 0〜10 )の各パラメータは予め設定されており、パラメータ格納部15に格納されているものとする。
画素位置計算は、グリッドテーブル変換を用いて行うこともできる。グリッドテーブルとは、画素位置(v, h)をグリッドノードとした2次元のアドレステーブルである。各グリッドノードには、変換先の画素位置が格納されている。グリッドノードの間に位置する任意の画素位置に対応するアドレスは、近傍グリッドノードから補間することで算出する。画素位置計算としてグリッドテーブル変換を用いる場合、次の手順で行う。
(d)参照グリッドノードの算出:参照グリッドノードとして、入力画素の左上に位置するグリッドノードを決定する。以下に示す(9)(10)式を用いて行う。
ref_v = vin * GRID_PATCH_VSIZE_INV …(9)式
ref_h = hin * GRID_PATCH_HSIZE_INV …(10)式
(9)式において、vin は、垂直方向の入力画素位置(非負数)、GRID_PATCH_VSIZE_INVは、垂直グリッドノード間距離の逆数とする。GRID_PATCH_VSIZE_INVは、以下の(11)式を用いて算出する。
Figure 2020046817
(11)式において、[SENSOR_CROP_VSIZE]は、入力画像垂直サイズ、[GRID_NODE_NUM_V]は、垂直グリッドノード数とする。
また、(10)式において、hinは、水平方向の入力画素位置(非負数)、GRID_PATCH_HSIZE_INVは、水平グリッドノード間距離の逆数とする。GRID_PATCH_HSIZE_INVは、以下の(12)式を用いて算出する。
Figure 2020046817
(12)式において、[SENSOR_CROP_HSIZE]は、入力画像水平サイズ、[GRID_NODE_NUM_H]は、水平グリッドノード数とする。
(e)重みの算出:入力画素位置から参照グリッドノードを含む周囲4点のグリッドノードに対する、垂直方向及び水平方向の距離の比に基づく重みを算出する。以下に示す(13)(14)式を用いて算出する。
weight_v = ref_v − [ref_v] …(13)式
weight_h = ref_h − [ref_h] …(14)式
(13)(14)式において、[]はガウス記号を表す。参照グリッドノードに関する垂直方向の重みは1−weight_vとなる。また、参照グリッドノードに関する水平方向の重みは、1−weight_hとなる。
(f)出力画素位置の算出:参照グリッドノードを含む周囲4点のグリッドノードのテーブルと、入力画素位置に対する各グリッドノードの重みを用い、バイリニア補間によって、出力画素位置を算出する。
(f−1)垂直方向の出力画素位置の算出
以下に示す(15)〜(17)式を用いて算出する。
v0out = table_v(ref_v, ref_h) * (1−weight_h) + table_v(ref_v, ref_h+1) * weight_h …(15)式
v1out = table_v(ref_v+1, ref_h) * (1−weight_h) + table_v(ref_v+1, ref_h+1) * weight_h …(16)式
vout = v0out * (1−weight_v) + v1out * weight_v …(17)式
(15)(16)式において、table_v(v, h)は、垂直画素位置グリッドテーブルとする。また、(17)式において、voutは、は垂直方向の出力画素位置(非負数)である。
(f−2)水平方向の出力画素位置の算出
以下に示す(18)〜(20)式を用いて算出する。
h0out = table_ h (ref_v, ref_h) * (1−weight_h) + table_ h (ref_v, ref_h+1) * weight_h …(18)式
h1out = table_h(ref_v+1, ref_h) * (1−weight_h) + table_h(ref_v+1, ref_h+1) * weight_h …(19)式
hout = h0out * (1−weight_h) + h1out * weight_v …(20)式
(18)(19)式において、table_h(v, h)は、水平画素位置グリッドテーブルとする。また、(20)式において、houtは、は水平方向の出力画素位置(非負数)である。
すなわち、(d)から(f)の一連の手順により、読み出し画素Pi(vo, ho)、Pi1(vo, ho-1)、Pi2(vo-1, ho-1)、Pi3(vo-1, ho)が、それぞれ、書き込み画素Po0(vo’, ho’) 、Po1(vo’, ho-1’)、Po2(vo-1’, ho-1’)、Po3(vo-1’, ho’)に変換される。
なお、画素位置計算として、上述のようなグリッドテーブル変換を用いる場合、[SENSOR_CROP_VSIZE]、[GRID_NODE_NUM_V]、[SENSOR_CROP_HSIZE]、[GRID_NODE_NUM_H]、table_v(v, h)、table_h(v, h)の各パラメータは予め設定されており、パラメータ格納部15に格納されているものとする。
画素位置計算により算出された、4点の画素Po0(vo’, ho’) 、Po1(vo’, ho-1’)、Po2(vo-1’, ho-1’)、Po3(vo-1’, ho’)を頂点とする矩形領域が、書き込み画素領域として特定される。
次に、上記特定された矩形領域内において、垂直座標、及び、水平座標が共に整数となる画素位置(書き込み画素候補Poc(v’, h’))を抽出する。例えば、画素Po0(vo’, ho’) 、Po1(vo’, ho-1’)、Po2(vo-1’, ho-1’)、Po3(vo-1’, ho’)の各座標を、繰り上げ・繰り下げにより調整・整数化し、得られた画素位置に外接する矩形領域内のすべての画素位置を、書き込み画素候補Poc(v’, h’)とする(S3)。繰り上げ・繰り下げによる調整・整数化は、以下に示す(21)(22)式を用いて行う。なお、4点のうち、左側または上側に位置する画素については、(21)式を用い、右側または下側に位置する画素については、(22)式を用いる。
調整後画素位置 = [書き込み画素位置 − WRITE_AREA_DELTA] …(21)式
調整後画素位置 = [書き込み画素位置 + WRITE_AREA_DELTA] …(22)式
(21)(22)式において、WRITE_AREA_DELTAは整数化調整値であり、予め設定された値である。また、[]はガウス記号を表す。
続いて、S3で求めたすべての書き込み画素候補Poc(v’, h’)に対し、書き込み画素Po(v’, h’)であるか否かの判定を行う。判定をまだ行っていない書き込み画素候補Poc(v’, h’)がある場合(S4、No)、画素位置計算により、対応する読み出し画素Pi(v”, h”)を算出する(S5)。画素位置計算は、S2で用いた画素位置計算の逆関数を用いて行う。このとき、Pi(v”, h”)の垂直座標、水平座標は、非整数となる。
次に、Pi(v”, h”)の画素値を補間によって算出するために必要な画素を特定する。例えば、バイリニア補間によって画素値を算出する場合、Pi(v”, h”)の周囲4点の画素が補間に必要な画素となる。補間に必要なすべての画素が、集合に含まれている場合、当該読み出し画素Pi(v”, h”)に対応する書き込み画素候補Poc(v’, h’)を、書き込み画素Po(v’, h’)と確定する(S6、Yes)。
この場合、確定した書き込み画素Po(v’, h’)の画素値を、対応する読み出し画素Pi(v”, h”)の画素値を画素補間によって算出して出力する(S7)。なお、出力画素Po(v’, h’)は、ラスタスキャン順でなくランダムとなる。続いてS4に戻り、未判定の書き込み画素候補Poc(v’, h’)の有無を調べる。
一方、補間に必要な画素のうち、集合に含まれていない画素が存在する場合、当該読み出し画素Pi(v”, h”)に対応する書き込み画素候補Poc(v’, h’)は、書き込み画素Po(v’, h’)でないと確定する(S6、No)。この場合、画素補間は行わずに、S4に戻って、未判定の書き込み画素候補Poc(v’, h’)の有無を調べる。
S4において、S3で求めたすべての書き込み画素候補Poc(v’, h’)について、判定が行われている場合、画像補正処理の一連の手順を終了する(S4、Yes)。
このように、上述した歪補正回路1による歪補正処理では、撮像部22からラスタスキャン順に読み込まれる入力画素を、この順に補正処理を行う。従って、補正に必要な入力画素の範囲を1乃至数ライン程度で抑えることができるため、入力画素を格納するラインバッファ11の搭載量を低減することができ、製造コストを抑制することができる。
なお、ラインバッファ11の搭載量は、画素補間の手法に応じて設定される。例えば、バイリニア法を用いる場合、2ライン程度搭載すればよいが、バイキュービック法を用いる場合、4ライン程度搭載する必要がある。
また、読み出し画素から書き込み画素を算出する画素位置計算の方法は、上述の方法に限定されない。すなわち、逆関数が存在する方法であれば、任意の方法を用いることができる。また、複数の画素位置計算方法を組み合わせて用いてもよい。
このように、図2の歪補正回路1として、先に出願した特願2017−012870号明細書の歪補正回路を採用した場合には、撮像部22からラスタスキャン順に読み込まれる入力画素を、この順に補正処理することになる。例えば、2ライン分のラインバッファを用意し、これらのラインバッファに一定レートでリアルタイムに画素を入力しながらライン単位で処理を行って、補正画素位置の情報を含む画素を出力することができる。
(サイクル数の平滑化)
本実施の形態は、このようにリアルタイムに一定レートでラインバッファに画素(画素データ)の書き込みを行い、ライン単位に処理を行う各種装置に適用するものであり、図2の歪補正装置以外にも適用できるものである。
図5はこのようなライン単位の処理におけるラインバッファの書き込み及び読み出しの例を示す説明図である。なお、図5において、[0],[1]はラインバッファに付されたID(以下、ラインバッファIDという)を示している。図5は1画面を構成する各ラインの開始位置に対応して水平同期信号hsyncが発生し、この水平同期信号hsyncに同期させて、所定の2ライン分の画素を記憶可能なラインバッファ[0],[1]への、画素の書き込み、読み出しを制御することを示している。ラインバッファ[0]への1ライン分の書き込みの後、次に発生した水平同期信号hsyncに同期してラインバッファ[1]への1ライン分の書き込みが行われる。また、ラインバッファ[1]の1ライン分の書き込み時に、ラインバッファ[0]から1ライン分の画素が読み出されて所定の画像処理が行われる。即ち、図5はラインバッファに対する書き込みと読み出しを別のラインバッファに分けて行う例である。
ところで、一般的に、画像の歪は画面上の位置に応じて大きさが異なる。例えば、超広角レンズを採用した場合にはたる型歪が生じ、画面の周辺部で画面中央に比べて歪が大きくなる。従って、ライン毎に歪補正に要するサイクル数が変化する。
図6は横軸に歪処理に要するサイクル数をとり縦軸に画面のラインをとって、各ライン毎のサイクル数の変化を示す説明図である。図6はたる型歪に対する歪補正処理の例を示しており、画面の上端及び下端から所定ライン数だけ離間したラインにおいてサイクル数がピークとなっている。図5のように、書き込みが行われるラインバッファと読み出しを行うラインバッファとを切換える場合には、ラインバッファに書き込まれたカメラからの画素は、水平同期信号hsyncの発生から次の水平同期信号hsyncが発生するまでの期間(以下、水平同期期間という)内において、読み出されて(参照されて)画像処理される。図6に示すサイクル数のピーク値(ピークサイクル数)の処理が水平同期期間内に実行されるように、回路設計が行われる。
図7はこのように回路設計を行った場合の処理シーケンスの一例を示す説明図である。図7においては、ラインバッファIDが[0],[1]の2つのラインバッファ[0],[1]を採用し、連続したm0〜m3ラインの画素の処理を行う期間(m0〜m3ライン水平同期期間)を示している。なお、m0,m1ラインはピークサイクル数の処理を要するラインであるものとする。図7の垂直に延びた太線は、水平同期信号hsyncの発生タイミングを示しており、水平同期信号hsyncの発生毎に、ラインバッファへの書き込みが開始されると共に、ラインバッファを参照した(読み出した)画像処理が開始される。
図7のm0ライン水平同期期間には、m0ラインの画素がラインバッファ[0]に書き込まれる。次のm1ライン水平同期期間には、m1ラインの画素がラインバッファ[1]に書き込まれると共に、ラインバッファ[0]からm0ラインの画素が参照されて処理(処理m0)される。次のm2ライン水平同期期間には、m2ラインの画素がラインバッファ[0]に書き込まれると共に、ラインバッファ[1]からm1ラインの画素が参照されて処理(処理m1)される。これらの処理m0,m1にはピークサイクル数を要するが、1水平同期期間以内にピークサイクル数の処理が可能なように回路設計が行われており、確実に処理は終了する。
次のm3ライン水平同期期間には、m3ラインの画素がラインバッファ[1]に書き込まれる。また、ラインバッファ[0]からm2ラインの画素が参照されて処理(処理m2)される。処理m2に必要なサイクル数はピークサイクル数よりも十分に少なく、比較的短い処理時間で処理が終了する。このように、m3ライン水平同期期間には、処理の空き時間が生じ無駄である。
一方、図8は、図7と同一ラインに対して図7と同一画像処理を行う場合において、処理の空き時間を低減するように、1水平同期期間に処理するサイクル数がピークサイクル数よりも少なくなることを許容した回路設計を行った場合の処理シーケンスを示す説明図である。図7と同一の記載方法によって示す。
この場合には、処理m0は、m1ライン水平同期期間内に終わらずに、斜線部に示すように、次のm2ライン水平同期期間まで延長されてしまう。しかし実際には、m2ライン水平同期期間においてラインバッファ[0]にはm2ラインの画素が書き込まれることから、m0ラインの画素を参照することはできず、斜線に示す処理は破綻してしまう。
同様に、処理m1は、m2ライン水平同期期間内に終わらずに、斜線部に示すように、次のm3ライン水平同期期間まで延長してしまう。しかし実際には、m3ライン水平同期期間においてラインバッファ[1]にはm3ラインの画素が書き込まれることから、m1ラインの画素を参照することはできず、斜線に示す処理は破綻してしまうことがある。
このように、1水平同期期間内にピークサイクル数の処理を行うことができない場合には、参照する前に書き込みが行われて処理が破綻してしまう。
そこで、本実施の形態においては、図2の歪補正回路1として図1に示す画像処理装置を採用する。以下、図1の装置を歪補正装置に適用した場合における構成について説明する。
図1において、制御部31は、CPU等を用いたプロセッサによって構成されて、図示しないメモリに記憶されたプログラムに従って動作して各部を制御するものであってもよいし、ハードウェアの電子回路で機能の一部又は全部を実現するものであってもよい。
入力ラインバッファ32は、適用する画像処理に必要な数のラインバッファに1ライン分以上のラインバッファを付加して構成される。例えば、入力ラインバッファ32は、上述した図3のラインバッファ11に、1ライン分以上のラインバッファを付加して構成され、制御部31に書き込み及び読み出しが制御されて、入力された画素を記憶すると共に画像処理部33に出力する。
画像処理部33は、図3の歪補正回路1と同様の処理機能を有し、制御部31に処理が制御されて、メモリ4に記憶されたパラメータを用いて、ラスタスキャン入力・ランダム出力の歪補正処理を実現する。なお、本実施の形態を歪補正処理ではなく他の画像処理を行う装置に適用した場合には、画像処理部33は適用した画像処理を実行する。
画像処理部33は、制御部31に制御されて、画像処理後の画素を、出力ラインバッファ34に出力する。出力ラインバッファ34は、制御部31に制御されて、水平同期信号hsyncに同期して、充填された画素を出力する。図2の例では出力ラインバッファ34の出力はポスト処理回路2に与えられる。
制御部31には、入力画像に基づく水平同期信号hsyncが入力される。例えば、制御部31には、撮像部22から水平同期信号hsyncが与えられる。制御部31は、画像処理部33に対して処理開始の信号(処理開始信号)を与えると共に、画像処理部33から処理終了の信号(busy信号)を受信する。画像処理部33は、制御部31から処理開始信号が与えられると、ライン単位の処理を開始すると共にbusy信号を、処理を行っていることを示す例えば“1”に設定し、ライン単位の処理が終了するとbusy信号を、処理が終了していることを示す例えば“0”に設定して制御部31に出力する。
制御部31は、入力ラインバッファ32が有する複数のラインバッファのそれぞれにID(以下、ラインバッファIDという)を付し、読み出し対象のラインバッファID(以下、読み出しIDという)及び書き込み対象のラインバッファID(以下、書き込みIDという)に関する情報(以下、バッファ管理情報という)をメモリ31aに記憶させて管理するようになっている。制御部31は、バッファ管理情報である読み出しID及び書き込みIDを水平同期信号hsync及びbusy信号に基づいて更新することで、リアルタイムに入力される画像に対する画像処理を破綻させることなく、処理すべきサイクル数を平滑化することを可能にしている。これにより、1水平同期期間において処理しなければならないサイクル数を低減することができる。
即ち、制御部31は、水平同期信号hsyncが入力されることで書き込みIDを更新し、ライン単位の処理が終了したことを示すbusy信号によって読み出しIDを更新する。つまり、制御部31は、水平同期信号hsyncが入力されると書き込みを行うラインバッファを切換え、水平同期信号hsyncに同期して入力ラインバッファ32への画素の書き込みを開始させる。即ち、図1の画像処理装置は、リアルタイムにライン単位の画素を入力ラインバッファ32に取り込むことができる。
また、制御部31は、busy信号によりライン単位の処理が終了したことが示されると、既に処理すべき画素が入力ラインバッファ32に記憶されている場合には直ぐに参照を行うラインバッファを切換えて処理を開始し、処理すべき画素が入力ラインバッファ32に記憶されていない場合には次の水平同期信号hsyncに同期して読み出しIDにより指定されたラインバッファを参照して処理を行う。
このように、制御部31は、ラインバッファを追加すると共に、読み出し及び書き込み対象のラインバッファを制御することで、各ラインの処理時間を平滑化する、即ち、1水平同期期間において処理すべきサイクル数を平滑化するようになっている。
なお、入力ラインバッファ32は、上述したように、適用する画像処理に必要な数のラインバッファに1ライン分以上のラインバッファを付加するものと説明したが、画像処理部33における処理速度が比較的遅い場合等においては、付加するラインバッファの数が少なければ、画像処理に破綻を来す場合もある。そこで、画像処理部33は、画像処理に破綻を来す場合には、画像処理が破綻することを示すエラー出力を出力するようになっている。
次に、このように構成された実施の形態の動作について図9及び図10を参照して説明する。図9は読み出し及び書き込みIDの制御並びに画像処理の制御を説明するためのフローチャートである。また、図10は図8と同一の画像入力に対して図8において想定した画像処理性能を有する画像処理部33において、本実施の形態による平滑化処理を実施した場合の処理シーケンスを示す説明図である。
本実施の形態においては、入力ラインバッファ32は、図8の2つのラインバッファ[0],[1]にラインバッファIDが[2]の1つのラインバッファ[2]を付加して構成される。なお、図9において、mWは書き込みIDを示し、mRは読み出しIDを示している。また、図10は横軸に時間をとり、縦線によって水平同期信号hsync(m0)〜(m4)の入力タイミングを示している。
図10に示すように、入力ラインバッファ32に画素入力として連続したm0,m1,m2,…ラインの画素がリアルタイムに入力されるものとする。制御部31は、図9のステップS11,S12において、書き込みIDを示す変数mW及び読み出しIDを示す変数mRを初期化してメモリ31aに記憶させる。なお、図10の例では、制御部31は、初期値としてmW,mR=[0]に設定する。これにより、書き込み対象のラインバッファとしてラインバッファ[0]が指定され、読み出し対象のラインバッファとしてもラインバッファ[0]が指定される。なお、制御部31は、メモリ31aに記憶された変数mW,mRを更新する場合には、例えば[0]、[1]、[2]、[0]、[1]、[2]…の順に更新して、3つのラインバッファを巡回的に使用するものとする。
制御部31は、ステップS13において、水平同期信号hsyncが入力されたか否かを判定して、水平同期信号hsyncの入力を待機する。制御部31は、水平同期信号hsync(m0)が入力されると、ステップS14において、画素入力を入力ラインバッファ32に書き込む。図10に示すように、入力されたm0ラインの画素はラインバッファ[0]に書き込まれる。
次に、制御部31は、ステップS15において、水平同期信号hsyncの入力を待機する。制御部31は、水平同期信号hsync(m1)が入力されると、処理をステップS16に移行して、mWを更新して[1]とし、ラインバッファ[1]にm1ラインの画素の書き込みを行う。また、この時点ではbusy信号は“0”であり、制御部31は、この水平同期信号hsync(m1)の入力に同期して画像処理部33に画像処理の処理開始を指示する。画像処理部33は、読み出し対象のラインバッファ[0]を参照して、画像処理を開始する。例えば、画像処理部33は、歪補正処理を実行すると共に、処理中であることを示すbusy信号を“1”にする。なお、画像処理部33は、画像処理後の画素を順次出力ラインバッファ34に出力する。
次に、制御部31は、ステップS18において、水平同期信号hsyncが入力されたか否かを判定し、入力されていない場合には処理をステップS22に移行し、入力されると処理をステップS19に移行する。ステップS19〜S21において、入力された画素はラインバッファに書き込まれる。即ち、制御部31は、画像処理部33の画像処理が終了したか否かに拘わらず、水平同期信号hsyncが入力されると、画素の書き込みを行う。これにより、リアルタイムでの画素の取込みが可能となる。
上述したように、m1,m2ラインについては、処理にピークサイクル数を要するラインであり、m1ライン水平同期期間内には処理m0は終了しておらず、制御部31は、水平同期信号hsync(m2)が入力されると、ステップS19においてmWを更新し、後述するステップS20の判定の後、ステップS21においてbusy信号に拘わらず入力ラインバッファ32に、入力された画素を書き込む。即ち、この場合には、図10に示すように、mWは[2]となり、ラインバッファ[2]にm2ラインの画素が書き込まれる。
本実施の形態においては、制御部31は、次のステップS22において、画像処理部33からのbusy信号によって、1ライン分の処理が終了したか否かを判定する。図10の例では、制御部31は、水平同期信号hsync(m2)が入力された時点では、m0ラインに対する処理m0が終了していないので、処理をステップS18に戻して水平同期信号hsyncの入力を待機する。即ち、本実施の形態においては、画像処理部33は、m0ラインに対する画像処理をm1ライン水平同期期間からm2ライン水平同期期間に跨いで実行することになる。この場合でも、本実施の形態においては、ラインバッファ[2]が付加されており、ラインバッファ[0]に書き込みを行うことなく、m2ラインの画素の書き込みを行うことができ、m2ライン水平同期期間においても、処理m0に必要な画素をラインバッファ[0]から参照することが可能である。
画像処理部33は、m0ラインに対する画像処理が終了すると、busy信号を“1”から“0”に変更する。制御部31は、画像処理部33からのbusy信号が“0”に変化することで処理が終了したことを検出すると、ステップS23において、mRを更新して処理をステップS17に戻す。mRは更新されて[1]となり、制御部31は、ステップS17において、画像処理部33に処理開始信号を出力して処理を開始させる。画像処理部33は、busy信号を“1”に変更して、ラインバッファ[1]に格納されたm1ラインの画素を参照して画像処理を開始する。
なお、制御部31は、出力ラインバッファ34中のラインバッファに画素が充填されると、充填されたラインバッファから画素を次段に出力する。出力ラインバッファ34からの出力は、制御部31に制御されて、水平同期信号hsyncに同期して行われる。
以後、同様の動作が繰り返され、水平同期信号hsync(m3)が入力されると、mWが更新されて[0]となり(ステップS19)、ラインバッファ[0]にm3ラインの画素が書き込まれる。また、m3ライン水平同期期間の途中で、画像処理部33からm1ラインの処理の終了を示す“0”のbusyが与えられると、mRを更新して[2]とし(ステップS24)、ラインバッファ[2]に格納されたm2ラインの画素を参照して画像処理を開始する。図10の例では、m2ラインに対する処理m2は、水平同期信号hsync(m4)が入力されるタイミングまでに終了する。
こうして、本実施の形態においては、各水平同期期間において処理すべきサイクル数を平滑化することができ、画像処理部33においてピークサイクル数の処理に1水平同期期間よりも長い期間を要する場合でも、画像処理を破綻させることなく処理を継続することができる。
なお、ステップS20では、mWがmRより2ラインよりも多く進んだか否かを判定する。図10の例では、1つのラインバッファ[2]が追加されており、書き込みIDが読み出しIDよりも2ライン分進んでいても、処理が破綻することはない。しかし、書き込みIDが読み出しIDより3ライン分進んだ場合、例えば、図10において読み出しIDが[0]のときに、書き込みIDが[2]の次の[0]になると、処理m0の参照を行うことができなくなり、処理が破綻する。そこで、この場合には、画像処理部33は、制御部31に制御されて、ステップS25において、処理が破綻したことを示すエラー出力を出力する。
なお、ステップS20の2ラインは、1つのラインバッファを付加した場合の例であり、付加するラインバッファの数を増やすことで、ステップS20のライン数は大きくなり、より破綻しにくくなることは明らかである。
(評価)
撮像部22の光学系として所定のレンズを採用した場合において、1水平同期期間内において歪補正のために必要なサイクル数について評価を行った。画像サイズ及びレンズを変化させた43の試験パターンについて評価を行った。図11は横軸に歪処理に要するサイクル数をとり縦軸に画面のラインをとって、各ライン毎のサイクル数の変化を示す説明図である。図11の破線は図6と同様に2ライン分のラインバッファを用いて1水平同期期間内にピークサイクル数の処理を行う場合の特性を示している。また、図11の実線は破線と同一の画像処理について、3ライン分のラインバッファを用いて上記平滑化処理によって1水平同期期間にピークサイクル数よりも少ない処理を行う場合において、破綻無く歪補正が行われるときの特性を示している。図11に示すように、ピークサイクル数の処理が必要なラインについては、平滑化により、破綻無く歪補正を行うことができる1水平同期期間のサイクル数は低減されている。
図12は評価に用いた43の試験パターンについて、本実施の形態の平滑化を採用して処理が破綻しないように回路設計した場合において、1水平同期期間内に処理すべきサイクル数の最大値(以下、平滑ピークサイクル数という)を、ピークサイクル数を1としてラインバッファの数(バッファ数)毎に示した図表である。
図12のバッファ数2は書き込み及び読み出しを異なる1つずつのラインバッファに設定した場合、即ち、本実施の形態の平滑化処理を採用しない場合を示しており、1水平同期期間内に処理すべきサイクル数はピークサイクル数である。これに対し、3ライン分のラインバッファを用いた場合には、43の試験パターンのうち最も大きな平滑ピークサイクル数は0.99であり、最も小さい平滑ピークサイクル数は0.64であり、平均の平滑ピークサイクル数は0.94であった。即ち、ラインバッファの数を1つ追加したことにより、1水平同期期間内に処理すべきサイクル数を平均で6%低減することができ、コストパフォーマンスを十分に向上させることが可能であった。
なお、図12から明らかなように、ラインバッファ数が4,6,10,18,34のいずれの場合においても、43の試験パターンのうち最も大きな平滑ピークサイクル数、最も小さい平滑ピークサイクル数及び平均の平滑ピークサイクル数のいずれも、1よりも小さく、1水平同期期間内に処理すべきサイクル数を低減することができていることが分かる。図12では示していないが、43の全ての試験パターンについて、1水平同期期間内に処理すべきサイクル数を低減することが可能であった。なお、追加するラインバッファの数は多い程、サイクル数の低減効果が高いという結果が得られた。
このように本実施の形態においては、1ライン分以上のラインバッファを追加すると共に、各ライン単位の処理の終了を示す信号を利用して書き込み対象のラインバッファを切換えることで、ライン単位の処理を複数の水平同期期間に跨いで実行することを可能にしており、1水平同期期間に必要なサイクル数を平滑化することができる。また、書き込みは水平同期信号に同期して行っており、リアルタイムでの取込が可能である。こうして、1水平同期期間においてピークサイクル数よりも少ないサイクル数の処理能力を有する回路を用いて破綻無く処理を行うことを可能にすることができ、コストパフォーマンスを向上させることができる。
(第2の実施の形態)
図13及び図14は本発明の第2の実施の形態を説明するための説明図である。本実施の形態のハードウェア構成は図1と同様である。本実施の形態は、画像処理として圧縮処理を行う画像処理装置に適用したものである。
画像処理部33は、制御部31に制御されて、入力ラインバッファ32を介して画素が入力され、ライン単位又はブロック単位で圧縮処理を施して出力ラインバッファ34に出力するようになっている。画像処理部33は、複数の圧縮方法による圧縮処理が可能である。例えば、画像処理部33は、png(Portable Network Graphics)圧縮を採用し、左隣の画素値との差を求めるSUBフィルタ、真上の画素値との差を求めるUPフィルタ、左隣と真上のピクセルの平均値との差を求めるAVGフィルタ、左隣、真上、左上の3つのピクセルからPaeth値を計算しその値との差を求めるPaethフィルタ及び圧縮処理を施さないNoneフィルタを選択することができるようになっている。
従って、png圧縮の各フィルタを用いた圧縮処理を実施するためには、入力ラインバッファ32は、少なくとも2ライン分の画素を保持する必要がある。つまり、png圧縮を行う回路は、最大で2ラインの画素を用いた圧縮を行うので、2ライン分の画素を保持するラインバッファと、読み出し用の1ライン分のラインバッファとを用いた計3ライン分のラインバッファを備える必要がある。
画像処理部33は、所望の圧縮率が得られるように、フィルタを切換えながら複数回の圧縮処理を行う。いま、画像処理部33は、1水平同期期間において、2回の圧縮処理を行うことが可能に設計されているものとする。この場合において、書込み用に2ライン分、読み出し用に1ライン分の計3ライン分のラインバッファを用いた場合には、1ラインの画素に対して、3種類の圧縮方式を用いて圧縮を行おうとすると、1水平同期期間内において圧縮処理を完了することができず、処理が破綻してしまう。
そこで、本実施の形態においては、入力ラインバッファ32は、書込み用の2ライン分のラインバッファの外に、読み出し用として2ライン分のラインバッファの計4ライン分のラインバッファを用いて、第1の実施の形態と同様に、処理に必要なサイクル数を平滑化するようになっている。
次に、このように構成された実施の形態の動作について図13及び図14を参照して説明する。図13は本実施の形態における入力ラインバッファ32の書き込み及び読み出しの例を示す説明図である。
図13において、[0]〜[3]は入力ラインバッファ32中の各ラインバッファのラインバッファIDを示している。図13では1画面を構成する各ラインの開始位置に対応して水平同期信号hsyncが発生することを示している。本実施の形態においては、この水平同期信号hsyncに同期させて、ラインバッファへの書き込みを行う。図13の例では、圧縮処理に用いるために、2つのラインバッファに2ライン分の書き込みを行うと共に、書き込みが終了した2ライン分のラインバッファから読み出しを行う場合の書き込みライン及び読み出しラインを示している。図13の例では、水平同期信号に同期して、ラインバッファ[0]及びラインバッファ[1]にそれぞれn0ライン及びn1ラインの画素を書き込み、ラインバッファ[2]及びラインバッファ[3]からn2ライン及びn3ラインの画素を読み出す。
図14は本実施の形態における平滑化処理を実施した場合の処理シーケンスを示す説明図である。図14は横軸に時間をとり、縦線によって水平同期信号hsyncの入力タイミングを示している。図14に示すように、入力ラインバッファ32には画素入力として連続した,…,n0,n1,n2,…ラインの画素がリアルタイムに入力される。
例えば、画像処理部33は、先ずSUBフィルタを用いた圧縮を行う。画像処理部33は、この圧縮によって所望の圧縮率が達成された場合には、当該ラインの圧縮処理を終了し、所望の圧縮率が得られない場合には、次に例えばUPフィルタを用いた圧縮を行う。画像処理部33は、png圧縮のフィルタを切換えることで所望の圧縮率での圧縮を行って、圧縮後の画素を出力ラインバッファ34に出力する。
図14の例では、制御部31に水平同期信号hsync(n4)が入力される時点で、入力ラインバッファ32のラインバッファ[2],[3]には、n2,n3ラインの画素が格納されているものとする。水平同期信号hsync(n4)が入力されると、n4ライン水平同期期間において、n4ラインの画素がラインバッファ[0]に書き込まれる。また、このn4ライン水平同期期間には、n2ラインの画素がラインバッファ[2]から読み出されると共に、n3ラインの画素ラインバッファ[3]から読み出されて、n2ラインの圧縮処理に用いられる。即ち、画像処理部33は、先ず、SUBフィルタを選択して、左隣の画素の画素値との差により各画素を圧縮処理する。画像処理部33は、SUBフィルタを用いた圧縮処理によって所望の圧縮率が得られない場合には、次にUPフィルタを用いて、真上の画素値との差により各画素を圧縮する。
いま、画像処理部33によるUPフィルタを用いた圧縮処理によっても所望の圧縮率が得られないものとする。本実施の形態による平滑化処理が採用されていない場合には、所望の圧縮率が得られない状態でn2ラインの処理を終了するか、又は画像処理部33を1水平同期期間内において3回以上の圧縮処理が可能なように設計しておく必要がある。
これに対し、本実施の形態においては、1つのラインバッファを追加しており、n5ライト水平同期期間にラインバッファ[2]に書き込みを行う必要はない。また、busy信号によって圧縮処理の終了を検出し、この検出結果に基づいて、ラインバッファの書き込みID及び読み出しIDを制御しており、n2ラインの圧縮処理をn5ライト水平同期期間まで延長して実行することが可能である。画像処理部33は、n5ライン水平同期期間において、n2ラインに対して、Avgフィルタを用い、左隣と真上の画素の平均値との差による3回目の圧縮処理を実施する。これにより、所望の圧縮率が得られると、画像処理部33は、n2ラインの処理終了後にn3ラインに対する圧縮処理を開始する。
こうして、圧縮処理が破綻することなく、1水平同期期間内において3回の圧縮処理が可能となる。なお、この場合でも、水平同期信号hsync(h5)の入力により、ラインバッファ[1]にn5ラインの画素の書き込みを行っており、リアルタイムでの書き込みが可能である。
いずれの圧縮方式も処理時間が同一とした場合には、1ライン期間で2回圧縮方式を試行可能な場合と比較して、本実施の形態では1ライン追加することで、最大4回の試行が可能となる。
このように本実施の形態においても、第1の実施の形態と同様の効果を得ることができる。
(変形例)
上記各実施の形態の画像処理装置は、リアルタイムに入力される画像に対して、ライン単位で処理を行うものである。このような装置としては、歪補正装置や圧縮装置だけでなく、種々の装置が考えられる。
例えば、実施形態として鮮鋭化処理やぼかし処理を行う画像処理装置に適用してもよい。
これらの処理は、所定の画素領域の複数の画素を用いた演算を行うものである。例えば、注目画素を中心とした3×3画素や5×5画素の画素領域の各画素を用いた演算によって、解像感を増す鮮鋭化処理やボケさせるぼかし処理等が行われる。この場合において、5×5画素の画素領域に対応したフィルタサイズの演算量は、3×3画素の画素領域に対応したフィルタサイズの演算量の例えば25/9倍となる。
注目画素が含まれる画像部分のエッジの密度に応じて、使用するフィルタサイズを切換えて画像処理が行われる。この場合、1水平同期期間内において確実な処理を行うためには、上記各実施の形態における平滑化処理を採用しなければ、全ての画素について最も大きいフィルタサイズによる演算を行うことを想定して回路設計を行う必要がある。
これに対し、上記各実施の形態と同様に、本来のフィルタ処理に必要な数のラインバッファに1つ以上のラインバッファを追加し、busy信号によって各ラインのフィルタ処理の終了を検出し、この検出結果に基づいて、ラインバッファの書き込みID及び読み出しIDを制御することにより、複数ラインに跨がって各ラインのフィルタ処理を実行することが可能となる。これにより、画像処理部33が1水平同期期間内に行う必要がある演算数を低減させることが可能である。
また、実施形態としてモザイク処理を行う画像処理装置に適用してもよい。モザイク処理においても、色によってフィルタサイズを変化させる場合があり、上記各実施の形態と同様の平滑化処理を適用して、画像処理部33が1水平同期期間内に行う必要がある演算数を低減させることが可能である。
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
1…歪補正回路、2…ポスト処理回路、21…歪補正装置、22…撮像部、23…バス、24…DRAM、25…CPU、3…バッファ回路、31…制御部、31a…メモリ、32…入力ラインバッファ、33…画像処理部、34…出力ラインバッファ。

Claims (9)

  1. 複数のラインバッファにより構成され、入力画像を構成する複数の画素がライン単位で入力され、入力された画素を記憶する入力ラインバッファと、
    前記入力ラインバッファの各ラインバッファに対する書き込み及び読み出しを管理するバッファ管理情報を記憶するメモリと、
    前記入力ラインバッファの各ラインバッファに記憶された画素を参照してライン単位で画像処理を行う画像処理部と、
    前記画像処理部の処理の状態に応じて前記バッファ管理情報を更新する制御部と
    を具備する画像処理装置。
  2. 前記入力ラインバッファは、前記画像処理部におけるライン単位の画像処理に最低限必要なラインバッファ数に1つ以上のラインバッファを付加して構成される
    請求項1に記載の画像処理装置。
  3. 前記制御部は、前記入力画像の水平同期信号に同期して前記入力された画素を記憶させるラインバッファを切換えると共に、前記ライン単位の画像処理の処理の終了を検出することで前記画像処理において参照するラインバッファを切換えるように前記バッファ管理情報を更新する
    請求項1に記載の画像処理装置。
  4. 前記制御部は、前記水平同期信号に同期して前記入力ラインバッファに前記ライン単位の画素を記憶させると共に、前記画像処理部を制御して、前記入力ラインバッファに処理すべきライン単位の画素が既に記憶されている場合には、前記ライン単位の画像処理の処理の終了の検出によって前記処理すべきライン単位の画素を参照した画像処理を開始させ、前記入力ラインバッファに処理すべきライン単位の画素が記憶されていない場合には、前記水平同期信号に同期して前記処理すべきライン単位の画素を参照した画像処理を開始させる
    請求項3に記載の画像処理装置。
  5. 前記画像処理部が行う画像処理は、歪補正処理である
    請求項1に記載の画像処理装置。
  6. 前記画像処理部が行う画像処理は、前記ライン単位で必要なサイクル数が異なり、
    前記画像処理部は、前記ライン単位で必要なサイクル数の最大値よりも1ライン単位の期間に実行可能なサイクル数が小さい
    請求項1に記載の画像処理装置。
  7. 前記画像処理部による画像処理後の画素を前記入力画像の水平同期信号に同期して出力する出力バッファ
    を更に具備する請求項1に記載の画像処理装置。
  8. 複数のラインバッファにより構成される入力ラインバッファに入力画像を構成する複数の画素をライン単位で書き込み、
    前記入力ラインバッファを構成する複数のラインバッファのうちの1つのラインバッファに記憶された画素を読み出して画像処理部に与えることでライン単位で画像処理を実行させ、
    前記入力ラインバッファの各ラインバッファに対する書き込み及び読み出しを管理するバッファ管理情報をメモリに記憶させると共に、前記入力ラインバッファへの画素の書き込み及び前記画像処理部のライン単位の画像処理の処理終了に基づいて前記バッファ管理情報を更新する
    手順を具備する画像処理方法。
  9. コンピュータに、
    複数のラインバッファにより構成される入力ラインバッファに入力画像を構成する複数の画素をライン単位で書き込み、
    前記入力ラインバッファを構成する複数のラインバッファのうちの1つのラインバッファに記憶された画素を読み出して画像処理部に与えることでライン単位で画像処理を実行させ、
    前記入力ラインバッファの各ラインバッファに対する書き込み及び読み出しを管理するバッファ管理情報をメモリに記憶させると共に、前記入力ラインバッファへの画素の書き込み及び前記画像処理部のライン単位の画像処理の処理終了に基づいて前記バッファ管理情報を更新する
    手順を実行させるための画像処理プログラム。
JP2018173581A 2018-09-18 2018-09-18 画像処理装置、画像処理方法及び画像処理プログラム Active JP7170478B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018173581A JP7170478B2 (ja) 2018-09-18 2018-09-18 画像処理装置、画像処理方法及び画像処理プログラム
CN201910109701.1A CN110910301B (zh) 2018-09-18 2019-02-11 图像处理装置及方法、和保存有图像处理程序的记录介质
EP19159085.0A EP3627438A1 (en) 2018-09-18 2019-02-25 Image processing apparatus, image processing method, and image processing program
US16/286,261 US11076092B2 (en) 2018-09-18 2019-02-26 Image processing apparatus, image processing method, and image processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018173581A JP7170478B2 (ja) 2018-09-18 2018-09-18 画像処理装置、画像処理方法及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2020046817A true JP2020046817A (ja) 2020-03-26
JP7170478B2 JP7170478B2 (ja) 2022-11-14

Family

ID=65657225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018173581A Active JP7170478B2 (ja) 2018-09-18 2018-09-18 画像処理装置、画像処理方法及び画像処理プログラム

Country Status (4)

Country Link
US (1) US11076092B2 (ja)
EP (1) EP3627438A1 (ja)
JP (1) JP7170478B2 (ja)
CN (1) CN110910301B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11616908B2 (en) 2020-09-11 2023-03-28 Kabushiki Kaisha Toshiba Image processing apparatus and image processing method
US11948225B2 (en) 2020-09-18 2024-04-02 Kabushiki Kaisha Toshiba Image processing apparatus

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7210337B2 (ja) 2019-03-14 2023-01-23 株式会社東芝 画像処理装置、及び、歪み補正係数算出方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018124968A (ja) * 2017-01-27 2018-08-09 株式会社東芝 画像処理装置、及び、画像処理方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11113008A (ja) * 1997-10-08 1999-04-23 Olympus Optical Co Ltd 電子的撮像装置
JP4045822B2 (ja) 2002-03-19 2008-02-13 富士ゼロックス株式会社 画像形成装置
JP3897247B2 (ja) * 2002-05-16 2007-03-22 富士フイルム株式会社 光学歪みの補正方法及び補正装置
JP2005229200A (ja) 2004-02-10 2005-08-25 Fujitsu Ltd ディストーション補正回路
JP2007079708A (ja) 2005-09-12 2007-03-29 Konica Minolta Holdings Inc 画像処理装置及び画像処理方法
JP4702233B2 (ja) * 2006-09-11 2011-06-15 ソニー株式会社 画像データ処理装置および画像データ処理方法
JP2008259070A (ja) 2007-04-06 2008-10-23 Canon Inc 画像形成装置及びその制御方法、プログラム、記憶媒体
JP4528843B2 (ja) * 2008-03-28 2010-08-25 シャープ株式会社 ラインバッファ回路、画像処理装置、および画像形成装置
JP5121671B2 (ja) * 2008-10-30 2013-01-16 株式会社東芝 画像処理プロセッサ
JP4692621B2 (ja) * 2008-12-12 2011-06-01 ソニー株式会社 情報処理装置、バッファ制御方法およびコンピュータプログラム
JP5446429B2 (ja) * 2009-04-27 2014-03-19 ヤマハ株式会社 画像処理装置
JP2012032456A (ja) * 2010-07-28 2012-02-16 Yamaha Corp 画像処理装置
JP5602532B2 (ja) 2010-07-30 2014-10-08 オリンパス株式会社 画像処理装置および画像処理方法
JP2012175303A (ja) * 2011-02-18 2012-09-10 Jvc Kenwood Corp 撮像装置、撮像方法、及びプログラム
WO2013136458A1 (ja) 2012-03-14 2013-09-19 富士機械製造株式会社 画像補正処理装置
JP6743427B2 (ja) * 2016-03-08 2020-08-19 株式会社リコー 情報処理装置、撮像システムおよびデータ転送方法
JP6336000B2 (ja) 2016-10-24 2018-06-06 株式会社三共 遊技機
CN108364249A (zh) 2017-01-27 2018-08-03 株式会社东芝 图像处理装置以及图像处理方法
JP6845173B2 (ja) 2018-03-15 2021-03-17 株式会社東芝 画像処理装置及び画像処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018124968A (ja) * 2017-01-27 2018-08-09 株式会社東芝 画像処理装置、及び、画像処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11616908B2 (en) 2020-09-11 2023-03-28 Kabushiki Kaisha Toshiba Image processing apparatus and image processing method
US11948225B2 (en) 2020-09-18 2024-04-02 Kabushiki Kaisha Toshiba Image processing apparatus

Also Published As

Publication number Publication date
JP7170478B2 (ja) 2022-11-14
EP3627438A1 (en) 2020-03-25
CN110910301A (zh) 2020-03-24
US11076092B2 (en) 2021-07-27
CN110910301B (zh) 2023-10-24
US20200092467A1 (en) 2020-03-19

Similar Documents

Publication Publication Date Title
JP2020046817A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP6845173B2 (ja) 画像処理装置及び画像処理方法
US10659746B2 (en) Image processing device and image processing method
JP5602532B2 (ja) 画像処理装置および画像処理方法
US20070211960A1 (en) Image processing apparatus for correcting distortion of image, imaging apparatus, and method of correcting distortion of image
US20150334319A1 (en) Image processing apparatus, imaging apparatus, and method for processing image
JP2018124968A (ja) 画像処理装置、及び、画像処理方法
JP2007184720A (ja) 画像撮影装置
US11024015B2 (en) Image processing apparatus and distortion correction coefficient calculation method
US9129405B2 (en) Image processing apparatus and method
US8509568B2 (en) Image processing apparatus and image processing method
JP6403401B2 (ja) 画像処理装置、画像処理方法、及び、プログラム
WO2023070862A1 (zh) 校正广角镜头图像畸变的方法、装置及照相设备
JP5676233B2 (ja) 画像処理装置、画像処理方法、及び撮像装置
JP6295619B2 (ja) 画像処理装置及び方法、並びに電子機器
JP2015201677A (ja) 画像処理装置および画像処理方法
US10244179B2 (en) Image processing apparatus, image capturing apparatus, control method, and recording medium
KR102655332B1 (ko) 영상 왜곡 보정 장치 및 방법
JP6273881B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2010154035A (ja) ディストーション補正装置
JP2017017609A (ja) 画像処理装置
JP5867903B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP6440465B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP6091082B2 (ja) 画像処理装置、画像処理方法、及び、プログラム
US20150235349A1 (en) Image processing apparatus, image processing method, and computer-readable recording medium

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20191008

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221101

R150 Certificate of patent or registration of utility model

Ref document number: 7170478

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150