(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイス又は画像プロセッサーによって実行される方法であって、
画像を受信するステップと、
前記受信された画像に対する画像処理コマンドを受信するステップと、
前記画像処理コマンドに基づいて、１つ以上の変換及び前記変換の配列を判定し、前記画像処理コマンドに従って前記受信された画像を処理して前記受信された画像の複数の具現化された描写を提供する判定ステップであって、前記複数の具現化された描写が、前記１つ以上の変換の少なくとも１つの適用前後両方の画像のバージョンの具現化された描写を含むステップと、
前記画像処理コマンドに応答して、画像を再サンプリングして実行される非ネイティブ変換に優先して、画像の再サンプリング無しに実行されるネイティブ変換を選択するステップと、
前記画像処理コマンドに基づいて前記受信された画像において、ネイティブ変換を含む複数の変換を実行して前記受信された画像の１つ以上の具現化された描写を提供する実行ステップと
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法であって、前記画像を受信するステップは、
ラスタグラフィックス画像、デジタル画像及び／またはビットマップ画像を含むファイルを受信するステップを含むことを特徴とする方法。
【請求項３】
請求項１記載の方法であって、前記画像処理コマンドを受信するステップは、
画像処理コマンドを受信して、前記受信された画像をデコーディングまたは解凍する変換、前記受信された画像をスケーリングする変換、前記受信された画像のフォーマットを異なったフォーマットに変更する変換及び／または前記受信された画像をフリッピングもしくは回転する変換のうちの１つ以上の変換を前記受信された画像に実行するステップを含むことを特徴とする方法。
【請求項４】
請求項１記載の方法であって、前記実行ステップは、
前記画像処理コマンドに基づいて前記受信された画像における第１のネイティブ変換をデコーダによって受信された画像の再サンプリング無しに実行するステップと、
前記画像処理コマンドに基づいて前記受信された画像における第２のネイティブ変換を前記デコーダによって受信された画像の再サンプリング無しに実行するステップと
を含むことを特徴とする方法。
【請求項５】
請求項１記載の方法であって、前記実行ステップは、
前記受信された画像を再サンプリングすることなく前記画像処理コマンドに基づいて前記受信された画像における複数の変換を実行して前記画像の１つ以上の具現化された描写を提供するステップを含むことを特徴とする方法。
【請求項６】
請求項１記載の方法であって、前記実行ステップは、
デコーダオブジェクトを生成するステップと、
１つ以上の変換に関するオブジェクトを生成するステップと、
前記１つ以上の変換に関するオブジェクトと前記デコーダオブジェクトとを関連付けるステップと
を含むことを特徴とする方法。
【請求項７】
請求項６記載の方法であって、前記１つ以上の変換に関するオブジェクトを生成するステップは、
スケーラオブジェクトを生成するステップと、
フォーマットコンバータオブジェクトを生成するステップと、
フリップ／ローテータオブジェクトを生成するステップと
を含むことを特徴とする方法。
【請求項８】
請求項１記載の方法であって、前記実行ステップは、
処理されている前記画像の状態を特定する状態情報を保存するステップをさらに含むことを特徴とする方法。
【請求項９】
請求項１記載の方法であって、前記実行ステップは、
前記受信された画像に１つ以上の前記変換が実行された後に１つ以上の中間ステージ画像の具現化された描写を保存するステップをさらに含むことを特徴とする方法。
【請求項１０】
請求項１記載の方法であって、前記実行ステップは、
前記画像処理コマンドに基づいて前記受信された画像における複数の変換を受信された画像の再サンプリング無しに実行して前記受信された画像の複数の具現化された描写を提供するステップを含むことを特徴とする方法。
【請求項１１】
コンピューティングデバイス又は画像プロセッサーによって実行される方法であって、
画像を受信するステップと、
前記受信された画像に対する画像処理コマンドを受信するステップと、
前記画像処理コマンドに基づいて、１つ以上の変換及び前記変換の配列を判定し、前記画像処理コマンドに従って前記受信された画像を処理して前記受信された画像の複数の具現化された描写を提供する判定ステップであって、前記複数の具現化された描写が、前記１つ以上の変換の少なくとも１つの適用前後両方の画像のバージョンの具現化された描写を含むステップと、
前記画像処理コマンドに応答して、画像を再サンプリングして実行される非ネイティブ変換に優先して、画像の再サンプリング無しに実行されるネイティブ変換を選択するステップと、
前記画像処理コマンドに基づいて前記受信された画像において、ネイティブ変換を含む複数の変換を実行して前記受信された画像の複数の具現化された描写を提供する実行ステップと、
を含むことを特徴とする方法。
【請求項１２】
請求項１１記載の方法であって、前記画像処理コマンドを受信するステップは、
画像処理コマンドを受信して、前記受信された画像をデコーディングまたは解凍する変換、前記受信された画像をスケーリングする変換、前記受信された画像のフォーマットを異なったフォーマットに変更する変換及び／または前記受信された画像をフリッピングもしくは回転する変換のうちの１つ以上の変換を前記受信された画像に実行するステップを含むことを特徴とする方法。
【請求項１３】
請求項１１記載の方法であって、前記実行ステップは、
デコーダオブジェクトを生成するステップと、
１つ以上の変換に関するオブジェクトを生成するステップと、
前記１つ以上の変換に関するオブジェクトと前記デコーダオブジェクトとを関連付けるステップと
を含むことを特徴とする方法。
【請求項１４】
請求項１１記載の方法であって、前記実行ステップは、
前記受信された画像に１つ以上の前記変換が実行された後に、１つ以上の中間ステージ画像の具現化された描写を保存して前記受信された画像の前記複数の具現化された描写を提供するステップをさらに含むことを特徴とする方法。
【請求項１５】
請求項１１記載の方法であって、前記実行ステップは、オブジェクトを生成して複数の変換の各々を実行するステップを含み、前記生成ステップは、
デコーダオブジェクトを生成するステップ、
スケーラオブジェクトを生成するステップ、
フォーマットコンバータオブジェクトを生成するステップ、または
フリップ／ローテータオブジェクトを生成するステップ
の１つ以上を含むことを特徴とする方法。
【請求項１６】
請求項１１記載の方法であって、前記実行ステップは、
前記画像処理コマンドに基づいて前記受信された画像における複数の変換を実行して前記受信された画像の複数の具現化された描写を提供するステップを含み、前記複数の具現化された描写はオリジナルすなわち未処理の画像及び１つ以上の処理すなわち変換をされた画像の具現化された描写を含むことを特徴とする方法。
【請求項１７】
請求項１１記載の方法であって、前記実行ステップは、
前記受信された画像の前記複数の具現化された描写を出力するステップを含むことを特徴とする方法。
【請求項１８】
請求項１１記載の方法であって、前記判定ステップは、
前記画像処理コマンドに基づいて１つ以上の変換並びに変換の直列及び／または並列の配列もしくは順序を判定し、前記画像処理コマンドに従って前記受信された画像を処理して前記受信された画像の複数の具現化された描写を提供するステップを含むことを特徴とする方法。
【請求項１９】
請求項１１記載の方法であって、
当該判定に基づいた順序及び／または配列において前記受信された画像における１つ以上の変換を実行し、前記画像処理コマンドに従って前記受信された画像の複数の具現化された描写を提供するステップをさらに含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の複数のかつネイティブな表現方法に関する。
【背景技術】
【０００２】
画像は様々なフォーマット及び解像度で提供することができる。いくつかの画像処理アプリケーションは、画像が処理されるかまたは異なったフォーマットへ変換されること等を可能にする。この処理は、通常は画像における１または複数の変換によって行うことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
いくつかのケースにおいて、このような画像処理は所望の画像を生成することができるが、解像度の損失のない処理を不可能にする場合がある。なぜなら、従来はオリジナルの画像は処理の中で破棄される場合があるからである。このような画像処理技術は、通常は非常に制限されている。
【課題を解決するための手段】
【０００４】
様々な実施形態は、画像の複数の（multiple）かつネイティブな（native）表現に関して開示される。実施形態の一例によれば、例えば、画像の単一のリアライゼーション（具現化された画像）だけよりもむしろ画像の複数のリアライゼーションが生成されて提供され得る。複数のリアライゼーションの生成及び出力も、ネイティブオブジェクトを使用し、変換すなわち画像処理をネイティブに実行して画像またはリアライゼーションを提供することができる。
【０００５】
実施形態の一例によって方法が提供される。この方法は、画像の受信をするステップと、当該受信した画像の画像処理コマンドを受信するステップと、当該画像処理コマンドに基づいて当該画像における複数の変換をネイティブに実行して当該画像の１または複数のリアライゼーションを提供するステップとを含むことができる。
【０００６】
実施形態の他の例によって方法が提供される。この方法は、画像を受信するステップと、当該受信した画像の画像処理コマンドを受信するステップと、当該画像処理コマンドに基づいて当該画像における複数の変換を実行して当該画像の複数のリアライゼーションを提供するステップとを含むことができる。当該複数のリアライゼーションの各々は、当該画像にネイティブに実行される少なくとも１つの変換を含んでも良い。
【０００７】
さらに実施形態の他の例によって方法が提供される。この方法は、画像を受信するステップと、画像処理コマンドを受信するステップと、当該画像処理コマンドに基づいて、１または複数の変換及び当該変換の順序を判定し、当該画像処理コマンドに従って当該画像を処理して当該画像の複数のリアライゼーションを提供するステップとを含むことができる。
【０００８】
この概要は、発明の詳細な説明において以下でさらに説明されるコンセプトの選択を簡単な形式で紹介するために提供される。この概要は、本願の請求項に記載された発明の重要な特徴及び本質的な特徴を特定することを意図しておらず、本願の請求項に記載された発明の範囲の決定において目的として使用されることも意図していない。
【図面の簡単な説明】
【０００９】
【図１】実施形態の一例に従ったコンピューティングシステムのブロック図である。
【図２】実施形態の他の例に従ったシステムのブロック図である。
【図３Ａ】実施形態の一例に従った複数のリアライゼーションを提供するために画像が処理されるシステム３００Ａの図である。
【図３Ｂ】実施形態の他の例に従った複数のリアライゼーションを提供するために画像が処理されるシステム３００Ｂのブロック図である。
【図４】実施形態の一例に従って、１または複数のリアライゼーションを生成するために画像における複数の変換を実行するプロセスを示したフローチャートである。
【図５】実施形態の他の例に従って、１または複数のリアライゼーションを生成するために複数の変換を実行するプロセスを示したフローチャートである。
【図６】さらに実施形態の他の例に従って、１または複数のリアライゼーションを生成するために１または複数の変換を実行するプロセスを示したフローチャートである。
【発明を実施するための形態】
【００１０】
同様の参照符号が同じ要素を示す図面を参照すると、図１は、本発明の実施形態の一例に従ったコンピューティングシステムのブロック図である。実施形態の一例によれば、様々な実施形態は、コンピューティングシステム１００または他のコンピューティングシステム内で実行または実装することができる。コンピューティングシステム１００は、例えば、ラップトップコンピュータ、デスクトップコンピュータ、パーソナルコンピュータ（ＰＣ）、サーバ、ネットワークデバイス（例えばスイッチ、ルータ）、携帯電話、ＰＤＡ（personal digital assistant）、ゲームデバイス、ハンドヘルド通信デバイスまたは他のコンピューティングデバイスであっても良い。これらは単なる少数の例であり、様々な実施形態はこれらに制限されるものではない。
【００１１】
システム１００は、中央処理装置（ＣＰＵ）１０２と、ランダムアクセスメモリ１０６（ＲＡＭ）及びリードオンリーメモリ１０８（ＲＯＭ）を含むシステムメモリ１０４と、を含むことができる。ＣＰＵ１０２は、命令を解釈してコンピュータアプリケーション内のデータを処理することができる。例えばＣＰＵ１０２は、マイクロプロセッサでありかつ多数の集積回路を含むことができ、ソフトウェアまたは命令を実行してコンピュータシステム１００に全体的な制御を提供することができる。ＲＡＭ１０６は、当該ＲＡＭに保存されたデータが任意の順でアクセスされることを可能にし、例えばシステム１００もＲＡＭ１０６に書込みかつそこから読み出すことができる。例えば、データファイルは、時刻ＸにおいてＲＡＭ１０６に保存することができ、時刻Ｙにおいて当該データファイルをＲＡＭ１０６から読み出すことができる。ＲＯＭ１０８は、システム１００によってＲＯＭ１０８から読み出されるであろうデータまたはシステムを含むことができる（システム１００によって書込まれまたは読み出しをされ得るＲＡＭ１０６とは対照的である）。例えば、ＲＯＭ１０８は、システム１００が最初に起動されたときにシステム１００によって実行されるべき基本入力／出力システム（ＢＩＯＳ）ソフトウェアコードを含むことができる。例えば、ＲＯＭ１０８は、クロック１１０に結合することができる。クロック１１０は、例えばＲＯＭ１０８を介してシステム１００に時間を提供することができる。
【００１２】
システム１００は、入力／出力コントローラ１２８及びディスプレイデバイス１３０を含むことができる。入力／出力（Ｉ／Ｏ）コントローラ１２８は、ディスプレイデバイス１３０のような１または複数のＩ／Ｏデバイスを相互作用させることができる。例えば、入力／出力コントローラ１２８は、ディスプレイデバイス１３０に出力を提供することができる。ディスプレイデバイス１３０は、入力／出力コントローラ１２８からのデータを受信して、ユーザに当該データを提供すなわち表示するように構成されたデバイスとすることができる。図示してはいないが、入力／出力コントローラ１２８は、キーボード、マウス、ジョイスティックまたはシステム１００に入力を提供するように構成されている任意のその他の入力デバイスのような様々な入力デバイスに結合することもできる。
【００１３】
システム１００は、データ記憶デバイス１１４も含み、データ、命令またはその他の情報を保存することができる。例えば、データ記憶デバイス１１４は、磁気表面にデータを保存するハードディスクデバイス、ＣＤ−ＲＯＭまたはシステム１００によってアクセス可能な任意のその他の利用可能な媒体記憶装置とすることができる。
【００１４】
例示であって制限するものではないが、データストレージデバイス１１４は任意のコンピュータ読み取り可能媒体を含むことができる。例えば、コンピュータ読み取り可能媒体は、コンピュータ記憶媒体及び通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュールまたはその他のデータのような、情報の記憶に関する任意の方法または技術において実施される媒体を含むことができる。制限するわけではないが、コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のソリッドステートメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤもしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、所望の情報を保存できかつコンピュータからアクセス可能な任意の他の媒体を含むことができる。
【００１５】
アプリケーション１１６、画像プロセッサ１１８、オペレーティングシステム１２０及びスタック１２２のような、１もしくは複数のコンピュータプログラムまたはブロックはデータ記憶デバイス１１４内に保存することができる。アプリケーション１１６は、ウェブブラウザ、ワードプロセッサ、マルチメディアアプリケーションまたは他のアプリケーションであっても良い。そして、例えば、アプリケーション１１６は、画像及び画像処理コマンドを送信して、１または複数のリアライゼーションを含む処理された画像を受信するように構成されているイメージングアプリケーションであっても良い。例えば、アプリケーション１１６は、ユーザの入力に基づいた画像、処理コマンド、処理された画像及び／またはリアライゼーションを送信しかつ受信することができる。例えば、アプリケーション１１６は、デジタルカメラからの画像を受信することができる。例えば、アプリケーション１１６は、画像を画像プロセッサ１１８に送信してフリップ／ローテータ変換のような変換を実行することができ、その後に、画像プロセッサ１１８は、リアライゼーション２１６を含む処理された画像２１４をアプリケーション１１６に返送することができる。
【００１６】
画像プロセッサ１１８は、画像処理を実行するプログラムであっても良い。例えば、画像プロセッサ１１８は、画像、画像処理コマンドを受信するように構成されたアプリケーションであっても良く、コマンドに基づいて当該受信した画像における１または複数の変換を実行して当該画像の１または複数のリアライゼーションを生成することができる。例えば、画像プロセッサ１１８は、画像及びコマンドを受信して画像を回転させることができる。その後に、画像プロセッサ１１８は、回転処理を実行して、回転された画像リアライゼーションを含む処理された画像を出力することができる。
【００１７】
オペレーティングシステム１２０は、システム１００のハードウェア及びソフトウェアを管理するソフトウェアプログラムであっても良く、任意のタイプのオペレーティングシステムでも良い。例えば、オペレーティングシステムは、マイクロソフトウィンドウズ（登録商標）、リナックス等でも良い。スタック１２２は、データ記憶デバイス１１４からのデータを保存するために使用される一時データ構造であっても良い。例えば、スタックがアプリケーション１１６から画像プロセッサへの画像及び対応する処理コマンドを保存して、その後、画像プロセッサ１１８がスタック１２２に保存されているアイテムにアクセスすることができる。
【００１８】
実施形態の一例によれば、システム１００は、論理接続を使用しているネットワーク化された環境において動作することができ、リモートコンピュータと、例えばＴＣＰ／ＩＰネットワーク１２４のようなネットワークを介して通信する。例えば、ＴＣＰ／ＩＰネットワーク１２４は、インターネット、企業のイントラネット、ローカルエリアネットワーク、ワイヤレスネットワーク、ワイドエリアネットワーク及び／または任意の他のネットワークであっても良い。システム１００は、ネットワークインタフェースユニット１２６を介してＴＣＰ／ＩＰと通信しても良い。ネットワークインタフェースユニット１２６は、システム１００にＴＣＰ／ＩＰネットワーク１２４との通信を可能とさせるよう構成されているデバイス及び／またはソフトウェアプログラムでも良い。例えば、ネットワークインタフェースユニット１２６は、ネットワークカード、ネットワークインタフェースコントローラ（ＮＩＣ）、モデムまたは任意のその他の通信可能デバイスでも良い。
【００１９】
システムバス１１２は、ＣＰＵ１０２、システムメモリ１０４、データ記憶デバイス１１４、ネットワークインタフェースユニット１２６及び入力／出力コントローラ１２８に結合されても良い。システムバス１１２は、２またはそれ以上のシステムコンポーネント間のデータ伝送を可能にしても良い。例えば、システムバス１１２は、システムメモリ１０４及びＣＰＵ１０２についてのデータの伝送を可能にしても良い。例えば、システムバス１１２は、データデバイス１１４と入力／出力コントローラ１２８のようなシステム１００の他の部分を一緒に結合することができる。
【００２０】
図２は、実施形態の他の例に従ったシステム２００のブロック図である。上述したように、システム２００は、アプリケーション１１６及び画像プロセッサ１１８を含んでも良い。例えば、アプリケーション１１６は、ライン２０４を介して画像２０２を、ライン２０８を介して画像処理コマンド２０６を、画像プロセッサ１１８に提供するように構成されていても良い。例えば、コマンド及び１または複数のパラメータを画像プロセッサ１１８に送るアプリケーション１１６によって、画像２０２及び処理コマンド２０６が提供されても良い。
【００２１】
画像プロセッサ１１８は、画像２０２を受信してコマンド２０６を処理するように構成されたソフトウェアプログラム及び／またはデバイスでも良い。例えば、画像プロセッサ１１８は、デコーダオブジェクト２２０並びに変換オブジェクト２２２、２２４、２２６及び２２８のような１または複数の変換オブジェクトによって画像２０２に処理コマンド２０６を実行して、画像の１または複数のリアライゼーション（２１６、２１８）を含む１または複数の画像２１４を提供しても良い。このようにして、一例として、画像プロセッサ１１８は、処理コマンド２０６に基づいて画像２０２を処理して、リアライゼーション２１６及び２１８のような、画像の１または複数のリアライゼーションを提供しても良い。
【００２２】
画像２０２は、特定のファイルタイプ２０３のファイル内にあっても良い。ファイルタイプ２０３は、ファイルフォーマットまたは画像データの圧縮方法でも良く、ラスタグラフィックファイルタイプ、デジタルファイルタイプまたは他のファイルタイプのような任意の受け入れ可能なファイルタイプであっても良い。例えば、ファイルタイプ２０３は、ＪＰＥＧ、ＧＩＦ（Graphics Interchange Format）、ＰＮＧ（Portable Network Graphics）、未加工（すなわちコーディングされていない）または任意の他のファイルタイプであっても良い。画像２０２は、任意の受け入れ可能なファイルタイプ２０３を含むファイル内にあっても良い。画像２０２は、１または複数の画像を含んでも良い。各画像は、画像（またはピクセル）フォーマット２０５を含んでも良い。例えば、画像フォーマット２０５は、ＲＧＢ、ＣＭＹＫ、ＹＣｂＣｒもしくは任意の他のカラースペースピクセルフォーマットでも良い。
【００２３】
処理コマンド２０６は、単一の処理コマンド２０６または複数の処理コマンドであっても良い。例えば、処理コマンド２０６は、変換値２１０、リアライゼーション値２１２またはその両方を含んでも良い。処理コマンド２０６は、画像２０２と関連していても良い。例えば、変換値２１０は、画像に実行される変換（群）を示していても良く、変換（群）アプリケーションの所定の順序を示していても良い。変換は、画像２０２上で実行することができる任意の潜在的変形または処理でも良く、それらはスカラ変換、フォーマットコンバータ変換及び／またはフリップ／ローテータ変換を含むが、これらに限定されるものではない。追加的な及び／または異なった変換が使用されても良い。
【００２４】
リアライゼーション値２１２は、画像プロセッサ１１８によって出力されるべきリアライゼーションの数を特定しかつ／またはリアライゼーション及び／もしくは処理された画像（群）を特定しても良い。リアライゼーション２１６、２１８は、各々画像２０２への１または複数の変換の実施前後の画像２０２のバージョンであっても良い。例えば、リアライゼーション値２１２は、リアライゼーション２１６、２１８に実行される変換を示しても良く、また変換を実行する順序を特定しても良い。処理された画像（群）２１４は、画像２０２への１または複数の変換の適用前または適用後に画像プロセッサ１１８から出力された１または複数の画像であっても良い。処理された画像（群）２１４の各々は、１または複数のリアライゼーション２１６、２１８を含むことができ、１つのリアライゼーションとして参照することができる。
【００２５】
例えば、アプリケーション１１６は、ＹＣｂＣｒのフォーマット２０５の画像２０２を画像プロセッサ１１８に送信しても良い。アプリケーション１１６はまた、処理コマンド２０６を画像プロセッサ１１８に送信しても良い。例えば、処理コマンド２０６は、変換値２１０及びリアライゼーション値２１２を含んでも良いが、これは例示でありかつ実施形態はこれに制限されるものではない。変換値２１２は、画像に実行されるスケーラ変換、フォーマットコンバータ変換及びフリップ／ローテータ変換、及び／または他の変換を特定しても良い。例えば、リアライゼーション値２１２は、リアライゼーション２１６が受信された画像２０２をスケーリング（例えば３０％）することによって生成されるべきこと、リアライゼーション２１８が受信した画像２０２をフォーマット変更（例えばＹＣｂＣｒからＲＧＢ）し、次いで回転（例えば９０°）させることによって生成されるべきことを示しても良い。これらは一部の例に過ぎず、様々な実施形態はこれに制限されるものではない。例えば、画像プロセッサ１１８は、スケーラオブジェクト２２２、フォーマットコンバータオブジェクト２２４及び／またはフリップ／ローテータオブジェクト２２６をインスタンス化し、特定の変換を実行して画像を処理し、２つのリアライゼーション２１６、２１８を含む処理された画像（群）２１４を出力しても良い。
【００２６】
画像プロセッサ１１８は、例えば、デコーダオブジェクト２２０及びスケーラオブジェクト２２２、フォーマットコンバータオブジェクト２２４並びに／またはフリップ／ローテータオブジェクト２２６等の複数の変換オブジェクトを含んでも良い。
【００２７】
デコーダオブジェクト２２０は、例えば現在ファイルタイプ２０３の状態から画像２０２をデコーディング及び／または解凍して、画像プロセッサ１１８または１もしくは複数の変換オブジェクトが画像２０２における変換を実行するようにしても良い。
【００２８】
スケーラオブジェクト２２２は、画像２０２におけるスケーラ変換を実行するように構成されていても良い。スケーラオブジェクト２２２（すなわちスケーラ変換）は、画像の全体または一部をスケーリングしても良く、これは画像２０２のサイズの拡大または縮小を含んでも良い。スケーラオブジェクト２２２によって実行されるスケーリングは、画像の解像度を変えることなく実行されても良いが、画像の解像度の変更または置換を含んでも良い。例えば、変換値２１０は、画像２０２のサイズを５０％増加させるためにスケーラ変換をすることを示しても良い。このような画像処理コマンドに応答して、画像プロセッサ１１８及び／またはスケーラオブジェクト２２２は、画像を全体として５０％でスケーリングして５０％でスケーリングされたリアライゼーションを生成しても良い。
【００２９】
フォーマットコンバータオブジェクト２２４は、受信した画像２０２のフォーマット２０５を変更しても良い。すなわち、画像２０２のフォーマット２０５を異なったフォーマットに変更しても良い。例えば、画像２０２は、画像プロセッサ１１８にＲＧＢフォーマットで提供されても良く、変換値２１０は画像をＣＭＹＫに変換するためにフォーマットコンバータ変換を特定しても良い。このような処理コマンドに応答して、例えば、画像プロセッサ１１８及び／または画像プロセッサ１１８のフォーマットコンバータオブジェクト２２４は、受信した画像２０２のフォーマット２０５をＲＧＢからＣＭＹＫに変更しても良い。
【００３０】
フリップ／ローテータオブジェクト２２６は、画像２０２をフリッピングまたは回転させても良い。フリップ／ローテータオブジェクト２２６（すなわち変換）は、画像２０２を上下もしくは左右にフリッピングするかまたは画像２０２をある角度回転させても良い。例えば、変換値２１０は、フリップ／ローテータ変換を特定して画像２０２を上下にフリッピングするかまたは画像を反時計回りに３０°回転させても良い。このような画像処理コマンドに応答して、画像プロセッサ１１８及び／またはフリップ／ローテータオブジェクト２２６は、画像２０２を要求されたようにフリッピングまたは回転させても良い。
【００３１】
上述したように、デコーダオブジェクト２２０は、受信した画像をデコーディングしても良い。デコーダオブジェクト２２０は、画像２０２をデコーディングするように構成されていることに加えて、ネイティブ変換オブジェクト２２８を含んでも良い。例として、ネイティブ変換オブジェクト２２８は、ネイティブスケーラオブジェクト、ネイティブフォーマットコンバータオブジェクト及び／またはネイティブフリップ／ローテータオブジェクトのような、ネイティブに実行することができる任意の変換オブジェクト（すなわち画像処理オブジェクト）を含んでも良い。ネイティブ変換オブジェクト２２８が変換能力を含む場合、ネイティブ変換オブジェクト２２８は任意の変換または変換の組み合わせをデコーダオブジェクト内でネイティブに実行しても良い。実施形態の一例において、デコーダオブジェクト２２０のネイティブ変換オブジェクト２２８は、画像における１または複数のネイティブ変換を、デコーダオブジェクト２２０が受信した画像２０２をデコーディングすると同時にまたはほぼ同時に実行しても良い。このことは、デコーダオブジェクト２２０またはネイティブ変換オブジェクト２２８内で、変換（群）をネイティブに実行することによって、例えば、受信した画像を再サンプリングすることなく画像に要求された変換を可能とする。いくつかのケースにおいて、このことは、画像に再サンプリングまたはダウンサンプリングが起こり得る非ネイティブ変換と比較して改善された画像の品質を提供することができる。
【００３２】
ネイティブ変換オブジェクト２２８は、１または複数の変換が画像にネイティブに、例えば画像の再サンプリングまたはダウンサンプリングを必要とせずに施されることを可能にすることができる。従って、いくつかのケースにおいて、ネイティブ変換は、例えば、向上した画像品質を有利に提供するかまたは画像品質の損失を有利に回避することができる。ネイティブ変換オブジェクト２２８は、任意の数の変換オブジェクトを含んでも良い。例えば、ネイティブ変換オブジェクト２２８は、全ての要求された変換を画像２０２においてネイティブに実行することができるように、ネイティブスケーラオブジェクト、ネイティブフォーマットコンバータオブジェクト及び／またはネイティブフリップ／ローテータオブジェクトを含んでも良い。
【００３３】
いくつかのケースにおいて、デコーダオブジェクト２２０は、アプリケーション１１６から処理コマンド２０６を受信した後に１または複数の変換オブジェクトをインスタンス化して、画像２０２における要求された処理を実行しても良い。ネイティブ変換オブジェクト２２８が要求された変換または処理を実行可能な場合、画像はネイティブオブジェクトを使用してネイティブに処理されても良い。そうではなく要求された変換オブジェクトがネイティブ変換として利用できなければ、例えばオブジェクト２２２、２２４または２２６といったインスタンス化された変換オブジェクトは、画像における（例えば非ネイティブな）処理を実行することができる。このことは、いくつかのケースにおいて画像の再サンプリングを含むことができる。従って、例えば、いくつかの（または全ての）要求された変換は画像にネイティブに実行することができ、他の（または全ての）変換は他の変換オブジェクトによって引き続き非ネイティブに実行することができる。
【００３４】
実施形態の一例において、受信された処理コマンド２０６は、画像２０２において実行される２５％でスケーリングしかつ画像フォーマットをＹＣｂＣｒからＲＧＢに変更するような２つの変換を要求することができる。この例において、デコーダオブジェクト２２０は、画像プロセッサ１１８によってインスタンス化することができる。また、処理コマンド２０６に基づいて、スケーラオブジェクト及びフォーマットコンバータオブジェクトがインスタンス化されてデコーダオブジェクト２２０と関連させられ得る。この例において、スケーリングはネイティブ変換オブジェクト２２８によってネイティブに実行することができる一方で、要求されたＹＣｂＣｒからＲＧＢへのフォーマット変更はネイティブに実行可能でなくとも良い。これは単に例示である。従って、デコーダオブジェクト２２０は、画像を受信したときに画像をデコーディングすることができ、ネイティブ変換オブジェクト２２８は要求によって２５％でネイティブに画像をスケーリングすることができる。続いて、デコーディングされかつスケーリングされた画像は、フォーマットコンバータオブジェクト２２４に渡すことができ、そこで、画像は例えばＲＧＢフォーマットに変換され、（デコーディングされ、スケーリングされかつフォーマット変更された）当該画像のリアライゼーションとして出力することができる。
【００３５】
実施形態の他の例において、画像プロセッサ１１８は、画像の複数のリアライゼーションを出力しても良い。リアライゼーションの各々は、異なったバージョンの画像であっても良く、例えば、リアライゼーションの各々に対して画像における異なった変換が実行される。例えば、画像プロセッサ１１８は、オリジナルの画像２０２とすることができる第１の画像リアライゼーション、デコーディング後の画像２０２とすることができる第２のリアライゼーション及び２５％でスケーリングされかつＲＧＢに変更されたデコーディング後の画像とすることができる第３の画像を出力することができる。実施形態の一例において、この例における１または複数（または全て）の変換はネイティブに行うことができる。これは単なる例である。処理コマンド２０６は、提供されるすなわち生成される１または複数のリアライゼーションを、例えばリアライゼーション値（群）２１２を介して特定しても良い。
【００３６】
図３Ａはシステム３００Ａの図であり、このシステムにおいて、画像は処理されて実施形態の一例に従った複数のリアライゼーションを提供する。システム３００Ａは、画像２０２と、デコーダオブジェクト２２０によって受信された処理コマンド２０６と、を含んでも良い。画像２０２はファイル内に存在しても良く、上述したように任意の画像フォーマット２０５の任意の画像またはいくつかの画像を含んでも良い。上述した処理コマンド２０６は、変換値及び／もしくはリアライゼーション値、または提供されるすなわち生成されるべき１もしくは複数の画像リアライゼーションを特定する他の情報を含んでも良い。処理コマンド２０６は、例えば画像２０２の出力のためのリアライゼーションがいくつあるか、リアライゼーションの各々に実行する変換はどれなのか及びどの順序でリアライゼーションを生成する変換が実行されるのかを指示しても良い。
【００３７】
デコーダオブジェクト２２０は、画像メモリ３０２を含んでも良い。デコーダオブジェクト２２０は、スケーラオブジェクト２２２、フォーマットコンバータオブジェクト２２４及び／またはフリップ／ローテータオブジェクト２２６に結合されまたは関連させられても良い。上述したように、デコーダオブジェクト２２０は、受信された画像２０２をデコーディングまたは解凍することができる。また、スケーラオブジェクト２２２は、画像をスケーリングする。フォーマットコンバータオブジェクト２２４は画像のフォーマット２０５を異なったフォーマットに変換することができ、フリップ／ローテータオブジェクト２２６は画像をフリッピングまたは回転させることができる。他の変換オブジェクトが提供されても良い。
【００３８】
実施形態の一例によれば、画像プロセッサ１１８は、例えばリアライゼーション３０４Ａ、３０４Ｂ、３０４Ｃ及び３０４Ｄのような１または複数の画像リアライゼーションを出力しても良い。リアライゼーションの各々は、０またはそれ以上の変換が実行された後の画像２０２を含んでも良い。０の変換が行われた後に出力されるケースにおいては、オリジナルの受信された画像２０２を出力することができる。デコーダオブジェクト２２０の画像メモリ３０２は、受信された画像２０２を保存しても良く、オリジナルの画像２０２は、変換が行われた後であっても使用可能とすることができる。例えば、画像メモリ３０２は、画像に１または複数の変換が行われた後に１または複数の中間ステージリアライゼーションを保存しても良い。これらの中間ステージリアライゼーションは、リアライゼーションとして出力されても良くかつ／または他のリアライゼーションとして出力するために他の変換によってさらに処理されても良い。実施形態の一例において、画像メモリ３０２は、デコーダオブジェクト２２０の一部としても良く、またはシステムメモリ１０４内（例えば、図１のＲＡＭ１０６内）に提供しても良い。
【００３９】
例えば、オリジナルの画像２０２は、犬またはその他のオブジェクトであっても良く、処理コマンドは、サイズをスケーリングしてオリジナルのサイズの１５０％にする第１のリアライゼーション及び画像を上下にフリッピングする第２のリアライゼーションを含むことができる。画像メモリ３０２は、オリジナルの犬の画像２０２を保存することができ、その後に当該画像は第１のリアライゼーションのために１５０％にスケーリングされ、第２のリアライゼーションは、オリジナルの画像２０２を上下にフリッピングするために画像メモリ３０２内に保存されているオリジナルの画像２０２を引き続き使用しても良い。画像メモリ３０２内に保存されているオリジナルの画像が使用されて、当該オリジナルの画像のリアライゼーションが出力されても良い。実施形態の一例において、画像メモリ３０２は、画像に１または複数の変換が実行された後に、処理されている画像２０２及び／または中間状態リアライゼーションを特定する状態情報を保存しても良い。例えば、第２のリアライゼーション３０４Ｂの提供において、画像メモリ３０２は、スケーラオブジェクト２２２がスケーラ変換を実行した後に画像または画像状態情報を保存しても良い。その後に、例えば、フォーマットコンバータオブジェクト２２４は画像状態情報を画像メモリ３０２から取り出して、スケーリングされた画像上でフォーマットコンバータ変換を実行しても良い。
【００４０】
図３Ａ内のシステム３００Ａによって実行される画像処理は、ここで簡単に説明される。デコーダオブジェクト２２０は、実施形態の一例において通常最初に提供することができる。デコーダオブジェクト２２０の後に、システム３００Ａのスケーラオブジェクト２２２、フォーマットコンバータオブジェクト２２４及びフリップ／ローテータオブジェクト２２６のような１または複数の変換オブジェクトが、処理コマンド２０６に基づいて、例えば処理コマンド２０６のリアライゼーション値２１２に基づいて、直列、並列またはそれらの組み合わせにおいて編成される。例えば、図３Ａの例において示されているように、デコーダオブジェクト２２０はＲＧＢフォーマットの犬の画像２０２を受信しても良い。デコーダオブジェクト２２０は、画像２０２に関する処理コマンド２０６を受信しても良く、ここにおいて例えば処理コマンド２０６は画像の４つのリアライゼーションを提供するコマンドを含んでも良い。第１の要求されたリアライゼーション３０４Ａは、デコーダオブジェクトによってデコーディングされかつスケーラオブジェクトによって（例えば５０％で）スケーリングされた画像２０２を含んでも良い。第２の要求されたリアライゼーション３０４Ｂは、デコーダオブジェクトによってデコーディングされ、スケーラオブジェクトによって（例えば５０％で）スケーリングされかつその後フォーマットコンバータオブジェクトによってフォーマットが（例えばＲＧＢからＣＭＹＫに）変換された画像を含んでも良い。第３の要求されたリアライゼーション３０４Ｃは、デコーダオブジェクトによってデコーディングされた後にフリップ／ローテータオブジェクトで（例えば９０°）回転された画像を含んでも良い。そして、第４のリアライゼーション３０４Ｄは、デコーダオブジェクトによってデコーディングされ、フリップ／ローテータオブジェクトによって（例えば３０°）回転され、フォーマットコンバータオブジェクトによって（例えばＲＧＢからＣＭＹＫに）フォーマット変更された画像を含んでも良く、例えばこれらの順序は任意である。
【００４１】
例えば、デコーダオブジェクト２２０は、画像２０２を受信すると、さらなる処理及び／または未処理のリアライゼーションとしての可能性のある出力のために画像メモリ３０２内にオリジナル画像２０２のコピーを保存しても良い。図３Ａに示されている実施形態の一例において、システム３００Ａのデコーダオブジェクト２２０は、例えば、処理コマンドによって要求されたスケーラオブジェクト、フォーマットコンバータオブジェクト及びフリップ／ローテータオブジェクトに関するネイティブ変換オブジェクト２２８を含まない。従って、この例においては、要求された変換は非ネイティブ変換オブジェクトによって実行することができる。
【００４２】
デコーダオブジェクト２２０は、画像２０２を受信するとインスタンス化されて受信画像のデコーディングを実行しても良い。１または複数の追加のオブジェクトもインスタンス化され、処理コマンド２０６に基づいてデコーダオブジェクト２２０に結合されまたは関連させられ得る。このことは、１または複数のオブジェクトの判定及びオブジェクトの配列の判定、例えば、直列及び／もしくは並列の配列並びに／または順序の判定を含み、処理コマンドに従って画像を処理して要求された画像リアライゼーションを生成しても良い。例えば、図３Ａに示されているように、このことはスケーラオブジェクト２２２及びフォーマット変換オブジェクト２２４が第２のリアライゼーション３０４Ｂを生成するために直列で提供されるべきことを判定する一方で、フリップ／ローテータオブジェクト２２６を（第２のリアライゼーションを生成するために使用されるオブジェクトのために）並列に配置して第３のリアライゼーション３０４Ｃを生成することができる。デコーダオブジェクト２２０が画像２０２をネイティブにデコーディングした後に、４つの例示的なリアライゼーションが生成されても良い。
【００４３】
記載したように、図３Ａの第２のリアライゼーション３０４Ｂに関して、デコーディングされた画像はスケーラオブジェクト２２２によってスケーリングされかつフォーマットコンバータオブジェクト２２４によってフォーマット変更されて、第２のリアライゼーション３０４Ｂが生成されても良い。例えば、オブジェクト２２２及び２２４は、非ネイティブ変換とすることができる。例えば、非ネイティブ変換は、デコーディングされた画像の再サンプリングまたはダウンサンプリングを含んでも良い。実施形態の他の例において、スケーラオブジェクト２２２及びフォーマットコンバータオブジェクト２２４の両方はネイティブに利用可能であっても良く、従ってデコーダオブジェクト内でネイティブに実行することができる。中間ステージリアライゼーションは、デコーディングされた画像がスケーラオブジェクト２２２によってスケーリングされた後に保存することができることに注意すべきである。スケーラオブジェクト２２２から出力されたこの中間ステージリアライゼーションは、第１のリアライゼーション３０４Ａとして出力することができる。
【００４４】
例えば、第３のリアライゼーション３０４Ｃを生成するために、画像メモリ３０２内に保存されているデコーディングされた画像は、フリップ／ローテータオブジェクト２２６によって回転されて第３のリアライゼーション３０４Ｃを生成することができる。最後に、第４のリアライゼーション３０４Ｄを生成するために、画像メモリ３０２内に保存されているデコーディングされた画像は、最初に（例えば、第２のリアライゼーション３０４Ｂにおける場合とは対照的に）フォーマットコンバータオブジェクト２２４によってフォーマット変更され、その後にフリップ／ローテータオブジェクト２２６によって回転されて第４のリアライゼーション３０８Ｄを生成することができる。実施形態の他の例において、フォーマットコンバータオブジェクト２２４、フリップ／ローテータオブジェクト２２６を含む第４のリアライゼーション３０４Ｄを生成するために使用される全てのオブジェクトをネイティブに提供することができる。このことは、実施形態の一例において、ネイティブ処理はデコーダオブジェクト２２０によって実行されて画像の第４のリアライゼーション３０４Ｄを生成することを意味する。
【００４５】
上述したように、少なくともいくつかのケースでは、システム３００Ａにおいて、スケーラオブジェクト２２２、フォーマットコンバータオブジェクト２２４及びフリップ／ローテータオブジェクト２２６は、例えばそれらの変換の各々を画像上において非ネイティブな状態で実行することができる（すなわち、それらは再サンプリングすることができ、ダウンサンプリングすることができかつ／または画像品質を失うことができる）。また、上述したようにシステム３００Ａに適用された変換、変換の順序及びリアライゼーションの数は、単に説明のためのものである。代替の実施形態において、システム３００Ａに適用された変換、変換の順序及びリアライゼーションの数は変化し得る。さらに、上記の説明は単に例示に過ぎないので、リアライゼーションの各々は分離して処理される必要はなく、複数のリアライゼーションは同時に処理することができる。代替の実施形態において、複数の画像２０２及び複数の処理コマンド２０６も受信することができる。
【００４６】
図３Ｂはシステム３００Ｂのブロック図であって、そのシステムにおいて画像は処理されて実施形態の他の例に従った複数のリアライゼーションを提供する。システム３００Ｂは、デコーダオブジェクト２２０によって受信された画像２０２及び処理コマンド２０６を含むことができる。システム３００Ｂ（図３Ｂ）は、システム３００Ａ（図３Ａ）と非常に類似しており、２つの図の間の違いが説明される。上述のように、画像２０２は受け入れ可能なファイルタイプ２０３のファイルであっても良く、かつ／または任意の互換性のある画像フォーマットの任意の画像もしくはいくつかの画像であっても良い。上述のように、処理コマンド２０６は、変換値２１０及びリアライゼーション値２１２を含むことができる。処理コマンド２０６は、例えば画像２０２を出力するためのリアライゼーションがいくつあるのか、各々のリアライゼーションを実施するための変換はどれか及び変換（群）の実行の順序はどうなるのかを示しても良い。
【００４７】
例えば、デコーダオブジェクト２２０は、画像メモリ３０２、ネイティブフリップ／ローテータオブジェクト３０６及びネイティブフォーマットコンバータオブジェクト３０８を含んでも良い。しかし、システム３００Ｂにおいては、フリップ／ローテータオブジェクト２２６及びフォーマットコンバータオブジェクト２２４が、それらの各々の変換を実行するのではなく、ネイティブフリップ／ローテータオブジェクト３０６及びネイティブフォーマットコンバータオブジェクト３０８がそれぞれ、画像２０２にフリップ／ローテータ変換及びフォーマットコンバータ変換を実行することができる。従って、この例においては、ネイティブフリップ／ローテータオブジェクト３０６及びネイティブフォーマットコンバータオブジェクト３０８は利用可能であり、非ネイティブオブジェクト２２６及び２２４の各々の代わりに画像を処理するために使用することができる。システム３００Ｂにおいて、ネイティブオブジェクトが画像２０２の変換の実行に利用できるならば、ネイティブオブジェクトは非ネイティブオブジェクトより好ましく使用することができる。そして、例えば、処理された画像は、ネイティブオブジェクトが利用可能な非ネイティブオブジェクトを通過（またはこれをバイパス）させられ得る。従って、４つのリアライゼーション３０４Ｅ、３０４Ｆ、３０４Ｇ及び３０４Ｈは、処理コマンドに従って複数のリアライゼーションを生成するために、ネイティブオブジェクト、非ネイティブオブジェクトまたはネイティブ及び非ネイティブオブジェクトの組み合わせに基づいて生成される。
【００４８】
システム３００Ａにおけるように、スケーラオブジェクト２２２、フォーマットコンバータオブジェクト２２４及びフリップ／ローテータオブジェクト２２６並びに／またはシステム３００Ｂの他のオブジェクトは、処理コマンド２０６に基づいて直列、並列または両方の組み合わせで構成することができる。例えば、処理コマンド２０６は４つのリアライゼーション（３０４Ｅ−Ｈ）を生成するコマンドを含んでも良い。例えば、リアライゼーション３０４Ｅ−Ｈに関する要求または処理コマンドは、リアライゼーション３０４Ａ−Ｄ（図３Ａ）と同じ処理コマンドであっても良いが、システム３００Ｂは１または複数のネイティブオブジェクトを有利に使用して画像処理を実行し、複数の要求されたリアライゼーションを生成しても良い。第１のリアライゼーション３０４Ｅは、ネイティブデコーダ２２０及び非ネイティブスケーラオブジェクト２２２を使用して生成することができる。なぜなら、ネイティブスケーラオブジェクトが利用できないことがあり得るからである（代替の実施形態においては利用可能であっても良いが）。しかし、第２のリアライゼーション３０４Ｆは、ネイティブデコーダ２２０、非ネイティブスケーラオブジェクト２２２（例えば利用できるネイティブスケーラオブジェクトがない故に）及びネイティブフォーマットコンバータオブジェクト３０８を使用して生成することができる。ネイティブフォーマットコンバータオブジェクト３０８は、要求されたフォーマット変更に利用できるので、ネイティブフォーマットコンバータオブジェクト３０８はインスタンス化された非ネイティブフォーマットコンバータオブジェクト２２４の代わりに使用されて、第２の画像リアライゼーションを生成することができる。しかし、実施形態の一例において、任意のネイティブ変換は、非ネイティブ変換の前に通常実行することができる。例えば、リアライゼーション３０４Ｆを生成するために、ネイティブフォーマットコンバータオブジェクト３０８は非ネイティブスケーラオブジェクトの前に実行することができる。
【００４９】
同様に、第３のリアライゼーション３０４Ｇは、ネイティブデコーダオブジェクト２２０及びネイティブフリップ／ローテータオブジェクト３０６を使用して生成することができる。この例において、ネイティブフリップ／ローテータオブジェクト３０６は、非ネイティブフリップ／ローテータオブジェクト２２６の代わりに使用することができる。第４の画像リアライゼーション４０４Ｈも、ネイティブデコーダオブジェクト２２０、ネイティブフォーマットコンバータオブジェクト３０８及びネイティブフリップ／ローテータオブジェクト３０６を含む全てのネイティブオブジェクトを使用して生成することができる。ネイティブオブジェクト３０８及び３０６が存在するすなわち利用可能であるならば、それらは対応する非ネイティブオブジェクト２２４及び２２６の代わりに各々使用することができる。例えば、画像がデコーダオブジェクト２２０によって処理された後（ネイティブオブジェクト３０６及び３０８によって処理されることを含む）、処理された画像は処理されずに非ネイティブオブジェクト２２４及び２２６を通過することができる（なぜなら、フォーマット変更及び回転は、既にネイティブフォーマットコンバータ３０８及びネイティブフリップ／ローテータオブジェクト３０６によって実行されているからである）。上述の通り、いくつかのケースにおいてネイティブオブジェクトが利用可能な場合、その使用は要求されたネイティブな、例えば画像の再サンプリング及び／または品質の損失のない処理を提供することができる。
【００５０】
このようにして、実施形態の一例に従って、画像の単一のリアライゼーションだけでなく画像の複数のリアライゼーションが生成されて提供される。また、複数のリアライゼーションの生成及び出力は、ネイティブオブジェクトを使用して変換すなわち画像処理を実行して出力画像すなわちリアライゼーションの品質を改善することができる。
【００５１】
代替の実施形態において、システム３００Ｂに適用される変換、変換の順序及びリアライゼーションの数は変化し得る。また、上記の説明は単に例示なので、リアライゼーションの各々も分離して処理される必要はなく、複数のリアライゼーションは同時に処理することができる。代替の実施形態において、複数の画像２０２及び複数の処理コマンド２０６を使用することができる。
【００５２】
図４−図６は、上述で説明された図１、図２及び図３の例に関した並びに／または他の例及びコンテキストに関した動作フローすなわちフローチャートの様々な例を含む。しかし、動作フローは他の環境及びコンテキスト並びに／または図１、図２及び３の変形バージョンにおいて実行され得ることが理解されるべきである。また、様々な動作フローが図示されたシーケンス（群）において示されるが、様々な動作は図示されたものと別の順で実行されても良くまたは並行に実行されても良い。
【００５３】
図４は、１または複数のリアライゼーションを生成するための画像における複数の変換を実行する実施形態の一例に従ったプロセスを示したフローチャートである。開始動作の後、動作フロー４００は受信動作４１０に移動し、そこで画像を受信することができる。例えば、画像プロセッサ１１８は、アプリケーション１１６から画像２０２を受信することができる。実施形態の他の例において、アプリケーション１１６及び画像プロセッサ１１８は、必要ではないが、同一の全体的なシステム２００、アプリケーションまたはデバイスの一部であっても良い。
【００５４】
次いで、受信動作４２０において画像処理コマンド（すなわち処理コマンド）を画像に関して受信することができる。例えば、図２に示されているように、画像プロセッサ１１８はアプリケーション１１６から処理コマンド２０６を受信することができる。処理コマンド２０６は画像２０２と関連し、画像２０２を如何に処理するかを示すことができる。単なる実施形態の一例であるが、例えば、処理コマンド２０６は変換値２１０及び／またはリアライゼーション値２１２を含むことができる。
【００５５】
次いで、実行動作４３０において、画像処理コマンドすなわち処理コマンドに基づいて画像上でネイティブに変換が実行されて、画像の１または複数のリアライゼーションが提供され得る。例えば、図２で示されているように、画像プロセッサ１１８は処理コマンド２０６に基づいて画像における変換を実行して、処理された画像（群）２１４のリアライゼーション（群）２１６、２１８を提供することができる。あるいは図３Ｂに示されているように、画像２０２及び処理コマンド２０６はデコーダ２２０によって受信されて、複数の変換がネイティブフリップ／ローテータオブジェクト３０６及びネイティブフォーマットコンバータオブジェクト３０８によってネイティブに実行された後に、例えば、リアライゼーション３０４Ｇ及び３０４Ｈを含む１または複数のリアライゼーションが提供されても良い。
【００５６】
図５は、実施形態の一例に従った複数の変換を実行するプロセスを示したフローチャートである。開始動作の後、動作フロー５００は受信動作５１０に移動し、そこで画像を受信することができる。例えば、画像プロセッサ１１８はアプリケーション１１６から画像２０２を受信することができる。
【００５７】
次いで、受信動作５２０において、画像処理コマンド（すなわち処理コマンド）を画像に関して受信することができる。例えば、図２に示されているように、処理コマンド２０６は画像プロセッサ１１８によってアプリケーション１１６から受信することができる。処理コマンド２０６は画像２０２と関連し、画像２０２を如何に処理するかを示すことができ、提供すなわち生成されるべき画像の１または複数のリアライゼーションを特定することができる。
【００５８】
その後、実行動作５３０において、画像処理コマンドに基づいて複数の変換が画像上で実行されて複数のリアライゼーションが提供され得る。複数のリアライゼーションの各々は、画像上でネイティブに実行される少なくとも１の変換を含んでも良い。例えば、図３Ｂにおいて示されているように、画像２０２及び処理コマンド２０６はデコーダ２２０によって受信することができる。デコーダオブジェクト２２０が画像をデコーディングした後、フォーマットコンバータ変換がネイティブフォーマットコンバータオブジェクト３０８によって実行され、次いで非ネイティブスケーラ変換が非ネイティブスケーラ２２２によって実行されて第２のリアライゼーション３０４Ｆが生成され得る。代替例として、ネイティブフォーマットコンバータオブジェクト３０８によって実行されるネイティブフォーマット変更は、画像がデコーダ２２０によってデコーディングされると同時に実行することができる。上述したように、ネイティブ変換は非ネイティブ変換に先立って実行することができる。実施形態の一例において、ネイティブ変換は通常任意の順序において実行することができるが、非ネイティブ変換に先立って実行されても良い。非ネイティブ変換も通常は任意の順序において実行することができる。また、第３のリアライゼーション３０４Ｇを生成するために、例えば、画像はデコーダオブジェクト２２０によってデコーディングすることができ、その後または同時に回転変換をネイティブフリップ／ローテータオブジェクト３０６によって画像に実行することができる。従ってこの態様において、例として、複数のリアライゼーションを提供することができ、リアライゼーションの各々はリアライゼーションを生成するために画像に実行された少なくとも１つのネイティブ変換を含むことができる。
【００５９】
図６は、画像に１または複数の変換を実行して１または複数のリアライゼーションを提供するプロセスを示した実施形態のさらに他の例に従ったフローチャートである。開始動作の後、動作フロー６００は受信動作６１０に移動し、そこで画像を受信することができる。その後、受信動作６２０において画像処理コマンドを受信することができる。
【００６０】
その後、判定動作６３０において、画像処理コマンド（すなわち処理コマンド）に基づいて１または複数の変換及び当該変換の配列が判定されて、画像が処理され、画像処理コマンドに従った画像の複数のリアライゼーションが提供される。例えば、画像処理コマンドに基づいて、１または複数の変換（またはオブジェクト）を判定することができる。加えて、変換またはオブジェクトの直列及び／または並列のような配列が画像を処理するために判定され、画像が処理されて画像処理コマンドに従った画像のリアライゼーションが生成され得る。例えば図３Ａにおいて、スケーラオブジェクト２２２及びフォーマットコンバータオブジェクト２２４（デコーダオブジェクト２２０の後）の直列配列を判定して、受信した画像２０２の要求されたリアライゼーション３０４Ｂを生成するために画像を処理することを含むことができる。同様に、この判定は、並列配列及び変換またはオブジェクトの順序を判定し、受信した画像を処理して、例えば３０４Ａ、３０４Ｃ及び３０４Ｄのような要求された他のリアライゼーションを提供することを含んでも良い。
【００６１】
説明された実施例の特定の特徴が本明細書において説明されて示されている一方、多くの変形、追加、変更及び等価物が当業者によって想到され得るであろう。従って、添付の特許請求の範囲は、様々な実施形態の真の趣旨の範囲内にある変形及び変更を包含するように企図されていることが理解されるべきである。
【図１】
0005631590.tif 000002
【図２】
0005631590.tif 000003
【図３Ａ】
0005631590.tif 000004
【図３Ｂ】
0005631590.tif 000005
【図４】
0005631590.tif 000006
【図５】
0005631590.tif 000007
【図６】
0005631590.tif 000008