JP4802944B2 - 補間演算装置 - Google Patents

補間演算装置 Download PDF

Info

Publication number
JP4802944B2
JP4802944B2 JP2006235169A JP2006235169A JP4802944B2 JP 4802944 B2 JP4802944 B2 JP 4802944B2 JP 2006235169 A JP2006235169 A JP 2006235169A JP 2006235169 A JP2006235169 A JP 2006235169A JP 4802944 B2 JP4802944 B2 JP 4802944B2
Authority
JP
Japan
Prior art keywords
interpolation
designated
color
address
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006235169A
Other languages
English (en)
Other versions
JP2008060893A (ja
Inventor
恭司 吉野
元伸 外村
創 清野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2006235169A priority Critical patent/JP4802944B2/ja
Priority to US11/891,207 priority patent/US8000563B2/en
Publication of JP2008060893A publication Critical patent/JP2008060893A/ja
Application granted granted Critical
Publication of JP4802944B2 publication Critical patent/JP4802944B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4015Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
    • 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
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • H04N23/843Demosaicing, e.g. interpolating colour pixel values
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/10Circuitry of solid-state image sensors [SSIS]; Control thereof for transforming different wavelengths into image signals
    • H04N25/11Arrangement of colour filter arrays [CFA]; Filter mosaics
    • H04N25/13Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements
    • H04N25/134Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements based on three different wavelength filter elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/10Circuitry of solid-state image sensors [SSIS]; Control thereof for transforming different wavelengths into image signals
    • H04N25/11Arrangement of colour filter arrays [CFA]; Filter mosaics
    • H04N25/13Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements
    • H04N25/135Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements based on four or more different wavelength filter elements
    • H04N25/136Arrangement of colour filter arrays [CFA]; Filter mosaics characterised by the spectral characteristics of the filter elements based on four or more different wavelength filter elements using complementary colours
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0428Gradation resolution change
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/06Colour space transformation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/16Calculation or use of calculated indices related to luminance levels in display data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2209/00Details of colour television systems
    • H04N2209/04Picture signal generators
    • H04N2209/041Picture signal generators using solid-state devices
    • H04N2209/042Picture signal generators using solid-state devices having a single pick-up sensor
    • H04N2209/045Picture signal generators using solid-state devices having a single pick-up sensor using mosaic colour filter
    • H04N2209/046Colour interpolation to calculate the missing colour values

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Color Television Image Signal Generators (AREA)
  • Color Image Communication Systems (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、カラー撮像装置によって得られた画像に対して、拡大や縮小処理などのスケーリングを行うために、画素値の補間演算を行う装置に関し、特に、受光素子の配列としてBayer Pattern配列が用いられている単版のカラー撮像装置の撮影画像に対して補間演算を行うのに適した補間技術に関する。
一般的な受光素子は、検出感度が波長依存性を有しているため、それぞれ最も感度の高い波長域の光を検出する素子としての役割が与えられる。したがって、カラー撮像装置では、たとえば、3原色R(赤),G(緑),B(青)のそれぞれを受け持つ合計3種類の受光素子が撮像面に多数配置されることになる。単版のカラー撮像装置では、同一の撮像面上に各色用の受光素子を、それぞれ所定の規則的パターンに応じて周期的に配置する必要がある。たとえば、最も一般的に利用されているBayer Pattern配列の場合、3原色R(赤),G(緑),B(青)について、正方格子上の奇数行にはRGRGRGRGR......、偶数行にはGBGBGBGBGB......という各色用の受光素子が配置されることになる。また、このBayer Pattern配列を45°回転させたハニカム状の配列も利用されている。
このように、単版のカラー撮像装置の場合、撮像面上にm行n列の受光素子が配列されていたとしても、個々の受光素子は特定の色に関する画素値しか出力できないので、このカラー撮像装置の各受光素子から出力された画素値のみでは、m行n列の画素からなるカラー画像を得ることはできない。たとえば、R色を受け持つ受光素子は、R色の画素値のみを出力するので、当該受光素子の位置に対応する画素については、G色,B色の画素値が欠損していることになる。そこで、この欠損色の画素値を、周囲の欠損色と同じ色の画素値を用いて補間する処理が行われる。このような補間処理は、一般に、「デモザイキング」と呼ばれている。
上述した「デモザイキング」処理は、通常、補間対象となる画素の周囲の2画素もしくは4画素の画素値の平均をとるなどの線形補間によって行われている。ただ、単純な線形補間処理では、画像のエッジ強調に問題が生じるため、たとえば、下記の特許文献1には、補正項を計算して更に補間を行うことにより、エッジ強調に問題が生じない「デモザイキング」処理の手法が開示されている。
特開2005−269645号公報
上述した「デモザイキング」処理は、あくまでも個々の画素についての欠損色の画素値を補う補間処理であるため、処理後も、画素配列の構成(画像の解像度)に変わりはない。このため、画像に対して拡大や縮小処理などのスケーリングを行う場合には、改めてスケーリングのための補間処理を行う必要がある。こちらの補間処理は、撮像面上に受光素子が全く存在していなかった位置に、新たな画素を定義し、既存の周辺画素の画素値を利用して、当該新たな画素の画素値を決定する処理である。このようなスケーリングを行うための補間処理としては、単純な線形補間演算を行う場合もあれば、キュービック補間演算などの高次の補間演算を行う場合もある。
このように、従来は、カラー撮像装置の各受光素子から出力される生のデータ(いわゆるRawデータ)に対して、デモザイキングのための補間処理を実施し、欠損部のない各色プレーンデータを作成し、その後、必要に応じて、各色プレーンデータに対してスケーリングのための補間処理を実行する、というプロセスをとっていた。しかしながら、この従来の手法では、デモザイキングのための補間処理として、単純な線形補間演算を実施しているため、その後に行うスケーリングのための補間処理として、キュービック補間演算などの高次の補間演算を実施したとしても、高次の補間演算の本質的な効果は得られないことになる。すなわち、デモザイキングの段階で粗い補間を実施してしまっているため、スケーリングの段階で精度の高い補間を行ったとしても、本来の効果が得られないことになる。このため、高品位な拡大画像を得ることができない。
そこで本発明は、デモザイキング処理を行う前のデータに対して、スケーリングのための補間処理を直接行うことが可能な補間演算装置を提供することを目的とする。
(1) 本発明の第1の態様は、受けた光についてそれぞれ特定の色の光量を検出して画素値として出力する機能をもった合計m通りの受光素子を、XY座標系上に定義された正方格子上の特定の格子点の位置に、それぞれ所定の規則的パターンに応じて周期的に配置してなる撮像装置によって得られる個々の画像値に基づいて、XY座標系上の任意の位置にある補間点Qのm通りの色の画素値を補間演算によって求める補間演算装置において、
撮像装置を構成する個々の受光素子から出力される画素値を入力する画素値入力部と、
入力した画素値を、各格子点の位置に対応づけた画素値配列として記憶する画素値記憶部と、
補間演算によって画素値を求める対象となる補間点Qについて、当該補間点Qを内包し格子点によって4頂点が構成される最小の正方形を位置基準枠と定め、当該位置基準枠を構成する4頂点のうち、予め定められた相対位置を占める頂点を位置原点αと定め、補間点Qの位置を、正方格子における位置原点αの位置を示す上位アドレス(X,Y)と、位置基準枠内のローカル座標系として定義されたxy座標系における補間点Qの位置を示す下位アドレス(x,y)と、によって指定する補間点指定部と、
m通りの色を順次、画素値を演算すべき演算対象色として指定する演算対象色指定部と、
演算対象色を検出する機能をもった受光素子が配置された格子点によって4頂点が構成され、補間点Qを内包する最小の正方形からなる補間基準枠を、上位アドレス(X,Y)および下位アドレス(x,y)と、演算対象色指定部によって指定された演算対象色に関する規則的パターンと、を用いて決定し、当該補間基準枠を構成する4頂点のうち、予め定められた相対位置を占める頂点を補間原点βと決定する補間基準枠決定部と、
補間基準枠を構成する第1の「一対の対辺」に平行な方向を第1の方向、第2の「一対の対辺」に平行な方向を第2の方向としたときの、補間原点βと補間点Qとの間の第1の方向に関する隔たりdと第2の方向に関する隔たりeとを、上位アドレス(X,Y)および下位アドレス(x,y)に基づいて求め、求めた隔たりd,eを補間基準枠の一辺の長さで規格化した値dおよびeを、それぞれ第1の方向に関する補間割合および第2の方向に関する補間割合と決定する補間割合決定部と、
少なくとも補間基準枠の4頂点に位置する受光素子の画素値を、補間参照値として画素値記憶部から読み出し、これら補間参照値と補間割合d,eとに基づいて補間演算を行い、補間点Qの各演算対象色についての画素値を求める補間演算部と、
を設けるようにしたものである。
(2) 本発明の第2の態様は、上述の第1の態様に係る補間演算装置において、
補間点指定部が、XY座標系上に定義された正方格子の縦横の格子間隔を1としたときの補間点Qの当該XY座標系上での座標値の整数部を上位アドレス(X,Y)とし、小数部を下位アドレス(x,y)として用いるようにしたものである。
(3) 本発明の第3の態様は、上述の第2の態様に係る補間演算装置において、
補間点指定部が、外部から与えられた縦方向および横方向の拡大倍率に基づいて、当該拡大倍率の逆数のピッチで、補間演算が必要な複数の補間点Qを自動的に指定するようにしたものである。
(4) 本発明の第4の態様は、上述の第2または第3の態様に係る補間演算装置において、
補間基準枠決定部が、指定された上位アドレス(X,Y)のうちのXが偶数か奇数か、Yが偶数か奇数か、によって、それぞれ異なる4通りの補間原点決定アルゴリズムを用い、補間原点βの決定を行うようにしたものである。
(5) 本発明の第5の態様は、上述の第1〜第4の態様に係る補間演算装置において、
補間基準枠決定部が、
正方格子の格子線に対して各辺が平行な補間基準枠が形成される画素配列をもった色が演算対象色として指定された場合には、上位アドレス(X,Y)を用いて補間基準枠の決定を行い、
正方格子の格子線に対して各辺が平行にならない補間基準枠が形成される画素配列をもった色が演算対象色として指定された場合には、上位アドレス(X,Y)および下位アドレス(x,y)の双方を用いて補間基準枠の決定を行うようにしたものである。
(6) 本発明の第6の態様は、上述の第1〜第5の態様に係る補間演算装置において、
補間基準枠決定部が、補間基準枠を構成する4頂点のうち、Y座標値が最も小さい頂点の中からX座標値が最も小さい頂点を選択し、選択された頂点を補間原点βと決定するようにしたものである。
(7) 本発明の第7の態様は、上述の第1〜第6の態様に係る補間演算装置において、
補間基準枠決定部が、Bayer Pattern 配列に基づく所定の規則的パターンを用いて補間基準枠の決定を行い、
補間演算部が、Bayer Pattern 配列に基づく所定の規則的パターンを考慮して、読出対象となる補間参照値を決定するようにしたものである。
(8) 本発明の第8の態様は、上述の第7の態様に係る補間演算装置において、
3原色R,G,Bについて、奇数行はRGRGRGRGR......、偶数行はGBGBGBGBGB......とするBayer Pattern 配列を用いるようにしたものである。
(9) 本発明の第9の態様は、上述の第8の態様に係る補間演算装置において、
補間点指定部が、XY座標系上に定義された正方格子の縦横の格子間隔を1としたときの補間点Qの当該XY座標系上での座標値の整数部を上位アドレス(X,Y)とし、小数部を下位アドレス(x,y)として用いるようにしたものである。
(10) 本発明の第10の態様は、上述の第9の態様に係る補間演算装置において、
補間基準枠決定部が、i,jを整数として、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、アドレス(2i−1,2j−1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、アドレス(2i+1,2j−1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、アドレス(2i−1,2j+1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、アドレス(2i+1,2j+1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、アドレス(2i,2j−1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、アドレス(2i+2,2j−1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、アドレス(2i,2j+1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、アドレス(2i+2,2j+1)で示される格子点の位置を補間原点βと決定するようにしたものである。
(11) 本発明の第11の態様は、上述の第9または第10の態様に係る補間演算装置において、
補間割合決定部が、i,jを整数として、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x+1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x−1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x+2)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x+2)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x+1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x−1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定するようにしたものである。
(12) 本発明の第12の態様は、上述の第10または第11の態様に係る補間演算装置において、
下位アドレス(x,y)に関する条件判断を行う一部もしくは全部の場合において、判定式の「≦」に代えて「<」を用い、判定式の「>」に代えて「≧」を用いるようにしたものである。
(13) 本発明の第13の態様は、上述の第1〜第12の態様に係る補間演算装置において、
補間演算部が、補間基準枠の4頂点に位置する受光素子の画素値を、補間参照値として画素値記憶部から読み出し、この4個の画素値と補間割合d,eとに基づいて線形補間演算を行うようにしたものである。
(14) 本発明の第14の態様は、上述の第1〜第12の態様に係る補間演算装置において、
補間演算部が、補間基準枠の4頂点にその周囲の12頂点を加えた合計16頂点に位置する受光素子の画素値を、補間参照値として画素値記憶部から読み出し、この16個の画素値と補間割合d,eとに基づいて高次の補間演算を行うようにしたものである。
(15) 本発明の第15の態様は、上述の第1の態様に係る補間演算装置において、
画素値入力部が、個々の画素値を入力する際に、特定の色の画素値のみを抽出して新たな正方格子上の各格子点の位置に配置しなおす処理を実行し、
画素値記憶部が、個々の色ごとの画素値を、それぞれ個々の色ごとの画素値配列として記憶し、
補間基準枠決定部が、補間点指定部から指定された上位アドレス(X,Y)および下位アドレス(x,y)に対して、個々の色ごとの画素配列に適合させるための変換処理を実行し、変換処理後の各アドレスを用いて補間基準枠の決定を行い、
補間割合決定部が、補間点指定部から指定された上位アドレス(X,Y)および下位アドレス(x,y)に対して、個々の色ごとの画素配列に適合させるための変換処理を実行し、変換処理後の各アドレスを用いて補間割合の決定を行うようにしたものである。
本発明に係る補間演算装置によれば、デモザイキング処理を行う前のいわゆるRawデータに基づいて、すなわち、正方格子上の各格子点位置に配置された欠損色をもつ画素配列に基づいて、任意の座標位置に定義した補間点Qの各色ごとの画素値を求めることができる。したがって、デモザイキング処理を行う前のいわゆるRawデータに対して、スケーリングのための補間処理を直接行うことが可能になる。これにより、最終的に高品位の拡大画像を得ることができる。
以下、本発明を図示する実施形態に基づいて説明する。
<<< §1.従来の一般的な補間演算処理 >>>
はじめに、説明の便宜上、現在最も一般的に利用されているBayer Pattern配列を採用した撮像装置から出力される画像データに対する従来の補間演算処理を簡単に説明しておく。図1は、一般的なBayer Patternに基づく画素配列の一例を示す平面図である。ここでは、図示の便宜上、6×6の小さな画素配列として示してあるが、もちろん、実際の撮像装置の撮像面にはより大きな画素配列が用意されることになる。図示のとおり、この画素配列では、正方格子の各格子点位置に所定色の画素が配置されている。図において「R」は赤色、「G」は緑色、「B」は青色の画素を示している。一般的なBayer Patternに基づく画素配列の場合、図示のとおり、3原色R,G,Bについて、奇数行はRGRGRGRGR......、偶数行はGBGBGBGBGB......という順序で各色の画素が配置されている。
実際の撮像装置では、これら各画素の位置に、各色の波長域に対して良好な検出感度をもった受光素子が配置されることになる。すなわち、この撮像装置は、受けた光についてそれぞれ特定の色(R,G,B)の光量を検出して画素値として出力する機能をもった3通りの受光素子を、正方格子上の特定の格子点の位置に、それぞれ所定の規則的パターンに応じて周期的に配置することにより構成され、これら受光素子からは、それぞれ検出した特定色の光量を画素値とする信号が出力される。したがって、この撮像装置からの出力信号を処理する補間演算装置には、図1に示す配列をもった画素のそれぞれについて、所定の画素値が与えられることになる。
以下、この図1に示すBayer Pattern画素配列をもった撮像装置によって得られた画像データに対する補間処理を説明する。なお、この図1に示すBayer Pattern画素配列を45°回転させると、図2に示すようなハニカム状画素配列が得られる。このハニカム状画素配列は、図1に示すBayer Pattern画素配列を単に回転させただけの構造であり、以下に説明する補間処理は、このハニカム状画素配列に対しても同様に適用可能である。
さて、撮像装置から得られた生の画像データ(いわゆるRawデータ)は、完全なカラー画像データにはなっておらず、個々の画素には欠損色が存在する。すなわち、図1に示す例の場合、6行6列に配置された個々の画素は、いずれも3原色のうちの1色についての画素値しか有していないため、残りの2色が欠損色となる。たとえば、左上の画素はR色の画素値のみしか有していないため、本来のカラー画像データを得るためには、当該画素について、B色およびG色の画素値を補ってやる必要がある。このような補間処理は、前述したとおり、一般に、「デモザイキング処理」と呼ばれている。
図3(a) は、図1に示す画素配列から、赤色(R)の画素のみを取り出して得られるR色Rawデータの構成を示す平面図であり、図3(b) は、これに対するデモザイキング処理により得られるR色プレーンデータの構成を示す平面図である。図3(b) に示すとおり、R色プレーンデータは、6行6列に配置された個々の画素のR色についての画素値によって構成されるデータであるが、図3(a) に示すとおり、R色Rawデータの段階では、いくつかの画素(図にRと記された画素)にしか画素値が与えられておらず、それ以外の画素(図に白丸で示された画素)には、新たにR色についての画素値を与えてやる必要がある。
通常、このようなデモザイキング処理は、補間対象となる画素の周囲の2画素もしくは4画素の画素値の平均をとるなどの線形補間によって行われている。たとえば、図3(a) に二重丸で示す画素1についての画素値は、上下に隣接した一対の画素の画素値の平均値として求めることができ、画素2についての画素値は、左右に隣接した一対の画素の画素値の平均値として求めることができ、画素3についての画素値は、斜めに隣接した4個の画素の画素値の平均値として求めることができる。このような線形補間を行うことにより、図3(a) に示すR色Rawデータにモザイキング処理を施せば、図3(b) に示すようなR色プレーンデータが得られる。
同様に、図4(a) は、図1に示す画素配列から、青色(B)の画素のみを取り出して得られるB色Rawデータの構成を示す平面図であり、図4(b) は、これに対するデモザイキング処理により得られるB色プレーンデータの構成を示す平面図である。この場合も、たとえば、図4(a) に二重丸で示す画素1についての画素値は、上下に隣接した一対の画素の画素値の平均値として求めることができ、画素2についての画素値は、左右に隣接した一対の画素の画素値の平均値として求めることができ、画素3についての画素値は、斜めに隣接した4個の画素の画素値の平均値として求めることができる。
更に、図5(a) は、図1に示す画素配列から、緑色(G)の画素のみを取り出して得られるG色Rawデータの構成を示す平面図であり、図5(b) は、これに対するデモザイキング処理により得られるG色プレーンデータの構成を示す平面図である。Bayer Pattern配列では、G色は、R色やB色に比べて2倍の密度で配置されているため、いずれの画素も、周囲4個の画素を参照して補間が行われる。たとえば、図5(a) に二重丸で示す画素1についての画素値は、上下および左右に隣接した4個の画素の画素値の平均値として求めることができる。
かくして、図1に示すようなRawデータに基づくデモザイキング処理により、図3(b) ,図4(b) ,図5(b) に示すような各色プレーンデータが得られる。これら3枚のプレーンデータは、6行6列の配列を構成する個々の画素について、3原色R,G,Bのすべての画素値を与えるデータであり、本来のカラー画像データである。
こうして、得られた画像データに対して、拡大や縮小などのスケーリングを行う場合には、スケーリングのための補間処理が必要になる。最近は、このスケーリングのための補間処理として、単純な線形補間演算の代わりに、キュービック補間演算などの高次の補間演算を行う場合が少なくない。
図6は、従来の一般的な手法によるスケーリングを含めた補間演算処理の手順を示す流れ図である。まず、ステップS1において、Bayer Pattern配列画素のRawデータの取り込みが行われる。具体的には、たとえば、図1に示すような配列をもった個々の画素の画素値のデータが取り込まれる。続くステップS2では、各色ごとに線形補間を行い、各色プレーンデータの作成が行われる。この処理は、上述したように、「デモザイキング」と呼ばれている。次に、ステップS3において、各色プレーンごとに高次補間処理を行う。この補間処理は、「スケーリング」のための処理である。
単純な線形補間処理に比べて、高次補間処理は、補間演算が複雑になるものの、品質の高い補間画像が得られるメリットがある。この高次補間処理の基本概念を、図7に示す一次元画像のモデルで簡単に説明する。いま、一次元座標軸上に、図示のとおり、所定ピッチで4つの画素P(−1),P(0),P(1),P(2)が配置されており、個々の画素には、それぞれ所定の画素値が定義されているものとする。このような一次元画像を3倍に拡大するスケーリング処理を行う場合、図示のとおり、各画素間を3等分した位置に補間点(図では星印で示す)を定義し、各補間点についての画素値を補間演算によって求める必要がある。
ここでは、画素P(0)とP(1)との間の補間点Qについての画素値を求める場合を考えてみよう。一般的な線形補間では、補間点Qの画素値は、両側に隣接する一対の画素P(0)とP(1)の画素値に基づいて決定される。具体的には、画素のピッチを1とし、画素P(0)の位置座標を0、その画素値をf(0)、画素P(1)の位置座標を1、その画素値をf(1)、補間点Qの位置座標をx(この例では、x=1/3)、その画素値をf(x)とすれば、f(x)=(1−x)・f(0)+x・f(1)なる演算式により、補間点Qの画素値f(x)を求めることができる。ここで、xは、0<x<1の範囲をとる値であり、一般に「補間割合」と呼ばれている。
一方、高次補間では、より多数の画素に基づく補間が行われる。たとえば、図7において、補間点Qの画素値f(x)を求めるために、「4点参照バイキュービック・スプライン補間」と呼ばれている高次補間方法を採る場合、4つの画素P(−1),P(0),P(1),P(2)を参照画素として用い、これら参照画素の各画素値f(−1),f(0),f(1),f(2)を用いて、f(x)=1/5・((−3f(−1)+7f(0)−7f(1)+3f(2))・x+(7f(−1)−13f(0)+8f(1)−2f(2))・x+(−4f(−1)+f(0)+4f(1)−f(2)・x)+f(0)なる演算式により、補間点Qの画素値f(x)が得られることが知られている。
この高次補間の手法は、次のようなプロセスで、二次元画像に拡張して適用することが可能になる。ここでは、図8に示すようなR色プレーンデータが得られている場合に、この画素配列平面上の任意の補間点QのR色に関する画素値を「4点参照バイキュービック・スプライン補間」で求める手順を説明する。
まず、図9に示すように、補間点Qの位置に、正方格子の縦方向の格子線に平行な補間ラインLを引き、正方格子の横方向の格子線L(−1),L(0),L(1),L(2)との交点位置に、それぞれ中間補間点Q(−1),Q(0),Q(1),Q(2)を定義する。そして、図7で説明した一次元画像に関する高次補間の手法を用いて、各中間補間点Q(−1),Q(0),Q(1),Q(2)の画素値を補間により求める。たとえば、中間補間点Q(−1)の画素値は、格子線L(−1)上に並んだ4個の画素1,2,3,4の各画素値を用いて図7で説明した手法を用いれば、前掲の演算式によって求めることができる。同様に、中間補間点Q(0)の画素値は、格子線L(0)上に並んだ4個の画素5,6,7,8の各画素値を用いて求めることができ、中間補間点Q(1)の画素値は、格子線L(1)上に並んだ4個の画素9,10,11,12の各画素値を用いて求めることができ、中間補間点Q(2)の画素値は、格子線L(2)上に並んだ4個の画素13,14,15,16の各画素値を用いて求めることができる。
こうして、4個の中間補間点Q(−1),Q(0),Q(1),Q(2)について、所定の画素値を補間によって得ることができたら、図10に示すように、これら中間補間点Q(−1),Q(0),Q(1),Q(2)の位置に、それぞれ所定の画素値(R色の画素値)をもつ新たな画素17,18,19,20を定義することができる。こうして補間ラインL上に新たに定義された画素17,18,19,20と補間点Qの関係は、図7に示す画素P(−1),P(0),P(1),P(2)と補間点Qの関係と全く同じである。したがって、補間点Qの画素値は、この4個の画素17,18,19,20の各画素値を用いて図7で説明した手法を用いれば、前掲の演算式によって求めることができる。
このように、各色プレーンデータの画素配列面上の任意の補間点Qについて、高次補間処理を施して所定の画素値を決定することができれば、任意の倍率で拡大や縮小を行うスケーリング処理が可能である。図7では、一次元画像を3倍に拡大するスケーリング処理の例を示したが、二次元画像に対するスケーリング処理も、必要な箇所にそれぞれ補間点を定義し、各補間点についての画素値を補間によって求めるようにすれば、同様の手法で実施可能である。たとえば、元の二次元画像を縦横3倍に拡大するのであれば、1つの格子枠を構成する正方形を縦横に3等分して9分割し、分割した各正方形の各頂点位置(分割前の正方形の4頂点を除く)に補間点を定義し、各補間点の画素値を上述した補間処理によって求め、当該画素値をもつ新たな画素を定義すればよい。
このように、従来は、Bayer Pattern配列をなす受光素子を有する撮像装置から得られたカラー画像データに対して、拡大や縮小などのスケーリング処理を施す場合、図6のステップS2において、まず、各色ごとに線形補間を施し、各色プレーンデータを作成するデモザイキング処理を実施し、続いて、ステップS3において、各色プレーンごとに高次補間を行うことによりスケーリングを実施していた。しかしながら、この従来の手法では、既に述べたとおり、ステップS2のデモザイキング時に、単純な線形補間演算を実施しているため、ステップS3のスケーリング時に、キュービック補間演算などの高次の補間演算を実施したとしても、高次の補間演算の本質的な効果が得られず、高品位なスケーリング画像を得ることができない。
<<< §2.本発明に係る補間演算処理の基本手法 >>>
本発明は、§1で述べた従来の手法の問題点を解決するためになされたものであり、その目的は、デモザイキング処理を行う前のデータに対して、スケーリングのための補間処理を直接行うことを可能にすることである。本発明に係る補間演算装置を用いれば、図6に示す従来の手順に代えて、図11の流れ図に示す手順による補間演算が可能になる。この手順では、まず、ステップS1において、Bayer Pattern配列画素のRawデータの取り込みが行われ、続いて、ステップS2において、このRawデータに対して直接高次補間を行い、拡大もしくは縮小した各色プレーンデータを作成することができる。本発明に係る補間演算装置を用いれば、いわば、従来のデモザイキング処理とスケーリング処理とを兼ねた補間処理が実施できる。
続いて、本発明に係る補間演算装置で実施される補間演算処理の基本手法を説明する。図12は、図1に示すBayer Patternに基づく画素配列平面上の任意の位置に補間点Qを定義した状態を示す平面図である。本発明では、図示のとおり、デモザイキングを行う前の状態のRawデータに基づいて、任意の補間点QについてのR色,G色,B色の各画素値を直接求めることが可能になる。
ここでは、まず、R色の画素値を求める方法を説明する。図13は、図12に示すBayer Patternに基づく画素配列の中から、R色の画素のみを抽出して示した平面図である。ただ、説明の便宜上、図13では、図12に示す画素配列の右側に1列、下側に1行を付け足し、7行7列の場合を示してある。図13において、Rと記されている画素は、元のBayer Pattern配列上におけるR色の画素であり、白丸の画素は、元のBayer Pattern配列上におけるR色以外の画素である。また、図13に示す補間点Qは、図12に示す補間点Qと全く同じ位置にある点である。
さて、この図13の画素配列では、敢えて縦横の格子線を1本おきに引いて示してある。すなわち、図12に示す元の画像の格子線ピッチを1とすれば、図13に明示されている格子線のピッチは2ということになる。そこで、この図13において、ピッチが2の正方格子(以下、倍ピッチ正方格子という)に着目すると、R色の画素は、いずれも倍ピッチ正方格子の格子点に配置されていることがわかる。Bayer Pattern配列上におけるR色の画素は、このように倍ピッチ正方格子の各格子点に位置する。そこで、図示のとおり、この倍ピッチ正方格子の横方向の各格子線をそれぞれL(−1),L(0),L(1),L(2)と呼ぶことにすると、図13に示されている補間点QについてのR色の画素値は、図9に示されている補間点QについてのR色の画素値を求める場合と同様に、各格子線L(−1),L(0),L(1),L(2)上に配置されている合計16個の画素の画素値に基づいて、「4点参照バイキュービック・スプライン補間」を実施することにより求めることができる。
もっとも、このような補間演算を行うためには、補間点Qの正確な位置が必要である。本発明では、図13に示すように、水平方向にX軸、垂直方向にY軸をとってXY座標系を定義し、個々の画素の位置を(X,Y)なる座標で表わすことにする。ここで、X,Yは整数値(0,1,2,...)をとる。たとえば、図13の左上隅の画素1は(0,0)、その右隣の画素2は(1,0)、右下隅の画素3は(6,6)なる座標で示される。また、ここでは、倍ピッチ正方格子を構成する個々の格子枠(4辺が各格子線から構成される正方形の枠)の中で、補間点Qを含む格子枠を補間基準枠と呼び、この補間基準枠の左上隅点を補間原点と呼ぶ。補間点Qの正確な位置は、特定の格子点からのX軸方向への隔たりxと、Y軸方向への隔たりyとを用いて、(x,y)で示すことができる。図13の場合、画素4,5,6,7の位置を4頂点とする正方形の枠が、補間基準枠となり、ここでは太線で示してある。また、補間原点は、画素4の位置になる。本願図面では、補間原点に位置する画素を小さな四角で囲って示すことにする。
結局、図13に示す例の場合、補間点Qに対する高次補間処理を行い、R色についての画素値を求めるためには、補間点Qの位置を、上位アドレス(X,Y)と下位アドレス(x,y)で指定すればよい。この図13に示す例の場合、上位アドレス(X,Y)は、画素4の位置を示す役割を果たし、具体的には、(2,2)なる値をとる(後述するように、補間点Qの上位アドレス(X,Y)は、必ずしも補間原点に一致しない)。一方、下位アドレス(x,y)は、この画素4を基準としたときの補間点Qの正確な位置を示す座標値であり、実際の補間演算は、この座標値x,yに基づいて定まる補間割合を用いて実施される。
続いて、補間点QについてのB色の画素値を求める方法を説明する。実は、B色の画素値を求める手法は、上述したR色の画素値を求める手法と全く同様である。図3(a) に示すR色Rawデータと、図4(a) に示すB色Rawデータとを比較してみればわかるとおり、両者は1ピッチ分だけ左右および上下にずれているものの、その基本構成は全く同じであり、図13で説明した手法と同様の手法により、補間点QについてのB色の画素値を求めることができる。
これに対して、補間点QについてのG色の画素値を求めるには、若干の工夫が必要になる。図14は、図12に示すBayer Patternに基づく画素配列の中から、G色の画素のみを抽出して示した平面図である。すなわち、図14において、Gと記されている画素は、元のBayer Pattern配列上におけるG色の画素であり、白丸の画素は、元のBayer Pattern配列上におけるG色以外の画素である。
さて、この図14の画素配列では、敢えてG色の画素位置を結ぶ斜め方向の格子線を引いて示してある。ここで、図12に示す元の画像の格子線ピッチを1とすれば、図14に明示されている格子線のピッチは√2ということになり、個々の格子線は斜め45°の方向を向いている。そこで、この図14において、ピッチが√2で斜め45°方向を向いた正方格子(以下、√2ピッチ正方格子という)に着目すると、G色の画素は、いずれも√2ピッチ正方格子の格子点に配置されていることがわかる。Bayer Pattern配列上におけるG色の画素は、このように√2ピッチ正方格子の各格子点に位置する。そこで、図示のとおり、この√2ピッチ正方格子の各格子線をそれぞれL(−1),L(0),L(1),L(2)と呼ぶことにすると、図14に示されている補間点QについてのG色の画素値は、図9に示されている補間点QについてのR色の画素値を求める場合と同様に、各格子線L(−1),L(0),L(1),L(2)上に配置されている合計16個の画素(図14では、そのすべては示されていない)の画素値に基づいて、「4点参照バイキュービック・スプライン補間」を実施することにより求めることができる。
ここでも、√2ピッチ正方格子を構成する個々の格子枠の中で、補間点Qを含む格子枠を補間基準枠と呼ぶことにする。図14の場合、画素1,2,3,4の位置を4頂点とする正方形の枠が補間基準枠となり、ここでは太線で示してある。また、このように補間基準枠が斜め45°に傾斜した正方形によって構成される場合には、この補間基準枠の上隅点を補間原点と呼ぶことにする。図示の例の場合、画素1の位置が補間原点となるので、画素1を小さな四角で囲って示してある。補間演算に用いられる補間割合は、この補間原点に対する補間点Qの隔たりに基づいて定められる。
もっとも、このような補間割合を決定するためには、座標系を45°回転させるための補正が必要になる。これを図15を参照しながら説明しよう。図15は、図14に太線で示した補間基準枠の周辺部分の拡大図である。前述したとおり、本発明では、補間点Qの位置は、上位アドレス(X,Y)と下位アドレス(x,y)で指定される。ここで留意すべき点は、これらのアドレスがXY座標系におけるアドレス(すなわち、45°回転していない正則な座標系上のアドレス)であるという点である。すなわち、上位アドレス(X,Y)と下位アドレス(x,y)で補間点Qの位置が指定された場合、上位アドレス(X,Y)で示される画素の位置は、図15の左上隅の画素5ということになり、下位アドレスxは、画素5を基準としたときのX軸方向(図の右方向)への隔たりを示し、下位アドレスyは、画素5を基準としたときのY軸方向(図の下方向)への隔たりを示すことになる。別言すれば、補間点Q(x,y)は、図の左上隅の画素5の位置をxy座標系の原点として(x軸は右方向が正方向、y軸は下方向が正方向)、座標値(x,y)で示される点ということになる。
ところが、補間演算を行う格子は、45°回転しているため、補間演算に用いる補間割合(図7の一次元画像の例におけるxに相当する値)は、45°回転させた座標系上の値を用いる必要がある。具体的には、図15に示すように第1の方向Dおよび第2の方向Eを定義すると、第1の方向Dに関する補間割合は、補間点Q(x,y)と格子線L1との距離d(もしくは、補間点Q(x,y)と格子線L3との距離でもよい)に応じた値になり、第2の方向Eに関する補間割合は、補間点Q(x,y)と格子線L4との距離e(もしくは、補間点Q(x,y)と格子線L2との距離でもよい)に応じた値になる。
そこで、図15における値d,eと値x,yとの関係を検討してみる。ここでは、元のBayer Pattern画素配列のピッチを単位長1として考え、0<x<1、0<y<1という前提で以下の話を進めることにする。まず、図15において、
p=y−(1−x) であるから
d=p/√2=(y−(1−x))/√2
=(y+x−1)/√2 となる。また、
q=(1−x)・√2 であるから
e=q+d=(1−x)・√2+(y+x−1)/√2
=(y−x+1)/√2 となる。
結局、xy座標系上におけるアドレス(x,y)で補間点Q(x,y)の位置が指定されたとしても、上式を用いて、45°回転させた座標系上における補間原点(図15の画素1)に対する補間点Q(x,y)の隔たり、すなわち、第1の方向Dに関する隔たりdと、第2の方向Eに関する隔たりeとを求めることができるので、R色やB色で行った手法と同様の補間方法を用いて、補間点Q(x,y)のG色の画素値を求めることが可能になる。
<<< §3.本発明に係る補間演算処理の具体的な手法 >>>
前述した§2では、本発明に係る補間演算処理の基本概念を説明したが、ここでは、より具体的な手法を詳述する。いま、撮像装置から、図16に示すようなBayer Pattern配列された個々の画素の画素値を示すカラー画像データが与えられた場合に、本発明に係る手法によって、この画素配列平面上の任意の位置にある補間点Qに対する補間を行う場合を考える。Bayer Pattern配列では、既に述べたとおり、個々の画素は正方格子上の特定の格子点位置に配置される。そこで、ここでは、正方格子の左上隅を原点として、水平方向にX軸(右方向がX軸の正方向)、垂直方向にY軸(下方向がY軸の正方向)をとり、二次元XY座標系を定義する。このXY座標系の座標軸の単位を、正方格子の格子間隔(すなわち、画素の配列ピッチ)が1になるように定義すれば、個々の画素の位置は、整数値X,Yを用いて、(X,Y)なる座標値で示すことができる。たとえば、左上隅の原点位置にある画素は(0,0)、その右隣の画素は(1,0)なる座標値で示すことができる。
図16は、撮像装置から得られたカラー画像データを構成する全画素配列から、任意の一部分の領域の画素配列を切り出して示したものである。すなわち、i,jを任意の整数とした場合に、横方向には、第(2i−2)列目〜第(2i+5)列目までの区間を抜き出し、縦方向には、第(2j−2)行目〜第(2i+5)行目までの区間を抜き出したものである(「2i」,「2j」のように、i,jに係数2を乗じる表示形式にした理由は後述する)。したがって、たとえば、二重丸で示した画素1は座標値(2i,2)で示され、画素2は座標値(2i+1,2j)で示され、画素3は座標値(2i,2j+1)で示され、画素4は座標値(2i+1,2j+1)で示される。
さて、図示の補間点Qに対する補間演算処理とは、この補間点Qの位置について、R色,G色,B色の各画素値を決定する処理であり、当該処理を行うためには、まず、補間点Qの正確な位置を把握する必要がある。本発明では、この補間点Qの位置を、上位アドレス(X,Y)と下位アドレス(x,y)とに分けて取り扱うことにする。上位アドレス(X,Y)は、補間点Qの所属する格子枠の位置を特定する情報である。図16に示すように、この画素配列には、4頂点位置に画素が配置された多数の正方形状格子枠が存在するが、まず、補間点Qがどの格子枠内の点であるかを把握する。図示の例の場合、補間点Qは、ハッチングを施した格子枠、すなわち、画素1,2,3,4を4頂点とする正方形内の点であることがわかる。
本願では、この格子枠を補間点Qについての「位置基準枠」と呼ぶことにする。別言すれば、「特定の補間点Qについての位置基準枠」とは、「当該補間点Qを内包し各格子点(各画素位置)によって4頂点が構成される最小の正方形」ということになる。図にハッチングを施した領域は、補間点Qについての位置基準枠の内部領域である。なお、補間点Qが境界線上(すなわち、正方形の辺上)に位置する場合には、予め定めた規則により、いずれか一方の領域に含まれるものとして処理すればよい。ここでは、垂直方向の境界線(格子線)上に位置する補間点Qは、当該境界線の右側に位置する格子枠内の点として取り扱い、水平方向の境界線(格子線)上に位置する補間点Qは、当該境界線の下側に位置する格子枠内の点として取り扱うようにしている。
位置基準枠は、その4頂点を構成する格子点(画素)を指定することによって特定することができる。たとえば、図示の例の場合、補間点Qについての位置基準枠は、画素1,2,3,4を指定することによって特定できる。ただ、実用上は、たとえば、「4頂点のうちの左上の点を代表頂点として用いる」というような規則を定めておけば、左上の頂点のみを指定するだけで、位置基準枠の特定が可能になる。たとえば、図示の例の場合、画素1のみを指定するだけで、補間点Qについての位置基準枠の特定が可能である(画素1を左上の頂点とする正方形は、1つに特定される)。本願では、位置基準枠を特定するために用いられる代表頂点のことを「位置原点α」と呼ぶことにする。図示の例の場合、補間点Qの位置原点αは、画素1の位置ということになる。このように、位置原点αは、いずれかの画素の位置に一致するので、整数値X,Yを用いて、(X,Y)なる座標値で示すことができる。図示の例の場合、補間点Qの位置原点αは、座標値2i,2jを用いて、α(2i,2j)で示すことができる。以下、図面上では、この位置原点αに位置する画素を二重丸で示すことにする。
さて、図示の例における位置原点α(2i,2j)は、補間点Qがどの位置基準枠内に存在するかという大まかな位置情報しか示していない。すなわち、整数値X,Yを用いて表現される上位アドレス(X,Y)だけでは、補間点Qの大まかな位置しか示すことができない。補間点Qの正確な位置を示すためには、当該位置基準枠内での位置情報が必要になる。下位アドレス(x,y)は、この位置基準枠内での位置情報を示すためのものである。
図17は、図16にハッチングを施して示す位置基準枠内の拡大平面図である。図示のとおり、この位置基準枠の4頂点には、画素1,2,3,4が配置されており、これらの各画素は、i,jをパラメータとして用いれば、P(2i,2),P(2i+1,2j),P(2i,2j+1),P(2i+1,2j+1)で示される。二重丸で示す左上の画素P(2i,2)は、位置原点α(2i,2)に配置された画素である。下位アドレス(x,y)は、この位置基準枠内のローカル座標系として定義されたxy座標系における補間点Q(x,y)の位置を示す座標値である。このxy座標系の原点は、位置基準枠の左上隅(図示の例では、位置原点α(2i,2))であり、水平方向にx軸(右方向がx軸の正方向)、垂直方向にy軸(下方向がy軸の正方向)がとられている。このxy座標系の座標軸の単位も、XY座標系と同様に、画素の配列ピッチが1になるように定義する。xy座標系は、個々の位置基準枠ごとに定義されるローカルな座標系であるから、座標値x,yは、0≦x<1、0≦y<1の範囲内の値をとる(等号の位置は、境界線上に位置する補間点Q(x,y)をいずれの位置基準枠内の点として取り扱うかによって異なる)。
結局、補間点Qは、上位アドレス(X,Y)と下位アドレス(x,y)との組合わせによって表現することができる。ここで、上位アドレス(X,Y)は、補間点Qについての位置原点αを特定する整数値からなるアドレスである。図17に示す例の場合、上位アドレス(2i,2j)によって、位置原点α(2i,2j)が特定されることになる(画素配列上の第2i列目第2j行目の画素の位置として特定できる)。また、下位アドレス(x,y)は、この位置原点α(2i,2j)を座標の原点とするローカル座標系における座標値である。
続いて、補間点Qを示す上位アドレス(X,Y)および下位アドレス(x,y)に基づいて、具体的にどのような補間演算処理が実行されるかについて、各色ごとに説明する。ここでは、図18に示すようなBayer Pattern画素配列の平面上において、任意の補間点Qが指定された場合を考える(なお、図18では、図示の便宜上、6行6列分の画素配列しか示されていないが、実際には、上下左右にも同じBayer Patternの画素配列が更に広がっているものとする)。上述したとおり、補間点Qは、上位アドレス(X,Y)と下位アドレス(x,y)との組合わせによって表現される。ここで、上位アドレス(X,Y)は、図に二重丸で示す画素1の位置に定義される位置原点αを特定するものである。すなわち、上位アドレス(X,Y)は、画素1が、全画素配列における第X列目、第Y行目の画素であることを示している。また、下位アドレス(x,y)は、位置原点α(画素1の位置)を座標の原点として定義されたxyローカル座標系における補間点Qの座標値である。
§1では、図7に示す一次元画像について、補間点Qの画素値を、「4点参照バイキュービック・スプライン補間」の手法で求める例を説明した。この補間演算処理で必要となる値は、4つの参照画素P(−1),P(0),P(1),P(2)の各画素値f(−1),f(0),f(1),f(2)と、補間割合xである。これらの値が得られれば、補間点Qの画素値f(x)は、f(x)=1/5・((−3f(−1)+7f(0)−7f(1)+3f(2))・x+(7f(−1)−13f(0)+8f(1)−2f(2))・x+(−4f(−1)+f(0)+4f(1)−f(2)・x)+f(0)なる演算式により求まる。このように、補間演算処理に必要な情報は、「どの画素を参照画素とするか」という情報と「補間割合はいくつか」という情報である。
一方、§2では、図13を参照しながら、本発明に係る手法で二次元画像のR色についての補間演算処理を行う基本概念を説明した。この図13に示す例では、補間点QについてのR色の画素値を得るために、R色の画素のみを格子点とする倍ピッチ正方格子において、補間点Qを含む格子枠を補間基準枠(図13に太線で示されている)と定め、この補間基準枠の左上隅点を補間原点(小さな正方形で囲った画素4の位置)と定め、「どの画素を参照画素とするか」という情報と「補間割合はいくつか」という情報を、補間基準枠および補間原点を用いて特定している。具体的には、「どの画素を参照画素とするか」という情報は、補間基準枠を利用して特定できる。すなわち、「4点参照バイキュービック・スプライン補間」の場合、倍ピッチ正方格子において補間基準枠よりもひとまわり大きな正方形(図13において、画素1と画素3を対角とする正方形)内に含まれる全16個のR色画素が参照画素ということになる。また、「補間割合はいくつか」という情報は、図13に示す例の場合、補間原点(画素4)に対する補間点Qの隔たりを示すローカル座標系上での座標値(x,y)を利用して特定できる。
結局、本発明に係る手法で、任意の補間点Qに対する補間演算を行う上では、まず、当該補間点Qの位置を把握するために、位置基準枠およびその左上頂点にある位置原点α(X,Y)、すなわち上位アドレスを決定し、この位置原点α(X,Y)を基準とした補間点Qのローカル座標系上での座標値(x,y)、すなわち下位アドレスを決定する。次に、これらのアドレスに基づいて、個々の色ごとに、補間基準枠およびその左上頂点にある補間原点βを決定し、補間基準枠を利用して参照画素を特定し、補間原点βを利用して補間割合を特定することになる。
以上の基本方針に従って、個々の色ごとに実施すべき補間演算処理を述べよう。まず、R色についての処理を説明する。図18に示す補間点Qについての補間を行う場合、まず、この補間点Qについての位置基準枠が決定され、その左上頂点として位置原点が決定される。「位置基準枠」は、「補間点Qを内包し格子点によって4頂点が構成される最小の正方形」として定義されるので、図18の例の場合、画素1,2,3,4を4頂点とする正方形が位置基準枠となり、その左上に位置する画素1が位置原点αとなる(位置原点は二重丸で示す)。そして、補間点Qの正確な位置は、この位置原点αを座標原点とするローカル座標系の座標値(x,y)として与えられる。
一方、補間演算処理を行うために、図19に示すような画素配列を考える。この画素配列は、図18に示す各色画素のうちのR色画素についてのみ「R」と記載し、残りの2色の画素を白丸で表わしたものである。補間点Qについての「補間基準枠」は、「演算対象色を検出する機能をもった受光素子が配置された格子点によって4頂点が構成され、補間点Qを内包する最小の正方形」として定義されるので、図19に示す例の場合、R色の画素5,6,7,4を4頂点とする正方形が補間基準枠(図では太線で示す)となり、その左上に位置する画素5が補間原点βとなる(補間原点は小さな正方形で囲って示す)。
こうして、補間点QについてのR色補間を行う場合、図19に示すように、画素5の位置に補間原点βが定義され、この補間原点βを左上頂点とし、R色の画素5,6,7,4を4頂点とする正方形として、図に太線で示す補間基準枠が定義される。こうして、補間基準枠が定義されれば、補間演算処理で用いる参照画素が決定できる。すなわち、「4点参照バイキュービック・スプライン補間」を行う場合であれば、図示の例の場合、太線で示した補間基準枠よりもひとまわり大きく、R色の画素を4頂点とする正方形に含まれる合計16個のR色の画素が参照画素として選ばれ、これら各参照画素の画素値を用いた補間演算が実行される。
具体的には、図19に示す格子線L(0),L(1),L(2)は、図13に示す同じ符号で示す格子線に対応することになる(図19では格子線L(−1)は示されていないが、図の上方の2行上に位置する)。したがって、補間点Qを通り縦方向の格子線に平行な補間ラインLを描き、この補間ラインLと各格子線L(−1),L(0),L(1),L(2)との交点に、それぞれ中間補間点Q(−1),Q(0),Q(1),Q(2)をとれば(図19には、Q(−1)は示されていない)、各格子線L(−1),L(0),L(1),L(2)上の4個の参照画素の画素値を用いた横方向の補間演算により、各中間補間点Q(−1),Q(0),Q(1),Q(2)の画素値を求めることができる。たとえば、中間補間点Q(0)の画素値は、画素8,5,6,9の画素値を用いた演算によって求まる。こうして、4個の中間補間点Q(−1),Q(0),Q(1),Q(2)の画素値が得られたら、これらの画素値を用いた縦方向の補間演算処理により、補間点Qの画素値を得ることができる。
続いて、B色についての処理を説明するために、図20に示すような画素配列を考える。この画素配列は、図18に示す各色画素のうちのB色画素についてのみ「B」と記載し、残りの2色の画素を白丸で表わしたものである。この場合、補間点Qについての「補間基準枠」は、B色の画素1,5,6,7を4頂点とする正方形(図では太線で示す)となり、その左上に位置する画素1が補間原点βとなる(補間原点は小さな正方形で囲って示す)。
こうして、補間点QについてのB色補間を行う場合、図20に示すように、画素1の位置に補間原点βが定義され、この補間原点βを左上頂点とし、B色の画素1,5,6,7を4頂点とする正方形として、図に太線で示す補間基準枠が定義される。こうして、補間基準枠が定義されれば、補間演算処理で用いる参照画素が決定できる。すなわち、「4点参照バイキュービック・スプライン補間」を行う場合であれば、図示の例の場合、太線で示した補間基準枠よりもひとまわり大きく、B色の画素を4頂点とする正方形に含まれる合計16個のB色の画素が参照画素として選ばれ、これら各参照画素の画素値を用いた補間演算が実行される。
具体的には、図20に示す格子線L(0),L(1),L(2)は、図13に示す同じ符号で示す格子線に対応することになる(図20では格子線L(−1)は示されていないが、図の上方の1行上に位置する)。したがって、前述したR色の場合と同様に、各中間補間点Q(−1),Q(0),Q(1),Q(2)の画素値を求めることができ(たとえば、中間補間点Q(0)の画素値は、画素8,1,5,9の画素値を用いた演算によって求まる)、これらの4個の画素値を用いた縦方向の補間演算処理により、補間点Qの画素値を得ることができる。
ここで、注意を払うべき第1の留意点は、図に二重丸で示す「位置原点α」と、図に小さな四角で囲って示す「補間原点β」とが、必ずしも一致しない点である。たとえば、図19に示すR色に関する処理においては、位置原点α(画素1)の斜め左上に補間原点β(画素5)が設定されており、両者は一致しない。これに対して、図20に示すB色に関する処理においては、位置原点α(画素1)と補間原点β(画素1)とは同一の位置に設定されており、両者は一致する。もっとも、この一致/不一致の問題は、R色に関する処理においては両者は一致せず、B色に関する処理においては両者が一致する、というように色ごとに一義的に決まる問題ではなく、補間点Qの位置と、各色の画素位置との相対的な関係に基づくものであり、後の§4で述べるように、ある規則性に基づいて決まる問題である。
第2の留意点は、上記第1の留意点に関連して生じる事項であるが、下位アドレス(x,y)で示される補間点Qの位置が、必ずしもそのまま補間割合を示す値として利用できるわけではないという点である。補間点Qの位置を示す下位アドレス(x,y)は、位置原点αを座標原点とするxyローカル座標系上の座標であり、あくまでも位置原点αを基準とした値となっている。これに対して、補間演算処理は、補間原点βを基準とした処理になるため、補間割合の値も、補間原点βを基準としたものにする必要がある。たとえば、図20に示す例の場合は、位置原点αと補間原点βとが一致するため、補間点Qの下位アドレス(x,y)は、補間原点βを原点とした座標系上の数値ということになるが、図19に示す例の場合は、位置原点α(画素1)と補間原点β(画素5)とが一致しないため、補間点Qの下位アドレス(x,y)は、補間原点β(画素5)を原点とした座標系上の数値にはなっていない。したがって、補間原点βを基準とした補間演算を行う上では、下位アドレス(x,y)に所定のオフセット量を加える補正が必要になる。このような補正の具体的内容については、後の§4で詳述する。
そして、第3の留意点は、補間割合の値の規格化の問題である。図7に示す一次元画像に対する補間演算処理を参照すればわかるとおり、通常の補間演算処理では、補間に利用する参照画素の間隔を1とした場合の演算式が用いられる。したがって、二次元画像の場合、ピッチ1で配列されている格子点上の画素を参照画素として用いた補間演算を行う場合は問題は生じないが、参照画素のピッチが任意の数値nになった場合、正しい補間割合の値を算出するために座標値に1/nを乗じる規格化が必要になる。すなわち、下位アドレス(x,y)は、図17に示すように、ピッチ1で配列されている4つの格子点を4頂点とする位置基準枠内の補間点Q(x,y)の座標値を示しているので、たとえば、図20に示す例のように、位置原点αと補間原点βとが一致し、オフセット量を加える補正が必要ない場合であっても、規格化による補正が必要になる。具体的には、図20に示す例の場合、参照画素のピッチは2であるのに対し、用いる補間に用いる演算式は、参照画素のピッチが1である場合を前提としているので、座標値(x,y)に対して1/2を乗じた値を補間割合として用いるような補正が必要になる。このような補正の具体的内容についても、後の§4で詳述する。
最後に、G色についての処理を説明するために、図21に示すような画素配列を考える。この画素配列は、図18に示す各色画素のうちのG色画素についてのみ「G」と記載し、残りの2色の画素を白丸で表わしたものである。このG色画素は、§2でも述べたとおり、図に破線で示すような斜め45°に回転させた√2ピッチ正方格子上の各格子点位置に配置されている。そして、§2で述べたとおり、G色についての補間演算を行うためには、図21に示すG色の画素2,3,5,6を4頂点とする正方形を補間基準枠(図では太線で示す)とし、一番上に位置する画素2を補間原点βとすればよい(補間原点は小さな正方形で囲って示す)。
こうして、補間基準枠が定義されれば、補間演算処理で用いる参照画素が決定できる。すなわち、「4点参照バイキュービック・スプライン補間」を行う場合であれば、図示の例の場合、√2ピッチ正方格子上において太線で示した補間基準枠よりもひとまわり大きく、G色の画素を4頂点とする正方形(破線で示す斜めに配置された正方形)に含まれる合計16個のG色の画素が参照画素として選ばれ、これら各参照画素の画素値を用いた補間演算が実行される。
具体的には、図21に示す格子線L(−1),L(0),L(1),L(2)が、図13に示す同じ符号で示す格子線に対応することになる。したがって、前述したR色やB色の場合と同様に、各中間補間点Q(−1),Q(0),Q(1),Q(2)の画素値を求めることができ(たとえば、中間補間点Q(0)の画素値は、画素7,2,5,8の画素値を用いた演算によって求まる)、これらの4個の中間補間点の画素値を用いた補間演算処理により、補間点Qの画素値を得ることができる。
もちろん、このG色に関する補間処理を行う上でも、前述した3つの留意点に配慮する必要がある。すなわち、位置原点αと補間原点βとの関係が、補間点Qの位置と、各色の画素位置との相対的な関係に基づく所定の規則に基づいて決定されるという第1の留意点、補間割合を決定する際に、補間点Qの下位アドレス(x,y)に所定のオフセット量を加える補正が必要になるという第2の留意点、そして補間割合を決定する際に、√2ピッチ正方格子のピッチが√2であることを考慮して、座標値(x,y)に対して1/√2を乗じる規格化が必要になるという第3の留意点に配慮する必要がある。
しかも、このG色に関する補間処理の場合、上記第1の留意点に更に付加的に配慮すべき事項がある。それは、位置原点αが同じであっても、補間点Qの位置に応じて、異なる補間原点βを定める必要があるという点である。これは、画素配列が45°回転した状態になるG色にのみ生じる固有の問題であり、R色やB色では、このような問題は生じない。別言すれば、R色やB色の場合、1つの位置原点αに対して、必ず1つの補間原点βが一義的に対応づけられるが、G色の場合、1つの位置原点αに対して、補間原点βとなるべき格子点の候補が2つ存在し、補間点Qの位置に応じて、いずれか一方を選択する必要が生じるのである。
この問題を具体例で示そう。既に述べたとおり、図21に示す例の場合、補間点Qに対して、二重丸で示す画素1が位置原点αとして定められるので、この位置原点αに対応する補間原点βとして、図に小さな正方形で囲って示す画素2を定めるようにすれば、画素2,3,5,6を4頂点とする正方形を補間基準枠とした補間演算を行うことができる。ところが、補間点Qが図22に示す位置にあった場合はどうであろうか。この場合も、補間点Qに対しては、二重丸で示す画素1が位置原点αとして定められる。しかしながら、この図22に示す例の場合、画素7を補間原点βとし、画素7,9,2,3を4頂点とする正方形を補間基準枠とする必要がある。このように、G色に関する処理では、位置原点αのみに基づいて補間原点βを一義的に決定することはできない。
別の例として、図22に示す補間点Q1,Q2に着目すると、いずれも位置原点αは画素2になる。ところが、補間点Q1についての補間原点βは位置原点αと同一の画素2とし、補間点Q2についての補間原点βは画素10にする必要がある。これは、補間基準枠が、色Gが配置された格子点によって4頂点が構成され、補間点Qを内包する最小の正方形として定義される必要があるためである。
結局、色Gに関しては、位置原点αのみに基づいて補間原点βを一義的に決定することはできず、補間点Qの所属領域に応じて、二者択一の判定を行う必要がある。図23は、この判定プロセスを示す平面図である。図示のとおり、9個の画素1〜9からなる配列を考える。ここで、画素1,3,5,7,9はG色の画素であり、残りの画素は他の色の画素である。そして、補間点QとG色の画素5との相対的な位置関係として、次の4通りのバリエーションを考える。すなわち、補間点Qが図示の二等辺三角形の領域A1,A2,A3,A4に所属する4通りのバリエーションである。補間点Qが、領域の境界線上に位置する場合には、予め定められたいずれかの領域に所属するものとして取り扱えばよい。補間点QとG色の画素との相対的な位置関係は、この4通りのバリエーションのいずれかに集約される。たとえば、図示する補間点QQ1は、画素を画素の位置へもってくれば、領域A4に所属することになり、図示する補間点QQ2は、画素を画素の位置へもってくれば、領域A2に所属することになる。
このような4通りのバリエーションに分けて考えれば、個々のバリエーションごとに、それぞれ特定の補間原点βを一義的に決定することができる。すなわち、補間点Qが領域A1に所属する場合には画素1を補間原点βとし、補間点Qが領域A2に所属する場合には画素5を補間原点βとし、補間点Qが領域A3に所属する場合には画素5を補間原点βとし、補間点Qが領域A4に所属する場合には画素3を補間原点βとすればよい。
任意の補間点Qが、4通りの領域A1〜A4のうちのいずれに所属するかは、その上位アドレス(X,Y)および下位アドレス(x,y)に基づいて、次のようにして判定することができる。まず、上位アドレス(X,Y)に基づいて、領域A1,A2のグループか、領域A3,A4のグループかの判定が可能である。図1に示すように、一般的なBayer Pattern配列では、奇数行はRGRGRGRGR......、偶数行はGBGBGBGBGB......という配列が採られているため、補間点Qが領域A1またはA2に所属する場合には、当該補間点Qの位置原点をα(X,Y)とすると、「X+Y」は必ず偶数になり、補間点Qが領域A3またはA4に所属する場合には、当該補間点Qの位置原点をα(X,Y)とすると、「X+Y」は必ず奇数になる関係にある。
一方、図23に示すように、画素4,5,7,8の位置を4頂点とする正方形内に、画素4の位置を座標原点とするxy座標系(右方向がx軸の正方向、下方向がy軸の正方向)を定義すると、領域A1,A2の境界線は、y=−x+1なる方程式で示すことができる。したがって、補間点Qの上位アドレス(X,Y)における「X+Y」が偶数であった場合には、下位アドレス(x,y)におけるx,yについて、y≦−x+1なる条件が満たされる場合には、当該補間点Qは領域A1に所属すると判定することができ、y>−x+1なる条件が満たされる場合には、当該補間点Qは領域A2に所属すると判定することができる(等号の位置は、領域の境界線上をどちらの領域に含ませるかによって変わる)。
また、図23に示すように、画素5,6,8,9の位置を4頂点とする正方形内に、画素5の位置を座標原点とするxy座標系(右方向がx軸の正方向、下方向がy軸の正方向)を定義すると、領域A3,A4の境界線は、y=xなる方程式で示すことができる。したがって、補間点Qの上位アドレス(X,Y)における「X+Y」が奇数であった場合には、下位アドレス(x,y)におけるx,yについて、y>xなる条件が満たされる場合には、当該補間点Qは領域A3に所属すると判定することができ、y≦xなる条件が満たされる場合には、当該補間点Qは領域A4に所属すると判定することができる(等号の位置は、領域の境界線上をどちらの領域に含ませるかによって変わる)。
結局、一般的なBayer Pattern配列の場合、R色,B色に関しては、補間点Qの上位アドレス(X,Y)に基づいて補間原点βを決定することができるが、G色に関しての補間原点βを決定するためには、補間点Qの上位アドレス(X,Y)だけではなく、下位アドレス(x,y)をも考慮する必要がある。
<<< §4.補間原点および補間割合の具体的な決定方法 >>>
さて、§3では、補間点Qの位置を示すために、位置原点α(X,Y)を特定する上位アドレス(X,Y)と、この位置原点α(X,Y)に対する補間点Qの隔たりを特定する下位アドレス(x,y)とを定義し、これらアドレスに基づいて、各色ごとに、それぞれ補間原点βと補間割合とを決定し、補間演算処理を実行する基本的な手順を述べた。ここでは、奇数行がRGRGRGRGR......、偶数行がGBGBGBGBGB......という配列をとる一般的なBayer Pattern配列の場合について、補間原点βと補間割合とを決定する具体的な方法を説明する。
ここでは、図16に示すようなBayer Patternからなる一部の画素配列を考える。この画素配列は、既に述べたとおり、i,jを任意の整数とした場合に、横方向に、第(2i−2)列目〜第(2i+5)列目までの区間を抜き出し、縦方向には、第(2j−2)行目〜第(2+5)行目までの区間を抜き出したものである。ここで、「2i」,「2j」のように、i,jに係数2を乗じる表示形式にした理由は、Bayer Pattern配列の場合、個々の画素の位置が、奇数列目か偶数列目か、奇数行目か偶数行目か、によって、それぞれ異なる取り扱いを行う必要があるためである。すなわち、ここでパラメータi,jは、いずれも0,1,2,...といった整数であるので、2iや2jは偶数を示し、2i+1や2j+1は奇数を示すことになる。以下、個々の場合の取り扱いを、各色ごとに説明する。
なお、ここでは、i,jの初期値を0に設定したため、Xの値の偶数・奇数と、画素配列の列の順番の偶数・奇数とは逆転した関係になり、Yの値の偶数・奇数と、画素配列の行の順番の偶数・奇数とは逆転した関係になる。たとえば、図16に示す画素配列において、X=2iとした「第2i列目」は、Xの値は偶数であるが、実際には奇数番目の列になり、Y=2jとした「第2j列目」は、Yの値は偶数であるが、実際には奇数番目の行になる。したがって、以下の説明における偶数・奇数とは、あくまでもXの値およびYの値についての偶数・奇数を言及するものであり、実際の画素配列の行や列の順番(1から始まる序数)の偶数・奇数を意味するものではない。
まず、図24を参照しながら、R色についての補間演算処理を実行する際の取り扱いを説明しよう。R色に関しては、位置原点α(X,Y)の座標値に応じて、次の4通りの取り扱いがなされる。なお、以下の図において、二重丸は位置原点を示し、小さな四角で囲った画素は補間原点を示している。
まず、位置原点がα(2i,2j)で示される場合、すなわち、Xが偶数、Yが偶数の場合は、図24(a) に示すように、補間原点をβ(2i,2j)とすればよい。位置原点がα(2i,2j)の場合、補間点Qは、図にハッチングを施した領域内(位置基準枠内)に位置することになるので、R色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i,2j)となり、位置原点α(2i,2j)と一致する。
次に、位置原点がα(2i+1,2j)で示される場合、すなわち、Xが奇数、Yが偶数の場合は、図24(b) に示すように、補間原点をβ(2i,2j)とすればよい。位置原点がα(2i+1,2j)の場合、補間点Qは、図にハッチングを施した領域内(位置基準枠内)に位置することになるので、R色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i,2j)となり、位置原点α(2i+1,2j)の左側に隣接する格子点になる。
また、位置原点がα(2i,2j+1)で示される場合、すなわち、Xが偶数、Yが奇数の場合は、図24(c) に示すように、補間原点をβ(2i,2j)とすればよい。位置原点がα(2i,2j+1)の場合、補間点Qは、図にハッチングを施した領域内(位置基準枠内)に位置することになるので、R色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i,2j)となり、位置原点α(2i,2j+1)の上方に隣接する格子点になる。
更に、位置原点がα(2i+1,2j+1)で示される場合、すなわち、Xが奇数、Yが奇数の場合は、図24(d) に示すように、補間原点をβ(2i,2j)とすればよい。位置原点がα(2i+1,2j+1)の場合、補間点Qは、図にハッチングを施した領域内(位置基準枠内)に位置することになるので、R色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i,2j)となり、位置原点α(2i+1,2j+1)の斜め左上に隣接する格子点になる。
続いて、図25を参照しながら、B色についての補間演算処理を実行する際の取り扱いを説明しよう。B色に関しても、位置原点α(X,Y)の座標値に応じて、次の4通りの取り扱いがなされる。やはり以下の図において、二重丸は位置原点を示し、小さな四角で囲った画素は補間原点を示している。
まず、位置原点がα(2i,2j)で示される場合、すなわち、Xが偶数、Yが偶数の場合は、図25(a) に示すように、補間原点をβ(2i−1,2j−1)とすればよい。位置原点がα(2i,2j)の場合、補間点Qは、図にハッチングを施した領域内(位置基準枠内)に位置することになるので、B色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i−1,2j−1)となり、位置原点α(2i,2j)の斜め左上に隣接する格子点になる。
次に、位置原点がα(2i+1,2j)で示される場合、すなわち、Xが奇数、Yが偶数の場合は、図25(b) に示すように、補間原点をβ(2i+1,2j−1)とすればよい。位置原点がα(2i+1,2j)の場合、補間点Qは、図にハッチングを施した領域内(位置基準枠内)に位置することになるので、B色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i+1,2j−1)となり、位置原点α(2i+1,2j)の上方に隣接する格子点になる。
また、位置原点がα(2i,2j+1)で示される場合、すなわち、Xが偶数、Yが奇数の場合は、図25(c) に示すように、補間原点をβ(2i−1,2j+1)とすればよい。位置原点がα(2i,2j+1)の場合、補間点Qは、図にハッチングを施した領域内(位置基準枠内)に位置することになるので、B色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i−1,2j+1)となり、位置原点α(2i,2j+1)の左側に隣接する格子点になる。
更に、位置原点がα(2i+1,2j+1)で示される場合、すなわち、Xが奇数、Yが奇数の場合は、図25(d) に示すように、補間原点をβ(2i+1,2j+1)とすればよい。位置原点がα(2i+1,2j+1)の場合、補間点Qは、図にハッチングを施した領域内(位置基準枠内)に位置することになるので、B色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i+1,2j+1)となり、位置原点α(2i+1,2j+1)と一致する。
続いて、図26および図27を参照しながら、G色についての補間演算処理を実行する際の取り扱いを説明しよう。G色の場合、位置原点α(X,Y)の座標値に応じて、4通りの取り扱いがなされるが、更に、この4通りの場合のそれぞれについて、補間点Qの下位アドレス(x,y)に基づいて、2通りのいずれかの取り扱いがなされる。これは、図23で述べたとおりである。なお、これまでの図と同様に、以下の図においても、二重丸は位置原点を示し、小さな四角で囲った画素は補間原点を示している。
まず、位置原点がα(2i,2j)で示される場合、すなわち、Xが偶数、Yが偶数の場合は、補間点Qの下位アドレス(x,y)に基づいて、y≦−x+1なる条件を満たすか(補間点Qが図23の領域A1に位置する場合)、y>−x+1なる条件を満たすか(補間点Qが図23の領域A2に位置する場合)が判定される。そして、前者の場合は、図26(a) に示すように、補間原点をβ(2i,2j−1)とすればよい。位置原点がα(2i,2j)で前者の場合、補間点Qは、図にハッチングを施した領域内に位置することになるので、G色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i,2j−1)となり、位置原点α(2i,2j)の上方に隣接する格子点になる。一方、後者の場合は、図26(b) に示すように、補間原点をβ(2i+1,2j)とすればよい。位置原点がα(2i,2j)で後者の場合、補間点Qは、図にハッチングを施した領域内に位置することになるので、G色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i+1,2j)となり、位置原点α(2i,2j)の右側に隣接する格子点になる。
次に、位置原点がα(2i+1,2j)で示される場合、すなわち、Xが奇数、Yが偶数の場合は、補間点Qの下位アドレス(x,y)に基づいて、y≦xなる条件を満たすか(補間点Qが図23の領域A4に位置する場合)、y>xなる条件を満たすか(補間点Qが図23の領域A3に位置する場合)が判定される。そして、前者の場合は、図26(c) に示すように、補間原点をβ(2i+2,2j−1)とすればよい。位置原点がα(2i+1,2j)で前者の場合、補間点Qは、図にハッチングを施した領域内に位置することになるので、G色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i+2,2j−1)となり、位置原点α(2i+1,2j)の斜め右上に隣接する格子点になる。一方、後者の場合は、図26(d) に示すように、補間原点をβ(2i+1,2j)とすればよい。位置原点がα(2i+1,2j)で後者の場合、補間点Qは、図にハッチングを施した領域内に位置することになるので、G色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i+1,2j)となり、位置原点α(2i+1,2j)と一致する。
また、位置原点がα(2i,2j+1)で示される場合、すなわち、Xが偶数、Yが奇数の場合は、補間点Qの下位アドレス(x,y)に基づいて、y≦xなる条件を満たすか(補間点Qが図23の領域A4に位置する場合)、y>xなる条件を満たすか(補間点Qが図23の領域A3に位置する場合)が判定される。そして、前者の場合は、図27(a) に示すように、補間原点をβ(2i+1,2j)とすればよい。位置原点がα(2i,2j+1)で前者の場合、補間点Qは、図にハッチングを施した領域内に位置することになるので、G色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i+1,2j)となり、位置原点α(2i,2j+1)の斜め右上に隣接する格子点になる。一方、後者の場合は、図27(b) に示すように、補間原点をβ(2i,2j+1)とすればよい。位置原点がα(2i,2j+1)で後者の場合、補間点Qは、図にハッチングを施した領域内に位置することになるので、G色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i,2j+1)となり、位置原点α(2i,2j+1)と一致する。
更に、位置原点がα(2i+1,2j+1)で示される場合、すなわち、Xが奇数、Yが奇数の場合は、補間点Qの下位アドレス(x,y)に基づいて、y≦−x+1なる条件を満たすか(補間点Qが図23の領域A1に位置する場合)、y>−x+1なる条件を満たすか(補間点Qが図23の領域A2に位置する場合)が判定される。そして、前者の場合は、図27(c) に示すように、補間原点をβ(2i+1,2j)とすればよい。位置原点がα(2i+1,2j+1)で前者の場合、補間点Qは、図にハッチングを施した領域内に位置することになるので、G色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i+1,2j)となり、位置原点α(2i+1,2j+1)の上方に隣接する格子点になる。一方、後者の場合は、図27(d) に示すように、補間原点をβ(2i+2,2j+1)とすればよい。位置原点がα(2i+1,2j+1)で後者の場合、補間点Qは、図にハッチングを施した領域内に位置することになるので、G色の補間を行うためには、図に太線で示すような補間基準枠を設定すればよい。その結果、補間原点はβ(2i+2,2j+1)となり、位置原点α(2i+1,2j+1)の右側に隣接する格子点になる。
以上、各色ごとに、個々のバリエーションごとに、補間点Qについての位置原点α(X,Y)を示す上位アドレス(X,Y)と、この位置原点α(X,Y)に対する補間点Qの隔たりを示す下位アドレス(x,y)とに基づいて、特定の補間原点βが対応づけられることを示した。続いて、それぞれのバリエーションごとに、補間割合を決定する方法を述べる。補間割合を決定する上で留意すべき事項は、§3で述べたとおり、オフセット量の補正と、規格化のための補正である。以下、これらの補正を各色ごとに説明する。なお、ここでは説明の便宜上、補間点Qの補間原点βに対する2方向への隔たり(すなわち、オフセット量の補正を行った後の隔たり)を値d,eで示し、これら値d,eに対して、更に規格化のための補正を行った後の値をd,eで示すことにする。補間演算では、値d,eを補間割合として用いることになる。
はじめに、図28を参照しながら、R色に関する補間割合の決定方法を述べる。まず、図28に示す補間点Q1(x,y)について考える。この補間点Q1(x,y)については、画素1が位置原点αとなるが、画素1はR色の画素であるから、α(2i,2j)のケースに相当する。ここで、補間点Q1の位置を示す下位アドレス(x,y)は、画素1に対する隔たりを示す値になる。このケースでは、図示のとおり、補間原点βも画素1になるので、オフセット量は0となり、補間原点βからの横方向の隔たりを示す値dはd=xとなり、縦方向の隔たりを示す値eはe=yとなる。ただ、下位アドレス(x,y)は、画素配列のピッチが1である前提での隔たりを示す値であるのに対し、R色の補間演算を行う際の参照画素のピッチは図示のとおり2となっているので、補間演算に用いる補間割合d,eは、規格化のための補正を行い、d=d/2、e=e/2とする必要がある。結局、このケースでは、補間割合は、d=x/2、e=y/2となる。
次に、図28に示す補間点Q2(x,y)について考える。この補間点Q2(x,y)については、画素2が位置原点αとなるが、画素2はR色の画素1の右側に隣接する画素であるから、α(2i+1,2j)のケースに相当する。ここで、補間点Q2の位置を示す下位アドレス(x,y)は、画素2に対する隔たりを示す値になる。このケースでは、図示のとおり、補間原点βは画素1になるので、横方向の隔たりに関してはオフセット量1を加える必要がある。すなわち、補間原点βからの横方向の隔たりを示す値dはd=x+1となり、縦方向の隔たりを示す値eはe=yとなる。結局、規格化のための補正を加えると、このケースでは、補間割合は、d=(x+1)/2、e=y/2となる。
続いて、図28に示す補間点Q3(x,y)について考える。この補間点Q3(x,y)については、画素3が位置原点αとなるが、画素3はR色の画素1の下方に隣接する画素であるから、α(2i,2j+1)のケースに相当する。ここで、補間点Q3の位置を示す下位アドレス(x,y)は、画素3に対する隔たりを示す値になる。このケースでは、図示のとおり、補間原点βは画素1になるので、縦方向の隔たりに関してはオフセット量1を加える必要がある。すなわち、補間原点βからの横方向の隔たりを示す値dはd=xでよいが、縦方向の隔たりを示す値eはe=y+1となる。結局、規格化のための補正を加えると、このケースでは、補間割合は、d=x/2、e=(y+1)/2となる。
更に、図28に示す補間点Q4(x,y)について考える。この補間点Q4(x,y)については、画素4が位置原点αとなるが、画素4はR色の画素1の斜め右下に隣接する画素であるから、α(2i+1,2j+1)のケースに相当する。ここで、補間点Q4の位置を示す下位アドレス(x,y)は、画素4に対する隔たりを示す値になる。このケースでは、図示のとおり、補間原点βは画素1になるので、横方向の隔たりに関してオフセット量1を加えるとともに、縦方向の隔たりに関してもオフセット量1を加える必要がある。すなわち、補間原点βからの横方向の隔たりを示す値dはd=x+1となり、縦方向の隔たりを示す値eはe=y+1となる。結局、規格化のための補正を加えると、このケースでは、補間割合は、d=(x+1)/2、e=(y+1)/2となる。
以上、R色に関する補間割合の決定方法を述べたが、B色に関する補間割合もほぼ同様の方法で決定することができる。すなわち、図1に示すBayer Pattern配列を見ればわかるとおり、R色とB色とは、行列の偶数と奇数との関係が異なっているだけなので、R色における(2i,2j),(2i+1,2j),(2i,2j+1),(2i+1,2j+1)の各ケースを、それぞれB色における(2i+1,2j+1),(2i,2j+1),(2i+1,2j),(2i,2j)の各ケースに当てはめればよい。
続いて、図29を参照しながら、G色に関する補間割合の決定方法を述べる。図29には、4つの補間点Q1(x,y),Q2(x,y),Q3(x,y),Q4(x,y)が示されている。これら4つの補間点には、いずれも共通の補間基準枠(図に太線で示す正方形)が決定されることになるので、補間原点はいずれも画素1の位置になる。しかし、これら4つの補間点はいずれも位置原点が異なっており、下位アドレス(x,y)は、それぞれの位置原点からの隔たりを示す値になっているため、オフセット量を考慮した取り扱いが必要になる。
まず、補間点Q1(x,y)は、画素5の位置を位置原点としており、G色に関する補間演算を行う際には、図15に示したように、補間点Q(x,y)の下位アドレス(x,y)を、第1の方向Dに関する隔たりdと、第2の方向Eに関する隔たりeに変換する必要がある。変換式は、§2で述べたとおり、
d=(y+x−1)/√2
e=(y−x+1)/√2 である。
この変換式を用いて、値x,yを値d,eに変換する限りは、オフセット量を考慮する必要はない。
次に、補間点Q2(x,y)について考えてみる。図29において、
p=y−x であるから
e=p/√2=(y−x)/√2 となる。また、
q=x・√2 であるから
d=q+e=x・√2+(y−x)/√2
=(y+x)/√2 となる。結局、
d=(y+x)/√2
e=(y−x)/√2 となる。
この変換式を導くには、図29に示されているとおり、xの値として、画素1(補間点Q2(x,y)の位置原点)からの横方向距離を用いているので、上記変換式を用いて、値x,yを値d,eに変換する限りは、オフセット量を考慮する必要はない。
一方、補間点Q3(x,y)は、画素2の位置を位置原点としているので、補間点Q1(x,y)と同様の変換式を流用して、値x,yを値d,eに変換することが可能であるが、y方向に関してはオフセット量1を加える必要があるので、補間点Q1(x,y)についての変換式において、yをy+1に置き換えることにより、
d=(y+x)/√2
e=(y−x+2)/√2 なる変換式が得られる。
また、補間点Q4(x,y)は、画素6の位置を位置原点としているので、補間点Q2(x,y)と同様の変換式を流用して、値x,yを値d,eに変換することが可能であるが、y方向に関してはオフセット量1を加える必要があるので、補間点Q2(x,y)についての変換式において、yをy+1に置き換えることにより、
d=(y+x+1)/√2
e=(y−x+1)/√2 なる変換式が得られる。
この点を考慮して、それぞれの場合の補間割合d,eがどうなるかを見てみよう。まず、図29に示す補間点Q1(x,y)について考える。この補間点Q1(x,y)については、画素5が位置原点αとなるが、画素5はG色の画素ではないから、α(2i,2j)かつy>−x+1のケースに相当する。ここで、補間点Q1の位置を示す下位アドレス(x,y)は、画素5に対する隔たりを示す値になり、前掲の補間点Q1(x,y)に関する変換式により、第1の方向Dについての隔たりdと、第2の方向Eについての隔たりeを、
d=(y+x−1)/√2
e=(y−x+1)/√2
として求めることができる。ただし、G色の補間演算を行う際の参照画素のピッチは図示のとおり√2となっているので、補間演算に用いる補間割合d,eは、規格化のために1/√2を乗じる補正を行い、
=(y+x−1)/2
=(y−x+1)/2
なる演算で求められる。なお、α(2i,2j)かつy≦−x+1のケース(図29において、補間点Q1(x,y)を格子線L1の上方まで移動させたケース)は、後述する補間点Q4(x,y)のケースと等価になる。
次に、図29に示す補間点Q2(x,y)について考える。この補間点Q2(x,y)については、画素1が位置原点αとなるが、画素1はG色の画素であるから、α(2i+1,2j)かつy>xのケースに相当する。ここで、補間点Q2の位置を示す下位アドレス(x,y)は、画素1に対する隔たりを示す値になり、前掲の補間点Q2(x,y)に関する変換式により、第1の方向Dについての隔たりdと、第2の方向Eについての隔たりeを、
d=(y+x)/√2
e=(y−x)/√2
として求めることができる。ただし、G色の補間演算を行う際の参照画素のピッチは図示のとおり√2となっているので、補間演算に用いる補間割合d,eは、規格化のために1/√2を乗じる補正を行い、
=(y+x)/2
=(y−x)/2
なる演算で求められる。なお、α(2i+1,2j)かつy≦xのケース(図29において、補間点Q2(x,y)を格子線L4の上方まで移動させたケース)は、後述する補間点Q3(x,y)のケースと等価になる。
続いて、図29に示す補間点Q3(x,y)について考える。この補間点Q3(x,y)については、画素2が位置原点αとなるが、画素2はG色の画素であるから、α(2i,2j+1)かつy≦xのケースに相当する。ここで、補間点Q3の位置を示す下位アドレス(x,y)は、画素2に対する隔たりを示す値になり、前掲の補間点Q3(x,y)に関する変換式により、第1の方向Dについての隔たりdと、第2の方向Eについての隔たりeを、
d=(y+x)/√2
e=(y−x+2)/√2
として求めることができる。ただし、G色の補間演算を行う際の参照画素のピッチは図示のとおり√2となっているので、補間演算に用いる補間割合d,eは、規格化のために1/√2を乗じる補正を行い、
=(y+x)/2
=(y−x+2)/2
なる演算で求められる。なお、α(2i,2j+1)かつy>xのケース(図29において、補間点Q3(x,y)を格子線L2の下方まで移動させたケース)は、前述した補間点Q2(x,y)のケースと等価になる。
次に、図29に示す補間点Q4(x,y)について考える。この補間点Q4(x,y)については、画素6が位置原点αとなるが、画素6はG色の画素ではないから、α(2i+1,2j+1)かつy≦−x+1のケースに相当する。ここで、補間点Q4の位置を示す下位アドレス(x,y)は、画素6に対する隔たりを示す値になり、前掲の補間点Q4(x,y)に関する変換式により、第1の方向Dについての隔たりdと、第2の方向Eについての隔たりeを、
d=(y+x+1)/√2
e=(y−x+1)/√2
として求めることができる。ただし、G色の補間演算を行う際の参照画素のピッチは図示のとおり√2となっているので、補間演算に用いる補間割合d,eは、規格化のために1/√2を乗じる補正を行い、
=(y+x+1)/2
=(y−x+1)/2
なる演算で求められる。なお、α(2i+1,2j+1)かつy>−x+1のケース(図29において、補間点Q4(x,y)を格子線L3の下方まで移動させたケース)は、前述した補間点Q1(x,y)のケースと等価になる。
以上のとおり、各色ごとに、個々のバリエーションごとに、補間点Qについての位置原点α(X,Y)を示す上位アドレス(X,Y)と、この位置原点α(X,Y)に対する補間点Qの隔たりを示す下位アドレス(x,y)とに基づいて、それぞれ補間割合d,eを決定することができる。
図30は、この§4で述べた内容をまとめた表であり、この表を参照することにより、補間点Qについての位置原点α(X,Y)を示す上位アドレス(X,Y)と、この位置原点α(X,Y)に対する補間点Qの隔たり(詳細位置)を示す下位アドレス(x,y)とに基づいて、各色ごとに、個々のバリエーションごとに、それぞれ対応する補間原点βおよび補間割合d,eを決定することができる。一番左側の欄は、R色,B色,G色の別を示しており、その右の欄(位置原点)は、位置原点α(X,Y)を示す整数値X,Yの偶数・奇数の組合わせの別を示しており、その右の欄(詳細位置)は、下位アドレスを示す値x,yに関する条件判定結果の別を示している。そして、これらの組合わせによる合計16通りのバリエーションについて、それぞれ対応する補間原点βと補間割合d,eがその右側の各欄に示されている。
結局、Bayer Patternに基づく画素配列の場合、この図30に示すような表を用意しておけば、任意の補間点Qが与えられたときに、当該補間点Qの上位アドレス(X,Y)および下位アドレス(x,y)に基づいて、補間原点βおよび補間割合d,eを一義的に決定することができ、当該補間原点βに基づいて、補間基準枠を定め、補間演算に用いる参照画素を定め、これら参照画素の各画素値と補間割合d,eとに基づいて所定の補間演算処理を実行し、当該補間点Qに与えるべきR色,G色,B色の各画素値を求めることができる。
たとえば、図16に示すような補間点Qが与えられた場合、画素1が位置原点αとなり、所定の上位アドレス(X,Y)および下位アドレス(x,y)が決定される。この例の場合、上位アドレス(X,Y)=(2i,2j)であり、下位アドレス(x,y)については、y≦−x+1なる条件が満たされるので、図30に示す表を参照することにより、各色についての補間演算処理を実行することができる。
すなわち、R色については、図30の表のα(2i,2j)の行を参照することにより、補間原点β(2i,2j)、補間割合d=x/2,e=y/2が得られるので、図16に示す画素配列において、(2i,2j),(2i+2,2j),(2i,2j+2),(2i+2,2j+2)で示される位置を4頂点とする正方形(R色の画素のみを構成要素とする倍ピッチ正方格子の格子枠)が補間基準枠と定まる。「4点参照バイキュービック・スプライン補間」を行う場合であれば、この補間基準枠よりもひとまわり大きなR色の倍ピッチ正方格子の格子枠(図16において、(2i−2,2j−2)で示される位置と(2i+4,2j+4)で示される位置とを対角とする正方形)に含まれる全16個のR色画素を参照画素として用い、補間割合をd=x/2,e=y/2とした補間演算が行われ、補間点Qに与えるべきR色の画素値が得られることになる。
一方、B色については、図30の表のα(2i,2j)の行を参照することにより、補間原点β(2i−1,2j−1)、補間割合d=(x+1)/2,e=(y+1)/2が得られるので、図16に示す画素配列において、(2i−1,2j−1),(2i+1,2j−1),(2i−1,2j+1),(2i+1,2j+1)で示される位置を4頂点とする正方形(B色の画素のみを構成要素とする倍ピッチ正方格子の格子枠)が補間基準枠と定まる。「4点参照バイキュービック・スプライン補間」を行う場合であれば、この補間基準枠よりもひとまわり大きなB色の倍ピッチ正方格子の格子枠(図16に示す画素配列からは若干左上に食み出すが、(2i−3,2j−3)で示される位置と(2i+3,2j+3)で示される位置とを対角とする正方形)に含まれる全16個のB色画素を参照画素として用い、補間割合をd=(x+1)/2,e=(y+1)/2とした補間演算が行われ、補間点Qに与えるべきB色の画素値が得られることになる。
更に、G色については、図30の表のα(2i,2j)かつy≦−x+1の行を参照することにより、補間原点β(2i,2j−1)、補間割合d=(y+x+1)/2,e=(y−x+1)/2が得られるので、図16に示す画素配列において、(2i,2j−1),(2i−1,2j),(2i+1,2j),(2i,2j+1)で示される位置を4頂点とする斜め45°に傾斜した正方形(G色の画素のみを構成要素とする√2ピッチ正方格子の格子枠)が補間基準枠と定まる。「4点参照バイキュービック・スプライン補間」を行う場合であれば、この補間基準枠よりもひとまわり大きなG色の√2ピッチ正方格子の格子枠(図16に示す画素配列からは若干食み出すが、(2i,2j−3),(2i−3,2j),(2i+3,2j),(2i,2j+3)で示される位置を4頂点とする斜め45°に傾斜した正方形)に含まれる全16個のG色画素を参照画素として用い、補間割合をd=(y+x+1)/2,e=(y−x+1)/2とした補間演算が行われ、補間点Qに与えるべきG色の画素値が得られることになる。
<<< §5.本発明に係る補間演算装置の構成 >>>
続いて、図31に示すブロック図を参照しながら、本発明に係る補間演算装置の基本構成を説明する。この補間演算装置は、受けた光についてそれぞれ特定の色の光量を検出して画素値として出力する機能をもった合計m通りの受光素子を、XY座標系上に定義された正方格子上の特定の格子点の位置に、それぞれ所定の規則的パターンに応じて周期的に配置してなる撮像装置によって得られる個々の画像値に基づいて、XY座標系上の任意の位置にある補間点Qのm通りの色の画素値を補間演算によって求める機能をもった装置である。§2〜§4で述べた実施形態は、m=3の場合、すなわち、3原色R,G,Bの各画素からなるカラー画像を取り扱う実施形態であるため、ここでも、m=3として、3原色R,G,Bについての実施形態を述べることにする。特に、画素配列が、3原色R,G,Bについて、奇数行はRGRGRGRGR......、偶数行はGBGBGBGBGB......とするBayer Pattern 配列をとる場合の例を述べる。
図示のとおり、この補間演算装置は、画素値入力部110、画素値記憶部120、補間演算部130、補間割合決定部140、補間基準枠決定部150、演算対象色指定部160、補間点指定部170の各構成要素からなる。もっとも、実用上は、これら各構成要素は、いずれもコンピュータもしくはその周辺機器に、所定のプログラムを組み込むことによって実現されることになる。特に、補間演算部130、補間割合決定部140、補間基準枠決定部150、演算対象色指定部160、補間点指定部170の主たる機能は、コンピュータソフトウエアによって実現される機能である。以下、これら各構成要素の機能を順次説明する。
(1) 画素値入力部110および画素値記憶部120
画素値入力部110は、撮像装置を構成する個々の受光素子から出力される画素値を入力するための構成要素であり、画素値記憶部120は、この入力した画素値を、XY座標系上に定義された正方格子上の各格子点の位置に対応づけた画素値配列として記憶する構成要素である。この画素値記憶部120は、たとえば、メモリ素子などの記憶装置によって構成され、個々の画素値は、たとえば、8ビットのデジタルデータとして画素値記憶部120内に格納される。画素値入力部110は、撮像装置と画素値記憶部120とを仲介する役割を果たすが、撮像装置から出力される信号がアナログ信号である場合には、これをデジタル信号に変換する機能を画素値入力部110にもたせておく必要がある。
(2) 補間点指定部170
補間点指定部170は、補間演算によって画素値を求める対象となる補間点Qを指定する機能をもった構成要素である。既に述べたとおり、本発明では、補間点Qの位置は、上位アドレス(X,Y)と下位アドレス(x,y)とによって指定される。上位アドレス(X,Y)は、対象となる補間点Qを内包し、上記正方格子上の格子点によって4頂点が構成される最小の正方形を位置基準枠と定め、当該位置基準枠を構成する4頂点のうち、予め定められた相対位置を占める頂点を位置原点αと定め、この位置原点αを示すアドレスとして定義される。§2〜§4で述べた実施形態では、位置基準枠の左上頂点を位置原点αとして定めているが、位置原点αは、位置基準枠を構成する4頂点のうち、予め定められた相対位置を占める頂点であれば、必ずしも左上頂点にする必要はない。たとえば、位置基準枠の右上頂点、左下頂点、右下頂点などを位置原点αと定めるようなことも可能である。要するに、1つの位置原点αに対して、唯一の位置基準枠が定まり、逆に、1つの位置基準枠に対して、唯一の位置原点αが定まる関係になっていればよい。別言すれば、位置基準枠の決定と位置原点αの決定とは、本質的には同義である。ここでは、§2〜§4で述べた実施形態と同様に、位置基準枠の左上頂点を位置原点αとして定めた場合の実施形態を以下に述べることにする。
補間点Qの位置を示す上位アドレス(X,Y)は、この位置原点αの位置を示すアドレスである。ここでは、XY座標系上に定義された正方格子の格子点ピッチを1に設定することにより、整数値からなるX,Yを用いて、任意の格子点の位置を示すようにしている。具体的には、X,Yは、それぞれ0,1,2,...といった値をとり、上位アドレス(X,Y)は、第X列目、第Y行目の格子点(画素)を示すことになる。
一方、補間点Qの位置を示す下位アドレス(x,y)は、位置基準枠内のローカル座標系として定義されたxy座標系における補間点Qの位置を示すアドレスである。ここで述べる実施形態の場合、図17に示すとおり、位置基準枠の左上頂点として定義された位置原点αを、xy座標系の原点と定め、右方向をx軸の正方向、下方向をy軸の正方向にとったxyローカル座標系が、個々の位置基準枠ごとに定義されている。位置基準枠の一辺は、格子点ピッチと同じ1であるから、変数x,yは、0≦x<1、0≦y<1の範囲内の値をとる。
結局、ここで述べる実施形態の場合、補間点指定部170は、XY座標系上に定義された正方格子の縦横の格子間隔を1としたときの補間点Qの当該XY座標系上での座標値の整数部を上位アドレス(X,Y)とし、小数部を下位アドレス(x,y)として指定する機能を有していることになる。たとえば、正方格子の縦横の格子間隔を1としたときに、座標系の原点からX軸方向に12.7、Y軸方向に28.4だけ隔たった位置にある補間点Qの位置は、各座標値の整数部からなる上位アドレス(12,28)と各座標値の小数部からなる下位アドレス(0.7,0.4)によって指定することができる。
なお、本発明に係る補間演算装置は、主として、画像に対する拡大や縮小などのスケーリングを行うための補間演算を行うために利用される。このような用途に利用する場合には、補間点指定部が170に、外部から与えられた縦方向および横方向の拡大倍率に基づいて、当該拡大倍率の逆数のピッチで、補間演算が必要な複数の補間点Qを自動的に指定する機能をもたせておくとよい。たとえば、元の画像を縦横それぞれ3倍に拡大するには、元の画素配列の縦横ピッチのそれぞれ1/3のピッチで新たな画素を生成する必要があるので、補間点指定部170に、この新たに画素を生成する必要がある点を補間点Qとして順次自動的に指定する機能をもたせておけば、画像の拡大処理が自動的に行われることになる。
(3) 演算対象色指定部160
一方、演算対象色指定部160は、補間点指定部170が1つの補間点Qを指定するごとに、補間演算部130,補間割合決定部140,補間基準枠決定部150に対して、m通りの色を順次、画素値を演算すべき演算対象色として指定する機能を有する。ここに述べる実施形態は、m=3として、3原色R,G,Bの各画素からなるカラー画像を取り扱う実施形態であるため、演算対象色指定部160は、補間点指定部170が1つの補間点Qを指定すると、当該補間点Qについての演算対象色として、まずR色を指定し、R色の画素値が求まったら、続いてG色を指定し、G色の画素値が求まったら、続いてB色を指定する処理を行う。
(4) 補間基準枠決定部150
補間基準枠決定部150は、補間点指定部170によって指定された補間点Qについて、演算対象色指定部160によって指定された色に関する補間基準枠を決定する機能を有する。ここで、補間基準枠とは、演算対象色指定部160によって指定された演算対象色を検出する機能をもった受光素子に対応する画素が配置された格子点によって4頂点が構成され、補間点指定部170によって指定された補間点Qを内包する最小の正方形として定義される。前述したとおり、この補間基準枠は、本願では、図面上に太線の正方形として示されている。
また、補間基準枠決定部150は、この補間基準枠を構成する4頂点のうち、予め定められた相対位置を占める頂点を補間原点βと決定する機能も有している。この補間原点βも、位置原点αと同様に、正方格子上の格子点であるから、整数値X,Yを用いてアドレス(X,Y)で定義することができる。§2〜§4で述べた実施形態では、R色,B色については、補間基準枠を構成する正方形の左上頂点を補間原点βとして定め、G色については、補間基準枠が45°回転した正方形になるため、一番上の頂点を補間原点βとして定めている。
もっとも、補間原点βは、補間基準枠を構成する4頂点のうち、予め定められた相対位置を占める頂点であれば、必ずしも左上頂点や一番上の頂点と定める必要はない。たとえば、R色,B色については、補間基準枠の右上頂点、左下頂点、右下頂点などを補間原点βと定めるようなことも可能であり、G色については、補間基準枠の一番下の頂点、一番左の頂点、一番右の頂点などを補間原点βと定めるようなことも可能である。要するに、個々の色ごとに、1つの補間原点βに対して、唯一の補間基準枠が定まり、逆に、1つの補間基準枠に対して、唯一の補間原点βが定まる関係になっていればよい。別言すれば、補間基準枠の決定と補間原点βの決定とは、本質的には同義である。
ここでは、補間基準枠決定部150が、補間基準枠を構成する4頂点のうち、Y座標値が最も小さい頂点の中からX座標値が最も小さい頂点を選択し、選択された頂点を補間原点βと決定する、というアルゴリズムに基づいて、補間原点βを決定する場合を例とした実施形態を述べることにする。当該アルゴリズムに従えば、R色,B色については、補間基準枠の左上頂点が補間原点βとなり、G色については、補間基準枠の一番上の頂点が補間原点βとなる。これは§2〜§4で述べた実施形態における取り扱いと同じである。
結局、補間基準枠決定部150は、補間点指定部170から与えられた補間点Qについての上位アドレス(X,Y)および下位アドレス(x,y)に基づいて、演算対象色指定部160によって指定された個々の色ごとに、それぞれ補間基準枠を決定し、補間原点βを決定する処理を行うことになる。補間基準枠は、上述したように、「指定された色の画素が配置された格子点によって4頂点が構成され、補間点Qを内包する最小の正方形」として定義されるものであるから、補間基準枠を決定するにあたっては、入力されたカラー画像データの各色の画素の配置に関する規則的パターン(周期的配置パターン)を参照する必要がある。
ここで述べる実施形態の場合は、上述したとおり、入力されたカラー画像データの各色の画素配列が、Bayer Pattern 配列に基づく所定の規則的パターンに従っているので、補間基準枠決定部150は、このBayer Pattern 配列に基づく規則的パターンを前提として、各色ごとに、補間基準枠を決定する処理を行うことになる。各色の画素配列が、周期性をもった規則的パターンであれば、所定のアルゴリズムに基づいて、任意の補間点Qに対する補間基準枠を決定するためのプログラムを作成することが可能なので、補間基準枠決定部150は、このようなプログラムを組み込んだコンピュータの機能によって構成することができる。ただ、実用上は、所定の規則性パターンを考慮して作成したテーブルを用意しておき、このテーブルを参照することにより、補間基準枠の決定(補間原点βの決定)を行うようにすれば十分である。
具体的には、図30に示す表の一部が、上記テーブルとしての役割を果たすことになる。すなわち、図30に示す表における「位置原点」、「詳細位置」、「補間原点」の欄の各データを、補間基準枠決定部150内にテーブルとして用意しておけば、このテーブルを参照することにより、各色ごとに補間基準枠(補間原点β(X,Y))を決定することができる。この図30の表における「位置原点」の欄のデータは、補間点指定部170から与えられる補間点Qの上位アドレス(X,Y)、すなわち、位置原点α(X,Y)に対応したものであり、整数値X,Yの偶数・奇数のバリエーションを示すデータになっている。したがって、補間基準枠決定部150は、補間点指定部170から与えられた上位アドレス(X,Y)のうちのXが偶数か奇数か、Yが偶数か奇数か、によって、それぞれ異なる4通りの補間原点決定アルゴリズムを用い、補間原点βの決定を行えばよい。
たとえば、上位アドレス(12,28)が与えられた場合であれば、X,Yともに偶数であるから、α(2i,2j)のケースに相当する(この場合、i=6,j=14ということになる)。したがって、色Rについては、表より補間原点β(2i,2j)が参照されるので、i=6,j=14を代入して、補間原点β(12,28)が得られる。また、色Bについては、表より補間原点β(2i−1,2j−1)が参照されるので、i=6,j=14を代入して、補間原点β(11,27)が得られる。このように、Bayer Pattern 配列におけるR色やB色のように、正方格子の格子線に対して各辺が平行な補間基準枠が形成される画素配列をもった色が演算対象色として指定された場合には、上位アドレス(X,Y)のみを用いて補間基準枠の決定を行うことができる。
これに対して、Bayer Pattern 配列におけるG色のように、正方格子の格子線に対して各辺が平行にならない補間基準枠が形成される画素配列をもった色が演算対象色として指定された場合には、上位アドレス(X,Y)および下位アドレス(x,y)の双方を用いて補間基準枠の決定を行う必要がある。上の例の場合、G色についての補間基準枠を決定するには、上位アドレス(12,28)とともに、下位アドレス(x,y)が必要になる。たとえば、下位アドレスが(0.7,0.4)であったとすると、x=0.7、y=0.4であるので、図30の表のG色において、α(2i,2j)かつ「y>−x+1」のケースに相当する(この場合、i=6,j=14ということになる)。したがって、色Gについては、表より補間原点β(2i+1,2j)が参照されるので、i=6,j=14を代入して、補間原点β(13,28)が得られる。
結局、補間基準枠決定部150が図30の表を参照して行う補間原点βの決定プロセスをまとめると、i,jを整数として、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、アドレス(2i−1,2j−1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、アドレス(2i+1,2j−1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、アドレス(2i−1,2j+1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、アドレス(2i+1,2j+1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、アドレス(2i,2j−1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、アドレス(2i+2,2j−1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、アドレス(2i,2j+1)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、アドレス(2i+2,2j+1)で示される格子点の位置を補間原点βと決定する処理ということになる。
こうして補間基準枠決定部150で決定された補間基準枠は、補間演算部130へと伝えられる。実際には、補間基準枠は、補間原点β(X,Y)によって特定することができるので、補間演算部130へは、補間原点β(X,Y)を示すアドレス(X,Y)のみを伝達すれば足りる。なお、位置原点α(X,Y)のアドレス値X,Yと、補間原点β(X,Y)のアドレス値X,Yとは、図30に示すように、個々のバリエーションに応じて、一致する場合もあれば、相違する場合もある。
(5) 補間割合決定部140
補間割合決定部140は、補間点指定部170によって指定された補間点Qについて、
演算対象色指定部160で指定された色についての補間演算処理を行う上で必要になる補間割合を決定する機能を有する。ここで、補間割合とは、既に述べたとおり、一次元画像の場合、図7に示すxに相当する値である。すなわち、補間点Qを挟む一対の参照画素P(0),P(1)の距離を1としたときの、一方の参照画素P(0)と補間点Qとの距離に相当する。したがって、補間割合は、基本的に0〜1の間の数値をとる。二次元画像の場合は、直交する2方向のそれぞれについての補間割合が必要になる。たとえば、図9には、補間点Qについて、合計16個の画素1〜16を用いた高次補間処理の例が示されているが、画素6(補間原点β)に対する補間点Qの水平方向の隔たりが補間割合dとなり、垂直方向の隔たりが補間割合eとなる。
補間割合決定部140は、補間割合d,eを求めるために、まず、補間原点βに対する補間点Qの2つの方向に関する隔たりd,eを求める。すなわち、補間基準枠決定部150によって決定された補間基準枠を構成する第1の「一対の対辺」に平行な方向を第1の方向、第2の「一対の対辺」に平行な方向を第2の方向としたときの、補間原点βと補間点Qとの間の第1の方向に関する隔たりdと第2の方向に関する隔たりeとが、補間点Qについての上位アドレス(X,Y)および下位アドレス(x,y)に基づいて求められる。
ここに示すBayer Pattern 配列の実施形態の場合、R色およびB色の場合は、補間基準枠の四辺のうちの一対の対辺はX軸に平行になり、残りの一対の対辺はY軸に平行になるので、第1の方向はX軸方向、第2の方向はY軸方向になる。また、この補間基準枠の左上頂点を補間原点βとしており、下位アドレス(x,y)は、この補間原点βを座標原点とするローカルなxy座標系上のアドレスであるため、R色およびB色の場合は、図28に示すように、必要に応じて値x,yにオフセット量1を加える補正を行うことにより、隔たりd,eを求めることができる。オフセット量を加える補正をどのようにして行うかは、図28を参照して説明したとおり、上位アドレス(X,Y)の値X,Yの偶数・奇数を判定することによって決めることができる。
一方G色の場合は、図29に示すように、第1の方向Dと第2の方向Eは、XY座標系に対して斜め45°傾いているので、補間原点βに対する補間点Qの第1の方向Dに関する隔たりdと、第2の方向Eに関する隔たりeとを求めるためには、図15や図29を参照しながら説明した変換式による変換とともに、上位アドレス(X,Y)の値X,Yの偶数・奇数を判定することによって必要に応じてオフセット量を加える補正を行う必要がある。
かくして、補間原点βに対する補間点Qの2方向に関する隔たりd,eが得られたら、続いて、各色ごとに、補間基準枠の一辺の長さ(補間に用いる参照画素のピッチ)に基づく規格化が必要になる。すなわち、既に述べたとおり、R色およびB色の場合は、図28に示すように、参照画素のピッチが2になるため、1/2を乗じる規格化を行い、d=d/2、e=e/2として補間割合d,eを求めることになり、G色の場合は、図29に示すように、参照画素のピッチが√2になるため、1/√2を乗じる規格化を行い、d=d/√2、e=e/√2として補間割合d,eを求めることになる。求まった補間割合d,eは、補間演算部130へと与えられる。
なお、実用上は、補間割合決定部140内に、補間割合を決定するために用いる専用のテーブルを用意しておき、このテーブルを参照することにより、個々の場合の補間割合を計算するようにするのが好ましい。
具体的には、やはり図30に示す表の一部が、このテーブルとしての役割を果たすことになる。すなわち、図30に示す表における「位置原点」、「詳細位置」、「補間割合」の欄の各データを、補間割合決定部140内にテーブルとして用意しておけば、このテーブルを参照することにより、各色ごとに補間割合(d,e)を決定することができる。前述したとおり、この図30の表における「位置原点」の欄のデータは、補間点指定部170から与えられる補間点Qの上位アドレス(X,Y)、すなわち、位置原点α(X,Y)に対応したものであり、整数値X,Yの偶数・奇数のバリエーションを示すデータになっている。したがって、補間割合決定部140は、補間点指定部170から与えられた上位アドレス(X,Y)のうちのXが偶数か奇数か、Yが偶数か奇数か、によって、それぞれ異なる4通りの補間割合決定式を用い、補間割合d,eの決定を行えばよい。
たとえば、上位アドレス(12,28)および下位アドレス(0.7,0.4)が与えられた場合を考える。この場合、上位アドレスを構成するX,Yはともに偶数であるから、図30の表におけるα(2i,2j)のケースに相当する(この場合、i=6,j=14ということになる)。したがって、色Rについては、表より補間割合決定式として、d=x/2、e=y/2が参照されるので、x=0.7,y=0.4を代入して、補間割合d=0.35、e=0.2が得られる。また、色Bについては、表より補間割合決定式として、d=(x+1)/2、e=(y+1)/2が参照されるので、x=0.7,y=0.4を代入して、補間割合d=0.85、e=0.7が得られる。一方、G色については、図30の表のG色において、α(2i,2j)かつ「y>−x+1」のケースに相当するので、表より補間割合決定式として、d=(y+x−1)/2、e=(y−x+1)/2が参照されるので、x=0.7,y=0.4を代入して、補間割合d=0.05、e=0.35が得られる。
結局、補間割合決定部140が図30の表を参照して行う補間割合の決定プロセスをまとめると、i,jを整数として、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x+1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x−1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x+2)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x+2)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x+1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x−1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定する処理ということになる。
以上述べたとおり、補間割合決定部140や補間基準枠決定部150は、それぞれ所定のテーブルを参照してその機能を果たすことができるが、実用上は、補間割合決定部140と補間基準枠決定部150とにそれぞれ別個のテーブルを用意する必要はなく、図30に示す表をコンピュータ内のいずれかの箇所に格納しておき、同一の表を、補間割合決定部140と補間基準枠決定部150とによって共用すれば十分である。なお、図30の表における下位アドレス(x,y)に関する条件判断を行う判定式の等号は、境界線上の補間点Qに対してどちらの取り扱いを行うかを決めるためのものであるから、等号は一対の判定式のどちら側につけても問題はない。したがって、各判定式の「≦」に代えて「<」を用い、各判定式の「>」に代えて「≧」を用いるようにしてもよい。
(6) 補間演算部130
最後に、補間演算部130の機能を説明する。上述したとおり、補間演算部130に対しては、演算対象色指定部160によって演算対象色の指定が行われ、補間基準枠決定部150からは、決定した補間原点β(X,Y)を示す情報(すなわち、補間基準枠を示す情報)が与えられ、補間割合決定部140からは、決定した補間割合d,eが与えられる。補間演算部130は、これらの情報に基づいて、指定された色に関する補間点Qの画素値を求める補間演算処理を実行する。
このような補間演算処理は、画素値記憶部120に格納されている個々の画素の画素値の中から、いくつかの参照画素の画素値を補間参照値として読み出し、これら読み出した補間参照値と補間割合d,eとを用いた所定の補間演算を実施することにより行うことができる。ここで参照画素は、必ず指定された補間対象色の画素の中から選択される。したがって、補間演算部130は、補間対象となるカラー画像データにおける各色の画素配列の規則的パターンを考慮して、読出対象となる補間参照値を決定する。ここで述べる実施形態の場合、補間演算部130は、Bayer Pattern 配列に基づく所定の規則的パターンを考慮して、読出対象となる補間参照値を決定することになる。
1つの補間点Qに対する補間演算処理を行うために、いくつの参照画素を用いるかは、補間演算の精度に応じて適宜選択することができる。ただ、二次元画像に対する補間処理の場合、最低限4つの参照画素が必要である。また、どの画素を参照画素とすべきかは、補間基準枠(補間原点β)に基づいて決定することができ、上述した最低限4つの参照画素としては、この補間基準枠の4頂点に位置する画素が選択されることになる。したがって、補間演算部130が実行する補間演算処理は、少なくとも補間基準枠の4頂点に位置する画素の画素値を、補間参照値として画素値記憶部120から読み出し、これら補間参照値と補間割合d,eとに基づいて補間演算を行い、補間点Qの各演算対象色についての画素値を求める処理ということができる。
最低限の4つの参照画素を用いて行う補間の最も単純な例は、線形補間である。この場合、補間演算部130は、補間基準枠の4頂点に位置する画素の画素値を、補間参照値として画素値記憶部120から読み出し、この4個の画素値と補間割合d,eとに基づいて線形補間演算を行うことになる。たとえば、R色の場合であれば、図13に示すような補間点Qについて、画素4,5,6,7を4頂点とする補間基準枠が決定されるので、この4つの画素を参照画素として、その画素値を読み出すようにすればよい。たとえば、読み出した各画素値がそれぞれf(4),f(5),f(6),f(7)であったとすると、補間点Qについての画素値f(Q)は、
f(Q)=(f(4)×(1−d)+f(5)×d)×(1−e
+(f(6)×(1−d)+f(7)×d)×e
なる式で求めることができる。
より高い品質の画像を得るためには、上述のような線形補間に代えて、高次補間を行うようにする。§1では、「4点参照バイキュービック・スプライン補間」と呼ばれている高次補間方法の手法を説明し、二次元画像にこの手法を適用する場合には、合計16個の参照画素が必要なことを述べた。補間演算部130において、この手法を用いた高次補間処理を行うのであれば、補間基準枠の4頂点にその周囲の12頂点を加えた合計16頂点に位置する画素の画素値を、補間参照値として画素値記憶部120から読み出し、この16個の画素値と補間割合d,eとに基づいて、§1で述べた高次の補間演算を行うようにすればよい。たとえば、R色の場合であれば、図13に示すような補間点Qについて、画素1,3を対角とする格子内に含まれる全16個のR色画素を参照画素として、その画素値を読み出すようにすればよい。もちろん、より高次の補間を行うのであれば、更にひとまわり大きな格子内に含まれる全36個のR色画素を参照画素として用いる補間処理などを行うことも可能である。
なお、採用する補間方法が定まれば、参照画素の位置は、補間原点βの位置に基づいて単純な計算により求まる。たとえば、Bayer Pattern 配列の場合、R色の画素は図13に示すような配列をとっているので、4つの参照画素を用いた単純な線形補間方法を採る場合であれば、補間原点β(X,Y)とともに(図示の画素4)、(X+2,Y)の位置にある画素(図示の画素5)、(X,Y+2)の位置にある画素(図示の画素6)、(X+2,Y+2)の位置にある画素(図示の画素7)を参照画素として決定し、これら各画素の画素値を読み出すようにすればよい。
<<< §6.本発明の変形例 >>>
最後に、本発明に係る補間演算装置の変形例を述べる。
(1) 画素配列を各色ごとに分離して補間する方式
図31に示す補間演算装置では、画素値記憶部120に、画素値入力部110から取り込まれた画素配列が、そのままの状態で格納されていた。したがって、3原色R,G,BについてのBayer Pattern 配列の場合、画素値記憶部120には、たとえば、図16に示すような画素配列が格納されることになり、補間演算部130は、このような画素配列から、必要な参照画素の画素値を読み出して補間演算を行うことになる。
しかしながら、実際の補間演算では、演算対象色指定部160によって指定された特定の色の画素のみが参照画素として利用され、別な色の画素は全く用いられない。このため、画素値記憶部120にカラー画像データを格納する際に、個々の色ごとのデータに分離して格納するようにしても、原理上、補間演算は可能である。ここで述べる変形例は、このように、画素配列を各色ごとに分離して補間する方式をとる実施形態である。
この場合、まず、画像入力部110が、個々の画素値を入力する際に、特定の色の画素値のみを抽出し、これを新たな正方格子上の各格子点の位置に配置しなおす処理を実行するようにしておく。ここでは、説明の便宜上、図32(a) に示すような6行6列のBayer Pattern 配列画素がカラー画像データとして入力された単純なモデルを例にとって説明する。画像入力部110が、撮像装置から入力する元の画素配列は、この図32(a) に示すように、3原色R,G,Bが混合したものになるが、これを画素値記憶部120に格納する際に、各色ごとに分離して、それぞれ新たな画素配列を生成させる処理を行うようにする。具体的には、R色については、図32(a) に示す画素配列から、R色画素のみを抽出し、これを新たな正方格子上の各格子点の位置に配置しなおすことにより、図32(b) に示すような3行3列の画素配列を構成する。同様に、B色については、図32(a) に示す画素配列から、B色画素のみを抽出し、これを新たな正方格子上の各格子点の位置に配置しなおすことにより、図32(c) に示すような3行3列の画素配列を構成する。一方、G色については、図32(a) に示す画素配列から、G色画素のみを抽出し、これを新たな正方格子上の各格子点の位置に配置しなおすことにより、図33に示すような画素配列を構成する。その結果、画素値記憶部120には、個々の色ごとの画素値が、それぞれ個々の色ごとの画素値配列として格納されることになる。
補間演算部130は、R色についての補間演算処理を実施する際には、画素値記憶部120内の図32(b) に示すR色についての画素配列から参照画素を選択し、画素値を読み出す処理を実行し、B色についての補間演算処理を実施する際には、画素値記憶部120内の図32(c) に示すB色についての画素配列から参照画素を選択し、画素値を読み出す処理を実行し、G色についての補間演算処理を実施する際には、画素値記憶部120内の図33に示すG色についての画素配列から参照画素を選択し、画素値を読み出す処理を実行すればよい。
ただ、各色ごとに、新たな正方格子上に画素配列が作成されたため、元の画素配列と新たに作成された画素配列との間には、画素ピッチに差が生じてしまっている。そこで、元の画素配列上のアドレスで補間点Qの位置を定義した場合、画素ピッチの差による規格化を行う必要がある。また、B色とG色については、補間点Qの位置にオフセット量を考慮した取り扱いをする必要がある。
たとえば、図32(a) に示す元の画素配列上の補間点Qは、左上の画素1を基準にすると、横方向にHx,縦方向にHyだけ隔たった位置にある点として定義できる。しかしながら、図32(b) に示すR色についての画素配列上では、対応する補間点Qは、左上の画素4を基準にすると、横方向にKxr,縦方向にKyrだけ隔たった位置にある点になる。これは、図32(a) に示す元の画素配列において、R色画素1とR色画素3とがピッチ2だけ離れていたのに、図32(b) に示すR色についての画素配列では、隣接するR色画素の間隔がピッチ1に縮小されているためである。したがって、Kxr=Hx/2,Kyr=Hy/2の関係が成り立つことになり、元の画素配列上で位置定義がなされた補間点Qのアドレス値に対しては、R色についての画素配列上では上記関係式に基づいた変換処理を施す必要がある。
同様に、図32(c) に示すB色についての画素配列上では、対応する補間点Qは、左上の画素5を基準にすると、横方向にKxb,縦方向にKybだけ隔たった位置にある点になる。その原因は、隣接するB色画素の間隔がピッチ1に縮小されたという事情に加えて、図32(a) を見ればわかるとおり、R色画素1とB色画素2とが、縦横にそれぞれ1ピッチずつずれているという事情によるものである。すなわち、図32(b) に示すR色画素4は、図32(a) に示すR色画素1を新たな正方格子上の左上位置に配置しなおしたものであり、図32(c) に示すB色画素5は、図32(a) に示すB色画素2を新たな正方格子上の左上位置に配置しなおしたものとなっているため、両者間には、縦横に1ピッチ分のオフセットが生じていることになる。したがって、Kxb=(Hx−1)/2,Kyb=(Hy−1)/2の関係が成り立つことになり、元の画素配列上で位置定義がなされた補間点Qのアドレス値に対しては、B色についての画素配列上では上記関係式に基づいた変換処理を施す必要がある。
また、図33示すG色についての画素配列については、対応する補間点Qは、左上のG色画素6を基準にして反時計まわりに45°回転させた配列上にG色の画素を再配置すると、横方向にKxg,縦方向にKygだけ隔たった位置にある点になる。したがって、Kxg=(Hy+Hx−1)/2,Kyg=(Hy−Hx+1)/2の関係が成り立つことになり(図15で述べた幾何学的変換式に準じた変換式)、元の画素配列上で位置定義がなされた補間点Qのアドレス値に対しては、G色についての画素配列上では上記関係式に基づいた変換処理を施す必要がある。
このように、ここに示す変形例では、補間基準枠決定部150が、補間点指定部170から指定された上位アドレス(X,Y)および下位アドレス(x,y)に対して、画素値記憶部120に格納されている個々の色ごとの画素配列に適合させるための変換処理を実行し、変換処理後の各アドレスを用いて補間基準枠の決定を行うようにし、補間割合決定部140が、補間点指定部170から指定された上位アドレス(X,Y)および下位アドレス(x,y)に対して、画素値記憶部120に格納されている個々の色ごとの画素配列に適合させるための変換処理を実行し、変換処理後の各アドレスを用いて補間割合の決定を行うようにすればよい。
(2) 他の画素配列を用いる方式
これまで述べてきた実施形態は、3原色R,G,BについてのBayer Pattern 配列をとった画素配列についてのものであったが、本発明に係る補間演算装置は、このような画素配列への適用に限定されるものではなく、他のBayer Pattern 配列にも適用可能である。たとえば、図34は、4つの色C(シアン),M(マゼンタ),Y(黄色),G(緑色)を用いた4色Bayer Pattern 配列の一例を示す平面図である。このような画素配列の場合も、個々の色の画素は、それぞれ所定の規則的パターンに応じて周期的に配置されているので、図30に類似した表を定義することができるので、これまで述べてきた実施形態と同様に、本発明を適用することができる。
もちろん、本発明の適用対象となる画素配列は、必ずしもBayer Pattern 配列に限定されるものではない。要するに、本発明は、受けた光についてそれぞれ特定の色の光量を検出して画素値として出力する機能をもった合計m通りの受光素子を、XY座標系上に定義された正方格子上の特定の格子点の位置に、それぞれ所定の規則的パターンに応じて周期的に配置してなる撮像装置によって得られる個々の画像値に基づいて、XY座標系上の任意の位置にある補間点Qのm通りの色の画素値を補間演算によって求める補間演算装置に広く適用可能である。
一般的なBayer Patternに基づく画素配列の一例を示す平面図である。 図1に示す画素配列を45°回転させることにより得られるハニカム状画素配列の一例を示す平面図である。 図1に示す画素配列から、赤色(R)の画素のみを取り出して得られるR色Rawデータと、これに対するデモザイキング処理により得られるR色プレーンデータとを示す平面図である。 図1に示す画素配列から、青色(B)の画素のみを取り出して得られるB色Rawデータと、これに対するデモザイキング処理により得られるB色プレーンデータとを示す平面図である。 図1に示す画素配列から、緑色(G)の画素のみを取り出して得られるG色Rawデータと、これに対するデモザイキング処理により得られるG色プレーンデータとを示す平面図である。 従来の手法による補間演算処理の手順を示す流れ図である。 一次元画像モデルについて、4つの画素に基づく高次補間処理の原理を示す図である。 図3に示すR色プレーンデータ上の任意の位置に補間点Qを定義した状態を示す平面図である。 補間点Qについて、高次補間処理を実施するための前半段階のプロセスを示す平面図である。 補間点Qについて、高次補間処理を実施するための後半段階のプロセスを示す平面図である。 本発明に係る手法による補間演算処理の手順を示す流れ図である。 図1に示すBayer Patternに基づく画素配列平面上の任意の位置に補間点Qを定義した状態を示す平面図である。 図12に示す補間点QのR色についての画素値を求めるための本発明に係る方法を説明する平面図である。 図12に示す補間点QのG色についての画素値を求めるための本発明に係る方法を説明する平面図である。 図14に太線で示した補間基準枠の周辺部分の拡大図である。 図1に示すBayer Patternに基づく画素配列平面上に定義した位置基準枠の一例を示す平面図である。 図16にハッチングを施して示す位置基準枠内の拡大平面図である。 図1に示すBayer Patternに基づく画素配列平面上の任意の位置に定義された補間点Qのアドレス表現を示す図である。 図18に示す補間点QのR色について、本発明に係る補間演算装置を用いて高次補間処理を実施するために用いる正方格子の平面図である。 図18に示す補間点QのB色について、本発明に係る補間演算装置を用いて高次補間処理を実施するために用いる正方格子の平面図である。 図18に示す補間点QのG色について、本発明に係る補間演算装置を用いて高次補間処理を実施するために用いる正方格子の平面図である。 図18に示す補間点QのG色について、本発明に係る補間演算装置を用いて高次補間処理を実施するために用いる正方格子の別な平面図である。 本発明に係る補間演算装置を用いて補間点QのG色について補間原点を決定する際の判定プロセスを示す平面図である。 本発明に係る補間演算装置を用いてR色についての補間演算処理を実施する際のバリエーションを示す平面図である。 本発明に係る補間演算装置を用いてB色についての補間演算処理を実施する際のバリエーションを示す平面図である。 本発明に係る補間演算装置を用いてG色についての補間演算処理を実施する際の第1のバリエーションを示す平面図である。 本発明に係る補間演算装置を用いてG色についての補間演算処理を実施する際の第2のバリエーションを示す平面図である。 本発明に係る補間演算装置を用いてR色についての補間演算処理を実施する際の補間割合に関するオフセット量の設定方法を示す平面図である。 本発明に係る補間演算装置を用いてG色についての補間演算処理を実施する際の補間割合に関するオフセット量の設定方法を示す平面図である。 本発明に係る補間演算装置を用いて補間演算処理を実施する際の位置原点、詳細位置、補間原点、補間割合の関係を示す表である。 本発明に係る補間演算装置の基本構成を示すブロック図である。 本発明の別な実施形態におけるR色,B色の取り扱いを示す平面図である。 本発明の別な実施形態におけるG色の取り扱いを示す平面図である。 4種類の色に関する受光素子の配列例を示す平面図である。
符号の説明
1〜20:画素
110:画素値入力部
120:画素値記憶部
130:補間演算部
140:補間割合決定部
150:補間基準枠決定部
160:演算対象色指定部
170:補間点指定部
A1〜A4:正方格子内の領域
B:青色受光素子/青色の画素
C:シアン色受光素子/シアン色の画素
D:画素配列上の第1の方向
d:第1の方向Dに関する隔たり
:補間割合
E:画素配列上の第2の方向
e:第2の方向Eに関する隔たり
:補間割合
G:緑色受光素子/緑色の画素
Hx,Hy:原点となる画素からの距離
i:任意の整数
j:任意の整数
Kxr,Kyr,Kxb,Kyb,Kxg,Kyg:原点となる画素からの距離
L:補間ライン
L1〜L4:格子線
L(−1),L(0),L(1),L(2):正方格子の横方向の格子線
M:マゼンタ色受光素子/マゼンタ色の画素
P,P(−1),P(0),P(1),P(2):画素
P(2i,2i),P(2i+1,2j),P(2i,2j+1),P(2i+1,2j+1):位置基準枠の4頂点に位置する画素
p:所定区間の長さ
Q,Q1〜Q4,QQ1,QQ2:補間点
Q(−1),Q(0),Q(1),Q(2):中間補間点
q:所定区間の長さ
R:赤色受光素子/赤色の画素
S1〜S4:流れ図の各ステップ
X:XY座標系の座標軸および座標値
x:xy座標系の座標軸および座標値
Y:XY座標系の座標軸および座標値/黄色受光素子/黄色の画素
y:xy座標系の座標軸および座標値
α:位置原点(位置基準枠の左上隅の点)
β:補間原点(補間基準枠の左上隅の点)

Claims (15)

  1. 受けた光についてそれぞれ特定の色の光量を検出して画素値として出力する機能をもった合計m通りの受光素子を、XY座標系上に定義された正方格子上の特定の格子点の位置に、それぞれ所定の規則的パターンに応じて周期的に配置してなる撮像装置によって得られる個々の画像値に基づいて、前記XY座標系上の任意の位置にある補間点Qの前記m通りの色の画素値を補間演算によって求める補間演算装置であって、
    前記撮像装置を構成する個々の受光素子から出力される画素値を入力する画素値入力部と、
    入力した画素値を、前記各格子点の位置に対応づけた画素値配列として記憶する画素値記憶部と、
    補間演算によって画素値を求める対象となる補間点Qについて、当該補間点Qを内包し前記格子点によって4頂点が構成される最小の正方形を位置基準枠と定め、当該位置基準枠を構成する4頂点のうち、予め定められた相対位置を占める頂点を位置原点αと定め、前記補間点Qの位置を、前記正方格子における前記位置原点αの位置を示す上位アドレス(X,Y)と、前記位置基準枠内のローカル座標系として定義されたxy座標系における前記補間点Qの位置を示す下位アドレス(x,y)と、によって指定する補間点指定部と、
    前記m通りの色を順次、画素値を演算すべき演算対象色として指定する演算対象色指定部と、
    前記演算対象色を検出する機能をもった受光素子が配置された格子点によって4頂点が構成され、前記補間点Qを内包する最小の正方形からなる補間基準枠を、前記上位アドレス(X,Y)および下位アドレス(x,y)と、前記演算対象色指定部によって指定された演算対象色に関する前記規則的パターンと、を用いて決定し、当該補間基準枠を構成する4頂点のうち、予め定められた相対位置を占める頂点を補間原点βと決定する補間基準枠決定部と、
    前記補間基準枠を構成する第1の「一対の対辺」に平行な方向を第1の方向、第2の「一対の対辺」に平行な方向を第2の方向としたときの、前記補間原点βと前記補間点Qとの間の前記第1の方向に関する隔たりdと前記第2の方向に関する隔たりeとを、前記上位アドレス(X,Y)および下位アドレス(x,y)に基づいて求め、求めた隔たりd,eを前記補間基準枠の一辺の長さで規格化した値dおよびeを、それぞれ前記第1の方向に関する補間割合および前記第2の方向に関する補間割合と決定する補間割合決定部と、
    少なくとも前記補間基準枠の4頂点に位置する受光素子の画素値を、補間参照値として前記画素値記憶部から読み出し、これら補間参照値と前記補間割合d,eとに基づいて補間演算を行い、前記補間点Qの各演算対象色についての画素値を求める補間演算部と、
    を備えることを特徴とする補間演算装置。
  2. 請求項1に記載の補間演算装置において、
    補間点指定部が、XY座標系上に定義された正方格子の縦横の格子間隔を1としたときの補間点Qの当該XY座標系上での座標値の整数部を上位アドレス(X,Y)とし、小数部を下位アドレス(x,y)として用いることを特徴とする補間演算装置。
  3. 請求項2に記載の補間演算装置において、
    補間点指定部が、外部から与えられた縦方向および横方向の拡大倍率に基づいて、当該拡大倍率の逆数のピッチで、補間演算が必要な複数の補間点Qを自動的に指定することを特徴とする補間演算装置。
  4. 請求項2または3に記載の補間演算装置において、
    補間基準枠決定部が、指定された上位アドレス(X,Y)のうちのXが偶数か奇数か、Yが偶数か奇数か、によって、それぞれ異なる4通りの補間原点決定アルゴリズムを用い、補間原点βの決定を行うことを特徴とする補間演算装置。
  5. 請求項1〜4のいずれかに記載の補間演算装置において、
    補間基準枠決定部が、
    正方格子の格子線に対して各辺が平行な補間基準枠が形成される画素配列をもった色が演算対象色として指定された場合には、上位アドレス(X,Y)を用いて補間基準枠の決定を行い、
    正方格子の格子線に対して各辺が平行にならない補間基準枠が形成される画素配列をもった色が演算対象色として指定された場合には、上位アドレス(X,Y)および下位アドレス(x,y)の双方を用いて補間基準枠の決定を行うことを特徴とする補間演算装置。
  6. 請求項1〜5のいずれかに記載の補間演算装置において、
    補間基準枠決定部が、補間基準枠を構成する4頂点のうち、Y座標値が最も小さい頂点の中からX座標値が最も小さい頂点を選択し、選択された頂点を補間原点βと決定することを特徴とする補間演算装置。
  7. 請求項1〜6のいずれかに記載の補間演算装置において、
    補間基準枠決定部が、Bayer Pattern 配列に基づく所定の規則的パターンを用いて補間基準枠の決定を行い、
    補間演算部が、前記Bayer Pattern 配列に基づく所定の規則的パターンを考慮して、読出対象となる補間参照値を決定することを特徴とする補間演算装置。
  8. 請求項7に記載の補間演算装置において、
    3原色R,G,Bについて、奇数行はRGRGRGRGR......、偶数行はGBGBGBGBGB......とするBayer Pattern 配列を用いることを特徴とする補間演算装置。
  9. 請求項8に記載の補間演算装置において、
    補間点指定部が、XY座標系上に定義された正方格子の縦横の格子間隔を1としたときの補間点Qの当該XY座標系上での座標値の整数部を上位アドレス(X,Y)とし、小数部を下位アドレス(x,y)として用いることを特徴とする補間演算装置。
  10. 請求項9に記載の補間演算装置において、
    補間基準枠決定部が、i,jを整数として、
    指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、アドレス(2i,2j)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、アドレス(2i−1,2j−1)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、アドレス(2i+1,2j−1)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、アドレス(2i−1,2j+1)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、アドレス(2i+1,2j+1)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、アドレス(2i,2j−1)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、アドレス(2i+2,2j−1)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、アドレス(2i,2j+1)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、アドレス(2i+1,2j)で示される格子点の位置を補間原点βと決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、アドレス(2i+2,2j+1)で示される格子点の位置を補間原点βと決定することを特徴とする補間演算装置。
  11. 請求項9または10に記載の補間演算装置において、
    補間割合決定部が、i,jを整数として、
    指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がR色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=(y+1)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=(x+1)/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がB色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現される場合には、指定された下位アドレス(x,y)を用いて、d=x/2、e=y/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x+1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x−1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x+2)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x+2)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>xなる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x)/2、e=(y−x)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy≦−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x+1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定し、
    指定された演算対象色がG色であり、指定された上位アドレス(X,Y)が(2i+1,2j+1)の形式で表現され、指定された下位アドレス(x,y)がy>−x+1なる条件を満たす場合には、指定された下位アドレス(x,y)を用いて、d=(y+x−1)/2、e=(y−x+1)/2なる演算を行うことにより各補間割合d,eを決定することを特徴とする補間演算装置。
  12. 請求項10または11に記載の補間演算装置において、
    下位アドレス(x,y)に関する条件判断を行う一部もしくは全部の場合において、判定式の「≦」に代えて「<」を用い、判定式の「>」に代えて「≧」を用いることを特徴とする補間演算装置。
  13. 請求項1〜12のいずれかに記載の補間演算装置において、
    補間演算部が、補間基準枠の4頂点に位置する受光素子の画素値を、補間参照値として画素値記憶部から読み出し、この4個の画素値と補間割合d,eとに基づいて線形補間演算を行うことを特徴とする補間演算装置。
  14. 請求項1〜12のいずれかに記載の補間演算装置において、
    補間演算部が、補間基準枠の4頂点にその周囲の12頂点を加えた合計16頂点に位置する受光素子の画素値を、補間参照値として画素値記憶部から読み出し、この16個の画素値と補間割合d,eとに基づいて高次の補間演算を行うことを特徴とする補間演算装置。
  15. 請求項1に記載の補間演算装置において、
    画素値入力部が、個々の画素値を入力する際に、特定の色の画素値のみを抽出して新たな正方格子上の各格子点の位置に配置しなおす処理を実行し、
    画素値記憶部が、個々の色ごとの画素値を、それぞれ個々の色ごとの画素値配列として記憶し、
    補間基準枠決定部が、補間点指定部から指定された上位アドレス(X,Y)および下位アドレス(x,y)に対して、前記個々の色ごとの画素配列に適合させるための変換処理を実行し、変換処理後の各アドレスを用いて補間基準枠の決定を行い、
    補間割合決定部が、補間点指定部から指定された上位アドレス(X,Y)および下位アドレス(x,y)に対して、前記個々の色ごとの画素配列に適合させるための変換処理を実行し、変換処理後の各アドレスを用いて補間割合の決定を行うことを特徴とする補間演算装置。
JP2006235169A 2006-08-31 2006-08-31 補間演算装置 Expired - Fee Related JP4802944B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006235169A JP4802944B2 (ja) 2006-08-31 2006-08-31 補間演算装置
US11/891,207 US8000563B2 (en) 2006-08-31 2007-08-09 Interpolation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006235169A JP4802944B2 (ja) 2006-08-31 2006-08-31 補間演算装置

Publications (2)

Publication Number Publication Date
JP2008060893A JP2008060893A (ja) 2008-03-13
JP4802944B2 true JP4802944B2 (ja) 2011-10-26

Family

ID=39151625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006235169A Expired - Fee Related JP4802944B2 (ja) 2006-08-31 2006-08-31 補間演算装置

Country Status (2)

Country Link
US (1) US8000563B2 (ja)
JP (1) JP4802944B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4805294B2 (ja) * 2007-02-27 2011-11-02 フェーズ・ワン・アクティーゼルスカブ デジタル画像の画像解像度を低減するカラービニング
JP4982897B2 (ja) * 2007-08-27 2012-07-25 株式会社メガチップス 画像処理装置
US8229212B2 (en) * 2008-04-08 2012-07-24 Qualcomm Incorporated Interpolation system and method
JP5272581B2 (ja) * 2008-08-25 2013-08-28 ソニー株式会社 画像処理装置、撮像装置、画像処理方法およびプログラム
JP2010061565A (ja) * 2008-09-05 2010-03-18 Konica Minolta Business Technologies Inc 画素補間装置、画素補間方法および画像読取装置
US20110170776A1 (en) * 2008-09-19 2011-07-14 Shigeyuki Ueda Image distortion correcting method and image processing apparatus
JP4760915B2 (ja) * 2009-01-08 2011-08-31 ソニー株式会社 固体撮像素子
JP5191407B2 (ja) * 2009-01-20 2013-05-08 三洋電機株式会社 画像処理装置
GB2470740B (en) * 2009-06-02 2015-04-22 Aptina Imaging Corp Systems and methods for the efficient computation of image transforms
JP2011248576A (ja) * 2010-05-26 2011-12-08 Olympus Corp 画像処理装置、撮像装置、プログラム及び画像処理方法
KR101194285B1 (ko) * 2010-08-24 2012-10-24 삼성메디슨 주식회사 빔 방향을 제공하는 3차원 초음파 검사기 및 3차원 초음파 검사기 동작 방법
PL4124034T3 (pl) * 2010-12-22 2024-01-03 Lg Electronics Inc. Predykcja wewnątrzramkowa w kodowaniu wideo
GB201022137D0 (en) * 2010-12-31 2011-02-02 Barco Nv Display device and means to improve luminance uniformity
JP6127368B2 (ja) * 2012-03-15 2017-05-17 株式会社ニコン 撮像装置
JP5846986B2 (ja) * 2012-03-28 2016-01-20 日立マクセル株式会社 撮像装置
US10599583B2 (en) * 2018-08-20 2020-03-24 Macronix International Co., Ltd. Pre-match system and pre-match method
CN110876015B (zh) * 2018-08-31 2021-04-13 北京小米移动软件有限公司 确定图像分辨率的方法及装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3717720B2 (ja) * 1999-08-24 2005-11-16 オリンパス株式会社 電子カメラ
JP4657564B2 (ja) * 2002-04-30 2011-03-23 イーストマン コダック カンパニー 電子スチルカメラ及び画像処理方法
US7382489B2 (en) * 2002-07-01 2008-06-03 Xerox Corporation Efficient interpolation technique using programmable node spacing
EP1569442A4 (en) * 2002-12-02 2009-08-12 Olympus Corp VIEWING DEVICE
US7502505B2 (en) 2004-03-15 2009-03-10 Microsoft Corporation High-quality gradient-corrected linear interpolation for demosaicing of color images
JP4864332B2 (ja) * 2004-07-13 2012-02-01 株式会社リコー 解像度変換の補間方法、画像処理装置、画像表示装置、プログラムおよび記録媒体

Also Published As

Publication number Publication date
JP2008060893A (ja) 2008-03-13
US20080056618A1 (en) 2008-03-06
US8000563B2 (en) 2011-08-16

Similar Documents

Publication Publication Date Title
JP4802944B2 (ja) 補間演算装置
JP4840468B2 (ja) 画像処理装置、画像処理方法、およびプログラム
US8194279B2 (en) Image data combining apparatus and method
US8660384B2 (en) Method and system for predictive scaling of color mapped images
US7986859B2 (en) Converting bayer pattern RGB images to full resolution RGB images via intermediate hue, saturation and intensity (HSI) conversion
JP5886583B2 (ja) データ処理装置、処理方法、制御方法、及びプログラム
JP2007200170A (ja) 画像処理装置および画像処理プログラム
KR20210148822A (ko) 압축된 가이드를 사용하는 이미지 센서 다운-업 샘플링
JP2015115837A (ja) 制御装置、画像処理装置、制御方法、およびプログラム
JP5891916B2 (ja) 画像拡大処理装置
US8902474B2 (en) Image processing apparatus, control method of the same, and program
JP2007067984A (ja) 二値画像の濃度修正方法および濃度修正装置
JP4500707B2 (ja) 画像データ処理装置
CN112581403B (zh) 一种鱼眼图像校正方法、系统及介质
JP4156194B2 (ja) 第1の解像度のラスタのデジタルデータを第2の解像度のデジタルデータに変換する方法
JP2006217246A (ja) 三角形状及び多角形状のモザイク画像の生成装置及びその方法
CN107767428B (zh) 通信系统dicom图像的绘制方法及装置
US9584699B2 (en) Image processing apparatus, image processing method and computer-readable storage medium with improved character display
JP4867757B2 (ja) スキャナ装置
JP2008035379A (ja) 印刷装置、印刷プログラム、印刷方法、画像処理装置、画像処理プログラム及び画像処理方法、表示装置、表示プログラム及び表示方法、並びに前記プログラムを記憶した記憶媒体
JP2008035455A (ja) 画像処理装置、画像処理プログラム
JP2005123813A (ja) 画像処理装置
JP3783815B2 (ja) 画像処理装置
JP2009211331A (ja) 画像処理方法
JP2004333386A (ja) レチクル検査装置及びレチクル検査方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110609

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110725

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees