(57)【要約】本開示は、異なる大きさの画像の画像処理をサポートするデバイスのために役立つ画像処理技術を説明する。この技術は多くの状況において用いられることができ、特に、デバイスによって取得された小さなビューファインダ画像及び大きな静止画像のフロントエンド画像処理のために役立つ。１つの実施形態において、本開示は、デバイスを用いて第１の画像を取得することと、第１の画像の画像幅を収納できる大きさのラインバッファを用いて第１の画像を処理することと、デバイスを用いて、第１の画像の画像幅よりも大きい画像幅を有する第２の画像を取得することとを備える方法を提供する。この方法は、ラインバッファを用いて、ラインバッファ内に収まる幅を定める前記第２の画像の縦縞を処理することも含む。
2009533772.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを用いて第１の画像を取得することと、
前記第１の画像の画像幅を収納できる大きさのラインバッファを用いて前記第１の画像を処理することと、
前記デバイスを用いて、前記第１の画像の画像幅よりも大きい画像幅を有する第２の画像を取得することと、
前記ラインバッファを用いて、前記ラインバッファ内に収まる幅を定める前記第２の画像の縦縞を処理することと
を備える方法。
【請求項２】
前記第１の画像はビューファインダ画像を備え、前記第２の画像は静止画像を備える請求項１に記載の方法。
【請求項３】
前記第１の画像を処理することは前記第１の画像をフィルタすることを備え、前記第２の画像の縦縞を処理することは前記第２の画像をフィルタすることを備える請求項１に記載の方法。
【請求項４】
前記縦縞は互いにオーバーラップする請求項３に記載の方法。
【請求項５】
フィルタすることは、２次元フィルタリングを備える請求項４に記載の方法。
【請求項６】
デバイスを用いて画像を取得することと、
前記画像の幅よりも小さい幅を定めるラインバッファを用いて、前記画像の縦縞を処理することと
を備える方法。
【請求項７】
前記画像は静止画像であり、前記方法は更に、
前記デバイスを用いてビューファインダ画像を取得することと、
前記ビューファインダ画像を収納できる幅のラインバッファを用いて前記ビューファインダ画像を処理することと
を備える請求項６に記載の方法。
【請求項８】
前記ラインバッファの幅は、前記ビューファインダ画像の幅に対応する請求項７に記載の方法。
【請求項９】
前記画像を処理することは、前記画像のオーバーラップする縦縞を２次元フィルタリングすることを備え、前記２次元フィルタリングの出力は、フィルタされ、オーバーラップしていない縦縞を備える請求項６に記載の方法。
【請求項１０】
画像を取得する画像取得装置と、
メモリと、
前記画像のオーバーラップする縦縞を定めるメモリコントローラと、
前記画像の幅よりも小さい幅を定めるラインバッファを用いて、前記画像のオーバーラップする縦縞を処理する処理ユニットと
を備えるデバイス。
【請求項１１】
前記画像は静止画像であり、
前記画像取得装置はビューファインダ画像を取得し、
前記処理ユニットは、前記ビューファインダ画像を収納できる幅の前記ラインバッファを用いて、前記ビューファインダ画像を処理する請求項１０に記載のデバイス。
【請求項１２】
前記ラインバッファの幅は、前記ビューファインダ画像の幅に対応する請求項１１に記載のデバイス。
【請求項１３】
前記処理ユニットは、前記画像のオーバーラップする縦縞に２次元フィルタリングを実行し、前記２次元フィルタリングの出力は、フィルタされ、オーバーラップしていない、前記メモリへ再び格納される縦縞を備える請求項１０に記載のデバイス。
【請求項１４】
前記デバイスは無線電話を備え、前記画像取得装置は前記デバイスのデジタルカメラを備える請求項１０に記載のデバイス。
【請求項１５】
デバイスによって取得された画像を処理するフロントエンド処理ユニットであって、前記処理ユニットは、
第１の画像の画像幅を収納できる大きさのラインバッファを用いて前記第１の画像を処理し、
前記ラインバッファを用いて第２の画像の縦縞を処理し、前記第２の画像は前記第１の画像の画像幅よりも大きく、前記ラインバッファよりも大きい画像幅を有し、前記第２の画像の縦縞は前記ラインバッファ内に収まる幅を定めるフロントエンド処理ユニット。
【請求項１６】
前記第１の画像はビューファインダ画像を備え、前記第２の画像は静止画像を備える請求項１５に記載のフロントエンド処理ユニット。
【請求項１７】
前記ユニットは、前記第１の画像をフィルタすることによって前記第１の画像を処理し、前記第２の画像をフィルタすることによって前記第２の画像の縦縞を処理する請求項１５に記載のフロントエンド処理ユニット。
【請求項１８】
前記縦縞は互いにオーバーラップする請求項１７に記載のフロントエンド処理ユニット。
【請求項１９】
フィルタすることは、２次元フィルタリングを備える請求項１８に記載のフロントエンド処理ユニット。
【請求項２０】
前記ユニットは、プログラマブル命令を実行するデジタル信号プロセッサを備える請求項１５に記載のフロントエンド処理ユニット。
【請求項２１】
命令群を備えるコンピュータ読取可能媒体であって、前記命令群はデバイス内で実行されると、前記デバイスに、
第１の画像の画像幅を収納できるサイズのラインバッファを用いて前記第１の画像を処理させ、
前記ラインバッファを用いて第２の画像の縦縞を処理させ、
前記第２の画像は前記第１の画像の画像幅よりも大きく、前記ラインバッファよりも大きい画像幅を有し、前記第２の画像の縦縞は前記ラインバッファ内に収まる幅を定めるコンピュータ読取可能媒体。
【請求項２２】
前記第１の画像はビューファインダ画像を備え、前記第２の画像は静止画像を備える請求項２１に記載のコンピュータ読取可能媒体。
【請求項２３】
前記命令は、前記第１の画像をフィルタすることによって前記第１の画像を処理し、前記第２の画像をフィルタすることによって前記第２の画像の縦縞を処理する請求項２１に記載のコンピュータ読取可能媒体。
【請求項２４】
前記縦縞は互いにオーバーラップする請求項２３に記載のコンピュータ読取可能媒体。
【請求項２５】
フィルタすることは、２次元フィルタリングを備える請求項２４に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理及びビデオ処理に関し、特に、異なる大きさの画像の効率的な処理のためのメモリ格納技術に関する。
【背景技術】
【０００２】
多くの「フロントエンド」画像処理技術は、しばしばイメージングデバイス内又はビデオデバイス内で行われる。一般にこのようなデバイスは、ビデオシーケンスからの例えば個々の静止画像又は画像シーケンスのような生画像データを得る画像センサを含む。画像品質を向上させるためにしばしば生データについて、画像処理技術が実行される。このような画像処理技術の例は、いくつかの例を挙げると、２次元フィルタリング、デモザイク、レンズロールオフ補正、拡大縮小、色補正、色変換、ノイズ低減フィルタリング、及び空間フィルタリングである。フロントエンド処理は、例えば階調再現、彩度、色彩再現及び鮮明さのようなビジュアル画像品質特性を向上させることができる。
【０００３】
多くの場合において、デバイスは、いくつかの異なる大きさの異なる画像について、画像処理技術をサポートする必要がある。実際に、デバイスによってサポートされる必要がある画像の大きさは、いくつかの場合において抜本的に変化しうる。例えばデバイスは、デバイスのビューファインダにおいてリアルタイムで非常に小さな画像のシーケンスを表示し、ビューファインダにおける画像品質を向上させるために、このような画像に迅速に画像処理を行う必要がある。加えて、デバイスは、例えばデバイスによって取得された静止画像や、デバイスによって取得された画像のビデオシーケンスのような非常に大きな画像に、画像処理技術を行うことができる。異なる画像に対する画像処理をサポートするために、従来技術は、画像処理モジュール内のラインバッファに、デバイスによって処理可能である最も大きな画像の画像幅を収納できることを課した。ラインバッファは、画像データのライン又はラインの一部を格納するために用いられる、小さく、一時的な記憶場所である。ラインバッファは一般にオンチップであり、１つ又は複数の処理モジュールに関連する。
【発明の開示】
【発明の概要】
【０００４】
本開示は、異なる大きさの画像の画像処理をサポートするデバイスのために役立つ画像処理技術を説明する。この技術は、多数の文脈において用いられることができ、特に、デバイスによって取得される小さなビューファインダ画像及び大きな静止画像のフロントエンド画像処理のために役立つ。本明細書で説明される技術は、画像処理に関連するラインバッファの大きさの著しい低減を可能とする。本開示によると、ラインバッファは小さなビューファインダ画像を収納できる大きさであることができるので、このような画像は非常に迅速に処理されることができる。大きな画像の生データは一時的な場所に格納され、このような大きな画像の幅よりも小さいラインバッファを用いて処理されることが可能となるような方式でアクセスされることができる。
【０００５】
１つの実施形態において、本開示は、デバイスを用いて第１の画像を取得することと、第１の画像の画像幅を収納できる大きさのラインバッファを用いて第１の画像を処理することと、デバイスを用いて、第１の画像の画像幅よりも大きい画像幅を有する第２の画像を取得することと、ラインバッファを用いて、ラインバッファ内に収まる幅を定める前記第２の画像の縦縞を処理することとを備える方法を提供する。
【０００６】
別の実施形態において、本開示は、デバイスを用いて画像を取得することと、画像の幅よりも小さい幅を定めるラインバッファを用いて、画像の縦縞を処理することとを備える方法を提供する。
【０００７】
別の実施形態において、本開示は、画像を取得する画像取得装置と、メモリと、画像のオーバーラップする縦縞を定めるメモリコントローラと、画像の幅よりも小さい幅を定めるラインバッファを用いて、画像のオーバーラップする縦縞を処理する処理ユニットとを備えるデバイスを提供する。
【０００８】
別の実施形態において、本開示は、デバイスによって取得された画像を処理するフロントエンド処理ユニットを提供する。フロントエンド処理ユニットは、第１の画像の画像幅を収納できる大きさのラインバッファを用いて第１の画像を処理し、そのラインバッファを用いて第２の画像の縦縞を処理する。第２の画像は第１の画像の画像幅よりも大きく、ラインバッファよりも大きい画像幅を有し、第２の画像の縦縞はラインバッファ内に収まる幅を定める。
【０００９】
本明細書で説明されるこれらの技術又はその他の技術は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせによって実現されうる。ソフトウェアによって実現される場合、ソフトウェアは、デジタル信号プロセッサ（ＤＳＰ）又はその他のタイプのプロセッサにおいて実行されうる。この技術を実行するソフトウェアは、最初にコンピュータ読取可能媒体に格納され、異なる大きさの画像を効率的に処理するために、ＤＳＰ内にロードされ実行される。
【００１０】
本開示はまた、デバイス内で実行されると、デバイスに、第１の画像の画像幅を収納できるサイズのラインバッファを用いて第１の画像を処理させ、ラインバッファを用いて、第１の画像の画像幅よりも大きく、ラインバッファよりも大きい画像幅を有する第２の画像の縦縞であって、ラインバッファ内に収まる幅を定める縦縞を処理させる命令群を備えるコンピュータ読取可能媒体を考慮する。
【００１１】
本発明の１つ又は複数の実施形態の詳細は、添付図面及び以下の詳細な説明において示す。本発明のその他の特徴、目的、及び利点は、詳細な説明、図面、及び特許請求の範囲から明らかになるであろう。
【詳細な説明】
【００１２】
本開示は、異なる大きさの画像の画像処理をサポートするデバイスに役立つ画像処理技術を説明する。この技術は多くの状況において用いられることができ、特に、小さなビューファインダ画像及びデバイスによって得られた大きな静止画像のフロントエンド画像処理に役立つ。この場合、デバイスのビューファインダモードと静止画像取得モードとは、これらの異なるモードで取得された異なる画像に異なる処理要求を出す。具体的には、ビューファインダモードは、ビューファインダがリアルタイムビデオシーケンスのように画像をビューファインダに表示することができるように、非常に小さな画像の迅速な処理を必要としうる。一方、静止画像取得モードは、より長い待ち時間を許容しうるが、画像はビューファインダモードの画像よりも格段に大きい。
【００１３】
本開示によると、フロントエンド画像処理のために用いられるラインバッファは、第１の画像（例えばビューファインダ画像）に関する画像幅を収納できるような大きさであるが、第２の画像（例えば静止画像）よりも小さな大きさであることができる。ビューファインダ画像の各ラインは処理ユニット内のラインバッファ内に収まるので、ビューファインダ画像は非常に早く処理されることができる。より大きな画像を処理するために、大きな画像は、画像の縦縞のようにアドレス指定されるか、定められることができ、この縦縞は、ラインバッファ内に収まる幅を定める。縦縞は、他の縦縞とオーバーラップするピクセルを有することができ、画像処理が２次元（又はより高次元の）フィルタリングを含む場合に特に役立つ。静止画像の幅よりも小さい同じラインバッファが、小さなビューファインダ画像の処理にも大きな静止画像の処理にも用いられることができるために、デバイスにおけるハードウェア低減が達成されうる。
【００１４】
図1は、本開示の技術を実現しうるデバイス２を示すブロック図である。デバイス２は、画像取得デバイス、あるいはビデオデータを符号化及び送信することができるデジタルビデオデバイスの一部を形成しうる。一例として、デバイス２は、デジタルカメラ、例えばセルラー電話や人工衛星無線電話のような無線通信デバイス、携帯情報端末（ＰＤＡ）、又はイメージング機能やビデオ機能を備える任意のデバイスを備えることができる。
【００１５】
図１に示すように、デバイス２は、生画像データを格納し、このようなデータに様々な処理技術を行う画像処理装置４を含む。装置４は、デジタル信号プロセッサ（ＤＳＰ）とオンチップメモリ（例えば本明細書で説明されるラインバッファ）とを含むいわゆる「チップセット」を備えることができる。しかし他の場合において、装置４は、プロセッサ、ハードウェア、ソフトウェア又はファームウェアの任意の組み合わせを備えることができる。また装置４は、もし望まれれば単一の集積チップを備えることもできる。
【００１６】
図１に示された例において、画像処理装置４は、ローカルメモリ８と、メモリコントローラ１０と、画像処理ユニット６とを含む。画像処理ユニット６は、フロントエンド処理ユニット１８を含むが、符号化ユニット１９も含む。一般にフロントエンド処理ユニット１８は、本開示の技術を実現し、複数の画像処理モジュールを含むことができる。フロントエンド処理ユニット１８は、複数の画像処理モジュールを含むことができる。一例として、フロントエンド処理ユニット１８のモジュールは、２次元フィルタリングモジュール、デモザイクモジュール、レンズロールオフ補正モジュール、拡大縮小モジュール、色補正モジュール、色変換モジュール、ノイズ低減フィルタリングモジュール、空間フィルタリングモジュール、又はその他のタイプのモジュールを含むことができる。本開示の教示は、例えば２次元フィルタリングモジュール、ノイズ低減フィルタリングモジュール、及び垂直拡大縮小モジュールのような、ラインバッファを実現することができる任意のモジュールに関して特に重要である。
【００１７】
符号化ユニット１９は、装置４によって処理される画像がビデオフレームのストリームである場合に役立つ。この場合、符号化ユニット１９は、例えばフレーム間圧縮やフレーム内圧縮のような１つ又は複数のビデオ圧縮技術を含みうるビデオ符号化を実行することができる。例えば符号化ユニット１９は、フレーム間圧縮を提供するために、動き推定技術及び動き補正技術を実現し、時間データ相関性又はフレーム間データ相関性を利用することができる。あるいは、又は加えて、符号化ユニット１９は、フレーム内圧縮を提供するために、空間データ補正又はフレームデータ補正を利用する空間推定技術及びフレーム内予測技術を実行することができる。符号化ユニット１９はまた、静止画像を圧縮するためにも用いられることができる。
【００１８】
ローカルメモリ８は、一般に生画像データを格納し、また、画像処理ユニット６によって実行される任意の処理に後続して、処理された画像データを格納することもできる。メモリコントローラ１０は、メモリ８内のメモリ構成を制御する。メモリコントローラ１０はまた、メモリ８からユニット６へのメモリのロードを制御し、ユニット６からメモリ８へ書き戻す。更に、以下でより詳しく説明するように、メモリコントローラ１０は、生画像データをオーバーラップする縦縞としてアドレス指定することができる。この場合、オーバーラップする縦縞は、大きな画像の幅よりも小さな幅を有しうるので、フロントエンド処理ユニット１８内のラインバッファは、縦縞の行を収納することができる。（例えばビューファインダ画像のような）小さな画像は、ラインバッファ内で迅速に処理されることができるが、（例えば静止画像のような）大きな画像はメモリ８内にオーバーラップする縞としてアドレス指定され、その後フロントエンド処理ユニット１８のラインバッファ内で処理されることができる。
【００１９】
従って静止画像は、画像の幅全体がラインバッファ内へ直ちにはロードされないので、処理するためにより長い時間がかかりうる。その代わり、大きな画像の各々は、連続する縞をラインバッファ内へロードすることによって処理される。しかし静止画像は、（例えばユーザがリアルタイムビデオ取得を観ている場合のように）リアルタイムで配信される必要がないので、この状況において生じうる追加のレイテンシをより容易に許容することができる。
【００２０】
デバイス２は、画像を取得する画像取得装置１２を含むことができる。画像取得装置１２は、それぞれのセンサの表面に配置された色フィルタアレイ（ＣＦＡ）を含む画像センサのセットを備え、ビューファインダ画像の画像処理におけるレイテンシを避けるために、画像処理ユニット６に直接接続されることができる。しかしその他のタイプの画像センサも、画像データを取得するために用いられることができる。画像取得装置１２を実現するために用いられることができるその他の典型的なセンサは、例えば相補型金属酸化膜半導体（ＣＭＯＳ）センサ素子、電荷結合素子（ＣＣＤ）センサ素子、又は同様のもののようなソリッドステートセンサ素子のアレイを含む。画像取得装置１２は、本開示に従ってその後処理される異なる大きさの画像を取得するために用いられることができる。しかし、他の場合において、複数の異なる画像取得装置が、異なる大きさの画像を取得するために用いられうる。
【００２１】
上述したように、装置１２によって取得されるいくつかの画像は、例えばビューファインダ画像のような小さな画像であることができる。デバイス２は、リアルタイムビデオをシミュレートするために装置１２によってサンプリングされたビューファインダ画像のリアルタイムシーケンスを表示するディスプレイ２１を含むことができる。これらの画像は比較的幅が小さい。フロントエンド処理ユニット１８のラインバッファは、小さなビューファインダ画像の幅を収納できる大きさであることができる。従って、このような小さな画像は取得されると、フロントエンド処理ユニット１８へラインごとに直接ロードされることができる。処理後、ビューファインダ画像は、ローカルメモリ８又は外部メモリ１４へ書き込まれることができる。処理された画像はその後、ユーザへ表示するためにディスプレイ２１へ送られる。
【００２２】
ディスプレイ２１は、（上述したように）ビューファインダ画像を表示するために用いられることができ、また、処理ユニット１８による静止画像の処理に後続して、このような静止画像を表示するためにも用いられることができる。しかしいくつかの場合において、静止画像は、デバイス２によって表示されることなしには、処理され格納されることができない。静止画像の獲得後、ローカルメモリ８は生データを格納することができる。メモリコントローラはその後、生データの縦縞にアクセスすることができる。静止画像の幅は、ユニット１８内のラインバッファの幅よりも大きいかもしれないが、縦縞の幅はラインバッファ内に収まることができる。従って、一度データが縦縞へ構成又はアドレス指定されると、その縦縞はメモリコントローラ１０によってフロントエンド処理ユニット１８へロードされ、処理され、ローカルメモリ８（又はメモリ１４）へ書き戻されることができる。処理された画像はその後、ディスプレイ２１によって格納されるか、あるいは表示されることができる。
【００２３】
いくつかの場合において、デバイス２は多数のメモリを含むことができる。例えばデバイス２は、一般に比較的大きなメモリ空間を備える外部メモリ１４を含むことができる。外部メモリ１４は、例えばダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）又はフラッシュメモリを備えることができる。メモリ１４は、いわゆる「ＮＯＲ」又は「ＮＡＮＤ」メモリ技術、又はその他任意のデータ格納技術に基づくことができる。他の例において、外部メモリ１４は、不揮発性メモリ又はその他任意のタイプのデータ格納ユニットを備えることができる。外部メモリ１４とは対照的に、ローカルメモリ８は、より小さく高速なメモリ空間を備えるが、本開示は必ずしもこの点に限定されない。一例として、ローカルメモリ８は、同期ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）を備えることができる。
【００２４】
任意の場合において、メモリ１４及びメモリ８は単なる典型例であり、同じメモリ部内に結合されたり、その他多くの構成で実現されることができる。好適な実施形態において、ローカルメモリ８は、外部メモリ１４の一部を一般にＳＤＲＡＭ内に形成する。この場合において、メモリ８及びメモリ１４は、何れのメモリも画像処理ユニット６を備えた「オンチップ」で設けられていないという意味で、どちらも「外部」である。従って、画像処理ユニット６のラインバッファのみが「オンチップ」メモリでありうる。この方式によって、本開示の教示は、小さなビューファインダ画像及び大きな静止画像を処理するために必要な「オンチップ」メモリの量を著しく低減することができる。
【００２５】
デバイス２はまた、処理された画像又は符号化された画像シーケンスを別のデバイスへ送信する送信機（図示せず）を含むこともできる。ローカルメモリ８、ディスプレイ２１、及び外部メモリ１４（及びもし望まれればその他の構成要素）は、通信バス１５を経由して接続されることができる。その他多くの構成要素もデバイス２に含まれることができるが、例示の簡略化のために図１には特に示さない。図１に示すアーキテクチャは単に典型例であり、本明細書で説明される技術はその他様々なアーキテクチャによって実現されうる。
【００２６】
小さなビューファインダ画像に関して、結果的に処理された画像は、通常外部メモリ１４の一部である「フレームバッファ」メモリ内へ書き込まれることができる。この場合において、ディスプレイ２１は一般に、ディスプレイスクリーン上に画像をレンダリングするために、この「フレームバッファ」メモリを読み取る。大きな静止写真画像において、（オーバーラップしない縦縞内の）結果的に処理された画像は、これもまた通常外部メモリ１４の一部である「フレームバッファ」メモリ内へ縞ごとに書き込まれる。各縞はその後、静止画像をレンダリングするために結合され、この静止画像は格納されるか、別のデバイスへ送られるか、あるいはディスプレイ２１上にレンダリングされることができる。しかしフレームバッファメモリのメモリ場所は、本開示によると、任意の特定の場所に限定されない。
【００２７】
図２は、第１の画像２６の幅と、第２の画像２８のオーバーラップする縦縞２７Ａ乃至２７Ｃ（集合的に縦縞２７）の幅とに対応する幅を有する大きさのラインバッファ２５のセットを示す概念図である。より一般的には、ラインバッファ２５は、第１の画像２６の幅及び縦縞２７の幅を収納できる幅を有していなければならない。従ってラインバッファ２５は、第１の画像２６の幅又は縦縞２７の幅よりも幅広いが、第１の画像のライン又は縦縞のラインを収納するために、少なくともそれぞれの幅と同じ幅でなければならない。
【００２８】
ラインバッファ２５は一時的な格納ユニットであり、ＤＳＰのオンチップ要素であることができる。もしハードウェアによって実現される場合、ラインバッファ２５は、フロントエンド処理ユニット１８（図１）の１つ又は複数の画像処理モジュール内に位置することができる。図２に示すように、画像２６のピクセルの全ライン（例えばピクセルＡ１乃至Ｉ１）が、ラインバッファ２５のうちの１つに収まることができる。ラインバッファ２５に必要な実際の幅は、画像２６及び２８のピクセルに関するピクセルフォーマットに依存しうる。ラインバッファが第１の画像２６の幅全体に関するピクセルフォーマットを収納できる幅を有してさえいれば、多くの異なるピクセルフォーマットが、本開示に従って用いられることができる。例えば画像２６及び２８の各ピクセルは、８ビット又は１６ビットを備えることができる。また、ピクセルは、デバイス依存又はデバイス独立の色空間において、３色値又は４色値によって表されうる。ピクセルのフォーマットにかかわらず、ラインバッファ２５は、画像２６及び縦縞２７の幅と同じ又はそれよりも大きいが画像２８の幅よりも小さい適切な大きさを有するように設計されることができる。
【００２９】
また、ラインバッファ２５は小さな画像２６の幅を収納できるので、画像２６は非常に迅速に処理されることができる。画像２６は、ディスプレイ２１（図１）に表示されるリアルタイムビデオシーケンスの一部として迅速に処理されなければならないビューファインダ画像を備えることができる。より大きな画像２８は、静止画像（あるいは符号化されるビデオシーケンスの画像）を備えることができる。第１の画像である小さな画像２６と異なり、第２の画像である大きな画像２８は、自身の画像処理における長いレイテンシを許容することができる。従って、システム２は、ラインバッファの大きさを画像２８の幅より小さく低減することによって、このレイテンシに対する許容を利用する。この場合において、画像２８はラインごとに処理されず、ラインバッファ２５を用いて処理されることができる縦縞２７に区切られる。
【００３０】
図２に示す例において、縦縞２７は互いにオーバーラップしている。具体的には、画像２８内の各ラインのピクセルＨ及びＩは、縦縞２７Ａ内のラインの最後尾に含まれ、縦縞２７Ｂ内のラインの先頭にも含まれる。同様に、ピクセルＯ及びＭは、縦縞２７Ｂ及び２７Ｃの両方のラインに含まれる。このオーバーラップする縦縞の配列は、特に画像２８に多次元フィルタリングが実行される場合に役立つ。
【００３１】
例えば、２次元フィルタリング（又はその他の高次元フィルタリング）は、隣接するピクセルの値に一部が基づくピクセル値をフィルタすることができる。従って、フィルタされたピクセルＣ１の値は、Ｃ１の値のみに依存するのではなく、一部において、隣接するピクセルＢ１及びＤ１の値、及びピクセルＡ１及びＥ１、又はフィルタされるピクセルＣ１から離れたいっそう高次のその他のピクセルの値にも依存しうる。このような高次元フィルタリングに効率的な方式で対処するために、縦縞２７は互いにオーバーラップするように区切られる。フィルタリング後、（例えばフレームバッファ内の）外部メモリ１４へ書き戻され、ラインバッファ２５内へロードされた最も端のピクセルのようにその範囲においてオーバーラップしていないであろうフィルタされたピクセルは、所与の縦縞の中心のピクセルのフィルタリングを定めるためにのみ用いられることができる。従って、処理画像２８が、画像２８のオーバーラップする縦縞２７を２次元フィルタリングすることを備える場合、２次元フィルタリングの出力は、メモリ１４（又はメモリ８）へ再び格納されることができる、フィルタされ、オーバーラップしていない縦縞を備えうる。
【００３２】
縦縞２７は、別々のデータ構成としてメモリ８内に格納されることができる。又は、アドレススキームは、メモリ８内に格納された画像データから、必要に応じて、縦縞にアクセスするために用いられることができる。むしろ、メモリコントローラ１０は単純に、縦縞を再格納する必要を避けるために、生データから縦縞にアクセスする。どちらにしろ、メモリコントローラ１０は、処理する縦縞２７をラインバッファ２５内で定める。フィルタされたバージョンの縦縞も、別々のデータ構成として格納されることができる。又は、完全にフィルタされた画像として、メモリコントローラ１０によって再アセンブルされることができる。
【００３３】
図３は、本開示の技術を実現しうる典型的なメモリ３２、メモリコントローラ３４、及びフロントエンド処理ユニット３６を示すブロック図である。図３の要素３２、３４、及び３６は、それぞれ図１の要素８、１０、及び６に対応しうるが、これらの要素はその他のデバイス内でも同様に用いられることができる。図３に示すように、メモリ３２は、生データバッファ４２と処理済データバッファ４４とを含む。生データバッファ４２は一般に生画像データを格納し、処理済データバッファは一般に、例えばフロントエンド処理ユニット３６によって実行される１つ又は複数の処理ステップに従って処理されたデータを格納する。メモリ３２（及び生データバッファ４２と処理済データバッファ４４）は、単一のメモリ場所、又は例えばメモリ８及び１４（図１）のような複数の場所に位置づけられることができる。
【００３４】
メモリコントローラ３４は、メモリ３２内でのメモリ構成を制御する。メモリコントローラ３４は特に、メモリ３２からユニット３６へのメモリのロード及びユニット３６からメモリ３２への書き戻しを制御する。また、フロントエンド処理ユニット３６内で用いられるラインバッファよりも大きいライン幅を定める大きな画像に関して、メモリコントローラ３４は、生データバッファ４２内の生データについて、そのようなラインバッファに収まる縦縞を定める。図２に示す画像２８の縦縞２７が１つのこのような例である。
【００３５】
フロントエンド処理ユニット３６は、複数の画像処理モジュール４５Ａ乃至４５Ｄ（集合的にモジュール４５）を含むことができる。モジュール４５のうちの１つ又は複数が、図２に示すラインバッファ２５を含むことができる。例えばモジュール４５は、例えば２次元フィルタリングモジュールや高次元フィルタリングモジュール、デモザイクモジュール、レンズロールオフ補正モジュール、拡大縮小モジュール、１つ又は複数の色補正モジュール、１つ又は複数の色変換モジュール、ノイズ低減フィルタリングモジュール、空間フィルタリングモジュール、又は生画像データや処理済画像データに用いられうるその他任意のタイプのイメージングモジュールのような幅広く様々な画像処理モジュールを含むことができる。
【００３６】
モジュール４５のラインバッファ内に収まる画像幅である例えばビューファインダ画像のような小さな画像に関して、メモリコントローラ３４は、各画像の連続するラインをモジュール１（４５Ａ）内へロードし、処理された結果を処理済データバッファ４４のうちの１つへ書き戻すことができる。処理済データはその後、モジュール２（４５Ｂ）内へロードされ、更に処理され、その後書き戻されることができる。更なる処理済データはその後、モジュール３内へロードされ、処理され、書き戻され、このような処理は、ユニット３６内のモジュール４５のうちのいくつか又は全てを通して続くことができる。あるいは、小さな画像に関して、小さな画像に関する生データが画像取得装置（図３に示さず）から直接来る場合、画像取得装置１２（図１）の出力が、ユニット３６によって定められる画像処理パイプラインへ直接接続されることができる。この場合において、小さなビューファインダ画像に関する生データは、ラインバッファ内での処理の前に、メモリコントローラ３４を通らず、（例えば３２のような）異なるメモリ内に格納もされない。これは、リアルタイムで表示される必要があるこのような小さな画像に関する処理速度を向上させることができる。
【００３７】
所与のラインが一度モジュール１（４５Ａ）によって処理されると、その後次のラインがパイプライン形式で処理されることができる。従って、モジュール４５のラインバッファ内に収まるライン幅を有する小さなビューファインダ画像に関して、画像の連続するラインが、非常に高速な画像処理スループットによってモジュール４５を通してパイプラインされることができる。
【００３８】
大きな画像も同様の形式で処理されることができるが、最初に、ラインバッファ内に収まる縦縞へ分割される必要がある。従って、例えばデバイスによって取得される静止画像のような大きな画像に関して、メモリコントローラ３４は、２次元フィルタリングの場合、（例えば、アドレッシングスキームによって）生データを互いにオーバーラップしうる縦縞として定める。この場合において、縦縞のラインは、モジュール４５内へロードされ、パイプライン形式で書き戻されることができる。モジュール４５のうちの１つ又は複数によって用いられるラインバッファの各々が、大きな画像の全体幅よりも小さいために、このような大きな画像の処理において更なるレイテンシが生成される。しかし、ラインバッファの大きさを低減することによって達成されるハードウェア低減は、デバイスによって取得される静止画像において許容されることのできるレイテンシという犠牲を払っても望ましい。ほとんどの場合において、ユニット３６は、処理済の各ラインを、メモリコントローラ３４を通って往復して送ることなしに、各縦縞のラインをパイプライン形式で処理することができる。
【００３９】
図４は、大きな画像や小さな画像の処理において小さなラインバッファが用いられる技術を示すフロー図である。この例において、大きな画像は、静止画像モードでデバイスによって取得された静止画像であり、小さな画像は、ビューファインダモードでデバイスによって取得されたビューファインダ画像である。しかし同じ技術が、互いと比較して大きな画像と小さな画像である任意の画像において用いられることができる。図４は、図２のラインバッファ２５が図１のフロントエンド処理ユニット１８内で用いられ、図１及び図２に関して説明される。
【００４０】
図４に示すように、画像取得装置１２は、小さなビューファインダ画像又は大きな静止画像でありうる画像を取得する（５１）。デバイス２のモードは、この画像がビューファインダ画像であるか静止画像であるかを判定する（５２）。小さなビューファインダ画像の場合（５２のビューファインダ分岐）、画像取得装置１２によって取得された生画像データが、フロントエンド処理ユニット１８のラインバッファ２５へ直接ロードされる。本明細書で説明するように、ラインバッファ２５はビューファインダ画像の全体幅を収納できる幅を有することによって、これらの画像がフロントエンド処理ユニット１８内でラインごとに処理されることを可能とする。その結果、図４に示すように、フロントエンド処理ユニット１８は、ラインバッファ２５を用いて画像を処理する（５６）。その後メモリコントローラによって、処理済画像はメモリ８（又はメモリ１４）内へ再び格納される（５７）。もし望まれれば、追加の処理ステップが続いて画像に実行されることができる。
【００４１】
大きな静止画像の場合（５２の静止画像分岐）、メモリコントローラ１０が静止画像の生データを格納し（５９）、ローカルメモリ８内のメモリバッファ内で、静止画像のオーバーラップする縦縞を定める（５４）。縦縞に関するメモリバッファは、ラインバッファの幅に従う大きさであることができ、縦縞は、静止画像のオーバーラップする縞であることができる。メモリコントローラ１０はその後、フロントエンド処理ユニット１８のラインバッファ２５内へ縦縞の各行をロードする（５５）。このようにして、ユニット１８はラインバッファ２５を用いて静止画像を処理することができるが（５６）、静止画像の各ラインについてではなく、縦縞の各ラインについて処理する。このような処理後、メモリコントローラによって、処理済画像はメモリ８（又はメモリ１４）内へ再び格納される（５７）。こちらでも、もし望まれれば、追加の処理ステップが続いて画像に実行されうる。言い換えると、図４に示す処理は画像処理の１つの段階に適応するが、例えばもしフロントエンド処理ユニット１８がラインバッファを用いるいくつかの画像処理モジュールを含む場合、連続する段階について反復されることができる。更に、ビューファインダ画像の各ライン又は静止画像の縦縞の各ラインは、フロントエンド処理ユニット１８を通してパイプラインされることができる。
【００４２】
多くの画像処理技術が説明された。この技術は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせによって実現されうる。ソフトウェアによって実現される場合、この技術は、２つ又はそれより多くの異なる大きさの画像を取得するデバイス内で実行されると、そのような画像を、少なくともいくつかの画像の幅よりも小さいラインバッファを用いて処理することができるプログラムコードを備えるコンピュータ読取可能媒体を示されうる。この場合、コンピュータ読取可能媒体は、例えば同期ランダムアクセスメモリ（ＳＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、又はこれらと同様のものを備える。
【００４３】
プログラムコードは、コンピュータ読取可能命令の形式でメモリに格納されることができる。この場合、例えばＤＳＰのようなプロセッサが、１つ又は複数の画像処理技術を実行するために、メモリ内に格納された命令を実行することができる。いくつかの場合において、この技術は、様々なハードウェア部品に画像処理を加速させるＤＳＰによって実行されることができる。他の場合において、本明細書で説明されたユニットは、マイクロプロセッサ、１つ又は複数の特定用途向け集積回路（ＡＳＩＣ）、１つ又は複数のフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はその他いくつかのハードウェアとソフトウェアとの組み合わせとして実現されうる。
【００４４】
それにもかかわらず、本明細書で説明された技術への様々な変形例が可能である。例えば、この技術は、主として小さなビューファインダ画像及び大きな静止画像の状況において説明されたが、異なる幅の任意の画像に関して適用することができる。また、この技術は、高解像度画像及び低解像度画像に関して適用することができ、いずれの場合も、高解像度画像が低解像度画像よりも高いピクセル密度を定めている限り、高解像度画像は、与えられた画像サイズについて、幅が大きくなるであろう。更に、この技術は個々の画像の文脈において説明されたが、ビデオシーケンスを形成する画像のセットにも用いることができる。この場合、低解像度シーケンスがバッファ内でラインごとに処理されることができるのに対し、高解像度シーケンスは縦縞として格納され、その後処理されることができる。これらの実施形態及びその他の実施形態は、特許請求の範囲の範囲内である。
【図面の簡単な説明】
【００４５】
【図１】図1は、本開示の技術を実現しうる典型的なデバイスのブロック図である。
【図２】図２は、第１の画像の幅と第２の画像のオーバーラップする縦縞の幅とに対応する幅を有する大きさのラインバッファのセットを示す概念図である。
【図３】図３は、本開示の技術を実現しうる典型的なメモリ、メモリコントローラ、及びフロントエンド処理ユニットを示すブロック図である。
【図４】図４は、大きな画像又は小さな画像の処理で用いられる小さなラインバッファにおける技術を示すフロー図である。
【図１】
2009533772.tif 000003
【図２】
2009533772.tif 000004
【図３】
2009533772.tif 000005
【図４】
2009533772.tif 000006
【国際調査報告】
2009533772.tif 000007
2009533772.tif 000008
2009533772.tif 000009