(57)【要約】      （修正有）【課題】縮小画像データからオリジナル画像データを復元するための効率の良い符号化データを生成する。【解決手段】解像度変換部２０２は、入力したブロックデータ内の、予め設定された位置の１つの画素データをサンプリングし、オリジナル画像データよりも小さいサイズの縮小画像データを生成する。補間データ生成部２０３は、縮小画像生成手段で生成された前記縮小画像画像データから前記オリジナル画像データを復元するため、各ブロックデータ中の非サンプリング対象となった３つ画素データを復元するための符号化データを生成する。このため、補間データ生成部２０３は、着目ブロック中の非サンプリング対象の画素の全てが、着目ブロック中のサンプリング対象の画素から復元できるか、或いは、着目ブロックに隣接する３つのブロックのサンプリング対象となる画素から復元できるかを判定し、その判定結果に応じて３種類の付加データを生成し、出力する。【選択図】図２
2010154486.tif 000002
【特許請求の範囲】
【請求項１】
画像データを圧縮符号化する画像符号化装置であって、
符号化対象のオリジナル画像データから２×２画素で構成されるブロックを入力する入力手段と、
入力したブロック内の、予め設定された位置の１つの画素データをサンプリングすることで、前記オリジナル画像データよりも小さいサイズの縮小画像データを生成し、出力する縮小画像生成手段と、
前記縮小画像生成手段で生成された前記縮小画像データから前記オリジナル画像データを復元するため、各ブロック中の非サンプリング対象となった３つの画素データを復元するための符号化データを生成する符号化手段とを備え、
前記符号化手段は、
着目ブロック中の前記サンプリング対象の画素をＸ、前記着目ブロック中の非サンプリング対象の画素をＸａ，Ｘｂ，Ｘｃと表わしたとき、
条件（ａ）：画素Ｘａ，Ｘｂ，Ｘｃの全てが、前記着目ブロック中の前記画素Ｘから復元できるか、
条件（ｂ）：前記画素Ｘａ，Ｘｂ，Ｘｃの全てが、前記着目ブロックに隣接する３つのブロックのサンプリング対象となる画素から復元できるか、
を判定する判定手段と、
該判定手段によって前記着目ブロックが前記条件（ａ）を満たすと判定された場合、第１の付加情報を前記着目ブロックの符号化データとして生成し、
前記判定手段によって、前記着目ブロックが前記条件（ａ）を満たさず、前記条件（ｂ）を満たすと判定された場合、前記第１の付加情報とは異なる第２の付加情報を前記着目ブロックの符号化データとして生成し、
前記判定手段によって、前記着目ブロックが前記条件（ａ）、（ｂ）のいずれも満たさないと判定された場合、前記第１、第２の付加情報とも異なる第３の付加情報を前記着目ブロックの符号化データとして生成する付加情報生成手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
前記第１の付加情報は１ビット、前記第２の付加情報は前記第１の付加情報とは異なる値のビットで始まる２ビット、前記第３の付加情報は前記第２の付加情報の１ビット目が同じで２ビット目が異なる２ビット及び前記画素Ｘａ，Ｘｂ，Ｘｃの３画素分のデータで構成されることを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
更に、前記付加情報生成手段で生成される水平方向にＭ個、垂直方向にＮ個（Ｍ、Ｎは２以上の整数）のブロックの符号化データを入力する符号化データ入力手段と、
該符号化データ入力手段で入力したＭ×Ｎ個のブロックの符号化データを、当該Ｍ×Ｎ個のブロックで構成される１つのタイルの符号化データとして統合するタイル統合手段とを備え、
前記タイル統合手段は、
前記Ｍ×Ｎ個のブロックの全符号化データが、前記第１乃至第３の付加情報のいずれか１種類のみの符号化データで構成される場合には、タイルに統合したことを示すフラグ情報を出力し、当該フラグ情報に後続して符号化データを出力する第１の統合手段と、
前記Ｍ×Ｎ個のブロックの全符号化データの中に、少なくとも２種類の符号化データが存在する場合、タイルへの非統合を示すフラグ情報を出力し、着目タイル内の水平方向に並ぶＭ個のブロックの符号化データで構成されるブロックラインを単位に、各符号化データを統合するブロックライン統合手段とを備え、
前記ブロックライン統合手段は、
着目ブロックラインのＭ個の符号化データが、前記第１乃至第３の付加情報のいずれか１種類のみの符号化データで構成される場合には、ブロックラインに統合したことを示すフラグ情報を出力するとともに、当該フラグ情報に後続して前記符号化データを出力する第２の統合手段と、
前記着目ブロックラインのＭ個の符号化データの中に、少なくとも２種類の符号化データが存在する場合、ブロックラインへの非統合を示すフラグ情報を出力するとともに、着目ブロックラインに含まれるＭ個のブロックの符号化データを出力する手段とを備える
ことを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記符号化手段は、
Ｘ＝Ｘａ＝Ｘｂ＝Ｘｃを満たす場合、前記条件（ａ）を満たすと判定し、
画素Ｘａを復元するために参照する隣接ブロック内の前記画素Ｘａに隣接するサンプリング対象となる画素をＸ１、画素Ｘｂを復元するために参照する隣接ブロック内の前記画素Ｘｂに隣接するサンプリング対象となる画素をＸ２、画素Ｘｃを復元するために参照する隣接ブロック内の前記画素Ｘｃに隣接するサンプリング対象となる画素をＸ３と定義したとき、
Ｘａ＝Ｘ１  且つ、
Ｘｂ＝Ｘ２  且つ、
Ｘｃ＝Ｘ３
を満たす場合、前記条件（ｂ）を満たすと判定することを特徴とする請求項１乃至３のいずれか１項に記載の画像符号化装置。
【請求項５】
更に、前記付加情報生成手段で得られた符号化データのデータ量と、予め設定された目標符号量とを比較する第１の比較手段と、
前記第１の比較手段による比較結果、前記符号化データのデータ量が前記目標符号量を超える場合、前記入力手段による入力されたオリジナル画像データにおける各ブロックの画素値の値を修整することで、ブロックが表わす色数を減色する減色手段とを備え、
前記符号化手段は、前記減色手段で減色後のブロックについて再符号化を実行することを特徴とする請求項１乃至４のいずれか１項に記載の画像符号化装置。
【請求項６】
更に、前記付加情報生成手段が生成した前記第３の付加情報の個数と、前記オリジナル画像データに含まれる総ブロック数で決定される閾値とを比較する第２の比較手段と、
該第２の比較手段の比較結果に基づき、前記減色手段による減色の度合を設定するパラメータを設定する設定手段とを備えることを特徴とする請求項５に記載の画像符号化装置。
【請求項７】
更に、前記付加情報生成手段で得られた符号化データのデータ量と、予め設定された目標符号量とを比較する第１の比較手段と、
該第１の比較手段による比較結果が、前記符号化データのデータ量が前記目標符号量を超えることを示す場合、前記付加情報生成手段が生成した前記第３の付加情報の個数と、前記オリジナル画像データに含まれる総ブロック数で決定される閾値とを比較する第２の比較手段と、
該第２の比較手段による比較結果が、前記第３の付加情報の個数が前記閾値を超えることを示す場合、前記オリジナル画像データを、当該オリジナル画像データが持つ解像度よりも低い解像度に変換し、符号化データとして出力する解像度変換手段と、
該第２の比較手段による比較結果が、前記第３の付加情報の個数が前記閾値以下であるとことを示す場合、前記入力手段による入力されたオリジナル画像データにおける各ブロックの画素値の値を修整することで、ブロックが表わす色数を減色し、減色後のブロックを前記符号化手段に出力することで再符号化を実行する減色手段と
を備えることを特徴とする請求項１乃至４のいずれか１項に記載の画像符号化装置。
【請求項８】
画像データを圧縮符号化する画像符号化装置であって、
符号化対象のオリジナル画像データから２×２画素で構成されるブロック内の、予め設定された位置の１つの画素データをサンプリングすることで、前記オリジナル画像データよりも小さいサイズの縮小画像データを生成し、出力する縮小画像生成手段と、
オリジナル画像データの中の水平方向に２Ｍ画素、垂直方向に２Ｎ画素（Ｍ、Ｎは２以上の整数）の画素データで構成されるタイルを入力する入力手段と、
入力したタイル中のＭ×Ｎ個のブロックそれぞれについて、前記縮小画像データを生成する際のサンプリング対象の画素を除く非サンプリング対象の３つ画素データを復元するための符号化データを、前記タイル単位に生成するタイル符号化手段とを備え、
前記タイル符号化手段は、
１つのブロック内の非サンプリング対象となった３画素の全てが当該ブロック内のサンプリング対象の画素から復元可能なブロックをフラットブロックと定義し、１つのブロック内の非サンプリング対象となった３画素の少なくとも１つが、当該ブロック内のサンプリング対象の画素から復元できないブロックをノンフラットブロックと定義したとき、
前記着目タイル内の全ブロックが前記フラットブロックであるか、少なくとも１つがノンフラットブロックであるかを判定し、当該判定結果を示すフラグ情報を出力する第１の判定手段と、
該第１の判定手段によって、前記着目タイル内の少なくとも１つが前記ノンフラットブロックであると判定した場合、前記着目タイル内の水平方向に並ぶＭ個のブロックで構成されるブロックラインを単位に、符号化するブロックライン符号化手段とを備えることを特徴とする画像符号化装置。
【請求項９】
前記ブロックライン符号化手段は、
１タイルの符号化の開始時に、初期値として全ブロックが前記ノンフラットブロックであることを示す参照ノンフラットブロックライン情報を生成する生成手段と、
前記着目ブロックライン内の全ブロックが前記フラットブロックであるか、少なくとも１つがノンフラットブロックであるかを判定し、当該判定結果を示すフラグ情報を出力する第２の判定手段と、
該第２の判定手段によって、前記着目ブロックライン内の少なくとも１つが前記ノンフラットブロックであると判定した場合、着目ブロックラインを構成する各ブロックのフラットブロック、ノンフラットブロックの種類が、前記参照ノンフラットブロックライン情報と同じであるか否かを判定し、当該判定結果を示すフラグ情報を出力する第３の判定手段と、
該第３の判定手段によって、前記着目ブロックラインの各ブロックのフラットブロック、ノンフラットブロックの種類が、前記参照ノンフラットブロックライン情報と異なると判定した場合、前記着目ブロックラインを構成する各ブロックの種類を示す情報を出力するとともに、前記参照ノンフラットブロックライン情報を、前記着目ブロックラインを構成する各ブロックの種類を示す情報で更新する手段と、
前記第２の判定手段、前記第３の判定手段から出力される情報に基づき、着目タイル内のノンフラットブロックを特定し、当該特定されたノンフラットブロックの中の非サンプリング対象の３画素を符号化するノンフラットブロック符号化手段と
を備えることをと特徴とする請求項８に記載の画像符号化装置。
【請求項１０】
前記ノンフラットブロック符号化手段は、
前記ノンフラットブロックであると判定された着目ブロック内の非サンプリングの３画素が、前記着目ブロックに隣接する３つのブロックのサンプリング対象となる画素から復元できるか否かを判定し、当該判定結果を示すフラグ情報を出力する第４の判定手段と、
該第４の判定手段により、前記着目ブロック内の非サンプリングの３画素の少なくとも１つが、前記着目ブロックに隣接するブロックのサンプリング対象となる画素から復元できないと判定した場合、前記着目ブロックを構成する４画素が表わす色数が２であるか、それより多いかを判定し、当該判定結果を示すフラグ情報を出力する第５の判定手段と、
該第５の判定手段により、前記着目ブロックを構成する４画素が表わす色数が２より大きいと判定した場合、前記着目ブロック内の非サンプリングの３つの画素データを出力する第１の出力手段と、
前記第５の判定手段により、前記着目ブロックを構成する４画素が表わす色数が２色であると判定した場合、予め設定された２×２画素の複数の２色のパターンのいずれに該当するかを示す情報を出力する第２の出力手段と、
該第２の出力手段による前記情報の出力に後続して、前記着目ブロック内の前記非サンプリング対象の画素のうち、前記サンプリング対象となった画素の色とは異なる色の画素が、前記着目ブロックに隣接する３つのブロックのサンプリング対象の画素のいずれかと等しいか否かを判定する第６の判定手段と、
該第６の判定手段により等しい画素が存在すると判定した場合、当該等しいと判定された画素の位置を特定する情報を出力する第３の出力手段と、
前記第６の判定手段により等しい画素が存在しないと判定した場合、前記第６の判定手段が出力する前記情報とは異なる情報を出力し、且つ、前記着目ブロック内の前記非サンプリング対象の画素のうち、前記サンプリング対象となった画素の色とは異なる色の画素の画素データを出力する第４の出力手段と
を備えることを特徴とする請求項９に記載の画像符号化装置。
【請求項１１】
前記第４の判定手段は、
前記着目ブロック内のサンプリング対象の画素をＸ、前記着目ブロック内の非サンプリング対象の３つの画素をＸａ，Ｘｂ，Ｘｃ、前記着目ブロックに隣接するブロック中の、前記画素Ｘａに隣接するサンプリング対象となる画素をＸ１、前記着目ブロックに隣接するブロック中の、前記画素Ｘｂに隣接するサンプリング対象となる画素をＸ２、前記着目ブロックに隣接するブロック中の、前記画素Ｘｃに隣接するサンプリング対象となる画素をＸ３と定義したとき、予め設定された閾値Ｔｈ１について
｜Ｘａ−Ｘ１｜≦Ｔｈ１  且つ、
｜Ｘｂ−Ｘ２｜≦Ｔｈ１  且つ、
｜Ｘｃ−Ｘ３｜≦Ｔｈ１
を満たす場合、着目ブロック内の非サンプリングの３画素が、前記着目ブロックに隣接する３つのブロックのサンプリング対象となる画素から復元できると判定することを特徴とする請求項１０に記載の画像符号化装置。
【請求項１２】
前記着目ブロック内のサンプリング対象の画素をＸ、前記着目ブロック内の非サンプリング対象の３つの画素をＸａ，Ｘｂ，Ｘｃ、前記着目ブロックに隣接するブロック中の、前記画素Ｘａに隣接するサンプリング対象となる画素をＸ１、前記着目ブロックに隣接するブロック中の、前記画素Ｘｂに隣接するサンプリング対象となる画素をＸ２、前記着目ブロックに隣接するブロック中の、前記画素Ｘｃに隣接するサンプリング対象となる画素をＸ３、予め設定された正の閾値をＴｈ２と定義したとき、
以下の条件（ｂ）を満たすか否かを判定する第７の判定手段と、
条件（ｂ）：
｜Ｘａ−（Ｘ＋Ｘ１）／２｜≦Ｔｈ２、且つ、
｜Ｘｂ−（Ｘ＋Ｘ２）／２｜≦Ｔｈ２、且つ、
｜Ｘｃ−（Ｘ＋Ｘ３）／２｜≦Ｔｈ２
前記第５の判定手段で、前記着目ブロックを構成する４画素が表わす色数が２より多いと判定した場合、前記第７の判定手段の判定結果を示すフラグ情報を出力する第５の出力手段とを備え、
前記第５の出力手段が出力するフラグ情報が、前記条件（ｂ）を満たさないことを示す場合、前記第１の出力手段が、前記着目ブロック内の非サンプリングの３つの画素データを出力することを特徴とする請求項１０又は１１に記載の画像符号化装置。
【請求項１３】
前記タイル符号化手段により生成された符号化データの一部を切り捨てることにより、符号量を制御することを特徴とする請求項８に記載の画像符号化装置。
【請求項１４】
更に、前記タイル符号化手段で得られた符号化データのデータ量と、予め設定された目標符号量とを比較する第１の比較手段と、
前記第１の比較手段による比較結果、前記符号化データのデータ量が前記目標符号量を超える場合、前記入力手段による入力されたオリジナル画像データにおける各ブロックの画素値の値を修整することで、ブロックが表わす色数を減色する減色手段とを備え、
前記タイル符号化手段は、前記減色手段で減色後のブロックについて再符号化を実行することを特徴とする請求項１０に記載の画像符号化装置。
【請求項１５】
更に、前記第１の出力手段、前記第４の出力手段が画素データを出力した回数と、前記オリジナル画像データに含まれる総ブロック数で決定される閾値とを比較する第２の比較手段と、
該第２の比較手段の比較結果に基づき、前記減色手段による減色の度合を設定するパラメータを設定する設定手段とを備えることを特徴とする請求項１４に記載の画像符号化装置。
【請求項１６】
更に、前記タイル符号化手段で得られた符号化データのデータ量と、予め設定された目標符号量とを比較する第１の比較手段と、
該第１の比較手段による比較結果が、前記符号化データのデータ量が前記目標符号量を超えることを示す場合、前記第１の出力手段、前記第４の出力手段が画素データを出力した回数と、前記オリジナル画像データに含まれる総ブロック数で決定される閾値とを比較する第２の比較手段と、
該第２の比較手段による比較結果が、前記回数が前記閾値を超えることを示す場合、前記オリジナル画像データを、当該オリジナル画像データが持つ解像度よりも低い解像度に変換し、符号化データとして出力する解像度変換手段と、
該第２の比較手段による比較結果が、前記回数が前記閾値以下であるとことを示す場合、前記入力手段による入力されたオリジナル画像データにおける各ブロックの画素値の値を修整することで、ブロックが表わす色数を減色し、減色後のブロックを前記タイル符号化手段に出力することで再符号化を実行する減色手段と
を備えることを特徴とする請求項１０に記載の画像符号化装置。
【請求項１７】
画像データを圧縮符号化する画像符号化装置の制御方法であって、
符号化対象のオリジナル画像データから２×２画素で構成されるブロックを入力する入力工程と、
入力したブロック内の、予め設定された位置の１つの画素データをサンプリングすることで、前記オリジナル画像データよりも小さいサイズの縮小画像データを生成し、出力する縮小画像生成工程と、
前記縮小画像生成工程で生成された前記縮小画像データから前記オリジナル画像データを復元するため、各ブロック中の非サンプリング対象となった３つの画素データを復元するための符号化データを生成する符号化工程とを有し、
前記符号化工程は、
着目ブロック中の前記サンプリング対象の画素をＸ、前記着目ブロック中の非サンプリング対象の画素をＸａ，Ｘｂ，Ｘｃと表わしたとき、
条件（ａ）：画素Ｘａ，Ｘｂ，Ｘｃの全てが、前記着目ブロック中の前記画素Ｘから復元できるか、
条件（ｂ）：前記画素Ｘａ，Ｘｂ，Ｘｃの全てが、前記着目ブロックに隣接する３つのブロックのサンプリング対象となる画素から復元できるか、
を判定する判定工程と、
該判定工程によって前記着目ブロックが前記条件（ａ）を満たすと判定された場合、第１の付加情報を前記着目ブロックの符号化データとして生成し、
前記判定工程によって、前記着目ブロックが前記条件（ａ）を満たさず、前記条件（ｂ）を満たすと判定された場合、前記第１の付加情報とは異なる第２の付加情報を前記着目ブロックの符号化データとして生成し、
前記判定工程によって、前記着目ブロックが前記条件（ａ）、（ｂ）のいずれも満たさないと判定された場合、前記第１、第２の付加情報とも異なる第３の付加情報を前記着目ブロックの符号化データとして生成する付加情報生成工程と
を有することを特徴とする画像符号化装置の制御方法。
【請求項１８】
画像データを圧縮符号化する画像符号化装置の制御方法であって、
符号化対象のオリジナル画像データから２×２画素で構成されるブロック内の、予め設定された位置の１つの画素データをサンプリングすることで、前記オリジナル画像データよりも小さいサイズの縮小画像データを生成し、出力する縮小画像生成工程と、
オリジナル画像データの中の水平方向に２Ｍ画素、垂直方向に２Ｎ画素（Ｍ、Ｎは２以上の整数）の画素データで構成されるタイルを入力する入力工程と、
入力したタイル中のＭ×Ｎ個のブロックそれぞれについて、前記縮小画像データを生成する際のサンプリング対象の画素を除く非サンプリング対象の３つ画素データを復元するための符号化データを、前記タイル単位に生成するタイル符号化工程とを有し、
前記タイル符号化工程は、
１つのブロック内の非サンプリング対象となった３画素の全てが当該ブロック内のサンプリング対象の画素から復元可能なブロックをフラットブロックと定義し、１つのブロック内の非サンプリング対象となった３画素の少なくとも１つが、当該ブロック内のサンプリング対象の画素から復元できないブロックをノンフラットブロックと定義したとき、
前記着目タイル内の全ブロックが前記フラットブロックであるか、少なくとも１つがノンフラットブロックであるかを判定し、当該判定結果を示すフラグ情報を出力する第１の判定工程と、
該第１の判定工程によって、前記着目タイル内の少なくとも１つが前記ノンフラットブロックであると判定した場合、前記着目タイル内の水平方向に並ぶＭ個のブロックで構成されるブロックラインを単位に、符号化するブロックライン符号化工程と有する
ことを特徴とする画像符号化装置の制御方法。
【請求項１９】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１乃至１６のいずれか１項に記載の画像符号化装置として機能させることを特徴とするコンピュータプログラム。
【請求項２０】
請求項１９に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化技術に関するものである。
【背景技術】
【０００２】
高解像度で広色域な画像データは、データ容量が膨大になり、メモリコストも膨大になり、画像処理やデータ転送などで時間がかかってしまうなど、データの扱いが困難になるという問題があった。そのため、従来、複数画素に対して、１つの色情報と、色の配置を表す情報を保持することで、オリジナル解像度の画像よりも、小さい容量のデータに変換する方法が提案されている（特許文献１）。
【０００３】
また、画像データの中の、文字画像部分と、写真画像部分を分離して、それぞれの画像に対して、縮小画像を生成する。そして、その情報を保持しておき、オリジナル解像度の画像を復元する場合には、着目している縮小画像の画素とその周辺画素から、復元対象画素を予測して復元する方法も提案されている（特許文献２）。
【特許文献１】特開２００１−３１３８３４号公報
【特許文献２】特開平１０−１７３９１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
解像度変換を行って生成された縮小画像に加えて、補間データを生成するような方法の場合、補間データには、少なくともオリジナル解像度の画像を再現するための、色情報と、その色を配置するための、配置情報とが必要となる。そのため、オリジナル解像度の画像の１画素に対して、少なくとも１つの配置情報を有することになり、補間データの符号量の削減効果は、１／（１画素分のデータ量）が限界である。
【０００５】
また、補間データを持たず、決まった法則により、復元対象画像の補間を行う方式においては、補間するデータは、推測された値にすぎず、オリジナル解像度の画像を可逆で再現できるわけではない。
【０００６】
本願発明は、上述の問題点に鑑みてなされたものである。そして、オリジナル画像データから縮小画像データを生成し、且つ、その縮小画像データに効率の良い符号化データを付加させることで、その縮小画像データからオリジナル画像データを復元することができる技術を提供しようとするものである。さらに、補間データを制御することで、可逆と非可逆の変換が容易に可能な技術を提供しようとするものである。
【課題を解決するための手段】
【０００７】
かかる課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像データを圧縮符号化する画像符号化装置であって、
符号化対象のオリジナル画像データから２×２画素で構成されるブロックを入力する入力手段と、
入力したブロック内の、予め設定された位置の１つの画素データをサンプリングすることで、前記オリジナル画像データよりも小さいサイズの縮小画像データを生成し、出力する縮小画像生成手段と、
前記縮小画像生成手段で生成された前記縮小画像データから前記オリジナル画像データを復元するため、各ブロック中の非サンプリング対象となった３つの画素データを復元するための符号化データを生成する符号化手段とを備え、
前記符号化手段は、
着目ブロック中の前記サンプリング対象の画素をＸ、前記着目ブロック中の非サンプリング対象の画素をＸａ，Ｘｂ，Ｘｃと表わしたとき、
条件（ａ）：画素Ｘａ，Ｘｂ，Ｘｃの全てが、前記着目ブロック中の前記画素Ｘから復元できるか、
条件（ｂ）：前記画素Ｘａ，Ｘｂ，Ｘｃの全てが、前記着目ブロックに隣接する３つのブロックのサンプリング対象となる画素から復元できるか、
を判定する判定手段と、
該判定手段によって前記着目ブロックが前記条件（ａ）を満たすと判定された場合、第１の付加情報を前記着目ブロックの符号化データとして生成し、
前記判定手段によって、前記着目ブロックが前記条件（ａ）を満たさず、前記条件（ｂ）を満たすと判定された場合、前記第１の付加情報とは異なる第２の付加情報を前記着目ブロックの符号化データとして生成し、
前記判定手段によって、前記着目ブロックが前記条件（ａ）、（ｂ）のいずれも満たさないと判定された場合、前記第１、第２の付加情報とも異なる第３の付加情報を前記着目ブロックの符号化データとして生成する付加情報生成手段とを備える。
【発明の効果】
【０００８】
本発明によれば、縮小画像データからオリジナル画像データを復元するための効率の良い符号化データを生成することができる。
【発明を実施するための最良の形態】
【０００９】
以下添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１０】
［第１の実施形態］
図２は、実施形態における画像処理装置のブロック図である。以下の説明から明らかになるが、本画像処理装置は、画像圧縮符号化にかかる構成と、復号にかかる構成が一体となっている例を説明するが、これらは別々の装置であっても構わない。
【００１１】
本実施形態の画像処理装置は、符号化対象となる画像データを外部から入力し、解像度変換を行うとともに、縮小画像からオリジナル解像度の画像を復元するための、付加情報を生成するものである。なお、画像データの入力源は、画像データをファイルとして格納している記憶媒体とするが、イメージスキャナ等であっても良く、その種類は問わない。
【００１２】
また、実施形態における符号化対象の画像データは輝度成分のみのモノクロ多値画像データとし、輝度成分は８ビット（０乃至２５５の２５６階調）として説明する。但し、これは実施形態の説明を簡単なものとするためであって、複数成分（例えば、ＲＧＢやＣＭＹＫ）でも構わず、その色空間の種類は問わない。また、１成分のビット数も８ビットに限らず、８ビットを超えるビット数でも構わない。更に、符号化対象の画像は水平方向に２×Ｗ画素、垂直方向２×Ｈ画素（共に偶数）により構成されるとして説明する。なお、実際の画像の水平、垂直方向のサイズは２の整数倍となるとは限らないが、その場合には、仮想的な固定値を有する画素が水平、垂直の末尾に存在するものとして処理すれば良いことを付言しておく。
【００１３】
以下、図２における画像符号化装置における符号化処理を説明する。
【００１４】
まず、画像入力部２０１から符号化対象となる画像データが順に入力される。本実施形態で処理対象とする画像データは、ＰＤＬレンダリング画像を対象とする。また、画素データの入力順序はラスタースキャン順とする。実施形態の場合、１画素＝１コンポーネントであり、そのコンポーネントは８ビットであるものしているので、画素値の取り得る範囲は０乃至２５５の範囲の非負の整数値である。画像の左上隅を座標（０，０）とし、水平右方向の画素位置ｘ、垂直下方向の画素位置ｙにある画素値をＰ（ｘ，ｙ）と表す。例えば、位置（ｘ、ｙ）＝（３，４）にある画素が、１２８という輝度値を持つ場合、Ｐ（３，４）＝１２８と表現する。また、以下の説明では、位置（ｘ、ｙ）の“画素”を表現する場合にも“Ｐ（ｘ，ｙ）”という表現を用いることとする。
【００１５】
解像度変換部２０２は、入力画像の２×２個の画素データで構成されるブロックデータ内から１画素を抽出するサブサンプリングを行い、縮小画像を生成する。すなわち、この解像度変換部２０２はオリジナルの画像データから、それよりもサイズの小さい縮小画像を生成する縮小画像生成部として機能する。
【００１６】
図３はオリジナル画像とその中の或るブロックＢｎに含まれる２×２画素を示している。図示の如く、着目ブロックＢnの中の画素を左上からラスター順に、Ｂn（０，０）、Ｂn（０，１）、Ｂn（１，０）、Ｂn（１，１）と表す。
【００１７】
着目ブロックＢnの１つ前のブロックをＢn-1、着目ブロックＢｎの次のブロックをＢn+1と表現することとする。本実施形態では、着目ブロックＢnのうち、Ｂn（０，０）の位置、すなわち、左上隅の位置の画素を抽出（サンプリング）し、縮小画像の１画素とする。画像中の全てのブロックＢ０〜ＢW*H-1についてサンプリングを行い、水平方向２Ｗ、垂直方向２Ｈ画素で構成されるオリジナル画像データから、水平方向Ｗ、垂直方向Ｈの縮小画像を生成する。すなわち、縮小画像に含まれる画素数は、オリジナルの画像に含まれる画素数の１／４となる。生成された縮小画像は、格納部２０４へ出力され、格納される。
【００１８】
補間データ生成部２０３は、縮小画像からオリジナル画像を復元するために必要な情報を生成する。１つのブロック内の１画素が縮小画像の１画素としてサンプリングされたわけであるから、そのブロックを復元するためには残りの、非サンプリング対象であった３画素を復元できればよい。そこで、本実施形態の補間データ生成部２０３は、ブロック単位に、そのブロック内の残りの非サンプリング対象の３画素がどのような値を持つのか、または、どのようにすれば復元できるのかを示す情報を符号化データとして生成する。
【００１９】
図４は１つのブロックに含まれる４つの画素を示している。ここで、図示の画素Ｘは縮小画像の画素にそのまま利用された画素を示し、画素Ｘａ，Ｘｂ，Ｘｃが復元対象となる画素を示している。以下、着目ブロックＢnのＢn（０，０）の位置の画素をＸと表現し、Ｂn（０、１），Ｂn（１，０），Ｂn（１，１）の位置を、それぞれＸａ，Ｘｂ，Ｘｃという表現を用いるものとする。
【００２０】
図１は、本実施形態における補間データ生成部２０３の処理の流れを示したフローチャートである。以下、図１のフローチャートに従って、本実施形態の補間データ生成部２０３の処理フローを説明する。
【００２１】
まず、ステップＳ１０１において、着目ブロックＢnに含まれる２×２個の画素と、着目ブロックＢnに隣接する３つのブロックからそれぞれ１画素を入力する。ここで、着目ブロックに隣接する３つのブロックとは、右隣に位置するブロックＢn+1、直下に位置するブロックＢn+W、斜め右下のブロックＢn+W+1である。そして、それぞれのブロックから入力する画素はＢn+1（０、０）、直下に位置するブロックＢn+W（０、０）、斜め右下のブロックＢn+W+1（０，０）である。すなわち、これら３つの画素は、縮小画像に利用される画素であることに注意されたい。
【００２２】
ステップＳ１０２で、パラメータｎを“０”で初期化する。このパラメータｎは、ブロックを特定するためのものである。
【００２３】
次いで、ステップＳ１０３では、着目ブロック内の４つの画素が互いに等しいか否かを判定する。すなわち、次式（１）を満足するか否かを判定する。
Ｂn（０，０）＝Ｂn（０，１）＝Ｂn（１，０）＝Ｂn（１，１）  …（１）
【００２４】
着目ブロックＢnが、式（１）の成立するブロックである場合（ＹＥＳ）には、縮小画像中の画素Ｘの値は、復元対象の画素Ｘａ、Ｘｂ、Ｘｃの値でもあることになる。そこで、このような場合には、処理をステップＳ１０５に遷移させる。
【００２５】
一方、着目ブロックＢnについて式（１）が成り立たないと判定した場合（ステップＳ１０３でＮＯの場合）、すなわち、着目ブロック中の画素Ｘから残りの３画素Ｘａ，Ｘｂ，Ｘｃを復元できないと判定した場合はステップＳ１０４へ遷移する。
【００２６】
ステップＳ１０４では、着目ブロックに隣接する３つのブロックＢn+1，Ｂn+W,Ｂn+W+1における画素Ｂn+1（０，０），Ｂn+W（０，０）,Ｂn+W+1（０，０）と、着目ブロック内の画素Ｂn（０，１），画素Ｂn（１，０），画素Ｂn（１，１）とを比較し、次式（２）が満たすか否かを判定する。
Ｂn（０，１）＝Ｂn+1（０，０）
且つ
Ｂn（１，０）＝Ｂn+W（０，０）
且つ
Ｂn（０，１）＝Ｂn+W+1（０，０）  …（２）
【００２７】
先に説明したように、画素Ｂn+1（０，０），Ｂn+W（０，０）,Ｂn+W+1（０，０）は、縮小画像を生成するために、それぞれのブロックＢn+1，Ｂn+W,Ｂn+W+1からサンプリングされた画素であることに注意されたい。
【００２８】
式（２）に示すように、ペア｛Ｂn（０，１）、Ｂn+1（０，０）｝、｛Ｂn（１，０）、Ｂn+W（０，０）｝、及び、｛Ｂn（０，１）とＢn+W+1（０，０）｝との一致／不一致を判定するのには、理由がある。
【００２９】
一般に、着目画素と、その着目画素の上下左右に位置する画素間の相関度は高いし、そのような画像が多い。そのため、着目画素の画素値を予測する場合には、その隣接する画素を予測のための参照画素として使用することが多い。しかし、ステップＳ１０４の判定では、「着目ブロック内の４つの画素が互いに等しい」ブロックは処理対象としないため、この場合にはペア｛Ｂn（０，１）、Ｂn+1（０，０）｝、｛Ｂn（１，０）、Ｂn+W（０，０）｝、及び、｛Ｂn（０，１）とＢn+W+1（０，０）｝の相関が高くなる可能性が高いことを実験により得られた。
【００３０】
この理由で、Ｂn（０，１）とＢn+1（０，０）とが一致するか否かを判定するようにした。他のペア｛Ｂn（１，０）、Ｂn+W（０，０）｝、及び、｛Ｂn（０，１）とＢn+W+1（０，０）｝を比較するのも同じ理由である。そして、先に示した式（２）が満たされる場合（３つのペアが互いに等しい場合）、短い符号語を割り当てることで情報量の削減できた。
【００３１】
さて、ステップＳ１０４にて、式（２）の成立すると判定した場合、着目ブロックＢn内の画素Ｘａ、Ｘｂ、Ｘｃは、縮小画像の画素からそのまま再現できることになる。なぜなら。画素Ｘａは、縮小画像の画素Ｘn+1（ｎ＝０、１，…、Ｗ×Ｈ−１）を用いれば再現できる。画素Ｘｂは、縮小画像の画素Ｘn+Wを用いれば再現できる。そして、画素Ｘｃは、縮小画像の画素Ｘn+W+1を用いれば再現できる。
【００３２】
但し、着目ブロックＢnが画像の右端に位置するとき、画素Ｂn（０、１）、Ｂn(１、１）と比較する対象画素は存在しない。また、着目ブロックＢnが画像の下端に位置するとき、画素Ｂn（１、０）、Ｂn(１、１）と比較する対象画素は存在しない。特に、着目ブロックＢnが画像の右下隅に位置する場合には、画素Ｂn（０、１）、Ｂn(１、０）、Ｂn(１、１）と比較する対象画素が存在しない。このように、存在しない画素の値は適当な値、例えば“２５５”であるものとして比較する。なお、この値は、復号装置と共通な値になっていればよいので、０乃至２５５の範囲内であれば、どのような値であっても構わない。
【００３３】
以上のように、式（２）の判定を行った結果、条件が成立する場合（ＹＥＳ）には、ステップＳ１０６へ処理を遷移する。
【００３４】
さて、着目ブロックＢnについて式（１）、式（２）のいずれも成立しない場合、着目ブロックのＸａ，Ｘｂ，Ｘｃを、縮小画像からは復元できないことになる。この場合、処理はステップＳ１０７へ遷移する。
【００３５】
ステップＳ１０５は、着目ブロックに対して、第１の付加情報を符号化データとして出力する。第１の付加情報は、オリジナル画像を復元する際に、縮小画像の着目画素から３つの画素を生成する、すなわち、「単純拡大する」という情報を示せば良い。そのため、図５に示すように、“１”の１ビットを第１の付加情報を出力する。
【００３６】
なお、復号装置側にて、実際に縮小画像からオリジナル画像まで拡大した画像を生成する場合、縮小画像中の着目画素をＰ（ｘ、ｙ）とするなら、拡大後の着目ブロックＢnの画素Ｘ、Ｘａ，Ｘｂ，Ｘｃは次のようにして求めればよい。
Ｘ＝Ｘａ＝Ｘｂ＝Ｘｃ＝Ｐ（ｘ，ｙ）
【００３７】
ステップＳ１０６は、着目ブロックに対して、第２の付加情報を符号化データとして出力する。第２の付加情報は、オリジナル解像度を復元する際に、縮小画像の着目画素の隣接する３つの画素を利用することを示せばよい。この場合、図５に示すように、“０１”の２ビットのデータを第２の付加情報（符号化データ）として出力する。
【００３８】
実際に縮小画像からオリジナル画像まで拡大した画像を生成する場合、縮小画像中の着目画素をＰ（ｘ、ｙ）とするなら、拡大後の着目ブロックＢnの画素Ｘ、Ｘａ，Ｘｂ，Ｘｃは次のようにして求めればよい。
Ｘ＝Ｂn（０，０）＝Ｐ（ｘ，ｙ）
Ｘａ＝Ｂn（０，１）＝Ｐ（ｘ＋１，ｙ）
Ｘｂ＝Ｂn（１，０）＝Ｐ（ｘ，ｙ＋１）
Ｘｃ＝Ｂn（１，１）＝Ｐ（ｘ＋１，ｙ＋１）
【００３９】
ステップＳ１０７に処理が進んだ場合、着目ブロックＢnの画素Ｘａ，Ｘｂ，Ｘｃは縮小画像から再現できないことを意味する。そこで、本第３の実施形態では、第３の付加情報を出力する。第３の付加情報は、図５に示すように、上記第１、第２の付加情報と区別できるようにするため、先頭の２ビットを“００”とし、これに後続してＢn（０，１）、Ｂn（１，０）、Ｂn（１，１）の画素値の２４ビットを出力する。
【００４０】
なお、実施形態では、第１乃至第３の付加情報が図５に示すものとして説明したが、これは一例である。要するに、第１の付加情報を１ビットとしたとき、第２の付加情報は第１の付加情報とは異なる値のビットで始まる２ビットとそればよい。そして、第３の付加情報は第２の付加情報の１ビット目が同じで２ビット目が異なる２ビット＋３画素分のデータで構成されるようにすればよい。
【００４１】
以上の処理の流れにより、着目ブロックに対して、第１、第２、第３のいずれかの付加情報を出力する。
【００４２】
ステップＳ１０８では、着目ブロックが最終ブロック（画像の右下隅のブロック）であるか否かを判断し、否の場合にはステップＳ１０９にて変数ｎを“１”だけ更新し、ステップＳ１０３に処理を戻る。また、ステップＳ１０８で、着目ブロックが最終ブロック（画像の右下隅のブロック）であると判断した場合には、本処理を終了する。
【００４３】
以上の方法で、オリジナル解像度の画像を復元可能な付加情報を生成することができる。つまり、実施形態における補間データ生成部２０３を別な言い方をすれば上記の第１乃至第３の付加情報を生成する付加情報生成部ということができる。
【００４４】
具体的な処理を、図６（ａ），（ｂ）に示す画像の例で説明する。
【００４５】
図６（ａ）の画像の場合、まず、ブロックＢ0に着目すると、Ｂ0（０，０）＝Ｂ0（０，１）＝Ｂ0（１，０）＝Ｂ0（１，１）が成立するため、第１の付加情報“１”を出力する。続くブロックＢ1、Ｂ2、Ｂ3に関しても、ブロックＢ0と同様に、式（１）が成り立つため、全てのブロックに対して、第１の付加情報を出力すれば良い。４つのブロックに対する付加情報の列（補間データ）は“１１１１”の４ビットとなる。
【００４６】
従って、図６（ａ）の場合、縮小画像は２×２画素となり、縮小画像のデータサイズは４×８ビットである。従って、縮小画像とその付加情報のデータ量は４×８＋４＝３６ビットとなる。オリジナル画像が１２８ビット（＝４×４×８）であるから、３６／１２８＝９／３２に圧縮されることになる。
【００４７】
一方、図６（ｂ）の画像データの場合、ブロックＢ0に着目すると、Ｂ0（０，０）≠Ｂ0０（０，１）≠Ｂ0（１，０）≠Ｂ0（１，１）であり、式（１）は成立しない。
【００４８】
しかし、Ｂ0（０，１）＝Ｂ1０（０，０）、Ｂ0（１，０）＝Ｂ2（０，０）、Ｂ0（１，１）＝Ｂ3（０，０）を満たす。つまり、式（２）を満たす。従って、着目ブロックＢ0に対しては第２の付加情報（“０１”の２ビット）を出力する。
【００４９】
続いて、着目ブロックがＢ1へ移った場合について考察する。この場合、着目ブロックＢ1について、Ｂ1（０，０）＝Ｂ1（０，１）≠Ｂ1（１，０）＝Ｂ1（１，１）であるので、処理を周囲画素との一致／不一致判定へ移すことになる。すなわち、式（２）について検証することになる。
【００５０】
着目ブロックＢ1は、画像の右端に位置するため、周囲画素を参照する場合には、予め定められた画素値（実施形態では“２５５”）との比較を行う。比較を行った結果、Ｂ1（０，１）≠２５５、Ｂ1（１，０）＝Ｂ3（０，０）、Ｂ1（１，１）≠２５５であるため、第２の付加情報では再現できない。そのため、第３の付加情報を出力する。すなわち、第３の付加情報として、２ビット“００”と、それに後続して３画素分の画素データを示す２４ビットのデータが出力される。
【００５１】
ブロックＢ2、Ｂ3についても同様の処理を行う。ブロックＢ2は式（１）、（２）のいずれも満たさないため、第３の付加情報が出力される。そして、ブロックＢ3は式（１）を満たすので、第１の付加情報が出力される。
【００５２】
図６（ｂ）の場合、全てのブロックを処理した結果、補間データ生成部２０３が出力する補間データは図７に示すようなデータ構造となる。図７に示したデータ構造はあくまでも一例であり、補間データには、少なくとも、１ブロックに対して、第１、第２、第３いずれかの付加情報が含まれていればよい。
【００５３】
格納部２０４には、上記のように、解像度変換部２０２により生成された縮小画像データ、及び、補間データ生成部２０３によって生成された補間データが格納される。
【００５４】
画像展開部２０５は、格納部２０４に格納されている、縮小画像データと、補間データから、オリジナル解像度の画像の復元処理を行う。画像の展開は、補間データの生成処理と逆の処理を行えばよい。つまり、補間データを解析し、解析した付加情報から、次の３つのいずれかに基づき、縮小画像の着目画素からブロック内の未知の３画素Ｘａ，Ｘｂ，Ｘｃを得る。
（１）縮小画像中の着目画素を単純拡大して得る。
（２）縮小画像中の着目画素の隣接画素から得る。
（３）補間データ中に含まれている、画素値から得る。
【００５５】
具体的には、縮小画像中の着目画素Ｐ（ｘ，ｙ）に対する付加情報が“１”であった場合には、縮小画像の着目画素をそのまま画素Ｘａ，Ｘｂ，Ｘｃとして使用してブロックを復元する。
【００５６】
また、縮小画像中の着目画素Ｐ（ｘ，ｙ）に対する付加情報が“０１”であった場合には、画素Ｘａを画素Ｐ（ｘ＋１、ｙ）で再現し、画素Ｘｂを画素Ｐ（ｘ，ｙ＋１）で再現し、画素Ｘｃを画素Ｐ（ｘ＋１，ｙ＋１）で再現する。ただし、着目画素Ｐ（ｘ，ｙ）が画像の右端に位置する場合、Ｘａ＝２５５、Ｘｃ＝２５５である。また、着目画素Ｐ（ｘ，ｙ）が画像の下端に位置する場合、Ｘｂ＝２５５、Ｘｃ＝２５５である。特に、着目画素Ｐ（ｘ，ｙ）が画像の右下隅に位置する場合、Ｘａ＝Ｘｂ＝Ｘｃ＝２５５である。
【００５７】
そして、縮小画像中の着目画素Ｐ（ｘ，ｙ）に対する付加情報が“００”であった場合には、その付加情報に後続する３バイト（２４ビット）が、画素Ｘａ，Ｘｂ，Ｘｃの順に並んでいるものして再現する。
【００５８】
上記の処理を繰り返すことで、オリジナル解像度の画像データが復元できる。復元されたオリジナル解像度の画像は、画像出力部２０６へ入力される。
【００５９】
画像出力部は、画像展開部２０５から出力された画像を受け取り、本画像処理装置の外部（例えばプリンタや表示装置）へ復元画像データを出力する。
【００６０】
以上のように、本実施形態の画像処理装置では、入力画像を解像度変換するのと同時に、縮小画像からオリジナル解像度の画像を復元するための補間データを生成する。本実施形態の符号化処理によれば、オフィス系の文書画像（文字や線画のみの画像）に対して、補間データのデータ量を少なく、簡易に生成することが可能であり、オリジナルの解像度の画像を完全に可逆で復元可能である。
【００６１】
また、実施形態では、画像の符号化と復号の両方の機能を持つ１つの装置に適用する例を示したが、これらは別々の装置であっても構わない。画像符号化装置を単体に適用する場合、縮情報画像データと補間データとを１つのファイルにして出力すればよい。復号する単体の装置は、そのファイルから先ず縮小画像をメモリに展開し、その後で補間データに従ってオリジナルの画像を復元（復号）すればよい。これ以上についての説明は不要であろう。
【００６２】
以上で第１の実施形態の説明を終えるが、本実施形態ではオリジナル画像からサンプリングによって、水平、垂直方向とも１／２の縮小画像を生成し、その際に補間データを生成した。この縮小画像をオリジナル画像として再帰的に入力することを繰り返してもよい。この場合、オリジナル画像の第１段階の縮小画像と第１段階の補間データが得られる。そして。その第１段階の縮小画像から第２段階の縮小画像（オリジナルに対して水平、垂直とも１／４のサイズ）と第２段階の補間データが得られ、…、第ｎ段階の縮小画像と第ｎ段階の避寒データが得られる。結局のところ、第ｎ段階の縮小画像＋第ｎ段階の補間データ＋第ｎ−１段階の補間データ＋…＋第１段階の補間データが生成されることになり、いくつもサイズの画像を可逆再現可能な符号化データを生成することができることになる点で着目される。
【００６３】
なお、上記実施形態では、縮小画像の生成のためのサンプリング対象をブロックの左上隅の画素とする例を説明したが、サンプリング対象が２×２画素のいずれの位置であっても良い。
【００６４】
第１の付加情報については説明するまでもないであろう。第２の付加情報を生成するとき、仮に、上記と同様に、着目ブロック中の右下隅の画素Ｘをサンプリング対象にし、残りの３画素をＸａ，Ｘｂ，Ｘｃと表わしたとする。そして、画素Ｘａを復元するために参照する隣接ブロック内の前記画素Ｘａに隣接するサンプリング対象となる画素をＸ１、画素Ｘｂを復元するために参照する隣接ブロック内の前記画素Ｘｂに隣接するサンプリング対象となる画素をＸ２、画素Ｘｃを復元するために参照する隣接ブロック内の前記画素Ｘｃに隣接するサンプリング対象となる画素をＸ３と定義したとき、
Ｘａ＝Ｘ１  且つ、
Ｘｂ＝Ｘ２  且つ、
Ｘｃ＝Ｘ３
を満たす場合、第２の付加情報を生成するようにすればよい。
【００６５】
［第１の実施形態の変形例］
上記第１の実施形態と同等の処理を、コンピュータプログラムによって実現する例を第１の実施形態の変形例として以下に説明する。
【００６６】
図１４は、本変形例における情報処理装置（例えばパーソナルコンピュータ）のブロック構成図である。
【００６７】
図中、１４０１はＣＰＵで、ＲＡＭ１４０２やＲＯＭ１４０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。１４０２はＲＡＭで、外部記憶装置１４０７や記憶媒体ドライブ１４０８、若しくはＩ／Ｆ１４０９を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備える。また、ＲＡＭ１４０２は、ＣＰＵ１４０１が各種の処理を実行する際に使用するワークエリアも備える。１４０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。１４０４、１４０５は夫々キーボード、マウスで、ＣＰＵ１４０１に対して各種の指示を入力することができる。
【００６８】
１４０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。１４０７はハードディスクドライブ装置等の大容量の外部記憶装置である。この外部記憶装置１４０７には、ＯＳ（オペレーティングシステム）や後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどがファイルとして保存されている。また、ＣＰＵ１４０１は、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードし、実行することになる。
【００６９】
１４０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ１４０２や外部記憶装置１４０７に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。この場合、記憶媒体ドライブ１４０８は、ＣＰＵ１４０１による制御によって、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードする。
【００７０】
１４０９はＩ／Ｆで、このＩ／Ｆ１４０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ１４０２や外部記憶装置１４０７、あるいは記憶媒体ドライブ１４０８に入力することもできる。１４１０は上述の各部を繋ぐバスである。
【００７１】
上記構成において、本装置の電源がＯＮになると、ＣＰＵ１４０１はＲＯＭ１４０３のブートプログラムに従って、外部記憶装置１４０７からＯＳをＲＡＭ１４０２にロードする。この結果、キーボード１４０４、マウス１４０５の入力が可能となり、表示装置１４０６にＧＵＩを表示することが可能になる。ユーザが、キーボード１４０４やマウス１４０５を操作し、外部記憶装置１４０７に格納された画像符号化処理用アプリケーションプログラムの起動の指示を行なうと、ＣＰＵ１４０１はそのプログラムをＲＡＭ１４０２にロードし、実行する。これにより、本装置が画像符号化装置として機能することになる。この場合の符号化アプリケーションは、指定された画像データから先に説明したブロック単位に１画素をサンプリングして縮小画像を生成する処理と、補間データ生成処理（図１のフローチャート）に示した処理を行なう。そして、その結果を１つのファイルとしてハードディスク等の記憶装置に格納したり、外部装置もしくはネットワーク上に転送すればよいであろう。
【００７２】
［第２の実施形態］
上記第１の実施形態では、サンプリングを行なう単位を２×２画素で構成されるブロックとし、選択的に付加情報を決定し、補間データを生成するものであった。この場合、最小の場合に、３画素に対して１ビットの符号語（第１の付加情報）が割り当てられる。第２の実施形態では、第１の実施形態を更に発展させ、更に符号化効率を上げる例を説明する。
【００７３】
なお、本第２の実施形態においても、符号化対象の画像データは、説明を簡単にするために、モノクロ多値画像データとし、１画素当たり８ビット（２５６階調）として説明する。ただし、符号化対象の画像データは複数の色成分（ＲＧＢやＹＭＣＫ、Ｌａｂ）でも良く、１つの成分を表わすビット数も８ビットに限らない。複数色成分が存在する場合には、各成分について同様の処理を行なえば良いだけである。
【００７４】
また、本第２の実施形態における「ブロック」とは、第１の実施形態と同様に２×２画素を表わす。そして、「タイル」とは、水平方向にＭ個、垂直方向にＮ個（ともに２以上の整数）のブロックのサイズであるものとする。説明を簡単なものとするため。１タイルはＭ＝Ｎ＝８とする。すなわち、１タイルは１６×１６画素のサイズであるものとする。また、説明を簡単なものとするため、符号化対象の画像データの水平方向の画素数を１６Ｗ、垂直方向の画素数を１６Ｈ、つまり、共に１６の整数倍であるものとして説明する。
【００７５】
図８に、本第２実施形態に係る画像符号化装置のブロック図を示す。図２と異なる点は、補間データ生成部２０３の前にタイル分割部８０１を設け、補間データ生成部２０３の後に、付加情報統合部８０２を設けた点である。これ以外は第１の実施形態と同じであるので、その説明は省略する。
【００７６】
タイル分割部８０１は画像入力部２０１から入力した画像データを１６×１６画素のタイルに分割し、そのタイルの画像データを補間データ生成部２０３に出力する。なお、補間データ生成部２０３は、タイル内の補間データを生成する際に、タイルの外側画素データを参照するので、タイル分割部８０１は、タイルの右側に１列分、タイルの下端に１ライン分だけ多い画素データを補間データ生成部２０３に出力する。そして、この１列、１ラインにおける画素データは、タイル分割部８０１がタイル単位の出力にてオーバーラップする部分でもある。
【００７７】
補間データ生成部２０３は、２×２画素を単位に入力し、第１実施形態で説明した手順で、補間データの生成の生成処理を行なう。
【００７８】
付加情報統合部８０２は、補間データ生成部２０３からの符号化データ入力部として機能するものである。そのため、付加情報統合部８０２は内部にバッファメモリを有する。そして、付加情報統合部８０２は、補間データ生成部２０３で生成された符号化データ（補間データ）を入力し、その内部バッファに一時的に格納し、１タイル分、すなわち、８×８個の補間データを解析し、補間データの統合処理を行なう。以下、この付加情報統合部８０２の処理内容をより詳しく説明する。
【００７９】
まず、付加情報統合部８０２は、入力された着目タイルに内包される８×８個の付加情報を解析する。そして、その解析結果に基づき、以下に示す第１統合処理、第２統合処理を実行する。
【００８０】
＜第１の統合処理＞
この処理は、着目タイル内の８×８個の付加情報が互いに等しい場合の処理である。付加情報の種類は、第１の実施形態で説明したように、第１，第２、第３の付加情報の３種類である。そこで、８×８個の付加情報が互いに等しい場合、それらを統合する。例えば、着目タイル内の８×８個の付加情報が同じである場合には、先頭に互いに等しいことを示す１ビットの識別ビット“１”を出力する。そして、それに後続して付加情報を出力し、着目タイルの統合処理を終える。従って、この識別ビットは統合できたか否かを示すフラグ情報ということもできる。
【００８１】
従って、もし着目タイル内の８×８個のブロックの付加情報が第１の実施形態における第１の付加情報である“１”であった場合には、着目タイルの統合結果は２ビットの“１１”となる。また、着目タイル内の８×８個のブロックの付加情報が第１の実施形態における第２の付加情報である“０１”であった場合には、着目タイルの統合結果は３ビットの“１０１”となる。そして、着目タイル内の全ブロックが第３の付加情報である場合には、着目タイルの統合結果は３ビットの“１００”となる。
【００８２】
ここで、着目タイル内の全ブロックの付加情報が第３の付加情報であった場合、統合結果を示す３ビット“１００”に後続して、各ブロック内の画素値を出力する（各ブロックの付加情報は不要である）。実施形態では、１タイル＝８×８個のブロックとしている。各ブロックの復元対象の画素は３つであるので（図４参照）、８×８×３画素（バイト）が後続することになる。
【００８３】
上記の如く、着目タイル内の８×８個のブロックの付加情報が全て等しい場合には、上記の処理で、着目タイルの付加情報の統合処理を終える（以降に説明する第２統合処理は行なわない）。
【００８４】
一方、着目タイル内の８×８個の付加情報中、１つでも異なるものがあった場合には、その旨を示す識別ビット“０”を出力し、次に説明する第２統合処理を行なう。
【００８５】
＜第２の統合処理＞
この第２統合処理は、タイル内の全付加情報中に、少なくとも１つの付加情報が他と異なる場合の処理である。換言すれば、上記タイルのサイズより小さければ、その小さい領域にて付加情報を統合できる可能性があることになる。そこで、本第２の実施形態では、１つのタイルには８×８個の付加情報が含まれることに着目し、これを水平方向に並ぶ８つの付加情報を単位に統合処理を行なうようにした。以下、この水平方向に並ぶ８つの付加情報をライン付加情報という。
【００８６】
本第２の統合処理では、着目ライン付加情報に含まれる８つの付加情報が互いに等しいか否かを判定する。そして、互いに等しい場合には、それを識別する１ビットの識別ビット“１”を出力し、その後に等しいと判定された付加情報を１つ出力する。一方、着目ライン付加情報に含まれる８つの付加情報中、１つでも異なるものが存在した場合、１ビットの識別ビット“０”を出力し、それに後続して８つの付加情報を出力する。
【００８７】
着目タイルは、８つのライン付加情報で構成されるものであるので、上記処理を最上段から最下段に向かって８回行なえばよい。
【００８８】
以上本第２の実施形態における付加情報統合部８０２の処理を説明した。
【００８９】
図９は、本第２の実施形態における付加情報統合部８０２の統合処手順を示すフローチャートである。以下、図９のフローチャートに従って、本実施形態の付加情報統合部８０１の処理を説明する。
【００９０】
まず、補間データ生成部２０３で生成された着目タイルに包含される８×８個の付加情報を入力する（ステップＳ９０１）。
【００９１】
次いで、入力された付加情報を解析し、８×８個の全付加情報（全符号化データ）が同じ種類（１種類）であるか否かを判定する（ステップＳ９０２）。判定の結果、全て同じ種類の付加情報である場合（ＹＥＳ）は、ステップＳ９０３へ処理を遷移させる。ステップＳ９０３は、着目タイルの付加情報を１つに統合したことを示す１ビットのフラグ”１”を出力する。そして、ステップＳ９０４にて、そのフラグに後続して、１つの付加情報を出力する。なお、全て同じと判断された付加情報が第３の付加情報である場合には、第３の付加情報に後続して、８×８×３個の画素データを出力する。
【００９２】
一方、ステップＳ９０２にて、ＮＯと判定された場合、すなわち、着目タイルに包含される８×８個の付加情報中に、少なくとも２種類の付加情報が存在する場合、処理はステップＳ９０５に進む。このステップＳ９０５では、着目タイルの付加情報の非統合を示す１ビットのフラグ“０”を出力する。そして、ステップＳ９０６乃至Ｓ９１１にて、着目タイルよりも更に小さいサイズを単位とする統合処理を行なう。実際では、このサイズを水平方向に並ぶ８個の付加情報で構成されるブロックラインについてのブロックライン統合処理である。
【００９３】
先ず、ステップＳ９０６では、着目ライン付加情報（初期段階では着目タイルの最上位のラインの付加情報）に含まれる８つの付加情報が全て同じであるか否かを判断する。同じであった場合には、そのラインの付加情報を統合できるので、ステップＳ９０７にて統合されたことを示す１ビットのフラグ“１”を出力し、ステップＳ９０８にて、同じであると判定した付加情報を１つ出力する。なお、同じであると判定された付加情報が第３の付加情報である場合には、その付加情報に後続して８×３画素分の画素データを出力する。
【００９４】
また、ステップＳ９０６にて、着目ライン（初期段階では着目タイルの最上位のライン）の全付加情報中に、１つでも他と異なる付加情報が存在したと判断した場合は、ステップＳ９０９に進む。このステップＳ９０９では、そのラインの付加情報を統合できなかったことを示す１ビットのフラグ“０”を出力する。そして、ステップＳ９１０にて、８つの付加情報を出力する（第３の付加情報が存在する場合には、その第３の付加情報に後続して３個の画素データが並ぶ）。
【００９５】
ステップＳ９１１では、着目タイルの最終ラインまで統合処理を終えたか否かを判断し否の場合には、次のラインの統合処理を行なうため、ステップＳ９０６に処理を戻す。
【００９６】
上記のようにして着目タイルについての統合処理を終えると、ステップＳ９１２にて、全タイルについての統合処理を終えたか否かを判断し、否の場合には、ステップＳ１に戻りつぎのタイルの付加情報についての統合処理を行なう。
【００９７】
ここで１つのタイルの付加情報の統合処理の例を図１０（ａ）乃至（ｃ）に従って説明する。
【００９８】
図１０（ａ）は１つのタイルの画像データを示している。破線で囲まれた１つの格子が１画素を示している。
【００９９】
図示では、第１ラインから第９ラインまでの領域が同じ値の白画素で構成されていることを示している。また、第１０、第１１ラインの領域が同じ値の黒画素で構成され、第１２ラインから第１６ラインまでの領域は同じ値の白画素で構成されている例を示している。図示の例は、文字や線画の画像の場合に多く見られるパターンでもある。
【０１００】
この図１０（ａ）のタイルの画像データを入力したときに、補間データ生成部２０３が生成する各ブロックの付加情報の値を示すのが図１０（ｂ）である。
【０１０１】
図１０（ｂ）の通り、このタイル内の全付加情報は同じではない。従って、図１０（ｃ）に示すように、タイル統合が不可であったことを示すフラグ“０”を出力する（図９のステップＳ９０５）。
【０１０２】
次に、最初のライン付加情報を見ると、８個の付加情報は“１”である。従ってライン統合が可能であるので、フラグ“１”を出力し、その後に付加情報“１”を出力する。以下、これを繰り返すことになる。
【０１０３】
図１０（ａ）のタイル画像の場合、結局のところ、このタイルに対する付加情報統合部８０１が出力する付加情報の統合結果は、図１０（ｃ）に示す通りとなり、つぎのようなビット配列となる。
“０；１１；１１；１１；１１；１０１；１０１；１１；１１”
なお、ここでセミコロンは、理解を容易にするために、ライン付加情報の統合の区切りを示したものであり、実際は存在しない点に注意されたい。
【０１０４】
図１０（ａ）のタイルには８×８個のブロックが含まれ、各ブロックには復元すべき３画素が存在することになるので、１タイル内に含まれる復元すべき画素数は８×８×３画素存在する。すなわち、１タイルにおける復元すべき画素の総ビット数は８×８×３×８ビット＝１５３６ビットである。
【０１０５】
図１０（ｂ）の付加情報の場合、１ビットの付加情報が全部で４８個、２ビットの付加情報が全部で１６であるので、１タイルの付加情報の総ビット数は４８＋１６×２ビット＝８０ビットである（第１の実施形態に相当する）。
【０１０６】
そして、図１０（ｃ）の場合、すなわち、第２の実施形態における１タイルの付加情報の統合後の総ビット数はフラグビットを含めて、１９ビットとなり、大幅に補間データのデータ量を削減可能であることがわかる。
【０１０７】
以上説明したように本第２の実施形態によれば、補間データ生成部で生成された、２×画素のブロック毎の付加情報に対して、予め定められた単位毎に連続しているか否かの判定を行う。付加情報が連続していれば、連続している付加情報を統合することで、補間データのデータ量を大幅に削減することが可能である。また、付加情報が連続していなければ、更に小さい単位毎に連続性を判定し、どうように統合処理を行なう。また、付加情報の連続性を調査するだけなので、統合処理のために、画像を再度スキャンする必要はなく、補間データ生成の処理時間が低下することはない。
【０１０８】
なお、本第２の実施形態と同等の処理をコンピュータプログラムでもって実現できることは、先に説明した第１の実施形態の変形例から明らかであるので、その説明については省略する。
【０１０９】
［第３の実施形態］
上記第１、第２の実施形態では、１つのブロック（２×２画素）に対し、第１と第２と第３の付加情報のいずれか１つを割り当て、そのブロックの補間データを生成した。本第３の実施形態では、付加情報の種類を３種類に限定しないで、補間データを生成する例を説明する。
【０１１０】
なお、本第３の実施形態でも、符号化処理対象の画像データはモノクロ多値画像データとするが、ＲＧＢ画像データや、ＣＭＹＫカラー画像データに適用しても良い。また、画像は水平方向が１６Ｗ画素、垂直方向が１６Ｈ画素により構成されるものとする（水平、垂直とも１６の整数倍とする）。
【０１１１】
図１１に、本第３の実施形態に係る画像符号化装置のブロック構成図を示す。第１、第２の実施形態で説明した図１、図８と共通するブロックについては同じ番号を付し、その説明については省略する。
【０１１２】
以下、第２の実施形態と動作の異なる部分について説明する。
【０１１３】
先に説明した第２の実施形態では、２×２画素のブロックに対する付加情報を生成した後に、付加情報の統合処理を行う場合の説明を行った。これに対し、本第３の実施形態においては、付加情報の生成の単位を適応的に変えながら補間データを生成する方法について説明を行う。そのため、図８の付加情報統合部８０２はなくなり、代りに、第１、第２の実施形態における補間データ生成部２０３に変わって、本第３の実施形態の補間データ生成部１１０１を設けた。
【０１１４】
図１２は、本第３の実施形態に係る、補間データ生成部１１０１のブロック構成図を示す。この補間データ生成部１１０１はフラット判定部１２０１、ノンフラットブロック解析部１２０２で構成される。
【０１１５】
なお、以下の説明で縮小画像中の画素Ｘから、Ｘａ，Ｘｂ，Ｘｃ（図４参照）として復元できるブロックを“フラットブロック”と呼ぶ。換言すれば、ブロック内の２×２画素が互いに等しい値（同色）であるブロックをフラットブロックと呼ぶ。また、ブロック内の２×２画素の中に、他とは異なる画素値を持つものが少なくとも１つ存在するブロックをノンフラットブロックと呼ぶ。そして、タイル内の全ブロックがフラットブロックである場合、そのタイルをフラットタイルと呼ぶ。そして、タイル内に少なくとも１つのノンフラットブロックが存在する場合、そのタイルをノンフラットタイルと呼ぶことにする。また、１つのタイル中の水平方向に並ぶ８つのブロックをブロックラインと呼ぶ。そして、ブロックライン中の８つのブロックが全てフラットブロックである場合、そのブロックラインをフラットブロックラインと呼び、１つでもノンフラットブロックを含むブロックラインをノンフラットブロックラインと呼ぶこととする。また、本第３の実施形態では、タイル外の周囲画素を参照する場合には、そのタイル外の画素の値は“２５５”であるものとして説明する。
【０１１６】
フラット判定部１２０１は、水平方向に２Ｍ画素、垂直方向に２Ｎ画素で構成されるタイル単位に画像データを入力して符号化するタイル符号化部として機能する。説明を簡単なものとするため、Ｍ＝Ｎ＝８とする。そして、フラット判定部１２０１は、入力したタイル（１６×１６画素）中のそれぞれのブロック（２×２画素）に着目し、その中の縮小画像に利用された画素Ｘを除く他の画素Ｘａ，Ｘｂ，Ｘｃが、縮小画像中の画素Ｘから単純に復元できるか否かを判定する。そして、フラット判定部１２０１は、この判定結果に基づく処理を行なう。
【０１１７】
ノンフラットブロック解析部１２０２は、フラット判定部１２０１の判定結果に基づき、ブロック内に存在する色数や配置に従って付加情報を生成し、出力する。
【０１１８】
以下、フラット判定部１２０１の処理内容を説明した後、ノンフラットブロック解析部１２０２の処理内容を説明する。
【０１１９】
＜フラット判定部の説明＞
図１３はフラット判定部１２０１の処理手順を示すフローチャートである。
【０１２０】
フラット判定部１２０１は、ステップＳ１３０１にて、１タイル分の画像データ（タイルデータ）を入力する。そして、入力したタイルデータ中の各ブロックについてフラットブロックであるか、ノンフラットブロックであるかの判定処理を行なう。
【０１２１】
ステップＳ１３０２では、入力した着目タイルがフラットタイルであるか否かを判定する（第１の判定処理）。入力したタイル内の８×８個の全ブロック（各ブロックは２×２画素）がフラットブロックであるか否かを判定する、と言い換えても良い。
【０１２２】
着目タイルがフラットタイルであると判定した場合、縮小画像中の８×８画素の画像データから１６×１６画素の画像データを単純に生成することができることを意味する。従って、ステップＳ１３０３に処理を進め、着目タイルがフラットタイルであることを示す１ビットのフラグ”１”をノンフラットブロック解析部１２０２に出力する。
【０１２３】
一方、ステップＳ１３０２にて、着目タイルがノンフラットタイルであると判定した場合、処理はステップＳ１３０４に進み、先ず、ノンフラットタイルであることを示すフラグ“０”をノンフラットブロック解析部１２０２に出力する。この後、ステップＳ１３０５以降では、着目タイル内のブロックライン単位とするブロックライン符号化処理を行なう。以下に説明するブロックライン単位の符号化処理は、着目タイルの最上位から最下位に位置するブロックラインに向かって順次処理するものである点に注意されたい。
【０１２４】
先ず、ステップＳ１３０５では、タイルの最上位の（第１番目の）ブロックラインに着目し、それがフラットブロックラインであるか否かを判定する（第２の判定処理）。水平方向に並ぶ８つのブロックの全てがフラットブロックであるか否か判定する、と言い換えても良い。
【０１２５】
着目ブロックラインがフラットブロックラインであると判断した場合、縮小画像中の水平方向に並ぶ８つの画素データから、水平方向１６画素、垂直方向２画素の矩形領域の画像データが単純に復元できることを意味する。従って、ステップＳ１３０６にて、着目ブロックラインがフラットブロックラインであると示すフラグ“１”をノンフラットブロック解析部１２０２に出力する。
【０１２６】
また、ステップＳ１３０５にて、着目ブロックラインがノンフラットブロックラインであると判定した場合、処理はステップＳ１３０７に進む。このステップＳ１３０７では、着目ブロックラインがノンフラットブロックラインであることを示すフラグ“０”をノンフラットブロック解析部１２０２に出力する。そして、ステップＳ１３０８に処理を進める。
【０１２７】
ステップＳ１３０８に処理が進んだ場合、着目ブロックラインには少なくとも１つのノンフラットブロックが混在していることを意味する。そこで、このステップＳ１３０８では、着目ブロックラインにおけるフラットブロック、ノンフラットブロックの並びが、着目ブロックライン以前にノンフラットブロックラインであると判定されたブロックラインのそれと一致するか否かを判定する（第３の判定処理）。なお、着目ブロックラインが着目タイルの最初のブロックラインである場合には、それ以前のブロックラインは存在しない。そこで、着目タイルのブロックラインの判定に先立ち、ブロックラインの全ブロックがノンフラットブロックであることを示す情報を予め用意しておく。つまり、フラットブロックを“１”、ノンフラットブロックを“０”と定義したとき、初期値として８個（８ビット）の“０”を用意しておく。以降、この８ビットの“参照ノンフラットブロックライン情報”と呼ぶ。勿論、復号装置でも１タイルの復元する際には、“参照ノンフラットブロックライン情報”を用意しておく。
【０１２８】
着目ブロックラインが、着目タイル内で最初にノンフラットブロックであると判定されたブロックラインであったとしたとする。この場合、ステップＳ１３０８では、着目ブロック内の８個のブロックのフラットブロック／ノンフラットブロックの判定結果の並びが、参照ノンフラットブロックライン情報と一致するか否かを判定することになる。
【０１２９】
一致したと判定した場合には、ステップＳ１３０８にて、着目ブロックライン内の各ブロックの判定結果が、参照ノンフラットブロックライン情報と一致したことを示す１ビットのフラグ“１”をノンフラットブロック解析部１２０２に出力する。
【０１３０】
上記を図１０（ｂ）を参照して説明する。最初に着目ブロックラインがノンフラットブロックラインであると判定されるのは、図１０（ｂ）の場合、５番目のブロックラインである。図示では、５番目のブロックラインに含まれる８つの付加情報は“０１”であり、これはノンフラットブロックを示すからである。また、この５番目のブロックラインに含まれる８個のブロックは、全てがノンフラットブロックであることを示すので、参照ノンフラットブロックライン情報（初期の８ビット“００００００００”）と一致する。それ故、ステップＳ１３０９にて、１ビットのフラグ“１”をノンフラットブロック解析部１２０２に出力する。
【０１３１】
一方、ステップＳ１３０８にて、不一致であると判定した場合、処理はステップＳ１３１０に進む。
【０１３２】
このステップＳ１３１０に遷移するのは、着目ブロックラインの判定結果が、参照ノンフラットブロックライン情報と一致しない場合である。そこで、先ず、不一致を示す１ビットのフラグ“０”を出力し、その後で、着目ブロックラインの８個（８ビット）のフラットブロック／ノンフラットブロックの判定結果の情報をノンフラットブロック解析部１２０２に出力する。そして、ステップＳ１３１１にて、着目ブロックラインのフラットブロック／ノンフラットブロックの判定結果（８ビット）で、参照ノンフラットブロックライン情報を更新する。
【０１３３】
ステップＳ１３０６、Ｓ１３０９、Ｓ１３１１のいずれかの処理を終えると、処理はステップＳ１３１２に進む。このステップＳ１３１２では、着目ブロックラインが着目タイルの最後のブロックラインであるか否かを判定する。否の場合には、ステップＳ１３１３に進み、判定対象を次のブロックラインにし、ステップＳ１３０５以降の処理を繰り返す。また、ステップＳ１３１２にて、着目ブロックラインが着目タイルの最後のブロックラインであると判定した場合には、フラット判定部１２０１の１タイル分のフラット判定処理を終える。
【０１３４】
＜ノンフラットブロック解析部の説明＞
ノンフラットブロック解析部１２０２は、フラット判定部１２０１と同様に、１タイルの相当する処理を開始時に、１ブロックラインの８つのブロックの全てがノンフラットブロックを示す「参照ノンフラットブロックライン情報」を設定しておく。そして、ノンフラットブロック解析部１２０２は、フラット判定部１２０１からの判定結果をそのまま通過させ、格納部２０４に出力する。このとき、ノンフラットブロック解析部１２０２は、先の図１３のステップＳ１３１０にて、フラグ“０”が出力されたブロックラインが存在すると判定した場合、それに後続する各ブロックのフラットブロック／ノンフラットブロックを示す判定結果で、参照ノンフラットブロックライン情報を更新する。もし、着目ブロックラインに対し図１３のステップＳ１３０９の処理が行われた場合には、参照ノンフラットブロックラインを参照することで、どのブロックがノンフラットブロックであるのかを判定できる。また、着目ブロックラインに対し、図１３のステップＳ１３１０の処理が行われていると判断した場合には先頭のフラグ“０”に後続する８ビットの値を調べれば、ブロックがノンフラットブロックであるのかを判定できる。すなわち、ノンフラットブロック解析部１２０２は、着目タイル中の全てのノンフラットブロックの位置と個数を判定できることになる。
【０１３５】
そして、ノンフラットブロック解析部１２０２は、ノンフラットブロックと判定されたブロックにつき、図１５のフローチャートに従ったノンフラットブロック符号化処理を行なう。以下、同図に従って、ノンフラットブロック解析部１２０２の処理を説明する。
【０１３６】
先ず、ステップＳ１３０１にて、１個のノンフラットブロックを示す２×２画素データを入力する。そして、ステップＳ１５０２にて、着目ブロックが第１の実施形態で示した式（２）を満足するか否かを判定する（第４の判定処理）。
【０１３７】
式（２）を満足すると判定した場合、縮小画像中の画素Ｐ（ｘ、ｙ）を着目ブロックの左上隅の画素Ｘとしたとき（図４参照）、復号装置（実施形態では画像展開部２０５）は、着目ブロックの残りの３つの画素Ｘａ，Ｘｂ，Ｘｃは、次式から復元できる。従って、ステップＳ１５０３にて１ビットのフラグ“１”を格納部２０４に出力する。
Ｘａ＝Ｐ（ｘ＋１，ｙ）
Ｘｂ＝Ｐ（ｘ，ｙ＋１）
Ｘｃ＝Ｐ（ｘ＋１，ｙ＋１）
【０１３８】
また、着目ブロックが式（２）を満足しないと判定した場合、ステップＳ１５０４にて満足しないことを示す１ビットのフラグ“０”を格納部２０４に出力する。
【０１３９】
次に、処理はステップＳ１５０５に進み、着目ブロックに含まれる色数が“２”か、それ以上（３、もしくは４色）かを判定する（第５の判定処理）。なお、着目ブロックはノンフラットブロックであるので、色数が“１”となることはない。
【０１４０】
着目ブロックに含まれる色数が“２”より大きい（３、もしくは４色）と判定した場合、ステップＳ１５１２に進み、その着目ブロックについては１ビットのフラグ“０”を格納部２０４に出力する。そして、ステップＳ１５１３にて、着目ブロック中の非使用の３画素のデータ（８×３＝２４ビット）を格納部２０４に出力する（第１の出力処理）。
【０１４１】
一方、着目ブロックに含まれる色数が“２”であると判定した場合、ステップＳ１５０６にて出現色数が“２”であることを示す１ビットのフラグ“１”を格納部２０４に出力する。そして、ステップＳ１５０７にて、着目ブロック内の、縮小像に利用されている図４の画素Ｘを除く３画素Ｘａ，Ｘ，ｂ，Ｘｃが、図１６のパターン１６０１乃至１６０７のいずれであるのかを示す画素配置情報を格納部２０４に出力する（第２の出力処理）。図１６に示すようにパターン数は全部で７つあるので、画素配置情報は３ビットであれば１つのパターンを特定できる。ただし、実施形態では、縮小画像に利用されている画素と同じ色の画素は“１”、異なる色の画素を“０”と表わし、図４の画素Ｘａ，Ｘｂ，Ｘｃに相当する各ビットをその順番に出力するようにした（この場合も３ビットとなる）。例えば、図１６のパターン１６０１に一致する場合、画素Ｘａ，Ｘｂ，Ｘｃは同色であり、且つ、縮小画像に利用されている画素の色とは異なるので、画素配置情報の３ビットは“０００”となる。また、パターン１６０２の場合は、“１００”、パターン１６０３の場合には“０１０”、パターン１６０４の場合には“００１”となる。他は説明するまでもないであろう。
【０１４２】
次いで、ステップＳ１５０８にて、着目ブロック内の縮小画像に利用された画素Ｘを除く画素Ｘａ，Ｘｂ，Ｘｃのうち、画素Ｘと異なる色の画素と同じ色の画素が、近傍に存在するか否かを判断する（第６の判定処理）。本実施形態では、比較する近傍の画素は、第１の実施形態で示した第２の付加情報を参照する３つの画素とした。すなわち、着目ブロックをＢn、その右隣のブロックをＢn+1、着目ブロックの直下のブロックをＢn+W、着目ブロックの右下に隣接するブロックをＢn+W+1と表わしたとする。この場合に、仮に、着目ブロックが図１６のパターン１６０１であるとするなら、画素Ｘａ（Ｘｂ，Ｘｃでも同じ）と、Ｂn（０，０）、Ｂn+1（０，０）、Ｂn+W（０，０）とを順番に比較し、一致する画素が存在するか否かを判定する。ここで、注意したい点は、画素Ｂn（０，０）、Ｂn+1（０，０）、Ｂn+W（０，０）はいずれも縮小画像にそのまま利用されていることである。また、着目ブロックがパターン１６０３であった場合、着目ブロック中の縮小画像に利用された画素と異なる色の画素は、図４から画素Ｘｂであるので、その画素Ｘｂと、Ｂn（０，０）、Ｂn+1（０，０）、Ｂn+W（０，０）とを順番に比較する。
【０１４３】
さて、一致する近傍画素が存在すると判断した場合、処理はステップＳ１５０９に進み、その一致する画素の相対位置を示す情報を格納部２０４に出力する（第３の出力処理）。実施形態の場合、比較対象となる近傍の画素数は“３”であるので、一致する画素の相対位置を特定する情報は２ビットあれば十分である。実施形態では、一致するのが近傍画素Ｂn（０，０）であった場合には２ビットの“１１”、Ｂn+1（０，０）であった場合には２ビットの“０１”、Ｂn+W（０，０）であった場合には２ビットの“１０”を格納部２０４に出力する。
【０１４４】
一方、ステップＳ１５０８にて、着目ブロック内の縮小画像に利用された画素Ｘを除く画素Ｘａ，Ｘｂ，Ｘｃのうち、画素Ｘと異なる色の画素と同じ色の画素が、近傍に存在しないと判断した場合、処理はステップＳ１５１０に進む。このステップＳ１５１０では、２ビットの“００”を格納部２０４に出力する。なお、２ビットの“００”は、ステップＳ１５０９では利用されていない点に注意されたい。
【０１４５】
次いで、ステップＳ１５１１にて、着目ブロック内の縮小画像に利用された画素Ｘを除く画素Ｘａ，Ｘｂ，Ｘｃのうち、画素Ｘと異なる色の画素の値（８ビット）を出力する（第４の出力処理）。図１６のパターンのいずれかが特定でき、且つ、着目ブロック内の縮小画像に利用された画素Ｘを除く画素Ｘａ，Ｘｂ，Ｘｃのうち、画素Ｘと異なる色の画素の値がわかれば、復号装置は図１６のパターン１６０１乃至１６０７の各画素の値を復元できることは理解できよう。
【０１４６】
この後、処理はステップＳ１５１４に進み、着目ブロックが着目タイル中の最後のノンフラットブロックであるか否かを判断する。否の場合にはステップＳ１５１５に進んで、次のノンフラットブロックを示す２×２画素の画像データを入力し、ステップＳ１５０２に処理を戻す。
【０１４７】
また、ステップＳ１５１４にて、着目ブロックが着目タイル中の最後のノンフラットブロックであると判断した場合には、着目タイル内のノンフラットブロックの処理を終了する。
【０１４８】
以上説明したように本第３の実施形態によれば、補間データ生成部１１０１は最初はタイルがフラットタイルであるか否かを判断し、もしそうであればタイルにつき１ビットの付加情報を生成し、終了する。そして、フラットタイルではないと判断した場合には、ノンフラットタイルであることを示す１ビットを出力し、今度はタイルよりも狭いブロックラインについて検証を行なう。以下、この処理を最終的なサイズ（ブロック）に到達するまで繰り返す。この結果、縮小画像からオリジナルの解像度の画像を生成するための付加情報を、第１，第２の実施形態より更に削減することが期待できる。
【０１４９】
なお、実施形態では、タイル、ブロックライン、ブロックの３段階の例を説明したが、更に多段階にしても良い。
【０１５０】
また、本第３の実施形態に相当する処理をコンピュータプログラムでもって実現できることは、先に説明した第１の実施形態の変形例と同様、明らかである。
【０１５１】
[第４の実施形態] 
上記第１乃至第３の実施形態では、縮小画像＋補間データ（符号化データ）でもってオリジナル画像を完全に復元する技術を開示した。すなわち、第１乃至第３の実施形態は可逆符号化を開示するものであった。本第４の実施形態では、非可逆の補間データを生成する方法について説明を行う。
【０１５２】
なお、本第４の実施形態でも、処理対象の画像データは、説明を簡単にするためにモノクロ多値画像データとするが、ＲＧＢ画像データや、ＣＭＹＫカラー画像データに適用しても良い。
【０１５３】
本第４の実施形態では、ノンフラットブロック解析部１２０２の処理内容が第３の実施形態と異なり、それ以外については第３の実施形態と同様であるものとし、その説明は省略する。
【０１５４】
図１７は、本第４の実施形態におけるノンフラットブロック解析部１２０２の処理手順を示すフローチャートである。図１７のフローチャートは、図１５のフローチャートに代わるものであると理解されたい。それ故、同処理内容について同参照符号を付した。
【０１５５】
先ず、ステップＳ１５０１では、ノンフラットブロックを示す２×２画素の画像データを入力する。そして、ステップＳ１７０１において、入力された着目ブロックＢnに対して、図４のＸａ，Ｘｂ，Ｃｃに位置する３画素が、参照する周囲画素に近い色であるかどうかの判定を行う（第７の判定処理）。すなわち、第１乃至第３の実施形態の如く完全一致を条件とはしない。
【０１５６】
具体的には、この許容色差を示す閾値Ｔｈ１（ユーザが適当に操作部やキーボード等で適宜変更できるとする）としたとき、次式を満たすとき、画素Ｘａ，Ｘｂ，Ｃｃに位置する３画素が、参照する周囲画素に近い色であると判定する。
｜Ｂn（０，１）−Ｂn+1（０，０）｜≦Ｔｈ１、且つ、
｜Ｂn（１，０）−Ｂn+W（０，０）｜≦Ｔｈ１、且つ、
｜Ｂn（１，１）−Ｂn+W+1（０，０）｜≦Ｔｈ１
（ここで、｜ｚ｜はｚの絶対値を示している）。
【０１５７】
なお、発明者等は、この閾値Ｔｈ１は一桁の数値であり、望ましくはＴｈ１＝４であることを見出している。
【０１５８】
上記式を満足する場合、処理をステップＳ１５０３へ移し、フラグ“１”を出力して、着目ブロックＢnの処理は終了し、次のノンフラットブロックの処理へ移る。このとき、設定するしきい値によっては、補間データ量を抑制しつつも、画質劣化が視認できない程度の画質を保持することが可能である。
【０１５９】
また、着目ブロックＢnに出現する色数が３色または４色の場合、第３の実施形態では、３画素分の画素値を出力する必要があった。本第４の実施形態では、画素値の出力（ステップＳ１５１３）の前に、判定処理を示すステップＳ１７０２を追加した。このステップＳ１７０２は、図４の画素Ｘａ，Ｘｂ，Ｘｃに位置する３画素が、それぞれ、隣り合う画素の平均値と近い値（閾値Ｔｈ２以下）であるかどうかの判定を行う。
【０１６０】
具体的には、先ず、次式によって縮小画像に利用される４画素の平均値Ｘave1乃至Ｘave3を算出する（小数点以下を切り捨てとする）。
Ｘave1＝｛Ｂn（０，０）+Ｂn+1（０，０）｝／２
Ｘave2＝｛Ｂn（０，０）+Ｂn+W（０，０）｝／２
Ｘave3＝｛Ｂn（０，０）+Ｂn+W+1（０，０）｝／２
【０１６１】
そして、次式が満足するとき、画素Ｘａ，Ｘｂ，Ｘｃに位置する３画素が、それぞれ、隣り合う画素の平均値と近い値（閾値以下）であると判定する。
｜Ｂn（０，１）−Ｘave1｜≦Ｔｈ２、且つ、
｜Ｂn（１，０）−Ｘave2｜≦Ｔｈ２、且つ、
｜Ｂn（１，１）−Ｘave3｜≦Ｔｈ２
ここで、閾値Ｔｈ２もユーザが適宜設定するものとするが、大きくても一桁の正の整数が望ましい（ここでも、閾値Ｔｈ２＝４とする）。
【０１６２】
判定の結果、Ｘａ，Ｘｂ，Ｘｃの位置の画素それぞれが全て平均値との差分が小さければ（ＹＥＳ）、ステップＳ１７０３へ処理を移し、フラグ”１”を出力する（第５の出力処理）。一方、判定の結果、Ｘａ，Ｘｂ，Ｘｃの位置の画素それぞれが全て平均値との差分が大きければ（ＮＯ）、ステップＳ１７０４へ処理を移し、フラグ”０”を出力し、ステップＳ１５１３で、第３の実施形態と同様に、画素値を出力する。
【０１６３】
以上の処理により、元の画像データとの画素値の誤差を制御しつつ、可逆の場合とほとんど処理の変更なく、非可逆の補間データを生成可能である。画素の値に或る程度の許容差を設けたことにより、第３の実施形態と比較して、補間データのデータ量が更に削減できることになることは容易に理解できよう。
【０１６４】
なお、本第４の実施形態では、非可逆の補間データ生成をステップＳ１７０１の判定と、ステップＳ１７０２の判定の２つを用いる例を説明したが、どちらか一方を適用することも可能である。
【０１６５】
［第５の実施形態］ 
本第５の実施形態では、可逆と非可逆の補間データ生成を、切り替えて符号量制御を行う方法について説明する。
【０１６６】
補間データの符号量を、ある決められたデータ量以内に納めなければならない場合、符号量と画質の関係を考慮しつつ、段階的に符号量を制御可能である。
【０１６７】
まず、画質最優先で、符号量を制御しなくてもよい場合は、可逆の補間データを生成する。この場合には、復元対象である３画素の画素値をそのまま出力するブロックも存在するため、必ずしもデータ量が小さくなる保障がない。
【０１６８】
次に、画質を保持しつつも、符号量を抑えたい場合には、第４の実施形態で説明したような、元の画像と復元した画像の画素値の最大誤差を一定値以下に抑えつつ、符号量も抑制できるような非可逆の補間データ生成方法を適用すればよい。
【０１６９】
更に、補間データの符号量を抑制しなければならない場合には、補間データとして画素値をそのまま出力している画素の、階調または解像度の削減を行う。例えば、２×２画素のブロックが３，４色で構成されている場合には、２色に減色または、階調を８ビットから４ビット削減する。こうすることにより、画素値を出力した場合に３画素×８ビット分の符号量であったものが、２色に減色した場合には１画素×８ビットとなり、階調を８ビットから４ビットに削減した場合には、３画素×４ビットとなる。この方法によれば、他にフラグが付加されるものの、多くても、元の画像の半分近くまで、補間データの符号量を削減することが可能となる。
【０１７０】
また、別の制御方法として、２×２画素のブロックが３，４色で構成されている場合には、画素値の出力をしていたところを、画素値の出力をしないことで、補間データの符号量制御が可能である。この場合には、画像展開時に、縮小画像の１画素を単純拡大する。または、３，４色で構成されるブロックであると判定されたときに、２×２画素の平均値を算出し、縮小画像の画素を平均値に置き換えておき、画像展開時には、平均値に置き換えられた縮小画像の１画素を単純拡大することで、画像を復元することが可能である。この場合、２×２画素が１色になるため、画像の一部分のみ解像度が落ちた状態になる。また、２×２画素のブロック内で３，４色存在するような領域は、高解像度自然画のような領域である可能性が高いと考えられ、解像度を落としても、それほど画質劣化は目立たないような箇所であると考えられる。
【０１７１】
以上の説明では、補間データを生成する際に、画質優先であるか、符号量優先であるかによって、別の方法として説明したが、可逆で補間データを生成しておいて、一部のデータを切り捨てることによって、符号量を制御することが可能となる。例えば、３，４色で構成されるブロックに対して、可逆の補間データを生成する場合には、画素Ｘａ，Ｘｂ，Ｘｃの位置の画素値を出力するが、補間データ生成の途中や、補間データ生成が終了後に３画素分の画素値を切り捨てることで制御できる。この場合、画素値を切り捨てたブロックは、画像展開時に縮小画像の画素を用いて単純拡大すればよい。また、可逆の補間データ作成と同時に、情報を切り捨てた際に必要になるデータを生成しておけば、補間データ生成をやり直すことなく、符号量の少ない別の情報に切り替えることも可能である。例えば、３，４色で構成されるブロックに対して、可逆の補間データを生成する場合には、画素Ｘａ，Ｘｂ，Ｘｃの位置の画素値を出力するが、同時に、２×２画素の平均値を保持しておく。そして、補間データ生成の途中や、補間データ生成が終了したあとで、符号量制御が必要になった場合には、画素Ｘａ，Ｘｂ，Ｘｃの位置の画素値を補間データから切り捨て、算出しておいた平均値に置き換える。以上のような方法により、補間データ生成の途中や補間データ生成後に補間データの一部を切り捨てたり、データ量の少ない情報に置き換えたりすることで、簡単に符号量の制御が可能である。
【０１７２】
[第６の実施形態] 
第１乃至第５の実施形態では、オリジナル画像から縮小画像を生成する際、２×２画素の左上に位置する画素Ｂn（０，０）を縮小画像の画素として用い、他の３画素Ｂn（１，０）、Ｂn（０，１）、Ｂn（１，１）の補間データの生成を行った。しかし、縮小画像の利用する画素は必ずしも２×２画素のブロックの左上隅の画素でなくても構わず、Ｂn（１，０）、Ｂn（０，１）、Ｂn（１，１）のいずれであっても構わない。本第６の実施形態では、２×２画素のブロックＢn内の、右下に位置する画素Ｂn（１，１）を縮小画像の画素とする場合について説明を行う。
【０１７３】
本第６の実施形態では、図１８に示す、２×２画素のブロックＢｎに着目すると、Ｘ’の位置の画素を縮小画像の画素とし、他のＸａ’，Ｘｂ’，Ｘｃ’３画素が復元対象となる。
【０１７４】
基本的には、左上画素をサブサンプリングするのと、右下画素をサブサンプリングしたのとでは、点対称に逆の位置を参照すればよい。
【０１７５】
例えば、先に説明した各実施形態では、着目ブロック内の画素Ｂn（０，１）に対してはＢn+1（０，０）、Ｂn（１，０）に対してＢm+W（０，０）、Ｂn（１，１）に対してはＢn+W+1（０，０）であった。
【０１７６】
これに対し、本第６の実施形態では、図１８に示す丸印の位置の画素、つまり、Ｂn（１，０）に対してはＢn-1（１，１）を参照し、Ｂn（０，１）に対してはＢn-W（１，１）、Ｂn（０，０）に対してはＢn-W-1（１，１）を参照すればよい。こうすることで、第１から第５の実施形態と同様の方法で、補間データの生成は可能である。
【０１７７】
従って、第５の実施形態におけるステップＳ１７０１を別な表現で示すのであれば次の通りである。
【０１７８】
先ず、着目ブロック内のサンプリング対象の画素をＸ、着目ブロック内の非サンプリング対象の３つの画素をＸａ，Ｘｂ，Ｘｃと定義する。そして、着目ブロックに隣接するブロック中の、画素Ｘａに隣接するサンプリング対象となる画素をＸ１を定義する。同様に、着目ブロックに隣接するブロック中の、画素Ｘｂに隣接するサンプリング対象となる画素をＸ２、着目ブロックに隣接するブロック中の、画素Ｘｃに隣接するサンプリング対象となる画素をＸ３と定義しと定義する。そして、予め設定された正の閾値をＴｈ１とする。この場合、ステップＳ１７０１は、
｜Ｘａ−Ｘ１｜≦Ｔｈ１  且つ、
｜Ｘｂ−Ｘ２｜≦Ｔｈ１  且つ、
｜Ｘｃ−Ｘ３｜≦Ｔｈ１
を満たすか否かを判定すすれば良い。この条件を満たすとき、着目ブロック内の非サンプリングの３画素が、着目ブロックに隣接する３つのブロックのサンプリング対象となる画素から復元できると判定する。
【０１７９】
同様に、図１７のステップＳ１７０２は、上記と同じ定義とするなら、閾値Ｔｈ２に対して次の条件を満たすか否かを判定する。
｜Ｘａ−（Ｘ＋Ｘ１）／２｜≦Ｔｈ２、且つ、
｜Ｘｂ−（Ｘ＋Ｘ２）／２｜≦Ｔｈ２、且つ、
｜Ｘｃ−（Ｘ＋Ｘ３）／２｜≦Ｔｈ２
【０１８０】
第１から第５の実施形態のように、左上画素Ｘをサブサンプリングして、着目ブロックの右側と下側の画素を参照する場合には、画像展開時に、まだ復号処理していない位置の画素は参照できないため、縮小画像の画素しか参照できない。そのため、縮小画像の画素に当たる、Ｂn+1（０，０）、Ｂn+W（０，０）、Ｂn+W+1（０，０）の位置の画素を先読み必要があった。しかし、本第６の実施形態によれば、右下画素Ｘ’をサブサンプリングして、着目ブロックＢｎの上側と左側とを参照する場合には、すでに画像が展開してあるブロックであるので、縮小画像の画素に当たるＢn-1（１，１）、Ｂn-W（１，１）、Ｂn-W-1（１，１）に位置する画素（図１８の丸印の位置）以外も参照可能である。例えば、第２の付加情報を生成する場合や、２色で構成されているブロックに対して、２色目の色と同じ色が周辺画素に存在するか否かの判定を行う場合には、参照画素を図１８の丸印の位置画素に限定する必要はない。もちろん、丸印の位置のみを参照にしてもいいし、星印の位置を参照画素にしても構わない。また、丸印と星印の両方を参照画素にしてもよい。
【０１８１】
一致／不一致判定で参照できる範囲を変更または、拡張できれば、補間データ生成時の符号化効率が向上する可能性がある。
【０１８２】
［第７の実施形態］
本第７実施形態では、ロスレスの補間データ生成時に取得した統計情報を利用して、ロッシーの補間データ生成のパラメータを決定することで、効率よく補間データ量を目標符号量に抑えるような符号量制御の方法について説明を行う。
【０１８３】
図１９は、本第７の実施形態における処理手順を示すフローチャートである。
【０１８４】
ステップＳ１９０１のロスレス補間データ生成の方法はこれまで説明したとおりであるので、本実施形態では説明を省略するが、ロスレス補間データ生成時に取得する統計情報について、以下に説明を行う。
【０１８５】
ロスレス補間データ生成では、縮小画素や注目ブロックの周囲画素から、補間対象画素が再現できない場合には、補間対象画素値を符号化データとして出力する（図１５に示したノンフラットブロック処理のステップＳ１５１３、Ｓ１５１１参照）。画素値を出力した場合には、先にも説明したように、画素値以外にフラグ情報を持つために、オリジナルよりもデータ量が大きくなってしまう場合がある。そのため、ロッシーの補間データ生成の際は、画素値出力するブロックを減少させるか、削除することがデータ量の削減効果が高いと言える。
【０１８６】
そこで、ロスレスの補間データ生成時に、どれくらいのブロックが画素値出力の処理に入るか、カウントしておくことにする。この画素値出力したブロックのカウント数を統計情報として保持しておく。
【０１８７】
ロスレスの補間データ生成と統計情報の記録が終了したら、ステップＳ１９０２にロッシ−符号化の為のパラメータＰｒｍをゼロクリアし、ステップＳ１９０３に処理を進める。
【０１８８】
ステップＳ１９０３（第１の比較工程）は、ロスレス補間データ生成で生成された補間情報のデータ量と、予め設定された目標データ量の比較を行う。この比較結果が、補間データ量が目標値よりも大きいことを示す場合、ステップＳ１９０４へ処理を進める。また、目標値以下であることを示す場合には、ステップＳ１９０８へ処理を進めて、ロスレスの補間データを出力する。
【０１８９】
ステップＳ１９０４（第２の比較工程）では、ロスレス補間生成で取得した統計情報である、画素値出力回数ｉ（画素値を出力したブロック数）と、予め設定しておいた閾値Ｔｈ３の比較を行う。閾値Ｔｈ３は、任意の値を設定すればよいが、本実施形態では、入力画像全体の２×２画素のブロック数の３０％を閾値Ｔｈ３として設定する。例えば、Ａ４、６００ｄｐｉの画像であれば、画像サイズは約４,９６０×７,０１６ｐｉｘｅｌであり、２×２画素の総ブロック数は８,６９９,８４０個となる。この３０％を閾値Ｔｈ３とすると、Ｔｈ３は２,６０９,９５２となる。そして、この回数ｉと閾値Ｔｈ３とを比較し、その比較結果に従って、後述する減色の度合を設定するパラメータ決定する。具体的には、画素出力回数ｉが閾値Ｔｈ３よりも大きい場合（ＹＥＳ）は、処理をステップＳ１９０５へ進め、ロッシー補間生成で使用するパラメータＰｒｍにＰｒｍ１を加算することで更新する。一方、画素値出力回数ｉが閾値Ｔｈ３以下の場合（ＮＯ）は、処理をステップＳ１９０６へ進め、ロッシー補間生成で使用するパラメータＰｒｍにＰｒｍ２を加算し、更新する。但し、Ｐｒｍ１＞Ｐｒｍ２とする。
【０１９０】
ステップＳ１９０５又は、ステップＳ１９０６でパラメータＰｒｍの更新を行った後、ステップＳ１９０７へ処理を進め、ロッシー補間データの生成を行う。本実施形態におけるロッシー補間生成方法の詳細について以下に説明を行う。
【０１９１】
図２０に、ステップＳ１９０７のロッシー補間生成処理を行なうブロック構成図を示す。ブロック減色処理部２００１は、まず、２×２画素のブロックを単位に画素値を調査し、２×２画素の中で１組でも近い色の画素があれば統合する。この処理を画像全体に対して行い、続いて、補間データ生成部１１０１で補間データ生成を行う。補間データ生成部１１０１の処理内容は、前記第３の実施形態で説明したので省略する。ブロック減色処理部２００１は、例えば以下のような方法で行う。
【０１９２】
着目ブロック内の２×２画素の色の差分をそれぞれ調査し、次のＦ１乃至Ｆ６を算出する。
Ｆ１＝｜Ｘ−Ｘａ｜
Ｆ２＝｜Ｘ−Ｘｂ｜
Ｆ３＝｜Ｘ−Ｘｃ｜
Ｆ４＝｜Ｘａ−Ｘｂ｜
Ｆ５＝｜Ｘａ−Ｘｃ｜
Ｆ６＝｜Ｘｂ−Ｘｃ｜
この時、次式（３）が成り立つ場合には、２×２画素の色の統合を行う。
Ｐｒｍ＞ｍａｘ（Ｆ１，Ｆ２，Ｆ３，Ｆ４，Ｆ５，Ｆ６）  …（３）
ここで、ｍａｘ（Ａ1,Ａ2,…,Ａn）は、値Ａ1,Ａ2,…,Ａnの中の最大数を返す関数である。
【０１９３】
色の統合とは、本実施形態では補間対象画素であるＸａ，Ｘｂ，Ｘｃを縮小画像生成のためにサンプリングされた画素Ｘの色に修整する（置き換える）ものでる。つまり、着目ブロックをフラットブロックに変換するものと言えば分かりやすい。なお、Ｐｒｍ１＞Ｐｒｍ２であるので、Ｐｒｍ１が選択された場合には、色の統合される可能性が高く、Ｐｒｍ２が選択された場合には色の統合される可能性は低くなる。
【０１９４】
また、式（３）が成立しなかった場合、着目ブロックの全画素（４画素）が互いに近い色ではないことになり、統合処理を行なわない。しかしながら、そのブロック中の２画素が全く同じではないものの、互いに近い色である場合、その２つの画素が、その２色の平均値で置き換えても良い。理由は、着目ブロックに含まれる色数は減ることはあっても増えることはないからである。仮に、色数が“４”から“３”になった場合には圧縮率が高くならないが、色数が“１”になった場合に着目ブロックがフラットブロックであることになり、高い圧縮率が期待できる。また、色数が“２”の場合には図１６のパターンのいずれかに該当することになるので高い圧縮率が期待できる。
【０１９５】
また、別な減色の方法としては、以下のようにしても良い。
【０１９６】
まず、２×２画素のうち、色距離の一番大きな２画素を探索し、色距離の離れた２画素をそれぞれのグループの代表色と決める。次いで、それぞれの代表色と、代表色でない画素の色距離を求め、色距離の小さい方へグルーピングを行う。グルーピングされた画素をそれぞれ統合することで、２×２画素が２色に減色される。グルーピングされた画素の統合の方法は、そのグループの画素の平均値とする。但し、本実施形態では、グループの中に縮小画素Ｘを含んでいれば、そのグループの画素値は全てＸに置き換えるものとする。
【０１９７】
以上の減色処理を画像全体の２×２画素のブロックに対して行う。画像全体のブロックに対して減色処理が終了したら、補間データ生成部へ減色処理後の処理後の画像データを出力し、再符号化を行なわせる。
【０１９８】
補間データ生成部１１０１には、入力される画像データが、原画像であるか、減色後の画像であるかの違いのみであり、処理の内容は第３の実施形態で説明したロスレスの補間データ生成と違いはない。
【０１９９】
以上の方法により、減色処理を行った後で補間データ生成を行うことで、ブロック中に存在する色数が少なくなるため、ノンフラットブロックの２，３色処理に入り、３画素分の画素値を出力する可能性が低くなるため、補間データ量を抑制する効果がある。また、ロスレス補間生成時に取得した、画素値出力回数ｉに応じて、減色処理でのパラメータを調整することで、画質をなるべく保ちつつ、補間データ量を削減することが可能となる。具体的には、ロスレス補間生成時に画素値出力回数ｉが多ければ、パラメータを大きくして、色を統合させ易くして、補間データ量の抑制効果を大きくする。一方、画素値出力回数ｉが少なければ、それほどパラメータを大きくしないで、色の変化を少なくすることで、画質を保ちつつデータ量を抑制することが可能となる。
【０２００】
尚、本実施形態では、画素値出力回数のみをカウントして利用したが、同じ画素値出力回数でも、ブロックが２色の場合には１画素分の画素値を出力し、ブロックが３，４色の場合には３画素分の画素値を出力するので、補間データ量は変わってくる。そのため、２色処理で画素値を出力したのか（１画素分出力）、３，４色処理で画素値を出力したのか（３画素分出力）で別々にカウントした情報を保持しておいて、パラメータの設定方法を変更して構わない。
【０２０１】
ロッシー補間生成（ステップＳ１９０７）後、処理をステップＳ１９０３へ戻し、ロッシーの補間データ量と予め定められた目標値との比較を行う。この時ロッシーの補間データ量が目標値よりも小さければ（ＮＯ）、ステップＳ１９０８処理を進め、補間データを出力して処理を終了する。一方、目標値よりも大きければ（ＹＥＳ）、パラメータを再設定し、ロッシー符号化を行う。再設定するパラメータは、徐々に大きな値になっていく。なお、最悪の場合、画像中全てのブロックが同色になるが、繰り返し回数を制限して、任意の繰り返し回数を超えた場合にはパラメータを画素値の最大値より大きい値を設定することで、処理を終了させることが可能である。
【０２０２】
本実施形態におけるロッシー補間生成は、説明を簡易にするため、まず画像全面に対して、ブロックの減色処理を済ませた後、ロスレス補間生成と同じ方法で補間データの生成を行うと説明した。しかし、ロッシー補間生成の方法はこれに限らず、注目しているブロックの減色に続いて、注目ブロックの補間データ生成を行う。このとき、縮小画素としてブロック内の右下画素を抽出することで、周囲画素を参照する場合にも、減色処理後の画素値を参照することができるので、ブロック単位での処理が可能となる。
【０２０３】
[第８の実施形態]
上記の第７の実施形態では、ロスレス補間生成で補間データ量が目標値よりも大きくなってしまった場合に、ロスレス補間生成時に取得した情報によって、ロッシー補間生成で再符号化を行う際のパラメータを決定した。本第８の実施形態では、符号量制御の方法として、ロスレス補間生成で取得した情報により、データの削減方法自体を変更する方法について説明する。
【０２０４】
図２１は、本第７の実施形態における処理手順を示すフローチャートである。図１９と同じ処理の内容については説明を省略する。
【０２０５】
本第８の実施形態では、第７の実施形態と同様に、ロスレスの補間データのデータ量の大小によって、再符号化するか否かを判定する（ステップＳ１９０３）。再符号化すると判定された場合に、ステップＳ１９０４では、前記第７の実施形態と同様の判定を行うが、本第８の実施形態ではロッシー補間生成時のパラメータ設定値を変更するのではなく、ロッシーの処理方法を切り替える。具体的には、画素値出力回数ｉが閾値Ｔｈ３よりも大きい場合（ＹＥＳ）には、ステップＳ２１０１へ処理を進め、画素値出力回数ｉが閾値Ｔｈ３よりも小さい場合（ＮＯ）には、処理をステップＳ１９０７へ進め、ロッシー補間生成を行う。ロッシー補間生成を行った場合には、処理をステップＳ１９０３へ戻して、ロッシーの補間データ量が目標値以下であるか否かの判定を行う。ここで、ロッシー補間のデータ量が、目標値よりも大きいようであれば、処理をステップＳ１９０４へ進めるが、本実施形態では、２度目にステップＳ１９０４の判定を行う場合には、閾値Ｔｈ３に「０」を設定し、必ずステップＳ２１０１の処理に移るようにする。
【０２０６】
ステップＳ２１０１は、入力画像データ全体を解像度変換する。ここで、解像度変換の方法は、２×２画素を注目している２×２画素ブロックの平均値に置き換えるものとする。２×２画素の平均値を取る理由は、画像の劣化がなるべく目立たないようにするためであって、その方法に限らない。解像度変換後のデータ量は、入力画像データの１／４になる。解像度変換を行った場合には、処理をステップＳ１９０８へ進め、解像度変換後のデータを出力する。
【０２０７】
以上の処理により、補間データ量がある値以上だった場合には、ロッシー補間生成または、解像度変換処理によって、データ量を削減できる。ロッシー補間生成を行うか、解像度変換処理を行うかを、ロスレス補間生成時の情報を利用することによって、画素値出力回数が非常に多い場合には、直接解像度変換をすることができ、繰り返し回数が少なくなり、処理時間が短縮できる。また、画素値出力回数が非常に多い画像は、画素値の変化が多い高解像度自然画のような画像である可能性が高いため、解像度変換をして解像度を落としても画質の劣化が目立ちにくいため、画質を保ちつつ、データ量の抑制が可能である。
【０２０８】
以上本発明に係る各実施形態を説明した。本実施形態は、各実施形態の説明で参照した各フローチャートに従った処理に相当するプログラムをコンピュータに実行させることでも実現できる。たとえば、上記実施形態における符号化処理にかかるプログラム、或いは、復号（画像展開）処理にかかるプログラムを、パーソナルコンピュータ（ＰＣ）上で実行しても構わない。また、通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されており、それをコンピュータが有する読取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータプログラムも本発明の範疇に入ることは明らかであろう。
【図面の簡単な説明】
【０２０９】
【図１】第１の実施形態に係る補間データ生成の処理手順を示すフローチャートである。
【図２】第１の実施形態に係る画像処理装置のブロック構成図である。
【図３】実施形態における画像データと２×２画素のブロックデータとの関係を示す図である。
【図４】着目ブロックデータ内の２×２画素の配列を示す図である。
【図５】第１の実施形態における第１、第２、第３の付加情報の符号語の例を示す図である。
【図６】処理対象画像の例を示す図である。
【図７】第１の実施形態において生成する補間データのデータ構造の例を示す図である。
【図８】第２の実施形態に係る画像処理装置のブロック構成図である。
【図９】第２の実施形態に係る付加情報統合部の処理手順を示すフローチャートである。
【図１０】第２の実施形態に係る付加情報統合部の処理例を示すための画像例とその処理結果の例を示すための図である。
【図１１】第３の実施形態に係る画像処理装置のブロック構成図である。
【図１２】第３の実施形態に係る補間データ生成部のブロック構成図である。
【図１３】第３の実施形態に係るフラット判定部の処理手順を示すフローチャートである。
【図１４】実施形態の画像処理装置をコンピュータによって実現する場合のコンピュータのブロック構成図である。
【図１５】第３の実施形態に係るノンフラットブロック解析部の処理手順を示すフローチャートである。
【図１６】第３の実施形態に係る２色の配置パターンの種類を示す図である。
【図１７】第４の実施形態に係るノンフラットブロック解析部の処理手順を示すフローチャートである。
【図１８】第６の実施形態に係る着目ブロックとその周囲の画素位置を示す図である。
【図１９】第７の実施形態に係る補間データの符号量制御方法の処理手順を示すフローチャートである。
【図２０】第７の実施形態に係るロッシー補間生成のブロック構成図である。
【図２１】第８の実施形態に係る補間データの符号量制御方法の処理手順を示すフローチャートである。
【図１】
2010154486.tif 000003
【図２】
2010154486.tif 000004
【図３】
2010154486.tif 000005
【図４】
2010154486.tif 000006
【図５】
2010154486.tif 000007
【図６】
2010154486.tif 000008
【図７】
2010154486.tif 000009
【図８】
2010154486.tif 000010
【図９】
2010154486.tif 000011
【図１０】
2010154486.tif 000012
【図１１】
2010154486.tif 000013
【図１２】
2010154486.tif 000014
【図１３】
2010154486.tif 000015
【図１４】
2010154486.tif 000016
【図１５】
2010154486.tif 000017
【図１６】
2010154486.tif 000018
【図１７】
2010154486.tif 000019
【図１８】
2010154486.tif 000020
【図１９】
2010154486.tif 000021
【図２０】
2010154486.tif 000022
【図２１】
2010154486.tif 000023