(57)【要約】  【課題】  符号化装置において、処理内容を柔軟に変更することができ、コストの上昇を招くことがなく、処理速度の点でも実用上問題とならないものとする。  【解決手段】  画像データを所定の大きさのブロックに分割し、得られたブロックごとの画像データを、該ブロックごとに空間周波数成分に変換するＤＣＴ変換処理部３００（周波数変換手段）と、ＤＣＴ変換処理部３００によって得られた空間周波数成分に対応した係数を、ソフトウェア処理に好適な形式の所定の中間データへ変換する中間データ生成部３０３（中間データ化手段、中間データ出力手段）を備える。【選択図】            図４
2006333299.tif 000002
【特許請求の範囲】
【請求項１】
画像データを所定のブロックに分割し、このブロックごとに空間周波数成分に変換し、この変換処理により得られた空間周波数成分の係数を可変長符号化して符号化データを得る符号化装置において、
前記可変長符号化前の係数データを所定の中間データへ変換する中間データ化手段と、
前記中間データを出力する中間データ出力手段と、を備えたことを特徴とする符号化装置。
【請求項２】
前記中間データを入力する中間データ入力手段と、入力された中間データを可変長符号化して出力する中間データ符号化手段と、を備えたことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記中間データには、読込終了位置の情報を設定可能で、起動ごとに該読込終了位置までの処理を継続して行うことを特徴とする請求項２に記載の符号化装置。
【請求項４】
前記中間データには、前記ブロックの座標位置の情報を含むことを特徴とする請求項１から３のうちいずれか１項に記載の符号化装置。
【請求項５】
前記中間データには、前記ブロックのコンポーネント種別の情報を含むことを特徴とする請求項１から３のうちいずれか１項に記載の符号化装置。
【請求項６】
前記中間データには、前記複数のブロックのうち所定のブロックに対応する中間データのデータサイズの情報を含むことを特徴とする請求項１から３のうちいずれか１項に記載の符号化装置。
【請求項７】
前記中間データには、０値についてのランレングスの情報を含むことを特徴とする請求項１から３のうちいずれか１項に記載の符号化装置。
【請求項８】
前記中間データには、所定量の無効データを含むことを特徴とする請求項１から３のうちいずれか１項に記載の符号化装置。
【請求項９】
入力された画像に基づいて画像データを形成する画像データ形成手段と、前記画像データに基づいて符号化データを得る符号化装置とを備えた画像データ形成装置において、
前記符号化装置は、請求項１から８のうちいずれか１項に記載の符号化装置であることを特徴とする画像形成装置。
【請求項１０】
画像データを所定のブロックに分割し、このブロックごとに空間周波数成分に変換し、この変換処理により得られた空間周波数成分の係数を可変長符号化して符号化データを得る符号化方法において、
前記可変長符号化前の係数データを所定の中間データへ変換し、前記中間データを出力することを特徴とする符号化方法。
【請求項１１】
前記中間データの入力を受け、この入力された中間データを可変長符号化して出力することを特徴とする請求項１０に記載の符号化方法。
【請求項１２】
前記中間データには、読込終了位置の情報を設定可能で、起動ごとに該読込終了位置までの処理を継続して行うことを特徴とする請求項１１に記載の符号化方法。
【請求項１３】
前記中間データには、前記ブロックの座標位置の情報を含むことを特徴とする請求項１０から１２のうちいずれか１項に記載の符号化方法。
【請求項１４】
前記中間データには、前記ブロックのコンポーネント種別の情報を含むことを特徴とする請求項１０から１２のうちいずれか１項に記載の符号化方法。
【請求項１５】
前記中間データには、前記複数のブロックのうち所定のブロックに対応する中間データのデータサイズの情報を含むことを特徴とする請求項１０から１２のうちいずれか１項に記載の符号化方法。
【請求項１６】
前記中間データには、０値についてのランレングスの情報を含むことを特徴とする請求項１０から１２のうちいずれか１項に記載の符号化方法。
【請求項１７】
前記中間データには、所定量の無効データを含むことを特徴とする請求項１０から１２のうちいずれか１項に記載の符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および符号化方法並びにこの装置を用いたデジタルカメラやファクシミリ等の画像形成装置に関し、詳細には、画像データに電子透かしを埋め込むのに適した画像データの符号化の改良に関する。
【背景技術】
【０００２】
従来より、静止画や動画、音楽等のデジタルコンテンツの改ざんや不当な複製を検証し、あるいは防止すること等を目的として、これらのコンテンツに署名データを付加したり、電子透かしを埋め込む技術が提案されている。
【０００３】
ここで、電子透かしを埋め込む技術としては既に種々の方式が提案、実用化されているが、JPEG（Joint Photographic Expert Group）アルゴリズム等による圧縮符号化処理を行う場合、その圧縮過程で透かし情報が損なわれてしまうのを防止するため、量子化後のデータに透かしを埋め込み、その後、可変長符号化（ラングレンス符号化、ハフマン符号化等）を行うのが一般的となっている（非特許文献１，２等）。
【０００４】
一方、デジタルカメラに代表される画像形成装置では、JPEG等の符号化が用いられているが、これらの画像形成装置は高速に符号化処理する必要があるため、ハードウェアによって符号化処理を行っている。
【０００５】
そして、これらの画像形成装置において、得られた画像データに電子透かしを埋め込む方策としては、
（１）電子透かしを埋め込む処理をハードウェア化して組み込む方法、
（２）ハードウェアの処理を分割して、量子化後の画像データを一旦出力し、透かし処理を施した後に可変長符号化を行う方法、
（３）符号化されたデータを一旦復号化し、この復号化されたデータに透かし処理を施した後に、再度、可変長符号化を行う方法（特許文献１）、
などが考えられる。
【非特許文献１】小林弘幸、野口祥宏、貴家仁志，「ＪＰＥＧ符号化列へのバイナリデータの埋込み法」，電子情報通信学会論文誌，２０００年６月，Vol.J83-DII No.6，ｐ．１４６９−１４７６
【非特許文献２】小野束著，「電子透かしとコンテンツ保護」，第１版，株式会社オーム社，平成１３年（２００１年）２月，ｐ．９２−９３
【特許文献１】特開２０００−１５１４１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、（１）の技術は、処理内容を一旦知られてしまうと、埋め込まれた透かし情報の除去や改ざんが容易になるだけでなく、透かし情報の除去等を簡単に繰り返すことができ、これを防止する観点からは、処理内容を柔軟に変更できるようにすることが望ましい。
【０００７】
また、（２）の技術は、符号化前のデータ量が多いため、必要となるメモリ容量が増大し、この容量増大はコストアップを招く。
【０００８】
（３）の技術は、全てのデータの復号化をソフトウェアによって行うため、実用的な処理速度を得るのは困難である。
【０００９】
本発明は上記事情に鑑みなされたものであって、処理内容を柔軟に変更することができ、コストの上昇を招くことがなく、処理速度の点でも実用上問題とならない符号化装置および符号化方法並びに画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の符号化装置、符号化方法および画像形成装置は、空間周波数成分に変換後のデータであって、かつ可変長符号化する前のデータを、中間データ化手段などの所定の変換処理によって中間データに変換し、この中間データに対して可変長符号化を施すことで、中間データ化する変換処理の処理内容を容易に変更可能としつつ、中間データ化によって、必要となるメモリ容量の増大を抑え、しかも、変換処理としては、符号化処理全体ではなく、中間データ化する部分のみを、ソフトウェアあるいはハードウェアによって実現する構成であるため、符号化処理全体をソフトウェアによって実現する構成において生じる処理速度の非実用性という問題を回避するものである。
【００１１】
すなわち、本発明の請求項１に係る符号化装置は、画像データを所定のブロックに分割し、このブロックごとに空間周波数成分に変換し、この変換処理により得られた空間周波数成分の係数を可変長符号化して符号化データを得る符号化装置において、前記可変長符号化前の係数データを所定の中間データへ変換する中間データ化手段と、前記中間データを出力する中間データ出力手段と、を備えたことを特徴とする。
【００１２】
このように構成された請求項１に係る符号化装置によれば、空間周波数成分に変換後のデータであって、かつ可変長符号化する前のデータを、中間データ化手段が、所定の変換処理によって中間データに変換し、この得られた中間データは、中間データ出力手段によって外部に一旦出力されてメモリ等に格納される。
【００１３】
そして、中間データが、ソフトウェア処理に好適な形式のデータとされていることによって、後の可変長符号化の対象を、この中間データとすることで、処理の柔軟性を確保することができる。
【００１４】
すなわち、中間データ化する変換処理の処理内容は容易に変更することができるため、変換処理の内容が一旦知られたとしても、処理内容を変更することで、変更後の変換処理内容が解析されるまでの期間、処理内容の秘匿性を確保することができる。
【００１５】
しかも、内容を解析される前に、処理内容を適時変更することで、解析の可能性を極めて低くすることができ、攻撃者の解析意欲を低減させる抑止力とすることもできる。
【００１６】
また、中間データ化によって、必要となるメモリ容量の増大を抑え、しかも、変換処理としては、符号化処理全体ではなく、中間データ化する部分のみで済むため、符号化処理全体をソフトウェアによって実現する構成において生じる処理速度の非実用性という問題を回避することができる。したがって、電子透かしなどの処理を高速に行うことができる。
【００１７】
また、本発明の請求項２に係る符号化装置は、請求項１に係る符号化装置において、前記中間データを入力する中間データ入力手段と、入力された中間データを可変長符号化して出力する中間データ符号化手段と、を備えたことを特徴とする。
【００１８】
ここで、中間データ符号化手段は、周波数成分の係数に対して可変長符号化すべく元々備えられている手段（符号化手段）が、その機能を兼用するものであってもよい。
【００１９】
このように構成された請求項２に係る符号化装置によれば、中間データ出力手段から出力されて中間データ入力手段に入力された中間データは、中間データ符号化手段によって、周波数成分の係数に対して可変長符号化されるため、最終的には、従来の符号化装置と同様に、可変長符号化された符号化データを得ることができる。
【００２０】
なお、中間データは、中間データ出力手段によって外部に一旦取り出すことができるため、この中間データに対して外部で、さらなる処理を施した上で、中間データ入力手段に入力することもできる。したがって、可変長符号化前に、中間データへの変換処理と外部での処理という２段階の処理を経るため、生成された符号化データから元の原画像データが解析されるのに抗する耐性を向上させることもできる。
【００２１】
また、本発明の請求項３に係る符号化装置は、請求項２に係る符号化装置において、前記中間データには、読込終了位置の情報を設定可能で、起動ごとに該読込終了位置までの処理を継続して行うことを特徴とする。
【００２２】
このように構成された請求項３に係る符号化装置によれば、中間データに読込終了位置の情報を設定することができ、読込終了位置までの中間データを専用の処理手段により可変長符号化するように構成されているので、電子透かしなどの処理を行う際に、専用の処理手段による可変長符号化を並列に処理することができ、処理を高速化することができる。
【００２３】
また、本発明の請求項４に係る符号化装置は、請求項１から３のうちいずれか１項に係る符号化装置において、前記中間データには、前記ブロックの座標位置の情報を含むことを特徴とする。
【００２４】
このように構成された請求項４に係る符号化装置によれば、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データの座標位置情報を容易に判断できるため、処理を高速化することができる。
【００２５】
また、本発明の請求項５に係る符号化装置は、請求項１から３のうちいずれか１項に係る符号化装置において、前記中間データには、前記ブロックのコンポーネント種別の情報を含むことを特徴とする。
【００２６】
このように構成された請求項５に係る符号化装置によれば、中間データにブロックのコンポーネント種別の情報を含むように構成されているため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データのブロックのコンポーネント種別の情報を容易に判断でき、処理を高速化することができる。
【００２７】
また、本発明の請求項６に係る符号化装置は、請求項１から３のうちいずれか１項に係る符号化装置において、前記中間データには、前記複数のブロックのうち所定のブロックに対応する中間データのデータサイズの情報を含むことを特徴とする。
【００２８】
このように構成された請求項６に係る符号化装置によれば、中間データにデータサイズの情報を含むように構成されているため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データを高速に検索することができ、処理を高速化することができる。
【００２９】
また、本発明の請求項７に係る符号化装置は、請求項１から３のうちいずれか１項に係る符号化装置において、前記中間データには、０値についてのランレングスの情報を含むことを特徴とする。
【００３０】
このように構成された請求項７に係る符号化装置によれば、中間データに０値のランレングスの情報を含むように構成されているので、出力される中間データのデータ量を低減することができ、これによりデータが記憶されるメモリ容量を小さくしてコストを低減することができる。
【００３１】
さらに、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データを高速に検索することができ、処理を高速化することができる。
【００３２】
また、本発明の請求項８に係る符号化装置は、請求項１から３のうちいずれか１項に係る符号化装置において、前記中間データには、所定量の無効データを含むことを特徴とする。
【００３３】
ここで、所定量とは、予め設定された量を含む意味である。
【００３４】
このように構成された請求項８に係る符号化装置によれば、中間データに所定量（予め設定された量の場合を含む）の無効データを含むように構成されているので、電子透かしなどを付加する等の処理を行う際に、柔軟な処理を高速に行うことができる。
【００３５】
本発明に係る画像形成装置は、入力された画像に基づいて画像データを形成する画像データ形成手段と、前記画像データに基づいて符号化データを得る符号化装置とを備えた画像データ形成装置において、前記符号化装置として、本発明に係る符号化装置を適用したことを特徴とする。
【００３６】
ここで、画像形成装置としては、例えば、デジタルカメラ、ファクシミリ、複写機、カメラ付き携帯電話機、カメラ付き携帯情報端末装置などであるが、その他の装置においても、カメラ機能を有し、画像データを取得することができるものであれば、適用することができる。
【００３７】
このように構成された本発明に係る画像形成装置によれば、備えられた符号化装置が、上述した本発明に係る符号化装置であるため、各符号化装置に対応した作用効果を発揮することができる。
【００３８】
また、本発明の請求項１０に係る符号化方法は、画像データを所定のブロックに分割し、このブロックごとに空間周波数成分に変換し、この変換処理により得られた空間周波数成分の係数を可変長符号化して符号化データを得る符号化方法において、前記可変長符号化前の係数データを所定の中間データへ変換し、前記中間データを出力することを特徴とする。
【００３９】
このように構成された請求項１０に係る符号化方法によれば、空間周波数成分に変換後のデータであって、かつ可変長符号化する前のデータを、所定の変換処理によって中間データに変換し、この得られた中間データは、外部に一旦出力されてメモリ等に格納される。
【００４０】
そして、中間データが、ソフトウェア処理に好適な形式のデータとされていることによって、後の可変長符号化の対象を、この中間データとすることで、処理の柔軟性を確保することができる。
【００４１】
すなわち、中間データ化する変換処理の処理内容は容易に変更することができるため、変換処理の内容が一旦知られたとしても、処理内容を変更することで、変更後の変換処理内容が解析されるまでの期間、処理内容の秘匿性を確保することができる。
【００４２】
しかも、内容を解析される前に、処理内容を適時変更することで、解析の可能性を極めて低くすることができ、攻撃者の解析意欲を低減させる抑止力とすることもできる。
【００４３】
また、中間データ化によって、必要となるメモリ容量の増大を抑え、しかも、変換処理としては、符号化処理全体ではなく、中間データ化する部分のみで済むため、符号化処理全体をソフトウェアによって実現する構成において生じる処理速度の非実用性という問題を回避することができる。したがって、電子透かしなどの処理を高速に行うことができる。
【００４４】
また、本発明の請求項１１に係る符号化方法は、請求項１０に係る符号化方法において、前記中間データの入力を受け、この入力された中間データを可変長符号化して出力することを特徴とする。
【００４５】
ここで、中間データ符号化は、周波数成分の係数に対して可変長符号化する処理手順を、対象を代えてそのまま実行するものであってもよい。
【００４６】
このように構成された請求項１１に係る符号化方法によれば、一旦出力された後に入力された中間データは、周波数成分の係数に対して可変長符号化されるため、最終的には、従来の符号化方法と同様に、可変長符号化された符号化データを得ることができる。
【００４７】
なお、中間データは、外部に一旦取り出すことができるため、この中間データに対して外部で、さらなる処理を施した上で、入力することもできる。したがって、可変長符号化前に、中間データへの変換処理と外部での処理という２段階の処理を経るため、生成された符号化データから元の原画像データが解析されるのに抗する耐性を向上させることもできる。
【００４８】
また、本発明の請求項１２に係る符号化方法は、請求項１１に係る符号化方法において、前記中間データには、読込終了位置の情報を設定可能で、起動ごとに該読込終了位置までの処理を継続して行うことを特徴とする。
【００４９】
このように構成された請求項１２に係る符号化方法によれば、中間データに読込終了位置の情報を設定することができ、読込終了位置までの中間データを専用の処理手段により可変長符号化するように構成されているので、電子透かしなどの処理を行う際に、専用の処理手段による可変長符号化を並列に処理することができ、処理を高速化することができる。
【００５０】
また、本発明の請求項１３に係る符号化方法は、請求項１０から１２のうちいずれか１項に係る符号化方法において、前記中間データには、前記ブロックの座標位置の情報を含むことを特徴とする。
【００５１】
このように構成された請求項１３に係る符号化方法によれば、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データの座標位置情報を容易に判断できるため、処理を高速化することができる。
【００５２】
また、本発明の請求項１４に係る符号化方法は、請求項１０から１２のうちいずれか１項に係る符号化方法において、前記中間データには、前記ブロックのコンポーネント種別の情報を含むことを特徴とする。
【００５３】
このように構成された請求項１４に係る符号化方法によれば、中間データにブロックのコンポーネント種別の情報を含むように構成されているため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データのブロックのコンポーネント種別の情報を容易に判断でき、処理を高速化することができる。
【００５４】
また、本発明の請求項１５に係る符号化方法は、請求項１０から１２のうちいずれか１項に係る符号化方法において、前記中間データには、前記複数のブロックのうち所定のブロックに対応する中間データのデータサイズの情報を含むことを特徴とする。
【００５５】
このように構成された請求項１５に係る符号化方法によれば、中間データにデータサイズの情報を含むように構成されているため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データを高速に検索することができ、処理を高速化することができる。
【００５６】
また、本発明の請求項１６に係る符号化方法は、請求項１０から１２のうちいずれか１項に係る符号化方法において、前記中間データには、０値についてのランレングスの情報を含むことを特徴とする。
【００５７】
このように構成された請求項１６に係る符号化方法によれば、中間データに０値のランレングスの情報を含むように構成されているので、出力される中間データのデータ量を低減することができ、これによりデータが記憶されるメモリ容量を小さくしてコストを低減することができる。
【００５８】
さらに、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データを高速に検索することができ、処理を高速化することができる。
【００５９】
また、本発明の請求項１７に係る符号化方法は、請求項１０から１２のうちいずれか１項に係る符号化方法において前記中間データには、所定量の無効データを含むことを特徴とする。
【００６０】
ここで、所定量とは、予め設定された量を含む意味である。
【００６１】
このように構成された請求項１７に係る符号化方法によれば、中間データに所定量（予め設定された量の場合を含む）の無効データを含むように構成されているので、電子透かしなどを付加する等の処理を行う際に、柔軟な処理を高速に行うことができる。
【発明の効果】
【００６２】
本発明に係る符号化装置、符号化方法および画像形成装置によれば、中間データが、ソフトウェア処理に好適な形式のデータとされていることによって、後の可変長符号化の対象を、この中間データとすることで、処理の柔軟性を確保することができる。
【００６３】
しかも、内容を解析される前に、処理内容を適時変更することで、解析の可能性を極めて低くすることができ、攻撃者の解析意欲を低減させる抑止力とすることもできる。
【００６４】
また、中間データ化によって、必要となるメモリ容量の増大を抑え、しかも、変換処理としては、符号化処理全体ではなく、中間データ化する部分のみで済むため、符号化処理全体をソフトウェアによって実現する構成において生じる処理速度の非実用性という問題を回避することができる。したがって、電子透かしなどの処理を高速に行うことができる。
【発明を実施するための最良の形態】
【００６５】
以下、本発明に係る画像形成装置の最良の実施の形態について、図面を用いて説明する。
【００６６】
図１は、本発明の画像形成装置の一実施形態としてのデジタルスチルカメラ１を表すブロック図である。以下、このデジタルスチルカメラ１により、デジタル画像データのブロックごとの空間周波数成分に対応した係数（ＤＣＴ係数）を量子化した後であって、可変長符号化する前の段階で中間データを生成し、この中間データをソフトウェアのみで処理する例（実施例１）と、出力された中間データをソフトウェアで操作した後、再度、ハードウェア（符号化装置）で処理する例（実施例２）とについて説明する。
【００６７】
図１に示したデジタルスチルカメラ１は、デジタルスチルカメラ１全体の制御を行うために設けられたＣＰＵ、フラッシュメモリ、ＳＤＲＡＭ、タイマ等からなるシステム制御部２と、撮像のために設けられた、光学系部品（レンズおよびレンズ駆動モータ）、ＣＣＤ、ＣＣＤ駆動回路、Ａ／Ｄ変換器等からなる撮像部３と、撮像部３で得られた画像信号に種々の画像処理を施すとともに、撮像部３のＣＣＤ駆動タイミング、レンズ駆動モータを制御して、ズーミング、フォーカシング、露出調整等を行い、また、画像のJPEG圧縮およびJPEG伸長を行うために設けられた画像処理用ＬＳＩ、メモリ等からなる画像処理部４と、画像を表示し、また、ユーザーインターフェイスのためのグラフィックを表示するために設けられたＬＣＤ６と、画像処理部４で処理された画像信号をＬＣＤ６へ表示するための信号処理を行い、また、ユーザーインターフェイスのための種々のグラフィック画像を生成し、ＬＣＤ６へ表示するために設けられたＤ／Ａ変換器、オンスクリーンディスプレイコントローラ等からなる表示制御部５と、記録メディアとのインターフェイスのために設けられたメモリカードコントローラ等からなる記録メディアインターフェイス部７と、圧縮された画像信号や画像に纏わる種々の情報を記憶するために設けられた、フラッシュメモリ等からなる、デジタルスチルカメラ１から着脱可能な記録メディア８と、図示されていないキー、ダイアル等のユーザーインターフェイスの状態検出を行い、またメインＣＰＵへの主電源制御を行うために設けられたサブＣＰＵ等からなるハードキーインターフェイス部９と、各種通信モジュールを接続してデータ通信を行うために設けられた、通信カードコントローラ等からなる、通信インターフェイス部１０と、デジタルスチルカメラ１をＵＳＢで接続し、デジタルスチルカメラ１からの画像を転送して再生する画像再生装置１１とを備えている。
【００６８】
まず、従来の撮影動作について説明する。使用者は、撮影に先立って、図示されていない種々のキーやダイヤルを操作して、撮影動作モード（連写撮影モード、通常撮影モード等）を決定する。使用者による操作内容は、ハードキーインターフェイス部９を通じて、システム制御部２により判別される。
【００６９】
システム制御部２は、操作に応じて、表示制御部５にガイダンスグラフィックを生成して、利用者に次の操作を促す。
【００７０】
システム制御部２は、撮影動作モードが決定されると、画像処理部４に対して、モードに応じた処理パラメータを設定する。
【００７１】
撮影の準備が整った後、システム制御部２は、撮像部３および画像処理部４を起動し、撮像部３は画像処理部４からの制御に従い、実際の撮影に先だって、モニタリング画像を表示するための撮像動作を開始する。
【００７２】
そして、撮像された画像データは連続的に画像処理部４へ送られ、画像処理部４は画像データに対して、色空間変換、ガンマ補正、ホワイトバランス調整などの処理を施した後、表示制御部５へ送る。
【００７３】
また、このとき同時に、画像処理部４は、露出の検出を行い、撮像部３を制御して調整を行う。
【００７４】
表示制御部５は、画像データを信号処理して、この画像データに対応した可視画像としてＬＣＤ６に表示し、利用者に撮像状態を提示する。
【００７５】
図示されていないレリーズボタンの半押し状態が検出されると、その操作はモード設定と同様にしてハードキーインターフェイス部９を通じてシステム制御部２で判別される。
【００７６】
システム制御部２は、画像処理部４を制御し、画像処理部４はモニタリング画像からオートフォーカス（ＡＦ）制御のための評価値を抽出し、所定のアルゴリズムに従って撮像部３を制御してフォーカス調整を行う。
【００７７】
図示されていないズームボタンが押されると、その操作は同様にしてハードキーインターフェイス部９を通じてシステム制御部２により判別される。システム制御部２は、撮像部３を制御して、入力された方向へのズーム動作を行なわせる。
【００７８】
図示されていないレリーズボタンが押されると、その操作は同様にしてハードキーインターフェイス部９を通じてシステム制御部２で判別される。システム制御部２は、設定されている撮影動作モードにしたがい、画像処理部４を制御して撮影動作を開始する。
【００７９】
撮像部３は、画像処理部４からの制御にしたがって所定の画像を取り込み、これを画像処理部４へ送り、画像処理部４は、撮影動作モードに応じた画像処理、圧縮処理を行う。
【００８０】
またこのとき、画像データから縮小画像データを生成、圧縮してサムネイルデータも作成する。
【００８１】
通常の撮影動作モードの場合には、１フレーム分の画像の取込みと処理で終了する。連写モードの場合には、レリーズボタンの解除が検出されるまで、所定のフレームレートで画像の取込みと処理を繰り返し行う。
【００８２】
システム制御部２は、圧縮された画像データおよびサムネイルデータを読み出し、さらにヘッダー情報を付加した後、記録メディアインターフェイス部７を通じて記録メディア８へ書き込む。なお、ヘッダー情報には、選択された撮影動作モードの情報や撮影日時の情報等が含まれている。以上で一連の撮影動作を完了する。
【００８３】
次に、画像処理部４の詳細な構成について、図２を参照して説明する。
【００８４】
画像処理部４は、システム制御部２の指示により、前述した各種駆動信号を撮像部３へ送出する撮像制御部１００と、撮像部３からの画像信号を受け取り、システム制御部２からの設定に基づいて、前述した色空間変換、ガンマ補正、ホワイトバランス調整などの処理を行う画像変換部１０１と、JPEG圧縮処理を行うJPEGエンコーダ１０２と、JPEG伸長処理を行うJPEGデコーダ１０３と、各モジュールからのアクセスを調停しながら、メモリ１０５へのアクセスを行うメモリコントローラ１０４と、画像データ、符号データを蓄積するメモリ１０５とを備えた構成である。
【００８５】
さらに、JPEGエンコーダ１０２は、図３に示すように、画像データを垂直方向８画素×水平方向８画素の大きさ（６４画素）のブロックに分割し、得られたブロックごとの画像データを、該ブロックごとに空間周波数成分に変換すべくＤＣＴ変換を行い、ＤＣＴ係数を求めるＤＣＴ変換処理部２００（ブロック分割手段および周波数変換手段）と、ＤＣＴ係数に対して、所定の量子化テーブルにしたがって量子化処理を施す量子化処理部２０１と、量子化された係数をハフマンテーブルに基づいてハフマン符号化（可変長符号化）するハフマン符号化処理部２０２（符号化手段）とを備えている。
【００８６】
なお、ブロック毎の画像データのメモリ１０５からの読出しは、システム制御部２によって設定された画像データの配置情報（各色成分（Ｙ，Ｕ，Ｖ）の先頭アドレス、水平サイズ、垂直サイズ）に基づいて、メモリコントローラ１０４により行われる。
【００８７】
また、ハフマン符号化処理部２０２において、各係数はジグザグスキャン順に符号化され、符号化されたデータのメモリ１０５への書出しは、システム制御部２によって設定された先頭アドレスに基づいて、メモリコントローラ１０４によりバイト単位で行われる。
【００８８】
なお、ＭＣＵの境界、各ブロックの境界のタイミングも、係数データと併せて、ハフマン符号化処理部２０２に伝達される。
【実施例１】
【００８９】
本実施例１においては、上述したJPEGエンコーダ１０２が図４に示したJPEGエンコーダ１０２′（符号化装置）として構成されており、さらに、ハフマン符号化前の係数データを所定の中間データへ変換する中間データ化手段とこの中間データを出力する中間データ出力手段とを機能的に兼ねた中間データ生成部３０３を有している。
【００９０】
なお、ＤＣＴ変換処理部３００は図３に示したＤＣＴ変換処理部２００に、量子化処理部３０１は図３に示した量子化処理部２０１に、ハフマン符号化処理部３０２は図３に示したハフマン符号化処理部２０２に、それぞれ対応している。
【００９１】
この中間データ生成部３０３は、量子化処理部３０１から係数データと、ＭＣＵ（Minimum Coded Unit；圧縮伸長の最小単位）の境界、各ブロックの境界のタイミングを受けて、ソフトウェア処理に好適な形で中間データを生成するが、この中間データは、係数データと所定のＴＡＧ情報とからなり、本実施例においては、連続する１６ビット長のデータである。
【００９２】
図６に、ＴＡＧ情報の一覧を示す。図６において、ＴＡＧ０は、続いて出力される中間データのＭＣＵごとのＸ座標（図面の右方向へ延びる座標）を示すＴＡＧであり、ＭＣＵごとの中間データの先頭で出力される。
【００９３】
ＴＡＧ１は、同様にしてＹ座標（画像の下方向へ延びる座標）を示すＴＡＧであり、ＴＡＧ０に続いて出力される。
【００９４】
ＴＡＧ２は、ＴＡＧ２の位置から次のＭＣＵの先頭（次のＴＡＧ０）までの中間データのワード数を示すＴＡＧであり、ＴＡＧ１に続いて出力される。
【００９５】
ＴＡＧ３は、ＭＣＵ内の各コンポーネント（ブロック）を識別するＩＤと、ＴＡＧ３から次のコンポーネント（ＴＡＧ３）までの中間データのワード数を示すＴＡＧであり、コンポーネント毎の中間データの先頭で出力される。
【００９６】
コンポーネントＩＤは、サブサンプリング形式により、下表に示すように割り当てられる。
＜サブサンプリング形式  成分  ＩＤ＞
ＹＣｂＣｒ４２２      Ｙ(0)  ０
Ｙ(1)  １
Ｃｂ   ２
Ｃｒ   ３
---------------------------------
ＹＣｂＣｒ４２０    Ｙ(0,0)  ０
Ｙ(1,0)  １
Ｙ(0,1)  ２
Ｙ(1,1)  ３
Ｃｂ     ４
Ｃｒ     ５
---------------------------------
このように構成された実施例１によれば、ＴＡＧ０〜ＴＡＧ３（ＭＣＵごとのＸ座標およびＹ座標（座標位置情報）、ＭＣＵの先頭（次のＴＡＧ０）までの中間データのワード数（データサイズ）、並びに、ＭＣＵ内の各コンポーネント（ブロック）を識別するＩＤおよび中間データのワード数（データサイズ））を検索対象に含めることにより、後述するソフトウェア処理において、操作を行おうとする対象の画像位置やコンポーネントを容易に検索することができる。
【００９７】
ＴＡＧ４は、係数の連続するゼロ値の数をカウントした結果（０値についてのランレングスの情報）を示すＴＡＧであり、１つ以上のゼロ値の係数があった場合に、その係数に代わって出力される。一般的に、量子化後の係数は０値を多く含んでいるため、ＴＡＧ４により出力される中間データのデータ量を低減させることができる。
【００９８】
ＴＡＧ５は、ダミーの中間データ（所定量の無効データ）を示すＴＡＧであり、予めシステム制御部２から中間データ生成部３０３に設定された値にしたがい、各コンポーネントごとに設定された数だけ出力される。
【００９９】
ＴＡＧ５によって、後述するソフトウェア処理において、データの追加挿入を容易（他の部分のメモリの移動を行わずに）に行うことができる。なお、システム制御部２から設定される値は、後述するソフトウェア処理の内容に応じて、予めシステムに登録されている。
【０１００】
ＴＡＧ６は、後述する実施例２で用いられるＴＡＧであり、後に詳説する。
【０１０１】
なお、係数データは、−２０４８〜２０４７（０ｘ００００〜０ｘ０７ＦＦ、０ｘＦ８００〜０ｘＦＦＦＦ）の範囲内のデータであるため、ＴＡＧデータと重複することはない。
【０１０２】
以下、この動作について、図７，８のフローチャートを参照して説明する。
【０１０３】
ここで、ｍは、いくつめのＭＣＵであるかを計数するＭＣＵカウンタである。ｃは、ＭＣＵ内のいくつめのコンポーネント（ブロック）であるかを計数するコンポーネントカウンタであり、この値がＴＡＧ３のＩＤに設定される。
【０１０４】
ＣＭは、ＭＣＵ内のワード数を計数するＭＣＵワードカウンタであり、この値がＴＡＧ２のＳＭに設定される。ＣＣは、コンポーネント（ブロック）内のワード数を計数するコンポーネントカウンタであり、この値がＴＡＧ３のＳＢに設定される。
【０１０５】
ＣＫは、係数の連続するゼロ値の数を計数するゼロランカウンタであり、この値がＴＡＧ４のＲＵＮに設定される。
【０１０６】
まず、JPEGエンコーダが起動されると、中間データ生成部３０１は内部データを初期化し（ステップ５００）、量子化器３０１からの係数値、およびＭＣＵの境界、各ブロックの境界のタイミングの通知をそれぞれ受け取る。
【０１０７】
中間データ生成部３０３は、ＭＣＵごとに中間データ生成部３０３内のバッファメモリに中間データを設定し、ＭＣＵごとにメモリコントローラ１０４を起動して、バッファメモリ内の中間データをメモリ１０５へ書き出す。
【０１０８】
ＭＣＵの境界が通知されると（ステップ５０１）、前述したＴＡＧ０，ＴＡＧ１，ＴＡＧ２を設定するとともに、前述したカウンタデータを初期化、更新する（ステップ５０４）。なお、ＴＡＧ２のデータはこの時点では確定せず、仮にダミーデータを設定し、次回のＭＣＵの処理の開始時に行われるＭＣＵ終了処理（ステップ５０３）において更新する。
【０１０９】
ＭＣＵの終了処理は、図８（ａ）に示すように、まず最後のコンポーネントの終了処理を行い（ステップ５１６）、ＴＡＧ２データを確定し（ステップ５１７）、メモリへ出力する（ステップ５１８）。コンポーネントの終了処理については後述する。
【０１１０】
コンポーネントの境界が通知されると（ステップ５０５）、ＴＡＧ３を設定するとともに、カウンタデータを初期化、更新する（ステップ５０８）。なお、ＴＡＧ３のデータはこの時点では確定せず、仮にダミーデータを設定し、次回のコンポーネントあるい次回のＭＣＵの処理の開始時に行われるコンポーネント終了処理（ステップ５０７，ステップ５１６）において更新する。
【０１１１】
コンポーネントの終了処理は、図８（ｂ）に示すように、まずゼロランカウンタＣＫをチェックし（ステップ５１９）、未設定のＴＡＧ４があればそれを設定してカウンタを初期化する（ステップ５２０）。また、所定数のＴＡＧ５を設定し（ステップ５２１）、ＴＡＧ３データを確定する（ステップ５２２）。
【０１１２】
係数が０値の場合（ステップ５０９）は、カウンタを更新する（ステップ５１０）。係数が０値でない場合、係数データを設定する（ステップ５１３）とともに、ゼロランカウンタＣＫをチェックし（ステップ５１１）、未設定のＴＡＧ４があれば、そのＴＡＧ４を設定してカウンタを初期化する（ステップ５１２）。
【０１１３】
以上の動作を最後のデータまで繰り返し行い（ステップ５１４）、最終ＭＣＵのデータを出力して（ステップ５１５）、動作を終了する。
【０１１４】
システム制御部２は、メモリ１０５に展開された中間データをメモリコントローラ１０４を介してアクセスし、従来の技術による電子透かしなどの処理を行うとともに、ハフマン符号化の処理を行い、圧縮された画像データを生成する。なお、電子透かしなどの処理は利用者の設定に応じて、通常動作と切り替えて使用することができる。
【０１１５】
このように、本実施例１に係る符号化装置（JPEGエンコーダ１０２′）によれば、中間データが、ソフトウェア処理に好適な形式のデータとされていることによって、後のハフマン符号化処理の対象を、この中間データとすることで、処理の柔軟性を確保することができる。しかも、処理内容を容易に適時変更することができる。
【０１１６】
また、中間データ化によって、必要となるメモリ１０５の容量の増大を抑え、しかも、変換処理としては、符号化処理全体ではなく、中間データ化する部分のみで済むため、符号化処理全体をソフトウェアによって実現する構成において生じる処理速度の非実用性という問題を回避することができる。したがって、電子透かしなどの処理を高速に行うことができる。
【０１１７】
なお、中間データは、画像処理部４の外部に一旦取り出すことができるため、この中間データに対して外部で、さらなる処理を施した上で、再入力することもできる。したがって、ハフマン符号化前に、中間データへの変換処理と外部での処理という２段階の処理を経るため、生成された符号化データから元の原画像データが解析されるのに抗する耐性を向上させることもできる。
【０１１８】
また、中間データには、読込終了位置の情報を設定可能で、起動ごとに読込終了位置までの処理を継続して行い、読込終了位置までの中間データをハフマン符号化処理部３０２で可変長符号化するように構成されているので、電子透かしなどの処理を行う際に、専用のハフマン符号化処理部３０２による可変長符号化を並列に処理することができ、処理を高速化することができる。
【０１１９】
また、中間データには、ブロックの座標位置の情報を含むため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データの座標位置情報を容易に判断でき、処理を高速化することができる。
【０１２０】
同様に、中間データには、ブロックのコンポーネント種別の情報（ＩＤ等に基づいて識別可能）を含むため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データのブロックのコンポーネント種別の情報を容易に判断でき、処理を高速化することができる。
【０１２１】
さらに、中間データには、中間データのデータサイズの情報を含むため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データ高速に検索することができ、この観点からも、処理を高速化することができる。
【０１２２】
また、中間データには、０値についてのランレングスの情報を含むため、出力される中間データのデータ量を低減することができ、これによりデータが記憶されるメモリ容量を小さくしてコストを低減することができる。
【０１２３】
さらに、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データ高速に検索することができ、処理を高速化することができる。
【０１２４】
また、中間データには、所定量の無効データを含むため、電子透かしなどを付加する等の処理を行う際に、柔軟な処理を高速に行うことができる。
【０１２５】
なお、画像形成装置としてのデジタルスチルカメラ１は、入力された画像に基づいて画像データを形成する撮像部３（画像データ形成手段）と、この画像データに基づいて符号化データを得る画像処理部４（符号化装置）とを備え、この画像処理部４は上述した本発明の符号化装置の実施形態として作用するため、画像処理部４が奏する効果を、カメラ１としてもそのまま発揮することができる。
【０１２６】
なお、デジタルスチルカメラ１に代えて、ファクシミリ、複写機、カメラ付き携帯電話機、カメラ付き携帯情報端末装置などの画像形成装置にも、同様に適用することができる。
【実施例２】
【０１２７】
本実施例２においては、上述したJPEGエンコーダ１０２が図５に示したJPEGエンコーダ１０２″として構成されており、外部から中間データを入力する中間データ入力手段としての中間データ読取部４０４と、この中間データ読取部４０４に入力された中間データに対してハフマン符号化処理（可変長符号化処理）して出力する中間データ符号化手段としてのハフマン符号化処理部４０２とを備えている。
【０１２８】
ここで、中間データ符号化手段としてのハフマン符号化処理部４０２は、元々備えられている符号化手段としての、図３におけるハフマン符号化処理部２０２がその機能を兼ねたものである。
【０１２９】
なお、ＤＣＴ変換処理部４００は図３に示したＤＣＴ変換処理部２００に、量子化処理部４０１は図３に示した量子化処理部２０１に、ハフマン符号化処理部４０２は図３に示したハフマン符号化処理部２０２に、中間データ生成部４０３は図４に示した中間データ生成部３０３に、それぞれ対応している。
【０１３０】
システム制御部２は、前述したように、メモリ１０５に展開された中間データをメモリコントローラ１０４を介してアクセスし、従来の技術による電子透かしなどの処理を行う。その際、システム制御部２による中間データの操作と、処理の完了した途中までの中間データのハフマン符号化とを並行して行うことにより、高速に処理を行うことができる。
【０１３１】
システム制御部２は、処理の完了した途中の中間データ位置に、図６に示したＴＡＧ６の操作終了コードを書き込む。書込み位置に元々格納されていたデータは、ＴＡＧ５のデータであってもよいし、処理によって無効にしようとする係数データであってもよい。
【０１３２】
システム制御部２は、中間データ読取部４０４を起動した後に、中間データの操作の処理を継続し、所定量の処理が完了した時点で、ＴＡＧ６のサイドの書込みと中間データ読取部４０４の起動を行い、以後、データの終了まで繰り返す。
【０１３３】
以下、この動作について、図９のフローチャートを参照して説明する。
【０１３４】
中間データ読取部４０４は、起動されると、まずメモリコントローラ１０４を介してメモリ１０５から中間データを１ワード読み込む（ステップ６００）。
【０１３５】
そして、読み取った中間データがＴＡＧであるかどうかを判定し（ステップ６０１）、ＴＡＧデータでなければ係数データとしてハフマン符号化処理部４０２へ出力する（ステップ６０９）。
【０１３６】
一方、ＴＡＧデータであった場合、ＴＡＧ０であればＭＣＵ境界の通知をハフマン符号化処理部４０２へ出力し（ステップ６０２，６０３）、ＴＡＧ３であればブロック境界の通知をハフマン符号化処理部４０２へ出力する（ステップ６０４，６０５）。
【０１３７】
また、ＴＡＧ４の場合には、ＲＵＮに指定されている数の０値を係数データとしてハフマン符号化処理部４０２へ出力する（ステップ６０６）。
【０１３８】
以上の処理を、ＴＡＧ６が出現するまで繰り返し行い（ステップ６０８）、ＴＡＧ６が出現した時点で処理を終了する。
【０１３９】
このように、本実施例２に係る符号化装置（JPEGエンコーダ１０２″）によれば、中間データが、ソフトウェア処理に好適な形式のデータとされていることによって、後のハフマン符号化処理の対象を、この中間データとすることで、処理の柔軟性を確保することができる。しかも、処理内容を容易に適時変更することができる。
【０１４０】
また、中間データ化によって、必要となるメモリ１０５の容量の増大を抑え、しかも、変換処理としては、符号化処理全体ではなく、中間データ化する部分のみで済むため、符号化処理全体をソフトウェアによって実現する構成において生じる処理速度の非実用性という問題を回避することができる。したがって、電子透かしなどの処理を高速に行うことができる。
【０１４１】
なお、中間データは、画像処理部４の外部に一旦取り出すことができるため、この中間データに対して外部で、さらなる処理を施した上で、再入力することもできる。したがって、ハフマン符号化前に、中間データへの変換処理と外部での処理という２段階の処理を経るため、生成された符号化データから元の原画像データが解析されるのに抗する耐性を向上させることもできる。
【０１４２】
また、中間データ読取部４０４に入力された中間データは、ハフマン符号化処理部４０２によって周波数成分の係数に対して可変長符号化されるため、最終的には、従来の符号化装置と同様に、可変長符号化された符号化データを得ることができる。
【０１４３】
また、中間データには、読込終了位置の情報を設定可能で、起動ごとに読込終了位置までの処理を継続して行い、読込終了位置までの中間データをハフマン符号化処理部４０２で可変長符号化するように構成されているので、電子透かしなどの処理を行う際に、専用のハフマン符号化処理部４０２による可変長符号化を並列に処理することができ、処理を高速化することができる。
【０１４４】
また、中間データには、ブロックの座標位置の情報を含むため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データの座標位置情報を容易に判断でき、処理を高速化することができる。
【０１４５】
同様に、中間データには、ブロックのコンポーネント種別の情報（ＩＤ等に基づいて識別可能）を含むため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データのブロックのコンポーネント種別の情報を容易に判断でき、処理を高速化することができる。
【０１４６】
さらに、中間データには、中間データのデータサイズの情報を含むため、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データ高速に検索することができ、この観点からも、処理を高速化することができる。
【０１４７】
また、中間データには、０値についてのランレングスの情報を含むため、出力される中間データのデータ量を低減することができ、これによりデータが記憶されるメモリ容量を小さくしてコストを低減することができる。
【０１４８】
さらに、電子透かしなどを付加する等の処理を行う際に、処理対象の画像データ高速に検索することができ、処理を高速化することができる。
【０１４９】
また、中間データには、所定量の無効データを含むため、電子透かしなどを付加する等の処理を行う際に、柔軟な処理を高速に行うことができる。
【０１５０】
なお、画像形成装置としてのデジタルスチルカメラ１は、入力された画像に基づいて画像データを形成する撮像部３（画像データ形成手段）と、この画像データに基づいて符号化データを得る画像処理部４（符号化装置）とを備え、この画像処理部４は上述した本発明の符号化装置の実施形態として作用するため、画像処理部４が奏する効果を、カメラ１としてもそのまま発揮することができる。
【０１５１】
なお、デジタルスチルカメラ１に代えて、ファクシミリ、複写機、カメラ付き携帯電話機、カメラ付き携帯情報端末装置などの画像形成装置にも、同様に適用することができる。
【図面の簡単な説明】
【０１５２】
【図１】本発明の画像形成装置の一実施形態としてのデジタルスチルカメラを表すブロック図である。
【図２】図１に示したデジタルスチルカメラにおける画像処理部の詳細な構成を示すブロック図である。
【図３】図２に示した画像処理部における、従来の一般的なJPEGエンコーダの詳細な構成を示すブロック図である。
【図４】実施例１におけるJPEGエンコーダの詳細な構成を示すブロック図である。
【図５】実施例２におけるJPEGエンコーダの詳細な構成を示すブロック図である。
【図６】中間データに含まれるＴＡＧ情報の例を示す模式図である。
【図７】実施例１の処理を示すフローチャートである。
【図８】図７のフローチャートの一部であって、（ａ）はＭＣＵ終了処理を、（ｂ）はコンポーネント終了処理を、それぞれ詳細に示したフローチャートである。
【図９】実施例２の処理を示すフローチャートである。
【符号の説明】
【０１５３】
１０２′JPEGエンコーダ（符号化装置）
３００  ＤＣＴ変換処理部（周波数変換手段）
３０１  量子化処理部
３０２  ハフマン符号化処理部（符号化手段、中間データ符号化手段）
３０３  中間データ生成部（中間データ化手段、中間データ出力手段）
【図１】
2006333299.tif 000003
【図２】
2006333299.tif 000004
【図３】
2006333299.tif 000005
【図４】
2006333299.tif 000006
【図５】
2006333299.tif 000007
【図６】
2006333299.tif 000008
【図７】
2006333299.tif 000009
【図８】
2006333299.tif 000010
【図９】
2006333299.tif 000011