(57)【要約】【課題】より高速に可変長符号化を行うこと。【解決手段】付加データ１、２は、夫々右シフタ５０３、５０１に入力され、可変長符号化テーブル５０４、５０１から夫々入力される可変長符号語長に対応するビット数分だけ、右にシフトされる。右にシフトされた付加データは夫々、ＯＲゲート５０８，５１０に入力され、ＯＲゲート５０８，５１０は可変長符号化テーブル５０４、５０１から夫々入力される可変長符号語１、２の論理和演算を行う。ＯＲゲート５１０の出力は右シフタ５１１に入力され、更に右シフタ５１１には符号長計測器５３０により計測されたビット数（可変長符号語１の符号長＋付加データ１のビット数）が入力される。そしてシフタ５１１はこのビット数分だけＯＲゲート５１０の出力を右にシフトする。ＯＲゲート５１２は、右シフタ５１１の出力、及びＯＲゲート５０８の出力の論理和を演算する。【選択図】　図５
2004056758.tif 000002
【特許請求の範囲】
【請求項１】
一連の連続する被符号化データ系列に対して可変長符号化を行うと共に総符号長を生成する可変長符号化装置であって、
並列に複数入力される被符号化データの数に応じて並列に複数設けられ、入力される被符号化データに対応する可変長符号語を含む可変長符号化データ及びその符号長を、可変長符号化テーブルを参照して生成する生成手段と、
前記生成手段による夫々隣り合う１つ乃至２つ以上の可変長符号化データを順次連結し、可変長符号化データ列及び総符号長を生成する連結手段と
を備えることを特徴とする可変長符号化装置。
【請求項２】
前記生成手段は更に、
被符号化データに含まれる第１のデータを、当該被符号化データに含まれる第２のデータのビット数分右にシフトする第１のシフト手段と、
前記第２のデータに対応する可変長符号語と、前記第１のシフト手段によるシフト後のデータとの論理和演算を行い、可変長符号化データを生成する第１の論理和演算手段と
を備えることを特徴とする請求項１に記載の可変長符号化装置。
【請求項３】
前記可変長符号化テーブルはＤＣ係数、もしくはＡＣ係数のシンボル・データに対するハフマン・テーブルであることを特徴とする請求項１に記載の可変長符号化装置。
【請求項４】
前記生成手段は更に、入力される被符号化データがＤＣ係数、もしくはＡＣ係数のいずれかであるかに依存せずに、可変長符号化データを生成する手段を備えることを特徴とする請求項１記載の可変長符号化装置。
【請求項５】
前記可変長符号化テーブルは、動画像符号化時の水平及び垂直動きベクトルに対する可変長符号化テーブルであることを特徴とする、請求項１に記載の可変長符号化装置。
【請求項６】
前記生成手段は更に、入力される一連の連続する被符号化データに対応する複数の可変長符号語の総符号長を求める符号長計算手段を備えることを特徴とする請求項１乃至４のいずれか１項に記載の可変長符号化装置。
【請求項７】
前記連結手段は更に、
第１の可変長符号化データを第２の可変長符号化データのビット数分右にシフトする第２のシフト手段と、
前記第２の可変長符号化データと、前記第２のシフト手段によるシフト後のデータとの論理和演算を行う、第２の論理和演算手段と
を備えることを特徴とする請求項１に記載の可変長符号化装置。
【請求項８】
前記連結手段は、前記生成手段による第１の可変長符号化データと第２の可変長符号化データとを連結する第１の連結部を含むことを特徴とする請求項７に記載の可変長符号化装置。
【請求項９】
前記連結手段は、前記第１の連結部による連結結果と、前記生成手段による第３の可変長符号化データとを連結する第２の連結部を含むことを特徴とする請求項８に記載の可変長符号化装置。
【請求項１０】
前記連結手段は、前記第１の連結部による連結結果と、前記第１の連結部と同じ動作を行う連結部による連結結果とを連結する第３の連結部を含むことを特徴とする請求項８に記載の可変長符号化装置。
【請求項１１】
一連の連続する被符号化データ系列に対して可変長符号化を行うと共に総符号長を生成する可変長符号化方法であって、
並列に複数入力される被符号化データの数に応じて並列に複数設けられ、入力される被符号化データに対応する可変長符号語を含む可変長符号化データ及びその符号長を、可変長符号化テーブルを参照して生成する生成工程と、
前記生成工程による夫々隣り合う１つ乃至２つ以上の可変長符号化データを順次連結し、可変長符号化データ列及び総符号長を生成する連結工程と
を備えることを特徴とする可変長符号化方法。
【請求項１２】
コンピュータを請求項１乃至１０に記載の可変長符号化装置として機能させることを特徴とするプログラム。
【請求項１３】
コンピュータに請求項１１に記載の可変長符号化方法を実行させることを特徴とするプログラム。
【請求項１４】
請求項１２または１３に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、可変長符号化装置及びその方法に関するものである。
【０００２】
【従来の技術】
従来から、静止画像や動画像の圧縮符号化技術の一つとして可変長符号によるエントロピ符号化技術を使用する方式が良く知られており、この技術は国際標準であるＪＰＥＧ（Ｊｏｉｎｔ　Ｐｈｏｔｏｇｒａｐｈｉｃ　Ｅｘｐｅｒｔ　Ｇｒｏｕｐ）符号化方式及びＭＰＥＧ（Ｍｏｖｉｎｇ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）符号化方式においても採用されている。これらの方式において採用されているエントロピ符号化技術は、直交変換係数に量子化処理を行った後のデータの値に対して、ランレングス符号化を行う事でシンボル・データを生成し、そのシンボル・データそれぞれに対して可変長符号化データを生成するものである。また近年、そのエントロピ符号化技術に使用される可変長符号としてハフマン符号表を用いたハードウエア化の実現手段が数多く提案されてきた。
【０００３】
更には、ＭＰＥＧ符号化方式においては、ヘッタ情報を構成するシンタックスとして例えば動きベクトルに対しては可変長符号が採用されており、この実現手段についても、ハフマン符号表を用いた場合と同様にハードウエア化の提案がされてきた。
【０００４】
【発明が解決しようとする問題】
近年の通信網におけるデータ転送容量の向上や、記憶デバイスの高密度化によって、さまざまな画像システムで扱える画像データの大きさは飛躍的に増大している。また、こういった状況を背景にして圧縮符号化処理装置においても、高画質化の必要性も相俟って高ビット・レートでの圧縮符号化の必要性が求められている。
【０００５】
しかし、高ビット・レートにおける圧縮符号化においては、シンボル・データの数が低ビット・レートで圧縮符号化した場合に比べて飛躍的に増大してしまい、従来技術を使用した可変長符号化装置においては高速で圧縮符号化を行う事が困難であり、また仮に従来技術を使用して可変長符号化装置を実施した場合でも、高ビット・レートになるに従い処理時間が増大して実用性に乏しい装置となってしまうという問題があった。
【０００６】
あるいは、従来技術を使用して高ビット・レートに対応する可変長符号化装置を実現しようとした場合には、動作クロック周波数を高速化しなければならず、消費電力が飛躍的に増大してしまうという問題があった。
【０００７】
更には、近年標準化が完了したＭＰＥＧ−４符号化方式においては、マクロ・ブロック毎に最大４つの動きベクトル情報が必要であり水平方向及び垂直方向の成分それぞれについて可変長符号化が必要である事を考慮すると、マクロブロック毎に８回の可変長符号化が必要となり、処理時間が増大してしまうという問題があった。
【０００８】
本発明は以上の問題に鑑みてなされたものであり、より高速に可変長符号化を行うことを目的とする。
【０００９】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の可変長符号化装置は以下の構成を備える。
【００１０】
すなわち、一連の連続する被符号化データ系列に対して可変長符号化を行うと共に総符号長を生成する可変長符号化装置であって、
並列に複数入力される被符号化データの数に応じて並列に複数設けられ、入力される被符号化データに対応する可変長符号語を含む可変長符号化データ及びその符号長を、可変長符号化テーブルを参照して生成する生成手段と、
前記生成手段による夫々隣り合う１つ乃至２つ以上の可変長符号化データを順次連結し、可変長符号化データ列及び総符号長を生成する連結手段と
を備えることを特徴とする。
【００１１】
本発明の目的を達成するために、例えば本発明の可変長符号化方法は以下の構成を備える。
【００１２】
すなわち、一連の連続する被符号化データ系列に対して可変長符号化を行うと共に総符号長を生成する可変長符号化方法であって、
並列に複数入力される被符号化データの数に応じて並列に複数設けられ、入力される被符号化データに対応する可変長符号語を含む可変長符号化データ及びその符号長を、可変長符号化テーブルを参照して生成する生成工程と、
前記生成工程による夫々隣り合う１つ乃至２つ以上の可変長符号化データを順次連結し、可変長符号化データ列及び総符号長を生成する連結工程と
を備えることを特徴とする。
【００１３】
【発明の実施の形態】
以下添付図面を参照し、本発明を好適な実施形態に従って詳細に説明する。
【００１４】
［第１の実施形態］
図４に従来の可変長符号化装置の構成例を示す。例えばＪＰＥＧ符号化方式に対応した可変長符号化装置である場合には、入力データとしてランレングスＲＲＲＲ、カテゴリＳＳＳＳ及び付加ビットが同時に入力される。ＲＲＲＲ／ＳＳＳＳ及び付加ビットは、図４に示す可変長符号化装置の前段においてカテゴリ・エンコーダ等を構成する事によって生成される。カテゴリ・エンコーダにおいては、ジグザグスキャン順に並び替えられた、量子化されたＤＣＴ係数をカテゴリＳＳＳＳ、付加ビット及びランレングスＲＲＲＲへと変換する。図４の可変長符号化装置に入力されるデータ（被符号化データ）は、一組のＲＲＲＲ／ＳＳＳＳ及び付加ビットである。ここでは、この一組のＲＲＲＲ／ＳＳＳＳのデータをシンボル・データと呼ぶ事とする。
【００１５】
可変長符号化テーブル４０１からは、シンボル・データであるＲＲＲＲ／ＳＳＳＳをインデックスとして可変長符号語、及び対応する可変長符号語のビット長が出力される。シンボル・データと可変長符号語との対応表は一般にハフマン・テーブルが使用される。このハフマン・テーブルはシンボル・データの発生頻度を考慮した統計データから、発生頻度が高いシンボル・データには短い符号語長の可変長符号語を割り当てて、発生頻度が低いシンボル・データには相対的に長い符号語長の可変長符号語を割り当てる様にハフマン・ツリーを構成する事によって得られるものである。
【００１６】
ハフマン・テーブルの一例としては、ＩＳＯ／ＩＥＣ　１０９１８−１，ＣＣＩＴ　Ｒｅｃ．　Ｔ．８１のＡｎｎｅｘ　ＫのＴａｂｌｅ　Ｋ．３，Ｋ４，Ｋ５，Ｋ６などが挙げられる。ここで、従来技術を使用した可変長符号化装置の動作を説明するためのクロック周期毎の動作を図６に示す。なお可変長符号化テーブル４０１は、ＩＳＯ／ＩＥＣ　１０９１８−１，ＣＣＩＴ　Ｒｅｃ．　Ｔ．８１のＡｎｎｅｘ　ＫのＴａｂｌｅ　Ｋ５がＲＯＭメモリとして構成されているものとする。また、Ｔａｂｌｅ　Ｋ５の一部を図７に示す。つまり、図７に示したテーブルを参照することで、シンボル・データ（ＲＲＲＲ／ＳＳＳＳ）に対応する可変長符号語を得ることができる。
【００１７】
図６のクロック周期１において、シンボル・データ０／２及び付加データ”０１”が図４に示す可変長符号化装置に同時に入力される。図４に示すとおり、シンボル・データ（ＲＲＲＲ／ＳＳＳＳ）は可変長符号化テーブル４０１に入力され、付加データはシフト連結器４０２に入力される。可変長符号化テーブル４０１は図７に示したテーブルを参照して、シンボル・データ０／２に対応する可変長符号語”０１”を出力すると共に、この可変長符号語のビット長”２”を出力する。
【００１８】
可変長符号化テーブル４０１は可変長符号語長及び付加データ長を合わせた可変長符号化データ長を出力するが、言うまでもなく可変長符号化テーブル４０１から出力される可変長符号語長及び入力されたシンボル・データのＳＳＳＳの値を加算して求めても良い。
【００１９】
シフト連結器４０２は、入力される付加データを可変長符号テーブル４０１から入力される可変長符号語長のビット数だけ右にシフトする。右シフトされた付加データは、同じく可変長符号化テーブル４０１から入力される可変長符号語と論理和演算され、可変長符号化データ列として出力される。クロック周期２以降についても、クロック周期１と同様の動作を繰り返す事によって一連の可変長符号化データ列を生成する。
【００２０】
以下説明する本実施形態における可変長符号化装置は、ＪＰＥＧ符号化方式のエントロピ符号化に適応した例であって、一連の連続する２つのシンボル・データを同時に並列に入力可能とし、夫々の可変長符号化データに基づいた可変長符号化データ列を生成、出力する。以下、本実施形態における可変長符号化装置、及び可変長符号化方法について説明する。
【００２１】
＜可変長符号化装置の構成＞
図５に本実施形態における可変長符号化装置の基本構成を示す。上述の通り、同図に示した可変長符号化装置は同時に２つのシンボル・データ（ＲＲＲＲ／ＳＳＳＳ１，ＲＲＲＲ／ＳＳＳＳ２）を並列に入力可能とする構成を備える。しかし、必ずしも常時２つのシンボル・データを同時に本可変長符号化装置に入力する必要はなく、２つのうち片方のみ入力しても良い構成となっている。これは、本可変長符号化装置の入力信号であるＶＡＬＩＤ１及びＶＡＬＩＤ２信号を、本可変長符号化装置の入力側に接続される外部回路がアザート／ネゲートする事によって実現される。本可変長符号化装置は、現在のクロック周期においてＶＡＬＩＤ１信号がアザートとされている場合には有効なシンボル・データ１が入力されていると判断する。ＶＡＬＩＤ２信号についても同様である。
【００２２】
また本実施形態では、可変長符号化テーブルにＩＳＯ／ＩＥＣ　１０９１８−１，ＣＣＩＴ　Ｒｅｃ．　Ｔ．８１のＡｎｎｅｘ　ＫのＴａｂｌｅ　Ｋ．３，Ｋ４，Ｋ５，Ｋ６を用いる。Ｋ．３及びＫ．４テーブルはＤＣ係数に対するハフマン・テーブルであり、本実施形態ではＤＣ係数は必ずシンボル・データ１（ＲＲＲＲ／ＳＳＳＳ１）として入力されるものとする。またそれ以外のテーブルはＡＣ係数に対するハフマンテーブルであり、本実施形態ではＡＣ係数も必ずシンボル・データとして入力されるものとする。
【００２３】
また、可変長符号化テーブル５０２及び可変長符号化テーブル５０４において、どのハフマン・テーブルを選択するかについては、ＴＤＴＡパラメータ入力信号及びＣＣカウンタ５１５の値を元に選択する。ＴＤＴＡパラメータ信号は、ＪＰＥＧ符号化ストーリム中のスキャン・ヘッタ内のＴＤｊ，ＴＡｊパラメータに相当するものであり、各コンポーネントに対応するハフマン・テーブルの割り当てを示すパラメータである。さらに、ＴＤＴＡパラメータ入力信号は一連のＪＰＥＧ符号化データに対する可変長符号化処理が完了するまでは、信号の状態を変化させる事は禁止である。ＣＣカウンタ５１５は、現在のクロック周期において処理すべきコンポーネント番号を求めるための２ビットのカウンタである。ＤＵカウンタ５１６においては、スキャン・カウンタ５１７において８×８ＤＣＴ係数ブロックの最後を検知する毎にカウント・アップして、現在処理すべきコンポーネント番号を構成するデータ・ユニット数まで達した時点で、ＣＣカウンタ５１５に通知する。ＣＣカウンタ５１５においては、この通知を受けて処理すべきコンポーネントを切り替える。
【００２４】
一方、入力される付加データ１及び付加データ２は、夫々右シフタ５０３及び右シフタ５０１に入力され、可変長符号化テーブル５０４及び可変長符号化テーブル５０１から夫々入力される可変長符号語長に対応するビット数分だけ、右にシフトされる。右にシフトされた付加データは夫々、ＯＲゲート５０８，５１０に入力され、ＯＲゲート５０８，５１０は可変長符号化テーブル５０４及び可変長符号化テーブル５０１から夫々入力される可変長符号語１及び可変長符号語２の論理和演算を行う。
【００２５】
ＯＲゲート５１０の出力は右シフタ５１１に入力され、更に右シフタ５１１には符号長計測器５３０により計測されたビット数（可変長符号語１の符号長＋付加データ１のビット数）が入力される。そしてシフタ５１１は符号長計測器５３０により計測されたビット数分だけＯＲゲート５１０の出力を右にシフトする。ＯＲゲート５１２は、右シフタ５１１の出力、及びＯＲゲート５０８の出力の論理和を演算する。これにより、ＯＲゲート５１２の出力はシンボル・データ１及びシンボル・データ２に対応する可変長符号化データ列となりＦＩＦＯ５１４に格納される。
【００２６】
また本実施形態における可変長符号化装置の出力側に接続される外部回路は、ＦＩＦＯ５１４内部に有効な可変長符号化データが存在している事を示す信号であるＮＯＴ　ＥＭＰＴＹ信号を受け、これを判定する事によって、可変長符号化データ列を取り出すか否かをＰＯＰ信号によって本可変長符号化装置に指示する。
【００２７】
一方、動作制御回路５１８においては、ＦＩＦＯ５１４がＦＵＬＬ状態であるか否かを示すＮＯＴ　ＦＵＬＬ信号を判定して、もしＮＯＴ　ＦＵＬＬ信号がネゲートされている場合には、本可変長符号化装置の入力側に接続される外部回路に対して、現在のクロック周期においてはシンボル・データを受け取る事が出来ない事を示すＰＥＮＤＩＮＧ信号をアザートする。
【００２８】
＜可変長符号化装置の動作（可変長符号化方法）＞
以下では、本実施形態における上記構成を備える可変長符号化装置の動作について説明する。以下の説明では、現在、本可変長符号化装置においてＴＤＴＡ信号及びＣＣカウンタ５１５の値から、可変長符号化テーブル５０４及び可変長符号化テーブル５０２においてＫ．５テーブル（ＡＣ係数に対するハフマンテーブル）が選択されているものとする。つまり、図７に示したテーブルを参照することで、シンボル・データ（ＲＲＲＲ／ＳＳＳＳ）に対応する可変長符号語を得ることができる。
【００２９】
図８は、本可変長符号化装置のクロック周期毎の動作を表した図である。まずクロック周期１において、入力側の外部回路はＶＡＬＩＤ１信号及びＶＡＬＩＤ２信号をアザートしており、二つの有効なシンボル・データＲＲＲＲ／ＳＳＳＳ１及びＲＲＲＲ／ＳＳＳＳ２が本可変長符号化装置に入力されている事を示している。動作制御回路５１８は、ＦＩＦＯ５１４のＮＯＴ　ＦＵＬＬ信号がアザートされている事からＰＥＮＤＩＮＧ信号をネゲートする事で外部回路に対して、クロック周期１において本可変長符号化装置は２つのシンボル・データを取り込む事を通知する。更にＦＩＦＯ５１４に対してはＰＵＳＨ信号をアザートして、可変長符号化データを取り込む様に指示をする。
【００３０】
クロック周期１ではシンボル・データＲＲＲＲ／ＳＳＳＳ１として”０／２”が、シンボル・データＲＲＲＲ／ＳＳＳＳ２として”１／９”が夫々可変長符号化テーブル５０４、５０２に入力される。夫々のテーブルからは、図７に示したテーブルに従った、入力された夫々のシンボル・データに対応する可変長符号語が出力される。図７に示したテーブルによると”０／２”に対応する可変長符号語（可変長符号語１）は”０１”で、”１／９”に対応する可変長符号語（可変長符号語２）は”１１１１１１１１１００００１１１”となるので、可変長符号化テーブル５０４、５０２は夫々可変長符号語”０１”、”１１１１１１１１１００００１１１”を出力する。
【００３１】
また、右シフタ５０３及び右シフタ５０１は、シンボル・データ０／２，１／９に付加された夫々の付加データ”０１”、”１１１１１０１０１”を入力し、夫々可変長符号語１のビット数（２ビット）、可変長符号語２のビット数（１６ビット）だけ右にシフトする。そして夫々シフトされた可変長符号語１，２は夫々ＯＲゲート５０８及ビＯＲゲート５１０で連結され、夫々”０１０１”、”１１１１１１１１１００００１１１１１１１１０１０１”となる。更に、右シフタ５１１は、ＯＲゲート５１０からの出力を、符号長計測器５３０で計測されたＯＲゲート５０８の出力のビット数（可変長符号語１のビット数＋付加データ１のビット数）、すなわち４ビット右にシフトする。
【００３２】
そしてＯＲゲート５１２は、右シフタ５１１の出力とＯＲゲート５０８の出力との論理和を計算し、可変長符号化データ列”０１０１１１１１１１１１１００００１１１１１１１１０１０１”を出力する。
【００３３】
クロック周期２では、ＶＡＬＩＤ２信号がネゲートされておりシンボル・データＲＲＲＲ／ＳＳＳＳ２が入力されていない状態である。クロック周期２では、可変長符号化テーブル５０２にはシンボル・データは入力されず、可変長符号化テーブル５０４にシンボル・データＲＲＲＲ／ＳＳＳＳ１”０／Ａ”が入力される。図７に示したテーブルによると、シンボル・データＲＲＲＲ／ＳＳＳＳ１””０／Ａ”に対応する可変長符号語１は”１１１１１１１１１００００００１”であるので、この可変長符号語が可変長符号化テーブル５０４５０４から出力される。また、右シフタ５０３は、シンボル・データ０／Ａに付加された付加データ”００１１１０００１１”を入力し、可変長符号語１のビット数（１６ビット）だけ右にシフトする。そしてシフトされた可変長符号語１はＯＲゲート５０８で連結され、”１１１１１１１１１００００００１００１１１０００１１”となる。
【００３４】
そしてＯＲゲート５１２は、右シフタ５１１からの出力がないので、とＯＲゲート５０８の出力をそのまま出力する。
【００３５】
クロック周期３では、ＦＩＦＯ５１４はＮＯＴ　ＦＵＬＬ信号をネゲートしており、現在のクロック周期においては、可変長符号化データを取り込めない事を示している。この場合、動作制御回路５１８は入力側の外部回路に対してＰＥＮＤＩＮＧ信号をアザートし、現在本可変長符号化装置は例えＶＡＬＩＤ１或いはＶＡＬＩＤ２信号をアザートしてもデータを取り込まない事を通知する。
【００３６】
クロック周期４では、入力側の外部回路はクロック周期３において入力したシンボル・データと付加データを続けて入力する。ＰＥＮＤＩＮＧ信号がネゲートされているので、本可変長符号化装置は、クロック周期１と同様の手順で可変長符号化データ列が生成され、ＦＩＦＯ５１４に格納される。
【００３７】
クロック周期５では、入力側の外部回路がＶＡＬＩＤ１及びＶＬＡＩＤ２信号をネゲートしているので、動作制御回路５１８はＦＩＦＯ５１４に対してＰＵＳＨ信号をネゲートし、このクロック周期では可変長符号化データ列を取り込まない事を指示する。
【００３８】
クロック周期６では、シンボル・データＲＲＲＲ／ＳＳＳＳ１としてＺＲＬが入力されている。ＺＲＬは付加データを伴わないシンボル・データであるので、図７に示したテーブルを参照すると、ＺＲＬに対応する可変長符号語は”１１１１１１１１００１”であるので、可変長符号化テーブル５０４，ＯＲゲート５０８の出力は共に”１１１１１１１１００１”となる。そしてこれ以降はクロック周期１と同様な手順でＦＩＦＯ５１４に出力される。
【００３９】
クロック周期７では、シンボル・データＲＲＲＲ／ＳＳＳＳ２として、ＤＣＴ係数ブロックの最終データである事を示すシンボル・データであるＥＯＢが入力されている。ＥＯＢはＺＲＬと同様に付加データを伴わないシンボル・データであるので、図７に示したテーブルを参照すると、ＥＯＢに対応する可変長符号語は”１０１０”であるのでＯＲゲート５１２の出力は”１０１０”となる。
【００４０】
以上の説明により、本実施形態における可変長符号化装置、及び可変長符号化方法により、複数の被符号化データを一度に処理し、この複数の被符号化データの可変長符号化データを生成することができるので、より高速に符号化処理を行うことができる。
【００４１】
［第２の実施形態］
図５に示した可変長符号化装置において、付加データ１とＲＲＲＲ／ＳＳＳＳ１のセットを被符号化データ１、付加データ２とＲＲＲＲ／ＳＳＳＳ２のセットを被符号化データ２と呼ぶことにすると、被符号化データ１の可変長符号データを生成する部分は右シフタ５０３，可変長符号化テーブル５０４、ＯＲゲート５０８、符号長生成器５０７である。この４つの部分をまとめて可変長符号生成部１とする。なお可変長符号生成器１は符号長生成器５０７により、可変長符号語のビット長を求め、出力する。
【００４２】
同様に、被符号化データ２の可変長符号データを生成する部分は右シフタ５０１，可変長符号化テーブル５０２、ＯＲゲート５１０、符号長生成器５０７である。この４つの部分をまとめて可変長符号生成部２とする。なお可変長符号生成器２は符号長生成器５０９により、可変長符号語のビット長を求め、出力する。図２Ａに可変長符号生成部の構成を示す。同図は、被符号化データに含まれる付加データＡとシンボルデータを入力し、付加データＡ’（右シフタ２０１でシフトされた付加データ）と可変長符号語とを連結し、可変長符号データを生成すると共に、可変長符号語のビット長を求める可変長符号生成部の構成を示している。
【００４３】
一方、可変長符号生成部１，２による可変長符号データ１，２を連結する部分は、右シフタ５１１、ＯＲゲート５１２である。この２つの部分をまとめて連結部とする。図２Ｂに連結部の構成を示す。同図は、可変長符号化データＡと可変長符号化データＢとを連結し、可変長符号化データＣを生成する連結部の構成を示している。
【００４４】
第１の実施形態では上記可変長符号生成部と連結部とを用いて２つの被符号化データを入力し、可変長符号化データを出力していたが、本実施形態では、上記可変長符号生成部と連結部とを用いて、２つ以上の被符号化データを入力し、可変長符号化データを出力する可変長符号化装置について説明する。
【００４５】
図１に本実施形態における第１の構成を有する可変長符号化装置の構成を示す。同図の可変長符号化装置は、まず可変長符号生成部１による可変長符号化データと可変長符号生成部２による可変長符号化データとを連結部１により連結する。そしてこの連結された可変長符号化データと可変長符号生成部３による可変長符号化データとを連結部２により連結する。以降、この処理を可変長符号生成部Ｎによる可変長符号化データを連結するまで行うことで、最終的に求めるべき可変長符号化データ列を求めることができる。また、各可変長符号生成部で求めた可変長符号語のビット長は加算器１１０，１１１、１１２，１１３により順次加算して求めることができる。
【００４６】
一方、図３に本実施形態における第２の構成を有する可変長符号化装置の構成を示す。同図の可変長符号化装置は、まず可変長符号生成部１による可変長符号化データと可変長符号生成部２による可変長符号化データとを連結部１により連結する。また、可変長符号生成部３による可変長符号化データと可変長符号生成部４による可変長符号化データとを連結部５により連結する。このようにして、可変長符号生成部ｍ（ｍは奇数であって、１≦ｍ≦Ｎ−１）による可変長符号化データと可変長符号生成部（ｍ＋１）による可変長符号化データとを連結部（ｍ＋１）／２により連結する。この処理を全てのｍに対して行う。
【００４７】
そして次に同図の通り、隣接している連結部の出力を順次連結していき、最終的に全て連結した連結部３１２により、最終的に求めるべき可変長符号化データ列を求めることができる。また、各可変長符号生成部で求めた可変長符号語のビット長は加算器３１３，３１４，３１５，３１６，３１７により順次加算して求めることができる。
【００４８】
［第３の実施形態］
第１及び第２の実施形態においては、被符号化データが付加データ及びシンボル・データＲＲＲＲ／ＳＳＳＳから構成される場合の例であった。この様な被符号化データとしてはＪＰＥＧ符号化方式が代表的であるが、本実施形態においてはＭＰＥＧ符号化方式に本発明を適用した例について説明する。
【００４９】
ＭＰＥＧ符号化方式においては、被符号化データがＤＣ係数である場合を除いては、付加データが存在せずにＲＵＮ／ＬＥＶＥＬのシンボル・データのみから構成される。すなわち、第２の実施例における可変長符号生成部の構成のみが、図２Ａとは異なり単に符号化テーブルを参照する処理のみで構成する事が出来る。一方、連結部の構成については、第２の実施形態と同様に図２Ｂと同様な構成で良い。
【００５０】
更には、第２の実施形態として示した図１及び図３で示される二つの可変長符号化装置の構成及び処理手順についても同様に、本第３の実施形態について適用する事が出来る。
【００５１】
［第４の実施形態］
上記実施形態では可変長符号化をハードウェアにより行っていたが、図１，２Ａ、２Ｂ、３、５に示した各部の機能をプログラムにより表現し、このプログラムをこのコンピュータに読み込ませて実行させることで、このコンピュータは上記実施形態に係る可変長符号化装置として機能することから、このプログラムが本発明の範疇にあることは明白である。
【００５２】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５４】
また、例えばＭＰＥＧ符号化方式においてヘッタ情報として動きベクトルを可変長符号化する場合にも実現される事は言うまでもない。この場合には可変長符号化テーブルに格納する可変長符号語を動きベクトルに対応するものに変更するだけで良い。
【００５５】
更には、本発明は画像データに対する可変長符号化装置に限定されるものではなく、オーディオ符号化であるＭＰＥＧ−１ＬａｙｅｒＩＩＩなどで採用されているエントロピ符号化技術における可変長符号化処理についても適用出来る事は言うまでもない。
【００５６】
【発明の効果】
以上の説明により、本発明によって、より高速に可変長符号化を行うことができる。
【図面の簡単な説明】
【図１】本発明の第２の実施形態における第１の構成を有する可変長符号化装置の構成を示すブロック図である。
【図２Ａ】可変長符号生成部の構成を示す図である。
【図２Ｂ】連結部の構成を示す図である。
【図３】本発明の第２の実施形態における第２の構成を有する可変長符号化装置の構成を示すブロック図である。
【図４】従来の可変長符号化装置の構成例を示すブロック図である。
【図５】本発明の第１の実施形態における可変長符号化装置の基本構成を示す図である。
【図６】従来技術を使用した可変長符号化装置の動作を説明するためのクロック周期毎の動作を示す図である。
【図７】Ｔａｂｌｅ　Ｋ５の一部を示す図である。
【図８】図７に示す可変長符号化装置のクロック毎の動作を示す図である。
【図１】
2004056758.tif 000003
【図２Ａ】
2004056758.tif 000004
【図２Ｂ】
2004056758.tif 000005
【図３】
2004056758.tif 000006
【図４】
2004056758.tif 000007
【図５】
2004056758.tif 000008
【図６】
2004056758.tif 000009
【図７】
2004056758.tif 000010
【図８】
2004056758.tif 000011