(57)【要約】【課題】エントロピー復号化処理をハードウエアで実現するにおいて、高速なクロック周波数で動作させることを可能とする。【解決手段】入力されるビットストリームをエントロピー復号化して出力する復号化装置は、ビットストリームの入力に対して並列に設けられ、入力されたビットストリームを順次にシフトさせて保持するシフタ１０２、１０５を有する。ヘッダ解析器１０６はシフタ１０５と接続され、シフタ１０５より供給されるデータのうちヘッダ部に対応する符号データを復号する。また、デコーダ１０３は、シフタ１０２より供給されるデータのうち、シンボルデータに対応する符号データを復号して出力する。デコーダ１０３及びヘッダ解析器１０６のそれぞれは処理の進行に応じてシフト量１及びシフト量２を出力し、論理和回路１０４はこれらの論理和をとってシフト信号を生成し、シフタ１０２、１０５に供給する。【選択図】  図１
2005012455.tif 000002
【特許請求の範囲】
【請求項１】
入力されるビットストリームを復号化して出力する復号化装置であって、
ビットストリームの入力に対して並列に設けられ、入力されたビットストリームを順次にシフトさせて保持する第１及び第２シフタと、
前記第１シフタより供給されるデータのうち、ヘッダ部に対応する符号データを復号する第１処理部と、
前記第２シフタより供給されるデータのうち、シンボルデータに対応する符号データを復号して出力する第２処理部と、
前記第１及び第２処理部による処理の進行に応じてシフト信号を生成し、該シフト信号を該第１及び第２シフタに供給するシフト制御手段とを備えることを特徴とする復号化装置。
【請求項２】
前記第２処理部はハフマン復号化処理を実行することを特徴とする請求項１に記載の復号化装置。
【請求項３】
前記ビットストリームを入力して、前記第１及び第２シフタにバイトサイズ毎にビットストリームを出力するバイトオペレータを更に備えることを特徴とする請求項１に記載の復号化装置。
【請求項４】
前記第１処理部は所定のソフトウエアを実行することにより実現され、前記第２処理部はハードウエアで構成されることを特徴とする請求項１に記載の復号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、符号化された静止画像データ及び／又は動画像データに対する復号化処理に関し、特に、エントロピー復号化装置に関する。
【０００２】
【従来の技術】
従来より、静止画像や動画像の圧縮符号化技術の一部としてランレングス／カテゴリ符号化及び可変長符号化によるエントロピー符号化技術を使用する方式が良く知られている。これらの技術は国際標準であるＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）符号化方式及びＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）符号化方式においても採用されている。近年、エントロピー符号化の一実現手段として可変長符号としてハフマン符号表を用いた技術が数多く提案されている。一方、そのようなエントロピー符号化されたビットストリームに対する復号化技術は、符号化技術に比べて処理が複雑なこともあり、ハードウエア化には多くの技術的課題が存在している。特にハードウエアにおける復号化処理の高速化については、これまでも数多く提案されてきている。その一例としてのＭＰＥＧ−１符号化方式によって符号化されたビットストリームに対するエントロピー復号化装置を図２に示す。
【０００３】
バイトオペレータ２０１には、ＭＰＥＧ−１符号化方式によって符号化されたビットストリームが入力される。このビットストリームの構成の一例を図３に示す。図３に示すように、ビットストリームは大きくｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）に相当する部分とそれ以外の２つの部分に分類することが出来る。ｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）に相当する部分は、例えばＩピクチャにおいては画像データに対して直交変換と量子化処理を施した直交量子化係数に対して、値が零の直交量子化係数の連続する個数をＲＵＮとし、零ではない直交量子化係数の値をＬＥＶＥＬとした場合の２次元の情報に対してハフマン符号化処理を行った可変長符号化データである。ハフマン符号表としては、一般にはＩＳＯ／ＩＥＣ  １１１７２−２のＢ．５のＢ．５ａ〜Ｂ．５ｆが用いられる。なおここで、ＲＵＮ、ＬＥＶＥＬの組み合わせで表せる２次元情報をシンボルデータと呼ぶことにする。
【０００４】
また，図３において，ビットストリームを構成するｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）以外の部分は、総じてヘッダ部として扱うことが出来る。ヘッダ部としては、ｓｅｑｕｅｎｃｅ  ｈｅａｄｅｒ，ＧＯＰ  ｈｅａｄｅｒ，ｐｉｃｔｕｒｅ  ｈｅａｄｅｒ，ｓｌｉｃｅ  ｈｅａｄｅｒ，ｍａｃｒｏ  ｂｌｏｃｋ  ｈｅａｄｅｒなどがあり、復号化処理を行う上で必要な情報である、符号化時に使用したパラメータなどの付加情報やビットストリームのシンタックスの構造などが付加されている。
【０００５】
さて、符号化データを復号化する際には、要求される処理の特徴に応じてデータを分類し、それぞれに機能ブロックを割り当てるのが好ましい。図３で示される様なビットストリームに対して復号化処理を行う場合には、ｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）に相当する部分を復号化する機能ブロックとそれ以外のヘッダ部分を復号化する機能ブロックとに分類するのが適切である。ｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）に相当する部分の復号化処理はデータ量が非常に多く高速性が要求されるが、復号化処理のアルゴリズム自体は複雑ではなく、データパス型の回路構成が適しているのに対し、ヘッダ部の復号処理は、データ量は比較的少ないが、柔軟性が要求されるのでシーケンサやＣＰＵなどを利用したソフト処理が適しているからである。図２に示した構成では、デコーダ２０３がｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）に相当する部分の復号化処理を、ヘッダ解析器２０５がヘッダ部に相当する部分の復号化処理を実行する。
【０００６】
１つのビットストリームをデコーダ２０３及びヘッダ解析器２０５を用いて復号化処理するために、図２の復号化装置においては、シフタ２０２の出力をデコーダ２０３及びヘッダ解析器２０５に対してそれぞれ入力している。同一のビットストリームに対して２つの機能ブロックにおいて復号化処理を行っているために、デコーダ２０３及びヘッダ解析器２０５は同時には復号化処理を行なわずに、排他的に時分割で復号化処理を行うことになる。更に、デコーダ２０３及びヘッダ解析器２０５は、復号化処理を行った結果、処理済となったデータをシフタ２０２から廃棄させるべく、シフタ２０２からの廃棄データ量をそれぞれシフト量１及びシフト量２として出力する。選択器２０４は現在復号化処理を行っている方の機能ブロック（デコーダ２０３かヘッダ解析器２０５のいずれか）が出力する廃棄データ量（シフト量１又は２のいずれか）を選択してシフタ２０２に出力する。
【０００７】
【発明が解決しようとする課題】
これまで、ＭＰＥＧ符号化方式に対応した符号化及び復号化処理は、莫大な演算量が必要とされたためにハードウエア化が困難であった。しかしながら、近年の半導体プロセスの進歩によって、それらの処理のＬＳＩ化が可能となってきている。しかし、上述のような復号化処理をハードウエア化しようとした場合に最も困難となる機能ブロックは図２に示すようなエントロピー復号化処理を実現する機能ブロックである。図２のエントロピー復号化装置で示される様に、シフタ２０２の出力は、演算量の多い２つの機能ブロック、即ちデコーダ２０３及びヘッダ解析器２０５に接続される。このため、シフタ２０２の出力段のセルは、図４に示す様に多数の負荷をドライブしなければならないことになる。この様に一つのセルに対して多数の負荷が存在する場合には、通常、図５に示す様にバッファ回路をツリー状にセルと負荷との間に配置し、１つのセルがドライブしなければならない負荷の分散を図る。
【０００８】
しかし、図５に示す様な負荷分散の方法の場合には、多くの、論理上は無駄な回路が直列に接続されてしまうことになり、動作クロック周波数の向上が困難であった。更に、図５の様なツリー状に多数のバッファが存在する回路の場合には、実際の半導体マスク上にセルを配置して信号線を配線することが非常に困難であるという課題が存在した。
【０００９】
本発明は上記の課題に鑑みてなされたものであり、エントロピー復号化処理をハードウエアで実現するにおいて、高速なクロック周波数で動作可能とすることを目的とする。
【００１０】
【課題を解決するための手段】
上記の目的を達成するための本発明により復号化装置は以下の構成を備える。即ち、
入力されるビットストリームを復号化して出力する復号化装置であって、
ビットストリームの入力に対して並列に設けられ、入力されたビットストリームを順次にシフトさせて保持する第１及び第２シフタと、
前記第１シフタより供給されるデータのうち、ヘッダ部に対応する符号データを復号する第１処理部と、
前記第２シフタより供給されるデータのうち、シンボルデータに対応する符号データを復号して出力する第２処理部と、
前記第１及び第２処理部による処理結果に応じてシフト信号を生成し、外シフト信号を該第１及び第２シフタに供給するシフト制御手段とを備える。
【００１１】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１２】
［第１実施形態］
図１は、本発明をＭＰＥＧ−１符号化方式のエントロピー復号化処理に適用した実施形態を示す図である。
【００１３】
＜構成の説明＞
ＭＰＥＧ−１符号化方式で符号化されたビットストリーム（図３参照）はバイトオペレータ１０１に入力される。ヘッダモード／ＥＣＳ選択信号は第２実施形態による後述するＪＰＥＧ符号化方式による符号化データの復号化処理に使用されるものである。ＭＰＥＧ符号化方式の符号データのみを扱う場合には、当該信号及びこれに係る動作は不要である。
【００１４】
さて、バイトオペレータ１０１は入力されたビットストリームをシフタ１０２の空き容量に応じて、バイト単位にシフタ１０２に供給すると同時にシフタ１０５にも、まったく同一のデータを供給する。
【００１５】
シフタ１０２及びシフタ１０５は、バイトオペレータ１０１から入力されるビットストリームを現在内部に存在するビットストリームと随時結合するとともに、デコーダ及びヘッダ解析器から要求されたビット数分破棄する。シフタ１０２と１０５は並行して全く同一の動作を行う。すなわち、シフタ１０２及び１０５には、同一時刻にバイトオペレータ１０１より同一のデータが入力される。そして、同一時刻に論理和回路１０４からの入力に応じてシフタ１０１及びシフタ１０５から同一ビット長のデータが破棄される。またシフタ１０２及びシフタ１０５の出力もまったく同一であり、それぞれデコーダ１０３及びヘッダ解析器１０６に接続される。
【００１６】
デコーダ１０３は図３のビットストリーム中、ブロックレイヤーのｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）に相当する部分の復号化処理を行う。復号化処理の結果はＲＵＮ及びＬＥＶＥＬのシンボルデータとして図示しないエントロピー符号化の後段の機能ブロック（例えば逆ＤＣＴ処理等を実行する）に出力される。またヘッダ解析器１０６は、図３のビットストリーム中ブロックレイヤーのｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）以外のすべての部分の復号化処理を行う。ヘッダ解析器１０６の復号結果は、デコーダ１０３の様にデータとして図示しない後段に出力されるのではなく、当該データの復号化処理に必要なパラメータとしてデコーダ１０３及び後段の機能ブロックに出力される。
【００１７】
この様に回路規模が大きく複雑であるデコーダ１０３及びヘッダ解析器１０６に対して、それぞれシフタ１０２及びシフタ１０５という独立の機能ブロックからデータが入力されるので、シフタ１０２及びシフタ１０６の出力段のセルにかかる負荷が半減される。
【００１８】
＜動作の説明＞
図６は、図１に示すエントロピー復号化装置が図３に示すビットストリームを復号化した場合の動作タイミングを示すタイミングチャートである。図６中のＴ１で示される期間はデコーダ１０３は動作を中断しており、ヘッダ解析器１０６のみが動作している。Ｔ１の期間においてはデコーダ１０３のシフト量１信号として常時値０が出力される。ヘッダ解析器１０６はシフタ１０３から入力されるシフタデータ２信号を解析処理し、図３に示すｓｅｑｕｅｎｃｅ  ｈｅａｄｅｒからｍａｃｒｏｂｌｏｃｋ  ｈｅａｄｅｒ（ＭＢ  ｈｅａｄｅｒ）までのビットストリームを随時復号化する。１クロック周期でヘッダ解析器１０６において復号化を行う単位は、ｓｅｑｕｅｎｃｅ  ｈｅａｄｅｒからｍａｃｒｏｂｌｏｃｋ  ｈｅａｄｅｒ（ＭＢ  ｈｅａｄｅｒ）内の１つ或いは複数個のパラメータ値とする。またヘッダ解析器１０６は、シフト量２信号として、復号化処理の結果として得られたパラメータのビット長を出力して、シフタ１０２及びシフタ１０６に対してクロック毎に復号化済みのパラメータを破棄する様に要求する。上記のように、このＴ１期間においてシフト量１は０となっているので、シフト量２の値がシフタ１０２及び１０６に供給され、ヘッダ解析器１０６によって処理済となったデータ（ビットストリーム）が破棄されることになる。また、ヘッダ解析器１０６からデコーダ１０３に対して入力される処理要求信号は、Ｔ１期間は常時ネゲートされる。これにより、デコーダ１０３の復号化処理動作は中断される。本エントロピー復号化装置の出力データであるシンボルデータ信号は、デコーダ１０３の動作が中断しているので、有効なデータとなっていない。
【００１９】
次にＴ２の期間について説明する。Ｔ２の期間の最初のクロック周期においては、シフタデータ１信号及びシフタデータ２信号にはｂｌｏｃｋ（０）のＤＣ係数に相当するハフマン符号が頭出しされている。ヘッダ解析器１０６では、ｍａｃｒｏｂｌｏｃｋ  ｈｅａｄｅｒまでの復号化処理が完了したので、ＭＰＥＧ−１のシンタックスからビットストリーム上の次のデータはｂｌｏｃｋ（０）のＤＣ係数であることがわかっている。そこで、ヘッダ解析器１０６はデコーダ１０３に対して処理要求信号をアザートすることで、デコーダ１０３の復号化処理動作の開始を要求する。
【００２０】
一方、デコーダ１０３は処理要求信号がアザートされたことを受けて、シフタデータ１信号を入力データとしてｂｌｏｃｋ（０）〜ｂｌｏｃｋ（５）のハフマン符号を復号化する。そして、得られたシンボルデータを随時シンボルデータ信号として出力する。なお、Ｔ２の期間において復号化されるシンボルデータはマクロブロックを構成する６つのブロックに対応するものである。デコーダ１０３において６つのブロックの復号化処理を完了した場合には、デコーダ１０３は完了通知信号をヘッダ解析器１０６に対してアザートする。なお、ヘッダ解析器１０６から出力されるシフト量２信号の値は、Ｔ２期間においては常時０である。よって、デコーダ１０３からのシフト量１の値が論理和回路１０４からシフタ１０２と１０５に供給され、デコーダ１０３によって処理済となったデータ（ビットストリーム）が破棄されることになる。
【００２１】
次にＴ３の期間について説明する。Ｔ３の期間の最初のクロック周期においては、シフタデータ１信号及びシフタデータ２信号には、Ｔ２期間で処理されたマクロブロックの次のマクロブロックに対応するｍａｃｒｏｂｌｏｃｋ  ｈｅａｄｅｒが頭出しされている。ヘッダ解析器１０６は、デコーダ１０３から完了通知信号がアザートされたことを受けて、入力されてくるシフタデータ２信号（ここではｍａｃｒｏｂｌｏｃｋ  ｈｅａｄｅｒ）に対して復号化処理を開始する。この期間のヘッダ解析器１０６及びデコーダ１０３の動作は上述したＴ１の期間の動作と同様である。ヘッダ解析器１０６はｍａｃｒｏｂｌｏｃｋ  ｈｅａｄｅｒの復号化処理が完了したら、Ｔ１の期間の最後のクロック周期と同様に処理要求信号をデコーダ１０３に対してアザートする。
【００２２】
以降、Ｔ４の期間における本実施形態のエントロピー復号化装置の動作はＴ２の期間の動作と同様であり、更にＴ５の期間における動作は上述したＴ３の期間と同様である。
【００２３】
以上の様に、デコーダ１０３とヘッダ解析器１０６にデータを供給するためのシフタを、別々に設けたので、出力段のセルにかかる負荷が半減される。このため、図５に示すようなツリー状のバッファ回路の段数を減少させることができ、高速な復号化処理を実現することができる。
【００２４】
［第２実施形態］
第１実施形態では、ＭＰＥＧ符号化方式による符号データのエントロピー復号化処理について説明した。第２実施形態では、本発明をＪＰＥＧ符号化方式による符号かデータのエントロピー復号化処理に適用した例を示す。
【００２５】
＜構成の説明＞
ＪＰＥＧ符号化方式に対応した第２実施形態によるエントロピー復号化装置も、第１実施形態において説明した図１のエントロピー復号化装置と同じ構成で実現される。但し、ヘッダ解析器１０６をＣＰＵで構成する場合にはそのソフトウエアが、またシーケンサなどのハードウエアコントローラで構成する場合には対応する論理回路が、ＪＰＥＧ符号化方式のヘッダ処理に対応したものとなる。
【００２６】
またデコーダ１０３は、ＪＰＥＧ符号化方式で使用されるハフマンテーブルに対応したハフマン復号化回路とする。なお、ＭＰＥＧ−１符号化方式及びＪＰＥＧ符号化方式の両符号データに対応できるように、処理を切換可能に構成してもよい。この場合、ＭＰＥＧ−１符号化方式に対応したハフマン復号化回路とＪＰＥＧ符号化方式のハフマン復号化回路をそれぞれデコーダ１０３内に構成して、符号化方式によって切り換え可能とするとともに、ヘッダ解析器１０６は各符号化方式に対応した処理への切換を可能に構成する。なお、入力されたビットストリームに応じて自動的に切換可能に構成してもよい。この場合、例えば、ビットストリームの先頭のデータとしてＪＰＥＧストリームの先頭を表すＳＯＩマーカ（０ｘＦＦ８）を検出した場合にはＪＰＥＧとして、それ以外のデータが入力された場合にはＭＰＥＧとして動作するように構成すればよい。
【００２７】
また、バイトオペレータ１０１は、ヘッダ解析器１０６から入力されるヘッダモード／ＥＣＳ選択信号がネゲート（＝Ｌｏｗ）状態の場合には、ビットストリーム中のバイト境界に発生するバイトデータ０ｘＦＦを検出した時に、すぐ後のバイトデータとして０ｘ００をシフタ１０２に出力する。ＭＰＥＧ符号化方式とＪＰＥＧ符号化方式の符号化データの復号化を切換て実行可能とする場合であって、ＭＰＥＧ符号化方式による符号化データの復号化処理を実行する場合には、ヘッダモード／ＥＣＳ選択信号は常時アザート（＝Ｈｉｇｈ）に固定しておく。
【００２８】
＜動作の説明＞
図８は、図１に示すエントロピー復号化装置が図７に示すビットストリームを復号化した場合の動作タイミングを示すタイミングチャートである。第１実施形態で示したタイミングチャート（図６）と第２実施形態のタイミングチャート（図８）において、デコーダ１０３及びヘッダ解析器１０６の動作期間とＴ１〜Ｔ５が同様に対応していることがわかる。
【００２９】
ＪＰＥＧ符号化方式においては、復号化処理に必要なパラメータ情報はビットストリームの先頭部分に集約されている。図８のＴ１の期間にヘッダ解析器１０６によってパラメータが抽出されて、復号化に必要なパラメータがデコーダ１０３に設定される。また、Ｔ１の期間では、ヘッダ解析器１０６がヘッダモード／ＥＣＳモード選択信号をアザートし、現在入力されているデータが図７に示すビットストリームのＪＰＥＧ  ｈｅａｄｅｒ部分であることをバイトオペレータ１０１に通知する。バイトオペレータ１０１は、ＪＰＥＧ  ｈｅａｄｅｒ部分のビットストリームについては、バイト境界に出現するバイトデータ０ｘＦＦの後につづく０ｘ００を破棄せず、そのままシフタ１０２にデータを転送する。
【００３０】
次にＴ２の期間の説明を行う。Ｔ２の期間では図７のＥＣＳ部分に対応する部分の復号化処理を行う。ＥＣＳ部分はデコーダ１０３において復号化される。ヘッダ解析器１０６は、ＪＰＥＧ  ｈｅａｄｅｒ部分の復号化が完了した時点において、処理要求信号をアザートするに先立ち、リスタートインターバル周期の設定をデコーダ１０３に対して行う。図７に示されるリスタートマーカはリスタートインターバルで指定された周期で出現する。より具体的には、ＪＰＥＧのヘッタ内のＤＲＩマーカ（０ｘＦＦＤＤ）に続くＲＩパラメータで指定されたＭＣＵ数毎にリスタートマーカが出現する。従って、、ヘッタ解析器１０６によって得られたＲＩの値を設定することにより、リスタートインターバル周期が設定される。デコーダ１０３は、ＥＣＳの復号化処理がリスタートインターバル周期に達すると動作完了信号をヘッダ解析器１０６に対してアザートし、復号化処理を中断する。
【００３１】
Ｔ３の期間においては、ヘッダ解析器１０６はシフタ１０５に頭出しされているリスタートマーカをシフトアウトし、再度デコーダ１０３に対して処理要求信号をアザートしてＥＣＳ部分の復号化処理を再開する。Ｔ２及びＴ３期間の動作をビットストリームの最後まで繰り返すことによって、ＪＰＥＧ符号化方式のビットストリームを高速に復号化することが可能である。
【００３２】
以上説明したように、上記各実施形態によれば、ＭＰＥＧ符号化方式或いはＪＰＥＧ符号化方式による符号化データのビットストリームが入力されるエントロピー復号化装置において、バイト単位に区切られたビットストリームが並列に構成された２つのシフタに対して同時に入力される。また、ヘッダ解析器或いはデコーダによって復号化処理が行われた結果得られるシフト量に応じて２つのシフタが同時にデータを破棄する。このように、エントロピー復号化装置をハードウエアにおいて実現する場合に、シフタを並列に持つことによって高速なクロック周波数で動作させることが可能となった。更に、シフタを構成するセルがドライブしなければならない負荷の分散が行えるので、大規模なバッファツリーの必要性を回避でき、レイアウト設計及びレイアウト工程が簡素化される。
【００３３】
【発明の効果】
以上説明したように本発明によれば、エントロピー復号化処理をハードウエアで実現するにおいて、高速なクロック周波数で動作させることが可能となる。
【図面の簡単な説明】
【図１】実施形態によるエントロピー復号化装置の構成を示すブロック図である。
【図２】一般的なエントロピー復号化装置の構成を示すブロック図である。
【図３】ＭＰＥＧ−１符号化方式によるビットストリームのデータ構成を示す図である。
【図４】１つの半導体セルが多くの負荷をドライブしている様子を表す図である。
【図５】図４の状態を回避するためにバッファをツリー状に構成した様子を示す図である。
【図６】第１実施形態によるエントロピー復号化装置のタイミングチャートである。
【図７】ＪＰＥＧ符号化方式によるビットストリームのデータ構成を示す図である。
【図８】第２実施形態によるエントロピー復号化装置のタイミングチャートである。
【図１】
2005012455.tif 000003
【図２】
2005012455.tif 000004
【図３】
2005012455.tif 000005
【図４】
2005012455.tif 000006
【図５】
2005012455.tif 000007
【図６】
2005012455.tif 000008
【図７】
2005012455.tif 000009
【図８】
2005012455.tif 000010