(57)【要約】【課題】撮像素子から同時に読み出された複数行のデータを、少ない回路規模で高速に並べ替え可能な画像処理装置およびその制御方法を提供すること。【解決手段】画像処理装置は、Ｍ行Ｎ列の画素からなる領域のｍ行（２≦ｍ＜Ｍ）から同時に読み出されたデータを、第１のメモリにｎ列（２≦ｎ＜Ｎ）分格納する。画像処理装置は、第１のメモリに格納されたｍ行ｎ列の画素分のデータを、ｏ行ｐ列（２≦ｏ＜ｍ，２≦ｐ≦ｎ）の画素分のデータずつ第２のメモリに格納する。さらに、画像処理装置は、第２のメモリから、撮像素子におけるｏ行Ｎ列の画素の並びとなるように、ｏ行ｐ列の画素分のデータずつ第３のメモリに格納する。最後に画像処理装置は、第３のメモリに格納されたデータを１行ずつ出力する。【選択図】図１
2020057922.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子の、Ｍ行Ｎ列の画素からなる領域のｍ行（２≦ｍ＜Ｍ）から同時に読み出されたデータを、第１のメモリにｎ列（２≦ｎ＜Ｎ）分格納する第１の並べ替え制御手段と、
転送制御手段であって、
前記第１のメモリに格納されたｍ行ｎ列の画素分のデータを、ｏ行ｐ列（２≦ｏ＜ｍ，２≦ｐ≦ｎ）の画素分のデータずつ第２のメモリに格納することを繰り返し、前記Ｍ行Ｎ列の画素分のデータを前記第２のメモリに格納し、
前記第２のメモリから、前記撮像素子におけるｏ行Ｎ列の画素の並びとなるように、前記ｏ行ｐ列の画素分のデータずつ第３のメモリに格納することを繰り返し、前記第２のメモリに格納された前記Ｍ行Ｎ列の画素分のデータを前記第３のメモリに転送する、
転送制御手段と、
前記第３のメモリに格納されたデータを１行ずつ出力することにより、データを前記撮像素子の１行Ｎ列の画素の並びで出力する第２の並べ替え制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記第２のメモリがバーストモードを有し、前記ｏおよび前記ｐの値が、前記第２のメモリに設定されたバースト長以下になるように定められることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２のメモリがバーストモードを有し、前記ｏおよび前記ｐの値が、前記第２のメモリに設定されたバースト長に等しくなるように定められることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記ｍが前記ｏの倍数でない場合、
前記第１の並べ替え制御手段は、ｍ  ｍｏｄ  ｏに等しい行数のダミーデータを挿入して前記第１のメモリにｎ列の画素分のデータを格納し、
前記第２の並べ替え制御手段は、前記第３のメモリに格納されたデータのうち、前記ダミーデータを出力しない、
ことを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記ｍが前記ｏの倍数でない場合、前記転送制御手段は、前記ｏの値を途中で変更することを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項６】
前記第１のメモリおよび前記第３のメモリは、割り当てられたサイズを有するメモリ空間であり、
前記撮像素子を有する撮像装置に設定されている撮影モードに応じて、前記Ｍ、前記Ｎ、前記ｍ、前記第１のメモリおよび前記第３のメモリに割り当てるサイズの１つ以上を変更する制御手段をさらに有することを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記第１のメモリおよび前記第３のメモリは、割り当てられたサイズを有するメモリ空間であり、
前記ｏの値に応じて、前記第１のメモリおよび前記第３のメモリに割り当てるサイズを変更する制御手段をさらに有することを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項８】
前記制御手段は、前記第１のメモリおよび前記第３のメモリに割り当てるサイズが最小となるように、前記ｏの値を決定することを特徴とする請求項６または７に記載の画像処理装置。
【請求項９】
前記第１のメモリおよび前記第３のメモリがＳＲＡＭにより構成され、前記第２のメモリがＤＲＡＭにより構成されることを特徴とする請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
撮像素子と、
前記撮像素子から読み出されたデータを処理する請求項１から９のいずれか１項に記載の画像処理装置と、
前記画像処理装置の前記第２の並べ替え制御手段が出力するデータを処理する信号処理回路と、
を有することを特徴とする撮像装置。
【請求項１１】
画像処理装置が実行する画像処理方法であって、
撮像素子の、Ｍ行Ｎ列の画素からなる領域のｍ行（２≦ｍ＜Ｍ）から同時に読み出されたデータを、第１のメモリにｎ列（２≦ｎ＜Ｎ）分格納する取得工程と、
前記第１のメモリに格納されたｍ行ｎ列の画素分のデータを、ｏ行ｐ列（２≦ｏ＜ｍ，２≦ｐ≦ｎ）の画素分のデータずつ第２のメモリに格納することを繰り返し、前記Ｍ行Ｎ列の画素分のデータを前記第２のメモリに格納する格納工程と、
前記第２のメモリから、前記撮像素子におけるｏ行Ｎ列の画素の並びとなるように、前記ｏ行ｐ列の画素分のデータずつ第３のメモリに格納することを繰り返し、前記第２のメモリに格納された前記Ｍ行Ｎ列の画素分のデータを前記第３のメモリに転送する転送工程と、
前記第３のメモリに格納されたデータを１行ずつ出力することにより、データを前記撮像素子の１行Ｎ列の画素の並びで出力する出力工程と、
を有することを特徴とする画像処理方法。
【請求項１２】
コンピュータを、請求項１から９のいずれか１項に記載の画像処理装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置およびその制御方法に関する。
【背景技術】
【０００２】
撮像素子からのデータ読み出しの高速化が常に求められており、様々な方法が提案されている。例えば、複数行のデータを同時に読み出す方法が知られている。しかし、後段の回路が複数行のデータをまとめて処理できない場合、メモリを用いて複数行のデータを後段の回路に合わせて並べ替える必要がある（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−６２７１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１には、並べ替えにＳＲＡＭを用いるが記載されている。しかし、ＳＲＡＭを用いる方法では、同時読み出しする行数に等しい容量のＳＲＡＭが必要であるため、同時読み出しする行の数が増えると、並べ替えのための回路規模が増大する。あるいは、後段の回路における処理レートが低下する。
【０００５】
本発明はこのような従来技術の課題を少なくとも軽減することを目的とする。従って本発明の目的は、撮像素子から同時に読み出された複数行のデータを、少ない回路規模で高速に並べ替え可能な画像処理装置およびその制御方法を提供することである。
【課題を解決するための手段】
【０００６】
上述の目的は、撮像素子の、Ｍ行Ｎ列の画素からなる領域のｍ行（２≦ｍ＜Ｍ）から同時に読み出されたデータを、第１のメモリにｎ列（２≦ｎ＜Ｎ）分格納する第１の並べ替え制御手段と、転送制御手段であって、第１のメモリに格納されたｍ行ｎ列の画素分のデータを、ｏ行ｐ列（２≦ｏ＜ｍ，２≦ｐ≦ｎ）の画素分のデータずつ第２のメモリに格納することを繰り返し、Ｍ行Ｎ列の画素分のデータを第２のメモリに格納し、第２のメモリから、撮像素子におけるｏ行Ｎ列の画素の並びとなるように、ｏ行ｐ列の画素分のデータずつ第３のメモリに格納することを繰り返し、第２のメモリに格納されたＭ行Ｎ列の画素分のデータを第３のメモリに転送する、転送制御手段と、第３のメモリに格納されたデータを１行ずつ出力することにより、データを撮像素子の１行Ｎ列の画素の並びで出力する第２の並べ替え制御手段と、を有することを特徴とする画像処理装置によって達成される。
【発明の効果】
【０００７】
本発明によれば、撮像素子から同時に読み出された複数行のデータを、少ない回路規模で高速に並べ替え可能な画像処理装置およびその制御方法を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態におけるデータ並べ替え動作を説明するための図
【図２】実施形態に係る画像処理装置の一例としてデジタルカメラの機能構成例を示すブロック図
【図３】第１実施形態に係るデータの並べ替え動作を説明するための図
【図４】第１実施形態に係るデータの並べ替え動作を説明するための図
【図５】第１実施形態に係る読み出しアドレス生成方法を説明するための図
【図６】第１実施形態における撮影動作に関するフローチャート
【図７】第１実施形態の変形例に関する図
【図８】第１実施形態における読み出しアドレス生成動作に関するフローチャート
【図９】第１実施形態におけるデータ並べ替え動作に関するフローチャート
【図１０】第２実施形態におけるデータ並べ替え動作を説明するための図
【図１１】第２実施形態における撮影動作に関するフローチャート
【図１２】第３実施形態におけるデータ並べ替え動作を説明するための図
【図１３】第３実施形態における撮影動作に関するフローチャート
【発明を実施するための形態】
【０００９】
●（第１実施形態）
以下、添付図面を参照して本発明をその例示的な実施形態に基づいて詳細に説明する。なお、説明する実施形態は単なる例示であり、本発明の範囲を限定するものではない。例えば、以下では本発明をデジタルカメラに適用した実施形態を説明する。しかし、デジタルカメラは本発明を適用可能な画像処理装置の一例にすぎない。本発明は撮像素子から読み出されたデータを取り扱い可能な任意の電子機器において実施可能である。このような電子機器には、デジタルカメラやデジタルビデオカメラといった撮像装置はもちろん、パーソナルコンピュータ、タブレット端末、携帯電話機、ゲーム機、ドライブレコーダ、ロボット、ドローンなどが含まれるが、これらに限定されない。
【００１０】
図２は、本発明の第１実施形態に係る画像処理装置としてのデジタルカメラ２００の機能構成例を示すブロック図である。
結像光学部２０１はフォーカスレンズを含む複数のレンズ、絞り、レンズや絞りの駆動回路などを有する。結像光学部２０１はデジタルカメラ２００から取り外し可能であってもなくてもよい。
【００１１】
撮像素子２０２は例えばＣＭＯＳイメージセンサであり、光電変換部を備える画素が二次元配置された画素アレイと、制御信号を画素アレイに供給する水平走査回路、垂直走査回路などを有する。撮像素子２０２は、画素アレイから信号を複数行ずつ同時に（並列に）読み出すモードを有する。このモードでは、撮像素子２０２から水平１画素（列）×垂直複数画素（行）ずつデータが読み出される。
【００１２】
Ａ／Ｄ変換回路２０３は、撮像素子２０２から読み出されたアナログ画像信号をデジタル画像データに変換する。なお、Ａ／Ｄ変換回路２０３は撮像素子２０２に含まれていてもよい。Ａ／Ｄ変換回路２０３は、撮像素子２０２から同時に出力される画素データと等しい数だけ設けられている。ここでは複数行同時（並列）に読み出されたデータが直列に出力されるものとし、Ａ／Ｄ変換回路２０３は１つであるものとする。
【００１３】
並べ替え回路２０４は、同時に読み出された複数行の撮像素子データを、１行ずつ読み出した場合と同様の順序に並べ替える。転送制御回路２０５は、並べ替え回路２０４が並べ替えた画像データの、ＤＲＡＭ２０６へ書き込み／読み出しを制御する。転送制御回路２０５は、並べ替え回路２０４の１回のアクセスでＤＲＡＭ２０６へ転送する画像データのバースト長が、制御部２０８から設定されたバースト長以下となるようにデータ転送を制御する。
【００１４】
信号処理回路２０７は画像データに対して様々な画像処理を適用する。信号処理回路２０７が適用する画像処理には、ノイズ低減処理、ホワイトバランス調整処理、色補間処理、ＡＦ評価値および／またはＡＥ評価値の生成処理、被写体領域の検出および／または追尾処理、符号化処理、復号処理などがある。ただし、これらは例示であり、１つ以上が含まれなくてもよく、また他の処理が含まれてもよい。
【００１５】
制御部２０８は例えばＣＰＵなどのプログラマブルプロセッサであり、ＲＯＭ２１１に記憶されたプログラムをシステムメモリ２１２にロードして実行することにより、デジタルカメラ２００の機能を実現する。
【００１６】
表示部２０９は例えばタッチディスプレイであり、撮影で得られた画像、デジタルカメラ２００の情報、グラフィカルユーザインタフェース（ＧＵＩ）などを表示する表示装置である。なお、本実施形態のデジタルカメラ２００では、撮影スタンバイ時や動画撮影中に、撮影した動画を表示部２０９に継続的に表示することにより、表示部２０９を電子ビューファインダ（ＥＶＦ）として機能させる。
【００１７】
記録部２１０は、例えばメモリカードである記録媒体へデータを書き込んだり、記録媒体に記録されているデータを読み出したりする。
【００１８】
ＲＯＭ２１１は制御部２０８を構成するプロセッサが実行可能なプログラム、各種の設定値、デジタルカメラ２００の固有情報、ＧＵＩデータなどを記憶する。ＲＯＭ２１１は書き換え可能であってよい。
システムメモリ２１２はプログラムを実行するために用いられたり、表示部２０９用のビデオメモリとして用いられたり、バッファメモリなどとして用いられたりする。
【００１９】
操作部２１３は、ユーザがデジタルカメラ２００に指示を入力するためのスイッチ、ボタン、キー、タッチパネルなどの入力デバイス群の総称である。操作部２１３を通じた入力はバス２２０を通じて制御部２０８が検知し、制御部２０８は検知した入力に応じた動作を実現するために必要な制御を実行する。
バス２２０は、上述した各ブロック２０１〜２０５、２０７〜２１３を相互に通信可能に接続する。
【００２０】
図１は、図２のうち、撮像素子から同時に読み出した複数行データを、１行ずつ読み出した場合と同じ順序に並べ替えるための構成を説明する図である。
ここでは、撮像素子２０２が有する画素アレイを構成する画素のうち、Ｍ行Ｎ列の画素からなる領域のｍ行（２≦ｍ＜Ｍ）から同時にデータを読み出すものとする。具体的には、水平４０００画素（列）、垂直２０００画素（行）からなる領域から、１００行ずつ同時に読み出すものとする。
【００２１】
１１０は、撮像素子２０２から出力されるデータの並びを模式的に示している。１１０に示すように、１００行同時に読み出す場合、垂直方向に１００画素読み出すごとに水平方向に１画素ずつ読み出し位置が進んでいく。１１１は、並べ替え回路２０４へ入力されるデータの並びを模式的に示しており、１１０で示したのと同じ順序である。ここでは、同時に読み出された１００行分の画素データが、上の行のデータから順に１つずつ直列に出力されるものとする。
【００２２】
並べ替え回路２０４は、第１並べ替え制御回路１００および第２並べ替え制御回路１０２を有する。また、第１並べ替え制御回路１００は第１ＳＲＡＭ１０１を有する。また、第２並べ替え制御回路１０２は第２ＳＲＡＭ１０３（第３のメモリ）を有する。第１ＳＲＡＭ１０１（第１のメモリ）は、ｍ行ｎ列（２≦ｎ＜Ｎ）の画素分のデータを格納する容量を有する。つまり、第１ＳＲＡＭ１０１は、撮像素子２０２のＭ行Ｎ列の画素からなる領域のｍ行（２≦ｍ＜Ｍ）から同時に読み出されたデータを、ｎ列（２≦ｎ＜Ｎ）分格納する。ここでは、第１ＳＲＡＭ１０１が１００行２５０列の画素分のデータを格納する容量を有するものとする。また、第２ＳＲＡＭ１０３は、ｏ行Ｍ列（２≦ｏ＜ｍ）の画素分のデータを格納する容量を有する。
【００２３】
第１並べ替え制御回路１００は、第１ＳＲＡＭ１０１に格納されたｍ行ｎ列の画素分のデータを、ｏ行ｐ列（２≦ｏ＜ｍ，２≦ｐ≦ｎ）の画素分のデータずつ、転送制御回路２０５に出力する。また、第２並べ替え制御回路１０２は、第２ＳＲＡＭ１０２に格納されたｏ行Ｍ列の画素分のデータを１行ずつ出力する。
【００２４】
ＤＲＡＭ２０６（第２のメモリ）は動作モードの１つとしてバーストモードを有する。バーストモードは、１回の命令で、連続する複数のアドレスに対するアクセス（データの書き込みまたは読み出し）を実行するモードである。そして、バーストモードにおいて１回の命令で書き込みもしくは読み出しするデータ量がバースト長であり、ＤＲＡＭ２０６には複数のバースト長が設定可能である。
【００２５】
本実施形態において転送制御回路２０５は、１回のアクセスでＤＲＡＭ２０６へ転送するデータ量が制御部２０８から設定されたバースト長以下となるようにデータ転送を制御する。本実施形態では、制御部２０８からバースト長として１０００画素分のデータ量（Ａ／Ｄ変換回路の分解能（ビット数）に応じて決まる）が設定されているものとする。
【００２６】
転送制御回路２０５は、バースト長が１０００画素分のデータ量以下となるようにＤＲＡＭ２０６にアクセス（データの書き込みおよび読み出し）する。一方で、バースト長が短いとＤＲＡＭアクセス効率が低下するため、１０００画素分のデータ量に近いバースト長でＤＲＡＭアクセスすることが望ましい。そのため、第１並べ替え制御回路１００は、ｏ行ｐ列のｏおよびｐの積がバースト長以下になる様に決定する。ここでは、バースト長が１０００画素であるため、第１並べ替え制御回路１００は、例えばｏを４、ｐをｎに等しい２５０に決定する。従って、本実施形態において第１並べ替え制御回路１００は、第１ＳＲＡＭ１０１に格納された１００行２５０列の画素分のデータを、４行２５０列の画素分のデータずつ、転送制御回路２０５に出力する。
【００２７】
１１２は、第１並べ替え制御回路１００の動作を模式的に示しており、第１ＳＲＡＭ１０１に格納された１００行２５０列の画素分のデータを、４行２５０列の画素分のデータを単位として、出力データ１から順に出力する。
【００２８】
出力データ２５を出力すると、第１並べ替え制御回路１００は、次に入力される２５０列（２５１画素目〜５００画素目）×１００行の画素分のデータを２５０列×４行の画素分のデータ単位で出力する。以降同様にして、４０００列×１００行分のデータを並べ替えて出力したら、次に入力される４０００列×１００行（１０１行目〜２００行目）のデータについて同様に処理する。このようにして、４０００列×２０００行のデータを並べ替える。
【００２９】
第１並べ替え制御回路１００が、バースト長に等しい１０００画素単位でデータを出力するため、転送制御回路２０５は効率よくＤＲＡＭ２０６にデータを書き込みできる。１１３は、転送制御回路２０５の出力データの並びを模式的に示し、１１２で示した第１並べ替え制御回路１００の出力データの並びと同じである。
【００３０】
転送制御回路２０５は、出力データ１から順に、バースト長に等しい１０００画素分のデータを単位としてＤＲＡＭ２０６へ書き込むため、ＤＲＡＭ２０６に効率よくデータを書き込むことができる。１１４は、ＤＲＡＭ２０６の連続したアドレスに書き込まれるデータの並びを撮像素子２０２の画素の並びを用いて示しており、１１３に示した転送制御回路２０５の出力データの並びと同じである。
【００３１】
１１５は、転送制御回路２０５が、ＤＲＡＭ２０６から読み出すデータの並びを模式的に示す。転送制御回路２０５は、入力データ１から順に、撮像素子２０２における画素の並びでｏ行ｐ列（４行×２５０列）の画素分ずつＤＲＡＭ２０６からデータを読み出す。ここで、転送制御回路２０５は、撮像素子２０２におけるｏ行Ｎ列（４行×４０００列）の画素の並びとなるように、ｏ行ｐ列の画素分ずつデータを読み出す。データの書き込み時と同様、バースト長に等しい１０００画素分ずつデータを読み出すことにより、ＤＲＡＭ２０６から効率よくデータを読み出すことができる。
【００３２】
転送制御回路２０５は、順次ＤＲＡＭ２０６からデータを読み出し、４０００画素×１００行分のデータを読み出したら、次の４０００画素×１００行分（１０１行目〜２００行目）のデータを読み出す。転送制御回路２０５は、同様にして４０００画素×２０００行分のデータを読み出す。
【００３３】
１１６は、転送制御回路２０５から第２並べ替え制御回路１０２の第２ＳＲＡＭ１０３に入力されるデータの並びを示す。第２並べ替え制御回路１０２に入力されるデータの並びは、転送制御回路２０５がＤＲＡＭ２０６から読み出すデータの並びと同じである。
【００３４】
１１７は、第２並べ替え制御回路１０２の出力データの並びを示す。第２並べ替え制御回路１０２は、４０００画素×４行分の記憶容量を有する第２ＳＲＡＭ１０３を用いて、４０００画素×４行の単位で入力されたデータを、４０００画素×１行の単位に並べ替える。つまり、第２並べ替え制御回路１０２は、第２ＳＲＡＭ１０３からデータを１行ずつ出力することで、データを撮像素子２０２の１行Ｎ列の画素の並びで出力する。
【００３５】
１１８は、並べ替え回路２０４の出力データの並びを示し、第２並べ替え制御回路１０２の出力データの並びと同じである。図１に示す様に、第１ＳＲＡＭ１０１、ＤＲＡＭ２０６、第２ＳＲＡＭ１０３を用い、撮像素子２０２の複数行から同時に読み出されたデータを、１行ずつ読み出した場合と同じ順序に並べ替えることができる。
【００３６】
ＳＲＡＭのみを用いて同様の並べ替えを実現するには、４０００画素×１００行＝４００，０００画素分のデータを記憶可能な容量のＳＲＡＭが必要となる。一方、本実施形態の構成の場合、第１ＳＲＡＭ１０１の容量は２５０画素×１００行＝２５，０００画素分、第２ＳＲＡＭ１０３の容量は４０００画素×４行＝１６，０００画素分でよいため、全体で４１，０００画素分の記憶容量ですむ。
【００３７】
また、ＤＲＡＭのみを用いて同様の並べ替えを実現する場合、ＤＲＡＭの書き込みおよび読み出しアドレスが連続しないため、バースト長に対して１回のアクセスで読み書きするデータ量が極端に少なく、データの書き込みおよび読み出し効率が大幅に低下する。これに対し、本実施形態の構成では、ＤＲＡＭへのデータの書き込みおよび読み出しをＤＲＡＭのバースト長に等しいデータ量ずつ行うため、データの書き込みおよび読み出し効率がよい。
【００３８】
図３を用いて、第１並べ替え制御回路１００によるデータ並べ替え動作を説明する。３０１は撮像素子２０２における画素（データ）の並びを示しており、水平４０００画素（列）×垂直２０００画素（行）が行列状に配置されている。３０２は、撮像素子２０２から読み出されるデータの並びを示し、ここでは１００行同時に読み出されるものとする。したがって、撮像素子からＡ／Ｄ変換回路２０３には、１００画素分のデータが並列に入力される。
【００３９】
３０３は、第１ＳＲＡＭ１０１へ入力されるデータの並びを示し、撮像素子２０２から読み出されるデータの並びと同じである。第１ＳＲＡＭ１０１は、水平２５０画素（列）×垂直１００画素（行）分のデータを格納する容量を有する。第１並べ替え制御回路１００は、第１ＳＲＡＭ１０１に格納された１００行×２５０列の画素分のデータを、４行ずつ、垂直方向の並び順に水平２５０画素分（すなわち、４行×２５０列の画素ブロックを単位として）出力する。これにより、ＤＲＡＭ２０６には、撮像素子２０２から読み出された並びと異なる並びでデータが書き込まれる。このように、第１並べ替え制御回路１００は、第１ＳＲＡＭ１０１を用いてデータを並べ替える。
【００４０】
３０４は、第１ＳＲＡＭ１０１の出力データの並びを示している。第１並べ替え制御回路１００は、第１ＳＲＡＭ１０１から、４行×２５０列の画素を単位として、順次データを出力する。図において矢印で示すように、まず第１〜４行目（Ｈ１−Ｖ１〜Ｈ２５０−Ｖ４）のデータを、Ｈ１−Ｖ１、Ｈ１−Ｖ２、Ｈ１−Ｖ３、Ｈ１−Ｖ４、Ｈ２−Ｖ１、...のように、垂直方向に４画素出力し、水平方向に１画素移動するという順序で出力する。次に、第１並べ替え制御回路１００は、第５〜８行目について同様にデータを出力する。その後、第９７〜１００行のデータを出力すると、第１並べ替え制御回路１００は水平方向の次の２５０画素（第２５１〜５００画素）について、４行ずつ同様にしてデータを出力する。そして、第３７５１〜４０００画素の第９７〜１００行のデータを出力すると、第１並べ替え制御回路１００は、第１０１〜１０４行目の第１〜２５０画素のデータを出力する。このような順序で、第１並べ替え制御回路１００は撮像素子２０２から読み出された水平４０００画素（列）×垂直２０００画素（行）分のデータを出力する。
【００４１】
次に、図４を用いて、転送制御回路２０５および第２並べ替え制御回路１０２によるデータ並べ替え動作を説明する。４０１は、転送制御回路２０５がＤＲＡＭ２０６に書き込んだデータの並びを示している。上述した様に、転送制御回路２０５は、第１並べ替え制御回路１００の出力データを同じ並びでＤＲＡＭ２０６に書き込む。したがって、４０１に示したデータの並びは、図３の３０４に示したデータの並びと等しい。
【００４２】
４０２は、転送制御回路２０５がＤＲＡＭ２０６から読み出すデータの並びを示している。転送制御回路２０５は、ＤＲＡＭ２０６から、４行×２５０列の画素分を単位としてデータを読み出す。ただし、書き込み時とは異なり、水平方向に４０００画素分を読み出してから、次の４行のデータを読み出す。
【００４３】
すなわち、転送制御回路２０５は、まず（Ｈ１−Ｖ１〜Ｈ２５０−Ｖ４）のデータをＤＲＡＭ２０６から読み出す。ここで、ＤＲＡＭ２０６の次に連続したアドレス領域に書き込まれているのは（Ｈ１−Ｖ５〜Ｈ２５０−Ｖ８）のデータである。しかし、転送制御回路２０５が次に読み出すのは同じ行（Ｖ１〜Ｖ４）の第２５１〜５００画素（Ｈ２５１−Ｖ１〜Ｈ５００−Ｖ４）のデータである。そのため、転送制御回路２０５は、読み出しアドレスをジャンプさせてデータを読み出す。
【００４４】
本実施形態では、転送制御回路２０５がＤＲＡＭ２０６からデータを読み出す際のアドレスを制御するために、制御部２０８が予め転送制御回路２０５に、オフセットデータ転送量１〜３と、オフセット１〜３とをそれぞれ設定する。そして、転送制御回路２０５は、オフセットデータ転送量ｘ（ｘ＝１，２，３）として設定された量のデータを読み出すと、オフセットｘだけ読み出しアドレスをジャンプさせて読み出しを実行する。
【００４５】
本実施形態では
・オフセットデータ転送量１：４行×２５０列の画素分のデータ量
・オフセットデータ転送量２：４行×４０００列の画素分のデータ量
・オフセットデータ転送量３：１００行×４０００列の画素分のデータ量
がそれぞれ設定される。対応するオフセット１〜３は、図４の４０２に矢印で示す順序で４行×２５０列の画素分のデータ量を読み出すためのアドレスジャンプ量に相当する。
【００４６】
したがって、転送制御回路２０５は、オフセットデータ転送量１に相当する４行×２５０列の画素分のデータ量を読み出すと、次に読み出すＤＲＡＭアドレスをオフセット１だけジャンプさせる。以降同様に、４行×２５０列の画素分のデータを読み出すごとに、読み出しアドレスをオフセット１だけジャンプさせて、４行×２５０列の画素分のデータを読み出す。
【００４７】
このようにして、オフセット転送量２に相当する水平４０００×垂直４画素分のデータを読み出すと、転送制御回路２０５は、次に読み出すＤＲＡＭアドレスをオフセット２だけジャンプさせる。そして、転送制御回路２０５は、次の４行分のデータについて、オフセット転送量１とオフセット１を用いた読み出しを行う。以降同様に、水平４０００×垂直４画素分のデータを読み出すごとに、読み出しアドレスをオフセット２だけジャンプさせ、オフセット転送量１とオフセット１を用いた読み出しを行う。
【００４８】
オフセット転送量１、２およびオフセット１、２を用いた読み出しを繰り返し、オフセット転送量３に相当する４０００画素×１００行分のデータ量を読み出すと、転送制御回路２０５は、次に読み出すＤＲＡＭアドレスをオフセット３だけジャンプさせる。そして、転送制御回路２０５は、次の１００行分のデータについて、オフセット転送量１、２とオフセット１、２を用いた読み出しを行う。以降同様に、水平４０００×垂直１００画素分のデータを読み出すごとに、読み出しアドレスをオフセット３だけジャンプさせ、オフセット転送量１、２とオフセット１、２を用いた読み出しを行う。
【００４９】
このように、転送制御回路２０５は、オフセットデータ転送量１〜３とオフセット１〜３とを用いたデータ読み出しを繰り返し、水平４０００×垂直２０００画素分のデータを読み出す。
【００５０】
なお、転送制御回路２０５が読み出したデータは、第２ＳＲＡＭ１０３に順次書き込まれる。上述の通り、第２ＳＲＡＭ１０３は４行×４０００列の画素分のデータを格納する容量を有している。転送制御回路２０５は、オフセットデータ転送量１とオフセット１とを用いた読み出しにより、４行×４０００列の並びで第２ＳＲＡＭ１０３にデータを書き込む。
【００５１】
従って、４０４に示す様に、第２ＳＲＡＭ１０３から１行（水平４０００画素×垂直１画素）分ずつデータを出力することにより、撮像素子２０２から１行ずつ読み出した場合と同じ並びでデータを出力することができる。
【００５２】
次に、上述したオフセットデータ転送量１〜３とオフセット１〜３とを用いた読み出しを実現する、転送制御回路２０５のアドレス生成動作について説明する。図５は、転送制御回路２０５が有するアドレス生成部の機能構成例を示すブロック図である。
【００５３】
アドレス生成部は、転送量カウンタ５０１、オフセット値算出器５０２、アドレスカウンタ５０３を有する。これらはいずれも制御部２０８から設定可能なパラメータを保持している。具体的には、転送量カウンタ５０１に設定可能なパラメータは、総データ転送量、バースト長、オフセットデータ転送量１〜３である。また、オフセット値算出器５０２に設定可能なパラメータは、オフセット１〜３である。また、アドレスカウンタ５０３に設定可能なパラメータは、スタートアドレスである。これらのパラメータは、撮像素子２０２からデータの読み出しを開始する前に制御部２０８から設定される。
【００５４】
転送制御回路２０５は、ＤＲＡＭ２０６からのデータ読み出しを制御部２０８から指示されると、上述した読み出し動作を開始する。転送量カウンタ５０１はＤＲＡＭ２０６から読み出されたデータ量をカウントする。例えば転送量カウンタ５０１には１回の読み出しごとにクロックＣＬＫが供給され、転送量カウンタ５０１は、クロックの数×バースト長を、ＤＲＡＭ２０６から読み出されたデータ量（データ転送量）としてカウントする。
【００５５】
ＤＲＡＭ２０６からは、１回の読み出し動作でバースト長に等しい量のデータが読み出されるため、ＤＲＡＭ２０６に与えるアドレスもバースト長に応じた単位で増加する。ここでは、制御部２０８から設定されたバースト長がアドレスの増加単位に等しいものとする。したがって、転送量カウンタは、バースト長をデータ転送量としてオフセット値算出器５０２に出力する。
【００５６】
転送量カウンタ５０１は、カウントしているデータ転送量がオフセットデータ転送量１に到達したら、オフセットタイミング１をオフセット値算出器５０２に報知する。同様に、転送量カウンタ５０１は、カウントしているデータ転送量がオフセットデータ転送量２、およびオフセットデータ転送量３に到達したら、オフセットタイミング２、およびオフセットタイミング３をオフセット値算出器５０２に報知する。また、転送量カウンタ５０１は、カウントしているデータ転送量が総データ転送量に到達したら、データ転送完了を制御部２０８に通知する。
【００５７】
オフセット値算出器５０２は、転送量カウンタ５０１からオフセットタイミング１〜３の報知を伴わずにデータ転送量を受信した場合、アドレスカウンタ５０３にアドレス加算値として、転送量カウンタ５０１から受信したデータ転送量を出力する。
【００５８】
一方、オフセット値算出器５０２は、転送量カウンタ５０１からオフセットタイミング１〜３のいずれか報知を伴ってデータ転送量を受信した場合、報知されたタイミングに対応するオフセットをデータ転送量に加算した値をアドレス加算値として出力する。
【００５９】
アドレスカウンタ５０３は、設定されているスタートアドレスに、オフセット値算出器５０２から入力されるアドレス加算値を累積加算して、読み出しアドレスとして出力する。
【００６０】
図８は、このような読み出しアドレスの生成方法をフローチャートで示したものである。Ｓ１２０１で転送制御回路２０５は読み出しデータ量がオフセット転送量１の倍数に達したか否かを判定し、達したと判定されればＳ２０３に処理を進め、判定されなければＳ１２０１を繰り返し実行する。
【００６１】
Ｓ１２０３で転送制御回路２０５は読み出しデータ量がオフセット転送量２の倍数に達したか否かを判定し、達したと判定されればＳ１２０７に、判定されなければＳ１２０５に処理を進める。
Ｓ１２０５で転送制御回路２０５は、読み出しアドレスをオフセット１だけジャンプ（増加）させて、処理をＳ１２０１に戻す。
【００６２】
Ｓ１２０７で転送制御回路２０５は読み出しデータ量がオフセット転送量３の倍数に達したか否かを判定し、達したと判定されればＳ１２１１に、判定されなければＳ１２０９に処理を進める。
Ｓ１２０９で転送制御回路２０５は、読み出しアドレスをオフセット２だけジャンプ（増加）させて、処理をＳ１２０１に戻す。
【００６３】
Ｓ１２１１で転送制御回路２０５は読み出しデータ量が総データ転送量に達したか否かを判定し、達したと判定されれば処理を終了し、判定されなければＳ１２１３に処理を進める。
Ｓ１２１３で転送制御回路２０５は、読み出しアドレスをオフセット３だけジャンプ（増加）させて、処理をＳ１２０１に戻す。
【００６４】
図６は、本実施形態におけるデジタルカメラ２００の撮影時の動作に関するフローチャートである。
Ｓ６０１で制御部２０８は、例えば操作部２１３を通じてユーザーから撮影開始指示を受信したか否かを判定する。撮影開始指示は例えばシャッターボタンの全押し操作であってよい。撮影開始指示を受信したと判定された場合、制御部２０８は処理をＳ６０２に進め、撮影開始指示を受信したと判定されない場合、制御部２０８はＳ６０１の処理を繰り返し実行する。なお、撮影開始指示の受信を待機している状態で、制御部２０８は、例えば表示部２０９をＥＶＦとして機能させるための制御を実行する。
【００６５】
Ｓ６０２で制御部２０８は、転送制御回路２０５に、ＤＲＡＭスタートアドレス、総データ転送量、バースト長、オフセットデータ転送量１〜３、オフセット１〜３を設定する。これらの値は、例えば予めＲＯＭ２１１に記憶しておくことができる。
【００６６】
Ｓ６０３で制御部２０８は、撮像素子２０２、並べ替え回路２０４、転送制御回路２０５、信号処理回路２０７に撮影処理の開始を指示する。これにより、撮像素子２０２の露光動作が実行され、撮像素子２０２から複数行同時にデータが読み出される。そして、並べ替え制御回路２０４および転送制御回路２０５によって上述した並べ替え処理が実行され、撮像素子２０２から１行ずつ読み出した場合と同じ並びでデータが信号処理回路２０７に出力される。信号処理回路２０７は、画像データに対して予め定められた画像処理を適用し、記録用の画像データファイルと、表示用の画像データを生成する。制御部２０８は、画像データファイルを記録部２１０を通じて記録するとともに、表示用の画像データを表示部２０９に表示させる。
【００６７】
Ｓ６０４で制御部２０８は、撮影処理が完了したか否かを判定し、完了したと判定されれば処理をＳ６０５に進め、判定されなければ撮影処理の完了を待機する。
【００６８】
Ｓ６０５で制御部２０８は、撮像素子２０２、並べ替え回路２０４、転送制御回路２０５、信号処理回路２０７に撮像処理の終了を指示し、処理を終了する。
【００６９】
図９は、Ｓ６０３において並べ替え回路２０４、転送制御回路２０５、およびＤＲＡＭ２０６によって実現される並べ替え処理をフローチャートで示したものである。
Ｓ１３０１で並べ替え回路２０４は、撮像素子２０２から複数行同時に読み出され、Ａ／Ｄ変換回路２０３が出力するデータの取得を開始する。
【００７０】
Ｓ１３０３で並べ替え回路２０４の第１並べ替え制御回路１００は、取得したデータを第１ＳＲＡＭ１０１に、図３の３０３に示した並びで記録する。そして、転送制御回路２０５は、第１ＳＲＡＭ１０１から図３の３０４で示した並びで、第１の単位（ここでは４行×２５０列の画素分）ずつＤＲＡＭ２０６に書き込む。これにより、第１の単位での並べ替えが行われる。
【００７１】
Ｓ１３０５で転送制御回路２０５は、図５および図８を用いて説明したアドレス制御を行い、ＤＲＡＭ２０６から、第１の単位ごとに、不連続なアドレスからデータを読み出す。これにより図４の４０２に示した並びでデータが読み出され、データが並び替えられる。転送制御回路２０５は、読み出したデータを並べ替え回路２０４の第２並べ替え制御回路１０２が有する第２ＳＲＡＭ１０３に順次書き込む。これにより、第２ＳＲＡＭ１０３には、図４の４０４に示す並びでデータが書き込まれる。
【００７２】
Ｓ１３０７で第２並べ替え制御回路１０２は、第２ＳＲＡＭ１０３の先頭アドレスから順次データを読み出して出力する。これにより、撮像素子２０２から１行ずつ読み出した場合のデータの並びと等しい並びのデータが、並べ替え回路２０４から出力される。
【００７３】
Ｓ１３０９で並べ替え回路２０４は、撮像素子２０２から読み出された全てのデータについて出力を完了したかどうか判定し、出力が完了したと判定されれば処理を終了し、判定されなければＳ１３０１からＳ１３０７の処理を繰り返し実行する。
【００７４】
（変形例）
なお、ここでは、撮像素子２０２の水平４０００画素（列）×垂直２０００画素（行）の範囲から、垂直１００画素（行）を同時に読み出し、ＤＲＡＭ２０６への書き込みおよび読み出しを２５０列×４行の画素ブロック単位で行う例を説明した。しかし、読み出し範囲、同時に読み出す行数、ＤＲＡＭ２０６の書き込みおよび読み出し単位は他の値であってもよい。
【００７５】
また、第１ＳＲＡＭ１０１と第２ＳＲＡＭ１０３は、同一メモリの異なるメモリ空間であってもよい。また、ユーザーから設定された静止画・動画・ライブビュー等の撮影モードによって、制御部２０８が、撮像素子２０２からの読み出し範囲、同時に読み出す行数、第１ＳＲＡＭ１０１と第２ＳＲＡＭ１０３として割り当てるメモリ空間のサイズを変更してもよい。このとき、第１ＳＲＡＭ１０１と第２ＳＲＡＭ１０３の必要メモリサイズが最小になるように、制御部２０８が第１ＳＲＡＭ１０１で並べ替える行数の単位を変更してもよい。撮像素子２０２から読み出す範囲の水平画素数および同時に読み出す行数に応じて、必要メモリサイズが最小になるように第１ＳＲＡＭ１０１と第２ＳＲＡＭ１０３のサイズ割り当てを変更する例を図７に示す。
【００７６】
図７（ａ）は、先に説明した、水平４０００画素（列）の範囲を１００行同時に読み出す場合の必要メモリサイズを説明する図である。１行ずつ読み出した場合と同じ並びへの並べ替えを仮にＳＲＡＭのみを用いて実行する場合、必要なＳＲＡＭのサイズ（記憶容量）は、４０００画素×１００行＝４０００００画素分に相当する。一方、第１ＳＲＡＭ１０１で４行単位で並べ替える場合に必要となるＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が２５０画素×１００行＝２５０００画素分、第２ＳＲＡＭ１０３が４０００画素×４行＝１６０００画素分の計４１０００画素分である。上述の通り、第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするために、水平２５０画素を単位としている。
【００７７】
ここで、第１ＳＲＡＭ１０１で８行単位で並べ替えを行うようにした場合、必要なＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が１２５画素×１００行＝１２５００画素分、第２ＳＲＡＭ１０３が４０００画素×８行＝３２０００画素分の計４４５００画素分である。ここでも、第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするため、水平１２５画素を単位としている。
【００７８】
また、第１ＳＲＡＭ１０１で２行単位で並べ替えを行うようにした場合、必要なＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が５００画素×１００行＝５００００画素分、第２ＳＲＡＭ１０３が４０００画素×２行＝８０００画素分の計５８０００画素分である。ここでも、第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするため、水平５００画素を単位としている。
【００７９】
このように、第１ＳＲＡＭ１０１において、水平４０００画素の範囲を１００行同時に読み出す場合、８行または２行単位で並べ替えるよりも、４行単位で並べ替える方が、必要なＳＲＡＭの総サイズを小さくできる。よって、撮像素子２０２から水平サイズが４０００画素の範囲を１００行同時に読み出す撮影モードが設定された場合、制御部２０８は、第１ＳＲＡＭ１０１で４行単位で並べ替えるように第１ＳＲＡＭ１０１と第２ＳＲＡＭ１０３のサイズを割り当てればよい。
【００８０】
図７（ｂ）は、水平１６０００画素の範囲を１００行同時に読み出す場合の必要メモリサイズを説明する図である。１行ずつ読み出した場合と同じ並びへの並べ替えを仮にＳＲＡＭのみを用いて実行する場合、必要なＳＲＡＭのサイズ（記憶容量）は、１６０００画素×１００行＝１６０００００画素分に相当する。一方、第１ＳＲＡＭ１０１で４行単位で並べ替える場合に必要となるＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が２５０画素×１００行＝２５０００画素分、第２ＳＲＡＭ１０３が１６０００画素×４行＝６４０００画素分の計８９０００画素分である。第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするために、水平２５０画素を単位としている。
【００８１】
第１ＳＲＡＭ１０１で８行単位で並べ替えを行うようにした場合、必要なＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が１２５画素×１００行＝１２５００画素分、第２ＳＲＡＭ１０３が１６０００画素×８行＝１２８０００画素分の計１４０５００画素分である。第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするため、水平１２５画素を単位としている。
【００８２】
また、第１ＳＲＡＭ１０１で２行単位で並べ替えを行うようにした場合、必要なＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が５００画素×１００行＝５００００画素分、第２ＳＲＡＭ１０３が１６０００画素×２行＝３２０００画素分の計８２０００画素分である。ここでも、第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするため、水平５００画素を単位としている。
【００８３】
このように、水平１６０００画素の範囲を１００行同時に読み出す場合、第１ＳＲＡＭ１０１において、４行または８行単位で並べ替えるよりも、２行単位で並べ替える方が、必要なＳＲＡＭの総サイズを小さくできる。よって、撮像素子２０２から水平サイズが１６０００画素の範囲を１００行同時に読み出す撮影モードが設定された場合、制御部２０８は、第１ＳＲＡＭ１０１で２行単位で並べ替えるように第１ＳＲＡＭ１０１と第２ＳＲＡＭ１０３のサイズを割り当てればよい。
【００８４】
図７（ｃ）は、水平４０００画素の範囲を２００行同時に読み出す場合の必要メモリサイズを説明する図である。１行ずつ読み出した場合と同じ並びへの並べ替えを仮にＳＲＡＭのみを用いて実行する場合、必要なＳＲＡＭのサイズ（記憶容量）は、４０００画素×２００行＝８０００００画素分に相当する。一方、第１ＳＲＡＭ１０１で４行単位で並べ替える場合に必要となるＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が２５０画素×２００行＝５００００画素分、第２ＳＲＡＭ１０３が４０００画素×４行＝１６０００画素分の計６６０００画素分である。第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするために、水平２５０画素を単位としている。
【００８５】
第１ＳＲＡＭ１０１で８行単位で並べ替えを行うようにした場合、必要なＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が１２５画素×２００行＝２５０００画素分、第２ＳＲＡＭ１０３が４０００画素×８行＝３２０００画素分の計５７０００画素分である。第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするため、水平１２５画素を単位としている。
【００８６】
また、第１ＳＲＡＭ１０１で２行単位で並べ替えを行うようにした場合、必要なＳＲＡＭのサイズは、第１ＳＲＡＭ１０１が５００画素×２００行＝１０００００画素分、第２ＳＲＡＭ１０３が４０００画素×２行＝８０００画素分の計１０８０００画素分である。ここでも、第１ＳＲＡＭ１０１での並べ替えは、ＤＲＡＭ２０６のバースト長に等しいデータ量とするため、水平５００画素を単位としている。
【００８７】
このように、水平４０００画素の範囲を２００行同時に読み出す場合、第１ＳＲＡＭ１０１において、２行または４行単位で並べ替えるよりも、８行単位で並べ替える方が、必要なＳＲＡＭの総サイズを小さくできる。よって、撮像素子２０２から水平サイズが４０００画素の範囲を２００行同時に読み出す撮影モードが設定された場合、制御部２０８は、第１ＳＲＡＭ１０１で８行単位で並べ替えるように第１ＳＲＡＭ１０１と第２ＳＲＡＭ１０３のサイズを割り当てればよい。
【００８８】
なお、本実施形態では、ＤＲＡＭ２０６のバースト長を１０００画素分のデータ量とした。しかし、これは単なる１例であり、ＤＲＡＭ２０６アクセス効率が極端に低下するようなバースト長でなければ、他のバースト長でもよい。
【００８９】
また、本実施形態では、第１ＳＲＡＭ１０１および第２ＳＲＡＭ１０３を並べ替え回路２０４が有する構成としたが、撮像素子２０２や転送制御回路２０５など、他の機能ブロックが有する構成でもよい。
【００９０】
また、本実施形態の転送制御回路２０５は、１つの書き込みポート、１つの読み出しポートについて、１つのアドレス制御部でアドレスジャンプ制御しながらＤＲＡＭアクセスする構成であった。しかし、複数のポートがそれぞれアドレス制御部を持ち、個別にアドレス制御しながらＤＲＡＭアクセスしてもよい。例えば、同時に読み出した１００行データを４行単位で並べ替えた場合に、それぞれ２５（＝１００行／４行）の異なるアドレス制御部、書き込みポート、読み出しポートを用いて個別にＤＲＡＭ２０６にアクセスしてもよい。また、アドレス制御部の数と、書き込みポートおよび読み出しポートの数とは同じでなくてもよい。
【００９１】
また、本実施形態では、制御部２０８が設定するバースト長を、第１ＳＲＡＭ１０１および第２ＳＲＡＭ１０３と転送制御回路２０５との間のデータバス幅で規定される値で設定したが、他のバス幅で規定される値で設定してもよい。例えば、転送制御回路２０５とＤＲＡＭ２０６との間のデータバス幅で規定される値でバースト長を設定してもよい。
【００９２】
また、本実施形態では、制御部２０８が設定するバースト長を、転送制御回路２０５がＤＲＡＭ２０６の１回のアクセスで転送するデータのバースト長と等しい値としたが、他の値でもよい。例えば、制御部２０８が設定するバースト長を、ＤＲＡＭ２０６へアクセス可能な最大バースト長と等しい値としてもよい。
【００９３】
本実施形態によれば、ＳＲＡＭとＤＲＡＭとを組み合わせて用いることにより、回路規模の増大および読み出しレートの低下を抑制しつつ、撮像素子の複数行から同時に読み出されたデータを、１行ずつ読み出した場合と同じ並びに並べ替えることができる。
【００９４】
●（第２実施形態）
次に、本発明の第２実施形態を説明する。本実施形態では、第１実施形態で説明した構成において、撮像素子２０２から同時に読み出される行数が、第１ＳＲＡＭで並べ替える第１の単位で行数で割り切れない場合（すなわち、ｍがｏの倍数でない場合）の動作に関する。
【００９５】
ここでは一例として、撮像素子２０２から９８行ずつ同時に読み出され、第１ＳＲＡＭでは第１実施形態と同様に４行単位で並べ替える場合（ｍ＝９８、ｏ＝４の場合）を説明する。
【００９６】
図１０は、撮像素子２０２から同時に読み出された９８行のデータを、１行ずつ読み出した場合と同じ順序に並べ替えるための本実施形態に係る構成を模式的に示す図である。転送制御回路２０５およびＤＲＡＭ２０６の構成は第１実施形態と同じであるため、説明を省略する。
【００９７】
並べ替え回路８０４は、第１並べ替え制御回路８００を有しており、撮像素子２０２から９８行同時に読み出されてＡ／Ｄ変換されたデータを４行単位に並べ替えて転送制御回路２０５へ出力する。ここで、９８は４で割り切れないため、本実施形態では、第１並び替え制御回路８００が有するダミー画素挿入部８０４が、第１ＳＲＡＭ８０１に書き込まれる行数を４の倍数となるようにダミー画素からなる行（ダミー行）を挿入する。
【００９８】
挿入するダミー行の数は、ｍ  ｍｏｄ  ｏ（ｍをｏで割った際の余り）で求めるこができる。したがって、ここで説明する例では、ダミー画素挿入部８０４は、入力データにダミー行を２行挿入する。これにより、第１並び替え制御回路８００は、１００行（＝９８行＋２行）のデータを第１ＳＲＡＭ８０１に書き込む。
【００９９】
転送制御回路２０５は、第１実施形態と同様に、水平２５０画素（列）×垂直４画素（行）を単位として第１ＳＲＡＭ８０１からＤＲＡＭ２０６にデータを書き込む。８１０はＤＲＡＭ２０６に書き込まれるデータの並びを示している。また、転送制御回路２０５は、第１の実施形態と同様のアドレス制御によってＤＲＡＭ２０６からデータを読み出すことによってデータを並べ替える。８１１は、ＤＲＡＭ２０６から読み出されるデータの並びを示している。転送制御回路２０５は、ＤＲＡＭ２０６から読み出したデータを、第２並べ替え制御回路８０２が有する第２ＳＲＡＭ８０３に書き込む。
【０１００】
第２ＳＲＡＭ８０３に書き込まれるデータには、ダミー行が含まれている。そのため、第２並べ替え制御回路８０２のダミー画素削除部８０５は、第２ＳＲＡＭ８０３から読み出されるデータが、ダミー行に該当する場合にはそれを出力しないことにより削除する。これにより、８１２に示す様に、並べ替え回路８０４から出力されるデータにはダミーデータは含まれず、かつ撮像素子２０２から１行ずつ読み出した場合と同じ並びとなる。
【０１０１】
挿入するダミー行の数および挿入位置（例えば先頭に挿入するか、末尾に挿入するか）は、制御部２０８がダミー画素挿入部８０４およびダミー画素削除部８０５に設定するものとする。ダミー画素挿入部８０４は、設定された位置に設定された行数のダミー画素を挿入（追加）する。一方、ダミー画素削除部８０５は、第２ＳＲＡＭ８０３に記憶された（あるいは読み出された）データから、ダミー画素を削除する。
【０１０２】
図１１は、本実施形態におけるデジタルカメラ２００の撮影時の動作に関するフローチャートである。第１実施形態と同様の処理は図６と同じ参照数字を付してある。
Ｓ９０３以外は第１実施形態と同様である。Ｓ９０３で制御部２０８が、並べ替え回路８０４にダミー行挿入位置、ダミー行数を設定すること、Ｓ６０３において、上述した並び替え回路８０４のダミー画素挿入部８０４およびダミー画素削除部８０５がダミーがその挿入および削除を実施する。
【０１０３】
具体的には、図９のＳ１３０３で並べ替え回路８０４の第１並べ替え制御回路８００は、取得したデータにダミー画素挿入部８０４でダミー画素を挿入してから、第１ＳＲＡＭ８０１に、図１０の８１０に示した並びでデータを記録する。
また、Ｓ１３０７で第２並べ替え制御回路１０２は、第２ＳＲＡＭ８０３の先頭アドレスから順次データを読み出す。そして、ダミー画素削除部８０５でダミー画素を削除して出力する。これにより、撮像素子２０２から１行ずつ読み出した場合のデータの並びと等しい並びのデータが、並べ替え回路８０４から出力される。
【０１０４】
以上説明したように、本実施形態によれば、撮像素子から同時に読み出される行数が、第１ＳＲＡＭを用いて並べ替える第１の単位の行数の倍数でない場合であっても、第１実施形態と同様の効果を実現できる。
【０１０５】
なお、本実施形態では、第１ＳＲＡＭの並べ替え単位の行数が４であり、撮像素子から９８行同時に読み出される際に、ダミー行を２行追加する例を説明した。しかし、並べ替え単位の行数、同時読み出し行数、ダミー行の数は他の値であってもよい。
【０１０６】
また、本実施形態では、第１ＳＲＡＭ８０１および第２ＳＲＡＭ８０３を並べ替え回路８０４が有する構成としたが、撮像素子２０２や転送制御回路２０５など、他の機能ブロックが有する構成でもよい。
【０１０７】
●（第３実施形態）
次に、本発明の第３の実施形態を説明する。本実施形態でも第２実施形態と同様、第１実施形態で説明した構成において、撮像素子２０２から同時に読み出される行数が、第１ＳＲＡＭで並べ替える第１の単位で行数で割り切れない場合の動作に関する。本実施形態ではダミー画素を用いない点で第２実施形態と異なる。
【０１０８】
第２実施形態との相違が明確になる様、ここでも一例として、撮像素子２０２から９８行ずつ同時に読み出され、第１ＳＲＡＭでは第１実施形態と同様に４行単位で並べ替える場合を説明する。
【０１０９】
図１２は、撮像素子２０２から同時に読み出された９８行のデータを、１行ずつ読み出した場合と同じ順序に並べ替えるための本実施形態に係る構成を模式的に示す図である。転送制御回路２０５およびＤＲＡＭ２０６の構成は第１実施形態と同じであるため、説明を省略する。並べ替え回路１００４についても、構成は第１実施形態と同様であり、動作が異なる。
【０１１０】
本実施形態における第１並べ替え制御回路１０００は、同時に読み出される９８行の中で、並べ替える行数の単位を途中で切り替える。第１並べ替え制御回路１０００は、１〜９６行までは４行単位で並べ替えを行い、残りの９７〜９８行は２行単位で並べ替えを行う。並べ替えを途中で切り替えたデータは、１０１０に示す並びで転送制御回路２０５によってＤＲＡＭ２０６に書き込まれる。
【０１１１】
転送制御回路２０５は、ＤＲＡＭ２０６から１０１１に示す並びでデータを読み出し、第２並べ替え制御回路１００２の第２ＳＲＡＭ１００３に書き込む。転送制御回路２０５は、２行単位で並べ替えられてＤＲＡＭ２０６に書き込まれたデータについては、２行単位で読み出して第２ＳＲＡＭ１００３に書き込む。
【０１１２】
並べ替え単位を切り換える位置（例えば行番号）および変更後の並べ替え単位（行数）は、制御部２０８が第１並び替え制御回路１０００および転送制御回路２０５に設定するものとする。第１並び替え制御回路１０００は、設定された位置から、第１ＳＲＡＭ１００１から読み出す行数の単位を、設定された行数に変更する。一方、転送制御回路２０５は、ＤＲＡＭ２０６からデータを読み出す際、並べ替えの単位が変更されたデータについては変更後の行数を単位として読み出して第２ＳＲＡＭ１００３に書き込む。
【０１１３】
図１３は、本実施形態におけるデジタルカメラ２００の撮影時の動作に関するフローチャートである。第１実施形態と同様の処理は図６と同じ参照数字を付してある。
Ｓ１１０３以外は第１実施形態と同様である。Ｓ１１０３で制御部２０８が、第１並び替え制御回路１０００と転送制御回路２０５に、並べ替え単位を切り換える位置（例えば行番号）および変更後の並べ替え単位（行数）を設定する。また、転送制御回路２０５に、変更後の並べ替え単位に応じたオフセット転送量１’とオフセット１’を第１並び替え制御回路１０００に設定する。また、Ｓ６０３において、第１並び替え制御回路１０００および転送制御回路２０５が、上述した並び替え単位の変更を実施する。
【０１１４】
具体的には、図９のＳ１３０３で並べ替え回路１００４の第１並べ替え制御回路１０００は、取得したデータのうち、並べ替え単位を切り換える位置（ここでは９７行目）移行のデータについては、並べ替え単位の行数を２行とする。１行目〜９６行目までは並べ替え単位の行数は４行である。そして、転送制御回路２０５は、ＤＲＡＭ２０６に図１２の１０１０に示した並びでデータを記録する。
【０１１５】
また、Ｓ１３０７で転送制御回路２０５は、ＤＲＡＭ２０６からデータを読み出す際、並べ替えの単位に応じてデータを読み出す。したがって、転送制御回路２０５は、並べ替え単位が変更された行のデータを読み出す場合には、オフセット転送量１とオフセット１の代わりにオフセット転送量１’とオフセット１’を用いてアドレス制御を行う。
【０１１６】
第２並べ替え制御回路１０２は、第２ＳＲＡＭ１００３の先頭アドレスから順次データを読み出す。これにより、撮像素子２０２から１行ずつ読み出した場合のデータの並びと等しい並びのデータが、並べ替え回路１００４から出力される。
【０１１７】
本実施形態においても、第２実施形態と同様の効果が得られる。なお、本実施形態では、第１ＳＲＡＭの並べ替え単位の行数が４であり、撮像素子から９８行同時に読み出される際に、並べ替え単位の行数を４行から２行に変更する例を説明した。しかし、並べ替え単位の行数、同時読み出し行数、変更後の並び替え単位の行数は他の値であってもよい。
【０１１８】
また、本実施形態では、第１ＳＲＡＭ１００１および第２ＳＲＡＭ１００３を並べ替え回路１００４が有する構成としたが、撮像素子２０２や転送制御回路２０５など、他の機能ブロックが有する構成でもよい。
【０１１９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２０】
２０４、８０４、１００４…並べ替え回路、１００、８００、１０００…第１並べ替え制御回路、１０１、８０１、１００１…第１ＳＲＡＭ１０１、１０２、８０２、１００２…第２並べ替え制御回路、１０３、８０３、１００３…第２ＳＲＡＭ１０３、２０５…転送制御回路、２０６…ＤＲＡＭ
【図１】
2020057922.tif 000003
【図２】
2020057922.tif 000004
【図３】
2020057922.tif 000005
【図４】
2020057922.tif 000006
【図５】
2020057922.tif 000007
【図６】
2020057922.tif 000008
【図７】
2020057922.tif 000009
【図８】
2020057922.tif 000010
【図９】
2020057922.tif 000011
【図１０】
2020057922.tif 000012
【図１１】
2020057922.tif 000013
【図１２】
2020057922.tif 000014
【図１３】
2020057922.tif 000015