(57)【特許請求の範囲】
【請求項１】
画像データを領域に分割し、分割した領域ごとに独立に復号可能な圧縮処理を施した符号データを復号する画像処理装置であって、
復号化処理において独立に圧縮された符号に１つの実行スレッドを割り当てる第１のスレッド生成手段と、
復号化処理において独立に圧縮された符号に複数の実行スレッドを割り当てる第２のスレッド生成手段と、
ＣＰＵが同時に１つのスレッドしか実行できない場合、もしくはＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値未満のときは、前記第１のスレッド生成手段の動作を制御し、ＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットの測定結果が所定値以上のときは前記第２のスレッド生成手段の動作を制御する制御手段とを有し、
符号データを画像データに復号する実行命令のうち、少なくとも一部を、前記第１のスレッド生成手段又は前記第２のスレッド生成手段を用いて実行命令を生成することを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記第１のスレッド生成手段及び前記第２のスレッド生成手段の使用の制御を、１つの復号処理の途中で変更することを特徴とする請求項１記載の画像処理装置。
【請求項３】
画像データを領域に分割し、分割した領域ごとに独立に復号可能な圧縮処理を施した符号データを生成する画像処理装置であって、
符号化処理において独立に符号化する符号に１つの実行スレッドを割り当てる第１のスレッド生成手段と、
符号化処理において独立に圧縮化する符号に複数の実行スレッドを割り当てる第２のスレッド生成手段と、
ＣＰＵが同時に１つのスレッドしか実行できない場合、もしくはＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値未満のときは、前記第１のスレッド生成手段の動作を制御し、ＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットの測定結果が所定値以上のときは前記第２のスレッド生成手段の動作を制御する制御手段とを有し、
符号データを画像データに復号する実行命令のうち、少なくとも一部を、前記第１のスレッド生成手段又は前記第２のスレッド生成手段を用いて実行命令を生成することを特徴とする画像処理装置。
【請求項４】
前記制御手段は、前記第１のスレッド生成手段及び前記第２のスレッド生成手段の使用の制御を、１つの復号処理の途中で変更することを特徴とする請求項３記載の画像処理装置。
【請求項５】
圧縮符号がＪＰＥＧ２０００であることを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
画像データを領域に分割し、分割した領域ごとに独立に復号可能な圧縮処理を施した符号データを復号する画像処理方法であって、
ＣＰＵが同時に１つのスレッドしか実行できない場合、もしくはＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値未満のときは復号化処理において独立に圧縮された符号に１つの実行スレッドを割り当てる第１のスレッド生成工程の動作を制御し、
ＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値以上のときは復号化処理において独立に圧縮された符号に複数の実行スレッドを割り当てる第２のスレッド生成工程の動作を制御し、
符号データを画像データに復号する実行命令のうち、少なくとも一部を、前記第１のスレッド生成工程又は前記第２のスレッド生成工程を用いて実行命令を生成することを特徴とする画像処理方法。
【請求項７】
画像データを領域に分割し、分割した領域ごとに独立に復号可能な圧縮処理を施した符号データを生成する画像処理方法であって、
ＣＰＵが同時に１つのスレッドしか実行できない場合、もしくはＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値未満のときは符号化処理において独立に符号化する符号に１つの実行スレッドを割り当てる第１のスレッド生成工程の動作を制御し、
ＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値以上のときは符号化処理において独立に圧縮化する符号に複数の実行スレッドを割り当てる第２のスレッド生成工程の動作を制御し、
符号データを画像データに復号する実行命令のうち、少なくとも一部を、前記第１のスレッド生成工程又は前記第２のスレッド生成工程を用いて実行命令を生成することを特徴とする画像処理方法。
【請求項８】
コンピュータにより、請求項７又は８に記載の画像処理方法を実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法及び該方法を実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体に関し、詳細には画像データの圧縮伸張方法に関し、特に複数のスレッドのそれぞれに含まれる命令を並列に実行可能なプロセッサを用いて画像処理を実行する技術に関する。
【背景技術】
【０００２】
近年、コンピュータ技術の進展に伴い、高速なプロセッサや大容量のメモリ等の様々なハードウェア資源が開発されている。その中の一つに、１つのプロセッサが論理的に複数のプロセッサとして働くことができるようなプロセッサがある。このプロセッサは、複数のスレッドのそれぞれに含まれる命令を並列に実行することが可能である。このようなプロセッサにより、画像処理を行うことにより、画像処理の高速化が期待されている。このような画像処理方法について従来よりいくつか提案がなされている。
【０００３】
その一つとして特許文献１には、画像処理を実行するための複数のスレッドをそのスレッドの実行に用いる処理方法の違いによって、グループに分け、実行する画像処理方法および画像処理プログラムが提案されている。また、特許文献２には、ハーフトーニングに割り当てるプロセッサ数を変化させ、また割り当てるプロセッサを解像度で変化させる画像処理方法、印刷装置、画像処理システムおよび記録媒体が提案されている。
【特許文献１】特開２００５−２５９０４２号公報
【特許文献２】特許第３，７９７，０１３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１、２の画像処理方法は、ＪＰＥＧ２０００のように、並列実行可能な符号と、並列実行が不可能な部分が混在し、かつ処理対象となる符号によって変化するものである場合、適した分割ができず、高速化ができない。つまり、ＪＰＥＧ２０００画像処理方法などに代表される領域ごとに独立に復号可能な符号からなる符号の復号処理は、並列処理可能な部分と、並列処理不可能な部分とが混在しており、処理が複雑であり、高速化は困難であった。
【０００５】
本発明はこれらの問題点を解決するためのものであり、複数のスレッドにそれぞれに含まれる命令を並列に実行可能な画像処理を高速に実行可能とする画像処理装置、画像処理方法及び該方法を実行させるプログラムを格納したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記問題点を解決するために、画像データを領域に分割し、分割した領域ごとに独立に復号可能な圧縮処理を施した符号データを復号する、本発明の画像処理装置は、復号化処理において独立に圧縮された符号に１つの実行スレッドを割り当てる第１のスレッド生成手段と、復号化処理において独立に圧縮された符号に複数の実行スレッドを割り当てる第２のスレッド生成手段と、ＣＰＵが同時に１つのスレッドしか実行できない場合、もしくはＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値未満のときは第１のスレッド生成手段の動作を制御し、ＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットの測定結果が所定値以上のときは第２のスレッド生成手段の動作を制御する制御手段とを有している。そして、本発明の画像処理装置は、符号データを画像データに復号する実行命令のうち、少なくとも一部を、第１のスレッド生成手段又は第２のスレッド生成手段を用いて実行命令を生成することに特徴がある。よって、複数のスレッドにそれぞれに含まれる命令を並列に実行可能な画像処理を高速に実行できる。
【０００７】
また、画像データを領域に分割し、分割した領域ごとに独立に復号可能な圧縮処理を施した符号データを生成する、本発明の画像処理装置は、符号化処理において独立に符号化する符号に１つの実行スレッドを割り当てる第１のスレッド生成手段と、符号化処理において独立に圧縮化する符号に複数の実行スレッドを割り当てる第２のスレッド生成手段と、ＣＰＵが同時に１つのスレッドしか実行できない場合、もしくはＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値未満のときは第１のスレッド生成手段の動作を制御し、ＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットの測定結果が所定値以上のときは第２のスレッド生成手段の動作を制御する制御手段とを有している。そして、本発明の画像処理装置は、符号データを画像データに復号する実行命令のうち、少なくとも一部を、第１のスレッド生成手段又は第２のスレッド生成手段を用いて実行命令を生成することに特徴がある。よって、複数のスレッドにそれぞれに含まれる命令を並列に実行可能な画像処理を高速に実行できる。
【００１３】
また、制御手段は、第１のスレッド生成手段及び第２のスレッド生成手段の使用の制御を、１つの復号処理の途中で変更する。
【００１６】
更に、圧縮符号がＪＰＥＧ２０００であることが好ましい。また、領域のサイズがタイルであることが好ましい。更に、領域のサイズがプレシンクトであることが好ましい。
【００１７】
また、別の発明としての画像処理方法によれば、画像データを領域に分割し、分割した領域ごとに独立に復号可能な圧縮処理を施した符号データを復号する。そして、本発明の画像処理方法は、ＣＰＵが同時に１つのスレッドしか実行できない場合、もしくはＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値未満のときは復号化処理において独立に圧縮された符号に１つの実行スレッドを割り当てる第１のスレッド生成工程の動作を制御し、ＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値以上のときは復号化処理において独立に圧縮された符号に複数の実行スレッドを割り当てる第２のスレッド生成工程の動作を制御し、符号データを画像データに復号する実行命令のうち、少なくとも一部を、第１のスレッド生成工程又は第２のスレッド生成工程を用いて実行命令を生成することに特徴がある。よって、複数のスレッドにそれぞれに含まれる命令を並列に実行可能な画像処理を高速に実行できる。
【００１８】
更に、別の発明としての画像処理方法によれば、画像データを領域に分割し、分割した領域ごとに独立に復号可能な圧縮処理を施した符号データを生成する。そして、本発明の画像処理方法は、ＣＰＵが同時に１つのスレッドしか実行できない場合、もしくはＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値未満のときは符号化処理において独立に符号化する符号に１つの実行スレッドを割り当てる第１のスレッド生成工程の動作を制御し、ＣＰＵが同時に複数のスレッドの一部又は全部を実行可能である場合であってＣＰＵにて実行する命令列のスループットを測定した測定結果が所定値以上のときは符号化処理において独立に圧縮化する符号に複数の実行スレッドを割り当てる第２のスレッド生成工程の動作を制御し、符号データを画像データに復号する実行命令のうち、少なくとも一部を、第１のスレッド生成工程又は第２のスレッド生成工程を用いて実行命令を生成することに特徴がある。よって、複数のスレッドにそれぞれに含まれる命令を並列に実行可能な画像処理を高速に実行できる。
【００１９】
また、別の発明として、コンピュータにより、上記画像処理方法を実行させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体に特徴がある。よって、既存のシステムを変えることなく、画像処理システムを汎用的に構築することができる。
【発明の効果】
【００２０】
本発明の画像処理装置は、符号データを画像データに復号する実行命令のうち、少なくとも一部を、第１のスレッド生成手段又は第２のスレッド生成手段を用いて実行命令を生成する。よって、複数のスレッドにそれぞれに含まれる命令を並列に実行可能な画像処理を高速に実行できる。
【発明を実施するための最良の形態】
【００２１】
図１はＪＰＥＧ２０００エンコーダの構成を示すブロック図である。同図において、入力画像はまずウェーブレット変換（以下ＤＷＴと略す）１０１によりサブバンド分解され、その後量子化部１０２により量子化される。分解レベルが２のとき（解像度レベル数３）のサブバンド分解の例を示す図２のように、ｌｅｖｅｌ０からｌｅｖｅｌ２までの解像度レベルが存在する。このとき、小さい解像度レベルに属する係数ほど低い周波数の情報を含むことになる。量子化されたウェーブレット係数は、ＥＢＣＯＴアルゴリズムにより符号化される。そして、コードプロック分割部１０３において、各サブバンドはコードプロックと呼ばれる正方形のブロック（例えば６４×６４など）に分割される。これらのコードブロックは、それぞれ独立に符号化される。次に、係数モデリング部１０４では、各コードブロックのウェーブレット係数列に対し、ピットプレーンに基づく係数モデリングを行う。これにより、係数ビットが重要度順に並んだエンペデッド符号列を生成する。ＭＳＢからＬＳＢまでのすべてのビットプレーンは、それぞれ文脈に応じて三つのサブビットプレーン（パス）分解される。各サブビットブレーンの境界は打切り点（Ｔｒｕｎｃａｔｉｏｎ ｐｏｉｎｔ）と呼ばれ、後でデータを切り捨てる際の最小の分割単位となる。そして、算術符号化部１０５とレート制御部１０６では、係数モデリングにより生成されたエンベデッド符号列に対して、適応算術符号化を施す。その後、サブビットブレーンの境界である打切り点を単位として、算術符号列を適宜打ち切ることにより、目的のビットレートを得る。次に、レイヤ形成部１０７では、複数の画質で順次表示する必要がある場合、すなわちＳＮＲスケーラブルが必要であるとき、次に符号のレイヤ形成を行う。各レイヤはそれぞれ、各コードブロックのエンベデノド符号の一部を含む。高いレイヤほど画像の再生にあたって重要な成分を含むことになる。そして、パケット生成部１０８は、各レイヤを複数のボディと呼ばれる単位に分解し、それぞれにヘッダ情報を付加してパケットを生成する。ここで各ボディは、それぞれ対応する解像度レベルの情報をもつ。したがって、生成されるパケットの総数は、レイヤ数と解像度レベル数の積となる。ヘッダ情報には、各コードブロックの算術符号列の長さ、サブビットブレーンの個数などの情報が含まれる。図３のように、全てのパケットをまとめ、グローバルヘッダ情報を付加したものが、最終的なＪＰＥＧ２０００の符号列となる。ただし、以上のような各種ヘッダ情報やデータ分割の最小単位であるサブビットプレーンは、１バイトの整数倍のサイズとすることをＪＰＥＧ２０００では規定している。
【００２２】
図４は本発明の一実施の形態に係る画像処理装置の構成を示すブロック図である。同図において、データバス２０１を介して、ＨＤＤ２０２、ＲＡＭ(ＰＣ内)２０３、ＣＰＵ(ＰＣ内)２０４が接続されており、以下の流れで符号データが復号される。ＨＤＤ２０２上に記録された符号データがＣＰＵ２０４からの命令によってＲＡＭ２０３上に読み込まれる。ＣＰＵ２０４はＲＡＭ２０３上の符号を読み込み、復号処理を行う。ＣＰＵ２０４は、復号後のデータをＲＡＭ２０３上の別の領域に書き込む。ＣＰＵ２０４からの命令によって、復号後のデータがＨＤＤ２０２上に記録される。なお、ＣＰＵ２０４は複数のスレッドを並列実行可能なＣＰＵである。
【００２３】
ここで、図５〜図８にＣＰＵ内での実行命令とスレッドの関係を示す。なお、実行する命令を命令０〜命令９とし、ＣＰＵにて並列実行可能なスレッドをTHREAD0〜THREAD4とする。
【００２４】
図５はＣＰＵが同時に１つのTHREADしか実行できない場合の例であるこのようなＣＰＵをシングルスレッドＣＰＵと称す。図６〜図８は並列に４つのTHREADを実行可能なＣＰＵの例である。このようなＣＰＵをマルチスレッドＣＰＵと称す。図６の場合、ＣＰＵは並列に４つのTHREADを実行可能であるが、例えば命令１は命令０の結果を利用するなどの理由により、並列にスレッドを実行できず、復号処理はシングルスレッドＣＰＵと同じになってしまう。図７にTHREADが部分的に、並列実行可能な場合（THREAD５〜８）を示す。マルチスレッド処理を一部実行でき、この場合、３０％の処理時間の短縮が実現できている。図８に全てのTHREADが並列実行可能であった場合の処理の模式図を示す。３命令で全ての処理を終えており、７０％の処理時間の短縮が実現できている。
【００２５】
図９は本発明の第１の実施の形態における画像処理動作の流れを示すフローチャートである。ここでは画像を圧縮した符号データを復号し、画像データを生成するものを示す。同図において、復号処理を実施するＰＣの並列実行可能なスレッド数Ｎを取得する（ステップＳ１０１）。そして、取得したスレッド数Ｎ＞１であるかを判断する（ステップＳ１０２）。Ｎ＞１のときはマルチスレッド処理を実行する（ステップＳ１０２；ＹＥＳ、ステップＳ１０３）。一方、Ｎ≦１のときはシングルスレッド処理を実行する（ステップＳ１０２；ＮＯ、ステップＳ１０４）。終了処理を行う（ステップＳ１０５）。なお、この終了処理は、プログラムの終了処理、生成された画像データの出力などである。必ずしも実行されるものではない。また、シングルスレッド処理は、一般的なアプリケーションプログラムと同様の動作であり、ＣＰＵに動作させる命令列を１ずつ生成し、ＣＰＵに実行させるものである。
【００２６】
次に、マルチスレッド処理の復号動作について当該動作フローを示す図１０に従って説明する。
先ず、マルチスレッド処理の初期化を行う（ステップＳ２０１）。なお、初期設定として、実行中のスレッド数Ｎ１＝０とする。また、復号処理を実行する符号データの、独立に復号可能なデータ単位（例えば、ＪＰＥＧ２０００のタイル）の数ＮＴを算出する。すでに処理した独立な処理単位数ＮＤ＝０とする。次に、ＮＴ及びＮＤから、未処理の独立データ数ＮＮを算出する（ステップＳ２０２）。
ＮＮ＝ＮＴ−ＮＤ
【００２７】
スレッド分割を以下のように実施する。実行中のスレッド数ＮＤと、実行可能スレッド数Ｎから、未使用のスレッドＮＴを算出する。
ＮＴ＝Ｎ−ＮＤ
【００２８】
未処理の独立データ数ＮＮが、ＮＴより大きい場合は、独立データすべてに１つのスレッドで実行する。未処理の独立データ数ＮＮが、ＮＴと同じである場合も、独立データ全てに１つのスレッドで実行する。未処理の独立データ数ＮＮが、ＮＴより小さい場合は、ＮＮ−１個の独立データは１スレッドで実行する。最後の１つの独立データには、複数のスレッドで実行する。実行中のスレッド数Ｎ１、未処理独立データ数ＮＮを更新する（ステップＳ２０３）。
Ｎ１＝Ｎ１＋ＮＴ
ＮＮ＝ＮＮ−ＮＴ
【００２９】
全てのタイルの処理が終了したら、処理を終了する（ステップＳ２０４）。(Ｎ１＝１かつＮＮ＝０)
【００３０】
なお、本実施の形態は一例を示しただけであり、スレッド分割の方法も一例を示しただけである。ＣＰＵで実行する命令列を生成する際に、通常の命令を生成する方法に加え、独立したデータごとに異なるスレッドに分割する方法と、独立した１データ単位を複数のスレッドにする分割する方法と、を備え、それらのスレッド生成方法を用いて、ＣＰＵの種類、数、コアの数、ＰＣのメモリのサイズ、圧縮符号の領域のサイズ、などの条件に応じて、効率よく、実行される命令列を生成することにより、高速化を実現するものである。また、本実施の形態では、必ず第１のスレッド生成手段と、第２のスレッド生成手段とを切り替える方法で説明をしたが、処理速度を考慮した場合に、第１のスレッド生成手段、第２のスレッド生成手段の両方を利用しないほうが、高速であると判断した場合には、通常のスレッド生成手段を利用する。
【００３１】
次に、本実施の形態における画像処理動作の符号化処理について説明する。ここでは、画像を圧縮し、符号データを生成するものである。図９において、符号化処理を実施するＰＣの並列実行可能なスレッド数Ｎを取得する（ステップＳ１０１）。そして、取得したスレッド数Ｎ＞１であるかを判断する（ステップＳ１０２）。Ｎ＞１のときはマルチスレッド処理を実行する（ステップＳ１０２；ＹＥＳ、ステップＳ１０３）。一方、Ｎ≦１のときはシングルスレッド処理を実行する（ステップＳ１０２；ＮＯ、ステップＳ１０４）。終了処理を行う（ステップＳ１０５）。なお、この終了処理は、プログラムの終了処理、生成された符号データの出力などである。必ずしも実行されるものではない。また、シングルスレッド処理は、一般的なアプリケーションプログラムと同様の動作であり、ＣＰＵに動作させる命令列を１ずつ生成し、ＣＰＵに実行させるものである。
【００３２】
次に、マルチスレッド処理の符号動作について図１０に従って説明する。
先ず、マルチスレッド処理の初期化を行う（ステップＳ２０１）。なお、初期設定として、実行中のスレッド数Ｎ１＝０とする。また、符号化処理を実行する画像データの、独立に復号可能なデータ単位（例えば、ＪＰＥＧ２０００のタイル）の数ＮＴを算出する。すでに処理した独立な処理単位数ＮＤ＝０とする。次に、ＮＴ及びＮＤから、未処理の独立データ数ＮＮを算出する（ステップＳ２０２）。
ＮＮ＝ＮＴ−ＮＤ
【００３３】
スレッド分割を以下のように実施する。実行中のスレッド数ＮＤと、実行可能スレッド数Ｎから、未使用のスレッドＮＴを算出する。
ＮＴ＝Ｎ−ＮＤ
【００３４】
未処理の独立データ数ＮＮが、ＮＴより大きい場合は、独立データすべてに１つのスレッドで実行する。未処理の独立データ数ＮＮが、ＮＴと同じである場合も、独立データ全てに１つのスレッドで実行する。未処理の独立データ数ＮＮが、ＮＴより小さい場合は、ＮＮ−１個の独立データは１スレッドで実行する。最後の一つの独立データには、複数のスレッドで実行する。実行中のスレッド数Ｎ１、未処理独立データ数ＮＮを更新する（ステップＳ２０３）。
Ｎ１＝Ｎ１＋ＮＴ
ＮＮ＝ＮＮ−ＮＴ
【００３５】
全てのタイルの処理が終了したら、処理を終了する（ステップＳ２０４）。(Ｎ１＝１かつＮＮ＝０)
【００３６】
なお、本実施の形態は一例を示しただけであり、スレッド分割の方法も一例を示しただけである。ＣＰＵで実行する命令列を生成する際に、通常の命令を生成する方法に加え、独立したデータごとに異なるスレッドに分割する方法と、独立した１データ単位を複数のスレッドにする分割する方法と、を備え、それらのスレッド生成方法を用いて、ＣＰＵの種類、数、コアの数、ＰＣのメモリのサイズ、圧縮符号の領域のサイズ、などの条件に応じて、効率よく、実行される命令列を生成することにより、高速化を実現するものである。また、本実施の形態では、必ず第１のスレッド生成手段と、第２のスレッド生成手段とを切り替える方法で説明をしたが、処理速度を考慮した場合に、第１のスレッド生成手段、第２のスレッド生成手段の両方を利用しないほうが、高速であると判断した場合には、通常のスレッド生成手段を利用する。
【００３７】
図１１は本発明の第２の実施の形態における画像処理動作のマルチスレッド処理の流れを示すフローチャートである。
先ず、マルチスレッド処理の初期化を行う（ステップＳ３０１）。なお、初期設定として、実行中のスレッド数Ｎ１＝０とする。また、復号処理を実行する符号データの、独立に復号可能なデータ単位（例えば、ＪＰＥＧ２０００のタイル）の数ＮＴを算出する。すでに処理した独立な処理単位数ＮＤ＝０とする。制御方法は、分割制御方法記憶手段に記録されている分割制御方法を取得する（ステップＳ３０２）。分割制御方法記憶手段には、Ｕ／Ｉを通じた設定、過去の実績からの設定、デフォルト値の設定、ＣＰＵ種類に対する制御方法、ＣＰＵ数に対する制御方法、ＣＰＵコア数に対する制御方法、タイルサイズごとの制御方法、プレシンクトサイズごとの制御方法、などに多々考えられる。次に、スレッド分割を読み出した分割制御方法に従い実施する（ステップＳ３０３）。全てのタイルの処理が終了したら、処理を終了する（ステップＳ３０４）。未処理の独立データＤに、１スレッドを割り当てとなっている場合は、１つのスレッドで実行する。未処理の独立データＤに、複数のスレッドを割り当てるとなっていた場合は、複数のスレッドで実行する。例えば、実際に２、４などの数が設定されているかもしれない。
【００３８】
次に、図１２は本発明の画像処理方法の各実施例を実行させるプログラムを起動するための具体的な装置の構成を示すブロック図である。つまり、同図は上記実施の形態における画像処理方法によるソフトウェアを実行させるマイクロプロセッサ等から構築されるハードウェアを示すものである。同図において、画像処理システムはインターフェース（以下Ｉ／Ｆと略す）３０１、ＣＰＵ３０２、ＲＯＭ３０３、ＲＡＭ３０４、表示装置３０５、ハードディスク３０６、キーボード３０７及びＣＤ−ＲＯＭドライブ３０８を含んで構成されている。また、汎用の処理装置を用意し、ＣＤ−ＲＯＭなどの読取可能な記録媒体３０９には、本発明の画像処理方法を実行させるプログラムが記憶されている。更に、Ｉ／Ｆ３０１を介して外部装置から制御信号が入力され、キーボード３０７によって操作者による指令又は自動的に本発明のプログラムが起動される。そして、ＣＰＵ３０２は当該プログラムに従って上述の画像処理方法に伴う画像処理を施し、その処理結果をＲＡＭ３０４やハードディスク３０６等の記憶装置に格納し、必要により表示装置３０５などに出力する。以上のように、本発明の画像処理方法を実行させるプログラムが記録した記録媒体を用いることにより、既存のシステムを変えることなく、画像処理システムを汎用的に構築することができる。
【００３９】
なお、本発明は上記実施の形態に限定されるものではなく、特許請求の範囲内の記載であれば多種の変形や置換可能であることは言うまでもない。
【図面の簡単な説明】
【００４０】
【図１】ＪＰＥＧ２０００エンコーダの構成を示すブロック図である。
【図２】ＪＰＥＧ２０００におけるＤＷＴによるサブバンド分解の様子を示す図である。
【図３】ＪＰＥＧ２０００の符号列を示す図である。
【図４】本発明の一実施の形態に係る画像処理装置の構成を示すブロック図である。
【図５】スレッドと命令の関係を示す図である。
【図６】スレッドと命令の関係を示す図である。
【図７】スレッドと命令の関係を示す図である。
【図８】スレッドと命令の関係を示す図である。
【図９】本発明の第１の実施の形態における画像処理動作の流れを示すフローチャートである。
【図１０】マルチスレッド処理の復号動作を示すフローチャートである。
【図１１】本発明の第２の実施の形態における画像処理動作のマルチスレッド処理の流れを示すフローチャートである。
【図１２】本発明の画像処理方法の各実施例を実行させるプログラムを起動するための具体的な装置の構成を示すブロック図である。
【符号の説明】
【００４１】
２０１；バス、２０２；ＨＤＤ、２０３；ＲＡＭ、２０４；ＣＰＵ。
【図１】
0004907487.tif 000002
【図２】
0004907487.tif 000003
【図３】
0004907487.tif 000004
【図４】
0004907487.tif 000005
【図５】
0004907487.tif 000006
【図６】
0004907487.tif 000007
【図７】
0004907487.tif 000008
【図８】
0004907487.tif 000009
【図９】
0004907487.tif 000010
【図１０】
0004907487.tif 000011
【図１１】
0004907487.tif 000012
【図１２】
0004907487.tif 000013