(57)【要約】【課題】小規模な回路で画素データを並列化する。【解決手段】書き込み制御部１３が、撮像素子３１のＮ（Ｎ≧２）本の読み出しライン分の画素データを保持するＮ×Ｎ個の記憶部１２に含まれる記憶部を列方向または行方向に選択して、Ｎ画素ずつ画素データを書き込み、Ｎライン分の画素データの書き込みごとに、記憶部の選択方向を切り替え、読み出し制御部１４が、Ｎの倍数ライン目の画素データの書き込み時、当該書き込み時における記憶部の選択方向とは異なる方向でＮ個の記憶部を選択し、書き込まれたＮライン分の画素データの並列読み出しを開始し、Ｎ×Ｎ個の記憶部１２のうち、Ｎの倍数ライン目の画素データの書き込みで最初に選択される記憶部１２ａ，１２ｂは、読み出しと書き込みを異なる端子を用いて行い、他の記憶部は、読み出しと書き込みを共通の端子を用いて行う。【選択図】図１
2014229227.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子のＮ（Ｎ≧２）本の読み出しライン分の画素データを保持するＮ×Ｎ個の記憶部と、
前記Ｎ×Ｎ個の記憶部に含まれる記憶部を列方向または行方向に選択して、Ｎ画素ずつ前記画素データを書き込み、Ｎライン分の前記画素データの書き込みごとに、前記記憶部の選択方向を切り替える書き込み制御部と、
Ｎの倍数ライン目の前記画素データの書き込み時、当該書き込み時における前記記憶部の選択方向とは異なる方向でＮ個の前記記憶部を選択し、前記書き込まれた前記Ｎライン分の画素データの並列読み出しを開始する読み出し制御部と、を有し、
前記Ｎ×Ｎ個の記憶部のうち、前記Ｎの倍数ライン目の画素データの書き込みで最初に選択される記憶部は、読み出しと書き込みを異なる端子を用いて行い、他の記憶部は、読み出しと書き込みを共通の端子を用いて行う、
ことを特徴とする画像データ処理装置。
【請求項２】
前記列方向または前記行方向で選択される前記Ｎ個の記憶部への１ライン分の前記画素データの書き込み開始前に、当該Ｎ個の記憶部に書き込まれている画素データの読み出しが完了している、ことを特徴とする請求項１に記載の画像データ処理装置。
【請求項３】
前記読み出し制御部は、前記Ｎの倍数ラインの画素データのうち、１ワード分の書き込みが完了すると、前記並列読み出しを開始させる、ことを特徴とする請求項１または２に記載の画像データ処理装置。
【請求項４】
前記撮像素子からの前記画素データの読み出し順で、前記画素データを受け取り、それぞれが、前記読み出し順に対してＮ画素ずつ飛び飛びのデータ並びとなるＮ並列の第１の並列データを生成する並列化部を有し、
書き込み時に選択される前記記憶部には、前記並列化部からの前記第１の並列データがＮ画素ずつ書き込まれ、
読み出し時に選択される前記Ｎ個の記憶部から読み出されるＮ並列の第２の並列データのそれぞれのデータ並びは、前記読み出し順である、
ことを特徴とする請求項１乃至３の何れか一項に記載の画像データ処理装置。
【請求項５】
前記Ｎの倍数ラインの前記画素データの書き込みで最初に選択される記憶部と、前記他の記憶部とを、同じ制御信号またはアドレスで動作させる２種類のインターフェースを有することを特徴とする請求項１乃至４の何れか一項に記載の画像データ処理装置。
【請求項６】
書き込み制御部が、撮像素子のＮ（Ｎ≧２）本の読み出しライン分の画素データを保持するＮ×Ｎ個の記憶部に含まれる記憶部を列方向または行方向に選択して、Ｎ画素ずつ前記画素データを書き込み、Ｎライン分の前記画素データの書き込みごとに、前記記憶部の選択方向を切り替え、
読み出し制御部が、Ｎの倍数ライン目の前記画素データの書き込み時、当該書き込み時における前記記憶部の選択方向とは異なる方向でＮ個の前記記憶部を選択し、前記書き込まれた前記Ｎライン分の画素データの並列読み出しを開始し、
前記Ｎ×Ｎ個の記憶部のうち、前記Ｎの倍数ライン目の画素データの書き込みで最初に選択される記憶部は、読み出しと書き込みを異なる端子を用いて行い、他の記憶部は、読み出しと書き込みを共通の端子を用いて行う、
ことを特徴とする画像データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ処理装置及び画像データ処理方法に関する。
【背景技術】
【０００２】
近年、撮像素子の性能向上により、その動作周波数が高周波数化傾向にある。撮像素子の出力は、その後段につながるＩＳＰ（Image Signal Processor）の動作に関係なく出力されるが、ＩＳＰは、メモリの動作可能周波数の性能限界の影響で、撮像素子からの入力をリアルタイムに処理するための高周波数化には限度がある。
【０００３】
そこで、撮像素子からラスタ走査順に読み出される画素データを、ＩＳＰが複数画素ずつ受け取り、並列に処理することでＩＳＰ内の周波数を下げることが考えられる。
ただ、撮像素子からラスタ走査順に入力される画素データを複数画素ずつ受け取り並列に出力するだけでは、各並列出力のデータの並びは、ラスタ走査順ではなく、飛び飛びのデータとなり、このままでは後段の回路で並列に処理することができない。そのため、ラインバッファなどを用いて、飛び飛びの並列データを後段の回路で並列処理できるように並べ替えることが行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−９６１１６号公報
【特許文献２】特開２００１−６７２６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Ｎ画素並列に処理しようとする場合、Ｎ本のラインバッファ（たとえば、ＲＡＭ（Random Access Memory））を用いることが考えられる。前述したように、撮像素子からの出力（読み出し）はＩＳＰの動作に関係なく次々に発生する。そこで、Ｎライン分のデータ書き込み完了時点で、次のラインの書き込み領域を確保できるだけの読み出しを完了しておくため、Ｎライン目の書き込みと読み出しをオーバーラップさせることが考えられる。
【０００６】
しかし、このような処理を行う場合、並列数が増えると前のラインの読み出しが完了していないにも関わらず、新たなラインのデータの書き込みが同じアドレス上で発生してしまい、前のラインのデータを上書きし破壊してしまう可能性がある。これを避けるために、ラインバッファ数をＮ本よりも増やすことが考えられるが、面積の増加につながってしまう。
【課題を解決するための手段】
【０００７】
発明の一観点によれば、撮像素子のＮ（Ｎ≧２）本の読み出しライン分の画素データを保持するＮ×Ｎ個の記憶部と、前記Ｎ×Ｎ個の記憶部に含まれる記憶部を列方向または行方向に選択して、Ｎ画素ずつ前記画素データを書き込み、Ｎライン分の前記画素データの書き込みごとに、前記記憶部の選択方向を切り替える書き込み制御部と、Ｎの倍数ライン目の前記画素データの書き込み時、当該書き込み時における前記記憶部の選択方向とは異なる方向でＮ個の前記記憶部を選択し、前記書き込まれた前記Ｎライン分の画素データの並列読み出しを開始する読み出し制御部と、を有し、前記Ｎ×Ｎ個の記憶部のうち、前記Ｎの倍数ライン目の画素データの書き込みで最初に選択される記憶部は、読み出しと書き込みを異なる端子を用いて行い、他の記憶部は、読み出しと書き込みを共通の端子を用いて行う、画像データ処理装置が提供される。
【０００８】
また、発明の一観点によれば、書き込み制御部が、撮像素子のＮ（Ｎ≧２）本の読み出しライン分の画素データを保持するＮ×Ｎ個の記憶部に含まれる記憶部を列方向または行方向に選択して、Ｎ画素ずつ前記画素データを書き込み、Ｎライン分の前記画素データの書き込みごとに、前記記憶部の選択方向を切り替え、読み出し制御部が、Ｎの倍数ライン目の前記画素データの書き込み時、当該書き込み時における前記記憶部の選択方向とは異なる方向でＮ個の前記記憶部を選択し、前記書き込まれた前記Ｎライン分の画素データの並列読み出しを開始し、前記Ｎ×Ｎ個の記憶部のうち、前記Ｎの倍数ライン目の画素データの書き込みで最初に選択される記憶部は、読み出しと書き込みを異なる端子を用いて行い、他の記憶部は、読み出しと書き込みを共通の端子を用いて行う、画像データ処理方法が提供される。
【発明の効果】
【０００９】
開示の画像データ処理装置及び画像データ処理方法によれば、小規模な回路で画素データを並列化できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の画像データ処理装置と画像データ処理方法の一例を示す図である。
【図２】画像データ処理装置が４画素ずつデータを受け取り４並列で処理を行う例を示す図である。
【図３】並べ替え処理に用いられるＲＡＭの例を示す図である。
【図４】４つのＲＡＭを用いた並べ替え処理の一例の様子を示すタイミングチャートである（その１）。
【図５】４つのＲＡＭを用いた並べ替え処理の一例の様子を示すタイミングチャートである（その２）。
【図６】第２の実施の形態の画像データ処理装置が適用される撮像装置の一例を示す図である。
【図７】ライン分割処理部の一例を示す図である。
【図８】並列数Ｎ＝４としたときの、ＲＡＭ周辺部の一例を示す図である。
【図９】入力信号制御部の入出力信号の関係の例を示す図である。
【図１０】出力信号制御部の入出力信号の関係の例を示す図である。
【図１１】並列数Ｎ＝４としたときの、記憶領域の例を示す図である。
【図１２】１ＲＷの１ポートＲＡＭに用いられるＲＡＭＩ／Ｆの一例を示す図である。
【図１３】１Ｒ１Ｗの２ポートＲＡＭに用いられるＲＡＭＩ／Ｆの一例を示す図である。
【図１４】並列データのライト処理の一例の流れを示すフローチャートである。
【図１５】並列データのリード処理の一例の流れを示すフローチャートである。
【図１６】並列数Ｎ＝４のときのライン分割処理部によるデータの並べ替え処理の一例の様子を示すタイミングチャートである（その１）。
【図１７】並列数Ｎ＝４のときのライン分割処理部によるデータの並べ替え処理の一例の様子を示すタイミングチャートである（その２）。
【図１８】並列数Ｎ＝４のときのライン分割処理部によるデータの並べ替え処理の一例の様子を示すタイミングチャートである（その３）。
【図１９】３×３個のＲＡＭに対するライトとリードの制御例を示す図である。
【発明を実施するための形態】
【００１１】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の画像データ処理装置と画像データ処理方法の一例を示す図である。
【００１２】
画像データ処理装置１０は、並列化部１１、Ｎ×Ｎ（Ｎ≧２、ただし図１の例ではＮ＝４）個の記憶部１２（ただし、後述するように２つの記憶部１２ａ，１２ｂは他のものとは種類が異なるため別の符号を付している）を有している。さらに、画像データ処理装置１０は、書き込み制御部１３、読み出し制御部１４、入力信号制御部１５、出力信号制御部１６、回路部１７を有している。以下の説明では、記憶部１２，１２ａ，１２ｂ、書き込み制御部１３、読み出し制御部１４、入力信号制御部１５、出力信号制御部１６を含む部分をライン分割処理部２０と呼ぶ。
【００１３】
並列化部１１は、撮像部３０の撮像素子３１から画素データの読み出し順（ラスタ走査順）で、画素データを受け取り、それぞれが、ラスタ走査順に対してＮ画素ずつ飛び飛びのデータ並びとなるＮ並列の並列データを生成する。これにより、画像データ処理装置１０内の周波数を撮像素子３１の周波数の１／Ｎにすることができる。なお、並列化部１１は、たとえば、撮像部３０に含まれるようにしてもよい。
【００１４】
ライン分割処理部２０は、並列化部１１から出力される各並列出力のデータを、後段の回路部１７で処理できるようにラスタ走査順に並び変え、ラスタ走査順に並び変えられたＮ並列の画素データを出力する。
【００１５】
ライン分割処理部２０内の、Ｎ×Ｎ個の記憶部１２，１２ａ，１２ｂは、撮像素子３１のＮ本の読み出しライン（たとえば、水平方向の読み出しライン）分の画素データを保持する容量を有している。Ｎ＝４の場合は、１６個の記憶部１２，１２ａ，１２ｂによって、４ライン分の画素データが保持される。
【００１６】
書き込み制御部１３は、Ｎ×Ｎ個の記憶部１２，１２ａ，１２ｂに含まれる記憶部を、列方向または行方向にＮ個選択して、Ｎ画素ずつ並列化部１１から出力される画素データを書き込む。そして、書き込み制御部１３は、Ｎライン分の画素データの書き込みごとに、記憶部の選択方向を切り替える。
【００１７】
読み出し制御部１４は、Ｎの倍数ライン目の画素データの書き込み時、その書き込み時における記憶部の選択方向とは異なる方向でＮ個の記憶部を選択し、Ｎライン分の画素データの並列読み出しを開始する。
【００１８】
入力信号制御部１５は、書き込み制御部１３と読み出し制御部１４の制御のもと、行選択信号や列選択信号を生成し、Ｎ×Ｎ個の記憶部１２，１２ａ，１２ｂのうち、読み書きを行う記憶部を選択する。
【００１９】
出力信号制御部１６は、書き込み制御部１３と読み出し制御部１４の制御のもと、Ｎ×Ｎ個の記憶部１２，１２ａ，１２ｂのうち適切なＮ個を選択し、Ｎ並列の画素データを出力し、後段の回路部１７に供給する。
【００２０】
なお、図１の例では、並列化部１１とＮ×Ｎ個の記憶部１２，１２ａ，１２ｂとを接続するデータ線や、入力信号制御部１５及び出力信号制御部１６とＮ×Ｎ個の記憶部１２，１２ａ，１２ｂとを接続する信号線などは、図示を省略している。
【００２１】
以下、第１の実施の形態の画像データ処理装置１０の動作の一例を説明する。
図２は、画像データ処理装置が４画素ずつデータを受け取り４並列で処理を行う例を示す図である。
【００２２】
図２では、クロックＣＫ１に同期して撮像素子３１から矢印Ａで示されている読み出し順（ラスタ走査順）で読み出される画素データが、０〜２６で示されている。画像データ処理装置１０では、撮像部３０でのクロックＣＫ１の１／４の速さのクロックＣＫ２に同期した動作が行われる。
【００２３】
並列化部１１は、ラスタ走査順で撮像素子３１から読み出される画素データを、図２のような４つの並列データとして出力する。このとき各並列データは、０，４，８，…、１，５，９，…のように、ラスタ走査順に対して、４画素ずつ飛び飛びの画素データとなっているため、ライン分割処理部２０で、各並列データがラスタ走査順になるように並べ替えられて、後段の回路部１７に供給される。
【００２４】
図１の下側には、画像データ処理装置１０が４画素ずつデータを受け取り４並列で処理を行う際の、ライン分割処理部２０における画素データのライトとリードの制御例が示されている。４×４個の記憶部１２，１２ａ，１２ｂに対してライトまたはリードが行われる８つの状態の例が示されている。
【００２５】
書き込み制御部１３は、４×４個の記憶部１２，１２ａ，１２ｂから、列方向に記憶部を順に選択して、並列化部１１から４画素ずつ並列に入力される画素データを書き込ませる。これにより、まずは撮像素子３１の水平方向の読み出しラインの画素データが、１ライン目から順に、列方向に選択された記憶部にライトされる。
【００２６】
そして、書き込み制御部１３は、４ライン分の画素データのライトが終わると、記憶部の選択方向を、列方向から行方向に切り替えている。また、書き込み制御部１３は、さらに４ライン分の画素データのライトが終わると、記憶部の選択方向を、行方向から列方向に切り替えている。
【００２７】
読み出し制御部１４は、列方向で記憶部を選択しての４ライン目の画素データのライト中に、行方向の４個の記憶部を選択し、１〜４ライン目の画素データのリード（並列読み出し）を開始させる。４ライン目の画素データのライト完了時には、１行目の４つの記憶部からのリードが完了する（その理由については後述する）。そのため、すぐにその行の記憶部に５ライン目の画素データをライトすることができる。これによって、読み出されていない１〜４ライン目の画素データが、５ライン目の画素データによって上書きされ破壊されることを防ぐことができる。
【００２８】
また、読み出し制御部１４は、行方向で記憶部を選択しての８ライン目の画素データのライト中に、列方向の４個の記憶部を選択し、画素データのリード（並列読み出し）を開始させる。８ライン目の画素データのライト完了時には、１列目の４つの記憶部からのリードが完了する。そのため、すぐにその列の記憶部に９ライン目の画素データをライトすることができる。これによって、読み出されていない５〜８ライン目の画素データが、９ライン目の画素データによって上書きされ破壊されることを防ぐことができる。
【００２９】
撮像素子３１の９ライン目以降の画素データに対しても同様の制御が行われる。
以上のような制御によれば、４×４個の記憶部１２，１２ａ，１２ｂのうち、記憶部１２ａ，１２ｂ以外の記憶部１２は、ライトアクセスとリードアクセスが異なるタイミングで発生する。そのため、記憶部１２には、ライトとリードを共通の端子で行う記憶装置（たとえば、１ＲＷなどの１ポートＲＡＭ）が用いられる。一方、４の倍数ライン目の画素データの書き込み中に指定される最初のアドレスがある記憶部１２ａ，１２ｂは、ライトとリードを別々の端子を用いて行う記憶装置（たとえば、１Ｒ１Ｗなどの２ポートＲＡＭ）が用いられる。
【００３０】
これにより、記憶部１２，１２ａ，１２ｂを全て、１Ｒ１Ｗなどの２ポートＲＡＭを用いる場合よりも回路面積を削減できる。並列数が多くなるほど、２ポートＲＡＭの割合を減らせるので、回路面積の削減効果は大きい。また、前のラインのリードが完了していないにも関わらず、新たなラインのデータのライトが同じアドレス上で発生することも抑制できるので、前のラインの画素データが上書きされ破壊されてしまうことを防ぐことができる。
【００３１】
以下比較例として、４画素ずつデータを受け取り４並列で処理を行う他の画像データ処理方法の例を示す。
（比較例）
図３は、並べ替え処理に用いられるＲＡＭの例を示す図である。
【００３２】
４画素ずつデータを受け取り、４並列で処理を行う際に、第１の実施の形態の画像データ処理装置１０と異なり、図３に示すように、４つのＲＡＭ４０〜４３を用いる場合を考える。各ＲＡＭ４０〜４３は、撮像素子３１の水平方向の１ライン分の画素データを保持する。各ＲＡＭ４０〜４３のビット数ｂ１は４画素分である。また、各ＲＡＭ４０〜４３のワード数ｗ１（１ワードは４画素分）は最大の水平方向画素サイズの１／４である。
【００３３】
このようなＲＡＭ４０〜４３に対するライト及びリードは、たとえば、以下のようになる。
図４、図５は、４つのＲＡＭを用いた並べ替え処理の一例の様子を示すタイミングチャートである。
【００３４】
上から、画像データ処理装置１０のクロック、水平同期信号、ＲＡＭ４０〜４３へ供給される４並列の画素データ（センサ入力ＩＮ１〜ＩＮ４）、各ＲＡＭ４０〜４３のライト及びリード（出力）の様子が示されている。
【００３５】
水平同期信号がＬ（Low）レベルからＨ（High）レベルに立ち上がると（タイミングｔ１）、撮像素子３１の１ライン目の画素データが並列化部１１で並列データとなり、図４のようなセンサ入力ＩＮ１〜ＩＮ４としてＲＡＭ４０にライトされる。なお、水平同期信号は次のクロックの立ち上がりでＬレベルに立ち下がる。すなわち、水平同期信号は、１クロック周期分のパルス幅をもつパルスである。
【００３６】
撮像素子３１からの１ライン目の画素データのリード後、わずかなブランクを挟み水平同期信号のパルスが生成されると、２ライン目の画素データが、並列化部１１で並列データとなり、図４のようなセンサ入力ＩＮ１〜ＩＮ４としてＲＡＭ４１にライトされる。
【００３７】
タイミングｔ３，ｔ４でも同様に、水平同期信号のパルスが生成されると、３ライン目及び４ライン目の画素データのＲＡＭ４２，４３へのライトが行われる。ただし、次の５ライン目の画素データをライト可能な領域を確保するために、４ライン目の１ワード分の画素データが書き込まれた時点（タイミングｔ５）で、１〜４ライン目の画素データの並列読み出しが開始される。
【００３８】
しかしながら、タイミングｔ６で、５ライン目の画素データのライトが開始されるとき、ＲＡＭ４０では、１ライン目の画素データのリードが完了しておらず、５ライン目の画素データによって、リードが済んでいないのに上書きされる画素データが発生する。
【００３９】
タイミングｔ７に関しても同様に、６ライン目の画素データのライトが開始されるとき、ＲＡＭ４１では、２ライン目の画素データのリードが完了しておらず、６ライン目の画素データによって、リードが済んでいないのに上書きされる画素データが発生する。
【００４０】
このように、４つのＲＡＭ４０〜４３を用いた並列データの並べ替え処理では、ライトがリードを追い越してしまうことによるデータの上書きにより、データ破壊が生じる。そのため、ＲＡＭの数を、たとえば、２つ増やすことが考えられるが、回路規模が増加する。また、この比較例のような並べ替え処理では、タイミングｔ４〜ｔ６のように、ライトとリードが同時に発生するため、ＲＡＭ４０〜４３は、１Ｒ１Ｗなどの２ポートＲＡＭが用いられる。これによっても回路規模が増加する。このようなデータ破壊は、並列数が３以上になると生じやすくなる。
【００４１】
これに対して、第１の実施の形態の画像データ処理装置１０では、Ｎ×Ｎ個の記憶部１２，１２ａ，１２ｂを用いて、前述したようなライト及びリードの制御を行うことで、データ破壊の発生を抑制できる。また、記憶部１２ａ，１２ｂ以外の大部分の記憶部１２に２ポートＲＡＭを用いることができる。そのため、並列の画素データの並べ替え時のデータ破壊の発生を小規模な回路で抑制できる。
【００４２】
以下、第２の実施の形態の画像データ処理装置を説明する。
（第２の実施の形態）
図６は、第２の実施の形態の画像データ処理装置が適用される撮像装置の一例を示す図である。
【００４３】
撮像装置５０は、撮像部６０、画像データ処理装置７０を有している。
撮像部６０は、レンズや反射鏡などの撮像光学系６１、ＣＣＤ（Charge Coupled Device）などである撮像素子６２、アンプやフィルタ、ＡＤＣ（Analog to Digital Converter）などを含むアナログフロントエンド（図６ではＡＦＥと表記されている）を有する。
【００４４】
画像データ処理装置７０は、たとえば、ＩＳＰであり、ＣＰＵ（Central Processing Unit）７１により各部が制御される。画像データ処理装置７０は、並列データ生成／処理部７２、色処理部７３、他画像処理部７４、表示インターフェース（以下表示Ｉ／Ｆと表記する）、メモリカードＩ／Ｆ７６、静止画コーデック部７７、ＤＭＡ（Direct Memory Access）調停部７８、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）コントローラ７９を有している。また、並列データ生成／処理部７２、色処理部７３、他画像処理部７４、表示Ｉ／Ｆ７５、メモリカードＩ／Ｆ７６、静止画コーデック部７７は、ＤＭＡコントローラ７２ａ，７３ａ，７４ａ，７５ａ，７６ａ，７７ａを有しており、内部バス８０に接続されている。
【００４５】
並列データ生成／処理部７２は、撮像部６０に接続されており、並列化部７２ｂ、ライン分割処理部７２ｃ、回路部７２ｄをさらに有している。これらは、たとえば、前述した図１の、並列化部１１、ライン分割処理部２０、回路部１７と同様の機能を行う。回路部７２ｄは、ＤＭＡコントローラ７２ａに接続されている。また、回路部７２ｄとしては、たとえば、シェーディング補正部、欠陥画素補正部、ノイズリダクション部、ＡＥ（Auto Exposure）／ＡＦ（Auto Focus）／ＡＷＢ（Auto White Balance）検波部などがある。
【００４６】
色処理部７３は、撮像画像の色に関する処理を行い、他画像処理部７４は、その他の種々画像処理を行う。表示Ｉ／Ｆ７５とメモリカードＩ／Ｆ７６は、画像データ処理装置７０と、表示デバイス８３及びメモリカード８２との間で情報の送受信を行う。静止画コーデック部７７は、たとえば、ＪＰＥＧ（Joint Photographic Experts Group）など種々の符号化方式でのエンコードやデコードを行う。ＤＭＡ調停部７８は、ＤＭＡコントローラ７２ａ，７３ａ，７４ａ，７５ａ，７６ａ，７７ａからのデータ転送の要求に対して内部バス８０の使用権の調停を行う。また、ＤＭＡ調整部７８は、ＳＤＲＡＭ８１を制御するＳＤＲＡＭコントローラ７９に接続されている。なお並列化部７２ｂは、撮像部６０に含まれていてもよい。
【００４７】
以下、並列データ生成／処理部７２のライン分割処理部７２ｃの一例を説明する。
（ライン分割処理部７２ｃ）
図７は、ライン分割処理部の一例を示す図である。
【００４８】
ライン分割処理部７２ｃは、ＲＡＭ周辺部９０、書き込み制御部９１、読み出し制御部９２を有している。
ＲＡＭ周辺部９０は、記憶領域９０ａ、入力信号制御部９０ｂ、出力信号制御部９０ｃを有している。記憶領域９０ａは、生成する並列データの並列数（Ｎ）に対応して、Ｎ×Ｎ個のＲＡＭを有している。記憶領域９０ａには、並列化部７２ｂで並列化されたＮ並列の画素データや、ライトアドレス（ＷＡＤ）や、リードアドレス（ＲＡＤ）が入力される。
【００４９】
入力信号制御部９０ｂは、書き込み制御部９１と読み出し制御部９２の制御のもと、行選択信号や列選択信号を生成し、Ｎ×Ｎ個のＲＡＭのうち、読み書きを行う記憶部を選択する。
【００５０】
出力信号制御部９０ｃは、書き込み制御部９１と読み出し制御部９２の制御のもと、Ｎ×Ｎ個のＲＡＭのうち適切なＮ個を選択し、Ｎ並列の画素データを出力し、後段の回路部７２ｄに供給する。
【００５１】
書き込み制御部９１は、ＳＴＡＴＥカウント用レジスタ９１ａ、ＷＥＮ生成部９１ｂ、ＷＡＤカウント用レジスタ９１ｃ、比較部９１ｄ、ＷＣＮＴカウント用レジスタ９１ｅ、ＲＳＴＡＲＴ生成部９１ｆを有する。
【００５２】
ＳＴＡＴＥカウント用レジスタ９１ａは、水平同期信号ＨＤの立ち上がり回数をカウントし、そのカウント値ＳＴＡＴＥをライト／リード状態として保持する。たとえば、並列数Ｎ＝４である場合には、図１に示したように８つのライト／リード状態があり、ＳＴＡＴＥカウント用レジスタ９１ａは、３ビットの値を保持する。なお、水平同期信号ＨＤは、たとえば、撮像部６０とのＩ／Ｆ部（図示せず）で生成される。
【００５３】
ＷＥＮ生成部９１ｂは、水平同期信号ＨＤの立ち上がりに同期してライトイネーブル信号ＷＥＮをアサートする。
ＷＡＤカウント用レジスタ９１ｃは、ライトイネーブル信号ＷＥＮがアサートされている間、ライトアドレスＷＡＤを、画像データ処理装置７０の図示しないクロックに同期して、毎サイクルインクリメントする。
【００５４】
比較部９１ｄは、ライトアドレスＷＡＤと、選択するＲＡＭを切り替えるアドレスの閾値ＲＡＭＴＨとを比較する。そして比較部９１ｄは、ライトアドレスＷＡＤが閾値ＲＡＭＴＨに達すると、ＷＣＮＴカウント用レジスタ９１ｅに対するイネーブル信号をアサートするとともに、ＷＡＤカウント用レジスタ９１ｃに、ライトアドレスＷＡＤの値をリセットさせる。Ｎ＝４の場合、撮像素子６２の１水平方向ラインの画素データが、４つのＲＡＭにライトされる。このとき、各ＲＡＭに対して同じコラム（列）アドレスまたはロウ（行）アドレスで４画素並列にライトされる。そのため、閾値ＲＡＭＴＨは、撮像素子６２の最大の水平方向画素サイズの１／１６の値となる。
【００５５】
ＷＣＮカウント用レジスタ９１ｅは、比較部９１ｄがイネーブル信号をアサートするごとにカウント値ＷＣＮＴをインクリメントする。カウント値ＷＣＮＴは、ライトが行われるＲＡＭを示す。また、ＷＣＮＴカウント用レジスタ９１ｅは、Ｎ回ライトアドレスＷＡＤが閾値ＲＡＭＴＨに達すると１ライン分の書き込みが完了したことになるので、ライトイネーブル信号ＷＥＮをネゲートさせる。
【００５６】
ＲＳＴＡＲＴ生成部９１ｆは、カウント値ＳＴＡＴＥが“０”または“Ｎ”のときにリード開始信号ＲＳＴＡＲＴを生成する。リード開始信号ＲＳＴＡＲＴは、たとえば、１ショットのパルスである。
【００５７】
読み出し制御部９２は、ＲＥＮ生成部９２ａ、タイミング調整用カウンタ９２ｂ、ＡＮＤ回路９２ｃ、ＲＡＤカウント用レジスタ９２ｄ、比較部９２ｅ、ＲＡＣＮＴカウント用レジスタ９２ｆを有する。
【００５８】
ＲＥＮ生成部９２ａは、リード開始信号ＲＳＴＡＲＴを受け取ると、リードイネーブル信号ＲＥＮをアサートする。
タイミング調整用カウンタ９２ｂは、リードイネーブル信号ＲＥＮがアサートされてから図示しないクロックのＮサイクルに１回アサートされ、リードイネーブル信号ＲＥＮを有効にする信号“１”を送出する。これによって、読み出しのためのＲＡＭアクセスをＮサイクルに１回にするタイミングの調整が行われる。
【００５９】
ＡＮＤ回路９２ｃは、タイミング調整用カウンタ９２ｂから“１”が出力されているときには、リードイネーブル信号ＲＥＮの値を出力し、タイミング調整用カウンタ９２ｂから“０”が出力されているときには、“０”を出力する。
【００６０】
ＲＡＤカウント用レジスタ９２ｄは、タイミング調整用カウンタ９２ｂが飽和するタイミング、つまり、リードイネーブル信号ＲＥＮが“１”を出力するタイミングで、リードアドレスＲＡＤをインクリメントする。
【００６１】
比較部９２ｅは、リードアドレスＲＡＤと、選択するＲＡＭを切り替えるアドレスの閾値ＲＡＭＴＨとを比較する。そして比較部９２ｅは、リードアドレスＲＡＤが閾値ＲＡＭＴＨに達すると、ＲＣＮＴカウント用レジスタ９２ｆに対するイネーブル信号をアサートするとともに、ＲＡＤカウント用レジスタ９２ｄに、リードアドレスＲＡＤの値をリセットさせる。
【００６２】
ＲＣＮカウント用レジスタ９２ｆは、比較部９２ｅがイネーブル信号をアサートするごとにカウント値ＲＣＮＴをインクリメントする。カウント値ＲＣＮＴは、リードが行われるＲＡＭを示す。また、ＲＣＮＴ用レジスタ９２ｆは、Ｎ回、リードアドレスＲＡＤが閾値ＲＡＭＴＨに達すると読み出しが完了したことになるので、リードイネーブル信号ＲＥＮをネゲートさせる。
【００６３】
次に、ライン分割処理部７２ｃのＲＡＭ周辺部９０の一例を説明する。
（ＲＡＭ周辺部９０）
図８は、並列数Ｎ＝４としたときの、ＲＡＭ周辺部の一例を示す図である。
【００６４】
ライトアドレスＷＡＤ、リードアドレスＲＡＤ、４並列の画素データ（入力データＤＩ）については、全てのＲＡＭ１００〜１１５に入力され、結線の図示は煩雑となるので省略されている。またそれぞれのＲＡＭ１００〜１１５からの出力ＤＯ０〜１５の結線の図示も省略されている。
【００６５】
入力信号制御部９０ｂは、ＳＴＡＴＥカウント用レジスタ９１ａの３ビットのカウント値ＳＴＡＴＥを入力する。また、入力信号制御部９０ｂは、ＷＣＮカウント用レジスタ９１ｅの２ビットのカウント値ＷＣＮＴ、ＲＣＮカウント用レジスタ９２ｆの２ビットのカウント値ＲＣＮＴ、ライトイネーブル信号ＷＥＮ、リードイネーブル信号ＲＥＮを入力する。入力信号制御部９０ｂは、これらの信号をもとに、それぞれ４ビットの、ライト用の列選択信号ＷＳＥＬ＿Ｃ、行選択信号ＷＳＥＬ＿Ｌ、リード用の列選択信号ＲＳＥＬ＿Ｃ、行選択信号ＲＳＥＬ＿Ｌを生成して出力する。
【００６６】
ライト用の列選択信号ＷＳＥＬ＿Ｃと、リード用の列選択信号ＲＳＥＬ＿Ｃの最上位ビット［３］により、ＲＡＭ１００，１０４，１０８，１１２が選択され、その次のビット［２］により、ＲＡＭ１０１，１０５，１０９，１１３が選択される。さらに、その次のビット［１］により、ＲＡＭ１０２，１０６，１１０，１１４が選択され、最下位ビット［０］により、ＲＡＭ１０３，１０７，１１１，１１５が選択される。
【００６７】
また、ライト用の行選択信号ＷＳＥＬ＿Ｌと、リード用の行選択信号ＲＳＥＬ＿Ｌの最上位ビット［３］により、ＲＡＭ１００，１０１，１０２，１０３が選択され、その次のビット［２］により、ＲＡＭ１０４，１０５，１０６，１０７が選択される。さらに、その次のビット［１］により、ＲＡＭ１０８，１０９，１１０，１１１が選択され、最下位ビット［０］により、ＲＡＭ１１２，１１３，１１４，１１５が選択される。
【００６８】
図９は、入力信号制御部の入出力信号の関係の例を示す図である。
図９では、入力信号制御部９０ｂへの入力（ｉｎｐｕｔ）として、ＳＴＡＴＥカウント用レジスタ９１ａの３ビットのカウント値ＳＴＡＴＥが示されている。また、入力信号制御部９０ｂからの出力（ｏｕｔｐｕｔ）として、ライト及びリード用の、列選択信号ＷＳＥＬ＿Ｃ，ＲＳＥＬ＿Ｃ、行選択信号ＷＳＥＬ＿Ｌ，ＲＳＥＬ＿Ｌが示されている。
【００６９】
たとえば、カウント値ＳＴＡＴＥが“００１”のときは、ライト用の列選択信号ＷＳＥＬ＿Ｃは“１０００”、行選択信号ＷＳＥＬ＿Ｌは、カウント値ＷＣＮＴとなる。また、リード用の列選択信号ＲＳＥＬ＿Ｃは、カウント値ＲＣＮＴ、行選択信号ＷＳＥＬ＿Ｌ“１１１１”となる。
【００７０】
これによって、ライト時には、ＲＡＭ１００，１０４，１０８，１１２が、カウント値ＷＣＮＴがインクリメントされるごとに順に選択される。またリード時には、ＲＡＭ１００〜１０３，１０４〜１０７，１０８〜１１１，１１２〜１１５の順で、カウント値ＲＣＮＴがインクリメントされるごとに４つずつ選択される。
【００７１】
なお、列選択信号ＷＳＥＬ＿Ｃと、行選択信号ＷＳＥＬ＿Ｌについては、ライトイネーブル信号ＷＥＮとのＡＮＤ論理がとられ、列選択信号ＲＳＥＬ＿Ｃと、行選択信号ＲＳＥＬ＿Ｌについては、リードイネーブル信号ＲＥＮとのＡＮＤ論理がとられて出力される。
【００７２】
一方、図８の出力信号制御部９０ｃは、ＳＴＡＴＥカウント用レジスタ９１ａのカウント値ＳＴＡＴＥの最上位ビットと、ＲＡＭ１００〜１１５からの出力ＤＯ０〜ＤＯ１５と、ＲＣＮＴカウント用レジスタ９２ｆのカウント値ＲＣＮＴを入力する。そして出力信号制御部９０ｃは、これらの信号をもとに、４つの並列データＬＩＮＥ０，ＬＩＮＥ１，ＬＩＮＥ２，ＬＩＮＥ３を出力する。
【００７３】
図１０は、出力信号制御部の入出力信号の関係の例を示す図である。
図１０では、出力信号制御部９０ｃへの入力として、ＳＴＡＴＥカウント用レジスタ９１ａのカウント値ＳＴＡＴＥの最上位ビットＳＴＡＴＥ［２］及びカウント値ＲＣＮＴが示されている。また、出力信号制御部９０ｃからの出力として、４つの並列データＬＩＮＥ０，ＬＩＮＥ１，ＬＩＮＥ２，ＬＩＮＥ３が示されている。
【００７４】
カウント値ＳＴＡＴＥの最上位ビットＳＴＡＴＥ［２］が“０”のときは、図９に示したように、リード用の列選択信号ＲＳＥＬ＿Ｃは、カウント値ＲＣＮＴとなり、行選択信号ＲＳＥＬ＿Ｌは、“１１１１”となる。
【００７５】
たとえば、カウント値ＲＣＮＴが“１０００”の場合には、ＲＡＭ１００，１０４，１０８，１１２が選択されることから、図１０に示すように、並列データＬＩＮＥ０〜ＬＩＮＥ３は、出力ＤＯ０，ＤＯ４，ＤＯ８，ＤＯ１２の値となる。
【００７６】
一方、カウント値ＳＴＡＴＥの最上位ビットＳＴＡＴＥ［２］が“１”のときは、図９に示したように、リード用の列選択信号ＲＳＥＬ＿Ｃは、“１１１１”となり、行選択信号ＲＳＥＬ＿Ｌは、カウント値ＲＣＮＴとなる。
【００７７】
たとえば、カウント値ＲＣＮＴが“１０００”の場合には、ＲＡＭ１００，１０１，１０２，１０３が選択されることから、図１０に示すように、並列データＬＩＮＥ０〜ＬＩＮＥ３は、出力ＤＯ０，ＤＯ１，ＤＯ２，ＤＯ３の値となる。
【００７８】
以下、記憶領域９０ａの一例を説明する。
（記憶領域９０ａ）
図１１は、並列数Ｎ＝４としたときの、記憶領域の例を示す図である。
【００７９】
並列数Ｎ＝４とした場合、ＲＡＭ１００〜１１５のうち、同一行方向または同一列方向の４つのＲＡＭにより、撮像素子６２の水平方向の１ライン分の画素データを保持する。各ＲＡＭ１００〜１１５のビット数ｂは４画素分である。また、各ＲＡＭ１００〜１１５のワード数ｗ（１ワードは４画素分）は最大の水平方向画素サイズの１／１６である。
【００８０】
なお、図８において、ＲＡＭ１０３，１１２は、ライトアクセス中にリードアクセスが発生するＲＡＭであるため、１Ｒ１Ｗの２ポートＲＡＭが用いられるが、他のＲＡＭについては、１ＲＷの１ポートＲＡＭが用いられる。
【００８１】
このように、本実施の形態では、２種類のＲＡＭが用いられるが、同様に扱えるように、たとえば、以下のようなＩ／Ｆが適用される。
図１２は、１ＲＷの１ポートＲＡＭに用いられるＲＡＭＩ／Ｆの一例を示す図である。
【００８２】
ＲＡＭＩ／Ｆ１２０は、ＡＮＤ回路１２１，１２２、ＯＲ回路１２３、インバータ回路１２４、ビット連結回路１２５、選択回路１２６を有している。
ＡＮＤ回路１２１の２つの入力端子には、ライト用の列選択信号ＷＳＥＬ＿Ｃと行選択信号ＷＳＥＬ＿Ｌが入力される。ＡＮＤ回路１２２の２つの入力端子には、リード用の列選択信号ＲＳＥＬ＿Ｃと行選択信号ＲＳＥＬ＿Ｌが入力される。ＯＲ回路１２２の２つの入力端子には、ＡＮＤ回路１２１，１２２の出力信号が入力され、ＯＲ回路１２２の出力信号は、ＲＡＭ１００のチップイネーブル端子ＣＥに入力される。インバータ回路１２４には、ＡＮＤ回路１２１の出力信号が入力され、インバータ回路１２４の出力信号は、ＲＡＭ１００のライトイネーブル端子ＷＥに入力される。
【００８３】
ビット連結回路１２５は、ＡＮＤ回路１２１，１２２の出力信号を連結して２ビットの選択信号を選択回路１２６に供給する。選択回路１２６は、ライトアドレスＷＡＤとリードアドレスＲＡＤと値“０”を入力し、入力される選択信号が“１０”のときにはライトアドレスＷＡＤを出力し、選択信号が“０１”のときにはリードアドレス“ＲＡＤ”を出力する。また、選択回路１２６は、選択信号が“１０”，“０１”以外の値ｄｅｆのときには、“０”を出力する。選択回路１２６の出力信号は、ＲＡＭ１００のアドレス端子ＩＡに入力される。その他、ＲＡＭ１００のクロック端子ＣＫには、図示しないクロック供給部からのクロックＳＲＯＣＬＫが入力され、ライトデータ入力端子Ｉには、入力データＤＩが入力される。また、ＲＡＭ１００のリードデータ出力端子Ａから読み出されたリードデータは、出力信号制御部９０ｃに供給される。
【００８４】
記憶領域９０ａのその他の１ＲＷの１ポートＲＡＭについても同様のＩ／Ｆが用いられる。
図１３は、１Ｒ１Ｗの２ポートＲＡＭに用いられるＲＡＭＩ／Ｆの一例を示す図である。
【００８５】
ＲＡＭＩ／Ｆ１３０は、ＡＮＤ回路１３１，１３２、選択回路１３３，１３４を有している。
ＡＮＤ回路１３１の２つの入力端子には、ライト用の列選択信号ＷＳＥＬ＿Ｃと行選択信号ＷＳＥＬ＿Ｌが入力される。ＡＮＤ回路１３２の２つの入力端子には、リード用の列選択信号ＲＳＥＬ＿Ｃと行選択信号ＲＳＥＬ＿Ｌが入力される。ＡＮＤ回路１３１の出力信号は、ＲＡＭ１０３のライトイネーブル端子ＣＥＩＷに入力されるとともに、選択信号として選択回路１３３に供給される。ＡＮＤ回路１３２の出力信号は、ＲＡＭ１０３のリードイネーブル端子ＣＥＲＡに入力されるとともに、選択信号として選択回路１３４に供給される。
【００８６】
選択回路１３３は、ライトアドレスＷＡＤと値“０”を入力し、入力される選択信号が“１”のときにはライトアドレスＷＡＤを出力し、選択信号が“０”のときには“０”を出力する。選択回路１３３の出力信号は、ＲＡＭ１０３のライトアドレス端子ＩＷに入力される。
【００８７】
選択回路１３４は、リードアドレスＲＡＤと値“０”を入力し、入力される選択信号が“１”のときにはリードアドレスＲＡＤを出力し、選択信号が“０”のときには“０”を出力する。選択回路１３４の出力信号は、ＲＡＭ１０３のリードアドレス端子ＲＡに入力される。
【００８８】
その他、ＲＡＭ１０３のライト用クロック端子ＣＫＩＷ及びリード用クロック端子ＣＫＲＡには、図示しないクロック供給部からのクロックＳＲＯＣＬＫが入力され、ライトデータ入力端子Ｉには、入力データＤＩが入力される。また、ＲＡＭ１０３のリードデータ出力端子Ａから読み出されたリードデータは、出力信号制御部９０ｃに供給される。
【００８９】
１Ｒ１Ｗの２ポートＲＡＭであるＲＡＭ１１２についても同様のＩ／Ｆが用いられる。
図１２、図１３のようなＲＡＭＩ／Ｆ１２０，１３０を用いることで、異なるタイプのＲＡＭを同じように扱うことが可能となる。
【００９０】
次に、本実施の形態のライン分割処理部７２ｃの動作を説明する。
（ライン分割処理部７２ｃの動作）
図１４は、並列データのライト処理の一例の流れを示すフローチャートである。
【００９１】
書き込み制御部９１のＷＥＮ生成部９１ｂは、水平同期信号ＨＤがＨレベルであるか判定し（ステップＳ１０）、水平同期信号ＨＤがＨレベルである場合には、ライトイネーブル信号ＷＥＮをＨレベル（アサート）とする（ステップＳ１１）。これにより、以下の初期化及びモード遷移処理が開始される。
【００９２】
ライトイネーブル信号ＷＥＮがＨレベルとなると、ＷＡＤカウント用レジスタ９１ｃは、ライトアドレスＷＡＤを“０”にリセットする（ステップＳ１２）。その後、ＳＴＡＴＥカウント用レジスタ９１ａは、カウント値ＳＴＡＴＥをインクリメントし（ステップＳ１３）、ＷＣＮＴカウント用レジスタ９１ｅは、カウント値ＷＣＮＴを“０”にリセットする（ステップＳ１４）。なお、カウント値ＳＴＡＴＥをインクリメントする度に、たとえば、図１に示したようなライトとリードの状態が遷移する。Ｎ＝４の場合には、その状態は図１に示したように８つある。カウント値ＳＴＡＴＥが“１”のときは、左上の状態（１ライン目をライトする状態）になる。
【００９３】
その後、ＲＳＴＡＲＴ生成部９１ｆは、カウント値ＳＴＡＴＥが“０”か、並列数Ｎであるか判定し（ステップＳ１５）、その何れかである場合には、リード開始信号ＲＳＴＡＲＴをＨレベルとする（ステップＳ１６）。たとえば、並列数Ｎ＝４の場合、カウント値ＳＴＡＴＥが“４”または“０”になると、図１に示したように４ライン目または８ライン目のライトとともに、リードが開始される。
【００９４】
カウント値ＳＴＡＴＥが“０”でもＮでもない場合には、ステップＳ１８の処理が行われる。なお、ステップＳ１０の処理において、水平同期信号ＨＤがＬレベルの場合には、ＲＳＴＡＲＴ生成部９１ｆは、リード開始信号ＲＳＴＡＲＴをＬレベルとし（ステップＳ１７）、その後、ステップＳ１８の処理が行われる。
【００９５】
ステップＳ１８の処理では、ＷＡＤカウント用レジスタ９１ｃは、ライトイネーブル信号ＷＥＮがＨレベルであるか否か判定する。ライトイネーブル信号ＷＥＮがＬレベルである場合には、ステップＳ１０からの処理が繰り返される。ライトイネーブル信号ＷＥＮがＨレベルである場合には、以下のアドレス計算処理が行われる。
【００９６】
ライトイネーブル信号ＷＥＮがＨレベルである場合、ライトが行われ、比較部９１ｄは、ライトアドレスＷＡＤが、閾値ＲＡＭＴＨに達したか否かを判定する（ステップＳ１９）。ライトアドレスＷＡＤが閾値ＲＡＭＴＨに達していない状態（ＷＡＤ＜ＲＡＭＴＨ）である場合には、ＷＡＤカウント用レジスタ９１ｃは、ライトアドレスＷＡＤをインクリメントし（ステップＳ２０）、ライトを継続させる。その後、ステップＳ１０からの処理が繰り返される。
【００９７】
ライトアドレスＷＡＤが閾値ＲＡＭＴＨに達した場合、Ｎ×Ｎ個のＲＡＭの１つに対するライトが終わる。そのとき、ＷＣＮＴカウント用レジスタ９１ｅは、カウント値ＷＣＮＴがＮ−１であるか否か判定する（ステップＳ２１）。ここでは、各行または各列のＮ個のＲＡＭに対して、撮像素子６２の水平方向１ライン分の画素データのライトを終えたか否かが判定される。
【００９８】
そして、カウント値ＷＣＮＴがＮ−１である場合には、ＷＣＮＴカウント用レジスタ９１ｅは、ＷＥＮ生成部９１ｂにライトイネーブル信号ＷＥＮをＬレベルにさせる（ステップＳ２２）。これによりライトが停止する。カウント値ＷＣＮＴがＮ−１ではない場合には、ＷＣＮＴカウント用レジスタ９１ｅは、カウント値ＷＣＮＴをインクリメントする（ステップＳ２３）。これにより、次のＲＡＭが選択される。ステップＳ２２，Ｓ２３の後、ＷＡＤカウント用レジスタ９１ｃは、ライトアドレスＷＡＤを“０”にリセットする（ステップＳ２４）。その後、ステップＳ１０からの処理が繰り返される。
【００９９】
なお、上記の処理中において、たとえば、画像データ処理装置７０の電源がオフになると、ライト処理が終了する。
図１５は、並列データのリード処理の一例の流れを示すフローチャートである。
【０１００】
読み出し制御部９２のＲＥＮ生成部９２ａは、リード開始信号ＲＳＴＡＲＴがＨレベルであるか判定し（ステップＳ３０）、リード開始信号ＲＳＴＡＲＴがＨレベルである場合には、リードイネーブル信号ＲＥＮをＨレベルとする（ステップＳ３１）。これにより、まず、以下の初期化処理が開始される。
【０１０１】
初期化処理では、ＲＡＤカウント用レジスタ９２ｄは、リードアドレスＲＡＤを“０”にリセットし（ステップＳ３２）、ＲＣＮＴカウント用レジスタ９２ｆは、カウント値ＲＣＮＴを“０”にリセットする（ステップＳ３３）。ステップＳ３３の処理後、またはステップＳ３０の処理で、リード開始信号がＬレベルであったときには、ステップＳ３４の処理が行われる。
【０１０２】
ステップＳ３４の処理では、ＲＡＤカウント用レジスタ９２ｄは、リードイネーブル信号ＲＥＮがＨレベルであるか否か判定する。リードイネーブル信号ＲＥＮがＬレベルである場合には、ステップＳ３０からの処理が繰り返される。リードイネーブル信号ＲＥＮがＨレベルである場合には、以下のアドレス計算処理が行われる。
【０１０３】
リードイネーブル信号ＲＥＮがＨレベルである場合、比較部９２ｅは、リードアドレスＲＡＤが、閾値ＲＡＭＴＨに達したか否かを判定する（ステップＳ３５）。リードアドレスＲＡＤが閾値ＲＡＭＴＨに達していない状態（ＲＡＤ＜ＲＡＭＴＨ）である場合には、タイミング調整用カウンタ９２ｂは、カウント値がＮ−１であるか否か判定する（ステップＳ３６）。カウント値がＮ−１である場合、リードを開始させるために、ＲＡＤカウント用レジスタ９２ｄは、リードアドレスＲＡＤをインクリメントし（ステップＳ３７）、タイミング調整用カウンタ９２ｂはカウント値をリセットする（ステップＳ３８）。カウント値がＮ−１に達していない場合には、タイミング調整用カウンタ９２ｂは、リードを開始させるタイミングを調整するためのカウント値をインクリメントする（ステップＳ３９）。ステップＳ３８及びステップＳ３９の処理後は、ステップＳ３０からの処理が繰り返される。
【０１０４】
リードアドレスＲＡＤが、閾値ＲＡＭＴＨに達した場合、１列または１行のＮ個のＲＡＭのリードが完了する。このとき、ＲＣＮＴカウント用レジスタ９２ｆは、カウント値ＲＣＮＴがＮ−１であるか否か判定する（ステップＳ４０）。カウント値ＲＣＮＴがＮ−１である場合には、Ｎ×Ｎ個のＲＡＭに対するＮライン分のリードが終わる。そのとき、ＲＣＮＴカウント用レジスタ９２ｆは、ＲＥＮ生成部９２ａにリードイネーブル信号ＲＥＮをＬレベルにさせる（ステップＳ４１）。カウント値ＲＣＮＴがＮ−１に達していない場合には、ＲＣＮＴカウント用レジスタ９２ｆは、カウント値ＲＣＮＴをインクリメントする（ステップＳ４２）。ステップＳ４１及びステップＳ４２の処理後は、ＲＡＤカウント用レジスタ９２ｄは、リードアドレスＲＡＤをリセットする（ステップＳ４３）。その後、ステップＳ３０からの処理が繰り返される。これにより、次の行または列のＮ個のＲＡＭのリードが行われる。
【０１０５】
なお、上記の処理中において、たとえば、画像データ処理装置７０の電源がオフになると、リード処理が終了する。
次に、並列数Ｎ＝４のときの、ライン分割処理部７２ｃによるデータの並べ替え処理の一例を示す。
【０１０６】
図１６、図１７、図１８は、並列数Ｎ＝４のときのライン分割処理部によるデータの並べ替え処理の一例の様子を示すタイミングチャートである。
上から、画像データ処理装置７０のクロック、水平同期信号、ライン分割処理部７２ｃに入力される４並列の画素データ（センサ入力ＩＮ１〜ＩＮ４）、各ＲＡＭ１００〜１１５のライト及びリードの様子が示されている。
【０１０７】
１クロック周期の水平同期信号のパルスが生成されると（タイミングｔ１０）、撮像素子６２から１ライン目の画素データが並列化部７２ｂで並列データとなる。そして、図１６に示されるようなセンサ入力ＩＮ１〜ＩＮ４として、まずは列方向のＲＡＭ１００，１０４，１０８，１１２の順に４画素ずつライトされる。
【０１０８】
１ライン目の１６画素がライトされ、次に水平同期信号のパルスが生成されると（タイミングｔ１１）、２ライン目の画素データが並列化部７２ｂで並列データとなる。そして、センサ入力ＩＮ１〜ＩＮ４として、２列目のＲＡＭ１０１，１０５，１０９，１１３の順に４画素ずつライトされる。
【０１０９】
タイミングｔ１２でも同様に、水平同期信号のパルスが生成されると、３ライン目の画素データが、３列目のＲＡＭ１０２，１０６，１１０，１１４の順に４画素ずつライトされる。
【０１１０】
タイミングｔ１３において、水平同期信号のパルスが生成されると、４ライン目の画素データが、４列目のＲＡＭ１０３，１０７，１１１，１１５の順に４画素ずつライトされるが、１ワード目のライトが完了した時点でリードが開始される（タイミングｔ１４）。
【０１１１】
タイミングｔ１４から開始されるリードは、行方向の４個のＲＡＭ１００〜１０３が同時に選択され、タイミングｔ１４までの間にライトされた画素データが並列にリードされる。
【０１１２】
タイミングｔ１５からは、ライト時のＲＡＭの選択方向が列方向から行方向に変わる。タイミングｔ１５において、水平同期信号のパルスが生成されると、５ライン目の画素データが、リードが完了した１行目のＲＡＭ１００〜１０３に順にライトされる。また、１行目のＲＡＭ１００〜１０３からのリードが完了すると、連続して２行目のＲＡＭ１０４〜１０７からのリード、３行目のＲＡＭ１０８〜１１１からのリード、４行目のＲＡＭ１１２〜１１５からのリードが行われる。
【０１１３】
タイミングｔ１６において、水平同期信号のパルスが生成されると、６ライン目の画素データが、リードが完了した２行目のＲＡＭ１０４〜１０７に順にライトされる。同様に、タイミングｔ１７において、水平同期信号のパルスが生成されると、７ライン目の画素データが、リードが完了した３行目のＲＡＭ１０８〜１１１に順にライトされる。
【０１１４】
タイミングｔ１８において、水平同期信号のパルスが生成されると、８ライン目の画素データが、リードが完了した４行目のＲＡＭ１１２〜１１５に順にライトされる。また、１ワード目のライトが完了した時点でリードが開始される（タイミングｔ１９）。
【０１１５】
タイミングｔ１９から開始されるリードは、ＲＡＭの選択方向が行方向から列方向に変わり、まず、列方向の４個のＲＡＭ１００，１０４，１０８，１１２が同時に選択され、タイミングｔ１９までの間にライトされた画素データが並列にリードされる。
【０１１６】
一方、４行目のＲＡＭ１１２〜１１５に対するライトが完了し、次に、タイミングｔ２０において、水平同期信号のパルスが生成されると、９ライン目の画素データが、リードが完了した１列目のＲＡＭ１１２〜１１５に順にライトされる。つまり、ライトされるＲＡＭの選択方向が、行方向から列方向に変わる。
【０１１７】
なお、ＲＡＭ１００，１０４，１０８，１１２のリードが完了すると、連続して２列目のＲＡＭ１０１，１０５，１０９，１１３のリードが行われる。
以降も同様のライト及びリードが行われる。
【０１１８】
このような処理により、ラスタ走査順ではなく飛び飛びの順序であった各並列データ（センサ入力ＩＮ１〜ＩＮ４）のデータの順序が並び変えられる。そして、それぞれがラスタ走査順のデータ並びとなる４つの並列データＬＩＮＥ０，ＬＩＮＥ１，ＬＩＮＥ２，ＬＩＮＥ３として出力される。
【０１１９】
以上説明してきた、画像データ処理装置７０及び画像データ処理方法によれば、撮像素子６２からリードされるデータをＮ（≧２）並列で処理することができるため、撮像素子６２の動作周波数の１／Ｎで処理が可能となる。
【０１２０】
また、並列数Ｎ＝４としても、図１６〜図１８に示したように、４つのＲＡＭのリードが完了してからそのＲＡＭに対するライトが行われるため、リードが完了していないにも関わらず、データを上書きしてしまうということがない。
【０１２１】
なお、図１６〜図１８などでは、撮像素子６２からのリードにおいて、ラインとラインの間の期間（ブランク）を、最小の１サイクル（クロック１周期分）として説明したが、実際の撮像素子６２からのリードでは、数１０サイクル以上のブランクが含まれる。リードは一度スタートすると各ラインのライトタイミングに関係なく、図１６〜図１８に示したように水平画素サイズ分のサイクルをかけて一気に行われる。ブランクのサイクル数によっては、図１６〜図１８に示したよりも早いタイミングでリードが完了するが、最小のブランクでも図１６〜図１８に示したように、ライトがリードを追い越すことはないのでデータの上書きによる破壊は起こらない。
【０１２２】
また、たとえば、Ｎ＝４のときは、図８、図１１などに示したように４×４のＲＡＭ１００〜１１５は、４ライン分の画素データを保持できる容量をもつ。そのため、データ破壊を回避するために、６ライン分の画素データを保持するようなＲＡＭを用いる場合よりもＲＡＭ容量の増加を抑えられる。
【０１２３】
また、図１６〜図１８に示したように、ＲＡＭ１０３とＲＡＭ１１２以外のＲＡＭでは、ライトとリードが独立して行われている。ＲＡＭ１０３とＲＡＭ１１２は、ライトアクセスの際にリードアクセスが生じるため、１Ｒ１Ｗのような２ポートＲＡＭが用いられるが、その他のＲＡＭには１ＲＷのような１ポートＲＡＭを用いることができる。１ポートＲＡＭは、２ポートＲＡＭに比べて面積がかなり小さいため、面積の増加を抑えることができる。
【０１２４】
なお、図１６〜図１８では、リードは４，８ライン目のライトに対して、１サイクル遅れて開始されているが、数サイクル遅れて開始されることも考えられる。その場合、たとえば、リードが、図１７に示したタイミングｔ１５で終了せず、ＲＡＭ１０３，１１２以外でもライトとリードの同時アクセスが発生する可能性がある。しかし、前述したブランクがライトとリードの開始タイミングのずれ分のサイクル数よりも大きければ、そのようなＲＡＭのライトとリードの同時アクセスは発生しない。ライトとリードの開始タイミングのずれは１ワード分のライトを待つだけの数サイクル分である（図１６〜図１８では１サイクル分）。もともと他の回路での処理のために、ブランクは数１０サイクルである。
【０１２５】
このため、ＲＡＭ１０３，１１２以外のＲＡＭではライトとリードの同時アクセスは発生しないものとすることができる。
このように、本実施の形態の画像データ処理装置７０及び画像データ処理方法によれば、小規模な回路で画素データを適切に並列化できる。
【０１２６】
ＲＡＭに関してはプロセスによりサイズが異なるが、一例として６５ｎｍテクノロジー、水平方向最大サイズ＝６７８４画素、１画素＝１４ビットとしたとき、１ライン分の１Ｒ１Ｗの容量は７Ｍバイトである。たとえば、２並列処理を行う場合に、２ライン分の１Ｒ１ＷのＲＡＭを用いると、７×２＝１４Ｍバイトの容量となる。４並列処理を行う場合に、データ破壊を開始するために、６ライン分の画素データを保持するように、１Ｒ１ＷのＲＡＭを６つ使用すると、７×６＝４２Ｍバイトの容量となる。
【０１２７】
これに対し、本実施の形態の画像データ処理装置７０において４並列処理を行う場合、ＲＡＭ１００〜１１５は、それぞれ１／４ライン分の画素データを保持し、容量は１Ｒ１ＷのＲＡＭで１．７Ｍバイト、１ＲＷのＲＡＭで０．９Ｍバイトとなる。前述したように１６個のＲＡＭ１００〜１１５のうち、ＲＡＭ１０３，１１２以外は、１ＲＷのＲＡＭを適用できるので、トータルの容量は、１．７×２＋０．９×１４＝１６Ｍバイトとなる。このように、１Ｒ１ＷのＲＡＭを６つ使用する場合よりも大幅に、ＲＡＭ容量を削減でき、面積を小さくすることができる。また、２並列処理を行うために、２ライン分の１Ｒ１ＷのＲＡＭを使う場合に対しても、４並列処理を行っても、本実施の形態の画像データ処理装置７０によれば１７％の容量増加に抑えることができる。
【０１２８】
以上、実施の形態に基づき、本発明の画像データ処理装置及び画像データ処理方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【０１２９】
たとえば、上記では、Ｎ並列処理の例として、主にＮ＝４の場合について説明したが、Ｎ＝２，３でもＮ≧５でも同様に、本発明を適用できる。
以下にＮ＝３の場合、すなわち画像データ処理装置７０が３画素ずつデータを受け取り３並列で処理を行う際の、ライン分割処理部７２ｃにおける画素データのライトとリードの制御例を説明する。
【０１３０】
図１９は、３×３個のＲＡＭに対するライトとリードの制御例を示す図である。
図１９には、３×３個のＲＡＭに対してライトまたはリードが行われる６つの状態の例が示されている。状態は、前述したカウント値ＳＴＡＴＥの値で表されている。
【０１３１】
３×３個のＲＡＭ１５０の各列または各行の３つのＲＡＭ１５０により、撮像素子６２の１ライン分の画素データが保持できる。
書き込み制御部９１は、３×３個のＲＡＭ１５０から、列方向にＲＡＭ１５０を順に選択して、並列化部７２ｂから３画素ずつ並列に入力される画素データを書き込ませる。これにより、まずは撮像素子６２の水平方向の読み出しラインの画素データが、１ライン目から順に、列方向に選択されたＲＡＭ１５０にライトされる。
【０１３２】
そして、書き込み制御部９１は、３ライン分の画素データのライトが終わると、ＲＡＭ１５０の選択方向を、列方向から行方向に切り替えている。また、書き込み制御部９１は、さらに３ライン分の画素データのライトが終わると、ＲＡＭ１５０の選択方向を、行方向から列方向に切り替える。
【０１３３】
読み出し制御部９２は、列方向でＲＡＭ１５０を選択しての３ライン目の画素データのライト中（ＳＴＡＴＥ＝３）に、行方向の３個のＲＡＭ１５０を選択し、１〜３ライン目の画素データのリードを開始させる。３ライン目の画素データのライト完了時には、１行目の３つのＲＡＭからのリードを完了させる。そのため、すぐにその行のＲＡＭ１５０に４ライン目の画素データをライトすることができる。
【０１３４】
また、読み出し制御部９２は、行方向でＲＡＭ１５０を選択しての６ライン目の画素データのライト中（ＳＴＡＴＥ＝０）に、列方向の３個のＲＡＭ１５０を選択し、画素データのリードを開始させる。６ライン目の画素データのライト完了時には、１列目の３つのＲＡＭ１５０からのリードが完了する。そのため、すぐにその列のＲＡＭ１５０に７ライン目の画素データをライトすることができる。
【０１３５】
撮像素子６２の７ライン目以降の画素データに対しても同様の制御が行われる。
以上のような制御によれば、３×３個のＲＡＭ１５０のうち、カウント値ＳＴＡＴＥ＝３，０でライトアクセスとリードアクセスが同じタイミングで行われるＲＡＭ１５０ａ，１５０ｂ以外のＲＡＭ１５０は、ライトとリードが異なるタイミングで行われる。そのため、ＲＡＭ１５０ａ，１５０ｂ以外のＲＡＭ１５０は、１ＲＷなどの１ポートＲＡＭを用いることができるため、回路面積を小さくできる。また、前のラインのリードが完了していないにも関わらず、新たなラインのデータのライトが同じアドレス上で発生することも抑制できるので、前のラインの画素データが上書きされてしまうことを防ぐことができる。
【符号の説明】
【０１３６】
１０  画像データ処理装置
１１  並列化部
１２，１２ａ，１２ｂ  記憶部
１３  書き込み制御部
１４  読み出し制御部
１５  入力信号制御部
１６  出力信号制御部
１７  回路部
２０  ライン分割処理部
３０  撮像部
３１  撮像素子
【図１】
2014229227.tif 000003
【図２】
2014229227.tif 000004
【図３】
2014229227.tif 000005
【図４】
2014229227.tif 000006
【図５】
2014229227.tif 000007
【図６】
2014229227.tif 000008
【図７】
2014229227.tif 000009
【図８】
2014229227.tif 000010
【図９】
2014229227.tif 000011
【図１０】
2014229227.tif 000012
【図１１】
2014229227.tif 000013
【図１２】
2014229227.tif 000014
【図１３】
2014229227.tif 000015
【図１４】
2014229227.tif 000016
【図１５】
2014229227.tif 000017
【図１６】
2014229227.tif 000018
【図１７】
2014229227.tif 000019
【図１８】
2014229227.tif 000020
【図１９】
2014229227.tif 000021