データ処理装置およびデータ処理方法
【課題】データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるデータ処理装置およびデータ処理方法を提供する。
【解決手段】入力データを予め定められたそれぞれの配置方法に基づいて配置した第1の変換データを生成する複数のデータ生成部と、対応するデータ生成部が出力したn(nは1以上の自然数)回目とn+1回目の第1の変換データ内の各ビットの値を比較し、該比較した結果に基づいたビットの数をビット変化数として算出する複数のビット変化数算出部と、それぞれのビット変化数の値を比較してデータ生成部を選択し、選択情報を出力するビット変化数比較部と、選択情報に基づいて選択した、いずれか1つの第1の変換データを選択データとして出力する第1のデータ選択部と、選択データを転送データとして出力する際に、予め定められた未使用ビットの位置に選択情報を結合して出力するビット結合部と、を具備する。
【解決手段】入力データを予め定められたそれぞれの配置方法に基づいて配置した第1の変換データを生成する複数のデータ生成部と、対応するデータ生成部が出力したn(nは1以上の自然数)回目とn+1回目の第1の変換データ内の各ビットの値を比較し、該比較した結果に基づいたビットの数をビット変化数として算出する複数のビット変化数算出部と、それぞれのビット変化数の値を比較してデータ生成部を選択し、選択情報を出力するビット変化数比較部と、選択情報に基づいて選択した、いずれか1つの第1の変換データを選択データとして出力する第1のデータ選択部と、選択データを転送データとして出力する際に、予め定められた未使用ビットの位置に選択情報を結合して出力するビット結合部と、を具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置およびデータ処理方法に関する。
【背景技術】
【0002】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、撮像装置の画素数や速度の向上に伴って、膨大な画素のデータ(以下、「画素データ」という)が含まれる画像データを処理している。このような撮像装置においては、撮像装置内の各処理ブロックが撮影によって得られた画像データを処理する際に、データを一時的に記憶するメモリが利用されている。メモリには、各処理段階の画像データが一時記憶される。
【0003】
図19は、従来の撮像装置の概略構成を示したブロック図である。例えば、図19に示した撮像装置における撮影動作では、以下のような手順で画像データの処理が行われている。
(手順1):まず、撮像処理部が、例えば、CCD(Charge Coupled Device:電荷結合素子)型の固体撮像素子によって得られた画像データを、出力DMA(Direct Memory Access)部を介してメモリに転送して一時記憶する。
(手順2):続いて、画像処理部が、メモリに一時記憶している画像データを、入力DMA部を介して読み出す。そして、画像処理部は、読み出した画像データに対して記録用の画像処理や、表示用の画像処理を行う。その後、画像処理した後の画像データを、出力DMA部を介してメモリに転送して一時記憶する。
(手順3):続いて、表示処理部が、表示用の画像処理がされた画像データを、入力DMA部を介して読み出し、表示デバイスに表示させる。
【0004】
このように、撮像装置では、前段の処理ブロックが、画像データをメモリに一時記憶する。そして、後段の処理ブロックが、メモリに記録されている画像データを読み出して、次の処理を行う。このように、撮像装置内の各処理ブロックが、メモリを介して処理対象の画像データの受け渡しを行うことによって、撮像装置の全体の処理を順次行っている。
【0005】
近年、静止画用カメラ、動画用カメラなどの撮像装置においては、長い時間連続して使用できることが望まれており、撮像装置内の電気回路の消費電力を低減させる技術が必要とされている。撮像装置の消費電力を低減させるための1つの方法として、各処理ブロック(電気回路)とメモリとの間での画像データの転送速度を高速にする方法が挙げられる。画像データの転送速度の高速化は、例えば、撮像装置が動作するクロックの周波数を高くしたり、各処理ブロックとメモリ間の画像データの転送期間を短縮させたりすることによって実現することができる。これらの方法は、画像データの転送速度を高速にすることによって、画像データの転送に係る消費電力を低減させるものである。
【0006】
処理ブロックとメモリ間の画像データの転送期間を短縮させるための技術として、特許文献1に開示されているようなパッキングという技術が知られている。特許文献1で開示されたパッキング技術は、画像データ内の各画素データをメモリに転送する際に使用されるデータバスのバス幅を拡張し、隣接する複数の画素データをデータバスに配置(パッキング)することによって、複数の画素データを一度に転送するという技術である。この技術によって、全ての画素データを転送するために要するデータ転送の回数を、画素データを1画素毎に転送する以前のデータ転送に比べて少なくすることができ、画像データのデータ転送に係る期間を短縮することができる。例えば、図20に示したような、16行×16列のベイヤー配列のCCDから得られた画素データをメモリに転送する場合、特許文献1で開示されたパッキング技術では、4画素分の画素データを一度に転送する単位とすることによって、画像データの転送期間を1/4に短縮することができる。これにより、画素データを1画素ずつメモリに転送する場合に比べて、撮像装置内の電気回路の消費電力を低減させることができる。
【0007】
また、さらに画像データの転送期間を短縮する技術として、DMAのバースト転送を利用したパッキング方法が考えられる。これは、予め定められた一定のサイクル数でメモリにアクセスする単位である1バーストを、画素データをパッキングする単位として考える方法である。図21に画素データのパッキングの一例を示す。図21(a)は、特許文献1で開示されたパッキング方法で図20に示した画素データをパッキングした場合の一例を示し、図21(b)は、バーストの単位で図20に示した画素データをパッキングした場合の一例を示している。なお、図21では、画素データをメモリに転送する際に使用するデータバス(以下、「メモリバス」という)のバス幅(以下、「メモリバス幅」という)を32bitとし、バースト転送における1サイクル分のメモリアクセス(以下、「1転送」という)を4回、すなわち、4転送で1回のバースト転送を行う場合の例を示している。そして、図21(a)および図21(b)では、それぞれ上から順に、1画素の画素データの分解能、すなわち、画素データのビット数が、9bit、10bit、12bit、および14bitである場合の一例を示している。
【0008】
図21からわかるように、図21(a)に示した特許文献1で開示されたパッキング方法では、1転送あたり2画素分の画素データがメモリバスに配置され、1バーストあたり8画素分の画素データをメモリに転送することができる。これに対して図21(b)に示したバースト単位でのパッキング方法では、それぞれ、14画素分、12画素分、10画素分、および9画素分の画素データをメモリに転送することができる。これは、特許文献1で開示されたパッキング方法は、メモリバス幅、すなわち、1転送の単位で画素データを配置(パッキング)するため、配置する複数の画素データのビット数の合計がメモリバス幅を超えないようにする必要がある。このため、特許文献1で開示されたパッキング方法では、メモリバス幅内に画素データを割り当てることができないビット(以下、「未使用ビット」という)が多く存在してしまう。これに対し、バースト単位でのパッキング方法は、1バーストの単位で画素データを配置(パッキング)するため、図21(b)のように、配置する複数の画素データのビット数の合計がメモリバス幅を超えてしまう場合でも、1バーストを超えなければ次の転送に画素データを配置(パッキング)することができる。すなわち、バースト単位でのパッキング方法では、メモリバス幅が画素データの分解能の整数倍ではない場合においても、1転送の単位を跨いで画素データを配置(マッピング)することができるため、未使用ビットを少なくすることができるのである。このことにより、バースト単位でのパッキング方法は、特許文献1で開示されたパッキング方法よりも、同じ時間で多くの画素データをメモリに転送する、すなわち、画像データの転送期間を短縮することができ、撮像装置内の電気回路の消費電力を、さらに低減させることができる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2007−312358号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
一般的に、データの変化(データの“0”→“1”、もしくは“1”→“0”の変化(反転))が少ない方が、消費電力が少ないことが知られている。このため、撮像装置内の各処理ブロック(電気回路)とメモリとの間のメモリバス上のデータの変化を少なくすることによって、撮像装置の消費電力を低減させることも考えられる。図22は、撮像装置内の処理ブロックとメモリとの間のデータバス(メモリバス)上のデータの変化と消費電力との関係を説明する図である。図22(a)は、図19に示した撮像装置における撮像処理部とメモリとの間のメモリバスのバス幅が32bitである場合の一例を示している。そして、図22(b−1)〜(b−3)では、メモリバス上のデータの変化を模式的に示している。図22の一例においては、メモリバス上のデータの変化がない図22(b−1)の場合が、最も消費電力が少なく、メモリバス上のデータの変化が最も多い図22(b−3)の場合が、最も消費電力が多くなる。
【0011】
このことから、撮像装置内の各処理ブロックとメモリ間のバースト転送において、連続する2転送間の画素データ(例えば、図21に示した各バースト転送の1転送目と2転送目との画素データ)の変化が多いと、画像データの転送に係る消費電力も多くなってしまうことがわかる。すなわち、メモリバス上の同一ビットが2転送間で変化している個数(ビット数)に比例して、画像データの転送に係る消費電力が変化する。
【0012】
一般的に、画像データは、隣接する画素間でデータの変化量が小さく、隣接する画素のそれぞれの画素データの同一のビットで比較すると、値が反転しているビットの方が、値が反転していないビットよりも少ないことが予想される。ここで、図21に示した、特許文献1で開示されたパッキング方法と、バースト単位でのパッキング方法とを比較すると、図23に示したように、同一色の画素データで同一のビットが揃っている、特許文献1で開示されたパッキング方法の方が、画像データの転送に係る消費電力が少ないと考えられる。なお、図23は、図21に示した特許文献1で開示されたパッキング方法と、バースト単位でのパッキング方法とにおいて、1画素の画素データのビット数が9bitである場合を示している。
【0013】
より具体的には、図23(a)に示した特許文献1で開示されたパッキング方法では、範囲Aに示したメモリバスの最下位ビットは、全て同一色の画素データの同一ビット(最下位ビット)である。これに対して、図23(b)に示したバースト単位でのパッキング方法では、範囲Bに示したメモリバスの最下位ビットは、全て異なる色の画素データの異なるビットである。このことから、バースト単位で画像データをパッキングすることによって、メモリバス上に配置される画素データのビットの位置が、連続する2転送間で異なってしまうと、メモリバス上の同一ビットの変化量が多くなり、画像データの転送に係る消費電力を増加させてしまうことがわかる。
【0014】
すなわち、図23(a)に示した特許文献1で開示されたパッキング方法は、画像データの転送に係る消費電力が少ないが、データの転送効率が低い。また、図23(b)に示したバースト単位でのパッキング方法は、データの転送効率はよいが、画像データの転送に係る消費電力が多い。
【0015】
このように、バースト単位での画素データのパッキングでは、より多くの画素データをメモリバスに配置することによって、結果的に画素データの転送期間を短縮し、画像データの転送に係る消費電力を低減させることができるが、メモリバス上に配置される画素データのビットの位置が、連続する2転送間で異なっているため、画像データの転送に係る消費電力の低減効果を十分に得ることができていない、という問題がある。
【0016】
また、特許文献1で開示されたパッキング方法においては、例えば、図24に示したように、画素データをパッキングする1転送内に、3画素分の画素データを配置(パッキング)することができる。しかし、この場合には、例えば、範囲Cに示したメモリバスの最下位ビットが、画素データの同一ビット(最下位ビット)ではあるが、異なる色の画素データになってしまう。画素データは、色が異なるとその値が大きく異なる可能性が高く、特許文献1で開示されたパッキング方法でも、1転送内の画素データの配置によっては、画像データの転送に係る消費電力を低減できていないことになってしまう。
【0017】
このように、画像データの転送に係る消費電力を低減するためのパッキング方法には、様々な方法があるが、転送する画像データによっては、各パッキング方法における消費電力低減の効果に優劣が発生し、消費電力の低減効果を十分に得ることができない、という問題がある。
【0018】
本発明は、上記の課題認識に基づいてなされたものであり、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるデータ処理装置およびデータ処理方法を提供することを目的としている。
【課題を解決するための手段】
【0019】
上記の課題を解決するため、本発明のデータ処理装置は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、を備え、前記データ変換部は、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置した第1の変換データを生成する複数のデータ生成部と、複数の前記データ生成部のそれぞれに対応し、該データ生成部がn(nは1以上の自然数)回目に出力した前記第1の変換データ内の各ビットの値と、該データ生成部がn+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第1の変換データ毎に算出する複数のビット変化数算出部と、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第1の変換データを生成した前記データ生成部を選択し、該選択した前記データ生成部を表す選択情報を出力するビット変化数比較部と、前記選択情報に基づいて、それぞれの前記データ生成部から出力されたそれぞれの前記第1の変換データの内、いずれか1つの前記第1の変換データを選択し、該選択した前記第1の変換データを、選択データとして出力する第1のデータ選択部と、前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合部と、を具備する、ことを特徴とする。
【0020】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較した結果、前記ビット変化数の値が最も少ない前記第1の変換データを生成した前記データ生成部を選択する、ことを特徴とする。
【0021】
また、本発明の前記ビット変化数算出部のそれぞれは、前記第1のデータ選択部によって選択された前記選択データを、それぞれの前記データ生成部がn+1回目に出力した前記第1の変換データとして、前記ビット変化数を算出する、ことを特徴とする。
【0022】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を、前記変換単位毎にまとめて比較し、該比較した結果に基づいて前記変換単位での前記第1の変換データを生成した前記データ生成部を選択し、前記第1のデータ選択部は、前記選択情報に基づいて、それぞれの前記データ生成部から出力された前記変換単位のそれぞれの前記第1の変換データの内、いずれか1つの前記変換単位の前記第1の変換データを選択し、該選択した前記変換単位の前記第1の変換データを、前記変換単位の選択データとして出力し、前記ビット結合部は、前記変換単位の選択データを前記変換単位の転送データとして出力する際に、該変換単位の選択データに含まれる前記第1の変換データの内、前記入力データが配置されていない未使用ビットを含む前記第1の変換データの予め定められた前記未使用ビットの位置に、前記選択情報を結合した結合データを生成し、該変換単位の選択データに含まれる前記第1の変換データ、または前記結合データのいずれか1つのデータを、前記転送単位毎に順次出力する、ことを特徴とする。
【0023】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を前記変換単位毎にまとめて比較した結果、前記変換単位内に含まれる全ての前記第1の変換データにおいて、まとめた前記ビット変化数の値が最も少ない前記変換単位での前記第1の変換データを生成した前記データ生成部を選択する、ことを特徴とする。
【0024】
また、本発明のデータ処理装置は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、を備え、前記データ逆変換部は、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置したそれぞれの第1の変換データを生成し、n(nは1以上の自然数)回目に生成した前記第1の変換データ内の各ビットの値と、n+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第1の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第1の変換データの中から選択したいずれか1つの前記第1の変換データと、いずれの前記第1の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第1の変換データとに分離するビット分離部と、前記転送データの転送元のデータ処理装置前記第1の変換データを生成する際の予め定められた配置方法のそれぞれに対応した、予め定められたそれぞれの復元方法に基づいて、前記第1の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第2の変換データを生成する複数のデータ復元部と、前記選択情報に基づいて、それぞれの前記データ復元部から出力されたそれぞれの前記第2の変換データの内、いずれか1つの前記第2の変換データを選択し、該選択した前記第2の変換データを、元の前記入力データとして出力する第2のデータ選択部と、を具備する、ことを特徴とする。
【0025】
また、本発明の前記ビット分離部は、前記入力された前記転送データを前記変換単位毎にまとめ、該変換単位の前記転送データの内、いずれかの前記転送データ内の予め定められたビットの位置に結合されている前記選択情報を分離し、前記第2のデータ選択部は、前記選択情報に基づいて、それぞれの前記データ復元部から出力された前記変換単位のそれぞれの前記第2の変換データの内、いずれか1つの前記変換単位の前記第2の変換データを選択し、該選択した前記変換単位の前記第2の変換データを、元の前記入力データとして順次出力する、ことを特徴とする。
【0026】
また、本発明のデータ処理方法は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、を含み、前記データ変換ステップは、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置した第1の変換データを生成する複数のデータ生成ステップと、複数の前記データ生成ステップのそれぞれに対応し、該データ生成ステップによってn(nは1以上の自然数)回目に出力した前記第1の変換データ内の各ビットの値と、該データ生成ステップによってn+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第1の変換データ毎に算出する複数のビット変化数算出ステップと、それぞれの前記データ生成ステップにおけるそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第1の変換データを生成した前記データ生成ステップを選択し、該選択した前記データ生成ステップを表す選択情報を出力するビット変化数比較ステップと、前記選択情報に基づいて、それぞれの前記データ生成ステップにおいて出力されたそれぞれの前記第1の変換データの内、いずれか1つの前記第1の変換データを選択し、該選択した前記第1の変換データを、選択データとして出力する第1のデータ選択ステップと、前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合ステップと、を含む、ことを特徴とする。
【0027】
また、本発明のデータ処理方法は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、を含み、前記データ逆変換ステップは、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置したそれぞれの第1の変換データを生成し、n(nは1以上の自然数)回目に生成した前記第1の変換データ内の各ビットの値と、n+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第1の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第1の変換データの中から選択したいずれか1つの前記第1の変換データと、いずれの前記第1の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第1の変換データとに分離するビット分離ステップと、前記転送データの転送元のデータ処理装置前記第1の変換データを生成する際の予め定められた配置方法のそれぞれに対応した、予め定められたそれぞれの復元方法に基づいて、前記第1の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第2の変換データを生成する複数のデータ復元ステップと、前記選択情報に基づいて、それぞれの前記データ復元ステップにおいて出力されたそれぞれの前記第2の変換データの内、いずれか1つの前記第2の変換データを選択し、該選択した前記第2の変換データを、元の前記入力データとして出力する第2のデータ選択ステップと、を含む、ことを特徴とする。
【発明の効果】
【0028】
本発明によれば、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるという効果が得られる。
【図面の簡単な説明】
【0029】
【図1】本発明の実施形態における撮像装置の概略構成を示したブロック図である。
【図2】本実施形態の撮像装置に備えた第1の構成のデータ変換部の概略構成を示したブロック図である。
【図3】本実施形態の撮像装置に備えた第1の構成のデータ逆変換部の概略構成を示したブロック図である。
【図4】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の一例を説明する図である。
【図5】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の別の一例を説明する図である。
【図6】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図7】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図8】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図9】本第1の構成のデータ変換部から出力する転送データを説明する図である。
【図10】本実施形態の撮像装置に備えた第2の構成のデータ変換部の概略構成を示したブロック図である。
【図11】本実施形態の撮像装置に備えた第2の構成のデータ逆変換部の概略構成を示したブロック図である。
【図12】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の一例を説明する図である。
【図13】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の別の一例を説明する図である。
【図14】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図15】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図16】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図17】本第2の構成のデータ変換部から出力する転送データを説明する図である。
【図18】本実施形態のデータ変換部による処理をデータ毎に適用した場合の一例を説明する図である。
【図19】従来の撮像装置の概略構成を示したブロック図である。
【図20】画像データの配列の一例を示した図である。
【図21】従来のデータパッキングの一例を示した図である。
【図22】データバス上のデータの変化と消費電力との関係を説明する図である。
【図23】従来のデータパッキング方法におけるデータ配置の状態の一例を示した図である。
【図24】従来のデータパッキング方法におけるデータ配置の状態の別の一例を示した図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における撮像装置の概略構成を示したブロック図である。図1に示した撮像装置1は、CPU10と、メモリ20と、CCD30と、撮像処理部40と、画像処理部50と、表示処理部60と、表示デバイス70と、データ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66と、を備えている。なお、撮像装置1は、撮影した画像データを記録する機能も有しているが、説明を容易にするため、以下の説明においては、撮影した画像データを表示する場合について説明する。また、図1においては、撮像装置1内の各構成要素(処理ブロック)間での画素データの受け渡しに係るデータバスであるメモリバスの接続のみを示している。
【0031】
CPU10は、撮像装置1の全体の制御を行う制御装置である。
メモリ20は、撮像装置1内の各処理ブロックが処理する画素データを一時的に記憶する、例えば、DRAM(Dynamic Random Access Memory)などのメモリである。メモリ20には、撮像装置1内の各処理ブロックによる各処理段階の画素データが一時記憶される。
【0032】
CCD30は、入射した被写体光を画像信号に変換する、例えば、ベイヤー配列の固体撮像素子である。CCD30は、被写体の画素信号を撮像処理部40に出力する。
撮像処理部40は、CCD30から入力された画素信号に対して、予め定められた信号処理を行った画像データを生成する。
【0033】
画像処理部50は、撮像処理部40が生成した画像データに対して、撮像装置1における種々の画像処理を行った画像データを生成する。
表示処理部60は、画像処理部50によって画像処理された画像データを、表示デバイス70に応じた表示データに変換する。表示処理部60は、変換した表示データを表示デバイス70に出力する。
表示デバイス70は、表示データを表示する、例えば、液晶などの表示装置である。
【0034】
本実施形態の撮像装置1では、CCD30によって撮像された被写体の画素信号を、撮像処理部40、画像処理部50、表示処理部60が順次処理し、表示デバイス70に表示させる。このとき、各処理段階の画像データは、メモリ20を介して各処理ブロック間で受け渡される。撮像装置1内のデータ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66とは、各処理段階の画像データの受け渡しに係る処理ブロックである。
【0035】
データ変換部41および51は、前段の処理ブロック(図1に示した本実施形態においては、撮像処理部40または画像処理部50)から入力された画像データ内の各画素データを、予め定められた配置(パッキング)方法で、メモリバスの各ビットに配置する。データ変換部41および51の構成と、データ変換部41および51による画素データのパッキング方法に関する詳細な説明は、後述する。
【0036】
出力DMA部45および55は、データ変換部41または51によってメモリバスの各ビットにパッキングされた画素データからなる画像データを、DMAアクセスによってメモリ20に書き込む(記憶させる)。
入力DMA部56および66は、メモリ20に記憶されている画像データをDMAアクセスによって読み出し、読み出した画像データを、データ逆変換部52または62に出力する。
【0037】
データ逆変換部52および62は、入力DMA部56または66から入力された画像データに含まれる画素データを、予め定められた配置(パッキング)方法と逆の方法で元の画像データに戻し、後段の処理ブロック(図1に示した本実施形態においては、画像処理部50または表示処理部60)に出力する。データ逆変換部52および62の構成に関する詳細な説明は、後述する。
【0038】
ここで、図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に表示させる。
【0039】
なお、撮像装置1が撮影した画像データを記録する場合には、画像データの記録処理を行う図示しない記録処理部が、画像処理部50によって記録用の画像処理がされた画像データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した記録用の画像データをメモリカードなどの図示しない画像データ記録部に記録する。また、撮像装置1に、例えば、音を入出力する機能を備えている場合には、音声処理を行う図示しない音声処理部が、撮影時の音声データを、図示しないデータ変換部および出力DMA部を介してメモリ20に記憶する。また、音声処理部が、メモリ20に記憶している音声データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した音声データに応じた音声を、スピーカーなどの図示しない音出力部に出力させる。
【0040】
<第1の構成>
次に、撮像装置1内のデータ変換部について説明する。なお、上記に述べたように、データ変換部41とデータ変換部51とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ変換部41は、前段の撮像処理部40と後段の出力DMA部45との間に配置され、データ変換部51は、前段の撮画像処理部50と後段の出力DMA部55との間に配置されている。従って、データ変換部41とデータ変換部51とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ変換部41について説明する。
【0041】
図2は、本実施形態の撮像装置1に備えた本第1の構成のデータ変換部41の概略構成を示したブロック図である。図2に示したように、データ変換部41は、4つのパックデータ生成部411a〜411d(以下、パックデータ生成部411a〜411dのいずれか1つを表すときには「パックデータ生成部411」という)と、4つのD−FF412a〜412d(以下、D−FF412a〜412dのいずれか1つを表すときには「D−FF412」という)と、4つのバースト単位バッファ413a〜413d(以下、バースト単位バッファ413a〜413dのいずれか1つを表すときには「バースト単位バッファ413」という)と、4つのEXOR(排他的論理和)回路414a〜414d(以下、EXOR回路414a〜414dのいずれか1つを表すときには「EXOR回路414」という)と、4つのビット加算部415a〜415d(以下、ビット加算部415a〜415dのいずれか1つを表すときには「ビット加算部415」という)と、4つのバースト単位累積部416a〜416d(以下、バースト単位累積部416a〜416dのいずれか1つを表すときには「バースト単位累積部416」という)と、比較部417と、選択部418と、ビット結合部419と、を備えている。
【0042】
なお、以下の説明においては、データ変換部41に、図20に示したような、16行×16列のベイヤー配列の画像データ(以下、「ベイヤーデータ」という)が入力され、入力されたベイヤーデータ内の画素データを、予め定められたパッキング方法で、メモリバスに配置(パッキング)した転送データを出力する場合について説明する。なお、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバスのバス幅(メモリバス幅)は32bitであるものとする。そして、データ変換部41は、ベイヤーデータ内の各画素データをパッキングする単位を4転送とし、4転送を1回のバースト転送の単位とする、すなわち、1バーストを画素データのパッキング単位としてパッキングした32bitの転送データを出力するものとする。なお、図20に示したベイヤーデータでは、各画素データの数字がCCD30内の画素の位置を表しており、数字の前の「R」,「G」,「B」がCCD30内の画素の色を表している。より具体的には、「R」がCCD30の赤色の画素の画素データ、「G」がCCD30の緑色の画素の画素データ、「B」がCCD30の青色の画素の画素データを表している。
【0043】
データ変換部41は、撮像処理部40から順次入力された9bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitの転送データを出力する。そして、データ変換部41は、例えば、出力DMA部45から入力されるデータイネーブル信号に基づいて、生成した転送データを順次出力する。なお、データイネーブル信号は、出力DMA部45がバースト転送する際に何転送目の転送データを転送するかを表す情報を含んでいる信号である。
【0044】
データ変換部41が転送データを生成する際には、まず、入力された画素データを、予め定めた複数のパッキング方法でそれぞれパッキングした複数のパックデータを生成する。そして、データ変換部41は、生成したそれぞれのパックデータの内、1回のバースト転送においてメモリバス上のビット変化が最も少ないパックデータ(以下、「転送パックデータ」という)を選択する。その後、データ変換部41は、パックデータを選択したときの情報(パックデータ選択ビット)を、転送パックデータ内、すなわち、パッキング単位(4転送)内に存在する未使用ビットに付加して、最終的に出力する転送データとして出力する。
【0045】
パックデータ生成部411a〜411dは、それぞれ、入力された画素データの各ビットのデータを、予め定めたパッキング方法で、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに配置した、1バースト分、すなわち、パッキング単位(4転送)分のパックデータを生成する。そして、パックデータ生成部411a〜411dのそれぞれは、生成したパックデータを、1転送毎、すなわち、メモリバス幅のビット数(本第1の構成のデータ変換部41においては、32bit)毎に順次、対応するD−FF412a〜412dと対応するEXOR回路414a〜414dとに出力する。
【0046】
なお、以下の説明においては、パックデータ生成部411a〜411dのそれぞれが生成した1バースト分のパックデータを、それぞれ、パックデータA〜Dという。また、以下の説明においては、パックデータ生成部411a〜411dのそれぞれが出力するパックデータA〜Dの1転送毎のパックデータを、それぞれ、パックデータa〜dという。なお、パックデータ生成部411のそれぞれにおけるパッキング方法、およびパックデータの例に関する詳細な説明は、後述する。
【0047】
D−FF412a〜412dは、それぞれ、対応するパックデータ生成部411a〜411dから出力された32bitのパックデータa〜dを保持する。このD−FF412によって保持されたパックデータa〜dは、パックデータ生成部411が前回の1転送で出力したパックデータa〜d(以下、前回の1転送のパックデータa〜dを、「パックデータa(−1)〜d(−1)」という)として、対応するバースト単位バッファ413a〜413dと対応するEXOR回路414a〜414dとに出力される。
【0048】
バースト単位バッファ413a〜413dは、それぞれ、対応するD−FF412から入力された32bitのパックデータa(−1)〜d(−1)を、1バースト分、すなわち、パッキング単位(4転送)分保持する。バースト単位バッファ413のそれぞれが、対応するD−FF412を介して入力されたパックデータa〜dを、パッキング単位(4転送)分保持することによって、バースト単位バッファ413に、パックデータ生成部411のそれぞれが生成したパックデータA〜Dが保持されることになる。そして、バースト単位バッファ413a〜413dは、例えば、選択部418から入力される図示しない出力要求信号に基づいて、保持しているパックデータA〜Dを、1転送毎、すなわち、パックデータa〜d毎に順次、選択部418に出力する。なお、出力要求信号は、選択部418によって選択されたバースト単位バッファ413に保持されている32bitのパックデータa〜dを順次読み出す信号である。従って、出力要求信号は、選択部418によって選択されたバースト単位バッファ413a〜413dのいずれか1つのバースト単位バッファ413にのみ出力される。
【0049】
EXOR回路414a〜414dは、それぞれ、対応するパックデータ生成部411a〜411dから出力された32bitのパックデータa〜dと、対応するD−FF412a〜412dから出力された32bitのパックデータa(−1)〜d(−1)との2つのパックデータの各ビットの値を比較して、値が変化しているビットの有無を検出する。そして、EXOR回路414a〜414dのそれぞれは、値が変化しているビットであることを表す値=“1”、または値が変化しているビットではないことを示す値=“0”を、比較したそれぞれのビット毎に出力する。
【0050】
なお、EXOR回路414a〜414dのそれぞれは、D−FF412から入力されたパックデータa(−1)〜d(−1)を、同じパッキング単位(4転送)において、パックデータ生成部411a〜411dのそれぞれが出力した前回のパックデータa〜dとして、各ビットの値を比較する。すなわち、EXOR回路414a〜414dのそれぞれは、パックデータ生成部411a〜411dのそれぞれが出力した前回のパックデータa〜dと、今回のパックデータa〜dとの比較をビット毎に行う。
【0051】
より具体的には、EXOR回路414のそれぞれによる2つのパックデータの比較においては、パックデータ生成部411から出力されたパックデータa〜dの各ビットと、D−FF412から出力されたパックデータa(−1)〜d(−1)の各ビットとの排他的論理和がとられる。これにより、パックデータ生成部411から出力された今回のパックデータa〜dのビットの値と、パックデータ生成部411から出力された前回のパックデータa〜d(パックデータa(−1)〜d(−1))のビットの値とが同じ値のときに“0”が出力される。また、パックデータ生成部411から出力された今回のパックデータa〜dのビットの値と、パックデータ生成部411から出力された前回のパックデータa〜d(パックデータa(−1)〜d(−1))のビットの値とが異なる値のときに“1”が出力される。
【0052】
なお、パックデータ生成部411から出力された今回のパックデータa〜dが1転送目のパックデータa〜dである場合には、ビットの値が変化していないことを示す値=“0”を、全てのビットに出力する。
【0053】
ビット加算部415a〜415dは、それぞれ、対応するEXOR回路414a〜414dから入力された値が変化しているビットの数を計数し、値が変化しているビットの数の合計(以下、「ビット変化数」という)を算出する。そして、算出したビット変化数を、対応するバースト単位累積部416a〜416dのそれぞれに出力する。例えば、説明を容易にするため、EXOR回路414aが比較するそれぞれのパックデータが8bitであると仮定した場合について考える。EXOR回路414aから入力された、値が変化しているビットの値が、“1111_0000”である場合は、ビット加算部415aは、ビット変化数の値として“4”を出力する。このようにして、ビット加算部415a〜415dのそれぞれは、パックデータ生成部411a〜411dが出力した前回のパックデータa〜d(D−FF412から出力されたパックデータa(−1)〜d(−1))の値が、次にパックデータ生成部411a〜411dが出力した今回のパックデータa〜dの値に変化する際に、メモリバス上の各ビットの値が異なる値に変化するビットの数(ビット変化数)を出力する。
【0054】
バースト単位累積部416a〜416dは、それぞれ、対応するビット加算部415a〜415dから入力されたビット変化数を、1バースト分、すなわち、パッキング単位(4転送)分累積する。これにより、1回のバースト転送において、パックデータ生成部411a〜411dのそれぞれが出力するパックデータによるメモリバス上の各ビットの合計の変化数が算出される。そして、バースト単位累積部416a〜416dのそれぞれは、累積したビット変化数を、比較部417に出力する。
【0055】
比較部417は、バースト単位累積部416a〜416dのそれぞれから入力された累積されたビット変化数の内、ビット変化数が最も少ないものを判定し、最も少ないビット変化数を出力したバースト単位累積部416を特定(選択)する。そして、比較部417は、最も少ないビット変化数を出力したバースト単位累積部416を表す情報、すなわち、最もメモリバス上のビット変化が少ないパッキング方法を表す情報を、パックデータ選択ビットとして、選択部418とビット結合部419とに出力する。これにより、1回のバースト転送においてメモリバス上のビット変化が最も少ないパックデータが選択されることになる。
【0056】
なお、パックデータ選択ビットは、データ変換部41内に備えたパックデータ生成部411のそれぞれに対応した値が、予め定められており、データ変換部41に対応するデータ逆変換部52にも、共通の値が予め定められている。これにより、データ逆変換部52は、データ変換部41で選択されたパッキング方法を判別することができる。
【0057】
選択部418は、比較部417から入力されたパックデータ選択ビットに応じて、バースト単位バッファ413a〜413dの内、いずれか1つのバースト単位バッファ413を選択する。そして、例えば、選択したバースト単位バッファ413に対して図示しない出力要求信号を出力し、選択したバースト単位バッファ413から入力されたパックデータ(パックデータA〜Dの内、いずれか1つのパックデータ)を、転送パックデータとしてビット結合部419に出力する。なお、上述したように、出力要求信号は、選択したバースト単位バッファ413に保持されている32bitのパックデータを順次読み出す信号である。従って、選択部418は、選択したバースト単位バッファ413a〜413dのいずれか1つのバースト単位バッファ413にのみ、出力要求信号を出力する。
【0058】
ビット結合部419は、選択部418から入力された転送パックデータ内、すなわち、パッキング単位(4転送)内に存在する未使用ビットに、比較部417から入力されたパックデータ選択ビットを付加する。そして、ビット結合部419は、パックデータ選択ビットを付加した転送パックデータを、データ変換部41が最終的に出力する転送データとして、出力DMA部45に出力する。
【0059】
なお、ビット結合部419がパックデータ選択ビットを付加する転送パックデータ内の未使用ビットの位置は、パックデータ生成部411a〜411dが生成するパッキング単位(4転送)のパックデータA〜Dの全てで共通の未使用ビットの固定位置が予め定められている。また、データ変換部41に対応するデータ逆変換部52にも、パックデータA〜Dで共通の未使用ビットの固定位置と同じ位置が、パックデータ選択ビットが付加された未使用ビットの位置として、予め定められている。これにより、データ逆変換部52は、固定された位置に付加されているパックデータ選択ビットに基づいて、データ変換部41が出力した転送データを逆変換して、元の画素データに復元することができる。
【0060】
次に、撮像装置1内のデータ逆変換部について説明する。なお、上記に述べたように、データ逆変換部52とデータ逆変換部62とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ逆変換部52は、前段の入力DMA部56と後段の画像処理部50との間に配置され、データ逆変換部62は、前段の入力DMA部66と後段の表示処理部60との間に配置されている。従って、データ逆変換部52とデータ逆変換部62とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ逆変換部52について説明する。
【0061】
図3は、本実施形態の撮像装置1に備えた本第1の構成のデータ逆変換部52の概略構成を示したブロック図である。図3に示したように、データ逆変換部52は、ビット分離部521と、4つのデータ復元部522a〜522d(以下、データ復元部522a〜522dのいずれか1つを表すときには「データ復元部522」という)と、4つのデータバッファ523a〜523d(以下、データバッファ523a〜523dのいずれか1つを表すときには「データバッファ523」という)と、選択部524と、を備えている。
【0062】
なお、以下の説明においては、データ逆変換部52に、データ変換部41によってパッキングされた、4転送をパッキング単位とした1バーストの転送データが、入力DMA部56を介して入力され、入力された転送データを、図20に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとして説明する。
【0063】
データ逆変換部52は、入力DMA部56から入力された32bitの転送データの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した9bitの画素データに復元する。そして、データ逆変換部52は、例えば、画像処理部50から入力される図示しないデータイネーブル信号に基づいて、復元した元の画素データを順次出力する。なお、データイネーブル信号は、画像処理部50に出力するタイミングを表す信号である。
【0064】
また、データ逆変換部52には、上述したように、データ変換部41によってパックデータ選択ビットが付加された未使用ビットの位置と同じ固定位置が、予め定められている。そして、データ逆変換部52が画素データを復元する際には、まず、入力された32bitの転送データ(この転送データは、データ変換部41が生成した転送データと同等である)を、パックデータ選択ビットと、データ変換部41内のパックデータ生成部411が画素データをパッキングしたパックデータ(このパックデータは、データ変換部41内の選択部418によって選択された転送パックデータと同等であるため、以下の説明のいては、「転送パックデータ」として説明する)とに分離する。そして、データ逆変換部52は、転送パックデータを、データ変換部41によるパッキング方法と逆の方法で、順次分割(アンパッキング)し、画素データに相当するデータ(以下、「アンパックデータ」という)を生成する。その後、データ逆変換部52は、パックデータ選択ビットに基づいて、アンパックデータの中から、データ変換部41に入力された画素データと同等のアンパックデータを選択して、元の画素データとして出力する。
【0065】
ビット分離部521は、入力DMA部56から入力された転送データを、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットと、転送パックデータとに分離する。そして、ビット分離部521は、分離した転送パックデータを、データ復元部522に出力する。また、ビット分離部521は、分離したパックデータ選択ビットを、選択部524に出力する。なお、ビット分離部521は、パックデータ選択ビットが付加されていない転送データは、そのまま転送パックデータとして、データ復元部522に出力する。
【0066】
データ復元部522a〜522dは、それぞれ、パックデータ生成部411a〜411dに対応し、ビット分離部521から入力された転送パックデータを、予め定めたパッキング方法と逆の方法で、転送パックデータの各ビットに配置されたそれぞれのデータ(本第1の構成のデータ逆変換部52においては、9bitのデータ)に、順次分割(アンパッキング)した、1バースト分、すなわち、パッキング単位(4転送)分のアンパックデータを生成する。そして、データ復元部522a〜522dのそれぞれは、生成したアンパックデータを、1画素毎、すなわち、画素データのビット数(本第1の構成のデータ逆変換部52においては、9bit)毎に順次、対応するデータバッファ523a〜dに出力する。
【0067】
なお、以下の説明においては、データ復元部522a〜522dのそれぞれが出力する1画素毎のアンパックデータを、それぞれ、アンパックデータa〜dという。また、以下の説明においては、データ復元部522a〜522dのそれぞれが生成した1バースト分のアンパックデータを、それぞれ、アンパックデータA〜Dという。
【0068】
データバッファ523a〜523dは、それぞれ、対応するデータ復元部522から入力された9bitのアンパックデータa〜dを、1バースト分、すなわち、パッキング単位(4転送)分保持する。データバッファ523のそれぞれが、対応するデータ復元部522から入力されたアンパックデータa〜dを、パッキング単位(4転送)分保持することによって、データバッファ523に、データ復元部522のそれぞれが生成したアンパックデータA〜Dが保持されることになる。そして、データバッファ523a〜523dは、例えば、選択部524から入力される図示しない出力要求信号に基づいて、保持しているアンパックデータA〜Dを、1画素毎、すなわち、アンパックデータa〜d毎に順次、選択部524に出力する。なお、出力要求信号は、選択部524によって選択されたデータバッファ523に保持されている9bitのアンパックデータa〜dを順次読み出す信号である。従って、出力要求信号は、選択部524によって選択されたデータバッファ523a〜523dのいずれか1つのデータバッファ523にのみ出力される。
【0069】
選択部524は、ビット分離部521から入力されたパックデータ選択ビットに応じて、データバッファ523a〜523dの内、いずれか1つのデータバッファ523を選択する。そして、例えば、選択したデータバッファ523に対して図示しない出力要求信号を出力し、選択したデータバッファ523から入力されたアンパックデータ(アンパックデータA〜Dの内、いずれか1つのアンパックデータ)を、元の画素データとして、画像処理部50に出力する。なお、上述したように、出力要求信号は、選択したデータバッファ523に保持されている9bitのアンパックデータを順次読み出す信号である。従って、選択部524は、選択したデータバッファ523a〜523dのいずれか1つのデータバッファ523にのみ、出力要求信号を出力する。
【0070】
このようにして、データ逆変換部52は、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットに基づいて、データ変換部41が、予め定めた複数のパッキング方法の内、いずれのパッキング方法でパッキングしたパックデータを出力したのかを判別する。そして、データ逆変換部52は、データ変換部41が選択したパッキング方法と逆の方法で生成されたアンパックデータを、データ変換部41が出力した転送データを逆変換した元の画素データとして出力、すなわち、元の画素データに復元する。
【0071】
なお、上述したように、データ復元部522a〜522dは、それぞれ、パックデータ生成部411a〜411dに対応している。しかし、データ復元部522がそれぞれ生成するアンパックデータa〜dは、元の画素データと同等のデータではないこともある。これは、データ復元部522a〜522dのそれぞれが、アンパックデータa〜dを生成する時点では、入力された転送パックデータが、データ変換部41内のいずれのパックデータ生成部411によって生成されたパックデータ、すなわち、図2に示したパックデータA〜Dのいずれのパックデータであるかが不明であるためである。従って、データ復元部522a〜522dのそれぞれが生成したアンパックデータa〜dを、対応するデータバッファ523に一旦保持し、パックデータ選択ビットに基づいて選択したアンパックデータA〜Dのいずれか1つのアンパックデータを、データ逆変換部52が最終的に出力する画素データとして、画像処理部50に出力している。
【0072】
なお、データ逆変換部52は、上記に述べたように、入力DMA部56から転送データが入力される毎に、データ復元部522a〜522dのそれぞれが、入力された転送パックデータを順次分割(アンパッキング)することもできるが、データ逆変換部52内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitの転送データを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力DMA部56から入力された転送データをメモリ部に一旦保持し、保持した転送データを最初に、パックデータ選択ビットと転送パックデータとに分離し、その後、パックデータ選択ビットに基づいて、対応するデータ復元部522が、予め定めたパッキング方法と逆の方法で、転送パックデータの分割(アンパッキング)を行う。なお、この構成では、データバッファ523a〜523dと同様の機能を、ビット分離部521の前段に配置されたメモリ部が担うことになる。これにより、図3に示したデータ逆変換部52内のデータバッファ523a〜523dを削減することができる。
【0073】
ここで、パックデータ生成部411a〜dにおけるパックデータa〜dの生成方法、すなわち、予め定められた複数のパッキング方法(画素データの配置方法)の一例について説明する。本実施形態の撮像装置1では、データ変換部41内のパックデータ生成部411a〜dが入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部52内のデータ復元部522a〜522dが入力された転送パックデータを元の画素データに戻す。なお、以下の説明においては、パックデータ生成部411に、図20に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとする。
【0074】
なお、データ復元部522a〜dによる転送パックデータを元の画素データに戻す方法(アンパッキング方法)は、パックデータ生成部411a〜dによる画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
【0075】
<第1のデータ配置方法>
図4は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の一例(第1のパッキング方法)を説明する図である。図4には、本第1のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。
【0076】
本第1のパッキング方法では、パックデータ生成部411が、入力された画素データの各ビットのデータを、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。なお、本第1のパッキング方法は、従来のバースト単位でのパッキング方法と同様であるため、詳細な説明は省略する。
【0077】
図4では、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを示している。より具体的には、パックデータ生成部411が、1転送目に「R0」、「G1」、「R2」、および「G3」のビット[0]〜ビット[4]、2転送目に「G3」のビット[5]〜ビット[8]、「R4」、「G5」、「R6」、および「G7」のビット[0]、3転送目に「G7」のビット[1]〜ビット[8]、「R8」、「G9」、および「R10」のビット[0]〜ビット[5]、4転送目に「R10」のビット[6]〜ビット[8]、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)した場合を示している。
【0078】
<第2のデータ配置方法>
図5は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の別の一例(第2のパッキング方法)を説明する図である。図5(a)には、第1のパッキング方法、すなわち、従来のバースト単位でのパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図5(b)には、本第2のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【0079】
本第2のパッキング方法では、1バースト(4転送)分のパッキング単位を、画素データの連続する各ビットをそのままメモリバス上の連続する各ビットに配置するパック領域1(図5(b)においては、18bitの領域)と、画素データが配置されずに残っているメモリバス上のビットに画素データの各ビットを分割して配置するパック領域2(図5(b)においては、14bitの領域)とに分けて、メモリバス上の各ビットに画素データの各ビットを配置する。
【0080】
そして、本第2のパッキング方法では、パックデータ生成部411が、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、それぞれの画素データを配置する。また、パックデータ生成部411が、画素データが配置されずに残っているパックデータ内のパック領域2の連続する4転送間で、画素データがラスター順となるように、それぞれの画素データの各ビットを詰めて配置する。
【0081】
なお、パックデータ生成部411とデータ復元部522とには、同じパック領域1およびパック領域2が、予め定められており、それぞれの領域に配置する画素データの位置も予め定められている。これにより、データ復元部522は、パックデータ生成部411によってパッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0082】
図5(b)では、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを示している。より具体的には、パックデータ生成部411が、パック領域1の1転送目に「R0」および「G1」、2転送目に「R2」および「G3」、3転送目に「R4」および「G5」、4転送目に「R6」および「G7」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)した場合を示している。また、パックデータ生成部411が、パック領域2の1転送目に「R8」および「G9」のビット[0]〜ビット[4]、2転送目に「G9」のビット[5]〜ビット[8]、「R10」、および「G11」のビット[0]、3転送目に「G11」のビット[1]〜ビット[8]を、それぞれパック領域2のメモリバスの下位ビットから順次パッキングした場合を示している。
【0083】
<第3のデータ配置方法>
図6は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の、さらに別の一例(第3のパッキング方法)を説明する図である。図6(a)には、第1のパッキング方法、すなわち、従来のバースト単位でのパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図6(b)には、本第3のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【0084】
本第3のパッキング方法では、パックデータ生成部411が、まず、入力された画素データの各ビットのデータを、第1のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部411は、予め設定されたシフト基準位置に画素データの境界のビットが配置されるように、1転送毎に各ビットの画素データをビットシフトしたパックデータを最終的なパックデータにする。
【0085】
なお、シフト基準位置は、バースト転送する際の連続する2転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるような基準の位置に、予め設定されている。そして、それぞれのパックデータ内の画素データのビットの位置をシフト基準位置にシフトするための方向とシフト量とが、予め設定されている。これにより、メモリバス上の各ビットの変化が最も小さくするようにしている。
【0086】
なお、パックデータ生成部411とデータ復元部522とには、同じシフト基準位置が、予め定められており、それぞれのパックデータ内で画素データの各ビットをシフトする方向とシフト量とが予め定められている。これにより、データ復元部522は、パックデータ生成部411によってシフトされた方向と逆の方向に同じシフト量だけシフトすることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0087】
図6(a)に示したように、パックデータ生成部411は、まず、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部411が、1転送目に「R0」、「G1」、「R2」、および「G3」のビット[0]〜ビット[4]、2転送目に「G3」のビット[5]〜ビット[8]、「R4」、「G5」、「R6」、および「G7」のビット[0]、3転送目に「G7」のビット[1]〜ビット[8]、「R8」、「G9」、および「R10」のビット[0]〜ビット[5]、4転送目に「R10」のビット[6]〜ビット[8]、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
【0088】
続いて、パックデータ生成部411は、生成したバックデータの1転送毎に各ビットに配置された画素データをシフトする。図6(a)に示したパックデータの一例では、4転送目の「G11」のビット[8]と4転送目の未使用ビット最下位ビット(メモリバスのビット[12]との境界の位置にシフト基準位置が設定されている。パックデータ生成部411は、図6(a)内に示した矢印のように、それぞれのパックデータ内の各ビットをシフトして、図6(b)に示したようなパックデータを生成する。より具体的には、パックデータ生成部411は、1転送目のパックデータを右に6ビットシフトする。また、パックデータ生成部411は、2転送目のパックデータを右に10ビット、3転送目のパックデータを右に14ビット、それぞれシフトする。これにより、図6(b)に示したように、1転送目〜3転送目までのパックデータに含まれる緑色の画素データのビット[8]と赤色の画素データのビット[0]との境界の位置が、設定されたシフト基準位置になる。
【0089】
<第4のデータ配置方法>
図7は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の、さらに別の一例(第4のパッキング方法)を説明する図である。図7(a)には、本第4のパッキング方法において予め設定されている配置の組み合わせ(並べ替えケース)を示している。また、図7(b)には、本第4のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。なお、図7(a)に示した表中の「単位」に続く数字は、説明を容易にするために付与した、並べ替え単位(図7においては、1byteの単位)を識別する情報である。この数字は、パックデータの並べ替えを行わない場合(並べ替えケース1)において、下位の並べ替え単位(1byte)から順に付与された数字であり、配置変更の処理によって画素データの配置がどの並べ替え単位の位置に変更されたかを、識別するための情報である。
【0090】
本第4のパッキング方法では、パックデータ生成部411が、まず、入力された画素データの各ビットのデータを、第1のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部411は、予め定められた並べ替え単位(1byteの単位)毎に、連続する2転送間のパックデータ内の画素データをビット毎に比較し、予め定められた並べ替えケースの組み合わせの範囲内でパックデータ内の画素データの配置を並べ替えたバックデータを生成する。さらに、パックデータ内の画素データの配置を並べ替えたときの情報(図7(a)に示した並べ替え情報)を、画素データが配置されていない未使用ビットに付加して、最終的なパックデータにする。
【0091】
なお、パックデータ生成部411とデータ復元部522とには、同じ並べ替えケースが、予め定められている。これにより、データ復元部522は、パックデータ内に付加された並べ替え情報を確認することによって、パックデータ生成部411がパックデータ内の画素データの配置を並べ替えるときに採用された並べ替えケースを把握することができる。そして、データ復元部522が、パックデータ生成部411に採用された並べ替えケースと逆の配置、すなわち、元の画素データの配置に、パックデータ内の画素データの配置を並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0092】
本第4のパッキング方法によって、図7(b)に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する(図4参照)。
【0093】
続いて、パックデータ生成部411は、パックデータのメモリバス幅を、予め定められたビット数(図7においては、8bit:1byte)の並べ替え単位に区切る。そして、例えば、1転送目のパックデータの各ビットの値と、2転送目のパックデータの各ビットの値とを比較して、値が変化しているビットの数を並べ替え単位毎に算出する。そして、パックデータ生成部411は、算出した値が変化しているビットの数が最も少なくなる並べ替えの組み合わせ(並べ替えケース)を選択する。そして、選択した並べ替えケースの配置となるように、2転送目のパックデータ内の画素データの配置を並べ替え単位毎に並べ替えたパックデータを生成する。
【0094】
図7(b)に示したパックデータ内の各画素データの配置では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース2が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース4が選択された場合を示している。なお、3転送目のパックデータから4転送目のパックデータに替わるときには、4転送目のパックデータの未使用ビットに、各転送におけるパックデータ内の画素データの配置を並べ替えたときの並べ替え情報が付加(ビット結合)されるため、並べ替えを行わない並べ替えケース1が選択される。
【0095】
そして、パックデータ生成部411は、4転送目のパックデータの未使用ビット(図7においては、4転送目のパックデータのビット「12」〜ビット「17」)に選択した並べ替えケースに対応した並べ替え情報の値をビット結合する。より具体的には、4転送目のパックデータのビット「12」およびビット「13」に並べ替えケース2に対応した並べ替え情報(“01”)を、4転送目のパックデータのビット「14」およびビット「15」に並べ替えケース4に対応した並べ替え情報(“11”)を、4転送目のパックデータのビット「16」およびビット「17」に並べ替えケース1に対応した並べ替え情報(“00”)を、それぞれビット結合する。
【0096】
<第5のデータ配置方法>
図8は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の、さらに別の一例(第5のパッキング方法)を説明する図である。図8(a)は、入力された画素データの一例を示し、図8(b)は、本第5のパッキング方法において行われる反転処理を行った後の画素データの一例を示している。また、図8(c)には、本第5のパッキング方法によって反転処理された画素データが配置されたパックデータ内の画素データの配置を示している。
【0097】
本第5のパッキング方法では、パックデータ生成部411が、まず、入力された画素データの各ビットのデータを、第1のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部411は、1転送のパックデータ内に配置されたそれぞれの画素データを予め定めた上位のビットと下位のビットとに分ける。そして、画素データの下位のビットをまとめて反転処理し、それぞれの画素データの上位のビットと、反転処理した後のそれぞれの画素データの下位のビットとを結合して、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報(図8(b)に示した反転ビット)を、当該1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のパックデータにする。
【0098】
ここで、図8(a)および図8(b)を用いて、本第5のパッキング方法における反転処理について説明する。なお、以下の説明においては、説明を容易にするため、8bitの画素データが、上段から下段に向かって時系列的に順次入力される場合について説明する。パックデータ生成部411は、画素データが入力される毎に、下位の入力画素データの各ビットの値を順次比較する。より具体的には、図8(a)に示した入力画素データのそれぞれの段において、下位の入力画素データの各ビットの値を上段の下位の入力画素データの値と比較し、ビット変化数を算出する。これにより、図8(a)に示したような下位の入力画素データのビット変化数を得る。
【0099】
そして、パックデータ生成部411は、算出したビット変化数が下位の入力画素データの半数を超える場合に、当該下位の入力画素データをそれぞれのビット毎に反転(“1”を“0”、または“0”を“1”)したデータを、反転処理した下位の出力画素データとして生成する。そして、パックデータ生成部411は、上位の入力画素データと下位の出力画素データとを結合したデータを、最終的な出力画素データとする。また、パックデータ生成部411は、反転処理した出力画素データであることを表す反転ビット(図8(b)参照)を、最終的な出力画素データに付加する。図8(b)においては、出力画素データが、反転処理されたデータである場合に、反転ビットの値を“1”とし、反転処理されていないデータである場合に、反転ビットの値を“0”としている。このように反転処理することによって、本第5のパッキング方法では、メモリバス上の各ビットの変化を小さくしている。
【0100】
なお、パックデータ生成部411とデータ復元部522とは、反転ビットの値が意味する内容、すなわち、反転処理を行ったか否かの情報を共有している。これにより、データ復元部522は、反転ビットを確認することによって、パックデータ生成部411が反転処理を行ったか否かを判定することができる。そして、データ復元部522は、パックデータ生成部411によって反転処理が行われたデータ(より詳細には、下位の画素データ)を、反転処理することによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0101】
本第5のパッキング方法によって、図8(c)に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部411が、1転送目に「R0」、「G1」、および「R8」、2転送目に「R2」、「G3」、および「R10」、3転送目に「R4」、「G5」、および「G9」、4転送目に「R6」、「G7」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
【0102】
続いて、パックデータ生成部411は、それぞれの1転送毎のパックデータに配置された画素データの下位のビット(例えば、1転送目のパックデータにおいては、「R0」、「G1」、および「R8」のビット[0]〜ビット[3])をまとめて反転処理する。そして、画素データの下位のビットを反転処理したときの反転ビットを、各転送におけるパックデータ内の未使用ビット(図8(c)においては、メモリバスのビット[27])にビット結合する。
【0103】
次に、データ変換部41が出力する転送データについて説明する。図9は、本第1の構成のデータ変換部41から出力する転送データを説明する図である。上述したように、データ変換部41は、撮像処理部40から順次入力された9bitの画素データの各ビットのデータを、メモリバス上の各ビットに配置した32bitの転送データを、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて順次出力する。
【0104】
データ変換部41は、入力された画素データを、上述した第1のパッキング方法〜第5のパッキング方法の内、いずれか1つのパッキング方法で、1バースト分、すなわち、パッキング単位(4転送)分の画素データを配置(パッキング)したパックデータA〜Dを生成するパックデータ生成部411a〜411dを備えている。そして、比較部417は、メモリバス上のデータの変化が最も少ないパックデータを、転送パックデータとして選択し、転送パックデータとして選択されたパックデータを表す、パックデータ選択ビットを出力する。比較部417には、例えば、図9(a)に示したように、転送パックデータとして選択されたパックデータに対応したパックデータ選択ビットの値が、予め定められている。なお、図9(a)に示した転送パックデータとパックデータ選択ビットとの対応では、4つのパックデータ生成部411にそれぞれ対応したパックデータ選択ビットが予め設定しているため、パックデータ選択ビットのビット数は、2bitである。
【0105】
そして、ビット結合部419は、例えば、図9(b)に示したように、1バーストの転送データ内の予め定められた固定位置にパックデータ選択ビットを付加した転送パックデータを、データ変換部41が最終的に出力する転送データとして、それぞれのバースト毎に、出力DMA部45に出力する。図9(b)では、パックデータ選択ビットを付加する固定位置が、4転送目のパックデータの最上位ビットから2ビット(より具体的には、メモリバスのビット[31]とビット[30])とに、予め定められている場合を示している。また、図9(b)では、2バースト分の転送データを示している。
【0106】
データ変換部41とデータ逆変換部52とは、パックデータ選択ビットが付加される固定位置の情報を共有している。また、データ変換部41とデータ逆変換部52とは、図9(a)に示したような、選択されたパックデータとパックデータ選択ビットの値との対応、すなわち、パックデータ選択ビットの値が表す転送データのパッキング方法の情報を共有している。これにより、データ逆変換部52は、パックデータ選択ビットを確認することによって、データ変換部41から出力された転送データに適用されているパッキング方法を判定することができる。そして、データ逆変換部52は、転送データに適用されたパッキング方法と逆の方法で、転送パックデータの各ビットに配置されたそれぞれのデータが、順次分割(アンパッキング)された、1バースト分、すなわち、パッキング単位(4転送)分のアンパックデータを、元の画素データとして選択することができる。
【0107】
上記に述べたように、本第1の構成のデータ変換部41および51では、複数のパッキング方法によって生成されたそれぞれのパックデータの中から、バースト転送時におけるメモリバスの各ビットの変化量が最も少ないパックデータを選択して出力することができる。そして、選択されたパックデータ(パッキング方法)を表すパックデータ選択ビットを、転送データと共に出力する。これにより、本第1の構成のデータ変換部41および51では、転送する画素データに最適なパッキング方法を選択することによって、画像データの転送に係る消費電力の低減効果がより高いデータ転送を実現することができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
【0108】
<第2の構成>
次に、本第2の構成のデータ変換部について説明する。図10は、本実施形態の撮像装置1に備えた第2の構成のデータ変換部43の概略構成を示したブロック図である。図10に示したデータ変換部43は、第1の構成のデータ変換部41の代わりに、撮像装置1に備えられる。従って、データ変換部43は、データ変換部51の代わりに撮像装置1に備えることもできる。図10に示したように、データ変換部43は、4つのパックデータ生成部431a〜431d(以下、パックデータ生成部431a〜431dのいずれか1つを表すときには「パックデータ生成部431」という)と、D−FF432と、4つのEXOR(排他的論理和)回路414a〜414d(以下、EXOR回路414a〜414dのいずれか1つを表すときには「EXOR回路414」という)と、4つのビット加算部415a〜415d(以下、ビット加算部415a〜415dのいずれか1つを表すときには「ビット加算部415」という)と、比較部437と、選択部438と、ビット結合部439と、を備えている。
【0109】
本第2の構成のデータ変換部43は、図2に示した第1の構成のデータ変換部41内のパックデータ生成部411に代わって、パックデータ生成部431を備え、D−FF412に代わってD−FF432を備え、比較部417に代わって比較部437を備え、選択部418に代わって選択部438を備え、ビット結合部419に代わってビット結合部439を備えている。また、データ変換部41内のバースト単位バッファ413と、バースト単位累積部416とが削除されている。以下の説明においては、第1の構成のデータ変換部41内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【0110】
なお、以下の説明においては、第1の構成と同様に、データ変換部43に、図20に示したような、16行×16列のベイヤーデータが入力され、4転送をベイヤーデータ内の各画素データのパッキング単位とし、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitである場合について説明する。
【0111】
データ変換部43は、第1の構成のデータ変換部41と同様に、撮像処理部40から順次入力された9bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitの転送データを出力する。ただし、データ変換部43が転送データを生成する方法は、第1の構成のデータ変換部41と異なる。より具体的には、データ変換部41では、1バースト(4転送)分の転送パックデータの単位で、メモリバス上のビット変化が最も少ないパックデータを選択していたが、データ変換部43では、それぞれの1転送のパックデータ毎に、メモリバス上のビット変化が最も少ないパックデータを選択する。
【0112】
データ変換部43が転送データを生成する際には、まず、入力された画素データを、予め定めた複数のパッキング方法でそれぞれパッキングした複数のパックデータを生成する。そして、データ変換部43は、生成したそれぞれの1転送のパックデータの内、メモリバス上のビット変化が最も少ない1転送のパックデータ(以下、「転送単位パックデータ」という)を選択する。その後、データ変換部43は、パックデータを選択したときの情報(パックデータ選択ビット)を、転送単位パックデータ内、すなわち、1転送のパックデータ内に存在する未使用ビットに付加して、最終的に出力する転送データとして出力する。
【0113】
パックデータ生成部431a〜431dは、それぞれ、入力された画素データの各ビットのデータを、予め定めたパッキング方法で、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに配置した、メモリバス幅のビット数(本第2の構成のデータ変換部43においては、32bit)の1転送のパックデータを順次生成する。そして、パックデータ生成部431a〜431dのそれぞれは、生成した1転送のパックデータを、順次、選択部438と対応するEXOR回路414a〜414dとに出力する。
【0114】
なお、パックデータ生成部431a〜431dのそれぞれが生成した1転送のパックデータは、データ変換部41内のパックデータ生成部411がそれぞれ生成した、1バースト分のパックデータA〜Dの1転送毎のパックデータa〜dに相当する。従って、以下の説明においても、パックデータ生成部431a〜431dのそれぞれが生成した1転送のパックデータを、それぞれ、パックデータa〜dという。なお、パックデータ生成部431のそれぞれにおけるパッキング方法、およびパックデータの例に関する詳細な説明は、後述する。
【0115】
選択部438は、比較部437から入力されたパックデータ選択ビットに応じて、パックデータ生成部431a〜431dの内、いずれか1つのパックデータ生成部431を選択する。そして、選択したパックデータ生成部431から出力されたパックデータ(パックデータa〜dの内、いずれか1つのパックデータ)を、転送単位パックデータとしてビット結合部439に出力する。なお、選択部438内には、パックデータ生成部431a〜431dのそれぞれから入力されたパックデータa〜dをそれぞれ一時的に保持するメモリ部を備え、比較部437から入力されるパックデータ選択ビットとのタイミングの整合をとって、転送単位パックデータを選択する。
【0116】
D−FF432は、選択部438から出力された転送単位パックデータを保持する。このD−FF432によって保持された転送単位パックデータは、EXOR回路414a〜414dのそれぞれに出力される。なお、転送単位パックデータは、パックデータ生成部431が前回の1転送で出力したパックデータa〜dのいずれか1つのパックデータに相当する。
【0117】
EXOR回路414a〜414dは、それぞれ、対応するパックデータ生成部431a〜431dから出力された32bitのパックデータa〜dと、D−FF432から出力された32bitの転送単位パックデータとの2つのパックデータの各ビットの値をビット毎に比較する。そして、EXOR回路414a〜414dは、2つのパックデータのビットの値が同じ値のときに“0”を、2つのパックデータのビットの値が異なる値のときに“1”を、比較したそれぞれのビット毎に出力する。
【0118】
なお、EXOR回路414a〜414dのそれぞれは、D−FF432から入力された転送単位パックデータを、同じパッキング単位(4転送)において、パックデータ生成部431a〜431dのそれぞれが出力した前回のパックデータa〜dとして、各ビットの値を比較する。これにより、データ変換部43が出力した前回の転送単位パックデータが、パックデータ生成部431a〜431dのいずれのパックデータ生成部431によって生成されたパックデータであるかに関係なく、前回のパックデータと、今回のパックデータa〜dとの比較が行われる。
【0119】
なお、パックデータ生成部431から出力された今回のパックデータa〜dが1転送目のパックデータa〜dである場合には、ビットの値が変化していないことを示す値=“0”を、全てのビットに出力する。
【0120】
ビット加算部415a〜415dは、それぞれ、対応するEXOR回路414a〜414dから入力された値が変化しているビットの数を計数したビット変化数を算出する。これにより、パックデータ生成部431a〜431dのいずれか1つのパックデータ生成部431が出力した前回のパックデータ(D−FF432から出力された転送単位パックデータ)の値が、次にパックデータ生成部431a〜431dが出力した今回のパックデータa〜dの値に変化する際に、メモリバス上の各ビットの値が異なる値に変化するビットの数(ビット変化数)が、それぞれのパックデータ生成部431によって算出される。そして、ビット加算部415a〜415dのそれぞれは、算出したビット変化数を、比較部437に出力する。
【0121】
比較部437は、ビット加算部415a〜415dのそれぞれから入力されたビット変化数の内、ビット変化数が最も少ないものを判定し、最も少ないビット変化数を出力したビット加算部415を特定(選択)する。そして、比較部437は、最も少ないビット変化数を出力したビット加算部415を表す情報、すなわち、最もメモリバス上のビット変化が少ないパッキング方法を表す情報を、パックデータ選択ビットとして、選択部438とビット結合部439とに出力する。これにより、1転送のパックデータ(転送単位パックデータ)においてメモリバス上のビット変化が最も少ないパックデータが選択されることになる。
【0122】
なお、パックデータ選択ビットは、データ変換部43内に備えたパックデータ生成部431のそれぞれに対応した値が、予め定められており、データ変換部43に対応するデータ逆変換部にも、共通の値が予め定められている。これにより、データ変換部43に対応するデータ逆変換部は、データ変換部43で選択されたパッキング方法を判別することができる。
【0123】
ビット結合部439は、選択部438から入力された転送単位パックデータ内、すなわち、1転送のパックデータ内に存在する未使用ビットに、比較部437から入力されたパックデータ選択ビットを付加する。そして、ビット結合部439は、パックデータ選択ビットを付加した転送単位パックデータを、データ変換部43が最終的に出力する転送データとして、出力DMA部45に出力する。
【0124】
なお、ビット結合部439がパックデータ選択ビットを付加する転送単位パックデータ内の未使用ビットの位置は、パックデータ生成部431a〜431dが生成する1転送のパックデータa〜dの全てで共通の未使用ビットの固定位置が予め定められている。また、データ変換部43に対応するデータ逆変換部にも、パックデータa〜dで共通の未使用ビットの固定位置と同じ位置が、パックデータ選択ビットが付加された未使用ビットの位置として、予め定められている。これにより、データ変換部43に対応するデータ逆変換部は、固定された位置に付加されているパックデータ選択ビットに基づいて、データ変換部43が出力した転送データを逆変換して、元の画素データに復元することができる。
【0125】
次に、本第2の構成のデータ逆変換部について説明する。図11は、本実施形態の撮像装置1に備えた第2の構成のデータ逆変換部54の概略構成を示したブロック図である。図11に示したデータ逆変換部54は、第1の構成のデータ逆変換部52の代わりに、撮像装置1に備えられる。従って、データ逆変換部54は、データ逆変換部62の代わりに撮像装置1に備えることもできる。図11に示したように、データ逆変換部54は、ビット分離部521と、4つのデータ復元部542a〜542d(以下、データ復元部542a〜542dのいずれか1つを表すときには「データ復元部542」という)と、選択部524と、を備えている。
【0126】
本第2の構成のデータ逆変換部54は、図3に示した第1の構成のデータ逆変換部52内のデータ復元部522に代わって、データ復元部542を備え、データバッファ523が削除されている。以下の説明においては、第1の構成のデータ逆変換部52内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【0127】
なお、以下の説明においては、第1の構成と同様に、データ逆変換部54に、データ変換部43によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図20に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとして説明する。
【0128】
データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、入力DMA部56から入力された32bitの転送データの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した9bitの画素データに復元する。ただし、データ逆変換部54が元の画素データに復元する方法は、第1の構成のデータ逆変換部52と異なる。より具体的には、データ逆変換部52では、1バースト(4転送)分の転送パックデータのいずれかの固定位置に付加されていたパックデータ選択ビットに基づいて元の画素データに復元していたが、データ逆変換部54では、1転送のパックデータ毎に付加されているパックデータ選択ビットに基づいて、元の画素データに復元する。
【0129】
また、データ逆変換部54には、上述したように、データ変換部43によってパックデータ選択ビットが付加された未使用ビットの位置と同じ固定位置が、予め定められている。そして、データ逆変換部54が画素データを復元する際には、1転送毎に入力された32bitの転送データ(この転送データは、データ変換部43が生成した転送データと同等である)を、パックデータ選択ビットと、データ変換部43内のパックデータ生成部431が画素データをパッキングしたパックデータ(このパックデータは、データ変換部43内の選択部438によって選択された転送単位パックデータと同等であるため、以下の説明のいては、「転送単位パックデータ」として説明する)とに、順次分離する。そして、データ逆変換部54は、1転送毎の転送単位パックデータを、データ変換部43によるパッキング方法と逆の方法で、順次分割(アンパッキング)し、画素データに相当するアンパックデータを順次生成する。その後、データ逆変換部54は、パックデータ選択ビットに基づいて、アンパックデータの中から、データ変換部43に入力された画素データと同等のアンパックデータを1転送毎に選択して、元の画素データとして順次出力する。
【0130】
ビット分離部521は、入力DMA部56から入力された転送データを、1転送毎に順次、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットと、転送単位パックデータとに分離する。そして、ビット分離部521は、分離した転送単位パックデータを、データ復元部542に1転送毎に順次出力する。また、ビット分離部521は、分離したパックデータ選択ビットを、選択部524に1転送毎に順次出力する。
【0131】
データ復元部542a〜542dは、それぞれ、パックデータ生成部431a〜431dに対応し、ビット分離部521から入力された転送単位パックデータを、予め定めたパッキング方法と逆の方法で、転送単位パックデータの各ビットに配置されたそれぞれのデータ(本第2の構成のデータ逆変換部54においては、9bitのデータ)に、順次分割(アンパッキング)した、1転送分のアンパックデータを生成する。そして、データ復元部542a〜542dのそれぞれは、生成したアンパックデータを、1画素毎、すなわち、画素データのビット数(本第2の構成のデータ逆変換部54においては、9bit)毎に順次、選択部524に出力する。
【0132】
なお、データ復元部542a〜542dのそれぞれが生成した1画素毎のアンパックデータは、データ逆変換部52内のデータ復元部522がそれぞれ生成した、1画素毎のアンパックデータa〜dに相当する。従って、以下の説明においても、データ復元部542a〜542dのそれぞれが出力する1画素毎のアンパックデータを、それぞれ、アンパックデータa〜dという。
【0133】
選択部524は、ビット分離部521から入力されたパックデータ選択ビットに応じて、データ復元部542a〜542dの内、いずれか1つのデータ復元部542を選択する。そして、選択したデータ復元部542から入力されたアンパックデータ(アンパックデータa〜dの内、いずれか1つのアンパックデータ)を、元の画素データとして、順次、画像処理部50に出力する。なお、選択部524内には、データ復元部542a〜542dのそれぞれから入力されたアンパックデータa〜dをそれぞれ一時的に保持するメモリ部を備え、ビット分離部521から入力されるパックデータ選択ビットとのタイミングの整合をとって、元の画素データを選択する。
【0134】
このようにして、データ逆変換部54は、それぞれの転送データの予め定められた固定位置に付加されているパックデータ選択ビットに基づいて、データ変換部43が、予め定めた複数のパッキング方法の内、いずれのパッキング方法でパッキングしたパックデータを出力したのかを判別する。そして、データ逆変換部54は、データ変換部43が選択したパッキング方法と逆の方法で生成されたアンパックデータを、データ変換部43が出力した転送データを逆変換した元の画素データとして出力、すなわち、元の画素データに復元する。
【0135】
なお、上述したように、データ復元部542a〜542dは、それぞれ、パックデータ生成部431a〜431dに対応している。しかし、データ復元部542がそれぞれ生成するアンパックデータa〜dは、元の画素データと同等のデータではないこともある。これは、第1の構成のデータ逆変換部52と同様に、データ復元部542a〜542dのそれぞれが、アンパックデータa〜dを生成する時点では、入力された転送単位パックデータが、データ変換部43内のいずれのパックデータ生成部431によって生成されたパックデータ、すなわち、図10に示したパックデータa〜dのいずれのパックデータであるかが不明であるためである。従って、データ復元部542a〜542dのそれぞれが生成したアンパックデータa〜dを、パックデータ選択ビットに基づいて選択したアンパックデータa〜dのいずれか1つのアンパックデータを、データ逆変換部54が最終的に出力する画素データとして、画像処理部50に出力している。
【0136】
ここで、パックデータ生成部431a〜dにおけるパックデータa〜dの生成方法、すなわち、予め定められた複数のパッキング方法(画素データの配置方法)の一例について説明する。本実施形態の撮像装置1では、データ変換部43内のパックデータ生成部431a〜dが入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部54内のデータ復元部542a〜542dが入力された転送単位パックデータを元の画素データに戻す。なお、以下の説明においては、パックデータ生成部431に、図20に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとする。
【0137】
なお、データ復元部542a〜dによる転送単位パックデータを元の画素データに戻す方法(アンパッキング方法)は、パックデータ生成部431a〜dによる画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
【0138】
<第6のデータ配置方法>
図12は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の一例(第6のパッキング方法)を説明する図である。図12には、本第6のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。
【0139】
本第6のパッキング方法では、パックデータ生成部431が、入力された画素データの各ビットのデータを、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。なお、本第6のパッキング方法は、従来のパッキング方法と同様であるため、詳細な説明は省略する。
【0140】
図12では、パックデータ生成部431が、1転送内に3画素分の画素データをパッキングし、ベイヤーデータ内の各画素データを、1バースト(4転送)で12画素分の画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)を転送する場合のパックデータを示している。より具体的には、パックデータ生成部431が、1転送目に「R0」、「G1」、および「R2」、2転送目に「G3」、「R4」、および「G5」、3転送目に「R6」、「G7」、および「R8」、4転送目に「G9」、「R10」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)した場合を示している。
【0141】
なお、本第6のパッキング方法においては、1転送分のパックデータ内に画素データの全てのビットを配置することができない場合には、次の画素データのパッキングをしない。これは、本第6のパッキング方法では、1転送をパッキング単位として各画素データをパッキングするため、次の画素データをパッキングすると、画素データがパッキング単位を跨いでしまうことになるためである。従って、画素データが配置されなかったメモリバスのビット(図12においては、各転送のメモリバスのビット[31]〜ビット[27])は、未使用ビットとする。
【0142】
<第7のデータ配置方法>
図13は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の別の一例(第7のパッキング方法)を説明する図である。図13(a)には、第6のパッキング方法、すなわち、従来のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図13(b)には、本第7のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【0143】
本第7のパッキング方法では、1バースト(4転送)分のパッキング単位を、パック領域1(図13(b)においては、18bitの領域)と、パック領域2(図5(b)においては、14bitの領域)とに分けて、メモリバス上の各ビットに画素データの各ビットを配置する。そして、本第7のパッキング方法では、パックデータ生成部431が、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、それぞれの1転送内に配置される画素データの位置を変更する。また、パックデータ生成部431は、画素データが配置されずに残っているパックデータ内のパック領域2に、それぞれの1転送内でパック領域1に配置されなかった画素データを配置する。
【0144】
なお、パックデータ生成部431とデータ復元部542とには、同じパック領域1およびパック領域2が、予め定められており、それぞれの領域に配置する画素データの位置も予め定められている。これにより、データ復元部542は、パックデータ生成部431によってパッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0145】
図13(b)では、パックデータ生成部431が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを示している。より具体的には、パックデータ生成部431が、1転送目に「R0」、「G1」、および「R2」、2転送目に「R4」、「G3」、および「G5」、3転送目に「R6」、「G7」、および「R8」、4転送目に「R10」、「G9」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)した場合を示している。
【0146】
<第8のデータ配置方法>
図14は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の、さらに別の一例(第8のパッキング方法)を説明する図である。図14(a)には、第6のパッキング方法、すなわち、従来のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図14(b)には、本第8のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【0147】
本第8のパッキング方法では、パックデータ生成部431が、まず、入力された画素データの各ビットのデータを、第6のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部431は、予め設定された並べ替え基準位置に画素データの境界のビットが配置されるように、同じ1転送のパックデータ内に配置された画素データの配置を並べ替える。そして、画素データの配置を並べ替えたパックデータを最終的な1転送のパックデータにする。
【0148】
なお、並べ替え基準位置は、バースト転送する際の連続する2転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるような基準のビットの位置に、予め設定されている。そして、それぞれのパックデータ内の画素データの位置を並べ替え基準位置にするための並べ替え方法が、1転送毎に予め設定されている。これにより、メモリバス上の各ビットの変化が最も小さくするようにしている。
【0149】
なお、パックデータ生成部431とデータ復元部542とには、同じ並べ替え基準位置が、予め定められており、それぞれのパックデータ内で画素データの並べ替え方法が予め定められている。これにより、データ復元部542は、パックデータ生成部431が並べ替えられた方法と逆の方法で並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0150】
図14(a)に示したように、パックデータ生成部431は、まず、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部431が、1転送目に「R0」、「G1」、および「R2」、2転送目に「G3」、「R4」、および「G5」、3転送目に「R6」、「G7」、および「R8」、4転送目に「G9」、「R10」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
【0151】
続いて、パックデータ生成部431は、生成したバックデータの1転送毎のパックデータ内に配置された画素データを並べ替える。図14(a)に示したパックデータの一例では、メモリバスのビット[17]とビット[18]との境界の位置に並べ替え基準位置が設定されている。パックデータ生成部431は、図14(a)内に示した矢印のように、それぞれの1転送のパックデータ内の画素データの配置を並べ替えて、図14(b)に示したような、それぞれの1転送のパックデータを生成する。より具体的には、パックデータ生成部431は、1転送目のパックデータ内の「G1」と「R2」とを並べ替える。また、パックデータ生成部431は、2転送目のパックデータ内の「R4」と「G5」、3転送目のパックデータ内の「G7」と「R8」、4転送目のパックデータ内の「R10」と「G11」とを、それぞれ並べ替える。これにより、図14(b)に示したように、1転送目〜4転送目までのパックデータに含まれる各画素データの配置が、並べ替えられる。
【0152】
<第9のデータ配置方法>
図15は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の、さらに別の一例(第9のパッキング方法)を説明する図である。図15(a)には、本第9のパッキング方法において予め設定されている配置の組み合わせ(並べ替えケース)を示している。また、図15(b)には、本第9のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。なお、図15(a)に示した表中の「単位」に続く数字は、説明を容易にするために付与した、並べ替え単位(図15においては、1byteの単位)を識別する情報である。この数字は、パックデータの並べ替えを行わない場合(並べ替えケース1)において、下位の並べ替え単位(1byte)から順に付与された数字であり、配置変更の処理によって画素データの配置がどの並べ替え単位の位置に変更されたかを、識別するための情報である。
【0153】
本第9のパッキング方法では、パックデータ生成部431が、まず、入力された画素データの各ビットのデータを、第6のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部431は、予め定められた並べ替え単位(1byteの単位)毎に、連続する2転送間のパックデータ内の画素データをビット毎に比較し、予め定められた並べ替えケースの組み合わせの範囲内でパックデータ内の画素データの配置を並べ替えたバックデータを生成する。さらに、パックデータ内の画素データの配置を並べ替えたときの情報(図15(a)に示した並べ替え情報)を、それぞれの1転送のパックデータ内で画素データが配置されていない未使用ビットに付加して、最終的な1転送のパックデータにする。
【0154】
なお、パックデータ生成部431とデータ復元部542とには、同じ並べ替えケースが、予め定められている。これにより、データ復元部542は、1転送毎のパックデータ内に付加された並べ替え情報を確認することによって、パックデータ生成部431がパックデータ内の画素データの配置を並べ替えるときに採用された並べ替えケースを把握することができる。そして、データ復元部542が、パックデータ生成部431に採用された並べ替えケースと逆の配置、すなわち、元の画素データの配置に、パックデータ内の画素データの配置を並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0155】
本第9のパッキング方法によって、図15(b)に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部431が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する(図12参照)。
【0156】
続いて、パックデータ生成部431は、パックデータのメモリバス幅を、予め定められたビット数(図15においては、8bit:1byte)の並べ替え単位に区切る。そして、例えば、1転送目のパックデータの各ビットの値と、2転送目のパックデータの各ビットの値とを比較して、値が変化しているビットの数を並べ替え単位毎に算出する。そして、パックデータ生成部431は、算出した値が変化しているビットの数が最も少なくなる並べ替えの組み合わせ(並べ替えケース)を選択する。そして、選択した並べ替えケースの配置となるように、2転送目のパックデータ内の画素データの配置を並べ替え単位毎に並べ替えたパックデータを生成する。
【0157】
図15(b)に示したパックデータ内の各画素データの配置では、1転送目のパックデータを基準のパックデータにする。従って、1転送目のパックデータは、並べ替えを行わないため、並べ替えケース1が選択される。そして、パックデータ生成部431は、1転送目のパックデータの未使用ビット(図15(b)においては、ビット「27」〜ビット「31」)に、選択した並べ替えケース1に対応した並べ替え情報の値を付加(ビット結合)する。図15(b)においては、1転送目のパックデータのビット「27」とビット「28」とに、並べ替えケース1に対応した並べ替え情報の値(“00”)がビット結合された場合を示している。そして、パックデータ生成部431は、並べ替え情報を付加した1転送目のパックデータを、最終的な1転送目のパックデータとして出力する。
【0158】
また、図15(b)に示したパックデータ内の各画素データの配置では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース2が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース3が選択され、3転送目のパックデータから4転送目のパックデータに替わるときに並べ替えケース4が選択された場合を示している。そして、図15(b)においては、2転送目のパックデータの未使用ビットに並べ替えケース2に対応した並べ替え情報の値(“01”)が、3転送目のパックデータの未使用ビットに並べ替えケース3に対応した並べ替え情報の値(“10”)が、4転送目のパックデータの未使用ビットに並べ替えケース4に対応した並べ替え情報の値(“11”)が、それぞれビット結合された場合を示している。そして、パックデータ生成部431は、並べ替え情報を付加した2転送目〜4転送目のパックデータを、最終的な2転送目〜4転送目のパックデータとして、順次出力する。
【0159】
<第10のデータ配置方法>
図16は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の、さらに別の一例(第10のパッキング方法)を説明する図である。図16には、本第10のパッキング方法によって反転処理された画素データが配置されたパックデータ内の画素データの配置を示している。なお、本第10のパッキング方法における反転処理は、図8(a)および図8(b)を用いて説明した第5のパッキング方法における反転処理と同様の考え方であるため、詳細な説明は省略する。
【0160】
本第10のパッキング方法では、パックデータ生成部431が、まず、入力された画素データの各ビットのデータを、第6のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部431は、第5のパッキング方法と同様に、1転送のパックデータ内に配置されたそれぞれの画素データを予め定めた上位のビットと下位のビットとに分け、1転送のパックデータ内に配置されたそれぞれの画素データの下位のビットをまとめて反転処理する。そして、パックデータ生成部431は、それぞれの画素データの上位のビットと、反転処理した後のそれぞれの画素データの下位のビットとを分けて、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報である反転ビットを、それぞれの1転送のパックデータ内で画素データが配置されていない未使用ビットに付加して、最終的な1転送のパックデータにする。
【0161】
なお、パックデータ生成部431とデータ復元部542とは、反転ビットの値が意味する内容、すなわち、反転処理を行ったか否かの情報を共有している。また、1転送のパックデータ内に分けて配置された画素データの上位ビットと下位のビットとの配置位置も予め定められている。これにより、データ復元部542は、反転ビットを確認することによって、パックデータ生成部431が反転処理を行ったか否かを判定することができる。そして、データ復元部542は、パックデータ生成部431によって反転処理が行われたデータ(より詳細には、下位の画素データ)を、反転処理することによって、画素データの下位のビットを元に戻すことができる。その後、画素データの上位のビットと元に戻した画素データの下位のビットを結合することによって、1転送のパックデータ内に配置されたそれぞれの画素データを、元の画素データに復元することができる。
【0162】
本第10のパッキング方法によって、図16に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部431が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部431が、1転送目に「R0」、「G1」、および「R8」、2転送目に「R2」、「G3」、および「R10」、3転送目に「R4」、「G5」、および「G9」、4転送目に「R6」、「G7」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
【0163】
続いて、パックデータ生成部431は、それぞれの1転送毎のパックデータに配置された画素データの下位のビット(例えば、1転送目のパックデータにおいては、「R0」、「G1」、および「R8」のビット[0]〜ビット[3])をまとめて反転処理する。そして、パックデータ生成部431は、それぞれの1転送毎のパックデータに配置された画素データの上位のビット(例えば、1転送目のパックデータにおいては、「R0」、「G1」、および「R8」のビット[4]〜ビット[8])を、各転送におけるパックデータの最下位ビットから順次パッキングする。さらに、反転処理した後の画素データの下位のビットを、各転送のパックデータ内に配置した画素データの上位のビットに続いて順次パッキングする。そして、画素データの下位のビットを反転処理したときの反転ビットを、各転送におけるパックデータ内の未使用ビット(図16(b)においては、メモリバスのビット[27])にビット結合する。
【0164】
次に、データ変換部43が出力する転送データについて説明する。図17は、本第2の構成のデータ変換部43から出力する転送データを説明する図である。上述したように、データ変換部43は、撮像処理部40から順次入力された9bitの画素データの各ビットのデータを、メモリバス上の各ビットに配置した32bitの転送データを、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて順次出力する。
【0165】
データ変換部43は、入力された画素データを、上述した第6のパッキング方法〜第10のパッキング方法の内、いずれか1つのパッキング方法で、画素データを配置(パッキング)したパックデータa〜dを生成するパックデータ生成部431a〜431dを備えている。そして、比較部437は、メモリバス上のデータの変化が最も少ないパックデータを、転送単位パックデータとして選択し、転送単位パックデータとして選択されたパックデータを表す、パックデータ選択ビットを出力する。比較部437には、例えば、図17(a)に示したように、転送単位パックデータとして選択されたパックデータに対応したパックデータ選択ビットの値が、予め定められている。なお、図17(a)に示した転送単位パックデータとパックデータ選択ビットとの対応では、4つのパックデータ生成部431にそれぞれ対応したパックデータ選択ビットが予め設定しているため、パックデータ選択ビットのビット数は、2bitである。
【0166】
そして、ビット結合部439は、例えば、図17(b)に示したように、1転送の転送単位パックデータ内の予め定められた固定位置にパックデータ選択ビットを付加した転送単位パックデータを、データ変換部43が最終的に出力する1転送の転送データとして、それぞれの転送毎に、出力DMA部45に出力する。図17(b)では、パックデータ選択ビットを付加する固定位置が、各転送のパックデータの最上位ビットから2ビット(より具体的には、メモリバスのビット[31]とビット[30])とに、予め定められている場合を示している。また、図17(b)では、3転送分の転送データを示している。
【0167】
データ変換部43とデータ逆変換部54とは、パックデータ選択ビットが付加される固定位置の情報を共有している。また、データ変換部43とデータ逆変換部54とは、図17(a)に示したような、選択されたパックデータとパックデータ選択ビットの値との対応、すなわち、パックデータ選択ビットの値が表す1転送毎の転送データのパッキング方法の情報を共有している。これにより、データ逆変換部54は、パックデータ選択ビットを確認することによって、データ変換部43から出力された各転送の転送データに適用されているパッキング方法を判定することができる。そして、データ逆変換部54は、1転送の転送データに適用されたパッキング方法と逆の方法で、転送単位パックデータの各ビットに配置されたそれぞれのデータが、順次分割(アンパッキング)された、1転送分のアンパックデータを、元の画素データとして選択することができる。このような1転送毎の元の画素データの復元を繰り返して、1バースト分、すなわち、パッキング単位(4転送)分の元の画素データを復元する。
【0168】
なお、本第2の構成のデータ変換部43では、1バースト(4転送)分の転送データにおいて、最初(1転送目)の転送データ(例えば、図17(b)に示した1転送目の転送データ)を基準の転送データにする。従って、1転送目の転送データは、配置されている画素データの並べ替えの処理や、反転処理などのパッキング処理を行わない。そのため、1転送目の転送データに付加されるパックデータ選択ビットは、画素データの並べ替えの処理や、反転処理などのパッキング処理を行っていないことを表すパックデータ選択ビットの値となる。その後、2転送目の転送データからは、選択されたパッキング方法によるパックデータであることを表すパックデータ選択ビットの値が付加される。
【0169】
なお、データ変換部43とデータ逆変換部54とで基準の処理(パッキング処理)を予め設定することもできる。この場合には、1転送目の転送データに付加されるパックデータ選択ビットには、予め設定された基準のパッキング処理を表すパックデータ選択ビットの値が付加されることになる。
【0170】
上記に述べたように、本第2の構成のデータ変換部43では、複数のパッキング方法によって生成された1転送毎のパックデータの中から、バースト転送時におけるメモリバスの各ビットの変化量が最も少ないパックデータを選択して出力することができる。そして、選択されたパックデータ(パッキング方法)を表すパックデータ選択ビットを、1転送毎に、転送データと共に出力する。これにより、本第2の構成のデータ変換部43では、転送する画素データに最適なパッキング方法を1転送毎に選択することによって、第1の構成のデータ変換部41よりも画像データの転送に係る消費電力の低減効果がより高いデータ転送を実現することができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を、さらに低減させることができる。
【0171】
上記に述べたとおり、本発明を実施するための形態によれば、転送する画素データに最適なパッキング方法を選択し、最適なパッキング方法によってパッキングされた転送データを出力する。また、選択した最適なパッキング方法を表す情報を、転送データの未使用ビットに付加して出力する。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくすることができると共に、転送データから元の画素データを容易に復元することができる。しかも、データの転送効率は、従来と同等のデータ転送効率を維持することができる。これにより、像装置内の各構成要素(処理ブロック)とメモリとの間でのデータの受け渡しに係る消費電力の低減効果を十分に得ることができる。
【0172】
なお、上記に述べた実施形態においては、1バースト(4転送)、または1転送を、最適なパッキング方法を選択する単位として、選択したパッキング方法を表すパックデータ選択ビットを付加する場合について説明したが、最適なパッキング方法を選択する単位は、本発明を実施するための形態に限定されるものではない。例えば、それぞれの画素データを最適なパッキング方法を選択する単位とすることもできる。
【0173】
この場合の一例について説明する。図18は、本実施形態のデータ変換部によるパッキング処理をデータ(画素データ)毎に適用した場合の一例を説明する図である。なお、以下の説明においては、説明を容易にするため、図20に示したまた、ベイヤーデータ内の各画素データのビット数は8bitであり、メモリバス幅は32bitであるものとする。また、1転送内に3画素分の画素データをパッキングするものとする。
【0174】
図18では、それぞれのパックデータ内に配置された画素データ毎に異なるパッキング処理が適用されている場合を示している。より具体的には、各パックデータ内の「R」画素には、画素データの上位のビットと下位のビットとを並べ替えて配置する並べ替えの処理が適用され、当該「R」画素データの上位側のビットに、並べ替えを行ったか否かを表す並べ替え情報が付加されている場合を示している。また、各パックデータ内の「G」画素には、画素データの下位のビットに対して反転処理が適用され、当該「G」画素の上位側のビットに、反転処理を行ったか否かを表す反転ビットが付加されている場合を示している。そして、それぞれの画素データに対して、並べ替えの処理または反転処理のいずれの処理(パッキング処理)を行ったかを表す、パックデータ選択ビットが、それぞれの画素データのさらに上位側のビットに付加されている場合を示している。
【0175】
データ変換部とデータ逆変換部とは、パックデータ選択ビットが付加される固定位置(図18においては、メモリバスのビット[9]と、ビット[19]と、ビット[29])の情報を共有している。また、データ変換部とデータ逆変換部とは、並べ替えの処理または反転処理のいずれの処理を行ったかを表す、パックデータ選択ビットの値を共有している。これにより、データ逆変換部は、パックデータ選択ビットを確認することによって、データ変換部から出力されたパックデータ内の各画素データに適用されているパッキング処理を判定することができる。そして、データ逆変換部は、各画素データに適用されたパッキング処理と逆の方法で、それぞれのパックデータ内に配置された各画素データを、元の画素データに復元することができる。このような画素データ毎の元の画素データへの復元を繰り返して、1バースト分、すなわち、パッキング単位(4転送)分の元の画素データを復元する。
【0176】
なお、図18においては、並べ替えの処理または反転処理のいずれの処理を行ったかを、1bitのパックデータ選択ビットで表しているが、この状態においても、並べ替えの処理および反転処理のいずれの処理も行わないことを表すことができる。例えば、パックデータ選択ビットの値を、並べ替えの処理を表す値とするように予め決めておき、並べ替え情報を、並べ替えを行わないことを表す値とすることによって、並べ替えの処理が行われていない、すなわち、何も処理されていない画素データをパッキングすることができる。また、例えば、逆に、パックデータ選択ビットの値を、反転処理を表す値とするように予め決めておき、反転ビットを、反転処理を行わないことを表す値とすることによって、反転処理が行われていない、すなわち、何も処理されていない画素データをパッキングすることができる。
【0177】
また、上記に述べた実施形態においては、ベイヤーデータに本実施形態のパッキング方法を適用した場合について説明したが、本実施形態のパッキング方法は、ベイヤーデータへの適用に限定されるものではなく、RGBデータ、YC422点順次やYC444点順次フォーマットのYCbCrデータ、またはOSDデータなど、様々な画像データに適用することができる。また、本実施形態のパッキング方法は、画像データへの適用に限定されるものではなく、音声データなど、他の形式のデータに適用することもできる。
【0178】
また、本実施形態においては、4転送を1回のバースト転送の単位とし、1バーストをデータのパッキング単位とした場合について説明したが、1回のバースト転送における転送の回数や、データのパッキングの単位は、本発明を実施するための形態に限定されるものではない。例えば、64転送を1回のバースト転送の単位とし、1バースト内の16転送をデータのパッキングの単位とする、すなわち、1バースト内に4つのパッキング単位が含まれる構成にすることもできる。また、例えば、16転送をデータのパッキングの単位とし、8転送を1回のバースト転送の単位とする、すなわち、パッキング単位が2回のバースト転送に跨っている構成にすることもできる。
【0179】
また、本実施形態においては、撮像装置内の構成要素間でデータの受け渡しを行う場合のパッキング方法について、いくつかの例を説明したが、データをパッキングするためのパッキング方法は、本発明を実施するための形態に限定されるものではない。また、本実施形態のデータ変換部とデータ逆変換部との構成によるデータの受け渡しを適用することができる範囲は、本発明を実施するための形態に限定されるものではなく、各構成要素間でデータの受け渡しを行うシステムであれば、どのようなシステムにも適用することができる。
【0180】
また、本実施形態においては、例えば、データ変換部を出力DMA部の前段の処理ブロックとして配置し、データ逆変換部を入力DMA部の後段の処理ブロックとして配置した場合の一例について説明したが、データ変換部およびデータ逆変換部の配置は、本発明を実施するための形態に限定されるものではない。例えば、データ変換部を出力DMA部内の構成要素とすることや、データ逆変換部を入力DMA部内の構成要素とすることもできる。また、例えば、データ変換部を前段の撮像処理部内の構成要素とすることや、データ逆変換部を後段の画像処理部内の構成要素とすることもできる。
【0181】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【0182】
1・・・撮像装置(データ処理装置)
10・・・CPU(データ処理装置)
20・・・メモリ(データ処理装置)
30・・・CCD
40・・・撮像処理部
50・・・画像処理部
60・・・表示処理部
70・・・表示デバイス
41,51・・・データ変換部(データ処理装置)
411,411a,411b,411c,411d・・・パックデータ生成部(データ生成部)
412,412a,412b,412c,412d・・・D−FF(ビット変化数算出部)
413,413a,413b,413c,413d・・・バースト単位バッファ(第1のデータ選択部)
414,414a,414b,414c,414d・・・EXOR回路(ビット変化数算出部)
415,415a,415b,415c,415d・・・ビット加算部(ビット変化数算出部)
416,416a,416b,416c,416d・・・バースト単位累積部(ビット変化数比較部)
417・・・比較部(ビット変化数比較部)
418・・・選択部(第1のデータ選択部)
419・・・ビット結合部
52,62・・・データ逆変換部(データ処理装置)
521・・・ビット分離部
522,522a,522b,522c,522d・・・データ復元部(データ復元部)
523,523a,523b,523c,523d・・・データバッファ(第2のデータ選択部)
524・・・選択部(第2のデータ選択部)
45,55・・・出力DMA部
56,66・・・入力DMA部
43・・・データ変換部(データ処理装置)
431,431a,431b,431c,431d・・・パックデータ生成部(データ生成部)
432・・・D−FF(ビット変化数算出部)
437・・・比較部(ビット変化数比較部)
438・・・選択部(第1のデータ選択部)
439・・・ビット結合部
54・・・データ逆変換部(データ処理装置)
542,542a,542b,542c,542d・・・データ復元部(データ復元部)
【技術分野】
【0001】
本発明は、データ処理装置およびデータ処理方法に関する。
【背景技術】
【0002】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、撮像装置の画素数や速度の向上に伴って、膨大な画素のデータ(以下、「画素データ」という)が含まれる画像データを処理している。このような撮像装置においては、撮像装置内の各処理ブロックが撮影によって得られた画像データを処理する際に、データを一時的に記憶するメモリが利用されている。メモリには、各処理段階の画像データが一時記憶される。
【0003】
図19は、従来の撮像装置の概略構成を示したブロック図である。例えば、図19に示した撮像装置における撮影動作では、以下のような手順で画像データの処理が行われている。
(手順1):まず、撮像処理部が、例えば、CCD(Charge Coupled Device:電荷結合素子)型の固体撮像素子によって得られた画像データを、出力DMA(Direct Memory Access)部を介してメモリに転送して一時記憶する。
(手順2):続いて、画像処理部が、メモリに一時記憶している画像データを、入力DMA部を介して読み出す。そして、画像処理部は、読み出した画像データに対して記録用の画像処理や、表示用の画像処理を行う。その後、画像処理した後の画像データを、出力DMA部を介してメモリに転送して一時記憶する。
(手順3):続いて、表示処理部が、表示用の画像処理がされた画像データを、入力DMA部を介して読み出し、表示デバイスに表示させる。
【0004】
このように、撮像装置では、前段の処理ブロックが、画像データをメモリに一時記憶する。そして、後段の処理ブロックが、メモリに記録されている画像データを読み出して、次の処理を行う。このように、撮像装置内の各処理ブロックが、メモリを介して処理対象の画像データの受け渡しを行うことによって、撮像装置の全体の処理を順次行っている。
【0005】
近年、静止画用カメラ、動画用カメラなどの撮像装置においては、長い時間連続して使用できることが望まれており、撮像装置内の電気回路の消費電力を低減させる技術が必要とされている。撮像装置の消費電力を低減させるための1つの方法として、各処理ブロック(電気回路)とメモリとの間での画像データの転送速度を高速にする方法が挙げられる。画像データの転送速度の高速化は、例えば、撮像装置が動作するクロックの周波数を高くしたり、各処理ブロックとメモリ間の画像データの転送期間を短縮させたりすることによって実現することができる。これらの方法は、画像データの転送速度を高速にすることによって、画像データの転送に係る消費電力を低減させるものである。
【0006】
処理ブロックとメモリ間の画像データの転送期間を短縮させるための技術として、特許文献1に開示されているようなパッキングという技術が知られている。特許文献1で開示されたパッキング技術は、画像データ内の各画素データをメモリに転送する際に使用されるデータバスのバス幅を拡張し、隣接する複数の画素データをデータバスに配置(パッキング)することによって、複数の画素データを一度に転送するという技術である。この技術によって、全ての画素データを転送するために要するデータ転送の回数を、画素データを1画素毎に転送する以前のデータ転送に比べて少なくすることができ、画像データのデータ転送に係る期間を短縮することができる。例えば、図20に示したような、16行×16列のベイヤー配列のCCDから得られた画素データをメモリに転送する場合、特許文献1で開示されたパッキング技術では、4画素分の画素データを一度に転送する単位とすることによって、画像データの転送期間を1/4に短縮することができる。これにより、画素データを1画素ずつメモリに転送する場合に比べて、撮像装置内の電気回路の消費電力を低減させることができる。
【0007】
また、さらに画像データの転送期間を短縮する技術として、DMAのバースト転送を利用したパッキング方法が考えられる。これは、予め定められた一定のサイクル数でメモリにアクセスする単位である1バーストを、画素データをパッキングする単位として考える方法である。図21に画素データのパッキングの一例を示す。図21(a)は、特許文献1で開示されたパッキング方法で図20に示した画素データをパッキングした場合の一例を示し、図21(b)は、バーストの単位で図20に示した画素データをパッキングした場合の一例を示している。なお、図21では、画素データをメモリに転送する際に使用するデータバス(以下、「メモリバス」という)のバス幅(以下、「メモリバス幅」という)を32bitとし、バースト転送における1サイクル分のメモリアクセス(以下、「1転送」という)を4回、すなわち、4転送で1回のバースト転送を行う場合の例を示している。そして、図21(a)および図21(b)では、それぞれ上から順に、1画素の画素データの分解能、すなわち、画素データのビット数が、9bit、10bit、12bit、および14bitである場合の一例を示している。
【0008】
図21からわかるように、図21(a)に示した特許文献1で開示されたパッキング方法では、1転送あたり2画素分の画素データがメモリバスに配置され、1バーストあたり8画素分の画素データをメモリに転送することができる。これに対して図21(b)に示したバースト単位でのパッキング方法では、それぞれ、14画素分、12画素分、10画素分、および9画素分の画素データをメモリに転送することができる。これは、特許文献1で開示されたパッキング方法は、メモリバス幅、すなわち、1転送の単位で画素データを配置(パッキング)するため、配置する複数の画素データのビット数の合計がメモリバス幅を超えないようにする必要がある。このため、特許文献1で開示されたパッキング方法では、メモリバス幅内に画素データを割り当てることができないビット(以下、「未使用ビット」という)が多く存在してしまう。これに対し、バースト単位でのパッキング方法は、1バーストの単位で画素データを配置(パッキング)するため、図21(b)のように、配置する複数の画素データのビット数の合計がメモリバス幅を超えてしまう場合でも、1バーストを超えなければ次の転送に画素データを配置(パッキング)することができる。すなわち、バースト単位でのパッキング方法では、メモリバス幅が画素データの分解能の整数倍ではない場合においても、1転送の単位を跨いで画素データを配置(マッピング)することができるため、未使用ビットを少なくすることができるのである。このことにより、バースト単位でのパッキング方法は、特許文献1で開示されたパッキング方法よりも、同じ時間で多くの画素データをメモリに転送する、すなわち、画像データの転送期間を短縮することができ、撮像装置内の電気回路の消費電力を、さらに低減させることができる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2007−312358号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
一般的に、データの変化(データの“0”→“1”、もしくは“1”→“0”の変化(反転))が少ない方が、消費電力が少ないことが知られている。このため、撮像装置内の各処理ブロック(電気回路)とメモリとの間のメモリバス上のデータの変化を少なくすることによって、撮像装置の消費電力を低減させることも考えられる。図22は、撮像装置内の処理ブロックとメモリとの間のデータバス(メモリバス)上のデータの変化と消費電力との関係を説明する図である。図22(a)は、図19に示した撮像装置における撮像処理部とメモリとの間のメモリバスのバス幅が32bitである場合の一例を示している。そして、図22(b−1)〜(b−3)では、メモリバス上のデータの変化を模式的に示している。図22の一例においては、メモリバス上のデータの変化がない図22(b−1)の場合が、最も消費電力が少なく、メモリバス上のデータの変化が最も多い図22(b−3)の場合が、最も消費電力が多くなる。
【0011】
このことから、撮像装置内の各処理ブロックとメモリ間のバースト転送において、連続する2転送間の画素データ(例えば、図21に示した各バースト転送の1転送目と2転送目との画素データ)の変化が多いと、画像データの転送に係る消費電力も多くなってしまうことがわかる。すなわち、メモリバス上の同一ビットが2転送間で変化している個数(ビット数)に比例して、画像データの転送に係る消費電力が変化する。
【0012】
一般的に、画像データは、隣接する画素間でデータの変化量が小さく、隣接する画素のそれぞれの画素データの同一のビットで比較すると、値が反転しているビットの方が、値が反転していないビットよりも少ないことが予想される。ここで、図21に示した、特許文献1で開示されたパッキング方法と、バースト単位でのパッキング方法とを比較すると、図23に示したように、同一色の画素データで同一のビットが揃っている、特許文献1で開示されたパッキング方法の方が、画像データの転送に係る消費電力が少ないと考えられる。なお、図23は、図21に示した特許文献1で開示されたパッキング方法と、バースト単位でのパッキング方法とにおいて、1画素の画素データのビット数が9bitである場合を示している。
【0013】
より具体的には、図23(a)に示した特許文献1で開示されたパッキング方法では、範囲Aに示したメモリバスの最下位ビットは、全て同一色の画素データの同一ビット(最下位ビット)である。これに対して、図23(b)に示したバースト単位でのパッキング方法では、範囲Bに示したメモリバスの最下位ビットは、全て異なる色の画素データの異なるビットである。このことから、バースト単位で画像データをパッキングすることによって、メモリバス上に配置される画素データのビットの位置が、連続する2転送間で異なってしまうと、メモリバス上の同一ビットの変化量が多くなり、画像データの転送に係る消費電力を増加させてしまうことがわかる。
【0014】
すなわち、図23(a)に示した特許文献1で開示されたパッキング方法は、画像データの転送に係る消費電力が少ないが、データの転送効率が低い。また、図23(b)に示したバースト単位でのパッキング方法は、データの転送効率はよいが、画像データの転送に係る消費電力が多い。
【0015】
このように、バースト単位での画素データのパッキングでは、より多くの画素データをメモリバスに配置することによって、結果的に画素データの転送期間を短縮し、画像データの転送に係る消費電力を低減させることができるが、メモリバス上に配置される画素データのビットの位置が、連続する2転送間で異なっているため、画像データの転送に係る消費電力の低減効果を十分に得ることができていない、という問題がある。
【0016】
また、特許文献1で開示されたパッキング方法においては、例えば、図24に示したように、画素データをパッキングする1転送内に、3画素分の画素データを配置(パッキング)することができる。しかし、この場合には、例えば、範囲Cに示したメモリバスの最下位ビットが、画素データの同一ビット(最下位ビット)ではあるが、異なる色の画素データになってしまう。画素データは、色が異なるとその値が大きく異なる可能性が高く、特許文献1で開示されたパッキング方法でも、1転送内の画素データの配置によっては、画像データの転送に係る消費電力を低減できていないことになってしまう。
【0017】
このように、画像データの転送に係る消費電力を低減するためのパッキング方法には、様々な方法があるが、転送する画像データによっては、各パッキング方法における消費電力低減の効果に優劣が発生し、消費電力の低減効果を十分に得ることができない、という問題がある。
【0018】
本発明は、上記の課題認識に基づいてなされたものであり、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるデータ処理装置およびデータ処理方法を提供することを目的としている。
【課題を解決するための手段】
【0019】
上記の課題を解決するため、本発明のデータ処理装置は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、を備え、前記データ変換部は、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置した第1の変換データを生成する複数のデータ生成部と、複数の前記データ生成部のそれぞれに対応し、該データ生成部がn(nは1以上の自然数)回目に出力した前記第1の変換データ内の各ビットの値と、該データ生成部がn+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第1の変換データ毎に算出する複数のビット変化数算出部と、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第1の変換データを生成した前記データ生成部を選択し、該選択した前記データ生成部を表す選択情報を出力するビット変化数比較部と、前記選択情報に基づいて、それぞれの前記データ生成部から出力されたそれぞれの前記第1の変換データの内、いずれか1つの前記第1の変換データを選択し、該選択した前記第1の変換データを、選択データとして出力する第1のデータ選択部と、前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合部と、を具備する、ことを特徴とする。
【0020】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較した結果、前記ビット変化数の値が最も少ない前記第1の変換データを生成した前記データ生成部を選択する、ことを特徴とする。
【0021】
また、本発明の前記ビット変化数算出部のそれぞれは、前記第1のデータ選択部によって選択された前記選択データを、それぞれの前記データ生成部がn+1回目に出力した前記第1の変換データとして、前記ビット変化数を算出する、ことを特徴とする。
【0022】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を、前記変換単位毎にまとめて比較し、該比較した結果に基づいて前記変換単位での前記第1の変換データを生成した前記データ生成部を選択し、前記第1のデータ選択部は、前記選択情報に基づいて、それぞれの前記データ生成部から出力された前記変換単位のそれぞれの前記第1の変換データの内、いずれか1つの前記変換単位の前記第1の変換データを選択し、該選択した前記変換単位の前記第1の変換データを、前記変換単位の選択データとして出力し、前記ビット結合部は、前記変換単位の選択データを前記変換単位の転送データとして出力する際に、該変換単位の選択データに含まれる前記第1の変換データの内、前記入力データが配置されていない未使用ビットを含む前記第1の変換データの予め定められた前記未使用ビットの位置に、前記選択情報を結合した結合データを生成し、該変換単位の選択データに含まれる前記第1の変換データ、または前記結合データのいずれか1つのデータを、前記転送単位毎に順次出力する、ことを特徴とする。
【0023】
また、本発明の前記ビット変化数比較部は、それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を前記変換単位毎にまとめて比較した結果、前記変換単位内に含まれる全ての前記第1の変換データにおいて、まとめた前記ビット変化数の値が最も少ない前記変換単位での前記第1の変換データを生成した前記データ生成部を選択する、ことを特徴とする。
【0024】
また、本発明のデータ処理装置は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、を備え、前記データ逆変換部は、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置したそれぞれの第1の変換データを生成し、n(nは1以上の自然数)回目に生成した前記第1の変換データ内の各ビットの値と、n+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第1の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第1の変換データの中から選択したいずれか1つの前記第1の変換データと、いずれの前記第1の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第1の変換データとに分離するビット分離部と、前記転送データの転送元のデータ処理装置前記第1の変換データを生成する際の予め定められた配置方法のそれぞれに対応した、予め定められたそれぞれの復元方法に基づいて、前記第1の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第2の変換データを生成する複数のデータ復元部と、前記選択情報に基づいて、それぞれの前記データ復元部から出力されたそれぞれの前記第2の変換データの内、いずれか1つの前記第2の変換データを選択し、該選択した前記第2の変換データを、元の前記入力データとして出力する第2のデータ選択部と、を具備する、ことを特徴とする。
【0025】
また、本発明の前記ビット分離部は、前記入力された前記転送データを前記変換単位毎にまとめ、該変換単位の前記転送データの内、いずれかの前記転送データ内の予め定められたビットの位置に結合されている前記選択情報を分離し、前記第2のデータ選択部は、前記選択情報に基づいて、それぞれの前記データ復元部から出力された前記変換単位のそれぞれの前記第2の変換データの内、いずれか1つの前記変換単位の前記第2の変換データを選択し、該選択した前記変換単位の前記第2の変換データを、元の前記入力データとして順次出力する、ことを特徴とする。
【0026】
また、本発明のデータ処理方法は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、を含み、前記データ変換ステップは、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置した第1の変換データを生成する複数のデータ生成ステップと、複数の前記データ生成ステップのそれぞれに対応し、該データ生成ステップによってn(nは1以上の自然数)回目に出力した前記第1の変換データ内の各ビットの値と、該データ生成ステップによってn+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第1の変換データ毎に算出する複数のビット変化数算出ステップと、それぞれの前記データ生成ステップにおけるそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第1の変換データを生成した前記データ生成ステップを選択し、該選択した前記データ生成ステップを表す選択情報を出力するビット変化数比較ステップと、前記選択情報に基づいて、それぞれの前記データ生成ステップにおいて出力されたそれぞれの前記第1の変換データの内、いずれか1つの前記第1の変換データを選択し、該選択した前記第1の変換データを、選択データとして出力する第1のデータ選択ステップと、前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合ステップと、を含む、ことを特徴とする。
【0027】
また、本発明のデータ処理方法は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、を含み、前記データ逆変換ステップは、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置したそれぞれの第1の変換データを生成し、n(nは1以上の自然数)回目に生成した前記第1の変換データ内の各ビットの値と、n+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第1の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第1の変換データの中から選択したいずれか1つの前記第1の変換データと、いずれの前記第1の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第1の変換データとに分離するビット分離ステップと、前記転送データの転送元のデータ処理装置前記第1の変換データを生成する際の予め定められた配置方法のそれぞれに対応した、予め定められたそれぞれの復元方法に基づいて、前記第1の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第2の変換データを生成する複数のデータ復元ステップと、前記選択情報に基づいて、それぞれの前記データ復元ステップにおいて出力されたそれぞれの前記第2の変換データの内、いずれか1つの前記第2の変換データを選択し、該選択した前記第2の変換データを、元の前記入力データとして出力する第2のデータ選択ステップと、を含む、ことを特徴とする。
【発明の効果】
【0028】
本発明によれば、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるという効果が得られる。
【図面の簡単な説明】
【0029】
【図1】本発明の実施形態における撮像装置の概略構成を示したブロック図である。
【図2】本実施形態の撮像装置に備えた第1の構成のデータ変換部の概略構成を示したブロック図である。
【図3】本実施形態の撮像装置に備えた第1の構成のデータ逆変換部の概略構成を示したブロック図である。
【図4】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の一例を説明する図である。
【図5】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の別の一例を説明する図である。
【図6】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図7】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図8】本第1の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図9】本第1の構成のデータ変換部から出力する転送データを説明する図である。
【図10】本実施形態の撮像装置に備えた第2の構成のデータ変換部の概略構成を示したブロック図である。
【図11】本実施形態の撮像装置に備えた第2の構成のデータ逆変換部の概略構成を示したブロック図である。
【図12】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の一例を説明する図である。
【図13】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の別の一例を説明する図である。
【図14】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図15】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図16】本第2の構成のデータ変換部に備えたパックデータ生成部によるデータ配置方法の、さらに別の一例を説明する図である。
【図17】本第2の構成のデータ変換部から出力する転送データを説明する図である。
【図18】本実施形態のデータ変換部による処理をデータ毎に適用した場合の一例を説明する図である。
【図19】従来の撮像装置の概略構成を示したブロック図である。
【図20】画像データの配列の一例を示した図である。
【図21】従来のデータパッキングの一例を示した図である。
【図22】データバス上のデータの変化と消費電力との関係を説明する図である。
【図23】従来のデータパッキング方法におけるデータ配置の状態の一例を示した図である。
【図24】従来のデータパッキング方法におけるデータ配置の状態の別の一例を示した図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における撮像装置の概略構成を示したブロック図である。図1に示した撮像装置1は、CPU10と、メモリ20と、CCD30と、撮像処理部40と、画像処理部50と、表示処理部60と、表示デバイス70と、データ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66と、を備えている。なお、撮像装置1は、撮影した画像データを記録する機能も有しているが、説明を容易にするため、以下の説明においては、撮影した画像データを表示する場合について説明する。また、図1においては、撮像装置1内の各構成要素(処理ブロック)間での画素データの受け渡しに係るデータバスであるメモリバスの接続のみを示している。
【0031】
CPU10は、撮像装置1の全体の制御を行う制御装置である。
メモリ20は、撮像装置1内の各処理ブロックが処理する画素データを一時的に記憶する、例えば、DRAM(Dynamic Random Access Memory)などのメモリである。メモリ20には、撮像装置1内の各処理ブロックによる各処理段階の画素データが一時記憶される。
【0032】
CCD30は、入射した被写体光を画像信号に変換する、例えば、ベイヤー配列の固体撮像素子である。CCD30は、被写体の画素信号を撮像処理部40に出力する。
撮像処理部40は、CCD30から入力された画素信号に対して、予め定められた信号処理を行った画像データを生成する。
【0033】
画像処理部50は、撮像処理部40が生成した画像データに対して、撮像装置1における種々の画像処理を行った画像データを生成する。
表示処理部60は、画像処理部50によって画像処理された画像データを、表示デバイス70に応じた表示データに変換する。表示処理部60は、変換した表示データを表示デバイス70に出力する。
表示デバイス70は、表示データを表示する、例えば、液晶などの表示装置である。
【0034】
本実施形態の撮像装置1では、CCD30によって撮像された被写体の画素信号を、撮像処理部40、画像処理部50、表示処理部60が順次処理し、表示デバイス70に表示させる。このとき、各処理段階の画像データは、メモリ20を介して各処理ブロック間で受け渡される。撮像装置1内のデータ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66とは、各処理段階の画像データの受け渡しに係る処理ブロックである。
【0035】
データ変換部41および51は、前段の処理ブロック(図1に示した本実施形態においては、撮像処理部40または画像処理部50)から入力された画像データ内の各画素データを、予め定められた配置(パッキング)方法で、メモリバスの各ビットに配置する。データ変換部41および51の構成と、データ変換部41および51による画素データのパッキング方法に関する詳細な説明は、後述する。
【0036】
出力DMA部45および55は、データ変換部41または51によってメモリバスの各ビットにパッキングされた画素データからなる画像データを、DMAアクセスによってメモリ20に書き込む(記憶させる)。
入力DMA部56および66は、メモリ20に記憶されている画像データをDMAアクセスによって読み出し、読み出した画像データを、データ逆変換部52または62に出力する。
【0037】
データ逆変換部52および62は、入力DMA部56または66から入力された画像データに含まれる画素データを、予め定められた配置(パッキング)方法と逆の方法で元の画像データに戻し、後段の処理ブロック(図1に示した本実施形態においては、画像処理部50または表示処理部60)に出力する。データ逆変換部52および62の構成に関する詳細な説明は、後述する。
【0038】
ここで、図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に表示させる。
【0039】
なお、撮像装置1が撮影した画像データを記録する場合には、画像データの記録処理を行う図示しない記録処理部が、画像処理部50によって記録用の画像処理がされた画像データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した記録用の画像データをメモリカードなどの図示しない画像データ記録部に記録する。また、撮像装置1に、例えば、音を入出力する機能を備えている場合には、音声処理を行う図示しない音声処理部が、撮影時の音声データを、図示しないデータ変換部および出力DMA部を介してメモリ20に記憶する。また、音声処理部が、メモリ20に記憶している音声データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した音声データに応じた音声を、スピーカーなどの図示しない音出力部に出力させる。
【0040】
<第1の構成>
次に、撮像装置1内のデータ変換部について説明する。なお、上記に述べたように、データ変換部41とデータ変換部51とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ変換部41は、前段の撮像処理部40と後段の出力DMA部45との間に配置され、データ変換部51は、前段の撮画像処理部50と後段の出力DMA部55との間に配置されている。従って、データ変換部41とデータ変換部51とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ変換部41について説明する。
【0041】
図2は、本実施形態の撮像装置1に備えた本第1の構成のデータ変換部41の概略構成を示したブロック図である。図2に示したように、データ変換部41は、4つのパックデータ生成部411a〜411d(以下、パックデータ生成部411a〜411dのいずれか1つを表すときには「パックデータ生成部411」という)と、4つのD−FF412a〜412d(以下、D−FF412a〜412dのいずれか1つを表すときには「D−FF412」という)と、4つのバースト単位バッファ413a〜413d(以下、バースト単位バッファ413a〜413dのいずれか1つを表すときには「バースト単位バッファ413」という)と、4つのEXOR(排他的論理和)回路414a〜414d(以下、EXOR回路414a〜414dのいずれか1つを表すときには「EXOR回路414」という)と、4つのビット加算部415a〜415d(以下、ビット加算部415a〜415dのいずれか1つを表すときには「ビット加算部415」という)と、4つのバースト単位累積部416a〜416d(以下、バースト単位累積部416a〜416dのいずれか1つを表すときには「バースト単位累積部416」という)と、比較部417と、選択部418と、ビット結合部419と、を備えている。
【0042】
なお、以下の説明においては、データ変換部41に、図20に示したような、16行×16列のベイヤー配列の画像データ(以下、「ベイヤーデータ」という)が入力され、入力されたベイヤーデータ内の画素データを、予め定められたパッキング方法で、メモリバスに配置(パッキング)した転送データを出力する場合について説明する。なお、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバスのバス幅(メモリバス幅)は32bitであるものとする。そして、データ変換部41は、ベイヤーデータ内の各画素データをパッキングする単位を4転送とし、4転送を1回のバースト転送の単位とする、すなわち、1バーストを画素データのパッキング単位としてパッキングした32bitの転送データを出力するものとする。なお、図20に示したベイヤーデータでは、各画素データの数字がCCD30内の画素の位置を表しており、数字の前の「R」,「G」,「B」がCCD30内の画素の色を表している。より具体的には、「R」がCCD30の赤色の画素の画素データ、「G」がCCD30の緑色の画素の画素データ、「B」がCCD30の青色の画素の画素データを表している。
【0043】
データ変換部41は、撮像処理部40から順次入力された9bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitの転送データを出力する。そして、データ変換部41は、例えば、出力DMA部45から入力されるデータイネーブル信号に基づいて、生成した転送データを順次出力する。なお、データイネーブル信号は、出力DMA部45がバースト転送する際に何転送目の転送データを転送するかを表す情報を含んでいる信号である。
【0044】
データ変換部41が転送データを生成する際には、まず、入力された画素データを、予め定めた複数のパッキング方法でそれぞれパッキングした複数のパックデータを生成する。そして、データ変換部41は、生成したそれぞれのパックデータの内、1回のバースト転送においてメモリバス上のビット変化が最も少ないパックデータ(以下、「転送パックデータ」という)を選択する。その後、データ変換部41は、パックデータを選択したときの情報(パックデータ選択ビット)を、転送パックデータ内、すなわち、パッキング単位(4転送)内に存在する未使用ビットに付加して、最終的に出力する転送データとして出力する。
【0045】
パックデータ生成部411a〜411dは、それぞれ、入力された画素データの各ビットのデータを、予め定めたパッキング方法で、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに配置した、1バースト分、すなわち、パッキング単位(4転送)分のパックデータを生成する。そして、パックデータ生成部411a〜411dのそれぞれは、生成したパックデータを、1転送毎、すなわち、メモリバス幅のビット数(本第1の構成のデータ変換部41においては、32bit)毎に順次、対応するD−FF412a〜412dと対応するEXOR回路414a〜414dとに出力する。
【0046】
なお、以下の説明においては、パックデータ生成部411a〜411dのそれぞれが生成した1バースト分のパックデータを、それぞれ、パックデータA〜Dという。また、以下の説明においては、パックデータ生成部411a〜411dのそれぞれが出力するパックデータA〜Dの1転送毎のパックデータを、それぞれ、パックデータa〜dという。なお、パックデータ生成部411のそれぞれにおけるパッキング方法、およびパックデータの例に関する詳細な説明は、後述する。
【0047】
D−FF412a〜412dは、それぞれ、対応するパックデータ生成部411a〜411dから出力された32bitのパックデータa〜dを保持する。このD−FF412によって保持されたパックデータa〜dは、パックデータ生成部411が前回の1転送で出力したパックデータa〜d(以下、前回の1転送のパックデータa〜dを、「パックデータa(−1)〜d(−1)」という)として、対応するバースト単位バッファ413a〜413dと対応するEXOR回路414a〜414dとに出力される。
【0048】
バースト単位バッファ413a〜413dは、それぞれ、対応するD−FF412から入力された32bitのパックデータa(−1)〜d(−1)を、1バースト分、すなわち、パッキング単位(4転送)分保持する。バースト単位バッファ413のそれぞれが、対応するD−FF412を介して入力されたパックデータa〜dを、パッキング単位(4転送)分保持することによって、バースト単位バッファ413に、パックデータ生成部411のそれぞれが生成したパックデータA〜Dが保持されることになる。そして、バースト単位バッファ413a〜413dは、例えば、選択部418から入力される図示しない出力要求信号に基づいて、保持しているパックデータA〜Dを、1転送毎、すなわち、パックデータa〜d毎に順次、選択部418に出力する。なお、出力要求信号は、選択部418によって選択されたバースト単位バッファ413に保持されている32bitのパックデータa〜dを順次読み出す信号である。従って、出力要求信号は、選択部418によって選択されたバースト単位バッファ413a〜413dのいずれか1つのバースト単位バッファ413にのみ出力される。
【0049】
EXOR回路414a〜414dは、それぞれ、対応するパックデータ生成部411a〜411dから出力された32bitのパックデータa〜dと、対応するD−FF412a〜412dから出力された32bitのパックデータa(−1)〜d(−1)との2つのパックデータの各ビットの値を比較して、値が変化しているビットの有無を検出する。そして、EXOR回路414a〜414dのそれぞれは、値が変化しているビットであることを表す値=“1”、または値が変化しているビットではないことを示す値=“0”を、比較したそれぞれのビット毎に出力する。
【0050】
なお、EXOR回路414a〜414dのそれぞれは、D−FF412から入力されたパックデータa(−1)〜d(−1)を、同じパッキング単位(4転送)において、パックデータ生成部411a〜411dのそれぞれが出力した前回のパックデータa〜dとして、各ビットの値を比較する。すなわち、EXOR回路414a〜414dのそれぞれは、パックデータ生成部411a〜411dのそれぞれが出力した前回のパックデータa〜dと、今回のパックデータa〜dとの比較をビット毎に行う。
【0051】
より具体的には、EXOR回路414のそれぞれによる2つのパックデータの比較においては、パックデータ生成部411から出力されたパックデータa〜dの各ビットと、D−FF412から出力されたパックデータa(−1)〜d(−1)の各ビットとの排他的論理和がとられる。これにより、パックデータ生成部411から出力された今回のパックデータa〜dのビットの値と、パックデータ生成部411から出力された前回のパックデータa〜d(パックデータa(−1)〜d(−1))のビットの値とが同じ値のときに“0”が出力される。また、パックデータ生成部411から出力された今回のパックデータa〜dのビットの値と、パックデータ生成部411から出力された前回のパックデータa〜d(パックデータa(−1)〜d(−1))のビットの値とが異なる値のときに“1”が出力される。
【0052】
なお、パックデータ生成部411から出力された今回のパックデータa〜dが1転送目のパックデータa〜dである場合には、ビットの値が変化していないことを示す値=“0”を、全てのビットに出力する。
【0053】
ビット加算部415a〜415dは、それぞれ、対応するEXOR回路414a〜414dから入力された値が変化しているビットの数を計数し、値が変化しているビットの数の合計(以下、「ビット変化数」という)を算出する。そして、算出したビット変化数を、対応するバースト単位累積部416a〜416dのそれぞれに出力する。例えば、説明を容易にするため、EXOR回路414aが比較するそれぞれのパックデータが8bitであると仮定した場合について考える。EXOR回路414aから入力された、値が変化しているビットの値が、“1111_0000”である場合は、ビット加算部415aは、ビット変化数の値として“4”を出力する。このようにして、ビット加算部415a〜415dのそれぞれは、パックデータ生成部411a〜411dが出力した前回のパックデータa〜d(D−FF412から出力されたパックデータa(−1)〜d(−1))の値が、次にパックデータ生成部411a〜411dが出力した今回のパックデータa〜dの値に変化する際に、メモリバス上の各ビットの値が異なる値に変化するビットの数(ビット変化数)を出力する。
【0054】
バースト単位累積部416a〜416dは、それぞれ、対応するビット加算部415a〜415dから入力されたビット変化数を、1バースト分、すなわち、パッキング単位(4転送)分累積する。これにより、1回のバースト転送において、パックデータ生成部411a〜411dのそれぞれが出力するパックデータによるメモリバス上の各ビットの合計の変化数が算出される。そして、バースト単位累積部416a〜416dのそれぞれは、累積したビット変化数を、比較部417に出力する。
【0055】
比較部417は、バースト単位累積部416a〜416dのそれぞれから入力された累積されたビット変化数の内、ビット変化数が最も少ないものを判定し、最も少ないビット変化数を出力したバースト単位累積部416を特定(選択)する。そして、比較部417は、最も少ないビット変化数を出力したバースト単位累積部416を表す情報、すなわち、最もメモリバス上のビット変化が少ないパッキング方法を表す情報を、パックデータ選択ビットとして、選択部418とビット結合部419とに出力する。これにより、1回のバースト転送においてメモリバス上のビット変化が最も少ないパックデータが選択されることになる。
【0056】
なお、パックデータ選択ビットは、データ変換部41内に備えたパックデータ生成部411のそれぞれに対応した値が、予め定められており、データ変換部41に対応するデータ逆変換部52にも、共通の値が予め定められている。これにより、データ逆変換部52は、データ変換部41で選択されたパッキング方法を判別することができる。
【0057】
選択部418は、比較部417から入力されたパックデータ選択ビットに応じて、バースト単位バッファ413a〜413dの内、いずれか1つのバースト単位バッファ413を選択する。そして、例えば、選択したバースト単位バッファ413に対して図示しない出力要求信号を出力し、選択したバースト単位バッファ413から入力されたパックデータ(パックデータA〜Dの内、いずれか1つのパックデータ)を、転送パックデータとしてビット結合部419に出力する。なお、上述したように、出力要求信号は、選択したバースト単位バッファ413に保持されている32bitのパックデータを順次読み出す信号である。従って、選択部418は、選択したバースト単位バッファ413a〜413dのいずれか1つのバースト単位バッファ413にのみ、出力要求信号を出力する。
【0058】
ビット結合部419は、選択部418から入力された転送パックデータ内、すなわち、パッキング単位(4転送)内に存在する未使用ビットに、比較部417から入力されたパックデータ選択ビットを付加する。そして、ビット結合部419は、パックデータ選択ビットを付加した転送パックデータを、データ変換部41が最終的に出力する転送データとして、出力DMA部45に出力する。
【0059】
なお、ビット結合部419がパックデータ選択ビットを付加する転送パックデータ内の未使用ビットの位置は、パックデータ生成部411a〜411dが生成するパッキング単位(4転送)のパックデータA〜Dの全てで共通の未使用ビットの固定位置が予め定められている。また、データ変換部41に対応するデータ逆変換部52にも、パックデータA〜Dで共通の未使用ビットの固定位置と同じ位置が、パックデータ選択ビットが付加された未使用ビットの位置として、予め定められている。これにより、データ逆変換部52は、固定された位置に付加されているパックデータ選択ビットに基づいて、データ変換部41が出力した転送データを逆変換して、元の画素データに復元することができる。
【0060】
次に、撮像装置1内のデータ逆変換部について説明する。なお、上記に述べたように、データ逆変換部52とデータ逆変換部62とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ逆変換部52は、前段の入力DMA部56と後段の画像処理部50との間に配置され、データ逆変換部62は、前段の入力DMA部66と後段の表示処理部60との間に配置されている。従って、データ逆変換部52とデータ逆変換部62とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ逆変換部52について説明する。
【0061】
図3は、本実施形態の撮像装置1に備えた本第1の構成のデータ逆変換部52の概略構成を示したブロック図である。図3に示したように、データ逆変換部52は、ビット分離部521と、4つのデータ復元部522a〜522d(以下、データ復元部522a〜522dのいずれか1つを表すときには「データ復元部522」という)と、4つのデータバッファ523a〜523d(以下、データバッファ523a〜523dのいずれか1つを表すときには「データバッファ523」という)と、選択部524と、を備えている。
【0062】
なお、以下の説明においては、データ逆変換部52に、データ変換部41によってパッキングされた、4転送をパッキング単位とした1バーストの転送データが、入力DMA部56を介して入力され、入力された転送データを、図20に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとして説明する。
【0063】
データ逆変換部52は、入力DMA部56から入力された32bitの転送データの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した9bitの画素データに復元する。そして、データ逆変換部52は、例えば、画像処理部50から入力される図示しないデータイネーブル信号に基づいて、復元した元の画素データを順次出力する。なお、データイネーブル信号は、画像処理部50に出力するタイミングを表す信号である。
【0064】
また、データ逆変換部52には、上述したように、データ変換部41によってパックデータ選択ビットが付加された未使用ビットの位置と同じ固定位置が、予め定められている。そして、データ逆変換部52が画素データを復元する際には、まず、入力された32bitの転送データ(この転送データは、データ変換部41が生成した転送データと同等である)を、パックデータ選択ビットと、データ変換部41内のパックデータ生成部411が画素データをパッキングしたパックデータ(このパックデータは、データ変換部41内の選択部418によって選択された転送パックデータと同等であるため、以下の説明のいては、「転送パックデータ」として説明する)とに分離する。そして、データ逆変換部52は、転送パックデータを、データ変換部41によるパッキング方法と逆の方法で、順次分割(アンパッキング)し、画素データに相当するデータ(以下、「アンパックデータ」という)を生成する。その後、データ逆変換部52は、パックデータ選択ビットに基づいて、アンパックデータの中から、データ変換部41に入力された画素データと同等のアンパックデータを選択して、元の画素データとして出力する。
【0065】
ビット分離部521は、入力DMA部56から入力された転送データを、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットと、転送パックデータとに分離する。そして、ビット分離部521は、分離した転送パックデータを、データ復元部522に出力する。また、ビット分離部521は、分離したパックデータ選択ビットを、選択部524に出力する。なお、ビット分離部521は、パックデータ選択ビットが付加されていない転送データは、そのまま転送パックデータとして、データ復元部522に出力する。
【0066】
データ復元部522a〜522dは、それぞれ、パックデータ生成部411a〜411dに対応し、ビット分離部521から入力された転送パックデータを、予め定めたパッキング方法と逆の方法で、転送パックデータの各ビットに配置されたそれぞれのデータ(本第1の構成のデータ逆変換部52においては、9bitのデータ)に、順次分割(アンパッキング)した、1バースト分、すなわち、パッキング単位(4転送)分のアンパックデータを生成する。そして、データ復元部522a〜522dのそれぞれは、生成したアンパックデータを、1画素毎、すなわち、画素データのビット数(本第1の構成のデータ逆変換部52においては、9bit)毎に順次、対応するデータバッファ523a〜dに出力する。
【0067】
なお、以下の説明においては、データ復元部522a〜522dのそれぞれが出力する1画素毎のアンパックデータを、それぞれ、アンパックデータa〜dという。また、以下の説明においては、データ復元部522a〜522dのそれぞれが生成した1バースト分のアンパックデータを、それぞれ、アンパックデータA〜Dという。
【0068】
データバッファ523a〜523dは、それぞれ、対応するデータ復元部522から入力された9bitのアンパックデータa〜dを、1バースト分、すなわち、パッキング単位(4転送)分保持する。データバッファ523のそれぞれが、対応するデータ復元部522から入力されたアンパックデータa〜dを、パッキング単位(4転送)分保持することによって、データバッファ523に、データ復元部522のそれぞれが生成したアンパックデータA〜Dが保持されることになる。そして、データバッファ523a〜523dは、例えば、選択部524から入力される図示しない出力要求信号に基づいて、保持しているアンパックデータA〜Dを、1画素毎、すなわち、アンパックデータa〜d毎に順次、選択部524に出力する。なお、出力要求信号は、選択部524によって選択されたデータバッファ523に保持されている9bitのアンパックデータa〜dを順次読み出す信号である。従って、出力要求信号は、選択部524によって選択されたデータバッファ523a〜523dのいずれか1つのデータバッファ523にのみ出力される。
【0069】
選択部524は、ビット分離部521から入力されたパックデータ選択ビットに応じて、データバッファ523a〜523dの内、いずれか1つのデータバッファ523を選択する。そして、例えば、選択したデータバッファ523に対して図示しない出力要求信号を出力し、選択したデータバッファ523から入力されたアンパックデータ(アンパックデータA〜Dの内、いずれか1つのアンパックデータ)を、元の画素データとして、画像処理部50に出力する。なお、上述したように、出力要求信号は、選択したデータバッファ523に保持されている9bitのアンパックデータを順次読み出す信号である。従って、選択部524は、選択したデータバッファ523a〜523dのいずれか1つのデータバッファ523にのみ、出力要求信号を出力する。
【0070】
このようにして、データ逆変換部52は、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットに基づいて、データ変換部41が、予め定めた複数のパッキング方法の内、いずれのパッキング方法でパッキングしたパックデータを出力したのかを判別する。そして、データ逆変換部52は、データ変換部41が選択したパッキング方法と逆の方法で生成されたアンパックデータを、データ変換部41が出力した転送データを逆変換した元の画素データとして出力、すなわち、元の画素データに復元する。
【0071】
なお、上述したように、データ復元部522a〜522dは、それぞれ、パックデータ生成部411a〜411dに対応している。しかし、データ復元部522がそれぞれ生成するアンパックデータa〜dは、元の画素データと同等のデータではないこともある。これは、データ復元部522a〜522dのそれぞれが、アンパックデータa〜dを生成する時点では、入力された転送パックデータが、データ変換部41内のいずれのパックデータ生成部411によって生成されたパックデータ、すなわち、図2に示したパックデータA〜Dのいずれのパックデータであるかが不明であるためである。従って、データ復元部522a〜522dのそれぞれが生成したアンパックデータa〜dを、対応するデータバッファ523に一旦保持し、パックデータ選択ビットに基づいて選択したアンパックデータA〜Dのいずれか1つのアンパックデータを、データ逆変換部52が最終的に出力する画素データとして、画像処理部50に出力している。
【0072】
なお、データ逆変換部52は、上記に述べたように、入力DMA部56から転送データが入力される毎に、データ復元部522a〜522dのそれぞれが、入力された転送パックデータを順次分割(アンパッキング)することもできるが、データ逆変換部52内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitの転送データを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力DMA部56から入力された転送データをメモリ部に一旦保持し、保持した転送データを最初に、パックデータ選択ビットと転送パックデータとに分離し、その後、パックデータ選択ビットに基づいて、対応するデータ復元部522が、予め定めたパッキング方法と逆の方法で、転送パックデータの分割(アンパッキング)を行う。なお、この構成では、データバッファ523a〜523dと同様の機能を、ビット分離部521の前段に配置されたメモリ部が担うことになる。これにより、図3に示したデータ逆変換部52内のデータバッファ523a〜523dを削減することができる。
【0073】
ここで、パックデータ生成部411a〜dにおけるパックデータa〜dの生成方法、すなわち、予め定められた複数のパッキング方法(画素データの配置方法)の一例について説明する。本実施形態の撮像装置1では、データ変換部41内のパックデータ生成部411a〜dが入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部52内のデータ復元部522a〜522dが入力された転送パックデータを元の画素データに戻す。なお、以下の説明においては、パックデータ生成部411に、図20に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとする。
【0074】
なお、データ復元部522a〜dによる転送パックデータを元の画素データに戻す方法(アンパッキング方法)は、パックデータ生成部411a〜dによる画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
【0075】
<第1のデータ配置方法>
図4は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の一例(第1のパッキング方法)を説明する図である。図4には、本第1のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。
【0076】
本第1のパッキング方法では、パックデータ生成部411が、入力された画素データの各ビットのデータを、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。なお、本第1のパッキング方法は、従来のバースト単位でのパッキング方法と同様であるため、詳細な説明は省略する。
【0077】
図4では、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを示している。より具体的には、パックデータ生成部411が、1転送目に「R0」、「G1」、「R2」、および「G3」のビット[0]〜ビット[4]、2転送目に「G3」のビット[5]〜ビット[8]、「R4」、「G5」、「R6」、および「G7」のビット[0]、3転送目に「G7」のビット[1]〜ビット[8]、「R8」、「G9」、および「R10」のビット[0]〜ビット[5]、4転送目に「R10」のビット[6]〜ビット[8]、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)した場合を示している。
【0078】
<第2のデータ配置方法>
図5は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の別の一例(第2のパッキング方法)を説明する図である。図5(a)には、第1のパッキング方法、すなわち、従来のバースト単位でのパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図5(b)には、本第2のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【0079】
本第2のパッキング方法では、1バースト(4転送)分のパッキング単位を、画素データの連続する各ビットをそのままメモリバス上の連続する各ビットに配置するパック領域1(図5(b)においては、18bitの領域)と、画素データが配置されずに残っているメモリバス上のビットに画素データの各ビットを分割して配置するパック領域2(図5(b)においては、14bitの領域)とに分けて、メモリバス上の各ビットに画素データの各ビットを配置する。
【0080】
そして、本第2のパッキング方法では、パックデータ生成部411が、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、それぞれの画素データを配置する。また、パックデータ生成部411が、画素データが配置されずに残っているパックデータ内のパック領域2の連続する4転送間で、画素データがラスター順となるように、それぞれの画素データの各ビットを詰めて配置する。
【0081】
なお、パックデータ生成部411とデータ復元部522とには、同じパック領域1およびパック領域2が、予め定められており、それぞれの領域に配置する画素データの位置も予め定められている。これにより、データ復元部522は、パックデータ生成部411によってパッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0082】
図5(b)では、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを示している。より具体的には、パックデータ生成部411が、パック領域1の1転送目に「R0」および「G1」、2転送目に「R2」および「G3」、3転送目に「R4」および「G5」、4転送目に「R6」および「G7」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)した場合を示している。また、パックデータ生成部411が、パック領域2の1転送目に「R8」および「G9」のビット[0]〜ビット[4]、2転送目に「G9」のビット[5]〜ビット[8]、「R10」、および「G11」のビット[0]、3転送目に「G11」のビット[1]〜ビット[8]を、それぞれパック領域2のメモリバスの下位ビットから順次パッキングした場合を示している。
【0083】
<第3のデータ配置方法>
図6は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の、さらに別の一例(第3のパッキング方法)を説明する図である。図6(a)には、第1のパッキング方法、すなわち、従来のバースト単位でのパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図6(b)には、本第3のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【0084】
本第3のパッキング方法では、パックデータ生成部411が、まず、入力された画素データの各ビットのデータを、第1のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部411は、予め設定されたシフト基準位置に画素データの境界のビットが配置されるように、1転送毎に各ビットの画素データをビットシフトしたパックデータを最終的なパックデータにする。
【0085】
なお、シフト基準位置は、バースト転送する際の連続する2転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるような基準の位置に、予め設定されている。そして、それぞれのパックデータ内の画素データのビットの位置をシフト基準位置にシフトするための方向とシフト量とが、予め設定されている。これにより、メモリバス上の各ビットの変化が最も小さくするようにしている。
【0086】
なお、パックデータ生成部411とデータ復元部522とには、同じシフト基準位置が、予め定められており、それぞれのパックデータ内で画素データの各ビットをシフトする方向とシフト量とが予め定められている。これにより、データ復元部522は、パックデータ生成部411によってシフトされた方向と逆の方向に同じシフト量だけシフトすることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0087】
図6(a)に示したように、パックデータ生成部411は、まず、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部411が、1転送目に「R0」、「G1」、「R2」、および「G3」のビット[0]〜ビット[4]、2転送目に「G3」のビット[5]〜ビット[8]、「R4」、「G5」、「R6」、および「G7」のビット[0]、3転送目に「G7」のビット[1]〜ビット[8]、「R8」、「G9」、および「R10」のビット[0]〜ビット[5]、4転送目に「R10」のビット[6]〜ビット[8]、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
【0088】
続いて、パックデータ生成部411は、生成したバックデータの1転送毎に各ビットに配置された画素データをシフトする。図6(a)に示したパックデータの一例では、4転送目の「G11」のビット[8]と4転送目の未使用ビット最下位ビット(メモリバスのビット[12]との境界の位置にシフト基準位置が設定されている。パックデータ生成部411は、図6(a)内に示した矢印のように、それぞれのパックデータ内の各ビットをシフトして、図6(b)に示したようなパックデータを生成する。より具体的には、パックデータ生成部411は、1転送目のパックデータを右に6ビットシフトする。また、パックデータ生成部411は、2転送目のパックデータを右に10ビット、3転送目のパックデータを右に14ビット、それぞれシフトする。これにより、図6(b)に示したように、1転送目〜3転送目までのパックデータに含まれる緑色の画素データのビット[8]と赤色の画素データのビット[0]との境界の位置が、設定されたシフト基準位置になる。
【0089】
<第4のデータ配置方法>
図7は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の、さらに別の一例(第4のパッキング方法)を説明する図である。図7(a)には、本第4のパッキング方法において予め設定されている配置の組み合わせ(並べ替えケース)を示している。また、図7(b)には、本第4のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。なお、図7(a)に示した表中の「単位」に続く数字は、説明を容易にするために付与した、並べ替え単位(図7においては、1byteの単位)を識別する情報である。この数字は、パックデータの並べ替えを行わない場合(並べ替えケース1)において、下位の並べ替え単位(1byte)から順に付与された数字であり、配置変更の処理によって画素データの配置がどの並べ替え単位の位置に変更されたかを、識別するための情報である。
【0090】
本第4のパッキング方法では、パックデータ生成部411が、まず、入力された画素データの各ビットのデータを、第1のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部411は、予め定められた並べ替え単位(1byteの単位)毎に、連続する2転送間のパックデータ内の画素データをビット毎に比較し、予め定められた並べ替えケースの組み合わせの範囲内でパックデータ内の画素データの配置を並べ替えたバックデータを生成する。さらに、パックデータ内の画素データの配置を並べ替えたときの情報(図7(a)に示した並べ替え情報)を、画素データが配置されていない未使用ビットに付加して、最終的なパックデータにする。
【0091】
なお、パックデータ生成部411とデータ復元部522とには、同じ並べ替えケースが、予め定められている。これにより、データ復元部522は、パックデータ内に付加された並べ替え情報を確認することによって、パックデータ生成部411がパックデータ内の画素データの配置を並べ替えるときに採用された並べ替えケースを把握することができる。そして、データ復元部522が、パックデータ生成部411に採用された並べ替えケースと逆の配置、すなわち、元の画素データの配置に、パックデータ内の画素データの配置を並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0092】
本第4のパッキング方法によって、図7(b)に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する(図4参照)。
【0093】
続いて、パックデータ生成部411は、パックデータのメモリバス幅を、予め定められたビット数(図7においては、8bit:1byte)の並べ替え単位に区切る。そして、例えば、1転送目のパックデータの各ビットの値と、2転送目のパックデータの各ビットの値とを比較して、値が変化しているビットの数を並べ替え単位毎に算出する。そして、パックデータ生成部411は、算出した値が変化しているビットの数が最も少なくなる並べ替えの組み合わせ(並べ替えケース)を選択する。そして、選択した並べ替えケースの配置となるように、2転送目のパックデータ内の画素データの配置を並べ替え単位毎に並べ替えたパックデータを生成する。
【0094】
図7(b)に示したパックデータ内の各画素データの配置では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース2が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース4が選択された場合を示している。なお、3転送目のパックデータから4転送目のパックデータに替わるときには、4転送目のパックデータの未使用ビットに、各転送におけるパックデータ内の画素データの配置を並べ替えたときの並べ替え情報が付加(ビット結合)されるため、並べ替えを行わない並べ替えケース1が選択される。
【0095】
そして、パックデータ生成部411は、4転送目のパックデータの未使用ビット(図7においては、4転送目のパックデータのビット「12」〜ビット「17」)に選択した並べ替えケースに対応した並べ替え情報の値をビット結合する。より具体的には、4転送目のパックデータのビット「12」およびビット「13」に並べ替えケース2に対応した並べ替え情報(“01”)を、4転送目のパックデータのビット「14」およびビット「15」に並べ替えケース4に対応した並べ替え情報(“11”)を、4転送目のパックデータのビット「16」およびビット「17」に並べ替えケース1に対応した並べ替え情報(“00”)を、それぞれビット結合する。
【0096】
<第5のデータ配置方法>
図8は、本第1の構成のデータ変換部41に備えたパックデータ生成部411によるデータ配置方法の、さらに別の一例(第5のパッキング方法)を説明する図である。図8(a)は、入力された画素データの一例を示し、図8(b)は、本第5のパッキング方法において行われる反転処理を行った後の画素データの一例を示している。また、図8(c)には、本第5のパッキング方法によって反転処理された画素データが配置されたパックデータ内の画素データの配置を示している。
【0097】
本第5のパッキング方法では、パックデータ生成部411が、まず、入力された画素データの各ビットのデータを、第1のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部411は、1転送のパックデータ内に配置されたそれぞれの画素データを予め定めた上位のビットと下位のビットとに分ける。そして、画素データの下位のビットをまとめて反転処理し、それぞれの画素データの上位のビットと、反転処理した後のそれぞれの画素データの下位のビットとを結合して、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報(図8(b)に示した反転ビット)を、当該1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のパックデータにする。
【0098】
ここで、図8(a)および図8(b)を用いて、本第5のパッキング方法における反転処理について説明する。なお、以下の説明においては、説明を容易にするため、8bitの画素データが、上段から下段に向かって時系列的に順次入力される場合について説明する。パックデータ生成部411は、画素データが入力される毎に、下位の入力画素データの各ビットの値を順次比較する。より具体的には、図8(a)に示した入力画素データのそれぞれの段において、下位の入力画素データの各ビットの値を上段の下位の入力画素データの値と比較し、ビット変化数を算出する。これにより、図8(a)に示したような下位の入力画素データのビット変化数を得る。
【0099】
そして、パックデータ生成部411は、算出したビット変化数が下位の入力画素データの半数を超える場合に、当該下位の入力画素データをそれぞれのビット毎に反転(“1”を“0”、または“0”を“1”)したデータを、反転処理した下位の出力画素データとして生成する。そして、パックデータ生成部411は、上位の入力画素データと下位の出力画素データとを結合したデータを、最終的な出力画素データとする。また、パックデータ生成部411は、反転処理した出力画素データであることを表す反転ビット(図8(b)参照)を、最終的な出力画素データに付加する。図8(b)においては、出力画素データが、反転処理されたデータである場合に、反転ビットの値を“1”とし、反転処理されていないデータである場合に、反転ビットの値を“0”としている。このように反転処理することによって、本第5のパッキング方法では、メモリバス上の各ビットの変化を小さくしている。
【0100】
なお、パックデータ生成部411とデータ復元部522とは、反転ビットの値が意味する内容、すなわち、反転処理を行ったか否かの情報を共有している。これにより、データ復元部522は、反転ビットを確認することによって、パックデータ生成部411が反転処理を行ったか否かを判定することができる。そして、データ復元部522は、パックデータ生成部411によって反転処理が行われたデータ(より詳細には、下位の画素データ)を、反転処理することによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0101】
本第5のパッキング方法によって、図8(c)に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部411が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部411が、1転送目に「R0」、「G1」、および「R8」、2転送目に「R2」、「G3」、および「R10」、3転送目に「R4」、「G5」、および「G9」、4転送目に「R6」、「G7」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
【0102】
続いて、パックデータ生成部411は、それぞれの1転送毎のパックデータに配置された画素データの下位のビット(例えば、1転送目のパックデータにおいては、「R0」、「G1」、および「R8」のビット[0]〜ビット[3])をまとめて反転処理する。そして、画素データの下位のビットを反転処理したときの反転ビットを、各転送におけるパックデータ内の未使用ビット(図8(c)においては、メモリバスのビット[27])にビット結合する。
【0103】
次に、データ変換部41が出力する転送データについて説明する。図9は、本第1の構成のデータ変換部41から出力する転送データを説明する図である。上述したように、データ変換部41は、撮像処理部40から順次入力された9bitの画素データの各ビットのデータを、メモリバス上の各ビットに配置した32bitの転送データを、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて順次出力する。
【0104】
データ変換部41は、入力された画素データを、上述した第1のパッキング方法〜第5のパッキング方法の内、いずれか1つのパッキング方法で、1バースト分、すなわち、パッキング単位(4転送)分の画素データを配置(パッキング)したパックデータA〜Dを生成するパックデータ生成部411a〜411dを備えている。そして、比較部417は、メモリバス上のデータの変化が最も少ないパックデータを、転送パックデータとして選択し、転送パックデータとして選択されたパックデータを表す、パックデータ選択ビットを出力する。比較部417には、例えば、図9(a)に示したように、転送パックデータとして選択されたパックデータに対応したパックデータ選択ビットの値が、予め定められている。なお、図9(a)に示した転送パックデータとパックデータ選択ビットとの対応では、4つのパックデータ生成部411にそれぞれ対応したパックデータ選択ビットが予め設定しているため、パックデータ選択ビットのビット数は、2bitである。
【0105】
そして、ビット結合部419は、例えば、図9(b)に示したように、1バーストの転送データ内の予め定められた固定位置にパックデータ選択ビットを付加した転送パックデータを、データ変換部41が最終的に出力する転送データとして、それぞれのバースト毎に、出力DMA部45に出力する。図9(b)では、パックデータ選択ビットを付加する固定位置が、4転送目のパックデータの最上位ビットから2ビット(より具体的には、メモリバスのビット[31]とビット[30])とに、予め定められている場合を示している。また、図9(b)では、2バースト分の転送データを示している。
【0106】
データ変換部41とデータ逆変換部52とは、パックデータ選択ビットが付加される固定位置の情報を共有している。また、データ変換部41とデータ逆変換部52とは、図9(a)に示したような、選択されたパックデータとパックデータ選択ビットの値との対応、すなわち、パックデータ選択ビットの値が表す転送データのパッキング方法の情報を共有している。これにより、データ逆変換部52は、パックデータ選択ビットを確認することによって、データ変換部41から出力された転送データに適用されているパッキング方法を判定することができる。そして、データ逆変換部52は、転送データに適用されたパッキング方法と逆の方法で、転送パックデータの各ビットに配置されたそれぞれのデータが、順次分割(アンパッキング)された、1バースト分、すなわち、パッキング単位(4転送)分のアンパックデータを、元の画素データとして選択することができる。
【0107】
上記に述べたように、本第1の構成のデータ変換部41および51では、複数のパッキング方法によって生成されたそれぞれのパックデータの中から、バースト転送時におけるメモリバスの各ビットの変化量が最も少ないパックデータを選択して出力することができる。そして、選択されたパックデータ(パッキング方法)を表すパックデータ選択ビットを、転送データと共に出力する。これにより、本第1の構成のデータ変換部41および51では、転送する画素データに最適なパッキング方法を選択することによって、画像データの転送に係る消費電力の低減効果がより高いデータ転送を実現することができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
【0108】
<第2の構成>
次に、本第2の構成のデータ変換部について説明する。図10は、本実施形態の撮像装置1に備えた第2の構成のデータ変換部43の概略構成を示したブロック図である。図10に示したデータ変換部43は、第1の構成のデータ変換部41の代わりに、撮像装置1に備えられる。従って、データ変換部43は、データ変換部51の代わりに撮像装置1に備えることもできる。図10に示したように、データ変換部43は、4つのパックデータ生成部431a〜431d(以下、パックデータ生成部431a〜431dのいずれか1つを表すときには「パックデータ生成部431」という)と、D−FF432と、4つのEXOR(排他的論理和)回路414a〜414d(以下、EXOR回路414a〜414dのいずれか1つを表すときには「EXOR回路414」という)と、4つのビット加算部415a〜415d(以下、ビット加算部415a〜415dのいずれか1つを表すときには「ビット加算部415」という)と、比較部437と、選択部438と、ビット結合部439と、を備えている。
【0109】
本第2の構成のデータ変換部43は、図2に示した第1の構成のデータ変換部41内のパックデータ生成部411に代わって、パックデータ生成部431を備え、D−FF412に代わってD−FF432を備え、比較部417に代わって比較部437を備え、選択部418に代わって選択部438を備え、ビット結合部419に代わってビット結合部439を備えている。また、データ変換部41内のバースト単位バッファ413と、バースト単位累積部416とが削除されている。以下の説明においては、第1の構成のデータ変換部41内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【0110】
なお、以下の説明においては、第1の構成と同様に、データ変換部43に、図20に示したような、16行×16列のベイヤーデータが入力され、4転送をベイヤーデータ内の各画素データのパッキング単位とし、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitである場合について説明する。
【0111】
データ変換部43は、第1の構成のデータ変換部41と同様に、撮像処理部40から順次入力された9bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitの転送データを出力する。ただし、データ変換部43が転送データを生成する方法は、第1の構成のデータ変換部41と異なる。より具体的には、データ変換部41では、1バースト(4転送)分の転送パックデータの単位で、メモリバス上のビット変化が最も少ないパックデータを選択していたが、データ変換部43では、それぞれの1転送のパックデータ毎に、メモリバス上のビット変化が最も少ないパックデータを選択する。
【0112】
データ変換部43が転送データを生成する際には、まず、入力された画素データを、予め定めた複数のパッキング方法でそれぞれパッキングした複数のパックデータを生成する。そして、データ変換部43は、生成したそれぞれの1転送のパックデータの内、メモリバス上のビット変化が最も少ない1転送のパックデータ(以下、「転送単位パックデータ」という)を選択する。その後、データ変換部43は、パックデータを選択したときの情報(パックデータ選択ビット)を、転送単位パックデータ内、すなわち、1転送のパックデータ内に存在する未使用ビットに付加して、最終的に出力する転送データとして出力する。
【0113】
パックデータ生成部431a〜431dは、それぞれ、入力された画素データの各ビットのデータを、予め定めたパッキング方法で、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに配置した、メモリバス幅のビット数(本第2の構成のデータ変換部43においては、32bit)の1転送のパックデータを順次生成する。そして、パックデータ生成部431a〜431dのそれぞれは、生成した1転送のパックデータを、順次、選択部438と対応するEXOR回路414a〜414dとに出力する。
【0114】
なお、パックデータ生成部431a〜431dのそれぞれが生成した1転送のパックデータは、データ変換部41内のパックデータ生成部411がそれぞれ生成した、1バースト分のパックデータA〜Dの1転送毎のパックデータa〜dに相当する。従って、以下の説明においても、パックデータ生成部431a〜431dのそれぞれが生成した1転送のパックデータを、それぞれ、パックデータa〜dという。なお、パックデータ生成部431のそれぞれにおけるパッキング方法、およびパックデータの例に関する詳細な説明は、後述する。
【0115】
選択部438は、比較部437から入力されたパックデータ選択ビットに応じて、パックデータ生成部431a〜431dの内、いずれか1つのパックデータ生成部431を選択する。そして、選択したパックデータ生成部431から出力されたパックデータ(パックデータa〜dの内、いずれか1つのパックデータ)を、転送単位パックデータとしてビット結合部439に出力する。なお、選択部438内には、パックデータ生成部431a〜431dのそれぞれから入力されたパックデータa〜dをそれぞれ一時的に保持するメモリ部を備え、比較部437から入力されるパックデータ選択ビットとのタイミングの整合をとって、転送単位パックデータを選択する。
【0116】
D−FF432は、選択部438から出力された転送単位パックデータを保持する。このD−FF432によって保持された転送単位パックデータは、EXOR回路414a〜414dのそれぞれに出力される。なお、転送単位パックデータは、パックデータ生成部431が前回の1転送で出力したパックデータa〜dのいずれか1つのパックデータに相当する。
【0117】
EXOR回路414a〜414dは、それぞれ、対応するパックデータ生成部431a〜431dから出力された32bitのパックデータa〜dと、D−FF432から出力された32bitの転送単位パックデータとの2つのパックデータの各ビットの値をビット毎に比較する。そして、EXOR回路414a〜414dは、2つのパックデータのビットの値が同じ値のときに“0”を、2つのパックデータのビットの値が異なる値のときに“1”を、比較したそれぞれのビット毎に出力する。
【0118】
なお、EXOR回路414a〜414dのそれぞれは、D−FF432から入力された転送単位パックデータを、同じパッキング単位(4転送)において、パックデータ生成部431a〜431dのそれぞれが出力した前回のパックデータa〜dとして、各ビットの値を比較する。これにより、データ変換部43が出力した前回の転送単位パックデータが、パックデータ生成部431a〜431dのいずれのパックデータ生成部431によって生成されたパックデータであるかに関係なく、前回のパックデータと、今回のパックデータa〜dとの比較が行われる。
【0119】
なお、パックデータ生成部431から出力された今回のパックデータa〜dが1転送目のパックデータa〜dである場合には、ビットの値が変化していないことを示す値=“0”を、全てのビットに出力する。
【0120】
ビット加算部415a〜415dは、それぞれ、対応するEXOR回路414a〜414dから入力された値が変化しているビットの数を計数したビット変化数を算出する。これにより、パックデータ生成部431a〜431dのいずれか1つのパックデータ生成部431が出力した前回のパックデータ(D−FF432から出力された転送単位パックデータ)の値が、次にパックデータ生成部431a〜431dが出力した今回のパックデータa〜dの値に変化する際に、メモリバス上の各ビットの値が異なる値に変化するビットの数(ビット変化数)が、それぞれのパックデータ生成部431によって算出される。そして、ビット加算部415a〜415dのそれぞれは、算出したビット変化数を、比較部437に出力する。
【0121】
比較部437は、ビット加算部415a〜415dのそれぞれから入力されたビット変化数の内、ビット変化数が最も少ないものを判定し、最も少ないビット変化数を出力したビット加算部415を特定(選択)する。そして、比較部437は、最も少ないビット変化数を出力したビット加算部415を表す情報、すなわち、最もメモリバス上のビット変化が少ないパッキング方法を表す情報を、パックデータ選択ビットとして、選択部438とビット結合部439とに出力する。これにより、1転送のパックデータ(転送単位パックデータ)においてメモリバス上のビット変化が最も少ないパックデータが選択されることになる。
【0122】
なお、パックデータ選択ビットは、データ変換部43内に備えたパックデータ生成部431のそれぞれに対応した値が、予め定められており、データ変換部43に対応するデータ逆変換部にも、共通の値が予め定められている。これにより、データ変換部43に対応するデータ逆変換部は、データ変換部43で選択されたパッキング方法を判別することができる。
【0123】
ビット結合部439は、選択部438から入力された転送単位パックデータ内、すなわち、1転送のパックデータ内に存在する未使用ビットに、比較部437から入力されたパックデータ選択ビットを付加する。そして、ビット結合部439は、パックデータ選択ビットを付加した転送単位パックデータを、データ変換部43が最終的に出力する転送データとして、出力DMA部45に出力する。
【0124】
なお、ビット結合部439がパックデータ選択ビットを付加する転送単位パックデータ内の未使用ビットの位置は、パックデータ生成部431a〜431dが生成する1転送のパックデータa〜dの全てで共通の未使用ビットの固定位置が予め定められている。また、データ変換部43に対応するデータ逆変換部にも、パックデータa〜dで共通の未使用ビットの固定位置と同じ位置が、パックデータ選択ビットが付加された未使用ビットの位置として、予め定められている。これにより、データ変換部43に対応するデータ逆変換部は、固定された位置に付加されているパックデータ選択ビットに基づいて、データ変換部43が出力した転送データを逆変換して、元の画素データに復元することができる。
【0125】
次に、本第2の構成のデータ逆変換部について説明する。図11は、本実施形態の撮像装置1に備えた第2の構成のデータ逆変換部54の概略構成を示したブロック図である。図11に示したデータ逆変換部54は、第1の構成のデータ逆変換部52の代わりに、撮像装置1に備えられる。従って、データ逆変換部54は、データ逆変換部62の代わりに撮像装置1に備えることもできる。図11に示したように、データ逆変換部54は、ビット分離部521と、4つのデータ復元部542a〜542d(以下、データ復元部542a〜542dのいずれか1つを表すときには「データ復元部542」という)と、選択部524と、を備えている。
【0126】
本第2の構成のデータ逆変換部54は、図3に示した第1の構成のデータ逆変換部52内のデータ復元部522に代わって、データ復元部542を備え、データバッファ523が削除されている。以下の説明においては、第1の構成のデータ逆変換部52内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【0127】
なお、以下の説明においては、第1の構成と同様に、データ逆変換部54に、データ変換部43によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図20に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとして説明する。
【0128】
データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、入力DMA部56から入力された32bitの転送データの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した9bitの画素データに復元する。ただし、データ逆変換部54が元の画素データに復元する方法は、第1の構成のデータ逆変換部52と異なる。より具体的には、データ逆変換部52では、1バースト(4転送)分の転送パックデータのいずれかの固定位置に付加されていたパックデータ選択ビットに基づいて元の画素データに復元していたが、データ逆変換部54では、1転送のパックデータ毎に付加されているパックデータ選択ビットに基づいて、元の画素データに復元する。
【0129】
また、データ逆変換部54には、上述したように、データ変換部43によってパックデータ選択ビットが付加された未使用ビットの位置と同じ固定位置が、予め定められている。そして、データ逆変換部54が画素データを復元する際には、1転送毎に入力された32bitの転送データ(この転送データは、データ変換部43が生成した転送データと同等である)を、パックデータ選択ビットと、データ変換部43内のパックデータ生成部431が画素データをパッキングしたパックデータ(このパックデータは、データ変換部43内の選択部438によって選択された転送単位パックデータと同等であるため、以下の説明のいては、「転送単位パックデータ」として説明する)とに、順次分離する。そして、データ逆変換部54は、1転送毎の転送単位パックデータを、データ変換部43によるパッキング方法と逆の方法で、順次分割(アンパッキング)し、画素データに相当するアンパックデータを順次生成する。その後、データ逆変換部54は、パックデータ選択ビットに基づいて、アンパックデータの中から、データ変換部43に入力された画素データと同等のアンパックデータを1転送毎に選択して、元の画素データとして順次出力する。
【0130】
ビット分離部521は、入力DMA部56から入力された転送データを、1転送毎に順次、転送データ内の予め定められた固定位置に付加されているパックデータ選択ビットと、転送単位パックデータとに分離する。そして、ビット分離部521は、分離した転送単位パックデータを、データ復元部542に1転送毎に順次出力する。また、ビット分離部521は、分離したパックデータ選択ビットを、選択部524に1転送毎に順次出力する。
【0131】
データ復元部542a〜542dは、それぞれ、パックデータ生成部431a〜431dに対応し、ビット分離部521から入力された転送単位パックデータを、予め定めたパッキング方法と逆の方法で、転送単位パックデータの各ビットに配置されたそれぞれのデータ(本第2の構成のデータ逆変換部54においては、9bitのデータ)に、順次分割(アンパッキング)した、1転送分のアンパックデータを生成する。そして、データ復元部542a〜542dのそれぞれは、生成したアンパックデータを、1画素毎、すなわち、画素データのビット数(本第2の構成のデータ逆変換部54においては、9bit)毎に順次、選択部524に出力する。
【0132】
なお、データ復元部542a〜542dのそれぞれが生成した1画素毎のアンパックデータは、データ逆変換部52内のデータ復元部522がそれぞれ生成した、1画素毎のアンパックデータa〜dに相当する。従って、以下の説明においても、データ復元部542a〜542dのそれぞれが出力する1画素毎のアンパックデータを、それぞれ、アンパックデータa〜dという。
【0133】
選択部524は、ビット分離部521から入力されたパックデータ選択ビットに応じて、データ復元部542a〜542dの内、いずれか1つのデータ復元部542を選択する。そして、選択したデータ復元部542から入力されたアンパックデータ(アンパックデータa〜dの内、いずれか1つのアンパックデータ)を、元の画素データとして、順次、画像処理部50に出力する。なお、選択部524内には、データ復元部542a〜542dのそれぞれから入力されたアンパックデータa〜dをそれぞれ一時的に保持するメモリ部を備え、ビット分離部521から入力されるパックデータ選択ビットとのタイミングの整合をとって、元の画素データを選択する。
【0134】
このようにして、データ逆変換部54は、それぞれの転送データの予め定められた固定位置に付加されているパックデータ選択ビットに基づいて、データ変換部43が、予め定めた複数のパッキング方法の内、いずれのパッキング方法でパッキングしたパックデータを出力したのかを判別する。そして、データ逆変換部54は、データ変換部43が選択したパッキング方法と逆の方法で生成されたアンパックデータを、データ変換部43が出力した転送データを逆変換した元の画素データとして出力、すなわち、元の画素データに復元する。
【0135】
なお、上述したように、データ復元部542a〜542dは、それぞれ、パックデータ生成部431a〜431dに対応している。しかし、データ復元部542がそれぞれ生成するアンパックデータa〜dは、元の画素データと同等のデータではないこともある。これは、第1の構成のデータ逆変換部52と同様に、データ復元部542a〜542dのそれぞれが、アンパックデータa〜dを生成する時点では、入力された転送単位パックデータが、データ変換部43内のいずれのパックデータ生成部431によって生成されたパックデータ、すなわち、図10に示したパックデータa〜dのいずれのパックデータであるかが不明であるためである。従って、データ復元部542a〜542dのそれぞれが生成したアンパックデータa〜dを、パックデータ選択ビットに基づいて選択したアンパックデータa〜dのいずれか1つのアンパックデータを、データ逆変換部54が最終的に出力する画素データとして、画像処理部50に出力している。
【0136】
ここで、パックデータ生成部431a〜dにおけるパックデータa〜dの生成方法、すなわち、予め定められた複数のパッキング方法(画素データの配置方法)の一例について説明する。本実施形態の撮像装置1では、データ変換部43内のパックデータ生成部431a〜dが入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部54内のデータ復元部542a〜542dが入力された転送単位パックデータを元の画素データに戻す。なお、以下の説明においては、パックデータ生成部431に、図20に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は9bitであり、メモリバス幅は32bitであるものとする。
【0137】
なお、データ復元部542a〜dによる転送単位パックデータを元の画素データに戻す方法(アンパッキング方法)は、パックデータ生成部431a〜dによる画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
【0138】
<第6のデータ配置方法>
図12は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の一例(第6のパッキング方法)を説明する図である。図12には、本第6のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。
【0139】
本第6のパッキング方法では、パックデータ生成部431が、入力された画素データの各ビットのデータを、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。なお、本第6のパッキング方法は、従来のパッキング方法と同様であるため、詳細な説明は省略する。
【0140】
図12では、パックデータ生成部431が、1転送内に3画素分の画素データをパッキングし、ベイヤーデータ内の各画素データを、1バースト(4転送)で12画素分の画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)を転送する場合のパックデータを示している。より具体的には、パックデータ生成部431が、1転送目に「R0」、「G1」、および「R2」、2転送目に「G3」、「R4」、および「G5」、3転送目に「R6」、「G7」、および「R8」、4転送目に「G9」、「R10」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)した場合を示している。
【0141】
なお、本第6のパッキング方法においては、1転送分のパックデータ内に画素データの全てのビットを配置することができない場合には、次の画素データのパッキングをしない。これは、本第6のパッキング方法では、1転送をパッキング単位として各画素データをパッキングするため、次の画素データをパッキングすると、画素データがパッキング単位を跨いでしまうことになるためである。従って、画素データが配置されなかったメモリバスのビット(図12においては、各転送のメモリバスのビット[31]〜ビット[27])は、未使用ビットとする。
【0142】
<第7のデータ配置方法>
図13は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の別の一例(第7のパッキング方法)を説明する図である。図13(a)には、第6のパッキング方法、すなわち、従来のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図13(b)には、本第7のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【0143】
本第7のパッキング方法では、1バースト(4転送)分のパッキング単位を、パック領域1(図13(b)においては、18bitの領域)と、パック領域2(図5(b)においては、14bitの領域)とに分けて、メモリバス上の各ビットに画素データの各ビットを配置する。そして、本第7のパッキング方法では、パックデータ生成部431が、パックデータ内のパック領域1の連続する2転送間のデータにおいて、隣接する同一色の画素データが、メモリバス上の同一ビットに配置されるように、それぞれの1転送内に配置される画素データの位置を変更する。また、パックデータ生成部431は、画素データが配置されずに残っているパックデータ内のパック領域2に、それぞれの1転送内でパック領域1に配置されなかった画素データを配置する。
【0144】
なお、パックデータ生成部431とデータ復元部542とには、同じパック領域1およびパック領域2が、予め定められており、それぞれの領域に配置する画素データの位置も予め定められている。これにより、データ復元部542は、パックデータ生成部431によってパッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0145】
図13(b)では、パックデータ生成部431が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを示している。より具体的には、パックデータ生成部431が、1転送目に「R0」、「G1」、および「R2」、2転送目に「R4」、「G3」、および「G5」、3転送目に「R6」、「G7」、および「R8」、4転送目に「R10」、「G9」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)した場合を示している。
【0146】
<第8のデータ配置方法>
図14は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の、さらに別の一例(第8のパッキング方法)を説明する図である。図14(a)には、第6のパッキング方法、すなわち、従来のパッキング方法によって生成されたパックデータ内の画素データの配置を示している。また、図14(b)には、本第8のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。
【0147】
本第8のパッキング方法では、パックデータ生成部431が、まず、入力された画素データの各ビットのデータを、第6のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部431は、予め設定された並べ替え基準位置に画素データの境界のビットが配置されるように、同じ1転送のパックデータ内に配置された画素データの配置を並べ替える。そして、画素データの配置を並べ替えたパックデータを最終的な1転送のパックデータにする。
【0148】
なお、並べ替え基準位置は、バースト転送する際の連続する2転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるような基準のビットの位置に、予め設定されている。そして、それぞれのパックデータ内の画素データの位置を並べ替え基準位置にするための並べ替え方法が、1転送毎に予め設定されている。これにより、メモリバス上の各ビットの変化が最も小さくするようにしている。
【0149】
なお、パックデータ生成部431とデータ復元部542とには、同じ並べ替え基準位置が、予め定められており、それぞれのパックデータ内で画素データの並べ替え方法が予め定められている。これにより、データ復元部542は、パックデータ生成部431が並べ替えられた方法と逆の方法で並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0150】
図14(a)に示したように、パックデータ生成部431は、まず、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部431が、1転送目に「R0」、「G1」、および「R2」、2転送目に「G3」、「R4」、および「G5」、3転送目に「R6」、「G7」、および「R8」、4転送目に「G9」、「R10」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
【0151】
続いて、パックデータ生成部431は、生成したバックデータの1転送毎のパックデータ内に配置された画素データを並べ替える。図14(a)に示したパックデータの一例では、メモリバスのビット[17]とビット[18]との境界の位置に並べ替え基準位置が設定されている。パックデータ生成部431は、図14(a)内に示した矢印のように、それぞれの1転送のパックデータ内の画素データの配置を並べ替えて、図14(b)に示したような、それぞれの1転送のパックデータを生成する。より具体的には、パックデータ生成部431は、1転送目のパックデータ内の「G1」と「R2」とを並べ替える。また、パックデータ生成部431は、2転送目のパックデータ内の「R4」と「G5」、3転送目のパックデータ内の「G7」と「R8」、4転送目のパックデータ内の「R10」と「G11」とを、それぞれ並べ替える。これにより、図14(b)に示したように、1転送目〜4転送目までのパックデータに含まれる各画素データの配置が、並べ替えられる。
【0152】
<第9のデータ配置方法>
図15は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の、さらに別の一例(第9のパッキング方法)を説明する図である。図15(a)には、本第9のパッキング方法において予め設定されている配置の組み合わせ(並べ替えケース)を示している。また、図15(b)には、本第9のパッキング方法によって画素データの配置が変更されたパックデータ内の画素データの配置を示している。なお、図15(a)に示した表中の「単位」に続く数字は、説明を容易にするために付与した、並べ替え単位(図15においては、1byteの単位)を識別する情報である。この数字は、パックデータの並べ替えを行わない場合(並べ替えケース1)において、下位の並べ替え単位(1byte)から順に付与された数字であり、配置変更の処理によって画素データの配置がどの並べ替え単位の位置に変更されたかを、識別するための情報である。
【0153】
本第9のパッキング方法では、パックデータ生成部431が、まず、入力された画素データの各ビットのデータを、第6のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部431は、予め定められた並べ替え単位(1byteの単位)毎に、連続する2転送間のパックデータ内の画素データをビット毎に比較し、予め定められた並べ替えケースの組み合わせの範囲内でパックデータ内の画素データの配置を並べ替えたバックデータを生成する。さらに、パックデータ内の画素データの配置を並べ替えたときの情報(図15(a)に示した並べ替え情報)を、それぞれの1転送のパックデータ内で画素データが配置されていない未使用ビットに付加して、最終的な1転送のパックデータにする。
【0154】
なお、パックデータ生成部431とデータ復元部542とには、同じ並べ替えケースが、予め定められている。これにより、データ復元部542は、1転送毎のパックデータ内に付加された並べ替え情報を確認することによって、パックデータ生成部431がパックデータ内の画素データの配置を並べ替えるときに採用された並べ替えケースを把握することができる。そして、データ復元部542が、パックデータ生成部431に採用された並べ替えケースと逆の配置、すなわち、元の画素データの配置に、パックデータ内の画素データの配置を並べ替えることによって、パッキングされたそれぞれの画素データを、元の画素データに復元することができる。
【0155】
本第9のパッキング方法によって、図15(b)に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部431が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する(図12参照)。
【0156】
続いて、パックデータ生成部431は、パックデータのメモリバス幅を、予め定められたビット数(図15においては、8bit:1byte)の並べ替え単位に区切る。そして、例えば、1転送目のパックデータの各ビットの値と、2転送目のパックデータの各ビットの値とを比較して、値が変化しているビットの数を並べ替え単位毎に算出する。そして、パックデータ生成部431は、算出した値が変化しているビットの数が最も少なくなる並べ替えの組み合わせ(並べ替えケース)を選択する。そして、選択した並べ替えケースの配置となるように、2転送目のパックデータ内の画素データの配置を並べ替え単位毎に並べ替えたパックデータを生成する。
【0157】
図15(b)に示したパックデータ内の各画素データの配置では、1転送目のパックデータを基準のパックデータにする。従って、1転送目のパックデータは、並べ替えを行わないため、並べ替えケース1が選択される。そして、パックデータ生成部431は、1転送目のパックデータの未使用ビット(図15(b)においては、ビット「27」〜ビット「31」)に、選択した並べ替えケース1に対応した並べ替え情報の値を付加(ビット結合)する。図15(b)においては、1転送目のパックデータのビット「27」とビット「28」とに、並べ替えケース1に対応した並べ替え情報の値(“00”)がビット結合された場合を示している。そして、パックデータ生成部431は、並べ替え情報を付加した1転送目のパックデータを、最終的な1転送目のパックデータとして出力する。
【0158】
また、図15(b)に示したパックデータ内の各画素データの配置では、1転送目のパックデータから2転送目のパックデータに替わるときに並べ替えケース2が選択され、2転送目のパックデータから3転送目のパックデータに替わるときに並べ替えケース3が選択され、3転送目のパックデータから4転送目のパックデータに替わるときに並べ替えケース4が選択された場合を示している。そして、図15(b)においては、2転送目のパックデータの未使用ビットに並べ替えケース2に対応した並べ替え情報の値(“01”)が、3転送目のパックデータの未使用ビットに並べ替えケース3に対応した並べ替え情報の値(“10”)が、4転送目のパックデータの未使用ビットに並べ替えケース4に対応した並べ替え情報の値(“11”)が、それぞれビット結合された場合を示している。そして、パックデータ生成部431は、並べ替え情報を付加した2転送目〜4転送目のパックデータを、最終的な2転送目〜4転送目のパックデータとして、順次出力する。
【0159】
<第10のデータ配置方法>
図16は、本第2の構成のデータ変換部43に備えたパックデータ生成部431によるデータ配置方法の、さらに別の一例(第10のパッキング方法)を説明する図である。図16には、本第10のパッキング方法によって反転処理された画素データが配置されたパックデータ内の画素データの配置を示している。なお、本第10のパッキング方法における反転処理は、図8(a)および図8(b)を用いて説明した第5のパッキング方法における反転処理と同様の考え方であるため、詳細な説明は省略する。
【0160】
本第10のパッキング方法では、パックデータ生成部431が、まず、入力された画素データの各ビットのデータを、第6のパッキング方法と同様に、メモリバスの各ビットに順次配置した、メモリバス幅のビット数のパックデータを生成する。そして、パックデータ生成部431は、第5のパッキング方法と同様に、1転送のパックデータ内に配置されたそれぞれの画素データを予め定めた上位のビットと下位のビットとに分け、1転送のパックデータ内に配置されたそれぞれの画素データの下位のビットをまとめて反転処理する。そして、パックデータ生成部431は、それぞれの画素データの上位のビットと、反転処理した後のそれぞれの画素データの下位のビットとを分けて、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報である反転ビットを、それぞれの1転送のパックデータ内で画素データが配置されていない未使用ビットに付加して、最終的な1転送のパックデータにする。
【0161】
なお、パックデータ生成部431とデータ復元部542とは、反転ビットの値が意味する内容、すなわち、反転処理を行ったか否かの情報を共有している。また、1転送のパックデータ内に分けて配置された画素データの上位ビットと下位のビットとの配置位置も予め定められている。これにより、データ復元部542は、反転ビットを確認することによって、パックデータ生成部431が反転処理を行ったか否かを判定することができる。そして、データ復元部542は、パックデータ生成部431によって反転処理が行われたデータ(より詳細には、下位の画素データ)を、反転処理することによって、画素データの下位のビットを元に戻すことができる。その後、画素データの上位のビットと元に戻した画素データの下位のビットを結合することによって、1転送のパックデータ内に配置されたそれぞれの画素データを、元の画素データに復元することができる。
【0162】
本第10のパッキング方法によって、図16に示したような最終的なパックデータを生成する際には、まず、パックデータ生成部431が、ベイヤーデータ内の各画素データ(「R0」,「G1」,「R2」,「G3」,「R4」,「G5」,「R6」,「G7」,「R8」,「G9」,「R10」,「G11」)をパッキングしたパックデータを生成する。より具体的には、パックデータ生成部431が、1転送目に「R0」、「G1」、および「R8」、2転送目に「R2」、「G3」、および「R10」、3転送目に「R4」、「G5」、および「G9」、4転送目に「R6」、「G7」、および「G11」を、それぞれメモリバスの最下位ビットから順次配置(パッキング)する。
【0163】
続いて、パックデータ生成部431は、それぞれの1転送毎のパックデータに配置された画素データの下位のビット(例えば、1転送目のパックデータにおいては、「R0」、「G1」、および「R8」のビット[0]〜ビット[3])をまとめて反転処理する。そして、パックデータ生成部431は、それぞれの1転送毎のパックデータに配置された画素データの上位のビット(例えば、1転送目のパックデータにおいては、「R0」、「G1」、および「R8」のビット[4]〜ビット[8])を、各転送におけるパックデータの最下位ビットから順次パッキングする。さらに、反転処理した後の画素データの下位のビットを、各転送のパックデータ内に配置した画素データの上位のビットに続いて順次パッキングする。そして、画素データの下位のビットを反転処理したときの反転ビットを、各転送におけるパックデータ内の未使用ビット(図16(b)においては、メモリバスのビット[27])にビット結合する。
【0164】
次に、データ変換部43が出力する転送データについて説明する。図17は、本第2の構成のデータ変換部43から出力する転送データを説明する図である。上述したように、データ変換部43は、撮像処理部40から順次入力された9bitの画素データの各ビットのデータを、メモリバス上の各ビットに配置した32bitの転送データを、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて順次出力する。
【0165】
データ変換部43は、入力された画素データを、上述した第6のパッキング方法〜第10のパッキング方法の内、いずれか1つのパッキング方法で、画素データを配置(パッキング)したパックデータa〜dを生成するパックデータ生成部431a〜431dを備えている。そして、比較部437は、メモリバス上のデータの変化が最も少ないパックデータを、転送単位パックデータとして選択し、転送単位パックデータとして選択されたパックデータを表す、パックデータ選択ビットを出力する。比較部437には、例えば、図17(a)に示したように、転送単位パックデータとして選択されたパックデータに対応したパックデータ選択ビットの値が、予め定められている。なお、図17(a)に示した転送単位パックデータとパックデータ選択ビットとの対応では、4つのパックデータ生成部431にそれぞれ対応したパックデータ選択ビットが予め設定しているため、パックデータ選択ビットのビット数は、2bitである。
【0166】
そして、ビット結合部439は、例えば、図17(b)に示したように、1転送の転送単位パックデータ内の予め定められた固定位置にパックデータ選択ビットを付加した転送単位パックデータを、データ変換部43が最終的に出力する1転送の転送データとして、それぞれの転送毎に、出力DMA部45に出力する。図17(b)では、パックデータ選択ビットを付加する固定位置が、各転送のパックデータの最上位ビットから2ビット(より具体的には、メモリバスのビット[31]とビット[30])とに、予め定められている場合を示している。また、図17(b)では、3転送分の転送データを示している。
【0167】
データ変換部43とデータ逆変換部54とは、パックデータ選択ビットが付加される固定位置の情報を共有している。また、データ変換部43とデータ逆変換部54とは、図17(a)に示したような、選択されたパックデータとパックデータ選択ビットの値との対応、すなわち、パックデータ選択ビットの値が表す1転送毎の転送データのパッキング方法の情報を共有している。これにより、データ逆変換部54は、パックデータ選択ビットを確認することによって、データ変換部43から出力された各転送の転送データに適用されているパッキング方法を判定することができる。そして、データ逆変換部54は、1転送の転送データに適用されたパッキング方法と逆の方法で、転送単位パックデータの各ビットに配置されたそれぞれのデータが、順次分割(アンパッキング)された、1転送分のアンパックデータを、元の画素データとして選択することができる。このような1転送毎の元の画素データの復元を繰り返して、1バースト分、すなわち、パッキング単位(4転送)分の元の画素データを復元する。
【0168】
なお、本第2の構成のデータ変換部43では、1バースト(4転送)分の転送データにおいて、最初(1転送目)の転送データ(例えば、図17(b)に示した1転送目の転送データ)を基準の転送データにする。従って、1転送目の転送データは、配置されている画素データの並べ替えの処理や、反転処理などのパッキング処理を行わない。そのため、1転送目の転送データに付加されるパックデータ選択ビットは、画素データの並べ替えの処理や、反転処理などのパッキング処理を行っていないことを表すパックデータ選択ビットの値となる。その後、2転送目の転送データからは、選択されたパッキング方法によるパックデータであることを表すパックデータ選択ビットの値が付加される。
【0169】
なお、データ変換部43とデータ逆変換部54とで基準の処理(パッキング処理)を予め設定することもできる。この場合には、1転送目の転送データに付加されるパックデータ選択ビットには、予め設定された基準のパッキング処理を表すパックデータ選択ビットの値が付加されることになる。
【0170】
上記に述べたように、本第2の構成のデータ変換部43では、複数のパッキング方法によって生成された1転送毎のパックデータの中から、バースト転送時におけるメモリバスの各ビットの変化量が最も少ないパックデータを選択して出力することができる。そして、選択されたパックデータ(パッキング方法)を表すパックデータ選択ビットを、1転送毎に、転送データと共に出力する。これにより、本第2の構成のデータ変換部43では、転送する画素データに最適なパッキング方法を1転送毎に選択することによって、第1の構成のデータ変換部41よりも画像データの転送に係る消費電力の低減効果がより高いデータ転送を実現することができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を、さらに低減させることができる。
【0171】
上記に述べたとおり、本発明を実施するための形態によれば、転送する画素データに最適なパッキング方法を選択し、最適なパッキング方法によってパッキングされた転送データを出力する。また、選択した最適なパッキング方法を表す情報を、転送データの未使用ビットに付加して出力する。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくすることができると共に、転送データから元の画素データを容易に復元することができる。しかも、データの転送効率は、従来と同等のデータ転送効率を維持することができる。これにより、像装置内の各構成要素(処理ブロック)とメモリとの間でのデータの受け渡しに係る消費電力の低減効果を十分に得ることができる。
【0172】
なお、上記に述べた実施形態においては、1バースト(4転送)、または1転送を、最適なパッキング方法を選択する単位として、選択したパッキング方法を表すパックデータ選択ビットを付加する場合について説明したが、最適なパッキング方法を選択する単位は、本発明を実施するための形態に限定されるものではない。例えば、それぞれの画素データを最適なパッキング方法を選択する単位とすることもできる。
【0173】
この場合の一例について説明する。図18は、本実施形態のデータ変換部によるパッキング処理をデータ(画素データ)毎に適用した場合の一例を説明する図である。なお、以下の説明においては、説明を容易にするため、図20に示したまた、ベイヤーデータ内の各画素データのビット数は8bitであり、メモリバス幅は32bitであるものとする。また、1転送内に3画素分の画素データをパッキングするものとする。
【0174】
図18では、それぞれのパックデータ内に配置された画素データ毎に異なるパッキング処理が適用されている場合を示している。より具体的には、各パックデータ内の「R」画素には、画素データの上位のビットと下位のビットとを並べ替えて配置する並べ替えの処理が適用され、当該「R」画素データの上位側のビットに、並べ替えを行ったか否かを表す並べ替え情報が付加されている場合を示している。また、各パックデータ内の「G」画素には、画素データの下位のビットに対して反転処理が適用され、当該「G」画素の上位側のビットに、反転処理を行ったか否かを表す反転ビットが付加されている場合を示している。そして、それぞれの画素データに対して、並べ替えの処理または反転処理のいずれの処理(パッキング処理)を行ったかを表す、パックデータ選択ビットが、それぞれの画素データのさらに上位側のビットに付加されている場合を示している。
【0175】
データ変換部とデータ逆変換部とは、パックデータ選択ビットが付加される固定位置(図18においては、メモリバスのビット[9]と、ビット[19]と、ビット[29])の情報を共有している。また、データ変換部とデータ逆変換部とは、並べ替えの処理または反転処理のいずれの処理を行ったかを表す、パックデータ選択ビットの値を共有している。これにより、データ逆変換部は、パックデータ選択ビットを確認することによって、データ変換部から出力されたパックデータ内の各画素データに適用されているパッキング処理を判定することができる。そして、データ逆変換部は、各画素データに適用されたパッキング処理と逆の方法で、それぞれのパックデータ内に配置された各画素データを、元の画素データに復元することができる。このような画素データ毎の元の画素データへの復元を繰り返して、1バースト分、すなわち、パッキング単位(4転送)分の元の画素データを復元する。
【0176】
なお、図18においては、並べ替えの処理または反転処理のいずれの処理を行ったかを、1bitのパックデータ選択ビットで表しているが、この状態においても、並べ替えの処理および反転処理のいずれの処理も行わないことを表すことができる。例えば、パックデータ選択ビットの値を、並べ替えの処理を表す値とするように予め決めておき、並べ替え情報を、並べ替えを行わないことを表す値とすることによって、並べ替えの処理が行われていない、すなわち、何も処理されていない画素データをパッキングすることができる。また、例えば、逆に、パックデータ選択ビットの値を、反転処理を表す値とするように予め決めておき、反転ビットを、反転処理を行わないことを表す値とすることによって、反転処理が行われていない、すなわち、何も処理されていない画素データをパッキングすることができる。
【0177】
また、上記に述べた実施形態においては、ベイヤーデータに本実施形態のパッキング方法を適用した場合について説明したが、本実施形態のパッキング方法は、ベイヤーデータへの適用に限定されるものではなく、RGBデータ、YC422点順次やYC444点順次フォーマットのYCbCrデータ、またはOSDデータなど、様々な画像データに適用することができる。また、本実施形態のパッキング方法は、画像データへの適用に限定されるものではなく、音声データなど、他の形式のデータに適用することもできる。
【0178】
また、本実施形態においては、4転送を1回のバースト転送の単位とし、1バーストをデータのパッキング単位とした場合について説明したが、1回のバースト転送における転送の回数や、データのパッキングの単位は、本発明を実施するための形態に限定されるものではない。例えば、64転送を1回のバースト転送の単位とし、1バースト内の16転送をデータのパッキングの単位とする、すなわち、1バースト内に4つのパッキング単位が含まれる構成にすることもできる。また、例えば、16転送をデータのパッキングの単位とし、8転送を1回のバースト転送の単位とする、すなわち、パッキング単位が2回のバースト転送に跨っている構成にすることもできる。
【0179】
また、本実施形態においては、撮像装置内の構成要素間でデータの受け渡しを行う場合のパッキング方法について、いくつかの例を説明したが、データをパッキングするためのパッキング方法は、本発明を実施するための形態に限定されるものではない。また、本実施形態のデータ変換部とデータ逆変換部との構成によるデータの受け渡しを適用することができる範囲は、本発明を実施するための形態に限定されるものではなく、各構成要素間でデータの受け渡しを行うシステムであれば、どのようなシステムにも適用することができる。
【0180】
また、本実施形態においては、例えば、データ変換部を出力DMA部の前段の処理ブロックとして配置し、データ逆変換部を入力DMA部の後段の処理ブロックとして配置した場合の一例について説明したが、データ変換部およびデータ逆変換部の配置は、本発明を実施するための形態に限定されるものではない。例えば、データ変換部を出力DMA部内の構成要素とすることや、データ逆変換部を入力DMA部内の構成要素とすることもできる。また、例えば、データ変換部を前段の撮像処理部内の構成要素とすることや、データ逆変換部を後段の画像処理部内の構成要素とすることもできる。
【0181】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【0182】
1・・・撮像装置(データ処理装置)
10・・・CPU(データ処理装置)
20・・・メモリ(データ処理装置)
30・・・CCD
40・・・撮像処理部
50・・・画像処理部
60・・・表示処理部
70・・・表示デバイス
41,51・・・データ変換部(データ処理装置)
411,411a,411b,411c,411d・・・パックデータ生成部(データ生成部)
412,412a,412b,412c,412d・・・D−FF(ビット変化数算出部)
413,413a,413b,413c,413d・・・バースト単位バッファ(第1のデータ選択部)
414,414a,414b,414c,414d・・・EXOR回路(ビット変化数算出部)
415,415a,415b,415c,415d・・・ビット加算部(ビット変化数算出部)
416,416a,416b,416c,416d・・・バースト単位累積部(ビット変化数比較部)
417・・・比較部(ビット変化数比較部)
418・・・選択部(第1のデータ選択部)
419・・・ビット結合部
52,62・・・データ逆変換部(データ処理装置)
521・・・ビット分離部
522,522a,522b,522c,522d・・・データ復元部(データ復元部)
523,523a,523b,523c,523d・・・データバッファ(第2のデータ選択部)
524・・・選択部(第2のデータ選択部)
45,55・・・出力DMA部
56,66・・・入力DMA部
43・・・データ変換部(データ処理装置)
431,431a,431b,431c,431d・・・パックデータ生成部(データ生成部)
432・・・D−FF(ビット変化数算出部)
437・・・比較部(ビット変化数比較部)
438・・・選択部(第1のデータ選択部)
439・・・ビット結合部
54・・・データ逆変換部(データ処理装置)
542,542a,542b,542c,542d・・・データ復元部(データ復元部)
【特許請求の範囲】
【請求項1】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、
を備え、
前記データ変換部は、
前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置した第1の変換データを生成する複数のデータ生成部と、
複数の前記データ生成部のそれぞれに対応し、該データ生成部がn(nは1以上の自然数)回目に出力した前記第1の変換データ内の各ビットの値と、該データ生成部がn+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第1の変換データ毎に算出する複数のビット変化数算出部と、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第1の変換データを生成した前記データ生成部を選択し、該選択した前記データ生成部を表す選択情報を出力するビット変化数比較部と、
前記選択情報に基づいて、それぞれの前記データ生成部から出力されたそれぞれの前記第1の変換データの内、いずれか1つの前記第1の変換データを選択し、該選択した前記第1の変換データを、選択データとして出力する第1のデータ選択部と、
前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項2】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較した結果、前記ビット変化数の値が最も少ない前記第1の変換データを生成した前記データ生成部を選択する、
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記ビット変化数算出部のそれぞれは、
前記第1のデータ選択部によって選択された前記選択データを、それぞれの前記データ生成部がn+1回目に出力した前記第1の変換データとして、前記ビット変化数を算出する、
ことを特徴とする請求項2に記載のデータ処理装置。
【請求項4】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を、前記変換単位毎にまとめて比較し、該比較した結果に基づいて前記変換単位での前記第1の変換データを生成した前記データ生成部を選択し、
前記第1のデータ選択部は、
前記選択情報に基づいて、それぞれの前記データ生成部から出力された前記変換単位のそれぞれの前記第1の変換データの内、いずれか1つの前記変換単位の前記第1の変換データを選択し、該選択した前記変換単位の前記第1の変換データを、前記変換単位の選択データとして出力し、
前記ビット結合部は、
前記変換単位の選択データを前記変換単位の転送データとして出力する際に、該変換単位の選択データに含まれる前記第1の変換データの内、前記入力データが配置されていない未使用ビットを含む前記第1の変換データの予め定められた前記未使用ビットの位置に、前記選択情報を結合した結合データを生成し、該変換単位の選択データに含まれる前記第1の変換データ、または前記結合データのいずれか1つのデータを、前記転送単位毎に順次出力する、
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項5】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を前記変換単位毎にまとめて比較した結果、前記変換単位内に含まれる全ての前記第1の変換データにおいて、まとめた前記ビット変化数の値が最も少ない前記変換単位での前記第1の変換データを生成した前記データ生成部を選択する、
ことを特徴とする請求項4に記載のデータ処理装置。
【請求項6】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、
を備え、
前記データ逆変換部は、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置したそれぞれの第1の変換データを生成し、n(nは1以上の自然数)回目に生成した前記第1の変換データ内の各ビットの値と、n+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第1の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第1の変換データの中から選択したいずれか1つの前記第1の変換データと、いずれの前記第1の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第1の変換データとに分離するビット分離部と、
前記転送データの転送元のデータ処理装置前記第1の変換データを生成する際の予め定められた配置方法のそれぞれに対応した、予め定められたそれぞれの復元方法に基づいて、前記第1の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第2の変換データを生成する複数のデータ復元部と、
前記選択情報に基づいて、それぞれの前記データ復元部から出力されたそれぞれの前記第2の変換データの内、いずれか1つの前記第2の変換データを選択し、該選択した前記第2の変換データを、元の前記入力データとして出力する第2のデータ選択部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項7】
前記ビット分離部は、
前記入力された前記転送データを前記変換単位毎にまとめ、該変換単位の前記転送データの内、いずれかの前記転送データ内の予め定められたビットの位置に結合されている前記選択情報を分離し、
前記第2のデータ選択部は、
前記選択情報に基づいて、それぞれの前記データ復元部から出力された前記変換単位のそれぞれの前記第2の変換データの内、いずれか1つの前記変換単位の前記第2の変換データを選択し、該選択した前記変換単位の前記第2の変換データを、元の前記入力データとして順次出力する、
ことを特徴とする請求項6に記載のデータ処理装置。
【請求項8】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、
を含み、
前記データ変換ステップは、
前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置した第1の変換データを生成する複数のデータ生成ステップと、
複数の前記データ生成ステップのそれぞれに対応し、該データ生成ステップによってn(nは1以上の自然数)回目に出力した前記第1の変換データ内の各ビットの値と、該データ生成ステップによってn+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第1の変換データ毎に算出する複数のビット変化数算出ステップと、
それぞれの前記データ生成ステップにおけるそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第1の変換データを生成した前記データ生成ステップを選択し、該選択した前記データ生成ステップを表す選択情報を出力するビット変化数比較ステップと、
前記選択情報に基づいて、それぞれの前記データ生成ステップにおいて出力されたそれぞれの前記第1の変換データの内、いずれか1つの前記第1の変換データを選択し、該選択した前記第1の変換データを、選択データとして出力する第1のデータ選択ステップと、
前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項9】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、
を含み、
前記データ逆変換ステップは、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置したそれぞれの第1の変換データを生成し、n(nは1以上の自然数)回目に生成した前記第1の変換データ内の各ビットの値と、n+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第1の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第1の変換データの中から選択したいずれか1つの前記第1の変換データと、いずれの前記第1の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第1の変換データとに分離するビット分離ステップと、
前記転送データの転送元のデータ処理装置前記第1の変換データを生成する際の予め定められた配置方法のそれぞれに対応した、予め定められたそれぞれの復元方法に基づいて、前記第1の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第2の変換データを生成する複数のデータ復元ステップと、
前記選択情報に基づいて、それぞれの前記データ復元ステップにおいて出力されたそれぞれの前記第2の変換データの内、いずれか1つの前記第2の変換データを選択し、該選択した前記第2の変換データを、元の前記入力データとして出力する第2のデータ選択ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項1】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、
を備え、
前記データ変換部は、
前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置した第1の変換データを生成する複数のデータ生成部と、
複数の前記データ生成部のそれぞれに対応し、該データ生成部がn(nは1以上の自然数)回目に出力した前記第1の変換データ内の各ビットの値と、該データ生成部がn+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第1の変換データ毎に算出する複数のビット変化数算出部と、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第1の変換データを生成した前記データ生成部を選択し、該選択した前記データ生成部を表す選択情報を出力するビット変化数比較部と、
前記選択情報に基づいて、それぞれの前記データ生成部から出力されたそれぞれの前記第1の変換データの内、いずれか1つの前記第1の変換データを選択し、該選択した前記第1の変換データを、選択データとして出力する第1のデータ選択部と、
前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項2】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を比較した結果、前記ビット変化数の値が最も少ない前記第1の変換データを生成した前記データ生成部を選択する、
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記ビット変化数算出部のそれぞれは、
前記第1のデータ選択部によって選択された前記選択データを、それぞれの前記データ生成部がn+1回目に出力した前記第1の変換データとして、前記ビット変化数を算出する、
ことを特徴とする請求項2に記載のデータ処理装置。
【請求項4】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を、前記変換単位毎にまとめて比較し、該比較した結果に基づいて前記変換単位での前記第1の変換データを生成した前記データ生成部を選択し、
前記第1のデータ選択部は、
前記選択情報に基づいて、それぞれの前記データ生成部から出力された前記変換単位のそれぞれの前記第1の変換データの内、いずれか1つの前記変換単位の前記第1の変換データを選択し、該選択した前記変換単位の前記第1の変換データを、前記変換単位の選択データとして出力し、
前記ビット結合部は、
前記変換単位の選択データを前記変換単位の転送データとして出力する際に、該変換単位の選択データに含まれる前記第1の変換データの内、前記入力データが配置されていない未使用ビットを含む前記第1の変換データの予め定められた前記未使用ビットの位置に、前記選択情報を結合した結合データを生成し、該変換単位の選択データに含まれる前記第1の変換データ、または前記結合データのいずれか1つのデータを、前記転送単位毎に順次出力する、
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項5】
前記ビット変化数比較部は、
それぞれの前記データ生成部に対応したそれぞれの前記ビット変化数の値を前記変換単位毎にまとめて比較した結果、前記変換単位内に含まれる全ての前記第1の変換データにおいて、まとめた前記ビット変化数の値が最も少ない前記変換単位での前記第1の変換データを生成した前記データ生成部を選択する、
ことを特徴とする請求項4に記載のデータ処理装置。
【請求項6】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、
を備え、
前記データ逆変換部は、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置したそれぞれの第1の変換データを生成し、n(nは1以上の自然数)回目に生成した前記第1の変換データ内の各ビットの値と、n+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第1の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第1の変換データの中から選択したいずれか1つの前記第1の変換データと、いずれの前記第1の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第1の変換データとに分離するビット分離部と、
前記転送データの転送元のデータ処理装置前記第1の変換データを生成する際の予め定められた配置方法のそれぞれに対応した、予め定められたそれぞれの復元方法に基づいて、前記第1の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第2の変換データを生成する複数のデータ復元部と、
前記選択情報に基づいて、それぞれの前記データ復元部から出力されたそれぞれの前記第2の変換データの内、いずれか1つの前記第2の変換データを選択し、該選択した前記第2の変換データを、元の前記入力データとして出力する第2のデータ選択部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項7】
前記ビット分離部は、
前記入力された前記転送データを前記変換単位毎にまとめ、該変換単位の前記転送データの内、いずれかの前記転送データ内の予め定められたビットの位置に結合されている前記選択情報を分離し、
前記第2のデータ選択部は、
前記選択情報に基づいて、それぞれの前記データ復元部から出力された前記変換単位のそれぞれの前記第2の変換データの内、いずれか1つの前記変換単位の前記第2の変換データを選択し、該選択した前記変換単位の前記第2の変換データを、元の前記入力データとして順次出力する、
ことを特徴とする請求項6に記載のデータ処理装置。
【請求項8】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、
を含み、
前記データ変換ステップは、
前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置した第1の変換データを生成する複数のデータ生成ステップと、
複数の前記データ生成ステップのそれぞれに対応し、該データ生成ステップによってn(nは1以上の自然数)回目に出力した前記第1の変換データ内の各ビットの値と、該データ生成ステップによってn+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数をビット変化数として、前記第1の変換データ毎に算出する複数のビット変化数算出ステップと、
それぞれの前記データ生成ステップにおけるそれぞれの前記ビット変化数の値を比較し、該比較した結果に基づいて前記第1の変換データを生成した前記データ生成ステップを選択し、該選択した前記データ生成ステップを表す選択情報を出力するビット変化数比較ステップと、
前記選択情報に基づいて、それぞれの前記データ生成ステップにおいて出力されたそれぞれの前記第1の変換データの内、いずれか1つの前記第1の変換データを選択し、該選択した前記第1の変換データを、選択データとして出力する第1のデータ選択ステップと、
前記選択データを前記転送データとして出力する際に、前記選択データ内で前記入力データが配置されていない予め定められた未使用ビットの位置に、前記選択情報を結合して出力するビット結合ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項9】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、
を含み、
前記データ逆変換ステップは、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定められたそれぞれの配置方法に基づいて前記データバスに配置したそれぞれの第1の変換データを生成し、n(nは1以上の自然数)回目に生成した前記第1の変換データ内の各ビットの値と、n+1回目に出力した前記第1の変換データ内の各ビットの値とを比較し、該比較した結果に基づいたビットの数であるビット変化数を、それぞれの前記第1の変換データ毎に算出し、該算出したそれぞれのビット変化数の値を比較した結果に基づいて、該生成したそれぞれの前記第1の変換データの中から選択したいずれか1つの前記第1の変換データと、いずれの前記第1の変換データを選択したかを表す選択情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、該入力された前記転送データを、該転送データ内の予め定められたビットの位置に結合されている前記選択情報と、前記第1の変換データとに分離するビット分離ステップと、
前記転送データの転送元のデータ処理装置前記第1の変換データを生成する際の予め定められた配置方法のそれぞれに対応した、予め定められたそれぞれの復元方法に基づいて、前記第1の変換データ内に配置された複数の前記入力データを、元の前記入力データに戻すように変換した第2の変換データを生成する複数のデータ復元ステップと、
前記選択情報に基づいて、それぞれの前記データ復元ステップにおいて出力されたそれぞれの前記第2の変換データの内、いずれか1つの前記第2の変換データを選択し、該選択した前記第2の変換データを、元の前記入力データとして出力する第2のデータ選択ステップと、
を含む、
ことを特徴とするデータ処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2012−203539(P2012−203539A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−66055(P2011−66055)
【出願日】平成23年3月24日(2011.3.24)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月24日(2011.3.24)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
[ Back to top ]