"既圧縮デジタルファイルを圧縮する方法であって、a最初のステップとして、1以上のデータタイプの圧縮されたデータを含む入力データストリームを受け取るステップと、b各データタイプを識別するステップと、c複数の圧縮手法から、ステップbにおいて識別された各データタイプに最適化された少なくとも1つの圧縮手法を選択するステップであって、各選択された圧縮手法は入力データストリーム内の圧縮されたデータを圧縮するのに元々用いられた圧縮手法とは種類が異なっており、かつ元々用いられた圧縮手法よりもより積極的でありおよび/またはより優れているものであるようなステップと、d入力データを完全にまたは部分的に伸張するステップと、eステップdに続いて、伸張されたデータを、ステップcで選択された圧縮手法を用いて再圧縮するステップと、f再圧縮されたデータを出力に送るステップと、を含むことを特徴とする方法。請求項1記載の方法において、ステップdにて各データタイプを圧縮するのに用いた圧縮手法をエンコードするステップ、を更に含む方法。請求項1記載の方法において、gステップfで圧縮されたデータを伸張するステップ、を更に含む方法。請求項3記載の方法において、ステップgはiステップfからの出力からなるデータ入力ストリームを受け取ること、iiデータ入力ストリームから、ステップdにおいてデータを圧縮するのに用いた圧縮手法のタイプを読みとること、iii適切な伸張器を用いてデータを伸張すること、を含む方法。請求項1記載の方法において、ステップbはデータタイプ選択器によって実行され、ステップcは、各データタイプをそのデータタイプ内に存するコアデータユニットに分解するステップを含む方法。請求項5記載の方法において、データタイプ選択についての情報を出力に送るステップを更に有する方法。請求項5記載の方法において、ステップcは選択に基づく圧縮器呼出器によって実行され、選択に基づく圧縮器呼出器は入力データユニットから分解されたコアデータユニットを、そのタイプのデータに最適な圧縮器に送る方法。請求項1記載の方法において、ステップeは1以上の最適な圧縮器によって実行され、該圧縮器は少なくとも画像圧縮器および/またはテキスト圧縮器および/またはマシンコード圧縮器および/またはテーブル圧縮器および/または汎用圧縮器および/またはこれらのいくつかの組み合わせからなる方法。請求項1記載の方法において、ステップaは入力JPEGファイルを受け取ることを含み、ステップdはJPEGファイルを量子化されたブロックが復元されるまで伸張することを含み、ステップeは量子化されたブロックをJPEGブロックプロセッサを用いて圧縮することを含む方法。請求項9記載の方法において、画像データプロセッサを用いてステップa乃至dの出力を受け取ること、画像の終端に達したか否かを判定することと、画像の終端に達したとき、それ以上の圧縮を施さないことと、画像の終端に達しないとき、元々用いられた圧縮アルゴリズムよりもより積極的なアルゴリズムを用いて画像データを圧縮することと、圧縮されたブロックを出力に送ることと、を更に含む方法。従って本発明は、諸ファイルタイプ中、就中JPEGファイルをロスレスで圧縮伸張するデータ圧縮システムおよび方法を提供するものである。ここで強調しておかなければならないことは、JPEG自体はロスを伴う圧縮技術であるが、本発明のJPEGファイルの圧縮方法はロスレスであるということである。本発明を適用した場合、JPEGによって生じたロス以外にはロスは生じない。更に本発明は、ファイルをそのコアデータタイプに分解し、コアデータタイプを識別しかつ体系化し、特定のタイプに最適な圧縮器を選択し、その後それらタイプを別々のデータストリームに圧縮することにより、幅広い既圧縮ファイルを圧縮する手段を提供する。本発明は既圧縮ファイルを圧縮するシステムおよび方法である。このシステムおよび方法は、JPEGファイルに適用するとき、以下の方法ステップを採用している。aエンコーディング:ファイルは量子化されたブロックが復元されるところまで部分的に伸張される。b量子化されたブロックの圧縮、c以下を含む2つのステップによるデコーディング、即ち1量子化されたブロックの伸張、および2元の圧縮器において用いられた方法を用いての、量子化されたブロックの圧縮。JPEGファイルの圧縮の場合、量子化されたブロックの圧縮の仕方は新規であり、JPEGがブロックを圧縮する仕方とは無関係であり、完全なロスレス圧縮であって、はるかに良好な結果をもたらすことに注意されたい。従って本発明の目的は、既圧縮デジタルファイルをロスレス圧縮する新規の改良されたシステムおよび方法を提供することである。本発明の別の目的は、JPEGファイルを圧縮する新規の改良された方法を提供することである。本発明のまた別の目的は、ファイルを完全にまたは部分的に伸張し、ファイルをそのコアデータタイプに分離し、次いで個々の識別されたデータタイプに対して、元々用いられたタイプのものより優れた圧縮方法があればそれを適用することにより、既圧縮ファイルを圧縮する新規の改良された方法を提供することである。本発明の更に別の目的は、複数の圧縮手法を用い、ファイルの圧縮されたユニット各々に、そのデータタイプに最適化された圧縮手法を適用して、既圧縮ファイルの圧縮を改善する方法を提供することである。本発明の更なる目的は、ソリッドモード圧縮を用いて既圧縮ファイルの圧縮を改善する方法を提供することである。本発明の別の目的は、異種混成のheterogeneousデータを、同質のhomogeneousブロックへと分解し、各同質のブロックを、元々用いられた圧縮器よりも優れた圧縮器により別々のデータストリームとして圧縮することにより、既圧縮ファイルの圧縮を改善する方法を提供することである。本発明のまた別の目的は、ロスを伴う手法およびロスレスの手法の組み合わせにより圧縮されたオーディオ、ビデオおよび画像ファイルを、そのロスレス部分を伸張し、より優れたロスレス手法により再圧縮することにより圧縮する方法を提供することである。本発明の更に別の目的は、JPEGファイルを、DCT処理後の量子化されたブロックが復元されるまで部分的なJPEG伸張を行い、次いでこれらブロックをより優れたロスレス圧縮手法を用いて圧縮することにより、ロスレス圧縮する方法を提供することである。本発明の別の目的は、I-フレームの完全なあるいは部分的な伸張を行い、それらをより高度な方法を用いて再圧縮することにより、ビデオファイルをロスレス圧縮する方法を提供することである。本発明の更なる目的は、JPEGのDC値を、隣接ブロック内の値に基づく複数の予測器predictorsを用いて圧縮する方法を提供することである。本発明の別の目的は、コンテキストに基づく圧縮を用いて、JPEGのDC値予測残差JPEGDCvaluepredictionresidueを圧縮する方法を提供することである。本発明の更なる目的は、コンテキストに基づく圧縮を用いて、JPEGのAC値を圧縮する方法を提供することである。本発明の別の目的は、JPEGのAC値の圧縮を、それらのゼロ/非ゼロ状態を別々に符号化することにより改良する方法を提供することである。本発明の別も目的は、JPEGのAC値の圧縮を、符号を別に圧縮することにより改良することである。本発明のまた別の目的は、JPEGのAC値の符号をコンテキストに基づく圧縮を用いて圧縮する方法を提供することである。また別の目的は、JPEGのAC値の符号の圧縮を、コンテキストの一部としての予測器を用いて改良する方法を提供することである。構成および方法の動作に関して、本発明を特徴づける他の新規な特徴、および本発明のその他の目的および利点は、本発明の好適な実施形態を例示として図示する添付図面と共に以下の説明を考察することにより、よりよく理解されるであろう。しかしながら、図面は例示と説明のためだけのものであり、本発明の限定を定義することを意図したものではないことを、はっきりと理解されたい。本発明を特徴づける様々な新規の特徴は、本開示の一部を構成する添付の請求の範囲に特に示されている。本発明はこれら特徴のどれか1つに存するものではなく、記載された機能を果たすそれら構成すべての特定の組み合わせに存するものである。即ち、ここまでは、以下の詳細な説明がよりよく理解されるように、そして当該技術分野への貢献がよりよく評価されるように、本発明のより重要な特徴を広く概括したものである。もちろん、本発明の更なる特徴も、以下に説明され、それは添付の請求の範囲の更なる内容を構成する。当業者であれば、本開示の基礎となる思想を、本発明のいくつかの目的を達成するための他の構造、方法、システムの設計の基礎として容易に利用することができることを理解するだろう。従って、請求の範囲は、本発明の精神および範囲を逸脱しない限りにおいて、そのような均等な構成を含むものとして解釈することが重要である。また、要約書の目的は、広く米国特許商標庁および公衆、特に特許あるいは法律用語あるいは法律的表現になじみのない科学者や技術者や実務家が、本願の技術的開示の本性本質を略式に閲覧することにより、速やかに知ることができるようにすることである。要約書は本願発明を定義することを意図したものではなく本願発明は請求の範囲によって判断されるものである、いかなる意味においても本発明の範囲を限定することを意図したものでもない。以下の詳細な説明を考慮することにより、本発明のよりよい理解が得られ、以上に述べた目的以外の目的が明らかとなる。説明は添付図面を参照しておこなう。定義:ここではファイルという語は機械により読み取り可能な形態で保存されたデータ要素の命名された一団を意味し、これは分離した形態を含むいくつかの形態において存在する場合もあり、他のファイルと結合されあるいは他のファイルと共に保存される場合もあり、またファイルまたはオブジェクトとして、あるいは他のファイルを含むファイルとしてあるいはデータチャンネル上で送信される情報を含む特定サイズのデータストリームとして他のファイルに埋め込まれている場合もある。また、ここでJPEGとはJPEG、JFIF、ExifJPEG、EXIFその他のJPEGベースのファイル形式を含むJPEG形式のうちのいずれかを意味する。図1乃至9は、概括的に100で示す既圧縮ファイルをロスレス圧縮する新規の改良されたシステムおよび方法を図示している。JPEGファイルを例にとって、特に図1を参照すると、本方法は、まず入力データ110を受け取り、ヘッダデータを将来の利用のために保存する120。ヘッダデータは一般的圧縮器140にて圧縮される130。JPEGブロックは量子化されたブロックが復元再構成されるまで部分的に伸張される150。次に、量子化されたブロックは画像データ圧縮器160で圧縮され、データ出力ストリーム170に送られる。図2を参照すると、画像データプロセッサ160はすべての処理ステップを以下のようにループで進行する。JPEGブロックの伸張からの画像入力データ180を受け取り、画像データの終端に到達したか否かを判定する190。画像の終端に達していれば190a、それ以上の圧縮を行わずに当該ブロックを保存する200。終端に到達していない場合190bは、JPEGブロック圧縮器210が当初用いられた圧縮器より積極的で優良なaggressiveandsuperior圧縮アルゴリズムを用いて当該ブロックを圧縮し、その後圧縮されたブロックは出力ストリームに送られる220。図3を参照すると、画像データ圧縮器のJPEGブロック圧縮器210はまずブロックをコピー可能かどうかを判定する230。可能である場合、ブロックはブロックコピー器blockcopier240によってコピーされ、出力250に送られる。コピー可能ではない場合、ブロックはブロックプロセッサ210aにて処理される。ブロックプロセッサ210aは完全に予測可能なモデルを用いたDCエンコーダ270によりDC係数260を圧縮し、ACエンコーダ290によりAC値280を圧縮する。図4を参照すると、隣接ブロックから導かれた予測器予測子predictorsに基づく計算により、DC値を予測し300、予測された値310をDC係数入力260から減算してDC残差DCresidue予測誤差330を導出する320。DC残差330はコンテキスト前後関係基づくモデルを用いたDC残差エンコーダ340によって圧縮され、その後出力ストリーム350に送られる。ここで図5を参照すると、AC値を以下のように圧縮する。まず、特殊ゼロ/非ゼロ圧縮器specialzerononzerocompressor360により、AC値を識別し、ゼロまたは非ゼロ値のいずれかに符号化する。値がゼロであるときは370、AC値はすでにエンコードされているので、出力380に送られる。ゼロでないAC値390については、絶対値エンコーダ400により絶対値がエンコードされる。絶対値エンコーダ400は3つの別個の圧縮器からなり、その1つは最上行toprowの値用であり、1つは左列leftcolumnの値用であり、1つはそれ以外の値用である。続いてAC値の符号を符号エンコーダ410によりエンコードし、その結果は出力380に送られる。圧縮されたファイルのデコードは2つの方法ステップを含み、ファイルを元の圧縮状態へと復元する、即ち1量子化されたブロックの伸張展開、および2JPEGで採用されている方法を用いての量子化されたブロックの圧縮、というステップである。従って、第1の好適な実施形態においては、本発明の既圧縮ファイルをロスレス圧縮する方法は、第1にファイルを完全にあるいは部分的に伸張し、次いで改良された圧縮方法を適用する。デコーダははじめに高度な方法で圧縮されたファイルを伸張する。続いて元の圧縮手法を適用し、それにより元の圧縮されたファイルが復元される。図6および7はそれぞれ本発明の方法がどのように音声/画像ファイルの再圧縮500およびビデオファイルの再圧縮600に適用されるかを示している。本発明の方法は2つの必須のステップからなるものとして概念化できることがわかる。音声/画像ファイルを第1の例として、ここで図6を参照すると、圧縮されたファイル入力510は第2段階ロスレス伸張器によって伸張される520。次いで伸張されたデータは第2段階ロスレス圧縮器530によって圧縮され、出力540に送られる。続いて図7を参照すると、ビデオファイルはすべての入力フレーム610をループによって処理することで再圧縮されることがわかる。各フレームに対し、フレームがI-フレームであるか否を判定する620。そのフレームがI-フレームであれば630a、JPEG圧縮器640を適用し、そのフレームを圧縮して出力650に送る。そのフレームがI-フレームでなければ630b、フレームをコピーし660出力650に送る。プロセスは最終フレームテスト670を経て、最終フレームが処理されて690ループリミット695に達するまで継続する680。複数のタイプのデータ要素を含んだ複合ファイルでは、本発明の方法は複数の圧縮手法を用い、それぞれの圧縮単位に対して、そのタイプのデータに最適化された圧縮手法を適用する。特定のタイプのデータに最適化された圧縮手法は、汎用的な手法や異なるタイプのデータに最適化された手法よりも良好な圧縮率その特定のタイプのデータに対してをもたらす。本発明ではエンコーダがデータを分析し、そのデータタイプに最適化された手法があれば、それを選択する。使用された圧縮手法は出力ストリーム内にエンコードされる。デコーダは入力ストリームから、そのデータの圧縮に用いられた圧縮手法タイプを読み出す。そして適切な伸張器を適用する。従って、ここで図8を参照すると、本発明の方法はタイプに合わせた圧縮システム700であることがわかる。この圧縮システム700は入力データユニット710を受け取る工程を有する。次いでデータタイプセレクタ720が入力されたデータユニットのタイプを識別し例えばPDFファイル、ワードファイル、JPEGファイルなど、該ユニットをその中にあるコア要素に分解する。このデータタイプ選別についての情報730aは出力740に送られる。選別に基づく圧縮器指示器750は、入力データユニットから分解されたコアデータユニット730bをそのタイプのデータに最適な圧縮器へと送る。図8には例示的なデータタイプに対して最適な様々な圧縮器を示している。即ちテキスト圧縮器760、X86マシンコード圧縮器770、表スプレッドシート圧縮器780、第1および第2のプレースホルダ圧縮器790、800、即ち例えば1以上の画像圧縮器などの任意の数の適切なタイプの圧縮器、および汎用圧縮器810である。これらの特化された圧縮器の各々の出力はこのセクションの出力740に送られるこれは包括的な圧縮アルゴリズムであってもよいし、アーカイブに直接保存してもよい。ここで図9を参照すると、本発明の既圧縮ファイルを圧縮する改良された方法の好適な実施形態において、システムは好適にはソリッドブロックモード圧縮を用いる。圧縮されたファイルは複数の個別に圧縮されたファイルを含むアーカイブ書庫ファイルであることが多いので、ソリッドモードは同じタイプのファイルを1つのブロックにまとめ、そのブロックを単一のユニットとして圧縮する手段を提供する。この方法は個々のファイル内における冗長性を利用するだけでなく、ファイル間の冗長性も利用しているので、圧縮を改善する。結果としてソリッドモードは圧縮率のかなりの改善をもたらすことができる。このように、複数のコアデータタイプを含んだ複数のファイルが対象となる。例えば2つのPDFファイル900a、900bでは、まずファイルフォークスプリッタ910a、910bを用いてリソースフォーク920a、920bやデータフォーク930a、930b等のファイルフォークを、別々のリソース圧縮ストリームおよびデータ圧縮ストリーム940a、940b、950a、950bに分離する。データフォーク内のコアデータタイプ960a、960b、即ち例えばテキスト1およびテキスト2,バイナリ、JPEG、画像1など、およびリソースフォーク内のコアデータタイプ970a、970b、即ち例えばバイナリおよび画像2はファイルに特化されたフォークパーサーparsers例えばPDFフォークパーサー980a、980bおよびリソースフォークファイルパーサー990a、990bにより、特定のデータタイプの圧縮ストリームへと更に分離される。アーカイブファイルにおいてサムネイルが所望される場合には、この段階でサムネイル生成器/抽出器1000a、1000bを用いてもよい。パージングparsing処理後、バイナリデータ以外のおよそすべてのデータは圧縮および/または最適化される1010。コアデータタイプの最適化および/または圧縮後、各ファイルからのデータは、ソリッドモード1020において他のファイルからの同様のデータタイプと共に単一のブロック1030へとグループ化される。この時点で各ブロックのファイルの詳細がエンコードされる。そして新たなブロックは必要に応じて、ユーザに指定されたパラメータに従って、最大のファイルサイズ低減および/または圧縮率となるよう選択された最適な圧縮器によって圧縮される1040。その後データはグループ化フォークの出力ストリーム1050に送られ、そこから所望によりデータチャンネルを介して送出されるかあるいはアーカイブされる。この方法を既圧縮ファイルの圧縮に適用すると、かなりの圧縮の改善が得られる。デコード工程はソリッドブロックの伸張と各ブロックのファイルの詳細の読み取りとを含む。ファイルの詳細を利用することにより元のファイルが復元される。本発明においてブロックモード方式を用いる場合には、好適には異種混成heterogeneousデータは同質の諸ブロックに分ける工程を備える。圧縮されたファイルは異種混成、即ちいくつかの異なるタイプのデータを含んだものである場合が多い。例えば、実行可能なファイルは一般的にマシンコードブロック、テキスト、表、および画像等の他のタイプのデータを含んでいる。圧縮が最も良好に行われるのは同質homogeneousのデータについてである。データタイプが混合されたものを共に圧縮した場合、異なるタイプのデータを別々に圧縮を施した場合よりも低品質である。従って、本発明においては特別の手法を用いて、圧縮前に異種混成のデータを同質な諸ブロックに分離する。ブロック分離の詳細は出力ストリーム内にエンコードされる。この方法を既圧縮ファイルの圧縮に適用すると、圧縮の改善がもたらされる。異種混成の圧縮された圧縮ファイルの伸張は、別々のブロックを伸張し、入力ストリームからブロック分離の詳細を読みとることにより行う。ブロック分離の詳細を用いることにより、元のファイルが復元される。ロスありの手法とロスレスの手法を組み合わせて圧縮された既圧縮ファイルを本発明の方法によって圧縮する場合、ロスレス部分を伸張し、それをより優れたロスレス手法を用いて再圧縮する。多くの圧縮ファイルフォーマットはロスあり/ロスレスの組み合わせを用いている。それらの圧縮プロセスの第1段階ではロスありの手法を用い、その手法を一般的には圧縮されるデータのタイプに合わせたものとする。次いで、第1段階の出力をロスレス手法を用いて圧縮する。これらのフォーマットで用いられているロスレス手法は概して古いものであって、スピード本位で最適化されており、低品質な圧縮である。ロスあり/ロスレス圧縮ファイルに適用する場合、本発明の方法は以下のように動作する。元の圧縮ファイルを部分的に伸張する。ロスレスの第2段階の圧縮プロセスのみを逆変換する。これによりロスありの第1段階の出力が復元される。ロスありの第1段階の出力をより高度な圧縮手法を用いて圧縮する。伸張プロセスではまず、該より高度な手法の伸張を行う。これによりロスありの第1段階の出力が復元される。次いでロスあり段階の出力を元の圧縮手法を用いて圧縮する。例えば本発明の方法を、MPEGやその変種、MOV、AVI、QUICKTIME、WMV等のロスありおよびロスレス手法の組み合わせによって圧縮されたビデオファイルの圧縮に用いる場合、ロスレス部分を伸張し、より優れたロスレス手法によりそれを再圧縮する。これらのフォーマットで用いられているロスレス圧縮は概して古いものであって、スピード本位で最適化されている。本発明の方法ではそのようなフォーマットを以下のプロセスにより圧縮する。エンコーダはまず、元のファイルのロスレスの第2段階の伸張を行う。これによりロスありの第1段階の出力が復元される。次いでロスあり段階の出力をより高度な圧縮手法を用いて圧縮する。デコーダはまず、該より高度な手法の伸張を行う。これによりロスありの第1段階の出力が復元される。次いで、ロスあり段階の出力を元の圧縮手法を用いて圧縮する。本発明はMP3、OGG、MIDIなどのロスありおよびロスレス手法の組み合わせにより圧縮されたオーディオファイルの圧縮に用いることもできる。要約して言えば、ロスありおよびロスレス手法の組み合わせにより圧縮されたビデオファイルの場合と同様に、オーディオファイルのロスレス部分を伸張し、より優れたロスレス手法を用いて再圧縮する。これらのフォーマットで用いられているロスレス圧縮は概して古いものであって、スピード本位で最適化されている。本発明の方法ではそのようなフォーマットを以下のプロセスにより圧縮する。エンコーダはまず、元のファイルのロスレスの第2段階の伸張を行う。これによりロスありの第1段階の出力が復元される。次いでロスあり段階の出力をより高度な圧縮手法を用いて圧縮する。デコーダはまず、該より高度な手法の伸張を行う。これによりロスありの第1段階の出力が復元される。次いで、ロスあり段階の出力を元の圧縮手法を用いて圧縮する。本発明をロスありおよびロスレス圧縮手法の組み合わせを用いて圧縮されたオーディオおよびビデオファイルの圧縮に用いることができるのと同様に、本発明をJPEG、JPEG2000、DICOM、GIG、TIFFのようなロスありおよびロスレス圧縮手法を組み合わせて圧縮された画像ファイルの圧縮に用いることができる。上記のように、概括的には、該方法はロスレス部分を伸張し、より高度なロスレス手法を用いてそれを再圧縮するものである。本発明は上記フォーマットおよび其の変種を以下のプロセスを用いて圧縮する。エンコーダはまず、元のファイルのロスレスの第2段階の伸張を行う。これによりロスありの第1段階の出力が復元される。次いでロスあり段階の出力をより高度な圧縮手法を用いて圧縮する。デコーダはまず、該より高度な手法の伸張を行う。これによりロスありの第1段階の出力が復元される。次いで、ロスあり段階の出力を元の圧縮手法を用いて圧縮する。また別の態様にかかる本発明の方法は、はじめにJPEGファイルをDCT処理後の量子化されたブロックが復元されるまで部分的に伸張し、それからこれらのブロックをより良好なロスレス圧縮手法を用いて圧縮することによりJPEGファイルをロスレス圧縮することを特徴としてもよい。更に別の態様において本発明は、他の方法中、就中I-フレームの完全なあるいは部分的な伸張を行い、それらI-フレームをより高度な方法を用いて再圧縮する方法を用いてビデオファイルをロスレス圧縮する方法を提供する。本発明をJPEGファイルの圧縮に適用した場合、隣接ブロックの値に基づく複数の予測器予測子を用いてJPEG-DCを圧縮することができる。また、JPEG-DC値予測を、コンテキスト前後関連性に基づく圧縮contextbasedcompressionを用いて圧縮することもできる。JPEG-AC値を、コンテキストに基づく圧縮を用いて圧縮してもよく、その際JPEG-AC値のコンテキストの一部としての隣接値、JPEG-AC値のコンテキストの部分としての隣接ブロックからの値を用いてもよいし、あるいはJPEG-AC値のコンテキストの一部としての予測器を用いてもよい。更に、JPEG-Cr-AC値の圧縮は、JPEG-Cb-AC値を用いることにより改善される。コンテキストに基づく圧縮は、好適には最上行のJPEG-AC値、左側の列のJPEG-AC値、それ以外のJPEG-AC値について異なるコンテキストを用いる。JPEG-AC値の圧縮は、それらのゼロ/非ゼロ状態を別々に符号化し、かつAC値の符号を別個に圧縮することにより更に改善される。更に、JPEG-AC符号値の圧縮は、コンテキストに基づく圧縮を用いることにより大きく改善される。また、JPEG-AC符号値の圧縮は、コンテキストの一部として予測器を用いることで更に改善される。エンコーダの詳細:後者2つの態様において、JPEGファイルまたはビデオファイルのロスレス圧縮方法として、エンコーダはまずJPEGファイルのヘッダ部を読み取り、パージングし、圧縮する。パージング段階の間、エンコーダはすべての関連するパラメータが規約に適っておりlegal、サポートされていることを検証する。パージングの間、エンコーダはまた、後の処理で必要となる情報、特に量子化テーブル、ハフマンテーブル、サンプリングファクターを別々に保存する。すべてのヘッダ情報は汎用圧縮器を用いて圧縮される。この圧縮器は重み1のゼロ次および重み8の1次を用いた、混合型統計的圧縮器mixedmodelstatisticalcompressorである。すべての関連するヘッダデータを収集した後、エンコーダはブロックを圧縮するのに必要となるメモリ量を計算する。この量はブロックを圧縮する圧縮器に必要な静的部分、およびブロックの最後の2行を保存するのに必要なメモリである。次いでエンコーダはブロックの読み取りを開始する。JPEGはブロックをユニットとして保存する。ユニットのサイズはサンプリングファクタに依存する。人間の眼の色に対する敏感度は光量に対する敏感度より低いので、JPEGではクロミナンス情報の一部を捨てる間引きすることが可能であるそして多くの場合、実際に捨てている。エンコーダは水平および垂直サンプリングファクタ共に、1または2の場合をサポートしている。JPEGは、より大きなブロックからとられた平均値を有する8×8のブロックを生成することによりクロミナンス情報を間引きし、この8×8のブロックのみを保持する。水平および垂直ファクタが共に1の場合、ブロックの1ユニットは3つのブロック、1つの輝度、2つのクロミナンスを有する。一方のサンプリングファクタが1で他方が2である場合、ブロックの1ユニットは4つのブロック、2つの輝度、2つのクロミナンスを有する。水平および垂直ファクタが共に2の場合、ブロックの1ユニットは6つのブロック、4つの輝度、2つのクロミナンスを有する。画像がグレースケールの場合、輝度情報のみが保存され、ブロックの1ユニットは1つのブロックを有する。ファイルがプログレッシブJPEGファイルである場合、データは保存された順に読みとられ、そのハフマン符号化から伸張される。ハフマン伸張されたデータは内部バッファに保存され、続いてより高度な方法を用いてエンコードされる。次いで、エンコーダは諸ブロックをそのJPEGの順にエンコードする。即ち輝度ブロック、そしてCbブロック、そしてCrブロックの順である。エンコーダによる処理の大部分はブロックのエンコードの間に行われる。ブロックのエンコーディングはこの技術の鍵であり、主要部である。JPEGはハフマンコードとランレングスエンコーディングを用いて、ブロックをエンコードする。本発明で用いるブロックエンコーディングでは、まずJPEG表現JPEGrepresentationからDC値をデコードする。次いで、同じブロックタイプの前のDC値をDC値に加算する。これはJPEGは、DC値をDC値と以前の同一タイプブロックのDC値との差として保存しているからである。次に、AC値をそのJPEG表現からデコードし、ついでブロックは脱ジグザグ化されるdezigzaged。この時点でDCT処理後の量子化されたブロックが完全に復元され、システムはそのエンコードを開始する。初めにブロックを調べ、そのブロックがその上のブロックまたはその左側のブロックと同一であるか否かが判定される。ブロックが同一であれば、そのブロックは単純にコピー可能であることおよびどこからコピー可能であるか、を示すコードがエンコードされる。ブロックがコピー可能であればそのブロックをエンコードする必要はない。ブロックがコピー可能でない場合、プロセスは継続する。あるブロックをエンコードするとき、DC値をはじめにエンコードし、続いてAC値をエンコードする。DC値のエンコードは予測的モデルを用いて行われる。その場合、まずDC値を以下のようにして予測する。4つの異なる予測器が生成される。その2つは現在のブロックの上のブロックと左のブロックのDC値から生成される。これら2つは下のブロックおよび右のブロックのDC値を予測する。下のブロックおよび右のブロックはまだ未知であるので、間接的予測器が用いられる。下のブロックのDC値は、入手可能であればその左側および下のブロックを用いて予測され、そうでなければ左側のブロックを用いて予測される。右側のブロックのDC値は、入手可能であればその右側および上のブロックを用いて予測され、そうでなければ上のブロックを用いて予測される。各予測器には、それぞれがDC値を予測すべく、尤度likelihoodに基づく異なる重み付けが与えられる。DC値の最終的な予測器はこれら予測器の重み付けされた平均である。予測器が一旦生成されると、予測器と実際のDC値との差が計算され、差がエンコードされる。差はコンテキストに基づく特化された圧縮器を用いてエンコードされ、この圧縮器はDC予測器の生成に用いられる4つの予測器の差と、現在のブロックの上および左側のブロックのまばらさsparsityとをコンテキストとして用いる。予測器が互いに近ければ、予測がより正確である可能性が高くなる差が小さい。この圧縮器はこのことを利用し、差をコンテキストとして用いている。DC値がエンコードされた後に、AC値のエンコーディングが開始される。AC値は上から下および左から右にループでエンコードされる。AC値のエンコーディングは就中2つの予測器、即ち上予測器Uppredictorおよび左予測器Leftpredictorを用いる。上予測器は現在ブロックの上のブロックに基づいて計算され、現在ブロック内の既遭遇値alreadyencounteredvaluesにより更新される。左予測器は現在ブロックの左側のブロックに基づいて計算され、現在ブロック内の既遭遇値によって更新される。JPEGブロックはその多くがゼロとなるように量子化される。多くの画像において、殆どの値はゼロである。本発明は特殊なゼロ/非ゼロ圧縮器を用いてある値がゼロであるか否かをエンコードする。このゼロ/非ゼロ圧縮器はコンテキストに基づくものである。この圧縮器は異なるコンテキストの混合モデルを用いる。コンテキストは以下の値を用いる。即ち、ブロックタイプ、ブロック内での位置、現在ブロックからの値、量子化テーブル、上予測器および左予測器、そしてCrブロックについてはCbブロックからの対応する値、である。AC値が非ゼロである場合、その値がエンコードされる。AC値の圧縮には3つの異なる圧縮器を用いる。1つは最上行内の値用、1つは左列内の値用、1つはそれ以外の値用である。これはこれらの値の組の性質が異なること、およびこれら値を予測する能力が異なることを反映している。これら3つの圧縮器のそれぞれはコンテキストに基づいており、混合コンテキストを用いている。コンテキストはブロックタイプ、ブロック内での位置、同一ブロック内の値、上予測器および左予測器、そしてCrブロックの場合にはCbブロックからの対応する値、を用いる。それぞれの圧縮器はいくつかのコンテキストを用いる。各コンテキストには重み付けが与えられる。同一コンテキストの既遭遇値についての統計がとられる。起こりうる値のゼロ確率の可能性を避けるために、すべての可能な値に対してデフォルトの分布テーブルをスタートし、コンテキスト統計にそれぞれのコンテキストに与えられた重みを乗じたものを付加する。実際の値はこの分布テーブルに基づいて圧縮される。絶対AC値は、値1~5がより大きな値のそれぞれ独自のコードを有するように修正対数スケールを用いて表現され、これらより大きな値は指数についてのコードを有し、その仮数はそのまま保存される。これらコード15、指数のみが圧縮される。すべての非ゼロのAC値について、符号は別個に圧縮される。これは、符号の圧縮可能性は絶対値の圧縮可能性とは異なることから重要である。特に上予測器および左予測器は優れた符号の予測器である。圧縮器はコンテキストに基づくものであり、混合モデルを用いている。コンテキストとしては、ブロックタイプ、ブロック内での位置、同一ブロック内の値、隣接ブロック内の値、そして特に上予測器および下予測器を用いる。符号が圧縮されると、AC値は完全に圧縮される。ループが完了すると、DCT処理後の量子化されたブロックは完全に圧縮される。デコーダの詳細:デコーダはその大部分がエンコーダと対称的である。デコーダはまず伸張を行い、JPEGファイルのヘッド部分のパージングを行う。デコーダは内部バッファに処理に必要な情報、特に量子化テーブルとハフマンテーブルを記憶している。伸張されたヘッダは出力バッファに書き込まれる。すべてのヘッダデータは汎用伸張器を用いて伸張される。次いで、デコーダはメモリを割り当て、ブロックの伸張を開始する。ブロックはブロック単位で伸張される。ブロックはエンコーダの詳細部に記述されたものと同一であり、JPEGによるブロック保存の仕方に適合する。あるブロックを伸張する際に、デコーダは最初にそのブロックがその左側のブロックまたはその上のブロックからコピー可能であるかどうかをチェックする。コピー可能であればそのブロックをコピーし、そのブロックの伸張は終了する。ブロックがコピー可能でなければ、そのブロックの伸張を続ける。デコーダは初めにDC値を伸張する。DC値の伸張は予測器の計算から始まる。予測器はエンコーダにより計算されたものと同一である。エンコーダもデコーダも共に同じパラメータを有する同じ関数を用いて予測器を計算する。次に、デコーダはエンコーダが用いた予測誤差圧縮器の伸張器を用いて、予測誤差を抽出する。DC値は予測器プラス予測誤差である。AC値を伸張するために、デコーダはエンコーダと同じループを用いる。初めに、デコーダはゼロ/非ゼロ伸張器を用いてゼロフラグをデコードする。値が非ゼロならば、デコーダはAC係数の絶対値のデコードを続ける。デコーダはエンコーダと同様に、AC値を最上行、左列およびそれ以外に分ける。それぞれの場合に適切な伸張器を用い、エンコーダと同一のコンテキストを用いたコンテキストに基づく混合モデルを生成する。混合モデルのコンテキストを生成するに際し、エンコーダもデコーダも共に同じパラメータを有する同じ関数を用いる。AC値の絶対値がデコードされると、その値の符号がデコードされる。符号伸張器はエンコーダと同じコンテキストを有する同じモデルを用いる。符号がデコードされると、絶対値に割り当てられ、AC値が完全にデコードされる。ループが完了すると、DCT処理後の量子化されたブロックが復元される。次に、ブロックはスタンダードのJPEGジグザグ順を用いてジグザグ化される。ブロックのデコーディングの最終ステップは、JPEG圧縮を用いたブロックの圧縮である。デコーダはハフマンコードを用いて、JPEGで行われるのと同様の仕方でブロックを圧縮する。用いられるハフマンテーブルはヘッダ内に保存されているものである。ハフマンテーブルを用いてブロックが圧縮されると、JPEGブロックは完全に復元される。以上の開示は当業者による本発明の実施を十分に可能ならしめ、かつ発明者が現在考える最良の形態を提供するものである。本発明の好適な実施形態の十分かつ完全な開示を提供しているが、図示し説明した構成、寸法関係および動作そのものに本発明を限定することを意図したものではない。当業者は本発明の真の精神および範囲から離れることなく、適宜の様々な変形、代替構成、変更および均等物を容易に想到するであろう。そのような変更は、代替の方法ステップ、プロセス、決定オプション、機能、動作特徴などを含む。従って、以上の説明および図示は添付の請求の範囲に定義される本発明の範囲を限定するものと解釈すべきではない。"