(57)【要約】      （修正有）【課題】従来の復号化装置に比べてより小さな回路規模で、復号化速度を損うことなく復号化処理を実現することができるデータ復号化方法を提供する。【解決手段】２つの可変長符号を１サイクルで復号化するために、２つの符号のうち２つ目の符号を復号化するための可変長符号テーブルデコーダのうち直流成分用のテーブルを、２つの符号のうち１つ目の符号を復号化するための可変長符号テーブルデコーダのうち直流成分用のテーブルデコーダと共有化する。その際、当該直流成分用の可変長符号テーブルデコーダの入力部及び２つ目の符号の出力部にマルチプレクサを設け、１つ目の符号が最終符号であったか否かを検出するブロック内最終符号検出部の出力に基づいて選択するようにする。【選択図】図１
2004228898.tif 000002
【特許請求の範囲】
【請求項１】
第１の符号化データと該第１の符号化データがビットシフトされた第２の符号化データとを含む符号化データを復号化するデータ復号化方法であって、
前記第１の符号化データが直流成分以外の場合、符号化時に使用された交流成分用可変長符号テーブルに基づいて該第１の符号化データを復号化する第１の復号化工程と、
前記符号化データをビットシフトして前記第２の符号化データを出力するシフト工程と、
前記第１の符号化データ又は前記第２の符号化データのいずれかを選択する第１の選択工程と、
前記第１の選択工程で選択された符号化データが直流成分の場合、符号化時に使用された直流成分用可変長符号テーブルに基づいて該符号化データを復号化する第２の復号化工程と、
前記第１の復号化工程又は前記第２の復号化工程のいずれかによる復号化データを第１の復号化データとして選択する第２の選択工程と、
前記第２の符号化データが直流成分以外の場合、符号化時に使用された交流成分用可変長符号テーブルに基づいて該第２の符号化データを復号化する第３の復号化工程と、
前記第２の復号化工程又は前記第３の復号化工程のいずれかによる復号化データを第２の復号化データとして選択する第３の選択工程と
を有することを特徴とするデータ復号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、可変長符号化された符号化データを復号化するデータ復号化方法に関する。
【０００２】
【従来の技術】
画像データを圧縮する方法として、一般に、圧縮対象となる画像データをブロック分割して、ブロック分割された画像データをブロック単位に直交変換して直流成分（以下、「ＤＣ」と呼ぶ。）と交流成分（以下、「ＡＣ」と呼ぶ。）とで構成された周波数成分に変換して符号化する方式がよく知られている。このような周波数成分に変換された画像データを符号化する場合、符号化効率の観点からエントロピー符号化が用いられることが多い。すなわち、周波数成分をそれぞれの成分ごとに量子化することによって符号化が行われる。
【０００３】
この際、高い周波数成分ほど大きい量子化閾値をもって量子化し、低い周波数成分ほど小さい量子化閾値をもって量子化することが望ましい。この理由として、人間の視覚には高周波成分に対して鈍感であるという特性があるからである。そして、量子化された周波数成分のうち、ＤＣについては、予測値との差分をＤＣ用の可変長符号テーブルに割り当てる。一方、ＡＣについては、低周波成分から高周波成分へ一次元的にスキャンし、非ゼロＡＣとその直前に続いたゼロの数の組み合わせをＡＣ用の可変長符号テーブルに割り当てる。
【０００４】
その際、ＤＣ差分値及び非ゼロＡＣはそのサイズによってグループ分けされる。すなわち、当該グループのＩＤ（グループＩＤ）と付加ビットとを用いてグループ分けされ、ＤＣにおいては当該グループＩＤをシンボルとし、そのシンボルに対して符号語が割り当てられ、割り当てられた符号と付加ビットとの組み合わせで一つの符号が形成される。一方、ＡＣにおいては当該グループＩＤとラン長との組み合わせをシンボルとし、そのシンボルに対して符号語が割り当てられ、割り当てられた符号と付加ビットとの組み合わせで一つの符号が形成される。また、ブロック内の最後のＡＣがゼロ係数である場合、ブロックの終わりを示すＥＯＢ（Ｅｎｄ  Ｏｆ  Ｂｌｏｃｋ）シンボルが可変長符号に割り当てられる。
【０００５】
このような符号化に用いられる可変長符号は、発生頻度の高いシンボルに対して短い符号語を割り当て、発生頻度の低いシンボルに対して長い符号語を割り当てることによって、効率的にデータ圧縮を行うことが可能となる。
【０００６】
そして、従来技術を用いて当業者は、このような可変長符号に符号化された符号化データを高速に復号化するために、入力された符号化データに対し可変長符号テーブルデコーダから一つのシンボルをデコードして符号長を含む復号データを出力し、さらに同一の符号化データに対して当該符号長分だけビットシフトしてデコード済みの符号化データを取り除いた次の符号化データの頭出しを行い、頭出しされた符号化データに対し可変長符号テーブルデコーダから一つのシンボルをデコードしてデコード結果を得る、といった複数の符号を１サイクルで復号化する装置を容易に想到し得る。
【０００７】
以下、当業者が容易に想到し得る従来の復号化装置を用いた復号化技術について説明する。
【０００８】
図４は、１サイクルで複数の符号を復号化する従来の復号化装置の一構成例を示すブロック図である。図４において、符号化データは直流成分（ＤＣ）用可変長符号テーブルデコーダ４０１、交流成分（ＡＣ）用可変長符号テーブルデコーダ４０２、及びシフタ部（Ｓｈｉｆｔｅｒ）４０４にそれぞれ並列に入力される。このような可変長符号テーブルデコーダの一例としてハフマンテーブルデコーダが用いられる。入力される当該符号化データは、符号語の先頭ビットが入力バスの先頭ビットに位置するように予め頭出しされているものとする。すなわち、ＤＣ用可変長符号テーブルデコーダ４０１は、ＤＣのシンボルに割り当てられるべき全ての符号語に対応する復号化データを有しており、入力された符号化データを先頭ビットからデコードし、一致する一つの符号語に対応する復号化データを出力する。尚、そこから出力される復号化データには、少なくとも符号長、シンボル及び付加ビットが含まれている。
【０００９】
また、ＡＣ用可変長符号テーブルデコーダ４０２は、ＤＣ以外（例えば、ＡＣやＥＯＢ等）のシンボルに割り当てられるべき全ての符号語に対応する復号化データを有し、入力された符号化データを先頭ビットからデコードし、一致する一つの符号語に対応する復号化データを出力する。尚、そこから出力される復号化データには、少なくとも符号長、シンボル及び付加ビットが含まれている。そして、ＤＣ用可変長符号テーブルデコーダ４０１及びＡＣ用可変長符号テーブルデコーダ４０２から出力された復号化データは、それぞれマルチプレクサ（ＭＵＸ）４０３に入力される。
【００１０】
マルチプレクサ４０３は、ＤＣ用可変長符号テーブルデコーダ４０１からの出力とＡＣ用可変長符号テーブルデコーダ４０２からの出力のうち、いずれかを選択して出力する。この選択は、それぞれの可変長符号テーブルデコーダにおいてデコードされた符号が、ＤＣであるかＡＣであるかに基づいて行われる。すなわち、ＤＣであればＤＣ用可変長符号テーブルデコーダ４０１の出力が選択され、ＡＣであればＡＣ用可変長符号テーブルデコーダ４０２の出力が選択される。そして、選択されたデータは、一回のデコード動作における一つ目の復号化された復号化データ１として出力される。
【００１１】
また、シフタ部４０４はバレルシフタ（ｂａｒｒｅｌ  ｓｈｉｆｔｅｒ）であり、マルチプレクサ４０３からの出力の内、符号長に相当する情報に基づいてビット単位で入力された符号化データをシフトして出力する。すなわち、マルチプレクサ４０３の出力する符号長分だけ当該符号化データをシフトして、次の符号の先頭が先頭ビットに配置されるように動作して出力する。シフタ部４０４の出力は、ＤＣ用可変長符号テーブルデコーダ４０５とＡＣ用可変長符号テーブルデコーダ４０６のそれぞれに入力される。
【００１２】
ＤＣ用可変長符号テーブルデコーダ４０５は、ＤＣのシンボルに割り当てられるべき全てあるいは一部の符号語に対応する復号化データを有し、入力されたビットシフト後の符号化データを先頭ビットからデコードし、一致する一つの符号語に対応する復号化データを出力する。尚、そこから出力される復号化データには、少なくとも符号長及びシンボル及び付加ビットが含まれている。
【００１３】
また、ＡＣ用可変長符号テーブルデコーダ４０６は、ＡＣのシンボルに割り当てられるべき全てあるいは一部の符号語に対応する復号化データを有し、入力された符号化データを先頭ビットからデコードし、一致する一つの符号語に対応する復号化データを出力する。尚、そこから出力される復号化データには、少なくとも符号長、シンボル及び付加ビットが含まれている。
【００１４】
尚、ＤＣ用可変長符号テーブルデコーダ４０５及びＡＣ用可変長符号テーブルデコーダ４０６には、必ずしも全てのエントリが含まれている必要はなく、処理速度あるいはハードウェア規模の観点から、発生頻度の高いいくつかの符号語に対応するデータだけが含まれる構成であってもよい。但し、一部のエントリのみ含む構成であれば、入力された符号化データが当該一部のエントリに含まれる符号語と一致したか否かを表す信号が別途出力される必要がある。
【００１５】
また、マルチプレクサ４０７は、ＤＣ用可変長符号テーブルデコーダ４０５の出力とＡＣ用可変長符号テーブルデコーダ４０６の出力のうち、いずれかを選択して出力する。この選択は、ＤＣ用可変長符号テーブルデコーダ４０５又はＡＣ用可変長符号テーブルデコーダ４０６においてデコードされた符号が、ＤＣであるかＡＣであるかに基づいて行われる。すなわち、ＤＣであればＤＣ用可変長符号テーブルデコーダ４０５の出力が選択され、ＡＣであればＡＣ用可変長符号テーブルデコーダ４０６の出力が選択される。そして、マルチプレクサ４０７で選択されたデータは、一回のデコード動作における二つ目の復号化された復号化データ２として出力される。
【００１６】
尚、図示されないがバレルシフタであるシフタ部４０４からは、シフタ部４０４に入力された符号化データの符号長分さらにシフトして次の符号の先頭ビットが先頭に来るようにさせる情報が、入力される符号化データを生成する側へ送られる。これによって、次のサイクルにおいて本復号化装置に入力される符号化データは、次の符号の頭出しがされた状態で入力される。このように従来の復号化装置では上記処理を１サイクル内で行い、同様のサイクルを繰り返すことによって、復号化処理の高速化を実現している。
【００１７】
【発明が解決しようとする課題】
しかしながら、上述した従来の復号化装置の構成においては、比較的大きな回路構成が必要となる可変長符号化テーブルが、４０１、４０２、４０５、４０６に示されるように４つも設ける必要があるため、復号化装置の回路規模が増大してしまうという問題があった。従って、回路規模の縮小化が望まれている。
【００１８】
本発明は、このような事情を考慮してなされたものであり、従来の復号化装置に比べてより小さな回路規模で、復号化速度を損うことなく復号化処理を実現することができるデータ復号化方法を提供することを目的とする。
【００１９】
【課題を解決するための手段】
上記課題を解決するため、本発明は、第１の符号化データと該第１の符号化データがビットシフトされた第２の符号化データとを含む符号化データを復号化するデータ復号化方法であって、
前記第１の符号化データが交流成分の場合、符号化時に使用された交流成分用可変長符号テーブルに基づいて該第１の符号化データを復号化する第１の復号化工程と、
前記符号化データをビットシフトして前記第２の符号化データを出力するシフト工程と、
前記第１の符号化データ又は前記第２の符号化データのいずれかを選択する第１の選択工程と、
前記第１の選択工程で選択された符号化データが直流成分の場合、符号化時に使用された直流成分用可変長符号テーブルに基づいて該符号化データを復号化する第２の復号化工程と、
前記第１の復号化工程又は前記第２の復号化工程のいずれかによる復号化データを第１の復号化データとして選択する第２の選択工程と、
前記第２の符号化データが交流成分の場合、符号化時に使用された交流成分用可変長符号テーブルに基づいて該第２の符号化データを復号化する第３の復号化工程と、
前記第２の復号化工程又は前記第３の復号化工程のいずれかによる復号化データを第２の復号化データとして選択する第３の選択工程と
を有することを特徴とする。
【００２０】
【発明の実施の形態】
以下、図面を参照して、本発明の一実施形態に係る復号化装置について説明する。尚、本実施形態において、復号化装置に入力される符号化データは、画像データをブロック分割して当該ブロック単位に直交変換し、直交変換された係数を量子化し、量子化された係数のうち直流成分（ＤＣ）については予測値との差分をＤＣ用の可変長符号テーブルに割り当て、ＤＣ以外の交流成分（ＡＣ）等についてはゼロでないＡＣとその直前に続いたゼロの数とをＡＣ用の可変長符号テーブルに割り当てることによって符号化されたデータであることを特徴とする。
【００２１】
図１は、本発明の一実施形態に係る復号化装置の構成を示すブロック図である。図１において、本復号化装置に入力される符号化データ（以下、「入力符号化データ」と称す。）はマルチプレクサ１０７、ＡＣ用可変長符号テーブルデコーダ１０２及びシフタ部１０４に対し、それぞれ並列に入力される。尚、この符号化データは、符号語の先頭ビットが入力バスの先頭ビットに位置するように予め頭出しがされているものとする。また、ＡＣ用可変長符号テーブルデコーダ１０２の動作については、上記従来の技術で説明した図４に示される復号化装置のＡＣ用可変長符号テーブルデコーダ４０２と同様であり、ＤＣ以外の例えば、ＡＣやＥＯＢ等のシンボルに割り当てられるべき全ての符号語に対応する復号化データを有し、入力された符号化データを先頭ビットからデコードし、一致する一つの符号語に対応する復号化データを出力する。
【００２２】
マルチプレクサ１０７は、上記符号化データ及びシフタ部１０４の出力のうちいずれか一方を、ブロック内最終符号検出部１０６の出力に基づいて選択して出力する。マルチプレクサ１０７の出力は、ＤＣ用可変長符号テーブルデコーダ１０１に入力される。尚、ＤＣ用可変長符号テーブルデコーダ１０１の動作については、上記従来の技術で説明した図４に示される復号化装置のＤＣ用可変長符号テーブルデコーダ４０１と同様であり、ＤＣのシンボルに割り当てられるべき全ての符号語に対応する復号化データを有しており、入力された符号化データを先頭ビットからデコードし、一致する一つの符号語に対応する復号化データを出力する。
【００２３】
ＤＣ用可変長符号テーブルデコーダ１０１から出力された復号化データは、マルチプレクサ１０３及びマルチプレクサ１０８にそれぞれ入力される。また、ＡＣ用可変長符号テーブルデコーダ１０２から出力された復号化データはマルチプレクサ１０３に入力される。さらに、ＡＣ用可変長符号テーブルデコーダ１０２から出力された復号化データの一部が、ブロック内最終符号検出部１０６に入力される。ここで、復号化データの一部とは、後述するようにＥＯＢやそれ以外の符号による最終符号が挙げられる。
【００２４】
ここで、マルチプレクサ１０３は、ＤＣ用可変長符号テーブルデコーダ１０１の出力とＡＣ用可変長符号テーブルデコーダ１０２の出力のうち、いずれか一方を選択して出力する。この選択は、入力された符号化データの先頭に位置する符号が、ＤＣに割り当てられた符号であるかＡＣに割り当てられた符号であるかという情報に基づいて行われる。すなわち、ＤＣであればＤＣ用可変長符号テーブルデコーダ１０１の出力が選択され、ＤＣ以外であればＡＣ用可変長符号テーブルデコーダ１０２の出力が選択される。そして、マルチプレクサ１０３で選択されたデータは、一回のデコード動作における一つ目の復号化データ１として出力される。
【００２５】
また、本実施形態においてシフタ部１０４はバレルシフタであり、従来の技術で説明した図４に示す復号化装置におけるシフタ部４０４と同様の動作をするので、詳細な説明は省略する。本実施形態では、シフタ部１０４の出力は、ＡＣ用可変長符号テーブルデコーダ１０５及びマルチプレクサ１０７にそれぞれ並列に入力される。尚、ＡＣ用可変長符号テーブルデコーダ１０５は、従来の技術で説明した図４に示される復号化装置におけるＡＣ用可変長符号テーブルデコーダ４０６と同様の動作をするので、詳細な説明は省略する。
【００２６】
また、ＡＣ用可変長符号テーブルデコーダ１０５における可変長符号テーブルには、必ずしも全てのエントリが含まれている必要はなく、処理速度あるいはハードウェア規模の観点から、発生頻度の高いいくつかの符号語に対応するデータだけが含まれる構成であってもよい。但し、一部のエントリのみ含む構成であれば、入力された符号化データが当該一部のエントリに含まれる符号語と一致したか否かを表す信号が別途出力される必要がある。
【００２７】
ブロック内最終符号検出部１０６は、ＡＣ用可変長符号テーブルデコーダ１０２の出力に基づいて、ＡＣ用可変長符号テーブルデコーダ１０２においてデコードされた符号がブロック内における最終符号であるか否かを検出し、その検出結果を出力する。尚、本実施形態においては、出力結果がブロック内最終符号であった場合は「Ｈｉｇｈレベル」で表され、そうでない場合は「Ｌｏｗレベル」で表されるものとする。また、当該ブロック内最終符号であるか否かの判断は、例えば、単純にＡＣ用可変長符号テーブルデコーダ１０２においてデコードされた符号がＥＯＢを示すものであったか否かによって決定するようにしてもよい。その場合、ＥＯＢ以外のブロック内最終符号がきた時には、復号化データ２は有効でない旨の信号が別途出力される必要がある。
【００２８】
ブロック内最終符号検出部１０６の出力はマルチプレクサ１０７、１０８に並列に入力される。マルチプレクサ１０７に対する入力データは、ブロック内最終符号検出部１０６の出力がＨｉｇｈレベルである場合にはシフタ部１０４からの出力が選択され、Ｌｏｗレベルである場合には当該復号化装置に入力された符号化データが選択される。一方、マルチプレクサ１０８に対する入力データは、ブロック内最終符号検出部１０６の出力がＨｉｇｈレベルである場合にはＤＣ用可変長符号テーブルデコーダ１０１の出力が選択され、Ｌｏｗレベルである場合にはＡＣ用可変長符号テーブルデコーダ１０５の出力が選択され、一回のデコード動作における二つ目の復号化データ２として出力される。
【００２９】
尚、図示されないがバレルシフタであるシフタ部１０４の出力からは、シフタ部１０４に入力された符号化データの符号長分さらにシフトして次の符号の先頭ビットが先頭に来るようにさせる情報が、入力符号化データを生成する側へ送られる。これによって、次のサイクルにおける入力符号化データは、次の符号の頭出しがされた状態で入力される。このように上記処理を１サイクル内で行い、同様のサイクルを繰り返すことによって、復号化処理の高速化を実現している。
【００３０】
図５は、本実施形態に係る復号化装置によるデータ復号化方法の手順について説明するためのフローチャートである。すなわち、本復号化装置には、第１の符号化データと当該第１の符号化データがビットシフトされた第２の符号化データとを含む符号化データが入力され、第１の符号化データがＤＣ以外の場合、符号化時に使用されたＡＣ用可変長符号テーブルに基づいてＡＣ用可変長符号テーブルデコーダ１０２において第１の符号化データが復号化される（ステップＳ５０１）。また、シフタ部１０４では入力された符号化データをビットシフトして第２の符号化データを出力する（ステップＳ５０２）。ここで、マルチプレクサ１０７は、第１の符号化データ又は第２の符号化データのいずれかを選択する（ステップＳ５０３）。そして、マルチプレクサ１０７で選択された符号化データがＤＣの場合、ＤＣ用可変長符号テーブルデコーダ１０１は、符号化時に使用されたＤＣ用可変長符号テーブルに基づいて当該符号化データを復号化する（ステップＳ５０４）。さらに、マルチプレクサ１０３は、ＤＣ用可変長符号テーブルデコーダ又はＡＣ用可変長テーブルデコーダ１０３のいずれかによる復号化データを復号化データ１として選択する（ステップＳ５０５）。さらに、第２の符号化データがＤＣ以外の場合、ＡＣ用可変長符号テーブルデコーダ１０５は、符号化時に使用されたＡＣ用可変長符号テーブルに基づいて第２の符号化データを復号化する（ステップＳ５０６）。そして、ＤＣ用可変長符号テーブルデコーダ又はＡＣ用可変長符号テーブルデコーダ１０５のいずれかによる復号化データを復号化データ２として選択する（ステップＳ５０７）。
【００３１】
また、上記復号化装置は、ＡＣ用可変長符号テーブルデコーダ１０２による復号化データに基づいて復号化された符号化データがブロック内における最後の符号であるか否かを検出するブロック内最終符号検出部１０６をさらに備え、当該検出部の検出結果に基づいて、マルチプレクサ１０７が符号化データを選択し、マルチプレクサ１０８が復号化データを選択することを特徴とする。
【００３２】
尚、図１に示される復号化装置では、１サイクルに２つの符号を同時に復号化するが、以下では、当該１つの符号のうち１つ目の符号を復号する部分が処理している符号を「符号化データ１」と称し、２つ目の符号を復号する部分が処理している符号を、「符号化データ２」と称す。
【００３３】
次に、本実施形態に係る復号化装置の具体的な動作について説明する。
【００３４】
図２は、本実施形態に係る復号化装置に入力される符号化データの配列順を示す図である。図２において、ＤＣ１〜ＤＣ３はＤＣ（直流成分）に割り当てられた符号を表し、ＡＣ１〜ＡＣ６はＡＣ（交流成分）に割り当てられた符号を表し、また、ＥＯＢはＥＯＢに割り当てられた符号を表す。尚、Ｎｏ．１〜１１は、各符号の出現順序を示している。以下、図２に示す符号化データが入力された場合の本実施形態に係る復号化装置の動作例を詳細に説明する。
【００３５】
図３は、図２に示す符号化データが入力された場合の図１の復号化装置における各部から出力されるデータ例をサイクル毎に示した図である。
【００３６】
サイクル１においては、図２及び図３に示すように、ＤＣ１を先頭とした符号化データが入力される。尚、図３においては、符号入力の欄において符号の出現順に左から右に並べて記述している。サイクル１においては符号化データ１に相当する符号（本実施形態ではＤＣ１）がブロック内における最終符号ではないので、ブロック内最終符号検出部１０６はＬｏｗデータを出力し、従ってマルチプレクサ１０７、１０８では、それぞれ入力符号化データ、ＡＣ用可変長符号テーブルデコーダ１０５の出力が選択されて出力される。
【００３７】
また、ＤＣ用可変長符号テーブルデコーダ１０１にはマルチプレクサ１０７より出力された符号化データ１（すなわち、ＤＣ１）が入力され、当該ＤＣ１がデコードされて出力される。一方、ＡＣ可変長符号テーブルデコーダ１０２には入力符号化データ（ＤＣ１）が入力されるが、ＡＣではないので無効なデータが出力される。また、マルチプレクサ１０３においてはＤＣ１がＤＣであることから、ＤＣ可変長符号テーブルデコーダ１０１の出力が選択され、サイクル１における一つ目の復号化データ１として出力される。
【００３８】
また、マルチプレクサ１０３からの出力（すなわち、ＤＣ１）のうち符号長に相当する情報がシフタ部１０４へ入力され、シフタ部１０４においては入力符号化データがＤＣ１の符号長分だけシフトされ、シフタ部１０４からは次の符号であるＡＣ１を先頭とした符号化データ列が出力される。
【００３９】
そして、ＡＣ用可変長符号テーブルデコーダ１０５にはＡＣ１を先頭とした符号化データ列が入力され、当該ＡＣ１をデコードしてマルチプレクサ１０８へ出力する。ＡＣ１の復号化データは、ブロック内最終符号検出部１０６がＬｏｗデータを出力しているのでマルチプレクサ１０８において選択されてサイクル１における二つ目の復号化データ２として出力される。また、バレルシフタであるシフタ部１０４からは、ＡＣ１の符号長分さらにシフトされて次の符号ＡＣ２の先頭ビットが次の入力符号化データの先頭に来るようにする情報が入力符号化データを生成する側へ送られ、次のサイクル２において、入力符号化データは次の符号ＡＣ２の頭出しがされた状態で入力される。
【００４０】
サイクル２においては、上述したように入力符号化データよりＡＣ２を先頭とした符号が入力される。同じくサイクル２において符号１に相当する符号（本実施形態ではＡＣ２）がブロック内における最終符号ではないので、ブロック内最終符号検出部１０６はＬｏｗレベルを出力する。従って、マルチプレクサ１０７、１０８には、それぞれ入力符号化データ及びＡＣ用可変長符号テーブルデコーダ１０５の出力が選択されて入力される。また、ＤＣ用可変長符号テーブルデコーダ１０１においては、マルチプレクサ１０７より出力された符号（ＡＣ２）が入力されるが、ＤＣではないので無効なデータが出力される。
【００４１】
一方、ＡＣ用可変長符号テーブルデコーダ１０２には入力符号化データが入力され、ＡＣ２がデコードされて出力される。そして、マルチプレクサ１０３においてはＡＣ用可変長符号テーブルデコーダ１０２から出力されたＡＣ２がＤＣではないので選択され、サイクル２における一つ目の復号化データ１として出力される。また、マルチプレクサの出力のうちＡＣ２の符号長に相当する情報がシフタ部１０４へ入力され、シフタ部１０４においては入力符号化データがＡＣ２の符号長分だけシフトされ、次の符号であるＡＣ３を先頭とした符号化データ列を出力する。
【００４２】
ＡＣ用可変長符号テーブルデコーダ１０５においては、ＡＣ３を先頭とした符号化データ列が入力され、それをデコードしてマルチプレクサ１０８へと出力する。復号化されたＡＣ３のデータは、マルチプレクサ１０８において選択されてサイクル２における二つ目の復号化データ２として出力される。また、バレルシフタであるシフタ部１０４からは、ＡＣ３の符号長分さらにシフトされて次の符号ＥＯＢの先頭ビットが入力符号化データの先頭に来るようにする情報が入力符号化データを生成する側へ送られ、次のサイクル３において、入力符号化データは次の符号ＥＯＢの頭出しがされた状態で入力される。
【００４３】
サイクル３において、入力符号化データとしてＥＯＢを先頭とした符号が入力される。すなわち、サイクル３においては符号化データ１に相当する符号（本実施形態ではＥＯＢ）がブロック内における最終符号であるので、ブロック内最終符号検出部１０６はＨｉｇｈレベルを出力する。従って、マルチプレクサ１０７、１０８は、それぞれシフタ部１０４の出力、ＤＣ用可変長符号テーブルデコーダ１０１の出力を選択して出力する。また、ＡＣ用可変長符号テーブルデコーダ１０２には入力符号化データが入力され、ＥＯＢがデコードされて出力される。
【００４４】
また、マルチプレクサ１０３では、入力されたＥＯＢがＤＣではないので、ＡＣ用可変長符号テーブルデコーダ１０２の出力が選択され、サイクル３における一つ目の復号化データ１として出力される。また、マルチプレクサ１０３の出力のうち符号長に相当する情報がシフタ部１０４へ入力され、シフタ部１０４においては入力符号化データがＥＯＢの符号長分だけシフトされ、次の符号であるＤＣ２を先頭とした符号化データ列を出力する。そして、シフタ部１０４より出力された符号化データ列は、マルチプレクサ１０７に入力され選択されてＤＣ用可変長符号テーブルデコーダ１０１へ出力される。ＤＣ用可変長符号テーブルデコーダ１０１は、マルチプレクサ１０７より出力されてきたＤＣ２を先頭とした符号化データ列を復号化して出力する。そして、復号化されたＤＣ２のデータはマルチプレクサ１０８へ入力され、選択されてサイクル３における二つ目の復号化データ２として出力される。
【００４５】
ＡＣ用可変長符号テーブルデコーダ１０５には、シフタ部１０４の出力（ＤＣ２）が入力されるが、ＡＣではないため無効データを出力する。また、バレルシフタであるシフタ部１０４からは、ＤＣ２の符号長分さらにシフトされて次の符号ＡＣ４の先頭ビットが入力符号化データの先頭に来るような情報が入力符号化データを生成する側へ送られ、次のサイクルの符号は、次の符号ＡＣ４の頭出しがされた状態で入力される。
【００４６】
サイクル４においては、入力符号化データよりＡＣ４を先頭とした符号が入力される。サイクル４では、符号化データ１に相当する符号（本実施形態ではＡＣ４）がブロック内における最終符号ではないので、ブロック内最終符号検出部１０６はＬｏｗレベルを出力する。従って、マルチプレクサ１０７、１０８には、それぞれ入力符号化データ、ＡＣ用可変長符号テーブルデコーダ１０５の出力が選択されて入力される。また、ＤＣ用可変長符号テーブルデコーダ１０１には、マルチプレクサ１０７より出力された入力符号化データ（ＡＣ４）が入力されるが、ＤＣではないので無効なデータが出力される。
【００４７】
一方、ＡＣ用可変長符号テーブルデコーダ１０２には入力符号化データが入力され、ＡＣ４がデコードされて出力される。また、マルチプレクサ１０３においてはＡＣ４がＤＣではないので、ＡＣ用可変長符号テーブルデコーダ１０２の出力が選択され、サイクル４における一つ目の復号化データ１として出力される。また、マルチプレクサ１０３の出力のうち符号長に相当する情報がシフタ部１０４へ入力され、シフタ部１０４においては入力符号化データがＡＣ４の符号長分だけシフトされ、続く符号ＥＯＢを先頭とした符号化データ列を出力する。
【００４８】
ＡＣ用可変長符号テーブルデコーダ１０５には、当該ＥＯＢを先頭とした符号化データ列が入力され、かつデコードしてマルチプレクサ１０８に出力される。復号化されたＥＯＢのデータは、マルチプレクサ１０８において選択されてサイクル４における二つ目の復号化データ２として出力される。また、バレルシフタであるシフタ部１０４からは、ＥＯＢの符号長分さらにシフトされて次の符号ＤＣ３の先頭ビットが入力符号化データの先頭に来るような情報が入力符号を生成する側へ送られ、次のサイクルにおいて、入力符号化データは次の符号ＤＣ３の頭出しがされた状態で入力される。
【００４９】
以下、サイクル５以降においても同様に復号化処理が繰り返され、入力される符号化データが終了するまで継続される。
【００５０】
上述したように、本実施形態で説明したデータ復号化方法において対象となる符号化データは、周波数成分に変換された係数をＤＣ及びＡＣに分離され、それぞれに可変長符号を割り当てて符号化データストリームを形成する場合、ＤＣに割り当てられた符号、ＡＣに割り当てられた符号という順番で直交変換の単位となるブロック毎に形成され、これが符号化されるブロック数分だけ繰り返される。特にＡＣにあっては、非ゼロ成分とその直前まで連続したゼロ成分の数との組み合わせをシンボルとし、可変長符号に割り当てられる。また、ブロック内の最後のＡＣがゼロ成分である場合、ＥＯＢシンボルが可変長符号に割り当てられている。
【００５１】
そして、上記方法で可変長符号化されたデータでは、あるブロックのＤＣに割り当てられた符号に続く次の符号が、他のＤＣに割り当てられた符号であることはない。すなわち、ＤＣに割り当てられた符号が連続して発生することはない。このことは、１サイクルに２つの符号を同時に復号化する装置において、当該２つの符号のうち１つ目の符号を復号する部分が処理している符号（すなわち、符号化データ１）と、２つ目の符号を復号する部分が処理している符号（すなわち、符号化データ２）とが、同一サイクルにおいていずれもＤＣに割り当てられた符号であることはないということを意味している。
【００５２】
これを利用して、本実施形態においては、従来の復号化装置において符号化データ２を復号するために具備していたＤＣ用可変長符号テーブルデコーダを省略し、符号化データ２がＤＣである場合には、符号化データ１を復号する部分に具備しているＤＣ用可変長符号テーブルを用いて符号化データ２を復号化するようにした。これは、符号化データ１がブロック内における最終符号である場合は、当該符号化データ１が画像における最終ブロックに属しない限り符号化データ２は必ずＤＣであることに基づいている。
【００５３】
このように、本実施形態に係る復号化装置は、図４に示す従来の復号化装置と比較して、比較的大きな回路構成である可変長テーブルデコーダを１つ少なくした上で、復号化速度を損なうことのない復号化処理を行うことが可能である。尚、本実施形態に係る復号化装置は、図４に示す従来の復号化装置と比べて、新たにマルチプレクサ１つとブロック内最終符号検出部１つが増設されてはいるが、これらの回路規模は可変長テーブルデコーダの回路規模と比べて極めて小さい。したがって、本実施形態に係る復号化装置によれば、復号化速度を損なうことなく、従来の復号化装置よりも少ない回路規模で復号化を実現することを可能としている。
【００５４】
尚、本発明は、複数の機器（例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【００５５】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５６】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５７】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明した復号化手順に対応するプログラムコードが格納されることになる。
【００５８】
【発明の効果】
以上説明したように、本発明によれば、従来の復号化装置に比べてより小さな回路規模で、復号化速度を損うことなく復号化処理を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る復号化装置の構成を示すブロック図である。
【図２】本実施形態に係る復号化装置に入力される符号化データの配列順を示す図である。
【図３】図２に示す符号化データが入力された場合の図１の復号化装置における各部から出力されるデータ例をサイクル毎に示した図である。
【図４】１サイクルで複数の符号を復号化する従来の復号化装置の一構成例を示すブロック図である。
【図５】本実施形態に係る復号化装置によるデータ復号化方法の手順について説明するためのフローチャートである。
【符号の説明】
１０１  ＤＣ用可変長符号テーブルデコーダ
１０２、１０５  ＡＣ用可変長符号テーブルデコーダ
１０３、１０４、１０７、１０８    マルチプレクサ１０３
１０６  ブロック内最終符号検出部
【図１】
2004228898.tif 000003
【図２】
2004228898.tif 000004
【図３】
2004228898.tif 000005
【図４】
2004228898.tif 000006
【図５】
2004228898.tif 000007