(57)【特許請求の範囲】
【請求項１】
画像を格納する方法であって、
前記画像の周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は複数のビットプレーンで表わされる；
前記周波数領域表現をビットプレーンの第１のセット及びビットプレーンの第２のセットに分割するステップと、
ここで、前記ビットプレーンの第１のセットは前記ビットプレーンの第２のセットより上位のビットプレーンのセットである；
前記ビットプレーンの第１のセット及び前記ビットプレーンの第２のセットの各々を複数の区画に区画するステップと、
前記ビットプレーンの第２のセットからの少なくとも１つの区画を、前記ビットプレーンの第１のセットの前記複数の区画に挿入して、前記画像に対する複数の配置された区画を生成するステップと、
前記画像の前記配置された区画を格納するステップと、
有することを特徴とする方法。
【請求項２】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項１記載の方法。
【請求項３】
前記視覚的重要性の低くなる順は、複数の異なる位置において前記ビットプレーンの第２のセットからの前記挿入された区画により発生した視覚歪みを評価するユーザにより判定されることを特徴とする請求項２に記載の方法。
【請求項４】
前記視覚的重要性の低くなる順は、
前記ビットプレーンの第２のセットからの前記区画を前記ビットプレーンの第１のセットの前記複数の区画間で所定の番号の位置に挿入するステップと、
前記画像の前記複数の配置された区画毎に視覚品質測定値を判定するステップと、
前記判定された視覚品質測定値に基づいて前記画像の前記複数の配置された区画のうちの１つを選択するステップと
によって決定されることを特徴とする請求項２に記載の方法。
【請求項５】
前記高ビット深度周波数領域表現は量子化されることを特徴とする請求項２に記載の方法。
【請求項６】
前記ビットプレーンの第１のセット及び前記ビットプレーンの第２のセットは量子化されることを特徴とする請求項２記載の方法。
【請求項７】
第１の量子化テーブルが前記ビットプレーンの第１のセットを量子化するために使用され、第２の量子化テーブルが前記ビットプレーンの第２のセットを量子化するために使用されることを特徴とする請求項１に記載の方法。
【請求項８】
前記高ビット深度周波数領域表現は、前記ビットプレーンの第１のセット及び前記ビットプレーンの第２のセットが形成される前に前記１つ以上の品質区画に区画されることを特徴とする請求項１に記載の方法。
【請求項９】
画像を格納する方法であって、
前記画像の２３ビットの周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は２３ビットのビットプレーンを有する；
前記周波数領域表現を１５ビットのビットプレーンの第１のセット及び８ビットのビットプレーンの第２のセットに分割するステップと、
ここで、前記１５ビットのビットプレーンの第１のセットは前記８ビットのビットプレーンの第２のセットより上位のビットプレーンのセットである；
前記ビットプレーンの第１のセット及び前記ビットプレーンの第２のセットの各々を複数の区画に区画するステップと；
前記ビットプレーンの第２のセットからの少なくとも１つの区画を、前記ビットプレーンの第１のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成するステップと、
前記画像の前記配置された区画を格納するステップと、
を有することを特徴とする方法。
【請求項１０】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項９記載の方法。
【請求項１１】
画像を格納する装置であって、
前記画像の高ビット深度周波数領域表現を受信する手段と、
ここで、前記高ビット深度周波数領域表現は、複数のビットプレーンを有する；
前記高ビット深度周波数領域表現をビットプレーンの第１のセット及びビットプレーンの第２のセットに分割する手段と、
ここで、前記ビットプレーンの第１のセットは前記ビットプレーンの第２のセットより上位のビットプレーンのセットである；
前記ビットプレーンの第１のセット及び前記ビットプレーンの第２のセットの各々を複数の区画に区画する手段と、
前記ビットプレーンの第２のセットからの少なくとも１つの区画を前記ビットプレーンの第１のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する手段と、
前記画像の前記配置された区画を格納する手段と、
を備えることを特徴とする装置。
【請求項１２】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項１１記載の装置。
【請求項１３】
画像を格納するシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するために前記メモリに接続されたプロセッサと
を有するシステムであって、
前記プロセッサは、前記コンピュータプログラムにおける、
前記画像の高ビット深度周波数領域表現を受信する命令と、
ここで、高ビット深度周波数領域表現は複数のビットプレーンを有する；
前記高ビット深度周波数領域表現をビットプレーンの第１のセット及びビットプレーンの第２のセットに分割する命令と
ここで、前記ビットプレーンの第１のセットは前記ビットプレーンの第２のセットより上位のビットプレーンのセットである；
前記ビットプレーンの第１のセット及び前記ビットプレーンの第２のセットの各々を複数の区画に区画する命令、
前記ビットプレーンの第２のセットからの少なくとも１つの区画を前記ビットプレーンの第１のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する命令、
前記画像の配置された区画を格納する命令、
を実行することを特徴とするシステム。
【請求項１４】
前記画像の前記複数の配置された区画は、視覚的重要性の低くなる順に配置されることを特徴とする請求項１３載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に関し、特にビットマップ画像を格納する方法及び装置に関する。また本発明は、ビットマップ画像を格納するコンピュータプログラムを記録したコンピュータ可読媒体を含むコンピュータプログラム製品に関する。
【背景技術】
【０００２】
現在のビットマップ画像は、一般に色チャネル形式毎に８ビットに符号化される。この場合、特定の色チャネルに対して、合計で２５６階調を表現できる。一般に、多くの写真、表示及び印刷の要求に対して、チャネル毎の２５６階調は十分である。
【０００３】
しかし、高ビット深度の医療画像、図形表示及び大判プリンタの使用が増加するにつれ、特定の色チャネル内でより精細なレベルの色の階調度を提供するために色チャネル画像毎に１６ビットを符号化する方法が必要である。人間の眼が色の階調度を２５６より多い数のレベルに分類できるため、より精細なレベルの色の階調度が必要である。
【０００４】
１６ビット画像を符号化する従来の方法は多数ある。全ての従来の方法は、空間領域において主画像及び残差画像を使用することで１６ビット画像を符号化する。主画像と残差画像とを合成し、元の（又は元の非可逆的近似）１６ビット画像を生成する。
【０００５】
Joint Photographic Experts Group（ＪＰＥＧ）は、ビットマップ画像に対する非可逆的圧縮の方法を規定する。ＪＰＥＧ圧縮により、画像データの周波数領域符号化を使用してビットマップ画像を非可逆的圧縮できる。一例として、図３Ａは、ビットマップ画像３０１の一部を示す。一般的に、ＪＰＥＧ圧縮処理中、ビットマップ画像３０１は、最初に８×８画素の符号化ブロック（例えば、３１１）に分割される。そして、離散コサイン変換（ＤＣＴ）が各符号化ブロックに適用され、８×８ブロックの周波数領域係数を生成する。図３Ｂは、ＤＣＴを符号化ブロック３１１に適用することで生成された８×８ブロック３０５の周波数領域係数を示す。図３Ｂに示されるように、ブロック３０５は、位置（０，０）に位置付けられたＤＣ係数３１５及びジグザグな順序３２５で配置された６３個のＡＣ係数（例えば、３１６）を含む。特定のＡＣ係数（例えば、３１６）の順序が高いほど、特定のＡＣ係数が符号化するエネルギーの周波数は高い。空間領域において、画像内の高周波数エネルギーは高速変化する値を表し、低周波数エネルギーは低速変化する階調度を表す。
【０００６】
ＤＣＴ変換ステップに後続して、次に６４個のＤＣＴ係数は量子化テーブルを使用して量子化される。一般に量子化テーブルは、高次ＡＣ係数を更に量子化する。更なる量子化は、ＡＣ係数が符号化するより高い周波数エネルギーを一般により少ない数のビットで表せるためである。ＤＣＴ係数の種々のレベルの量子化は、最後の符号化画像の大きさを調整するために利用される。最後に、量子化されたＤＣＴ係数は、ハフマン符号化等を使用して可逆的に符号化される。
【０００７】
量子化とは別に、最終的な符号化画像の大きさを調整するもう１つの方法は、画像のＤＣＴ係数を切り捨てる方法であり、最も高い周波数レベルの係数から開始し、所望のメモリターゲットに達した時に停止する。画像中の視覚情報の大半がＤＣ係数及びより低いＡＣ係数内で符号化されるため、そのような方法は機能する。
【０００８】
次に、図４Ａ及び図４Ｂを参照して、画像をスペクトルＪＰＥＧ符号化する方法を説明する。図４Ａは、８ビット画像の場合の符号化ブロックのＤＣＴ係数４１０を示す。そのようなＤＣＴ符号化ブロック毎に、ＤＣＴ係数４１０は、画像の低下する視覚品質のスペクトルバンド内に格納される。ＤＣＴ係数の順位が増加するにつれ、画像の視覚品質へのＤＣＴ係数の影響が低下することに直接関連する。従って、ＤＣＴ係数４１０は、全体の画質への関連性を低下させることでソートされるスペクトル区画（例えば、４１５及び４２５）にグループ化される。そのような構成において、画質は、上位スペクトル区画を削除することで徐々に低下される。このように、あまり関連しない区画を最初に除外することで適応的にメモリを解放することが可能である。例えば、余分なメモリが必要な場合、図４Ｂにおける区画ＡＣ５５−ＡＣ６３が最初に削除され、適応的にメモリを解放する。区画ＡＣ５５−ＡＣ６３は、視覚的に最も重要でないため削除される。メモリが更に必要な場合、次に視覚的に最も重要でない区画ＡＣ４５−ＡＣ５４が削除され、更なるメモリを解放する。
【０００９】
図４Ａは、４１５及び４２５として示された区画１及び２によるＤＣＴ係数４１０の区画を示す。図４Ｂは、図４ＡのＤＣＴ係数４１０に対する区画方式を示すテーブルである。図４Ｂに示されるように、区画１（４１５）はＤＣ係数を含み、区画２（４２５）はＡＣ係数ＡＣ１、ＡＣ２及びＡＣ３を含む。
【００１０】
ＪＰＥＧ圧縮法の１つの制限は、それが色成分毎に最大１２ビット画像に対してのみ規定されることである。
【００１１】
それ故、高ビット深度画像（すなわち、８ビットより大きい）を符号化する方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、既存の構成の１つ以上の欠点を実質的に克服するかあるいは少なくとも改善することである。
【００１３】
空間領域において画像を８ビット画像に縮小せずに高ビット深度画像を符号化する方法を提供することで上述の問題に対処しようとする構成を開示する。更に開示される方法により、標準的なＪＰＥＧ伸張器を使用してそのような高ビット深度符号化画像を伸張できる。
【課題を解決するための手段】
【００１４】
本発明の一態様によれば、画像の格納する方法であって、
画像の周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は複数のビットプレーンを有する
周波数領域表現をビットプレーンの第１のセット及びビットプレーンの第２のセットに分割するステップと、
ここで、前記ビットプレーンの第１のセットはビットプレーンの第２のセットより高いビットプレーンのセットである；
ビットプレーンの第１のセット及びビットプレーンの第２のセットの各々を複数の区画に区画するステップと、
ビットプレーンの第２のセットからの少なくとも１つの区画を、ビットプレーンの第１のセットの複数の区画に挿入し、画像の複数の配置された区画を生成するステップと、
画像の配置された区画を格納するステップと、
を備える方法が提供される。
【００１５】
本発明の別の態様によれば、画像を格納する方法であって、
画像の２３ビットの周波数領域表現を受信するステップと、
ここで、前記周波数領域表現は２３ビットのビットプレーンを有する
周波数領域表現を１５ビットのビットプレーンの第１のセット及び８ビットのビットプレーンの第２のセットに分割するステップと、
ここで、前記１５ビットのビットプレーンの第１のセットは８ビットのビットプレーンの第２のセットの上位のビットプレーンのセットである；
ビットプレーンの第１のセット及びビットプレーンの第２のセットの各々を複数の区画に区画するステップと、
ビットプレーンの第２のセットからの少なくとも１つの区画をビットプレーンの第１のセットの複数の区画に挿入し、画像の複数の配置された区画を生成するステップと、
画像の配置された区画を格納するステップと、
を備える方法が提供される。
【００１６】
本発明の更に別の態様によれば、画像を格納する装置であって、
画像の高ビット深度周波数領域表現を受信する手段と、
ここで、前記高ビット深度周波数領域表現は複数のビットプレーンを有する；
高ビット深度周波数領域表現をビットプレーンの第１のビットプレーン部分のセット及びビットプレーンの第２のビットプレーン部分のセットに分割する手段と、
ここで、前記ビットプレーンの第１のビットプレーン部分のセットはビットプレーンの第２のビットプレーン部分のセットより上位のビットプレーンのセットである；
ビットプレーンの第１のビットプレーン部分のセット及びビットプレーンの第２のビットプレーン部分のセットの各々を複数の区画に区画する手段と、
ビットプレーンの第２のビットプレーン部分のセットからの少なくとも１つの区画をビットプレーンの第１のビットプレーン部分のセットの複数の区画に挿入し、画像の複数の配置された区画を生成する手段と、
画像の配置された区画を格納する手段と、
を備える装置が提供される。
【００１７】
本発明の更に別の態様によれば、画像を格納するシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するために前記メモリに接続されたプロセッサと
を有するシステムであって、
前記プロセッサは、前記コンピュータプログラムにおける、
前記画像の高ビット深度周波数領域表現を受信する命令と、
ここで、高ビット深度周波数領域表現は複数のビットプレーンを有する；
前記高ビット深度周波数領域表現をビットプレーンの第１のセット及びビットプレーンの第２のセットに分割する命令と
ここで、前記ビットプレーンの第１のセットは前記ビットプレーンの第２のセットより上位のビットプレーンのセットである；
前記ビットプレーンの第１のセット及び前記ビットプレーンの第２のセットの各々を複数の区画に区画する命令、
前記ビットプレーンの第２のセットからの少なくとも１つの区画を前記ビットプレーンの第１のセットの前記複数の区画に挿入し、前記画像の複数の配置された区画を生成する命令、
前記画像の配置された区画を格納する命令、
を実行することを特徴とするシステムが提供される。
【００１８】
本発明の他の態様が更に開示される。
【図面の簡単な説明】
【００１９】
【図１】、
【図２】図１及び図２は、説明される構成が実施可能である汎用コンピュータシステムの概略ブロック図を形成する図。
【図３Ａ】図３Ａは、ＪＰＥＧ符号化のために符号化ユニットに分割されるビットマップ画像を示す概略図。
【図３Ｂ】図３Ｂは、８×８ＤＣＴブロックを示す概略図。
【図４Ａ】図４Ａは、８ビット画像の場合のＤＣＴ領域における品質区画を示す概略図。
【図４Ｂ】図４Ｂは、一例に係る８ビット画像の場合の区画方式を示すテーブルを示す図。
【図５】図５は、説明する構成を実施するソフトウェアアーキテクチャの一例を示す図。
【図６】図６は、１６ビット画像を格納する方法を示すフローチャート。
【図７】図７は、高ビット深度ＤＣＴ係数データを符号化する方法を示すフローチャート。
【図８Ａ】図８Ａは、高ビットプレーン部分及び低ビットプレーン部分に区画される高ビット深度ＤＣＴ係数データのブロックを示す概略ブロック図。
【図８Ｂ】図８Ｂは、高ビットプレーン部分及び低ビットプレーン部分を量子化した後の図８ＡのＤＣＴ係数データを示す概略ブロック図で。
【図８Ｃ】図８Ｃは、修正された標準的なＪＰＥＧ量子化テーブルを示す図。
【図８Ｄ】図８Ｄは、図８ＡのＤＣＴ係数データの低ビットプレーン部分を量子化するために使用する量子化テーブルを示す図。
【図８Ｅ】図８Ｅは、品質区画に区画された図８Ａの高ビットプレーン部分及び低ビットプレーン部分を示す概略ブロック図。
【図８Ｆ】図８Ｆは、区画の共通のセットを形成するように合成された品質区画の２つのセットを示す図。
【図８Ｇ】図８Ｇは、区画テーブルの一例を示す図。
【図９】図９は、メモリ内に格納された品質区画を示す概略図。
【図１０】図１０は、図６の方法に従って符号化されたＤＣＴデータのブロックを伸張する方法を示すフローチャート。
【発明を実施するための形態】
【００２０】
次に、以下の図面を参照して本発明の１つ以上の実施形態を説明する。
【００２１】
添付の図面のうちのいずれか１つ以上において同一の図中符号を有するステップ及び／又は機能を参照する場合、これらのステップ及び／又は機能は、逆の意図がない限りこの説明のために同一の機能又は動作を有する。
【００２２】
上述したように、ＪＰＥＧ圧縮法の１つの制限は、それが色成分毎に最大１２ビット画像に対してのみ規定されることである。このＪＰＥＧ圧縮法は、１６ビット以上の画像を取り入れるように拡張される。特にＪＰＥＧ圧縮法は、高ビット深度画像をＪＰＥＧ対応の２つ以上の低ビット深度画像に区画することにより、上述の残差画像の方法と組み合わせて拡張される。その後、低ビット深度画像は別個にＪＰＥＧ符号化される。そのような区画は、主画像及び１つ以上の残差画像を含む。しかし、高ビット深度画像の残差画像は、一般に非常にノイズが多いため、ＪＰＥＧ圧縮に適さない。
【００２３】
２つの部分にビット区画される高ビット深度値の場合、高次ビットプレーンを表すより上位のビット部分を、以下において「上位ビットプレーン部分」と呼び、低次ビットプレーンを表すより下位のビット部分を「下位ビットプレーン部分」と称する。
【００２４】
図５〜図１０を参照して、高ビット深度画像（すなわち、８ビットより大きいビット深度を有する）を格納する方法を以下に説明する。説明される方法は、高ビット深度画像を圧縮するＪＰＥＧ圧縮器を利用し、図３Ａ、図３Ｂ、図４Ａ及び図４Ｂを参照して上述したスペクトル区画ＪＥＰＧ符号化法の拡張部分である。１６ビット画像を参照して、方法を以下において例として説明する。しかし、説明される方法は、他の高ビット深度画像に拡張されてもよい。
【００２５】
図１及び図２は、ここで説明される方法を実施可能な汎用コンピュータシステム１００を示している。図１に示されるように、コンピュータシステム１００は、コンピュータモジュール１０１、キーボード１０２、マウスポインタデバイス１０３、スキャナ１２０、カメラ１２７及びマイク１８０等の入力デバイス、並びにプリンタ１１５、表示装置１１４及びスピーカ１１７を含む出力デバイスを備える。外部変復調器（モデム）送受信機デバイス１１６は、接続１２１を介して通信ネットワーク１２０と通信するためにコンピュータモジュール１０１により使用される。通信ネットワーク１２０は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク（ＷＡＮ）又は専用ＷＡＮである。接続１２１が電話線である場合、モデム１１６は従来の「ダイヤルアップ」モデムである。あるいは、接続１２１が大容量（例えば、ケーブル）接続である場合、モデム１１６はブロードバンドモデムである。無線モデムは、通信ネットワーク１２０に無線接続するために更に使用される。
【００２６】
コンピュータモジュール１０１は、一般に、少なくとも１つのプロセッサユニット１０５及びメモリユニット１０６を含む。例えばメモリユニット１０６は、半導体ランダムアクセスメモリ（ＲＡＭ）及び半導体読み出し専用メモリ（ＲＯＭ）を有する。コンピュータモジュール１０１は、ビデオディスプレイ１１４、スピーカ１１７及びマイク１８０に結合するオーディオ／ビデオインタフェース１０７、キーボード１０２、マウス１０３、スキャナ１２０、カメラ１２７及び選択的にジョイスティック又はヒューマンインタフェースデバイス（不図示）に結合する入出力（Ｉ／Ｏ）インタフェース１１３、並びに外部モデム１１６及びプリンタ１１５用のインタフェース１０８を含む複数のＩ／Ｏインタフェースを更に含む。いくつかの実現例において、モデム１１６は、インタフェース１０８等のコンピュータモジュール１０１内に組み込まれる。コンピュータモジュール１０１は、接続１２３を介してコンピュータシステム１００がローカルエリアネットワーク（ＬＡＮ）として既知であるローカルエリア通信ネットワーク１２２に接続できるようにするローカルネットワークインタフェース１１１を更に有する。図１に示されるように、ローカル通信ネットワーク１２２は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えたデバイスを含むワイドネットワーク１２０に接続１２４を介して更に結合する。ローカルネットワークインタフェース１１１は、Ｅｔｈｅｒｎｅｔ（登録商標）回路カード、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線装置又はＩＥＥＥ８０２．１１無線装置を備えるが、多数の他の種類のインタフェースがインタフェース１１１に対して実施されてもよい。
【００２７】
Ｉ／Ｏインタフェース１０８及び１１３は、直列接続性及び並列接続性のいずれか一方又は双方を提供する。一般に直列接続性は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に従って実現され、対応するＵＳＢコネクタ（不図示）を有する。記憶装置１０９が提供され、一般にハードディスクドライブ（ＨＤＤ）１１０を含む。フロッピディスクドライブ及び磁気テープドライブ（不図示）等の他の記憶装置が更に使用されてもよい。オプションのディスクドライブ１１２は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ  ＤｉｓｃTM）、ＵＳＢ−ＲＡＭ、取り外し可能な外部ハードドライブ及びフロッピディスク等のポータブルメモリ装置は、システム１００に対する適当なデータのソースとして使用される。
【００２８】
コンピュータモジュール１０１の構成要素１０５〜１１３は、一般に、相互接続バス１０４を介して通信し、結果として当業者に既知であるコンピュータシステム１００の動作の従来のモードから得られる方法で通信する。例えばプロセッサ１０５は、接続１１８を使用してシステムバス１０４に結合される。同様に、メモリ１０６及び光ディスクドライブ１１２は、接続１１９によりシステムバス１０４に結合される。ここで説明する構成が実施可能なコンピュータの例には、ＩＢＭのＰＣ及び互換性のあるもの、Ｓｕｎ  Ｓｐａｒｃｓｔａｔｉｏｎｓ、Ａｐｐｌｅ  ＭａｃTM又は同様のコンピュータシステムが含まれる。
【００２９】
ここで説明される方法は、コンピュータシステム１００を使用して実現される。説明される図５〜図１０の処理は、コンピュータシステム１００内で実行可能な１つ以上のソフトウェアアプリケーションプログラム１３３として実現される。特に、ここで説明される方法のステップは、コンピュータシステム１００内で実行されるソフトウェア１３３で命令１３１（図２を参照）により実施される。ソフトウェア命令１３１は、各々が１つ以上の特定のタスクを実行する１つ以上のコードモジュールとして形成される。ソフトウェアは２つの別個の部分に更に分割され、第１の部分及び対応するコードモジュールは説明される方法を実行し、第２の部分及び対応するコードモジュールは、第１の部分とユーザとの間のユーザインタフェースを管理する。
【００３０】
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読媒体に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム１００にロードされ、コンピュータシステム１００により実行される。そのようなソフトウェアを有するコンピュータ可読媒体又はコンピュータ可読媒体上に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム１００においてコンピュータプログラムを使用することにより、ここで説明される方法を実現する有利な装置を実施することが好ましい。
【００３１】
一般にソフトウェア１３３は、ＨＤＤ１１０又はメモリ１０６に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム１００にロードされ、コンピュータシステム１００により実行される。従って、例えばソフトウェア１３３は、光ディスクドライブ１１２により読み出される光学的に読み出し可能なディスク記憶媒体（例えば、ＣＤ−ＲＯＭ）１２５上に格納される。
【００３２】
いくつかの例において、アプリケーションプログラム１３３は、１つ以上のＣＤ−ＲＯＭ１２５上でユーザが符号化したものに供給され、対応するドライブ１１２を介して読み出されるか、あるいはユーザによりネットワーク１２０又は１２２から読み出される。また、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム１００に更にロードされる。コンピュータ可読記憶媒体は、実行及び／又は処理するために記録された命令及び／又はデータをコンピュータシステム１００に提供するあらゆる非一時的な有形記憶媒体を示す。そのような記憶媒体の例には、フロッピディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ、ハードディスクドライブ、ＲＯＭ又は集積回路、ＵＳＢメモリ、光磁気ディスク、あるいは例えばＰＣＭＣＩＡカード等のコンピュータ可読カードが含まれ、そのようなデバイスは、コンピュータモジュール１０１の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及び／又はデータをコンピュータモジュール１０１に提供することに更に関係する一時的又は非一時的なコンピュータ可読伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
【００３３】
上述したアプリケーションプログラム１３３の第２の部分及び対応するコードモジュールは、ディスプレイ１１４上にレンダリングされるかあるいは表される１つ以上のグラフィカルユーザインタフェース（ＧＵＩ）を実現するように実行される。一般にキーボード１０２及びマウス１０３を操作することにより、コンピュータシステム１００及びアプリケーションのユーザは、ＧＵＩと関連付けられたアプリケーションに制御コマンド及び／又は入力を提供するように機能的に適応可能な方法でインタフェースを操作する。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ１１７を介して出力された音声プロンプト及びマイク１８０を介して入力されたユーザボイスコマンドを利用するオーディオインタフェースが更に実現されてもよい。
【００３４】
図２は、プロセッサ１０５及び「メモリ」１３４を示す詳細な概略ブロック図である。メモリ１３４は、図１のコンピュータモジュール１０１によりアクセスされる全てのメモリモジュール（ＨＤＤ１１０及び半導体メモリ１０６を含む）の論理的な集約を示す。
【００３５】
コンピュータモジュール１０１の電源が最初に投入される場合、自己診断（ＰＯＳＴ）プログラム１５０が実行する。一般にＰＯＳＴプログラム１５０は、図１の半導体メモリ１０６のＲＯＭ１４９に格納される。ソフトウェアを格納するＲＯＭ１４９等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。ＰＯＳＴプログラム１５０は、コンピュータモジュール１０１内のハードウェアを調査して適切に機能することを保証し、一般に、正しく動作するためにＲＯＭ１４９に更に格納されたプロセッサ１０５、メモリ１３４（１０９、１０６）及び基本入出力システム（ＢＩＯＳ）ソフトウェアモジュール１５１をチェックする。ＰＯＳＴプログラム１５０が正常に実行したら、ＢＩＯＳ１５１は図１のハードディスクドライブ１１０を起動する。ハードディスクドライブ１１０を起動することにより、ハードディスクドライブ１１０上に常駐するブートストラップローダプログラム１５２がプロセッサ１０５を介して実行する。これにより、オペレーティングシステム１５３は、ＲＡＭメモリ１０６にロードされると動作を開始する。オペレーティングシステム１５３は、プロセッサ１０５により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
【００３６】
オペレーティングシステム１５３は、メモリ１３４（１０９、１０６）を管理し、コンピュータモジュール１０１上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、図１のシステム１００で使用可能な種々のメモリは、各処理が効率的に実行できるように適切に使用される必要がある。従って、集約メモリ１３４は、メモリの特定の部分が割り当てられる方法を示すことを意図せず（特に記載されない限り）、コンピュータシステム１００によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
【００３７】
図２に示されるように、プロセッサ１０５は、制御ユニット１３９、演算論理装置（ＡＬＵ）１４０及びキャッシュメモリと呼ばれることもあるローカルメモリ又は内部メモリ１４８を含む多数の機能モジュールを含む。一般にキャッシュメモリ１４８は、レジスタ部に複数の記憶レジスタ１４４〜１４６を含む。１つ以上の内部バス１４１は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ１０５は、接続１１８を使用してシステムバス１０４を介して外部デバイスと通信する１つ以上のインタフェース１４２を更に有する。メモリ１３４は、接続１１９を使用してバス１０４に結合される。
【００３８】
アプリケーションプログラム１３３は、条件付き分岐命令及びループ命令を含む一連の命令１３１を含む。プログラム１３３は、プログラム１３３を実行するために使用されるデータ１３２を更に含む。命令１３１及びデータ１３２は、それぞれ、記憶場所１２８、１２９、１３０及び１３５、１３６、１３７に格納される。命令１３１及び記憶場所１２８〜１３０の相対的な大きさに依存して、特定の命令は、記憶場所１３０に示された命令により描かれたように単一の記憶場所に格納される。あるいは、命令は、記憶場所１２８及び１２９に示された命令部分により描かれたように、各々が別個の記憶場所に格納される多数の部分にセグメント化される。
【００３９】
一般にプロセッサ１０５には、内部で実行される命令のセットを与えられる。プロセッサ１０５は、命令の別のセットを実行することにより自身が反応する後続の入力を待つ。各入力は、入力デバイス１０２、１０３の１つ以上により生成されたデータ、ネットワーク１２０、１０２のうちの一方を介して外部ソースから受信したデータ、記憶装置１０６、１０９のうちの一方から検索したデータ又は対応する読み取り装置１１２に挿入された記憶媒体１２５から検索したデータを含む多数のソースのうちの１つ以上から提供され、その全てが図１に示される。いくつかの例において、命令のセットを実行した結果、データが出力される。実行することは、データ又は変数をメモリ１３４に格納することを更に含む。
【００４０】
ここで説明される方法は、対応する記憶場所１５５、１５６、１５７においてメモリ１３４に格納される入力変数１５４を使用する。また、ここで説明される方法は、対応する記憶場所１６２、１６３、１６４においてメモリ１３４に格納される出力変数１６１を生成する。中間変数１５８は、記憶場所１５９、１６０、１６６及び１６７に格納される。
【００４１】
図２のプロセッサ１０５を参照すると、レジスタ１４４、１４５、１４６、演算論理装置（ＡＬＵ）１４０及び制御ユニット１３９は、プログラム１３３を構成する命令セットにおいて命令毎に「取り込み、復号及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、復号及び実行サイクルの各々は、以下を含む。
（ａ）記憶場所１２８、１２９、１３０からの命令１３１を取り込むかあるいは読み取る取り込み動作。
（ｂ）制御ユニット１３９が取り込まれた命令を判定する復号動作。
（ｃ）制御ユニット１３９及び／又はＡＬＵ１４０が命令を実行する命令動作。
【００４２】
その後、次の命令に対する更なる取り込み、復号及び実行サイクルが実行される。同様に、制御ユニット１３９が値を記憶場所１３２に格納するかあるいは書き込むことにより、格納サイクルが実行される。
【００４３】
図５〜図１０の処理におけるステップ又はサブ処理の各々は、プログラム１３３の１つ以上の部分と関連付けられ、プログラム１３３の示された部分に対して命令セットにおいて命令毎に取り込み、復号及び実行サイクルを実行するようにプロセッサ１０５のレジスタ部１４４、１４５、１４７、ＡＬＵ１４０及び制御ユニット１３９が共に動作することで実行される。
【００４４】
あるいは、ここで説明される方法は、説明される方法の機能又は副機能を実行する１つ以上の集積回路等の専用のハードウェアにおいて実現されてもよい。そのような専用のハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ又は１つ以上のマイクロプロセッサ及び関連メモリを含む。
【００４５】
図５に、ここで説明される方法を実現するソフトウェアアーキテクチャ５００の一例を示す。図５に示されるように、ソフトウェアアーキテクチャ５００は、ソフトウェアモジュール５０１、５０２、５０３、５０４、５０５、５１１、５５０及び５９９を含む。ソフトウェアモジュール５０１、５０２、５０３、５０４、５０５、５１１、５５０及び５９９は、「拡張スペクトルＪＰＥＧ圧縮器」を実現するために使用される。
【００４６】
ソフトウェアアーキテクチャ５００のソフトウェアモジュール５０１、５０２、５０３、５０４、５０５、５１１、５５０及び５９９の各々は、ハードディスクドライブ１１０上に常駐し且つプロセッサ１０５による実行の際に制御されているソフトウェアアプリケーションプログラム１３３の１つ以上のコードモジュールとして実現される。
【００４７】
図５に示されるように、色変換器モジュール５０１は、必要に応じて入力画像データを適切な処理色空間に変換する。以下に説明する例によれば、色変調器モジュール５０１は、入力画像データを赤緑青（ＲＧＢ）色空間に変換する。あるいは、入力画像データは、ＹＣｂＣｒ色空間に更に変換されてもよい。ＤＣＴユニットモジュール５０２は、８×８ブロックの単位でＲＧＢ入力画像データに対してＤＣＴを実行し、ＤＣＴ係数を出力する。一実現例において、ＤＣＴユニットモジュール５０２は、ＪＰＥＧ圧縮法を使用して入力画像を圧縮する。上述したように、ＪＰＥＧ圧縮法は、色成分毎に最大１２ビット画像に対して規定される。従って、入力画像がＤＣＴユニットモジュール５０２に送出される前に、画像は、空間領域において上位ビットブレーン部分及び下位ビットプレーン部分に分割される。次にＤＣＴユニットモジュール５０２は、空間領域の上位ビットプレーン部分及び下位ビットプレーン部分を別個に周波数領域等価物８１５、８１６へと変換する。量子化器モジュール３０５は、プロセッサ１０５の実行下で、２つの量子化テーブル５１２を使用してＤＣＴ係数の８×８空間領域ブロックを量子化する。２つの量子化テーブル５１２は、ＪＰＥＧ量子化テーブル、及び、修正された量子化テーブルを含む。量子化器モジュール５０３は、量子化係数を出力する。量子化テーブル８２７及び８２８の例をそれぞれ図８Ｃ及び図８Ｄに示す。量子化テーブル８２７及び８２８は、プロセッサ１０５によりメモリ１０６からアクセスされる。
【００４８】
量子化器５０３は、図３Ｂに示されたようなジグザグな状態で走査することで、より低い周波数成分からより高い周波数成分に量子化係数の８×８ブロックを６４個の１次元の量子化係数に更に再配列する。次に量子化係数は、区画テーブル５１４に従って区画器モジュール５０４により品質区画に分割される。区画は視覚品質軸に沿って行われる。これは、区画がＤＣＴ係数の周波数レベルに従って実行されることを意味する。特定の一実現例において、例えば、ＤＣＴデータのＤＣ係数は区画を割り当てられ、ＤＣＴデータのＡＣ１−ＡＣ３は第２の区画を割り当てられ、ＤＣＴデータのＡＣ４−ＡＣ７は第３の区画を割り当てられる。区画器モジュール５０４は、ハフマン符号器モジュール５０５又はＲＡＷ符号器モジュール５５０のいずれかに品質区画を供給する。
【００４９】
ハフマン符号器モジュール５０５は、プロセッサ１０５の実行下で、ハフマンテーブル５１３及びあらゆる適切なハフマン符号化法を使用して品質区画において入力１次元データを符号化する。ハフマン符号器モジュール５０５は、符号化データ、各符号化データの長さ（ビットの数で表された「コード長」）及び対応する符号化データが割り当てられる区画を表す番号（以下「区画番号」と呼ぶ）を出力する。ＲＡＷ符号器モジュール５５０は、品質区画において１次元データを単一の区画として符号化し、生符号化データ及び対応する符号化データが割り当てられる区画を表す区画番号を出力する。
【００５０】
「区画番号」に基づいて、区画制御器モジュール５１１は、「区画番号」で示された区画に対応する圧縮データをメモリ１０６内に構成された圧縮メモリモジュール５９９に書き込む。圧縮メモリモジュール５９９は区画（例えば、８４２、８４９）に分割され（図８Ｆを参照）、符号化データの各々は、そのデータの区画番号に対応する区画に書き込まれる。
【００５１】
次に、図６を参照して１６ビット画像を格納する方法６００を説明する。この方法６００は、ハードディスクドライブ１１０上に常駐し且つプロセッサ１０５により実行される際に制御されているソフトウェアモジュール５０１、５０２、５０３、５０４、５０５、５１１、５５０及び５９９により実現される。上述したように、ソフトウェアモジュール５０１、５０２、５０３、５０４、５０５、５１１、５５０及び５９９は、拡張スペクトルＪＰＥＧ圧縮器を実現し、上述した形式で１６ビット画像を符号化する。ソフトウェアモジュール５０１、５０２、５０３、５０４、５０５、５１１、５５０及び５９９は、ソフトウェアアプリケーションプログラム１３３の１つ以上のコードモジュールを形成する。
【００５２】
この方法６００は入力ステップ６１０において開始し、高ビット深度画像を含む入力が色変調器モジュール５０１からＤＣＴユニットモジュール５０２により受信される。分割ステップ６２０において、ＤＣＴユニットモジュール５０２は、プロセッサ１０５の実行下にて、画像を符号化ブロックとしても既知である８×８画素のブロックに分割する。符号化ブロックは、メモリ１０６又は記憶装置１０９に格納される。判断ステップ６３０において、プロセッサ１０５が処理対象の符号化ブロックが更にあると判定する場合、方法６００はステップ６４０に進む。さもなければ、方法６００は終了する。
【００５３】
変換ステップ６４０において、ＤＣＴユニットモジュール５０２は、プロセッサ１０５の実行下にて、離散コサイン変換（ＤＣＴ）を現在の符号化ブロックに適用する。ＤＣＴは、浮動小数点数又は固定小数点方式のいずれかを使用して適用される。ステップ６４０におけるＤＣＴユニットモジュール５０２からの出力は、高ビット深度ＤＣＴ係数データのブロックである。１６ビット画像の場合、ステップ６４０でＤＣＴユニットモジュール５０２により出力された係数データのブロックは、整数を使用してＤＣＴ係数毎に最大２３ビットである。ＤＣＴユニットモジュール５０２により出力された高ビット深度ＤＣＴ係数データのブロックは、メモリ１０６に格納される。
【００５４】
次に符号化ステップ６５０において、ＤＣＴユニットモジュール５０２により出力された高ビット深度係数ＤＣＴ係数データが符号化される。図７を参照して、ステップ６５０で実行されたような高ビット深度係数ＤＣＴ係数データを符号化する方法７００を以下に詳細に説明する。図８Ａに示された高ビット深度ＤＣＴデータ８１１のブロックを参照して、方法７００を例として説明する。
【００５５】
図８Ａ〜図８Ｆは、方法７００の各ステップにおける高ビット深度ＤＣＴデータ８１１のブロックの状態を示す。この方法７００は、ハードディスクドライブ１１０上に常駐し且つプロセッサ１０５により実行される際に制御されているソフトウェアモジュール５０３、５０４、５０５、５１１、５５０及び５９９により実現される。ソフトウェアモジュール５０１、５０２、５０３、５０４、５０５、５１１、５５０及び５９９は、ソフトウェアアプリケーションプログラム１３３の１つ以上のコードモジュールを形成する。
【００５６】
方法７００は入力ステップ７０１において開始し、量子化器モジュール５０３が画像の高ビット深度周波数領域表現を受信するステップを実行する。特に量子化器モジュール５０３は、ＤＣＴユニットモジュール５０２により出力された高ビット深度ＤＣＴ係数データ８１１のブロックを含む入力を受信する。
【００５７】
分割ステップ７１０において、量子化器モジュール５０３は、プロセッサ１０５の実行下にて、高ビット周波数領域表現を上位ビットプレーン部分及び下位ビットプレーン部分に分割するステップを実行する。図８Ａの例によれば、ステップ７１０において、量子化器モジュール５０３は、図８Ａに示されるように高ビット深度ＤＣＴ係数データ８１１のブロックを下位ビットプレーン部分８１６及び上位ビットプレーン部分８１５に分離する。一実現例において、上位ビットプレーン部分８１５は、標準的なＪＰＥＧハフマンテーブルを使用して符号化される最大ビット数に対応する１５ビットの情報を含む。この場合、下位ビットプレーン部分８１６は残りのビットの情報を含む。１６ビット画像の場合、下位ビットプレーン部分８１６は８ビットの情報を含む。
【００５８】
量子化ステップ７２０において、量子化器モジュール５０３は、プロセッサ１０５の実行下にて、量子化処理をＤＣＴ係数データ８１１の下位ビットプレーン部分８１６及び上位ビットプレーン部分８１５の双方に適用する。それに応じて、高ビット深度周波数領域表現（すなわち、高ビット深度ＤＣＴ係数データ８１１）の上位ビットプレーン部分８１５及び下位ビットプレーン部分８１６は、ステップ７２０で量子化される。図８Ｂは、ステップ７２０における量子化後のＤＣＴ係数データ８１１のブロックを示す。
【００５９】
ステップ７２０において、上位ビットプレーン部分８１５を量子化するために第１の量子化テーブルを使用し、下位ビットプレーン部分８１６を量子化するために第２の量子化テーブルを使用する。特に、上位ビットプレーン部分８１５に対して、図８Ｃに示されるような修正された標準的なＪＰＥＧ量子化テーブル８２７は、上位ビットプレーン部分の一部のより低い周波数ＤＣＴ係数が量子化されていない状態で量子化データ８２５を生成するために使用される。量子化処理において、より高い周波数ＤＣＴ係数８２９のビットの一部が除外される。この特定の例において、量子化は、ＤＣＴ係数の視覚的重要性又は周波数レベルに依存する。ＤＣ成分及びより低いＡＣ係数は量子化されず、ＤＣＴ係数の周波数レベルが上がるにつれ、量子化レベルは上がる。下位ビットプレーン部分においてより低い周波数ＤＣＴ係数に対応するデータ８２６（例えば、ＤＣレベル係数及びＡＣ１−ＡＣ３レベル係数に対応するデータ）の一部のみが量子化されていない状態となるように、下位ビットプレーン部分８１６は図８Ｄに示されるようなテーブル８２８を使用して量子化される。量子化処理は、下位ビットプレーン部分の所定の周波数レベル８２４より高い全てのＤＣＴ係数をゼロに量子化することにより、ＤＣＴ係数８２４のより高い周波数成分におけるビットの部分を除外する。
【００６０】
上述したように、高ビット深度画像は、８ビット画像より精細な階調を提供するために望ましい。そのようなより精細な階調は、低速変化する階調度情報を含む画像の領域において特に顕著である。ビット深度に関して、余分な階調度レベルは、画像に対するビットデータの低ビットプレーン部分内で符号化される。そのような余分な階調度レベルは、画像データの空間領域及びＤＣＴ領域の双方において発生する。また、ＤＣＴ領域内において、種々のＤＣＴ係数は画像の種々のエネルギー周波数を符号化する。ＤＣ係数及びより低いごく僅かなＡＣ係数は、空間領域において低速変化する階調度に対応する画像の低周波数エネルギーの殆どを符号化する。
【００６１】
上述した余分な階調度レベル及び種々のエネルギー周波数を符号化する種々のＤＣＴ係数に基づいて、量子化ステップ７２０に後続して格納される必要のあるＤＣＴ領域内の下位ビットプレーンデータの最も関連する部分を判定することが可能である。一実現例において、ＤＣＴ係数データ８１１のＤＣ係数及び最初の５つのＡＣ係数の下位ビットプレーン部分は、ＤＣＴ係数データ８１１の量子化に後続してステップ７２０でメモリ１０６に格納される。より大きな係数番号を含むＤＣＴ係数に対して符号化された下位ビットプレーン情報はあまり関連しない。
【００６２】
区画ステップ７３０において、区画器モジュール５０４は、プロセッサ１０５の実行下にて、ＤＣＴ係数データ８１１のブロックの量子化上位ビットプレーン部分データ８２５及び量子化下位ビットプレーン部分データ８２６をそれぞれ図８Ｅに示されるような複数の品質区画（上位ビットプレーン部分８３１及び下位ビットプレーン部分８３６）に区画するステップを実行する。一般に、量子化上位ビットプレーン部分データ８２５及び量子化下位ビットプレーン部分データ８２６は、ステップ７３０で少なくとも３つの品質区画に区画される。上位ビットプレーン部分データ８２５は、図４ＡのＤＣＴ係数４１０の区画と同様の方法で全体の画質との関連性を低下させることでソートされた上位ビットプレーン部分８３１のスペクトル区画に区画される。下位ビットプレーン部分データ８２６の場合、データ８２６の部分は、図８Ｅに示されるような単一の区画８３６に区画される。
【００６３】
一実現例において、高ビット深度周波数領域表現は、上位ビットプレーン部分８１５及び下位ビットプレーン部分８１６が形成される前にステップ７１０で１つ以上の品質区画（例えば、８３１、８３６）に区画される。そのような一実現例において、上述したステップ７１０及び７３０は実質的に入れ替えられる。
【００６４】
符号化ステップ７４０において、下位ビットプレーン部分データ８２６の上位ビットプレーン部分８３１の品質区画はハフマン符号器モジュール５０５により符号化され、上位ビットプレーン部分データ８２５の品質区画８３６はＲＡＷ符号器モジュール５５０により符号化される。その後、符号化された品質区画は、各区画（例えば、８３３及び８３６）の個々の品質の重要性に従って、プロセッサ１０５により共にソートされた順に区画制御器モジュール５１１により圧縮メモリモジュール５９９に格納される。符号化された品質区画を格納する前に、プロセッサ１０５は、視覚的重要性の低い順に１つ以上の品質区画を配置するステップを実行する。その後、配置された品質区画は圧縮メモリモジュール５９９に格納される。
【００６５】
図８Ｆ及び図８Ｇは、各品質区画（例えば、８４６）からの符号化データがステップ７４０で合成され且つ格納される方法を示す。図８Ｆに示されるように、下位ビットプレーン部分データ８２６及び上位ビットプレーン部分データ８２５から導出された下位ビットプレーン部分８４６及び上位ビットプレーン部分８４１のハフマン符号化された品質区画の２つのセットは、それぞれ、下位ビットプレーン部分８３６の区画及び上位ビットプレーン部分８３１の区画の品質性に基づいて、区画制御器モジュール５１１によりステップ７４０で区画８６１の共通のセットに合成される。各区画（例えば、８３３）の個々の品質の重要性は、特定の区画が再構成画像の全体の画質に影響を与える情報量である。一実現例において、区画の品質の重要性は、視覚品質に基づいて予め判定される。平均二乗誤差（ＭＳＥ）、ピーク信号対雑音比（ＰＳＮＲ）、心理視覚評価又は他のあらゆる適切な方法等の視覚品質測定値は、区画の品質の重要性を判定するために使用される。
【００６６】
量子化下位ビットプレーン部分８３６が入るべき場所を判定するため、区画８３６は、上位ビットプレーン部分８３１において所定の数の場所に挿入される。例えば、図８Ｇを参照すると、挿入された下位ビットプレーン部分は、「セグメント１」と呼ばれ、区画ＡＣ３５−ＡＣ４４と区画ＡＣ４５−ＡＣ５４との間に挿入される。「セグメント１」が入るべき場所を判定する実現例において、例えば「セグメント１」は、区画７と区画８との間、同様に、区画１０と区画１１との間に更に挿入しても良い。その後、各高ビットプレーンの視覚品質測定値は、種々の場所においてＤＣからＡＣ６３及び「セグメント１」を区画する。この特定の例において、区画ＡＣ３５−ＡＣ４４と区画ＡＣ４５−ＡＣ５４との間の「セグメント１」を含む上位ビットプレーン区画のＰＳＮＲ等の視覚品質測定値は３つの構成の中で最も高い。従って、この場所は、下位ビットプレーン区画８５２に対してプロセッサ１０５により選択される。
【００６７】
区画テーブル５１４は、所定の視覚品質を使用して下位ビットプレーン部分データ８２６及び上位ビットプレーン部分データ８２５の双方の品質区画をランク付けすることでプロセッサ１０５により構成される。一実現例において使用された区画テーブル５１４を図８Ｇに示す。図８Ｇに示されるように、区画テーブル５１４の区画番号は各区画の品質の重要性を示し、１が最高品質を示し、１１が最低品質を示す。ハフマン符号化された区画８６１における画像データをプロセッサ１０５の復号器が復号化できるように、区画テーブル５１４はメモリ１０６に格納される。一実現例において、上位ビットプレーン部分データ８２５に対する上位ビットプレーン部分８３１の品質区画に対応する上位ビットプレーン部分８４１のハフマン符号化された品質区画は、区画８４２、８４３、８４４〜最後の区画８４９を含み、下位ビットプレーン部分８２６に対する品質区画８３６に対応し且つ区画８５２を含むハフマン符号化された品質区画８４６は、各区画の区画番号に従って上位ビットプレーン部分８４１のハフマン符号化された区画間に区画８５２を差し込むことで品質区画８６１の共通のセットに合成される。
【００６８】
一実現例において、ハフマン符号化された上位ビットプレーン部分８４１における区画８５２の位置は、ユーザにより判定される。ユーザは、結果として得られる復号化ＪＰＥＧ画像において下位ビットプレーン８５２から区画の種々の位置の効果を評価し、ユーザが検出するようなＪＰＥＧ画像に対する種々の位置において挿入された下位ビットプレーン区画により発生した視覚歪みを最小限にする位置を選択する。
【００６９】
別の実現例において、区画８５２の位置は、ＰＳＮＲ測定値等の視覚品質測定値を使用して判定される。品質区画８５２は、所定数の場所（例えば、３箇所）に挿入される。プロセッサ１０５は、図８Ｇの品質区画を使用して、区画１０と区画１１との間、区画８と区画１０との間及び区画７と区画８との間にそれぞれ挿入された下位ビットプレーン区画８５２を含むハフマン符号化された品質区画８６１のＰＳＮＲ測定値を算出する。データの上位ビットプレーンの３つの異なるＰＳＮＲ測定値を下位ビットプレーン区画８５２の種々の位置と比較することにより、最も高いＰＳＮＲ測定値を与える区画８５２の位置はハフマン符号化のために選択される。例によれば、区画８と区画１０との間の位置は、下位ビットプレーン区画８５２に対してプロセッサ１０５により選択される。
【００７０】
図９は、一実現例においてメモリ１０６内に格納されたハフマン符号化された品質区画（例えば、８４２、８４３、８４４、８５２、８４９）を示す概略図である。圧縮画像を表す品質区画（例えば、８４２、８４３、８４４、８５２、８４９）からのデータを含むメモリ１０６は、複数のヘッダ及びメモリチャンク（memory chunk）から構成される。各「メモリチャンク」は特定の品質区画ヘッダに対応する。区画ヘッダは、区画番号、区画の長さ、関連するメモリチャンクにアクセスする方法等の区画情報又は必要に応じて他の更なる情報を格納する。「メモリチャンク」という用語は、圧縮画像データを格納するために、必ずしも連続しないが論理的に連続したメモリのチャンクを形成するように共にリンクしたメモリの１つ以上のブロックを示す。区画毎のハフマン符号化されたＤＣＴデータは、それぞれのメモリチャンク内に格納される。例えば本発明の例において、ハフマン符号化された区画データ８４２を格納するチャンク９５１は「区画１」に対するヘッダ９０２と関連付けられ、ハフマン符号化された区画データ８５２を格納するチャンク９５９は、「区画９」に対するヘッダ９１２と関連付けられる。
【００７１】
特定のメモリターゲットが必要な場合、メモリは、最低品質の区画から始まる品質区画を削除することで解放される。このように、最後の出力画像の画質は、メモリリソース要件を満たすのに必要とされるのと同程度のみ低下する可能性がある。
【００７２】
上述の方法は、高ビット深度画像を圧縮及び格納するために使用される。上述したように、ソフトウェアモジュール５０１、５０２、５０３、５０４、５０５、５１１、５５０及び５９９は、「拡張スペクトルＪＰＥＧ圧縮器」を実現するために使用される。図７において説明した方法７００は、ステップ７４０で合成及び格納された各品質区画（例えば、８４６）からの符号化データを伸張するように逆にされる。
【００７３】
次に、図１０を参照して、方法６００に従って符号化された高ビット深度係数データを伸張する方法１０００を説明する。伸張モジュールは、プロセッサ１０５及びメモリ１０６を含む圧縮データを受信する別のコンピュータ上に常駐する。伸張モジュールは、搭載プロセッサ及び搭載メモリを含むプリンタ１１５等のレンダリングデバイス上に更に常駐しても構わない。図８Ａ〜図８Ｇの例を参照して、この方法１０００を説明する。この方法１０００は、ステップ７４０で合成及び格納された各品質区画（例えば、８４６）からの符号化データを伸張するために使用される。
【００７４】
方法１０００は、ハードディスクドライブ１１０上に常駐し且つプロセッサ１０５により実行される際に制御されているソフトウェアアプリケーションプログラム１３３の１つ以上のコードモジュールとして実現される。
【００７５】
方法１０００は合成ステップ１０１０において開始し、上位ビットプレーン部分データ８２５に対する品質区画８３１に対応する上位ビットプレーン部分８４１のハフマン符号化された品質区画がプロセッサ１０５によりメモリ１０６に格納されるＤＣＴデータの高ビットプレーン部分に復号化及び合成される。図８Ａ〜図８Ｇの例によれば、ステップ１０１０で生成されたデータの部分は、図８Ｂに示されるような量子化データ８２５に少なくとも類似するかあるいは実質的に同一である。図８Ｇを参照して、「セグメント１」とラベル付けされた区画９以外の全ての区画は、ＤＣＴデータの量子化高ビットプレーン部分を形成するようにプロセッサ１０５により合成され、メモリ１０６に格納される。下位ビットプレーン部分データ（例えば、ＤＣレベル係数及びＡＣ１−ＡＣ３レベル係数に対応するデータ）を含む区画の場所は、別のコンピュータ上に常駐する圧縮モジュールから受信される。
【００７６】
次に合成ステップ１０２０において、下位ビットプレーン部分データ８２６に対する品質区画８３６に対応するハフマン符号化された品質区画８４６は、復号化され、メモリ１０６に格納されるＤＣＴデータの第２の下位ビットプレーン部分に合成される。ステップ１０２０で生成されたデータの下位ビットプレーン部分は、図８Ｂに示されるようなデータ８２６に少なくとも類似するかあるいは実質的に同一である。図８Ｇを参照して、「セグメント１」とラベル付けされた区画９は、ＤＣＴデータの量子化高ビットプレーン部分を生成するために使用され、メモリ１０６に格納される。
【００７７】
方法１０００は逆量子化ステップ１０３０に継続し、逆量子化がプロセッサ１０５によりそれぞれステップ１０１０及び１０２０で構成され且つ格納されたＤＣＴデータの上位ビットプレーン部分及び下位ビットプレーン部分の双方に適用される。あらゆる適切な逆量子化法はステップ１０３０で使用される。一実現例は、例えば量子化テーブル８２７等の上位ビットプレーン量子化テーブルにおいて上位ビットプレーンＤＣＴ係数の各々に対応する値を掛けることでステップ１０１０により構成されたＤＣＴデータの上位ビットプレーン部分に対して逆量子化を実行し、ステップ１０２０により構成されたＤＣＴデータの下位ビットプレーン部分は、例えば量子化テーブル８２８等の下位ビットプレーン量子化テーブルにおいて下位ビットプレーンＤＣＴ係数の各々に対応する値を掛けることで逆量子化される。
【００７８】
合成ステップ１０４０においては、ＤＣＴデータの上位ビットプレーン部分及び下位ビットプレーン部分は、メモリ１０６においてアクセスされ、係数データの高ビット深度ＤＣＴブロックを生成するようにプロセッサ１０５により合成される。係数データの高ビット深度ＤＣＴブロックはメモリ１０６に格納される。図８Ａ〜図８Ｇの例によれば、ステップ１０４０で生成された係数データの高ビット深度ＤＣＴブロックは、図８Ａに示されるような高ビット深度ＤＣＴ係数データ８１１に少なくとも類似するかあるいは実質的に同一である。
【００７９】
次にステップ１０５０において、ステップ１０４０で生成された高ビット深度ＤＣＴ係数データのブロックは、あらゆる適切な逆ＤＣＴ法を使用して８×８画素画像ブロックに変換される。
【００８０】
一実現例において、方法１０００を実行するのに適した対応する修正されたＪＰＥＧ伸張器を利用できない場合、標準的なＪＰＥＧ伸張器は、圧縮データが前処理された後に使用される。そのような一実現例によれば、符号化ブロック毎に、前処理は、ＤＣＴデータの下位ビットプレーン部分と関連付けられた区画を破棄すること、及び、区画されたＤＣＴ係数から構成される残りの区画を単一のメモリ区画に連結することから構成される。
【００８１】
ここで説明した構成は、コンピュータ業界及びデータ処理業界、並びに特に画像処理に適用可能である。
【００８２】
上記の記述は本発明のいくつかの実施形態のみを説明し、本発明の範囲及び趣旨から逸脱せずに、変形及び／又は変更がいくつかの実施形態に対して行なわれる。実施形態は、限定するものではなく例示するものである。例えば、種々の入力画像に対して方法６００と関連付けられた多くのパラメータを変更することが可能である。変形は、ＤＣＴデータの下位ビットプレーン部分及びＤＣＴデータの上位ビットプレーン部分の量子化の量及び種類を含みうるがそれらに限定されない。例えば、ＤＣＴ係数データの上位ビットプレーン部分及び下位ビットプレーン部分を量子化するために種々の量子化テーブルを使用するのではなく、方法６００は、ＤＣＴ係数データの上位ビットプレーン部分及び下位ビットプレーン部分の双方を量子化するためにたった１つの量子化テーブルを使用するように変更される。
【００８３】
また、ＤＣＴデータの下位ビットプレーン部分及び上位ビットプレーン部分の区画戦略は変更される。例えば、単一の区画を使用するのではなく、ＤＣＴデータの下位ビットプレーン部分は、ＤＣＴ係数、ビットプレーンレベル又は双方の組合せに基づいて多数の品質区画に区画される。
【図１】
0005318256.tif 000002
【図２】
0005318256.tif 000003
【図３Ａ】
0005318256.tif 000004
【図３Ｂ】
0005318256.tif 000005
【図４Ａ】
0005318256.tif 000006
【図４Ｂ】
0005318256.tif 000007
【図５】
0005318256.tif 000008
【図６】
0005318256.tif 000009
【図７】
0005318256.tif 000010
【図８Ａ】
0005318256.tif 000011
【図８Ｂ】
0005318256.tif 000012
【図８Ｃ】
0005318256.tif 000013
【図８Ｄ】
0005318256.tif 000014
【図８Ｅ】
0005318256.tif 000015
【図８Ｆ】
0005318256.tif 000016
【図８Ｇ】
0005318256.tif 000017
【図９】
0005318256.tif 000018
【図１０】
0005318256.tif 000019