(57)【要約】【課題】  回路規模増加を抑えつつ、効率よく可変長符号化がきる可変長符号化方法、および可変長符号化装置を提供する。【解決手段】  ＶＬＣモード判定部１２１で入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が、ＶＬＣテーブルに存在するか否かの判定、第１のエスケープモード、第２のエスケープモード、および第３のエスケープモードのうち何れのエスケープモードが適しているかの判定が行われる。ＶＬＣモード判定部１２１の判定結果に応じて、ＦＬＣ処理部１３２または符号化モード選択部１３３によって、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、第１のエスケープモードによって生成された組、第２のエスケープモードによって生成された組の可変長符号化、または固定長符号化（第３のエスケープモード）が行われる。【選択図】  図２
2006339997.tif 000002
【特許請求の範囲】
【請求項１】
係数列から可変長符号化データを生成する可変長符号化方法であって、
前記係数列は、デジタルデータに離散コサイン変換を行って得たＤＣＴ係数における、先行するゼロ係数の個数であるＲｕｎと、非ゼロの係数の値であるＬｅｖｅｌと、前記非ゼロの係数が最後であるかどうかを示すＬａｓｔとから成る係数列であり、
可変長符号化すべき係数列と当該係数列を可変長符号化した可変長符号化データとの対応関係を示すＶＬＣテーブルにおいて、与えられた係数列のＬａｓｔ、およびＲｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを用いて、関係式：
ＮｅｗＬｅｖｅｌ＝ｓｉｇｎ（Ｌｅｖｅｌ）×（｜Ｌｅｖｅｌ｜−ＬＭＡＸ）
（ただし、ｓｉｇｎ（Ｌｅｖｅｌ）は、Ｌｅｖｅｌの符号を意味し、｜Ｌｅｖｅｌ｜は、Ｌｅｖｅｌの絶対値を意味する。）
から求めたＮｅｗＬｅｖｅｌで、与えられた係数列におけるＬｅｖｅｌを置き換えた第１の係数列を生成する第１の係数列生成ステップと、
前記ＶＬＣテーブルにおいて、与えられた係数列のＬａｓｔ、およびＬｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸを用いて、関係式：
ＮｅｗＲｕｎ＝Ｒｕｎ−（ＲＭＡＸ＋１）
から求めたＮｅｗＲｕｎで、与えられた係数列におけるＲｕｎを置き換えた第２の係数列を生成する第２の係数列生成ステップと、
与えられた係数列に応じて、与えられた係数列を可変長符号化するモード、前記第１の係数列を可変長符号化するモード、前記第２の係数列を可変長符号化するモード、および与えられた係数列を固定長符号化するモードのうち、何れのモードで符号化をすべきかを判定するＶＬＣモード判定ステップと、
前記ＶＬＣモード判定ステップの判定結果に基づいて、前記与えられた係数列、前記第１の係数列、および前記第２の係数列のうちから１つの係数列を出力する係数列出力ステップと、
前記ＶＬＣテーブルに基づいて、前記係数列出力ステップが出力した係数列から可変長符号化データを生成する可変長符号化ステップと、
前記係数列出力ステップが出力した係数列を固定長符号化した固定長符号化データを生成する固定長符号化ステップと、
前記ＶＬＣモード判定ステップの判定結果に基づいて、前記可変長符号化データ、および前記固定長符号化データのうちの何れか一方を出力する符号化データ出力ステップと、
を有することを特徴とする可変長符号化方法。
【請求項２】
請求項１の可変長符号化方法であって、
さらに、与えられた係数列に応じて、可変長符号化、および固定長符号化のうちの何れの符号化を与えられた係数列に対して行うべきかを判定するＦＬＣモード判定ステップを有し、
前記ＶＬＣモード判定ステップは、前記ＦＬＣモード判定ステップの判定結果が可変長符号化をすべきこと示している場合に、何れのモードで符号化をすべきかを判定することを特徴とする可変長符号化方法。
【請求項３】
請求項１の可変長符号化方法であって、
前記第１の係数列生成ステップは、前記ＶＬＣモード判定ステップの判定の結果が、前記第１の係数列を可変長符号化するモードで符号化をすべきことを示している場合に、前記第１の係数列を生成し、
前記第２の係数列生成ステップは、前記ＶＬＣモード判定ステップの判定の結果が、前記第２の係数列を可変長符号化するモードで符号化をすべきことを示している場合に、前記第２の係数列を生成することを特徴とする可変長符号化方法。
【請求項４】
請求項１の可変長符号化方法であって、
前記ＶＬＣモード判定ステップは、与えられた係数列と与えられた係数列を符号化するモードとの対応関係を示すモード情報を保持したＶＬＣモード判定テーブルを用いて、何れのモードで符号化をすべきかを判定することを特徴とする可変長符号化方法。
【請求項５】
請求項４の可変長符号化方法であって、
前記モード情報は、複数のＶＬＣモード判定テーブルに分割されて保持されていることを特徴とする可変長符号化方法。
【請求項６】
請求項４の可変長符号化方法であって、
前記ＶＬＣモード判定テーブルは、Ｒｕｎの値が所定の値より小さい係数列についてのモード情報が保持されていることを特徴とする可変長符号化方法。
【請求項７】
請求項５の可変長符号化方法であって、
前記デジタルデータは、画像データがフレーム内符号化、またはフレーム間符号化されたものであり、
前記複数のＶＬＣモード判定テーブルは、前記フレーム内符号化された画像データに対応した係数列用のＶＬＣモード判定テーブルと、前記フレーム間符号化された画像データに対応した係数列用のＶＬＣモード判定テーブルとであることを特徴とする可変長符号化方法。
【請求項８】
請求項４の可変長符号化方法であって、
前記デジタルデータは、画像データがフレーム内符号化、またはフレーム間符号化されたものであり、
前記ＶＬＣモード判定テーブルは、前記フレーム内符号化された画像データに対応した係数列、および前記フレーム間符号化された画像データに対応した係数列のうちの何れか一方の係数列についてのモード情報が保持されていることを特徴とする可変長符号化方法。
【請求項９】
請求項５の可変長符号化方法であって、
前記複数のＶＬＣモード判定テーブルは、前記Ｌａｓｔの値が前記非ゼロの係数が最後であることを示している係数列についてのＶＬＣモード判定テーブルと、前記Ｌａｓｔの値が前記非ゼロの係数が最後でないことを示している係数列についてのＶＬＣモード判定テーブルとであることを特徴とする可変長符号化方法。
【請求項１０】
請求項４の可変長符号化方法であって、
前記ＶＬＣモード判定テーブルは、前記Ｌａｓｔの値が前記非ゼロの係数が最後であることを示している係数列、および前記Ｌａｓｔの値が前記非ゼロの係数が最後でないことを示している係数列のうちの何れか一方の係数列についてのモード情報が保持されていることを特徴とする可変長符号化方法。
【請求項１１】
請求項１の可変長符号化方法であって、
前記ＶＬＣモード判定テーブルは、前記第１の係数列を可変長符号化するモード、および前記第２の係数列を可変長符号化するモードのうち、可変長符号化後の符号量が少ない方のモードが判定結果として選択されるように構成されていることを特徴とする可変長符号化方法。
【請求項１２】
請求項１の可変長符号化方法であって、
前記固定長符号化ステップは、可変長符号化すべき係数列と当該係数列を固定長符号化した固定長符号化データとの対応関係を示すＦＬＣテーブルに基づいて、固定長符号化を行うことを特徴とする可変長符号化方法。
【請求項１３】
係数列から可変長符号化データを生成する可変長符号化装置であって、
前記係数列は、デジタルデータに離散コサイン変換を行って得たＤＣＴ係数における、先行するゼロ係数の個数であるＲｕｎと、非ゼロの係数の値であるＬｅｖｅｌと、前記非ゼロの係数が最後であるかどうかを示すＬａｓｔとから成る係数列であり、
可変長符号化すべき係数列と当該係数列を可変長符号化した可変長符号化データとの対応関係を示すＶＬＣテーブルにおいて、与えられた係数列のＬａｓｔ、およびＲｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを用いて、関係式：
ＮｅｗＬｅｖｅｌ＝ｓｉｇｎ（Ｌｅｖｅｌ）×（｜Ｌｅｖｅｌ｜−ＬＭＡＸ）
（ただし、ｓｉｇｎ（Ｌｅｖｅｌ）は、Ｌｅｖｅｌの符号を意味し、｜Ｌｅｖｅｌ｜は、Ｌｅｖｅｌの絶対値を意味する。）
から求めたＮｅｗＬｅｖｅｌで、与えられた係数列におけるＬｅｖｅｌを置き換えた第１の係数列を生成する第１の係数列生成部と、
前記ＶＬＣテーブルにおいて、与えられた係数列のＬａｓｔ、およびＬｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸを用いて、関係式：
ＮｅｗＲｕｎ＝Ｒｕｎ−（ＲＭＡＸ＋１）
から求めたＮｅｗＲｕｎで、与えられた係数列におけるＲｕｎを置き換えた第２の係数列を生成する第２の係数列生成部と、
与えられた係数列に応じて、与えられた係数列を可変長符号化するモード、前記第１の係数列を可変長符号化するモード、前記第２の係数列を可変長符号化するモード、および与えられた係数列を固定長符号化するモードのうち、何れのモードで符号化をすべきかを判定するＶＬＣモード判定部と、
前記ＶＬＣモード判定部の判定結果に基づいて、前記与えられた係数列、前記第１の係数列、および前記第２の係数列のうちから１つの係数列を出力する係数列出力部と、
前記ＶＬＣテーブルに基づいて、前記係数列出力部が出力した係数列から可変長符号化データを生成する可変長符号化部と、
前記係数列出力部が出力した係数列を固定長符号化した固定長符号化データを生成する固定長符号化部と、
前記ＶＬＣモード判定部の判定結果に基づいて、前記可変長符号化データ、および前記固定長符号化データのうちの何れか一方を出力する符号化データ出力部と、
を備えたことを特徴とする可変長符号化装置。
【請求項１４】
請求項１３の可変長符号化装置であって、
さらに、与えられた係数列に応じて、可変長符号化、および固定長符号化のうちの何れの符号化を与えられた係数列に対して行うべきかを判定するＦＬＣモード判定部を備え、
前記ＶＬＣモード判定部は、前記ＦＬＣモード判定部の判定結果が可変長符号化をすべきこと示している場合に、何れのモードで符号化をすべきかを判定するように構成されていることを特徴とする可変長符号化装置。
【請求項１５】
請求項１３の可変長符号化装置であって、
前記第１の係数列生成部は、前記ＶＬＣモード判定部の判定の結果が、前記第１の係数列を可変長符号化するモードで符号化をすべきことを示している場合に、前記第１の係数列を生成するように構成され、
前記第２の係数列生成部は、前記ＶＬＣモード判定部の判定の結果が、前記第２の係数列を可変長符号化するモードで符号化をすべきことを示している場合に、前記第２の係数列を生成するように構成されていることを特徴とする可変長符号化装置。
【請求項１６】
請求項１３の可変長符号化装置であって、
前記ＶＬＣモード判定部は、与えられた係数列と与えられた係数列を符号化するモードとの対応関係を示すモード情報を保持したＶＬＣモード判定テーブルを用いて、何れのモードで符号化をすべきかを判定するように構成されていることを特徴とする可変長符号化装置。
【請求項１７】
請求項１６の可変長符号化装置であって、
前記モード情報は、複数のＶＬＣモード判定テーブルに分割されて保持されていることを特徴とする可変長符号化装置。
【請求項１８】
請求項１６の可変長符号化装置であって、
前記ＶＬＣモード判定テーブルは、Ｒｕｎの値が所定の値より小さい係数列についてのモード情報が保持されていることを特徴とする可変長符号化装置。
【請求項１９】
請求項１７の可変長符号化装置であって、
前記デジタルデータは、画像データがフレーム内符号化、またはフレーム間符号化されたものであり、
前記複数のＶＬＣモード判定テーブルは、前記フレーム内符号化された画像データに対応した係数列用のＶＬＣモード判定テーブルと、前記フレーム間符号化された画像データに対応した係数列用のＶＬＣモード判定テーブルとであることを特徴とする可変長符号化装置。
【請求項２０】
請求項１６の可変長符号化装置であって、
前記デジタルデータは、画像データがフレーム内符号化、またはフレーム間符号化されたものであり、
前記ＶＬＣモード判定テーブルは、前記フレーム内符号化された画像データに対応した係数列、および前記フレーム間符号化された画像データに対応した係数列のうちの何れか一方の係数列についてのモード情報が保持されていることを特徴とする可変長符号化装置。
【請求項２１】
請求項１７の可変長符号化装置であって、
前記複数のＶＬＣモード判定テーブルは、前記Ｌａｓｔの値が前記非ゼロの係数が最後であることを示している係数列についてのＶＬＣモード判定テーブルと、前記Ｌａｓｔの値が前記非ゼロの係数が最後でないことを示している係数列についてのＶＬＣモード判定テーブルとであることを特徴とする可変長符号化装置。
【請求項２２】
請求項１６の可変長符号化装置であって、
前記ＶＬＣモード判定テーブルは、前記Ｌａｓｔの値が前記非ゼロの係数が最後であることを示している係数列、および前記Ｌａｓｔの値が前記非ゼロの係数が最後でないことを示している係数列のうちの何れか一方の係数列についてのモード情報が保持されていることを特徴とする可変長符号化装置。
【請求項２３】
請求項１３の可変長符号化装置であって、
前記ＶＬＣモード判定テーブルは、前記第１の係数列を可変長符号化するモード、および前記第２の係数列を可変長符号化するモードのうち、可変長符号化後の符号量が少ない方のモードが判定結果として選択されるように構成されていることを特徴とする可変長符号化装置。
【請求項２４】
請求項１３の可変長符号化装置であって、
前記固定長符号化部は、可変長符号化すべき係数列と当該係数列を固定長符号化した固定長符号化データとの対応関係を示すＦＬＣテーブルに基づいて、固定長符号化を行うように構成されていることを特徴とする可変長符号化装置。
【請求項２５】
請求項２４の可変長符号化装置であって、さらに、
前記ＶＬＣテーブルを格納するＶＬＣテーブル用メモリと、
前記ＦＬＣテーブルを格納するＦＬＣテーブル用メモリとを備え、
前記ＶＬＣテーブル用メモリは、前記ＶＬＣテーブルが使用される場合にのみ、動作のためのクロック信号が供給されるように構成され、
前記ＦＬＣテーブル用メモリは、前記ＦＬＣテーブルが使用される場合にのみ、動作のためのクロック信号が供給されるように構成されていることを特徴とする可変長符号化装置。
【請求項２６】
請求項１７の可変長符号化装置であって、
さらに、それぞれのＶＬＣモード判定テーブルに対応した複数のＶＬＣモード判定テーブル用メモリを備え、
使用されているＶＬＣモード判定テーブルが保持されたＶＬＣモード判定テーブル用メモリにのみ、動作のためのクロック信号が供給されるように構成されていることを特徴とする可変長符号化装置。
【請求項２７】
請求項１３から請求項２６のうちの何れか１項の可変長符号化装置と、
画像光を画像信号に変換するセンサと、
入射された画像光を前記センサ上に結像する光学系と、
前記画像信号をデジタルデータに変換して前記可変長符号化装置に出力する変換器と、
を備えたことを特徴とする撮像システム。
【請求項２８】
請求項１３から請求項２６のうちの何れか１項の可変長符号化装置と、
入力されたアナログ値の画像信号をデジタルデータに変換して前記可変長符号化装置に出力する変換器と、
を備えたことを特徴とする撮像システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＭＰＥＧ方式等で実現されている、画像データなどの可変長符号化方法、および可変長符号化装置に関するものである。
【背景技術】
【０００２】
高い圧縮率で画像データを圧縮する技術が発達し、ディジタルカメラやディジタルビデオカメラに用いられている。
【０００３】
例えば、動画像データの圧縮方法としては、ＩＳＯで規格化されたＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）が一般的に知られている。ＭＰＥＧにおいては、画面（フレーム）を複数画素で構成するブロック（以下、マクロブロックという。）毎にフレーム内相関を利用した符号化（以下、Ｉｎｔｒａ符号化という。）、またはフレーム間相関を利用した符号化（以下、Ｉｎｔｅｒ符号化という。）を実施することを特徴としている。
【０００４】
前記の符号化は、具体的には、マクロブロック内のデータに対して、直交変換方式の１つであるＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、離散コサイン変換）が行われ、量子化、ＶＬＣ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ、可変長符号化）の各処理が施されて画像データの圧縮が実現される。
【０００５】
このＶＬＣによる符号化は、ＤＣＴを行った結果得られたＤＣＴ係数に対し、先行するゼロの係数の個数であるＲｕｎと、非ゼロの係数値であるＬｅｖｅｌとその非ゼロの係数が最後であるかどうかを示すＬａｓｔを（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組（係数列）として、これに一意的な符号を割り当てて符号化を行うものである（ＶＬＣ処理という。）。ＭＰＥＧ方式の圧縮では、一意的な符号を割り当てるために定義されたＶＬＣテーブルが用いられて、可変長符号化が行われる。
【０００６】
ＶＬＣテーブルが用いられて可変長符号化が行われる際に、ＶＬＣテーブル上に（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対応するＶＬＣが定義されていない場合には、以下に説明する３つのエスケープモードが適用されて符号化が行われる。
【０００７】
まず、第１のエスケープモードは、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、Ｌｅｖｅｌの絶対値からＶＬＣテーブルにおいてＬａｓｔ，Ｒｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを減算した後にＬｅｖｅｌの符号を付加したＮｅｗＬｅｖｅｌを新たなＬｅｖｅｌとし、その（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組を再度ＶＬＣテーブルによりＶＬＣ処理を行うモードである。
【０００８】
ＮｅｗＬｅｖｅｌ算出式を下記に示す。
ＮｅｗＬｅｖｅｌ＝ｓｉｇｎ（Ｌｅｖｅｌ）×（｜Ｌｅｖｅｌ｜−ＬＭＡＸ）
ただし、ｓｉｇｎ（Ｌｅｖｅｌ）はＬｅｖｅｌの符号を意味する。また、｜Ｌｅｖｅｌ｜はＬｅｖｅｌの絶対値を意味する。
【０００９】
また、第２のエスケープモードは、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、Ｒｕｎの値からＶＬＣテーブルにおいてＬａｓｔ，Ｌｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸに１を加算した値を減算したＮｅｗＲｕｎを新たなＲｕｎとし、その（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組を再度ＶＬＣテーブルによりＶＬＣ処理を行うモードである。
【００１０】
ＮｅｗＲｕｎ算出式を下記に示す。
ＮｅｗＲｕｎ＝Ｒｕｎ−（ＲＭＡＸ＋１）
第３のエスケープモードは、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、これをＦＬＣ（Ｆｉｘｅｄ  Ｌｅｎｇｔｈ  Ｃｏｄｅ、固定長符号）に変換するモードである。
【００１１】
図３１は、上記の方法により符号化を行う可変長符号化装置において、各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【００１２】
まず、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対してＶＬＣ処理を試み、符号化できた場合はそのコード（有効なコード）を出力する（ステップＳ１）。
【００１３】
出力されたコードは、有効なコードかどうかが判定され（ステップＳ２）、有効なコードであれば出力されて符号化が完了する（ステップＳ３）。
【００１４】
ステップＳ１で符号化が完了しなかった場合は、ＬＭＡＸを用いて第１のエスケープモードが既に実施されたかどうかを判定する（ステップＳ４）。
【００１５】
実施されていなければ、前記ＮｅｗＬｅｖｅｌ算出式によりＮｅｗＬｅｖｅｌを算出し、（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組を生成し（ステップＳ５）、ステップＳ１のＶＬＣ処理を試みる。出力されたコードは、有効なコードかどうかが判定され（ステップＳ２）、有効なコードであれば、それが出力されて符号化が完了する（ステップＳ３）。
【００１６】
ステップＳ４でも符号化が完了しなかった場合は、ＲＭＡＸを用いて第２のエスケープモードが既に実施されたかどうかを判定する（ステップＳ６）。
【００１７】
実施されていなければ、前記ＮｅｗＲｕｎ算出式によりＮｅｗＲｕｎを算出し、（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組を生成し（ステップＳ７）、ステップＳ１のＶＬＣ処理を試みる。出力されたコードは、有効なコードかどうかが判定され（ステップＳ２）、有効なコードであれば、それが出力されて符号化が完了する（ステップＳ３）。
【００１８】
ステップＳ６でも符号化が完了しなかった場合は、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組がＦＬＣ（Ｆｉｘｅｄ  Ｌｅｎｇｔｈ  Ｃｏｄｅ、固定長符号）に変換（ＦＬＣ処理）される（ステップＳ８）。そして、このＦＬＣに変換された結果が出力されて符号化が完了する（ステップＳ３）。
【００１９】
このように、従来のＭＰＥＧ圧縮におけるＶＬＣ処理方法では、ＶＬＣテーブルから出力結果を得るサイクルを１サイクルとすると、ＦＬＣの結果を得るまでに３サイクルの処理が必要となる。すなわち、ＦＬＣ処理が多発するようなデータの場合には、多くの処理サイクルが必要となり、処理速度が遅くなるという問題があった。
【００２０】
ＦＬＣ処理が多発するようなデータに対しても、少ないサイクルで符号化を実現する方法としては、図３２に示す手順による処理方法が提案されている（例えば、特許文献１を参照。）。
【００２１】
この方法では、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対するＶＬＣ処理、第１のエスケープモードによりＮｅｗＬｅｖｅｌ算出式が用いられて新たに生成された（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組に対するＶＬＣ処理、第２のエスケープモードによりＮｅｗＲｕｎ算出式が用いられて新たに生成された（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組に対するＶＬＣ処理、および第３のエスケープモードにより（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）に対するＦＬＣ処理の４つの処理が平行して行われるようになっている。
【００２２】
この方法による処理を実現する装置では、３つのＶＬＣ処理が平行して行われるので、それぞれの処理に対応して、合計３つのＶＬＣテーブルが設けられている。
【００２３】
上記の３つのＶＬＣ処理による出力、およびＶＬＣ処理による出力は、予め定められた優先順位によって１つの出力が選択される。
【００２４】
この方法によれば、ＶＬＣテーブルの処理サイクルを１サイクルとすると、１サイクルで符号化を完了することができる。
【特許文献１】特許第３５７３７３５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
しかし、上記のように３つのＶＬＣ処理を平行して実施する方法では、符号化の処理サイクルは短くなるが、３つの並列のＶＬＣテーブルを持つ必要があり、この方法を実現する符号化装置では、回路規模が大きくなってしまうという問題を有していた。
【００２６】
本発明は、前記の問題に着目してなされたものであり、可変長符号化装置の回路規模増加を抑えつつ、処理サイクルが短く、効率よく可変長符号化がきる可変長符号化方法、および可変長符号化装置を提供することを課題とする。
【課題を解決するための手段】
【００２７】
前記の課題を解決するため、請求項１の発明は、
係数列から可変長符号化データを生成する可変長符号化方法であって、
前記係数列は、デジタルデータに離散コサイン変換を行って得たＤＣＴ係数における、先行するゼロ係数の個数であるＲｕｎと、非ゼロの係数の値であるＬｅｖｅｌと、前記非ゼロの係数が最後であるかどうかを示すＬａｓｔとから成る係数列であり、
可変長符号化すべき係数列と当該係数列を可変長符号化した可変長符号化データとの対応関係を示すＶＬＣテーブルにおいて、与えられた係数列のＬａｓｔ、およびＲｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを用いて、関係式：
ＮｅｗＬｅｖｅｌ＝ｓｉｇｎ（Ｌｅｖｅｌ）×（｜Ｌｅｖｅｌ｜−ＬＭＡＸ）
（ただし、ｓｉｇｎ（Ｌｅｖｅｌ）は、Ｌｅｖｅｌの符号を意味し、｜Ｌｅｖｅｌ｜は、Ｌｅｖｅｌの絶対値を意味する。）
から求めたＮｅｗＬｅｖｅｌで、与えられた係数列におけるＬｅｖｅｌを置き換えた第１の係数列を生成する第１の係数列生成ステップと、
前記ＶＬＣテーブルにおいて、与えられた係数列のＬａｓｔ、およびＬｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸを用いて、関係式：
ＮｅｗＲｕｎ＝Ｒｕｎ−（ＲＭＡＸ＋１）
から求めたＮｅｗＲｕｎで、与えられた係数列におけるＲｕｎを置き換えた第２の係数列を生成する第２の係数列生成ステップと、
与えられた係数列に応じて、与えられた係数列を可変長符号化するモード、前記第１の係数列を可変長符号化するモード、前記第２の係数列を可変長符号化するモード、および与えられた係数列を固定長符号化するモードのうち、何れのモードで符号化をすべきかを判定するＶＬＣモード判定ステップと、
前記ＶＬＣモード判定ステップの判定結果に基づいて、前記与えられた係数列、前記第１の係数列、および前記第２の係数列のうちから１つの係数列を出力する係数列出力ステップと、
前記ＶＬＣテーブルに基づいて、前記係数列出力ステップが出力した係数列から可変長符号化データを生成する可変長符号化ステップと、
前記係数列出力ステップが出力した係数列を固定長符号化した固定長符号化データを生成する固定長符号化ステップと、
前記ＶＬＣモード判定ステップの判定結果に基づいて、前記可変長符号化データ、および前記固定長符号化データのうちの何れか一方を出力する符号化データ出力ステップと、
を有することを特徴とする。
【００２８】
これにより、入力された係数列に適する符号化モードが、可変長符号化が行われる前に決定されるので、効率よく１ステップでＶＬＣ処理を行うことができる。また、本方法で符号化を行う装置は、ＶＬＣテーブルを複数個持つ必要がないので、回路規模増加を抑えることが可能になる。
【００２９】
また、請求項２の発明は、
請求項１の可変長符号化方法であって、
さらに、与えられた係数列に応じて、可変長符号化、および固定長符号化のうちの何れの符号化を与えられた係数列に対して行うべきかを判定するＦＬＣモード判定ステップを有し、
前記ＶＬＣモード判定ステップは、前記ＦＬＣモード判定ステップの判定結果が可変長符号化をすべきこと示している場合に、何れのモードで符号化をすべきかを判定することを特徴とする。
【００３０】
これにより、ＶＬＣモード判定よりも簡単な比較処理のみで済むＦＬＣモード判定が、ＶＬＣモード判定よりも先に行われるので、ＶＬＣモード判定を行う係数列を減らすことができる。
【００３１】
また、請求項３の発明は、
請求項１の可変長符号化方法であって、
前記第１の係数列生成ステップは、前記ＶＬＣモード判定ステップの判定の結果が、前記第１の係数列を可変長符号化するモードで符号化をすべきことを示している場合に、前記第１の係数列を生成し、
前記第２の係数列生成ステップは、前記ＶＬＣモード判定ステップの判定の結果が、前記第２の係数列を可変長符号化するモードで符号化をすべきことを示している場合に、前記第２の係数列を生成することを特徴とする。
【００３２】
これにより、第１の係数列生成、および第２の係数列生成の何れか一方の係数列の生成を行えばよいので、例えば、第１の係数列生成を行う回路と、第２の係数列生成を行う回路との共通化を図ることが可能になり、本方法で符号化を行う装置の回路規模削減に貢献できる。
【００３３】
また、請求項４の発明は、
請求項１の可変長符号化方法であって、
前記ＶＬＣモード判定ステップは、与えられた係数列と与えられた係数列を符号化するモードとの対応関係を示すモード情報を保持したＶＬＣモード判定テーブルを用いて、何れのモードで符号化をすべきかを判定することを特徴とする。
【００３４】
これにより、ＶＬＣモード判定テーブルを検索することによって、符号化モードが決定される。
【００３５】
また、請求項５の発明は、
請求項４の可変長符号化方法であって、
前記モード情報は、複数のＶＬＣモード判定テーブルに分割されて保持されていることを特徴とする。
【００３６】
これにより、より効率よくＶＬＣモード判定テーブルを検索することが可能になる。
【００３７】
また、請求項６の発明は、
請求項４の可変長符号化方法であって、
前記ＶＬＣモード判定テーブルは、Ｒｕｎの値が所定の値より小さい係数列についてのモード情報が保持されていることを特徴とする。
【００３８】
これにより、Ｒｕｎの値が所定の値より小さい係数列に対しては、効率よく１ステップで符号化が可能になる。
【００３９】
また、請求項７の発明は、
請求項５の可変長符号化方法であって、
前記デジタルデータは、画像データがフレーム内符号化、またはフレーム間符号化されたものであり、
前記複数のＶＬＣモード判定テーブルは、前記フレーム内符号化された画像データに対応した係数列用のＶＬＣモード判定テーブルと、前記フレーム間符号化された画像データに対応した係数列用のＶＬＣモード判定テーブルとであることを特徴とする。
【００４０】
これにより、画像データの予測符号化モードに応じて、効率よく１ステップで符号化のモードが決定される。
【００４１】
また、請求項８の発明は、
請求項４の可変長符号化方法であって、
前記デジタルデータは、画像データがフレーム内符号化、またはフレーム間符号化されたものであり、
前記ＶＬＣモード判定テーブルは、前記フレーム内符号化された画像データに対応した係数列、および前記フレーム間符号化された画像データに対応した係数列のうちの何れか一方の係数列についてのモード情報が保持されていることを特徴とする。
【００４２】
これにより、ＶＬＣモード判定テーブルの規模を小さくし、小規模な符号化装置を構築することが可能になる。
【００４３】
また、請求項９の発明は、
請求項５の可変長符号化方法であって、
前記複数のＶＬＣモード判定テーブルは、前記Ｌａｓｔの値が前記非ゼロの係数が最後であることを示している係数列についてのＶＬＣモード判定テーブルと、前記Ｌａｓｔの値が前記非ゼロの係数が最後でないことを示している係数列についてのＶＬＣモード判定テーブルとであることを特徴とする。
【００４４】
これにより、Ｌａｓｔの値に応じて、ＶＬＣモード判定テーブルの検索範囲を限定できるので、効率よく１ステップで符号化のモードが決定される。
【００４５】
また、請求項１０の発明は、
請求項４の可変長符号化方法であって、
前記ＶＬＣモード判定テーブルは、前記Ｌａｓｔの値が前記非ゼロの係数が最後であることを示している係数列、および前記Ｌａｓｔの値が前記非ゼロの係数が最後でないことを示している係数列のうちの何れか一方の係数列についてのモード情報が保持されていることを特徴とする。
【００４６】
これにより、ＶＬＣモード判定テーブルの規模を小さくし、小規模な符号化装置を構築することが可能になる。
【００４７】
また、請求項１１の発明は、
請求項１の可変長符号化方法であって、
前記ＶＬＣモード判定テーブルは、前記第１の係数列を可変長符号化するモード、および前記第２の係数列を可変長符号化するモードのうち、可変長符号化後の符号量が少ない方のモードが判定結果として選択されるように構成されていることを特徴とする。
【００４８】
これにより、可変長符号化後の符号量が少ない符号化モードが選択され、効率の良い符号化データが生成される。
【００４９】
また、請求項１２の発明は、
請求項１の可変長符号化方法であって、
前記固定長符号化ステップは、可変長符号化すべき係数列と当該係数列を固定長符号化した固定長符号化データとの対応関係を示すＦＬＣテーブルに基づいて、固定長符号化を行うことを特徴とする。
【００５０】
これにより、テーブルを参照することで固定長符号化データが生成される。
【００５１】
また、請求項１３〜２４に係る可変長符号化装置は、それぞれ上記請求項１〜１２に係る可変長符号化方法と同様の作用効果を奏する。
【００５２】
また、請求項２５の発明は、
請求項２４の可変長符号化装置であって、さらに、
前記ＶＬＣテーブルを格納するＶＬＣテーブル用メモリと、
前記ＦＬＣテーブルを格納するＦＬＣテーブル用メモリとを備え、
前記ＶＬＣテーブル用メモリは、前記ＶＬＣテーブルが使用される場合にのみ、動作のためのクロック信号が供給されるように構成され、
前記ＦＬＣテーブル用メモリは、前記ＦＬＣテーブルが使用される場合にのみ、動作のためのクロック信号が供給されるように構成されていることを特徴とする。
【００５３】
また、請求項２６の発明は、
請求項１７の可変長符号化装置であって、
さらに、それぞれのＶＬＣモード判定テーブルに対応した複数のＶＬＣモード判定テーブル用メモリを備え、
使用されているＶＬＣモード判定テーブルが保持されたＶＬＣモード判定テーブル用メモリにのみ、動作のためのクロック信号が供給されるように構成されていることを特徴とする。
【００５４】
これらにより、各テーブルのうち使用されるテーブルが格納されたメモリにのみ動作クロック信号が供給されるので、消費電力の削減が可能になる。
【００５５】
また、請求項２７の発明は、
請求項１３から請求項２６のうちの何れか１項の可変長符号化装置と、
画像光を画像信号に変換するセンサと、
入射された画像光を前記センサ上に結像する光学系と、
前記画像信号をデジタルデータに変換して前記可変長符号化装置に出力する変換器と、
を備えたことを特徴とする。
【００５６】
また、請求項２８の発明は、
請求項１３から請求項２６のうちの何れか１項の可変長符号化装置と、
入力されたアナログ値の画像信号をデジタルデータに変換して前記可変長符号化装置に出力する変換器と、
を備えたことを特徴とする。
【００５７】
これらにより、回路規模増加を抑えつつ、効率よく可変長符号化ができる撮像システム（例えばデジタルスチルカメラ（ＤＳＣ）等）を構築できる。
【発明の効果】
【００５８】
本発明によれば回路規模増加を抑えつつ、効率よく可変長符号化ができる。
【発明を実施するための最良の形態】
【００５９】
以下、本発明の実施形態について図面を参照しながら説明する。
【００６０】
《発明の実施形態１》
図１は、本発明の実施形態１に係る可変長符号化装置１００の構成を示すブロック図である。同図に示すように可変長符号化装置１００は、変換部１１０、ＶＬＣ符号化前処理部１２０、およびＶＬＣ符号化処理部１３０を備えて構成されている。
【００６１】
（変換部１１０の構成）
変換部１１０は、図示しないＤＣＴ・量子化部がマクロブロック内のデータに対して、ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、離散コサイン変換）、および量子化を行った結果から得られたＤＣＴ係数について、先行するゼロの係数の個数であるＲｕｎと、非ゼロの係数の値であるＬｅｖｅｌと、その非ゼロの係数が最後であるかどうかを示すＬａｓｔとを求め、これらを（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組（係数列）として、ＶＬＣ符号化前処理部１２０に出力するようになっている。（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組は、具体的には、図１に示すように、それぞれＬａｓｔ信号、Ｒｕｎ信号、およびＬｅｖｅｌ信号としてＶＬＣ符号化前処理部１２０に出力される。
【００６２】
（ＶＬＣ符号化前処理部１２０の構成）
ＶＬＣ符号化前処理部１２０は、マクロブロックの予測符号化モード（フレーム内符号化、またはフレーム間符号化）、Ｌａｓｔ、Ｒｕｎ、およびＬｅｖｅｌの値に応じて、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、第１エスケープモード（後述）によって生成された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、および第２エスケープモード（後述）よって生成された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組のうちから何れか１つの組を選択して、ＶＬＣ符号化処理部１３０に出力するようになっている。
【００６３】
ＶＬＣ符号化前処理部１２０は、詳しくは、図２に示すように、ＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部１２４を備えて構成されている。
【００６４】
（ＶＬＣモード判定部１２１の構成）
ＶＬＣモード判定部１２１は、図３に示すテーブルを用いて、前記予測符号化モード、Ｌａｓｔ、Ｒｕｎ、およびＬｅｖｅｌの値の組み合わせから、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組がＶＬＣテーブルに存在するか否かを判定するようになっている（以下、ＶＬＣモード判定という。）。なお、予測符号化モードに関する情報（予測符号化情報）は、Ｉｎｔｒａ／Ｉｎｔｅｒ識別信号として可変長符号化装置１００の外部から入力されるようになっている。
【００６５】
また、ＶＬＣモード判定部１２１は、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組がＶＬＣテーブルに存在しない場合に、後述する３つのエスケープモードのうちの何れのエスケープモードで符号化するかを判定するようになっている（以下、エスケープモード判定という。）。
【００６６】
ＶＬＣモード判定、およびエスケープモード判定の結果は、ＶＬＣモード判定結果信号として、ＶＬＣモード選択部１２４に出力されるようになっている。なお、各判定結果と、ＶＬＣモード判定結果信号として出力される値（“００”、“０１”、“１０”、および“１１”の何れかの値）とは、本実施形態では、図４の表に示すように対応している。
【００６７】
（第１エスケープモード処理部１２２の構成）
第１エスケープモード処理部１２２は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、および前記予測符号化モードに基づいて、ＮｅｗＬｅｖｅｌ算出式（後述）によりＮｅｗＬｅｖｅｌを求め、それをＬｅｖｅｌと置き換えた（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組を新たな組としてＶＬＣモード選択部１２４に出力するようになっている（この処理を第１エスケープモード処理と呼ぶ）。
【００６８】
ＮｅｗＬｅｖｅｌ算出式は、次のように表される。
ＮｅｗＬｅｖｅｌ算出式：
ＮｅｗＬｅｖｅｌ＝ｓｉｇｎ（Ｌｅｖｅｌ）×（｜Ｌｅｖｅｌ｜−ＬＭＡＸ）
ここで、ｓｉｇｎ（Ｌｅｖｅｌ）はＬｅｖｅｌの符号を意味する。また、｜Ｌｅｖｅｌ｜は、Ｌｅｖｅｌの絶対値を意味する。
【００６９】
また、ＮｅｗＬｅｖｅｌ算出式に用いるＬＭＡＸは、可変長符号化すべき係数列と当該係数列を可変長符号化した可変長符号化データとの対応関係を示すＶＬＣテーブルにおいて、与えられた係数列のＬａｓｔ、およびＲｕｎに対応する最大のＬｅｖｅｌの値である。ＬＭＡＸの値は、具体的には、ＬＭＡＸテーブルを用いて求めればよい。ＬＭＡＸテーブルの一部を抜粋したものを図５に示す。
【００７０】
（第２エスケープモード処理部１２３の構成）
第２エスケープモード処理部１２３は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、および予測符号化モードに基づいて、ＮｅｗＲｕｎ算出式（後述）によりＮｅｗＲｕｎを求め、それをＲｕｎと置き換えた（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組を新たな組としてＶＬＣモード選択部１２４に出力するようになっている（この処理を第２エスケープモード処理と呼ぶ）。
【００７１】
ＮｅｗＲｕｎ算出式は、次のように表される。
ＮｅｗＲｕｎ算出式：
ＮｅｗＲｕｎ＝Ｒｕｎ−（ＲＭＡＸ＋１）
ＮｅｗＲｕｎ算出式に用いるＲＭＡＸは、前記ＶＬＣテーブルにおいて、与えられた係数列のＬａｓｔ、およびＬｅｖｅｌに対応する最大のＲｕｎの値である。ＲＭＡＸは、具体的には、ＲＭＡＸテーブルを用いて求める。ＲＭＡＸテーブルの一部を抜粋したものを図６に示す。
【００７２】
（ＶＬＣモード選択部１２４の構成）
ＶＬＣモード選択部１２４は、前記ＶＬＣモード判定結果に基づいて、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、第１エスケープモード処理部１２２が出力した（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組、および第２エスケープモード処理部１２３が出力した（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組の３組のうちから１組を選択するようになっている。
【００７３】
また、ＶＬＣモード選択部１２４は、選択された組を出力するパス（ＶＬＣ処理部１３１に対して出力するパス、およびＦＬＣ処理部１３２に対して出力するパス）を決定し、前記選択した組を選択されたパスからＶＬＣ符号化処理部１３０に出力するようになっている。
【００７４】
１つの組の選択、および選択された組を出力するパスの決定は、図７に示すテーブルに基づいて行われる。
【００７５】
また、ＶＬＣモード選択部１２４は、同時に何れのパスを選択したかを示す選択情報を含んだ選択信号もＶＬＣ符号化処理部１３０へ出力するようになっている。なお、この選択信号には、さらに前記ＶＬＣモード判定結果も含められ、後述するようにＶＬＣ符号化処理部１３０で使用される。
【００７６】
（ＶＬＣ符号化処理部１３０の構成）
ＶＬＣ符号化処理部１３０は、図８に示すようにＶＬＣ処理部１３１、ＦＬＣ処理部１３２、および符号化モード選択部１３３を備えて構成され、可変長符号化処理を施した符号化データを外部に出力するようになっている。
【００７７】
（ＶＬＣ処理部１３１の構成）
ＶＬＣ処理部１３１は、前記選択情報に応じて、ＶＬＣテーブル（図９を参照。）を用いて、ＶＬＣ符号化前処理部１２０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、可変長符号化を行って符号化データを生成し、符号化モード選択部１３３に出力するようになっている。
【００７８】
（ＦＬＣ処理部１３２の構成）
ＦＬＣ処理部１３２は、前記選択情報に応じて、ＶＬＣ符号化前処理部１２０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、固定長符号（Ｌａｓｔを１ビット、Ｒｕｎを６ビット、Ｍａｒｋｅｒビットを１ビット（１ビット符号“１”）、Ｌｅｖｅｌを１２ビット）に変換（固定長符号化）して符号化データを生成し、符号化モード選択部１３３に出力するようになっている。固定長符号化は、具体的には、ＦＬＣテーブル（図１０、図１１、および図１２を参照。）を用いて行われる。
【００７９】
（符号化モード選択部１３３の構成）
符号化モード選択部１３３は、ＶＬＣ符号化前処理部１２０が出力した選択情報に基づいて、ＶＬＣ処理部１３１から出力された符号化データ、およびＦＬＣ処理部１３２から出力された符号化データのうちから何れか一方を選択し、選択した符号化データに対し、ＶＬＣモード判定結果に応じた符号を付加して出力するようになっている（図１３を参照。）。
【００８０】
（可変長符号化装置１００の動作）
このように構成された可変長符号化装置１００では、マクロブロック内のデータに対して、ＤＣＴ、および量子化が行われ、変換部１１０によって（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が生成される。その後、図１４に示すステップＳ１〜Ｓ８の各処理が行われて、マクロブロック内のデータが符号化される。図１４は、各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【００８１】
まず、ステップＳ１では、変換部１１０は、符号化の対象となる（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組をＬａｓｔ信号、Ｒｕｎ信号、およびＬｅｖｅｌ信号として、ＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部１２４に出力する。
【００８２】
ステップＳ２では、ＶＬＣモード判定部１２１は、前記ＶＬＣモード判定、およびエスケープモード判定を行い、その結果をＶＬＣモード判定結果信号としてＶＬＣモード選択部１２４へ出力する。
【００８３】
ステップＳ３では、第１エスケープモード処理部１２２は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、ＮｅｗＬｅｖｅｌ算出式によりＮｅｗＬｅｖｅｌを求め、それをＬｅｖｅｌと置き換えた（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）を新たな組としてＶＬＣモード選択部１２４へ出力する。
【００８４】
ステップＳ４では、第２エスケープモード処理部１２３は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、ＮｅｗＲｕｎ算出式によりＮｅｗＲｕｎを求め、それをＲｕｎと置き換えた（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）新をたな組としてＶＬＣモード選択部１２４へ出力する。
【００８５】
ステップＳ５では、ＶＬＣモード選択部１２４は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組（すなわち符号化対象となっている組）、第１エスケープモード処理部１２２が出力した（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組、および第２エスケープモード処理部１２３が出力した（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組のうちから有効となる１つの組をＶＬＣモード判定結果に基づいて選択する。同時に、ＶＬＣモード判定結果に基づいて、選択された組の出力先（ＶＬＣ処理部１３１、またはＦＬＣ処理部１３２）を選択する。
【００８６】
選択された組は、新たな（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）として、選択された出力先に出力される。この際、“ＶＬＣ処理”と“ＦＬＣ処理”の何れの処理を選択したかを示す選択情報が選択信号として符号化モード選択部１３３に出力される。
【００８７】
ステップＳ６では、ＶＬＣ処理部１３１に対し、ＶＬＣモード選択部１２４において選択された有効な（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が入力される。
【００８８】
ＶＬＣ処理部１３１は、その入力された組に対し、ＶＬＣテーブルを用いて、一意的な符号割り当てを行い、その結果である符号化データを符号化モード選択部１３３に出力する。
【００８９】
ステップＳ７では、ＦＬＣ処理部１３２に対し、ＶＬＣモード選択部１２４において選択された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が入力される。
【００９０】
ＦＬＣ処理部１３２は、その組に対し固定長符号（Ｌａｓｔを１ビット、Ｒｕｎを６ビット、Ｍａｒｋｅｒビットを１ビット（１ビット符号“１”）、Ｌｅｖｅｌを１２ビット）の変換を行い（図１０〜図１２を参照。）、その結果である符号化データを符号化モード選択部１３３に出力する。
【００９１】
ステップＳ８では、符号化モード選択部１３３は、ＶＬＣモード選択部１２４入力された選択情報に基づいて、ＶＬＣ処理部１３１から出力された符号化データ、およびＦＬＣ処理部１３２から出力された符号化データのうちから一方の符号化データを選択する。また、選択信号に含まれたＶＬＣモード判定結果に基づいて、ＶＬＣ処理部１３１またはＦＬＣ処理部１３２から受け取った符号の先頭に図１３の表に示す符号を付加した上で、符号化データとして出力する。
【００９２】
上記で説明した本可変長符号化装置の動作を、ＶＬＣモード判定結果が“００”、“０１”、“１０”、および“１１”の各場合について具体的な数値を用いて説明する。
【００９３】
《１．ＶＬＣモード判定結果が“００”の場合》
例えば、処理対象のマクロブロックがＩｎｔｒａマクロブロックであり、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（０，９，２）の場合の各ステップの処理を説明する。
【００９４】
（ステップＳ１）  変換部１１０は、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組である（０，９，２）を、ＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部１２４に出力する。
【００９５】
（ステップＳ２）  ＶＬＣモード判定部１２１は、ＶＬＣモード判定テーブルを用いてＶＬＣモード判定を行う。（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（０，９，２）で、かつ処理対象のマクロブロックが“Ｉｎｔｒａマクロブロック”なので、ＶＬＣモード判定結果は、“００”となり、結果の“００”がＶＬＣモード選択部１２４に出力される。
【００９６】
（ステップＳ３）  第１エスケープモード処理部１２２は、ＬＭＡＸの減算処理を行う。この例では、Ｌａｓｔ＝“０”，Ｒｕｎ＝“９”なので、ＬＭＡＸ＝“２”となり、ＮｅｗＬｅｖｅｌ＝“０”となる（図５を参照。）。これにより、第１エスケープモード処理部１２２からは、ＮｅｗＬｅｖｅｌを新たなＬｅｖｅｌとした（０，９，０）がＶＬＣモード選択部１２４に出力される。
【００９７】
（ステップＳ４）  第２エスケープモード処理部１２３は、ＲＭＡＸの減算処理を行う。Ｌａｓｔ＝“０”，Ｌｅｖｅｌ＝“２”なので、ＲＭＡＸ＝“９”となり（図６を参照。）、ＮｅｗＲｕｎ＝“−１”となる。これにより、第２エスケープモード処理部１２３からは、ＮｅｗＲｕｎを新たなＲｕｎとした（０、−１，２）がＶＬＣモード選択部１２４に出力される。
【００９８】
（ステップＳ５）  ＶＬＣモード選択部１２４には、変換部１１０が出力した（０，９，２）、第１エスケープモード処理部１２２が出力した（０，９，０）、第２エスケープモード処理部１２３が出力した（０、−１，２）の３組が入力される。
【００９９】
また、ＶＬＣモード選択部１２４には、ＶＬＣモード判定結果信号も同時に入力される。この例では、ＶＬＣモード判定結果が“００”であるため、変換部１１０が出力した（０，９，２）が出力する組として選択される（図７を参照。）。また、ＶＬＣモード判定結果によって出力先も決定され、この例では、“ＶＬＣ処理部”が選択される。
【０１００】
以上により、変換部１１０が出力した（０，９，２）がＶＬＣ処理部１３１に出力される。また、符号化モード選択部１３３に出力する選択情報は、“ＶＬＣ処理部”を示す。
【０１０１】
（ステップＳ６）  ＶＬＣ処理部１３１は、ＶＬＣテーブル（図９を参照。）を用いて、入力された（０，９，２）に対して符号化処理を施して“０００００１０００１１０”を符号化モード選択部１３３に出力する。
【０１０２】
（ステップＳ７）  ＦＬＣ処理部１３２は、選択情報が“ＶＬＣ処理部”を示しているので処理を実行しない。
【０１０３】
（ステップＳ８）  符号化モード選択部１３３は、ＶＬＣモード判定結果＝“００”なのでＶＬＣ処理部１３１の出力した符号化データに符号を付加せず（図１３を参照。）に、（０，９，２）を符号化した結果として“０００００１０００１１０”を出力する。
【０１０４】
《２．ＶＬＣモード判定結果が“０１”の場合》
例えば、処理対象のマクロブロックがＩｎｔｅｒマクロブロックであり、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（０，２，５）の場合の各ステップの処理を説明する。
【０１０５】
（ステップＳ１）  変換部１１０は、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組である（０，２，５）をＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部１２４に出力する。
【０１０６】
（ステップＳ２）  ＶＬＣモード判定部１２１では、ＶＬＣモード判定テーブル（図３を参照）を用いてＶＬＣモード判定を行う。（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（０，２，５）、かつ処理対象のマクロブロックが“Ｉｎｔｅｒマクロブロック”なので、ＶＬＣモード判定結果は、“０１”となり、結果の“０１”がＶＬＣモード選択部１２４に出力される。
【０１０７】
（ステップＳ３）  第１エスケープモード処理部１２２は、ＬＭＡＸの減算処理を行う。この例では、Ｌａｓｔ＝“０”、Ｒｕｎ＝“２”なので、ＬＭＡＸ＝“４”となり（図５を参照。）、ＮｅｗＬｅｖｅｌ＝“１”となる。これにより、第１エスケープモード処理部１２２からは、ＮｅｗＬｅｖｅｌを新たなＬｅｖｅｌとした（０，２，１）がＶＬＣモード選択部１２４に出力される。
【０１０８】
（ステップＳ４）  第２エスケープモード処理部１２３は、ＲＭＡＸの減算処理を行う。この例では、Ｌａｓｔ＝“０”，Ｌｅｖｅｌ＝“５”なので、ＲＭＡＸ＝“１”となり（図６を参照。）、ＮｅｗＲｕｎ＝“０”となる。これにより、第２エスケープモード処理部１２３からは、ＮｅｗＲｕｎを新たなＲｕｎとした（０，０，５）がＶＬＣモード選択部１２４に出力される。
【０１０９】
（ステップＳ５）  ＶＬＣモード選択部１２４には、変換部１１０が出力した（０，２，５）、第１エスケープモード処理部１２２が出力した（０，２，１）、および第２エスケープモード処理部１２３が出力した（０，０，５）の３組が入力される。また、ＶＬＣモード判定結果信号も同時に入力される。この例では、ＶＬＣモード判定結果が“０１”なので、第１エスケープモード処理部１２２が出力した（０，２，１）が選択される（図３を参照）。
【０１１０】
また、ＶＬＣモード判定結果により出力先も決定され、この例では、“ＶＬＣ処理部”が選ばれる。したがって、（０，２，１）がＶＬＣ処理部１３１に出力される。また、符号化モード選択部１３３に出力する選択情報は、“ＶＬＣ処理部”を示す。
【０１１１】
（ステップＳ６）  ＶＬＣ処理部１３１は、ＶＬＣテーブル（図９を参照。）を用いて、入力された（０，２，１）の組に対して符号化処理を施して、“１１１００”を符号化モード選択部１３３に出力する。
【０１１２】
（ステップＳ７）  ＦＬＣ処理部１３２は、選択情報が“ＶＬＣ処理部”を示しているので処理を実行しない。
【０１１３】
（ステップＳ８）  符号化モード選択部１３３は、ＶＬＣモード判定結果＝“０１”なので、“０００００１１０１”を符号“１１１００”の先頭に付加する（図１３を参照）。最終的には“０００００１１０１１１１００”を（０，２，５）を符号化した結果として出力する。
【０１１４】
《３．ＶＬＣモード判定結果が“１０”の場合》
例えば、処理対象のマクロブロックがＩｎｔｒａマクロブロックであり、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（０，３，−９）の場合の各ステップの処理を説明する。
【０１１５】
（ステップＳ１）  変換部１１０は、ＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部１２４に（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組である（０，３，−９）を出力する。
【０１１６】
（ステップＳ２）  ＶＬＣモード判定部１２１は、ＶＬＣモード判定テーブル（図３を参照。）を用いてＶＬＣモード判定を行う。Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（０，３，−９）、かつ処理対象のマクロブロックが“Ｉｎｔｒａマクロブロック”なので、ＶＬＣモード判定結果は、“１０”となり、結果の“１０”がＶＬＣモード選択部１２４に出力される。
【０１１７】
（ステップＳ３）  第１エスケープモード処理部１２２は、ＬＭＡＸの減算処理を行う。この例では、Ｌａｓｔ＝“０”，Ｒｕｎ＝“３”なので、ＬＭＡＸ＝“４”となり（図５を参照。）、ＮｅｗＬｅｖｅｌ＝“５”となる。これにより、第１エスケープモード処理部１２２からは、ＮｅｗＬｅｖｅｌを新たなＬｅｖｅｌとした（０，３，−５）がＶＬＣモード選択部１２４に出力される。
【０１１８】
（ステップＳ４）  第２エスケープモード処理部１２３では、ＲＭＡＸの減算処理が行われる。この例では、Ｌａｓｔ＝“０”，Ｌｅｖｅｌ＝“−９”なので、ＲＭＡＸ＝“１”となり（図６を参照。）、ＮｅｗＲｕｎ＝“１”となる。これにより、第２エスケープモード処理部１２３からはＮｅｗＲｕｎを新たなＲｕｎとした（０，１，−９）がＶＬＣモード選択部１２４に出力される。
【０１１９】
（ステップＳ５）  ＶＬＣモード選択部１２４には、変換部１１０が出力した（０，３，−９）、第１エスケープモード処理部１２２が出力した（０，３，−５）、および第２エスケープモード処理部１２３が出力した（０、１，−９）の３組が入力される。
【０１２０】
また、ＶＬＣモード判定結果信号も同時に入力される。この例では、ＶＬＣモード判定結果が“１０”であるため、第２エスケープモード処理部１２３が出力した（０，１，−９）が選択される（図７を参照）。また、ＶＬＣモード判定結果によって出力先も決定され、この例では、“ＶＬＣ処理部”が選択される。以上により、第２エスケープモード処理部１２３が出力した（０，１，−９）がＶＬＣ処理部１３１に出力される。また、符号化モード選択部１３３に送る選択情報は、“ＶＬＣ処理部”を示す信号となる。
【０１２１】
（ステップＳ６）  ＶＬＣ処理部１３１は、ＶＬＣテーブル（図９を参照）を用いて、入力された（０，１，−９）の組に対して符号化処理を施して、“０００００１０１００１１１”を符号化モード選択部１３３に出力する。
【０１２２】
（ステップＳ７）  ＦＬＣ処理部１３２は、選択情報が“ＶＬＣ処理部”を示しているので処理を実行しない。
【０１２３】
（ステップＳ８）  符号化モード選択部１３３は、ＶＬＣモード判定結果＝“１０”なので、“０００００１１１０”を符号“０００００１０１００１１１”の先頭に付加する（図１３を参照。）。最終的には“０００００１１１００００００１０１００１１１”を（０，３，−９）を符号化した結果として出力する。
【０１２４】
《４．ＶＬＣモード判定結果が“１１”の場合》
例えば、処理対象のマクロブロックがＩｎｔｒａマクロブロックであり、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（１，３，５）の場合の各ステップの処理を説明する。
【０１２５】
（ステップＳ１）  変換部１１０は、ＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部１２４に（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組として（１，３，５）を出力する。
【０１２６】
（ステップＳ２）  ＶＬＣモード判定部１２１は、ＶＬＣモード判定テーブル（図３を参照）を用いてＶＬＣモード判定を行う。Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（１，３，５）、かつ処理対象のマクロブロックが“Ｉｎｔｒａマクロブロック”なので、ＶＬＣモード判定結果は、“１１”となり、結果の“１１”がＶＬＣモード選択部１２４に出力される。
【０１２７】
（ステップＳ３）  第１エスケープモード処理部１２２は、ＬＭＡＸの減算処理を行う。この例では、Ｌａｓｔ＝“１”，Ｒｕｎ＝“３”なので、ＬＭＡＸ＝“２”となり（図５を参照。）、ＮｅｗＬｅｖｅｌ＝“３”となる。これにより、第１エスケープモード処理部１２２からは、ＮｅｗＬｅｖｅｌを新たなＬｅｖｅｌとした（１，３，３）がＶＬＣモード選択部１２４に出力される。
【０１２８】
（ステップＳ４）  第２エスケープモード処理部１２３では、ＲＭＡＸの減算処理が行われる。この例では、Ｌａｓｔ＝“１”，Ｌｅｖｅｌ＝“５”なので、ＲＭＡＸ＝“０”となり（図６を参照。）、ＮｅｗＲｕｎ＝“２”となる。これにより、第２エスケープモード処理部１２３からはＮｅｗＲｕｎを新たなＲｕｎとした（１，２，５）がＶＬＣモード選択部１２４に出力される。
【０１２９】
（ステップＳ５）  ＶＬＣモード選択部１２４には、変換部１１０が出力した（１，３，５）、第１エスケープモード処理部１２２が出力した（１，３，３）、および第２エスケープモード処理部１２３が出力した（１、２，５）の３組が入力される。
【０１３０】
また、ＶＬＣモード判定結果信号も同時に入力される。この例では、ＶＬＣモード判定結果が“１１”であるため、変換部１１０が出力した（１，３，５）が選択される（図７を参照。）。また、ＶＬＣモード判定結果によって出力先も決定され、この例では、“ＦＬＣ処理部”が選択される。以上により、（１，３，５）がＦＬＣ処理部１３２に出力される。また、符号化モード選択部１３３に出力する選択情報は“ＦＬＣ処理部”を示す。
【０１３１】
（ステップＳ６）  ＶＬＣ処理部１３１は、選択情報が“ＦＬＣ処理部”を示しているため処理を実行しない。
【０１３２】
（ステップＳ７）  ＦＬＣ処理部１３２は、入力された（１，３，５）の組に対して固定長符号化処理を施して“１００００１１１０００００００００１０１”を符号化モード選択部１３３に出力する（図１０〜図１２を参照）。
【０１３３】
（ステップＳ８）  符号化モード選択部１３３は、ＶＬＣモード判定結果＝“１１”なので、“０００００１１１１”を符号“１００００１１１０００００００００１０１”の先頭に付加する（図１３を参照）。最終的には、“０００００１１１１１００００１１１０００００００００１０１”を（１，３，５）を符号化した結果として出力する。
【０１３４】
上記のように本実施形態によれば、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）に適するエスケープモードが、ＶＬＣテーブル比較の前に既に決定されているので、ＶＬＣテーブルを複数個持つことなく、全ての（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）を１サイクルで符号化することが可能になる。
【０１３５】
《発明の実施形態２》
実施形態１の可変長符号化装置よりもさらに回路規模を抑えることが可能な装置の例を説明する。なお、以下の実施形態において前記実施形態１等と同様の機能を有する構成要素については、同一の符号を付して説明を省略する。
【０１３６】
図１５は、本発明の実施形態２に係る可変長符号化装置２００の構成を示すブロック図である。可変長符号化装置２００は、実施形態１における可変長符号化装置１００のＶＬＣ符号化前処理部１２０に代えてＶＬＣ符号化前処理部２２０を備えて構成されている。
【０１３７】
（ＶＬＣ符号化前処理部２２０の構成）
ＶＬＣ符号化前処理部２２０は、図１６に示すように、ＶＬＣモード判定部１２１、エスケープモード処理部２２２、およびＶＬＣモード選択部２２４を備えて構成されている。
【０１３８】
エスケープモード処理部２２２は、前記第１エスケープモード処理、および第２エスケープモード処理を行う機能を有し、Ｉｎｔｒａ／Ｉｎｔｅｒ識別信号（予測符号化モードを表す信号）、およびＶＬＣモード判定部１２１が出力したＶＬＣモード判定結果に基づいて、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、前記第１エスケープモード処理によって生成された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、および第２エスケープモード処理によって生成された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組のうちの何れか一つの組をＶＬＣモード選択部２２４に出力するようになっている。
【０１３９】
このように、エスケープモード処理部２２２に前記第１エスケープモード処理、および第２エスケープモード処理の両方の処理を行う機能を備えさせることにより、回路の共通化を図ることが可能になり、回路規模削減に貢献できる。
【０１４０】
ＶＬＣモード選択部２２４は、ＶＬＣモード判定部１２１が出力したＶＬＣモード判定結果に基づいて、エスケープモード処理部２２２が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組を出力するパス（ＶＬＣ処理部１３１に対して出力するパス、およびＦＬＣ処理部１３２に対して出力するパス）を選択し、選択したパスを介して、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組をＶＬＣ符号化処理部１３０に出力するようになっている。ＶＬＣモード選択部２２４による前記パスの選択は、具体的には、図１７に示す表に基づいて行われる。
【０１４１】
また、ＶＬＣモード選択部２２４は、同時に何れのパスを選択したかを示す選択情報を選択信号としてＶＬＣ符号化処理部１３０に出力するようになっている。
【０１４２】
（可変長符号化装置２００の動作）
このように構成された可変長符号化装置２００では、まず、マクロブロック内のデータに対して、ＤＣＴ、および量子化が行われ、変換部１１０によって（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が生成される。その後、図１８に示すステップＳ１〜Ｓ７の処理が行われ、マクロブロック内のデータが符号化される。図１８は、各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【０１４３】
まず、ステップＳ１では、変換部１１０は、符号化の対象となる（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組をＬａｓｔ信号、Ｒｕｎ信号、およびＬｅｖｅｌ信号として、ＶＬＣモード判定部１２１、エスケープモード処理部２２２、およびＶＬＣモード選択部２２４に出力する。
【０１４４】
ステップＳ２では、ＶＬＣモード判定部１２１は、前記ＶＬＣモード判定、およびエスケープモード判定を行い、その結果をＶＬＣモード判定結果信号としてＶＬＣモード選択部２２４、およびエスケープモード処理部２２２に出力する。
【０１４５】
ステップＳ３では、エスケープモード処理部２２２は、予測符号化モード、およびＶＬＣモード判定結果に基づいて、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、前記第１エスケープモード処理によって生成された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、および第２エスケープモード処理によって生成された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組のうちの何れか一つの組をＶＬＣモード選択部２２４に出力する。
【０１４６】
ステップＳ４では、ＶＬＣモード選択部２２４は、図１７に示す表を用い、ＶＬＣモード判定部１２１が出力したＶＬＣモード判定結果に基づいて、エスケープモード処理部２２２が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組を出力するパス（ＶＬＣ処理部１３１に対して出力するパス、およびＦＬＣ処理部１３２に対して出力するパス）を選択し、選択したパスを介して、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組をＶＬＣ符号化処理部１３０に出力する。また、ＶＬＣモード選択部２２４は、同時に何れのパスを選択したかを示す選択情報を選択信号としてＶＬＣ符号化処理部１３０に出力する。
【０１４７】
ステップＳ５では、ＶＬＣ処理部１３１に対し、ＶＬＣモード選択部２２４において選択された有効な（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が入力される。ＶＬＣ処理部１３１は、その入力された組に対し、ＶＬＣテーブルを用いて、一意的な符号割り当てを行い、その結果である符号化データを符号化モード選択部１３３に出力する。
【０１４８】
ステップＳ６では、ＦＬＣ処理部１３２に対し、ＶＬＣモード選択部１２４において選択された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が入力される。
【０１４９】
ＦＬＣ処理部１３２は、その組に対し固定長符号（Ｌａｓｔを１ビット、Ｒｕｎを６ビット、Ｍａｒｋｅｒビットを１ビット（１ビット符号“１”）、Ｌｅｖｅｌを１２ビット）の変換を行い（図１０〜図１２を参照。）、その結果である符号化データを符号化モード選択部１３３に出力する。
【０１５０】
ステップＳ７では、符号化モード選択部１３３は、ＶＬＣモード選択部１２４入力された選択情報に基づいて、ＶＬＣ処理部１３１から出力された符号化データとＦＬＣ処理部１３２から出力された符号化データのうちから一方の符号化データを選択する。また、選択信号に含まれたＶＬＣモード判定結果に基づいて、ＶＬＣ処理部１３１またはＦＬＣ処理部１３２から受け取った符号の先頭に図１３の表に示す符号を付加した上で、符号化データとして出力する。
【０１５１】
上記で説明した本可変長符号化装置の動作を、例えば、ＶＬＣモード判定結果が“００”、処理対象のマクロブロックがＩｎｔｒａマクロブロックであり、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（０，９，２）である場合における各ステップの処理を説明する。
【０１５２】
（ステップＳ１）  変換部１１０は、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組である（０，９，２）をＶＬＣモード判定部１２１、エスケープモード処理部２２２に出力する。
【０１５３】
（ステップＳ２）  （Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（０，９，２）で、かつ処理対象のマクロブロックが“Ｉｎｔｒａマクロブロック”なので、ＶＬＣモード判定部１２１のＶＬＣモード判定結果が“００”となり、判定結果の“００”がＶＬＣモード選択部２２４、およびエスケープモード処理部２２２に出力される。
【０１５４】
（ステップＳ３）  エスケープモード処理部２２２では、ＶＬＣモード判定結果に基づき、必要に応じ第１エスケープモード処理、または第２エスケープモード処理が行われる。この例では、ＶＬＣモード判定結果が“００”なので、第１エスケープモード処理、および第２エスケープモード処理は行われず、（０，９，２）の組に対し、何の変更も加えられずにＶＬＣモード選択部２２４に出力される。
【０１５５】
（ステップＳ４）  ＶＬＣモード選択部２２４には、ＶＬＣモード判定部１２１が出力したＶＬＣモード判定結果を受け、エスケープモード処理部２２２が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組の出力先を決定する。この例では、ＶＬＣモード判定結果が“００”であるため“ＶＬＣ処理部”が選ばれる（図７を参照．）。これにより、（０，９，２）がＶＬＣ処理部１３１に出力される。また、符号化モード選択部１３３には、“ＶＬＣ処理”を示す選択情報が出力される。
【０１５６】
（ステップＳ５）  ＶＬＣ処理部１３１は、ＶＬＣテーブル（図９を参照。）を用いて符号化処理を行う。この例では、入力された（０，９，２）の組に対して、符号化処理を施すと“０００００１０００１１０”となる。この符号化結果を符号化モード選択部１３３に出力する。
【０１５７】
（ステップＳ６）  ＦＬＣ処理部１３２は、選択情報が“ＶＬＣ処理部”を示しているため、処理は実行しない。
【０１５８】
（ステップＳ７）  符号化モード選択部１３３では、ＶＬＣモード選択部２２４が出力した選択情報に基づいて、符号化モードの選択を行う。この例では、選択情報が“ＶＬＣ処理部”を示しているためＶＬＣ処理部１３１の出力を符号化データとして受け取る。そして、選択信号に含まれるＶＬＣモード判定結果が“００”であるため符号を付加せず（図１３を参照。）、“０００００１０００１１０”を（０，９，２）を符号化した結果として出力する。
【０１５９】
上記のように本実施形態においても、やはり、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）に適するエスケープモードが、ＶＬＣテーブル比較の前に既に決定されているので、ＶＬＣテーブルを複数個持つことなく、全ての（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）を１サイクルで符号化することが可能になる。
【０１６０】
しかも、本実施形態では、前記第１エスケープモード処理、および第２エスケープモード処理を同時に行う必要がないので、エスケープモード処理部２２２に、前記第１エスケープモード処理、および第２エスケープモード処理の両方の処理を行う機能を備えさせることにより、回路の共通化を図ることが可能になり、回路規模削減に貢献できる。
【０１６１】
《発明の実施形態３》
実施形態１の可変長符号化装置よりもＶＬＣモード判定テーブルの規模を大幅に削減することが可能な装置の例を説明する。
【０１６２】
図１９は、本発明の実施形態３に係る可変長符号化装置３００の構成を示すブロック図である。可変長符号化装置３００は、実施形態１における可変長符号化装置１００のＶＬＣ符号化前処理部１２０に代えて、ＶＬＣ符号化前処理部３２０を備えて構成されている。
【０１６３】
（ＶＬＣ符号化前処理部３２０の構成）
ＶＬＣ符号化前処理部３２０は、図２０に示すように、ＶＬＣモード選択部１２４、ＦＬＣモード判定部３２１、ＶＬＣモード判定部３２２、第１エスケープモード処理部３２３、および第２エスケープモード処理部３２４を備えて構成されている。
【０１６４】
ＦＬＣモード判定部３２１は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組の符号化に、第３のエスケープモードが最適か否かを判定するようになっている。
【０１６５】
この判定では、まず、Ｉｎｔｒａ／Ｉｎｔｅｒ識別信号が示す予測符号化モード、および（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組のＬａｓｔに対して、図２１に示すＦＬＣ判定テーブルを用いて、第３のエスケープモードが最適か否かを切り分けるＲｕｎＴｈｒとＬｅｖｅｌＴｈｒを生成する。そして、Ｒｕｎ≦ＲｕｎＴｈｒ、かつＬｅｖｅｌ≦ＬｅｖｅｌＴｈｒを充たさない場合に、第３のエスケープモードが最適と判定する。判定の結果（以下、ＦＬＣモード判定結果と言う。）は、ＦＬＣモード判定結果信号として出力される。ＦＬＣモード判定結果は、本実施形態では、“０”、“１”の何れかの出力値である。各出力値の意味は、図２２に示す表のようになっている。
【０１６６】
ＶＬＣモード判定部３２２は、ＦＬＣモード判定部３２１で第３のエスケープモードが最適と判断された場合（具体的には、ＦＬＣモード判定結果が“１”の場合）には、ＶＬＣモード判定結果として“第３のエスケープモード”を示す“１１”を出力し、ＦＬＣモード判定部３２１で第３のエスケープモードが最適と判断されなかった場合には、前記ＶＬＣモード判定を行って、ＶＬＣモード判定の判定結果をＶＬＣモード選択部１２４に出力するようになっている。
【０１６７】
第１エスケープモード処理部３２３は、ＦＬＣモード判定部３２１で第３のエスケープモードが最適と判断されなかった場合には、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対して前記第１エスケープモード処理をしてＶＬＣモード選択部１２４に出力し、ＦＬＣモード判定部３２１で第３のエスケープモードが最適と判断された場合には、第１エスケープモード処理を行わずに入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）をＶＬＣモード選択部１２４に出力するようになっている。
【０１６８】
第２エスケープモード処理部３２４は、ＦＬＣモード判定部３２１で第３のエスケープモードが最適と判断されなかった場合には、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対して前記第２エスケープモード処理をしてＶＬＣモード選択部１２４に出力し、ＦＬＣモード判定部３２１で第３のエスケープモードが最適と判断された場合には、第２エスケープモード処理を行わずに、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）をそのままＶＬＣモード選択部１２４に出力するようになっている。
【０１６９】
（可変長符号化装置３００の動作）
このように構成された可変長符号化装置３００では、まず、マクロブロック内のデータに対して、ＤＣＴ、および量子化が行われ、変換部１１０によって（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が生成される。その後、図２３に示すステップＳ１〜Ｓ９の処理が行われ、マクロブロック内のデータが符号化される。図２３は、各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【０１７０】
まず、ステップＳ１では、変換部１１０は、符号化の対象となる（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組をＬａｓｔ信号、Ｒｕｎ信号、およびＬｅｖｅｌ信号として、ＦＬＣモード判定部３２１、ＶＬＣモード判定部３２２、第１エスケープモード処理部３２３、および第２エスケープモード処理部３２４に出力する。
【０１７１】
ステップＳ２では、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組の符号化に、第３のエスケープモードが最適か否かをＦＬＣモード判定部３２１が判定する。ＦＬＣモード判定結果は、ＶＬＣモード判定部３２２、第１エスケープモード処理部３２３、および第２エスケープモード処理部３２４に出力される。
【０１７２】
ステップＳ３では、ＶＬＣモード判定部３２２がＦＬＣモード判定結果に応じて、ＶＬＣモード判定を行う。
【０１７３】
ステップＳ４では、第１エスケープモード処理部３２３が、ＦＬＣモード判定結果に応じて、第１エスケープモード処理を行う。
【０１７４】
ステップＳ５では、第２エスケープモード処理部３２４が、ＦＬＣモード判定結果に応じて、第２エスケープモード処理を行う。
【０１７５】
ステップＳ６では、ＶＬＣモード選択部１２４は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、第１エスケープモード処理部３２３が出力した（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組、および第２エスケープモード処理部３２４が出力した（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組のうちから有効となる１つの組をＶＬＣモード判定結果に基づいて選択する。同時に、ＶＬＣモード判定結果に基づいて、選択された組の出力先（ＶＬＣ処理部１３１、またはＦＬＣ処理部１３２）を選択する。選択された組は、新たな（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）として、選択された出力先に出力される。この際、“ＶＬＣ処理”と“ＦＬＣ処理”の何れの処理を選択したかを示す選択情報が選択信号として符号化モード選択部１３３に出力される。
【０１７６】
ステップＳ７では、ＶＬＣモード選択部１２４で出力先にＶＬＣ処理部１３１が選択されると、ＶＬＣ処理部１３１には、符号化モード選択部１３３において選択された有効な（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が入力される。ＶＬＣ処理部１３１は、入力された組に対し、ＶＬＣテーブルから一意的な符号割り当てを行い、その結果を符号化モード選択部１３３に出力する。
【０１７７】
ステップＳ８では、ＶＬＣモード選択部１２４で出力先にＦＬＣ処理部１３２が選択されると、ＦＬＣ処理部１３２にはＶＬＣモード選択部１２４において選択された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が入力される。ＦＬＣ処理部１３２は、入力された組に対し固定長符号の変換を行い、符号化した結果を符号化モード選択部１３３に出力する。
【０１７８】
ステップＳ９では、符号化モード選択部１３３は、ＶＬＣモード選択部１２４入力された選択情報に基づいて、ＶＬＣ処理部１３１から出力された符号化データ、およびＦＬＣ処理部１３２から出力された符号化データのうちから一方の符号化データを選択する。また、選択信号に含まれたＶＬＣモード判定結果に基づいて、ＶＬＣ処理部１３１またはＦＬＣ処理部１３２から受け取った符号の先頭に図１３の表に示す符号を付加した上で、符号化データとして出力する。
【０１７９】
上記で説明した本可変長符号化装置の動作を、例えば、ＦＬＣモード判定結果が“１”、処理対象のマクロブロックがＩｎｔｅｒマクロブロックであり、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（１，３，７）である場合における各ステップの処理を説明する。
【０１８０】
（ステップＳ１）  変換部１１０からＦＬＣモード判定部３２１、ＶＬＣモード判定部３２２、第１エスケープモード処理部３２３、第２エスケープモード処理部３２４、およびＶＬＣモード選択部１２４に（１，３，７）が入力される。
【０１８１】
（ステップＳ２）  Ｌａｓｔ＝“１”で、かつ処理対象のマクロブロックが“Ｉｎｔｅｒマクロブロック”なので、ＦＬＣモード判定部３２１は、ＦＬＣモード判定テーブル（図２１を参照。）からＲｕｎＴｈｒ＝“６４”とＬｅｖｅｌＴｈｒ＝“６”とを求める。Ｒｕｎに関しては、Ｒｕｎ≦ＲｕｎＴｈｒを充たしているが、Ｌｅｖｅｌに関しては、Ｌｅｖｅｌ≦ＬｅｖｅｌＴｈｒを充たしていない。したがって、第３のエスケープモードが最適であると判定され、ＦＬＣモード判定部３２１からはＦＬＣモード判定結果として“１”がＶＬＣモード判定部３２２、第１エスケープモード処理部３２３、および第２エスケープモード処理部３２４に出力される。
【０１８２】
（ステップＳ３）  ＶＬＣモード判定部３２２は、ＦＬＣモード判定部３２１が出力したＦＬＣモード判定結果が“１”であるため、ＶＬＣモード判定結果として“１１”をＶＬＣモード選択部１２４に出力する。
【０１８３】
（ステップＳ４）  第１エスケープモード処理部３２３は、ＦＬＣモード判定部３２１が出力したＦＬＣモード判定結果が“１”であるため、入力された（１，３，７）の組をそのままを、ＶＬＣモード選択部１２４に出力する。
【０１８４】
（ステップＳ５）  第２エスケープモード処理部３２４は、ＦＬＣモード判定部３２１が出力したＦＬＣモード判定結果が“１”であるため、入力された（１，３，７）の組をそのままを、ＶＬＣモード選択部１２４に出力する。
【０１８５】
（ステップＳ６）  ＶＬＣモード選択部１２４は、ＶＬＣモード判定部３２２が出力したＶＬＣモード判定結果が“１１”であるため、変換部１１０が出力した（１，３，７）を選択する。また、ＶＬＣモード選択部１２４は、出力先として“ＦＬＣ処理部”を選び、選択した（１，３，７）をＦＬＣ処理部１３２に出力する。さらにＶＬＣモード選択部１２４は、符号化モード選択部１３３に“ＦＬＣ処理”を示す選択情報を出力する。
【０１８６】
（ステップＳ７）  ＶＬＣ処理部１３１では、選択情報が“ＦＬＣ処理部”で処理することを示しているため、処理は実行しない。
【０１８７】
（ステップＳ８）  ＦＬＣ処理部１３２では、（１，３，７）に対して、固定長符号化処理を施して、符号化結果の“１００００１１１０００００００００１１１”を符号化モード選択部１３３に出力する。
【０１８８】
（ステップＳ９）  符号化モード選択部１３３では、ＶＬＣモード選択部１２４が出力した選択情報に基づいて、符号化モードの選択を行う。この例では、選択情報が“ＦＬＣ処理”を示しているため、ＦＬＣ処理部１３２の出力を符号化データとして受け取る。そして、ＶＬＣモード判定結果を基に、受け取った符号化データの先頭に符号を付加する。ＶＬＣモード判定結果が“１１”であるため“０００００１１１１”を符号化データ“１００００１１１０００００００００１１１”の先頭に付加する（図１３を参照。）。最終的には、“０００００１１１１００００１１１０００００００００１１１”を（１，３，７）を符号化した結果として出力する。
【０１８９】
上記のように本実施形態においても、やはり、入力された（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）に適するエスケープモードが、ＶＬＣテーブル比較の前に既に決定されているので、ＶＬＣテーブルを複数個持つことなく、全ての（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）を１サイクルで符号化することが可能になる。
【０１９０】
しかも、ＶＬＣモード判定よりも先に、ＶＬＣモード判定よりも簡単な比較処理のみで済むＦＬＣモード判定を第１に行うので、ＶＬＣモード判定を行う（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組を減らすことができ、ＶＬＣモード判定テーブルの規模を大幅に削減することが可能になる。
【０１９１】
《発明の実施形態４》
ＶＬＣモード判定テーブルのサイズを実施形態１〜３の可変長符号化装置よりも小さくすることが可能な装置の例を説明する。
【０１９２】
図２４は、本発明の実施形態４に係る可変長符号化装置４００の構成を示すブロック図である。可変長符号化装置４００は、変換部１１０、ＶＬＣ符号化前処理部４２０、およびＶＬＣ符号化処理部１３０を備えて構成されている。
【０１９３】
（ＶＬＣ符号化前処理部４２０の構成）
ＶＬＣ符号化前処理部４２０は、図２５に示すように、ＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部４２４を備えて構成されている。
【０１９４】
ＶＬＣモード選択部４２４は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組、第１エスケープモード処理部１２２が出力した（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組、および第２エスケープモード処理部１２３が出力した（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組の３組のうちから１組を選択する場合に、前記ＶＬＣモード判定結果に加え、ＶＬＣ符号化処理部４３０が出力した次モード要求信号が示す次モード要求情報（後述）も用いて有効な組の選択を行う点が、実施形態１等におけるＶＬＣモード判定部１２１と異なっている。
【０１９５】
ＶＬＣモード判定結果および次モード要求情報を用いた選択は、具体的には図２６に示すテーブルに基づいて行われる。このテーブルに示すように、ＶＬＣモード選択部４２４による選択は、２つの組が選択される場合がある。
【０１９６】
（ＶＬＣ符号化処理部４３０の構成）
ＶＬＣ符号化処理部４３０は、図２７に示すように、ＦＬＣ処理部１３２、ＶＬＣ処理部４３１、および符号化モード選択部４３３を備えて構成されている。
【０１９７】
ＶＬＣ処理部４３１は、ＶＬＣモード選択部４２４が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が前記ＶＬＣテーブル（図９を参照。）に存在する場合に、前記ＶＬＣテーブルに基づいて（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組を可変長符号化して、符号化データを符号化モード選択部４３３に出力するようになっている。
【０１９８】
また、ＶＬＣ処理部４３１は、ＶＬＣモード選択部４２４が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が前記ＶＬＣテーブルに存在するか否か（すなわち可変長符号化を完了できたかどうか）を示す符号化完了情報を符号化完了信号として符号化モード選択部４３３に出力するようになっている。本実施形態では、符号化完了情報は、具体的には、符号化処理を完了できなかった場合に、“０”、符号化処理を完了できた場合に、“１”に設定される。
【０１９９】
符号化モード選択部４３３は、選択情報が“ＶＬＣ処理”を示し、かつＶＬＣ処理部４３１で可変長符号化が完了していない場合には、別のエスケープモードによる処理を指示するための情報である次モード要求情報を次モード要求信号としてＶＬＣモード選択部４２４に出力し、それ以外の場合には、選択信号に含まれたＶＬＣモード判定結果に基づいて、ＶＬＣ処理部４３１、またはＦＬＣ処理部１３２が出力した符号化データの先頭に図１３のテーブルに示す符号を付加し、符号化結果として外部に出力するようになっている。本実施形態では、次モード要求情報は、初期値が“００”であり、前記符号化完了情報が“０”の場合（ＶＬＣ処理部４３１で符号化処理できなかった場合）に値が１ずつ加算されてから出力され、符号化結果を出力した際にはリセットされるようになっている。
【０２００】
（可変長符号化装置４００の動作）
このように構成された可変長符号化装置４００では、まず、マクロブロック内のデータに対して、ＤＣＴ、および量子化が行われ、変換部１１０によって（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が生成される。その後、図２８に示すステップＳ１〜Ｓ８の処理が行われ、マクロブロック内のデータが符号化される。図２８は、各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【０２０１】
ステップＳ１では、変換部１１０は、符号化の対象となる（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組をＬａｓｔ信号、Ｒｕｎ信号、およびＬｅｖｅｌ信号として、ＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部４２４に出力する。
【０２０２】
ステップＳ２では、ＶＬＣモード判定部１２１は、前記ＶＬＣモード判定、およびエスケープモード判定を行い、その結果をＶＬＣモード判定結果信号としてＶＬＣモード選択部４２４へ出力する。
【０２０３】
ステップＳ３では、第１エスケープモード処理部１２２は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、前記ＮｅｗＬｅｖｅｌ算出式によりＮｅｗＬｅｖｅｌを求め、それをＬｅｖｅｌと置き換えた（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）を新たな組としてＶＬＣモード選択部４２４へ出力する。
【０２０４】
ステップＳ４では、第２エスケープモード処理部１２３は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、前記ＮｅｗＲｕｎ算出式によりＮｅｗＲｕｎを求め、それをＲｕｎと置き換えた（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）新をたな組としてＶＬＣモード選択部４２４へ出力する。
【０２０５】
ステップＳ５では、ＶＬＣモード選択部４２４は、変換部１１０が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組（すなわち符号化対象となっている組）、第１エスケープモード処理部１２２が出力した（Ｌａｓｔ，Ｒｕｎ，ＮｅｗＬｅｖｅｌ）の組、および第２エスケープモード処理部１２３が出力した（Ｌａｓｔ，ＮｅｗＲｕｎ，Ｌｅｖｅｌ）の組のうちから有効となる１組または２組をＶＬＣモード判定結果に基づいて選択する。同時に、ＶＬＣモード判定結果に基づいて、選択された組の出力先（ＶＬＣ処理部４３１、またはＦＬＣ処理部１３２）を選択する。
【０２０６】
選択された組は、新たな（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）として、選択された出力先に出力される。この際、“ＶＬＣ処理”、“ＦＬＣ処理”、および“ＶＬＣ処理とＦＬＣ処理との両方の処理”の何れを選択したかを示す選択情報も符号化モード選択部４３３に出力される。
【０２０７】
ステップＳ６では、ＶＬＣ処理部４３１は、ＶＬＣモード選択部４２４が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が前記ＶＬＣテーブルに存在する場合には、前記ＶＬＣテーブルに基づいて、一意的な符号割り当てを行って、符号化データを符号化モード選択部４３３に出力するともに、符号化完了情報に“１”を設定して符号化モード選択部４３３に出力する。
【０２０８】
また、ＶＬＣモード選択部４２４が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が前記ＶＬＣテーブルに存在しない場合には、符号化できないので、符号化完了情報に“０”を設定して符号化モード選択部４３３に出力する。
【０２０９】
ステップＳ７では、ＦＬＣ処理部１３２は、ＶＬＣモード選択部４２４が出力した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、前記固定長符号の変換を行い、符号化した結果（符号化データ）を符号化モード選択部１３３に出力する。
【０２１０】
ステップＳ８では、符号化モード選択部４３３は、選択情報が“ＶＬＣ処理”を示し、かつ符号化完了情報が“０”の場合には、前記次モード要求信号をＶＬＣモード選択部４２４に出力し、それ以外の場合には、選択信号に含まれたＶＬＣモード判定結果に基づいて、ＶＬＣ処理部４３１、またはＦＬＣ処理部１３２が出力した符号化データの先頭に図１３のテーブルに示す符号を付加した符号化データを出力する。
【０２１１】
上記で説明した実施形態４に係る可変長符号化装置の動作を、例えば、処理対象のマクロブロックがＩｎｔｒａマクロブロックであり、変換部１１０が生成した（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（１，３，５）である場合について説明する。
【０２１２】
（ステップＳ１）  まず、変換部１１０によって、ＶＬＣモード判定部１２１、第１エスケープモード処理部１２２、第２エスケープモード処理部１２３、およびＶＬＣモード選択部４２４に（１，３，５）が出力される。
【０２１３】
（ステップＳ２）  ＶＬＣモード判定部１２１によって、ＶＬＣモード判定が行われる。（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が（１，３，５）、かつ処理対象のマクロブロックが“Ｉｎｔｒａマクロブロック”なので、ＶＬＣモード判定テーブルには、（１，３，５）は存在しない。したがって、ＶＬＣモード判定結果は、“００”となり、結果の“００”がＶＬＣモード選択部４２４に出力される。
【０２１４】
（ステップＳ３）  第１エスケープモード処理部１２２によって、ＬＭＡＸ減算処理が行われる。この例では、Ｌａｓｔ＝“１”、Ｒｕｎ＝“３”より、ＬＭＡＸ＝“２”となり、ＮｅｗＬｅｖｅｌ＝“３”となる。これにより、第１エスケープモード処理部１２２からは、ＮｅｗＬｅｖｅｌを新たなＬｅｖｅｌとした（１，３，３）がＶＬＣモード選択部４２４に出力される。
【０２１５】
（ステップＳ４）  第２エスケープモード処理部１２３によって、ＲＭＡＸの減算処理が行われる。Ｌａｓｔ＝“１”、Ｌｅｖｅｌ＝“５”なので、ＲＭＡＸ＝“０”となり（図６を参照。）、ＮｅｗＲｕｎ＝“２”となる。これにより、第２エスケープモード処理部１２３からは、ＮｅｗＲｕｎを新たなＲｕｎとした（１，２，５）がＶＬＣモード選択部４２４に出力される。
【０２１６】
（ステップＳ５）  ＶＬＣモード選択部４２４には、変換部１１０が出力した（１，３，５）、第１エスケープモード処理部１２２が出力した（１，３，３）、および第２エスケープモード処理部１２３が出力した（１、２，５）の３組が入力される。また、ＶＬＣモード選択部４２４には、同時にＶＬＣモード判定結果と次モード要求情報（＝“００”：初期値）とが入力される。
【０２１７】
ＶＬＣモード判定結果が“００”、かつ次モード要求情報が“００”であるため、ＶＬＣモード選択部４２４によって、変換部１１０が出力した（１，３，５）が出力する組として選択される。また、ＶＬＣモード判定結果、および次モード要求情報に基づいて、出力先として“ＶＬＣ処理部”が選ばれる。
【０２１８】
以上により、変換部１１０が出力した（１，３，５）がＶＬＣ処理部４３１に出力される。また、符号化モード選択部４３３に出力する選択情報は、“ＶＬＣ処理”を示す信号となる。
【０２１９】
（ステップＳ６）  ＶＬＣモード選択部４２４が出力した（１，３，５）は、ＶＬＣテーブル（図９を参照。）には存在しない。したがって、ＶＬＣ処理部４３１は符号化処理ができず、符号化完了情報に“０”を設定して符号化モード選択部４３３に出力する。
【０２２０】
（ステップＳ７）  選択情報が“ＶＬＣ処理部”を示しているので、ＦＬＣ処理部１３２による符号化の処理は実行されない。
【０２２１】
（ステップＳ８）  ＶＬＣ処理部４３１が出力した符号化完了情報が“０”なので、符号化モード選択部４３３によって、次モード要求情報（＝“００”）に１が加算されて、“０１”がＶＬＣモード選択部４２４に出力される。
【０２２２】
上記のように、一度目の処理では、符号化が完了しなかったので、この可変長符号化装置４では、ステップＳ５〜Ｓ８が再度実行される。
【０２２３】
（ステップＳ５）  ＶＬＣモード判定結果が“００”であり、かつ符号化モード選択部４３３が出力した次モード要求情報が“０１”なので、ＶＬＣモード選択部４２４では第１エスケープモード処理部１２２が出力した（１，３，３）が選択されて、ＶＬＣ処理部４３１に出力される。また、“ＶＬＣ処理”を示す選択情報が符号化モード選択部４３３に出力される。
【０２２４】
（ステップＳ６）  第１エスケープモード処理部１２２が出力した（１，３，３）がＶＬＣテーブルに存在しないため、ＶＬＣ処理部４３１では符号化処理が行われず、符号化完了情報に“０”が設定されて符号化モード選択部４３３に出力される。
【０２２５】
（ステップＳ７）  選択情報が“ＶＬＣ処理部”を示しているので、ＦＬＣ処理部１３２では、符号化処理は行われない。
【０２２６】
（ステップＳ８）  ＶＬＣ処理部４３１が出力した符号化完了情報が“０”なので、符号化モード選択部４３３からは、次モード要求情報（＝“０１”）に１が加算された“１０”がＶＬＣモード選択部４２４に出力される。
【０２２７】
この例では、２度目の処理でも符号化が完了しなかったので、さらにステップＳ５〜Ｓ８が実行される。
【０２２８】
（ステップＳ５）  ＶＬＣモード判定結果が“００”であり、かつ符号化モード選択部４３３が出力した次モード要求情報が“１０”なので、ＶＬＣモード選択部４２４では、変換部１１０が出力した（１，３，５、）、および第２エスケープモード処理部１２３が出力した（１，２，５）が選択され（図２６を参照。）、変換部１１０が出力した（１，３，５、）は、ＦＬＣ処理部１３２に出力され、第２エスケープモード処理部１２３が出力した（１，２，５）は、ＶＬＣ処理部４３１に出力される。また、“ＶＬＣ処理かつＦＬＣ処理部”を示す選択情報が符号化モード選択部４３３に出力される。
【０２２９】
（ステップＳ６）  第１エスケープモード処理部１２２が出力した（１，２，５）がＶＬＣテーブルに存在しないため、ＶＬＣ処理部４３１では、符号化処理が行われず、符号化完了情報に“０”が設定されて符号化モード選択部４３３に出力される。
【０２３０】
（ステップＳ７）  選択情報が“ＶＬＣ処理かつＦＬＣ処理部”を示しているので、ＦＬＣ処理部１３２では、固定長符号化処理が行われる。入力された（１，３，５）に対して符号化処理が施されると、図１０〜図１２に示すように、“１００００１１１０００００００００１０１”となる。そして、この符号化結果は、ＶＬＣモード選択部４２４に出力される。
【０２３１】
（ステップＳ８）  選択情報の示す内容が“ＶＬＣ処理かつＦＬＣ処理”なので、符号化モード選択部４３３はＶＬＣ処理部４３１とＦＬＣ処理部１３２との双方からの出力を受け付ける。
【０２３２】
一方、ＶＬＣ処理部４３１が出力した、符号化完了情報は、“０”なので、ＶＬＣ処理部４３１における符号化は、完了していないことが解る。また、ＦＬＣ処理部１３２からは固定長符号化された符号化データが出力されている。したがって、変換部１１０が出力した（１，３，５）の組に対する符号化データとしては、ＦＬＣ処理部１３２から出力された符号化データ“１００００１１１０００００００００１０１”が選択される。
【０２３３】
また、ＶＬＣモード判定結果＝“１１”であるため、“０００００１１１１”が符号“１００００１１１０００００００００１０１”の先頭に付加される（図１３を参照。）。最終的には、“０００００１１１１１００００１１１０００００００００１０１”が、（１，３，５）が符号化された符号化データとして出力される。
【０２３４】
また、符号化処理が完了したため、次モード要求情報が“００”にリセットされる。
【０２３５】
上記のように本実施形態によれば、ＶＬＣモード判定テーブルに（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が存在する場合には１サイクルで符号化が行われ、存在しない場合には最大３サイクルで符号化が行われる。
【０２３６】
例えば、ＶＬＣモード判定部１２１にＩｎｔｅｒ用ＶＬＣモード判定テーブルのみを持たせると、Ｉｎｔｅｒマクロブロックに対しては、全ての（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し、１サイクルで符号化し、Ｉｎｔｒａマクロブロックに対しては、３サイクル符号化する符号化装置となる。これはＩｎｔｅｒマクロブロックの出現率が高く、Ｉｎｔｒａマクロブロックの出現率が低い場合、すなわち出力符号の大半がＩｎｔｅｒマクロブロックとなるような符号化仕様においては、ＶＬＣモード判定テーブルの規模を小さくし、小規模な符号化装置を構築するのに非常に有用である。逆に、Ｉｎｔｒａ用ＶＬＣモード判定テーブルのみを持たせると、出力符号の大半がＩｎｔｒａマクロブロックとなるような符号化仕様に対して、ＶＬＣモード判定テーブルの規模を小さくし、小規模な符号化装置を構築するのに非常に有用である。
【０２３７】
また、例えば、ＶＬＣモード判定部１２１に、Ｌａｓｔ＝“０”の時用のＶＬＣモード判定テーブルのみを持たせると、マクロブロック内のＬａｓｔ＝“０”の組に対しては、全ての（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に対し１サイクルで符号化し、Ｌａｓｔ＝“１”においては３サイクル符号化する符号化装置となる。マクロブロック内における最大組数が６４の場合には、Ｌａｓｔ＝“１”が使用されるのは６４回に１回だけであり、非常に使用頻度は低いので、このような仕様で符号化を行う場合には、小規模な符号化装置を構築するのに非常に有用である。
【０２３８】
また、例えば、ＶＬＣモード判定部１２１にＲｕｎ＜２の時用のＶＬＣモード判定テーブルのみを持たせると、マクロブロック内のＲｕｎ＜２の組に対しては全て１サイクルで符号化し、Ｒｕｎ≧２の組に対しては３サイクル符号化する符号化装置となる。
【０２３９】
１係数１サイクルの符号化を保証する場合において、Ｒｕｎ≧３においては、符号化に３サイクル要しても支障はない。具体的に説明すると、Ｒｕｎ＝２、Ｌｅｖｅｌ＝６を符号化する場合に３サイクル要したとする。この場合、符号化の対象となっている係数は、Ｒｕｎ＝２より０係数が２個と、Ｌｅｖｅｌ＝６、すなわち（０，０，６）であり３係数符号化したことになり、１係数１サイクルは実現できている。したがって、１係数１サイクルの符号化を保証するには、Ｒｕｎ＜２のＶＬＣ判定テーブルのみを持つことで実現できる。
【０２４０】
上記のように本実施形態によれば、ＶＬＣモード判定テーブルの規模を上記の各実施形態の装置よりも更に小さくすることができ、小規模な符号化装置を構築できる。
【０２４１】
《発明の実施形態５》
実施形態１〜４に係る可変長符号化装置が応用された装置として、撮像システム（例えばデジタルスチルカメラ（ＤＳＣ）等）の例を説明する。
【０２４２】
図２９は、本発明の実施形態５に係る撮像システム５００の構成を示すブロック図である。同図に示すように、撮像システム５００は、光学系５１０、センサ５２０、アナログ・デジタル変換器５３０、画像処理回路５４０、記録転送回路５５０、再生回路５６０、タイミング制御回路５７０、およびシステム制御回路５８０を備えて構成されている。
【０２４３】
光学系５１０は、入射した画像光をセンサ５２０上に結像するようになっている。
【０２４４】
センサ５２０は、結像された画像光を蓄積し、電気信号に変換（光電変換）するようになっている。
【０２４５】
アナログ・デジタル変換器５３０は、センサ５２０から出力された電気信号をデジタル信号（画像データ）に変換するようになっている。
【０２４６】
画像処理回路５４０は、可変長符号化装置５４１を備える一方、Ｙ／Ｃ処理、エッジ処理、画像の拡大縮小、画像圧縮伸張処理などの画像処理を行うようになっている。
【０２４７】
可変長符号化装置５４１は、上記の実施形態１〜４に係る可変長符号化装置の何れかである。
【０２４８】
記録転送回路５５０は、画像処理回路５４０で画像処理された信号をメディアへ記録したり、再生のために再生回路５６０に出力するようになっている。
【０２４９】
再生回路５６０は、記録、または転送された信号を再生するようになっている。
【０２５０】
タイミング制御回路５７０は、センサ５２０とアナログ・デジタル変換器５３０の動作タイミングを制御するようになっている。
【０２５１】
システム制御回路５８０は、撮像システム５００全体の動作を制御するようになっている。
【０２５２】
このように構成された撮像システム５００では、光学系５１０、センサ５２０、およびアナログ・デジタル変換器５３０によって生成された画像データが、可変長符号化装置５４１によって可変長符号化される。可変長符号化されたデータ（符号化データ）は、記録転送回路５５０、および再生回路５６０によって符号化データの再生やメディアへの記録が行われる。
【０２５３】
このように、本発明に係る可変長符号化装置は、小規模な回路構成で符号化装置を構築できるので、上記のような撮像システム等に応用するのに有用である。
【０２５４】
なお、可変長符号化装置５４１における画像処理は必ずしも光学系５１０を介してセンサ５２０に結像された画像光に基づく信号のみに適用されるものではなく、例えば外部の装置から電気信号として入力される画像信号を処理する場合に適用してもよい。
【０２５５】
なお、可変長符号化装置５４１における画像処理は必ずしも光学系５１０を介してセンサ５２０に結像された画像光に基づく信号のみに適用されるものではなく、例えば外部の装置から電気信号として入力される画像信号を処理する場合に適用してもよい。
【０２５６】
なお、上記の各実施形態で説明した可変長符号化装置においては、ＶＬＣモード判定に１つのＶＬＣモード判定テーブルを用いる例を説明したが、複数個のＶＬＣモード判定テーブルを用いるようにＶＬＣモード判定部１２１を構成してもよい。例えば、ＶＬＣモード判定テーブルをＩｎｔｒａ用ＶＬＣモード判定テーブルとＩｎｔｅｒ用ＶＬＣモード判定テーブルとに別け、Ｉｎｔｒａ／Ｉｎｔｅｒ識別信号により使用するテーブルを切替えて判定を行うようにしてもよい。この場合、Ｉｎｔｒａ用の判定部およびＩｎｔｅｒ用判定部の何れの判定部に（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組を入力するかを選択するＩｎｔｒａ／Ｉｎｔｅｒ切替え部と、何れの判定部の出力を判定結果として出力するかを選択するＶＬＣモード判定結果選択部をＶＬＣモード判定部１２１に設け、図３０に示すように、これらのテーブルの切替え処理を行う。図３０は、各処理が行われる順を模式的に示す図である。
【０２５７】
また、ＶＬＣモード判定テーブルを、例えば、Ｌａｓｔ＝“０”の時用のＶＬＣモード判定テーブルとＬａｓｔ＝“１”の時用のＶＬＣモード判定テーブルとに別け、Ｌａｓｔの値により使用するテーブルを切替えて判定を行うようにしてもよい。
【０２５８】
ＶＬＣモード判定テーブルを複数に分けることにより、例えばＩｎｔｒａ符号化時においては、Ｉｎｔｅｒ用ＶＬＣモード判定テーブルが格納されたメモリへの動作クロック信号を止め、Ｉｎｔｅｒ符号化時においては、Ｉｎｔｒａ用ＶＬＣモード判定テーブルが格納されたメモリへの動作クロック信号を止めることが可能となり、消費電力の削減が可能になる。
【０２５９】
また、ＶＬＣ処理部およびＦＬＣ処理部は、排他的に利用されるため、選択情報が“ＶＬＣ処理”を示している場合は、ＦＬＣ処理部の動作クロック信号を止めてＶＬＣ処理部のみに動作クロック信号を供給し、選択情報が“ＦＬＣ処理”を示している場合は、ＶＬＣ処理部の動作クロック信号を止めてＦＬＣ処理部のみに動作クロック信号を供給するようにしてもよい。これにより、消費電力の削減が可能になる。
【０２６０】
また、ＦＬＣ処理部では、ＦＬＣテーブルを使用し符号化を行う例を示したが、テーブルを使用せずに数式による算出方式を用いて符号化を行うようにしてもよい。
【０２６１】
また、第１のエスケープモードによる符号化と第２のエスケープモードによる符号化とを比較した場合、例えば、第２のエスケープモードによる符号化を行った方が符号量が少なくなる（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組が存在する場合がある。この場合は、ＶＬＣモード判定テーブルを用いたＶＬＣモード判定結果が第２のエスケープモードとなるような判定にすることで、更に高圧縮な符号化データの出力が可能になる。すなわち、符号量が少なくなる方のエスケープモードが選択されるように、（Ｌａｓｔ，Ｒｕｎ，Ｌｅｖｅｌ）の組に応じたＶＬＣモード判定テーブルを構成すればよい。
【産業上の利用可能性】
【０２６２】
本発明に係る可変長符号化方式および可変長符号化装置は、回路規模増加を抑えつつ、効率よく可変長符号化ができるという効果を有し、例えばＭＰＥＧ方式等で実現されている可変長符号化装置等として有用である。
【図面の簡単な説明】
【０２６３】
【図１】本発明の実施形態１に係る可変長符号化装置の構成を示すブロック図である。
【図２】本発明の実施形態１に係るＶＬＣ符号化前処理部の構成を示すブロック図である。
【図３】ＶＬＣモード判定テーブルの一部を抜粋したものである。
【図４】ＶＬＣモード判定結果として出力される値と判定結果の意味との対応関係を示すテーブルである。
【図５】ＬＭＡＸテーブルの一部を抜粋したものである。
【図６】ＲＭＡＸテーブルの一部を抜粋したものである。
【図７】本発明の実施形態１に係るＶＬＣモード判定結果とＶＬＣモード選択部の出力先との対応関係を示すテーブルである。
【図８】本発明の実施形態１に係るＶＬＣ符号化処理部の構成を示すブロック図である。
【図９】ＶＬＣテーブルの一部を抜粋したものである。
【図１０】ＦＬＣテーブル（Ｌａｓｔへの固定長符号の割り当て）の一部を抜粋したものである。
【図１１】ＦＬＣテーブル（Ｒｕｎへの固定長符号の割り当て）の一部を抜粋したものである。
【図１２】ＦＬＣテーブル（Ｌｅｖｅｌへの固定長符号の割り当て）の一部を抜粋したものである。
【図１３】ＶＬＣモード判定結果とエスケープモードに応じて付加される符号との対応関係を示すテーブルである。
【図１４】本発明の実施形態１に係る可変長符号化装置において各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【図１５】本発明の実施形態２に係る可変長符号化装置の構成を示すブロック図である。
【図１６】本発明の実施形態２に係るＶＬＣ符号化前処理部の構成を示すブロック図である。
【図１７】本発明の実施形態２に係るＶＬＣモード判定結果とＶＬＣモード選択部の出力先との対応関係を示すテーブルである。
【図１８】本発明の実施形態２に係る可変長符号化装置において、各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【図１９】本発明の実施形態３に係る可変長符号化装置の構成を示すブロック図である。
【図２０】本発明の実施形態３に係るＶＬＣ符号化前処理部の構成を示すブロック図である。
【図２１】ＦＬＣモード判定テーブルの一例を示したものである。
【図２２】ＦＬＣモード判定結果として出力される値と判定結果の意味との対応関係を示すテーブルである。
【図２３】本発明の実施形態３に係る可変長符号化装置において、各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【図２４】本発明の実施形態４に係る可変長符号化装置の構成を示すブロック図である。
【図２５】本発明の実施形態４に係るＶＬＣ符号化前処理部の構成を示すブロック図である。
【図２６】本発明の実施形態４に係るＶＬＣモード判定結果、次モード要求情報とＶＬＣモード選択部の出力先との対応関係を示すテーブルである。
【図２７】本発明の実施形態４に係るＶＬＣ符号化処理部の構成を示すブロック図である。
【図２８】本発明の実施形態４に係る可変長符号化装置において、各処理が行われる順、各処理における情報（信号）の流れを模式的に示す図である。
【図２９】本発明の実施形態５に係る撮像システムの構成を示すブロック図である。
【図３０】ＶＬＣモード判定テーブルをＩｎｔｒａ用ＶＬＣモード判定テーブルとＩｎｔｅｒ用ＶＬＣモード判定テーブルとに別けた場合のＶＬＣモード判定部において、各処理が行われる順を模式的に示す図である。
【図３１】従来の可変長符号化装置の動作を模式的に示す図である。
【図３２】従来の可変長符号化装置の動作を模式的に示す図である。
【符号の説明】
【０２６４】
１００      可変長符号化装置
１１０      変換部
１２０      ＶＬＣ符号化前処理部
１２１      ＶＬＣモード判定部
１２２      第１エスケープモード処理部
１２３      第２エスケープモード処理部
１２４      ＶＬＣモード選択部
１３０      ＶＬＣ符号化処理部
１３１      ＶＬＣ処理部
１３２      ＦＬＣ処理部
１３３      符号化モード選択部
２００      可変長符号化装置
２２０      ＶＬＣ符号化前処理部
２２２      エスケープモード処理部
２２４      ＶＬＣモード選択部
３００      可変長符号化装置
３２０      ＶＬＣ符号化前処理部
３２１      ＦＬＣモード判定部
３２２      ＶＬＣモード判定部
３２３      第１エスケープモード処理部
３２４      第２エスケープモード処理部
４００      可変長符号化装置
４２０      ＶＬＣ符号化前処理部
４２４      ＶＬＣモード選択部
４３０      ＶＬＣ符号化処理部
４３１      ＶＬＣ処理部
４３３      符号化モード選択部
５００      撮像システム
５１０      光学系
５２０      センサ
５３０      アナログ・デジタル変換器
５４０      画像処理回路
５４１      可変長符号化装置
５５０      記録転送回路
５６０      再生回路
５７０      タイミング制御回路
５８０      システム制御回路
【図１】
2006339997.tif 000003
【図２】
2006339997.tif 000004
【図３】
2006339997.tif 000005
【図４】
2006339997.tif 000006
【図５】
2006339997.tif 000007
【図６】
2006339997.tif 000008
【図７】
2006339997.tif 000009
【図８】
2006339997.tif 000010
【図９】
2006339997.tif 000011
【図１０】
2006339997.tif 000012
【図１１】
2006339997.tif 000013
【図１２】
2006339997.tif 000014
【図１３】
2006339997.tif 000015
【図１４】
2006339997.tif 000016
【図１５】
2006339997.tif 000017
【図１６】
2006339997.tif 000018
【図１７】
2006339997.tif 000019
【図１８】
2006339997.tif 000020
【図１９】
2006339997.tif 000021
【図２０】
2006339997.tif 000022
【図２１】
2006339997.tif 000023
【図２２】
2006339997.tif 000024
【図２３】
2006339997.tif 000025
【図２４】
2006339997.tif 000026
【図２５】
2006339997.tif 000027
【図２６】
2006339997.tif 000028
【図２７】
2006339997.tif 000029
【図２８】
2006339997.tif 000030
【図２９】
2006339997.tif 000031
【図３０】
2006339997.tif 000032
【図３１】
2006339997.tif 000033
【図３２】
2006339997.tif 000034