(57)【要約】【課題】画像処理において、ライン更新時及び画像更新時の処理ロスをなくす。【解決手段】画像処理装置は、水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を演算処理して出力画素を生成する演算回路２０を備える。第１の一時記憶部２１は、画像の各水平方向画素列の第Ｍ番目の画素から最後尾の画素までを、読み出し可能に記憶する。第２の一時記憶部２２は、画像の各水平方向画素列の先頭の画素から第Ｍ−１番目の画素までを、読み出し可能に記憶する。第３の一時記憶部２３は、第１の一時記憶部２１に記憶された画素を遅延させると共に、前記第２の一時記憶部２２から画素が入力され、水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を演算回路２０に同時に出力する。【選択図】　図３
2004007511.tif 000002
【特許請求の範囲】
【請求項１】
画像を記憶する画像記憶部と、
前記画像に含まれる水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を演算処理して出力画素を生成し、Ｍは２以上の整数で、Ｎは１以上の整数である演算部と、
前記画像の各水平方向画素列の第Ｍ番目の画素から最後尾の画素までを、読み出し可能に記憶する第１の一時記憶部と、
前記画像の各水平方向画素列の先頭の画素から第Ｍ−１番目の画素までを、読み出し可能に記憶する第２の一時記憶部と、
前記第１の一時記憶部に記憶された画素を遅延させると共に、前記第２の一時記憶部から画素が入力され、前記水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を前記演算部に同時に出力する第３の一時記憶部と
を備える、画像処理装置。
【請求項２】
１つの水平方向画素列の最後尾の出力画素の生成に使用される画素が前記第３の一時記憶部に記憶される前に、次の水平方向画素列の先頭の画素から第Ｍ−１番目の画素までを前記画像記憶部から読み出して前記第２の一時記憶部に書き込み、かつ
前記１つの水平方向画素列に対応する最後尾の出力画素の生成に使用される画素が前記第３の一時記憶部から前記演算部に出力されると、前記次のラインの先頭の画素から第Ｍ−１番目の画素を前記第２の一時記憶部から読み出して前記第３の一時記憶部に書き込む、制御部をさらに備える、請求項１に記載の画像処理装置。
【請求項３】
前記Ｎは２以上の整数であり、
前記制御部は、前記画像の第１番目から第Ｎ番目の水平方向画素列に属する画素に対して、垂直方向に並ぶＮ個の画素を前記画像記憶部から順次読み出して前記第１の一時記憶部又は前記第２の一時記憶部に書き込む操作を、読み出し位置を水平方向に移動しつつ繰り返す、請求項２に記載の画像処理装置。
【請求項４】
前記演算部は単位時間毎に１個の出力画素を生成し、
前記第１の一時記憶部はＮ個のＲＡＭを備え、
前記制御部は、書き込み中である前記ＲＡＭの前回の書き込みアドレスが前回の読み出しアドレスの直前であれば、前記単位時間内に１個の画素を、前記画像記憶部から読み出して前記ＲＡＭ又は前記第２の一時記憶部に書き込み、書き込み中である前記ＲＡＭの前回の書き込みアドレスが前回の読み出しアドレスの直前より１つ以上前であれば、前記単位時間内に複数個の画素を、前記画像記憶部から読み出して前記ＲＡＭ及び／又は前記第３の一時記憶部に書き込む、請求項３に記載の画像処理装置。
【請求項５】
画像記憶部に記憶された画像に含まれる水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を演算処理して出力画素を生成し、Ｍは２以上の整数で、Ｎは１以上の整数である、画像処理方法であって、
前記画像記憶部から読み出し位置を水平方向に移動しつつ画素を読み出して第１の一時記記憶部に書き込み、
前記第１の一時記憶部から画素を読み出して、第３の一時記憶手段に書き込み、
前記第３の一時記憶手段で遅延させて、前記水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を演算部に出力し、
前記演算回路により前記Ｍ×Ｎ個の画素から出力画素を生成し、
１つの水平方向画素列に対応する最後尾の出力画素の生成に使用される画素が前記第３の一時記憶部に記憶される前に、次の水平方向画素列の先頭の画素から第Ｍ−１番目の画素までを前記画像記憶部から読み出して第２の一時記憶部に書き込み、
前記１つの水平方向画素列に対応する最後尾の出力画素の生成に使用される画素が前記第３の一時記憶部から前記演算部に出力されると、前記第２の一時記憶部から前記次のラインの先頭の画素から第Ｍ−１番目の画素までを読み出して前記第３の一時記憶部に書き込む、画像処理方法。
【請求項６】
前記Ｎは２以上の整数であり、
前記画像の第１番目から第Ｎ番目の水平画素列に属する複数の画素に対して、垂直方向に並ぶＮ個の画素を前記画像記憶部から順次読み出して前記第１の一時記憶部又は前記第２の一時記憶部に書き込む操作を、読み出し位置を水平方向に移動しつつ繰り返す、請求項５に記載の画像処理方法。
【請求項７】
前記演算部は単位時間毎に１個の出力画素を生成し、
前記第１の記憶部はＮ個のＲＡＭを備え、
書き込み中である前記ＲＡＭの前回の書き込みアドレスが前回の読み出しアドレスの直前であれば、前記単位時間内に１個の画素を、前記画像記憶部から読み出して前記第２の一時記憶部又は前記第３の一時記憶部に書き込み、
書き込み中であるＲＡＭの前回の書き込みアドレスが前回の読み出しアドレスの直前より１つ以上前であれば、前記単位時間内に複数個の画素を、前記画像記憶部から読み出して前記ＲＡＭ又は前記第３の一時記憶部に書き込む、
請求項５に記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置及び画像処理方法に関する。特に、本発明はデジタルカメラやデジタルビデオのような携帯機器に適した画像処理装置及び画像処理方法に関する。
【０００２】
【従来の技術】
デジタルカメラやデジタルビデオのような撮影装置では、撮像素子の出力信号をＡ／Ｄ変換して得られた生データ（ＲＧＢデータ）は、まずメモリに格納される。メモリに格納された生データは、画像処理回路によりＹＣデータに変換される。画像処理回路は、メモリから読み出した生データを書き込むための一時記憶回路と、一時記憶回路から読み出した複数画素の生データを使用して演算処理を行う演算回路とを備えている。図３８は、変換処理のためにメモリから読み出した生データを一時記憶回路に書き込む順序の一例を示している。詳細には、１つの画像３００内で水平方向画素列（ライン）毎に生データが順次読み出される。変換処理には、水平方向及び／又は垂直方向に隣接する複数の画素が必要となる。従って、図３８に示す書き込み順序を採用する場合、一時記憶回路として、画像３００の１ラインに含まれる画素を記憶可能な大容量のラインメモリが必要となり、画像処理回路は大規模になる。
【０００３】
特許文献１には、図３９に示すように画像３００を複数のブロック（画像ブロック３０１）に分割し、画像ブロック３０１毎にメモリから生データを読み出して処理することが記載されている。この図３９に示す読み出し方法を採用すれば、ラインメモリは画像ブロック３０１の１ラインに含まれる画素を記憶可能な記憶容量を有していればよい。このラインメモリの記憶容量低減により、画像処理回路の規模を縮小することができる。
【０００４】
【特許文献１】
特開２０００−３５４１９３号公報（図３）
【０００５】
【発明が解決しようとする課題】
しかし、図３９に示すように１つの画像３００を画像ブロック３０１に分割すると、ライン更新の頻度が増加する。また、１つの画像３００を画像ブロック３０１に分割すると、画像ブロック３０１の更新が必要となる。例えば、画像３００の垂直方向の画素数が１２１８個であり、かつ画像３００に含まれる画像ブロック３０１の総数が４７６個であるとすると、図３８に示す処理におけるライン更新回数は１２１７回であるのに対し、図３９に示す処理におけるライン更新回数は、１個の画像ブロック３０１のライン更新回数（６５回）と画像ブロック３０１の総数（４７５個）の積である３０８７５回に達する。
【０００６】
個々の画像ブロック３０１における生データの読み出しを、図３９に示すように単にライン毎に行うと、ライン更新時及び画像ブロック更新時にメモリから一時記憶回路に読み出された生データに変換処理が不可能な組合せが生じる。一時記憶回路に記憶された生データが変換処理不可能な組合せである間、演算回路は有効な出力画素を生成することができず、単に一時記憶回路を構成するラインメモリやレジスタの値がシフトされる。
【０００７】
水平方向に３個、垂直方向に３個の画素を使用して変換処理を実行する場合を例とすると、ライン更新時には、少なくとも図４０に示すように新しいラインの先頭から３個目の画素３０２を一時記憶回路に書き込むまで、変換処理を行うことができない。また、画像ブロック３０１の更新時には、少なくとも図４１に示すように第３番目のラインの先頭から３個目の画素３０２を書き込むまで、変換処理を行うことができない。前述のように画像３００を画像ブロック３０１に分割した場合、多数のライン更新及び画像ブロック更新が行われる。従って、このライン更新及び画像ブロック更新時の処理の時間的ロスは無視できない程度であり、処理速度を低下させ、消費電力を増大させる。
【０００８】
そこで、本発明は、ライン更新時及び画像更新時の処理ロスをなくし、それによって処理速度の向上と消費電力の低減を図ることを課題としている。
【０００９】
【課題を解決するための手段】
本発明の第１の態様は、画像を記憶する画像記憶部と、前記画像に含まれる水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を演算処理して出力画素を生成し、Ｍは２以上の整数で、Ｎは１以上の整数である演算部と、前記画像の各水平方向画素列の第Ｍ番目の画素から最後尾の画素までを、読み出し可能に記憶する第１の一時記憶部と、前記画像の各水平方向画素列の先頭の画素から第Ｍ−１番目の画素までを、読み出し可能に記憶する第２の一時記憶部と、前記第１の一時記憶部に記憶された画素を遅延させると共に、前記第２の一時記憶部から画素が入力され、前記水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を前記演算部に同時に出力する第３の一時記憶部とを備える、画像処理装置を提供する。
【００１０】
前記画像は、１フレーム分の画像と、１フレーム分の画像を分割した画像ブロックの両方を含む。
【００１１】
画像処理装置は、１つの水平方向画素列の最後尾の出力画素の生成に使用される画素が前記第３の一時記憶部に記憶される前に、次の水平方向画素列の先頭の画素から第Ｍ−１番目の画素までを前記画像記憶部から読み出して前記第２の一時記憶部に書き込み、かつ前記１つの水平方向画素列に対応する最後尾の出力画素の生成に使用される画素が前記第３の一時記憶部から前記演算部に出力されると、前記次のラインの先頭の画素から第Ｍ−１番目の画素を前記第２の一時記憶部から読み出して前記第３の一時記憶部に書き込む、制御部をさらに備える。
【００１２】
ライン更新時、すなわち１つの水平方向画素列に対応する最後尾の出力画素が生成された後、次の水平方向画素列に対応する最初の出力画素を演算部が生成する時には、第３の一時記憶部に次の水平方向画素列の先頭の画素から第Ｍ番目の画素までがすでに記憶されている必要がある。本発明の第１の態様では、ライン更新前に、次の水平方向画素列の先頭の画素から第Ｍ−１番目の画素はライン更新前に第２の一時記憶手段に記憶され、かつ第２の一時記憶手段から第３の一時記憶手段に転送される。従って、ライン更新時であっても、第３の一時記憶手段は演算部に対して出力画素の生成に必要な有効な画素の組を出力することができる。換言すれば、ライン更新時の処理のロスを解消することができる。
【００１３】
また、前記Ｎは２以上の整数であり、前記制御部は、前記画像の第１番目から第Ｎ番目の水平方向画素列に属する画素に対して、垂直方向に並ぶＮ個の画素を前記画像記憶部から順次読み出して前記第１の一時記憶部又は前記第２の一時記憶部に書き込む操作を、読み出し位置を水平方向に移動しつつ繰り返すことが好ましい。
【００１４】
画像更新時、すなわち１つの画像中の最後の水平方向画素列に対応する最後尾の出力画素が生成された後、次の画像中の最初の水平方向画素列に対応する出力画素が生成される時には、第３の一時記憶手段に次の画像の第１番目から第Ｎ番目の水平画素列に属する画素が記憶されている必要がある。画像の第１番目から第Ｎ番目の水平方向画素列を、前述のように読み出して第２及び第３の一時記憶部に書き込むことにより、画像更新時であっても、第３の一時記憶手段は演算部に対して出力画素の生成に必要な有効な画素の組を出力することができる。換言すれば、画像更新時の処理のロスを解消することができる。
【００１５】
さらに、前記演算部は単位時間毎に１個の出力画素を生成し、前記第１の一時記憶部はＮ個のＲＡＭを備え、前記制御部は、書き込み中である前記ＲＡＭの前回の書き込みアドレスが前回の読み出しアドレスの直前であれば、前記単位時間内に１個の画素を、前記画像記憶部から読み出して前記ＲＡＭ又は前記第２の一時記憶部に書き込み、書き込み中である前記ＲＡＭの前回の書き込みアドレスが前回の読み出しアドレスの直前より１つ以上前であれば、前記単位時間内に２個の画素を、前記画像記憶部から読み出して前記ＲＡＭ及び／又は前記第３の一時記憶部に書き込むことが好ましい。
【００１６】
ＲＡＭの書き込みアドレスと読み出しアドレスをこのように制御することで、画像処理に不具合を生じることなく、ＲＡＭの記憶容量を効率的に利用することができる。
【００１７】
本発明の第２の態様は、画像記憶部に記憶された画像に含まれる水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を演算処理して出力画素を生成し、Ｍは２以上の整数で、Ｎは１以上の整数である、画像処理方法であって、前記画像記憶部から読み出し位置を水平方向に移動しつつ画素を読み出して第１の一時記記憶部に書き込み、前記第１の一時記憶部から画素を読み出して、第３の一時記憶手段に書き込み、前記第３の一時記憶手段で遅延させて、前記水平方向にＭ個で垂直方向にＮ個の互いに隣接する画素を演算部に出力し、前記演算回路により前記Ｍ×Ｎ個の画素から出力画素を生成し、１つの水平方向画素列に対応する最後尾の出力画素の生成に使用される画素が前記第３の一時記憶部に記憶される前に、次の水平方向画素列の先頭の画素から第Ｍ−１番目の画素までを前記画像記憶部から読み出して第２の一時記憶部に書き込み、前記１つの水平方向画素列に対応する最後尾の出力画素の生成に使用される画素が前記第３の一時記憶部から前記演算部に出力されると、前記第２の一時記憶部から前記次のラインの先頭の画素から第Ｍ−１番目の画素までを読み出して前記第３の一時記憶部に書き込む、画像処理方法を提供する。
【００１８】
本発明では、予め第２の一時記憶手段に記憶した各水平方向画素列の先頭の画素から先頭より第Ｍ−１番目の画素を記憶し、ライン更新前に読み出して第３の一時記憶手段に記憶させるので、ライン更新時の処理ロスをなくし、処理速度の向上と消費電力の低減を図ることができる。また、画像の第１番目から第Ｎ番目の水平画素列に属する複数の画素を、水平方向に読み出し位置を移動させつつ垂直方向に読み出すことで、画像更新時の処理ロスをなくし、処理速度の向上と消費電力の低減を図ることができる。さらに、第１の記憶手段であるＲＡＭに対する画素の書き込み速度を、書き込みアドレスと読み出しアドレスの距離に応じて異ならせることにより、画像処理に不具合を生じることなく、ＲＡＭの記憶容量を効率的に利用することができる。
【００１９】
【発明の実施の形態】
図１は本発明の実施形態に係る画像形成装置の実施形態であるＹＣ処理回路４を備えるデジタルカメラの画像処理システム１を示し、図３はＹＣ処理回路４の詳細を示している。この画像処理システム１は、ＣＣＤ等を備える撮像回路２、ＤＲＡＭ等からなるメモリ３、ＹＣ処理回路４、ＳＲＡＭ５、解像度変換回路６、ＪＰＥＧ圧縮処理のような圧縮処理を行う圧縮処理回路７、ＩＣカード等の記録媒体８、及び制御回路９を備えている。
【００２０】
この画像処理システム１の動作を図２を参照して説明すると、まず、ステップＳ２−１において撮像回路２で生成された生データ（ＲＧＢデータ）がメモリ３に書き込まれる。次に、ステップＳ２−２においてＹＣ処理回路４がメモリ３から読み出した生データに基づいてＹＣデータを生成し、生成したＹＣデータをＳＲＡＭ５に書き込む。ステップＳ２−３で解像度変化を行う場合には、ステップＳ２−４において解像度変換回路６がＹＣデータを解像度変換する。ステップＳ２−５において、解像度変換されたＹＣデータがＳＲＡＭ５とメモリ３に書き込まれる。ステップＳ２−２において解像度変換を実行しない場合には、ＹＣ処理回路４で生成されたＹＣデータがＳＲＡＭ５とメモリ３に書き込まれる。ステップＳ２−６において、圧縮処理回路７がＳＲＡＭ５に記憶されたＹＣデータに圧縮処理を行う。圧縮処理で作成された圧縮データはメモリ３に書き込まれる。ステップＳ２−７において、メモリ３内の圧縮データが記録媒体８に書き込まれる。
【００２１】
本実施形態では、図４に示すように、メモリ３に記憶されている生データは、水平方向に１６０２個で垂直方向に１２１８個の画素で１フレーム分の画像１１を構成している。以下の説明では、図５に示すように各画素１２の画像１１上の位置をＸ座標とＹ座標で表記する。例えば、（６７，２）と表記された画素１２は画像１１の左端から６７番目で上端から２番目の画素である。また、以下の説明において、水平方向画素列を必要に応じてラインと呼ぶ。
【００２２】
また、ＹＣ処理回路４は、図４及び図５に示すように、１フレーム分の画像１１を、水平方向及び垂直方向に隣接する６６個の画素１２からなる画像ブロック１３に分割して処理する。後述するように、演算回路２０は水平方向及び垂直方向に３個の互いに隣接する９個の画素１２の画素データから出力画素のＹＣデータを生成する。従って、水平方向に隣接する２つの画像ブロック１３の境界に位置する水平方向の２個の画素１２が、両方の画像ブロック１３の処理に使用される。同様に、垂直方向に隣接する２つの画像ブロック１３の境界に位置する垂直方向に２個の画素１２が両方の画像ブロック１３の処理に使用される。１フレーム分の画像１１には水平方向に２５個、垂直方向に１９個で、合計４７５個の画像ブロック１３が含まれている。
【００２３】
図６に示すように、各画素１２の生データ（以下、画素データという。）は、画素データ部１４ａの付随情報として偶奇ビット１４ｂと有効ビット１４ｃを備えている。偶奇ビット１４ｂは、その画素１２が偶数番目のラインに属するのか、奇数番目のラインに属するのかを示す。有効ビット１４ｃは、その画素１２の画素データ部１４ａが有効なデータであるか否かを示す。
【００２４】
図３を参照すると、ＹＣ処理回路４は、メモリ３に記憶された画素１２の生データを演算処理する演算回路２０と、メモリ３に記憶された画素１２の画素データを演算可能な組合せで出力するための、第１の一時記憶部２１、第２の一時記憶部２２、第３の一時記憶部２３、第１の選択部２６、及び第２の選択部２７を備えている。
【００２５】
演算回路２０は、図８（Ａ）から（Ｃ）に示すように、水平方向に３個で垂直方向に３個の互いに隣接する９個の画素１２の画素データに対して重み付け加算を実行する。例えば、図８（Ａ）に示すように、（１，１）から（３，３）までの９個の画素１２の重み付け加算により、（１，１）の出力画素が得られる。演算回路２０は、この重み付け加算を実行するために、乗算器３１ａ，３１ｂ，３１ｃと、これらの乗算器３１ａ〜３１ｃの出力を合計する加算器３２とを備えている。演算回路２０は単位時間毎に１個の出力画素を生成する。
【００２６】
第１の一時記憶部２１は、それぞれメモリ３から読み出された画素データを記憶する３個のＲＡＭ２１ａ，２１ｂ，２１ｃを備えている。後に詳述するように、これら３個のＲＡＭ２１ａ〜２１ｃには各画像ブロック１３中の各ラインの先頭から第３番目の画素１２から最後尾（第６６番目）の画素１２の画素データが記憶記憶される。図７に示すように、各ＲＡＭ２１ａ〜２１ｃは１番から６４番までのアドレス３３を備え、各アドレス３３に１画素分の画素データを読み書き可能に記憶することができる。
【００２７】
第２の一時記憶部２２は、それぞれ１個の画素１２の生データを記憶する６個のレジスタ２２ａｄ，２２ａｅ，２２ｂｄ，２２ｂｅ，２２ｃｄ，２２ｃｅを備えている。後に詳述するように、これらの６個のレジスタ２２ａｄ〜２２ｃｅは各画像ブロック１３中の各ラインの先頭（第１番目）の画素１２から第２番目の画素１２までを記憶するためのものである。レジスタ２２ａｄ，２２ａｅが第１の一時記憶部２１のＲＡＭ２１ａに対応している。また、レジスタ２２ｂｄ，２２ｂｅがＲＡＭ２１ｂに対応している。さらに、レジスタ２２ｃｄ，２２ｃｅがＲＡＭ２１ｃに対応している。
【００２８】
第３の一時記憶部２３は、それぞれ１個の画素１２の画素データを記憶する９個のレジスタ２３ａａ，２３ａｂ，２３ａｃ，２３ｂａ，２３ｂｂ，２３ｂｃ，２３ｃａ，２３ｃｂ，２３ｃｃを備えている。レジスタ２３ａａ〜２３ｂｂが第１の一時記憶部２１のＲＡＭ２１ａに対応している。また、レジスタ２３ｂａ〜２３ｂｃがＲＡＭ２１ｂに対応している。さらに、レジスタ２３ｃａ〜２３ｃｃがＲＡＭ２１ｃに対応している。
【００２９】
第１の選択部２６は、実線で示す上位置と、点線で示す下位置とに切り替え可能である。第１の選択部２６が上位置にある時には、レジスタ２３ａａ〜２３ｃｃが３個ずつ直列に接続される。具体的には、レジスタ２３ａａ〜２３ａｃ、レジスタ２３ｂａ〜２３ｂｃ、及びレジスタ２３ｃａ〜２３ｃｂが直列に接続される。従って、第１の選択部２６が上位置にある時には、第３の一時記憶部２３のレジスタ２３ａａ〜２３ａｃ、レジスタ２３ｂａ〜２３ｂｃ、及びレジスタ２３ｃａ〜２３ｃｂは、それぞれＲＡＭ２１ａ〜２１ｃからの出力を遅延させて第２の選択部２７を介して演算回路２０に出力する。
【００３０】
第１の選択部２６が下位置にある時には、第３の一時記憶部２３は第２の一時記憶部２２に接続される。具体的には、第２の一時記憶部２２のレジスタ２２ａｄ，２２ａｅが第３の一時記憶部２３のレジスタ２３ａｂ，２３ａｃに接続される。また、第２の一時記憶部２２のレジスタ２２ｂｄ，２２ｂｅが第３の一時記憶部２３のレジスタ２３ｂｂ，２３ｂｃに記憶される。さらに、第２の一時記憶部２２のレジスタ２２ｃｄ，２２ｃｅが第３の一時記憶部２３のレジスタ２３ｃｂ，２３ｃｃに接続される。従って、第１の選択部２６が下位置に切り替えられると、第３の一時記憶部２３のレジスタ２３ａｂ，２３ａｃ、レジスタ２３ｂｂ，２３ｂｃ、及びレジスタ２３ｃｂ，２３ｃｃに対して、第２の一時記憶部２２のレジスタ２２ａｄ，２２ａｅ、レジスタ２２ｂｄ，２２ｂｅ、及びレジスタ２２ｃｄ，２２ｃｅから画素データが出力される。
【００３１】
第２の選択部２７は、最新のラインの画素データを演算回路２０の乗算器３１ａに入力し、最新のラインの１つ前のラインの画素データを乗算器３１ｂに入力し、かつ最新のラインの２つ前のラインの画素データを乗算器３１ｃに入力するように、第３の一時記憶部２３と演算回路２０との接続を切り替える機能を有する。
【００３２】
制御回路９は、メモリ９、ＲＡＭ２１ａ〜２１ｃ、レジスタ２２ａｄ〜２２ｃｅ、レジスタ２３ａａ〜２３ｃｃ、第１の選択部２６、及び第２の選択部２７を制御し、それによってメモリ９から第１の一時記憶部２１及び第２の一時記憶部２２への画素データの転送、第１の一時記憶部２１及び第２の一時記憶部２２から第３の一時記憶部２３への画素データの転送、及び第３の一時記憶部２３から演算回路２０への画素データの転送を実行する。また、制御回路９は演算回路２０を制御して演算処理と生成された画素データのＳＲＡＭ５への転送を実行する。
【００３３】
また、制御回路９のクロック制御部９ａには、第３の一時記憶部２３を介して画素データが入力される。クロック制御部９ａは、偶奇ビット１４ｂ及び有効ビット１４ｃに基づいて、第３の一時記憶部２３に記憶された画素データにより演算回路２０が有効な出力画素を生成可能であるか否かを判断する。第３の一時記憶部２３に記憶された画素データにより演算回路２０が有効な出力画素を生成可能でないと判断した場合、クロック制御部９ａは演算回路２０に対するクロック信号の供給を停止し、演算回路２０による演算処理を禁止する。これにより無効な画素データが入力された時に、演算回路２０が無駄に電力を消費するのを防止している。
【００３４】
次に、ＹＣ処理回路４は、１フレーム分の画像１１を、水平方向及び垂直方向に隣接する６６個の画素１２からなる合計４７５個の画像ブロック１３に分割して処理する。画像ブロック１３の処理順序は、図４において矢印Ａで示す通りである。詳細には、画像１１の左上隅の画像ブロック１３から処理を開始し、ライン毎に画像ブロック１３の処理を順次実行する。
【００３５】
各画像ブロック１３に対してＹＣ処理回路４により実行される処理は、３つの段階に大別することができる。第１の段階では、メモリ３から読み出された画素データが第１の一時記憶部２１又は第２の一時記憶部２２に書き込まれる。第２の段階では、第１の一時記憶部２１又は第２の一時記憶部２２から読み出された画素データが第３の一時記憶部２３に書き込まれる。第３の段階では第３の一時記憶部２３から読み出された画素データに基づいて、演算回路２０が出力画素を生成する。後に詳述するように、本実施形態では、第２の段階において、第２の一時記憶部２２を設けることでライン更新時の時間的ロスを解消している。
【００３６】
第１の段階におけるメモリ３から読み出された画素データの書き込み先は、図９に示す通りである。詳細には、各ラインの先頭の２画素、すなわち第１番目から第２番目の画素１２の画素データは、第２の一時記憶部２２に書き込まれる。一方、各ラインの第３番目から最後（第６６番目）までの画素１２の画素データは、第１の一時記憶部２１に書き込まれる。
【００３７】
第１の段階において、各画像ブロック１３に属する画素１２の画素データをメモリ３から読み出して第１の一時記憶部２１又は第２の一時記憶部２２に書き込む順序は、図１０に示す通りである。詳細には、画像ブロック１３内の第４番目から第６６番目のラインについては、矢印Ｂで示すように、各ライン毎に水平方向に１画素移動しつつ第１の一時記憶部２１又は第２の一時記憶部２２に画素データが書き込まれる。一方、画像ブロック１３内の第１番目から第３番目のラインについては、矢印Ｃで示すように、垂直方向に並ぶ３個の画素１２をメモリ３から順次読み出して第１の一時記憶部２１又は第２の一時記憶部２２に書き込む操作が、読み出し位置を水平方向に移動しつつ繰り返される。後に詳述するように、本実施形態では、各画像ブロック１３の処理開始時に、水平方向ではなく垂直方向に画素データの読み出すことで、画像ブロック更新時の時間的ロスを解消している。
【００３８】
第１の段階において、メモリ３から画素データを読み出して、対応するＲＡＭ２１ａ〜２１ｃに書き込む順序は、図７において矢印Ｄに示すようにＲＡＭ２１ａ〜２１ｃのアドレス３３を水平方向に移動する。
【００３９】
第２の段階において第１の一時記憶部２１のＲＡＭ２１ａ，２１ｂ，２１ｃから画素データを読み出して、第３の一時記憶部２３の対応するレジスタ２３ａａ，２３ｂａ，２３ｃａに書き込む順序は、図７において矢印Ｄに示すようにＲＡＭ２１ａ〜２１ｃのアドレス３３を水平方向に移動する。
【００４０】
ここで図７を参照して、第１の一時記憶部２１のＲＡＭ２１ａ〜２１ｃにおける読み出しポイントと書き込みポイントの関係を説明する。前述のようにＲＡＭ２１ａ〜２１ｃの番地は１番から６４番まである。読み出しポイントとは、画素データを読み出したＲＡＭ２１ａ〜２１ｃのアドレスである。また、書き込みポイントとはメモリ３から新たに読み出した画素データを書き込んだＲＡＭのアドレスである。
【００４１】
各ＲＡＭ２１ａ〜２１ｃにおいて、今回の書き込みポイントが前回の読み出しポイントを追い越すことはできない。例えば、図７に示すように前回の読み出しポイントが６１番である場合、書き込みポイントは６０番より前である必要がある。その理由は、今回の書き込みポイントが前回の読み出しポイントを追い越すということは、ＲＡＭ２１ａ〜２１ｃに記憶されている画素データの内、未だ出力画素の生成に使用されていない画素データが記憶されているアドレス３３に対して、メモリ３から読み出された新たな画素データを上書きすることになるからである。
【００４２】
書き込みポイントは、読み出しポイントを追い越さない限り、読み出しポイントから遅れてもよい。例えば、図７に示すように読み出しポイントが６１番である場合、書き込みポインは６０番より前であればよい。しかし、書き込みポイントが読み出しポイントに近付いていることが好ましい。理想的には、書き込みポイントが読み出しポイントの直前であることが好ましい。例えば、図７に示すように、読み出しポイントが６１番である場合、書き込みポイントが６０番であることが理想的である。書き込みポイントが読み出しポイントの直前であるということは、ＲＡＭ２１ａ〜２１ｃのあるアドレス３３から画素データが第３の一時記憶部２３に出力されると、直ぐにそのアドレス３３に対してメモリ３から読み出された新たな画素データが上書きされる状態であることを意味する。この状態では、書き込みポイントが読み込みポイントに対して遅れることができる余地が最大であり、ＲＡＭ２１ａ〜２１ｃの記憶容量が最も効率的に利用されている。
【００４３】
メモリ３から画素データを読み出して第１の一時記憶部２１のＲＡＭ２１ａ〜２１ｃや第２の一時記憶部２２のレジスタ２２ａｄ〜２２ｃｅに書き込む速度は、前記の書き込みポイントと読み出しポイントに関する条件に基づいて決定される。具体的には、書き込み中であるＲＡＭの前回の書き込みポイントが前回の読み出しポイントの直前の場合には、単位時間内にＲＡＭ２１ａ〜２１ｃ及びレジスタ２２ａｄ〜２２ｃｅのいずれか１個に１個の画素１２の画素データが書き込まれる。一方、書き込み中であるＲＡＭの前回の書き込みポイントが前回の読み込みポイントの直前でない場合には、ＲＡＭ２１ａ〜２１ｃのいずれか２個、又はＲＡＭ２１ａ〜２１ｃのいずれか１個とレジスタ２２ａｄ〜２２ｃｅのいずれか１個に対して、単位時間内にメモリ３から読み出された画素データが書き込まれる。
【００４４】
以上のような各ＲＡＭ２１ａ〜２１ｃにおけるアドレス管理と、ＲＡＭ２１ａ〜２１ｃ及びレジスタ２２ａｄ〜２２ｃｅに対する単位時間当たりの画素数の書き込み速度の調整は制御回路９により実行される。
【００４５】
第３の段階において、演算回路２０が出力画素を生成してＳＲＡＭ５に出力する順序は、図１１に示す通りである。詳細には、矢印Ｅで示すように、各画像ブロック１３毎に水平方向に１画素移動しつつ出力画素が生成される。演算処理回路２１は、水平方向及び垂直方向に３個の隣接する画素１２から出力画素を生成するので、出力画素の画素ブロック１２’に含まれる画素数は、メモリ３に記憶された画像１１の画素ブロック１２（図４参照）の画素数から減少している。詳細には、出力画素の画素ブロック１２’には、水平方向及び垂直方向に６４個で合計４０９６個の出力画素が含まれる。
【００４６】
次に、ＹＣ処理回路４の動作を説明する。図１２のフローチャートは単位時間毎のＹＣ処理回路４の動作を示している。制御回路９によりこの動作が実行される。図１２において、ステップＳ１２−１が前述の第１の段階、ステップＳ１２−２からＳ１２−５、及びステップＳ１２−７，１２−８が第２の段階、ステップＳ１２−６が第３の段階にそれぞれ対応している。前述のように単位時間毎に演算回路２０が１個の出力画素を生成する。
【００４７】
図１２のステップＳ１２−１において、メモリ３からの画素データの読み出し方法が決定され、決定された読み出し方法に基づいて画素データの読み出しが実行される。詳細には、読み出し速度、読み出した画素データの書き込み先、及び読み出し方向が決定される。
【００４８】
図１３を参照すると、まずステップＳ１３−１において、書き込み中のＲＡＭ２１ａ〜２１ｂの前回の書き込みポイントが前回の読み出しポイントの直前であるか否かが判断される（条件１）。直前であれば、ステップＳ１３−２において単位時間内の読み出し画素数は１個に決定され、直前でない場合にはステップＳ１３−３において単位時間内の読み出し画素数は２個に決定される。このように書き込みポイントと読み出しポイントの距離に基づいて、読み出し速度が決定される。
【００４９】
次に、ステップＳ１３−４において、第２の一時記憶部２２のレジスタ２２ａｄ〜２２ｃｅに次のラインの最初の出力画素の生成に必要な画素データが記憶されているか否かが判断される（条件２）。当該画素データが記憶されている場合には、ステップＳ１３−５において、メモリ３から読み出された画素データは第１の一時記憶部２１のＲＡＭ２１ａ〜２１ｃに書き込まれる。一方、当該画素データが記憶されていない場合には、ステップＳ１３−６において、メモリ３から読み出された画素データは、第２の一時記憶部２２のレジスタ２２ａｄ〜２２ｃｅに書き込まれ、又はレジスタ２２ａｄ〜２２ｃｅと第１の一時記憶部２１のＲＡＭ２１ａ〜２１ｃに書き込まれる。このように第２の一時記憶部２２の記憶される画素データに基づいて、画素データの書き込み先が決定される。
【００５０】
続いて、ステップＳ１３−７において、前回にメモリ３から読み出し、第１の一時記憶部２１のＲＡＭ２１ａ〜２１ｃ及び／又は第２の一時記憶部２２のレジスタ２２ａｄ〜２２ｃｅに書き込んだ画素データが、画像ブロック１３の最初の３行のラインに属する画素であるか否かが判断される（条件３）。当該画素データが最初の３行のラインに属する場合には、ステップＳ１３−８において読み出し方向は水平方向に決定される。一方、当該画素データが最初の３行のラインに属さない場合には、ステップＳ１３−９において読み出し方向は垂直は方向に決定される。このように読み出し中の画素１２が画像ブロックの最初のラインの画素であるか否かに基づいて、読み出し方向が決定される。
【００５１】
図１４は、条件１、２、及び３と読み出し方法、すなわちロード方法の関係を示している。読み出し速度、書き込み先、及び読み出し方向（ロード方向）がそれぞれ２種類存在するので、合計８種類のロード方法Ａ〜Ｈが存在する。例えば、書き込み中のＲＡＭ２１ａ〜２１ｃの前回の書き込みポイントが前回の読み出しポイントの直前であり（条件１）、第２の一時記憶部２２に次ラインの最初の出力画素の生成に必要な画素が記憶され（条件２）、かつ前回メモリ３からＲＡＭ２１ａ〜２１ｃ等に書き込んだ画素１２が画像ブロック１３の最初の３行のラインの画素１２でない場合（条件３）、ロード方法Ａが採用されてメモリ３からＲＡＭ２１ａ〜２１ｃに対して１個の画素１２の画素データが水平方向にロードされる。
【００５２】
ステップＳ１２−１においてメモリ３からの読み出しを実行した後、ステップＳ１２−２において、前回生成した出力画素が画像ブロック１３’中のラインの最後尾の出力画素であるか否か、すなわちライン更新時であるか否かが判断される。当該出力画素がラインの最後尾の画素である場合、すなわちライン更新時でない場合には、ステップＳ１２−７に移行する。一方、ライン更新時である場合には、ステップＳ１２−３に移行する。
【００５３】
ライン更新時でない場合はステップＳ１２−７及びＳ１２−８が実行される。まず、ステップＳ１２−７において、第３の一時記憶部２２の画素データを１つシフトする。例えば、レジスタ２２ａａ〜２２ａｃについては、レジスタ２２ａａの画素データがレジスタ２２ａｂにシフトされ、レジスタ２２ａｂの画素データがレジスタ２２ａｃにシフトされる。次に、ステップＳ１２−８において、第１の一時記憶部２１に記憶された画素データを読み出して、第３の一時記憶部２３に記憶させる。詳細には、ＲＡＭ２１ａ〜２１ｃから画素データを読み出し、レジスタ２３ａａ，２３ｂａ，２３ｃａに書き込む。
【００５４】
次に、ステップＳ１２−６において、第３の一時記憶部２３に記憶された画素データが第２の選択部２７を介して演算回路２０に出力される。詳細には、第３の一時記憶部２３が備える９個のレジスタ２３ａａ〜２３ｃｃから演算回路２０の乗算器３１ａ〜３１ｃに画素データが出力される。演算回路２０は入力された画素データから出力画素を生成する。
【００５５】
ライン更新時はステップＳ１２−３からステップＳ１２−５が実行される。まず、ステップＳ１２−３では、第１の選択部２６を下位置に切り替えて、第２の一時記憶部２２に記憶された画素データを読み出し、第３の一時記憶部２３に記憶させる。詳細には、レジスタ２２ａｄ，２２ａｅからレジスタ２３ａｂ，２３ａｃへ、レジスタ２２ｂｄ，３３ｂｅからレジスタ２３ｂｂ，２３ｂｃへ、又はレジスタ２２ｃｄ，２２ｃｅからレジスタ２３ｃｂ，２３ｃｃへ、画像データが出力される。次に、ステップＳ１２−４で第１の一時記憶部２１に記憶された画素データを読み出し、第３の一時記憶部２３に記憶させる。詳細には、ＲＡＭ２１ａ〜２１ｃから画素データを読み出し、レジスタ２３ａａ，２３ｂａ，２３ｃａに書き込む。次に、ステップＳ１２−５で第２の選択部２７を切り替える。第２の選択部２７は、最新のラインの画素データを演算回路２０の乗算器３１ａに入力し、最新のラインの１つ前のラインの画素データを乗算器３１ｂに入力し、かつ最新のラインの２つ前のラインの画素データを乗算器３１ｃに入力するように切り替えられる。その後、ステップＳ１２−６において、第３の一時記憶部２３に記憶された画素データを第２の選択部２７を介して演算回路２０に出力し、演算回路２０は入力された画素データから出力画素を生成する。
【００５６】
図１５から図１９は、ＹＣ処理回路４が図１２のフローチャートの処理を単位時間間隔で繰り返して、メモリ３内に記憶された画素データに対してＹＣ処理を実行した例である。
【００５７】
まず、図１５及び図１６は、１フレームの画像の（６２，６３）の出力画素が生成される時刻ｔから時刻ｔ＋１４３までの各時刻におけるＹＣ処理回路４の動作状態を示している。図１５及び図１６において、項目１はメモリ３からＲＡＭ２１ａ〜２１ｃやレジスタ２２ａｄ〜２２ｃｅへの画素データのロード方法を示している。項目２はメモリ３から読み出した画素データの書き込み先を示している。項目３はメモリ３からＲＡＭ２１ａ〜２１ｃ等に書き込む画素である。項目２及び項目３は、単位時間に２個の画素１２の画素データを読み出す場合の、画素データの書き込み先と読み出される画素である。項目６及び項目７は、その時刻のＲＡＭ２１ａ〜２１ｂの読み出しポイント及び書き込みポイント（図７参照）である。項目８は第１の選択部２６の切替状態である。項目９は出力画素である。
【００５８】
図１７は、図１２のステップＳ１２−１の処理により、画素データがメモリ３から読み出され、第１の記憶部２１のＲＡＭ２１ａ〜２１ｃ又は第２の一時記憶部２２のレジスタ２２ａｄ〜２２ｃｅに書き込まれる時刻を示している。また、図１８は、図１２のステップＳ１２−４，Ｓ１２−８の処理により、画素データがＲＡＭ２１ａ〜２１ｃから読み出され、第３の一時記憶部２３のレジスタ２３ａａ，２３ｂａ，２３ｃａに書き込まれる時刻を示している。さらに、図１９は、図１２のステップＳ１２−６の処理により、出力画素が生成される時刻を示している。これら図１７から図１９では、画素１２を示すブロック内の数字が時刻を示している。例えば、図１７において（６５，１）の画素１２に表示された数字“４”は、この画素が時刻４にメモリ３から読み出されることを示している。また、図１７から図１９は、１番目の画像ブロック１３ａ，１３ａ’（図４及び図１１参照）に属する（６３，６３）の出力画素が生成される時刻１から、２番目の画像ブロック１３ｂ，１３ｂ’に属する（７８，２）の出力画素が生成される時刻１４４までを示している。図１７から図１９において、ブロック内の数字が時刻を示している。図１７から図１９における各画素の時刻は、図１５及び図１６においてｔが０である場合に対応している。
【００５９】
図１８に示すように、第１の一時記憶部２１の各ＲＡＭ２１ａ〜２１ｃから第３の一時記憶部２３への画素データの書き込みは、単に水平方向に１画素ずつ進行する。また、図１９に示すように、演算回路２０により出力画素の生成も水平方向に１画素ずつ進行する。これに対し、メモリ３から第１の一時記憶部２１の各ＲＡＭ２１ａ〜２１ｃ、又は第２の一時記憶部２２のレジスタ２２ａｄ〜２２ｃｅへの画素データの書き込み（図１２のステップＳ１２−１）は、図１３及び図１４に従って実行されるので、図１７に示すように読み出し方向が変化し、読み出し速度や、読み出し先も変化する。
【００６０】
図１３のステップＳ１３−４からステップＳ１３−６、及び図１４における条件２により、第２の一時記憶部２２に次のラインの最初の出力画素の生成に必要な画素が記憶されていない場合には、第２の一時記憶部２２のレジスタ２２ａｄ〜２２ｃｅに次のラインの先頭の画素１２から第２番目の画素１２の画素データが記憶される。例えば、図１５から図１７において、時刻４〜９、時刻６８、６９、１３２、及び１３３では、メモリ３から読み出したラインの第１番目又は第２番目の画素１２の画素データを、そのラインに対応するＲＡＭ２０ａ〜２０ｃではなく、レジスタ２２ａｄ〜２２ｃｅを書き込んでいる。そして、レジスタ２２ａｄ〜２２ｃｅに記憶された画素データは、図１２のステップＳ１２−２においてライン更新時であれば、ステップＳ１２−３において第３の一時記憶部２３に書き込まれる。第２の一時記憶部２２から第３の一時記憶部２３に書き込まれた画素データは、ステップＳ１２−４において第１の一時記憶部２１から第３の一時記憶部２３に書き込まれた次ラインの第３番目の画素と共に、ステップＳ１２−６において演算回路２０に出力され、演算回路２０に出力画素の生成に必要なすべての画素データが供給される。このように第１の一時記憶部２１のＲＡＭ２１ａ〜ＲＡＭ２１ｂとは別に第２の一時記憶部２２を設け、ライン更新よりも前に、次のラインの第１番目と第２番目の画素の画素データを第２の一時記憶部２２に予め記憶させておくことにより、ライン更新時の時間的ロスを解消することができる。
【００６１】
図１３のステップＳ１３−７、及び図１４における条件３に基づいて、メモリ３から第１の一時記憶部２１及び第２の一時記憶部２２への画素データの読み出す方向が変更される。ステップＳ１３−７において、前回にメモリ３から第１の一時記憶部２１又は第２に一時記憶部２２に書き込んだ画素データが最初の３行以内のラインの画素１２の画素データでない場合、次ラインの生成に必要な画素データのうち２行のライン分の画素データはＲＡＭ２１ａ〜２１ｃに既に記憶されている。従って、この場合は読み出し方向を水平に維持しても、画像ブロック更新時のロスは生じない。しかし、ステップＳ１３−７において、前回にメモリ３から第１の一時記憶部２１又は第２に一時記憶部２２に書き込んだ画素データが最初の３行以内のラインの画素１２の画素データの場合、次ラインの生成は次の画像ブロック１３の行についての生成であり、次ラインの生成に必要な画素は未だまったくＲＡＭ２１ａ〜２１ｂに記憶されていない。従って、読み出し方向が水平のままであると画像ブロック更新時のロスが発生する。そこで、この場合には読み出し方向を垂直方向に変更する。このように画像ブロック１３の最初の３行以内のラインで読み出し方向を垂直とすることにより、前の画像ブロック１３の最後の出力画素の生成後、直ちに次の画像ブロック１３の最初の出力画素を生成することができ、画像ブロック更新時の時間的ロスを低減することができる。例えば、図１９に示すように、第１の画像ブロック１３ａ’（図１１参照）の最後の出力画素（６４，６４）が時刻６６に生成され、その直後の時刻６７に第２の画像ブロック１３ｂ’の最初の出力画素（６５，１）が生成されている。これは図１７に示すように、時刻４以降に第２の画像ブロック１３ｂ’の最初の３行のラインに属する画素１２の画素データを垂直方向に読み出したことにより可能となっている。
【００６２】
図１３のステップＳ１３−１からステップＳ１３−３、及び図１４における条件１により、ＲＡＭ２１ａ〜２１ｃの書き込みポイントと読み出しポイントの距離に応じて、メモリ３から画素データを読み出してＲＡＭ２１ａ〜２１ｃ又はレジスタ２２ａｄ〜２２ｃｅへ書き込む速度が、単位時間当たり１画素と２画素に変更される。図１３のステップＳ１３−１において読み出しポイントが書き込みポイントの直前の場合には、前述のようにＲＡＭ２１ａ〜２１ｃの記憶容量が最も効率的に利用されている理想的な状態である。従って、これ以上読み出しポイントが書き込みポイントに接近しないように、単位時間当たりに１画素（演算回路２０の出力画素生成速度と同じ速度）でメモリ３からＲＡＭ２１ａ〜２１ｃに画素データを読み出す。一方、図１３のステップＳ１３−１において読み出しポイントが書き込みポイントの直前でない場合には、書き込みポイントは読み出しポイントから遅れているので、書き込みポイントが読み出しポイントに追いつくように、単位時間当たりに２画素（演算回路２０の出力画素生成速度の２倍の速度）でメモリ３からＲＡＭ２１ａ〜２１ｃに画素データを読み出す。画像ブロック１３は水平方向に６６個の画素を備えるのに対し、ＲＡＭ２１ａ〜２１ｃはそれよりも少ない６４個のアドレス３３を有する。しかし、書き込みポイントが読み出しポイントを追い越すことなく、かつ書き込みポイントが読み出しポイントに近付くようにＲＡＭ２１ａ〜２１ｃへの書き込み速度を制御することで、ＲＡＭ２１ａ〜２１ｃの記憶容量が効率的に利用し、それによつて前述のライン更新時や画像ブロック更新時に時間的ロスが生じない処理を実現することができる。
【００６３】
次に、図１２、及び図２０から図３７を参照して、図１５の時刻ｔ＋１から時刻ｔ＋１０（図１７から図１９の時刻１から時刻１１）までの間のＹＣ処理回路４の動作を詳細に説明する。
【００６４】
図２０は図１２のステップＳ１２−１の直前に第１の一時記憶部２１のＲＡＭ２１ａ〜２１ｃ及び第２の一時記憶部２２のレジスタ２２ａｄ〜２２ｃｅに記憶されている画素データを示している。ＲＡＭ２１ａには画素（３，６４）〜（６６，６４）の画素データが保持されている。また、ＲＡＭ２１ｂには画素（３，６５）〜（６６，６５）の画素１２の画素データが保持されている。さらに、ＲＡＭ２１ｃには画素（６４，６３）〜（６６，６３）、及び画素（３，６６）〜（６３，６６）の画素１２の画素データが保持されている。レジスタ２２ａｄ〜２２ｃｅには、６個の画素（１，６４）〜（２，６６）の画素データが保持されている。
【００６５】
図１２のステップＳ１２−１において、画素（６４，６３）の画素データを記憶しているＲＡＭ２１ｃのアドレス３３に対して、メモリ３から読み出された画素（６４，６６）の画素データが上書きされる。図２１はこの上書き後にＲＡＭ２１ａ〜２１ｃ及びレジスタ２２ａｄ〜２２ｃｅに保持されている画素データを示している。
【００６６】
この上書きは図１４により決定されている。まず、条件１ついては、書込中のＲＡＭ２１ｃの前回の書き込みポイントは画素（６３，６６）を記憶するアドレスであり、前回の読み出しポイントは画素（６４，６３）を記憶するアドレスであるため、書き込みポイントは読み出しポイントの直前にある。条件２については、第２の一時記憶部２２には次ライン（第６４行）の生成に必要な画素（１，６４）〜（２，６６）は既に記憶されている。条件３については、メモリ３から読み出す画素（６４，６６）は画像ブロック１３の最初の３行内の画素ではない。従って、ロード方法Ａが選択され、画素（６４，６６）の画素データをメモリ３から読み出して、ＲＡＭ２１ｃに書き込んでいる。なお、画素（６４，６６）のデータを上書きすることにより、画素（６４，６３）のデータはＲＡＭ２１ｃから消去されるが、この画素（６４，６３）は再度出力画素生成に使用することはないので、不都合はない。
【００６７】
図２２は、時刻ｔ＋１のステップＳ１２−１において画素（６４，６６）の画素データをメモリ３からＲＡＭ２１ｃに書き込んだ直後、すなわち第３の一時記憶手段２３をシフトする直前の第３の一時記憶手段２３に保持されている画素データの状態を示すしている。レジスタ２３ａａ〜２３ａｃには画素（６２，６４）〜（６４，６４）が保持され、レジスタ２３ｂａ〜２３ｂｃには画素（６２，６５）〜（６４，６５）が保持され、レジスタ２３ｃａ〜２３ｃｃには画素（６２，６３）〜（６４，６３）が保持されている。演算回路２０は、時刻ｔにおいて、これらの９画素の画素データから画素（６２，６３）を新たに生成して出力している。
【００６８】
図２３は、時刻ｔ＋１のステップＳ１２−７において第３の一時記憶部２３をシフトした直後に第３の一時記憶手段２３に保持されている画素データの状態を示している。前回（時刻ｔ）において生成した画素（６２，６３）は、画像ブロック１３のライン（６３行）の最後尾の画素（６４，６３）には該当しない（ステップＳ１２−２）。従って、ステップＳ１２−８で第３の一時記憶部２３の値をシフトする。具体的には、レジスタ２３ａｂの画素データをレジスタ２３ａｃにシフトし、レジスタ２３ａａの画素データをレジスタ２３ａｂにシフトして書き換える。同様に他のレジスタ２３ｂｂ、２３ｂｃ、２３ｃｂ、２３ｃｃの画素データも書き換える。
【００６９】
図２４は、時刻ｔ＋１のステップＳ１２−８直後に第３の一時記憶部２３に保持されている画素データの状態を示している。ステップＳ１２−８では、ＲＡＭ２１ｃから画素（６５，６３）を読み出してレジスタ２３ｃａに書き込み、ＲＡＭ２１ａから画素（６５，６４）を読み出してレジスタ２３ａａに書き込み、ＲＡＭ２１ｂから画素（６５，６４）を読み出してレジスタ２３ｂａに書き込む。ステップＳ１２−７で６個の画素（６３，６４）〜（６４，６５）が既に第３の一時記憶部２３に記憶済みであるので、９個の画素（６３，６４）〜（６５，６５）が第３の一時記憶部２３に記憶されたことになる。画素（６５，６３）の画素データをＲＡＭ２１ｃから読み出すのはこれが最後なので、以後画素（６５，６３）の画素データをＲＡＭ２１ｃに記憶しておく必要はない。すなわち、画素（６５，６３）の画素データを上書きによって消去しても以後の画像処理上支障をきたすことはない。
【００７０】
図２５は、時刻ｔ＋１において生成される出力画素と、第３の一時記憶部２３に保持されている画素データの状態、すなわちステップＳ１２−６の直後の状態を示している。ステップＳ１２−６では、第３の一時記憶部２３に記憶されている９個の画素（６３，６５）〜（６５，６５）の画素データを第２の選択部２７を介して演算回路２０に入力し、演算回路２０で出力画素（６３，６３）を生成する。レジスタ２３ａａ〜２３ａｃには６４行目の画素が記憶され、レジスタ２３ｂａ〜２３ｂｃには６５行目の画素が記憶され、レジスタ２３ｃａ〜２３ｃｃには６３行目の画素が記憶されている。従って、第２の選択部２２は、レジスタ２３ａａ〜２３ａｃを乗算器３１ｂに接続し、レジスタ２３ｂａ〜２３ｂｃを乗算器３１ｃに接続し、レジスタ２３ｃａ〜２３ｃｃを乗算器３１ｃに接続する。
【００７１】
時刻ｔ＋２における動作は、時刻ｔ＋１における動作と同様である。図２６は、時刻ｔ＋２において画素（６４，６３）を生成した直後の画素データの保持状態、すなわち時刻ｔ＋３におけるステップＳ１２−１直前の状態を示している。ＲＡＭ２１ａには画素（３，６４）〜（６６，６４）の画素データが保持され、ＲＡＭ２１ｂには画素（３，６５）〜（６６，６５）の画素データが保持され、ＲＡＭ２１ｃには画素（６６，６３）〜（６６，６３）及び画素（３，６６）〜（６５，６６）の画素データが保持されている。また、第２の一時記憶部２２には６個の画素（１，６４）〜（２，６６）の画素データが保持されている。
【００７２】
図２７は、時刻ｔ＋３におけるステップＳ１２−１直後の第１の一時記憶部２１及び第２の一時記憶部２２に保持されている画素データの状態を示している。ステップＳ１２−１では、条件１〜３の判定結果に基づいて、画素（６６，６３）の画素データを記憶していたＲＡＭ２１ｃの記憶領域に対して、メモリ３から読み出された画素（６６，６６）の画素データが上書きされる。
【００７３】
図２８は、時刻ｔ＋３のステップＳ１２−３において第２の一時記憶部２２に記憶されている６個の画素（１，６４）〜（２，６６）を読み出して第３の一時記憶部２３に書き込んだ直後の、第３の一時記憶部２３に保持されている画素データの状態を示している。前回（時刻ｔ＋２）に生成した画素（６４，６３）は、画像ブロック１３のライン（６３行）の最後尾の画素（６４，６３）に相当する。従って、ステップＳ１２−２に従い、ステップＳ１２−３において第２の一時記憶部２２から第３の一時記憶部２３へ画素データがロードされる。具体的には、第１の選択部２６が下位置に切り替えられ、レジスタ２２ａｄの画素データをレジスタ２３ａｂに、レジスタ２２ａｅの画素データをレジスタ２３ａｃに、レジスタ２２ｂｄの画素データをレジスタ２３ｂｂに、レジスタ２２ｂｅの画素データをレジスタ２３ｂｃに、レジスタ２２ｃｄの画素データをレジスタ２３ｃｂに、レジスタ２２ｃｅの画素データをレジスタ２３ｃｃに、それぞれ書き込む。
【００７４】
図２９は、時刻ｔ＋３のステップＳ１２−４において第１の一時記憶部２１のＲＡＭ２１ａ〜２１ｃから３個の画素（３，６４）〜（３，６６）の画素データを読み出して第３の一時記憶部２３に書き込んだ直後の、第３の一時記憶部２３に保持されている画素データの状態を示している。第３の一時記憶部２３の画素データが図２７の状態とになった後、ステップＳ１２−５において第２の選択部２７を切り替える。具体的には、レジスタ２３ａａ〜２３ａｃを乗算器３１ａに、レジスタ２３ｂａ〜２３ｂｃを乗算器３１ｂに、レジスタ２３ｃａ〜２３ｃｃを乗算器３１ｃに、それぞれ接続するように第２の選択部２７を切り替える。その後、ステップＳ１２−６において、第３の一時記憶部２３に記憶された９個の画素の画素データが演算回路２０にされ、出力画素（１，６４）が生成される。なお、上記の動作終了後、第１の選択部２６の設定は上位置に戻される。
【００７５】
図３０は、時刻ｔ＋３において画素（１，６４）を生成した直後、すなわち時刻ｔ＋４のステップＳ１２−１の直前の第１の一時記憶部２１及び第２の一時記憶部２２の画素データの保持状態を示している。ＲＡＭ２１ａには画素（３，６４）〜（６６，６４）の画素データが保持され、ＲＡＭ２１ｂには画素（３，６５）〜（６６，６５）の画素データが保持され、ＲＡＭ２１ｃには画素（３，６６）〜（６６，６６）の画素データが保持されている。第２の一時記憶部２２には６個の画素（１，６４）〜（２，６６）の画素データが保持されている。
【００７６】
図３１は、時刻ｔ＋４のステップＳ１２−１直後の第１の一時記憶部２１及び第２の一時記憶部２２に保持されている画素データの状態を示している。ステップＳ１２−１では、画素（１，６４）を記憶していたレジスタ２２ａｅに対して、メモリ３から読み出された画素（６５，１）の画素データが上書きされる。画素データの読み出し速度、読み出し先、及び読み出し方向は、図１３及び図１４に従って決定される。まず、条件１については、書込中のＲＡＭ２１ｃの前回の書き込みポイントは画素（６６，６６）の画素データを記憶するアドレスであり、前回の読み出しポイントは画素（３，６６）の画素データを記憶するアドレスであるため、書き込みポイントは読み出しポイントの直前にある。また、条件２については、第２の一時記憶部２２には次ライン（第１行）の生成に必要な画素（６５，１）〜（６６，３）は未だ記憶されていない。さらに、条件３については、前記メモリ３から読み出してＲＡＭ２１ｃに書き込んだ画素（６６，６６）は画像ブロック１３の最初の３行内の画素ではない。従って、ロード方法Ｂが選択され、画素（６５，１）の画素データをメモリ３から読み出して、レジスタ２２ａｅに書き込んでいる。
【００７７】
図３２は、時刻ｔ＋４のステップＳ１２−６において、出力画素（２，６４）を生成した直後の第３の一時記憶部２３に保持されている画素データの状態を示している。時刻ｔ＋４のステップＳ１２−２では、前回生成した画素（１，６４）は画像ブロック１３のラインの最後尾の画素に該当しないことが判定される。また、ステップＳ１２−７において、第３の一時記憶部２３の画素データがシフトされ、ステップＳ１２−８において、各ＲＡＭ２１ａ〜２１ｃから第３の一時記憶部２３に画素（４，６４）〜（４，６６）の画素データがロードされる。その後、ステップＳ１２−６において、第３の一時記憶部２３に記憶された９個の画素の画素データが演算回路２０に入力され、出力画素（２，６４）が生成される。
【００７８】
図３３は時刻ｔ＋５のステップＳ１２−１の直前における第１の一時記憶部２１及び第２の一時記憶部２２に保持されている画素データの状態を示し、図３４は時刻ｔ＋５のステップＳ１２−１の直後における第１の一時記憶部２１及び第２の一時記憶部２２に保持されている画素データの状態を示している。メモリ３からの画素データの読み出し速度、読み出し先、及び読み出し方向は、図１３及び図１４に従って決定される。条件１についは、書込中のＲＡＭ２１ｃの前回の書き込みポイントは画素（６６，６６）を記憶するアドレスであり、前回の読み出しポイントは画素（４，６６）を記憶するアドレスであるため、書き込みポイントは読み出しポイントの直前ではない。また、条件２については、第２の一時記憶部２２に次ライン（第１行）の生成に必要な画素（６５，１）〜（６６，３）の画素データは未だ記憶されていない。さらに、条件３についは、前回にメモリ３から読み出してレジスタ２２ａｅに書き込んだ画素（６５，１）は画像ブロック１３の最初の３行内の画素である。従って、ロード方法Ｈが選択され、画素（６５，２）の画素データをメモリ３から読み出してレジスタ２２ｂｅに書き込むと共に、画素（６７，１）の画素データをメモリ３から読み出してＲＡＭ２１ａに書き込む。
【００７９】
図３５は、時刻ｔ＋５のステップＳ１２−６において出力画素（３，６４）を生成した直後の第３の一時記憶部２３に保持されている画素データの状態を示している。時刻ｔ＋５のステップＳ１２−２では、前回生成した画素（２，６４）は画像ブロック１３のラインの最後尾の画素に該当しないことが判定される。また、ステップＳ１２−７において、第１の一時記憶部２１の画素データをシフトする。そしてステップＳ１２−８において、各ＲＡＭ２１ａ〜２１ｃから画素（５，６４）〜（５，６６）の画素データを読み出して第３の一時記憶部２３に書き込む。その後、ステップＳ１２−６において、第３の一時記憶部２３に記憶された９個の画素の画素データが演算回路２０に入力され出力画素（３，６４）が生成される。
【００８０】
時刻ｔ＋６〜ｔ＋９では、時刻ｔ＋５と同様に、メモリ３から第１及び第２の一時記憶部２１，２２に対して垂直方向に読み出された画素データが書きこまれる（図１０の矢印Ｃ参照）。また、時刻Ｔ＋６〜Ｔ＋９間に、４個の出力画素（４，６７）〜（７，６４）が生成される。図３６に示すように、時刻ｔ＋１０のステップＳ１２−１直前では、６個の画素（６５，１）〜（６５，３）の画素データが第２の一時記憶部２２に記憶されている。また、画素（６７，１）、（６８，１）がＲＡＭ２１ａに、画素（６７，２）、（６８，２）がＲＡＭ２１ｂに、画素（６７，３）がＲＡＭ２１ｃに、それぞれ記憶されている。
【００８１】
時刻ｔ＋１０のステップＳ１２−１では、図１３及び図１４に従ってロード方法Ｇが選択され、図３７に示すようにメモリ３から読み出された画素（６８，３）、（６９，１）がＲＡＭ２１ａに記憶される。ステップＳ１２−２において前回生成した画素（７，６４）はラインの最後尾の画素ではないので、ステップＳ１２−７において第１の一時記憶部２１の値をシフトし、ステップＳ１２−８において、各ＲＡＭ２１ａ〜２１ｃから画素（１０，６４）〜（１０，６６）の画素データを読み出してレジスタ２３ａａ、２３ｂａ、２３ｃａに記憶する。最後に、ステップＳ１２−６において、第３の一時記憶部２３に記憶された９個の画素（８，６４）〜（１０，６６）の画素データに基づいて演算回路２０で出力画素（１０，６４）を生成する。
【００８２】
前記実施形態では、水平方向に３個で垂直方向に３個の互いに隣接する９個の画素から出力画素を生成する場合を例に本発明を説明した（図８（Ａ）から（Ｃ）参照）。Ｍは２以上の整数で、Ｎは２以上の整数であり、演算回路が水平方向にＭ個で垂直方向にＮ個の画素から出力画素を生成する場合には、第１の一時記憶部は各ラインの第Ｍ番目の画素から最後尾の画素までを読み出し可能に記憶し、第２の一時記憶部は各ラインの先頭の画素から第Ｍ−１番目の画素までを読み出し可能に記憶するものであればよい。また、この場合、画像ブロックの第１番目から第Ｎ番目のラインに属する画素について、図１０の矢印Ｃで示すようにメモリから第１及び第２の一時記憶部に対して垂直方向に画素データをロードすればよい。
【００８３】
本発明は、前記実施形態に限定されず、種々の変形が可能である。例えば、図１の画像処理システム１において解像度変換回路６に本発明を適用することができる。また、デジタルカメラ以外の、デジタルビデオ等の他の機器が備える画像処理システムに本発明を適用することができる。また、１フレームの画像を画像ブロックに分割することなく処理する場合にも本発明を適用することができる。
【００８４】
【発明の効果】
以上の説明から明らかなように、本発明では、ライン更新前に、次の水平方向画素列の先頭の画素から第Ｍ−１番目の画素はライン更新前に第２の一時記憶手段に記憶され、かつ第２の一時記憶手段から第３の一時記憶手段に転送される。従って、ライン更新時であっても、第３の一時記憶手段は演算部に対して出力画素の生成に必要な有効な画素の組を出力することができる。換言すれば、ライン更新時の処理のロスを解消することができる。
【００８５】
また、画像の第１番目から第Ｎ番目の水平方向画素列を、前述のように読み出して第２及び第３の一時記憶部に書き込むことにより、画像更新時であっても、第３の一時記憶手段は演算部に対して出力画素の生成に必要な有効な画素の組を出力することができる。換言すれば、画像更新時の処理のロスを解消することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るＹＣ処理回路を備えるデジタルカメラの画像処理システムを示すブロック図である。
【図２】図１の画像処理システムの動作を説明するためのフローチャートである。
【図３】ＹＣ処理回路を示す回路図である。
【図４】１フレーム分の画像を示す図である。
【図５】画素に対する座標の割り当てを示す図である。
【図６】画素データの構造を示す概略図である。
【図７】ＲＡＭを示す概略図である。
【図８】（Ａ）、（Ｂ）、及び（Ｃ）は、出力画素の生成方法を説明するための図である。
【図９】画像ブロック中の各画素の画素データの書き込み先を説明するための図である。
【図１０】画像ブロック中での画素データの画素データの書き込み順序を示す図である。
【図１１】出力画素の出力順序を示す図である。
【図１２】ＹＣ処理回路の動作を説明するためのフローチャートである。
【図１３】ステップＳ１２−１のサブルーチンのフローチャートである。
【図１４】第１及び第２の記憶部に対するロード方法の決定条件を示すテーブルである。
【図１５】時刻ｔから時刻ｔ＋１４３までのＹＣ処理回路の動作を説明するためのテーブルである。
【図１６】時刻ｔから時刻ｔ＋１４３までのＹＣ処理回路の動作を説明するためのテーブルである。
【図１７】各画素の画素データがメモリからＲＡＭへ転送される時刻を示す図である。
【図１８】ＲＡＭに記憶された画素データが第３の一時記憶部に転送される時刻を示す図である。
【図１９】各生成画素の生成時刻を示す図である。
【図２０】時刻ｔ直後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図２１】時刻ｔ＋１においてメモリからＲＡＭへ画素データを読み出した後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図２２】時刻ｔ＋１における第３の一時記憶部のレジスタのシフト前に第３の一時記憶部に保持されている画素データを示す模式図である。
【図２３】時刻ｔ＋１における第３の一時記憶部のレジスタのシフト後に第３の一時記憶部に保持されている画素データを示す模式図である。
【図２４】時刻ｔ＋１においてＲＡＭから第３の一時記憶部に１画素分ずつ画素データを転送した後に第３の一時記憶部に保持されている画素データを示す模式図である。
【図２５】時刻ｔ＋１において出力画素を生成する際の第３の一時記憶部に保持されている画素データを示す模式図である。
【図２６】時刻ｔ＋２直後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図２７】時刻ｔ＋３においてメモリからＲＡＭへ画素データを読み出した後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図２８】第２の一時記憶部から第３の一時記憶部に画素データを転送した後に第３の一時記憶部に保持されている画素データを示す模式図である。
【図２９】時刻ｔ＋３においてＲＡＭから第３の一時記憶部に１画素分ずつ画素データを転送した後に第３の一時記憶部に保持されている画素データを示す模式図である。
【図３０】時刻ｔ＋３直後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図３１】時刻ｔ＋４においてメモリからＲＡＭへ画素データを読み出した後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図３２】時刻ｔ＋４において出力画素を生成した後に第３の一時記憶部に保持されている画素データを示す模式図である。
【図３３】時刻ｔ＋４直後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図３４】時刻ｔ＋５においてメモリからＲＡＭ及びレジスタへ画素データを読み出した後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図３５】時刻ｔ＋５において出力画素を生成した後に第３の一時記憶部に保持されている画素データを示す模式図である。
【図３６】時刻ｔ＋９直後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図３７】時刻ｔ＋１０においてメモリからＲＡＭ及びレジスタへ画素データを読み出した後に第１及び第２の一時記憶部に保持されている画素データを示す模式図である。
【図３８】１フレーム分の画素データの書き込み順序を示す模式図である。
【図３９】画像ブロック毎の画素データの書き込み順序を示す模式図である。
【図４０】ライン更新時のロスを説明するための模式図である。
【図４１】画像ブロック更新時のロスを説明するための模式図である。
【符号の説明】
１　画像処理システム
２　撮像回路
３　メモリ
４　ＹＣ処理回路
５　ＳＲＡＭ
６　解像度変換回路
７　圧縮処理回路
８　記録媒体
９　制御回路
９ａ　クロック制御部
１１　画像
１２　画素
１３　画素ブロック
１４ａ　画素データ部
１４ｂ　偶奇ビット
１４ｃ　有効ビット
２０　演算回路
２１　第１の一時記憶部
２１ａ，２１ｂ，２１ｃ　ＲＡＭ
２２　第２の一時記憶部
２３　第３の一時記憶部
２６　第１の選択部
２７　第２の選択部
３１ａ，３１ｂ，３１ｃ　乗算器
３２　加算器
【図１】
2004007511.tif 000003
【図２】
2004007511.tif 000004
【図３】
2004007511.tif 000005
【図４】
2004007511.tif 000006
【図５】
2004007511.tif 000007
【図６】
2004007511.tif 000008
【図７】
2004007511.tif 000009
【図８】
2004007511.tif 000010
【図９】
2004007511.tif 000011
【図１０】
2004007511.tif 000012
【図１１】
2004007511.tif 000013
【図１２】
2004007511.tif 000014
【図１３】
2004007511.tif 000015
【図１４】
2004007511.tif 000016
【図１５】
2004007511.tif 000017
【図１６】
2004007511.tif 000018
【図１７】
2004007511.tif 000019
【図１８】
2004007511.tif 000020
【図１９】
2004007511.tif 000021
【図２０】
2004007511.tif 000022
【図２１】
2004007511.tif 000023
【図２２】
2004007511.tif 000024
【図２３】
2004007511.tif 000025
【図２４】
2004007511.tif 000026
【図２５】
2004007511.tif 000027
【図２６】
2004007511.tif 000028
【図２７】
2004007511.tif 000029
【図２８】
2004007511.tif 000030
【図２９】
2004007511.tif 000031
【図３０】
2004007511.tif 000032
【図３１】
2004007511.tif 000033
【図３２】
2004007511.tif 000034
【図３３】
2004007511.tif 000035
【図３４】
2004007511.tif 000036
【図３５】
2004007511.tif 000037
【図３６】
2004007511.tif 000038
【図３７】
2004007511.tif 000039
【図３８】
2004007511.tif 000040
【図３９】
2004007511.tif 000041
【図４０】
2004007511.tif 000042
【図４１】
2004007511.tif 000043