JP3573735B2 - 可変長符号化方法および可変長符号化装置 - Google Patents
可変長符号化方法および可変長符号化装置 Download PDFInfo
- Publication number
- JP3573735B2 JP3573735B2 JP2001586928A JP2001586928A JP3573735B2 JP 3573735 B2 JP3573735 B2 JP 3573735B2 JP 2001586928 A JP2001586928 A JP 2001586928A JP 2001586928 A JP2001586928 A JP 2001586928A JP 3573735 B2 JP3573735 B2 JP 3573735B2
- Authority
- JP
- Japan
- Prior art keywords
- signal
- vlc
- output
- register
- circuit
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
技術分野
本発明は、可変長符号化装置に関し、特に画像符号化方式の規格であるMPEG4およびH.263における可変長符号化を実現する可変長符号化装置に関するものである。
【0002】
背景技術
動画像データに対し帯域圧縮技術を用いて符号化および復号化を行う方式として、ISOで規格化されたMPEG(Moving Picture Coding Experts Group)方式やITU−Tで勧告されたH.263方式などがある。これらの方式は、画面内の相関を利用して、画面内を複数画素から構成されるブロックに分割し、このブロック内のデータを直交変換方式の1つであるDCT(Discrete Cosine Transform、離散コサイン変換)を行い、量子化、VLC(Variable Length Code、可変長符号)の各処理を施して画像データの圧縮を実現することを基本としている。
【0003】
このVLCは、DCTを行った結果得られたDCT係数に対し、先行するゼロの係数の個数であるRunと、非ゼロの係数の値であるLevelとその非ゼロの係数が最後であるかどうかを示すLastを、(Last、Run、Level)の組として、これに一意的な符号を割り当てて符号化を行うものである。
【0004】
MPEG4においては、一意的な符号を割り当てるVLCテーブルが定義されているが、このVLCテーブル上にVLCが定義されていない場合に対応させるために、3つのエスケープモードを適用している。第1のエスケープモードは、(Last、Run、Level)の組に対し、Levelの絶対値から、VLCテーブルにおいてLast、Runに対応する最大のLevelの値であるLMAXを減算した後に、その結果に対し再度VLCテーブルによりVLCを行うモードである。第2のエスケープモードは、(Last、Run、Level)の組に対し、Runの値から、VLCテーブルにおいてLast、Levelに対応する最大のRunの値であるRMAXに1を加算した値を減算し、その結果に対し再度VLCテーブルによりVLCを行うモードである。第3のエスケープモードは、上記の組に対し、これをFLC(Fixed Length Code、固定長符号)に変換するモードである。
【0005】
また、H.263方式などはMPEG4と同様に一意的な符号を割り当てるVLCテーブルが定義されているが、エスケープモードはFLCに変換するモードのみである。
以下、図12を用いて従来のMPEG4におけるVLCの処理チャートを説明する。
【0006】
まず、一次元配列に並び替えたDCT係数から、先行するゼロの係数であるRunと、非ゼロの係数値であるLevelと、その非ゼロの係数が最後であるかどうかを示すLastを、(Last、Run、Level)の組として、これに一意的な符号を割り当てるVLC化を行い、VLCの割り当てが出来ない場合には、3つのエスケープモードを適用する可変長符号化方法について説明する。
【0007】
図12は、従来の可変長符号化方法を説明するためのチャート図である。
図12において、○(白丸)はデータが確定していることを意味し、O1からO9はそれぞれの係数の処理工程を示す。また、符号化Bは第1のエスケープモード、符号化Cは第2のエスケープモード、符号化Dは第3のエスケープモードに対応している。
以下、各係数の処理工程について説明する。
【0008】
符号化Aにおいて、O1は Last、Run、Levelによって活性化(すなわち、入出力時点でデータがそろっていること)する処理であり、(Last、Run、Level)の組に対応するVLCテーブルが存在する場合には、Code1をO9に出力して処理は完了する。一方、(Last、Run、Level)の組に対応するVLCテーブルが存在しない場合には、”存在しない”ということを示す符号を符号化Bに出力する。
【0009】
符号化Bにおいて、O2はO1の処理で対応するVLCテーブルが存在しない場合に、LastとRunによって活性化する処理であり、(Last、Run)の組に対応する最大のLevelの値であるLMAXをO3に出力する。
O3は、LMAXによって活性化する処理であり、Levelの値からLMAXを減算する処理を行い、得られたNewLevelの値をO4に出力する。
O4は、 Last、Run、NewLevelによって活性化する処理であり、(Last、Run、NewLevel)の組に対応するVLCテーブルが存在する場合には、Code2をO9に出力して処理は完了する。一方、(Last、Run、NewLevel)の組に対応するVLCテーブルが存在しない場合には、”存在しない”ということを示す符号を符号化Cに出力する。
【0010】
符号化Cにおいて、O5はO4の処理で対応するVLCテーブルが存在しない場合に、LastとLevelによって活性化する処理であり、(Last、Level)の組に対応する最大のRunの値であるRMAXをO6に出力する。
O6は、RMAXによって活性化する処理であり、Runの値から、RMAXと1の合計を減算する処理を行い、得られたNewRunの値をO7に出力する。
O7は、 Last、NewRun、Levelによって活性化する処理であり、(Last、NewRun、Level)の組に対応するVLCテーブルが存在する場合には、Code3をO9に出力して処理は完了する。一方、(Last、NewRun、Level)の組に対応するVLCテーブルが存在しない場合には、”存在しない”ということを示す符号を符号化Dに出力する。
【0011】
符号化Dにおいて、O8はO7の処理で対応するVLCテーブルが存在しない場合に、Last、Run、LevelをFLCによって変換する処理であり、FLCのCode4をO9に出力する。
O9は、Code1〜Code4の符号の中から、有効な符号を活性化し、その符号を出力する。
【0012】
図13は従来の可変長符号化方法のサイクル毎の処理内容をまとめた図である。
以下、各サイクル毎の動作について説明する。なお、カッコ内は図中の処理内容を示す。
【0013】
まず、1サイクル目(1T)は、通常のVLCである、Last、Run、Levelによって活性化する処理を行い(NORMAL VLC)、その通常のVLCの結果がテーブルに存在するか否かの判定を行う(NORMAL VLC判定)。
【0014】
2サイクル目(2T)は、1Tの処理で通常のVLCの結果がテーブルに存在するならば、その結果を出力する(VLC結果)。一方、通常のVLCの結果がテーブルに存在しないならば、Levelの値から、Last、Runに対応する最大のLevelの値であるLMAXを減算してNewLevelの値を得る(LMAX)。
【0015】
3サイクル目(3T)は、LMAXによって活性化する処理であり、Last、Run、NewLevelの組に対応するVLCを行う(LMAX VLC)。そして、Last、Run、NewLevelの組に対応するVLCの結果がテーブルに存在するか否かの判定を行う(LMAX VLC判定)。
【0016】
4サイクル目(4T)は、3Tの処理でLMAX VLCの結果がテーブルに存在するならば、その結果を出力する(VLC結果)。一方、LMAX VLCの結果がテーブルに存在しないならば、Runの値から、Last、Levelに対応する最大のRunの値であるRMAXに1を加算した値を減算してNewRunの値を得る(RMAX)。
【0017】
5サイクル目(5T)は、RMAXによって活性化する処理であり、Last、NewRun、Levelの組に対応するVLCを行う(RMAX VLC)。そして、Last、NewRun、Levelの組に対応するVLCの結果がテーブルに存在するか否かの判定を行う(RMAX VLC判定)。
【0018】
6サイクル目(6T)は、5Tの処理でRMAX VLCの結果がテーブルに存在するならば、その結果を出力する(VLC結果)。一方、RMAX VLCの結果がテーブルに存在しないならば、Last、Run、LevelをFLCによって処理を行い、その結果を出力する(FLC結果)。
【0019】
しかしながら、上記従来のMPEG4におけるVLCの処理チャートでは、それぞれのテーブルを引く処理を1サイクルとすると、FLCの結果を出力するまでに6サイクル(6T)の処理が必要である。これは1ブロック中に1つのFLCが存在した場合に、1マクロブロックではFLCが6つ存在することになり、VLCの処理はFLC1つに対し、最大で36サイクル必要となる。つまり、ブロック数が増加するに伴ってサイクル数が増加し、処理速度が遅くなるという問題があった。
【0020】
本発明は、かかる問題点を解決するためになされたものであり、演算サイクル数を少なくし、効率よくVLCの処理を行うことのできる可変長符号化装置を提供することを目的とする。
【0024】
この発明(請求項1)に係る可変長符号化装置は、Level信号の絶対値であるLevel絶対値信号およびLast信号を入力するRMAXテーブルと、Run信号および上記Last信号を入力するLMAXテーブルと、上記Level絶対値信号、上記Level信号の正負を示す信号、上記Run信号、および上記Last信号を入力する第1のVLCテーブルと、上記Run信号から、上記RMAXテーブルの出力信号と1の合計を減算する第1の減算回路と、該第1の減算回路の出力信号を保持する第2のレジスタと、該第2のレジスタの出力信号、上記Level絶対値信号、上記Level信号の正負を示す信号および上記Last信号を入力する第2のVLCテーブルと、上記Level絶対値信号から上記LMAXテーブルの出力信号を減算する第2の減算回路と、該第2の減算回路の出力信号を保持する第3のレジスタと、該第3のレジスタの出力信号、上記Level信号の正負を示す信号、上記Run信号および上記Last信号を入力する第3のVLCテーブルと、上記第1のVLCテーブルの出力信号を保持する第1のレジスタと、上記第2のVLCテーブルの出力信号を保持する第4のレジスタと、上記第3のVLCテーブルの出力信号を保持する第5のレジスタと、上記第4のレジスタの出力信号を入力するRMAX VLC生成回路と、上記第5のレジスタの出力信号を入力するLMAX VLC生成回路と、上記Level信号、上記Run信号、および上記Last信号を入力するFLC生成回路と、上記第1のレジスタの出力信号、上記第4のレジスタの出力信号、上記第5のレジスタの出力信号を入力する制御回路と、上記第1のレジスタの出力信号、上記RMAX VLC生成回路の出力信号、上記LMAX VLC生成回路の出力信号、および上記FLC生成回路の出力信号を入力する選択回路とを備え、上記制御回路は、上記第1のレジスタの出力信号と、上記第4のレジスタの出力信号と、上記第5のレジスタの出力信号とがVLCとして正しいかどうかを判定し、判定した結果を示す選択信号を上記選択回路に出力し、上記選択回路は、上記選択信号により、上記第1のレジスタの出力信号、上記RMAX VLC生成回路の出力信号、上記LMAX VLC生成回路の出力信号、上記FLC生成回路の出力信号から、いずれか一つの出力信号を選択し、符号として出力するものである。
【0025】
このような構成の可変長符号化装置では、すべての処理を2サイクルで実行することが可能であり、処理サイクル数の削減を図ることができる。
【0026】
この発明(請求項2)は、請求項1記載の可変長符号化装置において、上記制御回路は、上記第1のレジスタの出力信号と、上記第4のレジスタの出力信号と、上記第5のレジスタの出力信号とがVLCとして正しいかどうかを判定し、判定した結果を予め設定した優先順位に従って、上記第1のレジスタの出力信号、上記RMAX VLC生成回路の出力信号、上記LMAX VLC生成回路の出力信号、上記FLC生成回路の出力信号から、いずれか一つの出力信号を選択し、上記選択回路に出力するものである。
【0027】
このような構成の可変長符号化装置では、優先順位は任意に設定することが可能である。また、この優先順位を第1のレジスタの出力信号、FLC生成回路の出力信号(残り2つは順不同)を選択するようにすることで、H.263の画像圧縮方式に適応することが可能となる。
【0028】
この発明(請求項3)に係る可変長符号化装置は、Level信号の絶対値であるLevel絶対値信号、およびLast信号を入力するRMAXテーブルと、Run信号、および上記Last信号を入力するLMAXテーブルと、上記Run信号から、上記RMAXテーブルの出力信号と1の合計を減算する第1の減算回路と、上記Level絶対値信号から上記LMAXテーブルの出力信号を減算する第2の減算回路と、上記第1の減算回路の出力信号を保持する第2のレジスタと、上記第2の減算回路の出力信号を保持する第3のレジスタと、該第3のレジスタの出力信号、および上記Level絶対値信号のいずれかを選択する第1の選択回路と、上記第2のレジスタの出力信号、および上記Run信号のいずれかを選択する第2の選択回路と、上記第1の選択回路の出力信号、上記第2の選択回路の出力信号、上記Level信号の正負を示す信号、および上記Last信号を入力するVLCテーブルと、該VLCテーブルの出力信号を保持する第1のレジスタと、上記Level信号、上記Run信号、および上記Last信号を入力するFLC生成回路と、上記第1のレジスタの出力信号を入力する制御回路と、上記第1のレジスタの出力信号、および上記制御回路の出力信号を入力するVLC生成回路と、該VLC生成回路の出力信号、および上記FLC生成回路の出力信号を入力する第3の選択回路とを備え、第1周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第2周期で、上記制御回路は上記第1のレジスタの出力信号が通常のVLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号が通常のVLCとして正しいと判定したならば、その判定の結果を示す第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号を通常のVLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、第1周期で、上記LMAXテーブルは、上記Last信号と上記Run信号とを入力し、LMAXデータ信号を生成して上記第2の減算回路に出力し、該第2の減算回路は上記LMAXデータ信号と上記Level絶対値信号とを入力し、該Level絶対値信号から上記LMAXデータ信号を減算し、その結果を第3のレジスタに出力し、第2周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記第3のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第3周期で、上記制御回路は上記第2周期で行われた通常のVLCの判定が正しくなければ、上記第1のレジスタの出力信号がLMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がLMAX VLCとして正しいと判定したならば、その判定の結果を示す第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をLMAX VLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、第1周期で、上記RMAXテーブルは上記Last信号と上記Level絶対値信号とを入力し、RMAXデータ信号を生成して上記第1の減算回路に出力し、該第1の減算回路は上記RMAXデータ信号と上記Run信号とを入力し、該Run信号から、上記RMAXデータ信号と1を加算した値を減算し、その結果を上記第2のレジスタに出力し、第3周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記第2のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第4周期で、上記制御回路は上記第3周期で行われたLMAX VLCの判定が正しくなければ、上記第1のレジスタの出力信号がRMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がRMAX VLCとして正しいと判定したならば、第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をRMAX VLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、上記制御回路に入力される上記第1のレジスタの出力信号が、いずれもVLCとして正しくないと判定したならば、第5周期で、上記第3の選択回路は上記FLC生成回路の出力信号を選択して出力するものである。
【0029】
このような構成の可変長符号化装置では、通常のVLCを行うのと同時にNewLevel信号、NewRun信号を算出することが可能である。また、従来VLCの処理に6サイクルを要していたが、処理サイクル数を5サイクルに削減することができる。さらに、従来は3つのVLCテーブルを用いて処理を行っていたが、1つのVLCテーブルでVLCを行うことが可能なため、回路面積の削減を図ることができる。
【0030】
この発明(請求項4)に係る可変長符号化装置は、Level信号の絶対値であるLevel絶対値信号およびLast信号を入力するRMAXテーブルと、Run信号および上記Last信号を入力するLMAXテーブルと、上記Run信号から、上記RMAXテーブルの出力信号と1の合計を減算する第1の減算回路と、上記Level絶対値信号から上記LMAXテーブルの出力信号を減算する第2の減算回路と、上記第1の減算回路の出力信号を保持する第2のレジスタと、上記第2の減算回路の出力信号を保持する第3のレジスタと、該第3のレジスタの出力信号、および上記Level絶対値信号のいずれかを選択する第1の選択回路と、上記第2のレジスタの出力信号、および上記Run信号のいずれかを選択する第2の選択回路と、上記第1の選択回路の出力信号、上記第2の選択回路の出力信号、上記Level信号の正負を示す信号、および上記Last信号を入力するVLCテーブルと、該VLCテーブルの出力信号を保持する第1のレジスタと、上記Level信号、上記Run信号、および上記Last信号を入力するFLC生成回路と、上記第1のレジスタの出力信号を入力する制御回路と、上記第1のレジスタの出力信号、および上記制御回路の出力信号を入力するVLC生成回路と、該VLC生成回路の出力信号、および上記FLC生成回路の出力信号を入力する第3の選択回路とを備え、第1周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第2周期で、上記制御回路は上記第1のレジスタの出力信号が通常のVLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号が通常のVLCとして正しいと判定したならば、その判定の結果を示す第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号を通常のVLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、第1周期で、上記LMAXテーブルは、上記Last信号と上記Run信号とを入力し、LMAXデータ信号を生成して上記第2の減算回路に出力し、該第2の減算回路は上記LMAXデータ信号と上記Level絶対値信号とを入力し、該Level絶対値信号から上記LMAXデータ信号を減算し、その結果を第3のレジスタに出力し、第2周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記第3のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第3周期で、上記制御回路は上記第2周期で行われた通常のVLCの判定が正しくなければ、上記第1のレジスタの出力信号がLMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がLMAX VLCとして正しいと判定したならば、その判定の結果を示す第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をLMAX VLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、第1周期で、上記RMAXテーブルは上記Last信号と上記Level絶対値信号とを入力し、RMAXデータ信号を生成して上記第1の減算回路に出力し、該第1の減算回路は上記RMAXデータ信号と上記Run信号とを入力し、該Run信号から、上記RMAXデータ信号と1を加算した値を減算し、その結果を上記第2のレジスタに出力し、第3周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記第2のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第4周期で、上記制御回路は上記第3周期で行われたLMAX VLCの判定が正しくなければ、上記第1のレジスタの出力信号がRMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がRMAX VLCとして正しいと判定したならば、第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をRMAX VLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、上記制御回路に入力される上記第1のレジスタの出力信号が、いずれもVLCとして正しくないと判定したならば、第4周期で、上記第3の選択回路は上記FLC生成回路の出力信号を選択して出力するものである。
【0031】
このような構成の可変長符号化装置では、通常のVLCを行うのと同時にNewLevel信号、NewRun信号を算出することが可能である。また、従来VLCの処理に6サイクルを要していたが、処理サイクル数を4サイクルに削減することができる。さらに、従来は3つのVLCテーブルを用いて処理を行っていたが、1つのVLCテーブルでVLCを行うことが可能なため、回路面積の削減を図ることができる。
【0032】
この発明(請求項5)は、請求項3または請求項4記載の可変長符号化装置において、上記制御回路は、上記第1のレジスタの出力信号がVLCとして正しいかどうかを判定し、さらに上記第1のレジスタの出力信号がVLCとして正しくない場合に、上記LMAX VLCもしくは上記RMAX VLC、上記FLCかを生成周期に応じてVLCの制御を行い、予め設定した優先順位に従って、VLCの出力順位を変更するものである。
【0033】
このような構成の可変長符号化装置では、優先順位は任意に設定することが可能であり、また、FLC生成回路は常に一意的な符号が割り当てられるため、優先順位として、通常のVLCを判定した後に、判定の結果が正しくなければFLC生成回路の出力信号を選択するようにすることで、H.263の画像圧縮方式に適応することが可能となる。
【0034】
この発明(請求項6)に係る可変長符号化装置は、Level信号の絶対値であるLevel絶対値信号、Last信号、および固定値を入力し、上記Level絶対値信号もしくは上記固定値のいずれかを選択して出力する第1の出力信号、および上記Last信号もしくは上記固定値のいずれかを選択して出力する第2の出力信号を出力する第1の選択回路と、上記第1の出力信号および上記第2の出力信号を入力するRMAXテーブルと、Run信号、上記Last信号、および固定値を入力し、上記Run信号もしくは上記固定値のいずれかを選択して出力する第3の出力信号、および上記Last信号もしくは上記固定値のいずれかを選択して出力する第4の出力信号を出力する第2の選択回路と、上記第3の出力信号および上記第4の出力信号を入力するLMAXテーブルと、上記Run信号から、上記RMAXテーブルの出力信号と1の合計を減算する第1の減算回路と、上記Level絶対値信号から上記LMAXテーブルの出力信号を減算する第2の減算回路と、上記第1の減算回路の出力信号を保持する第2のレジスタと、上記第2の減算回路の出力信号を保持する第3のレジスタと、該第3のレジスタの出力信号および上記Level絶対値信号のいずれかを選択する第3の選択回路と、上記第2のレジスタの出力信号および上記Run信号のいずれかを選択する第4の選択回路と、上記第3の選択回路の出力信号、上記第4の選択回路の出力信号、上記Level信号の正負を示す信号、および上記Last信号を入力するVLCテーブルと、該VLCテーブルの出力信号を保持する第1のレジスタと、上記Level信号、上記Run信号、および上記Last信号を入力するFLC生成回路と、上記第1のレジスタの出力信号を入力する制御回路と、上記第1のレジスタの出力信号、および上記制御回路の出力信号を入力するVLC生成回路と、該VLC生成回路の出力信号、および上記FLC生成回路の出力信号を入力する第5の選択回路とを備え、第1周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力して固定値を選択し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力して、上記Run信号および上記Last信号を選択し、上記第3の選択回路は上記制御回路から出力される第3の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第4の選択回路は上記制御回路から出力される第4の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第2周期で、上記制御回路は上記第1のレジスタの出力信号が通常のVLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号が通常のVLCとして正しいと判定したならば、その判定の結果を示す第5の選択信号を上記VLC生成回路、および上記第5の選択回路に出力し、上記VLC生成回路は、上記第1のレジスタの出力信号を通常のVLC符号として出力し、上記第5の選択回路は上記第5の選択信号により、上記VLC生成回路の出力信号を選択して出力し、第1周期で、上記LMAXテーブルは、上記Last信号と上記Run信号とを入力し、LMAXデータ信号を生成して上記第2の減算回路に出力し、該第2の減算回路は上記LMAXデータ信号と上記Level絶対値信号とを入力し、該Level絶対値信号から上記LMAXデータ信号を減算し、その結果を第3のレジスタに出力し、第2周期で、上記第3の選択回路は上記制御回路から出力される第3の選択信号を入力し、上記第3のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記第4の選択回路は上記制御回路から出力される第4の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第3周期で、上記制御回路は上記第2周期で行われた通常のVLCの判定が正しくなければ、上記第1のレジスタの出力信号がLMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がLMAX VLCとして正しいと判定したならば、その判定の結果を示す第5の選択信号を上記VLC生成回路および上記第5の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をLMAX VLC符号として出力し、上記第5の選択回路は上記第5の選択信号により、上記VLC生成回路の出力信号を選択して出力し、第2周期で、上記RMAXテーブルは上記Last信号と上記Level絶対値信号とを入力し、RMAXデータ信号を生成して上記第1の減算回路に出力し、該第1の減算回路は上記RMAXデータ信号と上記Run信号とを入力し、該Run信号から、上記RMAXデータ信号と1を加算した値を減算し、その結果を上記第2のレジスタに出力し、第3周期で、上記第3の選択回路は上記制御回路から出力される第3の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第4の選択回路は上記制御回路から出力される第4の選択信号を入力し、上記第2のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第4周期で、上記制御回路は上記第3周期で行われたLMAX VLCの判定が正しくなければ、上記第1のレジスタの出力信号がRMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がRMAX VLCとして正しいと判定したならば、その判定の結果を示す第5の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をRMAX VLC符号として出力し、上記第5の選択回路は上記第5の選択信号により、上記VLC生成回路の出力信号を選択して出力し、上記制御回路に入力される上記第1のレジスタの出力信号が、いずれもVLCとして正しくないと判定したならば、第4周期で、上記第5の選択回路は上記FLC生成回路の出力信号を選択して出力するものである。
【0035】
このような構成の可変長符号化装置では、常に1サイクル目でRMAXテーブルにアクセスすることがなく、消費電力を削減することができる。また、従来VLCの処理に6サイクルを要していたが、処理サイクル数を4サイクルに削減することができる。さらに、従来は3つのVLCテーブルを用いて処理を行っていたが、1つのVLCテーブルでVLCを行うことが可能となるため、回路面積の削減を図ることができる。
【0036】
この発明(請求項7)は、請求項6記載の可変長符号化装置において、上記制御回路は、上記第1のレジスタの出力信号がVLCとして正しいかどうかを判定し、さらに上記第1のレジスタの出力信号がVLCとして正しくない場合に、上記LMAX VLCもしくは上記RMAX VLC、上記FLCかを生成周期に応じてVLCの制御を行い、予め設定した優先順位に従って、VLCの出力順位を変更するものである。
【0037】
このような構成の可変長符号化装置では、優先順位は任意に設定することが可能であり、また、FLC生成回路は常に一意的な符号が割り当てられるため、優先順位を通常のVLCを判定した後に、判定の結果が正しくなければFLC生成回路の出力信号を選択するようにすることで、H.263の画像圧縮方式に適応することが可能となる。
【0038】
発明を実施するための最良の形態
以下、本発明の実施の形態について説明する。
(実施の形態1)
本実施の形態1の可変長符号化方法は、一次元配列に並び替えたDCT係数から、先行するゼロの係数の個数であるRunと、非ゼロの係数の値であるLevelと、その非ゼロの係数が最後であるかどうかを示すLastを、(Last、Run、Level)の組として、これに一意的な符号を割り当てる可変長符号(Variable Length Code,以下VLCと省略する)化を行い、VLCの割り当てが出来ない場合には、後述する3つのエスケープモードを適用するものである。
【0039】
図1は本発明の実施の形態1による可変長符号化方法を説明するためのチャート図である。
図1において、○(白丸)はデータが確定していることを意味し、P1〜P9はそれぞれの係数の処理工程を示す。また、符号化2は第1のエスケープモード、符号化3は第2のエスケープモード、符号化4は第3のエスケープモードにそれぞれ対応している。
以下、各係数の処理工程について説明する。
【0040】
符号化1において、P1はLast、Run、Levelによって活性化(すなわち、入出力時点でデータがそろっていること)する処理であり、(Last、Run、Level)の組に対応するVLCテーブルが存在するならば通常のVLCのCodeAをP9に出力する。一方、(Last、Run、Level)の組に対応するVLCが存在しない場合は、”存在しない”ということを示す符号をP9に出力する。
【0041】
符号化2において、P2はLast、Runによって活性化する処理であり、(Last、Run)の組に対応する最大のLevelの値であるLMAXをP3に出力する。P3はLMAXによって活性化する処理であり、Levelの値からLMAXを減算する処理を行い、得られたNewLevelの値をP4に出力する。P4はLast、Run、NewLevelによって活性化する処理であり、(Last、Run、NewLevel)の組に対応するVLCテーブルが存在するならば、CodeBをP9に出力する。具体的にCodeBは、“0000011”(ESC(エスケープ)コードの符号)と、“0”(LMAXでのVLCを示す)と、VLCの結果とを、LMAX符号化データとしてP9に出力する。一方、(Last、Run、NewLevel)の組に対応するVLCが存在しない場合は、”存在しない”ということを示す符号をP9に出力する。
【0042】
符号化3において、P5は、Last、Levelによって活性化する処理であり、(Last、Level)の組に対応する最大のRunであるRMAXの値をP6に出力する。P6はRMAXによって活性化する処理であり、Runの値から、RMAXと1の合計を減算する処理を行い、得られたNewRunの値をP7に出力する。P7はLast、NewRun、Levelによって活性化する処理であり、(Last、NewRun、Level)の組に対応するVLCテーブルが存在するならば、CodeCをP9に返す。具体的にCodeCは、“0000011”(ESCコード)と、“10”(RMAXでのVLCを示す)と、VLCの結果とを、RMAX符号化データとしてP9に出力する。一方、(Last、NewRun、Level)の組に対応するVLCが存在しない場合は、”存在しない”ということを示す符号をP9に出力する。
【0043】
符号化4において、P8はFLC(Fixed Length Code,固定長符号)に変換する処理であり、H.263の場合は、“0000011”(ESCコード)と、FLCの結果(Last−1ビット、Run−6ビット、Level−8ビット)とを、FLC符号化データとしてP9に出力する。またMPEG4の場合は、“0000011”(ESCコード)と、“11”(MPEG4でのFLCを示す)と、FLCの結果(Last−1ビット、Run−6ビット、1、Level−12ビット、1)とを、FLC符号化データとしてP9に出力する。
【0044】
P9は、予め与えられた優先順位に従って、CodeA〜CodeDのデータを選択し、選択されたデータを出力する。図2に優先順位の組み合わせを示す。 図2より、A〜Dは、それぞれCodeA〜CodeDを示す。例えば、P9の優先順位の組み合わせとして優先順位1が設定されているとする。つまり、P9にCodeAのデータが存在するならば、CodeB、CodeC、およびCodeDのいずれのデータが存在していても、P9はCodeAのデータを出力する。一方、P9にCodeAのデータは存在せず、CodeBのデータが存在するならば、CodeCおよびCodeDのいずれのデータが存在していても、P9はCodeBのデータを出力する。また、P9にCodeAおよびCodeBのデータは存在せず、CodeCのデータが存在するならば、CodeDのデータが存在していても、P9はCodeCのデータを出力する。また、P9にCodeA、CodeB、CodeCのいずれのデータも存在しないならば、P9はCodeDのデータを出力する。
【0045】
このように、本実施の形態1による可変長符号化方法によれば、符号化1(P1)、符号化2(P2、P3、P4)、符号化3(P5、P6、P7)、符号化4(P8)の各処理を同時に行い、予め設定された優先順位に従ってデータを出力するようにしたので、すべての処理を2ステップ(各符号化の処理と判定)で行うことが可能であり、処理ステップ数を削減することができる。また、P2、P3、P4の処理ステップ数を2ステップとし、P5、P6、P7の処理ステップ数を2ステップとした場合には、全ての処理を3ステップで行うことができる。
【0046】
なお、本実施の形態1による可変長符号化方法において、P9における優先順位の組み合わせは、CodeA>CodeB>CodeC>CodeDとしたが、優先順位はこれに限られるものではなく、優先順位をCodeA>CodeC>CodeB>CodeDとしても同様の効果を得ることができる。また、CodeDはFLCによって常に一意的な符号が割り当てられるため、優先順位を、CodeA>CodeD(残り2つは順不同)とすることで、CodeB、CodeCを強制的に選択不可とすることができ、符号化1と符号化4で可変長符号化を行う画像圧縮方式であるH.263に適応することが可能となる。
【0047】
(実施の形態2)
本実施の形態2の可変長符号化装置は、上述した実施の形態1による可変長符号化方法を実現するためのものである。
図3は、本発明の実施の形態2による可変長符号化装置の構成を説明するためのブロック図である。
【0048】
図3において、100はLevel信号、101はLast信号、102はRun信号、103はLevel信号100の正負を示すSign信号、104はLevel信号100の絶対値であるLevel絶対値信号、105はFLC生成回路、106はFLC生成回路105の出力信号であるFLCデータ信号、107はRMAXテーブル、108はRMAXテーブル107の出力信号であるRMAXデータ信号、109は第1の減算回路、110は第1の減算回路109の出力信号、115は第1の減算回路109の出力信号110を保持する第2のレジスタ、182は第2のレジスタ115より出力されるNewRun信号、111は第2のVLCテーブル、114は第2のVLCテーブル111の出力信号である第2のVLCデータ信号、180は第2のVLCデータ信号114を保持する第4のレジスタ、116はNewRun信号182を用いて生成したVLCデータ信号、117はLMAXテーブル、118はLMAXテーブル117の出力信号であるLMAXデータ信号、119は第2の減算回路、120は第2の減算回路119の出力信号、122は第2の減算回路119の出力信号120を保持する第3のレジスタ、183は第3のレジスタ122より出力されるNewLevel信号、112は第3のVLCテーブル、121は第3のVLCテーブル112の出力信号である第3のVLCデータ信号、181は第3のVLCデータ信号121を保持する第5のレジスタ、123はNewLevel信号183を用いて生成したVLCデータ信号、113は第1のVLCテーブル、124は第1のVLCテーブル113の出力信号である第1のVLCデータ信号、125は第1のVLCデータ信号124を保持する第1のレジスタ、126は通常のVLCデータ信号、170はNewRun信号を用いて生成したVLCデータ信号116を入力し、RMAXの符号化データを生成するRMAX VLC生成回路、175はRMAX VLC生成回路170の出力信号であるRMAXデータ信号、171はNewLevel信号を用いて生成したVLCデータ信号123を入力し、LMAXの符号化データを生成するLMAX VLC生成回路、176はLMAX VLC生成回路171の出力信号であるLMAXデータ信号、127は通常のVLCデータ信号126と、NewRun信号を用いて生成したVLCデータ信号116と、NewLevel信号を用いて生成したVLCデータ信号123とを入力し、予め設定された優先順位に基づいてVLCデータ信号を選択する制御回路、128は制御回路127で選択されたデータ信号を出力する選択信号、129はRMAXデータ信号175と、LMAXデータ信号176と、FLCデータ信号106と、通常のVLCデータ信号126とを入力し、選択信号128により出力するデータ信号を選択する選択回路、130は選択回路129で選択されたデータ信号である。
【0049】
次に本発明の実施の形態2による可変長符号化装置の動作について、上述した図3のブロック図を図1のチャート図と対応させて説明する。
まず、符号化1の処理において、第1のVLCテーブル113は、Last信号101と、Run信号102と、Level絶対値信号104と、Sign信号103とを入力して、第1のVLCデータ信号124を生成し(P1)、第1のレジスタ125に保持する。そして、第1のレジスタ125は、通常のVLCデータ信号126を制御回路127と選択回路129に出力する(P9)。
【0050】
符号化3の処理において、RMAXテーブル107は、Last信号101と、Level絶対値信号104とを入力し、RMAXデータ信号108を生成して(P5)、第1の減算回路109に出力する。第1の減算回路109は、RMAXデータ信号108と、Run信号102とを入力し、Run信号102の値から、RMAXデータ信号108と1を加算した値を減算し(P6)、その結果を第1の減算回路の出力信号110として第2のレジスタ115に出力する。第2のレジスタ115は、入力された第1の減算回路の出力信号110を保持する。続いて、第2のVLCテーブル111は、第2のレジスタ115から出力されるNewRun信号182と、Last信号101と、Level絶対値信号104と、Sign信号103とを入力し、第2のVLCデータ信号114を生成し(P7)、第4のレジスタ180に出力する。第4のレジスタ180は、入力された第2のVLCデータ信号114を保持する。そして、第4のレジスタ180は、NewRun信号を用いて生成したVLCデータ信号116を制御回路127に出力する。
【0051】
また、符号化2の処理において、LMAXテーブル117は、Last信号101と、Run信号102とを入力し、LMAXデータ信号118を生成して(P2)、第2の減算回路119に出力する。第2の減算回路119は、LMAXデータ信号118と、Level絶対値信号104とを入力し、Level絶対値信号104からLMAXデータ信号118を減算し(P3)、その結果を第2の減算回路の出力信号120として第3のレジスタ122に出力する。第3のレジスタ122は、入力された第2の減算回路の出力信号120を保持する。続いて、第3のVLCテーブル112は第3のレジスタ122から出力されるNewLevel信号183と、Last信号101と、Run信号102と、Sign信号103とを入力し、第3のVLCデータ信号121を生成し(P4)、第5のレジスタ181に出力する。第5のレジスタ181は、入力された第3のVLCデータ信号121を保持する。そして、第5のレジスタ181はNewLevel信号を用いて生成したVLCデータ信号123を制御回路127に出力する。
【0052】
RMAX VLC生成回路170は、第4のレジスタ180から出力されるNewRun信号を用いて生成したVLCデータ信号116のVLC化を行い、(ESCコード+“0”+VLC結果)をRMAX符号化データであるRMAXデータ信号175とし、選択回路129に出力する(P9)。また、LMAX VLC生成回路171は、第5のレジスタ181から出力されるNewLevel信号を用いて生成したVLCデータ信号123のVLC化を行い、(ESCコード+“10”+VLC結果)をLMAX符号化データであるLMAXデータ信号176とし、選択回路129に出力する(P9)。続いて、制御回路127は、第1のレジスタ125から出力される通常のVLCデータ信号126と、第4のレジスタ180から出力されるNewRun信号を用いて生成したVLCデータ信号116と、第5のレジスタ181から出力されるNewLevel信号を用いて生成したVLCデータ信号123とを入力し、それぞれのVLCデータ信号がVLCとして正しいかどうか判定を行う。そして、制御回路127は、予め設定された優先順位に従って、VLCデータ信号を選択するための選択信号128を出力する。
【0053】
例えば優先順位を、通常のVLCデータ、NewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータ、FLCデータの順番で設定したとする(図2における、優先順位1)。つまり、制御回路127に通常のVLCデータ信号126が存在するならば、NewLevel信号を用いて生成したVLCデータ信号123、あるいはNewRun信号を用いて生成したVLCデータ信号116の存在にかかわらず、制御回路127は通常のVLCデータ信号126を選択する選択信号128を、選択回路129に出力する。一方、制御回路127に通常のVLCデータ信号126が存在せず、NewLevel信号を用いて生成したVLCデータ信号123が存在するならば、NewRun信号を用いて生成したVLCデータ信号116の存在にかかわらず、制御回路127はNewLevel信号を用いて生成したVLCデータ信号123を選択する選択信号128を、選択回路129に出力する。また、制御回路127に通常のVLCデータ信号129、およびNewLevel信号を用いて生成したVLCデータ信号123が存在せず、NewRun信号を用いて生成したVLCデータ信号116が存在するならば、制御回路127はNewRun信号を用いて生成したVLCデータ信号116を選択する選択信号128を、選択回路129に出力する。そして、選択回路129は、制御回路127より入力される選択信号128に制御されて、いずれかのVLCデータ信号を選択し、データ信号130として出力する。一方、選択回路129は制御回路127よりVLCデータ信号を選択する選択信号128が入力されないならば、FLCデータ信号106を選択し、データ信号130として出力する。
【0054】
図4は本発明の実施の形態2による制御回路の動作を説明するためのタイミングチャートである。
図4において、clock(クロック)は一定周期の信号、tcoef_eはVLCを行うための開始可能なデータがそろっていることを示す開始信号、MPEG4/H.263はいずれかの規格を示す信号であり、信号がH(High)のときはMPEG4を示し、信号がL(Low)のときはH.263を示す。Counter(カウンタ)は判定の開始、および判定の回数を示す。dec_nomalは通常のVLCデータ信号126であり、第1のVLCテーブル113の結果を示す。dec_lmaxはNewLevel信号を用いて生成したVLCデータ信号123であり、第3のVLCテーブル112の結果を示す。dec_rmaxはNewRun信号を用いて生成したVLCデータ信号116であり、第2のVLCテーブル111の結果を示す。sel_nomalは通常のVLCデータ信号126(dec_nomal)の結果がVLCテーブルに存在するならば、信号をHにする。sel_lmaxはNewLevel信号を用いて生成したVLCデータ信号123(dec_lmax)の結果がVLCテーブルに存在するならば、信号をHにする。sel_rmaxはNewRun信号を用いて生成したVLCデータ信号116(dec_rmax)の結果がVLCテーブルに存在するならば、信号をHにする。sel_flcは、通常のVLCデータ信号126、NewLevel信号を用いて生成したVLCデータ信号123、NewRun信号を用いて生成したVLCデータ信号116のいずれの結果もVLCテーブルに存在しないならば、信号をHにする。また、図中斜線部分は判定が行われるサイクル数を示す。
【0055】
次に、各VLCデータ信号について説明する。
図4(a)は、MPEG4における通常のVLCデータ信号を選択する場合のタイミングチャートである。
図4(a)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1のときdec_nomalの信号がH(つまりデータが存在することを示す)ならば、dec_lmaxおよびdec_rmaxの信号の結果にかかわらず、sel_nomalの信号をHにする。このとき、制御回路127は通常のVLCデータ信号126を選択する選択信号128を出力し、選択回路129は選択信号128に制御されて、通常のVLCデータ信号126を選択する。
【0056】
図4(b)は、MPEG4におけるNewLevel信号を用いて生成したVLCデータ信号を選択する場合のタイミングチャートである。
図4(b)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1のとき全ての信号がLで、カウンタの値が2のときdec_nomalの信号がL,dec_lmaxの信号がHならば、dec_rmaxの信号の結果にかかわらず、sel_lmaxの信号をHにする。このとき、制御回路127はNewLevel信号を用いて生成したVLCデータ信号123により選択信号128を出力し、選択回路129は選択信号128に制御されて、LMAXデータ信号176を選択する。
【0057】
図4(c)は、MPEG4におけるNewRun信号を用いて生成したVLCデータ信号を選択する場合のタイミングチャートである。
図4(c)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1のとき全ての信号がLで、カウンタの値が2のときdec_nomalの信号がL,dec_lmaxの信号がL,dec_rmaxの信号がHならば、sel_rmaxの信号をHにする。このとき、制御回路127はNewRun信号を用いて生成したVLCデータ信号116により選択信号128を出力し、選択回路129は選択信号128に制御されて、RMAXデータ信号175を選択する。
【0058】
図4(d)は、MPEG4におけるFLCデータ信号を選択する場合のタイミングチャートである。
図4(d)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1および2のときdec_nomal,dec_lmax,dec_rmaxのいずれの信号もLならば、sel_flcの信号をHにする。そして、選択回路129でFLCデータ信号106を選択する。
【0059】
図4(e)は、H.263における通常のVLCデータ信号を選択する場合のタイミングチャートである。
図4(e)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1のときdec_nomalの信号がHならば、dec_lmaxおよびdec_rmaxの信号の結果にかかわらず、sel_nomalの信号をHにする。このとき、制御回路127は通常のVLCデータ信号126を選択する選択信号128を出力し、選択回路129は選択信号128に制御されて、通常のVLCデータ信号126を選択する。
【0060】
図4(f)は、H.263におけるFLCデータ信号を選択する場合のタイミングチャートである。
図4(f)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1および2のときdec_nomal,dec_lmax,dec_rmaxのいずれの信号もLならば、sel_flcの信号をHにする。そして、選択回路129でFLCデータ信号106を選択する。
【0061】
次に、上述したタイミングチャートの処理内容をまとめた図を図5に示し説明する。
図5は本発明の実施の形態2によるサイクル毎の処理内容をまとめた図である。
以下、各サイクル毎の動作について説明する。なお、カッコ内は図中の処理内容を示す。
【0062】
図5より、1サイクル目(1T)は、通常のVLCであるLast、Run、Levelによってテーブルを引く処理を行う(NORMAL VLC)。また、同時サイクルで、Levelの値から、Last、Runに対応する最大のLevelの値であるLMAXを減算してNewLevelを得(LMAX)、Runの値から、Last、Levelに対応する最大のRunの値であるRMAXに1を加算した値を減算してNewRunを得る(RMAX)。
【0063】
続いて、2サイクル目(2T)は、通常のVLCの結果が制御回路127に存在するか否かの判定を行い(NORMAL VLC判定)、通常のVLCの結果が存在するならば、その結果を出力する(VLC結果)。また、同時サイクルでLast、Run、NewLevelの組に対応するVLCを行い(LMAX VLC)、Last、NewRun、Levelの組に対応するVLCを行う(RMAX VLC)。
【0064】
続いて、3サイクル目(3T)は、Last、Run、NewLevelの組に対応するVLCの結果が制御回路127に存在するか否かの判定を行い(LMAX VLC判定)、LMAX VLCの結果が存在するならば、その結果を出力し(VLC結果)、また、Last、NewRun、Levelの組に対応するVLCの結果が制御回路127に存在するか否かの判定を行い(RMAX VLC判定)、RMAX VLCの結果が存在するならば、その結果を出力する(VLC結果)。一方、いずれの結果も制御回路127に存在していないと判定したならば、同時サイクルでLast、Run、LevelをFLCによって処理を行い、その結果を出力する(FLC結果)。
【0065】
このように、本実施の形態2による可変長符号化装置によれば、通常のVLCデータとNewLevel信号を用いて生成したVLCデータとNewRun信号を用いて生成したVLCデータと、の処理を同時に行い、予め設定した優先順位に従って結果を出力するものとしたので、すべての処理を3サイクルで実行することが可能となり、処理サイクル数を大幅に削減することが可能である。
【0066】
なお、本実施の形態2による可変長符号化装置において、予め設定した優先順位は、通常のVLCデータ、NewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータ、FLCデータの順番で信号を選択するものとしたが、この順番に限るものではなく、優先順位を通常のVLCデータ、NewRun信号を用いて生成したVLCデータ、NewLevel信号を用いて生成したVLCデータ、FLCデータとしてもよい。また、さらに優先順位を通常のVLCデータ、FLCデータとすることで、NewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータを選択することなくVLC化を行うことも可能である。つまり、そのような優先順位はH.263のVLCの処理にも対応することができ、また、画像データによって任意にNewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータの優先順位を変えることが可能となる。これによりエスケープモードにおけるサイクル数を削減した可変長符号化装置を得ることができる。
【0067】
(実施の形態3)
本実施の形態3の可変長符号化装置は、1つのVLCテーブルを用いてVLCを行うものである。
図6は、本発明の実施の形態3による可変長符号化装置の構成を説明するためのブロック図である。
【0068】
図6において、図3と同一符号は同一または相当する部分を示している。135は第1の減算回路109の出力信号、136は第1の減算回路の出力信号135を保持する第2のレジスタ、137は第2のレジスタ136より出力されるNewRun信号、138は第2の減算回路119の出力信号、139は第2の減算回路119の出力信号138を保持する第3のレジスタ、140は第3のレジスタ139より出力されるNewLevel信号、141はLevel絶対値信号104とNewLevel信号140のうち、いずれか一方の信号を選択する第1の選択回路、142は第1の選択回路141の出力信号、143はRun信号102とNewRun信号137のうち、いずれか一方の信号を選択する第2の選択回路、144は第2の選択回路143の出力信号、131はLast信号101とSign信号103と、第1の選択回路の出力信号142と、第2の選択回路の出力信号144とを入力するVLCテーブル、132はVLCテーブル131から出力されるVLCテーブル出力信号、133はVLCテーブル出力信号132を保持する第1のレジスタ、134は第1のレジスタ133の出力信号であるVLCデータ信号、145はVLCデータ信号134を入力する制御回路、146は第1の選択回路141を制御し、Level絶対値信号104とNewLevel信号140のうち、いずれか一方の信号を選択する第1の選択信号、147は第2の選択回路143を制御し、Run信号102とNewRun信号137のうち、いずれか一方の信号を選択する第2の選択信号、148は制御回路145で選択されたVLCデータ信号134をVLC生成回路172と第3の選択回路149に出力する第3の選択信号、172は第3の選択信号148とVLCデータ信号134とを入力し、符号化データを生成するVLC生成回路、177はVLC生成回路172の出力信号であるVLC生成信号、149はVLC生成信号177とFLCデータ信号106のうち、いずれか一方の信号を選択する第3の選択回路である。
【0069】
次に本発明の実施の形態3による可変長符号化装置の動作について、図6を用いて説明する。
制御回路145は第1の選択信号146により第1の選択回路141を制御し、第2の選択信号147により第2の選択回路143を制御する。そして、第1の選択回路141は第1の選択信号146により制御されて、Level絶対値信号104を選択し、第1の選択回路141の出力信号142としてVLCテーブル131に出力する。また、第2の選択回路143は第2の選択信号147により制御されて、Run信号102を選択し、第2の選択回路143の出力信号144としてVLCテーブル131に出力する。VLCテーブル131は、Last信号101と、Sign信号103と、Level絶対値信号104としての第1の選択回路の出力信号142と、Run信号102としての第2の選択回路の出力信号144とを入力し、通常のVLCを行ってVLCテーブル出力信号132を生成し、第1のレジスタ133に出力する。第1のレジスタ133はVLCテーブル出力信号132を保持し、通常のVLCであるVLCデータ信号134を制御回路145とVLC生成回路172に出力する。
【0070】
制御回路145は通常のVLCデータであるVLCデータ信号134を入力し、VLCテーブルとして正しいか否かの判定を行う。判定の結果、VLCデータ信号134がVLCとして正しいならば、制御回路145はVLCデータ信号134を選択する第3の選択信号148をVLC生成回路172と第3の選択回路149とに出力する。VLC生成回路172は、選択されたVLCデータ信号134を通常のVLCデータとし、VLC生成信号177として第3の選択回路149に出力する。第3の選択回路149は第3の選択信号148に制御されてVLC生成信号177を選択し、データ信号130として出力する。
【0071】
次に、LMAXテーブル117は、Last信号101とRun信号102とを入力し、LMAXデータ信号118を生成して第2の減算回路119に出力する。第2の減算回路119は、LMAXデータ信号118とLevel絶対値信号104とを入力し、Level絶対値信号104からLMAXデータ信号118を減算し、その結果を第2の減算回路の出力信号138として第3のレジスタ139に出力する。第3のレジスタ139は第2の減算回路の出力信号138を保持し、NewLevel信号140として第1の選択回路141に出力する。
【0072】
制御回路145は、第1の選択信号146により、第1の選択回路141を制御し、第1の選択回路141はNewLevel信号140を選択し、第1の選択回路の出力信号142としてVLCテーブル131に出力する。また、制御回路145は第2の選択信号147により、第2の選択回路143を制御し、第2の選択回路143はRun信号102を選択し、第2の選択回路の出力信号144としてVLCテーブル131に出力する。VLCテーブル131はLast信号101と、Sign信号103と、NewLevel信号140としての第1の選択回路の出力信号142と、Run信号102としての第2の選択回路の出力信号144とを入力し、LMAX VLCを行ってVLCテーブル出力信号132を生成し、第1のレジスタ133に出力する。第1のレジスタ133はLMAX VLCであるVLCテーブル出力信号132を保持する。
【0073】
制御回路145は、LMAX VLCであるVLCデータ信号134を入力し、VLCとして正しいか否かの判定を行う。判定の結果、VLCデータ信号134がVLCとして正しいならば、制御回路145はVLCデータ信号134を選択する第3の選択信号148をVLC生成回路172と第3の選択回路149とに出力する。VLC生成回路172は、ESCコードと、LMAXでのVLCを示す符号を付加して符号化を行いVLC生成信号177として第3の選択回路149に出力する。第3の選択回路149は第3の選択信号148に制御されてVLC生成信号177を選択し、データ信号130として出力する。
【0074】
また、RMAXテーブル107は、Last信号101とLevel絶対値信号104とを入力し、RMAXデータ信号108を生成して第1の減算回路109に出力する。第1の減算回路109は、RMAXデータ信号108とRun信号102とを入力し、Run信号102から、RMAXデータ信号108と1を加算した値を減算し、その結果を第1の減算回路109の出力信号135として第2のレジスタ136に出力する。第2のレジスタ136は第1の減算回路の出力信号135を保持し、NewRun信号137として第2の選択回路143に出力する。
【0075】
制御回路145は、第1の選択信号146により、第1の選択回路141を制御し、第1の選択回路141はLevel絶対値信号104を選択し、第1の選択回路141の出力信号142としてVLCテーブル131に出力する。また、制御回路145は、第2の選択信号147により、第2の選択回路143を制御し、第2の選択回路143はNewRun信号137を選択し、第2の選択回路の出力信号144としてVLCテーブル131に出力する。VLCテーブル131はLast信号101と、Sign信号103と、Level絶対値信号104としての第1の選択回路の出力信号142と、NewRun信号137としての第2の選択回路の出力信号144とを入力し、RMAX VLCを行ってVLCテーブル出力信号132を生成し、第1のレジスタ133に出力する。第1のレジスタ133はRMAX VLCであるVLCテーブル出力信号132を保持する。
【0076】
制御回路145は、RMAX VLCであるVLCデータ信号134を入力し、VLCとして正しいか否かの判定を行う。判定の結果、VLCデータ信号134がVLCとして正しいならば、制御回路145はVLCデータ信号134を選択する第3の選択信号148をVLC生成回路172と第3の選択回路149とに出力する。VLC生成回路172は、ESCコードと、RMAXでのVLCを示す符号を付加して符号化を行いVLC生成信号177として第3の選択回路149に出力する。第3の選択回路149は第3の選択信号148に制御されてVLC生成信号177を選択し、データ信号130として出力する。
【0077】
一方、制御回路145において、いずれのVLCデータ信号134もVLCとして正しくないと判定したならば、第3の選択回路149は、FLCデータ信号106を選択し、データ信号130として出力する。
【0078】
次に、図7は本発明の実施の形態3による制御回路の動作を説明するためのタイミングチャートである。
図7において、各信号の名称は図4と同一であるので、説明を省略する。
【0079】
次に、各タイミングチャートについて説明する。
図7(a)は、MPEG4における通常のVLCデータ信号を選択する場合のタイミングチャートである。
図7(a)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1のときdec_nomalの信号がHならば、dec_lmaxおよびdec_rmaxの信号の結果にかかわらず、sel_nomalの信号をHにする。このとき、制御回路145は通常のVLCであるVLCデータ信号134を選択する第3の選択信号148を出力し、第3の選択回路149は第3の選択信号148に制御されて、通常のVLCデータ信号であるVLC生成信号177を選択する。
【0080】
図7(b)は、MPEG4におけるNewLevel信号を用いて生成したVLCデータ信号を選択する場合のタイミングチャートである。
図7(b)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1のとき全ての信号がLで、カウンタの値が2のとき、dec_nomalの信号がL,dec_lmaxの信号がHならば、dec_rmaxの信号の結果にかかわらず、sel_lmaxの信号をHにする。このとき、制御回路145はNewLevel信号を用いて生成したVLCデータ信号134を選択する第3の選択信号148を出力し、第3の選択回路149は第3の選択信号148に制御されて、NewLevel信号を用いて生成したVLCデータ信号であるVLC生成信号177を選択する。
【0081】
図7(c)は、MPEG4におけるNewRun信号を用いて生成したVLCデータ信号を選択する場合のタイミングチャートである。
図7(c)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1、および2のとき全ての信号がLで、カウンタの値が3のとき、dec_nomalの信号がL,dec_lmaxの信号がL,dec_rmaxの信号がHならば、sel_rmaxの信号をHにする。このとき、制御回路145はNewRun信号を用いて生成したVLCデータ信号を選択する第3の選択信号148を出力し、第3の選択回路149は第3の選択信号148に制御されて、NewRun信号を用いて生成したVLCデータ信号であるVLC生成信号177を選択する。
【0082】
図7(d)は、MPEG4におけるFLCデータ信号を選択する場合のタイミングチャートである。
図7(d)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1〜4のとき全ての信号がLならば、sel_flcの信号をHにする。そして、第3の選択回路149でFLCデータ信号106を選択する。
【0083】
図7(e)は、H.263における通常のVLCデータ信号を選択する場合のタイミングチャートである。
図7(e)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1のときdec_nomalの信号がHならば、dec_lmaxおよびdec_rmaxの信号の結果にかかわらず、sel_nomalの信号をHにする。このとき、制御回路145は通常のVLCであるVLCデータ信号134を選択する第3の選択信号148を出力し、第3の選択回路149は第3の選択信号148に制御されて、通常のVLCデータ信号であるVLC生成信号177を選択する。
【0084】
図7(f)は、H.263におけるFLCデータ信号を選択する場合のタイミングチャートである。
図7(f)において、カウンタの値が0を示し、VLCテーブルの判定が開始可能なデータがそろったならば、tcoef_eの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が1および2のとき全ての信号がLならば、sel_flcの信号をHにする。そして、第3の選択回路149でFLCデータ信号106を選択する。
【0085】
次に、上述したタイミングチャートの処理内容をまとめた図を図8に示す。
図8は本発明の実施の形態3によるサイクル毎の処理内容をまとめた図である。
以下、各サイクル毎の動作について説明する。なお、カッコ内は図中の処理内容を示す。
【0086】
図8より、1サイクル目(1T)は、通常のVLCであるLast、Run、Levelによってテーブルを引く処理を行う(NORMAL VLC)。また、同時サイクルで、Levelの値から、Last、Runに対応する最大のLevelの値であるLMAXを減算してNewLevelを得(LMAX)、Runの値から、Last、Levelに対応する最大のRunの値であるRMAXに1を加算した値を減算してNewRunを得る(RMAX)。
【0087】
2サイクル目(2T)は、通常のVLCの結果が制御回路145に存在するか否かの判定を行い(NORMAL VLC判定)、通常のVLCの結果が存在するならば、その結果を出力する(VLC結果)。また、同時サイクルでLast、Run、NewLevelの組に対応するVLCを行う(LMAX VLC)。
【0088】
3サイクル目(3T)は、Last、Run、NewLevelの組に対応するVLCの結果が制御回路145に存在するか否かの判定を行い(LMAX VLC判定)、LMAX VLCの結果が存在するならば、その結果を出力する(VLC結果)、また、同時サイクルでLast、NewRun、Levelの組に対応するVLCを行う(RMAX VLC)。
【0089】
4サイクル目(4T)は、Last、NewRun、Levelの組に対応するVLCの結果が制御回路145に存在するか否かの判定を行い(RMAX VLC判定)、RMAX VLCの結果が存在するならば、その結果を出力する(VLC結果)。
【0090】
5サイクル目(5T)は、上述したいずれのVLC結果も制御回路145に存在していないと判定したなら、Last、Run、LevelをFLCによって処理を行い、その結果を出力する(FLC結果)。
【0091】
また、上述した図8の構成によれば、RMAX VLCの判定を4サイクル目で行い、RMAX VLCの結果が制御回路145に存在していなければFLCデータの出力を5サイクル目で行うこととしているが、4サイクル目でRMAX VLCの判定を行うのと同時にFLCデータの出力を行うことも可能である。図9に図8の作業を4サイクルで行うときのサイクル毎の処理内容をまとめた図を示す。
【0092】
図9より図8との違いは、4サイクル目(4T)の処理が開始すると、RMAX VLCの判定を行い、RMAX VLCの結果が制御回路145に存在しているならば、その結果を出力し、RMAX VLCの結果が制御回路145に存在していなければ、同時サイクルでFLCデータを出力し処理が終了することである。
【0093】
このように、本実施の形態3による可変長符号化装置によれば、通常のVLCを行うと同時にLMAX VLCとRMAX VLCの生成を同時に行い、通常のVLCデータ信号が正しいものと判断されたならば、LMAX VLCおよびRMAX VLCの判定を行わないものとしたので、通常のVLCを行うのと同時にNewLevel信号、NewRun信号を算出することが可能である。また、従来VLCの処理に6サイクルを要していたが、本実施の形態3によれば処理サイクル数を4サイクルまたは5サイクルに削減することができる。さらに、従来は3つのVLCテーブルを用いて処理を行っていたが、1つのVLCテーブルでVLCを行うことが可能なため、回路面積の削減を図ることができる。
【0094】
なお、本実施の形態3による可変長符号化装置において、予め設定した優先順位は、通常のVLCデータ、NewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータ、FLCデータの順番で信号を選択するものとしたが、この順番に限るものではなく、優先順位を通常のVLCデータ、NewRun信号を用いて生成したVLCデータ、NewLevel信号を用いて生成したVLCデータ、FLCデータとしてもよい。また、さらに優先順位を通常のVLCデータ、FLCデータとすることで、NewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータを選択することなくVLC化を行うことも可能である。つまり、そのような優先順位はH.263のVLCの処理にも対応することができ、また、画像データによって任意にNewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータの優先順位を変えることが可能となる。これによりエスケープモードにおけるサイクル数を削減した可変長符号化装置を得ることができる。
【0095】
また、本実施の形態3による可変長符号化装置において、カウンタを制御し、VLCコードを正しくない回数にカウントさせることで、優先順位を任意に設定することが可能である。つまり、図7でカウンタは通常のVLCデータ、NewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータ、FLCデータの順番でVLCデータを出力するものとしているが、カウンタを制御して、通常のVLCデータ、NewRun信号を用いて生成したVLCデータ、NewLevel信号を用いて生成したVLCデータ、FLCデータの順番に設定してもよい。このような順番に設定を変えた場合でも、同様の効果を得ることができる。また、優先順位を通常のVLCデータ、FLCデータの順番に設定することで、H.263に対応した処理を行うことも可能である。
【0096】
(実施の形態4)
本実施の形態4の可変長符号化装置は、1つのVLCテーブルを用いてVLCを行い、しかも余分な処理にアクセスしないようにするものである。
図10は、本発明の実施の形態4による可変長符号化装置の構成を説明するためのブロック図である。
【0097】
図10において、図6と同一符号は同一または相当する部分を示している。150はLevel絶対値信号104とNewLevel信号140のうち、いずれか一方の信号を選択する第3の選択回路、151は第3の選択回路150の出力信号、152はRun信号102とNewRun信号137のうち、いずれか一方の信号を選択する第4の選択回路、153は第4の選択回路152の出力信号、154はVLCデータ信号134を入力する制御回路、157は第3の選択回路150を制御し、Level絶対値信号104とNewLevel信号140のうち、いずれか一方の信号を選択する第3の選択信号、158は第4の選択回路152を制御し、Run信号102とNewRun信号137のうち、いずれか一方の信号を選択する第4の選択信号、159はLevel絶対値信号104と、Last信号101と、固定値とを入力する第1の選択回路、160は第1の選択回路159によりLevel絶対値信号104または固定値を出力する第1の出力信号、161は第1の選択回路159によりLast信号101または固定値を出力する第2の出力信号、162はRun信号102と、Last信号101と、固定値とを入力する第2の選択回路、163は第2の選択回路162によりRun信号102または固定値を出力する第3の出力信号、164は第2の選択回路162によりLast信号101または固定値を出力する第4の出力信号、155は第1の選択回路159を制御し、Level絶対値信号104と、Last信号101と、固定値の中から、出力する信号を選択する第1の選択信号、156は第2の選択回路162を制御し、Run信号102と、Last信号101と、固定値の中から、出力する信号を選択する第2の選択信号、165は制御回路154で選択されたVLCデータ信号134をVLC生成回路172と第5の選択回路166に出力する第5の選択信号、166はVLC生成信号177とFLCデータ信号106とのうち、いずれか一方の信号を選択する第5の選択回路である。
【0098】
次に本発明の実施の形態4による可変長符号化装置の動作について、図10を用いて説明する。
制御回路154は第3の選択信号157により第3の選択回路150を制御し、第4の選択信号158により第4の選択回路152を制御する。そして、第3の選択回路150は第3の選択信号157により制御されて、Level絶対値信号104を選択し、第3の選択回路の出力信号151としてVLCテーブル131に出力する。また、第4の選択回路152は第4の選択信号158により制御されて、Run信号102を選択し、第4の選択回路の出力信号153としてVLCテーブル131に出力する。VLCテーブル131は、Last信号101と、Sign信号103と、Level絶対値信号104としての第3の選択回路の出力信号151と、Run信号102としての第4の選択回路の出力信号153とを入力し、通常のVLCを行ってVLCテーブル出力信号132を生成し、第1のレジスタ133に出力する。第1のレジスタ133はVLCテーブル出力信号132を保持し、通常のVLCであるVLCデータ信号134を制御回路154とVLC生成回路172に出力する。
【0099】
制御回路154は通常のVLCデータであるVLCデータ信号134を入力し、VLCテーブルとして正しいか否かの判定を行う。判定の結果、VLCデータ信号134がVLCとして正しいならば、制御回路154はVLCデータ信号134を選択する第5の選択信号165をVLC生成回路172と第5の選択回路166とに出力する。VLC生成回路172は、選択されたVLCデータ信号134を通常のVLCデータとし、VLC生成信号177として第5の選択回路166に出力する。第5の選択回路166は第5の選択信号165に制御されてVLC生成信号177を選択し、データ信号130として出力する。
【0100】
次に、制御回路154は第2の選択信号156により第2の選択回路162を制御する。第2の選択回路162は第2の選択信号156により制御されて、Run信号102とLast信号101とを選択して入力し、それぞれ第3の出力信号163および第4の出力信号164としてLMAXテーブル117に出力する。LMAXテーブル117は、第3の出力信号163および第4の出力信号164を入力し、LMAXデータ信号118を生成して第2の減算回路119に出力する。第2の減算回路119はLMAXデータ信号118とLevel絶対値信号104とを入力し、Level絶対値信号104からLMAXデータ信号118を減算し、その結果を第2の減算回路の出力信号138として第3のレジスタ139に出力する。第3のレジスタ139は第2の減算回路の出力信号138を保持し、NewLevel信号140として第3の選択回路150に出力する。
【0101】
制御回路154は、第3の選択信号157により第3の選択回路150を制御し、第4の選択信号158により第4の選択回路152を制御する。第3の選択回路150は第3の選択信号157に制御されてNewLevel信号140を選択し、第3の選択回路の出力信号151としてVLCテーブル131に出力する。また、第4の選択回路152は第4の選択信号158に制御されてRun信号102を選択し、第4の選択回路の出力信号153としてVLCテーブル131に出力する。VLCテーブル131は、Last信号101と、Sign信号103と、NewLevel信号140としての第3の選択回路の出力信号151と、Run信号102としての第4の選択回路の出力信号153とを入力し、LMAX VLCを行ってVLCテーブル出力信号132を生成し、第1のレジスタ133に出力する。第1のレジスタ133は、LMAX VLCであるVLCテーブル出力信号132を保持する。
【0102】
制御回路154は、LMAXデータであるVLCデータ信号134を入力し、VLCとして正しいか否かの判定を行う。判定の結果、VLCデータ信号134がVLCとして正しいならば、制御回路154はVLCデータ信号134を選択する第5の選択信号165をVLC生成回路172と第5の選択回路166とに出力する。VLC生成回路172は、ESCコードと、LMAXでのVLCを示す符号を付加して符号化を行いVLC生成信号177として第5の選択回路166に出力する。第5の選択回路166は第5の選択信号165に制御されてVLC生成信号177を選択し、データ信号130として出力する。
【0103】
また、制御回路154は、第1の選択信号155により第1の選択回路159を制御する。第1の選択回路159は第1の選択信号155により制御されて、Level絶対値信号104とLast信号101とを選択して入力し、それぞれ第1の出力信号160および第2の出力信号161としてRMAXテーブル107に出力する。RMAXテーブル107は、第1の出力信号160および第2の出力信号161を入力し、RMAXデータ信号108を生成して第1の減算回路109に出力する。第1の減算回路109は、RMAXデータ信号108とRun信号102とを入力し、Run信号102の値から、RMAXデータ信号108と1を加算した値を減算し、その結果を第1の減算回路の出力信号135として第2のレジスタ136に出力する。第2のレジスタ136は第1の減算回路の出力信号135を保持し、NewRun信号137として第4の選択回路152に出力する。
【0104】
制御回路154は、第3の選択信号157により、第3の選択回路150を制御し、第4の選択信号158により第4の選択回路152を制御する。第3の選択回路150は第3の選択信号157に制御されてLevel絶対値信号104を選択し、第3の選択回路の出力信号151としてVLCテーブル131に出力する。また、第4の選択回路152は第4の選択信号158に制御されてNewRun信号137を選択し、第4の選択回路の出力信号153としてVLCテーブル131に出力する。VLCテーブル131はLast信号102と、Sign信号103と、Level絶対値信号104としての第3の選択回路の出力信号151と、NewRun信号137としての第4の選択回路の出力信号153とを入力し、RMAX VLCを行ってVLCテーブル出力信号132を生成し、第1のレジスタ133に出力する。第1のレジスタ133はRMAX VLCであるVLCテーブル出力信号132を保持する。
【0105】
制御回路154は、RMAX VLCであるVLCデータ信号134を入力し、VLCとして正しいか否かの判定を行う。判定の結果、VLCデータ信号134はVLCとして正しいならば、制御回路154はVLCデータ信号134を選択する第5の選択信号165をVLC生成回路172と第5の選択回路166とに出力する。VLC生成回路172は、ESCコードと、RMAXでのVLCを示す符号を付加して符号化を行いVLC生成信号177として第5の選択回路166に出力する。第5の選択回路166は第5の選択信号165に制御されてVLC生成信号177を選択し、データ信号130として出力する。
【0106】
一方、制御回路154において、いずれのVLCデータ信号134もVLCとして正しくないならば、第5の選択回路166は、FLCデータ信号106を選択し、データ信号130として出力する。
【0107】
次に、本発明の実施の形態4によるサイクル毎の処理内容をまとめた図を図11に示し説明する。
以下、各サイクル毎の動作について説明する。なお、カッコ内は図中の処理内容を示す。
【0108】
図11より、1サイクル目(1T)は、通常のVLCであるLast、Run、Levelによってテーブルを引く処理を行う(NORMAL VLC)。また、同時サイクルで、Levelの値から、Last、Runに対応する最大のLevelの値であるLMAXを減算してNewLevelを得る(LMAX)。
【0109】
2サイクル目(2T)は、通常のVLCの結果が制御回路154に存在するか否かの判定を行い(NORMAL VLC判定)、通常のVLCの結果が存在するならば、その結果を出力する(VLC結果)。また、同時サイクルでRunの値から、Last、Levelに対応する最大のRunの値であるRMAXに1を加算した値を減算してNewRunを得る(RMAX)。また、Last、Run、NewLevelの組に対応するVLCを行う(LMAX VLC)。
【0110】
3サイクル目(3T)は、Last、Run、NewLevelの組に対応するVLCの結果が制御回路154に存在するか否かの判定を行い(LMAX VLC判定)、LMAX VLCの結果が存在するならば、その結果を出力する(VLC結果)、また、同時サイクルでLast、NewRun、Levelの組に対応するVLCを行う(RMAX VLC)
【0111】
4サイクル目(4T)は、Last、NewRun、Levelの組に対応するVLCの結果が制御回路154に存在するか否かの判定を行い(RMAX VLC判定)、RMAX VLCの結果が存在するならば、その結果を出力する(VLC結果)。一方、上述したいずれのVLC結果も制御回路154に存在していないと判定したならば、Last、Run、LevelをFLCによって処理を行い、その結果を出力する(FLC結果)。
【0112】
このように、本実施の形態4による可変長符号化装置によれば、通常のVLCを行うのと同時にNewLevel信号を算出し、第1のエスケープモードを実行する2サイクル目でNewRun信号を算出するものとしたので、常に1サイクル目でRMAXテーブルにアクセスすることがなく、消費電力を削減することができる。また、従来VLCの処理に6サイクルを要していたが、本実施の形態4によれば処理サイクル数を4サイクルに削減することができる。さらに、従来は3つのVLCテーブルを用いて処理を行っていたが、1つのVLCテーブルでVLCを行うことが可能となるため、回路面積の削減を図ることができる。
【0113】
なお、本実施の形態4による可変長符号化装置において、予め設定した優先順位は、通常のVLCデータ、NewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータ、FLCデータの順番で信号を選択するものとしたが、この順番に限るものではなく、優先順位を通常のVLCデータ、NewRun信号を用いて生成したVLCデータ、NewLevel信号を用いて生成したVLCデータ、FLCデータとしてもよい。また、さらに優先順位を通常のVLCデータ、FLCデータとすることで、NewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータを選択することなくVLC化を行うことも可能である。つまり、そのような優先順位はH.263のVLCの処理にも対応することができ、また、画像データによって任意にNewLevel信号を用いて生成したVLCデータ、NewRun信号を用いて生成したVLCデータの優先順位を変えることが可能となる。これによりエスケープモードにおけるサイクル数を削減した可変長符号化装置を得ることができる。
【0114】
産業上の利用可能性
以上のように本発明に係る可変長符号化方法および可変長符号化装置は、演算サイクル数を少なくし、効率よく可変長符号化の処理を行うことができるので、特に、MPEG4やH.263等の規格に準拠した動画像の圧縮処理に適している。
【図面の簡単な説明】
【図1】本発明の実施の形態1による可変長符号化方法を説明するためのチャート図である。
【図2】本発明の実施の形態1による符号を出力する優先順位の組み合わせを説明するための図である。
【図3】本発明の実施の形態2による可変長符号化装置の構成を説明するためのブロック図である。
【図4】本発明の実施の形態2による制御回路の動作を説明するためのタイミングチャートである。
【図5】本発明の実施の形態2によるサイクル毎の処理内容をまとめた図である。
【図6】本発明の実施の形態3による可変長符号化装置の構成を説明するためのブロック図である。
【図7】本発明の実施の形態3による制御回路の動作を説明するためのタイミングチャートである。
【図8】本発明の実施の形態3による5Tで処理が行われるときのサイクル毎の処理内容をまとめた図である。
【図9】本発明の実施の形態3による4Tで処理が行われるときのサイクル毎の処理内容をまとめた図である。
【図10】本発明の実施の形態4による可変長符号化装置の構成を説明するためのブロック図である。
【図11】本発明の実施の形態4によるサイクル毎の処理内容をまとめた図である。
【図12】従来の可変長符号化方法を説明するためのチャート図である。
【図13】従来の可変長符号化方法のサイクル毎の処理内容をまとめた図である。
Claims (7)
- Level信号の絶対値であるLevel絶対値信号およびLast信号を入力するRMAXテーブルと、Run信号および上記Last信号を入力するLMAXテーブルと、上記Level絶対値信号、上記Level信号の正負を示す信号、上記Run信号、および上記Last信号を入力する第1のVLCテーブルと、上記Run信号から、上記RMAXテーブルの出力信号と1の合計を減算する第1の減算回路と、該第1の減算回路の出力信号を保持する第2のレジスタと、該第2のレジスタの出力信号、上記Level絶対値信号、上記Level信号の正負を示す信号および上記Last信号を入力する第2のVLCテーブルと、上記Level絶対値信号から上記LMAXテーブルの出力信号を減算する第2の減算回路と、該第2の減算回路の出力信号を保持する第3のレジスタと、該第3のレジスタの出力信号、上記Level信号の正負を示す信号、上記Run信号および上記Last信号を入力する第3のVLCテーブルと、上記第1のVLCテーブルの出力信号を保持する第1のレジスタと、上記第2のVLCテーブルの出力信号を保持する第4のレジスタと、上記第3のVLCテーブルの出力信号を保持する第5のレジスタと、上記第4のレジスタの出力信号を入力するRMAX VLC生成回路と、上記第5のレジスタの出力信号を入力するLMAX VLC生成回路と、上記Level信号、上記Run信号、および上記Last信号を入力するFLC生成回路と、上記第1のレジスタの出力信号、上記第4のレジスタの出力信号、上記第5のレジスタの出力信号を入力する制御回路と、上記第1のレジスタの出力信号、上記RMAX VLC生成回路の出力信号、上記LMAX VLC生成回路の出力信号、および上記FLC生成回路の出力信号を入力する選択回路とを備え、
上記制御回路は、上記第1のレジスタの出力信号と、上記第4のレジスタの出力信号と、上記第5のレジスタの出力信号とがVLCとして正しいかどうかを判定し、判定した結果を示す選択信号を上記選択回路に出力し、
上記選択回路は、上記選択信号により、上記第1のレジスタの出力信号、上記RMAX VLC生成回路の出力信号、上記LMAX VLC生成回路の出力信号、上記FLC生成回路の出力信号から、いずれか一つの出力信号を選択し、符号として出力する、
ことを特徴とする可変長符号化装置。 - 請求項1記載の可変長符号化装置において、
上記制御回路は、上記第1のレジスタの出力信号と、上記第4のレジスタの出力信号と、上記第5のレジスタの出力信号とがVLCとして正しいかどうかを判定し、判定した結果を予め設定した優先順位に従って、上記第1のレジスタの出力信号、上記RMAX VLC生成回路の出力信号、上記LMAX VLC生成回路の出力信号、上記FLC生成回路の出力信号から、いずれか一つの出力信号を選択し、上記選択回路に出力する、
ことを特徴とする可変長符号化装置。 - Level信号の絶対値であるLevel絶対値信号、およびLast信号を入力するRMAXテーブルと、Run信号、および上記Last信号を入力するLMAXテーブルと、上記Run信号から、上記RMAXテーブルの出力信号と1の合計を減算する第1の減算回路と、上記Level絶対値信号から上記LMAXテーブルの出力信号を減算する第2の減算回路と、上記第1の減算回路の出力信号を保持する第2のレジスタと、上記第2の減算回路の出力信号を保持する第3のレジスタと、該第3のレジスタの出力信号、および上記Level絶対値信号のいずれかを選択する第1の選択回路と、上記第2のレジスタの出力信号、および上記Run信号のいずれかを選択する第2の選択回路と、上記第1の選択回路の出力信号、上記第2の選択回路の出力信号、上記Level信号の正負を示す信号、および上記Last信号を入力するVLCテーブルと、該VLCテーブルの出力信号を保持する第1のレジスタと、上記Level信号、上記Run信号、および上記Last信号を入力するFLC生成回路と、上記第1のレジスタの出力信号を入力する制御回路と、上記第1のレジスタの出力信号、および上記制御回路の出力信号を入力するVLC生成回路と、該VLC生成回路の出力信号、および上記FLC生成回路の出力信号を入力する第3の選択回路とを備え、
第1周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第2周期で、上記制御回路は上記第1のレジスタの出力信号が通常のVLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号が通常のVLCとして正しいと判定したならば、その判定の結果を示す第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号を通常のVLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
第1周期で、上記LMAXテーブルは、上記Last信号と上記Run信号とを入力し、LMAXデータ信号を生成して上記第2の減算回路に出力し、該第2の減算回路は上記LMAXデータ信号と上記Level絶対値信号とを入力し、該Level絶対値信号から上記LMAXデータ信号を減算し、その結果を第3のレジスタに出力し、第2周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記第3のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第3周期で、上記制御回路は上記第2周期で行われた通常のVLCの判定が正しくなければ、上記第1のレジスタの出力信号がLMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がLMAX VLCとして正しいと判定したならば、その判定の結果を示す第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をLMAX VLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
第1周期で、上記RMAXテーブルは上記Last信号と上記Level絶対値信号とを入力し、RMAXデータ信号を生成して上記第1の減算回路に出力し、該第1の減算回路は上記RMAXデータ信号と上記Run信号とを入力し、該Run信号から、上記RMAXデータ信号と1を加算した値を減算し、その結果を上記第2のレジスタに出力し、第3周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記第2のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第4周期で、上記制御回路は上記第3周期で行われたLMAX VLCの判定が正しくなければ、上記第1のレジスタの出力信号がRMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がRMAX VLCとして正しいと判定したならば、第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をRMAX VLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
上記制御回路に入力される上記第1のレジスタの出力信号が、いずれもVLCとして正しくないと判定したならば、第5周期で、上記第3の選択回路は上記FLC生成回路の出力信号を選択して出力する、
ことを特徴とする可変長符号化装置。 - Level信号の絶対値であるLevel絶対値信号およびLast信号を入力するRMAXテーブルと、Run信号および上記Last信号を入力するLMAXテーブルと、上記Run信号から、上記RMAXテーブルの出力信号と1の合計を減算する第1の減算回路と、上記Level絶対値信号から上記LMAXテーブルの出力信号を減算する第2の減算回路と、上記第1の減算回路の出力信号を保持する第2のレジスタと、上記第2の減算回路の出力信号を保持する第3のレジスタと、該第3のレジスタの出力信号、および上記Level絶対値信号のいずれかを選択する第1の選択回路と、上記第2のレジスタの出力信号、および上記Run信号のいずれかを選択する第2の選択回路と、上記第1の選択回路の出力信号、上記第2の選択回路の出力信号、上記Level信号の正負を示す信号、および上記Last信号を入力するVLCテーブルと、該VLCテーブルの出力信号を保持する第1のレジスタと、上記Level信号、上記Run信号、および上記Last信号を入力するFLC生成回路と、上記第1のレジスタの出力信号を入力する制御回路と、上記第1のレジスタの出力信号、および上記制御回路の出力信号を入力するVLC生成回路と、該VLC生成回路の出力信号、および上記FLC生成回路の出力信号を入力する第3の選択回路とを備え、
第1周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第2周期で、上記制御回路は上記第1のレジスタの出力信号が通常のVLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号が通常のVLCとして正しいと判定したならば、その判定の結果を示す第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号を通常のVLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
第1周期で、上記LMAXテーブルは、上記Last信号と上記Run信号とを入力し、LMAXデータ信号を生成して上記第2の減算回路に出力し、該第2の減算回路は上記LMAXデータ信号と上記Level絶対値信号とを入力し、該Level絶対値信号から上記LMAXデータ信号を減算し、その結果を第3のレジスタに出力し、第2周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記第3のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第3周期で、上記制御回路は上記第2周期で行われた通常のVLCの判定が正しくなければ、上記第1のレジスタの出力信号がLMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がLMAX VLCとして正しいと判定したならば、その判定の結果を示す第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をLMAX VLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
第1周期で、上記RMAXテーブルは上記Last信号と上記Level絶対値信号とを入力し、RMAXデータ信号を生成して上記第1の減算回路に出力し、該第1の減算回路は上記RMAXデータ信号と上記Run信号とを入力し、該Run信号から、上記RMAXデータ信号と1を加算した値を減算し、その結果を上記第2のレジスタに出力し、第3周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力し、上記第2のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第4周期で、上記制御回路は上記第3周期で行われたLMAX VLCの判定が正しくなければ、上記第1のレジスタの出力信号がRMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がRMAX VLCとして正しいと判定したならば、第3の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をRMAX VLC符号として出力し、上記第3の選択回路は上記第3の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
上記制御回路に入力される上記第1のレジスタの出力信号が、いずれもVLCとして正しくないと判定したならば、第4周期で、上記第3の選択回路は上記FLC生成回路の出力信号を選択して出力する、
ことを特徴とする可変長符号化装置。 - 請求項3または請求項4記載の可変長符号化装置において、
上記制御回路は、上記第1のレジスタの出力信号がVLCとして正しいかどうかを判定し、さらに上記第1のレジスタの出力信号がVLCとして正しくない場合に、上記LMAX VLCもしくは上記RMAX VLC、上記FLCかを生成周期に応じてVLCの制御を行い、予め設定した優先順位に従って、VLCの出力順位を変更する、
ことを特徴とする可変長符号化装置。 - Level信号の絶対値であるLevel絶対値信号、Last信号、および固定値を入力し、上記Level絶対値信号もしくは上記固定値のいずれかを選択して出力する第1の出力信号、および上記Last信号もしくは上記固定値のいずれかを選択して出力する第2の出力信号を出力する第1の選択回路と、上記第1の出力信号および上記第2の出力信号を入力するRMAXテーブルと、Run信号、上記Last信号、および固定値を入力し、上記Run信号もしくは上記固定値のいずれかを選択して出力する第3の出力信号、および上記Last信号もしくは上記固定値のいずれかを選択して出力する第4の出力信号を出力する第2の選択回路と、上記第3の出力信号および上記第4の出力信号を入力するLMAXテーブルと、上記Run信号から、上記RMAXテーブルの出力信号と1の合計を減算する第1の減算回路と、上記Level絶対値信号から上記LMAXテーブルの出力信号を減算する第2の減算回路と、上記第1の減算回路の出力信号を保持する第2のレジスタと、上記第2の減算回路の出力信号を保持する第3のレジスタと、該第3のレジスタの出力信号および上記Level絶対値信号のいずれかを選択する第3の選択回路と、上記第2のレジスタの出力信号および上記Run信号のいずれかを選択する第4の選択回路と、上記第3の選択回路の出力信号、上記第4の選択回路の出力信号、上記Level信号の正負を示す信号、および上記Last信号を入力するVLCテーブルと、該VLCテーブルの出力信号を保持する第1のレジスタと、上記Level信号、上記Run信号、および上記Last信号を入力するFLC生成回路と、上記第1のレジスタの出力信号を入力する制御回路と、上記第1のレジスタの出力信号、および上記制御回路の出力信号を入力するVLC生成回路と、該VLC生成回路の出力信号、および上記FLC生成回路の出力信号を入力する第5の選択回路とを備え、
第1周期で、上記第1の選択回路は上記制御回路から出力される第1の選択信号を入力して固定値を選択し、上記第2の選択回路は上記制御回路から出力される第2の選択信号を入力して、上記Run信号および上記Last信号を選択し、上記第3の選択回路は上記制御回路から出力される第3の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第4の選択回路は上記制御回路から出力される第4の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第2周期で、上記制御回路は上記第1のレジスタの出力信号が通常のVLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号が通常のVLCとして正しいと判定したならば、その判定の結果を示す第5の選択信号を上記VLC生成回路、および上記第5の選択回路に出力し、上記VLC生成回路は、上記第1のレジスタの出力信号を通常のVLC符号として出力し、上記第5の選択回路は上記第5の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
第1周期で、上記LMAXテーブルは、上記Last信号と上記Run信号とを入力し、LMAXデータ信号を生成して上記第2の減算回路に出力し、該第2の減算回路は上記LMAXデータ信号と上記Level絶対値信号とを入力し、該Level絶対値信号から上記LMAXデータ信号を減算し、その結果を第3のレジスタに出力し、第2周期で、上記第3の選択回路は上記制御回路から出力される第3の選択信号を入力し、上記第3のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記第4の選択回路は上記制御回路から出力される第4の選択信号を入力し、上記Run信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第3周期で、上記制御回路は上記第2周期で行われた通常のVLCの判定が正しくなければ、上記第1のレジスタの出力信号がLMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がLMAX VLCとして正しいと判定したならば、その判定の結果を示す第5の選択信号を上記VLC生成回路および上記第5の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をLMAX VLC符号として出力し、上記第5の選択回路は上記第5の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
第2周期で、上記RMAXテーブルは上記Last信号と上記Level絶対値信号とを入力し、RMAXデータ信号を生成して上記第1の減算回路に出力し、該第1の減算回路は上記RMAXデータ信号と上記Run信号とを入力し、該Run信号から、上記RMAXデータ信号と1を加算した値を減算し、その結果を上記第2のレジスタに出力し、第3周期で、上記第3の選択回路は上記制御回路から出力される第3の選択信号を入力し、上記Level絶対値信号を選択して上記VLCテーブルに出力し、上記第4の選択回路は上記制御回路から出力される第4の選択信号を入力し、上記第2のレジスタの出力信号を選択して上記VLCテーブルに出力し、上記VLCテーブルはVLCを実行し、その出力信号を上記第1のレジスタに出力し、第4周期で、上記制御回路は上記第3周期で行われたLMAX VLCの判定が正しくなければ、上記第1のレジスタの出力信号がRMAX VLCとして正しいかどうかを判定し、上記第1のレジスタの出力信号がRMAX VLCとして正しいと判定したならば、その判定の結果を示す第5の選択信号を上記VLC生成回路および上記第3の選択回路に出力し、上記VLC生成回路は上記第1のレジスタの出力信号をRMAX VLC符号として出力し、上記第5の選択回路は上記第5の選択信号により、上記VLC生成回路の出力信号を選択して出力し、
上記制御回路に入力される上記第1のレジスタの出力信号が、いずれもVLCとして正しくないと判定したならば、第4周期で、上記第5の選択回路は上記FLC生成回路の出力信号を選択して出力する、
ことを特徴とする可変長符号化装置。 - 請求項6記載の可変長符号化装置において、
上記制御回路は、上記第1のレジスタの出力信号がVLCとして正しいかどうかを判定し、さらに上記第1のレジスタの出力信号がVLCとして正しくない場合に、上記LMAX VLCもしくは上記RMAX VLC、上記FLCかを生成周期に応じてVLCの制御を行い、予め設定した優先順位に従って、VLCの出力順位を変更する、
ことを特徴とする可変長符号化装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000151193 | 2000-05-23 | ||
PCT/JP2001/004300 WO2001091470A1 (en) | 2000-05-23 | 2001-05-23 | Variable length encoding method and variable length encoder |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004156589A Division JP4242806B2 (ja) | 2000-05-23 | 2004-05-26 | 可変長符号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3573735B2 true JP3573735B2 (ja) | 2004-10-06 |
Family
ID=18656790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001586928A Expired - Fee Related JP3573735B2 (ja) | 2000-05-23 | 2001-05-23 | 可変長符号化方法および可変長符号化装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6636168B2 (ja) |
EP (1) | EP1294197A4 (ja) |
JP (1) | JP3573735B2 (ja) |
WO (1) | WO2001091470A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006339997A (ja) * | 2005-06-01 | 2006-12-14 | Matsushita Electric Ind Co Ltd | 可変長符号化方式および可変長符号化装置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1242621C (zh) * | 2000-08-12 | 2006-02-15 | 罗伯特-博希股份公司 | 变换系数的整数近似方法以及编码器和译码器 |
DE20321883U1 (de) | 2002-09-04 | 2012-01-20 | Microsoft Corp. | Computervorrichtung und -system zum Entropiedecodieren quantisierter Transformationskoeffizienten eines Blockes |
US7433824B2 (en) * | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US20050249292A1 (en) * | 2004-05-07 | 2005-11-10 | Ping Zhu | System and method for enhancing the performance of variable length coding |
JP4527474B2 (ja) * | 2004-08-27 | 2010-08-18 | パナソニック株式会社 | 可変長符号化装置、撮像装置 |
US7693709B2 (en) * | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
US7599840B2 (en) | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
US7684981B2 (en) | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7565018B2 (en) | 2005-08-12 | 2009-07-21 | Microsoft Corporation | Adaptive coding and decoding of wide-range coefficients |
US7933337B2 (en) | 2005-08-12 | 2011-04-26 | Microsoft Corporation | Prediction of transform coefficients for image compression |
US8184710B2 (en) | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
US8179974B2 (en) | 2008-05-02 | 2012-05-15 | Microsoft Corporation | Multi-level representation of reordered transform coefficients |
US8406307B2 (en) | 2008-08-22 | 2013-03-26 | Microsoft Corporation | Entropy coding/decoding of hierarchically organized data |
US8410959B2 (en) * | 2010-04-09 | 2013-04-02 | Qualcomm, Incorporated | Variable length codes for coding of video data |
US10171810B2 (en) | 2015-06-22 | 2019-01-01 | Cisco Technology, Inc. | Transform coefficient coding using level-mode and run-mode |
JP6135788B2 (ja) * | 2016-03-22 | 2017-05-31 | 富士通株式会社 | 圧縮プログラム、圧縮方法、圧縮装置、伸張プログラム、伸張方法、伸張装置およびデータ転送システム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835145A (en) * | 1996-01-19 | 1998-11-10 | Lsi Logic Corporation | Conversion system using programmable tables for compressing transform coefficients |
JPH1051776A (ja) * | 1996-08-01 | 1998-02-20 | Mitsubishi Electric Corp | 画像符号化装置 |
US5901355A (en) | 1996-11-01 | 1999-05-04 | Airnet Communications Corp. | Method using different frequencies and antenna types for remotes located in an inner or outer region of a cell |
KR100318055B1 (ko) * | 1996-11-06 | 2001-12-24 | 모리시타 요이찌 | 화상 복호화 방법 |
JP2870515B2 (ja) * | 1996-12-27 | 1999-03-17 | 日本電気株式会社 | 可変長符号化装置 |
KR100277682B1 (ko) * | 1998-08-26 | 2001-01-15 | 정선종 | 줄길이 복호 시스템의 오류 검출 장치 |
-
2001
- 2001-05-23 JP JP2001586928A patent/JP3573735B2/ja not_active Expired - Fee Related
- 2001-05-23 US US10/031,711 patent/US6636168B2/en not_active Expired - Lifetime
- 2001-05-23 WO PCT/JP2001/004300 patent/WO2001091470A1/ja active Application Filing
- 2001-05-23 EP EP01934315A patent/EP1294197A4/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006339997A (ja) * | 2005-06-01 | 2006-12-14 | Matsushita Electric Ind Co Ltd | 可変長符号化方式および可変長符号化装置 |
US7248191B2 (en) | 2005-06-01 | 2007-07-24 | Matsushita Electric Industrial Co., Ltd. | Variable-length coding method, variable-length coding device and imaging system |
JP4495034B2 (ja) * | 2005-06-01 | 2010-06-30 | パナソニック株式会社 | 可変長符号化方式および可変長符号化装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1294197A1 (en) | 2003-03-19 |
US20030006917A1 (en) | 2003-01-09 |
US6636168B2 (en) | 2003-10-21 |
WO2001091470A1 (en) | 2001-11-29 |
EP1294197A4 (en) | 2004-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3573735B2 (ja) | 可変長符号化方法および可変長符号化装置 | |
JP2870515B2 (ja) | 可変長符号化装置 | |
EP1237123B1 (en) | Decoding apparatus and method | |
US7248191B2 (en) | Variable-length coding method, variable-length coding device and imaging system | |
JPH03270378A (ja) | データ圧縮装置 | |
JP2004007555A (ja) | エントロピー符号化装置 | |
JP2007329903A (ja) | 可変長復号化装置、可変長復号化方法および撮像システム | |
JP4242806B2 (ja) | 可変長符号化方法 | |
JPH09200762A (ja) | 映像信号符号化方法及びその装置 | |
JP3627659B2 (ja) | データ符号化装置とその方法およびカメラシステム | |
JP2002094992A (ja) | 符号化データ長検出装置とその方法および画像符号化装置 | |
JPH04100390A (ja) | 高能率符号化方式 | |
JP3434904B2 (ja) | 画像データ符号化装置 | |
JP2570788B2 (ja) | テレビジョン信号の高能率符号化方式のデコード装置 | |
JP2008141382A (ja) | 符号化装置および方法、並びにプログラム | |
JP3786485B2 (ja) | ランレングス符号化装置 | |
JPH07212598A (ja) | 画像圧縮符号化装置 | |
JP3313911B2 (ja) | 量子化装置 | |
JPS6181078A (ja) | 時系列信号の符号化方式 | |
JPH02202285A (ja) | 適応符号化装置 | |
JPH11338853A (ja) | 画像符号化方法 | |
JP2003309848A (ja) | 画像符号化装置及びその制御方法 | |
JPH0883167A (ja) | 乱数発生回路 | |
JPH02188074A (ja) | 符号化および復号化装置 | |
JP2009130889A (ja) | 画像圧縮装置、プリンタ、及び複合機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040216 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040330 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040526 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040531 |
|
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: 20040615 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040629 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070709 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080709 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120709 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |