(57)【要約】【課題】  文字線画に好適な符号化、階調画像に好適な符号化の両方を持つ装置であって、ブロック単位に固定長の符号化データを生成しつつ、且つ、符号化をより高速に行う。【解決手段】  第１の符号化部４は、着目ブロックにおける文字線画に属する画素の代表画素値、及び、各画素毎の文字線画／非文字線画を識別する識別情報を可逆符号化する。第２の符号化部５は、着目ブロック内の文字線画に属する画素の画素値が非文字線画に属する画素の平均値で置換された、高周波成分の無い或いは少ないブロックを非可逆符号化する。多重化部１０は、第１，第２の符号化部で生成された符号化データを多重化する。着目ブロック内の全画素が同じ色である場合、第１又は第２の符号化部で生成した場合に相当する符号化データを生成し、第３の符号化部６が生成し、多重化部９はこの第３の符号化部６からの符号化データを出力する。【選択図】  図１
2012095228.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化する画像符号化装置であって、
符号化対象の画像から、複数画素で構成されるブロックを入力する入力手段と、
入力した着目ブロック内の各画素の画素値を解析し、前記着目ブロック内に文字線画に属する画素があるか否かを判定する解析手段と、
該解析手段が前記着目ブロック内に文字線画に属する画素があると判定した場合には文字線画の代表画素値と、各画素毎に文字線画に属するか非文字線画に属するかを示す識別情報を生成する生成する生成手段と、
該生成手段で生成した文字線画の代表画素値と識別情報を可逆符号化し、第１の形式の符号化データを生成する第１の符号化手段と、
前記解析手段が前記着目ブロック内に文字線画に属する画素があると判定した場合、非文字線画に属する画素の平均画素値で、文字線画に属する画素の画素値を置換して、非文字線画の画素で構成されるブロックを生成する置換手段と、
前記解析手段が前記着目ブロック内に文字線画に属する画素があると判定した場合には前記置換手段で得られたブロックを、前記解析手段が前記着目ブロック内に文字線画に属する画素がないと判定した場合には前記置換手段による置換前のブロックを非可逆符号化し、第２の形式の符号化データを生成する第２の符号化手段と、
前記第１の符号化手段、及び、前記第２の符号化手段で生成された符号化データを多重化すると共に、ブロックヘッダには前記第１の形式の符号化データの有無、前記第２の形式の符号化データの有無を示す情報を格納した固定長のブロック符号化データを生成し、出力する多重化手段とを備え、更に、
前記入力手段で入力した前記着目ブロックの全画素の画素値が表わす色が互いに同じであるか否かを判定する判定手段と、
該判定手段が前記着目ブロックの全画素が同じ色を持つと判定した場合、前記第１の符号化手段及び前記第２の符号化手段による前記着目ブロックに対する符号化を中止し、予め記憶された全画素が同じ色とする前記第１，第２の形式の符号化データと前記着目ブロックの画素値とから、前記第１の形式の符号化データ、又は、前記第２の形式符号化データのいずれか一方を生成する第３の符号化手段とを有し、
前記多重化手段は、該判定手段が前記着目ブロックの全画素が同じ色を持つと判定した場合、前記第３の符号化手段より得られた符号化データを、前記着目ブロックの符号化データとして出力することを特徴とする画像符号化装置。
【請求項２】
前記解析手段は、
前記着目ブロック内に全画素の平均画素値ＡＶＥを算出し、
算出した前記平均画素値ＡＶＥを越える画素値を持つ第１の画素群と、前記平均画素値ＡＶＥ以下の画素値を持つ第２の画素群に分類し、
第１の画素群に属する画素の平均画素値ＡＶＥ１と第２の画素群に属する画素の平均画素値ＡＶＥ２との差が、予め設定された閾値を越える場合、前記着目ブロックには文字線画が存在すると判定し、前記予め設定された閾値を越えない場合には前記着目ブロックには文字線画が存在しないと判定し、
前記解析手段は、前記画素値が輝度を示す場合では、前記平均画素値ＡＶＥ２を文字線画に属する代表画素値として決定し、前記画素値が濃度を示す場合では、前記平均画素値ＡＶＥ１を文字線画に属する代表画素値として決定することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記第３の符号化手段は、前記判定手段が前記着目ブロックの全画素が同じ色を持つと判定する度に、前記第１，第２の形式の符号化データを切り替えて生成することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
更に、前記第１の符号化手段で符号化データを生成した回数のＮ１、前記第２の符号化手段で符号化データを生成した回数のＮ２を計数する計数手段と、
該計数手段で計数したＮ１、Ｎ２と、予め設定した重み関数ｆ（）とが、
条件：Ｎ１＜ｆ（Ｎ２）
を満たす場合、前記第３の符号化手段は前記第１の形式の符号化データを生成し、前記条件を満たさない場合には前記第２の形式の符号化データを生成することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項５】
前記判定手段は、前記着目ブロックの全画素の最大画素値と最小画素値との差が予め設定された閾値以下の場合に、前記着目ブロック内の全画素が同じ色であると判定することを特徴とする請求項１乃至４のいずれか１項に記載の画像符号化装置。
【請求項６】
前記第１の符号化手段はランレングス符号化手段であり、前記第２の符号化手段はＪＰＥＧ符号化手段であることを特徴とする請求項１乃至５のいずれか１項に記載の画像符号化装置。
【請求項７】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１乃至６のいずれか１項に記載の画像符号化装置の各手段として機能させるコンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムを格納した、コンピュータが読み込み可能な記憶媒体。
【請求項９】
画像データを符号化する画像符号化装置の制御方法であって、
入力手段が、符号化対象の画像から、複数画素で構成されるブロックを入力する入力工程と、
解析手段が、入力した着目ブロック内の各画素の画素値を解析し、前記着目ブロック内に文字線画に属する画素があるか否かを判定する解析工程と、
生成手段が、該解析工程が前記着目ブロック内に文字線画に属する画素があると判定した場合には文字線画の代表画素値と、各画素毎に文字線画に属するか非文字線画に属するかを示す識別情報を生成する生成する生成工程と、
第１の符号化手段が、該生成工程で生成した文字線画の代表画素値と識別情報を可逆符号化し、第１の形式の符号化データを生成する第１の符号化工程と、
置換手段が、前記解析工程が前記着目ブロック内に文字線画に属する画素があると判定した場合、非文字線画に属する画素の平均画素値で、文字線画に属する画素の画素値を置換して、非文字線画の画素で構成されるブロックを生成する置換工程と、
第２の符号化手段が、前記解析工程が前記着目ブロック内に文字線画に属する画素があると判定した場合には前記置換工程で得られたブロックを、前記解析工程が前記着目ブロック内に文字線画に属する画素がないと判定した場合には前記置換工程による置換前のブロックを非可逆符号化し、第２の形式の符号化データを生成する第２の符号化工程と、
多重化手段が、前記第１の符号化工程、及び、前記第２の符号化工程で生成された符号化データを多重化すると共に、ブロックヘッダには前記第１の形式の符号化データの有無、前記第２の形式の符号化データの有無を示す情報を格納した固定長のブロック符号化データを生成し、出力する多重化工程とを有し、更に、
判定手段が、前記入力工程で入力した前記着目ブロックの全画素の画素値が表わす色が互いに同じであるか否かを判定する判定工程と、
第３の符号化手段が、該判定工程で前記着目ブロックの全画素が同じ色を持つと判定した場合、前記第１の符号化工程及び前記第２の符号化工程による前記着目ブロックに対する符号化を中止し、予め記憶された全画素が同じ色とする前記第１，第２の形式の符号化データと前記着目ブロックの画素値とから、前記第１の形式の符号化データ、又は、前記第２の形式符号化データのいずれか一方を生成する第３の符号化工程とを有し、
前記多重化工程では、該判定工程で前記着目ブロックの全画素が同じ色を持つと判定した場合、前記第３の符号化工程より得られた符号化データを、前記着目ブロックの符号化データとして出力することを特徴とする画像符号化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データの符号化技術に関するものである。
【背景技術】
【０００２】
従来、ブロック単位の画像データを固定長符号に圧縮する方法として、特許文献１が知られている。この文献では、ブロック単位の画像データのうち視覚上重要な画素（例えば文字線画の画素）を抽出して可逆符号化し、その他のデータを非可逆符号化する。すなわち、１つの画像データに対して複数の符号化処理を並行して実行している。
【０００３】
また、ブロック単位の画像データを高速に符号化する方法として、特許文献２が知られている。ここでは、ＪＰＥＧ符号化のＤＣＴ演算において、ブロックの画素が全て白のときの演算値をあらかじめ記憶しておく。そして、当該ブロックと直前ブロックとが全て白のときに、記憶しているＤＣＴ演算値を用いることにより、高速に符号化を行う、というものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２７８０４２号公報
【特許文献２】特開平７−３０７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
入力画像データを少なくとも２つの符号化方式を並列に用いて符号化する装置において、同一色のブロックを符号化しようとしたとき、既に上記２つの符号化方式がいずれも実行中であった場合には、全体的な符号化に時間がかかってしまう。
【０００６】
本発明は上記点に鑑みてなされたものであり、文字線画に好適な符号化、階調画像に好適な符号化の両方を持つ装置であって、ブロック単位に固定長の符号化データを生成しつつ、且つ、符号化をより高速に行う技術を提供しようとするものである。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像データを符号化する画像符号化装置であって、
符号化対象の画像から、複数画素で構成されるブロックを入力する入力手段と、
入力した着目ブロック内の各画素の画素値を解析し、前記着目ブロック内に文字線画に属する画素があるか否かを判定する解析手段と、
該解析手段が前記着目ブロック内に文字線画に属する画素があると判定した場合には文字線画の代表画素値と、各画素毎に文字線画に属するか非文字線画に属するかを示す識別情報を生成する生成する生成手段と、
該生成手段で生成した文字線画の代表画素値と識別情報を可逆符号化し、第１の形式の符号化データを生成する第１の符号化手段と、
前記解析手段が前記着目ブロック内に文字線画に属する画素があると判定した場合、非文字線画に属する画素の平均画素値で、文字線画に属する画素の画素値を置換して、非文字線画の画素で構成されるブロックを生成する置換手段と、
前記解析手段が前記着目ブロック内に文字線画に属する画素があると判定した場合には前記置換手段で得られたブロックを、前記解析手段が前記着目ブロック内に文字線画に属する画素がないと判定した場合には前記置換手段による置換前のブロックを非可逆符号化し、第２の形式の符号化データを生成する第２の符号化手段と、
前記第１の符号化手段、及び、前記第２の符号化手段で生成された符号化データを多重化すると共に、ブロックヘッダには前記第１の形式の符号化データの有無、前記第２の形式の符号化データの有無を示す情報を格納した固定長のブロック符号化データを生成し、出力する多重化手段とを備え、更に、
前記入力手段で入力した前記着目ブロックの全画素の画素値が同じであるか否かを判定する判定手段と、
該判定手段が前記着目ブロックの全画素が同じ画素値を持つと判定した場合、前記第１の符号化手段及び前記第２の符号化手段による前記着目ブロックに対する符号化を中止し、予め記憶された全画素が同じとした前記第１，第２の形式の符号化データと前記着目ブロックの画素値から、前記第１の形式の符号化データ、又は、前記第２の形式符号化データのいずれか一方を生成する第３の符号化手段とを有し、
前記多重化手段は、該判定手段が前記着目ブロックの全画素が同じ画素値を持つと判定した場合、前記第３の符号化手段より得られた符号化データを、前記着目ブロックの符号化データとして出力することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、文字線画に好適な符号化、階調画像に好適な符号化の両方を持つ装置であって、ブロック単位に固定長の符号化データを生成しつつ、且つ、符号化をより高速に行うことが可能になる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態における画像符号化装置の構成図
【図２】第１の実施形態における画像符号化フォーマットを示す図
【図３】第２の実施形態における画像符号化装置の構成図
【図４】第３の実施形態における画像符号化処理のフローチャートを示す図
【発明を実施するための形態】
【００１０】
以下添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１１】
［第１の実施形態］
なお、以下に説明における符号化対象の多値画像データの発生源はイメージスキャナとするが、画像データを格納した記憶媒体であっても良いし、その種類は問わない。また、説明を簡単なものとするため、符号化対象の画像データは１画素１成分のモノクロ画像とし、その成分は８ビット（２５６階調）であって、輝度を表わすものとして説明する。ただし、色成分の数、及び、色空間の種類（ＲＧＢ、ＣＭＹ、Ｌａｂ等）は如何なるものであっても良いし、１色成分のビット数も８ビットに限らない。因に、１画素が複数の成分で構成される場合には、以下に説明する事項を各成分毎に実行すれば良い。
【００１２】
図１に、本発明の第１の実施形態における画像符号化装置の構成図を示す。本装置は、装置全体の制御を司る制御部１１をはじめ、以下に示す処理部で構成される。
【００１３】
ブロック化部１は、符号化対象の画像データから複数画素（ｍ×ｎ画素）で構成されるブロック画像データを生成する。以下では、簡単のため１ブロックのサイズを８×８画素とする。
【００１４】
解析部２は、ブロック化部１から入力した１ブロック分の画像データ（実施形態では８×８画素）を解析して、ブロック中の各画素毎に、文字線画／非文字線画のいずれに属するかを示す識別データ、並びに、文字線画に属すると判定された画素値（文字線画の代表色）を生成し、第１の符号化部４に出力する。具体例を示せば次の通りである。
【００１５】
解析部２は、ブロック内の全画素の平均画素値ＡＶＥを算出し、その平均画素値ＡＶＥよりも大きい画素値を持つ画素群（以下、第１の画素群という）と、その平均画素値ＡＶＥ以下の画素群（以下、第２の画素群という）に分類する。そして、第１の画素群の平均画素値である第１の平均画素値ＡＶＥ１と第２の画素群の平均画素値である第２の平均画素値ＡＶＥ２を求め、それらの差「ＡＶＥ１−ＡＶ２」が予め設定された閾値Ｔｈ１を越えるか否かを判定する。閾値Ｔｈ１を越えていれば、輝度の低い（濃度が高い）第２の画素群は文字線画に属する画素群と判定し、第１の画素群は非文字線画に属する画素群に属するものと判定する。この場合、第２の平均値ＡＶＥ２を、文字線画に属する代表画素値として決定する。そして、ブロック内をラスタースキャンし、文字線画に属する画素に対して“１”、非文字線画に属する画素に対して“０”の１ビットの識別データを生成していく。実施形態の場合、１ブロックは８×８画素としているわけであるから、１ブロックからは６４個の識別データが生成されることになる。以下、１ブロック分の６４個（６４ビット）の識別データを識別情報と呼ぶこととする。なお、解析部２は、｛ＡＶＥ１−ＡＶ２｝＞Ｔｈ１の場合、文字線画の代表画素値＋識別情報を第１の符号化部４に出力してその符号化を行なわせ、多重化部１０に対しても着目ブロックに対して文字線画の代表画素値及び識別情報の符号化データを多重化する旨の信号を出力する。一方、｛ＡＶＥ１−ＡＶ２｝≦Ｔｈ１の場合、第１の符号化部４に対しては、文字線画の代表画素値＋識別情報を出力せず、且つ、着目ブロックに対して文字線画の代表画素値及び識別情報の符号化データはない旨を多重化部１０に通知する。更に、後述する同一色検出部３による検出結果も合わせて、多重化部１０に通知する。また、上記は画素値が輝度を示すものとした場合である。画素値が濃度を示す場合、文字線画の代表画素値としてＡＶＥ１を利用する。
【００１６】
解析部２は上記の処理に加え、｛ＡＶＥ１−ＡＶＥ２｝≦Ｔｈ１の場合には、入力したブロックデータをそのまま第２の符号化部５に出力する。また、｛ＡＶＥ１−ＡＶＥ２｝＞Ｔｈ１である場合、入力したブロック中の非文字線画に属する画素はその画素値のまま、文字線画に属する画素値は上記の第１の平均値ＡＶＥ１（非文字線画に属する画素の平均値）で置換した新たなブロックデータを生成し、それを第２の符号化部５に出力する。前者の場合は説明するまでもないであろう。ここでは、後者の具体例を説明する。座標ｘ、ｙ（０≦ｘ、ｙ≦７）の新たなブロックの画素値をＰout(x,y)、入力したブロックの画素値をＰin(x,y)、及び、識別データをＢ(x,y)としたとき、次のようにして新たなブロックデータを生成すればよい。
・Ｂ（x,y)＝０のとき（着目画素が非文字線画であるとき） 
Ｐout(x,y)←Ｐin(x,y)
・Ｂ（x,y)＝１のとき（着目画素が文字線画であるとき）
Ｐout(x,y)←ＡＶＥ１
上記の結果、第２の符号化部５に供給されるブロックデータには、高周波（ＡＣ）成分が無い、もしくは少ないものとなり、ＪＰＥＧ等の非可逆符号化を行った場合に高い圧縮率が期待できる。
【００１７】
次に、同一色検出部３について説明する。この同一色検出部３は、解析部２の内部にある処理部であり、入力したブロックを構成する全画素が同一色（輝度）であるか否かを判定し、その判定結果と、同一色であると判定した場合にはその色（画素値）を第３の符号化部６に出力する。なお、「同一色」と判定する範囲をユーザが設定しても良い。たとえば、ブロック中の全画素中の最大画素値と最小画素値の差を求め、その差が同一色として判定可能な許容範囲（閾値Ｔｈ２；ただし、Ｔｈ２≦Ｔｈ１とする）以下である場合、そのブロックの全画素が同一色と判定するようにしても良い。
【００１８】
この同一色検出部３が解析部２内に設けられるとする理由は、先に説明した第１の画素群と第２の画素群に分類する際に、それが副次的にそれが判定できるからである。すなわち、全画素の画素値の最大値と最小値とを求め、その差が０又は許容範囲を示す閾値以下の場合に同一色と見なせば良い（後者の場合には上記平均値ＡＶＥを文字線画の代表値とすればよい）。
【００１９】
また、同一色検出部３が、着目ブロック内の全画素が同一色であると判定した場合、解析部２から、第１の符号化部４、第２の符号化部５には、着目ブロックに対する符号化対象データは供給されない（すなわち、第１、第２の符号化部による着目ブロックの符号化は中止になる）。同一色検出部３が、着目ブロック内の全画素が同一色であると判定した場合の符号化データは、第３の符号化部６が生成することになる。
【００２０】
第１の符号化部４は、文字線画の代表色（８ビット）と識別情報（６４個の識別データ＝６４ビット）を入力し、識別情報をランレングス符号化などの可逆符号化を行う。そして、文字線画代表色（８ビット）＋識別情報のランレングス符号化データをバッファ７に出力する。
【００２１】
第２の符号化部５は、文字線画の画素値が非文字線画の画素値の平均値ＡＶＥ１で置換されたブロックデータ、或いは、入力したブロックデータ（置換前のブロックデータ）を入力し、ＪＰＥＧ符号化（非可逆符号化）を行い、ＤＣ成分＋ＡＣ成分の符号化データを生成し、バッファ８に出力する。高周波成分が無い、もしくは少ないわけであるから、高い圧縮率がえられるのは理解できよう。
【００２２】
第３の符号化部６は、同一色検出部３からの情報が、着目ブロックの全画素が同一色ではある場合に限って、その符号化データを生成し、バッファ９に出力する。第３の符号化部６が生成する符号化データのフォーマットは２種類ある。
【００２３】
１つ目は、第１の符号化部４において全画素が文字線画に属すると見なされた場合に相当する符号化データ「文字線画の代表色を表わす画素値＋エンドオフブロック示すＥＯＢ（End of Block)」の形式である。全画素が同じであるわけであるから、ＥＯＢは、ランが６４であることを示す符号語と等価の意味を持つと言えば分かりやすい。基本的に、同一色検出部３からの同一色であるとして示された画素値に、予め記憶されたＥＯＢの符号語を付加して出力するだけであり、画素値をスキャンする必要がない分だけ、その処理に要する時間は非常に短くできる。以下、このフォーマットの符号化データを第１の形式符号化データという。
【００２４】
符号化データの種類のもう１つは、第２の符号化部５が、全画素が同一色値を持つブロックを符号化した場合の符号化形式である「ＤＣ成分＋ＡＣ成分の符号化データ」である。着目ブロック内の全画素が、同一色検出部３から同一色であるとされた色を表わす画素値を「ＤＣ成分」に当てはめる。ＡＣ成分は無い、もしくは合っても非常に少ないことが約束されているので、本実施形態ではＥＯＢ符号語を割り当てた。以下、このフォーマットの符号化データを第２の形式符号化データという。
【００２５】
実施形態における、第３の符号化部６は、同一色検出部３から着目ブロックが同一色であることを通知を受けるたびに、上記の第１，第２の形式符号化データを切り替えて、生成する。
【００２６】
多重化部１０は、解析部２からの解析結果を受けて、バッファ７乃至９からの符号化データを組み合わせて、ブロックヘッダを先頭にした固定長Ｌのブロック符号化データを生成し、出力する。ここで多重化部１０が生成する１ブロック分の符号化データの形式について説明する。なお、この固定長Ｌの下限は、文字線画の代表画素値を表わす８ビット＋識別情報の最悪の符号長（ビット数）＋第２の符号化部で生成されるＤＣ成分の８ビットであり、これ以上であれば良く、その固定長はＬはユーザが設定するものとする。固定長を示す情報は、ファイルヘッダに格納しておけば良い。
【００２７】
図２（Ａ）乃至（Ｄ）は、本実施形態における多重化部１０が生成する１ブロック分の固定長符号化データの種類を示している。ヘッダには、多重化したデータには、第１，第２の符号化部による符号化データの有無が示せれば良いので、それを示す２ビットを内包している。
【００２８】
図２（Ａ）は、同一色検出部３の検出結果も非同一色を示し、且つ、着目ブロック内に文字線画の画素が存在すると判定された場合の符号化データ形式を示している。図示の如くヘッダに後続して、バッファ７に格納された符号化データ、後続してバッファ８に格納された符号化データを配置する。なお、バッファ８に格納された全ＡＣ成分の符号化データが格納できない場合には、固定長Ｌを越えたビットは切り捨てる。この場合、不完全な符号語が、固定長の末端位置に存在する可能性があるが、復号化側では固定長Ｌを越える不完全な符号語があった場合にはそれ以降のＡＣ成分値は“０”と見なして復号するので問題はない。また、全ＡＣ成分の符号化データを格納しても、未だ空き領域がある場合には適当なダミーデータを格納すれば良い。
【００２９】
図２（Ｂ）は、同一色検出部３の検出結果も非同一色を示し、着目ブロック内に文字線画の画素が存在しないと判定された場合の符号化データ形式を示している。図示の如くヘッダに後続して、バッファ８に格納された符号化データを配置する。なお、固定長Ｌを越えたビットを切り捨てる点、固定長Ｌに満たない場合のダミービットを付加する点は図２（Ａ）と同様である。
【００３０】
図２（Ｃ）、（Ｄ）は、同一色検出部３の検出結果が同一色を示した場合の符号化データ形式を示している。図示の如く、ＥＯＢの後にはダミーデータとして０を、固定長Ｌを満たす分だけ格納する。図２（Ｃ），（Ｄ）の符号化データを交互に切り替えるのは先に説明した通りである。ブロック内の全画素が同一色であるのは、たとえば通常の文字で構成される文書画像の上下左右の余白領域や行間部分を想像すると分かりやすい。かかる領域の場合、本実施形態によれば、図２（Ｃ）、（Ｄ）が交互に発生することになるので、ランレングス復号を行っている間、次のブロックについてＪＰＥＧ復号処理を実行でき、２つの復号処理の並列実行ができる可能性を高めることができ、結果的に、復号処理を高速化できるようになる。
【００３１】
以上のような制御を行うことにより、同一色のブロックを符号化する場合には、第１、第２の符号化処理の終了を待つことなく第３の符号化処理によって高速に符号化を進めることができるので、同一色のブロックを多く含むような画像データの符号化において、高速に符号化を行うことができる。
【００３２】
［変形例の説明］
上述した第１の実施形態における画像符号化処理を、パーソナルコンピュータ等の情報処理装置は、その内部のプロセッサが実行されるコンピュータプログラムで実現する例を以下に説明する。なお、情報処理装置のハードウェアは一般的なもので良いので、ここでは詳述しない。ただし、符号化対象の画像データはハードディスク等の外部記憶装置にファイルとして格納されていて、符号化結果もその外部記憶装置に格納する例を説明する。ただし、符号化対象の画像データの発生源はネットワーク上のストレージでも良いし、イメージスキャナでも構わないし、符号化結果の出力先も可搬性の記憶媒体、ネットワーク上の媒体でも良く、その種類を問わない。
【００３３】
Ｓ１にて復号処理が開始されると、Ｓ２にてプロセッサは１ブロック分の画像データを入力ファイルからＲＡＭ上にロードする。そして、Ｓ３にて、プロセッサは、ＲＡＭ上のロードした着目ブロック分の画像データを解析して、第１の符号化および第２の符号化に必要なデータを抽出する。解析の詳細は第１の実施形態で説明したとおりである。次いで、Ｓ４にて、着目ブロックが同一色の画像データからなるブロックであるか判定する。同一色ブロックでない場合は、処理をＳ５に移す。また、同一色ブロックである場合は、処理をＳ８に移す。
【００３４】
Ｓ５では、第１の符号化を行う。この第１の符号化は上記第１の実施形態における第１の符号化部４と同じである。ただし、第１の符号化部４と同様に、着目ブロック内に文字線画の画素が存在しない場合には、符号化データは生成しない。Ｓ６では、第２の符号化を行う。この第２の符号化の詳細は第１の実施形態における第２の符号化部５と同様である。そして、Ｓ７にて、Ｓ５で生成された符号化データ（もしあれば）、Ｓ６で生成された符号化データを外部記憶装置に出力する。このときの符号化データのフォーマットは図２（Ａ）、（Ｂ）のいずれかになる。
【００３５】
一方、Ｓ８に処理を移した場合には、第３の符号化を行う。この第３の符号化の詳細は第１の実施形態における第３の符号化部６と同様である。そして、Ｓ９に、符号化データを外部記憶装置に出力する。このときの符号化データのフォーマットは図２（Ｃ）、（Ｄ）のいずれかになる。
【００３６】
Ｓ１０にて、ファイルの全ての画像データを処理したかどうかを判定する。全ての画像データを処理していないと判断した場合には、Ｓ２以降の処理を繰り返す。また、全ての画像データの処理を終了した場合は、Ｓ１１に移り、全ての符号化を終了する。
【００３７】
ステップ５、ステップ６を経由する第１および第２の符号化とステップ８の第３の符号化は、プログラムで実行する際の実行に要する時間が異なる。第１の実施形態で説明した通り、第１、第２の符号化は時間がかかるのと比較して、第３の符号化は短時間で終了する。また、第３の符号化は、第１、第２の符号化とは独立に処理できる。したがって、第１、第２の符号化をしている最中に第３の符号化を行うことができる。その場合、第３の符号化が第１、第２の符号化よりも先に処理が終了する場合がある。その場合は、先に、第３の符号化で処理された符号化データを外部記憶装置に出力する。本発明の符号化データは固定長の符号化データであるため、出力先の外部アドレスを予め知ることができる。入力されたブロックの外部記憶装置上のアドレスから出力先の外部記憶装置のアドレスを対応付けておくことで、入力と出力の順番が異なることがあっても間違いなく外部記憶装置に所定アドレスに符号化データを出力することが可能になる。
【００３８】
以上のような制御を行うことにより、コンピュータプログラムでもって実現する場合であっても、第１の実施形態と同様の作用効果を奏することができる。
【００３９】
［第２の実施形態］
本第２の実施形態では、復号側における第１の形式符号化データ、第２の形式符号化データの復号リソースを、より効率良く利用できる符号化データを生成する例を説明する。具体的には、復号処理がランレングス復号処理とＪＰＥＧ復号処理の一方に偏ったものとなるのを抑制するものである。
【００４０】
図３に、第２の実施形態の画像符号化装置の構成図を示す。第１の実施形態と同様の動作をする処理部については同じ番号を付して、その説明は省略する。本第２の実施形態に特有の動作を行う処理部の説明を行う。
【００４１】
第３の符号化部２４は、同一色検出部３で同一色と検出されたブロックを符号化する符号化部である。第３の符号化部２４は、第１の形式符号化データ（文字線画の代表画素値＋ＥＯＢ）を生成する。つまり、図２（Ｃ）に示すフォーマットの符号化データを生成する。
【００４２】
第４の符号化部２５は、同一色検出部３で同一色と検出されたブロックを符号化する符号化部である。第４の符号化部２５は、第２の形式符号化データ（ＤＣ成分値＋ＥＯＢ）を生成する。つまり、図２（Ｄ）に示すフォーマットの符号化データを生成する。
【００４３】
比較部２３は、内部に２つのレジスタ（もしくはカウンタ）を持ち、符号化処理開始時にゼロクリアされる。そして、一方のレジスタはバッファ７に符号化データが出力された回数を計数するために用いられ、もう一方のレジスタはバッファ８に符号化データが出力された回数を計数するために用いられる。なお、着目ブロックに、文字線画画素が存在するものとした場合、その着目ブロックからはバッファ７、８の両方に符号化データが格納されるので、それぞれのレジスタが“１”だけカウントアップされる。また、着目ブロック内に文字線画の画素が存在しないものの、同一色でもない場合、着目ブロックは第２の符号化部５による符号化データのみがバッファ８に格納されるので、バッファ８への符号化データの出力回数のみがカウントアップされる。
【００４４】
比較部２３は、上記のようにして、画像の符号化開始時から現在までの第１の符号化部４の符号化データの出力回数をＮ１、第２の符号化部５による符号化データの出力回数をＮ２としたとき、
条件：Ｎ１≦ｆ（Ｎ２）
を満たすか否かを判定し、この条件を満たす場合には、“０”、それ以外の場合には“１”の制御信号を選択部２６に出力する。なお、一般に、ＪＰＥＧ符号化、復号ではＤＣＴ変換（マトリクス演算）に多くの演算量が費やされる。一方、ランレングス符号化、復号にかかる処理はＤＣＴ処理ほど、重い処理ではない。上記の関数ｆ（）は、この演算量の重みを相殺するための関数である。簡単には、予め設定した係数Ｒを定義し、次の条件で判断すれば良い。
条件：Ｎ１＜Ｒ×Ｎ２
【００４５】
選択部２６は、第３の符号化部２４あるいは第４の符号化部２５の符号化データのいずれをバッファ２７に出力するかを選択する。この選択は、比較部２３からの制御信号に基づいて決定される。すなわち、比較部２３の制御信号が“０”の場合は、第３の符号化部２４の符号化データをバッファ２７に出力し、“１”の場合は、第４の符号化部の符号化データをバッファ２７に出力する。このように動作することで、同一色のブロックが入力された場合は、バッファ７、８への出力回数の少ない方のフォーマットの符号化データがバッファ２７に格納されることになる。この結果、ランレングス復号とＪＰＥＧ復号が並列に実行できる復号装置では、いずれか一方に復号対象の符号化データが偏って供給されることを抑制、換言すれば、それら復号処理のためのリソースを効率良く稼働でき、結果、復号処理を高速化することができる。
【００４６】
なお、上記では、比較部２３には、内部に２つのレジスタ（もしくはカウンタ）を持ちそれぞれはバッファ７に符号化データが出力された回数を保持するためとして説明したがこれに限定されない。例えば、バッファ７、８をＦＩＦＯメモリとし、usedwordをモニタすることによりそれぞれの占有率を比較する。たとえば、usedwordを単純比較して、usedwordが小さい方を占有率が低いと判断する。または、FIFOフルの容量が異なるＦＩＦＯであれば、usedwordの空きワード数を比較して、空きワード数が多い方を占有率が低いと判断する。あるいは、usedwordをFIFOフル容量のusedwordで割って（文字通り占有率を計算して）、値が小さい方を占有率が低いと判断する。このようにして、比較部２３は、バッファ７、８の占有率の比較し、バッファ７の占有率がバッファ８のそれより小さい場合に０を出力し、それ以外の場合に１を出力しても構わない。
【００４７】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012095228.tif 000003
【図２】
2012095228.tif 000004
【図３】
2012095228.tif 000005
【図４】
2012095228.tif 000006