(57)【特許請求の範囲】
【請求項１】
Ｍ×Ｎ画素で構成されるブロックを単位とする符号化データから、階調画像データを復号する画像復号装置であって、
符号化データを前記ブロックを単位に入力する入力手段と、
入力した１ブロック分の符号化データから、当該符号化データを構成する、（１）当該ブロックに含まれる文字線画の画素値、（２）前記ブロック内の各画素が文字線画、非文字線画のいずれに属するかを示す識別情報の符号化データ、並びに、（３）前記ブロックのサイズよりも小さい、ｍ×ｎ画素（ｍ＜Ｍ、ｎ＜Ｎ）で表わされる階調画像データの符号化データを分離する分離手段と、
前記識別情報の符号化データを復号する識別情報復号手段と、
前記階調画像データの符号化データを復号する階調データ復号手段と、
該階調データ復号手段で得られた、前記ｍ×ｎ画素で表わされる階調画像データ中の１画素から（Ｍ／ｍ）×（Ｎ／ｎ）個の画素を生成することを繰り返すことで、前記ｍ×ｎ画素で表わされる階調画像データから、前記Ｍ×Ｎ画素で表わされる前記ブロックのサイズの階調画像データを生成する拡大手段と、
前記識別情報復号手段で得られた識別情報に従って、前記拡大手段で得られた前記ブロックの中の着目画素が文字線画、非文字線画のいずれに属するか否かを判定し、前記着目画素が非文字線画に属すると判定された場合には、前記拡大手段で得られた階調画像データ中の前記着目画素の位置の画素値を出力し、前記着目画素が前記文字線画に属すると判定した場合には前記分離手段で分離した文字線画の画素値を出力する画像合成手段とを備え、
前記拡大手段は、
前記階調データ復号手段で得られた、前記ｍ×ｎ画素の階調画像データから、当該階調画像データの画素値の取り得る範囲内にあって、代表となる２つの画素値Ｃ０、Ｃ１（Ｃ０≦Ｃ１）を算出する算出手段と、
前記ｍ×ｎ画素の階調画像データ中の着目画素から生成しようとする（Ｍ／ｍ）×（Ｎ／ｎ）個の画素の中の、非文字線画に属する画素数Ｌを、前記識別情報を用いて判定する判定手段と、
前記ｍ×ｎ画素の階調画像データ中の前記着目画素の画素値に従って、前記非文字線画に属するＬ個の画素のうち、Ｌ１（０≦Ｌ１≦Ｌ）で示される個数の画素が画素値Ｃ１を持ち、Ｌ０（＝Ｌ−Ｌ１）で示される個数の画素が画素値Ｃ０を持つように設定する設定手段とを備え、
該設定手段は、前記画素値Ｃ０、Ｃ１を両端とする数直線上の、前記着目画素の画素値で内分する位置に基づいて、前記Ｌ０、Ｌ１を決定することを特徴とする画像復号装置。
【請求項２】
Ｍ×Ｎ画素で構成されるブロックを単位とする符号化データから、階調画像データを復号する画像復号装置であって、
符号化データを前記ブロックを単位に入力する入力手段と、
入力した１ブロック分の符号化データから、当該符号化データを構成する、（１）当該ブロックに含まれる文字線画の画素値、（２）前記ブロック内の各画素が文字線画、非文字線画のいずれに属するかを示す識別情報の符号化データ、並びに、（３）前記ブロックのサイズよりも小さい、ｍ×ｎ画素（ｍ＜Ｍ、ｎ＜Ｎ）で表わされる階調画像データの符号化データを分離する分離手段と、
前記識別情報の符号化データを復号する識別情報復号手段と、
前記階調画像データの符号化データを復号する階調データ復号手段と、
該階調データ復号手段で得られた、前記ｍ×ｎ画素で表わされる階調画像データ中の１画素から（Ｍ／ｍ）×（Ｎ／ｎ）個の画素を生成することを繰り返すことで、前記ｍ×ｎ画素で表わされる階調画像データから、前記Ｍ×Ｎ画素で表わされる前記ブロックのサイズの階調画像データを生成する拡大手段と、
前記識別情報復号手段で得られた識別情報に従って、前記拡大手段で得られた前記ブロックの中の着目画素が文字線画、非文字線画のいずれに属するか否かを判定し、前記着目画素が非文字線画に属すると判定された場合には、前記拡大手段で得られた階調画像データ中の前記着目画素の位置の画素値を出力し、前記着目画素が前記文字線画に属すると判定した場合には前記分離手段で分離した文字線画の画素値を出力する画像合成手段とを備え、
前記拡大手段は、
前記階調データ復号手段で得られた、前記ｍ×ｎ画素の階調画像データから、当該階調画像データの画素値の取り得る範囲内にあって、代表となる２つの画素値Ｃ０、Ｃ１（Ｃ０≦Ｃ１）を算出する算出手段と、
前記ｍ×ｎ画素の階調画像データ中の着目画素から生成しようとする（Ｍ／ｍ）×（Ｎ／ｎ）個の画素の中の、非文字線画に属する画素数Ｌを、前記識別情報を用いて判定する判定手段と、
前記ｍ×ｎ画素の階調画像データ中の前記着目画素の画素値に従って、前記非文字線画に属するＬ個の画素のうち、Ｌ１（０≦Ｌ１≦Ｌ）で示される個数の画素が画素値Ｃ１を持ち、Ｌ０（＝Ｌ−Ｌ１）で示される個数の画素が画素値Ｃ０を持つように設定する設定手段とを備え、
該設定手段は、前記ｍ×ｎ画素の階調画像データ中の前記着目画素に隣接する画素の合計値を算出し、前記ｍ×ｎ画素における前記非文字線画となるＬ個の画素のうち、前記合計値が大きい順にＬ１個の画素の画素値をＣ１とし、残りのＬ０個の画素の画素値をＣ０とすることを特徴とする画像復号装置。
【請求項３】
Ｍ×Ｎ画素で構成されるブロックを単位とする符号化データから、階調画像データを復号する画像復号装置であって、
符号化データを前記ブロックを単位に入力する入力手段と、
入力した１ブロック分の符号化データから、当該符号化データを構成する、（１）当該ブロックに含まれる文字線画の画素値、（２）前記ブロック内の各画素が文字線画、非文字線画のいずれに属するかを示す識別情報の符号化データ、並びに、（３）前記ブロックのサイズよりも小さい、ｍ×ｎ画素（ｍ＜Ｍ、ｎ＜Ｎ）で表わされる階調画像データの符号化データを分離する分離手段と、
前記識別情報の符号化データを復号する識別情報復号手段と、
前記階調画像データの符号化データを復号する階調データ復号手段と、
該階調データ復号手段で得られた、前記ｍ×ｎ画素で表わされる階調画像データ中の１画素から（Ｍ／ｍ）×（Ｎ／ｎ）個の画素を生成することを繰り返すことで、前記ｍ×ｎ画素で表わされる階調画像データから、前記Ｍ×Ｎ画素で表わされる前記ブロックのサイズの階調画像データを生成する拡大手段と、
前記識別情報復号手段で得られた識別情報に従って、前記拡大手段で得られた前記ブロックの中の着目画素が文字線画、非文字線画のいずれに属するか否かを判定し、前記着目画素が非文字線画に属すると判定された場合には、前記拡大手段で得られた階調画像データ中の前記着目画素の位置の画素値を出力し、前記着目画素が前記文字線画に属すると判定した場合には前記分離手段で分離した文字線画の画素値を出力する画像合成手段とを備え、
前記拡大手段は、
前記階調データ復号手段で得られた、前記ｍ×ｎ画素の階調画像データから、当該階調画像データの画素値の取り得る範囲内にあって、代表となる２つの画素値Ｃ０、Ｃ１（Ｃ０≦Ｃ１）を算出する算出手段と、
前記ｍ×ｎ画素の階調画像データ中の着目画素から生成しようとする（Ｍ／ｍ）×（Ｎ／ｎ）個の画素の中の、非文字線画に属する画素数Ｌを、前記識別情報を用いて判定する判定手段と、
前記ｍ×ｎ画素の階調画像データ中の前記着目画素の画素値に従って、前記非文字線画に属するＬ個の画素のうち、Ｌ１（０≦Ｌ１≦Ｌ）で示される個数の画素が画素値Ｃ１を持ち、Ｌ０（＝Ｌ−Ｌ１）で示される個数の画素が画素値Ｃ０を持つように設定する設定手段とを備え、
該設定手段は、前記ｍ×ｎ画素の階調画像データ中の前記着目画素の画素値の大きさに基づいて、前記Ｌ１の値を設定し、
前記分離手段は、１ブロックの符号化データから、更に、前記ブロックに含まれる色数が予め設定された閾値Ｔｈ未満か否かを示す色数データを分離し、
前記色数データが、前記ブロックに含まれる色数が前記閾値Ｔｈ以上あることを示している場合に限り、前記拡大手段は、前記階調データ復号手段で得られた前記ｍ×ｎ画素の階調画像データを線形補間して前記Ｍ×Ｎ画素で表わされる前記ブロックのサイズの階調画像データを生成することを特徴とする画像復号装置。
【請求項４】
前記算出手段は、
前記階調データ復号手段で得られた、前記ｍ×ｎ画素の階調画像データの各画素の値の最小値をＣ０、最大値をＣ１として算出することを特徴とする請求項１乃至３のいずれか１項に記載の画像復号装置。
【請求項５】
Ｍ×Ｎ画素で構成されるブロックを単位とする符号化データから、階調画像データを復号する画像復号装置の制御方法であって、
入力手段が、符号化データを前記ブロックを単位に入力する入力工程と、
分離手段が、入力した１ブロック分の符号化データから、当該符号化データを構成する、（１）当該ブロックに含まれる文字線画の画素値、（２）前記ブロック内の各画素が文字線画、非文字線画のいずれに属するかを示す識別情報の符号化データ、並びに、（３）前記ブロックのサイズよりも小さい、ｍ×ｎ画素（ｍ＜Ｍ、ｎ＜Ｎ）で表わされる階調画像データの符号化データを分離する分離工程と、
識別情報復号手段が、前記識別情報の符号化データを復号する識別情報復号工程と、
階調データ復号手段が、前記階調画像データの符号化データを復号する階調データ復号工程と、
拡大手段が、該階調データ復号工程で得られた、前記ｍ×ｎ画素で表わされる階調画像データ中の１画素から（Ｍ／ｍ）×（Ｎ／ｎ）個の画素を生成することを繰り返すことで、前記ｍ×ｎ画素で表わされる階調画像データから、前記Ｍ×Ｎ画素で表わされる前記ブロックのサイズの階調画像データを生成する拡大工程と、
画像合成手段が、前記識別情報復号工程で得られた識別情報に従って、前記拡大工程で得られた前記ブロックの中の着目画素が文字線画、非文字線画のいずれに属するか否かを判定し、前記着目画素が非文字線画に属すると判定された場合には、前記拡大工程で得られた階調画像データ中の前記着目画素の位置の画素値を出力し、前記着目画素が前記文字線画に属すると判定した場合には前記分離工程で分離した文字線画の画素値を出力する画像合成工程とを備え、
前記拡大工程は、
前記階調データ復号工程で得られた、前記ｍ×ｎ画素の階調画像データから、当該階調画像データの画素値の取り得る範囲内にあって、代表となる２つの画素値Ｃ０、Ｃ１（Ｃ０≦Ｃ１）を算出する算出工程と、
前記ｍ×ｎ画素の階調画像データ中の着目画素から生成しようとする（Ｍ／ｍ）×（Ｎ／ｎ）個の画素の中の、非文字線画に属する画素数Ｌを、前記識別情報を用いて判定する判定工程と、
前記ｍ×ｎ画素の階調画像データ中の前記着目画素の画素値に従って、前記非文字線画に属するＬ個の画素のうち、Ｌ１（０≦Ｌ１≦Ｌ）で示される個数の画素が画素値Ｃ１を持ち、Ｌ０（＝Ｌ−Ｌ１）で示される個数の画素が画素値Ｃ０を持つように設定する設定工程とを含み、
該設定工程は、前記画素値Ｃ０、Ｃ１を両端とする数直線上の、前記着目画素の画素値で内分する位置に基づいて、前記Ｌ０、Ｌ１を決定することを特徴とする画像復号装置の制御方法。
【請求項６】
コンピュータに読み込ませ実行させることで、前記コンピュータを、Ｍ×Ｎ画素で構成されるブロックを単位とする符号化データから、階調画像データを復号する画像復号装置として機能させるプログラムであって、
前記コンピュータを、
符号化データを前記ブロックを単位に入力する入力手段と、
入力した１ブロック分の符号化データから、当該符号化データを構成する、（１）当該ブロックに含まれる文字線画の画素値、（２）前記ブロック内の各画素が文字線画、非文字線画のいずれに属するかを示す識別情報の符号化データ、並びに、（３）前記ブロックのサイズよりも小さい、ｍ×ｎ画素（ｍ＜Ｍ、ｎ＜Ｎ）で表わされる階調画像データの符号化データを分離する分離手段と、
前記識別情報の符号化データを復号する識別情報復号手段と、
前記階調画像データの符号化データを復号する階調データ復号手段と、
該階調データ復号手段で得られた、前記ｍ×ｎ画素で表わされる階調画像データ中の１画素から（Ｍ／ｍ）×（Ｎ／ｎ）個の画素を生成することを繰り返すことで、前記ｍ×ｎ画素で表わされる階調画像データから、前記Ｍ×Ｎ画素で表わされる前記ブロックのサイズの階調画像データを生成する拡大手段と、
前記識別情報復号手段で得られた識別情報に従って、前記拡大手段で得られた前記ブロックの中の着目画素が文字線画、非文字線画のいずれに属するか否かを判定し、前記着目画素が非文字線画に属すると判定された場合には、前記拡大手段で得られた階調画像データ中の前記着目画素の位置の画素値を出力し、前記着目画素が前記文字線画に属すると判定した場合には前記分離手段で分離した文字線画の画素値を出力する画像合成手段として機能させ、
前記拡大手段は、
前記階調データ復号手段で得られた、前記ｍ×ｎ画素の階調画像データから、当該階調画像データの画素値の取り得る範囲内にあって、代表となる２つの画素値Ｃ０、Ｃ１（Ｃ０≦Ｃ１）を算出する算出手段と、
前記ｍ×ｎ画素の階調画像データ中の着目画素から生成しようとする（Ｍ／ｍ）×（Ｎ／ｎ）個の画素の中の、非文字線画に属する画素数Ｌを、前記識別情報を用いて判定する判定手段と、
前記ｍ×ｎ画素の階調画像データ中の前記着目画素の画素値に従って、前記非文字線画に属するＬ個の画素のうち、Ｌ１（０≦Ｌ１≦Ｌ）で示される個数の画素が画素値Ｃ１を持ち、Ｌ０（＝Ｌ−Ｌ１）で示される個数の画素が画素値Ｃ０を持つように設定する設定手段とを備え、
該設定手段は、前記画素値Ｃ０、Ｃ１を両端とする数直線上の、前記着目画素の画素値で内分する位置に基づいて、前記Ｌ０、Ｌ１を決定することを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムを格納したことを特徴とするコンピュータが読み込み可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像の復号技術に関するものである。
【背景技術】
【０００２】
従来、画像を圧縮する手法の１つとして、ブロック符号化が知られている。通常のブロック符号化は、画像を小ブロックに分割して符号化するものであるが、ブロック毎の符号量がマチマチであったり、復号時に他のブロック情報が必要であったりしており、圧縮した状態での編集処理が不可能であった。この課題を解決する手法として、特許文献１では、ブロック単独での復号が可能で、かつ、ブロック単位の符号量を一定にする固定長符号化が提案されている。
【０００３】
この特許文献１では、ブロック内の画像を文字や線画等のエッジの鮮明さが重要な部分（以下、単に文字線画という）と、自然画などの階調性が重要な部分（以下、階調画像という）に分離し、それぞれ別の符号化方式で圧縮するというものである。また、階調画像の部分は、その圧縮率を更に上げるため、ブロックの水平、垂直方向のサイズを１／２に縮小して符号化している。復号して得られた階調画像を、水平、垂直ともオリジナルのブロック画像の水平、垂直とも１／２のサイズであるので、それぞれ２倍に拡大して元の大きさに戻し、復号した文字線画と合成してブロック画像を復元する、というものである。
【０００４】
ここで用いられる縮小と拡大の方法としては、既に多くの手法が提案されている。例えば、縮小方法としては特許文献２に示すような２×２画素の平均値を、縮小後の１画素の値とする方法などが用いられていた。一方、拡大方法としては、一般的には公知の最近傍法や線形補間法などが用いられていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２７８０４２号公報
【特許文献２】特開２００９−７７１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、階調画像と言えども、濃度や輝度の急峻に変化する部分が重要なものも存在する。この場合、従来通りの拡大処理を行ってしまうと、本来、濃度や輝度が急峻であるべき箇所が、スムージングされ、元々存在していた模様などがぼけてしまうという問題があった。例えば、前述したような画素平均による縮小と、最近傍法による拡大の組み合わせでは本来２×２画素の画像内に存在したエッジは２×２画素の単一色の画素になってしまい再現することが出来ない。このように非抽出部による画像のぼやけにより、復号画像の品質劣化が検知されてしまう場合があるという問題があった。
【０００７】
本発明ではかかる問題に対して、上記のような符号化データを復号しつつも、オリジナル階調画像のエッジ部分を、これまで以上に再現し得る復号技術を提供しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため、たとえば本発明の画像復号装置は以下の構成を備える。すなわち、
Ｍ×Ｎ画素で構成されるブロックを単位とする符号化データから、階調画像データを復号する画像復号装置であって、
符号化データを前記ブロックを単位に入力する入力手段と、
入力した１ブロック分の符号化データから、当該符号化データを構成する、（１）当該ブロックに含まれる文字線画の画素値、（２）前記ブロック内の各画素が文字線画、非文字線画のいずれに属するかを示す識別情報の符号化データ、並びに、（３）前記ブロックのサイズよりも小さい、ｍ×ｎ画素（ｍ＜Ｍ、ｎ＜Ｎ）で表わされる階調画像データの符号化データを分離する分離手段と、
前記識別情報の符号化データを復号する識別情報復号手段と、
前記階調画像データの符号化データを復号する階調データ復号手段と、
該階調データ復号手段で得られた、前記ｍ×ｎ画素で表わされる階調画像データ中の１画素から（Ｍ／ｍ）×（Ｎ／ｎ）個の画素を生成することを繰り返すことで、前記ｍ×ｎ画素で表わされる階調画像データから、前記Ｍ×Ｎ画素で表わされる前記ブロックのサイズの階調画像データを生成する拡大手段と、
前記識別情報復号手段で得られた識別情報に従って、前記拡大手段で得られた前記ブロックの中の着目画素が文字線画、非文字線画のいずれに属するか否かを判定し、前記着目画素が非文字線画に属すると判定された場合には、前記拡大手段で得られた階調画像データ中の前記着目画素の位置の画素値を出力し、前記着目画素が前記文字線画に属すると判定した場合には前記分離手段で分離した文字線画の画素値を出力する画像合成手段とを備え、
前記拡大手段は、
前記階調データ復号手段で得られた、前記ｍ×ｎ画素の階調画像データから、当該階調画像データの画素値の取り得る範囲内にあって、代表となる２つの画素値Ｃ０、Ｃ１（Ｃ０≦Ｃ１）を算出する算出手段と、
前記ｍ×ｎ画素の階調画像データ中の着目画素から生成しようとする（Ｍ／ｍ）×（Ｎ／ｎ）個の画素の中の、非文字線画に属する画素数Ｌを、前記識別情報を用いて判定する判定手段と、
前記ｍ×ｎ画素の階調画像データ中の前記着目画素の画素値に従って、前記非文字線画に属するＬ個の画素のうち、Ｌ１（０≦Ｌ１≦Ｌ）で示される個数の画素が画素値Ｃ１を持ち、Ｌ０（＝Ｌ−Ｌ１）で示される個数の画素が画素値Ｃ０を持つように設定する設定手段とを備え、
該設定手段は、前記画素値Ｃ０、Ｃ１を両端とする数直線上の、前記着目画素の画素値で内分する位置に基づいて、前記Ｌ０、Ｌ１を決定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、オリジナル階調画像のエッジ部分を、これまで以上に再現することが可能になる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る画像復号化装置のブロック構成図。
【図２】第２の実施形態に係る画像符号化装置のブロック構成図。
【図３】第２の実施形態に係る画像復号化装置のブロック構成図。
【図４】固定長符号のデータフォーマットを示す図。
【図５】拡大の手順を示すフローチャート。
【図６】拡大処理における画素位置関係を示す図。
【図７】拡大処理の動作説明図。
【図８】符号化処理の概要を示す図。
【図９】画素値Ｃ０、Ｃ１を持つ画素数を決定する原理を示す図。
【発明を実施するための形態】
【００１１】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１２】
［第１の実施形態］
先ず、本第１の実施形態における復号に係る構成並びにその処理を説明する前に、符号化装置における符号化の概要を説明する。ここでは、符号化装置としてデジタルカメラを例にして説明する。また、説明を簡単にするため、対象とする画像がモノクロ画像（色成分の数が１つ）とし、図８における画像８００がデジタルカメラで撮影した画像を示している。画像８００には、撮影日を示す文字画像が、撮影したタイミングで階調画像に合成されている。さて、この画像を符号化する場合、１６×１６画素で構成されるブロックを単位に符号化していく。ここで、画像８００における文字線画の一部（文字線画画素群８０２）を包含するブロック８０１を符号化する場合を考察する。この場合、デジタルカメラの内部のプロセッサは、着目ブロックにおける文字線画の画素の色を抽出し、且つ、各画素毎に、それが文字線画の画素か非文字線画の画素か（抽出色の画素か、非抽出色の画素か）を示す識別情報を生成する。文字線画、階調画像のいずれに属するのかが識別できれば良いので、識別情報を構成する各画素に対応するエレメントは１ビットで良い。図示の場合、１つのブロックは１６×１６画素で構成されいるので、識別情報は１６×１６ビットで良いことになる。図示の参照符号８０３が、この識別情報である。識別情報８０３に対しては、上記から明らかなように、可逆符号化を行う。可逆符号化としては、ランレングス符号化が好適である。なお、オリジナルのブロック内の文字線画画素群８０２を復元するためには、識別情報８０３に加えて、文字線画画素群８０２の色を示す情報があればよい。すなわち、識別情報のエレメントが“１”の画素を、その色の値で置換すれば、元の文字画素とその色が復元できる。
【００１３】
階調画像に適した符号化として、非可逆のＪＰＥＧが知られている。しかし、ＪＰＥＧでは、符号化しようとする画像に高周波成分が多く含まれている場合、その符号化効率が悪くなる。ここで、ブロック８０１に着目すると、直交変換にて高周波成分データの要因となる文字線画画素群８０２が含まれるので、ブロック８０１をそのままＪＰＥＧ符号化しても高い圧縮率は望めない。そこで、この文字線画画素群８０２を構成する各画素の値を、非文字線画の画素の平均値で置換した画素群８０５を生成し、それを含むブロック８０４を生成する。このブロック８０４をＪＰＥＧ符号化しても良いが、更に圧縮率を高めるため、ブロック８０４における２×２画素を単位とし、その平均値を算出し、算出した平均値が１つの画素の値として扱うことで、８×８画素で構成される小ブロック８０６を生成する。この小ブロック８０６に対して、ＪＰＥＧ符号化を行う。
【００１４】
上記は、オリジナルの１６×１６画素のブロック内に、文字線画画素群８０２が存在する場合であったが、ブロック内に文字線画が存在しない場合には、１ブロックの符号化データには、識別情報、文字の色の符号化データは不要であり、そのブロックを水平、垂直とも１／２にした画像に対してＪＰＥＧ符号化データがあれば良い。ただし、各ブロックの符号化データが、いずれのモードであるのかを判別できないと、正しい復号処理が行えないので、１ブロックの符号化データの先頭には１ビットのモード情報を付加する。
【００１５】
図４（ａ）は、文字線画画素群を内包しないブロックの符号化データのデータ構造を示し、同図（ｂ）は文字線画画素を内包するブロックの符号化データのデータ構造を示している。
【００１６】
なお、上記ではブロックのサイズを１６×１６画素とし、階調画像に対する縮小率は水平、垂直とも１／２としたが、これらは一例である。例えば、ブロックのサイズや縮小率に関する情報は、符号化データファイルのヘッダ部に格納しておき、それに従って復号するようにすればよいであろう。例えば、１ブロックのサイズとして、２４×２４画素とし、水平、垂直とも１／３や１／２倍にしても構わない。
【００１７】
以上、本第１の実施形態における画像復号装置が復号する対象の符号化データの構造について説明した。次に、実施形態における画像復号装置について説明する。
【００１８】
図１は、第１の実施形態の画像復号装置のブロック図である。図示において、アンパック部１０１は、１ブロック分の符号化データを入力し、先頭のモード情報から、入力した符号化データが図４（ａ）、（ｂ）のいずれの符号化データであるかを判定する。そして、図４（ｂ）のデータ構造の符号化データであると判断した場合、アンパック部１０１は入力された１ブロック分の符号化データから、色データ、識別情報の符号化データ、及び、階調画像の符号化データとを分離し、色データを画像合成部１０５に、識別情報の符号化データを識別情報復号部１０２に、階調画像の符号化データを階調データ復号部１０３にそれぞれ出力する。
【００１９】
なお、入力した１ブロックの符号化データが、図４（ａ）のデータ構造であった場合、アンパック部１０１は、予め用意した、ブロック内の全画素が非文字線画であることを示す識別情報の符号化データを識別情報復号部１０２に出力し、モード情報に後続する全符号化データを階調データ復号部１０３に出力する。このとき、アンパック部１０１は色データを出力してもしなくても構わない。図４（ａ）のデータ構造の場合、画像合成部１０５はその色データを無視するからである。
【００２０】
識別情報復号部１０２は、分離された識別情報を復号（ランレングス復号）し出力する。また、階調データ復号部１０３は、分離された階調データを復号（ＪＰＥＧ復号）し、その結果（８×８画素）を出力する。拡大部１０４は入力された階調データを拡大して原画像の１ブロック（１６×１６画素）の解像度に戻し出力する。合成部１０５は、入力された色データ、識別情報、拡大後の階調画像データに基づき、１６×１６画素の１ブロック分の階調画像を生成し出力する。
【００２１】
識別情報復号部１０２は入力された圧縮データに対して、可逆の復号処理（ランレングス復号）を行い、１６×１６画素分の識別情報を復号し、その結果を、画像合成部１０５、及び、拡大部１０４に出力する。識別情報は先に説明したように、１６×１６ビットで構成され、１ビットが１画素に対応し、その値が“１”の場合、その画素が文字線画の画素、すなわち、抽出色の画素を示す。また、“０”の場合、その画素が非文字線画（階調画像）の画素、すなわち、非抽出色の画素を示す。
【００２２】
階調データ復号部１０３は、入力された階調画像の符号化データに対して復号処理（ＪＰＥＧ復号）を行い、８×８画素の多値の階調画像データを出力する。
【００２３】
拡大部１０４は、階調データ復号部１０３より入力された階調画像データを拡大する処理を行う。この拡大部１０４の拡大の処理手順を示すのが図５のフローチャートであり、図６はその説明のための図である。以下、図５、図６を用いて、実施形態における拡大部１０４の処理内容を説明する。
まず、Ｓ１において、拡大部１０４は、入力された８×８画素の階調画像データの中から画素値の最小値と最大値を探して記憶する。ここで、得られた最小値をＣ０、最大値をＣ１とする。図６の点線太枠６０１は、着目している８×８画素の画像データを示している。図示の如く、各画素は「行、列」で特定され、画素「００」から画素「７７」までが入力画素であり、その中から画素値の最小値Ｃ０と最大値Ｃ１を探す（Ｃ０≦Ｃ１の関係にある）。尚、ここでは最小値と最大値としたが、特にそれらに限る必要は無く、Ｃ０とＣ１は非抽出画素の中の小さい値と大きい値を代表する値であればよい。例えば点線太枠６０１内部の多値データの平均値を求め、平均値未満の画素群の平均値をＣ０、平均値以上の画素群の平均値をＣ１としても良い。
【００２４】
次いで、Ｓ２にて、拡大部１０４は、復号して得られた多値画像データ中の１画素を、２×２画素（以下、小画素という）に分割する。図６には画素「２２」（図中には明示していない、画素２１と画素２３に挟まれた画素）を、２×２に区切られている様子を示している。そして、拡大部１０４は、それら２×２の小画素中、幾つの小画素の画素値をＣ０とし、幾つをＣ１とするかを決定する。以下にその具体例を示す。
【００２５】
先ず、拡大部１０４は、復号した８×８個の階調画像データ中の１つの画素に着目し、着目画素に幾つの非抽出画素が存在するか（幾つの非文字線画の画素が存在するか）を、識別情報復号部１０２からの識別情報に基づき判定する。ここで、８×８個の階調画像データ中の着目画素をＰ（ｘ，ｙ）（ｘ，ｙ＝０，１，…，７のいずれか）とし、識別情報復号部１０２で復号された座標（ｉ，ｊ）（ｉ，ｊ＝０，１，２，…１５）の識別情報のエレメントをＩ（ｉ，ｊ）と表わしたとき、着目画素Ｐ（ｘ，ｙ）に、存在する抽出画素の個数Ｊは、次の通りである。
Ｊ={I(2x,2y) + I(2x+1,2y) + I(2x,2y+1) + I(2x+1,2y+1)}
【００２６】
着目画素Ｐ（ｘ，ｙ）には最大で４つの抽出画素（文字線画）が存在し得るので、着目画素に含まれる非抽出画素数Ｌは、Ｌ＝４−Ｊで求められる。すなわち、着目画素に含まれる非抽出画素の個数Ｌは０乃至４の範囲内の値となる。そして、着目画素Ｐ（ｘ，ｙ）の画素値をＩｍと表わしたとき、画素値Ｃ０の個数Ｌ０、画素値Ｃ１の個数Ｌ１を次の様にして決定した。
（ｉ）非抽出画素の個数Ｌ＝０の場合：
Ｌ０＝Ｌ１＝０
（ii）非抽出画素の個数Ｌ＝１の場合：
（ii-1）  Ｉｍ＜（Ｃ０＋Ｃ１）／２の場合：
Ｌ０＝１、Ｌ１＝０
（ii-2）  （Ｃ０＋Ｃ１）／２≦Ｉｍの場合：
Ｌ０＝０、Ｌ１＝１
（iii）非抽出画素の個数Ｌ＝２の場合：
（iii-1）  Ｉｍ＜（２×Ｃ０＋Ｃ１）／３の場合：
Ｌ０＝２、Ｌ１＝０
（iii-2）  （２×Ｃ０＋Ｃ１）／３≦Ｉｍ＜（Ｃ０＋２×Ｃ１）／３の場合：
Ｌ０＝１、Ｌ１＝１
（iii-3）  （Ｃ０＋２×Ｃ１）／３≦Ｉｍ
Ｌ０＝０、Ｌ１＝２
（iv）非抽出画素の個数Ｌ＝３の場合：
（iv-1）  Ｉｍ＜（３×Ｃ０＋Ｃ１）／４の場合：
Ｌ０＝３、Ｌ１＝０
（iv-2）  （３×Ｃ０＋Ｃ１）／４≦Ｉｍ＜（Ｃ０＋Ｃ１）／２の場合：
Ｌ０＝２、Ｌ１＝１
（iv-3）  （Ｃ０＋Ｃ１）／２≦Ｉｍ＜（Ｃ０＋３×Ｃ１）／４の場合：
Ｌ０＝１、Ｌ１＝２
（iv-4）  （Ｃ０＋３×Ｃ１）／４≦Ｉｍの場合：
Ｌ０＝０、Ｌ１＝３
（ｖ）非抽出画素の個数Ｌ＝４の場合：
（v-1）  Ｉｍ＜（４×Ｃ０＋Ｃ１）／５の場合：
Ｌ０＝４、Ｌ１＝０
（v-2）  （４×Ｃ０＋Ｃ１）／５≦Ｉｍ＜（３×Ｃ０＋２×Ｃ１）／５の場合：
Ｌ０＝３、Ｌ１＝１
（v-3）  （３×Ｃ０＋２×Ｃ１）／５≦Ｉｍ＜（２×Ｃ０＋３×Ｃ１）／５の場合：
Ｌ０＝２、Ｌ１＝２
（v-4）  （２×Ｃ０＋３×Ｃ１）／５≦Ｉｍ＜（Ｃ０＋４×Ｃ１）／５の場合：
Ｌ０＝１、Ｌ１＝３
（v-5）  （Ｃ０＋４×Ｃ１）／５≦Ｉｍの場合：
Ｌ０＝０、Ｌ１＝４
【００２７】
上記のようにして、着目画素Ｐ（ｘ、ｙ）における画素値Ｃ０、Ｃ１を持つ小画素の個数Ｌ０、Ｌ１を決定すると、拡大部１０４は、非文字線画として生成すべきＬ個の画素中の、Ｌ０個の画素の値をＣ０、Ｌ１個の画素の値をＣ１にする。上記の如く、着目画素Ｐ（ｘ，ｙ）の画素値Ｉｍが大きければ大きい程、大きな画素値であるＣ１を持つ小画素の個数Ｌ１が大きな値となり、画素値Ｉｍの値が小さいほど、小画素の個数Ｌ１が少なくなる。
【００２８】
上記を数学的に示すのであれば、図９に示す通りである。図素の如く、画素値Ｃ０、Ｃ１を両端とする数直線を考察する。そして、今、非抽出画素の個数Ｌが仮に「２」であった場合、それに１を加算した数“３”で、その数直線を等分割する。ここで、各分割区間について、画素値Ｃ０、Ｃ１の個数Ｌ０、Ｌ１を、図示の様に様に割り当てる。そして、前記着目画素の画素値Ｉｍで、その数直線上を内分する位置に基づいて、Ｌ０、Ｌ１を決定する。図示の場合、画素値Ｉｍは、一番右端の領域に属するので、Ｃ１の個数Ｌ１が“２”、Ｃ０の個数が“０”として決定できる。
【００２９】
さて、Ｓ３では、拡大部１０４は、画素値Ｃ０、Ｃ１を持つ小画素の配置位置を決定する。決定方法として、非抽出画素の位置であって、且つ着目画素に隣接する画素の合計値が大きい順にＬ１個の画素の画素値をＣ１に設定し、残ったＬ０個の画素の画素値をＣ０に設定する。
【００３０】
Ｓ２と同様に図６の２行、２列目の画素「２２」を例にして説明する。まず、黒く塗りつぶした小画素を着目小画素とし、それが非抽出画素（非文字線画の画素）であるとする。この場合、着目小画素に隣接する３つの画素の画素値を加算して指標値を得る。図６では、かぎ型の太枠６０２で囲まれた画素「１１」と画素「１２」と画素「２１」の３画素の画素値を加算する。なお、着目小画素が画素「００」や画素「０１」のようにブロックの端に存在する場合は、図示の如く、図６のように端の画素をブロックの境界で折り返して参照画素とする（同じ番号の画素は同じ値の画素であることを示す）。次に、着目小画素を２×２の小領域の右上の画素にして同じように指標値を計算する。着目画素が右上の場合、参照画素は画素「１２」と画素「１３」と画素「２３」となる。小領域内の全ての非抽出画素に関して指標値を計算し、指標値の大きい位置から順番に、ステップＳ２で決めたＣ１の個数だけ、画素値Ｃ１を持つ小画素を配置していき、残った位置の画素値をＣ０とする。指標値が等しい画素の個数がＣ１の残り個数より大きくなった場合は、左上を最も優先度を高くし、以下順に右上・左下・右下の順に優先度を下げていく。なお、小領域内の抽出画素に関しては、次の画像合成部にて上書きされるため、どんな値にしても良い。この決定作業を点線太枠６０１内の全画素に対して行うことで、１６×１６個の小画素で構成される画像、すなわち、オリジナルの階調画像データが生成され、合成部１０５に出力される。
【００３１】
具体例を図７に示す。図７（ａ）は、図６の画素「０１」の位置を中心とする周囲の３×３画素をピックアップした図である。点線太線は、図６における点線太枠６０１を表しており、括弧内の数字は画素値を表している。図７（ｂ）は、識別情報を表しており、斜線部分が“１”の画素位置（抽出色画素＝文字線画の画素）、空白部分が“０”（非抽出色画素＝非文字線画の画素）を示している。
【００３２】
ステップＳ１の結果、仮に、（Ｃ０，Ｃ１）＝（３０，７０）が得られたと仮定して、着目画素「０１」の位置についてステップＳ２から説明する。識別情報における画素「０１」に対するエレメントを参照すると、図７（ｂ）より非抽出画素の個数Ｍ＝３が得られる。よってステップＳ２の説明で記載した場合分けの（ｉｖ）が該当する。次に、図７（ａ）よりＩｍ＝５２なので、３つめの不等式(iv-3)が成立し、画素値Ｃ０を持つ小画素数が１、画素値Ｃ１を持つ小画素数が２という結果が得られる。
【００３３】
次に、ステップＳ３の具体例を説明する。まず、２×２個の小画素領域のうち、左上を着目小画素とすると、指標値は５０＋５２＋５０で計算でき、１５２が得られる。同様に右上の指標値は５２＋５３＋５３＝１５８、左下は５０＋４６＋４８＝１４４である。右下は抽出画素なので、計算する必要はない。従って、ステップＳ２で、Ｃ１が２個と決定しているので、最も大きな指標値である右上と２番目に大きい左上に小画素の値をＣ１とし、最小である左下に小画素の画素値をＣ０とする。最終的に図７（ｃ）のような拡大画像が得られる。ただし、図７（ｃ）は画素「０１」の位置だけ計算した図であり、＊は抽出画素であり、次に説明する合成部１０５で抽出色データに置き換えられるので、画素値は何を与えても良い。
【００３４】
合成部１０５では、入力された識別情報（１６×１６個のエレメントで構成される）と拡大後の階調画像データ（１６×１６画素）をもとにブロック画像を生成して出力する。ここでは、識別情報、階調画像ともラスタースキャン順に、合成処理を行うものとする。識別情報のエレメントの値が“１”の時、その画素は抽出画素を示すので、合成部１０５はアンパック部１０１から供給された色データの値（文字線画の色）を選択し、出力する。一方、識別情報のエレメントの値が“０”の時、その画素は非抽出画素を示すので、拡大部１０４から出力された、該当する画素値を選択し、出力する。
【００３５】
以上のように第１の実施形態に示した拡大方法によれば、符号化時の縮小処理においてぼけてしまった原画像の非抽出画素に存在したエッジなどを、復号時の拡大処理で復元することができ、画質の劣化を防ぐことが可能となる。
【００３６】
［第２の実施形態］
第２の実施形態では、ブロック画像内に存在する色数に応じて拡大方法を選択する例を説明する。着目ブロック内の非抽出画素に存在する色数が２色以上Ｔｈ色未満であることを条件とし、この条件に該当する場合にのみ第１の実施形態に示した拡大方法を適用する。即ち、非抽出画素の階調性が低い（色数が少ない）場合（解像性が重要な場合）は、エッジの再現を目的として第１の実施形態に記した拡大方法を用い、階調性が高い場合（色数が多い＝階調性が重要な場合）は通常の拡大を行うというものである。なお、条件として、「２色以上」としたのは、１色では非抽出画素にエッジが存在しないためである。ただし、１色の場合、すなわち、着目ブロック内の全非抽出画素が同じ色の場合には、復号化時にＣ０＝Ｃ１となり、自動的に一色のみで再現されるので、「２色以上」を条件から外しても構わない。すなわち、Ｔｈ色未満かどうかで拡大法を決定しても構わない。また、Ｔｈを大きくしすぎると非抽出画素が高階調である時に階調性が失われる場合がある。閾値Ｔｈとしては、通常は、３あるいは４程度の値にしておくのが適当ではある。
【００３７】
第２の実施形態における１ブロックの符号化データのデータ構造は、図４（ａ）、（ｃ）の２種類となる。同図（ａ）は、第１の実施形態と同じ意味である。図４（ｃ）は、抽出色画素が存在した場合の符号化データのデータ構造を示している。図４（ｂ）と比較して、モードデータの次の１ビットに、そのブロック内の非抽出画素に存在する色数が閾値Ｔｈ色未満（或いは２色以上Ｔｈ色未満）であるか否かを示すビットを割り当てた（満たしている場合には“１”、満たしていない場合には“０”とする）。
【００３８】
図２に、本第２の実施形態における画像符号化装置の構成例を示す。抽出部２０１は入力されたブロック画像（１６×１６画素とする）から、文字線画の画素の色を抽出して色データとしてパック部２０７に出力する。また、抽出部２０１は、各画素毎に、その画素が文字線画画素／非文字線画画素（或いは、抽出色画素／非抽出色画素）のいずれであるかを示すデータを生成し、１６×１６画素分のデータを識別情報として識別情報符号化部２０３に出力する。色数判定部２０２は入力されたブロック画像の非抽出画素に含まれる色数を計数し、その色数が閾値Ｔｈ未満であるか否かを示す１ビットのデータを色数データ（図４（ｃ）参照）としてパック部２０７に出力する。識別情報符号化部２０３は抽出部２０１から出力された識別情報（１６×１６ビット）を可逆符号化（ランレングス符号化が効果的である）し、その符号化結果をパック部２０７に出力する。置換部２０４は、抽出部２０１からの識別情報に基づき、非文字線画（非抽出色画素）の平均値を算出する。そして、置換部２０４は、非文字線画画素についてはそのまま通過させ、文字線画画素（抽出色画素）については、その画素値を算出した平均値で置換して出力する。この結果、着目ブロックには、文字線画が存在せず、実質的に高周波成分が除去された１６×１６画素の階調画像データが生成される。縮小部２０５は、入力した１６×１６画素の階調画像データ中の２×２画素を単位に、その平均値を算出し、算出した平均値を画素値とする画素データを出力することで、８×８画素の縮小階調画像データを出力する。なお、縮小部２０５は、２×２画素の平均値を算出するものとしたが、１６×１６画素の画像データを８×８画素の画像データに縮小できれば良いので、そのアルゴリズムは上記に限定されない。例えば、入力した１６×１６画素の階調画像データ中の２×２画素の１つをサンプリングして、それを８×８画素の縮小階調画像データとして出力しても構わない。階調データ符号化部２０６は、入力した８×８画素の縮小階調画像データを非可逆符号化（ＪＰＥＧが好適である）し、その結果をパック部２０７に出力する。パック部２０７は、抽出部２０１から文字線画の色データを受信した場合（もしくは、文字線画が存在することを示す独立した制御信号を受信した場合としても良い）、入力した各データを結合し、図４（ｃ）のようなデータ構造の符号化データを生成し、出力する。一方、パック部２０７は、抽出部２０１から文字線画の色データを受信しない場合（もしくは、文字線画が存在しないことを示す独立した制御信号を受信した場合）、入力した各データを結合し、図４（ａ）のようなデータ構造の符号化データを生成し、出力する（識別情報、色データは無視する）。
【００３９】
次に、本第２の実施形態における画像復号装置について説明する。図３に第２の実施形態における画像復号装置の構成例を示す。第１の実施形態と異なるのは、アンパック部３０１の動作と、第２の拡大部３０２と選択部３０３が追加されたことである。その他の構成要素とその動作は全て第１の実施形態と同じである。従って、ここではアンパック部３０１の動作の説明と、新たに追加された第２の拡大部３０２と選択部３０３の説明のみを行う。
【００４０】
アンパック部３０１は、入力された１ブロック分の符号化データから、モードデータ、色数データ、識別情報、階調画像に分離する。色数データの値は選択部３０３へ出力される。
【００４１】
第２の拡大部３０２は入力された復号後の多値画像データを拡大する。この第２の拡大部３０２は２色以上Ｔｈ色未満の条件に該当しない画像に対する拡大処理を行うモジュールであり、線形補間のような公知の手法を用いれば良い。選択部３０３では、アンパック部より入力される色数データの値に従って、値が“１”であれば拡大部１０４からの出力を、“０”（色数が閾値Ｔｈ以上の場合）であれば第２の拡大部３０３からの出力を選択して出力する。
【００４２】
上述したように色数に応じて拡大方法を選択することで、画像の階調性に応じてより適切な解像度変換を行うことが可能となる。
【００４３】
上記第１，第２の実施形態では、１ブロックのサイズを１６×１６画素とし、階調画像データが８×８画素の画像として縮小され符号化されているものとして説明したが、上記は例であって、かかるサイズによって本願発明が限定されるものではない。すなわち、１ブロックのサイズや階調画像の符号化データの画素数（実施形態では８×８画素）を示す情報をファイルヘッダに格納しておき、これを用いて復号しても良い。仮に、１ブロックが、その水平方法Ｍ画素、垂直方向Ｎ画素で表わされるＭ×Ｎ画素で表わされ、縮小階調画像のサイズがｍ×ｎ画素（ｍ＜Ｍ，ｎ＜Ｎ）であった場合、拡大部１０４は復号して得られたｍ×ｎ画素の１画素から、（Ｍ／ｍ）×（Ｎ／ｎ）個の画素を生成することを繰り返せば、元のＭ×Ｎ画素のブロックの階調画像を生成できる。
【００４４】
なお、上記第１、第２の実施形態では、１ブロックの符号化データのデータ構造は図４（ａ）乃至（ｃ）のいずれかであるものとして説明した。図４（ａ）乃至（ｃ）のいずれの場合であっても、１ブロック分の符号化データの最後は階調画像の非可逆符号化データは配置される。従って、仮に階調データの符号化データがその途中で打ち切りを行ったとしても、或る程度の階調画像が再現できることは約束される。すなわち、復号に必要な部分は、図４（ｂ）や図４（ｃ）における１ブロックの符号化データの先頭から、最悪の符号長となった識別情報の符号化データ＋所定のビット数の固定長とすることができる。
【００４５】
また、実施形態ではデジタルカメラに適用する例を説明したが、画像符号化、復号に係る処理は、デジタルカメラだけでなく、プリンタ等の多くの技術分野に用いられるものであるので、上記実施形態によって本発明が限定されるものではない。
【００４６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005597028.tif 000002
【図２】
0005597028.tif 000003
【図３】
0005597028.tif 000004
【図４】
0005597028.tif 000005
【図５】
0005597028.tif 000006
【図６】
0005597028.tif 000007
【図７】
0005597028.tif 000008
【図８】
0005597028.tif 000009
【図９】
0005597028.tif 000010