JP3704644B2 - Image coding apparatus and method thereof, and image decoding apparatus and method thereof - Google Patents

Image coding apparatus and method thereof, and image decoding apparatus and method thereof Download PDF

Info

Publication number
JP3704644B2
JP3704644B2 JP2000322022A JP2000322022A JP3704644B2 JP 3704644 B2 JP3704644 B2 JP 3704644B2 JP 2000322022 A JP2000322022 A JP 2000322022A JP 2000322022 A JP2000322022 A JP 2000322022A JP 3704644 B2 JP3704644 B2 JP 3704644B2
Authority
JP
Japan
Prior art keywords
data
arithmetic code
image
coefficient
code data
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
JP2000322022A
Other languages
Japanese (ja)
Other versions
JP2002135594A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2000322022A priority Critical patent/JP3704644B2/en
Publication of JP2002135594A publication Critical patent/JP2002135594A/en
Application granted granted Critical
Publication of JP3704644B2 publication Critical patent/JP3704644B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は画像符号化装置及びその方法並びに画像復号化装置及びその方法に関し、例えば、画像を提供する画像提供システムに適用して好適なものである。
【0002】
【従来の技術】
近年、画像送信装置と画像受信装置とをネットワークを介して接続し、当該画
像送信装置から画像受信装置に向けて画像を提供する画像提供システムが考えられている。
【0003】
【発明が解決しようとする課題】
ところで、かかる画像提供システムにおいては、提供対象の画像に対する著作権を保護する目的で、その画像に電子透かしを埋め込むことにより不正コピーを防止したり、画像を暗号化した状態で誰でも自由に取得できるようにしておき、例えば画像を購入する人にのみ暗号化を解く鍵を渡して見せるようにすることが提案されている。
【0004】
ところが、画像の著作権を保護するために当該画像に電子透かしを埋め込む方法では、その画像の画像データの一部が電子透かしのデータに置き変わって画質が劣化するため、高画質な画像の提供等には不向きである。
【0005】
また、画像を暗号化する方法では、当該画像の絵柄等の概要を全く視認することができないように暗号化すると、その画像が全く見えないために購入意欲を高めるまでには至らず、画像を容易には提供し難くなる。
【0006】
このため、最近では、画像提供システムにおいて、画像に対して絵柄等の概要をある程度は視認させることができるような暗号化(以下、これを特にスクランブルと呼ぶ)を施しておき、実際に購入する人にのみスクランブルを解く鍵を渡して画像を見せるようにすることが提案されている。
【0007】
また、かかる画像提供システムにおいては、画像を提供する場合、画像送信装置において、その画像の画像データをJPEG(Joint Photographic Experts Group)方式により圧縮符号化して画像受信装置に送信することにより画像の伝送効率を向上させることも提案されている。
【0008】
従って、かかる画像提供システムにおいては、画像送信装置において、画像データを離散コサイン変換(DCT:Discrete Cosine Transform )し、得られた離散コサイン変換係数を量子化して量子化係数を生成し、当該生成した量子化係数にスクランブル処理を施した後、ハフマン符号化処理を施すことにより、当該画像データを圧縮符号化するようになされている。
【0009】
ここで、ハフマン符号化とは、スクランブル処理した量子化係数を符号化し、得られた符号に発生頻度が高ければ短いコードを割り当て、当該符号に発生頻度が低ければ比較的長いコードを割り当てるようにした変換処理である。
【0010】
ところが、画像送信装置においては、量子化係数にスクランブル処理を施した時点でその量子化係数の並びがランダムに変化することにより、スクランブル処理した量子化係数を符号化して得られる符号としては、短いコードを割り当てるべき比較的発生頻度の高い符号が大幅に減少し、これとは逆に長いコードを割り当てるべき比較的発生頻度の低い符号が増加するため、画像データを圧縮符号化して得られる圧縮符号化データのデータ量が増加する。
【0011】
このため、画像提供システムにおいては、画像データを圧縮符号化しているものの、所望する圧縮率よりも格段的に高い圧縮率で送信する問題があった。
【0012】
本発明は以上の点を考慮してなされたもので、画像データの圧縮率の低下を防止し得る画像符号化装置及びその方法並びに画像復号化装置及びその方法を提案しようとするものである。
【0013】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、画像データに対して低域成分を再帰的にフィルタリングするウェーブレット変換を施すことによりフィルタ係数としてサブバンド単位のウェーブレット係数を生成し、当該生成したウェーブレット係数を量子化して量子化係数を生成し、その量子化係数を所定の符号化方式で符号化処理して算術符号データを生成した後、当該算術符号データの任意のサブバンド単位の特定した部位にスクランブル処理を施すと共に、その算術符号データに基づいて符号化処理に関する所定の符号化情報を生成し、当該生成した符号化情報を格納して生成したヘッダデータにスクランブル処理を施した算術符号データを付加してパケットデータを生成するようにした。
【0014】
従って、量子化係数を符号化処理した後に、その符号化処理して得られた算術符号データの任意のサブバンド単位の特定した部位にスクランブル処理を施すため、画像データに基づく画像に対し画質の劣化を小さくすることができると共に、量子化係数を符号化したときにデータ量が増加することを防止することができる。
【0015】
また、本発明においては、画像データに対して低域成分を再帰的にフィルタリングするウェーブレット変換を施してフィルタ係数として生成されたサブバンド単位のウェーブレット係数が量子化された後、所定の符号化方式で符号化処理されて算術符号データが生成されたときの符号化情報が格納されたヘッダデータに、任意のサブバンド単位の特定した部位にスクランブル処理が施された算術符号データが付加されて生成されたパケットデータから、ヘッダデータと、スクランブル処理された算術符号データとを分離し、当該スクランブル処理が施された算術符号データにデスクランブル処理を施して元の算術符号データに戻すと共に、ヘッダデータに格納されている符号化情報に基づいて、その元に戻された算術符号データを所定の復号化方式で復号化処理して量子化係数を生成し、当該生成した量子化係数を逆量子化してフィルタ係数を生成した後、そのフィルタ係数を低域フィルタ及び高域フィルタを用いてフィルタリング処理して画像データを生成するようにした。
【0016】
従って、このような構成にすれば、画像データの符号化側では当該構成と可逆的な構成を有することになり、量子化係数を符号化した後、その符号化処理して得られた算術符号データの任意のサブバンド単位の特定した部位にスクランブル処理を施すため、画像データに基づく画像に対し画質の劣化を小さくすることができると共に、量子化係数を符号化したときにデータ量が増加することを防止することができる。
【0017】
図1において、1は全体として本発明を適用した画像提供システムを示し、次世代の静止画国際標準規格であるJPEG−2000と呼ばれる圧縮符号化方式が適用された画像送信装置2及び画像受信装置3をネットワーク4を介して接続して構成されている。
【0018】
この場合、画像提供システム1においては、例えば、画像受信装置3からネットワーク4を介して画像送信装置2に画像の取得を要求すると、当該画像送信装置2から要求に応じた画像の画像データをJPEG−2000方式で圧縮符号化した後、ネットワーク4を介して画像受信装置3に送信すると共に、当該画像受信装置3において、その圧縮符号化されている画像データを受信するとJPEG−2000方式で伸張復号化するようになされている。
【0019】
実際上、図2に示すように、画像送信装置2においては、画像の送信時、例えば、内部の所定の記録媒体(図示せず)から再生した提供対象の画像の画像データD1をウェーブレット変換部10に取り込む。
【0020】
ウェーブレット変換部10は、画像データD1を低域フィルタ及び高域フィルタを用いたフィルタリングによりウェーブレット変換し、得られたウェーブレット変換係数D2を量子化部11に送出する。
【0021】
量子化部11は、ウェーブレット変換部10から与えられるウェーブレット変換係数D2に対して所定の量子化ステップサイズで除算するスカラ量子化を施し、得られた量子化係数D3を符号化部12に送出する。
【0022】
符号化部12は、量子化部11から与えられる量子化係数D3に対して所定のコードブロック(code-block)単位で、JPEG−2000方式で規定されているEBCOT(Embedded Coding with Optimized Truncation )と呼ばれるエントロピー符号化を施し、得られた符号にMQ符号化と呼ばれる算術符号化を施すことにより、得られた算術符号データD4を順次コードブロック単位でレート制御部13に送出する。
【0023】
因みに、MQ符号化は、JBIG2(Joint Bi-Level Image Coding ExpertsGroup 2 )で規定されている学習型の2値算術符号化である。
【0024】
レート制御部13は、符号化部12から順次コードブロック単位で与えられる算術符号データD4の符号量(すなわち、データ量)をカウントしながら、当該コードブロック毎に算術符号データD4の一部又は全てを切り捨てるようにして目標のビットレート又は圧縮符号化率となるように符号量を一定に制御し、この結果得られた目標のビットレート又は圧縮符号化率に応じた符号量の算術符号データD5を算術符号抽出部14及びヘッダ生成部15に送出する。
【0025】
ここで、画像送信装置2においては、スクランブル処理を施すべき算術符号データD5を任意に指定し得るようになされており、算術符号抽出部14は、レート制御部13から与えられるコードブロック単位の算術符号データD5に対して、スクランブル処理を施すように指定されたコードブロック単位の算術符号データD5であるか、又はスクランブル処理を施さないように指定されたコードブロック単位の算術符号データD5であるかを表す情報を付加してスクランブル処理部16に送出する。
【0026】
スクランブル処理部16は、図示しない制御部から公開鍵データが与えられており、算術符号抽出部14から与えられるコードブロック単位の算術符号データD5のうちのスクランブル処理を施すように指定された算術符号データD5に対しては公開鍵データを用いてスクランブル処理を施し、得られたスクランブルデータD6をパケット生成部17に送出すると共に、スクランブル処理を施さないように指定されているコードブロック単位の算術符号データD5はそのままパケット生成部17に送出する。
【0027】
このとき、ヘッダ生成部15は、コードブロック単位の算術符号データD5に基づいて、そのデータ長や、符号化処理に関する所定の符号化情報、さらには、スクランブル処理した算術符号データD5を表す情報等を生成し、当該生成した各種情報をJPEG−2000方式で定義されているパケットヘッダに格納してヘッダデータD7を生成し、そのヘッダデータD7をパケット生成部17に送出する。
【0028】
従って、パケット生成部17は、ヘッダ生成部15から与えられるヘッダデータD7に、スクランブル処理部16から与えられる対応するコードブロック単位の複数のスクランブルデータD6又はコードブロック単位の複数の算術符号データD5を付加して順次パケットデータを生成すると共に、当該生成したパケットデータを一本化し、得られたパケットストリームD8を所定のインターフェース回路18からネットワーク4を介して画像送信装置3に送信する。
【0029】
一方、図3に示すように、画像受信装置3においては、画像送信装置2からネットワーク4を介して送信されるパケットストリームD8を所定のインターフェース回路20を介してパケット解読部21に取り込む。
【0030】
パケット解読部21は、取り込んだパケットストリームD8を順次パケットデータに分離し、そのパケットデータに含まれるヘッダデータD7をヘッダ解読部22に送出すると共に、当該パケットデータに含まれるスクランブルデータD6又は算術符号データD5をデスクランブル処理部23に送出する。
【0031】
デスクランブル処理部22は、このとき、図示しない制御部から公開鍵データが与えられると共に、ヘッダ解読部22からヘッダデータD7に基づいて得られた、スクランブル処理を施している算術符号データD5を示す情報が与えられており、当該情報に基づいて、パケット解読部21から与えられるスクランブルデータD6及び算術符号データD5のうちのスクランブルデータD6を選択して公開鍵データでデスクランブル処理を施し、得られた元の算術符号データD5を算術符号解読部24に送出すると共に、送信時にスクランブル処理されていない算術符号データD5はそのまま算術符号解読部24に送出する。
【0032】
算術符号解読部24は、デスクランブル処理部22から算術符号データD5がシーケンシャルに与えられるため、当該シーケンシャルな算術符号データD5をコードブロック状に並べ替えて復号化部25に送出する。
【0033】
このとき、ヘッダ解読部22は、パケット解読部21から与えられるパケットデータD7に基づいて、パケットヘッダに格納されているデータ長や符号化情報を取り出し、当該取り出したデータ長や符号化情報に応じた復号化制御データD10を生成してこれを復号化部25に送出する。
【0034】
従って、復号化部25は、ヘッダ解読部22から与えられる復号化制御データD10に基づき、算術符号解読部24から与えられるコードブロック単位の算術符号データD5に対して算術復号化処理を施した後、エントロピー復号化処理を施し、得られた量子化係数D11を逆量子化部26に送出する。
【0035】
逆量子化部26は、復号化部25から与えられる量子化係数D11を逆量子化し、得られたウェーブレット変換係数D12をウェーブレット逆変換部27に送出する。
【0036】
ウェーブレット逆変換部27は、逆量子化器26から与えられるウェーブレット変換係数D12を低域フィルタ及び高域フィルタを用いたフィルタリングによりウェーブレット逆変換し、得られた画像データD13を例えば所定の表示部(図示せず)に送出することにより、当該表示部に画像データD13に基づく画像を表示させることができる。
【0037】
ここで、画像送信装置2において、ウェーブレット変換部10には、複数タップ長のフィルタ係数を有し、画像の垂直方向へのフィルタリング(以下、これを垂直フィルタリングと呼ぶ)及び水平方向へのフィルタリング(以下、これを水平フィルタリングと呼ぶ)に用いる低域フィルタ及び高域フィルタが設けられると共に、所定のラインバッファが設けられている。
【0038】
そして、図4に示すように、ウェーブレット変換部10は、記録媒体から画像データD1を、当該画像データD1に基づく画像SGのラインLI単位で読み出してラインバッファ30に格納し、ウェーブレット変換における垂直フィルタリングに必要なだけの複数ラインLI分のデータを格納すると、当該複数ラインLI分のデータに対して垂直フィルタリングを施し、得られた複数ラインLI分のデータに引き続き水平フィルタリングを施す。
【0039】
これにより、図5(A)及び(B)に示すように、ウェーブレット変換部10は、4つの帯域でなる第1レベルの最低域サブバンドLL1と、低高域サブバンドLH1と、高低域サブバンドHL1と、最高域サブバンドHH1とのウェーブレット変換係数D2を求めることができる。
【0040】
ここで、ウェーブレット変換部10は、第1レベルの最低域サブバンドLL1と、低高域サブバンドLH1と、高低域サブバンドHL1と、最高域サブバンドHH1とのウェーブレット変換係数D2を求めるように指定されていれば、これら最低域サブバンドLL1と、低高域サブバンドLH1と、高低域サブバンドHL1と、最高域サブバンドHH1とのウェーブレット変換係数D2を引き続き求めながら、当該求めた最低域サブバンドLL1と、低高域サブバンドLH1と、高低域サブバンドHL1と、最高域サブバンドHH1とのウェーブレット変換係数D2を順次量子化部11に送出し、当該量子化部11にウェーブレット変換係数D2に対する量子化処理を並行して実行させると共に、この後1フレーム分の画像SGから指定された第1レベルの全てのウェーブレット変換係数D2を求めるまでこの一連の処理を継続する。
【0041】
これに対して、ウェーブレット変換部10は、図6に示すような第2レベルまでの最低域サブバンドLL2と、低高域サブバンドLH2と、高低域サブバンドHL2と、最高域サブバンドHH2とのウェーブレット変換係数D2までを求めるように指定されていれば、図7(A)及び(B)に示すように、第1レベルの最低域サブバンドLL1と、低高域サブバンドLH1と、高低域サブバンドHL1と、最高域サブバンドHH1とのウェーブレット変換係数D2を引き続き求めながら、当該求めた高域側の低高域サブバンドLH1と、高低域サブバンドHL1と、最高域サブバンドHH1とのウェーブレット変換係数D2を順次量子化部11に送出する。
【0042】
これに加えて、ウェーブレット変換部10は、第1レベルの最低域サブバンドLL1のウェーブレット変換係数をライン単位で順次ラインバッファ30に格納し、当該ラインバッファ30にウェーブレット変換における垂直フィルタリングに必要なだけの複数ライン分のウェーブレット変換係数を格納すると、その複数ライン分のウェーブレット変換係数に対して垂直フィルタリングを施した後、水平フィルタリングを施すことにより、当該第1レベルの最低域サブバンドLL1を4つの帯域に分割してなる第2レベルの最低域サブバンドLL2と、低高域サブバンドLH2と、高低域サブバンドHL2と、最高域サブバンドHH2とのウェーブレット変換係数D2を求める。
【0043】
これにより、ウェーブレット変換部10は、順次求めている第1レベルの低高域サブバンドLH1と、高低域サブバンドHL1と、最高域サブバンドHH1とのウェーブレット変換係数D2を量子化部11に送出しながら、第2レベルの最低域サブバンドLL2と、低高域サブバンドLH2と、高低域サブバンドHL2と、最高域サブバンドHH2とのウェーブレット変換係数D2を求めて量子化部11に送出し、この後1フレーム分の画像SGから指定された第2レベルまでの全てのウェーブレット変換係数D2を求めるまでこの一連の処理を継続する。
【0044】
このようにして、ウェーブレット変換部10は、1フレーム分の画像SGに応じた大容量のメモリを用いることなく、小容量のラインバッファを用い、当該ラインバッファに所定量のデータ(又はウェーブレット変換係数D2)が蓄積される毎に順次ウェーブレット変換を効率良く実行し得るようになされている。
【0045】
因みに、図8(A)及び(B)に示すように、ウェーブレット変換部10は、例えば、第3レベルや第4レベルまでの最低域サブバンドLL3、LL4と、低高域サブバンドLH3、LH4と、高低域サブバンドHL3、HL4と、最高域サブバンドHH3、HH4とのウェーブレット変換係数D2まで求めるように指定されている場合には、所望するレベルよりも一段下のレベルの最低域サブバンドに対して図6(A)及び(B)について上述したようなフィルタリング処理に準じたフィルタリング処理を実行すれば、当該所望するレベルまでのサブバンドのウェーブレット変換係数D2を求めることができる。
【0046】
また、図9に示すように、量子化部11は、ウェーブレット変換部10から順次与えられるウェーブレット変換係数D2を各サブバンドのライン毎に量子化し、得られた量子化係数D3を符号化部12に送出する。
【0047】
符号化部12は、図10(A)及び(B)に示すように、量子化部11から与えられる各サブバンド毎の量子化係数D3が矢印aに示す垂直方向に沿って例えば64個のサンプル数h1に達すると、当該サブバンド毎の量子化係数D3から垂直方向及びこれと直交する水平方向に同一のサンプル数h1及びh2(すなわち、h1及びh2が共に64サンプル)でなるコードブロックを切り出し、当該切り出したコードブロック毎に符号化して算術符号データD4を生成する。
【0048】
因みに、図10(A)及び(B)は、第2レベルまでのサブバンドを示しており、図7(A)及び(B)について上述したように、第1レベルのサブバンドと、第2レベルのサブバンドとのウェーブレット変換係数D2を求めるまでには、時間差が生じるため、符号化部12は、先に垂直方向に沿って所定サンプル数h1に達する第1レベルのサブバンドの量子化係数D3に対してコードブロック単位で符号化し、この後、第2レベルのサブバンドの量子化係数D3が垂直方向に沿って所定サンプル数h1(64サンプル)に達すると、当該第1レベルのサブバンドの量子化係数D3に加えて、第2レベルのサブバンドの量子化係数D3にもコードブロック単位で符号化する。
【0049】
このようにして、符号化部12は、1フレーム分の画像から得られた全てのサブバンドの量子化係数D3に対してコードブロック単位で符号化するようになされている。
【0050】
実際上、図11(A)に示すように、コードブロック単位の量子化係数D3は、当該コードブロック内のサンプル毎に例えば絶対値の最大値が13(2進表現では「1101」)のようにそれぞれ係数値を有している。
【0051】
このため、符号化部12は、図11(B)及び(C)に示すように、符号化を実行する場合、量子化部11から与えられるコードブロック単位の量子化係数D3に基づいて、当該量子化係数D3の絶対値を最下位ビット(LSB:Least Significant Bit )から最上位ビット(MSB:Most Significant Bit)までの各ビットで順次スライスするようにして各サンプルに対応する「1」又は「0」の係数値を有する絶対値のビットプレーン(以下、これを絶対値ビットプレーンと呼ぶ)を生成する(この場合、4種類の絶対値ビットプレーンを生成する)と共に、各係数値の符号(±)のビットプレーン(以下、これを符号ビットプレーンと呼ぶ)を生成する。
【0052】
因みに、図11(A)〜(C)は、便宜上、絶対値ビットプレーン及び符号ビットプレーンのサイズをそれぞれ縦横4ビットとして表しているが、実際にはこれら絶対値ビットプレーン及び符号ビットプレーンの縦横のサイズは、それぞれコードブロックの縦横の64サンプルに対応させた64ビットである。
【0053】
そして、符号化部12は、図12に示すように、絶対値ビットプレーンに対してそれぞれそのブロックを、例えば4ビットの高さ(縦)を有し、かつ64ビットの幅(横)を有する複数のストライプSTに分割し、当該ストライプST内を実線の矢印b及び点線の矢印cに示す方向に沿って順次上から下に係数値を走査(実線の矢印b)しながらその走査を順次左から右に遷移(点線の矢印c)させるようにして各ストライプST内の全ての係数値を走査して当該係数値を符号化する。
【0054】
ところで、符号化部12で用いられるEBCOTと呼ばれるエントロピー符号化では、絶対値ビットプレーン内の係数値に対する符号化方式として、シグニフィカンスパス(Significance Pass )、リファイメントパス(Refinement Pass)及びクリーンナップパス(Cleanup Pass)と呼ばれる3種類の符号化パスが規定されている。
【0055】
また、かかるエントロピー符号化では、シグニフィカンスパス、リファイメントパス及びクリーンナップパスの符号化パスが用いられるときには、絶対値ビットプレーンのブロック内の全ての係数値にそれぞれ対応させた有効(Significant )又は無効(non-Significant )の符号化の状態変数を表すデータテーブル(以下、これを状態変数テーブルと呼ぶ)が用いられている。
【0056】
一方、符号化部12は、符号化パス内で実行する算術符号化として、MQ符号化によりコードブロック単位毎に算術符号化の統計量を測定しながらZC(ZeroCoding )、RLC(Run-Length Coding )、SC(Sign Coding )及びMR(Magnitude Refinement)を適宜選択して実行するようになされている。この結果、かかるエントロピー符号化の符号化パス内で算術符号化を実行するJPEG−2000方式では、全ての符号化パスで合計19種類のコンテキストがある。
【0057】
従って、符号化部12は、図13に示すように、コードブロック単位の量子化係数D3が最下位ビットから最上位ビットまでに絶対値でnビットの係数値を有すると、最上位ビット(n−1ビット)の絶対値ビットプレーンに対しては図12について上述したように係数値を走査しながらクリーンナップパスのみで符号化し、続くn−2から最下位ビット(0ビット)までの各絶対値ビットプレーンに対してはそれぞれ図12について上述したように係数値を走査しながら絶対値ビットプレーン毎にシグニフィカンスパス、リファイメントパス及びクリーンナップパスの順番で独立して順次3種類の符号化処理を実行する。
【0058】
この際、符号化部12は、内部のメモリに予め状態変数テーブルを格納しており、1つのコードブロック単位の量子化係数D3に対して符号化処理を開始すると、当該メモリからその状態変数テーブルを読み出して全ての状態変数をそれぞれ初期値として無効を表す例えば「0」に設定する。
【0059】
そして、符号化部12は、いずれかの係数値を符号化すると状態変数テーブル上で対応する状態変数を有効を表す例えば「1」に変更し、このようにして1つのコードブロック単位の量子化係数D3に対する符号化処理が終了するまでは有効となった状態変数をそのまま変更せずに新たに符号化された係数値に対応する状態変数のみを順次有効に変更するようにして用いる。
【0060】
因みに、状態変数テーブル内の状態変数は、このように係数値を符号化する毎に順次無効から有効に変更するため、有効桁の情報(すなわち、係数値)をすでに符号化したか否かを表すフラグと言うことができる。
【0061】
実際に、符号化部12は、絶対値ビットプレーンをシグニフィカンスパスで符号化する場合、状態変数が無効である係数値を走査したとき、当該係数値を取り囲む8近傍の各係数値のうちの少なくとも1つの係数値の状態変数が有効であれば、その走査した係数値(すなわち、状態変数が無効である)を算術符号化すると共に、当該算術符号化した係数値が「1」であるときには、符号化ビットプレーンの対応する符号が「+」であるか、又は「−」であるかを続けて算術符号化し、このようにして1つの絶対値ビットプレーン全体に対してシグニフィカンスパスで符号化する。
【0062】
また、符号化部12は、絶対値ビットプレーンをリファイメントパスで符号化する場合、当該絶対値ビットプレーン内の状態変数が有効である係数値のうち、先のシグニフィカンスパスで符号化していない係数値を算術符号化し、このようにして1つの絶対値ビットプレーン全体に対してリファイメントパスで符号化する。
【0063】
さらに、符号化部12は、絶対値ビットプレーンをクリーンナップパスで符号化する場合、当該絶対値ビットプレーン内の状態変数が無効である係数値のうち、先のシグニフィカンスパスで符号化していない係数値を算術符号化すると共に、当該算術符号化した係数値が「1」であるときには、符号化ビットプレーンの対応する符号が「+」であるか、又は「−」であるかを続けて算術符号化し、このようにして1つの絶対値ビットプレーン全体に対してクリーンナップパスで符号化する。
【0064】
ただし、符号化部12は、最上位ビット(n−1ビット)の絶対値ビットプレーンに対してクリーンナップパスで符号化する場合、状態変数テーブル内の状態変数が全て初期化されて無効となっているため、当該絶対値ビットプレーン内の各係数値のうちの「1」である係数値を算術符号化すると共に、「0」の係数値に対しては、「0」の連続する数を検出して例えばMQ符号化によりRLCを実行する。
【0065】
ここで、算術符号抽出部14に対しては、スクランブル処理を施すべき算術符号データD5を単体で指定することもできるが、例えば、図14(A)及び(B)に示すように、第1レベルの低高域サブバンドLH1、高低域サブバンドHL1及び最高域サブバンドHH1や、第2レベルの低高域サブバンドLH2、高低域サブバンドHL2及び最高域サブバンドHH2のように、サブバンド単位で指定することもできる。
【0066】
従って、算術符号抽出部14は、スクランブル処理を施すべきサブバンドが指定されると、当該指定された第1レベルの低高域サブバンドLH1、高低域サブバンドHL1及び最高域サブバンドHH1や、第2レベルの低高域サブバンドLH2、高低域サブバンドHL2及び最高域サブバンドHH2に属する全てのコードブロック単位の算術符号データD5に対してそれぞれスクランブル処理を施すように指定する情報を付加する。
【0067】
また、算術符号抽出部14に対しては、1つの画像に対してスクランブル処理を施すべきサブバンドとして、全てのサブバンドやレベルを指定したり、複数レベルのサブバンドを同時に指定することもできるようになされている。
【0068】
因みに、所定レベルまでのサブバンドは、画像を構成するエネルギーの多くが低域成分に集中しているため、図14(A)及び(B)について上述したように、第1レベルの低高域サブバンドLH1、高低域サブバンドHL1及び最高域サブバンドHH1や、第2レベルの低高域サブバンドLH2、高低域サブバンドHL2及び最高域サブバンドHH2に対してのみスクランブル処理を施すように指定するよりも、最低域サブバンドLL1、LL2のみにスクランブル処理を施すように指定すれば、その分、スクランブル強度を高めることができる。
【0069】
そして、スクランブル処理部16は、スクランブル処理を施すように指定された算術符号データD5に対して、ブラウフィッシュ(Blowfish)法と呼ばれる共通鍵ブロック暗号化方式に基づいて、当該算術符号データD5を固定長のデータ列に区切り、そのデータ列毎に共通鍵データを用いてスクランブル処理を施している。
【0070】
この際、スクランブル処理部16は、コードブロック単位の算術符号データD5がレート制御部13により一定のデータ長を有するようにその符号量が制御されているため、当該算術符号データD5をスクランブル処理用の所定データ列に容易に区切ることができるようになされている。
【0071】
また、スクランブル処理部16は、ブロック暗号化方式により算術符号データD5を固定長のデータ列に区切り、そのデータ列毎に共通鍵データを用いてスクランブル処理を施すことにより、スクランブル処理の後でデータ量が増加することをほぼ確実に防止し得るようになされている。
【0072】
ところで、スクランブル処理を施す算術符号データD5を任意に指定すると、当該指定した算術符号データD5を画像受信装置3に通知する必要がある。
【0073】
このため、ヘッダ生成部15は、図15に示すように、パケットヘッダの一部として、例えば、JEPG−200方式ではTableA−10として定義されているRsizという16ビットのパラメータを用い、当該Rsizに存在するオール「0」以外は未使用(reserved)となっている16ビットの情報格納領域JK1の空きビットを利用して、スクランブル処理を施すように指定された算術符号データD5を通知する。
【0074】
ここで、ヘッダ生成部15は、算術符号データD5にスクランブル処理が施された場合はRsizの空きビット内の先頭のビットに「1」を割り当て、これとは逆に算術符号データD5にスクランブル処理が施されていない場合はRsizの空きビット内の先頭のビットに「0」を割り当てる。
【0075】
また、ヘッダ生成部15は、Rsizの空きビット内の先頭のビットに「1」を割り当てた場合には、続く2ビット目から4ビット目までの3ビットにウェーブレット変換のレベルの情報を割り当てる。因みに、ウェーブレット変換のレベルの情報には、3ビットを利用するため、当該3ビットにより0レベルから7レベルまでを指定することができる。
【0076】
さらに、ヘッダ生成部15は、Rsizの空きビットに対して5ビット目以降にはスクランブル処理を施すレベルを割り当てる。実際には、例えば、5ビット目から9ビット目までの5ビットを順次第1レベルから第5レベルまでと対応させて、その5ビットに「10010」を割り当てると、第1レベルと第4レベルに対してスクランブル処理が施してあり、第2レベル、第3レベル及び第5レベルに対してはスクランブル処理を施していないことを通知することができる。
【0077】
このようにしてヘッダ生成部15は、スクランブル処理の有無の情報をヘッダデータとして画像受信装置3に適確に通知し得るようになされている。
【0078】
これにより、画像受信装置3において、デスクランブル処理部23は、そのヘッダデータD7に示すスクランブル処理に関する情報に基づいて、スクランブルデータD6に適確にデスクランブル処理を施すことができ、かくして、図16に示すように、画像SGAを適確に視認させることができる。
【0079】
ところで、画像送信装置2は、ヘッダデータD7にはスクランブル処理を施さずに、算術符号データD5のみにスクランブル処理を施している。
【0080】
従って、図3について上述した画像受信装置3とデスクランブル処理部23を除いて同様に構成された画像受信装置であれば、画像送信装置2から送信されたパケットストリームD8を受信したとき、当該パケットストリームD8に基づいて得られるヘッダデータD7に復号化に必要となる符号化情報が格納されているため、その符号化情報に基づいて算術符号データD5(送信時にスクランブル処理を施していないデータ)と共にスクランブルデータD6をそのまま復号化することができる。
【0081】
そして、かかる画像受信装置においては、算術符号データD5及びスクランブルデータD6を復号化するようにして画像データを生成すると、当該スクランブルデータD6が適確に復号化できない分、その画像データに基づいて、図17乃至図19に示すように、画像の絵柄等の概要をある程度までは視認させ得るようになされている。
【0082】
因みに、図17に示すように、第1レベルのみにスクランブル処理を施すように指定された画像SGBと、図18に示すように、第4レベルのみにスクランブル処理を施すように指定された画像SGCとを比較すると、小さいレベルに対してスクランブル処理を施した方が画質の劣化が小さいことが分かる。
【0083】
また、図19に示す第5レベル及び第6レベルにスクランブル処理を施すように指定された画像SGDのように、同時に異なるレベルに対してスクランブル処理を施すように指定すると、1つのレベルのみにスクランブル処理を施すように指定された場合に比べてスクランブル処理の強度を細かく選択し得ることが分かる。
【0084】
このようにして、この画像提供システム1においては、共通鍵データを持たないユーザに対して、画像の概略をある程度見せるようにする場合でも、その度合いを細かく制御して画像を提供することができる。
【0085】
以上の構成において、この画像提供システム1では、画像送信装置2により、提供対象の画像の画像データD1をウェーブレット変換し、得られたウェーブレット変換係数D2を量子化して量子化係数D3を生成し、当該生成した量子化係数D3を順次コードブロック単位で符号化パス内で算術符号化するようにして算術符号データD5を生成する。
【0086】
そして、画像送信装置2では、このようにして生成したコードブロック単位の算術符号データD5に対して指定に応じてスクランブル処理を施し、得られたスクランブルデータD6に符号化処理の内容を表す符号化情報を格納したヘッダデータD7を付加してパケットデータを生成し、当該パケットデータを画像受信装置3に送信する。
【0087】
一方、画像受信装置3では、画像送信装置2から送信されたパケットデータを受信すると、そのパケットデータをヘッダデータD7及びスクランブルデータD6に分離して当該スクランブルデータにデスクランブル処理を施し、得られた元の算術符号データD5をヘッダデータD7に格納されている符号化情報に基づいて復号化パス内で算術復号化するようにして量子化係数D11を生成すると共に、当該量子化係数D11を逆量子化し、得られたウェーブレット変換係数D12をウェーブレット逆変換するようにして画像データD13を生成する。
【0088】
従って、この画像提供システム1では、画像送信装置2において、画像データD1を符号化した後、得られた算術符号データD5にスクランブル処理を施すため、量子化係数を符号化した後でデータ量が大幅に増加することを防止することができる。
【0089】
これに加えて、この画像提供システム1では、画像送信装置2において、ブロック暗号化方式により算術符号データD5を所定のデータ長に区切ってスクランブル処理を施すため、当該算術符号データD5のデータ量がスクランブル処理の後に増加することも合わせて防止することができる。
【0090】
また、画像提供システム1では、このような画像送信装置2から送信されたパケットデータを受信する画像受信装置3でも、デスクランブル処理は送信側のスクランブル処理と可逆的であり、かつ復号化は送信側の符号化と可逆的であるため、当該画像送信装置2と同様に、受信したパケットデータをデスクランブル処理を介して復号化するまでの間にデータの圧縮率が低下することを防止することができる。
【0091】
以上の構成によれば、画像送信装置2において、画像データD1をウェーブレット変換した後量子化し、得られた量子化係数D3を順次コードブロック単位で符号化パス内で算術符号化して算術符号データD5を生成し、当該生成したコードブロック単位の算術符号データD5にスクランブル処理を施した後、ヘッダデータD7を付加して画像受信装置3に送信すると共に、当該画像送信装置3において、受信したパケットデータをヘッダデータD7及びスクランブルデータD6に分離して当該スクランブルデータにデスクランブル処理を施し、得られた元の算術符号データD5をヘッダデータD7に格納されている符号化情報に基づいて復号化パス内で算術復号化し、得られた量子化係数D11を逆量子化した後、ウェーブレット逆変換して画像データD13を生成するようにしたことにより、画像送信装置2において、量子化係数D3を符号化した後、スクランブル処理を施してパケットデータとして送信するまでの間にデータ量が増大することを防止することができると共に、これに応じて、当該画像送信装置2と対応する構成を有する画像受信装置3でパケットデータを受信してから復号化するまでの間にデータ量が増大することも防止することができ、かくして、画像データをスクランブル処理して送信するものの、データの圧縮率が低下することを防止し得る画像提供システムを実現することができる。
【0092】
なお、上述の実施の形態においては、スクランブル処理を施すコードブロック単位の個々の算術符号データD5や、レベル及びサブバンドを任意に指定することにより画像の一部又は全体に対してスクランブル処理を施すようにした場合について述べたが、本発明はこれに限らず、図20(A)及び(B)に示すように、各サブバンドの上下が画像SGEの上下に対応していることにより、当該画像SGEに対してスクランブル処理を施したい部位を特定し、当該特定した部位に対応させて実際にスクランブル処理を施す算術符号データD5を指定するようにしても良い。
【0093】
これに加えて、算術符号データD5の深さ、すなわち、算術符号データD5を所定のデータ長で区切って抽出部分にスクランブル処理を施すように指定するようにしても良く、この場合には算術符号データD5を区切るためのデータ長に応じてスクランブルの強度を調節することができる。
【0094】
また、上述の実施の形態においては、ヘッダデータD7にコードブロック単位の算術符号データD5又はコードブロック単位のスクランブルデータD6を付加してパケットデータを生成するようにした場合について述べたが、本発明はこれに限らず、複数の算術符号データD5から階層的なレイヤを生成し、当該レイヤ毎にパケットデータを生成するようにしても良い。
【0095】
因みに、かかるパケットデータを生成するには、例えば、図21に示すように、符号化部12において例えばコードブロック0乃至コードブロック3の量子化係数D3を符号化する前に当該コードブロック0乃至コードブロック3毎にそれぞれ各絶対値ビットプレーンを例えばパケットデータ0乃至パケットデータNに階層的に分散させるように対応付けておき、図22に示すように、符号化部12において実際にコードブロック0乃至コードブロック3の量子化係数D3をそれぞれ符号化した時点で、当該コードブロック0乃至コードブロック3毎にそれぞれパケットデータ0乃至パケットデータNに階層的に分散させるように対応付けた絶対値ビットプレーンにおける符号化結果(すなわち、算術符号)同士を階層的なレイヤ0乃至レイヤNとし、これらレイヤ0乃至レイヤN毎にパケットデータを生成すれば良い。
【0096】
なお、図21において、Cはクリーンナップパスを示すと共に、Sはシグニフィカンスパスを示し、Mはリファイメントパスを示すと共に、0はパスが存在していないことを示しており、符号化の前に予めパケットデータ0乃至パケットデータNにレイヤ0乃至レイヤNを対応付けるようにしてそのレイヤの数が設定されている。また、図22において、各レイヤ0乃至レイヤNはそれぞれパケットデータ0乃至パケットデータNに対応しており、レイヤ0乃至レイヤN毎の斜線で示すブロックはその高さにより算術符号の符号量を表すと共に、Emptyは算術符号が存在しないことを表している。
【0097】
そして、図23に示すように、レイヤ化した算術符号(Body)にヘッダデータD7を付加するようにしてパケットストリームD20を生成し、レイヤ係数をλとして0(最上位)から2、……、Λ(最下位)までで表すと共に、解像度係数をlとして0(最低解像度)から1、……、L、(最高解像度)までで表し、色成分インデックスをCとして1、2……として表すようにして、例えば、色成分インデックスCが1つであった場合、同一レイヤに属するパケットデータ(λの値が同じ)を対応する空間解像度の低い方から高い方に順番にまとめ、これらまとめたパケットデータをレイヤ係数λの低い方から高い方(λを1からΛまで)に順番に並べるようにすれば、SNR(Signal to Noise Ratio )プログレッシブを実現することができる。
【0098】
また、図24に示すように、レイヤ化した算術符号(Body)にヘッダデータD7を付加するようにしてパケットストリームD21を生成し、色成分インデックスCが1つであった場合、同一空間解像度に相当するパケットデータをレイヤ係数λの低い方から高い方(λが1からΛまで)に順番に並べ、これらを並べたパケットデータを空間解像度の低い方から高い方(lを0からLまで)に並べるようにすれば、解像度プログレッシブを実現することができる。
【0099】
なお、このようにプログレッシブを実現した場合、図25に示すように、画像送信装置2のヘッダ生成部15は、例えば、JPEG−2000方式ではTableA−10として定義されているScodという8ビットのパラメータにより、8ビットのうちの上位4ビットが空きビット(Reserved)となっている情報格納領域JK2を利用すれば、レイヤ番号等を画像受信装置に通知することができる。
【0100】
また、レイヤ構造化したパケットストリームでは、例えば、レイヤ係数λが0の全ての解像度のもののように、特定のレイヤに存在するパケットデータ内の算術符号のみにスクランブル処理を施すようにすれば良い。すなわち、SNRプログレッシブでは、レイヤが上位にあるものほど画質に与える影響が大きいため、上位レイヤに存在するパケットデータ内の算術符号にスクランブル処理を施せば、下位レイヤのものに比べて、より強くスクランブルをかけることができる。
【0101】
さらに、スクランブル処理を施すレイヤを1つだけ指定するのではなく、例えば、最上位レイヤから数えて特定数のレイヤを指定したり、又は、最低位レイヤから数えて特定数のレイヤを指定することもできる。
【0102】
さらに、上述の実施の形態においては、量子化係数D3を縦横がそれぞれ64サンプルのコードブロック単位で符号化するようにした場合について述べたが、本発明はこれに限らず、EBCOTでは、コードブロックの縦横のサンプル数を4から 256までの2のべき乗と規定されているため、縦横それぞれ32サンプルや、縦が 128サンプルで横が32サンプルのコードブロックのように種々のサイズのコードブロック単位で量子化係数D3を符号化したり、又は、コードブロックのサイズを任意に変更するようにしても良い。
【0103】
さらに、上述の実施の形態においては、本発明を図1〜図25について上述した画像提供システム1の画像送信装置2及び画像受信装置3に適用するようにした場合について述べたが、本発明はこれに限らず、画像を符号化及び又は復号化するものであれば、画像を符号化及び復号化する双方の構成を有する画像データ記録再生装置やビデオカメラ、また、画像の提供を受けることのできる携帯電話機やパーソナルコンピュータ、PDA(Personal Digital Assistance )等のように、この他種々の構成の画像符号化装置及び画像復号化装置に広く適用することができる。
【0104】
さらに、上述の実施の形態においては、画像データに低域フィルタ及び高域フィルタを用いてフィルタリングしてフィルタ係数を生成するフィルタ係数生成手段として、ウェーブレット変換部10を適用するようにした場合について述べたが、本発明はこれに限らず、画像データに低域フィルタ及び高域フィルタを用いてフィルタリングしてフィルタ係数を生成することができれば、この他種々の構成のフィルタ係数生成手段を広く適用することができる。
【0105】
さらに、上述の実施の形態においては、量子化係数を所定の符号化方式で符号化処理して算術符号データを生成する符号化手段として、符号化部12を適用するようにした場合について述べたが、本発明はこれに限らず、量子化係数を所定の符号化方式で符号化処理して算術符号データを生成することができれば、この他種々の構成でなる符号化手段を広く適用することができる。
【0106】
さらに、上述の実施の形態においては、ヘッダデータに格納されている符号化情報に基づいて、デスクランブル処理手段で元に戻された算術符号データを所定の復号化方式で復号化処理して量子化係数を生成する復号化手段として、復号化部25を適用するようにした場合について述べたが、本発明はこれに限らず、ヘッダデータに格納されている符号化情報に基づいて、デスクランブル処理手段で元に戻された算術符号データを所定の復号化方式で復号化処理して量子化係数を生成することができれば、この他種々の構成の復号化手段を広く適用することができる。
【0107】
さらに、上述の実施の形態においては、フィルタ係数を低域フィルタ及び高域フィルタを用いてフィルタリング処理して画像データを生成する画像データ生成手段として、ウェーブレット逆変換部27を適用するようにした場合について述べたが、本発明はこれに限らず、フィルタ係数を低域フィルタ及び高域フィルタを用いてフィルタリング処理して画像データを生成することができれば、この他種々の構成の画像データ生成手段を広く適用することができる。
【0108】
【発明の効果】
上述のように本発明によれば、画像データに対して低域成分を再帰的にフィルタリングするウェーブレット変換を施すことによりフィルタ係数としてサブバンド単位のウェーブレット係数を生成し、当該生成したウェーブレット係数を量子化して量子化係数を生成し、その量子化係数を所定の符号化方式で符号化処理して算術符号データを生成した後、当該算術符号データの任意のサブバンド単位の特定した部位にスクランブル処理を施すと共に、その算術符号データに基づいて符号化処理に関する所定の符号化情報を生成し、当該生成した符号化情報を格納して生成したヘッダデータにスクランブル処理を施した算術符号データを付加してパケットデータを生成するようにしたことにより、量子化係数を符号化処理した後に、その符号化処理して得られた算術符号データの任意のサブバンド単位の特定した部位にスクランブル処理を施す分、画像データに基づく画像に対し画質の劣化を小さくすることができると共に、量子化係数を符号化したときにデータ量が増加することを防止することができ、かくして、画像データの圧縮率の低下を防止することができる。
【0109】
また、本発明によれば、画像データに対して低域成分を再帰的にフィルタリングするウェーブレット変換を施してフィルタ係数として生成されたサブバンド単位のウェーブレット係数が量子化された後、所定の符号化方式で符号化処理されて算術符号データが生成されたときの符号化情報が格納されたヘッダデータに、任意のサブバンド単位の特定した部位にスクランブル処理が施された算術符号データが付加されて生成されたパケットデータから、ヘッダデータと、スクランブル処理された算術符号データとを分離し、当該スクランブル処理が施された算術符号データにデスクランブル処理を施して元の算術符号データに戻すと共に、ヘッダデータに格納されている符号化情報に基づいて、その元に戻された算術符号データを所定の復号化方式で復号化処理して量子化係数を生成し、当該生成した量子化係数を逆量子化してフィルタ係数を生成した後、そのフィルタ係数を低域フィルタ及び高域フィルタを用いてフィルタリング処理して画像データを生成するようにしたことにより、このような構成にすれば、画像データの符号化側では当該構成と可逆的な構成を有することになり、量子化係数を符号化した後、その符号化処理して得られた算術符号データの任意のサブバンド単位の特定した部位にスクランブル処理を施す分、画像データに基づく画像に対し画質の劣化を小さくすることができると共に、量子化係数を符号化したときにデータ量が増加することを防止することができ、かくして、画像データの圧縮率の低下を防止することができる。
【図面の簡単な説明】
【図1】本発明による画像提供システムの構成の一実施の形態を示すブロック図である。
【図2】画像送信装置の回路構成を示すブロック図である。
【図3】画像受信装置の回路構成を示すブロック図である。
【図4】ウェーブレット変換の説明に供する略線図である。
【図5】第1レベルのウェーブレット変換によるサブバンドを示す略線図である。
【図6】第2レベルまでのサブバンドを示す略線図である。
【図7】第2レベルまでのウェーブレット変換によるサブバンドを示す略線図である。
【図8】第3及び第4レベルまでのサブバンドを示す略線図である。
【図9】量子化器における量子化の説明に供する略線図である。
【図10】符号化部における符号化の説明に供する略線図である。
【図11】符号化部におけるビットプレーンの生成の説明に供する略線図である。
【図12】符号化部における絶対値ビットプレーンの走査の説明に供する略線図である。
【図13】1つのコードブロックに対する各絶対値ビットプレーンの符号化の説明に供する略線図である。
【図14】スクランブル処理すべき算術符号データの指定の説明に供する略線図である。
【図15】パケットデータの一部として用いるRsicの構成を示す略線図である。
【図16】デスクランブル処理を施して得られた画像の説明に供する略線図である。
【図17】第1レベルにスクランブル処理を施した画像の説明に供する略線図である。
【図18】第4レベルにスクランブル処理を施した画像の説明に供する略線図である。
【図19】第5レベル及び第6レベルにスクランブル処理を施した画像の説明に供する略線図である。
【図20】他の実施の形態による画像の任意の部位にスクランブル処理を施す場合の説明に供する略線図である。
【図21】各コードブロック内の絶対値ビットプレーンを予めパケットデータに対応付けした場合の説明に供する略線図である。
【図22】他の実施の形態によるパケットデータのレイヤ化の説明に供する略線図である。
【図23】レイヤによるSNRプログレッシブを実現する場合の説明に供する略線図である。
【図24】レイヤによる解像度プログレッシブを実現する場合の説明に供する略線図である。
【図25】パケットデータの一部として用いるScodの説明に供する略線図である。
【符号の説明】
1……画像提供システム、2……画像送信装置、3……画像受信装置、10……ウェーブレット変換部、11……量子化部、12……符号化部、13……レート制御部、14……算術符号抽出部、15……ヘッダ生成部、16……スクランブル処理部、17……パケット生成部、21……パケット解読部、22……ヘッダ解読部、23……デスクランブル処理部、24……算術符号解読部、25……復号化部、26……逆量子化部、27……ウェーブレット逆変換部、HH1、HH2、HH3、HH4……最高域サブバンド、HL1、HL2、HL3、HL4……高低域サブバンド、LH1、LH2、LH3、LH4……低高域サブバンド、LL1、LL2、LL3、LL4……最低域サブバンド、D1、D13……画素データ、D2、D12……ウェーブレット変換係数、D3、D11……量子化係数、D4、D5……算術符号データ、D6……スクランブルデータ、D7……ヘッダデータ、D8……パケットストリーム。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image encoding apparatus and method, an image decoding apparatus and method, and is suitable for application to, for example, an image providing system that provides an image.
[0002]
[Prior art]
In recent years, an image transmission device and an image reception device have been connected via a network, and the image
An image providing system that provides an image from an image transmitting apparatus to an image receiving apparatus is considered.
[0003]
[Problems to be solved by the invention]
By the way, in such an image providing system, for the purpose of protecting the copyright for the image to be provided, anyone can freely acquire it by embedding a digital watermark in the image to prevent unauthorized copying or encrypting the image. It has been proposed to make it possible, for example, to show only the person who purchases the image a key for decryption.
[0004]
However, in the method of embedding a digital watermark in the image in order to protect the copyright of the image, a part of the image data of the image is replaced with the data of the digital watermark and the image quality is deteriorated. It is unsuitable for etc.
[0005]
Also, in the method of encrypting the image, if the encryption is performed so that the outline of the image and the like of the image cannot be visually recognized at all, the image is not visible at all. It becomes difficult to provide easily.
[0006]
For this reason, recently, in an image providing system, encryption is performed so that an outline of a pattern or the like can be visually recognized to some extent on an image (hereinafter referred to as “scramble” in particular), and the image is actually purchased. It has been proposed that only a person can pass a key to unscramble and show an image.
[0007]
Further, in such an image providing system, when an image is provided, the image transmitting apparatus compresses and encodes the image data of the image by a JPEG (Joint Photographic Experts Group) method and transmits the image data to the image receiving apparatus. It has also been proposed to improve efficiency.
[0008]
Therefore, in such an image providing system, the image transmission device performs discrete cosine transform (DCT) on the image data, quantizes the obtained discrete cosine transform coefficient to generate a quantized coefficient, After the scramble process is performed on the quantized coefficient, the image data is compressed and encoded by performing a Huffman encoding process.
[0009]
Here, Huffman coding encodes a scrambled quantized coefficient, assigns a short code to the obtained code if the frequency of occurrence is high, and assigns a relatively long code to the code if the frequency of occurrence is low. Conversion process.
[0010]
However, in the image transmission apparatus, when the quantized coefficients are scrambled, the arrangement of the quantized coefficients changes randomly, so that the codes obtained by encoding the scrambled quantized coefficients are short. Compressed codes obtained by compressing and encoding image data because codes with relatively high occurrence frequency to which codes are assigned are greatly reduced, and codes with relatively low occurrence frequencies to which long codes are assigned are increased. The amount of data in the computerized data increases.
[0011]
For this reason, although the image providing system compresses and encodes image data, there is a problem in that the image data is transmitted at a compression rate much higher than a desired compression rate.
[0012]
The present invention has been made in consideration of the above points, and an object of the present invention is to propose an image encoding apparatus and method, an image decoding apparatus and method that can prevent a reduction in the compression rate of image data.
[0013]
[Means for Solving the Problems]
In order to solve such a problem, in the present invention, wavelet transform for recursively filtering low-frequency components is performed on image data to generate wavelet coefficients in subband units as filter coefficients, and the generated wavelet coefficients are Quantize to generate a quantized coefficient, encode the quantized coefficient with a predetermined encoding method to generate arithmetic code data, and then scramble to the specified part of the arbitrary subband unit of the arithmetic code data Performs processing, generates predetermined coding information related to the coding processing based on the arithmetic code data, and adds the scrambled arithmetic code data to the header data generated by storing the generated coding information To generate packet data.
[0014]
Therefore, after the quantization coefficient is encoded, the specified portion of the arbitrary subband unit of the arithmetic code data obtained by the encoding process is subjected to the scramble process, so that the image quality of the image based on the image data is improved. Deterioration can be reduced, and an increase in the amount of data when the quantized coefficients are encoded can be prevented.
[0015]
Further, in the present invention, the wavelet transform for recursively filtering the low-frequency component is applied to the image data, and the sub-band wavelet coefficients generated as filter coefficients are quantized, and then a predetermined encoding method is used. Generated by adding arithmetic code data that is scrambled to the specified part of any subband unit to the header data that stores the encoding information when arithmetic code data is generated by encoding Header data and scrambled arithmetic code data are separated from the received packet data, the scrambled arithmetic code data is descrambled to return to the original arithmetic code data, and the header data Based on the encoded information stored in the After generating a quantized coefficient by decoding with the method, the generated quantized coefficient is dequantized to generate a filter coefficient, and then the filter coefficient is filtered using a low-pass filter and a high-pass filter. Image data was generated.
[0016]
Therefore, with such a configuration, the image data encoding side has a reversible configuration with the configuration, and after encoding the quantized coefficient, the arithmetic code obtained by the encoding process is obtained. Since scramble processing is performed on a specified part of an arbitrary subband unit of data, image quality degradation can be reduced with respect to an image based on image data, and the amount of data increases when a quantization coefficient is encoded. This can be prevented.
[0017]
In FIG. 1, reference numeral 1 denotes an image providing system to which the present invention is applied as a whole, and an image transmitting apparatus 2 and an image receiving apparatus to which a compression encoding method called JPEG-2000, which is the next-generation still image international standard, is applied. 3 are connected via a network 4.
[0018]
In this case, in the image providing system 1, for example, when the image receiving device 3 requests the image transmitting device 2 to acquire an image via the network 4, the image transmitting device 2 sends the image data corresponding to the request to the JPEG. After compressing and encoding with the −2000 system, the image data is transmitted to the image receiving apparatus 3 via the network 4. When the image receiving apparatus 3 receives the compressed and encoded image data, the image data is decompressed and decoded with the JPEG-2000 system. It is made to become.
[0019]
In practice, as shown in FIG. 2, in the image transmission apparatus 2, when transmitting an image, for example, image data D1 of an image to be provided reproduced from an internal predetermined recording medium (not shown) is converted into a wavelet transform unit. 10
[0020]
The wavelet transform unit 10 performs wavelet transform on the image data D1 by filtering using a low-pass filter and a high-pass filter, and sends the obtained wavelet transform coefficient D2 to the quantization unit 11.
[0021]
The quantization unit 11 performs scalar quantization that divides the wavelet transform coefficient D2 given from the wavelet transform unit 10 by a predetermined quantization step size, and sends the obtained quantization coefficient D3 to the encoding unit 12. .
[0022]
The encoding unit 12 includes EBCOT (Embedded Coding with Optimized Truncation) defined by the JPEG-2000 system in units of a predetermined code block (code-block) with respect to the quantization coefficient D3 given from the quantization unit 11. Entropy coding called is performed, and arithmetic coding called MQ coding is performed on the obtained code, so that the obtained arithmetic code data D4 is sequentially sent to the rate control unit 13 in units of code blocks.
[0023]
Incidentally, MQ coding is learning type binary arithmetic coding defined by JBIG2 (Joint Bi-Level Image Coding Experts Group 2).
[0024]
The rate control unit 13 counts the code amount (that is, the data amount) of the arithmetic code data D4 sequentially given from the encoding unit 12 in units of code blocks, and a part or all of the arithmetic code data D4 for each code block. The code amount is controlled to be constant so that the target bit rate or compression coding rate is obtained, and the arithmetic code data D5 having a code amount corresponding to the target bit rate or compression coding rate obtained as a result is obtained. Is sent to the arithmetic code extraction unit 14 and the header generation unit 15.
[0025]
Here, in the image transmission device 2, the arithmetic code data D5 to be scrambled can be arbitrarily designated, and the arithmetic code extraction unit 14 performs arithmetic in code block units given from the rate control unit 13. Whether the code data D5 is arithmetic code data D5 in units of code blocks designated to be scrambled, or is arithmetic code data D5 in units of code blocks designated not to be scrambled Is added to the scramble processing unit 16.
[0026]
The scramble processing unit 16 is provided with public key data from a control unit (not shown), and an arithmetic code designated to perform scramble processing in the arithmetic code data D5 in units of code blocks supplied from the arithmetic code extraction unit 14 The data D5 is scrambled using the public key data, and the obtained scrambled data D6 is sent to the packet generator 17 and the arithmetic code in units of code blocks designated not to be scrambled The data D5 is sent to the packet generator 17 as it is.
[0027]
At this time, the header generation unit 15 is based on the arithmetic code data D5 in units of code blocks, the data length thereof, predetermined encoding information related to the encoding process, information indicating the scrambled arithmetic code data D5, and the like Is stored in a packet header defined by the JPEG-2000 system to generate header data D7, and the header data D7 is sent to the packet generator 17.
[0028]
Therefore, the packet generation unit 17 adds a plurality of scrambled data D6 in units of code blocks or a plurality of arithmetic code data D5 in units of code blocks provided from the scramble processing unit 16 to the header data D7 provided from the header generation unit 15. In addition, packet data is sequentially generated, the generated packet data is unified, and the obtained packet stream D8 is transmitted from the predetermined interface circuit 18 to the image transmission device 3 via the network 4.
[0029]
On the other hand, as shown in FIG. 3, in the image reception device 3, the packet stream D <b> 8 transmitted from the image transmission device 2 via the network 4 is taken into the packet decoding unit 21 via the predetermined interface circuit 20.
[0030]
The packet decoding unit 21 sequentially separates the fetched packet stream D8 into packet data, sends header data D7 included in the packet data to the header decoding unit 22, and scramble data D6 or arithmetic code included in the packet data The data D5 is sent to the descrambling processor 23.
[0031]
At this time, the descrambling processing unit 22 is provided with public key data from a control unit (not shown) and also shows arithmetic code data D5 subjected to scrambling processing obtained from the header decrypting unit 22 based on the header data D7. Information is given, and based on the information, the scrambled data D6 and the scrambled data D6 of the arithmetic code data D5 given from the packet decrypting unit 21 are selected and descrambled with the public key data. The original arithmetic code data D5 is sent to the arithmetic code decoding unit 24, and the arithmetic code data D5 that has not been scrambled at the time of transmission is sent to the arithmetic code decoding unit 24 as it is.
[0032]
Since the arithmetic code data D5 is sequentially supplied from the descrambling processing unit 22, the arithmetic code decoding unit 24 rearranges the sequential arithmetic code data D5 into a code block and sends it to the decoding unit 25.
[0033]
At this time, the header decoding unit 22 extracts the data length and encoding information stored in the packet header based on the packet data D7 given from the packet decoding unit 21, and according to the extracted data length and encoding information The decryption control data D10 is generated and sent to the decryption unit 25.
[0034]
Therefore, the decoding unit 25 performs arithmetic decoding processing on the arithmetic code data D5 in units of code blocks given from the arithmetic code decoding unit 24 based on the decoding control data D10 given from the header decoding unit 22. The entropy decoding process is performed, and the obtained quantized coefficient D11 is sent to the inverse quantization unit 26.
[0035]
The inverse quantization unit 26 inversely quantizes the quantization coefficient D11 given from the decoding unit 25, and sends the obtained wavelet transform coefficient D12 to the wavelet inverse transform unit 27.
[0036]
The wavelet inverse transform unit 27 performs wavelet inverse transform on the wavelet transform coefficient D12 given from the inverse quantizer 26 by filtering using a low-pass filter and a high-pass filter, and the obtained image data D13 is, for example, a predetermined display unit ( (Not shown), an image based on the image data D13 can be displayed on the display unit.
[0037]
Here, in the image transmission device 2, the wavelet transform unit 10 has a filter coefficient having a plurality of tap lengths, and performs filtering in the vertical direction of the image (hereinafter referred to as vertical filtering) and filtering in the horizontal direction ( Hereinafter, a low-pass filter and a high-pass filter used for horizontal filtering are provided, and a predetermined line buffer is provided.
[0038]
Then, as shown in FIG. 4, the wavelet transform unit 10 reads the image data D1 from the recording medium in units of line LI of the image SG based on the image data D1, stores it in the line buffer 30, and performs vertical filtering in the wavelet transform. When the data for the plurality of lines LI is stored as much as necessary, the data for the plurality of lines LI is subjected to vertical filtering, and the obtained data for the plurality of lines LI is subsequently subjected to horizontal filtering.
[0039]
As a result, as shown in FIGS. 5A and 5B, the wavelet transform unit 10 includes the first level lowest band subband LL1, the low and high band subband LH1, and the high and low band subbands having four bands. The wavelet transform coefficient D2 between the band HL1 and the highest band subband HH1 can be obtained.
[0040]
Here, the wavelet transform unit 10 obtains the wavelet transform coefficient D2 of the first level lowest band subband LL1, low high band subband LH1, high low band subband HL1, and highest band subband HH1. If specified, the wavelet transform coefficient D2 of these lowest band subband LL1, low and high band subband LH1, high and low band subband HL1, and highest band subband HH1 is continuously obtained, and the obtained lowest band The wavelet transform coefficient D2 of the subband LL1, the low and high frequency subband LH1, the high and low frequency subband HL1, and the highest frequency subband HH1 is sequentially sent to the quantization unit 11, and the wavelet transform coefficient is sent to the quantization unit 11 The quantization process for D2 is executed in parallel, and is designated from the image SG for one frame thereafter. Until obtaining all wavelet transform coefficients D2 of the first level to continue the series of processes.
[0041]
On the other hand, the wavelet transform unit 10 includes the lowest level subband LL2, the low and high frequency subband LH2, the high and low frequency subband HL2, and the highest frequency subband HH2 up to the second level as shown in FIG. 7A and 7B, as shown in FIGS. 7A and 7B, the lowest level subband LL1 of the first level, the low and high frequency subband LH1, and the high and low frequencies are specified. While continuously obtaining the wavelet transform coefficient D2 of the region subband HL1 and the highest region subband HH1, the obtained high region side low high region subband LH1, high region subband HL1, and highest region subband HH1 Are sequentially sent to the quantizing unit 11.
[0042]
In addition, the wavelet transform unit 10 sequentially stores the wavelet transform coefficients of the lowest level subband LL1 of the first level in the line buffer 30 in units of lines, and the line buffer 30 only requires vertical filtering in the wavelet transform. When the wavelet transform coefficients for a plurality of lines are stored, vertical filtering is performed on the wavelet transform coefficients for the plurality of lines, and then horizontal filtering is performed to obtain the lowest-level subband LL1 of the first level. A wavelet transform coefficient D2 of the lowest level subband LL2, the low and high frequency subband LH2, the high and low frequency subband HL2, and the highest frequency subband HH2 divided into the bands is obtained.
[0043]
Thereby, the wavelet transform unit 10 sends the wavelet transform coefficients D2 of the first level low and high frequency sub-band LH1, the high and low frequency sub-band HL1, and the highest frequency sub-band HH1 to the quantization unit 11 sequentially. On the other hand, the wavelet transform coefficient D2 of the second level lowest band subband LL2, low high band subband LH2, high low band subband HL2, and highest band subband HH2 is obtained and sent to the quantization unit 11. Thereafter, this series of processing is continued until all the wavelet transform coefficients D2 from the image SG for one frame to the designated second level are obtained.
[0044]
In this way, the wavelet transform unit 10 uses a small-capacity line buffer without using a large-capacity memory corresponding to the image SG for one frame, and uses a predetermined amount of data (or wavelet transform coefficients) in the line buffer. Each time D2) is accumulated, the wavelet transform can be executed sequentially and efficiently.
[0045]
Incidentally, as shown in FIGS. 8A and 8B, the wavelet transform unit 10 includes, for example, the lowest frequency subbands LL3 and LL4 up to the third level and the fourth level, and the low and high frequency subbands LH3 and LH4. And the lowest subband at a level that is one level lower than the desired level when the wavelet transform coefficient D2 of the high and low band subbands HL3 and HL4 and the highest band subbands HH3 and HH4 is specified. On the other hand, if the filtering process according to the filtering process as described above with reference to FIGS. 6A and 6B is executed, the wavelet transform coefficient D2 of the subband up to the desired level can be obtained.
[0046]
As shown in FIG. 9, the quantization unit 11 quantizes the wavelet transform coefficients D2 sequentially given from the wavelet transform unit 10 for each line of each subband, and encodes the obtained quantized coefficients D3. To send.
[0047]
As shown in FIGS. 10A and 10B, the encoding unit 12 has, for example, 64 quantization coefficients D3 for each subband given from the quantization unit 11 along the vertical direction indicated by the arrow a. When the number of samples h1 is reached, a code block consisting of the same number of samples h1 and h2 (that is, h1 and h2 are both 64 samples) in the vertical direction and in the horizontal direction orthogonal to the quantization coefficient D3 for each subband. Cut out and encode each cut out code block to generate arithmetic code data D4.
[0048]
10A and 10B show subbands up to the second level. As described above with reference to FIGS. 7A and 7B, the first level subbands and the second level subbands are shown in FIG. Since there is a time difference until the wavelet transform coefficient D2 with the level subband is obtained, the encoding unit 12 first determines the quantization coefficient of the first level subband that reaches the predetermined number of samples h1 along the vertical direction. When the quantization coefficient D3 of the second level subband reaches a predetermined number of samples h1 (64 samples) along the vertical direction, the first level subband is encoded. In addition to the quantization coefficient D3, the second-level subband quantization coefficient D3 is also encoded in units of code blocks.
[0049]
In this manner, the encoding unit 12 encodes all the subband quantization coefficients D3 obtained from the image for one frame in units of code blocks.
[0050]
Actually, as shown in FIG. 11 (A), the quantization coefficient D3 in units of code blocks has a maximum absolute value of 13 (for example, “1101” in binary representation) for each sample in the code block. Each has a coefficient value.
[0051]
Therefore, as illustrated in FIGS. 11B and 11C, the encoding unit 12 performs the encoding based on the quantization coefficient D3 in units of code blocks given from the quantization unit 11 when performing encoding. The absolute value of the quantization coefficient D3 is sequentially sliced at each bit from the least significant bit (LSB) to the most significant bit (MSB: Most Significant Bit), and “1” or “ An absolute value bit plane having a coefficient value of “0” (hereinafter referred to as an absolute value bit plane) is generated (in this case, four types of absolute value bit planes are generated), and the sign of each coefficient value ( ±) bit planes (hereinafter referred to as sign bit planes) are generated.
[0052]
Incidentally, in FIGS. 11A to 11C, for the sake of convenience, the size of the absolute value bit plane and the sign bit plane are represented as vertical and horizontal 4 bits, respectively. The size of each is 64 bits corresponding to 64 samples in the vertical and horizontal directions of the code block.
[0053]
Then, as shown in FIG. 12, the encoding unit 12 has, for example, a 4-bit height (vertical) and a 64-bit width (horizontal) for each block with respect to the absolute value bit plane. The stripe ST is divided into a plurality of stripes ST, and the coefficient values are sequentially scanned from the top to the bottom along the direction indicated by the solid arrow b and the dotted arrow c (solid arrow b). All the coefficient values in each stripe ST are scanned so as to shift from right to right (dotted arrow c), and the coefficient values are encoded.
[0054]
By the way, in entropy coding called EBCOT used in the coding unit 12, as a coding method for coefficient values in the absolute value bit plane, a significance pass, a refinement pass, and a cleanup pass are used. Three types of encoding pass called (Cleanup Pass) are defined.
[0055]
Also, in such entropy coding, when a significance pass, a refinement pass, and a cleanup pass coding pass are used, each of the coefficient values in each block of the absolute value bit plane is valid (significant) or A data table (hereinafter referred to as a state variable table) representing an invalid (non-significant) encoding state variable is used.
[0056]
On the other hand, the encoding unit 12 performs ZC (ZeroCoding), RLC (Run-Length Coding) while measuring statistics of arithmetic coding for each code block unit by MQ coding as arithmetic coding executed in the coding pass. ), SC (Sign Coding) and MR (Magnitude Refinement) are appropriately selected and executed. As a result, in the JPEG-2000 system in which arithmetic coding is performed within the coding pass of such entropy coding, there are a total of 19 types of contexts in all coding passes.
[0057]
Accordingly, as shown in FIG. 13, when the quantization coefficient D3 in units of code blocks has an absolute value of n-bit coefficient values from the least significant bit to the most significant bit, the encoding unit 12 has the most significant bit (n -1 bit) absolute value bit plane is encoded only by a cleanup pass while scanning coefficient values as described above with reference to FIG. 12, and each absolute value from the next n-2 to the least significant bit (0 bit) As described above with reference to FIG. 12, for each bit plane, three types of encoding processes are sequentially performed independently in the order of the significance pass, the refinement pass, and the cleanup pass for each absolute value bit plane while scanning the coefficient value. Execute.
[0058]
At this time, the encoding unit 12 stores the state variable table in the internal memory in advance, and when the encoding process is started with respect to the quantization coefficient D3 of one code block unit, the state variable table is stored from the memory. And all state variables are set as initial values, for example, “0” representing invalidity.
[0059]
Then, when one of the coefficient values is encoded, the encoding unit 12 changes the corresponding state variable on the state variable table to, for example, “1” indicating validity, and in this way, quantization of one code block unit Until the encoding process for the coefficient D3 is completed, the state variables that have become valid are not changed as they are, but only the state variables corresponding to the newly encoded coefficient values are sequentially changed and used.
[0060]
Incidentally, since the state variables in the state variable table are sequentially changed from invalid to valid each time the coefficient values are encoded in this way, it is determined whether or not the information on the effective digits (that is, the coefficient values) has already been encoded. It can be said that it represents a flag.
[0061]
Actually, when the absolute value bit plane is encoded by a significance path, the encoding unit 12 scans a coefficient value whose state variable is invalid, and among the coefficient values in the vicinity of 8 surrounding the coefficient value, If the state variable of at least one coefficient value is valid, the scanned coefficient value (that is, the state variable is invalid) is arithmetically encoded, and the arithmetically encoded coefficient value is “1”. Sometimes it is arithmetically encoded whether the corresponding code in the coded bitplane is “+” or “−”, thus signifying a single significant bitplane Encode with
[0062]
In addition, when the encoding unit 12 encodes the absolute value bit plane with the refinement pass, the encoding unit 12 has encoded with the previous significance path among the coefficient values for which the state variable in the absolute value bit plane is valid. A coefficient value that does not exist is arithmetically encoded, and in this way, the entire absolute value bit plane is encoded in the refinement pass.
[0063]
Furthermore, when the absolute value bit plane is encoded by the cleanup path, the encoding unit 12 does not encode the coefficient value whose state variable in the absolute value bit plane is invalid by the previous significance path. The coefficient value is arithmetically encoded, and when the arithmetically encoded coefficient value is “1”, it is continued whether the corresponding code of the encoded bit plane is “+” or “−”. Arithmetic encoding is performed, and in this way, the entire absolute value bit plane is encoded by a cleanup pass.
[0064]
However, when the encoding unit 12 encodes the absolute value bit plane of the most significant bit (n−1 bits) by the cleanup pass, all the state variables in the state variable table are initialized and become invalid. Therefore, the coefficient value that is “1” among the coefficient values in the absolute value bit plane is arithmetically encoded, and the consecutive number of “0” is detected for the coefficient value of “0”. For example, RLC is executed by MQ coding.
[0065]
Here, for the arithmetic code extraction unit 14, the arithmetic code data D5 to be scrambled can be specified alone. For example, as shown in FIGS. Sub-bands such as level low high band sub-band LH1, high low band sub-band HL1 and highest band sub-band HH1, second level low high band sub-band LH2, high low band sub-band HL2 and highest band sub-band HH2 It can also be specified in units.
[0066]
Therefore, when the subband to be scrambled is designated, the arithmetic code extraction unit 14 designates the designated first level low and high frequency subbands LH1, HL1 and HL1, and the highest frequency subband HH1, Information specifying that scramble processing is to be performed on all code block unit arithmetic code data D5 belonging to the second level low and high frequency subband LH2, high and low frequency subband HL2 and highest frequency subband HH2 is added. .
[0067]
For the arithmetic code extraction unit 14, all subbands and levels can be designated as subbands to be scrambled for one image, or a plurality of levels of subbands can be designated simultaneously. It is made like that.
[0068]
Incidentally, in the subbands up to a predetermined level, most of the energy constituting the image is concentrated in the low-frequency component, and as described above with reference to FIGS. Designates to scramble only subband LH1, high and low band subband HL1 and highest band subband HH1, and second level low and high band subband LH2, high and low band subband HL2, and highest band subband HH2. Instead, if it is specified that only the lowest subbands LL1 and LL2 are to be scrambled, the scramble strength can be increased accordingly.
[0069]
Then, the scramble processing unit 16 fixes the arithmetic code data D5 to the arithmetic code data D5 designated to be scrambled based on a common key block encryption method called a Blowfish method. The data is divided into long data strings and scrambled using the common key data for each data string.
[0070]
At this time, since the code amount is controlled by the rate control unit 13 so that the arithmetic code data D5 in units of code blocks has a constant data length, the scramble processing unit 16 uses the arithmetic code data D5 for scramble processing. The predetermined data string can be easily divided.
[0071]
In addition, the scramble processing unit 16 divides the arithmetic code data D5 into a fixed-length data string by a block encryption method and performs scramble processing using the common key data for each data string, thereby performing data after the scramble process. An increase in the amount can be almost certainly prevented.
[0072]
If the arithmetic code data D5 to be scrambled is arbitrarily designated, it is necessary to notify the image receiving device 3 of the designated arithmetic code data D5.
[0073]
Therefore, as shown in FIG. 15, the header generation unit 15 uses a 16-bit parameter called Rsiz defined as Table A-10 in the JPEG-200 system as a part of the packet header, for example, in the Rsiz. The arithmetic code data D5 designated to be scrambled is notified using the empty bits of the 16-bit information storage area JK1 that is unused except for all existing “0”.
[0074]
Here, when the arithmetic code data D5 is scrambled, the header generation unit 15 assigns “1” to the first bit in the empty bits of Rsiz, and conversely, scrambles the arithmetic code data D5. Is not applied, “0” is assigned to the first bit in the empty bits of Rsiz.
[0075]
Further, when “1” is assigned to the first bit in the free bit of Rsiz, the header generation unit 15 assigns wavelet transform level information to the subsequent 3 bits from the second bit to the fourth bit. Incidentally, since 3 bits are used for the wavelet transform level information, the 0 to 7 levels can be designated by the 3 bits.
[0076]
Further, the header generation unit 15 assigns a level to be scrambled to the fifth and subsequent bits with respect to the empty bits of Rsiz. Actually, for example, if the 5 bits from the 5th bit to the 9th bit are sequentially associated with the first level to the 5th level and “10010” is assigned to the 5 bits, the 1st level and the 4th level It is possible to notify that the second level, the third level, and the fifth level are not scrambled.
[0077]
In this way, the header generation unit 15 can appropriately notify the image receiving device 3 of information on the presence / absence of the scramble process as header data.
[0078]
Thereby, in the image receiving apparatus 3, the descrambling processing unit 23 can appropriately perform the descrambling process on the scrambled data D6 based on the information on the scramble process shown in the header data D7. As shown in FIG. 5, the image SGA can be visually recognized accurately.
[0079]
By the way, the image transmission apparatus 2 does not scramble the header data D7, but only scrambles the arithmetic code data D5.
[0080]
Therefore, if the image receiving device is configured similarly except for the image receiving device 3 and the descrambling processing unit 23 described above with reference to FIG. 3, when the packet stream D8 transmitted from the image transmitting device 2 is received, the packet Since encoding information necessary for decoding is stored in the header data D7 obtained based on the stream D8, together with arithmetic code data D5 (data not subjected to scramble processing at the time of transmission) based on the encoding information. The scrambled data D6 can be decoded as it is.
[0081]
In such an image receiving device, when image data is generated so as to decode the arithmetic code data D5 and the scrambled data D6, the scrambled data D6 cannot be properly decoded. As shown in FIGS. 17 to 19, an outline of an image pattern or the like can be visually recognized to some extent.
[0082]
Incidentally, as shown in FIG. 17, an image SGB designated to scramble only the first level and an image SGC designated to scramble only the fourth level as shown in FIG. As compared with the above, it can be seen that the image quality degradation is smaller when the scramble processing is applied to a small level.
[0083]
Further, if it is specified that the scramble process is applied to different levels at the same time as the image SGD specified to be scrambled at the fifth level and the sixth level shown in FIG. 19, it is scrambled to only one level. It can be seen that the strength of the scramble process can be selected more finely than the case where it is designated to perform the process.
[0084]
In this way, in the image providing system 1, even when the outline of the image is shown to some extent to a user who does not have the common key data, the image can be provided with fine control of the degree. .
[0085]
In the above configuration, in the image providing system 1, the image transmitting device 2 performs wavelet transform on the image data D1 of the image to be provided, and quantizes the obtained wavelet transform coefficient D2 to generate a quantized coefficient D3. Arithmetic code data D5 is generated such that the generated quantized coefficient D3 is sequentially encoded in the coding pass in units of code blocks.
[0086]
Then, the image transmitting apparatus 2 performs scrambling processing according to the designation on the arithmetic code data D5 in units of code blocks generated as described above, and the obtained scrambled data D6 is encoded to indicate the content of the encoding processing. The packet data is generated by adding the header data D7 storing the information, and the packet data is transmitted to the image receiving device 3.
[0087]
On the other hand, when the image receiving device 3 receives the packet data transmitted from the image transmitting device 2, the packet data is separated into header data D7 and scrambled data D6 and subjected to descrambling processing on the scrambled data. Based on the encoded information stored in the header data D7, the original arithmetic code data D5 is arithmetically decoded in the decoding pass to generate the quantized coefficient D11, and the quantized coefficient D11 is converted to the inverse quantum. Then, the wavelet transform coefficient D12 obtained is subjected to inverse wavelet transform to generate image data D13.
[0088]
Therefore, in this image providing system 1, since the image transmission device 2 encodes the image data D1 and then scrambles the obtained arithmetic code data D5, the amount of data after encoding the quantized coefficients is reduced. A significant increase can be prevented.
[0089]
In addition, in this image providing system 1, since the image transmission device 2 performs the scrambling process by dividing the arithmetic code data D5 into a predetermined data length by the block encryption method, the data amount of the arithmetic code data D5 is small. An increase after the scramble process can also be prevented.
[0090]
In the image providing system 1, even in the image receiving device 3 that receives the packet data transmitted from the image transmitting device 2, the descrambling process is reversible with the scramble process on the transmitting side, and the decoding is transmitted. Since it is reversible with the encoding on the side, as in the case of the image transmission apparatus 2, it is possible to prevent the data compression rate from being lowered until the received packet data is decoded through the descrambling process. Can do.
[0091]
According to the above configuration, in the image transmitting apparatus 2, the image data D1 is quantized after wavelet transform, and the obtained quantized coefficient D3 is arithmetically encoded in the encoding pass in units of code blocks to obtain arithmetic code data D5. , Scramble processing is performed on the generated code block unit arithmetic code data D5, header data D7 is added and transmitted to the image receiving device 3, and the image transmitting device 3 receives the received packet data. Is divided into header data D7 and scrambled data D6, descramble processing is performed on the scrambled data, and the obtained arithmetic code data D5 is obtained in the decoding pass based on the coding information stored in the header data D7. After performing arithmetic decoding with, inverse quantization of the obtained quantized coefficient D11, and inverse wavelet transform By generating the image data D13, the image transmission apparatus 2 prevents the amount of data from increasing after the quantization coefficient D3 is encoded and before being transmitted as packet data after being scrambled. In accordance with this, it is also possible to prevent an increase in the amount of data between reception of packet data and decoding by the image reception device 3 having a configuration corresponding to the image transmission device 2. Thus, although the image data is scrambled and transmitted, an image providing system that can prevent the data compression rate from decreasing can be realized.
[0092]
In the above-described embodiment, the scramble process is performed on a part or the whole of the image by arbitrarily specifying the individual arithmetic code data D5 in units of code blocks to be scrambled and the level and subband. However, the present invention is not limited to this, and as shown in FIGS. 20A and 20B, the top and bottom of each subband corresponds to the top and bottom of the image SGE. A part to be scrambled with respect to the image SGE may be specified, and the arithmetic code data D5 that is actually subjected to the scramble process corresponding to the specified part may be designated.
[0093]
In addition to this, the depth of the arithmetic code data D5, that is, the arithmetic code data D5 may be divided by a predetermined data length and specified to be subjected to the scramble processing. In this case, the arithmetic code data D5 may be specified. The scramble strength can be adjusted according to the data length for delimiting the data D5.
[0094]
In the above-described embodiment, the case has been described in which packet data is generated by adding arithmetic code data D5 in code block units or scrambled data D6 in code block units to header data D7. However, the present invention is not limited to this, and a hierarchical layer may be generated from a plurality of arithmetic code data D5, and packet data may be generated for each layer.
[0095]
Incidentally, in order to generate such packet data, for example, as shown in FIG. 21, before encoding the quantization coefficient D3 of the code block 0 to the code block 3 in the encoding unit 12, for example, the code block 0 to the code block For each block 3, each absolute value bit plane is associated with, for example, packet data 0 to packet data N so as to be hierarchically distributed, and as shown in FIG. In the absolute value bit plane associated with each code block 0 to code block 3 so as to be hierarchically distributed to packet data 0 to packet data N at the time when the quantization coefficient D3 of the code block 3 is encoded. Encoding results (that is, arithmetic codes) are arranged between hierarchical layers 0 to It is N, may be generated packet data to each of these layers 0 through Layer N.
[0096]
In FIG. 21, C indicates a cleanup path, S indicates a significance path, M indicates a refinement path, and 0 indicates that no path exists. The number of layers is set in advance so that the layer 0 to the layer N are associated with the packet data 0 to the packet data N in advance. In FIG. 22, each of layer 0 to layer N corresponds to packet data 0 to packet data N, and a block indicated by hatching for each of layer 0 to layer N represents the code amount of the arithmetic code by its height. In addition, Empty represents that there is no arithmetic code.
[0097]
Then, as shown in FIG. 23, a packet stream D20 is generated by adding header data D7 to layered arithmetic codes (Body), and a layer coefficient is set to λ from 0 (most significant) to 2,. In addition to Λ (lowest order), the resolution coefficient is 1 and is expressed from 0 (lowest resolution) to 1,..., L, (highest resolution), and the color component index is expressed as 1, 2,. For example, when there is one color component index C, packet data belonging to the same layer (the same value of λ) is collected in order from the corresponding spatial resolution from the lowest to the higher, and the collected packets SNR (Signal to Noise Ratio) progressive can be realized by arranging the data in order from the lowest layer coefficient λ to the higher one (λ from 1 to Λ).
[0098]
Further, as shown in FIG. 24, when the packet stream D21 is generated by adding the header data D7 to the layered arithmetic code (Body) and the color component index C is one, the same spatial resolution is obtained. Corresponding packet data are arranged in order from the lowest layer coefficient λ (λ is from 1 to Λ), and the packet data in which these are arranged is arranged from the lowest spatial resolution to the higher (l from 0 to L) If they are arranged in order, resolution progressive can be realized.
[0099]
When progressive is realized in this way, as shown in FIG. 25, the header generation unit 15 of the image transmission apparatus 2 is, for example, an 8-bit parameter called “Scode” defined as Table A-10 in the JPEG-2000 system. Thus, if the information storage area JK2 in which the upper 4 bits of the 8 bits are vacant bits (Reserved) is used, the layer number and the like can be notified to the image receiving apparatus.
[0100]
Further, in a layered packet stream, for example, a scramble process may be performed only on an arithmetic code in packet data existing in a specific layer, such as one having all resolutions with a layer coefficient λ of 0. That is, in SNR progressive, the higher the layer, the greater the effect on the image quality. Therefore, if the scrambling process is performed on the arithmetic code in the packet data existing in the upper layer, the scrambling process is stronger than that in the lower layer. Can be applied.
[0101]
Furthermore, instead of designating only one layer to be scrambled, for example, a specific number of layers counted from the highest layer or a specific number of layers counted from the lowest layer You can also.
[0102]
Further, in the above-described embodiment, the case where the quantization coefficient D3 is encoded in units of code blocks each having 64 samples in length and width has been described, but the present invention is not limited to this, and in EBCOT, code blocks Since the number of vertical and horizontal samples is specified as a power of 2 from 4 to 256, code blocks of various sizes such as code blocks of 32 samples each in length and width and 128 samples in length and 32 samples in width The quantization coefficient D3 may be encoded, or the code block size may be arbitrarily changed.
[0103]
Further, in the above-described embodiment, the case where the present invention is applied to the image transmitting device 2 and the image receiving device 3 of the image providing system 1 described above with reference to FIGS. 1 to 25 has been described. However, the present invention is not limited to this, and any device that encodes and / or decodes an image data recording / reproducing apparatus or video camera having both configurations of encoding and decoding images, and receiving images are provided. The present invention can be widely applied to image encoding devices and image decoding devices having various configurations such as portable telephones, personal computers, and PDAs (Personal Digital Assistance).
[0104]
Furthermore, in the above-described embodiment, the case where the wavelet transform unit 10 is applied as filter coefficient generation means for generating filter coefficients by filtering image data using a low-pass filter and a high-pass filter will be described. However, the present invention is not limited to this, and filter coefficient generation means having various other configurations can be widely applied as long as the filter coefficient can be generated by filtering the image data using a low-pass filter and a high-pass filter. be able to.
[0105]
Furthermore, in the above-described embodiment, a case has been described in which the encoding unit 12 is applied as an encoding unit that generates arithmetic code data by encoding quantization coefficients using a predetermined encoding method. However, the present invention is not limited to this, and it is possible to widely apply encoding means having other various configurations as long as it can generate the arithmetic code data by encoding the quantization coefficient by a predetermined encoding method. Can do.
[0106]
Furthermore, in the above-described embodiment, based on the encoding information stored in the header data, the arithmetic code data restored by the descrambling processing means is decoded by a predetermined decoding method to be quantized. Although the case where the decoding unit 25 is applied as the decoding means for generating the encoding coefficient has been described, the present invention is not limited to this, and the descrambling is performed based on the encoding information stored in the header data. If the arithmetic code data restored by the processing means can be decoded by a predetermined decoding method to generate a quantized coefficient, decoding means having various other configurations can be widely applied.
[0107]
Furthermore, in the above-described embodiment, when the wavelet inverse transform unit 27 is applied as image data generation means for generating image data by filtering the filter coefficients using a low-pass filter and a high-pass filter. However, the present invention is not limited to this, and image data generating means having various configurations can be used as long as filter data can be filtered using a low-pass filter and a high-pass filter to generate image data. Can be widely applied.
[0108]
【The invention's effect】
As described above, according to the present invention, wavelet transform for recursively filtering low frequency components is performed on image data to generate wavelet coefficients in subband units as filter coefficients, and the generated wavelet coefficients are quantized. To generate a quantized coefficient, encode the quantized coefficient with a predetermined encoding method to generate arithmetic code data, and then scramble the specified part of the arithmetic code data in an arbitrary subband unit And generating predetermined coding information relating to the coding process based on the arithmetic code data, and adding the scrambled arithmetic code data to the header data generated by storing the generated coding information. Packet data is generated by encoding the quantization coefficient, and then the encoding process is performed. As a result of performing scramble processing on the specified parts of arbitrary subband units of the arithmetic code data obtained in this way, image quality degradation can be reduced for images based on image data, and quantization coefficients are encoded Sometimes it is possible to prevent the amount of data from increasing, thus preventing a reduction in the compression rate of the image data.
[0109]
According to the present invention, the wavelet transform for recursively filtering the low frequency component is applied to the image data, and the subband unit wavelet coefficients generated as filter coefficients are quantized and then subjected to predetermined encoding. Arithmetic code data obtained by performing scramble processing on a specified part in an arbitrary subband unit is added to header data storing encoding information when arithmetic code data is generated by the encoding method. The header data and the scrambled arithmetic code data are separated from the generated packet data, the scrambled arithmetic code data is descrambled to return to the original arithmetic code data, and the header Based on the encoding information stored in the data, the original arithmetic code data is decoded to the predetermined After generating the quantized coefficient by decoding with the equation, and generating the filter coefficient by dequantizing the generated quantized coefficient, the filter coefficient is filtered using the low pass filter and the high pass filter By generating image data, if this configuration is used, the image data encoding side will have a reversible configuration, and after encoding the quantized coefficients, the code As the scramble process is applied to the specified part of the arbitrary subband unit of the arithmetic code data obtained by the conversion process, image quality degradation can be reduced for the image based on the image data, and the quantization coefficient is encoded. It is possible to prevent the amount of data from increasing when the image data is converted, and thus to prevent a reduction in the compression rate of the image data.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of a configuration of an image providing system according to the present invention.
FIG. 2 is a block diagram illustrating a circuit configuration of the image transmission apparatus.
FIG. 3 is a block diagram illustrating a circuit configuration of the image receiving apparatus.
FIG. 4 is a schematic diagram for explaining wavelet transform;
FIG. 5 is a schematic diagram showing subbands by first-level wavelet transform.
FIG. 6 is a schematic diagram showing subbands up to a second level.
FIG. 7 is a schematic diagram illustrating subbands obtained by wavelet transform up to a second level.
FIG. 8 is a schematic diagram showing subbands up to third and fourth levels.
FIG. 9 is a schematic diagram for explaining quantization in a quantizer;
FIG. 10 is a schematic diagram for describing encoding in an encoding unit.
FIG. 11 is a schematic diagram for explaining generation of a bit plane in an encoding unit.
FIG. 12 is a schematic diagram for explaining scanning of an absolute value bit plane in an encoding unit;
FIG. 13 is a schematic diagram for describing encoding of each absolute value bit plane for one code block;
FIG. 14 is a schematic diagram for explaining the designation of arithmetic code data to be scrambled.
FIG. 15 is a schematic diagram showing a configuration of Rsic used as part of packet data.
FIG. 16 is a schematic diagram for explaining an image obtained by performing descrambling processing;
FIG. 17 is a schematic diagram for explaining an image in which a first level is scrambled.
FIG. 18 is a schematic diagram for explaining an image in which a fourth level is scrambled.
FIG. 19 is a schematic diagram for explaining an image obtained by performing scrambling on the fifth level and the sixth level.
FIG. 20 is a schematic diagram for explanation when a scramble process is performed on an arbitrary part of an image according to another embodiment;
FIG. 21 is a schematic diagram for explanation when an absolute value bit plane in each code block is associated with packet data in advance.
FIG. 22 is a schematic diagram for explaining packet data layering according to another embodiment;
FIG. 23 is a schematic diagram for explanation when realizing SNR progressive by layers;
FIG. 24 is a schematic diagram for explaining the case of realizing resolution progressive by layers.
FIG. 25 is a schematic diagram for explaining a Scod used as a part of packet data.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Image provision system, 2 ... Image transmission apparatus, 3 ... Image reception apparatus, 10 ... Wavelet transformation part, 11 ... Quantization part, 12 ... Encoding part, 13 ... Rate control part, 14 ...... Arithmetic code extraction unit, 15 ... Header generation unit, 16 ... Scramble processing unit, 17 ... Packet generation unit, 21 ... Packet decoding unit, 22 ... Header decoding unit, 23 ... Descramble processing unit, 24 …… Arithmetic code decoding unit, 25 …… Decoding unit, 26 …… Dequantization unit, 27 …… Wavelet inverse transformation unit, HH1, HH2, HH3, HH4 …… Highest band subband, HL1, HL2, HL3 , HL4... High and low frequency subbands, LH1, LH2, LH3, LH4... Low and high frequency subbands, LL1, LL2, LL3, and LL4... ...... wavelet transform coefficients, D3, D11 ...... quantized coefficients, D4, D5 ...... arithmetic code data, D6 ...... scrambled data, D7 ...... header data, D8 ...... packet stream.

Claims (6)

画像データに対して低域成分を再帰的にフィルタリングするウェーブレット変換を施すことによりフィルタ係数としてサブバンド単位のウェーブレット係数を生成するウェーブレット係数生成手段と、
上記ウェーブレット係数を量子化して量子化係数を生成する量子化手段と、
上記量子化係数を所定の符号化方式で符号化処理して算術符号データを生成する符号化手段と、
上記算術符号データの任意のサブバンド単位の特定した部位にスクランブル処理を施すスクランブル処理手段と、
上記算術符号データに基づいて上記符号化処理に関する所定の符号化情報を生成し、当該生成した符号化情報を格納したヘッダデータを生成するヘッダデータ生成手段と、
上記ヘッダデータに上記スクランブル処理を施した上記算術符号データを付加してパケットデータを生成するパケットデータ生成手段と
を具えることを特徴とする画像符号化装置。
A wavelet coefficient generating means for generating a wavelet coefficient of the sub-band unit as the filter coefficients by performing wavelet transform to filter recursively low-frequency components for the image data,
Quantization means for quantizing the wavelet coefficients to generate quantization coefficients;
Encoding means for generating arithmetic code data by encoding the quantized coefficient according to a predetermined encoding method;
A scramble processing means for performing a scramble process on a specified part of an arbitrary subband unit of the arithmetic code data;
Header data generating means for generating predetermined encoding information related to the encoding process based on the arithmetic code data, and generating header data storing the generated encoding information;
An image encoding apparatus comprising: packet data generation means for generating packet data by adding the arithmetic code data subjected to the scramble processing to the header data.
上記パケットデータから、上記ヘッダデータと、上記スクランブル処理された上記算術符号データとを分離する分離手段と、
上記スクランブル処理が施された上記算術符号データにデスクランブル処理を施して元の上記算術符号データに戻すデスクランブル処理手段と、
上記ヘッダデータに格納されている上記符号化情報に基づいて、上記元に戻された上記算術符号データを所定の復号化方式で復号化処理して上記量子化係数を生成する復号化手段と、
上記量子化係数を逆量子化して上記フィルタ係数を生成する逆量子化手段と、
上記フィルタ係数を低域フィルタ及び高域フィルタを用いてフィルタリング処理して上記画像データを生成する画像データ生成手段と
を具えることを特徴とする請求項1に記載の画像符号化装置。
Separation means for separating the header data and the scrambled arithmetic code data from the packet data;
Descrambling processing means for performing descrambling on the arithmetic code data subjected to the scramble processing and returning the arithmetic code data to the original arithmetic code data;
Based on the coding information stored in the header data, and decoding means for generating the quantized coefficients of the arithmetic code data returned to the original processing decoded in a predetermined decoding method,
Inverse quantization means for inversely quantizing the quantization coefficient to generate the filter coefficient;
The image coding apparatus according to claim 1, further comprising: an image data generation unit configured to filter the filter coefficient using a low- pass filter and a high-pass filter to generate the image data.
画像データに対して低域成分を再帰的にフィルタリングするウェーブレット変換を施すことによりフィルタ係数としてサブバンド単位のウェーブレット係数を生成するウェーブレット係数生成ステップと、
上記ウェーブレット係数を量子化して量子化係数を生成する量子化ステップと、
上記量子化係数を所定の符号化方式で符号化処理して算術符号データを生成する符号化ステップと、
上記算術符号データの任意のサブバンド単位の特定した部位にスクランブル処理を施すスクランブル処理ステップと、
上記算術符号データに基づいて上記符号化処理に関する所定の符号化情報を生成し、当該生成した符号化情報を格納したヘッダデータを生成するヘッダデータ生成ステップと、
上記ヘッダデータに上記スクランブル処理を施した上記算術符号データを付加してパケットデータを生成するパケットデータ生成ステップと
を具えることを特徴とする画像符号化方法。
A wavelet coefficient generation step of generating a wavelet coefficient of the sub-band unit as the filter coefficients by performing recursive filtering to wavelet transform low-frequency components for the image data,
A quantization step for quantizing the wavelet coefficient to generate a quantization coefficient;
An encoding step for encoding the quantized coefficient by a predetermined encoding method to generate arithmetic code data;
A scramble processing step of performing a scramble process on a specified part of an arbitrary subband unit of the arithmetic code data;
A header data generation step of generating predetermined encoding information related to the encoding process based on the arithmetic code data and generating header data storing the generated encoding information;
And a packet data generation step of generating packet data by adding the arithmetic code data subjected to the scramble processing to the header data.
上記パケットデータから、上記ヘッダデータと、上記スクランブル処理された上記算術符号データとを分離する分離ステップと、
上記スクランブル処理が施された上記算術符号データにデスクランブル処理を施して元の上記算術符号データに戻すデスクランブル処理ステップと、
上記ヘッダデータに格納されている上記符号化情報に基づいて、上記元に戻された上記算術符号データを所定の復号化方式で復号化処理して上記量子化係数を生成する復号化ステップと、
上記量子化係数を逆量子化して上記フィルタ係数を生成する逆量子化ステップと、
上記フィルタ係数を低域フィルタ及び高域フィルタを用いてフィルタリング処理して上記画像データを生成する画像データ生成ステップと
を具えることを特徴とする請求項に記載の画像符号化方法。
A separation step of separating the header data and the scrambled arithmetic code data from the packet data;
A descrambling process step of performing descrambling on the arithmetic code data subjected to the scrambling process and returning the arithmetic code data to the original arithmetic code data;
Based on the coding information stored in the header data, a decoding step of generating the quantized coefficients of the arithmetic code data returned to the original processing decoded in a predetermined decoding method,
An inverse quantization step of dequantizing the quantization coefficient to generate the filter coefficient;
The image encoding method according to claim 3 , further comprising: an image data generation step of generating the image data by filtering the filter coefficient using a low- pass filter and a high-pass filter.
画像データに対して低域成分を再帰的にフィルタリングするウェーブレット変換を施してフィルタ係数として生成されたサブバンド単位のウェーブレット係数が量子化された後、所定の符号化方式で符号化処理されて算術符号データが生成されたときの符号化情報が格納されたヘッダデータに、任意のサブバンド単位の特定した部位にスクランブル処理が施された上記算術符号データが付加されて生成されたパケットデータから、上記ヘッダデータと、上記スクランブル処理された上記算術符号データとを分離する分離手段と、
上記スクランブル処理が施された上記算術符号データにデスクランブル処理を施して元の上記算術符号データに戻すデスクランブル処理手段と、
上記ヘッダデータに格納されている上記符号化情報に基づいて、上記デスクランブル処理手段で元に戻された上記算術符号データを所定の復号化方式で復号化処理して量子化係数を生成する復号化手段と、
上記量子化係数を逆量子化して上記フィルタ係数を生成する逆量子化手段と、
上記フィルタ係数を低域フィルタ及び高域フィルタを用いてフィルタリング処理して上記画像データを生成する画像データ生成手段と
を具えることを特徴とする画像復号化装置。
The wavelet transform that recursively filters the low-frequency components of the image data is subjected to quantization, and the wavelet coefficients in subband units generated as filter coefficients are quantized and then encoded using a predetermined encoding method to perform arithmetic From the packet data generated by adding the above arithmetic code data subjected to the scramble processing to the specified portion of any subband unit to the header data storing the encoding information when the code data is generated, Separation means for separating the header data and the scrambled arithmetic code data;
Descrambling processing means for performing descrambling on the arithmetic code data subjected to the scramble processing and returning the arithmetic code data to the original arithmetic code data;
Decoding that generates a quantized coefficient by decoding the arithmetic code data restored by the descrambling processing means using a predetermined decoding method based on the encoding information stored in the header data And
Inverse quantization means for inversely quantizing the quantization coefficient to generate the filter coefficient;
An image decoding apparatus comprising: image data generating means for generating the image data by filtering the filter coefficient using a low- pass filter and a high-pass filter.
画像データに対して低域成分を再帰的にフィルタリングするウェーブレット変換を施してフィルタ係数として生成されたサブバンド単位のウェーブレット係数が量子化された後、所定の符号化方式で符号化処理されて算術符号データが生成されたときの符号化情報が格納されたヘッダデータに、任意のサブバンド単位の特定した部位にスクランブル処理が施された上記算術符号データが付加されて生成されたパケットデータから、上記ヘッダデータと、上記スクランブル処理された上記算術符号データとを分離する分離ステップと、
上記スクランブル処理が施された上記算術符号データにデスクランブル処理を施して元の上記算術符号データに戻すデスクランブル処理ステップと、
上記ヘッダデータに格納されている上記符号化情報に基づいて、上記元に戻された上記算術符号データを所定の復号化方式で復号化処理して量子化係数を生成する復号化ステップと、
上記量子化係数を逆量子化して上記フィルタ係数を生成する逆量子化ステップと、
上記フィルタ係数を低域フィルタ及び高域フィルタを用いてフィルタリング処理して上記画像データを生成する画像データ生成ステップと
を具えることを特徴とする画像復号化方法。
The wavelet transform that recursively filters the low-frequency components of the image data is subjected to quantization, and the wavelet coefficients in subband units generated as filter coefficients are quantized and then encoded using a predetermined encoding method to perform arithmetic From the packet data generated by adding the above arithmetic code data subjected to the scramble processing to the specified portion of any subband unit to the header data storing the encoding information when the code data is generated, A separation step of separating the header data and the scrambled arithmetic code data;
A descrambling process step of performing descrambling on the arithmetic code data subjected to the scrambling process and returning the arithmetic code data to the original arithmetic code data;
A decoding step of generating a quantized coefficient by decoding the arithmetic code data returned to the original by a predetermined decoding method based on the encoding information stored in the header data;
An inverse quantization step of dequantizing the quantization coefficient to generate the filter coefficient;
An image decoding method comprising: an image data generation step of generating the image data by filtering the filter coefficient using a low- pass filter and a high-pass filter.
JP2000322022A 2000-10-20 2000-10-20 Image coding apparatus and method thereof, and image decoding apparatus and method thereof Expired - Fee Related JP3704644B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000322022A JP3704644B2 (en) 2000-10-20 2000-10-20 Image coding apparatus and method thereof, and image decoding apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000322022A JP3704644B2 (en) 2000-10-20 2000-10-20 Image coding apparatus and method thereof, and image decoding apparatus and method thereof

Publications (2)

Publication Number Publication Date
JP2002135594A JP2002135594A (en) 2002-05-10
JP3704644B2 true JP3704644B2 (en) 2005-10-12

Family

ID=18799975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000322022A Expired - Fee Related JP3704644B2 (en) 2000-10-20 2000-10-20 Image coding apparatus and method thereof, and image decoding apparatus and method thereof

Country Status (1)

Country Link
JP (1) JP3704644B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004192140A (en) * 2002-12-09 2004-07-08 Sony Corp Data communication system, data transmitting device, data receiving device and method, and computer program
JP2004236225A (en) 2003-01-31 2004-08-19 Ricoh Co Ltd Image processing apparatus, program, and storage medium
JP4932452B2 (en) * 2006-11-24 2012-05-16 三菱電機株式会社 Data conversion apparatus, data conversion method, and program
JP4254867B2 (en) * 2007-01-31 2009-04-15 ソニー株式会社 Information processing apparatus and method, program, and recording medium
JP2010279496A (en) * 2009-06-03 2010-12-16 Fujifilm Corp Data transfer system, transmitter, receiver, radiographic image transfer system and radiographic image diagnosis system
EP2532156A1 (en) * 2010-02-03 2012-12-12 Thomson Licensing Valid replacement data in encoded video

Also Published As

Publication number Publication date
JP2002135594A (en) 2002-05-10

Similar Documents

Publication Publication Date Title
Grosbois et al. Authentication and access control in the JPEG 2000 compressed domain
Marcellin et al. An overview of JPEG-2000
JP3743384B2 (en) Image encoding apparatus and method, and image decoding apparatus and method
US7200277B2 (en) Method for transcoding a JPEG2000 compressed image
Noda et al. Application of bit-plane decomposition steganography to JPEG2000 encoded images
JP4273996B2 (en) Image encoding apparatus and method, and image decoding apparatus and method
CA2340357C (en) Embedded quadtree wavelets in image compression
JP2004336254A (en) Device and method for encoding image
Li Image compression: The mathematics of JPEG 2000
JP2006304329A (en) Encoding method, decoding method, encoding device, and decoding device
Rehna et al. Wavelet based image coding schemes: A recent survey
Liu et al. An efficient embedded zerotree wavelet image codec based on intraband partitioning
Wheeler et al. Low-memory packetized SPIHT image compression
JP3704644B2 (en) Image coding apparatus and method thereof, and image decoding apparatus and method thereof
JP2004166254A (en) Image encoder and method, program and recording medium
JP3213561B2 (en) Image encoding device and image decoding device
Osborne et al. Multiple embedding using robust watermarks for wireless medical images
Suruliandi et al. Empirical evaluation of EZW and other encoding techniques in the wavelet-based image compression domain
Boliek et al. Decoding compression with reversible embedded wavelets (CREW) codestreams
Noda et al. Video steganography based on bit-plane decomposition of wavelet transformed video
Navas et al. Lossless watermarking in JPEG2000 for EPR data hiding
Li Image Compression-the Mechanics of the JPEG 2000
JP4372327B2 (en) Image encoding apparatus, image encoding method, decoding apparatus, and decoding method
KR101423466B1 (en) Method and apparatus for transforming bit-plane image, and method and apparatus for inverse-transforming bit-plane image
Noda et al. Application of bit-plane decomposition steganography to wavelet encoded images

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050510

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: 20050617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050713

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: 20090805

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100805

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees