(57)【要約】【課題】  部分復号機能を考慮せずに生成された符号化画像データについては、一旦、符号化画像データを復号しさえすれば、その符号化画像データそのものを変更せずに、次回からは設定された開始位置から復号することが可能になる。【解決手段】  予測誤差復号部１０４は、ＪＰＥＧ可逆符号化モードで符号化データに基づき、各画素の成分の予測誤差ｅを順に復号していく。符号量カウンタ１０９は、復号開始時にゼロクリアされるカウンタを内蔵し、予測誤差復号部１０４で復号処理する際に使用したビット数を累積加算していく。成分値予測部１０６は、既に復号済みの画素値から予測値を出力する。付加情報生成部１１０は、部分復号開始点の復号するタイミングになったとき、符号量カウンタ１０９に保持されている累積ビット数と、成分値予測部１０６が出力した予測値とを組にしてインデックス情報を生成していく。【選択図】  図１
2008022376.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも予測符号化方法を含む符号化方法で生成された符号化画像データを復号する画像処理装置であって、
少なくとも１つの部分復号を開始する開始位置を設定する設定手段と、
前記符号化画像データを復号する復号手段と、
該復号手段で復号処理中の符号化データのビット位置情報を取得するビット位置取得手段と、
該復号手段で復号処理中、復号処理で用いた予測値を取得する予測値取得手段と、
前記設定手段で設定された各開始位置について、前記ビット位置取得手段で取得したビット位置情報及び前記予測値取得手段で取得した予測値との組を、部分復号の開始位置を示すインデックス情報として生成するインデックス情報生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記設定手段は、画像データの各ラインの先頭画素位置を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
更に、前記復号手段で復号中、ライン先頭の復号画素値情報を取得するライン先頭画素値取得手段とを備えることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記インデックス情報生成手段は、
前記復号手段で復号処理中、前記設定手段で設定された開始位置の予測符号化データを復号するとき、前記ライン先頭画素値取得手段で取得されたライン先頭の復号画素値情報を含めた前記インデックス情報を生成する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
更に、前記復号手段で復号処理中、前記設定手段で設定された開始位置の予測符号化データを復号するとき、前記ライン先頭画素値取得手段で取得されたライン先頭の復号画素値情報を、前記インデックス情報とは独立した第２のインデックス情報として生成する第２のインデックス情報生成手段を備えることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記設定手段は、画像データの予め定められた等間隔の位置を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記符号化画像データはＪＰＥＧ可逆符号化モードで符号化された画像データであることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記符号化画像データはＪＰＥＧベースライン符号化モードで符号化された画像データであり、
前記設定手段は、復号単位であるブロック位置を復号開始位置として設定することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
少なくとも予測符号化方法を含む符号化方法で生成された符号化画像データを復号する画像処理装置の制御方法であって、
少なくとも１つの部分復号を開始する開始位置を設定する設定工程と、
前記符号化画像データを復号する復号工程と、
該復号工程で復号処理中の符号化データのビット位置情報を取得するビット位置取得工程と、
該復号工程で復号処理中、復号処理で用いた予測値を取得する予測値取得工程と、
前記設定工程で設定された各開始位置について、前記ビット位置取得工程で取得したビット位置情報及び前記予測値取得工程で取得した予測値との組を、部分復号の開始位置を示すインデックス情報として生成するインデックス情報生成工程と
を備えることを特徴とする画像処理装置の制御方法。
【請求項１０】
請求項１乃至８のいずれか１つに記載の画像処理装置としてコンピュータに機能させることを特徴とするコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項１２】
少なくとも予測符号化方法を含む符号化方法で生成された符号化画像データを復号する画像処理装置であって、
前記符号化画像データを復号する復号手段と、
部分復号開始位置となるまでの符号化データのビット数情報と、当該部分復号開始位置からの符号化データを復号する際に利用する予測値とを組にしたインデックス情報を入力する入力手段と、
前記符号化画像データの先頭から、前記入力手段で入力したビット数情報で示される符号化データを読み飛ばし、次のビット位置から符号化データを読出す読出し手段と、
該読出し手段で読み出された符号化データを前記復号手段に供給して復号処理を開始するとき、前記入力手段より入力した予測値を当該復号開始する際の予測値として設定する制御手段と
を備えることを特徴とする画像処理装置。
【請求項１３】
前記入力手段は、更に、部分復号開始位置を含むラインの先頭画素値情報を入力し、
前記制御手段は、前記復号手段で復号処理を開始してから最初のライン先頭の画素値を復号する際には、入力したライン先頭画素値情報を予測値として前記復号手段に設定することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
少なくとも予測符号化方法を含む符号化方法で生成された符号化画像データを復号する画像処理装置の制御方法であって、
前記符号化画像データを復号する復号工程と、
部分復号開始位置となるまでの符号化データのビット数情報と、当該部分復号開始位置からの符号化データを復号する際に利用する予測値とを組にしたインデックス情報を入力する入力工程と、
前記符号化画像データの先頭から、前記入力工程で入力したビット数情報で示される次のビット位置から符号化データを読出す読出し工程と、
前記符号化画像データの先頭から、前記入力工程で入力したビット数情報で示される符号化データを読み飛ばし、次のビット位置から符号化データを読出す読出工程と、
該読出し工程で読み出された符号化データに基づき、前記復号工程が復号処理を開始するとき、前記入力工程より入力した予測値を当該復号開始する際の予測値として設定する制御工程と
を備えることを特徴とする画像処理装置の制御方法。
【請求項１５】
請求項１３又は１４に記載の画像処理装置としてコンピュータに機能させることを特徴とするコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は予測符号化方法を利用して符号化された画像データの復号技術に関するものである。
【背景技術】
【０００２】
従来より、画像の符号化、復号を行う画像処理装置を構成する一手法として、予測符号化をベースとするものが知られている。予測符号化は、画像データを予測変換によって予測誤差へと変換する系列変換部と、系列変換部から出力される予測誤差を、ハフマン符号化等のエントロピー符号化を用いて、より冗長性の少ない符号化データへと変換するエントロピー符号化部とによって構成される。
【０００３】
ISOとITU−Tから勧告されている国際標準の静止画像符号化方式（非特許文献１）には、Independent  Functionとして予測符号化をベースとした可逆符号化方式が規定されている。以降、これをＪＰＥＧ可逆符号化モードと呼ぶ。
【０００４】
ＪＰＥＧ可逆符号化モードでは、近傍画素から着目画素の値を予測する方法として７つの予測式を規定しており、これらの予測式の１つを画像に応じて選択できるようになっている。
【０００５】
図２に一般的な画像処理装置のブロック図を示す。同図は上述のＪＰＥＧ可逆符号化モードにより画像を可逆圧縮する装置の一例である。同図に於いて、２０１はバッファ、２０２は成分値予測部、２０３は減算器、２０４はハフマンテーブル用メモリ、２０５は予測誤差符号化部、２０９は符号列形成部、２０６乃至２０８は信号線である。
【０００６】
ハフマンテーブル用メモリ２０４には予測誤差符号化部２０５において使用されるハフマンテーブルが格納される。ここでは、図６に示すハフマンテーブルが格納されているものとする。
【０００７】
以下、図２における画像処理装置の、各成分が８ビットで表現されたＲＧＢカラー画像を符号化する処理の流れを説明する。
【０００８】
まず、信号線２０８から成分値予測部２０２において用いる予測方法を選択する予測選択信号ｍが入力される。予測選択信号ｍは０〜７までの整数値であり、それぞれに異なる予測式が対応付けられる。使用される予測式と予測選択信号ｍの対応は図４の通りである。なお、予測選択信号ｍが０の場合には予測式なしとなっているが、これは予測変換を行わず、各成分をそのまま符号化することを意味する。図中の記号ｐ，ａ，ｂ，ｃについては後述する。
【０００９】
次に、信号線２０６から画像データが順に入力される。画素データの入力順序はラスタースキャン順とする。１画素はＲ，Ｇ，Ｂの３成分で構成され、入力する各成分の順序もＲ、Ｇ、Ｂの順とする。Ｒ，Ｇ，Ｂをそれぞれ成分番号０，１，２と定義する。そして、画像の左上隅を座標（０，０）とする。そして、水平方向画素位置ｘ、垂直方向画素位置ｙにある画素の成分番号Ｃの値をＰ（ｘ，ｙ，Ｃ）と表すこととする。例えば、位置（ｘ、ｙ）＝（３，４）である画素が（Ｒ，Ｇ，Ｂ）＝（２５５，１２８，０）という値を持つ場合、Ｐ（３，４，０）＝２５５、Ｐ（３，４，１）＝１２８、Ｐ（３，４，２）＝０と表現する。
【００１０】
バッファ２０１は信号線２０６から入力される画像データを２ライン分格納する容量を有する。
【００１１】
成分値予測部２０２はバッファ２０１から着目する画素の成分値ｘ＝Ｐ（ｘ，ｙ，Ｃ）の直前の画素の同一成分の値ａ＝Ｐ（ｘ−１，ｙ，Ｃ）、１ライン前の画素の同一成分の値ｂ＝Ｐ（ｘ，ｙ−１、Ｃ）、および斜め左上の画素の同一成分の値ｃ＝Ｐ（ｘ−１，ｙ−１，Ｃ）を取り出し、予測方式選択信号ｍに従って予測値ｐを生成する。図３は、着目する画素の成分値ｘと、ａ，ｂ，ｃの相対位置関係を示している。
【００１２】
なお、例外として画像の最初の画素についてはｐ＝１２８とし、これを除く画像の最初のラインの画素では、直前の画素の同一成分値ａを予測値ｐとして用いる。更に、これらを除く各ラインの先頭画素については１ライン前の画素の同一成分値ｂを予測値ｐとする。
【００１３】
減算器２０３は符号化対象となる成分値ｘと予測値ｐとの差分値を求め、予測誤差ｅとして出力する。
【００１４】
予測誤差符号化部２０５は、まず、減算器２０３から入力される予測誤差ｅを複数のグループに分類して、グループ番号ＳＳＳＳと、グループごとに定められるビット長の付加ビットを生成する。図５に予測誤差ｅとグループ番号ＳＳＳＳの関係を示す。付加ビットはグループ内で予測誤差を特定するための情報であり、ビット長はグループ番号SSSSで与えられる。なお、ＳＳＳＳ＝１６である場合には例外的にビット長は０である（但し、各成分の精度が８ビットである場合にはＳＳＳＳ＝１６は発生しない）。予測誤差ｅが正であるならば予測誤差ｅの下位ＳＳＳＳビットが付加ビットとなり、負である場合にはｅ−１の下位ＳＳＳＳビットが付加ビットとなる。付加ビットの最上位ビットは予測誤差ｅが正であれば１、負であれば０である。符号化処理は、まず、メモリ２０４に格納されているハフマンテーブルを参照して、グループ番号SSSSに対応する符号化データを出力する。そして、ＳＳＳＳが０または１６でない場合には、続いてグループ番号により定まるビット長の付加ビットを出力する。
【００１５】
符号列形成部２０９は信号線２０８を介して入力される予測選択信号ｍ、画像の水平方向／垂直方向の画素数、画素を構成する成分の数、各成分の精度などの付加情報からヘッダを生成する。そして、符号列形成部２０９は予測誤差符号化部２０５から出力される符号化データから、ＪＰＥＧの規格書に準拠したフォーマットの符号列を形成し、生成されたヘッダに後続して、その符号化データ列を信号線２０７に出力する。図９は出力される符号列の構造を大まかに示したものである。
【００１６】
近年、デジタルカメラの撮像素子の解像度やイメージスキャナの読取り解像度は高くなり、必然、デジタル画像データの画素数も増大する一方である。その結果、画像の復号、表示といった処理に多くの時間が掛かるようになった。このため、表示画面の解像度やユーザの関心に応じて、画像中の必要とされている部分のみを復号・表示することが求められている。また、復号処理を並列的に行なうことできるように、符号化画像データに部分復号機能を持たせることが求められている。
【００１７】
上述のＪＰＥＧ可逆符号化モードでは、このような要求への対応として、所定の数の最小符号化単位（ＭＣＵ）に独立して符号化し、リスタートマーカと呼ばれる特殊なマーカを挿入して符号を区切ることで部分復号を可能としている。この独立して符号化される所定数のＭＣＵ（以降、リスタートインターバルと呼ぶ）は、独立した画像のように符号化処理が行われる。
【００１８】
前述の成分値予測部２０２における予測値ｐの生成方法の説明において、例外として画像の最初の画素、最初のラインに属する画素、各ラインの先頭画素については特殊な予測値ｐを用いることを述べた。この例外処理を、各リスタートインターバルの最初の画素、最初のラインに属する画素、および各ラインの先頭画素について同様に特殊な予測値を用いることで、部分復号を可能とする符号化データを生成する。なお、ＪＰＥＧ可逆モードの詳細については規格書を参照されたい。
【特許文献１】ITU-T T.81 | ISO/IEC 10918-1 : 1994,  Information Technology - Digital compression and coding of continuous-tone still images : Requirements and guidelines
【発明の開示】
【発明が解決しようとする課題】
【００１９】
しかしながら、リスタートインターバルの設定は、ＪＰＥＧ可逆符号化モードに、付加機能的に提供される機能であり、この機能を利用している符号化データは少ない。従って、このような部分復号機能を考慮しないで符号化された画像データに、部分復号機能を持たせるためには、一旦、復号し、原画像まで復元する。そして、復元された原画像に対し、所望の大きさでリスタートインターバルを設定して、再度符号化しなおさなければならない。以前と異なるリスタートインターバルを設定して符号化データを生成する場合も同様である。
【００２０】
ところが、先に説明したように、画像の画素数は非常に多くなってきているので、このように復号処理と再符号化処理を行うことは、ハードウェア、ソフトウェアのいずれであっても、その処理にかかるの負荷は非常に大きなものとなる。また、一度生成した符号化データを作り変えなければならないことについて、データ容量の変化、データ損失の危険性も考えられる。
【００２１】
本願発明は、上述の問題点に鑑みてなされたものであり、部分復号機能を考慮せずに生成された符号化画像データを、所望とする位置から部分的に復号することを可能ならしめる技術を提供しようとするものである。
【課題を解決するための手段】
【００２２】
かかる課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
少なくとも予測符号化方法を含む符号化方法で生成された符号化画像データを復号する画像処理装置であって、
少なくとも１つの部分復号を開始する開始位置を設定する設定手段と、
前記符号化画像データを復号する復号手段と、
該復号手段で復号処理中の符号化データのビット位置情報を取得するビット位置取得手段と、
該復号手段で復号処理中、復号処理で用いた予測値を取得する予測値取得手段と、
前記復号手段で復号処理中、前記設定手段で設定された開始位置の予測符号化データを復号するとき、前記ビット位置取得手段で取得したビット位置情報及び前記予測値取得手段で取得した予測値との組を、部分復号の開始位置を示すインデックス情報として生成するインデックス情報生成手段とを備える。
【発明の効果】
【００２３】
本発明の構成によれば、部分復号機能を考慮せずに生成された符号化画像データについては、一旦、符号化画像データを復号しさえすれば、その符号化画像データそのものを変更しないで、次回からは設定された開始位置から復号することが可能になる。
【発明を実施するための最良の形態】
【００２４】
以下添付図面に従って本発明に係る実施形態を詳細に説明する。
【００２５】
＜第１の実施形態＞
図１は、実施形態における画像処理装置のブロック構成図である。
【００２６】
本実施形態の画像処理装置は、第１には、背景技術の説明において述べたＪＰＥＧ可逆符号化モードで生成された符号化データから復号画像データを生成しつつ、ライン単位の部分復号を可能とするためのインデックス情報（以下、付加情報という）を生成する。この処理をこれ以降、付加情報生成処理という。第２には、生成された付加情報に基づき、符号化データから画像の一部部分を復号する、この処理を、部分復号処理という。
【００２７】
復号対象とする符号化データは、予測選択信号ｍが１、即ち、注目画素の成分を符号化する際に、直前の画素の同一成分値を予測値として符号化されたものに限定する（図３、図４参照）。また、ここでは各コンポーネント（色成分）は８ビットで０〜２５５の範囲の輝度値を表現したＲＧＢカラー画像データを、ＪＰＥＧ可逆モードによって符号化して得られるものであるとする。また、画像は水平方向Ｗ画素、垂直方向Ｈ画素により構成されるものとする。なお、モノクロ画像データやＣＭＹＫカラー画像データに適用しても良いのは勿論である。
【００２８】
［付加情報生成処理］
まず、図１の構成における付加情報生成処理について説明する。この付加情報生成処理は、付加情報がないＪＰＥＧ可逆符号化モードで符号化された符号化データのみを利用して復号処理を行なう場合でもある。この処理では、１ページ分の画像の復号処理中、スイッチ１０７は固定であり、成分値予測部１０６からの予測値ｐを加算器１０７に供給することになることに注意されたい。
【００２９】
制御部１６０は、付加情報がない符号化データを復号する場合、信号線１３１を介して、その符号化データの先頭から入力するように制御する。符号バッファ１０１は信号線１３１を介して入力される符号化データを適宜内部バッファに格納する。全ての符号化データを一度に読み込み格納しても良いし、後述のヘッダ解析部１０２や予測誤差復号部１０４で必要とされる符号が供給できない場合に、適切な単位で符号を読み込むようにしても構わない。
【００３０】
ヘッダ解析部１０２は符号バッファ１０１に格納される符号化データのヘッダ部分を解析し、予測選択信号ｍや、ハフマンテーブルに関する情報、画像の水平方向画素数Ｗ、垂直方向画素数Ｈ、画素を構成する成分の数、各成分の精度などの条件情報を得る。これら条件情報は復号の過程で利用されるとするが、特に、予測選択信号ｍは成分値予測部１０６へと出力される。また、ヘッダ解析部１０２により取り出されたハフマンテーブルは、ハフマンテーブル用メモリ１０３に格納される。ここでは図６のハフマンテーブルがハフマンテーブル用メモリ１０３に格納されるものとして説明する。
【００３１】
予測誤差復号部１０４は符号バッファ１０１から、必要な長さのビットデータを取り出し、ハフマンテーブル用メモリ１０３に格納されるハフマンテーブルを参照して、着目する画素の各成分の予測誤差ｅを復号して出力する。また、予測誤差ｅの復号に用いた符号化データのビット長Ｌを符号量カウンタ１０９へと出力する。
【００３２】
予測誤差ｅの復号は背景技術で説明した予測誤差符号化部２０５の処理を逆の手順で行うことにより実施される。まず、ハフマンテーブル用メモリ１０３を参照して予測誤差ｅのグループ番号ＳＳＳＳを復号する。グループ番号ＳＳＳＳが０または１６でない場合には続いてグループ番号により定まるビット長に従って付加ビットを取得する。グループ番号ＳＳＳＳと付加ビットから予測誤差ｅを復号し、加算器１０８へと出力する。グループ番号ＳＳＳＳに対する符号長をＬｇ（ＳＳＳＳ）とするとき、Ｌ＝Ｌｇ（ＳＳＳＳ）＋ＳＳＳＳを、予測誤差ｅの復号に用いた符号化データのビット長として符号量カウンタ１０９へと出力する。但し、グループ番号ＳＳＳＳが１６である場合にはＬ＝Ｌｇ（ＳＳＳＳ）とする。
【００３３】
この際、予測誤差ｅに関する符号の途中、またはその末尾にマーカ領域確保のために挿入された値「00」のバイトデータを含む場合、そのビット長もＬに含めて数える。図７は予測誤差復号部１０４における予測誤差ｅの復号処理の例を図示したものである。同図において、太線で囲われた８つのビットのデータ（１、または０のデータ）は、符号化データ中の１つのバイトデータとなることを表す。また、今、復号対象としている予測誤差に関与するビット列は斜線を施していない部分であり、斜線部分は着目する予測誤差の復号に関与しないビットであることを示している。図７の例ではＬｇ（ＳＳＳＳ）＝５、ＳＳＳＳ＝７であるが、途中に１バイトの「００」が挿入されているため、この８ビットの“０”をカウントしてＬ＝５＋７＋８＝２０とする。
【００３４】
符号量カウンタ１０９では、予測誤差復号部１０４から出力される各予測誤差ｅの復号に用いたビット数Ｌを入力し、内部に備えるカウンタＣＬにその値を足し込む。ただし、復号の開始時点でカウンタＣＬは０に初期化される。従って、カウンタＣＬの値は、符号化データの先頭から何ビット目まで復号したのかを示すことになる。
【００３５】
一方、成分値予測部１０６はヘッダ解析部１０２から出力される予測選択信号ｍに従って、バッファ１０５に格納されている復号済み画素の成分値を参照して、着目する画素の成分値に対する予測値ｐを生成する。予測値ｐの生成は符号化時と同じ方法で行う。即ち、画像の最初の画素についてはｐ＝１２８とし、これを除く画像の最初のラインの画素では直前の画素ａの同一成分値を予測値ｐとして用いる。更に、これらを除く各ラインの先頭画素については１ライン前の画素ｂの同一成分値を予測値ｐとする。これ以外の画素については予測値選択信号ｍに従って図３に示した予測式を用いて予測値ｐを求める。先に述べたように、本実施形態の画像処理装置では予測選択信号ｍが１、即ち、ｐ＝ａを予測値として生成されたＪＰＥＧ可逆モードの符号化データを復号する。
【００３６】
バッファ１０５は画像データを２ライン分格納する領域を持ち、加算器１０８により復号される画素の各成分値を順次格納していく。画像データは各画素がラスター順に、そして各画素ではＲ，Ｇ，Ｂの順番で成分値が復号される。成分値予測部１０６は、復号対象としている着目画素について、図３のａ，ｂ，ｃに示す３画素の同一成分値をバッファ１０５から読み出し、予測値ｐを算出し、出力する。
【００３７】
今、復号しようとしている着目する成分値をＰ（ｘ，ｙ，Ｃ）とするとき、ａ＝Ｐ（ｘ−１，ｙ，Ｃ）、ｂ＝Ｐ（ｘ，ｙ−１、Ｃ）、ｃ＝Ｐ（ｘ−１，ｙ−１，Ｃ）である。なお、画像の最初のラインや各ラインの先頭／末尾などで、ａ，ｂ，ｃが画像の外側となる場合には、先に説明した値を出力する。
【００３８】
加算器１０８は、成分値予測部１０６から得られる予測値ｐと、予測誤差復号部１０４によって復号される予測誤差ｅとを加算し、着目する画素ｘの成分値を復号し、信号線１３２へと出力する。復号された着目画素ｘの成分値は、以降の画素の成分値に対する予測値生成処理に用いるため、バッファ１０５にも格納される。
【００３９】
付加情報生成部１１０は復号画像データの各ラインの先頭画素を復号する際に、符号量カウンタ１０９のカウンタＣＬの値を取得する。また、付加情報生成部１１０は、各ラインの先頭画素を復号する際の各成分に対する予測値ｐを成分値予測部１０６から取得する。そして、付加情報生成部１１０は、取得したカウンタＣＬの値と、各成分の予測値ｐとを内部のメモリに付加情報として格納する。
【００４０】
図８は付加情報生成部１１０の内部に格納される付加情報の概略を示した図である。
【００４１】
実施形態では、符号化画像データの画像の垂直方向の画素数はＨであるので、ライン番号“０”〜“Ｈ−１”の情報が生成される。図示の例では、画像の最初のライン（ライン番号０）ではカウンタＣＬの値が“０”であり、最初の画素に対する予測値が（Ｒ，Ｇ、Ｂ）＝（１２８，１２８，１２８）であることを示している。また、２番目のライン（ライン番号１）ではカウンタＣＬの値が“１２３４”ビットであり、このラインの最初の画素の予測値、即ち、着目する画素のちょうど１ライン前の画素値が（２５５，０，０）であったことを示している。
【００４２】
なお、本実施形態では全てのラインの先頭画素についてビット位置と各成分の予測値を格納するものとした。しかし、後述する部分復号する際に指定することができるライン位置の精度が１６ライン毎、３２ライン毎といった場合は、そのライン数毎に、このような付加情報を生成するようにしても構わない。
【００４３】
上記処理によって、１ページ分の符号化画像データについての復号処理が完了すると、その符号化画像データに対応する付加情報が付加情報生成部１１０内に生成されことになる。付加情報生成部１１０は、付加情報の無い、符号化画像データの復号処理が完了すると、内部に生成された付加情報を出力する。
【００４４】
実施形態では、生成された付加情報は、復号した符号化画像データに関連付けてハードディスク等の記憶装置にファイルとして保存される。関連づけは、符号化データファイルと、付加情報のファイルのファイル名を共通にし、拡張子を変え、同一ディレクトリに格納するものとする。
【００４５】
しかし、これに限らず、符号化画像データファイルと付加情報ファイルとをアプリケーションのデータベースにて管理しても良い。
【００４６】
また、復号対象となった符号化データ中、ＣＯＭマーカなどを利用し、コメントとして認識される領域に、生成された付加情報を格納するようにしても良い。或いは、符号化データの末尾に追加するなどしても良い。このような場合、符号化画像データと付加情報が１つのファイルとして管理されることになるので、管理が容易となる。復号する際には、その符号化データファイル中に付加情報が格納されているか否かを判断し、付加情報無しと判断した場合には上記処理を行なえば良い。
【００４７】
［部分復号処理］
次に、部分復号処理について説明する。
【００４８】
なお、以下に説明する部分復号処理では、制御部１６０は、符号量カウンタ１０９、付加情報生成部１１０に対して非動作を要求するものとする。ただし、これらが動作しても無視するというのであれば、それでも構わない。
【００４９】
説明を簡単なものとするため、上記の［付加情報生成処理］で付加情報を生成した符号化画像データの部分復号処理を説明する。すなわち、付加情報は図８に示す通りであり、画像の水平方向の画素数はＷ、垂直方向画素数はＨであるとする。
【００５０】
まず、制御部１６０は、付加情報取得部１１１に対して、復号対象の符号化データに対応する付加情報（図８）の取得を行なわせる。この付加情報の取得に成功すると、所望とするラインから復号処理を行なうことができる。
【００５１】
今、ユーザが、図１０に示すように、部分復号指示部１６１を操作して、画像のｎ＋１ライン目（ライン番号ｎ）からＭライン分までを復号するよう指示したとする。
【００５２】
制御部１６０は、符号化画像データのヘッダ部分をバッファ１０１に読込み、ヘッダ解析部１０２に復号処理に必要な情報を取得させる。この後、制御部１６０は、図８の付加情報を参照して、ヘッダ部に後続する符号化データの先頭からＣＬ（ｎ）で示されるビット数分のデータを読み飛ばす。すなわち、制御部１６０は、ＣＬ（ｎ）＋１番目のビット位置からの符号化データを符号バッファ１０１に格納させる（図１１参照）。
【００５３】
そして、制御部１６０は、付加情報取得部１１１に対して、Ｒ成分の予測値Ｐｒ（ｎ）をスイッチ１０７に出力するよう要求すると共に、スイッチ１０７に対して、付加情報取得部１１１からの予測値Ｐｒ（ｎ）を選択するように要求する。予測誤差復号部１０４は、ライン番号ｎの先頭画素のＲ成分の予測誤差ｅを出力することになるので、加算器１０８ではＲ成分のデータを復号に成功する。
【００５４】
次いで、制御部１６０は、付加情報取得部１１１に対して、Ｇ成分の予測値Ｐｇ（ｎ）をスイッチ１０７に出力するよう要求する。予測誤差復号部１０４は、ライン番号ｎの先頭画素のＧ成分の予測誤差ｅを出力することになるので、加算器１０８ではＧ成分のデータを復号に成功する。
【００５５】
そして、制御部１６０は、付加情報取得部１１１に対して、Ｂ成分の予測値値Ｐｂ（ｎ）をスイッチ１０７に出力するよう要求する。予測誤差復号部１０４は、ライン番号ｎの先頭画素のＢ成分の予測誤差ｅを出力することになるので、加算器１０８ではＢ成分のデータを復号に成功する。
【００５６】
以上の処理により、ライン番号ｎの先頭画素の各成分の復号処理が成功する。これ以降、制御部１６０は、復号範囲の最後のライン（ライン番号ｎ＋Ｍ−１）の最終画素の復号が完了するまで、スイッチ１０７を成分値予測部１０６から出力される予測値ｐを選択するように制御する。すなわち、指定された範囲の先頭ライン（ライン番号ｎ）の先頭画素の復号処理を終えた後は、スイッチ１０７は、成分値予測部１０６から出力される予測値ｐを選択しつづける。
【００５７】
上記をより詳しく説明する。今、ユーザがｎ＝２、Ｍ＝１００、すなわち、ライン番号２（３ライン目）のラインから１００ライン分の復号を指示したとする。この場合、図８によれば、ＣＬ（２）＝５６７８であるので、ヘッダに後続する符号化データの先頭から５６７８ビットは読み飛ばし、５６７９ビット目からの符号化データを符号バッファ１０１に読込む。ライン番号２の先頭画素の各成分の予測値は、図８に示す如く、（０、２５５、０）である。
【００５８】
符号化データはＲ、Ｇ、Ｂの順に並んでいる。そこで、制御部１６０は、付加情報取得部１１１に対して、Ｒ成分の予測値“０”をスイッチ１０７に出力するよう要求すると共に、スイッチ１０７に対して、付加情報取得部１１１からの予測値を選択するように要求する。予測誤差復号部１０４は、ライン番号２のラインの先頭画素のＲ成分の予測誤差ｅを出力することになるので、加算器１０８ではＲ成分のデータを復号することになる。
【００５９】
以下、同様に、制御部１６０は、付加情報取得部１１１に対して、Ｇ成分の予測値“２５５”、Ｂ成分の予測値“０”の順に出力することで、Ｇ、Ｂ成分のそれぞれ復号結果が加算器１０８より出力される。
【００６０】
以上の処理により、ライン番号２の先頭画素の各成分の復号処理が成功する。この後、制御部１６０は、ユーザが指定した範囲の最終画素の復号が完了するまで、スイッチ１０７を成分値予測部１０６から出力される予測値ｐを選択するように固定にして構わない。なぜなら、実施形態では、予測選択信号ｍが“１”としている。すなわち、ライン番号２の２番目の画素の各成分値を復号する場合には、その１つ前の画素である先頭画素の各成分値を参照することになるが、その先頭画素の復号結果はバッファ１０５に既に格納されているからである。以下、３番目、４番目の復号も同様である。
【００６１】
また、次のラインであるライン番号３のラインの先頭画素の各成分値を復号する場合、その直前のラインの先頭画素の成分値を予測値として参照することになる。この場合にも、直前のラインの先頭画素の成分値はバッファ１０５に格納されているので、やはり正常に復号できる。
【００６２】
以上の如く、本実施形態によれば、リスタートインターバルの設定が行われていないＪＰＥＧ可逆符号化モードの符号化画像データについては、一度だけ画像全体の復号処理を行いさえすれば、それ以降では、ユーザが望む部分の復号を行なえるようになる。しかも、元々の符号化画像データファイル内の符号化データについては、変更しないことも可能になる。
【００６３】
＜第１の実施形態の変形例＞
上記第１の実施形態をコンピュータプログラムによって実現する例を第１の実施形態の変形例として以下に説明する。
【００６４】
図１２は、本変形例における情報処理装置（例えばパーソナルコンピュータ）のブロック構成図である。
【００６５】
図中、１４０１はＣＰＵで、ＲＡＭ１４０２やＲＯＭ１４０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。１４０２はＲＡＭで、外部記憶装置１４０７や記憶媒体ドライブ１４０８、若しくはＩ／Ｆ１４０９を介して外部装置からダウンロードされたプログラムやデータを記憶する為のエリアを備える。また、ＲＡＭ１４０２は、ＣＰＵ１４０１が各種の処理を実行する際に使用するワークエリアも備える。１４０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。１４０４、１４０５は夫々キーボード、マウスで、ＣＰＵ１４０１に対して各種の指示を入力することができる。
【００６６】
１４０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。１４０７はハードディスクドライブ装置等の大容量の外部記憶装置である。この外部記憶装置１４０７には、ＯＳ（オペレーティングシステム）や後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどがファイルとして保存されている。また、ＣＰＵ１４０１は、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードし、実行することになる。
【００６７】
１４０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ１４０２や外部記憶装置１４０７に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良い。この場合、記憶媒体ドライブ１４０８は、ＣＰＵ１４０１による制御によって、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードする。
【００６８】
１４０９はＩ／Ｆで、このＩ／Ｆ１４０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ１４０２や外部記憶装置１４０７、あるいは記憶媒体ドライブ１４０８に入力することもできる。１４１０は上述の各部を繋ぐバスである。
【００６９】
上記構成において、本装置の電源がＯＮになると、ＣＰＵ１４０１はＲＯＭ１４０３のブートプログラムに従って、外部記憶装置１４０７からＯＳをＲＡＭ１４０２にロードする。この結果、キーボード１４０４、マウス１４０５の入力が可能となり、表示装置１４０６にＧＵＩを表示することが可能になる。ユーザが、キーボード１４０４やマウス１４０５を操作し、外部記憶装置１４０７に格納された画像処理用アプリケーションプログラムの起動の指示を行なうと、ＣＰＵ１４０１はそのプログラムをＲＡＭ１４０２にロードし、実行する。これにより、本装置が画像処理装置として機能することになる。
【００７０】
以下、ＣＰＵ１４０１が実行する画像処理用のアプリケーションプログラムの処理手順を図１３乃至図１５のフローチャートに従って説明する。なお、実施形態におけるアプリケーションは、生成した付加情報を、特定のフォルダにファイルとして記憶し、且つ、オリジナルの画像ファイルとその付加情報のファイルとを関連付けるための索引ファイルを作成するものとする。索引ファイルの構造は、オリジナル画像ファイルの所在を示すパス付きファイル名と、生成された付加情報ファイル名とを組とする構造とする。また、基本的に、このプログラムは、図１に示す各構成要素に相当する関数を備えることになる。ただし、図１における符号バッファ１１０１、バッファ１０５の各領域はＲＡＭ１４０２内に予め確保することになる。
【００７１】
まず、ステップＳ１において、ＪＰＥＧ可逆符号化モードで符号化された画像データファイルの選択のためのＧＵＩを表示し、ユーザに所望とするファイルを選択させる。
【００７２】
ファイルが選択されると、次いでステップＳ２に進み、そのファイルヘッダの解析処理を行なう。この結果、その画像の水平画素数Ｗ、垂直方向画素数Ｈ、並びにハフマンテーブルを得ることができる。
【００７３】
次いで、ステップＳ３に進み、選択した画像ファイルに対応する付加情報ファイルを索引ファイルを参照して検索し、ステップＳ４で復号対象画像ファイルに対応する付加情報ファイルがあるか否かを判断する。
【００７４】
ステップＳ４にて、該当する付加情報ファイルがないと判断した場合、注目画像ファイルは、過去に一度も復号したことがないことを意味する。このため、処理はステップＳ５に進み、その書き込み用の新規な付加情報ファイルを、先に説明した特定のフォルダ内に作成（オープン）する。この段階での付加情報ファイルは、図８に示すような値は格納されておらず、空白状態であることに注意されたい。この後、処理は図１４のステップＳ１１に進む。
【００７５】
一方、ステップＳ４にて、付加情報ファイルがあると判断すると、ステップＳ６に進み、該当する付加情報ファイルを、ＲＡＭ１４０２内の所定の領域に読込む。そして、ステップＳ６にて、ユーザに対して、復号する範囲［ｎ；ｍ］（ただし、０≦ｎ≦ｍ＜Ｈ）を指定させる。ここでｎは復号開始ライン、ｍは復号終了ラインを示している（復号するライン数は、ｍ−ｎ＋１ラインとなる）。この後、処理は、図１５のステップＳ３１に処理を進める。
【００７６】
まず、ステップＳ４の判断がＮｏとなった場合の処理、すなわち、選択画像ファイルが一度も復号経験がない場合の処理を図１４のフローチャートに従って説明する。
【００７７】
以下の説明において、変数ｘは、画像の左上隅を原点とする水平方向の画素の座標値を格納し、変数ｙは垂直方向の座標値を格納する。また、変数Ｃは色成分を識別するための値０、１、２のいずれかの値を持つ。また、変数ＣＬは、ビット数を格納するものである（以下、ビット長カウンタという）。
【００７８】
ステップＳ１１では、ビット長カウンタＣＬをゼロクリアすると共に、変数ｙもゼロクリアする。次いで、ステップＳ１２において、変数ｘをゼロクリアする。次いで、ステップＳ１３にて、ビット長カウンタＣＬの現在の値を、図８のビット位置情報として、書き込みの準備のためにオープンした付加情報ファイルに格納する。そして、ステップＳ１４では、色成分を特定する変数Ｃをゼロクリアする。
この後、ステップＳ１５にて、選択した画像データファイルの符号化データから符号化データを読込み、ステップＳ１６にて、予測誤差ｅをハフマンテーブルを参照して復号する。このとき、復号に用いたビット数が判明するので、ステップＳ１７にて、そのビット数をビット長カウンタＣＬに加算する。
【００７９】
次に、ステップＳ１８にて、変数ｘが“０”であるか否かを判断する。ｘ＝０であると判断した場合、ステップＳ１９にて変数ｙが“０”であるか否かを判断する。ステップＳ１９にて、ｙ＝０であると判断した場合、注目画素は画像の先頭位置にあることになるので、注目画素の色成分の予測値ｐとして“１２８”をセットする（ステップＳ２０）。
【００８０】
また、ステップＳ１９にて、変数ｙが“０”以外であると判断した場合、注目画素は、２ライン目以降の先頭画素であることになる。そこで、注目画素の色成分の予測値ｐに、既に復号済みとなっている、直前のラインの先頭画素の同一色成分値Ｐ（ｘ，ｙ−１，Ｃ）を代入する（ステップＳ２１）。
【００８１】
ステップＳ２０、２１のいずれかの処理を行なうと、求めた成分の予測値ｐを、書き込みの準備のためにオープンした付加情報ファイルに格納する。Ｃ＝０の場合には、予測値ｐはＲ成分の予測値となる（図８参照）。
【００８２】
また、ステップＳ１８にて、変数ｘが“０”以外であると判断した場合、注目画素はラインの先頭画素ではないことを意味する。それ故、注目画素の成分予測値ｐに、復号済みの直前の画素の同一成分値Ｐ（ｘ−１，ｙ，Ｃ）を代入する（ステップＳ２３）。
【００８３】
ステップＳ２０、２１、２３のいずれかで、注目画素の成分予測値ｐが求まると、処理はステップＳ２４に進む。このステップＳ２４では、注目画素の成分値Ｐ（ｘ、ｙ、Ｃ）を復号し、出力する。
Ｐ（ｘ、ｙ、Ｃ）＝予測値ｐ＋予測誤差ｅ
【００８４】
なお、ＣＰＵ１４０１は、復号した結果を、ＲＡＭ１４０２に確保した２ライン分の容量の出力バッファに格納する。先の説明したステップＳ２１、Ｓ２３の処理は、この出力バッファを参照することで行なうことになる。
【００８５】
この後、ステップＳ２５に進み、変数Ｃを“１”だけ増加させ、ステップＳ２６にて変数Ｃが、「Ｃ＜３」の条件を満たすか否かを判断する。Ｃ＜３の場合、注目画素の他の色成分を復号する必要があるので、ステップＳ１５に処理を戻す。
【００８６】
従って、変数ｘ＝０である場合、ステップＳ２０又はステップＳ２１の処理が３回行われることになる。つまり、図８に示すように、１つのビット数カウンタＣＬについて、Ｒ、Ｇ、Ｂの各成分の予測値ｐが、書き込みの準備のためにオープンした付加情報ファイルに格納されることになる。
【００８７】
ステップＳ２６で「Ｃ＝３」であると判断した場合、処理はステップＳ２７に進み、変数ｘを“１”だけ増加させる。そして、ステップＳ２８にて、「ｘ＜Ｗ」を満たすか否かを判断する。ｘ＜Ｗであると判断した場合には、注目画素は１ラインの終端画素ではないことを意味するので、ステップＳ１４に戻る。
【００８８】
また、ステップＳ２８にて、「ｘ＝Ｗ」であると判断した場合、処理はステップＳ２９に進み、変数ｙを“１”だけ増加させる。そして、ステップＳ３０にて、「ｙ＜Ｈ」を満たすか否かを判断する。ｙ＜Ｈであると判断した場合には、最終ラインの復号処理が未完であることを意味する。従って、処理はステップＳ１２に戻る。
【００８９】
また、ステップＳ２８にて、「ｘ＝Ｗ」であると判断した場合、画像データの全体の復号処理が完了したことになるので、本処理を終える。
【００９０】
以上が、画像データファイルを最初に復号する場合の処理である。次に、選択した画像ファイルに関連する付加情報ファイルが存在する場合の処理を図１５のフローチャートに従って説明する。なお、先に説明したように、既に付加情報ファイルがＲＡＭ１４０２に読込まれ、復号開始及び終了のライン番号ｎ，ｍが設定されている点に注意されたい。
【００９１】
図１５のフローチャートに係る処理が、図１４のフローチャートに係る処理に対して相違は次の点である。
１点め：画像データの全ライン数Ｗのうち、ラインｎ〜ラインｍまでを復号する点、
２点め：付加情報は既に存在するので、新規な付加情報の作成処理は行なわない点、
３点め：ラインの先頭画素を復号する際には、既に読込んだ付加情報に格納する予測値を用いる点
上記相異点に鑑み、図１５のフローチャートに係る処理を簡単に説明する。
【００９２】
まず、ステップＳ３１では、復号開始するラインがｎライン目であるので、変数ｙにｎを代入する。また第０〜ｎ−１ラインの符号化データについては無視できる。そこで、図８の付加情報を参照して、ＣＬ（ｎ）で示されるビット数分の符号化データ（ヘッダを除く）を読み飛ばす。この処理をステップＳ３２で行なう。
【００９３】
従って、復号処理を開始するビット位置は、符号化データ中の「ＣＬ（ｎ）＋１」ビット目となる。
【００９４】
ステップＳ３３乃至ステップＳ３６は、図１４のステップＳ１２、Ｓ１４乃至Ｓ１６と同じである。
【００９５】
注目画素の位置がラインの先頭画素にある場合、その復号する際に使用する予測値ｐを、付加情報中の、変数ｙと変数Ｃで特定される予測値を用いることになる。この処理を行なうのがステップＳ３８である。例えば、Ｃ＝０の場合、Ｒ成分を復号することになるので、注目画素の成分予測値ｐは、Ｐｒ（ｙ）を用いる。また、Ｃ＝１の場合、Ｇ成分を復号することになるので、注目画素の成分予測値ｐは、Ｐｇ（ｙ）を用いる。また、Ｃ＝２の場合、Ｂ成分を復号することになるので、注目画素の成分予測値ｐは、Ｐｂ（ｙ）を用いる。
【００９６】
ステップＳ３９乃至Ｓ４５は、図１５におけるＳ２３乃至Ｓ２９と同じとなる。ただし、復号処理の終了判定のステップＳ４６では、変数ｙと設定されたｍとを比較することになる。
【００９７】
以上説明したように本変形例によっても、第１の実施形態と同様の作用効果を奏することが可能となるのは明らかであろう。すなわち、一度でも復号を行なった画像ファイルを再度表示する場合には、ユーザが望む部分についてのみ復号することが可能になる。
【００９８】
なお、上記処理では、部分復号する際、注目画素の位置がラインの先頭画素にあるとき、付加情報内の予測値ｐを用いた（ステップＳ３８）。しかし、先の第１の実施形態と同様、部分復号を行なう先頭ラインの先頭画素の予測値のみを、付加情報を参照して求めるようにしても構わない。なぜなら、その次のライン以降のライン先頭画素の予測値は、既に復号済み画素を参照できるからである。
【００９９】
また、本変形例では、部分復号する開始ラインと終了ラインをユーザが指定するものとしたが、開始ラインの位置と復号するライン数を指定しても構わない。
【０１００】
また、ラインの番号を直接入力するのではなく、アプリケーション自身が指定しても構わない。例えば、表示装置１４０６の表示可能な解像度（画素数）を超える画像を等倍で復号し再生する場合、その画像の一部しか表示できない。通常、このような状況にあるとき、選択画像ファイルを復号する場合には、そのウインドウのサイズに依存したライン数だけ復号すればよいことになる。また、ウインドウに、スクロールバーを備え、ユーザがスクロールバーを操作した際、その操作後のスクロールバーの位置と、ウインドウサイズから復号開始ラインと終了ラインを算出すれば良い。
【０１０１】
＜第２の実施形態＞
上記第１の実施形態及びその変形例では、部分復号はライン単位であった。すなわち、各ラインの先頭から復号処理を開始できるように付加情報を設定する例について説明した。本第２の実施形態では、復号開始点をラインの途中でも設定できる例を説明する。
【０１０２】
なお、本第２の実施形態でも、復号対象とする符号化データは、予測選択信号ｍが１、即ち直前の画素の同一成分値を予測値として符号化されたものとする。また、各コンポーネント（色成分）は８ビットで、０〜２５５の範囲の輝度値を表現したＲＧＢカラー画像データをＪＰＥＧ可逆モードによって符号化して得られるものであるとする。ただし、モノクロ画像データやＣＭＹＫカラー画像データに適用しても良い。また、画像は水平方向Ｗ画素、垂直方向Ｈ画素により構成されるものとする。
【０１０３】
部分復号を開始する位置（復号開始点）は自由に設定するため、付加情報を生成する側とそれを利用する側で復号開始点の位置がわかるようにしておけば良い。例えば、所定の画素数Ｍ個ごとに復号開始点を設定しても良いし、いくつか任意の画素位置に復号開始点を設定し、その位置情報を付加情報の中に含めても良い。ここではｎ番目の復号開始点がどこにあるかはあらかじめ付加情報生成側と、利用側で分かっているものとして、特に場所を限定せずに説明する。
【０１０４】
図１６は、本第２の実施形態に係る画像処理装置のブロック構成図である。
【０１０５】
図１６の構成で、第１の実施形態の図１と異なる点は、ライン先頭画素保持部１１２を追加した点、付加情報生成部１１０が付加情報生成部１１０’となり、その処理が若干異なる点である。また、本第２の実施形態では、復号開始点の設定、及び、部分復号を行なう際の復号開始点の指定は、部分復号指示部１６１で行われるものとして説明する。
【０１０６】
まず、付加情報を生成する場合の処理について説明する。この場合にはスイッチ１０７は、常時、成分値予測部１０６からの予測値ｐを選択することになる。
【０１０７】
符号量カウンタ１０９は各成分値の復号の都度、ビット長Ｌを累積し、内部に備えるカウンタＣＬにその値を保持する。なお、復号の開始時点で累積ビット長ＣＬは０に初期化される。
【０１０８】
ライン先頭画素保持部１１２は内部に１画素分のデータ（実施形態では、ＲＧＢの３成分であるので、３バイト）を格納する領域を備える。そして、このライン先頭画素保持部１１２は、各ラインの先頭画素を復号した際に、各成分の復号値を格納する。
【０１０９】
付加情報生成部１１０’は、復号開始点となる画素の復号を行う際に、符号量カウンタ１０９から累積ビット長ＣＬを取得する。また、このとき、付加情報生成部１１０’は、画素の各成分に対する予測値ｐを成分値予測部１０６から取得し、部分復号のための付加情報として格納する。更に、復号開始点の位置の画素の復号処理が終了した時点で、ライン先頭画素保持部１１２に保持される画素値を取得し、部分復号のための付加情報に追加して格納する。
【０１１０】
図１７は、付加情報生成部１１０’の内部に格納される付加情報の概略を示した図である。また、図１８はこの例で示した復号開始点と予測値、ライン先頭画素値の関係を表す図である。なお、以下に説明する復号開始点の設定は、部分復号指示部１６１により設定されているものとする。
【０１１１】
最初の復号開始点は画像の最初の画素であり、累積ビット長ＣＬが０で、予測値が（Ｒ，Ｇ、Ｂ）＝（１２８，１２８，１２８）であることを示している。この復号開始点のあるラインの先頭画素値は（Ｒ，Ｇ，Ｂ）＝（２５５，２５５，２５５）である。この場合、復号開始点がラインの先頭画素を兼ねている。
【０１１２】
また、２番目の復号開始点（復号開始点１）では累積ビット長が２３４５ビットであり、この画素の予測値、即ち、この画素の直前の画素値が（２５５，０，０）、この画素のラインの先頭画素値が（２５０、０、０）であったことを示している。開始点が存在するラインの先頭画素のデータを記憶する理由は、その先頭画素のデータを、復号開始点が存在するラインの次のラインの先頭画素を復号する際の予測値として用いるためである。
【０１１３】
例えば、３番目の復号開始点（復号開始点２）から復号を開始するのであれば、符号化データ（ヘッダ部分を除く）の４５６７個のビットを読み飛ばして４５６８番目のビットから復号を開始する。この復号開始時の画素の予測値は、（０，２５５，０）を用いればよい。また、順次復号処理を行ない、最初に現れるラインの先頭画素を復号する場合には、（０、２３８、０）を予測値として復号処理を行えば良い。
【０１１４】
なお、復号開始点がラインの先頭画素である場合には、ライン先頭画素値を格納しておく必要はないが、ここでは説明を簡単にするために全ての復号開始点について予測値とライン先頭画素値を格納するものとして説明した。
【０１１５】
さて、上記のようにして、１ページ分の画像の復号処理が完了したとする。このとき、図１７に示すように、各復号開始点毎に、その復号開始点に至るまでのビット数ＣＬ、復号開始点の画素を復号する際に利用する成分毎の予測値、及び、その復号開始点が存在するラインの先頭画素の各成分値情報で構成される付加情報が生成される。
【０１１６】
第１の実施形態では、付加情報ファイルは符号化画像データファイルと別々に記憶する例であった。本第２の実施形態では、図２１に示すように、符号化画像データファイルの末尾に、ＥＯＩマーカを付加し、その後に、上記のようにして生成された付加情報を追加するものとする。また、ファイルヘッダには、ＥＯＩマーカの位置、つまり、付加情報の存在する位置を示す情報を格納しているものとする。このように、１つのファイル内に、符号化画像データと付加情報とを一体として保存することで、ファイルの管理が容易になるという効果も得ることができる。
【０１１７】
付加情報を、符号化画像データファイル内に追加するには、例えばＣＯＭマーカなどを利用して、コメントとして認識される領域として追加しても構わない。
【０１１８】
次に、部分復号処理について説明する。図１６の構成において、部分復号する例を説明する。ここでは、上記の如く、付加情報を含む符号化画像データファイルを復号するものとする。因に、ファイルヘッダを解析し、付加情報がない符号化データファイルであると判断した場合の復号処理が、上記付加情報の生成処理であるとも言える。尚、部分復号時では、符号量カウンタ１０９、ライン先頭画素保持部１１２、及び、付加情報生成部１１０’は機能しないか、機能してもその処理を無視するものとする。
【０１１９】
ここでは、部分復号のための付加情報を用いて、部分復号指示部１６１により、画像のｎ番目の復号開始点（復号開始点ｎ−１）から所望の画素数（仮にＭ画素）の画像データを復号するものとして説明する。
【０１２０】
復号対象の画像データファイルを読込み、ヘッダ解析部１０２がそのヘッダを解析してＥＯＩマーカが存在すると判断すると、そのＥＯＩマーカの位置の直後から付加情報が存在すると判断する。付加情報取得部１１１は、その位置情報に基づき、付加情報を読込むことになる。
【０１２１】
これにより図１７のような形式の付加情報が付加情報取得部１１１の内部に保持される。以下、ｎ番目の復号開始点（復号開始点ｎ−１）の先頭画素におけるビット位置ＣＬの値をＣＬ（ｎ−１）、同Ｒ成分に対する予測値をＰｒ（ｎ−１）、Ｇ成分、Ｂ成分に対する予測値をそれぞれＰｇ（ｎ−１）、Ｐｂ（ｎ−１）とする。また、その復号開始点を含むラインの先頭画素のＲ成分、Ｇ成分、Ｂ成分をそれぞれＬｒ（ｎ−１）、Ｌｇ（ｎ−１）、Ｌｂ（ｎ−１）とする。
【０１２２】
復号開始時、制御部１６０は、符号化データの先頭からＣＬ（ｎ−１）で示されるビット数を読み飛ばし、その次のビットから符号バッファ１０１に入力させる。この結果、予測誤差復号部１０４は、復号開始点で示される位置の画素のＲ成分の誤差ｅを復号し、次いで、Ｇ成分の誤差ｅ、Ｂ成分の誤差ｅを順に出力することになる。
【０１２３】
また、付加情報取得部１１１は復号開始点で示される位置の画素の復号時に、スイッチ１０７にＰｒ（ｎ−１）、Ｐｇ（ｎ−１）、Ｐｂ（ｎ−１）の順に出力する。スイッチ１０７は、復号開始点の画素の３成分を復号する際、付加情報取得部１１１からのデータを選択し、加算器１０８に出力する。
【０１２４】
これにより、復号開始点の画素の各成分の復号結果が、加算器１０８より出力される。
【０１２５】
この後、復号開始点以降の同ラインの復号している期間では、スイッチ１０７は成分値予測部１０６からの予測値を選択し続け、着目画素の各成分値を復号する際には、その直前の画素の同成分値を予測値として加算器１０８に出力する。これにより、復号開始点以降の同ラインの各画素の復号が行われる。
【０１２６】
さて、復号開始点の画素から復号処理を開始し、最初に現れるラインの先頭画素の復号する場合、スイッチ１０７は、付加情報取得部１１１からのデータを取得するように切り替える。付加情報取得部１１１は、ラインの先頭画素の予測値として、Ｌｒ（ｎ−１）、Ｌｇ（ｎ−１）、Ｌｂ（ｎ−１）の順にスイッチ１０７に出力する。この最初のライン先頭画素の復号が終わった後、最後の画素を復号するまでの間、スイッチ１０７は成分値予測部１０６からの予測値を選択し続ける。
【０１２７】
以上説明したように本第２の実施形態によれば、ＪＰＥＧ可逆モードで符号化された画像データのユーザが望む所望とする画素位置から復号することが可能になる。
【０１２８】
＜第２の実施形態の変形例＞
次に、上記第２の実施形態の処理をコンピュータプログラムで実現する例を説明する。装置構成は、第１の実施形態の変形例と同じ図１２の構成で構わないので、その説明は省略する。そこで、以下では、同図における外部記憶装置１４０７に記憶されたアプリケーションプログラムをＣＰＵ１４０１が実行する処理手順を図１９、図２０のフローチャートに従って説明する。基本的に、このプログラムは、図１６に示す構成要素に対応する関数（サブルーチン）で構成されると考えると分かりやすい。ただし、図１６における符号バッファ１１０１、バッファ１０５、ライン先頭画素保持部１１２はＲＡＭ１４０２内に予め確保することになる。
【０１２９】
まず、付加情報を有しない符号化画像データファイルに、その付加情報を追加する処理を図１９のフローチャートに従って説明する。なお、以下の説明では、特に言及しないが、復号する画素位置が更新されるたび、ｘ、ｙの値は更新されるものとして説明する。
【０１３０】
まず、ステップＳ５１では、ＪＰＥＧ可逆符号化モードで符号化された画像データファイルの選択のためのＧＵＩを表示し、ユーザに所望とするファイルを選択させる。
【０１３１】
ファイルが選択されると、次いでステップＳ５２に進み、そのファイルヘッダの解析処理を行なう。この結果、その画像の水平画素数Ｗ、垂直方向画素数Ｈ、並びにハフマンテーブルを得ることができる。次いで、ステップＳ５３に進み、選択した画像ファイルの画像中の所望する復号開始点を少なくとも１つ設定する。設定する画素位置はｘ，ｙ座標で指定するものとする。次いで、ステップＳ５４において、累積ビット長を格納する変数ＣＬに“０”をセットする。
【０１３２】
ステップＳ５５では、復号対象の画素位置が、設定された復号開始点であるか否かを判断する。復号対象画素位置が、設定された復号開始点であると判断した場合、ステップＳ５６にて、その時点での変数ＣＬの値を付加情報として格納する。これは、図１７における「ビット位置」に変数ＣＬの値を格納することに相当する。復号対象画素位置が、設定された復号開始点ではないと判断した場合には、ステップＳ５６の処理は行なわない。
【０１３３】
次いで、ステップＳ６９では、変数Ｃを“０”にし、復号する対象をＲ成分に設定する。
【０１３４】
ステップＳ５７では、注目画素の成分値Ｐ（ｘ、ｙ、Ｃ）を復号し、ステップＳ５８では復号に使用した符号化データのビット長情報を変数ＣＬに加算する。
【０１３５】
次いで、ステップＳ５９に進み、注目画素位置が、設定された復号開始点となっているか否かを判断する。注目画素位置が、設定された復号開始点となっていると判断した場合には、ステップＳ６０に進んで、注目画素の成分値Ｐ（ｘ、ｙ、Ｃ）を復号する際に用いた予測値ｐを付加情報として格納する。また、注目画素位置が、設定された復号開始点ではないと判断した場合には、ステップＳ６０の処理は行なわない。
【０１３６】
ここで、ステップＳ６０の処理の予測値ｐの決定方法は次の通りである。
【０１３７】
注目画素が画像データの先頭画素（左上隅の画素）である場合には、注目画素の変数Ｃで示される成分の予測値ｐは“１２８”である。また、注目画素が画像の先頭画素以外の、ライン先頭画素の場合には、直前のラインの先頭画素の成分値Ｐ（ｘ，ｙ−１，Ｃ）が予測値ｐとなる。そして、注目画素が、ラインの途中の位置にある場合、Ｐ（ｘ−１，ｙ，Ｃ）が予測値ｐとなる。これは、図１７に示される付加情報内の「予測値」に、該当する成分の予測値ｐを格納する処理である。
【０１３８】
次に、ステップＳ６１に進み、注目画素位置はラインの先頭画素であるか否かを判断する。注目画素位置がラインの先頭画素であると判断した場合には、ステップＳ６２に進み、注目画素の変数Ｃで示される復号結果Ｐ（ｘ、ｙ、Ｃ）を記憶保持する。これは、図１６におけるライン先頭画素保持部１１２に記憶保持することに対応する。
【０１３９】
次いで、処理はステップＳ６３に進み、変数Ｃを“１”だけ増加させ、次の成分の復号に備える。
【０１４０】
ステップＳ６４では、「Ｃ＜３」であるか否か、すなわち、注目画素の全成分の復号が完了したか否かを判断する。否の場合には、ステップＳ５７以降の処理を繰り返す。
【０１４１】
また、注目画素の全成分の復号処理が終わると、ステップＳ６５に進み、注目画素は設定された復号開始点となっているか否かを再び判断する。注目画素が、設定された復号開始点となっていると判断した場合、注目画素が位置するラインの先頭画素の各成分値を、付加情報として格納する。ラインの先頭画素の各成分値は、ステップＳ６２の処理で記憶保持されているデータである。これは、図１７に示される「ライン先頭画素値」にデータを格納する処理に対応する。
【０１４２】
次に、ステップＳ６７で、注目画素が画像データの最終画素（右下隅の画素）であるか否かを判断する。否の場合、ステップＳ６８で、復号対象の画素位置を更新し、ステップＳ５５以降の処理を繰り返す。
【０１４３】
こうして、ステップＳ６７にて、画像データの全画素の復号処理が完了したと判断すると、本処理を終える。
【０１４４】
次に、付加情報を有する画像データファイルの部分復号処理を、図２０のフローチャートに従って説明する。
【０１４５】
まず、ステップＳ７１にて、ＪＰＥＧ可逆符号化モードで符号化された画像データファイルの選択のためのＧＵＩを表示し、ユーザに所望とする付加情報付きのファイルを選択させる。
【０１４６】
ファイルが選択されると、次いでステップＳ７２に進み、そのファイルヘッダの解析処理を行なう。この結果、その画像の水平画素数Ｗ、垂直方向画素数Ｈ、並びにハフマンテーブル、付加情報の存在位置を得ることができる。
【０１４７】
次いで、ステップＳ７３に進み、選択したファイルから付加情報をＲＡＭ１４０２内の予め確保された領域に読出す。
【０１４８】
次いで、ステップＳ７４に進み、復号開始点とその復号開始点から何画素分を復号するのかを設定する。復号開始点は、付加情報内の復号開始番号の一覧を表示し、ユーザがその中の１つを選択すること決定するものとする。ここでは、ユーザが指定した復号開始番号はｎ、復号する目標復号画素数はｍとして説明する。
【０１４９】
次に、ステップＳ７５にて、変数Ｌに初期値“１”を設定する。この変数Ｌは、復号した画素数をカウントするための変数である。
【０１５０】
ステップＳ７６では、付加情報を参照しビット位置ＣＬ（ｎ）を得る。そして、符号化データの先頭からＣＬ（ｎ）ビット数だけ読み飛ばし、ＣＬ（ｎ）＋１ビット目から復号を開始するように設定する。
【０１５１】
ステップＳ７７では、ＣＬ（ｎ）＋１ビット目からの符号化データと、付加情報内の予測値Ｐｒ（ｎ）、Ｐｇ（ｎ）、Ｐｂ（ｎ）に基づき、復号開始点の画素の各成分を復号し、出力する。以上のようにして、復号開始点の最初の画素の復号が行われる。
【０１５２】
次いで、ステップＳ７８では、変数Ｌとｍとを比較する。すなわち、復号済みの画素数が目標復号画素数ｍになったか否かを判断する。Ｌ＝ｍの場合、設定された画素数分の復号処理が完了したことになるので、本処理を終える。
【０１５３】
また、Ｌ＜ｍであると判断した場合には、ステップＳ７９に進み、色成分を特定するための変数Ｃに初期値“０”を設定する。
【０１５４】
次いで、ステップＳ８０において、復号しようとする画素が、復号処理を開始してから最初に出現するラインの先頭画素であるか否かを判断する。否の場合には、ステップＳ８１に進み、出力バッファ（バッファ１０６に対応）を参照して、変数Ｃで示される注目画素の成分値Ｐ（ｘ、ｙ、Ｃ）を復号する。注目画素が、ラインの途中の位置にある場合、復号済みである直前の画素の成分値Ｐ（ｘ−１、ｙ、Ｃ）を予測値ｐとする。そして、その予測値から、復号した誤差ｅを減じることで、注目画素の成分値Ｐ（ｘ、ｙ、Ｃ）を復号する。また、注目画素が、２つ目以降のラインの先頭画素である場合には、復号済みである直前のラインの先頭画素の成分値Ｐ（ｘ、ｙ−１、Ｃ）を予測値ｐとすればよい。
【０１５５】
また、ステップＳ８０にて、注目画素が、復号処理を開始してから最初に出現するラインの先頭画素であると判断した場合、処理はステップＳ８２に進み、付加情報を参照して注目画素の各成分値を復号し、出力する。具体的には、Ｃ＝０の場合には、注目画素の成分値を復号する際に、Ｌｒ（ｎ）を予測値として復号する。また、Ｃ＝１の場合にはＬｇ（ｎ），Ｃ＝２の場合にはＬｂ（ｎ）をそれぞれ予測値として用いて復号し、出力する。
【０１５６】
ステップＳ８１、Ｓ８２において、１成分の復号処理を終えると、処理はステップＳ８３に進み、変数Ｃを“１”だけ増加させる。そして、ステップＳ８４にて、注目画素の全成分の復号処理が終えたか否かを判断し、否の場合にはステップＳ８０以降の処理を繰り返す。
【０１５７】
こうして、１画素の復号処理が終了すると、処理はステップＳ８５に進み、変数Ｌを“１”だけ増加させる。そして、ステップＳ８６に進み、復号対象画素位置を更新し、ステップＳ７８に処理を戻す。
【０１５８】
以上説明したように本変形例の如く、先に示した第２の実施形態と同様に、部分復号を考慮せずに生成した符号化データについて、その全てを復号することなく、画像データの一部分を劣化なく再生することができる。
【０１５９】
＜第３の実施形態＞
上記第２の実施形態の画像処理装置では、図１７のように各復号開始点について、１つの復号開始点に対し、ビット位置、復号開始点の画素を復号する際に用いた予測値、及び、復号開始点を含むラインの先頭画素値の情報を必要とする。この復号開始点を含むラインの先頭画素値を設ける理由は、復号開始点の画素から復号していって、最初に現れるラインの先頭画素を復号する際の予測値として利用するためである。
【０１６０】
さて、第２の実施形態に従えば、複数の復号開始点を設定できることは、これまでの説明から明らかであるが、１つのラインに複数の復号開始点を設定すると、同じ数のラインの先頭画素値を記憶することになり、冗長となってしまう。
【０１６１】
そこで、本第３の実施形態では、このようなラインの先頭画素値の重複を避ける例を説明する。
【０１６２】
装置構成は図１６と同じである。異なる点は、付加情報生成部１１０’が生成する付加情報の構成と、それを作成するための処理手順である。これ以外は、第２の実施形態と同様であるので、その説明は省略する。
【０１６３】
本第３の実施形態では、図２２のように画像の１つのラインに複数の復号開始点を設定した場合の、付加情報の冗長度を抑制するものである。
【０１６４】
このため、本第３の実施形態での付加情報生成部１１０’が生成する付加情報は、図２３（ａ）に示すように復号開始点のビット位置と予測値の組のテーブルと、同図（ｂ）のようにラインの先頭画素値を格納するテーブルの２つで構成される。
【０１６５】
本第３の実施形態における付加情報生成処理を伴う復号処理は次の通りでよい。
【０１６６】
復号開始点となる画素の復号を行う際に、付加情報生成部１１０’は符号量カウンタ１０９から累積ビット長ＣＬを取得する。また、付加情報生成部１１０’は、この画素の各成分に対する予測値ｐを成分値予測部１０６の出力線を介して取得する。これにより、図２３（ａ）のテーブルにその情報を格納する。一方、復号した画素がラインの先頭画素であった場合には、ライン先頭画素保持部１１２に格納されたばかりのライン先頭画素値を取得し、それを図２３（ｂ）のテーブルに格納する。図２３（ｂ）のテーブルに格納するライン先頭画素の成分は、１つのラインに対して１組である。
【０１６７】
また、部分復号する場合には、次の通りである。
【０１６８】
部分復号開始点から始まる最初の画素を復号する場合には、図２３（ａ）のテーブルに格納される予測値を用いて復号を行なう。これ以降は、直前の画素の復号結果を参照すればよい。そして、最初に現れるライン先頭画素を復号する場合には、着目する画素の１ライン前の画素値を図２３（ｂ）のテーブルから読み出して予測値として用いれば良い。
【０１６９】
以上の動作により、符号化データから完全に元の画像データを復元することができ、また、付加情報生成部１１０’に図２３（ａ）、（ｂ）に示すような任意の画素位置から部分復号を可能とするための付加情報が生成される。この付加情報は、第２の実施形態と同じとするなら、図２１のように符号化データの末尾に追加すればよい。この場合、ＳＯＩマーカとＥＯＩマーカで、符号化データと区別するだけである。
【０１７０】
また、第１の実施形態の如く、符号化対象となった画像ファイルとは別のフォルダ等に、生成された付加情報ファイルとして記憶管理しても良い。
【０１７１】
なお、本第３の実施形態に相当する処理をコンピュータプログラムでもって実現することも可能であるのは、これまでの説明から明らかであるので、その説明は省略する。
【０１７２】
＜第４の実施形態＞
上記第２、第３の実施形態では、例えラインの先頭画素に限らず、その途中の画素から復号することが可能となる。
【０１７３】
昨今のデジタルカメラの撮像可能な画像のサイズ（水平方向画素数、垂直方向画素数）は、デジタルカメラが有する液晶表示器は勿論のこと、パーソナルコンピュータ等の情報処理槽装置が有する表示装置の表示可能な画素数を遥かに超えるものである。
【０１７４】
従って、一般には、撮像画像を表示装置に等倍で表示する際には、その画像の一部しか表示できない。
【０１７５】
図２８は原画像２７００と、その一部を表示するウインドウ２７０４との関係を示している。図示では、原画像２７００中の領域２７０１内に相当する部分画像をウインドウ２７０４内に表示している例を示している。ウインドウ２７０４には、水平、垂直方向にスクロールするスクロールバーが設けられている。スクロールバーを操作することは、領域２７０１の位置を変更することと等価の意味になるのは、明らかである。
【０１７６】
かかる表示を行なう場合、上記実施形態に従えば、領域２７０１の左上隅位置を復号開始点として復号していけば良いことになる。ただし、図示の斜線領域２７０２、２７０３は実際には表示されないので、これら領域２７０２、２７０３の画像の復号処理は無駄になってしまう。
【０１７７】
そこで、本第４の実施形態では、次のようにして付加情報を生成する。これまでの説明を踏襲するため、原画像の水平方向の画素数をＷ，垂直方向画素数をＨとする。
【０１７８】
図２９に示すように、各ラインの先頭画素を無条件に復号開始点として設定し、等間隔に復号開始点を設定する。この間隔は、水平スクロールバーを操作した際の最小スクロール量となるので、適度な値を設定する。実施形態では、この画素間隔は、付加情報を生成する側と、それを用いて部分復号する側で同じにしておけばよい。実施形態では、仮にこの間隔を「５０」とする。従ってｘ座標で示すと、０、５０、１００、１５０、２００、…の位置に復号開始点を設定することになる。また、復号開始点番号は、ラスター順に割り当てるのは、第２、第３の実施形態と同じである。
【０１７９】
図３０は本第４の実施形態における付加情報を示している。図示の如く、各ラインの先頭画素は、必ず復号開始点として設定することにしているので、図１７に示す「ライン先頭画素値」の情報は不要となる。
【０１８０】
画像の水平方向の画素数Ｗはファイルヘッダから得られるから、１ラインに含まれる復号開始位置の個数は、１＋（Ｗ ￥ ５０）となる（「A \ B」は整数Ａを整数Ｂで除算した際の商を返す演算子である）。また、ウインドウ２７０４内の画像表示領域の水平方向の画素数をＷｗ、垂直方向の画素数をＷｈとする。
【０１８１】
このとき、画像２７００における領域２７０１の左上隅位置の座標は｛５０×ｉ、ｊ｝と表わすことができる（ｉ，ｊは０以上の整数）。
【０１８２】
説明を簡単なものとするため、１ライン中に存在する復号開始点の個数をＲとするなら、ウインドウ２７０４内の画像表示領域の左上隅の復号開始点の復号開始点番号Ｑは、次の式で求めることができる。
Ｑ＝ｊ×Ｒ＋ｉ
従って、この復号開始点番号Ｑで示されるビット位置ＣＬ（Ｑ）まで読み飛ばし、ＣＬ（Ｑ）＋１ビットから復号を開始する。そして、そこからウィンドウ２７０４のＷｗ個の画素を復号することで、ウインドウ２７０４の最初のラインの復号が完了する。
【０１８３】
ウインドウ２７０４の２ライン目の復号開始点番号は「（ｊ＋１）×Ｒ＋ｉ」となる。同様に、３ライン目の復号開始点番号は「（ｊ＋２）×Ｒ＋ｉ」となるのは明らかである。従って、Ｗｈ個の各ラインの復号開始点番号を求め、各復号開始点の位置からＷｗ個の画素分だけ復号する処理を行なえば良い。この結果、斜線領域２７０２、２７０３の復号処理を省略し、ウインドウ２７０４に表示すべき領域のみを復号することも可能になる。
【０１８４】
＜第５の実施形態＞
上記第１乃至第４の実施形態、及び、それら変形例では、復号対象となる符号化画像データ（ファイル）は、ＪＰＥＧ可逆モードによる符号化データであり、それに部分復号のための付加情報を生成し、関連づけるものであった。しかしながら、本発明はＪＰＥＧ可逆モード以外でも、単純な予測符号化を利用した符号化に応用可能である。
【０１８５】
そこで、本発明の第５の実施形態としてＪＰＥＧのベースラインモードで符号化された符号化データに対して部分復号のための付加情報を生成する画像処理装置について説明する。
【０１８６】
ここでＪＰＥＧベースラインモードとは、フレームヘッダでＳＯＦ０（FFC0）を使用する基本ＤＣＴシーケンシャルを指す。ＪＰＥＧ符号化方式における係数の符号化／復号方法、量子化／逆量子化の方法、離散コサイン変変換の変換／逆変換の方法に関しては標準勧告書（ITU−T  T.81 ｜ISO／IEC１０９１８−１）に解説されている。また、例えば、小野、渡辺著、「国際標準画像符号化の基礎技術」（コロナ社）などにも解説されているので、その詳述は省略し、本発明の特徴的な部分について重点的に説明する。
【０１８７】
ＪＰＥＧベースラインモードでは、まず、画像を８×８画素のブロックに区切って、それぞれに離散コサイン変換（ＤＣＴ変換）を施し、係数を適宜量子化した後に１つのＤＣ成分（直流成分）と、６３個のＡＣ成分（交流成分）を別の方法で符号化する。ＡＣ成分の符号化は各ブロック毎に独立して行われる。一方、注目ブロックのＤＣ成分の符号化データは、まず、そのＤＣ成分と直前に符号化したブロックのＤＣ成分値との差分を演算し、その差分を符号化することで得る。従って、或るブロックから復号する場合には、その直前のブロックのＤＣ成分を必要とするので、このままでは部分復号を行なうことはできない。
【０１８８】
本第５の実施形態での画像処理装置では、このようなＪＰＥＧベースラインの符号化データを再符号化することなく、部分復号可能とするための付加情報を生成する。説明を簡単なものとするため、本第５の実施形態の画像処理装置で、復号対象とするＪＰＥＧ符号化データは各画素の輝度（または濃度）が８ビットで表現されたモノクロ画像データであるとして説明する。ただし、ＲＧＢ、ＣＭＹＫといったカラー画像に適用しても良い。各成分毎に同じ処理を行なえばよいからである。
【０１８９】
図２４は本第５の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【０１９０】
図２４に示すように、本実施形態に係る画像処理装置は、符号バッファ２４０１、ヘッダ解析部２４０２、ハフマンテーブル用メモリ２４０３、量子化テーブル用メモリ２４０４、ＤＣ差分復号部２４０５、加算器２４０６、ＤＣ成分値保持部２４０７を備える。また、この画像処理装置は、ＡＣ係数復号部２４０８、逆量子化部２４０９、逆離散コサイン変換部２４１０、符号量カウンタ２４１１、付加情報生成部２４１２をも備える。
【０１９１】
同図において２４１３、２４１４、２４１５は信号線を示す。また、これまでの実施形態と同様、部分復号指示部１６１、装置全体の制御を司る制御部１６０、付加情報取得部１１１、及び、スイッチ１０７を備える。部分復号指示部１６１は、付加情報を生成するための処理を行なう場合には、少なくとも１つの復号開始ブロックを設定する。また、部分復号指示部１６１は、付加情報に従って部分復号する場合、復号開始ブロックの指定及び復号するブロック数を指定することになる。
【０１９２】
なお、破線２４１６はブロックデータ復号部を示している。このブロックデータ復号部２４１６は、ハフマンテーブル用メモリ２４０３、量子化テーブル用メモリ２４０４を備える。また、ブロックデータ復号部２４１６は、更に、ＤＣ差分復号部２４０５、加算器２４０６、ＤＣ成分値保持部２４０７、ＡＣ係数復号部２４０８、逆量子化部２４０９、逆離散コサイン変換部２４１０を備える。
【０１９３】
以下、図２４を参照して、本第５の実施形態の画像処理装置での各部の動作について説明する。
【０１９４】
まず、付加情報の生成処理について説明する。この処理では、スイッチ１０７は、１ページの符号化画像データの復号処理中、常時、ＤＣ成分値保持部２４０７からの出力を選択している。
【０１９５】
復号対象となる符号化データは信号線２４１３から順に入力される。
【０１９６】
符号バッファ２４０１は信号線２４１３から入力される符号化データを適宜内部バッファに格納する。全ての符号化データを一度に読み込み格納しても良いし、後述のヘッダ解析部２４０２やＤＣ差分復号部２４０５、ＡＣ係数復号部２４０８で必要とされる符号が供給できない場合に、適切な単位で符号を読み込むようにしても構わない。
【０１９７】
ヘッダ解析部２４０２は符号バッファ２４０１に格納される符号化データのヘッダ部分を解析する。これにより、ヘッダ解析部２４０２は、ＤＣ係数、ＡＣ係数の復号に用いるハフマンテーブル、各係数の量子化ステップを記した量子化テーブル、画像の水平方向画素数Ｗ、垂直方向画素数Ｈ、画素を構成する成分の数、各成分の精度などの情報を得る。
【０１９８】
このヘッダ情報は復号の過程で装置全体で利用される。特に、係数復号のためのハフマンテーブルはハフマンテーブル用メモリ２４０３に格納され、量子化テーブルは量子化テーブル用メモリ２４０４に格納される。
【０１９９】
ＤＣ差分復号部２４０５は符号バッファ２４０１から必要な長さのビットデータを取り出す。そして、このＤＣ差分復号部２４０５は、ハフマンテーブル用メモリ２０４に格納されるＤＣ差分用のハフマンテーブルを参照し、着目するブロックのＤＣ差分値ＤＩＦＦを復号して出力する。この差分値ＤＩＦＦは、着目ブロックのＤＣ成分値と直前のブロックのＤＣ成分値の差分値を意味することは既に説明した。
【０２００】
ここでは詳細な説明は省略するが、差分値ＤＩＦＦの復号方法はＪＰＥＧ可逆モードで予測誤差を復号する方法と同じ方法である。このとき、ＤＣ差分復号部２４０５はＤＣ差分値の復号に用いたビット長Ｌｄを符号量カウンタ２４１１へと出力する。第１の実施形態の予測誤差復号部１０４の場合と同様、ＤＣ差分値ＤＩＦＦに関する符号化データの途中、またはその末尾に、マーカ領域確保のため「００」のバイトデータが挿入されていることも起こり得る。この場合、ＤＣ差分復号部２４０５はマーカーの「００」のバイトデータを含むビット長Ｌｄを符号量カウンタ２４１１に出力する。
【０２０１】
加算器２４０６はＤＣ差分復号部２４０５から出力されるＤＣ差分値ＤＩＦＦと、ＤＣ成分値保持部２４０７に保持されている直前のＤＣ成分値ＰＲＥＤを加算して、着目するブロックのＤＣ成分値を復元し、出力する。
【０２０２】
ＤＣ成分値保持部２４０７は加算器２４０６から出力されるＤＣ成分値を、次のブロックで用いる直前のＤＣ成分値ＰＲＥＤとして内部に保持する。
【０２０３】
一方、ＡＣ係数復号部２４０８はハフマンテーブル用メモリ２４０３に格納されているＡＣ係数用のハフマンテーブルを参照しながら、符号バッファ２４０１から必要な長さのビットデータを取得する。そして、ＡＣ係数復号部２４０８は、着目ブロックの６３個のＡＣ係数を復号する。このとき、６３個のＡＣ係数を復号するために符号バッファ２４０１から取得したビットの長さＬａを符号量カウンタ２４１１へと出力する。
【０２０４】
逆量子化部２４０９では加算器２４０６から出力されるＤＣ成分値と、ＡＣ係数復号部から出力される６３個のＡＣ係数値について、量子化テーブル用メモリ２４０４に格納される量子化行列を用いて逆量子化を行う。
【０２０５】
逆離散コサイン変換部２４１０は逆量子化部２４０９により得られた逆量子化後の係数を格納したブロックについて逆離散コサイン変換を施し、着目ブロックの６４個の画素値を復元する。
【０２０６】
符号量カウンタ２４１１はＤＣ差分復号部２４０５から出力されるビット数Ｌｄと、ＡＣ係数復号部２４０８から出力されるビット数Ｌａを、内部に備えるカウンタに加算していき、累積ビット長ＣＬとして保持する。なお、復号の開始時点で累積ビット長ＣＬは０に初期化される。
【０２０７】
部分復号指示部１６１は、本実施形態の場合、復号開始ブロックの位置を設定する。制御部１６０はこの復号開始ブロックの位置に従って、本装置の復号処理を制御することになる。
【０２０８】
付加情報生成部２４１２は、制御部１６０より設定された復号開始ブロック位置で示されたブロックを復号する際、符号量カウンタ２４１１から累積ビット長ＣＬを取得する。また、そのＤＣ成分値の復号の過程でＤＣ成分値保持部２４０７から出力される直前のブロックのＤＣ成分値ＰＲＥＤを取得する。これにより、付加情報生成部２４１２は、図２５に例を示すような形式で部分復号のための付加情報を内部のメモリに生成していく。
【０２０９】
１ページ分の復号処理を終えると、付加情報生成部２４１２は、部分復号指示部１６１で設定された全復号開始ブロックに対するビット位置とその直前のブロックのＤＣ成分値を組にする付加情報が生成される。この付加情報は、装置外部へと出力され、外部記憶装置等に、復号対象となった画像データと関連付けて保存される。例えば、符号化データ中、ＣＯＭマーカなどを利用して、コメントとして認識される領域に追加しても良いし、符号化データの末尾に追加しても良い。または、別のデータとして記憶させておき、データに付与する識別情報（例えば、ファイル名など）によって関連性を示しても良い。ＣＯＭマーカの一つを利用して符号化データの中に格納するものとする。
【０２１０】
次に、部分復号する場合の処理は次の通りである。説明を簡単なものとするため、図２５の付加情報と関連づけられた符号化画像データの部分復号する場合を説明する。
【０２１１】
部分復号処理の場合、符号量カウンタ２４１１、付加情報生成部２４１２は機能しない、又は、機能してもその処理結果は無視する。
【０２１２】
付加情報取得部１１１は、符号化対象画像データファイルから、付加情報を取得し、保持する。
【０２１３】
図２５の例では、最初の復号開始ブロックでは累積ビット長が０であり、直前のブロックのＤＣ成分値が０であったことを示している。また、２番目の復号開始ブロック（復号開始ブロック１）では、累積ビット長が１２３４ビット、直前のブロックのＤＣ成分値が３２であったことを示している。
【０２１４】
今、部分復号指示部１６１が、３番目の復号開始ブロック（復号開始ブロック２）から復号を開始することを指示したとする。この場合、付加情報を参照し、符号化データ（ヘッダ部分を除く）の５６７８個のビットを読み飛ばして５６７８番目のビットからの符号化データを、符号バッファ２４０１に格納していく。復号開始した最初のブロックの復号処理では、付加情報取得部１１１は、指示された３番目のブロックに対応するＰＲＥＤのデータを出力する。また、スイッチ１０７は、復号開始した最初のブロックの復号処理では付加情報取得部１１１からのデータを選択する。
【０２１５】
この結果、復号開始ブロックのＤＣ成分値が正常に復号することができる。
【０２１６】
一旦、復号開始ブロック復号処理が完了すると、これ以降、スイッチ１０７は、常時、ＤＣ成分値保持部２４０７からのデータを選択し続ける。
【０２１７】
＜第５の実施形態の変形例＞
上記第５の実施形態をコンピュータプログラムで実現する例を説明する。装置構成は、第１、第２の実施形態の変形例で示した図１２と同じとし、その説明は省略する。また、復号対象とするＪＰＥＧ符号化データは各画素の輝度（または濃度）が８ビットで表現されたモノクロ画像データであるとして説明する。
【０２１８】
以下、ＣＰＵ１４０１が実行するアプリケーションの付加情報の生成処理処理を図２６のフローチャートに従って説明する。
【０２１９】
まず、ステップＳ９１では、ＪＰＥＧベースライン符号化モードで符号化された画像データファイルの選択のためのＧＵＩを表示し、ユーザに所望とするファイルを選択させる。
【０２２０】
ファイルが選択されると、次いでステップＳ９２に進み、そのファイルヘッダの解析処理を行なう。この結果、その画像の水平画素数Ｗ、垂直方向画素数Ｈ、並びにハフマンテーブルを得ることができる。次いで、ステップＳ９３に進み、選択した画像ファイルの画像中の所望する復号開始ブロックの位置を少なくとも１つ設定する。次いで、ステップＳ９４において、累積ビット長を格納する変数ＣＬに“０”をセットする。
【０２２１】
この後、処理はステップＳ９５に進み、着目ブロックが、設定された復号開始ブロック位置にあるか否かを判断する。復号対象画素位置が、設定された復号開始点であると判断した場合、ステップＳ９６に進み、その時点での変数ＣＬの値を付加情報として格納する。これは、図２５における「ビット位置」に変数ＣＬの値を格納することに相当する。また、ステップＳ９７では、そのブロックを復号する際に利用することになる予測直流成分ＰＲＥＤを付加情報として格納する。
【０２２２】
なお、復号対象ブロックが、設定された復号開始ブロック位置ではないと判断した場合には、ステップＳ９６、Ｓ９７の処理は行なわない。
【０２２３】
ステップＳ９８に処理が進むと、注目ブロックのＤＣ差分値ＤＩＦＦをハフマンテーブルを参照して復号する。そして、ステップＳ９９では注目ブロックのＤＣ成分を、ＤＣ差分値ＤＩＦＦと直前のブロックの直流成分値ＰＲＥＤを用いて復号する。
【０２２４】
この後、ステップＳ１００にて、注目ブロックの残りの６３個のＡＣ成分値をハフマンテーブルを復号する。
【０２２５】
こうして８×８個の係数値（１つの直流成分値と６３個のＡＣ成分値）の復号が完了すると、処理はステップＳ１０１に進み、ヘッダを解析して得られた量子化テーブルに基づき逆量子化処理を行なう。そして、ステップＳ１０２にて、逆離散コサイン変換（ＩＤＣＴ）を行ない、８×８画素データを生成し、ステップＳ１０３にて、その８×８画素のデータを出力する。
【０２２６】
この後、ステップＳ１０４にて、全ブロックについて復号したのか否かを判断し、否の場合にはステップＳ９５以降の処理を繰り返すことになる。
【０２２７】
次に、付加情報を付随する符号化データの部分復号処理を図２７のフローチャートに従って説明する。
【０２２８】
まず、ステップＳ１１１にて、付加情報付きのＪＰＥＧベースライン符号化モードで符号化された画像データファイルの選択のためのＧＵＩを表示し、ユーザに所望とするファイルを選択させる。
【０２２９】
ファイルが選択されると、ステップＳ１１２に進み、そのファイルヘッダの解析処理を行なう。この結果、その画像の水平画素数Ｗ、垂直方向画素数Ｈ、並びにハフマンテーブル、付加情報の存在位置を得ることができる。
【０２３０】
次いで、ステップＳ１１３に進み、選択したファイルから付加情報をＲＡＭ１４０２内の予め確保された領域に読出す。
【０２３１】
次いで、ステップＳ１１４に進み、復号開始ブロックの位置と、復号ブロック数を指定する。復号開始ブロックは、付加情報内の復号開始ブロック番号の一覧を表示し、ユーザがその中の１つを選択すること決定するものとする。ここでは、ユーザが指定した復号開始ブロックの番号はｎ、復号ブロック数をｍとして説明する。
【０２３２】
次に、ステップＳ１１５にて、変数Ｌに初期値“１”を設定する。この変数Ｌは、復号したブロック数をカウントするための変数である。
【０２３３】
ステップＳ１１６では、付加情報のビット数ＣＬ（ｎ）を読出し、符号化画像データの先頭からＣＬ（ｎ）ビット数だけ読み飛ばす。これにより、指定された復号開始ブロックの符号化データから復号することが可能になる。
【０２３４】
ステップＳ１１７では、復号開始ブロックのＤＣ差分値を復号する。そして、ステップＳ１１８において、付加情報中の直前のブロックの直流成分値Ｄ（ｎ）を読出し、ＤＣ差分値とＤ（ｎ）に基づき、復号開始ブロックの直流成分値ＤＣを復号する。このとき、復号した直流成分値ＤＣは、次のブロックの復号処理に備えて、一時的に記憶する。
【０２３５】
この後、ステップＳ１１９にて、ＡＣ交流成分値を復号する。そして、ステップＳ１２０にて逆量子化、ステップＳ１２１にて逆離散コサイン変換処理を行ない、符号化開始ブロックの復号結果として出力する。なお
次いで、ステップＳ１２２では、「Ｌ＜ｍ」を満たすか否か、すなわち、指定されたブロック数分の復号処理が完了したか否かを判断する。Ｌ＜ｍであると判断した場合には、指定されたブロック数分の復号処理を行なっていないことになるので、処理はステップＳ１２３に進む。また、Ｌ＝ｍであると判断した場合には、本処理を終える。
【０２３６】
ステップＳ１２３乃至ステップＳ１２７の処理は、ステップＳ１１７乃至Ｓ１２１の処理と同様である。異なる点は、注目ブロックのＤＣ成分を復号する際、直前のブロックの復号済みＤＣ値を参照する点である。
【０２３７】
こうして、１つのブロックの復号処理が完了すると、ステップＳ１２８にて変数Ｌを“１”だけ増加させ、ステップＳ１２２以降の処理を繰り返すことになる。
【０２３８】
以上説明したように本第５の実施形態の変形例でも、第５の実施形態と同様の作用効果を奏することが可能になる。
【０２３９】
＜その他の実施形態＞
上記実施形態では、付加情報が関連づけられていない符号化画像データを一旦、復号し、その際に付加情報を生成することで、次回以降は部分復号を可能にするものであったが、原画像データを符号化する際に付加情報を生成するようにしても良い。例えば、第１の実施形態の画像処理装置のように各ラインの先頭画素で復号開始するための付加情報を生成するのであれば、各ラインの先頭画素の符号化時に、これまでに出力したビット数（累積ビット数）と、画素の各成分の予測値を保持すればよいことは容易に理解できよう。
【０２４０】
また、付加情報を利用して復号を行なう際、その復号する範囲内に複数の符号化開始点又は復号開始ブロックが含まれるのであれば、各符号化開始点又は復号開始ブロックからの復号処理を並列に実行することが可能になる。例えば、第１の実施形態に適用する場合、図１の構成に、成分値復号部１１０６を複数個備えるようにする。そして、それぞれの成分値復号部に別々の場所から復号処理を開始させることで、一つの符号化データからの画像復号処理を並列化させることができる。
【０２４１】
また、実施形態では、ＪＰＥＧ可逆モード、又は、ＪＰＥＧベースラインモードの例について示したが、これに限らず、簡易な予測符号化を用いているものであれば適用可能であるのは明らかである。
【０２４２】
また、実施形態では、ＲＧＢ画像、モノクロ画像の符号化を例に説明したが、画像の色空間は、ＣＭＹＫ、Ｌａｂ、ＹＣｒＣｂなど様々なタイプの画像データに適用可能であるのは明らかであるので、上記実施形態で本発明が限定されるものではない。
【０２４３】
また、上述の実施形態では、付加情報生成装置と付加情報を利用して部分復号を行う装置を１つの構成で実現させたが、これらは別々な構成によって実現しても構わない。
【０２４４】
また、実施形態では、コンピュータプログラムでもって実現する例を説明した。通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されていて、それをコンピュータの読取り装置（ＣＤ−ＲＯＭドライブ）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、このようなコンピュータ可読記憶媒体も本発明の範疇に入ることも明らかである。
【図面の簡単な説明】
【０２４５】
【図１】第１の実施形態に係る画像処理装置のブロック構成図である。
【図２】従来の画像処理装置のブロック構成図である。
【図３】符号化対象画素ｘに対する周辺画素ａ，ｂ，ｃの相対位置関係を示す図である。
【図４】予測選択信号ｍに対応する予測式を示す図である。
【図５】予測誤差ｅとグループ番号ＳＳＳＳとの対応を示す図である。
【図６】グループ番号ＳＳＳＳと符号語との対応を示す図である。
【図７】符号化データから予測誤差を復号する例を示す図である。
【図８】第１の実施形態において付加情報生成部が生成する付加情報の例を示す図である。
【図９】ＪＰＥＧ可逆モードによる符号化データの構造を示す図である。
【図１０】第１の実施形態における復号範囲を示す図である。
【図１１】第１の実施形態における復号開始点の位置を示す図である。
【図１２】第１の実施形態の変形例の画像処理装置のブロック構成図である。
【図１３】第１の実施形態における変形例の復号処理手順を示すフローチャートである。
【図１４】第１の実施形態における変形例の復号処理手順を示すフローチャートである。
【図１５】第１の実施形態における変形例の部分復号処理手順を示すフローチャートである。
【図１６】第２の実施形態に係る画像処理装置のブロック構成図である。
【図１７】第２の実施形態において付加情報生成部が生成する付加情報の例を示す図である。
【図１８】第２の実施形態において、復号開始点と予測値、ライン先頭画素値の関係を表す図である。
【図１９】第２の実施形態の変形例における復号処理手順を示すフローチャートである。
【図２０】第２の実施形態の変形例における部分復号処理手順を示すフローチャートである。
【図２１】第２の実施形態において生成される付加情報付き符号化データのデータ構造を示す図である。
【図２２】第３の実施形態における復号開始点の設定の様子を示す図である。
【図２３】第３の実施形態において付加情報生成部が生成する付加情報の例を示す図である。
【図２４】第５の実施形態に係る画像処理装置のブロック構成図である。
【図２５】第５の実施形態において付加情報生成部が生成する付加情報の例を示す図である。
【図２６】第５の実施形態の変形例における復号処理手順を示すフローチャートである。
【図２７】第５の実施形態の変形例における部分復号処理手順を示すフローチャートである。
【図２８】第４の実施形態における画像データとウインドウとの関係を示す図である。
【図２９】第４の実施形態における復号開始点の設定例を示す図である。
【図３０】第４の実施形態における付加情報生成部が生成する付加情報の例を示す図である。
【図１】
2008022376.tif 000003
【図２】
2008022376.tif 000004
【図３】
2008022376.tif 000005
【図４】
2008022376.tif 000006
【図５】
2008022376.tif 000007
【図６】
2008022376.tif 000008
【図７】
2008022376.tif 000009
【図８】
2008022376.tif 000010
【図９】
2008022376.tif 000011
【図１０】
2008022376.tif 000012
【図１１】
2008022376.tif 000013
【図１２】
2008022376.tif 000014
【図１３】
2008022376.tif 000015
【図１４】
2008022376.tif 000016
【図１５】
2008022376.tif 000017
【図１６】
2008022376.tif 000018
【図１７】
2008022376.tif 000019
【図１８】
2008022376.tif 000020
【図１９】
2008022376.tif 000021
【図２０】
2008022376.tif 000022
【図２１】
2008022376.tif 000023
【図２２】
2008022376.tif 000024
【図２３】
2008022376.tif 000025
【図２４】
2008022376.tif 000026
【図２５】
2008022376.tif 000027
【図２６】
2008022376.tif 000028
【図２７】
2008022376.tif 000029
【図２８】
2008022376.tif 000030
【図２９】
2008022376.tif 000031
【図３０】
2008022376.tif 000032