高ビット深度画像の圧縮
【課題】空間領域において画像を8ビット画像に縮小せずに高ビット深度画像を符号化する方法を提供する。
【解決手段】画像の周波数領域表現が受信され、周波数領域表現は複数のビットプレーンを有する。周波数領域表現は、ビットプレーンの第1のセット及びビットプレーンの第2のセットに区画される。ここで、ビットプレーンの第1のセットはビットプレーンの第2のセットより上位のビットプレーンのセットである。ビットプレーンの第1のセット及びビットプレーンの第2のセットは、複数の区画に区画される。ビットプレーンの第2のセットからの少なくとも1つの区画は、ビットプレーンの第1のセットの複数の区画に挿入され、画像の複数の配置された区画を生成する。画像の配置された区画が格納される。
【解決手段】画像の周波数領域表現が受信され、周波数領域表現は複数のビットプレーンを有する。周波数領域表現は、ビットプレーンの第1のセット及びビットプレーンの第2のセットに区画される。ここで、ビットプレーンの第1のセットはビットプレーンの第2のセットより上位のビットプレーンのセットである。ビットプレーンの第1のセット及びビットプレーンの第2のセットは、複数の区画に区画される。ビットプレーンの第2のセットからの少なくとも1つの区画は、ビットプレーンの第1のセットの複数の区画に挿入され、画像の複数の配置された区画を生成する。画像の配置された区画が格納される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理に関し、特にビットマップ画像を格納する方法及び装置に関する。また本発明は、ビットマップ画像を格納するコンピュータプログラムを記録したコンピュータ可読媒体を含むコンピュータプログラム製品に関する。
【背景技術】
【0002】
現在のビットマップ画像は、一般に色チャネル形式毎に8ビットに符号化される。この場合、特定の色チャネルに対して、合計で256階調を表現できる。一般に、多くの写真、表示及び印刷の要求に対して、チャネル毎の256階調は十分である。
【0003】
しかし、高ビット深度の医療画像、図形表示及び大判プリンタの使用が増加するにつれ、特定の色チャネル内でより精細なレベルの色の階調度を提供するために色チャネル画像毎に16ビットを符号化する方法が必要である。人間の眼が色の階調度を256より多い数のレベルに分類できるため、より精細なレベルの色の階調度が必要である。
【0004】
16ビット画像を符号化する従来の方法は多数ある。全ての従来の方法は、空間領域において主画像及び残差画像を使用することで16ビット画像を符号化する。主画像と残差画像とを合成し、元の(又は元の非可逆的近似)16ビット画像を生成する。
【0005】
Joint Photographic Experts Group(JPEG)は、ビットマップ画像に対する非可逆的圧縮の方法を規定する。JPEG圧縮により、画像データの周波数領域符号化を使用してビットマップ画像を非可逆的圧縮できる。一例として、図3Aは、ビットマップ画像301の一部を示す。一般的に、JPEG圧縮処理中、ビットマップ画像301は、最初に8×8画素の符号化ブロック(例えば、311)に分割される。そして、離散コサイン変換(DCT)が各符号化ブロックに適用され、8×8ブロックの周波数領域係数を生成する。図3Bは、DCTを符号化ブロック311に適用することで生成された8×8ブロック305の周波数領域係数を示す。図3Bに示されるように、ブロック305は、位置(0,0)に位置付けられたDC係数315及びジグザグな順序325で配置された63個のAC係数(例えば、316)を含む。特定のAC係数(例えば、316)の順序が高いほど、特定のAC係数が符号化するエネルギーの周波数は高い。空間領域において、画像内の高周波数エネルギーは高速変化する値を表し、低周波数エネルギーは低速変化する階調度を表す。
【0006】
DCT変換ステップに後続して、次に64個のDCT係数は量子化テーブルを使用して量子化される。一般に量子化テーブルは、高次AC係数を更に量子化する。更なる量子化は、AC係数が符号化するより高い周波数エネルギーを一般により少ない数のビットで表せるためである。DCT係数の種々のレベルの量子化は、最後の符号化画像の大きさを調整するために利用される。最後に、量子化されたDCT係数は、ハフマン符号化等を使用して可逆的に符号化される。
【0007】
量子化とは別に、最終的な符号化画像の大きさを調整するもう1つの方法は、画像のDCT係数を切り捨てる方法であり、最も高い周波数レベルの係数から開始し、所望のメモリターゲットに達した時に停止する。画像中の視覚情報の大半がDC係数及びより低いAC係数内で符号化されるため、そのような方法は機能する。
【0008】
次に、図4A及び図4Bを参照して、画像をスペクトルJPEG符号化する方法を説明する。図4Aは、8ビット画像の場合の符号化ブロックのDCT係数410を示す。そのようなDCT符号化ブロック毎に、DCT係数410は、画像の低下する視覚品質のスペクトルバンド内に格納される。DCT係数の順位が増加するにつれ、画像の視覚品質へのDCT係数の影響が低下することに直接関連する。従って、DCT係数410は、全体の画質への関連性を低下させることでソートされるスペクトル区画(例えば、415及び425)にグループ化される。そのような構成において、画質は、上位スペクトル区画を削除することで徐々に低下される。このように、あまり関連しない区画を最初に除外することで適応的にメモリを解放することが可能である。例えば、余分なメモリが必要な場合、図4Bにおける区画AC55−AC63が最初に削除され、適応的にメモリを解放する。区画AC55−AC63は、視覚的に最も重要でないため削除される。メモリが更に必要な場合、次に視覚的に最も重要でない区画AC45−AC54が削除され、更なるメモリを解放する。
【0009】
図4Aは、415及び425として示された区画1及び2によるDCT係数410の区画を示す。図4Bは、図4AのDCT係数410に対する区画方式を示すテーブルである。図4Bに示されるように、区画1(415)はDC係数を含み、区画2(425)はAC係数AC1、AC2及びAC3を含む。
【0010】
JPEG圧縮法の1つの制限は、それが色成分毎に最大12ビット画像に対してのみ規定されることである。
【0011】
それ故、高ビット深度画像(すなわち、8ビットより大きい)を符号化する方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の目的は、既存の構成の1つ以上の欠点を実質的に克服するかあるいは少なくとも改善することである。
【0013】
空間領域において画像を8ビット画像に縮小せずに高ビット深度画像を符号化する方法を提供することで上述の問題に対処しようとする構成を開示する。更に開示される方法により、標準的なJPEG伸張器を使用してそのような高ビット深度符号化画像を伸張できる。
【課題を解決するための手段】
【0014】
本発明の一態様によれば、画像の格納する方法であって、
画像の周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は複数のビットプレーンを有する
周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割するステップと、
ここで、前記ビットプレーンの第1のセットはビットプレーンの第2のセットより高いビットプレーンのセットである;
ビットプレーンの第1のセット及びビットプレーンの第2のセットの各々を複数の区画に区画するステップと、
ビットプレーンの第2のセットからの少なくとも1つの区画を、ビットプレーンの第1のセットの複数の区画に挿入し、画像の複数の配置された区画を生成するステップと、
画像の配置された区画を格納するステップと、
を備える方法が提供される。
【0015】
本発明の別の態様によれば、画像を格納する方法であって、
画像の23ビットの周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は23ビットのビットプレーンを有する
周波数領域表現を15ビットのビットプレーンの第1のセット及び8ビットのビットプレーンの第2のセットに分割するステップと、
ここで、前記15ビットのビットプレーンの第1のセットは8ビットのビットプレーンの第2のセットの上位のビットプレーンのセットである;
ビットプレーンの第1のセット及びビットプレーンの第2のセットの各々を複数の区画に区画するステップと、
ビットプレーンの第2のセットからの少なくとも1つの区画をビットプレーンの第1のセットの複数の区画に挿入し、画像の複数の配置された区画を生成するステップと、
画像の配置された区画を格納するステップと、
を備える方法が提供される。
【0016】
本発明の更に別の態様によれば、画像を格納する装置であって、
画像の高ビット深度周波数領域表現を受信する手段と、
ここで、前記高ビット深度周波数領域表現は複数のビットプレーンを有する;
高ビット深度周波数領域表現をビットプレーンの第1のビットプレーン部分のセット及びビットプレーンの第2のビットプレーン部分のセットに分割する手段と、
ここで、前記ビットプレーンの第1のビットプレーン部分のセットはビットプレーンの第2のビットプレーン部分のセットより上位のビットプレーンのセットである;
ビットプレーンの第1のビットプレーン部分のセット及びビットプレーンの第2のビットプレーン部分のセットの各々を複数の区画に区画する手段と、
ビットプレーンの第2のビットプレーン部分のセットからの少なくとも1つの区画をビットプレーンの第1のビットプレーン部分のセットの複数の区画に挿入し、画像の複数の配置された区画を生成する手段と、
画像の配置された区画を格納する手段と、
を備える装置が提供される。
【0017】
本発明の更に別の態様によれば、画像を格納するシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するために前記メモリに接続されたプロセッサと
を有するシステムであって、
前記プロセッサは、前記コンピュータプログラムにおける、
前記画像の高ビット深度周波数領域表現を受信する命令と、
ここで、高ビット深度周波数領域表現は複数のビットプレーンを有する;
前記高ビット深度周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割する命令と
ここで、前記ビットプレーンの第1のセットは前記ビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画する命令、
前記ビットプレーンの第2のセットからの少なくとも1つの区画を前記ビットプレーンの第1のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する命令、
前記画像の配置された区画を格納する命令、
を実行することを特徴とするシステムが提供される。
【0018】
本発明の他の態様が更に開示される。
【図面の簡単な説明】
【0019】
【図1】、
【図2】図1及び図2は、説明される構成が実施可能である汎用コンピュータシステムの概略ブロック図を形成する図。
【図3A】図3Aは、JPEG符号化のために符号化ユニットに分割されるビットマップ画像を示す概略図。
【図3B】図3Bは、8×8DCTブロックを示す概略図。
【図4A】図4Aは、8ビット画像の場合のDCT領域における品質区画を示す概略図。
【図4B】図4Bは、一例に係る8ビット画像の場合の区画方式を示すテーブルを示す図。
【図5】図5は、説明する構成を実施するソフトウェアアーキテクチャの一例を示す図。
【図6】図6は、16ビット画像を格納する方法を示すフローチャート。
【図7】図7は、高ビット深度DCT係数データを符号化する方法を示すフローチャート。
【図8A】図8Aは、高ビットプレーン部分及び低ビットプレーン部分に区画される高ビット深度DCT係数データのブロックを示す概略ブロック図。
【図8B】図8Bは、高ビットプレーン部分及び低ビットプレーン部分を量子化した後の図8AのDCT係数データを示す概略ブロック図で。
【図8C】図8Cは、修正された標準的なJPEG量子化テーブルを示す図。
【図8D】図8Dは、図8AのDCT係数データの低ビットプレーン部分を量子化するために使用する量子化テーブルを示す図。
【図8E】図8Eは、品質区画に区画された図8Aの高ビットプレーン部分及び低ビットプレーン部分を示す概略ブロック図。
【図8F】図8Fは、区画の共通のセットを形成するように合成された品質区画の2つのセットを示す図。
【図8G】図8Gは、区画テーブルの一例を示す図。
【図9】図9は、メモリ内に格納された品質区画を示す概略図。
【図10】図10は、図6の方法に従って符号化されたDCTデータのブロックを伸張する方法を示すフローチャート。
【発明を実施するための形態】
【0020】
次に、以下の図面を参照して本発明の1つ以上の実施形態を説明する。
【0021】
添付の図面のうちのいずれか1つ以上において同一の図中符号を有するステップ及び/又は機能を参照する場合、これらのステップ及び/又は機能は、逆の意図がない限りこの説明のために同一の機能又は動作を有する。
【0022】
上述したように、JPEG圧縮法の1つの制限は、それが色成分毎に最大12ビット画像に対してのみ規定されることである。このJPEG圧縮法は、16ビット以上の画像を取り入れるように拡張される。特にJPEG圧縮法は、高ビット深度画像をJPEG対応の2つ以上の低ビット深度画像に区画することにより、上述の残差画像の方法と組み合わせて拡張される。その後、低ビット深度画像は別個にJPEG符号化される。そのような区画は、主画像及び1つ以上の残差画像を含む。しかし、高ビット深度画像の残差画像は、一般に非常にノイズが多いため、JPEG圧縮に適さない。
【0023】
2つの部分にビット区画される高ビット深度値の場合、高次ビットプレーンを表すより上位のビット部分を、以下において「上位ビットプレーン部分」と呼び、低次ビットプレーンを表すより下位のビット部分を「下位ビットプレーン部分」と称する。
【0024】
図5〜図10を参照して、高ビット深度画像(すなわち、8ビットより大きいビット深度を有する)を格納する方法を以下に説明する。説明される方法は、高ビット深度画像を圧縮するJPEG圧縮器を利用し、図3A、図3B、図4A及び図4Bを参照して上述したスペクトル区画JEPG符号化法の拡張部分である。16ビット画像を参照して、方法を以下において例として説明する。しかし、説明される方法は、他の高ビット深度画像に拡張されてもよい。
【0025】
図1及び図2は、ここで説明される方法を実施可能な汎用コンピュータシステム100を示している。図1に示されるように、コンピュータシステム100は、コンピュータモジュール101、キーボード102、マウスポインタデバイス103、スキャナ120、カメラ127及びマイク180等の入力デバイス、並びにプリンタ115、表示装置114及びスピーカ117を含む出力デバイスを備える。外部変復調器(モデム)送受信機デバイス116は、接続121を介して通信ネットワーク120と通信するためにコンピュータモジュール101により使用される。通信ネットワーク120は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク(WAN)又は専用WANである。接続121が電話線である場合、モデム116は従来の「ダイヤルアップ」モデムである。あるいは、接続121が大容量(例えば、ケーブル)接続である場合、モデム116はブロードバンドモデムである。無線モデムは、通信ネットワーク120に無線接続するために更に使用される。
【0026】
コンピュータモジュール101は、一般に、少なくとも1つのプロセッサユニット105及びメモリユニット106を含む。例えばメモリユニット106は、半導体ランダムアクセスメモリ(RAM)及び半導体読み出し専用メモリ(ROM)を有する。コンピュータモジュール101は、ビデオディスプレイ114、スピーカ117及びマイク180に結合するオーディオ/ビデオインタフェース107、キーボード102、マウス103、スキャナ120、カメラ127及び選択的にジョイスティック又はヒューマンインタフェースデバイス(不図示)に結合する入出力(I/O)インタフェース113、並びに外部モデム116及びプリンタ115用のインタフェース108を含む複数のI/Oインタフェースを更に含む。いくつかの実現例において、モデム116は、インタフェース108等のコンピュータモジュール101内に組み込まれる。コンピュータモジュール101は、接続123を介してコンピュータシステム100がローカルエリアネットワーク(LAN)として既知であるローカルエリア通信ネットワーク122に接続できるようにするローカルネットワークインタフェース111を更に有する。図1に示されるように、ローカル通信ネットワーク122は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えたデバイスを含むワイドネットワーク120に接続124を介して更に結合する。ローカルネットワークインタフェース111は、Ethernet(登録商標)回路カード、Bluetooth(登録商標)無線装置又はIEEE802.11無線装置を備えるが、多数の他の種類のインタフェースがインタフェース111に対して実施されてもよい。
【0027】
I/Oインタフェース108及び113は、直列接続性及び並列接続性のいずれか一方又は双方を提供する。一般に直列接続性は、USB(Universal Serial Bus)規格に従って実現され、対応するUSBコネクタ(不図示)を有する。記憶装置109が提供され、一般にハードディスクドライブ(HDD)110を含む。フロッピディスクドライブ及び磁気テープドライブ(不図示)等の他の記憶装置が更に使用されてもよい。オプションのディスクドライブ112は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク(例えば、CD−ROM、DVD、Blu−ray DiscTM)、USB−RAM、取り外し可能な外部ハードドライブ及びフロッピディスク等のポータブルメモリ装置は、システム100に対する適当なデータのソースとして使用される。
【0028】
コンピュータモジュール101の構成要素105〜113は、一般に、相互接続バス104を介して通信し、結果として当業者に既知であるコンピュータシステム100の動作の従来のモードから得られる方法で通信する。例えばプロセッサ105は、接続118を使用してシステムバス104に結合される。同様に、メモリ106及び光ディスクドライブ112は、接続119によりシステムバス104に結合される。ここで説明する構成が実施可能なコンピュータの例には、IBMのPC及び互換性のあるもの、Sun Sparcstations、Apple MacTM又は同様のコンピュータシステムが含まれる。
【0029】
ここで説明される方法は、コンピュータシステム100を使用して実現される。説明される図5〜図10の処理は、コンピュータシステム100内で実行可能な1つ以上のソフトウェアアプリケーションプログラム133として実現される。特に、ここで説明される方法のステップは、コンピュータシステム100内で実行されるソフトウェア133で命令131(図2を参照)により実施される。ソフトウェア命令131は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成される。ソフトウェアは2つの別個の部分に更に分割され、第1の部分及び対応するコードモジュールは説明される方法を実行し、第2の部分及び対応するコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
【0030】
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読媒体に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム100にロードされ、コンピュータシステム100により実行される。そのようなソフトウェアを有するコンピュータ可読媒体又はコンピュータ可読媒体上に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム100においてコンピュータプログラムを使用することにより、ここで説明される方法を実現する有利な装置を実施することが好ましい。
【0031】
一般にソフトウェア133は、HDD110又はメモリ106に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム100にロードされ、コンピュータシステム100により実行される。従って、例えばソフトウェア133は、光ディスクドライブ112により読み出される光学的に読み出し可能なディスク記憶媒体(例えば、CD−ROM)125上に格納される。
【0032】
いくつかの例において、アプリケーションプログラム133は、1つ以上のCD−ROM125上でユーザが符号化したものに供給され、対応するドライブ112を介して読み出されるか、あるいはユーザによりネットワーク120又は122から読み出される。また、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム100に更にロードされる。コンピュータ可読記憶媒体は、実行及び/又は処理するために記録された命令及び/又はデータをコンピュータシステム100に提供するあらゆる非一時的な有形記憶媒体を示す。そのような記憶媒体の例には、フロッピディスク、磁気テープ、CD−ROM、DVD、Blu−ray Disc、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、あるいは例えばPCMCIAカード等のコンピュータ可読カードが含まれ、そのようなデバイスは、コンピュータモジュール101の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及び/又はデータをコンピュータモジュール101に提供することに更に関係する一時的又は非一時的なコンピュータ可読伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
【0033】
上述したアプリケーションプログラム133の第2の部分及び対応するコードモジュールは、ディスプレイ114上にレンダリングされるかあるいは表される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するように実行される。一般にキーボード102及びマウス103を操作することにより、コンピュータシステム100及びアプリケーションのユーザは、GUIと関連付けられたアプリケーションに制御コマンド及び/又は入力を提供するように機能的に適応可能な方法でインタフェースを操作する。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ117を介して出力された音声プロンプト及びマイク180を介して入力されたユーザボイスコマンドを利用するオーディオインタフェースが更に実現されてもよい。
【0034】
図2は、プロセッサ105及び「メモリ」134を示す詳細な概略ブロック図である。メモリ134は、図1のコンピュータモジュール101によりアクセスされる全てのメモリモジュール(HDD110及び半導体メモリ106を含む)の論理的な集約を示す。
【0035】
コンピュータモジュール101の電源が最初に投入される場合、自己診断(POST)プログラム150が実行する。一般にPOSTプログラム150は、図1の半導体メモリ106のROM149に格納される。ソフトウェアを格納するROM149等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。POSTプログラム150は、コンピュータモジュール101内のハードウェアを調査して適切に機能することを保証し、一般に、正しく動作するためにROM149に更に格納されたプロセッサ105、メモリ134(109、106)及び基本入出力システム(BIOS)ソフトウェアモジュール151をチェックする。POSTプログラム150が正常に実行したら、BIOS151は図1のハードディスクドライブ110を起動する。ハードディスクドライブ110を起動することにより、ハードディスクドライブ110上に常駐するブートストラップローダプログラム152がプロセッサ105を介して実行する。これにより、オペレーティングシステム153は、RAMメモリ106にロードされると動作を開始する。オペレーティングシステム153は、プロセッサ105により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
【0036】
オペレーティングシステム153は、メモリ134(109、106)を管理し、コンピュータモジュール101上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、図1のシステム100で使用可能な種々のメモリは、各処理が効率的に実行できるように適切に使用される必要がある。従って、集約メモリ134は、メモリの特定の部分が割り当てられる方法を示すことを意図せず(特に記載されない限り)、コンピュータシステム100によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
【0037】
図2に示されるように、プロセッサ105は、制御ユニット139、演算論理装置(ALU)140及びキャッシュメモリと呼ばれることもあるローカルメモリ又は内部メモリ148を含む多数の機能モジュールを含む。一般にキャッシュメモリ148は、レジスタ部に複数の記憶レジスタ144〜146を含む。1つ以上の内部バス141は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ105は、接続118を使用してシステムバス104を介して外部デバイスと通信する1つ以上のインタフェース142を更に有する。メモリ134は、接続119を使用してバス104に結合される。
【0038】
アプリケーションプログラム133は、条件付き分岐命令及びループ命令を含む一連の命令131を含む。プログラム133は、プログラム133を実行するために使用されるデータ132を更に含む。命令131及びデータ132は、それぞれ、記憶場所128、129、130及び135、136、137に格納される。命令131及び記憶場所128〜130の相対的な大きさに依存して、特定の命令は、記憶場所130に示された命令により描かれたように単一の記憶場所に格納される。あるいは、命令は、記憶場所128及び129に示された命令部分により描かれたように、各々が別個の記憶場所に格納される多数の部分にセグメント化される。
【0039】
一般にプロセッサ105には、内部で実行される命令のセットを与えられる。プロセッサ105は、命令の別のセットを実行することにより自身が反応する後続の入力を待つ。各入力は、入力デバイス102、103の1つ以上により生成されたデータ、ネットワーク120、102のうちの一方を介して外部ソースから受信したデータ、記憶装置106、109のうちの一方から検索したデータ又は対応する読み取り装置112に挿入された記憶媒体125から検索したデータを含む多数のソースのうちの1つ以上から提供され、その全てが図1に示される。いくつかの例において、命令のセットを実行した結果、データが出力される。実行することは、データ又は変数をメモリ134に格納することを更に含む。
【0040】
ここで説明される方法は、対応する記憶場所155、156、157においてメモリ134に格納される入力変数154を使用する。また、ここで説明される方法は、対応する記憶場所162、163、164においてメモリ134に格納される出力変数161を生成する。中間変数158は、記憶場所159、160、166及び167に格納される。
【0041】
図2のプロセッサ105を参照すると、レジスタ144、145、146、演算論理装置(ALU)140及び制御ユニット139は、プログラム133を構成する命令セットにおいて命令毎に「取り込み、復号及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、復号及び実行サイクルの各々は、以下を含む。
(a)記憶場所128、129、130からの命令131を取り込むかあるいは読み取る取り込み動作。
(b)制御ユニット139が取り込まれた命令を判定する復号動作。
(c)制御ユニット139及び/又はALU140が命令を実行する命令動作。
【0042】
その後、次の命令に対する更なる取り込み、復号及び実行サイクルが実行される。同様に、制御ユニット139が値を記憶場所132に格納するかあるいは書き込むことにより、格納サイクルが実行される。
【0043】
図5〜図10の処理におけるステップ又はサブ処理の各々は、プログラム133の1つ以上の部分と関連付けられ、プログラム133の示された部分に対して命令セットにおいて命令毎に取り込み、復号及び実行サイクルを実行するようにプロセッサ105のレジスタ部144、145、147、ALU140及び制御ユニット139が共に動作することで実行される。
【0044】
あるいは、ここで説明される方法は、説明される方法の機能又は副機能を実行する1つ以上の集積回路等の専用のハードウェアにおいて実現されてもよい。そのような専用のハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ又は1つ以上のマイクロプロセッサ及び関連メモリを含む。
【0045】
図5に、ここで説明される方法を実現するソフトウェアアーキテクチャ500の一例を示す。図5に示されるように、ソフトウェアアーキテクチャ500は、ソフトウェアモジュール501、502、503、504、505、511、550及び599を含む。ソフトウェアモジュール501、502、503、504、505、511、550及び599は、「拡張スペクトルJPEG圧縮器」を実現するために使用される。
【0046】
ソフトウェアアーキテクチャ500のソフトウェアモジュール501、502、503、504、505、511、550及び599の各々は、ハードディスクドライブ110上に常駐し且つプロセッサ105による実行の際に制御されているソフトウェアアプリケーションプログラム133の1つ以上のコードモジュールとして実現される。
【0047】
図5に示されるように、色変換器モジュール501は、必要に応じて入力画像データを適切な処理色空間に変換する。以下に説明する例によれば、色変調器モジュール501は、入力画像データを赤緑青(RGB)色空間に変換する。あるいは、入力画像データは、YCbCr色空間に更に変換されてもよい。DCTユニットモジュール502は、8×8ブロックの単位でRGB入力画像データに対してDCTを実行し、DCT係数を出力する。一実現例において、DCTユニットモジュール502は、JPEG圧縮法を使用して入力画像を圧縮する。上述したように、JPEG圧縮法は、色成分毎に最大12ビット画像に対して規定される。従って、入力画像がDCTユニットモジュール502に送出される前に、画像は、空間領域において上位ビットブレーン部分及び下位ビットプレーン部分に分割される。次にDCTユニットモジュール502は、空間領域の上位ビットプレーン部分及び下位ビットプレーン部分を別個に周波数領域等価物815、816へと変換する。量子化器モジュール305は、プロセッサ105の実行下で、2つの量子化テーブル512を使用してDCT係数の8×8空間領域ブロックを量子化する。2つの量子化テーブル512は、JPEG量子化テーブル、及び、修正された量子化テーブルを含む。量子化器モジュール503は、量子化係数を出力する。量子化テーブル827及び828の例をそれぞれ図8C及び図8Dに示す。量子化テーブル827及び828は、プロセッサ105によりメモリ106からアクセスされる。
【0048】
量子化器503は、図3Bに示されたようなジグザグな状態で走査することで、より低い周波数成分からより高い周波数成分に量子化係数の8×8ブロックを64個の1次元の量子化係数に更に再配列する。次に量子化係数は、区画テーブル514に従って区画器モジュール504により品質区画に分割される。区画は視覚品質軸に沿って行われる。これは、区画がDCT係数の周波数レベルに従って実行されることを意味する。特定の一実現例において、例えば、DCTデータのDC係数は区画を割り当てられ、DCTデータのAC1−AC3は第2の区画を割り当てられ、DCTデータのAC4−AC7は第3の区画を割り当てられる。区画器モジュール504は、ハフマン符号器モジュール505又はRAW符号器モジュール550のいずれかに品質区画を供給する。
【0049】
ハフマン符号器モジュール505は、プロセッサ105の実行下で、ハフマンテーブル513及びあらゆる適切なハフマン符号化法を使用して品質区画において入力1次元データを符号化する。ハフマン符号器モジュール505は、符号化データ、各符号化データの長さ(ビットの数で表された「コード長」)及び対応する符号化データが割り当てられる区画を表す番号(以下「区画番号」と呼ぶ)を出力する。RAW符号器モジュール550は、品質区画において1次元データを単一の区画として符号化し、生符号化データ及び対応する符号化データが割り当てられる区画を表す区画番号を出力する。
【0050】
「区画番号」に基づいて、区画制御器モジュール511は、「区画番号」で示された区画に対応する圧縮データをメモリ106内に構成された圧縮メモリモジュール599に書き込む。圧縮メモリモジュール599は区画(例えば、842、849)に分割され(図8Fを参照)、符号化データの各々は、そのデータの区画番号に対応する区画に書き込まれる。
【0051】
次に、図6を参照して16ビット画像を格納する方法600を説明する。この方法600は、ハードディスクドライブ110上に常駐し且つプロセッサ105により実行される際に制御されているソフトウェアモジュール501、502、503、504、505、511、550及び599により実現される。上述したように、ソフトウェアモジュール501、502、503、504、505、511、550及び599は、拡張スペクトルJPEG圧縮器を実現し、上述した形式で16ビット画像を符号化する。ソフトウェアモジュール501、502、503、504、505、511、550及び599は、ソフトウェアアプリケーションプログラム133の1つ以上のコードモジュールを形成する。
【0052】
この方法600は入力ステップ610において開始し、高ビット深度画像を含む入力が色変調器モジュール501からDCTユニットモジュール502により受信される。分割ステップ620において、DCTユニットモジュール502は、プロセッサ105の実行下にて、画像を符号化ブロックとしても既知である8×8画素のブロックに分割する。符号化ブロックは、メモリ106又は記憶装置109に格納される。判断ステップ630において、プロセッサ105が処理対象の符号化ブロックが更にあると判定する場合、方法600はステップ640に進む。さもなければ、方法600は終了する。
【0053】
変換ステップ640において、DCTユニットモジュール502は、プロセッサ105の実行下にて、離散コサイン変換(DCT)を現在の符号化ブロックに適用する。DCTは、浮動小数点数又は固定小数点方式のいずれかを使用して適用される。ステップ640におけるDCTユニットモジュール502からの出力は、高ビット深度DCT係数データのブロックである。16ビット画像の場合、ステップ640でDCTユニットモジュール502により出力された係数データのブロックは、整数を使用してDCT係数毎に最大23ビットである。DCTユニットモジュール502により出力された高ビット深度DCT係数データのブロックは、メモリ106に格納される。
【0054】
次に符号化ステップ650において、DCTユニットモジュール502により出力された高ビット深度係数DCT係数データが符号化される。図7を参照して、ステップ650で実行されたような高ビット深度係数DCT係数データを符号化する方法700を以下に詳細に説明する。図8Aに示された高ビット深度DCTデータ811のブロックを参照して、方法700を例として説明する。
【0055】
図8A〜図8Fは、方法700の各ステップにおける高ビット深度DCTデータ811のブロックの状態を示す。この方法700は、ハードディスクドライブ110上に常駐し且つプロセッサ105により実行される際に制御されているソフトウェアモジュール503、504、505、511、550及び599により実現される。ソフトウェアモジュール501、502、503、504、505、511、550及び599は、ソフトウェアアプリケーションプログラム133の1つ以上のコードモジュールを形成する。
【0056】
方法700は入力ステップ701において開始し、量子化器モジュール503が画像の高ビット深度周波数領域表現を受信するステップを実行する。特に量子化器モジュール503は、DCTユニットモジュール502により出力された高ビット深度DCT係数データ811のブロックを含む入力を受信する。
【0057】
分割ステップ710において、量子化器モジュール503は、プロセッサ105の実行下にて、高ビット周波数領域表現を上位ビットプレーン部分及び下位ビットプレーン部分に分割するステップを実行する。図8Aの例によれば、ステップ710において、量子化器モジュール503は、図8Aに示されるように高ビット深度DCT係数データ811のブロックを下位ビットプレーン部分816及び上位ビットプレーン部分815に分離する。一実現例において、上位ビットプレーン部分815は、標準的なJPEGハフマンテーブルを使用して符号化される最大ビット数に対応する15ビットの情報を含む。この場合、下位ビットプレーン部分816は残りのビットの情報を含む。16ビット画像の場合、下位ビットプレーン部分816は8ビットの情報を含む。
【0058】
量子化ステップ720において、量子化器モジュール503は、プロセッサ105の実行下にて、量子化処理をDCT係数データ811の下位ビットプレーン部分816及び上位ビットプレーン部分815の双方に適用する。それに応じて、高ビット深度周波数領域表現(すなわち、高ビット深度DCT係数データ811)の上位ビットプレーン部分815及び下位ビットプレーン部分816は、ステップ720で量子化される。図8Bは、ステップ720における量子化後のDCT係数データ811のブロックを示す。
【0059】
ステップ720において、上位ビットプレーン部分815を量子化するために第1の量子化テーブルを使用し、下位ビットプレーン部分816を量子化するために第2の量子化テーブルを使用する。特に、上位ビットプレーン部分815に対して、図8Cに示されるような修正された標準的なJPEG量子化テーブル827は、上位ビットプレーン部分の一部のより低い周波数DCT係数が量子化されていない状態で量子化データ825を生成するために使用される。量子化処理において、より高い周波数DCT係数829のビットの一部が除外される。この特定の例において、量子化は、DCT係数の視覚的重要性又は周波数レベルに依存する。DC成分及びより低いAC係数は量子化されず、DCT係数の周波数レベルが上がるにつれ、量子化レベルは上がる。下位ビットプレーン部分においてより低い周波数DCT係数に対応するデータ826(例えば、DCレベル係数及びAC1−AC3レベル係数に対応するデータ)の一部のみが量子化されていない状態となるように、下位ビットプレーン部分816は図8Dに示されるようなテーブル828を使用して量子化される。量子化処理は、下位ビットプレーン部分の所定の周波数レベル824より高い全てのDCT係数をゼロに量子化することにより、DCT係数824のより高い周波数成分におけるビットの部分を除外する。
【0060】
上述したように、高ビット深度画像は、8ビット画像より精細な階調を提供するために望ましい。そのようなより精細な階調は、低速変化する階調度情報を含む画像の領域において特に顕著である。ビット深度に関して、余分な階調度レベルは、画像に対するビットデータの低ビットプレーン部分内で符号化される。そのような余分な階調度レベルは、画像データの空間領域及びDCT領域の双方において発生する。また、DCT領域内において、種々のDCT係数は画像の種々のエネルギー周波数を符号化する。DC係数及びより低いごく僅かなAC係数は、空間領域において低速変化する階調度に対応する画像の低周波数エネルギーの殆どを符号化する。
【0061】
上述した余分な階調度レベル及び種々のエネルギー周波数を符号化する種々のDCT係数に基づいて、量子化ステップ720に後続して格納される必要のあるDCT領域内の下位ビットプレーンデータの最も関連する部分を判定することが可能である。一実現例において、DCT係数データ811のDC係数及び最初の5つのAC係数の下位ビットプレーン部分は、DCT係数データ811の量子化に後続してステップ720でメモリ106に格納される。より大きな係数番号を含むDCT係数に対して符号化された下位ビットプレーン情報はあまり関連しない。
【0062】
区画ステップ730において、区画器モジュール504は、プロセッサ105の実行下にて、DCT係数データ811のブロックの量子化上位ビットプレーン部分データ825及び量子化下位ビットプレーン部分データ826をそれぞれ図8Eに示されるような複数の品質区画(上位ビットプレーン部分831及び下位ビットプレーン部分836)に区画するステップを実行する。一般に、量子化上位ビットプレーン部分データ825及び量子化下位ビットプレーン部分データ826は、ステップ730で少なくとも3つの品質区画に区画される。上位ビットプレーン部分データ825は、図4AのDCT係数410の区画と同様の方法で全体の画質との関連性を低下させることでソートされた上位ビットプレーン部分831のスペクトル区画に区画される。下位ビットプレーン部分データ826の場合、データ826の部分は、図8Eに示されるような単一の区画836に区画される。
【0063】
一実現例において、高ビット深度周波数領域表現は、上位ビットプレーン部分815及び下位ビットプレーン部分816が形成される前にステップ710で1つ以上の品質区画(例えば、831、836)に区画される。そのような一実現例において、上述したステップ710及び730は実質的に入れ替えられる。
【0064】
符号化ステップ740において、下位ビットプレーン部分データ826の上位ビットプレーン部分831の品質区画はハフマン符号器モジュール505により符号化され、上位ビットプレーン部分データ825の品質区画836はRAW符号器モジュール550により符号化される。その後、符号化された品質区画は、各区画(例えば、833及び836)の個々の品質の重要性に従って、プロセッサ105により共にソートされた順に区画制御器モジュール511により圧縮メモリモジュール599に格納される。符号化された品質区画を格納する前に、プロセッサ105は、視覚的重要性の低い順に1つ以上の品質区画を配置するステップを実行する。その後、配置された品質区画は圧縮メモリモジュール599に格納される。
【0065】
図8F及び図8Gは、各品質区画(例えば、846)からの符号化データがステップ740で合成され且つ格納される方法を示す。図8Fに示されるように、下位ビットプレーン部分データ826及び上位ビットプレーン部分データ825から導出された下位ビットプレーン部分846及び上位ビットプレーン部分841のハフマン符号化された品質区画の2つのセットは、それぞれ、下位ビットプレーン部分836の区画及び上位ビットプレーン部分831の区画の品質性に基づいて、区画制御器モジュール511によりステップ740で区画861の共通のセットに合成される。各区画(例えば、833)の個々の品質の重要性は、特定の区画が再構成画像の全体の画質に影響を与える情報量である。一実現例において、区画の品質の重要性は、視覚品質に基づいて予め判定される。平均二乗誤差(MSE)、ピーク信号対雑音比(PSNR)、心理視覚評価又は他のあらゆる適切な方法等の視覚品質測定値は、区画の品質の重要性を判定するために使用される。
【0066】
量子化下位ビットプレーン部分836が入るべき場所を判定するため、区画836は、上位ビットプレーン部分831において所定の数の場所に挿入される。例えば、図8Gを参照すると、挿入された下位ビットプレーン部分は、「セグメント1」と呼ばれ、区画AC35−AC44と区画AC45−AC54との間に挿入される。「セグメント1」が入るべき場所を判定する実現例において、例えば「セグメント1」は、区画7と区画8との間、同様に、区画10と区画11との間に更に挿入しても良い。その後、各高ビットプレーンの視覚品質測定値は、種々の場所においてDCからAC63及び「セグメント1」を区画する。この特定の例において、区画AC35−AC44と区画AC45−AC54との間の「セグメント1」を含む上位ビットプレーン区画のPSNR等の視覚品質測定値は3つの構成の中で最も高い。従って、この場所は、下位ビットプレーン区画852に対してプロセッサ105により選択される。
【0067】
区画テーブル514は、所定の視覚品質を使用して下位ビットプレーン部分データ826及び上位ビットプレーン部分データ825の双方の品質区画をランク付けすることでプロセッサ105により構成される。一実現例において使用された区画テーブル514を図8Gに示す。図8Gに示されるように、区画テーブル514の区画番号は各区画の品質の重要性を示し、1が最高品質を示し、11が最低品質を示す。ハフマン符号化された区画861における画像データをプロセッサ105の復号器が復号化できるように、区画テーブル514はメモリ106に格納される。一実現例において、上位ビットプレーン部分データ825に対する上位ビットプレーン部分831の品質区画に対応する上位ビットプレーン部分841のハフマン符号化された品質区画は、区画842、843、844〜最後の区画849を含み、下位ビットプレーン部分826に対する品質区画836に対応し且つ区画852を含むハフマン符号化された品質区画846は、各区画の区画番号に従って上位ビットプレーン部分841のハフマン符号化された区画間に区画852を差し込むことで品質区画861の共通のセットに合成される。
【0068】
一実現例において、ハフマン符号化された上位ビットプレーン部分841における区画852の位置は、ユーザにより判定される。ユーザは、結果として得られる復号化JPEG画像において下位ビットプレーン852から区画の種々の位置の効果を評価し、ユーザが検出するようなJPEG画像に対する種々の位置において挿入された下位ビットプレーン区画により発生した視覚歪みを最小限にする位置を選択する。
【0069】
別の実現例において、区画852の位置は、PSNR測定値等の視覚品質測定値を使用して判定される。品質区画852は、所定数の場所(例えば、3箇所)に挿入される。プロセッサ105は、図8Gの品質区画を使用して、区画10と区画11との間、区画8と区画10との間及び区画7と区画8との間にそれぞれ挿入された下位ビットプレーン区画852を含むハフマン符号化された品質区画861のPSNR測定値を算出する。データの上位ビットプレーンの3つの異なるPSNR測定値を下位ビットプレーン区画852の種々の位置と比較することにより、最も高いPSNR測定値を与える区画852の位置はハフマン符号化のために選択される。例によれば、区画8と区画10との間の位置は、下位ビットプレーン区画852に対してプロセッサ105により選択される。
【0070】
図9は、一実現例においてメモリ106内に格納されたハフマン符号化された品質区画(例えば、842、843、844、852、849)を示す概略図である。圧縮画像を表す品質区画(例えば、842、843、844、852、849)からのデータを含むメモリ106は、複数のヘッダ及びメモリチャンク(memory chunk)から構成される。各「メモリチャンク」は特定の品質区画ヘッダに対応する。区画ヘッダは、区画番号、区画の長さ、関連するメモリチャンクにアクセスする方法等の区画情報又は必要に応じて他の更なる情報を格納する。「メモリチャンク」という用語は、圧縮画像データを格納するために、必ずしも連続しないが論理的に連続したメモリのチャンクを形成するように共にリンクしたメモリの1つ以上のブロックを示す。区画毎のハフマン符号化されたDCTデータは、それぞれのメモリチャンク内に格納される。例えば本発明の例において、ハフマン符号化された区画データ842を格納するチャンク951は「区画1」に対するヘッダ902と関連付けられ、ハフマン符号化された区画データ852を格納するチャンク959は、「区画9」に対するヘッダ912と関連付けられる。
【0071】
特定のメモリターゲットが必要な場合、メモリは、最低品質の区画から始まる品質区画を削除することで解放される。このように、最後の出力画像の画質は、メモリリソース要件を満たすのに必要とされるのと同程度のみ低下する可能性がある。
【0072】
上述の方法は、高ビット深度画像を圧縮及び格納するために使用される。上述したように、ソフトウェアモジュール501、502、503、504、505、511、550及び599は、「拡張スペクトルJPEG圧縮器」を実現するために使用される。図7において説明した方法700は、ステップ740で合成及び格納された各品質区画(例えば、846)からの符号化データを伸張するように逆にされる。
【0073】
次に、図10を参照して、方法600に従って符号化された高ビット深度係数データを伸張する方法1000を説明する。伸張モジュールは、プロセッサ105及びメモリ106を含む圧縮データを受信する別のコンピュータ上に常駐する。伸張モジュールは、搭載プロセッサ及び搭載メモリを含むプリンタ115等のレンダリングデバイス上に更に常駐しても構わない。図8A〜図8Gの例を参照して、この方法1000を説明する。この方法1000は、ステップ740で合成及び格納された各品質区画(例えば、846)からの符号化データを伸張するために使用される。
【0074】
方法1000は、ハードディスクドライブ110上に常駐し且つプロセッサ105により実行される際に制御されているソフトウェアアプリケーションプログラム133の1つ以上のコードモジュールとして実現される。
【0075】
方法1000は合成ステップ1010において開始し、上位ビットプレーン部分データ825に対する品質区画831に対応する上位ビットプレーン部分841のハフマン符号化された品質区画がプロセッサ105によりメモリ106に格納されるDCTデータの高ビットプレーン部分に復号化及び合成される。図8A〜図8Gの例によれば、ステップ1010で生成されたデータの部分は、図8Bに示されるような量子化データ825に少なくとも類似するかあるいは実質的に同一である。図8Gを参照して、「セグメント1」とラベル付けされた区画9以外の全ての区画は、DCTデータの量子化高ビットプレーン部分を形成するようにプロセッサ105により合成され、メモリ106に格納される。下位ビットプレーン部分データ(例えば、DCレベル係数及びAC1−AC3レベル係数に対応するデータ)を含む区画の場所は、別のコンピュータ上に常駐する圧縮モジュールから受信される。
【0076】
次に合成ステップ1020において、下位ビットプレーン部分データ826に対する品質区画836に対応するハフマン符号化された品質区画846は、復号化され、メモリ106に格納されるDCTデータの第2の下位ビットプレーン部分に合成される。ステップ1020で生成されたデータの下位ビットプレーン部分は、図8Bに示されるようなデータ826に少なくとも類似するかあるいは実質的に同一である。図8Gを参照して、「セグメント1」とラベル付けされた区画9は、DCTデータの量子化高ビットプレーン部分を生成するために使用され、メモリ106に格納される。
【0077】
方法1000は逆量子化ステップ1030に継続し、逆量子化がプロセッサ105によりそれぞれステップ1010及び1020で構成され且つ格納されたDCTデータの上位ビットプレーン部分及び下位ビットプレーン部分の双方に適用される。あらゆる適切な逆量子化法はステップ1030で使用される。一実現例は、例えば量子化テーブル827等の上位ビットプレーン量子化テーブルにおいて上位ビットプレーンDCT係数の各々に対応する値を掛けることでステップ1010により構成されたDCTデータの上位ビットプレーン部分に対して逆量子化を実行し、ステップ1020により構成されたDCTデータの下位ビットプレーン部分は、例えば量子化テーブル828等の下位ビットプレーン量子化テーブルにおいて下位ビットプレーンDCT係数の各々に対応する値を掛けることで逆量子化される。
【0078】
合成ステップ1040においては、DCTデータの上位ビットプレーン部分及び下位ビットプレーン部分は、メモリ106においてアクセスされ、係数データの高ビット深度DCTブロックを生成するようにプロセッサ105により合成される。係数データの高ビット深度DCTブロックはメモリ106に格納される。図8A〜図8Gの例によれば、ステップ1040で生成された係数データの高ビット深度DCTブロックは、図8Aに示されるような高ビット深度DCT係数データ811に少なくとも類似するかあるいは実質的に同一である。
【0079】
次にステップ1050において、ステップ1040で生成された高ビット深度DCT係数データのブロックは、あらゆる適切な逆DCT法を使用して8×8画素画像ブロックに変換される。
【0080】
一実現例において、方法1000を実行するのに適した対応する修正されたJPEG伸張器を利用できない場合、標準的なJPEG伸張器は、圧縮データが前処理された後に使用される。そのような一実現例によれば、符号化ブロック毎に、前処理は、DCTデータの下位ビットプレーン部分と関連付けられた区画を破棄すること、及び、区画されたDCT係数から構成される残りの区画を単一のメモリ区画に連結することから構成される。
【0081】
ここで説明した構成は、コンピュータ業界及びデータ処理業界、並びに特に画像処理に適用可能である。
【0082】
上記の記述は本発明のいくつかの実施形態のみを説明し、本発明の範囲及び趣旨から逸脱せずに、変形及び/又は変更がいくつかの実施形態に対して行なわれる。実施形態は、限定するものではなく例示するものである。例えば、種々の入力画像に対して方法600と関連付けられた多くのパラメータを変更することが可能である。変形は、DCTデータの下位ビットプレーン部分及びDCTデータの上位ビットプレーン部分の量子化の量及び種類を含みうるがそれらに限定されない。例えば、DCT係数データの上位ビットプレーン部分及び下位ビットプレーン部分を量子化するために種々の量子化テーブルを使用するのではなく、方法600は、DCT係数データの上位ビットプレーン部分及び下位ビットプレーン部分の双方を量子化するためにたった1つの量子化テーブルを使用するように変更される。
【0083】
また、DCTデータの下位ビットプレーン部分及び上位ビットプレーン部分の区画戦略は変更される。例えば、単一の区画を使用するのではなく、DCTデータの下位ビットプレーン部分は、DCT係数、ビットプレーンレベル又は双方の組合せに基づいて多数の品質区画に区画される。
【技術分野】
【0001】
本発明は、画像処理に関し、特にビットマップ画像を格納する方法及び装置に関する。また本発明は、ビットマップ画像を格納するコンピュータプログラムを記録したコンピュータ可読媒体を含むコンピュータプログラム製品に関する。
【背景技術】
【0002】
現在のビットマップ画像は、一般に色チャネル形式毎に8ビットに符号化される。この場合、特定の色チャネルに対して、合計で256階調を表現できる。一般に、多くの写真、表示及び印刷の要求に対して、チャネル毎の256階調は十分である。
【0003】
しかし、高ビット深度の医療画像、図形表示及び大判プリンタの使用が増加するにつれ、特定の色チャネル内でより精細なレベルの色の階調度を提供するために色チャネル画像毎に16ビットを符号化する方法が必要である。人間の眼が色の階調度を256より多い数のレベルに分類できるため、より精細なレベルの色の階調度が必要である。
【0004】
16ビット画像を符号化する従来の方法は多数ある。全ての従来の方法は、空間領域において主画像及び残差画像を使用することで16ビット画像を符号化する。主画像と残差画像とを合成し、元の(又は元の非可逆的近似)16ビット画像を生成する。
【0005】
Joint Photographic Experts Group(JPEG)は、ビットマップ画像に対する非可逆的圧縮の方法を規定する。JPEG圧縮により、画像データの周波数領域符号化を使用してビットマップ画像を非可逆的圧縮できる。一例として、図3Aは、ビットマップ画像301の一部を示す。一般的に、JPEG圧縮処理中、ビットマップ画像301は、最初に8×8画素の符号化ブロック(例えば、311)に分割される。そして、離散コサイン変換(DCT)が各符号化ブロックに適用され、8×8ブロックの周波数領域係数を生成する。図3Bは、DCTを符号化ブロック311に適用することで生成された8×8ブロック305の周波数領域係数を示す。図3Bに示されるように、ブロック305は、位置(0,0)に位置付けられたDC係数315及びジグザグな順序325で配置された63個のAC係数(例えば、316)を含む。特定のAC係数(例えば、316)の順序が高いほど、特定のAC係数が符号化するエネルギーの周波数は高い。空間領域において、画像内の高周波数エネルギーは高速変化する値を表し、低周波数エネルギーは低速変化する階調度を表す。
【0006】
DCT変換ステップに後続して、次に64個のDCT係数は量子化テーブルを使用して量子化される。一般に量子化テーブルは、高次AC係数を更に量子化する。更なる量子化は、AC係数が符号化するより高い周波数エネルギーを一般により少ない数のビットで表せるためである。DCT係数の種々のレベルの量子化は、最後の符号化画像の大きさを調整するために利用される。最後に、量子化されたDCT係数は、ハフマン符号化等を使用して可逆的に符号化される。
【0007】
量子化とは別に、最終的な符号化画像の大きさを調整するもう1つの方法は、画像のDCT係数を切り捨てる方法であり、最も高い周波数レベルの係数から開始し、所望のメモリターゲットに達した時に停止する。画像中の視覚情報の大半がDC係数及びより低いAC係数内で符号化されるため、そのような方法は機能する。
【0008】
次に、図4A及び図4Bを参照して、画像をスペクトルJPEG符号化する方法を説明する。図4Aは、8ビット画像の場合の符号化ブロックのDCT係数410を示す。そのようなDCT符号化ブロック毎に、DCT係数410は、画像の低下する視覚品質のスペクトルバンド内に格納される。DCT係数の順位が増加するにつれ、画像の視覚品質へのDCT係数の影響が低下することに直接関連する。従って、DCT係数410は、全体の画質への関連性を低下させることでソートされるスペクトル区画(例えば、415及び425)にグループ化される。そのような構成において、画質は、上位スペクトル区画を削除することで徐々に低下される。このように、あまり関連しない区画を最初に除外することで適応的にメモリを解放することが可能である。例えば、余分なメモリが必要な場合、図4Bにおける区画AC55−AC63が最初に削除され、適応的にメモリを解放する。区画AC55−AC63は、視覚的に最も重要でないため削除される。メモリが更に必要な場合、次に視覚的に最も重要でない区画AC45−AC54が削除され、更なるメモリを解放する。
【0009】
図4Aは、415及び425として示された区画1及び2によるDCT係数410の区画を示す。図4Bは、図4AのDCT係数410に対する区画方式を示すテーブルである。図4Bに示されるように、区画1(415)はDC係数を含み、区画2(425)はAC係数AC1、AC2及びAC3を含む。
【0010】
JPEG圧縮法の1つの制限は、それが色成分毎に最大12ビット画像に対してのみ規定されることである。
【0011】
それ故、高ビット深度画像(すなわち、8ビットより大きい)を符号化する方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の目的は、既存の構成の1つ以上の欠点を実質的に克服するかあるいは少なくとも改善することである。
【0013】
空間領域において画像を8ビット画像に縮小せずに高ビット深度画像を符号化する方法を提供することで上述の問題に対処しようとする構成を開示する。更に開示される方法により、標準的なJPEG伸張器を使用してそのような高ビット深度符号化画像を伸張できる。
【課題を解決するための手段】
【0014】
本発明の一態様によれば、画像の格納する方法であって、
画像の周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は複数のビットプレーンを有する
周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割するステップと、
ここで、前記ビットプレーンの第1のセットはビットプレーンの第2のセットより高いビットプレーンのセットである;
ビットプレーンの第1のセット及びビットプレーンの第2のセットの各々を複数の区画に区画するステップと、
ビットプレーンの第2のセットからの少なくとも1つの区画を、ビットプレーンの第1のセットの複数の区画に挿入し、画像の複数の配置された区画を生成するステップと、
画像の配置された区画を格納するステップと、
を備える方法が提供される。
【0015】
本発明の別の態様によれば、画像を格納する方法であって、
画像の23ビットの周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は23ビットのビットプレーンを有する
周波数領域表現を15ビットのビットプレーンの第1のセット及び8ビットのビットプレーンの第2のセットに分割するステップと、
ここで、前記15ビットのビットプレーンの第1のセットは8ビットのビットプレーンの第2のセットの上位のビットプレーンのセットである;
ビットプレーンの第1のセット及びビットプレーンの第2のセットの各々を複数の区画に区画するステップと、
ビットプレーンの第2のセットからの少なくとも1つの区画をビットプレーンの第1のセットの複数の区画に挿入し、画像の複数の配置された区画を生成するステップと、
画像の配置された区画を格納するステップと、
を備える方法が提供される。
【0016】
本発明の更に別の態様によれば、画像を格納する装置であって、
画像の高ビット深度周波数領域表現を受信する手段と、
ここで、前記高ビット深度周波数領域表現は複数のビットプレーンを有する;
高ビット深度周波数領域表現をビットプレーンの第1のビットプレーン部分のセット及びビットプレーンの第2のビットプレーン部分のセットに分割する手段と、
ここで、前記ビットプレーンの第1のビットプレーン部分のセットはビットプレーンの第2のビットプレーン部分のセットより上位のビットプレーンのセットである;
ビットプレーンの第1のビットプレーン部分のセット及びビットプレーンの第2のビットプレーン部分のセットの各々を複数の区画に区画する手段と、
ビットプレーンの第2のビットプレーン部分のセットからの少なくとも1つの区画をビットプレーンの第1のビットプレーン部分のセットの複数の区画に挿入し、画像の複数の配置された区画を生成する手段と、
画像の配置された区画を格納する手段と、
を備える装置が提供される。
【0017】
本発明の更に別の態様によれば、画像を格納するシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するために前記メモリに接続されたプロセッサと
を有するシステムであって、
前記プロセッサは、前記コンピュータプログラムにおける、
前記画像の高ビット深度周波数領域表現を受信する命令と、
ここで、高ビット深度周波数領域表現は複数のビットプレーンを有する;
前記高ビット深度周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割する命令と
ここで、前記ビットプレーンの第1のセットは前記ビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画する命令、
前記ビットプレーンの第2のセットからの少なくとも1つの区画を前記ビットプレーンの第1のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する命令、
前記画像の配置された区画を格納する命令、
を実行することを特徴とするシステムが提供される。
【0018】
本発明の他の態様が更に開示される。
【図面の簡単な説明】
【0019】
【図1】、
【図2】図1及び図2は、説明される構成が実施可能である汎用コンピュータシステムの概略ブロック図を形成する図。
【図3A】図3Aは、JPEG符号化のために符号化ユニットに分割されるビットマップ画像を示す概略図。
【図3B】図3Bは、8×8DCTブロックを示す概略図。
【図4A】図4Aは、8ビット画像の場合のDCT領域における品質区画を示す概略図。
【図4B】図4Bは、一例に係る8ビット画像の場合の区画方式を示すテーブルを示す図。
【図5】図5は、説明する構成を実施するソフトウェアアーキテクチャの一例を示す図。
【図6】図6は、16ビット画像を格納する方法を示すフローチャート。
【図7】図7は、高ビット深度DCT係数データを符号化する方法を示すフローチャート。
【図8A】図8Aは、高ビットプレーン部分及び低ビットプレーン部分に区画される高ビット深度DCT係数データのブロックを示す概略ブロック図。
【図8B】図8Bは、高ビットプレーン部分及び低ビットプレーン部分を量子化した後の図8AのDCT係数データを示す概略ブロック図で。
【図8C】図8Cは、修正された標準的なJPEG量子化テーブルを示す図。
【図8D】図8Dは、図8AのDCT係数データの低ビットプレーン部分を量子化するために使用する量子化テーブルを示す図。
【図8E】図8Eは、品質区画に区画された図8Aの高ビットプレーン部分及び低ビットプレーン部分を示す概略ブロック図。
【図8F】図8Fは、区画の共通のセットを形成するように合成された品質区画の2つのセットを示す図。
【図8G】図8Gは、区画テーブルの一例を示す図。
【図9】図9は、メモリ内に格納された品質区画を示す概略図。
【図10】図10は、図6の方法に従って符号化されたDCTデータのブロックを伸張する方法を示すフローチャート。
【発明を実施するための形態】
【0020】
次に、以下の図面を参照して本発明の1つ以上の実施形態を説明する。
【0021】
添付の図面のうちのいずれか1つ以上において同一の図中符号を有するステップ及び/又は機能を参照する場合、これらのステップ及び/又は機能は、逆の意図がない限りこの説明のために同一の機能又は動作を有する。
【0022】
上述したように、JPEG圧縮法の1つの制限は、それが色成分毎に最大12ビット画像に対してのみ規定されることである。このJPEG圧縮法は、16ビット以上の画像を取り入れるように拡張される。特にJPEG圧縮法は、高ビット深度画像をJPEG対応の2つ以上の低ビット深度画像に区画することにより、上述の残差画像の方法と組み合わせて拡張される。その後、低ビット深度画像は別個にJPEG符号化される。そのような区画は、主画像及び1つ以上の残差画像を含む。しかし、高ビット深度画像の残差画像は、一般に非常にノイズが多いため、JPEG圧縮に適さない。
【0023】
2つの部分にビット区画される高ビット深度値の場合、高次ビットプレーンを表すより上位のビット部分を、以下において「上位ビットプレーン部分」と呼び、低次ビットプレーンを表すより下位のビット部分を「下位ビットプレーン部分」と称する。
【0024】
図5〜図10を参照して、高ビット深度画像(すなわち、8ビットより大きいビット深度を有する)を格納する方法を以下に説明する。説明される方法は、高ビット深度画像を圧縮するJPEG圧縮器を利用し、図3A、図3B、図4A及び図4Bを参照して上述したスペクトル区画JEPG符号化法の拡張部分である。16ビット画像を参照して、方法を以下において例として説明する。しかし、説明される方法は、他の高ビット深度画像に拡張されてもよい。
【0025】
図1及び図2は、ここで説明される方法を実施可能な汎用コンピュータシステム100を示している。図1に示されるように、コンピュータシステム100は、コンピュータモジュール101、キーボード102、マウスポインタデバイス103、スキャナ120、カメラ127及びマイク180等の入力デバイス、並びにプリンタ115、表示装置114及びスピーカ117を含む出力デバイスを備える。外部変復調器(モデム)送受信機デバイス116は、接続121を介して通信ネットワーク120と通信するためにコンピュータモジュール101により使用される。通信ネットワーク120は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク(WAN)又は専用WANである。接続121が電話線である場合、モデム116は従来の「ダイヤルアップ」モデムである。あるいは、接続121が大容量(例えば、ケーブル)接続である場合、モデム116はブロードバンドモデムである。無線モデムは、通信ネットワーク120に無線接続するために更に使用される。
【0026】
コンピュータモジュール101は、一般に、少なくとも1つのプロセッサユニット105及びメモリユニット106を含む。例えばメモリユニット106は、半導体ランダムアクセスメモリ(RAM)及び半導体読み出し専用メモリ(ROM)を有する。コンピュータモジュール101は、ビデオディスプレイ114、スピーカ117及びマイク180に結合するオーディオ/ビデオインタフェース107、キーボード102、マウス103、スキャナ120、カメラ127及び選択的にジョイスティック又はヒューマンインタフェースデバイス(不図示)に結合する入出力(I/O)インタフェース113、並びに外部モデム116及びプリンタ115用のインタフェース108を含む複数のI/Oインタフェースを更に含む。いくつかの実現例において、モデム116は、インタフェース108等のコンピュータモジュール101内に組み込まれる。コンピュータモジュール101は、接続123を介してコンピュータシステム100がローカルエリアネットワーク(LAN)として既知であるローカルエリア通信ネットワーク122に接続できるようにするローカルネットワークインタフェース111を更に有する。図1に示されるように、ローカル通信ネットワーク122は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えたデバイスを含むワイドネットワーク120に接続124を介して更に結合する。ローカルネットワークインタフェース111は、Ethernet(登録商標)回路カード、Bluetooth(登録商標)無線装置又はIEEE802.11無線装置を備えるが、多数の他の種類のインタフェースがインタフェース111に対して実施されてもよい。
【0027】
I/Oインタフェース108及び113は、直列接続性及び並列接続性のいずれか一方又は双方を提供する。一般に直列接続性は、USB(Universal Serial Bus)規格に従って実現され、対応するUSBコネクタ(不図示)を有する。記憶装置109が提供され、一般にハードディスクドライブ(HDD)110を含む。フロッピディスクドライブ及び磁気テープドライブ(不図示)等の他の記憶装置が更に使用されてもよい。オプションのディスクドライブ112は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク(例えば、CD−ROM、DVD、Blu−ray DiscTM)、USB−RAM、取り外し可能な外部ハードドライブ及びフロッピディスク等のポータブルメモリ装置は、システム100に対する適当なデータのソースとして使用される。
【0028】
コンピュータモジュール101の構成要素105〜113は、一般に、相互接続バス104を介して通信し、結果として当業者に既知であるコンピュータシステム100の動作の従来のモードから得られる方法で通信する。例えばプロセッサ105は、接続118を使用してシステムバス104に結合される。同様に、メモリ106及び光ディスクドライブ112は、接続119によりシステムバス104に結合される。ここで説明する構成が実施可能なコンピュータの例には、IBMのPC及び互換性のあるもの、Sun Sparcstations、Apple MacTM又は同様のコンピュータシステムが含まれる。
【0029】
ここで説明される方法は、コンピュータシステム100を使用して実現される。説明される図5〜図10の処理は、コンピュータシステム100内で実行可能な1つ以上のソフトウェアアプリケーションプログラム133として実現される。特に、ここで説明される方法のステップは、コンピュータシステム100内で実行されるソフトウェア133で命令131(図2を参照)により実施される。ソフトウェア命令131は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成される。ソフトウェアは2つの別個の部分に更に分割され、第1の部分及び対応するコードモジュールは説明される方法を実行し、第2の部分及び対応するコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
【0030】
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読媒体に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム100にロードされ、コンピュータシステム100により実行される。そのようなソフトウェアを有するコンピュータ可読媒体又はコンピュータ可読媒体上に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム100においてコンピュータプログラムを使用することにより、ここで説明される方法を実現する有利な装置を実施することが好ましい。
【0031】
一般にソフトウェア133は、HDD110又はメモリ106に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム100にロードされ、コンピュータシステム100により実行される。従って、例えばソフトウェア133は、光ディスクドライブ112により読み出される光学的に読み出し可能なディスク記憶媒体(例えば、CD−ROM)125上に格納される。
【0032】
いくつかの例において、アプリケーションプログラム133は、1つ以上のCD−ROM125上でユーザが符号化したものに供給され、対応するドライブ112を介して読み出されるか、あるいはユーザによりネットワーク120又は122から読み出される。また、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム100に更にロードされる。コンピュータ可読記憶媒体は、実行及び/又は処理するために記録された命令及び/又はデータをコンピュータシステム100に提供するあらゆる非一時的な有形記憶媒体を示す。そのような記憶媒体の例には、フロッピディスク、磁気テープ、CD−ROM、DVD、Blu−ray Disc、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、あるいは例えばPCMCIAカード等のコンピュータ可読カードが含まれ、そのようなデバイスは、コンピュータモジュール101の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及び/又はデータをコンピュータモジュール101に提供することに更に関係する一時的又は非一時的なコンピュータ可読伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
【0033】
上述したアプリケーションプログラム133の第2の部分及び対応するコードモジュールは、ディスプレイ114上にレンダリングされるかあるいは表される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するように実行される。一般にキーボード102及びマウス103を操作することにより、コンピュータシステム100及びアプリケーションのユーザは、GUIと関連付けられたアプリケーションに制御コマンド及び/又は入力を提供するように機能的に適応可能な方法でインタフェースを操作する。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ117を介して出力された音声プロンプト及びマイク180を介して入力されたユーザボイスコマンドを利用するオーディオインタフェースが更に実現されてもよい。
【0034】
図2は、プロセッサ105及び「メモリ」134を示す詳細な概略ブロック図である。メモリ134は、図1のコンピュータモジュール101によりアクセスされる全てのメモリモジュール(HDD110及び半導体メモリ106を含む)の論理的な集約を示す。
【0035】
コンピュータモジュール101の電源が最初に投入される場合、自己診断(POST)プログラム150が実行する。一般にPOSTプログラム150は、図1の半導体メモリ106のROM149に格納される。ソフトウェアを格納するROM149等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。POSTプログラム150は、コンピュータモジュール101内のハードウェアを調査して適切に機能することを保証し、一般に、正しく動作するためにROM149に更に格納されたプロセッサ105、メモリ134(109、106)及び基本入出力システム(BIOS)ソフトウェアモジュール151をチェックする。POSTプログラム150が正常に実行したら、BIOS151は図1のハードディスクドライブ110を起動する。ハードディスクドライブ110を起動することにより、ハードディスクドライブ110上に常駐するブートストラップローダプログラム152がプロセッサ105を介して実行する。これにより、オペレーティングシステム153は、RAMメモリ106にロードされると動作を開始する。オペレーティングシステム153は、プロセッサ105により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
【0036】
オペレーティングシステム153は、メモリ134(109、106)を管理し、コンピュータモジュール101上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、図1のシステム100で使用可能な種々のメモリは、各処理が効率的に実行できるように適切に使用される必要がある。従って、集約メモリ134は、メモリの特定の部分が割り当てられる方法を示すことを意図せず(特に記載されない限り)、コンピュータシステム100によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
【0037】
図2に示されるように、プロセッサ105は、制御ユニット139、演算論理装置(ALU)140及びキャッシュメモリと呼ばれることもあるローカルメモリ又は内部メモリ148を含む多数の機能モジュールを含む。一般にキャッシュメモリ148は、レジスタ部に複数の記憶レジスタ144〜146を含む。1つ以上の内部バス141は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ105は、接続118を使用してシステムバス104を介して外部デバイスと通信する1つ以上のインタフェース142を更に有する。メモリ134は、接続119を使用してバス104に結合される。
【0038】
アプリケーションプログラム133は、条件付き分岐命令及びループ命令を含む一連の命令131を含む。プログラム133は、プログラム133を実行するために使用されるデータ132を更に含む。命令131及びデータ132は、それぞれ、記憶場所128、129、130及び135、136、137に格納される。命令131及び記憶場所128〜130の相対的な大きさに依存して、特定の命令は、記憶場所130に示された命令により描かれたように単一の記憶場所に格納される。あるいは、命令は、記憶場所128及び129に示された命令部分により描かれたように、各々が別個の記憶場所に格納される多数の部分にセグメント化される。
【0039】
一般にプロセッサ105には、内部で実行される命令のセットを与えられる。プロセッサ105は、命令の別のセットを実行することにより自身が反応する後続の入力を待つ。各入力は、入力デバイス102、103の1つ以上により生成されたデータ、ネットワーク120、102のうちの一方を介して外部ソースから受信したデータ、記憶装置106、109のうちの一方から検索したデータ又は対応する読み取り装置112に挿入された記憶媒体125から検索したデータを含む多数のソースのうちの1つ以上から提供され、その全てが図1に示される。いくつかの例において、命令のセットを実行した結果、データが出力される。実行することは、データ又は変数をメモリ134に格納することを更に含む。
【0040】
ここで説明される方法は、対応する記憶場所155、156、157においてメモリ134に格納される入力変数154を使用する。また、ここで説明される方法は、対応する記憶場所162、163、164においてメモリ134に格納される出力変数161を生成する。中間変数158は、記憶場所159、160、166及び167に格納される。
【0041】
図2のプロセッサ105を参照すると、レジスタ144、145、146、演算論理装置(ALU)140及び制御ユニット139は、プログラム133を構成する命令セットにおいて命令毎に「取り込み、復号及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、復号及び実行サイクルの各々は、以下を含む。
(a)記憶場所128、129、130からの命令131を取り込むかあるいは読み取る取り込み動作。
(b)制御ユニット139が取り込まれた命令を判定する復号動作。
(c)制御ユニット139及び/又はALU140が命令を実行する命令動作。
【0042】
その後、次の命令に対する更なる取り込み、復号及び実行サイクルが実行される。同様に、制御ユニット139が値を記憶場所132に格納するかあるいは書き込むことにより、格納サイクルが実行される。
【0043】
図5〜図10の処理におけるステップ又はサブ処理の各々は、プログラム133の1つ以上の部分と関連付けられ、プログラム133の示された部分に対して命令セットにおいて命令毎に取り込み、復号及び実行サイクルを実行するようにプロセッサ105のレジスタ部144、145、147、ALU140及び制御ユニット139が共に動作することで実行される。
【0044】
あるいは、ここで説明される方法は、説明される方法の機能又は副機能を実行する1つ以上の集積回路等の専用のハードウェアにおいて実現されてもよい。そのような専用のハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ又は1つ以上のマイクロプロセッサ及び関連メモリを含む。
【0045】
図5に、ここで説明される方法を実現するソフトウェアアーキテクチャ500の一例を示す。図5に示されるように、ソフトウェアアーキテクチャ500は、ソフトウェアモジュール501、502、503、504、505、511、550及び599を含む。ソフトウェアモジュール501、502、503、504、505、511、550及び599は、「拡張スペクトルJPEG圧縮器」を実現するために使用される。
【0046】
ソフトウェアアーキテクチャ500のソフトウェアモジュール501、502、503、504、505、511、550及び599の各々は、ハードディスクドライブ110上に常駐し且つプロセッサ105による実行の際に制御されているソフトウェアアプリケーションプログラム133の1つ以上のコードモジュールとして実現される。
【0047】
図5に示されるように、色変換器モジュール501は、必要に応じて入力画像データを適切な処理色空間に変換する。以下に説明する例によれば、色変調器モジュール501は、入力画像データを赤緑青(RGB)色空間に変換する。あるいは、入力画像データは、YCbCr色空間に更に変換されてもよい。DCTユニットモジュール502は、8×8ブロックの単位でRGB入力画像データに対してDCTを実行し、DCT係数を出力する。一実現例において、DCTユニットモジュール502は、JPEG圧縮法を使用して入力画像を圧縮する。上述したように、JPEG圧縮法は、色成分毎に最大12ビット画像に対して規定される。従って、入力画像がDCTユニットモジュール502に送出される前に、画像は、空間領域において上位ビットブレーン部分及び下位ビットプレーン部分に分割される。次にDCTユニットモジュール502は、空間領域の上位ビットプレーン部分及び下位ビットプレーン部分を別個に周波数領域等価物815、816へと変換する。量子化器モジュール305は、プロセッサ105の実行下で、2つの量子化テーブル512を使用してDCT係数の8×8空間領域ブロックを量子化する。2つの量子化テーブル512は、JPEG量子化テーブル、及び、修正された量子化テーブルを含む。量子化器モジュール503は、量子化係数を出力する。量子化テーブル827及び828の例をそれぞれ図8C及び図8Dに示す。量子化テーブル827及び828は、プロセッサ105によりメモリ106からアクセスされる。
【0048】
量子化器503は、図3Bに示されたようなジグザグな状態で走査することで、より低い周波数成分からより高い周波数成分に量子化係数の8×8ブロックを64個の1次元の量子化係数に更に再配列する。次に量子化係数は、区画テーブル514に従って区画器モジュール504により品質区画に分割される。区画は視覚品質軸に沿って行われる。これは、区画がDCT係数の周波数レベルに従って実行されることを意味する。特定の一実現例において、例えば、DCTデータのDC係数は区画を割り当てられ、DCTデータのAC1−AC3は第2の区画を割り当てられ、DCTデータのAC4−AC7は第3の区画を割り当てられる。区画器モジュール504は、ハフマン符号器モジュール505又はRAW符号器モジュール550のいずれかに品質区画を供給する。
【0049】
ハフマン符号器モジュール505は、プロセッサ105の実行下で、ハフマンテーブル513及びあらゆる適切なハフマン符号化法を使用して品質区画において入力1次元データを符号化する。ハフマン符号器モジュール505は、符号化データ、各符号化データの長さ(ビットの数で表された「コード長」)及び対応する符号化データが割り当てられる区画を表す番号(以下「区画番号」と呼ぶ)を出力する。RAW符号器モジュール550は、品質区画において1次元データを単一の区画として符号化し、生符号化データ及び対応する符号化データが割り当てられる区画を表す区画番号を出力する。
【0050】
「区画番号」に基づいて、区画制御器モジュール511は、「区画番号」で示された区画に対応する圧縮データをメモリ106内に構成された圧縮メモリモジュール599に書き込む。圧縮メモリモジュール599は区画(例えば、842、849)に分割され(図8Fを参照)、符号化データの各々は、そのデータの区画番号に対応する区画に書き込まれる。
【0051】
次に、図6を参照して16ビット画像を格納する方法600を説明する。この方法600は、ハードディスクドライブ110上に常駐し且つプロセッサ105により実行される際に制御されているソフトウェアモジュール501、502、503、504、505、511、550及び599により実現される。上述したように、ソフトウェアモジュール501、502、503、504、505、511、550及び599は、拡張スペクトルJPEG圧縮器を実現し、上述した形式で16ビット画像を符号化する。ソフトウェアモジュール501、502、503、504、505、511、550及び599は、ソフトウェアアプリケーションプログラム133の1つ以上のコードモジュールを形成する。
【0052】
この方法600は入力ステップ610において開始し、高ビット深度画像を含む入力が色変調器モジュール501からDCTユニットモジュール502により受信される。分割ステップ620において、DCTユニットモジュール502は、プロセッサ105の実行下にて、画像を符号化ブロックとしても既知である8×8画素のブロックに分割する。符号化ブロックは、メモリ106又は記憶装置109に格納される。判断ステップ630において、プロセッサ105が処理対象の符号化ブロックが更にあると判定する場合、方法600はステップ640に進む。さもなければ、方法600は終了する。
【0053】
変換ステップ640において、DCTユニットモジュール502は、プロセッサ105の実行下にて、離散コサイン変換(DCT)を現在の符号化ブロックに適用する。DCTは、浮動小数点数又は固定小数点方式のいずれかを使用して適用される。ステップ640におけるDCTユニットモジュール502からの出力は、高ビット深度DCT係数データのブロックである。16ビット画像の場合、ステップ640でDCTユニットモジュール502により出力された係数データのブロックは、整数を使用してDCT係数毎に最大23ビットである。DCTユニットモジュール502により出力された高ビット深度DCT係数データのブロックは、メモリ106に格納される。
【0054】
次に符号化ステップ650において、DCTユニットモジュール502により出力された高ビット深度係数DCT係数データが符号化される。図7を参照して、ステップ650で実行されたような高ビット深度係数DCT係数データを符号化する方法700を以下に詳細に説明する。図8Aに示された高ビット深度DCTデータ811のブロックを参照して、方法700を例として説明する。
【0055】
図8A〜図8Fは、方法700の各ステップにおける高ビット深度DCTデータ811のブロックの状態を示す。この方法700は、ハードディスクドライブ110上に常駐し且つプロセッサ105により実行される際に制御されているソフトウェアモジュール503、504、505、511、550及び599により実現される。ソフトウェアモジュール501、502、503、504、505、511、550及び599は、ソフトウェアアプリケーションプログラム133の1つ以上のコードモジュールを形成する。
【0056】
方法700は入力ステップ701において開始し、量子化器モジュール503が画像の高ビット深度周波数領域表現を受信するステップを実行する。特に量子化器モジュール503は、DCTユニットモジュール502により出力された高ビット深度DCT係数データ811のブロックを含む入力を受信する。
【0057】
分割ステップ710において、量子化器モジュール503は、プロセッサ105の実行下にて、高ビット周波数領域表現を上位ビットプレーン部分及び下位ビットプレーン部分に分割するステップを実行する。図8Aの例によれば、ステップ710において、量子化器モジュール503は、図8Aに示されるように高ビット深度DCT係数データ811のブロックを下位ビットプレーン部分816及び上位ビットプレーン部分815に分離する。一実現例において、上位ビットプレーン部分815は、標準的なJPEGハフマンテーブルを使用して符号化される最大ビット数に対応する15ビットの情報を含む。この場合、下位ビットプレーン部分816は残りのビットの情報を含む。16ビット画像の場合、下位ビットプレーン部分816は8ビットの情報を含む。
【0058】
量子化ステップ720において、量子化器モジュール503は、プロセッサ105の実行下にて、量子化処理をDCT係数データ811の下位ビットプレーン部分816及び上位ビットプレーン部分815の双方に適用する。それに応じて、高ビット深度周波数領域表現(すなわち、高ビット深度DCT係数データ811)の上位ビットプレーン部分815及び下位ビットプレーン部分816は、ステップ720で量子化される。図8Bは、ステップ720における量子化後のDCT係数データ811のブロックを示す。
【0059】
ステップ720において、上位ビットプレーン部分815を量子化するために第1の量子化テーブルを使用し、下位ビットプレーン部分816を量子化するために第2の量子化テーブルを使用する。特に、上位ビットプレーン部分815に対して、図8Cに示されるような修正された標準的なJPEG量子化テーブル827は、上位ビットプレーン部分の一部のより低い周波数DCT係数が量子化されていない状態で量子化データ825を生成するために使用される。量子化処理において、より高い周波数DCT係数829のビットの一部が除外される。この特定の例において、量子化は、DCT係数の視覚的重要性又は周波数レベルに依存する。DC成分及びより低いAC係数は量子化されず、DCT係数の周波数レベルが上がるにつれ、量子化レベルは上がる。下位ビットプレーン部分においてより低い周波数DCT係数に対応するデータ826(例えば、DCレベル係数及びAC1−AC3レベル係数に対応するデータ)の一部のみが量子化されていない状態となるように、下位ビットプレーン部分816は図8Dに示されるようなテーブル828を使用して量子化される。量子化処理は、下位ビットプレーン部分の所定の周波数レベル824より高い全てのDCT係数をゼロに量子化することにより、DCT係数824のより高い周波数成分におけるビットの部分を除外する。
【0060】
上述したように、高ビット深度画像は、8ビット画像より精細な階調を提供するために望ましい。そのようなより精細な階調は、低速変化する階調度情報を含む画像の領域において特に顕著である。ビット深度に関して、余分な階調度レベルは、画像に対するビットデータの低ビットプレーン部分内で符号化される。そのような余分な階調度レベルは、画像データの空間領域及びDCT領域の双方において発生する。また、DCT領域内において、種々のDCT係数は画像の種々のエネルギー周波数を符号化する。DC係数及びより低いごく僅かなAC係数は、空間領域において低速変化する階調度に対応する画像の低周波数エネルギーの殆どを符号化する。
【0061】
上述した余分な階調度レベル及び種々のエネルギー周波数を符号化する種々のDCT係数に基づいて、量子化ステップ720に後続して格納される必要のあるDCT領域内の下位ビットプレーンデータの最も関連する部分を判定することが可能である。一実現例において、DCT係数データ811のDC係数及び最初の5つのAC係数の下位ビットプレーン部分は、DCT係数データ811の量子化に後続してステップ720でメモリ106に格納される。より大きな係数番号を含むDCT係数に対して符号化された下位ビットプレーン情報はあまり関連しない。
【0062】
区画ステップ730において、区画器モジュール504は、プロセッサ105の実行下にて、DCT係数データ811のブロックの量子化上位ビットプレーン部分データ825及び量子化下位ビットプレーン部分データ826をそれぞれ図8Eに示されるような複数の品質区画(上位ビットプレーン部分831及び下位ビットプレーン部分836)に区画するステップを実行する。一般に、量子化上位ビットプレーン部分データ825及び量子化下位ビットプレーン部分データ826は、ステップ730で少なくとも3つの品質区画に区画される。上位ビットプレーン部分データ825は、図4AのDCT係数410の区画と同様の方法で全体の画質との関連性を低下させることでソートされた上位ビットプレーン部分831のスペクトル区画に区画される。下位ビットプレーン部分データ826の場合、データ826の部分は、図8Eに示されるような単一の区画836に区画される。
【0063】
一実現例において、高ビット深度周波数領域表現は、上位ビットプレーン部分815及び下位ビットプレーン部分816が形成される前にステップ710で1つ以上の品質区画(例えば、831、836)に区画される。そのような一実現例において、上述したステップ710及び730は実質的に入れ替えられる。
【0064】
符号化ステップ740において、下位ビットプレーン部分データ826の上位ビットプレーン部分831の品質区画はハフマン符号器モジュール505により符号化され、上位ビットプレーン部分データ825の品質区画836はRAW符号器モジュール550により符号化される。その後、符号化された品質区画は、各区画(例えば、833及び836)の個々の品質の重要性に従って、プロセッサ105により共にソートされた順に区画制御器モジュール511により圧縮メモリモジュール599に格納される。符号化された品質区画を格納する前に、プロセッサ105は、視覚的重要性の低い順に1つ以上の品質区画を配置するステップを実行する。その後、配置された品質区画は圧縮メモリモジュール599に格納される。
【0065】
図8F及び図8Gは、各品質区画(例えば、846)からの符号化データがステップ740で合成され且つ格納される方法を示す。図8Fに示されるように、下位ビットプレーン部分データ826及び上位ビットプレーン部分データ825から導出された下位ビットプレーン部分846及び上位ビットプレーン部分841のハフマン符号化された品質区画の2つのセットは、それぞれ、下位ビットプレーン部分836の区画及び上位ビットプレーン部分831の区画の品質性に基づいて、区画制御器モジュール511によりステップ740で区画861の共通のセットに合成される。各区画(例えば、833)の個々の品質の重要性は、特定の区画が再構成画像の全体の画質に影響を与える情報量である。一実現例において、区画の品質の重要性は、視覚品質に基づいて予め判定される。平均二乗誤差(MSE)、ピーク信号対雑音比(PSNR)、心理視覚評価又は他のあらゆる適切な方法等の視覚品質測定値は、区画の品質の重要性を判定するために使用される。
【0066】
量子化下位ビットプレーン部分836が入るべき場所を判定するため、区画836は、上位ビットプレーン部分831において所定の数の場所に挿入される。例えば、図8Gを参照すると、挿入された下位ビットプレーン部分は、「セグメント1」と呼ばれ、区画AC35−AC44と区画AC45−AC54との間に挿入される。「セグメント1」が入るべき場所を判定する実現例において、例えば「セグメント1」は、区画7と区画8との間、同様に、区画10と区画11との間に更に挿入しても良い。その後、各高ビットプレーンの視覚品質測定値は、種々の場所においてDCからAC63及び「セグメント1」を区画する。この特定の例において、区画AC35−AC44と区画AC45−AC54との間の「セグメント1」を含む上位ビットプレーン区画のPSNR等の視覚品質測定値は3つの構成の中で最も高い。従って、この場所は、下位ビットプレーン区画852に対してプロセッサ105により選択される。
【0067】
区画テーブル514は、所定の視覚品質を使用して下位ビットプレーン部分データ826及び上位ビットプレーン部分データ825の双方の品質区画をランク付けすることでプロセッサ105により構成される。一実現例において使用された区画テーブル514を図8Gに示す。図8Gに示されるように、区画テーブル514の区画番号は各区画の品質の重要性を示し、1が最高品質を示し、11が最低品質を示す。ハフマン符号化された区画861における画像データをプロセッサ105の復号器が復号化できるように、区画テーブル514はメモリ106に格納される。一実現例において、上位ビットプレーン部分データ825に対する上位ビットプレーン部分831の品質区画に対応する上位ビットプレーン部分841のハフマン符号化された品質区画は、区画842、843、844〜最後の区画849を含み、下位ビットプレーン部分826に対する品質区画836に対応し且つ区画852を含むハフマン符号化された品質区画846は、各区画の区画番号に従って上位ビットプレーン部分841のハフマン符号化された区画間に区画852を差し込むことで品質区画861の共通のセットに合成される。
【0068】
一実現例において、ハフマン符号化された上位ビットプレーン部分841における区画852の位置は、ユーザにより判定される。ユーザは、結果として得られる復号化JPEG画像において下位ビットプレーン852から区画の種々の位置の効果を評価し、ユーザが検出するようなJPEG画像に対する種々の位置において挿入された下位ビットプレーン区画により発生した視覚歪みを最小限にする位置を選択する。
【0069】
別の実現例において、区画852の位置は、PSNR測定値等の視覚品質測定値を使用して判定される。品質区画852は、所定数の場所(例えば、3箇所)に挿入される。プロセッサ105は、図8Gの品質区画を使用して、区画10と区画11との間、区画8と区画10との間及び区画7と区画8との間にそれぞれ挿入された下位ビットプレーン区画852を含むハフマン符号化された品質区画861のPSNR測定値を算出する。データの上位ビットプレーンの3つの異なるPSNR測定値を下位ビットプレーン区画852の種々の位置と比較することにより、最も高いPSNR測定値を与える区画852の位置はハフマン符号化のために選択される。例によれば、区画8と区画10との間の位置は、下位ビットプレーン区画852に対してプロセッサ105により選択される。
【0070】
図9は、一実現例においてメモリ106内に格納されたハフマン符号化された品質区画(例えば、842、843、844、852、849)を示す概略図である。圧縮画像を表す品質区画(例えば、842、843、844、852、849)からのデータを含むメモリ106は、複数のヘッダ及びメモリチャンク(memory chunk)から構成される。各「メモリチャンク」は特定の品質区画ヘッダに対応する。区画ヘッダは、区画番号、区画の長さ、関連するメモリチャンクにアクセスする方法等の区画情報又は必要に応じて他の更なる情報を格納する。「メモリチャンク」という用語は、圧縮画像データを格納するために、必ずしも連続しないが論理的に連続したメモリのチャンクを形成するように共にリンクしたメモリの1つ以上のブロックを示す。区画毎のハフマン符号化されたDCTデータは、それぞれのメモリチャンク内に格納される。例えば本発明の例において、ハフマン符号化された区画データ842を格納するチャンク951は「区画1」に対するヘッダ902と関連付けられ、ハフマン符号化された区画データ852を格納するチャンク959は、「区画9」に対するヘッダ912と関連付けられる。
【0071】
特定のメモリターゲットが必要な場合、メモリは、最低品質の区画から始まる品質区画を削除することで解放される。このように、最後の出力画像の画質は、メモリリソース要件を満たすのに必要とされるのと同程度のみ低下する可能性がある。
【0072】
上述の方法は、高ビット深度画像を圧縮及び格納するために使用される。上述したように、ソフトウェアモジュール501、502、503、504、505、511、550及び599は、「拡張スペクトルJPEG圧縮器」を実現するために使用される。図7において説明した方法700は、ステップ740で合成及び格納された各品質区画(例えば、846)からの符号化データを伸張するように逆にされる。
【0073】
次に、図10を参照して、方法600に従って符号化された高ビット深度係数データを伸張する方法1000を説明する。伸張モジュールは、プロセッサ105及びメモリ106を含む圧縮データを受信する別のコンピュータ上に常駐する。伸張モジュールは、搭載プロセッサ及び搭載メモリを含むプリンタ115等のレンダリングデバイス上に更に常駐しても構わない。図8A〜図8Gの例を参照して、この方法1000を説明する。この方法1000は、ステップ740で合成及び格納された各品質区画(例えば、846)からの符号化データを伸張するために使用される。
【0074】
方法1000は、ハードディスクドライブ110上に常駐し且つプロセッサ105により実行される際に制御されているソフトウェアアプリケーションプログラム133の1つ以上のコードモジュールとして実現される。
【0075】
方法1000は合成ステップ1010において開始し、上位ビットプレーン部分データ825に対する品質区画831に対応する上位ビットプレーン部分841のハフマン符号化された品質区画がプロセッサ105によりメモリ106に格納されるDCTデータの高ビットプレーン部分に復号化及び合成される。図8A〜図8Gの例によれば、ステップ1010で生成されたデータの部分は、図8Bに示されるような量子化データ825に少なくとも類似するかあるいは実質的に同一である。図8Gを参照して、「セグメント1」とラベル付けされた区画9以外の全ての区画は、DCTデータの量子化高ビットプレーン部分を形成するようにプロセッサ105により合成され、メモリ106に格納される。下位ビットプレーン部分データ(例えば、DCレベル係数及びAC1−AC3レベル係数に対応するデータ)を含む区画の場所は、別のコンピュータ上に常駐する圧縮モジュールから受信される。
【0076】
次に合成ステップ1020において、下位ビットプレーン部分データ826に対する品質区画836に対応するハフマン符号化された品質区画846は、復号化され、メモリ106に格納されるDCTデータの第2の下位ビットプレーン部分に合成される。ステップ1020で生成されたデータの下位ビットプレーン部分は、図8Bに示されるようなデータ826に少なくとも類似するかあるいは実質的に同一である。図8Gを参照して、「セグメント1」とラベル付けされた区画9は、DCTデータの量子化高ビットプレーン部分を生成するために使用され、メモリ106に格納される。
【0077】
方法1000は逆量子化ステップ1030に継続し、逆量子化がプロセッサ105によりそれぞれステップ1010及び1020で構成され且つ格納されたDCTデータの上位ビットプレーン部分及び下位ビットプレーン部分の双方に適用される。あらゆる適切な逆量子化法はステップ1030で使用される。一実現例は、例えば量子化テーブル827等の上位ビットプレーン量子化テーブルにおいて上位ビットプレーンDCT係数の各々に対応する値を掛けることでステップ1010により構成されたDCTデータの上位ビットプレーン部分に対して逆量子化を実行し、ステップ1020により構成されたDCTデータの下位ビットプレーン部分は、例えば量子化テーブル828等の下位ビットプレーン量子化テーブルにおいて下位ビットプレーンDCT係数の各々に対応する値を掛けることで逆量子化される。
【0078】
合成ステップ1040においては、DCTデータの上位ビットプレーン部分及び下位ビットプレーン部分は、メモリ106においてアクセスされ、係数データの高ビット深度DCTブロックを生成するようにプロセッサ105により合成される。係数データの高ビット深度DCTブロックはメモリ106に格納される。図8A〜図8Gの例によれば、ステップ1040で生成された係数データの高ビット深度DCTブロックは、図8Aに示されるような高ビット深度DCT係数データ811に少なくとも類似するかあるいは実質的に同一である。
【0079】
次にステップ1050において、ステップ1040で生成された高ビット深度DCT係数データのブロックは、あらゆる適切な逆DCT法を使用して8×8画素画像ブロックに変換される。
【0080】
一実現例において、方法1000を実行するのに適した対応する修正されたJPEG伸張器を利用できない場合、標準的なJPEG伸張器は、圧縮データが前処理された後に使用される。そのような一実現例によれば、符号化ブロック毎に、前処理は、DCTデータの下位ビットプレーン部分と関連付けられた区画を破棄すること、及び、区画されたDCT係数から構成される残りの区画を単一のメモリ区画に連結することから構成される。
【0081】
ここで説明した構成は、コンピュータ業界及びデータ処理業界、並びに特に画像処理に適用可能である。
【0082】
上記の記述は本発明のいくつかの実施形態のみを説明し、本発明の範囲及び趣旨から逸脱せずに、変形及び/又は変更がいくつかの実施形態に対して行なわれる。実施形態は、限定するものではなく例示するものである。例えば、種々の入力画像に対して方法600と関連付けられた多くのパラメータを変更することが可能である。変形は、DCTデータの下位ビットプレーン部分及びDCTデータの上位ビットプレーン部分の量子化の量及び種類を含みうるがそれらに限定されない。例えば、DCT係数データの上位ビットプレーン部分及び下位ビットプレーン部分を量子化するために種々の量子化テーブルを使用するのではなく、方法600は、DCT係数データの上位ビットプレーン部分及び下位ビットプレーン部分の双方を量子化するためにたった1つの量子化テーブルを使用するように変更される。
【0083】
また、DCTデータの下位ビットプレーン部分及び上位ビットプレーン部分の区画戦略は変更される。例えば、単一の区画を使用するのではなく、DCTデータの下位ビットプレーン部分は、DCT係数、ビットプレーンレベル又は双方の組合せに基づいて多数の品質区画に区画される。
【特許請求の範囲】
【請求項1】
画像を格納する方法であって、
前記画像の周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は複数のビットプレーンで表わされる;
前記周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割するステップと、
ここで、前記ビットプレーンの第1のセットは前記ビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画するステップと、
前記ビットプレーンの第2のセットからの少なくとも1つの区画を、前記ビットプレーンの第1のセットの前記複数の区画に挿入して、前記画像に対する複数の配置された区画を生成するステップと、
前記画像の前記配置された区画を格納するステップと、
有することを特徴とする方法。
【請求項2】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項1記載の方法。
【請求項3】
前記視覚的重要性の低くなる順は、複数の異なる位置において前記ビットプレーンの第2のセットからの前記挿入された区画により発生した視覚歪みを評価するユーザにより判定されることを特徴とする請求項2に記載の方法。
【請求項4】
前記視覚的重要性の低くなる順は、
前記ビットプレーンの第2のセットからの前記区画を前記ビットプレーンの第1のセットの前記複数の区画間で所定の番号の位置に挿入するステップと、
前記画像の前記複数の配置された区画毎に視覚品質測定値を判定するステップと、
前記判定された視覚品質測定値に基づいて前記画像の前記複数の配置された区画のうちの1つを選択するステップと
によって決定されることを特徴とする請求項2に記載の方法。
【請求項5】
前記高ビット深度周波数領域表現は量子化されることを特徴とする請求項2に記載の方法。
【請求項6】
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットは量子化されることを特徴とする請求項2記載の方法。
【請求項7】
第1の量子化テーブルが前記ビットプレーンの第1のセットを量子化するために使用され、第2の量子化テーブルが前記ビットプレーンの第2のセットを量子化するために使用されることを特徴とする請求項1に記載の方法。
【請求項8】
前記高ビット深度周波数領域表現は、前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットが形成される前に前記1つ以上の品質区画に区画されることを特徴とする請求項1に記載の方法。
【請求項9】
画像を格納する方法であって、
前記画像の23ビットの周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は23ビットのビットプレーンを有する;
前記周波数領域表現を15ビットのビットプレーンの第1のセット及び8ビットのビットプレーンの第2のセットに分割するステップと、
ここで、前記15ビットのビットプレーンの第1のセットは前記8ビットのビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画するステップと;
前記ビットプレーンの第2のセットからの少なくとも1つの区画を、前記ビットプレーンの第1のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成するステップと、
前記画像の前記配置された区画を格納するステップと、
を有することを特徴とする方法。
【請求項10】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項9記載の方法。
【請求項11】
画像を格納する装置であって、
前記画像の高ビット深度周波数領域表現を受信する手段と、
ここで、前記高ビット深度周波数領域表現は、複数のビットプレーンを有する;
前記高ビット深度周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割する手段と、
ここで、前記ビットプレーンの第1のセットは前記ビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画する手段と、
前記ビットプレーンの第2のセットからの少なくとも1つの区画を前記ビットプレーンの第1のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する手段と、
前記画像の前記配置された区画を格納する手段と、
を備えることを特徴とする装置。
【請求項12】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項11記載の装置。
【請求項13】
画像を格納するシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するために前記メモリに接続されたプロセッサと
を有するシステムであって、
前記プロセッサは、前記コンピュータプログラムにおける、
前記画像の高ビット深度周波数領域表現を受信する命令と、
ここで、高ビット深度周波数領域表現は複数のビットプレーンを有する;
前記高ビット深度周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割する命令と
ここで、前記ビットプレーンの第1のセットは前記ビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画する命令、
前記ビットプレーンの第2のセットからの少なくとも1つの区画を前記ビットプレーンの第1のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する命令、
前記画像の配置された区画を格納する命令、
を実行することを特徴とするシステム。
【請求項14】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項13載のシステム。
【請求項1】
画像を格納する方法であって、
前記画像の周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は複数のビットプレーンで表わされる;
前記周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割するステップと、
ここで、前記ビットプレーンの第1のセットは前記ビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画するステップと、
前記ビットプレーンの第2のセットからの少なくとも1つの区画を、前記ビットプレーンの第1のセットの前記複数の区画に挿入して、前記画像に対する複数の配置された区画を生成するステップと、
前記画像の前記配置された区画を格納するステップと、
有することを特徴とする方法。
【請求項2】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項1記載の方法。
【請求項3】
前記視覚的重要性の低くなる順は、複数の異なる位置において前記ビットプレーンの第2のセットからの前記挿入された区画により発生した視覚歪みを評価するユーザにより判定されることを特徴とする請求項2に記載の方法。
【請求項4】
前記視覚的重要性の低くなる順は、
前記ビットプレーンの第2のセットからの前記区画を前記ビットプレーンの第1のセットの前記複数の区画間で所定の番号の位置に挿入するステップと、
前記画像の前記複数の配置された区画毎に視覚品質測定値を判定するステップと、
前記判定された視覚品質測定値に基づいて前記画像の前記複数の配置された区画のうちの1つを選択するステップと
によって決定されることを特徴とする請求項2に記載の方法。
【請求項5】
前記高ビット深度周波数領域表現は量子化されることを特徴とする請求項2に記載の方法。
【請求項6】
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットは量子化されることを特徴とする請求項2記載の方法。
【請求項7】
第1の量子化テーブルが前記ビットプレーンの第1のセットを量子化するために使用され、第2の量子化テーブルが前記ビットプレーンの第2のセットを量子化するために使用されることを特徴とする請求項1に記載の方法。
【請求項8】
前記高ビット深度周波数領域表現は、前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットが形成される前に前記1つ以上の品質区画に区画されることを特徴とする請求項1に記載の方法。
【請求項9】
画像を格納する方法であって、
前記画像の23ビットの周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は23ビットのビットプレーンを有する;
前記周波数領域表現を15ビットのビットプレーンの第1のセット及び8ビットのビットプレーンの第2のセットに分割するステップと、
ここで、前記15ビットのビットプレーンの第1のセットは前記8ビットのビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画するステップと;
前記ビットプレーンの第2のセットからの少なくとも1つの区画を、前記ビットプレーンの第1のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成するステップと、
前記画像の前記配置された区画を格納するステップと、
を有することを特徴とする方法。
【請求項10】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項9記載の方法。
【請求項11】
画像を格納する装置であって、
前記画像の高ビット深度周波数領域表現を受信する手段と、
ここで、前記高ビット深度周波数領域表現は、複数のビットプレーンを有する;
前記高ビット深度周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割する手段と、
ここで、前記ビットプレーンの第1のセットは前記ビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画する手段と、
前記ビットプレーンの第2のセットからの少なくとも1つの区画を前記ビットプレーンの第1のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する手段と、
前記画像の前記配置された区画を格納する手段と、
を備えることを特徴とする装置。
【請求項12】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項11記載の装置。
【請求項13】
画像を格納するシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するために前記メモリに接続されたプロセッサと
を有するシステムであって、
前記プロセッサは、前記コンピュータプログラムにおける、
前記画像の高ビット深度周波数領域表現を受信する命令と、
ここで、高ビット深度周波数領域表現は複数のビットプレーンを有する;
前記高ビット深度周波数領域表現をビットプレーンの第1のセット及びビットプレーンの第2のセットに分割する命令と
ここで、前記ビットプレーンの第1のセットは前記ビットプレーンの第2のセットより上位のビットプレーンのセットである;
前記ビットプレーンの第1のセット及び前記ビットプレーンの第2のセットの各々を複数の区画に区画する命令、
前記ビットプレーンの第2のセットからの少なくとも1つの区画を前記ビットプレーンの第1のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する命令、
前記画像の配置された区画を格納する命令、
を実行することを特徴とするシステム。
【請求項14】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項13載のシステム。
【図1】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図8C】
【図8D】
【図8E】
【図8F】
【図8G】
【図9】
【図10】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図8C】
【図8D】
【図8E】
【図8F】
【図8G】
【図9】
【図10】
【公開番号】特開2013−13085(P2013−13085A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2012−144588(P2012−144588)
【出願日】平成24年6月27日(2012.6.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願日】平成24年6月27日(2012.6.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]