画像処理装置
【課題】 S/Nを改善し良好な不調特性が得られるように、画像データの下位ビットを所定のデータに変換する画像処理装置を提供する。
【解決手段】
デジタルカメラ等により撮影した画像データを記憶するときに、圧縮・伸張する前処理として、画素データの下位ビットを切捨てる処理を行ってから記憶する画像処理は、切捨てられた下位ビットの影響で画像データが劣化するため、画素データの上位ビットに基づいて画像データの下位ビットを予測し、上位ビットに応じた重み付け係数に基づいた下位ビットを算出し、また、隣接画素の上位ビットに基づき重み付け係数を演算して下位ビットを算出し、また、色成分から隣接画素の上位ビットに基づき重み付け係数を演算して下位ビットを算出し、算出したそれらの下位ビットを画素データに重畳することで画像データの画質を向上する。
【解決手段】
デジタルカメラ等により撮影した画像データを記憶するときに、圧縮・伸張する前処理として、画素データの下位ビットを切捨てる処理を行ってから記憶する画像処理は、切捨てられた下位ビットの影響で画像データが劣化するため、画素データの上位ビットに基づいて画像データの下位ビットを予測し、上位ビットに応じた重み付け係数に基づいた下位ビットを算出し、また、隣接画素の上位ビットに基づき重み付け係数を演算して下位ビットを算出し、また、色成分から隣接画素の上位ビットに基づき重み付け係数を演算して下位ビットを算出し、算出したそれらの下位ビットを画素データに重畳することで画像データの画質を向上する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルカメラ等の画像処理装置に係り、特には圧縮伸張変換後のS/Nを改善し良好な階調特性が得られるようにした画像処理装置に関する。
【背景技術】
【0002】
近年、デジタルカメラ等の画像入力機器の発達により、画像データの取り込みが高精度になった。また、高精度に取り込んだ画像データを記憶装置に記憶し、パーソナルコンピュータ等でユーザは画像データを簡単にモニタ、プリンタ等の出力装置に出力できる。
【0003】
画像データを記憶する場合、画像データは、1画素当り12ビット〜14ビットのデジタル信号として記憶される場合がある。例えば、12ビットであれば階調数は、「4096」である。このように12ビット〜14ビットで高精度に取り込まれた画像データは、非圧縮もしくは可逆圧縮を行った後に、記憶媒体に保存される。
【0004】
ここで、1画素当り12ビットの画像データをそのまま記憶したのでは、データ量が膨大となるため、画素データを圧縮処理した後、記憶媒体に記憶するようにしている。
このような、デジタルカメラ等の画像入力装置で撮影した画像を記録する方式において、画素データの下位ビットは撮像系のノイズなどであることを見越して、切捨てる方式がある。下位ビットの切捨て方法は全画素一様に切捨てる方法や、ノイズ量を考慮して切捨てる下位ビットを逐一変更する方法が存在する。
【0005】
特許文献1では、有効なデータの値に対応するビット数を利用し、下位ビットで切捨て、ビット数を画素ごとに設定する方法(上位ビットとの相関を取る方法)が開示されている。
【特許文献1】特開2000-244922
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、下位ビットの切捨てによって作成された圧縮データを、伸張した後に画像処理を行う場合、ビット切捨てによって減少した階調数で画像処理を行うため、切捨てしない場合と比較して、画像のエッジ部や階調変化部に対して不自然なレベルの変化(トーンジャンプ)が発生する。
【0007】
本発明は上記のような実情に鑑みてなされたものであり、記憶時に撮像系の雑音成分等として、一様に下位ビットが切捨てられた圧縮画像データを伸張し、伸張データをビットシフトした後に、伸張した画素データを補正するための下位ビットのデータを算出し、切捨てられた成分(下位ビット)の換わりとすることで、画像のエッジや階調の不連続性を除去し、さらにS/Nを改善し良好な階調特性が得られるようにする画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
請求項1記載の発明は、画像データを構成する1以上の参照画素データに基づいて注目画素データの下位ビットを予測する画像処理装置において、前記画像データを構成する1以上の前記参照画素データに基づいて前記注目画素データの下位ビットを算出して補正下位ビットとする下位ビット算出手段と、前記下位ビット算出手段より求めた前記補正下位ビットと前記注目画素データとを加算する手段と、を具備することを特徴とする。
【0009】
請求項2記載の発明は、前記参照画素データの上位ビットに基づいて、前記注目画素データの下位ビットを算出して前記補正下位ビットとすることを特徴とする。
請求項3記載の発明は、前記下位ビット算出手段により、前記参照画像データの値に対し重み付け係数を決定し、前記重み付け係数と前記注目画素データの上位ビットを乗算し前記補正下位ビットを算出することを特徴とする。
【0010】
請求項4記載の発明は、前記下位ビット算出手段により、前記注目画素データの近傍の前記参照画素データにより画素値の相関を求め、前記相関の結果に基づいて前記補正下位ビットを算出することを特徴とする。
【0011】
請求項5記載の発明は、前記下位ビット算出手段により、前記注目画素の両隣の前記参照画素の上位ビットを利用し、前記両隣の前記参照画素上位ビットデータの画素値の平均を算出することにより前記相関を求めることを特徴とする。
【0012】
請求項6記載の発明は、前記下位ビット算出手段により、前記注目画素の周辺の前記参照画素の上位ビットを利用し、前記周辺の前記参照画素の上位ビットデータの画素値の平均を算出することにより前記相関を求めることを特徴とする。
【0013】
請求項7記載の発明は、前記注目画素の下位ビット算出手段により、前記注目画素の近傍の原色ベイヤ配列における異色成分の前記参照画素の上位ビットに基づいて第1の色成分相関を算出し、さらに前記第1の色成分相関の結果と前記参照画素の上位ビットに基づいた第2の色成分相関により前記補正下位ビットを算出することを特徴とする。
【0014】
請求項8記載の発明は、前記下位ビット算出手段により、前記画像データ全体の前記参照画素の上位ビットを利用した相関に基づく関数を算出し前記第1の色成分相関を求めることを特徴とする。
【0015】
請求項9記載の発明は、前記下位ビット算出手段により、前記画像データを分割し、前記分割したブロック毎に前記参照画素の上位ビットを利用した相関に基づき関数を算出し前記第1の色成分相関を求めることを特徴とする。
【0016】
請求項10記載の発明は、前記下位ビット算出手段により、前記第1の色成分相関により算出した値により予め用意したテーブルを利用して前記補正下位ビットを算出することにより前記第2の色成分相関を求めることを特徴とする。
【0017】
請求項11記載の発明は、画像データを構成する1以上の画素データに基づいて前記画素データの下位ビットを予測する画像処理をコンピュータに実行させるプログラムであって、前記画像データを構成する1以上の前記参照画素データに基づいて前記注目画素データの下位ビットを算出して補正下位ビットとする下位ビット算出機能と、前記下位ビット算出機能より求めた前記補正下位ビットと前記注目画素の上位ビットとを加算する加算機能と、をコンピュータに実現させるためのプログラム。
【0018】
請求項12記載の発明は、前記参照画素データの上位ビットに基づいて、前記注目画素データの下位ビットを算出して前記補正下位ビットとすることをコンピュータに実現させるためのプログラム。
【発明の効果】
【0019】
上記により、下位ビットを切捨てた画像データに対し、補正した下位ビットを加算(重畳)することで階調数を増やすことができる。それにより圧縮・伸張等の画像処理を施した画像において、画像のエッジや階調の不連続性を除去し、S/Nを改善し良好な階調特性が得られるようにし、不自然なレベルの変化(トーンジャンプ)の発生を防止できる。
【発明を実施するための最良の形態】
【0020】
(実施形態1)
以下、本発明の実施の形態を図面に基づいて説明する。図1は、本発明を実施するデジタルカメラの構成を示す図である。尚、本実施例では、デジタルカメラを例とするが、デジタルカメラに限定されるものではない。
【0021】
CPU(Central Processing Unit )−A1はこのデジタルカメラ全体の動作制御を行う中央演算装置である。EEPROM(Electrically Erasable and Programmable Read Only Memory)2は、デジタルカメラの動作制御をCPU−A1に行なわせるための制御プログラムが予め格納されており、CPU−A1はこの制御プログラムを実行することによって上述した動作制御を行うようになる。
【0022】
レンズ3は被写体像をCCD4に結像させる撮影光学系である。CCD(Charge Coupled Device )4は結像された被写体像を光電変換して画像を示す電気信号(アナログ信号)を出力する撮像素子である。撮像回路5は、CDS(Correlated Double Sampling:相関二重サンプリング回路)やAGC(Automatic Gain Control:オートゲインコントロール回路)等を含んで構成され、CPU−A1の制御の下に、CCD4から出力された電気信号(アナログ信号)に含まれ得るリセット雑音の除去や信号レベルの調節などを行う回路である。
【0023】
A/D変換部6は、撮像回路5の出力信号(アナログ信号)をデジタルデータに変換する回路である。補正回路7は、A/D変換部6から出力されるデジタルデータで表現されている撮影画像に、ホワイトバランスやY補正等の補正処理を施す回路である。
【0024】
補正回路7の出力は、フレームメモリ8、CPU−B9、FIFOメモリ10、及び記録媒体I/F11とバス12を介して接続されており、これらの間ではCPU−B9によるバス12の管理の下で相互にデータの授受を行うことができる。
【0025】
フレームメモリ8は、補正回路7から出力された撮影画像やCPU−B9により画像処理が施された撮影画像などを一時的に蓄えるバッファメモリとして使用される他、CPU−B9による各種処理のための作業用の記憶領域としても使用されるメモリである。
【0026】
CPU−B9は、CPU−A1の制御の下で、自己の内部に備えられた制御プログラムに従い、フレームメモリ8の管理(フレームメモリコントロール機能)、圧縮されている画像データの伸張処理(画像伸張機能)、撮影画像に対するデータ圧縮処理(画像圧縮機能)、及びデータの書き込み及び読み出しのための記録媒体21へのアクセスの制御処理(記録媒体アクセス機能)などを行う。なお、画像データの圧縮処理及び伸張処理では、例えばJPEG(Joint Photographic Experts Group)方式による圧縮処理及び伸張処理等が行われる。
【0027】
FIFO(First-In First-Out)メモリ10は表示を行う画像を表現する画像データを一時的に格納するメモリであり、CPU−B9により画像処理された後の画像データなどが格納される。記録媒体I/F11は、記録媒体13との間でデータの授受を行うためのインタフェース機能を提供するものであり、記録媒体13へのデータの書き込み、或いは記録媒体13からのデータの読み出しの処理が行われる。
【0028】
記録媒体13は記録されたデータを保持するものであり、半導体メモリが内蔵されているメモリカードなどのリムーバブル型の記録媒体がデジタルカメラには便利である。ビデオエンコード回路14は、CPU−A1の制御の下で、FIFOメモリ10から読み出されたデータで表現される画像に日付等のオンスクリーン情報を重畳させる回路である。
【0029】
ビデオ出力回路15は、ビデオエンコード回路14から出力されたデジタル画像データをアナログ信号であるビデオ信号(画像信号)へと変換する回路である。ビデオ出力端子16は、ビデオ出力回路15から出力されたビデオ信号をこのデジタルカメラの外部へと出力する端子である。
【0030】
TFT(Thin Film Transistor)液晶駆動回路17は、CPU−A1の制御の下で、ビデオエンコード回路14から出力された画像信号に基づいてTFTパネル18を駆動する回路である。TFTパネル(TFT液晶パネル)18はTFT液晶駆動回路17によって駆動されてビデオエンコード回路14から出力された画像信号で表現される画像を表示する液晶モニタとして用いられている。
【0031】
なお、このデジタルカメラでは光学ファインダ(不図示)が装備されており、CCD4に結像している被写体像を液晶モニタに表示させずに被写体像の撮影をすることが可能であるので、このデジタルカメラに液晶モニタを動作させるか否かをユーザが設定できる構成としている。ここで、液晶モニタを動作させないように設定すればこのデジタルカメラの通常動作時における消費電力を低減させることができる。
【0032】
バックライトユニット19はTFTパネル18と一体となって液晶モニタを構成するものであり、CPU−A1の制御の下にTFTパネル18の液晶部をその背面から照射する光源が設けられているユニットである。この光源としては例えば白色LED(Light Emitting Diode )などが用いられる。
【0033】
アクチュエータ20は、レンズ(撮影光学系)3を駆動させるためのモータ(AF用モータやズーミング用モータ等)や機械式のシャッタの駆動装置などといった作動装置であり、アクチュエータ駆動回路21で駆動される。アクチュエータ駆動回路21は、CPU−A1の制御の下でアクチュエータ20を駆動させる回路である。
【0034】
外部データI/F22は、パーソナルコンピュータ等の外部装置とCPU−A1との間でのデータの授受を行うためのインタフェース機能を提供するものであり、例えばUSB(Universal Serial Bus)方式のI/Fである。キーマトリクス部23は、ユーザからの各種指示を受け付け、それをCPU−A1へ通知するための各種キー、スイッチ、ボタン等をマトリクス状に配線したものである。画像の撮影動作をこのデジタルカメラに行なわせるために操作されるレリーズボタンもこのキーマトリクス部23に含まれており、CPU−A1は、レリーズボタンに対する1stレリーズ(いわゆる半押し)及び2ndレリーズ(いわゆる全押し)の操作を検出することができる。
【0035】
LCD表示回路24は、CPU−A1の制御の下でLCDパネル25を駆動する回路である。LCDパネル25は、LCD表示回路24により駆動され、その駆動信号に応じた表示、例えば、露出やシャッタースピードなどといったこのデジタルカメラについての各種の設定状態の表示や、現在において撮影及び記録が可能である画像の枚数を示す表示を行う。
【0036】
電池26はこのデジタルカメラへ電力を供給するための電源である。電源回路27は、電池26から供給される電圧を制御してデジタルカメラの各部に電力を供給する回路である。CPU−A1は電源回路27に電力を供給している電池26の電圧の監視を行なっており、このデジタルカメラが通常の動作を行なっているとき(電源オン時)にその電圧値が一時的にでも所定値よりも小さくなったならばCPU−A1はその後このデジタルカメラでの撮影動作を禁止し、レリーズボタンに対する操作が行なわれても撮影のための制御処理を行わない。
【0037】
ここで、CPU−A1、フレームメモリ8、CPU−B9、TFT液晶駆動回路17、TFTパネル18等は一般的なパーソナルコンピュータを利用してもかまわない。
また、後述する処理はコンピュータプログラムにより処理可能で、その処理プログラムはCD−ROM等記録媒体やハードディスク等に記録されている。必要に応じて前記パーソナルコンピュータのメモリ上に前記処理プログラムを読み出し、CPUで実行しパーソナルコンピュータに接続されている各装置を制御している。
【0038】
なお、記録媒体は通信回線を介してコンピュータと接続されている、プログラムサーバとして機能するコンピュータが備えている記憶装置であってもよい。
この場合には、制御プログラムを表現するデータ信号で搬送波を変調して得られる伝送信号を、プログラムサーバから伝送媒体である通信回線を通じてコンピュータヘ伝送するようにし、コンピュータでは受信した伝送信号を復調して処理プログラムを再生することでこの処理プログラムをCPUで実行できるようになる。
(実施例1)
次に、上記構成を説明したデジタルカメラにおける、本発明の画像処理について説明をする。本実施例では、上位ビットとの相関を利用する方法として、上位ビットa(10ビット)と下位ビットb(2ビット)より構成される12ビットの画素データの処理について説明する。
【0039】
図2、図3は画像処理を行うときの概略フローで、撮像系の雑音成分として1画素の示すデータのビットのうち下位ビット分を切捨てた画素データとして記憶された画像に、算出した下位ビット(補正下位ビット)を重畳データとして、切捨てられた成分(下位ビット)の換わりに加算(重畳)することを示している。
【0040】
図2のフローについて説明する。
ステップS21は、下位ビット重畳処理の開始で、S21に進む以前に下位ビット分を切捨て圧縮された画素データがS21に渡される。
【0041】
ステップS22では、圧縮データを伸張し、ステップS23で、切捨てた下位ビット分だけ、左側にビットシフトを行う。
次に、ステップS24で、下位ビットに重畳する重畳データを算出し、ステップS25で重畳データを加算する。
【0042】
全ての画素に対してS23〜S25の処理を行い、ステップS26の判断で全ての画素に処理をしていればYESに進み終了する。NOであればS23〜S25の処理を再度行う。
【0043】
図3は図2の処理を入れかえた変形例である。図3のフローについて説明すると、ステップS21、ステップS22、ステップS26は、図2と同様の処理を行い、ステップS23〜S25の処理の順番を入れかえたフローである。
【0044】
図3ではステップS24を先に処理し、下位ビットに重畳する重畳データを算出する。次にステップS23で、切捨てた下位ビット分を左側にビットシフトを行う。そして、ステップS25で重畳データを加算する。よって、図3の結果は、図2のフローの結果と同様となる。
【0045】
次に、図4、図5を用いてより詳細な説明をすると、図4は、上位ビットa(10ビット)と下位ビットb(2ビット)より構成される12ビットの画素データをCPU−B9に取り込み、画像圧縮機能で下位ビットbを切捨て10ビットのデータに変更する。その後、圧縮処理をし、画素データを記憶する。ここまでが上記ステップS21の処理である。
【0046】
次に、図5は画像データを出力する場合、TFTパネル18に画像データを表示するときなどに、上記S21によって圧縮処理して記憶したデータを呼び出し、CPU−B9の伸張処理により伸張し10ビットのデータに変換し、上位ビットaを2ビットシフトし、S24で算出した重畳データを下位2ビットに重畳し12ビット幅のデータを生成する。
【0047】
次に、S24について算出する重畳データについて説明する。本実施例1では、算出方法をランダム成分の重畳データとしたときの下位ビットに重畳する方法について図6で説明する。
【0048】
S61は、圧縮時に切捨てられた10ビット幅の画素データを伸張したものを左に2ビットシフトした図である。S61でビットシフトすることで2ビットMSB側に移動する。
【0049】
次に、S62で下位2ビットであるb0、b1の場所に0を重畳する。ここではb0、b1をともに0としている。
S63では、S63の式1により下位ビットbを算出する。まず、上位ビットaを比較することでω(a)を算出する。S63の式2は上位ビットaが0もしくは1であれば、圧縮時に切捨てた下位ビットをともに0にする。
【0050】
S63の式3は上位ビットaが0以外であるとき、ランダムに重畳データを選ぶ。このとき下位ビットbが2ビットであればω(a)は、00、01、10、11の値を選び、S63の式1のb=ω(a)・aを計算し、乗算された12ビットのデータの下位2ビットをbとする。尚、bは2ビットであれば上位2ビットを選択してもいいし、12ビットのどのデータを選んでもかまわない。
【0051】
S64で、S63で算出した下位ビットbを重畳データとして上位ビットaに重畳する。
図7は図6のS61〜S64を実行させるブロックを示した図である。伸張部71によって切捨てされた10ビットの画素データを伸張し、次にビットシフト部72でS61とS62の処理を行い、データ保持用メモリ73にはS62の結果を保持する。
【0052】
そして、データ比較部74ではS63の条件に従い上位ビットaに基づきω(a)を算出する。重畳データ算出部75でS63の式1を計算し下位ビットbを算出する。算出後、S64に示した動作を行う。つまり、重畳データとデータ保持用メモリに記憶した10ビットの左シフト画素データを加算し12ビットの画素データを生成する。
【0053】
次に、図8を用いて上記構成の説明をフローに基づき行う。
ステップS81では、画素データを圧縮するときに、下位ビット切捨てを行ったかを判断する。切捨てを行っていた場合はS82に進み、切捨てをしていない場合にはS83に進む。このとき、切捨てを行ったかを判断するための情報は、圧縮時に切捨てビット数などの圧縮情報の一部として記憶してありこの情報を参照して判断を行う。尚、圧縮時の切捨下位ビット数をどうするかは、ユーザが選択してもいいし、全画像の画像状態などに基づき条件を決め、その条件に基づき自動で選択されてもかまわない。
【0054】
ステップS82では、圧縮時に決めた切捨てビット数を読込み、ステップS83では、切捨てをしなかったので切捨てビット数を0にしている。
ステップS84では、下位ビットbを切捨てされ圧縮されている1画像に含まれる画素データ全てを伸張し、圧縮前の切捨てされた画素データ(10ビット)に変換する。
【0055】
ステップS85では、S84で伸張したデータを読込み、ステップS86で、上記切捨てビットが0であるかないかを判断し、YESであれば、下位ビットの重畳処理をしないでS811に進む。NOであれば、ステップS87に進み、切捨てビット分左にビットシフトする。
【0056】
次に、ステップS88で、S87で左ビットシフトデータの上位ビットaが0、1もしくはそれ以外であるかを判断し、0、1であればYESでS811に進む。NOであればステップS89に進み、上記S63の条件に従い、ω(a)の値として00、01、10、11を選び、S63の式1を計算し下位ビットbを算出する。そして、ステップS810で上位ビットaと下位ビットbを加算することで重畳する。
【0057】
ステップS811では必要な全ての画素データの処理が終了したかを判断し、全ての処理が終了していればYESに進み終了する。終わっていなければNOに進みS85から再度処理を行う。
【0058】
尚、本実施例では下位ビットbを算出する場合、ω(a)・aとしているが、ω(a)の値を直接bとして下位ビットに重畳してもかまわない。
本実施例では、画素データのビット幅を12ビットとし、上位ビット10ビット、下位ビット2ビットの構成としたが、この構成に限定されるものではなく、画像のエッジや階調の不連続性を除去し、さらにS/Nを改善し良好な階調特性が得られるようにする画像処理ができる範囲であれば変形することが可能である。
【0059】
例えば、画像データ内において出現頻度の高い値の付近に対してのみランダムに重み付けを与え、その他の部分に対してのは0で重み付けすることも可能である。
尚、ランダム値と固定値を重み付け係数として用いて、対象の画素データ積算して、切捨てした下位ビットの幅の下位ビットを生成し、加算することで、画像のエッジや階調の不連続性を除去し、S/Nを改善することが可能になる。
(実施例2)
次に、実施例2では、隣接する色成分との相関を利用する方法として、上位ビットan(10ビット)と下位ビットcn(2ビット)より構成される12ビットの画素データの処理について説明する。
【0060】
図9は、ベイヤ配列された隣接画素を示した図である。隣接する色成分との相関を利用しanの画素の下位ビットcnを決めるために、隣接する左隣接画素の上位ビットan-1、右隣接画素の上位ビットan+1の画素データの相関に基づき下位ビットcnを算出し決定する。
【0061】
図10を用いて、隣接する色成分との相関から下位ビットcnを算出する方法を説明する。
S101は、圧縮時に切捨てられた10ビット幅の切捨てされた画素データを伸張したものを左に2ビットシフトした図である。S101でビットシフトすることで2ビットMSB側に移動する。次に、S102で下位2ビットであるb0、b1をともに0とする。ここではb0、b1をともに0としている。
【0062】
S103では、S103の式1によりbnを算出する。まず、隣接する画素データの上位ビット(10ビットの画素データ)であるan-1とan+1を用いてbn=(an-1+an+1)/2を算出する。そして、S103の式2〜式5を参照してbnの結果より条件を満たす値を判断しcnを決定する。
【0063】
S103の式2は、bnと予め設定された閾値1(k1)と比較し、bn>k1であればcnを3(〔b0〕〔b1〕→〔1〕〔1〕)にする。
S103の式3は、bnと予め設定された閾値1(k1)、閾値2(k2)と比較し、k2<bn<k1であればcnを2(〔b0〕〔b1〕→〔1〕〔0〕)にする。
【0064】
S103の式4は、bnと予め設定された閾値2(k2)、閾値3(k3)と比較し、k3<bn<k2であればcnを1(〔b0〕〔b1〕→〔0〕〔1〕)にする。
S103の式5は、bnと予め設定された閾値3(k3)と比較し、bn<k3であればcnを0(〔b0〕〔b1〕→〔0〕〔0〕)にする。
【0065】
次に、S103で決定した重畳データである補正下位ビットcnを、S104で画素データの下位ビットにcnを重畳する。
ここで、予め設定された閾値k1、k2、k3は、両隣の上位ビットの平均値の最大値(上位ビット全て1)から最小値(上位ビット全て0)の範囲で設定される。利用者が好みの画像になるように設定してもかまわない。
【0066】
図11は図10のS101〜S104を実行させるブロックを示した図である。伸張部111によって圧縮の際に切捨てされた10ビットの画素データを伸張する。次にビットシフト部112でS101とS102の処理を行い、データ保持用メモリ113にはS102の結果を保持し、平均算出部114では隣接画素データ用メモリ115に記憶されているan-1とan+1を呼び出し、S103の式1に従いbnを算出する。そして重畳データ算出部116でS103の式2〜5の条件によってcnを決定する。算出後、S104に示した動作により重畳データとデータ保持用メモリに記憶した10ビットの左シフト画素データanを加算し12ビットの画素データを生成する。
【0067】
次に、図12を用いてフローの説明をする。
ステップS121では、画素データを圧縮するときに、下位ビットの切捨てを行ったかを判断する。このとき、切捨てを行ったかを判断するための情報は、圧縮時に切捨てビット数などの圧縮情報の一部として記憶してありこの情報を参照して判断を行う。尚、切捨てを行っていた場合はS122に進み、切捨てをしていない場合にはS123に進む。圧縮時の切捨て下位ビット数をどうするかは、ユーザが選択してもいいし、画像条件に基づき自動選択されてもかまわない。
【0068】
ステップS122では、圧縮時に決めた切捨てビット数を読込み、ステップS123では、圧縮のときに切捨てをしなかったので切捨てビット数を0にしている。
ステップS124は、圧縮データを伸張し、切捨てされたデータに変換する。
【0069】
ステップS125では、切捨てされたデータを読込み、ステップS126で上記切捨てビットが0であるかないかを判断し、YESであれば、下位ビットの重畳処理をしないでS1212に進む。NOであれば、ステップS127に進み、切捨てビット分左にビットシフトする。
【0070】
次に、ステップS128で、S103の式1を計算し隣接画素データan-1とan+1より平均を、bn=(an-1+an+1)/2で算出する。
次に、ステップS129で上記S103の式2〜5の条件に従い、ステップS1210でcnの値(0、1、2、3)を選び、そして、ステップS1211で上位ビットanと下位ビットcnを加算することで重畳する。
【0071】
ステップS1212では必要な全ての画素データの処理が終了したかを判断し、全ての処理が終了していればYESに進み終了する。終わっていなければNOに進みS125から再度処理を行う。
【0072】
本実施例では、画素データのビット幅を12ビットとし、上位ビット10ビット、下位ビット2ビットの構成としたが、この構成に限定されるものではない。
尚、対象とする画素データの近傍の画素データとの相関を利用して下位ビットを生成できる。対象とする画素データの両隣の画素データとの相関を利用して下位ビットを生成できる。対象とする画素データの両端以外(上下の隣接または、隣接する画素にさらに隣接する画素)の画素データも含めた相関を利用して下位ビットを生成できる。これら求めた下位ビットと加算することで、画像のエッジや階調の不連続性を除去し、S/Nを改善することが可能になる。
【0073】
尚、画像のエッジや階調の不連続性を除去し、S/Nを改善し良好な階調特性が得られるようにする画像処理ができる範囲であれば変形することが可能である。
(実施例3)
次に、実施例3では、隣接する色成分との相関を利用する方法として、上位ビットan(10ビット)と下位ビットcn(2ビット)より構成される12ビットの画素データの処理について説明する。
【0074】
図13は、ベイヤ配列された隣接画素を示した図である。隣接する色成分との相関を利用しanの画素の下位ビットcnを決めるために、隣接しておりかつ、すでに下位ビットが補完された左隣接画素bn-1、右上隣接画素bn-l-1、上隣接画素bn-lの画素データの相関に基づき下位ビットcnを算出し決定する。
【0075】
図14を用いて、隣接する色成分との相関から下位ビットcnを算出する方法を説明する。
S141は、圧縮時に切捨てられた10ビット幅の切捨てされた画素データを伸張したものを左に2ビットシフトした図である。S141でビットシフトすることで2ビットMSB側に移動する。次に、S142で下位2ビットであるb0、b1をともに0とする。ここではb0、b1をともに0としている。
【0076】
S143では、S143の式1によりbnを算出する。まず、隣接する画素データであるbn-1とbn-lとbn-l-1を用いてbn=(bn-1+bn-l-bn-l-1)算出する。そして、S143の式2〜式5を参照してbnの結果より条件を満たす値を判断しcnを決定する。
【0077】
S143の式2は、bnと予め設定された閾値4(k4)と比較し、bn>k4であればcnを3(〔b0〕〔b1〕→〔1〕〔1〕)にする。
S143の式3は、bnと予め設定された閾値4(k4)、閾値5(k5)と比較し、k5<bn<k4であればcnを2(〔b0〕〔b1〕→〔1〕〔0〕)にする。
【0078】
S143の式4は、bnと予め設定された閾値5(k5)、閾値6(k6)と比較し、k6<bn<k5であればcnを1(〔b0〕〔b1〕→〔0〕〔1〕)にする。
S143の式5は、bnと予め設定された閾値6(k6)と比較し、bn<k6であればcnを0(〔b0〕〔b1〕→〔0〕〔0〕)にする。
【0079】
次に、S143で決定した重畳データである補正下位ビットcnを、S144で画素データの下位ビットにcnを重畳する。
ここで、予め設定された閾値k4、k5、k6は、bnの最大値から最小値の範囲で設定される。利用者が好みの画像になるように設定してもかまわない。
【0080】
図15は図14のS141〜S154を実行させるブロックを示した図である。伸張部151によって圧縮の際に切捨てされた10ビットの画素データを伸張する。次にビットシフト部152でS141とS142の処理を行い、データ保持用メモリ153にはS142の結果を保持し、係数(bn)算出部154では隣接画素データ用メモリ155に記憶されているbn-1とbn-lとbn-l-1を呼び出し、S143の式1に従いbnを算出する。そして重畳データ算出部156でS143の式2〜5の条件によってcnを決定する。算出後、S144に示した動作により重畳データとデータ保持用メモリに記憶した10ビットの左シフト画素データanを加算し12ビットの画素データを生成する。
【0081】
次に、図16を用いてフローの説明をする。
ステップS161では、画素データを圧縮するときに、下位ビットの切捨てを行ったかを判断する。このとき、切捨てを行ったかを判断するための情報は、圧縮時に切捨てビット数などの圧縮情報の一部として記憶してありこの情報を参照して判断を行う。尚、切捨てを行っていた場合はS162に進み、切捨てをしていない場合にはS163に進む。圧縮時の切捨て下位ビット数をどうするかは、ユーザが選択してもいいし、画像条件に基づき自動選択されてもかまわない。
【0082】
ステップS162では、圧縮時に決めた切捨てビット数を読込み、ステップS163では、圧縮のときに切捨てをしなかったので切捨てビット数を0にしている。
ステップS164は、圧縮データを伸張し、切捨てされたデータに変換する。
【0083】
ステップS165では、切捨てされたデータを読込み、ステップS166で上記切捨てビットが0であるかないかを判断し、YESであれば、下位ビットの重畳処理をしないでS1612に進む。NOであれば、ステップS167に進み、切捨てビット分左にビットシフトする。
【0084】
次に、ステップS168で、S143の式1を計算し隣接画素データbn-1とbn-lとbn-l-1より係数bn=(bn-1+bn-l-bn-l-1)で算出する。
次に、ステップS169で上記S143の式2〜5の条件に従い、ステップS1610でcnの値(0、1、2、3)を選び、そして、ステップS1611で上位ビットanと下位ビットcnを加算することで重畳する。
【0085】
ステップS1612では必要な全ての画素データの処理が終了したかを判断し、全ての処理が終了していればYESに進み終了する。終わっていなければNOに進みS165から再度処理を行う。
【0086】
本実施例では、画素データのビット幅を12ビットとし、上位ビット10ビット、下位ビット2ビットの構成としたが、この構成に限定されるものではない。
尚、対象とする画素データの近傍の画素データとの相関を利用して下位ビットを生成できる。対象とする画素データの両隣の画素データとの相関を利用して下位ビットを生成できる。対象とする画素データの両端以外(上下の隣接または、隣接する画素にさらに隣接する画素)の画素データも含めた相関を利用して下位ビットを生成できる。これら求めた下位ビットと加算することで、画像のエッジや階調の不連続性を除去し、S/Nを改善することが可能になる。
【0087】
尚、画像のエッジや階調の不連続性を除去し、S/Nを改善し良好な階調特性が得られるようにする画像処理ができる範囲であれば変形することが可能である。
(実施例4)
デジタルカメラ等の電子撮像装置の画像は、G(緑)信号の輝度成分に大きく左右されやすい。また、デジタルカメラでは、G(緑)を市松状に配置した原色ベイヤ配列が一般的であり、R(赤)およびB(青)位置のG(緑)信号の予測精度が、解像度・画質向上につながる。
【0088】
画像信号を隣接画素ブロックに分割する場合、各ブロック情報は1本のベクトルで表示できる。各ブロックにおけるR、G、B信号成分のベクトル情報は、特に低彩度領域では高い相関があることが知られている。従来からG補正に利用されているR、B位置の周囲のG信号からの予測値と、RまたはB信号のベクトル情報により、正確なG信号予測を行う方法が知られている。
【0089】
実施例4では、隣接する色成分との相関とを利用する方法として、上位ビットan(10ビット)と下位ビットcn(2ビット)より構成される12ビットの画素データの処理について説明する。
【0090】
隣接する色成分との相関を利用し画素データの下位ビットを決めるために、G(緑)に隣接する隣接画素R(赤)、隣接画素B(青)の画素データとの色成分同士の色成分相関を算出し下位ビットを決定する。
【0091】
ここでは、処理を簡単にするために、次のような方法について説明する。図17は原色ベイヤ配列を示した図で、R(赤)の横にあるG(緑)をGrとし、B(青)の横にあるG(緑)をGbとして示している。
【0092】
図18を用いて、隣接する色成分との相関から下位ビットを算出する方法を説明する。
R(赤)の下位ビットを決定する場合は隣接するGrとの相関より求め、Grの下位ビットを求める場合は隣接するR(赤)との相関により決定する。また、B(青)の下位ビットを決定する場合は隣接するGbとの相関より求め、Gbの下位ビットを求める場合は隣接するB(青)との相関により決定する。
【0093】
例えば、R(赤)画素の下位ビットを隣接するGr画素との相関から算出する場合を考える。
S181は、R(赤)の圧縮時に切捨てられた10ビット幅の画素データを伸張したものを左に2ビットシフトした図である。S181でビットシフトすることで2ビットがMSB側に移動するため、S182で下位2ビットであるb0、b1をともに0にする。
【0094】
S183では、S183の式1によりωnと下位ビットcnを算出する。まず、隣接する画素データのR(赤)とGrの上位ビット(10ビットの画素データ)用いてωn( )=A(Gr)を算出する。ここでAは、デジタルカメラの写した画像全体から特性を算出しR(赤)、G(緑)、B(青)の相関を求めた関数である。相関を算出する関数は、テーブルを用意してもいいし、一次関数、n次関数、n次多項式、回帰分析等を算出して使用してもかまわない。尚、Aは原色ベイヤ配列されたGrと隣接するR(赤)またはGbと隣接するB(青)の相関に基づく関数であってもよい。
【0095】
そして、cnは、関数ωn( )に対象画素に隣接する画素データを代入することで決まり、この場合も、テーブルなどを用意してcnを求める。例えば、下位2ビットを決めるのであれば実施例2のように閾値を決めて0〜3を選択してもかまわない。
【0096】
そして、対象の隣接画素の上位ビットan-1をωnによって演算して下位ビットcnを算出する。そして、S183の式1の結果よりcnを決定する。
次に、S183で決定した重畳データである補正下位ビットcnを、S184で上位ビットanに重畳する。
【0097】
図19は図18のS181〜S184を実行させるブロックを示した図である。伸張部191によって切捨てされた10ビットの画素データを伸張する。次にビットシフト部192でS181とS182の処理を行い、データ保持用メモリ193にはS182の結果を保持し、重畳係数読込部194では重畳係数用メモリ195に記憶されている全画素データの中からan-1とan+1を呼び出し、S183に従いcnを算出する。そして重畳データ算出部196でcnを決定する。算出後、S184に示した動作により重畳データとデータ保持用メモリに記憶した10ビットの左シフト画素データanを加算し12ビットの画素データを生成する。
【0098】
次に、図20を用いてフローの説明をする。
ステップS201では、画素データを圧縮するときに、下位ビットの切捨てを行ったかを判断する。このとき、切捨てを行ったかを判断するための情報は、圧縮時に切捨てビット数などの圧縮情報の一部として記憶してありこの情報を参照して判断を行う。尚、切捨てを行っていた場合はS202に進み、切捨てをしていない場合にはS203に進む。圧縮時の切捨てをするかどうかは、ユーザが選択してもいいし、画像条件に基づき自動選択されてもかまわない。
【0099】
ステップS202では、圧縮時に決めた切捨てビット数を読込み、ステップS203では、切捨てをしなかったので切捨てビット数を0にしている。
ステップS204は、圧縮データを伸張し、切捨てされたデータに変換する。
【0100】
ステップS205では、切捨てされたデータを読込み、ステップS206で上記切捨てビットが0であるかないかを判断し、YESであれば、下位ビットの重畳処理をしないでS2011に進む。NOであれば、ステップS207に進み、切捨てビット分左にビットシフトする。
【0101】
次に、ステップS208で、重畳係数を読込み、ステップS209で、S203の演算により下位ビットcnを算出する。そして、ステップS2010で、上位ビットanと下位ビットcnを加算することで重畳する。
【0102】
ステップS2011では必要な全ての画素データの処理が終了したかを判断し、全ての処理が終了していればYESに進み終了する。終わっていなければNOに進みS205から再度処理を行う。
【0103】
本実施例では、画素データのビット幅を12ビットとし、上位ビット10ビット、下位ビット2ビットの構成としたが、この構成に限定されるものではない。上記構成によれば、原色ベイヤ配列された画像データにおいて、対象とする画素データの異色成分の画素データとの相関を利用して、下位ビットを生成できる。
【0104】
画像データ全体から色成分相関を算出し、その色成分相関を利用して下位ビットを生成できる。また、画像データを分割して分割したブロック内画像データの色成分相関を算出し、その相関を利用して、下位ビットを生成できる。また、色成分相関により算出した値からテーブルを検索し、切捨てした下位ビットの幅の下位ビットを探し、それらの下位ビットを加算することで、画像のエッジや階調の不連続性を除去し、S/Nを改善することが可能になる。
(変形例)
階調数の少ないデータに対し、データを重畳することにより階調数を増やすことが出来る。この効果として、画像処理によって生ずる不自然な階調変化を除去することができる。
【0105】
例えば、エッジや階調部に対して、トーンジャンプを緩和することが出来る。
実施例においてはデジタルカメラを用いて説明したが、特許請求の範囲に記載された本発明の要旨を逸脱しない限りその他の画像処理装置にも適用可能である。
【図面の簡単な説明】
【0106】
【図1】本発明を実施するデジタルカメラの構成を示す図である。
【図2】画像処理を行う際の概略フローである。
【図3】画像処理を行う際の概略フローである。(変形例)
【図4】画素データの圧縮処理を示した図である。
【図5】画素データの伸張処理を示した図である。
【図6】上位ビットとの相関を利用した方法を示した図である。
【図7】上位ビットとの相関を利用した方法を示したブロック図である。
【図8】上位ビットとの相関を利用した方法を示したフロー図である。
【図9】隣接する画素データの並びを示した図である。
【図10】隣接する両側の画素データによって相関を利用した方法を示した図である。
【図11】隣接する両側の画素データによって相関を利用した方法を示したブロック図である。
【図12】隣接する両側の画素データによって相関を利用した方法を示したフロー図である。
【図13】隣接する画素データの並びを示した図である。
【図14】隣接する左、上および右上の画素データによって相関を利用した方法を示した図である。
【図15】隣接する左、上および右上の画素データによって相関を利用した方法を示したブロック図である。
【図16】隣接する左、上および右上の画素データによって相関を利用した方法を示したフロー図である。
【図17】原色ベイヤ配列を示した図である。
【図18】近接する色成分との相関を利用する方法を示した図である。
【図19】近接する色成分との相関を利用する方法を示したブロック図である。
【図20】近接する色成分との相関を利用する方法を示したフロー図である。
【符号の説明】
【0107】
1 ・・・ CPU−A
2 ・・・ EEPROM
3 ・・・ レンズ
4 ・・・ CCD
5 ・・・ 撮像回路
6 ・・・ A/D変換部
7 ・・・ 補正回路
8 ・・・ フレームメモリ
9 ・・・ CPU−B
10 ・・・ FIFOメモリ
11 ・・・ 記録媒体I/F
12 ・・・ バス
13 ・・・ 記録媒体
14 ・・・ ビデオエンコード回路
15 ・・・ ビデオ出力回路
16 ・・・ ビデオ出力端子
17 ・・・ TFT液晶駆動回路
18 ・・・ TFTパネル
19 ・・・ バックライトユニット
20 ・・・ アクチュエータ
21 ・・・ アクチュエータ駆動回路
22 ・・・ 外部データI/F
23 ・・・ キーマトリクス部
24 ・・・ LCD表示回路
25 ・・・ LCDパネル
26 ・・・ 電池
27 ・・・ 電源回路
【技術分野】
【0001】
本発明は、デジタルカメラ等の画像処理装置に係り、特には圧縮伸張変換後のS/Nを改善し良好な階調特性が得られるようにした画像処理装置に関する。
【背景技術】
【0002】
近年、デジタルカメラ等の画像入力機器の発達により、画像データの取り込みが高精度になった。また、高精度に取り込んだ画像データを記憶装置に記憶し、パーソナルコンピュータ等でユーザは画像データを簡単にモニタ、プリンタ等の出力装置に出力できる。
【0003】
画像データを記憶する場合、画像データは、1画素当り12ビット〜14ビットのデジタル信号として記憶される場合がある。例えば、12ビットであれば階調数は、「4096」である。このように12ビット〜14ビットで高精度に取り込まれた画像データは、非圧縮もしくは可逆圧縮を行った後に、記憶媒体に保存される。
【0004】
ここで、1画素当り12ビットの画像データをそのまま記憶したのでは、データ量が膨大となるため、画素データを圧縮処理した後、記憶媒体に記憶するようにしている。
このような、デジタルカメラ等の画像入力装置で撮影した画像を記録する方式において、画素データの下位ビットは撮像系のノイズなどであることを見越して、切捨てる方式がある。下位ビットの切捨て方法は全画素一様に切捨てる方法や、ノイズ量を考慮して切捨てる下位ビットを逐一変更する方法が存在する。
【0005】
特許文献1では、有効なデータの値に対応するビット数を利用し、下位ビットで切捨て、ビット数を画素ごとに設定する方法(上位ビットとの相関を取る方法)が開示されている。
【特許文献1】特開2000-244922
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、下位ビットの切捨てによって作成された圧縮データを、伸張した後に画像処理を行う場合、ビット切捨てによって減少した階調数で画像処理を行うため、切捨てしない場合と比較して、画像のエッジ部や階調変化部に対して不自然なレベルの変化(トーンジャンプ)が発生する。
【0007】
本発明は上記のような実情に鑑みてなされたものであり、記憶時に撮像系の雑音成分等として、一様に下位ビットが切捨てられた圧縮画像データを伸張し、伸張データをビットシフトした後に、伸張した画素データを補正するための下位ビットのデータを算出し、切捨てられた成分(下位ビット)の換わりとすることで、画像のエッジや階調の不連続性を除去し、さらにS/Nを改善し良好な階調特性が得られるようにする画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
請求項1記載の発明は、画像データを構成する1以上の参照画素データに基づいて注目画素データの下位ビットを予測する画像処理装置において、前記画像データを構成する1以上の前記参照画素データに基づいて前記注目画素データの下位ビットを算出して補正下位ビットとする下位ビット算出手段と、前記下位ビット算出手段より求めた前記補正下位ビットと前記注目画素データとを加算する手段と、を具備することを特徴とする。
【0009】
請求項2記載の発明は、前記参照画素データの上位ビットに基づいて、前記注目画素データの下位ビットを算出して前記補正下位ビットとすることを特徴とする。
請求項3記載の発明は、前記下位ビット算出手段により、前記参照画像データの値に対し重み付け係数を決定し、前記重み付け係数と前記注目画素データの上位ビットを乗算し前記補正下位ビットを算出することを特徴とする。
【0010】
請求項4記載の発明は、前記下位ビット算出手段により、前記注目画素データの近傍の前記参照画素データにより画素値の相関を求め、前記相関の結果に基づいて前記補正下位ビットを算出することを特徴とする。
【0011】
請求項5記載の発明は、前記下位ビット算出手段により、前記注目画素の両隣の前記参照画素の上位ビットを利用し、前記両隣の前記参照画素上位ビットデータの画素値の平均を算出することにより前記相関を求めることを特徴とする。
【0012】
請求項6記載の発明は、前記下位ビット算出手段により、前記注目画素の周辺の前記参照画素の上位ビットを利用し、前記周辺の前記参照画素の上位ビットデータの画素値の平均を算出することにより前記相関を求めることを特徴とする。
【0013】
請求項7記載の発明は、前記注目画素の下位ビット算出手段により、前記注目画素の近傍の原色ベイヤ配列における異色成分の前記参照画素の上位ビットに基づいて第1の色成分相関を算出し、さらに前記第1の色成分相関の結果と前記参照画素の上位ビットに基づいた第2の色成分相関により前記補正下位ビットを算出することを特徴とする。
【0014】
請求項8記載の発明は、前記下位ビット算出手段により、前記画像データ全体の前記参照画素の上位ビットを利用した相関に基づく関数を算出し前記第1の色成分相関を求めることを特徴とする。
【0015】
請求項9記載の発明は、前記下位ビット算出手段により、前記画像データを分割し、前記分割したブロック毎に前記参照画素の上位ビットを利用した相関に基づき関数を算出し前記第1の色成分相関を求めることを特徴とする。
【0016】
請求項10記載の発明は、前記下位ビット算出手段により、前記第1の色成分相関により算出した値により予め用意したテーブルを利用して前記補正下位ビットを算出することにより前記第2の色成分相関を求めることを特徴とする。
【0017】
請求項11記載の発明は、画像データを構成する1以上の画素データに基づいて前記画素データの下位ビットを予測する画像処理をコンピュータに実行させるプログラムであって、前記画像データを構成する1以上の前記参照画素データに基づいて前記注目画素データの下位ビットを算出して補正下位ビットとする下位ビット算出機能と、前記下位ビット算出機能より求めた前記補正下位ビットと前記注目画素の上位ビットとを加算する加算機能と、をコンピュータに実現させるためのプログラム。
【0018】
請求項12記載の発明は、前記参照画素データの上位ビットに基づいて、前記注目画素データの下位ビットを算出して前記補正下位ビットとすることをコンピュータに実現させるためのプログラム。
【発明の効果】
【0019】
上記により、下位ビットを切捨てた画像データに対し、補正した下位ビットを加算(重畳)することで階調数を増やすことができる。それにより圧縮・伸張等の画像処理を施した画像において、画像のエッジや階調の不連続性を除去し、S/Nを改善し良好な階調特性が得られるようにし、不自然なレベルの変化(トーンジャンプ)の発生を防止できる。
【発明を実施するための最良の形態】
【0020】
(実施形態1)
以下、本発明の実施の形態を図面に基づいて説明する。図1は、本発明を実施するデジタルカメラの構成を示す図である。尚、本実施例では、デジタルカメラを例とするが、デジタルカメラに限定されるものではない。
【0021】
CPU(Central Processing Unit )−A1はこのデジタルカメラ全体の動作制御を行う中央演算装置である。EEPROM(Electrically Erasable and Programmable Read Only Memory)2は、デジタルカメラの動作制御をCPU−A1に行なわせるための制御プログラムが予め格納されており、CPU−A1はこの制御プログラムを実行することによって上述した動作制御を行うようになる。
【0022】
レンズ3は被写体像をCCD4に結像させる撮影光学系である。CCD(Charge Coupled Device )4は結像された被写体像を光電変換して画像を示す電気信号(アナログ信号)を出力する撮像素子である。撮像回路5は、CDS(Correlated Double Sampling:相関二重サンプリング回路)やAGC(Automatic Gain Control:オートゲインコントロール回路)等を含んで構成され、CPU−A1の制御の下に、CCD4から出力された電気信号(アナログ信号)に含まれ得るリセット雑音の除去や信号レベルの調節などを行う回路である。
【0023】
A/D変換部6は、撮像回路5の出力信号(アナログ信号)をデジタルデータに変換する回路である。補正回路7は、A/D変換部6から出力されるデジタルデータで表現されている撮影画像に、ホワイトバランスやY補正等の補正処理を施す回路である。
【0024】
補正回路7の出力は、フレームメモリ8、CPU−B9、FIFOメモリ10、及び記録媒体I/F11とバス12を介して接続されており、これらの間ではCPU−B9によるバス12の管理の下で相互にデータの授受を行うことができる。
【0025】
フレームメモリ8は、補正回路7から出力された撮影画像やCPU−B9により画像処理が施された撮影画像などを一時的に蓄えるバッファメモリとして使用される他、CPU−B9による各種処理のための作業用の記憶領域としても使用されるメモリである。
【0026】
CPU−B9は、CPU−A1の制御の下で、自己の内部に備えられた制御プログラムに従い、フレームメモリ8の管理(フレームメモリコントロール機能)、圧縮されている画像データの伸張処理(画像伸張機能)、撮影画像に対するデータ圧縮処理(画像圧縮機能)、及びデータの書き込み及び読み出しのための記録媒体21へのアクセスの制御処理(記録媒体アクセス機能)などを行う。なお、画像データの圧縮処理及び伸張処理では、例えばJPEG(Joint Photographic Experts Group)方式による圧縮処理及び伸張処理等が行われる。
【0027】
FIFO(First-In First-Out)メモリ10は表示を行う画像を表現する画像データを一時的に格納するメモリであり、CPU−B9により画像処理された後の画像データなどが格納される。記録媒体I/F11は、記録媒体13との間でデータの授受を行うためのインタフェース機能を提供するものであり、記録媒体13へのデータの書き込み、或いは記録媒体13からのデータの読み出しの処理が行われる。
【0028】
記録媒体13は記録されたデータを保持するものであり、半導体メモリが内蔵されているメモリカードなどのリムーバブル型の記録媒体がデジタルカメラには便利である。ビデオエンコード回路14は、CPU−A1の制御の下で、FIFOメモリ10から読み出されたデータで表現される画像に日付等のオンスクリーン情報を重畳させる回路である。
【0029】
ビデオ出力回路15は、ビデオエンコード回路14から出力されたデジタル画像データをアナログ信号であるビデオ信号(画像信号)へと変換する回路である。ビデオ出力端子16は、ビデオ出力回路15から出力されたビデオ信号をこのデジタルカメラの外部へと出力する端子である。
【0030】
TFT(Thin Film Transistor)液晶駆動回路17は、CPU−A1の制御の下で、ビデオエンコード回路14から出力された画像信号に基づいてTFTパネル18を駆動する回路である。TFTパネル(TFT液晶パネル)18はTFT液晶駆動回路17によって駆動されてビデオエンコード回路14から出力された画像信号で表現される画像を表示する液晶モニタとして用いられている。
【0031】
なお、このデジタルカメラでは光学ファインダ(不図示)が装備されており、CCD4に結像している被写体像を液晶モニタに表示させずに被写体像の撮影をすることが可能であるので、このデジタルカメラに液晶モニタを動作させるか否かをユーザが設定できる構成としている。ここで、液晶モニタを動作させないように設定すればこのデジタルカメラの通常動作時における消費電力を低減させることができる。
【0032】
バックライトユニット19はTFTパネル18と一体となって液晶モニタを構成するものであり、CPU−A1の制御の下にTFTパネル18の液晶部をその背面から照射する光源が設けられているユニットである。この光源としては例えば白色LED(Light Emitting Diode )などが用いられる。
【0033】
アクチュエータ20は、レンズ(撮影光学系)3を駆動させるためのモータ(AF用モータやズーミング用モータ等)や機械式のシャッタの駆動装置などといった作動装置であり、アクチュエータ駆動回路21で駆動される。アクチュエータ駆動回路21は、CPU−A1の制御の下でアクチュエータ20を駆動させる回路である。
【0034】
外部データI/F22は、パーソナルコンピュータ等の外部装置とCPU−A1との間でのデータの授受を行うためのインタフェース機能を提供するものであり、例えばUSB(Universal Serial Bus)方式のI/Fである。キーマトリクス部23は、ユーザからの各種指示を受け付け、それをCPU−A1へ通知するための各種キー、スイッチ、ボタン等をマトリクス状に配線したものである。画像の撮影動作をこのデジタルカメラに行なわせるために操作されるレリーズボタンもこのキーマトリクス部23に含まれており、CPU−A1は、レリーズボタンに対する1stレリーズ(いわゆる半押し)及び2ndレリーズ(いわゆる全押し)の操作を検出することができる。
【0035】
LCD表示回路24は、CPU−A1の制御の下でLCDパネル25を駆動する回路である。LCDパネル25は、LCD表示回路24により駆動され、その駆動信号に応じた表示、例えば、露出やシャッタースピードなどといったこのデジタルカメラについての各種の設定状態の表示や、現在において撮影及び記録が可能である画像の枚数を示す表示を行う。
【0036】
電池26はこのデジタルカメラへ電力を供給するための電源である。電源回路27は、電池26から供給される電圧を制御してデジタルカメラの各部に電力を供給する回路である。CPU−A1は電源回路27に電力を供給している電池26の電圧の監視を行なっており、このデジタルカメラが通常の動作を行なっているとき(電源オン時)にその電圧値が一時的にでも所定値よりも小さくなったならばCPU−A1はその後このデジタルカメラでの撮影動作を禁止し、レリーズボタンに対する操作が行なわれても撮影のための制御処理を行わない。
【0037】
ここで、CPU−A1、フレームメモリ8、CPU−B9、TFT液晶駆動回路17、TFTパネル18等は一般的なパーソナルコンピュータを利用してもかまわない。
また、後述する処理はコンピュータプログラムにより処理可能で、その処理プログラムはCD−ROM等記録媒体やハードディスク等に記録されている。必要に応じて前記パーソナルコンピュータのメモリ上に前記処理プログラムを読み出し、CPUで実行しパーソナルコンピュータに接続されている各装置を制御している。
【0038】
なお、記録媒体は通信回線を介してコンピュータと接続されている、プログラムサーバとして機能するコンピュータが備えている記憶装置であってもよい。
この場合には、制御プログラムを表現するデータ信号で搬送波を変調して得られる伝送信号を、プログラムサーバから伝送媒体である通信回線を通じてコンピュータヘ伝送するようにし、コンピュータでは受信した伝送信号を復調して処理プログラムを再生することでこの処理プログラムをCPUで実行できるようになる。
(実施例1)
次に、上記構成を説明したデジタルカメラにおける、本発明の画像処理について説明をする。本実施例では、上位ビットとの相関を利用する方法として、上位ビットa(10ビット)と下位ビットb(2ビット)より構成される12ビットの画素データの処理について説明する。
【0039】
図2、図3は画像処理を行うときの概略フローで、撮像系の雑音成分として1画素の示すデータのビットのうち下位ビット分を切捨てた画素データとして記憶された画像に、算出した下位ビット(補正下位ビット)を重畳データとして、切捨てられた成分(下位ビット)の換わりに加算(重畳)することを示している。
【0040】
図2のフローについて説明する。
ステップS21は、下位ビット重畳処理の開始で、S21に進む以前に下位ビット分を切捨て圧縮された画素データがS21に渡される。
【0041】
ステップS22では、圧縮データを伸張し、ステップS23で、切捨てた下位ビット分だけ、左側にビットシフトを行う。
次に、ステップS24で、下位ビットに重畳する重畳データを算出し、ステップS25で重畳データを加算する。
【0042】
全ての画素に対してS23〜S25の処理を行い、ステップS26の判断で全ての画素に処理をしていればYESに進み終了する。NOであればS23〜S25の処理を再度行う。
【0043】
図3は図2の処理を入れかえた変形例である。図3のフローについて説明すると、ステップS21、ステップS22、ステップS26は、図2と同様の処理を行い、ステップS23〜S25の処理の順番を入れかえたフローである。
【0044】
図3ではステップS24を先に処理し、下位ビットに重畳する重畳データを算出する。次にステップS23で、切捨てた下位ビット分を左側にビットシフトを行う。そして、ステップS25で重畳データを加算する。よって、図3の結果は、図2のフローの結果と同様となる。
【0045】
次に、図4、図5を用いてより詳細な説明をすると、図4は、上位ビットa(10ビット)と下位ビットb(2ビット)より構成される12ビットの画素データをCPU−B9に取り込み、画像圧縮機能で下位ビットbを切捨て10ビットのデータに変更する。その後、圧縮処理をし、画素データを記憶する。ここまでが上記ステップS21の処理である。
【0046】
次に、図5は画像データを出力する場合、TFTパネル18に画像データを表示するときなどに、上記S21によって圧縮処理して記憶したデータを呼び出し、CPU−B9の伸張処理により伸張し10ビットのデータに変換し、上位ビットaを2ビットシフトし、S24で算出した重畳データを下位2ビットに重畳し12ビット幅のデータを生成する。
【0047】
次に、S24について算出する重畳データについて説明する。本実施例1では、算出方法をランダム成分の重畳データとしたときの下位ビットに重畳する方法について図6で説明する。
【0048】
S61は、圧縮時に切捨てられた10ビット幅の画素データを伸張したものを左に2ビットシフトした図である。S61でビットシフトすることで2ビットMSB側に移動する。
【0049】
次に、S62で下位2ビットであるb0、b1の場所に0を重畳する。ここではb0、b1をともに0としている。
S63では、S63の式1により下位ビットbを算出する。まず、上位ビットaを比較することでω(a)を算出する。S63の式2は上位ビットaが0もしくは1であれば、圧縮時に切捨てた下位ビットをともに0にする。
【0050】
S63の式3は上位ビットaが0以外であるとき、ランダムに重畳データを選ぶ。このとき下位ビットbが2ビットであればω(a)は、00、01、10、11の値を選び、S63の式1のb=ω(a)・aを計算し、乗算された12ビットのデータの下位2ビットをbとする。尚、bは2ビットであれば上位2ビットを選択してもいいし、12ビットのどのデータを選んでもかまわない。
【0051】
S64で、S63で算出した下位ビットbを重畳データとして上位ビットaに重畳する。
図7は図6のS61〜S64を実行させるブロックを示した図である。伸張部71によって切捨てされた10ビットの画素データを伸張し、次にビットシフト部72でS61とS62の処理を行い、データ保持用メモリ73にはS62の結果を保持する。
【0052】
そして、データ比較部74ではS63の条件に従い上位ビットaに基づきω(a)を算出する。重畳データ算出部75でS63の式1を計算し下位ビットbを算出する。算出後、S64に示した動作を行う。つまり、重畳データとデータ保持用メモリに記憶した10ビットの左シフト画素データを加算し12ビットの画素データを生成する。
【0053】
次に、図8を用いて上記構成の説明をフローに基づき行う。
ステップS81では、画素データを圧縮するときに、下位ビット切捨てを行ったかを判断する。切捨てを行っていた場合はS82に進み、切捨てをしていない場合にはS83に進む。このとき、切捨てを行ったかを判断するための情報は、圧縮時に切捨てビット数などの圧縮情報の一部として記憶してありこの情報を参照して判断を行う。尚、圧縮時の切捨下位ビット数をどうするかは、ユーザが選択してもいいし、全画像の画像状態などに基づき条件を決め、その条件に基づき自動で選択されてもかまわない。
【0054】
ステップS82では、圧縮時に決めた切捨てビット数を読込み、ステップS83では、切捨てをしなかったので切捨てビット数を0にしている。
ステップS84では、下位ビットbを切捨てされ圧縮されている1画像に含まれる画素データ全てを伸張し、圧縮前の切捨てされた画素データ(10ビット)に変換する。
【0055】
ステップS85では、S84で伸張したデータを読込み、ステップS86で、上記切捨てビットが0であるかないかを判断し、YESであれば、下位ビットの重畳処理をしないでS811に進む。NOであれば、ステップS87に進み、切捨てビット分左にビットシフトする。
【0056】
次に、ステップS88で、S87で左ビットシフトデータの上位ビットaが0、1もしくはそれ以外であるかを判断し、0、1であればYESでS811に進む。NOであればステップS89に進み、上記S63の条件に従い、ω(a)の値として00、01、10、11を選び、S63の式1を計算し下位ビットbを算出する。そして、ステップS810で上位ビットaと下位ビットbを加算することで重畳する。
【0057】
ステップS811では必要な全ての画素データの処理が終了したかを判断し、全ての処理が終了していればYESに進み終了する。終わっていなければNOに進みS85から再度処理を行う。
【0058】
尚、本実施例では下位ビットbを算出する場合、ω(a)・aとしているが、ω(a)の値を直接bとして下位ビットに重畳してもかまわない。
本実施例では、画素データのビット幅を12ビットとし、上位ビット10ビット、下位ビット2ビットの構成としたが、この構成に限定されるものではなく、画像のエッジや階調の不連続性を除去し、さらにS/Nを改善し良好な階調特性が得られるようにする画像処理ができる範囲であれば変形することが可能である。
【0059】
例えば、画像データ内において出現頻度の高い値の付近に対してのみランダムに重み付けを与え、その他の部分に対してのは0で重み付けすることも可能である。
尚、ランダム値と固定値を重み付け係数として用いて、対象の画素データ積算して、切捨てした下位ビットの幅の下位ビットを生成し、加算することで、画像のエッジや階調の不連続性を除去し、S/Nを改善することが可能になる。
(実施例2)
次に、実施例2では、隣接する色成分との相関を利用する方法として、上位ビットan(10ビット)と下位ビットcn(2ビット)より構成される12ビットの画素データの処理について説明する。
【0060】
図9は、ベイヤ配列された隣接画素を示した図である。隣接する色成分との相関を利用しanの画素の下位ビットcnを決めるために、隣接する左隣接画素の上位ビットan-1、右隣接画素の上位ビットan+1の画素データの相関に基づき下位ビットcnを算出し決定する。
【0061】
図10を用いて、隣接する色成分との相関から下位ビットcnを算出する方法を説明する。
S101は、圧縮時に切捨てられた10ビット幅の切捨てされた画素データを伸張したものを左に2ビットシフトした図である。S101でビットシフトすることで2ビットMSB側に移動する。次に、S102で下位2ビットであるb0、b1をともに0とする。ここではb0、b1をともに0としている。
【0062】
S103では、S103の式1によりbnを算出する。まず、隣接する画素データの上位ビット(10ビットの画素データ)であるan-1とan+1を用いてbn=(an-1+an+1)/2を算出する。そして、S103の式2〜式5を参照してbnの結果より条件を満たす値を判断しcnを決定する。
【0063】
S103の式2は、bnと予め設定された閾値1(k1)と比較し、bn>k1であればcnを3(〔b0〕〔b1〕→〔1〕〔1〕)にする。
S103の式3は、bnと予め設定された閾値1(k1)、閾値2(k2)と比較し、k2<bn<k1であればcnを2(〔b0〕〔b1〕→〔1〕〔0〕)にする。
【0064】
S103の式4は、bnと予め設定された閾値2(k2)、閾値3(k3)と比較し、k3<bn<k2であればcnを1(〔b0〕〔b1〕→〔0〕〔1〕)にする。
S103の式5は、bnと予め設定された閾値3(k3)と比較し、bn<k3であればcnを0(〔b0〕〔b1〕→〔0〕〔0〕)にする。
【0065】
次に、S103で決定した重畳データである補正下位ビットcnを、S104で画素データの下位ビットにcnを重畳する。
ここで、予め設定された閾値k1、k2、k3は、両隣の上位ビットの平均値の最大値(上位ビット全て1)から最小値(上位ビット全て0)の範囲で設定される。利用者が好みの画像になるように設定してもかまわない。
【0066】
図11は図10のS101〜S104を実行させるブロックを示した図である。伸張部111によって圧縮の際に切捨てされた10ビットの画素データを伸張する。次にビットシフト部112でS101とS102の処理を行い、データ保持用メモリ113にはS102の結果を保持し、平均算出部114では隣接画素データ用メモリ115に記憶されているan-1とan+1を呼び出し、S103の式1に従いbnを算出する。そして重畳データ算出部116でS103の式2〜5の条件によってcnを決定する。算出後、S104に示した動作により重畳データとデータ保持用メモリに記憶した10ビットの左シフト画素データanを加算し12ビットの画素データを生成する。
【0067】
次に、図12を用いてフローの説明をする。
ステップS121では、画素データを圧縮するときに、下位ビットの切捨てを行ったかを判断する。このとき、切捨てを行ったかを判断するための情報は、圧縮時に切捨てビット数などの圧縮情報の一部として記憶してありこの情報を参照して判断を行う。尚、切捨てを行っていた場合はS122に進み、切捨てをしていない場合にはS123に進む。圧縮時の切捨て下位ビット数をどうするかは、ユーザが選択してもいいし、画像条件に基づき自動選択されてもかまわない。
【0068】
ステップS122では、圧縮時に決めた切捨てビット数を読込み、ステップS123では、圧縮のときに切捨てをしなかったので切捨てビット数を0にしている。
ステップS124は、圧縮データを伸張し、切捨てされたデータに変換する。
【0069】
ステップS125では、切捨てされたデータを読込み、ステップS126で上記切捨てビットが0であるかないかを判断し、YESであれば、下位ビットの重畳処理をしないでS1212に進む。NOであれば、ステップS127に進み、切捨てビット分左にビットシフトする。
【0070】
次に、ステップS128で、S103の式1を計算し隣接画素データan-1とan+1より平均を、bn=(an-1+an+1)/2で算出する。
次に、ステップS129で上記S103の式2〜5の条件に従い、ステップS1210でcnの値(0、1、2、3)を選び、そして、ステップS1211で上位ビットanと下位ビットcnを加算することで重畳する。
【0071】
ステップS1212では必要な全ての画素データの処理が終了したかを判断し、全ての処理が終了していればYESに進み終了する。終わっていなければNOに進みS125から再度処理を行う。
【0072】
本実施例では、画素データのビット幅を12ビットとし、上位ビット10ビット、下位ビット2ビットの構成としたが、この構成に限定されるものではない。
尚、対象とする画素データの近傍の画素データとの相関を利用して下位ビットを生成できる。対象とする画素データの両隣の画素データとの相関を利用して下位ビットを生成できる。対象とする画素データの両端以外(上下の隣接または、隣接する画素にさらに隣接する画素)の画素データも含めた相関を利用して下位ビットを生成できる。これら求めた下位ビットと加算することで、画像のエッジや階調の不連続性を除去し、S/Nを改善することが可能になる。
【0073】
尚、画像のエッジや階調の不連続性を除去し、S/Nを改善し良好な階調特性が得られるようにする画像処理ができる範囲であれば変形することが可能である。
(実施例3)
次に、実施例3では、隣接する色成分との相関を利用する方法として、上位ビットan(10ビット)と下位ビットcn(2ビット)より構成される12ビットの画素データの処理について説明する。
【0074】
図13は、ベイヤ配列された隣接画素を示した図である。隣接する色成分との相関を利用しanの画素の下位ビットcnを決めるために、隣接しておりかつ、すでに下位ビットが補完された左隣接画素bn-1、右上隣接画素bn-l-1、上隣接画素bn-lの画素データの相関に基づき下位ビットcnを算出し決定する。
【0075】
図14を用いて、隣接する色成分との相関から下位ビットcnを算出する方法を説明する。
S141は、圧縮時に切捨てられた10ビット幅の切捨てされた画素データを伸張したものを左に2ビットシフトした図である。S141でビットシフトすることで2ビットMSB側に移動する。次に、S142で下位2ビットであるb0、b1をともに0とする。ここではb0、b1をともに0としている。
【0076】
S143では、S143の式1によりbnを算出する。まず、隣接する画素データであるbn-1とbn-lとbn-l-1を用いてbn=(bn-1+bn-l-bn-l-1)算出する。そして、S143の式2〜式5を参照してbnの結果より条件を満たす値を判断しcnを決定する。
【0077】
S143の式2は、bnと予め設定された閾値4(k4)と比較し、bn>k4であればcnを3(〔b0〕〔b1〕→〔1〕〔1〕)にする。
S143の式3は、bnと予め設定された閾値4(k4)、閾値5(k5)と比較し、k5<bn<k4であればcnを2(〔b0〕〔b1〕→〔1〕〔0〕)にする。
【0078】
S143の式4は、bnと予め設定された閾値5(k5)、閾値6(k6)と比較し、k6<bn<k5であればcnを1(〔b0〕〔b1〕→〔0〕〔1〕)にする。
S143の式5は、bnと予め設定された閾値6(k6)と比較し、bn<k6であればcnを0(〔b0〕〔b1〕→〔0〕〔0〕)にする。
【0079】
次に、S143で決定した重畳データである補正下位ビットcnを、S144で画素データの下位ビットにcnを重畳する。
ここで、予め設定された閾値k4、k5、k6は、bnの最大値から最小値の範囲で設定される。利用者が好みの画像になるように設定してもかまわない。
【0080】
図15は図14のS141〜S154を実行させるブロックを示した図である。伸張部151によって圧縮の際に切捨てされた10ビットの画素データを伸張する。次にビットシフト部152でS141とS142の処理を行い、データ保持用メモリ153にはS142の結果を保持し、係数(bn)算出部154では隣接画素データ用メモリ155に記憶されているbn-1とbn-lとbn-l-1を呼び出し、S143の式1に従いbnを算出する。そして重畳データ算出部156でS143の式2〜5の条件によってcnを決定する。算出後、S144に示した動作により重畳データとデータ保持用メモリに記憶した10ビットの左シフト画素データanを加算し12ビットの画素データを生成する。
【0081】
次に、図16を用いてフローの説明をする。
ステップS161では、画素データを圧縮するときに、下位ビットの切捨てを行ったかを判断する。このとき、切捨てを行ったかを判断するための情報は、圧縮時に切捨てビット数などの圧縮情報の一部として記憶してありこの情報を参照して判断を行う。尚、切捨てを行っていた場合はS162に進み、切捨てをしていない場合にはS163に進む。圧縮時の切捨て下位ビット数をどうするかは、ユーザが選択してもいいし、画像条件に基づき自動選択されてもかまわない。
【0082】
ステップS162では、圧縮時に決めた切捨てビット数を読込み、ステップS163では、圧縮のときに切捨てをしなかったので切捨てビット数を0にしている。
ステップS164は、圧縮データを伸張し、切捨てされたデータに変換する。
【0083】
ステップS165では、切捨てされたデータを読込み、ステップS166で上記切捨てビットが0であるかないかを判断し、YESであれば、下位ビットの重畳処理をしないでS1612に進む。NOであれば、ステップS167に進み、切捨てビット分左にビットシフトする。
【0084】
次に、ステップS168で、S143の式1を計算し隣接画素データbn-1とbn-lとbn-l-1より係数bn=(bn-1+bn-l-bn-l-1)で算出する。
次に、ステップS169で上記S143の式2〜5の条件に従い、ステップS1610でcnの値(0、1、2、3)を選び、そして、ステップS1611で上位ビットanと下位ビットcnを加算することで重畳する。
【0085】
ステップS1612では必要な全ての画素データの処理が終了したかを判断し、全ての処理が終了していればYESに進み終了する。終わっていなければNOに進みS165から再度処理を行う。
【0086】
本実施例では、画素データのビット幅を12ビットとし、上位ビット10ビット、下位ビット2ビットの構成としたが、この構成に限定されるものではない。
尚、対象とする画素データの近傍の画素データとの相関を利用して下位ビットを生成できる。対象とする画素データの両隣の画素データとの相関を利用して下位ビットを生成できる。対象とする画素データの両端以外(上下の隣接または、隣接する画素にさらに隣接する画素)の画素データも含めた相関を利用して下位ビットを生成できる。これら求めた下位ビットと加算することで、画像のエッジや階調の不連続性を除去し、S/Nを改善することが可能になる。
【0087】
尚、画像のエッジや階調の不連続性を除去し、S/Nを改善し良好な階調特性が得られるようにする画像処理ができる範囲であれば変形することが可能である。
(実施例4)
デジタルカメラ等の電子撮像装置の画像は、G(緑)信号の輝度成分に大きく左右されやすい。また、デジタルカメラでは、G(緑)を市松状に配置した原色ベイヤ配列が一般的であり、R(赤)およびB(青)位置のG(緑)信号の予測精度が、解像度・画質向上につながる。
【0088】
画像信号を隣接画素ブロックに分割する場合、各ブロック情報は1本のベクトルで表示できる。各ブロックにおけるR、G、B信号成分のベクトル情報は、特に低彩度領域では高い相関があることが知られている。従来からG補正に利用されているR、B位置の周囲のG信号からの予測値と、RまたはB信号のベクトル情報により、正確なG信号予測を行う方法が知られている。
【0089】
実施例4では、隣接する色成分との相関とを利用する方法として、上位ビットan(10ビット)と下位ビットcn(2ビット)より構成される12ビットの画素データの処理について説明する。
【0090】
隣接する色成分との相関を利用し画素データの下位ビットを決めるために、G(緑)に隣接する隣接画素R(赤)、隣接画素B(青)の画素データとの色成分同士の色成分相関を算出し下位ビットを決定する。
【0091】
ここでは、処理を簡単にするために、次のような方法について説明する。図17は原色ベイヤ配列を示した図で、R(赤)の横にあるG(緑)をGrとし、B(青)の横にあるG(緑)をGbとして示している。
【0092】
図18を用いて、隣接する色成分との相関から下位ビットを算出する方法を説明する。
R(赤)の下位ビットを決定する場合は隣接するGrとの相関より求め、Grの下位ビットを求める場合は隣接するR(赤)との相関により決定する。また、B(青)の下位ビットを決定する場合は隣接するGbとの相関より求め、Gbの下位ビットを求める場合は隣接するB(青)との相関により決定する。
【0093】
例えば、R(赤)画素の下位ビットを隣接するGr画素との相関から算出する場合を考える。
S181は、R(赤)の圧縮時に切捨てられた10ビット幅の画素データを伸張したものを左に2ビットシフトした図である。S181でビットシフトすることで2ビットがMSB側に移動するため、S182で下位2ビットであるb0、b1をともに0にする。
【0094】
S183では、S183の式1によりωnと下位ビットcnを算出する。まず、隣接する画素データのR(赤)とGrの上位ビット(10ビットの画素データ)用いてωn( )=A(Gr)を算出する。ここでAは、デジタルカメラの写した画像全体から特性を算出しR(赤)、G(緑)、B(青)の相関を求めた関数である。相関を算出する関数は、テーブルを用意してもいいし、一次関数、n次関数、n次多項式、回帰分析等を算出して使用してもかまわない。尚、Aは原色ベイヤ配列されたGrと隣接するR(赤)またはGbと隣接するB(青)の相関に基づく関数であってもよい。
【0095】
そして、cnは、関数ωn( )に対象画素に隣接する画素データを代入することで決まり、この場合も、テーブルなどを用意してcnを求める。例えば、下位2ビットを決めるのであれば実施例2のように閾値を決めて0〜3を選択してもかまわない。
【0096】
そして、対象の隣接画素の上位ビットan-1をωnによって演算して下位ビットcnを算出する。そして、S183の式1の結果よりcnを決定する。
次に、S183で決定した重畳データである補正下位ビットcnを、S184で上位ビットanに重畳する。
【0097】
図19は図18のS181〜S184を実行させるブロックを示した図である。伸張部191によって切捨てされた10ビットの画素データを伸張する。次にビットシフト部192でS181とS182の処理を行い、データ保持用メモリ193にはS182の結果を保持し、重畳係数読込部194では重畳係数用メモリ195に記憶されている全画素データの中からan-1とan+1を呼び出し、S183に従いcnを算出する。そして重畳データ算出部196でcnを決定する。算出後、S184に示した動作により重畳データとデータ保持用メモリに記憶した10ビットの左シフト画素データanを加算し12ビットの画素データを生成する。
【0098】
次に、図20を用いてフローの説明をする。
ステップS201では、画素データを圧縮するときに、下位ビットの切捨てを行ったかを判断する。このとき、切捨てを行ったかを判断するための情報は、圧縮時に切捨てビット数などの圧縮情報の一部として記憶してありこの情報を参照して判断を行う。尚、切捨てを行っていた場合はS202に進み、切捨てをしていない場合にはS203に進む。圧縮時の切捨てをするかどうかは、ユーザが選択してもいいし、画像条件に基づき自動選択されてもかまわない。
【0099】
ステップS202では、圧縮時に決めた切捨てビット数を読込み、ステップS203では、切捨てをしなかったので切捨てビット数を0にしている。
ステップS204は、圧縮データを伸張し、切捨てされたデータに変換する。
【0100】
ステップS205では、切捨てされたデータを読込み、ステップS206で上記切捨てビットが0であるかないかを判断し、YESであれば、下位ビットの重畳処理をしないでS2011に進む。NOであれば、ステップS207に進み、切捨てビット分左にビットシフトする。
【0101】
次に、ステップS208で、重畳係数を読込み、ステップS209で、S203の演算により下位ビットcnを算出する。そして、ステップS2010で、上位ビットanと下位ビットcnを加算することで重畳する。
【0102】
ステップS2011では必要な全ての画素データの処理が終了したかを判断し、全ての処理が終了していればYESに進み終了する。終わっていなければNOに進みS205から再度処理を行う。
【0103】
本実施例では、画素データのビット幅を12ビットとし、上位ビット10ビット、下位ビット2ビットの構成としたが、この構成に限定されるものではない。上記構成によれば、原色ベイヤ配列された画像データにおいて、対象とする画素データの異色成分の画素データとの相関を利用して、下位ビットを生成できる。
【0104】
画像データ全体から色成分相関を算出し、その色成分相関を利用して下位ビットを生成できる。また、画像データを分割して分割したブロック内画像データの色成分相関を算出し、その相関を利用して、下位ビットを生成できる。また、色成分相関により算出した値からテーブルを検索し、切捨てした下位ビットの幅の下位ビットを探し、それらの下位ビットを加算することで、画像のエッジや階調の不連続性を除去し、S/Nを改善することが可能になる。
(変形例)
階調数の少ないデータに対し、データを重畳することにより階調数を増やすことが出来る。この効果として、画像処理によって生ずる不自然な階調変化を除去することができる。
【0105】
例えば、エッジや階調部に対して、トーンジャンプを緩和することが出来る。
実施例においてはデジタルカメラを用いて説明したが、特許請求の範囲に記載された本発明の要旨を逸脱しない限りその他の画像処理装置にも適用可能である。
【図面の簡単な説明】
【0106】
【図1】本発明を実施するデジタルカメラの構成を示す図である。
【図2】画像処理を行う際の概略フローである。
【図3】画像処理を行う際の概略フローである。(変形例)
【図4】画素データの圧縮処理を示した図である。
【図5】画素データの伸張処理を示した図である。
【図6】上位ビットとの相関を利用した方法を示した図である。
【図7】上位ビットとの相関を利用した方法を示したブロック図である。
【図8】上位ビットとの相関を利用した方法を示したフロー図である。
【図9】隣接する画素データの並びを示した図である。
【図10】隣接する両側の画素データによって相関を利用した方法を示した図である。
【図11】隣接する両側の画素データによって相関を利用した方法を示したブロック図である。
【図12】隣接する両側の画素データによって相関を利用した方法を示したフロー図である。
【図13】隣接する画素データの並びを示した図である。
【図14】隣接する左、上および右上の画素データによって相関を利用した方法を示した図である。
【図15】隣接する左、上および右上の画素データによって相関を利用した方法を示したブロック図である。
【図16】隣接する左、上および右上の画素データによって相関を利用した方法を示したフロー図である。
【図17】原色ベイヤ配列を示した図である。
【図18】近接する色成分との相関を利用する方法を示した図である。
【図19】近接する色成分との相関を利用する方法を示したブロック図である。
【図20】近接する色成分との相関を利用する方法を示したフロー図である。
【符号の説明】
【0107】
1 ・・・ CPU−A
2 ・・・ EEPROM
3 ・・・ レンズ
4 ・・・ CCD
5 ・・・ 撮像回路
6 ・・・ A/D変換部
7 ・・・ 補正回路
8 ・・・ フレームメモリ
9 ・・・ CPU−B
10 ・・・ FIFOメモリ
11 ・・・ 記録媒体I/F
12 ・・・ バス
13 ・・・ 記録媒体
14 ・・・ ビデオエンコード回路
15 ・・・ ビデオ出力回路
16 ・・・ ビデオ出力端子
17 ・・・ TFT液晶駆動回路
18 ・・・ TFTパネル
19 ・・・ バックライトユニット
20 ・・・ アクチュエータ
21 ・・・ アクチュエータ駆動回路
22 ・・・ 外部データI/F
23 ・・・ キーマトリクス部
24 ・・・ LCD表示回路
25 ・・・ LCDパネル
26 ・・・ 電池
27 ・・・ 電源回路
【特許請求の範囲】
【請求項1】
画像データを構成する1以上の参照画素データに基づいて注目画素データの下位ビットを予測する画像処理装置において、
前記画像データを構成する1以上の前記参照画素データに基づいて前記注目画素データの下位ビットを算出して補正下位ビットとする下位ビット算出手段と、
前記下位ビット算出手段より求めた前記補正下位ビットと前記注目画素データとを加算する手段と、
を具備することを特徴とする画像処理装置。
【請求項2】
前記補正下位ビットは、前記参照画素データの上位ビットに基づいて、前記注目画素データの下位ビットを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記下位ビット算出手段は、前記参照画像データの値に対し重み付け係数を決定し、前記重み付け係数と前記注目画素データの上位ビットを乗算し前記補正下位ビットを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記下位ビット算出手段は、前記注目画素データの近傍の前記参照画素データにより画素値の相関を求め、前記相関の結果に基づいて前記補正下位ビットを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記下位ビット算出手段は、前記注目画素の両隣の前記参照画素の上位ビットを利用し、前記両隣の前記参照画素上位ビットデータの画素値の平均を算出することにより前記相関を求めることを特徴とする請求項1または4に記載の画像処理装置。
【請求項6】
前記下位ビット算出手段は、前記注目画素の周辺の前記参照画素の上位ビットを利用し、前記周辺の前記参照画素の上位ビットデータの画素値の平均を算出することにより前記相関を求めることを特徴とする請求項1または4に記載の画像処理装置。
【請求項7】
前記注目画素の下位ビット算出手段は、前記注目画素の近傍の原色ベイヤ配列における異色成分の前記参照画素の上位ビットに基づいて第1の色成分相関を算出し、さらに前記第1の色成分相関の結果と前記参照画素の上位ビットに基づいた第2の色成分相関により前記補正下位ビットを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項8】
前記下位ビット算出手段は、前記画像データ全体の前記参照画素の上位ビットを利用した相関に基づく関数を算出し前記第1の色成分相関を求めることを特徴とする請求項1または7に記載の画像処理装置。
【請求項9】
前記下位ビット算出手段は、前記画像データを分割し、前記分割したブロック毎に前記参照画素の上位ビットを利用した相関に基づき関数を算出し前記第1の色成分相関を求めることを特徴とする請求項1または7に記載の画像処理装置。
【請求項10】
前記下位ビット算出手段は、前記第1の色成分相関により算出した値により予め用意したテーブルを利用して前記補正下位ビットを算出することにより前記第2の色成分相関を求めることを特徴とする請求項1または7に記載の画像処理装置。
【請求項11】
画像データを構成する1以上の画素データに基づいて前記画素データの下位ビットを予測する画像処理をコンピュータに実行させるプログラムであって、
前記画像データを構成する1以上の前記参照画素データに基づいて前記注目画素データの下位ビットを算出して補正下位ビットとする下位ビット算出機能と、
前記下位ビット算出機能より求めた前記補正下位ビットと前記注目画素の上位ビットとを加算する加算機能と、
をコンピュータに実現させるためのプログラム。
【請求項12】
前記補正下位ビットは、前記参照画素データの上位ビットに基づいて、前記注目画素データの下位ビットを算出することを特徴とする請求項11に記載のコンピュータに実現させるためのプログラム。
【請求項1】
画像データを構成する1以上の参照画素データに基づいて注目画素データの下位ビットを予測する画像処理装置において、
前記画像データを構成する1以上の前記参照画素データに基づいて前記注目画素データの下位ビットを算出して補正下位ビットとする下位ビット算出手段と、
前記下位ビット算出手段より求めた前記補正下位ビットと前記注目画素データとを加算する手段と、
を具備することを特徴とする画像処理装置。
【請求項2】
前記補正下位ビットは、前記参照画素データの上位ビットに基づいて、前記注目画素データの下位ビットを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記下位ビット算出手段は、前記参照画像データの値に対し重み付け係数を決定し、前記重み付け係数と前記注目画素データの上位ビットを乗算し前記補正下位ビットを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記下位ビット算出手段は、前記注目画素データの近傍の前記参照画素データにより画素値の相関を求め、前記相関の結果に基づいて前記補正下位ビットを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記下位ビット算出手段は、前記注目画素の両隣の前記参照画素の上位ビットを利用し、前記両隣の前記参照画素上位ビットデータの画素値の平均を算出することにより前記相関を求めることを特徴とする請求項1または4に記載の画像処理装置。
【請求項6】
前記下位ビット算出手段は、前記注目画素の周辺の前記参照画素の上位ビットを利用し、前記周辺の前記参照画素の上位ビットデータの画素値の平均を算出することにより前記相関を求めることを特徴とする請求項1または4に記載の画像処理装置。
【請求項7】
前記注目画素の下位ビット算出手段は、前記注目画素の近傍の原色ベイヤ配列における異色成分の前記参照画素の上位ビットに基づいて第1の色成分相関を算出し、さらに前記第1の色成分相関の結果と前記参照画素の上位ビットに基づいた第2の色成分相関により前記補正下位ビットを算出することを特徴とする請求項1に記載の画像処理装置。
【請求項8】
前記下位ビット算出手段は、前記画像データ全体の前記参照画素の上位ビットを利用した相関に基づく関数を算出し前記第1の色成分相関を求めることを特徴とする請求項1または7に記載の画像処理装置。
【請求項9】
前記下位ビット算出手段は、前記画像データを分割し、前記分割したブロック毎に前記参照画素の上位ビットを利用した相関に基づき関数を算出し前記第1の色成分相関を求めることを特徴とする請求項1または7に記載の画像処理装置。
【請求項10】
前記下位ビット算出手段は、前記第1の色成分相関により算出した値により予め用意したテーブルを利用して前記補正下位ビットを算出することにより前記第2の色成分相関を求めることを特徴とする請求項1または7に記載の画像処理装置。
【請求項11】
画像データを構成する1以上の画素データに基づいて前記画素データの下位ビットを予測する画像処理をコンピュータに実行させるプログラムであって、
前記画像データを構成する1以上の前記参照画素データに基づいて前記注目画素データの下位ビットを算出して補正下位ビットとする下位ビット算出機能と、
前記下位ビット算出機能より求めた前記補正下位ビットと前記注目画素の上位ビットとを加算する加算機能と、
をコンピュータに実現させるためのプログラム。
【請求項12】
前記補正下位ビットは、前記参照画素データの上位ビットに基づいて、前記注目画素データの下位ビットを算出することを特徴とする請求項11に記載のコンピュータに実現させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2006−25123(P2006−25123A)
【公開日】平成18年1月26日(2006.1.26)
【国際特許分類】
【出願番号】特願2004−200753(P2004−200753)
【出願日】平成16年7月7日(2004.7.7)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
【公開日】平成18年1月26日(2006.1.26)
【国際特許分類】
【出願日】平成16年7月7日(2004.7.7)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
[ Back to top ]