以下、図面を参照して、本発明の実施の形態について詳細に説明する。
[基本構成及び原理]
まず、本発明の基本構成及び原理について説明する。
図1に本発明の画像処理システム10の基本構成を示す。画像処理システム10は、入力された画像データを符号化する符号化装置20と、入力された符号化データを復号する復号装置60とで構成されている。
符号化装置20は、入力された画像データをライン毎に圧縮する参照ライン圧縮部30と、参照ライン圧縮部30で圧縮された圧縮データを記憶する参照ラインバッファ40と、入力された画像データを参照ラインバッファ40に記憶された圧縮データを参照してライン毎に符号化する符号化部50と、参照ライン圧縮部30、参照ラインバッファ40及び符号化部50の制御を司る制御部42とで構成されている。
符号化部50で行われる符号化は、1ライン毎に符号化する方式(例えば、JPEGのSpacial方式など)で、これから符号化しようとするライン(以下、「注目ライン」という)の符号化の際に、注目ライン以外のラインを参照して符号化を行う。ここで参照される注目ライン以外のラインを「参照ライン」という。例えば、図2(A)に示すように、注目ラインに含まれる注目画素Xを符号化する際に、注目画素Xの直前画素A及び直上画素Bを用いた予測式により予測符号化を行う場合は、注目ラインの直上ラインが参照ラインとなる。また、図2(B)に示すように、注目画素Xの複数の周辺画素Cの画素値から求まる注目画素の状態を示すコンテクストを生成し、このコンテクストを用いてマルコフモデル符号化を行う場合は、コンテクスト生成に必要な周辺画素Cを含む注目ライン以外のライン、すなわち、図2(B)の場合では、注目ラインの直上ライン及び直上ラインの直上ラインの2ラインが参照ラインとなる。
参照ラインバッファ40には、符号化部50の符号化で参照される参照ラインが圧縮された状態で記憶される。
参照ライン圧縮部30は、参照ラインバッファ40に記憶する参照ラインの容量を小さくするために参照ラインを圧縮して、圧縮データを参照ラインバッファ40に記憶する。
制御部42は、参照ライン圧縮部30及び符号化部50へ1ライン毎に画像データを入力する制御、参照ライン圧縮部30での圧縮処理の制御、参照ラインバッファ40への書き込み及び読み込みの制御、符号化部50での符号化の制御等を行う。
復号装置60は、基本的には符号化装置20による処理と反対の処理を行うためのもので、1ライン毎に復号された画像データを圧縮する参照ライン圧縮部70と、参照ライン圧縮部70で圧縮された圧縮データを記憶する参照ラインバッファ80と、入力された画像データを参照ラインバッファ80に記憶された圧縮データを参照してライン毎に復号する復号部90と、参照ライン圧縮部70、参照ラインバッファ80及び復号部90の制御を司る制御部82とで構成されている。
本発明の画像処理システム10によれば、符号化装置20に入力された画像データは、制御部42により1ラインずつ参照ライン圧縮部30及び符号化部50へ入力される。まず、符号化部50に入力された1ライン目が注目ラインとなるが、1ライン目であるので、参照ラインバッファ40には参照すべき参照ラインが記憶されていない。そこで、予め定めた処理で1ライン目を符号化して出力する。これと並行して、参照ライン圧縮部30に入力された1ライン目の画像データは、圧縮されて圧縮データとなって参照ラインバッファ40に記憶される。
次に、制御部42により2ライン目の画像データが参照ライン圧縮部30及び符号化部50へ入力されると、符号化部50に入力された2ライン目の画像データが注目ラインとなる。このとき、参照ラインバッファ40には、先に入力された1ライン目の圧縮データが記憶されているので、符号化部50は、この1ライン目の圧縮データを参照して2ライン目の画像データを符号化して出力する。この処理を最終ラインまで繰り返すことにより、画像データ全てを符号化する。
また、上記のように符号化された符号化データが復号装置60に入力されると、符号化データは、制御部82により1ラインずつ復号部90へ入力される。まず、復号部90に入力された1ライン目の符号化データが注目ラインとなるが、1ライン目であるので、参照ラインバッファ80には参照すべき参照ラインが記憶されていない。そこで、符号化装置20で1ライン目の画像データを符号化した方法に対応する方法で1ライン目の符号化データを復号して出力すると共に、復号された1ライン目の画像データを参照ライン圧縮部70に入力する。参照ライン圧縮部70に入力された1ライン目の画像データは、圧縮されて圧縮データとなって参照ラインバッファ80に記憶される。
次に、制御部82により2ライン目の符号化データが復号部90へ入力されると、復号部90に入力された2ライン目の符号化データが注目ラインとなる。このとき、参照ラインバッファ80には、先に入力された1ライン目の圧縮データが記憶されているので、復号部90は、この1ライン目の圧縮データを参照して2ライン目の符号化データを復号して出力すると共に、復号された2ライン目の画像データを参照ライン圧縮部70に入力する。この処理を最終ラインまで繰り返すことにより、符号化データ全てを復号する。
従来、参照ラインバッファは、参照ラインのライン数分のデータを記憶できる容量が必要であり、特に高解像度の画像データに対応する場合などには膨大な容量のラインバッファが必要であった。しかし、本発明の画像処理システム10によれば、参照ラインを参照ライン圧縮部30または70で圧縮してから参照ラインバッファ40または80に記憶するため、参照ラインバッファ40及び80の容量を削減できる。
なお、参照ラインに含まれる画素の画素値は、予測符号化における予測値の算出やマルコフ符号化におけるコンテクストの生成などに用いられるものであるため、参照ラインに施す圧縮が可逆圧縮である場合はもちろん、非可逆圧縮の場合であっても、符号化及び復号を行った画像データに基づく画像の画質に影響することはない。
上記の基本構成及び原理に基づくと、参照ライン圧縮部30または70による参照ラインの圧縮は、以下の条件を満たしていることがより好ましい。
1.参照ラインバッファ40または80のサイズ削減効果を相殺しないために、更に別の参照ラインを必要としない1ライン単位での圧縮方式であること。
2.符号化部50及び復号部90の処理が、参照ライン圧縮部30または70の処理待ちにより停滞することを防止するため、符号化部50及び復号部90における処理速度に比べて高速及び低負荷であること。
3.参照ラインバッファ40または80のサイズ削減効果を相殺しないために、符号化部50及び復号部90に比べて小規模であること。
4.参照ラインバッファ40または80のサイズ削減効果を高めるために、非可逆圧縮により圧縮するものであること。
5.参照ラインバッファ40または80に上限を設定してサイズ削減効果を高めるために、符号量制御を備えること。
6.参照ラインバッファ40または80のサイズ削減によるデメリットとして、符号化部50における符号化での圧縮率の低下が生じることを防止できること。
参照ラインの圧縮は、人間が見たときの画質を高く保つというような一般的な定義による画質に関する要件を備えている必要はなく、参照ラインに必要とされる情報を極力残していることが望ましい。例えば、圧縮率が低下する傾向が強い画素値の変化点であるエッジ部分においては、参照画素の画素位置および画素値の情報は重要である。また、テクスチャが連続する部分では、予測精度やマルコフモデルのエントロピー削減効果が低下する傾向が強いので、参照ラインの情報の重要性はそれほど大きくない。上記条件及び画像データの種類などに鑑みて、参照ライン圧縮部30または70を設計することが望ましい。
[第1の実施の形態]
図3を参照して、第1の実施の形態の画像処理システム110について説明する。画像処理システム110は、入力された画像データを符号化する符号化装置120と、入力された符号化データを復号する復号装置160とで構成されている。ここで、入力される画像データは複数ラインからなる画像データであり、符号化データも複数ラインからなる符号化データである。
符号化装置120は、入力された画像データをライン毎に圧縮するランレングス圧縮部130と、ランレングス圧縮部130で圧縮された圧縮データを記憶するラインメモリ140と、ラインメモリ140に記憶された圧縮データを読み出して伸張するランレングス伸張部152と、ダミー画素値を保持したダミー画素保持部154と、ランレングス伸張部152またはダミー画素保持部154の出力を参照して入力された画像データをライン毎に圧縮する圧縮部156と、ランレングス圧縮部130、ラインメモリ140、ランレングス伸張部152、ダミー画素保持部154及び圧縮部156の制御を司る制御部142とで構成されている。
ランレングス圧縮部130は、本発明の基本構成の参照ライン圧縮部30に対応し、ラインメモリ140は、本発明の基本構成の参照ラインバッファ40に対応し、ランレングス伸張部152、ダミー画素保持部154及び圧縮部156をあわせた構成150が、本発明の基本構成の符号化部50に対応し、制御部142は、本発明の基本構成の制御部42に対応している。
ランレングス圧縮部130は、制御部142の制御により入力された1ラインの画像データにランレングス圧縮を施して圧縮データとして出力する。ランレングス圧縮は公知の圧縮方式であるため、詳細な説明は省略するが、他のラインを参照することなく1ライン単位で圧縮できる圧縮方式である。そして、ランレングス伸張部152は、ラインメモリ140に記憶された圧縮データを、ランレングス圧縮部130の圧縮処理に対応した方式で伸張する。
ダミー画素保持部154は、後述する制御部142による符号量制御でラインメモリ140への書き込みが停止された場合に、ダミーの画素値を圧縮部156へ出力する。ダミー画素値はどのような値でもよいが、圧縮部156における圧縮率を向上させるものが望ましい。例えば、入力された画像データに多い画素値、白または黒などの固定値、同一ラインに含まれる既に処理された画素の画素値などをダミー画素値とすることができる。
制御部142は、ラインメモリ140の容量の上限設定のために、符号量制御を行う。具体的には、ラインメモリ140の書き込み領域の容量を監視し、容量が溢れる時点でランレングス圧縮部130での圧縮を打ち切り、それ以降の画素値は圧縮せず廃棄する。なお、圧縮処理は続けて、それ以降の画素値に基づいて生成した圧縮データを廃棄するようにしてもよい。これにより、ラインメモリ140への書き込みが停止される。
また、一部の画素値が廃棄された圧縮データをランレングス伸張部152において伸張する際には、1ライン分の画像データのうち廃棄された一部の画素が欠損することになる。そこで、制御部142は、ラインメモリ140の読み出し領域の容量を監視し、ラインメモリ140の読み出し領域の容量が空になる時点でランレングス伸長部152での伸張を停止し、ダミー画素保持部154からのダミー画素値の出力を開始させる。
ここで、ラインメモリ140の書き込み領域及び読み出し領域について説明する。
図4(A)に示すように、ラインメモリ140を書き込み領域と読み出し領域とで分割した場合には、制御部142において、上記処理を書き込み領域と読み出し領域において別個に行えばよい。
図4(B)に示すように、書き込み領域と読み出し領域とが同一か、または重なっている場合は、書き込み前に読み出しを完了させるために、ラインメモリ140がすでに書き込まれた領域と読み出されていない領域のみで埋まった場合に、ラインメモリ140への書き込みを停止するように制御する。このような制御を行うために、例えば、ラインメモリ140をリングバッファで構成し、書き込みは読み出すべき領域の直後から開始するように制御する。書き込みアドレスが読み出しアドレスに追いついてしまった場合は、書き込みを一時的に停止する。ただし読み出しアドレスが進めば、書き込みをまた再開する。ラインメモリ140が全て書き込んだデータで埋まった場合には、そこで書き込みを停止する。
なお、上記の場合で、書き込みが一時的に停止している期間の画素はラインメモリ140に記憶されないため、欠損してしまう。そこで、例えば、図5に示すように、停止した時点で書き込まれた圧縮データまたは再開した時点で書き込まれた圧縮データに基づいて、書き込みが停止してから再開するまでの欠損したデータを補間する。
復号装置160は、基本的には符号化装置120による処理と反対の処理を行うためのもので、復号された画素データをライン毎に圧縮するランレングス圧縮部170と、ランレングス圧縮部170で圧縮された圧縮データを記憶するラインメモリ180と、ラインメモリ180に記憶された圧縮データを読み出して伸張するランレングス伸張部192と、ダミー画素値を保持したダミー画素保持部194と、ランレングス伸張部192またはダミー画素保持部194の出力を参照して入力された画像データをライン毎に伸張する伸張部196と、ランレングス圧縮部170、ラインメモリ180、ランレングス伸張部192、ダミー画素保持部194及び伸張部196の制御を司る制御部182とで構成されている。
ランレングス圧縮部170は、本発明の基本構成の参照ライン圧縮部70に対応し、ラインメモリ180は、本発明の基本構成の参照ラインバッファ80に対応し、ランレングス伸張部192、ダミー画素保持部194及び伸張部196をあわせた構成190が、本発明の基本構成の復号部90に対応し、制御部182は、本発明の基本構成の制御部82に対応している。
以上のような構成の画像処理システム110の符号化装置120及び復号装置160の各部は、専用ASIC(Application Specified Integrated Circuit)等を中心としたハードウエア回路によって構成する。後述する第2〜第5の実施の形態についても同様である。
次に、第1の実施の形態の画像処理システム110の作用について説明する。
符号化装置20に入力された画像データは、制御部142により1ライン毎にランレングス圧縮部130及び圧縮部156へ入力される。まず、圧縮部156に入力された1ライン目の画像データが注目ラインとなるが、1ライン目であるので、ラインメモリ140には参照すべき参照ラインが記憶されていない。そこで、制御部142によりダミー画素保持部154からダミー画素値を出力させて、このダミー画素値を参照して1ライン目の画像データを符号化して出力する。
これと並行して、ランレングス圧縮部130に入力された1ライン目の画像データは、圧縮されて圧縮データとなって順次ラインメモリ140に書き込まれる。この間、制御部142は、ラインメモリ140の書き込み領域の容量を監視し、容量が溢れる時点でランレングス圧縮部130での圧縮を停止して、以降の画素値を廃棄することで、ラインメモリ140への書き込みを停止させる。これにより、一部の画素値が欠損した圧縮データがラインメモリ140に記憶されたことになる。
次に、制御部142により2ライン目の画像データがランレングス圧縮部130及び圧縮部156へ入力されると、圧縮部156に入力された2ライン目の画像データが注目ラインとなる。このとき、ラインメモリ140には、先に入力された1ライン目の圧縮データが記憶されているので、この1ライン目の圧縮データを参照ラインとするために、制御部142は、ラインメモリ140から圧縮データを読み出して、ランレングス伸張部152に入力して伸張する。この間、制御部142は、ラインメモリ140の読み出し領域の容量を監視し、容量が空になる時点でランレングス伸張部152での伸張を停止して、ダミー画素保持部154からダミー画素値を出力させる。圧縮部156では、伸張された画像データ及びダミー画素値を参照して2ライン目を符号化して出力する。この処理を最終ラインまで繰り返すことにより、画像データ全てを符号化する。
また、上記のように符号化された符号化データが復号装置160に入力されると、符号化データは、制御部182により1ライン毎に伸張部196へ入力される。まず、伸張部196に入力された1ライン目の符号化データが注目ラインとなるが、1ライン目であるので、ラインメモリ180には参照すべき参照ラインが記憶されていない。そこで、符号化装置20で1ライン目の画像データを符号化した方法に対応する方法で1ライン目の符号化データを復号して出力すると共に、復号された1ライン目の画像データをランレングス圧縮部170に入力する。ランレングス圧縮部170に入力された1ライン目の画像データは、圧縮されて圧縮データとなってラインメモリ180に記憶される。ここで、ラインメモリ180の容量を符号化装置120のラインメモリ140と同じ容量にしておけば、ラインメモリ180への書き込みを停止するタイミングを符号化時と同期させることができる。すなわち、符号化装置において廃棄された画素と同じ画素が破棄されることになる。
次に、制御部182により2ライン目の符号化データが伸張部196へ入力されると、伸張部196に入力された2ライン目の符号化データが注目ラインとなる。このとき、ラインメモリ180には、先に入力された1ライン目の圧縮データが記憶されているので、1ライン目の圧縮データを参照ラインとするために、制御部182は、ラインメモリ180から圧縮データを読み出して、ランレングス伸張部192に入力して伸張する。ランレングス圧縮部170での圧縮の際と同様に、ラインメモリ180の容量を符号化装置120のラインメモリ140と同じ容量にしておけば、ランレングス伸張部192での伸張を停止して、ダミー画素保持部194からダミー画素値を出力させるタイミングを符号化時と同期させることができる。伸張部196では、伸張された画像データ及びダミー画素値を参照して2ライン目の符号化データを復号して出力すると共に、復号された画像データをランレングス圧縮部170へ入力する。この処理を最終ラインまで繰り返すことにより、符号化データ全てを復号する。
以上説明したように、第1の実施の形態の画像処理システムによれば、ランレングス圧縮部により参照ラインとなる画像データを圧縮してラインメモリに記憶し、さらにラインメモリの書き込み領域の容量の上限を設定することができるため、ラインメモリの容量を効果的に削減することができる。
なお、第1の実施の形態では、ラインメモリの容量に応じて書き込み停止の制御を行う場合について説明したが、局所的なラインメモリの帯域に応じて書き込み停止を行うようにしてもよい。例えば、ランレングス圧縮部における局所圧縮率が低下してラインメモリの帯域を圧迫したときに書き込みを一時的に停止し、帯域が緩和したときに再開するように制御してもよい。ただし、符号化装置と復号装置とで同じ動作が要求されるので、この場合、実際の帯域ではなく局所的な書き込み量、読み出し量によって制御することにより、システム的なゆらぎの影響を受けないようにすることが望ましい。
また、参照ラインの情報の重要性が低いと判断された場合に、ランレングス圧縮部での圧縮を一時停止するように制御してもよい。例えば、高解像度のノイジーな写真や誤差拡散画像が貼り込まれた画像データのように、参照ラインを参照しても圧縮率の低下が図れないような場合には、必ずしもランレングス圧縮を行う必要はない。具体的には、入力された画像データを解析して、参照ラインを使う符号化と使わない符号化とで符号量を並行して算出し、差が一定値以下のときにはランレングス圧縮を停止するようにすることができる。なお、ランレングス圧縮を停止する場合には、上述したような画素補間の処理を行う必要がある。
また、第1の実施の形態では、ダミー画素保持部からダミー画素値を出力する場合について説明したが、ダミー画素値に対応するダミー符号を保持しておき、廃棄された画素部分をランレングス伸張部で伸張する際に、ランレングス伸長部へダミー符号を送出するように構成してもよい。
また、第1の実施の形態では、ラインメモリの書き込み領域及び読み出し領域を監視して制御する場合について説明したが、ラインメモリがあふれる直前に、例えば公知のEOLマーカのようなライン終端を示す符号をラインメモリに書き込むようにしてもよい。またこの場合、ライン終端を示す符号を検出すると、ライン終端まで所定の画素値を送出するようにランレングス伸長部を構成してもよい。このように構成すると、ランレングス伸長部を停止する制御を省略することができる。
[第2の実施の形態]
次に、図6を参照して、第2の実施の形態の画像処理システム210について説明する。画像処理システム210は、入力された画像データを符号化する符号化装置220と、入力された符号化データを復号する復号装置260とで構成されている。
符号化装置220は、入力された画像データをライン毎に圧縮するランレングス圧縮部230と、ランレングス圧縮部230で圧縮された圧縮データを記憶するラインメモリ240a及び240bを備えた参照ラインバッファ240と、参照ラインバッファ240に記憶された圧縮データを読み出して伸張するランレングス伸張部252と、ダミー画素値を保持したダミー画素保持部254と、ランレングス伸張部252またはダミー画素保持部254の出力を参照して入力された画像データをライン毎に圧縮する圧縮部256と、ランレングス圧縮部230、参照ラインバッファ240、ランレングス伸張部252、ダミー画素保持部254及び圧縮部256の制御を司る制御部242とで構成されている。
また、復号装置260は、基本的には符号化装置220による処理と反対の処理を行うためのもので、復号された画像データをライン毎に圧縮するランレングス圧縮部270と、ランレングス圧縮部270で圧縮された圧縮データを記憶するラインメモリ280a及び280bを備えた参照ラインバッファ280と、参照ラインバッファ280に記憶された圧縮データを読み出して伸張するランレングス伸張部292と、ダミー画素値を保持したダミー画素保持部294と、ランレングス伸張部292またはダミー画素保持部294の出力を参照して入力された画像データをライン毎に伸張する伸張部296と、ランレングス圧縮部270、参照ラインバッファ280、ランレングス伸張部292、ダミー画素保持部294及び伸張部296の制御を司る制御部282とで構成されている。
第2の実施の形態の画像処理システム210は、上記のとおり参照ラインバッファ240及び280がそれぞれ2個のラインメモリを備えている点が第1の実施の形態の画像処理システム110と異なっている。ここでは、異なっている点について説明し、その他の構成については、第1の実施の形態の画像処理システム110と同様であるため、説明を省略する。また、符号化装置210の参照ラインバッファ240と復号装置260の参照ラインバッファ280は、同一の構成及び作用であるため、ここでは、符号化装置210の参照ラインバッファ240について説明し、復号装置260の参照ラインバッファ280については説明を省略する。
ラインメモリ240a及びラインメモリ240bは、ランレングス圧縮部230で圧縮された圧縮データを1ライン毎に記憶する。参照ラインバッファ240が2個のラインメモリ240a及び240bを備えることにより、圧縮部256で注目ラインを符号化する際に、注目ラインの直上2ライン分を参照することができる。
次に、第2の実施の形態の画像処理システム210の作用について説明する。ここでは、圧縮部256での符号化に参照ラインが2ライン必要な場合について説明する。
符号化装置220に入力された画像データは、制御部242により1ライン毎にランレングス圧縮部230及び圧縮部256へ入力される。まず、圧縮部256に入力された1ライン目が注目ラインとなるが、1ライン目であるので、参照ラインバッファ240には参照すべき参照ラインが記憶されていないため、例えば、第1の実施の形態のように、ダミー画素保持部254のダミー画素値を参照して符号化する。これと並行して、ランレングス圧縮部230に入力された1ライン目の画像データは、圧縮されて圧縮データとなってラインメモリ240aに書き込まれる。
次に、制御部242により2ライン目の画像データがランレングス圧縮部230及び圧縮部256へ入力されると、圧縮部256に入力された2ライン目が注目ラインとなる。このとき、参照ラインバッファ240には、先に入力された1ライン目の圧縮データが記憶されているので、この1ライン目の圧縮データを参照ラインとするために、制御部242は、ラインメモリ240aから圧縮データを読み出して、ランレングス伸張部252に入力して伸張する。しかし、注目ラインを符号化するためには、もう1ライン前のデータも参照しなければならないが、その圧縮データはまだ記憶されていないため、例えば、ダミー画素保持部254のダミー画素値もあわせて参照して符号化する。
これと並行して、ラインメモリ240aに記憶された1ライン目の圧縮データをラインメモリ240bに書き替える。そして、ランレングス圧縮部230に入力された2ライン目の画像データを圧縮してラインメモリ240aに記憶する。
次に、制御部242により3ライン目がランレングス圧縮部230及び圧縮部256へ入力されると、圧縮部256に入力された3ライン目の画像データが注目ラインとなる。このとき、参照ラインバッファ240には、ラインメモリ240aに1ライン目の圧縮データ、ラインメモリ240bに2ライン目の圧縮データが記憶されているため、それぞれのラインメモリから圧縮データを読み出してランレングス伸張部252で伸張する。
ラインメモリ240bからの圧縮データの読み出しが終了した時点で、ラインメモリ240aの圧縮データをラインメモリ240bに書き替えて、次ラインの圧縮データをラインメモリ240aに記憶する。この処理を最終ラインまで繰り返すことにより、画像データ全てを符号化する。復号の際も同様の処理となる。
なお、ラインメモリ240aへの圧縮データ書き込みの際には、第1の実施の形態同様、制御部242によりラインメモリ240aの書き込み領域の容量を監視して書き込みを停止する符号量制御の処理を行う。
また、上記では、参照ラインが2ラインの場合について説明しているため、ラインメモリを2個備える構成としているが、参照ラインが3ライン以上の場合でも、参照ラインの数に対応してラインメモリを設けることにより、同様に処理することができる。
このように、第2の実施の形態の画像処理システムによれば、注目ラインの画像データを符号化及び復号する際に参照する参照ラインが複数ラインの場合であっても、1ラインの圧縮データを記憶するためのラインメモリの容量をそれぞれ削減することができ、参照ラインバッファ全体としても容量を削減できる。
[第3の実施の形態]
次に、図7を参照して、第3の実施の形態の画像処理システム310について説明する。画像処理システム310は、入力された画像データを符号化する符号化装置320と、入力された符号化データを復号する復号装置360とで構成されている。
符号化装置320は、入力された画像データをライン毎に単色化処理する単色化部332と、単色化部332で単色化された画像データをライン毎に圧縮するランレングス圧縮部334と、ランレングス圧縮部334で圧縮された圧縮データを記憶するラインメモリ340と、ラインメモリ340に記憶された圧縮データを読み出して伸張するランレングス伸張部352と、ランレングス伸張部352で伸張された画像データを参照して入力された画像データをライン毎に圧縮する圧縮部356と、単色化部332、ランレングス圧縮部334、ラインメモリ340、ランレングス伸張部352及び圧縮部356の制御を司る制御部342とで構成されている。
また、復号装置360は、基本的には符号化装置320による処理と反対の処理を行うためのもので、復号された画像データをライン毎に単色化する単色化部372と、単色化部372で単色化された画像データをライン毎に圧縮するランレングス圧縮部374と、ランレングス圧縮部374で圧縮された圧縮データを記憶するラインメモリ380と、ラインメモリ380に記憶された圧縮データを読み出して伸張するランレングス伸張部392と、ランレングス伸張部392で伸張された画像データを参照して入力された画像データをライン毎に伸張する伸張部396と、単色化部372、ランレングス圧縮部374、ラインメモリ380、ランレングス伸張部392及び伸張部396の制御を司る制御部382とで構成されている。
単色化部332及びランレングス圧縮部334をあわせた構成330が、本発明の基本構成の参照ライン圧縮部30に対応し、単色化部372及びランレングス圧縮部374をあわせた構成370が、本発明の基本構成の参照ライン圧縮部70に対応する。このように、ランレングス圧縮の前に画像データを単色化する構成であるため、第3の実施の形態の画像処理システム310における参照ラインの圧縮は、非可逆圧縮となる。
第3の実施の形態の画像処理システム310は、上記のとおりランレングス圧縮部334及び374の前に単色化部332及び372を設けた点が第1の実施の形態の画像処理システム110と異なっている。ここでは、異なっている点について説明し、その他の構成については、第1の実施の形態の画像処理システム110と同様であるため、説明を省略する。また、符号化装置320の単色化部332と復号装置360の単色化部372とは、同一の構成及び作用であるため、ここでは、符号化装置320の単色化部332について説明し、復号装置360の単色化部372については説明を省略する。
単色化部332は、入力された1ラインの画像データ内の画素について、局所的にまとめた画素(画素群)を同一画素値に変更する。同一の画素値は、画素群の画素値の平均値、中央値、最頻値や、例えば画素群の先頭画素など特定の画素の画素値とする。
画素群の範囲(単色化の分割位置)の大きさは、後述する制御部342の制御により決定されるが、基本的な分割位置は画素値の変化の状態から決定される。例えば、なだらかな画素値変化から急激な画素値変化を生じるエッジ部分では、画素値が変化する位置の情報は参照ラインが保持すべき情報として重要であるので、このエッジ部分を単色化の分割位置とし、エッジ部分をまたいだ分割は行わないようにする。なお、エッジ部分の検出は、画素値差分を閾値処理するなどの公知の技術により行う。また、例えば、小さな画素値変化が頻繁に起こるようなテクスチャ部分では、参照ラインを参照したとしても圧縮部356おける圧縮率は高くなりにくく、参照ラインの重要性は相対的に低いため、積極的に単色化が可能である。この場合は、画素値の変化から同様のテクスチャ部分と判断できる部分を画素群の範囲として決定する。また、予め定めた所定個の画素を画素群として暫定的に決定し、画素群のダイナミックレンジが閾値以上であれば、暫定的に決定した画素群をさらに分割して画素群の範囲を決定する。
制御部342は、ラインメモリ340の空き容量を監視し、空き容量に応じて単色化部332で単色化する画素群の範囲の大きさを決定する。
具体的には、ラインメモリ340の空き容量が少なくなった場合には、画素群の範囲を大きくするため、上記で述べた基本的な分割位置により決定された画素群の範囲を結合してより大きな画素群とする。空き容量に余裕がある場合には、基本的な分割位置により決定された画素群の範囲で単色化を行うようにしたり、更に小さな画素群の範囲に分割したり、その画素群についての単色化を行わないようにしたりする。なお、画素群の範囲を結合してより大きな画素群とする場合でも、エッジ部分については結合しないようにすることが望ましい。
また、ラインメモリ340の空き容量に依存した制御に加え、ランレングス圧縮部334での圧縮の圧縮率、及び圧縮部356における符号化の符号量を監視して、圧縮部356における符号量が比較的多い場合や、ランレングス圧縮部334での圧縮率が局所的に低下している場合には、さらに画素群の範囲を大きくするように制御してもよい。
次に、第3の実施の形態の画像処理システム310の作用について説明する。
符号化装置320に入力された画像データは、制御部342により1ライン毎に単色化部332及び圧縮部356へ入力され、単色化部332では、画素値の変化の状態に応じて単色化する画素群の範囲を決定して単色化し、単色化した画像データを順次ランレングス圧縮部334へ出力する。ランレングス圧縮部334では、単色化された画像データをランレングス圧縮して、順次ラインメモリ340へ書き込む。このとき、制御部342は、ラインメモリ340の空き容量、ランレングス圧縮部334での圧縮の圧縮率、及び圧縮部356における符号化の符号量を監視して、ラインメモリ340の空き容量が少なくなっている場合には、未処理分の画素値の圧縮データがラインメモリ340の空き容量に収まるように、画素群を結合して単色化する画素群の範囲を大きくする。
その他の処理については、第1の実施の形態と同様であるため、説明を省略する。また、復号の際も同様の処理となる。
以上説明したように、第3の実施の形態の画像処理システムによれば、画像データを単色化処理することにより、ランレングス圧縮部での圧縮率が向上するため、ラインメモリの容量を更に削減することができる。
なお、第3の実施の形態では、単色化処理する場合について説明したが、参照ラインの圧縮を非可逆圧縮とすることにより、可逆圧縮の場合に比べて圧縮率を高めラインメモリの容量を削減できる処理であればよい。例えば、ランレングス圧縮の前に平滑化処理を行うようにしてもよい。特に、圧縮部での符号化方式に予測符号化を適用する場合には、平滑化処理でも効果を得られる。また、予測符号化を適用する場合には、予測誤差が0になるような画素値で埋めていく処理でもよい。
また、第3の実施の形態では、ラインメモリの空き容量に依存して画素群の範囲を大きくする処理について説明したが、ラインメモリの空き容量に依存した制御は行わず、所定の基準に従って単色化処理を行ってもよい。この場合、ラインメモリに1ライン分の圧縮データがすべて書き込みできるという保証がないため、第1の実施の形態と同様に、ラインメモリへの書き込みを停止する符号量制御を組み合わせて適用するとよい。
[第4の実施の形態]
次に、図8を参照して、第4の実施の形態の画像処理システム410について説明する。画像処理システム410は、入力された画像データを非可逆符号化する符号化装置420と、入力された符号化データを復号する復号装置460とで構成されている。
符号化装置420は、入力された画像データを非可逆化処理する非可逆化部444と、非可逆化部444で非可逆化された画像データをライン毎に圧縮するランレングス圧縮部434と、ランレングス圧縮部434で圧縮された圧縮データを記憶するラインメモリ440と、ラインメモリ440に記憶された圧縮データを読み出して伸張するランレングス伸張部452と、ランレングス伸張部452で伸張された画像データを参照して非可逆化部444で非可逆化された画像データをライン毎に圧縮する圧縮部456と、非可逆化部444、ランレングス圧縮部434、ラインメモリ440、ランレングス伸張部452及び圧縮部456の制御を司る制御部442とで構成されている。
また、復号装置460は、基本的には符号化装置420による処理と反対の処理を行うためのものである。ただし、符号化装置420は、非可逆符号化を行うものであるため、復号装置460で復号される画像データは、非可逆化部444で非可逆化された状態の画像データとなる。復号装置460は、復号された画像データをライン毎に圧縮するランレングス圧縮部474と、ランレングス圧縮部474で圧縮された圧縮データを記憶するラインメモリ480と、ラインメモリ480に記憶された圧縮データを読み出して伸張するランレングス伸張部492と、ランレングス伸張部492で伸張された画像データを参照して入力された符号化データをライン毎に伸張する伸張部496と、ランレングス圧縮部474、ラインメモリ480、ランレングス伸張部492及び伸張部496の制御を司る制御部482とで構成されている。
非可逆化部444及びランレングス圧縮部434をあわせた構成430が、本発明の基本構成の参照ライン圧縮部30に対応し、非可逆化部444、ランレングス伸張部452及び圧縮部456をあわせた構成450が、本発明の基本構成の符号化部50に対応する。すなわち、非可逆符号化を行うための非可逆化部444が、参照ライン圧縮部の一部として機能する構成となっている。
第4の実施の形態の画像処理システム410は、上記のとおり非可逆化部444を設けた点が第1の実施の形態の画像処理システム110と異なっている。ここでは、異なっている点について説明し、その他の構成については、第1の実施の形態の画像処理システム110と同様であるため、説明を省略する。
非可逆化部444は、入力された画像データを非可逆化して圧縮部456へ出力する。すなわち、符号化データの符号化量を減少させるために、圧縮部456と組み合わさって非可逆符号化行うものである。
非可逆化の処理は、例えば、平滑化や局所的な単色化などである。この非可逆化は符号化データを復号した際の画像データに基づく画像の画質に影響を与える処理であるため、第3の実施の形態における単色化部332での単色化処理などに比べて画質を重視した設計にする必要がある。例えば、非可逆化部444での処理が単色化処理である場合に、単色化する画素群の範囲を必要以上に大きくすると、復号した際の画像への影響が大きいため、人が見るに耐えるレベルで画素群の範囲を決定して単色化する必要がある。このような必要性に対応した非可逆化であっても、一般的な傾向として圧縮方式によらず圧縮しやすい画像と圧縮しづらい画像が存在することから、非可逆化部444で非可逆化された画像データはランレングス圧縮部434によっても圧縮しやすいものになる可能性が高い。
非可逆化部444で平滑化を行う場合は、ライン方向に画素値が変化するグラデーションが発生する可能性があり、そのような画像データはランが連続しないためランレングス圧縮には不向きである。そこで、第3の実施の形態と同様に、ランレングス圧縮部434の前に単色化部を設けて、ランレングス圧縮に適したデータに処理するようにしてもよい。また、単色化部を設けた場合には、非可逆化された画像データを直接ランレングス圧縮部434に入力する場合と、非可逆化された画像データを単色化部で単色化してランレングス圧縮部434に入力する場合と、入力された画像データを直接単色化部に入力して単色化してランレングス圧縮部434に入力する場合とを、制御部442により局所的に切り替えて処理するような構成としてもよい。
次に、第4の実施の形態の画像処理装置410の作用について説明する。
符号化装置420に入力された画像データは、非可逆化部444に入力され、非可逆化処理される。非可逆化された画像データは、制御部442により1ライン毎にランレングス圧縮部434及び圧縮部456へ入力される。圧縮部456では、非可逆化された画像データを、ラインメモリ440に記憶された1つ前のラインの圧縮データをランレングス伸張部452で伸張した画像データを参照して符号化する。ランレングス圧縮部434では、非可逆化された画像データをランレングス圧縮して、圧縮した圧縮データをラインメモリ440に書き込む。
その他の処理については、第1の実施の形態と同様であるため、説明を省略する。また、復号の際も同様の処理となる。
以上説明したように、第4の実施の形態の画像処理システムによれば、非可逆符号化を行う符号化装置について本発明を適用する場合に、非可逆符号化のための非可逆処理を利用して参照ラインも非可逆化することができるため、簡易な構成で参照ラインの圧縮率を向上させてラインメモリの容量を削減することができる。
[第5の実施の形態]
次に、図9を参照して、第5の実施の形態の画像処理システム510について説明する。画像処理システム510は、入力された画像データを符号化する符号化装置520と、入力された符号化データを復号する復号装置560とで構成されている。
符号化装置520は、入力された画像データをライン毎に圧縮するランレングス圧縮部532と、ランレングス圧縮部532で圧縮された圧縮データを記憶するラインメモリ540と、ランレングス圧縮部532で圧縮された圧縮データを、ラインメモリ540に記憶された圧縮データを参照して符号化する圧縮部556と、ランレングス圧縮部532、ラインメモリ540及び圧縮部556の制御を司る制御部542とで構成されている。
また、復号装置560は、基本的には符号化装置520による処理と反対の処理を行うためのもので、伸張されたランレングスデータをライン毎に記憶するラインメモリ580、ラインメモリ580に記憶されたランレングスデータを参照して符号化データを伸張する伸張部596、伸張部596で伸張されたランレングスデータをランレングス伸張することにより復号するランレングス伸張部592、ラインメモリ580、伸張部596及びランレングス伸張部592の制御を司る制御部582とで構成されている。
ランレングス圧縮部532は、本発明の基本構成の参照ライン圧縮部30に対応し、ランレングス圧縮部532及び圧縮部556をあわせた構成550が、本発明の基本構成の符号化部50に対応している。すなわち、符号化装置520において、ランレングス圧縮部532は、参照ライン圧縮部としての機能と符号化部の一部としての機能を兼ねている。
また、ランレングス伸張部592及び伸張部596をあわせた構成590は、本発明の基本構成の復号部90に対応している。復号装置560では、伸張部596で伸張されたランレングスデータ(ランレングス伸張部592で伸張される前のデータ)をラインメモリ580に記憶する構成となっている。ランレングスデータは、符号化装置520においてランレングス圧縮部532で圧縮された圧縮データ(ランレングスデータ)と同一である。すなわち、復号部の一部が参照ライン圧縮部として機能することになる。
圧縮部556及び伸張部596の符号化方式は、例えば、国際標準JPEG−LSやLZ圧縮のようなランレングス圧縮を援用する方式である。JPEG−LSでは、コンテクストに応じて、ランレングス圧縮と予測符号化とを選択的に使用する。またLZ圧縮は注目画素と直前画素とが同一画素値であって、直前画素から一致長を求めるようなケースがランレングスに相当する。また、単純にランレングス圧縮した結果に二重に圧縮をかけるような圧縮方式や、特開2005−27081号公報で開示されているようなランレングス表現を入力とする圧縮方式であってもよい。
圧縮部556は、ランレングス圧縮されたランレングスデータに対して符号化を行う。JPEG−LSの例で言えば、ランレングス圧縮が選択された場合は、ランレングス圧縮部532の出力をエントロピー符号化して出力する。
伸長部596は、符号化データを伸張したランレングスデータを生成し、ラインメモリ580及びランレングス伸長部592に出力する。ランレングス伸長部592はランレングス伸長を行って復号する。
次に、第5の実施の形態の画像処理システム510の作用について説明する。
符号化装置520に入力された画像データは、制御部542により1ライン毎にランレングス圧縮部532へ入力される。ランレングス圧縮部532でランレングスデータを生成して、ラインメモリ540及び圧縮部556へ出力する。まず、圧縮部556に入力された1ライン目のランレングスデータが注目ラインとなるが、1ライン目であるので、ラインメモリ540には参照すべき参照ラインが記憶されていない。そこで、予め定めた処理により1ライン目のランレングスデータを符号化して出力する。これと並行して、ランレングス圧縮部532から出力されたランレングスデータは、ラインメモリ540に書き込まれる。
次に、制御部542により2ライン目の画像データがランレングス圧縮部532へ入力され、ランレングス圧縮部532でランレングスデータを生成して、ラインメモリ540及び圧縮部556へ出力する。圧縮部556に入力された2ライン目のランレングスデータが注目ラインとなり、このとき、ラインメモリ540には、先に入力された1ライン目のランレングスデータが記憶されているので、この1ライン目のランレングスデータを参照して2ライン目のランレングスデータを符号化して出力する。この処理を最終ラインまで繰り返すことにより、画像データ全てを符号化する。
また、上記のように符号化された符号化データが復号装置560に入力されると、符号化データは、制御部582により1ライン毎に伸張部596へ入力される。まず、伸張部596に入力された1ライン目の符号化データが注目ラインとなるが、1ライン目であるので、ラインメモリ580には参照すべき参照ラインが記憶されていない。そこで、符号化装置520で1ライン目のランレングスデータを符号化した方法に対応する方法で1ライン目の符号化データを伸張してランレングスデータを生成し、1ライン目のランレングスデータをラインメモリ580及びランレングス伸張部592に入力する。ランレングス伸張部592に入力された1ライン目のランレングスデータは、ランレングス伸張されて出力される。
次に、制御部582により2ライン目の符号化データが伸張部596へ入力されると、伸張部596に入力された2ライン目の符号化データが注目ラインとなる。このとき、ラインメモリ580には、先に入力された1ライン目のランレングスデータが記憶されているので、この1ライン目のランレングスデータを参照して2ライン目の符号化データを伸張してランレングスデータを生成し、2ライン目のランレングスデータをラインメモリ580及びランレングス伸張部592に入力する。ランレングス伸張部592に入力された2ライン目のランレングスデータは、ランレングス伸張されて出力される。この処理を最終ラインまで繰り返すことにより、符号化データ全てを復号する。
以上説明したように、第5の実施の形態の画像処理システムによれば、参照ラインを圧縮するためのランレングス圧縮部を、画像データを符号化するための符号化部の一部として構成し、また、復号部の処理の一部をランレングス圧縮部として機能させるため、ラインメモリの容量を削減するための構成を簡略化して処理の効率を図れる。
なお、上記第1〜第5の実施の形態は、適宜組み合わせて構成することができる。