(57)【特許請求の範囲】
【請求項１】
入力されるデータに典型予測を用いた符号化を行う符号化方法であって、前記入力されるデータが他の符号化方法で符号化されたデータであり、前記入力されるデータから１ラインのラン・レングスデータを生成し、前記ラン・レングスデータを記憶し、複数の前記ラン・レングスデータを用いて、前記典型予測を行うことを特徴とする符号化方法。
【請求項２】
あるラインの前記典型予測を行う際、参照ラインとしての前記ラン・レングスデータが記憶されていないときは、前記典型予測を行わないことを特徴とする請求項１記載の符号化方法。
【請求項３】
典型予測後に算術符号化を行うことを特徴とする請求項１記載の符号化方法。
【請求項４】
前記入力されるデータが符号化データと符号化されていないデータとを含み、前記典型予測を符号化されたデータに対してのみ行うことを特徴とする請求項１記載の符号化方法。
【請求項５】
前記他の符号化方法がＭＨ、ＭＲ、ＭＭＲのいずれかであることを特徴とする請求項１記載の符号化方法。
【請求項６】
典型予測不可能であれば前記ラン・レングスデータを原データに復号した後前記算術符号化を行うことを特徴とする請求項３記載の符号化方法。
【請求項７】
入力されるデータに典型予測を行う典型予測手段を有し、所定の符号化方法を施して出力する符号化装置であって、前記入力されるデータが前記所定の符号化方法と異なる符号化方法で符号化されたデータであり、
前記入力されるデータから１ラインのラン・レングスデータを生成する生成手段と、
前記ラン・レングスデータを記憶する記憶手段と、
複数の前記ラン・レングスデータを用いて、前記典型予測手段に典型予測を行わせる制御手段とを有することを特徴とする符号化装置。
【請求項８】
あるラインの前記典型予測を行う際、参照ラインとしての前記ラン・レングスデータが前記記憶手段に記憶されていないときは、前記制御手段が、前記典型予測手段に典型予測を行わせないことを特徴とする請求項７記載の符号化装置。
【請求項９】
前記典型予測手段による典型予測後に算術符号化を行う算術符号化手段を有することを特徴とする請求項７記載の符号化装置。
【請求項１０】
前記入力されるデータが符号化データと符号化されていないデータとを含み、前記入力されるデータのうち、符号化データと符号化されていないデータとを識別する手段と、前記符号化データのみを前記典型予測手段に供給する手段を有する請求項７記載の符号化装置。
【請求項１１】
前記異なる符号化方法がＭＨ、ＭＲ、ＭＭＲのいずれかであることを特徴とする請求項７記載の符号化装置。
【請求項１２】
典型予測不可能であれば前記ラン・レングスデータを原データに復号した後前記算術符号化を行わせる手段を有することを特徴とする請求項９記載の符号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、符号化方法及び符号化装置に関し、特に高速な符号化復号化を可能とする符号化方法及び符号化装置に関する。
【０００２】
【従来の技術】
データ通信においては、通信の効率化を目的としてデータを圧縮して送信し、受信側で伸長することが一般に行われている。また、データ保存時にも記憶媒体の容量を効率よく使用するため、データ圧縮を行うことが多い。特にデータ量の多い画像通信においてはデータ圧縮は重要な課題であり、様々な方式が検討、採用されている。
【０００３】
画像形成装置の一つであるファクシミリ装置では、これまで画像データの電送用の符号化方法としてＩＴＵ−ＴのＴ．４，Ｔ．６で勧告化されているＭＨ符号化、ＭＲ符号化、ＭＭＲ符号化が用いられてきた。これらの符号化方法は、２値のラン・レングス情報を利用したエントロピー符号化方法の一種である。このため通常ＭＨ符号、ＭＲ符号、ＭＭＲ符号の符号化時には、中間データとして白・黒画素の連続を数値で表すラン・レングスデータを作成し、このデータを種々の条件で符号化し、復号化時にも同様にラン・レングスデータを経て原画像データを得ている。
【０００４】
一方近年、従来のＭＨ符号化、ＭＲ符号化、ＭＭＲ符号化に代わる高効率な２値データの符号化方法としてＪＢＩＧ符号化方法が、ＩＴＵ−ＴのＴ．８５に勧告化され、ファクシミリ装置の電送用符号として用いられるようになってきた。ＪＢＩＧ符号化は、シーケンシャル符号化とプログレッシブ符号化の２種類の符号化方法が規定されているが、ファクシミリ装置ではＩＴＵ−ＴのＴ．８２に勧告されたシーケンシャル方式を元に、さらに長さ方向が未知の場合でも対応できるように拡張されたＩＴＵ−Ｔ  Ｔ．８５勧告が利用されている。
【０００５】
ＪＢＩＧ符号化は、符号化しようとする画素の周囲画素（テンプレート）から符号化しようとする画素が白か黒かを予測しその予測確率により符号化（算術符号）するもので従来のＭＨ符号化、ＭＲ符号化、ＭＭＲ符号化に比べてかなり高能率な符号化が可能である。しかしながら反面周囲画素からのコンテキストの作成や処理毎のコンテキストテーブルの更新など処理が複雑であり、符号化に要する資源の要求が大きい。
【０００６】
ＪＢＩＧ符号化では、符号化に要する処理を軽減する目的で、ＴＰ（Ｔｙｐｉｃａｌ  Ｐｒｅｄｉｃｔｉｏｎ：典型予測）を採用している。具体的な処理としては、ファクシミリ装置で用いられるシーケンシャルＪＢＩＧ符号化方法では、現在符号化しようとしている１ライン分のデータが前ラインのデータと同一かどうかを判定し、同一ならば前ラインのデータからＴＰ（典型予測）可能であるとし、その旨のフラグをたてて符号化対象ラインのデータを符号化しないようにする。
【０００７】
しかしながら何れにしてもＪＢＩＧ符号化方法はＭＨ符号化、ＭＲ符号化、ＭＭＲ符号化のようなラン・レングスを用いた符号化方法ではない。このため従来ＭＨ符号、ＭＲ符号、ＭＭＲ符号とＪＢＩＧ符号との符号変換を行う場合には、一旦すべての符号データを生画像データに変換（復号）した後に再度所望の符号化処理を行う必要があった。
【０００８】
【発明が解決しようとする課題】
このように、ランレングスを用いた符号であるＭＨ符号、ＭＲ符号、ＭＭＲ符号もしくは、非圧縮を伴ったＭＨ符号、ＭＲ符号、ＭＭＲ符号の何れかから、ランレングスを用いないＪＢＩＧ符号に変換する場合には、一旦復号処理を行ない圧縮されていない生画像に変換する必要があり、高速な符号変換の実現が困難であった。
【０００９】
例えばファクシミリ装置などの画像形成装置において、画像データの蓄積をＭＨ符号等のランレングス利用符号で行い、画像データの送信はＪＢＩＧ符号で行うような場合には、送信時、受信時ともにこれら符号の変換が必要となる。に上記蓄積符号からＪＢＩＧへ符号変換、また受信時にＪＢＩＧから上記蓄積符号への符号変換が必要であるため、符号変換を高速に行うことが全体のスループットを向上するために不可欠である。
【００１０】
本発明は、上記従来例を鑑みてなされたもので、その目的は、高速な符号化復号化を可能とする符号化方法及び符号化装置を提供することにある。
【００１１】
【課題を解決するための手段】
すなわち、本発明の要旨は、入力されるデータに典型予測を用いた符号化を行う符号化方法であって、入力されるデータが他の符号化方法で符号化されたデータであり、入力されるデータから１ラインのラン・レングスデータを生成し、ラン・レングスデータを記憶し、複数のラン・レングスデータを用いて、典型予測を行うことを特徴とする符号化方法に存する。
【００１６】
また本発明の別の要旨は、入力されるデータに典型予測を行う手段を有し、所定の符号化方法を施して出力する符号化装置であり、入力されるデータから１ラインのラン・レングスデータを生成する生成手段と、ラン・レングスデータを記憶する記憶手段と、複数のラン・レングスデータを用いて、典型予測手段に典型予測を行わせる制御手段とを有することを特徴とする符号化装置に存する。
【００２０】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施の形態を詳細に説明する。実施形態においては本発明をファクシミリ装置に適用した場合を例に説明するが、本発明は他のいかなる用途にも適用しうる。
【００２１】
最初に本実施形態となる符号変換器をもつファクシミリ装置の構成を説明し、次に、ＪＢＩＧ符号及び非圧縮を併用したＭＲ符号の符号化、復号化の動作を説明し、最後に、非圧縮を併用したＭＲ符号とＪＢＩＧ符号との符号変換の動作を説明する。
【００２２】
図１は、本発明の一実施形態であるファクシミリ装置のブロック図である。本実施形態におけるファクシミリ装置は、画像データの蓄積に非圧縮を併用したＭＲ符号化を、データの送信にＪＢＩＧ符号化を用いるものとする。図において、１００はＣＰＵで、ファクシミリ装置全体の制御を行なう。１１０はＲＯＭで、ＣＰＵのプログラムコード及びフォント情報などのデータを格納する。１２０はＲＡＭで、ＣＰＵのワークメモリ、もしくは後述の蓄積符号で符号化された画像データを蓄積するための画像メモリ、もしくは回線用の符号データを一時的に貯える送受信バッファとして利用される。１３０は、モデムで、回線に対するデータの送受信を行なうためにデータの変調及び復調を行なう。前記送受信バッファ上の蓄積されているデータを回線に変調しながら送信したり、回線から受信したデータを復調しながら前記送受信バッファに蓄積する。
【００２３】
１４０は、キー及びディスプレーを有する操作部であり、ファクシミリ装置のマンマシンＩ／Ｆを行なう。１５０は、スキャナー等からなる画像入力部で、原稿をＣＣＤ等の光電変換素子で走査し、読み取った画像情報を不図示のＡ／Ｄ変換器でデジタル情報に変換して画像処理を行ない、最終的には白・黒の２値の画像データとして後述の蓄積用符号化・復号化器１６０に出力する。
【００２４】
１６０は、蓄積用符号化・復号化器で２値の生画像データを後述の装置内の蓄積符号であるライン単位の非圧縮を併用したＭＲ符号に符号化・復号化を行なう。符号化時には前記スキャナー１００からの２値の生画像データを入力して、ライン単位の非圧縮を併用したＭＲ符号に変換し後述の画像メモリ１６０に蓄積する。また、復号化時は、画像メモリ１６０から入力されるライン単位の非圧縮を併用したＭＲ符号を復号し２値の生画像データを画像形成部１７０に出力する。１７０はプリンタ等の画像形成部で、蓄積用符号化・復号化部１６０で復号され出力される２値の生画像データを入力し、不図示の解像度変換器により画像形成部の出力解像度にあわせた解像度変換、記録材サイズ変換を行なった後、画像を記録材上に形成する。
【００２５】
１８０は、本実施形態の特徴となる符号変換器で、ＲＡＭ１２０の画像データ蓄積領域（以下、画像メモリと言う）に蓄積されている非圧縮を併用したＭＲ符号と回線送受信用のＭＨ符号、ＭＲ符号、ＭＭＲ符号、ＪＢＩＧ符号との変換処理を行う。画像データ送信時には、画像メモリから非圧縮を併用したＭＲ符号化された画像データを、送信相手機に応じた符号に変換し、ＲＡＭ１２０の送受信バッファ領域（以下、送受信バッファと言う）へ出力する。また必要ならば送信相手機の能力に応じて画像データの拡大・縮小処理を行う。
【００２６】
送受信バッファに一旦蓄積されたデータは、モデム１３０を介して図示しない相手機に送信される。一方受信時には、モデム１３０から受信した符号化された画像データが一旦送受信バッファに蓄積される。送受信バッファ（１２０）に蓄積された符号データは、符号変換器１８０に入力され、蓄積符号である非圧縮を併用したＭＲ符号に変換された後、画像メモリに蓄積される。
【００２７】
図１の構成においては、符号変換器１８０がファクシミリ装置の中で独立した構成要素として存在しているが、いうまでもなくＣＰＵ（１００）がプログラムを実行することにより符号変換器として動作してもよい。この場合、符号変換処理に関するプログラムコードは、ＲＯＭ（１１０）に格納しても、図示しない外部記憶装置から読み出してＲＡＭ１２０上に展開してもよい。ＣＰＵ１００が符号変換を行う場合には、図１における符号変換器１８０は不要となる。
【００２８】
次にシーケンシャル時のＪＢＩＧ符号化、復号化処理に関して、図２を用いて簡単に説明する。図２（ａ）はＪＢＩＧ符号化器、図２（ｂ）はＪＢＩＧ復号化器の概要構成を示すブロック図である。シーケンシャルＪＢＩＧでは、５０１のＴＰ（典型予測）、５０２のアダプティブテンプレート、５０３のモデルテンプレート、５０４のＡＡＥ（算術符号器）により符号化処理が行われる。復号時には、これと反対のフローで５１１のＡＡＤ（算術復号器）５１２モデルテンプレート、５１３のＴＰ（典型予測）の順番で復号化処理が行われる。５０２のアダプティブテンプレート、５０３，５１２のモデルテンプレート、５０４のＡＡＥ（算術符号器）、５１２のＡＡＤ（算術復号器）に関しての詳細説明は、前述のＩＴＵ−Ｔ勧告に詳細が示されているのでここでは割愛する。
【００２９】
５０１のＴＰ（典型予測）では、符号化ラインが前のラインと同じかどうかを判定し、予測はずれの有無を示すデータＬＮＴＰ（Ｌｉｎｅ  ｎｏｔ  Ｔｙｐｉｃａｌ）の値を決定する。ここでは、符号化ラインが前ラインと同じ場合にはＬＮＴＰ＝０とし、そうでない場合には、ＬＮＴＰ＝１とすることにする。ＬＮＴＰ＝０の場合では、典型予測可能であるため、後段の算術符号器では、後述の仮画素に対する符号のみを生成しそのラインの符号は生成しない。
【００３０】
実際の符号においては、ＬＮＴＰをそのまま用いず、算術符号のコンテキストを生成するテンプレートのための仮画素としては、
ＳＮＬＴＰｙ＝！（ＬＮＴＰｙとＬＮＴＰｙ−１の論理的排他和）  （式１）
であらわされるＳＮＬＴＰを用いる。式１において、ｙは符号化ラインを表しｙ−１は符号化ラインの前ラインを表す。！は論理否定を表す。すなわち、符号化ラインと前ラインのＬＮＴＰが同じ値を持つとき、ＳＮＬＴＰは１となる。
【００３１】
また仮画素に対するテンプレートに関してもここでは割愛する。復号時には、ラインの最初の仮画素に対するテンプレートを用いて５１１のＡＡＤ（算術符号器）で復号しＳＮＬＴＰの値を決定し、
ＬＮＴＰｙ＝！（ＳＬＮＴＰｙとＬＮＴＰｙ−１の論理的排他和）  （式２）
からＬＮＴＰを算出し、ＬＮＴＰ＝０ならば前ラインのデータをそのままコピーする。
【００３２】
次に本実施形態の蓄積用の符号である非圧縮を併用した符号について説明する。ＭＨ符号、ＭＲ符号、ＭＭＲ符号は、文字・線画画像のラン・レングス情報の統計データに基づいてハフマン符号を割り当てているため、擬似中間調などの白黒の反転の多い画像データでは、逆にデータ量が伸長してしまう不具合がある。特にＭＨ符号、ＭＲ符号、ＭＭＲ符号などをそのまま蓄積用の符号として用いた場合には、伸長時の最悪値を考慮してデータバスの負荷、符号・復号器の処理性能を設定しなければならず装置の肥大化が著しくなる不具合がある。この不具合を解決するために蓄積符号としてこれらの符号をそのまま用いず、ライン単位の非圧縮を併用した符号を用いる。
【００３３】
本実施形態におけるライン単位の非圧縮を併用したＭＲ符号では、１ライン単位の符号データ量が符号化されていない生画像のデータ量よりも大きいか否か（もしくは１ラインの符号化データが特定しきい値よりも大きいか否か）を判定し、もしそのラインの符号化時のデータ量が大きい場合には、そのラインを符号化せずラインの先頭にこのラインが非圧縮ラインである識別コードを付加し、その後に符号化されていない生画像データをそのまま続ける。図３（ａ）、図３（ｂ）は、ＭＲ符号をベースとした、ライン単位の非圧縮符号のフォーマットを示す図である。
【００３４】
図３（ａ）は、非圧縮ラインを示す図であり、図３（ｂ）は圧縮ラインを示す図である。１ページ分のデータは、非圧縮ラインもしくは圧縮ラインのデータが判定に応じて順次生成されたのち、最後にページ終了をしめすＲＴＣ（制御復帰符号）が付加されることになる。ＲＴＣは後述するＥＯＬを所定回数繰り返したコードを用いる。２０２０，２１２０は、ＥＯＬで、”０００００００００００１”の符号が入る。２０３０，２１３０は、１次元符号か２次元符号化かを識別するＴＡＧビットで、ＭＲ符号のパラメータであるＫパラメータに応じて１次元もしくは２次元のＴＡＧが設定される。また非圧縮ラインでは、１次元のＴＡＧビットを用いる。
【００３５】
２０４０は非圧縮ライン識別符号で、符号テーブルにないコードが割り当てられる。ここでは、コード”００００００００１”を非圧縮移行符号として用いる。２０５０は生画像データで、該当ラインの１ライン分の画像データがそのまま挿入される。２１５０は、符号データで、ＴＡＧビット（２１３０）に応じた１次元の符号もしくは、２次元符号が挿入される。２０１０，２１１０は、ＥＯＬ（２０２０，２１２０）前に挿入されるＦＩＬＬビットで非圧縮識別符号と生画像の境界がバイトバウンダリーになるように（８ビットの倍数で区切られるように）必要に応じて０が挿入される。ＦＩＬＬビットによるバイトバウンダリーの調整は、ＣＰＵ処理の場合における高速化が主目的である。
【００３６】
図４は、ＭＨ符号、ＭＲ符号、ＭＭＲ符号の符号・復号時に生成される中間データであるラン・レングスデータのフォーマットを示す。２バイト（１６ｂｉｔ）を単位として白及び黒の連続した画素数を数値で表す。各ランレングスの値は、同じ色が連続する長さを表しており、白ランは白画素の連続数、黒ランは黒画素の連続数である。例えば画像連続して３画素同じ色の場合には、ランレングスが３となる。１ラインにおける白、黒の区別は、必ず白ラン、黒ランが交互にあらわれることからラインの最初を白ランとすることで規定している。したがって常に白ランから開始し、白ラン黒ランと２バイトのランレングスデータが交互に並び、最後にライン終了コード２２３０として”０×ＦＦＦＦ”（”０×”は後に続く文字が１６進数であることを示す）が挿入される。
【００３７】
文字・線画の通常の原稿では、１ラインすべてが白の場合が４０％程度である。例えばＩＳＯＡ４サイズの原稿では水平画素数は１７２８であるので、データ量は、生画像では１７２８／８＝２１６バイトとなる。しかしながらラン・レングスの中間データでは１７２８画素の白ランは２バイト（”０１００１１０１１”）であり、前述の終了コード２バイトと合わせて合計４バイトで表すことができる。したがって前ラインとの比較を行なうＴＰの判定処理においては、生画像を用いる場合よりラン・レングスデータを用いた場合が演算量が少なく如何に高速に行なえるかが容易にわかる。またＴＰのヒットが連続した場合には、算術符号器で参照のための元データを必要としないラインが発生する。この場合には、参照データ作成のためのランレングスデータと生画像間の変換処理もスキップすることでさらに高速な処理が可能となる。
【００３８】
図５は、非圧縮ＭＲ符号の符号化時の動作を示すフローチャートである。Ｓ３０１からスタートし、Ｓ３０２で１ページの処理が終了したかどうかの判定を行なう。１ページの処理が終了していない場合は、Ｓ３０３へ分岐する。１ページの処理が終了した場合には、１ページの処理の終了のためＳ３１８に分岐しＲＴＣを送出してＳ３１９で終了する。Ｓ３０３は、ＥＯＬコード送出で前述のＥＯＬコードを符号として送出する。次のＳ３０４では、入力される１ライン分の画像データから上述したラン・レングスデータを生成する。そして、生成されたラン・レングスデータのデータ量をカウントしておく（Ｓ３２０）。次のＳ３０５で、このカウント値がある特定のしきい値を超えたならば、このラインは非圧縮該当ラインと判断して、Ｓ３１４以降の非圧縮ライン処理へ分岐する。そうでなければＳ３０６以降の通常のＭＲ符号データを送出する処理を行なう。
【００３９】
ここでは、非圧縮への移行の判定を実際の符号化データではなくラン・レングスデータをもとにおこなっている。これは符号効率においてもＭＨ符号、ＭＲ符号では、ラン・レングスデータと実際の符号量にある程度相関があるため非圧縮への移行判定にラン・レングスを用いても問題ないからである。また同時に圧縮ラインにおけるラン・レングスのデータ量の上限を設定できることから、この符号をＪＢＩＧへ符号変換する時に後述のランレングスを用いたＴＰ判定処理の演算量の上限が規定できるメリットがある。
【００４０】
非圧縮該当ラインでない場合は、Ｓ３０６に進みＫパラメータのためのカウンターが０となっているかを判定する。Ｋパラメータは、伝送誤りによるエラーの伝搬を防ぐために、所定の間隔でＭＨ符号化ラインを挿入するためのパラメータであり、本実施形態では８に設定されている。Ｋパラメータが０の場合は１次元符号であるＭＨ符号を送出し、それ以外の値の場合は２次元符号であるＭＲ符号を送出する。
【００４１】
ＭＲ符号を生成する場合には、Ｓ３０７以降の処理に進み、ＭＨ符号を生成する場合には、Ｓ３１２に分岐する。先にＭＲ符号の生成の場合を説明する。Ｓ３０７では、ＭＲ符号ラインであることを示すＴＡＧビットとして１を送出する。次にＳ３０８でＳ３０４で生成されたラン・レングスデータを用い１ラインのＭＲ符号の処理をおこない符号データを送出する。Ｓ３０９で前述のＫパラメータのカウンタの更新のためカウンターを１インクリメントする。Ｓ３１０でＫパラメータのカウンタ値があらかじめ設定されたＫパラメータの値（８）と等しいか判定し、等しいならば前記カウンタを０に戻す。Ｓ３１１でデータ境界をバイトパディングの合わせるためのＦＩＬＬビット０を必要に応じて送出し、Ｓ３０２に戻る。
【００４２】
一方、Ｋ＝０でＭＨ符号を生成する場合では、Ｓ３１２で、このラインがＭＨ符号であることを示すＴＡＧビットとして０を送出する。Ｓ３１３でＳ３０４で生成されたラン・レングスデータを用い１ライン分のＭＨ符号を生成し送出する。以下ＭＲ符号と同様にＳ３０９，Ｓ３１０，Ｓ３１１を処理し、Ｓ３０２に戻る。
【００４３】
Ｓ３０５において、ランレングスデータ量がしきい値を超えた場合には非圧縮ラインを生成する。非圧縮ラインの生成では、Ｓ３１４でＴＡＧビットとして水平符号を示す０を送出する。これは、復号器の判定処理を軽減させるためである。Ｓ３１５で当該ラインが非圧縮であることを示す非圧縮移行符号である”００００００００１”を送出する。Ｓ３１６で入力された１ライン分の生画像データをそのまま送出する。Ｓ３１８でＫパラメータのカウンタを０としＳ３１１でＦＩＬＬを送出しＳ３０２に戻る。ここで非圧縮ラインのデータ送出時にＫパラメータのカウンタを０とし、次ラインの符号化をＭＨ符号化で行うようにしているのは、非圧縮移行した次のラインをＭＲ符号化した場合には、通常伸長する確率が高いことまた非圧縮ラインを参照ラインとしてＭＲ符号を生成する場合には、演算量が増大するからである。
【００４４】
図６は、非圧縮併用ＭＲ符号の復号時の処理動作を示すフローチャートである。Ｓ４０１からスタートしまずＳ４０２でＥＯＬ符号の検出を行なう。次にＳ４０３でＴＡＧビットの検出を行ないこのラインがＭＨ符号かＭＲ符号であるかを決定する。Ｓ４０４でＴＡＧビットが０の場合は、そのラインの符号データがＭＨ符号又は非圧縮画像データであるためＳ４０８に分岐する。ＴＡＧビットが１の場合は、そのラインの符号データがＭＲ符号であるためＳ４０５以降の処理を続ける。
【００４５】
Ｓ４０５では、ＭＲ符号をラン・レングスデータに変換しＳ４０６に進む。一方、Ｓ４０８では、さらに非圧縮符号の検出を行ない、非圧縮符号が検出された場合には、Ｓ４１０に分岐し、そうでない場合には、Ｓ４０９でＭＨ符号をラン・レングスデータに変換しＳ４０６に進む。Ｓ４０６では前述のＳ４０２において符号データの先頭にＥＯＬが検出されたかどうか判定し、符号データの先頭にＥＯＬが検出された場合には、連続する２個のＥＯＬをＲＴＣの一部とみなしてＳ４１０に分岐する。そうでない場合には、Ｓ４０７でＳ４０５で生成されたラン・レングスデータを生画像に変換しＳ４０２に戻る。Ｓ４１０に分岐した場合には、ＲＴＣを検出しＳ４１１で終了する。一方Ｓ４０８で非圧縮符号が検出された場合には、Ｓ４１０で非圧縮符号に続くデータを１ライン分の元データそして入力されるデータをそのまま出力しＳ４０２に戻る。
【００４６】
次に本実施形態の特徴となる非圧縮を併用したＭＲ符号からＪＢＩＧ符号への変換について図７のフローチャートを用いて詳細に説明する。図７は、図６の非圧縮併用ＭＲの復号動作フローチャートにＪＢＩＧへの符号化処理を埋め込んだものである。
【００４７】
Ｓ６０１からスタートしまず最初にＳ６０２でＪＢＩＧのヘッダファイルであるＢＩＨを生成し送出する。２値画像ヘッダ（ＢＩＨ）の構成についても前述のＩＴＵ−Ｔ勧告に記載されているため詳細な説明は省略する。次に、Ｓ６０３で１ページの処理が終了したかを判定しそうでないならばＳ６０４へ、１ページの処理が終了した場合にはＳ６１５に分岐する。通常のＭＲ符号におけるページ終了は前述の図６のように連続したＥＯＬを検出することで行なうが、符号変換処理においてはすでに１ページあたりのライン数が既知であることからあらかじめ設定したページあたりのライン数をラインカウント値と比較してページ終了を検出する。１ページの処理が終了したと判定されたならば、Ｓ６１５で入力される非圧縮併用ＭＲ符号データからＲＴＣを検出し、次にＳ６１６でＪＢＩＧ符号化の終了処理を行ないＳ６１７で終了する。
【００４８】
Ｓ６０４では入力される非圧縮ＭＲ符号データからＥＯＬを検出する。次にＳ６０５で１ラインの符号データが非圧縮原画像データ、水平（１次元）符号であるＭＨ符号、垂直（２次元）符号であるＭＲ符号のいずれかを判定するためＴＡＧビットを検出する。ＴＡＧビットが非圧縮原画像データ又はＭＨ符号を示す０ならばＳ６１１へ、ＴＡＧビットがＭＲ符号を示す１ならばＳ６０７に進む。
【００４９】
Ｓ６０７においては、入力される垂直符号であるＭＲ符号データから中間データであるラン・レングスデータを１ライン分生成する。Ｓ６１１では、ＴＡＧ検出に続きさらに非圧縮符号の検出を行ない、非圧縮符号でない場合にはＳ６１２に進み入力される水平符号であるＭＨ符号データから中間データであるラン・レングスデータを生成する。Ｓ６０７，Ｓ６１２で生成された１ライン分のラン・レングスデータは、後に典型予測及び参照ラインデータとして使用するため１次記憶される。
【００５０】
なお、このラン・レングスデータは、次ラインのランレングスによる典型予測判定処理時の参照ラインとして用いるため次ラインの処理まで保持される。次にＳ６２０で、参照ラインとしてラン・レングスデータが保持されているかをチェックする。参照ラインとしてラン・レングスデータが保持されていない場合には、参照ラインが非圧縮ラインの場合である。従ってこの場合は、典型予測可能である確率が極端に低くなる。したがってＳ６２０で参照ラインとしてラン・レングスデータが保持されていない場合には、Ｓ６１３に分岐し、そうでない場合には、ラン・レングスデータによる典型予測を行うためＳ６０８に進む。次に、ランレングスデータは前のラインのラン・レングスデータと比較され典型予測可かどうか判定される（Ｓ６０８）。典型予測可能な場合には、前述の通り仮画素であるＳＬＮＴＰを生成してＳ６０９で仮画素に対するモデルテンプレートからＳ６１０でＡＡＥ（算術符号）を行ない、Ｓ６０３に戻る。
【００５１】
Ｓ６０８において典型予測不可と判断された場合には、生画像データから算術符号化を行なうためその符号ラインのラン・レングスデータから一度生画像データを生成する（Ｓ６１３）。またＳ６１１において非圧縮符号が検出された場合には、そのラインが非圧縮符号ラインのため入力されるデータ（生画像データ）をコピーして（Ｓ６１８）Ｓ６１４に進む。Ｓ６１４では、モデルテンプレートの作成のための非圧縮符号（復号化されたデータを含む）による参照ラインのデータが生成されているかどうかチェックする。
【００５２】
生成されていない場合には、Ｓ６１９で、現在参照ラインデータとして記憶されているラン・レングスデータを生画像データに変換し、非圧縮符号からなる参照ラインデータを生成する。これは典型予測が可能な場合には、ランレングスデータを参照ラインのデータとして用いてためである。参照ラインのデータが揃ったらＳ６０９に進みモデルテンプレートを生成しながらＳ６１０でＡＡＥ（算術符号）を１ライン分行なった後、Ｓ６０３に戻る。図７においてはモデルテンプレートとＡＡＥ（算術符号）を分離してあるが、１ライン分の符号化時には、各画素毎にモデルテンプレートを作成しＡＡＥ（算術符号）を行なう。
【００５３】
本実施形態では、非圧縮ラインに関しては、ＴＰ前処理を行なわないようにしている。これは、場合によっては符号化効率が変動するが、ＴＰ処理の判定のための演算量を非圧縮判定で用いたラン・レングスのデータ数の上限で制限することで高速化を図るためである。
【００５４】
このフローチャートで説明したように典型予測をラン・レングスデータで行なうことで、生画像データから典型予測を行なうよりも少ない演算量で典型予測を行なうことができ、さらに典型予測のヒットが続けば、中間データであるラン・レングスから生画像への変換もスキップでき高速な処理が実現できる。
【００５５】
図８は、本実施形態におけるＪＢＩＧ符号から非圧縮を併用したＭＲ符号への変換時のフローチャートである。なお説明を簡単にするため、図８においては、ＪＢＩＧのマーカーコードによる処理の分岐は省略している。
【００５６】
Ｓ７０１からスタートして、まずＳ７０２で入力されるＪＢＩＧ符号のヘッダＢＩＨを解析し、ＪＢＩＧの復号に必要なパラメータを取り出す。次にＳ７０３でＡＡＤ（算術復号）を行ないＳ７０４でページ終了を判定する。ページ終了は、ＢＩＨのＹｄ（垂直方向画素数）設定値とラインカウンタの比較かもしくは、ＮＥＷＬＥＮマーカーコードにより検出される。１ページの処理が終了したならば、Ｓ７１９に分岐し非圧縮併用ＭＲ符号のＲＴＣ符号を出力しＳ７２０でＪＢＩＧの復号終了処理をしＳ７２１で終了する。
【００５７】
Ｓ７０３のＡＡＤ（算術復号）の結果からＳ７０５でテンプレートを作成しラインの先頭でＳＬＮＴＰからＬＮＴＰの値を検出する（Ｓ７０６）。ここで、ＬＮＴＰ＝０ならば典型予測可として前ラインで作成されているラン・レングスデータをコピーしこのラインのラン・レングスデータを作成する。ＬＮＴＰ＝１ならばＳ７０３の１ラインの算術復号、Ｓ７０５のテンプレートの作成の後作成される生画像データからラン・レングスデータを作成する。Ｓ７０７又はＳ７１６で作成したラン・レングスデータの量をカウントしておく（Ｓ７２６）。
【００５８】
Ｓ７０７又はＳ７１６でのランレングスデータの作成が終了したら、Ｓ７０８に進みＥＯＬを出力する。Ｓ７０９以降は、図５を用いて前述した非圧縮を併用したＭＲ符号化処理と同様で、Ｓ７０９で、Ｓ７２６でカウントしたラン・レングスデータの量がある特定のしきい値を超えたならば、このラインは非圧縮該当ラインと判断して、Ｓ７２２以降の非圧縮ライン処理へ分岐する。そうでなければＳ７１０以降の通常のＭＲ符号データを送出する処理を行なう。
【００５９】
非圧縮該当ラインでない場合は、Ｓ７１０に進みＫパラメータのためのカウンターが０となっているかを判定する。本実施形態ではＫパラメータは８に設定されているものとする。この結果により水平符号であるＭＨ符号を送出するか垂直符号であるＭＲ符号を送出するかを切り替える。ＭＲ符号を生成する場合には、Ｓ７１１以降の処理に進み、ＭＨ符号を生成する場合には、Ｓ７１７に分岐する。
【００６０】
先にＭＲ符号の生成の場合を説明する。Ｓ７１１では、ＭＲ符号ラインであることを示すＴＡＧビットとして１を送出する。次にＳ７１２でＳ７０７もしくはＳ７１６で生成されたラン・レングスデータを用い１ラインのＭＲ符号の処理をおこない符号データを送出する。Ｓ７１３で前述のＫパラメータのカウンタの更新のためカウンターを１インクリメントする。Ｓ７１４でＫパラメータのカウンタ値があらかじめ設定されたＫパラメータの値（８）と等しいか判定し、等しいならばカウンタを０に戻す。Ｓ７１５でデータ境界をバイトパディングの合わせるためのＦＩＬＬビット０の送出を行ないＳ７０３に戻る。
【００６１】
ＭＨ符号の生成の場合では、Ｓ７１７で、このラインがＭＨ符号であることを示すＴＡＧビットとして０を送出する。Ｓ７１８でＳ７０７もしくはＳ７１６で生成されたラン・レングスデータを用い１ライン分のＭＨ符号を生成し送出する。以下ＭＲ符号と同様にＳ７１３，Ｓ７１４，Ｓ７１５を処理し、Ｓ７０３に戻る。
【００６２】
非圧縮ラインの生成では、Ｓ７２２でＴＡＧビットとして水平符号を示す０を送出する。Ｓ７２３で当該ラインが非圧縮であることを示す非圧縮移行符号である”００００００００１”を送出する。Ｓ７２４で前段のＪＢＩＧの復号処理で得られた１ライン分の生画像をそのまま送出するＬＮＴＰ＝０の場合には、前のラインですでに作成されている生画像をコピーして送出する。Ｓ７２５でＫパラメータのカウンタを０としＳ７１５でＦＩＬＬを送出しＳ７０３に戻る。
【００６３】
【他の実施形態】
上述の実施形態においては、非圧縮符号を併用したＭＲ符号とＪＢＩＧ間の符号変換に関して説明したが、非圧縮符号を併用したＭＲ符号の代わりに非圧縮を併用したＭＨ符号、通常のＭＨ符号、ＭＲ符号、ＭＭＲ符号を用いてもよい。また通常のＭＨ符号、ＭＲ符号、ＭＭＲ符号の場合では、非圧縮符号を併用した場合とは異なり、画像によっては、ラン・レングスデータの量が、生画像データの量よりも多い場合がある。このため、逆にＴＰの判定のための処理量が多くなる可能性がある。これを回避するためには、通常のＭＨ符号、ＭＲ符号、ＭＭＲ符号とＪＢＩＧ間の符号変換の場合には、ラン・レングスのデータ量に応じて、ＴＰ判定にラン・レングスを用いるか、生画像を用いるかをＴＰ判定時に切り替えるようにすればよい。
【００６４】
また符号変換の処理に紙サイズ変換等の画像データの拡大縮小処理が挿入される場合があるが、この場合においても、拡大縮小処理としてラン・レングスデータからラン・レングスデータに変換する処理を行なうことで本実施形態における有効性が維持できる。
【００６５】
また、ファクシミリ装置に限らず、いかなる装置における符号変換処理に本発明を適用してもよい。さらに、白黒画像だけでなく、カラー画像にも適用可能である。この場合はカラー画像を原色毎のプレーン分解し、各プレーンに対して本発明を適用すればよい。加えて、対象となる符号化データも画像データに限定されない。
【００６６】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００６７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００６８】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６９】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００７０】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７１】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７２】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図７、図８のフローチャートに示す処理のうち、少なくともランレングスデータを用いて典型予測を行う処理を記憶媒体に格納することになる。
【００７３】
【発明の効果】
以上説明したように、本発明によれば、符号変換時に復号化を行う手間が減少する上、再符号化時の演算処理も大幅に削減することができるという効果が得られる。特に、典型予測を伴う符号化方式に適用し、画像符号化を行った場合、一般に文字・線画画像においては典型予測が可能な場合が４０％程度あるため、符号変換の負荷を大幅に改善でき、高速な符号化装置が構成可能となる効果を有する。
【図面の簡単な説明】
【図１】本発明の一実施形態であるファクシミリ装置の構成を示すブロック図である。
【図２】ＪＢＩＧ符号化器、復号化器の概略構成を示すブロック図である。
【図３】非圧縮を併用したＭＲ符号のデータフォーマットを示す図である。
【図４】ラン・レングスデータのフォーマットを示す図である。
【図５】非圧縮を併用したＭＲ符号の符号化時のフローチャートである。
【図６】非圧縮を併用したＭＲ符号の復号化時のフローチャートである。
【図７】本発明の実施形態における非圧縮を併用したＭＲ符号からＪＢＩＧ符号への符号変換動作を示すフローチャートである。
【図８】本発明の実施形態におけるＪＢＩＧ符号から非圧縮を併用したＭＲ符号への符号変換動作を示すフローチャートである。
【符号の説明】
１００  ＣＰＵ
１１０  ＲＯＭ
１２０  ＲＡＭ
１３０  ＭＯＤＥＭ
１４０  操作部
１５０  画像入力部
１６０  蓄積用符号・復号化器
１７０  画像形成部
１８０  符号変換器
１９０  バス
【図１】
0003619025.tif 000002
【図２】
0003619025.tif 000003
【図３】
0003619025.tif 000004
【図４】
0003619025.tif 000005
【図５】
0003619025.tif 000006
【図６】
0003619025.tif 000007
【図７】
0003619025.tif 000008
【図８】
0003619025.tif 000009