以下、図面を参照して、本発明の実施の形態を詳細に説明する。なお、ここでは、本発明を静止画像の撮影を行うデジタルカメラに適用した場合の形態例について説明する。
(第1の実施の形態)
図1に、第1の実施の形態に係るデジタルカメラ10の概略構成を示したブロック図を示す。
同図に示されるように、デジタルカメラ10は、デジタルカメラ10の全体の制御を司るCPU(中央処理装置)12を備えており、CPU12は撮像部14と接続されている。
撮像部14は、複数枚のレンズを有し焦点距離の変更(変倍)が可能なズームレンズとして構成されたレンズ部16を備えており、該レンズ部16により、被写体像が結像される。
レンズ部16の光軸後方には、固体撮像素子であるCCDエリアセンサ18が設けられている。CCDエリアセンサ18は、レンズ部16で結像された被写体像を示す光信号を光電変換し、アナログ信号として出力する。
ここで、本実施の形態に係るCCDエリアセンサ18の構造について説明する。CCDエリアセンサ18には、図2に示すようなハニカムCCDを採用することができる。
このCCDエリアセンサ18は、受光素子として複数の主感光部PD1を備えている。主感光部PD1は、所定の配列ピッチ(水平配列ピッチ=Ph(μm)、垂直配列ピッチ=Pv(μm))で、隣接する主感光部PD1と垂直方向及び水平方向にずらされて2次元配置される。また、CCDエリアセンサ18は、垂直転送電極VELと水平転送電極HELとを備えている。垂直転送電極VELは、主感光部PD1の前面に形成された開口部APを迂回するように配置され、かつ主感光部PD1からの信号(電荷)を取り出して垂直方向に転送する。水平転送電極HELは、垂直方向最下に位置する垂直転送電極VELの垂直方向下側に配置され、垂直転送電極VELから転送されてきた信号を外部へ転送する。なお、同図に示す例では、開口部APを八角形のハニカム形状に形成している。
ここで、水平方向に直線状に並んで配置された複数の垂直転送電極VELにより構成される垂直転送電極群には、各々垂直転送駆動信号V1、V2、・・・、V8の何れか1つを同時に印加することができるように構成されている。なお、同図に示す例では、1段目の垂直転送電極群に対して垂直転送駆動信号V3が、2段目の垂直転送電極群に対して垂直転送駆動信号V4が、3段目の垂直転送電極群に対して垂直転送駆動信号V5が、4段目の垂直転送電極群に対して垂直転送駆動信号V6が、5段目の垂直転送電極群に対して垂直転送駆動信号V7が、6段目の垂直転送電極群に対して垂直転送駆動信号V8が、7段目の垂直転送電極群に対して垂直転送駆動信号V1が、8段目の垂直転送電極群に対して垂直転送駆動信号V2が、各々印加できるように構成されている。
また、各主感光部PD1は、隣接する1つの垂直転送電極VELに対し転送ゲートTGを介して電気的に接続されるように構成されている。同図に示す例では、各主感光部PD1が右下に隣接する垂直転送電極VELに転送ゲートTGを介して接続されるように構成されている。
CCDエリアセンサ18は、更に、上述の主感光部PD1に比して露光量に対して低感度の受光素子である従感光部PD2を備えている。なお、主感光部PD1と従感光部PD2とは、一組の画素を構成する。従感光部PD2は図2に示される如く、複数の主感光部PD1間に設けられ、従感光部PD2は、隣接する1つの垂直転送電極VELに対して転送ゲートTGにより電気的に接続されている。なお、従感光部PD2の転送ゲートTGが接続される電極は、隣接する主感光部PD1の転送ゲートTGが接続される電極とは異ならせて設けられている。また、従感光部PD2も主感光部PD1と同様に開口部APが形成されている。従感光部PD2の開口部APは、主感光部PD1の開口部より面積が小さい。このため、従感光部PD2は、主感光部PD1に比して低感度となる。
次に、図3に、露光量に対する主感光部PD1と従感光部PD2の感度の状態を表すグラフの一例を示す。
図3の線Aが露光量に対する主感光部PD1の感度を示し、図3の線Bが露光量に対する従感光部PD2の感度を示す。主感光部PD1は、従感光部PD2に比べ露光量に対する感度が高く、信号範囲mも広く露光量が少ない場合でも高い信号レベルを出力する。しかし、この反面、主感光部PD1は、従感光部PD2に比べ低い露光量で信号レベルが飽和に達する。一方、従感光部PD2は、主感光部PD1に比べ信号範囲nが狭く同じ露光量に対する信号レベルは低いが、比較的高い露光量に達するまで信号レベルが飽和することはない。すなわち、主感光部PD1は、明暗の差が比較的小さい被写体を撮影するのに適し、従感光部PD2は、明暗の差が比較的大きい被写体を撮影するのに適している。そのため、主感光部PD1と従感光部PD2とにより得られた信号レベルを組み合わせて用いることにより、CCDエリアセンサ18は、主感光部PD1のみで構成される場合に比べ、広いダイナミックレンジを実現することができる。
なお、このように主感光部PD1の信号範囲mと従感光部PD2の信号範囲nは、異なっているため、主感光部PD1で得られる画素情報のビット数と従感光部PD2で得られる画素情報のビット数も異なり、主感光部PD1で得られる画素情報のビット数は従感光部PD2で得られる画素情報のビット数よりも多くなる。以下、本実施の形態では、一例として主感光部PD1の画素情報のビット数を14ビットとし、従感光部PD2の画素情報のビット数を12ビットとして説明する。
図1に示されるように、CCDエリアセンサ18の出力端はアナログ信号処理部20と接続されており、CCDエリアセンサ18が光電変換により生成した被写体像を示すアナログ信号は、アナログ信号処理部20へ送信される。
アナログ信号処理部20は、図示しない相関二重サンプリング回路(以下、「CDS」という。)を含んで構成されている。CDSによる相関二重サンプリング処理は、CCDエリアセンサ18の出力信号に含まれるノイズ等を軽減することを目的として、CCDエリアセンサ18の1画素毎の出力信号に含まれるフィードスルー成分レベルと画素信号成分レベルとの差をとることにより正確な画素情報を得る処理である。アナログ信号処理部20の出力端はアナログ/デジタル変換器(以下、「ADC」という。)22の入力端に接続されている。CDSにより相関二重サンプリング処理が行われたアナログ信号は、ADC22に送信される。
ADC22は、送信されたアナログ信号をデジタル信号である画像情報に変換するものであり、その出力端はデジタル信号処理部24の入力端に接続されている。
デジタル信号処理部24は、所定容量のラインバッファを内蔵し、かつ入力された画像情報を後述する内部メモリ32の所定領域に直接記憶させる制御を行うと共に、画像情報に対して各種の画像処理を行う。なお、本実施の形態に係るデジタルカメラ10には、画像処理を全く行わない生のデータである所謂CCD−RAWデータの形式で画像情報を記憶する機能が備えられており、当該機能を実行する場合、デジタル信号処理部24は、ADC22から入力されてくる画像情報に対してなんら画像処理を行わない。
また、CPU12はシステムバス26を介して、メモリ制御部28、主感光部用圧縮・伸張処理部30A、従感光部用圧縮・伸張処理部30Bと接続されている。
メモリ制御部28は、内部メモリ32や外部メモリ34に対するアクセスの制御を行う。また、メモリ制御部28は、主・従判別部36を備える。
主・従判別部36は、CCD−RAWデータを構成する各画素情報に対して、主感光部PD1又は従感光部PD2の何れで取得されたものであるかを判別する。具体的には、CCDエリアセンサ18は主感光部PD1と従感光部PD2との配列状態は既知であるため、この配列状態に応じてCCDエリアセンサ18から出力された画素情報を振り分ける。
また、内部メモリ32は、主として撮像により取得された画像情報を一時的に記憶する。なお、当該画像情報には、デジタル信号処理部24でデジタル信号処理された後の画像情報、CCD−RAWデータ、CCD−RAWデータを可逆圧縮した後の画像情報等が含まれる。また、デジタルカメラ10の制御に係る種々のデータも記憶される。
更に、外部メモリ34は、撮影によって得られた画像情報を記憶する可搬式の不揮発性記憶媒体である。
一方、主感光部用圧縮・伸張処理部30Aは、主感光部PD1で取得されたCCD−RAWデータである主CCD−RAWデータに対して、主CCD−RAWデータを構成する画素情報のビット数(本実施の形態では14ビット)に応じた圧縮・伸張処理を行う。また、従感光部用圧縮・伸張処理部30Bは、従感光部PD2で取得されたCCD−RAWデータである従CCD−RAWデータに対して、従CCD−RAWデータを構成する画素情報のビット数(本実施の形態では12ビット)に応じた圧縮・伸張処理を行う。
なお、主感光部用圧縮・伸張処理部30AはDPCM変換部40A、ハフマン符号・復号部42Aを備え、又従感光部用圧縮・伸張処理部30BはDPCM変換部40B、ハフマン符号・復号部42Bを備えている。
DPCM変換部40A、Bは、CCD−RAWデータをDPCM変換する一方、DPCM変換されたCCD−RAWデータを逆DPCM変換し、DPCM変換される前のCCD−RAWデータに戻す。
ここで、CCD−RAWデータに対するDPCM変換について図4を参照して説明する。
DPCM変換は、変換対象となる画素情報(図4(A)に示す例では‘x’であり、以下「変換対象画素情報」という。)をその隣接する画素の画素情報(一例として図4(A)のa、b、c)から予測して予測値を得、この予測値と実際の画素情報との誤差(差分値)に変換対象となる画素情報を変換する。従って前記誤差が小さいほど変換後の値は小さくなり、DPCM変換後に行われる、後述するハフマン符号化により高い圧縮効率を得ることが可能となる。
また、図4(A)の変換対象画像情報xを、単純に、画素情報xから画素情報cの値を除算した値(差分値)に変換することとしても良い。
ここで、本実施の形態の場合に係るCCDエリアセンサ18は、図2に示されるように主感光部PD1と従感光部PD2とが交互に配列されている。そのため、CCD−RAWデータは、一例として図4(B)に示されるように、主感光部PD1に対応する画素情報列A、B、C・・・と、従感光部PD2に対応する画素情報列A2、B2、C2・・・とが交互に配列された構造となる。そして、このままDPCM変換すると、図3からも明らかなように、主感光部PD1の画素情報と従感光部PD2の画素情報との信号レベルの差が全露光量範囲にわたって大きいため、変換対象画素情報の差分値が大きくなってしまい、この差分値で変換対象画素情報を変換したとしても、その後のハフマン符号化において高い圧縮効率を得ることが困難となる。
そこで、本実施の形態に係るデジタルカメラ10では、前述の主・従判別部36で、CCD−RAWデータを構成する各画素情報に対して、主感光部PD1又は従感光部PD2の何れで取得されたものであるかを判別する。そして、図4(C)に示されるように主感光部PD1で取得された画素情報を主CCD−RAWデータとし、図4(D)に示されるように従感光部PD2で取得された画素情報を従CCD−RAWデータとして各々内部メモリ32に記憶する。
そして、主感光部用圧縮・伸張処理部30Aに備えられたDPCM変換部40Aは主CCD−RAWデータに対してDPCM変換し、従感光部用圧縮・伸張処理部30Bに備えられたDPCM変換部40Bは従CCD−RAWデータに対してDPCM変換する。
なお、DPCM変換部40A、Bは、以上のようなDPCM変換の他、逆DPCM変換も行う。逆DPCM変換は、DPCM変換の逆の処理を行うことによって、DPCM変換されたCCD−RAWデータをDPCM変換前のCCD−RAWデータに戻す処理である。
更に、主感光部用圧縮・伸張処理部30Aに備えられたハフマン符号・復号部42A、従感光部用圧縮・伸張処理部30Bに備えられたハフマン符号・復号部42Bは、DPCM変換後のCCD−RAWデータをハフマン符号化することによりCCD−RAWデータを可逆圧縮する。なお、ここでいうハフマン符号化とは、DPCM変換により各画素情報を変換した差分値の発生頻度に基づいて、各画素情報に最適符号(ハフマン符号)を割り当てる処理をいう。
また、ハフマン符号・復号部42A、Bは、このようなハフマン符号化に加え、ハフマン復号化も行える。なお、ハフマン復号化は、ハフマン符号化されたCCD−RAWデータをハフマン符号化前のCCD−RAWデータに戻す処理である。
ここで、本実施の形態に係るハフマン符号化に関して、詳細に説明する。
CCD−RAWデータを可逆圧縮する場合には、まずCCD−RAWデータをDPCM変換し、変換後の画素情報(差分値)を図5に示すように複数のグループに分ける。例えば、グループ0は差分値が0であるグループであり、グループ1は差分値が−1,1のグループであり、グループ2は差分値が−3,−2,2,3のグループであり、最後のグループ14は差分値が−16383〜−8192の範囲内と8192〜16383の範囲内のグループである。このように、本実施の形態に係るハフマン符号・復号部42Aでは、14ビットのデータである主CCD−RAWデータが差分値のビット数に応じて15のグループに分けられる。
そして、このグループ毎に差分値の発生頻度を求め、発生頻度の高いグループ順に情報量の少ない(短い)符号すなわちハフマン符号を割り当てる。例えば、グループ0の差分値の発生頻度が最も高く、グループ番号が大きくなるに連れて発生頻度が低くなる場合は、グループ0にハフマン符号として00、グループ1に010、グループ2に011、グループ14に1111111111110を割り当てる。なお、各グループ内の差分値の区別は付加ビットにより行う。例えばグループ1の場合は−1か1を区別するのに付加ビットとして1ビットあれば良く、同様にグループ2は−3,−2,2,3を区別するために付加ビットとして2ビット、グループ14は付加ビットとして14ビットあれば良い。
このようにして、ハフマン符号・復号部42Aは、主CCD−RAWデータの差分値の発生頻度が高いグループ順に短い符号を割り当てたハフマンテーブルを作成し、当該ハフマンテーブルを用いて主CCD−RAWデータを可逆圧縮する。
ここで、主CCD−RAWデータをDPCM変換することで得られた差分値を、グループ0からグループ14に分けたときの発生頻度を各色別(R、G、B)に統計的に表した一例を図6(A)に示す。図6(A)では、グループ0からグループ7までの範囲内においてグループ番号が大きくなるに従って発生頻度が高くなり、グループ8の発生頻度が最も高く、グループ9からグループ14までの範囲内においてグループ番号が大きくなるに従って発生頻度が低くなる。
ところで、従CCD−RAWデータをDPCM変換することで得られる差分値の発生頻度も主CCD−RAWデータと同じような傾向があると考えられる。これは、主感光部PD1と従感光部PD2とは、図2に示されるように交互に配置されており、隣り合う主感光部PD1と従感光部PD2とは、同一受光面積当たりの露光量は略同じであると考えられるためである。
ここで、本実施の形態に係る従CCD−RAWデータは12ビットであるため、本実施の形態に係るデジタルカメラ10では、主CCD−RAWデータの画素情報の差分値をビット数毎に分けたグループのうち、下位2ビット分のグループ(グループ0とグループ1)を削除した残りの12ビット分を、従CCD−RAWデータのグループとみなす。図6(B)は、図6(A)のグループ0とグループ1とを削除し、主CCD−RAWデータのグループ2からグループ14を従CCD−RAWデータのグループ0からグループ12とした図である。
このように、主CCD−RAWデータを構成する差分値の発生頻度に基づいて、従CCD−RAWデータを構成する差分値の発生頻度を求めることができため、ハフマン符号・復号部42Bは、主用ハフマンテーブルに基づいて従用ハフマンテーブルを作成し、従CCD−RAWデータをハフマン符号化する。
なお、作成された主用ハフマンテーブルは内部メモリ32の主用ハフマンテーブル記憶部44Aに記憶され、従用ハフマンテーブルは内部メモリ32の従用ハフマンテーブル記憶部44Bに記憶される。
次に、本実施の形態に係るデジタルカメラ10の作用を説明する。
まず、図7を参照して、本実施の形態に係るデジタルカメラ10によりCCD−RAWデータを圧縮処理する際の流れを簡単に説明する。
図7に示されるように、主感光部PD1と従感光部PD2とで取得されたCCD−RAWデータは、主・従判別部36で、主CCD−RAWデータと従CCD−RAWデータとに分けられる。そして、14ビットである主CCD−RAWデータに対応した主用ハフマンテーブルを用いて主CCD−RAWデータの圧縮処理を行い、それと並列して、12ビットである従CCD−RAWデータに対応した従用ハフマンテーブルを用いて従CCD−RAWデータの圧縮処理を行う。
図8は、主用ハフマンテーブルから従用ハフマンテーブルを作成する場合の説明に供する図である。なお、図8は、図6(A)に示される主CCD−RAWデータを構成する画素情報の差分値の発生頻度に対応している。
図8の「主CCD−RAWデータにおける発生頻度順位」は、図6(A)に示される差分値の発生頻度から求められる。また、図8の「従CCD−RAWデータにおける発生頻度順位」は、「主CCD−RAWデータにおける発生頻度順位」に基づいて図8の「従CCD−RAWデータの画素コードstep1」〜従CCD−RAWデータの画素コードstep3」により求められるものであり、この「従CCD−RAWデータにおける発生頻度順位」に対応したハフマン符号がグループ毎に割り当てられ従用ハフマンテーブルが作成される。
また、図8の「主CCD−RAWデータの画素情報コード」とは、主CCD−RAWデータのグループ毎に割り当てられるハフマン符号を略したものであり、ハフマン符号と略名との関係を図9に示す。図9によると、最も高い頻度で差分値が発生するグループ番号には、ハフマン符号として00が割り当てられ、このハフマン符号の略名をコード1とする。同様に、2番目に高い頻度で差分値が発生するグループ番号にはハフマン符号として010が割り当てられ、このハフマン符号の略名をコード2とする。最も低い頻度で差分値が発生するグループ番号にはハフマン符号として1111111111110が割り当てられ、このハフマン符号の略名をコード15とする。
ここで、図10にCCD−RAWデータ圧縮処理プログラムの処理の流れを示す。
図10は、デジタルカメラ10が被写体像を撮影することによって取得された画像情報をCCD−RAWデータとして記憶する際に、CPU12によって実行される処理の流れを示すフローチャートである。このフローに係るプログラムは、内部メモリ32の所定の領域に予め記憶されている。
まず、ステップ100で、主・従判別部36で判別され別々に内部メモリ32に記憶される、主CCD−RAWデータを主感光部用圧縮・伸張処理部30Aへ、従CCD−RAWデータを従感光部用圧縮・伸張処理部30Bへ、送信する。
次に、ステップ102で、主感光部用圧縮・伸張処理部30Aが備えるDPCM変換部40Aに対してDPCM変換処理の実行を指示する。この指示を受けて、DPCM変換部40Aは、主CCD−RAWデータに対してDPCM変換を実行する。
次に、ステップ104で、従感光部用圧縮・伸張処理部30Bが備えるDPCM変換部40Bに対してDPCM変換処理の実行を指示する。この指示を受けて、DPCM変換部40Bは、従CCD−RAWデータに対してDPCM変換を実行する。
次に、ステップ106で、主感光部用圧縮・伸張処理部30Aが備えるハフマン符号・復号部42Aに対して、主用ハフマンテーブルの作成処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42Aは、DPCM変換後の主CCD−RAWデータの画素情報(差分値)に基づいて主用ハフマンテーブルを作成する。なお、作成された主用ハフマンテーブルは、内部メモリ32の主用ハフマンテーブル記憶部44Aに記憶される。
次に、ステップ108で、主感光部用圧縮・伸張処理部30Aが備えるハフマン符号・復号部42Aに対して、ハフマン符号化処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42Aは、主用ハフマンテーブルを用いてDPCM変換された主CCD−RAWデータのハフマン符号化を実行し、可逆圧縮された主CCD−RAWデータを内部メモリ32又は、外部メモリ34に記憶させる。
次に、ステップ110で、従感光部用圧縮・伸張処理部30Bが備えるハフマン符号・復号部42Bに対して、従用ハフマンテーブルの作成処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42Bは、主用ハフマンテーブルに基づいて従用ハフマンテーブルを作成する。なお、作成された従用ハフマンテーブルは、内部メモリ32の従用ハフマンテーブル記憶部44Bに記憶される。
次に、ステップ112で、従感光部用圧縮・伸張処理部30Bが備えるハフマン符号・復号部42Bに対して、ハフマン符号化処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42Bは、従用ハフマンテーブルを用いてDPCM変換された従CCD−RAWデータのハフマン符号化を実行し、可逆圧縮された従CCD−RAWデータを内部メモリ32又は、外部メモリ34に記憶させる。その後、本プログラムを終了する。
なお、ステップ104は、ステップ102と平行して処理されるものとしてもよい。
また、ステップ110、112は、ステップ108と平行して処理されるものとしても良い。
次に、図11のフローチャートを用いて、主用ハフマンテーブルに基づいて従用ハフマンテーブルを作成する際に実行される従用ハフマンテーブル作成処理プログラムの処理の流れを説明する。なお、このプログラムは、CPU12の指示に従い、従感光部用圧縮・伸張処理部30Bが備えるハフマン符号・復号部42Bが実行するものとする。このフローに係るプログラムは、内部メモリ32の所定の領域に予め記憶されている。
まず、ステップ200において、主CCD−RAWデータのグループ2〜14のハフマン符号を示すコードを、従CCD−RAWデータのグループ0〜12のコードとして仮置きする。図8における「従CCD−RAWデータの画素情報コードstep1」に対応する。
次に、ステップ202で、仮置き符号の中に従用ハフマンテーブルに使用しないコード14があるか否かを判断する。従CCD−RAWデータは12ビットであるため、コード14を割り当てられるグループは存在しない。仮置き符号の中にコード14がある場合は、肯定と判断され、ステップ204へ移行する。一方、仮置き符号の中にコード14がない場合は、否定と判断され、ステップ214へ移行する。
ステップ204では、仮置き符号の中に従用ハフマンテーブルに使用しないコード15があるか否かを判断する。従CCD−RAWデータは12ビットであるため、コード15を割り当てられるグループは存在しない。仮置き符号の中にコード15がある場合は、肯定と判断され、ステップ206へ移行する。一方、仮置き符号の中にコード14がない場合は、否定と判断され、ステップ222へ移行する。
ステップ206では、コード1〜13のうち、仮置き符号の中に使用されていないコードをコードN、M(N<M)として選出する。図8における「従CCD−RAWデータの画素情報コードstep1」では、コード10とコード11とが使用されていないため、N=10、M=11として選出する。
次に、ステップ208で、仮置き符号の中のコード14をコード12に、コード15をコード13に置き換える。前述のように、コード14とコード15とは使用しないコード番号であるためである。図8においては、「従CCD−RAWデータの画素情報コードstep2」に対応する。
次に、ステップ210で、ステップ208において置き換えたコード以外で、コード(N+1)以上且つコードM未満のコードを全てコード番号から1を除算したコード番号に置き換える。図8においては、コード12以上且つコード12未満のコードが対象となるが、そのようなコードは存在しない。そのため、このステップによるコードの置き換えはない。
次に、ステップ212で、ステップ208において置き換えたコード以外で、コード(M+1)以上のコードを全てコード番号から2を除算したコードに置き換える。図8においては、コード12以上のコードが対象となる。すなわち、「従CCD−RAWデータの画素情報コードstep2」において、グループ9、10のコードがその対象となる。そこで、グループ9のコード12をコード10へ、グループ10のコード13をコード11へ置き換える。その結果が図8の「従CCD−RAWデータの画素情報コードstep3」であり、以上の処理により、従CCD−RAWデータのグループ毎にコードすなわちハフマン符号が割り当てられ、従用ハフマンテーブル作成処理プログラムを終了する。
また、ステップ214は、ステップ202において仮置き符号の中にコード14がないと判断された場合であり、さらに仮置き符号の中に従用ハフマンテーブルに使用しないコード15があるか否かを判断する。仮置き符号の中にコード15がある場合は、肯定と判断され、ステップ216へ移行する。一方、仮置き符号の中にコード15がない場合は、否定と判断され、コードの置き換えをする必要が無いため、従用ハフマンテーブル作成処理プログラムを終了する。
ステップ216では、コード1〜13のうち、仮置き符号の中に使用されていないコードをコードNとして選出する。
次に、ステップ218で、仮置き符号の中のコード15をコード13に置き換える。
次に、ステップ220で、ステップ218において置き換えたコード以外で、コード(N+1)以上のコードを全てコード番号から1を除算したコード番号に置き換える。以上の処理により、従CCD−RAWデータのグループ毎にコードすなわちハフマン符号が割り当てられ、従用ハフマンテーブル作成処理プログラムを終了する。
また、ステップ222は、ステップ204において仮置き符号の中にコード15がないと判断された場合であり、コード1〜13のうち、仮置き符号の中に使用されていないコードをコードNとして選出する。
次に、ステップ224で、仮置き符号の中のコード14をコード13に置き換える。
次に、ステップ226で、ステップ224において置き換えたコード以外で、コード(N+1)以上のコードを全てコード番号から1を除算したコード番号に置き換える。以上の処理により、従CCD−RAWデータのグループ毎にコードすなわちハフマン符号が割り当てられ、従用ハフマンテーブル作成処理プログラムを終了する。
次に、図12のフローチャートを用いて、図10に示されるCCD−RAWデータ圧縮処理プログラムで可逆圧縮されたCCD−RAWデータを伸張する際に、CPU12によって実行される可逆圧縮CCD−RAWデータ伸張処理プログラムの処理の流れを説明する。このフローに係るプログラムは内部メモリ32の所定の領域に予め記憶されている。
まず、ステップ300で、内部メモリ32又は外部メモリ34から、可逆圧縮主CCD−RAWデータを主感光部用圧縮・伸張処理部30Aへ、可逆圧縮従CCD−RAWデータを従感光部用圧縮・伸張処理部30Bへ、送信する。
次に、ステップ302で、主感光部用圧縮・伸張処理部30Aが備えるハフマン符号・復号部42Aに対して、ハフマン復号化処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42Aは、可逆圧縮主CCD−RAWデータに対して、主用ハフマンテーブル記憶部44に記憶されている主用ハフマンテーブルを用いてハフマン復号化を実行する。これにより、可逆圧縮主CCD−RAWデータは、DPCM変換された主CCD−RAWデータの状態となる。
次に、ステップ304で、DPCM変換部40Aに対して逆DPCM変換処理の実行を指示する。この指示を受けて、DPCM変換部40Aは、DPCM変換された状態の主CCD−RAWデータに対して逆DPCM変換を実行し、可逆圧縮主CCD−RAWデータの伸張を完了させ、伸張された主CCD−RAWデータを内部メモリ32又は外部メモリ34に記憶させる。
次に、ステップ306で、ハフマン符号・復号部42Bに対して、ハフマン復号化処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42Bは、可逆圧縮された従CCD−RAWデータに対して、従用ハフマンテーブル記憶部44に記憶されている従用ハフマンテーブルを用いてハフマン復号化を実行する。これにより、従CCD−RAWデータは、DPCM変換後の状態となる。
次に、ステップ308で、DPCM変換部40Bに対して逆DPCM変換処理の実行を指示する。この指示を受けて、DPCM変換部40Bは、DPCM変換された状態の従CCD−RAWデータに対して逆DPCM変換を実行し、可逆圧縮従CCD−RAWデータの伸張を完了させ、伸張された従CCD−RAWデータを内部メモリ32又は外部メモリ34に記憶させ、本プログラムを終了する。
なお、ステップ306、308は、ステップ302、304と平行して処理されるものとしても良い。
以上説明したように、第1の実施の形態によれば、主感光部PD1により取得された主CCD−RAWデータ、及び従感光部PD2により取得された従CCD−RAWデータが各々個別に内部メモリ32に記憶される。そして、主感光部用圧縮・伸張処理部30Aのハフマン符号・復号部42Aが主CCD−RAWデータに対応した主用ハフマンテーブルを作成し、主感光部用圧縮・伸張処理部30Bのハフマン符号・復号部42Bが従CCD−RAWデータに対応した従用ハフマンテーブルを主用ハフマンテーブルに基づいて作成する。そして、主用ハフマンテーブルを用いて主CCD−RAWデータが可逆圧縮され、従用ハフマンテーブルを用いて従CCD−RAWデータが可逆圧縮される。
このように、主用ハフマンテーブルに基づいて従用ハフマンテーブルを作成するため、従CCD−RAWデータを構成する画素情報の差分値の統計を取る必要が無い。そのため、主CCD−RAWデータ、従CCD−RAWデータ各々の画素情報の差分値の統計をとる場合に比べ、ハフマンテーブルを簡易に作成することができる。さらに、主CCD−RAWデータ、従CCD−RAWデータの圧縮処理に要する時間を短くすることができる。
(第2の実施の形態)
第2の実施の形態では、デジタルカメラ10’が主用ハフマンテーブルと従用ハフマンテーブルとを同一の圧縮・伸張処理部で作成する場合の形態例について説明する。
まず、図13を参照して、第2の実施の形態に係るデジタルカメラ10’の構成を説明する。なお、図13における図1と同一の構成部分については図1と同一の符号を付して、その説明を省略する。
図13に示されるように、本実施の形態に係るデジタルカメラ10’は、圧縮・伸張処理部30を備える。
圧縮・伸張処理部30は処理切替部46、DPCM変換部40、ハフマン符号・復号部42を備えている。
処理切替部46は、圧縮・伸張処理部30に主CCD−RAWデータが送信されてきた場合には、主CCD−RAWデータを構成する画素情報のビット数が14ビットであるため、圧縮・伸張処理部30が14ビットに対応した処理を行うように切り替え、圧縮・伸張処理部30に従CCD−RAWデータが送信されてきた場合には、従CCD−RAWデータを構成する画素情報のビット数が12ビットであるため、圧縮・伸張処理部30が12ビットに対応した処理を行うように切り替える。
DPCM変換部40は、CCD−RAWデータをDPCM変換、及びDPCM変換されたCCD−RAWデータを逆DPCM変換する。
ハフマン符号・復号部42は、DPCM変換後のCCD−RAWデータをハフマン符号化することによりCCD−RAWデータを可逆圧縮する。また、可逆圧縮されたCCD−RAWデータをハフマン復号化する。
次に、第2の実施の形態に係るデジタルカメラ10’の作用を説明する。
図14は、第2の実施の形態に係るデジタルカメラ10’が被写体像を撮影することによって取得された画像情報をCCD−RAWデータとして記憶する際に、CPU12によって実行されるCCD−RAWデータ圧縮処理プログラムの処理の流れを示すフローチャートである。このフローに係るプログラムは、内部メモリ32の所定の領域に予め記憶されている。
まず、ステップ500で、主・従判別部36で判別され別々に内部メモリ32に記憶された主CCD−RAWデータを圧縮・伸張処理部30へ送信する。
次に、ステップ502で、DPCM変換部40に対してDPCM変換処理の実行を指示する。この指示を受けて、DPCM変換部40は、主CCD−RAWデータに対してDPCM変換を実行する。
次に、ステップ504で、ハフマン符号・復号部42に対して、主用ハフマンテーブルの作成処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42は、DPCM変換後の主CCD−RAWデータの画素情報(差分値)に基づいて主用ハフマンテーブルを作成する。なお、作成された主用ハフマンテーブルは、内部メモリ32の主用ハフマンテーブル記憶部44Aに記憶される。
次に、ステップ506で、ハフマン符号・復号部42に対して、ハフマン符号化処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42は、主用ハフマンテーブルを用いてDPCM変換された主CCD−RAWデータのハフマン符号化を実行し、可逆圧縮された主CCD−RAWデータを内部メモリ32又は、外部メモリ34に記憶させる。
次に、ステップ508で、処理切替部46に対して、処理の切り替えを指示する。この指示を受けて、処理切替部46は、圧縮・伸張処理部30を14ビットの画素情報に対応した処理から12ビットの画素情報に対応した処理に切り替える。
次に、ステップ510で、主・従判別部36で判別され別々に内部メモリ32に記憶された従CCD−RAWデータを圧縮・伸張処理部30へ送信する。
次に、ステップ512で、DPCM変換部40に対してDPCM変換処理の実行を指示する。この指示を受けて、DPCM変換部40は、従CCD−RAWデータに対してDPCM変換を実行する。
次に、ステップ514で、ハフマン符号・復号部42に対して、従用ハフマンテーブルの作成処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42は、主用ハフマンテーブルに基づいて従用ハフマンテーブルを作成する。なお、作成された従用ハフマンテーブルは、内部メモリ32の従用ハフマンテーブル記憶部44Bに記憶される。
次に、ステップ516で、ハフマン符号・復号部42に対して、ハフマン符号化処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42は、従用ハフマンテーブルを用いてDPCM変換された従CCD−RAWデータのハフマン符号化を実行し、可逆圧縮された従CCD−RAWデータを内部メモリ32又は、外部メモリ34に記憶させる。その後、本プログラムを終了する。
次に、図15のフローチャートを用いて、図14に示されるCCD−RAWデータ圧縮処理プログラムで可逆圧縮されたCCD−RAWデータを伸張する際に、CPU12によって実行される可逆圧縮CCD−RAWデータ伸張処理プログラムの処理の流れを説明する。このフローに係るプログラムは、内部メモリ32の所定の領域に予め記憶されている。
まず、ステップ600で、可逆圧縮された主CCD−RAWデータを圧縮・伸張処理部30へ送信する。
次に、ステップ602で、ハフマン符号・復号部42に対して、ハフマン復号化処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42は、可逆圧縮主CCD−RAWデータに対して、主用ハフマンテーブル記憶部44Aに記憶されている主用ハフマンテーブルを用いてハフマン復号化を実行する。これにより、主CCD−RAWデータは、DPCM変換された状態に戻される。
次に、ステップ604で、DPCM変換部40に対して逆DPCM変換処理の実行を指示する。この指示を受けて、DPCM変換部40は、DPCM変換された状態の主CCD−RAWデータに対して逆DPCM変換を実行し、可逆圧縮主CCD−RAWデータの伸張を完了させ、伸張された主CCD−RAWデータを内部メモリ32又は外部メモリ34に記憶させる。
次に、ステップ606で、処理切替部46に対して、処理の切り替えを指示する。この指示を受けて、処理切替部46は、圧縮・伸張処理部30を14ビットの画素情報に対応した処理から12ビットの画素情報に対応した処理に切り替える。
次に、ステップ608で、可逆圧縮された従CCD−RAWデータを圧縮・伸張処理部30へ送信する。
次に、ステップ610で、ハフマン符号・復号部42に対して、ハフマン復号化処理の実行を指示する。この指示を受けて、ハフマン符号・復号部42は、可逆圧縮従CCD−RAWデータに対して、従用ハフマンテーブル記憶部44Bに記憶されている従用ハフマンテーブルを用いてハフマン復号化を実行する。これにより、従CCD−RAWデータは、DPCM変換された状態に戻される。
次に、ステップ612で、DPCM変換部40に対して逆DPCM変換処理の実行を指示する。この指示を受けて、DPCM変換部40は、DPCM変換された従CCD−RAWデータに対して逆DPCM変換を実行し、可逆圧縮従CCD−RAWデータの伸張を完了させ、伸張された従CCD−RAWデータを内部メモリ32又は外部メモリ34に記憶させる。
以上説明したように、第2の実施の形態によれば、圧縮・伸張処理部30に処理切替部46を備えることで、異なるビット数の画像情報に応じた処理が可能となり、主CCD−RAWデータに対応した主用ハフマンテーブル及び従CCD−RAWデータに対応した従用ハフマンテーブルを作成するデジタルカメラ10’の構成を簡易にすることができる。
なお、上記各実施の形態では、CCDエリアセンサ18として、主感光部PD1と従感光部PD2とが交互に配列されているものを適用した場合について説明したが、一例として図16に示されるように、1つの受光素子PDの受光領域をチャネルストッパ94により高感度の受光を行う受光面積が広い高感度受光領域92、と低感度の受光を行う受光面積が狭い低感度受光領域90とに分割し、それぞれの領域により高感度信号及び低感度信号が得られるCCDエリアセンサ18を適用する形態としてもよい。なお、各受光素子PDにはチャネルストッパ94が設けられているため、高感度で受光された信号と低感度で受光された信号とが混合されずに、双方の信号を別々に受光することができる。
また、上記各実施の形態では、一つの主感光部PD1に対して一つの従感光部PD2が備えられている場合について説明したが、これに限らず、一つの主感光部PD1に対して複数の従感光部を備えるものとしても良い。複数の従感光部は、露光量に対して各々異なる感度を有するものとする。この場合、CCD−RAWデータは受光素子の種類別に内部メモリ32で記憶され、各CCD−RAWデータ別にハフマンテーブルが作成される。なお、CCDエリアセンサ18として、一例として図16で示されるものを適用したときも同様に複数の低感度受光領域90を備えるとしても良い。
さらに、上記各実施の形態では、CCDエリアセンサ18が主感光部PD1と従感光部PD2とで構成されているが、デジタルカメラ10が主感光部PD1だけで構成されているCCDエリアセンサと従感光部PD2だけで構成されているCCDエリアセンサを2種類備えるものとしても良い。
また、上記各実施の形態では、本発明の撮像手段としてCCDエリアセンサを適用した場合について説明したが、これに限らず、例えば、CMOSイメージセンサ等の他の個体撮像素子を適用しても良い。
また、上記各実施の形態では、圧縮処理の対象となる画像情報をCCD−RAWデータとして説明したが、これに限らず、デジタル信号処理部24で画像処理された画像情報を圧縮処理の対象としても良い。