以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における撮像装置の概略構成を示したブロック図である。図1に示した撮像装置1は、CPU10と、メモリ20と、CCD30と、撮像処理部40と、画像処理部50と、表示処理部60と、表示デバイス70と、データ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66と、を備えている。なお、撮像装置1は、撮影した画像データを記録する機能も有しているが、説明を容易にするため、以下の説明においては、撮影した画像データを表示する場合について説明する。また、図1においては、撮像装置1内の各構成要素(処理ブロック)間での画素データの受け渡しに係るデータバスであるメモリバスの接続のみを示している。
CPU10は、撮像装置1の全体の制御を行う制御装置である。
メモリ20は、撮像装置1内の各処理ブロックが処理する画素データを一時的に記憶する、例えば、DRAM(Dynamic Random Access Memory)などのメモリである。メモリ20には、撮像装置1内の各処理ブロックによる各処理段階の画素データが一時記憶される。
CCD30は、入射した被写体光を画像信号に変換する、例えば、ベイヤー配列の固体撮像素子である。CCD30は、被写体の画素信号を撮像処理部40に出力する。
撮像処理部40は、CCD30から入力された画素信号に対して、予め定められた信号処理を行った画像データを生成する。
画像処理部50は、撮像処理部40が生成した画像データに対して、撮像装置1における種々の画像処理を行った画像データを生成する。
表示処理部60は、画像処理部50によって画像処理された画像データを、表示デバイス70に応じた表示データに変換する。表示処理部60は、変換した表示データを表示デバイス70に出力する。
表示デバイス70は、表示データを表示する、例えば、液晶などの表示装置である。
本実施形態の撮像装置1では、CCD30によって撮像された被写体の画素信号を、撮像処理部40、画像処理部50、表示処理部60が順次処理し、表示デバイス70に表示させる。このとき、各処理段階の画像データは、メモリ20を介して各処理ブロック間で受け渡される。撮像装置1内のデータ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66とは、各処理段階の画像データの受け渡しに係る処理ブロックである。
データ変換部41および51は、前段の処理ブロック(図1に示した本実施形態においては、撮像処理部40または画像処理部50)から入力された画像データ内の各画素データを、予め定められた配置(パッキング)方法で、メモリバスの各ビットに配置する。データ変換部41および51の構成と、データ変換部41および51による画素データのパッキング方法に関する詳細な説明は、後述する。
出力DMA部45および55は、データ変換部41または51によってメモリバスの各ビットにパッキングされた画素データからなる画像データを、DMAアクセスによってメモリ20に書き込む(記憶させる)。
入力DMA部56および66は、メモリ20に記憶されている画像データをDMAアクセスによって読み出し、読み出した画像データを、データ逆変換部52または62に出力する。
データ逆変換部52および62は、入力DMA部56または66から入力された画像データに含まれる画素データを、予め定められた配置(パッキング)方法と逆の方法で元の画像データに戻し、後段の処理ブロック(図1に示した本実施形態においては、画像処理部50または表示処理部60)に出力する。データ逆変換部52および62の構成に関する詳細な説明は、後述する。
ここで、図1に示した撮像装置1における画像データの処理について説明する。撮像装置1における撮影動作では、以下のような手順で画像データの処理が行われる。
(手順1):まず、撮像処理部40は、CCD30によって撮像された被写体の画素信号に対して、予め定められた信号処理を行った画像データ(例えば、CCD30の画素の配列に応じた画像データ)を生成する。そして、生成した画像データを、データ変換部41および出力DMA部45を介して、メモリ20に転送して一時記憶する。
(手順2):続いて、画像処理部50は、メモリ20に一時記憶している画像データを、入力DMA部56およびデータ逆変換部52を介して読み出す。そして、画像処理部50は、読み出した画像データに対して記録用の画像処理や、表示用の画像処理を行った画像データ(例えば、RGBデータや、YC422点順次フォーマットのYCbCrデータ)を生成する。その後、生成した画像データを、再びデータ変換部51および出力DMA部55を介してメモリ20に転送して一時記憶する。
(手順3):続いて、表示処理部60は、画像処理部50によって表示用の画像処理がされた画像データや、別途、メモリ20に記憶しているOSD(On−Screen Display)表示用の画像データを、入力DMA部66およびデータ逆変換部62を介して読み出し、表示デバイス70に表示させる。
なお、撮像装置1が撮影した画像データを記録する場合には、画像データの記録処理を行う図示しない記録処理部が、画像処理部50によって記録用の画像処理がされた画像データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した記録用の画像データをメモリカードなどの図示しない画像データ記録部に記録する。また、撮像装置1に、例えば、音を入出力する機能を備えている場合には、音声処理を行う図示しない音声処理部が、撮影時の音声データを、図示しないデータ変換部および出力DMA部を介してメモリ20に記憶する。また、音声処理部が、メモリ20に記憶している音声データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した音声データに応じた音声を、スピーカーなどの図示しない音出力部に出力させる。
<第1の構成>
次に、撮像装置1内のデータ変換部について説明する。なお、上記に述べたように、データ変換部41とデータ変換部51とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ変換部41は、前段の撮像処理部40と後段の出力DMA部45との間に配置され、データ変換部51は、前段の撮画像処理部50と後段の出力DMA部55との間に配置されている。従って、データ変換部41とデータ変換部51とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ変換部41について説明する。
図2は、本実施形態の撮像装置1に備えた本第1の構成のデータ変換部41の概略構成を示したブロック図である。図2に示したように、データ変換部41は、パック領域1データ生成部411と、パック領域2データ生成部412と、データ結合部413と、を備えている。
なお、以下の説明においては、データ変換部41に、図15に示したような、16行×16列のベイヤー配列の画像データ(以下、「ベイヤーデータ」という)が入力され、ベイヤーデータ内の各画素データをパッキングする単位を4転送とし、4転送を1回のバースト転送の単位とする、すなわち、1バーストを画素データのパッキング単位とする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は11bitであり、メモリバスのバス幅(メモリバス幅)は32bitであるものとして説明する。なお、図15に示したベイヤーデータでは、各画素データの数字がCCD30内の画素の位置を表しており、数字の前の「R」,「G」,「B」がCCD30内の画素の色を表している。より具体的には、「R」がCCD30の赤色の画素の画素データ、「G」がCCD30の緑色の画素の画素データ、「B」がCCD30の青色の画素の画素データを表している。
データ変換部41は、撮像処理部40から入力された11bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitのパックデータを出力する。データ変換部41は、パッキング単位を、画素データの連続する各ビットをそのままメモリバス上の連続する各ビットに配置する22bitの領域(以下、「パック領域1」という)と、画素データが配置されずに残っているメモリバス上のビットに画素データの各ビットを分割して配置する10bitの領域(以下、「パック領域2」という)とに分けて、メモリバス上の各ビットに画素データの各ビットを配置する。
なお、データ変換部41におけるパック領域1に配置される画素データとパック領域2に配置される画素データとは、撮像処理部40から入力されるデータイネーブル信号に基づいて判別される。このデータイネーブル信号は、データ変換部41に入力された画素データが、CCD30の何色の画素のデータであるかを表す情報を含んでいる信号である。
パック領域1データ生成部411は、撮像処理部40から入力されたデータイネーブル信号に基づいて、パック領域1のデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに、2画素分の画素データを、例えば、メモリバスの下位ビットに対応した位置のビットから、順次配置する。そして、画素データを順次配置したメモリバス幅以下のビット数(図2においては、22bit)のパック領域1の画素データ(以下、「パック領域1データ」という)をデータ結合部413に出力する。なお、パック領域1データ生成部411は、画素データをメモリ20にバースト転送する際の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、パック領域1データを配置する。
パック領域2データ生成部412は、撮像処理部40から入力されたデータイネーブル信号に基づいて、パック領域2のデータバス(このデータバスもメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに、3画素分の画素データを配置する。そして、画素データを配置したメモリバス幅以下のビット数(図2においては、10bit)のパック領域2の画素データ(以下、「パック領域2データ」という)をデータ結合部413に出力する。なお、パック領域2データ生成部412は、予め定められた後述するパッキング方法に応じて、パック領域2データを配置する。
データ結合部413は、パック領域1データ生成部411から入力されたパック領域1データと、パック領域2データ生成部412から入力されたパック領域2データとを結合したパックデータを生成する。そして、データ結合部413は、生成したパックデータを順次、出力DMA部45に出力する。なお、データ結合部413内には、例えば、22bitのパック領域1データを一時的に保持するメモリ部を備え、撮像処理部40から入力されたデータイネーブル信号に基づいて、22bitのパック領域1データと、10bitのパック領域2データとのタイミングの整合をとって、32bitのパックデータを生成する。
次に、撮像装置1内のデータ逆変換部について説明する。なお、上記に述べたように、データ逆変換部52とデータ逆変換部62とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ逆変換部52は、前段の入力DMA部56と後段の画像処理部50との間に配置され、データ逆変換部62は、前段の入力DMA部66と後段の表示処理部60との間に配置されている。従って、データ逆変換部52とデータ逆変換部62とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ逆変換部52について説明する。
図3は、本実施形態の撮像装置1に備えた本第1の構成のデータ逆変換部52の概略構成を示したブロック図である。図3に示したように、データ逆変換部52は、データ分割部521と、パック領域1データ復元部522と、パック領域2データ復元部523と、データ選択部524と、を備えている。
なお、以下の説明においては、データ逆変換部52に、データ変換部41によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図15に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は11bitであり、メモリバス幅は32bitであるものとして説明する。
データ逆変換部52は、入力DMA部56から入力された32bitのパックデータの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した11bitの画素データを出力する。データ逆変換部52では、元の画素データの連続する各ビットがそのままメモリバス上の連続する各ビットに配置された22bitのパック領域1と、元の画素データの各ビットが分割してメモリバス上のビットに配置された10bitのパック領域2とに分けて、メモリバス上の各ビットのデータを、それぞれ元の画素データの各ビットに分配する。
なお、データ逆変換部52におけるパック領域1に配置された元の画素データとパック領域2に配置された元の画素データとは、画像処理部50から入力されるデータイネーブル信号に基づいて判別される。このデータイネーブル信号は、画像処理部50に出力する元の画素データが、CCD30の何色の画素のデータであるかを表す情報を含んでいる信号である。
データ分割部521は、パックデータをパック領域1データとパック領域2データとに分割する。そして、データ分割部521は、分割したパック領域1データ(図3においては、22bitのパック領域1データ)をパック領域1データ復元部522に、パック領域2データ(図3においては、10bitのパック領域2データ)をパック領域2データ復元部523に、それぞれ出力する。
パック領域1データ復元部522は、データ分割部521から入力されたパック領域1データの各ビットに順次配置された、2画素分の元の画素データを、例えば、パック領域1データの上位側のビット(図3においては、11bit)の画素データと、下位側のビット(図3においては、11bit)の画素データとに分割する。そして、分割したそれぞれの画素データを、データ選択部524に出力する。
パック領域2データ復元部523は、画像処理部50から入力されたデータイネーブル信号に基づいて、データ分割部521から入力されたパック領域2データの各ビットに配置された、3画素分の画素データをそれぞれの画素データに分割する。そして、分割したそれぞれの画素データ(図3においては、11bit)を、データ選択部524に出力する。
なお、パック領域2データ復元部523は、予め定められた後述するパッキング方法と逆の方法で、それぞれの画素データに分割する。なお、パック領域2データ復元部523内には、例えば、パッキング単位(4転送)分のパック領域2データを一時的に保持するメモリ部を備え、画像処理部50から入力されたデータイネーブル信号に基づいて、パック領域2データ内で分割して配置されている11bitの画素データを揃えて、データ選択部524に出力する。
データ選択部524は、画像処理部50から入力されたデータイネーブル信号に基づいて、パック領域1データ復元部522またはパック領域2データ復元部523から入力された画素データを順次選択し、データ逆変換部52が分割(アンパッキング)した元の画素データとして、画像処理部50に出力する。なお、データ選択部524内には、パック領域1データ復元部522およびパック領域2データ復元部523からそれぞれ入力された、11bitの画素データをそれぞれ一時的に保持するメモリ部を備え、画像処理部50から入力されたデータイネーブル信号に基づいて、画素データの出力タイミングの整合をとって、それぞれの画素データを順次、画像処理部50に出力する。
次に、画素データの配置(パッキング)方法について説明する。本実施形態の撮像装置1では、データ変換部41および51が入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部52および62が入力されたパックデータを元の画素データに戻す。なお、以下の説明においては、データ変換部41に、図15に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は11bitであり、メモリバス幅は32bitであるものとする。
なお、データ逆変換部52および62によるパックデータを元の画素データに戻す方法は、データ変換部41および51による画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
<第1のデータ配置方法>
図4は、本第1の構成のデータ変換部41における本第1のデータ配置方法(パッキング方法)を説明する図である。図4(a)は、パックデータ内の画素データの配置を示し、図4(b)は、パックデータ内のパック領域2の画素データの各ビットの配置を示している。
上記に述べたように、画像データは、通常、隣接する画素同士の方が画素データの変化量が小さい。このため、パックデータを構築する際には、バースト転送時にメモリバスの各ビットの変化量が最も小さくなるように、隣接する画素の画素データの同一ビットを、各転送におけるメモリバスの同一のビットに配置することが望ましい。
また、ベイヤー、RGB、またはYC422点順次など、画像処理部50が画像処理する際の画像のフォーマットによって、画像データ内の各画素データが表す色の情報が異なる。このため、パックデータを構築する際には、バースト転送時にメモリバスの各ビットの変化量が最も小さくなるように、同一色の画素データを、各転送におけるメモリバスの同一のビットに配置することが望ましい。
本第1のパッキング方法では、パック領域1データ生成部411が、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、パック領域1データを配置する。
また、パック領域2データ生成部412が、画素データが配置されずに残っているパックデータ内のパック領域2の連続する4転送間で、画素データがラスター順となるように、画素データの各ビットを詰めてパック領域2データを配置する。
より具体的には、パック領域1データ生成部411は、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」)を、図4(a)に示したように、1転送目に「R0」および「G1」、2転送目に「R2」および「G3」、3転送目に「R4」および「G5」、4転送目に「R6」および「G7」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
また、パック領域2データ生成部412は、ベイヤーデータ内の各画素データ(「R8」,「G9」,「R10」)を、図4(b)に示したように、1転送目に「R8」のビット[0]〜ビット[9]、2転送目に「R0」のビット[10]および「G9」のビット[0]〜ビット[8]、3転送目に「G9」のビット[9]〜ビット[10]および「R10」のビット[0]〜ビット[7]、4転送目に「R10」のビット[8]〜ビット[10]を、それぞれパック領域2のメモリバスの下位ビットから順次パッキングする。
なお、パック領域2内に画素データの全てのビットを配置することができない場合には、次の画素データ(例えば、ベイヤーデータ内の画素データ「G11」)をパッキングしない。これは、データ変換部41は、パッキング単位で各画素データをパッキングするため、「G11」の画素データの一部をパッキングすると、「G11」のデータがパッキング単位を跨いでしまうことになるためである。従って、画素データが配置されなかったパック領域2内のデータバスのビット(図4においては、4転送目のデータバスのビット[31]〜ビット[25])は、未使用ビットとする。なお、未使用ビットには、全て同じ値のデータ(例えば、全て“1”または全て“0”のデータ)を配置する構成とすることもできる。
このようにして、パックデータを生成することによって、本第1のパッキング方法では、各転送間での画素データのビット位置のずれが、メモリバス幅全体のうち、パック領域2のビットに限定される。さらに、本第1のパッキング方法では、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、パック領域1内の画素データを配置している。これにより、バースト転送時におけるメモリバスの各ビットの変化量を少なくすることができる。このことにより、本第1のパッキング方法では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法よりも、画像データの転送に係る消費電力を低減させることができる。
<第2のデータ配置方法>
図5は、本第1の構成のデータ変換部41における本第2のデータ配置方法(パッキング方法)を説明する図である。図5(a)は、パックデータ内の画素データの配置を示し、図5(b)は、パックデータ内のパック領域2の画素データの各ビットの配置を示している。
本第2のパッキング方法では、パック領域1データ生成部411が、第1のパッキング方法と同様に、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、パック領域1データを配置する。なお、第2のパッキング方法におけるパック領域1のパックデータの配置方法は、第1のパッキング方法と同様であるため、詳細な説明は省略する。
また、パック領域2データ生成部412が、画素データが配置されずに残っているパックデータ内のパック領域2内で、同一のビット位置を境界として画素データを分割する。そして、分割した画素データの隣接する同一色の画素データが、連続する2転送間でメモリバス上の同一ビットに配置されるように、パック領域2データを配置する。また、分割した残りのビットは、4転送目に配置する。
より具体的には、パック領域2データ生成部412は、ベイヤーデータ内の各画素データ(「R8」,「G9」,「R10」)を、図5(b)に示したように、1転送目に「R8」のビット[1]〜ビット[10]、2転送目に「R10」のビット[1]〜ビット[10]、3転送目に「G9」のビット[1]〜ビット[10]を、それぞれパック領域2のメモリバスの下位ビットから順次パッキングする。また、4転送目に「R8」のビット[0]、「G9」のビット[0]、「R10」のビット[0]を、それぞれパック領域2のメモリバスの下位ビットから順次パッキングする。
なお、パック領域2内に画素データの全てのビットを配置することができない場合においては、第1のパッキング方法と同様に、画素データが配置されなかったパック領域2内のデータバスのビット(図5においては、4転送目のデータバスのビット[31]〜ビット[25])は、未使用ビットとする。
このようにして、本第2のパッキング方法では、パック領域2においても、メモリバス上の同一ビットに各画素データの同一ビットを配置している(図5における1転送目〜3転送目参照)。また、隣接する同一色の画素データを、連続する2転送間に配置している(図5における1転送目および2転送目参照)。そして、1転送目〜3転送目に配置されなかった各画素データのビットを、4転送目に配置している。これにより、第1のパッキング方法よりもさらにバースト転送時におけるメモリバスの各ビットの変化量、特に、パック領域2の各ビットの変化量を少なくすることができる。このことにより、本第2のパッキング方法では、第1のパッキング方法よりもさらに、画像データの転送に係る消費電力を低減させることができる。
なお、図5に示した第2のパッキング方法では、パック領域2に各画素データを配置する際に、各画素データのビット[0]をまとめて配置している場合について説明したが、これは、パック領域2のメモリバス幅が10bitであり、画素データのビット数は11bitであるためである。すなわち、メモリバス上に画素データを配置するとき、1転送内のメモリバスに配置することができなかった各画素データの最下位の1bit(図5においては、各画素データのビット[0])を、4転送目にまとめて配置したのである。従って、1転送内のメモリバスに配置することができなかった各画素データが複数ビットある場合には、その複数ビットの各画素データを、4転送目にまとめて配置することになる。なお、4転送目にまとめて配置する各画素のビットは、下位ビットが望ましい。これは、画像データは、通常、画素データの下位ビットの方が、隣接する画素同士でも、例えば、撮像装置1内のノイズ成分によって値が異なることが予想されるためである。
<第3のデータ配置方法>
図6は、本第1の構成のデータ変換部41における本第3のデータ配置方法(パッキング方法)を説明する図である。図6(a)は、パックデータ内の画素データの配置を示し、図6(b)は、パックデータ内のパック領域2の画素データの各ビットの配置を示している。
本第3のパッキング方法では、パック領域1データ生成部411が、第1のパッキング方法および第2のパッキング方法と同様に、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、画素データを配置する。なお、第3のパッキング方法におけるパック領域1のパックデータの配置方法は、第1のパッキング方法および第2のパッキング方法と同様であるため、詳細な説明は省略する。
また、パック領域2データ生成部412が、第2のパッキング方法と同様に、画素データが配置されずに残っているパックデータ内のパック領域2内で、同一のビット位置を境界として画素データを分割して配置する。さらに、本第3のパッキング方法では、パック領域2データ生成部412が、パック領域2内の未使用ビットに、直前の1転送で配置した画素データと同一ビットの画素データを再度配置、すなわち、コピーして配置する。なお、第3のパッキング方法におけるパック領域2の未使用ビット以外のパックデータの配置方法は、第2のパッキング方法と同様であるため、詳細な説明は省略する。
ここで、パック領域2データ生成部412による未使用ビットの画素データの配置について、より具体的に説明する。パック領域2データ生成部412は、4転送目の未使用ビット(図6においては、4転送目のデータバスのビット[31]〜ビット[25])に、3転送目のデータバスのビット[31]〜ビット[25]に配置した画素データ(図6においては、画素データ「G9」のビット[4]〜ビット[10])を、コピーして、再度配置する。
このようにして、本第3のパッキング方法では、パック領域2内の未使用ビットに、直前の1転送で配置した画素データと同一の値を配置している(図6における4転送目参照)。これにより、第2のパッキング方法よりもさらにバースト転送時におけるメモリバスの各ビットの変化量、特に、パック領域2の未使用ビットの変化量を少なくすることができる。このことにより、本第3のパッキング方法では、第2のパッキング方法よりもさらに、画像データの転送に係る消費電力を低減させることができる。
上記に述べたように、本第1の構成のデータ変換部41および51では、バースト転送時におけるメモリバスの各ビットの変化量が少なくなるように、画素データを配置することができる。これにより、本第1の構成のデータ変換部41および51では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法よりも、画像データの転送に係る消費電力を低減させることができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
<第2の構成>
次に、本第2の構成のデータ変換部について説明する。図7は、本実施形態の撮像装置1に備えた本第2の構成のデータ変換部43の概略構成を示したブロック図である。図7に示したデータ変換部43は、第1の構成のデータ変換部41の代わりに、撮像装置1に備えられる。従って、データ変換部43は、データ変換部51の代わりに撮像装置1に備えることもできる。図7に示したように、データ変換部43は、ビット分割部430と、パック領域1データ生成部431と、パック領域2データ生成部432と、データ結合部433と、を備えている。
なお、以下の説明においては、第1の構成と同様に、データ変換部43に、図15に示したような、16行×16列のベイヤーデータが入力され、4転送をベイヤーデータ内の各画素データのパッキング単位とし、メモリバス幅は32bitである場合について説明する。なお、図7においては、第2の構成と異なり、ベイヤーデータ内の各画素データのビット数が9bitであるものとして説明する。
データ変換部43は、撮像処理部40から入力された9bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法で、メモリバス上の各ビットに配置した32bitのパックデータを出力する。データ変換部43は、第1の構成のデータ変換部41と同様に、パッキング単位をパック領域1とパック領域2とに分けてメモリバス上の各ビットに画素データの各ビットを配置する。ただし、メモリバス上の各ビットに画素データの各ビットを配置する方法は、第1の構成のデータ変換部41と異なる。データ変換部43によるメモリバスへの画素データの配置方法に関する詳細な説明は、後述する。
ビット分割部430は、入力されたそれぞれの画素データを、例えば、上位8ビットの画素データ(以下、「上位画素データ」という)と下位1ビットの画素データ(以下、「下位画素データ」という)とに分割する。そして、分割した上位画素データを、パック領域1データ生成部431に出力する。またビット分割部430は、分割した下位画素データを、パック領域2データ生成部432に出力する。
パック領域1データ生成部431は、撮像処理部40から入力されたデータイネーブル信号に基づいて、パック領域1のデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに、4画素分の上位画素データを、例えば、メモリバスの下位ビットに対応した位置のビットから、順次配置する。そして、上位画素データを順次配置したメモリバス幅のビット数(図7においては、32bit)のパック領域1データをデータ結合部433に出力する。また、パック領域1データ生成部431が、4転送目のパック領域1データをデータ結合部433に出力する際には、2画素分の上位画素データを、例えば、メモリバスの下位ビットに対応した位置のビットから、順次配置した16bitのパック領域1データをデータ結合部433に出力する。なお、パック領域1データ生成部431は、上位画素データをメモリ20にバースト転送する際の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、パック領域1データを配置する。
パック領域2データ生成部432は、撮像処理部40から入力されたデータイネーブル信号に基づいて、パック領域2のデータバス(このデータバスもメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに、14画素分の下位画素データを配置する。そして、下位画素データを配置したメモリバス幅以下のビット数(図7においては、16bit)のパック領域2データをデータ結合部433に出力する。なお、パック領域2データ生成部432内には、例えば、16個の1bitの画素データをそれぞれ一時的に保持するメモリ部を備え、撮像処理部40から入力されたデータイネーブル信号に基づいて画素データの出力タイミングの整合をとり、4転送目のタイミングでパック領域2データをデータ結合部433に出力する。
データ結合部433は、パック領域1データ生成部431から入力されたパック領域1データと、パック領域2データ生成部432から入力されたパック領域2データとを結合したパックデータを生成する。そして、データ結合部433は、生成したパックデータを順次、出力DMA部45に出力する。なお、データ結合部433は、1転送目〜3転送目までは、パック領域1データ生成部431から入力されたパック領域1データを、パックデータとして順次出力DMA部45に出力する。また、データ結合部433は、4転送目で、パック領域1データ生成部431から入力された16bitのパック領域1データと、パック領域2データ生成部432から入力された16bitのパック領域2データとを結合したパックデータを出力DMA部45に出力する。
なお、データ結合部433内には、例えば、16bitのパック領域1データを一時的に保持するメモリ部を備え、撮像処理部40から入力されたデータイネーブル信号に基づいて、16bitの4転送目のパック領域1データと、16bitの4転送目のパック領域2データとのタイミングの整合をとって、32bitのパックデータを生成する。
次に、本第2の構成のデータ逆変換部について説明する。図8は、本実施形態の撮像装置1に備えた本第2の構成のデータ逆変換部54の概略構成を示したブロック図である。図8に示したデータ逆変換部54は、第1の構成のデータ逆変換部52の代わりに、撮像装置1に備えられる。従って、データ逆変換部54は、データ逆変換部62の代わりに撮像装置1に備えることもできる。図8に示したように、データ逆変換部54は、データ分割部541と、パック領域1データ復元部542と、パック領域2データ復元部543と、ビット結合部540と、データ選択部544と、を備えている。
なお、以下の説明においては、第1の構成と同様に、データ逆変換部54に、データ変換部43によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図15に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとして説明する。
データ逆変換部54は、入力DMA部56から入力された32bitのパックデータの各ビットに配置されたデータを、予め定められた後述するパッキング方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した9bitの画素データを出力する。データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、パッキング単位をパック領域1とパック領域2とに分けて、メモリバス上の各ビットのデータを、それぞれ元の画素データの各ビットに分配する。
データ分割部541は、パックデータをパック領域1データとパック領域2データとに分割する。そして、データ分割部541は、分割したパック領域1データ(図8においては、32bitのパック領域1データ、または16bitのパック領域1データ)をパック領域1データ復元部542に出力する。また、データ分割部541は、パック領域2データ(図8においては、16bitのパック領域2データ)をパック領域2データ復元部543に出力する。
パック領域1データ復元部542は、データ分割部541から入力されたパック領域1データの各ビットに順次配置された、4画素分の元の上位画素データを、例えば、パック領域1データの4つの上位画素データ(図8においては、8bit)に分割する。そして、分割したそれぞれの上位画素データを、ビット結合部540に出力する。
パック領域2データ復元部543は、画像処理部50から入力されたデータイネーブル信号に基づいて、データ分割部541から入力されたパック領域2データの各ビットに配置された、14画素分の下位画素データをそれぞれの画素データに分割する。そして、分割したそれぞれの下位画素データ(図8においては、1bit)を、ビット結合部540に順次出力する。なお、パック領域2データ復元部543は、予め定められた後述するパッキング方法と逆の方法で、それぞれの下位画素データに分割する。
ビット結合部540は、パック領域1データ復元部542から入力された上位画素データと、パック領域2データ復元部543から入力された下位画素データとをそれぞれ結合し、結合した画素データをデータ選択部544に出力する。なお、ビット結合部540内には、例えば、パッキング単位(4転送)分の上位画素データを一時的に保持するメモリ部を備え、パック領域2データ復元部543から下位画素データが入力される毎に、入力された下位画素データに対応する上位画素データを結合して、パック領域1データとパック領域2データとに分割して配置されている9bitの画素データを揃えて、データ選択部544に出力する。
データ選択部544は、画像処理部50から入力されたデータイネーブル信号に基づいて、ビット結合部540から入力された画素データを順次選択し、データ逆変換部54が分割(アンパッキング)した元の画素データとして、画像処理部50に出力する。なお、データ選択部544内には、ビット結合部540からそれぞれ入力された、9bitの画素データをそれぞれ一時的に保持するメモリ部を備え、画像処理部50から入力されたデータイネーブル信号に基づいて、画素データの出力タイミングの整合をとって、それぞれの画素データを順次、画像処理部50に出力する。
次に、本第2の構成における画素データの配置(パッキング)方法について説明する。本実施形態の撮像装置1では、例えば、データ変換部43が入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部54が入力されたパックデータを元の画素データに戻す。なお、以下の説明においては、データ変換部43に、図15に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとする。
なお、データ逆変換部54によるパックデータを元の画素データに戻す方法は、データ変換部43による画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
<第4のデータ配置方法>
図9は、本第2の構成のデータ変換部43における本第4のデータ配置方法(パッキング方法)を説明する図である。図9(a)は、上述した第2のパッキング方法によって、9bitの画素データをメモリバス上に配置した場合の一例を示し、図9(b)は、本第4のパッキング方法によるパックデータ内の画素データの配置を示し、図9(c)は、本第4のパッキング方法によるパックデータ内のパック領域2の画素データの各ビットの配置を示している。
第4のパッキング方法では、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、パック領域1データを配置する。また、パックデータ内のパック領域2内で、同一のビット位置を境界として画素データを分割し、分割した画素データの隣接する同一色の画素データが、連続する2転送間でメモリバス上の同一ビットに配置されるように、パック領域2データを配置する。
このことから、第2のパッキング方法では、図9(a)に示したように、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「R10」,「R12」)が、パック領域1に配置され、ベイヤーデータ内の各画素データ(「G9」,「G11」,「G13」)が、パック領域2に配置されることになる。
図9(a)に示した第2のパッキング方法でも、バースト転送時のメモリバスの各ビットの変化量が少なくなっているため、画像データの転送に係る消費電力を低減させることができるが、3転送目におけるメモリバスのビット[27]〜ビット[31]と、4転送目におけるメモリバスのビット[19]〜ビット[26]とで消費電力が上昇することが予想される。
画像データは、隣接する画素間で画素データの変化量が小さい場合、画素データの上位ビットは変化せず、下位ビットだけが変化することが予想される。このため、画素データを上位ビットと下位ビットとに分割し、変化量の少ない上位ビットをパック領域1に配置し、変化量が多い下位ビットをパック領域2に配置してパックデータを構築した方が、さらにバースト転送時のメモリバスの各ビットの変化量が少なくなる場合がある。
本第4のパッキング方法では、ビット分割部431が、画素データを上位画素データと下位画素データとに分割する。そして、パック領域1データ生成部431が、分割した上位画素データを、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の上位画素データが、メモリバス上の同一ビットに配置されるように、パック領域1データを配置する。また、パック領域2データ生成部432が、分割した下位画素データを、4転送目に配置する。
より具体的には、ビット分割部431が、ベイヤーデータ内の各画素データを、上位画素データ(ビット[8]〜ビット[1])と、下位画素データ(ビット[0])とに分割する。そして、パック領域1データ生成部431は、図9(b)に示したように、1転送目に「R0」、「G1」、「R8」、および「G9」、2転送目に「R2」、「G3」、「R10」、および「G11」、3転送目に「R4」、「G5」、「R12」、および「G13」、4転送目に「R6」および「G7」の上位画素データを、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
また、パック領域2データ生成部432は、「R0」、「G1」、「R2」、「G3」、「R4」、「G5」、「R6」、「G7」、「R8」、「G9」、「R10」、「G11」、「R12」および「G13」の下位画素データを、それぞれパック領域2のメモリバスの下位ビットから順次パッキングする。なお、4転送目におけるメモリバスのビット[30]およびビット[31]は、未使用ビットとする。これは、第1の構成と同様の理由である。
このようにして、パックデータを生成することによって、本第4のパッキング方法では、第1の構成と同様に、各転送間での画素データのビット位置のずれが、メモリバス幅全体のうち、パック領域2のビットに限定される。さらに、本第4のパッキング方法では、パック領域2が4転送目のみに限定されため、メモリバスに占めるパック領域2の割合を少なくすることができる。これにより、バースト転送時におけるメモリバスの各ビットの変化量を、さらに少なくすることができる。このことにより、本第4のパッキング方法では、第1の構成のパッキング方法(第1〜第3のパッキング方法)よりもさらに、画像データの転送に係る消費電力を低減させることができる。
なお、本第4のパッキング方法においても、第3のパッキング方法と同様に、図9に示した未使用ビットに、3転送目のデータバスのビット[30]〜ビット[31]に配置した画素データ(図9においては、画素データ「G13」のビット[7]〜ビット[8])を、コピーして、再度配置することにより、さらに画像データの転送に係る消費電力を低減させることができる。
上記に述べたように、本第2の構成のデータ変換部43では、バースト転送時におけるメモリバスの各ビットの変化量が少なくなるように、画素データを配置することができる。これにより、本第2の構成のデータ変換部43でも、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法よりも、画像データの転送に係る消費電力を低減させることができる。このことにより、第1の構成のデータ変換部41および51と同様に、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
なお、上記に述べた実施形態においては、ベイヤーデータに本実施形態のパッキング方法を適用した場合について説明したが、本実施形態のパッキング方法は、ベイヤーデータへの適用に限定されるものではなく、RGBデータ、YC422点順次やYC444点順次フォーマットのYCbCrデータ、またはOSDデータなど、様々な画像データに適用することができる。また、本実施形態のパッキング方法は、画像データへの適用に限定されるものではなく、音声データなど、他の形式のデータに適用することもできる。
<適用例>
次に、本実施形態のパッキング方法を、他の形式の画像データや、画像データ以外のデータに適用した場合の一例について説明する。まず、本実施形態のパッキング方法をRGBデータに適用した場合の一例について説明する。図10は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、別の画像データ(RGBデータ)に適用した場合の一例を示した図である。なお、図10では、8bitのRGBデータに、従来のバースト単位でのパッキング方法を適用した一例(図10(a)参照)と、第3のパッキング方法を適用した一例(図10(b)参照)とを、それぞれ示している。
図10(a)に示したように、従来のバースト単位でのパッキング方法によって、RGBデータ(8bit×3色=24bit)を単純に配置すると、32bitのメモリバスの全てのビットが、異なる色の画素データになってしまう。これに対して、図10(b)に示した第3のパッキング方法では、パック領域1のメモリバスの各ビットは、4つの転送とも同一色の画素データの同一ビットとなる。また、パック領域2の4転送目のメモリバスの各ビットの値は、3転送目のメモリバスの各ビットの値を同じ値になる。これにより、パック領域1では、バースト転送時のメモリバスの各ビットの変化量を少なくすることができ、パック領域2では、3転送目と4転送目とのメモリバスの各ビットの変化量をなくすことができる。このことにより、画像データの転送に係る消費電力を低減させることができる。
図11は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、さらに別の画像データ(YCbCrデータ)に適用した場合の一例を示した図である。なお、図11では、図11(a)に示したような、10bitのY、8bitのCbおよびCrデータに、従来のバースト単位でのパッキング方法を適用した一例(図11(b)参照)と、第1のパッキング方法を適用した一例(図11(c)参照)とを、それぞれ示している。
図11(b)に示したように、従来のバースト単位でのパッキング方法によって、YCbCrデータを単純に配置すると、メモリバスの全てのビットが、異なる色を表す画素データになってしまう。これに対して、図11(c)に示した第1のパッキング方法では、パック領域1のメモリバスの各ビットは、同一の色を表す画素データの同一ビットとなる。これにより、パック領域1では、バースト転送時のメモリバスの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。また、図11に示した例からもわかるように、本実施形態のパッキング方法では、それぞれのデータのビット数が異なる場合でも、同様に適用することができる。
図12は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、さらに別の画像データ(OSDデータ)に適用した場合の一例を示した図である。なお、図12では、6bitのOSDデータに、従来のバースト単位でのパッキング方法を適用した一例(図12(a)参照)と、第2のパッキング方法を適用した一例(図10(b)参照)とを、それぞれ示している。
図12(a)に示したように、従来のバースト単位でのパッキング方法によって、OSDデータを単純に配置すると、メモリバスの全てのビットが、異なる表示データの異なるビットになってしまう。これに対して、図12(b)に示した第2のパッキング方法では、パック領域1のメモリバスの各ビットは、表示データの同一ビットとなる。これにより、パック領域1では、バースト転送時のメモリバスの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。また、図12(b)をみてもわかるように、本実施形態のパッキング方法では、32bitのメモリバス幅のほとんどがパック領域1であるため、より多くの消費電力の低減効果を得ることができる。
図13は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、別のデータ(音声データ)に適用した場合の一例を示した図である。なお、図13では、それぞれ24bitのR(右)データおよびL(左)データを64bitのメモリバスに適用した場合を示している。そして、図13(a)には、従来のバースト単位でのパッキング方法を適用した一例を示し、図13(b)には、第2のパッキング方法を適用した一例を示している。
図13(a)に示したように、従来のバースト単位でのパッキング方法によって、音声データを単純に配置すると、64bitのメモリバスの全てのビットが、異なるビットの音声データになってしまう。これに対して、図13(b)に示した第2のパッキング方法では、パック領域1のメモリバスの各ビットは、同じ側の音声データの同一ビットとなる。これにより、パック領域1では、バースト転送時のメモリバスの各ビットの変化量を少なくすることができ、画像データ以外の他の形式のデータでも、転送に係る消費電力を低減させることができる。
上記に述べたとおり、本発明を実施するための形態によれば、メモリバス幅をパック領域1とパック領域2とに分ける。そして、パック領域1のメモリバス上の各ビットには、転送するデータの各ビットを、ほぼそのまま配置する。また、パック領域2のメモリバス上の各ビットには、転送するデータの各ビットを分割して配置する。これにより、バースト転送時におけるメモリバスの各ビットの変化量を少なくすることができる。しかも、データの転送効率は、従来と同等のデータ転送効率を維持することができる。これにより、像装置内の各構成要素(処理ブロック)とメモリとの間でのデータの受け渡しに係る消費電力の低減効果を十分に得ることができる。
なお、本実施形態においては、4転送を1回のバースト転送の単位とし、1バーストをデータのパッキング単位とした場合について説明したが、1回のバースト転送における転送の回数や、データのパッキングの単位は、本発明を実施するための形態に限定されるものではない。例えば、64転送を1回のバースト転送の単位とし、1バースト内の16転送をデータのパッキングの単位とする、すなわち、1バースト内に4つのパッキング単位が含まれる構成にすることもできる。また、例えば、16転送をデータのパッキングの単位とし、8転送を1回のバースト転送の単位とする、すなわち、パッキング単位が2回のバースト転送に跨っている構成にすることもできる。
また、本実施形態においては、撮像装置内の構成要素間でデータの受け渡しを行う場合のパッキング方法を、いくつかのデータに適用した場合について説明したが、本実施形態のパッキング方法を適用することができる範囲は、本発明を実施するための形態に限定されるものではなく、各構成要素間でデータの受け渡しを行うシステムであれば、どのようなシステムにも適用することができる。
また、本実施形態においては、例えば、データ変換部を出力DMA部の前段の処理ブロックとして配置し、データ逆変換部を入力DMA部の後段の処理ブロックとして配置した場合の一例について説明したが、データ変換部およびデータ逆変換部の配置は、本発明を実施するための形態に限定されるものではない。例えば、データ変換部を出力DMA部内の構成要素とすることや、データ逆変換部を入力DMA部内の構成要素とすることもできる。また、例えば、データ変換部を前段の撮像処理部内の構成要素とすることや、データ逆変換部を後段の画像処理部内の構成要素とすることもできる。
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。