(57)【要約】【課題】ベイヤーデータのライン数が素数である場合であっても、支障なくリングピクセルを付加して転送を行うことのできるようにする。【解決手段】転送するベイヤーデータが１ベルト目、２ベルト目、３ベルト目、最終−１２ベルト目、最終−１ベルト目、最終ベルト目であるか否かを判断する（ステップＳ３、Ｓ５、Ｓ７、Ｓ９、Ｓ１１、Ｓ１３）。１ベルト目である場合には、付加するライン分を「３」に（ステップＳ４）、２ベルト目である場合には「２」に（ステップＳ６）、３ベルト目である場合には「１」に（ステップＳ８）、最終−２ベルト目である場合には「１」に（ステップＳ１０）、最終−１ベルト目である場合には「２」に（ステップＳ１２）、最終ベルト目である場合には「３」に（ステップＳ１５）、各々設定して転送する。【選択図】図５
2008131472.tif 000002
【特許請求の範囲】
【請求項１】
格納手段に格納されたベイヤーデータにリングピクセルを付加して転送する転送装置であって、
前記格納手段に格納されるベイヤーデータに付加するリングピクセル数が、予め記憶された記憶手段と、
前記格納手段に格納されるベイヤーデータの画素数を取得する取得手段と、
前記取得手段により取得されたベイヤーデータの画素数に基づいて、転送単位となる転送画素数を設定する設定手段と、
前記設定手段により設定された転送画素数での各転送時に、前記リングピクセルを付加するか否かを判断する判断手段と、
前記判断手段によりリングピクセルを付加すると判断されたときに、前記記憶手段に記憶されているリングピクセル数と、前記設定手段により設定された転送画素数とに基づいて、当該転送時に付加するリングピクセル数を可変設定する可変設定手段と、
を備えたことを特徴とする転送装置。
【請求項２】
格納手段に格納されたベイヤーデータにリングピクセルを付加して転送する転送装置が有するコンピュータを、
前記格納手段に格納されるベイヤーデータの画素数を取得する取得手段と、
前記取得手段により取得されたベイヤーデータの画素数に基づいて、転送単位となる転送画素数を設定する設定手段と、
前記設定手段により設定された転送画素数での各転送時に、前記リングピクセルを付加するか否かを判断する判断手段と、
前記判断手段によりリングピクセルを付加すると判断されたときに、前記格納手段に格納されるベイヤーデータに付加するリングピクセル数が予め記憶された記憶手段に記憶されている前記リングピクセル数と、前記設定手段により設定された転送画素数とに基づいて、当該転送時に付加するリングピクセル数を可変設定する可変設定手段と、
して機能させることを特徴とする転送制御プログラム。
【請求項３】
被写体を撮像してベイヤーデータを取得する撮像手段と、
前記撮像手段により取得されたベイヤーデータを格納する格納手段と、
前記格納手段に格納されるベイヤーデータに付加するリングピクセル数が、予め記憶された記憶手段と、
前記格納手段に格納されるベイヤーデータの画素数を取得する取得手段と、
前記取得手段により取得されたベイヤーデータの画素数に基づいて、転送単位となる転送画素数を設定する設定手段と、
前記設定手段により設定された転送画素数での各転送時に、前記リングピクセルを付加するか否かを判断する判断手段と、
前記判断手段によりリングピクセルを付加すると判断されたときに、前記記憶手段に記憶されているリングピクセル数と、前記設定手段により設定された転送画素数とに基づいて、当該転送時に付加するリングピクセル数を可変設定する可変設定手段と、
を備えたことを特徴とする撮像装置。
【請求項４】
被写体を撮像してベイヤーデータを取得する撮像手段を備える撮像装置が有するコンピュータを、
前記撮像手段により取得されたベイヤーデータを格納する格納手段と、
前記格納手段に格納されるベイヤーデータに付加するリングピクセル数が、予め記憶された記憶手段と、
前記格納手段に格納されるベイヤーデータの画素数を取得する取得手段と、
前記取得手段により取得されたベイヤーデータの画素数に基づいて、転送単位となる転送画素数を設定する設定手段と、
前記設定手段により設定された転送画素数での各転送時に、前記リングピクセルを付加するか否かを判断する判断手段と、
前記判断手段によりリングピクセルを付加すると判断されたときに、前記記憶手段に記憶されているリングピクセル数と、前記設定手段により設定された転送画素数とに基づいて、当該転送時に付加するリングピクセル数を可変設定する可変設定手段と、
して機能させることを特徴とする転送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラ等の撮像装置に用いて好適な転送装置、転送制御プログラム及びこれらを用いた撮像装置に関するものである。
【背景技術】
【０００２】
従来、撮影により取得したデジタルの画像データを記録媒体に記録するデジタルカメラにおいては、最終的に記録する画像データを得る過程で複数段の画像処理が行われている。例えば撮影に際してメモリに一時記憶されたベイヤーデータ、すなわち原色ベイヤー配列の色フィルタに応じた色情報の画素からなる画像データを、画素毎のＲＧＢデータからなるＹＵＶデータに変換するベイヤー補間処理等が行われている。
【０００３】
このベイヤー補間処理においては、ＹＵＶデータを１ピクセル生成するのに該当ピクセルの周辺の複数ピクセル、例えば７×７ピクセルを用いる。したがって、元のベイヤーデータを所望の画像サイズのＹＵＶデータに変換する場合、例えば横６４０×縦４８０ピクセルのベイヤーデータを同じ横６４０×縦４８０ピクセルのＹＵＶデータに変換する場合には、元のベイヤーデータの周辺にリングピクセルと称される複数のピクセルを付加する必要がある。
【０００４】
また、かかる画像処理においては、画像全体のデータ（ベイヤーデータやＹＵＶデータ）を処理単位とするのではなく、転送能力に起因する制約等との関係から、元画像を垂直方向に分割した帯状のベルトと呼ばれる複数ライン分のデータを処理単位とし、作業用のメモリからベルト毎にデータを順に転送して処理することが行われている（図７参照）。
【０００５】
一方、主としてＹＵＶデータへの変換後に実行されるＪＰＥＧ符号化処理に際しては、その符号化形式が例えば４：２：２であれば８×８画素のブロック単位（ＭＣＵ）で符号化が行われ、また４：２：０であれば１６×１６画素のブロック単位で符号化が行われる。このため、処理の高速化を目的として、前記ベルトのライン数は、ＹＵＶデータ換算で８ライン又はその倍数である１６ラインとすることが好ましい。これは、ベイヤーデータに換算すると、例えばＹＵＶデータを１ピクセル生成するためにベイヤーデータを７×７ピクセル使用していた場合には、該当ピクセルの周囲にそれぞれ３ピクセル分のベイヤーデータが必要となるため、それぞれ１４ラインまたは２２ラインに相当することとなる。そして、１ベルト目と最終ベルト目においては、ベイヤーデータの不足分として前記リングピクセルを予め設定されている固定的なライン数、例えば３ライン分だけ加えて転送を行うようにしている（例えば、特許文献１参照）。
【特許文献１】特開２００６−２１１４０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ベイヤーデータのライン数は、４７９ラインや２９ライン等の、約数を持たない素数となる場合があり、このような場合にはＹＵＶデータ換算のライン数で１ラインずつ転送することとなる。つまり、より簡易な回路構成で転送を行うために、各ベルト間でライン数を変化させるのではなく、各ベルト間でライン数を一致させている。そして、このようにＹＵＶデータ換算のライン数で１ラインずつ転送する場合には、１ベルト目や最終ベルト目以外においても、具体的には２ベルト目や３ベルト目、あるいは最終−２ベルト目や最終−１ベルト目においても、ベイヤーデータに対してリングピクセルを付加する必要が生ずる。したがって、前述した従来技術のように、１ベルト目と最終ベルト目においてのみ、前記リングピセルを固定的に、例えば３ライン分だけ加えて転送を行い、他のベルトでのリングピクセルの付加を考慮していない転送装置では、特にベイヤーデータのライン数が素数であるような場合の転送に対応することができない。
【０００７】
本発明は、かかる従来の課題に鑑みてなされたものであり、ベイヤーデータのライン数が素数である場合であっても、支障なくリングピクセルを付加して転送を行うことのできる転送装置、転送制御プログラム及び撮像装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するため請求項１記載の発明に係る転送装置にあっては、格納手段に格納されたベイヤーデータにリングピクセルを付加して転送する転送装置であって、前記格納手段に格納されるベイヤーデータに付加するリングピクセル数が、予め記憶された記憶手段と、前記格納手段に格納されるベイヤーデータの画素数を取得する取得手段と、前記取得手段により取得されたベイヤーデータの画素数に基づいて、転送単位となる転送画素数を設定する設定手段と、前記設定手段により設定された転送画素数での各転送時に、前記リングピクセルを付加するか否かを判断する判断手段と、前記判断手段によりリングピクセルを付加すると判断されたときに、前記記憶手段に記憶されているリングピクセル数と、前記設定手段により設定された転送画素数とに基づいて、当該転送時に付加するリングピクセル数を可変設定する可変設定手段とを備えたことを特徴とする。
【０００９】
また、請求項２記載の発明に係る転送制御プログラムにあっては、格納手段に格納されたベイヤーデータにリングピクセルを付加して転送する転送装置が有するコンピュータを、前記格納手段に格納されるベイヤーデータの画素数を取得する取得手段と、前記取得手段により取得されたベイヤーデータの画素数に基づいて、転送単位となる転送画素数を設定する設定手段と、前記設定手段により設定された転送画素数での各転送時に、前記リングピクセルを付加するか否かを判断する判断手段と、前記判断手段によりリングピクセルを付加すると判断されたときに、前記格納手段に格納されるベイヤーデータに付加するリングピクセル数が予め記憶された記憶手段に記憶されている前記リングピクセル数と、前記設定手段により設定された転送画素数とに基づいて、当該転送時に付加するリングピクセル数を可変設定する可変設定手段として機能させることを特徴とする。
【００１０】
また、請求項３記載の発明に係る撮像装置にあっては、被写体を撮像してベイヤーデータを取得する撮像手段と、前記撮像手段により取得されたベイヤーデータを格納する格納手段と、前記格納手段に格納されるベイヤーデータに付加するリングピクセル数が、予め記憶された記憶手段と、前記格納手段に格納されるベイヤーデータの画素数を取得する取得手段と、前記取得手段により取得されたベイヤーデータの画素数に基づいて、転送単位となる転送画素数を設定する設定手段と、前記設定手段により設定された転送画素数での各転送時に、前記リングピクセルを付加するか否かを判断する判断手段と、前記判断手段によりリングピクセルを付加すると判断されたときに、前記記憶手段に記憶されているリングピクセル数と、前記設定手段により設定された転送画素数とに基づいて、当該転送時に付加するリングピクセル数を可変設定する可変設定手段とを備えたことを特徴とする。
【００１１】
また、請求項４記載の発明に係る転送制御プログラムにあっては、被写体を撮像してベイヤーデータを取得する撮像手段を備える撮像装置が有するコンピュータを、前記撮像手段により取得されたベイヤーデータを格納する格納手段と、前記格納手段に格納されるベイヤーデータに付加するリングピクセル数が、予め記憶された記憶手段と、前記格納手段に格納されるベイヤーデータの画素数を取得する取得手段と、前記取得手段により取得されたベイヤーデータの画素数に基づいて、転送単位となる転送画素数を設定する設定手段と、前記設定手段により設定された転送画素数での各転送時に、前記リングピクセルを付加するか否かを判断する判断手段と、前記判断手段によりリングピクセルを付加すると判断されたときに、前記記憶手段に記憶されているリングピクセル数と、前記設定手段により設定された転送画素数とに基づいて、当該転送時に付加するリングピクセル数を可変設定する可変設定手段として機能させることを特徴とする転送制御プログラム。
【発明の効果】
【００１２】
本発明によれば、ベイヤーデータのライン数が素数である場合であっても、支障なくリングピクセルを付加して効率的に転送を行うことが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態におけるカメラ装置の画像処理に関連する主要な構成を示すブロック図である。図１に示すように、本実施の形態におけるカメラ装置には、ＣＰＵ１、ＡＳＩＣ（Application Specific Integrated Circuit）２、ＲＡＭ３、ＣＣＤ４、ＲＯＭ５、ＬＣＤ（Liquid Crystal Display）６、キーボード７などを有して構成されているとともに、各部に電源を供給する電源部８を備えている。
【００１４】
ＣＰＵ１は、ＲＯＭ５に記憶されたプログラムを実行することによりカメラ装置全体の制御を司るもので、コントロールバス９を介してＡＳＩＣ２に制御信号を出力し、ＡＳＩＣ２における各種のデータ入出力処理や画像処理などを制御する。ＡＳＩＣ２は、ＣＰＵ１の制御のもとで、本実施の形態における画像データへのデータ付加を伴う画像処理など各種処理を実行する。ＡＳＩＣ２では、撮像系からの画像データの入力、キーボード７におけるキー入力制御、ＬＣＤ６における表示制御などを実行する。また、ＡＳＩＣ２は、画像データについてＲＡＭ３とのＤＭＡ（Direct Memory Access）制御を行いながら各種の画像処理を行う。
【００１５】
ＲＡＭ３は、画像データなどを記憶するもので、データバス１０を通じてＡＳＩＣ２との間でデータが転送される。ＲＯＭ５は、ＣＰＵ１により実行されるプログラムを格納する。図示しない光学レンズ系の撮影光軸後方に配置された撮像素子であるＣＣＤ４は、走査駆動されて、一定周期毎に結像した光像に対応する光電変換出力を行う。この光電変換出力は、アナログ値の信号の状態でＲＧＢの各原色成分毎に適宜ゲイン調整された後に、サンプルホールドされ、デジタルデータに変換される。
【００１６】
キーボード７は、パワーＳＷ、シャッタキー、モードスイッチ、メニューキー、選択キー、ズームボタン、及び十字キー（カーソルキー）等から構成され、それらのキー操作に伴なう信号がＡＳＩＣ２（後述するキーボード制御部２１）へ送出される。ＬＣＤ６は、撮影モード時に電子ファインダとしてスルー画像をリアルタイム表示したり、シャッタキーの操作に伴って撮像された撮影画像を表示する。なお、図示していないが、図１に示す構成の他に撮像された画像を記録するための記録媒体として着脱自在に装着されているメモリカードや固定的に内蔵されている内蔵メモリが設けられる。
【００１７】
図２は、図１に示すＡＳＩＣ２の詳細な構成を示すブロック図である。ＡＳＩＣ２には、ＬＣＤ制御部２０、キーボード制御部２１、ＣＣＤ制御部２２、データＩ／Ｆ（インタフェース）部２３、画像データ転送部２４の他、画像データ処理ブロック２８として画像処理部２５、画素数変換部２６、デブロッキングフィルタ部２７などの機能が設けられている。
【００１８】
ＬＣＤ制御部２０は、ＬＣＤ６を駆動して画像の表示を制御する。キーボード制御部２１は、キーボード７に対するユーザ操作に伴うキー入力情報を取り込む。ＣＣＤ制御部２２は、撮像系（ＣＣＤ４）の制御を行い、ＣＣＤ４により取得された画像データ（ベイヤーデータ）を取り込み、データＩ／Ｆ部２３に出力する。データＩ／Ｆ部２３は、ＣＣＤ制御部２２の制御によりＣＣＤ４から取得された画像データのＲＡＭ３への書き込みや、ＲＡＭ３に書き込まれた画像データの読み込み、あるいは画像データ転送部２４から画像データ処理ブロック２８により各種画像処理された後の画像データのＲＡＭ３への書き込みなどのデータ制御を行う。
【００１９】
画像データ転送部２４は、データＩ／Ｆ部２３と画像データ処理ブロック２８との間のデータ転送を制御する。画像データ転送部２４は、ＣＰＵ１の制御により、データＩ／Ｆ部２３を介して入力される画像データを、画像データ処理ブロック２８の何れか、すなわち画像処理部２５、画素数変換部２６、デブロッキングフィルタ部２７の何れかに転送し、画像データ処理ブロック２８において処理された画像データをデータＩ／Ｆ部２３に転送する。画像データ転送部２４は、画像データ処理ブロック２８に画像データを転送する際、画像処理の対象となる元画像データに対して、画像処理で必要とするリングピクセルを元画像の周辺に付加して画像データ処理ブロック２８に転送する。画像データ転送部２４は、元画像データに対して付加するリングピクセルを、ＣＰＵ１の制御により画像処理の内容に応じてピクセル数を選択的に変更することができる。
【００２０】
画像処理部２５は、ベイヤーデータをＹＵＶデータに変換する画像処理を実行する。画素数変換部２６は、画像を拡大あるいは縮小するために、画像データに対する補間処理によって画像数を変換する拡大・縮小処理を行う。デブロッキングフィルタ部２７は、ＭＰＥＧ４デコード時にブロッキングノイズを緩和するためのフィルタ処理を実行する。
【００２１】
画像データ処理ブロック２８における画像処理では、処理対象とする注目ピクセルに対して、その周辺のピクセルのデータを用いて処理を実行する。したがって、例えば画像処理によって得られるＹＵＶデータの画像サイズを元画像データと同じにする場合、元画像の周辺にリングピクセルを付加し、このリングピクセルの画像データを含めて画像処理を実行することで対応する。
【００２２】
本実施の形態では、画像処理に必要なリングピクセルを、ＲＡＭ３に展開記憶された画像データに対して付加するのではなく、ＲＡＭ３に記憶された元画像データを画像データ処理ブロック２８に転送する際に、画像データ転送部２４において画像処理の必要性に応じてリングピクセルのデータを付加していく。画像データ処理ブロック２８では、処理すべき画像データを構成する複数のデータの転送順序に基づいて各データのピクセル位置を認識しながらそれぞれの画像処理を実行し、画像データ転送部２４は、画像データ処理ブロック２８において画像処理を実行する際に認識されるデータの転送順序に対応して順次ピクセル位置を発生させながら、該当するデータを画像データ処理ブロック２８に順次転送する。なお、データバス１０は３２ビットバスとし、ＤＭＡは１６バーストとする。
【００２３】
次に、本実施の形態におけるカメラ装置における画像処理の動作について説明する。撮像系（ＣＣＤ４）により撮影された画像データがＣＣＤ制御部２２により取り込まれ、データＩ／Ｆ部２３を介してＲＡＭ３に書き込まれる。図３には、ＲＡＭ３に展開記憶された画像データ（ベイヤーデータ）を示している。図３に示すベイヤーデータは、１ピクセルが８ビットのデータである。
【００２４】
ここで、ベイヤーデータを画像処理部２５においてＹＵＶデータに変換するために、図４に示すように、ベイヤーデータ（画像処理部２５が処理するデータブロック）の周辺に３ピクセル分のリングピクセルが必要であるものとし、この必要とするリングピクセル数については、予めＲＯＭ５に記憶されている。つまり、ここでは、注目ピクセルを中心とした７×７ピクセルのベイヤーデータを用いてＹＵＶデータへの変換を実行するものとして説明する。
【００２５】
一方、ＣＰＵ１が、ＲＯＭ５に記憶されたプログラムを実行することによりカメラ装置は図５のフローチャートに示すように動作する。すなわち、ＣＰＵ５は、前記ＲＡＭ３に展開された画像データ（ベイヤーデータ）の縦サイズを取得し（取得手段）、この取得したベイヤーデータの縦サイズが素数であるか否かを判断する（ステップＳ１）。
【００２６】
なお、当該カメラ装置において、ＲＡＭ３に展開された画像データ（ベイヤーデータ）の縦サイズが素数である場合が、横６４０×縦４７９のみである場合は、ステップＳ１において前記ＲＡＭ３に展開された画像データ（ベイヤーデータ）の縦サイズが横６４０×縦４７９であるか否かを判断すればよい。
【００２７】
この判断がＮＯであって、ベイヤーデータの縦サイズが素数ではなく、例えば横６４０×縦４８０である場合には、１ベルト目と最終ベルトに対してのみ、ベイヤーデータに固定的なライン数のリングピクセルを付加して転送するといった通常画像処理を実行する（ステップＳ２）。
【００２８】
この通常画像処理においては、画像データ転送部２４は、データＩ／Ｆ部２３を介して、ＲＡＭ３に記憶されたベイヤーデータを順次読み込み、図６に示すように、所定単位（ベルト単位）のデータ毎に垂直方向に分割（例えば１６ピクセル単位で３０分割）し、必要に応じてリングピクセル（３ピクセル）を付加しながら、画像処理部２５に対して垂直方向に１ピクセル単位（８ビット）でデータを転送する。図６では、１つのベルトの上下左右にそれぞれ３ピクセルのデータを付加して画像処理部２５に転送する。
【００２９】
ＲＡＭ３に記憶されたベイヤーデータ全体については、図７に示すように、ベルト単位で画像処理部２５にデータが転送される。１ベルト目のデータについては、画像データ転送部２４によりベルトの上に３ライン分のリングピクセルを付加してベイヤーデータの上側から１９ライン目まで（１６ライン＋下側付加分の３ライン）を転送する。すなわち、１ベルト目と２ベルト目の間のように、画像データが存在する場合には、画像データ転送部２４によりリングピクセル付加を行わず、元のデータを画像処理部２５に出力する。２ベルト目から２９ベルト目までは２２ライン分（上側付加分の３ライン＋１６ライン＋下側付加分の３ライン）のベイヤーデータを転送することとなる。また、３０ベルト目（最終ベルト）では、画像データ転送部２４によりベルトの下に３ライン分のリングピクセルを付加してベイヤーデータの下側から１９ライン目まで（上側付加分の３ライン＋１６ライン）を転送する。つまり、ここでは、各ベルトでのライン数がＹＵＶデータ換算で１６ラインとなるようにベイヤーデータを転送している。
【００３０】
なお、図では、各ベルトの上下のリングピクセルのみについて説明しているが、各ベルトの左右に対してもそれぞれ縦に３ライン分のリングピクセルのデータが画像データ転送部２４により付加されて画像処理部２５に転送される。
【００３１】
画像処理部２５は、画像データ転送部２４から所定の順番で転送されたデータに対して、分割単位（ベルト単位）ごとに各データのピクセル位置を認識しながらデータを処理し、６４０×１６ピクセルのＹＵＶデータを生成し、画像データ転送部２４に出力する。画像データ転送部２４は、画像処理部２５からの画像データを、データＩ／Ｆ部２３を介してＲＡＭ３に書き込む。
【００３２】
このように、画像処理部２５においてベイヤーデータをＹＵＶデータに変換する処理にリングピクセルのデータが必要な場合に、ＲＡＭ３に展開記憶されたベイヤーデータに対して付加するのではなく、画像データ転送部２４において、画像処理部２５に対してデータを出力する直前に付加するようにしている。よって、ＲＡＭ３では元画像データのみを記憶させておくだけで良く画像データの占有領域を増大させることがない。
【００３３】
ここで、画像データに対してリングピクセルを付加する処理を実行するための画像データ転送部２４の詳細な構成と動作について説明する。まず、画像データ転送部２４のリングピクセルを付加する機能構成の概略について説明する。
【００３４】
（１）画像データ記憶
まず、ＣＣＤ４によって取得された画像データ（各ピクセル位置のデータを含む）を実メモリ（入力バッファ）に記憶する。ここでは、例えばベルト単位で複数回に分けてＣＣＤ４により取得された画像データが読み込まれて一時記憶されるものとする。例えば、実メモリ（入力バッファ）に記憶されるデータのデータ長を３２ビットとして記憶する。
【００３５】
（２）ピクセル範囲設定
画像データ処理ブロック２８に転送する画像データにおけるピクセル範囲（Ｘmin Ｙmin，Ｘmax，Ｙmax）と、このピクセル範囲の周辺に画像処理の内容に応じて付加されるリングピクセルを含む全体のピクセル範囲（Ｘmin0 ，Ｙmin0，Ｘmax0，Ｙmax0）を設定する。ここでは、ピクセル範囲（Ｘmin Ｙmin，Ｘmax，Ｙmax）は、１つのベルトの画像データとなる。
【００３６】
（３）ピクセル位置指定
全体のピクセル範囲（Ｘmin0 ，Ｙmin0，Ｘmax0，Ｙmax0）における転送すべきピクセル位置（Ｘ，Ｙ）を逐次順番に指定する。例えば、実メモリ（入力バッファ）にはベルト単位で画像データが記憶される場合には、複数のベルトのそれぞれについて順番に処理する。１つのベルトの画像データに対する処理は、Ｙ方向、Ｘ方向の順で順次ピクセル位置を更新していく。
【００３７】
なお、前述した説明では、実メモリにベルト単位で画像データが記憶される場合を例にして説明しているが、ベルト単位に分割した処理に限定されるものではない。また、この画像データに対するピクセル位置の指定順序は、Ｙ方向、Ｘ方向の順に限定されない。
【００３８】
（４）ピクセル位置判定
ピクセル位置（Ｘ，Ｙ）がピクセル範囲（Ｘmin Ｙmin，Ｘmax，Ｙmax）に含まれるか否か、すなわち指定されたピクセル位置に対応するデータの有無を判定する。ここでは条件（Ｘ＜Ｘmin）ｏｒ（Ｘ＞Ｘmax）ｏｒ（Ｙ＜Ｙmin）ｏｒ（Ｙ＞Ｙmax）を満たす場合に、指定されたピクセル位置に対応するデータが存在しないと判定することができる。
【００３９】
（５）ピクセル位置変換
転送すべきピクセル位置（Ｘ，Ｙ）を、ピクセル範囲（Ｘmin Ｙmin，Ｘmax，Ｙmax）内の転送対象とするデータのピクセル位置に変換する。例えば、２×２ピクセルが単位ブロックであるベイヤーデータなどの場合に、（Ｘ＜Ｘmin）の場合は、（Ｘmin＋（（Ｘmin−１−Ｘ）／２）の余り）をＸに変換し、（Ｘ＞Ｘmax）の場合は、（Ｘmax＋（（Ｘ−Ｘmin＋１）／２）の余り）をＸに変換し、（Ｙ＜Ｙmin）の場合は、（Ｙmin＋（（Ｙmin−１−Ｙ）／２）の余り）をＹに変換し、（Ｙ＞Ｙmax）の場合は、（Ｙmax＋（（Ｙ−Ｙmin＋１）／２）の余り）をＹに変換する。
【００４０】
（６）ピクセル位置選択
ピクセル位置判定の判定結果に基づいて、ピクセル位置指定において転送すべきとして指定されたピクセル位置（Ｘ，Ｙ）か、ピクセル位置変換によって変換されたピクセル位置（Ｘ，Ｙ）の何れかを選択する。すなわち、ピクセル位置指定により指定されたピクセル位置に対応するデータが存在しないと判定した場合には、ピクセル位置変換によって変換されたピクセル位置（Ｘ，Ｙ）を選択する。
【００４１】
（７）メモリアドレス変換
ピクセル位置選択によって選択されたピクセル位置（Ｘ，Ｙ）を、画像データが記憶された実メモリのメモリアドレス及びデータビット位置に変換する。ここでは、ＣＣＤ４によって取得されたデータ（画素情報）を一時記憶する実メモリ（入力バッファ）の構成および格納方法に応じて、適宜ピクセル位置とメモリアドレスの変換を行う。例えば、１画素が８ビット、実メモリのデータ長が３２ビットなどの場合は、メモリアドレスおよびデータビット位置によって１つのピクセル位置が指定される。
（８）データ転送制御。
メモリアドレス変換による変換により得られたメモリアドレス（及びデータビット位置）に従い、所定タイミングによるデータ転送を制御する。
【００４２】
次に、画像データ転送部２４の詳細について説明する。図８は、画像データ転送部２４のリングピクセルを付加するための構成を示すブロック図である。図８に示すように、画像データ転送部２４には、入力バッファ２４０、アドレス生成部２４１、垂直ラインカウンタ２４２、垂直リングピクセルカウンタ２４３、水平ピクセルカウンタ２４４、水平リングピクセルカウンタ２４５、データ選択部２４６、データセレクタ２４７が設けられている。
【００４３】
入力バッファ２４０は、データＩ／Ｆ部２３から入力されるデータを記憶するもので、例えば入力データ用に３２ビット×１６バースト×３２ライン分のバッファ領域、出力データ用に３２ビット×１６バースト×１６ライン分のバッファ領域が設けられている。なお、入力バッファ２４０のバッファ領域はこれに限るものではない。
【００４４】
アドレス生成部２４１は、垂直ラインカウンタ２４２のカウンタ値と垂直リングピクセルカウンタ２４３によるカウンタ値に応じた入力バッファ２４０のアドレスを生成する。入力バッファ２４０が示すアドレスにより、３２ビット（４ピクセル）のデータが読み出される。垂直ラインカウンタ２４２は、入力バッファ２４０に記憶されたデータのアドレスを生成するためにライン数をカウントする。垂直リングピクセルカウンタ２４３は、入力バッファ２４０に記憶されたデータに付加する垂直方向のリングピクセル（垂直リングピクセル）の数をカウントする。
【００４５】
水平ピクセルカウンタ２４４は、入力バッファ２４０に記憶されたデータの１ライン中のピクセル位置をカウントする。水平リングピクセルカウンタ２４５は、入力バッファ２４０に記憶されたデータに付加する水平方向のリングピクセル（水平リングピクセル）の数をカウントする。データ選択部２４６は、水平ピクセルカウンタ２４４あるいは水平リングピクセルカウンタ２４５の何れかを選択し、この選択されたカウンタによりカウントされた値を出力する。データセレクタ２４７は、データ選択部２４６から出力された値をもとに、アドレス生成部２４１が示すアドレスのデータ（３２ビット）から１ピクセル（８ビット）分のデータを選択して画像処理部２５に出力する。なお、データセレクタ２４７は、画像データが記憶される入力バッファ２４０の構成やバッファリングの方法に応じて、画像処理部２５に転送すべきデータ（例えば１ピクセル）を選択できるように構成される。
【００４６】
画像データ転送部２４の入力バッファ２４０には、入力データ用に３２ビット×１６バースト×３２ライン分の記憶容量が設けられており、ＲＡＭ３に記憶されたベイヤーデータが１ピクセル８ビットなので６４ピクセル×３２ライン分を取り込むことができる。画像データのサイズが水平６４０ピクセルなので（図３）、この入力バッファ２４０への取り込みを１０回繰り返すことで１ベルト分のデータを処理することができる。
【００４７】
なお、出力データ用に３２ビット×１６バースト×１６ライン分の記憶容量が設けられ、画像処理部２５における画像処理によって得られるＹＵＶ４２２の画像データが３２ビットで２ピクセル分なので、３２ピクセル×１６ライン分を取り込むことができる。画像サイズが水平６４０ピクセルなので、この入力バッファ２４０のデータ取り込みを２０回繰り返すことで１ベルト分のデータを処理できる。
【００４８】
まず、１ベルト目については、ＲＡＭ３から読み込まれたデータ（３２ビット×１６バースト×１９ライン分）が、図９のように入力バッファ２４０に書き込まれる。図９において記載されている番号は、ライン番号と水平ピクセル番号を表したもので、１−１は１ライン目の１ピクセル、２−５は２ライン目の５ピクセルを示している。入力バッファ２４０への書き込み時には、３２ビット毎に３２ライン分あけてデータ書き込みを行う。例えば、１−１，１−２，１−３，１−４のデータ（３２ビット）を書き込んだ後は、３２ライン分の容量のあとに１−５，１−６，１−７，１−８のデータを書き込む。
【００４９】
画像データ転送部２４は、垂直ラインカウンタ２４２と水平ピクセルカウンタ２４４によって、入力バッファ２４０に記憶された転送すべきデータに対応するピクセル位置をカウントし、また入力バッファ２４０に記憶されたデータに対して付加するリングピクセルをカウントする（ピクセル範囲設定、ピクセル位置指定）。画像処理部２５へのデータは、垂直ラインカウンタ２４２によりカウントされるベルトのライン数分連続したバッファアドレスからデータを読み出し、この読み出した３２ビット中の８ビットを水平ピクセルカウンタ２４４によりカウントされる値に応じて選択して出力する。
【００５０】
ここでは、図４に示すように、入力バッファ２４０に記憶されたデータに対して３ライン分のリングピクセルを付加するため、垂直リングピクセルカウンタ２４３と水平ピクセルカウンタ２４４によって３ピクセルをカウントする。垂直ラインカウンタ２４２、垂直リングピクセルカウンタ２４３、水平ピクセルカウンタ２４４、水平リングピクセルカウンタ２４５の初期値をそれぞれ１とする。垂直ラインカウンタ２４２は、垂直リングピクセルカウンタ２４３がリングピクセル分のカウントを終了するまでカウントが停止される。また、水平ピクセルカウンタ２４４は、水平リングピクセルカウンタ２４５がリングピクセル分のカウントを終了するまでカウントが停止される。
【００５１】
アドレス生成部２４１は、垂直リングピクセルカウンタ２４３によりカウントされるリングピクセルの位置が奇数位置である場合には、垂直ラインカウンタ２４２によりカウントされているカウンタ値に＋１した値に応じたアドレスを生成し、偶数位置である場合にはカウンタ値に応じたアドレスを生成する。また、データ選択部２４６は、水平リングピクセルカウンタ２４５によりカウントされるリングピクセルの位置が奇数位置である場合には、水平ピクセルカウンタ２４４によりカウントされているカウンタ値に＋１した値、偶数位置である場合にはカウンタ値を選択する。
【００５２】
データセレクタ２４７は、データ選択部２４６によって選択されたカウンタ値に応じて、アドレス生成部２４１が生成したアドレスに記憶された３２ビット中の８ビットを選択して画像処理部２５に出力する（メモリアドレス変換）。垂直リングピクセルカウンタ２４３と水平リングピクセルカウンタ２４５によりリングピクセル分のカウントが終了するまでは、垂直ラインカウンタ２４２と水平ピクセルカウンタ２４４のカウント値に該当するピクセル位置に対応するデータがないものとし（ピクセル位置判定）、垂直ラインカウンタ２４２と水平ピクセルカウンタ２４４によりカウントされたカウント値をもとに、入力バッファ２４０に記憶されたデータを出力するためのピクセル位置をアドレス生成部２４１とデータ選択部２４６によって求める（ピクセル位置選択、ピクセル位置変換）。したがって、１ベルト目では、図１０中に矢印で示すように、入力バッファ２４０に記憶されたデータが２−２，１−２，２−２，１−２，２−２、３−２，４−２・・・の順番で画像処理部２５に出力される。
【００５３】
同様に、ベルトの最後でもリングピクセル分カウンタを停止し、垂直リングピクセルカウンタ２４３が奇数位置では、垂直ラインカウンタ２４２によるラインカウンタ値＋１、偶数位置ではラインカウンタ値によりバッファアドレスを生成し、水平ピクセルカウンタ２４４が奇数位置では水平ピクセルカウンタ値−１、偶数位置では水平ピクセルカウンタ値により、３２ビット中８ビットを選択することで図１０に示すような順番でデータを画像処理部２５に出力する。
【００５４】
２ベルト目から最終ベルトの１つ前のベルトまでについては、上下に位置するベルトのデータ（３ライン）を用いるため、水平方向（左右）のみについて前述と同様にしてリングピクセルの付加を行う。図１１には、２ベルト目のデータを示す。図１１に示すように、上リングピクセル３ラインは、１４〜１６ラインのデータがリングピクセルとして付加され、下リングピクセル３ラインは、３３〜３５ラインのデータが付加されている。
【００５５】
最終ベルトのベルト開始位置でのリングピクセル付加は、垂直リングピクセルカウンタ２４３が奇数位置では、垂直ラインカウンタ２４２によるラインカウンタ値−１、偶数位置ではラインカウンタ値によりバッファアドレスを生成し、水平リングピクセルカウンタ２４５が奇数位置を示す場合には水平ピクセルカウンタ２４４による水平ピクセルカウンタ値＋１、偶数位置では水平ピクセルカウンタ値により３２ビット中８ビットを選択して出力する。また、ベルトの終了位置では、垂直リングピクセルカウンタ２４３が奇数位置では、垂直ラインカウンタ２４２によるラインカウンタ値−１、偶数位置ではラインカウンタ値によりバッファアドレスを生成し、水平リングピクセルカウンタ２４５が奇数位置を示す場合には水平ピクセルカウンタ２４４による水平ピクセルカウンタ値−１、偶数位置では水平ピクセルカウンタ値により、３２ビット中８ビットを選択して出力する。
【００５６】
一方、図５のフローチャートにおいて、ステップＳ１の判断がＹＥＳであって、ベイヤーデータが横６４０×縦４７９であり、この横６４０×縦４７９のベイヤーデータをＹＵＶデータに変換する場合には、ステップＳ１からステップＳ３に進む。この場合には、縦サイズが「４７９」で素数であるので、１ベルトは有効画素１ピクセル＋リングピクセルとなる。したがって、図１２に示すように、１ベルト目及び最終ベルト以外でもリングピクセル付加を行わなければならない。つまり、各ベルト間で、ベイヤーデータに付加するリングピクセル数を可変させて転送する必要がある。
【００５７】
そこで、先ず画像データ処理ブロック２８に転送するベイヤーデータが１ベルト目であるか否かを判断する（ステップＳ３）。１ベルト目である場合には、上側にリングピクセルを３ライン分だけ付加する必要があることから、付加するライン分を「３」に設定して、画像データ転送部２４から画像データ処理ブロック２８に転送する（ステップＳ４）。また、２ベルト目である場合には（ステップＳ５；ＹＥＳ）、上側にリングピクセルを２ライン分だけ付加する必要があることから、付加するライン分を「２」に設定し（ステップＳ６）、３ベルト目である場合には（ステップＳ７；ＹＥＳ）、上側にリングピクセルを１ライン分だけ付加する必要があることから、付加するライン分を「１」に設定する（ステップＳ８）。
【００５８】
また、ステップＳ３、Ｓ５、Ｓ７の判断が全てＮＯであって、１ベルト目から３ベルト目のいずれでもない場合には、最終−２ベルト目であるか否か（ステップＳ９）、最終−１ベルト目であるか否か（ステップＳ１１）、及び最終ベルト目であるか否か（ステップＳ１３）を各々判断する。この結果、これらステップＳ９、Ｓ１１、Ｓ１３の判断が全てＮＯであって最終−２ベルト目、最終−１ベルト目、及び最終ベルト目のいずれでもなかった場合には、ステップＳ１３からステップＳ１４に進み、付加するライン分を「０」に設定し、リングピクセルを付加することなく転送を行う。
【００５９】
したがって、４ベルト目から最終−２ベルト目までは、リングピクセルの付加を伴うことなく、画像データ転送部２４から画像データ処理ブロック２８への転送が行われる。
【００６０】
また、最終−２ベルト目を転送する際には、下側にリングピクセルを１ライン分だけ付加する必要がある。このとき、ステップＳ９の判断がＹＥＳとなる。したがって、ステップＳ９からステップＳ１０に進み、付加するライン分を「１」に設定して転送する。また、最終−１ベルト目である場合には（ステップＳ１１；ＹＥＳ）、下側にリングピクセルを２ライン分だけ付加する必要があることから、付加するライン分を「２」に設定して転送し（ステップＳ１２）、最終ベルト目である場合には（ステップＳ１３；ＹＥＳ）、下側にリングピクセルを３ライン分だけ付加する必要があることから、付加するライン分を「３」に設定して転送する（ステップＳ１５）。
【００６１】
したがって、ベイヤーデータのライン数が約数を有する前記４８０ラインである場合は無論のこと、約数を有しない素数である４７９ラインである場合であっても、支障なくリングピクセルを付加して効率的に転送を行うことが可能となる。
【００６２】
無論、画像データ転送部２４から画像データ処理ブロック２８への転送が行われた後における処理は、前述した通常画像処理（ステップＳ２）において説明した処理と同様である。
【００６３】
なお、リングピクセル付加を自動的に行うか否かを設定するレジスタを設けるようにしてもよい。この場合、自動的に行わない場合には、上及び左方向のリングピクセル付加は、各々レジスタに設定された値を使用して、リングピクセルを行う。自動的に行うように設定された場合には、各処理に必要なリングピクセル数が決まって（例えば拡大処理なら５ピクセル）おり、その１／２を四捨五入した値を上及び左方向のリングピクセルとするようにする。但し、元画像がリングピクセルを含めることができるサイズである場合には、リングピクセル付加を行わないようにする。例えば、入力画像として６４０×４８０が必要で、リングピクセルが５ピクセルとした場合、元画像が６４５×４８５以上のサイズであればリングピクセル付加を行わないようにする。
【００６４】
また、上述の実施形態では、ベイヤーデータの総ライン数が素数であるか否かを判断する場合について説明したが、ベイヤーデータの総ライン数に対する約数のうち、ＹＵＶデータ換算で一度に転送可能な最大ライン数（各ベルトのライン数として設定可能なライン数のうち最大のライン数）をベイヤーデータでのライン数に変換した値以下で且つその中で最大の約数（以下、「最適転送ライン数」と記す）と、ベイヤーデータに付加するために予め記憶されているリングピクセル数とを比較し、リングピクセル数が最適転送ライン数以上であった場合には、１ベルト目と最終ベルトに対してのみベイヤーデータに固定的なライン数のリングピクセルを付加して転送するといった処理を選択し、リングピクセル数が最適転送ライン数未満であった場合には、各ベルト間でベイヤーデータに付加するリングピクセル数を可変させて転送するといった処理を選択する構成としてもよい。
【００６５】
ここで、上記最適転送ライン数について換言すると、ベイヤーデータを転送する際に、各ベルト間での転送ライン数を等しくできる条件のうち、ベルト数を最少にできるライン数（転送回数を最少にできるライン数）を示している。
【００６６】
つまり、ベイヤーデータの総ライン数（または画素数）に基づいて、転送効率上理想となる各ベルトのライン数（転送単位となる画素数）を最適転送ライン数として設定するとともに、リングピクセル数が最適転送ライン数以上であった場合には、１ベルト目と最終ベルトに対してのみ、ベイヤーデータに固定的なライン数を付加し、リングピクセル数が最適転送ライン数未満であった場合には、１ベルト目と最終ベルト以外にもリングピクセルが必要となるため、各ベルト間で付加するリングピクセル数を可変させて、必要数のリングピクセルとなるように付加する構成としてもよい。これにより、転送効率を向上させることができるとともに、ベイヤーデータにリングピクセルを適切に付加することができる。なお、各ベルトに付加するリングピクセル数は、例えば、最適転送ライン数とリングピクセルとの関係に対応させて、予め記憶させておけばよい。これにより、各ベルトにリングピクセルを付加するか否か、また、付加すると判断された場合に、付加するリングピクセル数をベルト毎に適宜判断することが可能となる。
【００６７】
また、前述した説明では、デジタルスチルカメラやデジタルビデオカメラなどのカメラ装置を対象としているが、カメラ機能付きの携帯電話機や携帯型の情報処理装置（ＰＤＡ（personal digital assistant）やＰＣ（Personal Computer）など）に適用することもできる。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施形態におけるカメラ装置の画像処理に関連する主要な構成を示すブロック図である。
【図２】図１に示すＡＳＩＣの詳細な構成を示すブロック図である。
【図３】本実施の形態におけるＲＡＭに展開記憶された画像データ（ベイヤーデータ）の一例を示す図である。
【図４】同実施の形態におけるベイヤーデータの周辺に付加されるリングピクセルを示す図。
【図５】同実施の形態の動作を示すフローチャートである。
【図６】同実施の形態における画像処理部へのデータ転送をしめす説明図である。
【図７】同実施の形態における画像処理部へのベルト単位でのデータ転送を示す説明図である。
【図８】同実施の形態における画像データ転送部のリングピクセルを付加するための構成を示すブロック図である。
【図９】同実施の形態における入力バッファ同実施の形態に記憶されるデータの一例を示す図である。
【図１０】同実施の形態における１ベルト目に付加されるリングピクセルを示す図である。
【図１１】同実施の形態における２ベルト目に付加されるリングピクセルを示す図である。
【図１２】同実施の形態におけるライン数が４７９である場合の第１〜第３ベルト目及び最終ベルト−１〜最終ベルト目のピクセル構成図である。
【符号の説明】
【００６９】
１    ＣＰＵ
２    ＡＳＩＣ
３    ＲＡＭ
４    ＣＣＤ
５    ＲＯＭ
６    ＬＣＤ
７    キーボード
８    電源部
９    コントロールバス
１０    データバス
２０    ＬＣＤ制御部
２１    キーボード制御部
２２    ＣＣＤ制御部
２３    データＩ／Ｆ部
２４    画像データ転送部
２５    画像処理部
２６    画素数変換部
２７    デブロッキングフィルタ部
２４０    入力バッファ
２４１    アドレス生成部
２４２    垂直ラインカウンタ
２４３    垂直リングピクセルカウンタ
２４４    水平ピクセルカウンタ
２４５    水平リングピクセルカウンタ
２４６    データ選択部
２４７    データセレクタ
【図１】
2008131472.tif 000003
【図２】
2008131472.tif 000004
【図３】
2008131472.tif 000005
【図４】
2008131472.tif 000006
【図５】
2008131472.tif 000007
【図６】
2008131472.tif 000008
【図７】
2008131472.tif 000009
【図８】
2008131472.tif 000010
【図９】
2008131472.tif 000011
【図１０】
2008131472.tif 000012
【図１１】
2008131472.tif 000013
【図１２】
2008131472.tif 000014