(57)【特許請求の範囲】
【請求項１】
入力サンプルデータの原サンプル面の画素情報をブロック化して、該ブロック化された画素情報を直交変換する直交変換手段と、
上記直交変換されたデータを量子化する量子化手段と、
上記量子化されたデータを可変長符号化したときの符号長を計測する可変長符号長計測手段と、
上記量子化されたデータを上記可変長符号長計測手段で符号長を計測するまで遅延させる第１のレジスタと、
上記ブロック化された画素情報を上記第１のレジスタからの出力される上記量子化されたデータとタイミング合わせする第２のレジスタと、
上記可変長符号長計測手段の計測結果に基づき、上記計測された符号長が上記ブロック化された画素情報のデータ量よりも多いときに、上記第１のレジスタから出力される上記量子化されたデータの可変長符号化データに代えて、上記第２のレジスタから出力される上記ブロック化された画素情報そのものを、上記可変長符号化データと上記入力サンプルデータとを識別する識別子とともに出力する可変長符号化手段を有する
ことを特徴とする信号圧縮装置。
【請求項２】
上記直交変換手段としては、離散余弦変換手段が使用されたことを特徴とする請求項１記載の信号圧縮装置。
【請求項３】
上記可変長符号化手段は、上記可変長符号化データと上記ブロック化された画素情報及び上記識別子とを混在するように、ビットストリームを生成して出力することを特徴とする請求項１記載の信号圧縮装置。
【請求項４】
上記可変長符号化データの符号量が、入力サンプルデータに上記識別子を加えたときの符号量よりも大きいときに上記入力サンプルデータが選択されるようになされたことを特徴とする請求項１記載の信号圧縮装置。
【請求項５】
上記符号長は、ＤＣＴブロック単位、マクロブロック単位、スライス単位、ピクチャー単位の何れかでブロック化したときの符号長であることを特徴とする請求項１記載の信号圧縮装置。
【請求項６】
入力サンプルデータの原サンプル面の画素情報をブロック化して、該ブロック化された画素情報を直交変換する直交変換工程と、
上記直交変換されたデータを量子化する量子化工程と、
上記量子化されたデータを可変長符号化したときの符号長を計測する可変長符号長計測工程と、
上記量子化されたデータを上記可変長符号長計測手段で符号長を計測するまで遅延させる第１の遅延工程と、
上記ブロック化された画素情報を上記第１のレジスタからの出力される上記量子化されたデータとタイミング合わせする第２の遅延工程と、
上記可変長符号長計測工程の計測結果に基づき、上記計測された符号長が上記ブロック化された画素情報のデータ量よりも多いときに、上記第１の遅延工程で出力される上記量子化されたデータの可変長符号化データに代えて、上記第２の遅延工程で出力される上記ブロック化された画素情報そのものを、上記可変長符号化データと上記入力サンプルデータとを識別する識別子とともに出力する可変長符号化工程を有する
ことを特徴とする信号圧縮方法。
【請求項７】
可変長符号化データと入力サンプルデータとの識別子を入力ビットストリームから検出する識別子検出手段と、
上記識別子検出手段の検出結果に基づき、上記入力ビットストリームの可変長符号化データに対してのみ可変長復号化処理を行い、上記入力ビットストリームの入力サンプルデータは可変長復号化処理を行うことなく出力する可変長復号化手段と、
上記可変長復号化手段で復号化されたデータを逆量子化する逆量子化手段と、
上記逆量子化手段で逆量子化されたデータを直交逆変換する直交逆変換手段と、
上記可変長復号化手段で復号化されことなく出力されたデータを、上記逆量子化と上記直交逆変換の処理時間だけ遅延させるレジスタと、
上記直交逆変換で得られたデータと上記レジスタで遅延されたデータを逆ブロック化してサンプル面データに変換するデブロッキング手段を有する
ことを特徴とする信号伸長装置。
【請求項８】
可変長符号化データと入力サンプルデータとの識別子を入力ビットストリームから検出する識別子検出工程と、
上記識別子検出工程の検出結果に基づき、上記入力ビットストリームの可変長符号化データに対してのみ可変長復号化処理を行い、上記入力ビットストリームの入力サンプルデータは可変長復号化処理を行うことなく出力する可変長復号化工程と、
上記可変長復号化手段で復号化されたデータを逆量子化する逆量子化工程と、
上記逆量子化手段で逆量子化されたデータを直交逆変換する直交逆変換工程と、
上記可変長復号化手段で復号化されことなく出力されたデータを、上記逆量子化と上記直交逆変換の処理時間だけ遅延させる遅延工程と、
上記直交逆変換で得られたデータと上記遅延されたデータを逆ブロック化してサンプル面データに変換するデブロッキング工程を有する
ことを特徴とする信号伸長方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、信号圧縮装置と信号伸長装置および信号圧縮方法と信号伸長方法に関する。詳しくは、可変長符号化したときの符号量が、入力サンプルデータの符号量よりも多くなるようなときは、可変長符号データの代わりに入力サンプルデータそのものを圧縮データとして使用することにより、平均的な伝送符号量の削減を図れるようにしたものである。
【０００２】
【従来の技術】
現在、ディジタル信号のビットリダクション技術では主としてエントロピー符号化と呼ばれる技術が使われている。エントロピー符号化とは入力信号を周波数変換等の変換を施した後、統計的に多く現れる信号に対してより短い符号長を割り当てることによって符号量を削減しようとするものである。
【０００３】
すなわち信号情報の性質、特に周波数特性をもとに、統計的に多く出現するシンボルには短いコードを割り当て、あまり出現しないシンボルには長いコードを割り当てることにより、平均として符号量を減少させるようにしている。
【０００４】
このようなデータ圧縮処理を実現するためには一般に入力サンプル面（二次元の空間面）の画素情報を単位ブロック化し、それらに対して離散余弦変換（ＤＣＴ）などの直交変換処理を施し、その後量子化したものを可変長符号化（エントロピー符号化）する処理が行なわれる。
【０００５】
【発明が解決しようとする課題】
入力データを可変長符号化するに当たっては、場合によってはＤＣＴ入力の空間面のデータ量よりも符号量が増えることがある。例えば、ＤＣＴ化したときの複数のブロックデータ（例えば６４個の空間面データ）のうち１つが非ゼロで、残り全てがゼロであるようなインパルス信号の場合には、入力サンプル面つまり周波数面データは全てのＤＣＴ係数が非ゼロになってしまう。これは後述する式（１）より明らかである。
【０００６】
このようなインパルス信号は自然画ではあまり見られないが、文字をスーパーインポーズする場合やコンピュータグラフィックス等の画像処理系ではよく見受けられる信号である。このような画像を圧縮するとき、可変長符号化時のゼロラン値（後述する）を稼ぐためには量子化ステップを大きな値にする必要があり、これによって符号量が多くなってしまう。量子化ステップが大きくなることから量子化誤差が目立つようになり、結果として得られる画質が劣化してしまう。
【０００７】
そこで、この発明はこのような従来の課題を解決したものであって、平均的な符号量の減少を図れるようにすると共に、画質劣化も改善できるようにしたものである。
【０００８】
【課題を解決するための手段】
この発明に係る信号圧縮装置は、入力サンプルデータの原サンプル面の画素情報をブロック化して、該ブロック化された画素情報を直交変換する直交変換手段と、直交変換されたデータを量子化する量子化手段と、量子化されたデータを可変長符号化したときの符号長を計測する可変長符号長計測手段と、量子化されたデータを可変長符号長計測手段で符号長を計測するまで遅延させる第１のレジスタと、ブロック化された画素情報を第１のレジスタからの出力される量子化されたデータとタイミング合わせする第２のレジスタと、可変長符号長計測手段の計測結果に基づき、計測された符号長がブロック化された画素情報のデータ量よりも多いときに、第１のレジスタから出力される量子化されたデータの可変長符号化データに代えて、第２のレジスタから出力されるブロック化された画素情報そのものを、可変長符号化データと入力サンプルデータとを識別する識別子とともに出力する可変長符号化手段を有するものである。また、この発明に係る信号圧縮方法は、入力サンプルデータの原サンプル面の画素情報をブロック化して、該ブロック化された画素情報を直交変換する直交変換工程と、直交変換されたデータを量子化する量子化工程と、量子化されたデータを可変長符号化したときの符号長を計測する可変長符号長計測工程と、量子化されたデータを可変長符号長計測手段で符号長を計測するまで遅延させる第１の遅延工程と、ブロック化された画素情報を第１のレジスタからの出力される量子化されたデータとタイミング合わせする第２の遅延工程と、可変長符号長計測工程の計測結果に基づき、計測された符号長がブロック化された画素情報のデータ量よりも多いときに、第１の遅延工程で出力される量子化されたデータの可変長符号化データに代えて、第２の遅延工程で出力されるブロック化された画素情報そのものを、可変長符号化データと入力サンプルデータとを識別する識別子とともに出力する可変長符号化工程を有する
【０００９】
この発明に係る信号伸長装置は、可変長符号化データと入力サンプルデータとの識別子を入力ビットストリームから検出する識別子検出手段と、識別子検出手段の検出結果に基づき、入力ビットストリームの可変長符号化データに対してのみ可変長復号化処理を行い、入力ビットストリームの入力サンプルデータは可変長復号化処理を行うことなく出力する可変長復号化手段と、可変長復号化手段で復号化されたデータを逆量子化する逆量子化手段と、逆量子化手段で逆量子化されたデータを直交逆変換する直交逆変換手段と、可変長復号化手段で復号化されことなく出力されたデータを、逆量子化と直交逆変換の処理時間だけ遅延させるレジスタと、直交逆変換で得られたデータとレジスタで遅延されたデータを逆ブロック化してサンプル面データに変換するデブロッキング手段を有する  ものである。また、この発明に係る信号伸長方法は、可変長符号化データと入力サンプルデータとの識別子を入力ビットストリームから検出する識別子検出工程と、識別子検出工程の検出結果に基づき、入力ビットストリームの可変長符号化データに対してのみ可変長復号化処理を行い、入力ビットストリームの入力サンプルデータは可変長復号化処理を行うことなく出力する可変長復号化工程と、可変長復号化手段で復号化されたデータを逆量子化する逆量子化工程と、逆量子化手段で逆量子化されたデータを直交逆変換する直交逆変換工程と、可変長復号化手段で復号化されことなく出力されたデータを、逆量子化と直交逆変換の処理時間だけ遅延させる遅延工程と、直交逆変換で得られたデータと遅延されたデータを逆ブロック化してサンプル面データに変換するデブロッキング工程を有するものである。
【００１０】
【作用】
請求項１はいわゆるエンコーダに関するものである。エントロピー符号化した可変長符号量が単位入力サンプル面のデータ量よりも多いときは、可変長符号化データに代えて入力サンプルデータそのものを圧縮データとして用いる。入力サンプルデータを用いることにより平均的な符号量が減少する。可変長符号化データと入力サンプルデータとが混在するため、両者の識別を容易にするための識別子（つまりノンコード符号）が付加されてデータストリームとなされる。
【００１１】
請求項７はデコーダに関するものである。入力ビットストリーム中に可変長符号化データと入力サンプルデータとが混在するとき、可変長符号化データに対しては元の非圧縮データに変換する処理が施される。入力サンプルデータに対してはそのまま非圧縮データとして使用する。両者の識別は上述した識別子に基づいて行なわれる。
【００１２】
【実施例】
続いてこの発明に係る信号圧縮装置および信号伸長装置の一例を図面を参照して詳細に説明する。
【００１３】
図１は信号圧縮装置１０の一例を示す。以下説明する例はＭＰＥＧ（Moving Picture coding Experts Group）などで用いられている離散余弦変換（ＤＣＴ変換）を用いたビットリダクションについて説明する。ＭＰＥＧでは実際には動き補償技術を用いてフレーム間差分を求めることも行なっているが、ここでは説明を簡単にするため所謂イントラピクチャの処理（フレーム内処理）について示す。
【００１４】
そのためのエンコード処理の代表例はブロッキング処理、ＤＣＴ変換処理、量子化処理および可変長符号化処理（ＶＬＣ処理）であって、これと対応するように図１に示す信号圧縮装置（エンコーダ）１０にはブロッキング回路２０、ＤＣＴ変換回路３０、量子化回路４０、可変長符号化回路６０などが設けられている。図面を参照しながらそれぞれの処理について説明する。
【００１５】
ＤＣＴ変換処理はある決められた大きさのブロック状の画素について行なわれる。ＪＰＥＧ（Joint Photographic coding Experts Group）やＭＰＥＧ内部の処理単位は８×８画素の１ブロック単位である。それに対し、対象とする入力画像は、例えば、ＭＰＥＧ２のＭＰ＠ＭＬでは１フレーム７２０×４８０画素から構成されるため、図２のように入力画像（フレームデータ）をブロック（８×８画素）ごとに分割する処理が必要となる。
【００１６】
ブロッキング処理を実現するブロッキング回路２０の一例を図３に示す。ブロッキング回路２０は２つのＲＡＭ２１，２２を有する。一方例えばＲＡＭ２２が書き込み状態にあるときは、もう片方のＲＡＭ２１は読み出し状態に制御される。書き込み側は所謂ラスタスキャンのデータをメモリ上に格納するアドレスを受け、読み出し側は図２のようなブロックを構成するようなアドレスを受ける。これらのアドレスは書き込みアドレス発生回路２３，読み出しアドレス発生回路２４にて発生される。これらの発生回路２３，２４は周知のように適当なカウンタ回路とＲＯＭで実現できる。
【００１７】
ＲＡＭ２２が書き込み状態にあるときは、ＲＡＭ２１が読み出し状態となるようにアドレス切り替え用のスイッチＳＷａ，ＳＷｂが制御され、また書き込みパルス（イネーブルパルス）を与えるスイッチＳＷｃが制御される。ＲＡＭ２１，２２からの出力もスイッチＳＷｄで切り替えられる。これらの切り替えは同期して行なわれるものであって、端子２５に供給される切り替えパルスによって制御される。
【００１８】
入力画像データを分割したブロックについてそれぞれＤＣＴ変換が行なわれる。ＤＣＴ変換は二次元のフーリエ変換と同様に、二次元的な画素情報（空間面情報）から二次元的な周波数成分情報（周波数面情報）への変換である。図４（Ａ）に示すように各画素に二次元配列変数ｆ（＊，＊）を割り当てたとき、図４（Ｂ）のデータ（ＤＣＴ係数）Ｆ（＊，＊）に変換するには式（１）に示す演算を行なえばよいことが知られている。
【００１９】
【数１】
0003992303.tif 000002
【００２０】
この結果、ＤＣＴ係数Ｆ（＊，＊）は左から右方向に行くに従い水平周波数の高い成分が、上から下方向に行くに従い垂直周波数の高い成分が現れることになる。Ｆ（０，＊）は垂直周波数がゼロ即ちＤＣであり、Ｆ（＊，０）は水平周波数がゼロ即ちＤＣとなる。Ｆ（０，０）は水平、垂直周波数の両方がＤＣとなり、そのブロックの画素平均値となる。式（１）より分かるように無理数を乗じて加算するため、ＤＣＴ係数は入力画像データのビット数よりも出力ビット数が長くなる。因みに、ＭＰＥＧでは入力のダイナミックレンジ８ビットに対し、出力のダイナミックレンジは１２ビットになる。ＤＣＴ変換回路の具体的なハード構成に付いては高速アルゴリズム等がすでに発表されているので、その説明は割愛する。
【００２１】
自然画のような入力画像では、画像データの周波数分布の特徴により、ＤＣＴ変換の結果は成分に偏りが出る。例えばＤＣ等の低い周波数成分に振幅の大きなデータが集まり、高い周波数成分はゼロに近い小さな値となる。ＤＣ係数以外つまりＡＣ係数は一般にラプラス分布を示し、振幅の小さいものの割合が大きくなる。この性質（出力の偏り）を利用してビットリダクションが行なわれるが、通常このビットリダクションの前に量子化処理が行なわれる。
【００２２】
量子化とはＤＣＴ係数をある数で割って丸める処理を言う。図５は量子化器４０の具体例である。量子化器４０には除算器４２が設けられ、端子４０ａからの入力データ（ＤＣＴ係数：絶対値）が端子４０ｂに与えられた量子化ステップ値で割り算され、除算結果である商と小数点以下の情報がそれぞれ丸め回路４４に供給される。
【００２３】
多くの場合丸めとして四捨五入が使われている。除算処理や丸め処理は符号つき絶対値の方が扱い易いため、この実現例では符号つき絶対値で扱っている。したがって入力した符号データはそのまま出力され、また除算器４２で割ったときに得られる小数点の絶対値が０．５以上ならば加算器４５において商の絶対値が１だけ増やされ、０．５未満ならばそのままにして整数値として出力される。スイッチ４６はこの１若しくは０の値を加算器４５に与えるためのスイッチであり、小数点情報に基づいて制御される。
【００２４】
量子化することにより自然画のような画では、図４（Ｂ）に示すＤＣＴ係数の高周波成分に相当する量子化レベル（量子化した結果）はゼロが頻出する。その結果、エンコードした後の符号量は減少する。そして後述するように量子化のための割る数（量子化ステップ）を増減して所望の符号量になるように制御される。量子化ステップを大きくすると符号量は減少する反面、エンコード後の出力画像の画質が劣化する。これは量子化処理で量子化誤差を持ち、その誤差は量子化ステップに比例するからである。
【００２５】
量子化レベルは図１に示すように可変長符号化される。ＭＰＥＧ等ではＤＣ以外の量子化レベルについてゼロランとエントロピー符号化を組み合わせた二次元符号化で符号化（ＶＬＣ）を行なっている。二次元のＤＣＴ係数は図６に示すようにジグザグスキャンされて一次元に並べ変えられる。一次元データは次のようになる。
Ｆ（０，１），Ｆ（１，０），Ｆ（２，０），Ｆ（１，１），Ｆ（０，２），
Ｆ（０，３），Ｆ（１，２），・・・・・・・・
Ｆ（５，７），Ｆ（６，７），Ｆ（７，６），Ｆ（７，７）
このジグザグスキャンによって図７のようにゼロが連続して現れるが、連続するゼロの個数が符号化される。つまりゼロラン符号化が行なわれる。このゼロラン符号化によって効率良く圧縮できる。
【００２６】
さらに、自然画のような画では非ゼロの成分は振幅の小さいものほど出現する確率が高くなるような出力の偏りが生ずるためデータの符号化に当たってはエントロピー符号化が利用される。エントロピー符号化では振幅の小さいものに対してより短い符号語を割り当て、振幅の大きいものに対してはより長い符号語を割り当てる。
【００２７】
そして、ゼロの続く数とその次の非ゼロ値がエントロピー符号化される。
二次元符号化のときに使用されるＶＬＣテーブルの一例を図８に示す。このＶＬＣテーブルは自然画等の統計データを元に作られている。ＥＯＢとは「この係数以降ジグザグスキャンの最後まで非ゼロ値は出ない」ことを表す。量子化レベルが図７のようなデータ値であるとき、ジグザグスキャンした後のデータは次のような配列となる。
「０，０，０，１，−２，０，０，０，−１，０，１，０，０，０，−１，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０」
これを（ラン、非ゼロ値）のシンボルで表すと、
「（３，１），（０，−２），（３，−１），（１，１），（３，−１），（ＥＯＢ）」
となる。このシンボルをＶＬＣテーブルを利用してバイナリー表示すると、
「００１１１０  ０１００１  ００１１１１  ０１１０  ００１１１１  １０」となる。これをＭＳＢビットを先頭ビットとして８ビットずつ切り出しヘキサデシマル表示すると、
「３９２７ｂ１ｆ０」
となる。これがビットストリームとなる。
【００２８】
以上のような可変長符号化処理を行なうための可変長符号化回路（ＶＬＣ回路）６０の具体例を図９に示す。
【００２９】
図９において、ゼロランカウンタ６２は入力データ（量子化レベル）がゼロである事象が連続した回数をカウントするもので、入力データが非ゼロ値のときに同期クリアされる。したがってノア回路６１より出力された入力データでカウントアップし、オア回路６２より出力された入力データでクリアされる。その結果、ゼロランカウンタ６２の出力である「ゼロラン値」と入力データそのものとで二次元事象が構成される。
【００３０】
この二次元事象は２つのＲＯＭ６４，６５に与えられ、符号長ＲＯＭ６４からは二次元事象の符号長が出力され、符号語ＲＯＭ６５からは二次元事象の符号語がビット詰めして出力される。符号長データはアドレス発生回路６６に入力される。
【００３１】
アドレス発生回路６６からは符号長データの積算値がアドレスデータとして出力される。アドレス発生回路６６は、図示しないが適当な累算器と簡単なロジックで構成されたものを使用することができる。
【００３２】
アドレスデータによってＲＡＭ６８のアドレスがコントロールされると共にバレルシフタ６７のシフト量が制御される。バレルシフタ６７によって直前の符号語の最後に、現在の符号語の先頭が繋がるように符号語ＲＯＭ６５からの出力符号語がシフトされる。
【００３３】
ＲＡＭ６８はread-modify-write用として使用される。つまり、頭出しされた現在の符号語と、直前の符号語が書かれたアドレスのＲＡＭデータをフィードバックしてビットごとにセレクトする。つまり、直前の符号の占めるビット分はフィードバック系側に、それ以外のビットは符号語ＲＯＭ６５側に切り替わる。こうして、直前の符号に結合した形の現在のＶＬＣデータがＲＡＭ６８に書き込まれる。
【００３４】
この処理がＥＯＢまで繰り返えされてＲＡＭ６８にエンコードしたビットストリームが蓄えられ、後にＲＡＭ６８の内容を順次読み出すことによって出力ビットストリームが得られる。
【００３５】
上述したようにこの発明では取り扱う入力画像によっては、可変長符号化された符号量が入力サンプルデータ量よりも多くなることが予想され、その場合には平均的な符号量が増えてしまうことを考慮して、可変長符号化された符号量と入力サンプルデータ量との多少をブロック単位で比較し、可変長符号化された符号量が入力サンプルデータ量を越えるときには入力サンプルデータそのもの（圧縮されていない生のデータつまりノンコーディックデータであって固定長）を伝送データとして使用するようにしたものである。
【００３６】
その結果、伝送データを構成するビットストリームにはコーディックデータ（（ＤＣＴ＋量子化＋ＶＬＣ）処理されたブロックデータ）と固定長のノンコーディックデータとが混在することになり、両者を識別するための識別子（ノンコード符号という）がビットストリーム中に多重される。
【００３７】
仮にこのノンコード符号の符号長をＡビットとし、ブロックのデータサンプル数を８×８＝６４、入力サンプルデータは８ビットであるとする。そうした場合、可変長符号化した後の符号長を常にモニタし、もし、この符号長Ｘが、Ｘ〉Ａ＋６４×８
であるときは、ノンコード符号Ａと共にノンコードデータ（入力サンプルデータ）（＝６４×８ビット）を伝送するようにしたものである。ノンコード符号Ａとしては１ビット以上の適当なビット数を当てることができる。
【００３８】
以上の処理を実現するため、図１に示すように可変長符号化回路６０の前段にはＶＬＣ符号長計測回路８０が設けられる。そして、可変長符号化回路６０には時間合わせのレジスタ５０を通過した量子化レベルと、さらにブロッキング回路２０のブロックデータ（ノンコーディックデータ）が時間合わせのレジスタ５５を介してそれぞれ供給される。レジスタ５０は計測回路８０で符号長を測定するまで入力データを遅延させるためのもので、レジスタ５５はレジスタ５０の出力データとタイミングを合わせるために使用される。
【００３９】
可変長符号化回路６０ではノンコード処理に応じてノンコーディックデータとコーディックデータとの切り替えとノンコード符号Ａの多重処理が行なわれる。そのため、ノン−コード処理に対応して可変長符号化回路６０には図９のように複数のスイッチ７０，７１が設けられる。端子８０ａには計測回路８０より出力されたノンコード切り替え信号が供給される。端子７２には固定長符号が与えられる。そして、可変長符号長が長いときには符号語ＲＯＭ６５からのノンコード符号Ａがスイッチ７０によって選択され、符号長ＲＯＭ６４側ではスイッチ７１を用いてノンコード用の固定符号長に切り替えられる。レジスタ５５より出力されたノンコーディックデータがスイッチ７０によって選択される。
【００４０】
図１０は上述した可変長符号長計測回路８０の具体例である。この計測回路８０にもゼロランカウンタ８２が設けられ、ノア回路８１の出力でカウントアップされ、オア回路８３の出力でリセットされることで、ゼロラン値が求められる。このゼロラン値と非ゼロ値が符号長ＲＯＭ８４に供給されて入力データの符号長が算出される。符号長を示すデータはブロック長積算回路８５に積算され、その値が判定基準Ｘと比較器８６で比較され、その比較結果がノンコード切り替え信号となる。
【００４１】
コーディックデータとノンコーディックデータとが混在したビットストリームよりデータをデコードするための処理系が図１１以降に示されている。図１１はこの発明に適用できる信号伸長装置（デコーダ）１００の具体例である。
【００４２】
デコード側ではノン−コード符号をビットストリーム上に認めた場合は一般のデコードの処理をせずにそのままサンプルデータとして出力することにより、さきのビットストリームをデコードすることができる。
【００４３】
そのため、図１１に示すように入力ビットストリームは可変長復号化回路（ＶＬＤ回路）１１０で解読され、通常のデータ（コーディックデータ）であるときは逆量子化器１２０を経て、離散余弦逆変換回路（ＩＤＣＴ回路）１４０に入って空間面のブロックデータに変換される。
【００４４】
これに対してノンコーディックデータであるときはＦＩＦＯ構成のレジスタ１４５で上述した通常処理の時間合わせのために所定時間遅延された後セレクタ１１９に送られる。
【００４５】
ＶＬＤ回路１１０でノンコード符号Ａが検出されたときはセレクタ１１９がノンコード側に切り替えられてノンコードで伝送されたブロックデータがデブロッキング回路１５０に送られる。ノンコード符号Ａが検出されないときはセレクタ１１９が通常処理系に切り替えられて通常処理系の結果がデブロッキング回路１５０に導びかれる。
【００４６】
ＶＬＤ回路１１０では量子化後のデータが再現される。先の例でいえば、
「３９２７ｂ１ｆ０」
の入力に対してジグザグスキャンした後のデータ
「０，０，０，１，−２，０，０，０，−１，０，１，０，０，０，−１，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０，０」
が出力される。
【００４７】
図１２はこのＶＬＤ回路１１０の一例を示す。入力データはＲＡＭ１１１に蓄えられる。１符号語ずつデコードしていくため、今までデコードした総符号長より、現在デコードすべき符号語のアドレスをアドレス発生回路１１５によって求め、そのアドレス値がＲＡＭ１１１に与えられる。次に今までデコードした総符号長より現在デコードすべき符号語の先頭位置がアドレス発生回路１１５で分かるので、これを求めてバレルシフタ１１２に与え、現在デコードすべき符号語の頭出しが行なわれる。頭出しされた符号語は２つのＲＯＭ１１３，１１４に供給される。一方のＲＯＭ１１３は符号語から符号長を出力する逆符号長ＲＯＭであり、もう一方のＲＯＭ１１４は符号語から二次元事象であるゼロラン値と非ゼロ値を出力する逆符号語ＲＯＭである。
【００４８】
逆符号長ＲＯＭ１１３により現在の符号語の符号長を求めて、アドレス発生回路１１５に与える。アドレス発生回路１１５では次の符号語のＲＡＭ１１１上のアドレスとバレルシフタ１１２へのシフト量が算出される。逆符号語ＲＯＭ１１４により求められたゼロラン値はゼロランカウンタ１１６にロードされ、このカウンタ１１６がデクリメントして０になるまでセレクタ１１８を”０”側に倒して、ゼロラン値の個数に相当するゼロを出力する。
【００４９】
ゼロランカウンタ１１６がゼロになるとセレクタ１１８が”１”側となって逆符号語ＲＯＭ１１４から出力される非ゼロ値がセレクトされて出力される。
ゼロランカウンタ１１６が動作している間はアドレス回路１１５は動作しないようにゼロランカウンタ１１６の出力で制御される。
【００５０】
一方、ノンコード符号検出回路１１７でノンコード符号Ａの存在が確認されると、それ以降のデータブロックは全て固定長のデータであると判断し、スイッチ１２１が切り替えられてアドレス発生回路１１５には固定符号長（固定値）が送られる。これと同時に、スイッチ１１８がバレルシフタ１１２側に切り替えられてバレルシフタ出力がそのまま出力される。つまりノンコーディックデータが選択される。
【００５１】
ノンコード符号検出回路１１７はブロック毎にクリアされるようにし、一度ノンコードであると判断したら、当該ブロックが終了するまでノンコード処理をが継続される。
【００５２】
逆量子化はエンコード側の量子化と逆の処理である。ＶＬＤ回路１１０からの出力に量子化ステップを乗ずることによって逆量子化出力を得ることができる。図１３は逆量子化回路１２０の具体例であって乗算器１２２のみで構成される。端子１２４よりデコードされた量子化データ（絶対値データ）が供給され、端子１２６よりの量子化ステップを乗算することによって逆量子化データが求められる。
【００５３】
ＩＤＣＴ処理はＤＣＴ処理とは逆の処理であり、この逆処理により周波数面の情報であったブロックデータから空間面のブロックデータが得られる。ＩＤＣＴ処理は（２）式に示す演算で実現できる。
【００５４】
【数２】
0003992303.tif 000003
【００５５】
デブロッキング処理はブロックデータの形からフレームデータに戻す処理であって、この処理によって再生画像データが得られる。
【００５６】
なお、上述した処理は現在使われているＭＰＥＧ等の符号化にすぐ使えるわけではない。というのは上述したノン−コード符号がビットストリーム上に定義されていないからである。これを勝手に定義するのは互換性の点で認められない。したがって上述した処理によって得られるビットストリームは新フォーマットのビットストリームである。
【００５７】
上述した処理の変形例を以下に説明する。
【００５８】
１．上述した説明ではＤＣＴブロック毎に圧縮するか圧縮しないかを判断したが、その判断単位としてはマクロブロック単位、スライス単位、ピクチャ単位などを利用できる。
【００５９】
２．上述した説明ではイントラ処理について述べていたが、ＭＰＥＧ等でいうところのインター処理（フレーム間処理）にも適用できる。
【００６０】
３．上述した説明では、画像信号のビットリダクションについて述べたが、音声等、他の信号に関するビットリダクションにも適用できる。
【００６１】
４．上述した説明では、直交変換処理としてＤＣＴを用いた、いわゆる変換符号化によるビットリダクションについて述べたが、エントロピー符号化を用いたものならば全てに適用可能である。
【００６２】
５．上述した説明では、エンコード側（圧縮装置側）ではブロッキング処理が含まれているが、必要に応じてブロッキング処理やデブロッキング処理を省くことも可能である。
【００６３】
【発明の効果】
以上説明したようにこの発明では、エントロピー符号化を利用したビットリダクションによる信号圧縮・伸長処理において、符号量がある値を越える部分については、入力データそのものを伝送するようにしたため、平均的な符号長を削減でき、伝送効率を改善できる特徴を有する。したがってこの発明は画像などの圧縮・伸長装置に適用して極めて好適である。
【図面の簡単な説明】
【図１】この発明に係る信号圧縮装置の一例を示す系統図である。
【図２】ブロッキング処理を説明するための図である。
【図３】ブロッキング回路の一例を示す系統図である。
【図４】ＤＣＴ処理とＩＤＣＴ処理の説明図である。
【図５】量子化器の一例を示す系統図である。
【図６】ジグザグスキャン例を示す図である。
【図７】ジグザグスキャン時の具体的数値例を示す図である。
【図８】二次元符号化のためのＶＬＣテーブル例を示す図である。
【図９】可変長符号化回路の一例を示す系統図である。
【図１０】可変長符号長計測回路の一例を示す系統図である。
【図１１】この発明を適用した信号伸長装置の一例を示す系統図である。
【図１２】可変長符号化回路の一例を示す系統図である。
【図１３】逆量子化器の一例を示す系統図である。
【符号の説明】
１０  信号圧縮装置
３０  ＤＣＴ回路
４０  量子化器
６０  可変長符号化回路
８０  符号長計測回路
６２  ゼロランカウンタ
６４  符号長ＲＯＭ
６５  符号語ＲＯＭ
１００  信号伸長回路
１１０  可変長復号化回路
１２０  逆量子化器
１４０  ＩＤＣＴ回路
【図１】
0003992303.tif 000004
【図２】
0003992303.tif 000005
【図３】
0003992303.tif 000006
【図４】
0003992303.tif 000007
【図５】
0003992303.tif 000008
【図６】
0003992303.tif 000009
【図７】
0003992303.tif 000010
【図８】
0003992303.tif 000011
【図９】
0003992303.tif 000012
【図１０】
0003992303.tif 000013
【図１１】
0003992303.tif 000014
【図１２】
0003992303.tif 000015
【図１３】
0003992303.tif 000016