JP4166530B2 - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP4166530B2 JP4166530B2 JP2002242549A JP2002242549A JP4166530B2 JP 4166530 B2 JP4166530 B2 JP 4166530B2 JP 2002242549 A JP2002242549 A JP 2002242549A JP 2002242549 A JP2002242549 A JP 2002242549A JP 4166530 B2 JP4166530 B2 JP 4166530B2
- Authority
- JP
- Japan
- Prior art keywords
- layer
- code
- data
- code data
- header
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【発明の属する技術分野】
本発明は、画像処理装置に係り、特に周波数領域の画像データを、複数の部分画像データに分割し、該部分画像データのビットプレーンにおける符号化パスごとに圧縮符号化し、所定数の符号化パスによりレイヤを構成し、該レイヤごとの符号データ量に基づいて再圧縮する画像処理装置に関する。
【0002】
【従来の技術】
近年、画像圧縮・伸張技術の国際基準としてJPEG2000が知られている。JPEG2000は、それ以前の画像圧縮・伸張技術の国際基準であったJPEGに比べて、圧縮率が高いこと、豊富な符号化機能を具備していること、動画データにも対応していること等を特徴としている。
【0003】
図1にJPEG2000の符号化手順の流れを示す。また、図1においては、説明に必要な構成を表し、説明に必要の無い構成を省略してある。以下の図面においても同じである。
【0004】
JPEG2000の符号化手順においては、画像データ1は、色変換部10、2次元離散ウェーブレット変換(DWT)部11、量子化器12、係数モデリング部13、MQ符号化器14、符号形成部15を経て、符号データ2が得られる。図2〜図8にこれらの処理を模式的に描いた図を示す。なお、係数モデリング部13、MQ符号化器14により、エントロピー符号化が行われる。
【0005】
まず、入力される画像データ1は、YCbCrと呼ばれる輝度成分(コンポーネント1)、色差成分(コンポーネント2及びコンポーネント3)に変換され、それぞれ離散ウェーブレット変換(DWT)部11に入力される。その後、各コンポーネントは最後の符号形成の段階で一つの符号にまとめられるまで、それぞれ独立して符号化の処理が行われる。
【0006】
図2は、水平方向M画素、垂直方向N画素の画像データに3レベルの2次元離散ウェーブレット変換を行った場合の一例を説明するための図である。
【0007】
水平方向M画素、垂直方向N画素の画像データは、レベル3の2次元離散ウェーブレット変換を行った結果、3LL、3HL、3LH、3HH、2HL、2LH、2HH、1HL、1LH、1HHの10個のサブバンドのウェーブレット係数データに変換される。このとき、各サブバンドの大きさは、3LL、3HL、3LH、3HHの4つが、M/8×N/8。2HL、2LH、2HHの3つがM/4×N/4。1HL、1LH、1HHの3つがM/2×N/2となる。
【0008】
また、処理する画像をタイルと呼ばれる複数の矩形ブロックに分けて処理を行うことも可能である。画像を複数のタイルに分割する場合は、後に続く符号化処理はこのタイルの単位での処理となる。
【0009】
図3は、画像データをm×nの大きさのタイルに分割し、レベル3の2次元離散ウェーブレット変換を行った場合の一例を説明するための図である。
【0010】
水平方向m、垂直方向nの1タイルの画像データは、レベル3の2次元離散ウェーブレット変換を行った結果、3LL、3HL、3LH、3HH、2HL、2LH、2HH、1HL、1LH、1HHの10個のサブバンドのウェーブレット係数データに変換される。このとき、各サブバンドの大きさは、3LL、3HL、3LH、3HHの4つが、m/8×n/8。2HL、2LH、2HHの3つがm/4×m/4。1HL、1LH、1HHの3つがm/2×n/2となる。上述した如く、後に続く符号化処理は、このタイルを単位として処理を行っていく。
【0011】
JPEG2000では、ウェーブレット変換のフィルタ係数として、可逆・非可逆の2通りの係数が規定されている。可逆・非可逆を統一的に扱う場合は、可逆のフィルタ係数が用いられ、より高いレート又は良好なひずみ特性を実現する場合は非可逆のフィルタ係数を用いる。
【0012】
次に、各ウェーブレット係数データに対して図4で示される式により、スカラー量子化が行われる。ここで、aが入力されるウェーブレット係数データで、qが出力される量子化後の係数データ、sign(a)はウェーブレット係数データaの符号、|a|はウェーブレット係数データaの絶対値、Δbはサブバンドごとに決められた量子化ステップ、「」はフロア関数を示す。ただし、可逆ウェーブレット係数を用いた場合は、このスカラー量子化は実施されない。
【0013】
ウェーブレット変換後、或いは量子化後の係数データを各サブバンドごと、或いはサブバンドを複数の矩形領域に分割したコードブロックごとにエントロピー符号化していく。図5に、各サブバンドをP×Qの大きさのコードブロックに分割した一例を示す。また、前記エントロピー符号化は、後段のMQ符号化器14に与えるコンテキストを生成する係数モデリング部13での処理と、実際に符号化を行うMQ符号化器14での処理によりなされる。
【0014】
図6は、各サブバンドごとにエントロピー符号化した場合におけるサブバンドCB1とそのMQ符号化器14の処理を示す。サブバンドCB1は、P×Qの画像サイズを有し、各点の画像は、(N+2)ビットで量子化されている。上面が量子化ビットのMSB(most significant bit)で、下面が量子化ビットのLSB(least significant bit)である。図6では、上面から2つ目のプレーンには、量子化ビットが存在しない。このビットプレーンをゼロビットプレーンという。
【0015】
係数モデリング部13での処理では、コードブロック単位でウェーブレット係数データをビットプレーンに分割し、上位のビットプレーンから順番に符号化の処理を進める。
【0016】
最初に、ウェーブレット係数データを符号(正・負)と絶対値とで表し、同一のコードブロックに含まれるウェーブレット係数データの絶対値をビットプレーンに分割する。
【0017】
続いてゼロビットプレーンがMSB側からみて何プレーン続くかを調べる。該ゼロビットプレーンは、MQ符号化の処理を行わず、MSBより連続するゼロビットプレーンの枚数(ゼロビットプレーン数)のみを後述するパケットヘッダーに反映させる。MQ符号化の処理は、MSB側より数えて初めて0でないビットデータが出現したビットプレーン(図中のビットプレーンN)より始める。
【0018】
次に、ビットプレーン上の各ビットをある規則に従いS、R、Cの3つに分類する。図7にビットプレーン上の各ビットをある規則に従いS、R、Cの3つに分類した一例の図を示す。前述した如くビットプレーンをS、R、Cに3つに分類した後、該ビットプレーンをスキャンする。
【0019】
最初にSに分類されたビットデータのみ、該ビットデータの周りの画素の情報に基づいて作られたコンテキストを用いて符号化する。続いてRに分類されたビットデータを、最後にCに分類されたビットデータをそれぞれ異なったコンテキストにより符号化し、1つのビットプレーンを符号化する。このビットプレーン1回のスキャンと対応するビットの符号化をコーディングパス特に、
Sに分類されたビットを符号化するパスを、significant propagationパス。
【0020】
Rに分類されたビットを符号化するパスを、magnitude refinementパス。
【0021】
Cに分類されたビットを符号化するパスを、clean upパス。
と呼ぶ。
【0022】
結局1つのビットプレーンは3つのパスで全て符号化されることになる。ただし、MSB側より数えて初めて0でないビットデータが出現したビットプレーン(図6中、ビットプレーンN)のビットは全てCに分類され、このビットプレーンのみはclean upパスだけで符号化される。
【0023】
したがって、図6に示すが如く、N枚のゼロビットプレーンでないビットプレーン(非ゼロビットプレーン)が存在するコードブロックは、3N−2回のパスで全て符号化される。
【0024】
最終的に得られる符号データ(MQ符号データ)の一例を図8に示す。図8に示すが如く、MQ符号データは、各パスで生成される符号データをつなげたものとなる。
【0025】
また、各サブバンドは、precinctと呼ばれる矩形の領域に分割することができる。各サブバンドをprecinctに分割した例を図9、図10に示す。図9では、3LLのサブバンドを2個のprecinct(P1、P2)に分け、各precinctには4つのコードブロックが含まれている様子を示している。また、図10では、LL以外のサブバンドが、P1、P2、P3、・・・と複数のprecinctに分割され、各precinctには4つのコードブロックが含まれている様子を示している。なお、1つのprecinctに含まれるコードブロックの数は解像度ごとに任意に設定することができる。
【0026】
また、任意の数のコーディングパスをまとめて1つのレイヤを構成することができる。これは、MQ符号化データをもとのウェーブレット係数データの精度方向に分割することに等しい。図11では、図9の3LLのサブバンドで4つのコードブロック(CB1、CB2、CB5、CB6)を含む1つのprecinct(P1)をL1〜L16の16個のレイヤに分割している一例を示す。
【0027】
レイヤ1には、CB1のコーディングパス1、2で生成された符号(PS1、PS2)と、CB6のコーディングパス1で生成された符号(PS1)とが含まれ、レイヤ2には、CB2のコーディングパス1で生成された符号(PS1)と、CB5のコーディングパスで生成された符号(PS1)とが含まれる。このようにレイヤに含まれる各コードブロックのコーディングパス数は任意に設定することができる。
【0028】
上述した如く、各コンポーネントごとの画像データは、2次元離散ウェーブレット変換により、解像度を下げたサブバンドごとのウェーブレット係数データに変換され、各サブバンドはprecinctと呼ばれる矩形領域に分割される。更に、precinctに含まれるウェーブレット係数データをコードブロック単位でビットプレーンごとに3つのコーディングパスでMQ符号化していく。このとき一連のMQ符号データを、コーディングパスを単位としてレイヤと呼ばれる階層に分割することができる。
【0029】
JPEG2000では、上記コンポーネント、サブバンド、precinct、レイヤで分類されるMQ符号データ、つまり、図11の太枠で囲まれた符号データをまとめて1つのパケットとして管理する。ここで、場合によっては、該当するコードブロックのMQ符号データをまったく含まないゼロパケットと呼ばれるパケットも存在する。
【0030】
図12に、具体的なパケットの例を説明するための図を示す。図12の、パケット20は、パケットヘッダー21とパケットデータ(エントロピー符号データ)22とより構成される。ここで、前記MQ符号データ(CB1のPS1、CB1のPS2、CB6のPS1)は、パケットデータ21に格納される。一方、パケットヘッダー20には、パケットを復号するために必要な以下の情報が格納される。
▲1▼該パケットがゼロパケットかどうか。
【0031】
図12の例では、パケットはゼロパケットでないという情報が格納される。
▲2▼該当するコードブロックのMQ符号データが該パケットに含まれるかどうか。
【0032】
CB1とCB6とのMQ符号データは含まれ、CB2とCB5とのMQ符号データは含まれない。
▲3▼該パケットに含まれる各MQ符号データのコーディングパス数
CB1に含まれるMQ符号データのコーディングパス数は2
CB6に含まれるMQ符号データのコーディングパス数は1
▲4▼該パケットに含まれる各MQ符号データのバイト数
CB1に含まれるMQ符号データのバイト数(PS1とPS2との合計)と、
CB6に含まれるMQ符号データのバイト数(PS1)。
【0033】
ここでは、3LLのサブバンド内のパケットについて説明したが、それ以外のサブバンドは同じ解像度で、同じ位置にある3つのprecinctの同じレイヤの符号が一つのパケットを構成する。図10を例にとると、HLサブバンド、LHサブバンド、HHサブバンドの各precinct、P1に含まれるコードブロックから生成されるレイヤごとのMQ符号データを同じパケットとして管理する。
【0034】
最終的には、図13に示すJPEG2000の符号ストリームが生成される。JPEG2000の符号ストリームは、メインヘッダーマーカー(SOC)31、メインヘッダーマーカーセグメント32、タイルパートヘッダーマーカー(SOT)33、タイルパートヘッダーマーカーセグメント34、SODマーカー35、ビットストリーム36、EOCマーカー37とから構成されている。
【0035】
メインヘッダーマーカー31は、符号ストリームの開始を表し、メインヘッダーマーカーセグメント32は、画像情報、量子化の情報、符号化の情報などを含む。タイルパートヘッダーマーカー33は、タイルパートの開始を表し、タイルパートヘッダーマーカーセグメント34は、それに続くタイルパートの情報、量子化の情報、符号化の情報などを含む。SODマーカー35は、データの開始を表し、ビットストリーム36は、そのタイルパートに含まれる全てのパケットを含む。符号データが複数のタイルパートより成る場合は、タイルパートヘッダーマーカー33、タイルパートヘッダーマーカーセグメント34、SODマーカー35、ビットストリーム36を繰り返し、EOCマーカー37は、符号ストリームの終わりを表す。ここで、1つのタイルの符号データを複数のタイルパートに分けて符号ストリームを構成することも可能である。
【0036】
上述した如く、画像データは、コードブロック単位でMQ符号化され、その符号データは輝度・色差成分(コンポーネント)ごと、解像度(LL、HL−LH−HHサブバンド)ごと、領域(precinct)ごと、レイヤごとにパケット単位にまとめられ、図13のビットストリーム36の位置に特定の順番で配置される。例として、画像全体をタイル分割しないで、以下に示すパラメータで符号化を行う場合を考える。
▲1▼コンポーネント数:Cmax個(C1、C2、・・・、Cmax)
▲2▼解像度:Rレベル=R+1個(1:RLL、2:RHL−RLH−RHH、・・・、R+1:1HL−1LH−1HH)
▲3▼precinct:各解像度でPmax個(P1、P2、・・・、Pmax)
▲4▼レイヤ:Lmax個(L1、L2、・・・、Lmax)
このとき、パケットの総数は、Cmax×(R+1)×Pmax×Lmaxとなる。
【0037】
JPEG2000の符号ストリームを構成する際に、タイルパートに分割しない場合は、タイルパートヘッダー40に含まれる情報を全てビットストリーム36の位置に配置する必要がある。JPEG2000の規格では、パケットの並べ方として、コンポーネント、解像度、precinct、レイヤの何を優先するかによって、5通りの並べ方(progression order)を規定している。
【0038】
図14は、progression orderの1つであるLayer−resolution−component−position順のパケットの並びを示している。初めに(L1、RLL、C1、P1)のパケットを並べ、レイヤ、解像度、コンポーネントは1のままprecinctが2、3、・・・、Pmaxのパケットを順番に並べる。次にコンポーネントを2として、precinctが1、2、・・・、Pmaxのパケットを順番に並べる。これをコンポーネントがCmaxになるまで続け、後は同様に解像度を2、3、・・・、R+1。レイヤを2、3、・・・、Lmaxになるまで順番にパケットを並べる。
【0039】
progression orderとしては、Layer−resolution−component−position順以外に
Resolution−layer−component−position順。
Resolution−position−component−layer順。
Position−component−resolution−layer順。
Component−position−resolution−layer順。
が規定されているが、いずれもコンポーネント、解像度、precinct、レイヤのどの要素を優先して並べるかが異なるだけで、パケットの内容(パケットヘッダー、パケットデータ)自体は変わらない。
【0040】
上記progression orderには次に示す意味がある。複号時に復号されたパケットを順次画像データとして表示していくと、例えばLayer−resolution−component−position順は、複号時に上位の画像全体の全コンポーネントのデータが圧縮された解像度で、上位レイヤから順に復号されていくので、最初に粗い画像が出力され次第に画質の良い画像に復元されることになる。Resolution−layer−component−position順であれば、最初に解像度の低い画像が復元され、次第に高解像度の画像が出来て行くことになる。このように、符号のprogression orderにより、復号時に何を優先して表示するかが変わってくる。
【0041】
次にJPEG2000の特徴である符号の再圧縮、即ち符号データを一旦復号することなく、更に圧縮された符号を生成する方法について述べる。この再圧縮の機能は、ロスレス或いはそれに近い圧縮率で符号化され蓄積されたデータをある伝送路を使って送信する際などに利用される。即ち、その伝送路の伝送能力が低いため、蓄積された符号データの送信が所定時間以内に完了しないような場合に、符号の再圧縮により、符号量をある決められた上限以下に圧縮して送信することで、所定時間以内に符号データの伝送を完了させることができるようになる。更に、このような場合においても、復号された画像データの画質は、その制限の範囲内において最も高いことが望まれる。JPEG2000では、このような機能を以下のようにして実現する。
【0042】
図15にLayer−resolution−component−position順で符号データを再圧縮する一例を示す。このような場合、符号データの先頭から送信しながらバイト数を数えていき、例えばレイヤnで予め設定された上限になればその時点(図中a)で符号データを打ち切る。こうする事で上位のレイヤから符号データを送信し、必要な符号量で復号時において最も画質の良くなる符号データを送信することができる。
【0043】
【発明が解決しようとする課題】
しかしながら、従来の上述の方法では、符号のprogression orederが、Layer−resolution−component−position順に限られてしまい、更にハードウェア化を考えると実際にはコードブロックごとにMQ符号化を行うため、前述の如く画像全体の上位レイヤを優先して並べていくこのprogression orderで符号化を行うことは難しい。
【0044】
本発明は上記の点に鑑みなされたもので、圧縮された符号データを簡単且つ効率的に再圧縮することが可能な画像処理装置を提供することを目的とする。
【0045】
【課題を解決するための手段】
そこで、上記問題を解決するため、請求項1記載の発明は、周波数領域の画像データを、複数の部分画像データに分割し、該部分画像データのビットプレーンにおける符号化パスごとに圧縮符号化し、所定数の符号化パスによりレイヤを構成する符号データを、該レイヤごとの符号データ量に基づいて再圧縮する画像処理装置であって、前記レイヤごとの符号データ量を最上位レイヤから積算していき、積算された符号データ量が、所定の量を超えない範囲のレイヤを選択するレイヤ選択手段と、前記レイヤ選択手段により選択されたレイヤよりも下位のレイヤに対応するパケットをゼロパケットとすることによってデータ量を圧縮するデータ量圧縮手段とを有することを特徴とする。
【0046】
また、請求項2記載の発明は、前記積算されたレイヤごとの符号データ量の値を、再圧縮した符号データのヘッダー情報として用いることを特徴とする。
【0047】
また、請求項3記載の発明は、前記符号データを復号化する符号データ復号化手段を有し、前記データ量圧縮手段は、ヘッダーをデコードするヘッダーデコード手段を有し、前記符号データ復号化手段は、前記ヘッダーデコード手段から出力されたヘッダー情報を用いて復号化することを特徴とする。
【0048】
また、請求項4記載の発明は、JPEG2000が規定する符号化及び/又は復号化の処理を行うことを特徴とする。
【0049】
請求項1記載の発明によれば、周波数領域の画像データを、複数の部分画像データに分割し、該部分画像データのビットプレーンにおける符号化パスごとに圧縮符号化し、所定数の符号化パスによりレイヤを構成する符号データを、該レイヤごとの符号データ量に基づいて再圧縮する画像処理装置であって、前記レイヤごとの符号データ量を最上位レイヤから積算していき、積算された符号データ量が、所定の量を超えない範囲のレイヤを選択するレイヤ選択手段と、前記レイヤ選択手段により選択されたレイヤよりも下位のレイヤに対応するパケットをゼロパケットとすることによってデータ量を圧縮するデータ量圧縮手段とを有することにより、簡単で且つ効率的な符号データの再圧縮が行える画像処理装置を提供することができる。
【0050】
請求項2記載の発明によれば、前記積算されたレイヤごとの符号データ量の値を、再圧縮した符号データのヘッダー情報として用いることにより、簡単で且つ効率的に再圧縮符号データのヘッダーを生成することができる。
【0051】
請求項3記載の発明によれば、前記符号データを復号化する符号データ復号化手段を有し、前記データ量圧縮手段は、ヘッダーをデコードするヘッダーデコード手段を有し、前記符号データ復号化手段は、前記ヘッダーデコード手段から出力されたヘッダー情報を用いて復号化することにより、再圧縮する符号データの元となる画像データを復号することができる。
【0052】
請求項4記載の発明によれば、JPEG2000の再符号化及び/又は復号化の処理に前記画像処理装置を用いることにより、所定の情報量以下の符号データの情報量で最適な画質の画像を復元することができる。
【0053】
【発明の実施の形態】
以下、本発明の実施の形態について図面に基づいて説明する。なお、本発明の実施の形態は、JPEG2000ベースにして説明する。
【0054】
図16に本発明の実施における1チップの符号化・復号化器50の例を示す。図16では、説明に必要な構成を表し、説明に必要の無い構成を省略してある。以下の図面においても同じである。
【0055】
図16の符号化・復号化器50は、前・後処理部51、2次元離散ウェーブレット変換(DWT/IDWT)部52、エントロピー符号・復号化部53、符号形成部54、PLL(Phase Locked Loop)回路55、CPUI/F部56、エントロピー符号化部53のワークメモリ57及びヘッダー処理部58から構成されている。
【0056】
前・後処理部51は、符号化時は画像データを画像データI/Fから得て、例えば、レベルシフトを行いRGB(赤・緑・青)データをYCbCr(輝度成分・色差成分)データに変換する。また、復号化時はその逆変換を行う。
【0057】
2次元離散ウェーブレット変換部(DWT/IDWT)部52は、2次元離散ウェーブレット変換及びその逆変換を行う。
【0058】
エントロピー符号・復号化部53は、エントロピー符号化及びその逆変換を行う。
【0059】
符号形成部54は、符号化時は、符号形成を行い、生成した符号にヘッダー処理部58で生成したヘッダーを付加して符号データI/Fによりビットストリームを有する符号データフォーマットを出力する。復号時は、符号データI/Fからビットストリームを有する符号データフォーマットを得て、復号化時と逆の処理を行う。
【0060】
PLL回路55は、符号化・復号化器50のクロックを生成する。CPUI/F部56は、符号化・復号化50と外部に設けたCPUとのインターフェースをとる。
【0061】
次に画像データの符号化と符号データの再圧縮の処理を説明する。図17の(A)は画像データの符号化の処理を、図17の(B)は符号データの再圧縮の処理を説明するための図である。
【0062】
図17の(A)では、画像全体を符号化した際のレイヤごとの符号量を求め、符号データとともに該算出した符号量を管理する。図17の(B)では、前記算出した符号量を基に、所定の上限符号量を超えない範囲で最大の符号量が得られるレイヤを決定し、該レイヤより下位のレイヤのパケットを破棄することで、符号データの再圧縮を行っている。
【0063】
図18にレイヤごとの符号量を求める装置の一例を示す。図18は、符号化の最終ステップである符号構成部54において、バイト単位で符号データを出力する際、その符号データのバイト出力イネーブル信号と、出力しているパケットが属するレイヤナンバーの情報とを同時に符号量カウント部60に入力する。
【0064】
図19にレイヤの符号量の内容を表す一例を示す。図19に示されるように、レイヤの符号量をレイヤに属するパケットの符号量と定義し、メインヘッダーのバイト数、タイルパートヘッダーのバイト数及びEOCの2バイトはレイヤ1の符号量に含める。
【0065】
図20に符号量カウント部60の構成の一例を示す。符号量カウント部60は、符号データの出力イネーブル信号によりカウントアップするカウンター61と、各レイヤナンバーの情報をデコードするデコーダー62と、レイヤ数に対応してレイヤごとの符号量を格納する累加算器63とによって構成される。
【0066】
カウンター61のカウント値は、レイヤナンバーが変わる度にリセットされ、そのレイヤの符号データが発生する度にカウントアップされる。カウントアップされたカウント値は、レイヤナンバーが変わる際に、累加算器63に入力される。このとき、デコーダー62は、現在出力されているパケットが属するレイヤナンバーより、上位のレイヤ全てを選択するようにしておく。こうすることにより、例えばカウンター61のカウント値が、レイヤNの符号データをカウントした値であったとすると、そのカウント値は、レイヤ1〜レイヤNの全ての累加算器63で加算される。また、出力する符号データが、メインヘッダー、タイルパートヘッダー、EOCの場合、レイヤ1が出力されるようにしておくことにより、図19で示されるレイヤごとの符号量を算出することができる。
【0067】
また、レイヤの符号量を内容の内容を表す他の例を図21に示す。図21に示されるように、レイヤの符号量をレイヤに属するパケットの符号量のみと定義し、メインヘッダーのバイト数、タイルパートヘッダーのバイト数及びEOCの2バイトはレイヤ1の符号量に含める。レイヤの符号量をこのように定義することにより、符号量カウント部60を以下のように構成することができる。
【0068】
図22に符号量カウント部60の構成の他の例を示す。符号量カウント部60は、符号データの出力イネーブル信号によりカウントアップするカウンター61と、各レイヤナンバーの情報をデコードするデコーダー62と、レイヤ数に対応してレイヤごとの符号量を格納する符号量カウント部レジスタ64とによって構成される。
【0069】
カウンター61のカウント値は、レイヤナンバーが変わる度に次のレイヤに対応するレイヤごとの符号量がリセットされ、そのレイヤの符号データが発生する度にカウントアップされる。カウントアップされたカウント値は、レイヤナンバーが変わる際に、符号量カウント部レジスタ64に入力される。このとき、デコーダー62は、現在出力されているパケットが属するレイヤナンバーを選択するようにしておく。こうすることにより、図21に示されるレイヤごとの符号量のデータを得ることができる。
【0070】
以下、符号データの再圧縮を行う際に、レイヤごとの情報を基に所定の上限符号量を超えない範囲で最大の符号量が得られるレイヤを決定する装置の例を示す。
【0071】
図23は、再符号化を行う際のレイヤ選択回路70の構成の一例を説明するための図である。図23のレイヤ選択回路70は、比較器71と、プライオリティエンコーダー72とから構成されている。
【0072】
比較器71に符号データを入力する前に、上限の設定符号量を設定して、レイヤごとの符号量を比較器71に入力する。比較器71では、各レイヤごとの符号量と設定符号量とを比較して、その比較結果をプライオリティエンコーダー72に入力する。プライオリティエンコーダー72では、前記比較器71より入力されたそれぞれのレイヤにおける比較結果に基づき、設定符号量を超えない範囲で最大の符号量が得られるレイヤを選択する。選択された選択レイヤは、符号再圧縮回路73に渡され、符号データの再符号化に用いられる。
【0073】
図23は、図19、図20で示される、符号量カウント部で得られるレイヤごとの符号量に対応した、再符号化時のレイヤ選択回路70である。
【0074】
図24は、再符号化を行う際のレイヤ選択回路70の構成の他の例を説明するための図である。図24のレイヤ選択回路70は、比較器71と、マルチプレクサ75と、加算器76と、レイヤ選択回路レジスタ77と、レイヤ決定回路78とから構成されている。
【0075】
マルチプレクサ75は、レイヤ1の符号量、レイヤ2の符号量、・・・、レイヤ16の符号量から一つを選択し、選択したレイヤの符号量を加算器76に入力する。加算器76では、入力されたレイヤの符号量を、それまでのレイヤに含まれる符号量に加算し、加算した結果をレイヤ選択回路レジスタ77に格納する。レイヤ選択回路レジスタ77は、加算結果を格納していると共に、次のレイヤ符号量と加算すべき値とを保持している。比較器71は、加算器の出力と、所定の設定符号量とを比較し、比較した結果をレイヤ決定回路78に入力する。レイヤ決定回路78は、所定の設定符号量を超えない範囲で最大の符号量となるレイヤを選択し、選択する。選択された選択レイヤは、符号再圧縮回路73に渡され、符号データの再符号化に用いられる。
【0076】
ここでは、レイヤ1の符号量、レイヤ2の符号量、・・・、レイヤ16の符号量と、順番にマルチプレクサ75で選択し、加算器76を用いてレイヤ選択回路レジスタ77に保存されているそれまでのレイヤの符号量と選択したレイヤの符号量とが加算され、比較器71にて設定符号量と比較される。加算値が始めて設定符号量と比べて大きくなると、それより一つ前のレイヤが選択され、レイヤ決定回路より符号再圧縮回路73に渡される。
【0077】
図24は、図21、図22で示される、符号量カウント部で得られるレイヤごとの符号量に対応した、再符号化時のレイヤ選択回路70である。
【0078】
次に、符号再圧縮回路73について説明する。図25は、符号再圧縮回路73の構成例を説明するための図である。符号再圧縮回路73は、ヘッダーデコード部81と、バッファ82と、ヘッダー書き替え部83とから構成されている。
【0079】
符号圧縮回路73に入力される符号データは、図13に示されるようにメインヘッダー40と、タイルパートヘッダー41と、それに続くビットストリーム36とから構成される。ビットストリーム36は、上述した如く、パケットヘッダー21とパケットデータ22とからなる複数のパケットが、規定されたprogression order順に並んだ構成となっている。
【0080】
ここで、パケットの順番、レイヤ数、コンポーネント数、解像度情報及びprecinctの情報は予めヘッダーデコード部81に設定されているものとする。このとき、パケットの順番、レイヤ数、コンポーネント数、解像度情報、precinctの情報は、メインヘッダー40或いはタイルパートヘッダー41に記述されているので、ヘッダーデコード部81は、その値を自動的に取り込む構成とすることも可能である。また、破棄すべきパケットの情報は、前記レイヤ選択回路70で選択された選択レイヤより、知ることができる。
【0081】
ヘッダーデコード部81では、入力された符号データの、メインヘッダー40とタイルパートヘッダー41とをバッファ82に入力する。一方、ヘッダーデコード部81は、パケットのパケットヘッダーより、コードブロックのゼロビットプレーン数、コーディングパス数、MQ符号データのバイト数情報をデコードする。また、該パケットのレイヤ数が前記レイヤ選択回路70により選択されたレイヤと比較し、破棄すべきパケットであれば次のパケットの先頭まで破棄し、該パケットが破棄すべきでないパケットであれば、そのパケットヘッダー21とパケットデータ22とをバッファ82に入力する。同様の操作を最後のパケットまで繰り返すと同時に、残すべき符号データのバイト数をカウントしておく。
【0082】
ヘッダー書き替え部83では、予め設定された条件に合うように、メインヘッダー40にあるレイヤ数、解像度、コンポーネント、precinctの情報を書き換え、更にヘッダーデコード部81がカウントしていた符号データのバイト数よりタイルパートヘッダー41にある符合データのバイト数の情報を変更し、最終的な再圧縮符号データ3として出力する。
【0083】
図26に、Resolution−position−component−layer順の符号データの一例を示す。
【0084】
図26の符号データは、レイヤ数16(1〜16)、コンポーネント数3(1、2、3)、解像度3(3LL、3HL−LH−HH、2HL−LH−HH、1HL−LH−HH)、precinct数1のResolution−position−component−layer順の符号データである。
【0085】
以下、前記レイヤ選択回路70より選択されたレイヤをレイヤ8とし、レイヤ8より下位(8〜16)の符号データを破棄する場合を考える。図27に、符号再圧縮回路73におけるレイヤ8より下位の符号データを破棄する処理の一例のフローチャートを示す。
【0086】
ステップS1では、符号データがヘッダーデコード部81に入力され、メインヘッダー40とタイルパートヘッダー41とはそのままバッファ82に入力される。
【0087】
ステップS1に引き続きステップS2に進み、ステップS2では、ヘッダーデコード部81が入力された符号データのパケットの選択を行う。最初のパケットは、progression orderに係らず、L(レイヤ)=1、r(解像度)=3LL、C(コンポーネント)=1、P(precinct)=1に対応する符号データを選択する。
【0088】
ステップS2に引き続きステップS3に進み、ステップS3では、ヘッダーデコード部81がステップS2において選択したパケットのデコードを行う。デコードする情報は前述した如くコードブロックのゼロビットプレーン数(ZBP)、コーディングパス数(CP)及びMQ符号データのバイト数(PD)である。ここで、デコードの過程においてパケットヘッダー自体のバイト数(以下、PHという)も取得する。
【0089】
ステップS4では、ヘッダーデコード部81が該当するパケットが破棄すべきパケットであるかどうかを判定する。この例においては、レイヤLが8以上かどうかを判定する。レイヤLが8以上だと判定すると(ステップS4においてYES)、ステップS6に進み、レイヤLが8以上でないと判定すると(ステップS4においてNO)、ステップS5に進む。
【0090】
ステップS5では、ヘッダーデコード部81がパケットを所定のバッファ82に格納する。即ちパケットヘッダーを含め連続するPH+PDバイトの符号データをバッファ82に格納する。また、同時に新たに生成する符号データのバイト数Nを知るため、PH+PDの値を累加算していく。ここで、バッファ82は、符号を保持できる領域を作成し、複数のパケットデータを連続して格納できる領域を持っているものである。
【0091】
ステップS6では、ヘッダーデコード部81がパケットヘッダーを含め、連続するPH+PDバイトの符号データを読み飛ばす。
【0092】
ステップS5、ステップS6に引き続きステップS7に進み、ステップS7では、ヘッダーデコード部81が現在選択しているパケットが最後のパケットかどうかを判定する。これは、該パケットのレイヤ、コンポーネント、解像度、precinctの全てがパケットの最後を示しているかどうかで判定する。この例の場合、L(レイヤ)=16且つ、r(解像度)=1HL−LH−HH且つ、C(コンポーネント)=3且つ、P(precinct)=1であるかどうかによって判定する。最後のパケットであると判定すると(ステップS6においてYES)、ステップS9に進み、最後のパケットではないと判定すると(ステップS6においてNO)、ステップS8に進む。
【0093】
ステップS8では、ヘッダーデコード部81が次のパケットを選択する。次のパケットのL(レイヤ)、r(解像度)、C(コンポーネント)、P(precinct)は、progression orederで判断できる。なお、最終のパケットの処理が完了するまで、前記ステップS3からステップS8までの処理を繰り返す。
【0094】
ステップS9では、ヘッダー書き換え部83がメインヘッダー40にあるレイヤ数、コンポーネント数、解像度、precinctの情報を新たに得られた符号データに対応するように書き替える。また、ステップS5でカウントしたバイト数Nを用いてタイルパートヘッダー内の符号バイト数を書き替える。
【0095】
ステップS9に引き続きステップS10に進み、ステップS10では、ヘッダー書換え部83が再圧縮符号データ3を出力する。
【0096】
このような処理を行うことにより、以下で示すレイヤ8〜16のパケットを破棄した符号データが得られる。図28に、図26で示した符号データのレイヤ8〜16のパケットを破棄した一例を示す。
【0097】
なお、上述した例ではレイヤ8以降のパケットを完全に破棄したが、レイヤ8以降のパケットを破棄せず、ゼロパケットに置き換えて実施することも可能である。図29に、符号再圧縮回路73におけるレイヤ8より下位の符号データをゼロパケットに書き替える処理の一例のフローチャートを示す。ここで、図27と同一の処理を行うステップは、説明を省略する。
【0098】
図27のステップS6と異なり、ステップS16では、ヘッダーデコード部81が該当するパケットを読み飛ばすと同時にゼロパケットである‘00’をバッファ82に入力し、符号データのバイト数Nに1を加える。
【0099】
また、図27のステップS9と異なり、ステップS19では、メインヘッダー40の書き替えは行わず、タイルパートヘッダー41の符号バイト数のみを書き替える。
【0100】
図30に、図26で示した符号データのレイヤ8〜16のパケットをゼロパケットに書き替えた一例を示す。
【0101】
また、符号再圧縮回路73と符号化・復号化器50とを以下のように組み合わせて、再圧縮符号データ3と画像データ1とを同時に生成する構成とすることも可能である。図31に、符号再圧縮回路73と符号化・復号化器50との組み合わせの一例を示す。
【0102】
符号データ2の再圧縮を行う場合は、上述した如く、符号データ2は一旦ヘッダーデコード部81に入力され、その後メインヘッダー40とタイルパートヘッダー41とはそのままバッファ82に入力される。ビットストリーム36は、パケットヘッダー21のデコード後、必要なパケットのみバッファ82に入力される。最後にヘッダー書き替え部82によって、メインヘッダー40とタイルパートヘッダー41とを変更した後、再圧縮符号データを出力する。
【0103】
一方、符号データ2の復号を行う場合は、符号データ2は一旦ヘッダーデコード部81に入力され、メインヘッダー21及びタイルパートヘッダー41は読み飛ばされ、ヒットストリーム36は、パケットヘッダーデコード後、パケットデータ20のみがバッファ82に入力される。その後、前記パケットデータ20と共にヘッダーデコード部81でパケットヘッダー21をデコードして得られたZBP、CP、PDをエントロピー復号化部52に入力する。これら入力されたデータにより、エントロピー復号化部52で生成されたウェーブレット係数データを逆ウェーブレット変換(IDWT)して、後処理部51に入力することにより、最終的な画像データ1を得ることができる。
【0104】
本発明は、JPEG2000が規定する符号化又は復号化の処理に限らない。
【0105】
また、本発明の再圧縮の処理は、それとは逆の処理を行うことにより、復号化が可能である。
【0106】
また、本発明は、圧縮された符号データから、一旦画像に復号することなく、また符号データのパケットの並び方に関係なく、符号データの再圧縮が行える。
【0107】
【発明の効果】
上述の如く、本発明によれば、圧縮された符号データを簡単且つ効率的に再圧縮することが可能な画像処理装置を提供することができる。
【0108】
【図面の簡単な説明】
【図1】JPEG2000の符号化の流れを説明するための図である。
【図2】水平方向M画素、垂直方向N画素の画像データにレベル3の2次元ウェーブレット変換を行った場合の一例を説明するための図である。
【図3】画像データをm×nの大きさのタイルに分割し、レベル3の2次元離散ウェーブレット変換を行った場合の一例を説明するための図である。
【図4】スカラー量子化の式である。
【図5】各サブバンドをP×Qの大きさのコードブロックに分割した一例の図である。
【図6】各サブバンドごとにエントロピー符号化した場合におけるサブバンドとMQ符号化器の処理を説明するための図である。
【図7】ビットプレーン上の各ビットをある規則によりS、R、Cの3つに分類した一例を示すための図である。
【図8】MQ符号データの一例を示すための図である。
【図9】サブバンドをprecinctと呼ばれる矩形の領域に分割した一例を示すための図である。
【図10】サブバンドをprecinctと呼ばれる矩形の領域に分割した一例を示すための図である。
【図11】4つのコードブロックを含む1つのprecinctを16個のレイヤに分割している一例を示すための図である。
【図12】パケットの一例を説明するための図である。
【図13】JPEG2000符号ストリームの一例を説明するための図である。
【図14】Layer−resolution−component−position順のパケットの並べ方を説明するための図である。
【図15】Layer−resolution−component−position順で符号データを再圧縮する一例を説明するための図である。
【図16】符号化・復号化器の構成例を説明するための図である。
【図17】画像データの符号化と符号データの再圧縮との処理を説明するための図である。
【図18】レイヤごとの符号量を求める装置の一例を説明するための図である。
【図19】レイヤの符号量の内容を表す一例を説明するための図である。
【図20】符号量カウント部の構成の一例を説明するための図である。
【図21】レイヤの符号量の内容を表す他の例を説明するための図である。
【図22】符号量カウント部の構成の他の例を説明するための図である。
【図23】再符号化を行う際のレイヤ選択回路の構成の一例を説明するための図である。
【図24】再符号化を行う際のレイヤ選択回路の構成の他の例を説明するための図である。
【図25】符号再圧縮回路の構成例を説明するための図である。
【図26】Resolution−position−component−layer順の符号データの一例を示す図である。
【図27】符号再圧縮回路におけるレイヤ8より下位の符号データを破棄する処理の一例のフローチャート図である。
【図28】レイヤ8から16のパケットを破棄した符号データの一例を示す図である。
【図29】符号再圧縮回路におけるレイヤ8より下位の符号データをゼロパケットに置き換える処理の一例のフローチャート図である。
【図30】レイヤ8から16のパケットをゼロパケットに書き替えた符号データの一例を示す図である。
【図31】符号再圧縮回路と符号化・復号化器との組み合わせの一例を示す図である。
【符号の説明】
1 画像データ
2 符号データ
3 再圧縮符号データ
10 色変換部
11 DWT部
12 量子化器
13 係数モデリング部
14 MQ符号化器
15 符号形成部
20 パケット
21 パケットヘッダー
22 エントロピー符号データ(パケットデータ)
31 メインヘッダーマーカー(SOC)
32 メインヘッダーマーカーセグメント
33 タイルパートヘッダーマーカー(SOT)
34 タイルパートヘッダーマーカーセグメント
35 SODマーカー
36 ビットストリーム
37 EOCマーカー
40 メインヘッダー
41 タイルパートヘッダー
50 符号化・復号化器
51 前・後処理部
52 DWT/IDWT
53 エントロピー符号・復号化部
54 符号構成部
55 PLL回路
56 CPUI/F部
56 ワークメモリ
57 ヘッダー処理部
60 符号量カウント部
61 カウンター
62 デコーダー
63 累加算器
64 符号量カウント部レジスタ
70 レイヤ選択回路
71 比較器
72 プライオリティエンコーダー
73 符号再圧縮回路
75 マルチプレクサ
76 加算器
77 レイヤ選択回路レジスタ
78 レイヤ決定回路
81 ヘッダーデコード部
82 バッファ
83 ヘッダー書き替え部
Claims (4)
- 周波数領域の画像データを、複数の部分画像データに分割し、該部分画像データのビットプレーンにおける符号化パスごとに圧縮符号化し、所定数の符号化パスによりレイヤを構成する符号データを、該レイヤごとの符号データ量に基づいて再圧縮する画像処理装置であって、
前記レイヤごとの符号データ量を最上位レイヤから積算していき、積算された符号データ量が、所定の量を超えない範囲のレイヤを選択するレイヤ選択手段と、
前記レイヤ選択手段により選択されたレイヤよりも下位のレイヤに対応するパケットをゼロパケットとすることによってデータ量を圧縮するデータ量圧縮手段とを有することを特徴とする画像処理装置。 - 前記積算されたレイヤごとの符号データ量の値を、再圧縮した符号データのヘッダー情報として用いることを特徴とする請求項1記載の画像処理装置。
- 前記符号データを複合化する符号データ復号化手段を有し、前記データ量圧縮手段は、ヘッダーをデコードするヘッダーデコード手段を有し、
前記符号データ復号化手段は、前記ヘッダーデコード手段から出力されたヘッダー情報を用いて復号化することを特徴とする請求項1記載の画像処理装置。 - JPEG2000が規定する符号化及び/又は復号化の処理を行うことを特徴とする請求項1ないし3何れか一項記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002242549A JP4166530B2 (ja) | 2002-08-22 | 2002-08-22 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002242549A JP4166530B2 (ja) | 2002-08-22 | 2002-08-22 | 画像処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007096759A Division JP4532518B2 (ja) | 2007-04-02 | 2007-04-02 | 画像処理装置及び画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004088164A JP2004088164A (ja) | 2004-03-18 |
JP4166530B2 true JP4166530B2 (ja) | 2008-10-15 |
Family
ID=32051603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002242549A Expired - Fee Related JP4166530B2 (ja) | 2002-08-22 | 2002-08-22 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4166530B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080260275A1 (en) * | 2004-05-17 | 2008-10-23 | Ikuro Ueno | Image Coding Apparatus |
CN101543077B (zh) * | 2007-01-31 | 2011-01-19 | 索尼株式会社 | 信息处理装置和方法 |
JP5469127B2 (ja) | 2011-05-30 | 2014-04-09 | 富士フイルム株式会社 | 画像データ符号化装置ならびにその動作制御方法およびそのプログラム |
KR101470505B1 (ko) * | 2012-10-11 | 2014-12-16 | 주식회사 리얼타임테크 | 공간 데이터 압축 장치 및 그 방법과, 압축된 공간 데이터 복원 장치 및 그 방법 |
WO2021035715A1 (zh) * | 2019-08-30 | 2021-03-04 | 深圳市大疆创新科技有限公司 | 数据处理方法和装置 |
-
2002
- 2002-08-22 JP JP2002242549A patent/JP4166530B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004088164A (ja) | 2004-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4254017B2 (ja) | 画像符号化装置及び方法 | |
JP4656190B2 (ja) | 情報処理装置および方法 | |
US7352907B2 (en) | Code conversion apparatus, code conversion method and storage medium | |
JP4780172B2 (ja) | 情報処理装置および方法 | |
JP2004228717A (ja) | 画像処理方法、画像処理装置、電子カメラ装置、プログラム及び記録媒体 | |
JP2004336254A (ja) | 画像符号化装置及び方法 | |
JP2004165760A (ja) | 画像処理装置、画像処理方法、プログラム及び記録媒体 | |
JP4532518B2 (ja) | 画像処理装置及び画像処理方法 | |
JP5950157B2 (ja) | 画像処理装置および方法、並びに、プログラム | |
JP4135617B2 (ja) | 画像符号化装置及び方法 | |
JP4449400B2 (ja) | 画像符号化装置及び方法、並びにプログラム及び記録媒体 | |
JP4111259B2 (ja) | 符号化装置、符号化方法、ソフトウェアプログラム、テーブルデータ並びに記録媒体 | |
JP4166530B2 (ja) | 画像処理装置 | |
JP5817125B2 (ja) | 画像処理装置および方法 | |
JP2003101788A (ja) | 復号方法、復号装置、画像処理装置、パケットヘッダ生成方法、パケットヘッダ生成装置 | |
JP4003628B2 (ja) | 画像符号化装置及び方法、並びにプログラム | |
JP3989788B2 (ja) | 符号量制御装置およびプログラム | |
JP4111761B2 (ja) | 画像処理装置 | |
JP2004134939A (ja) | 画像符号化装置 | |
JP4703921B2 (ja) | 画像処理装置 | |
JP4379527B2 (ja) | 符号化装置及び方法 | |
JP2001197499A (ja) | 動画像符号化方法及び装置、動画像復号方法及び装置、並びに動画像伝送方法及び装置 | |
JP4055994B2 (ja) | 画像処理装置、画像処理方法、プログラム及び記録媒体 | |
JP4040404B2 (ja) | 符号列変換装置及び方法、画像処理装置並びに画像記録装置 | |
Omaki et al. | Embedded zerotree wavelet based algorithm for video compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050802 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060815 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070402 |
|
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: 20080701 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080730 |
|
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: 20110808 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110808 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120808 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120808 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130808 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |