(57)【要約】【課題】従来の画像復号装置では、逆量子化回路と逆離散コサイン変換回路は全てのＤＣＴ係数を全部演算することで一回路当りの演算量を一定としているため、演算時間が一定となり、これ以上の演算速度の向上や消費電力の削減が難しい。【解決手段】逆量子化回路１２は、否ゼロのＤＣＴ係数のみに対し逆量子化処理を施す。ゼロ／否ゼロ判定回路１９は、逆量子化されたＤＣＴ係数が否ゼロのＤＣＴ係数であるか否かを示す否ゼロフラグを生成すると共に、１行分のＤＣＴ係数が全て０か否かを示す行ゼロフラグと１列分のＤＣＴ係数が全て０か否かを示す列ゼロフラグを生成する。逆ＤＣＴ回路１４は、ゼロ／否ゼロ判定回路１９からの行ゼロフラグと列ゼロフラグと否ゼロフラグに基づいて、同じ行又は同じ列に０ではないＤＣＴ係数がある否ゼロの行及び列のＤＣＴ係数をバッファメモリ１３から読み出して、１次元ＤＣＴ処理を行う。【選択図】図１
2007104155.tif 000002
【特許請求の範囲】
【請求項１】
画像信号を所定画素数のブロックに分割し、その分割した各ブロック毎に離散コサイン変換して得た２次元ＤＣＴ係数を量子化した信号から復号画像信号を得る画像復号装置において、
前記２次元ＤＣＴ係数を量子化した信号から、否ゼロのＤＣＴ係数のみに対し、予め与えられた量子化ステップサイズと量子化テーブルの値との乗算による逆量子化処理を施す逆量子化回路と、
少なくとも前記逆量子化回路から出力された前記各ブロックのうちの１ブロック分の前記２次元ＤＣＴ係数を一時蓄積するバッファメモリと、
前記バッファメモリに蓄積されている前記２次元ＤＣＴ係数を行方向又は列方向に読み出して、行方向又は列方向の１次元逆離散コサイン変換して、前記バッファメモリに書き戻した後、今度は前記バッファメモリに蓄積されている２次元ＤＣＴ係数を列方向又は行方向に読み出して、列方向又は行方向の１次元逆離散コサイン変換を施すことにより、前記２次元ＤＣＴ係数に対して行方向と列方向とのそれぞれについて逆離散コサイン変換して得たフレーム間予測誤差信号を出力する逆離散コサイン変換回路と、
前記逆量子化回路からの信号に基づき、前記１ブロック分の前記２次元ＤＣＴ係数を構成する複数のＤＣＴ係数について、逆量子化された否ゼロのＤＣＴ係数であるか否かを示す否ゼロフラグを生成すると共に、その否ゼロフラグを用いて前記２次元ＤＣＴ係数における１行分のＤＣＴ係数が全て０か否かを示す行ゼロフラグと１列分のＤＣＴ係数が全て０か否かを示す列ゼロフラグとを、前記１ブロック分の２次元ＤＣＴ係数の全ての行と全ての列とについて生成するゼロ／否ゼロ判定回路と
を有し、前記逆離散コサイン変換回路は、前記ゼロ／否ゼロ判定回路からの前記行ゼロフラグと前記列ゼロフラグと前記否ゼロフラグとに基づいて、同じ行又は同じ列に０ではないＤＣＴ係数がある否ゼロの行及び列の前記ＤＣＴ係数を前記バッファメモリから読み出して、１次元逆離散コサイン変換処理を行うことを特徴とする画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像復号装置に係り、特にＭＰＥＧ方式で圧縮符号化された動画像信号のビットストリームを復号する画像復号装置に関する。
【背景技術】
【０００２】
ビデオ信号（画像信号）をコンパクトディスク（ＣＤ）のような比較的狭帯域のディジタルストレージメディアに格納することを目的に、格納対象のビデオ信号に対して高能率符号化処理が施される。国際標準化組織ＩＳＯ−ＩＥＣＪＴＣ１／ＳＣ２／ＷＧ１１（以下、通称ＭＰＥＧ（Moving Picture Experts Group））で、１.５Ｍｂｐｓ相当のメディアに対応した符号化方式が検討され、その検討方式の概要が文献にて公開されている（例えば、非特許文献１参照）。この文献によれば、動き補償フレーム間予測と離散コサイン変換（ＤＣＴ:Discrete Cosine Transform）、量子化、可変長符号化を組み合わせたハイブリッド符号化方式であり、ＶＴＲのＶＨＳ（登録商標）規格相当の画質を実現する。
【０００３】
また、現行ＴＶ放送の画質を保って１５Ｍｂｐｓ以内（実用３〜８Ｍｂｐｓ）に圧縮するＭＰＥＧ２方式も標準化されている。これらの方式は、いずれもビデオ信号の圧縮にフレーム間予測方式と離散コサイン変換を用いている。また、主にＴＶ電話／会議の動画圧縮方式として用いられている、国際電気通信連合電気通信標準化部門（ＩＴＵ−Ｔ）で策定されたＨ.２６１も、同様にフレーム間予測方式と離散コサイン変換を用いている。
【０００４】
こうしたＭＰＥＧ方式等に基づいて圧縮されたビデオ信号をリアルタイム復号するには、可変長復号、逆ジグザグ変換、逆量子化、逆ＤＣＴ、動き補償という一連の処理をハードワイアドロジックで高速処理することが多い。このとき、可変長符号は、信号により符号量が異なるため、可変長復号処理に要する処理時間も信号により大きく変動する。一方、逆量子化や逆ＤＣＴは信号によらず一定である。このため、可変長復号結果に対し以降の処理を施す前に一旦メモリに格納し、処理時間差を吸収させる必要がある。
【０００５】
この復号処理をハードウェアで行う従来の画像復号装置としてのデコーダＬＳＩ（Large Scale Integrated Circuit）が知られている（例えば、非特許文献２参照）。このデコーダＬＳＩによれば、可変長復号及びランレングス復号して得られた固定長符号を、一旦メモリ回路に格納している。メモリ回路に格納された固定長符号は、符号化時におけるジグザグスキャン順からブロックスキャン順に戻しながら読み出され、逆量子化と逆ＤＣＴを施され、別のメモリ回路に格納される。
【０００６】
更に、動き補償回路によってフレーム間予測信号を再生し、逆ＤＣＴ結果と加算することで復号画像を得ている。ブロックによってフレーム間予測方式が異なることから、動き補償処理も処理時間に違いが出るので、ＤＣＴまでの処理との処理時間差を吸収するためにＤＣＴ結果を格納するメモリ回路が配置されている。
【０００７】
このデコーダＬＳＩにおけるメモリ回路配置では、可変長復号処理の時間調整用メモリは逆量子化前に配置し、そこで、ジグザグスキャン順からブロックスキャン順への変換も実現している。これは、時間調整機能とスキャン変換機能を重ねさせることで、メモリの節約を図り、更に、逆量子化によってデータのダイナミックレンジが拡大する前にメモリ回路を配置することで、データの格納に必要な記憶容量を少なくできるからである。例えば、ＭＰＥＧ１方式では、逆量子化前のビット幅は９ビット、逆量子化後は１２ビットに増加するため、１データあたり３ビットのメモリ節約となる。
【０００８】
次に、上記の従来の回路構成の問題点を図１０を用いながら説明する。ここでは、可変長復号から逆離散コサイン変換までのデコード処理部分のみを抽出して記している。逆離散コサイン変換までの処理は、可変長復号回路４１、逆ジグザグ変換回路４２、逆量子化回路４３、逆離散コサイン変換回路４４、転置用メモリ４５により実現される。逆ジグザグ変換回路４２は、可変長復号回路４１と逆量子化回路４３の間に配置され、可変長復号回路４１の出力を一旦内部のメモリに蓄えることで逆ジグザグスキャン変換を行い逆量子化回路へのデータ供給に用いる。この逆ジグザグ変換回路４２は、内部メモリへの書き込み時もしくは読み出し時に、ジグザグスキャン順からブロック内ラスタ走査順にメモリのアドレス発生順を入れかえることによって、逆ジグザグスキャン変換を実現する。
【０００９】
逆離散コサイン変換回路４４では、逆量子化されたデータが例えば８個揃った時点で行方向の逆コサイン変換を施し、結果を転置用メモリ４５に書き込んで行く。逆量子化回路４３から供給されるデータに行方向変換を施し終えた時点で逆離散コサイン変換回路４４は転置用メモリ４５からデータを読み出し、列方向の逆コサイン変換を施しながら後段に出力する。この様に、逆離散コサイン変換回路４４を行／列双方に時分割で用いる場合は、列方向の逆コサイン変換を施している間は逆量子化回路４３の出力は受け付けられないため、逆量子化回路４３は待ち状態となる。言い替えれば、逆離散コサイン変換回路４４が行方向変換を実行する時間にタイミングを合わせて逆量子化処理を済ませなければならず、そのために逆量子化回路４３の回路を並列化するなどして高速化している。
【００１０】
一方、図１０の逆離散コサイン変換回路４４を２個用意し、転置メモリ４５を挟んで行変換と列変換を同時動作させると、逆量子化回路４３が待ち状態となることは回避できる。しかしながら、この場合は、逆量子化回路４３よりも演算量の多い逆離散コサイン変換回路４４を２組搭載することに伴う回路規模増大を招いてしまう。
【００１１】
そこで、上記の課題を解決するために、従来図１１のブロック図の構成とした画像復号装置が知られている（例えば、特許文献１参照）。この図１１に示す従来の画像復号装置では、画像信号をＭＰＥＧ方式により圧縮して得られた圧縮ビデオストリームが可変長復号回路５１に供給されて固定長符号列に変換された後、逆量子化回路５２で予め与えられた量子化ステップサイズと量子化テーブルの値の乗算による逆量子化が施されてバッファメモリ５３に書き込まれる。
【００１２】
バッファメモリ５３から読み出されたデータは、逆離散コサイン変換回路５４により行方向の１次元逆離散コサイン変換（ＤＣＴ）が施されて、一旦バッファメモリ５３に書き戻された後に、再度読み出されて列方向の１次元ＤＣＴが施される。このようにして逆離散コサイン変換回路５４によりＤＣＴが施されて取り出されたフレーム間予測誤差信号は、バッファメモリ５５に格納される。
【００１３】
一方、フレームメモリ６０には、復号された画像信号が格納されている。予測信号生成回路５９は以前に復号されフレームメモリ６０に格納された画像信号からフレーム間予測信号を生成し、バッファメモリ５８に格納する。バッファメモリ５５及び５８からそれぞれ読み出された信号は、フレーム加算回路５７で加算されることにより復号画像信号とされてフレームメモリ６０に格納される。タイミング制御回路５６は、可変長復号回路５１、バッファメモリ５３、フレーム加算回路５７の起動タイミングを調整することにより、全体の制御を行う。
【００１４】
この従来の画像復号装置によれば、逆量子化回路５２と逆離散コサイン変換回路５４との間に配置されたバッファメモリ５３を用いて、パイプライン処理が可能となり、メモリ個数を削減して効率的な処理を行うようにしている。
【００１５】
【非特許文献１】米満潤、技術解説「ＭＰＥＧ標準案ビデオパート（ＩＳＯ  １１１７２  ＶＩＤＥＯ）」、画像電子学会、画像電子学会誌第２０巻第４号３０６〜３１６頁
【非特許文献２】１９９４年電子情報通信学会春季大会Ｃ−６５８
【特許文献１】特開平８−３０７８６８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、図１０に示した構成の従来の画像復号装置では、逆量子化回路４３と逆離散コサイン変換回路４４の演算量を固定（全てのＤＣＴ係数を全部演算することで一回路当りの演算量を一定）としているため、また、図１１に示した構成の従来の画像復号装置では、逆離散コサイン変換回路５４での演算量を固定（全てのＤＣＴ係数を全部演算することで演算量を一定）としているため、何れの従来の画像復号装置も、演算時間が一定となり、これ以上の演算速度を得ることは困難であり、また、これ以上の消費電力の削減は難しい。
【００１７】
本発明は以上の点に鑑みなされたもので、高速な復号動作を行うことができると共に、消費電力も低減し得る画像復号装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の目的を達成するため、本発明は、所定画素数のブロックに分割し、その分割した各ブロック毎に画像信号を離散コサイン変換して得た２次元ＤＣＴ係数を量子化した信号から復号画像信号を得る画像復号装置において、２次元ＤＣＴ係数を量子化した信号から、否ゼロのＤＣＴ係数のみに対し、予め与えられた量子化ステップサイズと量子化テーブルの値との乗算による逆量子化処理を施す逆量子化回路と、少なくとも逆量子化回路から出力された各ブロックのうちの１ブロック分の２次元ＤＣＴ係数を一時蓄積するバッファメモリと、バッファメモリに蓄積されている２次元ＤＣＴ係数を行方向又は列方向に読み出して、行方向又は列方向の１次元逆離散コサイン変換して、バッファメモリに書き戻した後、今度はバッファメモリに蓄積されている２次元ＤＣＴ係数を列方向又は行方向に読み出して、列方向又は行方向の１次元逆離散コサイン変換を施すことにより、２次元ＤＣＴ係数に対して行方向と列方向とのそれぞれについて逆離散コサイン変換して得たフレーム間予測誤差信号を出力する逆離散コサイン変換回路と、逆量子化回路からの信号に基づき、１ブロック分の２次元ＤＣＴ係数を構成する複数のＤＣＴ係数について、逆量子化された否ゼロのＤＣＴ係数であるか否かを示す否ゼロフラグを生成すると共に、その否ゼロフラグを用いて２次元ＤＣＴ係数における１行分のＤＣＴ係数が全て０か否かを示す行ゼロフラグと１列分のＤＣＴ係数が全て０か否かを示す列ゼロフラグとを、１ブロック分の２次元ＤＣＴ係数の全ての行と全ての列とについて生成するゼロ／否ゼロ判定回路とを有し、逆離散コサイン変換回路は、ゼロ／否ゼロ判定回路からの行ゼロフラグと列ゼロフラグと否ゼロフラグとに基づいて、同じ行又は同じ列に０ではないＤＣＴ係数がある否ゼロの行及び列のＤＣＴ係数をバッファメモリから読み出して、１次元逆離散コサイン変換処理を行うことを特徴とする。
【００１９】
この発明では、逆量子化回路では、否ゼロのＤＣＴ係数に対してのみ逆量子化処理を施し、また、逆離散コサイン変換回路では、ゼロ／否ゼロ判定回路からの行ゼロフラグと列ゼロフラグと否ゼロフラグに基づいて、同じ行又は同じ列に０ではないＤＣＴ係数がある否ゼロの行及び列のＤＣＴ係数をバッファメモリから読み出して、１次元逆離散コサイン変換処理を行うようにしたため、量子化されているゼロのＤＣＴ係数に対する逆量子化処理を省略できると共に、逆離散コサイン変換回路は、ゼロ／否ゼロ判定回路からの行ゼロフラグと列ゼロフラグと否ゼロフラグに基づいて、同じ行又は同じ列に０ではないＤＣＴ係数がある否ゼロの行及び列のＤＣＴ係数だけをバッファメモリから読み出して、１次元逆離散コサイン変換処理を行うことができる。
【発明の効果】
【００２０】
本発明によれば、量子化されているゼロのＤＣＴ係数に対する逆量子化処理を省略すると共に、２次元ＤＣＴ係数のうち同じ行又は同じ列に０ではないＤＣＴ係数がある否ゼロの行及び列のＤＣＴ係数だけに対して逆離散コサイン変換処理を行うようにしたため、ゼロのＤＣＴ係数に対する逆量子化処理のための演算を省略できると共に、すべてゼロのＤＣＴ係数からなる行や列を構成する複数のＤＣＴ係数の逆離散コサイン変換処理のための演算も省略でき、更に、すべてゼロのＤＣＴ係数からなる行や列を構成する複数のＤＣＴ係数をバッファメモリからは読み出さず、またその変換結果も書き込まないので、バッファメモリのアクセスを削減でき、以上より、短時間で逆量子化処理及び逆離散コサイン変換処理ができ、また、演算時間が短くなった分だけ、逆量子化回路や逆離散コサイン変換回路の動作を停止しておけるのでその分消費電力を削減できる。また、画像復号装置の動作電源がバッテリである場合は、上記の消費電力の削減に伴い、バッテリの長寿命化も実現できる。
【発明を実施するための最良の形態】
【００２１】
図１は本発明になる画像復号装置の一実施の形態のブロック図を示す。同図に示すように、本実施の形態の画像復号装置は、可変長復号回路１１、逆量子化回路１２、バッファメモリ１３及び１５、逆ＤＣＴ回路１４、動き補償回路１６、フレームメモリ１７、タイミング制御回路１８、及びゼロ／否ゼロ判定回路１９より構成される。
【００２２】
ＭＰＥＧ方式等で動画像信号を圧縮符号化して得られた圧縮ビデオストリームが、可変長復号回路１１に供給され、ここで可変長復号されて、量子化されているＤＣＴ係数からなる固定長符号列に変換された後、逆量子化回路１２に供給される。逆量子化回路１２では、入力された固定長符号列に対し、予め与えられた量子化ステップサイズと量子化テーブルの値の乗算による逆量子化処理を施し、復号したＤＣＴ係数をバッファメモリ１３に書き込む。逆量子化を施すデータの順番は可変長復号で得られるデータ順、すなわち、ジグザグスキャン順であるが、バッファメモリ１３に格納する際にジグザグスキャン順に対応したアドレスを発生させることによって、逆ジグザグスキャン変換を施す。また、このとき対応するゼロ／否ゼロ判定回路１９のレジスタをセットする。
【００２３】
バッファメモリ１３に書き込まれたデータは、１ブロック当り２次元配置された複数のＤＣＴ係数（２次元ＤＣＴ係数）を構成しており、逆ＤＣＴ回路１４により２次元ＤＣＴ係数がその行方向又は列方向に読み出され、ゼロ／否ゼロ判定回路１９の結果により、行方向（あるいは列方向）の１次元逆ＤＣＴを施される。行方向（あるいは列方向）に逆ＤＣＴが施されたデータは、一旦バッファメモリ１３に書き戻された後に、今度は列方向又は行方向に読み出され、今度は列方向（あるいは行方向）の１次元逆ＤＣＴが施される。このようにして、逆ＤＣＴ回路１４で２次元ＤＣＴ係数が行方向と列方向のそれぞれについて逆ＤＣＴされることにより、フレーム間予測誤差信号が得られ、このフレーム間予測誤差信号はバッファメモリ１５に格納される。
【００２４】
一方、フレームメモリ１７には、復号された画像信号が格納されている。動き補償回路１６はフレームメモリ１７に格納された画像データからフレーム間予測信号を生成した後、そのフレーム間予測信号とバッファメモリ１５から読み出したフレーム間予測誤差信号とをそれぞれ加算して復号画像信号を得、その復号画像信号をフレームメモリ１７に格納する。タイミング制御回路１８は、横方向８つ、縦方向８つのＤＣＴ係数のブロック毎に、逆量子化回路１２、逆ＤＣＴ回路１４、動き補償回路１６その他各回路の動作のタイミング、逆量子化回路１２、逆ＤＣＴ回路１４、動き補償回路１６その他各回路へ接続されたクロックの制御などを行う。
【００２５】
図２は図１中の可変長復号回路１１の一実施の形態の概略ブロック図を示す。可変長復号回路１１は、バレルシフタ回路１１１、復号回路１１２及び可変長復号テーブル１１３からなる。図２において、図１のタイミング制御回路１８からのスタート信号により動作を開始する。動作を開始すると、まず、可変長復号回路１１は入力された圧縮ビットストリームをバレルシフタ回路１１１に蓄える。
【００２６】
復号回路１１２はバレルシフタ回路１１１内の入力圧縮ビットストリームのデータ列と、可変長復号テーブル１１３の内容とから、データ列の可変長符号の符号長、ゼロラン（以下、ゼロランレングスともいう）、量子化されているＤＣＴ係数を復号する。復号された符号長はバレルシフタ回路１１１に渡され、バレルシフタ回路１１１は符号長の分だけ内部のデータ列を、次の可変長符号の復号のためにシフトする。復号されたゼロランと量子化されているＤＣＴ係数は、復号結果が有効であることを示す信号であるデータイネーブルと共に、図１の逆量子化回路１２に出力される。つまり、否ゼロの量子化されているＤＣＴ係数だけが逆量子化回路１２に出力される。
【００２７】
続いて、シフトされたバレルシフタ回路１１１のデータ列と可変長復号テーブル１１３の内容とから復号回路１１２は次の復号を行い、以後上記復号を繰り返す。ただし、ストリーム中にはＤＣＴ係数以外のブロックの終了を示すＥＯＢ（エンドオブブロック）符号が挿入されており、復号回路１１２にてＥＯＢ符号が復号されたときには、エンドオブブロック信号を逆量子化回路１２に出力し、タイミング制御回路１８にエンド信号を出力した後、復号回路１１２は動作を停止する。ゼロランの分ゼロを出力する必要がないため、その分回路の動作は速くなる。
【００２８】
図３は図１中の逆量子化回路１２の一実施の形態の概略ブロック図を示す。図３に示すように、逆量子化回路１２は、データイネーブル及びエンドオブブロック信号が入力される制御回路１２１と、ゼロランが入力されるアドレス生成回路１２２と、アドレス生成回路１２２に接続された逆走査テーブル１２３と、量子化されているＤＣＴ係数が入力される逆量子化処理回路１２４と、逆量子化の際に用いる逆量子化テーブル１２５とよりなる。
【００２９】
この逆量子化回路１２は、図１のタイミング制御回路１８からのスタート信号により動作を開始すると、まず、アドレス生成回路１２２を初期化し、制御回路１２１からのクリア信号をセットして、図１のゼロ／否ゼロ判定回路１９へクリア信号を出力する。以後、逆量子化回路１２は、可変長復号回路１１からのデータイネーブルがセットされているときのみ、可変長復号回路１１からのゼロランレングス、否ゼロの量子化されているＤＣＴ係数のデータを取り込み動作する。
【００３０】
アドレス生成回路１２２は、入力されたゼロランレングスからジグザグスキャン順のＤＣＴ係数のアドレスＡを作成し、更に、そのアドレスＡとそれに対応する逆走査テーブル１２３のテーブルデータとから、ラスタースキャン順のアドレスＢを生成する。アドレスＢは逆量子化テーブル１２５の選択、逆量子化処理を施したＤＣＴ係数のバッファメモリ１３への書き込みアドレス、ゼロ／否ゼロ判定回路１９へのセレクト信号として出力される。
【００３１】
逆量子化処理回路１２４は、図３のアドレス生成回路１２２から入力されたアドレスＢによって選択された逆量子化テーブル１２５の値と、図１の可変長復号回路１１から入力された否ゼロの量子化されているＤＣＴ係数との乗算などの逆量子化演算、飽和処理、ミスマッチ処理を行い、得られた処理結果を図１のバッファメモリ１３へのライトデータとして出力する。制御回路１２１は、入力されたデータイネーブルからアドレス生成回路１２２及び逆量子化処理回路１２４のタイミングを制御すると共に、図１のゼロ／否ゼロ判定回路１９へクリア、セット信号を出力し、図１のバッファメモリ１３にリードライトイネーブル、チップセレクトを出力する。
【００３２】
また、制御回路１２１は、エンドオブブロック信号が入力されたときは、図１のタイミング制御回路１８へエンド信号を出力し、回路の動作を停止する。この逆量子化回路１２では、入力される量子化されているＤＣＴ係数は否ゼロのＤＣＴ係数のみであり、値が０の量子化されているＤＣＴ係数（０係数）の演算処理を省いているため、従来に比べて回路の動作は速くなる（短時間でＤＣＴブロックの演算が終了する）。そして、演算時間が短くなった分、動作を停止しておけるので、その分、消費電力が削減でき、消費電力が削減できるので、バッテリの消費も減り、バッテリの長寿命化を実現できる。
【００３３】
図４は図１中のバッファメモリ１３の一実施の形態の概略ブロック図を示す。図４に示すように、バッファメモリ１３は、セレクト回路１３１と２つのメモリ１３２及び１３３よりなる。メモリ１３２及び１３３は、それぞれ８Ｘ８の１ブロック分の２次元ＤＣＴ係数を格納する６４ワードのメモリである。
【００３４】
図４において、図１のタイミング制御回路１８からのセレクト信号により、セレクト回路１３１は、第１の接続状態（逆量子化回路１２とメモリ１３２を接続、逆ＤＣＴ回路１４とメモリ１３３を接続）と、第２の接続状態（逆量子化回路１２とメモリ１３３を接続、逆ＤＣＴ回路１４とメモリ１３２を接続）のどちらか一方を選択する。ここでは、セレクト回路１３１は、１ブロックのデータを処理する毎に上記の第１の接続状態と第２の接続状態を交互に切り替える。これにより、逆量子化回路１２による逆量子化処理と、逆ＤＣＴ回路１４による逆ＤＣＴ処理とを並行して行うパイプライン処理が可能となる。
【００３５】
ここで、２次元ＤＣＴ係数をＦ［ｖ］［ｕ］（ｖ：行方向０から７、ｕ：列方向０から７）で表現した場合、メモリ１３２、１３３上のアドレスＡＤＤＲ（＝ｖ＊８＋ｕ）にＦ［ｖ］［ｕ］が格納される。すなわち、２次元ＤＣＴ係数Ｆ［ｖ］［ｕ］は、１ブロック当り、行方向に８個、列方向に８個の計６４個のＤＣＴ係数からなるが、この２次元のＤＣＴ係数をメモリ１３２、１３３にそれぞれ１次元のデータとして記憶するために、上記のアドレスＡＤＤＲ（＝ｖ＊８＋ｕ）に６４個のＤＣＴ係数を記憶する。
【００３６】
図５は図１中のゼロ／否ゼロ判定回路１９の一実施の形態の概略ブロック図を示す。ゼロ／否ゼロ判定回路１９は、図５に示すように、図１の逆量子化回路１２からクリア信号、セット信号、アドレス信号などが供給される制御回路１９１と、否ゼロフラグ０、１をそれぞれ出力する２つのレジスタ１９２及び１９３と、行・列フラグ０、１をそれぞれ出力する２つの論理回路１９４及び１９５とからなる。なお、上記の行・列フラグ０、１は、それぞれ行ゼロフラグｖ０〜ｖ７と列ゼロフラグｕ０〜ｕ７とからなる。また、上記の否ゼロフラグ０、１は、それぞれ６４ビットのフラグである。
【００３７】
図５のゼロ／否ゼロ判定回路１９は、図１のタイミング制御回路１８からの信号によりレジスタ１９２及びレジスタ１９３の一方の選択を行い、動作を開始する。レジスタ１９２、レジスタ１９３は６４ビット分のレジスタであり、出力する値をＲＥＧ［ｎ］（ｎ＝０〜６３）と表現した場合、２次元のＤＣＴ係数Ｆ［ｖ］［ｕ］に対してｎ＝ｖ＊８＋ｕに対応している。
【００３８】
すなわち、レジスタ１９２、レジスタ１９３の０ビット〜６３ビットの出力値ＲＥＧ［０］〜ＲＥＧ［６３］は、メモリ１３２、１３３のアドレスＡＤＤＲ０〜ＡＤＤＲ６３に記憶されるＤＣＴ係数Ｆ［ｖ］［ｕ］に対応しており、ＲＥＧ［ＡＤＤＲ］は、そのアドレスＡＤＤＲ（＝ｖ＊８＋ｕ）に記憶されるＤＣＴ係数の値が「０」であれば、”０”がセットされ、ＤＣＴ係数の値が「０」でなければ、”１”がセットされる。これらレジスタ１９２、レジスタ１９３の０ビット〜６３ビットの出力値ＲＥＧ［０］〜ＲＥＧ［６３］は、ＤＣＴ係数の値が「０」であるかどうかを示す否ゼロフラグ０，１として使われることは前述した通りである。
【００３９】
論理回路１９４及び１９５はｕ，ｖに対応するレジスタ値のＯＲ回路であり、各列、各行がすべて０であるかどうかを示す信号、行ゼロフラグｖ０〜ｖ７、列ゼロフラグｕ０〜ｕ７を作成する。２次元ＤＣＴは行方向の１次元ＤＣＴと列方向の１次元ＤＣＴとからなり、行方向の１次元ＤＣＴ係数の値がすべて「０」であれば、演算結果も０になり、演算をする必要が無くなる。そこで、行０の１次元ＤＣＴ係数の値がすべて「０」であるか否かを示すための信号が行０の行ゼロフラグｖ０である。この行０の１次元ＤＣＴ係数Ｆ［ｖ］［ｕ］は、ｖ＝０で、ｕ＝０，１，２，３，４，５，６，７からなり、行０の１次元ＤＣＴ係数の値がすべて「０」であるか否かは、論理回路１９４、１９５でレジスタ１９２、１９３の０ビット目〜７ビット目の出力値ＲＥＧ［０］〜ＲＥＧ［７］の論理和をとって得られる行ゼロフラグｖ０が０であるか否かにより分かる。ここで、上記の行ゼロフラグｖ０は、論理和を｜で示すものとすると、次式で表される。
【００４０】
ｖ０＝ＲＥＧ［０］｜ＲＥＧ［１］｜ＲＥＧ［２］｜ＲＥＧ［３］
｜ＲＥＧ［４］｜ＲＥＧ［５］｜ＲＥＧ［６］｜ＲＥＧ［７］
行ゼロフラグｖ０が０であれば、行０のＤＣＴ係数の値がすべて「０」であることが分かる。
【００４１】
同様に、行１のＤＣＴ係数の値がすべて「０」であるか否かを表す信号が行ゼロフラグｖ１である。行１のＤＣＴ係数Ｆ［ｖ］［ｕ］は、ｖ＝１で、ｕ＝０，１，２，３，４，５，６，７からなり、論理回路１９４、１９５でレジスタ１９２、１９３の８ビット目から１５ビット目の出力値ＲＥＧ［８］〜ＲＥＧ［１５］の論理和をとって得られる行ゼロフラグｖ１は次式で表される。
【００４２】
ｖ１＝ＲＥＧ［８］｜ＲＥＧ［９］｜ＲＥＧ［１０］｜ＲＥＧ［１１］
｜ＲＥＧ［１２］｜ＲＥＧ［１３］｜ＲＥＧ［１４］｜ＲＥＧ［１５］
行ゼロフラグｖ１が０であれば、行１のＤＣＴ係数の値がすべて「０」であることが分かる。他の行ゼロフラグｖ２〜ｖ７も上記と同様である。
【００４３】
一方、列方向の１次元ＤＣＴ係数も、その値がすべて「０」であれば、演算結果も０になり、演算をする必要が無くなる。そこで、列０の１次元ＤＣＴ係数の値がすべて「０」であるか否かを示すための信号が列０の列ゼロフラグｕ０である。この列０の１次元ＤＣＴ係数Ｆ［ｖ］［ｕ］は、ｕ＝０で、ｖ＝０，１，２，３，４，５，６，７からなり、列０の１次元ＤＣＴ係数の値がすべて「０」であるか否かは、論理回路１９４、１９５でレジスタ１９２、１９３のｎビット目の出力値ＲＥＧ［ｎ］（ただし、ｎ＝ｖ＊８＋ｕで、ｕ＝０、ｖ＝０〜７）の論理和をとって得られる列ゼロフラグｕ０が０であるか否かにより分かる。ここで、上記の列ゼロフラグｕ０は、次式で表される。
【００４４】
ｕ０＝ＲＥＧ［０］｜ＲＥＧ［８］｜ＲＥＧ［１６］｜ＲＥＧ［２４］
｜ＲＥＧ［３２］｜ＲＥＧ［４０］｜ＲＥＧ［４８］｜ＲＥＧ［５６］
列ゼロフラグｕ０が０であれば、列０のＤＣＴ係数の値がすべて「０」であることが分かる。他の列ゼロフラグｕ１〜ｕ７も上記と同様である。
【００４５】
以上をまとめると、行ゼロフラグｖ０〜ｖ７、列ゼロフラグｕ０〜ｕ７は、入力される値のレジスタ１９２、１９３のアドレスをａｄｄｒ（ｖ，ｕ）＝ｖ×８＋ｕとして、論理和を｜で表現すると、次式で表される（ただし、ｎ＝０〜７）。
【００４６】
ｖｎ＝REG［addr(n,0)］|REG［addr(n,1)］|REG[addr(n,2)］|REG［addr(n,3)］
|REG［addr(n,4)］|REG［addr(n,5)］|REG［addr(n,6)］|REG[addr(n,7)]
ｕｎ＝REG［addr(0,n)］|REG［addr(1,n)］|REG[addr(2,n)］|REG［addr(3,n)］
|REG［addr(4,n)］|REG［addr(5,n)］|REG［addr(6,n)］|REG[addr(7,n)]
図５の制御回路１９１は、図４のバッファメモリ１３において、逆量子化回路１２がメモリ１３２に接続されている第１の接続状態のときには、レジスタ１９２を選択し、逆量子化回路１２がメモリ１３３に接続されている第２の接続状態のときには、レジスタ１９３を選択する。
【００４７】
図６は図１中の逆ＤＣＴ回路１４の一例の概略ブロック図を示す。図６において、逆ＤＣＴ回路１４は、制御回路１４１、アドレス生成回路１４２、セレクタ１４３、レジスタ１４４、逆ＤＣＴ演算回路１４５、レジスタ１４６からなる。制御回路１４１は図１のタイミング制御回路１８からのスタート信号で動作を開始すると共に、バッファ切り替え信号を入力として受け、ゼロ／否ゼロ判定回路１９からの入力信号の０と１（行・列フラグ０及び否ゼロフラグ０と、行・列フラグ１及び否ゼロフラグ１）のどちらが有効かを判定する。
【００４８】
この逆ＤＣＴ回路１４の動作について、図７のフローチャートと共に説明する。制御回路１４１は、まず、最初の１次元ＤＣＴ処理を行うために、ゼロ／否ゼロ判定回路１９からの有効と判定した方の行・列フラグ０（又は１）から行ゼロフラグｖ０〜ｖ７の総和Ｖを計算し（ステップＳ１）、また列ゼロフラグｕ０〜ｕ７の総和Ｕを計算する（ステップＳ２）。続いて、制御回路１４１は、これら行ゼロフラグの総和Ｖと列ゼロフラグの総和Ｕとを比較し、ＵがＶ以下であるかどうか判定する（ステップＳ３）。
【００４９】
列ゼロフラグの総和Ｕが行ゼロフラグの総和Ｖ以下であるときは、まず列方向の逆ＤＣＴ処理を行い（ステップＳ４）、その後行方向の逆ＤＣＴ処理を行う（ステップＳ５）。列ゼロフラグの総和Ｕが行ゼロフラグの総和Ｖより大であるときには、まず行方向の逆ＤＣＴ処理を行い（ステップＳ６）、その後列方向の逆ＤＣＴ処理を行う（ステップＳ７）。なお、Ｕ＝Ｖのときは、列方向逆ＤＣＴ処理を最初に行うように説明したが、行方向逆ＤＣＴ処理を最初に行うようにしてもよい。同数の場合は予め設定されている方向から処理を開始すればよい。
【００５０】
ところで、一次元逆ＤＣＴは次式に示す通りＤＣＴ係数とｃｏｓ関数の積和演算により行われるため、ＤＣＴ係数がすべて０であれば、結果は０となるのであるからいちいち計算をする必要はない。
【００５１】
【数１】
2007104155.tif 000003
ただし、上式中、ＮはＤＣＴ係数の数、ｆ（ｘ）は逆変換されたデータ、ｋは何番目の係数かを示す値、Ｆ（ｋ）はｋ番目のＤＣＴ係数、Ｃ（ｋ）は補正係数を示す。
【００５２】
また、効率の良い圧縮をするために量子化において高次のＤＣＴ係数は０になり易くなるように、量子化テーブルなどが設定されているのが一般的であり、ＭＰＥＧ２のデフォルトの量子化係数は図９のようになっている。このため行・列の係数がすべて０になる場合が少なくないと考えられる。
【００５３】
以降の処理の説明のため、ここでは行方向を先に処理すると判断し、行方向の逆ＤＣＴ処理を行うものとする（図７のステップＳ６）。まず、制御回路１４１は行ゼロフラグｖ０が“１”か“０”であるかを識別し、“０”であれば処理を飛ばして次の行ゼロフラグｖ１が“１”か“０”であるかを識別する。行ゼロフラグｖ０が“１”であれば、データの読み出しを開始するため、アドレス発生回路１４２に行０のアドレスを順次発生させる。一方、アドレス生成回路１４２が発生するアドレスに対応する否ゼロフラグをみて“１”であれば、図１のバッファメモリ１３のデータを読み出す。このとき、逆ＤＣＴ回路１４が図４のバッファメモリ１３のメモリ１３２に接続されているときには、チップセレクト０をアクティブとし、メモリ１３３に接続されているときには、チップセレクト１をアクティブにする。
【００５４】
次に、制御回路１４１は、セレクタ１４３に否ゼロフラグが“１”であればバッファメモリ１３からの入力を選択し、否ゼロフラグが“０”であれば固定値０の入力を選択するよう指示する。固定値０を入力する場合は、バッファメモリ１３は動作しないので、消費電力の削減に寄与する。
【００５５】
また、レジスタ１４４は８ワード分を格納するレジスタである。制御回路１４１はセレクタ１４３に選択したデータをどのワードに書き込むかも指示する。１行分のデータを読み込み、レジスタ１４４にデータが格納された時点で、制御回路１４１は逆ＤＣＴ演算回路１４５に処理を開始させる。逆ＤＣＴ演算回路１４５による逆ＤＣＴ演算処理は固定クロック数で処理が終わり、演算結果がレジスタ１４６に書き込まれる。
【００５６】
制御回路１４１はアドレス生成回路１４２にバッファメモリ１３の書き込みアドレスを発生させると共に、チップセレクト、リード／ライトイネーブルを発生させてレジスタ１４６に書き込まれた逆ＤＣＴ演算結果をバッファメモリ１３に出力する。以上で行０の処理が終わる。同様に、行１、行２と処理を進め、行７まで処理が終わった時点で行方向逆ＤＣＴ処理が終了する。行ゼロフラグが“０”の場合、その行の処理が飛ばされるので、従来よりも高速に動作させることができると共に、バッファメモリ１３へのアクセスも削減できるので消費電力の低減に寄与する。
【００５７】
次に、２回目の逆ＤＣＴ処理である列方向の逆ＤＣＴ処理を開始する（図７のステップＳ７）。制御回路１４１は列ゼロフラグｕ０〜ｕ７にかかわり無く、列０から列７まで順次処理を行う。データの読み出しを開始するため、アドレス生成回路１４２に列０のアドレスを順次発生させる。一方、アドレス生成回路１４２が発生するアドレスの行に対応する行ゼロフラグをみて、“１”であればチップセレクトをアクティブにしてバッファメモリ１３のデータを読み出す。１回目の逆ＤＣＴ処理において、否ゼロフラグとバッファメモリ１３内の係数の否ゼロの関係が崩れるが、行の係数がすべて０であった場合は、１回目の逆ＤＣＴ処理後もその行の係数は０になるため、行ゼロフラグをみることによって、０の係数の読み出しを止めることができる。
【００５８】
次に、制御回路１４１は、セレクタ１４３に行ゼロフラグが“１”であれば、バッファメモリ１３からの入力を選択し、“０”であれば固定値０を入力するよう指示する。行ゼロフラグが“０”である場合、バッファメモリ１３は動作しないので、消費電力の削減に寄与する。
【００５９】
バッファメモリ１３から１列分のデータを読み込み、レジスタ１４４にデータが格納された時点で、制御回路１４１は逆ＤＣＴ演算回路１４５に演算処理を開始させる。逆ＤＣＴ処理は固定クロック数で処理が終わり、逆ＤＣＴ演算結果がレジスタ１４６に書き込まれる。制御回路１４１はアドレス生成回路１４２に書き込みアドレスを発生させると共に、チップセレクト、リードライトイネーブルを発生させて、レジスタ１４６に書き込まれた逆ＤＣＴ演算結果をバッファメモリ１５に出力する。以上で列０の処理が終わる。以下、同様にして列７まで処理が終わった時点で、列方向逆ＤＣＴ処理が終了し、２次元逆ＤＣＴ処理が終了する。制御回路１４１は処理が終了したことをタイミング制御回路１８にＥＮＤ信号として知らせた後、動作を停止する。
【００６０】
図１の動き補償回路１６は特に詳細なブロック図と共に説明しないが、タイミング制御回路１８よりのタイミング信号に基づいて、バッファメモリ１５から逆ＤＣＴ処理をすることで得られたフレーム間予測誤差信号を読み出す。動き補償回路１６は以前にフレームメモリ１７に格納された対象となる画像データからフレーム間予測信号を生成した後、そのフレーム間予測信号とバッファメモリ１５から読み出したフレーム間予測誤差信号とをそれぞれ加算して復号画像信号を得、その復号画像信号をフレームメモリ１７に格納する。
【００６１】
以上が本実施の形態の動作である。このように、本実施の形態によれば、レジスタ１９２及び１９３をゼロ／否ゼロ判定回路１９に追加することで、ＤＣＴ係数が０の場合のバッファメモリ１３へのアクセスを削減し動作の高速化、省電力化を可能としている。また、行ゼロフラグｖ０〜ｖ７と列ゼロフラグｕ０〜ｕ７とにより、１次元ＤＣＴ処理とバッファメモリ１３へのリード・ライト処理を削減して処理の高速化、省電力化を可能としている。
【００６２】
次に、動画像符号化装置について説明する。ＭＰＥＧなどの時間相関をつかった予測差分画像の圧縮符号化アルゴリズムでは、画像符号化装置にローカルデコードと呼ばれる画像復号回路を持つ必要がある。図８は動画像符号化装置の一実施の形態のブロック図を示す。同図において、逆量子化回路２５、バッファメモリ２８、逆ＤＣＴ回路２９、バッファメモリ３０、加算回路３１は上記のローカルデコードと呼ばれる画像復号回路であり、これにゼロ／否ゼロ判定回路２６を設け、図１の画像復号装置の要部を適用している。
【００６３】
図８において、符号化すべき対象となる対象画像信号と、予測に使われる参照画像信号とが差分生成回路２１に入力され、差分生成回路２１にて両入力信号の差分がとられて予測差分画像信号に変換され、８Ｘ８のブロック毎にＤＣＴ回路２２に出力される。
【００６４】
ＤＣＴ回路２２は入力された行方向８個、列方向８個からなる８Ｘ８のブロックに対して行方向と列方向のそれぞれについてＤＣＴ処理を行う。その結果のＤＣＴ係数を量子化回路２３へ出力する。量子化回路２３は所定の量子化テーブルに従い、ＤＣＴ係数を量子化処理してバッファメモリ２４に書き込む。一方、量子化回路２３は、量子化後のＤＣＴ係数を逆量子化回路２５へ出力する。
【００６５】
逆量子化回路２５では量子化後のＤＣＴ係数のゼロ判定を行い、その判定結果をゼロ／否ゼロ判定回路２６に書き込む。ゼロの場合は逆量子化処理を行わず、ゼロでない量子化後のＤＣＴ係数のみ逆量子化処理をして処理後のＤＣＴ係数をバッファメモリ２８に書き込む。従って、逆量子化回路２５では、量子化後のゼロのＤＣＴ係数の処理を省くことができるので、高速化、省電力化に寄与する。
【００６６】
可変長符号化回路２７はジグザグスキャン順にアドレスを発生させ、対応するゼロフラグが”１”であればゼロランをカウントアップし、”０”であればバッファメモリ２４からデータを読み出し、ゼロランと共に可変長符号化処理を行い、符号を出力する。従って、ゼロのデータをバッファメモリ２４から読まないので、高速化、省電力化に寄与する。
【００６７】
逆ＤＣＴ回路２９は図１及び図６に示した逆ＤＣＴ回路１４と同一構成であり、ゼロ／否ゼロ判定回路２６の論理より行・列方向の一次元逆ＤＣＴの順番を決定し、２次元ＤＣＴ係数のうち、すべてゼロであるＤＣＴ係数の行又は列以外の行又は列のＤＣＴ係数だけを、行方向（又は列方向）にバッファメモリ２８から読み出し、１次元逆ＤＣＴ処理をした後、バッファメモリ２８に書き戻す。その後残りの逆ＤＣＴ処理のため、もう一度バッファメモリ２８から今度は列方向（又は行方向）にＤＣＴ係数を読み出し、逆ＤＣＴ処理をしてバッファメモリ３０にデータを書き込む。
【００６８】
従って、逆ＤＣＴ回路２９はゼロのＤＣＴ係数の処理を省けるため、高速化、省電力化に寄与する。加算回路３１は、差分生成回路２１に保存されていた参照画像を読み出し、バッファメモリ３０からデータを読み出し加算し、復元画像として出力する。
【００６９】
この画像符号化装置では、逆量子化回路２５による量子化されているゼロのＤＣＴ係数に対する逆量子化処理を省略すると共に、２次元ＤＣＴ係数のうち同じ行又は同じ列に０ではないＤＣＴ係数がある否ゼロの行及び列のＤＣＴ係数だけに対して、逆ＤＣＴ回路２９による逆ＤＣＴ処理を行い、更に、すべてゼロのＤＣＴ係数からなる行や列を構成する複数のＤＣＴ係数をバッファメモリ２８からは読み出さず、またその変換結果も書き込まないので、バッファメモリ２８のアクセスを削減でき、以上より、短時間で逆量子化処理及び逆ＤＣＴ処理ができ、また、演算時間が短くなった分だけ、逆量子化回路２５や逆ＤＣＴ回路２９の動作を停止しておけるので、その分消費電力を削減できる。また、画像復号化装置の動作電源がバッテリである場合は、上記の消費電力の削減に伴い、バッテリの長寿命化も実現できる。
【図面の簡単な説明】
【００７０】
【図１】本発明の画像復号装置の一実施の形態のブロック図である。
【図２】図１中の可変長復号回路の一実施の形態の概略ブロック図である。
【図３】図１中の逆量子化回路の一実施の形態の概略ブロック図である。
【図４】図１中のバッファメモリ１３の一実施の形態の概略ブロック図である。
【図５】図１中のゼロ／否ゼロ判定回路の一実施の形態の概略ブロック図である。
【図６】図１中の逆ＤＣＴ回路の一実施の形態の概略ブロック図である。
【図７】図６の概略動作説明用フローチャートである。
【図８】画像符号化装置の一実施の形態の概略ブロック図である。
【図９】ＭＰＥＧ２のデフォルトの量子化係数を示す図である。
【図１０】従来の画像復号装置の問題点を説明するブロック図である。
【図１１】図１０の問題点を解決する従来の画像復号装置の一例のブロック図である。
【符号の説明】
【００７１】
１１  可変長復号回路
１２、２５  逆量子化回路
１３、１５、２４、２８、３０  バッファメモリ
１４、２９  逆ＤＣＴ回路
１６  動き補償回路
１７  フレームメモリ
１８  タイミング制御回路
１９、２６  ゼロ／否ゼロ判定回路
１１１  バレルシフタ回路
１１２  復号回路
１１３  可変長復号テーブル
１２１、１４１、１９１  制御回路
１２２、１４２  アドレス生成回路
１２３  逆走査テーブル
１２４  逆量子化処理回路
１２５  逆量子化テーブル
１３１  セレクト回路
１３２、１３３  メモリ
１４３  セレクタ
１４４、１４６、１９２、１９３  レジスタ
１４５  逆ＤＣＴ演算回路
１９４、１９５  論理回路
【図１】
2007104155.tif 000004
【図２】
2007104155.tif 000005
【図３】
2007104155.tif 000006
【図４】
2007104155.tif 000007
【図５】
2007104155.tif 000008
【図６】
2007104155.tif 000009
【図７】
2007104155.tif 000010
【図８】
2007104155.tif 000011
【図９】
2007104155.tif 000012
【図１０】
2007104155.tif 000013
【図１１】
2007104155.tif 000014