(57)【特許請求の範囲】
【請求項１】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、１つの前記転送データを１つの転送単位とし、予め定められた数の前記転送単位を１つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、
を備え、
前記データ変換部は、
前記入力データを、予め定められた複数の異なる配置方法に基づいて前記データバスに配置した第１の変換データを生成する複数のデータ生成部と、
複数の前記データ生成部のそれぞれに対応し、該データ生成部がｎ（ｎは１以上の自然数）回目に出力した前記第１の変換データ内の各ビットの値と、該データ生成部がｎ＋１回目に出力した前記第１の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第１の変換データ毎に算出する複数のビット変化数算出部と、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第１の変換データを生成したいずれか１つの前記データ生成部を選択し、該選択した前記データ生成部を表す選択情報を出力するビット変化数比較部と、
前記選択情報に基づいて、それぞれの前記データ生成部から出力されたそれぞれの前記第１の変換データの内、いずれか１つの前記第１の変換データを選択し、該選択した前記第１の変換データを、選択データとして出力する第１のデータ選択部と、
前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項２】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較した結果、前記ビット変化数の値が最も少ない前記第１の変換データを生成した前記データ生成部を選択する、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記ビット変化数算出部のそれぞれは、
前記第１のデータ選択部によって選択された前記選択データを、それぞれの前記データ生成部がｎ＋１回目に出力した前記第１の変換データとして、前記ビット変化数を算出する、
ことを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を、前記変換単位毎にまとめて比較し、該比較した結果に基づいて前記変換単位での前記第１の変換データを生成した前記データ生成部を選択し、
前記第１のデータ選択部は、
前記選択情報に基づいて、それぞれの前記データ生成部から出力された前記変換単位のそれぞれの前記第１の変換データの内、いずれか１つの前記変換単位の前記第１の変換データを選択し、該選択した前記変換単位の前記第１の変換データを、前記変換単位の選択データとして出力し、
前記ビット結合部は、
前記変換単位の選択データを前記変換単位の転送データとして出力する際に、該変換単位の選択データに含まれる前記第１の変換データの内、前記入力データが配置されていない未使用ビットを含む前記第１の変換データの予め定められた前記未使用ビットの位置に、前記選択情報を結合した結合データを生成し、該変換単位の選択データに含まれる前記第１の変換データ、または前記結合データのいずれか１つのデータを、前記転送単位毎に順次出力する、
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を前記変換単位毎にまとめて比較した結果、前記変換単位内に含まれる全ての前記第１の変換データにおいて、まとめた前記ビット変化数の値が最も少ない前記変換単位での前記第１の変換データを生成した前記データ生成部を選択する、
ことを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、１つの前記転送データを１つの転送単位とし、予め定められた数の前記転送単位を１つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、
を備え、
前記データ逆変換部は、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められた複数の異なる配置方法に基づいて前記データバスに配置したそれぞれの第１の変換データを生成し、ｎ（ｎは１以上の自然数）回目に生成した前記第１の変換データ内の各ビットの値と、ｎ＋１回目に出力した前記第１の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第１の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第１の変換データの中から選択したいずれか１つの前記第１の変換データと、いずれの前記第１の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第１の変換データとに分離するビット分離部と、
前記転送データの転送元のデータ処理装置が前記第１の変換データを生成する際の予め定められた複数の異なる配置方法のそれぞれに対応した、予め定められた複数の異なる復元方法に基づいて、前記第１の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第２の変換データを生成する複数のデータ復元部と、
前記選択情報に基づいて、それぞれの前記データ復元部から出力されたそれぞれの前記第２の変換データの内、いずれか１つの前記第２の変換データを選択し、該選択した前記第２の変換データを、元の前記入力データとして出力する第２のデータ選択部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項７】
前記ビット分離部は、
前記入力された前記転送データを前記変換単位毎にまとめ、該変換単位の前記転送データの内、いずれかの前記転送データ内の予め定められたビットの位置に結合されている前記選択情報を分離し、
前記第２のデータ選択部は、
前記選択情報に基づいて、それぞれの前記データ復元部から出力された前記変換単位のそれぞれの前記第２の変換データの内、いずれか１つの前記変換単位の前記第２の変換データを選択し、該選択した前記変換単位の前記第２の変換データを、元の前記入力データとして順次出力する、
ことを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、１つの前記転送データを１つの転送単位とし、予め定められた数の前記転送単位を１つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、
を含み、
前記データ変換ステップは、
前記入力データを、予め定められた複数の異なる配置方法に基づいて前記データバスに配置した第１の変換データを生成する複数のデータ生成ステップと、
複数の前記データ生成ステップのそれぞれに対応し、該データ生成ステップによってｎ（ｎは１以上の自然数）回目に出力した前記第１の変換データ内の各ビットの値と、該データ生成ステップによってｎ＋１回目に出力した前記第１の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第１の変換データ毎に算出する複数のビット変化数算出ステップと、
それぞれの前記データ生成ステップにおけるそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第１の変換データを生成したいずれか１つの前記データ生成ステップを選択し、該選択した前記データ生成ステップを表す選択情報を出力するビット変化数比較ステップと、
前記選択情報に基づいて、それぞれの前記データ生成ステップにおいて出力されたそれぞれの前記第１の変換データの内、いずれか１つの前記第１の変換データを選択し、該選択した前記第１の変換データを、選択データとして出力する第１のデータ選択ステップと、
前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項９】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、１つの前記転送データを１つの転送単位とし、予め定められた数の前記転送単位を１つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、
を含み、
前記データ逆変換ステップは、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められた複数の異なる配置方法に基づいて前記データバスに配置したそれぞれの第１の変換データを生成し、ｎ（ｎは１以上の自然数）回目に生成した前記第１の変換データ内の各ビットの値と、ｎ＋１回目に出力した前記第１の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第１の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第１の変換データの中から選択したいずれか１つの前記第１の変換データと、いずれの前記第１の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第１の変換データとに分離するビット分離ステップと、
前記転送データの転送元のデータ処理装置が前記第１の変換データを生成する際の予め定められた複数の異なる配置方法のそれぞれに対応した、予め定められた複数の異なる復元方法に基づいて、前記第１の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第２の変換データを生成する複数のデータ復元ステップと、
前記選択情報に基づいて、それぞれの前記データ復元ステップにおいて出力されたそれぞれの前記第２の変換データの内、いずれか１つの前記第２の変換データを選択し、該選択した前記第２の変換データを、元の前記入力データとして出力する第２のデータ選択ステップと、
を含む、
ことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置およびデータ処理方法に関する。
【背景技術】
【０００２】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、撮像装置の画素数や速度の向上に伴って、膨大な画素のデータ（以下、「画素データ」という）が含まれる画像データを処理している。このような撮像装置においては、撮像装置内の各処理ブロックが撮影によって得られた画像データを処理する際に、データを一時的に記憶するメモリが利用されている。メモリには、各処理段階の画像データが一時記憶される。
【０００３】
図１９は、従来の撮像装置の概略構成を示したブロック図である。例えば、図１９に示した撮像装置における撮影動作では、以下のような手順で画像データの処理が行われている。
（手順１）：まず、撮像処理部が、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ：電荷結合素子）型の固体撮像素子によって得られた画像データを、出力ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）部を介してメモリに転送して一時記憶する。
（手順２）：続いて、画像処理部が、メモリに一時記憶している画像データを、入力ＤＭＡ部を介して読み出す。そして、画像処理部は、読み出した画像データに対して記録用の画像処理や、表示用の画像処理を行う。その後、画像処理した後の画像データを、出力ＤＭＡ部を介してメモリに転送して一時記憶する。
（手順３）：続いて、表示処理部が、表示用の画像処理がされた画像データを、入力ＤＭＡ部を介して読み出し、表示デバイスに表示させる。
【０００４】
このように、撮像装置では、前段の処理ブロックが、画像データをメモリに一時記憶する。そして、後段の処理ブロックが、メモリに記録されている画像データを読み出して、次の処理を行う。このように、撮像装置内の各処理ブロックが、メモリを介して処理対象の画像データの受け渡しを行うことによって、撮像装置の全体の処理を順次行っている。
【０００５】
近年、静止画用カメラ、動画用カメラなどの撮像装置においては、長い時間連続して使用できることが望まれており、撮像装置内の電気回路の消費電力を低減させる技術が必要とされている。撮像装置の消費電力を低減させるための１つの方法として、各処理ブロック（電気回路）とメモリとの間での画像データの転送速度を高速にする方法が挙げられる。画像データの転送速度の高速化は、例えば、撮像装置が動作するクロックの周波数を高くしたり、各処理ブロックとメモリ間の画像データの転送期間を短縮させたりすることによって実現することができる。これらの方法は、画像データの転送速度を高速にすることによって、画像データの転送に係る消費電力を低減させるものである。
【０００６】
処理ブロックとメモリ間の画像データの転送期間を短縮させるための技術として、特許文献１に開示されているようなパッキングという技術が知られている。特許文献１で開示されたパッキング技術は、画像データ内の各画素データをメモリに転送する際に使用されるデータバスのバス幅を拡張し、隣接する複数の画素データをデータバスに配置（パッキング）することによって、複数の画素データを一度に転送するという技術である。この技術によって、全ての画素データを転送するために要するデータ転送の回数を、画素データを１画素毎に転送する以前のデータ転送に比べて少なくすることができ、画像データのデータ転送に係る期間を短縮することができる。例えば、図２０に示したような、１６行×１６列のベイヤー配列のＣＣＤから得られた画素データをメモリに転送する場合、特許文献１で開示されたパッキング技術では、４画素分の画素データを一度に転送する単位とすることによって、画像データの転送期間を１／４に短縮することができる。これにより、画素データを１画素ずつメモリに転送する場合に比べて、撮像装置内の電気回路の消費電力を低減させることができる。
【０００７】
また、さらに画像データの転送期間を短縮する技術として、ＤＭＡのバースト転送を利用したパッキング方法が考えられる。これは、予め定められた一定のサイクル数でメモリにアクセスする単位である１バーストを、画素データをパッキングする単位として考える方法である。図２１に画素データのパッキングの一例を示す。図２１（ａ）は、特許文献１で開示されたパッキング方法で図２０に示した画素データをパッキングした場合の一例を示し、図２１（ｂ）は、バーストの単位で図２０に示した画素データをパッキングした場合の一例を示している。なお、図２１では、画素データをメモリに転送する際に使用するデータバス（以下、「メモリバス」という）のバス幅（以下、「メモリバス幅」という）を３２ｂｉｔとし、バースト転送における１サイクル分のメモリアクセス（以下、「１転送」という）を４回、すなわち、４転送で１回のバースト転送を行う場合の例を示している。そして、図２１（ａ）および図２１（ｂ）では、それぞれ上から順に、１画素の画素データの分解能、すなわち、画素データのビット数が、９ｂｉｔ、１０ｂｉｔ、１２ｂｉｔ、および１４ｂｉｔである場合の一例を示している。
【０００８】
図２１からわかるように、図２１（ａ）に示した特許文献１で開示されたパッキング方法では、１転送あたり２画素分の画素データがメモリバスに配置され、１バーストあたり８画素分の画素データをメモリに転送することができる。これに対して図２１（ｂ）に示したバースト単位でのパッキング方法では、それぞれ、１４画素分、１２画素分、１０画素分、および９画素分の画素データをメモリに転送することができる。これは、特許文献１で開示されたパッキング方法は、メモリバス幅、すなわち、１転送の単位で画素データを配置（パッキング）するため、配置する複数の画素データのビット数の合計がメモリバス幅を超えないようにする必要がある。このため、特許文献１で開示されたパッキング方法では、メモリバス幅内に画素データを割り当てることができないビット（以下、「未使用ビット」という）が多く存在してしまう。これに対し、バースト単位でのパッキング方法は、１バーストの単位で画素データを配置（パッキング）するため、図２１（ｂ）のように、配置する複数の画素データのビット数の合計がメモリバス幅を超えてしまう場合でも、１バーストを超えなければ次の転送に画素データを配置（パッキング）することができる。すなわち、バースト単位でのパッキング方法では、メモリバス幅が画素データの分解能の整数倍ではない場合においても、１転送の単位を跨いで画素データを配置（マッピング）することができるため、未使用ビットを少なくすることができるのである。このことにより、バースト単位でのパッキング方法は、特許文献１で開示されたパッキング方法よりも、同じ時間で多くの画素データをメモリに転送する、すなわち、画像データの転送期間を短縮することができ、撮像装置内の電気回路の消費電力を、さらに低減させることができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−３１２３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
一般的に、データの変化（データの“０”→“１”、もしくは“１”→“０”の変化（反転））が少ない方が、消費電力が少ないことが知られている。このため、撮像装置内の各処理ブロック（電気回路）とメモリとの間のメモリバス上のデータの変化を少なくすることによって、撮像装置の消費電力を低減させることも考えられる。図２２は、撮像装置内の処理ブロックとメモリとの間のデータバス（メモリバス）上のデータの変化と消費電力との関係を説明する図である。図２２（ａ）は、図１９に示した撮像装置における撮像処理部とメモリとの間のメモリバスのバス幅が３２ｂｉｔである場合の一例を示している。そして、図２２（ｂ−１）〜（ｂ−３）では、メモリバス上のデータの変化を模式的に示している。図２２の一例においては、メモリバス上のデータの変化がない図２２（ｂ−１）の場合が、最も消費電力が少なく、メモリバス上のデータの変化が最も多い図２２（ｂ−３）の場合が、最も消費電力が多くなる。
【００１１】
このことから、撮像装置内の各処理ブロックとメモリ間のバースト転送において、連続する２転送間の画素データ（例えば、図２１に示した各バースト転送の１転送目と２転送目との画素データ）の変化が多いと、画像データの転送に係る消費電力も多くなってしまうことがわかる。すなわち、メモリバス上の同一ビットが２転送間で変化している個数（ビット数）に比例して、画像データの転送に係る消費電力が変化する。
【００１２】
一般的に、画像データは、隣接する画素間でデータの変化量が小さく、隣接する画素のそれぞれの画素データの同一のビットで比較すると、値が反転しているビットの方が、値が反転していないビットよりも少ないことが予想される。ここで、図２１に示した、特許文献１で開示されたパッキング方法と、バースト単位でのパッキング方法とを比較すると、図２３に示したように、同一色の画素データで同一のビットが揃っている、特許文献１で開示されたパッキング方法の方が、画像データの転送に係る消費電力が少ないと考えられる。なお、図２３は、図２１に示した特許文献１で開示されたパッキング方法と、バースト単位でのパッキング方法とにおいて、１画素の画素データのビット数が９ｂｉｔである場合を示している。
【００１３】
より具体的には、図２３（ａ）に示した特許文献１で開示されたパッキング方法では、範囲Ａに示したメモリバスの最下位ビットは、全て同一色の画素データの同一ビット（最下位ビット）である。これに対して、図２３（ｂ）に示したバースト単位でのパッキング方法では、範囲Ｂに示したメモリバスの最下位ビットは、全て異なる色の画素データの異なるビットである。このことから、バースト単位で画像データをパッキングすることによって、メモリバス上に配置される画素データのビットの位置が、連続する２転送間で異なってしまうと、メモリバス上の同一ビットの変化量が多くなり、画像データの転送に係る消費電力を増加させてしまうことがわかる。
【００１４】
すなわち、図２３（ａ）に示した特許文献１で開示されたパッキング方法は、画像データの転送に係る消費電力が少ないが、データの転送効率が低い。また、図２３（ｂ）に示したバースト単位でのパッキング方法は、データの転送効率はよいが、画像データの転送に係る消費電力が多い。
【００１５】
このように、バースト単位での画素データのパッキングでは、より多くの画素データをメモリバスに配置することによって、結果的に画素データの転送期間を短縮し、画像データの転送に係る消費電力を低減させることができるが、メモリバス上に配置される画素データのビットの位置が、連続する２転送間で異なっているため、画像データの転送に係る消費電力の低減効果を十分に得ることができていない、という問題がある。
【００１６】
また、特許文献１で開示されたパッキング方法においては、例えば、図２４に示したように、画素データをパッキングする１転送内に、３画素分の画素データを配置（パッキング）することができる。しかし、この場合には、例えば、範囲Ｃに示したメモリバスの最下位ビットが、画素データの同一ビット（最下位ビット）ではあるが、異なる色の画素データになってしまう。画素データは、色が異なるとその値が大きく異なる可能性が高く、特許文献１で開示されたパッキング方法でも、１転送内の画素データの配置によっては、画像データの転送に係る消費電力を低減できていないことになってしまう。
【００１７】
このように、画像データの転送に係る消費電力を低減するためのパッキング方法には、様々な方法があるが、転送する画像データによっては、各パッキング方法における消費電力低減の効果に優劣が発生し、消費電力の低減効果を十分に得ることができない、という問題がある。
【００１８】
本発明は、上記の課題認識に基づいてなされたものであり、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるデータ処理装置およびデータ処理方法を提供することを目的としている。
【課題を解決するための手段】
【００１９】
上記の課題を解決するため、本発明のデータ処理装置は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、１つの前記転送データを１つの転送単位とし、予め定められた数の前記転送単位を１つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、を備え、前記データ変換部は、前記入力データを、予め定められた複数の異なる配置方法に基づいて前記データバスに配置した第１の変換データを生成する複数のデータ生成部と、複数の前記データ生成部のそれぞれに対応し、該データ生成部がｎ（ｎは１以上の自然数）回目に出力した前記第１の変換データ内の各ビットの値と、該データ生成部がｎ＋１回目に出力した前記第１の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第１の変換データ毎に算出する複数のビット変化数算出部と、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第１の変換データを生成したいずれか１つの前記データ生成部を選択し、該選択した前記データ生成部を表す選択情報を出力するビット変化数比較部と、前記選択情報に基づいて、それぞれの前記データ生成部から出力されたそれぞれの前記第１の変換データの内、いずれか１つの前記第１の変換データを選択し、該選択した前記第１の変換データを、選択データとして出力する第１のデータ選択部と、前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合部と、を具備する、ことを特徴とする。
【００２０】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較した結果、前記ビット変化数の値が最も少ない前記第１の変換データを生成した前記データ生成部を選択する、ことを特徴とする。
【００２１】
また、本発明の前記ビット変化数算出部のそれぞれは、前記第１のデータ選択部によって選択された前記選択データを、それぞれの前記データ生成部がｎ＋１回目に出力した前記第１の変換データとして、前記ビット変化数を算出する、ことを特徴とする。
【００２２】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を、前記変換単位毎にまとめて比較し、該比較した結果に基づいて前記変換単位での前記第１の変換データを生成した前記データ生成部を選択し、前記第１のデータ選択部は、前記選択情報に基づいて、それぞれの前記データ生成部から出力された前記変換単位のそれぞれの前記第１の変換データの内、いずれか１つの前記変換単位の前記第１の変換データを選択し、該選択した前記変換単位の前記第１の変換データを、前記変換単位の選択データとして出力し、前記ビット結合部は、前記変換単位の選択データを前記変換単位の転送データとして出力する際に、該変換単位の選択データに含まれる前記第１の変換データの内、前記入力データが配置されていない未使用ビットを含む前記第１の変換データの予め定められた前記未使用ビットの位置に、前記選択情報を結合した結合データを生成し、該変換単位の選択データに含まれる前記第１の変換データ、または前記結合データのいずれか１つのデータを、前記転送単位毎に順次出力する、ことを特徴とする。
【００２３】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を前記変換単位毎にまとめて比較した結果、前記変換単位内に含まれる全ての前記第１の変換データにおいて、まとめた前記ビット変化数の値が最も少ない前記変換単位での前記第１の変換データを生成した前記データ生成部を選択する、ことを特徴とする。
【００２４】
また、本発明のデータ処理装置は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、１つの前記転送データを１つの転送単位とし、予め定められた数の前記転送単位を１つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、を備え、前記データ逆変換部は、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められた複数の異なる配置方法に基づいて前記データバスに配置したそれぞれの第１の変換データを生成し、ｎ（ｎは１以上の自然数）回目に生成した前記第１の変換データ内の各ビットの値と、ｎ＋１回目に出力した前記第１の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第１の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第１の変換データの中から選択したいずれか１つの前記第１の変換データと、いずれの前記第１の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第１の変換データとに分離するビット分離部と、前記転送データの転送元のデータ処理装置が前記第１の変換データを生成する際の予め定められた複数の異なる配置方法のそれぞれに対応した、予め定められた複数の異なる復元方法に基づいて、前記第１の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第２の変換データを生成する複数のデータ復元部と、前記選択情報に基づいて、それぞれの前記データ復元部から出力されたそれぞれの前記第２の変換データの内、いずれか１つの前記第２の変換データを選択し、該選択した前記第２の変換データを、元の前記入力データとして出力する第２のデータ選択部と、を具備する、ことを特徴とする。
【００２５】
また、本発明の前記ビット分離部は、前記入力された前記転送データを前記変換単位毎にまとめ、該変換単位の前記転送データの内、いずれかの前記転送データ内の予め定められたビットの位置に結合されている前記選択情報を分離し、前記第２のデータ選択部は、前記選択情報に基づいて、それぞれの前記データ復元部から出力された前記変換単位のそれぞれの前記第２の変換データの内、いずれか１つの前記変換単位の前記第２の変換データを選択し、該選択した前記変換単位の前記第２の変換データを、元の前記入力データとして順次出力する、ことを特徴とする。
【００２６】
また、本発明のデータ処理方法は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、１つの前記転送データを１つの転送単位とし、予め定められた数の前記転送単位を１つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、を含み、前記データ変換ステップは、前記入力データを、予め定められた複数の異なる配置方法に基づいて前記データバスに配置した第１の変換データを生成する複数のデータ生成ステップと、複数の前記データ生成ステップのそれぞれに対応し、該データ生成ステップによってｎ（ｎは１以上の自然数）回目に出力した前記第１の変換データ内の各ビットの値と、該データ生成ステップによってｎ＋１回目に出力した前記第１の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第１の変換データ毎に算出する複数のビット変化数算出ステップと、それぞれの前記データ生成ステップにおけるそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第１の変換データを生成したいずれか１つの前記データ生成ステップを選択し、該選択した前記データ生成ステップを表す選択情報を出力するビット変化数比較ステップと、前記選択情報に基づいて、それぞれの前記データ生成ステップにおいて出力されたそれぞれの前記第１の変換データの内、いずれか１つの前記第１の変換データを選択し、該選択した前記第１の変換データを、選択データとして出力する第１のデータ選択ステップと、前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合ステップと、を含む、ことを特徴とする。
【００２７】
また、本発明のデータ処理方法は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、１つの前記転送データを１つの転送単位とし、予め定められた数の前記転送単位を１つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、を含み、前記データ逆変換ステップは、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められた複数の異なる配置方法に基づいて前記データバスに配置したそれぞれの第１の変換データを生成し、ｎ（ｎは１以上の自然数）回目に生成した前記第１の変換データ内の各ビットの値と、ｎ＋１回目に出力した前記第１の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第１の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第１の変換データの中から選択したいずれか１つの前記第１の変換データと、いずれの前記第１の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第１の変換データとに分離するビット分離ステップと、前記転送データの転送元のデータ処理装置が前記第１の変換データを生成する際の予め定められた複数の異なる配置方法のそれぞれに対応した、予め定められた複数の異なる復元方法に基づいて、前記第１の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第２の変換データを生成する複数のデータ復元ステップと、前記選択情報に基づいて、それぞれの前記データ復元ステップにおいて出力されたそれぞれの前記第２の変換データの内、いずれか１つの前記第２の変換データを選択し、該選択した前記第２の変換データを、元の前記入力データとして出力する第２のデータ選択ステップと、を含む、ことを特徴とする。
【発明の効果】
【００２８】
本発明によれば、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるという効果が得られる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態における撮像装置の概略構成を示したブロック図である。
【図２】本実施形態の撮像装置に備えた第１の構成のデータ変換部の概略構成を示したブロック図である。
【図３】本実施形態の撮像装置に備えた第１の構成のデータ逆変換部の概略構成を示したブロック図である。
【図４】本第１の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の一例を説明する図である。
【図５】本第１の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の別の一例を説明する図である。
【図６】本第１の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図７】本第１の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図８】本第１の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図９】本第１の構成のデータ変換部から出力する転送データを説明する図である。
【図１０】本実施形態の撮像装置に備えた第２の構成のデータ変換部の概略構成を示したブロック図である。
【図１１】本実施形態の撮像装置に備えた第２の構成のデータ逆変換部の概略構成を示したブロック図である。
【図１２】本第２の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の一例を説明する図である。
【図１３】本第２の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の別の一例を説明する図である。
【図１４】本第２の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図１５】本第２の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図１６】本第２の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図１７】本第２の構成のデータ変換部から出力する転送データを説明する図である。
【図１８】本実施形態のデータ変換部による処理をデータ毎に適用した場合の一例を説明する図である。
【図１９】従来の撮像装置の概略構成を示したブロック図である。
【図２０】画像データの配列の一例を示した図である。
【図２１】従来のデータパッキングの一例を示した図である。
【図２２】データバス上のデータの変化と消費電力との関係を説明する図である。
【図２３】従来のデータパッキング方法におけるデータ配置の状態の一例を示した図である。
【図２４】従来のデータパッキング方法におけるデータ配置の状態の別の一例を示した図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態における撮像装置の概略構成を示したブロック図である。図１に示した撮像装置１は、ＣＰＵ１０と、メモリ２０と、ＣＣＤ３０と、撮像処理部４０と、画像処理部５０と、表示処理部６０と、表示デバイス７０と、データ変換部４１および５１と、データ逆変換部５２および６２と、出力ＤＭＡ部４５および５５と、入力ＤＭＡ部５６および６６と、を備えている。なお、撮像装置１は、撮影した画像データを記録する機能も有しているが、説明を容易にするため、以下の説明においては、撮影した画像データを表示する場合について説明する。また、図１においては、撮像装置１内の各構成要素（処理ブロック）間での画素データの受け渡しに係るデータバスであるメモリバスの接続のみを示している。
【００３１】
ＣＰＵ１０は、撮像装置１の全体の制御を行う制御装置である。
メモリ２０は、撮像装置１内の各処理ブロックが処理する画素データを一時的に記憶する、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリである。メモリ２０には、撮像装置１内の各処理ブロックによる各処理段階の画素データが一時記憶される。
【００３２】
ＣＣＤ３０は、入射した被写体光を画像信号に変換する、例えば、ベイヤー配列の固体撮像素子である。ＣＣＤ３０は、被写体の画素信号を撮像処理部４０に出力する。
撮像処理部４０は、ＣＣＤ３０から入力された画素信号に対して、予め定められた信号処理を行った画像データを生成する。
【００３３】
画像処理部５０は、撮像処理部４０が生成した画像データに対して、撮像装置１における種々の画像処理を行った画像データを生成する。
表示処理部６０は、画像処理部５０によって画像処理された画像データを、表示デバイス７０に応じた表示データに変換する。表示処理部６０は、変換した表示データを表示デバイス７０に出力する。
表示デバイス７０は、表示データを表示する、例えば、液晶などの表示装置である。
【００３４】
本実施形態の撮像装置１では、ＣＣＤ３０によって撮像された被写体の画素信号を、撮像処理部４０、画像処理部５０、表示処理部６０が順次処理し、表示デバイス７０に表示させる。このとき、各処理段階の画像データは、メモリ２０を介して各処理ブロック間で受け渡される。撮像装置１内のデータ変換部４１および５１と、データ逆変換部５２および６２と、出力ＤＭＡ部４５および５５と、入力ＤＭＡ部５６および６６とは、各処理段階の画像データの受け渡しに係る処理ブロックである。
【００３５】
データ変換部４１および５１は、前段の処理ブロック（図１に示した本実施形態においては、撮像処理部４０または画像処理部５０）から入力された画像データ内の各画素データを、予め定められた配置（パッキング）方法で、メモリバスの各ビットに配置する。データ変換部４１および５１の構成と、データ変換部４１および５１による画素データのパッキング方法に関する詳細な説明は、後述する。
【００３６】
出力ＤＭＡ部４５および５５は、データ変換部４１または５１によってメモリバスの各ビットにパッキングされた画素データからなる画像データを、ＤＭＡアクセスによってメモリ２０に書き込む（記憶させる）。
入力ＤＭＡ部５６および６６は、メモリ２０に記憶されている画像データをＤＭＡアクセスによって読み出し、読み出した画像データを、データ逆変換部５２または６２に出力する。
【００３７】
データ逆変換部５２および６２は、入力ＤＭＡ部５６または６６から入力された画像データに含まれる画素データを、予め定められた配置（パッキング）方法と逆の方法で元の画像データに戻し、後段の処理ブロック（図１に示した本実施形態においては、画像処理部５０または表示処理部６０）に出力する。データ逆変換部５２および６２の構成に関する詳細な説明は、後述する。
【００３８】
ここで、図１に示した撮像装置１における画像データの処理について説明する。撮像装置１における撮影動作では、以下のような手順で画像データの処理が行われる。
（手順１）：まず、撮像処理部４０は、ＣＣＤ３０によって撮像された被写体の画素信号に対して、予め定められた信号処理を行った画像データ（例えば、ＣＣＤ３０の画素の配列に応じた画像データ）を生成する。そして、生成した画像データを、データ変換部４１および出力ＤＭＡ部４５を介して、メモリ２０に転送して一時記憶する。
（手順２）：続いて、画像処理部５０は、メモリ２０に一時記憶している画像データを、入力ＤＭＡ部５６およびデータ逆変換部５２を介して読み出す。そして、画像処理部５０は、読み出した画像データに対して記録用の画像処理や、表示用の画像処理を行った画像データ（例えば、ＲＧＢデータや、ＹＣ４２２点順次フォーマットのＹＣｂＣｒデータ）を生成する。その後、生成した画像データを、再びデータ変換部５１および出力ＤＭＡ部５５を介してメモリ２０に転送して一時記憶する。
（手順３）：続いて、表示処理部６０は、画像処理部５０によって表示用の画像処理がされた画像データや、別途、メモリ２０に記憶しているＯＳＤ（Ｏｎ−Ｓｃｒｅｅｎ  Ｄｉｓｐｌａｙ）表示用の画像データを、入力ＤＭＡ部６６およびデータ逆変換部６２を介して読み出し、表示デバイス７０に表示させる。
【００３９】
なお、撮像装置１が撮影した画像データを記録する場合には、画像データの記録処理を行う図示しない記録処理部が、画像処理部５０によって記録用の画像処理がされた画像データを、図示しない入力ＤＭＡ部およびデータ逆変換部を介して読み出し、読み出した記録用の画像データをメモリカードなどの図示しない画像データ記録部に記録する。また、撮像装置１に、例えば、音を入出力する機能を備えている場合には、音声処理を行う図示しない音声処理部が、撮影時の音声データを、図示しないデータ変換部および出力ＤＭＡ部を介してメモリ２０に記憶する。また、音声処理部が、メモリ２０に記憶している音声データを、図示しない入力ＤＭＡ部およびデータ逆変換部を介して読み出し、読み出した音声データに応じた音声を、スピーカーなどの図示しない音出力部に出力させる。
【００４０】
＜第１の構成＞
次に、撮像装置１内のデータ変換部について説明する。なお、上記に述べたように、データ変換部４１とデータ変換部５１とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図１に示したように、データ変換部４１は、前段の撮像処理部４０と後段の出力ＤＭＡ部４５との間に配置され、データ変換部５１は、前段の撮画像処理部５０と後段の出力ＤＭＡ部５５との間に配置されている。従って、データ変換部４１とデータ変換部５１とは、入力される画像データと出力する画像データとのデータ形式（フォーマット）が異なるのみである。以下の説明においては、代表してデータ変換部４１について説明する。
【００４１】
図２は、本実施形態の撮像装置１に備えた本第１の構成のデータ変換部４１の概略構成を示したブロック図である。図２に示したように、データ変換部４１は、４つのパックデータ生成部４１１ａ〜４１１ｄ（以下、パックデータ生成部４１１ａ〜４１１ｄのいずれか１つを表すときには「パックデータ生成部４１１」という）と、４つのＤ−ＦＦ４１２ａ〜４１２ｄ（以下、Ｄ−ＦＦ４１２ａ〜４１２ｄのいずれか１つを表すときには「Ｄ−ＦＦ４１２」という）と、４つのバースト単位バッファ４１３ａ〜４１３ｄ（以下、バースト単位バッファ４１３ａ〜４１３ｄのいずれか１つを表すときには「バースト単位バッファ４１３」という）と、４つのＥＸＯＲ（排他的論理和）回路４１４ａ〜４１４ｄ（以下、ＥＸＯＲ回路４１４ａ〜４１４ｄのいずれか１つを表すときには「ＥＸＯＲ回路４１４」という）と、４つのビット加算部４１５ａ〜４１５ｄ（以下、ビット加算部４１５ａ〜４１５ｄのいずれか１つを表すときには「ビット加算部４１５」という）と、４つのバースト単位累積部４１６ａ〜４１６ｄ（以下、バースト単位累積部４１６ａ〜４１６ｄのいずれか１つを表すときには「バースト単位累積部４１６」という）と、比較部４１７と、選択部４１８と、ビット結合部４１９と、を備えている。
【００４２】
なお、以下の説明においては、データ変換部４１に、図２０に示したような、１６行×１６列のベイヤー配列の画像データ（以下、「ベイヤーデータ」という）が入力され、入力されたベイヤーデータ内の画素データを、予め定められたパッキング方法で、メモリバスに配置（パッキング）した転送データを出力する場合について説明する。なお、ベイヤーデータ内の各画素データのビット数は９ｂｉｔであり、メモリバスのバス幅（メモリバス幅）は３２ｂｉｔであるものとする。そして、データ変換部４１は、ベイヤーデータ内の各画素データをパッキングする単位を４転送とし、４転送を１回のバースト転送の単位とする、すなわち、１バーストを画素データのパッキング単位としてパッキングした３２ｂｉｔの転送データを出力するものとする。なお、図２０に示したベイヤーデータでは、各画素データの数字がＣＣＤ３０内の画素の位置を表しており、数字の前の「Ｒ」，「Ｇ」，「Ｂ」がＣＣＤ３０内の画素の色を表している。より具体的には、「Ｒ」がＣＣＤ３０の赤色の画素の画素データ、「Ｇ」がＣＣＤ３０の緑色の画素の画素データ、「Ｂ」がＣＣＤ３０の青色の画素の画素データを表している。
【００４３】
データ変換部４１は、撮像処理部４０から順次入力された９ｂｉｔの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか１つの方法で、メモリバス上の各ビットに配置した３２ｂｉｔの転送データを出力する。そして、データ変換部４１は、例えば、出力ＤＭＡ部４５から入力されるデータイネーブル信号に基づいて、生成した転送データを順次出力する。なお、データイネーブル信号は、出力ＤＭＡ部４５がバースト転送する際に何転送目の転送データを転送するかを表す情報を含んでいる信号である。
【００４４】
データ変換部４１が転送データを生成する際には、まず、入力された画素データを、予め定めた複数のパッキング方法でそれぞれパッキングした複数のパックデータを生成する。そして、データ変換部４１は、生成したそれぞれのパックデータの内、１回のバースト転送においてメモリバス上のビット変化が最も少ないパックデータ（以下、「転送パックデータ」という）を選択する。その後、データ変換部４１は、パックデータを選択したときの情報（パックデータ選択ビット）を、転送パックデータ内、すなわち、パッキング単位（４転送）内に存在する未使用ビットに付加して、最終的に出力する転送データとして出力する。
【００４５】
パックデータ生成部４１１ａ〜４１１ｄは、それぞれ、入力された画素データの各ビットのデータを、予め定めたパッキング方法で、メモリバスに対応したデータバス（このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する）の各ビットに配置した、１バースト分、すなわち、パッキング単位（４転送）分のパックデータを生成する。そして、パックデータ生成部４１１ａ〜４１１ｄのそれぞれは、生成したパックデータを、１転送毎、すなわち、メモリバス幅のビット数（本第１の構成のデータ変換部４１においては、３２ｂｉｔ）毎に順次、対応するＤ−ＦＦ４１２ａ〜４１２ｄと対応するＥＸＯＲ回路４１４ａ〜４１４ｄとに出力する。
【００４６】
なお、以下の説明においては、パックデータ生成部４１１ａ〜４１１ｄのそれぞれが生成した１バースト分のパックデータを、それぞれ、パックデータＡ〜Ｄという。また、以下の説明においては、パックデータ生成部４１１ａ〜４１１ｄのそれぞれが出力するパックデータＡ〜Ｄの１転送毎のパックデータを、それぞれ、パックデータａ〜ｄという。なお、パックデータ生成部４１１のそれぞれにおけるパッキング方法、およびパックデータの例に関する詳細な説明は、後述する。
【００４７】
Ｄ−ＦＦ４１２ａ〜４１２ｄは、それぞれ、対応するパックデータ生成部４１１ａ〜４１１ｄから出力された３２ｂｉｔのパックデータａ〜ｄを保持する。このＤ−ＦＦ４１２によって保持されたパックデータａ〜ｄは、パックデータ生成部４１１が前回の１転送で出力したパックデータａ〜ｄ（以下、前回の１転送のパックデータａ〜ｄを、「パックデータａ（−１）〜ｄ（−１）」という）として、対応するバースト単位バッファ４１３ａ〜４１３ｄと対応するＥＸＯＲ回路４１４ａ〜４１４ｄとに出力される。
【００４８】
バースト単位バッファ４１３ａ〜４１３ｄは、それぞれ、対応するＤ−ＦＦ４１２から入力された３２ｂｉｔのパックデータａ（−１）〜ｄ（−１）を、１バースト分、すなわち、パッキング単位（４転送）分保持する。バースト単位バッファ４１３のそれぞれが、対応するＤ−ＦＦ４１２を介して入力されたパックデータａ〜ｄを、パッキング単位（４転送）分保持することによって、バースト単位バッファ４１３に、パックデータ生成部４１１のそれぞれが生成したパックデータＡ〜Ｄが保持されることになる。そして、バースト単位バッファ４１３ａ〜４１３ｄは、例えば、選択部４１８から入力される図示しない出力要求信号に基づいて、保持しているパックデータＡ〜Ｄを、１転送毎、すなわち、パックデータａ〜ｄ毎に順次、選択部４１８に出力する。なお、出力要求信号は、選択部４１８によって選択されたバースト単位バッファ４１３に保持されている３２ｂｉｔのパックデータａ〜ｄを順次読み出す信号である。従って、出力要求信号は、選択部４１８によって選択されたバースト単位バッファ４１３ａ〜４１３ｄのいずれか１つのバースト単位バッファ４１３にのみ出力される。
【００４９】
ＥＸＯＲ回路４１４ａ〜４１４ｄは、それぞれ、対応するパックデータ生成部４１１ａ〜４１１ｄから出力された３２ｂｉｔのパックデータａ〜ｄと、対応するＤ−ＦＦ４１２ａ〜４１２ｄから出力された３２ｂｉｔのパックデータａ（−１）〜ｄ（−１）との２つのパックデータの各ビットの値を比較して、値が変化しているビットの有無を検出する。そして、ＥＸＯＲ回路４１４ａ〜４１４ｄのそれぞれは、値が変化しているビットであることを表す値＝“１”、または値が変化しているビットではないことを示す値＝“０”を、比較したそれぞれのビット毎に出力する。
【００５０】
なお、ＥＸＯＲ回路４１４ａ〜４１４ｄのそれぞれは、Ｄ−ＦＦ４１２から入力されたパックデータａ（−１）〜ｄ（−１）を、同じパッキング単位（４転送）において、パックデータ生成部４１１ａ〜４１１ｄのそれぞれが出力した前回のパックデータａ〜ｄとして、各ビットの値を比較する。すなわち、ＥＸＯＲ回路４１４ａ〜４１４ｄのそれぞれは、パックデータ生成部４１１ａ〜４１１ｄのそれぞれが出力した前回のパックデータａ〜ｄと、今回のパックデータａ〜ｄとの比較をビット毎に行う。
【００５１】
より具体的には、ＥＸＯＲ回路４１４のそれぞれによる２つのパックデータの比較においては、パックデータ生成部４１１から出力されたパックデータａ〜ｄの各ビットと、Ｄ−ＦＦ４１２から出力されたパックデータａ（−１）〜ｄ（−１）の各ビットとの排他的論理和がとられる。これにより、パックデータ生成部４１１から出力された今回のパックデータａ〜ｄのビットの値と、パックデータ生成部４１１から出力された前回のパックデータａ〜ｄ（パックデータａ（−１）〜ｄ（−１））のビットの値とが同じ値のときに“０”が出力される。また、パックデータ生成部４１１から出力された今回のパックデータａ〜ｄのビットの値と、パックデータ生成部４１１から出力された前回のパックデータａ〜ｄ（パックデータａ（−１）〜ｄ（−１））のビットの値とが異なる値のときに“１”が出力される。
【００５２】
なお、パックデータ生成部４１１から出力された今回のパックデータａ〜ｄが１転送目のパックデータａ〜ｄである場合には、ビットの値が変化していないことを示す値＝“０”を、全てのビットに出力する。
【００５３】
ビット加算部４１５ａ〜４１５ｄは、それぞれ、対応するＥＸＯＲ回路４１４ａ〜４１４ｄから入力された値が変化しているビットの数を計数し、値が変化しているビットの数の合計（以下、「ビット変化数」という）を算出する。そして、算出したビット変化数を、対応するバースト単位累積部４１６ａ〜４１６ｄのそれぞれに出力する。例えば、説明を容易にするため、ＥＸＯＲ回路４１４ａが比較するそれぞれのパックデータが８ｂｉｔであると仮定した場合について考える。ＥＸＯＲ回路４１４ａから入力された、値が変化しているビットの値が、“１１１１＿００００”である場合は、ビット加算部４１５ａは、ビット変化数の値として“４”を出力する。このようにして、ビット加算部４１５ａ〜４１５ｄのそれぞれは、パックデータ生成部４１１ａ〜４１１ｄが出力した前回のパックデータａ〜ｄ（Ｄ−ＦＦ４１２から出力されたパックデータａ（−１）〜ｄ（−１））の値が、次にパックデータ生成部４１１ａ〜４１１ｄが出力した今回のパックデータａ〜ｄの値に変化する際に、メモリバス上の各ビットの値が異なる値に変化するビットの数（ビット変化数）を出力する。
【００５４】
バースト単位累積部４１６ａ〜４１６ｄは、それぞれ、対応するビット加算部４１５ａ〜４１５ｄから入力されたビット変化数を、１バースト分、すなわち、パッキング単位（４転送）分累積する。これにより、１回のバースト転送において、パックデータ生成部４１１ａ〜４１１ｄのそれぞれが出力するパックデータによるメモリバス上の各ビットの合計の変化数が算出される。そして、バースト単位累積部４１６ａ〜４１６ｄのそれぞれは、累積したビット変化数を、比較部４１７に出力する。
【００５５】
比較部４１７は、バースト単位累積部４１６ａ〜４１６ｄのそれぞれから入力された累積されたビット変化数の内、ビット変化数が最も少ないものを判定し、最も少ないビット変化数を出力したバースト単位累積部４１６を特定（選択）する。そして、比較部４１７は、最も少ないビット変化数を出力したバースト単位累積部４１６を表す情報、すなわち、最もメモリバス上のビット変化が少ないパッキング方法を表す情報を、パックデータ選択ビットとして、選択部４１８とビット結合部４１９とに出力する。これにより、１回のバースト転送においてメモリバス上のビット変化が最も少ないパックデータが選択されることになる。
【００５６】
なお、パックデータ選択ビットは、データ変換部４１内に備えたパックデータ生成部４１１のそれぞれに対応した値が、予め定められており、データ変換部４１に対応するデータ逆変換部５２にも、共通の値が予め定められている。これにより、データ逆変換部５２は、データ変換部４１で選択されたパッキング方法を判別することができる。
【００５７】
選択部４１８は、比較部４１７から入力されたパックデータ選択ビットに応じて、バースト単位バッファ４１３ａ〜４１３ｄの内、いずれか１つのバースト単位バッファ４１３を選択する。そして、例えば、選択したバースト単位バッファ４１３に対して図示しない出力要求信号を出力し、選択したバースト単位バッファ４１３から入力されたパックデータ（パックデータＡ〜Ｄの内、いずれか１つのパックデータ）を、転送パックデータとしてビット結合部４１９に出力する。なお、上述したように、出力要求信号は、選択したバースト単位バッファ４１３に保持されている３２ｂｉｔのパックデータを順次読み出す信号である。従って、選択部４１８は、選択したバースト単位バッファ４１３ａ〜４１３ｄのいずれか１つのバースト単位バッファ４１３にのみ、出力要求信号を出力する。
【００５８】
ビット結合部４１９は、選択部４１８から入力された転送パックデータ内、すなわち、パッキング単位（４転送）内に存在する未使用ビットに、比較部４１７から入力されたパックデータ選択ビットを付加する。そして、ビット結合部４１９は、パックデータ選択ビットを付加した転送パックデータを、データ変換部４１が最終的に出力する転送データとして、出力ＤＭＡ部４５に出力する。
【００５９】
なお、ビット結合部４１９がパックデータ選択ビットを付加する転送パックデータ内の未使用ビットの位置は、パックデータ生成部４１１ａ〜４１１ｄが生成するパッキング単位（４転送）のパックデータＡ〜Ｄの全てで共通の未使用ビットの固定位置が予め定められている。また、データ変換部４１に対応するデータ逆変換部５２にも、パックデータＡ〜Ｄで共通の未使用ビットの固定位置と同じ位置が、パックデータ選択ビットが付加された未使用ビットの位置として、予め定められている。これにより、データ逆変換部５２は、固定された位置に付加されているパックデータ選択ビットに基づいて、データ変換部４１が出力した転送データを逆変換して、元の画素データに復元することができる。
【００６０】
次に、撮像装置１内のデータ逆変換部について説明する。なお、上記に述べたように、データ逆変換部５２とデータ逆変換部６２とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図１に示したように、データ逆変換部５２は、前段の入力ＤＭＡ部５６と後段の画像処理部５０との間に配置され、データ逆変換部６２は、前段の入力ＤＭＡ部６６と後段の表示処理部６０との間に配置されている。従って、データ逆変換部５２とデータ逆変換部６２とは、入力される画像データと出力する画像データとのデータ形式（フォーマット）が異なるのみである。以下の説明においては、代表してデータ逆変換部５２について説明する。
【００６１】
図３は、本実施形態の撮像装置１に備えた本第１の構成のデータ逆変換部５２の概略構成を示したブロック図である。図３に示したように、データ逆変換部５２は、ビット分離部５２１と、４つのデータ復元部５２２ａ〜５２２ｄ（以下、データ復元部５２２ａ〜５２２ｄのいずれか１つを表すときには「データ復元部５２２」という）と、４つのデータバッファ５２３ａ〜５２３ｄ（以下、データバッファ５２３ａ〜５２３ｄのいずれか１つを表すときには「データバッファ５２３」という）と、選択部５２４と、を備えている。
【００６２】
なお、以下の説明においては、データ逆変換部５２に、データ変換部４１によってパッキングされた、４転送をパッキング単位とした１バーストの転送データが、入力ＤＭＡ部５６を介して入力され、入力された転送データを、図２０に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は９ｂｉｔであり、メモリバス幅は３２ｂｉｔであるものとして説明する。
【００６３】
データ逆変換部５２は、入力ＤＭＡ部５６から入力された３２ｂｉｔの転送データの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか１つの方法と逆の方法で、画像処理部５０が画像処理する元の画像データ（ベイヤーデータ）に戻した９ｂｉｔの画素データに復元する。そして、データ逆変換部５２は、例えば、画像処理部５０から入力される図示しないデータイネーブル信号に基づいて、復元した元の画素データを順次出力する。なお、データイネーブル信号は、画像処理部５０に出力するタイミングを表す信号である。
【００６４】
また、データ逆変換部５２には、上述したように、データ変換部４１によってパックデータ選択ビットが付加された未使用ビットの位置と同じ固定位置が、予め定められている。そして、データ逆変換部５２が画素データを復元する際には、まず、入力された３２ｂｉｔの転送データ（この転送データは、データ変換部４１が生成した転送データと同等である）を、パックデータ選択ビットと、データ変換部４１内のパックデータ生成部４１１が画素データをパッキングしたパックデータ（このパックデータは、データ変換部４１内の選択部４１８によって選択された転送パックデータと同等であるため、以下の説明のいては、「転送パックデータ」として説明する）とに分離する。そして、データ逆変換部５２は、転送パックデータを、データ変換部４１によるパッキング方法と逆の方法で、順次分割（アンパッキング）し、画素データに相当するデータ（以下、「アンパックデータ」という）を生成する。その後、データ逆変換部５２は、パックデータ選択ビットに基づいて、アンパックデータの中から、データ変換部４１に入力された画素データと同等のアンパックデータを選択して、元の画素データとして出力する。
【００６５】
ビット分離部５２１は、入力ＤＭＡ部５６から入力された転送データを、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットと、転送パックデータとに分離する。そして、ビット分離部５２１は、分離した転送パックデータを、データ復元部５２２に出力する。また、ビット分離部５２１は、分離したパックデータ選択ビットを、選択部５２４に出力する。なお、ビット分離部５２１は、パックデータ選択ビットが付加されていない転送データは、そのまま転送パックデータとして、データ復元部５２２に出力する。
【００６６】
データ復元部５２２ａ〜５２２ｄは、それぞれ、パックデータ生成部４１１ａ〜４１１ｄに対応し、ビット分離部５２１から入力された転送パックデータを、予め定めたパッキング方法と逆の方法で、転送パックデータの各ビットに配置されたそれぞれのデータ（本第１の構成のデータ逆変換部５２においては、９ｂｉｔのデータ）に、順次分割（アンパッキング）した、１バースト分、すなわち、パッキング単位（４転送）分のアンパックデータを生成する。そして、データ復元部５２２ａ〜５２２ｄのそれぞれは、生成したアンパックデータを、１画素毎、すなわち、画素データのビット数（本第１の構成のデータ逆変換部５２においては、９ｂｉｔ）毎に順次、対応するデータバッファ５２３ａ〜ｄに出力する。
【００６７】
なお、以下の説明においては、データ復元部５２２ａ〜５２２ｄのそれぞれが出力する１画素毎のアンパックデータを、それぞれ、アンパックデータａ〜ｄという。また、以下の説明においては、データ復元部５２２ａ〜５２２ｄのそれぞれが生成した１バースト分のアンパックデータを、それぞれ、アンパックデータＡ〜Ｄという。
【００６８】
データバッファ５２３ａ〜５２３ｄは、それぞれ、対応するデータ復元部５２２から入力された９ｂｉｔのアンパックデータａ〜ｄを、１バースト分、すなわち、パッキング単位（４転送）分保持する。データバッファ５２３のそれぞれが、対応するデータ復元部５２２から入力されたアンパックデータａ〜ｄを、パッキング単位（４転送）分保持することによって、データバッファ５２３に、データ復元部５２２のそれぞれが生成したアンパックデータＡ〜Ｄが保持されることになる。そして、データバッファ５２３ａ〜５２３ｄは、例えば、選択部５２４から入力される図示しない出力要求信号に基づいて、保持しているアンパックデータＡ〜Ｄを、１画素毎、すなわち、アンパックデータａ〜ｄ毎に順次、選択部５２４に出力する。なお、出力要求信号は、選択部５２４によって選択されたデータバッファ５２３に保持されている９ｂｉｔのアンパックデータａ〜ｄを順次読み出す信号である。従って、出力要求信号は、選択部５２４によって選択されたデータバッファ５２３ａ〜５２３ｄのいずれか１つのデータバッファ５２３にのみ出力される。
【００６９】
選択部５２４は、ビット分離部５２１から入力されたパックデータ選択ビットに応じて、データバッファ５２３ａ〜５２３ｄの内、いずれか１つのデータバッファ５２３を選択する。そして、例えば、選択したデータバッファ５２３に対して図示しない出力要求信号を出力し、選択したデータバッファ５２３から入力されたアンパックデータ（アンパックデータＡ〜Ｄの内、いずれか１つのアンパックデータ）を、元の画素データとして、画像処理部５０に出力する。なお、上述したように、出力要求信号は、選択したデータバッファ５２３に保持されている９ｂｉｔのアンパックデータを順次読み出す信号である。従って、選択部５２４は、選択したデータバッファ５２３ａ〜５２３ｄのいずれか１つのデータバッファ５２３にのみ、出力要求信号を出力する。
【００７０】
このようにして、データ逆変換部５２は、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットに基づいて、データ変換部４１が、予め定めた複数のパッキング方法の内、いずれのパッキング方法でパッキングしたパックデータを出力したのかを判別する。そして、データ逆変換部５２は、データ変換部４１が選択したパッキング方法と逆の方法で生成されたアンパックデータを、データ変換部４１が出力した転送データを逆変換した元の画素データとして出力、すなわち、元の画素データに復元する。
【００７１】
なお、上述したように、データ復元部５２２ａ〜５２２ｄは、それぞれ、パックデータ生成部４１１ａ〜４１１ｄに対応している。しかし、データ復元部５２２がそれぞれ生成するアンパックデータａ〜ｄは、元の画素データと同等のデータではないこともある。これは、データ復元部５２２ａ〜５２２ｄのそれぞれが、アンパックデータａ〜ｄを生成する時点では、入力された転送パックデータが、データ変換部４１内のいずれのパックデータ生成部４１１によって生成されたパックデータ、すなわち、図２に示したパックデータＡ〜Ｄのいずれのパックデータであるかが不明であるためである。従って、データ復元部５２２ａ〜５２２ｄのそれぞれが生成したアンパックデータａ〜ｄを、対応するデータバッファ５２３に一旦保持し、パックデータ選択ビットに基づいて選択したアンパックデータＡ〜Ｄのいずれか１つのアンパックデータを、データ逆変換部５２が最終的に出力する画素データとして、画像処理部５０に出力している。
【００７２】
なお、データ逆変換部５２は、上記に述べたように、入力ＤＭＡ部５６から転送データが入力される毎に、データ復元部５２２ａ〜５２２ｄのそれぞれが、入力された転送パックデータを順次分割（アンパッキング）することもできるが、データ逆変換部５２内に、例えば、１バースト分、すなわち、パッキング単位（４転送）分の３２ｂｉｔの転送データを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力ＤＭＡ部５６から入力された転送データをメモリ部に一旦保持し、保持した転送データを最初に、パックデータ選択ビットと転送パックデータとに分離し、その後、パックデータ選択ビットに基づいて、対応するデータ復元部５２２が、予め定めたパッキング方法と逆の方法で、転送パックデータの分割（アンパッキング）を行う。なお、この構成では、データバッファ５２３ａ〜５２３ｄと同様の機能を、ビット分離部５２１の前段に配置されたメモリ部が担うことになる。これにより、図３に示したデータ逆変換部５２内のデータバッファ５２３ａ〜５２３ｄを削減することができる。
【００７３】
ここで、パックデータ生成部４１１ａ〜ｄにおけるパックデータａ〜ｄの生成方法、すなわち、予め定められた複数のパッキング方法（画素データの配置方法）の一例について説明する。本実施形態の撮像装置１では、データ変換部４１内のパックデータ生成部４１１ａ〜ｄが入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部５２内のデータ復元部５２２ａ〜５２２ｄが入力された転送パックデータを元の画素データに戻す。なお、以下の説明においては、パックデータ生成部４１１に、図２０に示したベイヤーデータ内の各画素データが順次入力され、４転送を１つのパッキング単位とした１バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は９ｂｉｔであり、メモリバス幅は３２ｂｉｔであるものとする。
【００７４】
なお、データ復元部５２２ａ〜ｄによる転送パックデータを元の画素データに戻す方法（アンパッキング方法）は、パックデータ生成部４１１ａ〜ｄによる画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
【００７５】
＜第１のデータ配置方法＞
図４は、本第１の構成のデータ変換部４１に備えたパックデータ生成部４１１によるデータ配置方法の一例（第１のパッキング方法）を説明する図である。図４には、本第１のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。
【００７６】
本第１のパッキング方法では、パックデータ生成部４１１が、入力された画素データの各ビットのデータを、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。なお、本第１のパッキング方法は、従来のバースト単位でのパッキング方法と同様であるため、詳細な説明は省略する。
【００７７】
図４では、パックデータ生成部４１１が、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを示している。より具体的には、パックデータ生成部４１１が、１転送目に「Ｒ０」、「Ｇ１」、「Ｒ２」、および「Ｇ３」のビット［０］〜ビット［４］、２転送目に「Ｇ３」のビット［５］〜ビット［８］、「Ｒ４」、「Ｇ５」、「Ｒ６」、および「Ｇ７」のビット［０］、３転送目に「Ｇ７」のビット［１］〜ビット［８］、「Ｒ８」、「Ｇ９」、および「Ｒ１０」のビット［０］〜ビット［５］、４転送目に「Ｒ１０」のビット［６］〜ビット［８］、および「Ｇ１１」を、それぞれメモリバスの最下位ビットから順次配置（パッキング）した場合を示している。
【００７８】
＜第２のデータ配置方法＞
図５は、本第１の構成のデータ変換部４１に備えたパックデータ生成部４１１によるデータ配置方法の別の一例（第２のパッキング方法）を説明する図である。図５（ａ）には、第１のパッキング方法、すなわち、従来のバースト単位でのパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図５（ｂ）には、本第２のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【００７９】
本第２のパッキング方法では、１バースト（４転送）分のパッキング単位を、画素データの連続する各ビットをそのままメモリバス上の連続する各ビットに配置するパック領域１（図５（ｂ）においては、１８ｂｉｔの領域）と、画素データが配置されずに残っているメモリバス上のビットに画素データの各ビットを分割して配置するパック領域２（図５（ｂ）においては、１４ｂｉｔの領域）とに分けて、メモリバス上の各ビットに画素データの各ビットを配置する。
【００８０】
そして、本第２のパッキング方法では、パックデータ生成部４１１が、パックデータ内のパック領域１の連続する２転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、それぞれの画素データを配置する。また、パックデータ生成部４１１が、画素データが配置されずに残っているパックデータ内のパック領域２の連続する４転送間で、画素データがラスター順となるように、それぞれの画素データの各ビットを詰めて配置する。
【００８１】
なお、パックデータ生成部４１１とデータ復元部５２２とには、同じパック領域１およびパック領域２が、予め定められており、それぞれの領域に配置する画素データの位置も予め定められている。これにより、データ復元部５２２は、パックデータ生成部４１１によってパッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【００８２】
図５（ｂ）では、パックデータ生成部４１１が、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを示している。より具体的には、パックデータ生成部４１１が、パック領域１の１転送目に「Ｒ０」および「Ｇ１」、２転送目に「Ｒ２」および「Ｇ３」、３転送目に「Ｒ４」および「Ｇ５」、４転送目に「Ｒ６」および「Ｇ７」を、それぞれメモリバスの最下位ビットから順次配置（パッキング）した場合を示している。また、パックデータ生成部４１１が、パック領域２の１転送目に「Ｒ８」および「Ｇ９」のビット［０］〜ビット［４］、２転送目に「Ｇ９」のビット［５］〜ビット［８］、「Ｒ１０」、および「Ｇ１１」のビット［０］、３転送目に「Ｇ１１」のビット［１］〜ビット［８］を、それぞれパック領域２のメモリバスの下位ビットから順次パッキングした場合を示している。
【００８３】
＜第３のデータ配置方法＞
図６は、本第１の構成のデータ変換部４１に備えたパックデータ生成部４１１によるデータ配置方法の、さらに別の一例（第３のパッキング方法）を説明する図である。図６（ａ）には、第１のパッキング方法、すなわち、従来のバースト単位でのパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図６（ｂ）には、本第３のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【００８４】
本第３のパッキング方法では、パックデータ生成部４１１が、まず、入力された画素データの各ビットのデータを、第１のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部４１１は、予め設定されたシフト基準位置に画素データの境界のビットが配置されるように、１転送毎に各ビットの画素データをビットシフトしたパックデータを最終的なパックデータにする。
【００８５】
なお、シフト基準位置は、バースト転送する際の連続する２転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるような基準の位置に、予め設定されている。そして、それぞれのパックデータ内の画素データのビットの位置をシフト基準位置にシフトするための方向とシフト量とが、予め設定されている。これにより、メモリバス上の各ビットの変化が最も小さくするようにしている。
【００８６】
なお、パックデータ生成部４１１とデータ復元部５２２とには、同じシフト基準位置が、予め定められており、それぞれのパックデータ内で画素データの各ビットをシフトする方向とシフト量とが予め定められている。これにより、データ復元部５２２は、パックデータ生成部４１１によってシフトされた方向と逆の方向に同じシフト量だけシフトすることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【００８７】
図６（ａ）に示したように、パックデータ生成部４１１は、まず、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部４１１が、１転送目に「Ｒ０」、「Ｇ１」、「Ｒ２」、および「Ｇ３」のビット［０］〜ビット［４］、２転送目に「Ｇ３」のビット［５］〜ビット［８］、「Ｒ４」、「Ｇ５」、「Ｒ６」、および「Ｇ７」のビット［０］、３転送目に「Ｇ７」のビット［１］〜ビット［８］、「Ｒ８」、「Ｇ９」、および「Ｒ１０」のビット［０］〜ビット［５］、４転送目に「Ｒ１０」のビット［６］〜ビット［８］、および「Ｇ１１」を、それぞれメモリバスの最下位ビットから順次配置（パッキング）する。
【００８８】
続いて、パックデータ生成部４１１は、生成したバックデータの１転送毎に各ビットに配置された画素データをシフトする。図６（ａ）に示したパックデータの一例では、４転送目の「Ｇ１１」のビット［８］と４転送目の未使用ビット最下位ビット（メモリバスのビット［１２］との境界の位置にシフト基準位置が設定されている。パックデータ生成部４１１は、図６（ａ）内に示した矢印のように、それぞれのパックデータ内の各ビットをシフトして、図６（ｂ）に示したようなパックデータを生成する。より具体的には、パックデータ生成部４１１は、１転送目のパックデータを右に６ビットシフトする。また、パックデータ生成部４１１は、２転送目のパックデータを右に１０ビット、３転送目のパックデータを右に１４ビット、それぞれシフトする。これにより、図６（ｂ）に示したように、１転送目〜３転送目までのパックデータに含まれる緑色の画素データのビット［８］と赤色の画素データのビット［０］との境界の位置が、設定されたシフト基準位置になる。
【００８９】
＜第４のデータ配置方法＞
図７は、本第１の構成のデータ変換部４１に備えたパックデータ生成部４１１によるデータ配置方法の、さらに別の一例（第４のパッキング方法）を説明する図である。図７（ａ）には、本第４のパッキング方法において予め設定されている配置の組み合わせ（並べ替えケース）を示している。また、図７（ｂ）には、本第４のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。なお、図７（ａ）に示した表中の「単位」に続く数字は、説明を容易にするために付与した、並べ替え単位（図７においては、１ｂｙｔｅの単位）を識別する情報である。この数字は、パックデータの並べ替えを行わない場合（並べ替えケース１）において、下位の並べ替え単位（１ｂｙｔｅ）から順に付与された数字であり、配置変更の処理によって画素データの配置がどの並べ替え単位の位置に変更されたかを、識別するための情報である。
【００９０】
本第４のパッキング方法では、パックデータ生成部４１１が、まず、入力された画素データの各ビットのデータを、第１のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部４１１は、予め定められた並べ替え単位（１ｂｙｔｅの単位）毎に、連続する２転送間のパックデータ内の画素データをビット毎に比較し、予め定められた並べ替えケースの組み合わせの範囲内でパックデータ内の画素データの配置を並べ替えたバックデータを生成する。さらに、パックデータ内の画素データの配置を並べ替えたときの情報（図７（ａ）に示した並べ替え情報）を、画素データが配置されていない未使用ビットに付加して、最終的なパックデータにする。
【００９１】
なお、パックデータ生成部４１１とデータ復元部５２２とには、同じ並べ替えケースが、予め定められている。これにより、データ復元部５２２は、パックデータ内に付加された並べ替え情報を確認することによって、パックデータ生成部４１１がパックデータ内の画素データの配置を並べ替えるときに採用された並べ替えケースを把握することができる。そして、データ復元部５２２が、パックデータ生成部４１１に採用された並べ替えケースと逆の配置、すなわち、元の画素データの配置に、パックデータ内の画素データの配置を並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【００９２】
本第４のパッキング方法によって、図７（ｂ）に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部４１１が、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを生成する（図４参照）。
【００９３】
続いて、パックデータ生成部４１１は、パックデータのメモリバス幅を、予め定められたビット数（図７においては、８ｂｉｔ：１ｂｙｔｅ）の並べ替え単位に区切る。そして、例えば、１転送目のパックデータの各ビットの値と、２転送目のパックデータの各ビットの値とを比較して、値が変化しているビットの数を並べ替え単位毎に算出する。そして、パックデータ生成部４１１は、算出した値が変化しているビットの数が最も少なくなる並べ替えの組み合わせ（並べ替えケース）を選択する。そして、選択した並べ替えケースの配置となるように、２転送目のパックデータ内の画素データの配置を並べ替え単位毎に並べ替えたパックデータを生成する。
【００９４】
図７（ｂ）に示したパックデータ内の各画素データの配置では、１転送目のパックデータから２転送目のパックデータに替わるときに並べ替えケース２が選択され、２転送目のパックデータから３転送目のパックデータに替わるときに並べ替えケース４が選択された場合を示している。なお、３転送目のパックデータから４転送目のパックデータに替わるときには、４転送目のパックデータの未使用ビットに、各転送におけるパックデータ内の画素データの配置を並べ替えたときの並べ替え情報が付加（ビット結合）されるため、並べ替えを行わない並べ替えケース１が選択される。
【００９５】
そして、パックデータ生成部４１１は、４転送目のパックデータの未使用ビット（図７においては、４転送目のパックデータのビット「１２」〜ビット「１７」）に選択した並べ替えケースに対応した並べ替え情報の値をビット結合する。より具体的には、４転送目のパックデータのビット「１２」およびビット「１３」に並べ替えケース２に対応した並べ替え情報（“０１”）を、４転送目のパックデータのビット「１４」およびビット「１５」に並べ替えケース４に対応した並べ替え情報（“１１”）を、４転送目のパックデータのビット「１６」およびビット「１７」に並べ替えケース１に対応した並べ替え情報（“００”）を、それぞれビット結合する。
【００９６】
＜第５のデータ配置方法＞
図８は、本第１の構成のデータ変換部４１に備えたパックデータ生成部４１１によるデータ配置方法の、さらに別の一例（第５のパッキング方法）を説明する図である。図８（ａ）は、入力された画素データの一例を示し、図８（ｂ）は、本第５のパッキング方法において行われる反転処理を行った後の画素データの一例を示している。また、図８（ｃ）には、本第５のパッキング方法によって反転処理された画素データが配置されたパックデータ内の画素データの配置を示している。
【００９７】
本第５のパッキング方法では、パックデータ生成部４１１が、まず、入力された画素データの各ビットのデータを、第１のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部４１１は、１転送のパックデータ内に配置されたそれぞれの画素データを予め定めた上位のビットと下位のビットとに分ける。そして、画素データの下位のビットをまとめて反転処理し、それぞれの画素データの上位のビットと、反転処理した後のそれぞれの画素データの下位のビットとを結合して、それぞれ１転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報（図８（ｂ）に示した反転ビット）を、当該１転送のメモリバス内に存在する未使用ビットに付加して、最終的な１転送のパックデータにする。
【００９８】
ここで、図８（ａ）および図８（ｂ）を用いて、本第５のパッキング方法における反転処理について説明する。なお、以下の説明においては、説明を容易にするため、８ｂｉｔの画素データが、上段から下段に向かって時系列的に順次入力される場合について説明する。パックデータ生成部４１１は、画素データが入力される毎に、下位の入力画素データの各ビットの値を順次比較する。より具体的には、図８（ａ）に示した入力画素データのそれぞれの段において、下位の入力画素データの各ビットの値を上段の下位の入力画素データの値と比較し、ビット変化数を算出する。これにより、図８（ａ）に示したような下位の入力画素データのビット変化数を得る。
【００９９】
そして、パックデータ生成部４１１は、算出したビット変化数が下位の入力画素データの半数を超える場合に、当該下位の入力画素データをそれぞれのビット毎に反転（“１”を“０”、または“０”を“１”）したデータを、反転処理した下位の出力画素データとして生成する。そして、パックデータ生成部４１１は、上位の入力画素データと下位の出力画素データとを結合したデータを、最終的な出力画素データとする。また、パックデータ生成部４１１は、反転処理した出力画素データであることを表す反転ビット（図８（ｂ）参照）を、最終的な出力画素データに付加する。図８（ｂ）においては、出力画素データが、反転処理されたデータである場合に、反転ビットの値を“１”とし、反転処理されていないデータである場合に、反転ビットの値を“０”としている。このように反転処理することによって、本第５のパッキング方法では、メモリバス上の各ビットの変化を小さくしている。
【０１００】
なお、パックデータ生成部４１１とデータ復元部５２２とは、反転ビットの値が意味する内容、すなわち、反転処理を行ったか否かの情報を共有している。これにより、データ復元部５２２は、反転ビットを確認することによって、パックデータ生成部４１１が反転処理を行ったか否かを判定することができる。そして、データ復元部５２２は、パックデータ生成部４１１によって反転処理が行われたデータ（より詳細には、下位の画素データ）を、反転処理することによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【０１０１】
本第５のパッキング方法によって、図８（ｃ）に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部４１１が、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部４１１が、１転送目に「Ｒ０」、「Ｇ１」、および「Ｒ８」、２転送目に「Ｒ２」、「Ｇ３」、および「Ｒ１０」、３転送目に「Ｒ４」、「Ｇ５」、および「Ｇ９」、４転送目に「Ｒ６」、「Ｇ７」、および「Ｇ１１」を、それぞれメモリバスの最下位ビットから順次配置（パッキング）する。
【０１０２】
続いて、パックデータ生成部４１１は、それぞれの１転送毎のパックデータに配置された画素データの下位のビット（例えば、１転送目のパックデータにおいては、「Ｒ０」、「Ｇ１」、および「Ｒ８」のビット［０］〜ビット［３］）をまとめて反転処理する。そして、画素データの下位のビットを反転処理したときの反転ビットを、各転送におけるパックデータ内の未使用ビット（図８（ｃ）においては、メモリバスのビット［２７］）にビット結合する。
【０１０３】
次に、データ変換部４１が出力する転送データについて説明する。図９は、本第１の構成のデータ変換部４１から出力する転送データを説明する図である。上述したように、データ変換部４１は、撮像処理部４０から順次入力された９ｂｉｔの画素データの各ビットのデータを、メモリバス上の各ビットに配置した３２ｂｉｔの転送データを、例えば、出力ＤＭＡ部４５から入力される図示しないデータイネーブル信号に基づいて順次出力する。
【０１０４】
データ変換部４１は、入力された画素データを、上述した第１のパッキング方法〜第５のパッキング方法の内、いずれか１つのパッキング方法で、１バースト分、すなわち、パッキング単位（４転送）分の画素データを配置（パッキング）したパックデータＡ〜Ｄを生成するパックデータ生成部４１１ａ〜４１１ｄを備えている。そして、比較部４１７は、メモリバス上のデータの変化が最も少ないパックデータを、転送パックデータとして選択し、転送パックデータとして選択されたパックデータを表す、パックデータ選択ビットを出力する。比較部４１７には、例えば、図９（ａ）に示したように、転送パックデータとして選択されたパックデータに対応したパックデータ選択ビットの値が、予め定められている。なお、図９（ａ）に示した転送パックデータとパックデータ選択ビットとの対応では、４つのパックデータ生成部４１１にそれぞれ対応したパックデータ選択ビットが予め設定しているため、パックデータ選択ビットのビット数は、２ｂｉｔである。
【０１０５】
そして、ビット結合部４１９は、例えば、図９（ｂ）に示したように、１バーストの転送データ内の予め定められた固定位置にパックデータ選択ビットを付加した転送パックデータを、データ変換部４１が最終的に出力する転送データとして、それぞれのバースト毎に、出力ＤＭＡ部４５に出力する。図９（ｂ）では、パックデータ選択ビットを付加する固定位置が、４転送目のパックデータの最上位ビットから２ビット（より具体的には、メモリバスのビット［３１］とビット［３０］）とに、予め定められている場合を示している。また、図９（ｂ）では、２バースト分の転送データを示している。
【０１０６】
データ変換部４１とデータ逆変換部５２とは、パックデータ選択ビットが付加される固定位置の情報を共有している。また、データ変換部４１とデータ逆変換部５２とは、図９（ａ）に示したような、選択されたパックデータとパックデータ選択ビットの値との対応、すなわち、パックデータ選択ビットの値が表す転送データのパッキング方法の情報を共有している。これにより、データ逆変換部５２は、パックデータ選択ビットを確認することによって、データ変換部４１から出力された転送データに適用されているパッキング方法を判定することができる。そして、データ逆変換部５２は、転送データに適用されたパッキング方法と逆の方法で、転送パックデータの各ビットに配置されたそれぞれのデータが、順次分割（アンパッキング）された、１バースト分、すなわち、パッキング単位（４転送）分のアンパックデータを、元の画素データとして選択することができる。
【０１０７】
上記に述べたように、本第１の構成のデータ変換部４１および５１では、複数のパッキング方法によって生成されたそれぞれのパックデータの中から、バースト転送時におけるメモリバスの各ビットの変化量が最も少ないパックデータを選択して出力することができる。そして、選択されたパックデータ（パッキング方法）を表すパックデータ選択ビットを、転送データと共に出力する。これにより、本第１の構成のデータ変換部４１および５１では、転送する画素データに最適なパッキング方法を選択することによって、画像データの転送に係る消費電力の低減効果がより高いデータ転送を実現することができる。このことにより、撮像装置１内の各構成要素（処理ブロック）とメモリ２０との間での画素データの転送、すなわち、撮像装置１内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
【０１０８】
＜第２の構成＞
次に、本第２の構成のデータ変換部について説明する。図１０は、本実施形態の撮像装置１に備えた第２の構成のデータ変換部４３の概略構成を示したブロック図である。図１０に示したデータ変換部４３は、第１の構成のデータ変換部４１の代わりに、撮像装置１に備えられる。従って、データ変換部４３は、データ変換部５１の代わりに撮像装置１に備えることもできる。図１０に示したように、データ変換部４３は、４つのパックデータ生成部４３１ａ〜４３１ｄ（以下、パックデータ生成部４３１ａ〜４３１ｄのいずれか１つを表すときには「パックデータ生成部４３１」という）と、Ｄ−ＦＦ４３２と、４つのＥＸＯＲ（排他的論理和）回路４１４ａ〜４１４ｄ（以下、ＥＸＯＲ回路４１４ａ〜４１４ｄのいずれか１つを表すときには「ＥＸＯＲ回路４１４」という）と、４つのビット加算部４１５ａ〜４１５ｄ（以下、ビット加算部４１５ａ〜４１５ｄのいずれか１つを表すときには「ビット加算部４１５」という）と、比較部４３７と、選択部４３８と、ビット結合部４３９と、を備えている。
【０１０９】
本第２の構成のデータ変換部４３は、図２に示した第１の構成のデータ変換部４１内のパックデータ生成部４１１に代わって、パックデータ生成部４３１を備え、Ｄ−ＦＦ４１２に代わってＤ−ＦＦ４３２を備え、比較部４１７に代わって比較部４３７を備え、選択部４１８に代わって選択部４３８を備え、ビット結合部４１９に代わってビット結合部４３９を備えている。また、データ変換部４１内のバースト単位バッファ４１３と、バースト単位累積部４１６とが削除されている。以下の説明においては、第１の構成のデータ変換部４１内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【０１１０】
なお、以下の説明においては、第１の構成と同様に、データ変換部４３に、図２０に示したような、１６行×１６列のベイヤーデータが入力され、４転送をベイヤーデータ内の各画素データのパッキング単位とし、ベイヤーデータ内の各画素データのビット数は９ｂｉｔであり、メモリバス幅は３２ｂｉｔである場合について説明する。
【０１１１】
データ変換部４３は、第１の構成のデータ変換部４１と同様に、撮像処理部４０から順次入力された９ｂｉｔの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか１つの方法で、メモリバス上の各ビットに配置した３２ｂｉｔの転送データを出力する。ただし、データ変換部４３が転送データを生成する方法は、第１の構成のデータ変換部４１と異なる。より具体的には、データ変換部４１では、１バースト（４転送）分の転送パックデータの単位で、メモリバス上のビット変化が最も少ないパックデータを選択していたが、データ変換部４３では、それぞれの１転送のパックデータ毎に、メモリバス上のビット変化が最も少ないパックデータを選択する。
【０１１２】
データ変換部４３が転送データを生成する際には、まず、入力された画素データを、予め定めた複数のパッキング方法でそれぞれパッキングした複数のパックデータを生成する。そして、データ変換部４３は、生成したそれぞれの１転送のパックデータの内、メモリバス上のビット変化が最も少ない１転送のパックデータ（以下、「転送単位パックデータ」という）を選択する。その後、データ変換部４３は、パックデータを選択したときの情報（パックデータ選択ビット）を、転送単位パックデータ内、すなわち、１転送のパックデータ内に存在する未使用ビットに付加して、最終的に出力する転送データとして出力する。
【０１１３】
パックデータ生成部４３１ａ〜４３１ｄは、それぞれ、入力された画素データの各ビットのデータを、予め定めたパッキング方法で、メモリバスに対応したデータバス（このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する）の各ビットに配置した、メモリバス幅のビット数（本第２の構成のデータ変換部４３においては、３２ｂｉｔ）の１転送のパックデータを順次生成する。そして、パックデータ生成部４３１ａ〜４３１ｄのそれぞれは、生成した１転送のパックデータを、順次、選択部４３８と対応するＥＸＯＲ回路４１４ａ〜４１４ｄとに出力する。
【０１１４】
なお、パックデータ生成部４３１ａ〜４３１ｄのそれぞれが生成した１転送のパックデータは、データ変換部４１内のパックデータ生成部４１１がそれぞれ生成した、１バースト分のパックデータＡ〜Ｄの１転送毎のパックデータａ〜ｄに相当する。従って、以下の説明においても、パックデータ生成部４３１ａ〜４３１ｄのそれぞれが生成した１転送のパックデータを、それぞれ、パックデータａ〜ｄという。なお、パックデータ生成部４３１のそれぞれにおけるパッキング方法、およびパックデータの例に関する詳細な説明は、後述する。
【０１１５】
選択部４３８は、比較部４３７から入力されたパックデータ選択ビットに応じて、パックデータ生成部４３１ａ〜４３１ｄの内、いずれか１つのパックデータ生成部４３１を選択する。そして、選択したパックデータ生成部４３１から出力されたパックデータ（パックデータａ〜ｄの内、いずれか１つのパックデータ）を、転送単位パックデータとしてビット結合部４３９に出力する。なお、選択部４３８内には、パックデータ生成部４３１ａ〜４３１ｄのそれぞれから入力されたパックデータａ〜ｄをそれぞれ一時的に保持するメモリ部を備え、比較部４３７から入力されるパックデータ選択ビットとのタイミングの整合をとって、転送単位パックデータを選択する。
【０１１６】
Ｄ−ＦＦ４３２は、選択部４３８から出力された転送単位パックデータを保持する。このＤ−ＦＦ４３２によって保持された転送単位パックデータは、ＥＸＯＲ回路４１４ａ〜４１４ｄのそれぞれに出力される。なお、転送単位パックデータは、パックデータ生成部４３１が前回の１転送で出力したパックデータａ〜ｄのいずれか１つのパックデータに相当する。
【０１１７】
ＥＸＯＲ回路４１４ａ〜４１４ｄは、それぞれ、対応するパックデータ生成部４３１ａ〜４３１ｄから出力された３２ｂｉｔのパックデータａ〜ｄと、Ｄ−ＦＦ４３２から出力された３２ｂｉｔの転送単位パックデータとの２つのパックデータの各ビットの値をビット毎に比較する。そして、ＥＸＯＲ回路４１４ａ〜４１４ｄは、２つのパックデータのビットの値が同じ値のときに“０”を、２つのパックデータのビットの値が異なる値のときに“１”を、比較したそれぞれのビット毎に出力する。
【０１１８】
なお、ＥＸＯＲ回路４１４ａ〜４１４ｄのそれぞれは、Ｄ−ＦＦ４３２から入力された転送単位パックデータを、同じパッキング単位（４転送）において、パックデータ生成部４３１ａ〜４３１ｄのそれぞれが出力した前回のパックデータａ〜ｄとして、各ビットの値を比較する。これにより、データ変換部４３が出力した前回の転送単位パックデータが、パックデータ生成部４３１ａ〜４３１ｄのいずれのパックデータ生成部４３１によって生成されたパックデータであるかに関係なく、前回のパックデータと、今回のパックデータａ〜ｄとの比較が行われる。
【０１１９】
なお、パックデータ生成部４３１から出力された今回のパックデータａ〜ｄが１転送目のパックデータａ〜ｄである場合には、ビットの値が変化していないことを示す値＝“０”を、全てのビットに出力する。
【０１２０】
ビット加算部４１５ａ〜４１５ｄは、それぞれ、対応するＥＸＯＲ回路４１４ａ〜４１４ｄから入力された値が変化しているビットの数を計数したビット変化数を算出する。これにより、パックデータ生成部４３１ａ〜４３１ｄのいずれか１つのパックデータ生成部４３１が出力した前回のパックデータ（Ｄ−ＦＦ４３２から出力された転送単位パックデータ）の値が、次にパックデータ生成部４３１ａ〜４３１ｄが出力した今回のパックデータａ〜ｄの値に変化する際に、メモリバス上の各ビットの値が異なる値に変化するビットの数（ビット変化数）が、それぞれのパックデータ生成部４３１によって算出される。そして、ビット加算部４１５ａ〜４１５ｄのそれぞれは、算出したビット変化数を、比較部４３７に出力する。
【０１２１】
比較部４３７は、ビット加算部４１５ａ〜４１５ｄのそれぞれから入力されたビット変化数の内、ビット変化数が最も少ないものを判定し、最も少ないビット変化数を出力したビット加算部４１５を特定（選択）する。そして、比較部４３７は、最も少ないビット変化数を出力したビット加算部４１５を表す情報、すなわち、最もメモリバス上のビット変化が少ないパッキング方法を表す情報を、パックデータ選択ビットとして、選択部４３８とビット結合部４３９とに出力する。これにより、１転送のパックデータ（転送単位パックデータ）においてメモリバス上のビット変化が最も少ないパックデータが選択されることになる。
【０１２２】
なお、パックデータ選択ビットは、データ変換部４３内に備えたパックデータ生成部４３１のそれぞれに対応した値が、予め定められており、データ変換部４３に対応するデータ逆変換部にも、共通の値が予め定められている。これにより、データ変換部４３に対応するデータ逆変換部は、データ変換部４３で選択されたパッキング方法を判別することができる。
【０１２３】
ビット結合部４３９は、選択部４３８から入力された転送単位パックデータ内、すなわち、１転送のパックデータ内に存在する未使用ビットに、比較部４３７から入力されたパックデータ選択ビットを付加する。そして、ビット結合部４３９は、パックデータ選択ビットを付加した転送単位パックデータを、データ変換部４３が最終的に出力する転送データとして、出力ＤＭＡ部４５に出力する。
【０１２４】
なお、ビット結合部４３９がパックデータ選択ビットを付加する転送単位パックデータ内の未使用ビットの位置は、パックデータ生成部４３１ａ〜４３１ｄが生成する１転送のパックデータａ〜ｄの全てで共通の未使用ビットの固定位置が予め定められている。また、データ変換部４３に対応するデータ逆変換部にも、パックデータａ〜ｄで共通の未使用ビットの固定位置と同じ位置が、パックデータ選択ビットが付加された未使用ビットの位置として、予め定められている。これにより、データ変換部４３に対応するデータ逆変換部は、固定された位置に付加されているパックデータ選択ビットに基づいて、データ変換部４３が出力した転送データを逆変換して、元の画素データに復元することができる。
【０１２５】
次に、本第２の構成のデータ逆変換部について説明する。図１１は、本実施形態の撮像装置１に備えた第２の構成のデータ逆変換部５４の概略構成を示したブロック図である。図１１に示したデータ逆変換部５４は、第１の構成のデータ逆変換部５２の代わりに、撮像装置１に備えられる。従って、データ逆変換部５４は、データ逆変換部６２の代わりに撮像装置１に備えることもできる。図１１に示したように、データ逆変換部５４は、ビット分離部５２１と、４つのデータ復元部５４２ａ〜５４２ｄ（以下、データ復元部５４２ａ〜５４２ｄのいずれか１つを表すときには「データ復元部５４２」という）と、選択部５２４と、を備えている。
【０１２６】
本第２の構成のデータ逆変換部５４は、図３に示した第１の構成のデータ逆変換部５２内のデータ復元部５２２に代わって、データ復元部５４２を備え、データバッファ５２３が削除されている。以下の説明においては、第１の構成のデータ逆変換部５２内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【０１２７】
なお、以下の説明においては、第１の構成と同様に、データ逆変換部５４に、データ変換部４３によってパッキングされた、４転送をパッキング単位とした１バーストのパックデータが、入力ＤＭＡ部５６を介して入力され、入力されたパックデータを、図２０に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は９ｂｉｔであり、メモリバス幅は３２ｂｉｔであるものとして説明する。
【０１２８】
データ逆変換部５４は、第１の構成のデータ逆変換部５２と同様に、入力ＤＭＡ部５６から入力された３２ｂｉｔの転送データの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか１つの方法と逆の方法で、画像処理部５０が画像処理する元の画像データ（ベイヤーデータ）に戻した９ｂｉｔの画素データに復元する。ただし、データ逆変換部５４が元の画素データに復元する方法は、第１の構成のデータ逆変換部５２と異なる。より具体的には、データ逆変換部５２では、１バースト（４転送）分の転送パックデータのいずれかの固定位置に付加されていたパックデータ選択ビットに基づいて元の画素データに復元していたが、データ逆変換部５４では、１転送のパックデータ毎に付加されているパックデータ選択ビットに基づいて、元の画素データに復元する。
【０１２９】
また、データ逆変換部５４には、上述したように、データ変換部４３によってパックデータ選択ビットが付加された未使用ビットの位置と同じ固定位置が、予め定められている。そして、データ逆変換部５４が画素データを復元する際には、１転送毎に入力された３２ｂｉｔの転送データ（この転送データは、データ変換部４３が生成した転送データと同等である）を、パックデータ選択ビットと、データ変換部４３内のパックデータ生成部４３１が画素データをパッキングしたパックデータ（このパックデータは、データ変換部４３内の選択部４３８によって選択された転送単位パックデータと同等であるため、以下の説明のいては、「転送単位パックデータ」として説明する）とに、順次分離する。そして、データ逆変換部５４は、１転送毎の転送単位パックデータを、データ変換部４３によるパッキング方法と逆の方法で、順次分割（アンパッキング）し、画素データに相当するアンパックデータを順次生成する。その後、データ逆変換部５４は、パックデータ選択ビットに基づいて、アンパックデータの中から、データ変換部４３に入力された画素データと同等のアンパックデータを１転送毎に選択して、元の画素データとして順次出力する。
【０１３０】
ビット分離部５２１は、入力ＤＭＡ部５６から入力された転送データを、１転送毎に順次、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットと、転送単位パックデータとに分離する。そして、ビット分離部５２１は、分離した転送単位パックデータを、データ復元部５４２に１転送毎に順次出力する。また、ビット分離部５２１は、分離したパックデータ選択ビットを、選択部５２４に１転送毎に順次出力する。
【０１３１】
データ復元部５４２ａ〜５４２ｄは、それぞれ、パックデータ生成部４３１ａ〜４３１ｄに対応し、ビット分離部５２１から入力された転送単位パックデータを、予め定めたパッキング方法と逆の方法で、転送単位パックデータの各ビットに配置されたそれぞれのデータ（本第２の構成のデータ逆変換部５４においては、９ｂｉｔのデータ）に、順次分割（アンパッキング）した、１転送分のアンパックデータを生成する。そして、データ復元部５４２ａ〜５４２ｄのそれぞれは、生成したアンパックデータを、１画素毎、すなわち、画素データのビット数（本第２の構成のデータ逆変換部５４においては、９ｂｉｔ）毎に順次、選択部５２４に出力する。
【０１３２】
なお、データ復元部５４２ａ〜５４２ｄのそれぞれが生成した１画素毎のアンパックデータは、データ逆変換部５２内のデータ復元部５２２がそれぞれ生成した、１画素毎のアンパックデータａ〜ｄに相当する。従って、以下の説明においても、データ復元部５４２ａ〜５４２ｄのそれぞれが出力する１画素毎のアンパックデータを、それぞれ、アンパックデータａ〜ｄという。
【０１３３】
選択部５２４は、ビット分離部５２１から入力されたパックデータ選択ビットに応じて、データ復元部５４２ａ〜５４２ｄの内、いずれか１つのデータ復元部５４２を選択する。そして、選択したデータ復元部５４２から入力されたアンパックデータ（アンパックデータａ〜ｄの内、いずれか１つのアンパックデータ）を、元の画素データとして、順次、画像処理部５０に出力する。なお、選択部５２４内には、データ復元部５４２ａ〜５４２ｄのそれぞれから入力されたアンパックデータａ〜ｄをそれぞれ一時的に保持するメモリ部を備え、ビット分離部５２１から入力されるパックデータ選択ビットとのタイミングの整合をとって、元の画素データを選択する。
【０１３４】
このようにして、データ逆変換部５４は、それぞれの転送データの予め定められた固定位置に付加されているパックデータ選択ビットに基づいて、データ変換部４３が、予め定めた複数のパッキング方法の内、いずれのパッキング方法でパッキングしたパックデータを出力したのかを判別する。そして、データ逆変換部５４は、データ変換部４３が選択したパッキング方法と逆の方法で生成されたアンパックデータを、データ変換部４３が出力した転送データを逆変換した元の画素データとして出力、すなわち、元の画素データに復元する。
【０１３５】
なお、上述したように、データ復元部５４２ａ〜５４２ｄは、それぞれ、パックデータ生成部４３１ａ〜４３１ｄに対応している。しかし、データ復元部５４２がそれぞれ生成するアンパックデータａ〜ｄは、元の画素データと同等のデータではないこともある。これは、第１の構成のデータ逆変換部５２と同様に、データ復元部５４２ａ〜５４２ｄのそれぞれが、アンパックデータａ〜ｄを生成する時点では、入力された転送単位パックデータが、データ変換部４３内のいずれのパックデータ生成部４３１によって生成されたパックデータ、すなわち、図１０に示したパックデータａ〜ｄのいずれのパックデータであるかが不明であるためである。従って、データ復元部５４２ａ〜５４２ｄのそれぞれが生成したアンパックデータａ〜ｄを、パックデータ選択ビットに基づいて選択したアンパックデータａ〜ｄのいずれか１つのアンパックデータを、データ逆変換部５４が最終的に出力する画素データとして、画像処理部５０に出力している。
【０１３６】
ここで、パックデータ生成部４３１ａ〜ｄにおけるパックデータａ〜ｄの生成方法、すなわち、予め定められた複数のパッキング方法（画素データの配置方法）の一例について説明する。本実施形態の撮像装置１では、データ変換部４３内のパックデータ生成部４３１ａ〜ｄが入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部５４内のデータ復元部５４２ａ〜５４２ｄが入力された転送単位パックデータを元の画素データに戻す。なお、以下の説明においては、パックデータ生成部４３１に、図２０に示したベイヤーデータ内の各画素データが順次入力され、４転送を１つのパッキング単位とした１バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は９ｂｉｔであり、メモリバス幅は３２ｂｉｔであるものとする。
【０１３７】
なお、データ復元部５４２ａ〜ｄによる転送単位パックデータを元の画素データに戻す方法（アンパッキング方法）は、パックデータ生成部４３１ａ〜ｄによる画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
【０１３８】
＜第６のデータ配置方法＞
図１２は、本第２の構成のデータ変換部４３に備えたパックデータ生成部４３１によるデータ配置方法の一例（第６のパッキング方法）を説明する図である。図１２には、本第６のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。
【０１３９】
本第６のパッキング方法では、パックデータ生成部４３１が、入力された画素データの各ビットのデータを、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。なお、本第６のパッキング方法は、従来のパッキング方法と同様であるため、詳細な説明は省略する。
【０１４０】
図１２では、パックデータ生成部４３１が、１転送内に３画素分の画素データをパッキングし、ベイヤーデータ内の各画素データを、１バースト（４転送）で１２画素分の画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）を転送する場合のパックデータを示している。より具体的には、パックデータ生成部４３１が、１転送目に「Ｒ０」、「Ｇ１」、および「Ｒ２」、２転送目に「Ｇ３」、「Ｒ４」、および「Ｇ５」、３転送目に「Ｒ６」、「Ｇ７」、および「Ｒ８」、４転送目に「Ｇ９」、「Ｒ１０」、および「Ｇ１１」を、それぞれメモリバスの最下位ビットから順次配置（パッキング）した場合を示している。
【０１４１】
なお、本第６のパッキング方法においては、１転送分のパックデータ内に画素データの全てのビットを配置することができない場合には、次の画素データのパッキングをしない。これは、本第６のパッキング方法では、１転送をパッキング単位として各画素データをパッキングするため、次の画素データをパッキングすると、画素データがパッキング単位を跨いでしまうことになるためである。従って、画素データが配置されなかったメモリバスのビット（図１２においては、各転送のメモリバスのビット［３１］〜ビット［２７］）は、未使用ビットとする。
【０１４２】
＜第７のデータ配置方法＞
図１３は、本第２の構成のデータ変換部４３に備えたパックデータ生成部４３１によるデータ配置方法の別の一例（第７のパッキング方法）を説明する図である。図１３（ａ）には、第６のパッキング方法、すなわち、従来のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図１３（ｂ）には、本第７のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【０１４３】
本第７のパッキング方法では、１バースト（４転送）分のパッキング単位を、パック領域１（図１３（ｂ）においては、１８ｂｉｔの領域）と、パック領域２（図５（ｂ）においては、１４ｂｉｔの領域）とに分けて、メモリバス上の各ビットに画素データの各ビットを配置する。そして、本第７のパッキング方法では、パックデータ生成部４３１が、パックデータ内のパック領域１の連続する２転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、それぞれの１転送内に配置される画素データの位置を変更する。また、パックデータ生成部４３１は、画素データが配置されずに残っているパックデータ内のパック領域２に、それぞれの１転送内でパック領域１に配置されなかった画素データを配置する。
【０１４４】
なお、パックデータ生成部４３１とデータ復元部５４２とには、同じパック領域１およびパック領域２が、予め定められており、それぞれの領域に配置する画素データの位置も予め定められている。これにより、データ復元部５４２は、パックデータ生成部４３１によってパッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【０１４５】
図１３（ｂ）では、パックデータ生成部４３１が、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを示している。より具体的には、パックデータ生成部４３１が、１転送目に「Ｒ０」、「Ｇ１」、および「Ｒ２」、２転送目に「Ｒ４」、「Ｇ３」、および「Ｇ５」、３転送目に「Ｒ６」、「Ｇ７」、および「Ｒ８」、４転送目に「Ｒ１０」、「Ｇ９」、および「Ｇ１１」を、それぞれメモリバスの最下位ビットから順次配置（パッキング）した場合を示している。
【０１４６】
＜第８のデータ配置方法＞
図１４は、本第２の構成のデータ変換部４３に備えたパックデータ生成部４３１によるデータ配置方法の、さらに別の一例（第８のパッキング方法）を説明する図である。図１４（ａ）には、第６のパッキング方法、すなわち、従来のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図１４（ｂ）には、本第８のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【０１４７】
本第８のパッキング方法では、パックデータ生成部４３１が、まず、入力された画素データの各ビットのデータを、第６のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部４３１は、予め設定された並べ替え基準位置に画素データの境界のビットが配置されるように、同じ１転送のパックデータ内に配置された画素データの配置を並べ替える。そして、画素データの配置を並べ替えたパックデータを最終的な１転送のパックデータにする。
【０１４８】
なお、並べ替え基準位置は、バースト転送する際の連続する２転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるような基準のビットの位置に、予め設定されている。そして、それぞれのパックデータ内の画素データの位置を並べ替え基準位置にするための並べ替え方法が、１転送毎に予め設定されている。これにより、メモリバス上の各ビットの変化が最も小さくするようにしている。
【０１４９】
なお、パックデータ生成部４３１とデータ復元部５４２とには、同じ並べ替え基準位置が、予め定められており、それぞれのパックデータ内で画素データの並べ替え方法が予め定められている。これにより、データ復元部５４２は、パックデータ生成部４３１が並べ替えられた方法と逆の方法で並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【０１５０】
図１４（ａ）に示したように、パックデータ生成部４３１は、まず、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部４３１が、１転送目に「Ｒ０」、「Ｇ１」、および「Ｒ２」、２転送目に「Ｇ３」、「Ｒ４」、および「Ｇ５」、３転送目に「Ｒ６」、「Ｇ７」、および「Ｒ８」、４転送目に「Ｇ９」、「Ｒ１０」、および「Ｇ１１」を、それぞれメモリバスの最下位ビットから順次配置（パッキング）する。
【０１５１】
続いて、パックデータ生成部４３１は、生成したバックデータの１転送毎のパックデータ内に配置された画素データを並べ替える。図１４（ａ）に示したパックデータの一例では、メモリバスのビット［１７］とビット［１８］との境界の位置に並べ替え基準位置が設定されている。パックデータ生成部４３１は、図１４（ａ）内に示した矢印のように、それぞれの１転送のパックデータ内の画素データの配置を並べ替えて、図１４（ｂ）に示したような、それぞれの１転送のパックデータを生成する。より具体的には、パックデータ生成部４３１は、１転送目のパックデータ内の「Ｇ１」と「Ｒ２」とを並べ替える。また、パックデータ生成部４３１は、２転送目のパックデータ内の「Ｒ４」と「Ｇ５」、３転送目のパックデータ内の「Ｇ７」と「Ｒ８」、４転送目のパックデータ内の「Ｒ１０」と「Ｇ１１」とを、それぞれ並べ替える。これにより、図１４（ｂ）に示したように、１転送目〜４転送目までのパックデータに含まれる各画素データの配置が、並べ替えられる。
【０１５２】
＜第９のデータ配置方法＞
図１５は、本第２の構成のデータ変換部４３に備えたパックデータ生成部４３１によるデータ配置方法の、さらに別の一例（第９のパッキング方法）を説明する図である。図１５（ａ）には、本第９のパッキング方法において予め設定されている配置の組み合わせ（並べ替えケース）を示している。また、図１５（ｂ）には、本第９のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。なお、図１５（ａ）に示した表中の「単位」に続く数字は、説明を容易にするために付与した、並べ替え単位（図１５においては、１ｂｙｔｅの単位）を識別する情報である。この数字は、パックデータの並べ替えを行わない場合（並べ替えケース１）において、下位の並べ替え単位（１ｂｙｔｅ）から順に付与された数字であり、配置変更の処理によって画素データの配置がどの並べ替え単位の位置に変更されたかを、識別するための情報である。
【０１５３】
本第９のパッキング方法では、パックデータ生成部４３１が、まず、入力された画素データの各ビットのデータを、第６のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部４３１は、予め定められた並べ替え単位（１ｂｙｔｅの単位）毎に、連続する２転送間のパックデータ内の画素データをビット毎に比較し、予め定められた並べ替えケースの組み合わせの範囲内でパックデータ内の画素データの配置を並べ替えたバックデータを生成する。さらに、パックデータ内の画素データの配置を並べ替えたときの情報（図１５（ａ）に示した並べ替え情報）を、それぞれの１転送のパックデータ内で画素データが配置されていない未使用ビットに付加して、最終的な１転送のパックデータにする。
【０１５４】
なお、パックデータ生成部４３１とデータ復元部５４２とには、同じ並べ替えケースが、予め定められている。これにより、データ復元部５４２は、１転送毎のパックデータ内に付加された並べ替え情報を確認することによって、パックデータ生成部４３１がパックデータ内の画素データの配置を並べ替えるときに採用された並べ替えケースを把握することができる。そして、データ復元部５４２が、パックデータ生成部４３１に採用された並べ替えケースと逆の配置、すなわち、元の画素データの配置に、パックデータ内の画素データの配置を並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【０１５５】
本第９のパッキング方法によって、図１５（ｂ）に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部４３１が、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを生成する（図１２参照）。
【０１５６】
続いて、パックデータ生成部４３１は、パックデータのメモリバス幅を、予め定められたビット数（図１５においては、８ｂｉｔ：１ｂｙｔｅ）の並べ替え単位に区切る。そして、例えば、１転送目のパックデータの各ビットの値と、２転送目のパックデータの各ビットの値とを比較して、値が変化しているビットの数を並べ替え単位毎に算出する。そして、パックデータ生成部４３１は、算出した値が変化しているビットの数が最も少なくなる並べ替えの組み合わせ（並べ替えケース）を選択する。そして、選択した並べ替えケースの配置となるように、２転送目のパックデータ内の画素データの配置を並べ替え単位毎に並べ替えたパックデータを生成する。
【０１５７】
図１５（ｂ）に示したパックデータ内の各画素データの配置では、１転送目のパックデータを基準のパックデータにする。従って、１転送目のパックデータは、並べ替えを行わないため、並べ替えケース１が選択される。そして、パックデータ生成部４３１は、１転送目のパックデータの未使用ビット（図１５（ｂ）においては、ビット「２７」〜ビット「３１」）に、選択した並べ替えケース１に対応した並べ替え情報の値を付加（ビット結合）する。図１５（ｂ）においては、１転送目のパックデータのビット「２７」とビット「２８」とに、並べ替えケース１に対応した並べ替え情報の値（“００”）がビット結合された場合を示している。そして、パックデータ生成部４３１は、並べ替え情報を付加した１転送目のパックデータを、最終的な１転送目のパックデータとして出力する。
【０１５８】
また、図１５（ｂ）に示したパックデータ内の各画素データの配置では、１転送目のパックデータから２転送目のパックデータに替わるときに並べ替えケース２が選択され、２転送目のパックデータから３転送目のパックデータに替わるときに並べ替えケース３が選択され、３転送目のパックデータから４転送目のパックデータに替わるときに並べ替えケース４が選択された場合を示している。そして、図１５（ｂ）においては、２転送目のパックデータの未使用ビットに並べ替えケース２に対応した並べ替え情報の値（“０１”）が、３転送目のパックデータの未使用ビットに並べ替えケース３に対応した並べ替え情報の値（“１０”）が、４転送目のパックデータの未使用ビットに並べ替えケース４に対応した並べ替え情報の値（“１１”）が、それぞれビット結合された場合を示している。そして、パックデータ生成部４３１は、並べ替え情報を付加した２転送目〜４転送目のパックデータを、最終的な２転送目〜４転送目のパックデータとして、順次出力する。
【０１５９】
＜第１０のデータ配置方法＞
図１６は、本第２の構成のデータ変換部４３に備えたパックデータ生成部４３１によるデータ配置方法の、さらに別の一例（第１０のパッキング方法）を説明する図である。図１６には、本第１０のパッキング方法によって反転処理された画素データが配置されたパックデータ内の画素データの配置を示している。なお、本第１０のパッキング方法における反転処理は、図８（ａ）および図８（ｂ）を用いて説明した第５のパッキング方法における反転処理と同様の考え方であるため、詳細な説明は省略する。
【０１６０】
本第１０のパッキング方法では、パックデータ生成部４３１が、まず、入力された画素データの各ビットのデータを、第６のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部４３１は、第５のパッキング方法と同様に、１転送のパックデータ内に配置されたそれぞれの画素データを予め定めた上位のビットと下位のビットとに分け、１転送のパックデータ内に配置されたそれぞれの画素データの下位のビットをまとめて反転処理する。そして、パックデータ生成部４３１は、それぞれの画素データの上位のビットと、反転処理した後のそれぞれの画素データの下位のビットとを分けて、それぞれ１転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報である反転ビットを、それぞれの１転送のパックデータ内で画素データが配置されていない未使用ビットに付加して、最終的な１転送のパックデータにする。
【０１６１】
なお、パックデータ生成部４３１とデータ復元部５４２とは、反転ビットの値が意味する内容、すなわち、反転処理を行ったか否かの情報を共有している。また、１転送のパックデータ内に分けて配置された画素データの上位ビットと下位のビットとの配置位置も予め定められている。これにより、データ復元部５４２は、反転ビットを確認することによって、パックデータ生成部４３１が反転処理を行ったか否かを判定することができる。そして、データ復元部５４２は、パックデータ生成部４３１によって反転処理が行われたデータ（より詳細には、下位の画素データ）を、反転処理することによって、画素データの下位のビットを元に戻すことができる。その後、画素データの上位のビットと元に戻した画素データの下位のビットを結合することによって、１転送のパックデータ内に配置されたそれぞれの画素データを、元の画素データに復元することができる。
【０１６２】
本第１０のパッキング方法によって、図１６に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部４３１が、ベイヤーデータ内の各画素データ（「Ｒ０」，「Ｇ１」，「Ｒ２」，「Ｇ３」，「Ｒ４」，「Ｇ５」，「Ｒ６」，「Ｇ７」，「Ｒ８」，「Ｇ９」，「Ｒ１０」，「Ｇ１１」）をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部４３１が、１転送目に「Ｒ０」、「Ｇ１」、および「Ｒ８」、２転送目に「Ｒ２」、「Ｇ３」、および「Ｒ１０」、３転送目に「Ｒ４」、「Ｇ５」、および「Ｇ９」、４転送目に「Ｒ６」、「Ｇ７」、および「Ｇ１１」を、それぞれメモリバスの最下位ビットから順次配置（パッキング）する。
【０１６３】
続いて、パックデータ生成部４３１は、それぞれの１転送毎のパックデータに配置された画素データの下位のビット（例えば、１転送目のパックデータにおいては、「Ｒ０」、「Ｇ１」、および「Ｒ８」のビット［０］〜ビット［３］）をまとめて反転処理する。そして、パックデータ生成部４３１は、それぞれの１転送毎のパックデータに配置された画素データの上位のビット（例えば、１転送目のパックデータにおいては、「Ｒ０」、「Ｇ１」、および「Ｒ８」のビット［４］〜ビット［８］）を、各転送におけるパックデータの最下位ビットから順次パッキングする。さらに、反転処理した後の画素データの下位のビットを、各転送のパックデータ内に配置した画素データの上位のビットに続いて順次パッキングする。そして、画素データの下位のビットを反転処理したときの反転ビットを、各転送におけるパックデータ内の未使用ビット（図１６（ｂ）においては、メモリバスのビット［２７］）にビット結合する。
【０１６４】
次に、データ変換部４３が出力する転送データについて説明する。図１７は、本第２の構成のデータ変換部４３から出力する転送データを説明する図である。上述したように、データ変換部４３は、撮像処理部４０から順次入力された９ｂｉｔの画素データの各ビットのデータを、メモリバス上の各ビットに配置した３２ｂｉｔの転送データを、例えば、出力ＤＭＡ部４５から入力される図示しないデータイネーブル信号に基づいて順次出力する。
【０１６５】
データ変換部４３は、入力された画素データを、上述した第６のパッキング方法〜第１０のパッキング方法の内、いずれか１つのパッキング方法で、画素データを配置（パッキング）したパックデータａ〜ｄを生成するパックデータ生成部４３１ａ〜４３１ｄを備えている。そして、比較部４３７は、メモリバス上のデータの変化が最も少ないパックデータを、転送単位パックデータとして選択し、転送単位パックデータとして選択されたパックデータを表す、パックデータ選択ビットを出力する。比較部４３７には、例えば、図１７（ａ）に示したように、転送単位パックデータとして選択されたパックデータに対応したパックデータ選択ビットの値が、予め定められている。なお、図１７（ａ）に示した転送単位パックデータとパックデータ選択ビットとの対応では、４つのパックデータ生成部４３１にそれぞれ対応したパックデータ選択ビットが予め設定しているため、パックデータ選択ビットのビット数は、２ｂｉｔである。
【０１６６】
そして、ビット結合部４３９は、例えば、図１７（ｂ）に示したように、１転送の転送単位パックデータ内の予め定められた固定位置にパックデータ選択ビットを付加した転送単位パックデータを、データ変換部４３が最終的に出力する１転送の転送データとして、それぞれの転送毎に、出力ＤＭＡ部４５に出力する。図１７（ｂ）では、パックデータ選択ビットを付加する固定位置が、各転送のパックデータの最上位ビットから２ビット（より具体的には、メモリバスのビット［３１］とビット［３０］）とに、予め定められている場合を示している。また、図１７（ｂ）では、３転送分の転送データを示している。
【０１６７】
データ変換部４３とデータ逆変換部５４とは、パックデータ選択ビットが付加される固定位置の情報を共有している。また、データ変換部４３とデータ逆変換部５４とは、図１７（ａ）に示したような、選択されたパックデータとパックデータ選択ビットの値との対応、すなわち、パックデータ選択ビットの値が表す１転送毎の転送データのパッキング方法の情報を共有している。これにより、データ逆変換部５４は、パックデータ選択ビットを確認することによって、データ変換部４３から出力された各転送の転送データに適用されているパッキング方法を判定することができる。そして、データ逆変換部５４は、１転送の転送データに適用されたパッキング方法と逆の方法で、転送単位パックデータの各ビットに配置されたそれぞれのデータが、順次分割（アンパッキング）された、１転送分のアンパックデータを、元の画素データとして選択することができる。このような１転送毎の元の画素データの復元を繰り返して、１バースト分、すなわち、パッキング単位（４転送）分の元の画素データを復元する。
【０１６８】
なお、本第２の構成のデータ変換部４３では、１バースト（４転送）分の転送データにおいて、最初（１転送目）の転送データ（例えば、図１７（ｂ）に示した１転送目の転送データ）を基準の転送データにする。従って、１転送目の転送データは、配置されている画素データの並べ替えの処理や、反転処理などのパッキング処理を行わない。そのため、１転送目の転送データに付加されるパックデータ選択ビットは、画素データの並べ替えの処理や、反転処理などのパッキング処理を行っていないことを表すパックデータ選択ビットの値となる。その後、２転送目の転送データからは、選択されたパッキング方法によるパックデータであることを表すパックデータ選択ビットの値が付加される。
【０１６９】
なお、データ変換部４３とデータ逆変換部５４とで基準の処理（パッキング処理）を予め設定することもできる。この場合には、１転送目の転送データに付加されるパックデータ選択ビットには、予め設定された基準のパッキング処理を表すパックデータ選択ビットの値が付加されることになる。
【０１７０】
上記に述べたように、本第２の構成のデータ変換部４３では、複数のパッキング方法によって生成された１転送毎のパックデータの中から、バースト転送時におけるメモリバスの各ビットの変化量が最も少ないパックデータを選択して出力することができる。そして、選択されたパックデータ（パッキング方法）を表すパックデータ選択ビットを、１転送毎に、転送データと共に出力する。これにより、本第２の構成のデータ変換部４３では、転送する画素データに最適なパッキング方法を１転送毎に選択することによって、第１の構成のデータ変換部４１よりも画像データの転送に係る消費電力の低減効果がより高いデータ転送を実現することができる。このことにより、撮像装置１内の各構成要素（処理ブロック）とメモリ２０との間での画素データの転送、すなわち、撮像装置１内の各構成要素間での画素データの受け渡しに係る消費電力を、さらに低減させることができる。
【０１７１】
上記に述べたとおり、本発明を実施するための形態によれば、転送する画素データに最適なパッキング方法を選択し、最適なパッキング方法によってパッキングされた転送データを出力する。また、選択した最適なパッキング方法を表す情報を、転送データの未使用ビットに付加して出力する。これにより、バースト転送時の連続する２転送間において、メモリバスの各ビットの変化量を少なくすることができると共に、転送データから元の画素データを容易に復元することができる。しかも、データの転送効率は、従来と同等のデータ転送効率を維持することができる。これにより、像装置内の各構成要素（処理ブロック）とメモリとの間でのデータの受け渡しに係る消費電力の低減効果を十分に得ることができる。
【０１７２】
なお、上記に述べた実施形態においては、１バースト（４転送）、または１転送を、最適なパッキング方法を選択する単位として、選択したパッキング方法を表すパックデータ選択ビットを付加する場合について説明したが、最適なパッキング方法を選択する単位は、本発明を実施するための形態に限定されるものではない。例えば、それぞれの画素データを最適なパッキング方法を選択する単位とすることもできる。
【０１７３】
この場合の一例について説明する。図１８は、本実施形態のデータ変換部によるパッキング処理をデータ（画素データ）毎に適用した場合の一例を説明する図である。なお、以下の説明においては、説明を容易にするため、図２０に示したまた、ベイヤーデータ内の各画素データのビット数は８ｂｉｔであり、メモリバス幅は３２ｂｉｔであるものとする。また、１転送内に３画素分の画素データをパッキングするものとする。
【０１７４】
図１８では、それぞれのパックデータ内に配置された画素データ毎に異なるパッキング処理が適用されている場合を示している。より具体的には、各パックデータ内の「Ｒ」画素には、画素データの上位のビットと下位のビットとを並べ替えて配置する並べ替えの処理が適用され、当該「Ｒ」画素データの上位側のビットに、並べ替えを行ったか否かを表す並べ替え情報が付加されている場合を示している。また、各パックデータ内の「Ｇ」画素には、画素データの下位のビットに対して反転処理が適用され、当該「Ｇ」画素の上位側のビットに、反転処理を行ったか否かを表す反転ビットが付加されている場合を示している。そして、それぞれの画素データに対して、並べ替えの処理または反転処理のいずれの処理（パッキング処理）を行ったかを表す、パックデータ選択ビットが、それぞれの画素データのさらに上位側のビットに付加されている場合を示している。
【０１７５】
データ変換部とデータ逆変換部とは、パックデータ選択ビットが付加される固定位置（図１８においては、メモリバスのビット［９］と、ビット［１９］と、ビット［２９］）の情報を共有している。また、データ変換部とデータ逆変換部とは、並べ替えの処理または反転処理のいずれの処理を行ったかを表す、パックデータ選択ビットの値を共有している。これにより、データ逆変換部は、パックデータ選択ビットを確認することによって、データ変換部から出力されたパックデータ内の各画素データに適用されているパッキング処理を判定することができる。そして、データ逆変換部は、各画素データに適用されたパッキング処理と逆の方法で、それぞれのパックデータ内に配置された各画素データを、元の画素データに復元することができる。このような画素データ毎の元の画素データへの復元を繰り返して、１バースト分、すなわち、パッキング単位（４転送）分の元の画素データを復元する。
【０１７６】
なお、図１８においては、並べ替えの処理または反転処理のいずれの処理を行ったかを、１ｂｉｔのパックデータ選択ビットで表しているが、この状態においても、並べ替えの処理および反転処理のいずれの処理も行わないことを表すことができる。例えば、パックデータ選択ビットの値を、並べ替えの処理を表す値とするように予め決めておき、並べ替え情報を、並べ替えを行わないことを表す値とすることによって、並べ替えの処理が行われていない、すなわち、何も処理されていない画素データをパッキングすることができる。また、例えば、逆に、パックデータ選択ビットの値を、反転処理を表す値とするように予め決めておき、反転ビットを、反転処理を行わないことを表す値とすることによって、反転処理が行われていない、すなわち、何も処理されていない画素データをパッキングすることができる。
【０１７７】
また、上記に述べた実施形態においては、ベイヤーデータに本実施形態のパッキング方法を適用した場合について説明したが、本実施形態のパッキング方法は、ベイヤーデータへの適用に限定されるものではなく、ＲＧＢデータ、ＹＣ４２２点順次やＹＣ４４４点順次フォーマットのＹＣｂＣｒデータ、またはＯＳＤデータなど、様々な画像データに適用することができる。また、本実施形態のパッキング方法は、画像データへの適用に限定されるものではなく、音声データなど、他の形式のデータに適用することもできる。
【０１７８】
また、本実施形態においては、４転送を１回のバースト転送の単位とし、１バーストをデータのパッキング単位とした場合について説明したが、１回のバースト転送における転送の回数や、データのパッキングの単位は、本発明を実施するための形態に限定されるものではない。例えば、６４転送を１回のバースト転送の単位とし、１バースト内の１６転送をデータのパッキングの単位とする、すなわち、１バースト内に４つのパッキング単位が含まれる構成にすることもできる。また、例えば、１６転送をデータのパッキングの単位とし、８転送を１回のバースト転送の単位とする、すなわち、パッキング単位が２回のバースト転送に跨っている構成にすることもできる。
【０１７９】
また、本実施形態においては、撮像装置内の構成要素間でデータの受け渡しを行う場合のパッキング方法について、いくつかの例を説明したが、データをパッキングするためのパッキング方法は、本発明を実施するための形態に限定されるものではない。また、本実施形態のデータ変換部とデータ逆変換部との構成によるデータの受け渡しを適用することができる範囲は、本発明を実施するための形態に限定されるものではなく、各構成要素間でデータの受け渡しを行うシステムであれば、どのようなシステムにも適用することができる。
【０１８０】
また、本実施形態においては、例えば、データ変換部を出力ＤＭＡ部の前段の処理ブロックとして配置し、データ逆変換部を入力ＤＭＡ部の後段の処理ブロックとして配置した場合の一例について説明したが、データ変換部およびデータ逆変換部の配置は、本発明を実施するための形態に限定されるものではない。例えば、データ変換部を出力ＤＭＡ部内の構成要素とすることや、データ逆変換部を入力ＤＭＡ部内の構成要素とすることもできる。また、例えば、データ変換部を前段の撮像処理部内の構成要素とすることや、データ逆変換部を後段の画像処理部内の構成要素とすることもできる。
【０１８１】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【０１８２】
１・・・撮像装置（データ処理装置）
１０・・・ＣＰＵ（データ処理装置）
２０・・・メモリ（データ処理装置）
３０・・・ＣＣＤ
４０・・・撮像処理部
５０・・・画像処理部
６０・・・表示処理部
７０・・・表示デバイス
４１，５１・・・データ変換部（データ処理装置）
４１１，４１１ａ，４１１ｂ，４１１ｃ，４１１ｄ・・・パックデータ生成部（データ生成部）
４１２，４１２ａ，４１２ｂ，４１２ｃ，４１２ｄ・・・Ｄ−ＦＦ（ビット変化数算出部）
４１３，４１３ａ，４１３ｂ，４１３ｃ，４１３ｄ・・・バースト単位バッファ（第１のデータ選択部）
４１４，４１４ａ，４１４ｂ，４１４ｃ，４１４ｄ・・・ＥＸＯＲ回路（ビット変化数算出部）
４１５，４１５ａ，４１５ｂ，４１５ｃ，４１５ｄ・・・ビット加算部（ビット変化数算出部）
４１６，４１６ａ，４１６ｂ，４１６ｃ，４１６ｄ・・・バースト単位累積部（ビット変化数比較部）
４１７・・・比較部（ビット変化数比較部）
４１８・・・選択部（第１のデータ選択部）
４１９・・・ビット結合部
５２，６２・・・データ逆変換部（データ処理装置）
５２１・・・ビット分離部
５２２，５２２ａ，５２２ｂ，５２２ｃ，５２２ｄ・・・データ復元部（データ復元部）
５２３，５２３ａ，５２３ｂ，５２３ｃ，５２３ｄ・・・データバッファ（第２のデータ選択部）
５２４・・・選択部（第２のデータ選択部）
４５，５５・・・出力ＤＭＡ部
５６，６６・・・入力ＤＭＡ部
４３・・・データ変換部（データ処理装置）
４３１，４３１ａ，４３１ｂ，４３１ｃ，４３１ｄ・・・パックデータ生成部（データ生成部）
４３２・・・Ｄ−ＦＦ（ビット変化数算出部）
４３７・・・比較部（ビット変化数比較部）
４３８・・・選択部（第１のデータ選択部）
４３９・・・ビット結合部
５４・・・データ逆変換部（データ処理装置）
５４２，５４２ａ，５４２ｂ，５４２ｃ，５４２ｄ・・・データ復元部（データ復元部）
【図１】
0005780795.tif 000002
【図２】
0005780795.tif 000003
【図３】
0005780795.tif 000004
【図４】
0005780795.tif 000005
【図５】
0005780795.tif 000006
【図６】
0005780795.tif 000007
【図７】
0005780795.tif 000008
【図８】
0005780795.tif 000009
【図９】
0005780795.tif 000010
【図１０】
0005780795.tif 000011
【図１１】
0005780795.tif 000012
【図１２】
0005780795.tif 000013
【図１３】
0005780795.tif 000014
【図１４】
0005780795.tif 000015
【図１５】
0005780795.tif 000016
【図１６】
0005780795.tif 000017
【図１７】
0005780795.tif 000018
【図１８】
0005780795.tif 000019
【図１９】
0005780795.tif 000020
【図２０】
0005780795.tif 000021
【図２１】
0005780795.tif 000022
【図２２】
0005780795.tif 000023
【図２３】
0005780795.tif 000024
【図２４】
0005780795.tif 000025