(57)【要約】【課題】周波数分解して得られた変換係数に対して、入力されるデータのビット長と出力されるデータのビット長とが異なる暗号化処理を行う場合に、暗号化の前と後との変換係数を格納するメモリのアドレス管理が容易な情報処理装置等を提供すること【解決手段】  原データを周波数分解して得られた複数の原変換係数を暗号化して暗号化変換係数を生成する暗号化手段と、前記原変換係数のビット数の最大値と前記暗号化変換係数のビット数の最大値とのうち何れか大なる値に基づいて、前記メモリにおける一の前記原変換係数が格納される領域のビット数と、前記メモリにおける一の前記暗号化変換係数が格納される領域のビット数とを、同数の領域ビット数として決定する領域ビット数決定手段と、前記領域ビット数に基づいて、前記原変換係数と前記暗号変換係数とが前記メモリに格納される際のアドレスを生成するアドレス生成手段と、を有する情報処理装置。【選択図】図１
2009049790.tif 000002
【特許請求の範囲】
【請求項１】
メモリに格納された原変換係数を読み出して暗号化を行う情報処理装置であって、
原データを周波数分解して得られた複数の前記原変換係数を暗号化して暗号化変換係数を生成する暗号化手段と、
前記原変換係数のビット数の最大値と前記暗号化変換係数のビット数の最大値とのうち何れか大なる値に基づいて、前記メモリにおける一の前記原変換係数が格納される領域のビット数と、前記メモリにおける一の前記暗号化変換係数が格納される領域のビット数とを、同数の領域ビット数として決定する領域ビット数決定手段と、
前記領域ビット数に基づいて、前記原変換係数と前記暗号変換係数とが前記メモリに格納される際のアドレスを生成するアドレス生成手段と、
を有する情報処理装置。
【請求項２】
前記アドレス生成手段は、前記一の原変換係数が暗号化された前記一の暗号化変換係数を前記メモリに格納する際のアドレスを、前記一の原変換係数が前記メモリに格納されていたアドレスとする請求項１記載の情報処理装置。
【請求項３】
メモリに格納された原変換係数を読み出して暗号化を行う情報処理方法であって、
原データを周波数分解して得られた複数の前記原変換係数を暗号化して暗号化変換係数を生成する暗号化ステップと、
前記原変換係数のビット数の最大値と前記暗号化変換係数のビット数の最大値とのうち何れか大なる値に基づいて、前記メモリにおける一の前記原変換係数が格納される領域のビット数と、前記メモリにおける一の前記暗号化変換係数が格納される領域のビット数とを、同数の領域ビット数として決定する領域ビット数決定ステップと、
前記領域ビット数に基づいて、前記原変換係数と前記暗号変換係数とを前記メモリに格納し、及び、前記原変換係数を前記メモリから読み出すメモリアクセスステップと、
を有する情報処理方法。
【請求項４】
請求項３記載の情報処理方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項５】
請求項４記載のコンピュータプログラムを格納したコンピュータ読取可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、情報記録媒体、及び、コンピュータプログラムに関する。
【背景技術】
【０００２】
従来から、画像や音声のデータ又はそれらのデータが圧縮された符号データを暗号化する技術がある。例えば、ＪＰＥＧ２０００規格ファミリーの中のＪＰＳＥＣと呼ばれる規格（非特許文献１参照。）には、周波数分解されて得られた変換係数や、エントロピー符号に対して、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）又はＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等の方式による暗号化を行った場合に、その暗号化の方式に係る情報を符号データ中にマーカとして含ませることが記載されている。
【０００３】
ところで、画像又は音声等が圧縮された符号データは、複数の構成要素を含んで構成され、全体のデータから最小の構成要素までの間に、複数の構成要素のクラスタを含む中間の構成要素が含まれる、所謂「入れ子」の構造を有している。そこで、構成要素毎に暗号鍵を異ならせると、多くの暗号鍵を管理する必要が生じ、鍵の管理が煩雑になる。
【０００４】
そこで、一の構成要素の鍵をもとに、他の構成要素の鍵を生成させることが考えられる。例えば、特開２００４−４０２４８号公報（特許文献１）には、解像度レベルの下位のパケットに対応した鍵をもとに、一方向性関数を用いて、解像度レベルの上位のパケットに対応する鍵を生成することが記載されている。
【０００５】
なお、パケットとは、ＪＰＥＧ２０００規格による符号データにおける最小の構成要素である。このＪＰＥＧ２０００規格では、パケットの並び順を定めるプログレッションオーダが複数あるため、パケットが再配置された場合にも、符号データの中の先頭に近い側に配されているパケットに係る鍵から、後方に配されているパケットに係る鍵が生成されるように鍵の生成順を定める必要がある。
【０００６】
特許文献１に記載の情報処理方法等によれば、一の解像度レベルのパケットを処理した後、次の解像度レベルのパケットの処理を行うまでの間、一の解像度レベルに対応する鍵を保持し管理する。これは、パケット毎に鍵を異ならせる場合には、解像度レベルがプログレッションオーダの外側に近いほど、鍵の管理が煩雑になることを意味する。
【０００７】
そこで、例えばパケットに含まれている変換係数毎に暗号化を行えば、パケットがいかなる順に並べ替えられたとしても、パケット内における変換係数の並び順は一意に定まるため、鍵の管理を容易にすることができる。
【特許文献１】特開２００４−４０２４８号公報
【非特許文献１】ＩＳＯ／ＩＥＣ  １５４４４−８  Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ  −  ＪＰＥＧ  ２０００  ｉｍａｇｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ：  Ｓｅｃｕｒｅ  ＪＰＥＧ  ２０００
【非特許文献２】ＩＳＯ／ＩＥＣ  １５４４４−１  ＪＰＥＧ  ２０００  ｉｍａｇｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ：  Ｃｏｒｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍ
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、パケットに含まれている変換係数は、必ずしも一定のビット長を有しているとは限らない。例えば、ＪＰＥＧ２０００規格においては、色変換処理やウェーブレット変換処理により、色コンポーネント間、又は、サブバンド間でビット長が異なり、さらに、ウェーブレット変換によるサブバンドのレベルによってもビット長が異なる。また、暗号化の処理によっては、暗号化後の出力データが入力データのビット長と異なることがある。
【０００９】
そこでこれらの変換係数をそのビット長に応じてメモリに格納すると、メモリからのデータの読み出しと書き込みとを行う際に、処理するデータが暗号化前の「原変換係数」なのか、暗号化後の「暗号化変換係数」なのかによってメモリ上のアドレス生成処理を異ならせることとなり、処理が煩雑になるという不具合があることを意味する。
【００１０】
本発明は、上記の点に鑑みて、これらの問題を解消するために発明されたものであり、周波数分解して得られた変換係数に対して、入力されるデータのビット長と出力されるデータのビット長とが異なる暗号化処理を行う場合に、暗号化の前と後との変換係数を格納するメモリのアドレス管理が容易な情報処理装置、情報処理方法、コンピュータプログラム、及び、情報記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の情報処理装置は次の如き構成を採用した。
【００１２】
本発明の情報処理装置は、メモリに格納された原変換係数を読み出して暗号化を行う情報処理装置であって、原データを周波数分解して得られた複数の前記原変換係数を暗号化して暗号化変換係数を生成する暗号化手段と、前記原変換係数のビット数の最大値と前記暗号化変換係数のビット数の最大値とのうち何れか大なる値に基づいて、前記メモリにおける一の前記原変換係数が格納される領域のビット数と、前記メモリにおける一の前記暗号化変換係数が格納される領域のビット数とを、同数の領域ビット数として決定する領域ビット数決定手段と、前記領域ビット数に基づいて、前記原変換係数と前記暗号変換係数とが前記メモリに格納される際のアドレスを生成するアドレス生成手段と、を有する構成とすることができる。
【００１３】
これにより、周波数分解して得られた変換係数に対して、入力されるデータのビット長と出力されるデータのビット長とが異なる暗号化処理を行う場合に、暗号化の前と後との変換係数を格納するメモリのアドレス管理が容易な情報処理装置を提供することができる。
【００１４】
なお、上記課題を解決するため、本発明は、さらに、上記情報処理装置が備える各手段の機能を実行させる情報処理方法、その情報処理方法をコンピュータに実行させるためのコンピュータプログラム、又は、それらのコンピュータプログラムを格納した情報記録媒体としてもよい。
【発明の効果】
【００１５】
本発明の情報処理装置、情報処理方法、コンピュータプログラム、及び、情報記録媒体によれば、周波数分解して得られた変換係数に対して、入力されるデータのビット長と出力されるデータのビット長とが異なる暗号化処理を行う場合に、暗号化の前と後との変換係数を格納するメモリのアドレス管理が容易な情報処理装置、その情報処理装置が備える各手段の機能を実行させる情報処理方法、その情報処理方法をコンピュータに実行させるためのコンピュータプログラムを提供することが可能になる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施の形態の説明に先んじて、本発明の実施の形態によって解決しようとする課題とその背景技術について、より詳細に説明する。
【００１７】
セキュリティーニーズの高まりに伴い、画像データを圧縮して生成する符号データ又は画像データを圧縮する際に生成する様々な係数データ等を暗号化することがある。例えば、ＪＰＥＧ２０００規格に定められる符号データのフォーマットにおいては、周波数分解後の変換係数や、その変換係数に対して可変長符号化処理等を行って生成するエントロピー符号に対して、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等の暗号化を施し、それらの暗号化がなされていることを示すシグナルを符号データ中にマーカとして入れてよいことが定められている。
【００１８】
ＪＰＥＧ２０００規格による符号データは、パケットと呼ばれる符号の単位をプログレッションオーダ順に並べたものである。そこで例えば、パケット毎のエントロピー符号を、パケット毎に対応する個別の暗号キーを用いて暗号化することができる。この場合、パケットとキーは１対１に対応づけられ、暗号化を行う側及び暗号を復号する側では、多くの暗号解除鍵（以下、「暗号鍵」又は「鍵」という。）を管理又は配信する処理が必要になる。
【００１９】
そこで、パケットが所定の順に配列されていることを利用して、ある位置のパケットの鍵に対して、一方向性関数を適用することにより、そのパケットに隣接するパケットの鍵を順次生成する方法がある。この方法では、暗号化側からは一のパケットに対応する鍵が配信され、復号側では、その鍵に基づいて隣接するパケットの鍵を順次生成する。これにより、鍵が配信されたパケットの他のパケットに対する鍵を生成できるため、鍵の管理が容易になる。
【００２０】
ところで、ＪＰＥＧ２０００符号データの特徴の一に、パケットの抽出や再配列ができるということがある。そこで、符号データに対して再配列が行われると、上記の隣接関係が崩れる場合がある。このような場合には、再配列された後の一のパケットに対応した鍵に基づいて、隣接するパケットの鍵を生成できるとは限らず、鍵の管理が複雑になる。
【００２１】
そこで、パケットの再配列と鍵の管理又は配信処理を容易にすることとを両立させるために、パケットの配列における制限に基づいて、鍵の生成の依存関係を決定することができる。より詳細には、例えば、一つのプログレッション属性内では、パケットの並びは昇順と定められていることを利用する。すなわち例えば、解像度０のパケットよりも先に解像度１のパケットが来ることはないので、解像度レベルの下位のパケットに対応する鍵に対して一方向性関数を用い、解像度レベルが上位のパケットに対応する鍵を生成する（特許文献１参照）。
【００２２】
パケットの再配列と鍵の管理又は配信処理を容易にすることとを両立させるために、また例えば、再配列とは関係のない状態で暗号化を行うことが考えられる。例えば、ＪＰＥＧ２０００規格による符号データでは、周波数分解後の変換係数に対して暗号化を施し、その後エントロピー符号化処理を行うことが許容されている。ＪＰＥＧ２０００規格では、さらに、変換係数に対して暗号化を行う場合は、暗号化する変換係数の位置を自由に選択してよいことが定められている。
【００２３】
そこで、変換係数に対する暗号化の形態として、次の２つの適用形態が考えられる。
（１）一の変換係数単位、又は複数の変換係数をまとめた単位に対して、暗号化を行う。
（２）一のビットプレーン単位、または複数のビットプレーンをまとめた単位に対して、暗号化を適用する。
【００２４】
以下の実施の形態では、（１）の形態について述べる。
【００２５】
ところで、（１）の形態の暗号化処理を行う場合には、変換係数毎のビット長が重要となる。すなわち、ブロック暗号化においては、所定のビット長のブロック毎に暗号化が行われるために、変換係数のビット長が異なる場合には、それらを効率よくメモリ等から読み出し、又は、出力される暗号化された変換係数を効率よくメモリに格納する技術が必要となる。
【００２６】
例えば、１画素が８ｂｉｔのビット長を有する原画像データに対して５ｘ３ウェーブレット変換を用いるＪＰＥＧ２０００符号化を行う場合には、ウェーブレット変換後の変換係数のビット深さは、次式（ａ）で与えられる。
【００２７】
変換係数のビット深さ＝ｂｉｔ１＋ｂｉｔ２＋ｂｉｔ３＋ｂｉｔ４・・・・・・（ａ）
但し、ｂｉｔ１は、原画像のビット深さであって、値８、
ｂｉｔ２は、色変換によるビット数増加であって、輝度コンポーネントは値０、色差コンポーネントは値１、
ｂｉｔ３は、ウェーブレット変換によるビット数増加のうち、「ガードビット」と呼ばれる、サブバンド間で共通に増加する分であって、５ｘ３変換の場合、通常は値２、
ｂｉｔ４は、ウェーブレット変換によるビット数増加のうち、サブバンド間の増加量の差であってＬＬ成分を基準として表される値。ＬＬ成分は値０、ＨＬ成分とＬＨ成分は値１、ＨＨは値２、
である。
【００２８】
例えば、デコンポジションレベル１のウェーブレット変換が行われた色差コンポーネントの変換係数のビット深さは、式（ａ）より、以下のようになる。
【００２９】
ＬＬサブバンドの変換係数のビット深さ  ８＋１＋２＋０＝１１ビット
ＨＬサブバンドの変換係数のビット深さ  ８＋１＋２＋１＝１２ビット
ＨＨサブバンドの変換係数のビット深さ  ８＋１＋２＋２＝１３ビット
そこで、上記の場合には、変換係数を格納するメモリにおける一の変換係数の領域のビット数は、１３ビットあればよい。
【００３０】
ここで、変換係数に対して、暗号化処理を行うことを考える。例えば、ＡＥＳでは、１２８ビット未満のデータを暗号化しても１２８ビットの暗号を生成する。そこで、暗号化後の変換係数は全て１２８ビットとなる。一般にブロック暗号方式は、ブロック長と等しいビット長の暗号データを生成する。すなわち、一の変換係数毎にＡＥＳにより暗号化すると、暗号化後の変換係数を保持するメモリにおける一の変換係数の領域のビット数は１２８ビットとなる。
【００３１】
また例えば、８個の変換係数を連結して１０４ビットの入力データを生成し、これに対してＡＥＳを適用する場合には、１０４ビットの入力データに対して、１２８ビットの暗号データが生成される。そこで、暗号化後の変換係数を保持するメモリにおける一の変換係数に相当する領域のビット数は、１６ビットとなる。
【００３２】
すなわち、暗号化の前と後とで、変換係数を同一のメモリに格納する場合、暗号化前には例えば１３と想定していたビット深さを、１６として扱わなければならない。これは、メモリからのデータの読み出しと書き込みとを行うメモリアクセス制御手段が、処理するデータが暗号化前の「原変換係数」なのか、暗号化後の「暗号化変換係数」なのかによって処理を異ならせると、メモリ上のアドレス生成処理が煩雑になるという不具合があることを意味する。
【００３３】
そこで、一の原変換係数あたりのビット数と、一の暗号化係数あたりのビット数とを同一にすることにより、メモリ上のアドレス生成処理を簡略にすることができる。さらに、原変換係数と暗号化変換係数とを一のメモリに格納することにより、そのメモリを有する情報処理装置、又は、そのメモリを用いて暗号化処理を行う情報処理装置の構成を簡易にすることができる。
【００３４】
さらに、一の変換係数あたりのビット数に対し、暗号化によって増加する増分ビット数の情報を、画像データが圧縮された符号データに含ませることにより、復号側でその増分ビット数に応じた画像復号処理を行うことができる。
【００３５】
以下の実施の形態は、これらの構成を実現するものである。以下、本発明の実施の形態を図面に基づき説明する。
〔第一の実施の形態〕
（本発明の一実施の形態に係る画像符号化装置の機能構成の例）
図１は、本発明の一実施の形態に係る画像符号化装置の機能構成の例を説明する図である。図１の画像符号化装置１は、外部に設けられたメモリ３０と接続され、入力された画像データを圧縮した符号データを出力する。画像符号化装置１は、例えば、暗号化手段１１、周波数分解手段２１、保護ビット数決定手段２２、及び、符号データ生成手段２３を有する。画像符号化装置１は、さらに、領域ビット数決定手段１２、アドレス生成手段１３、色変換手段２４、及び、量子化／可変長符号化手段２５を有してもよい。
【００３６】
暗号化手段１１は、周波数分解して得られた変換係数を暗号化する手段である。なお、暗号化される前の変換係数を「原変換係数」、暗号化された後の変換係数を「暗号化変換係数」という。
【００３７】
周波数分解手段２１は、入力されたデータに対して周波数分解処理を行い、変換係数を出力する。周波数分解手段２１は、例えば、ウェーブレット変換処理を行ってもよく、また例えば、ＤＣＴ変換処理を行ってもよい。
【００３８】
保護ビット数決定手段２２は、周波数分解手段２１による周波数分解の際に生成する変換係数に対し、オーバーフローを防ぐために追加する保護ビットのビット数である保護ビット数を決定する手段である。符号データから画像を復号する際に、保護ビットを考慮することにより、逆周波数分解処理におけるオーバーフローを防ぐことができる。なお、保護ビットは、符号データから画像を復号する際の逆量子化におけるオーバーフローを防ぐために追加されるビットでもよい。
【００３９】
保護ビット数決定手段２２は、さらに、後述する暗号化処理によって増加するビット数を、保護ビット数に含ませる。これにより、例えば、ＪＰＥＧ２０００規格における保護ビットである「ガードビット」の情報に、暗号化処理によって増加するビット数を含ませることができる。したがって、新たなシンタックスを設けなくとも、既存の画像符号化の規格による符号データに、暗号化によって増加するビット数の情報を含ませることができる。
【００４０】
符号データ生成手段２３は、量子化／可変長符号化手段２５によって処理された変換係数と保護ビットとを含む符号データを生成する手段である。符号データ生成手段２３は、例えば、変換係数等が含まれているパケットを生成し、そのパケットを所定の順に並べることにより、符号データを生成する。なお、符号データ生成手段２３によって符号データに含ませられる変換係数は、暗号化手段１１によって暗号化処理が行われた変換係数でもよい。
【００４１】
なお、「符号データ」とは、画像又は音声等の「原データ」に対して、圧縮等の符号化処理を行って生成されたひとかたまりのデータのことであり、例えば、ＪＰＥＧ２０００規格におけるコードストリーム若しくはビットストリーム、ＪＰ２ファイルフォーマットの形式を有するデータ、又は、ＭＪ２ファイルフォーマットの形式を有するデータ等である。「符号データ」とは、また例えば、ＭＰＥＧ規格におけるビットストリーム等でもよい。
【００４２】
また、「原データ」とは、周波数分解が行われる前のデータであって、画像データの他に、音声データ又はその他のいかなるデータでもよい。
【００４３】
色変換手段２４は、画像符号化装置１が処理するデータが画像データの場合に、その画像データに対して色空間の変換処理、又は、所定の色コンポーネントに対するレベルシフト等の処理を行う。
【００４４】
量子化／可変長符号化手段２５は、暗号化変換係数に対して量子化処理及び／又は可変長符号化処理を行う。量子化／可変長符号化手段２５は、また例えば、原変換係数に対して量子化処理及び／又は可変長符号化処理を行ってもよい。これにより、原変換係数の意一部のみが暗号化される場合に、原変換係数と暗号化変換係数との両方に対して量子化及び／又は可変長符号化処理を行うことができる。
【００４５】
暗号化手段１１は、例えば、原変換係数に対してＤＥＳ又はＡＥＳ等のブロック暗号化の処理を行う。暗号化手段１１は、また例えば、複数の原変換係数が連結された値に対して暗号化処理を行う。暗号化手段１１が、暗号化処理を行う、複数の原変換係数が連結された値とは、例えば、複数の原変換係数のビット数の最大値以上の２のべき乗の所定のビット数毎に、原変換係数が配された構成を有してもよく、さらに複数の原変換係数のビット数の最大値以上の１６の倍数の所定のビット数毎に、原変換係数が配された構成を有してもよい。複数の原変換係数が連結された値とは、また例えば、その値のビット数がブロック長のビット数以下であればよく、その値のビット数がブロック長のビット数以下の最大ビット数となる値でもよく、その値のビット数がブロック長のビット数以下で２のべき乗の最大数となる値でもよい。
【００４６】
これにより、メモリ３０に原変換係数及び暗号化変換係数を格納する場合に、２のべき乗のビット数毎、又は、１６の倍数毎に、それらの変換係数を格納することができるので、メモリ３０にアクセスする際のバス幅が、２のべき乗又は１６の倍数の場合には、高速にアクセスを行うことができる。
【００４７】
なお、暗号化手段１１が暗号化する原変換係数は、後述する周波数分解手段２１によって周波数分解されて生成された変換係数の他に、一の符号データに含まれている変換係数が、その符号データを解析することにより取り出されたものでもよい。
【００４８】
領域ビット数決定手段１２は、原変換係数及び暗号化変換係数をメモリ３０に格納する際の、一の変換係数に対応する領域のビット数である「領域ビット数」を決定する。領域ビット数決定手段１２は、複数の原変換係数のビット数の最大値と、複数の暗号化変換係数のビット数の最大値のとのうち、何れか大きい方の値に基づき、領域ビット数を決定する。領域ビット数決定手段１２によって決定される領域ビット数は、原変換係数がメモリ３０に格納される際の一の原変換係数あたりの領域のビット数であり、さらに、暗号化変換係数がメモリ３０に格納される際の一の暗号化変換係数あたりの領域のビット数である。
【００４９】
原変換係数と暗号化変換係数とで、メモリ３０における一の変換係数が格納される領域のビット数が同数であることにより、アドレス生成手段１３による、アドレス生成の処理を簡易にすることができ、さらに、メモリへのアクセスを高速にすることができる。
【００５０】
領域ビット数決定手段１２は、また例えば、暗号化手段１１がブロック暗号化処理を行う場合に、ブロック長を領域ビット数としてもよい。領域ビット数決定手段は、また例えば、暗号化手段１１が、複数の原変換係数が連結された値に対してブロック暗号化処理を行う場合に、一の暗号化変換係数あたりのビット数を、領域ビット数としてもよい。一の暗号化変換係数あたりのビット数とは、例えば、ブロック暗号化処理におけるブロック長を、一のブロック暗号化によって処理される原変換係数の個数で除算した商である。
【００５１】
アドレス生成手段１３は、領域ビット数決定手段１２によって決定された領域ビット数に基づき、原変換係数及び暗号化変換係数をメモリ３０に書き込む際のアドレスを生成し、また、メモリ３０に格納された原変換係数及び暗号化変換係数を読み出す際の、メモリ上のアドレスを生成する。アドレス生成手段１３は、例えば、領域ビット数に基づいて、アクセスする変換係数が格納されているメモリ上の領域のアドレスを生成し、さらに、そのアドレスに格納されている値に対してアクセスを行ってもよい。
【００５２】
なお、メモリ３０又はメモリ３０に格納されている値に対してアクセスするとは、その値等をメモリ３０の該当する領域から読み出し、又は、その値等をメモリ３０の該当する領域に書き込む処理を行うことである。
【００５３】
なお、暗号化手段１１、領域ビット数決定手段１２、及び、アドレス生成手段１３は、一の情報処理装置として構成されてもよい。
【００５４】
なお、周波数分解手段２１、符号データ生成手段２３、色変換手段２４、及び、量子化／可変長符号化手段２５は、一の画像符号化装置として構成されてもよい。
【００５５】
（本発明の一実施の形態に係る画像符号化装置の装置構成の例）
図２は、本発明の一実施の形態に係る画像符号化装置の装置構成の例を説明する図である。図２の画像符号化装置４０は、データバスを介して、ＨＤＤ４３、ＲＡＭ４２、及び、ＣＰＵ４１が接続されている。なお、ＣＰＵ４１とＲＡＭ４２とは、例えば、ＰＣの内部に設けられ、ＨＤＤ４３は、例えば、ＰＣの外部に接続される構成でもよい。
【００５６】
図２の画像符号化装置４０では、次の（Ｅ１）から（Ｅ４）の手順により、原符号が暗号化される。なお、図中の○で囲まれた１から４の数字は、以下の説明の（Ｅ１）から（Ｅ４）に対応する。
（Ｅ１）  ＨＤＤ４３に記録された原データが、ＣＰＵ４１からの命令により、ＲＡＭ４２に格納される。
（Ｅ２）  ＣＰＵ４１が、ＲＡＭ４２に格納された原データを読み出し、暗号化の処理を行う。
（Ｅ３）  ＣＰＵ４１が、暗号化された符号をＲＡＭ４２の原データが格納されている領域とは別の領域に書き込む。
（Ｅ４）  ＣＰＵ４１の命令に基づき、暗号化された符号がＨＤＤ４３に記録される。
【００５７】
図２の画像符号化装置４０は、また、次の（Ｄ１）から（Ｄ４）の手順により暗号化された符号を復号する。
（Ｄ１）  ＨＤＤ４３に記録された暗号化された符号が、ＣＰＵ４１からの命令により、ＲＡＭ４２に格納される。
（Ｄ２）  ＣＰＵ４１が、ＲＡＭ４２に格納された符号を読み出し、暗号の復号処理を行う。
（Ｄ３）  ＣＰＵ４１が、復号化後の符号をＲＡＭ４２上の暗号化された符号が格納されている領域とは別の領域に書き込む。
（Ｄ４）  ＣＰＵ４１の命令に基づき、復号された画像のデータがＨＤＤ４３に記録される。
【００５８】
（暗号化方式の例）
図３は、本発明の一実施の形態に係る画像符号化装置によって行われる暗号化方式を説明する図である。図３の暗号化方式は、暗号化側と解読側とで同一の暗号鍵を秘密に共有する共通鍵暗号方式であり、より詳細には、適当な長さの文字列（ブロック）ごとに同じ鍵で暗号化を行う、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式の例である。
図３では、（１）から（６）までの手順により、ＡＥＳの処理が実現されている。
（１）データを１２８ビット長のブロックに分割する。
（２）ブロック中の１バイト毎に別の１バイトの値に置換する、ＳｕｂＢｙｔｅｓ処理を行う。
（３）ＳｕｂＢｙｔｅｓ処理の出力をバイト単位で混合する、ＳｈｉｆｔＲｏｗｓ処理を行う。
（４）４バイトの値を、ビット演算を用いて別の４バイトの値に変換する、ＭｉｘＣｏｌｕｍｎ処理を行う。
（５）ＭｉｘＣｏｌｕｍｎ処理の出力と、１２８ビットの鍵との排他的論理和をとる、ＡｄｄＲｏｕｎｄＫｅｙ処理を行う。
（６）上記（２）〜（５）を１０〜１４回繰り返す。例えば、１４回繰り返す。
となる．
なお、（５）において用いられる鍵は、予め用意された鍵の他に、用意された鍵と所定一方向性関数とにより生成される鍵でもよく、さらに、生成された鍵と所定の一方向性関数とにより生成される鍵でもよい。一方向性関数は、例えば、ハッシュ関数ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）を用いる。ＭＤ５は、任意長の入力Ａに対して１２８ビットのハッシュ値Ｂを出力する。ハッシュ値Ｂから入力Ａを推定することが困難であるため、入力Ａから出力Ｂを一方向に生成することができる。
【００５９】
また、図５は、共通鍵暗号方式の例であるが、本発明の実施の形態は、共通鍵暗号方式に限らず、ブロック長毎に暗号処理を行う暗号化方式であればよい。
【００６０】
（ＪＰＥＧ２０００規格の説明）
図４から図２８は、本実施の形態における画像符号化装置によって暗号化が行われる変換係数を生成する画像符号化処理を説明する図である。図４から図９は、ＪＰＥＧ２０００規格の概要であり、図１０から図１８は、ＪＰＥＧ２０００規格によるコードストリームの構成の概要である。また、図１９から図２５は、ＺＯＩ（Ｚｏｎｅ  Ｏｆ  Ｉｎｆｌｕｅｎｃｅ）の設定に係る説明であり、図２６から図２８は暗号化処理の「粒度」に係る設定の説明である。なお、図４から図２８に基づいて行われる画像符号化処理によって生成される画像を復号する処理は、これらの図から容易に理解できるので、ここでは説明を省略する。
【００６１】
（ＪＰＥＧ２０００規格の概要）
図４から図９は、ＪＰＥＧ２０００規格の概要を説明する図であって、特にパケットのプログレッションオーダの理解を容易にするための図である。
【００６２】
（ＪＰＥＧ２０００規格による符号化処理又は復号処理における暗号化処理）
図４は、ＪＰＥＧ２０００規格による画像データの符号化処理及び符号データの復号処理における暗号化処理の概略を説明する図である。図５のＳ１では、タイルと呼ばれる矩形の領域に分割された画像データに対し、タイル毎に色コンポーネントに分割される。さらに、各色コンポーネントに対して、ＤＣレベルシフト処理が行われる。
【００６３】
Ｓ２では、タイル毎にウェーブレット変換が施される。これにより、ＬＬ成分、ＨＬ成分、ＬＨ成分、ＨＨ成分の４つの成分、すなわち、サブバンドが生成される。ＬＬ成分に対して再帰的にサブバンド変換処理を繰り返すことにより、１つのＬＬ成分と、複数のレベルの異なるＨＬ成分、ＬＨ成分、ＨＨ成分が生成される。
【００６４】
さらに、各サブバンドをプリシンクトと呼ばれる矩形に分割する。プリシンクトとは、サブバンドを矩形に分割したものであり、大まかには画像中の場所を表すものである。より詳細には、プリシンクトは、画像中の場所が対応するＨＬ成分、ＬＨ成分、及び、ＨＨ成分の３つの成分の「組」である。プリシンクトは、サブバンドの大きさと同一でもよい。
【００６５】
プリシンクトをさらに矩形に分割したものを、コードブロックという。そこで、物理的な大きさは、画像≧タイル＞サブバンド≧プリシンクト≧コードブロックの順となる。
【００６６】
図５は、画像、タイル、サブバンド、プリシンクト、及び、コードブロックの関係を説明する図である。また、図６は、サブバンドと解像度レベルとの関係を説明する図である。図６は、デコンポジションレベルが最大で３の場合の例である。なお、デコンポジションレベルとは、サブバンド変換を行う回数のことである。図６では、解像度レベル０が、デコンポジションレベルが最大の３ＬＬに対応している。
【００６７】
図４に戻り、Ｓ３では、Ｓ２のウェーブレット変換により生成したサブバンド毎に、量子化処理が行われる。本実施の形態では、図４のＳ３において、例えばＬＬサブバンドに対して暗号化の処理を行う。なお、暗号化処理を行う単位は、ＬＬサブバンドに限らず、いかなるサブバンドでもよく、また一のサブバンドの中の所定のプリシンクト又はコードブロックでもよい。
【００６８】
Ｓ４では、サブバンドをさらに分割したコードブロックと呼ばれる単位毎に、ウェーブレット変換係数に対して、ビットプレーン符号化が行われる。Ｓ４で行われるビットプレーン符号化は、エントロピー符号化である。
【００６９】
Ｓ５では、ビットプレーン符号化によって生成した符号のうち、不要な符号が破棄され、残る必要な符号がパケットと呼ばれる単位にまとめられる。なお、必要な符号とは、例えば、全てのコードブロックのＭＳＢ側から順に３番目のビットプレーンまでの符号を集めたものであり、コードブロック毎にビットプレーン単位又はレイヤ単位で選択してもよい。また、必要な符号とは、さらに、「空」の符号でもよく、すなわち、パケットの中身にＳ４で生成されたエントロピー符号がふくまれなくてもよい。
【００７０】
なお、パケットの先頭部に配されるパケットヘッダには、そのパケットに含まれる符号に係る情報が含まれる。これにより、生成される符号データから、パケット単位に符号を取得して処理することができる。
【００７１】
また、一のデコンポジションレベルに含まれている全てのプリシンクトのパケットにより、画像全体の符号の一部が形成される。すなわち、例えばＭＳＢ側から順に３番目のビットプレーンまでの符号が集められている場合には、そのビットプレーンまでの符号ができる。これをレイヤと呼ぶ。レイヤは、例えば、画像全体のビットプレーンの符号の一部である。そこで、レイヤの数が増えると、復号される画像の画質が向上する。換言すれば、レイヤの数は画質の単位である。
【００７２】
図７は、デコンポジションレベルが２、プリシンクトのサイズがサブバンドのサイズに等しい場合のレイヤと、そのレイヤに含まれるパケットを説明する図である。また、図８は、図７の例におけるパケットを説明する図である。パケットは、プリシンクトを単位としている。そこで、一のパケットは、プリシンクトを構成するＨＬ成分、ＬＨ成分、及び、ＨＨ成分を含むように構成される。図８では、いくつかのパケットについて、太線で囲んで例示する。
【００７３】
図４に戻り、Ｓ６では、Ｓ５で生成されたパケットを所定の順に並べて符号データが形成される。
【００７４】
（パケットを並べる順の説明）
図９は、パケットを並べる所定の順を説明する図である。パケットは、
どのコンポ−ネント（以下、記号「Ｃ」を用いて説明する。）に属するか、
どの解像度レベル（以下、記号「Ｒ」を用いて説明する。）に属するか、
どのプリシンクト、すなわち場所（以下、記号「Ｐ」を用いて説明する）に属するか、
どのレイヤ（以下、記号「Ｌ」を用いて説明する。）に属するか、
という４つの属性をヘッダ部に有する。パケットのヘッダ部をパケットヘッダという。パケットヘッダの後には、パケットデータが続く。パケットデータは、エントロピー符号であって、ＪＰＥＧ２０００規格による算術符号が行われた場合には、ＭＱ符号である。
【００７５】
すなわち、パケットの配列とは、パケットヘッダおよびパケットデータをどの属性の順に階層的に並べるかを意味する。この配列順をプログレッションオーダとよぶ。図９では、５通りが示されている。
【００７６】
パケットヘッダには、
・そのパケットが空かどうか
・そのパケットにどのコードブロックが含まれるか
・そのパケットに含まれる各コードブロックのゼロビットプレーン数
・そのパケットに含まれる各コードブロック符号のコーディングパス数、又は、さらにビットプレーン数
・そのパケットに含まれる各コードブロックの符号長
が記載されている。
【００７７】
図９より以下の点が明白である。すなわち、プログレッションオーダが複数あるために、パケットを単位とする暗号化処理を行って一方向性関数により鍵を生成する方法では、パケットが並べ替えられた場合に、鍵の管理が煩雑になる。本実施の形態では、変換係数又は変換係数を連結した値に対してブロック暗号化の処理を行う。これにより、パケットが並べ変えられた場合でも、一のパケット内における暗号化処理及び復号処理の順は一定であることは明かである。
【００７８】
（ＪＰＥＧ２０００コードストリームの概要）
図１０から図１８は、ＪＰＥＧ２０００コードストリームの概要を説明する図であって、特にＪＰＥＧ２０００のコードストリームにセキュリティを鑑みて暗号化処理等を行う規格である、ＪＰＳＥＣ（ＳＥＣｕｒｅ  ＪＰｅｇ２０００）を説明する図である。なお、ＪＰＳＥＣとは、ＩＳＯ／ＩＥＣ１５４４４−８に定められている規格である。なお、以下の実施の形態では、ＪＰＳＥＣで定められている「ノーマティブツール」ではなく、類似のマーカを使用して、同様の機能を実現している。
【００７９】
ＪＰＳＥＣでは、ＪＰＥＧ２０００規格により符号化された画像の所定の領域を暗号化し、適切な権限を有さない場合には、その領域の画像を参照することを許可しないようにすることができる。このような暗号化等のセキュリティを施す処理を行うソフトウェア又はハードウェアをＪＰＳＥＣツールと言い、その暗号化した「ある領域」をＺＯＩ（Ｚｏｎｅ  Ｏｆ  Ｉｎｆｌｕｅｎｃｅ）と称する。以下の実施の形態では、ＺＯＩは３ＬＬサブバンドとする。
【００８０】
ところで、ＪＰＥＧ２０００規格では、コードストリームに暗号化を施す場合、新たにＪＰＳＥＣ用のマーカセグメントを追加することが定められている。なお、マーカセグメントとは、マーカと呼ばれる所定のコードとそのマーカに続く一連のデータ群をいう。マーカは、マーカセグメント又はマーカに続くその他のデータの内容等を表すコードである。
【００８１】
図１０は、ＪＰＳＥＣ用のマーカセグメントを含むコードストリームを説明する図である。図１０（Ａ）は、暗号化が行われていないコードストリームの例であり、図１０（Ｂ）は、少なくとも一部に暗号化が行われているコードストリームの例である。図１０（Ｂ）において、網掛けされた「ＳＥＣ」マーカセグメントが、暗号化されたことを示すマーカセグメントである。より詳細には、ＳＥＣマーカセグメントは、メインヘッダのＳＩＺマーカ以降の位置に配されている。
【００８２】
図１１は、ＳＥＣマーカセグメントの構成を説明する図である。図１１では、ＳＥＣマーカに続いて、ＳＥＣマーカセグメントの長さを表す情報等が配されている。図１１中のＰＳＥＣは暗号化に係るパラメータ等であり、その詳細は図１２に記す。また、図１１中のＴｏｏｌ（ｉ）は、このコードストリームに対して複数のＪＰＳＥＣツールが用いられている場合に、ｉ番目のＪＰＳＥＣツールに関するパラメータである。
【００８３】
図１２は、図１１中のＰＳＥＣの詳細を説明する図である。図１２中、ＦＰＳＥＣは、コードストリーム中のＩＮＳＥＣの有無、ＳＥＣマーカセグメントが複数あるか否か等の情報を含む。また、Ｎｔｏｏｌｓは、ＪＰＳＥＣツールの数を表す情報を含み、Ｉｍａｘは、ツールｉｎｄｅｘの最大値の情報を含む。
【００８４】
図１３は、図１１中のＴｏｏｌ（ｉ）の詳細を説明する図である。図１３におけるｔは、ツールタイプが、ＪＰＥＧ２０００規格によるノーマティブツールか否か、を表す。また、ＩＤは、ノーマティブツールの場合に、そのテンプレートを表す値であって、詳細は図１４に記されている。本実施の形態では、解除テンプレートに対応する値１を有する。
【００８５】
また、図１３中のＺＯＩについては、図１９以降で詳述する。図１３中のＰＩＤは、ツールのパラメータであって、その詳細は図１５に示されている。図１５において、ＴＩＤは、指定したテンプレートＩＤに対応するテンプレートパラメータであり、その詳細は図１６に示されている。また、Ｇは、暗号化の処理の「粒度」を表す。すなわち、どの程度の精度で暗号化処理を行うかを表す情報である。粒度については、図２６以降で詳述する。
【００８６】
図１６は、図１５中の、ＴＩＤの詳細を説明する図である。図１６中のＣＴｄｅｃｒｙが、暗号化タイプを表すＩＤであり、その詳細を、図１７に示す。さらに図１７において、暗号化タイプがブロック暗号化に対応する場合のＣＴｄｅｃｒｙの値を図１８に示す。
【００８７】
本実施の形態では、ＳＥＣマーカセグメントは１つとし、ＩＮＳＥＣマーカセグメントは用いない。ＪＰＳＥＣツールの数は１、ツールｉｎｄｅｘは１であり、ＪＰＳＥＣツールは、ノーマティブツールであるＡＥＳを用いる。したがって、図１６におけるＣＴｄｅｃｒｙの値は、０ｘ０００１である。なお、本発明の実施の形態はこの例に限らない。
【００８８】
（ＺＯＩの設定の説明）
図１９から図２５は、ＺＯＩの設定を説明する図である。図１９は、図１３のＴｏｏｌ（ｉ）に含まれている、ＺＯＩの詳細を説明する図である。図１９のＺＯＩには、ゾーンの個数であるＮＺＺＯＩ、及び、各ゾーンに関するパラメータであるＺｏｎｅｉが含まれている。図１９に示すように、ＺＯＩはＺｏｎｅの集合として定義される。Ｚｏｎｅｋの詳細を、図２０に示す。
【００８９】
図２０では、Ｚｏｎｅが、記述クラスとパラメータとで表現されている。図２０において、ＤＣｚｏｉｋが、ｋ番目のゾーンの記述クラスである。ゾーン記述クラスの構造を、図２１に、ゾーン記述クラスの記述内容を図２２に示す。
【００９０】
図２１及び図２２より、一のＺｏｎｅは、実空間での画像領域、周波数係数空間での解像度成分等の画像に関係したパラメータを用いて指定してもよく、また、符号化後の所定のパケットのように、画像とは直接関係しないパラメータによって指定してもよい。これら二種類の指定のどちらを選択するかを、ゾーン記述クラスのｘのビットとして指定する。また、ゾーン記述クラスの記述内容のうち、画像に関係する記述クラスの内容を図２３に示す。
【００９１】
図２０に戻り、Ｐｚｏｉ０、ｋは、そのゾーンの記述クラスに対応するゾーン記述パラメータであって、詳細は図２４に示されている。図２４中のＭｚｏｉは、ＺＯＩのモードであって、その値に対応する内容（セマンティクス）は、図２５に示されている。
【００９２】
また、Ｎｚｏｉは、ＺＯＩの個数であり、その個数に対応する数のＩｚｏｉが、Ｎｚｏｉの後ろに続く。
【００９３】
本実施の形態では、例えば、画像に関係する記述クラスを用いる。すなわち、３ＬＬのサブバンド全体を暗号化する場合には、図２３において９のビット番号を１に、プリシンクトを暗号化する場合には６のビット番号を１に、コードブロックの場合は１０のビット番号を１に設定する。
【００９４】
（粒度に係る説明）
図２６から図２８は、暗号化の処理の「粒度」に係る設定を説明する図である。粒度とは、どの単位でセキュリティをかけるかの情報であって、暗号化の処理を行う単位を表す情報である。図２６は、図１５中のＧの詳細である。図２６中、ＰＯは、処理順序を表し、ＧＬは、粒度を表す。図２７は、ＰＯの取り得る値とその意味の例であり、図２８は、ＧＬの取り得る値とその意味の例である。ＺＯＩで指定された領域全体に対して暗号化の処理を行う場合、ＰＯ値は０である。
【００９５】
（本実施の形態におけるパラメータの例）
図２９から図３１は、図１０から図２８で説明したＪＰＥＧ２０００規格によるコードストリームの一部に暗号化を行う際に設定するパラメータの例を説明する図であって、主として図１９から図２５で説明したＺＯＩの設定内容を説明する図である。なお、数字の末尾の'ｂ'の文字は、その数字が２進数表現であることを表す。
【００９６】
図２９は、３ＬＬサブバンド、すなわち、解像度レベル０のＬＬサブバンドを暗号化する場合の設定の例である。図２９のａ１は、ＤＣｚｏｉ１の３番目のビットが１に設定されており、図２３より、解像度レベルが設定されていることが判る。また、ｂ１は、ＤＣｚｏｉ２の３番目のビット、すなわち、ＤＣｚｏｉの９番目のビットが１に設定されているので、図２３より、サブバンドが設定されていることが判る。
【００９７】
そこで、ａ１に対応するｌｚｏｉ３であるａ２を参照すると、解像度レベルの値として０が設定されている。すなわち、解像度レベル０を暗号化することを表している。同様に、ｂ１に対応するｌｚｏｉ８であるｂ２を参照すると、サブバンドの値として０が設定されている。すなわち、ＬＬサブバンドを暗号化することを表している。
【００９８】
図３０は、３ＬＬサブバンド、すなわち、解像度レベル０のＬＬサブバンドの左上のプリシンクト１つだけを暗号化する場合の設定の例である。図３０のｃ１は、ＤＣｚｏｉ１の３番目のビットと６番目のビットとが１に設定されており、図２３より、解像度レベルとプリシンクトとが設定されていることが判る。そこで、ｃ１の３番目のビットに対応するｌｚｏｉ８であるｃ２を参照すると、サブバンドの値として０が設定されており、ＬＬサブバンドを暗号化することが表されている。
【００９９】
また、ｃ１の６番目のビットに対応するｌｚｏｉ８であるｃ３及びｃ４を参照すると、暗号化を行う矩形領域の値としてそれぞれ０が設定されている。ｃ３は、矩形領域の左上のプリシンクト番号を表し、ｃ４は、矩形領域の右下のプリシンクト番号を表す。左上と右下のプリシンクト番号が何れも０であることから、図３０の設定によれば、左上の一のプリシンクトに対して暗号化処理を行うことが判る。
【０１００】
なお、図３０においてｄ１及びｄ２の設定は、図２９のｂ１及びｂ２の設定と同一であるので、ここでは説明を省略する。
【０１０１】
図３１は、３ＬＬサブバンド、すなわち、解像度レベル０のＬＬサブバンドの左上のコードブロック１つだけを暗号化する場合の設定の例である。図３１のｅ１及びｅ２の設定は、図２９のａ１及びａ２の設定と同一であるので、ここでは説明を省略する。
【０１０２】
図３１のｆ１は、ＤＣｚｏｉ２の３番目のビットと４番目のビットとが１に設定されており、図２３より、サブバンドとコードブロックとが設定されていることが判る。そこで、ｆ１の３番目のビットに対応するｌｚｏｉ８であるｃ２を参照すると、サブバンドの値として０が設定されており、ＬＬサブバンドを暗号化することが表されている。
【０１０３】
また、ｆ１の４番目のビットに対応するｌｚｏｉ９であるｆ３及びｆ４を参照すると、暗号化を行う矩形領域の値としてそれぞれ０が設定されている。ｆ３は、矩形領域の左上のコードブロック番号を表し、ｆ４は、矩形領域の右下のコードブロック番号を表す。左上と右下のコードブロック番号が何れも０であることから、図３１の設定によれば、左上の一のコードブロックに対して暗号化処理を行うことが判る。
【０１０４】
図２９から図３１によりＺＯＩを設定し、さらに、暗号化する粒度として「ＺＯＩで指定された全領域、すなわち、値として"００００１００１ｂ"」を指定して、そのＺＯＩで指定された全領域に対して、設定にしたがって暗号化の処理を行う。これにより、暗号化の処理に用いられたノーマティブツールに対する鍵が無い場合には、そのＺＯＩの暗号を解除することができない。
【０１０５】
（ＪＰＥＧ２０００規格による画像符号化処理における暗号化処理の例）
図３２は、本実施の形態による画像符号化方法の例のフローであって、ＪＰＥＧ２０００規格による画像符号化処理における変換係数のうち、所定の領域の変換係数を暗号化する処理の例のフロー図である。
【０１０６】
図３２では、入力された原画像のビット深さと、暗号化ウェーブレット係数の１係数あたりのビット深さとに基づいて、メモリ上の領域が確保され、入力された画像に対して符号化処理、及び、その符号化において生成するウェーブレット係数に対する暗号化処理が行われる。図３２における「ウェーブレット係数」が「原変換係数」であり、「暗号化ウェーブレット係数」が「暗号化変換係数」である。また、図３２中「ビット深さ」とは、変換係数等のビット長を表す。以下の説明では、「ビット深さ」及び「ビット長」を「ビット数」として説明する。
【０１０７】
なお、図３２では、ＪＰＥＧ２０００規格に基づく色空間変換及びＤＣレベルシフト等の処理は省略しているが、本発明の実施の形態はこの例に限らず、周波数分解して得られる変換係数を暗号化する画像符号化装置又は画像符号化方法であればよい。
【０１０８】
図３２のステップＳ１０１では、領域ビット数決定手段１２が、入力された原画像のビット深さを取得する。ステップＳ１０１に続いてステップＳ１０２に進み、周波数分解手段２１が、ウェーブレット変換の種類とデコンポジションレベルとを決定する。ウェーブレット変換の種類とは、例えば、５ｘ３変換又は９ｘ７変換である。以下の説明では、５ｘ３変換の場合について説明する。デコンポジションレベルは、ウェーブレット変換によるＬＬ係数に対するサブバンド分解を繰り返す回数を表す。以下の説明では、デコンポジションレベルが３の場合について説明する。
【０１０９】
ステップＳ１０２に続いてステップＳ１０３に進み、保護ビット数決定手段２２が、ステップＳ１０２で決定されたウェーブレット変換の種類とデコンポジションレベルとに基づいて、ガードビットを計算し、さらに、領域ビット数決定手段１２が、一ウェーブレット係数あたりのビット数の最大値Ｍを計算する。この計算は、式（ａ）に基づいて行われる。すなわち、原画像のビット深さが８の場合に、５×３ウェーブレット変換を行うと、ウェーブレット係数のビット数は、式（ａ）より、最大で１３ビットとなり、Ｍは１３となる。
【０１１０】
なお、ガードビットとは、ＪＰＥＧ２０００規格による量子化又はウェーブレット変換処理の際に、画像符号化を行う符号化器の計算精度によるオーバーフローを防ぐために設定されるビットである。ガードビットの値は、ＱＣＤマーカセグメントに含まれる。
【０１１１】
後述するステップで生成されるコードストリームには、ガードビットの値の他に、原データにおける画素のビット数、すなわち、ビット深さの情報と、色空間変換処理の有無を示す情報が含まれる。これらの情報により、コードストリームから画像を復号する復号器が、画素の値をオーバーフローさせることなく復号することができる。
【０１１２】
ステップＳ１０３に続いてステップＳ１０４に進み、暗号化手段１１が暗号化方式を決定し、暗号化のブロック長を取得する。ステップＳ１０４に続いてステップＳ１０５に進み、領域ビット数決定手段１２が、一の暗号化ウェーブレット係数あたりのビット数Ｅを計算する。
【０１１３】
より詳細には、例えば、一のブロック暗号化処理において処理対象となるウェーブレット係数の個数を以下の式（ｂ）によって定められるｎ又はｎの整数倍とする。
【０１１４】
暗号化方式のブロック長／ｎ
＝（ｃｅｉｌ（ウェーブレット係数の最大ビット深さ／１６））×１６  ・・・・（ｂ）
但し、ｃｅｉｌは、シーリング関数である。
【０１１５】
ここで、一のブロック暗号化処理において処理対象となるウェーブレット変換係数の個数をｎの取り得る最大値とすることにより、一の変換係数の領域に対する暗号化処理の回数を好適に少なくすることができる。また、式（ｂ）において、値１６を用いていることにより、メモリへの一の読み出し又は一の書き込みの際のビット数が１６ビット又は３２ビット毎の場合に、好適に読み出し又は書き込みを行うことができる。そこで、ｎが取り得る最大値における暗号化方式のブロック長／ｎの値を、一の暗号化ウェーブレット係数あたりのビット数Ｅとする。
【０１１６】
そこで、一ウェーブレット係数あたりのビット数の最大値Ｍが１３ビットの場合に、ブロック長１２８ビットの暗号化処理を行う際には、ｎの取り得る値は、１から８となり、ｎが８の場合に、１６ビット毎にアクセスされるメモリへの読み出し又は書き込みを好適に行うことができる。そこで、１２８／８＝１６、すなわち、一の暗号化ウェーブレット係数あたりのビット数Ｅは１６となる。
【０１１７】
ステップＳ１０５に続いてステップＳ１０６に進み、保護ビット数決定手段２２が、ステップＳ１０５で計算された一の暗号化ウェーブレット係数あたりのビット数Ｅと、ステップＳ１０３で計算されたウェーブレット係数のビット数の最大値Ｍとに基づいて、符号データに含ませるガードビット数Ｇを計算する。ガードビット数Ｇは、次式（ｃ）によって計算される。
【０１１８】
ガードビット数Ｇ＝暗号化を行わない場合のガードビット数＋Ｅ−Ｍ・・・（ｃ）
式（ｃ）より、Ｅが１６、Ｍが１３の場合には、ガードビット数Ｇは、（暗号化を行わない場合のガードビット数＋３）となり、暗号化を行わない場合のガードビット数が２の場合には、Ｇは５となる。
【０１１９】
ところで、サブバンドｂにおけるウェーブレット係数のビット深さを求める式（ａ）は、次の式（ｄ）及び式（ｅ）から導かれる。
【０１２０】
【数１】
2009049790.tif 000003
但し、ＲＩは、原データのビット数であって式（ａ）におけるｂｉｔ１、
ζは、色変換によるビット数の増加値であって、式（ａ）におけるｂｉｔ２であり、下付添字のｃは、色コンポーネントを表す添字、
Ｇは、ガードビットであって、ウェーブレット変換によるビット数の増加分のうち、サブバンド間で共通に増加する値であり、式（ａ）におけるｂｉｔ３、
ｌｏｇ２（ｇａｉｎｂ）は、ウェーブレット変換によるビット数の増加分のうち、サブバンド間で異なる増加量の差であってＬＬサブバンドを基準とする値であり、式（ａ）におけるｂｉｔ４、
である。
【０１２１】
式（ｄ）の右辺は、式（ａ）の右辺から１を引いた値に等しい。ここで１を減じているのは、次の理由による。すなわち、ＪＰＥＧ２０００規格では、原画像のデータに対してＤＣレベルシフトを行い、例えば０〜２５５の画素値を―１２８〜＋１２７の値にし、絶対値と極性とを別個に符号化する。ここで、式（ｄ）によるＭｂは、絶対値分に対応するビット数であり、式（ａ）は、絶対値分に極性分を加えたビット数である。そこで、ウェーブレット係数をオーバーフローさせないために必要となるメモリ上の一ウェーブレット係数あたりのビット数は、式（ａ）で得られる値となる。
【０１２２】
なお、ＪＰＥＧ２０００規格によるコードストリームでは、原データのビット深さの情報は、ＳＩＺマーカセグメントに含まれ、色空間変換処理の有無を示す情報は、ＣＯＤマーカセグメントに含まれる。
【０１２３】
ステップＳ１０６に続いてステップＳ１０７に進み、符号データ生成手段２３が、ＳＥＣマーカ及び付随するデータからなるＳＥＣマーカセグメントを生成する。ステップＳ１０７に続いてステップＳ１０８に進み、符号データ生成手段２３が、ＺＯＩマーカ及び付随するデータからなるＺＯＩマーカセグメントを生成する。ここで生成されるＺＯＩマーカセグメントは、例えば、図２９から図３１の何れか一の設定にしたがう。
【０１２４】
ステップＳ１０８に続いてステップＳ１０９に進み、アドレス生成手段１３が、１変換係数あたりのビット数をＥとして、メモリ上のアドレスを生成することにより、原画像の２倍の画素数分の領域をメモリ３０上に確保する。ここで、原画像の２倍の画素数とは、原変換係数の数と暗号化変換係数の数とを加算した数と等しい。
【０１２５】
ステップＳ１０９に続いてステップＳ１１０に進み、周波数分解手段２１が、原画像のデータである原データに対してウェーブレット変換を行い、ウェーブレット係数を生成する。
【０１２６】
ステップＳ１１０に続いてステップＳ１１１に進み、暗号化手段１１が、ステップＳ１１０で生成されたウェーブレット係数に対して、暗号化処理を行う。なお、ここでの暗号化処理は、全てのウェーブレット係数に対して行われてもよく、また、一部のウェーブレット係数に対して行われてもよい。
【０１２７】
より詳細には、例えば、ステップＳ１０８で生成されたＺＯＩマーカセグメントが、図２９の設定による場合には、３ＬＬサブバンドのウェーブレット係数全てに対して暗号化処理を行う。また例えば、ステップＳ１０８で生成されたＺＯＩマーカセグメントが、図３０の設定による場合には、３ＬＬサブバンドの左上の一のプリシンクトのウェーブレット係数に対して暗号化処理を行う。また例えば、ステップＳ１０８で生成されたＺＯＩマーカセグメントが、図３１の設定による場合には、３ＬＬサブバンドの左上の一のコードブロックのウェーブレット係数に対して暗号化処理を行う。
【０１２８】
例えば、３ＬＬサブバンドのウェーブレット係数のビット数は最大で１３ビットであるが、本発明の一実施の形態では、１３ビットにさらに３ビットの所定の値を付加した１６ビットの値を生成する。その１６ビットの値を、ウェーブレット係数の並び順に８つずつビット結合することにより、１２８ビットの値を得、その１２８ビットの値に対して、ブロック暗号化処理を行う。
【０１２９】
また例えば、３ＬＬサブバンドのウェーブレット係数を、並び順に８つずつビット結合した１０４ビットに、さらに、２４ビットの所定の値を付加した１２８ビットの値を生成し、その１２８ビットの値に対してブロック暗号化処理を行ってもよい。
【０１３０】
すなわち、本発明の実施の形態では、タイルのサイズ、デコンポジションレベル、又は、コードブロックサイズを好適に設定することにより、一のブロック暗号処理において同時に暗号化される原変換係数の個数ｎと、暗号化する領域のサイズとを好適に対応させることができる。
【０１３１】
より詳細には、例えば、タイルサイズが横ｘ、縦ｙの場合、デコンポジションレベルｄのサブバンドのサイズは（ｘ／２＾ｄ）×（ｙ／２＾ｄ）となる。したがって、サブバンド全体を暗号化するならば、（ｘ／２＾ｄ）×（ｙ／２＾ｄ）がｎの倍数になるようにタイルサイズを決定するとよい。また例えば、一のプリシンクトを暗号化する場合には、プリシンクトの縦横各々のサイズはである２＾ｐ（ただし０≦ｐ≦１４）が、ｎの倍数になるｐを選択するとよい。また例えば、一のコードブロックを暗号化する場合には、コードブロックの縦横各々のサイズである２＾ｃ（ただし２≦ｃ≦１０）が、ｎの倍数になるｃを選べばよい。
【０１３２】
ステップＳ１１１に続いてステップＳ１１２に進み、量子化／可変長符号化手段２５が、暗号化の対象とならなかったウェーブレット係数及び暗号化ウェーブレット係数に対して、ＭＱ符号化処理を行い、ＭＱ符号を生成する。ステップＳ１１２に続いてステップＳ１１３に進み、符号データ生成手段２３が、ステップＳ１０７で生成されたＳＥＣマーカセグメント、ステップＳ１０８で生成されたＺＯＩマーカセグメント、及び、ステップＳ１１２で生成されたＭＱ符号を含むコードストリームを生成する。
【０１３３】
なお、図３２の例では、ＳＥＣマーカセグメント及びＺＯＩマーカセグメントを生成した後に、ステップＳ１０９からステップＳ１１２の処理を行っているが、マーカセグメントの生成は、ステップＳ１１３におけるコードストリームの生成より前であればよく、生成されるマーカセグメントによって設定される内容が、ステップＳ１１０からステップＳ１１２の処理と対応していればよい。
【０１３４】
上記実施の形態では、ＪＰＥＧ２０００規格による符号データにおける保護ビット、すなわち、ガードビットの数に、変換係数を暗号化処理することにより増加する増分ビット数を含ませることにより、既存の符号フォーマットにおいて、増分ビットに係る情報を含ませることを実現したが、本発明の実施の形態は、ＪＰＥＧ２０００規格による符号データに限らない。周波数変換、逆周波数変換、量子化、又は、逆量子化等の処理においてオーバーフローを防止するために追加されるビット数に係る情報を含む符号フォーマットにおいて、その追加されるビット数に増分ビット数を加えた符号データを生成し又は処理する構成であればよい。
【０１３５】
以上の説明に関してさらに以下のような態様が考えられる。
（付記１）
原データを周波数分解して得られた複数の原変換係数を暗号化して暗号化変換係数を生成する暗号化手段と、
前記原変換係数に対する周波数分解の逆処理の演算処理におけるオーバーフローを防止するために前記原変換係数に追加する保護ビットの保護ビット数を決定する保護ビット数決定手段と、
前記保護ビット数と前記暗号変換係数とを含む符号データを生成する符号データ生成手段と、
を有し、
前記保護ビット数決定手段は、前記暗号化手段による暗号化により前記暗号化変換係数が前記原変換係数に対して増加する増分ビット数を、前記保護ビット数に加算した値を、前記符号データに含ませる保護ビット数とする画像符号化装置。
（付記２）
前記増分ビット数は、一の前記暗号化変換係数あたりのビット数と前記原変換係数のビット数の最大値との差である付記１記載の画像符号化装置。
（付記３）
前記暗号化手段は、ブロック暗号による暗号化を行う場合に、前記ブロック暗号のブロック長以下、かつ、前記原変換係数のビット数の最大値以上の２のべき乗の所定のビット数毎に、前記原変換係数が配されたブロックを生成して暗号化を行い、
前記符号データ生成手段は、前記所定のビット数を一の前記暗号化係数あたりのビット数とする付記２記載の画像符号化装置。
（付記４）
前記暗号化手段は、ブロック暗号による暗号化を行う場合に、複数の前記原変換係数を連結したブロックを生成してブロック暗号化を行い、
前記符号データ生成手段は、前記ブロック暗号のブロック長の該ブロックに含まれる複数の前記原変換係数の数による商を、一の前記暗号化変換係数あたりのビット数とする付記２記載の画像符号化装置。
（付記５）
前記符号データが、ＪＰＥＧ２０００規格による符号データの場合に、前記保護ビットは、ガードビットである付記１ないし４何れか一項に記載の画像符号化装置。
（付記６）
原データを周波数分解して得られた複数の原変換係数を暗号化して暗号化変換係数を生成する暗号化ステップと、
前記原変換係数に対する周波数分解の逆処理の演算処理におけるオーバーフローを防止するために前記原変換係数に追加する保護ビットの保護ビット数を決定する保護ビット数決定ステップと、
前記保護ビット数と前記暗号変換係数とを含む符号データを生成する符号データ生成ステップと、
を有し、
前記保護ビット数決定ステップは、前記暗号化ステップにおける暗号化により前記暗号化変換係数が前記原変換係数に対して増加する増分ビット数を、前記保護ビット数に加算した値を、前記符号データに含ませる保護ビット数とする画像符号化方法。
（付記７）
付記６記載の画像符号化方法をコンピュータに実行させるためのコンピュータプログラム。
（付記８）
付記７記載のコンピュータプログラムを格納したコンピュータ読取可能な情報記録媒体。
【０１３６】
以上、発明を実施するための最良の形態について説明を行ったが、本発明は、この最良の形態で述べた実施の形態に限定されるものではない。本発明の主旨をそこなわない範囲で変更することが可能である。
【図面の簡単な説明】
【０１３７】
【図１】本発明の一実施の形態に係る画像符号化装置の機能構成の例の図。
【図２】本発明の一実施の形態に係る画像符号化装置の装置構成の例の図。
【図３】発明の一実施の形態に係る画像符号化装置によって行われる暗号化方式を説明する図。
【図４】ＪＰＥＧ２０００規格による画像データの符号化処理及び符号データの復号処理における暗号化処理の概略を説明する図
【図５】画像、タイル、サブバンド、プリシンクト、及び、コードブロックの関係を説明する図。
【図６】サブバンドと解像度レベルとの関係を説明する図。
【図７】レイヤとレイヤに含まれるパケットとを説明する図。
【図８】図７の例におけるパケットを説明する図。
【図９】プログレッションオーダを説明する図。
【図１０】ＪＰＳＥＣ用のマーカセグメントを含むコードストリームを説明する図。
【図１１】ＳＥＣマーカセグメントの構成を説明する図。
【図１２】ＰＳＥＣの詳細を説明する図。
【図１３】Ｔｏｏｌ（ｉ）の詳細を説明する図。
【図１４】テンプレート値とその値に対応する意味とを説明する図。
【図１５】ＰＩＤの詳細を説明する図。
【図１６】ＴＩＤの詳細を説明する図。
【図１７】ＣＴｄｅｃｒｙの詳細を説明する図。
【図１８】ブロック暗号化に対応する場合のＣＴｄｅｃｒｙの値を説明する図。
【図１９】ＺＯＩの詳細を説明する図。
【図２０】Ｚｏｎｅｋの詳細を説明する図。
【図２１】ゾーン記述クラスの構造を説明する図。
【図２２】ゾーン記述クラスの記述内容を説明する図。
【図２３】ゾーン記述クラスの画像に関係する記述クラスの内容を説明する図。
【図２４】ゾーン記述パラメータＰｚｏｉ０、ｋの詳細を説明する図。
【図２５】ＺＯＩのモードＭｚｏｉの値に対応する内容を説明する図。
【図２６】Ｇの詳細を説明する図。
【図２７】ＰＯの取り得る値とその意味の例を説明する図。
【図２８】ＧＬの取り得る値とその意味の例を説明する図。
【図２９】ＪＰＥＧ２０００規格によるコードストリームの一部に暗号化を行う際に設定するパラメータの例の図（その１）。
【図３０】ＪＰＥＧ２０００規格によるコードストリームの一部に暗号化を行う際に設定するパラメータの例の図（その２）。
【図３１】ＪＰＥＧ２０００規格によるコードストリームの一部に暗号化を行う際に設定するパラメータの例の図（その３）。
【図３２】ＪＰＥＧ２０００規格による画像符号化処理における変換係数のうち、所定の領域の変換係数を暗号化する処理の例のフロー図。
【符号の説明】
【０１３８】
１  画像符号化装置
１１  暗号化手段
１２  領域ビット数決定手段
１３  アドレス生成手段
２１  周波数分解手段
２２  保護ビット数決定手段
２３  符号データ生成手段
２４  色変換手段
２５  量子化／可変長符号化手段
３０  メモリ
４０  画像符号化装置
４１  ＣＰＵ
４２  ＲＡＭ
４３  ＨＤＤ
【図１】
2009049790.tif 000004
【図２】
2009049790.tif 000005
【図３】
2009049790.tif 000006
【図４】
2009049790.tif 000007
【図５】
2009049790.tif 000008
【図６】
2009049790.tif 000009
【図７】
2009049790.tif 000010
【図８】
2009049790.tif 000011
【図９】
2009049790.tif 000012
【図１０】
2009049790.tif 000013
【図１１】
2009049790.tif 000014
【図１２】
2009049790.tif 000015
【図１３】
2009049790.tif 000016
【図１４】
2009049790.tif 000017
【図１５】
2009049790.tif 000018
【図１６】
2009049790.tif 000019
【図１７】
2009049790.tif 000020
【図１８】
2009049790.tif 000021
【図１９】
2009049790.tif 000022
【図２０】
2009049790.tif 000023
【図２１】
2009049790.tif 000024
【図２２】
2009049790.tif 000025
【図２３】
2009049790.tif 000026
【図２４】
2009049790.tif 000027
【図２５】
2009049790.tif 000028
【図２６】
2009049790.tif 000029
【図２７】
2009049790.tif 000030
【図２８】
2009049790.tif 000031
【図２９】
2009049790.tif 000032
【図３０】
2009049790.tif 000033
【図３１】
2009049790.tif 000034
【図３２】
2009049790.tif 000035