(57)【要約】      （修正有）【課題】デジタルデータを符号化するための方法において、バイナリファイルサイズを低減する。【解決手段】デジタルデータは、行列のシュミット分解を含む方法を使用して圧縮される。最初に、デジタルデータにおいて、整数の定義済みセット内のエントリを用いて行列Ｍを同定する。次に、行列Ｍを回復するのに十分な情報を含む基本エントリを行列Ｍから抽出し定義する。圧縮ファイルは、行列Ｍ内の基本エントリおよびそれらの位置を含む。暗号化プロセスを達成するために、行列Ｍの基本エントリの位置を含むパターン行列を暗号化する。不可逆圧縮を達成するために、誤差しきい値により品質が判断される行列Ｍへの近似を回復するのに十分な情報を含む基本エントリを同定する。【選択図】図１Ａ
2019204542.tif 000002
【特許請求の範囲】
【請求項１】
デジタルデータソースを符号化するための方法であって、
非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、前記ソフトウェアが、
整数の定義済みセット内のエントリを用いて、前記デジタルデータ内のｍｎ×ｐｑ行列Ｍを同定し、
左基本行列Ａを定義し、
右基本行列Ｂを定義し、
基本エントリの位置を記憶するためのパターン行列Ｐを定義し、
行列ＭｅにＭの出発値を割り当て、
行列Ａｅを定義し、
行列Ｂｅを定義し、
ｅに出発値を割り当て、
ａ）Ｍｅの非ゼロエントリｄｅを選択し、
ｂ）Ｐの第ｅの列に、前記選択したＭｅの非ゼロエントリの位置（ｒ，ｃ）を記憶し、
ｃ）Ｍｅから、共通のエントリとしてｄｅを有し、
2019204542.tif 000095
が前記形状（ｍ，ｎ，ｐ，ｑ）に関するＭのＢＳＤにおける項である、２つの行列ＡｅおよびＢｅを選択し、
ｄ）Ａの第ｅのｍ×ｐブロックに、位置がＭｅにおけるＡｅのエントリの位置であるＭのエントリを記憶し、
e）Ｂの第ｅのｎ×ｑブロックに、位置がＭｅにおけるＢｅのエントリの位置であるＭのエントリを記憶し、
ｆ）前記行列
2019204542.tif 000096
を算出し、Ｍ〜Ｍｅ＋１の所定の誤差しきい値に達しない場合には、Ｍｅ＋１を用いてステップ（ａ）〜（ｆ）を反復し、そうでない場合には、Ｐ、ＡおよびＢは集合的に、Ｍに対応する符号化されたデジタルデータを表し、
ｇ）ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも１つ上のデジタル記憶域に、前記符号化されたデータを転送し、前記符号化されたデータが、前記ソースデジタルデータよりも少ないデータバイトを備え、前記ソースデジタルデータの全ての前記情報および前記ソースデジタルデータの前記情報の全ての近似のうちの少なくとも１つを表す
ように構成される、
デジタルデータソースを符号化するための方法。
【請求項２】
ステップ（ａ）で選択した前記非ゼロ数は、ステレオ次数に関して、絶対値が前記Ｍｅのエントリの絶対値の最大値である第１のエントリに対応する、請求項１に記載の方法。
【請求項３】
前記ソフトウェアが、ステップ（ｃ）において、
ｉ）ｑによるｃのユークリッド除法を算出して余りｊを求め、余りｊがゼロである場合、ｊをｑと置換し、次いで、ｉ＝（ｃ−ｊ）／ｑ＋１を計算すること、および
ｉｉ）ｎによるｒのユークリッド除法を算出して余りｌを求め、前記余りｌがゼロである場合、ｌをｎと置換し、次いで、ｋ＝（ｒ−ｌ）／ｎ＋１を計算すること
によって、Ｍｅから、２つの行列ＡｅおよびＢｅを選択するようにさらに構成される、
請求項１に記載の方法。
【請求項４】
前記ソフトウェアが、
（ｉ）１〜ｍの各整数ａおよび１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭのエントリを、位置（ａ，（ｅ−１）ｐ＋ｂ）における左基本行列Ａに記憶し、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭｅのエントリを、位置（ａ，ｂ）における行列Ａｅに記憶することによって、ステップ（ｄ）を実行し、
（ｉｉ）１〜ｎの各整数ａおよび１〜ｑの各整数ｂについて、位置（ｌ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＭのエントリを、位置（ａ，（ｅ−１）ｑ＋ｂ）における右基本行列Ｂに記憶し、位置（ｌ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＭｅのエントリを、位置（ａ，ｂ）における行列Ｂｅに記憶することによって、ステップ（ｅ）を実行する
ようにさらに構成される、請求項１に記載の方法。
【請求項５】
所定の停止値は、前記デジタルデータの可逆符号化について無限大である、請求項１に記載の方法。
【請求項６】
所定の停止値は、前記デジタルデータの非可逆符号化について正数である、請求項１に記載の方法。
【請求項７】
Ｐ、ＡおよびＢの記憶サイズの和は、Ｍに対応する前記デジタルデータの記憶サイズよりも小さい、請求項１に記載の方法。
【請求項８】
ＡおよびＢのエントリの全てがＭから抽出され、Ｐのエントリが整数である、請求項１に記載の方法。
【請求項９】
前記ソフトウェアが、Ｐ、ＡおよびＢを使用して前記デジタルデータを行列Ｎとして復号するようにさらに構成され、したがって、前記ソフトウェアが、
Ｒを、Ｐの列の数として定義し、
Ｅを、ｍｎ×ｐｑ行列として定義し、
ｍを、Ａの行の数として定義し、
ｐを、Ｒで除算されたＡの列の数として定義し、
ｎを、Ｂの行の数として定義し、
ｑを、Ｒで除算されたＢの列の数として定義し、
ｅに出発値を割り当て、
Ｐの第ｅの列から、順序対（ｒ，c）を抽出し、
ステップ（ｃ）〜（ｆ）を逆に、ステップ（ｆ）〜（ｃ）として実行し、ＥのＡおよびＢのエントリを、Ｍで占める同じ位置に配置し、
ＡまたはＢからのエントリを割り当てられなかったＥの全ての値にゼロを埋め、
行列ＥｅにＥの出発値を割り当て、
ｅに出発値を割り当て、
ａ）Ｐの第ｅの列から、順序対（ｒ，c）を抽出し、
ｂ）前記位置（ｒ，ｃ）におけるＥｅのエントリｄｅを選択し、
c)請求項１のステップ（ｃ）〜（ｆ）の方法を使用して、請求項１の行列ＡｅおよびＢｅを回復し、
ｄ）ｅ＜Ｒである場合、
2019204542.tif 000097
を計算し、Ｅｅ＋１を用いて（ａ）〜（ｄ）を反復し、ｅ＝Ｒである場合、
2019204542.tif 000098
を計算する
ようにさらに構成される、請求項１に記載の方法。
【請求項１０】
ステップ（ｄ）において、Ｎ＝Ｍである場合、前記デジタルデータが、データの損失なしに復号されており、Ｎ≠Ｍである場合、Ｎが前記デジタルデータに近似する、請求項９に記載の方法。
【請求項１１】
Ｍに対応する前記デジタルデータが、Ｐを暗号化することによって暗号化される、請求項１に記載の方法。
【請求項１２】
Ｍが、前記デジタルデータ内で同定される複数の行列Ｍのうちの１つであり、前記複数の行列Ｍの各々について、ステップ（ａ）〜（ｆ）が実行され、前記デジタルデータが、前記デジタルデータ全体を表す前記行列ＭＥのサイズＳとともに、前記複数の行列Ｍに対応するＰ、ＡおよびＢの前記集合的な行列によって符号化される、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
＜関連出願についての相互参照＞
本出願は、その全体が参照として本明細書に組み込まれる、２０１４年８月２２日に出願された、関連する米国特許出願第６２／０４０，６７４号の利益を主張する。
【０００２】
本開示は、バイナリファイルサイズを低減するためのシステムおよび方法に関し、特に、行列を使用するファイル圧縮に関する。
【背景技術】
【０００３】
特異値分解（ＳＶＤ）は、各ｍｎ×ｐｑ行列Ｍを、ｍ×ｐ行列とｎ×ｑ行列とのクロネッカー積である最小数の項で、和へと分解するための方法をもたらす。この分解は、Ｍのシュミット分解として知られている。Ｍは、分解形状（ｍ，ｎ，ｐ，ｑ）に関して分解されると言える。Ｍがデジタルファイルを表すと仮定すると、Ｍの分解からいくつかの項をドロップし、Ｍに近似する行列を構築するために他の項を使用すると、デジタルファイルの非可逆圧縮を引き起こす。この圧縮方法に加えて、ＳＶＤを用いた圧縮として知られる、ＳＶＤに基づく別の圧縮方法がある。ＳＶＤに基づくあらゆる圧縮方法は、この方法を圧縮に有用とするエネルギー集中特性を有する。ＳＶＤを用いると、出力ファイルを構築するために、特異値およびベクトルが記憶されることになる。元の行列の全てのエントリが整数である場合であっても、これらの値およびエントリが必ずしも整数であるとは限らない。したがって、あまりに多くの情報を失うことなしに特異値およびベクトルをコンピュータに記憶することは、ピクセル当たり、オリジナルファイルでピクセルが占めるメモリ空間の量よりもはるかに多くのメモリ空間の量を必要とする。したがって、ＳＶＤを用いた圧縮比は、ＪＰＥＧのような他の既存の圧縮方法により達成される比と比較して望ましいものではない［以下の、引例４〜６を参照］。算術に基づく他の圧縮方式は、ＱＲおよびＱＬＰ分解［１Ａ］に基づくアルゴリズムを含む。
【発明の概要】
【０００４】
本開示の一実施形態において、デジタルデータを符号化するための方法は、非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、ソフトウェアは、整数の定義済みセット内のエントリを用いて、デジタルデータ内のｍｎ×ｐｑ行列Ｍを同定し、左基本行列Ａを定義し、右基本行列Ｂを定義し、基本エントリの位置を記憶するためのパターン行列Ｐを定義し、行列ＭｅにＭの出発値を割り当て、行列Ａｅを定義し、行列Ｂｅを定義し、ｅに出発値を割り当て、ａ）Ｍｅの非ゼロエントリｄｅを選択し、ｂ）Ｐの第ｅの列に、選択したＭｅの非ゼロエントリの位置（ｒ，ｃ）を記憶し、ｃ）Ｍｅから、共通のエントリとしてｄｅを有し、
2019204542.tif 000003
がパラメータｍ、ｎ、ｐ、およびｑに関するＭのＢＳＤにおける項である、２つの行列ＡｅおよびＢｅを選択し、ｄ）Ａの第ｅのｍ×ｐブロックに、位置がＭｅにおけるＡｅのエントリの位置であるＭのエントリを記憶し、e）Ｂの第ｅのｎ×ｑブロックに、位置がＭｅにおけるＢｅのエントリの位置であるＭのエントリを記憶し、ｆ）行列
2019204542.tif 000004
を算出し、Ｍ〜Ｍｅ＋１の所定の誤差しきい値に達しない場合には、Ｍｅ＋１を用いてステップ（ａ）〜（ｆ）を反復し、そうでない場合には、Ｐ、ＡおよびＢは集合的に、Ｍに対応する符号化されたデジタルデータを表し、ｇ）ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも１つ上のデジタル記憶域に、符号化されたデータを転送し、符号化されたデータは、ソースデジタルデータよりも少ないデータバイトを備え、ソースデジタルデータの全ての情報およびソースデジタルデータの情報の全ての近似のうちの少なくとも１つを表すように構成される。
【０００５】
その変形形態において、ステップ（ａ）で選択した非ゼロ数は、ステレオ次数に関して、絶対値がＭｅのエントリの絶対値の最大値である第１のエントリに対応する。
【０００６】
そのさらなる変形形態において、ソフトウェアは、ステップ（ｃ）において、ｉ）ｑによるｃのユークリッド除法を算出して余りｊを求め、余りｊがゼロである場合、ｊをｑと置換し、次いで、ｉ＝（ｃ−ｊ）／ｑ＋１を計算すること、およびｉｉ）ｎによるｒのユークリッド除法を算出して余りｌを求め、余りｌがゼロである場合、ｌをｎと置換し、次いで、ｋ＝（ｒ−ｌ）／ｎ＋１を計算することによって、Ｍｅから、２つの行列ＡｅおよびＢｅを選択するように構成される。
【０００７】
そのさらなる変形形態において、ソフトウェアは、（ｉ）１〜ｍの各整数ａおよび１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭのエントリを、位置（ａ，（ｅ−１）ｐ＋ｂ）における左基本行列Ａに記憶し、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭｅのエントリを、位置（ａ，ｂ）における行列Ａｅに記憶することによって、ステップ（ｄ）を実行し、（ｉｉ）１〜ｎの各整数ａおよび１〜ｑの各整数ｂについて、位置（ｌ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＭのエントリを、位置（ａ，（ｅ−１）ｑ＋ｂ）における右基本行列Ｂに記憶し、位置（ｌ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＭｅのエントリを、位置（ａ，ｂ）における行列Ｂｅに記憶することによって、ステップ（ｅ）を実行するようにさらに構成される。
【０００８】
その他の変形形態において、所定の停止値は、デジタルデータの可逆符号化について無限大であり、所定の停止値は、デジタルデータの非可逆符号化について正数であり、Ｐ、ＡおよびＢの記憶サイズの和は、Ｍに対応するデジタルデータの記憶サイズよりも小さく、および／またはＡおよびＢのエントリの全てがＭから抽出され、Ｐのエントリが整数である。
【０００９】
その別の変形形態において、ソフトウェアは、Ｐ、ＡおよびＢを使用してデジタルデータを行列Ｎとして復号するようにさらに構成され、したがって、ソフトウェアは、Ｒを、Ｐの列の数として定義し、Ｅを、ｍｎ×ｐｑ行列として定義し、ｍを、Ａの行の数として定義し、ｐを、Ｒで除算されたＡの列の数として定義し、ｎを、Ｂの行の数として定義し、ｑを、Ｒで除算されたＢの列の数として定義し、ｅに出発値を割り当て、Ｐの第ｅの列から、順序対（ｒ，c）を抽出し、ステップ（ｃ）〜（ｆ）を逆に、ステップ（ｆ）〜（ｃ）として実行し、ＥのＡおよびＢのエントリを、Ｍで占める同じ位置に配置し、ＡまたはＢからのエントリを割り当てられなかったＥの全ての値にゼロを埋め、行列ＥｅにＥの出発値を割り当て、ｅに出発値を割り当て、ａ）Ｐの第ｅの列から、順序対（ｒ，c）を抽出し、ｂ）位置（ｒ，ｃ）におけるＥｅのエントリｄｅを選択し、c)請求項１のステップ（ｃ）〜（ｆ）の方法を使用して、請求項１の行列ＡｅおよびＢｅを回復し、ｄ）ｅ＜Ｒである場合、
2019204542.tif 000005
を計算し、Ｅｅ＋１を用いて（ａ）〜（ｄ）を反復し、ｅ＝Ｒである場合、
2019204542.tif 000006
を計算するようにさらに構成される。
【００１０】
その他の変形形態において、ステップ（ｄ）において、Ｎ＝Ｍである場合、デジタルデータは、データの損失なしに復号されており、Ｎ≠Ｍである場合、Ｎがデジタルデータに近似し、および／またはＭに対応するデジタルデータは、Ｐを暗号化することによって暗号化される。
【００１１】
そのさらに別の変形形態において、ソフトウェアは、Ｐ、Ａ、およびＢを使用して、行列Ｍに近似する行列としてデジタルデータを復号するようにさらに構成され、Ｍは、デジタルデータ内で同定される複数の行列Ｍのうちの１つであり、複数の行列Ｍの各々について、ステップ（ａ）〜（ｆ）が実行され、デジタルデータは、デジタルデータ全体を表す行列ＭＥのサイズＳとともに、複数の行列Ｍに対応するＰ、ＡおよびＢの集合的な行列によって符号化される。
【００１２】
本開示の別の実施形態において、デジタルデータを符号化するための方法は、非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、ソフトウェアは、Ｒを、Ｐの列の数として定義し、Ｅを、ｍｎ×ｐｑ行列として定義し、ｍを、Ａの行の数として定義し、ｐを、Ｒで除算されたＡの列の数として定義し、ｎを、Ｂの行の数として定義し、ｑを、Ｒで除算されたＢの列の数として定義し、ｅに出発値を割り当て、Ｐの第ｅの列から、順序対（ｒ，c）を抽出し、位置（ｒ，ｃ）におけるＥｅのエントリｄｅを選択し、ｑによるｃのユークリッド除法を算出して余りｊを求め、余りｊがゼロである場合、ｊをｑと置換し、次いで、ｉ＝（ｃ−ｊ）／ｑ＋１を計算し、ｎによるｒのユークリッド除法を算出して余りｌを求め、余りｌがゼロである場合、ｌをｎと置換し、次いで、ｋ＝（ｒ−ｌ）／ｎ＋１を計算し、１〜ｍｎの各整数ａおよび１〜ｐｑの各整数ｂについて、位置（ａ，（ｅ−１）ｐ＋ｂ）におけるＡのエントリを、Ｅの位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）にコピーし、位置（ａ，（ｅ−１）ｑ＋ｂ）におけるＢのエントリを、Ｅの位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）にコピーし、ＡまたはＢからのエントリを割り当てられなかったＥの全ての値にゼロを埋め、行列ＥｅにＥの出発値を割り当て、ｅに出発値を割り当て、ａ）Ｐの第ｅの列から、順序対（ｒ，c）を抽出し、ｂ）位置（ｒ，ｃ）におけるＥｅのエントリｄｅを選択し、ｃ）ｑによるｃのユークリッド除法を算出して余りｊを求め、余りｊがゼロである場合、ｊをｑと置換し、次いで、ｉ＝（ｃ−ｊ）／ｑ＋１を計算し、ｄ）ｎによるｒのユークリッド除法を算出して余りｌを求め、余りｌがゼロである場合、ｌをｎと置換し、次いで、ｋ＝（ｒ−ｌ）／ｎ＋１を計算し、ｅ）１〜ｍの各整数ａ、および１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＥｅのエントリを行列Ａｅの位置（ａ，ｂ）に記憶し、ｆ）１〜ｎの各整数ａ、および１〜ｑの各整数ｂについて、位置（ｌ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＥｅのエントリを行列Ｂｅの位置（ａ，ｂ）に記憶し、ｇ）ｅ＜Ｒである場合、
2019204542.tif 000007
を計算し、Ｅｅ＋１を用いて（ａ）〜（ｇ）を反復し、ｅ＝Ｒである場合、符号化されたデータは、
2019204542.tif 000008
として計算され、ｈ）ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも１つ上のデジタル記憶域に、符号化されたデータを転送し、符号化されたデータは、ソースデジタルデータよりも少ないデータバイトを備え、ソースデジタルデータの全ての情報およびソースデジタルデータの情報の全ての近似のうちの少なくとも１つを表すように構成される。
【００１３】
その変形形態において、ソフトウェアは、Ｐ、ＡおよびＢを使用してデジタルデータを、Ｍに近似する行列として復号するようにさらに構成され、Ｍは、デジタルデータ内で同定される複数の行列Ｍのうちの１つであり、複数の行列Ｍの各々について、ステップ（ａ）〜（ｆ）が実行され、デジタルデータは、デジタルデータ全体を表す行列ＭＥのサイズＳとともに、複数の行列Ｍに対応するＰ、ＡおよびＢの集合的な行列によって符号化される。
【００１４】
その別の変形形態において、各行列Ｍは、所定のサイズを有し、デジタルデータが所定のサイズにより均等に分割可能でない場合、残りの部分行列Ｍｐは、ゼロを用いて所定のサイズにパディングされ、デジタルデータを復号するときに破棄される。
【００１５】
本開示のさらなる実施形態において、デジタルデータを符号化するための方法は、非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、ソフトウェアは、ＳＶＤを使用して、ＰＳＮＲ（Ｍａ，Ｍ）≧所定値である最低シュミットランクＲを用いてｍｎ×ｐｑ行列Ｍａを求め、Ｍａを量子化して、エントリが整数である行列Ｍを求め、左基本行列Ａを定義し、右基本行列Ｂを定義し、基本エントリの位置を記憶するためのパターン行列Ｐを定義し、行列ＭｅにＭの出発値を割り当て、行列Ａｅを定義し、行列Ｂｅを定義し、ｅに出発値を割り当て、ａ）Ｍｅの非ゼロエントリｄｅを選択し、ｂ）Ｐの第ｅの列に、選択したＭｅの非ゼロエントリの位置（ｒ，ｃ）を記憶し、ｃ）Ｍｅから、共通のエントリとしてｄｅを有し、
2019204542.tif 000009
がパラメータｍ、ｎ、ｐ、およびｑに関するＭのシュミット分解における項である、２つの行列ＡｅおよびＢｅを選択し、ｄ）Ａの第ｅのｍ×ｐブロックに、位置がＭｅにおけるＡｅのエントリの位置であるＭのエントリを記憶し、ｅ）Ｂの第ｅのｎ×ｑブロックに、位置がＭｅにおけるＢｅのエントリの位置であるＭのエントリを記憶し、ｆ）行列
2019204542.tif 000010
を算出し、ｅ＜Ｒである場合、Ｍｅ＋１を用いてステップ（ａ）〜（ｆ）反復を反復し、ｅ＝Ｒである場合、Ｐ、ＡおよびＢは集合的に、Ｍに対応する符号化されたデジタルデータを表すように構成される。
【００１６】
本開示の別の実施形態において、デジタルデータを符号化するための方法は、非一時的媒体に記憶されたソフトウェアを実行するコンピュータを使用することを含み、ソフトウェアは、整数の定義済みセット内のエントリを用いて、デジタルデータ内のｍｎ×ｐｑ行列Ｍを同定し、２つの部分Ｓ１およびＳ２における基本シーケンスＳを定義し、基本行列Ｅを定義し、Ｅのｎ×ｑブロック行列の位置を記憶するためパターンシーケンスＰＳを定義し、行列Ａｅを定義し、行列Ｂｅを定義し、行列ＭｅにＭの出発値を割り当て、ｅに出発値を割り当て、ａ）Ｍｅの非ゼロエントリｄｅを選択し、ｂ）ＰＳの第ｅの項に、deの位置（ｒ，ｃ）を含むＭｅの第ｅのｎ×ｑブロックのおける位置を記憶し、ｃ）Ｍの第ｅのｎ×ｑブロック行列を、Ｅの第ｅのｎ×ｑブロック行列に記憶し、辞書式順序に従って、Ｍの第ｅのｎ×ｑブロックのエントリをＳ１に記憶し、ｄ）ｑによるｃのユークリッド除法を算出して余りｊを求め、余りがゼロである場合、ｊをｑと置換し、次いで、ｉ＝（ｃ−ｊ）／ｑ＋１を計算し、および、ｎによるｒのユークリッド除法を算出して余りｌを求め、余りがゼロである場合、ｌをｎと置換し、次いで、ｋ＝（ｒ−ｌ）／ｎ＋１を計算し、ｅ）１〜ｍの各整数ａ、および１〜ｐの各整数ｂについて、行列Ａｅの位置（ａ，ｂ）に、位置（１＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭｅのエントリを記憶し、辞書式順序に従って、Ｅの位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）が空白である場合、そこに、同じ位置に配置されたＭのエントリを記憶し、シーケンスＳ２に、同じエントリを記憶し、ｆ）行列
2019204542.tif 000011
を算出し、Ｍ〜Ｍｅ＋１の所定の誤差しきい値に達した場合には、Ｍｅ＋１を用いてステップ（ａ）〜（ｆ）を反復し、そうでない場合には、Ｓ１およびＳ２を集合させて、ＰＳおよび形状（ｍ，ｎ，ｐ，ｑ）を用いてＭに対応する符号化されたデジタルデータを表すシーケンスＳを形成し、ｇ）ソフトウェアまたは別のコンピュータを実行するコンピュータのうちの少なくとも１つ上のデジタル記憶域に、符号化されたデータを転送し、符号化されたデータは、ソースデジタルデータよりも少ないデータバイトを備え、ソースデジタルデータの全ての情報およびソースデジタルデータの情報の全ての近似のうちの少なくとも１つを表すように構成される。
【００１７】
その変形形態において、ソフトウェアは、Ｒを、ＰＳにおける項の数数として定義し、Ｅを、ｍｎ×ｐｑ行列として定義し、Ｓの第１のＲｎｑ個の項を使用して、ＥのＲｎ×ｑブロック行列を構築し、ＰＳを使用してＲ個のブロック行列の位置を同定し、Ｓから使用した項を削除し、次いで、基本位置を、Ｅの任意の埋められた位置と呼び、行列ＭｅにＥの出発値を割り当て、ｅに出発値を割り当て、ａ）エントリがＭｅの第ｅのｎ×ｑブロック行列のエントリである行列Ｂｅを構築し、辞書式順序に従って、絶対値がＢｅのエントリの絶対値の最大値に等しいＢｅにおける第１のエントリｄｅのＭｅにおける位置（ｒ，ｃ）を計算し、次いで、シーケンスＤの第ｅの項にｄｅを記憶し、ｂ）ｑによるｃのユークリッド除法を算出して余りｊを求め、余りがゼロである場合、ｊをｑと置換し、次いで、ｉ＝（ｃ−ｊ）／ｑ＋１を計算し、および、ｎによるｒのユークリッド除法を算出して余りｌを求め、余りがゼロである場合、ｌをｎと置換し、次いで、ｋ＝（ｒ−ｌ）／ｎ＋１を計算し、シーケンスＩの第ｅの項ｉ、シーケンスＪの第ｅの項ｊ、シーケンスＫの第ｅの項ｋ、およびシーケンスＬの第ｅの項ｌを記憶し、c)各（ａ，ｂ）について（ただし、１≦ａ≦ｍかつ１≦ｂ≦ｐ）、以下のようにｍ×ｐ行列Ａｅを構築し、（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）は、基本位置である場合、Ａｅの位置（ａ，ｂ）に位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）に配置されたＭｅのエントリを埋め、このＥの位置にＳの第１の項を埋め、（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）をＥの基本位置としてマークし、ｄ）Ａｅの他の位置にゼロを埋め、ｆ）
2019204542.tif 000012
を計算し、ｅ＜Ｒである場合、Ｍｅ＋１を用いてステップ（ａ）〜（ｄ）を反復し、ｅ＝Ｒである場合、行列ＥｅにＥの出発値を割り当て、ｅに出発値を割り当て、ｇ）それぞれＩの第ｅの項、Ｊの第ｅの項、Ｋの第ｅの項、およびＬの第ｅの項であるｉ、ｊ、ｋ、およびｌを計算し、ｈ）１〜ｍの各整数ａ、および１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊにおけるＥｅのエントリを、Ａｅの位置（ａ，ｂ）に配置し、Ｅｅの第ｅのｎ×ｑブロック行列をＢｅに割り当てるように、ｍ×ｐ行列Ａｅを構築し、ｎ×ｑ行列Ｂｅが構築され、ｋ）ｅ＜Ｒである場合、
2019204542.tif 000013
を計算し（ただし、ｄｅはＤの第ｅの項である）、Ｅｅ＋１を用いてステップ（ｇ）および（ｈ）を反復し、ｅ＝Ｒである場合、
2019204542.tif 000014
を計算し、ただし、行列Ｎは、出力ファイルの行列であるようにさらに構成されることによって、符号化されたデジタルデータを復号するように構成される。
【００１８】
そのさらなる変形形態において、Ｍのシュミットランクに達した後、ステップ（ｆ）のステップ（ａ）〜（ｄ）の反復計算を停止することによって、可逆圧縮が達成される。
【００１９】
そのさらなる変形形態において、ＰＳＮＲ、ＰＥＶＱおよびＳＳＩＭのうちの少なくとも１つを使用することによって、誤差を測定する。
【００２０】
添付図面と併せて考察するときに以下の詳細な説明を参照すると、本開示のより完全な理解、ならびにそれらの付随する利点および特徴がより容易に理解されるであろう。
【図面の簡単な説明】
【００２１】
【図１Ａ】本開示に係るＢＳＤ可逆圧縮の一実施形態の図であり、図解したアルゴリズムは、上から下、左から右へと実行され、図面全体の丸に囲まれた文字は、様々なアルゴリズム間の論理フローパターンを指す。
【図１Ｂ】本開示に係るＢＳＤ可逆復元の一実施形態の図である。
【図１Ｃ】本開示に係るＢＳＤ非可逆圧縮の一実施形態の図である。
【図２Ａ】本開示に係る、ＳＶＤおよびブロックを使用するＢＳＤ非可逆圧縮の一実施形態の図である。
【図２Ｂ】本開示に係る、ＳＶＤおよびブロックを使用したＢＳＤ復元の一実施形態の図である。
【図３Ａ】本開示に係る、ＢＳＤ圧縮および暗号化の一実施形態の図である。
【図３Ｂ】本開示に係るＢＳＤ復元の一実施形態の図である。
【図４】本開示を実行するためにその一部または全体を使用することができる、コンピューティング機器を示す。
【発明を実施するための形態】
【００２２】
必要に応じて、詳細な実施形態を本明細書に開示するが、開示した実施形態は例にすぎず、以下に記載する説明するシステムおよび方法は様々な形態で実施できることを理解されたい。したがって、本明細書に開示した特定の構造的および機能的な詳細は制限として解釈すべきではなく、単に、特許請求の範囲の根拠として、かつ、ほぼすべての適切に詳細な構造体および機能における本発明の主題を様々に採用するために当業者に教示する代表的な根拠として解釈すべきである。さらに、本明細書で使用する用語および表現は、制限を意図するものではなく、むしろ、概念の理解可能な説明を提供することを意図するものである。
【００２３】
用語「ａ（１つ）」または「ａｎ（１つ）」は、本明細書で使用する場合、１つ以上であると定義される。用語「ｐｌｕｒａｌｉｔｙ（複数）」は、本明細書で使用する場合、２つ以上であると定義される。用語「ａｎｏｔｈｅｒ（別の）」は、本明細書で使用する場合、少なくとも第２のまたはそれ以上であると定義される。用語「ｉｎｃｌｕｄｉｎｇ（を含む）」および「ｈａｖｉｎｇ（を有する）」は、本明細書で使用する場合、備える（ｃｏｍｐｒｉｓｉｎｇ）（すなわち、オープンランゲージ（ｏｐｅｎ  ｌａｎｇｕａｇｅ）と定義される。用語「ｃｏｕｐｌｅｄ（結合される）」は、本明細書で使用する場合、「ｃｏｎｎｅｃｔｅｄ（接続される）」と定義されるが、必ずしも直接的である必要も、機械的である必要もない。本明細書では、「ソフトウェア」への言及は、本開示の方法を実施する命令の電子実行を指し、したがって、本開示の方法は、例えば、パラレルプロセッサを含む１つまたは複数の電子プロセッサにより実行される。用語「メモリ値」またはメモリサイズは、不揮発性記憶域内の参照された要素のサイズもまた示すと考えられ得る。
【００２４】
本開示の一実施形態では、デジタルファイルは、行列のシュミット分解を含む方法を使用して圧縮される。本開示は、行列Ｍにより表すことができる任意のデジタルファイルの可逆圧縮および非可逆圧縮の実行を提供する。可逆圧縮は、Ｍのいくつかのエントリを記憶してＭを回復する装置により達成される。非可逆圧縮は、本開示の方法を、低ランク近似およびブロックによる圧縮を含む他の技法と組み合わせる装置により達成される。別の態様では、装置は、本開示の方法を実行してファイルを圧縮するようにし、一実施形態では、復元プロセスで必要なキーコードをユーザが選択することを可能にするように構成されるソフトウェアを実行する。したがって、本発明は、データ圧縮およびデータセキュリティを可能にする
【００２５】
本開示は、行列のシュミット分解を発見する方法を提供する。本明細書では、この方法をＢＳＤ（Ｂｏｕｒｏｕｉｈｉｙａ  Ｓｃｈｍｉｄｔ  Ｄｅｃｏｍｐｏｓｉｔｉｏｎ）と称する。行列ＭのＢＳＤは、Ｍのエントリ、およびＭの分解に関与する各行列の各エントリを計算する基本演算を使用する。本開示は、この事実を使用して、デジタルファイルの可逆圧縮および非可逆圧縮を可能にする。一実施形態では、可逆圧縮は、ＳＶＤではほとんど不可能であるが、ＢＳＤとＳＶＤとを組み合わせることにより、本発明は、誤差の点で極めてコストが低い、ＳＶＤを用いた圧縮が直面する記憶域の問題を解決しながら、非可逆圧縮を可能にする。本開示による圧縮は、ＪＰＥＧまたはＪＰＥＧ２０００のような、普及している既存の方法と競合する。
【００２６】
本開示は、デジタルファイルの可逆圧縮または非可逆圧縮を達成するＢＳＤの使用、特定の適用例に圧縮方法を適合するために多数のパラメータからユーザが選択できるようにすることを含めて、ＢＳＤ、ＳＶＤを用いた低ランク近似、ブロックによる圧縮、およびデジタルファイルの効率的な非可逆圧縮を達成する他の技法の使用、ならびにデジタルファイルの暗号化の実施形態を提供し、ユーザは、復元プロセスにおいて解読に必要なキーコードを選択することができ、本開示の非可逆圧縮および可逆圧縮とともに、本開示の暗号化法を使用することができる。
【００２７】
デジタルデータまたはファイルの可逆圧縮は、以下のように、ＢＳＤを使用して達成されるが、この方法を使用して、非可逆圧縮を達成することもできる。
【００２８】
各ｍｎ×ｐｑ行列Ｍは、以下のように記述される。
【数１】
2019204542.tif 000015
ただし、Ａｋはｍ×ｐ行列であり、Ｂｋはｎ×ｑ行列である。当技術分野で、等式（４．１）は、Ｍのシュミット分解として知られており、Ｒは、（４．１）の項の数が可能な最小値である場合の（シュミット）ランクである。ｒａｎｋ（Ｍ）＝Ｒとする。ＢＳＤを使用してＭを分解する場合、ＡｋまたはＢｋにおける各エントリは、ｋ＝１，．．．Ｒの各々について、Ｍから抽出されたエントリ、および基本演算を使用して計算される。
【００２９】
実施例１
エントリが０〜２５５の整数である６×６行列Ｍについて考察する。したがって、コンピュータにＭを記憶するのに必要とされるメモリ空間は３６バイトである。この実施例では、ＢＳＤを使用して、（３，２，２，３）に関して、すなわち、各項が３×２行列と２×３行列とのクロネッカー積である行列の和へとＭを分解する。
【数２】
2019204542.tif 000016
【００３０】
Ａ１、Ａ２、Ｂ１およびＢ２のエントリは、基本シーケンスＳ＝（９，１２，２１，２４，３３，３６，２８，２９，３０，３４，３５，１，４，１３，１６，２５，２，３，７，８）を使用して計算され、これらの項は、Ｍの基本エントリと呼ばれる（これらのエントリは、Ｍを太字および下線付きで示される）。基本エントリを選択するための方法は、本明細書の他の箇所に提供される。Ｍを回復するためには、分解形状（３，２，２，３）、基本シーケンスＳ、ならびに（Ａ１およびＢ１を配置するために使用される）位置（６，６）と（Ａ２およびＢ２を配置するために使用される）位置（１，１）とを含むパターン行列を記憶する必要がある。２０個の基本エントリがあるので、分解形状は４個のエントリを含み、パターン行列は４個のエントリを含み、その場合、圧縮ファイルを記憶するのに必要とされるメモリ空間は２８バイトである。したがって、３６バイトから２８バイトまで、Ｍの可逆圧縮が達成される。ＢＳＤアルゴリズムについての数学的証明は、本明細書の他の箇所に提供される。
【００３１】
ＳＶＤを使用してＭのシュミット分解を実行した場合、
【数３】
2019204542.tif 000017
である。
【００３２】
行列Ｎ１１、Ｎ２１、Ｎ１２またはＮ２２におけるあらゆるエントリは、０〜２５５の整数ではなく、近似的に計算することしかできない。したがって、これらの行列を記憶することは、Ｍの可逆圧縮を達成しない。これは、実数の記憶は、圧縮ファイルのサイズを大幅に増大させるからである。
【００３３】
画像圧縮のためにＢＳＤを使用すると、圧縮ファイルを記憶するのに必要なメモリ空間が、オリジナルファイルを記憶するのに必要なメモリ空間よりも大きくなる可能性が低い。実際には、ほとんどの圧縮は、本開示の方法を使用するオリジナルファイルよりも実質的に小さくなる。
【００３４】
実施形態１
図１Ａを参照すると、本開示の一実施形態において、デジタルファイルの可逆圧縮が、ＢＳＤを用いて達成される。本明細書の他の箇所に記載するように、非可逆圧縮は、同様の方法を用いて達成することができる。
【００３５】
入力ファイルは、分解形状（ｍ，ｎ，ｐ，ｑ）に関して分解されるｍｎ×ｐｑ行列Ｍにより表されると仮定する。圧縮プロセスおよび復元プロセスの過程において、以下の行列およびシーケンスを定義し、計算する。
Ｐ：Ｍのパターン行列。
Ｅ：Ｍの基本行列、これは、ｍｎ×ｐｑ行列である。
Ｓ：鳩の巣原理を使用して構築される、基本シーケンス（鳩の巣原理を使用することは、本明細書で他の箇所に詳述したように、任意であることを理解されたい）。
【００３６】
図１Ａを参照して、以下のステップのセットは、ＭのＢＳＤについて説明する。以下に、第ｅのセットについて説明するが、ｅは、１〜圧縮プロセス中に計算されるＭのランクの整数である。ステップのこのセットにおいて、ｍｎ×ｐｑ行列Ｍｅを定義する。１００において、圧縮プロセスが、Ｍ１＝Ｍで開始する。
【００３７】
ステップ１：ソフトウェアは、Ｍｅのエントリの絶対値の最大値ｄを計算する。辞書式順序に従って、絶対値がｄに等しい第１のエントリｄｅのＭｅにおける位置（ｒ，ｃ）は、パターン行列Ｐの第ｅ列に記憶される（１０２）。
【００３８】
ステップ２：ソフトウェアは、ｑによるｃのユークリッド除法を実行し、余りｊを求める。余りがゼロの場合、ｊはｑと置換される。次いで、ソフトウェアは、ｉ＝（ｃ−ｊ）／ｑ＋１を計算する。
【００３９】
ステップ３：ソフトウェアは、ｎによるｒのユークリッド除法を実行し、余りｌを求める。余りがゼロの場合、ｌはｎと置換される。次いで、ソフトウェアは、ｋ＝（ｒ−ｌ）／ｎ＋１を計算する。
【００４０】
ステップ４：１〜ｍの各整数ａ、および１〜pの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭｅのエントリを行列Ａｅの位置（ａ，ｂ）に記憶する（１０４）。辞書式順序に従って、Ｅの位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）が空白である場合、同じ位置にロケーティングされたＭのエントリをそこに記憶し、同じエントリをシーケンスＳに記憶する（１０６）。次いで、このエントリをＭの基本エントリと称する。
【００４１】
ステップ５：１〜ｎの各整数ａ、および１〜ｑの各整数ｂについて、位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＭｅのエントリを行列Ｂｅの位置（ａ，ｂ）に記憶する（１０８）。辞書式順序に従って、Ｅの位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）が空白の場合、同じ位置にロケーティングされたＭのエントリをそこに記憶し（１０６）、同じエントリをシーケンスＳに記憶する（１０８）。次いで、このエントリをＭの基本エントリと称する。
【００４２】
ステップ６：ソフトウェアは、行列
2019204542.tif 000018
を計算する（１１０）。（本明細書の他の箇所に詳述したように、本開示は、
2019204542.tif 000019
の事実を提供する。）
【００４３】
Ｍｅ＋１＝０の場合、Ｍの可逆圧縮が達成される。
【００４４】
Ｍｅ＋１≠０である場合、Ｍｅ＋１を用いてステップ１〜６を実行する（１１４）。
【００４５】
Ｒ個のステップの後、プロセスを停止するここで、Ｒは、Ｍのシュミットランクである。
【００４６】
図１Ｃを参照すると、非可逆圧縮プロセスは、同じステップ１〜５のセットを含むが、ステップ１において誤差しきい値を選択し（１４０）、誤差しきい値を超えるとき、ステップ６の第２のステートメントを、プロセスを停止するステートメントと置換する（１４２）。
【００４７】
分解形状（ｍ，ｎ，ｐ，ｑ）、パターン行列Ｐ、および基本シーケンスＳが、圧縮ファイルを構成する。
【００４８】
例えば、ステップ１を「辞書式順序に従って、Ｍｅの第１の非ゼロエントリｄｅの位置（ｒ，ｃ）を、パターン行列Ｐの第ｅの列に記憶する」と置換することを含む、ＢＳＤの他の可能な実施形態がある。様々な実施形態は、異なる圧縮結果につながり得る。
【００４９】
この実施形態に記載する可逆圧縮は、データ行列のサイズがシュミット分解の形状と合致すると仮定する。他の場合には、形状を適合するようにデータ行列が強化され、復元プロセスにおいて追加エントリが無視される。あらゆる行列のサイズと合致する形状（（ｍ，ｎ，１，１）など）があることに留意されたい。
【００５０】
実施形態１  復元
図１Ｂを参照すると、復元プロセスでは、クアドロプル（ｍ，ｎ，ｐ，ｑ）、行列ＰおよびシーケンスＳが入力を構成する（１２０）。
【００５１】
ステップ１：ソフトウェアは、Ｐにおける列の数に等しいＲを計算する（１２２）。
【００５２】
ステップ２：ｅ＝１からｅ＝Ｒまで、装置は、各ｅについて以下のサブステップを実行する（１２４）。
【００５３】
ステップ２．１：装置は、Ｐの第ｅの列から、順序対（ｒ，c）を抽出する。
【００５４】
ステップ２．２：ソフトウェアは、ｑによるｃのユークリッド除法を実行し、余りｊを求める。余りがゼロの場合、ｊはｑと置換される。次いで、ソフトウェアは、ｉ＝（ｃ−ｊ）／ｑ＋１を計算する。
【００５５】
ステップ２．３：ソフトウェアは、ｎによるｒのユークリッド除法を実行し、余りｌを求める。余りがゼロの場合、ｌはｎと置換される。次いで、ソフトウェアは、ｋ＝（ｒ−ｌ）／ｎ＋１を計算する。
【００５６】
ステップ２．４：セットの辞書式順序｛（ａ，ｂ）：１≦ａ≦ｍ，かつ１≦ｂ≦ｐ｝に従って、装置は、空白位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）ごとにＥを埋めるのに十分なＳの第１の項を記憶し、次いで、ｅについてステップ２．４で使用される項ではなくＳの全ての項を含む新たなシーケンスとＳを置換する。その後、古いシーケンスを削除し、新たなシーケンスをＳと呼ぶ。
【００５７】
ステップ２．５：セット｛（ａ，ｂ）：１≦ａ≦ｎ，かつ１≦ｂ≦ｑ｝辞書式順序に従って、装置は、空白位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）ごとにＥを埋めるのに十分なＳの第１の項を記憶し、次いで、ｅについてステップ２．５で使用される項ではなくＳの全ての項を含む新たなシーケンスとＳを置換する。その後、古いシーケンスを削除し、新たなシーケンスをＳと呼ぶ。
【００５８】
ステップ３：ソフトウェアは、ステップ２の後に空白であるＥにおける各位置に０を埋める（１２６）。
【００５９】
ステップ４：このステップでは、各ｅ＝１，．．．，Ｒについて、ｍｎ×ｐｑ行列Ｅｅを定義する。プロセスは、Ｅ１＝Ｅから開始する。ソフトウェアは、Ｐの第ｅの列から順序対(ｒ，ｃ)を抽出し、位置（ｒ，ｃ）におけるＥｅのエントリｄｅを抽出し、以下のサブステップを実行する（１２８）。
【００６０】
ステップ４．１：ソフトウェアは、ｑによるｃのユークリッド除法を実行し、余りｊを求める。余りがゼロの場合、ｊはｑと置換される。次いで、ソフトウェアは、ｉ＝（ｃ−ｊ）／ｑ＋１を計算する。
【００６１】
ステップ４．２：ソフトウェアは、ｎによるｒのユークリッド除法を実行し、余りｌを求める。余りがゼロの場合、ｌはｎと置換される。次いで、ソフトウェアは、ｋ＝（ｒ−ｌ）／ｎ＋１を計算する。
【００６２】
ステップ４．３：１〜ｍの各整数ａ、および１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＥｅのエントリは、Ａｅの位置（ａ，ｂ）に配置される。
【００６３】
ステップ４．４：１〜ｎの各整数ａ、および１〜ｑの各整数ｂについて、位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＥｅのエントリは、Ｂｅの位置（ａ，ｂ）に配置される。
【００６４】
ｅ＜Ｒである場合、ソフトウェアは、
2019204542.tif 000020
を計算し、サブステップ  ４．１〜４．４を再度行う（１３０）。
【００６５】
ｅ＝Ｒである場合、ソフトウェアは、ステップ５を実行する。
【００６６】
ステップ５：ソフトウェアは、以下のように、ステップ４で求めた行列を集合させる。
2019204542.tif 000021
【００６７】
行列Ｎは、出力ファイルの行列である。圧縮が可逆である場合、Ｎ＝Ｍである（１３２）。圧縮が非可逆である場合、ＮはＭに近似する。
【００６８】
デジタルファイルは、エントリが０〜２５５の整数であるＭにより表されると仮定する。したがって、ファイル中の各ピクセルをコンピュータに記憶するには、１バイトが必要である。分解形状を記憶するためは、４バイトが必要である。基本シーケンスＳの項は、Ｍから抽出され、したがって、Ｓを記憶するために必要なメモリ空間は、Ｍを記憶するために必要なメモリ空間よりも小さい。Ｐのエントリの数は、最小数２ｍｐおよび２ｎｑよりも少なく、Ｍは、ｍｎｐｑエントリを計数する。実際には、パターン行列Ｐは、Ｍが占めるメモリ空間の１％未満を占める。したがって、ＢＳＤを用いた圧縮は、０．９９よりも大きな可逆圧縮比を有する。例えば、ｍ＝１６、ｎ＝２４、ｐ＝８、およびｑ＝１６の場合、行列Ｍのメモリサイズは４９，１５２バイトである。一方、分解形状（１６，２４，８，１６）およびパターン行列Ｐを記憶するために、２６０バイト以下、つまり、Ｍのサイズの０．５３％未満が必要である。したがって、圧縮比は、０．９９４よりも大きい。
【００６９】
多くの場合、分解形状（ｍ，ｎ，ｐ，ｑ）について、いくつかの選択がある。これらの選択は、何らかのタイプの圧縮されるファイルに適合するためにより適切である。例えば、２５６×２５６行列を分解するためには、４９個の分解形状から選択することができる。
【００７０】
本開示は、クロネッカー積を含む算術計算を使用する。これは、論理的かつ統計的であるハフマン符号化および算術符号化を含む統計モデルおよびビットシーケンスに基づく可逆圧縮法とは区別することができる。本開示は、デジタルデータに適用することができる算術可逆圧縮を提供する。
【００７１】
実施形態２
図２Ａを参照すると、第２の実施形態は、ＢＳＤ、低ランク近似およびブロックによる圧縮を使用して、デジタルファイルの効率的な非可逆圧縮を達成する。出力ファイルの品質を測定するために、ピーク信号対雑音比（ＰＳＮＲ）を使用する。本明細書ではＰＳＮＲを品質または誤差の測定として参照するが、例えば、二乗平均平方根、ＰＥＶＱ（ビデオデータに有利であるＰｅｒｃｅｐｔｕａｌ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ｖｉｄｅｏ  Ｑｕａｌｉｔｙ）、およびＳＳＩＭ（ＰＳＮＲのような、画像に有利であるＳｔｒｕｃｔｕｒａｌ  Ｓｉｍｉｌａｒｉｔｙ  Ｉｎｄｅｘ  Ｍｅｔｈｏｄ）と置換され得る、多くの様々なタイプの誤差測定があり、使用される元のデータファイルのタイプに最も適するとき、または場合によっては特定の目的に好適であると見なされるときには、他の測定が選択されることを理解されたい。
【００７２】
入力ファイルは、エントリが［０，２５５］の整数である行列Ｍにより表される画像であり、それについて、圧縮ファイルおよび出力ファイルのエントリもまた［０，２５５］の整数であることを要すると仮定する。したがって、各エントリは、デジタルデバイスに、１バイトで記憶することができる。
【００７３】
圧縮プロセスの場合、入力は、Ｍ、Ｅｒ、しきい値誤差を設定する数、ならびにブロック行列を定義するパラメータｍ、ｎ、ｐおよびｑを含む。Ｍのサイズは、ｍｎ×ｐｑ行列のサイズの数倍であると仮定する。圧縮のプロセスにおいて、Ｍは、ｍｎ×ｐｑ個のブロック行列へと分割される。圧縮プロセスの過程において、装置は、パターン行列Ｐ、基本シーケンスＳ、およびランクＲのシーケンスを構築する。
【００７４】
ステップ１：Ｍの高さがｍｎで分割不可能、または、Ｍの幅がｐｑで分割不可能な場合、被整除性に達するために、ゼロの列または行をＭに加える（１６０）。次いで、加えた部分を、復元プロセスにおいて無視する。
【００７５】
ステップ２：ソフトウェアは、画像をブロックに分割する。各ブロックは、ｍｎ×ｐｑ行列である。ｈは、これらのブロックの数であると言える（１６２）。（ｍ，ｎ，ｐ，ｑ）について、ＢＳＤを使用する。
【００７６】
ステップ３：各ｅ＝１，．．．，ｈについて、ソフトウェアは、第ｅのブロックＭｅに対して以下のステップを実行する。
【００７７】
ステップ３．１：ＳＶＤを使用することによって、ソフトウェアは、Ｍを備えるＰＳＮＲがＥｒ以上である全ての行列のうち最も低いランクの可能なＲｅを有する行列Ｄｅを計算する（１６４）。
【００７８】
ステップ３．２：ソフトウェアは、行列Ｄｅを切り上げ、エントリが整数である行列Ｑｅを取得する。（Ｑｅのエントリのほとんとが［０，２５５］内であるが、少数のエントリはその範囲外であり得る）（１６６）。
【００７９】
ステップ３．３：実施形態１を使用して、装置は、Ｑｅを圧縮し、パターン行列Ｐｅおよび基本シーケンスＳｅを計算する（１６８）。
【００８０】
ステップ３．４：ソフトウェアは、第ｅのパターン行列の行を、パターン行列Ｐの行（２ｅ−１）および２ｅに記憶し、Ｓｅの項をＳに（Ｓの最後の項の後に連続的に）記憶し、ＲｅをＲに記憶する（１７０）。
【００８１】
クアドロプル（ｍ，ｎ，ｐ，ｑ）、行列Ｐ、シーケンスＳ、シーケンスＲ、およびＭのサイズが、圧縮ファイルを構成する（１７２）。
【００８２】
実施形態２  復元
図２Ｂを参照すると、復元プロセスの場合、入力は、クアドロプル（ｍ，ｎ，ｐ，ｑ）、行列Ｐ、シーケンスＳ、シーケンスＲおよびＭのサイズを含む、圧縮ファイルである（１８０）。
【００８３】
ステップ１．ソフトウェアは、Ｒの項の数として、ｈを計算する（１８２）。
【００８４】
ステップ２．各ｅ＝１，．．．，ｈについて、装置は以下のステップを実行して、出力行列の第ｅのブロックを求める。
【００８５】
ステップ２．１．ソフトウェアは、パターン行列Ｐの行（２ｅ−１）および２ｅとして、入力行列から行列Ｐｅを抽出し、Ｒから数Ｒｅを抽出する（１８４）。
【００８６】
ステップ２．２．行列Ｐｅ、数ＲｅおよびシーケンスＳを用いて、装置は、実施形態１の復元プロセスのステップ２〜５を使用して、元のブロックＭｅに近似するブロック行列Ｎｅを構築する（１８６）。鳩の巣原理を使用して、ステップ２．２において使用した項ではなく、Ｓの全ての項を含む新たなシーケンスとＳを置換する。その後、古いシーケンスを削除し、新たなシーケンスをＳと呼ぶ（１８８）。
【００８７】
ステップ３．ソフトウェアは、１つの行列Ｎとしてステップ２で構築したｈ個のブロックを集合させる（１９０）。次いで、ソフトウェアは、ＭのサイズおよびＮの量子化を使用して、エントリが［０，２５５］の整数である行列Ｎｑを構築し、ＮｑはＭのサイズを有し、ＮｑはＭに近似する（１９２）。
【００８８】
ブロックによる圧縮またはタイリングは、圧縮時間および復元時間を著しく低減する並行処理を可能にする。
【００８９】
実施形態３
図３Ａを参照すると、第３の実施形態では、本開示のソフトウェアは、圧縮を実行することに加えて、デジタルファイルを暗号化する。ファイルを圧縮した後に、ソフトウェアは、ユーザが、復元プロセスで必要なキーコードを選択することを可能にする。暗号化ソフトウェアは、本開示の非可逆圧縮法または可逆圧縮法とともに使用することができる。
【００９０】
暗号化プロセスの一例では、入力ファイルがｍｎ×ｐｑ行列Ｍにより表されると仮定する。
【００９１】
ステップ１．ソフトウェアは、第１の実施形態に記載した可逆圧縮法を使用してファイルを圧縮する。次いで、出力は、基本シーケンスＳおよびパターン行列Ｐである（２００）。
【００９２】
ステップ２．ユーザは、キーコードＫ、１桁〜数百桁のものであり得る数を選択する（２０２）。
【００９３】
ステップ３．このステップは、キーコードを使用して行列Ｐを行列Ｌに変換するためにソフトウェアに実装される任意の１対１アルゴリズムとすることができる（２０４）。
【００９４】
暗号化ファイルは、シーケンスＳ、行列Ｌ、形状（ｍ，ｎ，ｐ，ｑ）、およびユーザキーコードＫを含む（２０６）。
【００９５】
ステップ３についてのアルゴリズムを実装するために、多数の実施形態を使用できる可能性がある。一例では、ユーザは、ｈ桁の数Ｋ＝Ｋ１Ｋ２．．．Ｋｈを選択し、ｈはＰの行の数以下であると仮定する。各ｅ＝１，．．．，ｈについて、ソフトウェアは、Ｐの第ｅの行のエントリを、円形にＫｅ個分シフトする。キーコードを使用してＰをＬに変換にするために、他の既知の方法およびこれ以降に開発される方法を使用することができる。
【００９６】
実施形態３  復元／解読
解読プロセスの場合、入力は、Ｓ、Ｌ、Ｋ、および（ｍ，ｎ，ｐ，ｑ）を含む（２１０）。
【００９７】
ステップ１．ソフトウェアは、Ｋ、Ｌおよび暗号化プロセスの第３のステップのアルゴリズムの逆を使用して、Ｐを回復する（２１２）。
【００９８】
ステップ２．ソフトウェアは、Ｓ、Ｐ、および（ｍ，ｎ，ｐ，ｑ）を用いた、第１の実施形態に記載した可逆復元法を使用した、Ｍを回復する（２１４）。
【００９９】
ユーザは、本開示のソフトウェアを実行する暗号化装置を使用して、サードパーティの関与なしに彼女／彼のファイルをセキュアにすることができる。暗号化プロセスのステップ３についての暗号化アルゴリズムのユーザによる選択は、キーコードの一部とすることができる。分解形状（ｍ，ｎ，ｐ，ｑ）もまた、キーコードの一部とすることができる。全てのこれらのオプションにより、未承認の人々によるセキュアデータのアクセスがより困難になる。
【０１００】
たとえば企業環境内で有用な１つの実施形態では、本開示のソフトウェアは、各被雇用者について暗号化アルゴリズムを生成するように構成することができる。管理者マネージャは、各被雇用者の暗号化アルゴリズムにアクセスできるが、被雇用者は、彼女／彼のファイルをロックおよびアンロックするキーコードを選択することができる。ある被雇用者が退職し、企業が、当該被雇用者がその企業のファイルにアクセスできなくすることを希望する場合、管理者は、その被雇用者についての暗号化アルゴリズムを単に変更しなければならない。いずれの被雇用者も、彼女／彼のキーコードをリセットする必要はない。
【０１０１】
暗号化プロセスの第１のステップにおいて使用される可逆圧縮法は、第１または第２の実施形態に記載した任意の非可逆圧縮法と置換することができる。
【０１０２】
実施形態４
本開示の一実施形態において、デジタルファイルの可逆圧縮が、ＢＳＤを用いて達成される。本明細書の他の箇所に記載するように、非可逆圧縮は、同様の方法を用いて達成することができる。
【０１０３】
入力ファイルは、分解形状（ｍ，ｎ，ｐ，ｑ）に関して分解されるｍｎ×ｐｑ行列Ｍにより表されると仮定する。圧縮プロセスおよび復元プロセスの過程において、以下の行列を定義し、計算する。
【０１０４】
Ｐ：Ｍのパターン行列、これは、２×Ｒ行列である。
Ｅ：Ｍの基本行列、これは、ｍｎ×ｐｑ行列である。
Ａ：Ｍの左基本行列、これは、ｍ×Ｒｐ行列である。
Ｂ：Ｍの右基本行列、これは、ｎ×Ｒｑ行列である。
【０１０５】
以下のステップは、ＭのＢＳＤ分解について説明する。以下に、第ｅのセットについて説明するが、ｅは、ｌ〜圧縮プロセス中に計算されるＭのランクの整数である。ステップのこのセットにおいて、ｍｎ×ｐｑ行列Ｍｅを定義する。圧縮プロセスは、Ｍ１＝Ｍから開始する。
【０１０６】
ステップ１：ソフトウェアは、Ｍｅのエントリの絶対値の最大値ｄを計算する。ステレオ次数に従って、ｄに等しいＭｅの第１のエントリの位置（ｒ，ｃ）を、パターン行列Ｐの第ｅの列に記憶する。
【０１０７】
ステップ２：ソフトウェアは、ｑによるｃのユークリッド除法を実行し、余りｊを求める。余りがゼロの場合、ｊはｑと置換される。次いで、ソフトウェアは、ｉ＝（ｃ−ｊ）／ｑ＋１を計算する。
【０１０８】
ステップ３：ソフトウェアは、ｎによるｒのユークリッド除法を実行し、余りｌを求める。余りがゼロの場合、ｌはｎと置換される。次いで、ソフトウェアは、ｋ＝（ｒ−ｌ）／ｎ＋１を計算する。
【０１０９】
ステップ４：１〜ｍの各整数ａ、および１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭのエントリは、左基本エントリである。このエントリは、左基本行列Ａの位置（ａ，（ｅ−１）ｐ＋ｂ）に記憶される。位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭｅのエントリは、行列Ａｅの位置（ａ，ｂ）に記憶される。
【０１１０】
ステップ５：１〜ｎの各整数ａ、および１〜ｑの各整数ｂについて、位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＭのエントリは、右基本エントリである。このエントリは、右基本行列Ｂの位置（ａ，（ｅ−１）ｑ＋ｂ）に記憶される。位置（ａ＋（ｋ−１）ｎｂ＋（ｉ−１）ｑ）におけるＭｅのエントリは、行列Ｂｅの位置（ａ，ｂ）に記憶される。
【０１１１】
ステップ６：ソフトウェアは、行列
2019204542.tif 000022
を計算する。（本明細書の他の箇所に詳述したように、本開示は、
2019204542.tif 000023
の事実を提供する。）
【０１１２】
Ｍｅ＋１＝０である場合、Ｍの可逆圧縮が達成される。
【０１１３】
Ｍｅ＋１≠０である場合、Ｍｅ＋１を用いてステップ１〜６を実行する。
【０１１４】
非可逆圧縮プロセスは、同じステップ１〜５のセットを含むが、ステップ６の第２のステートメントは、プロセスを止める誤差しきい値と置換される。Ｐ、ＡおよびＢは、圧縮ファイルを構成する。
【０１１５】
実施形態４  復元
復元プロセスでは、行列Ｐ、ＡおよびＢは、入力を構成する。
【０１１６】
ステップ１：ソフトウェアは、Ｐの列の数Ｒ、Ａの行の数ｍ、Ｒで除算したＡの列の数ｐ、Ｂの行の数ｎ、およびＲで除算したＢの列の数ｑを計算する。
【０１１７】
ステップ２：各ｅ＝１，．．．，Ｒについて、装置は、Ｐの第ｅの列から順序対（ｒ，ｃ）を抽出し、以下のサブステップを実行して、Ａによる左基本エントリおよびＢによる右基本エントリで基本行列Ｅを埋める。
【０１１８】
ステップ２．１：ソフトウェアは、ｑによるｃのユークリッド除法を実行し、余りｊを求める。余りがゼロの場合、ｊはｑと置換される。次いで、ソフトウェアは、ｉ＝（ｃ−ｊ）／ｑ＋１を計算する。
【０１１９】
ステップ２．２：ソフトウェアは、ｎによるｒのユークリッド除法を実行し、余りｌを求める。余りがゼロの場合、ｌはｎと置換される。次いで、ソフトウェアは、ｋ＝（ｒ−ｌ）／ｎ＋１を計算する。
【０１２０】
ステップ２．３：１〜ｍｎの各整数ａ、および１〜ｐｑの各整数ｂについて、位置（ａ，（ｅ−１）ｐ＋ｂ）におけるＡのエントリは、Ｅの位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）に配置され、位置（ａ，（ｅ−１）ｑ＋ｂ）におけるＢのエントリは、Ｅの位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）に配置される。
【０１２１】
ステップ３：ソフトウェアは、Ｍの非基本エントリの位置に対応するＥにおける位置に０を埋める。
【０１２２】
ステップ４：このステップでは、各ｅ＝１，．．．，Ｒについて、ｍｎ×ｐｑ行列Ｅｅを定義する。プロセスは、Ｅ１＝Ｅから開始する。ソフトウェアは、Ｐの第ｅの列から順序対（ｒ，ｃ）を抽出し、以下のサブステップを実行する。
【０１２３】
ステップ４．１：ソフトウェアは、ｑによるｃのユークリッド除法を実行し、余りｊを求める。余りがゼロの場合、ｊはｑと置換され、次いで、ソフトウェアは、ｉ＝（ｃ−ｊ）／ｑ＋１を計算する。
【０１２４】
ステップ４．２：ソフトウェアは、ｎによるｒのユークリッド除法を実行し、余りｌを求める。余りがゼロの場合、ｌはｎと置換される。次いで、ソフトウェアは、ｋ＝（ｒ−ｌ）／ｎ＋１を計算する。
【０１２５】
ステップ４．３：１〜ｍの各整数ａ、および１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＥｅのエントリは、行列Ａｅの（ａ，ｂ）にある位置に置かれる。
【０１２６】
ステップ４．４：１〜ｎの各整数ａ、および１〜ｑの各整数ｂについて、位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＥｅのエントリは、行列Ｂｅの位置（ａ，ｂ）に配置される。
【０１２７】
ｅ＜Ｒである場合、ソフトウェアは、
2019204542.tif 000024
を計算し、サブステップ  ４．１〜４．４を再度行う。
【０１２８】
ｅ＝Ｒである場合、ソフトウェアは、ステップ５を実行する。
【０１２９】
ステップ５：ソフトウェアは、以下のように、ステップ４で求めた行列を収集する。
【数４】
2019204542.tif 000025
【０１３０】
行列Ｎは、出力ファイルの行列である。圧縮が可逆である場合、Ｎ＝Ｍである。圧縮が非可逆である場合、ＮはＭに近似する。
【０１３１】
復元プロセスで構築される基本行列Ｅは、圧縮プロセスで構築されることができ、左基本行列Ａと右基本行列Ｂとを置換する。この場合、圧縮ファイルは、ＥおよびＰによって形成される。
【０１３２】
Ｅのエントリは、元の行列Ｍの基本エントリであり、非基本エントリは、選択される任意の数とすることができる。したがって、Ｅに対して他の可逆圧縮を使用することにより、自動的に、圧縮ファイルのメモリ値が、同じ可逆圧縮法をＭに対して使用する場合の圧縮ファイルのメモリ値よりも少なくなる。
【０１３３】
実際には、パターン行列Ｐは、Ｍが占めるメモリ空間の１％未満を占めることができる。したがって、ＢＳＤを用いた圧縮は、０．９９よりも大きな可逆圧縮比を有する。例えば、ｍ＝１６、ｎ＝２４、ｐ＝８、およびｑ＝１６の場合、行列Ｍのメモリサイズは４９，１５２バイトである。一方、分解形状（１６，２４，８，１６）およびパターン行列Ｐを記憶するために、２６０バイト以下、つまり、Ｍのサイズの０．５３％未満が必要である。したがって、圧縮比は、０．９９４よりも大きい。
【０１３４】
多くの場合、パラメータｍ、ｎ、ｐおよびｑについて、いくつかの選択がある。これらの選択は、何らかのタイプの圧縮されるファイルに適合するためにより適切である。
【０１３５】
実施形態５
第２の実施形態は、ＢＳＤ、低ランク近似およびブロックによる圧縮を使用して、デジタルファイルの効率的な非可逆圧縮を達成する。出力ファイルの品質を測定するために、ピーク信号対雑音比（ＰＳＮＲ）を使用する。
【０１３６】
入力ファイルは、エントリが［０，２５５］の整数である行列Ｍにより表される画像であり、それについて、圧縮ファイルおよび出力ファイルのエントリもまた［０，２５５］の整数であることを要すると仮定する。
【０１３７】
圧縮プロセスの場合、入力は、Ｍ、Ｅｒ、しきい値誤差を設定する数、ならびにブロック行列を定義するパラメータｍ、ｎ、ｐおよびｑを含む。Ｍのサイズは、ｍｎ×ｐｑ行列のサイズの数倍であると仮定する。圧縮のプロセスにおいて、Ｍは、ｍｎ×ｐｑ個のブロック行列へと分割される。
【０１３８】
ステップ１：Ｍの高さがｍｎで分割不可能、または、Ｍの幅がｐｑで分割不可能な場合、被整除性に達するために、ゼロの列または行をＭに加える。次いで、加えた部分を、復元プロセスにおいて無視する。
【０１３９】
ステップ２：ソフトウェアは、画像をブロックに分割する。各ブロックは、ｍｎ×ｐｑ行列である。ｈは、これらのブロックの数であると言える。
【０１４０】
ステップ３：各ｅ＝１，．．．，ｈについて、ソフトウェアは、第ｅのブロックＭｅに対して以下のステップを実行する。
【０１４１】
ステップ３．１：ＳＶＤを使用することによって、ソフトウェアは、ＭによるＰＳＮＲがＥｒ以上である全ての行列のうち最低ランクの可能なＲｅを有する行列Ｄｅを計算する。
【０１４２】
ステップ３．２：ソフトウェアは、行列Ｄｅを切り上げ、エントリが整数である行列Ｑｅを取得する。（Ｑｅのエントリのほとんとが［０，２５５］内であるが、少数のエントリはその範囲外であり得る）。
【０１４３】
ステップ３．３：４．１．２で説明したステップのＲｅ個のセットとともにＭｅのＢＳＤを使用すると、ソフトウェアは、Ｍｅを復元し、４．１．２の場合のように、Ｍｅの左基本行列、右基本行列、およびパターン行列を構築する。
【０１４４】
ステップ３．４：ソフトウェアは、行列Ｐ、パターン行列の行（２ｅ−１）および２ｅに、第ｅのパターン行列の行を記憶し、行列Ａ、左基本行列の行（（ｅ−１）ｍ＋１）からｅｍに、第ｅの左基本行列の行を記憶し、行列Ｂ、右基本行列の行（（ｅ−１）ｎ＋１）からｅｎに、第ｅの右基本行列の行を記憶し、数のシーケンスＲにＲｅを記憶する。元のファイルのサイズＳとともに行列Ａ、Ｂ、ＰおよびＲは、圧縮ファイルを構成する。
【０１４５】
実施形態５  復元
復元プロセスについて、入力は、Ａ、Ｂ、Ｐ、ＲおよびＳを含む圧縮ファイルである。
【０１４６】
ステップ１．ソフトウェアは、入力行列から、ｈ、ｍ、ｎ、ｐおよびｑを抽出する。
【０１４７】
ステップ２．各ｅ＝１，．．．，ｈについて、装置は以下のステップを実行して、出力行列の第ｅのブロックを求める。
【０１４８】
ステップ２．１．ソフトウェアは、入力行列から、行列Ａｅ、ＢｅおよびＰｅ、ならびに数Ｒｅを抽出する。
【０１４９】
ステップ２．２．ソフトウェアは、４．１．４で説明した復元プロセスを同様に使用して、ブロックＭｅに近似するブロック行列Ｎｅを構築する。
【０１５０】
ステップ３．ソフトウェアは、ステップ２で構築したｈ個のブロックを集合させて行列を形成し、次いで、ソフトウェアは、Ｓを使用して、Ｍに近似するＮ行列を構築する。出力のエントリが［０，２５５］内の整数であることを希望する場合、Ｎの量子化が必要なことがある。
【０１５１】
ブロックによる圧縮またはタイリングは、圧縮時間および復元時間を著しく低減する並行処理を可能にする。
【０１５２】
試験
実施形態５を使用して、発明者は、本開示の圧縮法および暗号化法を試験した。それらの試験結果の一部は、以下の通りである。
【０１５３】
評価される試験画像は、ＲＧＢフォーマットのカラー画像である。各画像は、３つの行列により表される。ＢＳＤを使用する圧縮の前には、行列は、水平配向に隣り合った３つの行列で形成されていた。
【０１５４】
出力画像の品質を比較するために、非可逆圧縮の再構築の品質を測定するために一般的に使用されるピーク信号対雑音比（ＰＳＮＲ）を使用する。ＰＳＮＲの値が大きくなるほど、品質が良くなる。
【０１５５】
ＳＶＤは一般に、本明細書に記載する欠点にもかかわらず、非常に良好なＰＳＮＲを達成することができ、このことは知られている。試験は、ＢＳＤが、ＳＶＤにより達成されるＰＳＮＲに少なくとも極めて近いＰＳＮＲにつながる一方で、ＢＳＤについての圧縮比が、ＳＶＤについての圧縮比に比べて著しく良好であることを示す。
【０１５６】
最初の２つの画像「Ｓｐｌａｓｈ」および「Ｌｅｎｎａ」は、ｈｔｔｐ：／／ｓｉｐｉ．ｕｓｃ．ｅｄｕ／ｄａｔａｂａｓｅ／ｄａｔａｂａｓｅ．ｐｈｐにリンクする南カリフォルニア大学（Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｓｏｕｔｈ  Ｃａｌｉｆｏｒｎｉａ）の試験−画像のセットに含まれる。
【０１５７】
２番目の２つの画像「Ｄｅｅｒ」および「Ｓｐｉｄｅｒ  Ｗｅｂ」は、ｈｔｔｐ：／／ｗｗｗ．ｉｍａｇｅｃｏｍｐｒｅｓｓｉｏｎ．ｉｎｆｏ／に提供される試験画像のセットの一部である。
【０１５８】
３番目の２つの画像「ｋｏｄｉｍ０１」および「ｋｏｄｉｍ２３」は、ｈｔｔｐ：／／ｒ０ｋ．ｕｓ／ｇｒａｐｈｉｃｓ／ｋｏｄａｋ／のコダック試験画像に含まれる。
【０１５９】
各画像は、ＰＮＧ、ＪＰＥＧ、ＢＳＤおよびＳＶＤを使用して圧縮される。ＰｈｏｔｏＰａｄ  Ｉｍａｇｅ  Ｅｄｉｔｏｒのトライアルバージョンを使用して、ＰＮＧ圧縮およびＪＰＥＧ圧縮をその最高品質１００で達成した。ＢＳＤの圧縮ファイルは、ＰＮＧフォーマットで記憶される。
【０１６０】
ＳＶＤについての出力ファイルは、実施形態５に記載する圧縮プロセスにおいて行列Ｑにより表されるファイルである。
【０１６１】
ＪＰＥＧのＰＳＮＲとＢＳＤのＰＳＮＲとは、ほぼ同じである。ＳＶＤの圧縮ファイルとＢＳＤの圧縮ファイルとは、ほぼ同じピクセル数を有するが、ＳＶＤのピクセル当たりのメモリ値は、ＢＳＤのピクセル当たりのメモリ値よりもはるかに大きい。
【０１６２】
【表１】
2019204542.tif 000026
【０１６３】
ＳＶＤのＰＳＮＲとＢＳＤのＰＳＮＲとの間の差は、０．０３ｄＢ〜０．５７ｄＢである。Ｓｐｌａｓｈ、ＤｅｅｒおよびＳｐｉｄｅｒについて、ＢＳＤの圧縮比は、ＪＰＧの圧縮比の２．６倍〜４倍である。Ｌｅｎｎａ、ｋｏｄｉｍ０１およびｋｏｄｉｍ２３の圧縮比は、ＢＳＤ対ＪＰＧによりわずかに向上している。
【０１６４】
本発明の圧縮装置の各々において、画像品質を向上させ、更なる圧縮につながるために、他の画像処理技術を実装することができる。これらの技法は、エントロピー符号化、エリア画像圧縮およびＹＣｂＣｒ変換を含む。
【０１６５】
実施形態６
本開示のこの実施形態では、デジタルファイルの可逆圧縮は、本開示のＢＳＤ法を使用して達成される。この実施形態で使用されるアルゴリズムは、実施形態１で使用したアルゴリズムとは異なるが、この２つのアルゴリズムは、本明細書に開示するように、シュミット分解を実行することができるＢＳＤに基づく。本明細書の他の箇所に記載するように、非可逆圧縮は、同様の方法を用いて達成することができる。
【０１６６】
入力ファイルは、分解形状（ｍ，ｎ，ｐ，ｑ）に関してシュミット分解を使用して分解されるｍｎ×ｐｑ行列Ｍにより表されると仮定する。圧縮プロセスおよび復元プロセスの過程において、以下の行列およびシーケンスを定義し、計算する。
【０１６７】
ＰＳ：Ｍのパターンシーケンス。
Ｅ：Ｍの基本行列、これは、ｍｎ×ｐｑ行列である。
Ｓ：鳩の巣原理を使用して構築される基本シーケンスSは、２つの部分Ｓ１およびＳ２を有する。
【０１６８】
以下のステップのセットは、圧縮プロセスについて説明する。第ｅのセットについて説明する、ただし、ｅは、１〜圧縮プロセス中に計算されるＭのランクの整数である。ステップのこのセットにおいて、ｍｎ×ｐｑ行列Ｍｅを定義する。圧縮プロセスが、Ｍ１＝Ｍで開始する。
【０１６９】
ステップ１：ソフトウェアは、Ｍｅのエントリの絶対値の最大値ｄを計算する。辞書式順序を従って、絶対値がｄに等しい第１のエントリｄｅのＭｅにおける位置を（ｒ，ｃ）とする。位置（ｒ，ｃ）を含むＭのn×qブロック行列の位置ｅを、パターンシーケンスＰＳの第ｅの項に記憶する。
【０１７０】
ステップ２：Ｍの第ｅのｎ×ｑブロック行列を、Ｅの第ｅのｎ×ｑブロック行列に記憶し、辞書式順序に従って、Ｍの第ｅのｎ×ｑブロック行列のエントリをＳ１に記憶する。
【０１７１】
ステップ３：ソフトウェアは、ｑによるｃのユークリッド除法を実行し、余りｊを求める。余りがゼロの場合、ｊはｑと置換される。次いで、ソフトウェアは、ｉ＝（ｃ−ｊ）／ｑ＋１を計算する。
【０１７２】
ステップ４：ソフトウェアは、ｎによるｒのユークリッド除法を実行し、余りｌを求める。余りがゼロの場合、ｌはｎと置換される。次いで、ソフトウェアは、ｋ＝（ｒ−ｌ）／ｎ＋１を計算する。
【０１７３】
ステップ５：１〜ｍの各整数ａ、および１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＭｅのエントリを行列Ａｅの位置（ａ，ｂ）に記憶する。辞書式順序に従って、Ｅの位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）が空白である場合、同じ位置にロケーティングされたＭのエントリをそこに記憶し、同じエントリをシーケンスＳ２に記憶する。
【０１７４】
ステップ６：１〜ｎの各整数ａ、および１〜ｑの各整数ｂについて、位置（ａ＋（ｋ−１）ｎ，ｂ＋（ｉ−１）ｑ）におけるＭｅのエントリを行列Ｂｅの位置（ａ，ｂ）に記憶する。
【０１７５】
ステップ７：ソフトウェアは、行列
2019204542.tif 000027
を計算する。（本明細書の他の箇所に詳述したように、本開示は、
2019204542.tif 000028
の事実を提供する。）
【０１７６】
Ｍｅ＋１＝０の場合、Ｍの可逆圧縮が達成される。
【０１７７】
Ｍｅ＋１≠０である場合、Ｍｅ＋１を用いてステップ１〜７を実行する。
【０１７８】
Ｒ個のステップの後、プロセスを停止し、ここで、Ｒは、Ｍのシュミットランクである。
【０１７９】
非可逆圧縮プロセスは、同じステップ１〜６のセットを含むが、ステップ７の第２のステートメントは、プロセスを停止する誤差しきい値を含むステートメントと置換される。
【０１８０】
分解形状（ｍ，ｎ，ｐ，ｑ）、パターンシーケンスＰＳおよび基本シーケンスＳは、圧縮ファイルを構成する（ただし、Ｓは、第１の部分がＳ１であり、第２の部分がＳ２であるシーケンスである）。基本シーケンスＳは、Ｍから抽出されるＲ（ｍｐ＋ｎｑ−Ｒ）項を有し、ＰＳは、Ｒ個の項を有するが、行列Ｍは、ｍｐｎｑエントリを有する。
【０１８１】
実施形態６  復元
復元プロセスにおいて、クアドロプル（ｍ，ｎ，ｐ，ｑ）、ならびにシーケンスＰＳおよびＳは、入力を構成する。
【０１８２】
ステップ１：装置は、ＰＳにおける項の数に等しいＲを計算する。
【０１８３】
ステップ２：Ｓの第１のＲｎｑ個の項を使用して、ｍｎ×ｐｑ行列ＥのＲｎ×ｑブロック行列（基本行列）を構築する。Ｒ個のブロック行列の位置は、ＰＳにより与えられる。次いで、Ｓの第１のＲｎｑ個の項をＳから削除する。以下、ステップ２の後に埋められたＥの位置を基本位置と称する。
【０１８４】
ステップ３：ｅ＝１からｅ＝Ｒまで、装置は、以下のサブステップを実行する。このステップおいて、ｍｎ×ｐｑ行列Ｍｅを定義する。圧縮プロセスが、Ｍ１＝Ｅで開始する。
【０１８５】
ステップ３．１：装置は、エントリがＭｅの第ｅのｎ×ｑブロック行列のエントリである行列Ｂｅを構築する。装置は、Ｂｅのエントリの絶対値の最大値ｄを計算する。辞書式順序を従って、装置は、絶対値がｄに等しいＢｅにおける第１のエントリｄｅのＭｅにおける位置（ｒ，ｃ）を計算する。エントリｄｅをシーケンスＤの第ｅの項に記憶する。
【０１８６】
ステップ３．２：ソフトウェアは、ｑによるｃのユークリッド除法を実行し、余りｊを求める。余りがゼロの場合、ｊはｑと置換される。数ｊをシーケンスＪの第ｅの項に記憶する。次いで、ソフトウェアは、ｉ＝（ｃ−ｊ）／ｑ＋１を計算する。数ｉをシーケンスＩの第ｅの項に記憶する。
【０１８７】
ステップ３．３：ソフトウェアは、ｎによるｒのユークリッド除法を実行し、余りｌを求める。余りがゼロの場合、ｌはｎと置換される。数ｌをシーケンスＬの第ｅの項に記憶する。次いで、ソフトウェアは、ｋ＝（ｒ−ｌ）／ｎ＋１を計算する。数ｋをシーケンスＫの第ｅの項に記憶する。
【０１８８】
ステップ３．４：このサブステップにおいて、ｍ×ｐ行列Ａｅを構築する。各順序付けられた（ａ，ｂ）（ただし、１≦ａ≦ｍおよび１≦ｂ≦ｐ）について、（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）が基本位置である場合、Ａｅの位置（ａ，ｂ）に、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）にロケーティングされたＭｅのエントリを埋める。Ａｅの他の位置には任意の値を埋めることができる。
【０１８９】
ステップ３．５：ｅ＝Ｒの場合、装置は、ステップ４を実行する。そうでない場合には、装置は、行列
2019204542.tif 000029
を計算し、Ｍｅ＋１についてステップ３のサブステップを実行する。
【０１９０】
ステップ４：ｅ＝１からｅ＝Ｒまで、装置は、ｊ、Ｊおよびｌの第ｅの項、Ｌの第ｅの項を計算する。辞書式順序を従って、（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）がＥの基本位置でない（ただし、１≦ａ≦ｍおよび１≦ｂ≦ｐ）場合、この位置に、Ｓの第１の項を埋める。次いで、この項をＳから削除し、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）が、Ｅの新たな基本位置になる。
【０１９１】
ステップ５：このステップでは、各ｅ＝１，．．．，Ｒについて、ｍｎ×ｐｑ行列Ｅｅを定義する。プロセスは、Ｅ１＝Ｅから開始する。ｅ＝１からｅ＝Ｒまで、装置は、以下のサブステップを実行する。
【０１９２】
ステップ５．１：装置は、それぞれＩの第ｅの項、Ｊの第ｅの項、Ｋの第ｅの項、およびＬの第ｅの項であるｉ、ｊ、ｋおよびｌを計算する。
【０１９３】
ステップ５．２：このサブステップにおいて、ｍ×ｐ行列Ａｅおよびｎ×ｑ行列Ｂｅを構築する。１〜ｍの各整数ａ、および１〜ｐの各整数ｂについて、位置（ｌ＋（ａ−１）ｎ，ｊ＋（ｂ−１）ｑ）におけるＥｅのエントリは、Ａｅの位置（ａ，ｂ）に配置される。Ｂｅのエントリは、Ｅｅの第ｅのｎ×ｑブロック行列のエントリである。
【０１９４】
ｅ＜Ｒである場合、この方法を実行する本開示の電子処理装置は、
2019204542.tif 000030
を計算し、ここで、ｄｅはＤの第ｅの項であり、Ｅｅ＋１について、サブステップ５．１および５．２を実行する。
【０１９５】
ｅ＝Ｒである場合、装置は、サブステップ５．３を実行する。
【０１９６】
ステップ５．３：装置は、以下のように、サブステップ５．２で求めた行列を収集する。
【数５】
2019204542.tif 000031
【０１９７】
行列Ｎは、出力ファイルの行列である。圧縮が可逆である場合、Ｎ＝Ｍであり、ＲはＭのシュミットランクである。圧縮が非可逆である場合、ＮはＭに近似し、ＲはＭのシュミットランク未満である。
【０１９８】
追加の実施例
以下の追加の実施例において、「装置」は、本開示によるソフトウェアを実行するプロセッサを含む装置を指す。
【０１９９】
エントリが０〜２５５の整数である６×６行列Ｍについて考察する。したがって、Ｍのメモリ値は３６バイトである。
【数６】
2019204542.tif 000032
【０２００】
セクション１において、ＢＳＤを使用して、Ｍの可逆圧縮を達成する。ＢＳＤを使用して、各項が３×２行列と２×３行列とのクロネッカー積である行列の和へとＭを分解する。前述の要旨は、可逆圧縮、非可逆圧縮、および暗号化アルゴリズムについて説明する図表を含む。
【０２０１】
ｒａｎｋ（Ｍ）＝２なので、２つのステップで可逆圧縮を達成する。
【０２０２】
セクション２において、ＢＳＤおよびＳＶＤを使用して、Ｍの非可逆圧縮を達成する。ランクが１に等しい行列Ａを用いてＭを近似する。したがって、１つのステップで非可逆圧縮を達成する。
【０２０３】
１  ＢＳＤを用いた可逆圧縮（第１の実施形態）
１．１  圧縮プロセス
１．入力は、行列Ｍである。
【０２０４】
ステップ１．１  エントリ３６は、最も大きな絶対値を有し、（６，６）＝（第６の行，第６の列）に位置する。位置（６，６）を、パターン行列Ｐの第１の行に記憶する。
【０２０５】
ステップ１．２  第１の左基本エントリを、Ｍから選択する。
【数７】
2019204542.tif 000033
ステップ１．３  第１の右基本エントリを、Ｍから選択する。
【０２０６】
【数８】
2019204542.tif 000034
【０２０７】
ステップ１．４  装置は、
【数９】
2019204542.tif 000035
を計算する。
【０２０８】
ステップ２．１  エントリ
2019204542.tif 000036
は、最も大きな絶対値を有し、行列Ｍ１の（１，１）に位置する。位置（１，１）を、パターン行列Ｐの第２の行に記憶する。
【０２０９】
ステップ２．２  第２の左基本エントリを、Ｍから選択する。
【数１０】
2019204542.tif 000037
【０２１０】
ステップ２．３  第２の右基本エントリを、Ｍから選択する。
【数１１】
2019204542.tif 000038
【０２１１】
ステップ２．４  装置は、
2019204542.tif 000039
を計算し、ゼロ行列を求める。これは、ｒａｎｋ（Ｍ）＝２を意味し、Ｍの分解を達成する。
【０２１２】
２．圧縮ファイルは、パターン行列Ｐ、左基本行列ＬＥおよび右基本行列ＲＥを含む。
【数１２】
2019204542.tif 000040
【０２１３】
３．行列Ｐ、ＬＥおよびＲＥは、２８個のエントリを有する。したがって、Ｍのメモリ値を３６バイト〜２８バイトに圧縮する。
【０２１４】
４．エントリ２８、１、３６、および９は、左基本エントリと右基本エントリの両方の一部である。次いで、圧縮ファイルのメモリ値を、２８バイトから２４バイトに低減することができる。
【０２１５】
２．１  復元プロセス
【０２１６】
１．入力は、行列Ｐ、ＬＥおよびＲＥである。
【０２１７】
２．Ｐの行の数は２である。それは、元の行列Ｍのランクに等しい。それはまた、Ｍを回復するステップの数に等しい。
【０２１８】
３．ＬＥの列の数は４であり、ＲＥの列の数は６である。これは、元の行列Ｍが、各項が３×２行列と２×３行列とのクロネッカー積である行列の和へと分解されたことを意味する。したがって、行列ＬＥ１、ＲＥ１、ＬＥ２およびＲＥ２を回復することができる。
【０２１９】
ステップ１．１  （６，６）であるＰの第１の行を使用して、装置は、行列ＥにおけるＬＥ１およびＲＥ１のエントリを、行列Ｍにおいて占める同じ位置に入れる。
【０２２０】
ステップ１．２  （１，１）であるＰの第２の行を使用して、装置は、行列ＥにおけるＬＥ2およびＲＥ１のエントリを、行列Ｍにおいて占める同じ位置に入れる。
【０２２１】
ステップ１．３
行列Ｅは基本行列と呼ばれ、Ｍのサイズを有する。Ｍの基本エントリではないＥのエントリは、０また希望するは任意の数とすることができる。
【数１３】
2019204542.tif 000041
【０２２２】
ステップ１．４  Ｍの分解における第１の項は、
2019204542.tif 000042
であり、ただし、Ａ１＝ＬＥ１およびＢ１＝ＲＥ１／３６である。
【０２２３】
ステップ２．１  装置は、
2019204542.tif 000043
を計算する。
【数１４】
2019204542.tif 000044
【０２２４】
ステップ２．２  位置（１，１）を使用すると、Ｍの分解の第２の項は、
2019204542.tif 000045
であり、ただし、
【数１５】
2019204542.tif 000046
である。
【０２２５】
４．論文「Ｉｎｖｅｒｔｉｎｇ  ｔｈｅ  ｔｅｎｓｏｒ  ｐｒｏｄｕｃｔ  ｏｆ  ｂｏｕｎｄｅｄ  ｏｐｅｒａｔｏｒｓ  ｏｎ  Ｈｉｌｂｅｒｔ  Ｓｐａｃｅｓ」の定理２．４を使用すると、以下が証明できる。
【数１６】
2019204542.tif 000047
このようにして、行列Ｍが回復される。
【０２２６】
２．非可逆圧縮（第２の実施形態）
２．１  圧縮プロセス
１．入力は、行列ＭおよびＴであり、ＰＳＮＲしきい値が、出力の品質を決定する。この例について、Ｔ＝４４とする。
【０２２７】
ステップ１．１  低ランクの近似定理（Ｅｃｋａｒｔ  Ｙｏｕｎｇ  Ｍｉｒｓｋｙ定理）を使用して、装置は、ＭをＴ以上のＰＳＮＲと近似させる行列のうち最低ランクの行列Ｎを計算する。低ランク近似を達成するアルゴリズムは、ＳＶＤを使用する。
【数１７】
2019204542.tif 000048
【０２２８】
ステップ１．２  行列Ｎを量子化して、整数エントリをもつ行列Ｑを取得する。
【数１８】
2019204542.tif 000049
【０２２９】
ステップ１．３  Ｑとともに可逆圧縮のＭで使用する同じステップを使用して、パターン行列Ｐ＝（６，６）、左基本行列ＬＥおよび右基本行列ＲＥを求める。
【数１９】
2019204542.tif 000050
【０２３０】
２．圧縮ファイルは、行列Ｐ、ＬＥおよびＲＥで構成される。３つの行列のメモリ値は１４である。次いで、圧縮比は、
2019204542.tif 000051
である。
【０２３１】
３．行列Ｑは、ＳＶＤを用いた圧縮の出力である。ＰＳＮＲ（Ｍ，Ｑ）＝４４．４５１０である。
【０２３２】
２．２  復元プロセス
可逆復元のステップと同様のステップである。
【０２３３】
１．入力は、行列Ｐ、ＬＥおよびＲＥである。
【０２３４】
２．Ｐの行の数は1である。それは、元の行列Ｎのランクに等しい。それはまた、Ｍに近似する出力行列を構築するためのステップの数に等しい。
【０２３５】
３．ＬＥの列の数は２であり、ＲＥの列の数は３である。これは、元の行列Ｍが、各項が３×２行列と２×３行列とのクロネッカー積である行列の和へと分解されたことを意味する。
【０２３６】
４．（６，６）であるＰの第１の行を使用して、装置は、行列ＥにおけるＬＥおよびＲＥのエントリを、行列Ｑにおいて占める同じ位置に入れる。
【０２３７】
５．行列Ｅは基本行列と呼ばれ、Ｍのサイズを有する。Ｍの基本エントリではないＥのエントリは、０また希望するは任意の数とすることができる。
【数２０】
2019204542.tif 000052
【０２３８】
６．量子化の前には、出力は行列である。
【数２１】
2019204542.tif 000053
【０２３９】
７．量子化後、行列が得られる。
【数２２】
2019204542.tif 000054
【０２４０】
８．行列Ａは、Ｍの非可逆圧縮の出力である。ＰＳＮＲ（Ｍ，Ａ）＝４４．４５１０である。
【０２４１】
９．この実施例では、ＰＳＮＲ（Ｍ，Ａ）＝ＰＳＮＲ  （Ｍ，Ｑ）であるが、一般には、ＰＳＮＲ（Ｍ，Ａ）は、ＰＳＮＲ（Ｍ，Ｑ）よりもわずかに小さい。
【０２４２】
１０．行列Ａは１つのステップで構築されたので、ステップ５は必要ない（このステップは、項目４〜７からなる）。一般に、２つ以上のステップが必要とされる場合に、Ｅが使用される。例えば、Ｍの可逆圧縮では、行列Ｍは、２つのステップを使用して回復される。
【０２４３】
方法論および証明
ヒルベルト空間上の有界作用素のテンソル積は、数学およびその応用において重要な役目を果たす。応用として、量子力学における複合量子系、制御理論、統計、信号処理、コンピュータ計算、および他の箇所［１０、１３、１４］が挙げられる。有限次元の場合、作用素のテンソル積は、重要な逆問題が関係する、行列のクロネッカー積に相当する。それは、ｍ１ｍ２×ｎ１ｎ２行列Ｍを最小数の項の和へと分解することであり、その各々は、ｍ１×ｎ１行列とｍ２×ｎ２行列とのクロネッカー積である。これは、いわゆるＭのシュミット分解である。この分解における項の数は、
2019204542.tif 000055
とするＭのシュミットランクである。行列のシュミット分解を求める古典的な方法は、ＳＶＤを使用することである。この方法をＳＳＶＤと呼ぶ。
【０２４４】
ｍ１ｍ２×ｎ１ｎ２行列Ｍは、
2019204542.tif 000056
であるＳＳＶＤを有すると仮定する。したがって、Ｍの分解に関与する全ての行列のエントリの合計数は、ｒ（ｍ１ｎ１＋ｍ２ｎ２）に等しい。一方、Ｍは、ｍ１ｎ１ｍ２ｎ２個のエントリを有する。したがって、Ｍの分解に関与する行列を記憶することは、ｒ（ｍ１ｎ１＋ｍ２ｎ２）＜ｍ１ｍ２×ｎ１ｎ２の場合にＭの可逆圧縮を達成する。ｓ＜ｒである場合、Ｅｃｋａｒｔ−Ｙｏｕｎｇ−Ｍｉｒｓｋｙ定理はＳＳＶＤを使用して、Ｍをｓシュミットランク行列と近似させたときに起こり得る最低誤差につながるｓシュミットランク行列ＮにＭを近似させる［８］。したがって、Ｎの分解に関与する行列を記憶することは、ｓ（ｍ１ｎ１＋ｍ２ｎ２）ｍ１ｍ２ｎ１ｎ２の場合にＭの非可逆圧縮を達成する。ＳＶＤを用いた圧縮として知られる、ＳＶＤに基づく別の圧縮方法がある［２、１２］。ＳＶＤを用いて圧縮するために、Ｍの特異値および特異ベクトルを記憶することになる。
【０２４５】
デジタルデータは、エントリが特定のクラス、すなわち、整数の有限集合内にあるある行列により表される。ただし、特異値および特異ベクトルのエントリは、必ずしも整数のエントリをもつ行列についての整数であるとは限らない。したがって、ＳＳＶＤまたはＳＶＤを用いた圧縮により、出力についての各エントリが無理数である可能性が高くなる。有意な情報損失なしにデジタルデバイスに無理数を記憶するためには、整数を記憶するのに必要なスペースよりもはるかに大きいメモリ空間を必要とする。したがって、ＳＳＶＤまたはＳＶＤを用いると、デジタルファイルの可逆圧縮はほとんど不可能であり、非可逆圧縮の圧縮比は、ＪＰＥＧのような他の既存の圧縮法により達成される圧縮比とは競合できなくなる。
【０２４６】
この論文は、分離可能なヒルベルト空間上の有界作用素のテンソル積についての逆公式を提供する結果を［４］において概括する。次いで、これらの公式を使用して、分離可能なヒルベルト空間のテンソル積に対する有界作用素の有限シュミット分解を（ある場合には）求めるための、いくつかのバージョンをもつアルゴリズムを開発する。著者の知識の及ぶ限りでは、これは、無限次元の分離可能なヒルベルト空間のテンソル積に対する有界作用素のシュミット分解を求めるための第１のアルゴリズムである。行列について、ＳＳＶＤとは異なり、新たなアルゴリズムが実用的であり、スペクトル分解に関係する数値計算は必要ではない。実際には、行列Ｍの分解における項の一部である行列中の各エントリは、４つの基本的な演算（＋、−、×、÷）と組み合わせたＭのいくつかのエントリを使用して計算される。これは、この論文の理論の応用のうちの１つとなる。それは、デジタルデータに関する記憶域の問題を解決する、ＳＶＤに基づく新たな可逆圧縮法である。これは、この新たな方法が、元のファイルからエントリが抽出される圧縮ファイルを生じるからである。
【０２４７】
デジタルデータの圧縮に加えて、この論文の理論は、作用素理論における応用を有する。詳細には、有限シュミット分解を用いて表される作用素の特性は、分解に関与する作用素に反映する。たとえば、
【数２３】
2019204542.tif 000057
がコンパクト作用素の分解である場合、作用素Ｆ１ｋは、各
2019204542.tif 000058
についてコンパクトである［５］。
【０２４８】
セクション２において、結果を述べるのに必要ないくつかの定義および特性をまとめる。セクション３において、分離可能なヒルベルト空間における有界作用素のテンソル積についての逆公式を構築し、ヒルベルト空間のテンソル積に対する有界作用素についてのシュミット分解定理を述べ、シュミット分解を求めるためのアルゴリズムについて説明する。セクション４において、行列についてのシュミット分解アルゴリズムを提示し、これらのアルゴリズムを用いるとどのように可逆圧縮が可能かについて教示する。
【０２４９】
２  まえがきおよび注釈
この論文について、全てのヒルベルト空間は、分離可能であると仮定される。このセクションにおける定義および結論の大部分は、［１１］に見出すことができる。
【０２５０】
ＨおよびＫを２つのヒルベルト空間であるとする。ＨからＫへの有界作用素のスペースをＢ（Ｈ，Ｋ）により示す。ＨからＫへのヒルベルト−シュミット作用素の空間をＬ２（Ｈ，Ｋ）により示す。Ｈの双対をＨ’により示す。
2019204542.tif 000059
の場合、ｘにより定義されたＨ上の一次形式をｘ’により示し、つまり、
【数２４】
2019204542.tif 000060
である。
【０２５１】
各複素数λについて
2019204542.tif 000061
に留意されたい。リースの表現定理は、ＨとＨ’とが反線形同型：
2019204542.tif 000062
により同定され、したがって、ＨとＨ’とは、線形同型により同定される（ただし、Ｈ’’はＨの二重双対である）ことを述べる。最後の同定を等式とする。したがって、
【数２５】
2019204542.tif 000063
である。
【０２５２】
各線形マッピング
2019204542.tif 000064
について、Ｆの転置
2019204542.tif 000065
を以下のように定義する。
【数２６】
2019204542.tif 000066
【０２５３】
２つのヒルベルト空間Ｈ１およびＨ２について、ヒルベルト空間
2019204542.tif 000067
を、ヒルベルト空間Ｌ２（Ｈ’１，Ｈ２）と解釈することができる。この解釈は、以下のように、ｒａｎｋ１作用素による
2019204542.tif 000068
の同定に基づく。
【数２７】
2019204542.tif 000069
以下、この同定を等式とする。
【０２５４】
Ｋ１およびＫ２を２つのヒルベルト空間であるとする。２つの作用素
2019204542.tif 000070
および
2019204542.tif 000071
のテンソル積は、以下のように定義することができる。
【数２８】
2019204542.tif 000072
【０２５５】
2019204542.tif 000073
【０２５６】
2019204542.tif 000074
【０２５７】
2019204542.tif 000075
【０２５８】
2019204542.tif 000076
【０２５９】
2019204542.tif 000077
【０２６０】
2019204542.tif 000078
【０２６１】
2019204542.tif 000079
【０２６２】
2019204542.tif 000080
【０２６３】
2019204542.tif 000081
【０２６４】
2019204542.tif 000082
【０２６５】
2019204542.tif 000083
【０２６６】
2019204542.tif 000084
【０２６７】
2019204542.tif 000085
【０２６８】
2019204542.tif 000086
【０２６９】
2019204542.tif 000087
【０２７０】
2019204542.tif 000088
【０２７１】
実施例４．８．（ａ）実施例４．３に従って、
【数２９】
2019204542.tif 000089
とする。
【０２７２】
パラメータ（３，２，２，３）、パターン行列Ｐ＝［（１，１），（３，２）］、および基本シーケンスＳ＝（１，４，１３，１６，２５，２８，２，３，７，８，９，５，１４，１７，２６，２９，１５，１９，２０，２１）が、Ｍを回復するために必要である。
【０２７３】
最初に、６×６基本行列Ｅを構築する。
【０２７４】
ステップ１  Ｐの第１行は（１，１）である。
【０２７５】
１．Ｅにおいて最初に埋めるべき位置は、（１，１）、（１，４）、（３，１）、（３，４）、（５，１）、（５，４）であり、そこにエントリ１、４、１３、１６、２５、２８を記憶する。
【０２７６】
２．Ｅにおいて２番目に埋めるべき位置は、（１，２）、（１，３）、（２，１）、（２，２）、（２，２）であり、そこにエントリ２、３、７、８、９を記憶する。鳩の巣原理は、すでに埋められた位置（１，１）を排除することに留意されたい。
【０２７７】
ステップ２  Ｐの第２行は（３，２）である。
【０２７８】
Ｅにおいて３番目に埋めるべき位置は、（１，５）、（３，２）（３，５）、（５，２）、（５，５）であり、そこにエントリ５、１４、１７、２６、２９を記憶する。鳩の巣原理は、すでに埋められた位置（１，３）を排除することに留意されたい。
【０２７９】
Ｅにおいて４番目に埋めるべき位置は、（３，３）、（４，１）、（４，２）、（４，３）であり、そこにエントリ１５、１９、２０、２１を記憶する。鳩の巣原理は、すでに埋められた位置（３，１）および（３，２）を排除することに留意されたい。
【０２８０】
このようにして、
【数３０】
2019204542.tif 000090
が得られ、空白のエントリに任意値を埋め、Ｐに従ってＥを分解して、Ｍが得られる。
【０２８１】
したがって、Ｍの圧縮は、値が１〜３６の整数である２８個のエントリのものである。
【０２８２】
（ｂ）ＳＶＤを使用して、シュミット分解
【数３１】
2019204542.tif 000091
を求め、ただし、
【数３２】
2019204542.tif 000092
である。
【０２８３】
Ｍの圧縮は、整数でなく、おそらく無理数である２４個の実数を含むと結論づける。
【０２８４】
（ｃ）ＭのＳＶＤは、１２７，２０６４および４．９５２６にほぼ等しい特異値、ならびに以下の行列の列に近似する特異ベクトルをもたらす。
【数３３】
2019204542.tif 000093
【０２８５】
Ｍの圧縮は、整数でなく、おそらく無理数である２６個の実数を含むと結論づける。
【０２８６】
（ｄ）以下の表に、各圧縮についての結果をまとめる。誤差は、ＭとＭＡＴＬＡＢを使用して計算した復元の出力との差のフロベニウスノルムである。
【表２】
2019204542.tif 000094
【０２８７】
０〜２５５の整数をコンピュータに記憶するには、１バイトが必要である。したがって、Ｍを記憶するためには３６バイトが必要であるが、ＢＳＤによる圧縮ファイルは２８バイトを必要とし、したがって、可逆圧縮は達成される。
【０２８８】
ＭＡＴＬＡＢにより、ＳＳＶＤおよびＳＶＤについて非ゼロ誤差を生じる。これは、ＳＳＶＤまたはＳＶＤによる圧縮ファイルの各エントリを記憶するために４バイトを使用することは、Ｍを正確に回復するには十分ではないことを意味する。したがって、Ｍを回復するためには、ＳＳＶＤの場合には９６バイト超、ＳＶＤの場合には１０４バイト超が必要となる。したがって、可逆圧縮は、達成されない。
【０２８９】
［６］において、著者は、ＳＳＶＤとハイブリッドしたＢＳＤに基づく非可逆圧縮法を紹介する。画像に適用すると、新たな方法による圧縮比は、ＳＶＤまたはＳＳＶＤによる圧縮比よりもはるかに高いが、復元出力の品質は同じである。画像が標準試験画像によるいくつかの場合には、新たな方法による圧縮比は、ＪＰＥＧによる圧縮比の２倍であることも分かった。著者は、ＢＳＤによる可逆圧縮と、ＳＳＶＤとハイブリッドしたＢＳＤに基づく方法による非可逆圧縮の両方を保護する特許出願［７］を提出した。
【０２９０】
ここに記載したアルゴリズムを実行するために使用することができるコンピュータシステムの一例を、以下に、図４に関して示し説明する。アルゴリズムの任意の部分または全てを１つのコンピュータ上で実行することができるか、あるいは、圧縮されるデジタルファイルまたはデジタルデータストリームを、インターネット上のサーバを含むＬＡＮまたはＷＡＮ上のリモートサーバーにアップロードすることができる。本明細書のアルゴリズムまたは実施形態の一部分は、同じ場所の異なるコンピュータによって、または、異なる場所のコンピュータによって実行することができる。いずれの場合も、アルゴリズムのステップは、並行処理によって実行することができるか、あるいは、複数のコンピュータが各々、所与のアルゴリズムまたは実施形態のサブルーチンを実行することができる。
【０２９１】
前述の方法のいずれかを使用して、サーバは、画像ファイル、オーディオファイル、ビデオファイル、データファイル、またはストリーミングデータを含む任意の他のデータソースであり得るデジタルファイルまたはストリームが提供されると、本開示のアルゴリズムを実行することができる。デジタルデータは、圧縮されると、後での取出しまたは転送のためにリモートな場所に記憶することができるか、あるいはデジタルファイルまたはストリームが元々取得されたアドレスに戻すことができる。
【０２９２】
さらに、圧縮ファイルは、出力デバイス、たとえば、ディスプレイ、プリンタ（３Ｄプリンタを含む）、オーディオおよび／またはビデオ出力デバイス、あるいは、既知のまたは今後開発される任意の他の出力デバイスに送信することができる。データファイルまたはストリームは、本開示に従って圧縮および／または暗号化され、元々のソースに戻されると、ソースにより効率的に記憶する、あるいは、複数の受信者に再配信することができ、得られたデジタルファイルまたはストリームが記憶および送信のために必要とするバイトが実質的少なくなるので、コストおよび速度の大幅な節減を実現することができる。
【０２９３】
例示的なコンピュータシステム
図４は、そこにまたはそれを用いて本開示を実装することができる、汎用コンピュータ、または一連の相互接続したコンピュータ、または複数のプロセッサを含むコンピュータのような、コンピュータシステム７００のためのシステムアーキテクチャーを示す。図４の例示的なコンピュータシステムは、説明のみを目的とする。説明は、特定のコンピュータシステムについて説明する際に使用される一般的な用語について言及し得るが、説明および概念は、図４とは異なるアーキテクチャを有するシステムを含む他のシステムに等しく当てはまる。コンピュータシステム７００は、非一時的媒体に記憶されたソフトウェアを実行し、そのソフトウェアは、他のコンピューティング装置から、または、ヒューマンインターフェイスデバイスから入力を受信するように構成される。
【０２９４】
コンピュータシステム７００は、従来のマイクロプロセッサとともに実装され得る少なくとも１つの中央処理ユニット（ＣＰＵ）７０５またはサーバ、情報の一時記憶のためのランダムアクセスメモリ（ＲＡＭ）７１０、および情報のパーマネント記憶のための読取り専用メモリ（ＲＯＭ）７１５を含む。ＲＡＭ７１０を制御することを目的として、メモリコントローラ７２０が提供される。
【０２９５】
バス７３０は、コンピュータシステム７００の構成要素を相互接続する。バス７３０を制御することを目的として、バスコントローラ７２５が提供される。システム構成要素から様々な割込み信号を受信し、処理するために、割込みコントローラ７３５が使用される。
【０２９６】
たとえば、ＤＶＤ  ＲＯＭ７４７またはフラッシュまたは回転型ハードディスクドライブ７５２により、大容量記憶域が提供され得る。本開示のソフトウェア４００を含むデータおよびソフトウェアは、ディスケット、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−Ｒａｙ（登録商標）、または光学媒体ドライブ７４６およびコントローラ７４５に接続可能な他の光学媒体７４７のような、取り外し可能な媒体を介して、コンピュータシステム７００と交換され得る。代替的には、たとえばメディアスティック、たとえばソリッドステートＵＳＢドライブを含む他の媒体は、外部デバイスインターフェース７４１およびコントローラ７４０に接続され得る。さらに、別のコンピューティング装置は、外部デバイスインターフェース７４１を介して、たとえば、ＵＳＢコネクタ、ＢＬＵＥＴＯＯＴＨ（登録商標）コネクタ、赤外線またはＷｉＦｉコネクタによって、コンピュータシステム７００に接続され得るが、他の接続モードが知られ得る、あるいは今後開発され得る。ハードディスク７５２は、コントローラ７５０によりバス７３０に接続される固定ディスクドライブ７５１の一部である。本開示とともに有利に使用され得る、他の記憶装置、周辺機器およびコンピュータ処理手段が、将来開発され得ることを理解されたい。
【０２９７】
コンピュータシステム７００へのユーザ入力は、複数のデバイスにより提供され得る。たとえば、コントローラ７５５により、キーボード７５６およびマウス７５７がバス７３０に接続される。図示のように、オーディオコントローラ７９７により、マイクロフォンおよびスピーカーとして働き得るオーディオトランスデューサ７９６がバス７３０に接続される。当業者には、必要に応じて、ペンおよび／またはタブレット、携帯情報端末（ＰＤＡ）、モバイル／セルラーフォン、および他のデバイスのような他の入力デバイスが、バス７３０および適当なコントローラおよびソフトウェアに接続され得ることが明白となるであろう。ＲＡＭ７１０へのダイレクトメモリアクセスを実行することを目的として、ＤＭＡコントローラ７６０が提供される。ビデオディスプレイ７７０を制御するビデオコントローラ７６５により、視覚的表示が生成される。コンピュータシステム７００はまた、バス７９１およびネットワーク７９５によって概略的に示される、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）にシステムを相互接続することを可能にする通信アダプタ７９０を含む。
【０２９８】
コンピュータシステム７００の動作は、一般に、マイクロソフト（登録商標）（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．、米国ワシントン州レドモンド）から市販されているＷｉｎｄｏｗｓ（登録商標）システムのようなシステムソフトウェアを動作させることによって、制御および調整される。オペレーティングシステムは、システムリソースのアロケーションを制御し、とりわけスケジューリング、メモリ管理、ネットワーキングおよびI/Oサービスの処理のようなタスクを実行する。詳細には、オペレーティングシステムは、システムメモリに常駐し、ＣＰＵ７０５上で実行して、コンピュータシステム７００の他の要素の動作を調整する。本開示は、任意の数の市販されているオペレーティングシステムを用いて実装され得る。
【０２９９】
ＨＴＭＬページサーバ、または市販の通信アプリケーションのような、１つまたは複数のアプリケーションは、ユーザに情報を搬送するために動作可能なオペレーティングシステムの制御下で実行し得る。
【０３００】
本明細書で引用する全ての文献は、明示的に全文が参照により組み込まれる。当業者には、本開示は、本明細書で上記に詳細に示し、説明したものに限定されるものではないことが了解されよう。さらに、特段の記載がない限り、添付図面の全てが一定の縮尺でないことを留意されたい。本開示には多くの異なるフィーチャがあり、これらのフィーチャは、一緒にまたは別々に使用され得ることが企図される。したがって、本開示は、フィーチャの任意の特定の組合せ、または、本開示の特定の適用例に限定すべきではない。さらに、本開示が関係する当業者には、本開示の趣旨および範囲の変形形態および修正形態が起こり得ることを理解されたい。したがって、本開示のさらなる実施形態として、本開示の範囲および趣旨に含まれる、本明細書に記載された当技術分野に精通した者には容易に到達可能な全ての好都合な変更形態が含まれることになる。
【０３０１】
引例：
［１］Ａｂｄｅｌｋｒｉｍ  Ｂｏｕｒｏｕｉｈｉｙａ著，「Ｔｈｅ  ｔｅｎｓｏｒ  Ｐｒｏｄｕｃｔ  ｏｆ  Ｆｒａｍｅｓ」，Ｓａｍｐｌｉｎｇ  ｔｈｅｏｒｙ  ｉｎ  ｓｉｇｎａｌ  ａｎｄ  Ｉｍａｇｅ  ｐｒｏｃｅｓｓｉｎｇ，Ｖｏｌ．７，Ｎｏ．１  （２００８），ｐｐ．６５〜７６．
【０３０２】
［１Ａ］  Ｈ．Ｃｈｅｎｇ，Ｚ．Ｇｉｍｂｕｔａｓ，Ｐ．−Ｇ．Ｍａｒｔｉｎｓｓｏｎ，Ｖ．Ｒｏｋｈｌｉｎ著，「Ｏｎ  ｔｈｅ  ｃｏｍｐｒｅｓｓｉｏｎ  ｏｆ  ｌｏｗ  ｒａｎｋ  ｍａｔｒｉｃｅｓ」，ＳＩＡＭ  Ｊ．Ｓｃｉ．Ｃｏｍｐｕｔ．，２６  （２００５），ｐｐ．１３８９〜１４０４．
【０３０３】
［２］  Ｇ．Ｅｃｋａｒｔ，Ｇ．Ｙｏｕｎｇ著，「Ｔｈｅ  ａｐｐｒｏ×ｉｍａｔｉｏｎ  ｏｆ  ｏｎｅ  ｍａｔｒｉ×  ｂｙ  ａｎｏｔｈｅｒ  ｏｆ  ｌｏｗｅｒ  ｒａｎｋ」，Ｐｓｙｃｈｏｍｅｔｒｉｋａ，１，１９３６，ｐｐ．２１１〜２１８．
【０３０４】
［３］Ｈｏｒｎ，Ｒｏｇｅｒ  Ａ．；Ｊｏｈｎｓｏｎ，Ｃｈａｒｌｅｓ  Ｒ．著，「Ｔｏｐｉｃｓ  ｉｎ  Ｍａｔｒｉ×  Ａｎａｌｙｓｉｓ」，１９９１，Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ．
【０３０５】
［４］Ｓａｔｉｓｈ  Ｋ．ＳｉｎｇｈおよびＳｈｉｓｈｉｒ  Ｋｕｍａｒ著、「Ｍａｔｈｅｍａｔｉｃａｌ  ｔｒａｎｓｆｏｒｍｓ  ａｎｄ  ｉｍａｇｅ  ｃｏｍｐｒｅｓｓｉｏｎ」：Ａ  ｒｅｖｉｅｗ．Ｍａｅｊｏ  Ｉｎｔ．Ｊ．Ｓｃｉ．Ｔｅｃｈｎｏｌ．２０１０，４（０２），２３５〜２４９．
【０３０６】
［５］Ｓ．Ｏ．Ａａｓｅ，Ｊ．Ｈ．ＨｕｓｏｙおよびＰ．Ｗａｌｄｅｍａｒ著，「Ａ  ｃｒｉｔｉｑｕｅ  ｏｆ  ＳＶＤ−ｂａｓｅｄ  ｉｍａｇｅ  ｃｏｄｉｎｇ  ｓｙｓｔｅｍｓ」、ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ  ｏｎ  ＶＬＳＩ  １９９９，Ｖｏｌ．４，米国フロリダ州オーランド，ｐｐ．１３−１６．
【０３０７】
［６］Ｂ．ＡｒｎｏｌｄおよびＡ．ＭｃＩｎｎｅｓ著、「Ａｎ  ｉｎｖｅｓｔｉｇａｔｉｏｎ  ｉｎｔｏ  ｕｓｉｎｇ  ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ  ａｓ  ａ  ｍｅｔｈｏｄ  ｏｆ  ｉｍａｇｅ  ｃｏｍｐｒｅｓｓｉｏｎ」、Ｃｏｌｌｅｇｅ  ｏｆ  Ｒｅｄｗｏｏｄ，  Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｃａｎｔｅｒｂｕｒｙ（ニュージーランド）、Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  （２０００）．
【０３０８】
［７］Ｈ．Ｃ．ＡｎｄｒｅｗｓおよびＣ．Ｌ．Ｐａｔｅｒｓｏｎ著，「Ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ  （ＳＶＤ）  ｉｍａｇｅ  ｃｏｄｉｎｇ」、ＩＥＥＥ  Ｔｒａｎｓ．Ｃｏｍｍ  １９７６，２４，４２５〜４３２．
［７ａ］Ｇ．Ｈ．ＧｏｌｕｂおよびＣ．Ｒｅｉｎｓｅｌｓ著，「Ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ  ａｎｄ  ｌｅａｓｔ  ｓｑｕａｒｅ  ｓｏｌｕｔｉｏｎｓ」，Ｎｕｍｅｒ．Ｍａｔｈ．，１９７０，１４，４０３〜４２０．１９７６，２４，４２５〜４３２．
【０３０９】
［８］Ｖ．Ｓｉｎｇｈ著，「Ｒｅｃｅｎｔ  Ｐａｔｅｎｔｓ  ｏｎ  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  −  Ａ  Ｓｕｒｖｅｙ」ｈｔｔｐ：／／ｗｗｗ．ｂｅｎｔｈａｍｓｃｉｅｎｃｅ．ｃｏｍ／ｏｐｅｎ／ｒｐｔｓｐ／ａｒｔｉｃｌｅｓ／Ｖ００２／４７ＲＰＴＳＰ．ｐｄｆ
【０３１０】
［９］Ｊｕｌｉｅ  ＫａｍｍおよびＪａｍｅｓ  Ｇ．Ｎａｇｙ著，「ｋｒｏｎｅｃｋｅｒ  ｐｒｏｄｕｃｔ  ａｎｄ  ＳＶＤ  ａｐｐｒｏ×ｉｍａｔｉｏｎｓ  ｉｎ  ｉｍａｇｅ  ｒｅｓｔｏｒａｔｉｏｎ」，Ｌｉｎｅａｒ  Ａｌｇｅｂｒａ  ａｎｄ  ｉｔｓ  Ａｐｐｌｉｃａｔｉｏｎｓ  ２８４，（１９９８），１７７〜１９２
【０３１１】
［１０］Ｊａｉｎ，Ａｎｉｌ  Ｋ．著（１９８９），「Ｆｕｎｄａｍｅｎｔａｌｓ  ｏｆ  Ｄｉｇｉｔａｌ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ」，Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ．
【０３１２】
［１１］  Ｋａｄｉｓｏｎ，Ｒｉｃｈａｒｄ  Ｖ．；Ｒｉｎｇｒｏｓｅ，Ｊｏｈｎ  Ｒ．著（１９９７），「Ｆｕｎｄａｍｅｎｔａｌｓ  ｏｆ  ｔｈｅ  ｔｈｅｏｒｙ  ｏｆ  ｏｐｅｒａｔｏｒ  ａｌｇｅｂｒａｓ」、Ｖｏｌ．Ｉ，Ｇｒａｄｕａｔｅ  Ｓｔｕｄｉｅｓ  ｉｎ  Ｍａｔｈｅｍａｔｉｃｓ  １５，Ｐｒｏｖｉｄｅｎｃｅ，Ｒ．Ｉ：  Ａｍｅｒｉｃａｎ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｏｃｉｅｔｙ．
【０３１３】
［１２］Ｓｔｅｅｂ，Ｗｉｌｌｉ−Ｈａｎｓ著，「Ｍａｔｒｉ×  Ｃａｌｃｕｌｕｓ  ａｎｄ  Ｋｒｏｎｅｃｋｅｒ  Ｐｒｏｄｕｃｔ  ｗｉｔｈ  Ａｐｐｌｉｃａｔｉｏｎｓ  ａｎｄ  Ｃ＋＋  Ｐｒｏｇｒａｍｓ」，１９９７，Ｗｏｒｌｄ  Ｓｃｉｅｎｔｉｆｉｃ  Ｐｕｂｌｉｓｈｉｎｇ．
【０３１４】
［１２ａ］Ｓｔｅｅｂ，  Ｗｉｌｌｉ−Ｈａｎｓ著，「Ｍａｔｒｉ×  Ｃａｌｃｕｌｕｓ  ａｎｄ  Ｋｒｏｎｅｃｋｅｒ  Ｐｒｏｄｕｃｔ  ｗｉｔｈ  Ａｐｐｌｉｃａｔｉｏｎｓ」，２０１１，Ｗｏｒｌｄ  Ｓｃｉｅｎｔｉｆｉｃ  Ｐｕｂｌｉｓｈｉｎｇ．
【図１Ａ】
2019204542.tif 000099
【図１Ｂ】
2019204542.tif 000100
【図１Ｃ】
2019204542.tif 000101
【図２Ａ】
2019204542.tif 000102
【図２Ｂ】
2019204542.tif 000103
【図３Ａ】
2019204542.tif 000104
【図３Ｂ】
2019204542.tif 000105
【図４】
2019204542.tif 000106