(57)【要約】【課題】  ブロック単位に符号化する際、そのブロック中に重複して存在するラインを除外した上で符号化することにより、符号化効率を高めることが可能になる。【解決手段】  ライン比較部１０３は、着目ブロックから順にラインデータを入力し、着目ラインと直前に入力したラインとを比較し、一致、不一致を示すフラグを識別情報としてバッファメモリ１０８に格納し、統合部１０４に出力する。統合部１０４は、不一致である識別情報を有するラインを、自身の内部メモリに格納していく。この結果、連続して一致するラインが除外した新たなブロックが統合部１０４の内部メモリに構築される。符号化部１０６は、統合部１０４に構築されたブロックを符号化する。符号列形成部１０７は、バッファメモリ１０８に格納された識別情報と、符号化部１０６より得られた符号化データとを、着目ブロックの符号化データとして出力する。【選択図】  図１
2008301449.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素で構成されるブロック単位に、画像データを符号化する画像符号化装置であって、
着目ブロックの画像データから、ライン単位に画像データを入力する入力手段と、
前記入力手段で入力した着目ラインと一致するラインが、既に入力したライン中に存在するか否か、及び、存在する場合には一致するラインを特定するための識別情報を生成する判定手段と、
前記判定手段が生成した前記識別情報に基づいて、一致するラインが存在しないと判定された各ラインを統合することで、新たなブロックを生成する統合手段と、
前記統合手段で統合した前記新たなブロックの画像データを符号化する符号化手段と、
前記判定手段で生成された前記着目ブロックの各ラインの識別情報と、前記符号化手段で生成された符号化データを、前記着目ブロックの符号化データとして出力する出力手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
前記符号化手段がｎ個のデータを並列に符号化する場合、前記統合手段で統合された前記新たなブロックをｎ個のスライスに分割する分割手段とを備え、
前記符号化手段は前記分割手段で分割した各スライスを並列符号化することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記判定手段は、前記着目ラインと直前に入力したラインとが一致するか否かを判定することを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記判定手段は、前記着目ラインと比較する対象のラインを記憶するための記憶手段を備え、
前記着目ラインと前記記憶手段に記憶されたラインとを比較し、一致するラインが存在した場合、一致したラインが存在すると共に、その一致したラインを特定する情報を前記識別情報として生成し、
前記着目ラインと前記記憶手段に記憶されたラインとを比較し、一致するラインが存在しなかった場合、着目ラインを前記記憶手段に新に登録すると共に、登録した着目ラインを特定する情報を前記識別情報として生成する
ことを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項５】
複数の画素で構成されるブロック単位に、画像データを符号化する画像符号化装置の制御方法であって、
着目ブロックの画像データから、ライン単位に画像データを入力する入力工程と、
前記入力工程で入力した着目ラインと一致するラインが、既に入力したライン中に存在するか否か、及び、存在する場合には一致するラインを特定するための識別情報を生成する判定工程と、
前記判定工程が生成した前記識別情報に基づいて、一致するラインが存在しないと判定された各ラインを統合することで、新たなブロックを生成する統合工程と、
前記統合工程で統合した前記新たなブロックの画像データを符号化する符号化工程と、
前記判定工程で生成された前記着目ブロックの各ラインの識別情報と、前記符号化工程で生成された符号化データを、前記着目ブロックの符号化データとして出力する出力工程と
を備えることを特徴とする画像符号化装置の制御方法。
【請求項６】
コンピュータに読込ませ実行させることで、前記コンピュータを請求項１乃至４のいずれか１項に記載の画像符号化装置として機能させることを特徴とするコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の符号化技術に関するものである。
【背景技術】
【０００２】
従来、文字、線画、ＣＧ画像など、同一画素値、または同一画素配置の連続が多く見られる画像データを効率的に符号化することを目的として、幾つもの提案がなされている。
【０００３】
その中には、符号化対象ラインの画素データと、１つ前（直上）のラインの画素データが完全に一致するか否か、並びに、１つ前のラインを１又は複数画素ずらした場合に着目ラインと完全一致するか否かを判定し、その判定結果に基づいて画素データを符号化する提案がある（特許文献１）。
【０００４】
また、符号化の繰り返し、複写、生データの置換のいずれに該当するかを判定し、それによってデータ長を算出するような提案もある（特許文献２）。
【特許文献１】特開平０８−２７２９７８号公報
【特許文献２】特開２００１-０５３６２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
画像を並列符号化する装置の場合、画像を任意のサイズのブロック単位に分割をし、処理を行う。このような符号化装置ではブロックごとに符号化をスタートさせるので、画像の先頭ラインなどにおいて、符号化効率の悪い場合がある。
【０００６】
本発明は係る問題点に鑑みなされたものであり、ブロック単位の符号化効率を更に高め、圧縮率を更に高くする技術を提供しようとするものである。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
複数の画素で構成されるブロック単位に、画像データを符号化する画像符号化装置であって、
着目ブロックの画像データから、ライン単位に画像データを入力する入力手段と、
前記入力手段で入力した着目ラインと一致するラインが、既に入力したライン中に存在するか否か、及び、存在する場合には一致するラインを特定するための識別情報を生成する判定手段と、
前記判定手段が生成した前記識別情報に基づいて、一致するラインが存在しないと判定された各ラインを統合することで、新たなブロックを生成する統合手段と、
前記統合手段で統合した前記新たなブロックの画像データを符号化する符号化手段と、
前記判定手段で生成された前記着目ブロックの各ラインの識別情報と、前記符号化手段で生成された符号化データを、前記着目ブロックの符号化データとして出力する出力手段とを備える。
【発明の効果】
【０００８】
本発明によれば、ブロック単位に符号化する際、そのブロック中に重複して存在するラインを除外した上で符号化することにより、符号化効率を高めることが可能になる。
【発明を実施するための最良の形態】
【０００９】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１０】
［第１の実施形態］
図１は、本実施形態に係る画像データを可逆符号化する画像符号化装置のブロック構成図である。本実施形態の画像符号化装置は、装置全体の制御を司る制御部１００、ストライプバッファ１０１、ブロック切り出し部１０２、ライン比較部１０３、統合部１０４、スライス分割部１０５、符号化部１０６、符号列形成部１０７、バッファメモリ１０８を備える。同図において、１０９、１１０は信号線である。
【００１１】
本実施形態に係る画像符号化装置の符号化対象とする画像データは、Ｒ，Ｇ，Ｂの色成分で構成されるカラー画像データである。また、各画素の成分は８ビット（２５６階調）で表わされるものとする。符号化対象の画像データの並びは点順次、即ち、ラスタースキャン順に各画素を並べらているものとする。また、各画素はＲ，Ｇ，Ｂ順に成分データが並べられて構成されるものとする。また、符号化対象の画像のサイズは水平方向にＷ画素、垂直方向にＨ画素であるものとする。
【００１２】
本装置は、符号化対象の画像データを水平方向Ｂｗ画素、垂直方向Ｂｈ画素で構成されるブロックを単位に符号化する。
【００１３】
また、説明を簡易にするため、画像の水平方向画素数ＷはＢｗの整数倍であり、垂直方向画素数ＨはＢｈの整数倍の大きさであるものとし、ブロックに分割した場合に不完全なブロックは発生しないものとして説明する。そして、ブロックのサイズＢｗ、Ｂｈは様々な値とすることができるが、以下の説明ではＢｗ＝Ｂｈ＝３２として説明する。
【００１４】
なお、上記は一例であって、符号化対象の画像データの色空間はＲＧＢに限らず、ＣＭＹＫやモノクロ画像でもよいし、各成分のビット数も８ビットに限定されるものではない。また、実施形態では、符号化対象の画像データの発生源は、記憶媒体に格納された無圧縮の画像データのファイルとするが、イメージスキャナや、印刷データに基づいてレンダリングするレンダリング処理部でも良く、その種類は問わない。
【００１５】
以下、図１を参照して、本実施形態に係る画像符号化装置の符号化処理内容を説明する。 
まず、信号線１０９から符号化対象となる画像データが順に入力される。画素データの入力順序は先に説明したようにラスタースキャン順とし、各画素でＲ，Ｇ，Ｂの順番で成分データが入力されるものとする。Ｒ，Ｇ，Ｂをそれぞれ成分番号０，１，２で定義し、画像の左上隅を座標（０，０）として水平（右）方向の画素位置ｘ、垂直（下）方向画素位置ｙにある画素の成分番号Ｃの値をＰ（ｘ，ｙ，Ｃ）と表すこととする。例えば、位置（ｘ、ｙ）＝（３，４）である画素が（Ｒ，Ｇ，Ｂ）＝（２５５，１２８，０）という値を持つ場合、Ｐ（３，４，０）＝２５５、Ｐ（３，４，１）＝１２８、Ｐ（３，４，２）＝０と表現する。
【００１６】
ストライプバッファ１０１は画像入力部１０１から入力される画像データのＢｈライン、すなわち、３２ライン分を格納する。ストライプバッファ１０１のメモリ容量は、少なくとも３２×Ｗ×３バイトとなる。以降、このストライプバッファ１０１に格納されるＢｈラインの画像データをストライプデータと呼ぶ。
【００１７】
ブロック切り出し部１０２は、後述する符号化処理に同期し、ストライプバッファ１０１に格納されるストライプデータを、左から右に向かう順番に、符号化処理単位の３２×３２画素のサイズのブロックを切り出し、内部の記憶領域に格納する。
【００１８】
ライン比較部１０３は、ブロック切り出し部１０２に記憶されたブロック内の着目ラインと１つ前に入力したライン（以下、直前ライン）を比較し、着目ラインが直前ラインと一致しているか否かを識別するための識別情報（以下、フラグＦＩ）を生成する。なお、着目ラインと比較する対象は、その直前ラインであるので、この識別情報が一致することを示している場合、着目ラインが直前のラインと一致していることを示すことをも意味する。
【００１９】
ここで、２つのラインが一致するというのは、変数ｉ＝０、１、…、３０、３１について
条件：Ｐ（ｘ＋ｉ、ｙ、Ｃ）＝Ｐ（ｘ＋ｉ，ｙ−１，Ｃ）
の関係が成立する場合である。また、不一致とは、上記条件が１つでも満たしていない場合である。実施形態では、一致する場合にはフラグＦＩ＝“１”、不一致の場合、フラグＦＩ＝“０”を生成する。フラグＦＩは｛０、１｝のいずれかであるので１ビットで表わさせる。実施形態では、１ブロックの高さＷｈが“３２”であるので、ライン比較部１０３が生成するのフラグＦＩは３２個、すなわち、３２ビットとなる。なお、ブロック内の先頭ラインに対する直前ラインは存在しないので、先頭ラインについてはフラグＦＩ＝０とする。また、以下の説明において、バッファメモリ１０８に格納される３２個（３２ビット）のフラグＦＩを総称してフラグ情報と呼ぶ。
【００２０】
バッファメモリ１０８は、上記のようにしてライン比較部１０３から出力された３２ビットのフラグ情報を一時的に記憶保持する。図３は、バッファメモリ１０８に記憶されたフラグ情報の一例を示している。
【００２１】
統合部１０４は、ライン比較部１０３からのフラグＦＩを入力すると共に、ブロック切り出し部１０２から先頭から順番に各ラインの画像データを入力する。そして、統合部１０４は、フラグＦＩ＝１に対応するラインの画像データは破棄し、フラグＦＩ＝０で示されるラインの画像データを、内部のメモリに格納する。
【００２２】
図２は、統合部１０４の処理内容を示している。図示の如く、前のラインと同じ画素を有するラインは破棄されるので、図示の場合、統合部１０４の内部メモリに格納されるのは４ラインとなる。つまり、図２の上部に示す８×８画素のブロックから、新たなブロック４行、８列のブロックを構成することに成功する。なお、図２は８×８画素の画像データの例を示しているが、実施形態では３２×３２画素のブロックについてこの処理を行なうので、生成される統合後のブロックの水平方向のサイズは３２となる。
【００２３】
実施形態における符号化部１０６はｎ個の符号化データを並列して符号化する機能を有するものとする。説明を簡単にするため、ｎ＝２であるものとする。
【００２４】
スライス分割部１０５では、統合部１０４の内部メモリに格納された画像データを、符号化部１０６の並列符号化可能な数“２”個のスライスに分割する。この結果、スライス分割部１０５は、統合部１０４の内部のメモリに格納された統合済みの画像データを図２の示すように２つのスライスに分割し、それぞれを符号化部１０６に出力し、並列符号化を行なわせる。
【００２５】
符号化部１０６では、入力された各スライス画像を並列して符号化を行う。なお、符号化部１０６の符号化としては、公知の多値の可逆符号化方式、例えば、ＪＰＥＧ−ＬＳ、ＰＮＧ、ＪＰＥＧ２０００を用いて符号化処理を行うものである。例えば、ＪＰＥＧ−ＬＳ符号化で符号化を行う場合、ランレングス符号化モードとレギュラーモードを着目画素の周囲４画素の状態に応じて切り替え符号化を行う。
【００２６】
スライス単位に並列処理を行う画像処理装置の場合、画像によって動的に符号化のためのパラメータを変化させていき、最適な符号語を割り当てるような方式である。しかし、この場合、小さい単位で分割することで、主にスライスの先頭ラインで符号化効率の低下が見られる。この負荷を最小限に抑制するため、符号化前にラインの統合を行っておく。
【００２７】
符号列形成部１０７は、画像の符号化に先立ち、画像の水平方向・垂直方向の画素数、画素を構成する成分の数、各成分の精度、ブロックサイズなど、復号処理に必要な付加情報をヘッダとして出力する。そして、符号列形成部１０７は、バッファメモリ１０８に格納された３２ビットのフラグ情報と、符号化部１０６からのライン毎の符号化データと着目ブロックの符号化データとして出力する。なお、出力先が記憶装置である場合、ファイルとして出力することになる。
【００２８】
図４は符号列形成部１０７によって生成される符号化データの構造を示している。図のように、画像符号化データの先頭には、ヘッダ（ファイルヘッダ）が存在し、それに後続して１つのブロックのフラグ情報（３２ビット）を格納し、更にそれに後続してフラグＦＩ＝０の個数分のライン符号化データが続く。
【００２９】
図５は、本実施形態に係る画像符号化装置の制御部１００の処理手順を示すフローチャートである。以下、同図に従って符号化処理の流れを説明する。
【００３０】
まず、ステップＳ５０１にて、制御部１００は、信号線１０９から符号化対象画像データから３２ライン分の画像データをストライプバッファ１０１に格納する。次いで、制御部１００は、ステップＳ５０２にて、ブロック切り出し部１０２を制御する。ブロック切り出し部１０２は、この結果、ストライプバッファ１０１に格納されるストライプデータの左から右へ、順番に３２×３２画素のブロックの一つを取り出してブロック切り出し部１０２の内部メモリに格納する。
【００３１】
続いて、ステップＳ５０３にて、制御部１００はライン比較部１０３と統合部１０４に、ブロック切り出し部１０２の内部メモリのブロックデータについての処理を開始させる。ライン比較部１０３は、ブロック切り出し部１０２の内部メモリに格納された１ブロック中のラインデータ（実施形態では３２画素）を単位に読込み、今回読込んだラインと、前回読込んだラインとを比較し、その比較結果のフラグＦＩを生成する。そして、ライン比較部１０３は、そのフラグＦＩをバッファメモリ１０８に格納する共に、統合部１０４に出力する。統合部１０４は、ライン比較部１０３から出力されるフラグＦＩが“０”である場合に、ブロック切り出し部１０２の内部メモリに格納された１ブロック中のラインデータを入力し、統合部１０４の内部メモリにそのラインデータを順次格納する。
【００３２】
実施形態では、１ブロックが３２ラインで構成されるので、上記処理を３２回行なうことになる。なお、ライン比較部１０３は、ブロックの先頭ラインについては、フラグＦＩは“０”にする。
【００３３】
上記のようにして、１ブロック分のフラグＦＩの生成、統合処理を終えると、処理はステップＳ５０４に進む。このステップＳ５０４において、制御部１００は、スライス分割部１０５、及び、符号化部１０６、符号列形成部１０７を制御し、符号化処理を行なわせる。実施形態における符号化部１０６は、２つの符号化処理を並列処理する機能を持つものとしているので、スライス分割部１０５は、統合部１０４の内部メモリに格納された統合画像データを２つのスライスに分割し、それぞれを符号化部１０６に出力する。符号化部１０６は、各スライスを符号化し、各ラインの符号化データを、符号列形成部１０７に出力することになる。符号列形成部１０７は、先ず、バッファメモリ１０８から３２ビットのフラグ情報を信号線１１０を介して出力し、それに後続して、フラグＦＩが“０”となっているラインの符号化データを順番に出力する。
【００３４】
以上のようにして、１ブロック（３２×３２画素）の画像データの符号化データの出力が完了する。
【００３５】
１ブロック分の画像データの符号化及び出力が完了すると、制御部１００は、処理はステップＳ５０５に進み、符号化したブロックがストライプデータの最後のブロック（右端のブロック）であったか否かを判断する。否の場合、ステップＳ５０２以降の処理を行なう。
【００３６】
一方、ストライプデータの最後のブロックの符号化を終えたと判断した場合には、ステップＳ５０６に進み、着目ストライプデータが、符号化対象の画像データの最後のストライプであったか否かを判断する。否の場合にはステップＳ５０１に戻り、次のストライプデータについての符号化処理を行なう。
【００３７】
そして、ステップＳ５０６にて、最終ストライプの符号化が完了したと判断した場合には、符号化対象の画像データの全ブロックの符号化が完了したことになるので、本処理を終了する。
【００３８】
以上説明したように本実施形態によれば、１つのブロックを符号化するに先立って、隣接するラインの一致／不一致を判定し、その判定結果に基づいてラインの統合処理を行い、スライスの数を減らした状態で符号化する。この結果、スライスの先頭ラインでの負荷が軽減されることで、文字、線画、ＣＧ画像など、同じ画素配置のパターンが多く出現する画像に対し、高い圧縮性能の可逆符号化を実現できる。なお、本実施形態の画像処理装置ではブロック単位に独立の符号化が行われているため、部分的な復号や、並列符号化／復号が可能であるという特徴がある。
【００３９】
なお、復号装置においては、各ブロックの先頭のフラグ情報（３２ビット）を先ず判別し、その３２ビット中の“０”の個数をカウントする。このカウントした個数のラインの符号化データが、そのフラグ情報に後続しているものとして復号する。そして、フラグＦＩが“０”のラインでは、復号結果を出力する。また、フラグＦＩが“１”では、直前ラインの復号結果を着目ラインの復号結果として出力すればよい。
【００４０】
［第１の実施形態の変形例］
上記実施形態はパーソナルコンピュータ等の情報処理装置によるコンピュータプログラムによっても実現できる。以下は、その変形例である。
【００４１】
図１１は、本変形例における情報処理装置（例えばパーソナルコンピュータ）のブロック構成図である。
【００４２】
図中、１４０１はＣＰＵで、ＲＡＭ１４０２やＲＯＭ１４０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理のアプリケーションプログラムを実行する。１４０２はＲＡＭで、外部記憶装置１４０７や記憶媒体ドライブ１４０８、若しくはＩ／Ｆ１４０９を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備える。また、ＲＡＭ１４０２は、ＣＰＵ１４０１が各種の処理を実行する際に使用するワークエリアも備える。１４０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。１４０４、１４０５は夫々キーボード、マウスで、ＣＰＵ１４０１に対して各種の指示を入力することができる。
【００４３】
１４０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。１４０７はハードディスクドライブ装置等の大容量の外部記憶装置である。この外部記憶装置１４０７には、ＯＳ（オペレーティングシステム）や後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどがファイルとして保存されている。また、ＣＰＵ１４０１は、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードし、実行することになる。
【００４４】
１４０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ１４０２や外部記憶装置１４０７に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。この場合、記憶媒体ドライブ１４０８は、ＣＰＵ１４０１による制御によって、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードする。
【００４５】
１４０９はＩ／Ｆで、このＩ／Ｆ１４０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ１４０２や外部記憶装置１４０７、あるいは記憶媒体ドライブ１４０８に入力することもできる。１４１０は上述の各部を繋ぐバスである。
【００４６】
上記構成において、本装置の電源がＯＮになると、ＣＰＵ１４０１はＲＯＭ１４０３のブートプログラムに従って、外部記憶装置１４０７からＯＳをＲＡＭ１４０２にロードする。この結果、キーボード１４０４、マウス１４０５の入力が可能となり、表示装置１４０６にＧＵＩを表示することが可能になる。ユーザが、キーボード１４０４やマウス１４０５を操作し、外部記憶装置１４０７に格納された画像符号化用アプリケーションプログラムの起動の指示を行なうと、ＣＰＵ１４０１はそのプログラムをＲＡＭ１４０２にロードし、実行する。これにより、本装置が画像符号化装置として機能することになる。
【００４７】
この画像符号化用アプリケーションの処理は、第１の実施形態で示した図５と実質的に等価の処理を行なえば良い。すなわち、図１における各処理部に相当する機能を、ＣＰＵ１４０１が実行する関数（サブルーチン）により実現する。また、ストライプバッファ１０１、バッファメモリ１０８を始め、各処理部における内部メモリは、ＲＡＭ１４０２に確保することで実現できる。
【００４８】
以上説明したように、第１の実施形態にかかる装置と同等の機能が、コンピュータが実行するコンピュータプログラムによっても実現できることは明らかである。
【００４９】
［第２の実施形態］
本第２の実施形態では、第１の実施形態と同様に符号化前にラインの一致／不一致の判定を行い、ラインの統合を行う。ただし、本第２の実施形態では、着目ラインと直前ラインのみの比較ではなく、着目ラインよりも前に入力した任意のラインと比較する点が異なる。そして、一致するラインがあるか否か、及び、一致するラインがあればどのラインと一致するのかを識別するための識別情報を生成する。本第２の実施形態における、この識別情報は、後述する配列番号もしくは配列番号情報としている。
【００５０】
装置構成は、図１と同じである。第１の実施形態と大きく異なる点は、ライン比較部１０３の処理内容と、統合部１０４である。そこで、以下では本第２の実施形態におけるライン比較部１０３の処理内容を図７のフローチャートに従って説明する。
【００５１】
なお、この処理を開始するに当たり、既に１ブロック分の画像データ（３２×３２画素データ）がブロック切り出し部１０２の内部メモリに格納されているものとする。
【００５２】
まず、ブロック切り出し部１０２は、ステップＳ７０１にて、ブロック切り出し部１０２の内部メモリから、画像データの先頭ラインのラインデータ（３２画素）を入力し、そのラインデータと、配列番号“１”を示す情報を内部のメモリに保持する。
【００５３】
次いで、ブロック切り出し部１０２は、ステップＳ７０２にて、次のラインデータ（着目ラインデータ）を読込み、既に登録されたラインデータ（複数の場合も有り得る）のいずれかと一致するか否かを判定する。
【００５４】
登録されたラインデータの中に着目ラインデータと一致するラインデータが見つかった場合には、ステップＳ７０３に進み、一致すると判定されたラインを特定するため、その配列番号を、着目ラインの配列番号として登録する。この後、ステップＳ７０６に処理を進める。従って、着目ラインデータが、ブロックの２番目のラインデータであり、先頭ラインと等しい場合、着目ラインの配列番号は“１”となる。
【００５５】
一方、既に登録されたラインデータの中に着目ラインデータと一致するラインデータが見つからなかった場合には、ステップＳ７０４に進む。ステップＳ７０４に進むのは、着目ラインが新たなパターンであることによる。それ故、配列番号を“１”だけ増加し、その配列番号を内部メモリに格納する。そして、ステップＳ７０５にて、着目ラインデータも内部メモリに登録する。従って、着目ラインデータが、ブロックの２番目のラインデータであり、先頭ラインと不一致の場合、着目ラインの配列番号は“２”となり、着目ラインデータは内部メモリに保持されることになる。
【００５６】
ステップＳ７０６では、着目ラインがブロックの最終ラインであるか否かを判定する。否の場合には、ステップＳ７０２以降の処理を繰り替えす。
【００５７】
着目ブロックの全ラインについての処理を終えると、処理はステップＳ７０７に進み、内部に格納された３２個の配列番号を、ライン順に、バッファメモリ１０８及び統合部１０４に出力する。
【００５８】
上記処理をより分かりやすく示すと次の通りである。説明を簡単なものとするため、１ブロックが８×８画素であり、図６に示すように、２種類の画素で構成されているものとする。先頭ラインの配列番号が“１”である。２番目のラインは、先頭ラインと一致するので、その配列番号は“１”になる。３番目のラインは、それ以前のラインのいずれとも一致しないので、配列番号は“２”となる。以下、これを繰り返すと、結局のところ、図６に示す画像の場合、配列番号は“１”、“２”の２種類のみとなる。すなわち、図６の場合、ライン比較部１０３が出力する配列番号情報は、図８に示すようになる。
【００５９】
本第２の実施形態における統合部１０４は、ブロック切り出し部１０２の内部メモリに格納された３２ライン分の画像データを統合する際、３２個の配列番号の先頭から順にチェックする。そして、新たな配列番号が見つかった場合にのみ、そのラインデータをブロック切り出し部１０２から読込み、統合部１０４内の内部メモリに格納する。なお、統合結果は、統合部１０４内の内部メモリに限らず、別途、記憶手段としてバッファメモリを用意し、そこに記憶してもかまわない。
【００６０】
図１０は、本第２の実施形態における統合部１０４の処理内容を示すフローチャートである。
【００６１】
以下、同図従って統合部１０４の処理を説明する。なお、以下の説明において、変数ｉはブロック中の着目ラインの位置を変数である。また、ＦＩ（ｉ）は、バッファメモリ１０８に格納された３２個の配列番号中の、第ｉライン目の配列番号を示している。そして、Ｆｍａｘは配列番号の最大値を保持する変数である。
【００６２】
先ず、ステップＳ１００１にて、変数ｉ，Ｆｍａｘをそれぞれ“０”で初期化する。次いで、ステップＳ１００２に進み、第ｉ番目のラインの配列番号ＦＩ（ｉ）とＦｍａｘとを比較する。
【００６３】
ＦＩ（ｉ）＞Ｆｍａｘである場合、着目ラインデータ（第ｉラインの画素データ）は、それ以前のいずれのラインとも一致していないことを示している。それゆえ、ステップＳ１００３にて、着目ラインデータを、ブロック切り出し部１０２から読込み、統合部１０４内の内部メモリに格納する。そして、Ｆｍａｘの値を、ＦＩ（ｉ）で更新し（ステップＳ１００４）、ステップＳ１００５に処理を進める。
【００６４】
一方、ステップＳ１００２にて、ＦＩ（ｉ）≦Ｆｍａｘであると判定するのは、着目している第ｉラインが、既に処理したラインのいずれかと一致したことを示している。それ故、ステップＳ１００３、１００４の処理は行なわず、ステップＳ１００５に処理を進める。
【００６５】
ステップＳ１００５では、変数ｉを“１”だけ増加させ、更新する。この後、ステップＳ１００６では、変数ｉとブロックのライン数である“３２”とを比較する。ｉ＜３２である場合、未処理のラインが存在することになるので、ステップＳ１００２以降の処理を繰り返す。
【００６６】
以上の処理の結果、図６の上部の画像が符号化対象である場合、統合部１０４の内部メモリに格納される画像データは図６の下部に示すように２ライン分の画像データとすることができる。第１の実施形態と比較すると、格納するラインの数が半分にできることになる。
【００６７】
この後の統合後の画像データを、第１の実施形態と同じようにスライス分割部１０５、符号化部１０６が符号化処理することになる。
【００６８】
符号列形成部１０７は、各ブロックの先頭には、バッファメモリ１０８に格納された３２個の配列番号情報を出力し、それに後続して符号化データをライン単に出力すればよい。図９は、本第２の実施形態の符号化装置で生成される符号化データの構造を示している。第１の実施形態と異なる点は、各ブロックの先頭には、配列番号情報が格納される点である。また、配列番号情報に後続するラインの符号化データの個数は、配列番号の値に等しい。
【００６９】
また、１つの配列番号の最大値は、理論上、“３２”である。すなわち、１つの配列番号の取り得る範囲は３２通りのいずれかの値になりえる。３２通りは、５ビットあれば表現できるので、本第２の実施形態の場合、３２個の配列番号はトータルで３２×５＝１６０ビット必要になる。これは第１の実施形態におけるフラグデータの３２ビットよりも大きな値である。しかしながら、本第２の実施形態の場合、統合した画像のライン数は、第１の実施形態よりも十分に小さな値になる可能性が高い。仮に、第２の実施形態の処理により、第１の実施形態の処理よりも１ライン少ない統合画像を生成できたとする。１ラインデータは、３２画素で構成され、各画素はＲ、Ｇ、Ｂの３成分であり、各成分は８ビットである。従って、１ラインデータを省略できるとうのは、３２×３×８＝７６８ビット分の画像データを符号化対象から除外できたことを示すわけであるから、符号化データ中に配列番号を格納したとしても、十分な効果が期待できるのは明らかである。
【００７０】
尚、本第２の実施形態で生成された符号化データを復号する装置の処理は上記と逆の処理を行なえばよい。すなわち、１つのブロックを復号する場合、そのブロックの先頭の配列番号情報（１６０ビット）を読込み解析する。この結果、３２ライン中、どのラインがどのラインと同じであるか、また、配列番号情報に後続して、幾つのラインの符号化データが存在するかがわかる。そこで、ラインの符号化データを先ず復号し、先頭ラインから配列番号“１”、“２”…を割り当てる。この後は、配列番号に従って、復号したラインデータを順に出力すればよい。
【００７１】
また、本第２の実施形態に係る処理を、先の説明した第１の実施形態の変形例と同様、コンピュータに実行させるコンピュータプログラムでもって実現することも可能なのは明らかであろう。
【００７２】
［第３の実施形態］
第１の実施形態、第２の実施形態では、統合処理の対象となる条件は、着目ラインが既に処理済みのラインと完全一致していることが必要であった。本第３の実施形態では、異なる画素数が予め設定された許容値以下であれば統合する例を説明する。
【００７３】
説明を簡単にするため、ブロックのサイズを８×８画素とする。いま、着目ブロックが図１２の上部に示す画像であるものとする。図示の画像において、各ラインの右端の２画素を除く領域には、２種類の画素のみが存在するものとする。また、右端の画素Ｘ１乃至Ｘ１６は、互いに異なる色の画素であるものとする。
【００７４】
いま、許容値として“２”が設定されているものとする。そして、着目ラインの画素のうち、それ以前のラインとの異なる画素数が最も少ないラインを探し、その数が２画素以下である場合、着目ラインを統合対象として決定する。ただし、ブロックの先頭ラインは、無条件に非統合ラインとする。また、許容値以下の条件を満たす、着目ラインと一致するラインが見つからなかった場合、着目ラインを統合対象のラインとして登録する。
【００７５】
図示の場合、各ラインの右端の２画素を除くと、８ラインは２種類で構成されることになる。それ故、図１２の下部に示す２種類のラインが統合画像の一部として登録される。なお、図１２の下部の符号“Ｄ”は、ランを稼ぐためのダミーデータである。このダミーデータは、該当する画素に隣接する画素のデータで置き換えることで生成する。
【００７６】
そして、各ライン毎に、統合ラインに対して異なると判定された画素Ｘ１乃至Ｘ１６をまとめて、ラインを再構成し、追加する。このとき、追加したラインには、各ラインの異なると判定された画素で構成されることを示す情報が必要になる。ただし、異なると判定された画素数は８の整数倍となるとは限らない。８の整数倍となならない場合には、ダミーデータを付加して８の倍数にする。
【００７７】
図示の場合、たまたま各ラインの右端の２画素が異なる例を示しているが、実際は、ライン単位に、異なる画素の位置が各ライン毎に同じになるとは限らない。そこで、符号化データには、どの統合ラインに一致するかを示す配列番号情報、各ラインの符号化データ以外に、各ライン毎に統合ラインに対して異なる画素数、及び、その位置情報で構成される符号化データを新に設ける必要がある。
【００７８】
以上実施形態を説明したが、先に説明したように本実施形態は、コンピュータに読込ませ実行させることでも、上記機能を実現できる。通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されていて、それを読取り装置（ＣＤ−ＲＯＭドライブ等）にセットして、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータ可読記憶媒体も本発明の範疇に入ることも明らかである。
【図面の簡単な説明】
【００７９】
【図１】実施形態における画像符号化装置のブロック構成図である。
【図２】第１の実施形態における画像データの統合処理の例を示す図である。
【図３】第１の実施形態におけるバッファメモリに格納されるフラグデータＦＩの例を示す図である。
【図４】第１の実施形態で生成される符号化データのデータ構造を示す図である。
【図５】第１の実施形態における符号化処理の処理手順を示すフローチャートである。
【図６】第２の実施形態における画像データの統合処理の例を示す図である。
【図７】第２の実施形態におけるライン比較部の処理内容を示すフローチャートである。
【図８】第２の実施形態におけるバッファメモリに格納される配列番号情報の例を示す図である。
【図９】第２の実施形態で生成される符号化データのデータ構造を示す図である。
【図１０】第２の実施形態における統合部の処理手順を示すフローチャートである。
【図１１】第１の実施形態の変形例における情報処理装置のブロック構成図である。
【図１２】第３の実施形態における統合処理の例を示す図である。
【図１】
2008301449.tif 000003
【図２】
2008301449.tif 000004
【図３】
2008301449.tif 000005
【図４】
2008301449.tif 000006
【図５】
2008301449.tif 000007
【図６】
2008301449.tif 000008
【図７】
2008301449.tif 000009
【図８】
2008301449.tif 000010
【図９】
2008301449.tif 000011
【図１０】
2008301449.tif 000012
【図１１】
2008301449.tif 000013
【図１２】
2008301449.tif 000014