(57)【要約】      （修正有）【課題】高周波成分の元の画素は維持し、且つ１ブロック分の符号化データ量の固定長化を可能にする。【解決手段】ブロック化部は、画像データから１ブロック分を読出し、出力する。抽出色決定部は、入力ブロック中の高周波成分画素の存在を判定し、その画素の色を抽出色と抽出し、ブロック中の抽出色の画素、非抽出色の画素位置を特定する位置情報を生成、出力する。位置情報は第１の符号化部で可逆符号化される。又、この生成された符号化データの量を符号量検出部が検出する。置換部は、ブロック中の非抽出色画素の色の平均値を算出し、抽出色の画素の色を平均値で置換し、出力する。この置換後のブロックを第２の符号化部が符号化する。符号量検出部で検出された符号量に従い、符号量調整部が符号化データのデータ量を調整する。多重化部は、抽出色、位置情報の符号化データ、置換後の階調画像の符号化データを結合し、固定長の符号化データとして出力する。【選択図】図１
2008278042.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化する画像符号化装置であって、
複数画素で構成されるブロックを単位に、画像データを入力する入力手段と、
入力したブロックの画像データに、高周波成分となる画素があるか否かを判定し、前記画素の色を抽出色として抽出する抽出手段と、
前記ブロック中の前記抽出色を持つ画素と非抽出色を持つ画素のそれぞれの位置を示す位置情報を生成する生成手段と、
生成された位置情報を符号化する第１の符号化手段と、
前記ブロック中の前記非抽出色の画素データに基づき、前記抽出色を持つ画素データを置換するための置換色データを算出する算出手段と、
前記算出手段で算出した置換色データで、前記抽出色を持つ画素データを置換する置換手段と、
前記置換手段で置換して得られたブロックの画像データを符号化する第２の符号化手段と、
前記第１の符号化手段で生成された符号化データのデータ量を検出する検出手段と、
前記検出手段で検出したデータ量に基づき、前記第２の符号化手段で生成される符号化データのデータ量を抑制するデータ量抑制手段と、
前記抽出色の情報、前記第１の符号化手段で生成された符号化データ、及び、前記データ量抑制手段で得られたの符号化データ量とを多重化し、出力する多重化手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
前記第１の符号化手段はランレングス符号化手段であり、
前記第２の符号化手段はＪＰＥＧ符号化手段であることを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
更に、前記置換手段による置換後のブロックが持つ解像度よりも低い解像度のブロックの画像データを生成する解像度変換手段を備え、
前記第２の符号化手段は、前記解像度変換手段で変換されたブロックの画像データを符号化することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
画像データを符号化する画像符号化装置の制御方法であって、
複数画素で構成されるブロックを単位に、画像データを入力する入力工程と、
入力したブロックの画像データに、高周波成分となる画素があるか否かを判定し、前記画素の色を抽出色として抽出する抽出工程と、
前記ブロック中の前記抽出色を持つ画素と非抽出色を持つ画素のそれぞれの位置を示す位置情報を生成する生成手段と、
生成された位置情報を符号化する第１の符号化工程と、
前記ブロック中の前記非抽出色の画素データに基づき、前記抽出色を持つ画素データを置換するための置換色データを算出する算出工程と、
前記算出工程で算出した置換色データで、前記抽出色を持つ画素データを置換する置換工程と、
前記置換工程で置換して得られたブロックの画像データを符号化する第２の符号化工程と、
前記第１の符号化工程で生成された符号化データのデータ量を検出する検出工程と、
前記検出工程で検出したデータ量に基づき、前記第２の符号化工程で生成される符号化データのデータ量を抑制するデータ量抑制工程と、
前記抽出色の情報、前記第１の符号化工程で生成された符号化データ、及び、前記データ量抑制工程で得られた符号化データ量とを多重化し、出力する多重化工程と
を備えることを特徴とする画像符号化装置の制御方法。
【請求項５】
コンピュータが読込み実行することで、前記コンピュータを、請求項１乃至３のいずれか１項に記載の画像符号化装置として機能させるコンピュータプログラム。
【請求項６】
請求項１に記載の画像符号化装置で生成された符号化画像データを復号する復号装置であって、
復号対象のブロックの位置を指示する位置指示手段と、
指示されたブロックの位置に基づき、前記符号化画像データにおける読出し位置を算出する算出手段と、
算出された位置から、固定長に対応するデータ量の符号化データを読込む読込み手段と、
読込まれた符号化データを復号して、抽出色、位置情報、及び、置換後のブロックの画像データを生成する復号手段と、
該復号手段によって得られた画像データ中の、前記位置情報によって抽出色を持つ画素位置では、前記抽出色を復号結果として出力し、前記位置情報によって非抽出色を持つ画素位置では前記復号後のブロック中の画素データを復号結果として出力する出力手段と
を備えることを特徴とする復号装置。
【請求項７】
請求項１に記載の画像符号化装置で生成された符号化画像データを復号する復号装置の制御方法であって、
復号対象のブロックの位置を指示する位置指示工程と、
指示されたブロックの位置に基づき、前記符号化画像データにおける読出し位置を算出する算出工程と、
算出された位置から、固定長に対応するデータ量の符号化データを読込む読込み工程と、
読込まれた符号化データを復号して、抽出色、位置情報、及び、置換後のブロックの画像データを生成する復号工程と、
該復号工程によって得られた画像データ中の、前記位置情報によって抽出色を持つ画素位置では、前記抽出色を復号結果として出力し、前記位置情報によって非抽出色を持つ画素位置では前記復号後のブロック中の画素データを復号結果として出力する出力工程と
を備えることを特徴とする復号装置の制御方法。
【請求項８】
コンピュータが読込み実行することで、前記コンピュータを、請求項６に記載の復号装置として機能させるコンピュータプログラム。
【請求項９】
請求項５又は８に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の符号化、復号技術に関するものである。
【背景技術】
【０００２】
文字や線画と、自然画が混在した多値画像を圧縮する技術として、特許文献１が知られている。この文献には、入力画像を直交変換の単位となるブロックに分割した後、ブロック内で最も出現確率の高い最頻値を文字や線画であると仮定し、上記最頻値の色情報もしくは濃度情報の画素データを抽出する。そして、最頻の色と、抽出対象となった画素位置を示す情報をランレングス符号化などの可逆符号化を行う。また、ブロック中の非抽出対象の画素の平均値を算出し、その算出した平均値を、抽出画素の位置の値とし、ＪＰＥＧ等の非可逆符号化を行う。こうして、可逆符号化結果と非可逆符号化結果とを多重化して出力する。
【０００３】
なお、文字や線画と自然画が混在した多値画像を圧縮する技術としては、他にも、特許文献２等が知られている。
【特許文献１】特開平４−３２６６６９号公報
【特許文献２】特開平１０−１０８０２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来例は符号化に予測符号化や可変長符号化を用いているため、符号化時と同じ順番でしか復号化できず、ランダムアクセスや回転処理といった操作が非常に困難であった。あるいは、所定の符号量に収めるための操作も複雑であった。
【０００５】
そこで、本発明は、文字線画等の高周波成分の元になる画素については維持しつつ、尚且つ、１ブロック分の符号化データ量を固定長とする符号化技術を提供しようとするものである。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像データを符号化する画像符号化装置であって、
複数画素で構成されるブロックを単位に、画像データを入力する入力手段と、
入力したブロックの画像データに、高周波成分となる画素があるか否かを判定し、前記画素の色を抽出色として抽出する抽出手段と、
前記ブロック中の各画素の位置毎に、前記抽出色の画素に属するのか、非抽出色の画素に属するのかを示す位置情報を生成する位置情報生成手段と、
生成された位置情報を符号化する第１の符号化手段と、
前記ブロック中の前記非抽出色の画素データに基づき、前記抽出色を持つ画素データを置換するための置換色データを算出する算出手段と、
前記算出手段で算出した置換色データで、前記抽出色を持つ画素データを置換する置換手段と、
前記置換手段で置換して得られたブロックの画像データを符号化する第２の符号化手段と、
前記第１の符号化手段で生成された符号化データのデータ量を検出する検出手段と、
前記検出手段で検出したデータ量に基づき、前記第２の符号化手段で生成される符号化データのデータ量を抑制するデータ量抑制手段と、
前記抽出色の情報、前記第１の符号化手段で生成された符号化データ、及び、前記データ量抑制手段によるデータ量抑制後の符号化データ量とを多重化し、出力する多重化手段とを備える。
【発明の効果】
【０００７】
本発明によれば、文字線画等の高周波成分の元になる画素については維持しつつ、尚且つ、１ブロック分の符号化データ量を固定長とすることが可能になる。従って、復号する場合には、所望とするブロックのみをランダムアクセスして復号するが可能になる。
【発明を実施するための最良の形態】
【０００８】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【０００９】
＜第１の実施形態＞
図１に、本発明の第１の実施形態における符号化装置の構成図を示す。
【００１０】
本実施形態における符号化装置は、装置全体の制御を司る制御部１５０、ブロック化部１０１、抽出色決定部１０２、第１の符号化部１０３、符号量検出部１０４、多重化部１０５、置換部１０６、第２の符号化部１０７、符号量調整部１０８で構成される。なお、各処理部における処理に要する時間は、互いに異なるので、各処理部の前段には互いに同期するためのバッファメモリが設けられているものとして説明する。以下、同図の構成における処理内容を説明する。
【００１１】
ブロック化部１０１は、符号化対象の多値画像データから、複数画素で構成されるブロック（ｎ×ｍ画素）単位に入力し、後段に出力する。本実施形態では、説明を簡単なものとするため、符号化対象の画像データの各画素は、Ｒ、Ｇ、Ｂの成分で構成され、各成分は８ビット（２５６階調）とする。また、１ブロックは８×８画素のサイズとする。ブロック化部１０１は、Ｒ成分のブロックデータ、Ｇ成分のブロックデータ、Ｂ成分のブロックデータの順に出力する。ただし、色成分の種類はＲＧＢに限らず、ＹＭＣでも良いし、成分の数、ビット数もこれに限定されるものではない。
【００１２】
抽出色決定部１０２は、入力した１つの色成分のブロック内の８×８（＝６４）の画像データに、高周波成分となる画素があるか否かを判定し、その画素の色を抽出色として抽出し、出力するとと共に、抽出色を持つ画素と、非抽出色を持つ画素を識別するための２値データを出力する。この２値のデータが“１”の場合、該当する画素は抽出色を持つ画素であるものとし、“０”の場合には該当する画素は非抽出色の画素とする。実施形態では、１つのブロックは８×８個の画素で構成されるわけであるから、抽出色決定部１０２は８×８個の２値データを生成することになる。この２値データは、抽出色／非抽出色それぞれの画素位置の判定に用いられるので、これ以降、位置情報と呼ぶ。
【００１３】
抽出色決定部１０２における抽出色、位置情報を求めるアルゴリズムの一例を示すのであれば次の通りである。
【００１４】
先ず、ブロック内の画素の平均値を算出する。そして、その平均値よりも大きな値を持つ画素群（以下、第１の画素群という）と、その平均値以下の画素群（以下、第２の画素群という）とに分類する。更に、第１の画素群の平均値（第１の平均値）と第２の画素群の平均値（第２の平均値）を求め、それらの差の絶対値が、予め設定された閾値を超えるか否かを判定する。
【００１５】
第１、第２の平均値の差の絶対値が、上記の閾値を超えている場合、抽出色決定部１０２は、抽出色有りを示す抽出色有無情報を多重化部１０５に通知する。そして、第２の画素群を、抽出色を持つ画素として見なし、その色情報を抽出色情報として多重化部１０５に出力する。また、抽出色を持つ画素の位置では“１”、非抽出色の画素の位置では“０”とする位置情報を第１の符号化部１０３、置換部１０６に出力する。なお、位置情報はラスタースキャン順に出力するものとする。
【００１６】
一方、第１、第２の平均値の差の絶対値が、上記の閾値以下の場合、抽出色決定部１０２は、抽出色無しを示す抽出色有無情報を多重化部１０５に通知する。また、抽出色決定部１０２は全てが“０”の位置情報を出力する。また、抽出色決定部１０２は、抽出色情報は出力してもしなくても構わない。多重化部１０５は、抽出色無しを示す抽出色有無情報を受信した場合、抽出色決定部１０２からの抽出色情報は無視するからである。
【００１７】
以上、抽出色決定部１０２における処理内容を説明したが、これは一例である点に注意されたい。詳細は後述する説明から明らかになるが、抽出色決定部１０２は、着目ブロック内の高周波成分を抽出するようにすればよい。
【００１８】
第１の符号化部１０３は、抽出色決定部１０２から出力された６４ビットの位置情報を符号化し、その符号化データを多重化部１０５に出力する。実施形態では、この第１の符号化部１０３は、例えばランレングス符号化部で構成するものとするが、符号化の種類はこれに限定されない。なお、第１の符号化部１０３は、位置情報を符号化して得られたデータ量が６４ビット以上になってしまった場合、符号化データの代わりに、抽出色決定部１０２から入力した位置情報をそのまま出力するものとする。このため、第１の符号化部１０３は、符号化したのか否かを示す識別ビット（１ビット）を、位置情報の符号化データの先頭に格納して出力する。つまり、第１の符号化部１０３が生成する位置情報の符号化データのデータ量は最大でも６５ビットとなる。
【００１９】
符号量検出部１０４は、第１の符号化部１０３から出力された１ブロック分の位置情報の符号化データ量（ビット数）を検出し、その結果を符号量調整部１０８に出力する。この符号量調整部１０８の詳細は後述する。
【００２０】
次に、置換部１０６について説明する。置換部１０６内の置換色算出部１０９は、位置情報が“０”の画素（非抽出色の画素）の各成分の平均値を算出し、その算出した色を置換色データとしてセレクタ１１０に出力する。具体的には、着目ブロックの座標（ｘ，ｙ）（ｘ、ｙ＝０、１、…、７）の位置にある色成分の値をＰ（ｘ，ｙ）、位置情報をＩ（ｘ，ｙ）（＝０、又は１のいずれか）、位置情報が“０”の個数をＮとしたとき、平均値Aveは次式の通りである。
Ａｖｅ＝ΣΣＰ（ｉ，ｊ）×（１−Ｉ（ｉ，ｊ））／Ｎ
ここで、ΣΣは、変数ｉ，ｊの取り得る範囲（０乃至７）での合算関数である。
そして、置換色算出部１０９は、算出したＡｖｅを置換色データとしてセレクタ１１０に出力する。なお、着目ブロック内に、位置情報が“０”となる個数が０の場合、つまり、Ｎ＝０となる場合には上記算出は行なわず、適当な値を出力して構わない。理由は、Ｎ＝０の場合、セレクタ１１０は、ブロック化部１０１からの６４個の画素データを選択し、出力するからである。
【００２１】
セレクタ１１０は、位置情報が“１”の場合、置換色算出部１０９から出力された置換色情報Ａｖｅを選択し、位置情報が“０”の場合にはブロック化部１０１からの画素データを選択し、出力する。
【００２２】
ここで、画像が有する空間周波数と人間の視覚の感度との相対関係を図２に示す。図２に示すように、一般に、空間周波数の高い画像は人間の感度が低く、階調性は低くてよい。一方、空間周波数の低い領域では相対感度が高く、階調性が重要となる。別な言い方をすれば、文字線画は画像のエッジが鮮明な画像であり、空間周波数が高いことが望まれ、自然画の場合には空間周波数が低くて良く、高い階調性があることが望まれる。
【００２３】
実施形態における置換部１０６は、要するに、抽出色と判定された画素の各成分の値を、非抽出色の画素の平均値で置換して、第２の符号化部１０７に出力する。この結果、置換部１０６から出力される８×８画素のブロックの画像は、空間周波数の低い画像に変換されることになる。
【００２４】
第２の符号化部１０７は、例えば、ＪＰＥＧ符号化部（ＤＣＴ変換、量子化、エントロピー符号化）であり、置換部１０６から出力された８×８画素の階調画像データを符号化し、符号化データを符号量調整部１０８に出力する。出力する順序は、ＤＣ成分の符号化データ（１個）、ＡＣ成分の符号化データ（６３個）である。ＡＣ成分については、低周波から高周波に向かうジグザグスキャン順とする。
【００２５】
符号量調整部１０８は、符号量検出部１０４から出力された位置情報の符号化データ量に従い、第２の符号化部から出力された階調画像データの符号化データのデータ量抑制手段として機能する。これにより１ブロック当たりの符号化データ量を、画質劣化の少ない固定長とする。
【００２６】
図３は実施形態における画像符号化装置の多重化部１０５より出力された符号化データで構成される画像データファイル２００の構造を示している。実施形態では、１つのブロックの符号化データは、１つの色成分の符号化データである。従って、連続する３つのブロックの符号化データが、カラー画像の１つのブロックの符号化データを表わすことになる。
【００２７】
多重化部１０５は、符号化データを出力するに先立ち、ファイルヘッダを生成し、出力する。ファイルヘッダには、画像のサイズ（水平、垂直方向の画素数）、色空間を特定する情報、及び、各色成分を表わすビット数、及び、１ブロック分の符号化データのデータ長等、復号処理に必要な情報が含まれている。また、各ブロックの符号化データは、図示の如く、参照番号２０１、２０２のタイプのいずれかである。符号化データ２０１は抽出色無しのデータ構造を示し、符号化データ２０２は抽出色有りのデータ構造を示している。抽出色無しの１ブロック分のデータ構造は、抽出色無しを示す情報を格納したブロックヘッダと、第２の符号化部で生成された階調画像の符号化データで構成される。一方、符号化データ２０２は、抽出色有りを示す情報を格納したブロックヘッダと、抽出色情報、位置情報の符号化データ、及び、階調画像の符号化データで構成される。いずれの場合でも、符号化データ２０１、２０２は共に同じデータ長である。
【００２８】
ブロックヘッダには、抽出色の有無を示す情報を格納する必要があるので、仮に、ブロックヘッダは１ビットとする。抽出色情報は８ビットである。また、位置情報の符号化データ量は先に説明したように、最大で６５ビットである。また、第２の符号化部１０７で生成される階調画像の符号化データ中の最も重要なデータはＤＣ成分（直流成分）の符号化データである。このＤＣ成分はＪＰＥＧにおいては直前ブロックのＤＣ成分との差分が符号化されるが、本実施形態では周辺ブロックの情報無しに復号されなければならないので、ＤＰＣＭの初期値として１２８、量子化後のＤＣ成分を０〜２５５とした場合、差分値は−１２７〜１２８となるので、ハフマン符号６ビット＋付加ビット８ビットの合計１４ビットが最大となる。よって、１つのブロックの符号長としては、１＋８＋６５＋１４＝８８ビットあれば、ブロック内の解像度を保存しつつ２色以上での再現が可能である。それ故、実施形態では、１ブロックの固定長を、８８ビットとした。従って、位置情報と階調画像の符号化データの合計データ量は、８８−９＝７９ビットとなる。
【００２９】
一方、抽出色無しの場合、ヘッダ＋階調データの符号化データとなるので、８７ビットが階調画像の符号化データに利用できることになる。
【００３０】
従って、本実施形態における符号量調整部１０８の処理は次のようになる。
【００３１】
１．抽出色有無情報が抽出色有りを示す場合：
ここで、符号量検出部１０４からの位置情報の符号量（ビット数）をＣｐとする。符号量調整部１０８は、第２の符号化部１０７から出力された符号化データの先頭から、「７９−Ｃｐ」ビットを多重化部１０５に出力する。第２の符号化部１０７から出力された１つのシンボルの符号化データが、「７９−Ｃｐ」ビット目を跨いでいる場合には、その途中のビットまでを出力する。復号する場合には、固定長として見なして復号すればよく、仮に、完全な符号化データでない場合には、それを無視するだけで良い。
【００３２】
２．抽出色有無情報が抽出色無しを示す場合：
第２の符号化部１０７から出力された符号化データの先頭から、８７ビットを多重化部１０５に出力する。なお、第２の符号化部１０７から出力された１ブロック分の符号化データが８７ビット未満の場合には、８７ビットなるようにダミーデータを付加すればよい。
【００３３】
次に、実施形態における多重化部１０５の処理内容を説明する。
【００３４】
多重化部１０５は、先に説明したように、符号化開始に先立ち、ファイルヘッダを生成し、出力する。これ以降は、次の通りである。
【００３５】
抽出色決定部１０２からの抽出色有無情報が抽出色有りを示す場合、多重化部１０５は、抽出色有りを示すブロックヘッダ、抽出色情報、第１の符号化部１０３からの位置情報の符号化データ、そして、第２の符号化部１０８からの階調画像の符号化データの順に出力する。
【００３６】
一方、抽出色決定部１０２からの抽出色有無情報が抽出色無しを示す場合、多重化部１０５は、抽出色無しを示すブロックヘッダ、第２の符号化部１０８からの階調画像の符号化データの順に出力する。
【００３７】
次に、図３の符号化データファイルを入力し、復号する画像復号装置を説明する。図４は本実施形態における画像復号装置のブロック構成図である。この画像復号装置は、装置全体の制御を司る制御部４５０を備える。
【００３８】
記憶媒体４０１は、上記の符号化装置で生成された符号化画像データファイルを記憶するものである。記憶媒体４０１としては、ハードディスク、ＲＡＭ、メモリカード等、その種類は問わない。読み出し部４０２は、読出しブロック位置指示部４０３で指示された符号化されたブロックデータを記憶媒体から読出し、バッファメモリ４０４に格納する。この読出しブロック位置指示部４０３は、制御部４５０の制御によって読出し対象のブロックデータの格納アドレスを読み出し部４０２に出力する。
【００３９】
説明を簡単なものとするため、復号対象の画像データは水平方向にＷ個のブロック、垂直方向にＨ個のブロックとする。つまり、画素数に換算すると、水平方向の画素数がＷ×８、垂直方向の画素数はＨ×８である。また、先の画像符号化装置の処理の説明で明らかなように、１ブロック分の符号化データ長（実施形態では８８ビット）は固定である。
【００４０】
画像の左上隅のブロックの座標を（０，０）と定義する。今、制御部４５０が、読出しブロック位置指示部４０３に対し、水平方向（右方向）にｉ番目（０≦ｉ≦Ｗ−１）であって、垂直方向（下方向）にｊ番目（０≦ｊ≦Ｈ−１）のブロックを読出すように指示を与えたとする。この場合、読出しブロック位置指示部４０３は次式に従って読出しアドレスＡｄｒｓを算出する。
Ａｄｒｓ＝ファイルヘッダのサイズ（ビット数）＋（ｊ×Ｗ＋ｉ）×８８×３
上記式において、最後に“３”を乗算するのは、３つのブロック（３つの色成分）の符号化データで、カラー画像の１つのブロックを復号するためである。
【００４１】
そして、読出しブロック位置指示部４０３は、算出したアドレスＡｄｒｓを読出し開始アドレスとして読み出し部４０２にセットすると共に、読み出しデータ量（ビット数）として「２６４（＝８８×３）」を読み出し部４０２にセットする。
【００４２】
この結果、読み出し部４０２は、復号対象のファイルの先頭から、アドレスＡｄｒｓのビット位置から固定長に対応するデータ量（実施形態では２６４ビット）のデータを読出し、バッファメモリ４０４に格納する。なお、画像全体を復号する場合には、制御部４５０は、変数ｉ，ｊをラスタースキャン順に更新して、読出しブロック位置指示部４０３に設定すればよい。
【００４３】
さて、符号化データがバッファメモリ４０４に格納されると、ヘッダ解析部４０５はブロックヘッダを解析し、抽出色有無情報を取得する。そして、ヘッダ解析部４０５は、抽出色有無情報を分離部４０６及びセレクタ４１０に出力する。
【００４４】
分離部４０６は、入力した抽出色有無情報が抽出色無しを示す場合、バッファ４０４内のブロックヘッダに後続するデータは、階調画像の符号化データであると判断し、その符号化データを第２の復号部４０７に出力する。
【００４５】
また、分離部４０６は、入力した抽出色有無情報が抽出色有りを示す場合、バッファ４０４内のブロックヘッダに後続するデータの最初の８ビットは、抽出色情報であるものと判定し、その８ビットのデータを抽出色保持部４０９に出力し、保持させる。そして、抽出色情報に後続する符号化データは、位置情報の符号化データであるものとし、第１の復号部４０８に出力する。
【００４６】
第１の復号部４０８は、先ず、先頭ビットを解析し、それに符号化データが、ランレングス符号化されているか、非圧縮のデータであるかを判定する。ランレングス符号化されていると判断した場合には、ランレングス符号化データを復号し、８×８＝６４ビットの位置情報を生成し、出力する。非圧縮のデータであると判定した場合には、入力した６４ビットが８×８画素の位置情報であるものとし、そのまま出力する。いずれにしても、６４ビットの位置情報を出力した場合、第１の復号部４０８は復号完了した旨を分離部４０６に通知する。
【００４７】
この通知を受けた、分離部４０６は、バッファ４０４に格納された次に読出すべきビット位置から固定長の末端の位置までの符号化データは、８×８画素の階調画像データの符号化データであるものとし、第２の復号部４０７に出力する。
【００４８】
復号部４０７は、分離部４０６を介して入力した符号化データは、ＤＣ成分、ＡＣ成分に並んでいるものとし、エントロピー復号、逆量子化、逆ＤＣＴ処理を行ない、８×８画素の階調画像データを復元し、出力する。ただし、復号対象は、先に示したように、固定長の末端位置までであり、末端位置にある符号化データが、完全な符号語を構成していない場合には、そのデータは無視して復号する。
【００４９】
セレクタ４１０は、ヘッダ解析部４０５からの抽出色有無情報、第１の復号部４０８、第２の復号部４０７からの復号結果のデータ、及び、抽出色情報保持部４０９からの抽出色情報を入力し、次のような条件に従って選択出力処理を行なう。
【００５０】
＜ヘッダ解析部４０５からの抽出色有無情報が抽出色無しを示す場合＞
セレクタ４１０は、復号部４０７からの復号した８×８個の画素データを全て選択し、出力する。
【００５１】
＜ヘッダ解析部４０５からの抽出色有無情報が抽出色有りを示す場合＞
セレクタ４１０は、位置情報が“１”の画素位置では、抽出色保持部４０９からの抽出色情報を選択し、出力する。また、位置情報が“０”の画素位置では、復号部４０７で復号された８×８画素中の該当する位置の画素データを選択し、出力する。
【００５２】
以上の処理を３回行なうことで、Ｒ、Ｇ、Ｂの３つの成分の１ブロックの画像が復号できる。
【００５３】
以上説明したように本実施形態によれば、ブロックから、解像度が要求される画素を決定し、その色を抽出する。そして、その抽出色を持つ画素と非抽出色を持つ画素とを識別するための位置情報を符号化する。また、非抽出色の画素から導出した置換色で、抽出色を持つ画素の値を置換し、その置換後の階調画像をＪＰＥＧ符号化する。従って。この結果、階調画像については、空間周波数の低い自然画のみの画像と等価の画像であるので、通常の自然画と同等の画質と符号量に納めることができる。しかも、本実施形態によれば、１ブロックの符号化データ量は、固定長である。従って、ブロック単位であれば、任意の位置のブロックを復号したり、回転させたりすることも可能となる。
【００５４】
なお、実施形態では、１ブロックを８×８画素のサイズとし、ブロック固定長を８８ビットとして説明したが、これらの数値によって本発明が限定されるものではない。ユーザが、これらの数値を適宜選択し、制御部１５０が設定しても構わない。
【００５５】
＜第１の実施形態の変形例＞
上記第１の実施形態をコンピュータプログラムによって実現する例を第１の実施形態の変形例として以下に説明する。
【００５６】
図１４は、本変形例における情報処理装置（例えばパーソナルコンピュータ）のブロック構成図である。
【００５７】
図中、１４０１はＣＰＵで、ＲＡＭ１４０２やＲＯＭ１４０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理のアプリケーションプログラムを実行する。１４０２はＲＡＭで、外部記憶装置１４０７や記憶媒体ドライブ１４０８、若しくはＩ／Ｆ１４０９を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備える。また、ＲＡＭ１４０２は、ＣＰＵ１４０１が各種の処理を実行する際に使用するワークエリアも備える。１４０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。１４０４、１４０５は夫々キーボード、マウスで、ＣＰＵ１４０１に対して各種の指示を入力することができる。
【００５８】
１４０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。１４０７はハードディスクドライブ装置等の大容量の外部記憶装置である。この外部記憶装置１４０７には、ＯＳ（オペレーティングシステム）や後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどがファイルとして保存されている。また、ＣＰＵ１４０１は、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードし、実行することになる。
【００５９】
１４０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ１４０２や外部記憶装置１４０７に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。この場合、記憶媒体ドライブ１４０８は、ＣＰＵ１４０１による制御によって、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードする。
【００６０】
１４０９はＩ／Ｆで、このＩ／Ｆ１４０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ１４０２や外部記憶装置１４０７、あるいは記憶媒体ドライブ１４０８に入力することもできる。１４１０は上述の各部を繋ぐバスである。
【００６１】
上記構成において、本装置の電源がＯＮになると、ＣＰＵ１４０１はＲＯＭ１４０３のブートプログラムに従って、外部記憶装置１４０７からＯＳをＲＡＭ１４０２にロードする。この結果、キーボード１４０４、マウス１４０５の入力が可能となり、表示装置１４０６にＧＵＩを表示することが可能になる。ユーザが、キーボード１４０４やマウス１４０５を操作し、外部記憶装置１４０７に格納された画像処理用アプリケーションプログラムの起動の指示を行なうと、ＣＰＵ１４０１はそのプログラムをＲＡＭ１４０２にロードし、実行する。これにより、本装置が画像処理装置として機能することになる。
【００６２】
以下、そのプログラムを実行した際の画像符号化処理手順を、図６のフローチャートに従って説明する。
【００６３】
なお、以下の説明では、符号化対象の画像データは、外部記憶装置１４０７に格納されたカラー画像データファイルとし、符号化結果を外部記憶装置１４０７にファイルとして格納する例を説明する。ただし、符号化対象の画像データの発生源、及び、符号化結果の出力先はその種類は問わない。例えば、符号化対象の画像データの発生源は、イメージスキャナでも構わないし、出力先はネットワークでも構わない。また、以下の説明にて、各種バッファや必要な各種テーブル（ハフマンテーブルも含む）は、ＲＡＭ１４０２等のメモリ中に確保しておくものとして説明する。また、符号化対象の画像データは水平方向にＷ個のブロック、垂直方向にＨ個のブロックで構成されているものとする。また、変数ｘ、ｙは画素ブロックを特定する座標を示すものである。
【００６４】
先ず、ステップＳ１にて、ＣＰＵ１４０１は、符号化対象の画像データファイルのヘッダを解析し、符号化出力するファイルのヘッダを生成し、出力する。この際、出力ファイルのヘッダには、画像データのサイズ（水平方向画素数、垂直方向画素数）、色空間、各成分のビット数、ブロックサイズ、ブロック固定長等、復号時に必要となる情報を含ませる。また、イメージスキャナからの画像データを符号化する場合には、原稿サイズ、イメージスキャナの読取り解像度に基づき、水平及び垂直方向の画素数を求めることができる。また、これ以降、符号化処理で生成された符号化データは、作成したヘッダに後続するように格納されることになる。
【００６５】
次に、ＣＰＵ１４０１は、ステップＳ２において変数ｙを“０”で初期化し、ステップＳ３において変数ｘを“０”で初期化する。
【００６６】
次に、ステップＳ４にて、ＣＰＵ１４０１は外部記憶装置１４０７中の符号化対象の画像データから座標（ｘ、ｙ）で示される１ブロック分のカラー画像データ（８×８個の画素データ）を読込む。そして、ステップＳ５にて、読込んだブロック中の１つの色成分について色抽出処理を行なう。色抽出の概要は第１の実施形態で説明した通りである。
【００６７】
ステップＳ６では、色抽出結果から抽出色有無情報を生成し、それをブロックヘッダとして出力する。
【００６８】
次いで、ステップＳ７に進み、色抽出ができたか否か、すなわち、着目ブロックから抽出色を持つ画素が存在したか否かを判定する。抽出すべき色を持つ画素が存在しなかったと判定された場合には、ステップＳ１２に進む。
【００６９】
一方、抽出色を持つ画素があったと判断した場合には、ステップＳ８に進み、その抽出色を出力する。次いで、抽出色を持つ画素の位置では“１”、非抽出色の画素の位置では“０”とする位置情報（６４ビット）を生成し、符号化して出力する。このとき、位置情報の符号化データが６４ビットを超えてしまう場合には、生成した位置情報の先頭に非符号化を示す識別ビットを付加し、生成した位置情報をそのまま出力する。一方、６４ビット以下の符号化データが生成された場合には、先頭に符号化されていることを示す識別ビットを付加し、その後に符号化データを出力する。
【００７０】
ステップＳ１０では、非抽出色と判定された画素データの平均値を算出することで、置換色情報を求める。そして、ステップＳ１１にて、抽出色を持つ画素データを、置換色情報で置き換えた８×８画素の１成分のデータを生成し、ステップＳ１２に進む。
【００７１】
ステップＳ１２では、階調画像の符号化処理を行なう。ステップＳ７にてＮｏと判定されてステップＳ１２に処理が進んだ場合には、で符号化対象は、入力したブロックの階調画像データとなる。また、ステップＳ１１かステップＳ１２に処理は進んだ場合には、置換処理後の階調画像データである。
【００７２】
ステップＳ１３では、階調画像データの符号化データ量を調整する。ステップＳ７にてＮｏと判定された場合には、階調画像データの符号化データの先頭から８７ビットを出力対象（有効）とし、それ以降は破棄（無視）する。また、ステップＳ７には、Ｙｅｓと判定された場合には次式に従って、出力すべき階調画像データの符号化データ量を算出する。
８９−｛抽出色の符号化データ量＋位置情報の符号化データ量｝
そして、階調画像データの符号化データの先頭から、算出した値で示されるビット数を出力対象とし、それ以降は破棄する。
【００７３】
なお、ステップＳ１２に処理が進んだとき、階調画像の符号化を行なう際に、抽出色の有無、位置情報の符号量が既に判明しているので、階調画像の符号化処理中に、固定長を超えるシンボルの符号化データを生成した時点で、その符号化処理を中断しても構わない。
【００７４】
ステップＳ１４では、出力対象として決定されたビット数の階調画像データの符号化データを出力する。
【００７５】
この後、処理はステップＳ１５に進み、着目ブロックにおける全色成分の符号化データの出力を終えたか否かを判断する。否の場合には、他の色成分の符号化データの生成＆出力を行なうため、ステップＳ５に戻る。
【００７６】
一方、着目ブロックの全色成分の符号化＆出力が終えたと判断した場合には、ステップＳ１６に進み、変数ｘを“１”だけ増加する。そして、ステップＳ１７にて、変数ｘと水平方向のブロック数Ｗとを比較し、ｘ＜Ｗであるか否かを判断する。ｘ＜Ｗであると判断した場合にはステップＳ４以降の処理を繰り返す。
【００７７】
また、ステップＳ１７にてｘ＝Ｗであると判断した場合には、ステップＳ１８にて変数ｙを“１”だけ増加する。そして、ステップＳ１９にて、変数ｙと垂直方向のブロック数Ｈとを比較し、ｙ＜Ｈであるか否かを判断する。ｙ＜Ｈであると判断した場合にはステップＳ３以降の処理を繰り返す。
【００７８】
そして、ステップＳ１９にてｙ＝Ｈであると判断した場合には、全ブロックの符号化処理が完了したことを意味するので、本符号化処理を終了する。
【００７９】
以上説明したように、本変形例によれば、先に説明した第１の実施形態における画像符号化装置と同様の処理をコンピュータプログラムによって実現でき、且つ、同様の作用効果を奏することも可能になる。
【００８０】
次に、符号化画像データを復号するコンピュータプログラムの処理手順を図７のフローチャートに従って説明する。なお、本処理は、外部記憶装置１４０７内に格納された符号化画像データファイルを不図示のＧＵＩを用いて選択してあるものとする。
【００８１】
先ず、ステップＳ３１にて、選択された符号化画像データファイルのヘッダを解析し、復号に必要な情報を取得する。この情報には、１ブロックの固定長情報も含まれる。
【００８２】
次いで、ステップＳ３２では、復号対象のブロック位置を入力する。このブロック位置の入力は、ユーザが指定する、或いは、予め復号対象のブロック位置情報をファイルとして記憶しておき、そのファイルを読込むことでブロック位置を入力しても構わない。
【００８３】
ステップＳ３３では、入力したブロック位置、復号対象の画像のサイズに基づき、着目ブロックの読出し開始アドレスを算出する（この算出方法は第１の実施形態と同様である）。そして、ステップＳ３４では、算出したアドレス位置から３×固定長ビット分（３ブロック分）の符号化データを読込む。
【００８４】
ステップＳ３５では、読取った１ブロック分の符号化データのブロックヘッダを解析し、抽出色有無情報を取得する。そして、ステップＳ３６では、抽出色有無情報が抽出色有りを示すか否かを判断する。
【００８５】
抽出色有無情報が抽出色無しを示していると判断した場合、処理はステップＳ３７に進む。この場合、ブロックヘッダに後続する符号化データは階調画像データの非可逆符号化データであるものとし、非可逆復号（実施形態では、ＪＰＥＧ復号）を行なう。但し、復号処理中の、符号化データが固定長で示されるビット位置を超えた場合には、その符号化データ以降は、量子化後の値が“０”の符号化データの値であったものとして、復号する。
【００８６】
一方、ステップＳ３６にて、抽出色有無情報が抽出色有りを示していると判断した場合、処理はステップＳ３８に進み、ブロックヘッダに後続する８ビットのデータを抽出色情報（ＲＧＢのいずれか）として読込む。次いで、ステップＳ３９にて、後続するデータは位置情報の可逆符号化データであるものとし、ランレングス復号し、６４ビットの位置情報を生成する。このとき、位置情報の符号化データの先頭ビットは、位置情報がランレングス符号化されているのか否かの情報である。従って、その先頭ビットがランレングス符号化されていることを場合には、復号処理を行ない、ランレングス符号化されていないことを示している場合には、後続する６４ビットのデータをそのまま出力する。
【００８７】
この後、ステップＳ４０にて、ランレングス符号化データに後続する位置から、固定長の終端位置までの符号化データは、階調画像データの非可逆符号化データであるものとし、ＪＰＥＧ復号処理を行ない、１ブロックの１成分の階調画像データを生成する。但し、復号処理中の、符号化データが固定長で示されるビット位置を超えた場合には、その符号化データ以降は、量子化値が“０”の符号化データの値であったものとして、復号する。  そして、ステップＳ４１にて、復号後の階調画像データ中の、位置情報によって抽出色を持つ画素データを抽出色で置換し、位置情報によって非抽出色を持つ画素データはそのままにすることで、着目ブロックの着目色成分の画像データを復元する。
【００８８】
この後、処理はステップＳ４２に進み、全色成分の復号が終えたか否かを判断する。否の場合には、ステップＳ３５以降の処理を行なう。また、全成分の復号処理を終えたと判断した場合には、ステップＳ４３に進み、全成分の復号結果に基づいて１ブロック分のカラー画像データを生成し、出力し、本処理を終える。
【００８９】
また、上記では、１ブロック分の復号処理について説明したが、例えば２×２ブロック（１６×１６画素の画像データ）を復号するのであれば、それぞれの位置を設定し、ステップＳ３２以降の処理を行なえば良い。また、全ブロックを復号するのであれば、個々のブロックについてステップＳ３２以降の処理を行なえば良い。
【００９０】
以上説明したように、本変形例によれば、先に説明した第１の実施形態における画像復号装置と同様の処理をコンピュータプログラムによって実現でき、且つ、同様の作用効果を奏することも可能になる。
【００９１】
＜第２の実施形態＞
図８は本第２の実施形態における符号化装置のブロック構成図である。同図と図１との違いは、置換部１０６と第２の符号化部１０７との間に解像度変換部１２０を介在させた点と、ブロック化部１０１が符号化対象の画像データから１６×１６画素の画像データを切り出す点である。それ以外は、図１と同様であるので、その詳述は省略する。
【００９２】
但し、１ブロックのサイズが１６×１６画素としているので、抽出色決定部１０２が生成する位置情報は１６×１６＝２５６ビットとなる点に注意されたい。
【００９３】
また、解像度変換部１２０は、セレクタ１１０から出力された１６×１６画素の階調画像データを水平、垂直とも１／２の解像度に変換し、８×８画素の画像データを生成する。解像度変換そのものは公知の技術を用いればよい。例えば、オリジナル画像データを水平、垂直方向とも１／２の解像度に変換するには、オリジナル画像中の２×２画素の各成分の平均値を算出し、その平均値を解像度変換後の１画素の成分値として出力すれば良い。
【００９４】
本第３の実施形態によれば、第１の符号化部１０３は１６×１６画素のブロックの位置情報を可逆符号化するのに対し、第２の符号化部１０７は解像度変換後の８×８画素のサブブロックについて非可逆符号化することになる。つまり、オリジナルの符号化対象の画像から生成される階調画像データの非可逆符号化データ量は、第１の実施形態と比較して少ない。
【００９５】
以上であるが、本第３の実施形態における復号装置の構成は、図４の復号部４０７とセレクタ４１０との間に、水平、垂直とも２倍の解像度に変換する解像度変換部を設ければ良いので、説明するまでもないであろう。なお、２倍に解像度変換する技術としては、例えば線形補間処理を採用すればよい。
【００９６】
また、本第３の実施形態の符号化装置をコンピュータプログラムによって実現するためには、図６のフローチャートにおけるステップＳ１２の直前に水平、垂直とも１／２の解像度変換処理を加えればよい。また、画像復号のコンピュータプログラムの場合には、図７のステップＳ３７、Ｓ４０の後に、水平、垂直とも２倍の解像度変換処理を加えればよい。
【００９７】
また、実施形態では、解像度変換部１２０は、１／２の解像度変換を例にしたが、１／３でも構わないし、他の解像度変換率を採用しても構わない。但し、１／３に解像度変換する場合であって、符号化部１０７がＪＰＥＧ符号化を採用している場合には、１ブロックのサイズも、それに応じたサイズにする必要がある。
【００９８】
＜他の実施形態＞
上記実施形態では、符号化対象の画像データの水平、垂直方向の画素数は、非可逆符号化を行なう符号化部１０７の符号化単位であるブロックのサイズの整数倍であるものとして説明した。しかし、これは説明を容易にするためのものであり、必ずしも整数倍である必要はない。符号化対象の画像データの水平、垂直方向の画素数がブロックサイズの整数倍でない場合には、ダミーの画素データを付加して符号化すればよい。この場合、ファイルヘッダには、ダミーデータを除外したオリジナル画像のサイズを記述する。復号装置では、ファイルヘッダに記述されたサイズを超える画素を復号した場合には、ダミー画素であるものとして出力対象外とすれば良いであろう。
【００９９】
また、上記実施形態では、１つのカラー画像データから、色成分の数分のブロック符号化データを生成する例を説明したが、１つのブロック符号化データを生成するようにしても構わない。この場合、１ブロックの符号化データには、抽出色の各成分データを格納することになる。また、実施形態では、１ブロックのサイズを８×８、１６×１６画素としたが、これも本発明を限定するものではない。また、固定長ビット数も、ブロックサイズに応じて適宜変更しても構わない。
【０１００】
また、実施形態では、コンピュータプログラムでもって実現する例についても説明した。通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されており、それをコンピュータが有する読取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータ可読記憶媒体も当然本発明の範疇に入ることは明らかである。
【図面の簡単な説明】
【０１０１】
【図１】第１の実施形態における画像符号化装置のブロック構成図である。
【図２】画像の空間周波数と人間の視覚感度との関係を示す図である。
【図３】第１の実施形態の画像符号化装置で生成される符号化データファイルの構造を示す図である。
【図４】第１の実施形態における画像復号装置のブロック構成図である。
【図５】第１の実施形態をコンピュータプログラムによって実現する際のコンピュータのブロック構成図である。
【図６】画像符号化処理の処理手順を示すフローチャートである。
【図７】画像復号処理の処理手順を示すフローチャートである。
【図８】第３の実施形態における画像符号化装置のブロック構成図である。
【図１】
2008278042.tif 000003
【図２】
2008278042.tif 000004
【図３】
2008278042.tif 000005
【図４】
2008278042.tif 000006
【図５】
2008278042.tif 000007
【図６】
2008278042.tif 000008
【図７】
2008278042.tif 000009
【図８】
2008278042.tif 000010