データ処理装置およびデータ処理方法
【課題】データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるデータ処理装置およびデータ処理方法を提供する。
【解決手段】入力データを第1および第2の分離データに分離する第1のビット分離部と、n(nは1以上の自然数)回目とn+1回目の第1の分離データとを比較するビット比較部と、比較結果に基づいて第1の分離データを反転するか否かを判定した反転情報を出力するビット判定部と、反転情報に基づいて選択したデータを出力する第1のビット反転部と、選択したデータと第2の分離データとを配置し、反転情報を結合して出力する第1のビット結合部と、を具備し、順次入力された複数の入力データを転送データに変換して順次転送する際に、1つの転送データを1つの転送単位とし、予め定められた数の転送単位を1つの変換単位として、入力データを変換単位毎に配置するデータ変換部、を備える。
【解決手段】入力データを第1および第2の分離データに分離する第1のビット分離部と、n(nは1以上の自然数)回目とn+1回目の第1の分離データとを比較するビット比較部と、比較結果に基づいて第1の分離データを反転するか否かを判定した反転情報を出力するビット判定部と、反転情報に基づいて選択したデータを出力する第1のビット反転部と、選択したデータと第2の分離データとを配置し、反転情報を結合して出力する第1のビット結合部と、を具備し、順次入力された複数の入力データを転送データに変換して順次転送する際に、1つの転送データを1つの転送単位とし、予め定められた数の転送単位を1つの変換単位として、入力データを変換単位毎に配置するデータ変換部、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置およびデータ処理方法に関する。
【背景技術】
【0002】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、撮像装置の画素数や速度の向上に伴って、膨大な画素のデータ(以下、「画素データ」という)が含まれる画像データを処理している。このような撮像装置においては、撮像装置内の各処理ブロックが撮影によって得られた画像データを処理する際に、データを一時的に記憶するメモリが利用されている。メモリには、各処理段階の画像データが一時記憶される。
【0003】
図18は、従来の撮像装置の概略構成を示したブロック図である。例えば、図18に示した撮像装置における撮影動作では、以下のような手順で画像データの処理が行われている。
(手順1):まず、撮像処理部が、例えば、CCD(Charge Coupled Device:電荷結合素子)型の固体撮像素子によって得られた画像データを、出力DMA(Direct Memory Access)部を介してメモリに転送して一時記憶する。
(手順2):続いて、画像処理部が、メモリに一時記憶している画像データを、入力DMA部を介して読み出す。そして、画像処理部は、読み出した画像データに対して記録用の画像処理や、表示用の画像処理を行う。その後、画像処理した後の画像データを、出力DMA部を介してメモリに転送して一時記憶する。
(手順3):続いて、表示処理部が、表示用の画像処理がされた画像データを、入力DMA部を介して読み出し、表示デバイスに表示させる。
【0004】
このように、撮像装置では、前段の処理ブロックが、画像データをメモリに一時記憶する。そして、後段の処理ブロックが、メモリに記録されている画像データを読み出して、次の処理を行う。このように、撮像装置内の各処理ブロックが、メモリを介して処理対象の画像データの受け渡しを行うことによって、撮像装置の全体の処理を順次行っている。
【0005】
近年、静止画用カメラ、動画用カメラなどの撮像装置においては、長い時間連続して使用できることが望まれており、撮像装置内の電気回路の消費電力を低減させる技術が必要とされている。撮像装置の消費電力を低減させるための1つの方法として、各処理ブロック(電気回路)とメモリとの間での画像データの転送速度を高速にする方法が挙げられる。画像データの転送速度の高速化は、例えば、撮像装置が動作するクロックの周波数を高くしたり、各処理ブロックとメモリ間の画像データの転送期間を短縮させたりすることによって実現することができる。これらの方法は、画像データの転送速度を高速にすることによって、画像データの転送に係る消費電力を低減させるものである。
【0006】
処理ブロックとメモリ間の画像データの転送期間を短縮させるための技術として、特許文献1に開示されているようなパッキングという技術が知られている。特許文献1で開示されたパッキング技術は、画像データ内の各画素データをメモリに転送する際に使用されるデータバスのバス幅を拡張し、隣接する複数の画素データをデータバスに配置(パッキング)することによって、複数の画素データを一度に転送するという技術である。この技術によって、全ての画素データを転送するために要するデータ転送の回数を、画素データを1画素毎に転送する以前のデータ転送に比べて少なくすることができ、画像データのデータ転送に係る期間を短縮することができる。例えば、図19に示したような、16行×16列のベイヤー配列のCCDから得られた画素データをメモリに転送する場合、特許文献1で開示されたパッキング技術では、4画素分の画素データを一度に転送する単位とすることによって、画像データの転送期間を1/4に短縮することができる。これにより、画素データを1画素ずつメモリに転送する場合に比べて、撮像装置内の電気回路の消費電力を低減させることができる。
【0007】
また、さらに画像データの転送期間を短縮する技術として、DMAのバースト転送を利用したパッキング方法が考えられる。これは、予め定められた一定のサイクル数でメモリにアクセスする単位である1バーストを、画素データをパッキングする単位として考える方法である。図20に画素データのパッキングの一例を示す。図20(a)は、特許文献1で開示されたパッキング方法で図19に示した画素データをパッキングした場合の一例を示し、図20(b)は、バーストの単位で図19に示した画素データをパッキングした場合の一例を示している。なお、図20では、画素データをメモリに転送する際に使用するデータバス(以下、「メモリバス」という)のバス幅(以下、「メモリバス幅」という)を32bitとし、バースト転送における1サイクル分のメモリアクセス(以下、「1転送」という)を4回、すなわち、4転送で1回のバースト転送を行う場合の例を示している。そして、図20(a)および図20(b)では、それぞれ上から順に、1画素の画素データの分解能、すなわち、画素データのビット数が、9bit、10bit、12bit、および14bitである場合の一例を示している。
【0008】
図20からわかるように、図20(a)に示した特許文献1で開示されたパッキング方法では、1転送あたり2画素分の画素データがメモリバスに配置され、1バーストあたり8画素分の画素データをメモリに転送することができる。これに対して図20(b)に示したバースト単位でのパッキング方法では、それぞれ、14画素分、12画素分、10画素分、および9画素分の画素データをメモリに転送することができる。これは、特許文献1で開示されたパッキング方法は、メモリバス幅、すなわち、1転送の単位で画素データを配置(パッキング)するため、配置する複数の画素データのビット数の合計がメモリバス幅を超えないようにする必要がある。このため、特許文献1で開示されたパッキング方法では、メモリバス幅内に画素データを割り当てることができないビット(以下、「未使用ビット」という)が多く存在してしまう。これに対し、バースト単位でのパッキング方法は、1バーストの単位で画素データを配置(パッキング)するため、図20(b)のように、配置する複数の画素データのビット数の合計がメモリバス幅を超えてしまう場合でも、1バーストを超えなければ次の転送に画素データを配置(パッキング)することができる。すなわち、バースト単位でのパッキング方法では、メモリバス幅が画素データの分解能の整数倍ではない場合においても、1転送の単位を跨いで画素データを配置(マッピング)することができるため、未使用ビットを少なくすることができるのである。このことにより、バースト単位でのパッキング方法は、特許文献1で開示されたパッキング方法よりも、同じ時間で多くの画素データをメモリに転送する、すなわち、画像データの転送期間を短縮することができ、撮像装置内の電気回路の消費電力を、さらに低減させることができる。
【0009】
しかし、一般的に、データの変化(データの“0”→“1”、もしくは“1”→“0”の変化(反転))が少ない方が、消費電力が少ないことが知られている。このため、撮像装置内の各処理ブロック(電気回路)とメモリとの間のメモリバス上のデータの変化を少なくすることによって、撮像装置の消費電力を低減させることも考えられる。図21は、撮像装置内の処理ブロックとメモリとの間のデータバス(メモリバス)上のデータの変化と消費電力との関係を説明する図である。図21(a)は、図18に示した撮像装置における撮像処理部とメモリとの間のメモリバスのバス幅が32bitである場合の一例を示している。そして、図21(b−1)〜(b−3)では、メモリバス上のデータの変化を模式的に示している。図21の一例においては、メモリバス上のデータの変化がない図21(b−1)の場合が、最も消費電力が少なく、メモリバス上のデータの変化が最も多い図21(b−3)の場合が、最も消費電力が多くなる。
【0010】
このことから、撮像装置内の各処理ブロックとメモリ間のバースト転送において、連続する2転送間の画素データ(例えば、図20に示した各バースト転送の1転送目と2転送目との画素データ)の変化が多いと、画像データの転送に係る消費電力も多くなってしまうことがわかる。すなわち、メモリバス上の同一ビットが2転送間で変化している個数(ビット数)に比例して、画像データの転送に係る消費電力が変化する。
【0011】
一般的に、画像データは、隣接する画素間でデータの変化量が小さく、隣接する画素のそれぞれの画素データの同一のビットで比較すると、値が反転しているビットの方が、値が反転していないビットよりも少ないことが予想される。ここで、図20に示した、特許文献1で開示されたパッキング方法と、バースト単位でのパッキング方法とを比較すると、図22に示したように、同一色の画素データで同一のビットが揃っている、特許文献1で開示されたパッキング方法の方が、画像データの転送に係る消費電力が少ないと考えられる。なお、図22は、図20に示した特許文献1で開示されたパッキング方法と、バースト単位でのパッキング方法とにおいて、1画素の画素データのビット数が9bitである場合を示している。
【0012】
より具体的には、図22(a)に示した特許文献1で開示されたパッキング方法では、範囲Aに示したメモリバスの最下位ビットは、全て同一色の画素データの同一ビット(最下位ビット)である。これに対して、図22(b)に示したバースト単位でのパッキング方法では、範囲Bに示したメモリバスの最下位ビットは、全て異なる色の画素データの異なるビットである。このことから、バースト単位で画像データをパッキングすることによって、メモリバス上に配置される画素データのビットの位置が、連続する2転送間で異なってしまうと、メモリバス上の同一ビットの変化量が多くなり、画像データの転送に係る消費電力を増加させてしまうことがわかる。
【0013】
すなわち、図22(a)に示した特許文献1で開示されたパッキング方法は、画像データの転送に係る消費電力が少ないが、データの転送効率が低い。また、図22(b)に示したバースト単位でのパッキング方法は、データの転送効率はよいが、画像データの転送に係る消費電力が多い。
【0014】
このように、バースト単位での画素データのパッキングでは、より多くの画素データをメモリバスに配置することによって、結果的に画素データの転送期間を短縮し、画像データの転送に係る消費電力を低減させることができるが、メモリバス上に配置される画素データのビットの位置が、連続する2転送間で異なっているため、画像データの転送に係る消費電力の低減効果を十分に得ることができていない。
【0015】
また、特許文献1で開示されたパッキング方法においては、例えば、図23に示したように、画素データをパッキングする1転送内に、3画素分の画素データを配置(パッキング)することができる。しかし、この場合には、例えば、範囲Cに示したメモリバスの最下位ビットが、画素データの同一ビット(最下位ビット)ではあるが、異なる色の画素データになってしまう。画素データは、色が異なるとその値が大きく異なる可能性が高く、特許文献1で開示されたパッキング方法でも、1転送内の画素データの配置によっては、画像データの転送に係る消費電力を低減できていないことになってしまう。
【0016】
そこで、連続する2転送間における、メモリバス上に配置されるデータの変化を少なくするための技術として、特許文献2のような技術が開示されている。特許文献2は、時系列的に変化する画像データを液晶パネルなどの表示装置に転送する場合において、転送されるデータの変化量を削減する方法、その変化量の判定方法、およびその利用方法についての技術である。そして、表示装置に転送される画像データの変化量を削減することによって、EMI(Electro Magnetic Interference)輻射および消費電力の低減を期待している。
【0017】
特許文献2で開示された技術では、データの送り手側が、入力されたnビットのデータと1つ前のタイミングで入力されたnビットのデータとをビット毎に比較することによって、値が変化しているビットの数を多数決判定する。多数決判定においては、入力されたデータのそれぞれのビットの値が変化しているビットの数が、半数を超えている場合に入力されたデータを反転し、値が変化しているビットの数が半数以下の場合に入力されたデータは反転しないと判定する。そして、送り手側は、多数決判定を行った結果に応じて、入力されたデータを反転したデータ、またはそのままのデータを、受け手側に出力する。このとき、データを反転したか否かを表す信号も受け手側に出力される。また、データの受け手側は、データを反転したか否かを表す信号に応じて、受け取ったデータを反転して受け取る、またはそのまま受け取ることによって、送り手側に入力されたデータを復元する。
【0018】
ここで、特許文献2で開示された、転送するデータ(転送データ)のデータ変化量を削減する方法の具体例について説明する。図24は、特許文献2に開示された、従来のデータ処理装置の概略構成を示したブロック図である。特許文献2に開示された従来のデータ処理装置のデータ送信側(送り手側)は、以下のような流れ(フロー)で、時系列的に入力されたデータをデータ受信側(受け手側)に転送する。
【0019】
(フロー1):転送するデータが入力されると、まず、最初に、EXOR(排他的論理和)1回路が、今回入力された36ビットのデータ(以下、「データD1」という)と、時間的に1つ前のタイミングで入力された36ビットデータ(以下、「データD0」という)とを、ビット毎に比較する。
【0020】
(フロー2):続いて、多数決回路が、EXOR1回路から入力されたビット毎の比較結果から、データD1の値が変化しているビットの数(以下、「ビット変化数」という)を検出する。そして、多数決回路は、データD1のデータ幅(ビット数:nビット)に対して、検出したビット変化数が過半数であるか否かを判定する。そして、多数決回路は、判定した多数決の結果に応じて、データD1を反転して出力するか、非反転のまま出力するかを表す制御信号(以下、「反転ビット」という)を出力する。図24に示した従来のデータ処理装置の多数決回路では、ビット変化数がデータのビット数の過半数を占める(>n/2)場合に、データD1の全てのビットを反転すると判定し、反転ビットとして“1”の値を出力する。また、多数決回路は、ビット変化数がデータのビット数の半数以下(≦n/2)の場合に、データD1の全てのビットは非反転とする判定し、反転ビットとして“0”の値を出力する。なお、ここで、反転とは、データの各ビットの値を、“1”から“0”、または“0”から“1”にすることを表している。
【0021】
(フロー3):続いて、EXOR2回路が、フロー2で多数決回路から出力された、データD1に対応した反転ビットの値と、データD0に対応した反転ビットの値とを比較する。このEXOR2回路による比較結果が、最終的にデータD1のデータの全てのビットを反転して出力するか、非反転のまま出力するかを表す制御信号(以下、「反転ビット」という)となる。すなわち、図24に示した従来のデータ処理装置では、データD1の全てのビットを反転して出力する反転処理を行うか、データD1の全てのビットを非反転のまま出力する非反転処理を行うかを、時間的に1つ前のタイミングで入力されたデータD0が反転処理されて出力されたか否かの状態によって決定している。より具体的には、データD0に対応した反転ビットの値が“0”(非反転)であった場合、多数決回路から入力されたデータD1に対応した反転ビットを、最終的にデータD1のデータに対応する反転ビットにする。また、データD0に対応した反転ビットの値が“1”(反転)であった場合、多数決回路から入力されたデータD1に対応した反転ビットと逆の信号を、最終的にデータD1のデータに対応する反転ビットとする。これは、例えば、データD0を反転処理して出力した後、次のタイミングでもデータD1を反転処理して出力すると、すでに1つ前のタイミングで出力されたデータD0は反転しているデータであるため、データD1が、反転して出力されたデータD0に対して反転した、すなわち、反転の反転で非反転のデータになってしまうのを回避するためである。
【0022】
(フロー4):そして、次のタイミングで、EXOR3回路が、データD1の全てのビットを、反転ビットに応じて反転処理または非反転処理したデータD1を出力(転送)する。また、同じタイミングで、反転ビットも出力(転送)する。このようなフローによって、図24に示した従来のデータ処理装置では、時系列的に入力されたデータの値が変化しているビットの数が半数を超えている場合に、入力されたデータを反転処理することによって、値が変化しているビットの数を半数以下にして転送する。これにより、入力されたデータを転送する際の、各ビットの変化量を少なくすることができ、データの転送に係る消費電力を低減させることができる。
【0023】
また、データ受信側は、EXOR4回路が、データ送信側から転送されてきたデータD1の全てのビットを、同じく転送されてきた反転ビットに応じて反転処理または非反転処理する。これにより、データ受信側に入力された元のデータD1を復元することができる。
【0024】
ここで、従来のデータ処理装置において、出力するデータの変化量が少なくなることを示す具体的なデータの値の一例について説明する。図25は、特許文献2に開示された、従来のデータ処理装置において、データの変化量を削減する場合の一例を示した図である。図25(a)は、従来のデータ処理装置に入力された入力データとビット変化数とを示し、図25(b)には、従来のデータ処理装置から出力される出力データおよび反転ビットとビット変化数を示している。従来のデータ処理装置には、図25(a)に示したような入力データが、上段から下段に向かって時系列的に順次入力される。そして、従来のデータ処理装置は、入力データが入力される毎に、ビット変化数を検出し、検出したビット変化数に応じて入力データの全てのビットを反転処理または非反転処理した、図25(b)に示したような出力データを出力する。なお、以下の説明においては、説明を容易にするため、従来のデータ処理装置に8ビットの入力データが入力され、8ビットの出力データを出力する場合について説明する。
【0025】
図25(a)からわかるように、入力データが入力される毎に、入力データの各ビットの値を順次比較する、すなわち、図25(a)に示した入力データのそれぞれの段において、各ビットの値を上段の入力データの値と比較すると、例えば、図25(a)の「A」の段の入力データのように、ビット変化数が過半数になっている入力データが存在する。また、図25(a)に示した入力データの全体では、ビット変化数の合計が38ビットである。
【0026】
そこで、従来のデータ処理装置では、上述したフロー1〜フロー4のような流れで、入力データに対して反転処理または非反転処理した出力データを出力することにより、図25(b)の「A」の段のように、ビット変化数が半数以下になる。これにより、出力データの全体では、ビット変化数の合計が30ビットとなり、データの変化量が8ビット削減される。このように、入力データの各ビットの値を順次比較し、ビット変化数が大きい入力データに対して反転処理を行って出力することにより、反転処理を行わずにデータを転送する場合に比べて、データを転送するときの全体でのデータの変化量を削減することができる。
【先行技術文献】
【特許文献】
【0027】
【特許文献1】特開2007−312358号公報
【特許文献2】特開2000−148605号公報
【発明の概要】
【発明が解決しようとする課題】
【0028】
上述したように、一般的に、画像データは、隣接する画素間でデータの変化量が小さい。このため、隣接する画素の画素データ間に高い相関性を持っていることが予想される。また、画素データ同士の相関性は、画素データの上位のビットほど高く、下位のビットほど低い傾向にある。これは、隣接する画素同士でも、画素データの下位ビットの方が、例えば、撮像装置1内のノイズ成分による影響が大きいため、相関性が低くなってしまうためである。
【0029】
しかしながら、特許文献2で開示されたデータの変化量の削減方法では、データの全てのビットに対して、ビット変化数の検出、反転または非反転の判定、および反転処理または非反転処理を行っている。このため、転送するデータが、画像データであった場合には、データの変化量の削減の効果を十分に得ることができないことがある。これは、上述のように、画素データの上位のビットは相関性が高いため、値の変化が少ない(データの変化頻度が低い)と予想されるのに対し、特許文献2で開示されたデータの変化量の削減方法では、画素データの上位のビットまで含めて処理することになるためである。
【0030】
この場合の一例を、図26を用いて説明する。図26は、画像データにおけるデータの変化量の一例を示した図である。例えば、図26(a)に示したように、自然画像データとして8ビットの画素データが順次入力される場合において、自然画像データ内の画素データが、上段の値から下段の値になる場合を考える。なお、以下の説明においては、図26(a)に示したように、画素データの上位4ビットの相関性が高く、下位4ビットの相関性が低いものとする。
【0031】
特許文献2に開示された従来のデータ処理装置では、データ変化数を図26(a)に示した枠A内の8ビット全てのデータのビットに基づいてビット変化数を検出する。図26に示した一例では、ビット変化数が3ビットであると検出される。しかし、相関性が低い(データの変化頻度の高い)、枠B内の下位4ビットに着目してビット変化数を検出しても、ビット変化数が3ビットであると検出される。すなわち、図26(a)に示した一例においては、下位4ビットの値のみが変化している。
【0032】
そして、特許文献2に開示された従来のデータ処理装置では、検出したビット変化数に基づいて、多数決の判定が行われる。しかしながら、多数決の判定結果は、8ビット全てのデータにおける判定と、下位4ビットのデータにおける判定とでは異なってくる。そして、この多数決の判定結果の違いは、画素データに対する反転または非反転の判定に影響する。より具体的には、図26(b)に示したように、枠A内の全てのビット(8ビット)をデータ幅として多数決の判定を行うと、検出したビット変化数は、データ幅の半数以下(3ビット≦(8/2)ビット)ため、全てのビットは非反転とする判定され、反転ビットとして“0”の値が出力される。一方、枠B内の下位4ビットをデータ幅として多数決の判定を行うと、検出したビット変化数は、データ幅の過半数を占める(3ビット>(4/2)ビット)ため、全てのビットは反転する判定され、反転ビットとして“1”の値が出力される。
【0033】
このように、画像データを転送する場合には、画素データの全てのビットをデータ幅として多数決の判定を行うと、データの変化頻度の高い下位のビットの変化が反映されず、データの変化量の削減の効果を十分に得ることができていない、という問題がある。従って、特許文献2に開示された従来のデータ処理装置は、液晶パネルなどの表示装置に転送する画像データを想定しているが、画像データの相関性を考慮していないため、画像データの転送に係る消費電力を十分に低減できていないことになってしまう。
【0034】
本発明は、上記の課題認識に基づいてなされたものであり、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるデータ処理装置およびデータ処理方法を提供することを目的としている。
【課題を解決するための手段】
【0035】
上記の課題を解決するため、本発明のデータ処理装置は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、を備え、前記データ変換部は、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離する第1のビット分離部と、該データ変換部からn(nは1以上の自然数)回目に出力した前記第1の分離データに応じた第1の出力データ内の各ビットの値と、該データ変換部にn+1回目に入力された前記第1の分離データ内の各ビットの値とを比較し、該比較したビットの比較情報を出力するビット比較部と、前記比較情報に基づいて、異なる値となっているビットの数を表すビット変化数を算出し、該算出した前記ビット変化数と、予め定めたビット数とに基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値を、ビット毎に反転するか否かを判定し、該判定した結果を反転情報として出力するビット判定部と、前記反転情報に基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記n+1回目に入力された前記第1の分離データのいずれか一方のデータを、第1の反転処理データとして出力する第1のビット反転部と、前記第1の反転処理データの各ビットと前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成し、該第1の転送データを前記転送データとして出力する際に、前記変換単位内の前記第1の転送データの内、データが配置されていない未使用ビットを含む前記第1の転送データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記第1の転送データ、または前記結合データのいずれか1つのデータを、該データ変換部における前記転送データとして出力する第1のビット結合部と、を具備する、ことを特徴とする。
【0036】
また、本発明の前記ビット判定部は、前記ビット変化数が、前記第1の分離データのビット数の過半数である場合に、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転すると判定し、前記ビット変化数が、前記第1の分離データのビット数の半数以下である場合に、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転しないと判定する、ことを特徴とする。
【0037】
また、本発明の前記ビット判定部は、前記ビット変化数が、前記第1の分離データのビット数の半数である場合、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転するか否かの判定を、n回目に入力された前記第1の分離データに対して行った判定の結果と同じ判定にする、ことを特徴とする。
【0038】
また、本発明の前記データ変換部は、前記第2の分離データを、データの変化が1である場合には、必ず1ビットだけしか変化しないグレイコードで表す第1のコード変換部、を、さらに具備し、前記第1のビット結合部は、前記第1の反転処理データの各ビットと前記グレイコードで表された前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成する、ことを特徴とする。
【0039】
また、本発明の前記第1のビット分離部は、同一の前記転送単位に配置された複数の前記入力データのそれぞれの前記第1の分離データをまとめて1つの前記第1の分離データとし、前記ビット比較部は、前記まとめられた前記第1の分離データの単位で各ビットの値を比較し、前記ビット判定部は、前記まとめられた前記第1の分離データの単位で各ビットの値をビット毎に反転するか否かを判定し、前記第1のビット反転部は、前記まとめられた前記第1の分離データの単位の第1の反転処理データを出力し、前記第1のビット結合部は、前記まとめたれた単位の前記第1の反転処理データの各ビットと、それぞれの前記第2の分離データの各ビットとを、前記データバスの各ビットに配置し、前記まとめられた単位で判定された前記反転情報を結合する、ことを特徴とする。
【0040】
また、本発明のデータ処理装置は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、を備え、前記データ変換部は、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置とが、予め定められており、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成する第1のビット反転部と、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを選択データとして出力する第1のデータ選択部と、該データ変換部からn(nは1以上の自然数)回目に出力した前記選択データに応じた第1の出力データ内の各ビットの値と、該データ変換部にn+1回目に入力された前記入力データに応じたn+1回目の前記第1の反転データまたは前記第2の反転データ内の各ビットの値とを比較し、該比較したビットのそれぞれの比較情報を、前記第1の反転データに対応して検出した第1の比較情報と前記第2の反転データに対応して検出した第2の比較情報として、それぞれ出力するビット比較部と、前記第1の比較情報に基づいて、異なる値となっているビットの数を表す第1のビット変化数を算出し、前記第2の比較情報に基づいて、異なる値となっているビットの数を表す第2のビット変化数を算出するビット変化数算出部と、前記第1のビット変化数と前記第2のビット変化数とに基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、該判定した結果を反転情報として出力するデータ判定部と、前記選択データを前記転送データとして出力する際に、前記変換単位内の前記選択データの内、データが配置されていない未使用ビットを含む前記選択データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記選択データ、または前記結合データのいずれか1つのデータを、該データ変換部における前記転送データとして出力する第1のビット結合部と、を具備し、前記第1のデータ選択部は、前記反転情報に基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択して、n+1回目の選択データとして出力する、ことを特徴とする。
【0041】
また、本発明の前記第1のビット反転部は、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転すると共に、前記第1のビット位置以外のビットのデータを、データの変化が1である場合には、必ず1ビットだけしか変化しないグレイコードで表した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転すると共に、前記第2のビット位置以外のビットのデータを前記グレイコードで表した第2の反転データとを生成する、ことを特徴とする。
【0042】
また、本発明の前記第1のビット反転部は、同一の前記転送単位に配置された複数の前記入力データをまとめて1つの前記入力データとし、前記第1のデータ選択部は、前記まとめられた前記入力データに応じた前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、前記ビット比較部は、前記まとめられた前記選択データの単位で各ビットの値を比較し、前記ビット変化数算出部は、前記まとめられた前記選択データの単位で異なる値となっているビットの数を算出し、前記データ判定部は、前記まとめられた前記選択データの単位で前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、前記第1のビット結合部は、前記まとめたれた単位の前記選択データを前記転送データとして出力する際に、前記まとめられた単位で判定された前記反転情報を結合する、ことを特徴とする。
【0043】
また、本発明のデータ処理装置は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、を備え、前記データ逆変換部は、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離し、前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記第1の分離データのいずれか一方のデータを第1の反転処理データとし、前記第2の分離データの各ビットと前記第1の反転処理データの各ビットとが前記データバスの各ビットに配置された第1の転送データと、前記第1の反転データまたは前記第1の分離データのいずれのデータが前記第1の反転処理データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記第1の転送データとに分離し、さらに前記第1の転送データを、前記第2の分離データと第1の反転処理データとに分離する第2のビット分離部と、前記反転情報に基づいて、前記第1の反転処理データの各ビットの値をビット毎に反転した第2の反転データ、または前記第1の反転処理データのいずれか一方のデータを、前記第1の分離データとして出力する第2のビット反転部と、前記第1の分離データと前記第2の分離データとを結合して元の前記入力データに戻す第2のビット結合部と、を具備する、ことを特徴とする。
【0044】
また、本発明の前記データ逆変換部は、グレイコードで表されている前記第2の分離データを、バイナリコードに戻して表す第2のコード変換部、を、さらに具備し、前記第2のビット結合部は、前記第1の分離データと前記バイナリコードに戻して表された前記第2の分離データとを結合して元の前記入力データに戻す、ことを特徴とする。
【0045】
また、本発明の前記転送データは、同一の前記転送単位に配置された複数の前記入力データのそれぞれの前記第1の分離データがまとめて1つの前記第1の分離データとして処理されており、前記第2のビット分離部は、前記第1の転送データから、前記まとめられた単位の前記第1の分離データからなる第1の反転処理データを分離し、前記第2のビット反転部は、前記第1の反転処理データから前記まとめられた単位の前記第1の分離データを出力し、前記第2のビット結合部は、前記まとめられた単位の前記第1の分離データを、それぞれの前記第1の分離データに分離し、該分離した前記第1の分離データと対応する前記第2の分離データと結合して元の前記入力データに戻す、ことを特徴とする。
【0046】
また、本発明のデータ処理装置は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、を備え、前記データ逆変換部は、前記転送データの転送元のデータ処理装置が前記変換単位で前記転送データを出力する際の、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置と同じ設定が、予め定められており、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記転送データの転送元のデータ処理装置に設定された前記第1のビット位置と前記第2のビット位置とに基づいて、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成し、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択データとし、該選択データと、前記第1の反転データまたは前記第2の反転データのいずれかのデータが前記選択データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記選択データとに分離する第2のビット分離部と、入力された前記選択データから、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データとに戻す第2のビット反転部と、前記反転情報に基づいて、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを、該データ逆変換部において復元した元の前記入力データとして出力する第2のデータ選択部と、を具備する、ことを特徴とする。
【0047】
また、本発明の前記第2のビット反転部は、前記選択データの、前記第1のビット位置のビットの値をビット毎に反転すると共に、グレイコードで表されている前記第1のビット位置以外のビットのデータを、バイナリコードに戻して表した前記第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転すると共に、グレイコードで表されている前記第2のビット位置以外のビットのデータを、バイナリコードに戻して表した前記第2の反転データとに戻す、ことを特徴とする。
【0048】
また、本発明の前記転送データは、同一の前記転送単位に配置された複数の前記入力データがまとめて1つの前記選択データとして処理されており、前記第2のビット分離部は、前記転送データから、前記まとめられた単位の前記選択データを分離し、前記第2のビット反転部は、前記まとめられた単位の前記選択データから、まとめられた単位の前記第1の反転データと、まとめられた単位の前記第2の反転データとに戻し、前記第2のデータ選択部は、前記まとめられた単位の前記第1の反転データまたはまとめられた単位の前記第2の反転データを選択した後、それぞれの元の前記入力データに分離して出力する、ことを特徴とする。
【0049】
また、本発明のデータ処理方法は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、を含み、前記データ変換ステップは、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離する第1のビット分離ステップと、該データ変換ステップによってn(nは1以上の自然数)回目に出力した前記第1の分離データに応じた第1の出力データ内の各ビットの値と、該データ変換においてn+1回目に入力された前記第1の分離データ内の各ビットの値とを比較し、該比較したビットの比較情報を出力するビット比較ステップと、前記比較情報に基づいて、異なる値となっているビットの数を表すビット変化数を算出し、該算出した前記ビット変化数と、予め定めたビット数とに基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値を、ビット毎に反転するか否かを判定し、該判定した結果を反転情報として出力するビット判定ステップと、前記反転情報に基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記n+1回目に入力された前記第1の分離データのいずれか一方のデータを、第1の反転処理データとして出力する第1のビット反転ステップと、前記第1の反転処理データの各ビットと前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成し、該第1の転送データを前記転送データとして出力する際に、前記変換単位内の前記第1の転送データの内、データが配置されていない未使用ビットを含む前記第1の転送データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記第1の転送データ、または前記結合データのいずれか1つのデータを、該データ変換ステップにおける前記転送データとして出力する第1のビット結合ステップと、を含む、ことを特徴とする。
【0050】
また、本発明のデータ処理方法は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、を含み、前記データ変換ステップは、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置とが、予め定められており、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成する第1のビット反転ステップと、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを選択データとして出力する第1のデータ選択ステップと、該データ変換ステップによってn(nは1以上の自然数)回目に出力した前記選択データに応じた第1の出力データ内の各ビットの値と、該データ変換ステップにおいてn+1回目に入力された前記入力データに応じたn+1回目の前記第1の反転データまたは前記第2の反転データ内の各ビットの値とを比較し、該比較したビットのそれぞれの比較情報を、前記第1の反転データに対応して検出した第1の比較情報と前記第2の反転データに対応して検出した第2の比較情報として、それぞれ出力するビット比較ステップと、前記第1の比較情報に基づいて、異なる値となっているビットの数を表す第1のビット変化数を算出し、前記第2の比較情報に基づいて、異なる値となっているビットの数を表す第2のビット変化数を算出するビット変化数算出ステップと、前記第1のビット変化数と前記第2のビット変化数とに基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、該判定した結果を反転情報として出力するデータ判定ステップと、前記選択データを前記転送データとして出力する際に、前記変換単位内の前記選択データの内、データが配置されていない未使用ビットを含む前記選択データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記選択データ、または前記結合データのいずれか1つのデータを、該データ変換ステップにおける前記転送データとして出力する第1のビット結合ステップと、を含み、前記第1のデータ選択ステップは、前記反転情報に基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択して、n+1回目の選択データとして出力する、ことを特徴とする。
【0051】
また、本発明のデータ処理方法は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、を含み、前記データ逆変換ステップは、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離し、前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記第1の分離データのいずれか一方のデータを第1の反転処理データとし、前記第2の分離データの各ビットと前記第1の反転処理データの各ビットとが前記データバスの各ビットに配置された第1の転送データと、前記第1の反転データまたは前記第1の分離データのいずれのデータが前記第1の反転処理データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記第1の転送データとに分離し、さらに前記第1の転送データを、前記第2の分離データと第1の反転処理データとに分離する第2のビット分離ステップと、前記反転情報に基づいて、前記第1の反転処理データの各ビットの値をビット毎に反転した第2の反転データ、または前記第1の反転処理データのいずれか一方のデータを、前記第1の分離データとして出力する第2のビット反転ステップと、前記第1の分離データと前記第2の分離データとを結合して元の前記入力データに戻す第2のビット結合ステップと、を含む、ことを特徴とする。
【0052】
また、本発明のデータ処理方法は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、を含み、前記データ逆変換ステップは、前記転送データの転送元のデータ処理装置が前記変換単位で前記転送データを出力する際の、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置と同じ設定が、予め定められており、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記転送データの転送元のデータ処理装置に設定された前記第1のビット位置と前記第2のビット位置とに基づいて、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成し、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択データとし、該選択データと、前記第1の反転データまたは前記第2の反転データのいずれかのデータが前記選択データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記選択データとに分離する第2のビット分離ステップと、入力された前記選択データから、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データとに戻す第2のビット反転ステップと、前記反転情報に基づいて、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを、該データ逆変換部において復元した元の前記入力データとして出力する第2のデータ選択ステップと、を含む、ことを特徴とする。
【発明の効果】
【0053】
本発明によれば、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるという効果が得られる。
【図面の簡単な説明】
【0054】
【図1】本発明の実施形態における撮像装置の概略構成を示したブロック図である。
【図2】本実施形態の撮像装置に備えた第1の構成のデータ変換部の概略構成を示したブロック図である。
【図3】本実施形態の撮像装置に備えた第1の構成のデータ逆変換部の概略構成を示したブロック図である。
【図4】本実施形態の撮像装置に備えた第1の構成のデータ変換部における転送画素データの生成方法を説明する図である。
【図5】本実施形態の撮像装置に備えた第1の構成のデータ変換部における転送画素データの生成方法を説明する図である。
【図6】本実施形態の撮像装置に備えた第1の構成のデータ変換部における第1のデータ配置方法を説明する図である。
【図7】本実施形態の撮像装置に備えた第1の構成のデータ変換部における第2のデータ配置方法を説明する図である。
【図8】本実施形態の撮像装置に備えた第2の構成のデータ変換部の概略構成を示したブロック図である。
【図9】本実施形態の撮像装置に備えた第2の構成のデータ逆変換部の概略構成を示したブロック図である。
【図10】本実施形態の撮像装置に備えた第2の構成のデータ変換部における転送画素データの生成方法を説明する図である。
【図11】本実施形態の撮像装置に備えた第3の構成のデータ変換部の概略構成を示したブロック図である。
【図12】本実施形態の撮像装置に備えた第3の構成のデータ変換部における反転処理の適用範囲の一例を説明する図である。
【図13】本実施形態の撮像装置に備えた第3の構成のデータ逆変換部の概略構成を示したブロック図である。
【図14】本実施形態の撮像装置に備えたデータ変換部によるデータ配置方法を、別の画像データに適用した場合の一例を示した図である。
【図15】本実施形態の撮像装置に備えたデータ変換部によるデータ配置方法を、さらに別の画像データに適用した場合の一例を示した図である。
【図16】本実施形態の撮像装置に備えたデータ変換部によるデータ配置方法を、さらに別の画像データに適用した場合の一例を示した図である。
【図17】本実施形態の撮像装置に備えたデータ変換部によるデータ配置方法を、別のデータに適用した場合の一例を示した図である。
【図18】従来の撮像装置の概略構成を示したブロック図である。
【図19】画像データの配列の一例を示した図である。
【図20】従来のデータパッキングの一例を示した図である。
【図21】データバス上のデータの変化と消費電力との関係を説明する図である。
【図22】従来のデータパッキング方法におけるデータ配置の状態の一例を示した図である。
【図23】従来のデータパッキング方法におけるデータ配置の状態の別の一例を示した図である。
【図24】従来のデータ処理装置の概略構成を示したブロック図である。
【図25】従来のデータ処理装置においてデータの変化量を削減する一例を示した図である。
【図26】画像データにおけるデータの変化量の一例を示した図である。
【発明を実施するための形態】
【0055】
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における撮像装置の概略構成を示したブロック図である。図1に示した撮像装置1は、CPU10と、メモリ20と、CCD30と、撮像処理部40と、画像処理部50と、表示処理部60と、表示デバイス70と、データ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66と、を備えている。なお、撮像装置1は、撮影した画像データを記録する機能も有しているが、説明を容易にするため、以下の説明においては、撮影した画像データを表示する場合について説明する。また、図1においては、撮像装置1内の各構成要素(処理ブロック)間での画素データの受け渡しに係るデータバスであるメモリバスの接続のみを示している。
【0056】
CPU10は、撮像装置1の全体の制御を行う制御装置である。
メモリ20は、撮像装置1内の各処理ブロックが処理する画素データを一時的に記憶する、例えば、DRAM(Dynamic Random Access Memory)などのメモリである。メモリ20には、撮像装置1内の各処理ブロックによる各処理段階の画素データが一時記憶される。
【0057】
CCD30は、入射した被写体光を画像信号に変換する、例えば、ベイヤー配列の固体撮像素子である。CCD30は、被写体の画素信号を撮像処理部40に出力する。
撮像処理部40は、CCD30から入力された画素信号に対して、予め定められた信号処理を行った画像データを生成する。
【0058】
画像処理部50は、撮像処理部40が生成した画像データに対して、撮像装置1における種々の画像処理を行った画像データを生成する。
表示処理部60は、画像処理部50によって画像処理された画像データを、表示デバイス70に応じた表示データに変換する。表示処理部60は、変換した表示データを表示デバイス70に出力する。
表示デバイス70は、表示データを表示する、例えば、液晶などの表示装置である。
【0059】
本実施形態の撮像装置1では、CCD30によって撮像された被写体の画素信号を、撮像処理部40、画像処理部50、表示処理部60が順次処理し、表示デバイス70に表示させる。このとき、各処理段階の画像データは、メモリ20を介して各処理ブロック間で受け渡される。撮像装置1内のデータ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66とは、各処理段階の画像データの受け渡しに係る処理ブロックである。
【0060】
データ変換部41および51は、前段の処理ブロック(図1に示した本実施形態においては、撮像処理部40または画像処理部50)から入力された画像データ内の各画素データを、予め定められた配置(パッキング)方法で、メモリバスの各ビットに配置する。データ変換部41および51の構成と、データ変換部41および51による画素データのパッキング方法に関する詳細な説明は、後述する。
【0061】
出力DMA部45および55は、データ変換部41または51によってメモリバスの各ビットにパッキングされた画素データからなる画像データを、DMAアクセスによってメモリ20に書き込む(記憶させる)。
入力DMA部56および66は、メモリ20に記憶されている画像データをDMAアクセスによって読み出し、読み出した画像データを、データ逆変換部52または62に出力する。
【0062】
データ逆変換部52および62は、入力DMA部56または66から入力された画像データに含まれる画素データを、予め定められた配置(パッキング)方法と逆の方法で元の画像データに戻し、後段の処理ブロック(図1に示した本実施形態においては、画像処理部50または表示処理部60)に出力する。データ逆変換部52および62の構成に関する詳細な説明は、後述する。
【0063】
ここで、図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に表示させる。
【0064】
なお、撮像装置1が撮影した画像データを記録する場合には、画像データの記録処理を行う図示しない記録処理部が、画像処理部50によって記録用の画像処理がされた画像データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した記録用の画像データをメモリカードなどの図示しない画像データ記録部に記録する。また、撮像装置1に、例えば、音を入出力する機能を備えている場合には、音声処理を行う図示しない音声処理部が、撮影時の音声データを、図示しないデータ変換部および出力DMA部を介してメモリ20に記憶する。また、音声処理部が、メモリ20に記憶している音声データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した音声データに応じた音声を、スピーカーなどの図示しない音出力部に出力させる。
【0065】
<第1の構成>
次に、撮像装置1内のデータ変換部について説明する。なお、上記に述べたように、データ変換部41とデータ変換部51とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ変換部41は、前段の撮像処理部40と後段の出力DMA部45との間に配置され、データ変換部51は、前段の撮画像処理部50と後段の出力DMA部55との間に配置されている。従って、データ変換部41とデータ変換部51とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ変換部41について説明する。
【0066】
データ変換部41には、図19に示したような、16行×16列のベイヤー配列の画像データ(以下、「ベイヤーデータ」という)が入力される。そして、データ変換部41は、入力されたベイヤーデータ内の画素データを、予め定められたパッキング方法で、メモリバスに配置(パッキング)したパックデータを出力する。例えば、ベイヤーデータ内の各画素データのビット数が10bitであり、メモリバスのバス幅(メモリバス幅)が32bitである場合、データ変換部41は、ベイヤーデータ内の各画素データをパッキングする単位を4転送とし、4転送を1回のバースト転送の単位とする、すなわち、1バーストを画素データのパッキング単位としてパッキングした32bitのパックデータを出力する。なお、図19に示したベイヤーデータでは、各画素データの数字がCCD30内の画素の位置を表しており、数字の前の「R」,「G」,「B」がCCD30内の画素の色を表している。より具体的には、「R」がCCD30の赤色の画素の画素データ、「G」がCCD30の緑色の画素の画素データ、「B」がCCD30の青色の画素の画素データを表している。
【0067】
データ変換部41は、撮像処理部40から順次入力された10bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitのパックデータを生成する。そして、データ変換部41は、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて生成したパックデータを順次出力する。なお、データイネーブル信号は、出力DMA部45がバースト転送する際にパックデータを転送するタイミングを表す信号である。
【0068】
データ変換部41がパックデータを生成する際には、まず、入力された画素データをビット毎に比較して、ビット変化の少ない画素データ(以下、「転送画素データ」という)を生成する。より具体的には、データ変換部41は、入力された画素データを予め定められたビット数の上位の画素データと下位の画素データとに分離する。そして、前回出力した下位の画素データの各ビットの値と、今回分離した下位の画素データの各ビットの値とを比較し、前回出力した下位の画素データに対して、値が変化しているビットの数が少ない下位の画素データを生成する。その後、今回分離した上位の画素データと結合し、転送画素データとする。また、データ変換部41は、下位の画素データの値が変化しているビットの数(ビット変化数)に応じた、転送画素データを生成したときの情報を出力する。
【0069】
その後、データ変換部41は、予め定められたパッキング方法で、転送画素データの各ビットのデータを、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに配置(パッキング)し、最終的に出力するパックデータとして出力する。また、データ変換部41は、転送画素データを生成したときの情報を、パッキング単位(4転送)内に存在する未使用ビットに付加して、パックデータと共に出力する。
【0070】
なお、データ変換部41は、上記に述べたように、画素データが入力される毎に、転送画素データを生成し、生成した転送画素データおよび転送画素データを生成したときの情報を順次パッキングしたパックデータを順次出力することもできるが、データ変換部41内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力された画素データをメモリ部に一旦保持し、保持したそれぞれの画素データに基づいた転送画素データを生成し、生成した転送画素データのパッキングと、転送画素データを生成したときの情報の付加とを行う。
【0071】
また、入力された画素データを最初にパッキングし、その後、ビット変化の少ないパックデータの生成と、パックデータを生成したときの情報の付加とを行う構成とすることもできる。この場合には、最初にパッキングしたパックデータを、入力された画素データと同様に扱って処理する。
【0072】
図2は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41の概略構成を示したブロック図である。図2に示したように、データ変換部41は、ビット分離部411と、EXOR(排他的論理和)回路412と、D−FF413と、EXOR回路414と、多数決判定部415と、ビット結合部416と、を備えている。
【0073】
上記に述べたように、データ変換部41は、入力された10bitの画素データの値が変化しているビットの数が少ない転送画素データをパッキングして、データ変換部41が最終的に出力する32bitのパックデータを生成する。しかし、以下の説明においては、説明を容易にするため、データ変換部41に8bitの画素データが順次入力され、入力された画素データから転送画素データを生成し、転送画素データを生成したときの情報を付加した9bitのパックデータを出力する場合について説明する。すなわち、データ変換部41は、1つの転送画素データをパッキングしたパックデータを生成する場合について説明する。なお、複数の転送画素データをパッキングしたパックデータの生成方法に関する詳細な説明は、後述する。
【0074】
以下の説明においては、データ変換部41に入力される10bitの画素データと8bitの画素データとを区別するため、8bitの画素データを入力データDIN[7:0]と表す。また、32bitのパックデータと9bitのパックデータとを区別するため、以下の説明においては、9bitのパックデータを出力データDOUT[8:0]と表す。なお、以下の説明において、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0075】
また、以下の説明においては、8bitの入力データDINを、上位4bitと下位4bitとに分離して、ビット変化の少ない転送画素データを生成する場合について説明する。
【0076】
ビット分離部411は、入力された8bitの入力データDIN[7:0]を、上位4bitの入力データDIN[7:4]と下位4bitの入力データDIN[3:0]とに分離する。そして、入力データDIN[7:4]をビット結合部416に、入力データDIN[3:0]をEXOR回路412とEXOR回路414とに出力する。
【0077】
EXOR回路412は、多数決判定部415から入力された反転ビットに応じて、ビット分離部411から入力された下位の入力データDINの各ビットの値を、ビット毎に反転(“1”から“0”、または“0”から“1”)した反転データ[3:0]、または下位の入力データDINの各ビットの値がそのままの非反転データ[3:0]を、ビット結合部416とD−FF413とに出力する。なお、以下の説明においては、EXOR回路412から出力される反転データまたは非反転データを、「下位画像データ」という。また、ビット分離部411から出力される上位4bitの入力データDINを、「上位画像データ」という。また、以下の説明においては、EXOR回路412が、多数決判定部415から入力された反転ビットに応じて、反転データまたは非反転データを出力する処理を、「反転処理」という。
【0078】
D−FF413は、EXOR回路412から出力された下位画像データ[3:0]を保持する。このD−FF413によって保持された下位画像データは、前回出力した出力データDOUTの下位4bitの出力データDOUT[3:0]として、EXOR回路414に出力される。
【0079】
EXOR回路414は、ビット分離部411から入力された下位の入力データDIN[3:0]と、D−FF413から入力された下位の出力データDOUT[3:0]との2つのデータの各ビットの値を比較して、値が変化しているビットの有無を検出する。そして、EXOR回路414は、値が変化しているビットであることを表す値=“1”、または値が変化しているビットではないことを示す値=“0”を、比較したそれぞれのビット毎に出力する。
【0080】
より具体的には、EXOR回路414による2つのデータの比較においては、下位の入力データDINの各ビットと、下位の出力データDOUTの各ビットとの排他的論理和がとられる。これにより、下位の入力データDINのビットの値と下位の出力データDOUTのビットの値とが同じ値のときに“0”が出力され、下位の入力データDINのビットの値と下位の出力データDOUTのビットの値とが異なる値のときに“1”が出力される。
【0081】
多数決判定部415は、EXOR回路414から入力された値が変化しているビットの有無を検出した結果に基づいて、下位の入力データDIN[3:0]が、次に下位の出力データDOUT[3:0]として出力されるときに、値が変化するビットの数(ビット変化数)を算出する。そして、多数決判定部415は、算出したビット変化数と、下位の入力データDINのビット数(データ幅:4ビット)との多数決判定を行い、反転データまたは非反転データのいずれのデータを、下位画像データとして出力するかを決定する。これにより、多数決判定部415は、前回入力された入力データDINを反転処理した後の出力データDOUTと、今回入力された入力データDINとのビット変化数に基づいて、多数決判定を行うことになる。そして、決定したデータを表す情報を反転ビットとして、EXOR回路412とビット結合部416とに出力する。
【0082】
多数決判定部415による多数決判定は、算出したビット変化数が、下位の入力データDINのビット数の過半数であるか否かによって判定される。より具体的には、ビット変化数が下位の入力データDINのビット数の過半数を占める(>2)場合に、反転データを出力すると判定し、反転ビットとして“1”の値を出力する。また、多数決判定部415は、ビット変化数が下位の入力データDINのビット数の半数以下(≦2)の場合に、非反転データを出力すると判定し、反転ビットとして“0”の値を出力する。この反転ビットの値に応じて、EXOR回路412による反転処理が行われる。
【0083】
EXOR回路412による反転処理においては、下位の入力データDINの各ビットと、反転ビットとの排他的論理和がとられる。これにより、EXOR回路412から反転ビットに応じた下位画像データが出力される。より具体的には、反転ビットが“1”のとき、下位の入力データDIN[3:0]の各ビットの値が反転された反転データ[3:0]が出力され、反転ビットが“0”のとき、下位の入力データDIN[3:0]の各ビットの値がそのままの非反転データ[3:0]が出力される。
【0084】
なお、多数決判定部415による多数決判定は、上記に述べたように、前回出力した下位の出力データDOUTと今回出力する下位の出力データDOUTのビット変化数に基づいて行われる。しかし、例えば、下位の入力データDINのビット数が偶数である場合には、ビット変化数が下位の入力データDINのビット数の半数になる場合がある。この場合、EXOR回路412は、下位画像データとして、反転データまたは非反転データのいずれのデータを出力してもよい。
【0085】
しかし、反転ビットも出力データDOUT(パックデータ)に付加されて出力されるため、反転処理の結果に応じて反転ビットが異なる値に変化すると、反転ビットの変化が下位の出力データDOUTの各ビットの変化数に加算されてしまう。このため、前回出力した下位の出力データDOUTに対して今回出力する下位の出力データDOUTのビット変化数が最も少なくなるようにするためには、下位の出力データDOUTと反転ビットとを含めた全体を考慮して、下位画像データを出力するのが望ましい。このため、多数決判定部415は、反転ビットも含めて多数決判定を行う。より具体的には、多数決判定部415は、前回出力した下位の出力データDOUTが、反転データであったか非反転データであったか、すなわち、反転ビットが“1”であったか“0”であったかに基づいて、多数決判定を行う。そして、多数決判定部415は、ビット変化数が下位の入力データDINのビット数の半数(=2)である場合には、前回出力した下位の出力データDOUTに対応した反転ビットの値と同じ値の反転ビットを、今回出力する下位の出力データDOUTに対応した反転ビットとして出力する。これにより、反転ビットの変化が下位の出力データDOUTの各ビットの変化数に加算されてしまうということを回避することができる。
【0086】
ビット結合部416は、ビット分離部411から入力された上位画像データ[7:4]と、EXOR回路412から出力された下位画像データ[3:0]とを結合した転送画素データ[7:0]を生成する。また、ビット結合部416は、さらに、生成した転送画素データの最上位ビットの上位側の次のビットに、多数決判定部415から入力された反転ビットを付加(ビット結合)した出力データDOUT[8:0]を生成する。ここで生成された出力データDOUTが、データ変換部41から最終的に出力する出力データDOUT(パックデータ)として、出力DMA部45に出力される。
【0087】
次に、撮像装置1内のデータ逆変換部について説明する。なお、上記に述べたように、データ逆変換部52とデータ逆変換部62とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ逆変換部52は、前段の入力DMA部56と後段の画像処理部50との間に配置され、データ逆変換部62は、前段の入力DMA部66と後段の表示処理部60との間に配置されている。従って、データ逆変換部52とデータ逆変換部62とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ逆変換部52について説明する。
【0088】
なお、以下の説明においては、データ逆変換部52に、データ変換部41によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図19に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitであるものとして説明する。
【0089】
データ逆変換部52は、入力DMA部56から順次入力された32bitのパックデータの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した10bitの画素データに復元する。そして、データ逆変換部52は、例えば、画像処理部50から入力される図示しないデータイネーブル信号に基づいて復元した元の画素データを順次出力する。なお、データイネーブル信号は、画像処理部50に出力するタイミングを表す信号である。
【0090】
データ逆変換部52が画素データを復元する際には、まず、入力された32bitのパックデータ(このパックデータは、データ変換部41が生成したパックデータと同等である)から、データ変換部41によるパッキング方法と逆の方法で、それぞれのデータ(このデータは、データ変換部41が生成した転送画素データと同等であるため、以下の説明においては、「転送画素データ」として説明する)に、順次分割(アンパッキング)する。
【0091】
その後、データ逆変換部52は、パッキング単位(4転送)内に存在する未使用ビットに付加されている、転送画素データを生成したときの情報に基づいて、データ変換部41によってパックデータを生成した方法と逆の方法で、それぞれの画素データを生成する。より具体的には、データ逆変換部52は、転送画素データを、予め定められたビット数の上位の転送画素データと下位の転送画素データとに分離する。そして、転送画素データを生成したときの情報に基づいて、下位の転送画素データに対して反転処理を行う。その後、今回分離した上位の転送画素データと結合し、元の画素データとする。
【0092】
なお、データ逆変換部52は、上記に述べたように、入力DMA部56からパックデータが入力される毎に、転送画素データに分割し、分割した転送画素データに対する反転処理を順次行うこともできるが、データ逆変換部52内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータをメモリ部に一旦保持し、保持したそれぞれのパックデータからの転送画素データの分割と、転送画素データを生成したときの情報に基づいた反転処理を行う。
【0093】
また、入力DMA部56から入力されたパックデータを最初に、ビット変化の少ないパックデータと、パックデータを生成したときの情報とに分割し、元のパックデータに戻した後に、元のパックデータに配置されたそれぞれの画素データに分割(アンパッキング)する構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータを、転送画素データと同様に扱って処理する。
【0094】
図3は、本実施形態の撮像装置1に備えた第1の構成のデータ逆変換部52の概略構成を示したブロック図である。図3に示したように、データ逆変換部52は、ビット分離部521と、EXOR回路522と、ビット結合部523と、を備えている。
【0095】
上記に述べたように、データ逆変換部52は、入力DMA部56から入力された32bitのパックデータから転送画素データを分割し、分割した転送画素データに反転処理を行って、元に戻した画素データを生成する。しかし、以下の説明においては、説明を容易にするため、データ逆変換部52に、入力DMA部56から転送画素データを生成したときの情報が付加された9bitのパックデータが入力され、パックデータから分割した転送画素データから元の画素データを生成する場合について説明する。すなわち、データ逆変換部52は、1つの転送画素データがパッキングされたパックデータから、1つの画素データを復元する場合について説明する。
【0096】
以下の説明においては、32bitのパックデータと9bitのパックデータとを区別するため、以下の説明においては、9bitのパックデータを入力データDIN[8:0]と表す。また、10bitの画素データと8bitの画素データとを区別するため、以下の説明においては、8bitの画素データを出力データDOUT[7:0]と表す。なお、以下の説明において、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0097】
また、以下の説明においては、9bitのパックデータの最上位ビット(入力データDIN[8])に転送画素データを生成したときの情報である反転ビットが付加されており、転送画素データを、上位4bitと下位4bitとに分離して、元の画素データに復元する場合について説明する。
【0098】
ビット分離部521は、入力された9bitの入力データDIN[8:0]を、最上位の入力データDIN[8]、すなわち、反転ビットと、入力データDIN[7:0]、すなわち、転送画素データとに分離する。さらに、ビット分離部521は、入力データDIN[7:0]を、上位4bitの入力データDIN[7:4]と下位4bitの入力データDIN[3:0]とに分離する。そして、入力データDIN[7:4]をビット結合部523に、入力データDIN[8]と入力データDIN[3:0]とをEXOR回路522に出力する。
【0099】
EXOR回路522は、ビット分離部521から入力された反転ビットに応じて、同じくビット分離部521から入力された下位の入力データDINの各ビットの値を、ビット毎に反転(“1”から“0”、または“0”から“1”)した下位のデータ[3:0]、または下位の入力データDINの各ビットの値がそのままの下位のデータ[3:0]を、ビット結合部523に出力する。なお、EXOR回路522が出力する下位のデータは、データ変換部41が生成した反転データまたは非反転データと同等であるため、以下の説明においては、「反転データ」または「非反転データ」として説明する。また、以下の説明においては、EXOR回路522から出力される反転データまたは非反転データを、データ変換部41と同様に、「下位画像データ」という。また、ビット分離部521から出力される上位4bitの入力データDINも、データ変換部41における上位画像データと同様であるため、「上位画像データ」という。また、以下の説明においては、EXOR回路522が、ビット分離部521から入力された反転ビットに応じて、反転データまたは非反転データを出力する処理を、データ変換部41と同様に、「反転処理」という。
【0100】
EXOR回路522による反転処理においては、データ変換部41内のEXOR回路412と同様に、下位の入力データDINの各ビットと、反転ビットとの排他的論理和がとられる。これにより、EXOR回路522から反転ビットに応じた下位の画像データが出力される。すなわち、EXOR回路522からは、EXOR回路412と同様に、反転ビットが“1”のときに、下位の入力データDIN[3:0]の各ビットの値が反転された反転データ[3:0]が出力され、反転ビットが“0”のときに、下位の入力データDIN[3:0]の各ビットの値がそのままの非反転データ[3:0]が出力される。
【0101】
ビット結合部523は、ビット分離部521から入力された上位画像データ[7:4]と、EXOR回路522から出力された下位画像データ[3:0]とを結合した出力データDOUT [7:0]を生成する。ここで生成された出力データDOUTが、データ逆変換部52によって復元された、すなわち、データ変換部41に入力された、元の画素データとして、画像処理部50に出力される。
【0102】
<反転処理方法>
次に、データ変換部41による転送画素データの生成方法について説明する。図4は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41における転送画素データの生成方法を説明する図である。なお、以下の説明においては、説明を容易にするため、データ変換部41に8ビットの入力データDINが入力され、9ビットの出力データDOUTを出力する場合について説明する。ここでは、図25(a)に示した入力データと同じデータが、入力データDINとしてデータ変換部41に入力される場合を考える。そして、データ変換部41が、1つの転送画素データをパッキングしたパックデータを生成する場合について説明する。図4(a)は、図25(a)に示した入力データ(入力データDIN)と下位の入力データDINのビット変化数とを示し、図4(b)には、データ変換部41から出力される出力データDOUTおよび反転ビット(パックデータ)と、出力データDOUT全体のビット変化数とを示している。
【0103】
データ変換部41には、図4(a)に示したような入力データDINが、上段から下段に向かって時系列的に順次入力される。データ変換部41は、入力データDINが入力される毎に、下位の入力データDINの各ビットの値を順次比較する。より具体的には、図4(a)に示した入力データDINのそれぞれの段において、下位の入力データDINの各ビットの値を上段の下位の入力データDINの値と比較し、ビット変化数を算出する。これにより、図4(a)に示したような下位の入力データDINのビット変化数を得る。図4(a)からわかるように、データ変換部41に入力された入力データDINにおける下位の入力データDIN[3:0]のビット変化数は、「A」の段のビット変化数が半数を超えている。
【0104】
そこで、データ変換部41は、算出したビット変化数に応じて、下位の入力データDINに対して反転処理を行った転送画素データを生成し、さらに、生成した転送画素データの最上位ビットの上位側の次のビットに反転ビットを付加して、図4(b)に示したようなパックデータを、最終的に出力するパックデータとして順次出力する。図4(b)をみてわかるように、データ変換部41が生成したパックデータに含まれる転送画素データおけるビット変化数の合計は、26ビットになる。これは、図25(b)に示した従来のデータ処理装置における反転処理よりも、データの変化量が4ビット削減されている。
【0105】
このように、データ変換部41は、データの相関性が低い(データの変化頻度の高い)下位の入力データDINの各ビットの値を順次比較し、ビット変化数が大きい下位の入力データDINに対して反転処理を行う。これにより、図24に示した従来のデータ処理装置による反転処理よりも、データを転送するときの全体でのデータの変化量を削減することができる。すなわち、反転処理によるデータの変化量の削減効果を、より多く得ることができる。なお、図4(b)の「B」の段では、転送画素データのビット変化数が、過半数になっている。これは、上位の入力データDINのビット変化数が、多いことに起因している。
【0106】
また、図24に示した従来のデータ処理装置では、入力データの全てのビットに対して反転処理を行っているのに対して、データ変換部41では、入力データDINの下位のビットにのみ反転処理を行っている。このため、データ変換部41では、多数決判定部415など、反転処理に係る回路規模の削減の効果も得ることができる。
【0107】
ここで、反転ビットも考慮したビット変化数について考える。図5は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41における転送画素データの生成方法を説明する図である。図5においては、図4(b)に示した出力データDOUTと反転ビットとを合わせた全体を考慮した、パックデータの生成方法を示している。そして、図5(a)には、図4(b)に示した出力データDOUTおよび反転ビット(パックデータ)と、反転ビットを含めた出力データDOUT全体のビット変化数とを示し、図5(b)には、反転ビットを考慮した判定によって生成された出力データDOUTおよび反転ビット(パックデータ)と、パックデータ全体のビット変化数とを示している。
【0108】
図4(b)に示した出力データDOUTと反転ビットとを合わせたビット変化数は、図5(a)に示したように、反転ビットの変化がビットの変化数に加算される。このため、図5(a)の場合においては、図25(b)に示した従来のデータ処理装置において反転ビットを含めた場合のビット変化数よりも削減されるものの、得られるデータの変化量の削減効果は少なくなる。また、図5(a)からわかるように、「C」の段のビット変化数が半数を超えている。
【0109】
そこで、多数決判定部415が、反転ビットも含めて多数決判定を行うことによって、図5(b)に示したようなパックデータを、最終的に出力するパックデータとする。図5(b)をみてわかるように、データ変換部41が反転ビットを考慮して生成したパックデータに含まれる転送画素データにおけるビット変化数の合計は、28ビットになる。なお、図示していないが、図25(b)に示した従来のデータ処理装置において反転ビットを考慮した場合のビット変化数の合計は、33ビットである。このように、反転ビットを含めた場合においても、従来のデータ処理装置における反転処理よりも、データの変化量を削減することができる。なお、図5(b)の「D」の段では、転送画素データのビット変化数が、過半数になっている。これは、上位の入力データDINのビット変化数が、多いことに起因している。
【0110】
次に、画素データの配置(パッキング)方法について説明する。本実施形態の撮像装置1では、データ変換部41および51が入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部52および62が入力されたパックデータを元の画素データに戻す。なお、以下の説明においては、データ変換部41に、図19に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitであるものとする。そして、1転送あたり3画素分の画素データを、32bitのメモリバスに配置するものとする。
【0111】
なお、データ逆変換部52および62によるパックデータを元の画素データに戻す方法は、データ変換部41および51による画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
【0112】
また、以下の説明においては、10bitの画素データのそれぞれを、上位6bitと下位4bitとに分離し、1転送内に含まれる3つの画素データの下位4bitに共通の反転ビットを、1転送内に存在する未使用ビットの内、下位側のビットに付加する場合について説明する。従って、多数決判定部415は、4bit×3画素=12bitの画素データを、図2の説明における下位の入力データDINと同様に扱って、多数決判定を行い、多数決判定の結果に応じた1つの反転ビットを出力する。また、図2の説明における上位の入力データDINは、6bit×3画素=18bitの画素データである。
【0113】
<第1のデータ配置方法>
図6は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41における第1のデータ配置方法を説明する図である。図6(a)には、従来のバースト単位でのデータ配置方法(パッキング方法)によって画素データの各ビットが配置されたパックデータを示している。また、図6(b)には、データ変換部41によってパックデータ内の画素データに対する反転ビットが付加されたパックデータ内のデータの配置を示している。以下の説明においては、データ変換部41が、図6(a)に示したパックデータ内の画素データの配置と同様の配置で、反転処理された画素データが配置された、図6(b)に示したパックデータを生成する場合について説明する。
【0114】
本第1のパッキング方法では、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理し、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。
【0115】
なお、図6に示したように、それぞれの1転送のデータには、3つの画素データが含まれているため、データ変換部41は、3つの画素データを1つのデータとして扱う。このため、データ変換部41は、例えば、3つの画素データを一時的に保持するメモリ部を備え、順次入力された3つの画素データをメモリ部に一旦保持し、保持したそれぞれの画素データに基づいて反転処理、パッキング、および反転ビットの付加を行う。
【0116】
より具体的には、まず、ビット分離部411に1転送目の3つの画素データ「R0」、「G1」、「R2」が入力されると、ビット分離部411は、入力されたそれぞれの画素データを、それぞれ保持する。そして、ビット分離部411は、メモリ部に保持した「R0」のビット[9]〜ビット[4]、「G1」のビット[9]〜ビット[4]、および「R2」のビット[9]〜ビット[4]の18bitのデータを、1転送目の上位画像データ[17:0]として、ビット結合部416に出力する。また、ビット分離部411は、メモリ部に保持した「R0」のビット[3]〜ビット[0]、「G1」のビット[3]〜ビット[0]、および「R2」のビット[3]〜ビット[0]の12bitのデータを、1転送目の下位の画素データ[11:0]として、EXOR回路412とEXOR回路414とに出力する。
【0117】
ここで、1転送目の下位の画素データ[11:0]は、バースト転送において最初に出力されるデータであるため、多数決判定部415からは、反転ビットとして“0”の値が出力されている。このため、EXOR回路412は、1転送目の下位の画素データ[11:0]がそのままの1転送目の下位画像データ[11:0]を出力する。また、D−FF413は、1転送目の下位画像データ[11:0]を保持する。
【0118】
その後、ビット結合部416は、ビット分離部411から入力された1転送目の上位画像データ[17:0]と、EXOR回路412から入力された1転送目の下位画像データ[11:0]とを、図6(b)の1転送目に示したように、それぞれの画素データ(「R0」、「G1」、「R2」)毎に32bitのメモリバスに配置する。より具体的には、1転送目の下位画像データ[3:0]、すなわち、反転処理された「R0」のビット[3]〜ビット[0]を、メモリバスのビット[3]〜ビット[0]に配置し、1転送目の上位画像データ[5:0]、すなわち、「R0」のビット[9]〜ビット[4]を、メモリバスのビット[9]〜ビット[4]に配置する。また、1転送目の下位画像データ[7:4]、すなわち、反転処理された「G1」のビット[3]〜ビット[0]を、メモリバスのビット[13]〜ビット[10]に配置し、1転送目の上位画像データ[11:6]、すなわち、「G1」のビット[9]〜ビット[4]を、メモリバスのビット[19]〜ビット[14]に配置する。また、1転送目の下位画像データ[11:8]、すなわち、反転処理された「R2」のビット[3]〜ビット[0]を、メモリバスのビット[23]〜ビット[20]に配置し、1転送目の上位画像データ[17:12]、すなわち、「R0」のビット[9]〜ビット[4]を、メモリバスのビット[29]〜ビット[24]に配置する。
【0119】
また、ビット結合部416は、多数決判定部415から入力された1転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置する。なお、メモリバスのビット[31]は、未使用ビットにする。
【0120】
続いて、ビット分離部411に2転送目の3つの画素データ「G3」、「R4」、「G5」が入力されると、ビット分離部411は、入力されたそれぞれの画素データを、それぞれ保持する。そして、ビット分離部411は、メモリ部に保持した「G3」のビット[9]〜ビット[4]、「R4」のビット[9]〜ビット[4]、および「G5」のビット[9]〜ビット[4]の18bitのデータを、2転送目の上位画像データ[17:0]として、ビット結合部416に出力する。また、ビット分離部411は、メモリ部に保持した「G3」のビット[3]〜ビット[0]、「R4」のビット[3]〜ビット[0]、および「G5」のビット[3]〜ビット[0]の12bitのデータを、2転送目の下位の画素データ[11:0]として、EXOR回路412とEXOR回路414とに出力する。
【0121】
EXOR回路414は、ビット分離部411から入力された2転送目の下位の画素データ[11:0]の各ビットの値と、D−FF413から入力された1転送目の下位画像データ[11:0]の各ビットの値とを比較して、値が変化しているビットの有無を検出する。そして、EXOR回路414は、それぞれのビット毎に、値が変化しているビットの有無を表す値を、多数決判定部415に出力する。そして、多数決判定部415は、EXOR回路414から入力された値が変化しているビットの有無を検出した結果に基づいて多数決判定を行い、反転ビットを出力する。これにより、EXOR回路412は、2転送目の下位の画素データ[11:0]を反転処理した2転送目の下位画像データ[11:0]を出力する。また、D−FF413は、2転送目の下位画像データ[11:0]を保持する。
【0122】
その後、ビット結合部416は、ビット分離部411から入力された2転送目の上位画像データ[17:0]と、EXOR回路412から入力された2転送目の下位画像データ[11:0]とを、図6(b)の2転送目に示したように、それぞれの画素データ(「G3」、「R4」、「G5」)毎に32bitのメモリバスに配置する。より具体的には、2転送目の下位画像データ[3:0]、すなわち、反転処理された「G3」のビット[3]〜ビット[0]を、メモリバスのビット[3]〜ビット[0]に配置し、2転送目の上位画像データ[5:0]、すなわち、「G3」のビット[9]〜ビット[4]を、メモリバスのビット[9]〜ビット[4]に配置する。また、2転送目の下位画像データ[7:4]、すなわち、反転処理された「R4」のビット[3]〜ビット[0]を、メモリバスのビット[13]〜ビット[10]に配置し、2転送目の上位画像データ[11:6]、すなわち、「R4」のビット[9]〜ビット[4]を、メモリバスのビット[19]〜ビット[14]に配置する。また、2転送目の下位画像データ[11:8]、すなわち、反転処理された「G5」のビット[3]〜ビット[0]を、メモリバスのビット[23]〜ビット[20]に配置し、2転送目の上位画像データ[17:12]、すなわち、「G5」のビット[9]〜ビット[4]を、メモリバスのビット[29]〜ビット[24]に配置する。
【0123】
また、ビット結合部416は、多数決判定部415から入力された2転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置する。なお、メモリバスのビット[31]は、未使用ビットにする。
【0124】
以降、同様に、データ変換部41は、入力された3転送目の3つの画素データ「R6」、「G7」、「R8」、4転送目の3つの画素データ「G9」、「R10」、「G11」、が入力される毎に、処理後の画素データをメモリバスのビット[29]〜ビット[0]に配置すると共に、下位画像データ[11:0]に対応した反転ビットをメモリバスのビット[30]に配置する。なお、同様に、メモリバスのビット[31]は、未使用ビットにする。
【0125】
このようにして、本第1のパッキング方法では、バースト転送における1サイクル分のメモリアクセス(1転送)毎に、画素データの上位のビットと、反転処理した画素データの下位のビットと、反転ビットとをメモリバスのそれぞれのビットに配置する。これにより、バースト転送時における各転送間でのメモリバスの各ビットの変化量を少なくすることができる。
【0126】
<第2のデータ配置方法>
図7は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41における第2のデータ配置方法を説明する図である。図7(a)には、本第2のデータ配置方法(パッキング方法)におけるパックデータの第1のデータ配置の一例を示している。また、図7(b)には、本第2のデータ配置方法(パッキング方法)におけるパックデータの第2のデータ配置の一例を示している。
【0127】
画像データは、通常、隣接する画素同士の方が画素データの変化量が小さい。このため、パックデータを構築する際には、バースト転送時にメモリバスの各ビットの変化量が最も小さくなるように、隣接する画素の画素データの同一ビットを、各転送におけるメモリバスの同一のビットに配置することが望ましい。
【0128】
また、ベイヤー、RGB、またはYC422点順次など、画像処理部50が画像処理する際の画像のフォーマットによって、画像データ内の各画素データが表す色の情報が異なる。このため、パックデータを構築する際には、バースト転送時にメモリバスの各ビットの変化量が最も小さくなるように、同一色の画素データを、各転送におけるメモリバスの同一のビットに配置することが望ましい。
【0129】
本第2のパッキング方法では、第1のパッキング方法と同様に、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理し、反転処理した後の画素データの下位ビットと、上位ビットとを、それぞれ1転送のメモリバスに配置する。このとき、本第2のパッキング方法では、バースト転送する際の連続する2転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるように、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、第1のパッキング方法と同様に、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。
【0130】
なお、本第2のパッキング方法は、上位画像データおよび下位画像データの配置位置が、第1のパッキング方法と異なるのみである。しかし、同じ1転送のメモリバスに配置する画素データは、第1のパッキング方法と異なり、データ変換部41に連続して入力される画素データではない。このため、データ変換部41は、1バースト分、すなわち、パッキング単位(4転送)分の10bitの画素データを一時的に保持するメモリ部を備え、1バースト(4転送)分の全ての画素データをメモリ部に一旦保持する。そして、メモリ部に保持したそれぞれの画素データの内、同じ1転送のメモリバスに配置する3つの画素データを1つのデータとして扱って、反転処理を行う。なお、保持した画素データに基づいた反転処理、多数決判定、および反転ビットの付加は、第1のパッキング方法と同様であるため、詳細な説明は省略する。
【0131】
図7(a)に示した本第2のパッキング方法におけるパックデータの第1のデータ配置の一例では、バースト転送における連続する2転送間のデータにおいて、隣接する同一色の画素データのビットの位置がなるべく同じ位置になるように、上位画像データおよび下位画像データをメモリバス上に配置する。
【0132】
より具体的には、図7(a)に示したように、1転送目におけるメモリバスへの上位画像データおよび下位画像データの配置では、1転送目の下位画像データ[3:0](反転処理された「R0」のビット[3]〜ビット[0])をメモリバスのビット[3]〜ビット[0]に配置し、1転送目の上位画像データ[5:0](「R0」のビット[9]〜ビット[4])をメモリバスのビット[9]〜ビット[4]に配置する。また、1転送目の下位画像データ[7:4](反転処理された「G1」のビット[3]〜ビット[0])をメモリバスのビット[13]〜ビット[10]に配置し、1転送目の上位画像データ[11:6](「G1」のビット[9]〜ビット[4])をメモリバスのビット[19]〜ビット[14]に配置する。また、1転送目の下位画像データ[11:8](反転処理された「R8」のビット[3]〜ビット[0])をメモリバスのビット[23]〜ビット[20]に配置し、1転送目の上位画像データ[17:12](「R8」のビット[9]〜ビット[4])をメモリバスのビット[29]〜ビット[24]に配置する。また、1転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0133】
2転送目におけるメモリバスへの上位画像データおよび下位画像データの配置では、2転送目の下位画像データ[3:0](反転処理された「R2」のビット[3]〜ビット[0])をメモリバスのビット[3]〜ビット[0]に配置し、2転送目の上位画像データ[5:0](「R2」のビット[9]〜ビット[4])をメモリバスのビット[9]〜ビット[4]に配置する。また、2転送目の下位画像データ[7:4](反転処理された「G3」のビット[3]〜ビット[0])をメモリバスのビット[13]〜ビット[10]に配置し、2転送目の上位画像データ[11:6](「G3」のビット[9]〜ビット[4])をメモリバスのビット[19]〜ビット[14]に配置する。また、2転送目の下位画像データ[11:8](反転処理された「R10」のビット[3]〜ビット[0])をメモリバスのビット[23]〜ビット[20]に配置し、2転送目の上位画像データ[17:12](「R10」のビット[9]〜ビット[4])をメモリバスのビット[29]〜ビット[24]に配置する。また、2転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0134】
以降、同様に、データ変換部41は、3転送目の3つの画素データ「R4」、「G5」、「G9」、4転送目の3つの画素データ「R6」、「G7」、「G11」にそれぞれ対応した上位画像データおよび下位画像データを、メモリバスのビット[29]〜ビット[0]に配置する。また、データ変換部41は、同様に、それぞれの下位画像データに対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0135】
図7(b)に示した本第2のパッキング方法におけるパックデータの第2のデータ配置の一例では、第1のデータ配置の一例と同様に、バースト転送における連続する2転送間のデータにおいて、隣接する同一色の画素データのビットの位置がなるべく同じ位置になるように、上位画像データおよび下位画像データをメモリバス上に配置する。このとき、本第2のデータ配置の一例では、上位画像データと下位画像データとを分けて、メモリバス上に配置する。
【0136】
より具体的には、図7(b)に示したように、1転送目におけるメモリバスへの上位画像データおよび下位画像データの配置では、1転送目の上位画像データ[5:0](「R0」のビット[9]〜ビット[4])をメモリバスのビット[5]〜ビット[0]に配置し、1転送目の上位画像データ[11:6](「G1」のビット[9]〜ビット[4])をメモリバスのビット[11]〜ビット[6]に配置し、1転送目の上位画像データ[17:12](「R8」のビット[9]〜ビット[4])をメモリバスのビット[17]〜ビット[12]に配置する。また、1転送目の下位画像データ[3:0](反転処理された「R0」のビット[3]〜ビット[0])をメモリバスのビット[21]〜ビット[18]に配置し、1転送目の下位画像データ[7:4](反転処理された「G1」のビット[3]〜ビット[0])をメモリバスのビット[25]〜ビット[22]に配置し、1転送目の下位画像データ[11:8](反転処理された「R8」のビット[3]〜ビット[0])をメモリバスのビット[29]〜ビット[26]に配置する。また、1転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0137】
2転送目におけるメモリバスへの上位画像データおよび下位画像データの配置では、2転送目の上位画像データ[5:0](「R2」のビット[9]〜ビット[4])をメモリバスのビット[5]〜ビット[0]に配置し、2転送目の上位画像データ[11:6](「G3」のビット[9]〜ビット[4])をメモリバスのビット[11]〜ビット[6]に配置し、2転送目の上位画像データ[17:12](「R10」のビット[9]〜ビット[4])をメモリバスのビット[17]〜ビット[12]に配置する。また、2転送目の下位画像データ[3:0](反転処理された「R2」のビット[3]〜ビット[0])をメモリバスのビット[21]〜ビット[18]に配置し、2転送目の下位画像データ[7:4](反転処理された「G3」のビット[3]〜ビット[0])をメモリバスのビット[25]〜ビット[22]に配置し、2転送目の下位画像データ[11:8](反転処理された「R10」のビット[3]〜ビット[0])をメモリバスのビット[29]〜ビット[26]に配置する。また、2転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0138】
以降、同様に、データ変換部41は、3転送目の3つの画素データ「R4」、「G5」、「G9」、4転送目の3つの画素データ「R6」、「G7」、「G11」にそれぞれ対応した上位画像データを、メモリバスのビット[17]〜ビット[0]に配置する。また、3転送目の3つの画素データ「R4」、「G5」、「G9」、4転送目の3つの画素データ「R6」、「G7」、「G11」にそれぞれ対応した下位画像データを、メモリバスのビット[29]〜ビット[18]に配置する。また、データ変換部41は、同様に、それぞれの下位画像データに対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0139】
このようにして、本第2のパッキング方法でも、第1のパッキング方法と同様に、バースト転送における1サイクル分のメモリアクセス(1転送)毎に、画素データの上位のビットと、反転処理した画素データの下位のビットと、反転ビットとをメモリバスのそれぞれのビットに配置する。また、本第2のパッキング方法では、バースト転送する際の連続する2転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるように、反転処理した後の画素データの下位ビットと、上位ビットとを、それぞれ1転送のメモリバスに配置する。これにより、バースト転送時における各転送間でのメモリバスの各ビットの変化量が、さらに少なくなる場合がある。
【0140】
なお、図7に示した第2のパッキング方法では、反転処理した後の画素データの下位ビットと上位ビットとをメモリバスに配置する際に、画素データの各色をまとめて、それぞれ1転送のメモリバスに配置する場合について説明したが、画素データをメモリバスに配置する方法は、本第2のパッキング方法に限定されるものではない。すなわち、同一色で同一ビットの画素データが、連続する2転送間においてメモリバス上の同一ビットに配置される方法であれば、他の配置方法を適用することもできる。例えば、各画素データをそれぞれのビットに分割して、分割したビット毎に、同一色で同一ビットの画素データが、連続する2転送間のメモリバス上の同一ビットに配置されるようにすることもできる。
【0141】
上記に述べたように、本第1の構成のデータ変換部41および51では、データの相関性が低い(データの変化頻度の高い)下位の画素データの各ビットの値を順次比較し、ビット変化数が大きい下位の画素データに対して反転処理を行うことにより、バースト転送時におけるメモリバスの各ビットの変化量を少なくした画素データを、メモリバスに配置することができる。これにより、本第1の構成のデータ変換部41および51では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法よりも、画像データの転送に係る消費電力を低減させることができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
【0142】
一般的に、画素データは、バイナリコードで表される。しかし、バイナリコードの場合、相関性が高く、値の変化が少ない(データの変化頻度が低い)データであっても、データの変化によっては、各ビットの値が全て異なる値になってしまう場合がある。例えば、データの値が“128”から“127”に変化した場合、バイナリコードでは、“1000_0000”から“0111_1111”に変化するため、全てのビットの値が変化してしまう。そこで、バイナリコードの代わりに、グレイコードを用いて画素データを表すことを検討する。
【0143】
グレイコードは、その特徴として、データの変化が“1”である場合には、必ず1ビットだけしか変化しないという特徴があるデータコードである。画素データをグレイコードで表すことによって、バイナリコードのように、データの変化が“1”であるにもかかわらず全てのビットの値が変化してしまう、ということを回避することができる。例えば、画素データが8bitである場合、画素データの値が“128”および“64”の近辺で微小に変動した場合などに、グレイコードにおいてはビットの値の変化が少ないという効果を得ることができる。
【0144】
<第2の構成>
次に、本第2の構成のデータ変換部について説明する。図8は、本実施形態の撮像装置1に備えた第2の構成のデータ変換部43の概略構成を示したブロック図である。図8に示したデータ変換部43は、第1の構成のデータ変換部41の代わりに、撮像装置1に備えられる。従って、データ変換部43は、データ変換部51の代わりに撮像装置1に備えることもできる。図8に示したように、データ変換部43は、ビット分離部411と、EXOR回路412と、D−FF413と、EXOR回路414と、多数決判定部415と、ビット結合部416と、コード変換部431と、を備えている。
【0145】
本第2の構成のデータ変換部43と、図2に示した第1の構成のデータ変換部41との異なる点は、第1の構成のデータ変換部41に加えて、コード変換部431を備えたことのみである。従って、以下の説明においては、第1の構成のデータ変換部41内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【0146】
なお、以下の説明においては、第1の構成と同様に、データ変換部43に、図19に示したような、16行×16列のベイヤーデータが入力され、4転送をベイヤーデータ内の各画素データのパッキング単位とし、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitである場合について説明する。
【0147】
データ変換部43は、第1の構成のデータ変換部41と同様に、撮像処理部40から順次入力された10bitの画素データの各ビットのデータを、上述したような予め定められたパッキング方法で、メモリバス上の各ビットに配置した32bitのパックデータを出力する。ただし、 データ変換部43がパックデータを生成する際に、入力された画素データをビット毎に比較して生成する転送画素データの生成方法が、第1の構成のデータ変換部41と異なる。
【0148】
より具体的には、データ変換部43は、第1の構成のデータ変換部41と同様に、入力された画素データを予め定められたビット数の上位の画素データと下位の画素データとに分離する。そして、今回分離した下位の画素データは、第1の構成のデータ変換部41と同様に、反転処理して、値が変化しているビットの数が少ない下位の画素データを生成する。また、データ変換部43は、今回分離した上位の画素データのデータコードを、バイナリコードからグレイコードに変換する。その後、グレイコードに変換した上位の画素データと、反転処理した下位の画素データとを結合し、転送画素データとする。また、データ変換部43は、第1の構成のデータ変換部41と同様に、下位の画素データを反転処理したときの情報を表す反転ビットを付加する。
【0149】
その後、データ変換部43は、第1の構成のデータ変換部41と同様に、上述したような予め定められたパッキング方法で、転送画素データの各ビットのデータと、反転ビットとを、メモリバスの各ビットに配置し、最終的に出力するパックデータとして出力する。
【0150】
上記に述べたように、データ変換部43は、入力された10bitの画素データの値が変化しているビットの数が少ない転送画素データをパッキングして、最終的に出力する32bitのパックデータを生成する。しかし、以下の説明においては、説明を容易にするため、データ変換部43に8bitの画素データが順次入力され、入力された画素データから転送画素データを生成し、転送画素データを生成したときの情報を付加した9bitのパックデータを出力する場合について説明する。すなわち、データ変換部43においても、第1の構成のデータ変換部41と同様に、1つの転送画素データをパッキングしたパックデータを生成する場合について説明する。なお、複数の転送画素データをパッキングしたパックデータの生成方法は、図6に示した上述した第1のパッキング方法および図7に示した上述した第2のパッキング方法と同様であるため、それぞれの詳細な説明は省略する。
【0151】
また、以下の説明においては、第1の構成のデータ変換部41と同様に、データ変換部43に入力される10bitの画素データと8bitの画素データとを区別するため、8bitの画素データを入力データDIN[7:0]と表す。また、32bitのパックデータと9bitのパックデータとを区別するため、9bitのパックデータを出力データDOUT[8:0]と表す。なお、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0152】
また、以下の説明においては、8bitの入力データDINを、上位4bitと下位4bitとに分離して、ビット変化の少ない転送画素データを生成する場合について説明する。
【0153】
コード変換部431は、ビット分離部411から入力された上位画像データ[7:4]のデータコードを、バイナリコードからグレイコードに変換する。そして、コード変換部431は、グレイコードに変換した上位画像データを、ビット結合部416に出力する。
【0154】
ビット結合部416は、コード変換部431から入力されたグレイコードに変換された上位画像データ[7:4]と、EXOR回路412から出力された下位画像データ[3:0]とを結合した転送画素データ[7:0]を生成する。また、ビット結合部416は、さらに、生成した転送画素データの最上位ビットの上位側の次のビットに、多数決判定部415から入力された反転ビットを付加(ビット結合)した出力データDOUT[8:0]を生成する。ここで生成された出力データDOUTが、データ変換部43から最終的に出力する出力データDOUT(パックデータ)として、出力DMA部45に出力される。
【0155】
次に、本第2の構成のデータ逆変換部について説明する。図9は、本実施形態の撮像装置1に備えた第2の構成のデータ逆変換部54の概略構成を示したブロック図である。図9に示したデータ逆変換部54は、第1の構成のデータ逆変換部52の代わりに、撮像装置1に備えられる。従って、データ逆変換部54は、データ逆変換部62の代わりに撮像装置1に備えることもできる。図9に示したように、データ逆変換部54は、ビット分離部521と、EXOR回路522と、ビット結合部523と、コード変換部541と、を備えている。
【0156】
本第2の構成のデータ逆変換部54と、図3に示した第1の構成のデータ逆変換部52との異なる点は、第1の構成のデータ逆変換部52に加えて、コード変換部541を備えたことのみである。従って、以下の説明においては、第1の構成のデータ逆変換部52内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【0157】
なお、以下の説明においては、第1の構成と同様に、データ逆変換部54に、データ変換部43によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図19に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitであるものとして説明する。
【0158】
データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、入力DMA部56から順次入力された32bitのパックデータの各ビットに配置されたデータを、上述したような予め定められたパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した10bitの画素データに復元する。ただし、データ逆変換部54が画素データを復元する際に、分割されたそれぞれの転送画素データを、元の画素データに復元する方法が、第1の構成のデータ逆変換部52と異なる。
【0159】
より具体的には、データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、入力された32bitのパックデータから、データ変換部43によるパッキング方法と逆の方法で、それぞれの転送画素データに、順次分割(アンパッキング)する。
【0160】
その後、データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、転送画素データを、予め定められたビット数の上位の転送画素データと下位の転送画素データとに分離する。そして、パッキング単位(4転送)内に存在する未使用ビットに付加されている、転送画素データを生成したときの情報を表す反転ビットに基づいて、今回分離した下位の転送画素データに対して反転処理を行う。また、データ逆変換部54は、今回分離した上位の転送画素データのデータコードを、グレイコードからバイナリコードに変換する。その後、バイナリコードに変換した上位の転送画素データと、反転処理した下位の転送画素データとを結合し、元の画素データとする。
【0161】
上記に述べたように、データ逆変換部54は、入力DMA部56から入力された32bitのパックデータから転送画素データを分割し、分割した転送画素データに反転処理を行って、元に戻した画素データを生成する。しかし、以下の説明においては、説明を容易にするため、データ逆変換部54に、入力DMA部56から転送画素データを生成したときの情報が付加された9bitのパックデータが入力され、パックデータから分割した転送画素データから元の画素データを生成する場合について説明する。すなわち、データ逆変換部54においても、第1の構成のデータ逆変換部52と同様に、1つの転送画素データがパッキングされたパックデータから、1つの画素データを復元する場合について説明する。
【0162】
また、以下の説明においては、第1の構成のデータ逆変換部52と同様に、32bitのパックデータと9bitのパックデータとを区別するため、9bitのパックデータを入力データDIN[8:0]と表す。また、10bitの画素データと8bitの画素データとを区別するため、8bitの画素データを出力データDOUT[7:0]と表す。なお、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0163】
また、以下の説明においては、9bitのパックデータの最上位ビット(入力データDIN[8])に転送画素データを生成したときの情報である反転ビットが付加されており、転送画素データを、上位4bitと下位4bitとに分離して、元の画素データに復元する場合について説明する。
【0164】
コード変換部541は、ビット分離部521から入力された上位画像データ[7:4]のデータコードを、グレイコードからバイナリコードに変換する。そして、コード変換部541は、バイナリコードに変換した上位画像データを、ビット結合部523に出力する。
【0165】
ビット結合部523は、コード変換部541から入力されたバイナリコードに変換された上位画像データ[7:4]と、EXOR回路522から出力された下位画像データ[3:0]とを結合した出力データDOUT [7:0]を生成する。ここで生成された出力データDOUTが、データ逆変換部54によって復元された、すなわち、データ変換部43に入力された、元の画素データとして、画像処理部50に出力される。
【0166】
<反転処理方法>
次に、データ変換部43による転送画素データの生成方法について説明する。図10は、本実施形態の撮像装置1に備えた第2の構成のデータ変換部43における転送画素データの生成方法を説明する図である。なお、以下の説明においては、説明を容易にするため、データ変換部43に8ビットの入力データDINが入力され、9ビットの出力データDOUTを出力する場合において、8bitの入力データDINを、上位4bitと下位4bitとに分離して、ビット変化の少ない転送画素データを生成する場合について説明する。そして、データ変換部43が、1つの転送画素データをパッキングしたパックデータを生成する場合について説明する。図10(a)は、入力データDINと上位および下位のそれぞれの入力データDINのビット変化数とを示し、図10(b)には、データ変換部43から出力される出力データDOUTおよび反転ビット(パックデータ)と、上位および下位のそれぞれの出力データDOUTのビット変化数とを示している。
【0167】
ここでは、データ変換部43に、図10(a)に示したような入力データDINが、上段から下段に向かって時系列的に順次入力される場合を考える。図10(a)は、入力データDINの値が“128”または“64”の近辺で微小に変動している場合を示している。図10(a)をみてわかるように、入力データDINのデータの相関性が高い(データの変化頻度が低い)場合であっても、それぞれのビットの値は変化している。ここで、図10(a)に示した入力データDINを、上位の入力データDINと下位の入力データDINとに分けて、それぞれビット変化数をみると、上位の入力データDINのビット変化数の合計は27ビットであり、下位の入力データDINのビット変化数の合計は26ビットである。なお、図10(a)をみてわかるように、上位4bitの入力データDINの変化は、“1”である。
【0168】
データ変換部43は、入力データDINが入力される毎に、第1の構成のデータ変換部41と同様に、下位の入力データDINの各ビットの値を順次比較し、下位の入力データDINに対して反転処理を行った下位画像データを生成する。また、データ変換部43は、入力データDINが入力される毎に、上位の入力データDINのバイナリコードを、グレイコードに変換した上位画像データを生成する。そして、データ変換部43は、グレイコードに変換された上位画像データと、反転処理された下位画像データとを結合した転送画素データを生成し、さらに、生成した転送画素データの最上位ビットの上位側の次のビットに反転ビットを付加して、図10(b)に示したようなパックデータを、最終的に出力するパックデータとして順次出力する。
【0169】
図10(b)をみてわかるように、データ変換部43が生成したパックデータに含まれる下位の転送画素データおけるビット変化数の合計は、16ビットになる。これは、図10(b)に示した下位の入力データDINのビット変化数よりも、データの変化量が10ビット削減されている。また、図10(b)をみてわかるように、データ変換部43が生成したパックデータに含まれる上位の転送画素データおけるビット変化数の合計は、9ビットになる。これは、図10(b)に示した上位の入力データDINのビット変化数よりも、データの変化量が18ビット削減されている。
【0170】
このように、データ変換部43は、第1の構成のデータ変換部41と同様に、データの相関性が低い(データの変化頻度の高い)下位の入力データDINの各ビットの値を順次比較し、ビット変化数が大きい下位の入力データDINに対して反転処理を行う。また、データ変換部43は、データの相関性が高い(データの変化頻度が低い)上位の入力データDINに対しては、バイナリコードをグレイコードに変換する。これにより、入力データDINのデータの相関性が高い(データの変化頻度が低い)場合であっても、ビット変化の少ないパックデータを生成することができる。特に、画素データの上位ビットは、相関性が高く、値の変化が少ないデータであるが、上位ビットのデータのデータコードを、バイナリコードからグレイコードに変換することによって、上位ビットの画像データは、さらに相関性が高まる。また、第1の構成のデータ変換部41のように、下位の入力データDINに対してのみ反転処理するよりも、データを転送するときの全体でのデータの変化量を削減することができる。なお、図10(b)の「B」の段における上位の転送画素データのビット変化数が、“2”になっているが、これは、入力データDINの値が“128”近辺の値から“64”近辺の値に変化したことに起因している。
【0171】
上記に述べたように、本第2の構成のデータ変換部43では、データの相関性が低い(データの変化頻度の高い)下位の画素データと、データの相関性が高い(データの変化頻度が低い)上位の画素データとのそれぞれに、異なる処理を行うことにより、バースト転送時におけるメモリバスの各ビットの変化量を少なくした画素データを、メモリバスに配置することができる。これにより、本第2の構成のデータ変換部43では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法および第1の構成のデータ変換部41よりも、画像データの転送に係る消費電力を低減させることができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
【0172】
上記に述べた第1の構成のデータ変換部41および第2の構成のデータ変換部43においては、予め定められたビット数の下位の画像データ、すなわち、画像データ内の1つのビットの範囲に対して反転処理を行う場合について説明した。しかし、反転処理を行う画像データのビットの範囲は、予め定められた1つの範囲のみではなく、画像データ内の複数のビットの範囲に対して反転処理を行う構成にすることもできる。
【0173】
<第3の構成>
次に、本第3の構成のデータ変換部について説明する。図11は、本実施形態の撮像装置1に備えた第3の構成のデータ変換部47の概略構成を示したブロック図である。図11に示したデータ変換部47は、第1の構成のデータ変換部41または第2の構成のデータ変換部43の代わりに、撮像装置1に備えられる。従って、データ変換部47は、データ変換部51の代わりに撮像装置1に備えることもできる。
【0174】
図11に示したように、データ変換部47は、4つのビット反転部471a〜471d(以下、ビット反転部471a〜471dのいずれか1つを表すときには「ビット反転部471」という)と、機能選択部472と、D−FF473と、4つのEXOR回路474a〜474d(以下、EXOR回路474a〜474dのいずれか1つを表すときには「EXOR回路474」という)と、4つのビット加算部475a〜475d(以下、ビット加算部475a〜475dのいずれか1つを表すときには「ビット加算部475」という)と、比較部476と、ビット結合部477と、を備えている。
【0175】
なお、以下の説明においては、第1の構成および第2の構成と同様に、データ変換部47に、図19に示したような、16行×16列のベイヤーデータが入力され、4転送をベイヤーデータ内の各画素データのパッキング単位とし、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitである場合について説明する。
【0176】
データ変換部47は、撮像処理部40から順次入力された10bitの画素データの各ビットのデータを、上述したような予め定められたパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitのパックデータを生成する。そして、データ変換部47は、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて生成したパックデータを順次出力する。なお、データイネーブル信号は、出力DMA部45がバースト転送する際にパックデータを転送するタイミングを表す信号である。
【0177】
データ変換部47がパックデータを生成する際には、まず、入力された画素データを、例えば、図12に示したような、予め定められた反転処理の適用範囲に応じて反転処理したそれぞれの画素データ(以下、「反転画素データ」という)を生成する。図12は、本実施形態の撮像装置1に備えた第3の構成のデータ変換部47における反転処理の適用範囲の一例を説明する図である。より具体的には、データ変換部47には、図12に示したように、4つの反転処理の適用範囲に対応した反転ケース(反転ケースa〜d)が予め定められ、入力された画素データに対して、それぞれの反転ケースに応じた反転処理を行った、それぞれの反転画素データを生成する。なお、ここで、反転処理とは、第1の構成および第2の構成と同様に、画素データの各ビットの値を、ビット毎に反転(“1”から“0”、または“0”から“1”)する処理である。
【0178】
そして、データ変換部47は、前回出力した反転画素データの各ビットの値と、今回生成した反転画素データの各ビットの値とをそれぞれ比較し、前回出力した反転画素データに対して、値が変化しているビットの数が少ない反転画素データを選択する。そして、選択した反転画素データを、今回出力する反転画素データとする。また、データ変換部47は、選択した反転画素データに対応した機能選択ビットを、反転画素データを選択したときの情報として出力する。この機能選択ビットは、画素データに対して適用した反転処理の範囲を表している。また、図12に示した反転処理の適用範囲では、4つの反転処理の適用範囲を予め設定しているため、機能選択ビットのビット数は、2bitである。
【0179】
その後、データ変換部47は、上述したような予め定められたパッキング方法で、反転画素データの各ビットのデータを、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに配置(パッキング)し、最終的に出力するパックデータとして出力する。また、データ変換部47は、反転画素データを選択したときの情報(機能選択ビット)を、パッキング単位(4転送)内に存在する未使用ビットに付加して、パックデータと共に出力する。
【0180】
なお、データ変換部47は、上記に述べたように、画素データが入力される毎に、それぞれの反転ケースに応じた反転画素データを生成し、選択した反転画素データおよび機能選択ビットを順次パッキングしたパックデータを順次出力することもできるが、データ変換部47内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力された画素データをメモリ部に一旦保持し、保持したそれぞれの画素データに基づいた反転画素データを生成し、選択した反転画素データのパッキングと、機能選択ビットの付加とを行う。
【0181】
また、入力された画素データを最初にパッキングし、その後、予め定められた反転ケースに応じた反転画素データと同様のパックデータの生成と、パックデータを選択したときの情報(パックデータに対して適用した反転処理の範囲を表す情報)の付加とを行う構成とすることもできる。この場合には、最初にパッキングしたパックデータを、入力された画素データと同様に扱って処理する。
【0182】
上記に述べたように、データ変換部47は、入力された10bitの画素データから、予め定められた反転ケースに応じて生成した反転画素データのいずれかを選択し、選択した反転画素データをパッキングして、データ変換部47が最終的に出力する32bitのパックデータを生成する。しかし、以下の説明においては、説明を容易にするため、データ変換部47に8bitの画素データが順次入力され、入力された画素データから生成した反転画素データのいずれかを選択し、選択した反転画素データに2bitの機能選択ビットを付加した10bitのパックデータを出力する場合について説明する。すなわち、データ変換部47は、1つの反転画素データをパッキングしたパックデータを生成する場合について説明する。なお、複数の反転画素データをパッキングしたパックデータの生成方法は、図6に示した上述した第1のパッキング方法および図7に示した上述した第2のパッキング方法と同様であるため、それぞれの詳細な説明は省略する。
【0183】
以下の説明においては、第1の構成のデータ変換部41および第2の構成のデータ変換部43と同様に、データ変換部47に入力される10bitの画素データと8bitの画素データとを区別するため、8bitの画素データを入力データDIN[7:0]と表す。また、32bitのパックデータと10bitのパックデータとを区別するため、以下の説明においては、10bitのパックデータを出力データDOUT[9:0]と表す。なお、以下の説明において、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0184】
また、以下の説明においては、8bitの入力データDINを、図12に示したような、予め定められた反転ケースに応じて反転処理した、それぞれの反転画素データを生成する場合について説明する。
【0185】
ビット反転部471a〜471dは、それぞれ、図12に示した反転処理の適用範囲に応じて、入力された8bitの入力データDIN[7:0]の各ビットの値を、ビット毎に反転処理した反転画素データを生成する。ビット反転部471a〜471dのそれぞれは、生成した反転画素データを、機能選択部472と、対応するEXOR回路474a〜474dとに出力する。なお、ビット反転部471a〜471dは、それぞれ、反転ケースa〜dに対応している。そして、以下の説明において、ビット反転部471a〜471dが生成した反転画素データを区別する場合には、ビット反転部471a〜471dに付与した符号の最後の1文字を反転画素データにも付与し、「反転画素データa」、「反転画素データb」、「反転画素データc」、および「反転画素データd」という。
【0186】
ここで、ビット反転部471a〜471dのそれぞれの処理について、より具体的に説明する。ビット反転部471aにおける反転処理は、反転ケースa、すなわち、「反転しない」である。ビット反転部471aは、入力データDIN[7:0]の各ビットの値がそのままの反転画素データa[7:0]を出力する。また、ビット反転部471bにおける反転処理は、反転ケースb、すなわち、「下位2ビット反転」である。ビット反転部471bは、入力データDIN[7:0]の下位の2ビット(入力データDIN[1:0])の値を反転し、その他のビット(入力データDIN[7:2])の値がそのままの反転画素データb[7:0]を出力する。また、ビット反転部471cにおける反転処理は、反転ケースc、すなわち、「下位4ビット反転」である。ビット反転部471cは、入力データDIN[7:0]の下位の4ビット(入力データDIN[3:0])の値を反転し、その他のビット(入力データDIN[7:4])の値がそのままの反転画素データc[7:0]を出力する。また、ビット反転部471dにおける反転処理は、反転ケースd、すなわち、「全ビット反転」である。ビット反転部471dは、入力データDIN[7:0]の全てのビットの値を反転した反転画素データd[7:0]を出力する。
【0187】
機能選択部472は、比較部476から入力された機能選択ビットに応じて、ビット反転部471a〜471dのそれぞれから入力された反転画素データa〜dの内、いずれか1つの反転画素データを選択する。そして、選択した反転画素データを、ビット結合部477とD−FF473とに出力する。なお、以下の説明においては、機能選択部472によって選択され、出力された反転画素データを、「選択画素データ」という。
【0188】
D−FF473は、機能選択部472から出力された選択画素データ[7:0]を保持する。このD−FF473によって保持された選択画素データは、前回出力した出力データDOUT[7:0]として、EXOR回路474a〜474dのそれぞれに出力される。
【0189】
EXOR回路474a〜474dは、それぞれ、ビット反転部471a〜471dから入力された反転画素データa[7:0]〜d[7:0]と、D−FF473から入力された出力データDOUT[7:0]との2つのデータの各ビットの値を比較して、値が変化しているビットの有無を検出する。そして、EXOR回路474a〜474dのそれぞれは、値が変化しているビットであることを表す値=“1”、または値が変化しているビットではないことを示す値=“0”を、比較したそれぞれのビット毎に出力する。
【0190】
より具体的には、EXOR回路474のそれぞれによる2つのデータの比較においては、反転画素データの各ビットと、出力データDOUTの各ビットとの排他的論理和がとられる。これにより、反転画素データのビットの値と出力データDOUTのビットの値とが同じ値のときに“0”が出力され、反転画素データのビットの値と出力データDOUTのビットの値とが異なる値のときに“1”が出力される。
【0191】
ビット加算部475a〜475dは、それぞれ、対応するEXOR回路474a〜474dから入力された値が変化しているビットの数を計数し、値が変化しているビットの数の合計(以下、「ビット変化数」という)を算出する。そして、算出したビット変化数を、比較部476に出力する。例えば、EXOR回路474aから入力された、値が変化しているビットの値が、“1111_0000”である場合には、ビット変化数の値として“4”が出力される。このように、ビット加算部475a〜475dのそれぞれは、反転画素データ[7:0]が、次に出力データDOUT[7:0]として出力されるときに、値が変化するビットの数(ビット変化数)を出力する。
【0192】
比較部476は、ビット加算部475a〜475dのそれぞれから入力されたビット変化数の内、ビット変化数が最も少ないものを判定し、最も少ないビット変化数を出力したビット加算部475を特定(選択)する。そして、最も少ないビット変化数を出力したビット加算部475を表す情報を、機能選択ビットとして、機能選択部472とビット結合部477とに出力する。これにより、前回出力した反転画素データ(出力データDOUT)に対して、値が変化しているビットの数が最も少ない反転画素データを選択することになる。
【0193】
ビット結合部477は、機能選択部472からから入力された選択画素データ[7:0]の最上位ビットの上位側の次の2ビットに、比較部476から入力された機能選択ビットを付加(ビット結合)した出力データDOUT[9:0]を生成する。ここで生成された出力データDOUTが、データ変換部47から最終的に出力する出力データDOUT(パックデータ)として、出力DMA部45に出力される。
【0194】
次に、本第2の構成のデータ逆変換部について説明する。図13は、本実施形態の撮像装置1に備えた第3の構成のデータ逆変換部58の概略構成を示したブロック図である。図13に示したデータ逆変換部58は、第1の構成のデータ逆変換部52または第2の構成のデータ逆変換部54の代わりに、撮像装置1に備えられる。従って、データ逆変換部58は、データ逆変換部62の代わりに撮像装置1に備えることもできる。
【0195】
図13に示したように、データ逆変換部58は、ビット分離部581と、4つのビット復元部582a〜582d(以下、ビット復元部582a〜582dのいずれか1つを表すときには「ビット復元部582」という)と、機能選択部583と、を備えている。
【0196】
なお、以下の説明においては、第1の構成および第2の構成と同様に、データ逆変換部58に、データ変換部47によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図19に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitであるものとして説明する。
【0197】
データ逆変換部58は、入力DMA部56から順次入力された32bitのパックデータの各ビットに配置されたデータを、上述したような予め定められたパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した10bitの画素データに復元する。そして、データ逆変換部58は、例えば、画像処理部50から入力される図示しないデータイネーブル信号に基づいて復元した元の画素データを順次出力する。なお、データイネーブル信号は、画像処理部50に出力するタイミングを表す信号である。
【0198】
また、データ逆変換部58には、図12に示したデータ変換部47が画素データに対して反転処理するときの反転ケースと同じ反転処理の適用範囲である反転ケース(反転ケースa〜d)が、予め設定されている。
【0199】
データ逆変換部58が画素データを復元する際には、まず、入力された32bitのパックデータ(このパックデータは、データ変換部47が生成したパックデータと同等である)から、データ変換部47によるパッキング方法と逆の方法で、それぞれのデータ(このデータは、データ変換部47が生成した選択画素データと同等であるため、以下の説明においては、「選択画素データ」として説明する)に、順次分割(アンパッキング)する。
【0200】
その後、データ逆変換部58は、パッキング単位(4転送)内に存在する未使用ビットに付加されている、画素データに対して適用した反転ケースを表す情報(機能選択ビット)に基づいて、データ変換部47が画素データに対して行った反転処理と逆の方法で、選択画素データを反転処理し、それぞれの画素データを生成する。より具体的には、データ逆変換部58は、機能選択ビットに基づいて、データ変換部47によって選択された反転ケースに対応した反転ケースを選択する。そして、データ逆変換部58は、選択した反転ケース(反転処理の適用範囲)に応じた反転処理を、選択画素データに対して行って、元の画素データに復元する。
【0201】
なお、データ逆変換部58は、上記に述べたように、入力DMA部56からパックデータが入力される毎に、選択画素データに分割し、分割した選択画素データに対する反転処理を順次行うこともできるが、データ逆変換部58内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータをメモリ部に一旦保持し、保持したそれぞれのパックデータからの選択画素データの分割と、選択画素データを生成したときの情報に基づいた反転処理を行う。
【0202】
また、入力DMA部56から入力されたパックデータを最初に、選択画素データ(反転画素データ)と同様のパックデータと、パックデータを選択したときの情報(パックデータに対して適用した反転処理の範囲を表す情報)とに分割し、元のパックデータに戻した後に、元のパックデータに配置されたそれぞれの画素データに分割(アンパッキング)する構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータを、選択画素データ(反転画素データ)と同様に扱って処理する。
【0203】
上記に述べたように、データ逆変換部58は、入力DMA部56から入力された32bitのパックデータから選択画素データを分割し、分割した選択画素データに反転処理を行って、元に戻した画素データを生成する。しかし、以下の説明においては、説明を容易にするため、データ逆変換部58に、入力DMA部56から、画素データに対して適用した反転処理の範囲を表す2bitの機能選択ビットが付加された10bitのパックデータが入力され、パックデータから分割した選択画素データに対して、機能選択ビットで表された、データ変換部47が画素データに対して行った反転処理の適用範囲と同じ範囲に反転処理を行って、元の画素データを生成する場合について説明する。すなわち、データ逆変換部58は、1つの選択画素データがパッキングされたパックデータから、1つの画素データを復元する場合について説明する。
【0204】
以下の説明においては、第1の構成のデータ逆変換部52および第2の構成のデータ逆変換部54と同様に、32bitのパックデータと10bitのパックデータとを区別するため、以下の説明においては、10bitのパックデータを入力データDIN[9:0]と表す。また、10bitの画素データと8bitの画素データとを区別するため、以下の説明においては、8bitの画素データを出力データDOUT[7:0]と表す。なお、以下の説明において、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0205】
また、以下の説明においては、10bitのパックデータの最上位ビットから2ビット(入力データDIN[9:8])に、画素データに対して適用した反転ケースを表す情報である機能選択ビットが付加されており、選択画素データを、機能選択ビットによって表されている反転処理の適用範囲に応じて反転処理して、元の画素データに復元する場合について説明する。
【0206】
ビット分離部581は、入力された10bitの入力データDIN[9:0]を、最上位から2ビットの入力データDIN[9:8]、すなわち、機能選択ビットと、入力データDIN[7:0]、すなわち、選択画素データとに分離する。そして、ビット分離部581は、分離した選択画素データを、ビット復元部582a〜582dに出力する。また、ビット分離部581は、分離した機能選択ビットを機能選択部583に出力する。なお、選択画素データは、データ変換部47内のビット反転部471によって生成された反転画素データa〜dの内、いずれか1つの反転画素データと同等である。
【0207】
ビット復元部582a〜582dは、それぞれ、予め設定されている図12に示した反転処理の適用範囲と同じ反転処理の適用範囲に応じて、入力された選択画素データ[7:0]の各ビットの値を、ビット毎に反転処理した反転出力データを生成する。ビット復元部582a〜582dのそれぞれは、生成した反転出力データを、機能選択部583に出力する。
【0208】
なお、ビット復元部582a〜582dは、それぞれ、図12に示した反転ケースa〜dに対応している。そして、以下の説明において、ビット復元部582a〜582dが生成した反転出力データを区別する場合には、ビット復元部582a〜582dに付与した符号の最後の1文字を反転出力データにも付与し、「反転出力データa」、「反転出力データb」、「反転出力データc」、および「反転出力データd」という。
【0209】
ここで、ビット復元部582a〜582dのそれぞれの処理について、より具体的に説明する。ビット復元部582aにおける反転処理は、反転ケースa、すなわち、「反転しない」である。ビット復元部582aは、選択画素データ[7:0]の各ビットの値がそのままの反転出力データa[7:0]を出力する。また、ビット復元部582bにおける反転処理は、反転ケースb、すなわち、「下位2ビット反転」である。ビット復元部582bは、選択画素データ[7:0]の下位の2ビット(選択画素データ[1:0])の値を反転し、その他のビット(選択画素データ[7:2])の値がそのままの反転出力データb[7:0]を出力する。また、ビット復元部582cにおける反転処理は、反転ケースc、すなわち、「下位4ビット反転」である。ビット復元部582cは、選択画素データ[7:0]の下位の4ビット(選択画素データ[3:0])の値を反転し、その他のビット(選択画素データ[7:4])の値がそのままの反転出力データc[7:0]を出力する。また、ビット復元部582dにおける反転処理は、反転ケースd、すなわち、「全ビット反転」である。ビット復元部582dは、選択画素データ[7:0]の全てのビットの値を反転した反転出力データd[7:0]を出力する。
【0210】
機能選択部583は、ビット分離部581から入力された機能選択ビットに応じて、ビット復元部582a〜582dのそれぞれから入力された反転出力データa〜dの内、いずれか1つの反転出力データを選択する。そして、選択した反転出力データを、出力データDOUT[7:0]として出力する。ここで出力された出力データDOUTが、データ逆変換部58によって復元された、すなわち、データ変換部47に入力された、元の画素データとして、画像処理部50に出力される。
【0211】
上記に述べたように、本第3の構成のデータ変換部47では、反転処理を行う画素データのビットの範囲の数を、予め定められた反転処理の適用範囲の複数の範囲にする。そして、反転処理の適用範囲に応じた複数の反転画素データを生成し、ビット変化数が最も少ない反転画素データを選択して出力する。これにより、バースト転送時のメモリバスの各ビットの変化量が少なくなる場合がある。
【0212】
なお、反転処理を行う画像データのビットの範囲を複数にすることによって、反転処理を行ったビットの範囲を表す情報が複数必要になる。しかし、本第3の構成のデータ変換部47では、反転処理を行うビットの範囲(反転処理の適用範囲)の数を、予め定められた数にすることによって、反転処理の適用範囲を表す情報に使用するビット数を少なくしている。これにより、パックデータ内の反転処理の適用範囲を表す情報に使用されるビットの割合を少なくして、バースト転送の効率の低下を抑えると共に、反転処理の適用範囲の選択に係る回路規模が安易に増大してしまうことを抑えることができる。
また、反転処理を行う画素データのビットの範囲の数を、予め定められた反転処理の適用範囲の複数の範囲にすることは、パックデータに含まれる未使用ビットのビット数が少ない場合においても、必要な反転処理の適用範囲を表す情報を付加することができるため、有効な方法である。
【0213】
なお、本第3の構成のデータ変換部47においては、反転処理の適用範囲を画素データの全てのビットの範囲に設定した反転ケースも設定した場合について説明したが、反転処理の適用範囲の設定は、本第3の構成のデータ変換部47での設定に限定されるものではない。例えば、データの相関性が低い(データの変化頻度の高い)下位の画素データの範囲内で、反転処理の適用範囲を設定することもできる。この場合、下位の画素データにおいて、各ビットの変化量が少なくなることが期待される。
【0214】
また、本第3の構成のデータ変換部47において、反転せずにそのまま出力するデータに対して、例えば、第2の構成のデータ変換部43に備えたコード変換部431と同様の機能を適用することもできる。また、例えば、本第3の構成のデータ変換部47の機能をデータの相関性が低い(データの変化頻度の高い)下位の画素データに適用し、第2の構成のデータ変換部43に備えたコード変換部431と同等に機能を、データの相関性が高い(データの変化頻度が低い)上位の画素データに適用することもできる。この場合、本第3の構成のデータ変換部47の効果に加えて、グレイコードによるデータの変化量の削減の効果も、同時に得ることができる。
【0215】
上記に述べた実施形態においては、ベイヤーデータに本実施形態のパッキング方法および反転処理方法を適用したデータ処理装置およびデータ処理方法について説明したが、本実施形態のパッキング方法および反転処理方法は、ベイヤーデータへの適用に限定されるものではなく、RGBデータ、YC422点順次やYC444点順次フォーマットのYCbCrデータ、またはOSDデータなど、様々な画像データに適用することができる。また、本実施形態のパッキング方法および反転処理方法は、画像データへの適用に限定されるものではなく、音声データなど、他の形式のデータに適用することもできる。
【0216】
<適用例>
次に、本実施形態のパッキング方法を、他の形式の画像データや、画像データ以外のデータに適用した場合の一例について説明する。なお、本実施形態の反転処理方法を、他の形式の画像データや、画像データ以外のデータに適用する場合については、上述した反転処理方法と同様に考えることができるため、詳細な説明は省略する。
【0217】
まず、本実施形態のパッキング方法をRGBデータに適用した場合の一例について説明する。図14は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、別の画像データ(RGBデータ)に適用した場合の一例を示した図である。なお、図14では、10bitのRGBデータを、従来のバースト単位でのデータ配置方法(パッキング方法)によって画素データの各ビットが配置されたパックデータの一例(図9(a)参照)と、本実施形態のパッキング方法でパックデータ内の画素データに対する反転ビットが付加されたパックデータ内のデータの配置の一例(図9(b)参照)とを、それぞれ示している。
【0218】
図14(a)に示したように、RGBデータ(10bit×3色=30bit)が単純に配置されたパックデータ内の画素データの配置と同様の配置で、反転処理された画素データを配置する場合、データ変換部41は、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理する。そして、図14(b)に示したように、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくする。
【0219】
図14の例では、それぞれの1転送のデータには、3つの画素データが含まれているため、データ変換部41は、3つの画素データを1つのデータとして扱う。より具体的には、例えば、1転送目では、それぞれの画素データの下位4bit(「R0」のビット[3]〜ビット[0]、「G0」のビット[3]〜ビット[0]、および「B0」のビット[3]〜ビット[0])をまとめて、反転処理する下位の画素データ[11:0]とする。その後、反転処理した後の下位の画素データ[11:0]をそれぞれの画素データに分割して、それぞれの画素データの上位6bit(「R0」のビット[9]〜ビット[4]、「G0」のビット[9]〜ビット[4]、および「B0」のビット[9]〜ビット[4])と結合し、それぞれ1転送のメモリバスに配置する。そして、さらに、下位の画素データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置する。なお、メモリバスのビット[31]は、未使用ビットのままである。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
【0220】
図15は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、さらに別の画像データ(YCbCrデータ)に適用した場合の一例を示した図である。なお、図15では、図15(a)に示したような、9bitのY、6bitのCbおよびCrデータを、従来のバースト単位でのデータ配置方法(パッキング方法)によって画素データの各ビットが配置されたパックデータの一例(図15(b)参照)と、本実施形態のパッキング方法でパックデータ内の画素データに対する反転ビットが付加されたパックデータ内のデータの配置の一例(図15(c)参照)とを、それぞれ示している。
【0221】
図15(b)に示したように、YCbCrデータが単純に配置されたパックデータ内の画素データの配置と同様の配置で、反転処理された画素データを配置する場合、データ変換部41は、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理する。そして、図15(c)に示したように、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくする。
【0222】
図15の例では、それぞれの1転送のデータには、4つの画素データが含まれているため、データ変換部41は、4つの画素データを1つのデータとして扱う。より具体的には、例えば、1転送目では、Yデータの下位4bitと、CbおよびCrデータの下位2bit(「Y0」のビット[3]〜ビット[0]、「Y1」のビット[3]〜ビット[0]、「Cb0」のビット[1]〜ビット[0]、および「Cr0」のビット[1]〜ビット[0])をまとめて、反転処理する下位の画素データ[11:0]とする。その後、反転処理した後の下位の画素データ[11:0]をそれぞれの画素データに分割して、Yデータの上位5bit(「Y0」のビット[8]〜ビット[4]、および「Y1」のビット[8]〜ビット[4])と、CbおよびCrデータの上位4bit(「Cb0」のビット[5]〜ビット[2]、および「Cr0」のビット[5]〜ビット[2])と結合して、それぞれ1転送のメモリバスに配置する。
【0223】
なお、図15の例では、図15(c)に示したように、それぞれの画素データをメモリバスへの配置する際に、メモリバス上に配置される隣接する同一色の画素データのビットの位置が同じ位置になるように、上位の画像データと下位の画像データとを分けて、メモリバス上に配置した例を示している。
【0224】
そして、さらに、下位の画素データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置する。なお、メモリバスのビット[31]は、未使用ビットのままである。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
【0225】
図16は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、さらに別の画像データ(OSDデータ)に適用した場合の一例を示した図である。なお、図16では、6bitのOSDデータを、従来のバースト単位でのデータ配置方法(パッキング方法)によって画素データの各ビットが配置されたパックデータの一例(図16(a)参照)と、本実施形態のパッキング方法でパックデータ内の画素データに対する反転ビットが付加されたパックデータ内のデータの配置の一例(図16(b)参照)とを、それぞれ示している。
【0226】
図16(a)に示したように、OSDデータが単純に配置されたパックデータ内の画素データの配置と同様の配置で、反転処理された画素データを配置する場合、データ変換部41は、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理する。そして、図16(b)に示したように、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくする。
【0227】
図16の例では、それぞれの1転送のデータには、5つのOSDデータが含まれているため、データ変換部41は、5つのOSDデータを1つのデータとして扱う。より具体的には、例えば、1転送目では、それぞれのOSDデータの下位2bit(「OSD0」〜「OSD4」のビット[1]〜ビット[0])をまとめて、反転処理する下位のOSDデータ[9:0]とする。その後、反転処理した後の下位のOSDデータ[9:0]をそれぞれのOSDデータに分割して、それぞれのOSDデータの上位4bit(「OSD0」〜「OSD4」のビット[5]〜ビット[2])と結合し、それぞれ1転送のメモリバスに配置する。そして、さらに、下位のOSDデータ[9:0]に対応した反転ビットを、メモリバスのビット[31]に配置する。なお、メモリバスのビット[30]は、未使用ビットのままである。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
【0228】
なお、図16(b)をみてわかるように、反転ビットを配置するメモリバス上の位置は、未使用ビットであれば、いかなるところにも配置することができる。図16(b)の例では、メモリバスのビット[31]に配置した例を示している。
【0229】
図17は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、別のデータ(音声データ)に適用した場合の一例を示した図である。なお、図17では、それぞれ24bitのR(右)データおよびL(左)データを64bitのメモリバスに適用した場合を示している。そして、図17(a)には、従来のバースト単位でのデータ配置方法(パッキング方法)によって音声データの各ビットが配置されたパックデータの一例を示し、図17(b)には、本実施形態のパッキング方法でパックデータ内の音声データに対する反転ビットが付加されたパックデータ内のデータの配置の一例を示している。なお、図17においては、24bitのR(右)データおよびL(左)データを連続せずにメモリバスに配置した場合を示している。
【0230】
図17(a)に示したように、音声データが単純に配置されたパックデータ内の音声データの配置と同様の配置で、反転処理された音声データを配置する場合、データ変換部41は、1転送のメモリバスに配置するそれぞれの音声データの下位のビットをまとめて反転処理する。そして、図17(b)に示したように、音声データの上位のビットと、反転処理した後の音声データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、音声データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくする。
【0231】
図17の例では、それぞれの1転送のデータには、R(右)データおよびL(左)データが分かれて配置されている。しかし、メモリバス上の音声データは、合わせて2つである。データ変換部41は、2つの音声データを1つのデータとして扱う。より具体的には、例えば、1転送目では、それぞれの音声データの下位8bit(「R0」のビット[7]〜ビット[0]、および「L0」のビット[7]〜ビット[0])をまとめて、反転処理する下位の音声データ[15:0]とする。その後、反転処理した後の下位の音声データ[15:0]をそれぞれの音声データに分割して、それぞれの音声データの上位16bit(「R0」のビット[23]〜ビット[8]、および「L0」のビット[23]〜ビット[8])と結合し、それぞれ1転送のメモリバスに配置する。そして、さらに、下位の音声データ[15:0]に対応した反転ビットを、メモリバス上の未使用ビットに配置する。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、音声データの転送に係る消費電力を低減させることができる。
【0232】
なお、図17(b)をみてわかるように、反転ビットを配置するメモリバス上の位置は、未使用ビットであれば、いかなるところにも配置することができる。図17(b)の例では、R(右)データに対応した反転ビットを、メモリバスのビット[24]に配置した例を示している。また、L(左)データに対応した反転ビットを、4転送目のメモリバスのビット[59]〜ビット[56]に配置した例を示している。このように、反転ビットは、1転送毎のメモリバスに配置するのみではなく、予め定められた1転送のメモリバスに、複数の反転ビットをまとめて配置することもできる。
【0233】
上記に述べたとおり、本発明を実施するための形態によれば、データの相関性にも基づいて、転送するデータを予め定められたビットの範囲に分割する。そして、相関性が低い(変化頻度の高い)データの各ビットの値と、前回転送した対応するビットの値とを、ビット毎に比較し、変化しているビットの数が多い場合に、そのデータに対して反転処理を行う。また、反転処理したときの情報を、パックデータの未使用ビットに付加して出力する。これにより、各ビットの変化量を少なくしたデータを、メモリバスに配置することができ、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくすることができると共に、パックデータを容易に復元することができる。しかも、データの転送効率は、従来と同等のデータ転送効率を維持することができる。これにより、像装置内の各構成要素(処理ブロック)とメモリとの間でのデータの受け渡しに係る消費電力の低減効果を十分に得ることができる。
【0234】
また、本発明を実施するための形態においては、データの全てのビットに対して反転処理を行うのではなく、データの相関性に基づいて予め定めた一部のビットの範囲にのみ反転処理を行う。そして、反転処理は、相関性が低い(変化頻度の高い)データのビットに対して行う。このため、反転処理によるデータの変化量の削減効果を、より多く得ることができる。さらに、反転処理に係る回路規模が削減できるという効果も得ることができる。
【0235】
また、本発明を実施するための形態によれば、反転処理を適用するビットの範囲を複数設定し、それぞれの反転処理の適用範囲に応じた複数の反転処理後のデータから、ビット変化数が最も少ない反転処理後のデータを選択して出力することができる。これにより、バースト転送時のメモリバスの各ビットの変化量を効率的に少なくすることができる。また、反転処理を適用するビットの範囲の設定数を、予め定められた数に定めておく。これにより、ビットの範囲の設定数が多くなることによって、反転処理の適用範囲を表す情報に使用するビット数が増加し、パックデータ内の反転処理の適用範囲を表す情報に使用されるビットの割合が大きくなるのを抑えることができる。また、ビットの範囲の設定数が多くなることによって、反転処理および反転処理後のデータの選択に係る回路の規模が増大してしまうことを抑えることができる。このことにより、データの転送効率の低下を抑えることができる。
【0236】
また、本発明を実施するための形態によれば、相関性が高い(変化頻度が低い)データを、グレイコードを用いて表すことにより、相関性が低い(変化頻度の高い)データに対する反転処理と異なる処理を行う。これにより、データの相関性に応じた、効率的なビットの変化量の削減を行うことができる。
【0237】
なお、本実施形態においては、前回出力したデータの各ビットの値と、今回入力されたデータの各ビットの値とを比較した結果から、反転処理した後のデータを切り替える(選択する)ための情報(反転ビット)を得る場合について説明したが、反転ビットを得るための方法は、本発明を実施するための形態に限定されるものではない。
例えば、特許文献2で開示された技術と同様に、前回入力されたデータの各ビットの値と、今回入力されたデータの各ビットの値とを比較した結果から今回の反転ビットを得て、その後、前回の反転ビットと比較して、最終的な今回の反転ビットにする構成にすることもできる。
【0238】
また、本実施形態においては、4転送を1回のバースト転送の単位とし、1バーストをデータのパッキング単位とした場合について説明したが、1回のバースト転送における転送の回数や、データのパッキングの単位は、本発明を実施するための形態に限定されるものではない。例えば、64転送を1回のバースト転送の単位とし、1バースト内の16転送をデータのパッキングの単位とする、すなわち、1バースト内に4つのパッキング単位が含まれる構成にすることもできる。また、例えば、16転送をデータのパッキングの単位とし、8転送を1回のバースト転送の単位とする、すなわち、パッキング単位が2回のバースト転送に跨っている構成にすることもできる。
【0239】
また、本実施形態においては、撮像装置内の構成要素間でデータの受け渡しを行う場合のパッキング方法を、いくつかのデータに適用した場合について説明したが、本実施形態のパッキング方法を適用することができる範囲は、本発明を実施するための形態に限定されるものではなく、各構成要素間でデータの受け渡しを行うシステムであれば、どのようなシステムにも適用することができる。
【0240】
また、本実施形態においては、例えば、データ変換部を出力DMA部の前段の処理ブロックとして配置し、データ逆変換部を入力DMA部の後段の処理ブロックとして配置した場合の一例について説明したが、データ変換部およびデータ逆変換部の配置は、本発明を実施するための形態に限定されるものではない。例えば、データ変換部を出力DMA部内の構成要素とすることや、データ逆変換部を入力DMA部内の構成要素とすることもできる。また、例えば、データ変換部を前段の撮像処理部内の構成要素とすることや、データ逆変換部を後段の画像処理部内の構成要素とすることもできる。
【0241】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【0242】
1・・・撮像装置(データ処理装置)
10・・・CPU(データ処理装置)
20・・・メモリ(データ処理装置)
30・・・CCD
40・・・撮像処理部
50・・・画像処理部
60・・・表示処理部
70・・・表示デバイス
41,51・・・データ変換部(データ処理装置)
411・・・ビット分離部(第1のビット分離部)
412・・・EXOR回路(第1のビット反転部)
413・・・D−FF(ビット比較部)
414・・・EXOR回路(ビット比較部)
415・・・多数決判定部(ビット判定部)
416・・・ビット結合部(第1のビット結合部)
52,62・・・データ逆変換部(データ処理装置)
521・・・ビット分割部(第2のビット分離部)
522・・・EXOR回路(第2のビット反転部)
523・・・ビット結合部(第2のビット結合部)
45,55・・・出力DMA部
56,66・・・入力DMA部
43・・・データ変換部(データ処理装置)
431・・・コード変換部(第1のコード変換部)
54・・・データ逆変換部(データ処理装置)
541・・・コード変換部(第2のコード変換部)
47・・・データ変換部(データ処理装置)
471,471a,471b,471c,471d・・・ビット反転部(第1のビット反転部)
472・・・機能選択部(第1のデータ選択部)
473・・・D−FF(ビット比較部)
474,474a,474b,474c,474d・・・EXOR回路(ビット比較部)
475,475a,475b,475c,475d・・・ビット加算部(ビット変化数算出部)
476・・・比較部(データ判定部)
477・・・ビット結合部(第1のビット結合部)
58・・・データ逆変換部(データ処理装置)
581・・・ビット分離部(第2のビット分離部)
582,582a,582b,582c,582d・・・ビット復元部(第2のビット反転部)
583・・・機能選択部(第2のデータ選択部)
【技術分野】
【0001】
本発明は、データ処理装置およびデータ処理方法に関する。
【背景技術】
【0002】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの撮像装置では、撮像装置の画素数や速度の向上に伴って、膨大な画素のデータ(以下、「画素データ」という)が含まれる画像データを処理している。このような撮像装置においては、撮像装置内の各処理ブロックが撮影によって得られた画像データを処理する際に、データを一時的に記憶するメモリが利用されている。メモリには、各処理段階の画像データが一時記憶される。
【0003】
図18は、従来の撮像装置の概略構成を示したブロック図である。例えば、図18に示した撮像装置における撮影動作では、以下のような手順で画像データの処理が行われている。
(手順1):まず、撮像処理部が、例えば、CCD(Charge Coupled Device:電荷結合素子)型の固体撮像素子によって得られた画像データを、出力DMA(Direct Memory Access)部を介してメモリに転送して一時記憶する。
(手順2):続いて、画像処理部が、メモリに一時記憶している画像データを、入力DMA部を介して読み出す。そして、画像処理部は、読み出した画像データに対して記録用の画像処理や、表示用の画像処理を行う。その後、画像処理した後の画像データを、出力DMA部を介してメモリに転送して一時記憶する。
(手順3):続いて、表示処理部が、表示用の画像処理がされた画像データを、入力DMA部を介して読み出し、表示デバイスに表示させる。
【0004】
このように、撮像装置では、前段の処理ブロックが、画像データをメモリに一時記憶する。そして、後段の処理ブロックが、メモリに記録されている画像データを読み出して、次の処理を行う。このように、撮像装置内の各処理ブロックが、メモリを介して処理対象の画像データの受け渡しを行うことによって、撮像装置の全体の処理を順次行っている。
【0005】
近年、静止画用カメラ、動画用カメラなどの撮像装置においては、長い時間連続して使用できることが望まれており、撮像装置内の電気回路の消費電力を低減させる技術が必要とされている。撮像装置の消費電力を低減させるための1つの方法として、各処理ブロック(電気回路)とメモリとの間での画像データの転送速度を高速にする方法が挙げられる。画像データの転送速度の高速化は、例えば、撮像装置が動作するクロックの周波数を高くしたり、各処理ブロックとメモリ間の画像データの転送期間を短縮させたりすることによって実現することができる。これらの方法は、画像データの転送速度を高速にすることによって、画像データの転送に係る消費電力を低減させるものである。
【0006】
処理ブロックとメモリ間の画像データの転送期間を短縮させるための技術として、特許文献1に開示されているようなパッキングという技術が知られている。特許文献1で開示されたパッキング技術は、画像データ内の各画素データをメモリに転送する際に使用されるデータバスのバス幅を拡張し、隣接する複数の画素データをデータバスに配置(パッキング)することによって、複数の画素データを一度に転送するという技術である。この技術によって、全ての画素データを転送するために要するデータ転送の回数を、画素データを1画素毎に転送する以前のデータ転送に比べて少なくすることができ、画像データのデータ転送に係る期間を短縮することができる。例えば、図19に示したような、16行×16列のベイヤー配列のCCDから得られた画素データをメモリに転送する場合、特許文献1で開示されたパッキング技術では、4画素分の画素データを一度に転送する単位とすることによって、画像データの転送期間を1/4に短縮することができる。これにより、画素データを1画素ずつメモリに転送する場合に比べて、撮像装置内の電気回路の消費電力を低減させることができる。
【0007】
また、さらに画像データの転送期間を短縮する技術として、DMAのバースト転送を利用したパッキング方法が考えられる。これは、予め定められた一定のサイクル数でメモリにアクセスする単位である1バーストを、画素データをパッキングする単位として考える方法である。図20に画素データのパッキングの一例を示す。図20(a)は、特許文献1で開示されたパッキング方法で図19に示した画素データをパッキングした場合の一例を示し、図20(b)は、バーストの単位で図19に示した画素データをパッキングした場合の一例を示している。なお、図20では、画素データをメモリに転送する際に使用するデータバス(以下、「メモリバス」という)のバス幅(以下、「メモリバス幅」という)を32bitとし、バースト転送における1サイクル分のメモリアクセス(以下、「1転送」という)を4回、すなわち、4転送で1回のバースト転送を行う場合の例を示している。そして、図20(a)および図20(b)では、それぞれ上から順に、1画素の画素データの分解能、すなわち、画素データのビット数が、9bit、10bit、12bit、および14bitである場合の一例を示している。
【0008】
図20からわかるように、図20(a)に示した特許文献1で開示されたパッキング方法では、1転送あたり2画素分の画素データがメモリバスに配置され、1バーストあたり8画素分の画素データをメモリに転送することができる。これに対して図20(b)に示したバースト単位でのパッキング方法では、それぞれ、14画素分、12画素分、10画素分、および9画素分の画素データをメモリに転送することができる。これは、特許文献1で開示されたパッキング方法は、メモリバス幅、すなわち、1転送の単位で画素データを配置(パッキング)するため、配置する複数の画素データのビット数の合計がメモリバス幅を超えないようにする必要がある。このため、特許文献1で開示されたパッキング方法では、メモリバス幅内に画素データを割り当てることができないビット(以下、「未使用ビット」という)が多く存在してしまう。これに対し、バースト単位でのパッキング方法は、1バーストの単位で画素データを配置(パッキング)するため、図20(b)のように、配置する複数の画素データのビット数の合計がメモリバス幅を超えてしまう場合でも、1バーストを超えなければ次の転送に画素データを配置(パッキング)することができる。すなわち、バースト単位でのパッキング方法では、メモリバス幅が画素データの分解能の整数倍ではない場合においても、1転送の単位を跨いで画素データを配置(マッピング)することができるため、未使用ビットを少なくすることができるのである。このことにより、バースト単位でのパッキング方法は、特許文献1で開示されたパッキング方法よりも、同じ時間で多くの画素データをメモリに転送する、すなわち、画像データの転送期間を短縮することができ、撮像装置内の電気回路の消費電力を、さらに低減させることができる。
【0009】
しかし、一般的に、データの変化(データの“0”→“1”、もしくは“1”→“0”の変化(反転))が少ない方が、消費電力が少ないことが知られている。このため、撮像装置内の各処理ブロック(電気回路)とメモリとの間のメモリバス上のデータの変化を少なくすることによって、撮像装置の消費電力を低減させることも考えられる。図21は、撮像装置内の処理ブロックとメモリとの間のデータバス(メモリバス)上のデータの変化と消費電力との関係を説明する図である。図21(a)は、図18に示した撮像装置における撮像処理部とメモリとの間のメモリバスのバス幅が32bitである場合の一例を示している。そして、図21(b−1)〜(b−3)では、メモリバス上のデータの変化を模式的に示している。図21の一例においては、メモリバス上のデータの変化がない図21(b−1)の場合が、最も消費電力が少なく、メモリバス上のデータの変化が最も多い図21(b−3)の場合が、最も消費電力が多くなる。
【0010】
このことから、撮像装置内の各処理ブロックとメモリ間のバースト転送において、連続する2転送間の画素データ(例えば、図20に示した各バースト転送の1転送目と2転送目との画素データ)の変化が多いと、画像データの転送に係る消費電力も多くなってしまうことがわかる。すなわち、メモリバス上の同一ビットが2転送間で変化している個数(ビット数)に比例して、画像データの転送に係る消費電力が変化する。
【0011】
一般的に、画像データは、隣接する画素間でデータの変化量が小さく、隣接する画素のそれぞれの画素データの同一のビットで比較すると、値が反転しているビットの方が、値が反転していないビットよりも少ないことが予想される。ここで、図20に示した、特許文献1で開示されたパッキング方法と、バースト単位でのパッキング方法とを比較すると、図22に示したように、同一色の画素データで同一のビットが揃っている、特許文献1で開示されたパッキング方法の方が、画像データの転送に係る消費電力が少ないと考えられる。なお、図22は、図20に示した特許文献1で開示されたパッキング方法と、バースト単位でのパッキング方法とにおいて、1画素の画素データのビット数が9bitである場合を示している。
【0012】
より具体的には、図22(a)に示した特許文献1で開示されたパッキング方法では、範囲Aに示したメモリバスの最下位ビットは、全て同一色の画素データの同一ビット(最下位ビット)である。これに対して、図22(b)に示したバースト単位でのパッキング方法では、範囲Bに示したメモリバスの最下位ビットは、全て異なる色の画素データの異なるビットである。このことから、バースト単位で画像データをパッキングすることによって、メモリバス上に配置される画素データのビットの位置が、連続する2転送間で異なってしまうと、メモリバス上の同一ビットの変化量が多くなり、画像データの転送に係る消費電力を増加させてしまうことがわかる。
【0013】
すなわち、図22(a)に示した特許文献1で開示されたパッキング方法は、画像データの転送に係る消費電力が少ないが、データの転送効率が低い。また、図22(b)に示したバースト単位でのパッキング方法は、データの転送効率はよいが、画像データの転送に係る消費電力が多い。
【0014】
このように、バースト単位での画素データのパッキングでは、より多くの画素データをメモリバスに配置することによって、結果的に画素データの転送期間を短縮し、画像データの転送に係る消費電力を低減させることができるが、メモリバス上に配置される画素データのビットの位置が、連続する2転送間で異なっているため、画像データの転送に係る消費電力の低減効果を十分に得ることができていない。
【0015】
また、特許文献1で開示されたパッキング方法においては、例えば、図23に示したように、画素データをパッキングする1転送内に、3画素分の画素データを配置(パッキング)することができる。しかし、この場合には、例えば、範囲Cに示したメモリバスの最下位ビットが、画素データの同一ビット(最下位ビット)ではあるが、異なる色の画素データになってしまう。画素データは、色が異なるとその値が大きく異なる可能性が高く、特許文献1で開示されたパッキング方法でも、1転送内の画素データの配置によっては、画像データの転送に係る消費電力を低減できていないことになってしまう。
【0016】
そこで、連続する2転送間における、メモリバス上に配置されるデータの変化を少なくするための技術として、特許文献2のような技術が開示されている。特許文献2は、時系列的に変化する画像データを液晶パネルなどの表示装置に転送する場合において、転送されるデータの変化量を削減する方法、その変化量の判定方法、およびその利用方法についての技術である。そして、表示装置に転送される画像データの変化量を削減することによって、EMI(Electro Magnetic Interference)輻射および消費電力の低減を期待している。
【0017】
特許文献2で開示された技術では、データの送り手側が、入力されたnビットのデータと1つ前のタイミングで入力されたnビットのデータとをビット毎に比較することによって、値が変化しているビットの数を多数決判定する。多数決判定においては、入力されたデータのそれぞれのビットの値が変化しているビットの数が、半数を超えている場合に入力されたデータを反転し、値が変化しているビットの数が半数以下の場合に入力されたデータは反転しないと判定する。そして、送り手側は、多数決判定を行った結果に応じて、入力されたデータを反転したデータ、またはそのままのデータを、受け手側に出力する。このとき、データを反転したか否かを表す信号も受け手側に出力される。また、データの受け手側は、データを反転したか否かを表す信号に応じて、受け取ったデータを反転して受け取る、またはそのまま受け取ることによって、送り手側に入力されたデータを復元する。
【0018】
ここで、特許文献2で開示された、転送するデータ(転送データ)のデータ変化量を削減する方法の具体例について説明する。図24は、特許文献2に開示された、従来のデータ処理装置の概略構成を示したブロック図である。特許文献2に開示された従来のデータ処理装置のデータ送信側(送り手側)は、以下のような流れ(フロー)で、時系列的に入力されたデータをデータ受信側(受け手側)に転送する。
【0019】
(フロー1):転送するデータが入力されると、まず、最初に、EXOR(排他的論理和)1回路が、今回入力された36ビットのデータ(以下、「データD1」という)と、時間的に1つ前のタイミングで入力された36ビットデータ(以下、「データD0」という)とを、ビット毎に比較する。
【0020】
(フロー2):続いて、多数決回路が、EXOR1回路から入力されたビット毎の比較結果から、データD1の値が変化しているビットの数(以下、「ビット変化数」という)を検出する。そして、多数決回路は、データD1のデータ幅(ビット数:nビット)に対して、検出したビット変化数が過半数であるか否かを判定する。そして、多数決回路は、判定した多数決の結果に応じて、データD1を反転して出力するか、非反転のまま出力するかを表す制御信号(以下、「反転ビット」という)を出力する。図24に示した従来のデータ処理装置の多数決回路では、ビット変化数がデータのビット数の過半数を占める(>n/2)場合に、データD1の全てのビットを反転すると判定し、反転ビットとして“1”の値を出力する。また、多数決回路は、ビット変化数がデータのビット数の半数以下(≦n/2)の場合に、データD1の全てのビットは非反転とする判定し、反転ビットとして“0”の値を出力する。なお、ここで、反転とは、データの各ビットの値を、“1”から“0”、または“0”から“1”にすることを表している。
【0021】
(フロー3):続いて、EXOR2回路が、フロー2で多数決回路から出力された、データD1に対応した反転ビットの値と、データD0に対応した反転ビットの値とを比較する。このEXOR2回路による比較結果が、最終的にデータD1のデータの全てのビットを反転して出力するか、非反転のまま出力するかを表す制御信号(以下、「反転ビット」という)となる。すなわち、図24に示した従来のデータ処理装置では、データD1の全てのビットを反転して出力する反転処理を行うか、データD1の全てのビットを非反転のまま出力する非反転処理を行うかを、時間的に1つ前のタイミングで入力されたデータD0が反転処理されて出力されたか否かの状態によって決定している。より具体的には、データD0に対応した反転ビットの値が“0”(非反転)であった場合、多数決回路から入力されたデータD1に対応した反転ビットを、最終的にデータD1のデータに対応する反転ビットにする。また、データD0に対応した反転ビットの値が“1”(反転)であった場合、多数決回路から入力されたデータD1に対応した反転ビットと逆の信号を、最終的にデータD1のデータに対応する反転ビットとする。これは、例えば、データD0を反転処理して出力した後、次のタイミングでもデータD1を反転処理して出力すると、すでに1つ前のタイミングで出力されたデータD0は反転しているデータであるため、データD1が、反転して出力されたデータD0に対して反転した、すなわち、反転の反転で非反転のデータになってしまうのを回避するためである。
【0022】
(フロー4):そして、次のタイミングで、EXOR3回路が、データD1の全てのビットを、反転ビットに応じて反転処理または非反転処理したデータD1を出力(転送)する。また、同じタイミングで、反転ビットも出力(転送)する。このようなフローによって、図24に示した従来のデータ処理装置では、時系列的に入力されたデータの値が変化しているビットの数が半数を超えている場合に、入力されたデータを反転処理することによって、値が変化しているビットの数を半数以下にして転送する。これにより、入力されたデータを転送する際の、各ビットの変化量を少なくすることができ、データの転送に係る消費電力を低減させることができる。
【0023】
また、データ受信側は、EXOR4回路が、データ送信側から転送されてきたデータD1の全てのビットを、同じく転送されてきた反転ビットに応じて反転処理または非反転処理する。これにより、データ受信側に入力された元のデータD1を復元することができる。
【0024】
ここで、従来のデータ処理装置において、出力するデータの変化量が少なくなることを示す具体的なデータの値の一例について説明する。図25は、特許文献2に開示された、従来のデータ処理装置において、データの変化量を削減する場合の一例を示した図である。図25(a)は、従来のデータ処理装置に入力された入力データとビット変化数とを示し、図25(b)には、従来のデータ処理装置から出力される出力データおよび反転ビットとビット変化数を示している。従来のデータ処理装置には、図25(a)に示したような入力データが、上段から下段に向かって時系列的に順次入力される。そして、従来のデータ処理装置は、入力データが入力される毎に、ビット変化数を検出し、検出したビット変化数に応じて入力データの全てのビットを反転処理または非反転処理した、図25(b)に示したような出力データを出力する。なお、以下の説明においては、説明を容易にするため、従来のデータ処理装置に8ビットの入力データが入力され、8ビットの出力データを出力する場合について説明する。
【0025】
図25(a)からわかるように、入力データが入力される毎に、入力データの各ビットの値を順次比較する、すなわち、図25(a)に示した入力データのそれぞれの段において、各ビットの値を上段の入力データの値と比較すると、例えば、図25(a)の「A」の段の入力データのように、ビット変化数が過半数になっている入力データが存在する。また、図25(a)に示した入力データの全体では、ビット変化数の合計が38ビットである。
【0026】
そこで、従来のデータ処理装置では、上述したフロー1〜フロー4のような流れで、入力データに対して反転処理または非反転処理した出力データを出力することにより、図25(b)の「A」の段のように、ビット変化数が半数以下になる。これにより、出力データの全体では、ビット変化数の合計が30ビットとなり、データの変化量が8ビット削減される。このように、入力データの各ビットの値を順次比較し、ビット変化数が大きい入力データに対して反転処理を行って出力することにより、反転処理を行わずにデータを転送する場合に比べて、データを転送するときの全体でのデータの変化量を削減することができる。
【先行技術文献】
【特許文献】
【0027】
【特許文献1】特開2007−312358号公報
【特許文献2】特開2000−148605号公報
【発明の概要】
【発明が解決しようとする課題】
【0028】
上述したように、一般的に、画像データは、隣接する画素間でデータの変化量が小さい。このため、隣接する画素の画素データ間に高い相関性を持っていることが予想される。また、画素データ同士の相関性は、画素データの上位のビットほど高く、下位のビットほど低い傾向にある。これは、隣接する画素同士でも、画素データの下位ビットの方が、例えば、撮像装置1内のノイズ成分による影響が大きいため、相関性が低くなってしまうためである。
【0029】
しかしながら、特許文献2で開示されたデータの変化量の削減方法では、データの全てのビットに対して、ビット変化数の検出、反転または非反転の判定、および反転処理または非反転処理を行っている。このため、転送するデータが、画像データであった場合には、データの変化量の削減の効果を十分に得ることができないことがある。これは、上述のように、画素データの上位のビットは相関性が高いため、値の変化が少ない(データの変化頻度が低い)と予想されるのに対し、特許文献2で開示されたデータの変化量の削減方法では、画素データの上位のビットまで含めて処理することになるためである。
【0030】
この場合の一例を、図26を用いて説明する。図26は、画像データにおけるデータの変化量の一例を示した図である。例えば、図26(a)に示したように、自然画像データとして8ビットの画素データが順次入力される場合において、自然画像データ内の画素データが、上段の値から下段の値になる場合を考える。なお、以下の説明においては、図26(a)に示したように、画素データの上位4ビットの相関性が高く、下位4ビットの相関性が低いものとする。
【0031】
特許文献2に開示された従来のデータ処理装置では、データ変化数を図26(a)に示した枠A内の8ビット全てのデータのビットに基づいてビット変化数を検出する。図26に示した一例では、ビット変化数が3ビットであると検出される。しかし、相関性が低い(データの変化頻度の高い)、枠B内の下位4ビットに着目してビット変化数を検出しても、ビット変化数が3ビットであると検出される。すなわち、図26(a)に示した一例においては、下位4ビットの値のみが変化している。
【0032】
そして、特許文献2に開示された従来のデータ処理装置では、検出したビット変化数に基づいて、多数決の判定が行われる。しかしながら、多数決の判定結果は、8ビット全てのデータにおける判定と、下位4ビットのデータにおける判定とでは異なってくる。そして、この多数決の判定結果の違いは、画素データに対する反転または非反転の判定に影響する。より具体的には、図26(b)に示したように、枠A内の全てのビット(8ビット)をデータ幅として多数決の判定を行うと、検出したビット変化数は、データ幅の半数以下(3ビット≦(8/2)ビット)ため、全てのビットは非反転とする判定され、反転ビットとして“0”の値が出力される。一方、枠B内の下位4ビットをデータ幅として多数決の判定を行うと、検出したビット変化数は、データ幅の過半数を占める(3ビット>(4/2)ビット)ため、全てのビットは反転する判定され、反転ビットとして“1”の値が出力される。
【0033】
このように、画像データを転送する場合には、画素データの全てのビットをデータ幅として多数決の判定を行うと、データの変化頻度の高い下位のビットの変化が反映されず、データの変化量の削減の効果を十分に得ることができていない、という問題がある。従って、特許文献2に開示された従来のデータ処理装置は、液晶パネルなどの表示装置に転送する画像データを想定しているが、画像データの相関性を考慮していないため、画像データの転送に係る消費電力を十分に低減できていないことになってしまう。
【0034】
本発明は、上記の課題認識に基づいてなされたものであり、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるデータ処理装置およびデータ処理方法を提供することを目的としている。
【課題を解決するための手段】
【0035】
上記の課題を解決するため、本発明のデータ処理装置は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、を備え、前記データ変換部は、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離する第1のビット分離部と、該データ変換部からn(nは1以上の自然数)回目に出力した前記第1の分離データに応じた第1の出力データ内の各ビットの値と、該データ変換部にn+1回目に入力された前記第1の分離データ内の各ビットの値とを比較し、該比較したビットの比較情報を出力するビット比較部と、前記比較情報に基づいて、異なる値となっているビットの数を表すビット変化数を算出し、該算出した前記ビット変化数と、予め定めたビット数とに基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値を、ビット毎に反転するか否かを判定し、該判定した結果を反転情報として出力するビット判定部と、前記反転情報に基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記n+1回目に入力された前記第1の分離データのいずれか一方のデータを、第1の反転処理データとして出力する第1のビット反転部と、前記第1の反転処理データの各ビットと前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成し、該第1の転送データを前記転送データとして出力する際に、前記変換単位内の前記第1の転送データの内、データが配置されていない未使用ビットを含む前記第1の転送データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記第1の転送データ、または前記結合データのいずれか1つのデータを、該データ変換部における前記転送データとして出力する第1のビット結合部と、を具備する、ことを特徴とする。
【0036】
また、本発明の前記ビット判定部は、前記ビット変化数が、前記第1の分離データのビット数の過半数である場合に、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転すると判定し、前記ビット変化数が、前記第1の分離データのビット数の半数以下である場合に、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転しないと判定する、ことを特徴とする。
【0037】
また、本発明の前記ビット判定部は、前記ビット変化数が、前記第1の分離データのビット数の半数である場合、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転するか否かの判定を、n回目に入力された前記第1の分離データに対して行った判定の結果と同じ判定にする、ことを特徴とする。
【0038】
また、本発明の前記データ変換部は、前記第2の分離データを、データの変化が1である場合には、必ず1ビットだけしか変化しないグレイコードで表す第1のコード変換部、を、さらに具備し、前記第1のビット結合部は、前記第1の反転処理データの各ビットと前記グレイコードで表された前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成する、ことを特徴とする。
【0039】
また、本発明の前記第1のビット分離部は、同一の前記転送単位に配置された複数の前記入力データのそれぞれの前記第1の分離データをまとめて1つの前記第1の分離データとし、前記ビット比較部は、前記まとめられた前記第1の分離データの単位で各ビットの値を比較し、前記ビット判定部は、前記まとめられた前記第1の分離データの単位で各ビットの値をビット毎に反転するか否かを判定し、前記第1のビット反転部は、前記まとめられた前記第1の分離データの単位の第1の反転処理データを出力し、前記第1のビット結合部は、前記まとめたれた単位の前記第1の反転処理データの各ビットと、それぞれの前記第2の分離データの各ビットとを、前記データバスの各ビットに配置し、前記まとめられた単位で判定された前記反転情報を結合する、ことを特徴とする。
【0040】
また、本発明のデータ処理装置は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、を備え、前記データ変換部は、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置とが、予め定められており、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成する第1のビット反転部と、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを選択データとして出力する第1のデータ選択部と、該データ変換部からn(nは1以上の自然数)回目に出力した前記選択データに応じた第1の出力データ内の各ビットの値と、該データ変換部にn+1回目に入力された前記入力データに応じたn+1回目の前記第1の反転データまたは前記第2の反転データ内の各ビットの値とを比較し、該比較したビットのそれぞれの比較情報を、前記第1の反転データに対応して検出した第1の比較情報と前記第2の反転データに対応して検出した第2の比較情報として、それぞれ出力するビット比較部と、前記第1の比較情報に基づいて、異なる値となっているビットの数を表す第1のビット変化数を算出し、前記第2の比較情報に基づいて、異なる値となっているビットの数を表す第2のビット変化数を算出するビット変化数算出部と、前記第1のビット変化数と前記第2のビット変化数とに基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、該判定した結果を反転情報として出力するデータ判定部と、前記選択データを前記転送データとして出力する際に、前記変換単位内の前記選択データの内、データが配置されていない未使用ビットを含む前記選択データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記選択データ、または前記結合データのいずれか1つのデータを、該データ変換部における前記転送データとして出力する第1のビット結合部と、を具備し、前記第1のデータ選択部は、前記反転情報に基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択して、n+1回目の選択データとして出力する、ことを特徴とする。
【0041】
また、本発明の前記第1のビット反転部は、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転すると共に、前記第1のビット位置以外のビットのデータを、データの変化が1である場合には、必ず1ビットだけしか変化しないグレイコードで表した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転すると共に、前記第2のビット位置以外のビットのデータを前記グレイコードで表した第2の反転データとを生成する、ことを特徴とする。
【0042】
また、本発明の前記第1のビット反転部は、同一の前記転送単位に配置された複数の前記入力データをまとめて1つの前記入力データとし、前記第1のデータ選択部は、前記まとめられた前記入力データに応じた前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、前記ビット比較部は、前記まとめられた前記選択データの単位で各ビットの値を比較し、前記ビット変化数算出部は、前記まとめられた前記選択データの単位で異なる値となっているビットの数を算出し、前記データ判定部は、前記まとめられた前記選択データの単位で前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、前記第1のビット結合部は、前記まとめたれた単位の前記選択データを前記転送データとして出力する際に、前記まとめられた単位で判定された前記反転情報を結合する、ことを特徴とする。
【0043】
また、本発明のデータ処理装置は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、を備え、前記データ逆変換部は、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離し、前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記第1の分離データのいずれか一方のデータを第1の反転処理データとし、前記第2の分離データの各ビットと前記第1の反転処理データの各ビットとが前記データバスの各ビットに配置された第1の転送データと、前記第1の反転データまたは前記第1の分離データのいずれのデータが前記第1の反転処理データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記第1の転送データとに分離し、さらに前記第1の転送データを、前記第2の分離データと第1の反転処理データとに分離する第2のビット分離部と、前記反転情報に基づいて、前記第1の反転処理データの各ビットの値をビット毎に反転した第2の反転データ、または前記第1の反転処理データのいずれか一方のデータを、前記第1の分離データとして出力する第2のビット反転部と、前記第1の分離データと前記第2の分離データとを結合して元の前記入力データに戻す第2のビット結合部と、を具備する、ことを特徴とする。
【0044】
また、本発明の前記データ逆変換部は、グレイコードで表されている前記第2の分離データを、バイナリコードに戻して表す第2のコード変換部、を、さらに具備し、前記第2のビット結合部は、前記第1の分離データと前記バイナリコードに戻して表された前記第2の分離データとを結合して元の前記入力データに戻す、ことを特徴とする。
【0045】
また、本発明の前記転送データは、同一の前記転送単位に配置された複数の前記入力データのそれぞれの前記第1の分離データがまとめて1つの前記第1の分離データとして処理されており、前記第2のビット分離部は、前記第1の転送データから、前記まとめられた単位の前記第1の分離データからなる第1の反転処理データを分離し、前記第2のビット反転部は、前記第1の反転処理データから前記まとめられた単位の前記第1の分離データを出力し、前記第2のビット結合部は、前記まとめられた単位の前記第1の分離データを、それぞれの前記第1の分離データに分離し、該分離した前記第1の分離データと対応する前記第2の分離データと結合して元の前記入力データに戻す、ことを特徴とする。
【0046】
また、本発明のデータ処理装置は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、を備え、前記データ逆変換部は、前記転送データの転送元のデータ処理装置が前記変換単位で前記転送データを出力する際の、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置と同じ設定が、予め定められており、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記転送データの転送元のデータ処理装置に設定された前記第1のビット位置と前記第2のビット位置とに基づいて、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成し、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択データとし、該選択データと、前記第1の反転データまたは前記第2の反転データのいずれかのデータが前記選択データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記選択データとに分離する第2のビット分離部と、入力された前記選択データから、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データとに戻す第2のビット反転部と、前記反転情報に基づいて、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを、該データ逆変換部において復元した元の前記入力データとして出力する第2のデータ選択部と、を具備する、ことを特徴とする。
【0047】
また、本発明の前記第2のビット反転部は、前記選択データの、前記第1のビット位置のビットの値をビット毎に反転すると共に、グレイコードで表されている前記第1のビット位置以外のビットのデータを、バイナリコードに戻して表した前記第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転すると共に、グレイコードで表されている前記第2のビット位置以外のビットのデータを、バイナリコードに戻して表した前記第2の反転データとに戻す、ことを特徴とする。
【0048】
また、本発明の前記転送データは、同一の前記転送単位に配置された複数の前記入力データがまとめて1つの前記選択データとして処理されており、前記第2のビット分離部は、前記転送データから、前記まとめられた単位の前記選択データを分離し、前記第2のビット反転部は、前記まとめられた単位の前記選択データから、まとめられた単位の前記第1の反転データと、まとめられた単位の前記第2の反転データとに戻し、前記第2のデータ選択部は、前記まとめられた単位の前記第1の反転データまたはまとめられた単位の前記第2の反転データを選択した後、それぞれの元の前記入力データに分離して出力する、ことを特徴とする。
【0049】
また、本発明のデータ処理方法は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、を含み、前記データ変換ステップは、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離する第1のビット分離ステップと、該データ変換ステップによってn(nは1以上の自然数)回目に出力した前記第1の分離データに応じた第1の出力データ内の各ビットの値と、該データ変換においてn+1回目に入力された前記第1の分離データ内の各ビットの値とを比較し、該比較したビットの比較情報を出力するビット比較ステップと、前記比較情報に基づいて、異なる値となっているビットの数を表すビット変化数を算出し、該算出した前記ビット変化数と、予め定めたビット数とに基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値を、ビット毎に反転するか否かを判定し、該判定した結果を反転情報として出力するビット判定ステップと、前記反転情報に基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記n+1回目に入力された前記第1の分離データのいずれか一方のデータを、第1の反転処理データとして出力する第1のビット反転ステップと、前記第1の反転処理データの各ビットと前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成し、該第1の転送データを前記転送データとして出力する際に、前記変換単位内の前記第1の転送データの内、データが配置されていない未使用ビットを含む前記第1の転送データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記第1の転送データ、または前記結合データのいずれか1つのデータを、該データ変換ステップにおける前記転送データとして出力する第1のビット結合ステップと、を含む、ことを特徴とする。
【0050】
また、本発明のデータ処理方法は、順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、を含み、前記データ変換ステップは、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置とが、予め定められており、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成する第1のビット反転ステップと、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを選択データとして出力する第1のデータ選択ステップと、該データ変換ステップによってn(nは1以上の自然数)回目に出力した前記選択データに応じた第1の出力データ内の各ビットの値と、該データ変換ステップにおいてn+1回目に入力された前記入力データに応じたn+1回目の前記第1の反転データまたは前記第2の反転データ内の各ビットの値とを比較し、該比較したビットのそれぞれの比較情報を、前記第1の反転データに対応して検出した第1の比較情報と前記第2の反転データに対応して検出した第2の比較情報として、それぞれ出力するビット比較ステップと、前記第1の比較情報に基づいて、異なる値となっているビットの数を表す第1のビット変化数を算出し、前記第2の比較情報に基づいて、異なる値となっているビットの数を表す第2のビット変化数を算出するビット変化数算出ステップと、前記第1のビット変化数と前記第2のビット変化数とに基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、該判定した結果を反転情報として出力するデータ判定ステップと、前記選択データを前記転送データとして出力する際に、前記変換単位内の前記選択データの内、データが配置されていない未使用ビットを含む前記選択データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記選択データ、または前記結合データのいずれか1つのデータを、該データ変換ステップにおける前記転送データとして出力する第1のビット結合ステップと、を含み、前記第1のデータ選択ステップは、前記反転情報に基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択して、n+1回目の選択データとして出力する、ことを特徴とする。
【0051】
また、本発明のデータ処理方法は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、を含み、前記データ逆変換ステップは、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離し、前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記第1の分離データのいずれか一方のデータを第1の反転処理データとし、前記第2の分離データの各ビットと前記第1の反転処理データの各ビットとが前記データバスの各ビットに配置された第1の転送データと、前記第1の反転データまたは前記第1の分離データのいずれのデータが前記第1の反転処理データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記第1の転送データとに分離し、さらに前記第1の転送データを、前記第2の分離データと第1の反転処理データとに分離する第2のビット分離ステップと、前記反転情報に基づいて、前記第1の反転処理データの各ビットの値をビット毎に反転した第2の反転データ、または前記第1の反転処理データのいずれか一方のデータを、前記第1の分離データとして出力する第2のビット反転ステップと、前記第1の分離データと前記第2の分離データとを結合して元の前記入力データに戻す第2のビット結合ステップと、を含む、ことを特徴とする。
【0052】
また、本発明のデータ処理方法は、複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、を含み、前記データ逆変換ステップは、前記転送データの転送元のデータ処理装置が前記変換単位で前記転送データを出力する際の、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置と同じ設定が、予め定められており、前記転送データの転送元のデータ処理装置が、前記転送データとして、前記転送データの転送元のデータ処理装置に設定された前記第1のビット位置と前記第2のビット位置とに基づいて、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成し、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択データとし、該選択データと、前記第1の反転データまたは前記第2の反転データのいずれかのデータが前記選択データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記選択データとに分離する第2のビット分離ステップと、入力された前記選択データから、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データとに戻す第2のビット反転ステップと、前記反転情報に基づいて、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを、該データ逆変換部において復元した元の前記入力データとして出力する第2のデータ選択ステップと、を含む、ことを特徴とする。
【発明の効果】
【0053】
本発明によれば、データの転送効率を維持した状態で、データ転送に係る消費電力を低減することができるという効果が得られる。
【図面の簡単な説明】
【0054】
【図1】本発明の実施形態における撮像装置の概略構成を示したブロック図である。
【図2】本実施形態の撮像装置に備えた第1の構成のデータ変換部の概略構成を示したブロック図である。
【図3】本実施形態の撮像装置に備えた第1の構成のデータ逆変換部の概略構成を示したブロック図である。
【図4】本実施形態の撮像装置に備えた第1の構成のデータ変換部における転送画素データの生成方法を説明する図である。
【図5】本実施形態の撮像装置に備えた第1の構成のデータ変換部における転送画素データの生成方法を説明する図である。
【図6】本実施形態の撮像装置に備えた第1の構成のデータ変換部における第1のデータ配置方法を説明する図である。
【図7】本実施形態の撮像装置に備えた第1の構成のデータ変換部における第2のデータ配置方法を説明する図である。
【図8】本実施形態の撮像装置に備えた第2の構成のデータ変換部の概略構成を示したブロック図である。
【図9】本実施形態の撮像装置に備えた第2の構成のデータ逆変換部の概略構成を示したブロック図である。
【図10】本実施形態の撮像装置に備えた第2の構成のデータ変換部における転送画素データの生成方法を説明する図である。
【図11】本実施形態の撮像装置に備えた第3の構成のデータ変換部の概略構成を示したブロック図である。
【図12】本実施形態の撮像装置に備えた第3の構成のデータ変換部における反転処理の適用範囲の一例を説明する図である。
【図13】本実施形態の撮像装置に備えた第3の構成のデータ逆変換部の概略構成を示したブロック図である。
【図14】本実施形態の撮像装置に備えたデータ変換部によるデータ配置方法を、別の画像データに適用した場合の一例を示した図である。
【図15】本実施形態の撮像装置に備えたデータ変換部によるデータ配置方法を、さらに別の画像データに適用した場合の一例を示した図である。
【図16】本実施形態の撮像装置に備えたデータ変換部によるデータ配置方法を、さらに別の画像データに適用した場合の一例を示した図である。
【図17】本実施形態の撮像装置に備えたデータ変換部によるデータ配置方法を、別のデータに適用した場合の一例を示した図である。
【図18】従来の撮像装置の概略構成を示したブロック図である。
【図19】画像データの配列の一例を示した図である。
【図20】従来のデータパッキングの一例を示した図である。
【図21】データバス上のデータの変化と消費電力との関係を説明する図である。
【図22】従来のデータパッキング方法におけるデータ配置の状態の一例を示した図である。
【図23】従来のデータパッキング方法におけるデータ配置の状態の別の一例を示した図である。
【図24】従来のデータ処理装置の概略構成を示したブロック図である。
【図25】従来のデータ処理装置においてデータの変化量を削減する一例を示した図である。
【図26】画像データにおけるデータの変化量の一例を示した図である。
【発明を実施するための形態】
【0055】
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における撮像装置の概略構成を示したブロック図である。図1に示した撮像装置1は、CPU10と、メモリ20と、CCD30と、撮像処理部40と、画像処理部50と、表示処理部60と、表示デバイス70と、データ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66と、を備えている。なお、撮像装置1は、撮影した画像データを記録する機能も有しているが、説明を容易にするため、以下の説明においては、撮影した画像データを表示する場合について説明する。また、図1においては、撮像装置1内の各構成要素(処理ブロック)間での画素データの受け渡しに係るデータバスであるメモリバスの接続のみを示している。
【0056】
CPU10は、撮像装置1の全体の制御を行う制御装置である。
メモリ20は、撮像装置1内の各処理ブロックが処理する画素データを一時的に記憶する、例えば、DRAM(Dynamic Random Access Memory)などのメモリである。メモリ20には、撮像装置1内の各処理ブロックによる各処理段階の画素データが一時記憶される。
【0057】
CCD30は、入射した被写体光を画像信号に変換する、例えば、ベイヤー配列の固体撮像素子である。CCD30は、被写体の画素信号を撮像処理部40に出力する。
撮像処理部40は、CCD30から入力された画素信号に対して、予め定められた信号処理を行った画像データを生成する。
【0058】
画像処理部50は、撮像処理部40が生成した画像データに対して、撮像装置1における種々の画像処理を行った画像データを生成する。
表示処理部60は、画像処理部50によって画像処理された画像データを、表示デバイス70に応じた表示データに変換する。表示処理部60は、変換した表示データを表示デバイス70に出力する。
表示デバイス70は、表示データを表示する、例えば、液晶などの表示装置である。
【0059】
本実施形態の撮像装置1では、CCD30によって撮像された被写体の画素信号を、撮像処理部40、画像処理部50、表示処理部60が順次処理し、表示デバイス70に表示させる。このとき、各処理段階の画像データは、メモリ20を介して各処理ブロック間で受け渡される。撮像装置1内のデータ変換部41および51と、データ逆変換部52および62と、出力DMA部45および55と、入力DMA部56および66とは、各処理段階の画像データの受け渡しに係る処理ブロックである。
【0060】
データ変換部41および51は、前段の処理ブロック(図1に示した本実施形態においては、撮像処理部40または画像処理部50)から入力された画像データ内の各画素データを、予め定められた配置(パッキング)方法で、メモリバスの各ビットに配置する。データ変換部41および51の構成と、データ変換部41および51による画素データのパッキング方法に関する詳細な説明は、後述する。
【0061】
出力DMA部45および55は、データ変換部41または51によってメモリバスの各ビットにパッキングされた画素データからなる画像データを、DMAアクセスによってメモリ20に書き込む(記憶させる)。
入力DMA部56および66は、メモリ20に記憶されている画像データをDMAアクセスによって読み出し、読み出した画像データを、データ逆変換部52または62に出力する。
【0062】
データ逆変換部52および62は、入力DMA部56または66から入力された画像データに含まれる画素データを、予め定められた配置(パッキング)方法と逆の方法で元の画像データに戻し、後段の処理ブロック(図1に示した本実施形態においては、画像処理部50または表示処理部60)に出力する。データ逆変換部52および62の構成に関する詳細な説明は、後述する。
【0063】
ここで、図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に表示させる。
【0064】
なお、撮像装置1が撮影した画像データを記録する場合には、画像データの記録処理を行う図示しない記録処理部が、画像処理部50によって記録用の画像処理がされた画像データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した記録用の画像データをメモリカードなどの図示しない画像データ記録部に記録する。また、撮像装置1に、例えば、音を入出力する機能を備えている場合には、音声処理を行う図示しない音声処理部が、撮影時の音声データを、図示しないデータ変換部および出力DMA部を介してメモリ20に記憶する。また、音声処理部が、メモリ20に記憶している音声データを、図示しない入力DMA部およびデータ逆変換部を介して読み出し、読み出した音声データに応じた音声を、スピーカーなどの図示しない音出力部に出力させる。
【0065】
<第1の構成>
次に、撮像装置1内のデータ変換部について説明する。なお、上記に述べたように、データ変換部41とデータ変換部51とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ変換部41は、前段の撮像処理部40と後段の出力DMA部45との間に配置され、データ変換部51は、前段の撮画像処理部50と後段の出力DMA部55との間に配置されている。従って、データ変換部41とデータ変換部51とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ変換部41について説明する。
【0066】
データ変換部41には、図19に示したような、16行×16列のベイヤー配列の画像データ(以下、「ベイヤーデータ」という)が入力される。そして、データ変換部41は、入力されたベイヤーデータ内の画素データを、予め定められたパッキング方法で、メモリバスに配置(パッキング)したパックデータを出力する。例えば、ベイヤーデータ内の各画素データのビット数が10bitであり、メモリバスのバス幅(メモリバス幅)が32bitである場合、データ変換部41は、ベイヤーデータ内の各画素データをパッキングする単位を4転送とし、4転送を1回のバースト転送の単位とする、すなわち、1バーストを画素データのパッキング単位としてパッキングした32bitのパックデータを出力する。なお、図19に示したベイヤーデータでは、各画素データの数字がCCD30内の画素の位置を表しており、数字の前の「R」,「G」,「B」がCCD30内の画素の色を表している。より具体的には、「R」がCCD30の赤色の画素の画素データ、「G」がCCD30の緑色の画素の画素データ、「B」がCCD30の青色の画素の画素データを表している。
【0067】
データ変換部41は、撮像処理部40から順次入力された10bitの画素データの各ビットのデータを、予め定められた後述するパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitのパックデータを生成する。そして、データ変換部41は、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて生成したパックデータを順次出力する。なお、データイネーブル信号は、出力DMA部45がバースト転送する際にパックデータを転送するタイミングを表す信号である。
【0068】
データ変換部41がパックデータを生成する際には、まず、入力された画素データをビット毎に比較して、ビット変化の少ない画素データ(以下、「転送画素データ」という)を生成する。より具体的には、データ変換部41は、入力された画素データを予め定められたビット数の上位の画素データと下位の画素データとに分離する。そして、前回出力した下位の画素データの各ビットの値と、今回分離した下位の画素データの各ビットの値とを比較し、前回出力した下位の画素データに対して、値が変化しているビットの数が少ない下位の画素データを生成する。その後、今回分離した上位の画素データと結合し、転送画素データとする。また、データ変換部41は、下位の画素データの値が変化しているビットの数(ビット変化数)に応じた、転送画素データを生成したときの情報を出力する。
【0069】
その後、データ変換部41は、予め定められたパッキング方法で、転送画素データの各ビットのデータを、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに配置(パッキング)し、最終的に出力するパックデータとして出力する。また、データ変換部41は、転送画素データを生成したときの情報を、パッキング単位(4転送)内に存在する未使用ビットに付加して、パックデータと共に出力する。
【0070】
なお、データ変換部41は、上記に述べたように、画素データが入力される毎に、転送画素データを生成し、生成した転送画素データおよび転送画素データを生成したときの情報を順次パッキングしたパックデータを順次出力することもできるが、データ変換部41内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力された画素データをメモリ部に一旦保持し、保持したそれぞれの画素データに基づいた転送画素データを生成し、生成した転送画素データのパッキングと、転送画素データを生成したときの情報の付加とを行う。
【0071】
また、入力された画素データを最初にパッキングし、その後、ビット変化の少ないパックデータの生成と、パックデータを生成したときの情報の付加とを行う構成とすることもできる。この場合には、最初にパッキングしたパックデータを、入力された画素データと同様に扱って処理する。
【0072】
図2は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41の概略構成を示したブロック図である。図2に示したように、データ変換部41は、ビット分離部411と、EXOR(排他的論理和)回路412と、D−FF413と、EXOR回路414と、多数決判定部415と、ビット結合部416と、を備えている。
【0073】
上記に述べたように、データ変換部41は、入力された10bitの画素データの値が変化しているビットの数が少ない転送画素データをパッキングして、データ変換部41が最終的に出力する32bitのパックデータを生成する。しかし、以下の説明においては、説明を容易にするため、データ変換部41に8bitの画素データが順次入力され、入力された画素データから転送画素データを生成し、転送画素データを生成したときの情報を付加した9bitのパックデータを出力する場合について説明する。すなわち、データ変換部41は、1つの転送画素データをパッキングしたパックデータを生成する場合について説明する。なお、複数の転送画素データをパッキングしたパックデータの生成方法に関する詳細な説明は、後述する。
【0074】
以下の説明においては、データ変換部41に入力される10bitの画素データと8bitの画素データとを区別するため、8bitの画素データを入力データDIN[7:0]と表す。また、32bitのパックデータと9bitのパックデータとを区別するため、以下の説明においては、9bitのパックデータを出力データDOUT[8:0]と表す。なお、以下の説明において、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0075】
また、以下の説明においては、8bitの入力データDINを、上位4bitと下位4bitとに分離して、ビット変化の少ない転送画素データを生成する場合について説明する。
【0076】
ビット分離部411は、入力された8bitの入力データDIN[7:0]を、上位4bitの入力データDIN[7:4]と下位4bitの入力データDIN[3:0]とに分離する。そして、入力データDIN[7:4]をビット結合部416に、入力データDIN[3:0]をEXOR回路412とEXOR回路414とに出力する。
【0077】
EXOR回路412は、多数決判定部415から入力された反転ビットに応じて、ビット分離部411から入力された下位の入力データDINの各ビットの値を、ビット毎に反転(“1”から“0”、または“0”から“1”)した反転データ[3:0]、または下位の入力データDINの各ビットの値がそのままの非反転データ[3:0]を、ビット結合部416とD−FF413とに出力する。なお、以下の説明においては、EXOR回路412から出力される反転データまたは非反転データを、「下位画像データ」という。また、ビット分離部411から出力される上位4bitの入力データDINを、「上位画像データ」という。また、以下の説明においては、EXOR回路412が、多数決判定部415から入力された反転ビットに応じて、反転データまたは非反転データを出力する処理を、「反転処理」という。
【0078】
D−FF413は、EXOR回路412から出力された下位画像データ[3:0]を保持する。このD−FF413によって保持された下位画像データは、前回出力した出力データDOUTの下位4bitの出力データDOUT[3:0]として、EXOR回路414に出力される。
【0079】
EXOR回路414は、ビット分離部411から入力された下位の入力データDIN[3:0]と、D−FF413から入力された下位の出力データDOUT[3:0]との2つのデータの各ビットの値を比較して、値が変化しているビットの有無を検出する。そして、EXOR回路414は、値が変化しているビットであることを表す値=“1”、または値が変化しているビットではないことを示す値=“0”を、比較したそれぞれのビット毎に出力する。
【0080】
より具体的には、EXOR回路414による2つのデータの比較においては、下位の入力データDINの各ビットと、下位の出力データDOUTの各ビットとの排他的論理和がとられる。これにより、下位の入力データDINのビットの値と下位の出力データDOUTのビットの値とが同じ値のときに“0”が出力され、下位の入力データDINのビットの値と下位の出力データDOUTのビットの値とが異なる値のときに“1”が出力される。
【0081】
多数決判定部415は、EXOR回路414から入力された値が変化しているビットの有無を検出した結果に基づいて、下位の入力データDIN[3:0]が、次に下位の出力データDOUT[3:0]として出力されるときに、値が変化するビットの数(ビット変化数)を算出する。そして、多数決判定部415は、算出したビット変化数と、下位の入力データDINのビット数(データ幅:4ビット)との多数決判定を行い、反転データまたは非反転データのいずれのデータを、下位画像データとして出力するかを決定する。これにより、多数決判定部415は、前回入力された入力データDINを反転処理した後の出力データDOUTと、今回入力された入力データDINとのビット変化数に基づいて、多数決判定を行うことになる。そして、決定したデータを表す情報を反転ビットとして、EXOR回路412とビット結合部416とに出力する。
【0082】
多数決判定部415による多数決判定は、算出したビット変化数が、下位の入力データDINのビット数の過半数であるか否かによって判定される。より具体的には、ビット変化数が下位の入力データDINのビット数の過半数を占める(>2)場合に、反転データを出力すると判定し、反転ビットとして“1”の値を出力する。また、多数決判定部415は、ビット変化数が下位の入力データDINのビット数の半数以下(≦2)の場合に、非反転データを出力すると判定し、反転ビットとして“0”の値を出力する。この反転ビットの値に応じて、EXOR回路412による反転処理が行われる。
【0083】
EXOR回路412による反転処理においては、下位の入力データDINの各ビットと、反転ビットとの排他的論理和がとられる。これにより、EXOR回路412から反転ビットに応じた下位画像データが出力される。より具体的には、反転ビットが“1”のとき、下位の入力データDIN[3:0]の各ビットの値が反転された反転データ[3:0]が出力され、反転ビットが“0”のとき、下位の入力データDIN[3:0]の各ビットの値がそのままの非反転データ[3:0]が出力される。
【0084】
なお、多数決判定部415による多数決判定は、上記に述べたように、前回出力した下位の出力データDOUTと今回出力する下位の出力データDOUTのビット変化数に基づいて行われる。しかし、例えば、下位の入力データDINのビット数が偶数である場合には、ビット変化数が下位の入力データDINのビット数の半数になる場合がある。この場合、EXOR回路412は、下位画像データとして、反転データまたは非反転データのいずれのデータを出力してもよい。
【0085】
しかし、反転ビットも出力データDOUT(パックデータ)に付加されて出力されるため、反転処理の結果に応じて反転ビットが異なる値に変化すると、反転ビットの変化が下位の出力データDOUTの各ビットの変化数に加算されてしまう。このため、前回出力した下位の出力データDOUTに対して今回出力する下位の出力データDOUTのビット変化数が最も少なくなるようにするためには、下位の出力データDOUTと反転ビットとを含めた全体を考慮して、下位画像データを出力するのが望ましい。このため、多数決判定部415は、反転ビットも含めて多数決判定を行う。より具体的には、多数決判定部415は、前回出力した下位の出力データDOUTが、反転データであったか非反転データであったか、すなわち、反転ビットが“1”であったか“0”であったかに基づいて、多数決判定を行う。そして、多数決判定部415は、ビット変化数が下位の入力データDINのビット数の半数(=2)である場合には、前回出力した下位の出力データDOUTに対応した反転ビットの値と同じ値の反転ビットを、今回出力する下位の出力データDOUTに対応した反転ビットとして出力する。これにより、反転ビットの変化が下位の出力データDOUTの各ビットの変化数に加算されてしまうということを回避することができる。
【0086】
ビット結合部416は、ビット分離部411から入力された上位画像データ[7:4]と、EXOR回路412から出力された下位画像データ[3:0]とを結合した転送画素データ[7:0]を生成する。また、ビット結合部416は、さらに、生成した転送画素データの最上位ビットの上位側の次のビットに、多数決判定部415から入力された反転ビットを付加(ビット結合)した出力データDOUT[8:0]を生成する。ここで生成された出力データDOUTが、データ変換部41から最終的に出力する出力データDOUT(パックデータ)として、出力DMA部45に出力される。
【0087】
次に、撮像装置1内のデータ逆変換部について説明する。なお、上記に述べたように、データ逆変換部52とデータ逆変換部62とは、接続される前段の処理ブロックと後段の処理ブロックが異なるのみである。より具体的には、図1に示したように、データ逆変換部52は、前段の入力DMA部56と後段の画像処理部50との間に配置され、データ逆変換部62は、前段の入力DMA部66と後段の表示処理部60との間に配置されている。従って、データ逆変換部52とデータ逆変換部62とは、入力される画像データと出力する画像データとのデータ形式(フォーマット)が異なるのみである。以下の説明においては、代表してデータ逆変換部52について説明する。
【0088】
なお、以下の説明においては、データ逆変換部52に、データ変換部41によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図19に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitであるものとして説明する。
【0089】
データ逆変換部52は、入力DMA部56から順次入力された32bitのパックデータの各ビットに配置されたデータを、予め定められた後述するパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した10bitの画素データに復元する。そして、データ逆変換部52は、例えば、画像処理部50から入力される図示しないデータイネーブル信号に基づいて復元した元の画素データを順次出力する。なお、データイネーブル信号は、画像処理部50に出力するタイミングを表す信号である。
【0090】
データ逆変換部52が画素データを復元する際には、まず、入力された32bitのパックデータ(このパックデータは、データ変換部41が生成したパックデータと同等である)から、データ変換部41によるパッキング方法と逆の方法で、それぞれのデータ(このデータは、データ変換部41が生成した転送画素データと同等であるため、以下の説明においては、「転送画素データ」として説明する)に、順次分割(アンパッキング)する。
【0091】
その後、データ逆変換部52は、パッキング単位(4転送)内に存在する未使用ビットに付加されている、転送画素データを生成したときの情報に基づいて、データ変換部41によってパックデータを生成した方法と逆の方法で、それぞれの画素データを生成する。より具体的には、データ逆変換部52は、転送画素データを、予め定められたビット数の上位の転送画素データと下位の転送画素データとに分離する。そして、転送画素データを生成したときの情報に基づいて、下位の転送画素データに対して反転処理を行う。その後、今回分離した上位の転送画素データと結合し、元の画素データとする。
【0092】
なお、データ逆変換部52は、上記に述べたように、入力DMA部56からパックデータが入力される毎に、転送画素データに分割し、分割した転送画素データに対する反転処理を順次行うこともできるが、データ逆変換部52内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータをメモリ部に一旦保持し、保持したそれぞれのパックデータからの転送画素データの分割と、転送画素データを生成したときの情報に基づいた反転処理を行う。
【0093】
また、入力DMA部56から入力されたパックデータを最初に、ビット変化の少ないパックデータと、パックデータを生成したときの情報とに分割し、元のパックデータに戻した後に、元のパックデータに配置されたそれぞれの画素データに分割(アンパッキング)する構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータを、転送画素データと同様に扱って処理する。
【0094】
図3は、本実施形態の撮像装置1に備えた第1の構成のデータ逆変換部52の概略構成を示したブロック図である。図3に示したように、データ逆変換部52は、ビット分離部521と、EXOR回路522と、ビット結合部523と、を備えている。
【0095】
上記に述べたように、データ逆変換部52は、入力DMA部56から入力された32bitのパックデータから転送画素データを分割し、分割した転送画素データに反転処理を行って、元に戻した画素データを生成する。しかし、以下の説明においては、説明を容易にするため、データ逆変換部52に、入力DMA部56から転送画素データを生成したときの情報が付加された9bitのパックデータが入力され、パックデータから分割した転送画素データから元の画素データを生成する場合について説明する。すなわち、データ逆変換部52は、1つの転送画素データがパッキングされたパックデータから、1つの画素データを復元する場合について説明する。
【0096】
以下の説明においては、32bitのパックデータと9bitのパックデータとを区別するため、以下の説明においては、9bitのパックデータを入力データDIN[8:0]と表す。また、10bitの画素データと8bitの画素データとを区別するため、以下の説明においては、8bitの画素データを出力データDOUT[7:0]と表す。なお、以下の説明において、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0097】
また、以下の説明においては、9bitのパックデータの最上位ビット(入力データDIN[8])に転送画素データを生成したときの情報である反転ビットが付加されており、転送画素データを、上位4bitと下位4bitとに分離して、元の画素データに復元する場合について説明する。
【0098】
ビット分離部521は、入力された9bitの入力データDIN[8:0]を、最上位の入力データDIN[8]、すなわち、反転ビットと、入力データDIN[7:0]、すなわち、転送画素データとに分離する。さらに、ビット分離部521は、入力データDIN[7:0]を、上位4bitの入力データDIN[7:4]と下位4bitの入力データDIN[3:0]とに分離する。そして、入力データDIN[7:4]をビット結合部523に、入力データDIN[8]と入力データDIN[3:0]とをEXOR回路522に出力する。
【0099】
EXOR回路522は、ビット分離部521から入力された反転ビットに応じて、同じくビット分離部521から入力された下位の入力データDINの各ビットの値を、ビット毎に反転(“1”から“0”、または“0”から“1”)した下位のデータ[3:0]、または下位の入力データDINの各ビットの値がそのままの下位のデータ[3:0]を、ビット結合部523に出力する。なお、EXOR回路522が出力する下位のデータは、データ変換部41が生成した反転データまたは非反転データと同等であるため、以下の説明においては、「反転データ」または「非反転データ」として説明する。また、以下の説明においては、EXOR回路522から出力される反転データまたは非反転データを、データ変換部41と同様に、「下位画像データ」という。また、ビット分離部521から出力される上位4bitの入力データDINも、データ変換部41における上位画像データと同様であるため、「上位画像データ」という。また、以下の説明においては、EXOR回路522が、ビット分離部521から入力された反転ビットに応じて、反転データまたは非反転データを出力する処理を、データ変換部41と同様に、「反転処理」という。
【0100】
EXOR回路522による反転処理においては、データ変換部41内のEXOR回路412と同様に、下位の入力データDINの各ビットと、反転ビットとの排他的論理和がとられる。これにより、EXOR回路522から反転ビットに応じた下位の画像データが出力される。すなわち、EXOR回路522からは、EXOR回路412と同様に、反転ビットが“1”のときに、下位の入力データDIN[3:0]の各ビットの値が反転された反転データ[3:0]が出力され、反転ビットが“0”のときに、下位の入力データDIN[3:0]の各ビットの値がそのままの非反転データ[3:0]が出力される。
【0101】
ビット結合部523は、ビット分離部521から入力された上位画像データ[7:4]と、EXOR回路522から出力された下位画像データ[3:0]とを結合した出力データDOUT [7:0]を生成する。ここで生成された出力データDOUTが、データ逆変換部52によって復元された、すなわち、データ変換部41に入力された、元の画素データとして、画像処理部50に出力される。
【0102】
<反転処理方法>
次に、データ変換部41による転送画素データの生成方法について説明する。図4は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41における転送画素データの生成方法を説明する図である。なお、以下の説明においては、説明を容易にするため、データ変換部41に8ビットの入力データDINが入力され、9ビットの出力データDOUTを出力する場合について説明する。ここでは、図25(a)に示した入力データと同じデータが、入力データDINとしてデータ変換部41に入力される場合を考える。そして、データ変換部41が、1つの転送画素データをパッキングしたパックデータを生成する場合について説明する。図4(a)は、図25(a)に示した入力データ(入力データDIN)と下位の入力データDINのビット変化数とを示し、図4(b)には、データ変換部41から出力される出力データDOUTおよび反転ビット(パックデータ)と、出力データDOUT全体のビット変化数とを示している。
【0103】
データ変換部41には、図4(a)に示したような入力データDINが、上段から下段に向かって時系列的に順次入力される。データ変換部41は、入力データDINが入力される毎に、下位の入力データDINの各ビットの値を順次比較する。より具体的には、図4(a)に示した入力データDINのそれぞれの段において、下位の入力データDINの各ビットの値を上段の下位の入力データDINの値と比較し、ビット変化数を算出する。これにより、図4(a)に示したような下位の入力データDINのビット変化数を得る。図4(a)からわかるように、データ変換部41に入力された入力データDINにおける下位の入力データDIN[3:0]のビット変化数は、「A」の段のビット変化数が半数を超えている。
【0104】
そこで、データ変換部41は、算出したビット変化数に応じて、下位の入力データDINに対して反転処理を行った転送画素データを生成し、さらに、生成した転送画素データの最上位ビットの上位側の次のビットに反転ビットを付加して、図4(b)に示したようなパックデータを、最終的に出力するパックデータとして順次出力する。図4(b)をみてわかるように、データ変換部41が生成したパックデータに含まれる転送画素データおけるビット変化数の合計は、26ビットになる。これは、図25(b)に示した従来のデータ処理装置における反転処理よりも、データの変化量が4ビット削減されている。
【0105】
このように、データ変換部41は、データの相関性が低い(データの変化頻度の高い)下位の入力データDINの各ビットの値を順次比較し、ビット変化数が大きい下位の入力データDINに対して反転処理を行う。これにより、図24に示した従来のデータ処理装置による反転処理よりも、データを転送するときの全体でのデータの変化量を削減することができる。すなわち、反転処理によるデータの変化量の削減効果を、より多く得ることができる。なお、図4(b)の「B」の段では、転送画素データのビット変化数が、過半数になっている。これは、上位の入力データDINのビット変化数が、多いことに起因している。
【0106】
また、図24に示した従来のデータ処理装置では、入力データの全てのビットに対して反転処理を行っているのに対して、データ変換部41では、入力データDINの下位のビットにのみ反転処理を行っている。このため、データ変換部41では、多数決判定部415など、反転処理に係る回路規模の削減の効果も得ることができる。
【0107】
ここで、反転ビットも考慮したビット変化数について考える。図5は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41における転送画素データの生成方法を説明する図である。図5においては、図4(b)に示した出力データDOUTと反転ビットとを合わせた全体を考慮した、パックデータの生成方法を示している。そして、図5(a)には、図4(b)に示した出力データDOUTおよび反転ビット(パックデータ)と、反転ビットを含めた出力データDOUT全体のビット変化数とを示し、図5(b)には、反転ビットを考慮した判定によって生成された出力データDOUTおよび反転ビット(パックデータ)と、パックデータ全体のビット変化数とを示している。
【0108】
図4(b)に示した出力データDOUTと反転ビットとを合わせたビット変化数は、図5(a)に示したように、反転ビットの変化がビットの変化数に加算される。このため、図5(a)の場合においては、図25(b)に示した従来のデータ処理装置において反転ビットを含めた場合のビット変化数よりも削減されるものの、得られるデータの変化量の削減効果は少なくなる。また、図5(a)からわかるように、「C」の段のビット変化数が半数を超えている。
【0109】
そこで、多数決判定部415が、反転ビットも含めて多数決判定を行うことによって、図5(b)に示したようなパックデータを、最終的に出力するパックデータとする。図5(b)をみてわかるように、データ変換部41が反転ビットを考慮して生成したパックデータに含まれる転送画素データにおけるビット変化数の合計は、28ビットになる。なお、図示していないが、図25(b)に示した従来のデータ処理装置において反転ビットを考慮した場合のビット変化数の合計は、33ビットである。このように、反転ビットを含めた場合においても、従来のデータ処理装置における反転処理よりも、データの変化量を削減することができる。なお、図5(b)の「D」の段では、転送画素データのビット変化数が、過半数になっている。これは、上位の入力データDINのビット変化数が、多いことに起因している。
【0110】
次に、画素データの配置(パッキング)方法について説明する。本実施形態の撮像装置1では、データ変換部41および51が入力された画素データをメモリバスに配置したパックデータを生成し、データ逆変換部52および62が入力されたパックデータを元の画素データに戻す。なお、以下の説明においては、データ変換部41に、図19に示したベイヤーデータ内の各画素データが順次入力され、4転送を1つのパッキング単位とした1バーストのパックデータにパッキングする場合について説明する。また、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitであるものとする。そして、1転送あたり3画素分の画素データを、32bitのメモリバスに配置するものとする。
【0111】
なお、データ逆変換部52および62によるパックデータを元の画素データに戻す方法は、データ変換部41および51による画素データのパッキング方法と逆の方法であるため、詳細な説明は省略する。
【0112】
また、以下の説明においては、10bitの画素データのそれぞれを、上位6bitと下位4bitとに分離し、1転送内に含まれる3つの画素データの下位4bitに共通の反転ビットを、1転送内に存在する未使用ビットの内、下位側のビットに付加する場合について説明する。従って、多数決判定部415は、4bit×3画素=12bitの画素データを、図2の説明における下位の入力データDINと同様に扱って、多数決判定を行い、多数決判定の結果に応じた1つの反転ビットを出力する。また、図2の説明における上位の入力データDINは、6bit×3画素=18bitの画素データである。
【0113】
<第1のデータ配置方法>
図6は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41における第1のデータ配置方法を説明する図である。図6(a)には、従来のバースト単位でのデータ配置方法(パッキング方法)によって画素データの各ビットが配置されたパックデータを示している。また、図6(b)には、データ変換部41によってパックデータ内の画素データに対する反転ビットが付加されたパックデータ内のデータの配置を示している。以下の説明においては、データ変換部41が、図6(a)に示したパックデータ内の画素データの配置と同様の配置で、反転処理された画素データが配置された、図6(b)に示したパックデータを生成する場合について説明する。
【0114】
本第1のパッキング方法では、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理し、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。
【0115】
なお、図6に示したように、それぞれの1転送のデータには、3つの画素データが含まれているため、データ変換部41は、3つの画素データを1つのデータとして扱う。このため、データ変換部41は、例えば、3つの画素データを一時的に保持するメモリ部を備え、順次入力された3つの画素データをメモリ部に一旦保持し、保持したそれぞれの画素データに基づいて反転処理、パッキング、および反転ビットの付加を行う。
【0116】
より具体的には、まず、ビット分離部411に1転送目の3つの画素データ「R0」、「G1」、「R2」が入力されると、ビット分離部411は、入力されたそれぞれの画素データを、それぞれ保持する。そして、ビット分離部411は、メモリ部に保持した「R0」のビット[9]〜ビット[4]、「G1」のビット[9]〜ビット[4]、および「R2」のビット[9]〜ビット[4]の18bitのデータを、1転送目の上位画像データ[17:0]として、ビット結合部416に出力する。また、ビット分離部411は、メモリ部に保持した「R0」のビット[3]〜ビット[0]、「G1」のビット[3]〜ビット[0]、および「R2」のビット[3]〜ビット[0]の12bitのデータを、1転送目の下位の画素データ[11:0]として、EXOR回路412とEXOR回路414とに出力する。
【0117】
ここで、1転送目の下位の画素データ[11:0]は、バースト転送において最初に出力されるデータであるため、多数決判定部415からは、反転ビットとして“0”の値が出力されている。このため、EXOR回路412は、1転送目の下位の画素データ[11:0]がそのままの1転送目の下位画像データ[11:0]を出力する。また、D−FF413は、1転送目の下位画像データ[11:0]を保持する。
【0118】
その後、ビット結合部416は、ビット分離部411から入力された1転送目の上位画像データ[17:0]と、EXOR回路412から入力された1転送目の下位画像データ[11:0]とを、図6(b)の1転送目に示したように、それぞれの画素データ(「R0」、「G1」、「R2」)毎に32bitのメモリバスに配置する。より具体的には、1転送目の下位画像データ[3:0]、すなわち、反転処理された「R0」のビット[3]〜ビット[0]を、メモリバスのビット[3]〜ビット[0]に配置し、1転送目の上位画像データ[5:0]、すなわち、「R0」のビット[9]〜ビット[4]を、メモリバスのビット[9]〜ビット[4]に配置する。また、1転送目の下位画像データ[7:4]、すなわち、反転処理された「G1」のビット[3]〜ビット[0]を、メモリバスのビット[13]〜ビット[10]に配置し、1転送目の上位画像データ[11:6]、すなわち、「G1」のビット[9]〜ビット[4]を、メモリバスのビット[19]〜ビット[14]に配置する。また、1転送目の下位画像データ[11:8]、すなわち、反転処理された「R2」のビット[3]〜ビット[0]を、メモリバスのビット[23]〜ビット[20]に配置し、1転送目の上位画像データ[17:12]、すなわち、「R0」のビット[9]〜ビット[4]を、メモリバスのビット[29]〜ビット[24]に配置する。
【0119】
また、ビット結合部416は、多数決判定部415から入力された1転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置する。なお、メモリバスのビット[31]は、未使用ビットにする。
【0120】
続いて、ビット分離部411に2転送目の3つの画素データ「G3」、「R4」、「G5」が入力されると、ビット分離部411は、入力されたそれぞれの画素データを、それぞれ保持する。そして、ビット分離部411は、メモリ部に保持した「G3」のビット[9]〜ビット[4]、「R4」のビット[9]〜ビット[4]、および「G5」のビット[9]〜ビット[4]の18bitのデータを、2転送目の上位画像データ[17:0]として、ビット結合部416に出力する。また、ビット分離部411は、メモリ部に保持した「G3」のビット[3]〜ビット[0]、「R4」のビット[3]〜ビット[0]、および「G5」のビット[3]〜ビット[0]の12bitのデータを、2転送目の下位の画素データ[11:0]として、EXOR回路412とEXOR回路414とに出力する。
【0121】
EXOR回路414は、ビット分離部411から入力された2転送目の下位の画素データ[11:0]の各ビットの値と、D−FF413から入力された1転送目の下位画像データ[11:0]の各ビットの値とを比較して、値が変化しているビットの有無を検出する。そして、EXOR回路414は、それぞれのビット毎に、値が変化しているビットの有無を表す値を、多数決判定部415に出力する。そして、多数決判定部415は、EXOR回路414から入力された値が変化しているビットの有無を検出した結果に基づいて多数決判定を行い、反転ビットを出力する。これにより、EXOR回路412は、2転送目の下位の画素データ[11:0]を反転処理した2転送目の下位画像データ[11:0]を出力する。また、D−FF413は、2転送目の下位画像データ[11:0]を保持する。
【0122】
その後、ビット結合部416は、ビット分離部411から入力された2転送目の上位画像データ[17:0]と、EXOR回路412から入力された2転送目の下位画像データ[11:0]とを、図6(b)の2転送目に示したように、それぞれの画素データ(「G3」、「R4」、「G5」)毎に32bitのメモリバスに配置する。より具体的には、2転送目の下位画像データ[3:0]、すなわち、反転処理された「G3」のビット[3]〜ビット[0]を、メモリバスのビット[3]〜ビット[0]に配置し、2転送目の上位画像データ[5:0]、すなわち、「G3」のビット[9]〜ビット[4]を、メモリバスのビット[9]〜ビット[4]に配置する。また、2転送目の下位画像データ[7:4]、すなわち、反転処理された「R4」のビット[3]〜ビット[0]を、メモリバスのビット[13]〜ビット[10]に配置し、2転送目の上位画像データ[11:6]、すなわち、「R4」のビット[9]〜ビット[4]を、メモリバスのビット[19]〜ビット[14]に配置する。また、2転送目の下位画像データ[11:8]、すなわち、反転処理された「G5」のビット[3]〜ビット[0]を、メモリバスのビット[23]〜ビット[20]に配置し、2転送目の上位画像データ[17:12]、すなわち、「G5」のビット[9]〜ビット[4]を、メモリバスのビット[29]〜ビット[24]に配置する。
【0123】
また、ビット結合部416は、多数決判定部415から入力された2転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置する。なお、メモリバスのビット[31]は、未使用ビットにする。
【0124】
以降、同様に、データ変換部41は、入力された3転送目の3つの画素データ「R6」、「G7」、「R8」、4転送目の3つの画素データ「G9」、「R10」、「G11」、が入力される毎に、処理後の画素データをメモリバスのビット[29]〜ビット[0]に配置すると共に、下位画像データ[11:0]に対応した反転ビットをメモリバスのビット[30]に配置する。なお、同様に、メモリバスのビット[31]は、未使用ビットにする。
【0125】
このようにして、本第1のパッキング方法では、バースト転送における1サイクル分のメモリアクセス(1転送)毎に、画素データの上位のビットと、反転処理した画素データの下位のビットと、反転ビットとをメモリバスのそれぞれのビットに配置する。これにより、バースト転送時における各転送間でのメモリバスの各ビットの変化量を少なくすることができる。
【0126】
<第2のデータ配置方法>
図7は、本実施形態の撮像装置1に備えた第1の構成のデータ変換部41における第2のデータ配置方法を説明する図である。図7(a)には、本第2のデータ配置方法(パッキング方法)におけるパックデータの第1のデータ配置の一例を示している。また、図7(b)には、本第2のデータ配置方法(パッキング方法)におけるパックデータの第2のデータ配置の一例を示している。
【0127】
画像データは、通常、隣接する画素同士の方が画素データの変化量が小さい。このため、パックデータを構築する際には、バースト転送時にメモリバスの各ビットの変化量が最も小さくなるように、隣接する画素の画素データの同一ビットを、各転送におけるメモリバスの同一のビットに配置することが望ましい。
【0128】
また、ベイヤー、RGB、またはYC422点順次など、画像処理部50が画像処理する際の画像のフォーマットによって、画像データ内の各画素データが表す色の情報が異なる。このため、パックデータを構築する際には、バースト転送時にメモリバスの各ビットの変化量が最も小さくなるように、同一色の画素データを、各転送におけるメモリバスの同一のビットに配置することが望ましい。
【0129】
本第2のパッキング方法では、第1のパッキング方法と同様に、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理し、反転処理した後の画素データの下位ビットと、上位ビットとを、それぞれ1転送のメモリバスに配置する。このとき、本第2のパッキング方法では、バースト転送する際の連続する2転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるように、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、第1のパッキング方法と同様に、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。
【0130】
なお、本第2のパッキング方法は、上位画像データおよび下位画像データの配置位置が、第1のパッキング方法と異なるのみである。しかし、同じ1転送のメモリバスに配置する画素データは、第1のパッキング方法と異なり、データ変換部41に連続して入力される画素データではない。このため、データ変換部41は、1バースト分、すなわち、パッキング単位(4転送)分の10bitの画素データを一時的に保持するメモリ部を備え、1バースト(4転送)分の全ての画素データをメモリ部に一旦保持する。そして、メモリ部に保持したそれぞれの画素データの内、同じ1転送のメモリバスに配置する3つの画素データを1つのデータとして扱って、反転処理を行う。なお、保持した画素データに基づいた反転処理、多数決判定、および反転ビットの付加は、第1のパッキング方法と同様であるため、詳細な説明は省略する。
【0131】
図7(a)に示した本第2のパッキング方法におけるパックデータの第1のデータ配置の一例では、バースト転送における連続する2転送間のデータにおいて、隣接する同一色の画素データのビットの位置がなるべく同じ位置になるように、上位画像データおよび下位画像データをメモリバス上に配置する。
【0132】
より具体的には、図7(a)に示したように、1転送目におけるメモリバスへの上位画像データおよび下位画像データの配置では、1転送目の下位画像データ[3:0](反転処理された「R0」のビット[3]〜ビット[0])をメモリバスのビット[3]〜ビット[0]に配置し、1転送目の上位画像データ[5:0](「R0」のビット[9]〜ビット[4])をメモリバスのビット[9]〜ビット[4]に配置する。また、1転送目の下位画像データ[7:4](反転処理された「G1」のビット[3]〜ビット[0])をメモリバスのビット[13]〜ビット[10]に配置し、1転送目の上位画像データ[11:6](「G1」のビット[9]〜ビット[4])をメモリバスのビット[19]〜ビット[14]に配置する。また、1転送目の下位画像データ[11:8](反転処理された「R8」のビット[3]〜ビット[0])をメモリバスのビット[23]〜ビット[20]に配置し、1転送目の上位画像データ[17:12](「R8」のビット[9]〜ビット[4])をメモリバスのビット[29]〜ビット[24]に配置する。また、1転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0133】
2転送目におけるメモリバスへの上位画像データおよび下位画像データの配置では、2転送目の下位画像データ[3:0](反転処理された「R2」のビット[3]〜ビット[0])をメモリバスのビット[3]〜ビット[0]に配置し、2転送目の上位画像データ[5:0](「R2」のビット[9]〜ビット[4])をメモリバスのビット[9]〜ビット[4]に配置する。また、2転送目の下位画像データ[7:4](反転処理された「G3」のビット[3]〜ビット[0])をメモリバスのビット[13]〜ビット[10]に配置し、2転送目の上位画像データ[11:6](「G3」のビット[9]〜ビット[4])をメモリバスのビット[19]〜ビット[14]に配置する。また、2転送目の下位画像データ[11:8](反転処理された「R10」のビット[3]〜ビット[0])をメモリバスのビット[23]〜ビット[20]に配置し、2転送目の上位画像データ[17:12](「R10」のビット[9]〜ビット[4])をメモリバスのビット[29]〜ビット[24]に配置する。また、2転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0134】
以降、同様に、データ変換部41は、3転送目の3つの画素データ「R4」、「G5」、「G9」、4転送目の3つの画素データ「R6」、「G7」、「G11」にそれぞれ対応した上位画像データおよび下位画像データを、メモリバスのビット[29]〜ビット[0]に配置する。また、データ変換部41は、同様に、それぞれの下位画像データに対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0135】
図7(b)に示した本第2のパッキング方法におけるパックデータの第2のデータ配置の一例では、第1のデータ配置の一例と同様に、バースト転送における連続する2転送間のデータにおいて、隣接する同一色の画素データのビットの位置がなるべく同じ位置になるように、上位画像データおよび下位画像データをメモリバス上に配置する。このとき、本第2のデータ配置の一例では、上位画像データと下位画像データとを分けて、メモリバス上に配置する。
【0136】
より具体的には、図7(b)に示したように、1転送目におけるメモリバスへの上位画像データおよび下位画像データの配置では、1転送目の上位画像データ[5:0](「R0」のビット[9]〜ビット[4])をメモリバスのビット[5]〜ビット[0]に配置し、1転送目の上位画像データ[11:6](「G1」のビット[9]〜ビット[4])をメモリバスのビット[11]〜ビット[6]に配置し、1転送目の上位画像データ[17:12](「R8」のビット[9]〜ビット[4])をメモリバスのビット[17]〜ビット[12]に配置する。また、1転送目の下位画像データ[3:0](反転処理された「R0」のビット[3]〜ビット[0])をメモリバスのビット[21]〜ビット[18]に配置し、1転送目の下位画像データ[7:4](反転処理された「G1」のビット[3]〜ビット[0])をメモリバスのビット[25]〜ビット[22]に配置し、1転送目の下位画像データ[11:8](反転処理された「R8」のビット[3]〜ビット[0])をメモリバスのビット[29]〜ビット[26]に配置する。また、1転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0137】
2転送目におけるメモリバスへの上位画像データおよび下位画像データの配置では、2転送目の上位画像データ[5:0](「R2」のビット[9]〜ビット[4])をメモリバスのビット[5]〜ビット[0]に配置し、2転送目の上位画像データ[11:6](「G3」のビット[9]〜ビット[4])をメモリバスのビット[11]〜ビット[6]に配置し、2転送目の上位画像データ[17:12](「R10」のビット[9]〜ビット[4])をメモリバスのビット[17]〜ビット[12]に配置する。また、2転送目の下位画像データ[3:0](反転処理された「R2」のビット[3]〜ビット[0])をメモリバスのビット[21]〜ビット[18]に配置し、2転送目の下位画像データ[7:4](反転処理された「G3」のビット[3]〜ビット[0])をメモリバスのビット[25]〜ビット[22]に配置し、2転送目の下位画像データ[11:8](反転処理された「R10」のビット[3]〜ビット[0])をメモリバスのビット[29]〜ビット[26]に配置する。また、2転送目の下位画像データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0138】
以降、同様に、データ変換部41は、3転送目の3つの画素データ「R4」、「G5」、「G9」、4転送目の3つの画素データ「R6」、「G7」、「G11」にそれぞれ対応した上位画像データを、メモリバスのビット[17]〜ビット[0]に配置する。また、3転送目の3つの画素データ「R4」、「G5」、「G9」、4転送目の3つの画素データ「R6」、「G7」、「G11」にそれぞれ対応した下位画像データを、メモリバスのビット[29]〜ビット[18]に配置する。また、データ変換部41は、同様に、それぞれの下位画像データに対応した反転ビットを、メモリバスのビット[30]に配置し、メモリバスのビット[31]は、未使用ビットにする。
【0139】
このようにして、本第2のパッキング方法でも、第1のパッキング方法と同様に、バースト転送における1サイクル分のメモリアクセス(1転送)毎に、画素データの上位のビットと、反転処理した画素データの下位のビットと、反転ビットとをメモリバスのそれぞれのビットに配置する。また、本第2のパッキング方法では、バースト転送する際の連続する2転送間のデータにおいて、メモリバス上に配置される隣接する同一色の画素データのビットの位置がなるべく同じ位置になるように、反転処理した後の画素データの下位ビットと、上位ビットとを、それぞれ1転送のメモリバスに配置する。これにより、バースト転送時における各転送間でのメモリバスの各ビットの変化量が、さらに少なくなる場合がある。
【0140】
なお、図7に示した第2のパッキング方法では、反転処理した後の画素データの下位ビットと上位ビットとをメモリバスに配置する際に、画素データの各色をまとめて、それぞれ1転送のメモリバスに配置する場合について説明したが、画素データをメモリバスに配置する方法は、本第2のパッキング方法に限定されるものではない。すなわち、同一色で同一ビットの画素データが、連続する2転送間においてメモリバス上の同一ビットに配置される方法であれば、他の配置方法を適用することもできる。例えば、各画素データをそれぞれのビットに分割して、分割したビット毎に、同一色で同一ビットの画素データが、連続する2転送間のメモリバス上の同一ビットに配置されるようにすることもできる。
【0141】
上記に述べたように、本第1の構成のデータ変換部41および51では、データの相関性が低い(データの変化頻度の高い)下位の画素データの各ビットの値を順次比較し、ビット変化数が大きい下位の画素データに対して反転処理を行うことにより、バースト転送時におけるメモリバスの各ビットの変化量を少なくした画素データを、メモリバスに配置することができる。これにより、本第1の構成のデータ変換部41および51では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法よりも、画像データの転送に係る消費電力を低減させることができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
【0142】
一般的に、画素データは、バイナリコードで表される。しかし、バイナリコードの場合、相関性が高く、値の変化が少ない(データの変化頻度が低い)データであっても、データの変化によっては、各ビットの値が全て異なる値になってしまう場合がある。例えば、データの値が“128”から“127”に変化した場合、バイナリコードでは、“1000_0000”から“0111_1111”に変化するため、全てのビットの値が変化してしまう。そこで、バイナリコードの代わりに、グレイコードを用いて画素データを表すことを検討する。
【0143】
グレイコードは、その特徴として、データの変化が“1”である場合には、必ず1ビットだけしか変化しないという特徴があるデータコードである。画素データをグレイコードで表すことによって、バイナリコードのように、データの変化が“1”であるにもかかわらず全てのビットの値が変化してしまう、ということを回避することができる。例えば、画素データが8bitである場合、画素データの値が“128”および“64”の近辺で微小に変動した場合などに、グレイコードにおいてはビットの値の変化が少ないという効果を得ることができる。
【0144】
<第2の構成>
次に、本第2の構成のデータ変換部について説明する。図8は、本実施形態の撮像装置1に備えた第2の構成のデータ変換部43の概略構成を示したブロック図である。図8に示したデータ変換部43は、第1の構成のデータ変換部41の代わりに、撮像装置1に備えられる。従って、データ変換部43は、データ変換部51の代わりに撮像装置1に備えることもできる。図8に示したように、データ変換部43は、ビット分離部411と、EXOR回路412と、D−FF413と、EXOR回路414と、多数決判定部415と、ビット結合部416と、コード変換部431と、を備えている。
【0145】
本第2の構成のデータ変換部43と、図2に示した第1の構成のデータ変換部41との異なる点は、第1の構成のデータ変換部41に加えて、コード変換部431を備えたことのみである。従って、以下の説明においては、第1の構成のデータ変換部41内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【0146】
なお、以下の説明においては、第1の構成と同様に、データ変換部43に、図19に示したような、16行×16列のベイヤーデータが入力され、4転送をベイヤーデータ内の各画素データのパッキング単位とし、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitである場合について説明する。
【0147】
データ変換部43は、第1の構成のデータ変換部41と同様に、撮像処理部40から順次入力された10bitの画素データの各ビットのデータを、上述したような予め定められたパッキング方法で、メモリバス上の各ビットに配置した32bitのパックデータを出力する。ただし、 データ変換部43がパックデータを生成する際に、入力された画素データをビット毎に比較して生成する転送画素データの生成方法が、第1の構成のデータ変換部41と異なる。
【0148】
より具体的には、データ変換部43は、第1の構成のデータ変換部41と同様に、入力された画素データを予め定められたビット数の上位の画素データと下位の画素データとに分離する。そして、今回分離した下位の画素データは、第1の構成のデータ変換部41と同様に、反転処理して、値が変化しているビットの数が少ない下位の画素データを生成する。また、データ変換部43は、今回分離した上位の画素データのデータコードを、バイナリコードからグレイコードに変換する。その後、グレイコードに変換した上位の画素データと、反転処理した下位の画素データとを結合し、転送画素データとする。また、データ変換部43は、第1の構成のデータ変換部41と同様に、下位の画素データを反転処理したときの情報を表す反転ビットを付加する。
【0149】
その後、データ変換部43は、第1の構成のデータ変換部41と同様に、上述したような予め定められたパッキング方法で、転送画素データの各ビットのデータと、反転ビットとを、メモリバスの各ビットに配置し、最終的に出力するパックデータとして出力する。
【0150】
上記に述べたように、データ変換部43は、入力された10bitの画素データの値が変化しているビットの数が少ない転送画素データをパッキングして、最終的に出力する32bitのパックデータを生成する。しかし、以下の説明においては、説明を容易にするため、データ変換部43に8bitの画素データが順次入力され、入力された画素データから転送画素データを生成し、転送画素データを生成したときの情報を付加した9bitのパックデータを出力する場合について説明する。すなわち、データ変換部43においても、第1の構成のデータ変換部41と同様に、1つの転送画素データをパッキングしたパックデータを生成する場合について説明する。なお、複数の転送画素データをパッキングしたパックデータの生成方法は、図6に示した上述した第1のパッキング方法および図7に示した上述した第2のパッキング方法と同様であるため、それぞれの詳細な説明は省略する。
【0151】
また、以下の説明においては、第1の構成のデータ変換部41と同様に、データ変換部43に入力される10bitの画素データと8bitの画素データとを区別するため、8bitの画素データを入力データDIN[7:0]と表す。また、32bitのパックデータと9bitのパックデータとを区別するため、9bitのパックデータを出力データDOUT[8:0]と表す。なお、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0152】
また、以下の説明においては、8bitの入力データDINを、上位4bitと下位4bitとに分離して、ビット変化の少ない転送画素データを生成する場合について説明する。
【0153】
コード変換部431は、ビット分離部411から入力された上位画像データ[7:4]のデータコードを、バイナリコードからグレイコードに変換する。そして、コード変換部431は、グレイコードに変換した上位画像データを、ビット結合部416に出力する。
【0154】
ビット結合部416は、コード変換部431から入力されたグレイコードに変換された上位画像データ[7:4]と、EXOR回路412から出力された下位画像データ[3:0]とを結合した転送画素データ[7:0]を生成する。また、ビット結合部416は、さらに、生成した転送画素データの最上位ビットの上位側の次のビットに、多数決判定部415から入力された反転ビットを付加(ビット結合)した出力データDOUT[8:0]を生成する。ここで生成された出力データDOUTが、データ変換部43から最終的に出力する出力データDOUT(パックデータ)として、出力DMA部45に出力される。
【0155】
次に、本第2の構成のデータ逆変換部について説明する。図9は、本実施形態の撮像装置1に備えた第2の構成のデータ逆変換部54の概略構成を示したブロック図である。図9に示したデータ逆変換部54は、第1の構成のデータ逆変換部52の代わりに、撮像装置1に備えられる。従って、データ逆変換部54は、データ逆変換部62の代わりに撮像装置1に備えることもできる。図9に示したように、データ逆変換部54は、ビット分離部521と、EXOR回路522と、ビット結合部523と、コード変換部541と、を備えている。
【0156】
本第2の構成のデータ逆変換部54と、図3に示した第1の構成のデータ逆変換部52との異なる点は、第1の構成のデータ逆変換部52に加えて、コード変換部541を備えたことのみである。従って、以下の説明においては、第1の構成のデータ逆変換部52内の構成要素と同様の構成要素に対して同一の符号を付与し、それぞれの詳細な説明は省略する。
【0157】
なお、以下の説明においては、第1の構成と同様に、データ逆変換部54に、データ変換部43によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図19に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitであるものとして説明する。
【0158】
データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、入力DMA部56から順次入力された32bitのパックデータの各ビットに配置されたデータを、上述したような予め定められたパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した10bitの画素データに復元する。ただし、データ逆変換部54が画素データを復元する際に、分割されたそれぞれの転送画素データを、元の画素データに復元する方法が、第1の構成のデータ逆変換部52と異なる。
【0159】
より具体的には、データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、入力された32bitのパックデータから、データ変換部43によるパッキング方法と逆の方法で、それぞれの転送画素データに、順次分割(アンパッキング)する。
【0160】
その後、データ逆変換部54は、第1の構成のデータ逆変換部52と同様に、転送画素データを、予め定められたビット数の上位の転送画素データと下位の転送画素データとに分離する。そして、パッキング単位(4転送)内に存在する未使用ビットに付加されている、転送画素データを生成したときの情報を表す反転ビットに基づいて、今回分離した下位の転送画素データに対して反転処理を行う。また、データ逆変換部54は、今回分離した上位の転送画素データのデータコードを、グレイコードからバイナリコードに変換する。その後、バイナリコードに変換した上位の転送画素データと、反転処理した下位の転送画素データとを結合し、元の画素データとする。
【0161】
上記に述べたように、データ逆変換部54は、入力DMA部56から入力された32bitのパックデータから転送画素データを分割し、分割した転送画素データに反転処理を行って、元に戻した画素データを生成する。しかし、以下の説明においては、説明を容易にするため、データ逆変換部54に、入力DMA部56から転送画素データを生成したときの情報が付加された9bitのパックデータが入力され、パックデータから分割した転送画素データから元の画素データを生成する場合について説明する。すなわち、データ逆変換部54においても、第1の構成のデータ逆変換部52と同様に、1つの転送画素データがパッキングされたパックデータから、1つの画素データを復元する場合について説明する。
【0162】
また、以下の説明においては、第1の構成のデータ逆変換部52と同様に、32bitのパックデータと9bitのパックデータとを区別するため、9bitのパックデータを入力データDIN[8:0]と表す。また、10bitの画素データと8bitの画素データとを区別するため、8bitの画素データを出力データDOUT[7:0]と表す。なお、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0163】
また、以下の説明においては、9bitのパックデータの最上位ビット(入力データDIN[8])に転送画素データを生成したときの情報である反転ビットが付加されており、転送画素データを、上位4bitと下位4bitとに分離して、元の画素データに復元する場合について説明する。
【0164】
コード変換部541は、ビット分離部521から入力された上位画像データ[7:4]のデータコードを、グレイコードからバイナリコードに変換する。そして、コード変換部541は、バイナリコードに変換した上位画像データを、ビット結合部523に出力する。
【0165】
ビット結合部523は、コード変換部541から入力されたバイナリコードに変換された上位画像データ[7:4]と、EXOR回路522から出力された下位画像データ[3:0]とを結合した出力データDOUT [7:0]を生成する。ここで生成された出力データDOUTが、データ逆変換部54によって復元された、すなわち、データ変換部43に入力された、元の画素データとして、画像処理部50に出力される。
【0166】
<反転処理方法>
次に、データ変換部43による転送画素データの生成方法について説明する。図10は、本実施形態の撮像装置1に備えた第2の構成のデータ変換部43における転送画素データの生成方法を説明する図である。なお、以下の説明においては、説明を容易にするため、データ変換部43に8ビットの入力データDINが入力され、9ビットの出力データDOUTを出力する場合において、8bitの入力データDINを、上位4bitと下位4bitとに分離して、ビット変化の少ない転送画素データを生成する場合について説明する。そして、データ変換部43が、1つの転送画素データをパッキングしたパックデータを生成する場合について説明する。図10(a)は、入力データDINと上位および下位のそれぞれの入力データDINのビット変化数とを示し、図10(b)には、データ変換部43から出力される出力データDOUTおよび反転ビット(パックデータ)と、上位および下位のそれぞれの出力データDOUTのビット変化数とを示している。
【0167】
ここでは、データ変換部43に、図10(a)に示したような入力データDINが、上段から下段に向かって時系列的に順次入力される場合を考える。図10(a)は、入力データDINの値が“128”または“64”の近辺で微小に変動している場合を示している。図10(a)をみてわかるように、入力データDINのデータの相関性が高い(データの変化頻度が低い)場合であっても、それぞれのビットの値は変化している。ここで、図10(a)に示した入力データDINを、上位の入力データDINと下位の入力データDINとに分けて、それぞれビット変化数をみると、上位の入力データDINのビット変化数の合計は27ビットであり、下位の入力データDINのビット変化数の合計は26ビットである。なお、図10(a)をみてわかるように、上位4bitの入力データDINの変化は、“1”である。
【0168】
データ変換部43は、入力データDINが入力される毎に、第1の構成のデータ変換部41と同様に、下位の入力データDINの各ビットの値を順次比較し、下位の入力データDINに対して反転処理を行った下位画像データを生成する。また、データ変換部43は、入力データDINが入力される毎に、上位の入力データDINのバイナリコードを、グレイコードに変換した上位画像データを生成する。そして、データ変換部43は、グレイコードに変換された上位画像データと、反転処理された下位画像データとを結合した転送画素データを生成し、さらに、生成した転送画素データの最上位ビットの上位側の次のビットに反転ビットを付加して、図10(b)に示したようなパックデータを、最終的に出力するパックデータとして順次出力する。
【0169】
図10(b)をみてわかるように、データ変換部43が生成したパックデータに含まれる下位の転送画素データおけるビット変化数の合計は、16ビットになる。これは、図10(b)に示した下位の入力データDINのビット変化数よりも、データの変化量が10ビット削減されている。また、図10(b)をみてわかるように、データ変換部43が生成したパックデータに含まれる上位の転送画素データおけるビット変化数の合計は、9ビットになる。これは、図10(b)に示した上位の入力データDINのビット変化数よりも、データの変化量が18ビット削減されている。
【0170】
このように、データ変換部43は、第1の構成のデータ変換部41と同様に、データの相関性が低い(データの変化頻度の高い)下位の入力データDINの各ビットの値を順次比較し、ビット変化数が大きい下位の入力データDINに対して反転処理を行う。また、データ変換部43は、データの相関性が高い(データの変化頻度が低い)上位の入力データDINに対しては、バイナリコードをグレイコードに変換する。これにより、入力データDINのデータの相関性が高い(データの変化頻度が低い)場合であっても、ビット変化の少ないパックデータを生成することができる。特に、画素データの上位ビットは、相関性が高く、値の変化が少ないデータであるが、上位ビットのデータのデータコードを、バイナリコードからグレイコードに変換することによって、上位ビットの画像データは、さらに相関性が高まる。また、第1の構成のデータ変換部41のように、下位の入力データDINに対してのみ反転処理するよりも、データを転送するときの全体でのデータの変化量を削減することができる。なお、図10(b)の「B」の段における上位の転送画素データのビット変化数が、“2”になっているが、これは、入力データDINの値が“128”近辺の値から“64”近辺の値に変化したことに起因している。
【0171】
上記に述べたように、本第2の構成のデータ変換部43では、データの相関性が低い(データの変化頻度の高い)下位の画素データと、データの相関性が高い(データの変化頻度が低い)上位の画素データとのそれぞれに、異なる処理を行うことにより、バースト転送時におけるメモリバスの各ビットの変化量を少なくした画素データを、メモリバスに配置することができる。これにより、本第2の構成のデータ変換部43では、従来のバースト単位でのパッキング方法と同様に、画像データの転送効率を維持すると共に、従来のバースト単位でのパッキング方法および第1の構成のデータ変換部41よりも、画像データの転送に係る消費電力を低減させることができる。このことにより、撮像装置1内の各構成要素(処理ブロック)とメモリ20との間での画素データの転送、すなわち、撮像装置1内の各構成要素間での画素データの受け渡しに係る消費電力を低減させることができる。
【0172】
上記に述べた第1の構成のデータ変換部41および第2の構成のデータ変換部43においては、予め定められたビット数の下位の画像データ、すなわち、画像データ内の1つのビットの範囲に対して反転処理を行う場合について説明した。しかし、反転処理を行う画像データのビットの範囲は、予め定められた1つの範囲のみではなく、画像データ内の複数のビットの範囲に対して反転処理を行う構成にすることもできる。
【0173】
<第3の構成>
次に、本第3の構成のデータ変換部について説明する。図11は、本実施形態の撮像装置1に備えた第3の構成のデータ変換部47の概略構成を示したブロック図である。図11に示したデータ変換部47は、第1の構成のデータ変換部41または第2の構成のデータ変換部43の代わりに、撮像装置1に備えられる。従って、データ変換部47は、データ変換部51の代わりに撮像装置1に備えることもできる。
【0174】
図11に示したように、データ変換部47は、4つのビット反転部471a〜471d(以下、ビット反転部471a〜471dのいずれか1つを表すときには「ビット反転部471」という)と、機能選択部472と、D−FF473と、4つのEXOR回路474a〜474d(以下、EXOR回路474a〜474dのいずれか1つを表すときには「EXOR回路474」という)と、4つのビット加算部475a〜475d(以下、ビット加算部475a〜475dのいずれか1つを表すときには「ビット加算部475」という)と、比較部476と、ビット結合部477と、を備えている。
【0175】
なお、以下の説明においては、第1の構成および第2の構成と同様に、データ変換部47に、図19に示したような、16行×16列のベイヤーデータが入力され、4転送をベイヤーデータ内の各画素データのパッキング単位とし、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitである場合について説明する。
【0176】
データ変換部47は、撮像処理部40から順次入力された10bitの画素データの各ビットのデータを、上述したような予め定められたパッキング方法のいずれか1つの方法で、メモリバス上の各ビットに配置した32bitのパックデータを生成する。そして、データ変換部47は、例えば、出力DMA部45から入力される図示しないデータイネーブル信号に基づいて生成したパックデータを順次出力する。なお、データイネーブル信号は、出力DMA部45がバースト転送する際にパックデータを転送するタイミングを表す信号である。
【0177】
データ変換部47がパックデータを生成する際には、まず、入力された画素データを、例えば、図12に示したような、予め定められた反転処理の適用範囲に応じて反転処理したそれぞれの画素データ(以下、「反転画素データ」という)を生成する。図12は、本実施形態の撮像装置1に備えた第3の構成のデータ変換部47における反転処理の適用範囲の一例を説明する図である。より具体的には、データ変換部47には、図12に示したように、4つの反転処理の適用範囲に対応した反転ケース(反転ケースa〜d)が予め定められ、入力された画素データに対して、それぞれの反転ケースに応じた反転処理を行った、それぞれの反転画素データを生成する。なお、ここで、反転処理とは、第1の構成および第2の構成と同様に、画素データの各ビットの値を、ビット毎に反転(“1”から“0”、または“0”から“1”)する処理である。
【0178】
そして、データ変換部47は、前回出力した反転画素データの各ビットの値と、今回生成した反転画素データの各ビットの値とをそれぞれ比較し、前回出力した反転画素データに対して、値が変化しているビットの数が少ない反転画素データを選択する。そして、選択した反転画素データを、今回出力する反転画素データとする。また、データ変換部47は、選択した反転画素データに対応した機能選択ビットを、反転画素データを選択したときの情報として出力する。この機能選択ビットは、画素データに対して適用した反転処理の範囲を表している。また、図12に示した反転処理の適用範囲では、4つの反転処理の適用範囲を予め設定しているため、機能選択ビットのビット数は、2bitである。
【0179】
その後、データ変換部47は、上述したような予め定められたパッキング方法で、反転画素データの各ビットのデータを、メモリバスに対応したデータバス(このデータバスはメモリバスの各ビットに対応しているため、以下の説明においては、「メモリバス」として説明する)の各ビットに配置(パッキング)し、最終的に出力するパックデータとして出力する。また、データ変換部47は、反転画素データを選択したときの情報(機能選択ビット)を、パッキング単位(4転送)内に存在する未使用ビットに付加して、パックデータと共に出力する。
【0180】
なお、データ変換部47は、上記に述べたように、画素データが入力される毎に、それぞれの反転ケースに応じた反転画素データを生成し、選択した反転画素データおよび機能選択ビットを順次パッキングしたパックデータを順次出力することもできるが、データ変換部47内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力された画素データをメモリ部に一旦保持し、保持したそれぞれの画素データに基づいた反転画素データを生成し、選択した反転画素データのパッキングと、機能選択ビットの付加とを行う。
【0181】
また、入力された画素データを最初にパッキングし、その後、予め定められた反転ケースに応じた反転画素データと同様のパックデータの生成と、パックデータを選択したときの情報(パックデータに対して適用した反転処理の範囲を表す情報)の付加とを行う構成とすることもできる。この場合には、最初にパッキングしたパックデータを、入力された画素データと同様に扱って処理する。
【0182】
上記に述べたように、データ変換部47は、入力された10bitの画素データから、予め定められた反転ケースに応じて生成した反転画素データのいずれかを選択し、選択した反転画素データをパッキングして、データ変換部47が最終的に出力する32bitのパックデータを生成する。しかし、以下の説明においては、説明を容易にするため、データ変換部47に8bitの画素データが順次入力され、入力された画素データから生成した反転画素データのいずれかを選択し、選択した反転画素データに2bitの機能選択ビットを付加した10bitのパックデータを出力する場合について説明する。すなわち、データ変換部47は、1つの反転画素データをパッキングしたパックデータを生成する場合について説明する。なお、複数の反転画素データをパッキングしたパックデータの生成方法は、図6に示した上述した第1のパッキング方法および図7に示した上述した第2のパッキング方法と同様であるため、それぞれの詳細な説明は省略する。
【0183】
以下の説明においては、第1の構成のデータ変換部41および第2の構成のデータ変換部43と同様に、データ変換部47に入力される10bitの画素データと8bitの画素データとを区別するため、8bitの画素データを入力データDIN[7:0]と表す。また、32bitのパックデータと10bitのパックデータとを区別するため、以下の説明においては、10bitのパックデータを出力データDOUT[9:0]と表す。なお、以下の説明において、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0184】
また、以下の説明においては、8bitの入力データDINを、図12に示したような、予め定められた反転ケースに応じて反転処理した、それぞれの反転画素データを生成する場合について説明する。
【0185】
ビット反転部471a〜471dは、それぞれ、図12に示した反転処理の適用範囲に応じて、入力された8bitの入力データDIN[7:0]の各ビットの値を、ビット毎に反転処理した反転画素データを生成する。ビット反転部471a〜471dのそれぞれは、生成した反転画素データを、機能選択部472と、対応するEXOR回路474a〜474dとに出力する。なお、ビット反転部471a〜471dは、それぞれ、反転ケースa〜dに対応している。そして、以下の説明において、ビット反転部471a〜471dが生成した反転画素データを区別する場合には、ビット反転部471a〜471dに付与した符号の最後の1文字を反転画素データにも付与し、「反転画素データa」、「反転画素データb」、「反転画素データc」、および「反転画素データd」という。
【0186】
ここで、ビット反転部471a〜471dのそれぞれの処理について、より具体的に説明する。ビット反転部471aにおける反転処理は、反転ケースa、すなわち、「反転しない」である。ビット反転部471aは、入力データDIN[7:0]の各ビットの値がそのままの反転画素データa[7:0]を出力する。また、ビット反転部471bにおける反転処理は、反転ケースb、すなわち、「下位2ビット反転」である。ビット反転部471bは、入力データDIN[7:0]の下位の2ビット(入力データDIN[1:0])の値を反転し、その他のビット(入力データDIN[7:2])の値がそのままの反転画素データb[7:0]を出力する。また、ビット反転部471cにおける反転処理は、反転ケースc、すなわち、「下位4ビット反転」である。ビット反転部471cは、入力データDIN[7:0]の下位の4ビット(入力データDIN[3:0])の値を反転し、その他のビット(入力データDIN[7:4])の値がそのままの反転画素データc[7:0]を出力する。また、ビット反転部471dにおける反転処理は、反転ケースd、すなわち、「全ビット反転」である。ビット反転部471dは、入力データDIN[7:0]の全てのビットの値を反転した反転画素データd[7:0]を出力する。
【0187】
機能選択部472は、比較部476から入力された機能選択ビットに応じて、ビット反転部471a〜471dのそれぞれから入力された反転画素データa〜dの内、いずれか1つの反転画素データを選択する。そして、選択した反転画素データを、ビット結合部477とD−FF473とに出力する。なお、以下の説明においては、機能選択部472によって選択され、出力された反転画素データを、「選択画素データ」という。
【0188】
D−FF473は、機能選択部472から出力された選択画素データ[7:0]を保持する。このD−FF473によって保持された選択画素データは、前回出力した出力データDOUT[7:0]として、EXOR回路474a〜474dのそれぞれに出力される。
【0189】
EXOR回路474a〜474dは、それぞれ、ビット反転部471a〜471dから入力された反転画素データa[7:0]〜d[7:0]と、D−FF473から入力された出力データDOUT[7:0]との2つのデータの各ビットの値を比較して、値が変化しているビットの有無を検出する。そして、EXOR回路474a〜474dのそれぞれは、値が変化しているビットであることを表す値=“1”、または値が変化しているビットではないことを示す値=“0”を、比較したそれぞれのビット毎に出力する。
【0190】
より具体的には、EXOR回路474のそれぞれによる2つのデータの比較においては、反転画素データの各ビットと、出力データDOUTの各ビットとの排他的論理和がとられる。これにより、反転画素データのビットの値と出力データDOUTのビットの値とが同じ値のときに“0”が出力され、反転画素データのビットの値と出力データDOUTのビットの値とが異なる値のときに“1”が出力される。
【0191】
ビット加算部475a〜475dは、それぞれ、対応するEXOR回路474a〜474dから入力された値が変化しているビットの数を計数し、値が変化しているビットの数の合計(以下、「ビット変化数」という)を算出する。そして、算出したビット変化数を、比較部476に出力する。例えば、EXOR回路474aから入力された、値が変化しているビットの値が、“1111_0000”である場合には、ビット変化数の値として“4”が出力される。このように、ビット加算部475a〜475dのそれぞれは、反転画素データ[7:0]が、次に出力データDOUT[7:0]として出力されるときに、値が変化するビットの数(ビット変化数)を出力する。
【0192】
比較部476は、ビット加算部475a〜475dのそれぞれから入力されたビット変化数の内、ビット変化数が最も少ないものを判定し、最も少ないビット変化数を出力したビット加算部475を特定(選択)する。そして、最も少ないビット変化数を出力したビット加算部475を表す情報を、機能選択ビットとして、機能選択部472とビット結合部477とに出力する。これにより、前回出力した反転画素データ(出力データDOUT)に対して、値が変化しているビットの数が最も少ない反転画素データを選択することになる。
【0193】
ビット結合部477は、機能選択部472からから入力された選択画素データ[7:0]の最上位ビットの上位側の次の2ビットに、比較部476から入力された機能選択ビットを付加(ビット結合)した出力データDOUT[9:0]を生成する。ここで生成された出力データDOUTが、データ変換部47から最終的に出力する出力データDOUT(パックデータ)として、出力DMA部45に出力される。
【0194】
次に、本第2の構成のデータ逆変換部について説明する。図13は、本実施形態の撮像装置1に備えた第3の構成のデータ逆変換部58の概略構成を示したブロック図である。図13に示したデータ逆変換部58は、第1の構成のデータ逆変換部52または第2の構成のデータ逆変換部54の代わりに、撮像装置1に備えられる。従って、データ逆変換部58は、データ逆変換部62の代わりに撮像装置1に備えることもできる。
【0195】
図13に示したように、データ逆変換部58は、ビット分離部581と、4つのビット復元部582a〜582d(以下、ビット復元部582a〜582dのいずれか1つを表すときには「ビット復元部582」という)と、機能選択部583と、を備えている。
【0196】
なお、以下の説明においては、第1の構成および第2の構成と同様に、データ逆変換部58に、データ変換部47によってパッキングされた、4転送をパッキング単位とした1バーストのパックデータが、入力DMA部56を介して入力され、入力されたパックデータを、図19に示したベイヤーデータに戻す場合について説明する。従って、ベイヤーデータ内の各画素データのビット数は10bitであり、メモリバス幅は32bitであるものとして説明する。
【0197】
データ逆変換部58は、入力DMA部56から順次入力された32bitのパックデータの各ビットに配置されたデータを、上述したような予め定められたパッキング方法のいずれか1つの方法と逆の方法で、画像処理部50が画像処理する元の画像データ(ベイヤーデータ)に戻した10bitの画素データに復元する。そして、データ逆変換部58は、例えば、画像処理部50から入力される図示しないデータイネーブル信号に基づいて復元した元の画素データを順次出力する。なお、データイネーブル信号は、画像処理部50に出力するタイミングを表す信号である。
【0198】
また、データ逆変換部58には、図12に示したデータ変換部47が画素データに対して反転処理するときの反転ケースと同じ反転処理の適用範囲である反転ケース(反転ケースa〜d)が、予め設定されている。
【0199】
データ逆変換部58が画素データを復元する際には、まず、入力された32bitのパックデータ(このパックデータは、データ変換部47が生成したパックデータと同等である)から、データ変換部47によるパッキング方法と逆の方法で、それぞれのデータ(このデータは、データ変換部47が生成した選択画素データと同等であるため、以下の説明においては、「選択画素データ」として説明する)に、順次分割(アンパッキング)する。
【0200】
その後、データ逆変換部58は、パッキング単位(4転送)内に存在する未使用ビットに付加されている、画素データに対して適用した反転ケースを表す情報(機能選択ビット)に基づいて、データ変換部47が画素データに対して行った反転処理と逆の方法で、選択画素データを反転処理し、それぞれの画素データを生成する。より具体的には、データ逆変換部58は、機能選択ビットに基づいて、データ変換部47によって選択された反転ケースに対応した反転ケースを選択する。そして、データ逆変換部58は、選択した反転ケース(反転処理の適用範囲)に応じた反転処理を、選択画素データに対して行って、元の画素データに復元する。
【0201】
なお、データ逆変換部58は、上記に述べたように、入力DMA部56からパックデータが入力される毎に、選択画素データに分割し、分割した選択画素データに対する反転処理を順次行うこともできるが、データ逆変換部58内に、例えば、1バースト分、すなわち、パッキング単位(4転送)分の32bitのパックデータを一時的に保持するメモリ部を備えた構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータをメモリ部に一旦保持し、保持したそれぞれのパックデータからの選択画素データの分割と、選択画素データを生成したときの情報に基づいた反転処理を行う。
【0202】
また、入力DMA部56から入力されたパックデータを最初に、選択画素データ(反転画素データ)と同様のパックデータと、パックデータを選択したときの情報(パックデータに対して適用した反転処理の範囲を表す情報)とに分割し、元のパックデータに戻した後に、元のパックデータに配置されたそれぞれの画素データに分割(アンパッキング)する構成とすることもできる。この場合には、入力DMA部56から入力されたパックデータを、選択画素データ(反転画素データ)と同様に扱って処理する。
【0203】
上記に述べたように、データ逆変換部58は、入力DMA部56から入力された32bitのパックデータから選択画素データを分割し、分割した選択画素データに反転処理を行って、元に戻した画素データを生成する。しかし、以下の説明においては、説明を容易にするため、データ逆変換部58に、入力DMA部56から、画素データに対して適用した反転処理の範囲を表す2bitの機能選択ビットが付加された10bitのパックデータが入力され、パックデータから分割した選択画素データに対して、機能選択ビットで表された、データ変換部47が画素データに対して行った反転処理の適用範囲と同じ範囲に反転処理を行って、元の画素データを生成する場合について説明する。すなわち、データ逆変換部58は、1つの選択画素データがパッキングされたパックデータから、1つの画素データを復元する場合について説明する。
【0204】
以下の説明においては、第1の構成のデータ逆変換部52および第2の構成のデータ逆変換部54と同様に、32bitのパックデータと10bitのパックデータとを区別するため、以下の説明においては、10bitのパックデータを入力データDIN[9:0]と表す。また、10bitの画素データと8bitの画素データとを区別するため、以下の説明においては、8bitの画素データを出力データDOUT[7:0]と表す。なお、以下の説明において、入力データDINまたは出力データDOUTのビットを特定しない、すなわち、入力データDINまたは出力データDOUTの全てのビット範囲を表す場合には、データのビットの範囲を表す“[]:括弧”内の数字を省略する。
【0205】
また、以下の説明においては、10bitのパックデータの最上位ビットから2ビット(入力データDIN[9:8])に、画素データに対して適用した反転ケースを表す情報である機能選択ビットが付加されており、選択画素データを、機能選択ビットによって表されている反転処理の適用範囲に応じて反転処理して、元の画素データに復元する場合について説明する。
【0206】
ビット分離部581は、入力された10bitの入力データDIN[9:0]を、最上位から2ビットの入力データDIN[9:8]、すなわち、機能選択ビットと、入力データDIN[7:0]、すなわち、選択画素データとに分離する。そして、ビット分離部581は、分離した選択画素データを、ビット復元部582a〜582dに出力する。また、ビット分離部581は、分離した機能選択ビットを機能選択部583に出力する。なお、選択画素データは、データ変換部47内のビット反転部471によって生成された反転画素データa〜dの内、いずれか1つの反転画素データと同等である。
【0207】
ビット復元部582a〜582dは、それぞれ、予め設定されている図12に示した反転処理の適用範囲と同じ反転処理の適用範囲に応じて、入力された選択画素データ[7:0]の各ビットの値を、ビット毎に反転処理した反転出力データを生成する。ビット復元部582a〜582dのそれぞれは、生成した反転出力データを、機能選択部583に出力する。
【0208】
なお、ビット復元部582a〜582dは、それぞれ、図12に示した反転ケースa〜dに対応している。そして、以下の説明において、ビット復元部582a〜582dが生成した反転出力データを区別する場合には、ビット復元部582a〜582dに付与した符号の最後の1文字を反転出力データにも付与し、「反転出力データa」、「反転出力データb」、「反転出力データc」、および「反転出力データd」という。
【0209】
ここで、ビット復元部582a〜582dのそれぞれの処理について、より具体的に説明する。ビット復元部582aにおける反転処理は、反転ケースa、すなわち、「反転しない」である。ビット復元部582aは、選択画素データ[7:0]の各ビットの値がそのままの反転出力データa[7:0]を出力する。また、ビット復元部582bにおける反転処理は、反転ケースb、すなわち、「下位2ビット反転」である。ビット復元部582bは、選択画素データ[7:0]の下位の2ビット(選択画素データ[1:0])の値を反転し、その他のビット(選択画素データ[7:2])の値がそのままの反転出力データb[7:0]を出力する。また、ビット復元部582cにおける反転処理は、反転ケースc、すなわち、「下位4ビット反転」である。ビット復元部582cは、選択画素データ[7:0]の下位の4ビット(選択画素データ[3:0])の値を反転し、その他のビット(選択画素データ[7:4])の値がそのままの反転出力データc[7:0]を出力する。また、ビット復元部582dにおける反転処理は、反転ケースd、すなわち、「全ビット反転」である。ビット復元部582dは、選択画素データ[7:0]の全てのビットの値を反転した反転出力データd[7:0]を出力する。
【0210】
機能選択部583は、ビット分離部581から入力された機能選択ビットに応じて、ビット復元部582a〜582dのそれぞれから入力された反転出力データa〜dの内、いずれか1つの反転出力データを選択する。そして、選択した反転出力データを、出力データDOUT[7:0]として出力する。ここで出力された出力データDOUTが、データ逆変換部58によって復元された、すなわち、データ変換部47に入力された、元の画素データとして、画像処理部50に出力される。
【0211】
上記に述べたように、本第3の構成のデータ変換部47では、反転処理を行う画素データのビットの範囲の数を、予め定められた反転処理の適用範囲の複数の範囲にする。そして、反転処理の適用範囲に応じた複数の反転画素データを生成し、ビット変化数が最も少ない反転画素データを選択して出力する。これにより、バースト転送時のメモリバスの各ビットの変化量が少なくなる場合がある。
【0212】
なお、反転処理を行う画像データのビットの範囲を複数にすることによって、反転処理を行ったビットの範囲を表す情報が複数必要になる。しかし、本第3の構成のデータ変換部47では、反転処理を行うビットの範囲(反転処理の適用範囲)の数を、予め定められた数にすることによって、反転処理の適用範囲を表す情報に使用するビット数を少なくしている。これにより、パックデータ内の反転処理の適用範囲を表す情報に使用されるビットの割合を少なくして、バースト転送の効率の低下を抑えると共に、反転処理の適用範囲の選択に係る回路規模が安易に増大してしまうことを抑えることができる。
また、反転処理を行う画素データのビットの範囲の数を、予め定められた反転処理の適用範囲の複数の範囲にすることは、パックデータに含まれる未使用ビットのビット数が少ない場合においても、必要な反転処理の適用範囲を表す情報を付加することができるため、有効な方法である。
【0213】
なお、本第3の構成のデータ変換部47においては、反転処理の適用範囲を画素データの全てのビットの範囲に設定した反転ケースも設定した場合について説明したが、反転処理の適用範囲の設定は、本第3の構成のデータ変換部47での設定に限定されるものではない。例えば、データの相関性が低い(データの変化頻度の高い)下位の画素データの範囲内で、反転処理の適用範囲を設定することもできる。この場合、下位の画素データにおいて、各ビットの変化量が少なくなることが期待される。
【0214】
また、本第3の構成のデータ変換部47において、反転せずにそのまま出力するデータに対して、例えば、第2の構成のデータ変換部43に備えたコード変換部431と同様の機能を適用することもできる。また、例えば、本第3の構成のデータ変換部47の機能をデータの相関性が低い(データの変化頻度の高い)下位の画素データに適用し、第2の構成のデータ変換部43に備えたコード変換部431と同等に機能を、データの相関性が高い(データの変化頻度が低い)上位の画素データに適用することもできる。この場合、本第3の構成のデータ変換部47の効果に加えて、グレイコードによるデータの変化量の削減の効果も、同時に得ることができる。
【0215】
上記に述べた実施形態においては、ベイヤーデータに本実施形態のパッキング方法および反転処理方法を適用したデータ処理装置およびデータ処理方法について説明したが、本実施形態のパッキング方法および反転処理方法は、ベイヤーデータへの適用に限定されるものではなく、RGBデータ、YC422点順次やYC444点順次フォーマットのYCbCrデータ、またはOSDデータなど、様々な画像データに適用することができる。また、本実施形態のパッキング方法および反転処理方法は、画像データへの適用に限定されるものではなく、音声データなど、他の形式のデータに適用することもできる。
【0216】
<適用例>
次に、本実施形態のパッキング方法を、他の形式の画像データや、画像データ以外のデータに適用した場合の一例について説明する。なお、本実施形態の反転処理方法を、他の形式の画像データや、画像データ以外のデータに適用する場合については、上述した反転処理方法と同様に考えることができるため、詳細な説明は省略する。
【0217】
まず、本実施形態のパッキング方法をRGBデータに適用した場合の一例について説明する。図14は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、別の画像データ(RGBデータ)に適用した場合の一例を示した図である。なお、図14では、10bitのRGBデータを、従来のバースト単位でのデータ配置方法(パッキング方法)によって画素データの各ビットが配置されたパックデータの一例(図9(a)参照)と、本実施形態のパッキング方法でパックデータ内の画素データに対する反転ビットが付加されたパックデータ内のデータの配置の一例(図9(b)参照)とを、それぞれ示している。
【0218】
図14(a)に示したように、RGBデータ(10bit×3色=30bit)が単純に配置されたパックデータ内の画素データの配置と同様の配置で、反転処理された画素データを配置する場合、データ変換部41は、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理する。そして、図14(b)に示したように、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくする。
【0219】
図14の例では、それぞれの1転送のデータには、3つの画素データが含まれているため、データ変換部41は、3つの画素データを1つのデータとして扱う。より具体的には、例えば、1転送目では、それぞれの画素データの下位4bit(「R0」のビット[3]〜ビット[0]、「G0」のビット[3]〜ビット[0]、および「B0」のビット[3]〜ビット[0])をまとめて、反転処理する下位の画素データ[11:0]とする。その後、反転処理した後の下位の画素データ[11:0]をそれぞれの画素データに分割して、それぞれの画素データの上位6bit(「R0」のビット[9]〜ビット[4]、「G0」のビット[9]〜ビット[4]、および「B0」のビット[9]〜ビット[4])と結合し、それぞれ1転送のメモリバスに配置する。そして、さらに、下位の画素データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置する。なお、メモリバスのビット[31]は、未使用ビットのままである。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
【0220】
図15は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、さらに別の画像データ(YCbCrデータ)に適用した場合の一例を示した図である。なお、図15では、図15(a)に示したような、9bitのY、6bitのCbおよびCrデータを、従来のバースト単位でのデータ配置方法(パッキング方法)によって画素データの各ビットが配置されたパックデータの一例(図15(b)参照)と、本実施形態のパッキング方法でパックデータ内の画素データに対する反転ビットが付加されたパックデータ内のデータの配置の一例(図15(c)参照)とを、それぞれ示している。
【0221】
図15(b)に示したように、YCbCrデータが単純に配置されたパックデータ内の画素データの配置と同様の配置で、反転処理された画素データを配置する場合、データ変換部41は、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理する。そして、図15(c)に示したように、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくする。
【0222】
図15の例では、それぞれの1転送のデータには、4つの画素データが含まれているため、データ変換部41は、4つの画素データを1つのデータとして扱う。より具体的には、例えば、1転送目では、Yデータの下位4bitと、CbおよびCrデータの下位2bit(「Y0」のビット[3]〜ビット[0]、「Y1」のビット[3]〜ビット[0]、「Cb0」のビット[1]〜ビット[0]、および「Cr0」のビット[1]〜ビット[0])をまとめて、反転処理する下位の画素データ[11:0]とする。その後、反転処理した後の下位の画素データ[11:0]をそれぞれの画素データに分割して、Yデータの上位5bit(「Y0」のビット[8]〜ビット[4]、および「Y1」のビット[8]〜ビット[4])と、CbおよびCrデータの上位4bit(「Cb0」のビット[5]〜ビット[2]、および「Cr0」のビット[5]〜ビット[2])と結合して、それぞれ1転送のメモリバスに配置する。
【0223】
なお、図15の例では、図15(c)に示したように、それぞれの画素データをメモリバスへの配置する際に、メモリバス上に配置される隣接する同一色の画素データのビットの位置が同じ位置になるように、上位の画像データと下位の画像データとを分けて、メモリバス上に配置した例を示している。
【0224】
そして、さらに、下位の画素データ[11:0]に対応した反転ビットを、メモリバスのビット[30]に配置する。なお、メモリバスのビット[31]は、未使用ビットのままである。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
【0225】
図16は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、さらに別の画像データ(OSDデータ)に適用した場合の一例を示した図である。なお、図16では、6bitのOSDデータを、従来のバースト単位でのデータ配置方法(パッキング方法)によって画素データの各ビットが配置されたパックデータの一例(図16(a)参照)と、本実施形態のパッキング方法でパックデータ内の画素データに対する反転ビットが付加されたパックデータ内のデータの配置の一例(図16(b)参照)とを、それぞれ示している。
【0226】
図16(a)に示したように、OSDデータが単純に配置されたパックデータ内の画素データの配置と同様の配置で、反転処理された画素データを配置する場合、データ変換部41は、1転送のメモリバスに配置するそれぞれの画素データの下位のビットをまとめて反転処理する。そして、図16(b)に示したように、画素データの上位のビットと、反転処理した後の画素データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、画素データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくする。
【0227】
図16の例では、それぞれの1転送のデータには、5つのOSDデータが含まれているため、データ変換部41は、5つのOSDデータを1つのデータとして扱う。より具体的には、例えば、1転送目では、それぞれのOSDデータの下位2bit(「OSD0」〜「OSD4」のビット[1]〜ビット[0])をまとめて、反転処理する下位のOSDデータ[9:0]とする。その後、反転処理した後の下位のOSDデータ[9:0]をそれぞれのOSDデータに分割して、それぞれのOSDデータの上位4bit(「OSD0」〜「OSD4」のビット[5]〜ビット[2])と結合し、それぞれ1転送のメモリバスに配置する。そして、さらに、下位のOSDデータ[9:0]に対応した反転ビットを、メモリバスのビット[31]に配置する。なお、メモリバスのビット[30]は、未使用ビットのままである。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、画像データの転送に係る消費電力を低減させることができる。
【0228】
なお、図16(b)をみてわかるように、反転ビットを配置するメモリバス上の位置は、未使用ビットであれば、いかなるところにも配置することができる。図16(b)の例では、メモリバスのビット[31]に配置した例を示している。
【0229】
図17は、本実施形態の撮像装置1に備えたデータ変換部41によるデータ配置方法(パッキング方法)を、別のデータ(音声データ)に適用した場合の一例を示した図である。なお、図17では、それぞれ24bitのR(右)データおよびL(左)データを64bitのメモリバスに適用した場合を示している。そして、図17(a)には、従来のバースト単位でのデータ配置方法(パッキング方法)によって音声データの各ビットが配置されたパックデータの一例を示し、図17(b)には、本実施形態のパッキング方法でパックデータ内の音声データに対する反転ビットが付加されたパックデータ内のデータの配置の一例を示している。なお、図17においては、24bitのR(右)データおよびL(左)データを連続せずにメモリバスに配置した場合を示している。
【0230】
図17(a)に示したように、音声データが単純に配置されたパックデータ内の音声データの配置と同様の配置で、反転処理された音声データを配置する場合、データ変換部41は、1転送のメモリバスに配置するそれぞれの音声データの下位のビットをまとめて反転処理する。そして、図17(b)に示したように、音声データの上位のビットと、反転処理した後の音声データの下位ビットとを、それぞれ1転送のメモリバスに配置する。さらに、音声データの下位のビットを反転処理したときの情報を表す反転ビットを、1転送のメモリバス内に存在する未使用ビットに付加して、最終的な1転送のデータとする。これにより、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくする。
【0231】
図17の例では、それぞれの1転送のデータには、R(右)データおよびL(左)データが分かれて配置されている。しかし、メモリバス上の音声データは、合わせて2つである。データ変換部41は、2つの音声データを1つのデータとして扱う。より具体的には、例えば、1転送目では、それぞれの音声データの下位8bit(「R0」のビット[7]〜ビット[0]、および「L0」のビット[7]〜ビット[0])をまとめて、反転処理する下位の音声データ[15:0]とする。その後、反転処理した後の下位の音声データ[15:0]をそれぞれの音声データに分割して、それぞれの音声データの上位16bit(「R0」のビット[23]〜ビット[8]、および「L0」のビット[23]〜ビット[8])と結合し、それぞれ1転送のメモリバスに配置する。そして、さらに、下位の音声データ[15:0]に対応した反転ビットを、メモリバス上の未使用ビットに配置する。これにより、4つのパックデータの各ビットの変化量を少なくすることができ、音声データの転送に係る消費電力を低減させることができる。
【0232】
なお、図17(b)をみてわかるように、反転ビットを配置するメモリバス上の位置は、未使用ビットであれば、いかなるところにも配置することができる。図17(b)の例では、R(右)データに対応した反転ビットを、メモリバスのビット[24]に配置した例を示している。また、L(左)データに対応した反転ビットを、4転送目のメモリバスのビット[59]〜ビット[56]に配置した例を示している。このように、反転ビットは、1転送毎のメモリバスに配置するのみではなく、予め定められた1転送のメモリバスに、複数の反転ビットをまとめて配置することもできる。
【0233】
上記に述べたとおり、本発明を実施するための形態によれば、データの相関性にも基づいて、転送するデータを予め定められたビットの範囲に分割する。そして、相関性が低い(変化頻度の高い)データの各ビットの値と、前回転送した対応するビットの値とを、ビット毎に比較し、変化しているビットの数が多い場合に、そのデータに対して反転処理を行う。また、反転処理したときの情報を、パックデータの未使用ビットに付加して出力する。これにより、各ビットの変化量を少なくしたデータを、メモリバスに配置することができ、バースト転送時の連続する2転送間において、メモリバスの各ビットの変化量を少なくすることができると共に、パックデータを容易に復元することができる。しかも、データの転送効率は、従来と同等のデータ転送効率を維持することができる。これにより、像装置内の各構成要素(処理ブロック)とメモリとの間でのデータの受け渡しに係る消費電力の低減効果を十分に得ることができる。
【0234】
また、本発明を実施するための形態においては、データの全てのビットに対して反転処理を行うのではなく、データの相関性に基づいて予め定めた一部のビットの範囲にのみ反転処理を行う。そして、反転処理は、相関性が低い(変化頻度の高い)データのビットに対して行う。このため、反転処理によるデータの変化量の削減効果を、より多く得ることができる。さらに、反転処理に係る回路規模が削減できるという効果も得ることができる。
【0235】
また、本発明を実施するための形態によれば、反転処理を適用するビットの範囲を複数設定し、それぞれの反転処理の適用範囲に応じた複数の反転処理後のデータから、ビット変化数が最も少ない反転処理後のデータを選択して出力することができる。これにより、バースト転送時のメモリバスの各ビットの変化量を効率的に少なくすることができる。また、反転処理を適用するビットの範囲の設定数を、予め定められた数に定めておく。これにより、ビットの範囲の設定数が多くなることによって、反転処理の適用範囲を表す情報に使用するビット数が増加し、パックデータ内の反転処理の適用範囲を表す情報に使用されるビットの割合が大きくなるのを抑えることができる。また、ビットの範囲の設定数が多くなることによって、反転処理および反転処理後のデータの選択に係る回路の規模が増大してしまうことを抑えることができる。このことにより、データの転送効率の低下を抑えることができる。
【0236】
また、本発明を実施するための形態によれば、相関性が高い(変化頻度が低い)データを、グレイコードを用いて表すことにより、相関性が低い(変化頻度の高い)データに対する反転処理と異なる処理を行う。これにより、データの相関性に応じた、効率的なビットの変化量の削減を行うことができる。
【0237】
なお、本実施形態においては、前回出力したデータの各ビットの値と、今回入力されたデータの各ビットの値とを比較した結果から、反転処理した後のデータを切り替える(選択する)ための情報(反転ビット)を得る場合について説明したが、反転ビットを得るための方法は、本発明を実施するための形態に限定されるものではない。
例えば、特許文献2で開示された技術と同様に、前回入力されたデータの各ビットの値と、今回入力されたデータの各ビットの値とを比較した結果から今回の反転ビットを得て、その後、前回の反転ビットと比較して、最終的な今回の反転ビットにする構成にすることもできる。
【0238】
また、本実施形態においては、4転送を1回のバースト転送の単位とし、1バーストをデータのパッキング単位とした場合について説明したが、1回のバースト転送における転送の回数や、データのパッキングの単位は、本発明を実施するための形態に限定されるものではない。例えば、64転送を1回のバースト転送の単位とし、1バースト内の16転送をデータのパッキングの単位とする、すなわち、1バースト内に4つのパッキング単位が含まれる構成にすることもできる。また、例えば、16転送をデータのパッキングの単位とし、8転送を1回のバースト転送の単位とする、すなわち、パッキング単位が2回のバースト転送に跨っている構成にすることもできる。
【0239】
また、本実施形態においては、撮像装置内の構成要素間でデータの受け渡しを行う場合のパッキング方法を、いくつかのデータに適用した場合について説明したが、本実施形態のパッキング方法を適用することができる範囲は、本発明を実施するための形態に限定されるものではなく、各構成要素間でデータの受け渡しを行うシステムであれば、どのようなシステムにも適用することができる。
【0240】
また、本実施形態においては、例えば、データ変換部を出力DMA部の前段の処理ブロックとして配置し、データ逆変換部を入力DMA部の後段の処理ブロックとして配置した場合の一例について説明したが、データ変換部およびデータ逆変換部の配置は、本発明を実施するための形態に限定されるものではない。例えば、データ変換部を出力DMA部内の構成要素とすることや、データ逆変換部を入力DMA部内の構成要素とすることもできる。また、例えば、データ変換部を前段の撮像処理部内の構成要素とすることや、データ逆変換部を後段の画像処理部内の構成要素とすることもできる。
【0241】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【0242】
1・・・撮像装置(データ処理装置)
10・・・CPU(データ処理装置)
20・・・メモリ(データ処理装置)
30・・・CCD
40・・・撮像処理部
50・・・画像処理部
60・・・表示処理部
70・・・表示デバイス
41,51・・・データ変換部(データ処理装置)
411・・・ビット分離部(第1のビット分離部)
412・・・EXOR回路(第1のビット反転部)
413・・・D−FF(ビット比較部)
414・・・EXOR回路(ビット比較部)
415・・・多数決判定部(ビット判定部)
416・・・ビット結合部(第1のビット結合部)
52,62・・・データ逆変換部(データ処理装置)
521・・・ビット分割部(第2のビット分離部)
522・・・EXOR回路(第2のビット反転部)
523・・・ビット結合部(第2のビット結合部)
45,55・・・出力DMA部
56,66・・・入力DMA部
43・・・データ変換部(データ処理装置)
431・・・コード変換部(第1のコード変換部)
54・・・データ逆変換部(データ処理装置)
541・・・コード変換部(第2のコード変換部)
47・・・データ変換部(データ処理装置)
471,471a,471b,471c,471d・・・ビット反転部(第1のビット反転部)
472・・・機能選択部(第1のデータ選択部)
473・・・D−FF(ビット比較部)
474,474a,474b,474c,474d・・・EXOR回路(ビット比較部)
475,475a,475b,475c,475d・・・ビット加算部(ビット変化数算出部)
476・・・比較部(データ判定部)
477・・・ビット結合部(第1のビット結合部)
58・・・データ逆変換部(データ処理装置)
581・・・ビット分離部(第2のビット分離部)
582,582a,582b,582c,582d・・・ビット復元部(第2のビット反転部)
583・・・機能選択部(第2のデータ選択部)
【特許請求の範囲】
【請求項1】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、
を備え、
前記データ変換部は、
前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離する第1のビット分離部と、
該データ変換部からn(nは1以上の自然数)回目に出力した前記第1の分離データに応じた第1の出力データ内の各ビットの値と、該データ変換部にn+1回目に入力された前記第1の分離データ内の各ビットの値とを比較し、該比較したビットの比較情報を出力するビット比較部と、
前記比較情報に基づいて、異なる値となっているビットの数を表すビット変化数を算出し、該算出した前記ビット変化数と、予め定めたビット数とに基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値を、ビット毎に反転するか否かを判定し、該判定した結果を反転情報として出力するビット判定部と、
前記反転情報に基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記n+1回目に入力された前記第1の分離データのいずれか一方のデータを、第1の反転処理データとして出力する第1のビット反転部と、
前記第1の反転処理データの各ビットと前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成し、該第1の転送データを前記転送データとして出力する際に、前記変換単位内の前記第1の転送データの内、データが配置されていない未使用ビットを含む前記第1の転送データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記第1の転送データ、または前記結合データのいずれか1つのデータを、該データ変換部における前記転送データとして出力する第1のビット結合部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項2】
前記ビット判定部は、
前記ビット変化数が、前記第1の分離データのビット数の過半数である場合に、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転すると判定し、
前記ビット変化数が、前記第1の分離データのビット数の半数以下である場合に、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転しないと判定する、
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記ビット判定部は、
前記ビット変化数が、前記第1の分離データのビット数の半数である場合、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転するか否かの判定を、n回目に入力された前記第1の分離データに対して行った判定の結果と同じ判定にする、
ことを特徴とする請求項2に記載のデータ処理装置。
【請求項4】
前記データ変換部は、
前記第2の分離データを、データの変化が1である場合には、必ず1ビットだけしか変化しないグレイコードで表す第1のコード変換部、
を、さらに具備し、
前記第1のビット結合部は、
前記第1の反転処理データの各ビットと前記グレイコードで表された前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成する、
ことを特徴とする請求項3に記載のデータ処理装置。
【請求項5】
前記第1のビット分離部は、
同一の前記転送単位に配置された複数の前記入力データのそれぞれの前記第1の分離データをまとめて1つの前記第1の分離データとし、
前記ビット比較部は、
前記まとめられた前記第1の分離データの単位で各ビットの値を比較し、
前記ビット判定部は、
前記まとめられた前記第1の分離データの単位で各ビットの値をビット毎に反転するか否かを判定し、
前記第1のビット反転部は、
前記まとめられた前記第1の分離データの単位の第1の反転処理データを出力し、
前記第1のビット結合部は、
前記まとめたれた単位の前記第1の反転処理データの各ビットと、それぞれの前記第2の分離データの各ビットとを、前記データバスの各ビットに配置し、前記まとめられた単位で判定された前記反転情報を結合する、
ことを特徴とする請求項1から請求項4のいずれか1の項に記載のデータ処理装置。
【請求項6】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、
を備え、
前記データ変換部は、
前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置とが、予め定められており、
前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成する第1のビット反転部と、
前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを選択データとして出力する第1のデータ選択部と、
該データ変換部からn(nは1以上の自然数)回目に出力した前記選択データに応じた第1の出力データ内の各ビットの値と、該データ変換部にn+1回目に入力された前記入力データに応じたn+1回目の前記第1の反転データまたは前記第2の反転データ内の各ビットの値とを比較し、該比較したビットのそれぞれの比較情報を、前記第1の反転データに対応して検出した第1の比較情報と前記第2の反転データに対応して検出した第2の比較情報として、それぞれ出力するビット比較部と、
前記第1の比較情報に基づいて、異なる値となっているビットの数を表す第1のビット変化数を算出し、前記第2の比較情報に基づいて、異なる値となっているビットの数を表す第2のビット変化数を算出するビット変化数算出部と、
前記第1のビット変化数と前記第2のビット変化数とに基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、該判定した結果を反転情報として出力するデータ判定部と、
前記選択データを前記転送データとして出力する際に、前記変換単位内の前記選択データの内、データが配置されていない未使用ビットを含む前記選択データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記選択データ、または前記結合データのいずれか1つのデータを、該データ変換部における前記転送データとして出力する第1のビット結合部と、
を具備し、
前記第1のデータ選択部は、
前記反転情報に基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択して、n+1回目の選択データとして出力する、
ことを特徴とするデータ処理装置。
【請求項7】
前記第1のビット反転部は、
前記入力データの、前記第1のビット位置のビットの値をビット毎に反転すると共に、前記第1のビット位置以外のビットのデータを、データの変化が1である場合には、必ず1ビットだけしか変化しないグレイコードで表した第1の反転データと、
前記第2のビット位置のビットの値をビット毎に反転すると共に、前記第2のビット位置以外のビットのデータを前記グレイコードで表した第2の反転データとを生成する、
ことを特徴とする請求項6に記載のデータ処理装置。
【請求項8】
前記第1のビット反転部は、
同一の前記転送単位に配置された複数の前記入力データをまとめて1つの前記入力データとし、
前記第1のデータ選択部は、
前記まとめられた前記入力データに応じた前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、
前記ビット比較部は、
前記まとめられた前記選択データの単位で各ビットの値を比較し、
前記ビット変化数算出部は、
前記まとめられた前記選択データの単位で異なる値となっているビットの数を算出し、
前記データ判定部は、
前記まとめられた前記選択データの単位で前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、
前記第1のビット結合部は、
前記まとめたれた単位の前記選択データを前記転送データとして出力する際に、前記まとめられた単位で判定された前記反転情報を結合する、
ことを特徴とする請求項6または請求項7に記載のデータ処理装置。
【請求項9】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、
を備え、
前記データ逆変換部は、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離し、前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記第1の分離データのいずれか一方のデータを第1の反転処理データとし、前記第2の分離データの各ビットと前記第1の反転処理データの各ビットとが前記データバスの各ビットに配置された第1の転送データと、前記第1の反転データまたは前記第1の分離データのいずれのデータが前記第1の反転処理データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記第1の転送データとに分離し、さらに前記第1の転送データを、前記第2の分離データと第1の反転処理データとに分離する第2のビット分離部と、
前記反転情報に基づいて、前記第1の反転処理データの各ビットの値をビット毎に反転した第2の反転データ、または前記第1の反転処理データのいずれか一方のデータを、前記第1の分離データとして出力する第2のビット反転部と、
前記第1の分離データと前記第2の分離データとを結合して元の前記入力データに戻す第2のビット結合部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項10】
前記データ逆変換部は、
グレイコードで表されている前記第2の分離データを、バイナリコードに戻して表す第2のコード変換部、
を、さらに具備し、
前記第2のビット結合部は、
前記第1の分離データと前記バイナリコードに戻して表された前記第2の分離データとを結合して元の前記入力データに戻す、
ことを特徴とする請求項9に記載のデータ処理装置。
【請求項11】
前記転送データは、
同一の前記転送単位に配置された複数の前記入力データのそれぞれの前記第1の分離データがまとめて1つの前記第1の分離データとして処理されており、
前記第2のビット分離部は、
前記第1の転送データから、前記まとめられた単位の前記第1の分離データからなる第1の反転処理データを分離し、
前記第2のビット反転部は、
前記第1の反転処理データから前記まとめられた単位の前記第1の分離データを出力し、
前記第2のビット結合部は、
前記まとめられた単位の前記第1の分離データを、それぞれの前記第1の分離データに分離し、該分離した前記第1の分離データと対応する前記第2の分離データと結合して元の前記入力データに戻す、
ことを特徴とする請求項9または請求項10に記載のデータ処理装置。
【請求項12】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、
を備え、
前記データ逆変換部は、
前記転送データの転送元のデータ処理装置が前記変換単位で前記転送データを出力する際の、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置と同じ設定が、予め定められており、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記転送データの転送元のデータ処理装置に設定された前記第1のビット位置と前記第2のビット位置とに基づいて、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成し、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択データとし、該選択データと、前記第1の反転データまたは前記第2の反転データのいずれかのデータが前記選択データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記選択データとに分離する第2のビット分離部と、
入力された前記選択データから、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データとに戻す第2のビット反転部と、
前記反転情報に基づいて、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを、該データ逆変換部において復元した元の前記入力データとして出力する第2のデータ選択部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項13】
前記第2のビット反転部は、
前記選択データの、前記第1のビット位置のビットの値をビット毎に反転すると共に、グレイコードで表されている前記第1のビット位置以外のビットのデータを、バイナリコードに戻して表した前記第1の反転データと、
前記第2のビット位置のビットの値をビット毎に反転すると共に、グレイコードで表されている前記第2のビット位置以外のビットのデータを、バイナリコードに戻して表した前記第2の反転データとに戻す、
ことを特徴とする請求項10に記載のデータ処理装置。
【請求項14】
前記転送データは、
同一の前記転送単位に配置された複数の前記入力データがまとめて1つの前記選択データとして処理されており、
前記第2のビット分離部は、
前記転送データから、前記まとめられた単位の前記選択データを分離し、
前記第2のビット反転部は、
前記まとめられた単位の前記選択データから、まとめられた単位の前記第1の反転データと、まとめられた単位の前記第2の反転データとに戻し、
前記第2のデータ選択部は、
前記まとめられた単位の前記第1の反転データまたはまとめられた単位の前記第2の反転データを選択した後、それぞれの元の前記入力データに分離して出力する、
ことを特徴とする請求項12または請求項13に記載のデータ処理装置。
【請求項15】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、
を含み、
前記データ変換ステップは、
前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離する第1のビット分離ステップと、
該データ変換ステップによってn(nは1以上の自然数)回目に出力した前記第1の分離データに応じた第1の出力データ内の各ビットの値と、該データ変換においてn+1回目に入力された前記第1の分離データ内の各ビットの値とを比較し、該比較したビットの比較情報を出力するビット比較ステップと、
前記比較情報に基づいて、異なる値となっているビットの数を表すビット変化数を算出し、該算出した前記ビット変化数と、予め定めたビット数とに基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値を、ビット毎に反転するか否かを判定し、該判定した結果を反転情報として出力するビット判定ステップと、
前記反転情報に基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記n+1回目に入力された前記第1の分離データのいずれか一方のデータを、第1の反転処理データとして出力する第1のビット反転ステップと、
前記第1の反転処理データの各ビットと前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成し、該第1の転送データを前記転送データとして出力する際に、前記変換単位内の前記第1の転送データの内、データが配置されていない未使用ビットを含む前記第1の転送データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記第1の転送データ、または前記結合データのいずれか1つのデータを、該データ変換ステップにおける前記転送データとして出力する第1のビット結合ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項16】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、
を含み、
前記データ変換ステップは、
前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置とが、予め定められており、
前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成する第1のビット反転ステップと、
前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを選択データとして出力する第1のデータ選択ステップと、
該データ変換ステップによってn(nは1以上の自然数)回目に出力した前記選択データに応じた第1の出力データ内の各ビットの値と、該データ変換ステップにおいてn+1回目に入力された前記入力データに応じたn+1回目の前記第1の反転データまたは前記第2の反転データ内の各ビットの値とを比較し、該比較したビットのそれぞれの比較情報を、前記第1の反転データに対応して検出した第1の比較情報と前記第2の反転データに対応して検出した第2の比較情報として、それぞれ出力するビット比較ステップと、
前記第1の比較情報に基づいて、異なる値となっているビットの数を表す第1のビット変化数を算出し、前記第2の比較情報に基づいて、異なる値となっているビットの数を表す第2のビット変化数を算出するビット変化数算出ステップと、
前記第1のビット変化数と前記第2のビット変化数とに基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、該判定した結果を反転情報として出力するデータ判定ステップと、
前記選択データを前記転送データとして出力する際に、前記変換単位内の前記選択データの内、データが配置されていない未使用ビットを含む前記選択データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記選択データ、または前記結合データのいずれか1つのデータを、該データ変換ステップにおける前記転送データとして出力する第1のビット結合ステップと、
を含み、
前記第1のデータ選択ステップは、
前記反転情報に基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択して、n+1回目の選択データとして出力する、
ことを特徴とするデータ処理方法。
【請求項17】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、
を含み、
前記データ逆変換ステップは、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離し、前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記第1の分離データのいずれか一方のデータを第1の反転処理データとし、前記第2の分離データの各ビットと前記第1の反転処理データの各ビットとが前記データバスの各ビットに配置された第1の転送データと、前記第1の反転データまたは前記第1の分離データのいずれのデータが前記第1の反転処理データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記第1の転送データとに分離し、さらに前記第1の転送データを、前記第2の分離データと第1の反転処理データとに分離する第2のビット分離ステップと、
前記反転情報に基づいて、前記第1の反転処理データの各ビットの値をビット毎に反転した第2の反転データ、または前記第1の反転処理データのいずれか一方のデータを、前記第1の分離データとして出力する第2のビット反転ステップと、
前記第1の分離データと前記第2の分離データとを結合して元の前記入力データに戻す第2のビット結合ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項18】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、
を含み、
前記データ逆変換ステップは、
前記転送データの転送元のデータ処理装置が前記変換単位で前記転送データを出力する際の、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置と同じ設定が、予め定められており、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記転送データの転送元のデータ処理装置に設定された前記第1のビット位置と前記第2のビット位置とに基づいて、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成し、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択データとし、該選択データと、前記第1の反転データまたは前記第2の反転データのいずれかのデータが前記選択データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記選択データとに分離する第2のビット分離ステップと、
入力された前記選択データから、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データとに戻す第2のビット反転ステップと、
前記反転情報に基づいて、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを、該データ逆変換部において復元した元の前記入力データとして出力する第2のデータ選択ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項1】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、
を備え、
前記データ変換部は、
前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離する第1のビット分離部と、
該データ変換部からn(nは1以上の自然数)回目に出力した前記第1の分離データに応じた第1の出力データ内の各ビットの値と、該データ変換部にn+1回目に入力された前記第1の分離データ内の各ビットの値とを比較し、該比較したビットの比較情報を出力するビット比較部と、
前記比較情報に基づいて、異なる値となっているビットの数を表すビット変化数を算出し、該算出した前記ビット変化数と、予め定めたビット数とに基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値を、ビット毎に反転するか否かを判定し、該判定した結果を反転情報として出力するビット判定部と、
前記反転情報に基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記n+1回目に入力された前記第1の分離データのいずれか一方のデータを、第1の反転処理データとして出力する第1のビット反転部と、
前記第1の反転処理データの各ビットと前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成し、該第1の転送データを前記転送データとして出力する際に、前記変換単位内の前記第1の転送データの内、データが配置されていない未使用ビットを含む前記第1の転送データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記第1の転送データ、または前記結合データのいずれか1つのデータを、該データ変換部における前記転送データとして出力する第1のビット結合部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項2】
前記ビット判定部は、
前記ビット変化数が、前記第1の分離データのビット数の過半数である場合に、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転すると判定し、
前記ビット変化数が、前記第1の分離データのビット数の半数以下である場合に、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転しないと判定する、
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記ビット判定部は、
前記ビット変化数が、前記第1の分離データのビット数の半数である場合、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転するか否かの判定を、n回目に入力された前記第1の分離データに対して行った判定の結果と同じ判定にする、
ことを特徴とする請求項2に記載のデータ処理装置。
【請求項4】
前記データ変換部は、
前記第2の分離データを、データの変化が1である場合には、必ず1ビットだけしか変化しないグレイコードで表す第1のコード変換部、
を、さらに具備し、
前記第1のビット結合部は、
前記第1の反転処理データの各ビットと前記グレイコードで表された前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成する、
ことを特徴とする請求項3に記載のデータ処理装置。
【請求項5】
前記第1のビット分離部は、
同一の前記転送単位に配置された複数の前記入力データのそれぞれの前記第1の分離データをまとめて1つの前記第1の分離データとし、
前記ビット比較部は、
前記まとめられた前記第1の分離データの単位で各ビットの値を比較し、
前記ビット判定部は、
前記まとめられた前記第1の分離データの単位で各ビットの値をビット毎に反転するか否かを判定し、
前記第1のビット反転部は、
前記まとめられた前記第1の分離データの単位の第1の反転処理データを出力し、
前記第1のビット結合部は、
前記まとめたれた単位の前記第1の反転処理データの各ビットと、それぞれの前記第2の分離データの各ビットとを、前記データバスの各ビットに配置し、前記まとめられた単位で判定された前記反転情報を結合する、
ことを特徴とする請求項1から請求項4のいずれか1の項に記載のデータ処理装置。
【請求項6】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換部、
を備え、
前記データ変換部は、
前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置とが、予め定められており、
前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成する第1のビット反転部と、
前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを選択データとして出力する第1のデータ選択部と、
該データ変換部からn(nは1以上の自然数)回目に出力した前記選択データに応じた第1の出力データ内の各ビットの値と、該データ変換部にn+1回目に入力された前記入力データに応じたn+1回目の前記第1の反転データまたは前記第2の反転データ内の各ビットの値とを比較し、該比較したビットのそれぞれの比較情報を、前記第1の反転データに対応して検出した第1の比較情報と前記第2の反転データに対応して検出した第2の比較情報として、それぞれ出力するビット比較部と、
前記第1の比較情報に基づいて、異なる値となっているビットの数を表す第1のビット変化数を算出し、前記第2の比較情報に基づいて、異なる値となっているビットの数を表す第2のビット変化数を算出するビット変化数算出部と、
前記第1のビット変化数と前記第2のビット変化数とに基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、該判定した結果を反転情報として出力するデータ判定部と、
前記選択データを前記転送データとして出力する際に、前記変換単位内の前記選択データの内、データが配置されていない未使用ビットを含む前記選択データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記選択データ、または前記結合データのいずれか1つのデータを、該データ変換部における前記転送データとして出力する第1のビット結合部と、
を具備し、
前記第1のデータ選択部は、
前記反転情報に基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択して、n+1回目の選択データとして出力する、
ことを特徴とするデータ処理装置。
【請求項7】
前記第1のビット反転部は、
前記入力データの、前記第1のビット位置のビットの値をビット毎に反転すると共に、前記第1のビット位置以外のビットのデータを、データの変化が1である場合には、必ず1ビットだけしか変化しないグレイコードで表した第1の反転データと、
前記第2のビット位置のビットの値をビット毎に反転すると共に、前記第2のビット位置以外のビットのデータを前記グレイコードで表した第2の反転データとを生成する、
ことを特徴とする請求項6に記載のデータ処理装置。
【請求項8】
前記第1のビット反転部は、
同一の前記転送単位に配置された複数の前記入力データをまとめて1つの前記入力データとし、
前記第1のデータ選択部は、
前記まとめられた前記入力データに応じた前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、
前記ビット比較部は、
前記まとめられた前記選択データの単位で各ビットの値を比較し、
前記ビット変化数算出部は、
前記まとめられた前記選択データの単位で異なる値となっているビットの数を算出し、
前記データ判定部は、
前記まとめられた前記選択データの単位で前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、
前記第1のビット結合部は、
前記まとめたれた単位の前記選択データを前記転送データとして出力する際に、前記まとめられた単位で判定された前記反転情報を結合する、
ことを特徴とする請求項6または請求項7に記載のデータ処理装置。
【請求項9】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、
を備え、
前記データ逆変換部は、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離し、前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記第1の分離データのいずれか一方のデータを第1の反転処理データとし、前記第2の分離データの各ビットと前記第1の反転処理データの各ビットとが前記データバスの各ビットに配置された第1の転送データと、前記第1の反転データまたは前記第1の分離データのいずれのデータが前記第1の反転処理データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記第1の転送データとに分離し、さらに前記第1の転送データを、前記第2の分離データと第1の反転処理データとに分離する第2のビット分離部と、
前記反転情報に基づいて、前記第1の反転処理データの各ビットの値をビット毎に反転した第2の反転データ、または前記第1の反転処理データのいずれか一方のデータを、前記第1の分離データとして出力する第2のビット反転部と、
前記第1の分離データと前記第2の分離データとを結合して元の前記入力データに戻す第2のビット結合部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項10】
前記データ逆変換部は、
グレイコードで表されている前記第2の分離データを、バイナリコードに戻して表す第2のコード変換部、
を、さらに具備し、
前記第2のビット結合部は、
前記第1の分離データと前記バイナリコードに戻して表された前記第2の分離データとを結合して元の前記入力データに戻す、
ことを特徴とする請求項9に記載のデータ処理装置。
【請求項11】
前記転送データは、
同一の前記転送単位に配置された複数の前記入力データのそれぞれの前記第1の分離データがまとめて1つの前記第1の分離データとして処理されており、
前記第2のビット分離部は、
前記第1の転送データから、前記まとめられた単位の前記第1の分離データからなる第1の反転処理データを分離し、
前記第2のビット反転部は、
前記第1の反転処理データから前記まとめられた単位の前記第1の分離データを出力し、
前記第2のビット結合部は、
前記まとめられた単位の前記第1の分離データを、それぞれの前記第1の分離データに分離し、該分離した前記第1の分離データと対応する前記第2の分離データと結合して元の前記入力データに戻す、
ことを特徴とする請求項9または請求項10に記載のデータ処理装置。
【請求項12】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換部、
を備え、
前記データ逆変換部は、
前記転送データの転送元のデータ処理装置が前記変換単位で前記転送データを出力する際の、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置と同じ設定が、予め定められており、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記転送データの転送元のデータ処理装置に設定された前記第1のビット位置と前記第2のビット位置とに基づいて、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成し、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択データとし、該選択データと、前記第1の反転データまたは前記第2の反転データのいずれかのデータが前記選択データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記選択データとに分離する第2のビット分離部と、
入力された前記選択データから、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データとに戻す第2のビット反転部と、
前記反転情報に基づいて、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを、該データ逆変換部において復元した元の前記入力データとして出力する第2のデータ選択部と、
を具備する、
ことを特徴とするデータ処理装置。
【請求項13】
前記第2のビット反転部は、
前記選択データの、前記第1のビット位置のビットの値をビット毎に反転すると共に、グレイコードで表されている前記第1のビット位置以外のビットのデータを、バイナリコードに戻して表した前記第1の反転データと、
前記第2のビット位置のビットの値をビット毎に反転すると共に、グレイコードで表されている前記第2のビット位置以外のビットのデータを、バイナリコードに戻して表した前記第2の反転データとに戻す、
ことを特徴とする請求項10に記載のデータ処理装置。
【請求項14】
前記転送データは、
同一の前記転送単位に配置された複数の前記入力データがまとめて1つの前記選択データとして処理されており、
前記第2のビット分離部は、
前記転送データから、前記まとめられた単位の前記選択データを分離し、
前記第2のビット反転部は、
前記まとめられた単位の前記選択データから、まとめられた単位の前記第1の反転データと、まとめられた単位の前記第2の反転データとに戻し、
前記第2のデータ選択部は、
前記まとめられた単位の前記第1の反転データまたはまとめられた単位の前記第2の反転データを選択した後、それぞれの元の前記入力データに分離して出力する、
ことを特徴とする請求項12または請求項13に記載のデータ処理装置。
【請求項15】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、
を含み、
前記データ変換ステップは、
前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離する第1のビット分離ステップと、
該データ変換ステップによってn(nは1以上の自然数)回目に出力した前記第1の分離データに応じた第1の出力データ内の各ビットの値と、該データ変換においてn+1回目に入力された前記第1の分離データ内の各ビットの値とを比較し、該比較したビットの比較情報を出力するビット比較ステップと、
前記比較情報に基づいて、異なる値となっているビットの数を表すビット変化数を算出し、該算出した前記ビット変化数と、予め定めたビット数とに基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値を、ビット毎に反転するか否かを判定し、該判定した結果を反転情報として出力するビット判定ステップと、
前記反転情報に基づいて、前記n+1回目に入力された前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記n+1回目に入力された前記第1の分離データのいずれか一方のデータを、第1の反転処理データとして出力する第1のビット反転ステップと、
前記第1の反転処理データの各ビットと前記第2の分離データの各ビットとを、前記データバスの各ビットに配置した第1の転送データを生成し、該第1の転送データを前記転送データとして出力する際に、前記変換単位内の前記第1の転送データの内、データが配置されていない未使用ビットを含む前記第1の転送データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記第1の転送データ、または前記結合データのいずれか1つのデータを、該データ変換ステップにおける前記転送データとして出力する第1のビット結合ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項16】
順次入力された複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換して順次転送する際に、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記入力データを前記変換単位内のそれぞれの前記転送データに配置するデータ変換ステップ、
を含み、
前記データ変換ステップは、
前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置とが、予め定められており、
前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成する第1のビット反転ステップと、
前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを選択データとして出力する第1のデータ選択ステップと、
該データ変換ステップによってn(nは1以上の自然数)回目に出力した前記選択データに応じた第1の出力データ内の各ビットの値と、該データ変換ステップにおいてn+1回目に入力された前記入力データに応じたn+1回目の前記第1の反転データまたは前記第2の反転データ内の各ビットの値とを比較し、該比較したビットのそれぞれの比較情報を、前記第1の反転データに対応して検出した第1の比較情報と前記第2の反転データに対応して検出した第2の比較情報として、それぞれ出力するビット比較ステップと、
前記第1の比較情報に基づいて、異なる値となっているビットの数を表す第1のビット変化数を算出し、前記第2の比較情報に基づいて、異なる値となっているビットの数を表す第2のビット変化数を算出するビット変化数算出ステップと、
前記第1のビット変化数と前記第2のビット変化数とに基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれを出力するかを判定し、該判定した結果を反転情報として出力するデータ判定ステップと、
前記選択データを前記転送データとして出力する際に、前記変換単位内の前記選択データの内、データが配置されていない未使用ビットを含む前記選択データの予め定められた前記未使用ビットの位置に、前記反転情報を結合した結合データを生成し、前記選択データ、または前記結合データのいずれか1つのデータを、該データ変換ステップにおける前記転送データとして出力する第1のビット結合ステップと、
を含み、
前記第1のデータ選択ステップは、
前記反転情報に基づいて、n+1回目の前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択して、n+1回目の選択データとして出力する、
ことを特徴とするデータ処理方法。
【請求項17】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、
を含み、
前記データ逆変換ステップは、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記入力データを、予め定めた第1のビット数の第1の分離データと、予め定めた第2のビット数の第2の分離データとに分離し、前記第1の分離データの各ビットの値をビット毎に反転した第1の反転データ、または前記第1の分離データのいずれか一方のデータを第1の反転処理データとし、前記第2の分離データの各ビットと前記第1の反転処理データの各ビットとが前記データバスの各ビットに配置された第1の転送データと、前記第1の反転データまたは前記第1の分離データのいずれのデータが前記第1の反転処理データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記第1の転送データとに分離し、さらに前記第1の転送データを、前記第2の分離データと第1の反転処理データとに分離する第2のビット分離ステップと、
前記反転情報に基づいて、前記第1の反転処理データの各ビットの値をビット毎に反転した第2の反転データ、または前記第1の反転処理データのいずれか一方のデータを、前記第1の分離データとして出力する第2のビット反転ステップと、
前記第1の分離データと前記第2の分離データとを結合して元の前記入力データに戻す第2のビット結合ステップと、
を含む、
ことを特徴とするデータ処理方法。
【請求項18】
複数の入力データを、予め定められたビット数のデータバスと同じビット数の転送データに変換し、1つの前記転送データを1つの転送単位とし、予め定められた数の前記転送単位を1つの変換単位として、前記変換単位毎に順次転送されてきた転送データを順次逆変換して、複数の元の前記入力データに復元するデータ逆変換ステップ、
を含み、
前記データ逆変換ステップは、
前記転送データの転送元のデータ処理装置が前記変換単位で前記転送データを出力する際の、前記入力データの各ビットの値をビット毎に反転する第1のビット位置と第2のビット位置と同じ設定が、予め定められており、
前記転送データの転送元のデータ処理装置が、前記転送データとして、前記転送データの転送元のデータ処理装置に設定された前記第1のビット位置と前記第2のビット位置とに基づいて、前記入力データの、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データと、を生成し、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択データとし、該選択データと、前記第1の反転データまたは前記第2の反転データのいずれかのデータが前記選択データとして選択されているかを表す反転情報とが、前記転送データの転送元のデータ処理装置からの前記転送データとして前記データバスから入力され、前記転送データの内、いずれかの前記転送データの予め定められたビットの位置に結合されている前記反転情報と、前記選択データとに分離する第2のビット分離ステップと、
入力された前記選択データから、前記第1のビット位置のビットの値をビット毎に反転した第1の反転データと、前記第2のビット位置のビットの値をビット毎に反転した第2の反転データとに戻す第2のビット反転ステップと、
前記反転情報に基づいて、前記第1の反転データまたは前記第2の反転データのいずれか1つのデータを選択し、該選択したデータを、該データ逆変換部において復元した元の前記入力データとして出力する第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】
【図25】
【図26】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2012−203541(P2012−203541A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−66057(P2011−66057)
【出願日】平成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 ]