(57)【要約】【課題】  小さな回路規模で、可変長符号化処理を高速に実行できる信号処理装置を提供する。【解決手段】  入力される互いに異なるシンボル・データに対応するハフマン符号が存在するか否かをハフマン符号判定器１４〜１６により並列して判定し、その判定結果に基づいてハフマン・テーブル２１に入力するシンボル・データを選択するようにして、１サイクル、かつ１つのハフマン・テーブル２１のみで可変長符号化を実行できるようにする。【選択図】  図１
2005175944.tif 000002
【特許請求の範囲】
【請求項１】
入力される２つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブルと、
シンボル・データを構成する第１のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算手段と、
上記第２のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算手段と、
上記第１のデータと上記第２のデータとの組み合わせ、上記第１のデータと上記第１の減算手段の出力との組み合わせ、及び上記第２のデータと上記第２の減算手段の出力との組み合わせについて、対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かの判定を並列して行う判定手段と、
上記判定手段による判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算手段の出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算手段の出力の一方を選択する制御手段とを備えることを特徴とする信号処理装置。
【請求項２】
上記判定手段は、
上記第１のデータと上記第２のデータとの組み合わせに対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かを判定する第１の符号判定手段と、
上記第１のデータと上記第１の減算手段の出力との組み合わせに対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かを判定する第２の符号判定手段と、
上記第２のデータと上記第２の減算手段の出力との組み合わせに対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かを判定する第３の符号判定手段とを有することを特徴とする請求項１記載の信号処理装置。
【請求項３】
上記第１のデータは、所定の大きさのブロックに分割された画像データにて直交変換され量子化されたブロック内の連続するゼロ係数の個数を表すデータであり、
上記第２のデータは、当該ブロック内の非ゼロ係数を表すデータであることを特徴とする請求項１又は２記載の信号処理装置。
【請求項４】
入力される３つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブルと、
シンボル・データを構成する第１のデータ及び上記第１のデータとは異なる第３のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算手段と、
上記第２のデータ及び上記第３のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算手段と、
上記第１のデータと上記第２のデータと上記第３のデータとの組み合わせ、上記第１のデータと上記第１の減算手段の出力と上記第３のデータとの組み合わせ、及び上記第２のデータと上記第２の減算手段の出力と上記第３のデータとの組み合わせについて、対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かの判定を並列して行う判定手段と、
上記判定手段による判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算手段の出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算手段の出力の一方を選択する制御手段とを備えることを特徴とする信号処理装置。
【請求項５】
上記判定手段は、
上記第１のデータと上記第２のデータと上記第３のデータとの組み合わせに対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かを判定する第１の符号判定手段と、
上記第１のデータと上記第１の減算手段の出力と上記第３のデータとの組み合わせに対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かを判定する第２の符号判定手段と、
上記第２のデータと上記第２の減算手段の出力と上記第３のデータとの組み合わせに対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かを判定する第３の符号判定手段とを有することを特徴とする請求項４記載の信号処理装置。
【請求項６】
上記第１のデータは、所定の大きさのブロックに分割された画像データにて直交変換され量子化されたブロック内の連続するゼロ係数の個数を表すデータであり、
上記第２のデータは、当該ブロック内の非ゼロ係数を表すデータであり、
上記第３のデータは、当該ブロック内の最後の非ゼロ係数であることを表すデータであることを特徴とする請求項４又は５記載の信号処理装置。
【請求項７】
上記信号処理装置の出力が、ＭＰＥＧ−４符号化方式で符号化されたビットストリームであることを特徴とする請求項６記載の信号処理装置。
【請求項８】
上記シンボル・データを固定長符号に符号化する固定長符号化手段をさらに備え、
上記制御手段は、上記判定手段による判定結果に応じて、上記可変長符号化テーブルの出力又は上記固定長符号化手段の出力の一方を選択することを特徴とする請求項１〜７の何れか１項に記載の信号処理装置。
【請求項９】
上記シンボル・データを符号化して得られた符号化データに、上記判定手段による判定結果に応じて、所定の符号を付加する符号付加手段をさらに備えることを特徴とする請求項１〜８の何れか１項に記載の信号処理装置。
【請求項１０】
上記判定手段は、入力される上記組み合わせにおける入力値と、当該入力値に応じた所定の定数との大小関係を比較し、比較結果に基づいて当該組み合わせに対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かを判定することを特徴とする請求項１〜９の何れか１項に記載の信号処理装置。
【請求項１１】
シンボル・データを構成する第１のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算工程と、
上記第２のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算工程と、
上記第１のデータと上記第２のデータとの組み合わせ、上記第１のデータと上記第１の減算工程での出力との組み合わせ、及び上記第２のデータと上記第２の減算工程での出力との組み合わせについて、対応する可変長符号化データが、入力される２つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブル内に存在するか否かの判定を並列して行う判定工程と、
上記判定工程での判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算工程での出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算工程での出力の一方を選択する制御工程とを有することを特徴とする信号処理方法。
【請求項１２】
シンボル・データを構成する第１のデータ及び上記第１のデータとは異なる第３のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算工程と、
上記第２のデータ及び上記第３のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算工程と、
上記第１のデータと上記第２のデータと上記第３のデータとの組み合わせ、上記第１のデータと上記第１の減算工程での出力と上記第３のデータとの組み合わせ、及び上記第２のデータと上記第２の減算工程での出力と上記第３のデータとの組み合わせについて、対応する可変長符号化データが、入力される３つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブル内に存在するか否かの判定を並列して行う判定手段と、
上記判定工程での判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算工程での出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算工程での出力の一方を選択する制御工程とを有することを特徴とする信号処理方法。
【請求項１３】
シンボル・データを構成する第１のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算ステップと、
上記第２のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算ステップと、
上記第１のデータと上記第２のデータとの組み合わせ、上記第１のデータと上記第１の減算ステップの出力との組み合わせ、及び上記第２のデータと上記第２の減算ステップの出力との組み合わせについて、対応する可変長符号化データが、入力される２つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブル内に存在するか否かの判定を並列して行う判定ステップと、
上記判定ステップでの判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算ステップの出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算ステップの出力の一方を選択する制御ステップとをコンピュータに実行させるためのプログラム。
【請求項１４】
シンボル・データを構成する第１のデータ及び上記第１のデータとは異なる第３のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算ステップと、
上記第２のデータ及び上記第３のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算ステップと、
上記第１のデータと上記第２のデータと上記第３のデータとの組み合わせ、上記第１のデータと上記第１の減算ステップの出力と上記第３のデータとの組み合わせ、及び上記第２のデータと上記第２の減算ステップの出力と上記第３のデータとの組み合わせについて、対応する可変長符号化データが、入力される３つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブル内に存在するか否かの判定を並列して行う判定ステップと、
上記判定ステップでの判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算ステップの出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算ステップの出力の一方を選択する制御ステップとをコンピュータに実行させるためのプログラム。
【請求項１５】
請求項１３又は１４記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理装置、信号処理方法、記録媒体及びプログラムに関し、特に、静止画像や動画像を圧縮符号化する可変長符号化装置に用いて好適なものである。
【背景技術】
【０００２】
従来から、静止画像や動画像の圧縮符号化技術の一部として、ランレングス／カテゴリ符号化及び可変長符号化によるエントロピー符号化技術を使用する方式が良く知られている。この技術は、国際標準であるＪＰＥＧ（Joint Photographic Expert Group）符号化方式及びＭＰＥＧ−１／−２（Moving Picture Experts Group）符号化方式においても採用されている。これらの符号化方式において可変長符号化が施される事象は、ランレングス及びレベルと呼ばれる２次元の事象であり、この２次元の事象に対してハフマン符号を割り当てることによりエントロピー符号化を実現している。なお、ランレングス及びレベルの２次元の事象をシンボル・データと呼ぶこととする。
【０００３】
さらに、近年の動画像の圧縮符号化技術に使われており注目されている技術として、３次元の事象に対してハフマン符号を割り当てるものがある。この技術は、すでにＩＴＵ−Ｔ勧告Ｈ．２６３やＭＰＥＧ−４と呼ばれる符号化方式によって標準化されている。
【０００４】
３次元の事象としては、２次元での符号化方式で用いられるランレングス及びレベルに加えて、ラストと呼ばれるものが考慮される。ここで、ラストは、ＤＣＴ（Discrete Cosine Transform）ブロック内において最後の有意係数であるか否かを示すものである。このため、同じランレングス及びレベルの値であっても、ＤＣＴブロック内において最後の有意係数であるか否かによって、割り当てられるハフマン符号が異なる。なお、ランレングス、レベル及びラストの３次元の事象についても同様にシンボル・データと呼ぶこととする。
【０００５】
また、ＭＰＥＧ−４符号化方式においては、予め定められたハフマン符号表の中にシンボル・データに対応するハフマン符号が存在しない場合には、エスケープと呼ばれる固定長符号を割り振る。これは、ＭＰＥＧ−１／−２符号化方式においても同様である。
しかしながら、ＭＰＥＧ−４符号化方式においては、シンボル・データに対応するハフマン符号がハフマン符号表に存在しない場合には、初めにシンボル・データのレベルの値からハフマン符号表に存在する最大のレベルの値を減算したシンボル・データを新たなシンボル・データとして、再度ハフマン符号表を検索する。
【０００６】
そして、検索を行った結果、当該シンボル・データに対応するハフマン符号がハフマン符号表に存在する場合には、該当するハフマン符号を割り当てる。一方、当該シンボル・データに対応するハフマン符号がハフマン符号表に存在しない場合には、更にランレングスの値に対してハフマン符号表に存在する最大ランレングス＋１の値を減算したシンボル・データを新たなシンボル・データとして、再度ハフマン符号表を検索する。そして、検索を行った結果、当該シンボル・データに対応するハフマン符号がハフマン符号表に存在する場合には該当するハフマン符号を割り当て、存在しない場合には固定長符号を割り当てる。
【０００７】
ＭＰＥＧ−４符号化方式に対応した従来の可変長符号化装置の構成を図６に示す。
図６に示す可変長符号化装置には、上述したＲＵＮ（ランレングス）、ＬＥＶＥＬ（レベル）及びＬＡＳＴ（ラスト）を表すシンボル・データが入力される。
【０００８】
レベル減算部１００は、シンボル・データを構成するＬＥＶＥＬの値から、ハフマン符号表に存在する最大のＬＥＶＥＬ（ＬＭＡＸ）の値を減算したＬＥＶＥＬ＋を出力する。ランレングス減算部１０２は、シンボル・データを構成するＲＵＮの値から、ハフマン符号表に存在する最大ＲＵＮ＋１（ＲＭＡＸ＋１）の値を減算したＲＵＮ＋を出力する。固定長符号化器１０７は、ＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴを所定のフォーマットに従って固定長符号化し、得られた固定長符号を出力する。
【０００９】
まず、第１のサイクルにおいて、制御部１０８は、選択器１０４、１０５を制御し、ＲＵＮ、ＬＥＶＥＬ、及びＬＡＳＴをハフマン・テーブル１０６に入力する。入力されたＲＵＮ、ＬＥＶＥＬ、及びＬＡＳＴに対応するハフマン符号語がハフマン・テーブル１０６に存在する場合には、制御部１０８は、選択器１０９及び出力制御部１１０を制御して、該当するハフマン符号を出力する。
【００１０】
一方、第１のサイクルにおいて入力されたＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴに対応するハフマン符号語がハフマン・テーブル１０６に存在しない場合には、第２のサイクルにおいて、制御部１０８は、選択器１０４、１０５を制御し、ＲＵＮ、ＬＥＶＥＬ＋、及びＬＡＳＴをハフマン・テーブル１０６に入力する。入力されたＲＵＮ、ＬＥＶＥＬ＋、及びＬＡＳＴに対応するハフマン符号語がハフマン・テーブル１０６に存在する場合には、制御部１０８は、選択器１０９及び出力制御部１１０を制御して、該当するハフマン符号にESCAPE（エスケープ）符号“00000110”を付加して出力する。
【００１１】
第２のサイクルにおいて入力されたＲＵＮ、ＬＥＶＥＬ＋、及びＬＡＳＴに対応するハフマン符号語がハフマン・テーブル１０６に存在しない場合には、第３のサイクルにおいて、制御部１０８は、選択器１０４、１０５を制御し、ＲＵＮ＋、ＬＥＶＥＬ、及びＬＡＳＴをハフマン・テーブル１０６に入力する。入力されたＲＵＮ＋、ＬＥＶＥＬ、及びＬＡＳＴに対応するハフマン符号語がハフマン・テーブル１０６に存在する場合には、制御部１０８は、選択器１０９及び出力制御部１１０を制御して、該当するハフマン符号にESCAPE符号“000001110”を付加して出力する。
【００１２】
第３のサイクルにおいて入力されたＲＵＮ＋、ＬＥＶＥＬ、及びＬＡＳＴに対応するハフマン符号語がハフマン・テーブル１０６に存在しない場合には、制御部１０８は、選択器１０９及び出力制御部１１０を制御して、固定長符号化器１０７からの固定長符号にESCAPE符号“000001111”を付加して出力する。
【００１３】
以上に説明した、図６に示した従来の可変長符号化装置では、可変長符号化装置に入力されたＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴに対応するハフマン符号が存在しない場合には、１つのシンボル・データの符号化処理に、２サイクル以上の時間を要してしまうという問題がある。
【００１４】
この問題の解決を図った従来の可変長符号化装置の構成を図７に示す。図７に示す可変長符号化装置は、１つのシンボル・データを１サイクルで符号化するものであり、３つのハフマン・テーブル２０４、２０５、２０６を有する。
レベル減算部２００及びランレングス減算部２０２は、図６に示したレベル減算部１００及びランレングス減算部１０２と同様の機能を有する。
【００１５】
第１のハフマン・テーブル２０４は、ＲＵＮ、ＬＥＶＥＬ、及びＬＡＳＴに対応するハフマン符号語を検索し、ハフマン符号語があればそれを出力する。第２のハフマン・テーブル２０５は、ＲＵＮ、ＬＥＶＥＬ＋、及びＬＡＳＴに対応するハフマン符号語を検索し、ハフマン符号語があればそれを出力する。第３のハフマン・テーブル２０６は、ＲＵＮ＋、ＬＥＶＥＬ、及びＬＡＳＴに対応するハフマン符号語を検索し、ハフマン符号語があればそれを出力する。
【００１６】
固定長符号化器２０７は、ＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴを所定のフォーマットで固定長符号化し、得られた固定長符号を出力する。
制御部２０８は、ハフマン・テーブル２０４〜２０６の検索結果に応じて、選択器２０９を制御し、各ハフマン・テーブル２０４〜２０６の出力及び固定長符号化器１０７の出力の中からいずれか１つを選択して出力する。
【００１７】
すなわち、図７に示した可変長符号化装置は、図６に示した可変長符号化装置において１サイクル毎に順次行っていた処理を、３つのハフマン・テーブル２０４〜２０６を用いて同時に行うことで１つのシンボル・データを１サイクルで符号化している。上記内容に参考になる文献として非特許文献１がある。
【００１８】
【非特許文献１】ＩＳＯ  １４４９６−２
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかしながら、１つのシンボル・データを１サイクルで符号化する図７に示した従来の可変長符号化装置は、３つのハフマン・テーブル２０４〜２０６を備える必要があり、回路規模が増大してしまうという問題がある。また、図６に示した従来の可変長符号化装置で説明したように、１つのハフマン・テーブル１０６のみを用いて可変長符号化装置を構成した場合には、１つのシンボル・データの符号化処理に２サイクル以上の時間を要してしまうおそれがあるという問題がある。
【００２０】
本発明は、このような問題に鑑みてなされたものであり、小さな回路規模で、可変長符号化処理を高速に実行できる信号処理装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の信号処理装置は、入力される２つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブルと、シンボル・データを構成する第１のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算手段と、上記第２のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算手段と、上記第１のデータと上記第２のデータとの組み合わせ、上記第１のデータと上記第１の減算手段の出力との組み合わせ、及び上記第２のデータと上記第２の減算手段の出力との組み合わせについて、対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かの判定を並列して行う判定手段と、上記判定手段による判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算手段の出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算手段の出力の一方を選択する制御手段とを備えることを特徴とする。
また、本発明の信号処理装置は、入力される３つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブルと、シンボル・データを構成する第１のデータ及び上記第１のデータとは異なる第３のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算手段と、上記第２のデータ及び上記第３のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算手段と、上記第１のデータと上記第２のデータと上記第３のデータとの組み合わせ、上記第１のデータと上記第１の減算手段の出力と上記第３のデータとの組み合わせ、及び上記第２のデータと上記第２の減算手段の出力と上記第３のデータとの組み合わせについて、対応する可変長符号化データが上記可変長符号化テーブル内に存在するか否かの判定を並列して行う判定手段と、上記判定手段による判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算手段の出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算手段の出力の一方を選択する制御手段とを備えることを特徴とする。
本発明の信号処理方法は、シンボル・データを構成する第１のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算工程と、上記第２のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算工程と、上記第１のデータと上記第２のデータとの組み合わせ、上記第１のデータと上記第１の減算工程での出力との組み合わせ、及び上記第２のデータと上記第２の減算工程での出力との組み合わせについて、対応する可変長符号化データが、入力される２つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブル内に存在するか否かの判定を並列して行う判定工程と、上記判定工程での判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算工程での出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算工程での出力の一方を選択する制御工程とを有することを特徴とする。
また、本発明の信号処理方法は、シンボル・データを構成する第１のデータ及び上記第１のデータとは異なる第３のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算工程と、上記第２のデータ及び上記第３のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算工程と、上記第１のデータと上記第２のデータと上記第３のデータとの組み合わせ、上記第１のデータと上記第１の減算工程での出力と上記第３のデータとの組み合わせ、及び上記第２のデータと上記第２の減算工程での出力と上記第３のデータとの組み合わせについて、対応する可変長符号化データが、入力される３つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブル内に存在するか否かの判定を並列して行う判定手段と、上記判定工程での判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算工程での出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算工程での出力の一方を選択する制御工程とを有することを特徴とする。
本発明のプログラムは、シンボル・データを構成する第１のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算ステップと、上記第２のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算ステップと、上記第１のデータと上記第２のデータとの組み合わせ、上記第１のデータと上記第１の減算ステップの出力との組み合わせ、及び上記第２のデータと上記第２の減算ステップの出力との組み合わせについて、対応する可変長符号化データが、入力される２つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブル内に存在するか否かの判定を並列して行う判定ステップと、上記判定ステップでの判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算ステップの出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算ステップの出力の一方を選択する制御ステップとをコンピュータに実行させることを特徴とする。
また、本発明のプログラムは、シンボル・データを構成する第１のデータ及び上記第１のデータとは異なる第３のデータに応じて、上記第１のデータとは異なる上記シンボル・データを構成する第２のデータから所定の定数を減算する第１の減算ステップと、上記第２のデータ及び上記第３のデータに応じて、上記第１のデータから所定の定数を減算する第２の減算ステップと、上記第１のデータと上記第２のデータと上記第３のデータとの組み合わせ、上記第１のデータと上記第１の減算ステップの出力と上記第３のデータとの組み合わせ、及び上記第２のデータと上記第２の減算ステップの出力と上記第３のデータとの組み合わせについて、対応する可変長符号化データが、入力される３つの入力値の組み合わせに対応する可変長符号化データが格納された可変長符号化テーブル内に存在するか否かの判定を並列して行う判定ステップと、上記判定ステップでの判定結果に応じて、上記可変長符号化テーブルの入力として、上記第１のデータ又は上記第２の減算ステップの出力の一方を選択するとともに、上記第２のデータ又は上記第１の減算ステップの出力の一方を選択する制御ステップとをコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、上記プログラムを記録したことを特徴とする。
【発明の効果】
【００２２】
本発明によれば、異なる入力の組み合わせについて、可変長符号化テーブル内に対応する可変長符号化データが存在するか否かを並列して判定するとともに、判定結果に応じて可変長符号化テーブルに対する入力を適宜選択する。これにより、短時間で符号化処理を行え、かつ可変長符号化テーブルを入力の組み合わせ毎に備える必要がなくなり、小さな回路規模で、可変長符号化処理を高速に実行することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態を図面に基づいて説明する。
図１は、本発明の一実施形態による信号処理装置を適用した可変長符号化装置の構成例を示すブロック図である。なお、図１においては、ＭＰＥＧ−４符号化方式に対応した可変長符号化装置を一例として示している。また、以下の説明では、説明を解りやすくするためにイントラ・マクロブロックに対するＡＣ係数符号化に特化して説明するが、本発明はこれに限定されるものではない。
【００２４】
本実施形態における可変長符号化装置は、レベル減算部１１、ランレングス減算部１３、ハフマン符号判定器１４、１５、１６、固定長符号化器１７、制御部１８、選択器１０、１２、１９、２０、２２、ハフマン・テーブル２１、エスケープ符号連結部２３を有する。
【００２５】
可変長符号化装置は、シンボル・データを構成するＲＵＮ（ランレングス）、ＬＥＶＥＬ（レベル）、及びＬＡＳＴ（ラスト）が入力されると、以下に説明する処理を実行する。ここで、ＲＵＮは、ＤＣＴブロック内の連続するゼロ係数の個数を表すものであり、ＬＥＶＥＬは、ＤＣＴブロック内のゼロでない係数（非ゼロ係数、有意係数）を表すものであり、ＬＡＳＴはＤＣＴブロック内の最後の非ゼロ係数であることを表すものである。
【００２６】
選択器１０は、ＲＵＮ及びＬＡＳＴが入力され、ＲＵＮの値及びＬＡＳＴの値に応じてＬＭＡＸを出力する。ここで、ＬＭＡＸは、入力されたＲＵＮの値及びＬＡＳＴの値に対応するＬＥＶＥＬの最大値であり、図１のＬＭＡＸテーブル２４に格納されており、図２に示すように入力されるＲＵＮ及びＬＡＳＴの値に応じてＬＭＡＸの値は定められる。
【００２７】
レベル減算部１１は、選択器１０から出力されたＬＭＡＸの値を、入力されたＬＥＶＥＬの値から減算し、演算結果であるＬＥＶＥＬ＋を出力する。すなわち、レベル減算部１１は、ＲＵＮ及びＬＡＳＴの値に応じて定まるＬＭＡＸの値をＬＥＶＥＬから減算し、ＬＥＶＥＬ＋を出力する。
【００２８】
選択器１２は、ＬＥＶＥＬ及びＬＡＳＴが入力され、ＬＥＶＥＬの値及びＬＡＳＴの値に応じて、ＲＭＡＸに１を加算した値（ＲＭＡＸ＋１）を出力する。ここで、ＲＭＡＸは、入力されたＬＥＶＥＬの値及びＬＡＳＴの値に対応するＲＵＮの最大値であり、図１のＲＭＡＸテーブル２５に格納されており、図３に示すように入力されるＬＥＶＥＬ及びＬＡＳＴの値に応じてＲＭＡＸの値は定められる。
【００２９】
ランレングス減算部１３は、選択器１２から出力されたＲＭＡＸ＋１の値を、入力されたＲＵＮの値から減算し、演算結果であるＲＵＮ＋を出力する。すなわち、ランレングス減算部１３は、ＬＥＶＥＬ及びＬＡＳＴの値に応じて定まるＲＭＡＸの値に１を加算した値をＲＵＮから減算し、ＲＵＮ＋を出力する。
【００３０】
第１のハフマン符号判定器１４には、ＲＵＮ、ＬＥＶＥＬ、及びＬＡＳＴが入力される。第２のハフマン符号判定器１５には、ＲＵＮ、ＬＥＶＥＬ＋、及びＬＡＳＴが入力される。第３のハフマン符号判定器１６には、ＲＵＮ＋、ＬＥＶＥＬ、及びＬＡＳＴが入力される。
【００３１】
ハフマン符号判定器１４〜１６は、入力されたシンボル・データに対応するハフマン符号が存在するか否かを判定し、ハフマン符号が存在すると判定した場合には‘１’を制御部１８に出力し、存在しないと判定した場合には‘０’を制御部１８に出力する。このハフマン符号判定器１４〜１６による判定は、同一クロック・サイクル（１サイクル内）に並列して行われる。なお、ハフマン符号判定器１４〜１６は、入力されたシンボル・データに対応するハフマン符号の存在の有無を判定するだけであり、ハフマン符号そのものは出力しない。
【００３２】
ここで、入力されたシンボル・データに対応するハフマン符号が存在するか否かを判定する方法について、第１のハフマン符号判定器１４を一例として説明する。
ハフマン符号判定器１４は、図２に示した対応関係（ＬＭＡＸテーブル２４）を参照して、自らに対して入力されたＬＡＳＴ及びＲＵＮの値に対応するＬＥＶＥＬの最大値ＬＭＡＸを取り出す。さらに、ハフマン符号判定器１４は、入力されたＬＥＶＥＬの値と上記ＬＭＡＸの値とを比較し、ＬＥＶＥＬ≦ＬＭＡＸであればハフマン符号が存在すると判定し、そうでなければハフマン符号が存在しないと判定する。
【００３３】
例えば、ＬＡＳＴ＝０、ＲＵＮ＝３、及びＬＥＶＥＬ＝２が入力されたとき、図２よりＬＡＳＴ＝０かつＲＵＮ＝３に対応するＬＭＡＸの値は４であるので、ＬＡＳＴ＝０、ＲＵＮ＝３、及びＬＥＶＥＬ＝２に対応するハフマン符号が存在することが分かる。なお、上述した説明では図２に示す対応関係を参照するようにしているが、図３に示す対応関係（ＲＭＡＸテーブル２５）を参照してハフマン符号の有無を判定するようにしても良い。
【００３４】
このように、ハフマン符号判定器１４〜１６は、図２又は図３に示した対応関係に基づいて、入力されたシンボル・データに対応するハフマン符号が存在するか否かを判定できるので、ハフマン符号判定器１４〜１６内にハフマン・テーブルを持つ必要がなく、比較的小規模な回路によって実装することが可能である。
【００３５】
選択器１９は、制御部１８からの指示に基づき、ＬＥＶＥＬとＬＥＶＥＬ＋のいずれかを選択して出力する。同様に、選択器２０は、制御部１８からの指示に基づき、ＲＵＮとＲＵＮ＋のいずれかを選択して出力する。
【００３６】
ハフマン・テーブル２１には、ＩＳＯ／ＩＥＣ１４４９６−２のＡｎｎｅｘ．Ｂに記載されている、イントラ・マクロブロック用のテーブルＢ．１６の全てのハフマン符号語がハードワイヤードで格納されている。ハフマン・テーブル２１は、選択器１９の出力（ＬＥＶＥＬ又はＬＥＶＥＬ＋）と、選択器２０の出力（ＲＵＮ又はＲＵＮ＋）と、ＬＡＳＴとが入力され、選択器１９、２０の出力とＬＡＳＴとに対応するハフマン符号ＶＬＣを出力する。
【００３７】
なお、シンボル・データ（ＬＥＶＥＬ又はＬＥＶＥＬ＋、ＲＵＮ又はＲＵＮ＋、ＬＡＳＴ）に対応するハフマン符号が存在しないときには、ハフマン・テーブル２１は‘０’を出力する。また、このときには、後述するが制御部１８の指示により、選択器２２では可変長符号化装置外部への出力として、固定長符号化器１７の出力データ（固定長符号）ＦＬＣが選択されるので、ハフマン・テーブル２１から出力される‘０’データが外部に出力されることはない。
【００３８】
固定長符号化器１７は、入力されたＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴに対して、図４に示す固定長符号表を用い、図５に示すビット・レーンの固定長符号ＦＬＣを出力する。図５に示す固定長符号ＦＬＣのＲＵＮフィールドには、図４に示した固定長符号表に従って、入力されたＲＵＮの値に応じたコードが入力される。同様に、ＬＥＶＥＬフィールドには、固定長符号表に従って、入力されたＬＥＶＥＬの値に応じたコードが入力される。
【００３９】
選択器２２は、制御部１８からの指示に基づき、ハフマン・テーブル２１の出力データであるハフマン符号ＶＬＣ、又は固定長符号化器１７の出力データである固定長符号ＦＬＣのいずれかを選択して出力する。
エスケープ符号連結部２３は、制御部１８からの指示に基づき、選択器２２の出力データをそのまま可変長符号化装置の外部に出力するか、あるいは所定のESCAPE（エスケープ）符号を出力符号化データの先頭に連結して出力する。
【００４０】
制御部１８は、ハフマン符号判定器１４〜１６の判定結果に基づいて、以下に説明する処理を行う。
（１）第１のハフマン符号判定器１４の出力が‘１’のとき
制御部１８は、第１のハフマン符号判定器１４の出力が‘１’（ＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴに対応するハフマン符号が存在する）の場合には、選択器１９に対してＬＥＶＥＬを選択させ、選択器２０に対してＲＵＮを選択させる指示を出力する。これにより、ハフマン・テーブル２１には、ＲＵＮ、ＬＥＶＥＬ、及びＬＡＳＴが入力される。
【００４１】
さらに、制御部１８は、選択器２２に対して、ハフマン・テーブル２１の出力データＶＬＣを選択させる指示を出力する。また、エスケープ符号連結部２３に対して、選択器２２の出力データをそのまま可変長符号化装置の外部に出力する指示を出力する。
したがって、第１のハフマン符号判定器１４の出力が‘１’の場合には、ＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴに対応するハフマン符号ＶＬＣが可変長符号化装置の外部に出力される。
【００４２】
（２）第１のハフマン符号判定器１４の出力が‘０’、かつ第２のハフマン符号判定器１５の出力が‘１’のとき
制御部１８は、第１のハフマン符号判定器１４の出力が‘０’（ＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴに対応するハフマン符号が存在しない）であり、かつ第２のハフマン符号判定器１５の出力が‘１’（ＲＵＮ、ＬＥＶＥＬ＋、ＬＡＳＴに対応するハフマン符号が存在する）の場合には、選択器１９に対してＬＥＶＥＬ＋を選択させ、選択器２０に対してＲＵＮを選択させる指示を出力する。これにより、ハフマン・テーブル２１には、ＲＵＮ、ＬＥＶＥＬ＋、及びＬＡＳＴが入力される。
【００４３】
さらに、制御部１８は、選択器２２に対して、ハフマン・テーブル２１の出力データＶＬＣを選択させる指示を出力する。また、エスケープ符号連結部２３に対して、選択器２２の出力データの先頭にESCAPE符号“00000110”を連結して、可変長符号化装置の外部に出力する指示を出力する。
したがって、第１のハフマン符号判定器１４の出力が‘０’、かつ第２のハフマン符号判定器１５の出力が‘１’の場合には、先頭にESCAPE符号“00000110”が付加された、ＲＵＮ、ＬＥＶＥＬ＋、ＬＡＳＴに対応するハフマン符号ＶＬＣが可変長符号化装置の外部に出力される。
【００４４】
（３）第１及び第２のハフマン符号判定器１４、１５の出力が‘０’、かつ第３のハフマン符号判定器１６の出力が‘１’のとき
制御部１８は、第１のハフマン符号判定器１４の出力が‘０’であり、かつ第２のハフマン符号判定器１５の出力が‘０’（ＲＵＮ、ＬＥＶＥＬ＋、ＬＡＳＴに対応するハフマン符号が存在しない）であり、かつ第３のハフマン符号判定器１６の出力が‘１’（ＲＵＮ＋、ＬＥＶＥＬ、ＬＡＳＴに対応するハフマン符号が存在する）の場合には、選択器１９に対してＬＥＶＥＬを選択させ、選択器２０に対してＲＵＮ＋を選択させる指示を出力する。これにより、ハフマン・テーブル２１には、ＲＵＮ＋、ＬＥＶＥＬ、及びＬＡＳＴが入力される。
【００４５】
さらに、制御部１８は、選択器２２に対して、ハフマン・テーブル２１の出力データＶＬＣを選択させる指示を出力する。また、エスケープ符号連結部２３に対して、選択器２２の出力データの先頭にESCAPE符号“000001110”を連結して、可変長符号化装置の外部に出力する指示を出力する。
したがって、第１及び第２のハフマン符号判定器１４、１５の出力が‘０’、かつ第３のハフマン符号判定器１６の出力が‘１’の場合には、先頭にESCAPE符号“000001110”が付加された、ＲＵＮ＋、ＬＥＶＥＬ、ＬＡＳＴに対応するハフマン符号ＶＬＣが可変長符号化装置の外部に出力される。
【００４６】
（４）第１〜第３のハフマン符号判定器１４〜１６の出力が‘０’のとき
制御部１８は、第１のハフマン符号判定器１４の出力が‘０’であり、かつ第２のハフマン符号判定器１５の出力が‘０’であり、かつ第３のハフマン符号判定器１６の出力が‘０’（ＲＵＮ＋、ＬＥＶＥＬ、ＬＡＳＴに対応するハフマン符号が存在しない）の場合には、選択器２２に対して、固定長符号化器１７の出力データＦＬＣを選択させる指示を出力する。さらに、制御部１８は、エスケープ符号連結部２３に対して、選択器２２の出力データの先頭にESCAPE符号“000001111”を連結して、可変長符号化装置の外部に出力する指示を出力する。
したがって、第１〜第３のハフマン符号判定器１４〜１６の出力が‘０’の場合には、先頭にESCAPE符号“000001111”が付加された、ＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴに基づく固定長符号ＦＬＣが可変長符号化装置の外部に出力される。
【００４７】
以上、説明したように本実施形態によれば、互いに異なるシンボル・データが入力されるハフマン符号判定器１４〜１６を設けて、入力されたシンボル・データに対応するハフマン符号が存在するか否かをハフマン符号判定器１４〜１６により判定し、その判定結果に基づいて１つのハフマン・テーブル２１により符号化処理を実行する。
これにより、シンボル・データ（ＲＵＮ、ＬＥＶＥＬ、ＬＡＳＴ）、シンボル・データ（ＲＵＮ、ＬＥＶＥＬ＋、ＬＡＳＴ）及びシンボル・データ（ＲＵＮ＋、ＬＥＶＥＬ、ＬＡＳＴ）に対応するハフマン符号が存在するか否かを並列に判定することができるため、１サイクルで可変長符号化を行えるので、図６に示したような従来の可変長符号化装置よりも高速に符号化を実行することができるとともに、本実施形態における可変長符号化装置が備えるハフマン・テーブルは１つであれば良いので、図７に示したような従来の可変長符号化装置よりも小規模な回路で符号化を実行することができる。すなわち、小さな回路規模で、可変長符号化を高速に実行することができる。
【００４８】
なお、上記実施形態は、ＲＵＮ、ＬＥＶＥＬ及びＬＡＳＴの３次元の事象での符号化方式について説明しているが、本発明はこれに限定されず、ＲＵＮ及びＬＥＶＥＬの２次元の事象での符号化方式についても適用することができる。２次元の事象での符号化方式に適用する場合には、上記実施形態と同様にＲＵＮとＬＭＡＸ、及びＬＥＶＥＬとＲＭＡＸの対応関係を規定し、上述した実施形態においてＬＡＳＴがないものとして符号化処理を行うようにすれば良い。
【００４９】
（本発明の他の実施形態）
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、上記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体は本発明を構成する。また、そのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００５０】
例えば、上記実施形態に示した信号処理装置は、図８に示すようなコンピュータ機能８００を有し、そのＣＰＵ８０１により上記実施形態での動作が実施される。
コンピュータ機能８００は、上記図８に示すように、ＣＰＵ８０１と、ＲＯＭ８０２と、ＲＡＭ８０３と、キーボード（ＫＢ）８０９のキーボードコントローラ（ＫＢＣ）８０５と、表示部としてのＣＲＴディスプレイ（ＣＲＴ）８１０のＣＲＴコントローラ（ＣＲＴＣ）８０６と、ハードディスク（ＨＤ）８１１およびフレキシブルディスク（ＦＤ）８１２のディスクコントローラ（ＤＫＣ）８０７と、ネットワークインタフェースカード（ＮＩＣ）８０８とが、システムバス８０４を介して互いに通信可能に接続された構成としている。
ＣＰＵ８０１は、ＲＯＭ８０２あるいはＨＤ８１１に記憶されたソフトウェア、あるいはＦＤ８１２より供給されるソフトウェアを実行することで、システムバス８０４に接続された各構成部を総括的に制御する。
すなわち、ＣＰＵ８０１は、上述したような動作を行うための処理プログラムを、ＲＯＭ８０２、あるいはＨＤ８１１、あるいはＦＤ８１２から読み出して実行することで、上記実施形態での動作を実現するための制御を行う。
ＲＡＭ８０３は、ＣＰＵ８０１の主メモリあるいはワークエリア等として機能する。
ＫＢＣ８０５は、ＫＢ８０９や図示していないポインティングデバイス等からの指示入力を制御する。
ＣＲＴＣ８０６は、ＣＲＴ８１０の表示を制御する。
ＤＫＣ８０７は、ブートプログラム、種々のアプリケーション、ユーザファイル、ネットワーク管理プログラム、および上記実施形態における上記処理プログラム等を記憶するＨＤ８１１およびＦＤ８１２とのアクセスを制御する。
ＮＩＣ８０８はネットワーク８１３上の他の装置と双方向にデータをやりとりする。
【００５１】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態による信号処理装置を適用した可変長符号化装置の構成例を示すブロック図である。
【図２】本実施形態におけるラスト及びランレングスの値とレベルの最大値との対応関係の一例を示す図である。
【図３】本実施形態におけるラスト及びレベルの値とランレングスの最大値との対応関係の一例を示す図である。
【図４】本実施形態における固定長符号表を示す図である。
【図５】本実施形態における固定長符号のビット・レーンを示す図である。
【図６】従来の可変長符号化装置の構成を示すブロック図である。
【図７】従来の可変長符号化装置の他の構成を示すブロック図である。
【図８】本実施形態における信号処理装置を実現可能なコンピュータ機能の構成例を示すブロック図である。
【符号の説明】
【００５３】
１０、１２、１９、２０、２２  選択器
１１  レベル減算部
１３  ランレングス減算部
１４、１５、１６  ハフマン符号判定器
１７  固定長符号化器
１８  制御部
２１  ハフマン・テーブル
２２  エスケープ符号連結部
【図１】
2005175944.tif 000003
【図２】
2005175944.tif 000004
【図３】
2005175944.tif 000005
【図４】
2005175944.tif 000006
【図５】
2005175944.tif 000007
【図６】
2005175944.tif 000008
【図７】
2005175944.tif 000009
【図８】
2005175944.tif 000010