以下、本発明の実施形態について、図面を参照して説明する。図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内のデータ変換部およびデータ逆変換部について説明する。なお、上記に述べたように、データ変換部41とデータ変換部51とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ変換部41は、前段の撮像処理部40と後段の出力DMA部45との間に配置され、データ変換部51は、前段の撮画像処理部50と後段の出力DMA部55との間に配置されている。従って、データ変換部41とデータ変換部51とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ変換部41について説明する。
また、上記に述べたように、データ逆変換部52とデータ逆変換部62とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ逆変換部52は、前段の入力DMA部56と後段の画像処理部50との間に配置され、データ逆変換部62は、前段の入力DMA部66と後段の表示処理部60との間に配置されている。従って、データ逆変換部52とデータ逆変換部62とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ逆変換部52について説明する。
図2は、本実施形態の撮像装置1に備えたデータ変換部41およびデータ逆変換部52の概略構成を示したブロック図である。図2(a)に示したように、データ変換部41は、パックデータ生成部411と、パックデータ配置変更部412と、を備えている。また、図2(b)に示したように、データ逆変換部52は、パックデータ配置変更部521と、パックデータ復元部522と、を備えている。
まず、図2(a)に示したデータ変換部41について説明する。なお、以下の説明においては、データ変換部41に、図14に示したような、16行×16列のベイヤー配列の画像データ(以下、「ベイヤーデータ」という)が入力され、ベイヤーデータ内の各画素データをパッキングする単位を4転送とし、4転送を1回のバースト転送の単位とする、すなわち、1バーストを画素データのパッキング単位とする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は11bitであり、メモリバスのバス幅(メモリバス幅)は32bitであるものとして説明する。
データ変換部41は、撮像処理部40から入力された11bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitのパックデータを生成する。そして、データ変換部41は、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて生成したパックデータを順次出力する。なお、データイネーブル信号は、出力DMA部45がバースト転送する際にパックデータを転送するタイミングを表す信号である。
パックデータ生成部411は、入力された画素データの各ビットのデータを、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに順次配置する。そして、画素データを順次配置したメモリバス幅のビット数(図2(a)においては、32bit)のパックデータ(以下、「転送パックデータ」という)をパックデータ配置変更部412に出力する。なお、パックデータ生成部411によるメモリバスへの画素データの配置方法は、従来のバースト単位でのパッキング方法と同様であるため、詳細な説明は省略する。
パックデータ配置変更部412は、パックデータ生成部411から入力された32bitの転送パックデータ内のデータの配置を変更し、データ変換部41が最終的に出力する32bitのパックデータを生成する。
より具体的には、パックデータ配置変更部412は、パックデータ生成部411から入力された転送パックデータのメモリバス幅を、予め定められたビット数(例えば、8bit:1byte)の単位(以下、「並べ替え単位」という)に区切る。そして、この並べ替え単位毎に、前回出力したパックデータの各ビットの値と今回入力された転送パックデータの各ビットの値とを比較し、並べ替え単位におけるビット毎の変化率(以下、「ビット変化率」という)をそれぞれ算出する。そして、パックデータ配置変更部412は、算出したビット変化率に基づいて、前回出力したパックデータに対してビット毎の変化率が少なくなるように、今回入力された転送パックデータ内のデータの配置を、並べ替え単位毎に並べ替えたパックデータを生成する。
パックデータ配置変更部412は、生成したビット毎の変化率が少ないパックデータを、今回入力された転送パックデータに応じて今回出力する最終的なパックデータとして出力する。また、パックデータ配置変更部412は、転送パックデータ内のデータの配置を並べ替えた情報を、パッキング単位(4転送)内に存在する未使用ビットに付加して、パックデータと共に出力する。
なお、パックデータ配置変更部412は、上記に述べたように、パックデータ生成部411から転送パックデータが入力される毎に、転送パックデータ内のデータの配置の並べ替えを順次行う構成とすることもできるが、パックデータ配置変更部412内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitの転送パックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、パックデータ生成部411から入力された転送パックデータをメモリ部に一旦保持し、保持したそれぞれの転送パックデータ内のデータの配置の並べ替えと、並べ替え情報の付加を行う。
次に、図2(b)に示したデータ逆変換部52について説明する。なお、以下の説明においては、データ逆変換部52に、データ変換部41によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図14に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は11bitであり、メモリバス幅は32bitであるものとして説明する。
データ逆変換部52は、入力DMA部56から入力された32bitのパックデータの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した11bitの画素データに復元する。そして、データ逆変換部52は、例えば、画像処理部50から入力される図示しないデータイネーブル信号に基づいて復元した元の画素データを順次出力する。なお、データイネーブル信号は、画像処理部50に出力するタイミングを表す信号である。
パックデータ配置変更部521は、入力された32bitのパックデータ(このパックデータは、データ変換部41内のパックデータ配置変更部412が生成したパックデータと同等である)内のデータの配置を元に戻した32bitのパックデータ(このパックデータは、パックデータ生成部411が生成した転送パックデータに戻したデータと同等であるため、以下の説明においては、「転送パックデータ」として説明する)を生成する。そして、パックデータ配置変更部521は、生成した1バースト分のそれぞれの転送パックデータを、パックデータ復元部522に出力する。
より具体的には、パックデータ配置変更部521は、パッキング単位(4転送)内に存在する未使用ビットに付加されている並べ替え情報に基づいて、パックデータ配置変更部412による転送パックデータ内のデータの配置の並べ替えと逆の方法で、それぞれの転送パックデータを生成する。なお、パックデータ配置変更部521には、パックデータ配置変更部412における並べ替え単位と同等のビット数が予め設定されている。そして、パックデータ配置変更部521は、パックデータ内のデータの配置を並べ替え単位毎に並べ替えた(元に戻した)転送パックデータを生成する。
なお、パックデータ配置変更部521は、上記に述べたように、入力DMA部56からパックデータが入力される毎に、パックデータ配置変更部412による転送パックデータ内のデータの配置の並べ替えと逆の方法で、パックデータ内のデータの配置の並べ替えを順次行う構成とすることもできるが、パックデータ配置変更部521内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータ(転送パックデータ)を一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータをメモリ部に一旦保持し、保持したそれぞれのパックデータ内のデータの配置の並べ替えを行う。
パックデータ復元部522は、パックデータ配置変更部521から入力された転送パックデータの各ビットに配置された画素データを順次分割(アンパッキング)し、元の画素データ(図2(b)においては、11bitの画素データ)に復元する。そして、パックデータ復元部522は、複製した元の画素データを順次、画像処理部50に出力する。なお、パックデータ復元部522による転送パックデータの元の画素データへの復元方法は、従来のバースト単位でのパッキング方法における復元方法と同様であるため、詳細な説明は省略する。
次に、データ変換部41に備えたパックデータ配置変更部412について、さらに詳細に説明する。図3は、本実施形態の撮像装置1に備えたデータ変換部41内のパックデータ配置変更部412の概略構成を示したブロック図である。図3に示したように、パックデータ配置変更部412は、4つのビット変化数算出部4121a〜4121d(以下、ビット変化数算出部4121a〜4121dのいずれか1つを表すときには「ビット変化数算出部4121」という)と、ビット変化数解析部4122と、並べ替え制御部4123と、データ保持部4124と、解析結果保持部4125と、データ結合部4126と、を備えている。
上記に述べたように、パックデータ配置変更部412は、パックデータ生成部411から入力された32bitの転送パックデータ内のデータの配置を変更し、データ変換部41が最終的に出力する32bitのパックデータを生成する。しかし、以下の説明においては、説明を容易にするため、パックデータ配置変更部412に、パックデータ生成部411から16bitの転送パックデータが入力され、転送パックデータ内のデータの配置を並べ替えた16bitのパックデータを出力する場合について説明する。従って、32bitの転送パックデータと16bitの転送パックデータとを区別するため、以下の説明においては、16bitの転送パックデータを入力データDIN(15:0)と表す。また、32bitのパックデータと16bitのパックデータとを区別するため、以下の説明においては、16bitのパックデータを出力データDOUT(15:0)と表す。また、以下の説明において、入力されたデータまたは出力するデータのビットを特定しない、すなわち、入力または出力データの全てのビット範囲を表す場合には、データのビットの範囲を表す“():括弧”内の数字を省略する。
また、以下の説明においては、16bitの入力データDIN(15:0)を、上位8bit(入力データDIN(15:8))と下位8bit(入力データDIN(7:0))との並べ替え単位に区切って、入力データDIN内のデータの配置を並べ替えた出力データDOUT(15:0)を、入力データDIN(15:0)に対応した16bitの出力データDOUT(15:0)として出力する場合について説明する。
パックデータ配置変更部412は、入力された入力データDINをビット毎に比較して、ビット変化の少ない出力データDOUTを生成して出力する。より具体的には、パックデータ配置変更部412は、前回出力した出力データDOUTと今回入力された入力データDINとのビット変化率を、並べ替え単位で算出する。そして、パックデータ配置変更部412は、算出したそれぞれのビット変化率に基づいて、前回出力した出力データDOUTに対してビット毎の変化率が少なくなるように、今回入力された入力データDIN内のデータの配置を並べ替え単位で並び替えた出力データDOUTを生成する。そして、パックデータ配置変更部412は、生成したビット毎の変化率が少ない出力データDOUTを、今回出力する出力データDOUTとして出力する。
また、パックデータ配置変更部412は、今回入力された入力データDIN内のデータを並べ替えたときの並べ替え情報を、パッキング単位内のいずれか1つの出力データDOUTの未使用ビットに付加して出力する。
ビット変化数算出部4121a〜4121dは、それぞれ、入力された2つのデータの各ビットをそれぞれ比較してビットの変化数(以下、「ビット変化数」という)を算出し、算出したビット変化数の値をビット変化数解析部4122に出力する。例えば、一方のデータの値が“0xFF”で他方の値が“0x00”である場合には、ビット変化数の値が“8”と出力される。また、例えば、一方のデータの値が“0x00”で他方の値が“0x00”である場合には、ビット変化数の値が“0”と出力される。
図3に示したパックデータ配置変更部412においては、ビット変化数算出部4121aの一方のデータとして入力データDIN(15:0)の下位の8bitの入力データDIN(7:0)が入力され、他方のデータとしてデータ保持部4124から出力されたデータD1(7:0)が入力されている。また、ビット変化数算出部4121bには、一方のデータとして入力データDIN(7:0)が入力され、他方のデータとしてデータ保持部4124から出力されたデータD1(15:8)が入力されている。また、ビット変化数算出部4121cには、一方のデータとして入力データDIN(15:0)の上位の8bitの入力データDIN(15:8)が入力され、他方のデータとしてデータD1(7:0)が入力されている。また、ビット変化数算出部4121dには、一方のデータとして入力データDIN(15:8)が入力され、他方のデータとしてデータD1(15:8)が入力されている。そして、ビット変化数算出部4121a〜4121dのそれぞれは、一方のデータとして入力された入力データDINと、他方のデータとして入力されたデータD1との各ビットをそれぞれ比較してビットの変化数を算出する。
ビット変化数解析部4122は、ビット変化数算出部4121a〜4121dのそれぞれから入力されたビット変化数の値に基づいて、入力データDIN内のデータの配置を並べ替える処理(以下「並べ替え処理」という)を行うか否かを判断し、その判断結果の情報を並べ替え制御部4123と解析結果保持部4125とに出力する。
より具体的には、ビット変化数解析部4122は、ビット変化数算出部4121a〜4121dのそれぞれから入力されたビット変化数の値を解析し、ビット変化数の値が低いものを抽出する。そして、ビット変化数解析部4122は、抽出した低い値のビット変化数を出力したビット変化数算出部4121に入力されているデータに基づいて、入力データDIN(15:0)の上位の8bitの入力データDIN(15:8)と、下位の8bitの入力データDIN(7:0)とを並べ替える並べ替え処理を行うか否かを判断する。
なお、ビット変化数解析部4122による並べ替え処理を行うか否かの判断は、前回出力した出力データDOUTに対して今回出力する出力データDOUTのビット変化率(ビット変化数)が最も少なくなるように、出力データDOUTの全体を考慮して判断される。
そして、ビット変化数解析部4122は、判断結果の情報を並べ替え制御部4123と解析結果保持部4125とに出力する。図3に示したパックデータ配置変更部412においては、入力データDINに対して1つの判断結果を出力するため、例えば、並べ替え処理を行わない場合には、判断結果の情報として“0”を出力し、並べ替え処理を行う場合には、判断結果の情報として“1”を出力する。
なお、判断結果の情報の“0”は、入力データDINに対する並べ替え処理を行わずに、入力データDINをそのまま出力データDOUTとして出力することを意味している。また、判断結果の情報の“1”は、入力データDINに対して上位の8bitと下位の8bitとを並べ替える並べ替え処理を行ったデータを、出力データDOUTとして出力することを意味している。
並べ替え制御部4123は、ビット変化数解析部4122から入力された並べ替え処理を行うか否かの判断結果の情報に基づいて、入力された入力データDINの並べ替え処理を行う。そして、並べ替え処理をした後のデータD0(15:0)を、データ保持部4124とデータ結合部4126とに出力する。より具体的には、ビット変化数解析部4122から入力された並べ替え処理を行うか否かの判断結果の情報が“0”である、すなわち、入力データDINの並べ替え処理を行わない場合には、入力された入力データDIN(15:0)をそのまま、データD0(15:0)として出力する。
また、ビット変化数解析部4122から入力された並べ替え処理を行うか否かの判断結果の情報が“1”である、すなわち、入力データDINの並べ替え処理を行う場合には、入力された入力データDIN(15:0)の上位の8bitの入力データDIN(15:8)と、下位の8bitの入力データDIN(7:0)とを並べ替えたデータ(入力データDIN(7:0),入力データDIN(15:8))を、データD0(15:0)として出力する。
データ保持部4124は、並べ替え制御部4123から出力されたデータD0(15:0)を保持する。このデータ保持部4124によって保持されたD0は、前回出力した出力データDOUTとして、ビット変化数算出部4121によって、次に入力された入力データDINとのビット変化数の算出に用いられる。データ保持部4124は、保持したD0をビット変化数算出部4121の他方のデータD1として、ビット変化数算出部4121a〜4121dのそれぞれに出力する。これにより、ビット変化数算出部4121は、入力データDINの並べ替え処理をした後の出力データDOUTと、次に入力された入力データDINとのビット変化数の算出を行うことになる。
解析結果保持部4125は、ビット変化数解析部4122から入力された並べ替え処理を行うか否かの判断結果の情報、すなわち、ビット変化数解析部4122が出力した“0”または“1”の情報を保持する。この解析結果保持部4125によって保持された判断結果の情報は、今回出力する出力データDOUTが入力データDINに対して並べ替え処理が行われたデータであるか否かを表す情報として用いられる。解析結果保持部4125は、保持した判断結果の情報を、データ結合部4126に出力する。
なお、ビット変化数解析部4122は、入力データDIN(15:0)に対して1つの判断結果を出力する。従って、図2(a)に示した本実施形態の撮像装置1に備えたデータ変換部41では、パックデータ生成部411から32bitの転送パックデータが入力されるため、16bit毎に2つの判断結果を得ることになる。このことから、解析結果保持部4125には、2つ分の判断結果の情報を保持することができる保持容量を備えることになる。
データ結合部4126は、並べ替え制御部4123から入力された並べ替え処理後のデータD0(15:0)を、順次出力する。このときデータ結合部4126は、解析結果保持部4125から入力された判断結果の情報を、パッキング単位内に存在する、すなわち、並べ替え制御部4123から入力されたデータD0の内、いずれかのデータD0に存在する未使用ビットに付加(ビット結合)して、データ変換部41が最終的に出力する出力データDOUTを生成する。データ結合部4126によって判断結果の情報をビット結合する方法に関する詳細な説明は、後述する。
ここで、パックデータ配置変更部412によるデータの配置を並べ替えたパックデータの生成方法について説明する。図4は、本実施形態の撮像装置1に備えたデータ変換部41内のパックデータ配置変更部412におけるパックデータの生成方法を説明する図である。なお、以下の説明においては、図3に示したパックデータ配置変更部412の構成を参照し、入力データDIN内のデータの配置を並べ替えた出力データDOUTを生成するときの全体の流れに沿って説明する。なお、図3に示したパックデータ配置変更部412における並べ替え単位は、8bitである。
パックデータ配置変更部412には、パックデータ生成部411から1バースト分、すなわち、パッキング単位(4転送)分の入力データDIN(15:0)が順次入力される。ここでは、図4(a)に示したような4転送分の入力データDINが、1転送目、2転送目、3転送目、4転送目というように、順次入力された場合を考える。図4(a)に示したように、パッキング単位(4転送)分の入力データDIN(15:0)の内、4転送目の入力データDINに、未使用ビットが存在している。以下の説明においては、パックデータ配置変更部412が、4転送目の出力データDOUTの未使用ビットに判断結果の情報を付加(ビット結合)するものとして説明する。
まず、データ変換部41が動作を開始し、パックデータ生成部411から順次入力データDIN(15:0)が入力される。パックデータ配置変更部412に、パックデータ生成部411から1転送目の入力データDIN(“0xFF5A”)が入力されると、1転送目の入力データDINに応じた1転送目の出力データDOUTの生成を開始する。なお、1転送目の入力データDINは、今回のバースト転送における基準となる入力データDINである。そのため、パックデータ配置変更部412は、1転送目の出力データDOUTの生成において、1転送目の入力データDINに対する並べ替え制御部4123による並べ替え処理は行わない。
1転送目の出力データDOUTの生成において、ビット変化数算出部4121は、1転送目のビット変化数の値として“0”を出力し、ビット変化数解析部4122は、1転送目の判断結果の情報として“0”を出力する。これにより、並べ替え制御部4123は、1転送目の入力データDINをそのまま、1転送目のデータD0(15:0)として出力する。そして、データ保持部4124は、並べ替え制御部4123から出力された1転送目のデータD0を保持し、保持した1転送目のデータD0を、1転送目のデータD1として出力する。また、データ結合部4126は、並べ替え制御部4123から入力された1転送目のデータD0を、1転送目の出力データDOUT(15:0)として出力する。
なお、解析結果保持部4125は、ビット変化数解析部4122から出力された1転送目の判断結果の情報の保持を行わない。また、データ結合部4126は、1転送目の出力データDOUTに対する判断結果の情報の付加(ビット結合)も行わない。
続いて、パックデータ配置変更部412に、パックデータ生成部411から2転送目の入力データDIN(“0x5AFE”)が入力されると、2転送目の入力データDINに応じた2転送目の出力データDOUTの生成を開始する。2転送目の出力データDOUTの生成において、ビット変化数算出部4121のそれぞれは、2転送目の入力データDINの各ビットと、データ保持部4124から入力された1転送目のデータD1、すなわち、1転送目の出力データDOUTの各ビットとをそれぞれ比較して、ビットの変化数を算出する。
より具体的には、ビット変化数算出部4121aは、2転送目の下位の入力データDIN(7:0)と、1転送目の下位のデータD1(7:0)とのビットの変化数を算出する。また、ビット変化数算出部4121bは、2転送目の下位の入力データDIN(7:0)と、1転送目の上位のデータD1(15:8)とのビットの変化数を算出する。また、ビット変化数算出部4121cは、2転送目の上位の入力データDIN(15:8)と、1転送目の下位のデータD1(7:0)とのビットの変化数を算出する。また、ビット変化数算出部4121dは、2転送目の上位の入力データDIN(15:8)と、1転送目の上位のデータD1(15:8)とのビットの変化数を算出する。そして、ビット変化数算出部4121a〜4121dのそれぞれは、算出したビット変化数の値をビット変化数解析部4122に出力する。
ここで、図4(b)を参照して、ビット変化数算出部4121によるビット変化数の算出方法について説明する。図4(b)の上段には、1転送目の下位のデータD1(7:0)、すなわち、図4(a)に示した1転送目の下位の入力データDIN(7:0)と、図4(a)に示した2転送目の下位の入力データDIN(7:0)との各ビットの値の比較を示している。また、図4(b)の下段には、1転送目の上位のデータD1(15:8)、すなわち、図4(a)に示した1転送目の上位の入力データDIN(15:8)と、図4(a)に示した2転送目の上位の入力データDIN(15:8)との各ビットの値の比較を示している。
図4(b)の上段をみてわかるように、1転送目の下位の入力データDIN(7:0)の値(“0x5A”=“0101_1010”)と2転送目の下位の入力データDIN(7:0)の値(“0xFE”=“1111_1110”)とを比較すると、入力データDIN(7)、入力データDIN(5)、および入力データDIN(2)の3つのビットの値が異なる。すなわち、出力データDOUT(7:0)が、“0x5A”から“0xFE”に替わることによって3ビットの値が変化する。このとき、ビット変化数算出部4121は、ビット変化数の値として、“3”を出力する。
また、図4(b)の下段をみてわかるように、1転送目の上位の入力データDIN(15:8)の値(“0xFF”=“1111_1111”)と2転送目の上位の入力データDIN(15:8)の値(“0x5A”=“0101_1010”)とを比較すると、入力データDIN(15)、入力データDIN(13)、入力データDIN(10)、および入力データDIN(8)の4つのビットの値が異なる。すなわち、出力データDOUT(15:8)が、“0xFF”から“0x5A”に替わることによって4ビットの値が変化する。このとき、ビット変化数算出部4121は、ビット変化数の値として、“4”を出力する。
その後、ビット変化数解析部4122は、それぞれのビット変化数算出部4121から入力されたビット変化数の値に基づいて、2転送目の入力データDINに対する並べ替え処理を行うか否かを判断する。例えば、図4(c)に示したように、2転送目の入力データDIN(15:0)の上位の8bitの入力データDIN(15:8)の値(“0x5A”)と、下位の8bitの入力データDIN(7:0)の値(“0xFE”)とを並べ替えた場合を考える。このとき、図4(b)に示した各ビットの値の比較の一例と同様に、ビット変化数を算出すると、それぞれのビット変化数が変わる。
より具体的には、下位の出力データDOUT(7:0)は、“0x5A”から“0x5A”に替わるため、ビット変化数の値は“0”になる。また、上位の出力データDOUT(15:8)は、“0xFF”から“0xFE”に替わるため、ビット変化数の値は“1”になる。このことから、2転送目の入力データDIN(15:0)の上位の8bitと下位の8bitとを並べ替えた方が、2転送目の出力データDOUTのビット変化率が小さくなるということがわかる。このことから、ビット変化数解析部4122は、2転送目の入力データDINに対する並べ替え処理を行うという判断をする。そして、ビット変化数解析部4122は、並べ替え処理を行うという判断結果の情報である“1”を、2転送目の判断結果の情報として出力する。また、解析結果保持部4125は、ビット変化数解析部4122から出力された2転送目の判断結果の情報を保持する。
なお、ビット変化数解析部4122による並べ替え処理を行うか否かの判断は、並べ替え単位毎ではなく、例えば、1転送目の出力データDOUTから2転送目の出力データDOUTに替わったときの出力データDOUTのビット変化率(ビット変化数)が最も少なくなるように、出力データDOUTの全体を考慮して判断される。
より具体的には、例えば、1転送目の入力データDIN(“0xFF5A”)が入力され、続いて、2転送目の入力データDIN(“0x115A”)が入力された場合を考える。このとき、並べ替え処理を行わない場合には、下位の出力データDOUT(7:0)は、“0xFF”から“0x11”に替わるため、ビット変化数の値は“6”になり、上位の出力データDOUT(15:8)は、“0x5A”から“0x5A”に替わるため、ビット変化数の値は“0”になる。すなわち、出力データDOUTの全体でのビット変化数の値は“6”である。一方、並べ替え処理を行う場合には、下位の出力データDOUT(7:0)は、“0xFF”から“0x5A”に替わるため、ビット変化数の値は“4”になり、上位の出力データDOUT(15:8)は、“0x5A”から“0x11”に替わるため、ビット変化数の値は“4”になる。このように、並べ替え処理を行うことによって、下位の出力データDOUT(7:0)のビット変化数の値が小さくなるが、上位の出力データDOUT(15:8)のビット変化数の値が大きくなってしまい、出力データDOUTの全体でのビット変化数の値は“8”になってしまう。
このことから、ビット変化数解析部4122は、2転送目の入力データDINに対する並べ替え処理を行わないという判断をする。そして、ビット変化数解析部4122は、並べ替え処理を行わないという判断結果の情報である“0”を、2転送目の判断結果の情報として出力する。
その後、並べ替え制御部4123は、ビット変化数解析部4122から入力された2転送目の判断結果の情報(“1”)に基づいて、2転送目の入力データDINの並べ替え処理を行い、2転送目のデータD0(15:0)として出力する。そして、データ保持部4124は、並べ替え制御部4123から出力された2転送目のデータD0を保持し、保持した2転送目のデータD0を、2転送目のデータD1として出力する。また、データ結合部4126は、並べ替え制御部4123から入力された2転送目のデータD0を、2転送目の出力データDOUT(15:0)として出力する。なお、データ結合部4126は、2転送目の出力データDOUTに対する判断結果の情報の付加(ビット結合)は行わない。
続いて、同様に、パックデータ配置変更部412は、パックデータ生成部411から入力された3転送目の入力データDIN(“0xFC5B”)に応じた3転送目の出力データDOUTの生成と出力を行う。なお、3転送目の出力データDOUTの生成の処理においては、2転送目のデータD1、すなわち、2転送目の出力データDOUTと3転送目の入力データDINとに基づいて、3転送目の出力データDOUTの生成が行われる。また、データ結合部4126は、3転送目の出力データDOUTに対する判断結果の情報の付加(ビット結合)は行わない。
続いて、パックデータ配置変更部412に、パックデータ生成部411から4転送目の入力データDIN(“0x**FB”:なお、「*」は未使用ビットを表す)が入力されると、4転送目の入力データDINに応じた4転送目の出力データDOUTの生成を開始する。なお、4転送目の入力データDINの未使用ビットには、今回のバースト転送における並べ替え処理の判断結果の情報の付加(ビット結合)が行われる。そのため、パックデータ配置変更部412は、4転送目の出力データDOUTの生成において、未使用ビットが含まれる並べ替え単位に対する並べ替え処理を行わない。これにより、並べ替え処理の判断結果の情報を付加する出力データDOUT内のビットの位置を、固定の位置にすることができる。
より詳細には、図4(a)に示した入力データDINでは、4転送目の上位の入力データDIN(15:8)が全て未使用ビットである。また、上位の入力データDIN(15:8)と並べ替え処理を行う並べ替え単位は、下位の入力データDIN(7:0)である。このため、4転送目の上位の入力データDIN(15:8)のビットの位置を、並べ替え処理の判断結果の情報を付加するビットの位置として固定する。従って、図4に示した一例においては、4転送目の入力データDINに対する並べ替え制御部4123による並べ替え処理を行わない。
4転送目の出力データDOUTの生成において、ビット変化数算出部4121は、4転送目のビット変化数の値として“0”を出力し、ビット変化数解析部4122は、4転送目の判断結果の情報として“0”を出力する。そして、並べ替え制御部4123は、4転送目の入力データDINをそのまま、4転送目のデータD0(15:0)として出力する。これにより、並べ替え処理の判断結果の情報を付加するビットの位置が、4転送目のデータD0(15:8)に固定される。
このように、パックデータ生成部411から入力されたパッキング単位(4転送)分、すなわち、1バースト分の入力データDIN(15:0)の並べ替え処理が順次行われる。図4(d)には、並べ替え処理前後の4転送分のデータD0を示している。図4(d)の左側は、並べ替え処理を行わず、図4(a)に示した4転送分の入力データDINがそのまま出力された場合のデータD0を示し、図4(d)の右側は、並べ替え処理を行った後のデータD0を示している。
図4(a)に示したような4転送分の入力データDINでは、図4(d)の右側に示したように、1転送目のデータD0から2転送目のデータD0に替わるときには並べ替え処理を行い、2転送目のデータD0から3転送目のデータD0に替わるときには並べ替え処理を行わない。また、上記に述べたように、3転送目のデータD0から4転送目のデータD0に替わるときには、並べ替え処理を行わない。
データ結合部4126は、並べ替え制御部4123から入力された4転送目のデータD0を、4転送目の出力データDOUT(15:0)として出力するときに、解析結果保持部4125に保持しているそれぞれの転送における判断結果の情報を、4転送目の出力データDOUT(15:0)の未使用ビットに順次付加(ビット結合)する。
より具体的には、図4(e)に示したように、データ結合部4126は、解析結果保持部4125に保持している2転送目の出力データDOUTに対する判断結果の情報(“1”)を、4転送目のデータD0のビット(8)の未使用ビットに、3転送目の出力データDOUTに対する判断結果の情報(“0”)を、4転送目のデータD0のビット(9)の未使用ビットに、それぞれビット結合する。そして、判断結果の情報がビット結合された4転送目のデータD0を、最終的に出力する4転送目の出力データDOUTとして出力する。
このようにして、パックデータ配置変更部412が入力データDIN内の各ビットの値に応じて、並べ替え単位にデータの配置を並べ替えた出力データDOUTを生成する。これにより、バースト転送時の各転送間で、出力データDOUT(パックデータ)のビット毎の変化率を少なくすることができる。このことにより、データ変換部41では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法よりも、画像データの転送に係る消費電力を低減させることができる。
なお、図3に示したパックデータ配置変更部412では、16bitの入力データDINを、上位8bitと下位8bitとの並べ替え単位に区切って、入力データDIN内のデータの配置を並べ替えた16bitの出力データDOUTを出力する場合について説明した。そして、並べ替え処理の判断結果の情報を付加するビットの位置を、バースト転送における最終のパックデータである4転送目の出力データDOUT(15:8)に固定し、4転送目の入力データDINに対する並べ替え処理を行わなかった。
しかし、未使用ビットが含まれる並べ替え単位と、それに対応した並べ替え単位以外では、バースト転送における最終のパックデータであっても、未使用ビットが含まれる並べ替え単位に係る並べ替え単位以外の並べ替え単位同士で、並べ替え処理を行うことができる。例えば、入力データDINのビット数が多い場合(例えば、パックデータが32bitである場合)や、並べ替え単位のビット数が少なく(例えば、並べ替え単位のビット数が4bit)、未使用ビットが含まれる並べ替え単位と、それに対応した並べ替え単位以外で並べ替え処理を行える場合(例えば、パックデータ(3:0)とパックデータ(7:4)とで並べ替え単位のビット数ができる場合)には、並べ替え処理を行える並べ替え単位同士で並べ替え処理を行い、並べ替え処理の判断結果の情報を付加することができる。なお、この未使用ビットが含まれる並べ替え単位に係る並べ替え単位以外の並べ替え単位同士の並べ替え処理に関しては、上記に述べた並べ替え処理と同様であるため、詳細な説明は省略する。
次に、データ逆変換部52に備えたパックデータ配置変更部521について、さらに詳細に説明する。図5は、本実施形態の撮像装置1に備えたデータ逆変換部52内のパックデータ配置変更部521の概略構成を示したブロック図である。図5に示したように、パックデータ配置変更部521は、データ出力制御部5211と、4つのシフトレジスタ5212a〜5212d(以下、シフトレジスタ5212a〜5212dのいずれか1つを表すときには「シフトレジスタ5212」という)と、解析結果保持部5213と、並べ替え部5214と、を備えている。
上記に述べたように、パックデータ配置変更部521は、入力DMA部56から入力された32bitのパックデータ内のデータの配置を変更し(元に戻し)、データ変換部41内のパックデータ生成部411が生成した転送パックデータと同等の32bitのパックデータ(転送パックデータ)を生成する。そして、生成した転送パックデータを、パックデータ復元部522に出力する。しかし、以下の説明においては、説明を容易にするため、パックデータ配置変更部521に、入力DMA部56から16bitのパックデータが入力され、パックデータ内のデータの配置を並べ替えた16bitの転送パックデータを出力する場合について説明する。従って、32bitのパックデータと16bitのパックデータとを区別するため、以下の説明においては、16bitのパックデータを入力データDIN(15:0)と表す。また、32bitの転送パックデータと16bitの転送パックデータとを区別するため、以下の説明においては、16bitの転送パックデータを出力データDOUT(15:0)と表す。また、以下の説明において、入力されたデータまたは出力するデータのビットを特定しない、すなわち、入力または出力データの全てのビット範囲を表す場合には、データのビットの範囲を表す“():括弧”内の数字を省略する。
また、以下の説明においては、データ変換部41によって図4(e)に示したようにパッキングされた、4転送をパッキング単位とした1バースト(4転送)分の入力データDINが、1転送目、2転送目、3転送目、4転送目というように順次入力され、図4(a)に示したような4転送分の出力データDOUTを出力する場合ついて説明する。
パックデータ配置変更部521には、データ変換部41内のパックデータ配置変更部412における並べ替え単位と同じビット数の並べ替え単位が、予め設定されている。また、パックデータ配置変更部521には、入力された入力データDINに含まれる並べ替え情報(並べ替え処理の判断結果の情報)が、何転送目のどのビットに付加(ビット結合)されているか、すなわち、並べ替え処理の判断結果の情報を表すビットの位置が、予め設定されている。そして、パックデータ配置変更部521は、入力された入力データDINに含まれる並べ替え処理の判断結果の情報に基づいて、入力データDIN内のデータの配置を並べ替え単位毎に元の配置に戻した転送パックデータを生成する。
より具体的には、図5に示したパックデータ配置変更部521には、並べ替え単位が8bitであることが、予め設定されている。また、パックデータ配置変更部521には、4転送目の入力データDINのビット(8)に2転送目の入力データDINに対する判断結果の情報が付加され、4転送目の入力データDINのビット(9)に3転送目の入力データDINに対する判断結果の情報が付加されていることが、予め設定されている。パックデータ配置変更部521は、16bitの入力データDIN(15:0)を、上位8bit(入力データDIN(15:8))と下位8bit(入力データDIN(7:0))との並べ替え単位に区切って、入力データDIN内のデータの配置を元の配置に並べ替えた(戻した)出力データDOUT(15:0)を、入力データDIN(15:0)に対応した16bitの出力データDOUT(15:0)として出力する。
シフトレジスタ5212a〜5212dは、パックデータ配置変更部521に入力された入力データDINを順次保持するレジスタである。シフトレジスタ5212a〜5212dのそれぞれは、入力データDINが入力される毎に、次の段のシフトレジスタ5212に保持しているデータをシフトすると共に、入力されたデータを保持する。また、最終段のシフトレジスタ5212dにシフトされたデータは、並べ替え部5214に出力される。
より具体的には、例えば、1転送目の入力データDINは、まず、シフトレジスタ5212aに入力されて保持される。そして、シフトレジスタ5212aに保持された1転送目の入力データDINは、2転送目以降の入力データDINがシフトレジスタ5212aに入力される毎に、シフトレジスタ5212a→シフトレジスタ5212b→シフトレジスタ5212c→シフトレジスタ5212dというように、順次後段のシフトレジスタ5212にシフトされる。そして、1転送目の入力データDINがシフトレジスタ5212dにシフトされた後、並べ替え部5214に出力される。このように、シフトレジスタ5212は、パックデータ配置変更部521に入力された入力データDINを順次シフトしながら、1バースト(4転送)分の全ての入力データDINを保持する。
また、それぞれのシフトレジスタ5212に保持された入力データDINは、データ出力制御部5211から入力されるシフト命令に応じてさらにシフトされ、順次並べ替え部5214に出力される。
なお、上述のように、シフトレジスタ5212は、1バーストの全ての入力データDINを保持する。すなわち、シフトレジスタ5212は、パッキング単位の全ての入力データDINを保持する。このことからもわかるように、パックデータ配置変更部521内には、パッキング単位に応じた数のシフトレジスタ5212を備えることになる。
解析結果保持部5213は、パックデータ配置変更部521に入力された入力データDINに含まれる並べ替え処理の判断結果の情報、例えば、並べ替え処理を行わないことを表す判断結果の情報である“0”の情報、または上位の8bitと下位の8bitとを並べ替える並べ替え処理を行うことを表す判断結果の情報である“1”の情報を保持する。この解析結果保持部5213によって保持された判断結果の情報は、今回入力されたそれぞれの入力データDINに対して並べ替え処理を行うか否かを表す情報として用いられる。解析結果保持部5213に保持した判断結果の情報は、データ出力制御部5211から入力される出力命令に応じて、並べ替え部5214に出力される。
なお、判断結果の情報は、入力データDIN(15:0)に対して1つの判断結果の情報が付与されている。従って、図2(b)に示した本実施形態の撮像装置1に備えたデータ逆変換部52では、32bitのパックデータが入力されるため、1つのパックデータに対して、16bit毎に2つの判断結果の情報が付与されていることになる。このことから、解析結果保持部5213には、2つ分の判断結果の情報を保持することができる保持容量を備えることになる。
データ出力制御部5211は、シフトレジスタ5212に保持された入力データDINのシフトと、解析結果保持部5213に保持されて判断結果の情報の出力とを制御する。データ出力制御部5211は、パックデータ配置変更部521に入力された1バースト(4転送)分の全ての入力データDINが、シフトレジスタ5212のそれぞれに保持された後、シフトレジスタ5212に保持された入力データDINをシフトするためのシフト命令を、それぞれのシフトレジスタ5212に出力する。これにより、それぞれのシフトレジスタ5212に保持されている入力データDINが順次シフトされ、並べ替え部5214に順次出力される。図5に示したパックデータ配置変更部521においては、1バースト(4転送)分の全ての入力データDINがシフトレジスタ5212のそれぞれに保持された後、それぞれのシフトレジスタ5212に保持された全ての入力データDINを、順次並べ替え部5214に出力するために、4回のシフト命令を、それぞれのシフトレジスタ5212に出力する。
また、データ出力制御部5211は、シフトレジスタ5212に保持されている入力データDINのシフトに合わせて、対応する判断結果の情報を並べ替え部5214に出力するための出力命令を、解析結果保持部5213に出力する。図5に示したパックデータ配置変更部521においては、2転送目と3転送目との入力データDINが並べ替え部5214に入力されるタイミングで、出力命令を解析結果保持部5213に出力する。これにより、並べ替え部5214に入力される入力データDINに対応した判断結果の情報(入力データDINに対して並べ替え処理を行うか否かを表す情報)が、並べ替え部5214に出力される。
並べ替え部5214は、解析結果保持部5213から入力された判断結果の情報に基づいて、シフトレジスタ5212dから入力された入力データDINの並べ替え処理を行う。そして、並べ替え処理をした後の出力データDOUT(15:0)を、パックデータ配置変更部521からの出力として出力する。より具体的には、解析結果保持部5213から入力された判断結果の情報が“0”である、すなわち、入力データDINの並べ替え処理を行わない場合には、シフトレジスタ5212dから入力された入力データDIN(15:0)をそのまま、出力データDOUT(15:0)として出力する。
また、解析結果保持部5213から入力された判断結果の情報が“1”である、すなわち、入力データDINの並べ替え処理を行う場合には、入力された入力データDIN(15:0)の上位の8bitの入力データDIN(15:8)と、下位の8bitの入力データDIN(7:0)とを並べ替えたデータ(入力データDIN(7:0),入力データDIN(15:8))を、出力データDOUT(15:0)として出力する。
なお、並べ替え部5214は、解析結果保持部5213から判断結果の情報が入力されない場合には、入力データDINの並べ替え処理を行わず、シフトレジスタ5212dから入力された入力データDIN(15:0)をそのまま、出力データDOUT(15:0)として出力する。例えば、並べ替え部5214は、図4(e)に示したようにパッキングされた入力データDINの1転送目と4転送目とに対しては、並べ替え処理を行わない。従って、並べ替え部5214に、1転送目と4転送目との入力データDINがシフトレジスタ5212dから入力されたときには、対応した判断結果の情報が解析結果保持部5213から入力されない。このため、並べ替え部5214は、シフトレジスタ5212dから入力された入力データDINに対して並べ替え処理を行わずに、そのまま出力データDOUTとして出力する。
次に、画素データの配置(パッキング)方法について説明する。本実施形態の撮像装置1では、データ変換部41および51が入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部52および62が入力されたパックデータを元の画素データに戻す。なお、以下の説明においては、データ変換部41に、図14に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は11bitであり、メモリバス幅は32bitであるものとする。なお、図14に示したベイヤーデータでは、各画素データの数字がCCD30内の画素の位置を表しており、数字の前の「R」,「G」,「B」がCCD30内の画素の色を表している。より具体的には、「R」がCCD30の赤色の画素の画素データ、「G」がCCD30の緑色の画素の画素データ、「B」がCCD30の青色の画素の画素データを表している。
なお、データ逆変換部52および62によるパックデータを元の画素データに戻す方法は、データ変換部41および51による画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
また、以下の説明においては、データ変換部41内のパックデータ配置変更部412の並べ替え単位として8bit(1byte)が設定され、パックデータ配置変更部412は、入力された32bitの転送パックデータ(31:0)内のデータの配置を、1byteの並べ替え単位毎に並べ替えたパックデータ(31:0)を出力する場合について説明する。
なお、32bit(4byte)の転送パックデータを1byte毎に並べ替える場合の組み合わせは、24通り存在する。パックデータ配置変更部412は、この24通りの組み合わせから、メモリバス上に出力するパックデータのビット変化率(ビット変化数)が最も少ない転送パックデータ内の画素データの配置を判断して並べ替え処理を行ったパックデータを出力することが可能である。しかし、転送パックデータ内の画素データの配置を並べ替えた24通りの並べ替え情報(並べ替え処理の判断結果の情報)を表すためのビット数は、5bitである。この5bitの判断結果の情報は、それぞれのパックデータに対応しているため、全てのパックデータ分の判断結果の情報は、「5bit×パックデータの数」のビット数になってしまう。この全てのパックデータ分の判断結果の情報をパックデータ内の未使用ビットに付加すると、パックデータ内の判断結果の情報に使用されるビットの割合が多くなり、バースト転送の効率が低下してしまうことになる。また、転送パックデータ内の画素データの配置の判断に係る回路規模も増大してしまう。このため、全ての画素データの配置の組み合わせを、判断結果の情報としてパックデータ内の未使用ビットに付加するのは、必ずしも有効な手段とならない場合がある。
このため、パックデータ配置変更部412では、例えば、図6に示したような、予め定められた組み合わせの範囲内で、パックデータのビット変化率(ビット変化数)が最も少ない転送パックデータ内の画素データの配置を判断する。図6は、本実施形態の撮像装置1に備えたデータ変換部41内のパックデータ配置変更部412における並べ替え情報の組み合わせの一例を説明する図である。図6に示したように、パックデータ配置変更部412では、4つの並べ替えケース(並べ替えケース1〜4)が予め定められ、それぞれの並べ替えケース毎に、転送パックデータ内の画素データの並べ替え単位での配置が定められている。そして、それぞれの並べ替えケースに対応した並べ替え情報の値が決められている。なお、図6に示した表中の「単位」に続く数字は、説明を容易にするために付与した、並べ替え単位を識別する情報である。この数字は、入力された転送パックデータの並べ替え処理を行わない場合(並べ替えケース1)において、下位の並べ替え単位(1byte)から順に付与された数字であり、並べ替え処理によって画素データの配置がどの並べ替え単位の位置に並べ替えられたかを、識別するための情報である。
なお、並べ替え情報に使用されるビット数を少なくすることは、転送パックデータに含まれる未使用ビットのビット数が少ない場合においても、必要な並べ替え情報を付加することができるため、有効な方法である。
<データ配置方法>
図7は、本実施形態の撮像装置1に備えたデータ変換部41によって配置されたパックデータの一例を示した図である。図7(a)には、従来のバースト単位でのデータ配置方法(パッキング方法)で生成された、すなわち、パックデータ生成部411によって画素データの各ビットが配置された転送パックデータを示している。また、図7(b)には、本データ配置方法(パッキング方法)で転送パックデータ内の画素データの配置が変更されたパックデータ内のデータの配置を示している。
本パッキング方法では、パックデータ配置変更部412が、予め定められた並べ替え単位(1byte)毎に、転送パックデータ内の画素データの各ビットのデータをビット毎に比較し、予め定められた組み合わせの範囲内で転送パックデータ内の画素データの配置を並べ替えたバックデータを生成する。
まず、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」)をパッキングした転送パックデータを生成する。より具体的には、パックデータ生成部411は、図7(a)に示したように、1転送目に「R0」、「G1」、および「R2」のビット(0)〜ビット(9)、2転送目に「R2」のビット(10)、「G3」、「R4」、および「G5」のビット(0)〜ビット(8)、3転送目に「G5」のビット(9)〜ビット(10)、「R6」、「G7」、および「R8」のビット(0)〜ビット(7)、4転送目に「R8」のビット(8)〜ビット(10)、「G9」、および「R10」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
なお、パックデータ生成部411は、パッキング単位内に画素データの全てのビットを配置することができない場合には、次の画素データ(例えば、ベイヤーデータ内の画素データ「G11」)をパッキングしない。これは、データ変換部41は、パッキング単位で各画素データをパッキングするため、「G11」の画素データの一部をパッキングすると、「G11」のデータがパッキング単位を跨いでしまうことになるためである。従って、パックデータ生成部411は、画素データが配置されなかったパッキング単位内の転送パックデータのビット(図7においては、4転送目の転送パックデータのビット(25)〜ビット(31))を、未使用ビットにする。そして、この未使用ビットに、パックデータ配置変更部412が、各転送パックデータ内の画素データの配置を並べ替えた並べ替え情報を付加(ビット結合)できるようにする。
続いて、パックデータ配置変更部412が、前回出力したパックデータの各ビットの値と今回入力された転送パックデータの各ビットの値とを比較して、並べ替え単位におけるビット変化率をそれぞれ算出する。そして、パックデータ配置変更部412は、算出したビット変化率に基づいて、図6に示した予め定められた並べ替えケースにおいて、前回出力したパックデータに対して今回出力するパックデータのビット毎の変化率が最も少なくなる並べ替えケースを選択する。そして、選択した並べ替えケースの配置となるように、今回出力するパックデータ内の画素データの配置を並べ替え単位毎に並べ替えたパックデータを生成する。
図7(b)に示したパックデータ内のデータの配置では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース2が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース3が選択された場合を示している。また、3転送目のパックデータから4転送目のパックデータに替わるときには、4転送目のパックデータの未使用ビットに、各転送におけるパックデータ内の画素データの配置を並べ替えたときの並べ替え情報が付加(ビット結合)されるため、並べ替え処理を行わない並べ替えケース1が選択される。
そして、パックデータ配置変更部412は、4転送目のパックデータの未使用ビット(図7においては、4転送目のパックデータのビット(25)〜ビット(31))に選択した並べ替えケースに対応した並べ替え情報の値をビット結合する。より具体的には、4転送目のパックデータのビット(25)およびビット(26)に並べ替えケース2に対応した並べ替え情報(“01”)を、4転送目のパックデータのビット(27)およびビット(28)に並べ替えケース3に対応した並べ替え情報(“10”)を、4転送目のパックデータのビット(29)およびビット(30)に並べ替えケース1に対応した並べ替え情報(“00”)を、それぞれビット結合する。
このようにして、本パッキング方法では、バースト転送における1サイクル分のメモリアクセス(1転送)毎に、転送パックデータ内の画素データの配置を並べ替えたパックデータを生成することによって、バースト転送時における各転送間でのメモリバスの各ビットの変化量を少なくすることができる。これにより、本パッキング方法では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法よりも、画像データの転送に係る消費電力を低減させることができる。
また、転送パックデータ内の画素データを並べ替え単位毎に並べ替える組み合わせの数を、予め定められた組み合わせの数にすることによって、並べ替え情報のビット数を少なくすることができる。これにより、パックデータ内の並べ替え情報に使用されるビットの割合を少なくして、バースト転送の効率の低下を抑えると共に、並べ替えケースの選択に係る回路規模が安易に増大してしまうことを抑えることができる。
なお、本パッキング方法では、転送パックデータ内の画素データを並べ替える組み合わせの数を、予め定められた組み合わせの数にすることによって、並べ替え情報に使用されるビット数を少なくする場合について説明したが、他の方法でも並べ替え情報に使用されるビット数を少なくすることができる。例えば、並べ替え単位のビット数を、例えば、16bit:2byteのように多くすることによって、並べ替え情報のビット数を少なくすることができる。なお、並べ替え単位のビット数を変えた場合のデータ配置方法は、図4に示したパックデータの生成方法の並べ替え単位のビット数が変わるのみであるため、詳細な説明は省略する。
次に、本実施形態の撮像装置1に備えたデータ変換部におけるパックデータの出力順番の変更方法(出力順変更方法)について説明する。本実施形態の撮像装置1では、例えば、データ変換部41が入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部52が入力されたパックデータを元の画素データに戻す。従って、データ変換部41が出力するパックデータの順番が異なる場合でも、データ逆変換部52が入力されたパックデータの順番を元に戻すことによって、本実施形態の撮像装置1における一連の処理は問題なく実行することができる。なお、以下の説明においては、データ変換部41に、図14に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は11bitであり、メモリバス幅は32bitであるものとする。
なお、データ逆変換部52によるパックデータの順番を元の順番に戻す方法は、データ変換部41によるパックデータの出力順変更方法と逆の方法であるため、詳細な説明は省略する。
<データ出力順変更方法>
図8は、本実施形態の撮像装置1に備えたデータ変換部41によってデータ出力順が変更されたパックデータの一例を示した図である。図8(a)には、従来のバースト単位でのデータ配置方法(パッキング方法)で生成された、すなわち、パックデータ生成部411によって画素データの各ビットが配置された転送パックデータを示している。また、図8(b)には、本データ出力順変更方法でパックデータを出力する順番が入れ替えられ、さらに上述したパッキング方法で転送パックデータ内の画素データの配置が変更されたパックデータ内のデータの配置を示している。
パックデータ配置変更部412が、上述したパッキング方法によって転送パックデータ内の画素データの配置を変更する際に、事前に1バースト内の転送パックデータ(図8においては、4つのパックデータ)の順番を入れ替えることによって、バースト転送時における各転送間(連続する2転送間)のメモリバスの各ビットの変化量を少なくすることができる場合がある。
本データ出力順変更方法では、パックデータ配置変更部412内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitの転送パックデータを一時的に保持するメモリ部を備え、転送パックデータ内の画素データの配置を変更する際に、並べ替え処理を行う転送パックデータの順番を入れ替える。パックデータ配置変更部412は、最初に出力するパックデータに対応した転送パックデータを、今回のバースト転送における基準の転送パックデータとして、上述したパッキング方法によって以降に出力するパックデータに対応した転送パックデータ内の画素データの配置を変更する。なお、パックデータ配置変更部412がパックデータを出力する順番は、予め設定される。パックデータ配置変更部412は、予め設定されたパックデータの出力順番に基づいて、転送パックデータに対する並べ替え処理を行い、並べ替え処理をした後のパックデータを順次出力する。
なお、データ逆変換部52内のパックデータ配置変更部521にも、パックデータ配置変更部412に設定されたパックデータの出力順番と同様の順番が、パックデータの入力順番として予め設定される。これにより、パックデータ配置変更部521は、並べ替え情報が付加されているパックデータを認識することができる。パックデータ配置変更部521は、予め設定されたパックデータの入力順番に基づいて、上述したパッキング方法と逆の方法で、入力されたパックデータから元の転送パックデータを生成する。
ここで、図8を用いて、本データ出力順変更方法によってパックデータを出力する順番を入れ替える場合の一例を説明する。なお、以下の説明においては、パックデータの出力順番を、パックデータ配置変更部412に転送パックデータが入力された順番と逆の順番にする場合、すなわち、1転送目〜4転送目までの転送パックデータを、4転送目→3転送目→2転送目→1転送目の順番で出力する場合について説明する。従って、パックデータ配置変更部412には、4転送目→3転送目→2転送目→1転送目の順番を表すパックデータの出力順番が予め設定されている。
まず、パックデータ配置変更部412は、パックデータ生成部411から入力された、1バースト(4転送)分の全ての転送パックデータを、内部に備えたメモリ部に保持する。 図8に示した一例では、図8(a)に示した1転送目〜4転送目までの転送パックデータが、パックデータ配置変更部412内のメモリ部にそれぞれ保持される。そして、保持された各転送パックデータを、予め設定されたパックデータの出力順番で順次出力する。これは、例えば、図3に示したパックデータ配置変更部412では、パックデータ配置変更部412内のメモリ部に保持している転送パックデータが、入力データDINとして順次入力される動作であると考えると、容易に想定することができる。
続いて、パックデータ配置変更部412は、最初に出力する4転送目の転送パックデータを、今回のバースト転送における基準の転送パックデータとする。この基準とした転送パックデータには、並べ替え処理を行わないため、そのまま1転送目のパックデータとして出力される。ただし、この1転送目のパックデータには、未使用ビット(図8においては、1転送目のパックデータのビット(25)〜ビット(31))が存在する。このため、全ての並べ替えケースの選択が終了した後に、データ結合部4126によって、対応する並べ替え情報の値をビット結合する必要がある。従って、この1転送目のパックデータは、パックデータ配置変更部412内に備えたメモリ部に保持される。
なお、4転送目の転送パックデータを保持するメモリ部と、1転送目のパックデータを保持するメモリ部とは、同じメモリ部であっても、異なるメモリ部であってもよい。同じメモリ部である場合には、例えば、4転送目の転送パックデータを出力した後に、1転送目のパックデータを再度保持する構成にすることによって実現することができる。また、異なるメモリ部である場合には、例えば、1転送目のパックデータを保持するメモリ部を、データ結合部4126内に備える構成にすることもできる。
続いて、パックデータ配置変更部412は、1転送目のパックデータの各ビットの値と次に出力する転送パックデータ(図8(a)に示した3転送目の転送パックデータ)の各ビットの値とを比較して、並べ替え単位におけるビット変化率をそれぞれ算出する。そして、パックデータ配置変更部412は、算出したビット変化率に基づいて、図6に示した予め定められた並べ替えケースにおいて、1転送目のパックデータに対して次に出力するパックデータのビット毎の変化率が最も少なくなる並べ替えケースを選択する。そして、選択した並べ替えケースの配置となるように、次に出力する3転送目の転送パックデータ内の画素データの配置を並べ替え単位毎に並べ替えたパックデータ(図8(b)に示した2転送目のパックデータ)を生成する。
以降、同様に、図8(b)に示した3転送目のパックデータおよび4転送目のパックデータに対応した並べ替えケースを選択する。図8(b)に示したパックデータ内のデータの配置では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース2が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース3が選択され、3転送目のパックデータから4転送目のパックデータに替わるときに並べ替えケース3が選択された場合を示している。そして、同様に、選択した並べ替えケースの配置となるように、並べ替え処理を行った3転送目のパックデータおよび4転送目のパックデータを、それぞれ生成する。ここで生成した2転送目〜4転送目までのそれぞれのパックデータは、1転送目のパックデータと同様に、パックデータを保持するメモリ部にそれぞれ保持される。これは、並べ替え情報を含むパックデータが1転送目のパックデータであるため、1転送目のパックデータが出力された後に、以降のパックデータの出力を行うためである。従って、並べ替え情報を含むパックデータが、例えば、3転送目である場合には、1転送目および2転送目のパックデータは、並べ替え処理をした後に順次出力してもよい。なお、パックデータを保持するメモリ部の構成は、1転送目のパックデータを保持するメモリ部と同様の構成で、それぞれのパックデータに対応して備えられている。
続いて、パックデータ配置変更部412は、全ての並べ替えケースの選択が終了した後、パックデータを保持するメモリ部に保持している1転送目のパックデータの未使用ビットに、2転送目〜4転送目のパックデータに対応する並べ替え情報の値をビット結合し、並べ替え情報が付加された1転送目のパックデータを出力する。より具体的には、図8(b)に示したように、1転送目のパックデータのビット(25)およびビット(26)に並べ替えケース2に対応した並べ替え情報(“01”)を、ビット(27)およびビット(28)に並べ替えケース3に対応した並べ替え情報(“10”)を、ビット(29)およびビット(30)に並べ替えケース4に対応した並べ替え情報(“11”)を、それぞれビット結合して出力する。
続いて、パックデータ配置変更部412は、予め設定されたパックデータの出力順番に基づいて、パックデータを保持するメモリ部に保持している2転送目のパックデータ以降のパックデータを順次出力する。これにより、データ変換部41から、予め設定されたパックデータの出力順番で、それぞれのパックデータが順次出力される。より具体的には、図8(b)に示したように、図8(a)に示した4転送目の転送パックデータに対応したパックデータが1転送目に、図8(a)に示した3転送目の転送パックデータに対応したパックデータが2転送目に、図8(a)に示した2転送目の転送パックデータに対応したパックデータが3転送目に、図8(a)に示した1転送目の転送パックデータに対応したパックデータが4転送目に、それぞれ出力順番が入れ替えられて出力される。
このようにして、本データ出力順変更方法では、出力するパックデータの順番を入れ替えることによって、図8(b)に示した4転送目の転送パックデータにおいても、並べ替え処理を行うことができるようになる。すなわち、図7に示したパッキング方法では、4転送目のパックデータには、並べ替え情報が付加されるため、並べ替え情報を付加するビットの位置を固定する必要があるため、並べ替え処理を行うことができる転送パックデータは、2転送目と3転送目との転送パックデータのみであった。これに対して、本データ出力順変更方法では、出力するパックデータの順番を入れ替えることによって、並べ替え情報が付加されるパックデータを1転送目のパックデータとしたため、4転送目のパックデータも並べ替え処理が行われたパックデータとすることができる。これにより、本データ出力順変更方法では、上述した(図7に示した)パッキング方法よりも、画像データの転送に係る消費電力を、さらに低減させることができる。
上記に述べたように、本実施形態の撮像装置1に備えたデータ変換部41および51では、パックデータ配置変更部412が、予め定められた並べ替え単位(例えば、1byte)毎に、転送パックデータ内の画素データの各ビットのデータをビット毎に比較し、予め定められた組み合わせの範囲内で転送パックデータ内の画素データの配置を並べ替える。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量が少なくなるように、転送パックデータ内の画素データの配置を変更することができる。このことにより、本実施形態の撮像装置1に備えたデータ変換部41および51では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法よりも、画像データの転送に係る消費電力を低減させることができる。これにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
また、本実施形態の撮像装置1に備えたデータ変換部41および51では、予め定められた並べ替えの組み合わせに基づいて、転送パックデータ内の画素データを並べ替え単位毎に並べ替えることができため、並べ替えケースの選択に係る回路規模の増大を、最小限に抑えることができる。
また、本実施形態の撮像装置1に備えたデータ変換部41および51では、予め定められたパックデータの出力順番に基づいて、転送パックデータ内の画素データを並べ替えたパックデータの出力順番を変えることができる。これにより、転送パックデータ内の画素データを並べ替え単位毎に並べ替えたことによる効果を、十分に得ることができる。
なお、上記に述べたことからわかるように、並べ替え情報が付加されるパックデータは、並べ替え情報を付加するビットの位置が固定されていることが必要である。言い換えれば、並べ替え情報をビット結合するパックデータ内のビットの位置が固定されていれば、並べ替え情報が付加されているビットを含む並べ替え単位以外の並べ替え単位同士であれば、並べ替え情報が付加されるパックデータ内であっても並べ替え処理を行うことができる。例えば、図7(b)に示したパックデータ内のデータの配置では、並べ替え情報が付加されているビットが含まれる並べ替え単位(ビット(24)〜ビット(31)の1byteの並べ替え単位)が、4転送目のみ固定されていればよい。そのため、例えば、図6に示した予め定められた並べ替えケースと同様に、4転送目のみに対応して、図6に示した並べ替えケース1の単位0〜単位2で並べ替えを行う並べ替えケースを予め定めておき、4転送目の並べ替えケースの選択においては、4転送目のみに対応した並べ替えケースから、パックデータのビット毎の変化率が最も少なくなる並べ替えケースを選択するようにすることもできる。これにより、4転送目のパックデータにおいても、並べ替え処理を行うことができ、画像データの転送に係る消費電力を、さらに低減させることができる。
上記に述べた実施形態においては、ベイヤーデータに本実施形態のパッキング方法およびデータ出力順変更方法を適用したデータ処理装置およびデータ処理方法について説明したが、本実施形態のパッキング方法およびデータ出力順変更方法は、ベイヤーデータへの適用に限定されるものではなく、RGBデータ、YC422点順次やYC444点順次フォーマットのYCbCrデータ、またはOSDデータなど、様々な画像データに適用することができる。また、本実施形態のパッキング方法およびデータ出力順変更方法は、画像データへの適用に限定されるものではなく、音声データなど、他の形式のデータに適用することもできる。
<適用例>
次に、本実施形態のパッキング方法を、他の形式の画像データや、画像データ以外のデータに適用した場合の一例について説明する。なお、本実施形態のパッキング方法では、図6に示した並べ替えケースから転送パックデータ内の画素データの並べ替え単位で並べ替えるときの配置を選択する場合について説明する。なお、本実施形態のデータ出力順変更方法を、他の形式の画像データや、画像データ以外のデータに適用する場合については、上述したデータ出力順変更方法と同様に考えることができるため、詳細な説明は省略する。
まず、本実施形態のパッキング方法をRGBデータに適用した場合の一例について説明する。図9は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、別の画像データ(RGBデータ)に適用した場合の一例を示した図である。なお、図9では、10bitのRGBデータに、従来のバースト単位でのパッキング方法を適用した一例、すなわち、パックデータ生成部411によって画素データの各ビットが配置された転送パックデータの一例(図9(a)参照)と、本実施形態のパッキング方法で転送パックデータ内の画素データの配置が変更されたパックデータ内のデータの配置の一例(図9(b)参照)とを、それぞれ示している。
図9(a)に示したように、パックデータ生成部411は、RGBデータ(10bit×3色=30bit)を単純に配置した転送パックデータを生成する。そして、パックデータ配置変更部412は、図9(b)に示したように、本実施形態のパッキング方法によって、予め定められた並べ替え単位(例えば、1byte)毎に、転送パックデータ内の画素データの各ビットのデータをビット毎に比較し、予め定められた組み合わせの範囲内で転送パックデータ内の画素データの配置を並べ替える。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量が少なくなるように、転送パックデータ内の画素データの配置を並べ替えたパックデータを生成する。
図9の例では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース4が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース2が選択された場合を示している。また、3転送目のパックデータから4転送目のパックデータに替わるときには、4転送目のパックデータの未使用ビットに、各転送におけるパックデータ内の画素データの配置を並べ替えたときの並べ替え情報が付加(ビット結合)されるため、並べ替えケース1が選択される。
そして、パックデータ配置変更部412は、4転送目のパックデータの未使用ビット(ビット(24)〜ビット(31))に選択した並べ替えケースに対応した並べ替え情報の値をビット結合する。より具体的には、4転送目のパックデータのビット(24)およびビット(25)に並べ替えケース4に対応した並べ替え情報(“11”)を、4転送目のパックデータのビット(26)およびビット(27)に並べ替えケース2に対応した並べ替え情報(“01”)を、4転送目のパックデータのビット(28)およびビット(29)に並べ替えケース1に対応した並べ替え情報(“00”)を、それぞれビット結合する。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
図10は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、さらに別の画像データ(YCbCrデータ)に適用した場合の一例を示した図である。なお、図10では、図10(a)に示したような、10bitのY、8bitのCbおよびCrデータに、従来のバースト単位でのパッキング方法を適用した一例、すなわち、パックデータ生成部411によって画素データの各ビットが配置された転送パックデータの一例(図10(b)参照)と、本実施形態のパッキング方法で転送パックデータ内の画素データの配置が変更されたパックデータ内のデータの配置の一例(図10(c)参照)とを、それぞれ示している。
図10(b)に示したように、パックデータ生成部411は、YCbCrデータを単純に配置した転送パックデータを生成する。そして、パックデータ配置変更部412は、図10(c)に示したように、本実施形態のパッキング方法によって、予め定められた並べ替え単位(例えば、1byte)毎に、転送パックデータ内の画素データの各ビットのデータをビット毎に比較し、予め定められた組み合わせの範囲内で転送パックデータ内の画素データの配置を並べ替える。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量が少なくなるように、転送パックデータ内の画素データの配置を並べ替えたパックデータを生成する。
図10の例では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース3が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース4が選択された場合を示している。また、3転送目のパックデータから4転送目のパックデータに替わるときには、4転送目のパックデータの未使用ビットに、各転送におけるパックデータ内の画素データの配置を並べ替えたときの並べ替え情報が付加(ビット結合)されるため、並べ替えケース1が選択される。
そして、パックデータ配置変更部412は、4転送目のパックデータの未使用ビット(ビット(22)〜ビット(31))に選択した並べ替えケースに対応した並べ替え情報の値をビット結合する。より具体的には、4転送目のパックデータのビット(22)およびビット(23)に並べ替えケース3に対応した並べ替え情報(“10”)を、4転送目のパックデータのビット(24)およびビット(25)に並べ替えケース4に対応した並べ替え情報(“11”)を、4転送目のパックデータのビット(26)およびビット(27)に並べ替えケース1に対応した並べ替え情報(“00”)を、それぞれビット結合する。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
図11は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、さらに別の画像データ(OSDデータ)に適用した場合の一例を示した図である。なお、図11では、6bitのOSDデータに、従来のバースト単位でのパッキング方法を適用した一例、すなわち、パックデータ生成部411によって画素データの各ビットが配置された転送パックデータの一例(図11(a)参照)と、本実施形態のパッキング方法で転送パックデータ内の画素データの配置が変更されたパックデータ内のデータの配置の一例(図11(b)参照)とを、それぞれ示している。
図11(a)に示したように、パックデータ生成部411は、OSDデータを単純に配置した転送パックデータを生成する。そして、パックデータ配置変更部412は、図11(b)に示したように、本実施形態のパッキング方法によって、予め定められた並べ替え単位(例えば、1byte)毎に、転送パックデータ内の画素データの各ビットのデータをビット毎に比較し、予め定められた組み合わせの範囲内で転送パックデータ内の画素データの配置を並べ替える。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量が少なくなるように、転送パックデータ内の画素データの配置を並べ替えたパックデータを生成する。
図11の例では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース3が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース2が選択された場合を示している。また、3転送目のパックデータから4転送目のパックデータに替わるときには、4転送目のパックデータの未使用ビットに、各転送におけるパックデータ内の画素データの配置を並べ替えたときの並べ替え情報が付加(ビット結合)されるため、並べ替えケース1が選択される。
そして、パックデータ配置変更部412は、4転送目のパックデータの未使用ビット(ビット(24)〜ビット(31))に選択した並べ替えケースに対応した並べ替え情報の値をビット結合する。より具体的には、4転送目のパックデータのビット(24)およびビット(25)に並べ替えケース3に対応した並べ替え情報(“10”)を、4転送目のパックデータのビット(26)およびビット(27)に並べ替えケース2に対応した並べ替え情報(“01”)を、4転送目のパックデータのビット(28)およびビット(29)に並べ替えケース1に対応した並べ替え情報(“00”)を、それぞれビット結合する。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
図12は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、別のデータ(音声データ)に適用した場合の一例を示した図である。なお、図12では、それぞれ24bitのR(右)データおよびL(左)データを64bitのメモリバスに適用した場合を示している。そして、図12(a)には、従来のバースト単位でのパッキング方法を適用した一例、すなわち、パックデータ生成部411によって画素データの各ビットが配置された転送パックデータの一例を示し、図12(b)には、本実施形態のパッキング方法で転送パックデータ内の画素データの配置が変更されたパックデータ内のデータの配置の一例を示している。なお、図12においては、転送パックデータ内の音声データを並べ替える並べ替え単位を、2byte(16bit)とし、図6に示した並べ替えケースにおける並べ替え単位を、2byteの単位に読み換えて、並べ替えケースを選択している場合を示している。
図12(a)に示したように、パックデータ生成部411は、音声データを単純に配置した転送パックデータを生成する。そして、パックデータ配置変更部412は、図12(b)に示したように、本実施形態のパッキング方法によって、予め定められた並べ替え単位(2byte)毎に、転送パックデータ内の画素データの各ビットのデータをビット毎に比較し、予め定められた組み合わせの範囲内で転送パックデータ内の画素データの配置を並べ替える。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量が少なくなるように、転送パックデータ内の画素データの配置を並べ替えたパックデータを生成する。
図12の例では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース4が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース3が選択された場合を示している。また、3転送目のパックデータから4転送目のパックデータに替わるときには、4転送目のパックデータの未使用ビットに、各転送におけるパックデータ内の画素データの配置を並べ替えたときの並べ替え情報が付加(ビット結合)されるため、並べ替えケース1が選択される。
そして、パックデータ配置変更部412は、4転送目のパックデータの未使用ビット(ビット(48)〜ビット(63))に選択した並べ替えケースに対応した並べ替え情報の値をビット結合する。より具体的には、4転送目のパックデータのビット(48)およびビット(49)に並べ替えケース4に対応した並べ替え情報(“11”)を、4転送目のパックデータのビット(50)およびビット(51)に並べ替えケース3に対応した並べ替え情報(“10”)を、4転送目のパックデータのビット(52)およびビット(53)に並べ替えケース1に対応した並べ替え情報(“00”)を、それぞれビット結合する。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
上記に述べたとおり、本発明を実施するための形態によれば、予め定められた並べ替え単位毎に、転送パックデータ内のデータをビット毎に比較し、並べ替え単位毎に、転送パックデータ内のデータの配置を変更する。また、転送パックデータ内のデータの配置を変更した情報を、パックデータの未使用ビットに付加して出力する。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくすることができると共に、転送パックデータを容易に復元することができる。しかも、データの転送効率は、従来と同等のデータ転送効率を維持することができる。これにより、像装置内の各構成要素(処理ブロック)とメモリとの間でのデータの受け渡しに係る消費電力の低減効果を十分に得ることができる。
また、本発明を実施するための形態によれば、パッキング単位内のパックデータの順番を入れ替える。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を、さらに少なくすることができる。
また、本発明を実施するための形態によれば、転送パックデータ内のデータの配置を変更するときのデータの配置の組み合わせの数を、予め定められた組み合わせの数に定めておく。これにより、転送パックデータ内のデータの配置の組み合わせが多くなることによって、並べ替え情報に使用するビット数が増加し、パックデータ内の並べ替え情報に使用されるビットの割合が大きくなるのを抑えることができる。また、転送パックデータ内のデータの配置の組み合わせが多くなることによって、並べ替えケースの選択に係る回路の規模が増大してしまうことを抑えることができる。このことにより、データの転送効率の低下を抑えることができる。
なお、本実施形態においては、4転送を1回のバースト転送の単位とし、1バーストをデータのパッキング単位とした場合について説明したが、1回のバースト転送における転送の回数や、データのパッキングの単位は、本発明を実施するための形態に限定されるものではない。例えば、64転送を1回のバースト転送の単位とし、1バースト内の16転送をデータのパッキングの単位とする、すなわち、1バースト内に4つのパッキング単位が含まれる構成にすることもできる。また、例えば、16転送をデータのパッキングの単位とし、8転送を1回のバースト転送の単位とする、すなわち、パッキング単位が2回のバースト転送に跨っている構成にすることもできる。
また、本実施形態においては、撮像装置内の構成要素間でデータの受け渡しを行う場合のパッキング方法を、いくつかのデータに適用した場合について説明したが、本実施形態のパッキング方法を適用することができる範囲は、本発明を実施するための形態に限定されるものではなく、各構成要素間でデータの受け渡しを行うシステムであれば、どのようなシステムにも適用することができる。
また、本実施形態においては、例えば、データ変換部を出力DMA部の前段の処理ブロックとして配置し、データ逆変換部を入力DMA部の後段の処理ブロックとして配置した場合の一例について説明したが、データ変換部およびデータ逆変換部の配置は、本発明を実施するための形態に限定されるものではない。例えば、データ変換部を出力DMA部内の構成要素とすることや、データ逆変換部を入力DMA部内の構成要素とすることもできる。また、例えば、データ変換部を前段の撮像処理部内の構成要素とすることや、データ逆変換部を後段の画像処理部内の構成要素とすることもできる。
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。