撮像装置、撮像回路、および撮像方法
【課題】内部メモリにおける画像データの読み書きに要する時間を短縮して、高画質な画像を高速に撮像できるようにする。
【解決手段】撮像画像データを、隣接する一定数の同色成分画素からなるブロックを単位として圧縮してメモリに格納した後、その圧縮画像データを伸張してから画質補正処理を施す。圧縮の際には、それぞれ異なる2つの量子化対象の領域を持つ複数のブロックタイプが定義され、各ブロックタイプ内の領域におけるダイナミックレンジの加算値が比較され、加算値が最も小さいブロックタイプが選択されて、そのブロックタイプにおける領域ごとにデータがダイナミックレンジに応じて量子化される。従って、ブロック内での画像状態に応じて、量子化による画質劣化が最小限に抑制されるような最適なブロックタイプが選択されて、量子化処理が実行されるようになる。
【解決手段】撮像画像データを、隣接する一定数の同色成分画素からなるブロックを単位として圧縮してメモリに格納した後、その圧縮画像データを伸張してから画質補正処理を施す。圧縮の際には、それぞれ異なる2つの量子化対象の領域を持つ複数のブロックタイプが定義され、各ブロックタイプ内の領域におけるダイナミックレンジの加算値が比較され、加算値が最も小さいブロックタイプが選択されて、そのブロックタイプにおける領域ごとにデータがダイナミックレンジに応じて量子化される。従って、ブロック内での画像状態に応じて、量子化による画質劣化が最小限に抑制されるような最適なブロックタイプが選択されて、量子化処理が実行されるようになる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、固体撮像素子を用いて画像を撮像する撮像装置、撮像回路、および撮像方法に関し、特に、撮像により得られた画像信号を一旦メモリに格納して処理する構成の撮像装置、およびそのような構成に適した撮像回路、撮像方法に関する。
【背景技術】
【0002】
近年、デジタルスチルカメラやデジタルビデオカメラなど、固体撮像素子を用いて撮像し、撮像画像をデジタルデータとして保存することができる撮像装置が広く普及している。このような撮像装置では、撮像素子の多画素化や、装置の高機能化・高性能化が進んでいる。特に、撮像素子の多画素化が進むと撮像信号の処理負荷が増大するが、そのような撮像装置であっても、操作にストレスがないように高速で処理できることが求められている。
【0003】
図12は、従来の撮像装置の構成例を示すブロック図である。
図12に示す従来の撮像装置は、撮像素子81、アナログフロントエンド(AFE)回路82、デジタル画像処理回路83、SDRAM(Synchronous Dynamic Random Access Memory)84、ROM(Read Only Memory)85、およびストレージデバイス86を備えている。また、デジタル画像処理回路83は、カメラ信号前処理部91、カメラ信号処理部92、解像度変換部93、JPEG(Joint Photographic Experts Group)エンジン94、CPU(Central Processing Unit)95、ビデオ出力エンコーダ96、およびSDRAMコントローラ97を備え、これらが内部バス98により相互に接続された構成となっている。
【0004】
このような撮像装置において、撮像素子81による撮像信号は、順次AFE回路82に供給され、CDS(Correlated Double Sampling)処理やAGC(Auto Gain Control)処理が施された後、デジタル信号に変換されて、デジタル画像処理回路83に供給される。カメラ信号前処理部91は、入力された画像信号に対して、欠陥画素補正やシェーディング補正などを施し、RAW(生)データとして、SDRAMコントローラ97を介してSDRAM84に書き込む。
【0005】
カメラ信号処理部92は、そのRAWデータをSDRAMコントローラ97を介してSDRAM84から読み出し、各種検波や画質補正処理(カメラ信号処理)を実行した後、輝度信号(Y)と色差信号(R−Y,B−Y)に変換して出力する。解像度変換部93は、カメラ信号処理部92からの出力画像データに対して、必要に応じて解像度変換処理を施す。
【0006】
ビデオ出力エンコーダ96は、解像度変換部93によって表示に適する解像度に変換された画像データを、モニタ表示用の画像信号に変換し、図示しないモニタあるいはビデオ出力端子96aに対して出力する。これにより、カメラスルー画像を表示させることができる。JPEGエンジン94は、カメラ信号処理部92または解像度変換部93からの画像データを、JPEG方式に従って圧縮符号化し、一旦SDRAM84に格納する。CPU95は、SDRAM84に格納されたJPEG符号化データを、ストレージデバイス86に記録する。
【0007】
なお、CPU95は、この撮像装置全体の処理を、統括的に制御し、ROM85には、CPU95が実行するプログラムや、処理に必要なデータが記録されている。
また、上記の例では、撮像画像をJPEGデータとして記録する構成としているが、この他に、カメラ信号処理などが施されていないRAWデータをそのまま記録媒体に記録する機能を備えた撮像装置も実現されている。例えば、RAWデータをハフマンテーブルを利用した可逆的圧縮手法により圧縮して記録する機能を備え、そのハフマンテーブルを色チャネルごとに最適化するようにしたものがあった(例えば、特許文献1参照)。また、RAWデータを圧縮して記録するRAW圧縮モードに設定した際には、通常圧縮モードで使用するRAWデータの補間処理部をバイパスするようにしたものもあった(例えば、特許文献2参照)。
【0008】
さらに、関連する撮像装置としては、撮像素子から取り込んだ画像データを、可逆的に圧縮してメモリに一旦記憶させた後、その圧縮データを伸張して信号処理を施し、非可逆的に圧縮してメモリに記憶させるようにしたものもあった(例えば、特許文献3参照)。
【特許文献1】特開2004−40300号公報(段落番号〔0019〕〜〔0028〕、図2)
【特許文献2】特開2003−125209号公報(段落番号〔0027〕〜〔0037〕、図1)
【特許文献3】特開平5−191770号公報(段落番号〔0017〕〜〔0020〕、図1)
【発明の開示】
【発明が解決しようとする課題】
【0009】
ところで、上記の図12のように、一般的な撮像装置では、撮像素子から得られたRAWデータを、一旦SDRAMなどの画像メモリに格納した後、そこから読み出してカメラ信号処理などを施す構成となっている。例えば、インタレース読み出し方式の撮像素子を用いた場合など、複数フィールドで1フレームのキャプチャが終了するタイプの装置では、各フィールドのデータをメモリに格納してから、フレームのデータを生成することが必須である。また、カメラ信号処理部のラインメモリの規模を抑制するために、1H(水平同期期間)の長さの数分の一程度のディレイラインのみを用いて、全画面を部分的に(例えば、縦方向に数本の短冊状に)処理していくような処理系を持つ場合にも、少なくともその処理の前に全画面のデータをメモリに格納しておく必要がある。
【0010】
ここで、RAWデータのメモリへの書き込みおよび読み出しの際には、全画面分のデータが内部バス上を流れるため、この伝送に必要なバス帯域は、撮像時の全体のバス帯域の多くを占める。特に、撮像素子の画素数が増加してRAWデータの容量が大きくなるほど、データ転送の負荷が高まり、メモリの書き込み/読み出しに要する時間も長くなる。従って、記録処理に要する時間を短縮しようとすると、伝送周波数を高くするなどしてバス帯域を拡大することが必要となり、装置コストが増大するという問題があった。また、画素数が多いほど、RAWデータを格納するメモリの容量も大きくなるという問題もあった。
【0011】
これに対して、内部バスの伝送時にRAWデータを圧縮して伝送することも考えられているが、この圧縮方式として可変長符号化方式を用いると、伝送に必要なバス帯域を一定にできなくなり、処理が複雑になる、バス帯域の削減効果を常時得られないなどの問題も生じる。
【0012】
また、RAWデータの圧縮手法として、一定数の隣接する画素データからなるブロックを単位として量子化して、固定長の圧縮データを生成する手法が考えられる。しかし、この手法においては、常に一定数の画素を単位として量子化すると、量子化ビット数を低くするほどノイズが増加してしまい、特に明るさの変動が激しいエッジ部分などにおいて、視認可能な程度のノイズが発生する可能性があることが課題となっていた。
【0013】
なお、上記の特許文献1は、RAWデータを可変長符号化方式で圧縮するものであり、また、特許文献1および2の双方とも、内部バスの帯域を削減するためにRAWデータを圧縮するものではない。また、特許文献3では、画像データをメモリに一旦記憶させる際の可逆圧縮手法について、隣接画素間の差分をとってハフマン符号化することが記載されているのみであり、さらに、この手法では固定長符号化方式とすることも困難である。
【0014】
本発明はこのような点に鑑みてなされたものであり、内部メモリにおける画像データの読み書きに要する時間を短縮して、高画質な画像を高速に撮像できるようにした撮像装置、撮像回路、および撮像方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明では上記課題を解決するために、固体撮像素子を用いて画像を撮像する撮像装置において、前記固体撮像素子での撮像により得られた画像データを、隣接する一定数の同色成分画素からなるブロックを単位として圧縮する圧縮部と、前記圧縮部により圧縮された圧縮画像データを一時的に保持するメモリと、前記メモリから読み出した前記圧縮画像データを伸張する伸張部と、前記伸張部により伸張された画像データに対して画質補正処理を施す信号処理部と、を有し、前記圧縮部は、互いに隣接した1つ以上の画素からなる2つの量子化対象領域によって前記ブロック内の画素が分割され、かつ、2つの前記量子化対象領域の境界位置が互いに異なるように、複数のブロックタイプがあらかじめ定義されており、前記ブロックタイプのすべての前記量子化対象領域における画素データのダイナミックレンジを計算するダイナミックレンジ計算部と、前記ダイナミックレンジ計算部による計算結果を基に、前記各ブロックタイプ内の前記量子化対象領域におけるダイナミックレンジを加算した加算値を、前記ブロックタイプごとに計算し、前記加算値が最も小さい前記ブロックタイプを選択するブロックタイプ選択部と、前記ブロックタイプ選択部により選択された前記ブロックタイプにおける前記量子化対象領域ごとに、当該量子化対象領域に含まれる画素データから当該量子化対象領域における画素データの最小値を減算した値を、前記ダイナミックレンジ計算部で算出された対応するダイナミックレンジに応じて量子化する量子化部と、を備えたことを特徴とする撮像装置が提供される。
【0016】
このような撮像装置では、撮像により得られた画像データが、圧縮部により圧縮され、その圧縮画像データが一時的にメモリに格納された後、メモリから読み出された圧縮画像データが伸張部により伸張され、伸張された画像データに対して、信号処理部により画質補正処理が施される。圧縮部では、隣接する一定数の同色成分画素からなるブロックを単位として圧縮画像データが生成され、その量子化の際には、あらかじめ定義された複数のブロックタイプのうち適切なものが選択される。複数のブロックタイプは、互いに隣接した1つ以上の画素からなる2つの量子化対象領域によってブロック内の画素が分割され、かつ、2つの量子化対象領域の境界位置が互いに異なるように、それぞれ定義される。圧縮部では、各ブロックタイプ内の量子化対象領域におけるダイナミックレンジの加算値が比較され、加算値が最も小さいブロックタイプが選択される。そして、選択されたブロックタイプにおける量子化対象領域ごとに、それらの量子化対象領域に含まれる画素データからその量子化対象領域における画素データの最小値を減算した値が、その量子化対象領域に対応するダイナミックレンジに応じて量子化される。
【発明の効果】
【0017】
本発明の撮像装置では、撮像画像データを信号処理部で画質補正処理するまでの手順において、メモリで読み書きされる画像データが圧縮されるので、メモリにおける画像データの読み書きに要する時間が短縮される。また、圧縮により、隣接する一定数の同色成分画素からなるブロックを単位として圧縮画像データが生成され、その圧縮の際には、それぞれ異なる2つの量子化対象領域を持つ複数のブロックタイプが定義されて、各ブロックタイプ内の量子化対象領域におけるダイナミックレンジの加算値が比較され、加算値が最も小さいブロックタイプが選択されて、そのブロックタイプにおける量子化対象領域ごとにデータがダイナミックレンジに応じて量子化されるので、ブロック内での画像状態に応じて、量子化による画質劣化が最小限に抑制されるような最適なブロックタイプが選択されて、量子化処理が実行されるようになる。従って、高画質な撮像画像を高速な処理によって得ることが可能になる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、本発明の第1の実施の形態に係る撮像装置の構成を示すブロック図である。
【0019】
図1に示す撮像装置は、撮像素子11、AFE回路12、デジタル画像処理回路13、SDRAM14、ROM15、およびストレージデバイス16を備えている。また、デジタル画像処理回路13は、カメラ信号前処理部21、カメラ信号処理部22、解像度変換部23、JPEGエンジン24、CPU25、ビデオ出力エンコーダ26、およびSDRAMコントローラ27を備え、これらが内部バス28により相互に接続された構成となっている。さらに、このような従来からの構成に加えて、本実施の形態のデジタル画像処理回路13は、RAW圧縮部31およびRAW伸張部32を備えている。
【0020】
撮像素子11は、例えばCCD(Charge Coupled Devices)、CMOS(Complementary Metal Oxide Semiconductor)型イメージセンサなどの固体撮像素子であり、図示しないレンズブロックを通じて被写体から入射した光を、電気信号に変換する。
【0021】
AFE回路12は、撮像素子11から出力された画像信号に対して、CDS処理によりS/N(Signal/Noise)比を良好に保つようにサンプルホールドを行い、さらにAGC処理により利得を制御し、A/D(Analog/Digital)変換を行ってデジタル画像信号を出力する。
【0022】
デジタル画像処理回路13は、例えば、SoC(System On a Chip)回路などとして形成される。このデジタル画像処理回路13において、カメラ信号前処理部21は、AFE回路12から供給された画像信号に対して、撮像素子11における欠陥画素の信号補正処理、レンズの周辺光量落ちを補正するシェーディング処理などを施し、処理後の信号をRAWデータとして出力する。
【0023】
RAW圧縮部31は、カメラ信号前処理部21からのRAWデータを、後述する圧縮手法により圧縮し、SDRAMコントローラ27を介して、SDRAM14に供給する。
RAW伸張部32は、SDRAM14からSDRAMコントローラ27を介して読み出した、圧縮されたRAWデータを、後述する手法により伸張して、カメラ信号処理部22に出力する。
【0024】
カメラ信号処理部22は、RAW伸張部32からRAWデータにデモザイク処理を施した後、AF(Auto Focus)、AE(Auto Exposure)、ホワイトバランス制御などのための信号検波処理や、ホワイトバランス調整に代表される画質補正処理など、いわゆるカメラ信号処理、またはその処理の一部を実行する。さらに、画質補正後の画像データを、例えば4:2:2などの所定フォーマットの輝度信号(Y)と色差信号(R−Y,B−Y)に変換する。
【0025】
解像度変換部23は、カメラ信号処理部22で処理された画像データ、あるいはJPEGエンジン24で伸張復号化された画像データの入力を受けて、所定の解像度に変換する。
【0026】
JPEGエンジン24は、解像度変換部23で処理された画像データを圧縮符号化し、JPEG方式の符号化データを生成する。また、ストレージデバイス16から読み出されたJPEG画像データを伸張復号化する。なお、デジタル画像処理回路13には、このJPEGエンジン24以外の他の静止画圧縮方式、あるいは動画圧縮方式のエンコード/デコードエンジンが設けられてもよい。
【0027】
CPU25は、ROM15に格納されたプログラムを実行することにより、このデジタル画像処理回路13、および撮像装置全体を統括的に制御し、また、その制御のための各種演算を実行する。
【0028】
ビデオ出力エンコーダ26は、例えばNTSC(National Television Standards Committee)エンコーダなどとして構成され、解像度変換部23などから出力された画像データを基に、モニタ表示用の画像信号を生成し、図示しないモニタ、あるいはビデオ出力端子26aに出力する。
【0029】
SDRAMコントローラ27は、SDRAM14に対するインタフェースブロックであり、アドレスデコーダなどを備えて、CPU25からの制御信号に従って、SDRAM14におけるデータの書き込み動作および読み出し動作を制御する。
【0030】
SDRAM14は、デジタル画像処理回路13におけるデータ処理のためのワークエリアとして用意された揮発性のメモリである。このSDRAM14の内部領域は、撮像素子11からキャプチャされたデータ、すなわち、RAW圧縮部31で圧縮されたRAWデータを一時的に格納するためのキャプチャデータエリア14a、JPEGエンジン24により符号化された画像データや、その符号化・復号化処理で利用されるデータなどを一時的に格納するためのJPEG符号エリア14b、CPU25の処理で利用されるデータを一時的に格納するためのCPUワークエリア14cなどとして利用される。
【0031】
ROM15は、CPU25が実行するプログラムや各種データを保持する。このROM15としては、例えば、EEPROM(Electronically Erasable and Programmable ROM)、フラッシュメモリなどの不揮発性メモリが用いられてもよい。
【0032】
ストレージデバイス16は、符号化された画像データのファイルを記録するためのデバイスであり、例えば、フラッシュメモリ、光ディスク、磁気テープなどの記録媒体、およびそれらの記録/再生ドライブなどからなる。
【0033】
このような撮像装置において、撮像素子11による撮像信号は、順次AFE回路12に供給され、CDS処理やAGC処理が施された後、デジタル信号に変換されて、デジタル画像処理回路13のカメラ信号前処理部21に供給される。カメラ信号前処理部21では、入力された画像信号に対して、欠陥画素補正やシェーディング補正などを施したRAWデータが生成され、このRAWデータは、RAW圧縮部31により圧縮された後、SDRAM14に一旦書き込まれる。
【0034】
このRAWデータは、SDRAM14から読み出されると、RAW伸張部32により伸張された後、カメラ信号処理部22により各種画質補正処理が施される。処理後の画像データは、例えばSDRAM14に一旦格納された後、解像度変換部23により、表示に適した解像度のデータに変換され、さらに例えばSDRAM14に格納された後、ビデオ出力エンコーダ26に供給される。これにより、カメラスルー画像がモニタに表示される。
【0035】
また、図示しない入力部などを通じて画像の記録が要求されると、解像度変換部23は、カメラ信号処理部22で処理された画像データを、必要に応じて記録用に設定された解像度のデータに変換して、例えばSDRAM14に一旦格納し、JPEGエンジン24は、この画像データを圧縮符号化して符号化データを生成する。符号化データは、例えばSDRAM14に一旦記録された後、ストレージデバイス16に記録される。
【0036】
また、ストレージデバイス16に記録された画像データ(符号化データ)は、JPEGエンジン24で伸張復号化され、解像度変換部23で解像度変換された後、ビデオ出力エンコーダ26に出力されることで、モニタに表示させることができる。
【0037】
このようなデジタル画像処理回路13では、カメラ信号前処理部21から内部バス28に対する画像データの入力位置に、RAWデータを圧縮するRAW圧縮部31を設けたことにより、内部バス28を通じてSDRAM14に伝送されるRAWデータのデータ量を低減することができる。また、内部バス28からカメラ信号処理部22に対する画像データの入力位置に、RAWデータを伸張するRAW伸張部32を設けたことにより、同様に、SDRAM14からカメラ信号処理部22に伝送されるRAWデータのデータ量を低減することができる。
【0038】
これにより、撮像動作中の内部バス28の伝送負荷を軽減し、SDRAM14における書き込み/読み出し処理に要する時間を短縮することが可能となる。特に、圧縮/伸張の処理をできるだけ簡単にすることで、処理時間の短縮効果を上げることができる。また、バス上の伝送周波数を低減して、消費電力を抑制することもできる。
【0039】
また、SDRAM14の容量も小さくすることができる。あるいは、SDRAM14の領域を他の処理に利用する、複数フレーム分のRAWデータを格納して、連写できる枚数を増やす、もしくは連写速度を向上させるなど、高画質化・高機能化に寄与することもできる。従って、撮像やデータ記録に必要な時間が短くされた、高性能かつ小型、低コストの撮像装置を実現できる。
【0040】
ところで、RAW圧縮部31によるRAWデータの圧縮処理では、可逆圧縮手法を用いることで、RAWデータの品質を完全に保持できるが、非可逆圧縮であっても、圧縮歪みの発生量が、輝度/色差信号に変換された時点で肉眼では感知できない程度となるならば、画質としては許容できる。一般に、輝度/色差信号に変換された時点のPSNR(Peak Signal to Noise Ratio)が50dB〜40dB程度であれば、圧縮歪みは許容されるレベルになる。
【0041】
さらに、RAWデータを圧縮する場合に、固定長で符号化できれば、SDRAM14に対して読み書きするRAWデータの帯域を一定に保つことができ、内部バス28における伝送負荷を安定的に低減できる。また、カメラ信号処理部22におけるRAWデータの取り扱い(例えばSDRAM14からの読み出し制御処理)や、内部バス28を通じたRAWデータの伝送制御処理を、単純化することもできる。
【0042】
例えば、可変長で符号化した場合には、圧縮されたRAWデータをSDRAM14から読み出す際に、バースト状にアクセスしなければならない場合が多い。また、カメラ信号処理部22の機能として、1Hの数分の一程度のディレイラインしか持たずに、全画面を部分的に(例えば、縦方向の短冊状に)処理していくような機能があった場合に、固定長で符号化することにより、任意の位置のRAWデータのSDRAM14上のアドレスを簡単に計算し、読み出すことが可能になる。デジタル画像処理回路13内のDMA(Direct Memory Access)コントローラによりアクセスすることも可能となる。
【0043】
そこで、本実施の形態では、以下で説明するように、固定長の符号化が可能で、かつ、画像品質を良好に保つことができ、しかも比較的簡単な処理で実現できる非可逆圧縮/伸張手法を採用する。特に、この手法では、一定数の隣接画素からなるブロックを、その画像の状態に応じてさらに分割して、その分割領域ごとに圧縮処理できるようにすることで、圧縮による画質劣化をより抑制できるようにする。
【0044】
次に、本実施の形態で採用する画像圧縮手法の概要について説明する。まず、図2は、圧縮単位となるブロックについて説明するための図である。
本実施の形態で採用する画像圧縮手法では、隣接する一定数の同色成分画素からなるブロックを単位として、一定の圧縮率となるようにデータ圧縮を行う。このブロックを構成する画素は、水平方向あるいは垂直方向にのみ隣接する画素でもよいが、複数列あるいは複数行に亘って隣接している画素でもよい。以下の例では、図2に示すように、6画素×2ラインの合計12画素を1ブロックとして圧縮を行う。なお、図2では例として、ベイヤ配列の撮像素子11が用いられた場合に、r成分の画素が1つのブロックとして整列された状態についてのみ示しているが、当然ながら、gr成分、gb成分、b成分についても、同様に6画素×2ラインのブロックとして整列される。
【0045】
図3は、ブロックタイプの決定手法について説明するための図である。
本実施の形態では、上記のように隣接する12画素からなるブロックを、そのブロックにおけるデータの状態に応じて、図3に示す4つの分割パターンのいずれかにより分割して、圧縮データを生成できるようになっている。
【0046】
ブロックタイプ1では、ブロックを分割せずに1つの領域A1とする。ブロックタイプ2では、ブロックを、2画素×2ラインの4画素からなる領域A2と、残りの4画素×2ラインの8画素からなる領域B2とに分割する。ブロックタイプ3では、ブロックを、4画素×2ラインの8画素からなる領域A3と、残りの2画素×2ラインの4画素からなる領域B3とに分割する。ブロックタイプ4では、ブロックを、ともに3画素×2ラインの6画素からなる領域A4および領域B4に分割する。
【0047】
本実施の形態のデータ圧縮手法により生成されるブロック当たりの圧縮データは、基本的に、特定領域内の最小値(DCオフセット成分)と、その領域内のデータのダイナミックレンジ(最大値と最小値との差分値)に対応する値と、ダイナミックレンジで正規化した各画素の量子化データとから構成される。そして、これらの圧縮データはブロックごとに同じデータ量とされる。このため、画素データの量子化語長を同一とした場合、領域内のダイナミックレンジが広いほど量子化の精度が低くなる。
【0048】
そこで、本実施の形態では、ブロック内のダイナミックレンジを、上記の4つのブロックタイプにおける分割領域ごとに計算し、その計算結果を基に、各分割領域におけるダイナミックレンジができるだけ狭くなるように、上記のブロックタイプの中から適切なものを選択する。例えば、ブロック内において、左側から2画素目と3画素目との間の領域に明暗のエッジが存在する場合には、ブロックタイプ2を選択して、領域A2と領域B2とで個別にダイナミックレンジを計算し、それらの計算結果に応じて画素データを量子化する。これにより、領域A2と領域B2のそれぞれにおけるダイナミックレンジが狭くなり、各領域での量子化の精度が向上する。また、量子化語長を小さくすることも可能になる。逆に、ブロック全体における画素のレベル差が小さい場合には、ブロックタイプ1を選択して、領域A1(すなわちブロック全体)のダイナミックレンジに応じて画素データを量子化しても、量子化の精度劣化を抑制できる。
【0049】
なお、このデータ圧縮手法では、図3に示すように、ブロックタイプ1が選択された場合、領域A1のダイナミックレンジDR1aおよび最小値が圧縮データに含められる。また、ブロックタイプ2が選択された場合、領域A2のダイナミックレンジDR2aおよび最小値と、領域B2のダイナミックレンジDR2bおよび最小値とが、圧縮データに含められる。同様に、ブロックタイプ3が選択された場合、領域A3のダイナミックレンジDR3aおよび最小値と、領域B3のダイナミックレンジDR3bおよび最小値とが、圧縮データに含められる。また、ブロックタイプ4が選択された場合、領域A4のダイナミックレンジDR4aおよび最小値と、領域B4のダイナミックレンジDR4bおよび最小値とが、圧縮データに含められる。
【0050】
以下、このようなブロックタイプを用いた圧縮・伸張処理について、より具体的に説明する。なお、ここでは例として、カメラ信号前処理部21から出力されるRAWデータを、1画素当たり14ビットのデータとする。そして、隣接する同色成分の12画素を1ブロックとして、ブロック単位で一定の圧縮率となるようにデータ圧縮を行う。具体的には、1ブロック当たり168ビットのRAWデータを、64ビットのデータに圧縮する。また、図3に示したように、画素データの量子化語長を、ブロックタイプ1のみ4ビットとし、その他のブロックタイプでは各分割領域について3ビットとする。
【0051】
図4は、RAW圧縮部の内部構成を示すブロック図である。
図4に示すように、RAW圧縮部31は、折れ線圧縮部101、ディレイライン102、ブロック化部103、最大/最小検出部104、ブロックタイプ決定部105、セレクタ106、バッファ107、減算器108、量子化部109、シフト量計算部110、量子化データバッファ111、およびパッキング部112を備えている。
【0052】
折れ線圧縮部101は、入力された14ビットのRAWデータを、折れ線を用いた近似により10ビットのデータに非線形で圧縮する。この折れ線圧縮部101は、この後の圧縮手順の前に、できるだけ階調を下げておくことで、全体的な圧縮効率を向上させることを目的として設けられている。このため、目的とする圧縮率によっては、省略されてもよい。なお、この場合には、後の図8で説明するRAW伸張部32の出力段に設けられる逆折れ線変換部についても、省略する必要がある。
【0053】
ここで、図5は、折れ線圧縮部で用いられる折れ線の例を示す図である。
図5では、4つの点で分割された5通りの傾きを持つ直線により、入力データの階調を変換する例を示している。この例では、人間の視覚特性に合わせて、入力データが小さいほど、すなわち暗いほど(または色がうすいほど)、高い階調を割り当てるようにしている。このような折れ線は、例えば色成分ごとに用意し、入力画素の色成分ごとに切り替えて利用してもよい。
【0054】
折れ線圧縮部101では、例えば、このような折れ線を用いて、入力データの階調を変換した後、変換後のデータを16で除算(すなわち4ビット分下位にシフト)して、10ビットデータに圧縮する。このとき、捨てられる下位ビットは、例えば四捨五入する。あるいは、折れ線圧縮部101では、入力データと上記演算に基づく圧縮後の出力データとを対応付けて記憶したROMテーブルを用意し、このROMテーブルに従って入出力データの変換が行われてもよい。
【0055】
以下、図4に戻って説明する。
ディレイライン102は、折れ線圧縮部101から出力されたデータを1H分だけ遅延させる。ブロック化部103は、折れ線圧縮部101から出力されたデータと、ディレイライン102により遅延された1つ前のラインのデータとから、上述した6画素×2ラインの12画素からなるブロックごとに分離されたデータを出力する。なお、ここでは例として、RAW圧縮部31に入力されるRAWデータは、色成分ごとにすでに分離されたデータであるものとしている。
【0056】
最大/最小検出部104は、ブロックごとに分離された同色画素のデータの入力を受けて、上述したすべてのブロックタイプの分割領域ごとに、最大値および最小値を検出する。各分割領域の最大値および最小値はブロックタイプ決定部105に出力され、それらのうち最小値はセレクタ106にも出力される。
【0057】
ブロックタイプ決定部105は、最大/最小検出部104からの分割領域ごとの最大値および最小値を基に、分割領域のダイナミックレンジが最も小さくなるように、適切なブロックタイプを決定する。そして、決定したブロックタイプを示す識別コードをパッキング部112に対して出力するとともに、決定されたブロックタイプに対応する分割領域のダイナミックレンジを、シフト量計算部110に対して出力する。さらに、決定されたブロックタイプに応じたセレクト信号を、セレクタ106に対して出力する。
【0058】
セレクタ106は、最大/最小検出部104から出力される分割領域ごとの最小値のうち、ブロックタイプ決定部105からのセレクト信号に応じた値を選択して、パッキング部112および減算器108に出力する。これにより、セレクタ106からは、ブロックタイプ決定部105により決定されたブロックタイプに対応する分割領域の最小値が出力される。
【0059】
バッファ107は、ブロック化部103からのデータを、最大/最小検出部104およびセレクタ106における処理時間に応じた時間だけ遅延させて、減算器108に対するデータ出力タイミングを、セレクタ106から減算器108へのデータ出力タイミングに合わせる。
【0060】
減算器108は、ブロック化部103からバッファ107を介して入力された1ブロック分の画素データから、セレクタ106からの最小値を減算する。ここで、セレクタ106からの最小値は、ブロックタイプ決定部105により決定されたブロックタイプに含まれる分割領域別に出力され、減算器108では、バッファ107からの画素データから、その画素が所属している分割領域に対応する最小値が減算される。この結果、減算器108からは、減算対象とされた画素のデータから、その画素が所属している分割領域におけるDCオフセット成分が除去されて、量子化部109での量子化語長をより小さく設定できるようになる。
【0061】
ここでは、ブロック化部103から減算器108に対して、2ラインの画素データが並列に入力されて、減算が行われるものとする。この場合、例えば、ブロックタイプ決定部105によりブロックタイプ2が決定されると、まず、バッファ107からブロック内の1番目および2番目までの画素のデータが減算器108に入力される期間において、セレクタ106からは領域A2の最小値が減算器108に入力されて、減算が行われる。次に、ブロック内の3番目から6番目までの画素のデータが減算器108に入力される期間において、セレクタ106からは領域B2の最小値が減算器108に入力されて、減算が行われる。
【0062】
量子化部109は、減算器108によりDCオフセット成分が除去された画素データを量子化する。この量子化部109としては、例えば、整数型の除算器を利用して、減算器108の出力データをセレクタ106からのダイナミックレンジで除算する構成を適用することができる。しかし、ここでは、量子化ステップを2のべき乗として、量子化部109を、シフト量計算部110から指定されるシフト量に応じて入力データを下位側にシフトさせる右シフタとして実現し、これによって、量子化データのビット数を低減し、また回路規模を抑制する。
【0063】
なお、本実施の形態では、ブロック当たりの圧縮データを64ビットの固定長とするために、量子化部109での量子化語長を、ブロックタイプ1の場合は4ビット、ブロックタイプ2〜4の場合は3ビットとしている。ただし、量子化部109では常に4ビットデータを出力させ、パッキング部112において量子化データを圧縮データにパッキングする際に、不要なビットのデータを破棄させるようにすればよい。
【0064】
シフト量計算部110は、ブロックタイプ決定部105から、分割領域ごとのダイナミックレンジを受け付け、それらのダイナミックレンジの値を量子化部109でのシフト量に換算する。ここでは、ブロックタイプ決定部105により決定されるブロックタイプに応じて、2種類の動作が行われる。
【0065】
まず、ブロックタイプ1の場合、量子化部109では10ビットのデータが4ビットのデータに量子化される。この場合、ブロックタイプ決定部105からのダイナミックレンジの値をDRとすると、シフト量計算部110は、以下の条件によりシフト量を算出する。
【0066】
[0≦DR≦15のとき]入力データをそのまま出力する。
[16≦DR≦31のとき]入力データを1ビット分下位にシフトする。
[32≦DR≦63のとき]入力データを2ビット分下位にシフトする。
【0067】
[64≦DR≦127のとき]入力データを3ビット分下位にシフトする。
[128≦DR≦255のとき]入力データを4ビット分下位にシフトする。
[256≦DR≦511のとき]入力データを5ビット分下位にシフトする。
【0068】
[512≦DR≦1023のとき]入力データを6ビット分下位にシフトする。
一方、ブロックタイプ2〜4の場合、量子化部109では10ビットのデータが3ビットのデータに量子化され、シフト量計算部110は、以下の条件によりシフト量を算出する。
【0069】
[0≦DR≦7のとき]入力データをそのまま出力する。
[8≦DR≦15のとき]入力データを1ビット分下位にシフトする。
[16≦DR≦31のとき]入力データを2ビット分下位にシフトする。
【0070】
[32≦DR≦63のとき]入力データを3ビット分下位にシフトする。
[64≦DR≦127のとき]入力データを4ビット分下位にシフトする。
[128≦DR≦255のとき]入力データを5ビット分下位にシフトする。
【0071】
[256≦DR≦511のとき]入力データを6ビット分下位にシフトする。
[512≦DR≦1023のとき]入力データを7ビット分下位にシフトする。
以上の条件を基に計算されたシフト量は、対応する分割領域におけるダイナミックレンジを示唆するものとなる。従って、このようなシフト量と、そのシフト量に応じて生成された量子化データとを圧縮データに格納しておくことで、伸張部側では、シフト量を基に量子化データを伸張できるようになる。
【0072】
量子化データバッファ111は、量子化部109から出力される1ブロック分(12画素分)の量子化データを一時的に保持する。
パッキング部112は、量子化データバッファ111からの各画素の量子化データと、セレクタ106からの分割領域ごとの最小値と、シフト量計算部110からの分割領域ごとのシフト量と、ブロックタイプ決定部105からのブロックタイプを識別する識別コードとを利用して、1ブロック当たり64ビットの圧縮データにパッキングする。
【0073】
図6は、パッキングにより生成される1ブロック分の圧縮データの構成を示す図である。
図6に示すように、RAW圧縮部31では、ブロックタイプごとに異なる4種類の圧縮データが生成される。これらの圧縮データはすべて、ブロック当たり64ビットに圧縮され、また、先頭にブロックタイプを識別するための2ビットの識別コードが配置されていることも共通している。
【0074】
ブロックタイプ1の場合、識別コードに続いて、領域A1に対応する最小値(10ビット)、量子化処理時のシフト量(3ビット)、領域A1内の12画素の量子化データ(各4ビット)が配置され、最後に、合計64ビットとするための1ビットの空き領域が設けられる。
【0075】
ブロックタイプ2〜4の場合には、識別コードに続いて、まず、領域A(領域A2〜A4のいずれか)に対応する最小値(10ビット)およびシフト量(3ビット)が配置され、次に、領域B(領域B2〜B4のいずれか)に対応する最小値(10ビット)およびシフト量(3ビット)が配置される。その後、領域A内の各画素の量子化データ(3ビット)が配置され、さらに領域B内の各画素の量子化データ(3ビット)が配置される。すなわち、ブロックタイプ2〜4では、最小値やシフト量の配置領域は共通しているが、分割領域の画素数が異なるので、伸張部側では、識別コードに応じて、分割領域ごとの量子化データの格納位置を判断する必要がある。
【0076】
なお、画素データの量子化にビットシフタを用いない場合には、例えば、上記のシフト量の代わりに、量子化の際に用いたダイナミックレンジの数値自体を、圧縮データにパッキングしてもよい。
【0077】
また、上記の例では、分割領域ごとの最小値を画素データから差し引いた値を量子化しているが、この他の例として、分割領域における最小値と最大値とを除く画素データから、それぞれ最小値を減算した値のみを量子化してもよい。この場合、圧縮データには、分割領域において最小値および最大値を採る画素の量子化データが必要なくなる代わりに、分割領域ごとの最大値と、最小値および最大値の分割領域内における位置情報とを含める。この例と図6の例のどちらを選択するかは、位置情報のビット数を決めるブロック内あるいは分割領域内の画素数や、画素データのビット数、量子化語長、ブロック当たりの圧縮データのデータ量などに応じて、適切に決められればよい。
【0078】
次に、図7は、ブロックタイプ決定部の内部構成を示す図である。
ブロックタイプ決定部105は、ダイナミックレンジ演算部131、ダイナミックレンジ加算部132、ダイナミックレンジ比較部133、セレクタ134、アドレスカウンタ135、およびセレクト信号生成部136を備えている。
【0079】
ダイナミックレンジ演算部131は、すべてのブロックタイプの分割領域(領域A1〜A4,B2〜B4)ごとに、ダイナミックレンジDR1a,DR2a,DR2b,DR3a,DR3b,DR4a,DR4bを算出する。ここでは、最大/最小検出部104から分割領域ごとに出力される最大値から最小値を減算することで、各分割領域におけるダイナミックレンジを演算する。これらの演算結果は、ダイナミックレンジ加算部132およびセレクタ134に出力される。
【0080】
ダイナミックレンジ加算部132は、ダイナミックレンジ演算部131からの分割領域ごとのダイナミックレンジを基に、ブロックタイプごとのダイナミックレンジ加算値を算出する。ここでは、ブロックタイプ1〜4のそれぞれのダイナミックレンジ加算値DR1〜DR4を、次の式(1)〜(4)により演算する。
DR1=DR1a ……(1)
DR2=DR2a+DR2b ……(2)
DR3=DR3a+DR3b ……(3)
DR4=DR4a+DR4b ……(4)
ダイナミックレンジ比較部133は、ダイナミックレンジ加算部132からのダイナミックレンジ加算値を比較して、最も小さい値に対応するブロックタイプを決定し、そのブロックタイプを示す2ビットの識別コードを、セレクト信号生成部136、シフト量計算部110、およびパッキング部112に出力する。
【0081】
セレクタ134は、セレクト信号生成部136からのセレクト信号に従って、ダイナミックレンジ演算部131から出力されたダイナミックレンジのうち、1つのブロックタイプに対応するものを出力する。
【0082】
アドレスカウンタ135は、最大/最小検出部104における、1ブロックの最大値および最小値の検出完了タイミングをトリガとして、最大/最小検出部104からのデータ出力タイミングに同期してアドレスをカウントする。
【0083】
セレクト信号生成部136は、ダイナミックレンジ比較部133からの識別コードに応じて、アドレスカウンタ135による所定のカウント値の出力タイミングにおいて、セレクタ134および106に対してセレクト信号を出力する。このセレクト信号により、セレクタ134および106において、識別コードで指定されるブロックタイプに対応する値が、あらかじめ決められた順番で出力されるように制御する。
【0084】
例えば、識別コードがブロックタイプ1を示す場合、セレクタ134に領域A1のダイナミックレンジDR1aを出力させ、セレクタ106に領域A1における最小値を出力させる。また、識別コードがブロックタイプ2を示す場合、まず、セレクタ134に領域A2のダイナミックレンジDR2aを出力させ、セレクタ106に領域A2における最小値を出力させる。次に、セレクタ134に領域B2のダイナミックレンジDR2bを出力させ、セレクタ106に領域B2における最小値を出力させる。
【0085】
同様に、識別コードがブロックタイプ3を示す場合、まず、セレクタ134および106に、領域A3のダイナミックレンジDR3aおよび最小値をそれぞれ出力させた後、次に、領域B3のダイナミックレンジDR3bおよび最小値をそれぞれ出力させる。また、識別コードがブロックタイプ4を示す場合、まず、セレクタ134および106に、領域A4のダイナミックレンジDR4aおよび最小値をそれぞれ出力させた後、次に、領域B4のダイナミックレンジDR4bおよび最小値をそれぞれ出力させる。
【0086】
以上のブロックタイプ決定部105では、式(1)〜(4)に従い、ダイナミックレンジ加算値が最も小さくなるブロックタイプが選択されることで、ブロック内の画像の状態に応じて、画質劣化が少なくなるように量子化対象領域が適切化される。ただし、式(2)〜(4)では、2つの分割領域におけるダイナミックレンジが加算されているため、これらの加算値と正確に比較するためには、式(1)を、DR1=DR1a×2としてもよい(あるいは、式(2)〜(4)の加算値にそれぞれ1/2をさらに乗じてもよい)。
【0087】
しかし、ブロックタイプ1では、最小値やシフト量を1つの領域分だけ圧縮データに格納すればよく、このために量子化語長を他のブロックタイプより大きくする(4ビット)ことができる。従って、ブロックタイプ1では、他のブロックタイプより許容できるダイナミックレンジの範囲が大きいと言えることから、この例では式(1)のようにDR1=DR1aとして、相対的にブロックタイプ1が選択されやすくなるようにしている。このような重み付けにより、例えばノイズなどに反応して不適切な分割領域を持つブロックタイプが選択されるといった誤動作の発生を防止できるというメリットもある。
【0088】
なお、ユーザによる入力操作により、ブロックタイプ1に対応するダイナミックレンジ加算値の演算式における乗数を、1〜2の範囲で任意に設定できるようにしてもよい。
次に、図8は、RAW伸張部の内部構成を示すブロック図である。
【0089】
図8に示すように、RAW伸張部32は、データラッチ部201、セレクタ202〜204、アドレスカウンタ205、逆量子化部206、加算器207、および逆折れ線変換部208を備えている。
【0090】
データラッチ部201は、SDRAM14から読み出された64ビットの圧縮データをラッチする。このデータラッチ部201は、先頭2ビットの識別コードからブロックタイプを判定した後、その判定結果に応じて、分割領域ごとの最小値およびシフト量、各分割領域内の画素の量子化データの格納位置を判別して、ラッチしていく。
【0091】
セレクタ202は、アドレスカウンタ205からのセレクト信号に応じて、データラッチ部201でラッチされた量子化データを画素ごとにシーケンシャルに選択して、逆量子化部206に出力する。
【0092】
セレクタ203は、アドレスカウンタ205からのセレクト信号に応じて、データラッチ部201でラッチされた各分割領域のシフト量のうちのいずれかを選択して、逆量子化部206に対して出力する。
【0093】
セレクタ204は、アドレスカウンタ205からのセレクト信号に応じて、データラッチ部201でラッチされた各分割領域の最小値のうちのいずれかを選択して、加算器207に対して出力する。
【0094】
アドレスカウンタ205は、データラッチ部201における1ブロック分のデータラッチが完了するごとにアドレスのカウントを行い、あらかじめ決められたカウント値に達したときに、セレクタ202と、セレクタ203および204とに対してそれぞれ個別のセレクト信号を出力する。
【0095】
このアドレスカウンタ205は、データラッチ部201からの識別コードに基づくブロックタイプに応じて、セレクト信号を出力する。識別コードがブロックタイプ1を示す場合、アドレスカウンタ205は、セレクタ203および204に領域A1のシフト量および最小値をそれぞれ出力させ、この状態で、セレクタ202に12画素分の量子化データを順次出力させる。
【0096】
識別コードがブロックタイプ2〜4を示す場合、アドレスカウンタ205は、まず、セレクタ203および204に領域A(領域A2〜A4のいずれか)のシフト量および最小値をそれぞれ出力させ、この状態で、セレクタ202に領域A内の画素に対応する量子化データを順次出力させる。次に、セレクタ203および204に領域B(領域B2〜B4のいずれか)のシフト量および最小値をそれぞれ出力させ、この状態で、セレクタ202に領域B内の画素に対応する量子化データを順次出力させる。従って、ブロックタイプ2〜4の場合には、セレクタ203および204の選択切り替えタイミングも、セレクタ202でのデータ選択も、ブロックタイプによりそれぞれ異なることになる。
【0097】
逆量子化部206は、セレクタ202からの量子化データを、セレクタ203からのシフト量を基に逆量子化する。ここでは、逆量子化部206は、セレクタ203からのシフト量分だけ量子化データを上位側にシフトする左シフタとして構成される。従って、この逆量子化部206により、画素ごとのダイナミックレンジの値が再現される。
【0098】
なお、量子化処理にビットシフタが用いられず、圧縮データにシフト量の代わりにダイナミックレンジの値がパッキングされている場合には、この逆量子化部206として、例えば、整数型の乗算器により量子化データとダイナミックレンジとを乗算する構成を適用することもできる。
【0099】
加算器207は、逆量子化部206からのダイナミックレンジの値に、セレクタ204からの最小値を加算する。ここでは、所定画素のダイナミックレンジの値に、その画素が所属する分割領域の最小値(DCオフセット成分)が加算されることで、10ビットの画素データが再現される。
【0100】
逆折れ線変換部208は、加算器207からのデータを、RAW圧縮部31の折れ線圧縮部101と逆の入出力特性により、10ビットから14ビットのデータに伸張する。
ここで、図9は、逆折れ線変換部で用いられる折れ線の例を示す図である。
【0101】
この図9の折れ線は、図5で示した折れ線圧縮部101における折れ線と、逆の特性により階調を変換するようになっている。逆折れ線変換部208は、まず、入力データに16を乗算(すなわち4ビット分上位にシフト)して14ビット化した後、図9の折れ線を用いて階調変換し、14ビットの画素のデータを伸張する。
【0102】
なお、この逆折れ線変換部208では、入力データと伸張後の出力データとを対応付けて記憶したROMテーブルを用意し、このROMテーブルに従って入出力データの変換が行われてもよい。また、圧縮時に、折れ線圧縮部101による圧縮が適用されなかった場合には、伸張時には、この逆折れ線変換部208でのデータ変換もバイパスされる。
【0103】
以上の構成のRAW圧縮部31およびRAW伸張部32によれば、ブロック内の領域を異なるパターンで分割した複数のブロックタイプを用意し、ブロックタイプごとにそれぞれの分割領域におけるダイナミックレンジ加算値を比較して、その値が最も小さいブロックタイプを選択して分割領域ごとに量子化処理を行うことにより、画像の状態に応じて量子化ノイズができるだけ抑制されるように、量子化処理範囲(すなわち、同じダイナミックレンジの値を基に量子化する範囲)が適切に選択される。従って、可逆圧縮でありながらも、画質劣化の少ない高圧縮率の圧縮・伸張処理が実現できる。特に、ブロック内に明暗の差が大きなエッジ部分が存在する場合には、そのエッジに沿って量子化処理範囲が分割されるようになり、ブロック全体を量子化処理範囲とした場合より量子化による画質劣化を低減することができる。
【0104】
例えば、上記の実施の形態で示した各種条件の下では、12画素分のRAWデータを、ブロックタイプに応じて量子化語長4ビットまたは3ビットで量子化することで、圧縮率を約38%とすることができ、なおかつ、通常の自然画であれば、圧縮/伸張後に輝度/色差信号(各8ビット)に変換した時点でのPSNRを、44.6dB程度に維持できる。従って、圧縮歪みが肉眼では検知できない程度に抑えられ、画質劣化をほぼなくすことができる。
【0105】
また、上記のデータ圧縮手法により、RAWデータを固定長の符号化データとして圧縮することができるので、内部バス28を通じてSDRAM14に読み書きされるデータの帯域を一定のレベルに低減することができ、SDRAM14に対するアドレス管理を簡易にすることもできる。従って、回路規模や製造コストを抑制しながらも、高速な動作が可能な撮像装置を実現できるようになる。
【0106】
さらに、圧縮する1ブロックの画素数と各分割領域の量子化語長との組み合わせで圧縮率が決まるので、必要とする画質(すなわち、許容できる圧縮ひずみの量)や、伝送されるバスでの伝送帯域の割り当て、SDRAM14の読み書きの性能などにあわせて、柔軟に対応することができる。従って、仕様の異なる撮像装置の開発コストを抑制できるようになる。
【0107】
なお、上記の実施の形態では、2ラインに亘る隣接画素によってブロックを構成したが、これに限ったことではなく、例えば、1ラインのみ、あるいは3ライン以上に亘る隣接画素によってブロックを構成してもよい。また、ブロック内の画素を垂直な分割線を境界として分割領域を定義したが、水平な分割線、あるいは斜め方向に沿った分割線により分割領域を定義してもよい。
【0108】
ただし、分割線を垂直にすることで、ブロックを構成するライン数分の画素データを並列に受けたときに、これらの画素データに対してライン先頭方向から順次処理により圧縮処理を施すことができるようになり、回路構成や処理制御を単純化し、処理効率を高めることができる。このような構成としては、例えば、複数ライン分の同色成分の画素信号を同時に出力可能なマルチチャネル仕様の撮像素子を利用した場合が考えられる。
【0109】
また、上記の例のように、矩形領域ごとにブロック化する場合には、特に、RAW圧縮部31とカメラ信号前処理部21とを一体化した構成とすることもできる。例えば、カメラ信号前処理部21が備える欠陥画素補正機能は、対象の画素が欠陥である場合に、その画素のデータを周囲の画素のデータを用いて補間する。また、カメラ信号前処理部21には、周囲画素からの推測値と比較して著しくレベルの異なる画素の信号を補正する孤立点除去処理機能を備える場合もある。このような欠陥画素補正機能や孤立点除去処理機能は、周囲画素のデータを利用するためにラインメモリを用いるため、RAW圧縮部31において複数ライン分の画素を単位として圧縮処理を行う機能と親和性が高い。従って、ラインメモリを共通化するなどして、RAW圧縮部31の機能またはその一部をカメラ信号前処理部21内に形成することができる。
【0110】
また、上記の実施の形態では、2つの分割領域を持つブロックタイプに対する量子化処理では、各分割領域についての量子化語長を同じにしていたが、例えば、各分割領域の画素数が異なる場合には、より多くの画素数を有する分割領域の量子化語長を、他方の分割領域よりも大きくしてもよい。
【0111】
また、上記構成のRAW圧縮部31およびRAW伸張部32では、量子化語長の設定を変更することで、可変長の符号化を行うようにすることもできる。例えば、圧縮時において、ダイナミックレンジを基に適応的に量子化語長を変化させることで、可変長の符号化を行い、圧縮効率をさらに高めることができる。さらに、同様の手法で可逆圧縮として、画質劣化を完全に防止することもできる。ただし、この場合には折れ線による圧縮/伸張は行わない。
【0112】
また、CPU25により、RAW圧縮部31およびRAW伸張部32の設定を適応的に制御してもよい。例えば、量子化語長や、1ブロックの画素数およびそのブロックタイプを変化させる、折れ線圧縮/伸張機能をオン/オフするなどの制御により、圧縮率を変化させることができる。また、RAW圧縮部31およびRAW伸張部32の機能をオン/オフできるようにしてもよい。例えば、連写時のみ圧縮/伸張機能をオンにする、RAWデータをストレージデバイス16にそのまま記録するモードでは圧縮/伸張機能をオフにするなどの制御を適用できる。
【0113】
また、RAW圧縮部31およびRAW伸張部32の機能を、上記の位置の代わりに、例えばSDRAMコントローラ27と内部バス28との間に設けた場合でも、SDRAM14に対するRAWデータの書き込み/読み出しに要する時間を短縮し、SDRAM14の容量を小さくする効果を得ることができる。
【0114】
〔第2の実施の形態〕
図10は、本発明の第2の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。なお、図10では、図1に対応する機能については同じ符号を付して示し、その説明を省略する。
【0115】
図10に示す撮像装置では、撮像素子11と、サンプルホールド機能やA/D変換機能を含むAFE回路12とを、1つのセンサLSI(Large Scale Integration)301上に形成している。そして、このセンサLSI301上に、RAW圧縮部31も一体に形成している。なお、この図10のカメラ信号処理部22aは、図1のカメラ信号処理部22の機能とともにカメラ信号前処理部21の機能も備える。
【0116】
このような構成により、上述したような、SDRAM14に対するRAWデータの書き込み/読み出しの処理負荷を軽減し、デジタル画像処理回路13aの内部バス28におけるRAWデータの伝送帯域を低減する効果の他に、センサLSI301からデジタル画像処理回路13aに対するデータ転送周波数を低減し、消費電力を抑制する効果も得ることができる。また、センサLSI301からデジタル画像処理回路13aに対するバスからの輻射も低減でき、センサLSI301の内部の信号などに与える影響が抑制される。また、輻射防止のためのシート部材などを薄くしたり、あるいは省略することができ、装置を薄型化・小型化する効果も得られる。
【0117】
さらに、この図10の例では、デジタル画像処理回路13a内のCPU25から、センサLSI301内のRAW圧縮部31の機能のオン/オフを制御できるようになっている。この場合、RAW伸張部32のオン/オフは、CPU25から内部バス28を通じて制御すればよい。このような構成により、例えば、連写時のみ圧縮/伸張機能をオンにする、RAWデータをストレージデバイス16に記録するモードでは圧縮/伸張機能をオフにするなど、設定に応じた動作を実現できる。
【0118】
また、オン/オフだけでなく、RAW圧縮部31の設定をCPU25から適宜制御できるようにしてもよい。
〔第3の実施の形態〕
図11は、本発明の第3の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。なお、図11では、図1に対応する機能については同じ符号を付して示し、その説明を省略する。
【0119】
図11に示す撮像装置では、AFE回路12aの内部に、CDSによるサンプルホールド部12bと、A/D変換部12cとともに、RAW圧縮部31も、1つのチップとして一体に形成されている。なお、この図11のカメラ信号処理部(図示せず)も、図10の場合と同様に、図1のカメラ信号処理部22の機能とともにカメラ信号前処理部21の機能も備える。
【0120】
このような構成により、上記の図10の場合と同様に、SDRAM14に対するRAWデータの書き込み/読み出しの処理負荷を軽減し、デジタル画像処理回路13aの内部バス28におけるRAWデータの伝送帯域を低減する効果の他に、AFE回路12aからデジタル画像処理回路13aに対するデータ転送周波数を低減し、消費電力を抑制する効果や、輻射防止効果も得ることができる。
【0121】
なお、本実施の形態でも、図10と同様に、デジタル画像処理回路13a内のCPU(図示せず)から、RAW圧縮部31の機能のオン/オフを制御できるようにしてもよい。また、CPUから、RAW圧縮部31の設定を適用的に制御できるようにしてもよい。
【図面の簡単な説明】
【0122】
【図1】本発明の第1の実施の形態に係る撮像装置の構成を示すブロック図である。
【図2】圧縮単位となるブロックについて説明するための図である。
【図3】ブロックタイプの決定手法について説明するための図である。
【図4】RAW圧縮部の内部構成を示すブロック図である。
【図5】折れ線圧縮部で用いられる折れ線の例を示す図である。
【図6】パッキングにより生成される1ブロック分の圧縮データの構成を示す図である。
【図7】ブロックタイプ決定部の内部構成を示す図である。
【図8】RAW伸張部の内部構成を示すブロック図である。
【図9】逆折れ線変換部で用いられる折れ線の例を示す図である。
【図10】本発明の第2の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。
【図11】本発明の第3の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。
【図12】従来の撮像装置の構成例を示すブロック図である。
【符号の説明】
【0123】
11……撮像素子、12……アナログフロントエンド(AFE)回路、13……デジタル画像処理回路、14……SDRAM、14a……キャプチャデータエリア、14b……JPEG符号エリア、14c……CPUワークエリア、15……ROM、16……ストレージデバイス、21……カメラ信号前処理部、22……カメラ信号処理部、23……解像度変換部、24……JPEGエンジン、25……CPU、26……ビデオ出力エンコーダ、26a……ビデオ出力端子、27……SDRAMコントローラ、28……内部バス、31……RAW圧縮部、32……RAW伸張部
【技術分野】
【0001】
本発明は、固体撮像素子を用いて画像を撮像する撮像装置、撮像回路、および撮像方法に関し、特に、撮像により得られた画像信号を一旦メモリに格納して処理する構成の撮像装置、およびそのような構成に適した撮像回路、撮像方法に関する。
【背景技術】
【0002】
近年、デジタルスチルカメラやデジタルビデオカメラなど、固体撮像素子を用いて撮像し、撮像画像をデジタルデータとして保存することができる撮像装置が広く普及している。このような撮像装置では、撮像素子の多画素化や、装置の高機能化・高性能化が進んでいる。特に、撮像素子の多画素化が進むと撮像信号の処理負荷が増大するが、そのような撮像装置であっても、操作にストレスがないように高速で処理できることが求められている。
【0003】
図12は、従来の撮像装置の構成例を示すブロック図である。
図12に示す従来の撮像装置は、撮像素子81、アナログフロントエンド(AFE)回路82、デジタル画像処理回路83、SDRAM(Synchronous Dynamic Random Access Memory)84、ROM(Read Only Memory)85、およびストレージデバイス86を備えている。また、デジタル画像処理回路83は、カメラ信号前処理部91、カメラ信号処理部92、解像度変換部93、JPEG(Joint Photographic Experts Group)エンジン94、CPU(Central Processing Unit)95、ビデオ出力エンコーダ96、およびSDRAMコントローラ97を備え、これらが内部バス98により相互に接続された構成となっている。
【0004】
このような撮像装置において、撮像素子81による撮像信号は、順次AFE回路82に供給され、CDS(Correlated Double Sampling)処理やAGC(Auto Gain Control)処理が施された後、デジタル信号に変換されて、デジタル画像処理回路83に供給される。カメラ信号前処理部91は、入力された画像信号に対して、欠陥画素補正やシェーディング補正などを施し、RAW(生)データとして、SDRAMコントローラ97を介してSDRAM84に書き込む。
【0005】
カメラ信号処理部92は、そのRAWデータをSDRAMコントローラ97を介してSDRAM84から読み出し、各種検波や画質補正処理(カメラ信号処理)を実行した後、輝度信号(Y)と色差信号(R−Y,B−Y)に変換して出力する。解像度変換部93は、カメラ信号処理部92からの出力画像データに対して、必要に応じて解像度変換処理を施す。
【0006】
ビデオ出力エンコーダ96は、解像度変換部93によって表示に適する解像度に変換された画像データを、モニタ表示用の画像信号に変換し、図示しないモニタあるいはビデオ出力端子96aに対して出力する。これにより、カメラスルー画像を表示させることができる。JPEGエンジン94は、カメラ信号処理部92または解像度変換部93からの画像データを、JPEG方式に従って圧縮符号化し、一旦SDRAM84に格納する。CPU95は、SDRAM84に格納されたJPEG符号化データを、ストレージデバイス86に記録する。
【0007】
なお、CPU95は、この撮像装置全体の処理を、統括的に制御し、ROM85には、CPU95が実行するプログラムや、処理に必要なデータが記録されている。
また、上記の例では、撮像画像をJPEGデータとして記録する構成としているが、この他に、カメラ信号処理などが施されていないRAWデータをそのまま記録媒体に記録する機能を備えた撮像装置も実現されている。例えば、RAWデータをハフマンテーブルを利用した可逆的圧縮手法により圧縮して記録する機能を備え、そのハフマンテーブルを色チャネルごとに最適化するようにしたものがあった(例えば、特許文献1参照)。また、RAWデータを圧縮して記録するRAW圧縮モードに設定した際には、通常圧縮モードで使用するRAWデータの補間処理部をバイパスするようにしたものもあった(例えば、特許文献2参照)。
【0008】
さらに、関連する撮像装置としては、撮像素子から取り込んだ画像データを、可逆的に圧縮してメモリに一旦記憶させた後、その圧縮データを伸張して信号処理を施し、非可逆的に圧縮してメモリに記憶させるようにしたものもあった(例えば、特許文献3参照)。
【特許文献1】特開2004−40300号公報(段落番号〔0019〕〜〔0028〕、図2)
【特許文献2】特開2003−125209号公報(段落番号〔0027〕〜〔0037〕、図1)
【特許文献3】特開平5−191770号公報(段落番号〔0017〕〜〔0020〕、図1)
【発明の開示】
【発明が解決しようとする課題】
【0009】
ところで、上記の図12のように、一般的な撮像装置では、撮像素子から得られたRAWデータを、一旦SDRAMなどの画像メモリに格納した後、そこから読み出してカメラ信号処理などを施す構成となっている。例えば、インタレース読み出し方式の撮像素子を用いた場合など、複数フィールドで1フレームのキャプチャが終了するタイプの装置では、各フィールドのデータをメモリに格納してから、フレームのデータを生成することが必須である。また、カメラ信号処理部のラインメモリの規模を抑制するために、1H(水平同期期間)の長さの数分の一程度のディレイラインのみを用いて、全画面を部分的に(例えば、縦方向に数本の短冊状に)処理していくような処理系を持つ場合にも、少なくともその処理の前に全画面のデータをメモリに格納しておく必要がある。
【0010】
ここで、RAWデータのメモリへの書き込みおよび読み出しの際には、全画面分のデータが内部バス上を流れるため、この伝送に必要なバス帯域は、撮像時の全体のバス帯域の多くを占める。特に、撮像素子の画素数が増加してRAWデータの容量が大きくなるほど、データ転送の負荷が高まり、メモリの書き込み/読み出しに要する時間も長くなる。従って、記録処理に要する時間を短縮しようとすると、伝送周波数を高くするなどしてバス帯域を拡大することが必要となり、装置コストが増大するという問題があった。また、画素数が多いほど、RAWデータを格納するメモリの容量も大きくなるという問題もあった。
【0011】
これに対して、内部バスの伝送時にRAWデータを圧縮して伝送することも考えられているが、この圧縮方式として可変長符号化方式を用いると、伝送に必要なバス帯域を一定にできなくなり、処理が複雑になる、バス帯域の削減効果を常時得られないなどの問題も生じる。
【0012】
また、RAWデータの圧縮手法として、一定数の隣接する画素データからなるブロックを単位として量子化して、固定長の圧縮データを生成する手法が考えられる。しかし、この手法においては、常に一定数の画素を単位として量子化すると、量子化ビット数を低くするほどノイズが増加してしまい、特に明るさの変動が激しいエッジ部分などにおいて、視認可能な程度のノイズが発生する可能性があることが課題となっていた。
【0013】
なお、上記の特許文献1は、RAWデータを可変長符号化方式で圧縮するものであり、また、特許文献1および2の双方とも、内部バスの帯域を削減するためにRAWデータを圧縮するものではない。また、特許文献3では、画像データをメモリに一旦記憶させる際の可逆圧縮手法について、隣接画素間の差分をとってハフマン符号化することが記載されているのみであり、さらに、この手法では固定長符号化方式とすることも困難である。
【0014】
本発明はこのような点に鑑みてなされたものであり、内部メモリにおける画像データの読み書きに要する時間を短縮して、高画質な画像を高速に撮像できるようにした撮像装置、撮像回路、および撮像方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明では上記課題を解決するために、固体撮像素子を用いて画像を撮像する撮像装置において、前記固体撮像素子での撮像により得られた画像データを、隣接する一定数の同色成分画素からなるブロックを単位として圧縮する圧縮部と、前記圧縮部により圧縮された圧縮画像データを一時的に保持するメモリと、前記メモリから読み出した前記圧縮画像データを伸張する伸張部と、前記伸張部により伸張された画像データに対して画質補正処理を施す信号処理部と、を有し、前記圧縮部は、互いに隣接した1つ以上の画素からなる2つの量子化対象領域によって前記ブロック内の画素が分割され、かつ、2つの前記量子化対象領域の境界位置が互いに異なるように、複数のブロックタイプがあらかじめ定義されており、前記ブロックタイプのすべての前記量子化対象領域における画素データのダイナミックレンジを計算するダイナミックレンジ計算部と、前記ダイナミックレンジ計算部による計算結果を基に、前記各ブロックタイプ内の前記量子化対象領域におけるダイナミックレンジを加算した加算値を、前記ブロックタイプごとに計算し、前記加算値が最も小さい前記ブロックタイプを選択するブロックタイプ選択部と、前記ブロックタイプ選択部により選択された前記ブロックタイプにおける前記量子化対象領域ごとに、当該量子化対象領域に含まれる画素データから当該量子化対象領域における画素データの最小値を減算した値を、前記ダイナミックレンジ計算部で算出された対応するダイナミックレンジに応じて量子化する量子化部と、を備えたことを特徴とする撮像装置が提供される。
【0016】
このような撮像装置では、撮像により得られた画像データが、圧縮部により圧縮され、その圧縮画像データが一時的にメモリに格納された後、メモリから読み出された圧縮画像データが伸張部により伸張され、伸張された画像データに対して、信号処理部により画質補正処理が施される。圧縮部では、隣接する一定数の同色成分画素からなるブロックを単位として圧縮画像データが生成され、その量子化の際には、あらかじめ定義された複数のブロックタイプのうち適切なものが選択される。複数のブロックタイプは、互いに隣接した1つ以上の画素からなる2つの量子化対象領域によってブロック内の画素が分割され、かつ、2つの量子化対象領域の境界位置が互いに異なるように、それぞれ定義される。圧縮部では、各ブロックタイプ内の量子化対象領域におけるダイナミックレンジの加算値が比較され、加算値が最も小さいブロックタイプが選択される。そして、選択されたブロックタイプにおける量子化対象領域ごとに、それらの量子化対象領域に含まれる画素データからその量子化対象領域における画素データの最小値を減算した値が、その量子化対象領域に対応するダイナミックレンジに応じて量子化される。
【発明の効果】
【0017】
本発明の撮像装置では、撮像画像データを信号処理部で画質補正処理するまでの手順において、メモリで読み書きされる画像データが圧縮されるので、メモリにおける画像データの読み書きに要する時間が短縮される。また、圧縮により、隣接する一定数の同色成分画素からなるブロックを単位として圧縮画像データが生成され、その圧縮の際には、それぞれ異なる2つの量子化対象領域を持つ複数のブロックタイプが定義されて、各ブロックタイプ内の量子化対象領域におけるダイナミックレンジの加算値が比較され、加算値が最も小さいブロックタイプが選択されて、そのブロックタイプにおける量子化対象領域ごとにデータがダイナミックレンジに応じて量子化されるので、ブロック内での画像状態に応じて、量子化による画質劣化が最小限に抑制されるような最適なブロックタイプが選択されて、量子化処理が実行されるようになる。従って、高画質な撮像画像を高速な処理によって得ることが可能になる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、本発明の第1の実施の形態に係る撮像装置の構成を示すブロック図である。
【0019】
図1に示す撮像装置は、撮像素子11、AFE回路12、デジタル画像処理回路13、SDRAM14、ROM15、およびストレージデバイス16を備えている。また、デジタル画像処理回路13は、カメラ信号前処理部21、カメラ信号処理部22、解像度変換部23、JPEGエンジン24、CPU25、ビデオ出力エンコーダ26、およびSDRAMコントローラ27を備え、これらが内部バス28により相互に接続された構成となっている。さらに、このような従来からの構成に加えて、本実施の形態のデジタル画像処理回路13は、RAW圧縮部31およびRAW伸張部32を備えている。
【0020】
撮像素子11は、例えばCCD(Charge Coupled Devices)、CMOS(Complementary Metal Oxide Semiconductor)型イメージセンサなどの固体撮像素子であり、図示しないレンズブロックを通じて被写体から入射した光を、電気信号に変換する。
【0021】
AFE回路12は、撮像素子11から出力された画像信号に対して、CDS処理によりS/N(Signal/Noise)比を良好に保つようにサンプルホールドを行い、さらにAGC処理により利得を制御し、A/D(Analog/Digital)変換を行ってデジタル画像信号を出力する。
【0022】
デジタル画像処理回路13は、例えば、SoC(System On a Chip)回路などとして形成される。このデジタル画像処理回路13において、カメラ信号前処理部21は、AFE回路12から供給された画像信号に対して、撮像素子11における欠陥画素の信号補正処理、レンズの周辺光量落ちを補正するシェーディング処理などを施し、処理後の信号をRAWデータとして出力する。
【0023】
RAW圧縮部31は、カメラ信号前処理部21からのRAWデータを、後述する圧縮手法により圧縮し、SDRAMコントローラ27を介して、SDRAM14に供給する。
RAW伸張部32は、SDRAM14からSDRAMコントローラ27を介して読み出した、圧縮されたRAWデータを、後述する手法により伸張して、カメラ信号処理部22に出力する。
【0024】
カメラ信号処理部22は、RAW伸張部32からRAWデータにデモザイク処理を施した後、AF(Auto Focus)、AE(Auto Exposure)、ホワイトバランス制御などのための信号検波処理や、ホワイトバランス調整に代表される画質補正処理など、いわゆるカメラ信号処理、またはその処理の一部を実行する。さらに、画質補正後の画像データを、例えば4:2:2などの所定フォーマットの輝度信号(Y)と色差信号(R−Y,B−Y)に変換する。
【0025】
解像度変換部23は、カメラ信号処理部22で処理された画像データ、あるいはJPEGエンジン24で伸張復号化された画像データの入力を受けて、所定の解像度に変換する。
【0026】
JPEGエンジン24は、解像度変換部23で処理された画像データを圧縮符号化し、JPEG方式の符号化データを生成する。また、ストレージデバイス16から読み出されたJPEG画像データを伸張復号化する。なお、デジタル画像処理回路13には、このJPEGエンジン24以外の他の静止画圧縮方式、あるいは動画圧縮方式のエンコード/デコードエンジンが設けられてもよい。
【0027】
CPU25は、ROM15に格納されたプログラムを実行することにより、このデジタル画像処理回路13、および撮像装置全体を統括的に制御し、また、その制御のための各種演算を実行する。
【0028】
ビデオ出力エンコーダ26は、例えばNTSC(National Television Standards Committee)エンコーダなどとして構成され、解像度変換部23などから出力された画像データを基に、モニタ表示用の画像信号を生成し、図示しないモニタ、あるいはビデオ出力端子26aに出力する。
【0029】
SDRAMコントローラ27は、SDRAM14に対するインタフェースブロックであり、アドレスデコーダなどを備えて、CPU25からの制御信号に従って、SDRAM14におけるデータの書き込み動作および読み出し動作を制御する。
【0030】
SDRAM14は、デジタル画像処理回路13におけるデータ処理のためのワークエリアとして用意された揮発性のメモリである。このSDRAM14の内部領域は、撮像素子11からキャプチャされたデータ、すなわち、RAW圧縮部31で圧縮されたRAWデータを一時的に格納するためのキャプチャデータエリア14a、JPEGエンジン24により符号化された画像データや、その符号化・復号化処理で利用されるデータなどを一時的に格納するためのJPEG符号エリア14b、CPU25の処理で利用されるデータを一時的に格納するためのCPUワークエリア14cなどとして利用される。
【0031】
ROM15は、CPU25が実行するプログラムや各種データを保持する。このROM15としては、例えば、EEPROM(Electronically Erasable and Programmable ROM)、フラッシュメモリなどの不揮発性メモリが用いられてもよい。
【0032】
ストレージデバイス16は、符号化された画像データのファイルを記録するためのデバイスであり、例えば、フラッシュメモリ、光ディスク、磁気テープなどの記録媒体、およびそれらの記録/再生ドライブなどからなる。
【0033】
このような撮像装置において、撮像素子11による撮像信号は、順次AFE回路12に供給され、CDS処理やAGC処理が施された後、デジタル信号に変換されて、デジタル画像処理回路13のカメラ信号前処理部21に供給される。カメラ信号前処理部21では、入力された画像信号に対して、欠陥画素補正やシェーディング補正などを施したRAWデータが生成され、このRAWデータは、RAW圧縮部31により圧縮された後、SDRAM14に一旦書き込まれる。
【0034】
このRAWデータは、SDRAM14から読み出されると、RAW伸張部32により伸張された後、カメラ信号処理部22により各種画質補正処理が施される。処理後の画像データは、例えばSDRAM14に一旦格納された後、解像度変換部23により、表示に適した解像度のデータに変換され、さらに例えばSDRAM14に格納された後、ビデオ出力エンコーダ26に供給される。これにより、カメラスルー画像がモニタに表示される。
【0035】
また、図示しない入力部などを通じて画像の記録が要求されると、解像度変換部23は、カメラ信号処理部22で処理された画像データを、必要に応じて記録用に設定された解像度のデータに変換して、例えばSDRAM14に一旦格納し、JPEGエンジン24は、この画像データを圧縮符号化して符号化データを生成する。符号化データは、例えばSDRAM14に一旦記録された後、ストレージデバイス16に記録される。
【0036】
また、ストレージデバイス16に記録された画像データ(符号化データ)は、JPEGエンジン24で伸張復号化され、解像度変換部23で解像度変換された後、ビデオ出力エンコーダ26に出力されることで、モニタに表示させることができる。
【0037】
このようなデジタル画像処理回路13では、カメラ信号前処理部21から内部バス28に対する画像データの入力位置に、RAWデータを圧縮するRAW圧縮部31を設けたことにより、内部バス28を通じてSDRAM14に伝送されるRAWデータのデータ量を低減することができる。また、内部バス28からカメラ信号処理部22に対する画像データの入力位置に、RAWデータを伸張するRAW伸張部32を設けたことにより、同様に、SDRAM14からカメラ信号処理部22に伝送されるRAWデータのデータ量を低減することができる。
【0038】
これにより、撮像動作中の内部バス28の伝送負荷を軽減し、SDRAM14における書き込み/読み出し処理に要する時間を短縮することが可能となる。特に、圧縮/伸張の処理をできるだけ簡単にすることで、処理時間の短縮効果を上げることができる。また、バス上の伝送周波数を低減して、消費電力を抑制することもできる。
【0039】
また、SDRAM14の容量も小さくすることができる。あるいは、SDRAM14の領域を他の処理に利用する、複数フレーム分のRAWデータを格納して、連写できる枚数を増やす、もしくは連写速度を向上させるなど、高画質化・高機能化に寄与することもできる。従って、撮像やデータ記録に必要な時間が短くされた、高性能かつ小型、低コストの撮像装置を実現できる。
【0040】
ところで、RAW圧縮部31によるRAWデータの圧縮処理では、可逆圧縮手法を用いることで、RAWデータの品質を完全に保持できるが、非可逆圧縮であっても、圧縮歪みの発生量が、輝度/色差信号に変換された時点で肉眼では感知できない程度となるならば、画質としては許容できる。一般に、輝度/色差信号に変換された時点のPSNR(Peak Signal to Noise Ratio)が50dB〜40dB程度であれば、圧縮歪みは許容されるレベルになる。
【0041】
さらに、RAWデータを圧縮する場合に、固定長で符号化できれば、SDRAM14に対して読み書きするRAWデータの帯域を一定に保つことができ、内部バス28における伝送負荷を安定的に低減できる。また、カメラ信号処理部22におけるRAWデータの取り扱い(例えばSDRAM14からの読み出し制御処理)や、内部バス28を通じたRAWデータの伝送制御処理を、単純化することもできる。
【0042】
例えば、可変長で符号化した場合には、圧縮されたRAWデータをSDRAM14から読み出す際に、バースト状にアクセスしなければならない場合が多い。また、カメラ信号処理部22の機能として、1Hの数分の一程度のディレイラインしか持たずに、全画面を部分的に(例えば、縦方向の短冊状に)処理していくような機能があった場合に、固定長で符号化することにより、任意の位置のRAWデータのSDRAM14上のアドレスを簡単に計算し、読み出すことが可能になる。デジタル画像処理回路13内のDMA(Direct Memory Access)コントローラによりアクセスすることも可能となる。
【0043】
そこで、本実施の形態では、以下で説明するように、固定長の符号化が可能で、かつ、画像品質を良好に保つことができ、しかも比較的簡単な処理で実現できる非可逆圧縮/伸張手法を採用する。特に、この手法では、一定数の隣接画素からなるブロックを、その画像の状態に応じてさらに分割して、その分割領域ごとに圧縮処理できるようにすることで、圧縮による画質劣化をより抑制できるようにする。
【0044】
次に、本実施の形態で採用する画像圧縮手法の概要について説明する。まず、図2は、圧縮単位となるブロックについて説明するための図である。
本実施の形態で採用する画像圧縮手法では、隣接する一定数の同色成分画素からなるブロックを単位として、一定の圧縮率となるようにデータ圧縮を行う。このブロックを構成する画素は、水平方向あるいは垂直方向にのみ隣接する画素でもよいが、複数列あるいは複数行に亘って隣接している画素でもよい。以下の例では、図2に示すように、6画素×2ラインの合計12画素を1ブロックとして圧縮を行う。なお、図2では例として、ベイヤ配列の撮像素子11が用いられた場合に、r成分の画素が1つのブロックとして整列された状態についてのみ示しているが、当然ながら、gr成分、gb成分、b成分についても、同様に6画素×2ラインのブロックとして整列される。
【0045】
図3は、ブロックタイプの決定手法について説明するための図である。
本実施の形態では、上記のように隣接する12画素からなるブロックを、そのブロックにおけるデータの状態に応じて、図3に示す4つの分割パターンのいずれかにより分割して、圧縮データを生成できるようになっている。
【0046】
ブロックタイプ1では、ブロックを分割せずに1つの領域A1とする。ブロックタイプ2では、ブロックを、2画素×2ラインの4画素からなる領域A2と、残りの4画素×2ラインの8画素からなる領域B2とに分割する。ブロックタイプ3では、ブロックを、4画素×2ラインの8画素からなる領域A3と、残りの2画素×2ラインの4画素からなる領域B3とに分割する。ブロックタイプ4では、ブロックを、ともに3画素×2ラインの6画素からなる領域A4および領域B4に分割する。
【0047】
本実施の形態のデータ圧縮手法により生成されるブロック当たりの圧縮データは、基本的に、特定領域内の最小値(DCオフセット成分)と、その領域内のデータのダイナミックレンジ(最大値と最小値との差分値)に対応する値と、ダイナミックレンジで正規化した各画素の量子化データとから構成される。そして、これらの圧縮データはブロックごとに同じデータ量とされる。このため、画素データの量子化語長を同一とした場合、領域内のダイナミックレンジが広いほど量子化の精度が低くなる。
【0048】
そこで、本実施の形態では、ブロック内のダイナミックレンジを、上記の4つのブロックタイプにおける分割領域ごとに計算し、その計算結果を基に、各分割領域におけるダイナミックレンジができるだけ狭くなるように、上記のブロックタイプの中から適切なものを選択する。例えば、ブロック内において、左側から2画素目と3画素目との間の領域に明暗のエッジが存在する場合には、ブロックタイプ2を選択して、領域A2と領域B2とで個別にダイナミックレンジを計算し、それらの計算結果に応じて画素データを量子化する。これにより、領域A2と領域B2のそれぞれにおけるダイナミックレンジが狭くなり、各領域での量子化の精度が向上する。また、量子化語長を小さくすることも可能になる。逆に、ブロック全体における画素のレベル差が小さい場合には、ブロックタイプ1を選択して、領域A1(すなわちブロック全体)のダイナミックレンジに応じて画素データを量子化しても、量子化の精度劣化を抑制できる。
【0049】
なお、このデータ圧縮手法では、図3に示すように、ブロックタイプ1が選択された場合、領域A1のダイナミックレンジDR1aおよび最小値が圧縮データに含められる。また、ブロックタイプ2が選択された場合、領域A2のダイナミックレンジDR2aおよび最小値と、領域B2のダイナミックレンジDR2bおよび最小値とが、圧縮データに含められる。同様に、ブロックタイプ3が選択された場合、領域A3のダイナミックレンジDR3aおよび最小値と、領域B3のダイナミックレンジDR3bおよび最小値とが、圧縮データに含められる。また、ブロックタイプ4が選択された場合、領域A4のダイナミックレンジDR4aおよび最小値と、領域B4のダイナミックレンジDR4bおよび最小値とが、圧縮データに含められる。
【0050】
以下、このようなブロックタイプを用いた圧縮・伸張処理について、より具体的に説明する。なお、ここでは例として、カメラ信号前処理部21から出力されるRAWデータを、1画素当たり14ビットのデータとする。そして、隣接する同色成分の12画素を1ブロックとして、ブロック単位で一定の圧縮率となるようにデータ圧縮を行う。具体的には、1ブロック当たり168ビットのRAWデータを、64ビットのデータに圧縮する。また、図3に示したように、画素データの量子化語長を、ブロックタイプ1のみ4ビットとし、その他のブロックタイプでは各分割領域について3ビットとする。
【0051】
図4は、RAW圧縮部の内部構成を示すブロック図である。
図4に示すように、RAW圧縮部31は、折れ線圧縮部101、ディレイライン102、ブロック化部103、最大/最小検出部104、ブロックタイプ決定部105、セレクタ106、バッファ107、減算器108、量子化部109、シフト量計算部110、量子化データバッファ111、およびパッキング部112を備えている。
【0052】
折れ線圧縮部101は、入力された14ビットのRAWデータを、折れ線を用いた近似により10ビットのデータに非線形で圧縮する。この折れ線圧縮部101は、この後の圧縮手順の前に、できるだけ階調を下げておくことで、全体的な圧縮効率を向上させることを目的として設けられている。このため、目的とする圧縮率によっては、省略されてもよい。なお、この場合には、後の図8で説明するRAW伸張部32の出力段に設けられる逆折れ線変換部についても、省略する必要がある。
【0053】
ここで、図5は、折れ線圧縮部で用いられる折れ線の例を示す図である。
図5では、4つの点で分割された5通りの傾きを持つ直線により、入力データの階調を変換する例を示している。この例では、人間の視覚特性に合わせて、入力データが小さいほど、すなわち暗いほど(または色がうすいほど)、高い階調を割り当てるようにしている。このような折れ線は、例えば色成分ごとに用意し、入力画素の色成分ごとに切り替えて利用してもよい。
【0054】
折れ線圧縮部101では、例えば、このような折れ線を用いて、入力データの階調を変換した後、変換後のデータを16で除算(すなわち4ビット分下位にシフト)して、10ビットデータに圧縮する。このとき、捨てられる下位ビットは、例えば四捨五入する。あるいは、折れ線圧縮部101では、入力データと上記演算に基づく圧縮後の出力データとを対応付けて記憶したROMテーブルを用意し、このROMテーブルに従って入出力データの変換が行われてもよい。
【0055】
以下、図4に戻って説明する。
ディレイライン102は、折れ線圧縮部101から出力されたデータを1H分だけ遅延させる。ブロック化部103は、折れ線圧縮部101から出力されたデータと、ディレイライン102により遅延された1つ前のラインのデータとから、上述した6画素×2ラインの12画素からなるブロックごとに分離されたデータを出力する。なお、ここでは例として、RAW圧縮部31に入力されるRAWデータは、色成分ごとにすでに分離されたデータであるものとしている。
【0056】
最大/最小検出部104は、ブロックごとに分離された同色画素のデータの入力を受けて、上述したすべてのブロックタイプの分割領域ごとに、最大値および最小値を検出する。各分割領域の最大値および最小値はブロックタイプ決定部105に出力され、それらのうち最小値はセレクタ106にも出力される。
【0057】
ブロックタイプ決定部105は、最大/最小検出部104からの分割領域ごとの最大値および最小値を基に、分割領域のダイナミックレンジが最も小さくなるように、適切なブロックタイプを決定する。そして、決定したブロックタイプを示す識別コードをパッキング部112に対して出力するとともに、決定されたブロックタイプに対応する分割領域のダイナミックレンジを、シフト量計算部110に対して出力する。さらに、決定されたブロックタイプに応じたセレクト信号を、セレクタ106に対して出力する。
【0058】
セレクタ106は、最大/最小検出部104から出力される分割領域ごとの最小値のうち、ブロックタイプ決定部105からのセレクト信号に応じた値を選択して、パッキング部112および減算器108に出力する。これにより、セレクタ106からは、ブロックタイプ決定部105により決定されたブロックタイプに対応する分割領域の最小値が出力される。
【0059】
バッファ107は、ブロック化部103からのデータを、最大/最小検出部104およびセレクタ106における処理時間に応じた時間だけ遅延させて、減算器108に対するデータ出力タイミングを、セレクタ106から減算器108へのデータ出力タイミングに合わせる。
【0060】
減算器108は、ブロック化部103からバッファ107を介して入力された1ブロック分の画素データから、セレクタ106からの最小値を減算する。ここで、セレクタ106からの最小値は、ブロックタイプ決定部105により決定されたブロックタイプに含まれる分割領域別に出力され、減算器108では、バッファ107からの画素データから、その画素が所属している分割領域に対応する最小値が減算される。この結果、減算器108からは、減算対象とされた画素のデータから、その画素が所属している分割領域におけるDCオフセット成分が除去されて、量子化部109での量子化語長をより小さく設定できるようになる。
【0061】
ここでは、ブロック化部103から減算器108に対して、2ラインの画素データが並列に入力されて、減算が行われるものとする。この場合、例えば、ブロックタイプ決定部105によりブロックタイプ2が決定されると、まず、バッファ107からブロック内の1番目および2番目までの画素のデータが減算器108に入力される期間において、セレクタ106からは領域A2の最小値が減算器108に入力されて、減算が行われる。次に、ブロック内の3番目から6番目までの画素のデータが減算器108に入力される期間において、セレクタ106からは領域B2の最小値が減算器108に入力されて、減算が行われる。
【0062】
量子化部109は、減算器108によりDCオフセット成分が除去された画素データを量子化する。この量子化部109としては、例えば、整数型の除算器を利用して、減算器108の出力データをセレクタ106からのダイナミックレンジで除算する構成を適用することができる。しかし、ここでは、量子化ステップを2のべき乗として、量子化部109を、シフト量計算部110から指定されるシフト量に応じて入力データを下位側にシフトさせる右シフタとして実現し、これによって、量子化データのビット数を低減し、また回路規模を抑制する。
【0063】
なお、本実施の形態では、ブロック当たりの圧縮データを64ビットの固定長とするために、量子化部109での量子化語長を、ブロックタイプ1の場合は4ビット、ブロックタイプ2〜4の場合は3ビットとしている。ただし、量子化部109では常に4ビットデータを出力させ、パッキング部112において量子化データを圧縮データにパッキングする際に、不要なビットのデータを破棄させるようにすればよい。
【0064】
シフト量計算部110は、ブロックタイプ決定部105から、分割領域ごとのダイナミックレンジを受け付け、それらのダイナミックレンジの値を量子化部109でのシフト量に換算する。ここでは、ブロックタイプ決定部105により決定されるブロックタイプに応じて、2種類の動作が行われる。
【0065】
まず、ブロックタイプ1の場合、量子化部109では10ビットのデータが4ビットのデータに量子化される。この場合、ブロックタイプ決定部105からのダイナミックレンジの値をDRとすると、シフト量計算部110は、以下の条件によりシフト量を算出する。
【0066】
[0≦DR≦15のとき]入力データをそのまま出力する。
[16≦DR≦31のとき]入力データを1ビット分下位にシフトする。
[32≦DR≦63のとき]入力データを2ビット分下位にシフトする。
【0067】
[64≦DR≦127のとき]入力データを3ビット分下位にシフトする。
[128≦DR≦255のとき]入力データを4ビット分下位にシフトする。
[256≦DR≦511のとき]入力データを5ビット分下位にシフトする。
【0068】
[512≦DR≦1023のとき]入力データを6ビット分下位にシフトする。
一方、ブロックタイプ2〜4の場合、量子化部109では10ビットのデータが3ビットのデータに量子化され、シフト量計算部110は、以下の条件によりシフト量を算出する。
【0069】
[0≦DR≦7のとき]入力データをそのまま出力する。
[8≦DR≦15のとき]入力データを1ビット分下位にシフトする。
[16≦DR≦31のとき]入力データを2ビット分下位にシフトする。
【0070】
[32≦DR≦63のとき]入力データを3ビット分下位にシフトする。
[64≦DR≦127のとき]入力データを4ビット分下位にシフトする。
[128≦DR≦255のとき]入力データを5ビット分下位にシフトする。
【0071】
[256≦DR≦511のとき]入力データを6ビット分下位にシフトする。
[512≦DR≦1023のとき]入力データを7ビット分下位にシフトする。
以上の条件を基に計算されたシフト量は、対応する分割領域におけるダイナミックレンジを示唆するものとなる。従って、このようなシフト量と、そのシフト量に応じて生成された量子化データとを圧縮データに格納しておくことで、伸張部側では、シフト量を基に量子化データを伸張できるようになる。
【0072】
量子化データバッファ111は、量子化部109から出力される1ブロック分(12画素分)の量子化データを一時的に保持する。
パッキング部112は、量子化データバッファ111からの各画素の量子化データと、セレクタ106からの分割領域ごとの最小値と、シフト量計算部110からの分割領域ごとのシフト量と、ブロックタイプ決定部105からのブロックタイプを識別する識別コードとを利用して、1ブロック当たり64ビットの圧縮データにパッキングする。
【0073】
図6は、パッキングにより生成される1ブロック分の圧縮データの構成を示す図である。
図6に示すように、RAW圧縮部31では、ブロックタイプごとに異なる4種類の圧縮データが生成される。これらの圧縮データはすべて、ブロック当たり64ビットに圧縮され、また、先頭にブロックタイプを識別するための2ビットの識別コードが配置されていることも共通している。
【0074】
ブロックタイプ1の場合、識別コードに続いて、領域A1に対応する最小値(10ビット)、量子化処理時のシフト量(3ビット)、領域A1内の12画素の量子化データ(各4ビット)が配置され、最後に、合計64ビットとするための1ビットの空き領域が設けられる。
【0075】
ブロックタイプ2〜4の場合には、識別コードに続いて、まず、領域A(領域A2〜A4のいずれか)に対応する最小値(10ビット)およびシフト量(3ビット)が配置され、次に、領域B(領域B2〜B4のいずれか)に対応する最小値(10ビット)およびシフト量(3ビット)が配置される。その後、領域A内の各画素の量子化データ(3ビット)が配置され、さらに領域B内の各画素の量子化データ(3ビット)が配置される。すなわち、ブロックタイプ2〜4では、最小値やシフト量の配置領域は共通しているが、分割領域の画素数が異なるので、伸張部側では、識別コードに応じて、分割領域ごとの量子化データの格納位置を判断する必要がある。
【0076】
なお、画素データの量子化にビットシフタを用いない場合には、例えば、上記のシフト量の代わりに、量子化の際に用いたダイナミックレンジの数値自体を、圧縮データにパッキングしてもよい。
【0077】
また、上記の例では、分割領域ごとの最小値を画素データから差し引いた値を量子化しているが、この他の例として、分割領域における最小値と最大値とを除く画素データから、それぞれ最小値を減算した値のみを量子化してもよい。この場合、圧縮データには、分割領域において最小値および最大値を採る画素の量子化データが必要なくなる代わりに、分割領域ごとの最大値と、最小値および最大値の分割領域内における位置情報とを含める。この例と図6の例のどちらを選択するかは、位置情報のビット数を決めるブロック内あるいは分割領域内の画素数や、画素データのビット数、量子化語長、ブロック当たりの圧縮データのデータ量などに応じて、適切に決められればよい。
【0078】
次に、図7は、ブロックタイプ決定部の内部構成を示す図である。
ブロックタイプ決定部105は、ダイナミックレンジ演算部131、ダイナミックレンジ加算部132、ダイナミックレンジ比較部133、セレクタ134、アドレスカウンタ135、およびセレクト信号生成部136を備えている。
【0079】
ダイナミックレンジ演算部131は、すべてのブロックタイプの分割領域(領域A1〜A4,B2〜B4)ごとに、ダイナミックレンジDR1a,DR2a,DR2b,DR3a,DR3b,DR4a,DR4bを算出する。ここでは、最大/最小検出部104から分割領域ごとに出力される最大値から最小値を減算することで、各分割領域におけるダイナミックレンジを演算する。これらの演算結果は、ダイナミックレンジ加算部132およびセレクタ134に出力される。
【0080】
ダイナミックレンジ加算部132は、ダイナミックレンジ演算部131からの分割領域ごとのダイナミックレンジを基に、ブロックタイプごとのダイナミックレンジ加算値を算出する。ここでは、ブロックタイプ1〜4のそれぞれのダイナミックレンジ加算値DR1〜DR4を、次の式(1)〜(4)により演算する。
DR1=DR1a ……(1)
DR2=DR2a+DR2b ……(2)
DR3=DR3a+DR3b ……(3)
DR4=DR4a+DR4b ……(4)
ダイナミックレンジ比較部133は、ダイナミックレンジ加算部132からのダイナミックレンジ加算値を比較して、最も小さい値に対応するブロックタイプを決定し、そのブロックタイプを示す2ビットの識別コードを、セレクト信号生成部136、シフト量計算部110、およびパッキング部112に出力する。
【0081】
セレクタ134は、セレクト信号生成部136からのセレクト信号に従って、ダイナミックレンジ演算部131から出力されたダイナミックレンジのうち、1つのブロックタイプに対応するものを出力する。
【0082】
アドレスカウンタ135は、最大/最小検出部104における、1ブロックの最大値および最小値の検出完了タイミングをトリガとして、最大/最小検出部104からのデータ出力タイミングに同期してアドレスをカウントする。
【0083】
セレクト信号生成部136は、ダイナミックレンジ比較部133からの識別コードに応じて、アドレスカウンタ135による所定のカウント値の出力タイミングにおいて、セレクタ134および106に対してセレクト信号を出力する。このセレクト信号により、セレクタ134および106において、識別コードで指定されるブロックタイプに対応する値が、あらかじめ決められた順番で出力されるように制御する。
【0084】
例えば、識別コードがブロックタイプ1を示す場合、セレクタ134に領域A1のダイナミックレンジDR1aを出力させ、セレクタ106に領域A1における最小値を出力させる。また、識別コードがブロックタイプ2を示す場合、まず、セレクタ134に領域A2のダイナミックレンジDR2aを出力させ、セレクタ106に領域A2における最小値を出力させる。次に、セレクタ134に領域B2のダイナミックレンジDR2bを出力させ、セレクタ106に領域B2における最小値を出力させる。
【0085】
同様に、識別コードがブロックタイプ3を示す場合、まず、セレクタ134および106に、領域A3のダイナミックレンジDR3aおよび最小値をそれぞれ出力させた後、次に、領域B3のダイナミックレンジDR3bおよび最小値をそれぞれ出力させる。また、識別コードがブロックタイプ4を示す場合、まず、セレクタ134および106に、領域A4のダイナミックレンジDR4aおよび最小値をそれぞれ出力させた後、次に、領域B4のダイナミックレンジDR4bおよび最小値をそれぞれ出力させる。
【0086】
以上のブロックタイプ決定部105では、式(1)〜(4)に従い、ダイナミックレンジ加算値が最も小さくなるブロックタイプが選択されることで、ブロック内の画像の状態に応じて、画質劣化が少なくなるように量子化対象領域が適切化される。ただし、式(2)〜(4)では、2つの分割領域におけるダイナミックレンジが加算されているため、これらの加算値と正確に比較するためには、式(1)を、DR1=DR1a×2としてもよい(あるいは、式(2)〜(4)の加算値にそれぞれ1/2をさらに乗じてもよい)。
【0087】
しかし、ブロックタイプ1では、最小値やシフト量を1つの領域分だけ圧縮データに格納すればよく、このために量子化語長を他のブロックタイプより大きくする(4ビット)ことができる。従って、ブロックタイプ1では、他のブロックタイプより許容できるダイナミックレンジの範囲が大きいと言えることから、この例では式(1)のようにDR1=DR1aとして、相対的にブロックタイプ1が選択されやすくなるようにしている。このような重み付けにより、例えばノイズなどに反応して不適切な分割領域を持つブロックタイプが選択されるといった誤動作の発生を防止できるというメリットもある。
【0088】
なお、ユーザによる入力操作により、ブロックタイプ1に対応するダイナミックレンジ加算値の演算式における乗数を、1〜2の範囲で任意に設定できるようにしてもよい。
次に、図8は、RAW伸張部の内部構成を示すブロック図である。
【0089】
図8に示すように、RAW伸張部32は、データラッチ部201、セレクタ202〜204、アドレスカウンタ205、逆量子化部206、加算器207、および逆折れ線変換部208を備えている。
【0090】
データラッチ部201は、SDRAM14から読み出された64ビットの圧縮データをラッチする。このデータラッチ部201は、先頭2ビットの識別コードからブロックタイプを判定した後、その判定結果に応じて、分割領域ごとの最小値およびシフト量、各分割領域内の画素の量子化データの格納位置を判別して、ラッチしていく。
【0091】
セレクタ202は、アドレスカウンタ205からのセレクト信号に応じて、データラッチ部201でラッチされた量子化データを画素ごとにシーケンシャルに選択して、逆量子化部206に出力する。
【0092】
セレクタ203は、アドレスカウンタ205からのセレクト信号に応じて、データラッチ部201でラッチされた各分割領域のシフト量のうちのいずれかを選択して、逆量子化部206に対して出力する。
【0093】
セレクタ204は、アドレスカウンタ205からのセレクト信号に応じて、データラッチ部201でラッチされた各分割領域の最小値のうちのいずれかを選択して、加算器207に対して出力する。
【0094】
アドレスカウンタ205は、データラッチ部201における1ブロック分のデータラッチが完了するごとにアドレスのカウントを行い、あらかじめ決められたカウント値に達したときに、セレクタ202と、セレクタ203および204とに対してそれぞれ個別のセレクト信号を出力する。
【0095】
このアドレスカウンタ205は、データラッチ部201からの識別コードに基づくブロックタイプに応じて、セレクト信号を出力する。識別コードがブロックタイプ1を示す場合、アドレスカウンタ205は、セレクタ203および204に領域A1のシフト量および最小値をそれぞれ出力させ、この状態で、セレクタ202に12画素分の量子化データを順次出力させる。
【0096】
識別コードがブロックタイプ2〜4を示す場合、アドレスカウンタ205は、まず、セレクタ203および204に領域A(領域A2〜A4のいずれか)のシフト量および最小値をそれぞれ出力させ、この状態で、セレクタ202に領域A内の画素に対応する量子化データを順次出力させる。次に、セレクタ203および204に領域B(領域B2〜B4のいずれか)のシフト量および最小値をそれぞれ出力させ、この状態で、セレクタ202に領域B内の画素に対応する量子化データを順次出力させる。従って、ブロックタイプ2〜4の場合には、セレクタ203および204の選択切り替えタイミングも、セレクタ202でのデータ選択も、ブロックタイプによりそれぞれ異なることになる。
【0097】
逆量子化部206は、セレクタ202からの量子化データを、セレクタ203からのシフト量を基に逆量子化する。ここでは、逆量子化部206は、セレクタ203からのシフト量分だけ量子化データを上位側にシフトする左シフタとして構成される。従って、この逆量子化部206により、画素ごとのダイナミックレンジの値が再現される。
【0098】
なお、量子化処理にビットシフタが用いられず、圧縮データにシフト量の代わりにダイナミックレンジの値がパッキングされている場合には、この逆量子化部206として、例えば、整数型の乗算器により量子化データとダイナミックレンジとを乗算する構成を適用することもできる。
【0099】
加算器207は、逆量子化部206からのダイナミックレンジの値に、セレクタ204からの最小値を加算する。ここでは、所定画素のダイナミックレンジの値に、その画素が所属する分割領域の最小値(DCオフセット成分)が加算されることで、10ビットの画素データが再現される。
【0100】
逆折れ線変換部208は、加算器207からのデータを、RAW圧縮部31の折れ線圧縮部101と逆の入出力特性により、10ビットから14ビットのデータに伸張する。
ここで、図9は、逆折れ線変換部で用いられる折れ線の例を示す図である。
【0101】
この図9の折れ線は、図5で示した折れ線圧縮部101における折れ線と、逆の特性により階調を変換するようになっている。逆折れ線変換部208は、まず、入力データに16を乗算(すなわち4ビット分上位にシフト)して14ビット化した後、図9の折れ線を用いて階調変換し、14ビットの画素のデータを伸張する。
【0102】
なお、この逆折れ線変換部208では、入力データと伸張後の出力データとを対応付けて記憶したROMテーブルを用意し、このROMテーブルに従って入出力データの変換が行われてもよい。また、圧縮時に、折れ線圧縮部101による圧縮が適用されなかった場合には、伸張時には、この逆折れ線変換部208でのデータ変換もバイパスされる。
【0103】
以上の構成のRAW圧縮部31およびRAW伸張部32によれば、ブロック内の領域を異なるパターンで分割した複数のブロックタイプを用意し、ブロックタイプごとにそれぞれの分割領域におけるダイナミックレンジ加算値を比較して、その値が最も小さいブロックタイプを選択して分割領域ごとに量子化処理を行うことにより、画像の状態に応じて量子化ノイズができるだけ抑制されるように、量子化処理範囲(すなわち、同じダイナミックレンジの値を基に量子化する範囲)が適切に選択される。従って、可逆圧縮でありながらも、画質劣化の少ない高圧縮率の圧縮・伸張処理が実現できる。特に、ブロック内に明暗の差が大きなエッジ部分が存在する場合には、そのエッジに沿って量子化処理範囲が分割されるようになり、ブロック全体を量子化処理範囲とした場合より量子化による画質劣化を低減することができる。
【0104】
例えば、上記の実施の形態で示した各種条件の下では、12画素分のRAWデータを、ブロックタイプに応じて量子化語長4ビットまたは3ビットで量子化することで、圧縮率を約38%とすることができ、なおかつ、通常の自然画であれば、圧縮/伸張後に輝度/色差信号(各8ビット)に変換した時点でのPSNRを、44.6dB程度に維持できる。従って、圧縮歪みが肉眼では検知できない程度に抑えられ、画質劣化をほぼなくすことができる。
【0105】
また、上記のデータ圧縮手法により、RAWデータを固定長の符号化データとして圧縮することができるので、内部バス28を通じてSDRAM14に読み書きされるデータの帯域を一定のレベルに低減することができ、SDRAM14に対するアドレス管理を簡易にすることもできる。従って、回路規模や製造コストを抑制しながらも、高速な動作が可能な撮像装置を実現できるようになる。
【0106】
さらに、圧縮する1ブロックの画素数と各分割領域の量子化語長との組み合わせで圧縮率が決まるので、必要とする画質(すなわち、許容できる圧縮ひずみの量)や、伝送されるバスでの伝送帯域の割り当て、SDRAM14の読み書きの性能などにあわせて、柔軟に対応することができる。従って、仕様の異なる撮像装置の開発コストを抑制できるようになる。
【0107】
なお、上記の実施の形態では、2ラインに亘る隣接画素によってブロックを構成したが、これに限ったことではなく、例えば、1ラインのみ、あるいは3ライン以上に亘る隣接画素によってブロックを構成してもよい。また、ブロック内の画素を垂直な分割線を境界として分割領域を定義したが、水平な分割線、あるいは斜め方向に沿った分割線により分割領域を定義してもよい。
【0108】
ただし、分割線を垂直にすることで、ブロックを構成するライン数分の画素データを並列に受けたときに、これらの画素データに対してライン先頭方向から順次処理により圧縮処理を施すことができるようになり、回路構成や処理制御を単純化し、処理効率を高めることができる。このような構成としては、例えば、複数ライン分の同色成分の画素信号を同時に出力可能なマルチチャネル仕様の撮像素子を利用した場合が考えられる。
【0109】
また、上記の例のように、矩形領域ごとにブロック化する場合には、特に、RAW圧縮部31とカメラ信号前処理部21とを一体化した構成とすることもできる。例えば、カメラ信号前処理部21が備える欠陥画素補正機能は、対象の画素が欠陥である場合に、その画素のデータを周囲の画素のデータを用いて補間する。また、カメラ信号前処理部21には、周囲画素からの推測値と比較して著しくレベルの異なる画素の信号を補正する孤立点除去処理機能を備える場合もある。このような欠陥画素補正機能や孤立点除去処理機能は、周囲画素のデータを利用するためにラインメモリを用いるため、RAW圧縮部31において複数ライン分の画素を単位として圧縮処理を行う機能と親和性が高い。従って、ラインメモリを共通化するなどして、RAW圧縮部31の機能またはその一部をカメラ信号前処理部21内に形成することができる。
【0110】
また、上記の実施の形態では、2つの分割領域を持つブロックタイプに対する量子化処理では、各分割領域についての量子化語長を同じにしていたが、例えば、各分割領域の画素数が異なる場合には、より多くの画素数を有する分割領域の量子化語長を、他方の分割領域よりも大きくしてもよい。
【0111】
また、上記構成のRAW圧縮部31およびRAW伸張部32では、量子化語長の設定を変更することで、可変長の符号化を行うようにすることもできる。例えば、圧縮時において、ダイナミックレンジを基に適応的に量子化語長を変化させることで、可変長の符号化を行い、圧縮効率をさらに高めることができる。さらに、同様の手法で可逆圧縮として、画質劣化を完全に防止することもできる。ただし、この場合には折れ線による圧縮/伸張は行わない。
【0112】
また、CPU25により、RAW圧縮部31およびRAW伸張部32の設定を適応的に制御してもよい。例えば、量子化語長や、1ブロックの画素数およびそのブロックタイプを変化させる、折れ線圧縮/伸張機能をオン/オフするなどの制御により、圧縮率を変化させることができる。また、RAW圧縮部31およびRAW伸張部32の機能をオン/オフできるようにしてもよい。例えば、連写時のみ圧縮/伸張機能をオンにする、RAWデータをストレージデバイス16にそのまま記録するモードでは圧縮/伸張機能をオフにするなどの制御を適用できる。
【0113】
また、RAW圧縮部31およびRAW伸張部32の機能を、上記の位置の代わりに、例えばSDRAMコントローラ27と内部バス28との間に設けた場合でも、SDRAM14に対するRAWデータの書き込み/読み出しに要する時間を短縮し、SDRAM14の容量を小さくする効果を得ることができる。
【0114】
〔第2の実施の形態〕
図10は、本発明の第2の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。なお、図10では、図1に対応する機能については同じ符号を付して示し、その説明を省略する。
【0115】
図10に示す撮像装置では、撮像素子11と、サンプルホールド機能やA/D変換機能を含むAFE回路12とを、1つのセンサLSI(Large Scale Integration)301上に形成している。そして、このセンサLSI301上に、RAW圧縮部31も一体に形成している。なお、この図10のカメラ信号処理部22aは、図1のカメラ信号処理部22の機能とともにカメラ信号前処理部21の機能も備える。
【0116】
このような構成により、上述したような、SDRAM14に対するRAWデータの書き込み/読み出しの処理負荷を軽減し、デジタル画像処理回路13aの内部バス28におけるRAWデータの伝送帯域を低減する効果の他に、センサLSI301からデジタル画像処理回路13aに対するデータ転送周波数を低減し、消費電力を抑制する効果も得ることができる。また、センサLSI301からデジタル画像処理回路13aに対するバスからの輻射も低減でき、センサLSI301の内部の信号などに与える影響が抑制される。また、輻射防止のためのシート部材などを薄くしたり、あるいは省略することができ、装置を薄型化・小型化する効果も得られる。
【0117】
さらに、この図10の例では、デジタル画像処理回路13a内のCPU25から、センサLSI301内のRAW圧縮部31の機能のオン/オフを制御できるようになっている。この場合、RAW伸張部32のオン/オフは、CPU25から内部バス28を通じて制御すればよい。このような構成により、例えば、連写時のみ圧縮/伸張機能をオンにする、RAWデータをストレージデバイス16に記録するモードでは圧縮/伸張機能をオフにするなど、設定に応じた動作を実現できる。
【0118】
また、オン/オフだけでなく、RAW圧縮部31の設定をCPU25から適宜制御できるようにしてもよい。
〔第3の実施の形態〕
図11は、本発明の第3の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。なお、図11では、図1に対応する機能については同じ符号を付して示し、その説明を省略する。
【0119】
図11に示す撮像装置では、AFE回路12aの内部に、CDSによるサンプルホールド部12bと、A/D変換部12cとともに、RAW圧縮部31も、1つのチップとして一体に形成されている。なお、この図11のカメラ信号処理部(図示せず)も、図10の場合と同様に、図1のカメラ信号処理部22の機能とともにカメラ信号前処理部21の機能も備える。
【0120】
このような構成により、上記の図10の場合と同様に、SDRAM14に対するRAWデータの書き込み/読み出しの処理負荷を軽減し、デジタル画像処理回路13aの内部バス28におけるRAWデータの伝送帯域を低減する効果の他に、AFE回路12aからデジタル画像処理回路13aに対するデータ転送周波数を低減し、消費電力を抑制する効果や、輻射防止効果も得ることができる。
【0121】
なお、本実施の形態でも、図10と同様に、デジタル画像処理回路13a内のCPU(図示せず)から、RAW圧縮部31の機能のオン/オフを制御できるようにしてもよい。また、CPUから、RAW圧縮部31の設定を適用的に制御できるようにしてもよい。
【図面の簡単な説明】
【0122】
【図1】本発明の第1の実施の形態に係る撮像装置の構成を示すブロック図である。
【図2】圧縮単位となるブロックについて説明するための図である。
【図3】ブロックタイプの決定手法について説明するための図である。
【図4】RAW圧縮部の内部構成を示すブロック図である。
【図5】折れ線圧縮部で用いられる折れ線の例を示す図である。
【図6】パッキングにより生成される1ブロック分の圧縮データの構成を示す図である。
【図7】ブロックタイプ決定部の内部構成を示す図である。
【図8】RAW伸張部の内部構成を示すブロック図である。
【図9】逆折れ線変換部で用いられる折れ線の例を示す図である。
【図10】本発明の第2の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。
【図11】本発明の第3の実施の形態に係る撮像装置の構成を概略的に示すブロック図である。
【図12】従来の撮像装置の構成例を示すブロック図である。
【符号の説明】
【0123】
11……撮像素子、12……アナログフロントエンド(AFE)回路、13……デジタル画像処理回路、14……SDRAM、14a……キャプチャデータエリア、14b……JPEG符号エリア、14c……CPUワークエリア、15……ROM、16……ストレージデバイス、21……カメラ信号前処理部、22……カメラ信号処理部、23……解像度変換部、24……JPEGエンジン、25……CPU、26……ビデオ出力エンコーダ、26a……ビデオ出力端子、27……SDRAMコントローラ、28……内部バス、31……RAW圧縮部、32……RAW伸張部
【特許請求の範囲】
【請求項1】
固体撮像素子を用いて画像を撮像する撮像装置において、
前記固体撮像素子での撮像により得られた画像データを、隣接する一定数の同色成分画素からなるブロックを単位として圧縮する圧縮部と、
前記圧縮部により圧縮された圧縮画像データを一時的に保持するメモリと、
前記メモリから読み出した前記圧縮画像データを伸張する伸張部と、
前記伸張部により伸張された画像データに対して画質補正処理を施す信号処理部と、
を有し、
前記圧縮部は、
互いに隣接した1つ以上の画素からなる2つの量子化対象領域によって前記ブロック内の画素が分割され、かつ、2つの前記量子化対象領域の境界位置が互いに異なるように、複数のブロックタイプがあらかじめ定義されており、前記ブロックタイプのすべての前記量子化対象領域における画素データのダイナミックレンジを計算するダイナミックレンジ計算部と、
前記ダイナミックレンジ計算部による計算結果を基に、前記各ブロックタイプ内の前記量子化対象領域におけるダイナミックレンジを加算した加算値を、前記ブロックタイプごとに計算し、前記加算値が最も小さい前記ブロックタイプを選択するブロックタイプ選択部と、
前記ブロックタイプ選択部により選択された前記ブロックタイプにおける前記量子化対象領域ごとに、当該量子化対象領域に含まれる画素データから当該量子化対象領域における画素データの最小値を減算した値を、前記ダイナミックレンジ計算部で算出された対応するダイナミックレンジに応じて量子化する量子化部と、
を備えたことを特徴とする撮像装置。
【請求項2】
前記圧縮部が出力する前記圧縮画像データは、前記ブロックタイプ選択部により選択された前記ブロックタイプを識別するためのパターン識別情報と、当該ブロックタイプにおける前記各量子化対象領域のダイナミックレンジを示す情報と、当該量子化対象領域ごとの画素データの最小値と、前記量子化部から出力される画素ごとの量子化データとを含むことを特徴とする請求項1記載の撮像装置。
【請求項3】
前記量子化部は、前記ブロックタイプにおけるそれぞれの前記量子化対象領域のデータに対して、同じ量子化語長により量子化を行い、前記ブロックごとの前記圧縮画像データが固定長とされたことを特徴とする請求項2記載の撮像装置。
【請求項4】
前記量子化部は、量子化ステップを2のべき乗として、前記量子化対象領域のそれぞれに対応するダイナミックレンジに応じたけた数だけ下位にシフトする右シフタにより構成され、
前記圧縮画像データには、前記量子化対象領域のダイナミックレンジを示す情報として、前記右シフタでのシフト量が含められることを特徴とする請求項2記載の撮像装置。
【請求項5】
前記伸張部は、前記圧縮画像データ内の前記シフト量の分だけ、対応する前記量子化対象領域の前記量子化データを左シフタによって上位にシフトすることで逆量子化し、逆量子化されたデータに対して、対応する前記量子化対象領域における画素データの最小値を加算することで、画素データを伸張することを特徴とする請求項4記載の撮像装置。
【請求項6】
前記ブロックは、撮像画像上の矩形領域に含まれる画素データからなることを特徴とする請求項1記載の撮像装置。
【請求項7】
すべての前記ブロックタイプの前記ブロックにおいて、前記量子化対象領域は垂直方向に沿った分割線により分割されることを特徴とする請求項6記載の撮像装置。
【請求項8】
前記ブロックタイプとして、2つの前記量子化対象領域を持つ第1のブロックタイプに加えて、前記ブロック全体の画素からなる1つの前記量子化対象領域のみを持つ第2のブロックタイプが定義され、
前記ブロックタイプ選択部は、2つの前記量子化対象領域におけるダイナミックレンジを加算した、前記第1のブロックタイプに対応する前記加算値と、前記第2のブロックタイプに対応する1つの前記量子化対象領域におけるダイナミックレンジとを、それぞれ正規化した値によって比較を行い、その中で最も値が小さい前記ブロックタイプを選択することを特徴とする請求項1記載の撮像装置。
【請求項9】
前記ブロックタイプ選択部は、前記第1のブロックタイプに対応する前記加算値と、前記第2のブロックタイプに対応するダイナミックレンジとを比較する際に、前記第2のブロックタイプについては、当該第2のブロックタイプに対応するダイナミックレンジを正規化した値より小さな値を比較対象とすることを特徴とする請求項8記載の撮像装置。
【請求項10】
前記量子化部は、前記ブロックタイプ選択部により前記第2のブロックタイプが選択されたとき、前記第1のブロックタイプが選択された場合より、前記量子化対象領域のデータの量子化語長を大きくすることを特徴とする請求項9記載の撮像装置。
【請求項11】
前記ブロックタイプ選択部は、前記第1のブロックタイプ内の2つの前記量子化対象領域のダイナミックレンジを加算した前記加算値と、前記第2のブロックタイプ内の1つの前記量子化対象領域のダイナミックレンジとを比較して、それらの値が最も小さい前記ブロックタイプを選択することを特徴とする請求項9記載の撮像装置。
【請求項12】
前記ブロックは、撮像画像上の矩形領域内の6画素×2ラインの12画素からなり、
前記第1のブロックタイプとして、少なくとも、ライン先頭側からの2画素×2ラインによる前記量子化対象領域とその次の4画素×2ラインによる前記量子化対象領域とからなるタイプと、ライン先頭側からの4画素×2ラインによる前記量子化対象領域とその次の2画素×2ラインによる前記量子化対象領域とからなるタイプと、3画素×2ラインによる2つの前記量子化対象領域からなるタイプとが定義され、
前記量子化部は、入力される画素ごとのデータが10ビットのとき、前記第1のブロックタイプにおける前記量子化対象領域のデータをそれぞれ量子化語長3ビットで量子化し、前記第2のブロックタイプにおける前記量子化対象領域のデータを量子化語長4ビットで量子化する、
ことを特徴とする請求項11記載の撮像装置。
【請求項13】
前記ダイナミックレンジ計算部は、前記量子化対象領域におけるダイナミックレンジを、当該量子化対象領域内の画素データの最大値と最小値との差分値として計算することを特徴とする請求項1記載の撮像装置。
【請求項14】
前記圧縮部の前段には、入力された画像データに対して、人間の視感度特性に応じて階調を変換した後、そのビット数を削減して前記圧縮部に供給する前圧縮部が設けられ、
前記伸張部の後段には、前記伸張部により伸張された画素データを、前記前圧縮部と逆の手順で伸張する後伸張部が設けられたことを特徴とする請求項1記載の撮像装置。
【請求項15】
前記圧縮部、前記伸張部および前記信号処理部は、共通のバスを通じて前記メモリに接続され、前記圧縮部からの前記圧縮画像データは前記バスを介して前記メモリに書き込まれた後、前記バスを介して前記伸張部に供給され、前記伸張部により伸張された画像データは、前記バスを介さずに直接、前記信号処理部に入力されることを特徴とする請求項1記載の撮像装置。
【請求項16】
画像を撮像するための撮像回路において、
入射光を電気信号に変換する固体撮像素子と、
前記固体撮像素子による撮像信号をデジタル変換するデジタル変換回路と、
前記デジタル変換回路からの画像信号を、隣接する一定数の同色成分画素からなるブロックを単位として圧縮する圧縮回路と、
が同一のチップ上に形成された構造を有し、
前記圧縮回路は、
互いに隣接した1つ以上の画素からなる2つの量子化対象領域によって前記ブロック内の画素が分割され、かつ、2つの前記量子化対象領域の境界位置が互いに異なるように、複数のブロックタイプがあらかじめ定義されており、前記ブロックタイプのすべての前記量子化対象領域における画素データのダイナミックレンジを計算するダイナミックレンジ計算部と、
前記ダイナミックレンジ計算部による計算結果を基に、前記各ブロックタイプ内の前記量子化対象領域におけるダイナミックレンジを加算した加算値を、前記ブロックタイプごとに計算し、前記加算値が最も小さい前記ブロックタイプを選択するブロックタイプ選択部と、
前記ブロックタイプ選択部により選択された前記ブロックタイプにおける前記量子化対象領域ごとに、当該量子化対象領域に含まれる画素データから当該量子化対象領域における画素データの最小値を減算した値を、前記ダイナミックレンジ計算部で算出された対応するダイナミックレンジに応じて量子化する量子化部と、
を備えたことを特徴とする撮像回路。
【請求項17】
固体撮像素子を用いて画像を撮像する撮像方法において、
圧縮部が、前記固体撮像素子での撮像により得られた画像データを、隣接する一定数の同色成分画素からなるブロックを単位として圧縮し、圧縮画像データをメモリに一時的に格納する圧縮ステップと、
伸張部が、前記メモリから読み出した前記圧縮画像データを伸張する伸張ステップと、
信号処理部が、前記伸張部により伸張された画像データに対して画質補正処理を施す画質補正ステップと、
を有し、
前記圧縮ステップは、
互いに隣接した1つ以上の画素からなる2つの量子化対象領域によって前記ブロック内の画素が分割され、かつ、2つの前記量子化対象領域の境界位置が互いに異なるように、複数のブロックタイプがあらかじめ定義されており、前記ブロックタイプのすべての前記量子化対象領域における画素データのダイナミックレンジを計算するダイナミックレンジ計算ステップと、
前記ダイナミックレンジ計算ステップでの計算結果を基に、前記各ブロックタイプ内の前記量子化対象領域におけるダイナミックレンジを加算した加算値を、前記ブロックタイプごとに計算し、前記加算値が最も小さい前記ブロックタイプを選択するブロックタイプ選択ステップと、
前記ブロックタイプ選択ステップで選択された前記ブロックタイプにおける前記量子化対象領域ごとに、当該量子化対象領域に含まれる画素データから当該量子化対象領域における画素データの最小値を減算した値を、前記ダイナミックレンジ計算部で算出された対応するダイナミックレンジに応じて量子化する量子化処理ステップと、
を含むことを特徴とする撮像方法。
【請求項1】
固体撮像素子を用いて画像を撮像する撮像装置において、
前記固体撮像素子での撮像により得られた画像データを、隣接する一定数の同色成分画素からなるブロックを単位として圧縮する圧縮部と、
前記圧縮部により圧縮された圧縮画像データを一時的に保持するメモリと、
前記メモリから読み出した前記圧縮画像データを伸張する伸張部と、
前記伸張部により伸張された画像データに対して画質補正処理を施す信号処理部と、
を有し、
前記圧縮部は、
互いに隣接した1つ以上の画素からなる2つの量子化対象領域によって前記ブロック内の画素が分割され、かつ、2つの前記量子化対象領域の境界位置が互いに異なるように、複数のブロックタイプがあらかじめ定義されており、前記ブロックタイプのすべての前記量子化対象領域における画素データのダイナミックレンジを計算するダイナミックレンジ計算部と、
前記ダイナミックレンジ計算部による計算結果を基に、前記各ブロックタイプ内の前記量子化対象領域におけるダイナミックレンジを加算した加算値を、前記ブロックタイプごとに計算し、前記加算値が最も小さい前記ブロックタイプを選択するブロックタイプ選択部と、
前記ブロックタイプ選択部により選択された前記ブロックタイプにおける前記量子化対象領域ごとに、当該量子化対象領域に含まれる画素データから当該量子化対象領域における画素データの最小値を減算した値を、前記ダイナミックレンジ計算部で算出された対応するダイナミックレンジに応じて量子化する量子化部と、
を備えたことを特徴とする撮像装置。
【請求項2】
前記圧縮部が出力する前記圧縮画像データは、前記ブロックタイプ選択部により選択された前記ブロックタイプを識別するためのパターン識別情報と、当該ブロックタイプにおける前記各量子化対象領域のダイナミックレンジを示す情報と、当該量子化対象領域ごとの画素データの最小値と、前記量子化部から出力される画素ごとの量子化データとを含むことを特徴とする請求項1記載の撮像装置。
【請求項3】
前記量子化部は、前記ブロックタイプにおけるそれぞれの前記量子化対象領域のデータに対して、同じ量子化語長により量子化を行い、前記ブロックごとの前記圧縮画像データが固定長とされたことを特徴とする請求項2記載の撮像装置。
【請求項4】
前記量子化部は、量子化ステップを2のべき乗として、前記量子化対象領域のそれぞれに対応するダイナミックレンジに応じたけた数だけ下位にシフトする右シフタにより構成され、
前記圧縮画像データには、前記量子化対象領域のダイナミックレンジを示す情報として、前記右シフタでのシフト量が含められることを特徴とする請求項2記載の撮像装置。
【請求項5】
前記伸張部は、前記圧縮画像データ内の前記シフト量の分だけ、対応する前記量子化対象領域の前記量子化データを左シフタによって上位にシフトすることで逆量子化し、逆量子化されたデータに対して、対応する前記量子化対象領域における画素データの最小値を加算することで、画素データを伸張することを特徴とする請求項4記載の撮像装置。
【請求項6】
前記ブロックは、撮像画像上の矩形領域に含まれる画素データからなることを特徴とする請求項1記載の撮像装置。
【請求項7】
すべての前記ブロックタイプの前記ブロックにおいて、前記量子化対象領域は垂直方向に沿った分割線により分割されることを特徴とする請求項6記載の撮像装置。
【請求項8】
前記ブロックタイプとして、2つの前記量子化対象領域を持つ第1のブロックタイプに加えて、前記ブロック全体の画素からなる1つの前記量子化対象領域のみを持つ第2のブロックタイプが定義され、
前記ブロックタイプ選択部は、2つの前記量子化対象領域におけるダイナミックレンジを加算した、前記第1のブロックタイプに対応する前記加算値と、前記第2のブロックタイプに対応する1つの前記量子化対象領域におけるダイナミックレンジとを、それぞれ正規化した値によって比較を行い、その中で最も値が小さい前記ブロックタイプを選択することを特徴とする請求項1記載の撮像装置。
【請求項9】
前記ブロックタイプ選択部は、前記第1のブロックタイプに対応する前記加算値と、前記第2のブロックタイプに対応するダイナミックレンジとを比較する際に、前記第2のブロックタイプについては、当該第2のブロックタイプに対応するダイナミックレンジを正規化した値より小さな値を比較対象とすることを特徴とする請求項8記載の撮像装置。
【請求項10】
前記量子化部は、前記ブロックタイプ選択部により前記第2のブロックタイプが選択されたとき、前記第1のブロックタイプが選択された場合より、前記量子化対象領域のデータの量子化語長を大きくすることを特徴とする請求項9記載の撮像装置。
【請求項11】
前記ブロックタイプ選択部は、前記第1のブロックタイプ内の2つの前記量子化対象領域のダイナミックレンジを加算した前記加算値と、前記第2のブロックタイプ内の1つの前記量子化対象領域のダイナミックレンジとを比較して、それらの値が最も小さい前記ブロックタイプを選択することを特徴とする請求項9記載の撮像装置。
【請求項12】
前記ブロックは、撮像画像上の矩形領域内の6画素×2ラインの12画素からなり、
前記第1のブロックタイプとして、少なくとも、ライン先頭側からの2画素×2ラインによる前記量子化対象領域とその次の4画素×2ラインによる前記量子化対象領域とからなるタイプと、ライン先頭側からの4画素×2ラインによる前記量子化対象領域とその次の2画素×2ラインによる前記量子化対象領域とからなるタイプと、3画素×2ラインによる2つの前記量子化対象領域からなるタイプとが定義され、
前記量子化部は、入力される画素ごとのデータが10ビットのとき、前記第1のブロックタイプにおける前記量子化対象領域のデータをそれぞれ量子化語長3ビットで量子化し、前記第2のブロックタイプにおける前記量子化対象領域のデータを量子化語長4ビットで量子化する、
ことを特徴とする請求項11記載の撮像装置。
【請求項13】
前記ダイナミックレンジ計算部は、前記量子化対象領域におけるダイナミックレンジを、当該量子化対象領域内の画素データの最大値と最小値との差分値として計算することを特徴とする請求項1記載の撮像装置。
【請求項14】
前記圧縮部の前段には、入力された画像データに対して、人間の視感度特性に応じて階調を変換した後、そのビット数を削減して前記圧縮部に供給する前圧縮部が設けられ、
前記伸張部の後段には、前記伸張部により伸張された画素データを、前記前圧縮部と逆の手順で伸張する後伸張部が設けられたことを特徴とする請求項1記載の撮像装置。
【請求項15】
前記圧縮部、前記伸張部および前記信号処理部は、共通のバスを通じて前記メモリに接続され、前記圧縮部からの前記圧縮画像データは前記バスを介して前記メモリに書き込まれた後、前記バスを介して前記伸張部に供給され、前記伸張部により伸張された画像データは、前記バスを介さずに直接、前記信号処理部に入力されることを特徴とする請求項1記載の撮像装置。
【請求項16】
画像を撮像するための撮像回路において、
入射光を電気信号に変換する固体撮像素子と、
前記固体撮像素子による撮像信号をデジタル変換するデジタル変換回路と、
前記デジタル変換回路からの画像信号を、隣接する一定数の同色成分画素からなるブロックを単位として圧縮する圧縮回路と、
が同一のチップ上に形成された構造を有し、
前記圧縮回路は、
互いに隣接した1つ以上の画素からなる2つの量子化対象領域によって前記ブロック内の画素が分割され、かつ、2つの前記量子化対象領域の境界位置が互いに異なるように、複数のブロックタイプがあらかじめ定義されており、前記ブロックタイプのすべての前記量子化対象領域における画素データのダイナミックレンジを計算するダイナミックレンジ計算部と、
前記ダイナミックレンジ計算部による計算結果を基に、前記各ブロックタイプ内の前記量子化対象領域におけるダイナミックレンジを加算した加算値を、前記ブロックタイプごとに計算し、前記加算値が最も小さい前記ブロックタイプを選択するブロックタイプ選択部と、
前記ブロックタイプ選択部により選択された前記ブロックタイプにおける前記量子化対象領域ごとに、当該量子化対象領域に含まれる画素データから当該量子化対象領域における画素データの最小値を減算した値を、前記ダイナミックレンジ計算部で算出された対応するダイナミックレンジに応じて量子化する量子化部と、
を備えたことを特徴とする撮像回路。
【請求項17】
固体撮像素子を用いて画像を撮像する撮像方法において、
圧縮部が、前記固体撮像素子での撮像により得られた画像データを、隣接する一定数の同色成分画素からなるブロックを単位として圧縮し、圧縮画像データをメモリに一時的に格納する圧縮ステップと、
伸張部が、前記メモリから読み出した前記圧縮画像データを伸張する伸張ステップと、
信号処理部が、前記伸張部により伸張された画像データに対して画質補正処理を施す画質補正ステップと、
を有し、
前記圧縮ステップは、
互いに隣接した1つ以上の画素からなる2つの量子化対象領域によって前記ブロック内の画素が分割され、かつ、2つの前記量子化対象領域の境界位置が互いに異なるように、複数のブロックタイプがあらかじめ定義されており、前記ブロックタイプのすべての前記量子化対象領域における画素データのダイナミックレンジを計算するダイナミックレンジ計算ステップと、
前記ダイナミックレンジ計算ステップでの計算結果を基に、前記各ブロックタイプ内の前記量子化対象領域におけるダイナミックレンジを加算した加算値を、前記ブロックタイプごとに計算し、前記加算値が最も小さい前記ブロックタイプを選択するブロックタイプ選択ステップと、
前記ブロックタイプ選択ステップで選択された前記ブロックタイプにおける前記量子化対象領域ごとに、当該量子化対象領域に含まれる画素データから当該量子化対象領域における画素データの最小値を減算した値を、前記ダイナミックレンジ計算部で算出された対応するダイナミックレンジに応じて量子化する量子化処理ステップと、
を含むことを特徴とする撮像方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2008−294689(P2008−294689A)
【公開日】平成20年12月4日(2008.12.4)
【国際特許分類】
【出願番号】特願2007−137387(P2007−137387)
【出願日】平成19年5月24日(2007.5.24)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成20年12月4日(2008.12.4)
【国際特許分類】
【出願日】平成19年5月24日(2007.5.24)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]