(57)【要約】【課題】符号化処理を高速化することができる符号化装置を提供する。【解決手段】間接的な表現形式（付加ビット表現など）で表された符号からなる符号表の一部を、直接的な表現形式（付加ビットが展開された形式など）に変換し、変換後の符号表を用いて、シンボルを符号化する。特に、出現頻度が高いシンボルに対応する符号を優先して直接表現に変換することにより、符号表のサイズに制限がある場合でも、効率よく符号化処理を高速化することができる。【選択図】          図５
2004201070.tif 000002
【特許請求の範囲】
【請求項１】
シンボルを符号化する符号化装置であって、
第１のシンボル群に対して、付加ビットが展開された展開済み符号を対応付ける第１のエントリグループと、第２のシンボル群に対して、付加ビット表現符号を対応付ける第２のエントリグループとを含む符号表と、
前記第２のエントリグループに属する付加ビット表現符号を展開する展開手段と
を有する符号化装置。
【請求項２】
前記第１のシンボル群に属するシンボルは、前記第２のシンボル群に属するシンボルよりも出現頻度が高い
請求項１に記載の符号化装置。
【請求項３】
前記第１のシンボル群は、第２のシンボル群と一部重複する
請求項１または２に記載の符号化装置。
【請求項４】
前記展開手段により展開された展開済み符号を、第１のエントリグループに登録する登録手段
をさらに有する請求項１〜３のいずれかに記載の符号化装置。
【請求項５】
前記登録手段は、前記符号表を記憶する記憶領域の残量に応じて、前記展開手段により展開された展開済み符号を登録する
請求項４に記載の符号化装置。
【請求項６】
前記登録手段は、シンボルの出現頻度に応じて、前記展開手段により展開された展開済み符号を登録する
請求項４に記載の符号化装置。
【請求項７】
シンボルを符号化する符号化装置であって、
第１のシンボル群に第１の符号群を対応付ける第１の符号表と、
第２のシンボル群に第２の符号群を対応付ける第２の符号表と、
第１のシンボル群に属するシンボルおよび第２のシンボル群に属するシンボルの組合せの一部を、第１の符号群および第２の符号群に基づいて作成された第３の符号群に対応付ける第３の符号表と
を有し、
符号化されるシンボルが前記組合せの一部に該当する場合に、第３の符号表を用いて符号化し、これ以外の場合に、第１の符号表および第２の符号表の少なくとも一方を用いて符号化する符号化装置。
【請求項８】
符号化装置および復号化装置を含む画像処理システムであって、
前記符号化装置は、
第１のシンボル群に対して、付加ビットが展開された展開済み符号を対応付ける第１のエントリグループと、第２のシンボル群に対して、付加ビット表現符号を対応付ける第２のエントリグループとを含む符号表と、
第２のエントリグループに属する付加ビット表現符号を展開する展開手段と
を有し、
前記復号化装置は、
前記符号表に基づいて符号化されたシンボルを、復号化する復号化手段
を有する
画像処理システム。
【請求項９】
符号化装置および復号化装置を含む画像処理システムであって、
前記符号化装置は、
第１のシンボル群に第１の符号群を対応付ける第１の符号表と、
第２のシンボル群に第２の符号群を対応付ける第２の符号表と、
第１のシンボル群に属するシンボルおよび第２のシンボル群に属するシンボルの組合せの一部を、第１の符号群および第２の符号群に基づいて作成された第３の符号群に対応付ける第３の符号表と
を有し、
前記符号化装置は、符号化されるシンボルが前記組合せの一部に該当する場合に、第３の符号表を用いて符号化し、これ以外の場合に、第１の符号表および第２の符号表の少なくとも一方を用いて符号化し、
前記復号化装置は、
符号化されたシンボルを復号化する復号化手段
を有する
画像処理システム。
【請求項１０】
シンボルを符号に変換する符号化方法であって、
第１のシンボル群に対して、付加ビットが展開された展開済み符号を対応付ける第１のエントリグループと、第２のシンボル群に対して、付加ビット表現符号を対応付ける第２のエントリグループとを含む符号表を、コンピュータが参照し、
コンピュータが、符号化されるシンボルが前記第１のエントリグループに該当する場合に、前記第１のエントリグループに属する展開済み符号を用いてシンボルを符号化し、これ以外の場合に、第２のエントリグループに属する付加ビット表現符号を展開し、展開された符号を用いてシンボルを符号化する
符号化方法。
【請求項１１】
シンボルを符号に変換する符号化方法であって、
第１のシンボル群に第１の符号群を対応付ける第１の符号表、第２のシンボル群に第２の符号群を対応付ける第２の符号表、および、第１のシンボル群に属するシンボルと第２のシンボル群に属するシンボルとの組合せを第１の符号群および第２の符号群の少なくとも一部に基づいて作成された第３の符号群に対応付ける第３の符号表の少なくとも１つを、コンピュータが参照し、
第３の符号表内に符号化されるシンボルが存在する場合に、コンピュータは、第３の符号表に基づいてシンボルを符号化し、
これ以外の場合に、第１の符号表および第２の符号表に基づいてシンボルを符号化する
符号化方法。
【請求項１２】
符号表を作成する符号表作成方法であって、
付加ビット表現符号と、シンボル群とを互いに対応付ける符号表に基づいて、展開する対象シンボルに対応する付加ビット表現符号を特定し、
付加ビット表現符号の付加ビットを生成し、
生成された付加ビットを、付加ビット表現符号に付加し、
付加ビットが付加された付加ビット表現符号を、対象シンボルに対応付けて前記符号表に登録する
符号表作成方法。
【請求項１３】
付加ビット表現符号の少なくとも一部が展開された場合に、この付加ビット表現符号と、展開された展開済み符号との両方を符号表に登録する
請求項１２に記載の符号表作成方法。
【請求項１４】
コンピュータを含む符号化装置において、
第１のシンボル群に対して、付加ビットが展開された展開済み符号を対応付ける第１のエントリグループと、第２のシンボル群に対して、付加ビット表現符号を対応付ける第２のエントリグループとを含む符号表を、参照するステップと、
符号化されるシンボルが前記第２のエントリグループに属する場合に、シンボルに対応する付加ビット表現符号を展開するステップと
を前記符号化装置のコンピュータに実行させるプログラム。
【請求項１５】
コンピュータを含む符号化装置において、
第１のシンボル群に第１の符号群を対応付ける第１の符号表、第２のシンボル群に第２の符号群を対応付ける第２の符号表、および、第１のシンボル群に属するシンボルと第２のシンボル群に属するシンボルとの組合せを、第１の符号群および第２の符号群に基づいて作成された第３の符号群に対応付ける第３の符号表の少なくとも１つを、参照するステップと、
前記第３の符号表に符号化されるシンボルが存在する場合に、第３の符号表に基づいてシンボルを符号化し、これ以外の場合に、第１の符号表および第２の符号表に基づいてシンボルを符号化するステップと
を前記符号化装置のコンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、付加ビット表現された符号表を用いて符号化処理を行う符号化装置に関する。
【０００２】
【従来の技術】
シンボルを符号化する場合には、固定長または可変長のビット列からなる符号が用いられる。特に、シンボルの出現頻度に偏りがある場合には、各シンボルに対して出現頻度に応じた可変長符号を割り当てることにより、符号量を低減させることができる。
このようにシンボルを符号化する際には、シンボルと符号とを互いに対応付ける符号表が用いられるが、シンボル数が多くなると符号表が大きくなり、記憶領域に格納できない場合がある。
そこで、複数のシンボルをグループにまとめ、各グループを識別する符号（以下、付加ビット表現符号）を符号表に格納し、符号化処理を行う際には、この付加ビット表現符号に付加ビットを付加して、各シンボルを一意に識別する符号に展開し、展開された符号を用いて符号化する方法が提案されている（例えば、非特許文献１）。
また、符号データの復号化を高速化する方法として、２つのルックアップテーブルを利用する方法が提案されている（例えば、特許文献１）。
【０００３】
【非特許文献１】
ftp://ftp.iij.ad.jp/pub/rfc/rfc1951.txt
【特許文献１】
特開２００１−７７０６
【０００４】
【発明が解決しようとする課題】
本発明は、上述した背景からなされたものであり、符号化処理を高速化することができる符号化装置、画像処理システム、符号化方法、符号表作成方法、およびプログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
［画像処理装置］
上記目的を達成するために、本発明にかかる符号化装置は、シンボルを符号化する符号化装置であって、第１のシンボル群に対して、付加ビットが展開された展開済み符号を対応付ける第１のエントリグループ、および、第２のシンボル群に対して、付加ビット表現符号を対応付ける第２のエントリグループを含む符号表と、前記第２のエントリグループに属する付加ビット表現符号を展開する展開手段とを有する。
【０００６】
好適には、前記第１のシンボル群に属するシンボルは、前記第２のシンボル群に属するシンボルよりも出現頻度が高い。
【０００７】
好適には、前記第１のシンボル群は、第２のシンボル群と一部重複する。
【０００８】
好適には、前記展開手段により展開された展開済み符号を、第１のエントリグループに登録する登録手段をさらに有する。
【０００９】
好適には、前記登録手段は、前記符号表を記憶する記憶領域の残量に応じて、前記展開手段により展開された展開済み符号を登録する。
【００１０】
好適には、前記登録手段は、シンボルの出現頻度に応じて、前記展開手段により展開された展開済み符号を登録する。
【００１１】
また、本発明にかかる符号化装置は、シンボルを符号化する符号化装置であって、第１のシンボル群に第１の符号群を対応付ける第１の符号表と、第２のシンボル群に第２の符号群を対応付ける第２の符号表と、第１のシンボル群に属するシンボルおよび第２のシンボル群に属するシンボルの組合せの一部を、第１の符号群および第２の符号群に基づいて作成された第３の符号群に対応付ける第３の符号表とを有し、符号化されるシンボルが前記組合せの一部に該当する場合に、第３の符号表を用いて符号化し、これ以外の場合に、第１の符号表および第２の符号表の少なくとも一方を用いて符号化する。
【００１２】
また、本発明にかかる画像処理システムは、符号化装置および復号化装置を含む画像処理システムであって、前記符号化装置は、第１のシンボル群に対して、付加ビットが展開された展開済み符号を対応付ける第１のエントリグループと、第２のシンボル群に対して、付加ビット表現符号を対応付ける第２のエントリグループとを含む符号表と、第２のエントリグループに属する付加ビット表現符号を展開する展開手段とを有し、前記復号化装置は、前記符号表に基づいて符号化されたシンボルを、復号化する復号化手段を有する。
【００１３】
また、本発明にかかる画像処理システムは、符号化装置および復号化装置を含む画像処理システムであって、前記符号化装置は、第１のシンボル群に第１の符号群を対応付ける第１の符号表と、第２のシンボル群に第２の符号群を対応付ける第２の符号表と、第１のシンボル群に属するシンボルおよび第２のシンボル群に属するシンボルの組合せの一部を、第１の符号群および第２の符号群に基づいて作成された第３の符号群に対応付ける第３の符号表とを有し、前記符号化装置は、符号化されるシンボルが前記組合せの一部に該当する場合に、第３の符号表を用いて符号化し、これ以外の場合に、第１の符号表および第２の符号表の少なくとも一方を用いて符号化し、前記復号化装置は、符号化されたシンボルを復号化する復号化手段を有する。
【００１４】
また、本発明にかかる符号化方法は、シンボルを符号に変換する符号化方法であって、第１のシンボル群に対して、付加ビットが展開された展開済み符号を対応付ける第１のエントリグループと、第２のシンボル群に対して、付加ビット表現符号を対応付ける第２のエントリグループとを含む符号表を、コンピュータが参照し、コンピュータが、符号化されるシンボルが前記第１のエントリグループに該当する場合に、前記第１のエントリグループに属する展開済み符号を用いてシンボルを符号化し、これ以外の場合に、第２のエントリグループに属する付加ビット表現符号を展開し、展開された符号を用いてシンボルを符号化する。
【００１５】
また、本発明にかかる符号化方法は、シンボルを符号に変換する符号化方法であって、第１のシンボル群に第１の符号群を対応付ける第１の符号表、第２のシンボル群に第２の符号群を対応付ける第２の符号表、および、第１のシンボル群に属するシンボルと第２のシンボル群に属するシンボルとの組合せを第１の符号群および第２の符号群の少なくとも一部に基づいて作成された第３の符号群に対応付ける第３の符号表の少なくとも１つを、コンピュータが参照し、第３の符号表内に符号化されるシンボルが存在する場合に、コンピュータは、第３の符号表に基づいてシンボルを符号化し、これ以外の場合に、第１の符号表および第２の符号表に基づいてシンボルを符号化する。
【００１６】
また、本発明にかかる符号表作成方法は、符号表を作成する符号表作成方法であって、付加ビット表現符号と、シンボル群とを互いに対応付ける符号表に基づいて、展開する対象シンボルに対応する付加ビット表現符号を特定し、付加ビット表現符号の付加ビットを生成し、生成された付加ビットを、付加ビット表現符号に付加し、付加ビットが付加された付加ビット表現符号を、対象シンボルに対応付けて前記符号表に登録する。
【００１７】
好適には、付加ビット表現符号の少なくとも一部が展開された場合に、この付加ビット表現符号と、展開された展開済み符号との両方を符号表に登録する。
【００１８】
また、本発明にかかるプログラムは、コンピュータを含む符号化装置において、第１のシンボル群に対して、付加ビットが展開された展開済み符号を対応付ける第１のエントリグループと、第２のシンボル群に対して、付加ビット表現符号を対応付ける第２のエントリグループとを含む符号表を、参照するステップと、符号化されるシンボルが前記第２のエントリグループに属する場合に、シンボルに対応する付加ビット表現符号を展開するステップとを前記符号化装置のコンピュータに実行させる。
【００１９】
また、本発明にかかるプログラムは、コンピュータを含む符号化装置において、第１のシンボル群に第１の符号群を対応付ける第１の符号表、第２のシンボル群に第２の符号群を対応付ける第２の符号表、および、第１のシンボル群に属するシンボルと第２のシンボル群に属するシンボルとの組合せを、第１の符号群および第２の符号群に基づいて作成された第３の符号群に対応付ける第３の符号表の少なくとも１つを、参照するステップと、前記第３の符号表に符号化されるシンボルが存在する場合に、第３の符号表に基づいてシンボルを符号化し、これ以外の場合に、第１の符号表および第２の符号表に基づいてシンボルを符号化するステップとを前記符号化装置のコンピュータに実行させる。
【００２０】
［用語］
なお、シンボルとは、符号化される対象となる情報であり、例えば、距離、長さ、画素値、予測順位および予測誤差などの各種データが含まれる。
また、付加ビット表現符号とは、複数のシンボルからなるシンボル群を識別する符号であり、所定の付加ビットが付加されることにより、各シンボルを識別することが可能となる。
また、付加ビットとは、シンボルのグループの中でそれぞれのシンボルを識別するためのビット列であり、シンボルを符号化するときに付加ビット表現符号に付加されるものである。付加ビットは、例えば、所定の演算により生成される。
また、付加ビット表現符号の展開とは、付加ビットを生成し、生成された付加ビットを付加ビット表現符号に付加することである。従って、展開済み符号とは、付加ビット表現符号に対応する付加ビットが付加されたビット列である。
また、エントリとは、符号表に含まれるシンボルと符号の組のことである。
【００２１】
【発明の実施の形態】
［背景］
まず本発明の理解を助けるために、その背景を説明する。
数値データなどの情報は、データの送信側で符号化され、データの受信側で復号化される。一般に、復号化処理の処理負荷は符号化処理のものよりも大きいため、一連の処理の中で復号化処理の方がボトルネックになりやすく、復号化処理の高速化について多数の技術が提案されてきた。
しかしながら、近年、データサイズの大きなマルチメディアデータ（画像データ等）を送受信する場面が多くなり、符号化処理を高速化する要望がでてきた。
また、データの受信側はプリンタなど特定の目的を有する機器である場合があり、復号化処理をハードウェアで実現することにより高速化できる。一方で、データの送信元は、汎用コンピュータ端末である場合があり、符号化処理をハードウェアで実現できず、ソフトウェア処理で高速化する必要がある。
【００２２】
そこで、本発明にかかる符号化装置は、間接的な表現形式で符号を格納する符号表を直接的な表現形式に変換し、変換された符号表を用いて符号化を行うことにより、符号化処理を高速化する。
【００２３】
次に、間接的な表現形式で符号を格納する符号表の一例を説明する。
図１４は、付加ビット表現で表された符号をシンボル群に対応付ける符号表９００を例示する図である。
図１４に示すように、符号表９００は、複数のシンボルを含むシンボルグループと、シンボルグループを識別する付加ビット表現符号（ビット列）とを互いに対応付けて格納する。本例において、シンボルグループは、距離「５〜６」、距離「７〜８」、距離「９〜１２」、距離「１３〜１６」、および、距離「１７〜２４」などである。また、付加ビット表現符号は、グループを識別するビット列であり、図中の「００１００」（２進数）などである。
なお、付加ビット表現符号の後ろに示されている［１］や［２］などの数値は、グループに属する各シンボルを、このグループ内で一意に識別するために用いるビット数（付加ビットの数）を示す。
本例の符号表を用いて符号化する場合には、符号化装置は、まず符号化の対象となるシンボル（以下、対象シンボル）が属するシンボルグループを特定する。さらに、符号化装置は、シンボルグループにおいて対象シンボルを識別する付加ビットを算出し、算出された付加ビットをシンボルグループの付加ビット表現符号に付加して、対象シンボルを一意に識別する符号を決定する。
本例のように符号を間接的に表現することにより、シンボルをグループにまとめエントリを少なくすることにより符号表を小さくすることができるが、符号化する場合には、付加ビットの算出と付加を行う処理がオーバーヘッドとなり符号化処理の高速化を妨げる。
【００２４】
そこで、本発明の一形態である符号化装置は、付加ビット表現された符号表の少なくとも一部を展開し、展開された符号表を用いて符号化処理を行うことにより、処理のオーバーヘッドを低減し、符号化処理を高速化できる。
【００２５】
［第１実施形態］
次に、本発明の実施の形態を説明する。
図１は、本発明にかかる画像処理システム２の概略を説明する図である。
図１に示すように、画像処理システム２は、クライアント端末１２、スキャナ１４、およびデジタルカメラ１６などのデータ送信端末（符号化装置）と、プリンタ２０（復号化装置）とを、ネットワーク４に接続して構成される。これらのデータ送信端末は、画像データをプリンタ２０に送信して、画像データの印刷を依頼する。
クライアント端末１２ａおよび１２ｂは、コンピュータ端末であり、ＬＡＮ等から構成されるネットワーク４を介してプリンタ２０に接続する。スキャナ１４およびデジタルカメラ１６は、ＵＳＢケーブル等の回線（ネットワーク４）を介してプリンタ２０に接続する。
クライアント端末１２、スキャナ１４、およびデジタルカメラ１６には、後述するプリンタドライバ５がソフトウェアまたはハードウェアとして実装されている。例えば、クライアント端末１２のプリンタドライバ５は、記録媒体１２２やネットワーク４を介してインストールされる。
以下、データ送信端末がクライアント端末１２である場合を具体例として説明する。
【００２６】
図２は、プリンタ２０（復号化装置）のハードウェア構成を、制御装置２００を中心に例示する図である。
図２に示すように、プリンタ２０は、制御装置２００およびプリンタ本体２３０から構成される。制御装置２００は、ＣＰＵ２１２およびメモリ２１４などを含む制御装置本体２１０、通信装置２２０、ＨＤＤ・ＣＤ装置などの記録装置２４０、および、ＬＣＤ表示装置あるいはＣＲＴ表示装置およびキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２５０から構成される。
【００２７】
［プリンタドライバおよび画像形成プログラム］
図３は、プリンタドライバ５（クライアント端末１２）および画像形成プログラム６（プリンタ２０）の機能構成を説明する図である。
図３に示すように、プリンタドライバ５は、符号データベース５００、データ取得部５１０、符号化部５２０および通信インタフェース（通信ＩＦ）５３０を有する。
符号データベース５００は、展開符号表８００（後述）または符号表９００を格納する。
データ取得部５１０は、印刷を依頼する他のアプリケーションソフトから、画像データを取得し、画像データをシンボルに変換し、変換されたシンボル（以下、単に画像データという）を符号化部５２０に対して出力する。例えば、ＲＬＥ方式で符号化する場合、データ取得部５１０は、画像データを、画素値を示すシンボルおよび長さを示すシンボルに変換して、符号化部５２０に出力する。
符号化部５２０は、符号データベース５００内の展開符号表８００を参照して、データ取得部５１０から入力されたシンボルを符号データに変換し、通信ＩＦ５３０に対して出力する。符号化部５２０は、付加ビット表現符号を展開する展開部５５０を有し、入力されたシンボルが展開済み符号である場合に、対応する展開済み符号を用いて符号化し、これ以外の場合に、展開部５５０が付加ビット表現符号を展開し、符号化部５２０が、展開された付加ビット表現符号を用いて符号化する。
通信ＩＦ５３０は、符号化部５２０から入力された符号データを、ネットワーク４を介して画像形成プログラム６（プリンタ２０）に送信する。
【００２８】
また、図３に示すように、画像形成プログラム６は、通信ＩＦ６１０、復号化部６２０、画像処理部６３０および印刷部６４０を有する。
通信ＩＦ６１０は、ネットワーク４を介して、プリンタドライバ５から符号データを受信し、復号化部６２０に対して出力する。
復号化部６２０は、通信ＩＦ６１０から入力された符号データを画像データに復号化し、画像処理部６３０に対して出力する。
画像処理部６３０は、復号化部６２０から入力された画像データに対して、色変換、ＴＲＣ（トーン・リダクション・コントロール）、画像回転、または、画像の拡大／縮小などの処理を施して、印刷部６４０に対して出力する。
印刷部６４０は、プリンタ本体２３０のプリントエンジンを制御して、画像処理部６３０から入力された画像データをシートに印刷する。
【００２９】
図４は、符号化データベース５００が格納する展開符号表８００を例示する図である。
図４に示すように、展開符号表８００は、シンボルに、シンボルを識別する展開済み符号を対応付けるエントリグループ（第１のエントリグループ）と、シンボルグループに、シンボルグループを識別する付加ビット表現符号を対応付けるエントリグループ（第２のエントリグループ）とを有する。本例の展開符号表８００は、図１４で例示した符号表９００内の、距離「５」から距離「１０」までを展開した符号表である。
本図で例示するように、展開符号表８００は、展開前のグループシンボル（距離「９−１２」）と、展開後のシンボル（距離「９」および距離「１０」）とを重複して格納してもよい。このように重複した場合、符号化部５２０は、展開後のシンボルを優先的に用いる。
【００３０】
図５は、符号表９００を展開符号表８００に展開する処理のフローチャート（Ｓ１０）である。
図５に示すように、ステップ１００（Ｓ１００）において、プリンタドライバ５は、展開符号表８００に割り当てられる記憶領域の大きさに応じて、エントリ上限Ｎを決定する。
ステップ１１０（Ｓ１１０）において、プリンタドライバ５は、符号表９００を符号データベース５００に読み込む。
ステップ１２０（Ｓ１２０）において、プリンタドライバ５は、付加ビット表現符号に対応するシンボル群の中から、展開の対象となる対象シンボルを選択する。なお、対象シンボルの選択は、シンボルの出現頻度（または付加ビット表現符号の符号長）に応じて、それぞれのシンボル単位、または、シンボルのグループ単位に行われる。例えば、グループ内に突出して出現頻度が高いシンボルがある場合にはシンボル単位で選択され、グループ内のシンボルが平均して出現頻度が高い場合にはグループ単位で選択される。
ステップ１３０（Ｓ１３０）において、プリンタドライバ５は、付加ビット表現符号に対応するシンボルが選択された場合にＳ１４０の処理に移行し、これ以外の場合に展開処理を終了する。すなわち、プリンタドライバ５は、付加ビット表現符号が全て展開されると、展開処理を終了する。
【００３１】
ステップ１４０（Ｓ１４０）において、プリンタドライバ５は、選択された付加ビット表現符号を展開し、符号データベース５００に書き込む。付加ビット表現符号を展開する方法としては、例えば、図１５に例示した符号表９００を展開する場合、プリンタドライバ５は、対象シンボルが属するシンボルグループを特定し、特定されたシンボルグループに対応する付加ビット表現符号を符号表９００から取得する。次いで、プリンタドライバ５は、対象シンボルのシンボル値と、特定されたグループの最小シンボル値との差分を算出し、算出された差分を付加ビットとする。そして、プリンタドライバ５は、付加ビット表現符号に付加ビットを付加したビット列を、展開済み符号として対象シンボルに対応付けて符号表データベース５００に書き込む。
なお、付加ビットの算出は、論理演算を用いる方法など様々な手法でなされ、上記差分に基づく例に限定されるものではない。
ステップ１５０（Ｓ１５０）において、プリンタドライバ５は、符号表データベース５００に書き込まれた展開済み符号および付加ビット表現符号の総数（すなわち、エントリ数）がエントリ上限Ｎ以上になったか否かを判断する。プリンタドライバ５は、エントリ数がＮ以上になった場合に展開処理を終了し、これ以外の場合にＳ１６０の処理に移行する。
ステップ１６０（Ｓ１６０）において、プリンタドライバ５は、選択された対象シンボルが全て展開されたか否かを判断して、全て展開されたと判断した場合に、Ｓ１２０の処理に移行して新たに対象シンボルを選択して展開処理を繰り返し、これ以外の場合に、Ｓ１４０の処理に移行して、選択された対象シンボルの展開を繰り返す。
なお、付加ビット表現符号は複数の展開済み符号に展開でき、付加ビット表現符号が、対応する全ての展開済み符号に展開された場合に、プリンタドライバ５は、この付加ビット表現符号を消去して、記憶領域を確保することが望ましい。
【００３２】
このように、記憶領域の大きさに応じて、付加ビット表現された付加ビット表現符号を、各シンボルを一意に識別する展開済み符号に展開して、符号データベース５００に書き込む。このように展開された符号表は、展開符号表８００として符号データベース５００に格納され、符号化処理に用いられる。
また、上記のように出現頻度の高いシンボルを、出現頻度の低いものに優先して展開することにより、符号化処理を効率的に高速化することができる。
【００３３】
図６は、画像処理システム２（プリンタドライバ５および画像形成プログラム６）の全体動作を説明するフローチャート（Ｓ２０）である。
図６に示すように、ステップ２００（Ｓ２００）において、プリンタドライバ５のデータ取得部５１０は、他のアプリケーションソフト（画像のレタッチソフト等）から画像データを取得し、画素値や予測誤差などのシンボルに変換して符号化部５２０に対して出力する。
ステップ２０５（Ｓ２０５）において、符号化部５２０は、符号データベース５００内の展開符号表８００を参照し、シンボルに対応する符号を検索する。
ステップ２１０（Ｓ２１０）において、符号化部５２０は、シンボルに対応する展開済み符号が展開符号表８００にあるか否かを判断し、展開済み符号があると判断した場合にＳ２２５の処理に移行し、これ以外の場合にＳ２１５の処理に移行する。
ステップ２１５（Ｓ２１５）において、展開部５５０は、展開符号表８００およびシンボルのシンボル値などに基づいて付加ビットを生成する。
ステップ２２０（Ｓ２２０）において、符号化部５２０は、シンボルが属するグループの付加ビット表現符号に、生成された付加ビットを付加して、通信ＩＦ５３０に対して出力する。すなわち、符号化部５２０は、付加ビット表現符号を展開し、展開された付加ビット表現符号を用いて符号化する。
ステップ２２５（Ｓ２２５）において、符号化部５２０は、展開符号表８００からシンボルに対応する展開済み符号を取得し、通信ＩＦ５３０に対して出力する。すなわち、符号化部５２０は、展開符号表８００に予め準備された展開済み符号を用いて符号化する。
ステップ２３０（Ｓ２３０）において、符号化部５２０は、データ取得部５１０から入力された画像データを全て処理したか否かを判断し、全データの符号化が完了した場合にＳ２３５の処理に移行し、これ以外の場合にＳ２０５の処理に移行して次のデータについてＳ２０５からＳ２３０までの処理を繰り返す。
ステップ２３５（Ｓ２３５）において、通信ＩＦ５３０は、符号化部５２０から入力された符号データを、ネットワーク４を介して画像形成プログラム６（プリンタ２０）に送信する。
【００３４】
ステップ２４０（Ｓ２４０）において、画像形成プログラム６の通信ＩＦ６１０は、ネットワーク４を介して、プリンタドライブ５から符号データを受信し、復号化部６２０に対して出力する。
ステップ２５０（Ｓ２５０）において、復号化部６２０は、通信ＩＦ６１０から入力された符号データを画像データに復号化し、画像処理部６３０に対して出力する。なお、復号化部６２０は、符号表９００と同様な表に基づいて復号化処理を行ってもよいし、符号表９００を全て展開した表に基づいて復号化処理を行ってもよい。
ステップ２６０（Ｓ２６０）において、画像処理部６３０は、復号化部６２０から入力された画像データに対して、色変換、ＴＲＣ、拡大縮小、または回転などの画像処理を施して、印刷部６４０に対して出力する。
ステップ２７０（Ｓ２７０）において、印刷部６４０は、プリンタ本体２３０を制御して、画像処理部６３０から入力された画像データをシート上に印刷する。
【００３５】
このように、本発明にかかる画像処理システム２は、付加ビット表現符号の一部が展開済み符号に展開された展開符号表８００を用いて符号化することにより、付加ビットの生成などのオーバーヘッドを低減させ、符号化処理を高速化することができる。
【００３６】
［変形例］
なお、上記第１実施形態では、プリンタドライバ５を作成する時、または、プリンタドライバ５がクライアント端末１２にインストールされた時に、符号表９００を展開符号表８００に展開する形態を説明したが、展開符号表８００は、動的に生成または更新されてもよい。例えば、展開符号表８００は、データ取得部５１０がデータを取得する時、符号化部５２０がデータを符号化している時、または、符号データベース５００の記憶領域（メモリ２１４など）の残量に既定値以上の変動が生じたときに、展開符号表８００を再構成する。
以下、上記実施形態１の変形例として、データ取得部５１０がデータを取得する時に展開符号表８００を再構成する場合を具体例として説明する。
【００３７】
図７は、動的に展開符号表８００を再構成するプリンタドライバ５２の機能構成を説明する図である。なお、図７に示す各構成要素のうち、図３に示したものと実質的に同一なものには同一の符号が付されている。
図７に示すように、プリンタドライバ５２は、図３に示した各構成要素に加えて、記憶領域管理部５４０、展開部５５０、登録部５６０および頻度解析部５７０を有する。
記憶領域管理部５４０は、符号データベース５００に割り当てられた記憶領域を管理し、記憶領域の残量に応じて展開符号表８００のエントリ上限を決定し、展開部５５０に対して出力する。
展開部５５０は、記憶領域管理部５４０から入力されたエントリ上限に応じて、付加ビット表現符号を展開する。また、展開部５５０は、頻度解析部５７０から入力された頻度情報に応じて、展開するシンボルを決定する。
登録部５６０は、展開部５５０により展開された展開済み符号を展開符号表８００に書き込む。
頻度解析部５７０は、シンボルの出現頻度を所定の期間カウントして出現頻度を解析し、解析結果を頻度情報として展開部５５０に対して出力する。なお、頻度解析部５７０は、付加ビット表現符号の符号長に基づいて、出現頻度を解析してもよい。符号長は、シンボルの出現頻度に応じて割り当てられている場合があり、これに基づいて出現頻度を推定することができるからである。
【００３８】
図８は、プリンタドライバ５２の動作を説明するフローチャート（Ｓ２２）である。なお、図８に示される各処理のうち、図６に示されたものと実質的に同一なものには同一の符号が付されている。
図８に示すように、ステップ２８０（Ｓ２８０）において、記憶領域管理部５４０は、符号データベース５００に割り当てられた記憶領域を監視し、プリンタドライバ５２が画像データの印刷を依頼されると、展開符号表８００に使用可能な記憶領域を決定し、決定された記憶領域の大きさに応じてエントリ上限を設定し、展開部５５０に対して出力する。
ステップ２８５（Ｓ２８５）において、展開部５５０は、頻度解析部５７０から入力された頻度情報（各シンボルの出現頻度を示す情報）に基づいて、出現頻度の高いシンボルから順に展開対象として選択する。なお、展開部５５０は、設定されたエントリ上限以内で、展開するシンボルを選択する。
ステップ２９０（Ｓ２９０）において、展開部５５０は、選択されたシンボルを展開する。なお、展開部５５０による展開方法は、図５を参照して説明したものとほぼ同様である。すなわち、展開部５５０は、符号表９００を符号データベース５００に読み込み、付加ビット表現符号の中から、選択された付加ビット表現符号を展開し、符号データベース５００に書き込む。例えば、図１５に例示した符号表９００を展開する場合、展開部５５０は、選択されたシンボルが属するグループを特定し、特定されたグループの付加ビット表現符号を符号表９００から取得する。次いで、展開部５５０は、選択されたシンボルのシンボル値と、特定されたグループの最小シンボル値とを用いて論理演算を行い、論理演算の結果を付加ビットとする。そして、登録部５６０は、付加ビット表現符号に付加ビットを付加したビット列を、たシンボルに対応付けて符号表データベース５００に書き込む。以上の展開処理を、展開部５５０および登録部５６０が、選択されたシンボル全てに対して行う。
【００３９】
このように、本変形例のプリンタドライバ５２によれば、所定のタイミングで、展開符号表８００に割り当てられる記憶領域の大きさ、および、展開対象となるシンボルの出現頻度を確認し、記憶領域の大きさおよびシンボルの出現頻度に応じて、動的に展開対象の数を決定し、出現頻度の高いものから順に展開対象を選択することができる。本変形例のプリンタドライバ５２は、シンボルの出現頻度または記憶領域の残量が大きく変動する場合に好適である。
【００４０】
［第２実施形態］
なお、上記第１実施形態では、符号表が付加ビット表現されている場合に符号化処理を高速化する方法を説明したが、複数の符号表を用いて合成シンボルを符号化する場合にも、本発明にかかる画像処理システムを適応できる。
合成シンボルとは、統計的に独立な複数種類のシンボル群それぞれに含まれるシンボルを組み合わせて表現されるシンボルであり、図１５に例示するような複数の符号表（第１の符号表９０２および第２の符号表９０４）それぞれに含まれる符号の組合せで符号化される。これらの第１の符号表９０２および第２の符号表９０４は、互いに独立に設計されたものであり、設計を容易にし、かつ、それぞれの符号表のサイズを小さくすることを目的に分割されている。
【００４１】
図１５（Ａ）は、第１の符号表９０２を例示し、（Ｂ）は、第２の符号表９０４を例示する図である。例えば、ＬＺ符号化方式の場合には、第１の符号表９０２の各シンボルは距離を表し、第２の符号表９０４の各シンボルは長さを表す。また、ＲＬＥ符号化方式の場合には、第１の符号表９０２の各シンボルは画素値を表し、第２の符号表９０４の各シンボルは長さを表す。予測誤差符号化方式の場合には、例えば、第１の符号表９０２の各シンボルは予測順位を表し、第２の符号表９０４の各シンボルは長さまたは予測誤差を表す。
このような複数の符号表を用いて合成シンボルを符号化する場合には、符号表を複数回参照する必要があり、符号化処理の高速化を妨げる。一方で、全ての合成シンボルについてエントリすると、エントリが膨大な数になる。
【００４２】
そこで、第２実施形態における画像処理システム２は、第１の符号表９０２および第２の符号表９０４の少なくとも一部を併合した第３の符号表８０２（後述）を準備し、第１の符号表９０２、第２の符号表９０４、および第３の符号表８０２を用いて、合成シンボルを符号化する。第３の符号表８０２は、合成シンボルそのものと、合成シンボルに対応する符号（以下、合成符号）とを直接対応付けるので、本例の画像処理システム２は、第３の符号表８０２から合成符号を検索できた場合に、符号表を一度参照するだけで符号化処理を行うことができ、符号化処理を高速化できる。
なお、以下の説明では、合成シンボルが２つのシンボルから構成される場合を具体例とする。
【００４３】
図９は、第２実施形態における符号化部５２０の機能構成を説明する図である。なお、プリンタドライバ５および画像形成プログラム６に含まれる各構成要素は、図３を用いて説明したものとほぼ同一であり、符号化部５２０の機能と符号データベース５００内の符号表のみが異なるので、以下、符号化部５２０および符号データベース５００を中心に説明する。
図９に示すように、符号化部５２０は、第１参照部５２２、符号合成部５２４、第２参照部５２６、および選択部５２８を有する。
第１参照部５２２は、データ取得部５１０から符号化の対象となる合成シンボルが入力されると、第１の符号表９０２および第２の符号表９０４を参照し、合成シンボルを構成するそれぞれのシンボルに対応する符号を抽出し、抽出された２つの符号を符号合成部５２４に対して出力する。
符号合成部５２４は、第１参照部５２２から入力された２つの符号を合成し、合成符合として選択部５２８に対して出力する。
【００４４】
第２参照部５２６は、データ取得部５１０から符号化の対象となる合成シンボルが入力されると、第３の符号表８０２を参照して、合成シンボルに対応する合成符号を抽出し、抽出された合成符号を選択部５２８に対して出力する。
なお、第２参照部５２６は、第３の符号表８０２から合成符号を抽出できないとき（例えば、第３の符号表８０２に対応する合成シンボルが登録されていないとき）は、対応する合成符号が存在しない旨を示すフラグを選択部５２８に対して出力する。
選択部５２８は、第２参照部５２６から合成符号が入力された場合に、第２参照部５２から入力された合成符号を選択して、通信ＩＦ５３０に対して出力し、これ以外の場合に、符号合成部５２４から入力された合成符号を選択して、通信ＩＦ５３０に対して出力する。
【００４５】
符号データベース５００は、第１の符号表９０２、第２の符号表９０４、および第３の符号表８０２を格納する。
図１０は、第３の符号表８０２を例示する図である。図１０に例示するように、第３の符号表８０２は、合成シンボル（「Ａａ」、「Ａｂ」など）と、合成符号（「０００」、「００１」など）とを対応付ける。本例の第３の符号表８０２は、第１の符号表９０２および第２の符号表９０４の一部を併合したものであり、例えば、第３の符号表８０２の合成シンボル「Ａａ」は、第１の符号表９０２のシンボル「Ａ」と、第２の符号表９０４のシンボル「ａ」とを合成したシンボルである。また、第３の符号表８０２の合成符号「０００」は、第１の符号表９０２の符号「０」と、第２の符号表９０４の符号「００」を合成したものである。
また、本例の第３の符号表８０２は、第１の符号表９０２および第２の符号表９０４の全てを合成したものではなく、合成シンボルの出現頻度に応じて、出現確率の高い合成シンボルを優先的に合成したものである。なお、合成される合成シンボルの数は、第３の符号表８０２に割り当てられる記憶領域の大きさに応じて決定される。
なお、本例の第３の符号表８０２は、符号化するプリンタドライバ５側の符号表であるが、復号化する画像形成プログラム６側の符号表は、上記第３の符号表８０２と同一である必要はなく、図１５に例示された第１の符号表９０２および第２の符号表９０４、または、これらの符号表を全て合成したものであってもよい。
【００４６】
図１１は、第３の符号表８０２を作成する作成処理のフローチャートである。
図１１に示すように、ステップ３００（Ｓ３００）において、プリンタドライバ５は、第３の符号表８０２に割り当てられた記憶領域の大きさに応じて、エントリ上限Ｎを決定する。
ステップ３１０（Ｓ３１０）において、プリンタドライバ５は、第１の符号表９０２および第２の符号表９０４を符号データベース５００に読み込む。
ステップ３２０（Ｓ３２０）において、プリンタドライバ５は、合成する合成シンボルを選択し、第１の符号表９０２の第１のシンボル群および第２の符号表９０４の第２のシンボル群の中から、合成シンボルを構成するシンボルを選択して、対応する符号をそれぞれ抽出する。なお、合成シンボルは、出現頻度（または、合成シンボルを構成する各シンボルの符号長）に応じて、出現確率の高いものから順に選択される。
ステップ３３０（Ｓ３３０）において、プリンタドライバ５は、第１の符号表９０２から抽出された符号に、第２の符号表９０４から抽出された符号を付加し、選択された合成シンボルに対応付け第３の符号表８０２として符号データベース５００に書き込む。
【００４７】
ステップ３４０（Ｓ３４０）において、プリンタドライバ５は、第１の符号表９０２および第２の符号表９０４のシンボルと、第３の符号表８０２の合成シンボルとの総計（すなわち、エントリ数）がエントリ上限Ｎ以上になったか否かを判断する。プリンタドライバ５は、エントリ数がＮ以上になった場合に展開処理を終了し、これ以外の場合にＳ３２０の処理に移行する。すなわち、プリンタドライバ５は、設定されたエントリ上限まで合成シンボルを合成し、第３の符号表８０２として符号データベース５００に登録する。
【００４８】
図１２は、第２実施形態における画像処理システム２の全体動作を説明するフローチャート（Ｓ４０）である。なお、図１２に示された各処理のうち、図６に示されたものと実質的に同一なものには同一の符号が付されている。
図１２に示すように、Ｓ２００でデータ取得部５１０が画像データを取得すると、ステップ４００（Ｓ４００）において、符号化部５２０の第１参照部５２２は、第１の符号表９０２および第２の符号表９０４を参照し、第２参照部５２６は、第３の符号表８０２を参照して、データ取得部５１０から入力されたデータ（合成シンボル）に対応する符号を抽出する。
ステップ４１０（Ｓ４１０）において、符号化部５２０は、第３の符号表８０２内に対応する合成符号がある場合に、Ｓ４２５の処理に移行し、これ以外の場合に、Ｓ４１５の処理に移行する。
ステップ４１５（Ｓ４１５）において、第１参照部５２２は、抽出された２つの符号を符号合成部５２４に対して出力し、符号合成部５２４は、第１参照部５２２から入力された２つの符号を合成して、選択部５２８に対して出力する。
ステップ４２０（Ｓ４２０）において、選択部５２８は、符号合成部５２４から入力された合成符号を選択して、通信ＩＦ５３０に対して出力する。すなわち、符号化部５２０は、第３の符号表８０２内に符号化対象となる合成シンボルが登録されていない場合に、第１の符号表９０２および第２の符号表９０４から抽出した符号を合成して、この合成シンボルを符号化する。
ステップ４２５（Ｓ４２５）において、第２参照部５２６は、合成シンボルに対応する合成符号を抽出し、抽出された合成符号を選択部５２８に対して出力する。選択部５２８は、第２参照部５２６から入力された合成符号を選択して、通信ＩＦ５３０に対して出力する。
すなわち、符号化部５２０は、第３の符号表８０２に符号化対象となる合成シンボルが登録されいる場合に、第３の符号表８０２から合成符号を抽出し、抽出された合成符号を用いて、合成シンボルを符号化する。
【００４９】
このように、合成シンボルと合成符号とを互いに対応付ける第３の符号表８０２を用いることにより、合成シンボルの符号化処理を高速化できる。また、第３の符号表８０２に全ての合成シンボルを登録できない場合であっても、第１の符号表９０２、第２の符号表９０４、および第３の符号表８０２を用いることにより、全ての合成シンボルについて符号化が可能であり、符号化処理を高速化することもできる。
【００５０】
［理論計算と実験］
図１３（Ａ）は、第２実施形態の符号化時間の理論値を表すグラフであり、（Ｂ）は、第２実施形態の符号化時間の実験結果を表すグラフである。
符号化時間の理論計算および実験は、図１５に例示された第１の符号表９０２および第２の符号表９０４についてなされた。
理論計算では、符号合成部５２４による合成処理などのオーバーヘッド（第１の符号表９０２および第２の符号表９０４を用いた場合の符号化時間と、第３の符号表８０２を用いた場合の符号化時間との差）が２０％であり、かつ、符号が出現確率に応じて理想的に設計されていると仮定して、各エントリ数毎に符号化時間を計算した。
図１３（Ａ）において、横軸は総エントリ数を示し、縦軸はエントリ数最大（２５）のときの処理時間を１とした場合の処理時間の比率を示す。図１３（Ａ）に示すように、総エントリ数（第１の符号表９０２、第２の符号表９０４および第３の符号表８０２の合計）が１０から１８までの間にある場合には、総エントリ数が１９から２５までの間にある場合に比べて下降する傾きが大きい。これは、出現確率が高いものから優先的に合成符号を生成し、第３の符号表８０２に登録したため、処理時間の低減効率が高いと考えられる。このことから、第３の符号表８０２に登録する合成符号は、多ければ多いほど符号化の処理時間を短縮できるが、第３の符号表８０２に割り当てる記憶領域と処理時間短縮とのトレードオフを考慮する必要がある場合には、合成シンボル全体のほぼ半数以下にすることが望ましい。
【００５１】
図１３（Ｂ）において、横軸は総エントリ数を示し、縦軸は符号化時間の実験値を示す。図中の「エントリ数１４」とは、図１０に例示された第３の符号表８０２を用いた場合に相当する。すなわち、図１０に例示された第３の符号表８０２は、シンボル「Ａ」についての全ての組合せを合成シンボルとして登録したものであり、第１の符号表９０２のシンボル「Ａ」は不要になる。従って、第１の符号表９０２のエントリ数は４になり、３つの符号表の総エントリ数は１４になる。図１３（Ｂ）に示すように、本実験値は、図１３（Ａ）に示す理論値とほぼ一致し、上記理論計算の妥当性が示された。
【００５２】
【発明の効果】
以上説明したように、本発明にかかる符号化装置によれば、符号化処理を高速化することができる。
【図面の簡単な説明】
【図１】本発明にかかる画像処理システム２の概略を説明する図である。
【図２】プリンタ２０（復号化装置）のハードウェア構成を、制御装置２００を中心に例示する図である。
【図３】プリンタドライバ５（クライアント端末１２）および画像形成プログラム６（プリンタ２０）の機能構成を説明する図である。
【図４】符号化データベース５００が格納する展開符号表８００を例示する図である。
【図５】符号表９００を展開符号表９００に展開する処理のフローチャート（Ｓ１０）である。
【図６】画像処理システム２（プリンタドライバ５および画像形成プログラム６）の全体動作を説明するフローチャート（Ｓ２０）である。
【図７】動的に展開符号表８００を再構成するプリンタドライバ５２の機能構成を説明する図である。
【図８】プリンタドライバ５２の動作を説明するフローチャート（Ｓ２２）である。
【図９】第２実施形態における符号化部５２０の機能構成を説明する図である。
【図１０】第３の符号表８０２を例示する図である。
【図１１】第３の符号表８０２を作成する作成処理のフローチャートである。
【図１２】第２実施形態における画像処理システム２の全体動作を説明するフローチャート（Ｓ４０）である。
【図１３】（Ａ）は、第２実施形態の符号化時間の理論値を表すグラフであり、（Ｂ）は、第２実施形態の符号化時間の実験結果を表すグラフである。
【図１４】付加ビット表現で表された符号をシンボル群に対応付ける符号表９００を例示する図である。
【図１５】（Ａ）は、第１の符号表９０２を例示し、（Ｂ）は、第２の符号表９０４を例示する図である。
【符号の説明】
２・・・画像処理システム
１２・・・クライアント端末
５，５２・・・プリンタドライバ
５００・・・符号データベース
８００・・・展開符号表
８０２・・・第３の符号表
９００・・・符号表
９０２・・・第１の符号表
９０４・・・第２の符号表
５１０・・・データ取得部
５２０・・・符号化部
５３０・・・通信ＩＦ
５４０・・・記憶領域管理部
５５０・・・展開部
５６０・・・登録部
５７０・・・頻度解析部
２０・・・プリンタ
６・・・画像形成プログラム
６１０・・・通信ＩＦ
６２０・・・復号化部
６３０・・・画像処理部
６４０・・・印刷部
【図１】
2004201070.tif 000003
【図２】
2004201070.tif 000004
【図３】
2004201070.tif 000005
【図４】
2004201070.tif 000006
【図５】
2004201070.tif 000007
【図６】
2004201070.tif 000008
【図７】
2004201070.tif 000009
【図８】
2004201070.tif 000010
【図９】
2004201070.tif 000011
【図１０】
2004201070.tif 000012
【図１１】
2004201070.tif 000013
【図１２】
2004201070.tif 000014
【図１３】
2004201070.tif 000015
【図１４】
2004201070.tif 000016
【図１５】
2004201070.tif 000017