説明

画像圧縮装置および画像圧縮方法、ならびにそのためのプログラム

【課題】簡単な仕組みでROIと類似の画像効果を実現することが可能な画像圧縮装置および画像圧縮方法ならびにそのためのプログラムを提供すること。
【解決手段】トランケーションテーブルを一つ選択し、一個のコードブロック情報をメモリ上より読み出し、指定領域内のコードブロックであればトランケーション量を0とし、全体符号量に当該コードブロックの符号量を加算し、指定領域外であればトランケーションを行った時のコードブロックの符号量を計算し全体符号量に加算する。全コードブロックに対して行う(ステップS201〜S207)。次に一個のコードブロック情報を読み出し、指定領域内であればトランケーション量を0としコードブロック情報をそのままとし、指定領域外であればトランケーションを行い、それを反映したコードブロックの情報を求めメモリに書き込む(ステップS208〜S214)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、JPEG2000などに準拠して画像データの圧縮符号化を行う画像圧縮装置および画像圧縮方法ならびにそのためのプログラムに関する。本発明は、静止画、または動画の圧縮、伸張技術に係り、特にデジタルスチルカメラ、デジタルコピアの記録部分、監視カメラ、デジタルビデオストレージ、デジタルカメラ(動画)、衛星通信機器、医療機器、インターネットのブラウザなどにおける画像処理に応用可能である。
【背景技術】
【0002】
近年、高精細画像を取り扱うのに適した圧縮符号化方法としてJEPG2000が知られている。JPEG2000の符号化処理では、画像データをY,Cb,Crの各色成分のデータに変換した後、それぞれのデータに対して周波数解析として2次元離散ウェーブレット変換を行う。
【0003】
JPEG2000は、画像データの圧縮伸長に関する形式である。
図9は、JPEG2000アルゴリズムの基本を説明するための機能ブロック図である。この機能ブロック図は、JPEG2000形式の画像圧縮伸長用の画像処理用コンピュータプログラムに従いコンピュータが実行することになる各種の機能に対応するアルゴリズムをブロック化して示している。
【0004】
図9に示すように、JPEG2000アルゴリズムは、色空間変換・逆変換部111、2次元ウェーブレット変換・逆変換部112、量子化・逆量子化部113、エントロピー符号化・復号化部114、タグ処理部115によって構成されている(特開2004−214828号公報(特許文献1)参照)。
【0005】
ウェーブレット変換により得られたウェーブレット係数のデータ(例えば16ビットデータ)を、サブバンド(たとえば、レベル3のウェーブレット変換の場合、3LL,3HL,3LH,3HH,2HL,2LH,2HH,lHL,1LH,1HH)を処理単位としてビットプレーンに分割し、サブバンド毎に各ビットプレーンのデータを上位から順に3通りの方法によりスキャンして算術符号化を行う。上記3通りの方法は、”significant propagation pass”、”magnitude refinement pass”、”cleanup pass”と呼ばれている。
【0006】
符号データの圧縮は、上記3通りの方法によるスキャンで得られる各サブバンドの全コードブロックのコーディングパスの符号データを最下位のビットプレーン側から順に均一に削除(トランケーション)することにより行う。ここで、符号データの削除とは、削除するビットデータの値を0(無効データ)に置きかえることをいう。JPEG2000の符号化処理の詳細については下記非特許文献1を参照されたい。
【0007】
また、画像圧縮技術に関する従来文献としては、例えば上述した特開2004−214828号公報(特許文献1)の他に、特開2004−304238号公報(特許文献2)、特開2004−297712号公報(特許文献3)などがある。以下、これら従来文献の概要を簡単に説明する。
【0008】
特開2004−214828号公報(特許文献1)に開示されたものは、JPEG2000形式での画像の圧縮処理を実行する圧縮手段と、JPEG2000以外の形式で圧縮された画像の伸長処理を実行する伸長手段とを備え、記憶領域に記憶された画像ファイルについての関心領域の指定を許容し、画像ファイルが非圧縮ファイル又はJPEG2000以外の形式で圧縮された圧縮ファイルであることを判定し、画像ファイルが非圧縮ファイルであると判定され場合には圧縮手段で圧縮し、JPEG2000以外の形式で圧縮された圧縮ファイルであると判定された場合には伸長手段で伸長してから圧縮手段で圧縮し、圧縮画像から、指定された関心領域に対応するブロックを抽出し出力するものである。
【0009】
特開2004−304238号公報(特許文献2)に開示されたものは、画像データを周波数解析して得られる係数データを処理単位毎に符号化して符号データを生成する符号化部と、上記符号化部において処理単位毎に生成される符号データを削除することにより符号データの量を削減するデータ削減部と、各処理単位の係数データを更に第2処理単位の係数データに分割し、第2処理単位の係数データの値の大きさに応じて、上記データ削減部における符号データの削減量を上記第2処理単位で増やすデータ処理部を備えることを特徴とするものである。
【0010】
また、特開2004−297712号公報(特許文献3)に開示されたものは、画像データを周波数解析して得られる係数データを処理単位で符号化して符号データを生成する符号化部と、符号データの内、各処理単位の係数データの下位ビット側のデータに対応する符号データから削除する内容を決めるデータを、データNo.の増加に伴い符号データの削減量が次第に増加又は減少し、かつ、再生画像の質が次第に劣化又は向上するように並べたテーブルと、テーブルより読み出したデータに従い符号データを削除した場合の符号データの変量を算出し、算出した符号データの変量が目標値であるとみなせる1つのデータのデータNo.を特定するレートコントロール部とを備えることを特徴とするものである。
【0011】
図10は、特許文献2,3に開示された画像圧縮装置の構成を示す図である。
同図に示すように、画像圧縮装置100は、ウェーブレット変換部10、算術符号化部20、パケットヘッダ生成処理部30、メモリコントローラ40及びDRAM50で構成される。メモリコントローラ40は、いわゆるアービタ回路であり、上記ウェーブレット変換部10、算術符号処理部20及びパケットヘッダ生成処理部30が備える各DMA13、21、25、31、33、35及び37のDRAM50に対するデータアクセス権の調停を行う。
【0012】
ウェーブレット変換部10は、画像データを16ビットのウェーブレット係数に変換する。色変換回路11は、入力される画像データをY、Cb及びCrの各色成分に変換して出力する。ウェーブレット変換回路12は、色変換後の各成分のデータに対して2次元離散ウェーブレット変換を実行する。DMA13は、生成されたウェーブレット係数をDRAM50の所定のアドレスに格納する。
【0013】
算術符号化部20は、上記ウェーブレット変換部10においてDRAM50に格納されたウェーブレット係数に対して算術符号化処理を施し、各サブバンドのコーディングパス毎の符号データをDRAM50に書き込むと共に、各サブバンドのコードブロック毎のマスク量(コーディングパス枚数)を特定し、特定したマスク量をメモリA又はメモリBに書き込む。
【0014】
更に、上記特定したマスク量及び各コードブロックのコーディングパス毎の符号量から、トランケーションデータに基づいて各サブバンドのコーディングパスを1枚づつ削除する場合に減少する符号量を特定し、メモリC又はメモリDに書き込む。
【0015】
DMA21は、DRAM50の所定のアドレスに格納されているウェーブレット係数をサブバンド単位で読み出す。読み出された16ビットのウェーブレット係数は、量子化回路22においてエントロピー量子化された後、ビットプレーン分割回路23に入力され16枚のビットプレーンに分割される。
【0016】
算術符号化回路24は、サブバンド毎に各ビットプレーンのデータを上位ビットから順に3通りの方法(コーディングパスという)によりスキャンして算術符号化を行う。上記3通りの方法は、”significant propagation pass”、”magnitude refinement pass”、”cleanup pass”と呼ばれる。算術符号化部24から出力される符号データは、15×3+1=46枚のコーディングパスの符号データで成り、DMA25を介してDRAM50に書き込まれる。
【0017】
DMA21によってDRAM50から読み出されたウェーブレット係数は、量子化回路22だけでなく平均値算出回路26にも入力される。平均値算出回路26では、各コードブロックの有効画素のウェーブレット係数の平均値を算出して出力する。
【0018】
マスキング係数計算回路27は、平均値算出回路26から順に出力される各コードブロック毎のウェーブレット係数の平均値の値に応じて0枚、1枚、2枚の追加のマスキング係数、即ち、マスク量(符号データを削除するコーディングパスの枚数)を特定して出力する。
【0019】
メモリA及びメモリBは、処理するフレーム画像単位で交互にイネーブルに切り換えられるメモリであり、マスキング係数計算回路27から出力される各サブバンドのコードブロック毎のマスク量を記録する。
【0020】
算術符号化回路24の出力する符号データは、符号量算出回路28にも出力される。符号量算出回路28では、各コードブロックのビットプレーンに対応するコーディングパス毎の符号量を計数し、係数値をデータ処理回路29に出力する。
【0021】
データ処理回路29には、更に、上記メモリA又はメモリBに書き込まれた各コードブロックのマスク量(コーディングパス枚数)が入力される。データ処理回路29は、各サブバンドのコーディングパスの符号データを最下位のビットプレーン側から1枚ずつ削除する場合において、更に、マスク量を考慮した符号データの削減量を求め、求めた符号データの削減量を表すデータをメモリC又はメモリDに書き込む。
【0022】
パケットヘッダ生成処理部30は、上記算術符号化部20において求めた、各サブバンドのコーディングパスの符号データを最下位ビットプレーン側から1枚づつ削除する場合であって、更に、コードブロック毎のマスク量を考慮に入れた場合の符号データの削減量に基づいて、符号データを所望量だけ削除するのに適当なトランケーションデータのデータNo.を特定し、特定したデータNo.のトランケーションデータに基づいて得られる符号データのパケットヘッダを生成し、ビットストリームを形成して出力する。
【0023】
レートコントロール回路32は、まず、データNo.128のトランケーションデータをDMA31を介してDRAM50より読み出し、読み出したトランケーションデータの内容に従い、全てのサブバンドについてコードブロック毎に特定される符号データの削減量の合計を算出し、目標削減量との比較を行う。
【0024】
ここで、目標削減量に満たない場合には、より大きな値のデータNo.のトランケーションデータを読み出し、当該データの内容に従い全てのサブバンドにおけるデータ削減量の合計を求める。逆の場合、即ち、符号データの削減量の合計値が目標削減量よりも多い場合、より小さな値のデータNo.のトランケーションデータを読み出し、符号データの削減量を再度算出する。上記符号データの削減量が目標削減量であるとみなせる値になる1のデータNo.を特定し、このデータNo.を表すデータを後段のパケット情報生成回路34に出力する。
【0025】
レートコントロール回路32は、大きく分けてアドレス生成回路、符号量演算回路及びデータNo.切換回路とで構成される。アドレス生成回路及び符号量演算回路は、指定されたデータNo.のトランケーションデータを上記トランケーションテーブルから読出し、読み出したトランケーションデータの内容に従い各処理単位の符号データの下位ビット側のデータを削除する場合の符号データの変量を算出する演算部として機能する。アドレス生成回路は、DMA31を介して入力されるトランケーションデータの内容に基づいて加算又は減算させるビットプレーンの符号量のデータを読み出すアドレスを生成し、メモリC及びメモリDに出力する。
【0026】
メモリC及びメモリDの内、処理しているフレーム画像のデータが格納されており、イネーブル状態にあるメモリは、指定されたアドレスに格納している符号データの削減量を表すデータを符号量演算回路に出力する。
【0027】
符号量演算回路は、メモリC又はメモリDより送られてくるデータ削減量の全サブバンドについての合計を求め、求めた合計値と目標削減量との比較を行い、比較結果を表す信号を次段のデータNo.切換回路に出力する。
【0028】
データNo.切換回路は、上記符号量演算回路から出力される比較結果信号に基づいて異なるデータNo.のトランケーションデータをDMA33を介してDRAM50に要求する。また、符号データ削減量が目標削減量であるとみなせる最終の1のデータNo.を表す信号をパケット情報生成回路34に出力する。
【0029】
パケットヘッダ生成回路36は、パケット情報生成回路34より出力される上記算出した各サブバンドのコードブロックのコーディングパス数及び符号量のデータ、ゼロビットプレーン数、並びに、DMA37よりDRAM5から読み込んだ符号データ等のデータよりパケットヘッダを生成し、符号形成回路38に出力する。
【0030】
符号形成回路38は、パケットヘッダ生成回路36より出力されるデータよりビットストリームを形成し、目標削減量だけ符号データの削減を行った符号データとして外部に出力する。以上が特許文献1,2における画像圧縮装置の概要である。
【0031】
【特許文献1】特開2004−304238号公報
【特許文献2】特開2004−297712号公報
【特許文献3】特開2004−214828号公報
【非特許文献1】「静止画像符号化の新国際標準方式(JPEG200)の概要」、映像情報メディア学会誌2000年、Vol.54、No.2、pp164−171
【発明の開示】
【発明が解決しようとする課題】
【0032】
JPEG2000では、ROI(Region of Interest)と呼ばれる「画像の選択された部分」のみ画質を向上させることができる機能を持っている。ROI機能を実現するためには、符号化時に、それに対応した処理を行っておく必要がある。JPEG2000の基本方式では、注目領域の係数に対して重み付けを行う方式(具体的にはビットシフトにより2のべき乗の重みを付ける)を採用している。
【0033】
図11は、従来のJPEG2000の符号化処理の流れを示す図である。
同図に示すように、画像をウェーブレット変換し(ステップS501)、量子化し(ステップS502)、MQ(算術)符号化し(ステップS503)、符号形成して(ステップS504)、圧縮画像データを得ていた(ステップS505)。通常、ROI機能を実現するためには、符号化時に、それに対応した処理を行っておく必要がある。
【0034】
図12は、符号化時に行うROI処理を含んだ流れを示す図である。
同図に示すように、画像をウェーブレット変換し(ステップS601)、ビットシフトし(ステップS602)、量子化し(ステップS603)、MQ(算術)符号化し(ステップS604)、符号形成して(ステップS605)、圧縮画像データを得ていた(ステップS606)。通常、ROI機能を実現するためには、符号化時に、それに対応した処理を行っておく必要がある。
【0035】
処理として考えられるのは、注目領域を他の部分に比べて細かい量子化ステップで量子化を行って符号化する方法と、注目領域の係数に対して重み付けを行う方法(具体的にはビットシフトにより2のべき乗の重みを付ける)がある(図12のステップS602参照)。
【0036】
図12に示したJPEG2000の基本方式では後者の方式を採用している。ビットシフトのシフト量はROI部分ではない係数の最大ビット数分であり、その点からMaxshift方式と呼ばれている。ROI領域の係数はこのビットシフト処理によってシフトアップされた状態で、復号時、その他の領域(バックグランド領域)の係数と同じレンジに戻す必要がある。
【0037】
図13は、復号化時のROI処理の流れを示す図であり、基本的には図12の逆順序で処理される。すなわち、圧縮データを符号解析し(ステップS701)、MQ復号化し(ステップS702)、逆量子化し(ステップS703)、ビットシフトを行った後(ステップS704)、逆ウェーブレット変換し(ステップS705)、画像を復元する(ステップS706)ものである。
【0038】
ビットシフト方式は、このように、符号化および復号化時にROIマスク情報の作成、ウェーブレット係数のビットシフト処理を行う回路や、シフト量を計算する回路をそれぞれ設ける必要がある。また、カラー画像のような複数成分画像の場合、サブサンプル処理が使用される場合が多い。サブサンプルが使用された場合には、それに伴ってROIマスクもサブサンプルする必要がある。
【0039】
このように、上記従来技術では、目標の符号量になるように符号量を調整しながら、注目領域の画質向上を提供し、ROI機能に類似する効果を実現するために、係数重み付け方式によるビットシフトやシフト量の計算などを行う必要があり、回路構成が複雑となるという問題があった。
【0040】
本発明の目的は、上述したような複雑な計算や回路構成のかわりに、より簡単な仕組みでROIと類似の画像効果を実現することが可能な画像圧縮装置および画像圧縮方法ならびにそのためのプログラムを提供することである。なお、区別のために、以下では「ROI」の替わりに「指定領域」という言葉を使用する。
【課題を解決するための手段】
【0041】
本発明は、上記目的を達成するために、次のような構成を採用する。以下、請求項毎の構成を述べる。
【0042】
a)請求項1記載の発明は、JPEG2000方式の符号化に際して、MQ(算術)符号化器にて生成されたコードブロック毎のコーディングパス数、符号量を入力とし、コードブロック毎に与えられる第一の符号量制御基準および第二の符号量制御基準に基づいてそのコードブロックで符号化すべきコーディングパス数とそれに対応する符号量を決定する符号量制御を行う画像圧縮装置であって、特定のコードブロックに対しては前記第二の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定し、それ以外のコードブロックに対しては前記第一の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定する手段を有することを特徴とする。
【0043】
b)請求項2記載の発明は、前記第一の符号量制御基準として、各コードブロックで破棄するコーディングパス数を用いることを特徴とする。
【0044】
c)請求項3記載の発明は、前記第二の符号量制御基準として、破棄するコーディングパス数を0、すなわち指定された空間的領域に属するコードブロックに対してはMQ符号化器で生成された符号を破棄することなく符号化することを特徴とする。
【0045】
d)請求項4記載の発明は、前記第二の符号制御量基準を用いるコードブロックを、予め指定された空間的座標位置によって決定することを特徴とする。
【0046】
e)請求項5記載の発明は、前記第二の符号制御量基準を用いるコードブロックを、処理するフレームによって決定することを特徴とする。
【0047】
f)請求項6記載の発明は、JPEG2000方式の符号化に際して、MQ(算術)符号化器にて生成されたコードブロック毎のコーディングパス数、符号量を入力とし、コードブロック毎に与えられる第一の符号量制御基準および第二の符号量制御基準に基づいてそのコードブロックで符号化すべきコーディングパス数とそれに対応する符号量を決定する符号量制御を行う画像圧縮方法であって、特定のコードブロックに対しては前記第二の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定するステップと、それ以外のコードブロックに対しては前記第一の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定するステップを有することを特徴とする。
【0048】
g)請求項7記載の発明は、前記第一の符号量制御基準として、各コードブロックで破棄するコーディングパス数を用いることを特徴とする。
【0049】
h)請求項8記載の発明は、前記第二の符号量制御基準として、破棄するコーディングパス数を0、すなわち指定された空間的領域に属するコードブロックに対してはMQ符号化器で生成された符号を破棄することなく符号化することを特徴とする。
【0050】
i)請求項9記載の発明は、前記第二の符号制御量基準を用いるコードブロックを、予め指定された空間的座標位置によって決定することを特徴とする。
【0051】
j)請求項10記載の発明は、前記第二の符号制御量基準を用いるコードブロックを、処理するフレームによって決定することを特徴とする。
【0052】
k)請求項11記載の発明は、JPEG2000方式の符号化に際して、MQ(算術)符号化器にて生成されたコードブロック毎のコーディングパス数、符号量を入力とし、コードブロック毎に与えられる第一の符号量制御基準および第二の符号量制御基準に基づいてそのコードブロックで符号化すべきコーディングパス数とそれに対応する符号量を決定する符号量制御を行う画像圧縮用プログラムであって、コンピュータを、特定のコードブロックに対しては前記第二の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定し、それ以外のコードブロックに対しては前記第一の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定する手段として機能させるための画像圧縮用プログラムである。
【発明の効果】
【0053】
本発明は、上記構成を採用することにより、以下のような効果を有する。以下、請求項毎の効果を述べる。
【0054】
a)請求項1および6に係る発明では、コードブロック毎に符号量制御の基準を変更するようにしたので、その特定部分のみ画質を変えることができる。
【0055】
b)請求項2および7に係る発明では、各コードブロックのコーディングパスを下位から順番に破棄するようにしたので、予め設定された符号量に近い符号量を得ることができる。
【0056】
c)請求項3および8に係る発明では、特定のコードブロックは符号データを破棄することなく保持できる。それ以外のコードブロックは符号データを破棄するようにしたので、前記コードブロックの画質を相対的に高めることができる。
【0057】
d)請求項4および9に係る発明では、空間的座標位置によって、第2の符号量制御基準を用いるコードブロックを選択するようにしたので、指定した領域のみ画質を高めることができる。
【0058】
e)請求項5および10に係る発明では、処理するフレームによって、第2の符号量制御基準を用いるコードブロックを選択するようにしたので、複数フレーム中の特定のフレームのみ画質を高めることができる。
【0059】
f)請求項11に係る発明は、コードブロック毎に符号量制御の基準を変更するようにしたことができるようにしたプログラムであり、そのため、特定部分のみ画質を変えることができる画像圧縮用プログラムが得られる。
【発明を実施するための最良の形態】
【0060】
(概要)
JPEG2000符号化処理の時に、上述した特許文献1,2に開示されているように、あらかじめ設定された目標の符号量に対し、算術符号化処理された符号データを下位から破棄し目標の符号量になるように調整する「レートコントロール」と呼ばれる方法がある(図13のレートコントロール回路32参照)。
【0061】
本発明は、ビットシフト方式の替わりに、レートコントロールを行う時、指定領域内と指定領域外において破棄するデータの量を調整することで、ROIと類似の効果を実現するものである。
【0062】
(実施例)
図1は、ROI処理に類似したレートコントロール処理を含む本発明に係る処理の流れを示す図である。本発明では、同図に示すように、画像をウェーブレット変換し(ステップS1)、量子化し(ステップS2)、MQ(算術)符号化し(ステップS3)、ROI類似機能を有するレートコントロールを行い(ステップS4)、符号形成して(ステップS5)、圧縮画像データを得る(ステップS6)。
【0063】
次に、本発明におけるレートコントロールの手順について簡単に説明する。
図2は、コードブロック情報を読出しの実施例を示すブロック図である。
JPEG2000符号化時、算術符号化処理後のデータは、各コードブロックの情報(ゼロビットプレーン数、コーディングパス数、コードブロック符号量、コーディングパス毎の符号量等)はパケットポインターと呼ばれる内部メモリ64領域に記録される。
【0064】
一個のコードブロックの情報は一個のパケットポインターを成す。各コードブロックのパケットポインターのメモリアドレスは、図2の61に示すコードブロックが所在するコンポーネント,解像度レベル,サブバンド情報、および、62で示すサブバンド内コードブロックの位置情報によって一意に決定される(63)。
【0065】
また、サブバンド単位でコーディングパス毎に符号量がまとめられ内部メモリ64に記録される。これらの情報はレートコントロール時に読み出される。
【0066】
あるコンポーネント、解像度レベルに属するサブバンドのメモリスタートアドレスをSA(SUB)、サブバンド内コードブロックの垂直・水平方向の位置を(Y、X)とすると、コードブロック情報が格納されているメモリ上の先頭アドレスSA(CB)は以下のようになる。
[ SA(CB)=SA(SUB)+Y*Xh+X]
ここで、Xhはサブバンドの水平方向のコードブロック数とする。図2の加算器の記号は上記式に相当する。
【0067】
以下に説明するレートコントロールの処理では、コードブロックの位置からパケットポインターのアドレスを算出し(63)、内部メモリ64からそのパケットポインターを読み出し、コードブロック情報(コーディングパス数、バイト数等)を抽出する(65)。
【0068】
図3は、一般的なレートコントロール処理の流れを示す図である。レートコントロールは大きく分けて二つの過程からなる。
【0069】
一つ目はレートコントロールテーブルを選択する過程(A)である。これは、複数用意されたレートコントロールテーブルから使用すべきテーブルを一つ決定する過程(A)である。
【0070】
二つ目はトランケーション過程(B)である。これは、選択したトランケーションテーブルを使用して各コードブロックのコーディングパスをトランケーションし、符号量情報を変更していく過程である。
【0071】
トランケーションテーブルにはサブバンド毎にそのサブバンド内のコードブロックのコーディングパスのトランケーション量が記述されている。解像度レベル5のトランケーションテーブルの例を次に示す。
【0072】
i194 c0: 1, 1 1 1, 1 1 1, 1 1 1, 2 2 2, 6 6 11
i194 c1: 1, 2 2 2, 2 2 3, 4 4 5, 6 7 9, 11 11 16
i194 c2: 1, 1 1 2, 2 2 3, 3 3 4, 5 5 7, 9 9 12
ここで、それぞれの数字は、
C0:コンポーネント0。具体的にはY成分を示す。
C1:コンポーネント1。具体的にはCb成分を示す。
C2:コンポーネント2。具体的にはCr成分を示す。
【0073】
各列の数字は(C0:5LL, 5HL-LH-HH, 4HL-LH-HH, 3HL-LH-HH, 2HL-LH-HH, 1HL-LH-HH)のように、
5LL:レベル5LL成分のサブバンドのコーディングパス単位のトランケーション量
5HL−LH−HH:レベル5のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
4HL−LH−HH:レベル4のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
3HL−LH−HH:レベル3のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
2HL−LH−HH:レベル2のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
1HL−LH−HH:レベル1のHL成分とLH成分とHH成分のサブバンドのコーディングパス単位のトランケーション量
をそれぞれ表す。
このようなテーブルデータはメモリ上、スタートアドレスから小さい順で配置される。
【0074】
まず、レートコントロールテーブルを選択する過程(A)を説明する。
レートコントロールがスタートしたら、トランケーションテーブルを一つ選択し(ステップS101)、サブバンドのコーディングパス毎の符号量情報をメモリ上より読み出し(ステップS102)、選択したトランケーションテーブルに従ってトランケーションを行った場合のサブバンドの符号量を計算し(ステップS103)、ステップS103の処理を全てのサブバンドに対して行い、算出した符号量が目標符号量に達した場合は、それを最終的なトランケーションテーブルとしステップS105に進み、算出した符号量が目標符号量に達しない場合は目標値との差に従って次のテーブルを選択するためステップS101に戻る。これにより目標の符号量になるためのトランケーション量が決定される。
【0075】
次に、トランケーション(B)の流れについて説明する。
トランケーションをスタートし(ステップS105)、一個のコードブロックの情報をメモリ上より読出し(ステップS106)、選択したトランケーションテーブルに従ってコードブロックのコーディングパスのトランケーションを行い(ステップS107)、それを反映したコードブロックの情報を求め、新しいコードブロック情報としてメモリ上に書き込む(ステップS108)。全てのコードブロックに対しての処理が終わったら(ステップS109:Y)、レートコントロールを終了する。
【0076】
このように、上記レートコントロールの処理では、サブバンド単位でトランケーションされるコーディングパス数が同じになる。
【0077】
次に、本発明を、符号化時レートコントロールの際に空間的座標位置で判定される指定領域内でトランケーションを実施せず全体の符号量を調整する(請求項4)の実施例を用いて説明する。
【0078】
なお、本発明ではコードブロック単位でのトランケーション量を調整する事でROI類似効果を実現しているので、復号化時に特別な処理を必要としない
【0079】
図4は、指定領域がある時のレートコントロール処理の流れを示す図である。
トランケーションテーブル選択の流れについて説明する。
まず、ステップS201で、トランケーションテーブルを一つ選択し、ステップS202で、一個のコードブロック情報をメモリ上より読み出す。
【0080】
次に、当該コードブロックが指定領域内のコードブロックであれば(ステップS203:Y)、トランケーション量を0とし、全体符号量に当該コードブロックの符号量を加算する(ステップS205)。
【0081】
当該コードブロックが指定領域外のコードブロックであれば(ステップS203:N)、選択したトランケーションテーブルに従ってコーディングパスのトランケーションを行った時の、コードブロックの符号量を計算し(ステップS204)、全体符号量に加算する(ステップS205)。
【0082】
以上の処理(ステップS201〜205)を全てのコードブロックに対して行い、全体符号量が目標符号量に達した場合あるいは最後のトランケーションテーブルに達した場合は(ステップS206:Y)、それを最終的なトランケーションテーブルとする。その他の場合は(ステップS207:N)、目標値との差に従って次のテーブルを選択するためステップS201に戻る。
【0083】
次に、トランケーションの流れについて説明する。
ステップS208でトランケーションを開始し、一個のコードブロック情報をメモリ上より読み出す(ステップS209)。
【0084】
読み出した当該コードブロックが指定領域内のコードブロックであれば(ステップS210:Y)、トランケーション量を0とし、コードブロック情報をそのままとする(ステップS211)。
【0085】
当該コードブロックが指定領域外のコードブロックであれば(ステップS210:N)、選択したトランケーションテーブルに従ってコーディングパスのトランケーションを行い(ステップS212)、それを反映したコードブロックの情報を求める。
【0086】
次のステップS213で、求めた情報を新しいコードブロック情報としてメモリ上に書き込む。上記ステップS210〜S213を全てのコードブロックに関して行ったら(ステップS214:Y)、レートコントロールを終了する。
【0087】
指定領域のないレートコントロール処理と比べ、主な異同はコードブロックが指定領域内にあるか否かによって異なる処理を行う点である。
【0088】
次に、指定空間領域に属するコードブロックの計算について説明する。
図5は、指定領域に属するコードブロックの例を示す図である。
ROI領域を長方形とし、その空間的情報は左上の頂点Aと右下の頂点Bで決定される。もとの画像が解像度レベル0とすると、解像度レベルが一つ上がると、対するサブバンドのサイズが二分の一になる。
【0089】
したがって元画像の指定領域は、解像度レベルが一つ上がると、図5に示すように、対するサブバンドの中でのサイズが二分の一になる。つまり、大きさが2のべき乗のコードブロックについて、ROI領域の頂点AとBの上位ビットを見ればそのコードブロックが指定領域に属するかどうかの判定ができる。
【0090】
図6は、指定領域内のコードブロックの計算の例を示す図である。
画像サイズが「8192×8192」以下の場合、X方向座標は14ビットのレジスターでまかなえる。解像度レベル1の時、対するサブバンドのサイズが1/2になるから、レジスターの最上位ビット(13ビット目)から最下位ビット(0ビット目)より一つ上のビット(1ビット目)まではサブバンド内のX方向座標を表す。
【0091】
一方、コードブロックサイズが32(2の5乗)のとき、下位5ビット(1〜5)はコードブロック内のX座標を表し、上位8ビット(6〜13)はコードブロックのX方向座標を表す。Y方向はX方向と同じで、レベル1以上は類推する。このようにしてコードブロックの位置やコードブロック内の位置を算出できる。
【0092】
図7は、指定領域があるときのトランケーションテーブル選択の実施例を示す図である。
トランケーションテーブルを選択するとき、メモリからのテーブルスタートアドレスTA(ST)にテーブルアドレスオフセット(TAO)を加えた値をテーブルアドレス(TA)とする[すなわち、TA=TA(ST)+TAO](ステップS301)。
テーブルアドレスオフセット(TAO)は、個々のテーブルがテーブルスタートアドレスTA(ST)からのオフセット値を表す。
【0093】
テーブルスタートアドレスTAをもとにメモリからテーブル(TBL)を一枚読み出し、レジスターに記録する(ステップS302)。
【0094】
次に、コードブロック(CB)のパケットポインターアドレスをもとにメモリから当該コードブロックのパケットポインターを読み出し、パケットポインターのコードブロック情報(コーディングパス数CP、符号量BYTE、コーディングパス毎の符号量CP_BYTE(N))を抽出する(ステップS303)。
【0095】
当該コードブロックが指定領域外であれば(ステップS304:N)、コーディングパス数(CP)にトランケーションテーブルの値(TBL)で減算し、得た結果をレートコントロール後のコーディングパスとする [CP =CP−TBL](ステップS305)。
【0096】
また、コーディングパスごとの符号量情報(CP_BYTE(N))をもとに、上位のコーディングパスから減算後のコーディングパスまでの符号量を計算し、得た結果をレートコントロール後の符号量とする [TB=TB+CP_BYTE(N)](ステップS305)。
【0097】
一方、当該コードブロックが指定領域内であれば(ステップS304:Y)、減算処理せずに、符号量(BYTE)をそのままレートコントロール後の符号量とする[TB = TB + BYTE ](ステップS306)。
【0098】
このようにして全てのコンポーネントおよび解像度レベル、サブバンドのコードブロックに対し計算し、結果符号量(TB)を目標符号量と比較し、上まっていればより大きいトランケーションテーブルを、下回っていればより小さいトランケーションテーブルを選択する。
【0099】
トランケーションテーブルは小さい順で配置されるので、アドレスオフセット(TAO)が大きければテーブルの値も大きくなる。最初はアドレスオフセット増加の方向(幅は一定)でテーブルを選択していき、符号量が設定量より小さくなった時点で幅を半分にし、アドレスオフセット減少の方向でテーブルを選択する。
【0100】
このようにしてアドレスオフセットを更新していき(TAO更新)、徐々に捜査範囲を狭めていき、目標のテーブルに辿り付く。一番大きいトランケーションテーブルを選択しても目標の符号量に達しない場合、そこで処理を終了し、そのときのトランケーションテーブルを目標のテーブルとし、そのときの符号量を目標の符号量とする(ステップS307〜S308)。
【0101】
図8は、指定領域があるときのトランケーションの実施例を示す図である。
まず、各コードブロックのパケットポインターを読み出し、コーディングパス数や符号量(バイト数)など必要な情報を取り出す(ステップS401)。指定領域内のコードブロックは(ステップS402:Y)、トランケーション量が0でコードブロック情報に変更がないため、書込みを行う必要がなく次のコードブロックの処理に進む(ステップS408)。
【0102】
指定領域外のコードブロックは(ステップS402:N)、トランケーションテーブル値でコーディングパスをトランケーションした後、結果のコーディングパス数の符号量を計算し(ステップS403〜S406)、コードブロックの情報を更新するためパケットポインターのメモリへの書込みを行う(ステップS407)。全てのコードブロックに対し作業を終えたら、トランケーションを終了する。
【0103】
このようにして、指定領域内のコードブロックは、データのトランケーションを避けることで、指定領域外のコードブロックに比べより多くのデータ(情報)を保持することとなり、結果的に指定領域外より指定領域内の画質が良く、視覚上ビットシフト方式によるROI機能に近い効果を得ることができ、つまりROIと類似する機能の実現である。
【0104】
また、請求項5では、複数のフレームを連続して処理するような場合、特定のフレームに対しては請求項4によるレートコントロール(第二の符号制御量基準を用いるコードブロックを予め指定された空間的座標位置によって決定)を実施し、それ以外のフレームに対しては従来のレートコントロールを実施する。これにより、特定フレームの特定位置の高画質化を計ることができる。
【0105】
なお、JPEG2000は画像データの圧縮伸長に関する形式であり、この形式に従い画像データを圧縮あるいは伸長するには、ハードウェア資源を必要とする。ハードウェア資源としてのコンピュータによって画像処理用のコンピュータプログラムを実行することにより実現される。つまり、コンピュータの記憶装置、例えばHDDにJPEG2000形式の画像データ圧縮伸長用の画像処理用コンピュータプログラムをインストールしておき、コンピュータがCPU及びメモリから構築される基本アーキテクチャによってそのような画像処理用のコンピュータプログラムを解釈し、入力画像に対するJPEG2000形式の画像圧縮処理を実行したり、あるいは、JPEG2000形式で圧縮された画像データを伸長したりする。
【0106】
画像処理用のコンピュータプログラムは、HDD、光学的又は磁気的に情報を記録する各種の光ディスクやフレキシブルディスク等の可搬性を有する各種の記録メディア、あるいはインターネットなどのネットワークを介して市場に流通させることができる。
【図面の簡単な説明】
【0107】
【図1】ROI処理に類似したレートコントロール処理を含む本発明に係る処理の流れを示す図である。
【図2】コードブロック情報を読出しの実施例を示すブロック図である。
【図3】一般的なレートコントロール処理の流れを示す図である。
【図4】指定領域がある時のレートコントロール処理の流れを示す図である。
【図5】指定領域に属するコードブロックの例を示す図である。
【図6】指定領域内のコードブロックの計算の例を示す図である。
【図7】指定領域があるときのトランケーションテーブル選択の実施例を示す図である。
【図8】指定領域があるときのトランケーションの実施例を示す図である。
【図9】JPEG2000アルゴリズムの基本を説明するための機能ブロック図である。
【図10】特許文献2,3に開示された画像圧縮装置の構成を示す図である。
【図11】従来のJPEG2000の符号化処理の流れを示す図である。
【図12】符号化時に行うROI処理を含んだ流れを示す図である。
【図13】復号化時のROI処理の流れを示す図である。
【符号の説明】
【0108】
100:画像圧縮装置
10:ウェーブレット変換部
20:算術符号化部
30:パケットヘッダ生成処理部
40:メモリコントローラ
50:DRAM
13,21,25,31,33,35,37:DMA
11:色変換回路
12:ウェーブレット変換回路
23:ビットプレーン分割回路
24:算術符号化回路
22:量子化回路
26:平均値算出回路
27:マスキング係数計算回路
28:符号量算出回路
29:データ処理回路
32:レートコントロール回路
34:パケット情報生成回路
36:パケットヘッダ生成回路
38:符号形成回路
111:色空間変換・逆変換部
112:2次元ウェーブレット変換・逆変換部
113:量子化・逆量子化部
114:エントロピー符号化・復号化部
115:タブ処理部

【特許請求の範囲】
【請求項1】
JPEG2000方式の符号化に際して、MQ(算術)符号化器にて生成されたコードブロック毎のコーディングパス数、符号量を入力とし、コードブロック毎に与えられる第一の符号量制御基準および第二の符号量制御基準に基づいてそのコードブロックで符号化すべきコーディングパス数とそれに対応する符号量を決定する符号量制御を行う画像圧縮装置であって、
特定のコードブロックに対しては前記第二の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定し、それ以外のコードブロックに対しては前記第一の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定する手段を有することを特徴とする画像圧縮装置。
【請求項2】
前記第一の符号量制御基準として、各コードブロックで破棄するコーディングパス数を用いることを特徴とする請求項1記載の画像圧縮装置。
【請求項3】
前記第二の符号量制御基準として、破棄するコーディングパス数を0、すなわち指定された空間的領域に属するコードブロックに対してはMQ符号化器で生成された符号を破棄することなく符号化することを特徴とする請求項1記載の画像圧縮装置。
【請求項4】
前記第二の符号制御量基準を用いるコードブロックを、予め指定された空間的座標位置によって決定することを特徴とする請求項1記載の画像圧縮装置。
【請求項5】
前記第二の符号制御量基準を用いるコードブロックを、処理するフレームによって決定することを特徴とする請求項4記載の画像圧縮装置。
【請求項6】
JPEG2000方式の符号化に際して、MQ(算術)符号化器にて生成されたコードブロック毎のコーディングパス数、符号量を入力とし、コードブロック毎に与えられる第一の符号量制御基準および第二の符号量制御基準に基づいてそのコードブロックで符号化すべきコーディングパス数とそれに対応する符号量を決定する符号量制御を行う画像圧縮方法であって、
特定のコードブロックに対しては前記第二の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定するステップと、それ以外のコードブロックに対しては前記第一の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定するステップを有することを特徴とする画像圧縮方法。
【請求項7】
前記第一の符号量制御基準として、各コードブロックで破棄するコーディングパス数を用いることを特徴とする請求項6記載の画像圧縮方法。
【請求項8】
前記第二の符号量制御基準として、破棄するコーディングパス数を0、すなわち指定された空間的領域に属するコードブロックに対してはMQ符号化器で生成された符号を破棄することなく符号化することを特徴とする請求項6記載の画像圧縮方法。
【請求項9】
前記第二の符号制御量基準を用いるコードブロックを、予め指定された空間的座標位置によって決定することを特徴とする請求項6記載の画像圧縮方法。
【請求項10】
前記第二の符号制御量基準を用いるコードブロックを、処理するフレームによって決定することを特徴とする請求項9記載の画像圧縮方法。
【請求項11】
JPEG2000方式の符号化に際して、MQ(算術)符号化器にて生成されたコードブロック毎のコーディングパス数、符号量を入力とし、コードブロック毎に与えられる第一の符号量制御基準および第二の符号量制御基準に基づいてそのコードブロックで符号化すべきコーディングパス数とそれに対応する符号量を決定する符号量制御を行う画像圧縮用プログラムであって、
コンピュータを、特定のコードブロックに対しては前記第二の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定し、それ以外のコードブロックに対しては前記第一の符号量制御基準を用いてコーディングパス数とそれに対応する符号量を決定する手段として機能させるための画像圧縮用プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2007−251476(P2007−251476A)
【公開日】平成19年9月27日(2007.9.27)
【国際特許分類】
【出願番号】特願2006−70526(P2006−70526)
【出願日】平成18年3月15日(2006.3.15)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】