(57)【要約】【課題】画像データを複数ライン単位で変倍処理する処理ブロックを備えるとともに、その処理ブロックの後段側に、画像データの入力ライン数が制限される他の処理ブロックが存在する場合であっても、簡略な回路構成で多様な倍率設定による変倍処理を高速に行うことを可能とする。【解決手段】第１ＤＭＡ４、第２ＤＭＡ６がメモリ３の画像データを複数ラインからなる処理単位に分けて転送するとき、拡大部８への転送ライン数を、設定されている画像の変倍率に基づき個々の処理単位毎に制御する。いかなる変倍率が設定されても、第２縮小部１０の出力ライン数をＪＰＥＧ符号化器１３に規定されているライン数に常に一致させることができる。また、ライン数を一致させるために第２縮小部１０にバッファメモリ等の無用の回路構成を設ける必要がなくなる。【選択図】      図１
2006135565.tif 000002
【特許請求の範囲】
【請求項１】
画像データを複数ラインからなる処理単位に分けて転送する転送手段と、
この転送手段により転送された複数ライン分の画像データを変倍処理する変倍手段と、
この変倍手段の倍率を設定する倍率設定手段と、
前記転送手段によって変倍手段に転送される、前記複数ラインからなる処理単位の画像データの転送ライン数を、前記倍率設定手段により設定された倍率に基づき制御するライン数制御手段と
を備えたことを特徴とする画像処理装置。
【請求項２】
前記変倍手段における画像データの出力ライン数を設定するライン数設定手段を備え、
前記ライン数制御手段は、前記倍率設定手段により設定された倍率と、前記画像データによる画像における、前記転送手段が画像データを転送すべき前記倍率に応じた元画像領域の上端位置と、前記倍率による変倍後の大きさの画像における、前記出力ライン数に応じた処理単位毎の上端及び下端の座標位置とに基づき、前記転送手段によって変倍手段に転送される画像データの転送ライン数を制御することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記変倍手段は、画像データを圧縮符号化する圧縮手段に対して変倍処理後の複数ライン分の画像データを出力することを特徴とする請求項１または２記載の画像処理装置。
【請求項４】
前記変倍手段は、前記転送手段により転送された複数ライン分の画像データを拡大処理する拡大処理部と、この拡大処理部の後段に直列で接続されるとともに、拡大処理部による拡大処理後の画像データを縮小処理する縮小処理部とを含み、要求された縮小率に応じた組み合わせの倍率を前記拡大処理部と前記縮小処理部とに設定する倍率制御手段をさらに備えたことを特徴とする請求項１，２又は３記載の画像処理装置。
【請求項５】
前記縮小処理部は、前記拡大処理とは異なる画像処理アルゴリズムに基づいて、拡大処理部による拡大処理後の画像データを縮小処理することを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記縮小処理部が、前記拡大処理部の後段に複数並列接続され、前記倍率制御手段は、複数の縮小処理部に互いに異なる縮小率をそれぞれ設定することを特徴とする請求項４又は５記載の画像処理装置。
【請求項７】
画像データを複数ラインからなる処理単位に分けて転送するとともに、転送された複数ライン毎に画像データを変倍処理し、変倍処理後の画像データを複数ライン毎に出力する画像処理方法において、
変倍処理後の画像データを複数ライン毎に出力する際の出力ライン数を設定する工程と、
変倍処理時の倍率を設定する工程と、
前記画像データの処理単位の転送時における転送ライン数を、設定されている変倍処理時の倍率に基づき個々に調整することにより、変倍処理後の画像データの出力ライン数を設定されている出力ライン数に制御する工程と
を含むことを特徴とする画像処理方法。
【請求項８】
画像データを複数ラインからなる処理単位に分けて転送するとともに、転送された複数ライン毎に画像データを変倍処理し、変倍処理後の画像データを複数ライン毎に出力する画像処理装置が有するコンピュータに、
変倍処理後の画像データを複数ライン毎に出力する際の出力ライン数を設定する手順と、
変倍処理時の倍率を設定する手順と、
前記画像データの処理単位の転送時における転送ライン数を、設定されている変倍処理時の倍率に基づき個々に調整することにより、変倍処理後の画像データの出力ライン数を設定されている出力ライン数に制御する手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラに用いて好適な画像処理装置及び画像処理方法に関するものである。
【背景技術】
【０００２】
従来、例えば撮影により取得したデジタルの画像データを記録媒体に記録するデジタルカメラにおいては、最終的に記録する画像データを得る過程で複数段の画像処理が行われている。例えば撮影に際してメモリに一時記憶されたベイヤデータ、すなわち原色ベイヤー配列の色フィルタに応じた色情報の画素からなる画像データを、画素毎のＲＧＢデータからなるＹＵＶデータに変換するベイヤ補間処理、変換後のＹＵＶデータの画素数を増大させたり、減少させたりすることによりデジタルズーム機能等を実現させる変倍処理、ＪＰＥＧ符号化処理といった画像処理が行われている。また、そうした画像処理では、画像全体のデータ（ベイヤーデータやＹＵＶデータ）を処理単位とするのではなく、画面全体Ａを垂直方向に分割した帯状のベルトと呼ばれる複数ライン分のデータを処理単位とし、作業用のメモリからベルト毎にデータを順に読み出して処理することが行われていた（図２（ａ）参照）。
【０００３】
一方、ＪＰＥＧ符号化処理に際しては、その符号化形式が例えば４：２：２であれば８×８画素のブロック単位（ＭＣＵ）で符号化が行われ、また４：２：０であれば１６×１６画素のブロック単位で符号化が行われる。そのため、上述した各処理を高速化を目的としてハードウェアにより行う場合においては、ＪＰＥＧ符号化処理用のブロックに入力するベルトのライン数を８または１６ラインとする必要がある。したがって、ＪＰＥＧ符号化処理の前の変倍処理において設定可能な倍率が、処理後の出力ライン数がそのままでＪＰＥＧ符号化処理が可能なライン数、すなわち８の倍数となるような倍率に制限されてしまう。
【０００４】
これを解決するものとして、下記特許文献１には、変倍処理用のブロックにバッファメモリを別途設け、そこに変倍処理後の１画面分のＹＵＶデータをいったん展開して記憶させ、１画面分のＹＵＶデータが揃った時点で、そのバッファメモリから８ライン分毎にＹＵＶデータをＪＰＥＧ符号化処理用のブロックへ転送させる方法が記載されている。かかる方法によれば倍率に制約を受けることなく、極めて多様な倍率が設定可能なデジタルズーム機能が実現できるのである。
【特許文献１】特開２００３−１８６１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の方法では、変倍処理後の１画面分のＹＵＶデータをバッファメモリにいったん展開して記憶してから、それを８ライン分毎に読み出すため、そのための回路構成が別途必要となる。また、１画面分のＹＵＶデータの記憶動作、及び８ライン分毎の読み出し動作が、画像処理の高速化の妨げとなるという問題があった。
【０００６】
本発明は、かかる従来の課題に鑑みてなされたものであり、画像データを複数ライン単位で変倍処理する処理ブロックを備えるとともに、その処理ブロックの後段側に、画像データの入力ライン数が制限される他の処理ブロックが存在する場合であっても、簡略な回路構成で多様な倍率設定による変倍処理を高速に行うことが可能となる画像処理装置及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するため請求項１の発明にあっては、画像データを複数ラインからなる処理単位に分けて転送する転送手段と、この転送手段により転送された複数ライン分の画像データを変倍処理する変倍手段と、この変倍手段の倍率を設定する倍率設定手段と、
【０００８】
前記転送手段によって変倍手段に転送される、前記複数ラインからなる処理単位の画像データの転送ライン数を、前記倍率設定手段により設定された倍率に基づき制御するライン数制御手段とを備えたものとした。
【０００９】
かかる構成においては、設定倍率がいかなる場合であっても、変倍手段に転送される画像データの転送ライン数が設定倍率に応じて処理単位毎に調整されることにより、変倍手段における画像データの出力ライン数を常に設定されている出力ライン数に制御することができる。
【００１０】
また、請求項２の発明にあっては、前記変倍手段における画像データの出力ライン数を設定するライン数設定手段を備え、前記ライン数制御手段は、前記倍率設定手段により設定された倍率と、前記画像データによる画像における、前記転送手段が画像データを転送すべき前記倍率に応じた元画像領域の上端位置と、前記倍率による変倍後の大きさの画像における、前記出力ライン数に応じた処理単位毎の上端及び下端の座標位置とに基づき、前記転送手段によって変倍手段に転送される画像データの転送ライン数を制御するものとした。
【００１１】
また、請求項３の発明にあっては、前記変倍手段は、画像データを圧縮符号化する圧縮手段に対して変倍処理後の複数ライン分の画像データを出力するものとした。
【００１２】
かかる構成においては、画像データを画像データを圧縮符号化するの処理に際して、圧縮手段における画像データの入力ライン数を常に設定されている入力ライン数に制御することができる。
【００１３】
また、請求項４の発明にあっては、前記変倍手段は、前記転送手段により転送された複数ライン分の画像データを拡大処理する拡大処理部と、この拡大処理部の後段に直列で接続されるとともに、拡大処理部による拡大処理後の画像データを縮小処理する縮小処理部とを含み、要求された縮小率に応じた組み合わせの倍率を前記拡大処理部と前記縮小処理部とに設定する倍率制御手段をさらに備えたものとした。
【００１４】
かかる構成においては、連続した拡大処理と縮小処理とを経ることによって、元画像の画像データに対する要求された縮小率での縮小が行われるため、縮小処理部には、常に画像劣化を生じさせるような縮小率での縮小処理を行わせることができる。
【００１５】
また、請求項５の発明にあっては、前記縮小処理部は、前記拡大処理とは異なる画像処理アルゴリズムに基づいて、拡大処理部による拡大処理後の画像データを縮小処理するものとした。
【００１６】
かかる構成においては、画像データを、常に最も縮小処理に適した画像処理アルゴリズムに基づいて行うことができる。
【００１７】
また、請求項６の発明にあっては、前記縮小処理部が、前記拡大処理部の後段に複数並列接続され、前記倍率制御手段は、複数の縮小処理部に互いに異なる縮小率をそれぞれ設定するものとした。
【００１８】
かかる構成においては、１回の画像データの転送動作によって、複数サイズの縮小画像を同時に得ることができる。
【００１９】
また、請求項７の発明にあっては、画像データを複数ラインからなる処理単位に分けて転送するとともに、転送された複数ライン毎に画像データを変倍処理し、変倍処理後の画像データを複数ライン毎に出力する画像処理方法において、変倍処理後の画像データを複数ライン毎に出力する際の出力ライン数を設定する工程と、変倍処理時の倍率を設定する工程と、前記画像データの処理単位の転送時における転送ライン数を、設定されている変倍処理時の倍率に基づき個々に調整することにより、変倍処理後の画像データの出力ライン数を設定されている出力ライン数に制御する工程とを含む方法とした。
【００２０】
かかる方法によれば、設定倍率がいかなる場合であっても、変倍手段に転送される画像データの転送ライン数が設定倍率に応じて個々の処理単位毎に調整されることにより、画像データの出力ライン数を常に設定されている出力ライン数に制御することができる。
【００２１】
また、請求項８の発明にあっては、画像データを複数ラインからなる処理単位に分けて転送するとともに、転送された複数ライン毎に画像データを変倍処理し、変倍処理後の画像データを複数ライン毎に出力する画像処理装置が有するコンピュータに、変倍処理後の画像データを複数ライン毎に出力する際の出力ライン数を設定する手順と、変倍処理時の倍率を設定する手順と、前記画像データの処理単位の転送時における転送ライン数を、設定されている変倍処理時の倍率に基づき個々に調整することにより、変倍処理後の画像データの出力ライン数を設定されている出力ライン数に制御する手順とを実行させるためのプログラムとした。
【発明の効果】
【００２２】
以上のように請求項１，２，７の発明においては、設定倍率がいかなる場合であっても、変倍手段に転送される画像データの転送ライン数が設定倍率に応じて処理単位毎に調整されることにより、変倍手段における画像データの出力ライン数を常に設定されている出力ライン数に制御することができるようにした。よって、変倍手段の後段側に、画像データの入力ライン数が制限される他の処理ブロックが存在する場合であっても、簡略な回路構成によって多様な倍率設定による変倍処理を高速に行うことが可能となる。
【００２３】
また、請求項３の発明においては、画像データを圧縮符号化する処理に際して、圧縮手段における画像データの入力ライン数を常に設定されている入力ライン数に制御することができるようにした。よって、画像データを拡大又は縮小して圧縮符号化する場合において、簡略な回路構成のままで多様な倍率設定が可能となる。
【００２４】
また、請求項４の発明においては、連続した拡大処理と縮小処理とを経ることによって、元画像の画像データに対する要求された縮小率での縮小が行われることにより、縮小処理部には、常に画像劣化を生じさせるような縮小率での縮小処理を行わせることができるようにした。よって、上記効果に加え、ハードウェアにより画像データの縮小を実現するためのデータ処理部を備えた構成において、いかなる倍率による縮小処理を行ったとしても、高品質の縮小画像や、高品質の圧縮画像データを得ることが可能となる。
【００２５】
さらに、請求項５の発明においては、画像データを、常に最も縮小処理に適した画像処理アルゴリズムに基づいて行うことができるようにした。よって、より高品質の縮小画像を得ることが可能となる。
【００２６】
また、請求項６の発明においては、１回の画像データの転送動作によって、複数サイズの縮小画像を同時に得ることができるようにした。よって、複数サイズの縮小画像を効率良く得ることができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の一実施の形態を図にしたがって説明する。図１は、本発明に係る画像処理装置１の構成を示すブロック図である。この画像処理装置１は、デジタルズーム機能を備えたデジタルカメラに組み込まれており、ＣＣＤ等の撮像素子から出力されたベイヤーデータからＹＵＶデータを生成する補間処理、生成したＹＵＶデータの画素数を設定された倍率で増減させる変倍処理を行うためのものであり、以下の構成を備えている。なお、変倍処理は、例えば撮像素子の画素数よりも小さいサイズの画像の記録や、デジタルカメラのデジタルズーム機能による画像の拡大のための処理である。
【００２８】
本実施の形態において、制御部２はデジタルカメラの動作全体を制御するものであり、ＣＰＵやプログラムＲＯＭ、ＲＡＭ、及び入出力インターフェイスを含む周辺回路（図示せず）等から構成されている。そして、上記プログラムＲＯＭに格納されているプログラムに基づき画像処理装置１の各部を制御することにより本発明のライン数設定手段、倍率設定手段、ライン数制御手段、倍率制御手段として機能する。
【００２９】
メモリ３は、ＣＣＤ等から出力されたベイヤデータや、ＹＵＶデータが一時記憶されるＤＲＡＭ等であって、ＪＰＥＧ符号化結果が出力される転送先でもあり、各データを一時記憶しておくのに十分な容量を有している。
【００３０】
第１ＤＭＡ４は、前記制御部２からの指示に応じて、ベイヤデータの状態にある画像データを所定の処理単位でメモリ３上から読み出しベイヤ補間ブロック５に転送するデータ転送部である。また、第２ＤＭＡ６は、ＹＵＶデータの状態にある画像データを所定の処理単位でメモリ３上から読み出しスイッチ７を介して拡大ブロック８に転送するデータ転送部である。スイッチ７は、前記制御部２からの指示に応じて、拡大ブロック８に入力する画像データを、ベイヤ補間ブロック５が出力するＹＵＶデータと、第２ＤＭＡ６から転送されるメモリ３上のＹＵＶデータとに切り替える。
【００３１】
前記第１ＤＭＡ４及び第２ＤＭＡ６（両者が共に本発明の転送手段である。）によってメモリ３から読み出される画像データは、図２（ａ）に示したように全画像Ａを所定のサイズに垂直方向に分割した帯状の矩形部分の画像データであって、複数ライン分の画素のデータからなる画像データＢである。これをベルトと呼ぶ。なお、各ベルトＢ（０，１，２，・・・）は、図２（ｂ）に示したように処理に応じてその前のベルトとデータが重複する場合もある。また、前記第１ＤＭＡ４及び第２ＤＭＡ６においては、メモリ３から読み出したベルトのデータを自己内に一時保持するとともに、図３に示したように垂直方向に１画素ずつ走査して後段へ出力する。係るデータ走査をベルト走査と呼ぶ。
【００３２】
前記ベイヤ補間ブロック５は、第１ＤＭＡ４から転送されたベイヤデータ（図４（ａ）参照）から補間処理を行い、最終的にはＹＵＶデータとして出力する。本実施の形態では図４（ｂ）に示したように５×５画素のベイヤデータから１画素のＹＵＶデータを生成する。
【００３３】
前記拡大ブロック８は、制御部２からの指示に応じて、スイッチ７を介して入力されたＹＵＶデータを所望の倍率に拡大（画素数を増大）し、後段側に並列状態に直列接続されている第１縮小ブロック９または第２縮小ブロック１０へ選択的に出力する。拡大ブロック８におけるデータの入出力はともにベルト走査である。倍率は水平、垂直が独立して設定可能であり、拡大アルゴリズムは、水平および垂直ともに、周辺６画素から１画素の補間結果を得る線形補間である。図５に垂直５／３倍の例を示す。例えば補間点が元画像における画素「２」と画素「３」の間にある場合（図で「２．３」や「２．９」）、「０〜５」の画素を用い補間係数としてＬａｎｃｚｏｓを使用し補間点（出力画素）を求める。倍率の設定は、元画像における１画素間を１６３８４分割したときの画素間隔で指定される。例えば２倍の場合は８１９２、４倍の場合は４０９６となる。したがってこの分解能で表現できる任意の倍率設定が可能となっている。
【００３４】
前記第１縮小ブロック９と第２縮小ブロック１０は、入力されたＹＵＶデータに対して縮小処理を行い、出力する。縮小アルゴリズムは平均操作法であり、データの入出力はともにベルト走査である。倍率は水平および垂直ともに独立に設定が可能である。倍率をｎ／ｍとするとき（ただし、ｎ≦ｍ）、水平倍率ではｎが１〜２５６、ｍが１〜２５６の範囲内で設定でき、垂直倍率ではｎが１〜１６、ｍが１〜３２の範囲内で設定できる。垂直倍率のｍ、ｎはそれぞれ処理するベルトの入力側のライン数、出力側のライン数そのものとなる。図６は、垂直６ラインを４ラインに縮小する場合の例である。
【００３５】
第１縮小ブロック９と第２縮小ブロック１０は全く等価のブロックであるとともに、倍率設定は、双方の縮小ブロック９，１０について、それぞれ倍率の分母（ｍ）が共通であるという制約の中で、異なった倍率を設定することができる。ただし、第２縮小ブロック１０の倍率の分子（＝出力ベルトのライン数）については、後段のＪＰＥＧ入力Ｉ／Ｆ１２との接続の都合から、ＪＰＥＧ符号化の形式に応じて「８」または「１６」からの選択となる。
【００３６】
第３ＤＭＡ１１は、制御部２からの指示に応じて、第１縮小ブロック９からベルト走査による画像データを受け取り、それをメモリ３上の該当する部分に転送するデータ転送部である。
【００３７】
ＪＰＥＧ入力Ｉ／Ｆ１２は、べルト走査によって入力された画像データ（ＹＵＶデータ）を画素ブロック単位（ＭＣＵ）で一時保持し、ＪＰＥＧ符号化器１３側の入力形式（Ｙ：Ｃｂ：Ｃｒ）に則った形式で、４：２：２や４：２：０等へのデータ変換を行い出力するインターフェース部である。すなわち上記入力形式が４：２：０である場合には、図７に示したように１６×１６画素を画素ブロック単位として出力し、入力形式が４：２：２である場合には、８×８画素を画素ブロック単位として出力する。ＪＰＥＧ符号化器１３は、入力されたＹＵＶデータを４：２：２や４：２：０の形式でＪＰＥＧ符号化し、コードデータを出力する。第４ＤＭＡ１４は、そのコードデータをメモリ３上の該当する部分に転送するデータ転送部である。
【００３８】
次に、前記制御部２の処理内容について説明する。まず、前述した第１ＤＭＡ４及び第２ＤＭＡ６の制御によるデータ転送に関する処理内容を説明する。図８は、その手順を示すフローチャートである。制御部２は、処理開始とともに処理対象となるベルト番号ｉの初期化を行った後（ステップＳＡ１）、ｉ番目（処理開始当初は０番目）のベルトの左端、右端、上端、下端に対応する元画像（ベイヤデータ又はＹＵＶデータ）上の座標（ys_left，ys_rgt，ys_top，ys_btm）を演算する（ステップＳＡ２）。本実施の形態においては、以下のような演算を行う。
【００３９】
ここでは、一例としてデジタルズーム機能が設定されていた場合におけるＹＵＶデータに対する拡大処理を行う場合を想定し、便宜上、拡大倍率が水平及び垂直ともに５倍、拡大画像のサイズは３２×３２画素で、各ベルトのライン数が８（＝拡大画像のベルト数が４の構成）であるものとして説明する。図９は、その前提でのベルト処理時おける元画像（ＹＵＶデータ）と、それと対応する拡大画像（最終的にＪＰＥＧ符号化器に入力する画像）Ｃにおけるベルト（０〜３）との関係を示した図である。図中、大きな丸は元画像の画素であり、そのうち薄塗りの丸が処理ベルト、すなわち同図（ａ）では０番目のベルト、同図（ｂ）では１番目のベルトの範囲の画素である。また、小さな黒丸は処理ベルトに対する出力ベルトの範囲（３２×８画素）の画素である。
・拡大画像Ｃにおける各画素の座標を（ｘｂ，ｙｂ）、
・水平および垂直方向の拡大率の逆数を（ｘｓｔｅｐ，ｙｓｔｅｐ）、
・拡大画像Ｃ上の左上端に対応する元画像上での位置を（ｘ０，ｙ０）
としたとき、
元画像対応座標（ｘｓ，ｙｓ）は、
ｘｓ ＝ ｘｂ × ｘｓｔｅｐ ＋ ｘ０
ｙｓ ＝ ｙｂ × ｙｓｔｅｐ ＋ ｙ０
で求めることができる。
【００４０】
本実施の形態では、上記式により各ベルトの左端、右端、上端、下端の座標位置を計算するとともに、その際、左端と上端の計算結果については小数点以下を切り捨てる処理を行い、右端と下端の計算結果については小数点以下を切り捨てる処理を行って、最終的な計算結果とする。
【００４１】
図１０は、上記演算により得られる、図９に示した各ベルトにおける拡大画像Ｃの左端、右端、上端、下端の座標と、上記式から直接得られる元画像の左端、右端、上端、下端の座標、及びその最終的な計算結果となる入力範囲としての左端、右端、上端、下端の座標との対応関係を示した図である。なお、図示した各座標の値のうち、元画像対応座標（ｘｓ，ｙｓ）の計算に必要となる、拡大画像Ｃ上の左上端に対応する元画像上での位置（ｘ０，ｙ０）、つまりベルト０における元画像対応座標の上端（垂直座標：「０．８」）と左端（水平座標：「１．５」）は、拡大率との関係で決まる座標値であって、本実施の形態においては制御部２のプログラムＲＯＭ等に予め用意されている対応テーブルから求められる座標値である。
【００４２】
引き続き、上記のようにして求めた座標に対して、拡大処理に必要な周辺画素分を広げた座標を求める（ステップＳＡ３）。ここでは上下左右にそれぞれ３画素分広げるものとする。次に、元画像がベイヤデータであって、ベイヤ補間が必要なときには（ステップＳＡ４でＹＥＳ）、ベイヤ補間ブロック５におけるベイヤ補間処理に必要な周辺画素分を広げた座標を求める（ステップＳＡ５）。ここでは上下左右にそれぞれ２画素分広げるものとする。そして、求めた座標を元画像の入力領域として第１ＤＭＡ４に設定しベルト処理（ベルト走査によるデータ転送）を開始させる（ステップＳＡ６）。また、元画像がベイヤデータでなくＹＵＶデータであったときには（ステップＳＡ４でＮＯ）、ステップＳ３で求めた座標を元画像の入力領域として第２ＤＭＡ６に設定してからベルト処理を開始させる（ステップＳＡ７）。そして、当該ベルト処理が終了したら（ステップＳＡ８でＹＥＳ）、ベルト番号を更新（インクリメント）する（ステップＳＡ９）。以後、ステップＳＡ２へ戻り前述した処理を繰り返し、最後のベルト番号のベルトに対する処理、つまり１画像分の処理が終了した時点で（ステップＳＡ１０）、処理を終了する。
【００４３】
図１１は、上述した制御部２の処理に伴う、画像処理装置１の各部における各ベルトのデータ内容の変化を示した遷移図である。すなわちメモリ３から転送された元画像Ａにおける補間入力ベルトベイヤデータａは、ベイヤ補間ブロック５で画素補間された後、拡大入力ベルトＹＵＶデータｂとして拡大ブロック８へ転送される。また、そこで拡大（画素数を増大）処理が施された拡大出力ベルト（ベースベルト）ＹＵＶデータｃが第１縮小ブロック９及び第２縮小ブロック１０へ転送され、異なる縮小率で縮小された後、第１出力ベルトＹＵＶデータｄ、及び第２出力ベルトＹＵＶデータｅとして出力され、そのうちの第２出力ベルトＹＵＶデータｅがＪＰＥＧ入力Ｉ／Ｆ１２を介してＪＰＥＧ符号化器１３に入力される。
【００４４】
そして、上述したベルト処理（データ転送）においては、前述したステップＳＡ２における演算によって、図１０に示したように各ベルトの左端、右端、上端、下端（図１０で、垂直側の元画像対応座標）が個別に決定される、つまりライン数が個別に制御されることにより、第２縮小ブロック１０からＪＰＥＧ入力Ｉ／Ｆ１２を介してＪＰＥＧ符号化器１３に入力される第２出力ベルトＹＵＶデータｅにおけるライン数が、ＪＰＥＧ符号化器１３側の入力形式に応じたライン数（ここでは８ライン）に維持される。無論、上記の演算が拡大率に基づくものであって、制御されるライン数には拡大率が反映されるため、前述した拡大率に限らず、いかなる拡大率（又は縮小率）が設定されている場合であっても、第２出力ベルトＹＵＶデータｅのライン数をＪＰＥＧ符号化器１３側の入力形式に応じたライン数とすることができる。
【００４５】
次に、制御部２が、前述した拡大ブロック８と第１縮小ブロック９及び第２縮小ブロック１０に倍率を設定するときの処理内容について説明する。図１２はその手順を示したフローチャートである。設定する倍率は、元画像（ベイヤデータ、又はＹＵＶデータ）のサイズを、例えばその時のデジタルズーム機能により要求される倍率に応じたものである。なお、ここでは垂直方向の倍率の設定についてのみの説明とする。
【００４６】
制御部２は、処理開始に伴い、そのときのＪＰＥＧ符号化形式によって決まるベルトの高さつまりライン数（「１６」又は「８」）と、要求されているＪＰＥＧ入力画像（ＪＰＥＧ符号化器１３に入力する画像）のサイズから、そのベルト数を計算する（ステップＳＢ１）。次に、計算したベルト数と元画像の高さから、元画像の平均ベルト高さを算出し（ステップＳＢ２）、それがＪＰＥＧ入力画像のベルト高さよりも大きいか否かを判別する（ステップＳＢ３）。
【００４７】
かかる判別の結果がＮＯであり、元画像の平均ベルト高さがＪＰＥＧ入力画像のベルト高さ以下であったときには、拡大処理のみが必要と判断し、拡大画像のベルト高さをＪＰＥＧ入力画像のベルト高さとするものとして（ステップＳＢ４）、拡大ブロック８の垂直倍率を、ＪＰＥＧ入力画像のベルト高さと元画像の平均ベルト高さとの比率から求めた倍率に設定し（ステップＳＢ５）、第２縮小ブロック１０の垂直倍率を「１倍」に設定する（ステップＳＢ６）。
【００４８】
また、ステップＳＢ３の判別結果がＹＥＳであり、元画像の平均ベルト高さがＪＰＥＧ入力画像のベルト高さを超えていたときには、さらに、ステップＳＢ２における元画像の平均ベルト高さの算出結果が割り切れた値か否かを判別する（ステップＳＢ７）。なお、このとき使用する関数ｉｎｔ（ｒ）は小数点以下を切り捨てる関数である。そして、割り切れたときには（ステップＳＢ７でＹＥＳ）、縮小処理のみが必要と判断し、拡大画像のベルト高さを元画像の平均ベルト高さそのままとするものとして（ステップＳＢ８）、拡大ブロック８の垂直倍率を「１倍」とし（ステップＳＢ９）、第２縮小ブロック１０の垂直倍率を、拡大画像のベルト高さをＪＰＥＧ入力画像のベルト高さとする倍率に設定する（ステップＳＢ１０）。
【００４９】
また、ステップＳＢ７の判別結果がＮＯであって、ステップＳＢ２における元画像の平均ベルト高さの算出結果が割り切れない値であったときには、拡大して縮小する必要があると判断し、拡大画像のベルト高さを切り上げた値に変更する（ステップＳＢ１１）。なお、このとき使用する関数ｒｏｕｎｄｕｐ（ｒ）は小数点以下を切り上げる関数である。次に、変更後の拡大画像のベルト高さとベルト数とから計算上の拡大画像の高さを算出する（ステップＳＢ１２）。そして、拡大ブロック８の垂直倍率を、計算上の拡大画像の高さと元画像の高さとの比率から求めた倍率に設定し（ステップＳＢ１３）、さらに第２縮小ブロック１０の垂直倍率を、拡大画像のベルト高さをＪＰＥＧ入力画像のベルト高さとする倍率に設定する（ステップＳＢ１４）。
【００５０】
このように、拡大ブロック８と第２縮小ブロック１０の各々に、その時点で要求されている倍率に応じた組み合わせの倍率が設定されることにより、最終的に第２縮小ブロック１０から出力される拡大画像のベルト数とベルト高さとが要求されている倍率に応じた値となる。すなわち拡大画像のサイズが、要求されている倍率に応じた処理目標のサイズとなる。
【００５１】
そして、上述したステップＳＢ６，ＳＢ１０，ＳＢ１４のいずれかの処理が終了したら、図１３に示したプレビュー用縮小設定処理を行う（ステップＳＢ１５）。係る処理では、まずステップＳＢ１で取得したＪＰＥＧ入力画像のベルト数と、決められているプレビュー画像（表示用ＹＵＶデータ）の高さから、プレビュー元画像の平均ベルト高さを算出し（ステップＳＢ１０１）。その算出結果が割り切れた値か否かを判別する（ステップＳＢ１０２）。そして、割り切れた場合には（ステップＳＢ１０２でＹＥＳ）、第１縮小ブロック９の垂直倍率を、プレビュー元画像のベルト高さをＪＰＥＧ入力画像のベルト高さとする倍率に設定する（ステップＳＢ１０４）。また、割り切れなかった場合には（ステップＳＢ１０２でＮＯ）、プレビュー元画像の平均ベルト高さを切り上げ、プレビュー元画像のベルト高さを切り上げた値に変更した後（ステップＳＢ１０３）、それをＪＰＥＧ入力画像のベルト高さとする倍率に設定する（ステップＳＢ１０４）。これにより、制御部２は倍率設定を終了する。
【００５２】
図１４は、以上の倍率設定処理に際して拡大して縮小する必要があると判断され、ステップＳＢ１１〜ＳＢ１４の処理が行われた場合における拡大ブロック８、第１縮小ブロック９、第２縮小ブロック１０の具体的な設定倍率の組み合わせと、そのときの元画像ａ、拡大画像ｂ、ＪＰＥＧ入力画像ｃ、プレビュー元画像ｄのデータ内容を示した図である。ここではＪＰＥＧ符号化形式が４：２：０で、元画像ａのサイズが３００万画素（２０４８×１５３６）、要求された倍率（縮小）に応じたＪＰＥＧ入力画像ｃのサイズが２００万画素（１６００×１２００）、プレビュー元画像ｄがＱＶＧＡ（２４０×３２０）である場合を示す。
【００５３】
かかる場合には、拡大ブロック８の水平倍率は等倍、垂直倍率は１．０２５・・倍となり、拡大画像ｂのサイズが２０４８×１５７５で、そのベルト数が７５でベルト高さが２１となる。また、第２縮小ブロック１０の水平倍率は１００／１２８倍、垂直倍率は１６／２１倍となり、ＪＰＥＧ入力画像ｃのサイズが要求された１６００×１２００で、そのベルト数が７５、ベルト高さが１６となる。同時に、第１縮小ブロック９の水平倍率は２０／１２８倍、垂直倍率は４／２１倍となり、プレビュー元画像ｄのサイズがＱＶＧＡよりもやや大きな３２０×３００で、そのベルト数が７５、ベルト高さが４となる。
【００５４】
次に、デジタルカメラにおける静止画撮影時に、制御部２が前述したデータ転送処理、倍率設定処理に基づき実施する静止画符号化処理について説明する。図１５はその手順を示したフローチャートである。すなわち制御部２は、前述した一連のデータ転送に基づくデータ変換により、まず、１回目のデータ変換により、第１縮小ブロック９を使用する系によってベイヤデータから表示用ＹＵＶデータ（プレビュー画像）を生成し、それをメモリ３へ出力すると同時に、第２縮小ブロック１０を使用する系によってベイヤデータから主画像のＪＰＥＧ符号化を実施し、符号化したデータをメモリ３へ出力する（ステップＳＣ１）。引き続き２回目のデータ変換により、第２縮小ブロック１０を使用する系によって、１回目の変換でメモリ３に記憶された表示用ＹＵＶデータから、前記主画像に付随するサムネイル画像のＪＰＥＧ符号化を実施し、符号化したデータをメモリ３へ出力する（ステップＳＣ２）。
【００５５】
ここで以上説明した画像処理装置１においては、前述したようにメモリ３に記憶されている画像データをベルト毎に拡大又は縮小してＪＰＥＧ符号化するとき、いかなる拡大率（又は縮小率）が設定されている場合であっても、ＪＰＥＧ符号化器１３に入力するベルト（第２出力ベルトＹＵＶデータｅ）のライン数を、ＪＰＥＧ符号化器１３に設定されているライン数とすることができる。したがって、第２縮小ブロック１０の後段側に、ＪＰＥＧ符号化器１３が存在する構成であっても、第２縮小ブロック１０にライン数の整合性を確保するためのバッファメモリ等の回路を設ける必要がなく、簡略な回路構成によって多様な倍率設定による変倍処理を高速に行うことができる。
【００５６】
なお、かかる効果については、例えば図１６に示した画像処理装置５１のように、画像の拡大又は縮小のための処理ブロックとして単一の変倍ブロック５２が設けられている構成においても得ることができる。また、本実施の形態においては、第１ＤＭＡ４及び第２ＤＭＡ６が１画素ずつのベルト走査を行うものとしたが、２画素以上でベルト走査を行うものとしてもよい。また、ベイヤ補間ブロック５とスイッチ７（拡大ブロック８）に２つの第１ＤＭＡ４及び第２ＤＭＡ６を用いて画像データを別々に転送するようにしたが、それらを１つにまとめてもよい。また、拡大ブロック８の前段にベイヤ補間ブロック５のみが存在するものを示したが、拡大ブロック８の前段には複数の処理ブロックが直列に設けられていてもよいし、並列に設けられるとともに切り替えスイッチ等により選択的に接続される構成であってもよい。
【００５７】
そして、本実施の形態においては、前述しように拡大ブロック８と第２縮小ブロック１０の双方における連続した拡大処理と縮小処理とを経ることによって、元画像に対する要求された倍率での縮小及び／又は拡大を行う構成である。そのため、仮に要求された倍率が、第２縮小ブロック１０において画像劣化を生じさせるような縮小率であった場合においては、拡大ブロック８と第２縮小ブロック１０とに割り当てる倍率を、そのような縮小率を第２縮小ブロック１０に設定しないように調整することにより、画像劣化が生じない縮小処理を行わせることができる。よって、常に高画質の縮小画像を得ることができる。しかも、拡大ブロック８における拡大処理と第２縮小ブロック１０における縮小処理とを、各々の処理に適したアルゴリズムで行うため、より高品質の拡大画像や縮小画像を得ることができる。なお、拡大ブロック８において使用する補間係数をＬａｎｃｚｏｓとしたが、それ以外の補間係数を用いることもできる。
【００５８】
しかも、本実施の形態においては、拡大ブロック８に第１縮小ブロック９と第２縮小ブロック１０を並列に接続したことから、同一の元画像から異なるサイズの画像を同時に、つまり短時間に効率良く生成することができる。その結果、前述したように静止画撮影時には、２回のデータ変換によって主画像と、それに付随するサムネイル画像と、プレビュー画像とを生成することができ、それに伴いデジタルカメラにおける撮影間隔を短縮することができる。なお、本実施の形態では、１回目のデータ変換によって主画像とプレビュー画像とを生成するものとしたが、目的の異なるそれ以外の画像を生成するようにしてもよい。例えばサムネイル画像に代えて符号量計測用の画像を生成させ、それをＪＰＥＧ符号化器１３で符号化させるようにしてもよく、その場合、主画像を２回目のデータ変換によって生成するようにしてもよい。さらに、図示しないが第１縮小ブロック９と第２縮小ブロック１０に加え、他の縮小ブロックをそれらと並列に設けても構わない。その場合には、前述した２回のデータ変換での処理を１回のデータ変換で済ませることができる。
【００５９】
また、本実施の形態では、拡大又は縮小後の画像データがＹＵＶデータであるものを示したが、拡大又は縮小後の画像データはＲＧＢの画像データであってもよい。また、拡大又は縮小後の画像データをＪＰＥＧ符号化するものを示したが、それをＭＰＥＧ等の他の方式により圧縮符号化する構成としてもよく、また、ＪＰＥＧ符号化器１３が、入力ライン数が規制されている他の処理ブロックであっても構わない。
【００６０】
さらに、本実施の形態においては、デジタルカメラに組み込まれている画像処理装置１について説明したが、本発明は他の映像機器や画像認識装置等に組み込まれているものや、単独で使用されるものにも適用することができる。
【図面の簡単な説明】
【００６１】
【図１】本発明に係る画像処理装置の概略構成を示す回路図である。
【図２】画像処理単位となるベルトを示す模式図である。
【図３】メモリから読み出したデータの転送方法を示す図である。
【図４】（ａ）はベイヤデータの例を示す図、（ｂ）はベイヤデータからＹＵＶデータを生成するときの概念図である。
【図５】拡大処理における元画像の画素と補間点との対応関係の具体例を示す図である。
【図６】縮小処理における入力側ベルトと出力側ベルトとのライン数の具体例を示す図である。
【図７】ＪＰＥＧ符号化形式が４：２：０のときのＪＰＥＧ符号化器における入出力データを示す模式図である。
【図８】制御部によるデータ転送に関する処理内容を示すフローチャートである。
【図９】元画像に対して各ベルトの入力範囲を設定するときの具体例を示す説明図である。
【図１０】図９の各ベルトにおける拡大画像の座標位置と元画像の座標位置との関係を示した図である。
【図１１】画像処理装置の各部における各ベルトのデータ内容の変化を示した遷移図である。
【図１２】制御部による倍率設定に関する処理内容を示すフローチャートである。
【図１３】制御部によるプレビュー用縮小設定処理を示すフローチャートである。
【図１４】倍率設定処理で設定される倍率とデータ転送に伴い生成される画像データの具体例を示す図である。
【図１５】制御部による静止画符号化処理を示すフローチャートである。
【図１６】他の画像処理装置の概略構成を示す回路図である。
【符号の説明】
【００６２】
１    画像処理装置
２    制御部
３    メモリ
４    第１ＤＭＡ
５    ベイヤ補間ブロック
６    第２ＤＭＡ
７    スイッチ
８    拡大ブロック
９    第１縮小ブロック
１０    第２縮小ブロック
１１    第３ＤＭＡ
１２    ＪＰＥＧ入力Ｉ／Ｆ
１３    ＪＰＥＧ符号化器
１４    第４ＤＭＡ
Ａ    全画像
Ｂ    画像データ（ベルト）
【図１】
2006135565.tif 000003
【図２】
2006135565.tif 000004
【図３】
2006135565.tif 000005
【図４】
2006135565.tif 000006
【図５】
2006135565.tif 000007
【図６】
2006135565.tif 000008
【図７】
2006135565.tif 000009
【図８】
2006135565.tif 000010
【図９】
2006135565.tif 000011
【図１０】
2006135565.tif 000012
【図１１】
2006135565.tif 000013
【図１２】
2006135565.tif 000014
【図１３】
2006135565.tif 000015
【図１４】
2006135565.tif 000016
【図１５】
2006135565.tif 000017
【図１６】
2006135565.tif 000018