(57)【要約】【課題】可変長符号化したデータの復号処理の並列化を容易にする。【解決手段】１つの符号データ１００を２つに分けて、２つの復号部に並列的に復号させる。第１復号部には符号データ１００の先頭から復号させる。第２復号部には符号データ１００の途中の開始点Ａ１から復号を開始させ、復号が失敗したら、別の開始点Ａ２，Ａ３，・・・から再び復号させる。このようにして第２復号部が符号データ１００の末尾まで失敗なく復号できたときの開始点Ａ５を、成功点として第１復号部に通知する。第１復号部は、その成功点Ａ５まで復号を行う。そして、第１復号部と第２復号部の復号結果を組み合わせることで、符号データ全体に対応する復号結果を得る。【選択図】図１
2008099134.tif 000002
【特許請求の範囲】
【請求項１】
復号対象の符号データの先頭である第１開始点から復号を実行する第１復号部と、
２以上Ｎ以下の各整数ｋについてそれぞれ設けられた第ｋ復号部であって、前記符号データの途中の第（ｋ−１）開始点より後ろに位置する第ｋ開始点から復号を試行し、復号が失敗した場合は第ｋ開始点の位置を変えて再度復号を試行する第ｋ復号部と、
第Ｎ復号部が前記符号データの末尾まで失敗せずに復号を終了した場合の第Ｎ開始点を第Ｎ成功点とし、第（ｋ−１）復号部が第ｋ成功点まで失敗せずに復号を終了した場合の第（ｋ−１）開始点を第（ｋ−１）成功点とした場合に、２以上Ｎ以下の各ｋについて、前記符号データの前記第（ｋ−１）成功点から第ｋ成功点までの部分について前記第（ｋ−１）復号部の復号結果と、前記符号データの第Ｎ成功点から末尾までの部分についての前記第Ｎ復号部の復号結果と、に基づき、前記符号データ全体に対応する復号結果を生成する復号結果生成部と、
を備えるデータ復号装置。
【請求項２】
前記各復号部はＪＰＥＧ方式の復号におけるハフマン復号を行うものであり、
前記第２復号部〜第Ｎ復号部までの各復号部は、ハフマン復号により得られる量子化ＤＣＴ係数がＪＰＥＧに規定されるブロックをあふれた場合に、復号が失敗したと判定する、ことを特徴とする請求項１記載のデータ復号装置。
【請求項３】
前記各復号部はＪＰＥＧ方式の復号におけるハフマン復号を行うものであり、
前記第２復号部〜第Ｎ復号部までの各復号部は、量子化ＤＣＴ係数に対応づけられない失敗検知用の符号ビット列を含んだ符号割り当て規則に従ってハフマン復号を実行し、前記符号割り当て規則に含まれる失敗検知用の符号ビット列を検知した場合に、復号が失敗したと判定する、ことを特徴とする請求項１記載のデータ復号装置。
【請求項４】
前記各復号部はＪＰＥＧ方式の復号におけるハフマン復号を行うものであり、
前記第ｉ復号部（ｉは１以上（Ｎ−１）以下の整数）が第ｉ成功点から第（ｉ＋１）成功点まで復号を行った際に得られた最後のブロックの直流成分に基づき、第（ｉ＋１）復号部の復号結果を補正する直流成分補正部、
を更に備えることを特徴とする請求項１記載のデータ復号装置。
【請求項５】
前記第ｋ復号部（ｋは２以上Ｎ以下の整数）は、復号が失敗した場合、失敗した位置の次の位置を新たな第ｋ開始点として復号を続行する、ことを特徴とする請求項１記載のデータ復号装置。
【請求項６】
復号対象の符号データの先頭から復号を実行する第１復号部と、
前記符号データの途中の開始点から復号を試行し、復号が失敗した場合は開始点の位置を変えて再度復号を試行する第２復号部と、
前記第２復号部が前記符号データの末尾まで失敗なく復号を終了した場合の試行の開始点を成功点とした場合に、前記符号データの先頭から前記成功点までの部分についての前記第１復号部の復号結果と、前記成功点から前記符号データの末尾までについての前記第２復号部の復号結果とに基づき、前記符号データ全体の復号結果を生成する復号結果生成部と、
を備えるデータ復号装置。
【請求項７】
第１復号部に、復号対象の符号データの先頭である第１開始点から復号を実行させ、
２以上Ｎ以下の各整数ｋについてそれぞれ設けられた第ｋ復号部に、前記符号データの途中の第（ｋ−１）開始点より後ろに位置する第ｋ開始点から復号を試行させ、
第ｋ復号部の復号の失敗を検知し、
第ｋ復号部の復号の失敗を検知した場合は第ｋ開始点の位置を変えて再度第ｋ復号部に復号を試行させ、
第Ｎ復号部が前記符号データの末尾まで失敗せずに復号を終了した場合の第Ｎ開始点を第Ｎ成功点とし、第（ｋ−１）復号部が第ｋ成功点まで失敗せずに復号を終了した場合の第（ｋ−１）開始点を第（ｋ−１）成功点とした場合に、２以上Ｎ以下の各ｋについて、前記符号データの前記第（ｋ−１）成功点から第ｋ成功点までの部分について前記第（ｋ−１）復号部の復号結果と、前記符号データの第Ｎ成功点から末尾までの部分についての前記第Ｎ復号部の復号結果と、に基づき、前記符号データ全体に対応する復号結果を生成する、
処理をコンピュータに実行させるためのプログラム。
【請求項８】
第１復号部に、復号対象の符号データの先頭から復号を実行させ、
第２復号部に、前記符号データの途中の開始点から復号を試行させ、
第２復号部の復号の失敗を検知し、
第２復号部の復号の失敗が検知された場合は開始点の位置を変えて再度第２復号部に復号を試行させ、
前記第２復号部が前記符号データの末尾まで失敗なく復号を終了した場合の試行の開始点を成功点とした場合に、前記符号データの先頭から前記成功点までの部分についての前記第１復号部の復号結果と、前記成功点から前記符号データの末尾までについての前記第２復号部の復号結果とに基づき、前記符号データ全体の復号結果を生成する、
処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号化されたデータの復号に関する。
【背景技術】
【０００２】
ＪＰＥＧ(Joint Photographic Experts Group)等の画像符号化方式には、可変長符号化技術を用いられることが多い。可変長符号化では、ビット長がまちまちの符号語を詰め合わせて符号データファイルを構成する。このため、Ｎ番目の符号語の情報を正しく取り出すには、１番目から（Ｎ−１）番目までの符号語を順に解釈していく必要がある。このため、可変長符号化により生成された符号データの復号においては、最初の符号語から順に復号していくことが一般的であった。別の角度からいえば、可変長符号化された符号データはランダムアクセスが原理的に困難であるといえる。ランダムアクセスが困難であるため、符号データを複数に分けて並列的に復号するということも困難であった。
【０００３】
特許文献１に示される方式では、Ｍ（横方向）×Ｎ（縦方向）個の圧縮パケットからなる１ページ分の圧縮画像データを、個々の圧縮パケットを構成する横方向４個のＭＣＵの各ライン（行）をハフマン符号化したビットストリームのブロック（ＥＣＳ、エントロピコーデッドセグメント）にリスタートマーカまたはＥＯＩマーカが付加された「ＭＣＵグループＧ（ｎ）」をＭ個配置したデータブロックを一単位として、１つのＭＣＵの縦画素数（８画素）を１ラインとして４Ｎライン分連続して配列する。これにより、並列処理を実行しやすくしている。しかしながら、このデータ形式は標準的なＪＰＥＧ形式ではないので、この方式に適合したデコーダでないと復号ができない。
【０００４】
特許文献２に示される画像処理装置には、ａ個の最小符号化単位（ＭＣＵ）のブロック毎に、リスタートマーカが挿入された１ページのＪＰＥＧ圧縮画像データが入力される。入力された画像データについて、ａ個の最小符号化単位と挿入されたリスタートマーカとから構成されるグループを１ブロックとして、この圧縮したままのブロック単位で、画像を再配置して画像パケットを生成し、１ページ画像を横方向Ｍ個×縦方向Ｎ個の画像パケットの集まりに再構成する。その後、画像パケットとして並列画像処理される。しかしながら、このデータ形式も標準的なＪＰＥＧ形式ではないので、この方式に適合したデコーダでないと復号ができない。
【０００５】
【特許文献１】特開２００３−１８９１０９号公報
【特許文献２】特開２００３−３４８３５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来技術は画像の符号化に関するものであったが、復号処理の並列化が困難であるという問題は可変長符号化を含むデータ符号化技術一般に該当する。
【０００７】
本発明は、可変長符号化技術を用いたシステムにおいて、復号処理の並列化を可能又は容易にする。
【課題を解決するための手段】
【０００８】
（１）本発明の１つの側面では、復号対象の符号データの先頭である第１開始点から復号を実行する第１復号部と、２以上Ｎ以下の各整数ｋについてそれぞれ設けられた第ｋ復号部であって、前記符号データの途中の第（ｋ−１）開始点より後ろに位置する第ｋ開始点から復号を試行し、復号が失敗した場合は第ｋ開始点の位置を変えて再度復号を試行する第ｋ復号部と、第Ｎ復号部が前記符号データの末尾まで失敗せずに復号を終了した場合の第Ｎ開始点を第Ｎ成功点とし、第（ｋ−１）復号部が第ｋ成功点まで失敗せずに復号を終了した場合の第（ｋ−１）開始点を第（ｋ−１）成功点とした場合に、２以上Ｎ以下の各ｋについて、前記符号データの前記第（ｋ−１）成功点から第ｋ成功点までの部分について前記第（ｋ−１）復号部の復号結果と、前記符号データの第Ｎ成功点から末尾までの部分についての前記第Ｎ復号部の復号結果と、に基づき、前記符号データ全体に対応する復号結果を生成する復号結果生成部と、を備えるデータ復号装置を提供する。
【０００９】
（２）１つの態様では、上記構成（１）において、前記各復号部はＪＰＥＧ方式の復号におけるハフマン復号を行うものであり、前記第２復号部〜第Ｎ復号部までの各復号部は、ハフマン復号により得られる量子化ＤＣＴ係数がＪＰＥＧに規定されるブロックをあふれた場合に、復号が失敗したと判定する。
【００１０】
（３）別の態様では、上記構成（１）において、記各復号部はＪＰＥＧ方式の復号におけるハフマン復号を行うものであり、前記第２復号部〜第Ｎ復号部までの各復号部は、量子化ＤＣＴ係数に対応づけられない失敗検知用の符号ビット列を含んだ符号割り当て規則に従ってハフマン復号を実行し、前記符号割り当て規則に含まれる失敗検知用の符号ビット列を検知した場合に、復号が失敗したと判定する。
【００１１】
（４）さらに別の態様では、上記構成（１）において、前記各復号部はＪＰＥＧ方式の復号におけるハフマン復号を行うものであり、前記第ｉ復号部（ｉは１以上（Ｎ−１）以下の整数）が第ｉ成功点から第（ｉ＋１）成功点まで復号を行った際に得られた最後のブロックの直流成分に基づき、第（ｉ＋１）復号部の復号結果を補正する直流成分補正部、を更に備える。
【００１２】
（５）更に別の態様では、上記構成（１）において、前記第ｋ復号部（ｋは２以上Ｎ以下の整数）は、復号が失敗した場合、失敗した位置の次の位置を新たな第ｋ開始点として復号を続行する。
【００１３】
（６）本発明の別の側面では、復号対象の符号データの先頭から復号を実行する第１復号部と、前記符号データの途中の開始点から復号を試行し、復号が失敗した場合は開始点の位置を変えて再度復号を試行する第２復号部と、前記第２復号部が前記符号データの末尾まで失敗なく復号を終了した場合の試行の開始点を成功点とした場合に、前記符号データの先頭から前記成功点までの部分についての前記第１復号部の復号結果と、前記成功点から前記符号データの末尾までについての前記第２復号部の復号結果とに基づき、前記符号データ全体の復号結果を生成する復号結果生成部と、を備えるデータ復号装置を提供する。
【００１４】
（７）本発明の別の側面では、第１復号部に、復号対象の符号データの先頭である第１開始点から復号を実行させ、２以上Ｎ以下の各整数ｋについてそれぞれ設けられた第ｋ復号部に、前記符号データの途中の第（ｋ−１）開始点より後ろに位置する第ｋ開始点から復号を試行させ、第ｋ復号部の復号の失敗を検知し、第ｋ復号部の復号の失敗を検知した場合は第ｋ開始点の位置を変えて再度第ｋ復号部に復号を試行させ、第Ｎ復号部が前記符号データの末尾まで失敗せずに復号を終了した場合の第Ｎ開始点を第Ｎ成功点とし、第（ｋ−１）復号部が第ｋ成功点まで失敗せずに復号を終了した場合の第（ｋ−１）開始点を第（ｋ−１）成功点とした場合に、２以上Ｎ以下の各ｋについて、前記符号データの前記第（ｋ−１）成功点から第ｋ成功点までの部分について前記第（ｋ−１）復号部の復号結果と、前記符号データの第Ｎ成功点から末尾までの部分についての前記第Ｎ復号部の復号結果と、に基づき、前記符号データ全体に対応する復号結果を生成する、処理をコンピュータに実行させるためのプログラム、を提供する。
【００１５】
（８）本発明の別の側面では、第１復号部に、復号対象の符号データの先頭から復号を実行させ、第２復号部に、前記符号データの途中の開始点から復号を試行させ、第２復号部の復号の失敗を検知し、第２復号部の復号の失敗が検知された場合は開始点の位置を変えて再度第２復号部に復号を試行させ、前記第２復号部が前記符号データの末尾まで失敗なく復号を終了した場合の試行の開始点を成功点とした場合に、前記符号データの先頭から前記成功点までの部分についての前記第１復号部の復号結果と、前記成功点から前記符号データの末尾までについての前記第２復号部の復号結果とに基づき、前記符号データ全体の復号結果を生成する、処理をコンピュータに実行させるためのプログラムを提供する。
【発明の効果】
【００１６】
上記構成（１）又は（７）によれば、可変長符号化された符号データをＮ個の復号部による並列的な復号により高速に復号することができる。
【００１７】
上記構成（２）によれば、ＪＰＥＧの性質を用いて簡便に復号の失敗を検知することができる。
【００１８】
上記構成（３）によれば、失敗検知用符号を用いることで復号の失敗が検知できる可能性を高めることができる。
【００１９】
上記構成（４）によれば、第２復号部以降の各復号部の復号結果における直流成分を補正することができる。
【００２０】
上記構成（５）によれば、復号が失敗した場合に復号対象の位置を変えることなく、そのまま復号を続行することができる。
【００２１】
上記構成（６）又は（８）によれば、可変長符号化された符号データを２個の復号部による並列的な復号により高速に復号することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態を、図面を参照しながら説明する。各図面において、同一又は類似の構成要素には同一符号を付すことで、重複する説明は省略する。
【００２３】
以下ではＪＰＥＧ方式で圧縮符号化された画像の復号を例にとって説明する。ただし、当業者ならば以下の説明で理解できるように、本実施形態の手法は、ＪＰＥＧ方式に限らず、可変長符号化を含む符号化方式により符号化された符号データ一般に適用可能であり、また画像に限らず他の種類のデータにも適用可能である。
【００２４】
まず、図１を参照して、本実施形態における並列復号の実現方式の原理を説明する。図１では、符号データ１００を２つの復号部により並列に復号する場合の例を示す。本実施形態では、２つの復号部のうちの第１復号部には符号データ１００の先頭から復号を開始させ、もう一方の第２復号部には符号データ１００の途中から選んだ開始点Ａ１から復号を開始させる。第１復号部は符号データ１００の先頭から復号を行うので原理的には正しく復号を進めることができる。これに対し第２復号部は符号データの途中の開始点から復号を開始するので、その復号は成功するとは限らず、一般的には失敗する。これは以下のようなことからである。
【００２５】
すなわち、例えば隣り合うＭＣＵ(Minimum Coded Unit。例えばフルカラー画像をＹ（輝度）：Ｃｂ（色差）：Ｃｒ（色差）＝４：１：１でサブサンプリングする場合、ＭＣＵは１６画素×１６画素の領域)同士の境界位置に対応する符号データ１００上の位置を開始点とするなど特定の条件を満たす開始点からならば第２復号部１２−２も正しく復号を進めることができる。これに対し、本実施形態ではそのような条件を満たす符号データ１００上の位置が事前の知識として与えられていないので、そのような適切な開始点を定めることができないため、選んだ開始点から復号したので最終的に復号が失敗する可能性が高いのである。
【００２６】
第２復号部における復号の失敗は、後に詳しく説明するいくつかの方法で検知することができる。適切な開始点ではないにもかかわらずその開始点から正しい符号配列に一致するパターンが偶然しばらく続く場合があり、そのようなパターンが続いている間は復号の失敗は検知することはできない。しかし、そのような偶然が長く続くことはなく、開始点が適切でなければ何千、何万、何百万ビットと復号を進めていくうちに失敗が検知されることになる。
【００２７】
このように復号の失敗を検知した場合、第２復号部は、開始点の位置を新たな位置に移動させてその新たな位置から再度復号を試みる。
【００２８】
もっとも、上述と同様の理由で、移動した新たな開始点から復号を開始しても復号が成功するとは限らない。失敗すればまた再び開始点を移動させ、新たな開始点から復号を試行する。このように開始点を変えながら試行を繰り返すことで、いずれ適切な開始点が見いだされ、符号データの末尾まで失敗なく復号を完了できるようになる。本実施形態では、このようにある開始点から符号データ１００の末尾まで失敗が検知されずに第２復号部の復号が完了した場合に、第２復号部の復号が成功したと判断する。
【００２９】
復号が失敗した場合の開始点の移動は、例えば、符号データ上で前回の開始点から１ビット後ろを新たな開始点に選ぶという方式で行えばよい。このように開始点を後方に移動させる代わりに、前方に移動させてもよい。移動量は１ビットに限るわけではなく、２ビット以上でも良いし、移動の度に移動量を変えてもよい。隣り合うＭＣＵ同士の境界であれば、ある方向に１ビットずつ移動させていけば、ＭＣＵに相当する符号のビット数以内の試行で探り当てることができる。
【００３０】
また別の方式として、失敗を検知したときの符号データの位置の次のビットを新たな開始点に選ぶ方式を用いることもできる。上述の方式では、復号が失敗すると前回の開始点近傍まで戻る必要があり、復号位置のジャンプが生じたが、この方式では、復号が失敗しても単にそのまま復号を進めればよく、単に記録する開始点の位置が変更されるだけである。このような方式でも、何千、何万ビットと復号を進めていくうちに、末尾まで失敗なく復号できる適切な開始点を見いだすことができる。
【００３１】
図１の例は、後者の方式を用いた場合の例を示している。この例では、第２復号部が最初の開始点Ａ１から復号を開始した当初は失敗が検知されないが、復号がＡ２に達したときに復号の失敗が検知される。このとき、第２復号部は、失敗を検知した位置の次のビットを新たな開始点として復号を再度試みるが、図１の例では、この試行は即座に失敗する。この例では、Ａ２からＡ３までは復号の失敗が検知される範囲１１０である。第２復号部が復号試行を繰り返して開始点がＡ３に達すると、再び失敗が検知されなくなるが、その後また失敗が検知される。最終的には、開始点がＡ５に達した以降は、失敗が検知されないまま符号データ１００の末尾まで復号が完了する。このように、図１の例では、開始点Ａ５からの試行において、第２復号部の復号が最終的に成功する。
【００３２】
本実施形態では、このように第２復号部の復号が成功したときの開始点を「成功点」とし、符号データ１００の先頭から復号する第１復号部には、この成功点まで復号を行わせる。第１復号部は先頭から復号するので、この復号は成功する。
【００３３】
そして、本実施形態の復号装置は、符号データ１００の先頭から成功点（図１ではＡ５）までの部分についての第１復号部の復号結果と、成功点から末尾までの部分についての第２復号部の復号結果とを組み合わせることで、符号データ１００全体についての復号結果を得る。
【００３４】
以上説明したように、本実施形態では、符号データの後半部の復号を担当する第２復号部が試行錯誤により符号データの末尾まで失敗なく復号できる成功点を見つけ出し、前半部を復号する第１復号部に符号データの先頭からその成功点までの復号を行わせる。そして、それら両復号部の復号結果を組み合わせることで、符号データ全体に対応する復号結果を求める。このような仕組みによれば、符号データ１００についての事前の知識がなくても、２つの復号部による並列的な復号が実現できる。
【００３５】
以上のような仕組みを実現する実施形態の画像復号装置を、図２を参照して説明する。この装置が復号する符号ファイル１０は、復号の並列化のための特段の情報を含んでいる必要はなく、ＪＰＥＧ方式に準拠した一般的な符号化装置で画像データを符号化して生成した、一般的なJFIF又はExif形式のファイルでよい。符号ファイル１０には、画像データを符号化した符号データと、その符号化に用いたハフマンテーブル等の符号化パラメータの情報とが含まれる。復号の際、符号ファイル１０は、画像復号装置が備えるメモリ上にロードされる。
【００３６】
図２に示す画像復号装置は、第１復号部１２−１及び第２復号部１２−２という２つの復号部を備える。以下、特に区別する必要がない場合は、両者を復号部１２と総称する。復号部１２は、ＪＰＥＧ方式の復号処理を行う。
【００３７】
周知のように、ＪＰＥＧ方式の符号化では、対象となる画像データをＭＣＵに分割し、色差成分にサブサンプリングの比率が指定されている場合は、ＭＣＵに含まれる画素群の色差成分をその比率でサブサンプリングする。そして、ＭＣＵから、輝度成分及び各色差成分について８画素×８画素のブロックを構成する。そして、ブロックごとに離散コサイン変換（ＤＣＴ）を行い、得られた各ＤＣＴ係数を量子化し、得られた量子化ＤＣＴ係数に対して可変長符号化の一種であるハフマン符号化を施すことで、符号データを求める。ＪＰＥＧ方式の復号では、その符号化の逆の処理を行う。すなわち、符号データに対してハフマン復号を行い、この結果得られる量子化ＤＣＴ係数を逆量子化し、その逆量子化結果を逆ＤＣＴ変換することで、原画像データを再生する。
【００３８】
復号部１２は、このようなＪＰＥＧ方式の復号処理のうちの少なくともハフマン復号を実行するモジュールである。復号部１２は、復号のためのプログラムをプロセッサに実行させることにより実現することもできるし、ハードウエア回路として実現することもできる。
【００３９】
第１結果蓄積部１４−１及び第２結果蓄積部１４−２は、それぞれ、第１復号部１２−１及び第２復号部１２−２の復号結果の画像データを蓄積する。第１結果蓄積部１４−１及び第２結果蓄積部１４−２は、例えば画像復号装置のメインメモリのメモリ空間内に確保することができる。
【００４０】
復号制御部１６は、第１復号部１２−１及び第２復号部１２−２による並列的な復号を制御する機能モジュールである。上位システム（例えばアプリケーションプログラムなど）から、符号ファイル１０の復号を指示された場合、復号制御部１６は、第１復号部１２−１には符号ファイル１０中の符号データの先頭アドレスを、第２復号部１２−２にはその符号データの途中のアドレスを、それぞれ復号処理の開始点として指定し、それぞれ復号を開始させる。ここで、第２復号部１２−２の開始点としては、例えば符号データの中央位置のアドレスを指定すればよい。また、復号制御部１６は、符号ファイル１０中に含まれるハフマンテーブルや量子化テーブルの情報を第１復号部１２−１及び第２復号部１２−２に渡し、復号処理ができるようにする。復号制御部１６は、ソフトウエアとして実現することもできるし、ハードウエア回路として実現することもできる。
【００４１】
このような復号制御部１６の制御により、第１復号部１２−１は符号データの先頭から後ろに向かって復号を開始し、第２復号部１２−２は符号データの途中の開始点から後ろに向かって復号を開始することになる。ここで、第１復号部１２−１は符号データの先頭から復号を行うので原理的には正しく復号を進めることができる。これに対し第２復号部１２−２は符号データの途中の開始点から復号を開始するので、その復号は成功するとは限らない。
【００４２】
第２復号部１２−２は、失敗検知部１２４を備え、この失敗検知部１２４が第２復号部１２−２が行っている復号が失敗したことを検知すると、第２復号部１２−２は、開始点を、前回の位置から１ビット後ろにずらしたり、あるいは失敗を検知した位置の次のビットへとずらしたりするなどして、新たな位置に移動させ、その新たな位置から復号を開始する。この再試行で失敗すればまた再び開始点を移動させ、更に試行を繰り返す。開始点から符号データの末尾まで、失敗検知部１２４が失敗を検知しないまま復号が完了するまで、そのような試行錯誤を繰り返す。なお、第２復号部１２−２は、失敗検知部１２４が復号の失敗を検知した場合、それまでに第２結果蓄積部１４−２に蓄積した復号結果を削除してもよい。
【００４３】
開始点管理部１２２は、そのように復号失敗の度に変更される開始点の位置を記憶する。そして、開始点管理部１２２は、最終的に第２復号部１２−２が、ある開始点から符号データの末尾まで失敗なく復号を終えた場合に、その開始点の位置情報（メモリ空間内でのアドレスなど）を復号制御部１６に伝える。復号制御部１６は成功点の位置情報を第１復号部１２−１に伝え、第１復号部１２−１はその成功点まで復号を実行する。なお、第２復号部１２−２の成功点の情報を、復号制御部１６経由ではなく、直接第１復号部１２−１が取得してもよい。
【００４４】
第１復号部１２−１の復号が終了すると、復号制御部１６は、復号結果合成部１８に復号結果の合成を指示する。この指示を受けた復号結果合成部１８は、第１結果蓄積部１４−１に蓄積された符号データ１００の先頭から成功点までの復号結果と、第２結果蓄積部１４−２に蓄積された成功点から符号データ１００の末尾までの復号結果とを組み合わせ、符号データ１００全体の復号結果を生成する。復号結果合成部１８は、ソフトウエアとして実現することもできるし、ハードウエア回路として実現することもできる。
【００４５】
以上の例では、第２復号部１２−２の復号が失敗した場合、第２復号部１２−２自身が開始点を移動させて復号を再試行したが、この代わりに、復号が失敗した場合、第２復号部１２−２がその旨を復号制御部１６に通知し、復号制御部１６が開始点の移動、及び移動後の開始点の記録を行うようにしてもよい。
【００４６】
以上、実施形態の画像復号装置の構成について説明した。次に、失敗検知部１２４の復号失敗の検知手法の例を説明する。
【００４７】
まず１つの例として、ＪＰＥＧ方式における１ブロック内のＤＣＴ係数の数（言い換えれば１ブロックの画素数）を用いる方法がある。この方法での失敗検知方式を図３〜図５を参照して説明する。
【００４８】
ＪＰＥＧ符号化方式では、原画像の８×８画素のブロックに対してＤＣＴを行うことで、１ブロックあたり６４個のＤＣＴ係数を求め、これら各係数を量子化テーブルにより量子化する。このようにして得られた８×８の量子化ＤＣＴ係数を低周波数から高周波数の方向へとジグザグスキャンすることで１次元の配列とする。この配列において最も低周波数であるＤＣ（直流）成分と呼ばれ、直前のブロックのＤＣ成分との差分がハフマン符号化される。その他の成分はＡＣ（交流）成分と呼ばれ、量子化により値が０の成分が多いため、連続する０の数（ゼロラン）とそのあとに続く非ゼロの成分値との組がハフマン符号化される。
【００４９】
このような方式で符号化された符号データのハフマン復号の結果の例を図３〜図５に示す。図３〜図５では、図３では、ハフマン復号結果において、ブロックの先頭の量子化ＤＣＴ係数を０番目とし、最後を６３番目としている。
【００５０】
図３〜図５に示すように、ブロックの最初の符号語の復号結果はＤＣ成分の値と見なされ、そのあとの符号語の復号結果はゼロランと非ゼロのＡＣ成分値の組と見なされる。すなわち、ＡＣ成分については１つの符号語の復号結果が、０の連続とその後に続く非ゼロ値の組となる。例えば、図３の例では、３つめの符号語の復号結果は、１つの「０」とその後に続く１つの非ゼロ値との組み合わせになっている。ブロックの先頭からハフマン復号を進めていった場合、その復号が成功していれば、何番目かの符号語を復号したときに得られる非ゼロ値が図３に示すようにブロックの６３番目に来る。また、ＪＰＥＧでは、ブロックの中のあるＡＣ成分から末尾までがすべて０である場合、ＥＯＢ(エンド・オブ・ブロック)という特別な符号に変換するので、図４に示すようにＥＯＢの復号結果の０がブロックの６３番目に来る場合も、復号は成功していると見なすことができる。これに対し、図５に示す例では、ある符号語をハフマン復号した結果がブロックの６３番目に至らず、その次の符号語を復号したときに得られたゼロランのあとの非ゼロのＡＣ成分値が６３番目より後ろに来ている。復号が成功していれば、このように復号結果がブロックからあふれることはない。したがって、このようなことが起こった場合、復号が失敗したと判定できる。
【００５１】
このような失敗検知手法を用いたときの画像復号装置の処理手順を、図６及び図７を参照して説明する。
【００５２】
第１復号部１２−１は、図６に示すように、復号制御部１６から割り当てられた符号データ１００の先頭位置から復号を開始する。第１復号部１２−１は、１ＭＣＵ分の符号データを復号（Ｓ１１）しては、その次に第１復号部１２−１が復号のために読み出す符号データの位置が第２復号部の成功点に到達したか否かを判定する（Ｓ１２）。成功点に到達していない場合は、第２復号部１２−２が成功点を見いだす前ならば、この判定結果はＮｏとなり、第１復号部１２−１は復号処理を続行する。そして、ステップＳ１２の判定結果がＹｅｓとなったときに、第１復号部１２−１は復号を終了する。
【００５３】
ここで、第２復号部１２−２に符号データ１００の中央位置から復号を開始させた場合、第１復号部１２−１の復号が中央位置に達するときには、第２復号部１２−２の復号が符号データ１００の末尾まで達し、成功点が確定している可能性が高い。第２復号部に最初に割り当てる開始点を符号データ１００の中央位置よりある程度後ろに設定しておけば、第１復号部１２−１の復号がその開始点に達するまでに、第２復号部１２−２の成功点が確定しているようにすることができる。
【００５４】
なお、第２復号部１２−２の成功点の位置を第１復号部１２−１が知った時点で、第１復号部１２−１の復号していた位置がその成功点を越えていた場合は、第１復号部１２−１は復号を完了すればよい。この場合、第１結果蓄積部１４−１に蓄積される画像データは成功点より後ろの部分も含み、第２結果蓄積部１４−２に蓄積される画像データと重複部分ができる。しかし、復号結果の画像のサイズは符号ファイル１０内の情報からわかるので、そのように重複部分が存在しても、それら画像データを正しく組み合わせて原画像データを復号できる。
【００５５】
次に図７を参照して第２復号部１２−２の処理手順を説明する。第２復号部１２−２は、復号制御部１６から指定された開始点からハフマン復号を開始し、最初に読み出した符号語をＤＣ成分として復号する（Ｓ２１）。第２符号部１２−２は、ハフマン復号によって得られた量子化ＤＣＴ係数のブロック内での番号をカウントするカウンタを備えており、ＤＣ成分の復号が終わるとそのカウンタの値を０とする。これにより、ブロック内の０番目のＤＣＴ係数が復号されたことを示す。第２復号部１２−２は、次の符号語はＡＣ成分として復号する（Ｓ２２）。ここで、そのとき読み出した符号語がＥＯＢ符号であるか否かを判定し（Ｓ２３）、ＥＯＢ符号であれば、ブロックの復号が成功したことになるので、カウンタをクリアする（Ｓ２８）。そして、符号データの末尾まで復号が終わったかどうかを判定し（Ｓ２９）、終わっていなければ、ステップＳ２１に戻って残りの復号を行う。
【００５６】
ＡＣ復号（Ｓ２２）で復号した符号語がＥＯＢでなければ（Ｓ２３）、第２復号部１２−２は、その復号結果に応じて前述のカウンタの値をインクリメントする（Ｓ２４）。例えば復号の結果、３個の０とそれに続く１つの非ゼロ係数が得られた場合、カウンタの値を４つインクリメントする。そして、インクリメント後のカウンタの示す値と「６３」とを比較する（Ｓ２５）。カウンタ値が６３未満であれば、ブロック内のＡＣ成分をすべて復号し終わっていないと言うことなので、ステップＳ２２に戻って残りの復号を続ける。カウンタ値が６３と等しければ、図４に示したケースに該当し、ブロックの末尾まで復号が成功したことになる。この場合、第２復号部１２−２はカウンタをクリアし（Ｓ２８）、符号データ末尾まで復号が終わっていなければステップＳ２１に戻る。
【００５７】
ステップＳ２５において、カウンタ値が６３を越えていれば、図５に示したケースに該当し、復号が失敗したことになる。この場合、第２復号部１２−２はカウンタをクリアし（Ｓ２６）、開始点の位置を変更した上で（Ｓ２７）、ステップＳ２１に戻り、変更後の開始点から再び復号を試みる。なお、ステップＳ２６での開始点の変更は、前述した方式のいずれでもよい。開始点管理部１２２は、変更後の開始点を記録する。
【００５８】
以上の処理を繰り返すうちに、符号データの末尾まで失敗なく復号できる開始点が見いだされる。そのような開始点が見いだされると、復号は失敗なく進む。そして、ステップＳ２９で符号データの最後まで復号が終わったと判定されると、第２復号部１２−２は、その開始点を成功点として記録する（Ｓ３０）。この成功点の情報は、第１復号部１２−１に知らされる。
【００５９】
次に、失敗検知部１２４の復号失敗検知のための別の方法を、図８〜図１０を用いて説明する。この方法では、ハフマン符号化における符号語の割り当てにおいて、符号化対象の情報に対応する符号語に加え、更に失敗検知用の符号語を用いる。そして、復号において失敗検知用の符号語が検出されると、復号が失敗したと判定する。
【００６０】
例えば、Ａ〜Ｈの８種類の情報からなる原データをハフマン符号化する場合に、符号語の最大長を６とすると、例えば図８に示すような符号語割り当てを行えばよい。この例では、例えば情報「Ａ」に対し符号語「０」が、情報「Ｂ」に対し符号語「１０」が割り当てられている。図８に示すような符号割り当て規則は、ハフマンテーブルの形で、符号化及び復号において利用される。
【００６１】
ここで、Ａ〜Ｈの８個の情報に対し、更に失敗検知用の符号を１つ追加し、最大符号語長を６として符号語割り当てを行うと、例えば図９のような符号割り当て規則が得られる。この符号割り当て規則では、失敗検知用の符号として、「１１１０」というビット列の符号語が割り当てられる。この例では、失敗検知用の符号を１つとしたが、複数にすることももちろん可能である。失敗検知用の符号は、ＤＣ成分用のハフマンテーブルに組み込んでもよいし、ＡＣ成分用のハフマンテーブルに組み込んでもよい。またそれら両方に組み込んでもよい。
【００６２】
この失敗検知法を用いる場合、画像を符号化する装置が、失敗検知用符号を含んだ符号割り当て規則に従って符号化を行う。そして、画像復号装置の第２復号部１２−２は、符号ファイルを復号する際に、そのファイル中のハフマンテーブルにある失敗検知用符号を検出すると、復号失敗と判定すればよい。
【００６３】
この失敗検出方式と、上述のブロックあふれによる失敗検知法の両方を用いた場合の第２復号部１２−２の処理手順を、図１０に示す。この手順は、ＡＣ成分用のハフマンテーブルに失敗検知用符号を組み込んだ場合の例である。
【００６４】
図１０の手順は、図７の手順に対し、ステップＳ４０を加えたものである。ステップＳ４０では、ＡＣ成分の復号（Ｓ２２）の結果が失敗検知用符号であるかどうかを判定し、失敗検知用符号であれば復号が失敗したと判断してステップＳ２６に進む。失敗検知用符号でなければ、ステップＳ２３に進んで、その復号結果がＥＯＢであるかどうかを判定する。なお、ステップＳ４０とＳ２３の実行順序は逆でもよい。
【００６５】
以上に説明した画像復号装置では、第２復号部１２−２は符号データ１００の途中の開始点から復号を行うが、開始点の直前のブロックのＤＣ成分が不明であるため、復号結果のＤＣ成分は正しい値とならない場合がある。このような不具合に対処するには、第１復号部１２−１の復号結果の最後のブロックのＤＣ成分を用いて、第２復号部１２−２の復号結果を補正すればよい。この第２復号部１２−２の復号結果の補正は、逆ＤＣＴ処理で得られた各画素のデータに、第１復号部１２−１の最後のブロックのＤＣ成分を加算する方法で行えばよい。また、別の方法として、ハフマン復号で得られた各ブロックのＤＣ成分の量子化ＤＣＴ係数に対し、第１復号部１２−１の最後のブロックのＤＣ成分を加算することでも、同様の補正が可能である。カラー画像の場合は、輝度成分及び各色差成分という各成分ごとに、第１復号部１２−１の復号結果の最後のブロックＤＣ成分を求め、これらにより第２復号部１２−２の復号結果の輝度成分、各色差成分を補正すればよい。
【００６６】
この補正処理を含んだ画像復号装置の構成の例を図１１に示す。図１１の例では、ハフマン復号部４１−１と逆ＤＣＴ部４２−１とを合わせたものが図２の装置構成の第１復号部１２−１に対応し、ハフマン復号部４１−２と逆ＤＣＴ部４２−２とを合わせたものが第２復号部１２−２に対応する。なお、第２復号部１２−２の開始点管理部１２２や失敗検知部１２４に対応する機能モジュールについては、煩雑さを避けるために図示を省略している。
【００６７】
ハフマン復号部４１−１は、符号ファイル１０中の符号データの先頭を開始点として、ハフマン符号を行う。逆ＤＣＴ部４２−１は、そのハフマン復号の結果を逆量子化し、その逆量子化結果に対して逆ＤＣＴを施す。これにより、画像情報が復元される。逆ＤＣＴ部４２−１から出力される各画素の画素値の情報は、第１結果蓄積部４３−１に蓄積される。また、ハフマン復号部４１−１は、第２復号部１２−２の成功点まで復号を行ったときの最後のブロックのＤＣ成分を第１結果蓄積部４３−１に蓄積する。
【００６８】
ハフマン復号部４１−２は符号データの途中の指定された開始点からハフマン復号を行い、そのハフマン復号結果に対し逆ＤＣＴ部４２−２が逆量子化及び逆ＤＣＴを施す。逆ＤＣＴ部４２−２の出力は、第２結果蓄積部４３−２に蓄積される。ハフマン復号部４１−２において上述の方式を用いて復号の失敗が検知された場合は、開始点の位置を変更して再びハフマン復号部４１−２が復号を再試行する。
【００６９】
復号結果合成部４４は、第１結果蓄積部４３−１と第２結果蓄積部４３−２に蓄積された画像情報を合成することで、符号データ全体に対応する復号結果の画像を生成する。ここで、復号結果合成部４４は、第１結果蓄積部４３−１と第２結果蓄積部４３−２に蓄積された画像情報を合成する際に、第２結果蓄積部４３−２の各画素の値を第１結果蓄積部４３−１に蓄積された最後のブロックのＤＣ成分により補正する。補正は、第２結果蓄積部４３−２の各画素の値に、第１結果蓄積部４３−１に蓄積された最後のブロックのＤＣ成分を加算することで行うことができる。このような補正演算は、加算器とセレクタ（データ選択切替器）の組み合わせで実装できる。
【００７０】
後処理部４６は、復号結果合成部４４が出力する復号結果の画像に対し、目的に応じた後処理を行う。後処理には、例えばＦＩＲ(finite impulse response) フィルタ処理、画像の拡大又は縮小、解像度変換、色補正などがある。出力部４８は、後処理部４６の処理結果の画像を出力する装置であり、例えばプリンタや表示装置などである。また出力部４８は、画像データをファイルへと書き出す装置であってもよい。なお、後処理が必要ない装置の場合には、後処理部４６は不要である。
【００７１】
次に図１２を参照して、ＤＣ成分の補正を行う画像復号装置の別の例を説明する。図１２において、図１１に示した要素と同一の要素には同一符号を付して説明を省略する。
【００７２】
図１２の装置では、第２復号部の復号結果のＤＣ成分の補正を、復号結果合成部４４ａではなく、後処理部４６ａが実行する。復号結果合成部４４ａは、第１結果蓄積部４３−１と第２結果蓄積部４３−２の画像データを、ＤＣ成分の補正をせずに、単に組み立てて符号データ全体に対応する復号結果の画像を生成する。後処理部４６は、その画像に対して後処理を行う際に、その画像のうち第２結果蓄積部４３−２から取得した部分の各画素の値を、第１結果蓄積部４３−１中の最後のＤＣ成分を用いて補正する。後処理部４６が行う処理が、ＦＩＲフィルタ処理、拡大・縮小、解像度変換、色補正などの場合にはこのように後処理部４６でＤＣ成分の補正が可能である。後処理が、画素単位の処理である場合には、後処理部４６でＤＣ成分の補正が可能である。
【００７３】
次に図１３を参照して、ＤＣ成分の補正を行う画像復号装置の別の例を説明する。図１３において、図１１に示した要素と同一の要素には同一符号を付して説明を省略する。
【００７４】
図１３の装置では、ハフマン復号部４１−１及び４１−２の復号結果である中間情報を、それぞれ、第１結果蓄積部４５−１及び第２結果蓄積部４５−２に蓄積する。そして、それら蓄積された中間情報を復号結果合成部４７で合成することにより、符号データ全体に対応する中間情報を得て、これに対し逆ＤＣＴ部４２ａにより逆ＤＣＴを施す。ここで、図１３の構成では、逆ＤＣＴ部４２ａにおいて、ハフマン復号部４１−１の最終ブロックのＤＣ成分により、ハフマン復号部４１−２の復号結果を補正する。この補正は、例えば、ハフマン復号部４１−２の復号結果の各ブロックのＤＣ成分を、前記最終ブロックのＤＣ成分により補正することにより行えばよい。また、この代わりに、逆ＤＣＴ結果のうち、第２復号部（ハフマン復号部４１−２）の出力に該当する各画素の値を、前記最終ブロックのＤＣ成分により補正してもよい。
【００７５】
以上では、２つの復号部１２を備える画像復号装置を例示した。次に３以上の復号部を備える画像復号装置の例を説明する。
【００７６】
この例の画像復号装置は、図１４に示すように、Ｎ個（Ｎは３以上の整数）の復号部１２を備える。このうち、第２復号部１２−２〜第Ｎ復号部１２−Ｎは、開始点管理部１２２及び失敗検知部１２４を備える。開始点管理部１２２及び失敗検知部１２４の機能は、上述した図２の例の場合と同じでよい。復号制御部１６は、第１復号部１２−１〜第Ｎ復号部１２−Ｎによる並列的な復号を制御する。符号ファイル１０を復号する場合、復号制御部１６は、図１５に示すように、各復号部１２に対して復号処理の開始点ＳＰｉ（ｉは１〜Ｎの整数）を指定し、復号の開始を指示する。第１復号部１２−１に割り当てられる開始点ＳＰ１は符号ファイル１０中の符号データの先頭アドレスである。第ｋ復号部１２−ｋ（ｋは２以上Ｎ以下の整数）に割り当てられる第ｋ開始点ＳＰｋは、ｋが大きくなるほど符号データ中で後ろの位置（すなわち、より末尾に近い位置）となる。例えば、符号データをＮ個に均等分割したときの各分割点を、第ｋ開始点ＳＰｋとして割り当てればよい。
【００７７】
第１復号部１２−１は、図２の例の第１復号部１２−１と同様、符号データの先頭から第２復号部１２−２の成功点まで復号を行えばよい。その処理手順は、図６に示したものと同様でよい。最後の復号部、すなわち第Ｎ復号部１２−Ｎの処理手順は、図２の例の第２復号部１２−２と同様、符号データの末尾まで失敗なく復号が終了する開始点が見つかるまで、開始点を移動させながら復号の試行を繰り返す。その処理手順は、図７又は図１０に示すようなものでよい。第Ｎ復号部１２−Ｎが符号データの末尾まで失敗なく復号が終了したときの開始点を第Ｎ成功点と呼ぶこととする。
【００７８】
第ｋ復号部１２−ｋ（ｋは２以上（Ｎ−１）以下の整数）は、第（ｋ＋１）復号部１２−（ｋ＋１）が試行により求めた第（ｋ＋１）成功点まで失敗なく復号が終了する第ｋ開始点が見つかるまで、第ｋ開始点を移動させながら復号の試行を繰り返す。第（ｋ＋１）成功点まで失敗なく復号が終了したときの第ｋ開始点を、第ｋ成功点と呼ぶ。以上の処理により、第Ｎ成功点から番号が若くなる方向に第ｋ成功点が確定していく。
【００７９】
第ｋ復号部１２−ｋ（ｋは２以上（Ｎ−１）以下の整数）の処理手順の一例を図１６に示す。この手順は、ブロックあふれにより失敗検知を行う場合の例であり、図７の手順の変形と捉えることができる。図１６の手順において、図７の手順のステップと同様の処理を行うステップには、同一符号を付して説明を省略する。なお、失敗検知用符号を用いる方式（図１０参照）についても、同様に変形することで、第ｋ復号部の処理手順とすることができる。
【００８０】
図１６の手順では、第ｋ復号部１２−ｋは、指定された第ｋ開始点から復号を開始する。そして、ステップＳ２５で復号の失敗が検知された場合、復号済みの量子化ＤＣＴ係数をカウントするカウンタをクリアし（Ｓ２６）、第ｋ開始点の位置を移動させる（Ｓ２７ａ）。第ｋ開始点の移動のさせ方としては、図２の例の場合と同様、さまざまな方式を用いることができる。また、ステップＳ２３でＥＯＢが検知されるか、ステップＳ２５でブロックの末尾まで復号が終了したと検知されると、第ｋ復号部１２−ｋは、カウンタをクリアし（Ｓ２８）、第（ｋ＋１）成功点まで復号が終わったかを調べ（Ｓ２９ａ）、終わっていなければ、ステップＳ２１に戻り復号を続行する。第（ｋ＋１）成功点まで復号が終われば、そのときの第ｋ開始点を第ｋ成功点とし、第ｋ成功点の情報を第（ｋ−１）復号部１２−（ｋ−１）に通知するための処理を行う。
【００８１】
このようにして求められた第１復号部１２−１〜第Ｎ復号部１２−Ｎの各復号結果は、それぞれ第１結果蓄積部１４−１〜第Ｎ結果蓄積部１４−Ｎに蓄積される。復号結果合成部１８は、それら第１結果蓄積部１４−１〜第Ｎ結果蓄積部１４−Ｎに蓄積された部分的な復号結果を合成して、符号データ全体に対応する復号結果を求める。
【００８２】
以上、実施形態を説明した。以上に説明した画像復号装置の各例は、例えばプリンタやデジタル複合機に組み込むことができる。符号ファイルから画像を再生して印刷する場合に、上述の画像復号装置の技術を適用することができる。なお、以上に例示したのは、各実施形態の適用分野の一例に過ぎない。
【００８３】
また、以上の実施形態ではＪＰＥＧ符号化方式を例にとったが、実施形態の手法のうちＪＰＥＧ固有の性質を用いるもの以外は、可変長符号化を用いる他の画像符号化・復号方式（例えばＭＰＥＧやＪＰＥＧ２０００など）にも適用可能である。
【００８４】
また、以上の各実施形態では可変長符号化方式としてハフマン符号化を例にとったが、算術符号化など他の符号化方式を用いる場合にも上記各実施形態の手法は適用可能である。また、上記実施形態の手法は原理的にはデータの表す内容によるものではないので、画像以外のデータについても適用可能である。
【００８５】
また、失敗検知部１２４における復号失敗の検知方法は、上に例示したものに限らず、様々なものを用いることができる。
【００８６】
上記実施形態の画像復号装置をソフトウエア的に実現する場合、上記各機能モジュールの機能を記述したプログラムをコンピュータに実行させればよい。コンピュータは、図１７に示すようにＣＰＵ（中央演算装置）５０、メモリ（一次記憶）５２、各種Ｉ／Ｏ（入出力）インタフェース５４等がバス５６を介して接続された回路構成を有する。また、そのバス５６に対し、例えばＩ／Ｏインタフェース５４経由で、ハードディスクドライブ５８やＣＤやＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ６０が接続される。このようなドライブ５８又は６０は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク経由で、ハードディスクドライブ５８等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されＣＰＵにより実行されることにより、実施形態の処理が実現される。また、各復号部１２はハードウエア回路として実現し、それらを制御する復号制御部１６又は復号結果合成部１８又はその両方をプログラムとして実現してもよい。
【図面の簡単な説明】
【００８７】
【図１】実施形態における並列復号の方式を説明するための図である。
【図２】実施形態の画像復号装置の構成例を示す図である。
【図３】復号が失敗していないときのハフマン復号結果の一例を示す図である。
【図４】復号が失敗していないときのハフマン復号結果の一例を示す図である。
【図５】復号が失敗していたときのハフマン復号結果の一例を示す図である。
【図６】第１復号部の処理手順の例を示すフローチャートである。
【図７】第２復号部の処理手順の例を示すフローチャートである。
【図８】通常の符号割り当ての例を概念的に示す図である。
【図９】失敗検知用符号を含む符号割り当ての例を概念的に示す図である。
【図１０】失敗検知用符号による復号失敗検知を行う場合の第２復号部の処理手順の例を示すフローチャートである。
【図１１】ＤＣ成分の補正を行う装置構成の一例を示す図である。
【図１２】ＤＣ成分の補正を行う装置構成の別の例を示す図である。
【図１３】ＤＣ成分の補正を行う装置構成の更に別の例を示す図である。
【図１４】３個以上の復号部を含む画像復号装置の構成例を示す図である。
【図１５】３個以上の復号部を含む画像復号装置において、各復号部に最初に割り当てる開始点を説明するための図である。
【図１６】３個以上の復号部を含む画像復号装置における、先頭と末尾とを除く各復号部の処理手順を示すフローチャートである。
【図１７】コンピュータのハードウエア構成の例を示す図である。
【符号の説明】
【００８８】
１０  符号ファイル、１２−１  第１復号部、１２−２  第２復号部、１４−１  第１結果蓄積部、１４−２  第２結果蓄積部、１６  復号制御部、１８  復号結果合成部、１００  符号データ。
【図１】
2008099134.tif 000003
【図２】
2008099134.tif 000004
【図３】
2008099134.tif 000005
【図４】
2008099134.tif 000006
【図５】
2008099134.tif 000007
【図６】
2008099134.tif 000008
【図７】
2008099134.tif 000009
【図８】
2008099134.tif 000010
【図９】
2008099134.tif 000011
【図１０】
2008099134.tif 000012
【図１１】
2008099134.tif 000013
【図１２】
2008099134.tif 000014
【図１３】
2008099134.tif 000015
【図１４】
2008099134.tif 000016
【図１５】
2008099134.tif 000017
【図１６】
2008099134.tif 000018
【図１７】
2008099134.tif 000019