(57)【特許請求の範囲】
【請求項１】
処理対象となるデータに可変長符号を用いた符号化を行うデータ処理装置であって、
符号化前後の各データの対応関係を特定する演算に必要なパラメータのみを格納したレジスタ手段と、
前記レジスタ手段が格納しているパラメータを逐次取り出して符号化演算を行う演算手段とを備えるとともに、
前記レジスタ手段は、前記パラメータを複数エントリに分類される可変長符号表形式で格納するとともに、各エントリ毎に個別のパラメータを格納するものであり、
前記パラメータは、固定値である主符号と可変値である付加符号とからなる符号化データにおける主符号のパターンと、付加符号長または総符号長と、各エントリに適応する符号化前データのデータ値の適応範囲上限または適応範囲下限のいずれか一方と、を含んで構成されている
ことを特徴とするデータ処理装置。
【請求項２】
前記演算手段は、一つのエントリにおけるデータ値の適応範囲下限と、当該一つのエントリの次エントリにおけるデータ値の適応範囲下限とから、当該一つのエントリにおけるデータ値の適応範囲上限を決定する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記演算手段は、一つのエントリにおけるデータ値の適応範囲上限と、当該一つのエントリの次エントリにおけるデータ値の適応範囲上限とから、当該一つのエントリにおけるデータ値の適応範囲下限を決定する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記演算手段は、一つのエントリにおけるデータ値の適応範囲下限または適応範囲上限と、当該一つのエントリにおける符号化データの付加符号長または総符号長とから、当該一つのエントリにおけるデータ値の適応範囲上限または適応範囲下限を決定するものである
ことを特徴とする請求項１記載のデータ処理装置。
【請求項５】
処理対象となるデータに可変長符号を用いた符号化を行うためのデータ処理方法であって、
符号化前後の各データの対応関係を特定する演算に必要なパラメータのみを、複数エントリに分類される可変長符号表形式で予め格納しておくとともに、各エントリ毎に個別のパラメータを格納しておき、
前記パラメータを、固定値である主符号と可変値である付加符号とからなる符号化データにおける主符号のパターンと、付加符号長または総符号長と、各エントリに適応する符号化前データのデータ値の適応範囲上限または適応範囲下限のいずれか一方とを含んで構成し、
処理対象となるデータに符号化を行うのにあたり、格納しているパラメータを逐次取り出して符号化演算または復号化演算を行う
ことを特徴とするデータ処理方法。
【請求項６】
処理対象となるデータに可変長符号を用いた符号化を行うためのデータ処理プログラムであって、
コンピュータを、
符号化前後の各データの対応関係を特定する演算に必要なパラメータのみを格納するレジスタ手段と、
前記レジスタ手段が格納しているパラメータを逐次取り出して符号化演算を行う演算手段として機能させるとともに、
前記レジスタ手段は、前記パラメータを複数エントリに分類される可変長符号表形式で格納するとともに、各エントリ毎に個別のパラメータを格納するものであり、
前記パラメータは、固定値である主符号と可変値である付加符号とからなる符号化データにおける主符号のパターンと、付加符号長または総符号長と、各エントリに適応する符号化前データのデータ値の適応範囲上限または適応範囲下限のいずれか一方と、を含んで構成されている
ことを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、処理対象となるデータに可変長符号を用いた符号化またはその復号化の少なくとも一方を行うデータ処理装置、データ処理方法およびデータ処理プログラムに関する。
【０００２】
【従来の技術】
一般に、ディジタルデータ、特に画像を表現するためのディジタルデータ（以下、単に「画像データ」という）は、データ圧縮のために符号化されることが多い。画像データに対する符号化としては、例えば可変長符号を用いたエントロピー符号化であるハフマン符号化が広く知られている。ハフマン符号化では、処理対象となる画像データ（データ値の集合）のうち、出現確率の高いデータ値についてはこれを短い符号長のハフマン符号からなる符号化データに変換し、出現確率の低いデータ値についてはこれを長い符号長のハフマン符号からなる符号化データに変換することで、符号化効率を高めコンパクトな符号化を実現するようになっている。
【０００３】
従来、このようなハフマン符号化は、符号化前のデータ値と符号化後の符号化データとの対応関係がそれぞれ個別に、かつ、一義的に定義されたハフマン符号対応表に基づいて行われる。このことから、ハフマン符号化を行う符号化回路としては、図３に示すような構成のものが知られている。図例の符号化回路では、符号化変換手段としてのＲＡＭ（Random Access Memory）３０を有しており、このＲＡＭ３０内に書き換え可能なハフマン符号対応表がルックアップテーブル（以下「ＬＵＴ」と略す）構造で格納されている。そして、ＲＡＭ３０に処理対象となる画像データが入力されると、ハフマン符号対応表を参照しつつ、ハフマン符号からなる符号化データに変換して出力するようになっている。すなわち、入力データ値がＲＡＭ３０のアドレスに入力され、出力データとしてハフマン符号による符号化データが出力される仕組みである。
【０００４】
なお、符号化データに対しては、これを元の状態（符号化前の状態）に戻す復号化が必要となるが、その復号化も上述したハフマン符号化と略同様の手法（符号化の場合とは逆の手順）および回路構成によって行われている。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来の符号化回路の構成では、ハフマン符号化（または復号化）を行うのにあたって、ＬＵＴ構造のハフマン符号対応表が必要になってしまう。すなわち、符号化（または復号化）前後の各データが互いに対応付けられたＬＵＴを事前に用意しておく必要がある。したがって、ＬＵＴ構造のハフマン符号対応表を格納し得るような、ある程度の記憶容量を有したＲＡＭ３０を符号化（または復号化）変換手段として用いなければならず、結果として回路規模の大型化を招いてしまうおそれがある。特に、処理対象が画像データである場合には、その画像データを構成するデータ値が多様で、その出現確率のばらつきも大きいことから、ハフマン符号対応表のために大きな記憶容量が必要となる可能性が高く、回路規模の大型化の問題が非常に深刻化すると考えられる。
【０００６】
そこで、本発明は、可変長符号を用いた符号化または復号化を行う場合であっても、符号化または復号化前後の各データが互いに対応付けられたＬＵＴ構造の符号対応表を不要とすることで、回路規模大型化の問題を解消することのできるデータ処理装置、データ処理方法およびデータ処理プログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、上記目的を達成するために案出されたデータ処理装置である。すなわち、処理対象となるデータに可変長符号を用いた符号化を行うデータ処理装置であって、符号化前後の各データの対応関係を特定する演算に必要なパラメータのみを格納したレジスタ手段と、前記レジスタ手段が格納しているパラメータを逐次取り出して符号化演算を行う演算手段とを備えるとともに、前記レジスタ手段は、前記パラメータを複数エントリに分類される可変長符号表形式で格納するとともに、各エントリ毎に個別のパラメータを格納するものであり、前記パラメータは、固定値である主符号と可変値である付加符号とからなる符号化データにおける主符号のパターンと、付加符号長または総符号長と、各エントリに適応する符号化前データのデータ値の適応範囲上限または適応範囲下限のいずれか一方と、を含んで構成されていることを特徴とするものである。
【０００８】
また、本発明は、上記目的を達成するために案出されたデータ処理方法である。すなわち、処理対象となるデータに可変長符号を用いた符号化を行うためのデータ処理方法であって、符号化前後の各データの対応関係を特定する演算に必要なパラメータのみを、複数エントリに分類される可変長符号表形式で予め格納しておくとともに、各エントリ毎に個別のパラメータを格納しておき、前記パラメータを、固定値である主符号と可変値である付加符号とからなる符号化データにおける主符号のパターンと、付加符号長または総符号長と、各エントリに適応する符号化前データのデータ値の適応範囲上限または適応範囲下限のいずれか一方とを含んで構成し、処理対象となるデータに符号化を行うのにあたり、格納しているパラメータを逐次取り出して符号化演算または復号化演算を行うことを特徴とする。
【０００９】
また、本発明は、上記目的を達成するために案出されたデータ処理プログラムである。すなわち、処理対象となるデータに可変長符号を用いた符号化を行うためのデータ処理プログラムであって、コンピュータを、符号化前後の各データの対応関係を特定する演算に必要なパラメータのみを格納するレジスタ手段と、前記レジスタ手段が格納しているパラメータを逐次取り出して符号化演算を行う演算手段として機能させるとともに、前記レジスタ手段は、前記パラメータを複数エントリに分類される可変長符号表形式で格納するとともに、各エントリ毎に個別のパラメータを格納するものであり、前記パラメータは、固定値である主符号と可変値である付加符号とからなる符号化データにおける主符号のパターンと、付加符号長または総符号長と、各エントリに適応する符号化前データのデータ値の適応範囲上限または適応範囲下限のいずれか一方と、を含んで構成されていることを特徴とするものである。
【００１０】
上記構成のデータ処理装置、データ処理方法およびデータ処理プログラムによれば、従来のような符号化前後の各データを含む符号対応表ではなく、各データの対応関係を特定する演算に必要なパラメータで、符号化データにおける主符号のパターンと、付加符号長または総符号長と、各エントリに適応する符号化前データのデータ値の適応範囲上限または適応範囲下限のいずれか一方とを含んで構成されているもののみを、複数エントリに分類される可変長符号表形式で予め格納しておくとともに、各エントリ毎に個別のパラメータを格納しておき、符号化を行う度に、パラメータを逐次取り出して符号化演算を行う。したがって、処理対象となるデータ（符号化前データ）に可変長符号を用いた符号化を行う場合であっても、パラメータのみを用意しておくだけで、当該符号化を行い得るようになる。
【００１１】
【発明の実施の形態】
以下、図面に基づき本発明のデータ処理装置、データ処理方法およびデータ処理プログラムについて説明する。
【００１２】
先ず、データ処理装置の構成について説明する。ここで説明するデータ処理装置は、処理対象となる画像データに対して、可変長符号であるハフマン符号を用いた符号化を行うものである。
【００１３】
また、ここで説明するデータ処理装置は、画像データに対してハフマン符号化を行うものであることから、例えば複写機、スキャナ装置、プリンタ装置、ＦＡＸ装置、画像処理機能を有したコンピュータ装置等のように、画像データを取り扱う各種装置に搭載されて用いられるものである。さらには、これらの各種装置を有線又は無線で互いに接続したネットワークシステム上にて用いられるものであってもよい。なお、これらの各種装置等の詳細については、公知であるため、ここではその説明を省略する。
【００１４】
図１は、本発明に係るデータ処理装置の概略構成例を示すブロック図である。図例のように、データ処理装置は、従来のような符号化変換手段としてのＲＡＭ（図３参照）を備えておらず、レジスタ部１０および符号演算回路部２０を備えて構成されている。レジスタ部１０は、詳細を後述するように、ハフマン符号化のための演算に必要なパラメータを格納するものである。また、符号演算回路部２０は、画像データ（データ値の集合）が入力されると、レジスタ部１０が格納しているパラメータを逐次取り出して符号化演算を行い、各データ値（以下、このデータ値を単に「入力値」という）を符号化データに変換して出力するものである。
【００１５】
このことから、データ処理装置は、具体的にはレジスタ（記憶）機能と演算処理機能とを有したマイクロプロセッサによって実現することが考えられる。ただし、これらの機能はハードウエアによるものであっても、ソフトウエアによるものであっても構わない。すなわち、レジスタ部１０および符号演算回路部２０は、コンピュータとしての機能を有したマイクロプロセッサが所定のデータ処理プログラムを実行することによって実現されるものであってもよい。この場合、データ処理プログラムは、予めマイクロプロセッサ内またはこれと接続する記憶素子等に格納しておくことが考えられるが、コンピュータ読み取り可能な記憶媒体に格納されて提供されるものであっても、または有線若しくは無線による通信手段を介して配信されるものであってもよい。
【００１６】
続いて、レジスタ部１０が格納するパラメータについて詳しく説明する。レジスタ部１０は、パラメータを複数エントリに分類されるハフマン符号表形式で格納する。図２は、ハフマン符号表の一具体例を示す説明図である。図例のように、ハフマン符号表は、複数のエントリ（行列状の表形式における各列に相当）からなるもので、各エントリ毎にそれぞれ個別のパラメータが設定される。
【００１７】
エントリ毎に設定されるパラメータは、いずれも、ハフマン符号化前後の各データの対応関係を特定する演算に必要となるものである。具体的には、エントリ毎のパラメータとして、▲１▼入力値の適応範囲上限、▲２▼入力値の適応範囲下限、▲３▼主符号のパターン、▲４▼主符号のパターン長、▲５▼付加符号長または総符号長、▲６▼エントリの有効／無効情報が挙げられる。
【００１８】
▲１▼入力値の適応範囲上限は、各エントリに適応する入力値の上限を規定するパラメータである。例えば、図２のハフマン符号表の場合であれば、１、２、４、８、１６、１０４０といった値がこれに該当する。また、▲２▼入力値の適応範囲下限は、各エントリに適応する入力値の下限を規定するパラメータである。例えば、図２のハフマン符号表の場合であれば、１、２、３、５、９、１７といった値がこれに該当する。
【００１９】
▲３▼主符号のパターンは、主符号（固定値）＋付加符号（可変値）によって構成される符号化データにおける主符号のパターンを規定するパラメータであり、また▲４▼主符号のパターン長は、その主符号のパターン長を規定するパラメータである。例えば、図２のハフマン符号表の場合であれば、０、１０、１１０、１１１０、１１１１０、１１１１１といった符号が主符号に該当する。
【００２０】
▲５▼付加符号長は、主符号＋付加符号によって構成される符号化データにおける付加符号のパターン長を規定するパラメータである。例えば、図２のハフマン符号表の場合であれば、［１］、［２］、［３］、［１０］といったかっこ内の値がこれに該当する。ただし、主符号についてはそのパターン長が上述したようにに規定されており、また総符号長＝主符号長＋付加符号長の関係にあることから、付加符号長ではなく総符号長をパラメータとして設定しても構わない。
【００２１】
▲６▼エントリの有効／無効情報は、複数エントリに分類されるハフマン符号表の各エントリについて、当該エントリが有効であるか、あるいは無効であるかを規定するパラメータである。例えば、図２のハフマン符号表のように全てのエントリに入力値の適応範囲が規定されていればいずれのエントリも有効ということになるが、総エントリ数に対して入力値の適応範囲数が少ない場合には、入力値の適応範囲が規定されていないエントリについては無効と規定されることになる。したがって、このエントリの有効／無効情報は、ハフマン符号表の汎用性を確保し、ハフマン符号化の適用柔軟性を高めるためのものであるといえる。
【００２２】
なお、これらの各パラメータは、入力値の出現確率の分析結果等に基づいて、事前に決定され、レジスタ部１０にハフマン符号表形式で設定されているものとする。ただし、レジスタ部１０には、複数種類のハフマン符号表が設定されていてもよい。この場合には、処理対象となる画像データの種類によって各ハフマン符号表を使い分けることで、例えばイメージについての画像データとテキストについての画像データとで、それぞれ異なるハフマン符号表（パラメータ）を用いるといったことが可能となるため、より一層好適なハフマン符号化を実現することができる。また、一度レジスタ部１０に設定されたパラメータは、必要に応じて書き換えるようにしてもよい。
【００２３】
次に、以上のように構成されたデータ処理装置がハフマン符号化を行う際の処理手順、すなわち本発明に係るデータ処理方法について説明する。
【００２４】
ハフマン符号化を行う際には、先ず、処理対象となる符号化前の画像データ（入力値の集合）がシリアルに符号演算回路部２０に入力される。このとき、既に、レジスタ部１０には、符号化演算に必要なパラメータが、複数エントリに分類されるハフマン符号表形式で格納されている。すなわち、ハフマン符号表の各エントリについて、上述した▲１▼〜▲６▼のパラメータが設定されている。
【００２５】
そして、画像データが入力されると、符号演算回路部２０は、当該画像データを構成する各入力値について、レジスタ部１０が格納しているパラメータを逐次取り出して、符号化演算を行う。詳しくは、符号演算回路部２０では、先ず、▲１▼、▲２▼および▲６▼のパラメータを参照しつつ、処理対象の入力値がハフマン符号表のどのエントリに該当するかを特定する。そして、いずれか一つのエントリを特定すると、▲３▼、▲４▼および▲５▼のパラメータを参照しつつ、符号化データの算出を行う。
【００２６】
具体的には、例えば「１０」という入力値について図２のハフマン符号表を参照しつつ符号化演算を行う場合を考えると、当該入力値は▲１▼および▲２▼のパラメータが「９〜１６」と規定されたエントリに該当するので、そのエントリにおける▲３▼および▲４▼のパラメータから主符号を「１１１１０」とする。また、▲５▼のパラメータからそのエントリにおける付加符号長は「３」であることがわかる。ここで、当該入力値は、そのエントリにおける適応範囲下限（入力値が「９」）から数えて２番目の値である。したがって、３ビットのデータ中の２番目の値である「０１０」を当該入力値についての付加符号として算出する。
【００２７】
このようにして、符号演算回路部２０は、各入力値について逐次符号化演算を行い、主符号＋付加符号からなる符号化データを算出し、その算出結果である符号化データをシリアルに出力するのである。
【００２８】
以上のように、本実施形態で説明したデータ処理装置（データ処理プログラム）１０、およびそのデータ処理装置が行うデータ処理方法によれば、従来のような入力値と符号化データの対応関係がそれぞれ個別かつ一義的に定義されたハフマン符号対応表ではなく、入力値から符号化データを導き出す符号化演算に必要なパラメータのみを予め格納しておき、符号化または復号化を行う度にパラメータを逐次取り出して符号化演算を行うことで、ハフマン符号化を行うようになっている。つまり、その都度行う符号化演算において、ハフマン符号表（図２参照）のパラメータがそのまま用いられ、入力値に応じたダイナミックな演算により符号化データが得られるので、予め格納しておくのはパラメータのみで済む。したがって、ハフマン符号を用いた符号化を行う場合であっても、パラメータのみを用意しておくだけで当該符号化を行えることから、従来のようなＬＵＴ構造のハフマン符号対応表を必要とすることがなく、結果として回路規模の小型化を実現することが可能となる。
【００２９】
また、本実施形態におけるデータ処理装置では、符号化演算に必要となるパラメータが、レジスタ部１０によって複数エントリに分類されるハフマン符号表形式で格納されるとともに、各エントリ毎に個別のパラメータが格納されるようになっている。そのため、処理対象となるデータが画像データである場合のように、入力値が多様でその出現確率のばらつきも大きいものであっても、エントリ別の符号化演算を行えばよいので、どのようなデータについても柔軟に対応して適切なハフマン符号化を行うことが可能となり得る。また、エントリ別の符号化演算によって、その符号化演算の容易化および迅速化も図れ、これにより符号演算回路部２０の簡素化も実現し得るようになる。
【００３０】
ところで、上述した実施形態では、レジスタ部１０が▲１▼〜▲６▼の全パラメータをエントリ毎に格納している場合を例に挙げて説明したが、レジスタ部１０は必ずしもこれらのパラメータを全て格納している必要はない。すなわち、レジスタ部１０は、エントリ毎に格納するパラメータとして、少なくとも、▲１▼入力値の適応範囲上限または▲２▼入力値の適応範囲下限のいずれかと、▲３▼主符号のパターンと、▲５▼付加符号長または総符号長とを格納していればよい。少なくともこれらのパラメータを格納していれば、符号演算回路部２０は入力値から符号化データを導き出す符号化演算を行うことが可能となり、また格納するパラメータが少なければレジスタ部１０として確保する記憶容量（アドレス空間）も少なくて済むからである。
【００３１】
ここで、レジスタ部１０に格納するパラメータを削減する具体例について説明する。第１の具体例としては、以下の述べるようなものが考えられる。すなわち、ハフマン符号表設定時に、各エントリの適応範囲を小さい順に並べるとともに、各エントリには「２（マル２）」入力値の適応範囲下限のみを設定し、「１（マル１）」入力値の適応範囲上限については設定しない。そして、各エントリの適応範囲が小さい順に並んでいることから、符号演算回路部２０が、各エントリの「２（マル２）」入力値の適応範囲下限を基に、各エントリにおける入力値の適応範囲上限を算出して決定する。詳しくは、符号演算回路部２０は、一つのエントリにおける「２（マル２）」入力値の適応範囲下限と、当該一つのエントリの次エントリにおける「２（マル２）」入力値の適応範囲下限とから、当該一つのエントリにおけるデータ値の適応範囲上限を決定する。
【００３２】
このようにすれば、レジスタ部１０に格納するパラメータを削減可能となるので、エントリ毎のパラメータ設定のレジスタ領域（アドレス空間）が増加してしまうのを極力抑えることができ、結果としてより一層の回路規模の小型化を実現することが可能となる。なお、このことは、パラメータとして▲２▼入力値の適応範囲下限ではなく▲１▼入力値の適応範囲上限のみを設定するようにした場合についても全く同様のことがいえる。
【００３３】
また、第２の具体例としては、以下の述べるようなものが考えられる。すなわち、ハフマン符号表設定時に、各エントリの適応範囲を小さい順に並べるとともに、各エントリには「２（マル２）」入力値の適応範囲下限のみを設定し、「１（マル１）」入力値の適応範囲上限については設定しない。そして、各エントリの適応範囲が小さい順に並んでいることから、符号演算回路部２０が、各エントリの「２（マル２）」入力値の適応範囲下限と、各エントリについて設定されている「５（マル５）」付加符号長または総符号長とを基に、各エントリにおける入力値の適応範囲上限を算出して決定する。詳しくは、ハフマン符号の適応範囲は２nが基本となるので、符号演算回路部２０は、一つのエントリにおける「２（マル２）」入力値の適応範囲下限と、当該一つのエントリにおける「５（マル５）」付加符号長または総符号長とから、当該一つのエントリにおけるデータ値の適応範囲上限を決定する。
【００３４】
このようにしても、レジスタ部１０に格納するパラメータを削減可能となるので、エントリ毎のパラメータ設定のレジスタ領域（アドレス空間）が増加してしまうのを極力抑えることができ、結果としてより一層の回路規模の小型化を実現することが可能となる。この場合も、パラメータとして▲２▼入力値の適応範囲下限ではなく▲１▼入力値の適応範囲上限のみを設定してもよいことは、上述した第１の具体例の場合と同様である。
【００３６】
また、本実施形態では、可変長符号を用いた符号化としてハフマン符号化を例に挙げて説明したが、可変長符号を用いたものであれば、他の符号化または復号化であっても、全く同様に本発明を適用することが考えられる。
【００３７】
さらに、本発明は、本実施形態で説明したような画像データのみならず、他のディジタルデータ全般の符号化または復号化に適用可能であることはいうまでもない。
【００３８】
【発明の効果】
以上に説明したように、本発明のデータ処理装置、データ処理方法およびデータ処理プログラムによれば、符号化前後の各データの対応関係を特定する演算に必要なパラメータのみを格納しておき、符号化を行う度に、パラメータを逐次取り出して符号化演算を行うので、可変長符号を用いた符号化を行う場合であっても、符号化前後の各データが互いに対応付けられたＬＵＴ構造の符号対応表が不要となり、従来あったような回路規模大型化の問題を解消することができる。
【図面の簡単な説明】
【図１】  本発明に係るデータ処理装置の概略構成例を示すブロック図である。
【図２】  本発明に係るデータ処理装置にて用いられるハフマン符号表の一具体例を示す説明図である。
【図３】  従来におけるハフマン符号化を行う符号化回路の概略構成例を示すブロック図である。
【符号の説明】
１０…レジスタ部、２０…符号演算回路部
【図１】
0003791437.tif 000002
【図２】
0003791437.tif 000003
【図３】
0003791437.tif 000004