JP3757406B2 - 符号化装置、符号化方法、復号化装置、および復号化方法 - Google Patents
符号化装置、符号化方法、復号化装置、および復号化方法 Download PDFInfo
- Publication number
- JP3757406B2 JP3757406B2 JP18635297A JP18635297A JP3757406B2 JP 3757406 B2 JP3757406 B2 JP 3757406B2 JP 18635297 A JP18635297 A JP 18635297A JP 18635297 A JP18635297 A JP 18635297A JP 3757406 B2 JP3757406 B2 JP 3757406B2
- Authority
- JP
- Japan
- Prior art keywords
- level
- code
- escape
- data
- block
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Television Signal Processing For Recording (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明は、符号化装置、符号化方法、復号化装置、および復号化方法に関し、特に、画像や音声をMPEG方式に応じて圧縮または伸長する、符号化装置、符号化方法、復号化装置、および復号化方法に関する。
【0002】
【従来の技術】
例えば、MPEG(Moving Picture Experts Group)符号化を行う場合においては、画像データがDCT(離散コサイン変換)されることによりDCT係数とされ、そのDCT係数が量子化された後、可変長符号化される。この可変長符号化においては、量子化されたDCT係数のランレングス(run length)およびレベル(level)に対応した可変長符号が出力される。
【0003】
図20は、可変長符号化を行う可変長符号化装置の従来の構成例を示すブロック図である。この図において、ランレングス/レベル検出回路300は、量子化されたDCT係数のランレングス、および、レベルを検出する。符号化テーブル記憶部10は、ランレングス/レベル検出器300により検出されたランレングスおよびレベルをアドレスデータとして、対応するデータを読み出してマルチプレクサ15に供給する。
【0004】
なお、符号化テーブル記憶部300には、図21(B)に示すようなデータが格納されている。例えば、MPEGにおいては、図21(A)に示すように、ランレングス(RUN)として0乃至63の範囲(従って、6ビットで表すことのできる範囲)を用いることができ、また、レベル(LEVEL)(レベルの絶対値)として0乃至2047の 範囲(従って、11ビットで表すことのできる範囲(符号ビットを含めれば12ビット)を用いることができる。
【0005】
そして、そのような範囲において、0乃至31の範囲のランレングス(RUN) および1乃至40の範囲のレベル(LEVEL)(レベルの絶対値)の組合せのうち の114の組合せ(同図において、正方形で囲んである部分)に対して、可変長符号があらかじめ割り当てられている。
【0006】
なお、上述の114の組合せというのは、エスケープ、EOB(End Of Block)、および最初のDCT(first DCT)係数を示す信号に対応する3つの可変長 符号を含む値であり、従って、これらを除けば、111の組合せということになる。
【0007】
また、図21(B)において、あらかじめ可変長符号が割り当てられていない範囲についてのランレングスとレベルの組合せは、エスケープのコードを用いて表現することとなる。
【0008】
図22および図23は、MPEGにおいて、可変長符号(VLC)と、その可変長符号があらかじめ割り当てられているランレングス(run)およびレベル(level)の組合せとの対応関係を示している。即ち、これらのデータは、図21(B)に示す正方形で囲んである部分に対応している。なお、図23は、図22に続く図である。
【0009】
エスケープ検出器11は、ランレングス/レベル検出器300の出力が図21(B)に示すエスケープ領域に対応する場合には、セレクト信号とエスケープ符号(=000001B(Bはその前の数値が2進数であることを表す))をマルチプレクサ15に対して出力するとともに、エスケープ符号の符号長(=6ビット)をセレクタ14に対して出力する。係数レベル検出器12は、ランレングス/レベル検出器300の出力データのうち、各ブロック(16×16画素のデータ)の第1番目の係数のレベルが“1”の場合には、マルチプレクサ15に対してセレクト信号と第1番目の係数のレベルが“1”であることを示す符号(=1B)を出力するとともに、セレクタ14に対して符号長(=1ビット)を出力する。
【0010】
エンドオブブロック検出器13は、ブロックの最後を示すエンドオブブロックを検出し、マルチプレクサ15にセレクト信号とエンドオブブロック符号(=10B)を出力するとともに、セレクタ14に対してエンドオブブロック符号の符号長(=2ビット)を出力する。
【0011】
マルチプレクサ15は、通常の処理(エスケープが検出された場合、ブロックの第1番目の係数のレベルが“1”の場合、または、エンドオブブロックが検出された場合を除く処理)においては、符号化テーブル記憶部10より出力されるデータを選択して、バレルシフタ305に出力する。
【0012】
一方、エスケープ検出器11がエスケープを検出した場合には、マルチプレクサ15は、エスケープ検出器11から出力されるセレクト信号により、エスケープが検出されたことを検知し、エスケープ検出器11から出力されるエスケープ符号にランレングス/レベル検出器300から出力されるランレングスとレベルとを付加して、バレルシフタ305に出力する。
【0013】
また、係数レベル検出器12がブロックの第1番目の係数のレベルが“1”であることを検出した場合、マルチプレクサ15は、セレクト信号によってそれを検知し、係数レベル検出器12から出力される符号を入力して、バレルシフタ305に出力する。
【0014】
更に、エンドオブブロック検出器13がエンドオブブロックを検出した場合、マルチプレクサ15は、セレクタ信号によりそれを検知し、エンドオブブロック検出器13から出力される符号を入力して、バレルシフタ305に供給する。
【0015】
セレクタ14は、マルチプレクサ15から出力される制御信号に従って、符号化テーブル記憶部10、エスケープ検出器11、係数レベル検出器12、または、エンドオブブロック検出器13からマルチプレクサ15に対して出力される符号の符号長を選択し、加算器307に対して出力する。
【0016】
加算器307は、セレクタ14から出力された符号長(その時点において、マルチプレクサ15からバレルシフタ305に対して出力されている符号の符号長)を累積加算して、FF部306に対して出力する。
【0017】
FF部306は、加算器307から出力される累積加算値を記憶し、バレルシフタ305に対して出力するとともに、加算器307に対して供給する。
【0018】
バレルシフタ305は、マルチプレクサ15から出力された符号を所定量だけシフトして、可変長符号連接器308に対して出力する。
【0019】
可変長符号連接器308は、バレルシフタ305から出力されるデータのうち、冒頭部分に付加された0Bを除く元のデータを抽出するとともに、逐次供給されるデータを連接し、所定のビット量のデータが蓄積されたときに、ビットストリームとして出力する。
【0020】
次に、以上の従来例の動作について簡単に説明する。
【0021】
いま、ランレングス/レベル検出器300に量子化データが入力されたとすると、量子化データは、そこで、ランレングスおよびレベルに変換されて出力される。
【0022】
ランレングス/レベル検出器300から出力されたランレングスおよびレベルが、図21(B)に示す正方形の領域に対応する場合には、符号化テーブル記憶部10は対応するデータを読み出し、マルチプレクサ15に出力するとともに、セレクト信号を“1”の状態とする。その結果、マルチプレクサ15は、符号化テーブル記憶部10から出力される符号化データを入力して、バレルシフタ305に対して供給する。
【0023】
なお、このとき、符号化テーブル記憶部10は、マルチプレクサ15に出力した符号の符号長をセレクタ14に対して出力する。マルチプレクサ15は、セレクト信号を参照して、セレクタ14に対して制御信号を送り、入力された符号長を選択させて、加算器307に対して出力させる。
【0024】
加算器307は、FF部306から出力される値と、セレクタ14から出力される符号長を加算して、FF部306に対して出力する。FF部306は、セレクタ14から新たなデータが出力される直前に、記憶されているデータを加算器307に対して供給する。そして、FF部306は、その結果として加算器307から出力される、直前のデータとセレクタ14から出力されたデータが加算された値をバレルシフタ305に対して出力するとともに、その値を保持する。
【0025】
即ち、FF部306と加算器307とは、セレクタ14から出力される符号長の累積加算値を算出することになる。なお、加算器307がKビット長であるとすると、加算値Sが2Kを超過した場合には、S−2Kが出力されることになる。
【0026】
バレルシフタ305は、FF部306から出力される累積加算値に応じて、マルチプレクサ15から出力されるデータをMSB方向にビットシフトさせ、可変長符号連接器308に対して出力する。可変長符号連接器308は、FF部306から出力される累積加算値とセレクタ14から出力される符号長とを参照し、バレルシフタ305から出力されるデータを読み込んでそれ以前に読み込まれたデータと連接し、所定のビット長(例えば、32ビット長)のデータが蓄積されたところで、ビットストリームとして出力する。
【0027】
なお、ランレングス/レベル検出器300から出力されたデータが、図21に示すエスケープ領域に属する場合には、エスケープ検出器11がそれを検出し、セレクト信号とともに、エスケープ符号をマルチプレクサ15に対して出力する。マルチプレクサ15は、セレクト信号を参照することにより、エスケープが検出されたことを検知し、エスケープ検出器11から出力されたエスケープ符号に対して、ランレングス/レベル検出器300から出力されたランレングスおよびレベルデータを付加して、バレルシフタ305に対して出力する。それ以降の処理は、前述の場合と同様である。
【0028】
また、係数レベル検出器12がブロックの第1の係数のレベルが“1”であることを検出した場合には、ブロックの第1の係数のレベルが“1”であることを示す符号とセレクト信号とがマルチプレクサ15に対して出力されるとともに、符号長がセレクタ14に対して出力される。そして、バレルシフタ305以降の回路において、前述の場合と同様の処理が施されることになる。
【0029】
更に、エンドオブブロック検出器13が、エンドオブブロックを検出した場合には、セレクト信号とエンドオブブロック符号とがマルチプレクサ15に出力されるとともに、エンドオブブロック符号の符号長がセレクタ14に対して出力される。そして、バレルシフタ305以降の回路において、前述の場合と同様の処理が繰り返されることになる。
【0030】
以上のような処理により、量子化データを対応するランレングスおよびレベル信号に変換するとともに、変換により得られたランレングスおよびレベルを可変長符号に更に変換することができる。
【0031】
【発明が解決しようとする課題】
ところで、以上のような従来例においては、図21に示すエスケープ領域は、図20に示すエスケープ検出器11によって検出するようになされていた。従って、図21に示す符号化テーブルとは異なるデータにより構成されるテーブルを使用する場合には、符号化テーブル記憶部10に記憶されている内容を書き換えるとともに、エスケープ検出器11の検出範囲を適宜変更する必要がある。通常エスケープ検出器11は、ハードウエア(論理回路)によって構成されているので、符号化テーブルの内容を容易に変更することができないという課題があった。
【0032】
また、前述の例では、符号化装置のみについて言及したが、同様の問題は復号化装置においても生じるので、符号化装置においても、復号化テーブルを容易に変更することができないという課題があった。
【0033】
更に、エスケープ符号のみならず、エンドオブブロック符号や、ブロックの最初の係数に関する符号も、前述のようにハードウエア的な構成とされいたため、これらを容易に変更することが出来ないという課題もあった。
【0034】
本発明は以上のような状況に鑑みてなされたものであり、符号化テーブルまたは復号化テーブルを容易に書き換え可能とするものである。
【0035】
【課題を解決するための手段】
請求項1に記載の符号化装置は、ランレングスの範囲が第1の閾値以上である場合、またはレベルの範囲が第2の閾値以上である場合、第1のエスケープ信号を生成する第1のエスケープ信号生成手段と、可変長符号が予め割り当てられている領域を含むデータを記憶している記憶手段と、ランレングスとレベルとを所定の方法に基づいて組み合わせることにより、アドレスデータを生成するアドレス生成手段と、アドレス生成手段によって生成されたアドレスデータを参照して、記憶手段から対応する可変長符号を読み出す読み出し手段と、アドレス生成手段によって生成されたアドレスデータが、可変長符号が予め割り当てられた領域を含むデータであり、かつ、アドレスデータに対応する可変長符号が存在しない場合に、第2のエスケープ信号を生成する第2のエスケープ信号生成手段と、第1または第2のエスケープ信号生成手段の一方からエスケープ信号が出力されている場合には、エスケープ符号を生成し、エスケープ符号にランレングスとレベルとを付加して出力する出力手段とを備え、記憶手段は、可変長符号が内包すべきレベルが正または負の極性を有するか否かを示す情報を記憶しており、読み出し手段が読み出したデータから極性を有するか否かを示す情報が極性を示している場合には、可変長符号の末尾のビットに対して正または負を示すデータを付加することを特徴とする。
【0036】
請求項11に記載の符号化方法は、可変長符号が予め割り当てられている領域を含むデータを記憶している記憶ステップと、ランレングスの範囲が第1の閾値以上である場合、またはレベルの範囲が第2の閾値以上である場合、第1のエスケープ信号を生成する第1のエスケープ信号生成ステップと、ランレングスとレベルとを組み合わせることにより、アドレスデータを生成するアドレス生成ステップと、アドレス生成ステップによって生成されたアドレスデータを参照して、記憶ステップにより記憶されているデータから対応する可変長符号を読み出す読み出しステップと、アドレス生成ステップによって生成されたアドレスデータが、可変長符号が予め割り当てられた領域を含むデータであり、かつ、アドレスデータに対応する可変長符号が存在しない場合に、第2のエスケープ信号を生成する第2のエスケープ信号生成ステップと、第1または第2のエスケープ信号生成ステップの一方からエスケープ信号が出力されている場合には、エスケープ符号を生成し、エスケープ符号にランレングスとレベルとを付加して出力する出力ステップとを含み、記憶ステップにおいて、可変長符号が内包すべきレベルが正または負の極性を有するか否かを示す情報が記憶されており、読み出しステップにおいて読み出したデータから極性を有するか否かを示す情報が極性を示している場合には、可変長符号の末尾のビットに対して正または負を示すデータを付加することを特徴とする。
【0038】
請求項12に記載の復号化装置は、ランレングスとレベル、および、エスケープに関する情報を記憶している記憶手段と、入力データから対応するアドレスデータを生成するアドレス生成手段と、アドレス生成手段によって生成されたアドレスデータを参照して、記憶手段から対応するランレングスとレベル、および、エスケープに関する情報とを読み出す読み出し手段と、読み出し手段によって読み出されたエスケープに関する情報を参照して、入力されたデータがエスケープ符号であるか否かを判定する判定手段と、判定手段が、入力されたデータがエスケープ符号であると判定した場合には、入力されたデータからエスケープ符号を除外してランレングスとレベルとを抽出する抽出手段とを備え、記憶手段は、可変長符号に内包されたレベルが正または負の極性を有するか否かを示す情報を記憶しており、読み出し手段により読み出されたデータから、レベルが極性を有するか否かを示す情報が極性を示している場合には、可変長符号の末尾のビットからレベルの極性を生成することを特徴とする。
【0039】
請求項16に記載の復号化方法は、ランレングスとレベル、および、エスケープに関する情報を記憶している記憶ステップと、入力データから対応するアドレスデータを生成するアドレス生成ステップと、アドレス生成ステップによって生成されたアドレスデータを参照して、記憶ステップにおいて記憶されている対応するランレングスとレベル、および、エスケープに関する情報とを読み出す読み出しステップと、読み出しステップによって読み出されたエスケープに関する情報を参照して、入力されたデータがエスケープ符号であるか否かを判定する判定ステップと、判定ステップが、入力されたデータがエスケープ符号であると判定した場合には、入力されたデータからエスケープ符号を除外してランレングスとレベルとを抽出する抽出ステップとを含み、記憶ステップにおいて、可変長符号に内包されたレベルが正または負の極性を有するか否かを示す情報が記憶されており、読み出しステップにおいて読み出されたデータから、レベルが極性を有するか否かを示す情報が極性を示している場合には、可変長符号の末尾のビットからレベルの極性を生成することを特徴とする。
【0041】
請求項1に記載の符号化装置および請求項11に記載の符号化方法においては、可変長符号が予め割り当てられている領域を含むデータが記憶されており、ランレングスの範囲が第1の閾値以上である場合、またはレベルの範囲が第2の閾値以上である場合、第1のエスケープ信号が生成され、ランレングスとレベルとを組み合わせることにより、アドレスデータが生成され、生成されたアドレスデータを参照して、対応する可変長符号が読み出され、生成されたアドレスデータが、可変長符号が予め割り当てられた領域を含むデータであり、かつ、アドレスデータに対応する可変長符号が存在しない場合に、第2のエスケープ信号が生成され、エスケープ信号が出力されている場合には、エスケープ符号が生成され、エスケープ符号にランレングスとレベルとが付加されて出力され、可変長符号が内包すべきレベルが正または負の極性を有するか否かを示す情報が記憶されており、読み出したデータから極性を有するか否かを示す情報が極性を示している場合には、可変長符号の末尾のビットに対して正または負を示すデータが付加される。
【0042】
請求項12に記載の復号化装置および請求項16に記載の復号化方法においては、ランレングスとレベル、および、エスケープに関する情報が記憶されており、入力データから対応するアドレスデータが生成され、生成されたアドレスデータを参照して、対応するランレングスとレベル、および、エスケープに関する情報とが読み出され、読み出されたエスケープに関する情報を参照して、入力されたデータがエスケープ符号であるか否かが判定され、入力されたデータがエスケープ符号であると判定した場合には、入力されたデータからエスケープ符号を除外してランレングスとレベルとが抽出され、可変長符号に内包されたレベルが正または負の極性を有するか否かを示す情報が記憶されており、読み出されたデータから、レベルが極性を有するか否かを示す情報が極性を示している場合には、可変長符号の末尾のビットからレベルの極性が生成される。
【0043】
【発明の実施の形態】
図1は、本発明を適用したビデオレコーダの一実施例の構成例を示している。画像符号化装置1では、記録媒体2に記録すべき画像が、例えば、MPEG符号化される。画像符号化装置1における符号化の結果得られたデータは、例えば、磁気テープや、磁気ディスク、光ディスク(例えば、DVD(Digital Versatile Disc)など)などの記録媒体2に記録される。画像復号化装置3では、記録媒体2が再生され、その再生データがMPEG復号化される。画像復号化装置3における復号化により得られる復号画像は、図示せぬモニタに供給されて表示される。
【0044】
図2は、図1の画像符号化装置1の構成例を示している。この画像符号化装置においては、画像(動画像)がMPEG(Moving Picture Experts Group)符号化されるようになされている。即ち、端子101には、ディジタル化された動画像信号が入力されるようになされており、この動画像信号は、演算器102および動きベクトル検出器(ME)110に供給される。動きベクトル検出器110では、入力された動画像信号のフレーム間の動きベクトルが検出される。
【0045】
ここで、動きベクトル検出器110においては、動きベクトルの検出は、例えば、参照フレームと、現在符号化の対象となっているフレームの16画素×16ラインの小ブロック(マクロブロック)とをパターンマッチング(ブロックマッチング)することにより行われるようになされている。即ち、現在のマクロブロック(符号化対象のマクロブロック)の、例えば最も左からi番目の、最も上からj番目の画素の画素値を信号Aijとし、同様に、任意の動きベクトルにより参照される参照フレームにおける16×16のブロックを構成する画素の画素値をFijとするとき、次式で表される絶対値和Efを最小にする動きベクトルが検出される。
【0046】
Ef=Σ|Aij−Fij|
但し、上式におけるΣは、i,jそれぞれを、1乃至16の範囲の整数値に変えてのサメーションを意味する。
【0047】
動きベクトル検出器110において検出された動きベクトルは、動き補償器(MC)109およびVLC器(可変長符号化器)111に供給される。動き補償器109は、フレームメモリ(FM)109Aを備えており、動きベクトル検出器110からの動きベクトルにしたがって、フレームメモリ109Aに記憶されている、局所復号化された画像信号を読み出し、これを、予測画像信号として、演算器102および108に供給する。即ち、動き補償器109は、フレームメモリ109Aの読み出しアドレスを、符号化対象のマクロブロックに対応するアドレスから、動きベクトルに対応する分だけずれたアドレスに設定し、そこから画像信号を読み出して、演算器102および108に供給する。
【0048】
演算器102は、端子101に入力された、符号化対象のマクロブロックと、動き補償器109から供給された予測画像との差分を計算し、その結果得られる予測残差信号を、DCT(離散コサイン変換)器103に供給する。なお、例えば、符号化の開始時や、シーンチェンジがあった時などにおいては、予測残差信号が大きく予測効率が低くなるので、このようなときには、マクロブロックは、フレーム内(イントラ)符号化されるようになされている。即ち、フレーム内符号化の対象とされるマクロブロックは、演算器102をスルーして、そのまま、DCT器103に供給される。
【0049】
DCT器103では、演算器102の出力に対して、2次元DCT処理が施され、その結果得られるDCT係数が、例えば、いわゆるジグザグスキャンされて、量子化器104に供給される。量子化器104では、DCT器103からのDCT係数が、レートコントローラ(RC)105から供給される量子化ステップ幅にしたがって量子化され、その結果得られる量子化係数が、逆量子化器106およびVLC器111に供給される。
【0050】
VLC器111は、量子化器104からの量子化係数、即ち、量子化されたDCT係数から、そのランレングスとレベルを検出し、このランレングスとレベルの組合せに対応する可変長符号を生成して出力する(可変長符号化処理を施して出力する)。また、VLC器111では、レートコントローラ105または動きベクトル検出器110それぞれから供給される、各マクロブロックごとの量子化ステップ幅または動きベクトルに対しても可変長符号化処理を施して出力する。VLC器111から出力される符号化データ(可変長符号)は、バッファ112に供給される。バッファ112は、VLC器111からの符号化データを一時記憶することにより、そのビット量(データ量)の変動を吸収し、例えば一定のビットレートにして、端子113から、ビットストリームを出力する。
【0051】
VLC器111が出力する符号化データは、レートコントローラ105にフィードバックされており、これにより、レートコントローラ105は、VLC器111が出力する符号化データのビット量を監視している。そして、レートコントローラ105は、バッファ112がオーバーフローしそうなときは、量子化ステップ幅を大きくし、また、バッファ112がアンダーフローしそうなときは、量子化ステップ幅を小さくして、量子化器104に供給し、これにより、バッファ112のオーバーフローおよびアンダーフローを防止するようになされている。
【0052】
なお、レートコントローラ105が出力する量子化ステップ幅は、量子化器104の他、逆量子化器106およびVLC器111にも供給されるようになされている。
【0053】
一方、逆量子化器106では、量子化器104から供給された量子化係数が、レートコントローラ105より供給される量子化ステップ幅、即ち、量子化器104において用いられた量子化ステップ幅と同一の量子化ステップ幅で逆量子化され、その結果得られるDCT係数が、逆DCT器107に供給される。逆DCT器107では、逆量子化器106からのDCT係数が、逆DCT処理され、演算器108に供給される。
【0054】
演算器108には、逆DCT器107の出力の他、上述したように、動き補償器109から、演算器102に供給されている予測画像と同一のデータが供給されており、演算器108は、逆DCT器107からの信号(予測残差信号)と、動き補償器109からの予測画像とを加算することで、元の画像を、局所復号する(但し、画像符号化装置においてイントラ符号化が行われている場合には、逆DCT器107の出力は、演算器108をスルーして、フレームメモリ109Aに供給される)。なお、この復号画像は、受信側において得られる復号画像と同一のものである。
【0055】
演算器108において得られた復号画像は、フレームメモリ109Aに供給されて記憶され、その後、インター符号化(フレーム間符号化)される画像に対する参照画像(参照フレーム)として用いられる。
【0056】
図3は、図1の画像復号化装置3の構成例を示している。
【0057】
端子201には、記録媒体2から再生されたデータ(符号化データ)が入力されるようになされており、その符号化データは、バッファ202に供給されて一時記憶される。バッファ202に記憶された符号化データは、VLD(可変長復号化)器203に供給され、そこで可変長復号化される。VLD器203における可変長復号化により得られる各マクロブロックごとの量子化係数(量子化されたDCT係数)および量子化ステップ幅は、逆量子化器204に供給され、動きベクトルは、動き補償器207に供給される。なお、VLD器203において可変長復号化処理が行われることにより得られるのは、量子化されたDCT係数のランレングスおよびレベルであるが、VLD器203は、このランレングスおよびレベルを、量子化されたDCT係数(量子化係数)に変換して、逆量子化器204に供給するようになされている。
【0058】
逆量子化器204は、VLD器203からの量子化係数を、同じくVLD器203からの量子化ステップ幅にしたがって逆量子化し、その結果得られるDCT係数を、逆DCT器205に出力する。逆DCT器205は、逆量子化器204からのDCT係数が、逆DCT処理され、演算器206に供給される。
【0059】
演算器206には、逆DCT器205の出力の他、動き補償器207の出力も供給されている。即ち、動き補償器207は、フレームメモリ207Aを有しており、図2の動き補償器109における場合と同様に、VLD器203からの動きベクトルにしたがって、フレームメモリ207Aから予測画像信号を読み出し、演算器206に供給する。演算器206は、逆DCT器205からの信号(予測残差信号)と、動き補償器207からの予測画像とを加算することで、元の画像を復号し、フレームメモリ207Aに供給する(但し、逆DCT器205の出力が、イントラ符号化されたものである場合には、その出力は、演算器206をスルーして、フレームメモリ207Aに供給される)。
【0060】
フレームメモリ207Aに記憶された復号画像は、その後に復号される画像の参照画像として用いられるとともに、適宜読み出され、モニタなどに表示される。
【0061】
図4は、本発明の符号化装置の実施の形態の一例である。この実施の形態において、ランレングス/レベル検出器300は、図2に示す量子化器104から出力された量子化データのランレングスおよびレベルを検出し、符号化テーブル記憶部301(アドレス生成手段、記憶手段、第2のエスケープ信号生成手段)に供給するようになされている。
【0062】
符号化テーブル記憶部301は、ランレングスとレベルに関する情報が入力され、対応する可変長符号と、その可変長符号の長さを示す符号長とが出力されるようになされている。また、ランレングスとレベルに関する情報が、第2のエスケープ領域(後述する)に属する場合には、第2のエスケープ信号を“1”の状態とするようになされている。
【0063】
図5は、図4に示す符号化テーブル記憶部301に格納されているデータの一例を示す図である。例えば、MPEGにおいては、ランレングス(RUN)として0乃至63の範囲(従って、6ビットで表すことのできる範囲)を用いることができ、また、レベル(LEVEL)(レベルの絶対値)として0乃至2047の範囲(従って、11ビットで表すことのできる範囲(符号ビットを含めれば12ビット)を用いることができる。
【0064】
そして、そのような範囲において、0乃至31の範囲のランレングス(RUN)および1乃至40の範囲のレベル(LEVEL)(レベルの絶対値)の組合せのうちの114の組合せに対して、可変長符号があらかじめ割り当てられている。従って、このような範囲のランレングスとレベルの組合せをアドレスとした場合、そのアドレスを表現するには、前述したように、通常、11ビットが必要となる。
【0065】
ところで、符号化テーブル記憶部301には、ランレングスが0乃至31の範囲で、かつ、レベルが1乃至40の範囲のデータが格納されている。符号化テーブル記憶部301に記憶されているデータには、2種類が存在している。1つは、可変長符号であり、図5において、四角形で示すデータに対応している。また、他の1つは、エスケープデータであり、図5において、ハッチングが施してある領域のデータに対応する。なお、符号化テーブル記憶部301は、RAMなどにより構成されており、その記憶内容は、図示せぬ制御部(検出手段)の制御に応じて、適宜書き換え可能とされている。
【0066】
エスケープ判定器302(第1のエスケープ信号生成手段)は、入力されたランレングスが32以上であるか、または、レベルが41以上の場合(図5に示す第1のエスケープ領域)の場合に、第1のエスケープ信号を“1”の状態とするとともに、エスケープ符号の符号長をセレクタ309に供給するようになされている。
【0067】
論理和(OR)回路303は、符号化テーブル記憶部301から出力された第2のエスケープ信号とエスケープ判定器302から出力される第1のエスケープ信号の論理和を演算し、マルチプレクサ304(読み出し手段、出力手段)に供給するようになされている。
【0068】
マルチプレクサ304は、論理和回路303の出力の状態に応じて、エスケープ符号に対して図2に示す量子化器104の出力信号(ランレングスとレベル)を付加したデータ、または、符号化テーブル記憶部301の出力データの何れか一方を選択し、バレルシフタ305に出力するようになされている。
【0069】
なお、符号化テーブルには、可変長符号の他、その可変長符号の長さ、および、第2のエスケープ信号を生成するためのデータも登録されている。バレルシフタ305に供給された可変長符号の長さは、符号化テーブル記憶部301から読み出され、加算器307に供給されるようになされている。
【0070】
ここで、符号化テーブルに記憶されている可変長符号のワード幅は、例えば、可変長符号の最大の長さLなどと同一になされており、その長さLに満たない可変長符号については、例えば、その上位ビットに、0B(Bは、2進数であることを示す)を配置することによって、Lビットとされている。従って、あるランレングスおよびレベルの組合せに対応する可変長符号の長さがi(≦L)ビットである場合、符号化テーブル記憶部301の出力は、その可変長符号の上位ビットに、L−i個の0Bを付加したものとなっている。このため、符号化結果として、連続した可変長符号列を出力するためには、符号化テーブル記憶部301の出力から、その上位ビットとして付加されているL−i個の0Bを削除する必要がある。
【0071】
そこで、バレルシフタ305においては、符号化テーブル記憶部301の出力がビットシフトされ、これにより、いまの符号化テーブル記憶部301の出力に含まれる可変長符号のMSB(最上位ビット)が、前回の符号化テーブル記憶部301の出力に含まれる可変長符号のLSB(最下位ビット)の1つ下位のビットの位置に移動されるようになされている。
【0072】
セレクタ309は、マルチプレクサ304の制御に応じて、符号化テーブル記憶部301から出力される符号長、または、エスケープ判定器302から出力される符号長の何れかを選択して、加算器307と可変長符号連接器308に対して出力する。即ち、ランレングス/レベル検出器300から出力されるランレングスおよびレベルが第1のエスケープ領域に属している場合には、セレクタ309は、エスケープ判定器302から出力される符号長を選択して出力し、その他の場合には、符号化テーブル記憶301から出力される符号長を選択して出力する。
【0073】
加算器307は、符号化テーブル記憶部301から供給される可変長符号の長さと、FF部306の記憶値とを加算し、FF部306に出力するようになされている。FF部306は、加算器307の出力値を一時記憶し、その記憶値を、符号化テーブル記憶部301から可変長符号の長さが出力されるのを待って、加算器307とバレルシフタ305に供給するようになされている。
【0074】
従って、加算器307およびFF部306によれば、可変長符号の長さの累積加算が行われるようになされている。
【0075】
なお、バレルシフタ305のビット数Nが2K(但し、Kは正の整数)に等しいとき、加算器307は、Kビットの加算器で構成され、従って、累積加算値Sが2K以上となったときには、S−2Kを出力するようになされている。
【0076】
可変長符号連接器308は、バレルシフタ305から出力されるデータを、逐次連接して、ビットストリームデータとして出力するようになされている。
【0077】
次に、その動作について説明する。
【0078】
符号化テーブル記憶部301は、入力されたランレングスおよびレベルに対応するアドレスに記憶されている可変長符号およびその長さを読み出し、可変長符号はマルチプレクサ304に、可変長符号の長さは加算器307に、それぞれ供給する。
【0079】
ここで、符号化テーブル記憶部301に記憶されているデータは、N+6ビットにより構成されており、そのうち、MSBは、第2のエスケープ信号を生成する際に使用するビットとして確保されている。即ち、符号化テーブル記憶部301に記憶されている所定のデータが、第2のエスケープ領域に対応している場合には、そのデータのMSBは、“1”の状態に設定される。また、MSBの1つ下位のビットから5つ下位のビットまでの合計5ビットは、符号長を格納するビットとされている。更に、MSBの6つ下位のビットからLSBまでのNビットには、可変長符号が、例えば右詰めで(LSB側に詰めて)記憶されている。
【0080】
従って、可変符号データがNビット未満の場合に、その上位ビットは、例えば0Bなどとされる(MPEGにおいては、符号化出力の最大ビット数が28ビットと規定されており、従って、符号化テーブルに記憶されている可変長符号のワード幅が、例えば、この28ビットであり、かつ、N=32ビットで構成される場合には、28ビットの可変長符号の上位ビットとして、4ビットの0Bが付加され、これにより、32ビットとされる)。これにより、可変長符号は、一律に、Nビット固定のデータ(以下、適宜、Nビット固定可変長符号という)とされる。
【0081】
符号化テーブル記憶部301から出力されたNビット固定可変長符号は、マルチプレクサ304に出力される。マルチプレクサ304は、論理和回路303の出力が“0”の状態の場合(エスケープ領域以外のデータが入力された場合)には、符号化テーブル記憶部301から出力されたNビット可変長符号をそのまま出力する。また、論理和回路303の出力が“1”の状態の場合(第1または第2のエスケープ領域のデータが入力された場合)には、エスケープ符号に対してランレングスおよびレベルデータを付加して出力する。
【0082】
加算器307では、符号化テーブル記憶部301から供給された可変長符号の長さと、FF部306の記憶値とが加算されることにより、可変長符号の長さが累積加算される。この累積加算値は、FF部307に供給されて記憶される。FF部307に記憶された累積加算値は、シフト量として、バレルシフタ305と可変長符号連接器308に供給され、FF部306に記憶された累積加算値は、次の累積加算値の算出のために、加算器307に供給される。
【0083】
バレルシフタ305は、符号化テーブル記憶部301の出力をビットシフトし、これにより、いまの符号化テーブル記憶部301の出力に含まれる可変長符号のMSB(最上位ビット)が、前回の符号化テーブル記憶部301の出力に含まれる可変長符号のLSB(最下位ビット)の1つ下位のビットの位置に移動されるようになされている。
【0084】
即ち、符号化テーブル記憶部301から出力された可変長符号の長さは、FF部306と加算器307により累積加算され、バレルシフタ305におけるビットシフト量が算出される。バレルシフタ305は、この累積加算値(ビットシフト量)に従って、符号化テーブル記憶部301の出力をビットシフトし、可変長符号連接器308に対して出力する。
【0085】
ここで、バレルシフタ305が、N(≧L)ビットで構成されているとすると、可変長符号連接器308は、バレルシフタ305が出力するNビットそれぞれをラッチするN個のフリップフロップを含んでいる。
【0086】
いま、LSBを第0ビットとし、LSBの1つ上位のビットを第1ビット、LSBから2つ上位のビットを第2ビット、・・・というものとし、可変長符号連接器308の第m(<N)ビットからMSB(第Nビット)に、可変長符号が、既に連続してラッチされているものとする。
【0087】
この場合、バレルシフタ305からは、可変長符号のMSBが第m−1ビットとなるように、符号化テーブル記憶部301の出力がビットシフトされ、可変長符号連接器308に出力される。可変長符号連接器308は、FF部306から出力される符号の累積加算値と、符号化テーブル301から出力される符号長とに応じて、バレルシフタ305の出力を選択的にラッチするようになされており、この場合、可変長符号連接器308は、第m−1ビット以下のビットをラッチするフリップフロップのみを動作させる。
【0088】
従って、この場合、可変長符号連接器308では、バレルシフタ305の出力のうちの第m−1ビット以下のみがラッチされ、これにより、可変長符号連接器308の第mビット以上にラッチされている可変長符号(可変長符号列)は、そのままで、その可変長符号に続くように、バレルシフタ305から出力された可変長符号が配置される。
【0089】
以下、同様の処理が繰り返され、その後、可変長符号連接器308に、Nビット分の可変長符号列がラッチされると、可変長符号連接器308は、そのNビットの可変長符号列をビットストリームとして出力する。
【0090】
ところで、いま、図5に示す第1のエスケープ領域に属するランレングスおよびレベルがランレングス/レベル検出器300から出力されたとすると、エスケープ判定器302の出力である第1のエスケープ信号が“1”の状態となる。すると、論理和回路303の出力も“1”の状態となり、その結果、マルチプレクサ304は、エスケープ符号を生成するとともに、生成したエスケープ符号に対して、ランレングス/レベル検出器300から出力された、ランレングスおよびレベルを付加し、バレルシフタ305に対して出力する。
【0091】
また、図5に示す第2のエスケープ領域に属するランレングスおよびレベルがランレングス/レベル検出器300から出力されたとすると、これらのデータは、符号化テーブル記憶部301に供給される。符号化テーブル記憶部301は、ランレングスおよびレベルに対応するアドレスに格納されているデータを読み出してデータバスから出力する。
【0092】
データバスのうち、MSBは、第2のエスケープ信号として、論理和回路303に供給されており、また、符号化テーブル記憶部301に格納されているデータのうち、第2のエスケープ領域に属するデータのMSBは、“1”の状態とされているので、第2のエスケープ領域に属するランレングスおよびレベルがランレングス/レベル検出器300から出力されると、第2のエスケープ信号は、“1”の状態となる。
【0093】
第2のエスケープ信号が“1”の状態とされると、論理和回路303の出力は、“1”の状態となるので、マルチプレクサ304は、エスケープ符号を生成するとともに、生成したエスケープ符号に対して、ランレングス/レベル検出器300から出力された、ランレングスおよびレベルを付加し、バレルシフタ305に対して出力する。
【0094】
なお、前述のように、符号化テーブル記憶部301に記憶されているデータは、適宜書き換え可能とされているので、このテーブルの内容は自由に書き換えることが可能となる。その場合、第2のエスケープ領域のデータも同時に書き換えることにより、可変長符号が存在しない領域に対しても処理を行うことが可能となる。
【0095】
従って、以上の実施の形態によれば、符号化テーブル記憶部301に記憶されているデータを適宜書き換えることにより、異なる可変長符号化に対しても簡単に対応することが可能となる。
【0096】
次に、復号化装置について説明する。
【0097】
図6は、図3に示すVLD器203の詳細な構成例を示すブロック図である。
【0098】
この図において、可変長符号読み出し器500は、図3に示すバッファ202から出力されるビットストリームから、Nビット分の可変長符号列を読み出すようになされている。バレルシフタ501は、Nビットの可変長符号列をFF部502から出力されるシフト量に応じてシフトさせ、復号化テーブル記憶部504に対して出力するようになされている。
【0099】
復号化テーブル記憶部504は、バレルシフタ501から出力された可変長符号列に対応するアドレスに格納されているランレングスおよびレベルデータ、並びに、符号長を読み出してデマルチプレクサ504と加算器503にそれぞれ出力する。また、バレルシフタ501から出力された可変長符号が、エスケープ符号である場合には、第3のエスケープ信号をデマルチプレクサ506に対して供給するようになされている。
【0100】
デマルチプレクサ506は、復号化テーブル記憶部504から出力されたランレングスとレベルとを、量子化されたDCT係数に変換し、図3に示す逆量子化回路204に出力するようになされている。また、第3のエスケープ信号が復号化テーブル記憶部504から出力された場合には、バレルシフタ501から出力された可変長符号からエスケープ符号を除外して、ランレングスとレベルを生成した後、これらをDCT係数に変換して出力するようになされている。
【0101】
次に、以上の実施の形態の動作について説明する。
【0102】
可変長符号読み出し器500は、図3に示すバッファ202から出力されるビットストリームから、Nビット分の可変長符号列を読み出して記憶する。
【0103】
加算器503では、符号化/復号化テーブル記憶部504(アドレス生成手段、記憶手段)から供給される、前回復号化された可変長符号の長さσと、FF部502の記憶値、即ち、前回のシフト量Σとが加算されることにより、可変長符号の長さが累積加算される。この累積加算値Σ+σは、FF部502に供給されて記憶される。FF部502に記憶された累積加算値は、シフト量として、バレルシフタ501に供給され、FF部502に記憶された累積加算値は、次の累積加算値の算出のために、加算器503に供給される。
【0104】
可変長符号読み出し器500は、記憶しているNビットの可変長符号列のうちの上位i(<N)ビットの復号化が終了しているとき、その残りのN−iビットと、次のNビットの可変長符号列のうちの上位iビットとを、シフト量Σ+σ(ここでは、Σ+σ=i)に基づいて選択し、その選択した合計N(=(N−i)+i)ビットのデータを、バレルシフタ501に供給する。
【0105】
バレルシフタ501は、FF部502からシフト量Σ+σを受信すると、可変長符号読み出し器500からのNビットのデータを、Σ+σビットだけ左シフトし、そのシフト結果としてのNビットのシフトデータを、復号化テーブル記憶部504に供給する。ここで、このNビットのシフトデータのMSBからは、現在、復号化対象となっている可変長符号が配置されている。即ち、バレルシフタ501においては、これから復号化される可変長符号の、いわば頭出しが行われる。
【0106】
復号化テーブル記憶部504においては、バレルシフタ501からのNビットのシフトデータが、例えば、アドレスデコードされ、そのデコード結果をアドレスとして、そのアドレスに記憶されているランレングスおよびレベル、並びに可変長符号の長さが読み出される。そして、ランレングスおよびレベルは、デマルチプレクサ506(読み出し手段、判定手段、抽出手段)に供給され、可変長符号の長さは、加算器503に供給される。
【0107】
デマルチプレクサ506では、復号化テーブル記憶部504からのランレングスおよびレベルが、量子化されたDCT係数に変換され、図3に示す逆量子化器204に供給される。
【0108】
以下、同様の処理が繰り返され、可変長符号読み出し器500に記憶されているNビットの可変長符号列の復号化がすべて終了すると、次のNビットの可変長符号列の復号化が開始される。さらに、可変長符号読み出し回路500において、次に復号化すべきNビットの可変長符号列がバッファ202から読み出されて記憶される。そして、以下、同様の処理が繰り返される。
【0109】
ところで、バレルシフタ501から出力された可変長符号がエスケープ符号である場合には、符号化テーブル記憶部504から出力される第3のエスケープ信号は、“1”の状態とされ、その結果、デマルチプレクサ506は、バレルシフタ501から出力される可変長符号データからエスケープ符号を除外して得られたランレングスとレベルとを出力する。
【0110】
即ち、復号化テーブル記憶部504に格納されているデータは、エスケープ(1ビット)、符号長(5ビット)、ランレングス(6ビット)、および、レベル(12ビット)により構成されている。なお、エスケープ符号が先頭に付加された可変長符号(エスケープ符号+ランレングス+レベル)に対するデータのエスケープビットは“1”の状態とされており、それ以外のデータの同ビットは、“0”の状態とされている。なお、復号化テーブル504から出力されるデータバスの、MSBは、第3のエスケープ信号としてデマルチプレクサ506に入力されている。
【0111】
従って、バレルシフタ501から出力されたデータがエスケープ符号を含んでいる場合には、復号化テーブル記憶部504の出力信号である第3のエスケープ信号は“1”の状態とされる。その結果、デマルチプレクサ506は、バレルシフタ501から出力される可変長符号からエスケープ符号を除外して得られたランレングスおよびレベルを出力する。
【0112】
なお、復号化テーブル記憶部504に記憶されているデータは、図示せぬ制御部の制御によって適宜書き換え可能とされているので、異なる可変長符号化にも対応することが可能となる。
【0113】
図7は、本発明の符号化装置の第2の実施の形態の構成例を示すブロック図である。この図において、図4と対応する部分には、同一の符号が付してあるので、その説明は適宜省略する。なお、この図においては、図4に示すバレルシフタ以降の回路が省略されている。
【0114】
この図において、ランレングス/レベル検出器300は、量子化されたDCT係数のランレングス、および、レベルを検出するようになされている。デコーダ600(変換手段)は、ランレングス/レベル検出器300の出力データをデコードし、第1のエスケープ領域に属するデータ、エンドオブブロックデータ、および、ブロックの第1番目の係数のレベルが“1”であるデータを、所定のアドレスにそれぞれマッピングするようになされている。
【0115】
符号化テーブル記憶部601は、図8に示す領域のうち、ランレングスが0乃至31の領域であり、かつ、レベルが0乃至40の領域のデータを格納している。また、レベルが0であり、かつ、ランレングスが0乃至2の領域には、それぞれ、エスケープ符号、エンドオブブロック符号、および、ブロックの第1番目の係数のレベルが“1”の場合の符号が格納されている。また、第2のエスケープ領域に格納されているデータのMSBと、ランレングスが0およびレベルが0に対応するアドレスに格納されているデータ(エスケープ符号)のMSBは、共に“1”の状態とされており、また、それ以外の領域のデータは、全て“0”の状態とされている。更に、符号化テーブル記憶部601のデータバスのMSBは、第1、第2のエスケープ信号として、マルチプレクサ603に入力されており、この信号は、デコーダ600の出力アドレスが第1または第2のエスケープ領域に属する場合には、“1”の状態とされる。
【0116】
マルチプレクサ603は、符号化テーブル記憶部601の出力である第1、第2のエスケープ信号が“1”の状態である場合には、エスケープ符号を生成し、ランレングス/レベル検出器300により検出されたランレングスとレベルを生成したエスケープ符号に付加して出力する。また、その他の場合には、符号化テーブル記憶部601から出力された符号を選択し、バレルシフタ305に対して出力する。
【0117】
それ以降の回路の構成は、図4に示す場合と同様である。
【0118】
次に、以上の実施の形態の動作について説明する。
【0119】
量子化器104から量子化されたDCT係数のデータが出力されると、ランレングス/レベル検出器300は、ランレングスとレベルデータに変換し、出力する。デコーダ600は、ランレングス/レベル検出器300により検出されたランレングスおよびレベルデータをデコードし、アドレスデータを生成して符号化テーブル記憶部601に出力する。
【0120】
いま、ランレングス/レベル検出器300の出力データが、対応する可変符号長が存在する領域(図8の正方形が存在する領域)に属する場合には、デコーダ600は、例えば、レベルを上位ビット、ランレングスを下位ビットとして連接した後、符号化テーブル記憶部601に出力する。符号化テーブル記憶部601は、供給されたアドレスに対応するデータを読み出して、マルチプレクサ603に対して出力する。なお、この領域に対応するアドレスに格納されているデータは、図4に示す実施の形態の場合と同様である。
【0121】
また、ランレングス/レベル検出器300の出力データが、第2のエスケープ領域に属する場合には、デコーダ600は、レベルを上位ビットとし、ランレングスを下位ビットとして連接してアドレスデータを生成し、符号化テーブル記憶部601に出力する。符号化テーブル記憶部601の第2のエスケープ領域に格納されているデータのMSBは、“1”の状態とされているので、この領域に対応するデータが読み出された場合には、第1、第2のエスケープ信号が“1”の状態となり、その結果、マルチプレクサ603はエスケープ符号を生成し、ランレングス/レベル検出器300から出力されるランレングスとレベルとを付加して出力することになる。
【0122】
更に、ランレングス/レベル検出器300の出力データが、第1のエスケープ領域に属する場合には、デコーダ600は、上位ビットおよび下位ビットがともに“0”であるアドレスデータを生成し、符号化テーブル記憶部601に出力する。符号化テーブル記憶部601の上位アドレスが“0”および下位アドレスが“0”の領域には、エスケープ符号が格納されており、そのMSBは“1”とされているので、第1の領域に対応するランレングスおよびレベルがランレングス/レベル検出器300より出力された場合には、第1、第2のエスケープ信号が“1”の状態となり、その結果、マルチプレクサ603はエスケープ符号を生成し、ランレングス/レベル検出器300から出力されるランレングスとレベルとを付加して出力することになる。
【0123】
更にまた、ランレングス/レベル検出器300の出力データが、エンドオブブロックデータである場合には、デコーダ600は、上位ビットが“0”、下位ビットが“1”であるアドレスデータを生成して、符号化テーブル記憶部601に出力する。符号化テーブル記憶部601の上位アドレスが“0”および下位アドレスが“1”の領域には、エンドオブブロック符号とその符号長とが格納されており、符号化テーブル記憶部601は、これらのデータをマルチプレクサ603に対して出力することになる。マルチプレクサ603は、符号化テーブル記憶部601から出力される符号を選択して出力する。
【0124】
また、ランレングス/レベル検出器300の出力データを構成するブロックの第1番目の係数のレベルが“1”である場合には、デコーダ600は、上位ビットが“0”、下位ビットが“2”であるアドレスデータを生成して、符号化テーブル記憶部601に出力する。符号化テーブル記憶部601の上位アドレスが“0”および下位アドレスが“2”の領域には、ブロックの第1番目の係数が“1”である場合の符号とその符号長とが格納されており、符号化テーブル記憶部601は、これらのデータをマルチプレクサ603に対して出力することになる。マルチプレクサ603は、符号化テーブル記憶部601から出力される符号を選択して出力する。
【0125】
以上の実施の形態によれば、符号化テーブル記憶部601に記憶されているデータを適宜書き換えることにより、他の可変長符号にも対応することが可能となる。また、この実施の形態では、エスケープ符号、エンドオブブロック符号、および、ブロックの第1の係数が“1”である場合に対応する符号を、上位ビットが0である領域に格納している。これは、レベルを上位ビットとした場合、上位ビットは1から始まっているため、上位ビットが0となる領域が使用されない状態となるので、この領域を有効利用することを可能とするためである。
【0126】
次に、本発明の符号化装置の第3の実施の形態について説明する。図9は、本発明の符号化装置の第3の実施の形態の構成例を説明するブロック図である。この図において、図4と対応する部分には同一の符号を付してあるので、その説明は省略する。なお、この実施例では、エスケープ符号に対する構成は、説明を簡略化するために省略されている。
【0127】
この図において、ランレングス/レベル検出器300は、量子化器104の出力である量子化されたDCT係数を入力し、対応するランレングスとレベルとを出力するようになされている。デコーダ620は、ランレングス/レベル検出器300から出力されたデータのレベルを上位ビットとし、ランレングスを下位ビットとして連接してアドレスデータを生成し、符号化テーブル記憶部621に出力する。また、デコーダ620は、ランレングス/レベル検出器300の出力がエンドオブブロックに対応する場合には、上位ビットが“1”であり、また、下位ビットが“0”であるデータを生成して、符号化テーブル記憶部621に対して出力する。
【0128】
符号化テーブル記憶部621には、図10に示すようなデータが格納されている。即ち、レベルを上位ビットとし、また、ランレングスを下位ビットとすると、上位ビットが1であり、かつ、下位ビットが0であるアドレスには、エンドオブブロック符号と、ブロックの第1番目の係数のレベルが“1”である場合の符号とが記憶されている。
【0129】
なお、このように、異なる符号を同一の符号でまとめているのは、MPEGにおいては、図22に示すように、エンドオブブロックを示す可変長符号は、“10”であり、また、最初のDCT係数のレベルが“1”の場合の可変長符号は、“1s”であり、レベルの符号が正の場合には、s=0であるので、“10”となり相互に等しいからである。
【0130】
次に、以上の実施の形態の動作について簡単に説明する。
【0131】
いま、ランレングス/レベル検出器300からエンドオブブロックに対応する符号が入力された場合には、デコーダ620は、上位アドレスが“1”、下位アドレスが“0”のデータを出力する。その結果、符号化テーブル記憶部621からは、エンドオブブロック符号とその符号長とが読み出されて出力される。
【0132】
また、ブロックの第1番目の係数のレベルが“1”の場合にも、符号化テーブル記憶部621の上位アドレスが“1”、下位アドレスが“0”の領域からブロックの第1番目の係数のレベルが“1”である場合に対応する符号とその符号長とが読み出されて出力される。
【0133】
以上の実施の形態によれば、MPEGに対応した符号化装置を構成することが可能となる。
【0134】
図11は、正または負の極性を含むレベルデータに対応する符号化装置の構成例を示す図である。なお、この実施の形態において、図4の場合と対応する部分には、同一の符号を付してあるので、その説明は省略する。
【0135】
符号化テーブル記憶部641(抽出手段)に記憶されているデータには、DCT係数のレベルが正または負であることを示すデータが、例えば、MSBに含まれており、ランレングス/レベル検出器300から出力されるレベルが極性を有している場合には、前述のビットが“1”であるデータが読み出されて出力されることになる。
【0136】
符号化テーブル記憶部641のデータバスのMSBは、レベルの極性の有無を示す信号としてマルチプレクサ643に供給されているので、ランレングス/レベル検出器300から出力されたレベルが極性を有している場合には、レベルの極性の有無を示す信号は“1”の状態となる。
【0137】
レベルの極性生成器642は、ランレングス/レベル検出器300から出力されるレベルの極性が、正の場合には値“0”を生成し、また、負の場合には値“1”を生成してマルチプレクサ643に対して出力する。
【0138】
マルチプレクサ643は、符号化テーブル記憶部641から出力されるレベルの極性の有無を示す信号が“1”の状態である場合には、レベルの極性生成器642から出力されるレベルの極性を、符号の末尾のビット(図22および図23に示す符号s)として出力するようになされている。
【0139】
次に、以上の実施の形態の動作について簡単に説明する。
【0140】
いま、ランレングス/レベル検出器300から、極性を有するレベルデータが出力されたとすると、符号化テーブル記憶部641から出力されるレベルの極性の有無を示す信号は“1”の状態となる。
【0141】
また、そのとき、レベルの極性生成器642は、ランレングス/レベル検出器300から出力されたレベルデータが、例えば、負の値を取る場合には、値“1”を生成して、マルチプレクサ643に対して出力する。マルチプレクサ643は、符号化テーブル記憶部641から出力されるレベルの極性の有無を示す信号が“1”の状態である場合には、レベルの極性生成器642から出力される値(いまの例では“1”)を選択し、符号の末尾のビットとして出力する。
【0142】
以上のような実施の形態によれば、レベルが極性を有する場合においても、可変長符号化を行うことが可能となる。
【0143】
図12は、レベルが極性を有し、かつ、エンドオブブロックが含まれる場合に対応する符号化装置の構成例を示すブロック図である。この図において、図11の場合と対応する部分には同一の符号が付してあるのでその説明は省略する。
【0144】
この実施の形態においては、図11の場合と比較して、エンドオブブロック判定器662が新たに追加されている。その他の構成は、図11に示す場合と同様である。
【0145】
エンドオブブロック判定器662は、ランレングス/レベル検出器300からエンドオブブロックに対応するデータが出力された場合には、図示せぬ制御部からの制御信号に応じて、レベルの値を“0”にする。その結果、レベルの極性生成器642からは値“0”が出力されるので、可変長符号が極性を有する場合(レベルの極性の有無を示す信号が“1”の状態である場合)であっても、エンドオブブロックが入力された場合には、マルチプレクサ643からは、符号の末尾のビットとして、値“0”が出力されることになる。
【0146】
図13は、図12と同様の機能を有する符号化装置の他の構成例を示す図である。
【0147】
この図において、図12と対応する部分には同一の符号を付してあるのでその説明は省略する。この図においては、図12に示すエンドオブブロック判定器662が、エンドオブブロック判定器682に置換されている。その他の構成は図12に示す場合と同様である。
【0148】
エンドオブブロック判定器682は、図示せぬ制御部からの制御信号に応じて、レベルの値を正の値にする。その結果、レベルの極性生成器642からは値“0”が出力されるので、可変長符号が極性を有する場合(レベルの極性の有無を示す信号が“1”の状態である場合)であっても、エンドオブブロックが入力された場合には、マルチプレクサ643からは、符号の末尾のビットとして、値“0”が出力されることになる。
【0149】
また、図14は、図12および図13に示す構成例と同様の機能を有する符号化装置の他の構成例を示すブロック図である。なお、この図において、図12および図13と対応する部分には同一の符号が付してあるのでその説明は省略する。
【0150】
この実施の形態においては、エンドオブブロック判定器700と無効化器701(無効化手段、停止手段)が新たに追加されている。
【0151】
エンドオブブロック判定器700は、ランレングス/レベル検出器300から出力されるランレングスおよびレベルがエンドオブブロックである場合には、図示せぬ制御部からの制御信号に応じて、これを検知し、無効化器701に対して制御信号を出力する。
【0152】
無効化器701は、エンドオブブロック判定器700からの制御信号に応じて、符号化テーブル記憶部641から出力されるレベルの極性の有無を示す信号を無効化(“0”の状態に)する。
【0153】
次に、以上の実施の形態について簡単に説明する。
【0154】
ランレングス/レベル検出器300から、エンドオブブロックに対応するデータが出力された場合には、図示せぬ制御回路から制御信号が出力され、エンドオブブロック判定器700に供給される。エンドオブブロック判定器700は、無効化器701を制御し、符号化テーブル記憶部641から出力されるレベルの極性の有無を示す信号を無効化(“0”の状態に)する。
【0155】
その結果、レベルの極性生成器642の出力の状態に拘わらず、マルチプレクサ643から出力される符号の末尾のビットは、“0”の状態とされるので、エンドオブブロック符号が正確に生成されることになる。
【0156】
図15は、図14と同様の動作を行う符号化装置の他の構成例を示すブロック図である。この図において、図14と対応する部分には、対応する符号が付してあるのでその説明は省略する。
【0157】
この例では、無効化器701がレベルの極性生成器642の出力とマルチプレクサ643の入力との間に挿入されている。その他の構成は、図14に示す場合と同様である。
【0158】
この実施の形態では、エンドオブブロック判定回路700がランレングス/レベル検出器300の出力がエンドオブブロックを示していると判定した場合には無効化器701により、レベルの極性生成器642から出力されるレベルの極性を示す信号を無効(“0”の状態)にするので、前述の場合と同様に、エンドオブブロックが検出された場合には、マルチプレクサ643から出力される符号の末尾のビットは“0”の状態とされるので、エンドオブブロック符号が正確に出力されることになる。
【0159】
続いて、復号化装置の他の構成例について説明する。
【0160】
図16は、本発明の復号化装置の第2の実施の形態の構成例を示すブロック図である。なお、この図において、図6に示す場合と対応する部分には同一の符号を付してあるので、その説明は省略する。
【0161】
この実施の形態においては、図6に示す場合と比較して、デコーダ800が新たに追加されている。その他の構成は図6の場合と同様である。
【0162】
デコーダ800は、可変長符号の特性を利用して、復号化テーブル記憶部504に格納するデータの量を削減しようとするものである。
【0163】
即ち、図22および図23に示すように、可変長符号の大部分の上位ビットは0であり、このような可変長符号の性質を利用して、可変長符号そのものではなく、その一部としての、例えば、上位ビットの0Bの並びに基づいて、可変長符号を変換した(可変長符号の一部で構成される)可変長中間符号生成し、その中間符号をアドレスとして、復号化テーブル記憶部504に対して出力するようにすることで、可変長復号化テーブルの縮小化を図ることが可能となる。
【0164】
なお、MPEGに規定されている可変長符号については、例えば、その最下位ビットから8ビット(符号ビットsを含む下位8ビット)だけで、各可変長符号の特定が可能であることが、本件発明者により確認されている。
【0165】
次に、以上の実施の形態の動作について簡単に説明する。
【0166】
バレルシフタ501から出力されたデータは、デコーダ501において、可変長符号の上位ビットの0または1の並びに基づいて、その可変長符号が、元のビット数より少ないビット数で構成される可変長中間符号に変換され、復号化テーブル記憶部504に供給される。
【0167】
復号化テーブル記憶部504は、デコーダ800から出力されたデータに対応するアドレスに格納されているデータを読み出して、デマルチプレクサ505に対して出力する。また、復号化テーブル記憶部504に格納されているデータのMSBは第3のエスケープ信号としてデマルチプレクサ505に供給されており、バレルシフタ501から出力されたランレングスおよびレベルが第1または第2のエスケープ領域に属する場合には、第3のエスケープ信号が“1”の状態とされる。その結果、デマルチプレクサ505は、バレルシフタ501から出力される可変長符号からエスケープ符号を除外して、得られたランレングスおよびレベルデータを出力する。
【0168】
以上の実施の形態によれば、復号化テーブル記憶部504に記憶されているデータを適宜書き換えることが可能となるので、異なる可変長符号化処理を行うことも可能となる。
【0169】
なお、以上の構成例においては、デコーダ800が付加されることにより、復号化テーブル記憶部504の記憶容量を縮小することが可能となるが、その分だけ、他の可変長符号化に対応する柔軟性が低下することになる。
【0170】
図17は、本発明の復号化装置の第3の実施の形態の構成例を示すブロック図である。
【0171】
この図において、図6と対応する部分には、同一の符号を付してあるのでその説明は適宜省略する。
【0172】
この実施の形態においては、図6の場合と比較して、復号化テーブル記憶部504が復号化テーブル記憶部800に置換されている。その他の構成は図6の場合と同様である。
【0173】
復号化テーブル記憶部800は、図6に示す復号化テーブル記憶部504に記憶されているデータに加えて、新たにエンドオブブロックに対応するデータが記憶されている。従って、バレルシフタ501から、エンドオブブロックに対応する可変長符号が出力された場合には、エンドオブブロックデータが出力されることになる。
【0174】
図18は、本発明の復号化装置の第4の実施の形態の構成例を示すブロック図である。この実施の形態において、図6の場合と対応する部分には同一の符号を付しているのでその説明は省略する。
【0175】
この実施の形態においては、図6の場合と比較して、復号化テーブル記憶部504が復号化テーブル記憶部840(分離手段)に置換されている。また、レベルの極性発生器841(第2の生成手段)が新たに追加されている。なお、その他の構成は、図6の場合と同様である。
【0176】
復号化テーブル記憶部840は、図6に示す復号化テーブル記憶部504の場合と比較して、レベルの極性の有無を示す情報が新たに付加されている。また、レベルが極性を有する場合には、復号化テーブル記憶部840はレベルの極性の有無を示す信号を発生して、レベルの極性発生器841に供給するようになされている。
【0177】
レベルの極性発生器841は、復号化テーブル記憶部840から出力されるレベルの極性の有無を示す信号が“1”の状態である場合には、可変長符号の末尾のビットを抽出し、レベルの正または負の極性を発生し、出力する。
【0178】
次に、以上の実施の形態の動作について簡単に説明する。
【0179】
いま、バレルシフタ501から、極性を有する可変長符号が出力されたとすると、復号化テーブル記憶部840は、レベルの極性の有無を示す信号を“1”の状態とする。その結果、レベルの極性発生器841は、可変長符号の下位ビットを抽出し、レベルの極性として出力する。即ち、可変長符号が正の値である場合には、レベルの極性発生器841は、“0”を出力し、一方、可変長符号が負の値である場合には、“1”を出力することになる。
【0180】
以上の実施の形態によれば、可変長符号が極性を有する場合においても、可変長符号を復号化することが可能となる。
【0181】
図19は、本発明の復号化装置の第5の実施の形態の構成例を示すブロック図である。この図において、図17の場合と対応する部分には、対応する符号が付してあるのでその説明は省略する。
【0182】
この実施の形態においては、図17の場合と比較してエンドオブブロックの無効化器860が新たに追加されている。その他の構成は、図17の場合と同様である。
【0183】
エンドオブブロックの無効化器860は、図示せぬ制御部からブロックの第1の係数を示す信号が出力されている場合には、符号化テーブル記憶部820(生成手段)から出力されるエンドオブブロックを無効化するようになされている。
【0184】
次に、以上の実施の形態の動作について簡単に説明する。
【0185】
いま、バレルシフタ501から、ブロックの第1番目の係数であって、レベルが“1”である可変長符号が出力された場合、デマルチプレクサ505からは、ランレングスおよびレベルが出力される。また、このとき、復号化テーブル記憶部820からは、エンドオブブロックがエンドオブブロック無効化器860に対して出力されることになる。このとき、図示せぬ制御部からはブロックの最初の係数を示す信号が出力されているので、復号化テーブル記憶部820から出力されたエンドオブブロックは、エンドオブブロック無効化器860により無効化されるので出力されることはない。
【0186】
また、正規のエンドオブブロック信号がバレルシフタ501から出力された場合には、復号化テーブル記憶部820はエンドオブブロック信号をエンドオブブロックの無効化器860に供給する。このとき、エンドオブブロック無効化器860には、ブロックの最初の係数を示す信号は供給されていないので、エンドオブブロックはそのまま出力されることになる。
【0187】
以上の実施の形態によれば、エンドオブブロックとブロックの第1番目のDCT係数が“1”である場合を確実に判別することが可能となる。
【0188】
なお、本明細書中において、伝送媒体には、FD,CD−ROMなどの情報記録媒体の他、インターネット、デジタル衛星などのネットワーク伝送媒体も含まれる。
【0189】
【発明の効果】
請求項1に記載の符号化装置および請求項11に記載の符号化方法によれば、可変長符号が予め割り当てられている領域を含むデータが記憶されており、ランレングスの範囲が第1の閾値以上である場合、またはレベルの範囲が第2の閾値以上である場合、第1のエスケープ信号が生成され、ランレングスとレベルとを組み合わせることにより、アドレスデータが生成され、生成されたアドレスデータを参照して、対応する可変長符号が読み出され、生成されたアドレスデータが、可変長符号が予め割り当てられた領域を含むデータであり、かつ、アドレスデータに対応する可変長符号が存在しない場合に、第2のエスケープ信号が生成され、エスケープ信号が出力されている場合には、エスケープ符号が生成され、エスケープ符号にランレングスとレベルとが付加されて出力され、可変長符号が内包すべきレベルが正または負の極性を有するか否かを示す情報が記憶されており、読み出したデータから極性を有するか否かを示す情報が極性を示している場合には、可変長符号の末尾のビットに対して正または負を示すデータが付加されるようにしたので、記憶されている可変長符号およびエスケープ符号とを適宜書き換えることにより、異なる可変長符号化にも対応することが可能となる。
【0190】
請求項12に記載の復号化装置および請求項16に記載の復号化方法によれば、ランレングスとレベル、および、エスケープに関する情報が記憶されており、入力データから対応するアドレスデータが生成され、生成されたアドレスデータを参照して、対応するランレングスとレベル、および、エスケープに関する情報とが読み出され、読み出されたエスケープに関する情報を参照して、入力されたデータがエスケープ符号であるか否かが判定され、入力されたデータがエスケープ符号であると判定した場合には、入力されたデータからエスケープ符号を除外してランレングスとレベルとが抽出され、可変長符号に内包されたレベルが正または負の極性を有するか否かを示す情報が記憶されており、読み出されたデータから、レベルが極性を有するか否かを示す情報が極性を示している場合には、可変長符号の末尾のビットからレベルの極性が生成されるようにしたので、記憶されているランレングスとレベル、および、エスケープに関する情報を書き換えることにより、異なる可変長復号化にも対応することが可能となる。
【図面の簡単な説明】
【図1】本発明を適用したビデオレコーダの構成の一例を示すブロック図である。
【図2】図1に示す画像符号化装置1の詳細な構成例を示すブロック図である。
【図3】図1に示す画像復号化装置2の詳細な構成例を示すブロック図である。
【図4】図2に示すVLC器111の詳細な構成例を示すブロック図である。
【図5】図4に示す符号化テーブル記憶部301に記憶されているデータの一例を示す図である。
【図6】図3に示すVLD器203の詳細な構成例を示すブロック図である。
【図7】図2に示すVLC器111の第2の構成例を示すブロック図である。
【図8】図7の符号化テーブル記憶部601に記憶されているデータの一例を示す図である。
【図9】図2に示すVLC器111の第3の構成例を示すブロック図である。
【図10】図9の符号化テーブル記憶部620に記憶されているデータの一例を示す図である。
【図11】図2に示すVLC器111の第4の構成例を示すブロック図である。
【図12】図2に示すVLC器111の第5の構成例を示すブロック図である。
【図13】図2に示すVLC器111の第6の構成例を示すブロック図である。
【図14】図2に示すVLC器111の第7の構成例を示すブロック図である。
【図15】図2に示すVLC器111の第8の構成例を示すブロック図である。
【図16】図3に示すVLD器203の第2の構成例を示すブロック図である。
【図17】図3に示すVLD器203の第3の構成例を示すブロック図である。
【図18】図3に示すVLD器203の第4の構成例を示すブロック図である。
【図19】図3に示すVLD器203の第5の構成例を示すブロック図である。
【図20】従来の符号化装置の構成例を示すブロック図である。
【図21】図20の符号化テーブル記憶部10に記憶されているデータの一例を示す図である。
【図22】図21に示す可変長符号の一例を示す図である。
【図23】図21に示す可変長符号の一例を示す図である。
【符号の説明】
301 符号化テーブル記憶部(アドレス生成手段、記憶手段、第2のエスケープ信号生成手段), 302 エスケープ判定器(第1のエスケープ信号生成手段), 304 マルチプレクサ(読み出し手段、出力手段), 600 デコーダ(変換手段), 641 符号化テーブル記憶部(抽出手段), 701無効化器(無効化手段、停止手段), 504 復号化テーブル記憶部(アドレス生成手段、記憶手段), 506 デマルチプレクサ(読み出し手段、判定手段、抽出手段), 820 復号化テーブル記憶部(生成手段), 840 復号化テーブル記憶部(分離手段), 841 レベルの極性発生器(第2の生成手段)
Claims (16)
- 符号化すべきランレングスとレベルとの組み合わせを、そのランレングスとレベルの値に対応して可変長符号またはエスケープ符号に符号化する符号化装置において、
前記ランレングスの範囲が第1の閾値以上である場合、または前記レベルの範囲が第2の閾値以上である場合、第1のエスケープ信号を生成する第1のエスケープ信号生成手段と、
前記可変長符号が予め割り当てられている領域を含むデータを記憶している記憶手段と、
前記ランレングスと前記レベルとを所定の方法に基づいて組み合わせることにより、アドレスデータを生成するアドレス生成手段と、
前記アドレス生成手段によって生成されたアドレスデータを参照して、前記記憶手段から対応する可変長符号を読み出す読み出し手段と、
前記アドレス生成手段によって生成されたアドレスデータが、前記可変長符号が予め割り当てられた領域を含むデータであり、かつ、前記アドレスデータに対応する可変長符号が存在しない場合に、第2のエスケープ信号を生成する第2のエスケープ信号生成手段と、
前記第1または第2のエスケープ信号生成手段の一方からエスケープ信号が出力されている場合には、エスケープ符号を生成し、前記エスケープ符号に前記ランレングスとレベルとを付加して出力する出力手段と
を備え、
前記記憶手段は、前記可変長符号が内包すべきレベルが正または負の極性を有するか否かを示す情報を記憶しており、
前記読み出し手段が読み出したデータから前記極性を有するか否かを示す情報が極性を示している場合には、前記可変長符号の末尾のビットに対して正または負を示すデータを付加する
ことを特徴とする符号化装置。 - 前記記憶手段に記憶されているデータは、書き換え可能とされている
ことを特徴とする請求項1に記載の符号化装置。 - 前記領域に属さないアドレスデータを、前記領域内の特定のアドレスに対応するデータに変換する変換手段を更に備え、
前記記憶手段は、前記可変長符号が記憶されていない領域と、前記特定のアドレスにはエスケープ符号を記憶しており、
前記出力手段は、前記記憶手段から出力されたエスケープ符号に対して、前記ランレングスとレベルとを付加して出力する
ことを特徴とする請求項1に記載の符号化装置。 - 前記記憶手段は、エンドオブブロック符号を特定のアドレスに記憶しており、前記アドレス生成手段が、前記特定のアドレスに対応するデータを生成した場合には、前記読み出し手段が前記エンドオブブロック符号を読み出す
ことを特徴とする請求項1に記載の符号化装置。 - 符号化すべきランレングスとレベルとがブロックの最初の係数であることを検出する検出手段を更に備え、
前記記憶手段は、前記ブロックの最初の係数のレベルが“1”であることを示す符号を特定のアドレスに記憶しており、
前記検出手段によって、符号化すべきランレングスとレベルとがブロックの最初の係数であることが検出されている場合であって、前記レベルが“1”である場合には、前記読み出し手段は、前記特定のアドレスに記憶されている前記ブロックの最初の係数のレベルが“1”であることを示す符号を読み出す
ことを特徴とする請求項1に記載の符号化装置。 - 前記特定のアドレスに記憶されている前記ブロックの最初の係数のレベルが“1”であることを示す符号は、前記エンドオブブロックに対応するランレングスとレベルとが入力された場合にも読み出される
ことを特徴とする請求項5に記載の符号化装置。 - 前記記憶手段は、エンドオブブロック符号とブロックの最初の係数のレベルが“1”であることを示す符号とを同一の特定アドレスに記憶しており、
前記エンドオブブロックに対応するランレングスとレベルとが入力された場合には、前記レベルの値を“0”とすることにより、前記可変長符号の末尾のビットを“0”にする
ことを特徴とする請求項1に記載の符号化装置。 - 前記記憶手段は、エンドオブブロック符号とブロックの最初の係数のレベルが“1”であることを示す符号とを同一の特定アドレスに記憶しており、
前記エンドオブブロックに対応するランレングスとレベルとが入力された場合には、前記レベルを正の値とすることにより、前記可変長符号の末尾のビットに“0”を付加する
ことを特徴とする請求項1に記載の符号化装置。 - 前記記憶手段は、エンドオブブロック符号とブロックの最初の係数のレベルが“1”であることを示す符号とを同一の特定アドレスに記憶しており、
前記エンドオブブロックに対応するランレングスとレベルとが入力された場合には、前記抽出手段が抽出した前記極性を有するか否かを示すデータを無効化する無効化手段を更に備える
ことを特徴とする請求項1に記載の符号化装置。 - 前記記憶手段は、エンドオブブロック符号とブロックの最初の係数のレベルが“1”であることを示す符号とを同一の特定アドレスに記憶しており、
前記エンドオブブロックに対応するランレングスとレベルとが入力された場合には、前記付加手段を停止する停止手段を更に備える
ことを特徴とする請求項1に記載の符号化装置。 - 符号化すべきランレングスとレベルとの組み合わせを、そのランレングスとレベルの値に対応して可変長符号またはエスケープ符号に符号化する符号化方法において、
前記可変長符号が予め割り当てられている領域を含むデータを記憶している記憶ステップと、
前記ランレングスの範囲が第1の閾値以上である場合、または前記レベルの範囲が第2の閾値以上である場合、第1のエスケープ信号を生成する第1のエスケープ信号生成ステップと、
前記ランレングスと前記レベルとを組み合わせることにより、アドレスデータを生成するアドレス生成ステップと、
前記アドレス生成ステップによって生成されたアドレスデータを参照して、前記記憶ステップにより記憶されているデータから対応する可変長符号を読み出す読み出しステップと、
前記アドレス生成ステップによって生成されたアドレスデータが、前記可変長符号が予め割り当てられた領域を含むデータであり、かつ、前記アドレスデータに対応する可変長符号が存在しない場合に、第2のエスケープ信号を生成する第2のエスケープ信号生成ステップと、
前記第1または第2のエスケープ信号生成ステップの一方からエスケープ信号が出力されている場合には、エスケープ符号を生成し、前記エスケープ符号に前記ランレングスとレベルとを付加して出力する出力ステップと
を含み、
前記記憶ステップにおいて、前記可変長符号が内包すべきレベルが正または負の極性を有するか否かを示す情報が記憶されており、
前記読み出しステップにおいて読み出したデータから前記極性を有するか否かを示す情報が極性を示している場合には、前記可変長符号の末尾のビットに対して正または負を示すデータを付加する
ことを特徴とする符号化方法。 - 入力データである復号化すべき可変長符号、あるいは、エスケープ符号およびそれに後続するランレングスとレベルとを、対応するランレングスとレベルの組み合わせに復号化する復号化装置において、
前記ランレングスとレベル、および、エスケープに関する情報を記憶している記憶手段と、
前記入力データから対応するアドレスデータを生成するアドレス生成手段と、
前記アドレス生成手段によって生成されたアドレスデータを参照して、前記記憶手段から対応するランレングスとレベル、および、エスケープに関する情報とを読み出す読み出し手段と、
前記読み出し手段によって読み出されたエスケープに関する情報を参照して、入力されたデータがエスケープ符号であるか否かを判定する判定手段と、
前記判定手段が、入力されたデータがエスケープ符号であると判定した場合には、前記入力されたデータからエスケープ符号を除外してランレングスとレベルとを抽出する抽出手段と
を備え、
前記記憶手段は、前記可変長符号に内包されたレベルが正または負の極性を有するか否かを示す情報を記憶しており、
前記読み出し手段により読み出されたデータから、前記レベルが前記極性を有するか否かを示す情報が極性を示している場合には、前記可変長符号の末尾のビットからレベルの極性を生成する
ことを特徴とする復号化装置。 - 前記記憶手段に記憶されているデータは、書き換え可能とされている
ことを特徴とする請求項12に記載の復号化装置。 - 前記記憶手段は、エンドオブブロックを示す情報を記憶しており、
前記読み出し手段によって、前記エンドオブブロックを示す情報が読み出された場合には、入力されたデータがエンドオブブロックであることを信号を生成する生成手段を更に備える
ことを特徴とする請求項12に記載の復号化装置。 - 前記記憶手段は、エンドオブブロックを示す情報と、ブロックの最初の係数のレベルが“1”であることを示す情報とを所定のアドレスに記憶しており、
前記入力されたデータがブロックの最初のデータである場合には、前記生成手段が出力する信号を無効化する無効化手段を更に備える
ことを特徴とする請求項14に記載の復号化装置。 - 入力データである復号化すべき可変長符号、あるいは、エスケープ符号およびそれに後続するランレングスとレベルとを、対応するランレングスとレベルの組み合わせに復号化する復号化方法において、
前記ランレングスとレベル、および、エスケープに関する情報を記憶している記憶ステップと、
前記入力データから対応するアドレスデータを生成するアドレス生成ステップと、
前記アドレス生成ステップによって生成されたアドレスデータを参照して、前記記憶ステップにおいて記憶されている対応するランレングスとレベル、および、エスケープに関する情報とを読み出す読み出しステップと、
前記読み出しステップによって読み出されたエスケープに関する情報を参照して、入力されたデータがエスケープ符号であるか否かを判定する判定ステップと、
前記判定ステップが、入力されたデータがエスケープ符号であると判定した場合には、前記入力されたデータからエスケープ符号を除外してランレングスとレベルとを抽出する抽出ステップと
を含み、
前記記憶ステップにおいて、前記可変長符号に内包されたレベルが正または負の極性を有するか否かを示す情報が記憶されており、
前記読み出しステップにおいて読み出されたデータから、前記レベルが前記極性を有するか否かを示す情報が極性を示している場合には、前記可変長符号の末尾のビットからレベルの極性を生成する
ことを特徴とする復号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18635297A JP3757406B2 (ja) | 1997-07-11 | 1997-07-11 | 符号化装置、符号化方法、復号化装置、および復号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18635297A JP3757406B2 (ja) | 1997-07-11 | 1997-07-11 | 符号化装置、符号化方法、復号化装置、および復号化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1131973A JPH1131973A (ja) | 1999-02-02 |
JP3757406B2 true JP3757406B2 (ja) | 2006-03-22 |
Family
ID=16186866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18635297A Expired - Fee Related JP3757406B2 (ja) | 1997-07-11 | 1997-07-11 | 符号化装置、符号化方法、復号化装置、および復号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3757406B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4495034B2 (ja) * | 2005-06-01 | 2010-06-30 | パナソニック株式会社 | 可変長符号化方式および可変長符号化装置 |
-
1997
- 1997-07-11 JP JP18635297A patent/JP3757406B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1131973A (ja) | 1999-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3928815B2 (ja) | Mpeg−2復号方法及びmpeg−2ビデオ復号器 | |
JP3610578B2 (ja) | 動画像信号を示す変換係数を逆変換する際の丸め誤差防止方法及び装置 | |
JP2870515B2 (ja) | 可変長符号化装置 | |
JP3856262B2 (ja) | 動き補償符号化装置、動き補償符号化方法、及び動き補償符号記録媒体 | |
JP3348310B2 (ja) | 動画像符号化方法および動画像符号化装置 | |
KR100952892B1 (ko) | 비디오 데이타의 인트라코딩 방법 및 장치 | |
JPH0851626A (ja) | 動画像信号の変換係数量子化方法及び装置、並びに動画像信号圧縮装置 | |
JPH10243399A (ja) | 符号量制御装置及び該符号量制御装置を含む動画像符号化装置 | |
KR100987911B1 (ko) | 디지털 비디오 부호화를 위한 가변 정확도 화상간 타이밍지정 방법 및 장치 | |
JP3520670B2 (ja) | 可変長符号処理装置および画像処理装置 | |
GB2321154A (en) | Reverse playback of MPEG video | |
JP5116704B2 (ja) | 画像符号化装置及び画像符号化方法 | |
JP4181887B2 (ja) | 可変長符号化装置、及びその方法 | |
JP3089941B2 (ja) | 画像間予測符号化装置 | |
JP3757406B2 (ja) | 符号化装置、符号化方法、復号化装置、および復号化方法 | |
JP2002112268A (ja) | 圧縮画像データ復号装置 | |
JP2007306370A (ja) | 画像符号化記録装置 | |
JP3619612B2 (ja) | ビデオデータ流の全ての画素に対するビデオデータ流の符号化と復号化のための方法及び装置 | |
JP2932950B2 (ja) | データの圧縮・記録方法、データの圧縮・記録装置及び圧縮データの復号・再生方法、圧縮データの復号・再生装置 | |
JP2005101731A (ja) | 可変長符号復号化装置および可変長符号復号化方法 | |
EP1298937A1 (en) | Video encoding or decoding using recompression of reference frames | |
JP2000333180A (ja) | スキップマクロブロック禁止制御方法、スキップマクロブロック禁止制御装置およびスキップマクロブロック禁止制御プログラムを記録した媒体 | |
JP2010268094A (ja) | 画像復号化装置および画像復号化方法 | |
JPH1022835A (ja) | 可変長符号化装置および可変長符号化方法、可変長復号化装置および可変長復号化方法、可変長符号処理装置、並びに画像符号化装置および画像復号化装置 | |
KR100237307B1 (ko) | 엠펙(mpeg) 비디오 신호 복호화기의 2배속 재생장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040427 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040427 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050616 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050815 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050913 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051114 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051218 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100113 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100113 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110113 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120113 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130113 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |