JP2007104155A - 画像復号装置 - Google Patents

画像復号装置 Download PDF

Info

Publication number
JP2007104155A
JP2007104155A JP2005289558A JP2005289558A JP2007104155A JP 2007104155 A JP2007104155 A JP 2007104155A JP 2005289558 A JP2005289558 A JP 2005289558A JP 2005289558 A JP2005289558 A JP 2005289558A JP 2007104155 A JP2007104155 A JP 2007104155A
Authority
JP
Japan
Prior art keywords
zero
circuit
dct
inverse
row
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005289558A
Other languages
English (en)
Inventor
Tomoyuki Shindo
朋行 進藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2005289558A priority Critical patent/JP2007104155A/ja
Publication of JP2007104155A publication Critical patent/JP2007104155A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】従来の画像復号装置では、逆量子化回路と逆離散コサイン変換回路は全てのDCT係数を全部演算することで一回路当りの演算量を一定としているため、演算時間が一定となり、これ以上の演算速度の向上や消費電力の削減が難しい。
【解決手段】逆量子化回路12は、否ゼロのDCT係数のみに対し逆量子化処理を施す。ゼロ/否ゼロ判定回路19は、逆量子化されたDCT係数が否ゼロのDCT係数であるか否かを示す否ゼロフラグを生成すると共に、1行分のDCT係数が全て0か否かを示す行ゼロフラグと1列分のDCT係数が全て0か否かを示す列ゼロフラグを生成する。逆DCT回路14は、ゼロ/否ゼロ判定回路19からの行ゼロフラグと列ゼロフラグと否ゼロフラグに基づいて、同じ行又は同じ列に0ではないDCT係数がある否ゼロの行及び列のDCT係数をバッファメモリ13から読み出して、1次元DCT処理を行う。
【選択図】図1

Description

本発明は画像復号装置に係り、特にMPEG方式で圧縮符号化された動画像信号のビットストリームを復号する画像復号装置に関する。
ビデオ信号(画像信号)をコンパクトディスク(CD)のような比較的狭帯域のディジタルストレージメディアに格納することを目的に、格納対象のビデオ信号に対して高能率符号化処理が施される。国際標準化組織ISO−IECJTC1/SC2/WG11(以下、通称MPEG(Moving Picture Experts Group))で、1.5Mbps相当のメディアに対応した符号化方式が検討され、その検討方式の概要が文献にて公開されている(例えば、非特許文献1参照)。この文献によれば、動き補償フレーム間予測と離散コサイン変換(DCT:Discrete Cosine Transform)、量子化、可変長符号化を組み合わせたハイブリッド符号化方式であり、VTRのVHS(登録商標)規格相当の画質を実現する。
また、現行TV放送の画質を保って15Mbps以内(実用3〜8Mbps)に圧縮するMPEG2方式も標準化されている。これらの方式は、いずれもビデオ信号の圧縮にフレーム間予測方式と離散コサイン変換を用いている。また、主にTV電話/会議の動画圧縮方式として用いられている、国際電気通信連合電気通信標準化部門(ITU−T)で策定されたH.261も、同様にフレーム間予測方式と離散コサイン変換を用いている。
こうしたMPEG方式等に基づいて圧縮されたビデオ信号をリアルタイム復号するには、可変長復号、逆ジグザグ変換、逆量子化、逆DCT、動き補償という一連の処理をハードワイアドロジックで高速処理することが多い。このとき、可変長符号は、信号により符号量が異なるため、可変長復号処理に要する処理時間も信号により大きく変動する。一方、逆量子化や逆DCTは信号によらず一定である。このため、可変長復号結果に対し以降の処理を施す前に一旦メモリに格納し、処理時間差を吸収させる必要がある。
この復号処理をハードウェアで行う従来の画像復号装置としてのデコーダLSI(Large Scale Integrated Circuit)が知られている(例えば、非特許文献2参照)。このデコーダLSIによれば、可変長復号及びランレングス復号して得られた固定長符号を、一旦メモリ回路に格納している。メモリ回路に格納された固定長符号は、符号化時におけるジグザグスキャン順からブロックスキャン順に戻しながら読み出され、逆量子化と逆DCTを施され、別のメモリ回路に格納される。
更に、動き補償回路によってフレーム間予測信号を再生し、逆DCT結果と加算することで復号画像を得ている。ブロックによってフレーム間予測方式が異なることから、動き補償処理も処理時間に違いが出るので、DCTまでの処理との処理時間差を吸収するためにDCT結果を格納するメモリ回路が配置されている。
このデコーダLSIにおけるメモリ回路配置では、可変長復号処理の時間調整用メモリは逆量子化前に配置し、そこで、ジグザグスキャン順からブロックスキャン順への変換も実現している。これは、時間調整機能とスキャン変換機能を重ねさせることで、メモリの節約を図り、更に、逆量子化によってデータのダイナミックレンジが拡大する前にメモリ回路を配置することで、データの格納に必要な記憶容量を少なくできるからである。例えば、MPEG1方式では、逆量子化前のビット幅は9ビット、逆量子化後は12ビットに増加するため、1データあたり3ビットのメモリ節約となる。
次に、上記の従来の回路構成の問題点を図10を用いながら説明する。ここでは、可変長復号から逆離散コサイン変換までのデコード処理部分のみを抽出して記している。逆離散コサイン変換までの処理は、可変長復号回路41、逆ジグザグ変換回路42、逆量子化回路43、逆離散コサイン変換回路44、転置用メモリ45により実現される。逆ジグザグ変換回路42は、可変長復号回路41と逆量子化回路43の間に配置され、可変長復号回路41の出力を一旦内部のメモリに蓄えることで逆ジグザグスキャン変換を行い逆量子化回路へのデータ供給に用いる。この逆ジグザグ変換回路42は、内部メモリへの書き込み時もしくは読み出し時に、ジグザグスキャン順からブロック内ラスタ走査順にメモリのアドレス発生順を入れかえることによって、逆ジグザグスキャン変換を実現する。
逆離散コサイン変換回路44では、逆量子化されたデータが例えば8個揃った時点で行方向の逆コサイン変換を施し、結果を転置用メモリ45に書き込んで行く。逆量子化回路43から供給されるデータに行方向変換を施し終えた時点で逆離散コサイン変換回路44は転置用メモリ45からデータを読み出し、列方向の逆コサイン変換を施しながら後段に出力する。この様に、逆離散コサイン変換回路44を行/列双方に時分割で用いる場合は、列方向の逆コサイン変換を施している間は逆量子化回路43の出力は受け付けられないため、逆量子化回路43は待ち状態となる。言い替えれば、逆離散コサイン変換回路44が行方向変換を実行する時間にタイミングを合わせて逆量子化処理を済ませなければならず、そのために逆量子化回路43の回路を並列化するなどして高速化している。
一方、図10の逆離散コサイン変換回路44を2個用意し、転置メモリ45を挟んで行変換と列変換を同時動作させると、逆量子化回路43が待ち状態となることは回避できる。しかしながら、この場合は、逆量子化回路43よりも演算量の多い逆離散コサイン変換回路44を2組搭載することに伴う回路規模増大を招いてしまう。
そこで、上記の課題を解決するために、従来図11のブロック図の構成とした画像復号装置が知られている(例えば、特許文献1参照)。この図11に示す従来の画像復号装置では、画像信号をMPEG方式により圧縮して得られた圧縮ビデオストリームが可変長復号回路51に供給されて固定長符号列に変換された後、逆量子化回路52で予め与えられた量子化ステップサイズと量子化テーブルの値の乗算による逆量子化が施されてバッファメモリ53に書き込まれる。
バッファメモリ53から読み出されたデータは、逆離散コサイン変換回路54により行方向の1次元逆離散コサイン変換(DCT)が施されて、一旦バッファメモリ53に書き戻された後に、再度読み出されて列方向の1次元DCTが施される。このようにして逆離散コサイン変換回路54によりDCTが施されて取り出されたフレーム間予測誤差信号は、バッファメモリ55に格納される。
一方、フレームメモリ60には、復号された画像信号が格納されている。予測信号生成回路59は以前に復号されフレームメモリ60に格納された画像信号からフレーム間予測信号を生成し、バッファメモリ58に格納する。バッファメモリ55及び58からそれぞれ読み出された信号は、フレーム加算回路57で加算されることにより復号画像信号とされてフレームメモリ60に格納される。タイミング制御回路56は、可変長復号回路51、バッファメモリ53、フレーム加算回路57の起動タイミングを調整することにより、全体の制御を行う。
この従来の画像復号装置によれば、逆量子化回路52と逆離散コサイン変換回路54との間に配置されたバッファメモリ53を用いて、パイプライン処理が可能となり、メモリ個数を削減して効率的な処理を行うようにしている。
米満潤、技術解説「MPEG標準案ビデオパート(ISO 11172 VIDEO)」、画像電子学会、画像電子学会誌第20巻第4号306〜316頁 1994年電子情報通信学会春季大会C−658 特開平8−307868号公報
しかしながら、図10に示した構成の従来の画像復号装置では、逆量子化回路43と逆離散コサイン変換回路44の演算量を固定(全てのDCT係数を全部演算することで一回路当りの演算量を一定)としているため、また、図11に示した構成の従来の画像復号装置では、逆離散コサイン変換回路54での演算量を固定(全てのDCT係数を全部演算することで演算量を一定)としているため、何れの従来の画像復号装置も、演算時間が一定となり、これ以上の演算速度を得ることは困難であり、また、これ以上の消費電力の削減は難しい。
本発明は以上の点に鑑みなされたもので、高速な復号動作を行うことができると共に、消費電力も低減し得る画像復号装置を提供することを目的とする。
上記の目的を達成するため、本発明は、所定画素数のブロックに分割し、その分割した各ブロック毎に画像信号を離散コサイン変換して得た2次元DCT係数を量子化した信号から復号画像信号を得る画像復号装置において、2次元DCT係数を量子化した信号から、否ゼロのDCT係数のみに対し、予め与えられた量子化ステップサイズと量子化テーブルの値との乗算による逆量子化処理を施す逆量子化回路と、少なくとも逆量子化回路から出力された各ブロックのうちの1ブロック分の2次元DCT係数を一時蓄積するバッファメモリと、バッファメモリに蓄積されている2次元DCT係数を行方向又は列方向に読み出して、行方向又は列方向の1次元逆離散コサイン変換して、バッファメモリに書き戻した後、今度はバッファメモリに蓄積されている2次元DCT係数を列方向又は行方向に読み出して、列方向又は行方向の1次元逆離散コサイン変換を施すことにより、2次元DCT係数に対して行方向と列方向とのそれぞれについて逆離散コサイン変換して得たフレーム間予測誤差信号を出力する逆離散コサイン変換回路と、逆量子化回路からの信号に基づき、1ブロック分の2次元DCT係数を構成する複数のDCT係数について、逆量子化された否ゼロのDCT係数であるか否かを示す否ゼロフラグを生成すると共に、その否ゼロフラグを用いて2次元DCT係数における1行分のDCT係数が全て0か否かを示す行ゼロフラグと1列分のDCT係数が全て0か否かを示す列ゼロフラグとを、1ブロック分の2次元DCT係数の全ての行と全ての列とについて生成するゼロ/否ゼロ判定回路とを有し、逆離散コサイン変換回路は、ゼロ/否ゼロ判定回路からの行ゼロフラグと列ゼロフラグと否ゼロフラグとに基づいて、同じ行又は同じ列に0ではないDCT係数がある否ゼロの行及び列のDCT係数をバッファメモリから読み出して、1次元逆離散コサイン変換処理を行うことを特徴とする。
この発明では、逆量子化回路では、否ゼロのDCT係数に対してのみ逆量子化処理を施し、また、逆離散コサイン変換回路では、ゼロ/否ゼロ判定回路からの行ゼロフラグと列ゼロフラグと否ゼロフラグに基づいて、同じ行又は同じ列に0ではないDCT係数がある否ゼロの行及び列のDCT係数をバッファメモリから読み出して、1次元逆離散コサイン変換処理を行うようにしたため、量子化されているゼロのDCT係数に対する逆量子化処理を省略できると共に、逆離散コサイン変換回路は、ゼロ/否ゼロ判定回路からの行ゼロフラグと列ゼロフラグと否ゼロフラグに基づいて、同じ行又は同じ列に0ではないDCT係数がある否ゼロの行及び列のDCT係数だけをバッファメモリから読み出して、1次元逆離散コサイン変換処理を行うことができる。
本発明によれば、量子化されているゼロのDCT係数に対する逆量子化処理を省略すると共に、2次元DCT係数のうち同じ行又は同じ列に0ではないDCT係数がある否ゼロの行及び列のDCT係数だけに対して逆離散コサイン変換処理を行うようにしたため、ゼロのDCT係数に対する逆量子化処理のための演算を省略できると共に、すべてゼロのDCT係数からなる行や列を構成する複数のDCT係数の逆離散コサイン変換処理のための演算も省略でき、更に、すべてゼロのDCT係数からなる行や列を構成する複数のDCT係数をバッファメモリからは読み出さず、またその変換結果も書き込まないので、バッファメモリのアクセスを削減でき、以上より、短時間で逆量子化処理及び逆離散コサイン変換処理ができ、また、演算時間が短くなった分だけ、逆量子化回路や逆離散コサイン変換回路の動作を停止しておけるのでその分消費電力を削減できる。また、画像復号装置の動作電源がバッテリである場合は、上記の消費電力の削減に伴い、バッテリの長寿命化も実現できる。
図1は本発明になる画像復号装置の一実施の形態のブロック図を示す。同図に示すように、本実施の形態の画像復号装置は、可変長復号回路11、逆量子化回路12、バッファメモリ13及び15、逆DCT回路14、動き補償回路16、フレームメモリ17、タイミング制御回路18、及びゼロ/否ゼロ判定回路19より構成される。
MPEG方式等で動画像信号を圧縮符号化して得られた圧縮ビデオストリームが、可変長復号回路11に供給され、ここで可変長復号されて、量子化されているDCT係数からなる固定長符号列に変換された後、逆量子化回路12に供給される。逆量子化回路12では、入力された固定長符号列に対し、予め与えられた量子化ステップサイズと量子化テーブルの値の乗算による逆量子化処理を施し、復号したDCT係数をバッファメモリ13に書き込む。逆量子化を施すデータの順番は可変長復号で得られるデータ順、すなわち、ジグザグスキャン順であるが、バッファメモリ13に格納する際にジグザグスキャン順に対応したアドレスを発生させることによって、逆ジグザグスキャン変換を施す。また、このとき対応するゼロ/否ゼロ判定回路19のレジスタをセットする。
バッファメモリ13に書き込まれたデータは、1ブロック当り2次元配置された複数のDCT係数(2次元DCT係数)を構成しており、逆DCT回路14により2次元DCT係数がその行方向又は列方向に読み出され、ゼロ/否ゼロ判定回路19の結果により、行方向(あるいは列方向)の1次元逆DCTを施される。行方向(あるいは列方向)に逆DCTが施されたデータは、一旦バッファメモリ13に書き戻された後に、今度は列方向又は行方向に読み出され、今度は列方向(あるいは行方向)の1次元逆DCTが施される。このようにして、逆DCT回路14で2次元DCT係数が行方向と列方向のそれぞれについて逆DCTされることにより、フレーム間予測誤差信号が得られ、このフレーム間予測誤差信号はバッファメモリ15に格納される。
一方、フレームメモリ17には、復号された画像信号が格納されている。動き補償回路16はフレームメモリ17に格納された画像データからフレーム間予測信号を生成した後、そのフレーム間予測信号とバッファメモリ15から読み出したフレーム間予測誤差信号とをそれぞれ加算して復号画像信号を得、その復号画像信号をフレームメモリ17に格納する。タイミング制御回路18は、横方向8つ、縦方向8つのDCT係数のブロック毎に、逆量子化回路12、逆DCT回路14、動き補償回路16その他各回路の動作のタイミング、逆量子化回路12、逆DCT回路14、動き補償回路16その他各回路へ接続されたクロックの制御などを行う。
図2は図1中の可変長復号回路11の一実施の形態の概略ブロック図を示す。可変長復号回路11は、バレルシフタ回路111、復号回路112及び可変長復号テーブル113からなる。図2において、図1のタイミング制御回路18からのスタート信号により動作を開始する。動作を開始すると、まず、可変長復号回路11は入力された圧縮ビットストリームをバレルシフタ回路111に蓄える。
復号回路112はバレルシフタ回路111内の入力圧縮ビットストリームのデータ列と、可変長復号テーブル113の内容とから、データ列の可変長符号の符号長、ゼロラン(以下、ゼロランレングスともいう)、量子化されているDCT係数を復号する。復号された符号長はバレルシフタ回路111に渡され、バレルシフタ回路111は符号長の分だけ内部のデータ列を、次の可変長符号の復号のためにシフトする。復号されたゼロランと量子化されているDCT係数は、復号結果が有効であることを示す信号であるデータイネーブルと共に、図1の逆量子化回路12に出力される。つまり、否ゼロの量子化されているDCT係数だけが逆量子化回路12に出力される。
続いて、シフトされたバレルシフタ回路111のデータ列と可変長復号テーブル113の内容とから復号回路112は次の復号を行い、以後上記復号を繰り返す。ただし、ストリーム中にはDCT係数以外のブロックの終了を示すEOB(エンドオブブロック)符号が挿入されており、復号回路112にてEOB符号が復号されたときには、エンドオブブロック信号を逆量子化回路12に出力し、タイミング制御回路18にエンド信号を出力した後、復号回路112は動作を停止する。ゼロランの分ゼロを出力する必要がないため、その分回路の動作は速くなる。
図3は図1中の逆量子化回路12の一実施の形態の概略ブロック図を示す。図3に示すように、逆量子化回路12は、データイネーブル及びエンドオブブロック信号が入力される制御回路121と、ゼロランが入力されるアドレス生成回路122と、アドレス生成回路122に接続された逆走査テーブル123と、量子化されているDCT係数が入力される逆量子化処理回路124と、逆量子化の際に用いる逆量子化テーブル125とよりなる。
この逆量子化回路12は、図1のタイミング制御回路18からのスタート信号により動作を開始すると、まず、アドレス生成回路122を初期化し、制御回路121からのクリア信号をセットして、図1のゼロ/否ゼロ判定回路19へクリア信号を出力する。以後、逆量子化回路12は、可変長復号回路11からのデータイネーブルがセットされているときのみ、可変長復号回路11からのゼロランレングス、否ゼロの量子化されているDCT係数のデータを取り込み動作する。
アドレス生成回路122は、入力されたゼロランレングスからジグザグスキャン順のDCT係数のアドレスAを作成し、更に、そのアドレスAとそれに対応する逆走査テーブル123のテーブルデータとから、ラスタースキャン順のアドレスBを生成する。アドレスBは逆量子化テーブル125の選択、逆量子化処理を施したDCT係数のバッファメモリ13への書き込みアドレス、ゼロ/否ゼロ判定回路19へのセレクト信号として出力される。
逆量子化処理回路124は、図3のアドレス生成回路122から入力されたアドレスBによって選択された逆量子化テーブル125の値と、図1の可変長復号回路11から入力された否ゼロの量子化されているDCT係数との乗算などの逆量子化演算、飽和処理、ミスマッチ処理を行い、得られた処理結果を図1のバッファメモリ13へのライトデータとして出力する。制御回路121は、入力されたデータイネーブルからアドレス生成回路122及び逆量子化処理回路124のタイミングを制御すると共に、図1のゼロ/否ゼロ判定回路19へクリア、セット信号を出力し、図1のバッファメモリ13にリードライトイネーブル、チップセレクトを出力する。
また、制御回路121は、エンドオブブロック信号が入力されたときは、図1のタイミング制御回路18へエンド信号を出力し、回路の動作を停止する。この逆量子化回路12では、入力される量子化されているDCT係数は否ゼロのDCT係数のみであり、値が0の量子化されているDCT係数(0係数)の演算処理を省いているため、従来に比べて回路の動作は速くなる(短時間でDCTブロックの演算が終了する)。そして、演算時間が短くなった分、動作を停止しておけるので、その分、消費電力が削減でき、消費電力が削減できるので、バッテリの消費も減り、バッテリの長寿命化を実現できる。
図4は図1中のバッファメモリ13の一実施の形態の概略ブロック図を示す。図4に示すように、バッファメモリ13は、セレクト回路131と2つのメモリ132及び133よりなる。メモリ132及び133は、それぞれ8X8の1ブロック分の2次元DCT係数を格納する64ワードのメモリである。
図4において、図1のタイミング制御回路18からのセレクト信号により、セレクト回路131は、第1の接続状態(逆量子化回路12とメモリ132を接続、逆DCT回路14とメモリ133を接続)と、第2の接続状態(逆量子化回路12とメモリ133を接続、逆DCT回路14とメモリ132を接続)のどちらか一方を選択する。ここでは、セレクト回路131は、1ブロックのデータを処理する毎に上記の第1の接続状態と第2の接続状態を交互に切り替える。これにより、逆量子化回路12による逆量子化処理と、逆DCT回路14による逆DCT処理とを並行して行うパイプライン処理が可能となる。
ここで、2次元DCT係数をF[v][u](v:行方向0から7、u:列方向0から7)で表現した場合、メモリ132、133上のアドレスADDR(=v*8+u)にF[v][u]が格納される。すなわち、2次元DCT係数F[v][u]は、1ブロック当り、行方向に8個、列方向に8個の計64個のDCT係数からなるが、この2次元のDCT係数をメモリ132、133にそれぞれ1次元のデータとして記憶するために、上記のアドレスADDR(=v*8+u)に64個のDCT係数を記憶する。
図5は図1中のゼロ/否ゼロ判定回路19の一実施の形態の概略ブロック図を示す。ゼロ/否ゼロ判定回路19は、図5に示すように、図1の逆量子化回路12からクリア信号、セット信号、アドレス信号などが供給される制御回路191と、否ゼロフラグ0、1をそれぞれ出力する2つのレジスタ192及び193と、行・列フラグ0、1をそれぞれ出力する2つの論理回路194及び195とからなる。なお、上記の行・列フラグ0、1は、それぞれ行ゼロフラグv0〜v7と列ゼロフラグu0〜u7とからなる。また、上記の否ゼロフラグ0、1は、それぞれ64ビットのフラグである。
図5のゼロ/否ゼロ判定回路19は、図1のタイミング制御回路18からの信号によりレジスタ192及びレジスタ193の一方の選択を行い、動作を開始する。レジスタ192、レジスタ193は64ビット分のレジスタであり、出力する値をREG[n](n=0〜63)と表現した場合、2次元のDCT係数F[v][u]に対してn=v*8+uに対応している。
すなわち、レジスタ192、レジスタ193の0ビット〜63ビットの出力値REG[0]〜REG[63]は、メモリ132、133のアドレスADDR0〜ADDR63に記憶されるDCT係数F[v][u]に対応しており、REG[ADDR]は、そのアドレスADDR(=v*8+u)に記憶されるDCT係数の値が「0」であれば、”0”がセットされ、DCT係数の値が「0」でなければ、”1”がセットされる。これらレジスタ192、レジスタ193の0ビット〜63ビットの出力値REG[0]〜REG[63]は、DCT係数の値が「0」であるかどうかを示す否ゼロフラグ0,1として使われることは前述した通りである。
論理回路194及び195はu,vに対応するレジスタ値のOR回路であり、各列、各行がすべて0であるかどうかを示す信号、行ゼロフラグv0〜v7、列ゼロフラグu0〜u7を作成する。2次元DCTは行方向の1次元DCTと列方向の1次元DCTとからなり、行方向の1次元DCT係数の値がすべて「0」であれば、演算結果も0になり、演算をする必要が無くなる。そこで、行0の1次元DCT係数の値がすべて「0」であるか否かを示すための信号が行0の行ゼロフラグv0である。この行0の1次元DCT係数F[v][u]は、v=0で、u=0,1,2,3,4,5,6,7からなり、行0の1次元DCT係数の値がすべて「0」であるか否かは、論理回路194、195でレジスタ192、193の0ビット目〜7ビット目の出力値REG[0]〜REG[7]の論理和をとって得られる行ゼロフラグv0が0であるか否かにより分かる。ここで、上記の行ゼロフラグv0は、論理和を|で示すものとすると、次式で表される。
v0=REG[0]|REG[1]|REG[2]|REG[3]
|REG[4]|REG[5]|REG[6]|REG[7]
行ゼロフラグv0が0であれば、行0のDCT係数の値がすべて「0」であることが分かる。
同様に、行1のDCT係数の値がすべて「0」であるか否かを表す信号が行ゼロフラグv1である。行1のDCT係数F[v][u]は、v=1で、u=0,1,2,3,4,5,6,7からなり、論理回路194、195でレジスタ192、193の8ビット目から15ビット目の出力値REG[8]〜REG[15]の論理和をとって得られる行ゼロフラグv1は次式で表される。
v1=REG[8]|REG[9]|REG[10]|REG[11]
|REG[12]|REG[13]|REG[14]|REG[15]
行ゼロフラグv1が0であれば、行1のDCT係数の値がすべて「0」であることが分かる。他の行ゼロフラグv2〜v7も上記と同様である。
一方、列方向の1次元DCT係数も、その値がすべて「0」であれば、演算結果も0になり、演算をする必要が無くなる。そこで、列0の1次元DCT係数の値がすべて「0」であるか否かを示すための信号が列0の列ゼロフラグu0である。この列0の1次元DCT係数F[v][u]は、u=0で、v=0,1,2,3,4,5,6,7からなり、列0の1次元DCT係数の値がすべて「0」であるか否かは、論理回路194、195でレジスタ192、193のnビット目の出力値REG[n](ただし、n=v*8+uで、u=0、v=0〜7)の論理和をとって得られる列ゼロフラグu0が0であるか否かにより分かる。ここで、上記の列ゼロフラグu0は、次式で表される。
u0=REG[0]|REG[8]|REG[16]|REG[24]
|REG[32]|REG[40]|REG[48]|REG[56]
列ゼロフラグu0が0であれば、列0のDCT係数の値がすべて「0」であることが分かる。他の列ゼロフラグu1〜u7も上記と同様である。
以上をまとめると、行ゼロフラグv0〜v7、列ゼロフラグu0〜u7は、入力される値のレジスタ192、193のアドレスをaddr(v,u)=v×8+uとして、論理和を|で表現すると、次式で表される(ただし、n=0〜7)。
vn=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)]
un=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)]
図5の制御回路191は、図4のバッファメモリ13において、逆量子化回路12がメモリ132に接続されている第1の接続状態のときには、レジスタ192を選択し、逆量子化回路12がメモリ133に接続されている第2の接続状態のときには、レジスタ193を選択する。
図6は図1中の逆DCT回路14の一例の概略ブロック図を示す。図6において、逆DCT回路14は、制御回路141、アドレス生成回路142、セレクタ143、レジスタ144、逆DCT演算回路145、レジスタ146からなる。制御回路141は図1のタイミング制御回路18からのスタート信号で動作を開始すると共に、バッファ切り替え信号を入力として受け、ゼロ/否ゼロ判定回路19からの入力信号の0と1(行・列フラグ0及び否ゼロフラグ0と、行・列フラグ1及び否ゼロフラグ1)のどちらが有効かを判定する。
この逆DCT回路14の動作について、図7のフローチャートと共に説明する。制御回路141は、まず、最初の1次元DCT処理を行うために、ゼロ/否ゼロ判定回路19からの有効と判定した方の行・列フラグ0(又は1)から行ゼロフラグv0〜v7の総和Vを計算し(ステップS1)、また列ゼロフラグu0〜u7の総和Uを計算する(ステップS2)。続いて、制御回路141は、これら行ゼロフラグの総和Vと列ゼロフラグの総和Uとを比較し、UがV以下であるかどうか判定する(ステップS3)。
列ゼロフラグの総和Uが行ゼロフラグの総和V以下であるときは、まず列方向の逆DCT処理を行い(ステップS4)、その後行方向の逆DCT処理を行う(ステップS5)。列ゼロフラグの総和Uが行ゼロフラグの総和Vより大であるときには、まず行方向の逆DCT処理を行い(ステップS6)、その後列方向の逆DCT処理を行う(ステップS7)。なお、U=Vのときは、列方向逆DCT処理を最初に行うように説明したが、行方向逆DCT処理を最初に行うようにしてもよい。同数の場合は予め設定されている方向から処理を開始すればよい。
ところで、一次元逆DCTは次式に示す通りDCT係数とcos関数の積和演算により行われるため、DCT係数がすべて0であれば、結果は0となるのであるからいちいち計算をする必要はない。
Figure 2007104155
ただし、上式中、NはDCT係数の数、f(x)は逆変換されたデータ、kは何番目の係数かを示す値、F(k)はk番目のDCT係数、C(k)は補正係数を示す。
また、効率の良い圧縮をするために量子化において高次のDCT係数は0になり易くなるように、量子化テーブルなどが設定されているのが一般的であり、MPEG2のデフォルトの量子化係数は図9のようになっている。このため行・列の係数がすべて0になる場合が少なくないと考えられる。
以降の処理の説明のため、ここでは行方向を先に処理すると判断し、行方向の逆DCT処理を行うものとする(図7のステップS6)。まず、制御回路141は行ゼロフラグv0が“1”か“0”であるかを識別し、“0”であれば処理を飛ばして次の行ゼロフラグv1が“1”か“0”であるかを識別する。行ゼロフラグv0が“1”であれば、データの読み出しを開始するため、アドレス発生回路142に行0のアドレスを順次発生させる。一方、アドレス生成回路142が発生するアドレスに対応する否ゼロフラグをみて“1”であれば、図1のバッファメモリ13のデータを読み出す。このとき、逆DCT回路14が図4のバッファメモリ13のメモリ132に接続されているときには、チップセレクト0をアクティブとし、メモリ133に接続されているときには、チップセレクト1をアクティブにする。
次に、制御回路141は、セレクタ143に否ゼロフラグが“1”であればバッファメモリ13からの入力を選択し、否ゼロフラグが“0”であれば固定値0の入力を選択するよう指示する。固定値0を入力する場合は、バッファメモリ13は動作しないので、消費電力の削減に寄与する。
また、レジスタ144は8ワード分を格納するレジスタである。制御回路141はセレクタ143に選択したデータをどのワードに書き込むかも指示する。1行分のデータを読み込み、レジスタ144にデータが格納された時点で、制御回路141は逆DCT演算回路145に処理を開始させる。逆DCT演算回路145による逆DCT演算処理は固定クロック数で処理が終わり、演算結果がレジスタ146に書き込まれる。
制御回路141はアドレス生成回路142にバッファメモリ13の書き込みアドレスを発生させると共に、チップセレクト、リード/ライトイネーブルを発生させてレジスタ146に書き込まれた逆DCT演算結果をバッファメモリ13に出力する。以上で行0の処理が終わる。同様に、行1、行2と処理を進め、行7まで処理が終わった時点で行方向逆DCT処理が終了する。行ゼロフラグが“0”の場合、その行の処理が飛ばされるので、従来よりも高速に動作させることができると共に、バッファメモリ13へのアクセスも削減できるので消費電力の低減に寄与する。
次に、2回目の逆DCT処理である列方向の逆DCT処理を開始する(図7のステップS7)。制御回路141は列ゼロフラグu0〜u7にかかわり無く、列0から列7まで順次処理を行う。データの読み出しを開始するため、アドレス生成回路142に列0のアドレスを順次発生させる。一方、アドレス生成回路142が発生するアドレスの行に対応する行ゼロフラグをみて、“1”であればチップセレクトをアクティブにしてバッファメモリ13のデータを読み出す。1回目の逆DCT処理において、否ゼロフラグとバッファメモリ13内の係数の否ゼロの関係が崩れるが、行の係数がすべて0であった場合は、1回目の逆DCT処理後もその行の係数は0になるため、行ゼロフラグをみることによって、0の係数の読み出しを止めることができる。
次に、制御回路141は、セレクタ143に行ゼロフラグが“1”であれば、バッファメモリ13からの入力を選択し、“0”であれば固定値0を入力するよう指示する。行ゼロフラグが“0”である場合、バッファメモリ13は動作しないので、消費電力の削減に寄与する。
バッファメモリ13から1列分のデータを読み込み、レジスタ144にデータが格納された時点で、制御回路141は逆DCT演算回路145に演算処理を開始させる。逆DCT処理は固定クロック数で処理が終わり、逆DCT演算結果がレジスタ146に書き込まれる。制御回路141はアドレス生成回路142に書き込みアドレスを発生させると共に、チップセレクト、リードライトイネーブルを発生させて、レジスタ146に書き込まれた逆DCT演算結果をバッファメモリ15に出力する。以上で列0の処理が終わる。以下、同様にして列7まで処理が終わった時点で、列方向逆DCT処理が終了し、2次元逆DCT処理が終了する。制御回路141は処理が終了したことをタイミング制御回路18にEND信号として知らせた後、動作を停止する。
図1の動き補償回路16は特に詳細なブロック図と共に説明しないが、タイミング制御回路18よりのタイミング信号に基づいて、バッファメモリ15から逆DCT処理をすることで得られたフレーム間予測誤差信号を読み出す。動き補償回路16は以前にフレームメモリ17に格納された対象となる画像データからフレーム間予測信号を生成した後、そのフレーム間予測信号とバッファメモリ15から読み出したフレーム間予測誤差信号とをそれぞれ加算して復号画像信号を得、その復号画像信号をフレームメモリ17に格納する。
以上が本実施の形態の動作である。このように、本実施の形態によれば、レジスタ192及び193をゼロ/否ゼロ判定回路19に追加することで、DCT係数が0の場合のバッファメモリ13へのアクセスを削減し動作の高速化、省電力化を可能としている。また、行ゼロフラグv0〜v7と列ゼロフラグu0〜u7とにより、1次元DCT処理とバッファメモリ13へのリード・ライト処理を削減して処理の高速化、省電力化を可能としている。
次に、動画像符号化装置について説明する。MPEGなどの時間相関をつかった予測差分画像の圧縮符号化アルゴリズムでは、画像符号化装置にローカルデコードと呼ばれる画像復号回路を持つ必要がある。図8は動画像符号化装置の一実施の形態のブロック図を示す。同図において、逆量子化回路25、バッファメモリ28、逆DCT回路29、バッファメモリ30、加算回路31は上記のローカルデコードと呼ばれる画像復号回路であり、これにゼロ/否ゼロ判定回路26を設け、図1の画像復号装置の要部を適用している。
図8において、符号化すべき対象となる対象画像信号と、予測に使われる参照画像信号とが差分生成回路21に入力され、差分生成回路21にて両入力信号の差分がとられて予測差分画像信号に変換され、8X8のブロック毎にDCT回路22に出力される。
DCT回路22は入力された行方向8個、列方向8個からなる8X8のブロックに対して行方向と列方向のそれぞれについてDCT処理を行う。その結果のDCT係数を量子化回路23へ出力する。量子化回路23は所定の量子化テーブルに従い、DCT係数を量子化処理してバッファメモリ24に書き込む。一方、量子化回路23は、量子化後のDCT係数を逆量子化回路25へ出力する。
逆量子化回路25では量子化後のDCT係数のゼロ判定を行い、その判定結果をゼロ/否ゼロ判定回路26に書き込む。ゼロの場合は逆量子化処理を行わず、ゼロでない量子化後のDCT係数のみ逆量子化処理をして処理後のDCT係数をバッファメモリ28に書き込む。従って、逆量子化回路25では、量子化後のゼロのDCT係数の処理を省くことができるので、高速化、省電力化に寄与する。
可変長符号化回路27はジグザグスキャン順にアドレスを発生させ、対応するゼロフラグが”1”であればゼロランをカウントアップし、”0”であればバッファメモリ24からデータを読み出し、ゼロランと共に可変長符号化処理を行い、符号を出力する。従って、ゼロのデータをバッファメモリ24から読まないので、高速化、省電力化に寄与する。
逆DCT回路29は図1及び図6に示した逆DCT回路14と同一構成であり、ゼロ/否ゼロ判定回路26の論理より行・列方向の一次元逆DCTの順番を決定し、2次元DCT係数のうち、すべてゼロであるDCT係数の行又は列以外の行又は列のDCT係数だけを、行方向(又は列方向)にバッファメモリ28から読み出し、1次元逆DCT処理をした後、バッファメモリ28に書き戻す。その後残りの逆DCT処理のため、もう一度バッファメモリ28から今度は列方向(又は行方向)にDCT係数を読み出し、逆DCT処理をしてバッファメモリ30にデータを書き込む。
従って、逆DCT回路29はゼロのDCT係数の処理を省けるため、高速化、省電力化に寄与する。加算回路31は、差分生成回路21に保存されていた参照画像を読み出し、バッファメモリ30からデータを読み出し加算し、復元画像として出力する。
この画像符号化装置では、逆量子化回路25による量子化されているゼロのDCT係数に対する逆量子化処理を省略すると共に、2次元DCT係数のうち同じ行又は同じ列に0ではないDCT係数がある否ゼロの行及び列のDCT係数だけに対して、逆DCT回路29による逆DCT処理を行い、更に、すべてゼロのDCT係数からなる行や列を構成する複数のDCT係数をバッファメモリ28からは読み出さず、またその変換結果も書き込まないので、バッファメモリ28のアクセスを削減でき、以上より、短時間で逆量子化処理及び逆DCT処理ができ、また、演算時間が短くなった分だけ、逆量子化回路25や逆DCT回路29の動作を停止しておけるので、その分消費電力を削減できる。また、画像復号化装置の動作電源がバッテリである場合は、上記の消費電力の削減に伴い、バッテリの長寿命化も実現できる。
本発明の画像復号装置の一実施の形態のブロック図である。 図1中の可変長復号回路の一実施の形態の概略ブロック図である。 図1中の逆量子化回路の一実施の形態の概略ブロック図である。 図1中のバッファメモリ13の一実施の形態の概略ブロック図である。 図1中のゼロ/否ゼロ判定回路の一実施の形態の概略ブロック図である。 図1中の逆DCT回路の一実施の形態の概略ブロック図である。 図6の概略動作説明用フローチャートである。 画像符号化装置の一実施の形態の概略ブロック図である。 MPEG2のデフォルトの量子化係数を示す図である。 従来の画像復号装置の問題点を説明するブロック図である。 図10の問題点を解決する従来の画像復号装置の一例のブロック図である。
符号の説明
11 可変長復号回路
12、25 逆量子化回路
13、15、24、28、30 バッファメモリ
14、29 逆DCT回路
16 動き補償回路
17 フレームメモリ
18 タイミング制御回路
19、26 ゼロ/否ゼロ判定回路
111 バレルシフタ回路
112 復号回路
113 可変長復号テーブル
121、141、191 制御回路
122、142 アドレス生成回路
123 逆走査テーブル
124 逆量子化処理回路
125 逆量子化テーブル
131 セレクト回路
132、133 メモリ
143 セレクタ
144、146、192、193 レジスタ
145 逆DCT演算回路
194、195 論理回路



Claims (1)

  1. 画像信号を所定画素数のブロックに分割し、その分割した各ブロック毎に離散コサイン変換して得た2次元DCT係数を量子化した信号から復号画像信号を得る画像復号装置において、
    前記2次元DCT係数を量子化した信号から、否ゼロのDCT係数のみに対し、予め与えられた量子化ステップサイズと量子化テーブルの値との乗算による逆量子化処理を施す逆量子化回路と、
    少なくとも前記逆量子化回路から出力された前記各ブロックのうちの1ブロック分の前記2次元DCT係数を一時蓄積するバッファメモリと、
    前記バッファメモリに蓄積されている前記2次元DCT係数を行方向又は列方向に読み出して、行方向又は列方向の1次元逆離散コサイン変換して、前記バッファメモリに書き戻した後、今度は前記バッファメモリに蓄積されている2次元DCT係数を列方向又は行方向に読み出して、列方向又は行方向の1次元逆離散コサイン変換を施すことにより、前記2次元DCT係数に対して行方向と列方向とのそれぞれについて逆離散コサイン変換して得たフレーム間予測誤差信号を出力する逆離散コサイン変換回路と、
    前記逆量子化回路からの信号に基づき、前記1ブロック分の前記2次元DCT係数を構成する複数のDCT係数について、逆量子化された否ゼロのDCT係数であるか否かを示す否ゼロフラグを生成すると共に、その否ゼロフラグを用いて前記2次元DCT係数における1行分のDCT係数が全て0か否かを示す行ゼロフラグと1列分のDCT係数が全て0か否かを示す列ゼロフラグとを、前記1ブロック分の2次元DCT係数の全ての行と全ての列とについて生成するゼロ/否ゼロ判定回路と
    を有し、前記逆離散コサイン変換回路は、前記ゼロ/否ゼロ判定回路からの前記行ゼロフラグと前記列ゼロフラグと前記否ゼロフラグとに基づいて、同じ行又は同じ列に0ではないDCT係数がある否ゼロの行及び列の前記DCT係数を前記バッファメモリから読み出して、1次元逆離散コサイン変換処理を行うことを特徴とする画像復号装置。
JP2005289558A 2005-10-03 2005-10-03 画像復号装置 Pending JP2007104155A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005289558A JP2007104155A (ja) 2005-10-03 2005-10-03 画像復号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005289558A JP2007104155A (ja) 2005-10-03 2005-10-03 画像復号装置

Publications (1)

Publication Number Publication Date
JP2007104155A true JP2007104155A (ja) 2007-04-19

Family

ID=38030675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005289558A Pending JP2007104155A (ja) 2005-10-03 2005-10-03 画像復号装置

Country Status (1)

Country Link
JP (1) JP2007104155A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436575B1 (ko) 2011-07-19 2014-09-16 한양대학교 산학협력단 복호화 장치 및 이산여현역변환 처리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101436575B1 (ko) 2011-07-19 2014-09-16 한양대학교 산학협력단 복호화 장치 및 이산여현역변환 처리 방법

Similar Documents

Publication Publication Date Title
JP4734168B2 (ja) 画像復号化装置及び画像復号化方法
US20070047655A1 (en) Transpose buffering for video processing
JP2003023635A (ja) ビデオフレームの圧縮及び伸張ハードウェアシステム
US20060133512A1 (en) Video decoder and associated methods of operation
US7102551B2 (en) Variable length decoding device
US7929777B2 (en) Variable length decoding device, variable length decoding method and image capturing system
US6987811B2 (en) Image processor and image processing method
JP4209631B2 (ja) 符号化装置、復号化装置、及び、圧縮伸長システム
US6928115B2 (en) Compression-encoded data decoding apparatus cross-reference to related applications
US7330595B2 (en) System and method for video data compression
TWI455587B (zh) 具有多格式影像編解碼功能的資料處理電路及處理方法
JP2947389B2 (ja) 画像処理用メモリ集積回路
US20060130103A1 (en) Video playback device
JP2010135885A (ja) 画像符号化装置および画像符号化方法
JP2007104155A (ja) 画像復号装置
US7142603B2 (en) Method and system for predictive table look-up code length of variable length code
JPH08307868A (ja) 動画像復号装置
US7262718B2 (en) Variable length decoder and variable length decoding method
US7675437B2 (en) Variable length decoding device and method for improving variable length decoding performance
JPWO2010095181A1 (ja) 可変長復号化装置
US20050025247A1 (en) Apparatus for parallel calculation of prediction bits in a spatially predicted coded block pattern and method thereof
JP4714531B2 (ja) ジグザグデータ発生回路
JPH09331528A (ja) 画像符号化機能付復号装置
JPH10136363A (ja) 圧縮データ復号装置および圧縮データ復号方法
WO2012160614A1 (ja) 動画像復号装置