(57)【特許請求の範囲】
【請求項１】
ウエーブレット変換回路と、算術符号化回路と、パケットの生成又は解析を行うパケット生成又は解析回路と、前記ウエーブレット変換回路、前記算術符号化回路、前記パケット生成又は解析回路が書込み及び／又は読出しする情報を格納するメモリと、該メモリの制御を行うメモリアクセスコントローラと、前記ウエーブレット変換回路、前記算術符号化回路、前記パケット生成又は解析回路からの前記メモリコントローラへのメモリアクセス要求を調停するメモリアクセスアービタ回路とを有し、
前記メモリアクセスアービタ回路は、前記ウエーブレット変換回路のアクセスを優先させ、前記ウエーブレット変換回路からのアクセスがないとき、前記算術符号化回路、前記パケット生成又は解析回路からのアクセスを受け付け、
コード化の単位であるコードブロック毎に、タグツリーを使用して、コード化を行う場合、
コードブロックにおけるデータの有無を示すインクルージョンデータを、前記メモリとは別に、内部レジスタに格納させ、前記算術符号化回路により、すべてのコードブロックの算術符号化が終了したときに、前記内部レジスタに格納したインクルージョンの情報を使用してタグツリーを構成する
ことを特徴とする画像処理装置。
【請求項２】
前記ウエーブレット変換回路のアクセスのうち、レベル１の処理のアクセスを優先させてメモリアクセスさせることを特徴とする請求項１記載の画像処理装置。
【請求項３】
コード化の単位であるコードブロック毎にコード化を行う場合、
前記メモリ上に、前記コードブロック毎にポインタ領域を設け、
該ポインタ領域には、当該コードブロックのパケットデータが格納されているメモリのスタートアドレスと、当該コードブロックのデータ長と、当該コードブロックのゼロビットプレーン数と、コーディングパス数とを、前記コードブロック毎に格納し、
当該コードブロックのパケットデータは、前記メモリ上の前記ポインタに格納されているスタートアドレスから、格納されていることを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
ウエーブレット変換回路と、算術符号化回路と、パケット生成又は解析回路と、メモリと、該メモリの制御を行うメモリアクセスコントローラと、前記ウエーブレット変換回路、前記算術符号化回路、前記パケット生成又は解析回路からの前記メモリコントローラへのメモリアクセス要求を調停するメモリアクセスアービタ回路とを有する画像処理装置におけるコード化の単位であるコードブロック毎に、タグツリーを使用して、コード化を行う画像処理方法において、
前記メモリアクセスアービタ回路は、前記ウエーブレット変換回路のアクセスを優先させ、前記ウエーブレット変換回路からのアクセスがないとき、前記算術符号化回路、前記パケット生成又は解析回路からのアクセスを受け付け、
コードブロックにおけるデータの有無を示すインクルージョンデータを、前記メモリとは別に、内部レジスタに格納させ、前記算術符号化回路により、すべてのコードブロックの算術符号化が終了したときに、前記内部レジスタに格納したインクルージョンの情報を使用してタグツリーを構成する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置及び画像処理方法に係り、特に、ＪＰＥＧ２０００等に用いられる画像処理装置及び画像処理方法に関する。
【０００２】
【従来の技術】
図１にＪＰＥＧ２０００の符号化の流れを示す。ＪＰＥＧ２０００の符号化においては、画像データ１は、２次元離散ウエーブレット変換部（ＤＷＴ）１０、量子化器１１、係数モデリング部１２、算術符号器(算術符号化回路)１３、符号形成部(パケットヘッダ生成回路及び符号列生成回路等を含む。)１４の処理を経て、符号データ１５が得られる。図２、図３にこれらの処理を模式的に描いた図を示す。なお、係数モデリング部１２及び算術符号器１３により、エントロピー符号化が行われる。
【０００３】
まず、入力される画像に対して複数レベルの２次元離散ウエーブレット変換を行う。この時、処理する画像をタイルと呼ばれる複数の矩形ブロックに分ける場合が多い。画像を複数のタイルに分割する場合は、後に続く２次元離散ウエーブレット変換、量子化、エントロピー符号化はこのタイルの単位で処理する。図２は、画像データ１を１２８×１２８の大きさのタイルに分割し、レベル２の２次元離散ウエーブレット変換を行った場合の例を示す。１２８×１２８の画像データ（１タイル）は、レベル２の２次元離散ウエーブレット変換１０により、大きさが３２×３２の４つのサブバンド２ＬＬ、２ＨＬ、２ＬＨ、２ＨＨと大きさが６４×６４の３つのサブバンド１ＨＬ、１ＬＨ、１ＨＨのウエーブレット係数データ２１に変換される。なお、１ＬＬ、１ＨＬ、１ＬＨ、１ＨＨはレベル１のサブバンドであり、２ＬＬ、２ＨＬ、２ＬＨ、２ＨＨは、レベル２のサブバンドである。以下、３レベル以上のサブバンドについても同様に表現する。
【０００４】
ＪＰＥＧ２０００では、ウエーブレット変換のフィルタ係数としては、可逆、非化逆の２通りの係数が規定されている。可逆・非化逆を統一的に扱う場合は、可逆のフィルタ係数が用いられ、より高いレート又は良好なひずみ特性を実現する場合は非化逆のフィルタ係数を用いる。
【０００５】
次に、ウエーブレット係数データに対して、次の式によりスカラー量子化が行われる。
ｑ＝ｓｉｇｎ（ａ）×└｜ａ｜／Δｂ┘
ここで、ｓｉｇｎ（ａ）はウエーブレット係数データａの符号、｜a｜はａの絶対値、Δｂはサブバンド毎に決められた量子化ステップ、└  ┘はフロア関数を示す。ただし、可逆ウエーブレット係数を用いた場合は、このスカラー量子化の処理は実施されない。
【０００６】
次に、ウエーブレット変換及び量子化した係数データをコードブロック毎に（サブバンドの大きさが、コードブロックよりも小さい場合は、各サブバンド毎に）エントロピー符号化していく。このエントロピー符号化は、後段の２値算術符号器１３に与えるコンテキストを生成する係数モデリング部１２での処理と、実際に符号化を行う算術符号器１３での処理によりなされる。
【０００７】
図３は、各サブバンド毎にエントロピー符号化した場合におけるサブバンド２ＬＬとその算術符号化器１３の処理を示す。サブバンド２ＬＬは、３２×３２の画像サイズを有し、各点の画像（ウエーブレット変換及び量子化した係数データ）は、（Ｎ＋３）ビットで量子化されている。上面が量子化ビットのＭＳＢで、下面が量子化ビットのＬＳＢである。図３では、上から二つのプレーンには、量子化ビットが存在しない。このプレーンをゼロビットプレーンという。
【０００８】
次に、算術符号器１３での処理手順を示す。
（１）一つのサブバンド(コードブロック毎にエントロピー符号化する場合は、コードブロック)の係数データを符号＋絶対値に変換し、係数絶対値は、ビットプレーンに分割してＭＳＢ側からビットプレーン毎にエントロピー符号化を行う。図３(Ａ)では、２ＬＬのサブバンドの係数絶対値をビットプレーンに分割した様子を示す。
（２）上位から数えて初めて有効なビット（０で無いビット）が出現するビットプレーンまでは、ゼロビットプレーンであるのでエントロピー符号化は行わず、初めて０で無いビットが出現したビットプレーンから、エントロピー符号化を開始する。図３(Ａ)の例では、上位２プレーンがゼロビットプレーンであり、３プレーン目に初めて０で無いビットが出現し、このビットプレーンＮからビットプレーン０までのＮ+１枚のビットプレーンについてエントロピー符号化を行う。
（３）エントロピー符号化を行うビットプレーンに関しては、基本的に１つのビットプレーンを３回スキャンして、符号化する。この符号化のためスキャンする過程をコーディングパスとして、各パスは以下のように呼ばれている。
【０００９】
▲１▼  ｓｉｇｎｉｆｉｃａｎｃｅ  ｐｒｏｐａｇａｔｉｏｎ  ｐａｓｓ
▲２▼  ｍａｇｎｉｔｕｄｅ  ｒｅｆｉｎｅｍｅｎｔ  ｐａｓｓ
▲３▼  ｃｌｅａｎｕｐ  ｐａｓｓ
ビットプレーン上の各ビットは、特定の規則に従って分類され、そのビットの周辺ビットの状態から生成されたコンテキストを用いていずれかひとつのパスで符号化される。
【００１０】
図３(Ｂ)に示すように、最初に符号化するビットプレーンＮは、ｃｌｅａｎｕｐ  ｐａｓｓのみで符号化されるが、それ以降のビットプレーンは、それぞれ上に記した３つのパスで符号化される。すなわち、Ｎ＋１個のビットプレーンが存在する場合、合計３Ｎ＋１回のコーディングパスにより符号化が行われる。
（４）次に、算術符号器１３で、上記の各パスで発生する符号化ビットとそれに対応するコンテキストにより、エントロピー符号を生成する。
こうして生成されたエントロピー符号（ＭＱ符号）は、図１に示す符号形成部１４における処理で、最終のＪＰＥＧ２０００のビットストリームとしてまとめられる。
【００１１】
符号形成部１４では、まず、先の算術符号器１３で生成された各パス単位で発生した符号を、複数パス毎にまとめる。このまとめられた単位をレイヤと呼ぶ。図４では、３Ｎ＋１個のパス毎に算術符号器で生成された符号をレイヤ０からレイヤＬまでのＬ＋１個のレイヤにまとめている様子を示す。例えば、ビットプレーン２ＬＬＮ、ｃ、ビットプレーン２ＬＬＮ−１、ｓ、ビットプレーン２ＬＬＮ−１、ｍをレイヤ０とし、・・・ビットプレーン２ＬＬ０、ｓ、ビットプレーン２ＬＬ０、ｍ、プレーン２ＬＬ０、ｃをレイヤＬとしている。なお、レイヤの選定は、これに限らず実施することができる。
【００１２】
さらに、図５に示すように、サブバンド、レイヤ毎にまとめられた符号を並べて最終のビットストリームが生成される。図５では、２ＬＬのレイヤ０、２ＬＬのレイヤ１、・・・２ＬＬのレイヤＬ、２ＨＬ、２ＬＨ、２ＨＨのレイヤ０、・・・２ＨＬ、２ＬＨ、２ＨＨのレイヤＬ、１ＨＬ、１ＬＨ、１ＨＨのレイヤ０、・・・１ＨＬ、１ＬＨ、１ＨＨのレイヤＬのビットストリームとなる。ビットストリームは、重要なデータ(優先順位の高いデータ)を先に送信するように構成される。なお、レイヤは、任意に設定できる。例えば、すべてを一つのレイヤとしてもよい。
【００１３】
ここで、サブバンド、レイヤ毎のまとまりをパケットと呼び、各パケットは、それぞれのパケットの情報を示すパケットヘッダーと先ほどの算術符号部で生成されたエントロピー符号より成る。例えば、２ＨＬ、２ＬＨ、２ＨＨのレイヤＬ３４は、２ＨＬ、２ＬＨ、２ＨＨのレイヤＬのパケットヘッダー３７と２ＨＬ、２ＬＨ、２ＨＨのレイヤＬのエントロピー符号３８から構成される。したがって、ビットストリームは、１又は複数のパケットにより構成される。なお、各レベル毎に、ＬＬのサブバンドで一つのパケットとし、ＨＬ、ＬＨ、ＨＨのサブバンドで一つのパケットとしている。
【００１４】
ここでは、入力画像データが単色である場合を示したが、複数色（コンポーネント）を有する画像の場合、同様に各色（コンポーネント）毎にサブバンド毎、レイヤ毎のパケットを生成して規定された順番に並べることでＪＰＥＧ２０００のビットストリームを得ることができる。図６には、３色（コンポーネント０、１、２）より成る画像をＪＰＥＧ２０００で符号化した場合のビットストリームの例を示す。
【００１５】
ＪＰＥＧ２０００の符号化方式は、一旦、符号化されたビットストリームを復号することなく符号状態のままで再度圧縮して、必要な圧縮率を得られるという特徴がある。これはこれまでに説明したようにＪＰＥＧ２０００の符号は、パケットと呼ばれるコンポーネント（色成分）、サブバンド（解像度）、レイヤ毎の符号を組み合わせて構成されているため、一旦、符号化を行った後で、その符号の圧縮率が所望の圧縮率より悪ければ、復号した際の画質面からみて優先順位の低いパケットの符号データを順次破棄していくことで、圧縮率を上げる操作が
可能であることによる。
【００１６】
【発明が解決しようとする課題】
従来のＪＰＥＧ２０００の符号化及び復号を行うＪＰＥＧ２０００装置では、エンコード時に算術符号化を行った後の符号データからパケットヘッダを作成する際、ひとつのタイル、又はプリシンクト（ｐｒｅｃｉｎｃｔｓ：領域）、又はサブバンドのパケットデータをあらかじめ求めておき、このデータを用いてパケットヘッダを作成し、全体としての符号データを作成していた。この作業はハードで行うのは非常に煩雑になるため、多くの場合、ソフトウエア処理されていた。
【００１７】
ところで、ソフトで処理する場合、パケットデータは作成された順番にメモリに保持しておき、各パケットのデータ長、ゼロビットプレーン数、コーディングパス数を別途管理し、これらの情報を使用してパケットヘッダを作成していた。しかし、ソフト処理するためには、ＪＰＥＧ２０００システムの中にプロセッサが必要となり、コストが上がる要因になっていた。また、ソフト処理なので、パケットデータの情報を管理する際に、ソフト上のポインタ（構造体）を使用することになり、必ずしもメモリを有効に使用しているとは限らず、ワーク用メモリを多く必要とし、これもコストアップの要因となっていた。
【００１８】
また、ハードウエアで処理を行う場合であっても、ウエーブレット係数と符号データは、別々のメモリを使用する方式が取られてきた。この場合、ハードウエアによる処理の並列化は簡単にできるが、扱う画像サイズが大きくなると、必要なメモリサイズも大きくなり、コストが大きくなるという問題がある。
【００１９】
本発明は、上記問題に鑑みなされたものであり、画像の符号化処理及び／又は復号処理に関する処理におけるメモリに要するコストを削減し、更に、高速処理を可能とすることを目的とするものである。
【００２０】
【課題を解決するための手段】
上記課題を解決するために、本件発明は、以下の特徴を有する課題を解決するための手段を採用している。
【００２１】
請求項１に記載された発明は、ウエーブレット変換回路と、算術符号化回路と、パケットの生成又は解析を行うパケット生成又は解析回路と、前記ウエーブレット変換回路、前記算術符号化回路、前記パケット生成又は解析回路が書込み及び／又は読出しする情報を格納するメモリと、該メモリの制御を行うメモリアクセスコントローラと、前記ウエーブレット変換回路、前記算術符号化回路、前記パケット生成又は解析回路(例えば、パケットヘッダ生成回路、符号列生成回路、符号列解析回路等)からの前記メモリコントローラへのメモリアクセス要求を調停するメモリアクセスアービタ回路とを有し、前記メモリアクセスアービタ回路は、前記ウエーブレット変換回路のアクセスを優先させ、前記ウエーブレット変換回路からのアクセスがないとき、前記算術符号化回路、前記パケット生成又は解析回路からのアクセスを受け付け、コード化の単位であるコードブロック毎に、タグツリーを使用して、コード化を行う場合、コードブロックにおけるデータの有無を示すインクルージョンデータを、前記メモリとは別に、内部レジスタに格納させ、前記算術符号化回路により、すべてのコードブロックの算術符号化が終了したときに、前記内部レジスタに格納したインクルージョンの情報を使用してタグツリーを構成する画像処理装置である。
【００２２】
請求項１に記載された発明によれば、ひとつのメモリにウエーブレット係数と符号データを格納することにより、大容量の安価な外部メモリを１個使用するだけでＪＰＥＧ２０００コーダ等の画像処理装置を実現することができる。
また、請求項１に記載された発明によれば、メモリアクセスアービタでウエーブレット係数処理に関するアクセスを優先させることにより、処理速度が速まり、動画処理におけるリアルタイム処理が実現できる。
また、請求項１に記載された発明によれば、パケットヘッダ用ポインタを構成し、その中にパケットヘッダを構成するのに必要な情報をすべて備え、パケットデータのスタートアドレスで示されるメモリ上にパケットデータを配置する構成を取ることによって、ハードウエアのみでパケットヘッダ生成・解析を行う際に、パケットデータとそのパケットデータに付随する情報を効率よく管理することができ、使用するメモリ量を削減することが可能になる。
【００２５】
請求項２に記載された発明は、請求項１記載の画像処理装置において、前記ウエーブレット変換回路のアクセスのうち、レベル１の処理のアクセスを優先させてメモリアクセスさせることを特徴とする。
【００２６】
請求項２に記載された発明によれば、メモリアクセスアービタでレベル１の処理のアクセスを優先させることにより、効率的な処理が可能となり、動画処理におけるリアルタイム処理が実現できる。
【００２９】
請求項３に記載された発明は、請求項１又は２記載の画像処理装置において、コード化の単位であるコードブロック毎にコード化を行う場合、前記メモリ上に、前記コードブロック毎にポインタ領域を設け、該ポインタ領域には、当該コードブロックのパケットデータが格納されているメモリのスタートアドレスと、当該コードブロックのデータ長と、当該コードブロックのゼロビットプレーン数と、コーディングパス数とを、前記コードブロック毎に格納し、当該コードブロックのパケットデータは、前記メモリ上の前記ポインタに格納されているスタートアドレスから、格納されていることを特徴とする。
【００３０】
請求項３に記載された発明によれば、コードブロックのインクルージョン情報のみメモリとは別に内部レジスタに退避させることにより、パケットヘッダの先頭に配置するタグツリーの生成を高速に容易に行うことができ、動画処理などで必要なリアルタイム性を確保することができる。
【００３１】
請求項４に記載された発明は、ウエーブレット変換回路と、算術符号化回路と、パケット生成又は解析回路と、メモリと、該メモリの制御を行うメモリアクセスコントローラと、前記ウエーブレット変換回路、前記算術符号化回路、前記パケット生成又は解析回路からの前記メモリコントローラへのメモリアクセス要求を調停するメモリアクセスアービタ回路とを有する画像処理装置における画像処理方法において、前記メモリアクセスアービタ回路は、前記ウエーブレット変換回路のアクセスを優先させ、前記ウエーブレット変換回路からのアクセスがないとき、前記算術符号化回路、前記パケット生成又は解析回路からのアクセスを受け付けることを特徴とする画像処理方法である。
【００３２】
請求項４に記載された発明は、請求項１〜３記載の画像処理装置に適した画像処理方法を提供することができる。
【００３３】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。図７は、本実施の形態におけるＪＰＥＧ２０００の符号化処理回路４０である。
（符号化処理回路）
図７の符号化処理回路４０は、ＤＣシフト・ＲＣＴ（Ｒｅｖｅｒｓｉｂｌｅ  ｃｏｍｐｏｎｅｎｔ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ）変換回路４１、離散ウエーブレット変換回路（ＤＷＴ回路）４２、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）４８〜５３、算術符号化回路（ＭＱ回路であり、ここでは、係数モデリング部を含むものとしている。）４３、パケットヘッダ生成回路４４、符号列生成回路４５、メモリアクセスアービタ４６、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＲＡＭ）コントローラ４７、ＳＤＲＡＭ５５から構成されている。
【００３４】
ＤＣシフト・ＲＣＴ変換回路４１におけるＤＣシフトは、符号無しで入力された画像データ（イメージ入力）のレベルをシフトして、０を中心に振幅変動する画像データに変換して、ＲＣＴ変換回路、ＤＷＴ回路４２に入力するものである。ＤＣシフト・ＲＣＴ変換回路４１におけるＲＣＴ変換は、ＲＧＢ（赤・緑・青）データをＹＣｂＣｒ（輝度成分・色差成分）データに変換する。ＤＷＴ回路４２は、図１のＤＷＴ部１０で説明した２次元離散ウエーブレット変換を行う。なお、この処理の詳細は後述する。ＤＭＡＣ４８〜５３は、ＤＷＴ回路４２、ＭＱ回路４３、パケットヘッダ生成回路４４、符号列生成回路４５が、ＤＭＡ転送を行うためのＤＭＡコントローラである。ＭＱ回路４３は、算術符号処理を行う。パケットヘッダ生成回路４４は、ＭＱ回路４３で生成されたパケットデータに対して、パケットヘッダを生成する。符号列生成回路４５は、ＭＱ回路４３で生成された算術符号化後のパケットデータ及びパケットヘッダ生成回路４４で生成されたパケットヘッダ等からビットストリームを生成して、出力する（符号出力）。
【００３５】
メモリアクセスアービタ４６は、ＤＷＴ回路４２、ＭＱ回路４３、パケットヘッダ生成回路４４、符号列生成回路４５からのＳＤＲＡＭコントローラへ４７のメモリアクセス要求を調停する。ＳＤＲＡＭコントローラ４７は、ＳＤＲＡＭ５５の書込み及び読出しを制御する。ＳＤＲＡＭ５５には、符号化処理回路装置で共有するひとつのメモリであり、ウエーブレット係数、算術符号化後のパケットデータ、パケットデータ解析用のポインタ情報等を格納する。
【００３６】
図７の符号化処理回路４０にイメージ入力信号が入力され、符号化されたビットストリームが、符号化処理回路４０から出力される。
（復号処理回路）
図８は、本実施の形態におけるＪＰＥＧ２０００の復号処理回路６０である。
【００３７】
図８の復号処理回路６０は、ＤＣシフト・ＲＣＴ変換回路６１、ＤＷＴ回路６２、ＤＭＡＣ６５〜６９、ＭＱ回路６３、符号列解析回路６９、メモリアクセスアービタ４６、ＳＤＲＡＭコントローラ４７、ＳＤＲＡＭ５５から構成されている。ＤＣシフト・ＲＣＴ変換回路６１は、図１の符号化処理回路のＤＣシフト・ＲＣＴ変換回路４１の逆の処理を行う。つまり、シフトしたレベルを元に戻す。ＤＷＴ回路６２は、図１の符号化処理回路のＤＷＴ回路４１の逆の処理を行う。つまり、２次元離散ウエーブレット逆変換を行う。ＤＭＡＣ６５〜６９は、図１の符号化処理回路のＤＭＡＣ４８〜５３と同じく、ＤＷＴ回路６２、ＭＱ回路６３、符号列解析回路６４が、ＤＭＡ転送を行うためのＤＭＡコントローラである。ＭＱ回路６３は、図１の符号化処理回路のＭＱ回路４３の逆の処理を行う。つまり、算術復号を行う。符号列解析回路６９は、受信したビットストリームの符号列を解析して、パケットデータ及びパケットヘッダを出力する。
【００３８】
メモリアクセスアービタ４６、ＳＤＲＡＭコントローラ４７、ＳＤＲＡＭ５５は、図１の符号化処理回路のもと同じである。
【００３９】
なお、ＤＣシフト・ＲＣＴ変換回路６１、ＤＷＴ回路６２、ＤＭＡＣ６５〜６８、ＭＱ回路６３は、それぞれ、図１の符号化処理回路のＤＣシフト・ＲＣＴ変換回路４１、ＤＷＴ回路４２、ＤＭＡＣ４８〜５１、ＭＱ回路４３と一体に構成してもよい。
【００４０】
図８の符号化処理回路６０にビットストリームである符号が入力され、符号化処理回路６０から復号されたイメージ信号が出力される。
（ＤＷＴ変換：エンコード）
図７において、ＤＣシフト・ＲＣＴ変換回路４１からの出力に対して、ＤＷＴ回路４２は、２次元離散ウエーブレット変換を行う。
【００４１】
ウエーブレット変換を行う場合、最初に場面全体に対して、垂直成分と水平成分に対してそれぞれハイパスフィルタとローパスフィルタをかけて１／２のデータにした結果を４個出力する。この結果を並べた結果を図９に示す。ここで、１ＬＬはウエーブレット変換レベル１の垂直方向ローパス、水平方向ローパス成分を示し、１ＨＬはウエーブレット変換レベル１の垂直方向ハイパス、水平方向ローパス成分を示し、１ＬＨはウエーブレット変換レベル１の垂直方向ローパス、水平方向ハイパス成分を示し、１ＨＨは垂直方向ハイパス、水平方向ハイパス成分を示す。
【００４２】
ＪＰＥＧ２０００で規定されているウエーブレット変換は、Ｒ５：３フィルタとＩＲ９：７フィルタがある。ここでは、Ｒ５：３フィルタの説明を行う。Ｒ５：３フィルタの処理を図１５の構成例に基づいて説明する。
【００４３】
図１５に示すウエーブレット変換のエンコード装置は、ラインバッファ８２」〜８４、ハイパス処理を行うハイパス処理回路７６〜７８、ローパス処理を行うローパス処理回路７９〜８１、クロック端子を有するフリップフロップ回路８５〜９０、入力端子７１及び出力端子７２〜７５から構成されている。
【００４４】
ラインバッファ８２には、図１６（Ａ）に示されているように、入力されたタイルの最初の１ライン分のデータＸ（０）が順次蓄積される。ラインバッファ８３には、図１６（Ｂ）に示されているように、タイルの２ライン目の１ライン分のデータＸ（１）が順次蓄積される。また、入力されたタイルの３番目の１ライン分のデータＸ（３）は、ラインバッファ８２に蓄積され、入力されたタイルの４番目の１ライン分のデータＸ（４）は、ラインバッファ８３に蓄積される。なお、入力されたタイルの３番目の１ライン分のデータＸ（３）が、ラインバッファ８２に蓄積されるとき、ラインバッファ８２からは、蓄積の直前に、最初の１ライン分のデータＸ（０）が読み出されて、ローパス処理回路７９に供給される。以下同様のタイミングで、データＸ（２）、Ｘ（４)、、、が順次読み出されて、ローパス処理回路７９に供給される。
【００４５】
以下、入力されたタイルの奇数番目の１ライン分のデータは、ラインバッファ８２に蓄積され、入力されたタイルの偶数番目の１ライン分のデータは、ラインバッファ８３に蓄積される。
【００４６】
次に、ハイパス処理回路７６及びローパス処理７９によるレベル１の垂直処理について説明する。
【００４７】
ハイパス処理回路７６は、データＸ（０）、データＸ（１）及びデータＸ（２）に基づいて、
Ｙ（１）＝Ｘ（１）−［（Ｘ（０）＋Ｘ（２））／２］          ・・・・（１）
の処理を行う。このデータＹ（１）は、ラインバッファ８４、フリップフロップ回路８７及びローパス処理回路７９に順次供給される。
【００４８】
図１６（Ｃ）に示されているように、このデータＹ（１）が、入力されたタイルデータを垂直方向で周波数領域に変換したときの、第１番目のハイパス成分である。
【００４９】
同様にして、ハイパス処理回路７６は、データＸ（２）、データＸ（３）及びデータＸ（４）に基づいて、
Ｙ（３）＝Ｘ（３）−［（Ｘ（２）＋Ｘ（４））／２］          ・・・・（２）
の処理を行う。このデータＹ（３）は、データＹ(１)と同様に、ラインバッファ８４、フリップフロップ回路８７及びローパス処理回路７９に順次供給される。
【００５０】
図１６（Ｅ）に示されているように、このデータＹ（１）が、入力されたタイルデータを垂直方向で周波数領域に変換したときの、第２番目のハイパス成分である。
【００５１】
以下順に、Ｙ(５)、Ｙ(７)、、、、Ｙ(１２７)を作成する。
【００５２】
ローパス処理回路７９は、データＸ（０）、データＹ（−１）及びデータＹ（１）に基づいて、
Ｙ（０）＝Ｘ（０）−［（Ｙ（−１）＋Ｙ（１）＋２）／４］      ・・・・（３）
の処理を行う。このデータＹ（０）は、フリップフロップ回路８５及びハイパス処理回路７７に順次供給される。
【００５３】
図１６（Ｃ）に示されているように、このデータＹ（０）が、入力されたタイルデータを周波数領域に変換したときの、第１番目のローパス成分である。
【００５４】
同様にして、ローパス処理回路７９は、データＸ（２）、データＹ（１）及びデータＹ（３）に基づいて、
Ｙ（２）＝Ｘ（２）−［（Ｙ（１）＋Ｙ（３）＋２）／４］      ・・・・（４）
の処理を行う。このデータＹ（２）は、フリップフロップ回路８５及びハイパス処理回路７７に順次供給される。
【００５５】
このデータＹ（２）は、データＹ(０)と同様に、フリップフロップ回路８５及びハイパス処理回路７７に順次供給される。
【００５６】
図１６（Ｅ）に示されているように、このデータＹ（１）が、入力されたタイルデータを垂直方向で周波数領域に変換したときの、第２番目のハイパス成分である。
【００５７】
以下順に、Ｙ(４)、Ｙ(６)、、、、Ｙ(１２６)を作成する。
【００５８】
次に、ハイパス処理回路７７、７８及びローパス処理８０、８１によるレベル１の垂直処理に連続して行なわれるレベル１の水平処理について説明する。
【００５９】
ローパス処理回路７９により、図１７（Ａ）に示す１ライン目における第１番目の垂直方向の低周波数成分Ｙ(０、０)が生成され、フリップフロップ回路８５に供給される。同様に、ローパス処理回路７９により、図１７（Ｂ）に示す１ライン目の垂直方向の第２番目の低周波数成分Ｙ(０、１)、１ライン目の垂直方向の第３番目の低周波数成分Ｙ(０、２)、、、が生成され、フリップフロップ回路８５に供給される。なお、フリップフロップ回路８５は、データが入力されるタイミングで、それまでのデータをフリップフロップ回路８６に供給する。同様に、フリップフロップ回路８６〜９０は、データが入力されるタイミングで、それまでのデータを出力する。
【００６０】
ハイパス処理回路７７は、データＹ(０、０)、データＹ(０、１)、及びデータＹ(０、２)に基づいて、
Ｚ（１）＝Ｙ（０、１）−［（Ｙ（０、０）＋Ｙ（０、２））／２］      ・・（５）
の処理を行う。このデータＺ（１）は、フリップフロップ回路８９及びローパス処理回路８０に供給される。
【００６１】
図１７（Ｃ）に示されているように、このデータＺ（１）が、１ライン目の垂直方向の低周波数成分の、水平成分の第１番目のハイパス成分である。
【００６２】
同様にして、ハイパス処理回路７７は、データＹ(０、２)、データＹ(０、３)、及びデータＹ(０、４)に基づいて、
Ｚ（３）＝Ｙ（０、３）−［（Ｙ（０、２）＋Ｙ（０、４））／２］      ・・（６）
の処理を行う。このデータＺ（３）は、フリップフロップ回路８９及びローパス処理回路８０に供給される。
【００６３】
図１７（Ｅ）に示されているように、このデータＺ（３）が、１ライン目の垂直方向の低周波数成分の、水平成分の第２番目のハイパス成分である。
【００６４】
以下順に、Ｚ(５)、Ｚ(７)、、、、Ｚ(１２７)を作成する。
【００６５】
また、同様に、２ライン目の以下の、垂直方向の低周波数成分の、水平成分のハイパス成分を作成する。その結果、端子７３から１ＬＨデータが得られる。
【００６６】
同様に、垂直方向の高周波数成分であるデータＹ(１)、データＹ(３)、、、、データＹ(１２７)について、フリップフロップ回路８７、８８及びハイパス処理回路７８が、ハイパス処理を行って、端子７５から１ＨＨデータが得られる。
【００６７】
ハイパス処理回路７７により、図１７（Ａ）に示す１ライン目の垂直方向の高周波数成分Ｙ(１、０)が生成され、フリップフロップ回路８９及びローパス処理回路８０に供給される。
【００６８】
ローパス処理回路８０は、データＹ(０、０)、データＺ(−１)及びデータＺ(１)に基づいて、
Ｚ（０）＝Ｙ（０、０）−［（Ｚ（−１）＋Ｚ（１）＋２）／４］      ・・（７）
の処理を行う。なお、データＺ(−１)は、ミラー成分としてデータＺ(１)が使用される。
【００６９】
図１７（Ｃ）に示されているように、このデータＺ（０）が、１ライン目の垂直方向の低周波数成分の、水平成分の第１番目のローパス成分である。
【００７０】
同様にして、ローパス処理回路８０は、データＹ(０、２)、データＺ(１)及びデータＺ(３)に基づいて、
Ｚ（２）＝Ｙ（０、２）−［（Ｚ（１）＋Ｚ（３）＋２）／４］      ・・（８）
の処理を行う。なお、データＺ(−１)は、ミラー成分としてデータＺ(１)が使用される。
【００７１】
図１７（Ｅ）に示されているように、このデータＺ（２）が、１ライン目の垂直方向の低周波数成分の、水平成分の第２番目のローパス成分である。
【００７２】
以下順に、Ｚ(４)、Ｚ(６)、、、、Ｚ(１２６)を作成する。
【００７３】
また、同様に、２ライン目の以下の、垂直方向の低周波数成分の、水平成分のローパス成分を作成する。その結果、端子７２から１ＬＬデータが得られる。
【００７４】
同様に、フリップフロップ回路９０及びローパス処理回路８１により、１ＨＬデータが作成され、端子７５から１ＨＬデータを得ることができる。
【００７５】
なお、図１５の回路は、データの流れに即して、イネーブル信号を伝播させるものであり、データフロー型パイプライン制御が行なわれている。
【００７６】
また、図１５の回路は、データフロー内の有効期間は全てマスタークロックで２クロックである。この２クロックの内、演算処理は必ず後半クロックで行う。
【００７７】
また、ラインバッファ処理するときは、前サイクルでパイプラインリードを開始し、後半クロックでライトを行う。ラインバッファは、２ポートＲＡＭを使用するのではなく、時分割処理するので、一つのデータ処理には必ず２クロック必要となる。また、ラインバッファ８２、８４は、データを出力しながら新しいデータを入力している。
【００７８】
また、ワークメモリへのライトを２クロックで１データ処理するので、全てのフィルタに入力されるタイミングは、回路全体で管理する必要がある。
【００７９】
このような構成により、入力端子７１に印加されたタイル入力データについて、最初に水平方向のハイパスフィルタ処理を行い、その結果を用いて水平方向のローパスフィルタの処理を行う。同様にして、水平方向のハイパスフィルタの処理結果を用いて、垂直方向のハイパスフィルタおよび垂直方向のローパスフィルタ処理をそれぞれ行い、また、水平方向のローパスフィルタの処理結果を用いて垂直方向のハイパスフィルタおよび垂直方向のローパスフィルタ処理をそれぞれ行う。その結果、端子７２、７３、７４、７５から、図９に示されているように、ウエーブレット変換された１ＬＬ、１ＬＨ、１ＨＬ、１ＨＨの４種類の成分に分割されたウエーブレット係数が得られる。
【００８０】
この１ＬＬのウエーブレット係数に対して、１レベルの処理と同じようにウエーブレット変換を行うと図１０に示すように２レベルのウエーブレット係数を得ることができる。同様に、図１０の２ＬＬに対してウエーブレット変換を行うことで図１１に示すように３レベルのウエーブレット係数を得ることができる。同様にして、図１１の３ＬＬのウエーブレット係数に対してウエーブレット変換を行うことで、図１２に示すような４レベルのウエーブレット係数を得ることができる。同様にして、図１２の４ＬＬのウエーブレット係数に対してウエーブレット変換を行うことで、図１３に示す５レベルのウエーブレット係数を得ることができる。図１４に、最終的なウエーブレット変換のエンコードの結果を示す。
【００８１】
図１８により、図１５に示すウエーブレット変換のエンコード装置におけるハイパス処理回路の例を説明する。
【００８２】
図１８のハイパス処理回路は、ハイパス処理及びその逆変換を行う。図１８のハイパス処理回路は、マルチプレクサ１００〜１０４、加算器１０５、１０６、反転回路１０７、クロック端子を有するフリップフロップ回路１０８、端子１１０〜１２３を有している。
【００８３】
式(１)のハイパス処理演算を行う場合は、端子１１４にデータＸ（０）が供給され、端子１１５にデータＸ（２）が供給され、端子１２２にデータＸ（１）が供給される。このとき、マルチプレクサ１００〜１０３は、端子１１２に印加されたコード・デコード切替え信号に基づいて、端子１１４、端子１１５、端子１２２からのデータを選択する。また、マルチプレクサ１０３は、端子１１２に印加されたコード・デコード切替え信号に基づいて、反転回路１０７からの信号を選択する。
【００８４】
なお、端子１１０、１１１には、境界処理用のミラーデータが供給される。また、端子１１３には、演算イネーブル信号が印加され、加算器１０６の信号はこの演算イネーブル信号が印加された時点の信号にラッチされる。
【００８５】
図１９に、図１５に示すウエーブレット変換のエンコード装置におけるローパス処理回路の例を示す。
【００８６】
図１９のローパス処理回路は、ローパス処理及びその逆変換を行う。図１９のローパス処理回路は、マルチプレクサ２００〜２０４、加算器２０５、２０６、２２４、反転回路２０７、クロック端子を有するフリップフロップ回路２０８、端子２１０〜２２３を有している。
【００８７】
式(１)のローパス処理演算を行う場合は、端子２１４にデータＹ（−１）が供給され、端子２１５にデータＹ（１）が供給され、端子２２２にデータＸ（０）が供給される。このとき、マルチプレクサ２００〜２０３は、端子２１２に印加されたコード・デコード切替え信号に基づいて、端子２１４、端子２１５、端子２２２からのデータを選択する。また、マルチプレクサ２０３は、端子２１２に印加されたコード・デコード切替え信号に基づいて、反転回路２０７からの信号を選択する。
【００８８】
なお、端子２１０、２１１には、境界処理用のミラーデータが供給される。また、端子２１３には、演算イネーブル信号が印加され、加算器２０６の信号はこの演算イネーブル信号が印加された時点の信号にラッチされる。
【００８９】
以上のようにして複数レベルのウエーブレット係数を求めるが、このとき、すべてのウエーブレット係数を一度バッファに格納しておく必要がある。また、特に１レベルのウエーブレット係数を求めるときに、ウエーブレット係数を対比するメモリ処理が忙しいために、入力イメージにウエイトが必要になる場合があると、入力データによってはウエイトをかけてしまうとデータが失われてしまう場合がある。このため、少なくとも１レベルのウエーブレット変換処理を行う場合は、特に動画処理の場合は、入力画像がくるスピード以内で処理を完了させる必要がある。このとき、図７に示すように、ひとつのメモリでウエーブレット係数と符号メモリを共有させる場合、ウエーブレット係数処理のアクセスの優先順位を高める必要がある。そして特に、１レベルのウエーブレット処理のメモリアクセスの優先順位を高める必要がある。
（ＤＷＴ変換：デコード）
ウエーブレット変換のエンコード装置を説明するための図である図１５に対応するウエーブレット変換のデコード装置の例を図２０に示す。
【００９０】
また、図２１に、ウエーブレット変換のデコード垂直方向処理を説明するための図を示し、図２２に、ウエーブレット変換のデコード水平方向処理を説明するための図を示す。図２１及び図２２は、ウエーブレット変換のエンコード垂直方向処理を説明するための図１６と、ウエーブレット変換のエンコード水平方向処理を説明するための図１７に対応する。また、図２０〜図２２は、図１５〜図１７のウエーブレット変換のエンコード装置の例に準じて説明できるので、これらの説明は省略する。
（パケットデータの格納）
また、ＪＰＥＧ２０００における算術符号化の詳細な説明はここでは行わない。算術符号化は、ウエーブレット係数上のＬＬ、ＨＬ、ＬＨ、ＨＨのサブバンド単位で行うが、処理範囲が大きくなるために、ＪＰＥＧ２０００ではコードブロックという単位で処理を行うようになっている。コードブロックサイズがたとえば６４×６４と決めると、サブバンドのサイズが６４×６４より小さいときは、サブバンドのサイズで処理を行い、サブバンドのサイズがコードブロックより大きい場合は、サブバンドをコードブロックの大きさで分割し、コードブロック単位で符号化を行う。イメージサイズが２０４８×２０４８で５レベルまでウエーブレット変換を行い、コードブロックサイズが６４×６４の場合の例を図２３に示す。この場合、１レベルから５レベルまでのサブバンドのサイズは１０２４、５１２、１２８、６４、３２となり、１から３レベルまではサブバンドサイズがコードブロックより大きいので、これらのサブバンドはコードブロックサイズで分割され、４レベルと５レベルに関してはサブバンドの大きさがコードブロックサイズと同じか小さいのでサブバンドの分割は行われていない。算術符号化はこのようにコードブロックサイズとサブバンドのどちらか小さいほうのサイズで行われる。
【００９１】
また、上述したように、算術符号化を行うことで、符号データが生成される。これを符号列生成することでＪＰＥＧ２０００の符号データが作成される。ＪＰＥＧ２０００ではコードブロックごとの符号データをパケットと呼び、ひとつのパケットに対して、パケットヘッダを付加するようになっている。パケットの単位は、ＬＬサブバンドで１パケットを構成し、それ以外はＨＬ、ＬＬ、ＨＨの３つのサブバンドをまとめて一つのパケットとして扱う。
【００９２】
本実施の形態では、パケットデータの長さとスタートアドレスを示したポインタを使用してデータの管理を行う。パケットの単位はサブバンド、コードブロック、プリシンクト、レイヤで決まる。ひとつのパケットには１レイヤのＬＬ又はＨＬ、ＬＨ、ＨＨのサブバンド成分が含まれる。ただし、プリシンクトサイズがサブバンドより小さい場合、パケットはプリシンクトのサイズで区切られる。パケットの単位は上記の方法で決まるが、各コードブロックの各レイヤの情報はパケットヘッダ生成に使用される。ＭＱ符号化を行った後、コードブロック、レイヤ、コンポーネント、レベルの符号データに対して、識別子を付け、スタートアドレス、データ長、ゼロビットプレーン数、コーディングパス数をポインタに格納した後、設定されたスタートアドレスから符号データを格納する。パケットデータ用ポインタの例を図２４に示す。図２４の例では、アドレスが３２ビット(４バイト)、データ長が１６ビット(２バイト)、ゼロビットプレーン数とコーディングパス数がそれぞれ８ビット(１バイト)で構成されている。また、図２４のパケットポインタとパケットデータのメモリマッピングの例を、図２５に示す。
【００９３】
各コードブロック、各レイヤのポインタがどこになるかはポインタアドレスで管理されている。各コードブロック、各レイヤのポインタはＭＱコーダの処理順に配列する。ＭＱコーダの処理順（０〜２５８）の例を図２３に示す。図２３の例ではあるひとつのコンポーネントの、２０４８×２０４８のフレームデータに対して、５レベルのウエーブレット変換を行い、コードブロックサイズが６４×６４の場合を示している。各コードブロック、各レイヤにデータが無い場合にもポインタは配置する。
【００９４】
ウエーブレット変換のエンコード装置は、１フレームの符号処理が完了すると、パケットヘッダの生成を開始する。各コードブロックの各レイヤのポインタ内にパケットヘッダを生成するのに必要な情報が含まれている。パケットヘッダを作るときは、パケットデータのインクルージョンを最初に決める。パケットヘッダのインクルージョンを求める場合、ＪＰＥＧ２０００ではタグツリーという概念をとっている。タグツリーを使用すると、コードブロック内にデータが含まれないときにパケットヘッダに使用するビット数を省略できる場合がある。しかし、タグツリーを作る作業は煩雑で、パケット内のすべてのコードブロックの情報が揃わないとツリーが完成しない。
【００９５】
次に、パケットヘッダのインクルージョンを決める方法を説明する。
（１）対象となるサブバンド内のコードブロックの配置を確認する。ひとつのパケットに含まれるコードブロックの数はプリシンクトサイズによって決定される。一般的には、図２３のように、プリシンクトサイズは一番大きいサブバンドより大きく設定される。しかし、図２６のように、サブバンドの大きさよりプリシンクトサイズが小さい場合、パケットはプリシンクト内のコードブロックで構成される。
（２）ひとつのサブバンド内に１つ以上のコードブロックが含まれる場合、図２７に示すように、タグツリーを使用する。タグツリーは最大４個のコードブロック又はタグから構成されている。サブバンド内のデータが多くなるとタグツリーの段数も増えていく。
(３)ひとつのサブバンド、又はプリシンクトにおけるトップのタグにデータがない場合、そのサブバンド、又はプリシンクトにデータがひとつも含まれないことになる。パケットはＬＬ成分以外はＨＬ、ＬＨ、ＨＨ成分で構成されている。ＬＬ成分においてトップのタグにデータがない場合はパケットにデータがないことを示す(Ｎｏ  ｐａｃｋｅｔ)。その他のサブバンドの場合、ＨＬ、ＬＨ、ＨＨすべての成分のトップのタグにデータがない場合にパケットにデータがないことになる。それ以外の場合は、パケットに有効なデータが含まれることを示す。
(４)パケットのインクルージョンは、最初にパケットインクルージョンを示すために１ビット使用する。このビットに１が立っているときはパケットにデータがあることを示す。このビットが０の時はパケット内にデータがない状態を示す。
(５)次に、パケット内のコードブロックのインクルージョンをラスタ順に調べていく。このとき、ＬＬ成分以外のパケットはＨＬ、ＬＨ、ＨＨのサブバンドの順番でコードブロックのインクルージョンを調べていく。
(６)コードブロックのインクルージョンを調べる方法は、最初のコードブロックに関連するタグをトップから順番に並べていく。図２７を例にとって説明する。図２７はＨＬ成分のサブバンドを表している。最初に、パケット内のデータの有無を調べるビットの後に、コードブロック６７のインクルージョンを調べる。コードブロック６７のインクルージョンを調べる前に、コードブロック６７はタグ１０００に属しているので、タグ１０００を先に調べる。しかし、タグ１０００はタグ１１００に属しているので、タグ１１００を先に調べる。しかし、タグ１１００はタグ１２００に属しているのでタグ１２００を先に調べる。このようにして、コードブロック６７のインクルージョンを調べるときはコードブロック６７に関連するタグをトップから順に調べることになる。このとき、トップのタグ１２００が０の時、サブバンドＨＬのすべてのコードブロックにデータが無いことを示しているのでコードブロック６７から１３０までデータがないことを示すことになる。この場合、パケットは次にサブバンドＬＨのコードブロックのインクルージョンを調べることになる。もし、タグ１２００が１でサブバンドにデータがあることが示されている場合、次にタグ１１００を調べる。タグ１１００が０の場合、このタグに関連するコードブロックすべてにデータがないことを示すので、次にコードブロック７１のインクルージョンを調べることになる。タグ１１００が１でデータがあることを示していると、次にタグ１０００を調べる。タグ１０００が０でデータがないことを示していると、関連するコードブロックにデータがないことを示すので、次にコードブロック６９のインクルージョンを調べることになる。タグ１０００が１でデータがある場合、初めてコードブロック６７のインクルージョンを調べることになる。このようにして、各コードブロックのインクルージョンを調べていく。
(７)コードブロック６７のインクルージョンが１でパケットヘッダを作成した後、コードブロック６８のインクルージョンを調べる。このとき、コードブロック６８に関連するタグ１２００、１１００、１０００は、すでに調べられているので、このときはコードブロック６８のインクルージョンを直接調べる。次に、コードブロック６９のインクルージョンを調べる場合、タグ１２００、１１００は、既に調べられているが関連するタグ１００１がまだ調べられていないので、タグ１００１を調べてからコードブロック６９のインクルージョンを調べることになる。
(８)図２８にタグツリーを使用したときのインクルージョン構成例を示す。最初タグ１２００を見る。この場合はタグにデータがあるので、このサブバンドにデータがあることを示している。(図２８(Ａ))。次に、ひとつ下の階層のタグ１１００、１１０１、１１０２、１１０３を調べる(図２８(Ｂ))。タグ１１００、１１０３にはデータがあるが１１０１、１１０２にはデータがないとする。この場合、タグにデータがない部分に関連するコードブロックにはすべてデータがないことがわかる。次に、データがある部分のタグの下を調べる。この場合、タグ１１００の下には１０００、１００１、１００２、１００３があるがこのうち１０００、１００１、１００２にデータがあるが１００３にデータがないとする。また、タグ１１０３の下にも１０１２、１０１３、１０１４、１０１５のタグがあるがこのうち１０１３、１０１４にデータがあるが１０１２、１０１５のタグにはデータがないとする。次にデータがあるタグの下を調べる(図２８(Ｄ)。この場合、タグの下にはコードブロックになるので、各コードブロックのインクルージョンを調べることになる。タグツリーを使用することで、データがないコードブロックひとつに対して、コードブロックの有無を示すインクルージョンビットを１ビット節約できる場合が発生する。
【００９６】
以上のように、タグツリーを構成するためには、サブバンドのすべてのコードブロックのインクルージョンの情報が必要になる。しかし、ひとつのメモリ内に、パケットポインタという形でインクルージョンの情報を格納していると、タグツリーを作るときに、すべてのコードブロックのインクルージョン情報をメモリリードしなければならず、メモリアクセスに時間がかかる。また、タグツリーのインクルージョンはパケットヘッダの最初にくるので、インクルージョンが決まらなければそのあとのパケットヘッダ生成を開始できない問題がある。インクルージョンが決まると、その後のパケットデータは、コードブロックごとの情報をメモリリードしていけばよいので効率よくパケットヘッダ作成ができる。この問題を回避するために、算術符号化が完了した後、各コードブロックのデータと情報をメモリに書き込む際、コードブロックのインクルージョンに関する情報のみ、メモリではなく、内部レジスタに格納し、すべてのコードブロックの算術符号化が終了したときに、すべてのコードブロックのインクルージョンの情報を使用して簡単にタグツリーを構成できるようにすることで、パケット生成の時間を短縮できる。コードブロックのインクルージョン情報はコードブロックひとつについて１ビットですむのでハード量もほとんど増加しない。
【００９７】
ＪＰＥＧ２００の動画のエンコード時においては、入力されるイメージデータは一定の時間間隔で入力されるため、各入力画像を所定の期間内に処理しなければならないが、本発明の実施の形態によれば、迅速な処理が可能であり、リアルタイム処理が可能となる。
【００９８】
【発明の効果】
上述の如く本発明によれば、画像の符号化処理及び／又は復号処理に関する処理におけるメモリに要するコストを削減し、更に、高速処理を行うことができる。
【００９９】
【図面の簡単な説明】
【図１】ＪＰＥＧ２０００の符号化の流れを説明するための図である。
【図２】画像データ１を１２８×１２８の大きさのタイルに分割し、レベル２の２次元離散ウエーブレット変換を行った場合の例を説明するための図である。
【図３】各サブバンド毎にエントロピー符号化した場合におけるサブバンド２ＬＬとその算術符号化器の処理を説明するための図である。
【図４】３Ｎ＋１個のパス毎に算術符号器で生成された符号をレイヤ０からレイヤＬまでのＬ＋１個のレイヤにまとめている様子を示す図である。
【図５】ビットストリームを説明するための図である。
【図６】３色（コンポーネント０、１、２）より成る画像をＪＰＥＧ２０００で符号化した場合のビットストリームの図である。
【図７】ＪＰＥＧ２０００の符号化処理回路を説明するための図である。
【図８】  ＪＰＥＧ２０００の復号処理回路を説明するための図である。
【図９】垂直成分と水平成分に対してそれぞれハイパスフィルタとローパスフィルタをかけて１／２のデータにした結果を説明するための図である。
【図１０】２レベルのウエーブレット係数を説明するための図である。
【図１１】３レベルのウエーブレット係数を説明するための図である。
【図１２】４レベルのウエーブレット係数を説明するための図である。
【図１３】５レベルのウエーブレット係数を説明するための図である。
【図１４】最終的なウエーブレット変換のエンコードの結果を示す図である。
【図１５】ウエーブレット変換のエンコード装置を説明するための図である。
【図１６】ウエーブレット変換のエンコード垂直方向処理を説明するための図である。
【図１７】ウエーブレット変換のエンコード水平方向処理を説明するための図である。
【図１８】  ハイパス処理回路の例を説明するための図である。
【図１９】ローパス処理回路の例を説明するための図である。
【図２０】ウエーブレット変換のデコード装置の例を説明するための図である。
【図２１】ウエーブレット変換のデコード垂直方向処理を説明するための図である。
【図２２】ウエーブレット変換のデコード水平方向処理を説明するための図である。
【図２３】サブバンドの大きさよりプリシンクトサイズが大きい場合を説明するための図である。
【図２４】パケットデータ用ポインタの例を説明するための図である。
【図２５】パケットポインタとパケットデータのメモリマッピングの例を説明するための図である。
【図２６】サブバンドの大きさよりプリシンクトサイズが小さい場合を説明するための図である。
【図２７】タグツリーの構成例を説明するための図である。
【図２８】タグツリーのインクルージョンの検出例を説明するための図である。
【符号の説明】
１    画像データ
１０    ＤＷＴ部
１１    量子化器
１２    係数モデリング部
１３    算術符号器
１４    符号形成部
１５    符号データ
２０    １タイルの画像データ
３７    パケットヘッダー
３８    エントロピー符号
４０    符号化処理回路
４１、６1    ＤＣシフト・ＲＣＴ変換回路
４２、６２    離散ウエーブレット変換回路（ＤＷＴ回路）
４３、６３    算術符号化回路（ＭＱ回路）
４４    パケットヘッダ生成回路
４５    符号列生成回路
４６    メモリアクセスアービタ
４７    ＳＤＲＡＭコントローラ
５５    ＳＤＲＡＭ
６４    符号列解析回路
８３〜８４    ラインバッファ
７６〜７８    ハイパス処理回路
７９〜８１    ローパス処理回路
８５〜９０、１０８、２０８    クロック端子を有するフリップフロップ回路
７１    入力端子
７２〜７５    出力端子７２〜７５
１００〜１０４、２００〜２０４    マルチプレクサ
１０５、１０６、２０５、２０６、２２４    加算器
１０７    反転回路
【図１】
0004115142.tif 000002
【図２】
0004115142.tif 000003
【図３】
0004115142.tif 000004
【図４】
0004115142.tif 000005
【図５】
0004115142.tif 000006
【図６】
0004115142.tif 000007
【図７】
0004115142.tif 000008
【図８】
0004115142.tif 000009
【図９】
0004115142.tif 000010
【図１０】
0004115142.tif 000011
【図１１】
0004115142.tif 000012
【図１２】
0004115142.tif 000013
【図１３】
0004115142.tif 000014
【図１４】
0004115142.tif 000015
【図１５】
0004115142.tif 000016
【図１６】
0004115142.tif 000017
【図１７】
0004115142.tif 000018
【図１８】
0004115142.tif 000019
【図１９】
0004115142.tif 000020
【図２０】
0004115142.tif 000021
【図２１】
0004115142.tif 000022
【図２２】
0004115142.tif 000023
【図２３】
0004115142.tif 000024
【図２４】
0004115142.tif 000025
【図２５】
0004115142.tif 000026
【図２６】
0004115142.tif 000027
【図２７】
0004115142.tif 000028
【図２８】
0004115142.tif 000029