(57)【特許請求の範囲】
【請求項１】
入力された画像に対して部分画像領域を設定する領域設定手段と、前記部分画像領域内の画素値について所定数の上位ビットの判定を行う上位ビット判定手段と、前記上位ビット判定手段による判定結果に従い前記領域設定手段により設定された部分画像領域に対して変換後の値の数を設定する値数設定手段と、前記部分画像領域の画素値の数が前記値数設定手段により設定された値の数以下となるように前記部分画像領域の画素値を変換する変換手段を有することを特徴とする画像処理装置。
【請求項２】
前記部分画像領域内の画素値がとる値の範囲を算出する値範囲算出手段を有し、前記値数設定手段は前記上位ビット一致判定手段により前記上位ビットの一致が判定されなかった場合に前記値範囲算出手段で算出した値の範囲に従って前記値の数を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
入力された画像に対して部分画像領域を設定する領域設定手段と、前記領域設定手段により設定された部分画像領域の画素値がとる値の範囲に応じた値の数を設定する値数設定手段と、前記値数設定手段で設定された値の数をもとに前記部分画像領域について値の数の変換を行うか否かを選択する選択手段と、前記選択手段で値の数の変換を行うことが選択された場合に前記部分画像領域の画素値の数が前記値数設定手段により設定された値の数以下となるように前記部分画像領域の画素値を変換する変換手段を有することを特徴とする画像処理装置。
【請求項４】
入力された画像に対して部分画像領域を設定する領域設定手段と、前記領域設定手段により設定された部分画像領域の画素値がとる値の範囲に応じた値の数を設定する第１の値数設定手段と、前記部分画像領域の画素値の数が前記第１の値数設定手段で設定された値の数以下となるように前記部分画像領域の画素値を変換する第１の変換手段と、前記第１の変換手段で変換された前記部分画像領域の画素値がとる値の範囲に応じた値の数を設定する第２の値数設定手段と、前記第２の値数設定手段で設定された値の数をもとに前記部分画像領域について値の数を変換するか否かを選択する選択手段と、前記選択手段で値の数の変換を行うことが選択された場合に前記部分画像領域の画素値が前記第２の値数設定手段により設定された値の数以下となるように前記第１の変換手段で変換された前記部分画像領域の画素値の数を変換する第２の変換手段を有することを特徴とする画像処理装置。
【請求項５】
コンピュータに、請求項１から請求項４のいずれか１項に記載の画像処理装置の機能を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理プログラムに関するものである。
【背景技術】
【０００２】
画像を小さな部分画像領域に分割した場合、その部分画像領域内の画素の値は、部分画像領域内の画素数よりも少ない、いくつかの値で近似することが行われている。例えば符号化に利用すれば、取り得る値が少なくなることから符号量が少なくなる。
【０００３】
特許文献１は符号化装置に関するものであり、画像を分割して作成された部分画像領域に含まれる画素の値の最大値と最小値とに基づいてしきい値を決定し、しきい値により部分画像領域に含まれる画素を選別して画素グループを設定し、画素グループに含まれる画素に対して、その画素グループに含まれる画素の値の平均値を割り当てることが記載されている。また、最大値と最小値の差が設定値以上か否かを判定し、設定値以上であれば平均値をしきい値として各画素グループについての平均値を割り当て、設定値未満の場合には部分画像領域内の画素に対して平均値を割り当てることが記載されている。この場合、部分画像領域内の画素の値は２つあるいは１つとなる。
【０００４】
この処理において、部分画像領域における画素値の最大値および最小値を求めるためには、部分画像領域内の画素を１つずつ調べてゆくことになる。また、各画素がいずれの画素グループに属すかを判定して値を割り当てる処理も、部分画像領域内の画素を１つずつ調べてゆくことになる。部分画像領域内の画素が少ないにしても、この処理には時間がかかり、膨大な部分画像領域に対して繰り返し処理を行うことから、全体とすると多大な時間を要していた。
【０００５】
【特許文献１】特開２００２−１００８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、画素値が取る値の数を減らす処理を従来よりも高速に実行する画像処理装置および画像処理プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、入力された画像に対して部分画像領域を設定する領域設定手段と、前記部分画像領域内の画素値について所定数の上位ビットの判定を行う上位ビット判定手段と、前記上位ビット判定手段による判定結果に従い前記領域設定手段により設定された部分画像領域に対して変換後の値の数を設定する値数設定手段と、前記部分画像領域の画素値の数が前記値数設定手段により設定された値の数以下となるように前記部分画像領域の画素値を変換する変換手段を有することを特徴とする画像処理装置である。
【０００８】
請求項２に記載の発明は、請求項１に記載の画像処理装置の構成に加え、さらに、前記部分画像領域内の画素値がとる値の範囲を算出する値範囲算出手段を有し、前記値数設定手段は前記上位ビット一致判定手段により前記上位ビットの一致が判定されなかった場合に前記値範囲算出手段で算出した値の範囲に従って前記値の数を設定することを特徴とする画像処理装置である。
【０００９】
請求項３に記載の発明は、入力された画像に対して部分画像領域を設定する領域設定手段と、前記領域設定手段により設定された部分画像領域の画素値がとる値の範囲に応じた値の数を設定する値数設定手段と、前記値数設定手段で設定された値の数をもとに前記部分画像領域について値の数の変換を行うか否かを選択する選択手段と、前記選択手段で値の数の変換を行うことが選択された場合に前記部分画像領域の画素値の数が前記値数設定手段により設定された値の数以下となるように前記部分画像領域の画素値を変換する変換手段を有することを特徴とする画像処理装置である。
【００１０】
請求項４に記載の発明は、入力された画像に対して部分画像領域を設定する領域設定手段と、前記領域設定手段により設定された部分画像領域の画素値がとる値の範囲に応じた値の数を設定する第１の値数設定手段と、前記部分画像領域の画素値の数が前記第１の値数設定手段で設定された値の数以下となるように前記部分画像領域の画素値を変換する第１の変換手段と、前記第１の変換手段で変換された前記部分画像領域の画素値がとる値の範囲に応じた値の数を設定する第２の値数設定手段と、前記第２の値数設定手段で設定された値の数をもとに前記部分画像領域について値の数を変換するか否かを選択する選択手段と、前記選択手段で値の数の変換を行うことが選択された場合に前記部分画像領域の画素値が前記第２の値数設定手段により設定された値の数以下となるように前記第１の変換手段で変換された前記部分画像領域の画素値の数を変換する第２の変換手段を有することを特徴とする画像処理装置である。
【００１１】
請求項５に記載の発明は、コンピュータに、請求項１から請求項４のいずれか１項に記載の画像処理装置の機能を実行させることを特徴とする画像処理プログラムである。
【発明の効果】
【００１２】
請求項１に記載の発明によれば、本構成を有しない場合に比べて高速に部分画像領域内の画素値が取る値の範囲を算出して変換処理を行うことができる。
【００１３】
請求項２に記載の発明によれば、上位ビットの一致が判定されなかった場合に値の数の設定精度を高めることができる。
【００１４】
請求項３に記載の発明によれば、本構成を有しない場合に比べて不必要な値の数の変換を行わない分だけ高速に処理を行うことができる。
【００１５】
請求項４に記載の発明によれば、一部について既に値の数を変換してある場合でも対応でき、不必要な変換を行わずに処理を高速化することができる。
【００１６】
請求項５に記載の発明によれば、本構成を有しない場合に比べて高速に部分画像領域内の画素値が取る値の範囲を算出して変換処理を行うことができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の第１の実施の形態を示す構成図である。図中、１１は領域設定部、１２は上位ビット判定部、１３は値範囲算出部、１４は値数設定部、１５は変換部である。領域設定部１１は、入力された画像を所定の大きさごとの領域に分割し、そのうちの未処理の領域を部分画像領域として設定する。設定する部分画像領域を順に変更して行き、入力された画像全体の処理を行うことになる。
【００１８】
上位ビット判定部１２は、部分画像領域内の画素値について、所定数の上位ビットの判定を行う。この判定の処理は、例えば判定を行う上位ビット以外のビットのマスク処理と一致判定処理で実現される。あるいは、シフト処理によって判定を行う上位ビット以外をシフトアウトしてから一致判定処理を行ってもよい。
【００１９】
例えば上位１ビットの判定を行った場合、部分画像領域内の画素値の上位１ビットが‘０’であれば、画素値は取り得る値の範囲の１／２未満の値に集中していることが分かる。逆に上位１ビットが‘１’であれば、画素値は取り得る値の範囲の１／２以上の値に集中していることが分かる。従って、上位１ビットを判定すれば、取り得る値の範囲の１／２以上か、未満か、全体に広がっているか、が分かることになる。もちろん上位の複数ビットを参照して判定してもよい。
【００２０】
値範囲算出部１３は、部分画像領域内の画素値がとる値の範囲を算出する。例えば部分画像領域内の画素を一つずつ参照し、その値がそれまでの最大値を超えていれば最大値を更新し、それまでの最小値未満であれば最小値を更新して行くことにより、部分画像領域内の画素値がとる最大値と最小値が得られる。もちろん他の方法でもよい。
【００２１】
値数設定部１４は、上位ビット判定部１２による判定結果に従い、部分画像領域に対して変換後の値の数を設定する。例えば、上位ビット一致判定部１２により所定数の上位ビットの一致が判定された場合には、その一致した上位ビットを固定した場合の値の範囲に従って変換後の値の数を設定する。また、上位ビット一致判定部１２により上位ビットの一致が判定されなかった場合には、値範囲算出部１３で算出した値の範囲に従って変換後の値の数を設定する。例えば値の範囲が所定の閾値以上であればＮ個、所定値未満であればＮより小さいＭ個に値の数を設定すればよい。なお、値の数は、例えばモノクロ画像であれば代表させるグレー値の数であり、カラー画像であれば代表させる色の数である。
【００２２】
変換部１５は、部分画像領域の画素値が値数設定部１４により設定された値の数以下となるように、部分画像領域の画素値を変換する。例えばモノクロ画像であれば、階調値によりクラスタリングを行い、設定された値の数のクラスタを生成して、各クラスタの階調値の平均値を代表値として、それぞれのクラスタに含まれる画素の値を属するクラスタの代表値に変換すればよい。これにより、画素値が取る値の数はクラスタの数、すなわち設定された値の数に変換されることになる。カラー画像についても、設定された値の数の代表色に変換すればよい。例えば値の数が１に設定されていれば、部分画像領域の画素値は１つの値に統一される。また、値の数が２に設定されていれば、部分画像領域のそれぞれの画素の値は、２つの値のうちのいずれかをとるように変換される。
【００２３】
本発明の第１の実施の形態における動作について説明する。上述のように、部分画像領域内の画素の値の範囲に従って変換後の値の数を設定する。これは、狭い範囲に値が集中していれば、代表させる値は少なくてもよく、広い範囲に分散している場合には、値の範囲に応じて代表させる値を設けなければ画質が劣化することによる。従って、部分画像領域内の画素の値の範囲を求めなければならないが、本発明の第１の実施の形態では、その処理を上位ビット判定部１２と値範囲算出部１３で行っている。値範囲算出部１３では、各画素の値を参照してそれまでの最大値及び最小値との比較演算を行ってゆくが、この処理には時間がかかる。この値範囲算出部１３の処理に比べ、上位ビット判定部１２で行うビットの比較演算の処理は高速に実行される。上位ビットが一致した場合に画素値の値の範囲が絞られることは上述の通りであり、上位ビット判定部１２で上位ビットの一致が判定された場合には、その結果を利用して概略の値の範囲を決めてしまうことにより、処理の高速化を図っている。
【００２４】
なお、値数設定部１４において値の数を決定する際に値の範囲と所定の閾値とを比較する構成では、その所定の閾値をｔとすると、上位ビット判定部１２で判定する上位ビットの個数ｂは次のように求めるとよい。
ｂ＝（総ビット数）−ＴＲＵＮＣ（ｌｏｇ2 （ｔｈ））
ここで、関数ＴＲＵＮＣ（）は小数点以下切り捨てによる整数化処理である。これによって決定されたビット数の判定を行うことにより、値数設定部１４における値の範囲の閾値処理と連動させ、上位ビット判定部１２による上位ビットの一致判定結果から、直接、値の数を設定すればよい。なお、モノクロの画像の場合には上記の式で上位ビットの個数ｂを求めればよいが、カラー画像の場合にはそれぞれの色成分について上位ビットの個数を求めればよい。この場合、それぞれの色成分における上位ビットの個数が異なってもよい。
【００２５】
上位ビット判定部１２によって上位ビットの一致が判定されなかった場合には、時間はかかるが値範囲算出部１３によって算出される値の範囲を用いる。例えば、部分画像領域内の画素の値が１６進数で表して０ｘ７Ｆと０ｘ８０の２つを取る場合、上位ビット判定部１２で上位１ビットの判定を行うと一致しない。しかし、画素の値が、取り得る値の範囲の全体に広がっているわけではない。値範囲算出部１３で値の範囲を算出すれば、このような場合に値の範囲が０ｘ７Ｆから０ｘ８０であることが算出され、値数設定部１４で適切な値の数が設定されることになる。
【００２６】
図２は、本発明の第１の実施の形態における動作の一例を示す流れ図である。Ｓ７１において、領域設定部１１により未処理の部分画像領域を設定する。
【００２７】
Ｓ７２において、上位ビット判定部１２は、部分画像領域内の画素値について、所定数の上位ビットが一致しているか否かを判定する。一致していれば、Ｓ７３において値数設定部１４は、上位ビット判定部１２における一致判定に対応した値の数を設定する。上述のように上位ビットの数を値数設定部１４で用いる閾値をもとに決定している場合、上位ビット判定部１２における一致判定により画素値の範囲を閾値以下と見なして値の数を設定すればよい。
【００２８】
所定数の上位ビットが一致していなければ、Ｓ７４において、値範囲算出部１３は、部分画像領域内の画素値がとる値の範囲を算出する。そしてＳ７５において、値数設定部１４は、Ｓ７４で算出された値の範囲に従って変換後の値の数を設定する。例えば値の範囲が所定の閾値以上であればＮ個、所定値未満であればＮより小さいＭ個に値の数を設定すればよい。
【００２９】
Ｓ７６において、変換部１５は、部分画像領域の画素値がＳ７３またはＳ７５で値数設定部１４により設定された値の数以下となるように、部分画像領域の画素値を変換する。
【００３０】
Ｓ７７において、入力された画像全体に対して処理が終了したか否かを判定し、未処理の部分が残っている場合にはＳ７１へ戻って処理を続ける。画像全体に対する処理が終了したら、この処理を終える。
【００３１】
なお、上述のようにして値の数を減らした後の画像は、例えば部分画像領域毎に符号化処理を行う。画素値が取る値の数を減らしているので元の画像を符号化する場合に比べて符号量は減る。
【００３２】
上述の流れ図で示した動作例では、上位ビット判定部１２において上位ビットの不一致を判定した場合に値範囲算出部１３で値の範囲を算出するものとしている。しかしこれに限らず、例えば上位ビット判定部１３の処理と値範囲算出部１３の処理とを並行して行い、上位ビット判定部１３で一致判定を行った場合に値範囲算出部１３の処理を打ち切るように構成してもよい。
【００３３】
また、ここでは値範囲算出部１３を設けているが、上位ビット判定部１２において不一致判定の場合は画素値が取り得る全範囲を値の範囲と見なすこととすれば、値範囲算出部１３を設けずに構成してもよい。
【００３４】
図３は、本発明の第２の実施の形態を示す構成図である。図中、１６は選択部である。この第２の実施の形態では、値の数を減らす変換処理を繰り返して行う場合を想定している。このような場合、部分画像領域の画素の値の数が、変換のために設定された値の数であることも生じる。例えば部分画像領域の画素の値の数がＮ個であり、変換すべき値の数がＮ個であるといった場合が生じる。その際には値変換処理は不要であることから省略し、よって高速化を図るものである。なお、上述の第１の実施の形態の構成と組み合わせてもよい。
【００３５】
領域設定部１１は、入力された画像を所定の大きさごとの領域に分割し、そのうちの未処理の領域を部分画像領域として設定する。設定する部分画像領域を順に変更して行き、入力された画像全体の処理を行うことになる。
【００３６】
値範囲算出部１３は、部分画像領域内の画素値がとる値の範囲を算出する。算出方法は、例えば第１の実施の形態で説明した方法など、任意の方法を適用すればよい。
【００３７】
値数設定部１４は、値範囲算出部１３で算出した値の範囲に応じて変換後の値の数を設定する。例えば値の範囲が所定の閾値以上であればＮ個、所定値未満であればＮより小さいＭ個に値の数を設定すればよい。
【００３８】
変換部１５は、部分画像領域の画素値が値数設定部１４により設定された値の数以下となるように、部分画像領域の画素値を変換する。変換方法は上述の第１の実施の形態で説明した方法など、任意の方法により、設定された値の数に変換すればよい。
【００３９】
選択部１６は、値数設定部１４で設定された値の数をもとに部分画像領域について値の数の変換を行うか否かを選択する。値の数の変換を行うことを選択した場合には、領域設定部１１で設定した部分画像領域の画素を変換部１５に渡し、値の数の変換を行わないことを選択した場合には、領域設定部１１で設定した部分画像領域の画素について変換処理を行わずに出力する。
【００４０】
図４は、本発明の第２の実施の形態における動作の一例を示す流れ図である。Ｓ８１において、領域設定部１１により未処理の部分画像領域を設定する。
【００４１】
Ｓ８２において、値範囲算出部１３は部分画像領域内の画素値がとる値の範囲を算出する。そしてＳ８３において、値数設定部１４はＳ８２で算出された値の範囲に従って変換後の値の数を設定する。例えば値の範囲が所定の閾値以上であればＮ個、所定値未満であればＮより小さいＭ個に値の数を設定すればよい。
【００４２】
Ｓ８４において、部分画像領域の画素が取る値の数と値数設定部１４で設定された値の数とを比較して、変換を行うか否かを選択する。変換を行うことを選択した場合には、Ｓ８５において、変換部１５は部分画像領域の画素値がＳ８３で値数設定部１４により設定された値の数以下となるように、部分画像領域の画素値を変換する。変換を行わないことを選択した場合にはＳ８５を行わずにＳ８６へ進む。
【００４３】
Ｓ８６において、入力された画像全体に対して処理が終了したか否かを判定し、未処理の部分が残っている場合にはＳ８１へ戻って処理を続ける。画像全体に対する処理が終了したら、この処理を終える。
【００４４】
この第２の実施の形態では、値の数を減らす変換処理を繰り返して行う場合を想定している。繰り返して値の数を減らす変換処理を行う例として、符号量制御が挙げられる。図５は、本発明の第２の実施の形態の応用例を示す構成図である。図中、２１は符号化部、２２は符号記憶部、２３は閾値決定部、２４は復号部、２５は値数変換部である。符号化部２１は、ここでは部分画像領域毎に所定の符号化方式により符号化処理を行い、符号データを符号記憶部２２に格納する。符号化の際には符号量を監視し、所定の符号量を上回る場合には閾値決定部２３に対して閾値の制御を行わせる。値数変換部２５は本発明の第２の実施の形態で説明した構成を有している。閾値決定部２３で決定される閾値に従って各部分画像領域における変換後の値の数を決定し、決定された値の数に従って、符号記憶部２２から読み出して復号部２４で復号し、あるいは入力された画像の部分画像領域について、値数変換部２５は画素値の変換処理を行う。
【００４５】
一般的な符号量制御では高画質のパラメータから低画質のパラメータに移行することで、圧縮率を高くして符号量を低減する制御を行う。この場合、入力画像と符号データを別々に持つ方式と、符号データで入力画像を上書きする方式が考えられる。前者は入力画像を用いて新たなパラメータにより符号化を行うことにより画質劣化を避けられるが、広大なメモリを必要とする。また、後者では既に画質劣化している符号データを用いてさらに画質が劣化する処理を行うため、画質は前者に比べて劣化する。しかし、少ないメモリ量で実現されるため、実装性が高く、この第２の実施の形態の応用例では後者の場合を想定している。
【００４６】
一例として、簡単化のため値数設定部１４は部分画像領域の画素値の取る範囲が閾値決定部２３で決定された閾値Ｔｈより大きい場合には値の数を２に、閾値Ｔｈ以下の場合には値の数を１に設定するものとし、閾値決定部２３は閾値Ｔｈを符号量制御により変化させる場合を考える。この場合、閾値Ｔｈを大きくすると値の数が１に設定される部分画像領域が増加するため、画質は劣化するが圧縮率が向上する。従って、符号量制御の際には閾値決定部２３は小さい閾値からはじめて、次第に閾値を大きくしてゆき、符号量が適正値になったところで符号量制御を終了すればよい。
【００４７】
ここで２回目以降の処理のための入力画像は、前回（２回目の処理であれば１回目）の処理の出力であるから、入力画像におけるそれぞれの部分画像領域の値の数は２または１になっている。従って変換が必要なのは値の数が２の部分画像領域について値の数を１に変換する処理である。それ以外の値の数を２から２へ、及び１から１への処理は不要であり、省略してよい。この第２の実施の形態では、値の数の変換処理を行うのか、あるいは省略するのかを選択部１６によって選択し、不必要な変換処理の省略により高速化を図っている。
【００４８】
もちろん、値の数の変換処理を行うことが選択された場合、例えば部分画像領域の値の数が２であり、値数設定部１４によって設定された値の数が１である場合には、変換部１５によって値の数が１となるように部分画像領域の画素の値を変換する。これによって値の数が減り、符号化部２１で符号化された符号データの符号量は減ることになる。
【００４９】
なお、上述の例において部分画像領域の値の数が１となっている場合や、平坦な画像部分が部分画像領域に設定された場合などでは、値範囲算出部１３において、部分画像領域内の画素値がとる値の範囲が０であることが検出される。このような場合には、値数設定部１４はその旨を選択部１６に送り、選択部１６は当該部分画像領域の画素について変換処理を行わないことを選択するように構成してもよい。
【００５０】
図６は、本発明の第２の実施の形態の応用例を示す別の構成図、図７は、符号化処理の打ち切りによる影響の説明図である。図５に示した例では、符号化部２１で符号化した符号データを最後まで符号記憶部２２に格納する場合について示した。しかし、符号記憶部２２の記憶容量が少ない場合には、画像の途中まで符号化したところで符号記憶部２２に空きがなくなり、それまでの符号化の処理を打ち切って符号量制御を行う必要が生じることがある。そのような場合の構成を図６に示している。
【００５１】
図６に示した例では、さらに、入力される画像は、処理済みの部分については再入力されないものとしている。例えば図７においては、斜線を付して示した部分が符号データに変換された部分を示し、斜線を付していない部分が未処理の画像部分である。ここでは、斜線を付した部分について符号化処理を行ったところで符号化処理を打ち切った場合を示している。この場合、斜線を付した符号化処理済みの部分については改めて画像が入力されないため、符号記憶部２２に記憶されている符号データを復号部２４で復号して使用することになる。すると、符号量制御によって新たなパラメータによる処理を行うと、符号データを使用して符号化した部分と入力された画像から符号化した部分との間に画質の差が現れる。
【００５２】
一般的な画像処理はその処理回数によって効果が変わってくる。非可逆符号化による画質劣化もその一種で、処理を繰り返すことによって生じる画質劣化を、特にジェネレーションノイズなどという。ここでは一般の画像処理の繰り返しによる効果もジェネレーションと呼ぶことにする。処理パラメータを変更しなくても、ジェネレーションの世代数によって出力に与える効果は異なる。従って最終的に処理パラメータを変更せずに全体を処理したとしても、異なる世代のジェネレーションが混在すると画質差として認識される。このような画質差を生じさせないため、符号量制御においては符号化処理を途中で打ち切ることができず、画像の再入力を行って最初から処理をやりなおすなど、時間を要している。
【００５３】
上述の本発明の第２の実施の形態で示した構成を使用した場合には、異なる世代のジェネレーションが混在する画像であってもよい。従って符号化処理を途中で打ち切って、それまでの処理結果を含めて再処理すればよい。その場合の構成例を以下に示す。
【００５４】
図８は、本発明の第２の実施の形態における変形例を示す構成図である。図中、３１は値範囲算出部、３２は値数設定部、３３は変換部である。図３に示した構成に、値範囲算出部３１、値数設定部３２、変換部３３を追加している。領域設定部１１は、既に説明したとおり、入力された画像を所定の大きさごとの領域に分割し、そのうちの未処理の領域を部分画像領域として設定する。
【００５５】
値範囲算出部３１は、部分画像領域内の画素値がとる値の範囲を算出する。算出方法は、例えば上述の第１の実施の形態において値範囲算出部１３で説明した方法など、任意の方法を適用すればよい。
【００５６】
値数設定部３２は、値範囲算出部３１により設定された部分画像領域の画素値がとる値の範囲に応じた変換後の値の数を設定する。例えば図５や図６に示した符号化処理を行う場合には、閾値決定部２３で決定された閾値に従って値の数を決定すればよい。
【００５７】
変換部３３は、部分画像領域の画素値が値数設定部３２により設定された値の数以下となるように、部分画像領域の画素値を変換する。なお、既に設定された値の数以下である場合にはそのまま出力すればよい。
【００５８】
値範囲算出部１３、値数設定部１４、変換部１５、選択部１６は図３において説明したものであり、値範囲算出部１３及び選択部１６は変換部３３の出力を受け取ることになる。
【００５９】
一例として、簡単化のため値数設定部３２及び値数設定部１４は部分画像領域の画素値の取る範囲が閾値決定部２３で決定された閾値Ｔｈより大きい場合には値の数を２に、閾値Ｔｈ以下の場合には値の数を１に設定するものとし、閾値決定部２３は閾値Ｔｈを符号量制御により変化させる場合を考える。この場合、閾値Ｔｈを大きくすると値の数が１に設定される部分画像領域が増加するため、画質は劣化するが圧縮率が向上する。従って、符号量制御の際には閾値決定部２３は小さい閾値からはじめて、次第に閾値を大きくしてゆき、符号量が適正値になったところで符号量制御を終了すればよい。
【００６０】
まず入力された画像において領域設定部１１が処理対象となる部分領域を設定し、値範囲算出部３１により部分画像領域内の画素値がとる値の範囲を算出する。算出された値の範囲に応じて値数設定部３２により変換後の値の数が設定される。ここでは、値の範囲が閾値より小さければ値の数は１、それ以外の場合には値の数は２に設定される。変換部３３は、値数設定部３２で設定された値の数以下となるように、部分画像領域内の画素値を変換する。
【００６１】
続いて、値範囲算出部１３は変換部３３による変換後の部分画像領域内の画素値が取る値の範囲を算出し、その値の範囲に応じた変換後の値の数を値数設定部１４が設定する。ここでは値の数を減らした画像についての値の範囲と、その値の範囲に対する閾値との比較を行う。そのため、値数設定部３２によって設定される値の数とは異なる場合がある。選択部１６では、値数設定部３２によって設定され、変換に使用した値の数と、値数設定部１４が設定した値の数を比較して、異なっていれば値の数の変換処理を行うことを選択し、そうでなければ変換処理を行わずにそのまま出力することを選択する。例えば変換部３３で値の数が２となるように変換され、値数設定部１４が値の数を２に設定した場合、あるいは変換部３３で値の数が１となるように変換され、値数設定部１４が値の数を１に設定した場合には、変換処理を行わないことを選択する。また、変換部３３で値の数が２となるように変換され、値数設定部１４が値の数を１に設定した場合には、値の数の変換処理を行うことが選択される。この場合、変換部１５は値数設定部１４で設定された値の数以下、すなわち値の数が１となるように、部分画像領域内の画素値を変換する。
【００６２】
このような構成によって、例えば図７に示したように処理済みの部分と未処理の部分が含まれる、言い換えれば異なるジェネレーションが混在する画像が入力された場合、値範囲算出部３１、値数設定部３２、変換部３３で構成される値の数の変換処理により未処理の画像領域が入力された場合でも１回の値数変換処理を行ったことになり、ジェネレーションの違いを相殺して画質の違いを少なくしている。
【００６３】
この実施の形態における値の数の変換処理は、統計量による値の数の決定と、その値の数への変換処理で構成される。値の数を低減する処理は、代表値に平均値を使えば、部分画像領域全体での平均値は保存されるので、値の数を削減する分にはジェネレーションを発生しない。例えば部分画像領域を２つにクラスタリングし、それぞれの平均値で塗り分けた後、全体の平均値で値の数を１に変換したとする。この場合の結果は、画素値の精度による丸め誤差を除けば、最初から部分画像領域における値の数を１に変換するのと変わりない。従って、ジェネレーションは値の数の決定で起こる。値数決定の手法を変えなければ、値の数は統計量に依存することになる。つまり１回目の処理で統計量が変化（劣化）するために、ジェネレーションが発生する。そこで、値範囲算出部３１、値数設定部３２、変換部３３で構成される値の数の変換処理によって、２回目以降に起こるであろう統計量の変化を先取りし、この先取りした統計量で処理を行うことによりジェネレーションの違いを相殺している。
【００６４】
このように、図８に示した本発明の第２の実施の形態の変形例を適用することによって、異なるジェネレーションが混在することになる符号化処理の打ち切りにも対応し、最初からやり直す場合に比べて高速化を図り、さらに、不要な値の数の変換処理を行わないことにより、さらなる高速化を図っている。
【００６５】
なお、図８に示した構成において値の数を２または１とする場合、変換部３３において値の数を２にする処理は、必ずしも画素を変換する必要はない。つまり、値数設定部１４で値の数を設定する際に必要なのは値の取る範囲であるので、値の数を２に変換する際の２つの代表値が決定していれば、その２つの代表値の差と閾値との比較を行い、差が閾値より大きければ変換部１５で値の数を２へ変換する処理を完了させ、そうでなければ値の数を１へ変換する処理を行う、といった構成でもよい。このような構成の方が処理は効率化される。
【００６６】
また、初回は値範囲算出部１３、値数設定部１４、選択部１６，変換部１５を動作させずに値範囲算出部３１、値数設定部３２、変換部３３により符号化処理を進め、符号化処理を打ち切った後に値範囲算出部１３、値数設定部１４、選択部１６，変換部１５を動作させる構成でもよい。
【００６７】
図９は、本発明の各実施の形態及び変形例、応用例で説明した機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。図中、４１はプログラム、４２はコンピュータ、５１は光磁気ディスク、５２は光ディスク、５３は磁気ディスク、５４はメモリ、６１はＣＰＵ、６２は内部メモリ、６３は読取部、６４はハードディスク、６５はインタフェース、６６は通信部である。
【００６８】
上述の各実施の形態及びその変形例、応用例で説明した各部の機能の一部または全部を、コンピュータにより実行可能なプログラム４１によって実現してもよい。その場合、そのプログラム４１およびそのプログラムが用いるデータなどは、コンピュータが読み取り可能な記憶媒体に記憶させておけばよい。記憶媒体とは、コンピュータのハードウェア資源に備えられている読取部６３に対して、プログラムの記述内容に応じて、磁気、光、電気等のエネルギーの変化状態を引き起こして、それに対応する信号の形式で、読取部６３にプログラムの記述内容を伝達するものである。例えば、光磁気ディスク５１，光ディスク５２（ＣＤやＤＶＤなどを含む）、磁気ディスク５３，メモリ５４（ＩＣカード、メモリカードなどを含む）等である。もちろんこれらの記憶媒体は、可搬型に限られるものではない。
【００６９】
これらの記憶媒体にプログラム４１を格納しておき、例えばコンピュータ４２の読取部６３あるいはインタフェース６５にこれらの記憶媒体を装着することによって、コンピュータからプログラム４１を読み出し、内部メモリ６２またはハードディスク６４に記憶し、ＣＰＵ６１によってプログラム４１を実行することによって、上述の各実施の形態及びその変形例、応用例で説明した機能の一部又は全部が実現される。あるいは、ネットワークなどを介してプログラム４１をコンピュータ４２に転送し、コンピュータ４２では通信部６６でプログラム４１を受信して内部メモリ６２またはハードディスク６４に記憶し、ＣＰＵ６１によってプログラム４１を実行することによって、上述の各実施の形態及びその変形例、応用例で説明した機能の一部又は全部を実現してもよい。なお、コンピュータ４２には、このほかインタフェース６５を介して様々な装置と接続してもよく、例えば情報を表示する表示装置やユーザが情報を入力する入力装置等も接続されていてもよい。また、画像形成装置が接続され、例えば画像形成装置によって形成する画像を一時的に符号化して保存する際に適用する構成でもよいし、画像読取手段が接続され、読み取った画像を符号化して保存又は転送する場合に適用してもよい。
【００７０】
もちろん、一部の機能についてハードウェアによって構成してもよいし、すべてをハードウェアで構成してもよい。あるいは、他の構成とともに本発明も含めたプログラムとして構成してもよい。
【図面の簡単な説明】
【００７１】
【図１】本発明の第１の実施の形態を示す構成図である。
【図２】本発明の第１の実施の形態における動作の一例を示す流れ図である。
【図３】本発明の第２の実施の形態を示す構成図である。
【図４】本発明の第２の実施の形態における動作の一例を示す流れ図である。
【図５】本発明の第２の実施の形態の応用例を示す構成図である。
【図６】本発明の第２の実施の形態の応用例を示す別の構成図、図７は、符号化処理の打ち切りによる影響の説明図である。
【図７】符号化処理の打ち切りによる影響の説明図である。
【図８】本発明の第２の実施の形態における変形例を示す構成図である。
【図９】本発明の各実施の形態及び変形例、応用例で説明した機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体とコンピュータの一例の説明図である。
【符号の説明】
【００７２】
１１…領域設定部、１２…上位ビット判定部、１３…値範囲算出部、１４…値数設定部、１５…変換部、１６…選択部、２１…符号化部、２２…符号記憶部、２３…閾値決定部、２４…復号部、２５…値数変換部、３１…値範囲算出部、３２…値数設定部、３３…変換部、４１…プログラム、４２…コンピュータ、５１…光磁気ディスク、５２…光ディスク、５３…磁気ディスク、５４…メモリ、６１…ＣＰＵ、６２…内部メモリ、６３…読取部、６４…ハードディスク、６５…インタフェース、６６…通信部。
【図１】
0004784776.tif 000002
【図２】
0004784776.tif 000003
【図３】
0004784776.tif 000004
【図４】
0004784776.tif 000005
【図５】
0004784776.tif 000006
【図６】
0004784776.tif 000007
【図７】
0004784776.tif 000008
【図８】
0004784776.tif 000009
【図９】
0004784776.tif 000010