説明

画像化システムにおけるイメージの処理

【課題】画像化システムにおけるイメージの処理
【解決手段】画像化システムは、イメージの生データをフォーマットされたデータに変換するのと並行して、そのイメージのフォーマットされたデータを圧縮する。典型的な画像化システムは、生のイメージデータからフォーマットされたデータのブロックを生成するための画像処理プロセッサを含んでいる。典型的な画像化システムは、さらにフォーマットされたデータのブロックを圧縮するための画像圧縮器を含んでいる。前記圧縮器は、画像処理プロセッサがフォーマットされたデータの1つ以上のブロックを生成している間に、ブロックの1つ以上を圧縮する。

【発明の詳細な説明】
【技術分野】
【0001】
35 U.S.C.§119の下の優先権主張
本特許出願は、2006年1月18日に出願され、本出願人に譲渡され、引用することによってその全体が明確にここに組み入れられ、「低いレーテンシーおよびメモリの効率的な画像キャプチャーおよびJPEG符号化システム」とタイトルを付けられた60/759,840番の仮出願の優先権を主張するものである。
【0002】
本発明は、一般に画像化システム(imaging system)に関し、より詳細には、画像化システムにおけるイメージデータの処理に関する。
【背景技術】
【0003】
ディジタル・カメラのような画像化装置は、典型的には生のイメージデータを生成するイメージ・センサを含んでいる。画像化装置は、その生のイメージデータを、YCbCrフォーマットのようなフォーマットに変換する。それから、フォーマットされたデータは、記憶装置に適したサイズに圧縮される。画像化装置によって写真が撮られるとき、フォーマットと圧縮プロセスは、その間の遅れの原因となる。例えば、カメラが最初のイメージのデータを処理しているので、カメラは、しばしば次のイメージを撮ることができない。その結果、イメージデータの処理を改善する必要がある。
【発明の概要】
【0004】
画像化システムは、イメージ用のフォーマットされたデータの圧縮と並行してイメージ用生データをフォーマットされたデータに変換する。典型的な画像化システムは生のイメージデータからのフォーマットされたデータのブロックの生成のために画像処理プロセッサを含んでいる。典型的な画像化システムは、さらにフォーマットされたデータのブロックの圧縮のために画像圧縮器を含んでいる。画像処理プロセッサが1つ以上のブロックのフォーマットされたデータを生成している間に、圧縮器は、1つ以上のブロックを圧縮する。
【0005】
画像化システムの実施態様は、イメージ用生データをYCbCrデータのブロックへフォーマットし、かつ、メモリに前記YCbCrデータのブロックを連続的に書くように構成された画像処理プロセッサを含んでいる。YCbCrデータの各ブロックは、複数の最小のコード・ユニット(MCU)に分割される。システムは、さらにメモリからYCbCrデータのブロックを連続的に読み込むように構成されたJPEGエンコーダを含んでいる。JPEGエンコーダは、再スタートマーカおよび1ユニット以上のビットストリームを各々含んでいる1つ以上のビットストリーム・セグメントを生成するようにブロックの中で最小のコード・ユニット(MCU)を符号化する。各ユニット・ビットストリームは、それぞれ、そのブロックにおいて最小のコード・ユニット(MCU)のうちの1つについてのJPEGに符号化されたビットストリームである。ブロック中の最小のコード・ユニットは、画像回転変更の希望角度にしたがって変化する順序で圧縮される。さらに、最小のコード・ユニットは、生データがフォーマットされているのと並行してJPEGに符号化される。システムは、さらに、ビットストリーム・セグメントを、それからイメージを再生成することができるイメージ・ビットストリームへ組み立てるための電子装置も含んでいる。
【図面の簡単な説明】
【0006】
【図1】図1は典型的な実施態様に従った画像化システムのブロック図である。
【図2】図2はイメージが回転しない場合、画像化システムによるイメージデータの工程を示す。
【図3】図3はイメージが90度回転する場合、画像化システムによるデータの工程を示す。
【図4】図4はイメージが180度回転する場合、画像化システムによるデータの工程を示す。
【図5】図5はイメージデータを処理する方法を例示するフロー図である。
【図6】図6は時間にわたる、画像化システムにおけるコンポーネントの可能な割付けを示す。
【図7】図7は画像化システムにおけるイメージデータの処理のためのロジック・モジュールを示すロジック・フロー図である。
【詳細な説明】
【0007】
典型的な実施態様のとおりに、画像化システムは、フォーマットされたデータのブロックへイメージ用生データをフォーマットするように構成された画像処理プロセッサを含んでいる。システムは、さらに連続的にデータ・ブロックを圧縮するように構成された圧縮器を含んでいる。連続的にデータ・ブロックを圧縮する能力は、圧縮器が圧縮を始める前に、全イメージより少ないフォーマットを可能にする。その結果、圧縮器は、画像処理プロセッサがデータ・ブロックをフォーマットするのと並行してデータ・ブロックを圧縮することができる。データのフォーマットと並行してフォーマットされたデータのブロックを圧縮する能力は、イメージの世代間の遅れを縮小する。ディジタル・カメラのような画像化システムでは、写真が撮られる場合、イメージデータのフォーマットと並行してイメージデータを圧縮することはその間の時間を縮小する。
【0008】
画像化システムは、肖像または景観のアプリケーションのような目的のためにイメージをしばしば回転させる。フォーマットされたデータのブロックの圧縮は、さらにイメージの回転もサポートすることができる。フォーマットされたデータのブロックは、JPEG圧縮で使用される最小のコード・ユニット(MCU)のようなユニットへ分割することができる。圧縮器がブロック中のユニットを圧縮する順序は、イメージ回転変更の希望角度に従い変更することができる。その結果、イメージが回転する場合でさえ、圧縮器が圧縮を始める前に、全イメージをフォーマットする必要はない。
【0009】
フォーマットされたデータのブロックの圧縮は、さらに画像化システムのメモリ必要条件を縮小することができる。例えば、画像化システムは、画像処理プロセッサがフォーマットされたデータ・ブロックを書き込み、それから圧縮器がフォーマットされたデータ・ブロックを読み取るメモリを含むことができる。メモリは、複数のバッファがあるピンポン・バッファを含むことができる。画像処理プロセッサは、それが各フォーマットされたデータ・ブロックを書くバッファを交互にすることができる。さらに、圧縮器は、それが各フォーマットされたデータ・ブロックを受け取るバッファを交互にすることができる。その結果、メモリは、全イメージ用のフォーマットされたデータではなく、わずか2つのブロックのフォーマットされたデータだけを保持することができる。全イメージ用のフォーマットされたデータがメモリに書かれていないので、メモリ必要条件が縮小され得る。
【0010】
図1は、画像化システム10のブロック図である。画像化システム10は、各々光センサ16に関係付けられるずらりと並んだピクセル14を持つイメージ・センサ12を含んでいる。いくつかの実例では、ピクセル14は、行と列の2次元配列で並べられる。イメージ・センサ12の例は、CMOS(相補的金属酸化膜半導体)センサ・チップおよびCCD(電荷結合素子)センサ・チップ含んでいる、しかしこれらに限定されない。
【0011】
画像化システム10はイメージ・センサ12と通信状態にある電子装置18を含んでいる。イメージを生成する場合、電子装置18はイメージ・センサ12中のセンサ16からセンサの値を受け取る。電子装置18は、圧縮したイメージ・ビットストリームを生成するようにセンサ値を処理する。電子装置18は、補助メモリ20および/または電子装置18に含まれたメモリにイメージ・ビットストリームを格納することができる。補助メモリ20は、イメージとデータを格納するような書き込み操作に適した任意のメモリ素子あるいはメモリ素子の組み合わせであり得る。補助メモリ20は画像化システム10の一部であることとして示されるが、補助メモリ20は画像化システム10の外部である場合があるか、あるいは画像化システム10に着脱できるようにつなぐことができる。ディジタル・カメラと共に使用されるメモリ・スティックは、画像化システム10に着脱できるようにつなぐことができる、補助メモリ20の例である。
【0012】
画像化システム10は、イメージを再生成するためにイメージ・ビットストリームを使用することができる。画像化システム10は、1つ以上の出力装置22にイメージを表示することができる。適切な出力装置22は、プリンタ、送信機、インターネットのようなネットワーク、カメラ・ディスプレイ、テレビ電話機能付携帯電話ディスプレイ、ビデオ・スクリーン、およびコンピュータ・スクリーンのような表示装置を含んでいる、しかしこれらに限定されない。出力装置22は、画像化システム10の一部であるとして示されるが、出力装置22および/または補助メモリは、画像化システム10の外部である場合があるか、あるいは画像化システム10に着脱できるように結合することができる。
【0013】
電子装置18は、イメージ・センサ12、およびメモリ26と通信状態にあるセンサ・インターフェース24を含んでいる。メモリ26は、イメージに関連したデータとイメージを格納するような読み取り/書き込みオペレーションに適した任意のメモリ素子あるいはメモリ素子の組み合わせであり得る。メモリ26は、共通のプール・メモリとして動作することができる。カメラ・インターフェースは、イメージ・センサ12から生のイメージデータを抽出し、かつメモリ26に生のイメージデータを格納するように構成される。電子装置18は、さらにメモリ26と通信状態にある画像処理プロセッサ28を含んでいる。画像処理プロセッサ28は、生のイメージデータをフォーマットし、かつメモリ26にフォーマットされたデータを書き込むように構成される。画像処理プロセッサ28によって使用されるイメージ形式の一例は、YCbCrフォーマット含んでいる、しかしこれに限定されない。電子装置18は、さらにメモリ26、出力装置22およびオプションの補助メモリ20と通信状態にある圧縮器30を含んでいる。圧縮器30は、イメージ・ビットストリームを生成するようにメモリ26に保存された、フォーマットされたデータを圧縮する。イメージ・ビットストリームは、メモリ26および/または補助メモリ20に格納することができる。
【0014】
画像処理プロセッサ28は、第1のプロセッサ32を含んでおり、また、圧縮器30は第2のプロセッサ34を含んでいる。第1のプロセッサ32および/または第2のプロセッサ34として使用されるのに適当なプロセッサは、以下のもの含んでいるが、しかしこれらに限定されない。一般目的のプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、フィールドプログラマブル・ゲート・アレイ(FPGA)あるいは他のプログラム可能論理回路、個別のゲートかトランジスタ・ロジック、個別のハードウェア・コンポーネント、あるいは、ここに説明された機能を行なうように設計されたそれらの任意の組み合わせ。一般目的のプロセッサは、マイクロプロセッサであり得る、しかし、その代わりに、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラあるいは、ステートマシンであり得る。第1のプロセッサ32および/または第2のプロセッサ34も、計算装置(例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと結合される1個以上のマイクロプロセッサ、あるいは他のそのような構成。)の組み合わせとして実装され得る。第1のプロセッサ32および第2のプロセッサ34は、同じタイプのプロセッサあるいは異なるタイプのプロセッサであり得る。適切な画像処理プロセッサ28は、ビデオ・フロント・エンド・ハードウェア含んでいるが、しかしこれに限定されない。適切な圧縮器30は、JPEGエンコーダを含んでいるが、しかしこれに限定されない。
【0015】
図1は、第1の信号記憶媒体36と通信状態にある第1のプロセッサ32、および第2の信号記憶媒体38と通信状態にある第2のプロセッサ34を示す。第1のプロセッサ32によって実行されるアクションのための命令は、第1の信号記憶媒体36上でエンコードすることができる。第2のプロセッサ34によって実行されるアクションのための命令は、第2の信号記憶媒体38上でエンコードすることができる。上に記載されたように、種々の異なるコンポーネントは、第1のプロセッサ32および/または第2のプロセッサ34として役立つことができる。第1のプロセッサ32および第2のプロセッサ34の選択によっては、第1の信号記憶媒体36および/または第2の信号記憶媒体38は、必要ではないかもしれない。したがって、第1の信号記憶媒体36および/または第2の信号記憶媒体38はオプションかもしれない。第1の信号記憶媒体36および第2の信号記憶媒体38は、メモリ26と分離しているものとして示されるが、メモリ26は、第1の信号記憶媒体36および/または第2の信号記憶媒体38として役立つことができる。
【0016】
第1の信号記憶媒体36あるいはキャプチャー信号記憶媒体として使用される適切な信号記憶媒体は、CDのような光ディスク、磁気記憶ディスケット、ジップディスク、磁気テープ、RAM、およびROM、を含んでいる、しかし、これらに限定されない。いくつかの実施例では、第1の信号記憶媒体36および/または第2の信号記憶媒体38は、画像化システム10の外部に位置する。例えば、信号記憶媒体は、コンピューター・ネットワーク上のサーバコンピュータに接続することができる。
【0017】
適切な画像化システム10の例は、ディジタル・カメラ、ビデオカメラ、モバイルのカメラ電話、医用画像装置を含んでいる、しかしこれらに限定されない。画像化システム10は、さらにイメージデータを格納するように構成されたコンピュータ・システムであり得る。適切なコンピュータ・システムの例は、パソコンとサーバを含んでいる、しかしこれらに限定されない。いくつかの例では、画像化システム10はイメージ・センサ12を含んでいない。例えば、画像化システム10がコンピュータ・システムである場合、イメージ・センサ12は画像化システム10に必ずしも含まれていない。イメージ・センサ12が画像化システム10に含まれていない場合、イメージ・センサ12は、画像化システム10から独立しているかもしれないが、電子装置18がセンサ値を受け取ることを可能にするために画像化システム10と通信状態に置かれ得る。
【0018】
図2は、図1の画像化システムによるデータの工程を示す。センサ・インターフェースは、メモリにイメージ・センサからの生のイメージデータ40を格納する。生のイメージデータ40は、イメージ・センサ中の各センサからのセンサ値を、イメージ・センサ中のピクセルに関係付ける。イメージ・センサ中の1つ以上のピクセルがイメージ中のピクセルに関係付けられているので、生のイメージデータ40は、1つ以上のセンサ値をイメージ中のピクセルに有効に関係付ける。
【0019】
画像処理プロセッサは、メモリから生のイメージデータ40を読み、そして、圧縮のために生のイメージデータ40をフォーマットする。例えば、画像処理プロセッサは、生のイメージデータ40をYCbCrフォーマットに変換することによりJPEG圧縮のために生のイメージデータ40をフォーマットすることができる。YCbCrフォーマットでは、Y、CbおよびCrは、各々、イメージの異なるコンポーネントを表わす。例えば、CbおよびCrが各々クロミナンス・コンポーネントを表わしているのに対して、Yはルミネセンス・コンポーネントを表わす。
【0020】
フォーマットされたデータ42は、そのイメージの複数のピクセル用データを各々含んでいる複数のユニット44に分割される。図2の中の図形Aは、ラベルAからXを各々与えられた複数のユニット44に分割された、フォーマットされたデータ42を備えたイメージを表わす。
【0021】
ユニット44は、JPEG圧縮と共に使用される最小のコード・ユニット(MCU)でありえる。1つのMCUは、Hmax*8ピクセル × Vmax*8ピクセル の次元を持っている、ここで、HmaxおよびVmaxが1以上に等しい整数で、ピクセルはイメージ中のピクセルである。HmaxおよびVmaxの値は、異なるデータ成分用のサンプリング周波数によって決定される。例として、YCbCrフォーマットが使用される場合、イメージ中の2x2の正方形ピクセルからのデータは、CbおよびCrコンポーネントについてはしばしば平均され、一方、Yコンポーネント用のデータは平均されない。異なるコンポーネントの各々用のMCUのデータが、イメージ中のピクセルの同じグループについて生成されるのに対して、HmaxとVmaxは、できるだけ小さな値を持つように選択される。したがって、上記の例については、MCUは、16×16だろう。共通のMCUの次元は、8×8、8×16、16×8、および16×16を含んでいる。
【0022】
画像処理プロセッサは、複数のユニットを各々含んでいるブロック46中の生データをフォーマットする。例えば、図形Cは、8個のユニット44を各々含んでいる3個のブロック46へ分割された図形Aのイメージを表わす。画像処理プロセッサは、各ブロック46のフォーマットされたデータ42を連続して生成することができる。例えば、画像処理プロセッサは、第1のブロック46についての生データをメモリから読み、その生データをフォーマットされたデータ42に変換し、メモリにそのフォーマットされたデータ42を書くことができる。メモリにブロック46用のフォーマットされたデータ42を書いた後に、画像処理プロセッサは、次のブロック46用のフォーマットされたデータ42を連続して生成することができる。多くのカメラ中の画像処理プロセッサには、効率的に全イメージを扱う入力および出力キャパシティーが十分にない。しかしながら、全イメージではなくデータのブロックをフォーマットする場合、これらの画像処理プロセッサは有効かもしれない。
【0023】
圧縮器は、メモリからブロック46用のフォーマットされたデータ42を受け取る。例えば、図2の中の図形Dは、圧縮器がブロック46各々中のユニット44を圧縮する順序を例示する。圧縮器は、ユニットAのためのフォーマットされたデータ42を圧縮し、さらに後に続けてユニットBを、さらに後に続けてユニットGなどを圧縮する。図形Bは、ユニット44がイメージ・ビットストリーム54において存在する順序を例示する。例えば、イメージ・ビットストリームは、ユニットAについて、後に続けてユニットBについて、後に続けてユニットCについてのデータを含んでいる。図形Bおよび図形Dの比較によって、イメージ・ビットストリーム54中のユニット44の順序が、ユニット44が圧縮される順序とは異なることを示す。
【0024】
圧縮器は、イメージ・ビットストリーム54中のユニット44の順序と、ユニット44が圧縮される順序の間の差を補うために再スタートマーカ52を使用する。例えば、圧縮器は、図形Dで示される順にユニット44を圧縮する。1つのユニット44の圧縮が、結果として、1つのユニット・ビットストリーム48になる。ユニットCについてユニット・ビットストリーム48は、図2においてBSCというラベルが付けられている。異なるユニット44からのユニット・ビットストリーム48は、図形Dによる順序で配列されたユニット・ビットストリーム48を持つビットストリーム・セグメント50に組み合わせられる。図形Dで指定された順序のユニット44による工程が、結果として図形Bの中で指定された順序からの変更になる場合、再スタートマーカはビットストリーム・セグメント50内に含まれている。例えば、図形Dは、ユニットGが圧縮され、その後Hが、その後Mが圧縮されることを明示する。しかしながら、図形Bは、ユニットGが圧縮され、その後Hが、その後Iが圧縮されることを明示する。図形Dの中の順序が、ユニットHの後に図形Bの中の順序から分岐するので、再スタートマーカ52は、ユニットHのユニット・ビットストリーム48の後に置かれる。その結果、圧縮器は、ユニットA、ユニットB、およびRS1というラベルが付けられた第1の再スタートマーカ52について圧縮されたデータ、を持つビットストリーム・セグメント50、ならびに、ユニットG、ユニットH、およびRS2というラベルが付けられた第1の再スタートマーカ52について圧縮されたデータ、を持つビットストリーム・セグメント50を生成する。ブロック46の中の最後のユニット44が圧縮された後、再スタートマーカ52もビットストリーム・セグメント50に含まれている。例えば、再スタートマーカ52は、ユニットTのためのユニット・ビットストリーム48の後に置かれる。圧縮器は、再スタートマーカ52の後に別のビットストリーム・セグメント50を開始する。圧縮器は、メモリにビットストリーム・セグメント50を格納する。図2は、ビットストリーム・セグメント50の各々が互いに分離されているように示すが、ビットストリーム・セグメント50は、メモリにおいてエンドツーエンドに位置することができる。再スタートマーカ52は、後に続く処理中に連続的にそれらを識別することができるように、連続する数のラベルを含むことができる。
【0025】
ある圧縮方法では、前のユニット44が図2における図形Bの数にしたがって決定される場合、ある特定のユニット44用の圧縮したデータはその前のユニット44の関数である。例えば、図2におけるユニットCについてのJPEGデータは、ユニットBについてのJPEGデータの関数である。特に、JPEG符号化は、AC係数およびDC係数と一般に呼ばれる係数を利用する。ユニットCのDCの係数は、ユニットCとユニットBのDCコンポーネントの間の差を示す。したがって、ラベルBが付けられたMCUについてのDCコンポーネントの値は、ラベルCが付けられたMCUについてのDCコンポーネントの値を決定するために知られていなければならない。ユニットG、M、およびSについてのユニット・ビットストリーム48を生成する場合、圧縮器は、その前のユニット用の圧縮したデータにアクセスしない。その結果、再スタートマーカ52の後の圧縮されたユニット44は、イメージの最初のユニット44として扱うことができる。例えば、ユニットGは、ユニットAと同様に扱うことができる。特に、JPEG符号化は、最初のMCUについてのDCの予測をゼロにセットする。したがって、圧縮器は、ユニットGについてのDCの予測をゼロにセットすることができる。
【0026】
圧縮器が、メモリにブロック46用のビットストリーム・セグメント50の各々を書いた後、圧縮器は、メモリから次のブロック46用のフォーマットされたデータ42を検索する。圧縮器は、次のブロック46中のユニット44用のフォーマットされたデータ42を圧縮し、ビットストリーム・セグメント50をメモリに書く。圧縮器は、ブロック46の各々を通って進むために上記のプロセスを使用し、ユニットXについてのユニット・ビットストリーム48の後にイメージの終了のマーカを置く。
【0027】
全イメージではなく、データのブロックの圧縮およびフォーマットにより、画像化システムのメモリ必要条件を縮小することができる。例えば、フォーマットされたデータ・ブロック46は、メモリに含まれたピンポン・バッファに書くことができる。ピンポン・バッファは、複数のバッファを含むことができ、そして、画像処理プロセッサは、それがフォーマットされたデータ・ブロック46の各々を書くバッファを交互にすることができる。さらに、圧縮器は、それが各フォーマットされたデータ・ブロック46を受け取るバッファを交互にすることができる。その結果、画像処理プロセッサが別のバッファにデータを書いている間、圧縮器は1つのバッファからフォーマットされたデータ42を読むことができる。フォーマットされたデータを画像処理プロセッサと圧縮器の間で転送するこの方法は、全イメージがメモリに書き込まれることを必要としないので、この方法は、画像化装置によって要求されるメモリを縮小することができる。
【0028】
圧縮器は、イメージ・ビットストリーム54を組み立てるためにビットストリーム・セグメント50の各々を使用する。イメージ・ビットストリーム54は組み立てられ、したがって、各ユニット44の圧縮したデータは、図形Bで示される順序で配列される。例えば、圧縮器は、最初の再スタートマーカを見つけることができ、そしてイメージ・ビットストリーム54を始めるために最初の再スタートマーカを含んでいるビットストリーム・セグメントを使用する。圧縮器は、5番目のスタートマーカを含んだビットストリーム・セグメントを使用して、イメージ・ビットストリーム54を続けることができ、それから9番目の再スタートマーカを含んだビットストリーム・セグメント、などというように続けることができる。ビットストリーム・セグメント中の再スタートマーカはイメージ・ビットストリームに含まれ得る。再スタートマーカがイメージ・ビットストリームに含まれている場合、イメージ・ビットストリーム中のビットストリーム・セグメントの正確な順序を反映するように再スタートマーカの番号を付け替えるができる。例えば、5番目の再スタート・マーカ(RS5)を含むビットストリーム・セグメントが、イメージ・ビットストリーム中の2番目のビットストリーム・セグメントであるので、RS5は、イメージ・ビットストリーム中の2番目の再スタートマーカとして、RS’2に番号が付け替えられる。圧縮器中の第2のプロセッサは、ビットストリーム・セグメント50を組み立てることができる。交互に、圧縮器または電子装置は、ビットストリーム・セグメント50を組み立てる、第3のプロセッサを含むことができる。
【0029】
圧縮器は、異なる方向へイメージを回転させるために図2のブロック46を使用することができる。図3は、90度右回りの回転が望まれる場合、画像化システムによるイメージデータの工程を示す。図形Aは、オリジナルイメージを例示し、図2の中の図形Aと同じである。図形Bは、図形Bによって例示されたイメージが90度右回りに回転されたことを例示する。JPEG圧縮のような多くの圧縮技術が、行主体の順序で配列されたユニット44を持つビットストリームを作成する。したがって、図形Bの中で示されるように回転したイメージを作成するために、これらの圧縮技術は、ユニットS、次にユニットM、次にユニットG、次にユニットA、次にユニットTなどのデータをもつビットストリームを作成する。図形Cは、この順序が図形Aに適用されることを示す。したがって、図形Cは、図形Aの中のユニットの各々からのデータが、90度回転させるためにビットストリームに配列される順序を示す。
【0030】
上に記載されたように、画像処理プロセッサはフォーマットされたデータ・ブロック46をメモリに書く。図3の中の図形Dは、図形Aに示されたイメージのために作成され得るブロック46の一例を示す。圧縮器は、メモリからブロック46のためのデータを読み、ブロック46中のユニット44を圧縮する。各ユニット44を圧縮する場合、圧縮は、イメージの希望の回転(この例では90度右回りの回転)によってユニット44のデータを回転させるように行なわれる。様々な技術が、個々のユニット44を回転させるために使用することができる。例えば、圧縮器は、ユニット44を圧縮する前に、ユニット44が希望の量回転するように、各ユニット44においてピクセルの位置を入れ替える(shuffle)ことができる。したがって、ユニット・ビットストリーム48の中のデータは、希望の回転によって回転されるユニット44に関するものである。
【0031】
図形Eは、圧縮器がブロック46の各々中のユニット44を圧縮する順序を例示する。上に記載されたように、ユニット44の圧縮は、結果としてユニット・ビットストリーム48になる。ユニットCのためのユニット・ビットストリーム48はBSCというラベルが付けられている。異なるユニット44からのユニット・ビットストリーム48は、図形Eで指定された順序で配列された圧縮されたビットストリームを有する、ビットストリーム・セグメント50に組み合わせられる。図形Eで指定された順序でユニット44による工程が、図形Cで指定された順序からの変更になる場合、再スタートマーカはビットストリーム・セグメント50に含まれている。ブロック46中の最後のユニット44が圧縮された後、再スタートマーカ52もビットストリーム・セグメント50に含まれている。この実例では、ブロック46の各々の順序は、図形Cで指定された順序に対応する。その結果、再スタートマーカ52は、ユニットBのためのユニット・ビットストリーム48の後に単に置かれる。したがって、圧縮器は、ユニットS、M、G、A、T、N、H、B(この順序で)、およびRS1というラベルが付けられた1番目の再スタートマーカについての圧縮されたデータを有するビットストリーム・セグメント50を生成する。圧縮器は、再スタートマーカ52の後に別のビットストリーム・セグメント50を始める。圧縮器は、メモリにビットストリーム・セグメント50を格納する。図3は最初のブロック46の圧縮によって生じる単一のビットストリーム・セグメント50を示すが、ブロック46は複数のビットストリーム・セグメント50に分割することができる。例えば、再スタートマーカ52は、ユニットA、およびさらにユニットBのためのユニット・ビットストリーム48の後に位置することができる。
【0032】
圧縮器が、メモリにブロック46についてのビットストリーム・セグメント50の各々を書いた後、圧縮器はメモリから次のブロック46用のフォーマットされたデータ42を検索する。圧縮器は、次のブロック46中のユニット44のフォーマットされたデータ42を圧縮し、メモリにビットストリーム・セグメント50を書く。圧縮器は、ブロック46の各々を通って進むために上記のプロセスを使用し、そして、ユニットFについてのユニット・ビットストリーム48の後にイメージの終了のマーカを置く。
【0033】
図3の図形Dにおけるブロック46は、図2の図形Cにおけるブロック46と同じである。しかしながら、図3の図形Eで示された順序は、図2の図形Dで示された順序とは異なっている。前記順序の変更は、図3に示されたプロセスにより生じるが、図2に示されたプロセスによっては生じない、イメージの回転を提供する。したがって、圧縮器がユニット44を圧縮する順序は、イメージ回転の希望角度の関数である。
【0034】
圧縮器は、イメージ・ビットストリーム54を組み立てるためにビットストリーム・セグメント50の各々を使用する。イメージ・ビットストリーム54は組み立てられ、したがって、各ユニット44の圧縮したデータは、図形Cで示される順序で配列される。例えば、圧縮器は、1番目の再スタートマーカを見つけることができ、そして、イメージ・ビットストリーム54を開始するために、その1番目の再スタートマーカを含んでいるビットストリーム・セグメントを使用することができる。圧縮器は、2番目の再スタートマーカなどを含んでいるビットストリーム・セグメントを使用して、イメージ・ビットストリーム54を続けることができる。ビットストリーム・セグメント中の再スタートマーカはイメージ・ビットストリームに含むことができる。再スタートマーカがイメージ・ビットストリームに含まれている場合、再スタートマーカの番号は、イメージ・ビットストリーム中のビットストリーム・セグメントの正確な順序を反映するために付け変えられる。
【0035】
図3に関連したビットストリーム・セグメント50は、2番目の再スタートマーカを含んだビットストリーム・セグメント(この2番目の再スタートマーカを含んだビットストリーム・セグメントには、3番目の再スタートマーカを含んでいるビットストリーム・セグメントなどがさらに後続する)が後続する、1番目の再スタートマーカを含んでいるビットストリーム・セグメントから開始して組み立てられる。対照的に、図2に関連したビットストリーム・セグメント50は、5番目の再スタートマーカを含んだビットストリーム・セグメント(この5番目の再スタートマーカを含んだビットストリーム・セグメントには9番目の再スタートマーカを含んでいるビットストリーム・セグメントなどがさらに後続する)が後続する、1番目の再スタートマーカを含んでいるビットストリーム・セグメントの使用により組み立てられた。したがって、ビットストリーム・セグメント50が組み立てられる順序は、図3と図2とで異なる。前記順序の差は、図3および図2におけるイメージの回転角度の差に起因している。したがって、ビットストリーム・セグメント50が組み立てられる順序は、イメージ回転の希望角度の関数になりえる。
【0036】
図4は、イメージが180度回転される場合の画像化システムによるデータの工程を示す。図形Aは、オリジナルイメージを示し、図2における図形Aと同じである。図形Bは、図形Bによって示されたイメージが180度右回りに回転されていることを示す。JPEG圧縮のような多くの圧縮技術が、行主体の順序で配列されたユニット44を持つビットストリームを作成する。したがって、図形Bに示されるように回転したイメージを作成するために、これらの圧縮技術は、ユニットX、W、V、T、S、Rなどのデータをもつビットストリームを作成する。図形Cは、この順序が図形Aに適用されることを示す。したがって、図形Cは、図形Aの中のユニット44の各々用のデータが、180度の回転を達成するためにこれらの圧縮技術のうちの1つによって作成されたビットストリームの配列される順序を示す。
【0037】
上で特に言及したように、画像処理プロセッサは、メモリにフォーマットされたデータ・ブロック46を書く。図4における図形Dは、図形Aで示されたイメージについて作成することができたブロック46の一例を示す。圧縮器は、メモリからブロック46のデータを読み、ブロック46中のユニット44を圧縮する。各ユニット44を圧縮する場合、圧縮は、イメージの希望の回転(この実例では右回りに180度の回転)によってユニット44におけるデータを回転させるように行なわれる。様々な技術は、個々のユニット44を回転させるために使用することができる。例えば、圧縮器は、ユニット44を圧縮する前に、ユニット44が所望量回転されるように、各ユニット44におけるピクセルの位置を入れ替えることができる。したがって、1つのユニット・ビットストリーム48のデータは、希望の回転によって回転される1つのユニット44についてのものである。
【0038】
図4における図形Eは、圧縮器がブロック46の各々中のユニット44を圧縮する順序を示す。上に特に記載されたように、ユニット44の圧縮は、結果としてユニット・ビットストリーム48となる。ユニットCのためのユニット・ビットストリーム48はBSCと呼ばれる。図4における図形Eは、圧縮器がユニット44を圧縮する順序を示す。異なるユニット44からのユニット・ビットストリーム48は、図形Eで指定された順序で配列され圧縮されたビットストリームを有するビットストリーム・セグメント50に組み合わせられる。図形Eで指定された順序のユニット44による工程が、図形Cで指定された順序からの変更に帰着する場合、再スタートマーカはビットストリーム・セグメント50に含まれている。例えば、図形Eは、ユニットNが圧縮され、その後Mが、その後Hが圧縮されることを明示する、しかしながら、図形Cは、ユニットNが圧縮され、その後Mが、その後Lが圧縮されることを明示する。図形Eにおける順序が、ユニットMの後に図形Cにおける順序から分岐するので、再スタートマーカ52はユニットMのためのユニット・ビットストリーム48の後に置かれる。その結果、圧縮器は、ユニットT、ユニットS、およびRS1というラベルが付けられた第1の再スタートマーカについての圧縮されたデータを持つビットストリーム・セグメント50を生成し、また、ユニットN、ユニットM、およびRS2というラベルが付けられた第2の再スタートマーカについての圧縮されたデータを有するビットストリーム・セグメント50を生成する。ブロック46中の最後のユニット44が圧縮された後、再スタートマーカ52もビットストリーム・セグメント50に含まれている。例えば、再スタートマーカ52は、ユニットAのためのユニット・ビットストリーム48の後に置かれる。圧縮器は、再スタートマーカ52の後に別のビットストリーム・セグメント50を始める。圧縮器は、メモリにビットストリーム・セグメント50を格納する。図4は、ビットストリーム・セグメント50の各々を互いに分離されているように示すけれども、ビットストリーム・セグメント50はメモリにおいて、エンドツーエンド(end-to-end)に位置させることができる。再スタートマーカ52は、後続の処理中に連続的にそれらを識別することができるように、連続する数のラベルを含むことができる。
【0039】
圧縮器が、メモリにブロック46のためのビットストリーム・セグメント50の各々を書いた後、圧縮器はメモリから次のブロック46用のフォーマットされたデータ42を検索する。圧縮器は、次のブロック46中のユニット44のフォーマットされたデータ42を圧縮し、メモリにビットストリーム・セグメント50を書く。圧縮器は、ブロック46の各々を通って進むために上記のプロセスを使用する、そしてユニットFのためのユニット・ビットストリーム48の後にイメージの終了のマーカを置く。
【0040】
図4の図形Dにおけるブロック46は、図2の図形Cにおけるブロック46と同じであり、また図3の図形Dにおけるブロック46と同じである。しかしながら、図4の図形Eによって示されているように、これらのブロック46中のユニット44は圧縮されるがその順序は、図3の図形Eで示されている順序とは異なっており、また図2の図形Dで示されている順序とも異なっている。前記順序の変更は、図2、図3および図4に示されたプロセスに起因する異なる回転角度を提供する。したがって、圧縮器がユニット44を圧縮する順序は、イメージ回転の希望角度の関数である。
【0041】
圧縮器は、イメージ・ビットストリーム54を組み立てるためにビットストリーム・セグメント50の各々を使用する。イメージ・ビットストリーム54は、各ユニット44の圧縮したデータが図形Cで示される順序で配列されるように組み立てられる。例えば、圧縮器は、9番目の再スタートマーカを見つけることができ、かつイメージ・ビットストリーム54のスタートとして9番目の再スタートマーカを含んでいるビットストリーム・セグメントを使用する。圧縮器は、5番目の再スタートマーカを含んでいるビットストリーム・セグメントを、次に1番目の再スタートマーカを含んでいるビットストリーム・セグメントを、次に10番目の再スタートマーカを含んでいるビットストリーム・セグメント、等を使用して、イメージ・ビットストリーム54を継続することができる。ビットストリーム・セグメントの再スタートマーカは、イメージ・ビットストリームに含むことができる。再スタートマーカがイメージ・ビットストリームに含まれている場合、イメージ・ビットストリーム中のビットストリーム・セグメントの正確な順序を反映するように再スタートマーカの番号を付け替えることができる。例えば、9番目の再スタートマーカ(RS9)を含むビットストリーム・セグメントが、イメージ・ビットストリーム中の最初のビットストリーム・セグメントであるので、RS9は、イメージ・ビットストリーム中の1番目の再スタートマーカとして、RS’1に番号が付け替えられる。さらに、5番目の再スタートマーカRS5は、イメージ・ビットストリーム中の2番目の再スタートマーカとして、RS’2に付け替えることができる。
【0042】
図4に関連したビットストリーム・セグメント50は、9番目の再スタートマーカを含んでいるビットストリーム・セグメントから組み立てが開始される。前記ビットストリーム・セグメントには5番目の再スタートマーカを含んでいるビットストリーム・セグメントが後続し、さらにそのビットストリーム・セグメントには、1番目の再スタートマーカを含んでいるビットストリーム・セグメントなどが後続している。対照的に、図2に関連したビットストリーム・セグメント50は、9番目の再スタートマーカが関連付けられたユニット・ビットストリーム48などが後続する、5番目の再スタートマーカが関連付けられたユニット・ビットストリーム48が後続する、1番目の再スタートマーカが関連付けられたユニット・ビットストリーム48の使用により組み立てられた。
【0043】
したがって、ビットストリーム・セグメント50が組み立てられる順序は図4と図2とで異なる。前記順序の違いは、図4および図2の中のイメージの回転角度の差に起因している。したがって、ビットストリーム・セグメント50が組み立てられる順序はイメージ回転の希望角度の関数になりえる。
【0044】
図5はイメージデータを処理する方法を例示するフロー図である。処理ブロック100では、ブロック46用の生のイメージデータはメモリから受け取られる。例えば、画像処理プロセッサは、メモリから1つのブロックの生のイメージデータを受け取ることができる。処理ブロック102では、生のイメージデータはフォーマットされる。
【0045】
例えば、画像処理プロセッサは生のイメージデータをYCbCrフォーマットに変換することができる。処理ブロック104では、ブロックのフォーマットされたデータは、メモリに書かれる。例えば、画像処理プロセッサはピンポン・バッファのバッファにフォーマットされたデータ・ブロックを書くことができる。判定ブロック106では、ブロックの各々用のフォーマットされたデータがメモリに書かれたかどうかが、判定される。判定が、いいえ、である場合、方法は処理ブロック100に戻り、また、判定が、はい、の場合、方法はこの部分で停止されうる。
【0046】
処理ブロック108では、メモリに保存された、フォーマットされたデータのブロックが受け取られる。例えば、圧縮器は、ピンポン・バッファ中のバッファからフォーマットされたデータのブロックを受け取ることができる。処理ブロック110では、1つ以上のビットストリーム・セグメントが、フォーマットされたデータのブロックから生成される。例えば、圧縮器は、フォーマットされたデータのブロックからの1つ以上のビットストリーム・セグメントを生成するためにフォーマットされたデータのブロック中のユニット44を圧縮することができる。特に、1つ以上のビットストリーム・セグメントを生成するために、圧縮器は、フォーマットされたデータのブロック中のユニット44おいてJPEG圧縮を行なうことができる。いくつかの実例では、フォーマットされたデータのユニット44を圧縮することは、ユニット44の圧縮したデータがユニット44のフォーマットされたデータに関連して回転されたユニット44のバージョンについてのものであるデータのユニット44を圧縮することを含んでいる。
【0047】
判定ブロック112では、ビットストリーム・セグメントがフォーマットされたデータの各ブロックについて生成されたかどうかについて、判定される。判定が、いいえ、である場合、方法は処理ブロック108に戻り、また、判定が、はい、である場合、方法は処理ブロック114に継続することができる。処理ブロック114では、ビットストリーム・セグメントはイメージ・ビットストリームへ組み立てられる。イメージ・ビットストリームはメモリおよび/または補助メモリに格納することができる。
【0048】
図5に例示されたブロックは、方法の実際の実行とは異なることがあり得る。例えば、異なるブロックは並行して行なうことができるか、あるいは交互に繰り返すことができる。例として、処理ブロック102および104は並行して行なうことができる、あるいは交互に繰り返すことができる。特に、ブロックについてのデータ カン(can)は、同じブロックからの他のデータがメモリに書かれている間にフォーマットされ得る、つまり、ブロックからのデータのフォーマットを、ブロックからのデータの記憶と交互にすることができる。別の例として、処理ブロック108および110は並行して行なうことができるか、あるいは交互にすることができる。特に、ビットストリーム・セグメントは、同じブロックについての追加のデータがメモリから受け取られる間に、特別のブロックのために生成することができる、つまり、ビットストリームの生成は、ブロック用のフォーマットされたデータを受け取ることと交互にすることができる。さらに、判定ブロックはソフトウェア・プログラミングでのループの使用によって実行することができる。
【0049】
図5に例示された方法の異なる部分は並行して実行することができる。例えば、フォーマットされたデータの最初のブロックがメモリに書かれた後、ビットストリーム・セグメントは最初のブロック、およびメモリに書かれている後続のブロックから生成することができる。追加のブロックは、ビットストリーム・セグメントが1番目および後続のブロックから生成されている間に、フォーマットすることができる。例として、図6は、時間にわたる電子装置のコンポーネントの可能な割付けを示す。画像処理プロセッサは、最初のイメージのフォーマットを始める。最初のブロックをフォーマットした後に、圧縮器は最初のブロックおよび後続のブロックを圧縮し始める。圧縮器が最初のブロックおよび後続のブロックを圧縮している間、画像処理プロセッサは後続のブロックをフォーマットし続ける。画像処理プロセッサは、圧縮器の前にデータを処理し終えるので、圧縮器がまだ最初のイメージのデータを圧縮している間に、画像処理プロセッサは2番目のイメージのデータをフォーマットし始めることができる。その結果、最初のイメージおよび2番目のイメージの生成の間の遅れは縮小される。
【0050】
図7は、イメージ・センサからのデータを処理するためのロジック・モジュールを示すロジック・フロー図である。電子装置18は、生のイメージデータ40を受け取り格納するように構成された記憶モジュール120を含んでいる。例えば、記憶モジュール120は、イメージ・センサ12から生のイメージデータ40を受け取り、メモリ26に生のイメージデータ40を格納することができる。電子装置18は、さらに、生のイメージデータ40をフォーマットされたデータ・ブロック46へフォーマットするように構成された画像処理モジュール122を含んでいる。例えば、画像処理モジュール122は、メモリから生のイメージデータ40の部分を読み、生のイメージデータ40をフォーマットされたデータ・ブロック46に変換し、メモリにフォーマットされたデータ・ブロック46を書き、メモリから生のイメージデータ40の別の部分を読むことができる。電子装置18は、さらに、フォーマットされたデータ・ブロック46を圧縮してビットストリーム・セグメント50にするように構成された圧縮モジュール124を含んでいる。例えば、圧縮モジュール124は、メモリからフォーマットされたデータ・ブロック46を読むことができ、1つ以上の圧縮したビットストリーム・セグメント50を生成するようにフォーマットされたデータ・ブロック46を圧縮し、また1つ以上の圧縮したビットストリーム・セグメント50をメモリに書くことができる。電子装置18は、さらに、それからイメージを再生成することができるイメージ・ビットストリームへビットストリーム・セグメント50を組み立てるように構成されたビットストリーム組立モジュール126を含んでいる。例えば、ビットストリーム組立モジュール126は、イメージ・ビットストリームを組み立てて、かつ希望の順序でメモリにユニット・ビットストリームを書くために必要な順序でメモリからビットストリーム・セグメント50を読むことができる。イメージ・ビットストリームが書かれるメモリは、メモリおよび/または補助メモリ20でありうる。
【0051】
画像化システムは、JPEG画像圧縮のコンテキストに示されるが、圧縮は異なるタイプの圧縮になり得る。また、圧縮器は異なるタイプの圧縮器になり得る。画像化システムは、YCbCrイメージ・フォーマットのコンテキストに示されるが、画像化システムは他のイメージ・フォーマットを使用することができる。
【0052】
上記の例は、イメージを3つのブロックへ分割することが示されているが、イメージを、3つより多くのブロックに、あるいは、わずか2つのブロックに分割することができる。しかしながら、イメージが2つのブロックだけに分割される場合には、ピンポン・バッファ中の各バッファは、それぞれイメージの半分を保持するだろう、そして、あたかも全イメージがメモリに格納されたかのように、ピンポン・バッファのメモリ必要条件が同じであろうから、メモリの本質的な節約はないであろう。したがって、必要なメモリを縮小することが望ましい場合、3つ以上のブロックにイメージを分割することが好ましい。
【0053】
イメージが垂直のブロックに分割されることが示されているが、イメージは水平のブロックに分割することができる。イメージは、交互に、水平および垂直の両方に分割することができる。したがって、方法と技術は、水平および/または垂直のブロックへ分割されるイメージに関連して使用することができる。
【0054】
データのブロックはピンポン・バッファに書かれるように、かつピンポン・バッファから読まれるように、説明されているが、ピンポン・バッファは必要ではなく、また、他のメモリ装置をピンポン・バッファの代わりに使用することができる。
【0055】
本アプリケーションに説明された方法とオペレーションは、単一のイメージ・コンポーネントのコンテキストにおいて説明される。上記の議論の多くは、各イメージ・コンポーネントについて繰り返される必要がある。共通のイメージ・フォーマットはYCbCrフォーマットである。このフォーマットは、Yコンポーネント、CbコンポーネントおよびCrコンポーネントを含んでいる。上に説明された各ユニットは、それぞれ、Yコンポーネント、CbコンポーネントあるいはCrコンポーネントに特有である。その結果、本アプリケーションにおいて説明された方法とオペレーションは、「トゥルー・カラー・イメージ」あるいは「トゥルー・カラーJPEG」を作成するために、コンポーネントの各々について繰り返すことができる。
【0056】
当業者は、情報と信号が、様々な異なる技術および技術のうちの任意ものを使用して表わされてもよいと理解するだろう。例えば、上記の説明の全体にわたって参照され得るデータおよび命令は、電圧、電流、電磁波、磁気のフィールドまたは粒子、光のフィールドまたは粒子、あるいは、それらの任意の組み合わせによって表わされ得る。
【0057】
熟練したものは、さらに、種々の例示された、論理ブロック、回路、モジュール、および、ここに示された実施例に関連して説明された方法ステップが、電子ハードウェア、コンピュータ・ソフトウェア、あるいは両者の組み合わせとして実装され得ることを認識するであろう。ハードウェアとソフトウェアのこの互換性を明白に例示するために、種々の実例となるコンポーネント、ブロック、ロジック、モジュール、回路およびステップは、それらの機能性の点から上で一般的に説明された。そのような機能性がハードウェアまたはソフトウェアとしてインプリメントされるかるどうかは、システム全体に課された設計の制約および特定のアプリケーションに依存している。熟練した人は、説明された機能性を、各特定のアプリケーションについて種々の手法で実装することができる。しかし、そのような実装の決定は、本発明のスコープ範囲からの離脱を引き起こすとは解釈されるべきでない。
【0058】
ここに示された実施態様に関連して説明された、種々の実例となる論理ブロック、ロジック、モジュール、および回路は、一般目的のプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、フィールドプログラム可能なゲート・アレイ(FPGA)、あるいは他のプログラム可能論理回路、個別のゲートかトランジスタ・ロジック、個別のハードウェア・コンポーネントあるいはここに記述された機能を行なうように設計されたそれらの任意の組み合わせで実装されてもよいし実行されてもよい。一般目的のプロセッサは、マイクロプロセッサかもしれない。しかし、代わりに、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラあるいはステートマシンかもしれない。プロセッサは、計算装置(例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと結合する1個以上のマイクロプロセッサ、あるいは任意の他のそのような構成)の組み合わせとして実装され得る。
【0059】
ここに示された実施態様に関連して説明された方法のステップは、ハードウェア、プロセッサによって実行されるソフトウェア・モジュール、あるいは、2つの組み合わせで、直接具体化され得る。ソフトウェア・モジュールおよび/またはロジック・モジュールは、RAMメモリ、フラッシュ・メモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブル・ディスク、CD−ROMあるいは当該技術分野で知られているコンピュータ可読媒体の任意の他の形態中に存在してもよい。典型的な記憶コンピュータ可読媒体は、プロセッサがその記憶メディアから情報を読むことができるようにかつその記憶メディアに情報を書くことができるようにプロセッサに結合される。代わりに、記憶メディアはプロセッサに不可欠かもしれない。プロセッサと記憶メディアはASICに存在してもよい。ASICはユーザ端末に存在してもよい。代案では、プロセッサと記憶メディアはユーザ端末の個別のコンポーネントとして存在してもよい。
【0060】
開示された実施態様の以前の説明は、任意の当業者が、本発明を作るか使用することを可能にするために提供される。これらの実施態様への種々の修正は、当業者とって容易に明らかになる。また、ここに定義された総括的な法則は、発明の趣旨または範囲から外れずに、他の実施例に適用され得る。したがって、本発明は、ここに示された実施態様に制限されることは意図されないが、ここに開示された法則と新規な特徴と矛盾しない最も広い範囲を与えられるべきである。

【特許請求の範囲】
【請求項1】
イメージの生データをフォーマットされたデータに変換するのと並行して、前記イメージの前記フォーマットされたデータを圧縮するように構成された画像化システム。
【請求項2】
前記フォーマットされたデータは、YCbCrデータを含み、前記フォーマットされたデータの圧縮が、前記フォーマットされたデータのJPEG符号化を、含んでいる請求項1に記載のシステム。
【請求項3】
前記生データを前記フォーマットされたデータに変換するための画像処理プロセッサと、前記フォーマットされたデータを圧縮するための画像圧縮器、をさらに備える請求項1に記載のシステム。
【請求項4】
前記フォーマットされたデータは、複数のブロックへ分割され、フォーマットされたデータの1つのブロックは複数のピクセルについてのフォーマットされたデータを含む、 請求項3に記載のシステム。
【請求項5】
前記フォーマットされたデータは、前記画像処理プロセッサが連続的にメモリに書く複数のブロックに分割され、フォーマットされたデータの1つのブロックは複数のピクセルについてのフォーマットされたデータを含む、請求項3に記載のシステム。
【請求項6】
前記ブロックは各々JPEG符号化に関連した複数の最小コード・ユニット(MCU)を含む、請求項5に記載のシステム。
【請求項7】
前記画像処理プロセッサは、前記生データを直列に各ブロックのフォーマットされたデータに変換する、請求項5に記載のシステム。
【請求項8】
前記メモリは、ピンポン・バッファを含み、そして各ブロックの前記フォーマットされたデータは、前記ピンポン・バッファのバッファ中に書かれる、請求項5に記載のシステム。
【請求項9】
前記圧縮器は、前記メモリからブロックの前記フォーマットされたデータを読み、そして、前記画像処理プロセッサが別のブロックの生のイメージデータをフォーマットするのと並行してそのブロックの前記フォーマットされたデータの圧縮を始める、請求項5のシステム。
【請求項10】
前記圧縮器は 前記画像処理プロセッサが別のブロックの生のイメージデータをフォーマットするのと並行してブロック中の前記フォーマットされたデータの圧縮を始める、請求項4に記載のシステム。
【請求項11】
前記圧縮器は、前記イメージの回転の希望の角度に依存して異なるように前記ブロックを圧縮するように構成される、請求項10に記載のシステム。
【請求項12】
前記ブロック中の前記フォーマットされたデータの圧縮は、各々が再スタートマーカを含んでいる1つ以上のビットストリーム・セグメントを生成することを含む、請求項11に記載のシステム。
【請求項13】
前記ブロック中の前記フォーマットされたデータの圧縮は、各々が再スタートマーカを含んでいる複数のビットストリーム・セグメントを生成することを含む、請求項11に記載のシステム。
【請求項14】
前記圧縮器は、前記ブロックの各々中の前記フォーマットされたデータを圧縮し、ブロック中の前記フォーマットされたデータの圧縮は、各々が再スタートマーカを含んでいる1つ以上のビットストリーム・セグメントを生成することを含む、請求項4に記載のシステム。
【請求項15】
前記圧縮器は、それから前記イメージを生成することができる圧縮したイメージ・ビットストリームへ前記ビットストリーム・セグメントの各々を組み合わせる、請求項14に記載のシステム。
【請求項16】
フォーマットされたデータの各ブロックは、それぞれフォーマットされたデータのユニットを含み、前記圧縮器は、連続的に異なるユニットを圧縮し、前記ユニットが圧縮される前記順序は、前記イメージの前記希望の回転の関数である、請求項4に記載のシステム。
【請求項17】
フォーマットされたデータの各ユニットは、JPEG圧縮中で使用される最小のコード・ユニットである、請求項16に記載のシステム。
【請求項18】
YCbCrデータのブロックへイメージの生データをフォーマットするように、YCbCrデータの各ブロックは複数の最小のコード・ユニット(MCU)を含み、そして連続的にメモリにYCbCrデータの前記ブロックを書くように構成された画像処理プロセッサと、
前記メモリからYCbCrデータの前記ブロックを連続的に読むように、そして
再スタートマーカと1つ以上のユニット・ビットストリームを、各々が含む1つ以上のビットストリーム・セグメントを生成するために、1つの前記ブロックの前記最小のコードユニット(MCU)をJPEGエンコードするように構成されたJPEGエンコーダと、
各ユニット・ビットストリームは、前記ブロックにおける前記最小のコードユニット(MCU)の1つについてJPEG符号化されたビットストリームであり、
1つのブロックの前記最小のコードユニット(MCU)は、前記イメージについて希望の回転角度の関数である順序でJPEG符号化され、
前記最小のコードユニット(MCU)は、前記生データがフォーマットされるのと並行してJPEG符号化され、
そして、前記イメージを再作成することができるイメージ・ビットストリームへビットストリーム・セグメントを組み立てるための電子装置と、
を備える画像化システム。
【請求項19】
前記メモリは、複数のバッファを含み、前記画像処理プロセッサが、それが各ブロックを書く前記バッファを交互にし、そして、前記圧縮器が、それが各ブロックを受け取る前記バッファを交互にする、請求項18に記載の画像化システム。
【請求項20】
フォーマットされたデータの各ブロックは複数のユニットへ分割されている、フォーマットされたデータのブロックへイメージの生データをフォーマットするための手段と、
前記生データのフォーマットと並行してフォーマットされたデータの前記ユニットを圧縮するための手段と、
を備える画像化システム。
【請求項21】
前記ユニットを圧縮するための前記手段は 前記イメージについての希望の回転角度で変化するのに応じて変化する順序で前記ユニットを圧縮する、請求項20に記載のシステム
【請求項22】
生データをフォーマットするための前記手段は、メモリにフォーマットされたデータの各ブロックを連続的に書き、そして、前記ユニットを圧縮するための前記手段は、前記メモリからフォーマットされたデータの各ブロックを連続的に読む、請求項20に記載のシステム。
【請求項23】
前記メモリは複数のバッファを持つピンポン・バッファを含んでおり、生データをフォーマットするための前記手段は、それが各ブロックを書く前記バッファを交互にし、そして前記ユニットを圧縮するための前記手段は、それが各ブロックを受け取る前記バッファを交互にする、請求項22に記載のシステム。
【請求項24】
前記ユニットを圧縮するための前記手段は、各ブロックにつき1つ以上のビットストリーム・セグメントを生成し、各ビットストリーム・セグメントは1つの再スタートマーカと1ユニット以上のビットストリームを含み、各ユニット・ビットストリームは 前記ブロック中の1つの前記ユニットのための圧縮したビットストリームである、請求項20に記載のシステム。
【請求項25】
前記ビットストリーム・セグメントを、それから前記イメージを再生成することができるイメージ・ビットストリームへ組み立てるための手段、をさらに備える請求項24に記載のシステム。
【請求項26】
メモリからフォーマットされたデータのブロックを受け取ること、
前記ブロックのフォーマットされたデータは、複数のユニットに分割されており、前記ブロックは、前記メモリから連続的に受け取られるものである、
および、
前記フォーマットされたデータのユニットをイメージの希望の回転角度における変更に応じて変化する順序で圧縮すること、
の命令の組を含む、
コンピュータ実行可能な1組の命令を持つ信号記録媒体。
【請求項27】
メモリからフォーマットされたデータのブロックを受け取ること、
ブロック中の前記フォーマットされたデータは複数のユニットに分割されており、前記ブロックは前記メモリから連続的に受け取られている、
および、
前記ブロック中のフォーマットされたデータのユニットをイメージについての希望の回転角度に変更に応じて変化する順序で圧縮すること、
を含むイメージデータを処理する方法。
【請求項28】
フォーマットされたデータは、YCbCrフォーマットであり、そして、前記フォーマットされたデータのユニットを圧縮することが、前記YCbCrデータをJPEG符号化することを含んでいる、請求項27に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−193530(P2011−193530A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−123420(P2011−123420)
【出願日】平成23年6月1日(2011.6.1)
【分割の表示】特願2008−551516(P2008−551516)の分割
【原出願日】平成19年1月17日(2007.1.17)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】