(57)【特許請求の範囲】
【請求項１】
デジタル画像信号を符号化する符号器、及び該符号化された画像信号を復号化する復号器を有し、得られた画像の回転画像を生成する画像符号化・復号化装置であって、
前記符号器において、
前記画像信号に係る画像をＮ×Ｎブロックに分割する手段と、
前記Ｎ×Ｎブロックを構成する画素の色を判定する判定手段と、
前記判定結果を符号化する第１の符号化手段と、
前記判定結果をもとに前記ブロック毎に独立に該ブロック内の画素を符号化する第２の符号化手段と、
前記第２の符号化手段で得られた符号化ブロックの符号長を、画像のストライプ毎に合計するストライプ符号長生成手段と、
前記第１の符号化手段及び前記第２の符号化手段にて符号化されたデータ、及び前記符号長生成手段にて得られたストライプ毎の符号長を記憶する記憶手段と、
前記復号器において、
前記第１の符号化手段で符号化された判定結果を復号化する第１の復号化手段と、
前記記憶手段から読み出された前記ストライプ毎の符号長を保持する符号長保持手段と、
前記記憶手段に記憶されている前記符号化ブロックの先頭アドレスを、前記符号長保持手段に保持されたストライプ毎の符号長に基づいて決定する先頭アドレス決定手段と、
前記先頭アドレスに基づいて前記符号化ブロック内の画素を前記記憶手段から読み出し、復号化する第２の復号化手段と、
前記復号化された判定結果及び前記先頭アドレスに基づいて、前記復号化されたＮ×Ｎブロック内の画素を回転する手段と、
前記回転された画素をＮラインバッファに記憶する手段とを備え、
前記第２の復号化手段で復号化された符号化ブロックの符号長に基づいて、前記符号長保持手段に保持された該当するストライプの符号長が更新されることを特徴とする画像符号化・復号化装置。
【請求項２】
前記判定手段は、前記Ｎ×Ｎブロック内の画素が全部同色であるかを判定することを特徴とする請求項１に記載の画像符号化・復号化装置。
【請求項３】
前記第２の符号化手段は、前記Ｎ×Ｎブロック内に異なる色の画素があるブロックを該ブロック毎に独立に符号化することを特徴とする請求項１に記載の画像符号化・復号化装置。
【請求項４】
前記第２の符号化手段は、前記Ｎ×Ｎブロックを構成する全画素の色が白の場合、前記符号化を行なわないことを特徴とする請求項２に記載の画像符号化・復号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル画像を符号化・復号化する符号化・復号化装置に関するものである。
【０００２】
【従来の技術】
従来より、デジタル画像通信における白黒２値画像の符号化方式では、画像をラスタ単位に符号化していく方式が多く使われている。例えば、ファクシミリ装置で使用されている符号化方式であるＭＨ，ＭＲ，ＭＭＲ方式などは、白黒の画素の続く長さ（ランレングス）に注目して符号化するものである。このような符号化方式を取る画像通信装置において、画像を９０度単位に回転させるような場合、符号化画像を原画像に復号してから回転したり、あるいは、符号化の前に回転させる必要がある。
【０００３】
図１６は、従来の符号化装置における符号化を説明するためのブロック図である。同図において、２１は、原稿を横置き（長手方向にスキャン）して、そのスキャン方向２００に従って、画素単位に原稿画像を読み込んでいくことを示している。
【０００４】
また、２２はページメモリで、スキャン方向２０１に従って、ページメモリ２２に順次記録される様子を示している。ここでは、回転した画像を符号化するための読み出しは、スキャン方向２０２に従って行なうことを示している。
【０００５】
２３は、画像データ蓄積用の符号化器、２４は蓄積メモリである。これらは、ファクシミリのメモリ伝送を行なうためや、プロトコルの異なるファクシミリ装置間の通信を行なうためのバッファメモリである。そして、通信時には、蓄積メモリ２４から蓄積用符号化データを読み出し、それを蓄積用符号化器２５にて符号化を行ない、２６の伝送用の符号化器で伝送用符号に直して、伝送される。また、このデータは、受信側の伝送デコーダ２７で復号化され、２８に示した縦置き用紙（短手方向にスキャン）に記録される。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来の装置では、スキャンした画像を９０度回転し、回転した画像をラスタ順に符号化するためには、一度回転用のページメモリに全画像を記録して、読み出し順を変えて符号化する必要がある。
【０００７】
また、他の方式として、画像をブロック単位に符号化する方式もあるが、ランレングスを基本とする符号化方式ではラン長が長くならず、圧縮率が上がらないという問題がある。
【０００８】
本発明は、上記の課題に鑑みてなされたもので、その目的とするところは、数ライン分のバッファのみで、画像を回転させ、その回転画像に対する再符号化を可能にする画像符号化・復号化装置を提供することである。
【０００９】
また、本発明の他の目的は、ブロック単位の符号化でも、予測符号化を使って圧縮率を高めることができる画像符号化・復号化装置を提供することである。
【００１０】
【課題を解決するための手段】
上記の目的を達成するため、本発明は、デジタル画像信号を符号化する符号器、及び該符号化された画像信号を復号化する復号器を有し、得られた画像の回転画像を生成する画像符号化・復号化装置であって、前記符号器において、前記画像信号に係る画像をＮ×Ｎブロックに分割する手段と、前記Ｎ×Ｎブロックを構成する画素の色を判定する判定手段と、前記判定結果を符号化する第１の符号化手段と、前記判定結果をもとに前記ブロック毎に独立に該ブロック内の画素を符号化する第２の符号化手段と、前記第２の符号化手段で得られた符号化ブロックの符号長を、画像のストライプ毎に合計するストライプ符号長生成手段と、前記第１の符号化手段及び前記第２の符号化手段にて符号化されたデータ、及び前記符号長生成手段にて得られたストライプ毎の符号長を記憶する記憶手段と、前記復号器において、前記第１の符号化手段で符号化された判定結果を復号化する第１の復号化手段と、前記記憶手段から読み出された前記ストライプ毎の符号長を保持する符号長保持手段と、前記記憶手段に記憶されている前記符号化ブロックの先頭アドレスを、前記符号長保持手段に保持されたストライプ毎の符号長に基づいて決定する先頭アドレス決定手段と、前記先頭アドレスに基づいて前記符号化ブロック内の画素を前記記憶手段から読み出し、復号化する第２の復号化手段と、前記復号化された判定結果及び前記先頭アドレスに基づいて、前記復号化されたＮ×Ｎブロック内の画素を回転する手段と、前記回転された画素をＮラインバッファに記憶する手段とを備え、前記第２の復号化手段で復号化された符号化ブロックの符号長に基づいて、前記符号長保持手段に保持された該当するストライプの符号長が更新される。
【００１１】
【発明の実施の形態】
以下、添付図面を参照して、本発明に係る実施の形態を詳細に説明する。
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態に係る符号・復号化装置の全体の構成を示すブロック図である。なお、ここでは、白黒２値の場合について説明する。
【００１２】
図１において、符号３０は、原稿を横書きして、スキャン方向３００に従って、画素単位に画像を読み込んでいくことを示している。３１はラインバッファで、後述するブロックサイズ分だけの幅を持つ。また、３２は、入力データの符号化を行なう符号器であり、符号化されたデータはメモリ３３に蓄えられる。ここでは、ブロック単位の符号化を行なう。
【００１３】
３４は復号器で、ここで復号化されたデータはラインバッファ３５に書き込まれる。その後、データは、３６の伝送用の符号化器で伝送用符号に直して伝送され、受信側のデコーダ３７で復号化されて、最終的には、３８にて示される縦置き用紙に記録される。
【００１４】
図２，図３は、本実施の形態に係る符号器、復号器の内部構成を示すブロック図である。
【００１５】
図２において、３１はＮラインのラインバッファ（以下の例では、Ｎ＝８または１６）、１０１はブロック分割部、１０２は全白ブロック判定部、１０３は判定フラグ符号化部、１０４ブロック内画素を符号化するブロック内符号化部、１０５はストライプ符号長演算部、そして、３３はコードメモリである。また、図３において、１０７は判定フラグ復号部、１０８はストライプ符号長読込部、１０９はブロック内の画素を復号化するブロック内復号化部、１１０はアドレス等の制御部、１１１はブロック内画素を回転させるブロック内回転制御部、３５はＮラインのラインバッファ、そして、１１３は、ブロックコード読み出しアドレスである。
【００１６】
そこで、最初に符号化の動作を説明する。
【００１７】
図２に示すラインバッファ３１では、Ｎライン（以下の説明では、１６ライン）毎の画像データをブロック分割部１０１に入力し、画像データを１６×１６毎のブロックに分割する。次段の全白ブロック判定部１０２では、ブロック内画素が全部白の場合にフラグを立て、ここでは、このブロック内の画素は符号化対象としない。
【００１８】
判定フラグ符号化部１０３では、全白ブロック判定部１０２からの、画像全体の全白ブロックのフラグのＯＮ／ＯＦＦの状態を符号化する。また、ブロック内符号化部１０４では、ブロック内の画素値を予測符号化方式で符号化する。ストライプ符号長演算部１０５では、１６ラインで区切った画像（ここでは、これをストライプ画像と呼ぶ）毎のブロック内画素の符号長の和を演算する。そして、メモリ部３３には、判定フラグ符号化部１０３での判定フラグの符号化データ、ストライプ符号長演算部１０５からのストライプ符号長データ、ブロック内符号化部１０４にて符号化したブロック内画素の符号データが、１つの画像の符号化データとして一括して記録される。
【００１９】
次に、復号化の動作について説明する。
【００２０】
図３の判定フラグ復号部１０７では、全画像に渡るブロック単位の全白フラグを復号化する。ストライプ符号長読込部１０８は、各ストライプの符号長を読み出し、その値を制御部１１０内のカウンタ（不図示）にセットする。制御部１１０では、回転処理を考慮した順番に、復号化するブロックアドレスを計算する。
【００２１】
先ず対象となるブロックの全白フラグを見て、全白の場合は回転処理が不要なので、１６×１６の白データをブロック内回転制御部１１１に出力して、回転処理は行なわないように制御する。しかし、全白フラグがＯＦＦの場合（符号化ブロックの場合）には、ストライプ符号長カウンタ値から対応するブロックの符号の先頭番地を計算し、そのアドレス信号である読出しアドレス１１３をメモリ３３に出力して、そこからのデータをブロック内画素の復号化部１０９に送る。
【００２２】
ブロック内復号化部１０９では、１６×１６ブロック内の画素を復号化し、これらをブロック内回転制御部１１１に送る。このブロック内回転制御部１１１では、ブロック内で回転した画像をラインバッファ３５に送る。また、ブロック内復号化部１０９からは、復号化に使用した符号長信号１２０を制御部１１０に戻し、そこでは、上記のストライプカウンタの値が更新される。
【００２３】
図４，図５は、ブロック分解された画像の回転方式を説明するための図であり、ここでは、画像全体をＡからＬまでの１２個のブロックに分割する。
【００２４】
図４は、回転前のブロックの配置を示し、図５は、右回転後の配置を示す。ここに示す回転画像を作るためのブロックの読み出し、及び回転順序は、以下のようになる。すなわち、
（１）ブロックＩの復号及び回転
（２）ブロックＥの復号及び回転
（３）ブロックＡの復号及び回転
（４）ブロックライン（Ｉ，Ｅ，Ａ）の出力
（５）ブロックＪの復号及び回転
（６）ブロックＦの復号及び回転
（７）ブロックＢの復号及び回転
（８）ブロックライン（Ｊ，Ｆ，Ｂ）の出力
（９）上記操作の繰り返しで、ブロックライン（Ｌ，Ｈ，Ｄ）までの処理を行なう。
【００２５】
図６は、全白ブロックの判定結果を示す図であり、同図においてハッチングされていないブロックが全白ブロック、ハッチングされたブロックが、黒画素値を有するブロックであり、このブロックが符号化対象になる。また、このフラグ情報は、判定フラグ符号化部１０３で符号化される。なお、ここでの符号化方式は、ランレングス方式の符号化でも予測符号化方式でもよい。
【００２６】
図７は、ブロック内の画素のスキャン方向を説明するための図である。同図に示すように、ブロック内での画素は、左から右へ、上から下方向へスキャンされ、この画素順で符号化を行なう。
【００２７】
また、図８は、ブロック内の画素の予測参照方式を説明するための図である。同図に示す、ブロック内の符号化対象画素Ｘは、既に符号化済みの周囲画素Ａ，Ｂ，Ｃの３画素の値からＸの白黒の状態、それらの一致確率を算出し、その結果を後述する予測符号化器で符号化する。なお、符号化対象画素Ｘが、ブロックの上下左右の端にかかる場合の周囲画素の状態は、あらかじめ決められたルールで決定しておく必要がある。通常は、白画素を仮定する。
【００２８】
図９は、本実施の形態に係る予測符号化回路の構成を示すブロック図である。同図において、９１は予測回路で、図８に示す符号化対象画素の周囲状況を調べるための回路である。９３は予測状態メモリで、後段の算術符号器９４に与える情報を、予測状態毎に記憶する回路であり、算術符号器９４から出力される、１画素の符号化終了時に更新された情報が、この予測状態メモリ９３に記憶される。
【００２９】
また、ブロック内画素の最初の画素を符号化する場合は、初期値データセット回路９２に、不図示の制御部から信号を与えて、予測状態メモリ９３の値を初期値に戻す。この初期値データは、代表的な原稿で決定しており、それを複数用意して切り替える方式をとることにより、効率の良い符号化ができる。
【００３０】
なお、算術符号器９４は、国際標準ＪＰＥＧ，ＪＢＩＧ方式で決められているＱＭ−Ｃｏｄｅｒ、またはその他の類似する方式でも構わない。
【００３１】
図１０は、ブロック符号の先頭アドレスの算出方式を説明するための図である。同図では、図６などのブロックＢ，Ｃ，Ｅ，Ｆ，Ｇ，Ｈ，Ｊの符号ｂ，ｃ，ｅ，ｆ，ｇ，ｈ，ｊを表わしている。そして、符号化部では、各ストライプのコード長として、（ｂ＋ｃ），（ｅ＋ｆ＋ｇ＋ｈ），（ｊ）のコード長を計算し、これらをメモリ３３に記憶する。
【００３２】
また、復号器では、メモリ３３から各ストライプ長を読み出し、各ストライプに対応するカウンタにその値をセットする。
【００３３】
図１０に示す例では、ストライプ＃１のカウンタ値は０、ストライプ＃２のカウンタ値は（ｂ＋ｃ）、ストライプ＃３のカウンタ値は（ｅ＋ｆ＋ｇ＋ｈ）をセットする。これにより、ブロックＢ，Ｅ，Ｊのブロック符号の画像に対する符号上の先頭アドレスがわかることになる。
【００３４】
各ブロックの復号が終わると、そのブロックの復号にかかった符号長をカウンタに加算する。例えば、ブロックＢの復号に使った符号長ｂをカウンタ＃１に加算することにより、ブロックＣのブロック符号の先頭アドレスがわかることにある。
【００３５】
図１１，図１２は、ブロック内の回転処理を説明するための図であるが、説明を簡単にするために、ここでは、Ｎ＝８（８×８）の場合を示している。
【００３６】
図１１の１〜１０は、ブロック内の画素の符号化順を示しており、図１２の１〜１０は、右９０度回転を行なう場合に、復号化した画素をブロックバッファに書き込むときの順番を表わしている。ここでは、上から下、右から左の順で書き込む。
【００３７】
以上説明したように、本実施の形態によれば、大容量のメモリを使わずに、ブロック単位に符号化された圧縮コードデータの読み出し順序を制御することにより、数ライン分のバッファにて画像を回転させ、回転画像に対する再符号化が可能となる。また、ブロック単位の符号化でも、頻出する原稿に合わせた予測符号化を使うことにより、圧縮率を高めることができる。
＜第２の実施の形態＞
以下、第２の実施の形態について説明する。
【００３８】
図１３は、全白ブロックの検出に加えて、全黒ブロックの検出回路を入れた場合のブロックフラグ情報の符号器の構成を示すブロック図である。同図において、３００は全白ブロック判定器、３０１は全黒ブロック判定器、３０２はブロック状態を決定する状態決定器で、図１４に示すような、全白（０）、全黒（１０）、それ以外（１１）の３状態を表わす信号を出力する。
【００３９】
図１５に示した符号化器では、３１０の予測回路で周囲での判定状況から予測状態を作り、これを、現ブロック情報の何ビット目かを示す信号を予測状態メモリ３１１のアドレスとして入れ、算術パラメータをデータとして読み出す。そして、これを算術符号器３１２に入力し、ブロックの情報を１ビットづつ符号化していく。
【００４０】
復号化は、上記とは逆の回路を作ることにより、１ビットずつ復号値が決定され、復号値の１ビット目が（０）のときは全白ブロック、復号値の１ビット目が１で、２ビット目が（０）のときは全黒ブロック、また、復号値の１，２ビット目が（１）のときは、符号化ブロックとブロックフラグの状態が決定できる。
【００４１】
本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって実施される場合にも適用できることは言うまでもない。この場合、本発明に係るプログラムを格納した記憶媒体が本発明を構成することになる。そして、該記憶媒体からそのプログラムをシステムあるいは装置に読み出すことによって、そのシステムあるいは装置が、あらかじめ定められた仕方で動作する。
【００４２】
【発明の効果】
以上説明したように、本発明によれば、符号器側において所定ブロック内の画素の色を判定し、異なる色の画素があるブロックのみをブロック毎に独立に符号化し、復号器側において、回転した画像を順次構成していくためのブロックデータのアドレスを制御してブロック内の画素を復号化し、ブロック内の画素を回転することにより、大容量のメモリを使わずに、符号化データを使って画像の回転を行なえるという効果がある。特に、画像のストライプ毎に該当する符号化ブロックの符号長の和を記憶しておき、復号対象となるブロックの先頭アドレスを上記各ストライプ毎の符号長を参照することにより決定し、また、ブロックを復号する毎に該当するストライプの符号長を更新する様にしたので、回転画像を構成するのに必要なブロックを順次効率よく復号することができる。
【００４３】
【図面の簡単な説明】
【図１】第１の実施の形態に係る符号・復号化装置の全体の構成を示すブロック図である。
【図２】実施の形態に係る符号器、復号器の内部構成を示すブロック図である。
【図３】実施の形態に係る符号器、復号器の内部構成を示すブロック図である。
【図４】ブロック分解された画像の回転方式を説明するための図である。
【図５】ブロック分解された画像の回転方式を説明するための図である。
【図６】全白ブロックの判定結果を示す図である。
【図７】ブロック内の画素のスキャン方向を説明するための図である。
【図８】ブロック内の画素の予測参照方式を説明するための図である。
【図９】実施の形態に係る予測符号化回路の構成を示すブロック図である。
【図１０】ブロック符号の先頭アドレスの算出方式を説明するための図である。
【図１１】ブロック内の回転処理を説明するための図である。
【図１２】ブロック内の回転処理を説明するための図である。
【図１３】第２の実施の形態における全白ブロックの検出と全黒ブロックの検出回路を有するブロックフラグ情報の符号器の構成を示すブロック図である。
【図１４】状態決定器における真理値表を示す図である。
【図１５】第２の実施の形態に係る符号化器の例を示す図である。
【図１６】従来の符号化装置における符号化を説明するためのブロック図である。
【符号の説明】
３１，３５  ラインバッファ
３３  コードメモリ
１０１  ブロック分割部
１０２  全白ブロック判定部
１０３  判定フラグ符号化部
１０４  ブロック内符号化部
１０５  ストライプ符号長演算部
１０７  判定フラグ復号部
１０８  ストライプ符号長読込部
１０９  ブロック内復号化部
１１０  制御部
１１１  ブロック内回転制御部
１１３  ブロックコード読み出しアドレス
【図１】
0003563838.tif 000002
【図２】
0003563838.tif 000003
【図３】
0003563838.tif 000004
【図４】
0003563838.tif 000005
【図５】
0003563838.tif 000006
【図６】
0003563838.tif 000007
【図７】
0003563838.tif 000008
【図８】
0003563838.tif 000009
【図９】
0003563838.tif 000010
【図１０】
0003563838.tif 000011
【図１１】
0003563838.tif 000012
【図１２】
0003563838.tif 000013
【図１３】
0003563838.tif 000014
【図１４】
0003563838.tif 000015
【図１５】
0003563838.tif 000016
【図１６】
0003563838.tif 000017