Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4101073B2 - Image encoding apparatus, encoding / decoding apparatus, program, and storage medium - Google Patents
[go: Go Back, main page]

JP4101073B2 - Image encoding apparatus, encoding / decoding apparatus, program, and storage medium - Google Patents

Image encoding apparatus, encoding / decoding apparatus, program, and storage medium Download PDF

Info

Publication number
JP4101073B2
JP4101073B2 JP2003025141A JP2003025141A JP4101073B2 JP 4101073 B2 JP4101073 B2 JP 4101073B2 JP 2003025141 A JP2003025141 A JP 2003025141A JP 2003025141 A JP2003025141 A JP 2003025141A JP 4101073 B2 JP4101073 B2 JP 4101073B2
Authority
JP
Japan
Prior art keywords
scramble
visible watermark
image
data
coefficient
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003025141A
Other languages
Japanese (ja)
Other versions
JP2004236231A (en
Inventor
隆之 西村
高弘 柳下
幸男 門脇
悌 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003025141A priority Critical patent/JP4101073B2/en
Publication of JP2004236231A publication Critical patent/JP2004236231A/en
Application granted granted Critical
Publication of JP4101073B2 publication Critical patent/JP4101073B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Television Systems (AREA)
  • Facsimile Transmission Control (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像符号化装置、符号復号化装置、プログラム及び記憶媒体に関する。
【0002】
【従来の技術】
近年、インターネットやパソコン等の普及・発展に伴い、インターネットを通じたデジタルデータの通信が幅広く行われるようになってきている。ここに、このようなデジタルデータの送信者は、そのデータを符号化して送信するようにしている。現に、プロバイダ等のデータ送信者(配布者)は、符号化された画像データを不特定多数の利用者に送信して配給するサービスを行っている。このようなサービスの一つとして、通信販売等に置ける商品紹介に関するようなデータを、インターネットを通じて利用者に配信することが考えられる。この場合、プロバイダに対して予め料金を支払っている利用者(閲覧資格者)が、その支払った金額に応じて、受信した符号化データを復号して閲覧できるサービスである。
【0003】
しかしながら、このように不特定多数の人に符号化データを配信するサービスにおいては、閲覧資格者のみがその符号化されたデータを正しく復号できなければ意味がない。かといって、将来、プロバイダと契約して閲覧資格者となる可能性のある一般ユーザが、全く、その符号化された画像データを認識できないと、元々興味を引かず、その閲覧資格者数の増大を見込めない。
【0004】
このようなことから、この種の符号データに関しては、不可視の電子透かしを埋め込む方法の他に、例えば、地紋縞模様のような可視透かしデータをデジタルデータ中に埋め込むマーキング技術がある。ネットワーク等を介して利用者に供給されるデジタルデータに何らかの付加情報が埋め込まれていることを明示するためには、可視透かしデータを用いるマーキング技術が適しているが、可視透かしデータが付加されたデジタルデータは、その一部が可視透かしデータにより隠されたり画質が低下するので、利用者は、可視透かしデータが除去されない限り、本来の元のデジタルデータを見ることはできない。そこで、例えば、可視透かしデータをデジタルデータに埋め込んで付加情報が埋め込まれていることを明示しつつ配信し、供給者に当該デジタルデータの対価を支払った正当な利用者にのみ、付加情報を除いたデジタルデータの使用を許可したいような場合がある(例えば、特許文献1参照)。
【0005】
また、この種の符号データに関しては、スクランブル処理した符号データとして配信する一方、閲覧資格者には復号時にスクランブルを解除するためのソフトウェア等を配布しておくことで、閲覧資格者は復号時にはスクランブルを解除して本来の正常な画像を閲覧できるようにするスクランブル方式も広く用いられている。このようにスクランブル処理することで、閲覧資格のないユーザは、本来の画像としては見にくかったり多少判りにくくなったりするが、逆に、本来の画像を見たくなる等の宣伝効果が生じ、閲覧資格者数の増大を見込めることとなる。
【0006】
このようなスクランブル方式に関しては、多数の提案例がある。そのうち、例えば、ラインローテーション、ラインバーミュテーション等のようにデータ列の並べ替えによって実現する方式と(例えば、特許文献2参照)、画像データのランダマイズ化(乱数暗号化)によって実現する方式と、その他の方式(例えば、色空間軸の回転方式)等がある(これらについては、例えば、特許文献3参照)。
【0007】
また、近年においては、高精細画像を実現する画像圧縮方式の一つとして、高圧縮率でも高画質な画像を復元可能なJPEG2000という新しい方式が規格化されつつある。かかるJPEG2000においては、画像を矩形領域(タイル)に分割することにより、少ないメモリ環境下で圧縮伸長処理を行うことが可能である。すなわち、個々のタイルが圧縮伸長プロセスを実行する際の基本単位となり、圧縮伸長動作はタイル毎に独立に行うことができる。
【0008】
【特許文献1】
特開2000−184177公報
【特許文献2】
特開2001−218184公報
【特許文献3】
特開2000−115581公報
【0009】
【発明が解決しようとする課題】
ところで、特許文献1,2,3に記載されているような可視透かしデータを埋め込む方式やスクランブル方式を組み合わせて用いたいような場合が考えられる。そのような場合には、単に方式を組み合わせるだけでなく、その処理順序も変更できるようにすれば便利である。
【0010】
本発明の目的は、スクランブル化処理と可視透かし埋め込み処理とについての組み合わせ及び処理順序を選択自在とすることにより、画像の使用目的等に応じて画質劣化レベルを細かく設定することができるようにすることである。
【0011】
【課題を解決するための手段】
請求項1記載の発明の画像符号化装置は、画像データを1又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換、量子化及び符号化という手順で階層的に圧縮符号化する圧縮符号化手段を備える画像符号化装置において、前記圧縮符号化手段により量子化され、ビットプレーン化された離散ウェーブレット変換係数のうち有意係数を含む最上位以外の係数のビット係数、及び前記最上位以外の係数の隣の桁のビット係数を反転して、データのスクランブル化を行うスクランブル化手段と、前記圧縮符号化手段により量子化された離散ウェーブレット変換係数に対し、可視透かしを埋め込む可視透かし埋め込み手段と、前記スクランブル化手段によるスクランブル化処理と前記可視透かし埋め込み手段による可視透かし埋め込み処理とについての組み合わせ及び処理順序を指定可能とする処理指定手段と、を備え、前記処理指定手段により指定された組み合わせ及び処理順序に基づいて、前記スクランブル化手段によるスクランブル化処理と前記可視透かし埋め込み手段による可視透かし埋め込み処理とを実行するようにした。
【0012】
したがって、スクランブル化処理と可視透かし埋め込み処理とについての組み合わせ及び処理順序を選択自在とすることにより、画像の使用目的等に応じて画質劣化レベルを細かく設定することが可能になる。また、このようなビットプレーン化された離散ウェーブレット変換係数のうち有意係数を含む最上位以外の係数のビット係数、及び前記最上位以外の係数の隣の桁のビット係数を反転して、スクランブル化することで、効果的なスクランブルをかけることができる。また、スクランブル化により対象となるビット係数を反転させる場合、そのビット係数の反転処理よりこの部分で極端に表示画像の明るさが変わってしまい画質劣化することがあるので、この画質劣化への影響を軽減・緩和させることができるが、隣の桁を反転させることにより、元の画像が判らなくことを防止することができる。
【0013】
請求項2記載の発明は、請求項1記載の画像符号化装置において、前記処理指定手段による指定により、前記スクランブル化手段によるスクランブル化処理を実行した後に、前記可視透かし埋め込み手段による可視透かし埋め込み処理を実行する。
【0014】
したがって、このような符号データについて、可視透かしを除去せず、かつ、スクランブル化されたままで復号処理した場合には、画像は鮮明に見ることはできないが可視透かしは鮮明に読み取れる状態となる。
【0015】
請求項3記載の発明は、請求項1記載の画像符号化装置において、前記処理指定手段による指定により、前記可視透かし埋め込み手段による可視透かし埋め込み処理を実行した後に、前記スクランブル化手段によるスクランブル化処理を実行する。
【0016】
したがって、このような符号データについて、可視透かしを除去せず、かつ、スクランブル化されたままで復号処理した場合には、画像のみならず透かしもおぼろげにしか見えない状態となる。
【0017】
請求項4記載の発明は、請求項1記載の画像符号化装置において、前記処理指定手段による指定により、前記スクランブル化手段によるスクランブル化処理を実行した後に、前記スクランブル化手段によるスクランブル化処理を再度実行する。
【0018】
したがって、隠蔽レベルの高いスクランブル機能を発揮することが可能になる。
【0023】
請求項記載の発明は、請求項記載の画像符号化装置において、離散ウェーブレット変換係数のうちの離散ウェーブレット変換処理によるサブバンドの階層位置の選択によりスクランブルレベルが可変設定自在である。
【0024】
したがって、画像データを1又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換、量子化及び符号化という手順で階層的に圧縮符号化する圧縮符号化手段(例えば、JPEG2000アルゴリズム)によれば、解像度に関してサブバンド階層構造を有し、低階層のLLなるサブバンドが最も解像度の高い部分となるので、例えば、低階層のサブバンド部分のデータをランダマイズ化によりスクランブルをかければ、繊細なスクランブル、即ち、サムネイル画像への画質劣化の影響を与えにくいスクランブルを実現でき、離散ウェーブレット変換処理によるサブバンドの階層位置の選択によりスクランブルレベルが可変設定自在となる。
【0025】
請求項記載の発明は、請求項記載の画像符号化装置において、離散ウェーブレット変換による符号化単位となる複数の矩形領域が集合しスクランブル化が施されるブロックの大きさの選択によりスクランブルレベルが可変設定自在である。
【0026】
したがって、画像データを1又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換、量子化及び符号化という手順で階層的に圧縮符号化する圧縮符号化手段(例えば、JPEG2000アルゴリズム)によれば、画像全体に限らず、符号化単位となる複数の矩形領域(タイル)を単位として処理が可能であるので、例えば、ランダマイズによるスクランブル化を行う領域を限定するブロックの大きさを大きくすると、雑然としたスクランブル画像となり、画像中で表現される元の形(画像全体像)が判り難くなるスクランブル、即ち、サムネイル画像への画質劣化の影響を与えやすいスクランブルを実現でき、スクランブル化が施されるブロックの大きさの選択によりスクランブルレベルが可変設定自在となる。
【0065】
【発明の実施の形態】
本発明の実施の一形態を図1ないし図16に基づいて説明する。
【0066】
最初に、本発明の前提となる「階層符号化アルゴリズム」及び「JPEG2000アルゴリズム」の概要について説明する。
【0067】
図1は、JPEG2000方式の基本となる階層符号化アルゴリズムを実現するシステムの機能ブロック図である。このシステムは、色空間変換・逆変換部101、2次元ウェーブレット変換・逆変換部102、量子化・逆量子化部103、エントロピー符号化・復号化部104、タグ処理部105の各機能ブロックにより構成されている。
【0068】
このシステムが従来のJPEGアルゴリズムと比較して最も大きく異なる点の一つは変換方式である。JPEGでは離散コサイン変換(DCT:Discrete Cosine Transform)を用いているのに対し、この階層符号化アルゴリズムでは、2次元ウェーブレット変換・逆変換部102において、離散ウェーブレット変換(DWT:Discrete Wavelet Transform)を用いている。DWTはDCTに比べて、高圧縮領域における画質が良いという長所を有し、この点が、JPEGの後継アルゴリズムであるJPEG2000でDWTが採用された大きな理由の一つとなっている。
【0069】
また、他の大きな相違点は、この階層符号化アルゴリズムでは、システムの最終段に符号形成を行うために、タグ処理部105の機能ブロックが追加されていることである。このタグ処理部105で、画像の圧縮動作時には圧縮データが符号列データとして生成され、伸長動作時には伸長に必要な符号列データの解釈が行われる。そして、符号列データによって、JPEG2000は様々な便利な機能を実現できるようになった。例えば、ブロック・ベースでのDWTにおけるオクターブ分割に対応した任意の階層(デコンポジション・レベル)で、静止画像の圧縮伸長動作を自由に停止させることができるようになる(後述する図3参照)。
【0070】
原画像の入出力部分には、色空間変換・逆変換101が接続される場合が多い。例えば、原色系のR(赤)/G(緑)/B(青)の各コンポーネントからなるRGB表色系や、補色系のY(黄)/M(マゼンタ)/C(シアン)の各コンポーネントからなるYMC表色系から、YUVあるいはYCbCr表色系への変換又は逆変換を行う部分がこれに相当する。
【0071】
次に、JPEG2000アルゴリズムについて説明する。
【0072】
カラー画像は、一般に、図2に示すように、原画像の各コンポーネント111(ここではRGB原色系)が、矩形をした領域によって分割される。この分割された矩形領域は、一般にブロックあるいはタイルと呼ばれているものであるが、JPEG2000では、タイルと呼ぶことが一般的であるため、以下、このような分割された矩形領域をタイルと記述することにする(図2の例では、各コンポーネント111が縦横4×4、合計16個の矩形のタイル112に分割されている)。このような個々のタイル112(図2の例で、R00,R01,…,R15/G00,G01,…,G15/B00,B01,…,B15)が、画像データの圧縮伸長プロセスを実行する際の基本単位となる。したがって、画像データの圧縮伸長動作は、コンポーネント毎、また、タイル112毎に、独立に行われる。
【0073】
画像データの符号化時には、各コンポーネント111の各タイル112のデータが、図1の色空間変換・逆変換部101に入力され、色空間変換を施された後、2次元ウェーブレット変換部102で2次元ウェーブレット変換(順変換)が施されて、周波数帯に空間分割される。
【0074】
図3には、デコンポジション・レベル数が3の場合の、各デコンポジション・レベルにおけるサブバンドを示している。すなわち、原画像のタイル分割によって得られたタイル原画像(0LL)(デコンポジション・レベル0)に対して、2次元ウェーブレット変換を施し、デコンポジション・レベル1に示すサブバンド(1LL,1HL,1LH,1HH)を分離する。そして引き続き、この階層における低周波成分1LLに対して、2次元ウェーブレット変換を施し、デコンポジション・レベル2に示すサブバンド(2LL,2HL,2LH,2HH)を分離する。順次同様に、低周波成分2LLに対しても、2次元ウェーブレット変換を施し、デコンポジション・レベル3に示すサブバンド(3LL,3HL,3LH,3HH)を分離する。図3では、各デコンポジション・レベルにおいて符号化の対象となるサブバンドを、網掛けで表してある。例えば、デコンポジション・レベル数を3としたとき、網掛けで示したサブバンド(3HL,3LH,3HH,2HL,2LH,2HH,1HL,1LH,1HH)が符号化対象となり、3LLサブバンドは符号化されない。
【0075】
次いで、指定した符号化の順番で符号化の対象となるビットが定められ、図1に示す量子化・逆量子化部103で対象ビット周辺のビットからコンテキストが生成される。
【0076】
この量子化の処理が終わったウェーブレット係数は、個々のサブバンド毎に、「プレシンクト」と呼ばれる重複しない矩形に分割される。これは、インプリメンテーションでメモリを効率的に使うために導入されたものである。図4に示したように、一つのプレシンクトは、空間的に一致した3つの矩形領域からなっている。更に、個々のプレシンクトは、重複しない矩形の「コード・ブロック」に分けられる。これは、エントロピー・コーディングを行う際の基本単位となる。
【0077】
ウェーブレット変換後の係数値は、そのまま量子化し符号化することも可能であるが、JPEG2000では符号化効率を上げるために、係数値を「ビットプレーン」単位に分解し、画素あるいはコード・ブロック毎に「ビットプレーン」に順位付けを行うことができる。
【0078】
ここで、図5はビットプレーンに順位付けする手順の一例を示す説明図である。図5に示すように、この例は、原画像(32×32画素)を16×16画素のタイル4つで分割した場合で、デコンポジション・レベル1のプレシンクトとコード・ブロックの大きさは、各々8×8画素と4×4画素としている。プレシンクトとコード・ブロックの番号は、ラスター順に付けられており、この例では、プレンシクトが番号0から3まで、コード・ブロックが番号0から3まで割り当てられている。タイル境界外に対する画素拡張にはミラーリング法を使い、可逆(5,3)フィルタでウェーブレット変換を行い、デコンポジション・レベル1のウェーブレット係数値を求めている。
【0079】
また、タイル0/プレシンクト3/コード・ブロック3について、代表的な「レイヤ」構成の概念の一例を示す説明図も図5に併せて示す。変換後のコード・ブロックは、サブバンド(1LL,1HL,1LH,1HH)に分割され、各サブバンドにはウェーブレット係数値が割り当てられている。
【0080】
レイヤの構造は、ウェーブレット係数値を横方向(ビットプレーン方向)から見ると理解し易い。1つのレイヤは任意の数のビットプレーンから構成される。この例では、レイヤ0,1,2,3は、各々、1,3,1,3のビットプレーンから成っている。そして、LSB(Least Significant Bit:最下位ビット)に近いビットプレーンを含むレイヤ程、先に量子化の対象となり、逆に、MSB(Most Significant Bit:最上位ビット)に近いレイヤは最後まで量子化されずに残ることになる。LSBに近いレイヤから破棄する方法はトランケーションと呼ばれ、量子化率を細かく制御することが可能である。
【0081】
図1に示すエントロピー符号化・復号化部104では、コンテキストと対象ビットから確率推定によって、各コンポーネント111のタイル112に対する符号化を行う。こうして、原画像の全てのコンポーネント111について、タイル112単位で符号化処理が行われる。最後にタグ処理部105は、エントロピー符号化・復号化部104からの全符号化データを1本の符号列データに結合するとともに、それにタグを付加する処理を行う。
【0082】
図6には、この符号列データの1フレーム分の概略構成を示している。この符号列データの先頭と各タイルの符号データ(bit stream)の先頭にはヘッダ(メインヘッダ(Main header)、タイル境界位置情報等であるタイルパートヘッダ(tile part header))と呼ばれるタグ情報が付加され、その後に、各タイルの符号化データが続く。なお、メインヘッダ(Main header)には、符号化パラメータや量子化パラメータが記述されている。そして、符号列データの終端には、再びタグ(end of codestream)が置かれる。また、図7は、符号化されたウェーブレット係数値が収容されたパケットをサブバンド毎に表わしたコードストリーム構造を示すものである。図7に示すように、タイルによる分割処理を行っても、あるいはタイルによる分割処理を行わなくても、同様のパケット列構造を持つことになる。
【0083】
一方、符号化データの復号化時には、画像データの符号化時とは逆に、各コンポーネント111の各タイル112の符号列データから画像データを生成する。この場合、タグ処理部105は、外部より入力した符号列データに付加されたタグ情報を解釈し、符号列データを各コンポーネント111の各タイル112の符号列データに分解し、その各コンポーネント111の各タイル112の符号列データ毎に復号化処理(伸長処理)を行う。このとき、符号列データ内のタグ情報に基づく順番で復号化の対象となるビットの位置が定められるとともに、量子化・逆量子化部103で、その対象ビット位置の周辺ビット(既に復号化を終えている)の並びからコンテキストが生成される。エントロピー符号化・復号化部104で、このコンテキストと符号列データから確率推定によって復号化を行い、対象ビットを生成し、それを対象ビットの位置に書き込む。このようにして復号化されたデータは周波数帯域毎に空間分割されているため、これを2次元ウェーブレット変換・逆変換部102で2次元ウェーブレット逆変換を行うことにより、画像データの各コンポーネントの各タイルが復元される。復元されたデータは色空間変換・逆変換部101によって元の表色系の画像データに変換される。
【0084】
以上が、「JPEG2000アルゴリズム」の概要である。画像データの符号化に際しては、入力された画像データをウェーブレット変換した結果の離散ウェーブレット変換係数を量子化するまでは、可逆または非可逆な変換過程をとることができ、量子化の処理が終わった離散ウェーブレット変換係数からエントロピー符号化等の符号列データを生成するまでは可逆変換過程となる。また、符号データの復号化に際して、入力された(圧縮保存済みの)符号列データから離散ウェーブレット変換係数データ(または、量子化係数データ:可逆圧縮の場合は量子化しないため)を復号化するまでは、可逆変換過程をとることとなり、復号化した離散ウェーブレット変換係数データから画像データを生成するまでは可逆または非可逆な変換過程をとることができる。
【0085】
[画像符号化装置、符号復号化装置]
以下、本発明の実施の一形態について説明する。本発明では、上述したJPEG2000アルゴリズムにおけるウェーブレット量子化係数(量子化された離散ウェーブレット変換係数)を使用して、JPEG2000圧縮処理内で、ウェーブレット量子化係数への可視透かしの埋め込み及びスクランブル化を実行する画像符号化装置、埋め込まれた可視透かしの除去及びスクランブルの解除を実行する符号復号化装置への適用例を示す。なお、ここでは、JPEG2000を代表とする画像圧縮伸長技術に関する例について説明するが、言うまでもなく、本発明は以下の説明の内容に限定されるものではない。
【0086】
本実施の形態の画像符号化装置、符号復号化装置は、その一例として、インターネット等のネットワークを利用してプロバイダから各ユーザに画像データ(デジタルコンテンツ)を配布するシステム構成を想定しており、配布元となるプロバイダのコンピュータ(サーバコンピュータ)を画像符号化装置、配布先となる各ユーザのコンピュータ(クライアントコンピュータ)を符号復号化装置とする例である。
【0087】
図8はこのようなシステムを示す概略システム構成図であり、プロバイダの画像符号化装置となるサーバコンピュータ1にはインターネット等のネットワーク2を介して各ユーザの符号復号化装置となるクライアントコンピュータ3が接続可能とされている。
【0088】
図9は、これらのサーバコンピュータ1やクライアントコンピュータ3のハードウェア構成を概略的に示すブロック図である。図9に示すように、コンピュータ1,3は、当該コンピュータの主要部であって各部を集中的に制御するCPU(Central Processing Unit)6を備えている。このCPU6には、BIOSなどを記憶した読出し専用メモリであるROM(Read Only Memory)7と、各種データを書換え可能に記憶するRAM(Random Access Memory)8とがバス9で接続されている。RAM8は、各種データを書換え可能に記憶する性質を有していることから、CPU6の作業エリアとして機能し、例えば入力バッファ等の役割を果たす。
【0089】
さらにバス9には、各種のプログラムやデータを記憶するHDD(Hard Disk Drive)10と、配布されたプログラムであるコンピュータソフトウェアを読み取るための機構としてCD(Compact Disc)−ROM11を読み取るCD−ROMドライブ12と、コンピュータ1,3とネットワーク2との通信を司る通信制御装置13と、キーボードやマウスなどの入力装置14と、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)である表示装置15と、イメージスキャナやデジタルカメラ等であって画像データを入力する画像入力装置17とが、図示しないI/Oを介して接続されている。また、論理回路16も、バス9を介してCPU6に接続されている。
【0090】
また、図9に示すCD−ROM11は、この発明の記憶媒体を実施するものであり、OS(Operating System)や各種コンピュータソフトウェアが記憶されている。CPU6は、CD−ROM11に記憶されているコンピュータソフトウェアをCD−ROMドライブ12で読み取り、HDD10にインストールする。
【0091】
なお、記憶媒体としては、CD−ROM11のみならず、DVDなどの各種の光ディスク、各種光磁気ディスク、フレキシブル・ディスクなどの各種磁気ディスク等、半導体メモリ等の各種方式のメディアを用いることができる。また、通信制御装置13を介してインターネットなどのネットワーク5からコンピュータソフトウェアをダウンロードし、HDD10にインストールするようにしてもよい。この場合に、送信側のサーバでコンピュータソフトウェアを記憶している記憶装置も、この発明の記憶媒体である。なお、コンピュータソフトウェアは、所定のOS(Operating System)上で動作するものであってもよいし、その場合に後述の各種処理の一部の実行をOSに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやOSなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【0092】
このような構成のコンピュータ1,3のHDD10には、コンピュータソフトウェアの一つとして、画像を処理する画像処理プログラムが記憶されている。この画像処理プログラムは本発明のプログラムを実施するものである。そして、この画像処理プログラムに基づいてCPU6が実行する処理により、コンピュータ1,3の各部における各種機能を実現する。なお、リアルタイム性が重要視される場合には、処理を高速化する必要がある。そのためには、論理回路16の動作により、各部における各種機能を実現するようにするのが望ましい。
【0093】
ここで、サーバコンピュータ1のCPU6又はクライアントコンピュータ3のCPU6が画像処理プログラムに基づいて実行する各種の演算処理のうち、本実施の形態の特長的な処理について以下に説明する。
【0094】
[サーバコンピュータにおける画像符号化処理]
まず、サーバコンピュータ1のCPU6が実行する画像符号化処理について説明する。本実施の形態における画像符号化処理は、概略的には、JPEG2000アルゴリズムに従って生成されたウェーブレット量子化係数に対し、スクランブル化及び可視透かしの埋め込みを実行するものである。
【0095】
図10に示すように、サーバコンピュータ1においては、画像符号化処理に際し、入力部21、ウェーブレット変換部22、係数量子化部23、可逆圧縮符号化部24、出力部25、スクランブル化手段として機能するスクランブル化部27、可視透かし埋め込み手段として機能する可視透かし埋め込み部28の各機能が、CPU6が画像処理プログラムに基づいて実行する各種の演算処理により実現される。
【0096】
より詳細には、サーバコンピュータ1のCPU6は、画像処理プログラムに基づき、画像入力装置17から処理対象となる画像データの入力を受付ける入力部21、受付けた画像データに対して色空間変換等の処理を施した後、2次元ウェーブレット変換処理を行う2次元ウェーブレット変換部22(図1に示す101、102に相当)、変換された離散ウェーブレット変換係数に対して効率のよい圧縮を行うためにそのダイナミックレンジを削減するポスト量子化等の非可逆な量子化処理を行う係数量子化部23(図1に示す103に相当)、量子化されたウェーブレット量子化係数に対して前述のエントロピー符号化(係数モデリング+算術符号化)等の可逆圧縮符号化処理を行う可逆圧縮符号化部24(図1に示す104に相当)、符号化された符号データの並べ替え処理等を行い、必要箇所に出力する符号データ出力部25(図1に示す105に相当)による圧縮符号化手段26を実現する。
【0097】
加えて、この圧縮符号化手段26により可逆圧縮符号化される直前のデータ、ここでは、係数量子化部23により量子化されたウェーブレット量子化係数をスクランブル化するスクランブル化部27と、可視透かしデータを符号データ中に埋め込む可視透かし埋め込み部28とが付加されている。
【0098】
ここで、スクランブル化部27でのスクランブル化処理について説明する。このスクランブル化部27はランダマイズ化によりデータのスクランブル化を行うものである。即ち、スクランブル前の元のデータに対してハッシュ(Hash)関数に基づくハッシュ変換を施して乱数暗号化(ランダマイズ化)することにより、スクランブル前の元のデータを解読できないようにするものである。このハッシュ関数は、引数を種(タネ)にして生成する一方向性の乱数発生関数であり、
性質1;出力値から入力値は推測できない
性質2;入力値が1ビットでも変わると、出力値は全面的に変化する
性質3;同じ出力になる異なる2つの入力の探索は現実的には不可能
なる性質を有している(出典;電子情報通信学会誌2000年2月“公平性保証とプライバシー保護”佐古和恵)。
【0099】
このようにハッシュ変換は、生成後のデータから元のデータを推定することが不可能であるため、データのスクランブル化に際してハッシュ変換を用いることにより、その解読を防止することができる。
【0100】
また、スクランブル化されたデータを復号する際にパスワードを含む専用のソフトウェアにより元のデータへの復元を可能にするため、スクランブルデータとスクランブル前のデータとの差分値(ずらし量)をハッシュ関数を用いたランダマイズで復元できるように暗号化した電子透かしデータが、画像全体のスクランブル後のデータ(ここでは、量子化・スクランブル化されたウェーブレット量子化係数)中に埋め込まれる。
【0101】
ここで、ランダマイズで復元可能な暗号化の方法の一例を簡単に説明する。まず、ハッシュ変換の方法の一例を、
[変換結果データ]=[変換元データ]*[生成元]%[法:素数]
[変換元データ]=[変換結果データ]−1*[生成元]%[法:素数]
とした場合、その暗号化の例としては、

Figure 0004101073
が挙げられる。したがって、具体的なハッシュ変換例を例示すると、
[法:素数]=127
[生成元]=3
[変換元データ]=0x20010831(日付:2001年8月31日)
<[変換結果データ]使用の変換>
変換後data:0xE0839894
<[変換結果データ]−1使用の変換>
変換後data:0xB5D5ADE5
[逆変換後データ]=0x20010831(日付:2001年8月31日)
となり、復元される。暗号化には、周知のRSAなどの公開鍵方式を利用してもよい。
【0102】
ハッシュ変換を用いたスクランブル化処理時の元のデータからのずらし量(差分値)の決定方法の、より具体的な例について説明する。
【0103】
いま、
Rk=Hash(“パスワード”,“直前(k−1)番目の処理済値”)の最下位ビットを除いた値
Pk=Hash(“パスワード”,“直前(k−1)番目の処理済値”)の最下位ビット→ON:*(−1),OFF:*(+1)
とすると(Pkに関する式中の処理済値とは、順次処理(画素の並び)における直前の処理結果(ずらし処理済みの量子化データ)である)、
(ずらし量)=Rk*(程度因子)*Pk
で表される。具体的な数値例を示すと、表1に示すような量子化データの並びの場合、
【0104】
【表1】
Figure 0004101073
【0105】
ただし、表1中、▲1▼は処理順序No.▲2▼は元の量子化データ、▲3▼はスクラン
ブル用増減値(ずらし量)*(程度因子:2)である。
【0106】
Rk=Hash(“パスワード”,(11+2*2))=7→3(最下位ビットを除いた値)
Pk=Hash(“パスワード”,(11+2*2))=7→−1(最下位ビットがON)
(ずらし量)=3*(程度因子:2)*(−1)=−6
となる。
【0107】
なお、スクランブル化部27で乱数暗号化するデータの対象としては、離散ウェーブレット変換係数の最上位係数を避け、下位係数を主体に行うことが望ましい。上位係数ほど元の画像データに近いものであり、このような係数を対象にランダマイズすると、暗号化の程度が大きくなり、スクランブル画像から元の画像を全く想像できなくなってしまうからである。もっとも、最上位係数しかない場合には、最上位係数を乱数暗号化の対象とする。
【0108】
より具体的には、量子化としてビットプレーン化されたビット係数(離散ウェーブレット変換係数)の有意係数を対象としてスクランブル化すればよい。「ビット係数の有意係数」とは、例えば前述のJPEG2000アルゴリズム中で説明したようにビット表現した処理対象となるビットプレーン化された離散ウェーブレット変換係数を上位ビットから下位ビット方向に符号化する場合に、注目するビット係数が0でないことが判っている係数をいう。このようなビットプレーン化されたビット係数の有意係数を対象としてスクランブル化することで、効果的なスクランブルをかけることができる。
【0109】
この場合のスクランブル化処理例として、対象となるビット係数を反転させる方式(“0”→“1”に反転、又は、“1”→“0”に反転)を採ることができる。このようなビット係数反転方式を採る場合、その隣り桁(直上桁又は直下桁)のビット係数も併せて反転させることが望ましい。即ち、“0”→“1”に反転であれば、“1”→“0”に反転し、“1”→“0”に反転であれば、“0”→“1”に反転する。これは、スクランブル化により対象となるビット係数を反転させる場合には、そのビット係数の反転処理よりこの部分で極端に表示画像の明るさが変わってしまい画質劣化することがあるので、この画質劣化への影響を軽減・緩和させるためである。もっとも、この場合もあまりスクランブルをかけすぎると元の画像が判らなくなってしまうので、このような場合には、直下桁側の隣り桁のみ反転させることが望ましい。
【0110】
次に、可視透かし埋め込み部28での可視透かし埋め込み処理について説明する。一方、可視透かし埋め込み部28による可視透かしの埋め込みは、元の画像の内容が全く見えないように可視透かしデータであるダミー画像(例えば、丸秘フォント文字画像や地紋縞模様など)で置換するとともに、復号処理に際して、置換されたダミー画像データを元のデータ内容に復元するための電子透かしデータを埋め込む処理である。このように元の画像の内容が全く見えないようにダミー画像で置換することにより、結果として、当該元の画像部分の画質を劣化させ、当該デジタルコンテンツ全体の価値を下げるためのものである。よって、いわゆる地紋のように画像全体に付加する必要はなく、重要となる部分や目立つ部分、例えば、フォント形状領域等の限定された特定の領域で十分である。より具体的な例として、ここでは、例えば、ダミー画像(例えば、丸秘フォント文字画像や地紋縞模様など)で置換するとともに、置換前の元のデータとダミー画像データとの差分値(ずらし量)を復元できるように暗号化した電子透かしデータを、画像全体のデータ(ここでは、量子化されたウェーブレット量子化係数)中に埋め込むものである。
【0111】
例えば、図11を参照して説明する。図11は入力された元画像O(Org)中の「元」で示す一部の指定された領域の元のデータo(i.j)(i行j列のピクセル値)を「丸秘」で示すダミー画像データd(i.j)(i行j列のピクセル値)で置換する例を模式的に示している。このようなケースでは、ダミー画像データd(i.j)と元のデータo(i.j)と入力されたパスワードとの論理演算値を電子透かし情報w(i.j)と見倣す。即ち、
w(i.j)←o(i.j)+d(i.j)+“パスワード”
(ただし、“+”は排他的論理演算を表している)
となる。したがって、後述するようなパスワードを用いた復号時には、当該電子透かし情報を抽出し、
o(i.j)←w(i.j)+d(i.j)+“パスワード”
なる論理演算を行うことにより元のデータの復元が可能となる。
【0112】
また、この可視透かし埋め込み部28は、ダミー画像置換領域の元のデータに対しては、その改ざんを検出するための改ざん検出用データを電子透かしデータの一部として生成し埋め込む処理も行う。この改ざん検出用データ中には、オリジナル画像であることを識別するための識別コードも含まれ、電子透かしデータとして埋め込まれる。この結果、可視透かし埋め込み部28はダミー画像から元のデータの復元用の可視透かし情報w(i.j)は、改ざん検出用の可視透かしの埋め込み位置とダミー画像置換領域とは重複しない位置に埋め込むように埋め込み位置が設定される。
【0113】
ところで、本実施の形態においては、これらのスクランブル化部27と可視透かし埋め込み部28とは、入力部21に対して画像データとともに所定のパスワード(英数字等による複数桁の暗証番号等)が入力された場合に、入力されたパスワードに応じて選択的に機能するように構成されている。より具体的には、入力されたパスワードに応じ、スクランブル化部27によるスクランブル化処理と可視透かし埋め込み部28による可視透かし埋め込み処理との処理順序を変更するものである。
【0114】
ここで、図12は入力されたパスワードに応じて処理順序を選択するためのテーブルを示す模式図である。図12に示すように、例えば、入力されたパスワードが“PassWord1”であった場合の処理順序は「可視透かし埋め込み処理→スクランブル化処理」と、入力されたパスワードが“PassWord2”であった場合の処理順序は「スクランブル化処理→可視透かし埋め込み処理」と、入力されたパスワードが“PassWord3”であった場合の処理順序は「スクランブル化処理→スクランブル化処理」と、入力されたパスワードが“PassWord4”であった場合の処理順序は「可視透かし埋め込み処理のみ」と、入力されたパスワードが“PassWord5”であった場合の処理順序は「スクランブル化処理のみ」と、設定される。なお、本実施の形態においては、“PassWord3”であった場合のように、スクランブル化部27によるスクランブル化処理を二重に施すことにより、隠蔽レベルの高いスクランブル機能を発揮することも可能になっている。なお、複数の異なるスクランブル化処理を行うスクランブル化部27を備えることにより、より隠蔽レベルの高いスクランブル機能を発揮することも可能である。また、パスワードが入力されない場合には、スクランブル化部27及び可視透かし埋め込み部28の処理を経ることなく、可逆圧縮符号化処理に移行する。ここに、処理指定手段が実現されている。
【0115】
そこで、サーバコンピュータ1において実行されるこのような画像符号化処理における情報埋め込み処理(可視透かし埋め込み処理、スクランブル化処理)を図13に示す概略フローチャートを参照して説明する。図13に示すように、前述したようなテーブルを用いて入力されたパスワードに応じた処理順序を取得する(ステップS1)と、続くステップS2〜S6において、取得した処理順序に従ってスクランブル化部27によるスクランブル化処理と可視透かし埋め込み部28による可視透かし埋め込み処理とを実行する。
【0116】
例えば、入力されたパスワードが“PassWord1”であった場合には、最初の処理は「可視透かし埋め込み処理」であるから(ステップS2のN、ステップS3のY)、ウェーブレット量子化係数に対して可視透かし埋め込み部28による可視透かし埋め込み処理を実行する(ステップS4)。そして、可視透かし埋め込み処理の次に実行する処理は「スクランブル化処理」であるから(ステップS2のN、ステップS3のN、ステップS5のY)、可視透かし埋め込み処理が実行されたウェーブレット量子化係数に対してスクランブル化部27によるスクランブル化処理を実行する(ステップS6)。以上により、入力されたパスワードが“PassWord1”であった場合の処理順序が全て終了したことになる(ステップS2のY)。
【0117】
順序が指定された処理が全て終了した場合には(ステップS2のY)、ステップS7に進み、処理順序を電子透かしデータの一部として生成して埋め込む処理を行う。
【0118】
このようにしてスクランブル化され、または、可視透かしデータが埋め込まれたウェーブレット量子化係数は、可逆圧縮符号化部24によって可逆変換が施されるとともにタグ処理等が施され、HDD10等のメモリに記憶保持される。
【0119】
ここで、図14は情報埋め込み処理(可視透かし埋め込み処理、スクランブル化処理)の処理順序に従って処理された画像イメージを例示的に示す説明図である。例えば、入力されたパスワードが“PassWord1”であって「可視透かし埋め込み処理→スクランブル化処理」という順序で処理された場合には、プロバイダから閲覧許可されてそのための専用ソフトが配給されていない通常のJPEG2000アルゴリズムのみの復号化ソフトによる復号処理では、デジタルコンテンツ(画像)のみならず透かしもおぼろげにしか見えない状態となる(図14(1)参照)。また、入力されたパスワードが“PassWord2”であって「スクランブル化処理→可視透かし埋め込み処理」という順序で処理された場合には、プロバイダから閲覧許可されてそのための専用ソフトが配給されていない通常のJPEG2000アルゴリズムのみの復号化ソフトによる復号処理では、デジタルコンテンツ(画像)は鮮明に見ることはできないが可視透かしによる説明文等は鮮明に読み取れる状態となる(図14(2)参照)。
【0120】
ここに、スクランブル化部27によるスクランブル化処理と可視透かし埋め込み部28による可視透かし埋め込み処理とについての組み合わせ及び処理順序を指定可能とし、指定された組み合わせ及び処理順序に基づいて、スクランブル化部27によるスクランブル化処理と可視透かし埋め込み部28による可視透かし埋め込み処理とを実行するようにした。これにより、スクランブル化処理と可視透かし埋め込み処理とについての組み合わせ及び処理順序を選択自在とすることが可能になるので、画像の使用目的等に応じて画質劣化レベルを細かく設定することが可能になる。
【0121】
なお、スクランブル化部27による量子化データ(ウェーブレット量子化係数)のスクランブル処理に際しては、JPEG2000の特徴を利用することにより、そのスクランブルレベル(したがって、画質劣化レベル)を任意に可変設定することができるので、プロバイダが提供する画像データの目的・用途に応じて適宜スクランブルレベルを設定することにより、画質劣化レベルを加減したスクランブル画像を提供することができる。
【0122】
このようなスクランブルレベルを可変設定する一例としては、JPEG2000アルゴリズムにおける図5中に示したようなビットプレーン処理を利用することができる。つまり、JPEG2000アルゴリズムによれば、画像データの閲覧に際してサブバンド機能等を利用することでサムネイル画像の提供が簡単に行えるが、例えば、ビットプレーンにおけるビット係数の上位ビットのデータをランダマイズ化によりスクランブルをかければ、解像度は変わらない状態で画像の形が崩れることによりボケたようなスクランブル、即ち、サムネイル画像への画質劣化の影響を与えやすいスクランブルを実現できる。よって、ビットプレーンにおけるビット係数のビット位置の選択によりスクランブルレベルが可変設定自在となる。
【0123】
スクランブルレベルを可変設定する他例としては、JPEG2000アルゴリズムの離散ウェーブレット変換処理によるサブバンド構造を利用することができる。JPEG2000アルゴリズムによれば、解像度に関して図3等に示したようなサブバンド階層構造を有し、低階層のLLなるサブバンドが最も解像度の高い部分となるので、例えば、低階層のサブバンド部分のデータをランダマイズ化によりスクランブルをかければ、繊細なスクランブル、即ち、サムネイル画像への画質劣化の影響を与えにくいスクランブルを実現できる。よって、離散ウェーブレット変換処理によるサブバンドの階層位置の選択によりスクランブルレベルが可変設定自在となる。
【0124】
スクランブルレベルを可変設定するさらに他例としては、JPEG2000アルゴリズムにおける処理単位を利用することができる。JPEG2000アルゴリズムによれば、図4等で前述したように、画像全体に限らず、符号化単位となる複数の矩形領域(タイル)を単位として処理が可能であるので、例えば、ランダマイズによるスクランブル化を行う領域を限定するブロックの大きさを大きくすると、雑然としたスクランブル画像となり、画像中で表現される元の形(画像全体像)が判り難くなるスクランブル、即ち、サムネイル画像への画質劣化の影響を与えやすいスクランブルを実現できる。よって、スクランブル化が施されるブロックの大きさの選択によりスクランブルレベルが可変設定自在となる。
【0125】
[クライアントコンピュータにおける画像符号化処理]
次に、クライアントコンピュータ3のCPU6が実行する符号復号化処理について説明する。本実施の形態のクライアントコンピュータ3は、プロバイダであるサーバコンピュータ1から配布される符号データをJPEG2000アルゴリズムの非可逆モードにより復号化し、かつ、スクランブルの解除及び可視透かしの除去を実行して元の画像データを復元するものである。
【0126】
図15に示すように、クライアントコンピュータ3においては、符号復号化処理に際し、入力部31、可逆圧縮符号の復号化部32、ウェーブレット逆変換部33、可視透かし除去手段である可視透かし除去部35、スクランブル解除手段であるスクランブル解除部36の各機能が、CPU6が画像処理プログラムに基づいて実行する各種の演算処理により実現される。
【0127】
より詳細には、クライアントコンピュータ3のCPU6は、画像処理プログラムに基づき、サーバコンピュータ1からネットワーク2を通じて配布される前述のようにスクランブル化や可視透かしが埋め込まれた符号データの入力を受付ける入力部31に対して、受付けた符号データに対してエントロピー復号化処理等の可逆圧縮符号の復号化処理を行う可逆圧縮符号の復号化部32、2次元ウェーブレット逆変換等を行って元の画像データに復元する2次元ウェーブレット逆変換部33(図1に示す103,102,101等に相当)による復号化手段34を実現する。
【0128】
加えて、復号化部32と2次元ウェーブレット逆変換部33との間には、符号データ中に埋め込まれている可視透かしデータを除去する可視透かし除去部35と、符号データのスクランブルを解除するスクランブル解除部36とが付加されている。
【0129】
可視透かし除去部35は、符号データ中に埋め込まれている電子透かしデータを解読し、解読された電子透かしデータ中の差分値データ等に基づく前述したような論理演算で、置換された元のデータo(i,j)を復元する。このような元のデータの復元に際しては、可視透かしデータの解読によりダミー画像データに外接する矩形領域(ダミー画像置換領域)の大きさで元のデータを復元することで、ダミー画像置換領域と、その外側の領域との境界部の移り変わりを滑らかにすることができる。そして、ダミー画像置換領域のダミー画像データをこの復元した元のデータで再置換して元に戻す。
【0130】
スクランブル解除部36は、符号データ中に埋め込まれている電子透かしデータを解読し、解読された電子透かしデータ中の差分値データ等に基づき符号データのスクランブルを解除する。
【0131】
ここで、前述のハッシュ変換を用いたスクランブル化処理時の元のデータからのずらし量(差分値)の決定方法に対応する、クライアントコンピュータ3側での復号時の戻し量の決定方法の、具体的な例について説明する。
【0132】
いま、
Rk=Hash(“パスワード”,“復元前の直前(k−1)番目の量子化データ値”)
の最下位ビットを除いた値
Pk=Hash(“パスワード”,“復元前の(k−1)番目の量子化データ値”)の
最下位ビット→ON:*(−1),OFF:*(+1)
とすると(Pkに関する式中の復元前の量子化データ値とは、順次処理(画素の並び)における直前の量子化データの復元前データ(ずらし状態のままの量子化データ)である)、
(戻し量)=−(ずらし量)=Rk*(程度因子)*Pk*(−1)
で表される。具体的な数値例を示すと、前述の表1に示すような量子化データの並びの場合、前述のずらし量決定の場合と同様に、
Rk=3(最下位ビットを除いた値)
Pk=−1(最下位ビットがON)
(戻し量)=−(ずらし量)=3*(程度因子:2)*(−1)*(−1)=+6となる。
【0133】
ところで、本実施の形態においては、これらの可視透かし除去部35とスクランブル解除部36とは、入力部31に対して符号データとともに閲覧を許可されたユーザであることを示す所定のパスワード(英数字等による複数桁の暗証番号等)が入力された場合に、電子透かしデータとして符号データに埋め込まれている処理順序を取得し、この処理順序とは逆の順序で可視透かし除去部35による可視透かし除去処理とスクランブル解除部36によるスクランブル解除処理とを実行するものである。
【0134】
そこで、クライアントコンピュータ3において実行されるこのような符号復号化処理における情報排除処理(可視透かし除去処理、スクランブル解除処理)を図15に示す概略フローチャートを参照して説明する。図15に示すように、入力されたパスワードが正しい場合には(ステップS1のY)、電子透かしデータとして符号データに埋め込まれている処理順序を取得し(ステップS12:処理順序取得手段)、この処理順序とは逆の処理順序を設定し(ステップS13)、続くステップS14〜S18において、取得した処理順序に従って可視透かし除去部35による可視透かし除去処理とスクランブル解除部36によるスクランブル解除処理とを実行する。
【0135】
例えば、取得した処理順序が「可視透かし埋め込み処理→スクランブル化処理」であった場合には、ここでの処理順序は、「スクランブル解除処理→可視透かし除去処理」のように設定される。したがって、最初の処理は「スクランブル解除処理」であるから(ステップS14のN、ステップS15のN、ステップS17のY)、符号データに対してスクランブル解除部36によるスクランブル解除処理を実行する(ステップS18)。そして、スクランブル解除処理の次に実行する処理は「可視透かし除去処理」であるから(ステップS14のN、ステップS15のY)、スクランブル解除処理が実行された符号データに対して可視透かし除去部35による可視透かし除去処理を実行する(ステップS16)。以上により、元の画像データの閲覧が可能となる。
【0136】
ここに、画像符号化装置であるサーバコンピュータ1により圧縮符号化された符号データを生成した際におけるスクランブル化処理と可視透かし埋め込み処理との組み合わせ及び処理順序とは逆の順序で、可視透かし除去処理とスクランブル解除処理とが行われることにより、元の画像データを復元することが可能になるので、このような機能を発揮するソフトウェア等の配布をコントロールすることで、特定の者に対してのみに元画像の閲覧を許可することが可能になる。
【0137】
また、復号過程において、電子透かしデータ中に含まれる改ざん検出用のデータを利用することで、不当にダミー画像データを消去するような改ざんがあったか否かを発見することが可能となり、不正使用から保護することができる。特に、ダミー画像データを含む画像がオリジナル画像と識別できないような場合が発生しても、識別コードの有無により容易に識別可能となり、不正使用からの保護を強化することができる。
【0138】
【発明の効果】
請求項1記載の発明の画像符号化装置は、画像データを1又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換、量子化及び符号化という手順で階層的に圧縮符号化する圧縮符号化手段を備える画像符号化装置において、前記圧縮符号化手段により量子化され、ビットプレーン化された離散ウェーブレット変換係数のうち有意係数を含む最上位以外の係数のビット係数、及び前記最上位以外の係数の隣の桁のビット係数を反転して、データのスクランブル化を行うスクランブル化手段と、前記圧縮符号化手段により量子化された離散ウェーブレット変換係数に対し、可視透かしを埋め込む可視透かし埋め込み手段と、前記スクランブル化手段によるスクランブル化処理と前記可視透かし埋め込み手段による可視透かし埋め込み処理とについての組み合わせ及び処理順序を指定可能とする処理指定手段と、を備え、前記処理指定手段により指定された組み合わせ及び処理順序に基づいて、前記スクランブル化手段によるスクランブル化処理と前記可視透かし埋め込み手段による可視透かし埋め込み処理とを実行するようにしたことにより、スクランブル化処理と可視透かし埋め込み処理とについての組み合わせ及び処理順序を選択自在とすることにより、画像の使用目的等に応じて画質劣化レベルを細かく設定することが可能になる。また、このようなビットプレーン化された離散ウェーブレット変換係数のうち有意係数を含む最上位以外の係数のビット係数、及び前記最上位以外の係数の隣の桁のビット係数を反転して、スクランブル化することで、効果的なスクランブルをかけることができる。また、スクランブル化により対象となるビット係数を反転させる場合、そのビット係数の反転処理よりこの部分で極端に表示画像の明るさが変わってしまい画質劣化することがあるので、この画質劣化への影響を軽減・緩和させることができるが、隣の桁を反転させることにより、元の画像が判らなくことを防止することができる。
【0139】
請求項2記載の発明によれば、請求項1記載の画像符号化装置において、前記処理指定手段による指定により、前記スクランブル化手段によるスクランブル化処理を実行した後に、前記可視透かし埋め込み手段による可視透かし埋め込み処理を実行することにより、このような符号データについて、可視透かしを除去せず、かつ、スクランブル化されたままで復号処理した場合には、画像は鮮明に見ることはできないが可視透かしは鮮明に読み取れる状態となる。
【0140】
請求項3記載の発明によれば、請求項1記載の画像符号化装置において、前記処理指定手段による指定により、前記可視透かし埋め込み手段による可視透かし埋め込み処理を実行した後に、前記スクランブル化手段によるスクランブル化処理を実行することにより、このような符号データについて、可視透かしを除去せず、かつ、スクランブル化されたままで復号処理した場合には、画像のみならず透かしもおぼろげにしか見えない状態となる。
【0141】
請求項4記載の発明によれば、請求項1記載の画像符号化装置において、前記処理指定手段による指定により、前記スクランブル化手段によるスクランブル化処理を実行した後に、前記スクランブル化手段によるスクランブル化処理を再度実行することにより、隠蔽レベルの高いスクランブル機能を発揮することができる。
【0144】
請求項記載の発明によれば、請求項記載の画像符号化装置において、離散ウェーブレット変換係数のうちの離散ウェーブレット変換処理によるサブバンドの階層位置の選択によりスクランブルレベルが可変設定自在であることにより、画像データを1又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換、量子化及び符号化という手順で階層的に圧縮符号化する圧縮符号化手段(例えば、JPEG2000アルゴリズム)によれば、解像度に関してサブバンド階層構造を有し、低階層のLLなるサブバンドが最も解像度の高い部分となるので、例えば、低階層のサブバンド部分のデータをランダマイズ化によりスクランブルをかければ、繊細なスクランブル、即ち、サムネイル画像への画質劣化の影響を与えにくいスクランブルを実現でき、離散ウェーブレット変換処理によるサブバンドの階層位置の選択によりスクランブルレベルが可変設定自在となる。
【0145】
請求項記載の発明によれば、請求項記載の画像符号化装置において、離散ウェーブレット変換による符号化単位となる複数の矩形領域が集合しスクランブル化が施されるブロックの大きさの選択によりスクランブルレベルが可変設定自在であることにより、画像データを1又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換、量子化及び符号化という手順で階層的に圧縮符号化する圧縮符号化手段(例えば、JPEG2000アルゴリズム)によれば、画像全体に限らず、符号化単位となる複数の矩形領域(タイル)を単位として処理が可能であるので、例えば、ランダマイズによるスクランブル化を行う領域を限定するブロックの大きさを大きくすると、雑然としたスクランブル画像となり、画像中で表現される元の形(画像全体像)が判り難くなるスクランブル、即ち、サムネイル画像への画質劣化の影響を与えやすいスクランブルを実現でき、スクランブル化が施されるブロックの大きさの選択によりスクランブルレベルが可変設定自在となる。
【図面の簡単な説明】
【図1】本発明の前提となるJPEG2000方式の基本となる階層符号化アルゴリズムを実現するシステムの機能ブロック図である。
【図2】原画像の各コンポーネントの分割された矩形領域を示す説明図である。
【図3】デコンポジション・レベル数が3の場合の、各デコンポジション・レベルにおけるサブバンドを示す説明図である。
【図4】プレシンクトを示す説明図である。
【図5】ビットプレーンに順位付けする手順の一例を示す説明図である。
【図6】符号列データの1フレーム分の概略構成を示す説明図である。
【図7】符号化されたウェーブレット係数値が収容されたパケットをサブバンド毎に表わしたコードストリーム構造を示す説明図である。
【図8】本発明の実施の一形態のシステムを示す概略システム構成図である。
【図9】サーバコンピュータやクライアントコンピュータのハードウェア構成を概略的に示すブロック図である。
【図10】画像処理プログラムに基づいてサーバコンピュータのCPUが実行する画像符号化処理により実現される機能を示す機能ブロック図である。
【図11】ダミー画像データの置換例を示す模式図である。
【図12】入力されたパスワードに応じて処理順序を選択するためのテーブルを示す模式図である。
【図13】情報埋め込み処理(可視透かし埋め込み処理、スクランブル化処理)の流れを概略的に示すフローチャートである。
【図14】情報埋め込み処理(可視透かし埋め込み処理、スクランブル化処理)の処理順序に従って処理された画像イメージを例示的に示す説明図である。
【図15】画像処理プログラムに基づいてクライアントコンピュータのCPUが実行する符号復号化処理により実現される機能を示す機能ブロック図である。
【図16】情報排除処理(可視透かしデータ除去処理、スクランブル解除処理)の流れを概略的に示すフローチャートである。
【符号の説明】
1 画像符号化装置
3 符号復号化装置
11 記憶媒体
26 圧縮符号化手段
27 スクランブル化手段
28 可視透かし埋め込み手段
35 可視透かし除去手段
36 スクランブル解除手段[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image encoding device, an encoding / decoding device, a program, and a storage medium.
[0002]
[Prior art]
In recent years, with the spread and development of the Internet and personal computers, digital data communication through the Internet has been widely performed. Here, the sender of such digital data encodes and transmits the data. Actually, a data sender (distributor) such as a provider performs a service of transmitting encoded image data to an unspecified number of users for distribution. As one of such services, it may be possible to distribute data related to product introduction that can be placed in mail order sales to users through the Internet. In this case, the user (browsing qualified person) who has paid a fee to the provider in advance can decode and receive the received encoded data according to the paid amount.
[0003]
However, in such a service that distributes encoded data to an unspecified number of people, it is meaningless if only a qualified person can not correctly decode the encoded data. However, if a general user who may contract with a provider in the future and become a viewing qualified person cannot recognize the encoded image data at all, he will not be interested in the original, We cannot expect increase.
[0004]
For this reason, for this type of code data, there is a marking technique for embedding visible watermark data such as a tint block pattern in digital data in addition to a method for embedding an invisible digital watermark. In order to clearly indicate that some additional information is embedded in digital data supplied to the user via a network or the like, marking technology using visible watermark data is suitable, but visible watermark data has been added. Since a part of the digital data is hidden by the visible watermark data or the image quality is deteriorated, the user cannot see the original digital data unless the visible watermark data is removed. Therefore, for example, the visible watermark data is embedded in the digital data and distributed while clearly indicating that the additional information is embedded, and the additional information is excluded only from legitimate users who paid the price of the digital data to the supplier. In some cases, it is desired to permit the use of digital data (see, for example, Patent Document 1).
[0005]
In addition, this type of code data is distributed as scrambled code data, while software for releasing the scramble at the time of decoding is distributed to the viewing qualified person so that the viewing qualified person can scramble at the time of decoding. A scramble method is also widely used in which the original normal image can be viewed by canceling. By scrambling in this way, users who do not have the viewing qualification may find it difficult to see the original image or may be somewhat difficult to understand, but conversely, an advertising effect such as wanting to see the original image occurs, The number of people can be expected to increase.
[0006]
There are many proposed examples of such a scramble system. Among them, for example, a method realized by rearranging data strings such as line rotation, line vermutation, etc. (see, for example, Patent Document 2), a method realized by randomizing image data (random number encryption), There are other methods (for example, a color space axis rotation method) and the like (for example, see Patent Document 3).
[0007]
In recent years, as one of image compression methods for realizing high-definition images, a new method called JPEG2000 capable of restoring high-quality images even at a high compression rate is being standardized. In JPEG2000, it is possible to perform compression / decompression processing in a small memory environment by dividing an image into rectangular regions (tiles). That is, each tile becomes a basic unit for executing the compression / decompression process, and the compression / decompression operation can be performed independently for each tile.
[0008]
[Patent Document 1]
JP 2000-184177 A
[Patent Document 2]
JP 2001-218184 A
[Patent Document 3]
JP 2000-115581 A
[0009]
[Problems to be solved by the invention]
By the way, there may be a case where it is desired to use a combination of a method of embedding visible watermark data and a scramble method as described in Patent Documents 1, 2, and 3. In such a case, it is convenient not only to combine the methods but also to change the processing order.
[0010]
An object of the present invention is to make it possible to finely set the image quality degradation level according to the purpose of use of an image, etc. by making it possible to select the combination and processing order of the scramble processing and the visible watermark embedding processing. That is.
[0011]
[Means for Solving the Problems]
The image encoding apparatus according to the first aspect of the present invention is a compression code that hierarchically compresses and encodes pixel values for each rectangular area obtained by dividing image data into one or a plurality of parts by a procedure of discrete wavelet transform, quantization, and encoding. In the image encoding device including the encoding unit, the image is quantized by the compression encoding unit.Inverting the bit coefficient of the coefficient other than the most significant coefficient including the significant coefficient among the discrete wavelet transform coefficients converted into the bit plane, and the bit coefficient of the digit next to the coefficient other than the most significant coefficient,A scrambling means for scrambling data; a visible watermark embedding means for embedding a visible watermark for the discrete wavelet transform coefficient quantized by the compression encoding means; a scrambling process by the scrambling means; and the visible watermark Scrambled by the scrambler based on the combination and process order designated by the process designating unit. The process and the visible watermark embedding process by the visible watermark embedding means are executed.
[0012]
Therefore, by making it possible to select the combination and processing order of the scramble process and the visible watermark embedding process, it is possible to set the image quality degradation level in detail according to the purpose of use of the image.In addition, the bit coefficients of non-most significant coefficients including significant coefficients among the discrete wavelet transform coefficients converted into bit planes, and the bit coefficients of the digits next to the non-most significant coefficients are inverted and scrambled. By doing so, effective scrambling can be applied. In addition, when the target bit coefficient is inverted by scramble, the brightness of the displayed image may change drastically in this part due to the inversion processing of the bit coefficient. However, by inverting the adjacent digit, it is possible to prevent the original image from being unclear.
[0013]
According to a second aspect of the present invention, in the image encoding device according to the first aspect, the visible watermark embedding process by the visible watermark embedding unit is performed after the scramble process by the scramble unit is executed by the designation by the process designating unit. Execute.
[0014]
Therefore, when such code data is decoded without removing the visible watermark and scrambled, the image cannot be clearly seen, but the visible watermark can be clearly read.
[0015]
According to a third aspect of the present invention, in the image encoding device according to the first aspect, the scrambling process by the scrambler is performed after the visible watermark embedding process by the visible watermark embedding part is executed by the designation by the process designation part. Execute.
[0016]
Therefore, when such code data is decoded without removing the visible watermark and being scrambled, not only the image but also the watermark can only be seen in a blurred manner.
[0017]
According to a fourth aspect of the present invention, in the image encoding device according to the first aspect, after the scramble process by the scramble unit is executed by the designation by the process designation unit, the scramble process by the scramble unit is performed again. Execute.
[0018]
Therefore, a scramble function with a high concealment level can be exhibited.
[0023]
Claim5The described invention is claimed.1In the described image encoding device, the scramble level can be variably set by selecting the subband hierarchical position by the discrete wavelet transform process among the discrete wavelet transform coefficients.
[0024]
Therefore, according to compression encoding means (for example, JPEG2000 algorithm) that hierarchically compresses and encodes pixel values for each rectangular area obtained by dividing image data into one or a plurality of parts by a procedure of discrete wavelet transform, quantization, and encoding. Since the subband hierarchical structure has a subband hierarchical structure with respect to the resolution, and the subband consisting of the lower layer LL becomes the highest resolution portion, for example, if the data of the subband portion of the lower layer is scrambled by randomization, delicate scramble That is, it is possible to realize scramble that does not easily affect the image quality degradation on the thumbnail image, and the scramble level can be variably set by selecting the subband hierarchy position by discrete wavelet transform processing.
[0025]
Claim6The described invention is claimed.1In the described image encoding apparatus, the scramble level can be variably set by selecting a size of a block in which a plurality of rectangular areas as encoding units by discrete wavelet transform are aggregated and scrambled.
[0026]
Therefore, according to compression encoding means (for example, JPEG2000 algorithm) that hierarchically compresses and encodes pixel values for each rectangular area obtained by dividing image data into one or a plurality of parts by a procedure of discrete wavelet transform, quantization, and encoding. Since processing is possible not only for the entire image but also for a plurality of rectangular areas (tiles) that are encoding units, for example, if the size of the block that limits the area to be scrambled by randomization is increased, it is cluttered The scrambled image is scrambled, and the original shape (whole image) expressed in the image is difficult to understand, that is, the scramble that easily affects the image quality degradation on the thumbnail image can be realized and scrambled. The scramble level can be variably set by selecting the block size.
[0065]
DETAILED DESCRIPTION OF THE INVENTION
An embodiment of the present invention will be described with reference to FIGS.
[0066]
First, an outline of the “hierarchical encoding algorithm” and the “JPEG2000 algorithm” which are the premise of the present invention will be described.
[0067]
FIG. 1 is a functional block diagram of a system that implements a hierarchical encoding algorithm that is the basis of the JPEG2000 system. This system includes color space transform / inverse transform unit 101, two-dimensional wavelet transform / inverse transform unit 102, quantization / inverse quantization unit 103, entropy encoding / decoding unit 104, and tag processing unit 105. It is configured.
[0068]
One of the biggest differences between this system and the conventional JPEG algorithm is the conversion method. In JPEG, discrete cosine transform (DCT) is used. In this hierarchical coding algorithm, the two-dimensional wavelet transform / inverse transform unit 102 uses discrete wavelet transform (DWT). ing. DWT has the advantage of better image quality in the high compression region than DCT, and this is one of the main reasons why DWT is adopted in JPEG2000, which is a successor algorithm of JPEG.
[0069]
Another major difference is that in this hierarchical encoding algorithm, a functional block of the tag processing unit 105 is added in order to perform code formation at the final stage of the system. The tag processing unit 105 generates compressed data as code string data during an image compression operation, and interprets code string data necessary for decompression during the decompression operation. And JPEG2000 can realize various convenient functions by code string data. For example, the compression / decompression operation of a still image can be freely stopped at an arbitrary layer (decomposition level) corresponding to octave division in block-based DWT (see FIG. 3 described later).
[0070]
In many cases, color space conversion / inverse conversion 101 is connected to the input / output portion of the original image. For example, the RGB color system composed of R (red) / G (green) / B (blue) components of the primary color system and the Y (yellow) / M (magenta) / C (cyan) components of the complementary color system This corresponds to the part that performs conversion or reverse conversion from the YMC color system consisting of the above to the YUV or YCbCr color system.
[0071]
Next, the JPEG2000 algorithm will be described.
[0072]
As shown in FIG. 2, in a color image, each component 111 (RGB primary color system here) of an original image is generally divided by a rectangular area. This divided rectangular area is generally called a block or a tile. In JPEG2000, it is generally called a tile. Therefore, such a divided rectangular area is hereinafter referred to as a tile. (In the example of FIG. 2, each component 111 is divided into a total of 16 rectangular tiles 112, 4 × 4 in length and breadth). When such individual tiles 112 (R00, R01,..., R15 / G00, G01,..., G15 / B00, B01,..., B15 in the example of FIG. 2) execute the image data compression / decompression process. It becomes the basic unit. Therefore, the compression / decompression operation of the image data is performed independently for each component and for each tile 112.
[0073]
At the time of encoding image data, the data of each tile 112 of each component 111 is input to the color space conversion / inverse conversion unit 101 in FIG. A dimensional wavelet transform (forward transform) is applied to divide the space into frequency bands.
[0074]
FIG. 3 shows subbands at each decomposition level when the number of decomposition levels is three. In other words, the tile original image (0LL) (decomposition level 0) obtained by tile division of the original image is subjected to two-dimensional wavelet transform, and the subbands (1LL, 1HL, 1LH shown in the decomposition level 1) , 1HH). Subsequently, the low-frequency component 1LL in this hierarchy is subjected to two-dimensional wavelet transformation to separate the subbands (2LL, 2HL, 2LH, 2HH) indicated by the decomposition level 2. Similarly, the low-frequency component 2LL is also subjected to two-dimensional wavelet transform to separate subbands (3LL, 3HL, 3LH, 3HH) shown in the decomposition level 3. In FIG. 3, the subbands to be encoded at each decomposition level are indicated by shading. For example, when the number of decomposition levels is 3, the subbands (3HL, 3LH, 3HH, 2HL, 2LH, 2HH, 1HL, 1LH, 1HH) indicated by shading are the encoding targets, and the 3LL subband is encoded. It is not converted.
[0075]
Next, the bits to be encoded are determined in the specified encoding order, and the context is generated from the bits around the target bits by the quantization / inverse quantization unit 103 shown in FIG.
[0076]
The wavelet coefficients that have undergone the quantization process are divided into non-overlapping rectangles called “precincts” for each subband. This was introduced to use memory efficiently in implementation. As shown in FIG. 4, one precinct consists of three rectangular regions that are spatially coincident. Further, each precinct is divided into non-overlapping rectangular “code blocks”. This is the basic unit for entropy coding.
[0077]
The coefficient values after wavelet transform can be quantized and encoded as they are, but in JPEG2000, in order to increase the encoding efficiency, the coefficient values are decomposed into “bit plane” units, and each pixel or code block is divided. Ranking can be performed on “bitplanes”.
[0078]
Here, FIG. 5 is an explanatory diagram showing an example of a procedure for ranking the bit planes. As shown in FIG. 5, this example is a case where the original image (32 × 32 pixels) is divided into four 16 × 16 pixel tiles, and the size of the precinct and code block at the composition level 1 is Each is 8 × 8 pixels and 4 × 4 pixels. The numbers of the precinct and the code block are assigned in raster order. In this example, the number of assigns is assigned from numbers 0 to 3, and the code block is assigned from numbers 0 to 3. A mirroring method is used for pixel expansion outside the tile boundary, wavelet transform is performed with a reversible (5, 3) filter, and a wavelet coefficient value of decomposition level 1 is obtained.
[0079]
An explanatory diagram showing an example of the concept of a typical “layer” configuration for tile 0 / precinct 3 / code block 3 is also shown in FIG. The converted code block is divided into subbands (1LL, 1HL, 1LH, 1HH), and wavelet coefficient values are assigned to the subbands.
[0080]
The layer structure is easy to understand when the wavelet coefficient values are viewed from the horizontal direction (bit plane direction). One layer is composed of an arbitrary number of bit planes. In this example, layers 0, 1, 2, and 3 are made up of bit planes of 1, 3, 1, and 3, respectively. A layer including a bit plane close to LSB (Least Significant Bit) is subject to quantization first. Conversely, a layer close to MSB (Most Significant Bit) is quantized to the end. It will remain without being. A method of discarding from a layer close to the LSB is called truncation, and the quantization rate can be finely controlled.
[0081]
The entropy encoding / decoding unit 104 illustrated in FIG. 1 performs encoding on the tile 112 of each component 111 by probability estimation from the context and the target bit. In this way, encoding processing is performed in units of tiles 112 for all components 111 of the original image. Finally, the tag processing unit 105 performs a process of combining all the encoded data from the entropy encoding / decoding unit 104 into one code string data and adding a tag thereto.
[0082]
FIG. 6 shows a schematic configuration for one frame of the code string data. Tag information called a header (main header, tile part header which is tile boundary position information, etc.) is provided at the head of the code string data and the head of the code data (bit stream) of each tile. Appended, followed by the encoded data for each tile. In the main header, coding parameters and quantization parameters are described. A tag (end of codestream) is placed again at the end of the code string data. FIG. 7 shows a code stream structure in which packets containing encoded wavelet coefficient values are represented for each subband. As shown in FIG. 7, the same packet string structure is obtained regardless of whether the tile division process is performed or the tile division process is not performed.
[0083]
On the other hand, when the encoded data is decoded, the image data is generated from the code string data of each tile 112 of each component 111, contrary to the case of encoding the image data. In this case, the tag processing unit 105 interprets tag information added to the code string data input from the outside, decomposes the code string data into code string data of each tile 112 of each component 111, and Decoding processing (decompression processing) is performed for each code string data of each tile 112. At this time, the position of the bit to be decoded is determined in the order based on the tag information in the code string data, and the quantization / inverse quantization unit 103 determines the peripheral bits (that have already been decoded) of the target bit position. Context is generated from the sequence of The entropy encoding / decoding unit 104 performs decoding by probability estimation from the context and code string data, generates a target bit, and writes it in the position of the target bit. Since the data decoded in this way is spatially divided for each frequency band, the two-dimensional wavelet transform / inverse transform unit 102 performs two-dimensional wavelet inverse transform on each of the components of the image data. The tile is restored. The restored data is converted to original color system image data by the color space conversion / inverse conversion unit 101.
[0084]
The above is the outline of the “JPEG2000 algorithm”. When encoding image data, it is possible to take a reversible or irreversible transformation process until the discrete wavelet transform coefficients resulting from wavelet transform of the input image data are quantized, and the quantization process is complete. Until code string data such as entropy coding is generated from discrete wavelet transform coefficients, a reversible transformation process is performed. Also, when decoding code data, until discrete wavelet transform coefficient data (or quantized coefficient data: not quantized in case of lossless compression) is decoded from input (compressed and stored) code string data Takes a reversible transformation process, and can take a reversible or irreversible transformation process until image data is generated from the decoded discrete wavelet transform coefficient data.
[0085]
[Image Encoding Device, Code Decoding Device]
Hereinafter, an embodiment of the present invention will be described. In the present invention, using the wavelet quantization coefficient (quantized discrete wavelet transform coefficient) in the JPEG2000 algorithm described above, embedding and scrambling the visible watermark into the wavelet quantization coefficient is executed within the JPEG2000 compression process. An example of application to an image encoding apparatus and an encoding / decoding apparatus that executes removal of embedded visible watermarks and descrambling will be described. Although an example relating to an image compression / decompression technique represented by JPEG2000 will be described here, it goes without saying that the present invention is not limited to the contents of the following description.
[0086]
As an example, the image encoding device and the code decoding device according to the present embodiment assume a system configuration that distributes image data (digital content) from a provider to each user using a network such as the Internet. In this example, a provider computer (server computer) serving as a distribution source is an image encoding device, and a computer (client computer) of each user serving as a distribution destination is an encoding / decoding device.
[0087]
FIG. 8 is a schematic system configuration diagram showing such a system. A server computer 1 serving as an image encoding device of a provider includes a client computer 3 serving as an encoding / decoding device for each user via a network 2 such as the Internet. It is possible to connect.
[0088]
FIG. 9 is a block diagram schematically showing the hardware configuration of the server computer 1 and the client computer 3. As shown in FIG. 9, each of the computers 1 and 3 includes a CPU (Central Processing Unit) 6 that is a main part of the computer and controls each part in a centralized manner. The CPU 6 is connected to a ROM (Read Only Memory) 7 which is a read-only memory storing BIOS and a RAM (Random Access Memory) 8 which stores various data in a rewritable manner through a bus 9. Since the RAM 8 has a property of storing various data in a rewritable manner, the RAM 8 functions as a work area for the CPU 6 and functions as an input buffer, for example.
[0089]
Further, on the bus 9, an HDD (Hard Disk Drive) 10 for storing various programs and data, and a CD-ROM drive for reading a CD (Compact Disc) -ROM 11 as a mechanism for reading computer software as a distributed program. 12, a communication control device 13 that controls communication between the computers 1 and 3 and the network 2, an input device 14 such as a keyboard and a mouse, and a display device 15 that is a CRT (Cathode Ray Tube) or LCD (Liquid Crystal Display). An image input device 17 that inputs image data, such as an image scanner or a digital camera, is connected via an I / O (not shown). The logic circuit 16 is also connected to the CPU 6 via the bus 9.
[0090]
A CD-ROM 11 shown in FIG. 9 implements the storage medium of the present invention, and stores an OS (Operating System) and various computer software. The CPU 6 reads the computer software stored in the CD-ROM 11 with the CD-ROM drive 12 and installs it in the HDD 10.
[0091]
As the storage medium, not only the CD-ROM 11 but also various types of media such as semiconductor memories such as various optical disks such as DVD, various magnetic disks such as various magneto-optical disks and flexible disks, and the like can be used. Alternatively, computer software may be downloaded from the network 5 such as the Internet via the communication control device 13 and installed in the HDD 10. In this case, the storage device storing the computer software in the server on the transmission side is also a storage medium of the present invention. The computer software may operate on a predetermined OS (Operating System), and in that case, the OS may take over execution of a part of various processes described later. It may be included as part of a group of program files that constitute predetermined application software, OS, or the like.
[0092]
The HDD 10 of the computers 1 and 3 having such a configuration stores an image processing program for processing an image as one of computer software. This image processing program implements the program of the present invention. And various functions in each part of computers 1 and 3 are realized by processing which CPU6 performs based on this image processing program. In addition, when real-time property is regarded as important, it is necessary to speed up the processing. For this purpose, it is desirable to realize various functions in each unit by the operation of the logic circuit 16.
[0093]
Here, the characteristic processing of the present embodiment will be described below among various arithmetic processing executed by the CPU 6 of the server computer 1 or the CPU 6 of the client computer 3 based on the image processing program.
[0094]
[Image coding processing in server computer]
First, an image encoding process executed by the CPU 6 of the server computer 1 will be described. The image encoding process in the present embodiment generally executes scrambling and embedding a visible watermark on a wavelet quantization coefficient generated according to the JPEG2000 algorithm.
[0095]
As shown in FIG. 10, the server computer 1 functions as an input unit 21, a wavelet transform unit 22, a coefficient quantization unit 23, a lossless compression coding unit 24, an output unit 25, and a scramble unit in the image coding process. Each function of the scrambler 27 and the visible watermark embedding unit 28 functioning as a visible watermark embedding unit is realized by various arithmetic processes executed by the CPU 6 based on an image processing program.
[0096]
More specifically, the CPU 6 of the server computer 1 is based on the image processing program, the input unit 21 that receives input of image data to be processed from the image input device 17, and processing such as color space conversion for the received image data. 2, a two-dimensional wavelet transform unit 22 (corresponding to 101 and 102 shown in FIG. 1) that performs a two-dimensional wavelet transform process, and in order to efficiently compress the transformed discrete wavelet transform coefficients, A coefficient quantization unit 23 (corresponding to 103 shown in FIG. 1) that performs irreversible quantization processing such as post-quantization to reduce the range, and the above-described entropy coding (coefficient) for the quantized wavelet quantization coefficient A reversible compression coding unit 24 (corresponding to 104 shown in FIG. 1) for performing a lossless compression coding process such as modeling + arithmetic coding) Performs reduction has been rearrangement processing of the code data, to implement compression encoding means 26 according to the code data output unit 25 for outputting the necessary places (corresponding to 105 shown in FIG. 1).
[0097]
In addition, the data immediately before lossless compression coding by the compression coding means 26, here, the scrambler 27 for scramble the wavelet quantization coefficient quantized by the coefficient quantizer 23, and the visible watermark data And a visible watermark embedding unit 28 for embedding in the code data.
[0098]
Here, the scramble processing in the scramble unit 27 will be described. The scrambler 27 scrambles the data by randomization. That is, the original data before scramble is made undecipherable by subjecting the original data before scramble to hash conversion based on a hash function and performing random number encryption (randomization). This hash function is a one-way random number generation function generated using seeds as seeds.
Property 1: Input value cannot be inferred from output value
Property 2: If the input value changes even by 1 bit, the output value changes completely.
Property 3: Searching for two different inputs with the same output is not practical
(Source: Journal of the Institute of Electronics, Information and Communication Engineers, February 2000 “Fairness Guarantee and Privacy Protection” Kazue Sako).
[0099]
As described above, since it is impossible to estimate the original data from the generated data, the hash conversion can be prevented from being decrypted by using the hash conversion when the data is scrambled.
[0100]
In addition, when decrypting the scrambled data, it is possible to restore the original data by using dedicated software including a password, so that the difference value (shift amount) between the scrambled data and the pre-scrambled data is calculated using a hash function. The digital watermark data encrypted so as to be restored by the randomization used is embedded in the scrambled data of the entire image (here, the quantized and scrambled wavelet quantization coefficients).
[0101]
Here, an example of an encryption method that can be restored by randomization will be briefly described. First, an example of the hash conversion method
[Conversion result data] = [Conversion source data] * [Generation source]% [Modification: Prime number]
[Conversion source data] = [Conversion result data]-1* [Generator]% [modulus: prime]
As an example of encryption,
Figure 0004101073
Is mentioned. Therefore, a specific example of hash conversion is illustrated as follows:
[Modulus: prime number] = 127
[Generator] = 3
[Conversion data] = 0x20010831 (Date: August 31, 2001)
<Conversion using [Conversion result data]>
Data after conversion: 0xE0839894
<[Conversion result data]-1Conversion of use>
Data after conversion: 0xB5D5ADE5
[Data after reverse conversion] = 0x20010831 (Date: August 31, 2001)
And restored. For encryption, a public key system such as a well-known RSA may be used.
[0102]
A more specific example of a method for determining the shift amount (difference value) from the original data during the scramble processing using hash transformation will be described.
[0103]
Now
Value excluding the least significant bit of Rk = Hash (“password”, “previous (k−1) th processed value”)
The least significant bit of Pk = Hash (“password”, “previous (k−1) th processed value”) → ON: * (− 1), OFF: * (+ 1)
(The processed value in the expression regarding Pk is the immediately preceding processing result (shifted quantized data) in sequential processing (pixel arrangement)),
(Shift amount) = Rk * (degree factor) * Pk
It is represented by As a specific numerical example, in the case of an array of quantized data as shown in Table 1,
[0104]
[Table 1]
Figure 0004101073
[0105]
In Table 1, (1) indicates the processing order No. (2) is the original quantized data, (3) is scrambled
Bull increase / decrease value (shift amount) * (degree factor: 2).
[0106]
Rk = Hash (“password”, (11 + 2 * 2)) = 7 → 3 (value excluding the least significant bit)
Pk = Hash (“password”, (11 + 2 * 2)) = 7 → −1 (the least significant bit is ON)
(Shift amount) = 3 * (degree factor: 2) * (-1) = -6
It becomes.
[0107]
Note that it is desirable that the data to be subjected to random number encryption by the scrambler 27 should be mainly performed by the lower coefficient while avoiding the highest coefficient of the discrete wavelet transform coefficient. This is because the higher-order coefficient is closer to the original image data, and randomizing such a coefficient increases the degree of encryption and makes it impossible to imagine the original image from the scrambled image. However, if there is only the highest coefficient, the highest coefficient is subject to random number encryption.
[0108]
More specifically, it may be scrambled with respect to a significant coefficient of a bit coefficient (discrete wavelet transform coefficient) converted into a bit plane as quantization. “Significant coefficient of bit coefficient” means, for example, when encoding a bit-plane discrete wavelet transform coefficient to be processed in bit representation as described in the JPEG2000 algorithm described above from the upper bit to the lower bit direction. , A coefficient whose bit coefficient of interest is known to be non-zero. Effective scrambling can be performed by scrambling the significant coefficients of the bit coefficients formed into such bit planes.
[0109]
As an example of the scramble processing in this case, a method of inverting the target bit coefficient (inverted from “0” to “1” or inverted from “1” to “0”) can be adopted. When such a bit coefficient inversion method is employed, it is desirable to invert the bit coefficients of the adjacent digits (directly upper digit or immediately lower digit) together. That is, if it is inverted from “0” to “1”, it is inverted from “1” to “0”, and if it is inverted from “1” to “0”, it is inverted from “0” to “1”. This is because when the target bit coefficient is inverted by scramble, the brightness of the display image may change drastically in this part due to the inversion processing of the bit coefficient. This is to reduce or alleviate the impact on the environment. Of course, in this case too much scrambling will make the original image unintelligible. In such a case, it is desirable to invert only the adjacent digit on the lower digit side.
[0110]
Next, the visible watermark embedding process in the visible watermark embedding unit 28 will be described. On the other hand, the visible watermark embedding by the visible watermark embedding unit 28 is replaced with a dummy image (for example, a secret font character image or a background pattern stripe pattern) as visible watermark data so that the contents of the original image cannot be seen at all. This is a process of embedding digital watermark data for restoring the replaced dummy image data to the original data content in the decoding process. Thus, by replacing the original image with a dummy image so that the contents of the original image cannot be seen at all, as a result, the image quality of the original image portion is deteriorated and the value of the entire digital content is lowered. Therefore, it is not necessary to add to the entire image like a so-called copy-forgery-inhibited pattern, and an important part or a conspicuous part, for example, a limited specific area such as a font shape area is sufficient. As a more specific example, here, for example, a dummy image (for example, a secret font character image or a tint block pattern) is replaced, and a difference value (shift amount) between the original data before replacement and the dummy image data is used. ) Is embedded in the entire image data (here, the quantized wavelet quantization coefficient).
[0111]
For example, a description will be given with reference to FIG. FIG. 11 shows the original data o (ij) (pixel value of i row j column) of a part of the designated area indicated by “original” in the input original image O (Org) as “confidential”. An example of replacement with dummy image data d (i.j) (pixel value of i rows and j columns) shown in FIG. In such a case, the logical operation value of the dummy image data d (i.j), the original data o (i.j), and the input password is regarded as the digital watermark information w (i.j). That is,
w (i.j) ← o (i.j) + d (i.j) + “password”
(However, “+” represents an exclusive logical operation.)
It becomes. Therefore, at the time of decryption using a password as described later, the digital watermark information is extracted,
o (i.j) <-w (i.j) + d (i.j) + "password"
The original data can be restored by performing the logical operation.
[0112]
The visible watermark embedding unit 28 also generates and embeds falsification detection data as part of the digital watermark data for detecting falsification of the original data in the dummy image replacement area. The alteration detection data includes an identification code for identifying the original image and is embedded as digital watermark data. As a result, the visible watermark embedding unit 28 sets the visible watermark information w (i.j) for restoring the original data from the dummy image at a position where the embedded position of the visible watermark for alteration detection and the dummy image replacement area do not overlap. The embedding position is set so as to be embedded.
[0113]
By the way, in this embodiment, the scrambler 27 and the visible watermark embedding unit 28 input a predetermined password (multi-digit password such as alphanumeric characters) to the input unit 21 together with the image data. In this case, it is configured to selectively function according to the input password. More specifically, the processing order of the scramble processing by the scrambler 27 and the visible watermark embedding process by the visible watermark embedding unit 28 is changed according to the input password.
[0114]
Here, FIG. 12 is a schematic diagram showing a table for selecting the processing order in accordance with the input password. As shown in FIG. 12, for example, when the input password is “PassWord1”, the processing order is “visible watermark embedding processing → scramble processing”, and when the input password is “PassWord2”. The processing order is “Scramble processing → Visible watermark embedding process”, and when the input password is “PassWord3”, the processing order is “Scramble process → Scramble process” and the input password is “PassWord4” Is set to “only visible watermark embedding process”, and when the input password is “PassWord5”, the process order is set to “only scramble process”. In this embodiment, as in the case of “PassWord3”, the scrambling process by the scrambler 27 is performed twice, so that a scramble function with a high concealment level can be exhibited. ing. In addition, by providing the scrambler 27 that performs a plurality of different scramble processes, a scramble function with a higher concealment level can be exhibited. When no password is input, the process proceeds to the lossless compression encoding process without passing through the processes of the scrambler 27 and the visible watermark embedding unit 28. Here, a process specifying means is realized.
[0115]
Therefore, information embedding processing (visible watermark embedding processing, scramble processing) in such image encoding processing executed in the server computer 1 will be described with reference to a schematic flowchart shown in FIG. As shown in FIG. 13, when the processing order corresponding to the password input using the table as described above is acquired (step S1), the scramble unit 27 performs the following steps S2 to S6 according to the acquired processing order. A scramble process and a visible watermark embedding process by the visible watermark embedding unit 28 are executed.
[0116]
For example, if the input password is “PassWord1”, the first process is “visible watermark embedding process” (N in step S2, Y in step S3), so that it is visible for the wavelet quantization coefficient. A visible watermark embedding process is performed by the watermark embedding unit 28 (step S4). Since the processing to be executed next to the visible watermark embedding processing is “scramble processing” (N in step S2, N in step S3, Y in step S5), the wavelet quantization coefficient on which the visible watermark embedding processing has been executed. Is scrambled by the scrambler 27 (step S6). As described above, the processing sequence when the input password is “PassWord1” is completed (Y in step S2).
[0117]
When all the processes for which the order has been specified have been completed (Y in step S2), the process proceeds to step S7, where the process order is generated and embedded as part of the digital watermark data.
[0118]
The wavelet quantization coefficient scrambled or embedded with visible watermark data in this way is subjected to lossless conversion and tag processing and the like by the lossless compression encoder 24 and stored in a memory such as the HDD 10. Retained.
[0119]
Here, FIG. 14 is an explanatory diagram exemplarily showing an image image processed according to the processing order of the information embedding process (visible watermark embedding process, scramble process). For example, if the input password is “PassWord1” and processed in the order of “visible watermark embedding process → scramble process”, the normal permission is not granted and the dedicated software is not distributed. In the decoding process by the decoding software using only the JPEG2000 algorithm, not only the digital content (image) but also the watermark can be seen only in an inconspicuous manner (see FIG. 14 (1)). In addition, when the input password is “PassWord2” and processed in the order of “scramble processing → visible watermark embedding processing”, the browser is permitted to view and the normal software for that purpose is not distributed. In the decoding process using only the JPEG2000 algorithm decoding software, the digital content (image) cannot be clearly seen, but the description using the visible watermark can be clearly read (see FIG. 14 (2)).
[0120]
Here, the combination and processing order of the scramble processing by the scramble unit 27 and the visible watermark embedding process by the visible watermark embedding unit 28 can be designated, and the scramble unit 27 performs based on the designated combination and process order. The scrambling process and the visible watermark embedding process by the visible watermark embedding unit 28 are executed. This makes it possible to freely select the combination and processing order of the scramble processing and the visible watermark embedding processing, so that the image quality degradation level can be set in detail according to the purpose of use of the image. .
[0121]
Note that, when the scramble process of the quantized data (wavelet quantization coefficient) by the scrambler 27 is performed, the scramble level (and hence the image quality degradation level) can be arbitrarily variably set by using the feature of JPEG2000. Therefore, it is possible to provide a scrambled image in which the image quality deterioration level is adjusted by appropriately setting the scramble level according to the purpose and application of the image data provided by the provider.
[0122]
As an example of variably setting such a scramble level, a bit plane process as shown in FIG. 5 in the JPEG2000 algorithm can be used. In other words, according to the JPEG2000 algorithm, thumbnail images can be easily provided by using a subband function or the like when browsing image data. For example, the higher-order bit data of a bit coefficient in a bit plane is scrambled by randomization. If this is the case, it is possible to realize scramble that is blurred due to the collapse of the shape of the image without changing the resolution, that is, the scramble that easily affects the thumbnail image. Therefore, the scramble level can be variably set by selecting the bit position of the bit coefficient in the bit plane.
[0123]
As another example of variably setting the scramble level, a subband structure based on the discrete wavelet transform process of the JPEG2000 algorithm can be used. According to the JPEG2000 algorithm, the resolution has a subband hierarchical structure as shown in FIG. 3 and the like, and the low-band LL subband has the highest resolution. If the data is scrambled by randomization, it is possible to realize a delicate scramble, that is, a scramble that does not easily affect the thumbnail image. Therefore, the scramble level can be variably set by selecting the subband hierarchy position by the discrete wavelet transform process.
[0124]
As yet another example of variably setting the scramble level, a processing unit in the JPEG2000 algorithm can be used. According to the JPEG2000 algorithm, as described above with reference to FIG. 4 and the like, processing is possible not only for the entire image but also for a plurality of rectangular areas (tiles) as encoding units. For example, scramble by randomization is performed. Increasing the size of the block that limits the area to be performed results in a scrambled scrambled image, and the scramble that makes it difficult to understand the original shape (entire image) expressed in the image, that is, the influence of image quality deterioration on the thumbnail image Can be easily scrambled. Therefore, the scramble level can be variably set by selecting the size of the block to be scrambled.
[0125]
[Image coding processing on client computer]
Next, an encoding / decoding process executed by the CPU 6 of the client computer 3 will be described. The client computer 3 according to the present embodiment decodes the code data distributed from the server computer 1 as a provider using the lossy mode of the JPEG2000 algorithm, and executes descrambling and removal of the visible watermark to perform the original image. The data is restored.
[0126]
As shown in FIG. 15, in the client computer 3, in the code decoding process, an input unit 31, a lossless compression code decoding unit 32, a wavelet inverse transform unit 33, a visible watermark removal unit 35 which is a visible watermark removal unit, Each function of the scramble release unit 36, which is a scramble release means, is realized by various arithmetic processes that the CPU 6 executes based on the image processing program.
[0127]
More specifically, the CPU 6 of the client computer 3 receives an input of code data that is scrambled and embedded with a visible watermark as described above distributed from the server computer 1 through the network 2 based on the image processing program. On the other hand, the decoding unit 32 of the lossless compression code that performs the decoding process of the lossless compression code such as the entropy decoding process on the received code data, and restores the original image data by performing the two-dimensional wavelet inverse transformation The decoding means 34 is realized by the two-dimensional wavelet inverse transform unit 33 (corresponding to 103, 102, 101, etc. shown in FIG. 1).
[0128]
In addition, between the decoding unit 32 and the two-dimensional wavelet inverse transformation unit 33, a visible watermark removing unit 35 for removing visible watermark data embedded in the code data, and a scramble for releasing the scramble of the code data A release unit 36 is added.
[0129]
The visible watermark removing unit 35 decodes the digital watermark data embedded in the code data, and replaces the original data by the logical operation as described above based on the difference value data in the decoded digital watermark data. o (i, j) is restored. When restoring such original data, by restoring the original data with the size of the rectangular area (dummy image replacement area) circumscribing the dummy image data by decoding the visible watermark data, the dummy image replacement area, The transition of the boundary with the outside region can be smoothed. Then, the dummy image data in the dummy image replacement area is replaced again with the restored original data and restored.
[0130]
The scramble release unit 36 decodes the digital watermark data embedded in the code data, and releases the scramble of the code data based on the difference value data in the decoded digital watermark data.
[0131]
Here, a specific method of determining the return amount at the time of decoding on the client computer 3 side corresponding to the method of determining the shift amount (difference value) from the original data at the time of the scramble processing using the hash transformation described above. A specific example will be described.
[0132]
Now
Rk = Hash (“password”, “(k−1) th quantized data value immediately before restoration”)
Value excluding the least significant bit of
Pk = Hash (“password”, “(k−1) th quantized data value before restoration”)
Least significant bit → ON: * (-1), OFF: * (+ 1)
(The quantized data value before restoration in the expression relating to Pk is the data before restoration of quantized data immediately before the sequential processing (pixel arrangement) (quantized data in a shifted state)),
(Return amount) = − (shift amount) = Rk * (degree factor) * Pk * (− 1)
It is represented by As a specific numerical example, in the case of the arrangement of quantized data as shown in Table 1 above, as in the case of the shift amount determination described above,
Rk = 3 (value excluding the least significant bit)
Pk = -1 (Least significant bit is ON)
(Return amount) = − (shift amount) = 3 * (degree factor: 2) * (− 1) * (− 1) = + 6.
[0133]
By the way, in the present embodiment, the visible watermark removing unit 35 and the descrambling unit 36 are predetermined passwords (alphanumeric characters) indicating that the user is permitted to view the input unit 31 together with the code data. When a multi-digit personal identification number or the like is input, the processing order embedded in the code data as digital watermark data is acquired, and the visible watermark by the visible watermark removing unit 35 is reverse to this processing order. The removal process and the descrambling process by the descrambling unit 36 are executed.
[0134]
Therefore, information exclusion processing (visible watermark removal processing, descrambling processing) in such code decoding processing executed in the client computer 3 will be described with reference to a schematic flowchart shown in FIG. As shown in FIG. 15, when the input password is correct (Y in step S1), the processing order embedded in the code data as digital watermark data is acquired (step S12: processing order acquisition means). A processing order opposite to the processing order is set (step S13), and in subsequent steps S14 to S18, the visible watermark removing process by the visible watermark removing unit 35 and the descrambling process by the scramble releasing unit 36 are executed in accordance with the acquired processing order. To do.
[0135]
For example, when the acquired processing order is “visible watermark embedding processing → scramble processing”, the processing order here is set as “scramble release processing → visible watermark removal processing”. Accordingly, since the first process is the “scramble release process” (N in step S14, N in step S15, Y in step S17), the descrambling process by the scramble release unit 36 is executed on the code data (step S18). ). Since the process to be executed next to the descrambling process is the “visible watermark removing process” (N in step S14, Y in step S15), the visible watermark removing unit 35 is applied to the code data on which the descrambling process has been performed. The visible watermark removal process according to is executed (step S16). As described above, the original image data can be browsed.
[0136]
Here, the combination of the scramble process and the visible watermark embedding process when the code data compressed and encoded by the server computer 1 which is an image encoding apparatus is generated, and the visible watermark removal process in the reverse order. Since the original image data can be restored by performing the descrambling process and the descrambling process, it is possible to control only the distribution of software that exhibits these functions to specific persons. It becomes possible to permit viewing of the original image.
[0137]
Also, in the decoding process, it is possible to find out whether or not there has been any falsification that erases the dummy image data by using the falsification detection data included in the digital watermark data. Can be protected. In particular, even when an image including dummy image data cannot be identified from the original image, it can be easily identified by the presence or absence of the identification code, and the protection from unauthorized use can be enhanced.
[0138]
【The invention's effect】
The image encoding apparatus according to the first aspect of the present invention is a compression code that hierarchically compresses and encodes pixel values for each rectangular area obtained by dividing image data into one or a plurality of parts by a procedure of discrete wavelet transform, quantization, and encoding. In the image encoding device including the encoding unit, the image is quantized by the compression encoding unit.Inverting the bit coefficient of the coefficient other than the most significant coefficient including the significant coefficient among the discrete wavelet transform coefficients converted into the bit plane, and the bit coefficient of the digit next to the coefficient other than the most significant coefficient,A scrambling means for scrambling data; a visible watermark embedding means for embedding a visible watermark for the discrete wavelet transform coefficient quantized by the compression encoding means; a scrambling process by the scrambling means; and the visible watermark Scrambled by the scrambler based on the combination and process order designated by the process designating unit. By executing the process and the visible watermark embedding process by the visible watermark embedding means, the combination of the scramble process and the visible watermark embedding process and the processing order can be freely selected. In Flip and it is possible to fine-tune the image quality deterioration level.In addition, the bit coefficients of non-most significant coefficients including significant coefficients among the discrete wavelet transform coefficients converted into bit planes, and the bit coefficients of the digits next to the non-most significant coefficients are inverted and scrambled. By doing so, effective scrambling can be applied. In addition, when the target bit coefficient is inverted by scramble, the brightness of the displayed image may change drastically in this part due to the inversion processing of the bit coefficient. However, by inverting the adjacent digit, it is possible to prevent the original image from being unclear.
[0139]
According to a second aspect of the present invention, in the image coding apparatus according to the first aspect, the visible watermark by the visible watermark embedding unit is executed after the scramble process by the scramble unit is performed by the designation by the process designation unit. By executing the embedding process, if such code data is decoded without removing the visible watermark and being scrambled, the image cannot be clearly seen but the visible watermark is clear. It will be ready to read.
[0140]
According to a third aspect of the present invention, in the image encoding device according to the first aspect, after the visible watermark embedding process by the visible watermark embedding unit is executed by the designation by the process designating unit, the scrambling unit by the scramble unit By executing the conversion processing, when such a coded data is decoded without removing the visible watermark and being scrambled, not only the image but also the watermark can be seen only in a dim state. .
[0141]
According to a fourth aspect of the present invention, in the image coding apparatus according to the first aspect, the scramble process by the scramble unit is performed after the scramble process by the scramble unit is executed by the designation by the process designation unit. The scramble function with a high concealment level can be exhibited by executing again.
[0144]
Claim5According to the described invention, the claims1In the described image encoding device, a rectangular area obtained by dividing image data into one or a plurality of parts by variably setting a scramble level by selecting a hierarchical position of a subband by a discrete wavelet transform process among discrete wavelet transform coefficients According to compression encoding means (for example, JPEG2000 algorithm) that hierarchically compresses and encodes pixel values in a sequence of discrete wavelet transform, quantization and encoding for each pixel, it has a subband hierarchical structure with respect to resolution, and a low hierarchy LL subband is the highest resolution part. For example, if the data of the subband part of the lower hierarchy is scrambled by randomization, it will cause delicate scramble, that is, the effect of image quality deterioration on the thumbnail image. Difficult to scramble, discrete wavelet transformation Scrambling level by selecting the hierarchical position of a sub-band by the processing is variably set freely.
[0145]
Claim6According to the described invention, the claims1In the image encoding device described above, the scramble level can be variably set by selecting a size of a block in which a plurality of rectangular areas as encoding units by discrete wavelet transform are aggregated and subjected to scramble. According to the compression encoding means (for example, JPEG2000 algorithm) that hierarchically encodes the pixel value for each rectangular area obtained by dividing the pixel value into one or a plurality of regions by the procedure of discrete wavelet transform, quantization, and encoding, Not limited to this, processing can be performed in units of a plurality of rectangular areas (tiles) as encoding units. For example, if the size of a block that limits an area to be scrambled by randomization is increased, a scrambled scrambled image The scramble that makes it difficult to understand the original shape (the entire image) represented in the image Le, i.e., can be realized scrambling easily affect the image quality degradation to a thumbnail image, scrambling level is variably set freely by selecting the size of the block of scrambled is performed.
[Brief description of the drawings]
FIG. 1 is a functional block diagram of a system that realizes a hierarchical encoding algorithm that is the basis of the JPEG2000 system that is a premise of the present invention.
FIG. 2 is an explanatory diagram showing a divided rectangular area of each component of the original image.
FIG. 3 is an explanatory diagram showing subbands at each decomposition level when the number of decomposition levels is 3. FIG.
FIG. 4 is an explanatory diagram showing a precinct.
FIG. 5 is an explanatory diagram showing an example of a procedure for ranking bit planes;
FIG. 6 is an explanatory diagram illustrating a schematic configuration of one frame of code string data.
FIG. 7 is an explanatory diagram showing a code stream structure in which a packet containing an encoded wavelet coefficient value is represented for each subband.
FIG. 8 is a schematic system configuration diagram showing a system according to an embodiment of the present invention.
FIG. 9 is a block diagram schematically illustrating a hardware configuration of a server computer or a client computer.
FIG. 10 is a functional block diagram illustrating functions realized by an image encoding process executed by a CPU of a server computer based on an image processing program.
FIG. 11 is a schematic diagram showing an example of replacement of dummy image data.
FIG. 12 is a schematic diagram showing a table for selecting a processing order according to an input password.
FIG. 13 is a flowchart schematically showing a flow of information embedding processing (visible watermark embedding processing, scramble processing).
FIG. 14 is an explanatory diagram exemplarily showing an image image processed according to the processing order of information embedding processing (visible watermark embedding processing, scramble processing).
FIG. 15 is a functional block diagram illustrating functions realized by an encoding / decoding process executed by a CPU of a client computer based on an image processing program.
FIG. 16 is a flowchart schematically showing a flow of information exclusion processing (visible watermark data removal processing, descrambling processing).
[Explanation of symbols]
1 Image encoding device
3 Code decoder
11 Storage media
26 Compression encoding means
27 Scramble means
28 Visible watermark embedding means
35 Visible watermark removal means
36 Descramble means

Claims (13)

画像データを1又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換、量子化及び符号化という手順で階層的に圧縮符号化する圧縮符号化手段を備える画像符号化装置において、
前記圧縮符号化手段により量子化され、ビットプレーン化された離散ウェーブレット変換係数のうち有意係数を含む最上位以外の係数のビット係数、及び前記最上位以外の係数の隣の桁のビット係数を反転して、データのスクランブル化を行うスクランブル化手段と、
前記圧縮符号化手段により量子化された離散ウェーブレット変換係数に対し、可視透かしを埋め込む可視透かし埋め込み手段と、
前記スクランブル化手段によるスクランブル化処理と前記可視透かし埋め込み手段による可視透かし埋め込み処理とについての組み合わせ及び処理順序を指定可能とする処理指定手段と、
を備え、
前記処理指定手段により指定された組み合わせ及び処理順序に基づいて、前記スクランブル化手段によるスクランブル化処理と前記可視透かし埋め込み手段による可視透かし埋め込み処理とを実行するようにしたことを特徴とする画像符号化装置。
In an image encoding device comprising compression encoding means for compressing and encoding pixel values hierarchically in a procedure of discrete wavelet transform, quantization and encoding for each rectangular region obtained by dividing image data into one or a plurality of regions,
Among the discrete wavelet transform coefficients quantized by the compression encoding means and converted into bit planes, the bit coefficient of the coefficient other than the most significant coefficient including the significant coefficient and the bit coefficient of the digit next to the coefficient other than the most significant coefficient are inverted. And a scramble means for scrambling the data,
Visible watermark embedding means for embedding a visible watermark with respect to the discrete wavelet transform coefficient quantized by the compression encoding means;
A process designating unit for designating a combination and a processing order of the scramble process by the scramble unit and the visible watermark embedding process by the visible watermark embedding unit;
With
Image coding characterized by executing scramble processing by the scramble means and visible watermark embedding processing by the visible watermark embedding means based on the combination and processing order designated by the process designating means apparatus.
前記処理指定手段による指定により、前記スクランブル化手段によるスクランブル化処理を実行した後に、前記可視透かし埋め込み手段による可視透かし埋め込み処理を実行することを特徴とする請求項1記載の画像符号化装置。The image coding apparatus according to claim 1, wherein the visible watermark embedding process by the visible watermark embedding unit is executed after the scramble process by the scrambler is performed by the designation by the process designating unit. 前記処理指定手段による指定により、前記可視透かし埋め込み手段による可視透かし埋め込み処理を実行した後に、前記スクランブル化手段によるスクランブル化処理を実行することを特徴とする請求項1記載の画像符号化装置。The image coding apparatus according to claim 1, wherein the scrambling process by the scrambler is executed after the visible watermark embedding process by the visible watermark embedding part is executed by the specification by the process specifying part. 前記処理指定手段による指定により、前記スクランブル化手段によるスクランブル化処理を実行した後に、前記スクランブル化手段によるスクランブル化処理を再度実行することを特徴とする請求項1記載の画像符号化装置。2. The image coding apparatus according to claim 1, wherein the scramble processing by the scramble means is executed again after the scramble process by the scramble means is executed by the specification by the process specification means. 離散ウェーブレット変換係数のうちの離散ウェーブレット変換処理によるサブバンドの階層位置の選択によりスクランブルレベルが可変設定自在である、ことを特徴とする請求項記載の画像符号化装置。Discrete wavelet transform scrambling level by selecting the hierarchical position of a sub-band by the processing can be freely variably set, that the image encoding apparatus according to claim 1, wherein one of the discrete wavelet transform coefficients. 離散ウェーブレット変換による符号化単位となる複数の矩形領域が集合しスクランブル化が施されるブロックの大きさの選択によりスクランブルレベルが可変設定自在である、ことを特徴とする請求項記載の画像符号化装置。The size of the scrambled levels by the selection of the block in which a plurality of rectangular areas to be encoded unit by discrete wavelet transform is performed is scrambled set is freely variable settings, image encoding according to claim 1, wherein the Device. 画像データを1又は複数に分割した矩形領域毎に画素値を離散ウェーブレット変換、量子化及び符号化という手順で階層的に圧縮符号化する圧縮符号化機能を備える画像符号化装置が有するコンピュータにインストールされるか、あるいは解釈されて実行されるプログラムであって、前記コンピュータに、
前記圧縮符号化機能により量子化され、ビットプレーン化された離散ウェーブレット変換係数のうち有意係数を含む最上位以外の係数のビット係数、及び前記最上位以外の係数の隣の桁のビット係数を反転して、データのスクランブル化を行うスクランブル化機能と、
前記圧縮符号化機能により量子化された離散ウェーブレット変換係数に対し、可視透かしを埋め込む可視透かし埋め込み機能と、
前記スクランブル化機能によるスクランブル化処理と前記可視透かし埋め込み機能による可視透かし埋め込み処理とについての組み合わせ及び処理順序を指定可能とする処理指定機能と、
を実行させ、
前記処理指定機能により指定された組み合わせ及び処理順序に基づいて、前記スクランブル化機能によるスクランブル化処理と前記可視透かし埋め込み機能による可視透かし埋め込み処理とを前記コンピュータに実行させるようにしたことを特徴とするプログラム。
Installed in a computer of an image encoding apparatus having a compression encoding function that hierarchically compresses and encodes pixel values for each rectangular area obtained by dividing image data into one or a plurality of parts by the procedure of discrete wavelet transform, quantization and encoding Or interpreted and executed by the computer,
Inverts the bit coefficient of the coefficient other than the most significant coefficient including the significant coefficient among the discrete wavelet transform coefficients quantized by the compression coding function and converted into the bit plane, and the bit coefficient of the digit next to the coefficient other than the most significant coefficient. A scramble function that scrambles the data,
A visible watermark embedding function for embedding a visible watermark with respect to the discrete wavelet transform coefficient quantized by the compression encoding function;
A process designating function that can designate a combination and processing order of the scramble process by the scramble function and the visible watermark embedding process by the visible watermark embedding function;
And execute
The computer is caused to execute the scramble process by the scramble function and the visible watermark embedding process by the visible watermark embedding function based on the combination and process order designated by the process designating function. program.
前記処理指定機能による指定により、前記スクランブル化機能によるスクランブル化処理を実行した後に、前記可視透かし埋め込み機能による可視透かし埋め込み処理を実行することを特徴とする請求項記載のプログラム。8. The program according to claim 7 , wherein the visible watermark embedding process by the visible watermark embedding function is executed after executing the scramble process by the scramble function by the designation by the process designating function. 前記処理指定機能による指定により、前記可視透かし埋め込み機能による可視透かし埋め込み処理を実行した後に、前記スクランブル化機能によるスクランブル化処理を実行することを特徴とする請求項記載のプログラム。8. The program according to claim 7 , wherein the scramble process by the scramble function is executed after the visible watermark embed process by the visible watermark embed function is executed by the specification by the process specifying function. 前記処理指定機能による指定により、前記スクランブル化機能によるスクランブル化処理を実行した後に、前記スクランブル化機能によるスクランブル化処理を再度実行することを特徴とする請求項記載のプログラム。8. The program according to claim 7 , wherein the scramble process by the scramble function is executed again after the scramble process by the scramble function is executed by the specification by the process specification function. 離散ウェーブレット変換係数のうちの離散ウェーブレット変換処理によるサブバンドの階層位置の選択によりスクランブルレベルが可変設定自在である、ことを特徴とする請求項記載のプログラム。8. The program according to claim 7 , wherein the scramble level can be variably set by selecting a subband hierarchical position by a discrete wavelet transform process among the discrete wavelet transform coefficients. 離散ウェーブレット変換による符号化単位となる複数の矩形領域が集合しスクランブル化が施されるブロックの大きさの選択によりスクランブルレベルが可変設定自在である、ことを特徴とする請求項記載のプログラム。8. The program according to claim 7 , wherein the scramble level can be variably set by selecting a size of a block to be scrambled by gathering a plurality of rectangular areas as encoding units by discrete wavelet transform. 請求項の7ないし12に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。A computer-readable recording medium on which the program according to claim 7 is recorded.
JP2003025141A 2003-01-31 2003-01-31 Image encoding apparatus, encoding / decoding apparatus, program, and storage medium Expired - Fee Related JP4101073B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003025141A JP4101073B2 (en) 2003-01-31 2003-01-31 Image encoding apparatus, encoding / decoding apparatus, program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003025141A JP4101073B2 (en) 2003-01-31 2003-01-31 Image encoding apparatus, encoding / decoding apparatus, program, and storage medium

Publications (2)

Publication Number Publication Date
JP2004236231A JP2004236231A (en) 2004-08-19
JP4101073B2 true JP4101073B2 (en) 2008-06-11

Family

ID=32953497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003025141A Expired - Fee Related JP4101073B2 (en) 2003-01-31 2003-01-31 Image encoding apparatus, encoding / decoding apparatus, program, and storage medium

Country Status (1)

Country Link
JP (1) JP4101073B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4136812B2 (en) 2003-07-01 2008-08-20 キヤノン株式会社 Image encryption method, image encryption / decryption method and apparatus thereof, and computer program and computer-readable storage medium
WO2006057032A1 (en) * 2004-11-24 2006-06-01 Mitsubishi Denki Kabushiki Kaisha Scramble processing device, descramble processing device, scramble processing method, and descramble processing method
WO2006057047A1 (en) * 2004-11-26 2006-06-01 Mitsubishi Denki Kabushiki Kaisha Scramble processing device, descramble processing device, scramble processing method, and descramble processing method
CN114979404B (en) * 2022-07-27 2022-12-13 荣耀终端有限公司 Image encryption method and related device

Also Published As

Publication number Publication date
JP2004236231A (en) 2004-08-19

Similar Documents

Publication Publication Date Title
JP4155929B2 (en) Image encoding apparatus, encoding / decoding apparatus, image encoding method, encoding / decoding method, program, and storage medium
JP4082131B2 (en) Watermark insertion method, apparatus, program, medium, and image sales method
Spaulding et al. BPCS steganography using EZW lossy compressed images
JP3960597B2 (en) Code generation apparatus, image processing apparatus, code generation program, image processing program, and storage medium
US7502488B2 (en) Image processing apparatus, program, and storage medium that can selectively vary embedding specification of digital watermark data
US7409060B2 (en) Durable and undecipherable digital watermarking technique and detection of unauthorized use
Bhautmage et al. Advanced video steganography algorithm
US7447314B2 (en) Information processing method, information processing apparatus, program, and storage medium
US7583848B2 (en) Scrambling of image portions via color component interchange
EP4238308B1 (en) Selective video modification
JP4101073B2 (en) Image encoding apparatus, encoding / decoding apparatus, program, and storage medium
Garcia Freitas et al. Secure self-recovery watermarking scheme for error concealment and tampering detection
JP2004228876A (en) Image encoding device, code decoding device, program, and storage medium
Phadikar et al. Data hiding based quality access control of digital images using adaptive QIM and lifting
JP2004040236A (en) Image processing apparatus and method, and computer program and computer-readable storage medium
Phadikar et al. Quality access control of compressed color images using data hiding
JP2004236224A (en) Image processing apparatus, program, and storage medium
Yang et al. Cryptographic and steganographic approaches to ensure multimedia information security and privacy
Arivazhagan et al. Colour Image Steganography Using Median Maintenance
CN121585770A (en) A privacy protection method for image publishing based on attribute encryption
JP2004112400A (en) Image processing apparatus, image processing method, image processing program, and storage medium for storing image processing program
JP2004236229A (en) Image processing apparatus, image processing program, and storage medium
JP2006148251A (en) Scrambling apparatus and descrambling apparatus
JP2013059049A (en) Watermarking encoded content
JP2004235682A (en) Image processing apparatus, image processing program, and storage medium

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041008

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20051021

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060106

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080318

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110328

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120328

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140328

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees