説明

小さな画像又は大きな画像を処理する小さなラインバッファを容易に用いる技術

【課題】異なる大きさの画像の画像処理をサポートするデバイスのために役立つ画像処理技術を提供する。
【解決手段】デバイスによって取得された小さなビューファインダ画像及び大きな静止画像のフロントエンド画像処理のための方法は、デバイスを用いて第1の画像を取得することと、第1の画像の画像幅を収納できる大きさのラインバッファを用いて第1の画像を処理することと、デバイスを用いて、第1の画像の画像幅よりも大きい画像幅を有する第2の画像を取得することとを備える。この方法は、ラインバッファを用いて、ラインバッファ内に収まる幅を定める前記第2の画像の縦縞を処理することも含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理及びビデオ処理に関し、特に、異なる大きさの画像の効率的な処理のためのメモリ格納技術に関する。
【背景技術】
【0002】
多くの「フロントエンド」画像処理技術は、しばしばイメージングデバイス内又はビデオデバイス内で行われる。一般にこのようなデバイスは、ビデオシーケンスからの例えば個々の静止画像又は画像シーケンスのような生画像データを得る画像センサを含む。画像品質を向上させるためにしばしば生データについて、画像処理技術が実行される。このような画像処理技術の例は、いくつかの例を挙げると、2次元フィルタリング、デモザイク、レンズロールオフ補正、拡大縮小、色補正、色変換、ノイズ低減フィルタリング、及び空間フィルタリングである。フロントエンド処理は、例えば階調再現、彩度、色彩再現及び鮮明さのようなビジュアル画像品質特性を向上させることができる。
【0003】
多くの場合において、デバイスは、いくつかの異なる大きさの異なる画像について、画像処理技術をサポートする必要がある。実際に、デバイスによってサポートされる必要がある画像の大きさは、いくつかの場合において抜本的に変化しうる。例えばデバイスは、デバイスのビューファインダにおいてリアルタイムで非常に小さな画像のシーケンスを表示し、ビューファインダにおける画像品質を向上させるために、このような画像に迅速に画像処理を行う必要がある。加えて、デバイスは、例えばデバイスによって取得された静止画像や、デバイスによって取得された画像のビデオシーケンスのような非常に大きな画像に、画像処理技術を行うことができる。異なる画像に対する画像処理をサポートするために、従来技術は、画像処理モジュール内のラインバッファに、デバイスによって処理可能である最も大きな画像の画像幅を収納できることを課した。ラインバッファは、画像データのライン又はラインの一部を格納するために用いられる、小さく、一時的な記憶場所である。ラインバッファは一般にオンチップであり、1つ又は複数の処理モジュールに関連する。
【発明の概要】
【0004】
本開示は、異なる大きさの画像の画像処理をサポートするデバイスのために役立つ画像処理技術を説明する。この技術は、多数の文脈において用いられることができ、特に、デバイスによって取得される小さなビューファインダ画像及び大きな静止画像のフロントエンド画像処理のために役立つ。本明細書で説明される技術は、画像処理に関連するラインバッファの大きさの著しい低減を可能とする。本開示によると、ラインバッファは小さなビューファインダ画像を収納できる大きさであることができるので、このような画像は非常に迅速に処理されることができる。大きな画像の生データは一時的な場所に格納され、このような大きな画像の幅よりも小さいラインバッファを用いて処理されることが可能となるような方式でアクセスされることができる。
【0005】
1つの実施形態において、本開示は、デバイスを用いて第1の画像を取得することと、第1の画像の画像幅を収納できる大きさのラインバッファを用いて第1の画像を処理することと、デバイスを用いて、第1の画像の画像幅よりも大きい画像幅を有する第2の画像を取得することと、ラインバッファを用いて、ラインバッファ内に収まる幅を定める前記第2の画像の縦縞を処理することとを備える方法を提供する。
【0006】
別の実施形態において、本開示は、デバイスを用いて画像を取得することと、画像の幅よりも小さい幅を定めるラインバッファを用いて、画像の縦縞を処理することとを備える方法を提供する。
【0007】
別の実施形態において、本開示は、画像を取得する画像取得装置と、メモリと、画像のオーバーラップする縦縞を定めるメモリコントローラと、画像の幅よりも小さい幅を定めるラインバッファを用いて、画像のオーバーラップする縦縞を処理する処理ユニットとを備えるデバイスを提供する。
【0008】
別の実施形態において、本開示は、デバイスによって取得された画像を処理するフロントエンド処理ユニットを提供する。フロントエンド処理ユニットは、第1の画像の画像幅を収納できる大きさのラインバッファを用いて第1の画像を処理し、そのラインバッファを用いて第2の画像の縦縞を処理する。第2の画像は第1の画像の画像幅よりも大きく、ラインバッファよりも大きい画像幅を有し、第2の画像の縦縞はラインバッファ内に収まる幅を定める。
【0009】
本明細書で説明されるこれらの技術又はその他の技術は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせによって実現されうる。ソフトウェアによって実現される場合、ソフトウェアは、デジタル信号プロセッサ(DSP)又はその他のタイプのプロセッサにおいて実行されうる。この技術を実行するソフトウェアは、最初にコンピュータ読取可能媒体に格納され、異なる大きさの画像を効率的に処理するために、DSP内にロードされ実行される。
【0010】
本開示はまた、デバイス内で実行されると、デバイスに、第1の画像の画像幅を収納できるサイズのラインバッファを用いて第1の画像を処理させ、ラインバッファを用いて、第1の画像の画像幅よりも大きく、ラインバッファよりも大きい画像幅を有する第2の画像の縦縞であって、ラインバッファ内に収まる幅を定める縦縞を処理させる命令群を備えるコンピュータ読取可能媒体を考慮する。
【0011】
本発明の1つ又は複数の実施形態の詳細は、添付図面及び以下の詳細な説明において示す。本発明のその他の特徴、目的、及び利点は、詳細な説明、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0012】
【図1】図1は、本開示の技術を実現しうる典型的なデバイスのブロック図である。
【図2】図2は、第1の画像の幅と第2の画像のオーバーラップする縦縞の幅とに一致する幅を有する大きさのラインバッファのセットを示す概念図である。
【図3】図3は、本開示の技術を実現しうる典型的なメモリ、メモリコントローラ、及びフロントエンド処理ユニットを示すブロック図である。
【図4】図4は、大きな画像又は小さな画像の処理で用いられる小さなラインバッファにおける技術を示すフロー図である。
【発明を実施するための形態】
【0013】
本開示は、異なる大きさの画像の画像処理をサポートするデバイスに役立つ画像処理技術を説明する。この技術は多くの状況において用いられることができ、特に、小さなビューファインダ画像及びデバイスによって得られた大きな静止画像のフロントエンド画像処理に役立つ。この場合、デバイスのビューファインダモードと静止画像取得モードとは、これらの異なるモードで取得された異なる画像に異なる処理要求を出す。具体的には、ビューファインダモードは、ビューファインダがリアルタイムビデオシーケンスのように画像をビューファインダに表示することができるように、非常に小さな画像の迅速な処理を必要としうる。一方、静止画像取得モードは、より長い待ち時間を許容しうるが、画像はビューファインダモードの画像よりも格段に大きい。
【0014】
本開示によると、フロントエンド画像処理のために用いられるラインバッファは、第1の画像(例えばビューファインダ画像)に関する画像幅を収納できるような大きさであるが、第2の画像(例えば静止画像)よりも小さな大きさであることができる。ビューファインダ画像の各ラインは処理ユニット内のラインバッファ内に収まるので、ビューファインダ画像は非常に早く処理されることができる。より大きな画像を処理するために、大きな画像は、画像の縦縞のようにアドレス指定されるか、定められることができ、この縦縞は、ラインバッファ内に収まる幅を定める。縦縞は、他の縦縞とオーバーラップするピクセルを有することができ、画像処理が2次元(又はより高次元の)フィルタリングを含む場合に特に役立つ。静止画像の幅よりも小さい同じラインバッファが、小さなビューファインダ画像の処理にも大きな静止画像の処理にも用いられることができるために、デバイスにおけるハードウェア低減が達成されうる。
【0015】
図1は、本開示の技術を実現しうるデバイス2を示すブロック図である。デバイス2は、画像取得デバイス、あるいはビデオデータを符号化及び送信することができるデジタルビデオデバイスの一部を形成しうる。一例として、デバイス2は、デジタルカメラ、例えばセルラー電話や人工衛星無線電話のような無線通信デバイス、携帯情報端末(PDA)、又はイメージング機能やビデオ機能を備える任意のデバイスを備えることができる。
【0016】
図1に示すように、デバイス2は、生画像データを格納し、このようなデータに様々な処理技術を行う画像処理装置4を含む。装置4は、デジタル信号プロセッサ(DSP)とオンチップメモリ(例えば本明細書で説明されるラインバッファ)とを含むいわゆる「チップセット」を備えることができる。しかし他の場合において、装置4は、プロセッサ、ハードウェア、ソフトウェア又はファームウェアの任意の組み合わせを備えることができる。また装置4は、もし望まれれば単一の集積チップを備えることもできる。
【0017】
図1に示された例において、画像処理装置4は、ローカルメモリ8と、メモリコントローラ10と、画像処理ユニット6とを含む。画像処理ユニット6は、フロントエンド処理ユニット18を含むが、符号化ユニット19も含む。一般にフロントエンド処理ユニット18は、本開示の技術を実現し、複数の画像処理モジュールを含むことができる。フロントエンド処理ユニット18は、複数の画像処理モジュールを含むことができる。一例として、フロントエンド処理ユニット18のモジュールは、2次元フィルタリングモジュール、デモザイクモジュール、レンズロールオフ補正モジュール、拡大縮小モジュール、色補正モジュール、色変換モジュール、ノイズ低減フィルタリングモジュール、空間フィルタリングモジュール、又はその他のタイプのモジュールを含むことができる。本開示の教示は、例えば2次元フィルタリングモジュール、ノイズ低減フィルタリングモジュール、及び垂直拡大縮小モジュールのような、ラインバッファを実現することができる任意のモジュールに関して特に重要である。
【0018】
符号化ユニット19は、装置4によって処理される画像がビデオフレームのストリームである場合に役立つ。この場合、符号化ユニット19は、例えばフレーム間圧縮やフレーム内圧縮のような1つ又は複数のビデオ圧縮技術を含みうるビデオ符号化を実行することができる。例えば符号化ユニット19は、フレーム間圧縮を提供するために、動き推定技術及び動き補正技術を実現し、時間データ相関性又はフレーム間データ相関性を利用することができる。あるいは、又は加えて、符号化ユニット19は、フレーム内圧縮を提供するために、空間データ補正又はフレームデータ補正を利用する空間推定技術及びフレーム内予測技術を実行することができる。符号化ユニット19はまた、静止画像を圧縮するためにも用いられることができる。
【0019】
ローカルメモリ8は、一般に生画像データを格納し、また、画像処理ユニット6によって実行される任意の処理に後続して、処理された画像データを格納することもできる。メモリコントローラ10は、メモリ8内のメモリ構成を制御する。メモリコントローラ10はまた、メモリ8からユニット6へのメモリのロードを制御し、ユニット6からメモリ8へ書き戻す。更に、以下でより詳しく説明するように、メモリコントローラ10は、生画像データをオーバーラップする縦縞としてアドレス指定することができる。この場合、オーバーラップする縦縞は、大きな画像の幅よりも小さな幅を有しうるので、フロントエンド処理ユニット18内のラインバッファは、縦縞の行を収納することができる。(例えばビューファインダ画像のような)小さな画像は、ラインバッファ内で迅速に処理されることができるが、(例えば静止画像のような)大きな画像はメモリ8内にオーバーラップする縞としてアドレス指定され、その後フロントエンド処理ユニット18のラインバッファ内で処理されることができる。
【0020】
従って静止画像は、画像の幅全体がラインバッファ内へ直ちにはロードされないので、処理するためにより長い時間がかかりうる。その代わり、大きな画像の各々は、連続する縞をラインバッファ内へロードすることによって処理される。しかし静止画像は、(例えばユーザがリアルタイムビデオ取得を観ている場合のように)リアルタイムで配信される必要がないので、この状況において生じうる追加のレイテンシをより容易に許容することができる。
【0021】
デバイス2は、画像を取得する画像取得装置12を含むことができる。画像取得装置12は、それぞれのセンサの表面に配置された色フィルタアレイ(CFA)を含む画像センサのセットを備え、ビューファインダ画像の画像処理におけるレイテンシを避けるために、画像処理ユニット6に直接接続されることができる。しかしその他のタイプの画像センサも、画像データを取得するために用いられることができる。画像取得装置12を実現するために用いられることができるその他の典型的なセンサは、例えば相補型金属酸化膜半導体(CMOS)センサ素子、電荷結合素子(CCD)センサ素子、又は同様のもののようなソリッドステートセンサ素子のアレイを含む。画像取得装置12は、本開示に従ってその後処理される異なる大きさの画像を取得するために用いられることができる。しかし、他の場合において、複数の異なる画像取得装置が、異なる大きさの画像を取得するために用いられうる。
【0022】
上述したように、装置12によって取得されるいくつかの画像は、例えばビューファインダ画像のような小さな画像であることができる。デバイス2は、リアルタイムビデオをシミュレートするために装置12によってサンプリングされたビューファインダ画像のリアルタイムシーケンスを表示するディスプレイ21を含むことができる。これらの画像は比較的幅が小さい。フロントエンド処理ユニット18のラインバッファは、小さなビューファインダ画像の幅を収納できる大きさであることができる。従って、このような小さな画像は取得されると、フロントエンド処理ユニット18へラインごとに直接ロードされることができる。処理後、ビューファインダ画像は、ローカルメモリ8又は外部メモリ14へ書き込まれることができる。処理された画像はその後、ユーザへ表示するためにディスプレイ21へ送られる。
【0023】
ディスプレイ21は、(上述したように)ビューファインダ画像を表示するために用いられることができ、また、処理ユニット18による静止画像の処理に後続して、このような静止画像を表示するためにも用いられることができる。しかしいくつかの場合において、静止画像は、デバイス2によって表示されることなしには、処理され格納されることができない。静止画像の獲得後、ローカルメモリ8は生データを格納することができる。メモリコントローラはその後、生データの縦縞にアクセスすることができる。静止画像の幅は、ユニット18内のラインバッファの幅よりも大きいかもしれないが、縦縞の幅はラインバッファ内に収まることができる。従って、一度データが縦縞へ構成又はアドレス指定されると、その縦縞はメモリコントローラ10によってフロントエンド処理ユニット18へロードされ、処理され、ローカルメモリ8(又はメモリ14)へ書き戻されることができる。処理された画像はその後、ディスプレイ21によって格納されるか、あるいは表示されることができる。
【0024】
いくつかの場合において、デバイス2は多数のメモリを含むことができる。例えばデバイス2は、一般に比較的大きなメモリ空間を備える外部メモリ14を含むことができる。外部メモリ14は、例えばダイナミック・ランダム・アクセス・メモリ(DRAM)又はフラッシュメモリを備えることができる。メモリ14は、いわゆる「NOR」又は「NAND」メモリ技術、又はその他任意のデータ格納技術に基づくことができる。他の例において、外部メモリ14は、不揮発性メモリ又はその他任意のタイプのデータ格納ユニットを備えることができる。外部メモリ14とは対照的に、ローカルメモリ8は、より小さく高速なメモリ空間を備えるが、本開示は必ずしもこの点に限定されない。一例として、ローカルメモリ8は、同期ダイナミック・ランダム・アクセス・メモリ(SDRAM)を備えることができる。
【0025】
任意の場合において、メモリ14及びメモリ8は単なる典型例であり、同じメモリ部内に結合されたり、その他多くの構成で実現されることができる。好適な実施形態において、ローカルメモリ8は、外部メモリ14の一部を一般にSDRAM内に形成する。この場合において、メモリ8及びメモリ14は、何れのメモリも画像処理ユニット6を備えた「オンチップ」で設けられていないという意味で、どちらも「外部」である。従って、画像処理ユニット6のラインバッファのみが「オンチップ」メモリでありうる。この方式によって、本開示の教示は、小さなビューファインダ画像及び大きな静止画像を処理するために必要な「オンチップ」メモリの量を著しく低減することができる。
【0026】
デバイス2はまた、処理された画像又は符号化された画像シーケンスを別のデバイスへ送信する送信機(図示せず)を含むこともできる。ローカルメモリ8、ディスプレイ21、及び外部メモリ14(及びもし望まれればその他の構成要素)は、通信バス15を経由して接続されることができる。その他多くの構成要素もデバイス2に含まれることができるが、例示の簡略化のために図1には特に示さない。図1に示すアーキテクチャは単に典型例であり、本明細書で説明される技術はその他様々なアーキテクチャによって実現されうる。
【0027】
小さなビューファインダ画像に関して、結果的に処理された画像は、通常外部メモリ14の一部である「フレームバッファ」メモリ内へ書き込まれることができる。この場合において、ディスプレイ21は一般に、ディスプレイスクリーン上に画像をレンダリングするために、この「フレームバッファ」メモリを読み取る。大きな静止写真画像において、(オーバーラップしない縦縞内の)結果的に処理された画像は、これもまた通常外部メモリ14の一部である「フレームバッファ」メモリ内へ縞ごとに書き込まれる。各縞はその後、静止画像をレンダリングするために結合され、この静止画像は格納されるか、別のデバイスへ送られるか、あるいはディスプレイ21上にレンダリングされることができる。しかしフレームバッファメモリのメモリ場所は、本開示によると、任意の特定の場所に限定されない。
【0028】
図2は、第1の画像26の幅と、第2の画像28のオーバーラップする縦縞27A乃至27C(集合的に縦縞27)の幅とに一致する幅を有する大きさのラインバッファ25のセットを示す概念図である。より一般的には、ラインバッファ25は、第1の画像26の幅及び縦縞27の幅を収納できる幅を有していなければならない。従ってラインバッファ25は、第1の画像26の幅又は縦縞27の幅よりも幅広いが、第1の画像のライン又は縦縞のラインを収納するために、少なくともそれぞれの幅と同じ幅でなければならない。
【0029】
ラインバッファ25は一時的な格納ユニットであり、DSPのオンチップ要素であることができる。もしハードウェアによって実現される場合、ラインバッファ25は、フロントエンド処理ユニット18(図1)の1つ又は複数の画像処理モジュール内に位置することができる。図2に示すように、画像26のピクセルの全ライン(例えばピクセルA乃至I)が、ラインバッファ25のうちの1つに収まることができる。ラインバッファ25に必要な実際の幅は、画像26及び28のピクセルに関するピクセルフォーマットに依存しうる。ラインバッファが第1の画像26の幅全体に関するピクセルフォーマットを収納できる幅を有してさえいれば、多くの異なるピクセルフォーマットが、本開示に従って用いられることができる。例えば画像26及び28の各ピクセルは、8ビット又は16ビットを備えることができる。また、ピクセルは、デバイス依存又はデバイス独立の色空間において、3色値又は4色値によって表されうる。ピクセルのフォーマットにかかわらず、ラインバッファ25は、画像26及び縦縞27の幅と同じ又はそれよりも大きいが画像28の幅よりも小さい適切な大きさを有するように設計されることができる。
【0030】
また、ラインバッファ25は小さな画像26の幅を収納できるので、画像26は非常に迅速に処理されることができる。画像26は、ディスプレイ21(図1)に表示されるリアルタイムビデオシーケンスの一部として迅速に処理されなければならないビューファインダ画像を備えることができる。より大きな画像28は、静止画像(あるいは符号化されるビデオシーケンスの画像)を備えることができる。第1の画像である小さな画像26と異なり、第2の画像である大きな画像28は、自身の画像処理における長いレイテンシを許容することができる。従って、システム2は、ラインバッファの大きさを画像28の幅より小さく低減することによって、このレイテンシに対する許容を利用する。この場合において、画像28はラインごとに処理されず、ラインバッファ25を用いて処理されることができる縦縞27に区切られる。
【0031】
図2に示す例において、縦縞27は互いにオーバーラップしている。具体的には、画像28内の各ラインのピクセルH及びIは、縦縞27A内のラインの最後尾に含まれ、縦縞27B内のラインの先頭にも含まれる。同様に、ピクセルO及びMは、縦縞27B及び27Cの両方のラインに含まれる。このオーバーラップする縦縞の配列は、特に画像28に多次元フィルタリングが実行される場合に役立つ。
【0032】
例えば、2次元フィルタリング(又はその他の高次元フィルタリング)は、隣接するピクセルの値に一部が基づくピクセル値をフィルタすることができる。従って、フィルタされたピクセルCの値は、Cの値のみに依存するのではなく、一部において、隣接するピクセルB及びDの値、及びピクセルA及びE、又はフィルタされるピクセルCから離れたいっそう高次のその他のピクセルの値にも依存しうる。このような高次元フィルタリングに効率的な方式で対処するために、縦縞27は互いにオーバーラップするように区切られる。フィルタリング後、(例えばフレームバッファ内の)外部メモリ14へ書き戻され、ラインバッファ25内へロードされた最も端のピクセルのようにその範囲においてオーバーラップしていないであろうフィルタされたピクセルは、所与の縦縞の中心のピクセルのフィルタリングを定めるためにのみ用いられることができる。従って、処理画像28が、画像28のオーバーラップする縦縞27を2次元フィルタリングすることを備える場合、2次元フィルタリングの出力は、メモリ14(又はメモリ8)へ再び格納されることができる、フィルタされ、オーバーラップしていない縦縞を備えうる。
【0033】
縦縞27は、別々のデータ構成としてメモリ8内に格納されることができる。又は、アドレススキームは、メモリ8内に格納された画像データから、必要に応じて、縦縞にアクセスするために用いられることができる。むしろ、メモリコントローラ10は単純に、縦縞を再格納する必要を避けるために、生データから縦縞にアクセスする。どちらにしろ、メモリコントローラ10は、処理する縦縞27をラインバッファ25内で定める。フィルタされたバージョンの縦縞も、別々のデータ構成として格納されることができる。又は、完全にフィルタされた画像として、メモリコントローラ10によって再アセンブルされることができる。
【0034】
図3は、本開示の技術を実現しうる典型的なメモリ32、メモリコントローラ34、及びフロントエンド処理ユニット36を示すブロック図である。図3の要素32、34、及び36は、それぞれ図1の要素8、10、及び6に一致しうるが、これらの要素はその他のデバイス内でも同様に用いられることができる。図3に示すように、メモリ32は、生データバッファ42と処理済データバッファ44とを含む。生データバッファ42は一般に生画像データを格納し、処理済データバッファは一般に、例えばフロントエンド処理ユニット36によって実行される1つ又は複数の処理ステップに従って処理されたデータを格納する。メモリ32(及び生データバッファ42と処理済データバッファ44)は、単一のメモリ場所、又は例えばメモリ8及び14(図1)のような複数の場所に位置づけられることができる。
【0035】
メモリコントローラ34は、メモリ32内でのメモリ構成を制御する。メモリコントローラ34は特に、メモリ32からユニット36へのメモリのロード及びユニット36からメモリ32への書き戻しを制御する。また、フロントエンド処理ユニット36内で用いられるラインバッファよりも大きいライン幅を定める大きな画像に関して、メモリコントローラ34は、生データバッファ42内の生データについて、そのようなラインバッファに収まる縦縞を定める。図2に示す画像28の縦縞27が1つのこのような例である。
【0036】
フロントエンド処理ユニット36は、複数の画像処理モジュール45A乃至45D(集合的にモジュール45)を含むことができる。モジュール45のうちの1つ又は複数が、図2に示すラインバッファ25を含むことができる。例えばモジュール45は、例えば2次元フィルタリングモジュールや高次元フィルタリングモジュール、デモザイクモジュール、レンズロールオフ補正モジュール、拡大縮小モジュール、1つ又は複数の色補正モジュール、1つ又は複数の色変換モジュール、ノイズ低減フィルタリングモジュール、空間フィルタリングモジュール、又は生画像データや処理済画像データに用いられうるその他任意のタイプのイメージングモジュールのような幅広く様々な画像処理モジュールを含むことができる。
【0037】
モジュール45のラインバッファ内に収まる画像幅である例えばビューファインダ画像のような小さな画像に関して、メモリコントローラ34は、各画像の連続するラインをモジュール1(45A)内へロードし、処理された結果を処理済データバッファ44のうちの1つへ書き戻すことができる。処理済データはその後、モジュール2(45B)内へロードされ、更に処理され、その後書き戻されることができる。更なる処理済データはその後、モジュール3内へロードされ、処理され、書き戻され、このような処理は、ユニット36内のモジュール45のうちのいくつか又は全てを通して続くことができる。あるいは、小さな画像に関して、小さな画像に関する生データが画像取得装置(図3に示さず)から直接来る場合、画像取得装置12(図1)の出力が、ユニット36によって定められる画像処理パイプラインへ直接接続されることができる。この場合において、小さなビューファインダ画像に関する生データは、ラインバッファ内での処理の前に、メモリコントローラ34を通らず、(例えば32のような)異なるメモリ内に格納もされない。これは、リアルタイムで表示される必要があるこのような小さな画像に関する処理速度を向上させることができる。
【0038】
所与のラインが一度モジュール1(45A)によって処理されると、その後次のラインがパイプライン形式で処理されることができる。従って、モジュール45のラインバッファ内に収まるライン幅を有する小さなビューファインダ画像に関して、画像の連続するラインが、非常に高速な画像処理スループットによってモジュール45を通してパイプラインされることができる。
【0039】
大きな画像も同様の形式で処理されることができるが、最初に、ラインバッファ内に収まる縦縞へ分割される必要がある。従って、例えばデバイスによって取得される静止画像のような大きな画像に関して、メモリコントローラ34は、2次元フィルタリングの場合、(例えば、アドレッシングスキームによって)生データを互いにオーバーラップしうる縦縞として定める。この場合において、縦縞のラインは、モジュール45内へロードされ、パイプライン形式で書き戻されることができる。モジュール45のうちの1つ又は複数によって用いられるラインバッファの各々が、大きな画像の全体幅よりも小さいために、このような大きな画像の処理において更なるレイテンシが生成される。しかし、ラインバッファの大きさを低減することによって達成されるハードウェア低減は、デバイスによって取得される静止画像において許容されることのできるレイテンシという犠牲を払っても望ましい。ほとんどの場合において、ユニット36は、処理済の各ラインを、メモリコントローラ34を通って往復して送ることなしに、各縦縞のラインをパイプライン形式で処理することができる。
【0040】
図4は、大きな画像や小さな画像の処理において小さなラインバッファが用いられる技術を示すフロー図である。この例において、大きな画像は、静止画像モードでデバイスによって取得された静止画像であり、小さな画像は、ビューファインダモードでデバイスによって取得されたビューファインダ画像である。しかし同じ技術が、互いと比較して大きな画像と小さな画像である任意の画像において用いられることができる。図4は、図2のラインバッファ25が図1のフロントエンド処理ユニット18内で用いられ、図1及び図2に関して説明される。
【0041】
図4に示すように、画像取得装置12は、小さなビューファインダ画像又は大きな静止画像でありうる画像を取得する(51)。デバイス2のモードは、この画像がビューファインダ画像であるか静止画像であるかを判定する(52)。小さなビューファインダ画像の場合(52のビューファインダ分岐)、画像取得装置12によって取得された生画像データが、フロントエンド処理ユニット18のラインバッファ25へ直接ロードされる。本明細書で説明するように、ラインバッファ25はビューファインダ画像の全体幅を収納できる幅を有することによって、これらの画像がフロントエンド処理ユニット18内でラインごとに処理されることを可能とする。その結果、図4に示すように、フロントエンド処理ユニット18は、ラインバッファ25を用いて画像を処理する(56)。その後メモリコントローラによって、処理済画像はメモリ8(又はメモリ14)内へ再び格納される(57)。もし望まれれば、追加の処理ステップが続いて画像に実行されることができる。
【0042】
大きな静止画像の場合(52の静止画像分岐)、メモリコントローラ10が静止画像の生データを格納し(59)、ローカルメモリ8内のメモリバッファ内で、静止画像のオーバーラップする縦縞を定める(54)。縦縞に関するメモリバッファは、ラインバッファの幅に従う大きさであることができ、縦縞は、静止画像のオーバーラップする縞であることができる。メモリコントローラ10はその後、フロントエンド処理ユニット18のラインバッファ25内へ縦縞の各行をロードする(55)。このようにして、ユニット18はラインバッファ25を用いて静止画像を処理することができるが(56)、静止画像の各ラインについてではなく、縦縞の各ラインについて処理する。このような処理後、メモリコントローラによって、処理済画像はメモリ8(又はメモリ14)内へ再び格納される(57)。こちらでも、もし望まれれば、追加の処理ステップが続いて画像に実行されうる。言い換えると、図4に示す処理は画像処理の1つの段階に適応するが、例えばもしフロントエンド処理ユニット18がラインバッファを用いるいくつかの画像処理モジュールを含む場合、連続する段階について反復されることができる。更に、ビューファインダ画像の各ライン又は静止画像の縦縞の各ラインは、フロントエンド処理ユニット18を通してパイプラインされることができる。
【0043】
多くの画像処理技術が説明された。この技術は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせによって実現されうる。ソフトウェアによって実現される場合、この技術は、2つ又はそれより多くの異なる大きさの画像を取得するデバイス内で実行されると、そのような画像を、少なくともいくつかの画像の幅よりも小さいラインバッファを用いて処理することができるプログラムコードを備えるコンピュータ読取可能媒体を示されうる。この場合、コンピュータ読取可能媒体は、例えば同期ランダムアクセスメモリ(SDRAM)のようなランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取専用メモリ(EEPROM)、フラッシュメモリ、又はこれらと同様のものを備える。
【0044】
プログラムコードは、コンピュータ読取可能命令の形式でメモリに格納されることができる。この場合、例えばDSPのようなプロセッサが、1つ又は複数の画像処理技術を実行するために、メモリ内に格納された命令を実行することができる。いくつかの場合において、この技術は、様々なハードウェア部品に画像処理を加速させるDSPによって実行されることができる。他の場合において、本明細書で説明されたユニットは、マイクロプロセッサ、1つ又は複数の特定用途向け集積回路(ASIC)、1つ又は複数のフィールド・プログラマブル・ゲート・アレイ(FPGA)、又はその他いくつかのハードウェアとソフトウェアとの組み合わせとして実現されうる。
【0045】
それにもかかわらず、本明細書で説明された技術への様々な変形例が可能である。例えば、この技術は、主として小さなビューファインダ画像及び大きな静止画像の状況において説明されたが、異なる幅の任意の画像に関して適用することができる。また、この技術は、高解像度画像及び低解像度画像に関して適用することができ、いずれの場合も、高解像度画像が低解像度画像よりも高いピクセル密度を定めている限り、高解像度画像は、与えられた画像サイズについて、幅が大きくなるであろう。更に、この技術は個々の画像の文脈において説明されたが、ビデオシーケンスを形成する画像のセットにも用いることができる。この場合、低解像度シーケンスがバッファ内でラインごとに処理されることができるのに対し、高解像度シーケンスは縦縞として格納され、その後処理されることができる。これらの実施形態及びその他の実施形態は、特許請求の範囲の範囲内である。

【特許請求の範囲】
【請求項1】
デバイスを用いて第1の画像を取得することと、
前記第1の画像の画像幅を収納できる大きさのラインバッファを用いて前記第1の画像を処理することと、
前記デバイスを用いて、前記第1の画像の画像幅よりも大きい画像幅を有する第2の画像を取得することと、
前記ラインバッファを用いて、前記ラインバッファ内に収まる幅を定める前記第2の画像の縦縞を処理することと
を備える方法。
【請求項2】
前記第1の画像はビューファインダ画像を備え、前記第2の画像は静止画像を備える請求項1に記載の方法。
【請求項3】
前記第1の画像を処理することは前記第1の画像をフィルタすることを備え、前記第2の画像の縦縞を処理することは前記第2の画像をフィルタすることを備える請求項1に記載の方法。
【請求項4】
前記縦縞は互いにオーバーラップする請求項3に記載の方法。
【請求項5】
フィルタすることは、2次元フィルタリングを備える請求項4に記載の方法。
【請求項6】
デバイスを用いて画像を取得することと、
前記画像の幅よりも小さい幅を定めるラインバッファを用いて、前記画像の縦縞を処理することと
を備える方法。
【請求項7】
前記画像は静止画像であり、前記方法は更に、
前記デバイスを用いてビューファインダ画像を取得することと、
前記ビューファインダ画像を収納できる幅のラインバッファを用いて前記ビューファインダ画像を処理することと
を備える請求項6に記載の方法。
【請求項8】
前記ラインバッファの幅は、前記ビューファインダ画像の幅に対応する請求項7に記載の方法。
【請求項9】
前記画像を処理することは、前記画像のオーバーラップする縦縞を2次元フィルタリングすることを備え、前記2次元フィルタリングの出力は、フィルタされ、オーバーラップしていない縦縞を備える請求項6に記載の方法。
【請求項10】
画像を取得する画像取得装置と、
メモリと、
前記画像のオーバーラップする縦縞を定めるメモリコントローラと、
前記画像の幅よりも小さい幅を定めるラインバッファを用いて、前記画像のオーバーラップする縦縞を処理する処理ユニットと
を備えるデバイス。
【請求項11】
前記画像は静止画像であり、
前記画像取得装置はビューファインダ画像を取得し、
前記処理ユニットは、前記ビューファインダ画像を収納できる幅の前記ラインバッファを用いて、前記ビューファインダ画像を処理する請求項10に記載のデバイス。
【請求項12】
前記ラインバッファの幅は、前記ビューファインダ画像の幅に対応する請求項11に記載のデバイス。
【請求項13】
前記処理ユニットは、前記画像のオーバーラップする縦縞に2次元フィルタリングを実行し、前記2次元フィルタリングの出力は、フィルタされ、オーバーラップしていない、前記メモリへ再び格納される縦縞を備える請求項10に記載のデバイス。
【請求項14】
前記デバイスは無線電話を備え、前記画像取得装置は前記デバイスのデジタルカメラを備える請求項10に記載のデバイス。
【請求項15】
デバイスによって取得された画像を処理するフロントエンド処理ユニットであって、前記処理ユニットは、
第1の画像の画像幅を収納できる大きさのラインバッファを用いて前記第1の画像を処理し、
前記ラインバッファを用いて第2の画像の縦縞を処理し、前記第2の画像は前記第1の画像の画像幅よりも大きく、前記ラインバッファよりも大きい画像幅を有し、前記第2の画像の縦縞は前記ラインバッファ内に収まる幅を定めるフロントエンド処理ユニット。
【請求項16】
前記第1の画像はビューファインダ画像を備え、前記第2の画像は静止画像を備える請求項15に記載のフロントエンド処理ユニット。
【請求項17】
前記ユニットは、前記第1の画像をフィルタすることによって前記第1の画像を処理し、前記第2の画像をフィルタすることによって前記第2の画像の縦縞を処理する請求項15に記載のフロントエンド処理ユニット。
【請求項18】
前記縦縞は互いにオーバーラップする請求項17に記載のフロントエンド処理ユニット。
【請求項19】
フィルタすることは、2次元フィルタリングを備える請求項18に記載のフロントエンド処理ユニット。
【請求項20】
前記ユニットは、プログラマブル命令を実行するデジタル信号プロセッサを備える請求項15に記載のフロントエンド処理ユニット。
【請求項21】
命令群を備えるコンピュータ読取可能媒体であって、前記命令群はデバイス内で実行されると、前記デバイスに、
第1の画像の画像幅を収納できるサイズのラインバッファを用いて前記第1の画像を処理させ、
前記ラインバッファを用いて第2の画像の縦縞を処理させ、
前記第2の画像は前記第1の画像の画像幅よりも大きく、前記ラインバッファよりも大きい画像幅を有し、前記第2の画像の縦縞は前記ラインバッファ内に収まる幅を定めるコンピュータ読取可能媒体。
【請求項22】
前記第1の画像はビューファインダ画像を備え、前記第2の画像は静止画像を備える請求項21に記載のコンピュータ読取可能媒体。
【請求項23】
前記命令は、前記第1の画像をフィルタすることによって前記第1の画像を処理し、前記第2の画像をフィルタすることによって前記第2の画像の縦縞を処理する請求項21に記載のコンピュータ読取可能媒体。
【請求項24】
前記縦縞は互いにオーバーラップする請求項23に記載のコンピュータ読取可能媒体。
【請求項25】
フィルタすることは、2次元フィルタリングを備える請求項24に記載のコンピュータ読取可能媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−212436(P2012−212436A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−113301(P2012−113301)
【出願日】平成24年5月17日(2012.5.17)
【分割の表示】特願2009−505581(P2009−505581)の分割
【原出願日】平成19年4月10日(2007.4.10)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】